summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/classic-editor/LICENSE.md800
-rw-r--r--plugins/classic-editor/classic-editor.php101
-rw-r--r--plugins/classic-editor/js/block-editor-plugin.js2
-rw-r--r--plugins/classic-editor/readme.txt43
-rw-r--r--plugins/google-authenticator/google-authenticator.php10
-rwxr-xr-xplugins/google-authenticator/lang/google-authenticator-pl_PL.mobin0 -> 7641 bytes
-rwxr-xr-xplugins/google-authenticator/lang/google-authenticator-pl_PL.po304
-rw-r--r--plugins/google-authenticator/readme.txt9
-rw-r--r--plugins/jetpack/3rd-party/3rd-party.php40
-rw-r--r--plugins/jetpack/3rd-party/bbpress.php31
-rw-r--r--plugins/jetpack/3rd-party/beaverbuilder.php23
-rw-r--r--plugins/jetpack/3rd-party/bitly.php21
-rw-r--r--plugins/jetpack/3rd-party/buddypress.php18
-rw-r--r--plugins/jetpack/3rd-party/class-domain-mapping.php160
-rw-r--r--plugins/jetpack/3rd-party/class-jetpack-bbpress-rest-api.php161
-rw-r--r--plugins/jetpack/3rd-party/class-jetpack-crm-data.php77
-rw-r--r--plugins/jetpack/3rd-party/class-jetpack-modules-overrides.php148
-rw-r--r--plugins/jetpack/3rd-party/class.jetpack-amp-support.php166
-rw-r--r--plugins/jetpack/3rd-party/creative-mail.php128
-rw-r--r--plugins/jetpack/3rd-party/crowdsignal.php23
-rw-r--r--plugins/jetpack/3rd-party/debug-bar.php7
-rw-r--r--plugins/jetpack/3rd-party/debug-bar/class-jetpack-search-debug-bar.php184
-rw-r--r--plugins/jetpack/3rd-party/jetpack-backup.php105
-rw-r--r--plugins/jetpack/3rd-party/jetpack-boost.php105
-rw-r--r--plugins/jetpack/3rd-party/qtranslate-x.php8
-rw-r--r--plugins/jetpack/3rd-party/vaultpress.php26
-rw-r--r--plugins/jetpack/3rd-party/web-stories.php36
-rw-r--r--plugins/jetpack/3rd-party/woocommerce-services.php18
-rw-r--r--plugins/jetpack/3rd-party/woocommerce.php40
-rw-r--r--plugins/jetpack/3rd-party/wpml.php15
-rw-r--r--plugins/jetpack/CHANGELOG.md6122
-rw-r--r--plugins/jetpack/LICENSE.txt357
-rw-r--r--plugins/jetpack/SECURITY.md38
-rw-r--r--plugins/jetpack/_inc/accessible-focus.js4
-rw-r--r--plugins/jetpack/_inc/blocks/860.js1
-rw-r--r--plugins/jetpack/_inc/blocks/business-hours/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/business-hours/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/business-hours/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/business-hours/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/button/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/button/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/button/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/button/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/calendly/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/calendly/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/calendly/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/calendly/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/components.css2
-rw-r--r--plugins/jetpack/_inc/blocks/components.js.LICENSE.txt56
-rw-r--r--plugins/jetpack/_inc/blocks/components.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/contact-info/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/contact-info/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/dialogue/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/dialogue/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/dialogue/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/dialogue/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/donations/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/donations/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/donations/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/donations/view.js.LICENSE.txt22
-rw-r--r--plugins/jetpack/_inc/blocks/donations/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.css1
-rw-r--r--plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.js42
-rw-r--r--plugins/jetpack/_inc/blocks/editor-beta.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-beta.css2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-beta.js154
-rw-r--r--plugins/jetpack/_inc/blocks/editor-beta.js.LICENSE.txt30
-rw-r--r--plugins/jetpack/_inc/blocks/editor-beta.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-experimental.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-experimental.css2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-experimental.js154
-rw-r--r--plugins/jetpack/_inc/blocks/editor-experimental.js.LICENSE.txt30
-rw-r--r--plugins/jetpack/_inc/blocks/editor-experimental.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/editor-no-post-editor.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/editor-no-post-editor.css1
-rw-r--r--plugins/jetpack/_inc/blocks/editor-no-post-editor.js121
-rw-r--r--plugins/jetpack/_inc/blocks/editor-no-post-editor.js.LICENSE.txt30
-rw-r--r--plugins/jetpack/_inc/blocks/editor-no-post-editor.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/editor.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/editor.css2
-rw-r--r--plugins/jetpack/_inc/blocks/editor.js150
-rw-r--r--plugins/jetpack/_inc/blocks/editor.js.LICENSE.txt30
-rw-r--r--plugins/jetpack/_inc/blocks/editor.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/eventbrite/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/eventbrite/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/eventbrite/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/eventbrite/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/frontend-nudge.html1
-rw-r--r--plugins/jetpack/_inc/blocks/gif/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/gif/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/gif/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/gif/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/google-calendar/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/google-calendar/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/google-calendar/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/google-calendar/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/image-compare/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/image-compare/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/image-compare/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/image-compare/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/images/eventbrite-in-page-example-c351ec80e4dd5d39433d.pngbin0 -> 7670 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/example_160x600-ccbc594f54431dafa70d.pngbin0 -> 10187 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/example_300x250-5b93e8174f02d48c40b7.pngbin0 -> 8624 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/example_320x50-7110edf045141630a222.pngbin0 -> 4976 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/example_728x90-d9de384932330b92e1c3.pngbin0 -> 8022 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/img-example-after-d6db862c442c24ad1c63.pngbin0 -> 11521 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/img-example-before-4592b4656108c1429614.pngbin0 -> 11779 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/map-preview-97bda80ebb6981457630.jpgbin0 -> 41087 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpgbin0 -> 85291 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/map-theme_default-b53ccdf170e5ac873ff0.jpgbin0 -> 113462 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/map-theme_satellite-cc50c608e244f90d18dc.jpgbin0 -> 160272 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/map-theme_terrain-ac291441b3461820747d.jpgbin0 -> 108702 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/oval-5f1d889983a8747472c7.svg19
-rw-r--r--plugins/jetpack/_inc/blocks/images/paypal-button-2x-3d5d36867a0f3728cc3a.pngbin0 -> 8186 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/paypal-button-5ecd2d5421d74f39e027.pngbin0 -> 7496 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/simple-payments_example-1-0273eeccd8d120df4984.jpgbin0 -> 17639 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/slideshow_example-1-07a3f164621235df0419.jpgbin0 -> 25288 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/slideshow_example-2-2ee401e47066229bdac5.jpgbin0 -> 12065 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/slideshow_example-3-0682afca66c485f17ff6.jpgbin0 -> 39074 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/story_example-1-716db2e4f5a074d302f7.pngbin0 -> 243566 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpgbin0 -> 4241 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpgbin0 -> 7151 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-3-07a3f164621235df0419.jpgbin0 -> 25288 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-4-2ee401e47066229bdac5.jpgbin0 -> 12065 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpgbin0 -> 7087 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpgbin0 -> 7281 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/images/upgrade-illustration-5b3059f7101ac37f4339.svg37
-rw-r--r--plugins/jetpack/_inc/blocks/images/videopress-block-example-image-da9ef73787adca8896f2.jpgbin0 -> 21214 bytes
-rw-r--r--plugins/jetpack/_inc/blocks/index.json51
-rw-r--r--plugins/jetpack/_inc/blocks/instagram-gallery/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/instagram-gallery/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/instagram-gallery/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/instagram-gallery/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/mailchimp/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/mailchimp/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/mailchimp/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/mailchimp/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/map/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/map/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/map/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/map/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/opentable/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/opentable/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/opentable/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/opentable/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/podcast-player/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/podcast-player/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/podcast-player/view.js17
-rw-r--r--plugins/jetpack/_inc/blocks/podcast-player/view.js.LICENSE.txt5
-rw-r--r--plugins/jetpack/_inc/blocks/podcast-player/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/premium-content/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/premium-content/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/premium-content/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/premium-content/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/rating-star/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/rating-star/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/rating-star/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/rating-star/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/recurring-payments/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/recurring-payments/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/recurring-payments/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/recurring-payments/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/repeat-visitor/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/repeat-visitor/view.js4
-rw-r--r--plugins/jetpack/_inc/blocks/repeat-visitor/view.js.LICENSE.txt6
-rw-r--r--plugins/jetpack/_inc/blocks/revue/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/revue/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/revue/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/revue/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/send-a-message/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/send-a-message/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/send-a-message/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/send-a-message/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/slideshow/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/slideshow/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/slideshow/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/slideshow/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/story/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/story/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/story/view.js6
-rw-r--r--plugins/jetpack/_inc/blocks/story/view.js.LICENSE.txt5
-rw-r--r--plugins/jetpack/_inc/blocks/story/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/subscriptions/view.asset.php1
-rw-r--r--plugins/jetpack/_inc/blocks/subscriptions/view.css1
-rw-r--r--plugins/jetpack/_inc/blocks/subscriptions/view.js1
-rw-r--r--plugins/jetpack/_inc/blocks/subscriptions/view.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/swiper.css1
-rw-r--r--plugins/jetpack/_inc/blocks/swiper.rtl.css1
-rw-r--r--plugins/jetpack/_inc/blocks/tiled-gallery/view.asset.php2
-rw-r--r--plugins/jetpack/_inc/blocks/tiled-gallery/view.css2
-rw-r--r--plugins/jetpack/_inc/blocks/tiled-gallery/view.js2
-rw-r--r--plugins/jetpack/_inc/blocks/tiled-gallery/view.rtl.css2
-rw-r--r--plugins/jetpack/_inc/blocks/upgrade-nudge.html2
-rw-r--r--plugins/jetpack/_inc/build/accessible-focus.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/accessible-focus.min.js3
-rw-r--r--plugins/jetpack/_inc/build/admin.asset.php2
-rw-r--r--plugins/jetpack/_inc/build/admin.css2
-rw-r--r--plugins/jetpack/_inc/build/admin.js140
-rw-r--r--plugins/jetpack/_inc/build/admin.js.LICENSE.txt83
-rw-r--r--plugins/jetpack/_inc/build/admin.rtl.css2
-rw-r--r--plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js4
-rw-r--r--plugins/jetpack/_inc/build/carousel/swiper-bundle.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js2
-rw-r--r--plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js.LICENSE.txt35
-rw-r--r--plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.js3
-rw-r--r--plugins/jetpack/_inc/build/connect-button.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/connect-button.min.js4
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/editor-view.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/editor-view.min.js4
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.js4
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.js3
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/grunion.min.js4
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.js4
-rw-r--r--plugins/jetpack/_inc/build/crowdsignal-shortcode.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/crowdsignal-shortcode.min.js3
-rw-r--r--plugins/jetpack/_inc/build/crowdsignal-survey.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/crowdsignal-survey.min.js1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js5
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js3
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.js3
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.js4
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.js3
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.js4
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.js3
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.js3
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.js4
-rw-r--r--plugins/jetpack/_inc/build/facebook-embed.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/facebook-embed.min.js4
-rw-r--r--plugins/jetpack/_inc/build/gallery-settings.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/gallery-settings.min.js6
-rw-r--r--plugins/jetpack/_inc/build/images/boost-8ea10be101c586380d89.svg3
-rw-r--r--plugins/jetpack/_inc/build/images/cloud-d0f9b0f863bc1adcc03e.svg8
-rw-r--r--plugins/jetpack/_inc/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpgbin0 -> 25037 bytes
-rw-r--r--plugins/jetpack/_inc/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpgbin0 -> 55604 bytes
-rw-r--r--plugins/jetpack/_inc/build/images/remove-bug-aa23c420a6e6394d5787.svg3
-rw-r--r--plugins/jetpack/_inc/build/images/shield-bb27f10b1ca957261b8d.svg3
-rw-r--r--plugins/jetpack/_inc/build/images/shield-with-check-b59b7e859cf937a15a0e.svg1
-rw-r--r--plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.js1
-rw-r--r--plugins/jetpack/_inc/build/infinite-scroll/infinity.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/infinite-scroll/infinity.min.js4
-rw-r--r--plugins/jetpack/_inc/build/instant-search/407.js2
-rw-r--r--plugins/jetpack/_inc/build/instant-search/407.js.LICENSE.txt8
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.css1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js26
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js.LICENSE.txt14
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.rtl.css1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-main.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search-main.js1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.css1
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.js15
-rw-r--r--plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.rtl.css1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-admin.min.js3
-rw-r--r--plugins/jetpack/_inc/build/jetpack-connection-banner.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-connection-banner.min.js4
-rw-r--r--plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.js1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.min.js3
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.models.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.models.min.js3
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.views.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-modules.views.min.js3
-rw-r--r--plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.js1
-rw-r--r--plugins/jetpack/_inc/build/likes/post-count-jetpack.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/likes/post-count-jetpack.min.js3
-rw-r--r--plugins/jetpack/_inc/build/likes/post-count.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/likes/post-count.min.js3
-rw-r--r--plugins/jetpack/_inc/build/likes/queuehandler.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/likes/queuehandler.min.js4
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/aquatic/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/blue/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-blue/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-bright/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-dark/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/coffee/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/contrast/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ectoplasm/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/fresh/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/light/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/midnight/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/modern/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/nightfall/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ocean/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/powder-snow/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sakura/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunrise/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunset/colors.css3
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.js1
-rw-r--r--plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.js1
-rw-r--r--plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.js1
-rw-r--r--plugins/jetpack/_inc/build/photon/photon.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/photon/photon.min.js3
-rw-r--r--plugins/jetpack/_inc/build/plugins-page.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/plugins-page.css1
-rw-r--r--plugins/jetpack/_inc/build/plugins-page.js2
-rw-r--r--plugins/jetpack/_inc/build/plugins-page.js.LICENSE.txt15
-rw-r--r--plugins/jetpack/_inc/build/plugins-page.rtl.css1
-rw-r--r--plugins/jetpack/_inc/build/polldaddy-shortcode.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/polldaddy-shortcode.min.js3
-rw-r--r--plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.js6
-rw-r--r--plugins/jetpack/_inc/build/related-posts/related-posts.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/related-posts/related-posts.min.js4
-rw-r--r--plugins/jetpack/_inc/build/scan/admin-bar-notice.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/scan/admin-bar-notice.min.js1
-rw-r--r--plugins/jetpack/_inc/build/search-dashboard.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/search-dashboard.css1
-rw-r--r--plugins/jetpack/_inc/build/search-dashboard.js8
-rw-r--r--plugins/jetpack/_inc/build/search-dashboard.js.LICENSE.txt38
-rw-r--r--plugins/jetpack/_inc/build/search-dashboard.rtl.css1
-rw-r--r--plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.js4
-rw-r--r--plugins/jetpack/_inc/build/sharedaddy/sharing.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/sharedaddy/sharing.min.js4
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.js4
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js24
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js.LICENSE.txt7
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/main.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/main.min.js3
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/quiz.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/quiz.min.js3
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js42
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js.LICENSE.txt15
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/recipes.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/recipes.min.js4
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.js4
-rw-r--r--plugins/jetpack/_inc/build/static.html2
-rw-r--r--plugins/jetpack/_inc/build/static.js.LICENSE.txt47
-rw-r--r--plugins/jetpack/_inc/build/style.min.css2
-rw-r--r--plugins/jetpack/_inc/build/style.min.rtl.css3
-rw-r--r--plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js3
-rw-r--r--plugins/jetpack/_inc/build/twitter-timeline.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/twitter-timeline.min.js3
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/editor-view.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/editor-view.min.js4
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.js4
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.js3
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.js4
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widget-visibility/editor/index.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widget-visibility/editor/index.js1
-rw-r--r--plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/customizer-utils.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/customizer-utils.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js3
-rw-r--r--plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.js3
-rw-r--r--plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.js6
-rw-r--r--plugins/jetpack/_inc/build/widgets/milestone/admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/milestone/admin.min.js3
-rw-r--r--plugins/jetpack/_inc/build/widgets/milestone/milestone.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/milestone/milestone.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.js4
-rw-r--r--plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.js3
-rw-r--r--plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.js5
-rw-r--r--plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.js3
-rw-r--r--plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.js3
-rw-r--r--plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.asset.php1
-rw-r--r--plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.js1
-rw-r--r--plugins/jetpack/_inc/class.jetpack-provision.php87
-rw-r--r--plugins/jetpack/_inc/connect-button.js173
-rw-r--r--plugins/jetpack/_inc/crowdsignal-shortcode.js2
-rw-r--r--plugins/jetpack/_inc/crowdsignal-survey.js2
-rw-r--r--plugins/jetpack/_inc/facebook-embed.js18
-rw-r--r--plugins/jetpack/_inc/gallery-settings.js6
-rw-r--r--plugins/jetpack/_inc/genericons.php8
-rw-r--r--plugins/jetpack/_inc/jetpack-admin.js16
-rw-r--r--plugins/jetpack/_inc/jetpack-connection-banner.js32
-rw-r--r--plugins/jetpack/_inc/jetpack-deactivate-dialog.js97
-rw-r--r--plugins/jetpack/_inc/jetpack-modules.js25
-rw-r--r--plugins/jetpack/_inc/jetpack-modules.models.js4
-rw-r--r--plugins/jetpack/_inc/jetpack-modules.views.js12
-rw-r--r--plugins/jetpack/_inc/jetpack-recommendations-banner.js64
-rw-r--r--plugins/jetpack/_inc/jetpack-server-sandbox.php55
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class-jetpack-about-page.php6
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php444
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class-jetpack-search-dashboard-page.php137
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php109
-rw-r--r--plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php372
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-currencies.php176
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-instagram-gallery-helper.php115
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-mapbox-helper.php111
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-podcast-feed-locator.php113
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-podcast-helper.php535
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-recommendations.php160
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-tweetstorm-helper.php1682
-rw-r--r--plugins/jetpack/_inc/lib/class-jetpack-wizard.php10
-rw-r--r--plugins/jetpack/_inc/lib/class.color.php23
-rw-r--r--plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php2982
-rw-r--r--plugins/jetpack/_inc/lib/class.jetpack-keyring-service-helper.php97
-rw-r--r--plugins/jetpack/_inc/lib/class.jetpack-password-checker.php32
-rw-r--r--plugins/jetpack/_inc/lib/class.jetpack-photon-image-sizes.php6
-rw-r--r--plugins/jetpack/_inc/lib/class.jetpack-photon-image.php21
-rw-r--r--plugins/jetpack/_inc/lib/class.jetpack-search-performance-logger.php4
-rw-r--r--plugins/jetpack/_inc/lib/class.media-extractor.php459
-rw-r--r--plugins/jetpack/_inc/lib/class.media-summary.php295
-rw-r--r--plugins/jetpack/_inc/lib/class.media.php2
-rw-r--r--plugins/jetpack/_inc/lib/components.php34
-rw-r--r--plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php120
-rw-r--r--plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php82
-rw-r--r--plugins/jetpack/_inc/lib/core-api/load-wpcom-endpoints.php7
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/business-hours.php5
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-admin-menu.php485
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-external-media.php535
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php165
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php19
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-podcast-player.php162
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-publicize-share-post.php177
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-resolve-redirect.php4
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-search.php51
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-transient.php87
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php75
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-parse.php108
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-videopress.php190
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/hello.php5
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php109
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-connections.php28
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-services.php20
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php118
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-fields/attachment-fields-videopress.php4
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-fields/class-wpcom-rest-api-v2-attachment-videopress-data.php175
-rw-r--r--plugins/jetpack/_inc/lib/core-api/wpcom-fields/post-fields-publicize-connections.php32
-rw-r--r--plugins/jetpack/_inc/lib/debugger.php24
-rw-r--r--plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-test-base.php185
-rw-r--r--plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-tests.php751
-rw-r--r--plugins/jetpack/_inc/lib/debugger/class-jetpack-debug-data.php35
-rw-r--r--plugins/jetpack/_inc/lib/debugger/class-jetpack-debugger.php60
-rw-r--r--plugins/jetpack/_inc/lib/debugger/debug-functions.php151
-rw-r--r--plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.css21
-rw-r--r--plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.js80
-rw-r--r--plugins/jetpack/_inc/lib/functions.wp-notify.php652
-rw-r--r--plugins/jetpack/_inc/lib/markdown.php14
-rw-r--r--plugins/jetpack/_inc/lib/markdown/extra.php22
-rw-r--r--plugins/jetpack/_inc/lib/markdown/gfm.php19
-rw-r--r--plugins/jetpack/_inc/lib/plans.php4
-rw-r--r--plugins/jetpack/_inc/lib/plugins.php103
-rw-r--r--plugins/jetpack/_inc/lib/widgets.php12
-rw-r--r--plugins/jetpack/_inc/polldaddy-shortcode.js10
-rw-r--r--plugins/jetpack/_inc/social-logos.php34
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.css10
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.eotbin9982 -> 11024 bytes
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.html106
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.min.css2
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.ttfbin9792 -> 10840 bytes
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.woffbin17984 -> 7012 bytes
-rw-r--r--plugins/jetpack/_inc/social-logos/social-logos.woff2bin5628 -> 5944 bytes
-rw-r--r--plugins/jetpack/_inc/twitter-timeline.js2
-rw-r--r--plugins/jetpack/class-jetpack-connection-status.php34
-rw-r--r--plugins/jetpack/class-jetpack-pre-connection-jitms.php163
-rw-r--r--plugins/jetpack/class-jetpack-recommendations-banner.php277
-rw-r--r--plugins/jetpack/class-jetpack-stats-dashboard-widget.php151
-rw-r--r--plugins/jetpack/class-jetpack-wizard-banner.php10
-rw-r--r--plugins/jetpack/class-jetpack-xmlrpc-methods.php270
-rw-r--r--plugins/jetpack/class.jetpack-admin.php226
-rw-r--r--plugins/jetpack/class.jetpack-autoupdate.php2
-rw-r--r--plugins/jetpack/class.jetpack-bbpress-json-api.compat.php8
-rw-r--r--plugins/jetpack/class.jetpack-cli.php208
-rw-r--r--plugins/jetpack/class.jetpack-client-server.php110
-rw-r--r--plugins/jetpack/class.jetpack-connection-banner.php324
-rw-r--r--plugins/jetpack/class.jetpack-data.php19
-rw-r--r--plugins/jetpack/class.jetpack-gutenberg.php721
-rw-r--r--plugins/jetpack/class.jetpack-heartbeat.php125
-rw-r--r--plugins/jetpack/class.jetpack-idc.php721
-rw-r--r--plugins/jetpack/class.jetpack-modules-list-table.php28
-rw-r--r--plugins/jetpack/class.jetpack-network-sites-list-table.php6
-rw-r--r--plugins/jetpack/class.jetpack-network.php62
-rw-r--r--plugins/jetpack/class.jetpack-plan.php263
-rw-r--r--plugins/jetpack/class.jetpack-post-images.php64
-rw-r--r--plugins/jetpack/class.jetpack-twitter-cards.php182
-rw-r--r--plugins/jetpack/class.jetpack-user-agent.php1676
-rw-r--r--plugins/jetpack/class.jetpack.php4120
-rw-r--r--plugins/jetpack/class.json-api-endpoints.php201
-rw-r--r--plugins/jetpack/class.json-api.php76
-rw-r--r--plugins/jetpack/class.photon.php392
-rw-r--r--plugins/jetpack/composer.json128
-rw-r--r--plugins/jetpack/css/cleanslate-rtl.css482
-rw-r--r--plugins/jetpack/css/cleanslate-rtl.min.css7
-rw-r--r--plugins/jetpack/css/cleanslate.css482
-rw-r--r--plugins/jetpack/css/cleanslate.min.css7
-rw-r--r--plugins/jetpack/css/dashboard-widget-rtl.css174
-rw-r--r--plugins/jetpack/css/dashboard-widget-rtl.min.css2
-rw-r--r--plugins/jetpack/css/dashboard-widget.css174
-rw-r--r--plugins/jetpack/css/dashboard-widget.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-admin-rtl.css304
-rw-r--r--plugins/jetpack/css/jetpack-admin-rtl.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-admin.css304
-rw-r--r--plugins/jetpack/css/jetpack-admin.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-banners-rtl.css107
-rw-r--r--plugins/jetpack/css/jetpack-banners-rtl.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-banners.css107
-rw-r--r--plugins/jetpack/css/jetpack-banners.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-connect-rtl.css10
-rw-r--r--plugins/jetpack/css/jetpack-connect-rtl.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-connect.css10
-rw-r--r--plugins/jetpack/css/jetpack-connect.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-deactivate-dialog-rtl.css182
-rw-r--r--plugins/jetpack/css/jetpack-deactivate-dialog-rtl.min.css3
-rw-r--r--plugins/jetpack/css/jetpack-deactivate-dialog.css182
-rw-r--r--plugins/jetpack/css/jetpack-deactivate-dialog.min.css3
-rw-r--r--plugins/jetpack/css/jetpack-icons-rtl.css15
-rw-r--r--plugins/jetpack/css/jetpack-icons-rtl.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-icons.css15
-rw-r--r--plugins/jetpack/css/jetpack-icons.min.css2
-rw-r--r--plugins/jetpack/css/jetpack-recommendations-banner-rtl.css241
-rw-r--r--plugins/jetpack/css/jetpack-recommendations-banner-rtl.min.css3
-rw-r--r--plugins/jetpack/css/jetpack-recommendations-banner.css241
-rw-r--r--plugins/jetpack/css/jetpack-recommendations-banner.min.css3
-rw-r--r--plugins/jetpack/css/jetpack-rtl.css33
-rw-r--r--plugins/jetpack/css/jetpack.css33
-rw-r--r--plugins/jetpack/css/wordads-ccpa-rtl.css881
-rw-r--r--plugins/jetpack/css/wordads-ccpa-rtl.min.css7
-rw-r--r--plugins/jetpack/css/wordads-ccpa.css881
-rw-r--r--plugins/jetpack/css/wordads-ccpa.min.css7
-rw-r--r--plugins/jetpack/extensions/blocks/amazon/amazon.php30
-rw-r--r--plugins/jetpack/extensions/blocks/anchor-fm/anchor-fm.php191
-rw-r--r--plugins/jetpack/extensions/blocks/business-hours/business-hours.php38
-rw-r--r--plugins/jetpack/extensions/blocks/button/button.php244
-rw-r--r--plugins/jetpack/extensions/blocks/calendly/calendly.php279
-rw-r--r--plugins/jetpack/extensions/blocks/contact-info/class-jetpack-contact-info-block.php2
-rw-r--r--plugins/jetpack/extensions/blocks/contact-info/contact-info.php14
-rw-r--r--plugins/jetpack/extensions/blocks/conversation/conversation.php51
-rw-r--r--plugins/jetpack/extensions/blocks/dialogue/dialogue.php51
-rw-r--r--plugins/jetpack/extensions/blocks/donations/donations.php256
-rw-r--r--plugins/jetpack/extensions/blocks/eventbrite/eventbrite.php211
-rw-r--r--plugins/jetpack/extensions/blocks/gif/gif.php40
-rw-r--r--plugins/jetpack/extensions/blocks/google-calendar/google-calendar.php86
-rw-r--r--plugins/jetpack/extensions/blocks/image-compare/image-compare.php90
-rw-r--r--plugins/jetpack/extensions/blocks/instagram-gallery/instagram-gallery.php151
-rw-r--r--plugins/jetpack/extensions/blocks/mailchimp/mailchimp.php338
-rw-r--r--plugins/jetpack/extensions/blocks/map/map.php138
-rw-r--r--plugins/jetpack/extensions/blocks/markdown/markdown.php19
-rw-r--r--plugins/jetpack/extensions/blocks/opentable/opentable.php137
-rw-r--r--plugins/jetpack/extensions/blocks/pinterest/pinterest.php236
-rw-r--r--plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php312
-rw-r--r--plugins/jetpack/extensions/blocks/podcast-player/templates/playlist-track.php43
-rw-r--r--plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header-title.php59
-rw-r--r--plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header.php67
-rw-r--r--plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-title.php36
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/access-check.php107
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/legacy-buttons.php62
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jetpack-token-subscription-service.php50
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jwt.php441
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-subscription-service.php57
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription-service.php264
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription.php23
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-unconfigured-subscription-service.php58
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-offline-subscription-service.php77
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-token-subscription-service.php46
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/include.php82
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/buttons/buttons.php46
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/logged-out-view/logged-out-view.php73
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/login-button/login-button.php59
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/premium-content.php131
-rw-r--r--plugins/jetpack/extensions/blocks/premium-content/subscriber-view/subscriber-view.php65
-rw-r--r--plugins/jetpack/extensions/blocks/rating-star/rating-meta.php30
-rw-r--r--plugins/jetpack/extensions/blocks/rating-star/rating-star.php99
-rw-r--r--plugins/jetpack/extensions/blocks/recurring-payments/recurring-payments.php4
-rw-r--r--plugins/jetpack/extensions/blocks/repeat-visitor/repeat-visitor.php38
-rw-r--r--plugins/jetpack/extensions/blocks/revue/revue.php253
-rw-r--r--plugins/jetpack/extensions/blocks/send-a-message/send-a-message.php46
-rw-r--r--plugins/jetpack/extensions/blocks/send-a-message/whatsapp-button/whatsapp-button.php45
-rw-r--r--plugins/jetpack/extensions/blocks/simple-payments/simple-payments.php96
-rw-r--r--plugins/jetpack/extensions/blocks/slideshow/slideshow.php71
-rw-r--r--plugins/jetpack/extensions/blocks/social-previews/social-previews.php28
-rw-r--r--plugins/jetpack/extensions/blocks/story/story.php493
-rw-r--r--plugins/jetpack/extensions/blocks/subscriptions/subscriptions.php47
-rw-r--r--plugins/jetpack/extensions/blocks/tiled-gallery/tiled-gallery.php45
-rw-r--r--plugins/jetpack/extensions/blocks/wordads/wordads.php42
-rw-r--r--plugins/jetpack/extensions/extended-blocks/core-audio/core-audio.php27
-rw-r--r--plugins/jetpack/extensions/extended-blocks/core-cover/core-cover.php27
-rw-r--r--plugins/jetpack/extensions/extended-blocks/core-video/core-video.php27
-rw-r--r--plugins/jetpack/extensions/extended-blocks/premium-content-container/premium-content-container.php27
-rw-r--r--plugins/jetpack/extensions/plugins/publicize/publicize.php27
-rw-r--r--plugins/jetpack/functions.compat.php2
-rw-r--r--plugins/jetpack/functions.cookies.php2
-rw-r--r--plugins/jetpack/functions.global.php287
-rw-r--r--plugins/jetpack/functions.opengraph.php219
-rw-r--r--plugins/jetpack/functions.photon.php54
-rw-r--r--plugins/jetpack/images/connect-plug.svg38
-rw-r--r--plugins/jetpack/images/connect-right-partner-backup.pngbin0 -> 165804 bytes
-rw-r--r--plugins/jetpack/images/connect-right-secondary.pngbin0 -> 62000 bytes
-rw-r--r--plugins/jetpack/images/connect-right.jpgbin0 -> 109729 bytes
-rw-r--r--plugins/jetpack/images/customize-theme.svg2
-rw-r--r--plugins/jetpack/images/generating-cash-2.svg2
-rw-r--r--plugins/jetpack/images/generating-cash.svg397
-rw-r--r--plugins/jetpack/images/get-apps-google-play.pngbin0 -> 9894 bytes
-rw-r--r--plugins/jetpack/images/get-apps-ios-store.svg1
-rw-r--r--plugins/jetpack/images/green-star.svg2
-rw-r--r--plugins/jetpack/images/jetpack-connection-performance.svg1
-rw-r--r--plugins/jetpack/images/jetpack-connection-security.svg1
-rw-r--r--plugins/jetpack/images/jetpack-design.svg2
-rw-r--r--plugins/jetpack/images/jetpack-license-activation-with-lock.pngbin0 -> 144326 bytes
-rw-r--r--plugins/jetpack/images/jetpack-license-activation-with-success.pngbin0 -> 145433 bytes
-rw-r--r--plugins/jetpack/images/jetpack-logo.svg54
-rw-r--r--plugins/jetpack/images/jetpack-logomark-blue.svg5
-rw-r--r--plugins/jetpack/images/jetpack-new-heights.svg1
-rw-r--r--plugins/jetpack/images/jetpack-performance.svg2
-rw-r--r--plugins/jetpack/images/jetpack-publicize-1.svg1
-rw-r--r--plugins/jetpack/images/jetpack-search.svg2
-rw-r--r--plugins/jetpack/images/jetpack-updates.svg2
-rw-r--r--plugins/jetpack/images/jetpack-woocommerce-logo.svg17
-rw-r--r--plugins/jetpack/images/people-around-page.svg2
-rw-r--r--plugins/jetpack/images/plans/jetpack-complete.svg3
-rw-r--r--plugins/jetpack/images/plans/jetpack-free.svg1
-rw-r--r--plugins/jetpack/images/plans/jetpack-personal.svg1
-rw-r--r--plugins/jetpack/images/plans/jetpack-premium.svg1
-rw-r--r--plugins/jetpack/images/plans/jetpack-professional.svg1
-rw-r--r--plugins/jetpack/images/plans/jetpack-security.svg4
-rw-r--r--plugins/jetpack/images/plans/wpcom-business.svg1
-rw-r--r--plugins/jetpack/images/plans/wpcom-ecommerce.svg1
-rw-r--r--plugins/jetpack/images/plans/wpcom-free.svg1
-rw-r--r--plugins/jetpack/images/plans/wpcom-personal.svg1
-rw-r--r--plugins/jetpack/images/plans/wpcom-premium.svg1
-rw-r--r--plugins/jetpack/images/products/illustration-anti-spam.pngbin0 -> 51660 bytes
-rw-r--r--plugins/jetpack/images/products/illustration-backup.pngbin0 -> 210387 bytes
-rw-r--r--plugins/jetpack/images/products/illustration-scan.pngbin0 -> 206100 bytes
-rw-r--r--plugins/jetpack/images/products/illustration-search.pngbin0 -> 100024 bytes
-rw-r--r--plugins/jetpack/images/products/illustration-videopress.pngbin0 -> 256252 bytes
-rw-r--r--plugins/jetpack/images/products/product-jetpack-anti-spam.svg4
-rw-r--r--plugins/jetpack/images/products/product-jetpack-backup.svg5
-rw-r--r--plugins/jetpack/images/products/product-jetpack-boost.svg3
-rw-r--r--plugins/jetpack/images/products/product-jetpack-crm.svg3
-rw-r--r--plugins/jetpack/images/products/product-jetpack-scan.svg4
-rw-r--r--plugins/jetpack/images/products/product-jetpack-search.svg4
-rw-r--r--plugins/jetpack/images/products/product-jetpack-security-bundle.svg3
-rw-r--r--plugins/jetpack/images/products/product-jetpack-videopress.svg4
-rw-r--r--plugins/jetpack/images/recommendations/background-alt.svg1
-rw-r--r--plugins/jetpack/images/recommendations/background.svg1
-rw-r--r--plugins/jetpack/images/recommendations/creative-mail-illustration.svg1
-rw-r--r--plugins/jetpack/images/recommendations/manage-security.svg1
-rw-r--r--plugins/jetpack/images/recommendations/mobile-app.svg1
-rw-r--r--plugins/jetpack/images/recommendations/monitor-illustration.svg1
-rw-r--r--plugins/jetpack/images/recommendations/one-click-restores.svg1
-rw-r--r--plugins/jetpack/images/recommendations/product-purchased-illustration.svg29
-rw-r--r--plugins/jetpack/images/recommendations/related-posts-illustration.jpgbin0 -> 34612 bytes
-rw-r--r--plugins/jetpack/images/recommendations/site-accelerator-illustration.svg1
-rw-r--r--plugins/jetpack/images/recommendations/site-type-illustration.jpgbin0 -> 39347 bytes
-rw-r--r--plugins/jetpack/images/recommendations/woocommerce-illustration.jpgbin0 -> 70095 bytes
-rw-r--r--plugins/jetpack/images/star.svg8
-rw-r--r--plugins/jetpack/images/stars-left.svg4
-rw-r--r--plugins/jetpack/images/stars-right.svg4
-rw-r--r--plugins/jetpack/images/stats.svg64
-rw-r--r--plugins/jetpack/images/themes.svg2
-rw-r--r--plugins/jetpack/images/white-clouds.svg4
-rw-r--r--plugins/jetpack/jest.config.js22
-rw-r--r--plugins/jetpack/jetpack.php76
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md101
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php183
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/CHANGELOG.md251
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php101
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md34
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php174
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/css/jetpack-icon.css14
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.eotbin0 -> 1654 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.svg33
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.ttfbin0 -> 1480 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.woffbin0 -> 1056 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md200
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/actions.php19
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php704
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php122
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/CHANGELOG.md114
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/actions.php32
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php347
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php31
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php526
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/CHANGELOG.md110
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php291
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/CHANGELOG.md119
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/functions.php32
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php89
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php362
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php28
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php229
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php47
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/lib/tracks/client.php41
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-config/CHANGELOG.md113
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-config/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-config/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-config/src/class-config.php293
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/CHANGELOG.md186
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/babel.config.js10
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpgbin0 -> 25037 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpgbin0 -> 55604 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js4
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js.LICENSE.txt28
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.rtl.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php107
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php53
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/CHANGELOG.md571
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php157
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php74
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php404
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php866
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-client.php488
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php690
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php49
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php2484
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php213
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php112
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php30
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php269
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php118
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php220
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php860
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php281
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php132
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php595
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php187
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php87
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php127
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php105
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php83
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php17
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md144
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php124
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/CHANGELOG.md116
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php211
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php1579
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-error/CHANGELOG.md112
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-error/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-error/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-error/src/class-error.php15
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/CHANGELOG.md123
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php254
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/CHANGELOG.md144
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/babel.config.js10
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js8
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js.LICENSE.txt5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.rtl.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin-bar.scss28
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin.jsx58
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/style.scss4
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php1219
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php188
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php151
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md431
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.js1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php312
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php607
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php171
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php92
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/js/jetpack-jitm.js267
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/CHANGELOG.md189
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.js1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/images/1x1.trans.gifbin0 -> 42 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/js/lazy-images.js219
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php516
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/webpack.config.js43
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md184
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php272
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md133
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php91
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/.babelrc9
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md50
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/admin.jsx25
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/index.jsx63
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/style.scss1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/babel.config.js10
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpgbin0 -> 25037 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpgbin0 -> 55604 bytes
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js2
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css1
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php101
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/webpack.config.js60
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-options/CHANGELOG.md178
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-options/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-options/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php689
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/CHANGELOG.md130
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php324
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php199
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md63
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php1313
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/CHANGELOG.md143
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php79
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/CHANGELOG.md130
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php81
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/CHANGELOG.md51
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-helper.php908
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php217
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-options.php88
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-plan.php140
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php250
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-settings.php59
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php335
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/button/index.jsx52
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/compact.jsx23
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/index.jsx141
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/compact.jsx26
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/index.jsx126
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/index.jsx55
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/actions.js61
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/reducer.js22
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/selectors.js5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/index.jsx136
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/notice-action.jsx48
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/index.js14
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/jetpack-settings.js73
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/site-plan.js16
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/controls.js55
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/index.js18
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/index.js23
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/jetpack-settings.js22
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-data.js5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-plan.js18
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/user-data.js5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/resolvers.js48
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/index.js18
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/jetpack-settings.js10
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-data.js12
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-plan.js12
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/user-data.js5
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php430
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php703
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-status/CHANGELOG.md177
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-status/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-status/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-host.php40
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-status.php288
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/CHANGELOG.md641
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php942
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php1272
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php631
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-health.php190
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php93
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php487
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php77
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-main.php103
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php160
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php30
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php78
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php744
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php1457
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php804
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php144
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php916
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-server.php195
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php568
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php63
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-users.php152
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php65
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php44
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php566
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php98
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php635
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php495
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php339
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php467
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php730
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php220
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php146
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php112
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php604
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php252
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php481
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php420
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php771
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php53
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php68
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php244
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php314
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php877
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php585
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php871
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php613
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php156
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php208
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php184
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php826
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/CHANGELOG.md223
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php112
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/CHANGELOG.md253
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/LICENSE.txt357
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/SECURITY.md38
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php230
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php189
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php325
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-ajax.js62
-rw-r--r--plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-callables.js79
-rw-r--r--plugins/jetpack/jetpack_vendor/i18n-map.php23
-rw-r--r--plugins/jetpack/json-api-config.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php126
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php10
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php88
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php11
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php85
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php97
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php4
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php159
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php62
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php4
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php7
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php8
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-types-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php310
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php280
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php11
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php78
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php79
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php6
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php806
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-2-endpoint.php135
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-3-endpoint.php133
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-4-endpoint.php134
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php11
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php161
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php11
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php20
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php128
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php25
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php16
-rw-r--r--plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php71
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php8
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php11
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-modules-list-v1-2-endpoint.php50
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php7
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php14
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php3
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php5
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php2
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php48
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php63
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php23
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-install-endpoint.php48
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php25
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php121
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php142
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php52
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php95
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-connect-endpoint.php9
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php7
-rw-r--r--plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php1114
-rw-r--r--plugins/jetpack/load-jetpack.php25
-rw-r--r--plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php226
-rw-r--r--plugins/jetpack/modules/calypsoify/mods-gutenberg.js24
-rw-r--r--plugins/jetpack/modules/calypsoify/mods.js34
-rw-r--r--plugins/jetpack/modules/calypsoify/style-gutenberg-rtl.min.css3
-rw-r--r--plugins/jetpack/modules/calypsoify/style-gutenberg.min.css2
-rw-r--r--plugins/jetpack/modules/calypsoify/style-rtl.min.css3
-rw-r--r--plugins/jetpack/modules/calypsoify/style.min.css2
-rw-r--r--plugins/jetpack/modules/carousel/jetpack-carousel-rtl.css2
-rw-r--r--plugins/jetpack/modules/carousel/jetpack-carousel.css1351
-rw-r--r--plugins/jetpack/modules/carousel/jetpack-carousel.js2964
-rw-r--r--plugins/jetpack/modules/carousel/jetpack-carousel.php447
-rw-r--r--plugins/jetpack/modules/carousel/readme.md11
-rw-r--r--plugins/jetpack/modules/carousel/swiper-bundle.css409
-rw-r--r--plugins/jetpack/modules/carousel/swiper-bundle.js7817
-rw-r--r--plugins/jetpack/modules/cloudflare-analytics/cloudflare-analytics.php39
-rw-r--r--plugins/jetpack/modules/comment-likes.php109
-rw-r--r--plugins/jetpack/modules/comment-likes/admin-style.css4
-rw-r--r--plugins/jetpack/modules/comment-likes/comment-like-count.js8
-rw-r--r--plugins/jetpack/modules/comments.php41
-rw-r--r--plugins/jetpack/modules/comments/base.php1
-rw-r--r--plugins/jetpack/modules/comments/comments.php49
-rw-r--r--plugins/jetpack/modules/contact-form/admin.php215
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.css67
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-style-rtl.css63
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-style-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-style.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-ui-rtl.css14
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-ui-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-ui.css14
-rw-r--r--plugins/jetpack/modules/contact-form/css/editor-ui.min.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/grunion-rtl.css2
-rw-r--r--plugins/jetpack/modules/contact-form/css/grunion.css111
-rw-r--r--plugins/jetpack/modules/contact-form/css/jquery-ui-datepicker.css2
-rw-r--r--plugins/jetpack/modules/contact-form/grunion-contact-form.php790
-rw-r--r--plugins/jetpack/modules/contact-form/grunion-form-view.php20
-rw-r--r--plugins/jetpack/modules/contact-form/js/editor-view.js100
-rw-r--r--plugins/jetpack/modules/contact-form/js/grunion-admin.js124
-rw-r--r--plugins/jetpack/modules/contact-form/js/grunion-frontend.js2
-rw-r--r--plugins/jetpack/modules/contact-form/js/grunion.js112
-rw-r--r--plugins/jetpack/modules/contact-form/js/tinymce-plugin-form-button.js10
-rw-r--r--plugins/jetpack/modules/copy-post.php4
-rw-r--r--plugins/jetpack/modules/custom-content-types.php4
-rw-r--r--plugins/jetpack/modules/custom-css/csstidy/class.csstidy.php4
-rw-r--r--plugins/jetpack/modules/custom-css/csstidy/class.csstidy_optimise.php13
-rw-r--r--plugins/jetpack/modules/custom-css/csstidy/class.csstidy_print.php4
-rw-r--r--plugins/jetpack/modules/custom-css/csstidy/data.inc.php36
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css-4.7.php40
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css.php287
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.css6
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/css/codemirror.css4
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/css/codemirror.min.css2
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/css/customizer-control.css16
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js2
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.js2
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/js/css-editor.js30
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/js/use-codemirror.js14
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/preprocessors/lessc.inc.php10
-rw-r--r--plugins/jetpack/modules/custom-css/custom-css/preprocessors/scss.inc.php3
-rw-r--r--plugins/jetpack/modules/custom-css/migrate-to-core.php2
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics.php54
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics/comics-rtl.css29
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics/comics-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics/comics.css45
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics/comics.js20
-rw-r--r--plugins/jetpack/modules/custom-post-types/comics/comics.min.css2
-rw-r--r--plugins/jetpack/modules/custom-post-types/css/nova.css6
-rw-r--r--plugins/jetpack/modules/custom-post-types/js/many-items.js28
-rw-r--r--plugins/jetpack/modules/custom-post-types/js/menu-checkboxes.js20
-rw-r--r--plugins/jetpack/modules/custom-post-types/js/nova-drag-drop.js10
-rw-r--r--plugins/jetpack/modules/custom-post-types/nova.php45
-rw-r--r--plugins/jetpack/modules/custom-post-types/portfolios.php12
-rw-r--r--plugins/jetpack/modules/custom-post-types/testimonial.php14
-rw-r--r--plugins/jetpack/modules/geo-location/class.jetpack-geo-location.php2
-rw-r--r--plugins/jetpack/modules/google-analytics.php2
-rw-r--r--plugins/jetpack/modules/google-analytics/classes/class-jetpack-google-amp-analytics.php154
-rw-r--r--plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-legacy.php114
-rw-r--r--plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-universal.php8
-rw-r--r--plugins/jetpack/modules/google-analytics/wp-google-analytics.php74
-rw-r--r--plugins/jetpack/modules/gravatar-hovercards.php94
-rw-r--r--plugins/jetpack/modules/gravatar/gravatar-hovercards-amp.css3
-rw-r--r--plugins/jetpack/modules/infinite-scroll.php17
-rw-r--r--plugins/jetpack/modules/infinite-scroll/infinity-customizer.js54
-rw-r--r--plugins/jetpack/modules/infinite-scroll/infinity.css126
-rw-r--r--plugins/jetpack/modules/infinite-scroll/infinity.js967
-rw-r--r--plugins/jetpack/modules/infinite-scroll/infinity.php524
-rw-r--r--plugins/jetpack/modules/infinite-scroll/themes/twentyeleven.css4
-rw-r--r--plugins/jetpack/modules/infinite-scroll/themes/twentyfourteen.php4
-rw-r--r--plugins/jetpack/modules/json-api.php4
-rw-r--r--plugins/jetpack/modules/latex.php53
-rw-r--r--plugins/jetpack/modules/lazy-images.php13
-rw-r--r--plugins/jetpack/modules/likes.php404
-rw-r--r--plugins/jetpack/modules/likes/jetpack-likes-settings.php93
-rw-r--r--plugins/jetpack/modules/likes/post-count-jetpack.js14
-rw-r--r--plugins/jetpack/modules/likes/post-count.js36
-rw-r--r--plugins/jetpack/modules/likes/queuehandler.js363
-rw-r--r--plugins/jetpack/modules/likes/style.css44
-rw-r--r--plugins/jetpack/modules/markdown/easy-markdown.php8
-rw-r--r--plugins/jetpack/modules/masterbar.php41
-rw-r--r--plugins/jetpack/modules/masterbar/admin-color-schemes/class-admin-color-schemes.php199
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.css490
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.min.css1
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/admin-menu.css488
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/admin-menu.js124
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/admin-menu.min.css2
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php542
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php427
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-base-admin-menu.php694
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-dashboard-switcher-tracking.php175
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-domain-only-admin-menu.php28
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-jetpack-admin-menu.php252
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-p2-admin-menu.php199
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/class-wpcom-admin-menu.php461
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/dashicon-set.php358
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/load.php126
-rw-r--r--plugins/jetpack/modules/masterbar/admin-menu/menu-mappings.php31
-rw-r--r--plugins/jetpack/modules/masterbar/inline-help/class-inline-help.php116
-rw-r--r--plugins/jetpack/modules/masterbar/inline-help/gridicon-help.svg1
-rw-r--r--plugins/jetpack/modules/masterbar/inline-help/inline-help-template.php15
-rw-r--r--plugins/jetpack/modules/masterbar/inline-help/inline-help.css74
-rw-r--r--plugins/jetpack/modules/masterbar/masterbar/class-masterbar.php1484
-rw-r--r--plugins/jetpack/modules/masterbar/masterbar/overrides.css142
-rw-r--r--plugins/jetpack/modules/masterbar/masterbar/tracks-events.js218
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/class-atomic-additional-css-manager.php61
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-customizer-nudge.php131
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-nudge-customize-control.php56
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/class-wpcom-additional-css-manager.php58
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/css/additional-css.css13
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/additional-css/js/additional-css.js58
-rw-r--r--plugins/jetpack/modules/masterbar/nudges/bootstrap.php60
-rw-r--r--plugins/jetpack/modules/masterbar/profile-edit/bootstrap.php23
-rw-r--r--plugins/jetpack/modules/masterbar/profile-edit/class-wpcom-user-profile-fields-revert.php169
-rw-r--r--plugins/jetpack/modules/masterbar/profile-edit/profile-edit.php65
-rw-r--r--plugins/jetpack/modules/masterbar/wp-posts-list/bootstrap.php22
-rw-r--r--plugins/jetpack/modules/masterbar/wp-posts-list/class-posts-list-page-notification.php144
-rw-r--r--plugins/jetpack/modules/masterbar/wp-posts-list/wp-posts-list.css33
-rw-r--r--plugins/jetpack/modules/memberships/class-jetpack-memberships.php219
-rw-r--r--plugins/jetpack/modules/module-extras.php27
-rw-r--r--plugins/jetpack/modules/module-headings.php983
-rw-r--r--plugins/jetpack/modules/module-info.php112
-rw-r--r--plugins/jetpack/modules/monitor.php112
-rw-r--r--plugins/jetpack/modules/notes.php190
-rw-r--r--plugins/jetpack/modules/photon-cdn.php41
-rw-r--r--plugins/jetpack/modules/photon-cdn/jetpack-manifest.php966
-rw-r--r--plugins/jetpack/modules/photon.php13
-rw-r--r--plugins/jetpack/modules/photon/photon.js8
-rw-r--r--plugins/jetpack/modules/plugin-search.php294
-rw-r--r--plugins/jetpack/modules/plugin-search/plugin-search.css8
-rw-r--r--plugins/jetpack/modules/plugin-search/plugin-search.js52
-rw-r--r--plugins/jetpack/modules/plugin-search/psh.svg2
-rw-r--r--plugins/jetpack/modules/post-by-email.php193
-rw-r--r--plugins/jetpack/modules/post-by-email/class-jetpack-post-by-email.php251
-rw-r--r--plugins/jetpack/modules/post-by-email/post-by-email.js110
-rw-r--r--plugins/jetpack/modules/protect.php30
-rw-r--r--plugins/jetpack/modules/protect/blocked-login-page.php63
-rw-r--r--plugins/jetpack/modules/protect/math-fallback.php14
-rw-r--r--plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.css4
-rw-r--r--plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/protect/protect-dashboard-widget.css4
-rw-r--r--plugins/jetpack/modules/protect/protect-dashboard-widget.min.css2
-rw-r--r--plugins/jetpack/modules/protect/shared-functions.php38
-rw-r--r--plugins/jetpack/modules/publicize.php110
-rw-r--r--plugins/jetpack/modules/publicize/enhanced-open-graph.php15
-rw-r--r--plugins/jetpack/modules/publicize/publicize-jetpack.php74
-rw-r--r--plugins/jetpack/modules/publicize/publicize.php139
-rw-r--r--plugins/jetpack/modules/publicize/ui.php2
-rw-r--r--plugins/jetpack/modules/related-posts.php2
-rw-r--r--plugins/jetpack/modules/related-posts/jetpack-related-posts.php92
-rw-r--r--plugins/jetpack/modules/related-posts/related-posts-customizer.js10
-rw-r--r--plugins/jetpack/modules/related-posts/related-posts-rtl.css2
-rw-r--r--plugins/jetpack/modules/related-posts/related-posts.css19
-rw-r--r--plugins/jetpack/modules/related-posts/related-posts.js227
-rw-r--r--plugins/jetpack/modules/scan/admin-bar-notice.js52
-rw-r--r--plugins/jetpack/modules/scan/class-admin-bar-notice.php211
-rw-r--r--plugins/jetpack/modules/scan/class-admin-sidebar-link.php197
-rw-r--r--plugins/jetpack/modules/scan/scan.php15
-rw-r--r--plugins/jetpack/modules/search.php12
-rw-r--r--plugins/jetpack/modules/search/class-jetpack-instant-search.php629
-rw-r--r--plugins/jetpack/modules/search/class-jetpack-search-customberg.php141
-rw-r--r--plugins/jetpack/modules/search/class-jetpack-search-customize.php283
-rw-r--r--plugins/jetpack/modules/search/class.jetpack-search.php303
-rw-r--r--plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.css5
-rw-r--r--plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.js23
-rw-r--r--plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.php128
-rw-r--r--plugins/jetpack/modules/search/customize-controls/class-label-control.css18
-rw-r--r--plugins/jetpack/modules/search/customize-controls/class-label-control.php48
-rw-r--r--plugins/jetpack/modules/search/customize-controls/customize-controls.js43
-rw-r--r--plugins/jetpack/modules/seo-tools.php19
-rw-r--r--plugins/jetpack/modules/seo-tools/class-jetpack-seo-posts.php96
-rw-r--r--plugins/jetpack/modules/seo-tools/class-jetpack-seo-titles.php339
-rw-r--r--plugins/jetpack/modules/seo-tools/class-jetpack-seo-utils.php137
-rw-r--r--plugins/jetpack/modules/seo-tools/class-jetpack-seo.php241
-rw-r--r--plugins/jetpack/modules/sharedaddy.php11
-rw-r--r--plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.css20
-rw-r--r--plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/sharedaddy/admin-sharing.css4
-rw-r--r--plugins/jetpack/modules/sharedaddy/admin-sharing.js120
-rw-r--r--plugins/jetpack/modules/sharedaddy/admin-sharing.min.css2
-rw-r--r--plugins/jetpack/modules/sharedaddy/amp-sharing.css119
-rw-r--r--plugins/jetpack/modules/sharedaddy/images/smart-like.pngbin1620 -> 2206 bytes
-rw-r--r--plugins/jetpack/modules/sharedaddy/images/smart-like@2x.pngbin3800 -> 2927 bytes
-rw-r--r--plugins/jetpack/modules/sharedaddy/recaptcha.php51
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharedaddy.php61
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharing-service.php49
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharing-sources.php449
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharing.css32
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharing.js992
-rw-r--r--plugins/jetpack/modules/sharedaddy/sharing.php1
-rw-r--r--plugins/jetpack/modules/shortcodes.php4
-rw-r--r--plugins/jetpack/modules/shortcodes/archiveorg-book.php21
-rw-r--r--plugins/jetpack/modules/shortcodes/archiveorg.php20
-rw-r--r--plugins/jetpack/modules/shortcodes/archives.php8
-rw-r--r--plugins/jetpack/modules/shortcodes/bandcamp.php3
-rw-r--r--plugins/jetpack/modules/shortcodes/brightcove.php10
-rw-r--r--plugins/jetpack/modules/shortcodes/cartodb.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/codepen.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/crowdsignal.php90
-rw-r--r--plugins/jetpack/modules/shortcodes/css/gravatar-amp.css41
-rw-r--r--plugins/jetpack/modules/shortcodes/css/quiz.css33
-rw-r--r--plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.css2
-rw-r--r--plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.css2
-rw-r--r--plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.min.css2
-rw-r--r--plugins/jetpack/modules/shortcodes/css/style.css4
-rw-r--r--plugins/jetpack/modules/shortcodes/dailymotion.php33
-rw-r--r--plugins/jetpack/modules/shortcodes/facebook.php17
-rw-r--r--plugins/jetpack/modules/shortcodes/flatio.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/flickr.php306
-rw-r--r--plugins/jetpack/modules/shortcodes/getty.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/gist.php43
-rw-r--r--plugins/jetpack/modules/shortcodes/googleapps.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/googlemaps.php17
-rw-r--r--plugins/jetpack/modules/shortcodes/googleplus.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/gravatar.php18
-rw-r--r--plugins/jetpack/modules/shortcodes/houzz.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/inline-pdfs.php36
-rw-r--r--plugins/jetpack/modules/shortcodes/instagram.php323
-rw-r--r--plugins/jetpack/modules/shortcodes/js/brightcove.js2
-rw-r--r--plugins/jetpack/modules/shortcodes/js/jmpress.js381
-rw-r--r--plugins/jetpack/modules/shortcodes/js/main.js32
-rw-r--r--plugins/jetpack/modules/shortcodes/js/quiz.js49
-rw-r--r--plugins/jetpack/modules/shortcodes/js/recipes-printthis.js39
-rw-r--r--plugins/jetpack/modules/shortcodes/js/recipes.js16
-rw-r--r--plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js30
-rw-r--r--plugins/jetpack/modules/shortcodes/kickstarter.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/mailchimp.php9
-rw-r--r--plugins/jetpack/modules/shortcodes/medium.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/mixcloud.php26
-rw-r--r--plugins/jetpack/modules/shortcodes/others.php18
-rw-r--r--plugins/jetpack/modules/shortcodes/pinterest.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/presentations.php24
-rw-r--r--plugins/jetpack/modules/shortcodes/quiz.php62
-rw-r--r--plugins/jetpack/modules/shortcodes/recipe.php51
-rw-r--r--plugins/jetpack/modules/shortcodes/scribd.php33
-rw-r--r--plugins/jetpack/modules/shortcodes/sitemap.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/slideshare.php34
-rw-r--r--plugins/jetpack/modules/shortcodes/slideshow.php42
-rw-r--r--plugins/jetpack/modules/shortcodes/smartframe.php114
-rw-r--r--plugins/jetpack/modules/shortcodes/soundcloud.php16
-rw-r--r--plugins/jetpack/modules/shortcodes/spotify.php33
-rw-r--r--plugins/jetpack/modules/shortcodes/ted.php25
-rw-r--r--plugins/jetpack/modules/shortcodes/tweet.php20
-rw-r--r--plugins/jetpack/modules/shortcodes/twitchtv.php14
-rw-r--r--plugins/jetpack/modules/shortcodes/twitter-timeline.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/unavailable.php3
-rw-r--r--plugins/jetpack/modules/shortcodes/untappd-menu.php4
-rw-r--r--plugins/jetpack/modules/shortcodes/upcoming-events.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/ustream.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/videopress.php9
-rw-r--r--plugins/jetpack/modules/shortcodes/vimeo.php22
-rw-r--r--plugins/jetpack/modules/shortcodes/vine.php2
-rw-r--r--plugins/jetpack/modules/shortcodes/vr.php16
-rw-r--r--plugins/jetpack/modules/shortcodes/wordads.php4
-rw-r--r--plugins/jetpack/modules/shortcodes/wufoo.php10
-rw-r--r--plugins/jetpack/modules/shortcodes/youtube.php267
-rw-r--r--plugins/jetpack/modules/shortlinks.php68
-rw-r--r--plugins/jetpack/modules/simple-payments/paypal-express-checkout.js46
-rw-r--r--plugins/jetpack/modules/simple-payments/simple-payments.css30
-rw-r--r--plugins/jetpack/modules/simple-payments/simple-payments.php284
-rw-r--r--plugins/jetpack/modules/site-icon/site-icon-functions.php34
-rw-r--r--plugins/jetpack/modules/sitemaps.php19
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-fallback.php8
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-image-fallback.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-image.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-master-fallback.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-master.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-news-fallback.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-news.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-page-fallback.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-page.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-video-fallback.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer-video.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-buffer.php26
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-builder.php40
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-constants.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-finder.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-librarian.php6
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-logger.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-state.php8
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemap-stylist.php2
-rw-r--r--plugins/jetpack/modules/sitemaps/sitemaps.php16
-rw-r--r--plugins/jetpack/modules/sso.php193
-rw-r--r--plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php30
-rw-r--r--plugins/jetpack/modules/sso/class.jetpack-sso-notices.php377
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login-rtl.css27
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login.css27
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login.js4
-rw-r--r--plugins/jetpack/modules/sso/jetpack-sso-login.min.css2
-rw-r--r--plugins/jetpack/modules/stats.php891
-rw-r--r--plugins/jetpack/modules/stats/class-jetpack-stats-upgrade-nudges.php584
-rw-r--r--plugins/jetpack/modules/subscriptions.php38
-rw-r--r--plugins/jetpack/modules/subscriptions/views.php408
-rw-r--r--plugins/jetpack/modules/theme-tools.php1
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentynineteen.php84
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css2
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty.css54
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwenty.php118
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css1
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css98
-rw-r--r--plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php77
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/blog-display.php32
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/customizer.js26
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/featured-images.php18
-rw-r--r--plugins/jetpack/modules/theme-tools/content-options/post-details.php15
-rw-r--r--plugins/jetpack/modules/theme-tools/devicepx.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/featured-content.php8
-rw-r--r--plugins/jetpack/modules/theme-tools/js/suggest.js2
-rw-r--r--plugins/jetpack/modules/theme-tools/responsive-videos.php7
-rw-r--r--plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js13
-rw-r--r--plugins/jetpack/modules/theme-tools/site-breadcrumbs.php22
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo.php46
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php97
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php98
-rw-r--r--plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js8
-rw-r--r--plugins/jetpack/modules/theme-tools/social-links.php2
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu.php8
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php16
-rw-r--r--plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg35
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery.php41
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/circle-layout.php7
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/carousel-image-args.php10
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/item.php1
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/rectangular-layout.php17
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/square-layout.php14
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-item.php4
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-layout.php10
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css2
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.css3
-rw-r--r--plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.js126
-rw-r--r--plugins/jetpack/modules/vaultpress.php2
-rw-r--r--plugins/jetpack/modules/verification-tools.php4
-rw-r--r--plugins/jetpack/modules/verification-tools/blog-verification-tools.php19
-rw-r--r--plugins/jetpack/modules/videopress.php4
-rw-r--r--plugins/jetpack/modules/videopress/class-videopress-attachment-metadata.php183
-rw-r--r--plugins/jetpack/modules/videopress/class.jetpack-videopress.php130
-rw-r--r--plugins/jetpack/modules/videopress/class.videopress-edit-attachment.php217
-rw-r--r--plugins/jetpack/modules/videopress/class.videopress-gutenberg.php57
-rw-r--r--plugins/jetpack/modules/videopress/class.videopress-player.php13
-rw-r--r--plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php45
-rw-r--r--plugins/jetpack/modules/videopress/css/editor-rtl.css2
-rw-r--r--plugins/jetpack/modules/videopress/css/editor-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/videopress/css/editor.css2
-rw-r--r--plugins/jetpack/modules/videopress/css/editor.min.css2
-rw-r--r--plugins/jetpack/modules/videopress/editor-media-view.php18
-rw-r--r--plugins/jetpack/modules/videopress/js/editor-view.js24
-rw-r--r--plugins/jetpack/modules/videopress/js/gutenberg-video-upload.js98
-rw-r--r--plugins/jetpack/modules/videopress/js/media-video-widget-extensions.js10
-rw-r--r--plugins/jetpack/modules/videopress/js/videopress-plupload.js93
-rw-r--r--plugins/jetpack/modules/videopress/js/videopress-uploader.js14
-rw-r--r--plugins/jetpack/modules/videopress/shortcode.php18
-rw-r--r--plugins/jetpack/modules/videopress/utility-functions.php178
-rw-r--r--plugins/jetpack/modules/videopress/videopress-admin-rtl.css3
-rw-r--r--plugins/jetpack/modules/videopress/videopress-admin-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/videopress/videopress-admin.css3
-rw-r--r--plugins/jetpack/modules/videopress/videopress-admin.min.css2
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions.php399
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.css99
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css2
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.css99
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js84
-rw-r--r--plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.min.css2
-rw-r--r--plugins/jetpack/modules/widgets/authors.php2
-rw-r--r--plugins/jetpack/modules/widgets/blog-stats.php10
-rw-r--r--plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php641
-rw-r--r--plugins/jetpack/modules/widgets/contact-info.php42
-rw-r--r--plugins/jetpack/modules/widgets/contact-info/contact-info-admin.js13
-rw-r--r--plugins/jetpack/modules/widgets/contact-info/contact-info-map.css4
-rw-r--r--plugins/jetpack/modules/widgets/customizer-utils.js16
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law.php54
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law-admin.js10
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law.js75
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/form.php9
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/style.css31
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/widget-amp.php38
-rw-r--r--plugins/jetpack/modules/widgets/eu-cookie-law/widget.php24
-rw-r--r--plugins/jetpack/modules/widgets/facebook-likebox.php169
-rw-r--r--plugins/jetpack/modules/widgets/flickr.php4
-rw-r--r--plugins/jetpack/modules/widgets/gallery.php44
-rw-r--r--plugins/jetpack/modules/widgets/gallery/js/admin.js20
-rw-r--r--plugins/jetpack/modules/widgets/gallery/js/gallery.js6
-rw-r--r--plugins/jetpack/modules/widgets/goodreads.php2
-rw-r--r--plugins/jetpack/modules/widgets/goodreads/css/goodreads.css2
-rw-r--r--plugins/jetpack/modules/widgets/google-translate.php4
-rw-r--r--plugins/jetpack/modules/widgets/google-translate/google-translate.js7
-rw-r--r--plugins/jetpack/modules/widgets/gravatar-profile.php4
-rw-r--r--plugins/jetpack/modules/widgets/image-widget.php3
-rw-r--r--plugins/jetpack/modules/widgets/instagram/instagram.css55
-rw-r--r--plugins/jetpack/modules/widgets/internet-defense-league.php13
-rw-r--r--plugins/jetpack/modules/widgets/mailchimp.php62
-rw-r--r--plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php137
-rw-r--r--plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php178
-rw-r--r--plugins/jetpack/modules/widgets/milestone.php12
-rw-r--r--plugins/jetpack/modules/widgets/milestone/admin.js14
-rw-r--r--plugins/jetpack/modules/widgets/milestone/class-milestone-widget.php753
-rw-r--r--plugins/jetpack/modules/widgets/milestone/milestone-widget.css41
-rw-r--r--plugins/jetpack/modules/widgets/milestone/milestone.js40
-rw-r--r--plugins/jetpack/modules/widgets/milestone/milestone.php694
-rw-r--r--plugins/jetpack/modules/widgets/milestone/style-admin.css21
-rw-r--r--plugins/jetpack/modules/widgets/my-community.php84
-rw-r--r--plugins/jetpack/modules/widgets/rsslinks-widget.php233
-rw-r--r--plugins/jetpack/modules/widgets/search.php483
-rw-r--r--plugins/jetpack/modules/widgets/search/css/search-widget-admin-ui.css8
-rw-r--r--plugins/jetpack/modules/widgets/search/js/search-widget-admin.js6
-rw-r--r--plugins/jetpack/modules/widgets/search/js/search-widget.js58
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments.php33
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments/admin-warning.php6
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments/customizer.css8
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments/customizer.js66
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments/form.php6
-rw-r--r--plugins/jetpack/modules/widgets/simple-payments/widget.php4
-rw-r--r--plugins/jetpack/modules/widgets/social-icons.php217
-rw-r--r--plugins/jetpack/modules/widgets/social-icons/social-icons-admin.css6
-rw-r--r--plugins/jetpack/modules/widgets/social-icons/social-icons-admin.js71
-rw-r--r--plugins/jetpack/modules/widgets/social-media-icons.php60
-rw-r--r--plugins/jetpack/modules/widgets/social-media-icons/style.css4
-rw-r--r--plugins/jetpack/modules/widgets/top-posts.php314
-rw-r--r--plugins/jetpack/modules/widgets/twitter-timeline-admin.js39
-rw-r--r--plugins/jetpack/modules/widgets/twitter-timeline.php462
-rw-r--r--plugins/jetpack/modules/widgets/upcoming-events.php149
-rw-r--r--plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget-base.php6
-rw-r--r--plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget.php4
-rw-r--r--plugins/jetpack/modules/woocommerce-analytics.php22
-rw-r--r--plugins/jetpack/modules/woocommerce-analytics/class-jetpack-woocommerce-analytics.php94
-rw-r--r--plugins/jetpack/modules/woocommerce-analytics/classes/class-jetpack-woocommerce-analytics-universal.php628
-rw-r--r--plugins/jetpack/modules/wordads.php9
-rw-r--r--plugins/jetpack/modules/wordads/class-wordads.php869
-rw-r--r--plugins/jetpack/modules/wordads/js/wordads-ccpa.js339
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-admin.php60
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-api.php159
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-california-privacy.php282
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-ccpa-do-not-sell-link-widget.php39
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-cron.php53
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-params.php257
-rw-r--r--plugins/jetpack/modules/wordads/php/class-wordads-sidebar-widget.php153
-rw-r--r--plugins/jetpack/modules/wordads/php/networks/amazon.php7
-rw-r--r--plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php164
-rw-r--r--plugins/jetpack/modules/wpcom-block-editor/functions.editor-type.php77
-rw-r--r--plugins/jetpack/modules/wpcom-tos/wpcom-tos.php41
-rw-r--r--plugins/jetpack/modules/wpgroho.js99
-rw-r--r--plugins/jetpack/readme.txt442
-rw-r--r--plugins/jetpack/require-lib.php42
-rw-r--r--plugins/jetpack/sal/class.json-api-links.php10
-rw-r--r--plugins/jetpack/sal/class.json-api-post-base.php37
-rw-r--r--plugins/jetpack/sal/class.json-api-site-base.php122
-rw-r--r--plugins/jetpack/sal/class.json-api-site-jetpack-base.php7
-rw-r--r--plugins/jetpack/sal/class.json-api-site-jetpack.php103
-rw-r--r--plugins/jetpack/src/class-tracking.php82
-rw-r--r--plugins/jetpack/uninstall.php82
-rw-r--r--plugins/jetpack/vendor/autoload.php2
-rw-r--r--plugins/jetpack/vendor/autoload_packages.php122
-rw-r--r--plugins/jetpack/vendor/composer/ClassLoader.php157
-rw-r--r--plugins/jetpack/vendor/composer/InstalledVersions.php337
-rw-r--r--plugins/jetpack/vendor/composer/autoload_classmap.php217
-rw-r--r--plugins/jetpack/vendor/composer/autoload_files.php6
-rw-r--r--plugins/jetpack/vendor/composer/autoload_namespaces.php1
-rw-r--r--plugins/jetpack/vendor/composer/autoload_real.php23
-rw-r--r--plugins/jetpack/vendor/composer/autoload_static.php242
-rw-r--r--plugins/jetpack/vendor/composer/installed.json2401
-rw-r--r--plugins/jetpack/vendor/composer/installed.php320
-rw-r--r--plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php593
-rw-r--r--plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php21
-rw-r--r--plugins/jetpack/vendor/composer/platform_check.php26
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php147
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php90
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php90
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-container.php150
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php76
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php86
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php99
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php194
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php93
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php153
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php164
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php92
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php164
-rw-r--r--plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php69
-rwxr-xr-xplugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md31
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE13
-rwxr-xr-xplugins/jetpack/vendor/nojimage/twitter-text-php/README.md148
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php47
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php100
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json76
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php934
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php215
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php29
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php572
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php190
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php203
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php190
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php838
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php191
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php1646
-rw-r--r--plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php258
-rw-r--r--plugins/jetpack/views/admin/deactivation-dialog.php58
-rw-r--r--plugins/jetpack/views/admin/jetpack-plugin-portal-containers.php21
-rw-r--r--plugins/jetpack/views/admin/network-settings.php105
-rw-r--r--plugins/public-post-preview/.npmrc2
-rw-r--r--plugins/public-post-preview/.nvmrc1
-rwxr-xr-xplugins/public-post-preview/CHANGELOG.md11
-rw-r--r--plugins/public-post-preview/js/dist/gutenberg-integration.asset.php1
-rw-r--r--plugins/public-post-preview/js/dist/gutenberg-integration.js1
-rw-r--r--plugins/public-post-preview/js/public-post-preview.js72
-rw-r--r--plugins/public-post-preview/js/public-post-preview.min.js2
-rw-r--r--plugins/public-post-preview/js/src/components/preview-toggle/index.js141
-rw-r--r--plugins/public-post-preview/js/src/index.js9
-rw-r--r--plugins/public-post-preview/public-post-preview.php93
-rw-r--r--plugins/public-post-preview/readme.txt29
-rw-r--r--plugins/table-of-contents-plus/LICENSE.md340
-rw-r--r--plugins/table-of-contents-plus/README.md20
-rw-r--r--plugins/table-of-contents-plus/class-toc-plus.php1793
-rw-r--r--plugins/table-of-contents-plus/phpcs.xml26
-rw-r--r--plugins/table-of-contents-plus/readme.txt11
-rw-r--r--plugins/table-of-contents-plus/toc.php1801
-rw-r--r--plugins/wordpress-importer/class-wp-import.php1407
-rw-r--r--plugins/wordpress-importer/compat.php69
-rw-r--r--plugins/wordpress-importer/parsers.php695
-rw-r--r--plugins/wordpress-importer/parsers/class-wxr-parser-regex.php318
-rw-r--r--plugins/wordpress-importer/parsers/class-wxr-parser-simplexml.php231
-rw-r--r--plugins/wordpress-importer/parsers/class-wxr-parser-xml.php177
-rw-r--r--plugins/wordpress-importer/parsers/class-wxr-parser.php50
-rw-r--r--plugins/wordpress-importer/readme.txt240
-rw-r--r--plugins/wordpress-importer/wordpress-importer.php1210
1608 files changed, 164624 insertions, 29050 deletions
diff --git a/plugins/classic-editor/LICENSE.md b/plugins/classic-editor/LICENSE.md
index 26279ac8..7918e383 100644
--- a/plugins/classic-editor/LICENSE.md
+++ b/plugins/classic-editor/LICENSE.md
@@ -1,400 +1,400 @@
-### WordPress - Web publishing software
-
- Copyright 2011-2019 by the contributors
-
-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
-
-This program incorporates work covered by the following copyright and
-permission notices:
-
- b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com -
- http://tidakada.com
-
- Wherever third party code has been used, credit has been given in the code's
- comments.
-
- b2 is released under the GPL
-
-and
-
- WordPress - Web publishing software
-
- Copyright 2003-2010 by the contributors
-
- WordPress is released under the GPL
-
----
-
-### 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.
-
-### 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.
-
- one line to give the program's name and an idea of what it does.
- Copyright (C) yyyy 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 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](http://www.gnu.org/licenses/lgpl.html) instead of this
-License.
+### WordPress - Web publishing software
+
+ Copyright 2011-2019 by the contributors
+
+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
+
+This program incorporates work covered by the following copyright and
+permission notices:
+
+ b2 is (c) 2001, 2002 Michel Valdrighi - m@tidakada.com -
+ http://tidakada.com
+
+ Wherever third party code has been used, credit has been given in the code's
+ comments.
+
+ b2 is released under the GPL
+
+and
+
+ WordPress - Web publishing software
+
+ Copyright 2003-2010 by the contributors
+
+ WordPress is released under the GPL
+
+---
+
+### 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.
+
+### 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.
+
+ one line to give the program's name and an idea of what it does.
+ Copyright (C) yyyy 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 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](http://www.gnu.org/licenses/lgpl.html) instead of this
+License.
diff --git a/plugins/classic-editor/classic-editor.php b/plugins/classic-editor/classic-editor.php
index afac3c20..3a51cafb 100644
--- a/plugins/classic-editor/classic-editor.php
+++ b/plugins/classic-editor/classic-editor.php
@@ -5,13 +5,16 @@
* Plugin Name: Classic Editor
* Plugin URI: https://wordpress.org/plugins/classic-editor/
* Description: Enables the WordPress classic editor and the old-style Edit Post screen with TinyMCE, Meta Boxes, etc. Supports the older plugins that extend this screen.
- * Version: 1.5
+ * Version: 1.6.2
* Author: WordPress Contributors
* Author URI: https://github.com/WordPress/classic-editor/
* License: GPLv2 or later
* License URI: http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* Text Domain: classic-editor
* Domain Path: /languages
+ * Requires at least: 4.9
+ * Tested up to: 5.8
+ * Requires PHP: 5.2.4
*
* This program is free software; you can redistribute it and/or modify it under the terms of the GNU
* General Public License version 2, as published by the Free Software Foundation. You may NOT assume
@@ -37,7 +40,6 @@ class Classic_Editor {
$gutenberg = function_exists( 'gutenberg_register_scripts_and_styles' );
register_activation_hook( __FILE__, array( __CLASS__, 'activate' ) );
- register_uninstall_hook( __FILE__, array( __CLASS__, 'uninstall' ) );
$settings = self::get_settings();
@@ -86,7 +88,12 @@ class Classic_Editor {
add_action( 'admin_head-edit.php', array( __CLASS__, 'add_edit_php_inline_style' ) );
add_action( 'edit_form_top', array( __CLASS__, 'remember_classic_editor' ) );
- add_filter( 'block_editor_settings', array( __CLASS__, 'remember_block_editor' ), 10, 2 );
+
+ if ( version_compare( $GLOBALS['wp_version'], '5.8', '>=' ) ) {
+ add_filter( 'block_editor_settings_all', array( __CLASS__, 'remember_block_editor' ), 10, 2 );
+ } else {
+ add_filter( 'block_editor_settings', array( __CLASS__, 'remember_block_editor' ), 10, 2 );
+ }
// Post state (edit.php)
add_filter( 'display_post_states', array( __CLASS__, 'add_post_state' ), 10, 2 );
@@ -290,7 +297,7 @@ class Classic_Editor {
$which = get_post_meta( $post_id, 'classic-editor-remember', true );
if ( $which ) {
- // The editor choice will be "remembered" when the post is opened in either Classic or Block editor.
+ // The editor choice will be "remembered" when the post is opened in either the classic or the block editor.
if ( 'classic-editor' === $which ) {
return true;
} elseif ( 'block-editor' === $which ) {
@@ -336,9 +343,18 @@ class Classic_Editor {
'sanitize_callback' => array( __CLASS__, 'validate_option_allow_users' ),
) );
- add_option_whitelist( array(
- 'writing' => array( 'classic-editor-replace', 'classic-editor-allow-users' ),
- ) );
+ $allowed_options = array(
+ 'writing' => array(
+ 'classic-editor-replace',
+ 'classic-editor-allow-users'
+ ),
+ );
+
+ if ( function_exists( 'add_allowed_options' ) ) {
+ add_allowed_options( $allowed_options );
+ } else {
+ add_option_whitelist( $allowed_options );
+ }
$heading_1 = __( 'Default editor for all users', 'classic-editor' );
$heading_2 = __( 'Allow users to switch editors', 'classic-editor' );
@@ -390,11 +406,11 @@ class Classic_Editor {
<div class="classic-editor-options">
<p>
<input type="radio" name="classic-editor-replace" id="classic-editor-classic" value="classic"<?php if ( $settings['editor'] === 'classic' ) echo ' checked'; ?> />
- <label for="classic-editor-classic"><?php _ex( 'Classic Editor', 'Editor Name', 'classic-editor' ); ?></label>
+ <label for="classic-editor-classic"><?php _ex( 'Classic editor', 'Editor Name', 'classic-editor' ); ?></label>
</p>
<p>
<input type="radio" name="classic-editor-replace" id="classic-editor-block" value="block"<?php if ( $settings['editor'] !== 'classic' ) echo ' checked'; ?> />
- <label for="classic-editor-block"><?php _ex( 'Block Editor', 'Editor Name', 'classic-editor' ); ?></label>
+ <label for="classic-editor-block"><?php _ex( 'Block editor', 'Editor Name', 'classic-editor' ); ?></label>
</p>
</div>
<script>
@@ -467,11 +483,11 @@ class Classic_Editor {
<td>
<p>
<input type="radio" name="classic-editor-replace" id="classic-editor-classic" value="classic"<?php if ( $editor !== 'block' ) echo ' checked'; ?> />
- <label for="classic-editor-classic"><?php _ex( 'Classic Editor', 'Editor Name', 'classic-editor' ); ?></label>
+ <label for="classic-editor-classic"><?php _ex( 'Classic editor', 'Editor Name', 'classic-editor' ); ?></label>
</p>
<p>
<input type="radio" name="classic-editor-replace" id="classic-editor-block" value="block"<?php if ( $editor === 'block' ) echo ' checked'; ?> />
- <label for="classic-editor-block"><?php _ex( 'Block Editor', 'Editor Name', 'classic-editor' ); ?></label>
+ <label for="classic-editor-block"><?php _ex( 'Block editor', 'Editor Name', 'classic-editor' ); ?></label>
</p>
</td>
</tr>
@@ -480,7 +496,7 @@ class Classic_Editor {
<td>
<input type="checkbox" name="classic-editor-allow-sites" id="classic-editor-allow-sites" value="allow"<?php if ( $is_checked ) echo ' checked'; ?>>
<label for="classic-editor-allow-sites"><?php _e( 'Allow site admins to change settings', 'classic-editor' ); ?></label>
- <p class="description"><?php _e( 'By default the Block Editor is replaced with the Classic Editor and users cannot switch editors.', 'classic-editor' ); ?></p>
+ <p class="description"><?php _e( 'By default the block editor is replaced with the classic editor and users cannot switch editors.', 'classic-editor' ); ?></p>
</td>
</tr>
</table>
@@ -508,7 +524,7 @@ class Classic_Editor {
/**
* Add a hidden field in edit-form-advanced.php
- * to help redirect back to the Classic Editor on saving.
+ * to help redirect back to the classic editor on saving.
*/
public static function add_redirect_helper() {
?>
@@ -517,7 +533,7 @@ class Classic_Editor {
}
/**
- * Remember when the Classic Editor was used to edit a post.
+ * Remember when the classic editor was used to edit a post.
*/
public static function remember_classic_editor( $post ) {
$post_type = get_post_type( $post );
@@ -528,9 +544,17 @@ class Classic_Editor {
}
/**
- * Remember when the Block Editor was used to edit a post.
+ * Remember when the block editor was used to edit a post.
*/
- public static function remember_block_editor( $editor_settings, $post ) {
+ public static function remember_block_editor( $editor_settings, $context ) {
+ if ( is_a( $context, 'WP_Post' ) ) {
+ $post = $context;
+ } elseif ( ! empty( $context->post ) ) {
+ $post = $context->post;
+ } else {
+ return $editor_settings;
+ }
+
$post_type = get_post_type( $post );
if ( $post_type && self::can_edit_post_type( $post_type ) ) {
@@ -549,13 +573,13 @@ class Classic_Editor {
/**
* Choose which editor to use for a post.
*
- * Passes through `$which_editor` for Block Editor (it's sets to `true` but may be changed by another plugin).
+ * Passes through `$which_editor` for block editor (it's sets to `true` but may be changed by another plugin).
*
* @uses `use_block_editor_for_post` filter.
*
- * @param boolean $use_block_editor True for Block Editor, false for Classic Editor.
+ * @param boolean $use_block_editor True for block editor, false for classic editor.
* @param WP_Post $post The post being edited.
- * @return boolean True for Block Editor, false for Classic Editor.
+ * @return boolean True for block editor, false for classic editor.
*/
public static function choose_editor( $use_block_editor, $post ) {
$settings = self::get_settings();
@@ -571,7 +595,7 @@ class Classic_Editor {
if ( empty( $post->ID ) || $post->post_status === 'auto-draft' ) {
if (
( $settings['editor'] === 'classic' && ! isset( $_GET['classic-editor__forget'] ) ) || // Add New
- ( isset( $_GET['classic-editor'] ) && isset( $_GET['classic-editor__forget'] ) ) // Switch to Classic Editor when no draft post.
+ ( isset( $_GET['classic-editor'] ) && isset( $_GET['classic-editor__forget'] ) ) // Switch to classic editor when no draft post.
) {
$use_block_editor = false;
}
@@ -637,19 +661,24 @@ class Classic_Editor {
public static function do_meta_box( $post ) {
$edit_url = get_edit_post_link( $post->ID, 'raw' );
- // Switching to Block Editor.
+ // Switching to block editor.
$edit_url = remove_query_arg( 'classic-editor', $edit_url );
// Forget the previous value when going to a specific editor.
$edit_url = add_query_arg( 'classic-editor__forget', '', $edit_url );
?>
<p style="margin: 1em 0;">
- <a href="<?php echo esc_url( $edit_url ); ?>"><?php _e( 'Switch to Block Editor', 'classic-editor' ); ?></a>
+ <a href="<?php echo esc_url( $edit_url ); ?>"><?php _e( 'Switch to block editor', 'classic-editor' ); ?></a>
</p>
<?php
}
public static function enqueue_block_editor_scripts() {
+ // get_enabled_editors_for_post() needs a WP_Post or post_ID.
+ if ( empty( $GLOBALS['post'] ) ) {
+ return;
+ }
+
$editors = self::get_enabled_editors_for_post( $GLOBALS['post'] );
if ( ! $editors['classic_editor'] ) {
@@ -668,7 +697,7 @@ class Classic_Editor {
wp_localize_script(
'classic-editor-plugin',
'classicEditorPluginL10n',
- array( 'linkText' => __( 'Switch to Classic Editor', 'classic-editor' ) )
+ array( 'linkText' => __( 'Switch to classic editor', 'classic-editor' ) )
);
}
@@ -765,7 +794,7 @@ class Classic_Editor {
/**
* Adds links to the post/page screens to edit any post or page in
- * the Classic Editor or Block Editor.
+ * the classic editor or block editor.
*
* @param array $actions Post actions.
* @param WP_Post $post Edited post.
@@ -800,18 +829,18 @@ class Classic_Editor {
// Build the edit actions. See also: WP_Posts_List_Table::handle_row_actions().
$title = _draft_or_post_title( $post->ID );
- // Link to the Block Editor.
+ // Link to the block editor.
$url = remove_query_arg( 'classic-editor', $edit_url );
- $text = _x( 'Edit (Block Editor)', 'Editor Name', 'classic-editor' );
+ $text = _x( 'Edit (block editor)', 'Editor Name', 'classic-editor' );
/* translators: %s: post title */
- $label = sprintf( __( 'Edit &#8220;%s&#8221; in the Block Editor', 'classic-editor' ), $title );
+ $label = sprintf( __( 'Edit &#8220;%s&#8221; in the block editor', 'classic-editor' ), $title );
$edit_block = sprintf( '<a href="%s" aria-label="%s">%s</a>', esc_url( $url ), esc_attr( $label ), $text );
- // Link to the Classic Editor.
+ // Link to the classic editor.
$url = add_query_arg( 'classic-editor', '', $edit_url );
- $text = _x( 'Edit (Classic Editor)', 'Editor Name', 'classic-editor' );
+ $text = _x( 'Edit (classic editor)', 'Editor Name', 'classic-editor' );
/* translators: %s: post title */
- $label = sprintf( __( 'Edit &#8220;%s&#8221; in the Classic Editor', 'classic-editor' ), $title );
+ $label = sprintf( __( 'Edit &#8220;%s&#8221; in the classic editor', 'classic-editor' ), $title );
$edit_classic = sprintf( '<a href="%s" aria-label="%s">%s</a>', esc_url( $url ), esc_attr( $label ), $text );
$edit_actions = array(
@@ -839,11 +868,11 @@ class Classic_Editor {
if ( ! $editors['classic_editor'] && ! $editors['block_editor'] ) {
return $post_states;
} elseif ( $editors['classic_editor'] && ! $editors['block_editor'] ) {
- // Forced to Classic Editor.
- $state = '<span class="classic-editor-forced-state">' . _x( 'Classic Editor', 'Editor Name', 'classic-editor' ) . '</span>';
+ // Forced to classic editor.
+ $state = '<span class="classic-editor-forced-state">' . _x( 'classic editor', 'Editor Name', 'classic-editor' ) . '</span>';
} elseif ( ! $editors['classic_editor'] && $editors['block_editor'] ) {
- // Forced to Block Editor.
- $state = '<span class="classic-editor-forced-state">' . _x( 'Block Editor', 'Editor Name', 'classic-editor' ) . '</span>';
+ // Forced to block editor.
+ $state = '<span class="classic-editor-forced-state">' . _x( 'block editor', 'Editor Name', 'classic-editor' ) . '</span>';
} else {
$last_editor = get_post_meta( $post->ID, 'classic-editor-remember', true );
@@ -856,7 +885,7 @@ class Classic_Editor {
$is_classic = ( $settings['editor'] === 'classic' );
}
- $state = $is_classic ? _x( 'Classic Editor', 'Editor Name', 'classic-editor' ) : _x( 'Block Editor', 'Editor Name', 'classic-editor' );
+ $state = $is_classic ? _x( 'Classic editor', 'Editor Name', 'classic-editor' ) : _x( 'Block editor', 'Editor Name', 'classic-editor' );
}
// Fix PHP 7+ warnings if another plugin returns unexpected type.
@@ -913,6 +942,8 @@ class Classic_Editor {
* Set defaults on activation.
*/
public static function activate() {
+ register_uninstall_hook( __FILE__, array( __CLASS__, 'uninstall' ) );
+
if ( is_multisite() ) {
add_network_option( null, 'classic-editor-replace', 'classic' );
add_network_option( null, 'classic-editor-allow-sites', 'disallow' );
diff --git a/plugins/classic-editor/js/block-editor-plugin.js b/plugins/classic-editor/js/block-editor-plugin.js
index 5b365974..71e58d5b 100644
--- a/plugins/classic-editor/js/block-editor-plugin.js
+++ b/plugins/classic-editor/js/block-editor-plugin.js
@@ -8,7 +8,7 @@
var createElement = wp.element.createElement;
var PluginMoreMenuItem = wp.editPost.PluginMoreMenuItem;
var url = wp.url.addQueryArgs( document.location.href, { 'classic-editor': '', 'classic-editor__forget': '' } );
- var linkText = lodash.get( window, [ 'classicEditorPluginL10n', 'linkText' ] ) || 'Switch to Classic Editor';
+ var linkText = lodash.get( window, [ 'classicEditorPluginL10n', 'linkText' ] ) || 'Switch to classic editor';
return createElement(
PluginMoreMenuItem,
diff --git a/plugins/classic-editor/readme.txt b/plugins/classic-editor/readme.txt
index 71438f26..13638399 100644
--- a/plugins/classic-editor/readme.txt
+++ b/plugins/classic-editor/readme.txt
@@ -2,8 +2,8 @@
Contributors: wordpressdotorg, azaozz, melchoyce, chanthaboune, alexislloyd, pento, youknowriad, desrosj, luciano-croce
Tags: gutenberg, disable, disable gutenberg, editor, classic editor, block editor
Requires at least: 4.9
-Tested up to: 5.3
-Stable tag: 1.4
+Tested up to: 5.8
+Stable tag: 1.6.2
Requires PHP: 5.2.4
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -25,12 +25,23 @@ At a glance, this plugin adds the following:
In addition, the Classic Editor plugin includes several filters that let other plugins control the settings, and the editor choice per post and per post type.
-By default, this plugin hides all functionality available in the new Block Editor ("Gutenberg").
+By default, this plugin hides all functionality available in the new block editor ("Gutenberg").
== Changelog ==
+= 1.6.2 =
+* Fixed bug that was preventing saving of the last used editor.
+
+= 1.6.1 =
+* Fixed a warning on the block editor based widgets screen.
+* Fixed use of a deprecated filter.
+
+= 1.6 =
+* Updated for WordPress 5.5.
+* Fixed minor issues with calling deprecated functions, needlessly registering uninstall hook, and capitalization of some strings.
+
= 1.5 =
-* Updated for WordPress 5.2 and Gutenberg 5.3+.
+* Updated for WordPress 5.2 and Gutenberg 5.3.
* Enhanced and fixed the "open posts in the last editor used to edit them" logic.
* Fixed adding post state so it can easily be accessed from other plugins.
@@ -38,11 +49,11 @@ By default, this plugin hides all functionality available in the new Block Edito
* On network installations removed the restriction for only network activation.
* Added support for network administrators to choose the default network-wide editor.
* Fixed the settings link in the warning on network About screen.
-* Properly added the "Switch to Classic Editor" menu item to the Block Editor menu.
+* Properly added the "Switch to classic editor" menu item to the block editor menu.
= 1.3 =
* Fixed removal of the "Try Gutenberg" dashboard widget.
-* Fixed condition for displaying of the after upgrade notice on the "What's New" screen. Shown when the Classic Editor is selected and users cannot switch editors.
+* Fixed condition for displaying of the after upgrade notice on the "What's New" screen. Shown when the classic editor is selected and users cannot switch editors.
= 1.2 =
* Fixed switching editors from the Add New (post) screen before a draft post is saved.
@@ -53,11 +64,11 @@ By default, this plugin hides all functionality available in the new Block Edito
* Added `classic_editor_network_default_settings` filter.
= 1.1 =
-Fixed a bug where it may attempt to load the Block Editor for post types that do not support editor when users are allowed to switch editors.
+Fixed a bug where it may attempt to load the block editor for post types that do not support editor when users are allowed to switch editors.
= 1.0 =
* Updated for WordPress 5.0.
-* Changed all "Gutenberg" names/references to "Block Editor".
+* Changed all "Gutenberg" names/references to "block editor".
* Refreshed the settings UI.
* Removed disabling of the Gutenberg plugin. This was added for testing in WordPress 4.9. Users who want to continue following the development of Gutenberg in WordPress 5.0 and beyond will not need another plugin to disable it.
* Added support for per-user settings of default editor.
@@ -72,7 +83,7 @@ Fixed a bug where it may attempt to load the Block Editor for post types that do
= 0.5 =
* Updated for Gutenberg 4.1 and WordPress 5.0-beta1.
* Removed some functionality that now exists in Gutenberg.
-* Fixed redirecting back to the Classic Editor after looking at post revisions.
+* Fixed redirecting back to the classic editor after looking at post revisions.
= 0.4 =
* Fixed removing of the "Try Gutenberg" call-out when the Gutenberg plugin is not activated.
@@ -94,26 +105,26 @@ Initial release.
= Default settings =
-When activated this plugin will restore the previous ("classic") WordPress editor and hide the new Block Editor ("Gutenberg").
+When activated this plugin will restore the previous ("classic") WordPress editor and hide the new block editor ("Gutenberg").
These settings can be changed at the Settings => Writing screen.
= Default settings for network installation =
There are two options:
-* When network-activated this plugin will set the Classic Editor as default and prevent site administrators and users from changing editors.
+* When network-activated this plugin will set the classic editor as default and prevent site administrators and users from changing editors.
The settings can be changed and default network-wide editor can be selected on the Network Settings screen.
* When not network-activated each site administrator will be able to activate the plugin and choose options for their users.
-= Cannot find the "Switch to Classic Editor" link =
+= Cannot find the "Switch to classic editor" link =
-It is in the main Block Editor menu, see this [screenshot](https://ps.w.org/classic-editor/assets/screenshot-7.png?rev=2023480).
+It is in the main block editor menu, see this [screenshot](https://ps.w.org/classic-editor/assets/screenshot-7.png?rev=2023480).
== Screenshots ==
1. Admin settings on the Settings -> Writing screen.
2. User settings on the Profile screen. Visible when the users are allowed to switch editors.
3. "Action links" to choose alternative editor. Visible when the users are allowed to switch editors.
-4. Link to switch to the Block Editor while editing a post in the Classic Editor. Visible when the users are allowed to switch editors.
-5. Link to switch to the Classic Editor while editing a post in the Block Editor. Visible when the users are allowed to switch editors.
+4. Link to switch to the block editor while editing a post in the classic editor. Visible when the users are allowed to switch editors.
+5. Link to switch to the classic editor while editing a post in the block editor. Visible when the users are allowed to switch editors.
6. Network settings to select the default editor for the network and allow site admins to change it.
-7. The "Switch to Classic Editor" link.
+7. The "Switch to classic editor" link.
diff --git a/plugins/google-authenticator/google-authenticator.php b/plugins/google-authenticator/google-authenticator.php
index 5d5f8601..e25a6c88 100644
--- a/plugins/google-authenticator/google-authenticator.php
+++ b/plugins/google-authenticator/google-authenticator.php
@@ -4,16 +4,17 @@ Plugin Name: Google Authenticator
Plugin URI: https://github.com/ivankruchkoff/google-authenticator
Description: Two-Factor Authentication for WordPress using the Android/iPhone/Blackberry app as One Time Password generator.
Author: Ivan Kruchkoff
-Version: 0.52
+Version: 0.53
Author URI: https://github.com/ivankruchkoff
-Compatibility: WordPress 5.2
+Compatibility: WordPress 5.6
Text Domain: google-authenticator
Domain Path: /lang
----------------------------------------------------------------------------
- Thanks to Fabio Zumbi for Portuguese translation.
+ Thanks to Paweł Nowacki for the Polish translation.
+ Thanks to Fabio Zumbi for the Portuguese translation.
Thanks to Guido Schalkx for the Dutch translation.
Thanks to Henrik Schack for creating / maintaining versions 0.20 to 0.48
Thanks to Ivan Kruchkoff for his UX improvements in user signup.
@@ -545,6 +546,9 @@ function loginform() {
echo "\t\t<label title=\"".__('If you don\'t have Google Authenticator enabled for your WordPress account, leave this field empty.','google-authenticator')."\">".__('Google Authenticator code','google-authenticator')."<span id=\"google-auth-info\"></span><br />\n";
echo "\t\t<input type=\"text\" name=\"googleotp\" id=\"googleotp\" class=\"input\" value=\"\" size=\"20\" style=\"ime-mode: inactive;\" autocomplete=\"off\" /></label>\n";
echo "\t</p>\n";
+ echo "\t<script type=\"text/javascript\">\n";
+ echo "\t\tdocument.getElementById(\"googleotp\").focus();\n";
+ echo "\t</script>\n";
}
/**
diff --git a/plugins/google-authenticator/lang/google-authenticator-pl_PL.mo b/plugins/google-authenticator/lang/google-authenticator-pl_PL.mo
new file mode 100755
index 00000000..b8f158e3
--- /dev/null
+++ b/plugins/google-authenticator/lang/google-authenticator-pl_PL.mo
Binary files differ
diff --git a/plugins/google-authenticator/lang/google-authenticator-pl_PL.po b/plugins/google-authenticator/lang/google-authenticator-pl_PL.po
new file mode 100755
index 00000000..9e072d20
--- /dev/null
+++ b/plugins/google-authenticator/lang/google-authenticator-pl_PL.po
@@ -0,0 +1,304 @@
+# Copyright (C) 2017 Google Authenticator
+# This file is distributed under the same license as the Google Authenticator package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Google Authenticator 0.49\n"
+"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/google-"
+"authenticator\n"
+"POT-Creation-Date: 2017-10-28 00:02:58+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-10-20 10:04+0200\n"
+"Language-Team: \n"
+"X-Generator: Poedit 2.4.1\n"
+"Last-Translator: \n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 "
+"|| n%100>14) ? 1 : 2);\n"
+"Language: pl_PL\n"
+
+#. Plugin Name of the plugin/theme
+#: google-authenticator.php:190 google-authenticator.php:193
+msgid "Google Authenticator"
+msgstr "Google Authenticator"
+
+#: google-authenticator.php:268
+msgid ""
+"OTP code doesn't match supplied secret, please check you've configured "
+"Authenticator correctly."
+msgstr ""
+"Niepoprawny kod weryfikacyjny. Upewnij się czy poprawnie wprowadziłeś kod "
+"weryfikacyjny z aplikacji."
+
+#: google-authenticator.php:277
+msgid ""
+"Congratulations, you have successfully enabled Google Authenticator for your "
+"account "
+msgstr ""
+"Gratulacje, dwuetapowa weryfikacja została pomyślnie dodana do panelu "
+"logowania do Twojej strony "
+
+#: google-authenticator.php:298
+msgid "iOS: Authy"
+msgstr "iOS: Authy"
+
+#: google-authenticator.php:302
+msgid "iOS: Google Authenticator"
+msgstr "iOS: Google Authenticator"
+
+#: google-authenticator.php:306
+msgid "Android: Authy"
+msgstr "Urządzenia z Android: Authy"
+
+#: google-authenticator.php:310
+msgid "Android: Google Authenticator"
+msgstr "Urządzenia z Android: Google Authenticator"
+
+#: google-authenticator.php:314
+msgid "Windows Phone"
+msgstr "Windows Phone"
+
+#: google-authenticator.php:318
+msgid "Chrome Browser"
+msgstr "Przeglądarka Chrome"
+
+#: google-authenticator.php:322
+msgid "Desktop"
+msgstr "Aplikacja na komputer"
+
+#: google-authenticator.php:330 google-authenticator.php:415
+#: google-authenticator.php:693 google-authenticator.php:914
+msgid "Google Authenticator Settings"
+msgstr "Ustawienia aplikacji Google Authenticator"
+
+#: google-authenticator.php:334
+msgid ""
+"If you haven't already done so, please install the Authy or Google "
+"Authenticator app on your mobile device from the App Store:"
+msgstr ""
+"Jeśli jeszcze tego nie zrobiłeś, zainstaluj aplikację Authy lub Google "
+"Authenticator na swoim urządzeniu mobilnym z marketu aplikacji:"
+
+#: google-authenticator.php:340
+msgid ""
+"The easiest way to enable your account is to add an account by scanning the "
+"QR code using the app."
+msgstr ""
+"Najprostszym sposobem włączenia uwierzytelniania dwuskładnikowego jest "
+"dodanie konta przez skanowanie kodu QR za pomocą aplikacji."
+
+#: google-authenticator.php:342
+msgid ""
+"An account can also be added by typing in the secret. After you've added "
+"your account to the App, please type the code you see on the screen into the "
+"Authenticator Code field and press the Verify Authenticator Code button."
+msgstr ""
+"Konto do obsługi uwierzytelniania możesz założyć również przez podanie "
+"klucza bezpieczeństwa. Po dodaniu konta w aplikacji, wpisz klucz "
+"bezpieczeństwa w pole \"Twój klucz bezpieczeństwa - token\" i naciśnij "
+"\"dodaj i zweryfikuj konto\"."
+
+#: google-authenticator.php:345
+msgid ""
+"If the account setup was successful, you will be logged out, and will need "
+"to login again using your Username, Password and Authenticator code "
+"generated using the App on your mobile device."
+msgstr ""
+"Jeśli weryfikacja konta zakończy się sukcesem, zostaniesz wylogowany i "
+"będziesz musiał ponownie zalogować się z użyciem loginu, hasła i "
+"wygenerowanego w aplikacji telefonu kodu weryfikacyjnego."
+
+#: google-authenticator.php:417
+msgid "foo"
+msgstr "foo"
+
+#: google-authenticator.php:421
+msgid "Network Settings"
+msgstr "Ustawienia Sieci"
+
+#: google-authenticator.php:425
+msgid "Only use network-wide settings, ignoring site settings."
+msgstr ""
+"Korzystaj wyłącznie z globalnych ustawień sieci, ignorując ustawienia strony."
+
+#: google-authenticator.php:431
+msgid "Two Screen Signin"
+msgstr "Korzystaj z dodatkowego ekranu logowania"
+
+#: google-authenticator.php:435
+msgid "Ask for authenticator code on secondary login screen"
+msgstr ""
+"Pytaj o kod weryfikacyjny na drugim ekranie logowania (po podaniu loginu i "
+"hasła)"
+
+#: google-authenticator.php:439
+msgid "Roles requiring Google Authenticator Enabled"
+msgstr "Role użytkowników dla których Google Authenticator ma być aktywny"
+
+#: google-authenticator.php:447
+msgid "Network-wide settings in effect, only a super admin can modify them."
+msgstr ""
+"Globalne ustawienia sieci są aktywne, tylko Administrator może je zmienić."
+
+#: google-authenticator.php:449
+msgid "Change network wide Google Authenticator settings"
+msgstr "Zmień ustawienia globalne dla Google Authenticator"
+
+#: google-authenticator.php:489
+msgid ""
+"Sorry, you can't disable checks for this role as it's enabled at the network "
+"level."
+msgstr ""
+"Przepraszamy, nie możesz zmienić tych ustawień jeśli są one ustawione na "
+"poziomie globalnym."
+
+#: google-authenticator.php:491
+msgid ""
+"Sorry, this role is enabled at the network level and can only be disabled "
+"via the <a href=\"%s\">network settings</a>"
+msgstr ""
+"Przepraszamy, ta rola jest włączona na poziomie globalnym i może zostać "
+"wyłączona jedynie przez <a href=\"%s\">ustawienia sieci</a>"
+
+#: google-authenticator.php:520
+msgid ""
+"If you don't have Google Authenticator enabled for your WordPress account, "
+"leave this field empty."
+msgstr ""
+"Jeżeli nie masz włączonego Google Authenticator dla tego konta WordPress, "
+"pozostaw to pole puste."
+
+#: google-authenticator.php:520
+msgid "Google Authenticator code"
+msgstr "Kod weryfikacyjny z Google Authenticator"
+
+#: google-authenticator.php:593
+msgid "<strong>ERROR</strong>: The Google Authenticator password is incorrect."
+msgstr "<strong>BŁĄD</strong>: Hasło Google Authenticator jest niepoprawne."
+
+#: google-authenticator.php:597 google-authenticator.php:618
+msgid ""
+"<strong>ERROR</strong>: The Google Authenticator code is incorrect or has "
+"expired."
+msgstr ""
+"<strong>BŁĄD</strong>: Kod weryfikacyjny Google Authenticator jest "
+"nieprawidłowy lub wygasły."
+
+#: google-authenticator.php:616
+msgid "<strong>ERROR</strong>: The Google Authenticator code is missing."
+msgstr "<strong>BŁĄD</strong>: Nie wpisano kodu Google Authenticator code."
+
+#: google-authenticator.php:630
+msgid ""
+"Please enter the Google Authenticator code using the app on your device."
+msgstr ""
+"Wprowadzź proszę kod Google Authenticator używając aplikacji na swoim "
+"telefonie."
+
+#: google-authenticator.php:632
+msgid "Log In"
+msgstr "Zaloguj"
+
+#: google-authenticator.php:700 google-authenticator.php:926
+msgid "Active"
+msgstr "Włączony"
+
+#: google-authenticator.php:709
+msgid "Relaxed mode"
+msgstr "Tryb większej tolerancji"
+
+#: google-authenticator.php:711
+msgid ""
+" Relaxed mode allows for more time drifting on your phone clock (&#177;4 "
+"min)."
+msgstr ""
+" Ten tryb pozwala na większe przesunięcia czasowe w zegarze Twojego telefonu "
+"(&#177;4 min)."
+
+#: google-authenticator.php:718
+msgid "Description"
+msgstr "Opis"
+
+#: google-authenticator.php:719
+msgid ""
+" Description that you'll see in the Google Authenticator app on your phone."
+msgstr ""
+" Opis, który będziesz widział w aplikacji Google Authenticator na swoim "
+"telefonie."
+
+#: google-authenticator.php:723
+msgid "Secret"
+msgstr "Tajny klucz"
+
+#: google-authenticator.php:727
+msgid "Create new secret"
+msgstr "Utwórz nowy tajny klucz"
+
+#: google-authenticator.php:728
+msgid "Show/Hide QR code"
+msgstr "Pokaż/Ukryj kod QR"
+
+#: google-authenticator.php:740
+msgid "Scan this with the Google Authenticator app."
+msgstr "Zeskanuj kod używając aplikacji Google Authenticator."
+
+#: google-authenticator.php:752
+msgid "Enable App password"
+msgstr "Włącz hasło aplikacyjne"
+
+#: google-authenticator.php:754
+msgid " Enabling an App password will decrease your overall login security."
+msgstr ""
+" Włączenie hasła aplikacyjnego obniży ogólny poziom bezpieczeństwa logowania "
+"do strony."
+
+#: google-authenticator.php:762
+msgid "Create new password"
+msgstr "Utwórz nowy tajny klucz"
+
+#: google-authenticator.php:763
+msgid ""
+" Password is not stored in cleartext, this is your only chance to see it."
+msgstr ""
+" Hasło nie jest przechowywane w otwartym tekście, to jest Twoja jedyna "
+"szansa aby je zobaczyć."
+
+#: google-authenticator.php:771
+msgid "Authenticator Code"
+msgstr "Kod weryfikacyjny"
+
+#: google-authenticator.php:772
+msgid ""
+"After adding the site to your google authy account, add your authenticator "
+"code here."
+msgstr ""
+"Po dodaniu strony do Twojego konta Google Authy, wpisz tu swój kod "
+"weryfikacyjny."
+
+#: google-authenticator.php:778
+msgid "Verify Authenticator Code"
+msgstr "Weryfikuj wprowadzony kod"
+
+#: google-authenticator.php:919
+msgid "Hide settings from user"
+msgstr "Ukryj ustawienia przez użytkownikiem"
+
+#. Plugin URI of the plugin/theme
+msgid "http://henrik.schack.dk/google-authenticator-for-wordpress"
+msgstr "http://henrik.schack.dk/google-authenticator-for-wordpress"
+
+#. Description of the plugin/theme
+msgid ""
+"Two-Factor Authentication for WordPress using the Android/iPhone/Blackberry "
+"app as One Time Password generator."
+msgstr ""
+"Dwuetapowe uwierzytelnianie dla Twojego WordPressa używając aplikacji na "
+"telefonie Android/iPhone/BlackBerry jako jednorazowego hasła."
+
+#. Author of the plugin/theme
+msgid "Henrik Schack"
+msgstr "Henrik Schack"
+
+#. Author URI of the plugin/theme
+msgid "http://henrik.schack.dk/"
+msgstr "http://henrik.schack.dk/"
diff --git a/plugins/google-authenticator/readme.txt b/plugins/google-authenticator/readme.txt
index a35ef72e..8c1b6fa1 100644
--- a/plugins/google-authenticator/readme.txt
+++ b/plugins/google-authenticator/readme.txt
@@ -2,8 +2,8 @@
Contributors: ivankk
Tags: authentication,otp,password,security,login,android,iphone,blackberry
Requires at least: 4.5
-Tested up to: 5.2
-Stable tag: 0.52
+Tested up to: 5.6
+Stable tag: 0.53
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -80,6 +80,9 @@ please remember to remove the "Check credentials on all login attempts" checkmar
4. Google Authenticator app on Android
== Changelog ==
+= 0.53 =
+* Add a Polish translation
+
= 0.52 =
* Add a Dutch translation
* Add a Portuguese translation
@@ -169,6 +172,8 @@ please remember to remove the "Check credentials on all login attempts" checkmar
Thanks to:
+[Paweł Nowacki](https://github.com/pancek) for the Polish translation
+
[Fabio Zumbi](https://github.com/FabioZumbi12) for the Portuguese translation
[Guido Schalkx](https://www.guidoschalkx.com/) for the Dutch translation.
diff --git a/plugins/jetpack/3rd-party/3rd-party.php b/plugins/jetpack/3rd-party/3rd-party.php
index 1db4fafd..7bbe75ee 100644
--- a/plugins/jetpack/3rd-party/3rd-party.php
+++ b/plugins/jetpack/3rd-party/3rd-party.php
@@ -3,11 +3,13 @@
* Compatibility files for third-party plugins.
* This is used to improve compatibility of specific Jetpack features with third-party plugins.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
namespace Automattic\Jetpack;
+use Automattic\Jetpack\Status\Host;
+
/**
* Loads the individual 3rd-party compat files.
*/
@@ -19,12 +21,17 @@ function load_3rd_party() {
'bitly.php',
'buddypress.php',
'class.jetpack-amp-support.php',
- 'class.jetpack-modules-overrides.php', // Special case. Tools to be used to override module settings.
+ 'class-jetpack-crm-data.php',
+ 'class-jetpack-modules-overrides.php', // Special case. Tools to be used to override module settings.
+ 'creative-mail.php',
+ 'jetpack-backup.php',
+ 'jetpack-boost.php',
'debug-bar.php',
- 'domain-mapping.php',
- 'polldaddy.php',
+ 'class-domain-mapping.php',
+ 'crowdsignal.php',
'qtranslate-x.php',
'vaultpress.php',
+ 'web-stories.php',
'wpml.php',
'woocommerce.php',
'woocommerce-services.php',
@@ -35,6 +42,31 @@ function load_3rd_party() {
require_once JETPACK__PLUGIN_DIR . '/3rd-party/' . $file;
}
}
+
+ add_filter( 'jetpack_development_version', __NAMESPACE__ . '\atomic_weekly_override' );
+}
+
+/**
+ * Handles suppressing development version notices on Atomic-hosted sites.
+ *
+ * @param bool $development_version Filterable value if this is a development version of Jetpack.
+ *
+ * @return bool
+ */
+function atomic_weekly_override( $development_version ) {
+ if ( ( new Host() )->is_atomic_platform() ) {
+ $haystack = Constants::get_constant( 'JETPACK__PLUGIN_DIR' );
+ $needle = '/jetpack-dev/';
+ if (
+ ( function_exists( 'str_ends_with' ) && str_ends_with( $haystack, $needle ) ) || // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.str_ends_withFound
+ 0 === substr_compare( $haystack, $needle, -13 )
+ ) {
+ return $development_version; // Returns the default response if the active Jetpack version is from the beta plugin.
+ }
+
+ $development_version = false; // Returns false for regular installs on Atomic.
+ }
+ return $development_version; // Return default if not on Atomic.
}
load_3rd_party();
diff --git a/plugins/jetpack/3rd-party/bbpress.php b/plugins/jetpack/3rd-party/bbpress.php
index 0af7e028..86d6f13f 100644
--- a/plugins/jetpack/3rd-party/bbpress.php
+++ b/plugins/jetpack/3rd-party/bbpress.php
@@ -1,4 +1,10 @@
<?php
+/**
+ * Compatibility functions for bbpress.
+ *
+ * @package automattic/jetpack
+ */
+
add_action( 'init', 'jetpack_bbpress_compat', 11 ); // Priority 11 needed to ensure sharing_display is loaded.
/**
@@ -8,8 +14,21 @@ add_action( 'init', 'jetpack_bbpress_compat', 11 ); // Priority 11 needed to ens
* @since 3.7.1
*/
function jetpack_bbpress_compat() {
+ if ( ! function_exists( 'bbpress' ) ) {
+ return;
+ }
+
+ /**
+ * Add compatibility layer for REST API.
+ *
+ * @since 8.5.0 Moved from root-level file and check_rest_api_compat()
+ */
+ require_once 'class-jetpack-bbpress-rest-api.php';
+ Jetpack_BbPress_REST_API::instance();
+
+ // Adds sharing buttons to bbPress items.
if ( function_exists( 'sharing_display' ) ) {
- add_filter( 'bbp_get_topic_content', 'sharing_display', 19 );
+ add_filter( 'bbp_get_topic_content', 'sharing_display', 19 );
add_action( 'bbp_template_after_single_forum', 'jetpack_sharing_bbpress' );
add_action( 'bbp_template_after_single_topic', 'jetpack_sharing_bbpress' );
}
@@ -20,11 +39,11 @@ function jetpack_bbpress_compat() {
* @author Brandon Kraft
* @since 6.0.0
*/
- if ( function_exists( 'bbp_get_topic_post_type' ) ) {
- add_post_type_support( bbp_get_topic_post_type(), 'wpcom-markdown' );
- add_post_type_support( bbp_get_reply_post_type(), 'wpcom-markdown' );
- add_post_type_support( bbp_get_forum_post_type(), 'wpcom-markdown' );
- }
+ if ( function_exists( 'bbp_get_topic_post_type' ) ) {
+ add_post_type_support( bbp_get_topic_post_type(), 'wpcom-markdown' );
+ add_post_type_support( bbp_get_reply_post_type(), 'wpcom-markdown' );
+ add_post_type_support( bbp_get_forum_post_type(), 'wpcom-markdown' );
+ }
/**
* Use Photon for all images in Topics and replies.
diff --git a/plugins/jetpack/3rd-party/beaverbuilder.php b/plugins/jetpack/3rd-party/beaverbuilder.php
index b3215ca2..4faf2d97 100644
--- a/plugins/jetpack/3rd-party/beaverbuilder.php
+++ b/plugins/jetpack/3rd-party/beaverbuilder.php
@@ -1,20 +1,19 @@
<?php
/**
* Beaverbuilder Compatibility.
+ *
+ * @package automattic/jetpack
*/
-class Jetpack_BeaverBuilderCompat {
- function __construct() {
- add_action( 'init', array( $this, 'beaverbuilder_refresh' ) );
- }
+namespace Automattic\Jetpack\Third_Party;
+
+add_action( 'init', __NAMESPACE__ . '\beaverbuilder_refresh' );
- /**
- * If masterbar module is active force BeaverBuilder to refresh when publishing a layout.
- */
- function beaverbuilder_refresh() {
- if ( Jetpack::is_module_active( 'masterbar' ) ) {
- add_filter( 'fl_builder_should_refresh_on_publish', '__return_true' );
- }
+/**
+ * If masterbar module is active force BeaverBuilder to refresh when publishing a layout.
+ */
+function beaverbuilder_refresh() {
+ if ( \Jetpack::is_module_active( 'masterbar' ) ) {
+ add_filter( 'fl_builder_should_refresh_on_publish', '__return_true' );
}
}
-new Jetpack_BeaverBuilderCompat();
diff --git a/plugins/jetpack/3rd-party/bitly.php b/plugins/jetpack/3rd-party/bitly.php
index d9b744a5..4252099b 100644
--- a/plugins/jetpack/3rd-party/bitly.php
+++ b/plugins/jetpack/3rd-party/bitly.php
@@ -1,34 +1,33 @@
<?php
-
-/*
+/**
* Fixes issues with the Official Bitly for WordPress
* https://wordpress.org/plugins/bitly/
+ *
+ * @package automattic/jetpack
*/
-if( class_exists( 'Bitly' ) ) {
- if( isset( $GLOBALS['bitly'] ) ) {
+if ( class_exists( 'Bitly' ) ) {
+
+ if ( isset( $GLOBALS['bitly'] ) ) {
if ( method_exists( $GLOBALS['bitly'], 'og_tags' ) ) {
remove_action( 'wp_head', array( $GLOBALS['bitly'], 'og_tags' ) );
}
add_action( 'wp_head', 'jetpack_bitly_og_tag', 100 );
}
-
}
/**
- * jetpack_bitly_og_tag
- *
- * @return null
+ * Adds bitly OG tags.
*/
function jetpack_bitly_og_tag() {
- if( has_filter( 'wp_head', 'jetpack_og_tags') === false ) {
- // Add the bitly part again back if we don't have any jetpack_og_tags added
+ if ( has_filter( 'wp_head', 'jetpack_og_tags' ) === false ) {
+ // Add the bitly part again back if we don't have any jetpack_og_tags added.
if ( method_exists( $GLOBALS['bitly'], 'og_tags' ) ) {
$GLOBALS['bitly']->og_tags();
}
} elseif ( isset( $GLOBALS['posts'] ) && $GLOBALS['posts'][0]->ID > 0 ) {
- printf( "<meta property=\"bitly:url\" content=\"%s\" /> \n", esc_attr( $GLOBALS['bitly']->get_bitly_link_for_post_id( $GLOBALS['posts'][0]->ID ) ) );
+ printf( "<meta property=\"bitly:url\" content=\"%s\" /> \n", esc_attr( $GLOBALS['bitly']->get_bitly_link_for_post_id( $GLOBALS['posts'][0]->ID ) ) );
}
}
diff --git a/plugins/jetpack/3rd-party/buddypress.php b/plugins/jetpack/3rd-party/buddypress.php
index 9ae35f3c..3d02ca34 100644
--- a/plugins/jetpack/3rd-party/buddypress.php
+++ b/plugins/jetpack/3rd-party/buddypress.php
@@ -1,8 +1,22 @@
<?php
+/**
+ * 3rd Party Integration for BuddyPress.
+ *
+ * @package automattic/jetpack.
+ */
-add_filter( 'bp_core_pre_avatar_handle_upload', 'blobphoto' );
-function blobphoto( $bool ) {
+namespace Automattic\Jetpack\Third_Party;
+
+add_filter( 'bp_core_pre_avatar_handle_upload', __NAMESPACE__ . '\blobphoto' );
+/**
+ * Adds filters for skipping photon during pre_avatar_handle_upload.
+ *
+ * @param bool $bool Passthrough of filter's original content. No changes made.
+ *
+ * @return bool
+ */
+function blobphoto( $bool ) {
add_filter( 'jetpack_photon_skip_image', '__return_true' );
return $bool;
diff --git a/plugins/jetpack/3rd-party/class-domain-mapping.php b/plugins/jetpack/3rd-party/class-domain-mapping.php
new file mode 100644
index 00000000..dd0cdaa5
--- /dev/null
+++ b/plugins/jetpack/3rd-party/class-domain-mapping.php
@@ -0,0 +1,160 @@
+<?php
+/**
+ * Domain Mapping 3rd Party
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Third_Party;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * Class Automattic\Jetpack\Third_Party\Domain_Mapping.
+ *
+ * This class contains methods that are used to provide compatibility between Jetpack sync and domain mapping plugins.
+ */
+class Domain_Mapping {
+
+ /**
+ * Singleton holder.
+ *
+ * @var Domain_Mapping
+ **/
+ private static $instance = null;
+
+ /**
+ * An array of methods that are used to hook the Jetpack sync filters for home_url and site_url to a mapping plugin.
+ *
+ * @var array
+ */
+ public static $test_methods = array(
+ 'hook_wordpress_mu_domain_mapping',
+ 'hook_wpmu_dev_domain_mapping',
+ );
+
+ /**
+ * Singleton constructor.
+ *
+ * @return Domain_Mapping|null
+ */
+ public static function init() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Domain_Mapping();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Class Automattic\Jetpack\Third_Party\Domain_Mapping constructor.
+ */
+ private function __construct() {
+ add_action( 'plugins_loaded', array( $this, 'attempt_to_hook_domain_mapping_plugins' ) );
+ }
+
+ /**
+ * This function is called on the plugins_loaded action and will loop through the $test_methods
+ * to try and hook a domain mapping plugin to the Jetpack sync filters for the home_url and site_url callables.
+ */
+ public function attempt_to_hook_domain_mapping_plugins() {
+ if ( ! Constants::is_defined( 'SUNRISE' ) ) {
+ return;
+ }
+
+ $hooked = false;
+ $count = count( self::$test_methods );
+ for ( $i = 0; $i < $count && ! $hooked; $i++ ) {
+ $hooked = call_user_func( array( $this, self::$test_methods[ $i ] ) );
+ }
+ }
+
+ /**
+ * This method will test for a constant and function that are known to be used with Donncha's WordPress MU
+ * Domain Mapping plugin. If conditions are met, we hook the domain_mapping_siteurl() function to Jetpack sync
+ * filters for home_url and site_url callables.
+ *
+ * @return bool
+ */
+ public function hook_wordpress_mu_domain_mapping() {
+ if ( ! Constants::is_defined( 'SUNRISE_LOADED' ) || ! $this->function_exists( 'domain_mapping_siteurl' ) ) {
+ return false;
+ }
+
+ add_filter( 'jetpack_sync_home_url', 'domain_mapping_siteurl' );
+ add_filter( 'jetpack_sync_site_url', 'domain_mapping_siteurl' );
+
+ return true;
+ }
+
+ /**
+ * This method will test for a class and method known to be used in WPMU Dev's domain mapping plugin. If the
+ * method exists, then we'll hook the swap_to_mapped_url() to our Jetpack sync filters for home_url and site_url.
+ *
+ * @return bool
+ */
+ public function hook_wpmu_dev_domain_mapping() {
+ if ( ! $this->class_exists( 'domain_map' ) || ! $this->method_exists( 'domain_map', 'utils' ) ) {
+ return false;
+ }
+
+ $utils = $this->get_domain_mapping_utils_instance();
+ add_filter( 'jetpack_sync_home_url', array( $utils, 'swap_to_mapped_url' ) );
+ add_filter( 'jetpack_sync_site_url', array( $utils, 'swap_to_mapped_url' ) );
+
+ return true;
+ }
+
+ /*
+ * Utility Methods
+ *
+ * These methods are very minimal, and in most cases, simply pass on arguments. Why create them you ask?
+ * So that we can test.
+ */
+
+ /**
+ * Checks if a method exists.
+ *
+ * @param string $class Class name.
+ * @param string $method Method name.
+ *
+ * @return bool Returns function_exists() without modification.
+ */
+ public function method_exists( $class, $method ) {
+ return method_exists( $class, $method );
+ }
+
+ /**
+ * Checks if a class exists.
+ *
+ * @param string $class Class name.
+ *
+ * @return bool Returns class_exists() without modification.
+ */
+ public function class_exists( $class ) {
+ return class_exists( $class );
+ }
+
+ /**
+ * Checks if a function exists.
+ *
+ * @param string $function Function name.
+ *
+ * @return bool Returns function_exists() without modification.
+ */
+ public function function_exists( $function ) {
+ return function_exists( $function );
+ }
+
+ /**
+ * Returns the Domain_Map::utils() instance.
+ *
+ * @see https://github.com/wpmudev/domain-mapping/blob/master/classes/Domainmap/Utils.php
+ * @return Domainmap_Utils
+ */
+ public function get_domain_mapping_utils_instance() {
+ return \domain_map::utils();
+ }
+}
+
+Domain_Mapping::init();
diff --git a/plugins/jetpack/3rd-party/class-jetpack-bbpress-rest-api.php b/plugins/jetpack/3rd-party/class-jetpack-bbpress-rest-api.php
new file mode 100644
index 00000000..4943bcd5
--- /dev/null
+++ b/plugins/jetpack/3rd-party/class-jetpack-bbpress-rest-api.php
@@ -0,0 +1,161 @@
+<?php
+/**
+ * REST API Compatibility: bbPress & Jetpack
+ * Enables bbPress to work with the Jetpack REST API
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * REST API Compatibility: bbPress.
+ */
+class Jetpack_BbPress_REST_API {
+
+ /**
+ * Singleton
+ *
+ * @var Jetpack_BbPress_REST_API.
+ */
+ private static $instance;
+
+ /**
+ * Returns or creates the singleton.
+ *
+ * @return Jetpack_BbPress_REST_API
+ */
+ public static function instance() {
+ if ( isset( self::$instance ) ) {
+ return self::$instance;
+ }
+
+ self::$instance = new self();
+ }
+
+ /**
+ * Jetpack_BbPress_REST_API constructor.
+ */
+ private function __construct() {
+ add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_bbpress_post_types' ) );
+ add_filter( 'bbp_map_meta_caps', array( $this, 'adjust_meta_caps' ), 10, 4 );
+ add_filter( 'rest_api_allowed_public_metadata', array( $this, 'allow_bbpress_public_metadata' ) );
+ }
+
+ /**
+ * Adds the bbPress post types to the rest_api_allowed_post_types filter.
+ *
+ * @param array $allowed_post_types Allowed post types.
+ *
+ * @return array
+ */
+ public function allow_bbpress_post_types( $allowed_post_types ) {
+ $allowed_post_types[] = 'forum';
+ $allowed_post_types[] = 'topic';
+ $allowed_post_types[] = 'reply';
+ return $allowed_post_types;
+ }
+
+ /**
+ * Adds the bbpress meta keys to the rest_api_allowed_public_metadata filter.
+ *
+ * @param array $allowed_meta_keys Allowed meta keys.
+ *
+ * @return array
+ */
+ public function allow_bbpress_public_metadata( $allowed_meta_keys ) {
+ $allowed_meta_keys[] = '_bbp_forum_id';
+ $allowed_meta_keys[] = '_bbp_topic_id';
+ $allowed_meta_keys[] = '_bbp_status';
+ $allowed_meta_keys[] = '_bbp_forum_type';
+ $allowed_meta_keys[] = '_bbp_forum_subforum_count';
+ $allowed_meta_keys[] = '_bbp_reply_count';
+ $allowed_meta_keys[] = '_bbp_total_reply_count';
+ $allowed_meta_keys[] = '_bbp_topic_count';
+ $allowed_meta_keys[] = '_bbp_total_topic_count';
+ $allowed_meta_keys[] = '_bbp_topic_count_hidden';
+ $allowed_meta_keys[] = '_bbp_last_topic_id';
+ $allowed_meta_keys[] = '_bbp_last_reply_id';
+ $allowed_meta_keys[] = '_bbp_last_active_time';
+ $allowed_meta_keys[] = '_bbp_last_active_id';
+ $allowed_meta_keys[] = '_bbp_sticky_topics';
+ $allowed_meta_keys[] = '_bbp_voice_count';
+ $allowed_meta_keys[] = '_bbp_reply_count_hidden';
+ $allowed_meta_keys[] = '_bbp_anonymous_reply_count';
+
+ return $allowed_meta_keys;
+ }
+
+ /**
+ * Adds the needed caps to the bbp_map_meta_caps filter.
+ *
+ * @param array $caps Capabilities for meta capability.
+ * @param string $cap Capability name.
+ * @param int $user_id User id.
+ * @param array $args Arguments.
+ *
+ * @return array
+ */
+ public function adjust_meta_caps( $caps, $cap, $user_id, $args ) {
+
+ // Return early if not a REST request or if not meta bbPress caps.
+ if ( $this->should_adjust_meta_caps_return_early( $caps, $cap, $user_id, $args ) ) {
+ return $caps;
+ }
+
+ // $args[0] could be a post ID or a post_type string.
+ if ( is_int( $args[0] ) ) {
+ $_post = get_post( $args[0] );
+ if ( ! empty( $_post ) ) {
+ $post_type = get_post_type_object( $_post->post_type );
+ }
+ } elseif ( is_string( $args[0] ) ) {
+ $post_type = get_post_type_object( $args[0] );
+ }
+
+ // no post type found, bail.
+ if ( empty( $post_type ) ) {
+ return $caps;
+ }
+
+ // reset the needed caps.
+ $caps = array();
+
+ // Add 'do_not_allow' cap if user is spam or deleted.
+ if ( bbp_is_user_inactive( $user_id ) ) {
+ $caps[] = 'do_not_allow';
+
+ // Moderators can always edit meta.
+ } elseif ( user_can( $user_id, 'moderate' ) ) {
+ $caps[] = 'moderate';
+
+ // Unknown so map to edit_posts.
+ } else {
+ $caps[] = $post_type->cap->edit_posts;
+ }
+
+ return $caps;
+ }
+
+ /**
+ * Should adjust_meta_caps return early?
+ *
+ * @param array $caps Capabilities for meta capability.
+ * @param string $cap Capability name.
+ * @param int $user_id User id.
+ * @param array $args Arguments.
+ *
+ * @return bool
+ */
+ private function should_adjust_meta_caps_return_early( $caps, $cap, $user_id, $args ) {
+ // only run for REST API requests.
+ if ( ! defined( 'REST_API_REQUEST' ) || ! REST_API_REQUEST ) {
+ return true;
+ }
+
+ // only modify caps for meta caps and for bbPress meta keys.
+ if ( ! in_array( $cap, array( 'edit_post_meta', 'delete_post_meta', 'add_post_meta' ), true ) || empty( $args[1] ) || false === strpos( $args[1], '_bbp_' ) ) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/3rd-party/class-jetpack-crm-data.php b/plugins/jetpack/3rd-party/class-jetpack-crm-data.php
new file mode 100644
index 00000000..21c01ce5
--- /dev/null
+++ b/plugins/jetpack/3rd-party/class-jetpack-crm-data.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Compatibility functions for the Jetpack CRM plugin.
+ *
+ * @since 9.0.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Provides Jetpack CRM plugin data.
+ */
+class Jetpack_CRM_Data {
+
+ const JETPACK_CRM_PLUGIN_SLUG = 'zero-bs-crm/ZeroBSCRM.php';
+
+ /**
+ * Provides Jetpack CRM plugin data for use in the Contact Form block sidebar menu.
+ *
+ * @return array An array containing the Jetpack CRM plugin data.
+ */
+ public function get_crm_data() {
+ jetpack_require_lib( 'plugins' );
+ $plugins = \Jetpack_Plugins::get_plugins();
+
+ // Set default values.
+ $response = array(
+ 'crm_installed' => false,
+ 'crm_active' => false,
+ 'crm_version' => null,
+ 'jp_form_ext_enabled' => null,
+ 'can_install_crm' => false,
+ 'can_activate_crm' => false,
+ 'can_activate_extension' => false,
+ );
+
+ if ( isset( $plugins[ self::JETPACK_CRM_PLUGIN_SLUG ] ) ) {
+ $response['crm_installed'] = true;
+
+ $crm_data = $plugins[ self::JETPACK_CRM_PLUGIN_SLUG ];
+
+ $response['crm_active'] = $crm_data['active'];
+ $response['crm_version'] = $crm_data['Version'];
+
+ if ( $response['crm_active'] ) {
+ if ( function_exists( 'zeroBSCRM_isExtensionInstalled' ) ) {
+ $response['jp_form_ext_enabled'] = zeroBSCRM_isExtensionInstalled( 'jetpackforms' );
+ }
+ }
+ }
+
+ $response['can_install_crm'] = $response['crm_installed'] ? false : current_user_can( 'install_plugins' );
+ $response['can_activate_crm'] = $response['crm_active'] ? false : current_user_can( 'activate_plugins' );
+
+ if ( $response['crm_active'] && function_exists( 'zeroBSCRM_extension_install_jetpackforms' ) ) {
+ $response['can_activate_extension'] = current_user_can( 'admin_zerobs_manage_options' );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Activates Jetpack CRM's Jetpack Forms extension. This is used by a button in the Jetpack Contact Form
+ * sidebar menu.
+ *
+ * @return true|WP_Error Returns true if activation is success, else returns a WP_Error object.
+ */
+ public function activate_crm_jetpackforms_extension() {
+ if ( function_exists( 'zeroBSCRM_extension_install_jetpackforms' ) ) {
+ return zeroBSCRM_extension_install_jetpackforms();
+ }
+
+ return new WP_Error( 'jp_forms_extension_activation_failed', esc_html__( 'The Jetpack Forms extension could not be activated.', 'jetpack' ) );
+ }
+}
diff --git a/plugins/jetpack/3rd-party/class-jetpack-modules-overrides.php b/plugins/jetpack/3rd-party/class-jetpack-modules-overrides.php
new file mode 100644
index 00000000..cd576ac1
--- /dev/null
+++ b/plugins/jetpack/3rd-party/class-jetpack-modules-overrides.php
@@ -0,0 +1,148 @@
+<?php
+/**
+ * Special cases for overriding modules.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Provides methods for dealing with module overrides.
+ *
+ * @since 5.9.0
+ */
+class Jetpack_Modules_Overrides {
+ /**
+ * Used to cache module overrides so that we minimize how many times we apply the
+ * option_jetpack_active_modules filter.
+ *
+ * @var null|array
+ */
+ private $overrides = null;
+
+ /**
+ * Clears the $overrides member used for caching.
+ *
+ * Since get_overrides() can be passed a falsey value to skip caching, this is probably
+ * most useful for clearing cache between tests.
+ *
+ * @return void
+ */
+ public function clear_cache() {
+ $this->overrides = null;
+ }
+
+ /**
+ * Returns true if there is a filter on the jetpack_active_modules option.
+ *
+ * @return bool Whether there is a filter on the jetpack_active_modules option.
+ */
+ public function do_overrides_exist() {
+ return (bool) ( has_filter( 'option_jetpack_active_modules' ) || has_filter( 'jetpack_active_modules' ) );
+ }
+
+ /**
+ * Gets the override for a given module.
+ *
+ * @param string $module_slug The module's slug.
+ * @param boolean $use_cache Whether or not cached overrides should be used.
+ *
+ * @return bool|string False if no override for module. 'active' or 'inactive' if there is an override.
+ */
+ public function get_module_override( $module_slug, $use_cache = true ) {
+ $overrides = $this->get_overrides( $use_cache );
+
+ if ( ! isset( $overrides[ $module_slug ] ) ) {
+ return false;
+ }
+
+ return $overrides[ $module_slug ];
+ }
+
+ /**
+ * Returns an array of module overrides where the key is the module slug and the value
+ * is true if the module is forced on and false if the module is forced off.
+ *
+ * @param bool $use_cache Whether or not cached overrides should be used.
+ *
+ * @return array The array of module overrides.
+ */
+ public function get_overrides( $use_cache = true ) {
+ if ( $use_cache && ! is_null( $this->overrides ) ) {
+ return $this->overrides;
+ }
+
+ if ( ! $this->do_overrides_exist() ) {
+ return array();
+ }
+
+ $available_modules = Jetpack::get_available_modules();
+
+ /**
+ * First, let's get all modules that have been forced on.
+ */
+
+ /** This filter is documented in wp-includes/option.php */
+ $filtered = apply_filters( 'option_jetpack_active_modules', array() );
+
+ /** This filter is documented in class.jetpack.php */
+ $filtered = apply_filters( 'jetpack_active_modules', $filtered );
+
+ $forced_on = array_diff( $filtered, array() );
+
+ /**
+ * Second, let's get all modules forced off.
+ */
+
+ /** This filter is documented in wp-includes/option.php */
+ $filtered = apply_filters( 'option_jetpack_active_modules', $available_modules );
+
+ /** This filter is documented in class.jetpack.php */
+ $filtered = apply_filters( 'jetpack_active_modules', $filtered );
+
+ $forced_off = array_diff( $available_modules, $filtered );
+
+ /**
+ * Last, build the return value.
+ */
+ $return_value = array();
+ foreach ( $forced_on as $on ) {
+ $return_value[ $on ] = 'active';
+ }
+
+ foreach ( $forced_off as $off ) {
+ $return_value[ $off ] = 'inactive';
+ }
+
+ $this->overrides = $return_value;
+
+ return $return_value;
+ }
+
+ /**
+ * A reference to an instance of this class.
+ *
+ * @var Jetpack_Modules_Overrides
+ */
+ private static $instance = null;
+
+ /**
+ * Returns the singleton instance of Jetpack_Modules_Overrides
+ *
+ * @return Jetpack_Modules_Overrides
+ */
+ public static function instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Jetpack_Modules_Overrides();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Private construct to enforce singleton.
+ */
+ private function __construct() {
+ }
+}
+
+Jetpack_Modules_Overrides::instance();
diff --git a/plugins/jetpack/3rd-party/class.jetpack-amp-support.php b/plugins/jetpack/3rd-party/class.jetpack-amp-support.php
index bf8d19f5..304f4ebd 100644
--- a/plugins/jetpack/3rd-party/class.jetpack-amp-support.php
+++ b/plugins/jetpack/3rd-party/class.jetpack-amp-support.php
@@ -1,5 +1,6 @@
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+use Automattic\Jetpack\Assets;
use Automattic\Jetpack\Sync\Functions;
/**
@@ -31,6 +32,13 @@ class Jetpack_AMP_Support {
// Sharing.
add_filter( 'jetpack_sharing_display_markup', array( 'Jetpack_AMP_Support', 'render_sharing_html' ), 10, 2 );
add_filter( 'sharing_enqueue_scripts', array( 'Jetpack_AMP_Support', 'amp_disable_sharedaddy_css' ) );
+ add_action( 'wp_enqueue_scripts', array( 'Jetpack_AMP_Support', 'amp_enqueue_sharing_css' ) );
+
+ // Sharing for Reader mode.
+ if ( function_exists( 'jetpack_social_menu_include_svg_icons' ) ) {
+ add_action( 'amp_post_template_footer', 'jetpack_social_menu_include_svg_icons' );
+ }
+ add_action( 'amp_post_template_css', array( 'Jetpack_AMP_Support', 'amp_reader_sharing_css' ), 10, 0 );
// enforce freedom mode for videopress.
add_filter( 'videopress_shortcode_options', array( 'Jetpack_AMP_Support', 'videopress_enable_freedom_mode' ) );
@@ -41,11 +49,32 @@ class Jetpack_AMP_Support {
// Post rendering changes for legacy AMP.
add_action( 'pre_amp_render_post', array( 'Jetpack_AMP_Support', 'amp_disable_the_content_filters' ) );
+ // Disable Comment Likes.
+ add_filter( 'jetpack_comment_likes_enabled', array( 'Jetpack_AMP_Support', 'comment_likes_enabled' ) );
+
+ // Transitional mode AMP should not have comment likes.
+ add_filter( 'the_content', array( 'Jetpack_AMP_Support', 'disable_comment_likes_before_the_content' ) );
+
+ // Remove the Likes button from the admin bar.
+ add_filter( 'jetpack_admin_bar_likes_enabled', array( 'Jetpack_AMP_Support', 'disable_likes_admin_bar' ) );
+
// Add post template metadata for legacy AMP.
add_filter( 'amp_post_template_metadata', array( 'Jetpack_AMP_Support', 'amp_post_template_metadata' ), 10, 2 );
// Filter photon image args for AMP Stories.
add_filter( 'jetpack_photon_post_image_args', array( 'Jetpack_AMP_Support', 'filter_photon_post_image_args_for_stories' ), 10, 2 );
+
+ // Sync the amp-options.
+ add_filter( 'jetpack_options_whitelist', array( 'Jetpack_AMP_Support', 'filter_jetpack_options_safelist' ) );
+ }
+
+ /**
+ * Disable the Comment Likes feature on AMP views.
+ *
+ * @param bool $enabled Should comment likes be enabled.
+ */
+ public static function comment_likes_enabled( $enabled ) {
+ return $enabled && ! self::is_amp_request();
}
/**
@@ -67,6 +96,16 @@ class Jetpack_AMP_Support {
}
/**
+ * Is AMP available for this request
+ * This returns false for admin, CLI requests etc.
+ *
+ * @return bool is_amp_available
+ */
+ public static function is_amp_available() {
+ return ( function_exists( 'amp_is_available' ) && amp_is_available() );
+ }
+
+ /**
* Does the page return AMP content.
*
* @return bool $is_amp_request Are we on am AMP view.
@@ -99,6 +138,30 @@ class Jetpack_AMP_Support {
}
/**
+ * Do not add comment likes on AMP requests.
+ *
+ * @param string $content Post content.
+ */
+ public static function disable_comment_likes_before_the_content( $content ) {
+ if ( self::is_amp_request() ) {
+ remove_filter( 'comment_text', 'comment_like_button', 12, 2 );
+ }
+ return $content;
+ }
+
+ /**
+ * Do not display the Likes' Admin bar on AMP requests.
+ *
+ * @param bool $is_admin_bar_button_visible Should the Like button be visible in the Admin bar. Default to true.
+ */
+ public static function disable_likes_admin_bar( $is_admin_bar_button_visible ) {
+ if ( self::is_amp_request() ) {
+ return false;
+ }
+ return $is_admin_bar_button_visible;
+ }
+
+ /**
* Add Jetpack stats pixel.
*
* @since 6.2.1
@@ -124,7 +187,7 @@ class Jetpack_AMP_Support {
$metadata = self::add_site_icon_to_metadata( $metadata );
}
- if ( ! isset( $metadata['image'] ) ) {
+ if ( ! isset( $metadata['image'] ) && ! empty( $post ) ) {
$metadata = self::add_image_to_metadata( $metadata, $post );
}
@@ -247,7 +310,7 @@ class Jetpack_AMP_Support {
if ( function_exists( 'staticize_subdomain' ) ) {
return staticize_subdomain( $domain );
} else {
- return Jetpack::staticize_subdomain( $domain );
+ return Assets::staticize_subdomain( $domain );
}
}
@@ -260,10 +323,10 @@ class Jetpack_AMP_Support {
* @return array Dimensions.
*/
private static function extract_image_dimensions_from_getimagesize( $dimensions ) {
- if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'require_lib' ) ) ) {
+ if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'jetpack_require_lib' ) ) ) {
return $dimensions;
}
- require_lib( 'wpcom/imagesize' );
+ jetpack_require_lib( 'wpcom/imagesize' );
foreach ( $dimensions as $url => $value ) {
if ( is_array( $value ) ) {
@@ -313,6 +376,12 @@ class Jetpack_AMP_Support {
* @param array $sharing_enabled Array of Sharing Services currently enabled.
*/
public static function render_sharing_html( $markup, $sharing_enabled ) {
+ global $post;
+
+ if ( empty( $post ) ) {
+ return '';
+ }
+
if ( ! self::is_amp_request() ) {
return $markup;
}
@@ -321,39 +390,17 @@ class Jetpack_AMP_Support {
if ( empty( $sharing_enabled ) ) {
return $markup;
}
- $supported_services = array(
- 'facebook' => array(
- /** This filter is documented in modules/sharedaddy/sharing-sources.php */
- 'data-param-app_id' => apply_filters( 'jetpack_sharing_facebook_app_id', '249643311490' ),
- ),
- 'twitter' => array(),
- 'pinterest' => array(),
- 'whatsapp' => array(),
- 'tumblr' => array(),
- 'linkedin' => array(),
- );
- $sharing_links = array();
- foreach ( $sharing_enabled['visible'] as $id => $service ) {
- if ( ! isset( $supported_services[ $id ] ) ) {
- $sharing_links[] = "<!-- not supported: $id -->";
- continue;
- }
- $args = array_merge(
- array(
- 'type' => $id,
- ),
- $supported_services[ $id ]
- );
- $sharing_link = '<amp-social-share';
- foreach ( $args as $key => $value ) {
- $sharing_link .= sprintf( ' %s="%s"', sanitize_key( $key ), esc_attr( $value ) );
+
+ $sharing_links = array();
+ foreach ( $sharing_enabled['visible'] as $service ) {
+ $sharing_link = $service->get_amp_display( $post );
+ if ( ! empty( $sharing_link ) ) {
+ $sharing_links[] = $sharing_link;
}
- $sharing_link .= '></amp-social-share>';
- $sharing_links[] = $sharing_link;
}
- // Wrap AMP sharing buttons in container.
- $markup = preg_replace( '#(?<=<div class="sd-content">).+?(?=</div>)#s', implode( '', $sharing_links ), $markup );
+ // Replace the existing unordered list with AMP sharing buttons.
+ $markup = preg_replace( '#<ul>(.+)</ul>#', implode( '', $sharing_links ), $markup );
// Remove any lingering share-end list items.
$markup = str_replace( '<li class="share-end"></li>', '', $markup );
@@ -376,6 +423,43 @@ class Jetpack_AMP_Support {
}
/**
+ * Enqueues the AMP specific sharing styles for the sharing icons.
+ */
+ public static function amp_enqueue_sharing_css() {
+ if ( self::is_amp_request() ) {
+ wp_enqueue_style( 'sharedaddy-amp', plugin_dir_url( __DIR__ ) . 'modules/sharedaddy/amp-sharing.css', array( 'social-logos' ), JETPACK__VERSION );
+ }
+ }
+
+ /**
+ * For the AMP Reader mode template, include styles that we need.
+ */
+ public static function amp_reader_sharing_css() {
+ // If sharing is not enabled, we should not proceed to render the CSS.
+ if ( ! defined( 'JETPACK_SOCIAL_LOGOS_DIR' ) | ! defined( 'JETPACK_SOCIAL_LOGOS_URL' ) || ! defined( 'WP_SHARING_PLUGIN_DIR' ) ) {
+ return;
+ }
+
+ /*
+ * We'll need to output the full contents of the 2 files
+ * in the head on AMP views. We can't rely on regular enqueues here.
+ * @todo As of AMP plugin v1.5, you can actually rely on regular enqueues thanks to https://github.com/ampproject/amp-wp/pull/4299. Once WPCOM upgrades AMP, then this method can be eliminated.
+ *
+ * phpcs:disable WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
+ * phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
+ */
+ $css = file_get_contents( JETPACK_SOCIAL_LOGOS_DIR . 'social-logos.css' );
+ $css = preg_replace( '#(?<=url\(")(?=social-logos\.)#', JETPACK_SOCIAL_LOGOS_URL, $css ); // Make sure font files get their absolute paths.
+ echo $css;
+ echo file_get_contents( WP_SHARING_PLUGIN_DIR . 'amp-sharing.css' );
+
+ /*
+ * phpcs:enable WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
+ * phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped
+ */
+ }
+
+ /**
* Ensure proper Photon image dimensions for AMP Stories.
*
* @param array $args Array of Photon Arguments.
@@ -442,6 +526,20 @@ class Jetpack_AMP_Support {
return $args;
}
+
+ /**
+ * Adds amp-options to the list of options to sync, if AMP is available
+ *
+ * @param array $options_safelist Safelist of options to sync.
+ *
+ * @return array Updated options safelist
+ */
+ public static function filter_jetpack_options_safelist( $options_safelist ) {
+ if ( function_exists( 'is_amp_endpoint' ) ) {
+ $options_safelist[] = 'amp-options';
+ }
+ return $options_safelist;
+ }
}
add_action( 'init', array( 'Jetpack_AMP_Support', 'init' ), 1 );
diff --git a/plugins/jetpack/3rd-party/creative-mail.php b/plugins/jetpack/3rd-party/creative-mail.php
new file mode 100644
index 00000000..957a8a2d
--- /dev/null
+++ b/plugins/jetpack/3rd-party/creative-mail.php
@@ -0,0 +1,128 @@
+<?php
+/**
+ * Compatibility functions for the Creative Mail plugin.
+ * https://wordpress.org/plugins/creative-mail-by-constant-contact/
+ *
+ * @since 8.9.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Creative_Mail;
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+const PLUGIN_SLUG = 'creative-mail-by-constant-contact';
+const PLUGIN_FILE = 'creative-mail-by-constant-contact/creative-mail-plugin.php';
+
+add_action( 'admin_notices', __NAMESPACE__ . '\error_notice' );
+add_action( 'admin_init', __NAMESPACE__ . '\try_install' );
+add_action( 'jetpack_activated_plugin', __NAMESPACE__ . '\configure_plugin', 10, 2 );
+
+/**
+ * Verify the intent to install Creative Mail, and kick off installation.
+ *
+ * This works in tandem with a JITM set up in the JITM package.
+ */
+function try_install() {
+ if ( ! isset( $_GET['creative-mail-action'] ) ) {
+ return;
+ }
+
+ check_admin_referer( 'creative-mail-install' );
+
+ $result = false;
+ $redirect = admin_url( 'edit.php?post_type=feedback' );
+
+ // Attempt to install and activate the plugin.
+ if ( current_user_can( 'activate_plugins' ) ) {
+ switch ( $_GET['creative-mail-action'] ) {
+ case 'install':
+ $result = install_and_activate();
+ break;
+ case 'activate':
+ $result = activate();
+ break;
+ }
+ }
+
+ if ( $result ) {
+ /** This action is already documented in _inc/lib/class.core-rest-api-endpoints.php */
+ do_action( 'jetpack_activated_plugin', PLUGIN_FILE, 'jitm' );
+ $redirect = admin_url( 'admin.php?page=creativemail' );
+ } else {
+ $redirect = add_query_arg( 'creative-mail-install-error', true, $redirect );
+ }
+
+ wp_safe_redirect( $redirect );
+
+ exit;
+}
+
+/**
+ * Install and activate the Creative Mail plugin.
+ *
+ * @return bool result of installation
+ */
+function install_and_activate() {
+ jetpack_require_lib( 'plugins' );
+ $result = \Jetpack_Plugins::install_and_activate_plugin( PLUGIN_SLUG );
+
+ if ( is_wp_error( $result ) ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/**
+ * Activate the Creative Mail plugin.
+ *
+ * @return bool result of activation
+ */
+function activate() {
+ $result = activate_plugin( PLUGIN_FILE );
+
+ // Activate_plugin() returns null on success.
+ return is_null( $result );
+}
+
+/**
+ * Notify the user that the installation of Creative Mail failed.
+ */
+function error_notice() {
+ if ( empty( $_GET['creative-mail-install-error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ return;
+ }
+
+ ?>
+ <div class="notice notice-error is-dismissible">
+ <p><?php esc_html_e( 'There was an error installing Creative Mail.', 'jetpack' ); ?></p>
+ </div>
+ <?php
+}
+
+/**
+ * Set some options when first activating the plugin via Jetpack.
+ *
+ * @since 8.9.0
+ *
+ * @param string $plugin_file Plugin file.
+ * @param string $source Where did the plugin installation originate.
+ */
+function configure_plugin( $plugin_file, $source ) {
+ if ( PLUGIN_FILE !== $plugin_file ) {
+ return;
+ }
+
+ $plugin_info = array(
+ 'plugin' => 'jetpack',
+ 'version' => JETPACK__VERSION,
+ 'time' => time(),
+ 'source' => esc_attr( $source ),
+ );
+
+ update_option( 'ce4wp_referred_by', $plugin_info );
+}
diff --git a/plugins/jetpack/3rd-party/crowdsignal.php b/plugins/jetpack/3rd-party/crowdsignal.php
new file mode 100644
index 00000000..dbeef8b3
--- /dev/null
+++ b/plugins/jetpack/3rd-party/crowdsignal.php
@@ -0,0 +1,23 @@
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Fallback for the Crowdsignal Plugin.
+ *
+ * The PollDaddy/Crowdsignal prior to v. 2.033 called Jetpack_Sync as long as the Jetpack class was present. This stub is provided to prevent any fatals for older versions of the plugin.
+ * This was resolved in 2016, but need to do just a little research before ripping it out.
+ *
+ * @see https://github.com/Automattic/crowdsignal-plugin/commit/941fc5758152ebf860a14d1cd0058245e8aed86b
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Stub of Jetpack_Sync for Crowdsignal.
+ */
+class Jetpack_Sync {
+ /**
+ * Stub of sync_options to prevent fatals for Crowdsignal.
+ */
+ public static function sync_options() {
+ _deprecated_function( __METHOD__, 'jetpack-4.2', 'jetpack_options_whitelist filter' );
+ }
+}
diff --git a/plugins/jetpack/3rd-party/debug-bar.php b/plugins/jetpack/3rd-party/debug-bar.php
index a6449903..45f20dc9 100644
--- a/plugins/jetpack/3rd-party/debug-bar.php
+++ b/plugins/jetpack/3rd-party/debug-bar.php
@@ -1,4 +1,9 @@
<?php
+/**
+ * 3rd Party integration for Debug Bar.
+ *
+ * @package automattic/jetpack
+ */
/**
* Checks if the search module is active, and if so, will initialize the singleton instance
@@ -12,7 +17,7 @@ function init_jetpack_search_debug_bar( $panels ) {
return $panels;
}
- require_once dirname( __FILE__ ) . '/debug-bar/class.jetpack-search-debug-bar.php';
+ require_once __DIR__ . '/debug-bar/class-jetpack-search-debug-bar.php';
$panels[] = Jetpack_Search_Debug_Bar::instance();
return $panels;
}
diff --git a/plugins/jetpack/3rd-party/debug-bar/class-jetpack-search-debug-bar.php b/plugins/jetpack/3rd-party/debug-bar/class-jetpack-search-debug-bar.php
new file mode 100644
index 00000000..73e272c3
--- /dev/null
+++ b/plugins/jetpack/3rd-party/debug-bar/class-jetpack-search-debug-bar.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * Adds a Jetpack Search debug panel to Debug Bar.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Singleton class instantiated by Jetpack_Searc_Debug_Bar::instance() that handles
+ * rendering the Jetpack Search debug bar menu item and panel.
+ */
+class Jetpack_Search_Debug_Bar extends Debug_Bar_Panel {
+ /**
+ * Holds singleton instance
+ *
+ * @var Jetpack_Search_Debug_Bar
+ */
+ protected static $instance = null;
+
+ /**
+ * The title to use in the debug bar navigation
+ *
+ * @var string
+ */
+ public $title;
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ $this->title( esc_html__( 'Jetpack Search', 'jetpack' ) );
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+ add_action( 'login_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+ add_action( 'enqueue_embed_scripts', array( $this, 'enqueue_scripts' ) );
+ }
+
+ /**
+ * Returns the singleton instance of Jetpack_Search_Debug_Bar
+ *
+ * @return Jetpack_Search_Debug_Bar
+ */
+ public static function instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Jetpack_Search_Debug_Bar();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Enqueues styles for our panel in the debug bar
+ *
+ * @return void
+ */
+ public function enqueue_scripts() {
+ // Do not enqueue scripts if we haven't already enqueued Debug Bar or Query Monitor styles.
+ if ( ! wp_style_is( 'debug-bar' ) && ! wp_style_is( 'query-monitor' ) ) {
+ return;
+ }
+
+ wp_enqueue_style(
+ 'jetpack-search-debug-bar',
+ plugins_url( '3rd-party/debug-bar/debug-bar.css', JETPACK__PLUGIN_FILE ),
+ array(),
+ JETPACK__VERSION
+ );
+ wp_enqueue_script(
+ 'jetpack-search-debug-bar',
+ plugins_url( '3rd-party/debug-bar/debug-bar.js', JETPACK__PLUGIN_FILE ),
+ array( 'jquery' ),
+ JETPACK__VERSION,
+ true
+ );
+ }
+
+ /**
+ * Should the Jetpack Search Debug Bar show?
+ *
+ * Since we've previously done a check for the search module being activated, let's just return true.
+ * Later on, we can update this to only show when `is_search()` is true.
+ *
+ * @return boolean
+ */
+ public function is_visible() {
+ return true;
+ }
+
+ /**
+ * Renders the panel content
+ *
+ * @return void
+ */
+ public function render() {
+ if ( ! class_exists( 'Jetpack_Search' ) ) {
+ return;
+ }
+
+ $jetpack_search = Jetpack_Search::instance();
+ $last_query_info = $jetpack_search->get_last_query_info();
+
+ // If not empty, let's reshuffle the order of some things.
+ if ( ! empty( $last_query_info ) ) {
+ $args = $last_query_info['args'];
+ $response = $last_query_info['response'];
+ $response_code = $last_query_info['response_code'];
+
+ unset( $last_query_info['args'] );
+ unset( $last_query_info['response'] );
+ unset( $last_query_info['response_code'] );
+
+ if ( is_null( $last_query_info['es_time'] ) ) {
+ $last_query_info['es_time'] = esc_html_x(
+ 'cache hit',
+ 'displayed in search results when results are cached',
+ 'jetpack'
+ );
+ }
+
+ $temp = array_merge(
+ array( 'response_code' => $response_code ),
+ array( 'args' => $args ),
+ $last_query_info,
+ array( 'response' => $response )
+ );
+
+ $last_query_info = $temp;
+ }
+ ?>
+ <div class="jetpack-search-debug-bar">
+ <h2><?php esc_html_e( 'Last query information:', 'jetpack' ); ?></h2>
+ <?php if ( empty( $last_query_info ) ) : ?>
+ <?php echo esc_html_x( 'None', 'Text displayed when there is no information', 'jetpack' ); ?>
+ <?php
+ else :
+ foreach ( $last_query_info as $key => $info ) :
+ ?>
+ <h3><?php echo esc_html( $key ); ?></h3>
+ <?php
+ if ( 'response' !== $key && 'args' !== $key ) :
+ ?>
+ <pre><?php print_r( esc_html( $info ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions ?></pre>
+ <?php
+ else :
+ $this->render_json_toggle( $info );
+ endif;
+ ?>
+ <?php
+ endforeach;
+ endif;
+ ?>
+ </div><!-- Closes .jetpack-search-debug-bar -->
+ <?php
+ }
+
+ /**
+ * Responsible for rendering the HTML necessary for the JSON toggle
+ *
+ * @param array $value The resonse from the API as an array.
+ * @return void
+ */
+ public function render_json_toggle( $value ) {
+ ?>
+ <div class="json-toggle-wrap">
+ <pre class="json">
+ <?php
+ // esc_html() will not double-encode entities (&amp; -> &amp;amp;).
+ // If any entities are part of the JSON blob, we want to re-encoode them
+ // (double-encode them) so that they are displayed correctly in the debug
+ // bar.
+ // Use _wp_specialchars() "manually" to ensure entities are encoded correctly.
+ echo _wp_specialchars( // phpcs:ignore WordPress.Security.EscapeOutput
+ wp_json_encode( $value ),
+ ENT_NOQUOTES, // Don't need to encode quotes (output is for a text node).
+ 'UTF-8', // wp_json_encode() outputs UTF-8 (really just ASCII), not the blog's charset.
+ true // Do "double-encode" existing HTML entities.
+ );
+ ?>
+ </pre>
+ <span class="pretty toggle"><?php echo esc_html_x( 'Pretty', 'label for formatting JSON', 'jetpack' ); ?></span>
+ <span class="ugly toggle"><?php echo esc_html_x( 'Minify', 'label for formatting JSON', 'jetpack' ); ?></span>
+ </div>
+ <?php
+ }
+}
diff --git a/plugins/jetpack/3rd-party/jetpack-backup.php b/plugins/jetpack/3rd-party/jetpack-backup.php
new file mode 100644
index 00000000..ec1880b3
--- /dev/null
+++ b/plugins/jetpack/3rd-party/jetpack-backup.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Compatibility functions for the Jetpack Backup plugin.
+ * https://wordpress.org/plugins/jetpack-backup/
+ *
+ * @since 10.4
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Jetpack_Backup;
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+const PLUGIN_SLUG = 'jetpack-backup';
+const PLUGIN_FILE = 'jetpack-backup/jetpack-backup.php';
+
+add_action( 'admin_notices', __NAMESPACE__ . '\error_notice' );
+add_action( 'admin_init', __NAMESPACE__ . '\try_install' );
+
+/**
+ * Verify the intent to install Jetpack Backup, and kick off installation.
+ *
+ * This works in tandem with a JITM set up in the JITM package.
+ */
+function try_install() {
+ if ( ! isset( $_GET['jetpack-backup-action'] ) ) {
+ return;
+ }
+
+ check_admin_referer( 'jetpack-backup-install' );
+
+ $result = false;
+ // If the plugin install fails, redirect to plugin install page pre-populated with jetpack-backup search term.
+ $redirect_on_error = admin_url( 'plugin-install.php?s=jetpack-backup&tab=search&type=term' );
+
+ // Attempt to install and activate the plugin.
+ if ( current_user_can( 'activate_plugins' ) ) {
+ switch ( $_GET['jetpack-backup-action'] ) {
+ case 'install':
+ $result = install_and_activate();
+ break;
+ case 'activate':
+ $result = activate();
+ break;
+ }
+ }
+
+ if ( $result ) {
+ /** This action is already documented in _inc/lib/class.core-rest-api-endpoints.php */
+ do_action( 'jetpack_activated_plugin', PLUGIN_FILE, 'jitm' );
+ $redirect = admin_url( 'admin.php?page=jetpack-backup' );
+ } else {
+ $redirect = add_query_arg( 'jetpack-backup-install-error', true, $redirect_on_error );
+ }
+
+ wp_safe_redirect( $redirect );
+
+ exit;
+}
+
+/**
+ * Install and activate the Jetpack Backup plugin.
+ *
+ * @return bool result of installation
+ */
+function install_and_activate() {
+ jetpack_require_lib( 'plugins' );
+ $result = \Jetpack_Plugins::install_and_activate_plugin( PLUGIN_SLUG );
+
+ if ( is_wp_error( $result ) ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/**
+ * Activate the Jetpack Backup plugin.
+ *
+ * @return bool result of activation
+ */
+function activate() {
+ $result = activate_plugin( PLUGIN_FILE );
+
+ // Activate_plugin() returns null on success.
+ return is_null( $result );
+}
+
+/**
+ * Notify the user that the installation of Jetpack Backup failed.
+ */
+function error_notice() {
+ if ( empty( $_GET['jetpack-backup-install-error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ return;
+ }
+
+ ?>
+ <div class="notice notice-error is-dismissible">
+ <p><?php esc_html_e( 'There was an error installing Jetpack Backup. Please try again.', 'jetpack' ); ?></p>
+ </div>
+ <?php
+}
diff --git a/plugins/jetpack/3rd-party/jetpack-boost.php b/plugins/jetpack/3rd-party/jetpack-boost.php
new file mode 100644
index 00000000..328078c1
--- /dev/null
+++ b/plugins/jetpack/3rd-party/jetpack-boost.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * Compatibility functions for the Jetpack Boost plugin.
+ * https://wordpress.org/plugins/jetpack-boost/
+ *
+ * @since 10.4
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Jetpack_Boost;
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+const PLUGIN_SLUG = 'jetpack-boost';
+const PLUGIN_FILE = 'jetpack-boost/jetpack-boost.php';
+
+add_action( 'admin_notices', __NAMESPACE__ . '\error_notice' );
+add_action( 'admin_init', __NAMESPACE__ . '\try_install' );
+
+/**
+ * Verify the intent to install Jetpack Boost, and kick off installation.
+ *
+ * This works in tandem with a JITM set up in the JITM package.
+ */
+function try_install() {
+ if ( ! isset( $_GET['jetpack-boost-action'] ) ) {
+ return;
+ }
+
+ check_admin_referer( 'jetpack-boost-install' );
+
+ $result = false;
+ // If the plugin install fails, redirect to plugin install page pre-populated with jetpack-boost search term.
+ $redirect_on_error = admin_url( 'plugin-install.php?s=jetpack-boost&tab=search&type=term' );
+
+ // Attempt to install and activate the plugin.
+ if ( current_user_can( 'activate_plugins' ) ) {
+ switch ( $_GET['jetpack-boost-action'] ) {
+ case 'install':
+ $result = install_and_activate();
+ break;
+ case 'activate':
+ $result = activate();
+ break;
+ }
+ }
+
+ if ( $result ) {
+ /** This action is already documented in _inc/lib/class.core-rest-api-endpoints.php */
+ do_action( 'jetpack_activated_plugin', PLUGIN_FILE, 'jitm' );
+ $redirect = admin_url( 'admin.php?page=jetpack-boost' );
+ } else {
+ $redirect = add_query_arg( 'jetpack-boost-install-error', true, $redirect_on_error );
+ }
+
+ wp_safe_redirect( $redirect );
+
+ exit;
+}
+
+/**
+ * Install and activate the Jetpack Boost plugin.
+ *
+ * @return bool result of installation
+ */
+function install_and_activate() {
+ jetpack_require_lib( 'plugins' );
+ $result = \Jetpack_Plugins::install_and_activate_plugin( PLUGIN_SLUG );
+
+ if ( is_wp_error( $result ) ) {
+ return false;
+ } else {
+ return true;
+ }
+}
+
+/**
+ * Activate the Jetpack Boost plugin.
+ *
+ * @return bool result of activation
+ */
+function activate() {
+ $result = activate_plugin( PLUGIN_FILE );
+
+ // Activate_plugin() returns null on success.
+ return is_null( $result );
+}
+
+/**
+ * Notify the user that the installation of Jetpack Boost failed.
+ */
+function error_notice() {
+ if ( empty( $_GET['jetpack-boost-install-error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ return;
+ }
+
+ ?>
+ <div class="notice notice-error is-dismissible">
+ <p><?php esc_html_e( 'There was an error installing Jetpack Boost. Please try again.', 'jetpack' ); ?></p>
+ </div>
+ <?php
+}
diff --git a/plugins/jetpack/3rd-party/qtranslate-x.php b/plugins/jetpack/3rd-party/qtranslate-x.php
index 07390b05..38b06582 100644
--- a/plugins/jetpack/3rd-party/qtranslate-x.php
+++ b/plugins/jetpack/3rd-party/qtranslate-x.php
@@ -1,12 +1,18 @@
<?php
/**
+ * 3rd party integration for qTranslate.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
* Prevent qTranslate X from redirecting REST calls.
*
* @since 5.3
*
* @param string $url_lang Language URL to redirect to.
* @param string $url_orig Original URL.
- * @param array $url_info Pieces of original URL.
+ * @param array $url_info Pieces of original URL.
*
* @return bool
*/
diff --git a/plugins/jetpack/3rd-party/vaultpress.php b/plugins/jetpack/3rd-party/vaultpress.php
index 0b71e6a4..0589f412 100644
--- a/plugins/jetpack/3rd-party/vaultpress.php
+++ b/plugins/jetpack/3rd-party/vaultpress.php
@@ -1,4 +1,11 @@
<?php
+/**
+ * Handles VaultPress->Rewind transition by deactivating VaultPress when needed.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Redirect;
/**
* Notify user that VaultPress has been disabled. Hide VaultPress notice that requested attention.
@@ -11,9 +18,7 @@ function jetpack_vaultpress_rewind_enabled_notice() {
deactivate_plugins( 'vaultpress/vaultpress.php' );
// Remove WP core notice that says that the plugin was activated.
- if ( isset( $_GET['activate'] ) ) {
- unset( $_GET['activate'] );
- }
+ unset( $_GET['activate'] ); // phpcs:ignore WordPress.Security.NonceVerification
?>
<div class="notice notice-success is-dismissible vp-deactivated">
<p style="margin-bottom: 0.25em;"><strong><?php esc_html_e( 'Jetpack is now handling your backups.', 'jetpack' ); ?></strong></p>
@@ -22,8 +27,8 @@ function jetpack_vaultpress_rewind_enabled_notice() {
<?php
echo sprintf(
wp_kses(
- /* Translators: first variable is the URL of the web site without the protocol, e.g. mysite.com */
- __( 'You can access your backups on your site\'s <a href="https://wordpress.com/activity-log/%s" target="_blank" rel="noopener noreferrer">Activity</a> page.', 'jetpack' ),
+ /* Translators: first variable is the full URL to the new dashboard */
+ __( 'You can access your backups at <a href="%s" target="_blank" rel="noopener noreferrer">this dashboard</a>.', 'jetpack' ),
array(
'a' => array(
'href' => array(),
@@ -32,7 +37,7 @@ function jetpack_vaultpress_rewind_enabled_notice() {
),
)
),
- esc_attr( Jetpack::build_raw_urls( get_home_url() ) )
+ esc_url( Redirect::get_url( 'calypso-backups' ) )
);
?>
</p>
@@ -47,10 +52,11 @@ function jetpack_vaultpress_rewind_enabled_notice() {
* @since 5.8
*/
function jetpack_vaultpress_rewind_check() {
- if ( Jetpack::is_active() &&
- Jetpack::is_plugin_active( 'vaultpress/vaultpress.php' ) &&
- Jetpack::is_rewind_enabled()
- ) {
+ if (
+ Jetpack::is_connection_ready() &&
+ Jetpack::is_plugin_active( 'vaultpress/vaultpress.php' ) &&
+ Jetpack::is_rewind_enabled()
+ ) {
remove_submenu_page( 'jetpack', 'vaultpress' );
add_action( 'admin_notices', 'jetpack_vaultpress_rewind_enabled_notice' );
diff --git a/plugins/jetpack/3rd-party/web-stories.php b/plugins/jetpack/3rd-party/web-stories.php
new file mode 100644
index 00000000..73619623
--- /dev/null
+++ b/plugins/jetpack/3rd-party/web-stories.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Compatibility functions for the Web Stories plugin.
+ * https://wordpress.org/plugins/web-stories/
+ *
+ * @since 9.2.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Web_Stories;
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Filter to enable web stories built in open graph data from being output.
+ * If Jetpack is already handling Open Graph Meta Tags, the Web Stories plugin will not output any.
+ *
+ * @param bool $enabled If web stories open graph data is enabled.
+ *
+ * @return bool
+ */
+function maybe_disable_open_graph( $enabled ) {
+ /** This filter is documented in class.jetpack.php */
+ $jetpack_enabled = apply_filters( 'jetpack_enable_open_graph', false );
+
+ if ( $jetpack_enabled ) {
+ $enabled = false;
+ }
+
+ return $enabled;
+}
+add_filter( 'web_stories_enable_open_graph_metadata', __NAMESPACE__ . '\maybe_disable_open_graph' );
+add_filter( 'web_stories_enable_twitter_metadata', __NAMESPACE__ . '\maybe_disable_open_graph' );
diff --git a/plugins/jetpack/3rd-party/woocommerce-services.php b/plugins/jetpack/3rd-party/woocommerce-services.php
index bdf1014e..87212cdc 100644
--- a/plugins/jetpack/3rd-party/woocommerce-services.php
+++ b/plugins/jetpack/3rd-party/woocommerce-services.php
@@ -126,22 +126,14 @@ class WC_Services_Installer {
* @return bool result of installation
*/
private function install() {
- include_once ABSPATH . '/wp-admin/includes/admin.php';
- include_once ABSPATH . '/wp-admin/includes/plugin-install.php';
- include_once ABSPATH . '/wp-admin/includes/plugin.php';
- include_once ABSPATH . '/wp-admin/includes/class-wp-upgrader.php';
- include_once ABSPATH . '/wp-admin/includes/class-plugin-upgrader.php';
+ jetpack_require_lib( 'plugins' );
+ $result = Jetpack_Plugins::install_plugin( 'woocommerce-services' );
- $api = plugins_api( 'plugin_information', array( 'slug' => 'woocommerce-services' ) );
-
- if ( is_wp_error( $api ) ) {
+ if ( is_wp_error( $result ) ) {
return false;
+ } else {
+ return true;
}
-
- $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
- $result = $upgrader->install( $api->download_link );
-
- return true === $result;
}
/**
diff --git a/plugins/jetpack/3rd-party/woocommerce.php b/plugins/jetpack/3rd-party/woocommerce.php
index 78a307b6..321051ff 100644
--- a/plugins/jetpack/3rd-party/woocommerce.php
+++ b/plugins/jetpack/3rd-party/woocommerce.php
@@ -1,9 +1,17 @@
<?php
/**
* This file contains compatibility functions for WooCommerce to improve Jetpack feature support.
+ *
+ * @package automattic/jetpack
*/
+
add_action( 'woocommerce_init', 'jetpack_woocommerce_integration' );
+/**
+ * Loads JP+WC integration.
+ *
+ * Fires on `woocommerce_init` hook
+ */
function jetpack_woocommerce_integration() {
/**
* Double check WooCommerce exists - unlikely to fail due to the hook being used but better safe than sorry.
@@ -23,14 +31,14 @@ function jetpack_woocommerce_integration() {
}
}
-/*
+/**
* Make sure the social sharing icons show up under the product's short description
*/
function jetpack_woocommerce_social_share_icons() {
if ( function_exists( 'sharing_display' ) ) {
remove_filter( 'the_content', 'sharing_display', 19 );
remove_filter( 'the_excerpt', 'sharing_display', 19 );
- echo sharing_display();
+ sharing_display( '', true );
}
}
@@ -57,7 +65,7 @@ add_action( 'loop_start', 'jetpack_woocommerce_remove_share' );
/**
* Add a callback for WooCommerce product rendering in infinite scroll.
*
- * @param array $callbacks
+ * @param array $callbacks Array of render callpacks for IS.
* @return array
*/
function jetpack_woocommerce_infinite_scroll_render_callback( $callbacks ) {
@@ -87,19 +95,35 @@ function jetpack_woocommerce_infinite_scroll_render() {
* Basic styling when infinite scroll is active only.
*/
function jetpack_woocommerce_infinite_scroll_style() {
- $custom_css = "
+ $custom_css = '
.infinite-scroll .woocommerce-pagination {
display: none;
- }";
+ }';
wp_add_inline_style( 'woocommerce-layout', $custom_css );
}
+/**
+ * Adds compat for WooCommerce and Lazy Loading.
+ */
function jetpack_woocommerce_lazy_images_compat() {
- wp_add_inline_script( 'wc-cart-fragments', "
+ wp_add_inline_script(
+ 'wc-cart-fragments',
+ "
jQuery( 'body' ).bind( 'wc_fragments_refreshed', function() {
- jQuery( 'body' ).trigger( 'jetpack-lazy-images-load' );
+ var jetpackLazyImagesLoadEvent;
+ try {
+ jetpackLazyImagesLoadEvent = new Event( 'jetpack-lazy-images-load', {
+ bubbles: true,
+ cancelable: true
+ } );
+ } catch ( e ) {
+ jetpackLazyImagesLoadEvent = document.createEvent( 'Event' )
+ jetpackLazyImagesLoadEvent.initEvent( 'jetpack-lazy-images-load', true, true );
+ }
+ jQuery( 'body' ).get( 0 ).dispatchEvent( jetpackLazyImagesLoadEvent );
} );
- " );
+ "
+ );
}
add_action( 'wp_enqueue_scripts', 'jetpack_woocommerce_lazy_images_compat', 11 );
diff --git a/plugins/jetpack/3rd-party/wpml.php b/plugins/jetpack/3rd-party/wpml.php
index 219cb37d..b6352f14 100644
--- a/plugins/jetpack/3rd-party/wpml.php
+++ b/plugins/jetpack/3rd-party/wpml.php
@@ -1,6 +1,8 @@
<?php
/**
* Only load these if WPML plugin is installed and active.
+ *
+ * @package automattic/jetpack
*/
/**
@@ -17,13 +19,11 @@ add_action( 'wpml_loaded', 'wpml_jetpack_init' );
/**
* Filter the Top Posts and Pages by language.
*
- * @param array $posts Array of the most popular posts.
- * @param array $post_ids Array of Post IDs.
- * @param string $count Number of Top Posts we want to display.
+ * @param array $posts Array of the most popular posts.
*
* @return array
*/
-function wpml_jetpack_widget_get_top_posts( $posts, $post_ids, $count ) {
+function wpml_jetpack_widget_get_top_posts( $posts ) {
global $sitepress;
foreach ( $posts as $k => $post ) {
@@ -42,13 +42,12 @@ function wpml_jetpack_widget_get_top_posts( $posts, $post_ids, $count ) {
/**
* Filter the HTML of the Contact Form and output the one requested by language.
*
- * @param string $r Contact Form HTML output.
- * @param string $field_label Field label.
- * @param int|null $id Post ID.
+ * @param string $r Contact Form HTML output.
+ * @param string $field_label Field label.
*
* @return string
*/
-function grunion_contact_form_field_html_filter( $r, $field_label, $id ){
+function grunion_contact_form_field_html_filter( $r, $field_label ) {
global $sitepress;
if ( function_exists( 'icl_translate' ) ) {
diff --git a/plugins/jetpack/CHANGELOG.md b/plugins/jetpack/CHANGELOG.md
new file mode 100644
index 00000000..e2878045
--- /dev/null
+++ b/plugins/jetpack/CHANGELOG.md
@@ -0,0 +1,6122 @@
+# Changelog
+
+### This is a list detailing changes for all Jetpack releases.
+
+## 10.5 - 2022-01-11
+### Enhancements
+- Print Styles: additional interactive elements are now hidden when printing posts (e.g. Likes, Recommended Posts, Share this).
+- VideoPress: add "allow download" option on videos to allow viewers to download the video.
+- WordAds: add hook for header ad placement, and allow 'leaderboard' size when displaying an ad widget.
+
+### Improved compatibility
+- General: update WordPress version requirements to WordPress 5.8.
+- Pay with PayPal: update the name of the script enqueued when using the Pay with PayPal button as to avoid conflicts with other plugins that may use a similar script tag.
+- Stats: remove legacy option to display a Smiley face used for the tracking pixel since the pixel is hidden by default.
+- VideoPress: classic block embeds with old flash URLs can now be properly converted to VideoPress blocks.
+- VideoPress: hide the dedicated VideoPress embed block in favor of Video block.
+
+### Bug fixes
+- Cookies & Consents Banner: fix preview in Customizer and block widget editor.
+- Dashboard: fix logic that blocked one from enabling searchable features from the Jetpack settings.
+- General: prevent an E_NOTICE when running in non-web context.
+- Instant Search: ensure the hidden overlay doesn't add whitespace to printed pages.
+- Jetpack: activate the default modules when the site has already been connected before plugin activation.
+- Jetpack: do not display recommendations during an identity crisis.
+- Search: fix styling conflict for Blank Canvas theme.
+- Security: PDF embeds now only display a link, to avoid issues with malicious PDFss that may run arbitrary code.
+- Settings menu: add Jetpack item for sites with Scan product.
+- Sharing Buttons: rely on official sharing buttons only for Facebook share counts.
+- Stats: do not trigger views when post is embedded into another site.
+- VideoPress: reload embed preview on creation until the video size is known.
+- Vimeo Embeds: support more URL formats, such as videos in playlists.
+- WhatsApp block: fix country code for Cyprus.
+- Widget Visibility: fix "Match All" setting being overwritten on save in the block widget editor.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- AAG upgrade banner: do not display on WoA sites
+- Add get_current_plan() to the WPcom_Admin_Menu.
+- Admin Page: remove CRM card for now.
+- Dashboard: add Jetpack Security Bundle upsell to AAG.
+- Dashboard: add new cards to AAG Dashboard for Boost and CRM plugins.
+- Dashboard: updates the Apps card on the At a Glance page to display links to the Jetpack mobile apps.
+- E2E tests: update readme docs.
+- E2E tests renovate: bump dependencies.
+- Fix a legacy sync test in PHPUnit 9.5.
+- Fix modules using `this` to mean `window`.
+- Hide irrelevant menu items for P2 sites
+- Instant Search: Add missing translator comments and use ordered placeholders in JS sprintf.
+- Janitorial: fix phpcs warnings in multiple widget files.
+- Jetpack: provide recommendation step parameter to external package.
+- Load the Composer package assets i18n map.
+- Switch to pcov for code coverage.
+- Sync some E2E deps with the rest of the monorepo to avoid breaking eslint tests.
+- Updated package dependencies
+- Updated package dependencies.
+- Use `@automattic/i18n-loader-webpack-plugin` to remove the hack for Instant Search's lazy-loaded bundle.
+- VideoPress: add support for old v.wordpress.com URLs in VideoPress embed block.
+- Vimeo: tweak the regex used to fetch the Vimeo videos.
+- WordPress.com: identify admin menu dashicons that won't be rendered in Calypso and provide a default icon for them.
+- WordPress.com: provide a different support link for sites on the Atomic platform.
+
+## 10.5-a.3 - 2021-12-14
+### Enhancements
+- Secure Sign On: add filters for the error text when a local user cannot be found for a given WP.com account and for when SSO is disallowed when on a staging site.
+- Subscription Block: add 'Success Message Text' to the block settings.
+
+### Improved compatibility
+- General: ensure Jetpack options are properly deleted when the plugin is deactivated.
+- Media Extractor: add support for alt_text in extract.
+- Notifications: remove legacy code supporting IE versions older than 9.
+- Pay with PayPal Widget: hide widget from Legacy Widget block.
+
+### Bug fixes
+- Contact Form: avoid PHP notices in submitted forms in some cases.
+- Internationalization: ensure that all text, including text added via JavaScript, can be translated.
+- Milestone widget: fix issue that prevented styles from loading until the widget is saved.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Admin Menu: add support for WPML menu structure.
+- ConnectionBanner: allow "icon" prop type to be an element.
+- JITM: allow sidebar JITMs marked as dismissible to be dismissed.
+- Nav-unification: add a CSS class to the HTML body when nav-unification is enabled.
+- Update introductory discount percentages from 40% to 50%, to reflect new pricing structure..
+- Use `automattic/jetpack-composer-plugin` to move Jetpack libraries from `vendor/` to `jetpack_vendor/` for i18n.
+- [WP.com sites only) Exposes the My Home menu item to all roles
+
+## 10.5-a.1 - 2021-12-07
+### Enhancements
+- Sharing: hide sharing buttons when printing a post or page.
+- VideoPress Block: add adaptive progress bar color settings
+
+### Improved compatibility
+- Twitter Timeline widget: Hide widget from the block inserter and Legacy widget block drop-down menu (WPCOM)
+
+### Bug fixes
+- Dashboard: hide licensing interface from users who did not link their account to WordPress.com yet, or who are not the main Jetpack connection owner.
+- VideoPress: avoid errors when copying and pasting empty video blocks.
+- VideoPress Block: maintain the state of different settings panels when reloading the video preview.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Added Jetpack Installer package.
+- Atomic Menu: prevent notice for users without access to the plugins menu item.
+- Blog Subscription widget: Fix the comment block on the `hide_widget_in_block_editor()` to follow the DocBlock standards
+- Build modules with Webpack, so they benefit from our toolchain improvements.
+- DIFM: Conditionally hide admin menu and expose is_difm_lite_in_progress in the get site API
+- Fix the comment block on the `hide_widget_in_block_editor()` to follow the DocBlock standards
+- Rewrote tracks-events.js without jQuery.
+- Start an initial full sync if the site is connected when Jetpack is activated.
+- Start new Jetpack cycle 10.5-a.0
+- Switched Jetpack plugin to always use `s0.wp.com` and `i0.wp.com` for external resources
+- Updated package dependencies.
+
+## 10.4 - 2021-12-07
+### Enhancements
+- Connection: additional messaging for both connection and disconnection flows.
+- Dashboard: add option to add Jetpack product using a license key.
+- Publicize: enable the RePublicize UI in the block editor.
+- VideoPress: add captions and subtitle support.
+
+### Bug fixes
+- Custom CSS: disable CSSTidy shorthand optimizations to prevent block validation issues.
+- Dashboard: hide license activation route if user is not linked and connection owner.
+- Search: avoid fatal errors when the feature is inactive, but Extra Sidebar Widgets are active.
+- Sharing: ask search engines to not index pages with sharing query string.
+- VideoPress: fix various validation errors.
+- VideoPress: keep expanded/collapsed state of settings panel when reloading video preview.
+- Widgets: allow customizer preview to show widget visibility rules properly.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Avoid generating unused assets in the static-site-generator builds.
+- Build: remove obsolete package gulp task.
+- Bump stat on plugin installs.
+- Colors: update Jetpack Primary color reference to match latest brand book.
+- E2E tests: Migrate from Jest to Playwright test runner.
+- Expose site intent from get site API to show different content in the future.
+- Fixed an issue with the mobile nav unification menu caused by fixing the collapse.
+- Fixed nav-unification on lower resolutions for wp-admin.
+- Fixes the URL of JITMs rendered in the unified sidebar when an absolute URL is given. This only affects WP.com sites.
+- JITM: Add ability to sideload Jetpack Boost and Backup plugins.
+- Made admin menu API tests compatible with WPCOM environment.
+- Refresh the site's modules and settings after successful product activation.
+- Search: forward wpcom/v2/search request to search package rest controller.
+- Search: Migrate more helper classes to package.
+- Search: update jetpack-search and search package versions
+- Sharing: update to use Recaptcha's modern key names.
+- Switched external media API tests to short-circuit API calls before they're being dispatched.
+- Updated package dependencies.
+- Update filenames of Webpack-built files.
+- Use correct user capability for the Inbox menu item in Nav Unification
+- Uses the Connection Initial State for the React app
+
+## 10.4-a.9 - 2021-11-23
+### Enhancements
+- Dashboard: add option to add a license key via the Jetpack dashboard.
+- Verification tools: remove old interface in the Tools menu, in favor of the newer settings in the Jetpack dashboard.
+
+### Bug fixes
+- Stats: remove ASCII art from the tracking pixel's alt attribute, to improve accessibility.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add consumer_slug config to webpack
+- Ensure that a new object references are created after the API request.
+- Fixed admin menu tests on WP.com
+- Gist unit tests: refactor to simplify and make future maintenance easier.
+- Manually dismiss license activation notice when license activated.
+- Remove the Connection UI activation.
+- REST API Return user ID for comment author if present
+- Skips redirect tests for admin menu in wpcom environment.
+- Updated package dependencies.
+
+## 10.4-a.7 - 2021-11-17
+### Enhancements
+- Podcast Player block: add 'jetpack_podcast_helper_tracks_quantity' filter to control number of tracks fetched. Deprecate the 'jetpack_podcast_helper_list_quantity' filter.
+
+### Bug fixes
+- VideoPress: fix VideoPress load for old videos in Gutenberg
+- SSO: fix button content alignment for small screens
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Adding My Jetpack
+- Update phpunit tests so they can be executed again on wpcom without fatal errors.
+
+## 10.4-a.5 - 2021-11-16
+### Enhancements
+- Dashboard: display a notice when you have unactivated product licence keys linked to your WordPress.com account.
+- Likes: refactor Likes in posts to improve performance and avoid loading additional libraries.
+- VideoPress: add handles to resize the Video Block in the editor.
+
+### Bug fixes
+- Dashboard: fix some layout and display issues in the Recommendations panel.
+- Dashboard: ensure plan information is properly displayed when using Backup and Security plans.
+- Instant Search: restore filter query string functionality.
+- VideoPress: reload block when updating video rating in the editor, and ensure rating meta data is updated.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Allow /sites/$site/external-media/copy/pexels to insert post meta data
+- Change the way we interact with RNA Connection Screen.
+- Don't set Webpack's `output.pathinfo` in production builds.
+- Fix some code where the minifier loses the translator comments.
+- Nav Unification: map new Site Editor location from Gutenberg 11.9 to Calypso
+- Nav Unification: Display the stats sparkline on WP Admin for Atomic sites. This fix only affects WP.com sites.
+- Updated package dependencies.
+- Update link for Backup and Security product cards to point to checkout for new real-time products
+- Use monorepo `validate-es` script to validate Webpack builds.
+
+## 10.4-a.3 - 2021-11-09
+### Enhancements
+- Publicize: always add an Open Graph image alt text if an Open Graph image is present.
+- VideoPress: do not display thumbnails in the media library, in the WordPress.com dashboard.
+
+### Improved compatibility
+- Contact Info and Map widget: hide widget from the block inserter and Legacy widget block drop-down menu.
+
+### Bug fixes
+- Block Editor: avoid issues when searching for free Pexels images via Jetpack's External Media feature.
+- Contact Form: prevent multiple button clicks from submitting multiple form submissions.
+- VideoPress: display "File Name" in the Media Library.
+- VideoPress: display all video meta immediately after upload. A page refresh is no longer needed to view VideoPress-specific fields.
+- VideoPress: no longer play videos in the background when the Media Item modal is closed in the media library.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Display Nav Unification Quick switcher in edit.php?post_type=post page for sites with Nav unification enabled.
+- E2E tests: cleaned up some unused dependencies
+- E2E tests: remove jest setup in favor of e2e-commons setup file
+- E2E tests: update docs
+- Fixed Jetpack Dashboard submenu highlight for the Settings page for sites with Nav unification enabled.
+- Fix PHP 8.1 deprecation warnings.
+- Nav Unification: Removes the `preferred-view` param from the URL after changing the preferred view. This fix only affects WP.com sites.
+- Nav Unification: Replaces the AJAX request for changing the preferred view with a direct server request to bypass security restrictions enforced by some browsers. This fix only affects WP.com sites.
+- P2: Hide Inbox admin menu link on all P2s.
+- Publicize: handle plan upgrade considering feature availability, whether the nudge is enable, and post status
+- Search: Migrate helper classes to Search package
+- Unit Tests : Update Full Sync tests to align with limitation on users that are synced.
+- Updated package dependencies
+- Update webpack build config.
+
+## 10.4-a.1 - 2021-11-02
+### Enhancements
+- Publicize: update the interface and include a profile picture for each service.
+
+### Bug fixes
+- Image CDN: ensure that Wikipedia URLs are not served via our image CDN.
+- Publicize: make the default publicize social media message blank.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Allow /wp/v2/sites/1234/batch endpoint to process widget updates
+- E2E tests: update pnpm commands to use new tunnel wrapper script
+- Fix `@covers` directives in various tests.
+- Publicize: check feature chen hitting publicize endpoint
+- Publicize: show/hide main toggle control depending on post state (published)
+- Search: hide Calypso Jetpack Search menu item for Atomic sites.
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Updated package dependencies.
+
+## 10.3 - 2021-11-02
+### Enhancements
+- Dashboard: add a new screen to provide more information about the VideoPress feature.
+- Dashboard: optimize the size of all product images displayed in the dashboard, to improve overall performance.
+- Instagram Widget: improve the connection flow when the widget has not been connected to WordPress.com yet.
+- Map Block: Add address attribute to the block.
+- Social Icons Widget: Added Strava icon to Social Icons Widget.
+- Stats: add information about the VideoPress feature at the bottom of the page.
+- VideoPress: add tooltips to video block settings in the block editor.
+- VideoPress: remove X-18 rating from the block settings.
+
+### Improved compatibility
+- Contact Info & Map widget: allow transforming this widget into a block in Block-based widget editor.
+- General: ensure that no notices are output when Jetpack is used alongside plugins that modify the output of core comments.
+- VideoPress: improve handling of Video files when using a third-party video player.
+
+### Bug fixes
+- Dashboard: ensure feature cards display the right information when the site uses Jetpack's Offline mode.
+- Dashboard: fix the display of currencies to be based on user WordPress.com preferences.
+- Markdown: add title attributes to footnotes to improve accessibility.
+- Publicize: fix visual issue when the panel shows in the pre publish step of the post.
+- Stats: remove extra request to WordPress.com that occurs when the stats feature is first activated.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add Tracks events when clicking or viewing upgrade buttons on the At a Glance page
+- Adjust test which relies on the "remoteRegister" XMLRPC method now being registered by the Connection package
+- Changed the class variable to a const
+- Deprecate `jetpack_is_atomic` for the new Automattic\Jetpack\Status\Host->is_woa_site() function.
+- Displays realtime backups in AAG for tiered backup products (Not yet user facing)
+- E2E tests: renamed test
+- Make the Backups only settings card show for tiered backup products (not yet user facing)
+- Moves Add New (plugin) submenu to the top (valid only for Atomic sites).
+- PHPUnit tests will now catch `exit` calls, instead of exiting PHPUnit.
+- Publicize: add useSharePost() hook
+- Publicize: clean and tidy code
+- Publicize: do not disable message text control when RePublicize is enabled
+- Publicize: Handle properly error handling when publizicing
+- Removed filters from Jetpack that were used to test the Inbox menu prior to its official release.
+- RePublicize: add Share Post button
+- RePublicize: enable/disable feature according to the site plan
+- Update "Appearance > Widgets" and "Appearance > Menus" links back to classic wp-admin destination for Atomic and Simple sites.
+- Updated package dependencies
+- Updates the display of Jetpack Backup storage amounts. (Not yet user facing.)
+
+## 10.3-a.3 - 2021-10-19
+### Enhancements
+- Dashboard: add a new view that shortly summarizes available Jetpack products and facilitates the purchase process.
+- Publicize editor settings: refactor, improve layout and wording in preparation for the addition of RePublicize.
+- Stats: remove some upgrade notifications.
+- Subscriptions: add an option to transform the Legacy Subscription Widget into a Subscription Block in the new block-based Widget editor.
+- WordAds: update handling and setting CCPA related cookies.
+
+### Improved compatibility
+- VideoPress: avoid video upload issues when other plugins modify WordPress' API fetching features in the block editor.
+
+### Bug fixes
+- Dashboard: fix the connection flow for non-admin users.
+- External Media block options: fix a bug where the external media modal collapsed on larger screens and did not leave enough whitespace.
+- Instant Search: fix translations not available for minified Instant Search Modal assets.
+- Widgets: fix styles of the Milestone widget fields.
+- VideoPress: add a "cover" option to the VideoPress iframe and shortcode to handle video resizing to its container.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Blocks: update how block editor plugins are loaded.
+- Build: do not include Instant Search Settings raw files in production build
+- E2E tests: move search helpers from e2e-commons to plugin e2e checks project
+- E2E tests: named exports for pages
+- Fix spelling of 'deprecated' in pnpm tasks
+- Flag for weekly Atomic releases ("dev-releases" in composer.json).
+- General: remove numerous long-deprecated functions.
+- Improve e2e tooling for better support from other plugins making use of the Jetpack e2e framework
+- Masterbar: update default link in Upgrades > Plans to "Plans" instead of "My Plan".
+- Remove "download" mentions from the VideoPress share option
+- Sharing: hide sharing buttons on password protected posts unless password provided.
+- Updated package dependencies.
+- WordPress.com API: add site_owner to sites API endpoint.
+
+## 10.2.1 - 2021-10-19
+### Enhancements
+- VideoPress: improve the display of upload errors in the Media Library and the block editor.
+
+### Improved compatibility
+- VideoPress: avoid video upload issues when other plugins modify WordPress' API fetching features in the block editor.
+
+### Bug fixes
+- Dashboard: fix the connection flow for non-admin users.
+- Instant Search: fix translations not available for minified Instant Search Modal assets.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Init the identity-crisis package using the Config package
+- Update Sync Unit Tests to reset settings modified during tests.
+
+## 10.3-a.1 - 2021-10-12
+### Enhancements
+- Instant Search: always show the save button on the mobile view of the Search Settings dashboard.
+- Secure Sign On: add new filter allowing one to customize the explanation displayed next to the SSO button.
+- VideoPress: improve the display of upload errors in the Media Library and the block editor.
+
+### Improved compatibility
+- Jetpack Backup: improve the display of the different plugin menus when using both Jetpack and Jetpack Backup.
+- Social Icons Widget: deprecate widget and offer the option to transform into a Social Links block.
+
+### Bug fixes
+- Calendly block: fix the preview in the block inserter.
+- Eventbrite Block: improve the event URL detection and avoid errors when using links without an event ID.
+- General: avoid PHP notices that may happen when installing the plugin.
+- Instant Search: fix the display of filters when there are no results to display for a query.
+- Instant Search: fix the preview of the infinite scroll option in the Search Settings dashboard.
+- Instant Search: reduce browser history noise as search is being typed in the form.
+- Publicize: refresh connections only when the post publishes.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add Publicize Share POST endpoint
+- Open Jetpack plugin sidebar by default when URL includes query param.
+- Correct AMP validation errors.
+- Publicize: use post metadata to store publicize data
+- Add a wpcom menu item linking to wordpess.com/woocommerce-installation/
+- Add click tracking for Widget Visibility
+- Added an admin notice to media-new.php notifying the user that videos uploaded here will not be sent to VideoPress.
+- Allow empty string in message parameter.
+- Bump the RNA API version.
+- E2E tests: extract shared e2e tools
+- E2E tests: updated dependencies
+- Embed block: Add native version of index file to control the available variations.
+- Exclude `vendor/` from code coverage.
+- Init Jetpack 10.3 release cycle.
+- Init the identity-crisis package using the Config package
+- Nav Unification feature flag check. It only affects WPCOM Atomic sites.
+- P2: Conditionally hide Pattern admin menu items for hubs/spaces
+- Remove "beta testing" item from the menu for all users
+- Updated package dependencies
+- Update Jetpack 10.2 to-test.md
+- Update Sync Unit Tests to reset settings modified during tests.
+
+## 10.2 - 2021-10-05
+### Enhancements
+- Contact Form: add filter to allow customizing email headers.
+- Contact Form: add two filters to improve anti-spam functionality.
+- Related Posts: enable lazy loading for images.
+- Search: improve filter label formatting for longer text entries.
+- Search: title customization improvements.
+- SEO Tools: add "Archive Title" option for custom archive page titles.
+- SmartFrame Embeds: add support for SmartFrame embed using URLs, embed code, and shortcodes.
+- VideoPress: add new VideoPress product and enables VideoPress to be used for free for 1 video upload.
+- Widgets: add visibility settings to widgets using the block editor, under the advanced section of the sidebar.
+
+### Improved compatibility
+- External Media: update verbiage around Google Photos to improve compatibility with their UX guidelines.
+- Instagram Widget: remove from Legacy Widget block.
+- Publicize: replace native text-area with custom/core-based component.
+- Search: as IE11 support was removed in Jetpack 10.1, remove an IE11 polyfill.
+- VideoPress: file url field now displays the HLS playlist if one was generated. The fragmented mp4 file is not meant to be played on its own. MP4 file will only be displayed as the video url if it was created prior to the HLS update.
+
+### Bug fixes
+- Contact Form: make sure the set height of the Spacer block nested inside a Contact Form block is respected.
+- Custom Content Type: improve the performance of the Testimonial CPT.
+- Dashboard: improve the performance of the query used to display Anti-spam stats.
+- Embeds: add allow-popups permission to Google Calendar embed so that links internal to the iFrame will open.
+- Publicize: ensure the custom excerpt is used when sharing to Facebook.
+- Publicize: improve refreshing connections list.
+- Related Posts: avoid errors if main div is not in the DOM.
+- Search: ensure Safari input clear button is hidden.
+- Search: ensure translations are available for lazy-loaded payloads.
+- Search: fix dashboard buttons too big on Safari.
+- Sharing: fix the icon position in icon-only button style.
+- Shortcodes: remove Hulu from available embeds.
+- Slideshow: fix fade transition background.
+- Theme Tools: remove unnecessary extra Social Menu added in the Twenty Twenty theme.
+- VideoPress: fix a bug related to deleting VideoPress videos.
+- Widgets: fix a conflict between various Jetpack blocks and some WordPress core legacy widgets.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add back skipped tests checking the Screen Options functionality of Nav Unification.
+- Add wp-block-button__link to the button on the subscription widget.
+- Admin menu: improve security by sanitizing return value of get_current_screen function.
+- Dashboard: do not display Jetpack version on WoA sites.
+- Dashboard: show the Connect button on the Media card in site-only mode.
+- Disable webpack's concatenateModules optimization, it can break WordPress's translation extraction.
+- E2e tests: fixed logged Jetpack version.
+- E2E tests: fixed stacktrace sometimes missing from Slack notification.
+- E2E tests: generate application password at environment start.
+- E2E tests: include Github commit SHA in Jetpack version for local dev sites.
+- E2E tests: make sure videos are saved for all opened tabs.
+- E2E tests: support user mentions in Slack based on report name and branch name.
+- Fix failing phpunit test on multisite installation.
+- Fix tests after WordPress backported polyfill stuff to WP 5.7 and 5.8.
+- Fix typo in Jetpack ad banner.
+- Improve Mailchimp test stability.
+- Move analytics library into a package.
+- Move the Jetpack stats widget for the WordPress dashboard into its own class.
+- Multisite settings: remove old commented out code and fix PHPCS linting errors.
+- Publicize: plugin to the proper extension folder.
+- Publicize: re-implement main form, add React hooks.
+- Refactor extract() usage used in the monorepo.
+- Remove ajax callback for Tracks within the Jetpack plugin since it is set up in jetpack-tracking library.
+- Remove Custom CSS placeholder text to stay in sync with wpcom. The placeholder was only displaying on Simple Sites.
+- Replace `page` library with equivalent plain JavaScript.
+- Search: remove @wordpress/interface dependency for new configurator.
+- Sharing: refactor sharing plugin, replace HOC with hooks.
+- Skip test_get_user_connection_data_with_connected_user for multisite.
+- Updated Google Photos logo and icon.
+- Updated package dependencies.
+- Updated scss files for sass division deprecation.
+- Update `copy-webpack-plugin` dep.
+- Use `[contenthash]` in Webpack chunk names for better long-term caching.
+- VideoPress: can now be managed on the Modules page for any plan type.
+- VideoPress: update the edit icon design in the VideoPress block toolbar.
+- Widget Visibility: Restrict to top level blocks in each widget.
+- WPcom: added a new "Inbox" menu item in the left side menu, just after Upgrades item. Only visible for wpcom and atomic sites.
+- WPcom: fix various shortcode rendering in notifications.
+
+## 10.1 - 2021-09-07
+### Major Enhancements
+- Search: add a Gutenberg powered customization interface.
+
+### Enhancements
+- Carousel: photo info and comment sections stay open once toggled on.
+- Carousel: show image info icon even if Exif metadata option is off.
+- Carousel: use photo description as caption if caption and title fields are blank.
+- Form Block: scroll to subscription message after submitting the form.
+- Jetpack Assistant: introduce a new "Product Suggestion" step to inform new users of relevant Jetpack services.
+- Search: greater theme compatibility, including label coloring and custom checkbox margins.
+- Search: improves handling of breadcrumb display.
+- Search: visual, functional, and accessibility improvements to new wp-admin section and customization interface.
+- Secure Sign On: remove additional redirect during sign in process.
+- Shortcodes: allow wrapping quizzes together with the Quiz shortcode.
+- Spotify Shortcode: add lazy loading support.
+- Stats: add the ability to collapse the nudges UI.
+- Tiled Gallery Block: ensure it can be used when in Offline Mode.
+- Widget Visibility: rename taxonomy label "All Pages" in dropdown.
+
+### Improved compatibility
+- Browser Compatibility: allow use of new JavaScript features not supported by Internet Explorer 11.
+- Image CDN: added support for the WEBP format.
+- Mailchimp Block: updates terminology to use "Audience" instead of "Lists".
+- Media: allow ZIP files to be uploaded to sites via WordPress.com.
+- Related Posts: allow shortcodes in Related Posts titles.
+
+### Bug fixes
+- Blocks: fix HTML markup of buttons added to blocks.
+- Carousel: fix a bug that changes the cursor to a pointer over all nested blocks.
+- Carousel: fix bug preventing user from swiping in gallery when images are configured to link to Attachment Page.
+- Carousel: hide UI controls in the carousel for single images.
+- Contact Form: disable the Block Editor for contact form submissions.
+- Custom CSS: ensure that short CSS is added inline instead of via an external file.
+- Dashboard: add a new message to the backup card if the site is too new to have an accurate status.
+- Dashboard: ensure that the image CDN does not get enabled by default when using the Site Accelerator toggle while in Offline mode.
+- Facebook Page Widget: fix a bug that prevented widget from being added in the wp-admin widget editor.
+- Form Block: fix form button alignment in editor.
+- Instant Search: ensure box-shadow and text-shadow aren't applied to search buttons.
+- Search: fix search widgets not saving in block widget editor.
+- Search: fix various issues with scrolling on both desktop and mobile devices.
+- Search: fix wrapping issue on super wide screens.
+- Search: hide search sub menu on site disconnection.
+- Search: improve style specificity for result highlights in Customberg.
+- Slideshow Block: fix intermittent issue where next/prev buttons sometimes don't respond to clicks.
+- Social Icons: fix being unable to remove icons from widget.
+- Social Icons Widget: fix issue in wp-admin widget editor where icons don't save on refresh.
+- Stats: allow better translations of page view counts in the Stats widget.
+- Video Block: fix resizing so that video block doesn't display black bars on the sides.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Adapt the test to recent changes to connection banner.
+- Add additional event properties to woocommerceanalytics_product_checkout and woocommerceanalytics_product_purchase events.
+- Adds a navigation link to Beta Testing page for WPCOM sites.
+- Add wordpress/babel-preset-default package for use by Instant Search customization.
+- Add `wpcom_is_fse_activated` to sync list.
+- Blocks: fixes previews in block editor by working around incorrect Calypso build configuration
+- Bump changelogger version.
+- Carousel: Replace color CSS with CSS variables to simplify theming.
+- Classic views are now forced for Customizer screens (WP.com only).
+- Connection: remove in-place connection for secondary flows.
+- Correct REQUEST_URI checking to work for wp.com as well as .org endpoints.
+- E2E tests: add option to pass test report name in Slack notifications.
+- E2E tests: add tests prerequisites abstraction.
+- E2E tests: clean-up wp-env leftovers.
+- E2E tests: don't throw when get debug log from docker fails.
+- E2E tests: Expect `jetpack docker exec` to pass through exit statuses.
+- E2E tests: fix mailchimp tests failing after a button label change.
+- E2E tests: fix missing action for e2e on atomic workflow.
+- E2E tests: fix PayPal block fields not getting filled.
+- E2E tests: fix selector for block editor search field.
+- E2E tests: optimize specs prerequisites.
+- E2E tests: run tests against an arbitrary site.
+- E2E tests: scheduled test runs on atomic test site.
+- E2E tests: send report name for atomic test runs.
+- E2E Tests: switch to Jetpack Docker.
+- E2E tests: temporarily disable plugin updater test.
+- E2E tests: use Allure test steps for better reporting.
+- Fix broken SSO sync test.
+- Fix Mailchimp test.
+- Fix some issues in Docker cli.
+- Fix submenu positioning issue for Nav-Unification in WP-Admin.
+- Improve test robustness and tooling for extensions.
+- Init Jetpack 10.1 release cycle.
+- Integrate RNA connection screen into the main connection flow.
+- Jetpack 10.0: update beta testing instructions.
+- Masterbar: show Beta Testing link on Atomic Sites and hide it on P2.
+- Move API calls to jetpack-api package.
+- Move a test out of Jetpack's test init.
+- Move Jetpack-specific JS test init into Jetpack's test init.
+- Multi-site: list sites will show based on current network id.
+- Related Posts: Fix issue with dequeueing scripts and styles.
+- Rename a generated js file to avoid triggering an outdated minifier on WordPress.com's cdn.
+- Responsive Videos: account for newer embed block format when detecting videos in post content.
+- Search: Backports Customberg babel configuration from WordPress.com.
+- Search: Fix search E2E test failure caused by new block widgets in WP 5.8.
+- Updated package dependencies
+- Updated product slugs for new/imminent real-time Backup and Security products.
+- Update Jest dependencies to fix Jetpack JS tests.
+- Update to latest webpack, webpack-cli and calypso-build.
+- Upgrade to Webpack 5.
+- Use Node 16.7.0 in tooling.
+- Widget Visibility: fix undefined property reference.
+- WordPress.com REST API: Add new field to comment endpoint response.
+
+## 10.0 - 2021-08-03
+### Enhancements
+- Carousel: add JS-based smooth scroll behavior for the footer buttons.
+- Carousel: on image zoom, fade out controls. Fade them back in when sized back to original, or the slide is advanced.
+
+### Improved compatibility
+- Carousel: add a Swiper JS param to prevent interaction on the carousel while transitioning between slides.
+- Map Block: ensure theme styles do not override map button background colors.
+- Search: remove required attribute from search inputs.
+
+### Bug fixes
+- Carousel: fix carousel title formatting to prevent issues with quote conversion.
+- Comments: fix subsequent commenting when using a social profile.
+- Contact Form Block: remove specific form colors to prevent theme style clash.
+- Instant Search: fix visual glitch on breadcrumb in Firefox.
+- Instant Search: make sure ?s= is set when using filter links.
+- Like Button: add title and aria-hidden attributes to the Like button iframe.
+- OpenTable Block: fix input width when used in block editor.
+- Publicize: avoid PHP notices in edge-cases where no info about a post can be found.
+- Search: fix notice issue with WP 5.8's widget editor.
+- Select Dropdown Component: add content-box box sizing to prevent global box-sizing conflict.
+- SEO Tools: ensure functions are loaded before API endpoint attempts to use them.
+- Tiled Gallery: fix blurry display of images much wider than they are high.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add admin / frontend CSS files to the build watcher.
+- Add event tracking for the Dashboard Quick Switcher.
+- Add field for Zendesk meta in /sites/id for Jetpack sites.
+- Add jetpack_connection_active_plugins option in JSON API site endpoint response options.
+- Add tracks event when the Stats page upgrade nudges are displayed.
+- Add upgrade nudges to the Site Stats page.
+- Admin menu: move site editor menu item and add beta badge.
+- Comments: refactor jQuery usage.
+- Development: soft-fail if Jetpack is not built.
+- Dev Tools: add list items to the Dev Tools card for new Backup and Security products.
+- E2E tests: add listeners for page errors and request failed.
+- E2E tests: require local node to match one defined in package.json file.
+- Fail build if the php:module-headings step fails.
+- Heartbeat: calculate media library size.
+- Init 10.0 release cycle.
+- Modules: include all module info in the module-headings.php file during the build step.
+- Move connection/data endpoint to Connection package.
+- Move site disconnection endpoint to Connection package.
+- My Plan: recognize and display new Backup, Security plans.
+- Nav Unification: ensure on pageload that the active menu item is keyboard focused in nav unification so its consistent with Calypso.
+- Nav Unification: fix the condition that disables Nav-unification when SSO is disabled and the admin-menu class is overridden in jetpack_admin_menu_class filter.
+- Plans: add slugs for new real-time Backup and Security offerings.
+- Search: add footer for search dashboard.
+- Search: add instant search upsell nudge for Business plan.
+- Search: add mocked legacy search interface for admin page.
+- Search: add scaffolding for Gutenberg-enabled Customizer (Customberg).
+- Search: add search setting dashboard with toggle controls.
+- Search: add widgets editor and search customizer buttons for search admin page.
+- Support coming soon v2 sites with the coming soon badge in the admin menu.
+- Update contributor list.
+- Update package dependencies.
+- WoA: add security nav item to the Atomic admin menu only if the site has the security-settings feature.
+- WoA: fix My Sites navigation in WP-Admin for Atomic sites with SSO disabled (and nav-unification disabled).
+- WoA: force Calypso interfaces for Atomic sites that have Jetpack SSO disabled.
+
+## 9.9.1 - 2021-07-20
+### Enhancements
+- Carousel: improve carousel icons.
+
+### Improved compatibility
+- Carousel: ensure that arrows look and work correctly in right-to-left languages.
+
+### Bug fixes
+- Carousel: prevent comments indicator from bumping icon width of comments button.
+- Carousel: CSS tweaks to ensure text and comment loader spinners dislay correctly in dark and light theme views.
+- Carousel: ensures caption is shown in carousel images.
+- Carousel: ensure carousel CSS doesn't override other non-Jetpack carousel styling.
+- Widgets: allow the use of widget visibility conditions in gutenberg based widget editing.
+- Widgets: ensure block previews display in customizer for multiple blocks.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Updated package dependencies.
+- Compatibility: adds support for block_editor_settings_all when running WordPress 5.8 or higher.
+- WordPress.com Block Editor: do not use in the upcoming Block-based Widgets Editor
+- Nav Unification: stores the preferred view after a page switch using the new WP.com quick switcher
+- Symc: update Sync tests to include case for jetpack_sync_settings options.
+
+## 9.9 - 2021-07-06
+### Major Enhancements
+- Carousel: improve carousel usability, performance, accessibility, mobile friendliness.
+- Carousel: improve stability, fixes multiple bugs.
+
+### Enhancements
+- Blocks: additional automated tests to improve reliability.
+- Carousel: Add comment indicator icon to carousel comments icon.
+- Dashboard: provide more useful information and an option to contact support when there are display issues in the Jetpack dashboard.
+- Editor: added Social Preview panel to the pre-publish sidebar to increase visibility.
+- Instant Search: improve modal animation and transition speed.
+
+### Improved compatibility
+- Blocks: make sure connection notices in blocks work with the widget and customizer block editors.
+- Carousel: Ensure refactored carousel is compatible with Twenty Nineteen theme styles.
+- Full Site Editing: disable admin bar in Jetpack notifications to prevent keystroke hijacking in the Site Editor.
+- Podcast Block: Ensure compatability with latest version of Gutenberg plugin and WordPress 5.8.
+- Search: improve Search Widget compatibility with WordPress 5.8 widget editor.
+- Shortcode Embeds: enable compatibility with WordPress' "Lazy Loading".
+- Site Logo: improve compatibility with WordPress 5.8's new Site Logo block.
+- Slideshow Block: update icon.
+
+### Bug fixes
+- AMP: Fix top AMP ad unit from being cropped on mobile devices
+- Blocks: GIF block supports the widget editor and customizer preview pane.
+- Carousel: Fix intermittent issue with unresponsive prev button.
+- Carousel: Fix image quality on carousel zoom.
+- Carousel: Set pagination font weight to normal to avoid conflicts with theme styles.
+- Carousel: disable transitions on prev/next images to prevent flash effect on pinch, zoom and swipe.
+- Custom CSS: allow leading decimal zeros.
+- Inline PDFs: Fix height of PDF embeds for greater theme compatability.
+- Instant Search: ensure alt text does not contain mark element.
+- Instant Search: fix render-breaking typo for Expanded search results.
+- Instant Search: prevent overlay from opening when composing text using an input method editor for Chinese, Japanese, Korean, and Indic languages.
+- Instant Search: prevent theme from overriding modal close button styles.
+- Instant Search: show correct count for paginated results.
+- Payments Block: prevent hiding block configuration instructions when block is nested.
+- Shortcode Embeds: correctly handle YouTube URLs that include a start time.
+- Story Block: improve navigation, fix issues with long press to pause and exiting story on last tap.
+- Widgets: avoid PHP notice when using the Milestone Widget within the upcoming widget management screen in WordPress 5.8.
+- WordPress.com API: properly allow requests to upgrade a plugin outside of autoupdates.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add 'purchasetoken' query param to all url's leading to checkout for allowing logged out purchases on WordPress.com.
+- Added a Dashboard Switcher in screen options so that WordPress.com users can switch between WP Admin & WordPress.com screens.
+- Added a nudge for Atomic and WPCOM that is loaded in Customizer's "Additional CSS" section.
+- Added display_embed and rating properties from VideoPress in the update and get media API endpoints.
+- Add support for choosing a preferred view on individual screens accessed from the WP.com sidebar menu
+- Add support for multi site search results for p2 theme.
+- Add Sync Unit Tests.
+- Add two jetpack/v4 endpoints to retrieve and delete a site's purchase token.
+- Admin menu: Register Calypso settings pages as independent submenus
+- Admin Page: Modularize Redux initialization into a separate helper class.
+- Bump jetpack-backup package version.
+- Business Hours Block: refactor PHP server-rendered fixture test to use parent class.
+- Change redirect library to accept any parameter.
+- Change the main connection flow and choose between in-place or Calypso flows only after the site registration.
+- E2E test reports: send more information about PR to test reporter.
+- E2E tests: add missing direct dependencies, and remove a few unnecessary ones.
+- E2E tests: add test report in Slack notification.
+- E2E tests: attach video recordings to test reports.
+- E2E tests: change build and E2E tests to use pnpm rather than yarn.
+- E2E tests: do no save videos for passed tests.
+- E2E tests: fix tunnel log not being written.
+- E2E tests: remove call to missing function.
+- E2E tests: trigger workflow dispatch to generate test reports.
+- E2E tests: updated readme with reporting info.
+- E2E tests reports: send PR number to test reporter.
+- Edit User: hide profile fields ( First Name, Last Name, Display Name, About, Email, Website ) for WordPress.com users. These fields can be edited in WordPress.com from user account settings.
+- Extract JetpackLogo component into RNA Components package.
+- Fix building with calypso-build 6.5.0.
+- Fix the Jetpack menu settings link on Atomic sites.
+- Handle blavatar_url case for story playback site icon.
+- Identity Crisis: Replace the usage of Jetpack_IDC with Identity_Crisis.
+- Init 9.9 release cycle.
+- Instant Search: prevent standard sidebar widgets showing in the search modal sidebar when switching themes for WPCOM sites.
+- Instant Search: support for searching by group id
+- Migrate identity-crisis/migrate and identity-crisis/confirm-safe-mode endpoints to Identity Crisis package.
+- Modified swiper to use svg icons on carousel instead of font icons
+- Move connection/owner endpoint to Connection package.
+- New "disconnect" route to open the "Disconnect" modal.
+- P2: Conditionally hide admin menu items for hubs/spaces.
+- Plugins Modify endpoint now supports per plugin locks.
+- Publicly includes whether the site is a WP.com Atomic one as part of the Sites API.
+- Remove jetpack_idc_disconnect hook as functionality has been migrated to packages.
+- Remove premium theme info.
+- Removes dashboard switcher from index.php to improve parity with Calypso.
+- Remove unneeded "test-spelling" script with a vulnerable dependency.
+- Repeat Visitor Block: Add JS and PHP block fixture tests.
+- Replace hardcoded redirect link to use the library instead.
+- Search: Modularize Customizer and DOM integration.
+- Search: Prepare application for Gutenberg customization.
+- Search: Use aliased Preact imports.
+- Story block: Fix (server-side) rendering of external stories.
+- Sync tests for get_objects_by_id implementation for themes.
+- Sync Unit Test for options get_objects_by_id.
+- Sync unit tests for get_object_by_id methods in Updates module.
+- Temp: Remove sync tests to unblock dev.
+- Unit Tests for Sync constants.
+- Update lock file.
+- Update package dependencies.
+- Updates To Test file for 9.9 beta
+- Update Sync test_get_post_types_method test.
+- Update the webpack configuration for extensions to prevent JS conflicts with other plugins.
+- VideoPress: do not allow video files in WoA sites with Free plan.
+
+### General
+- Jetpack now requires WordPress 5.7 in anticipation of WordPress 5.8 coming later this month.
+
+## 9.8.1 - 2021-06-08
+### Bug fixes
+- Carousel: avoid JavaScript errors when trying to load the Carousel view when logged out of your WordPress site.
+- Related Posts: avoid squished images when image height isn't defined.
+- Story Block: allow multiple stories per post.
+- Story Block: allow selecting additional media items in media picker instead of only replacing the existing selection.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Obtain lock before performing autoupdates.
+
+## 9.8 - 2021-06-01
+### Enhancements
+- Contact Form: the "Feedback > Export CSV" submenu entry has been removed. The export functionality is still available in "Feedback > Form Responses".
+- Form block: allow replacing the "Message Sent" heading with custom phrase.
+- Instagram Reel: add oEmbed support for Instagram Reel posts.
+- Instant Search: add 'open when visitor submits the form' overlay trigger.
+- Instant Search: apply configured highlight color to text highlights.
+- Site Verification Tools: adds an option for Facebook domain verification.
+- Story Block: add new block that enables you to use photos and videos to create engaging and tappable fullscreen slideshows.
+
+### Improved compatibility
+- Blocks: ensure blocks are compatible with upcoming Full Site Editor feature.
+- Blocks: ensure tiled gallery and slideshow blocks do not output invalid CSS when used with AMP plugin.
+- Dashboard: hide Settings page for non-admin users when in site-only connection.
+- Instant Search: ensure search input is the correct width if an input max-width has been specified in the theme.
+- Related Posts: add height attribute to post images for better compatibility with page performance analysis tools.
+- Related Posts: avoid Fatal Errors when using plugins that may interact with WordPress' customizer in specific ways.
+- SEO Tools: ensure Jetpack SEO does not conflict with SEOPress.
+- Story Block: Improve accessibility and resolve z-index issues when playing in fullscreen.
+
+### Bug fixes
+- Carousel: harden fetching comments in Carousel view.
+- Contact Form: remove double quotes from names in email headers to improve compatibility with different emailing solutions for WordPress.
+- Dashboard: display the Sharing settings tab when editors only need to customize Publicize settings for their own account.
+- Dashboard: do not display Protect card for non-admin users while in site-only connection.
+- Dashboard: do not show multiple connection prompts in the Publicize settings card.
+- Dashboard: ensure connected user details properly displayed.
+- Dashboard: ensure that the Jetpack settings page can be accessed when using Jetpack's Offline mode.
+- Fixed regression introduced in posts page icon notification WP-Admin edit.php page.
+- General: ensures that the send_auth_cookies filter is respected.
+- Instant Search: don't photon-ize SVG images as they're not supported by Photon
+- Instant Search: fixes for design conflicts.
+- Instant Search: prevent standard sidebar widgets ending up in the search modal sidebar when switching themes.
+- Social Previews: don't show duplicate buttons when a featured image is selected.
+- Stats: fixes the date used to fetch the Top posts in the Top posts dashboard widget.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Add an API function to get hub a P2 hub id.
+- Add a way to connect E2E sites headlessly
+- Add REST API v2 endpoint for editing transients.
+- Adds Advanced General menu item that points to WP Admin regardless of whether the Advanced Dashboard toggle is enabled or not.
+- Add upsell nudges in sidebar for WordPress.com users.
+- Add userless and classic connection tests
+- Admin Pages: prompt connect instead of upgrade when WordPress.com account is not connected
+- Business Hours Block: Add server rendered PHP fixtures test.
+- Calendly block: add target existence check before running init scripts
+- Changing the WPCOM subscription email control type from 'text' to 'email'.
+- Clicking the Write button in masterbar will now use WP Admin block editor.
+- Comment: Story block: Add more media options to choose from in the editor
+- Comment: Story Block: Improve rendering in email notifications
+- Comment: Story Block: Use CSS scale3d() instead of scale()
+- Connection package independence: Filters the remote_register XMLRPC endpoint redirect URI
+- Connection package independence: Move a Jetpack specfic connection routine out of the package and into the plugin
+- Disabled editing and deleting pages in WP-Admin Pages list screen for the page that is configured as a Posts page.
+- E2E: Fix wp-config setup script to match latest core changes
+- E2E tests: Change the timeout to wait for loading animation in connection frame, before the approve button is displayed.
+- E2E tests: fixed typo in help of infrastructure script
+- E2E tests: fix for failing test when Mailchimp is already set up
+- E2E tests: fix Slack notification for scheduled jobs
+- E2E tests: generate Allure results
+- E2E tests: group test runs in CI
+- E2E tests: improved Slack notifications
+- E2E tests: Increase timeout for loading animation on connection flow
+- E2E tests: runner groups
+- E2E tests: use github object to get context info for slack notification
+- Enable the Plans tab for unlinked users
+- Ensure that the WPCOM toolbar remains enabled with AMP in wp-admin
+- Ensure video/videopress mime type is set on attachments when a videopress update xmlrpc call is received
+- Fixed compatibility issue with Page Optimize plugin for RTL layouts for jetpack-admin-menu and colors stylesheets
+- Fixed new PHPCS errors.
+- Fixed the Upgrades, Jetpack and Settings menu item slugs in WP-Admin
+- Fix LEGACY_META_OPTION handling for WPcom simple sites
+- Fix Notice: Undefined variable: poster_url
+- Fix plan name display in Upgrades menu entry for translations with spaces or non-Latin characters
+- Fix the height of the User Authentication Dialog on the dashboard
+- For users that are able to update the `LEGACY_META_OPTION` option, avoid trying to update `TITLE_FORMATS_OPTION` which would display an 403 in Calypso.
+- Hide plan links for P2 sites that can't have plans
+- Hide plan link to email plan for P2 sites
+- Hide the FAB icon on Yoast admin pages to avoid overlap with the Yoast help icon.
+- Hook into the Connection package remote_connect to perform Jetpack specific routines
+- Increase the priority of the Subscriptions block
+- jetpack disconnect CLI command: Add support to delete the connection owner and improve error message
+- JITM: remove unnecessary add_filter calls for the JITM filters.
+- jp-tracks-functions script moved to Tracking package.
+- No changelog needed, this is a fix for a Calypso feature that has not been enabled yet
+- Offer features depending on the current plan of the site rather on the current platform of the site.
+- Paid blocks: Remove nested upgrade nudges on the frontend.
+- Premium Content blocks: Fix parent block selector button when premium content blocks are nested within other blocks.
+- Refactored to improve testability. No functionality is affected.
+- Remove "user-less" jargon from code
+- Remove CodeClimate
+- Removed the carousel reblog functionality (unused in Jetpack).
+- Removed use of experimental feature and replaced with new `useBlockProps` hook to ensure video block continues to function correctly
+- Remove onboarding_token logic in the Remote provision XMLRPC method from the Connection package and add it to the Jetpack plugin
+- Replace user locale with WordPress.com user locale on Atomic.
+- Search: added search happy route E2E tests
+- Simplify wpcom/v2 delete transient endpoint logic.
+- Standardize wording for connecting the user.
+- Story block: address minor display issues
+- Story block: fix edit button in the block's toolbar to use the pencil icon instead of Select Media text
+- Story Block: Fix syncing muted state
+- Story Block: Fix video not loading on safari and Chrome iOS
+- Turns off css tidy shorthand optimization to prevent clashes with gutenberg block validation
+- Updated Jetpack_Google_Analytics to use static property $analytics
+- Updated package dependencies
+- update jetpack-redirect dependency
+- Update logic for showing a Redirect flag in the sidebar
+- Update Sync Connection Tests to utilize fix nomenclature
+- Update Sync unit tests to align with new return format of get_object_by_id.
+- Update the priority for overriding unified nav styles.
+- Update the required version of "connection-ui" package.
+- WordPress.com API: allow switching from locale variant to primary in Site Settings endpoint.
+
+## 9.7-beta - 2021-04-27
+### Enhancements
+- Blocks: improve test coverage for better reliability of each one of Jetpack's blocks.
+- Carousel: improve general performance.
+- Dashboard: add explanation when a feature is unavailable.
+- Dashboard: improve the display of buttons in the update modal.
+- Jetpack Videos: add "Play Inline" setting to play a video inline instead of full-screen on mobile devices when enabled.
+- SEO Tools: improve usability of settings interface.
+- Widgets: improve message displayed in Blog Stats Widget when there are no stats to display.
+- WordAds: add Global Privacy Control (GPC) support to CCPA.
+
+### Improved compatibility
+- Blocks: continous work to ensure full compatibility between Jetpack's Blocks and WordPress' upcoming Full Site Editing feature.
+- Featured Content: avoid PHP warnings when terms are fetched without a taxonomy to filter by.
+- Feature Hints: avoid Fatal errors when other plugins filter the plugin list.
+- General: improvements to bring multiple features up to WordPress coding standards.
+- Publicize: update Twitter text processing library to avoid errors when using PHP 8.
+- Sharing: avoid broken sharing icons when using IE11 and the legacy AMP plugin's theme.
+
+### Bug fixes
+- Image CDN: correct image URLs in srcset in certain cases.
+- Instant Search: enable link filtering on built-in WordPress taxonomies.
+- Instant Search: fix handling of customizer controls using refresh.
+- Instant Search: fix race condition for API responses.
+- Instant Search: prevent excluding all post types.
+- Instant Search: set the number of returned posts using the query's `posts_per_page` value.
+- Instant Search: improve settings interface usability.
+- Markdown: fix regression that broke links with single-quoted href attributes.
+- Sharing / Publicize: properly encode URLs in Open Graph tags.
+
+### Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->
+- Account for Categories and Tags in nav unification
+- Adds segmentation "from" parameter to the registration request
+- Always use WP Admin for comments in Atomic sites.
+- Change copy on in-place connection title to match user-less behavior
+- Add e2e test to cover Jetpack Assistant's (Recommendations) main flow
+- Add field for zendesk meta in /me/sites API for mobile apps
+- Add unit tests to cover the functionality of each step of the assistant
+- Autoloader: Use a different suffix for each release to fix #19472.
+- Avoid PHP Notices in jetpack_blog_display_custom_excerpt() when run outside of the loop / without post context.
+- Calypso's Tool -> Export menu now honors the 'Show advanced dashboard pages' setting
+- Changelog: update with latest changes that were cherry-picked to 9.6 during Beta period.
+- Change the command to build Jetpack in E2E tests Github action workflow
+- Connection: moving the registration REST endpoint to the Connection package.
+- Docs: fix typos in E2E README
+- Do not load modules that require a user when in user-less state
+- E2E tests: fixed hover action
+- E2E tests: publish Testspace results in folders
+- In-Place Connection: partially replace the secondary users connection flow with `InPlaceConnection` component from `@automattic/jetpack-connection` package.
+- Jetpack Assistant: Add the product slug to the events dispatched when users see and click the product being upsold
+- Licenses: show the license-aware version of the Connection banner when there is a userless connection established and there are stored licenses.
+- Licenses: hide the Recommendations banner when the Connection banner is visible.
+- Move JITM's REST API endpoints into the package
+- Nav Unification: Remove Sharing submenu option from settings menu for wpcom sites.
+- Nav unification: sync sidebar collapsed state with wpcom.
+- Nav unification: updated the Jetpack admin menu logo SVG for increased compatibility with colour schemes
+- Nav Unification: Always show the Theme Showcase (wordpress.com/themes) to WP.com free sites.
+- Nav Unification: remove the box-shadow at the top of the Sidebar.
+- Refactored the menu and submenu items replacement for nav unification
+- Remove broken link to Scan details on Atomic sites
+- Replaced the string "Add new site" to "Add new site" on masterbar and corrected the unit tests.
+- Reassign $submenu_file value as null for theme-install.php so correct menu item Add New Theme is highlighted in admin menu.
+- Record stat of the first time the site is registered
+- Replace fragile element selectors with a more robust version of themselves
+- REST API: Allow site-level authentication on plugins, themes, modules endpoints
+- REST API: Add list modules v1.2 endpoint.
+- Removing the password-checker package from the Jetpack plugin composer.json file.
+- Sanitize the hookname used to generate menu item IDs
+- Show current WPCOM plan in sidebar menu item "Upgrades" when nav unification is enabled.
+- Update prepare_menu_item_url in admin menu API to replace special characters in URLs with their HTML entities such as ampersand (e.g. convert &amp; to &).
+- Updated package dependencies.
+- WordAds: add translated text for use with inline and sticky slots
+- WordAds: use WPCOM hosting type for Atomic sites
+
+## 9.6.1 - 2021-04-13
+### Bug fixes
+- Connection tools: safeguard cleanup tool against accidental option removal.
+- Dashboard: fix loading indicator styles by deprecating our custom solution in favor of WordPress Core's Spinner.
+- Instant Search: fix Customizer and styling bugs introduced in 9.6.
+- Instant Search: Handle pagination edge-case with excluded post types.
+- Sharing: ensure the feature can be used when Jetpack is used in Offline mode.
+- Stats: Fix time period selection on the stats page.
+
+### Other
+- Admin Menu: Centralize class loading in Jetpack codebase.
+- Admin Menu: Fix the display of the Links Manager.
+- Cover block: fix paid-block-media-placeholder interference with flex positioning.
+- Remove outdated reference to SEO as a paid feature in readme.txt.
+
+## 9.6 - 2021-04-06
+### Enhancements
+- Beautiful Math: remove title attribute from generated image.
+- Blocks: add width option to buttons in Subscriptions, Revue, Form, Calendly, and Payments blocks.
+- Blocks: improve reliability of all blocks via unit tests.
+- Dashboard: add new options to customize SEO settings.
+- Dashboard: add new option to input license key.
+- Dashboard: update recommmendations notice to improve accessibility.
+- General: allow the use of some Jetpack features without connecting to a WordPress.com account.
+- Instant Search: add a new result format layout, for sites using WooCommerce.
+- Instant Search: improve performance thanks to lazily loading.
+- Instant Search: only use site accelerator for displaying images if it is enabled on the site.
+- Instant Search: update the search modal design.
+- Jetpack Videos: improve the display of transcoding status for newly uploaded videos.
+- Podcast Player Block: improve fetching of the podcast description.
+- Syncrhonization: add new sync/health endpoint to allow update of the sync health options.
+
+### Improved compatibility
+- Auto-updates: respect auto-update constant/filters in plugin API endpoints.
+- Autoloader: fix uninstallation fatal.
+- General: update colors to match dashboard color changes in WordPress 5.7.
+- Gravatar Hovercards: fix compatibility with the AMP plugin for Pingbacks and Trackbacks.
+- Latest Instagram Posts Block: improve compatibility with Gutenberg 10.1.0.
+- Markdown: avoid processing URLs that may include Markdown syntax.
+- Opentable Block: improve compatibility with Gutenberg 10.1.0.
+- Podcast Player Block: fix compatibility with the AMP plugin in the Customizer preview.
+- Podcast Player Block: improve compatibility with Gutenberg 10.1.0.
+- Synchronization: avoid issues with themes or plugins using anonymous functions within hooks.
+
+### Bug fixes
+- Connection Flow: resolve issue that prevented connections from the Opera browser.
+- Custom Content Types: fix inline quick editing of Restaurant menu items.
+- Instant Search: ensure Escape key always closes search modal.
+- Instant Search: fix an issue that led to a PHP notice for undefined index.
+- Instant Search: Fix modal opening bug within the Customizer.
+- Instant Search: fix handling of Customizer controls using refresh.
+- Instant Search: fix visibility of filter checkboxes in Safari on Twenty Twenty and Twenty Twenty One themes.
+- Instant Search: hide "filters" menu on mobile if there are no filters to display.
+- Instant Search: prevent IE11 from spawning overlay on load.
+- Publicize: avoid notices as embeds are added to a post.
+- Recommendations: when enabling Site Accelerator, also enable Tiled Galleries.
+- Sharing: omit Open Graph description tag from posts with Premium Content.
+- Site Logo: fix issues when updating logo in the Customizer.
+- Star Rating Block: allow 0 stars to be selected.
+- Subscriptions Block: allow block to override color styles, falling back to theme defaults.
+- Tiled Gallery: prevent block validation errors for mosaic and column layouts.
+- Video Block: display fallback when fetching videos that have been deleted.
+- WordPress.com Block Editor: disable if all Jetpack blocks are disabled via a filter.
+- WordPress.com REST API: make sure post metadata is always an array.
+
+### Other
+- Admin Page: Do not show an error message with JSONP is disabled. The admin page does not use it.
+- Readme: update link to changelog file. No changelog entry necessary.
+
+## 9.5.2 - 2021-03-16
+### Improved compatibility
+- Block Editor: avoid conflicts between multiple Jetpack blocks and Gutenberg version 10.1.0.
+
+### Bug fixes
+- Instant Search: prevent IE11 from spawning overlay on load.
+- WordPress.com Toolbar and customizations: fix multiple issues causing navigation panel discrepancies between the WP-Admin dashboard and the WordPress.com dashboard.
+
+## 9.5.1 - 2021-03-04
+### Bug fixes
+- Sharing: avoid potential conflicts with the Blog Posts Block from Newspack.
+- Subscriptions Block: avoid validation errors when customizing font size on a site using the Gutenberg plugin.
+
+## [9.5] - 2021-03-02
+### Enhancements
+- Carousel: improve the experience on mobile devices by allowing touch events (pinch, zoom).
+- Instant Search: improve the design of the Search modal.
+- Instant Search: open search result links in the current window rather than opening a new one.
+- Podcast Player Block: allow filtering the number of tracks returned when fetching new podcast episodes.
+- Podcast Player Block: add publication date to the data returned when fetching new podcast episodes.
+- Recommendations: add a dashboard banner to help users discover the best Jetpack features.
+- Related Posts: improve performance by removing jQuery dependency.
+- SEO Tools: make the feature available for all sites.
+- Social Icons Widget: add new icons.
+- Social Menu: add new icons.
+- Synchronization: improve reliability of data by excluding blocked taxonomies.
+- Tiled Galleries: improve performance by removing jQuery dependency.
+- Video Block: add support for custom video player progress bar colors.
+- Widgets: display notice in the customizer when one needs to connect their account before using the Instagram widget.
+
+### Improved compatibility
+- Block Editor: update all blocks to be fully compatible with WordPress 5.7.
+- General: Jetpack now requires WordPress 5.6, and is fully compatible with WordPress 5.7.
+- Protect: ensure that the blocked login page is fully compatible with the Robots API changes introduced in WordPress 5.7.
+
+### Bug fixes
+- Autoloader: prevent transitive plugin execution.
+- Carousel: ensure that the Carousel view is available regardless of your gallery's link settings.
+- Comments: improve respect for the Core moderation option in particular cases.
+- Connection flow: ensuring Jetpack Dashboard successfully loads after reconnect.
+- Cookies & Consent Widget: ensure the widget can be edited from the new block-based widget editor.
+- Custom Content Types: allow Newspack's Blog Posts block to display Testimonial and Portfolio posts.
+- Dashboard: improve performance by reducing excessive API calls.
+- Dashboard: improve product upgrade flow for non-connected Jetpack users.
+- Instant Search: fix closing of the overlay using the Escape key in IE11.
+- Instant Search: improve compatibility with browser forward/back navigation.
+- Instant Search: avoid issues when changes made in customizer would not immediately appear in preview.
+- Jetpack Videos: fix responsiveness of Video poster images.
+- Map Block: avoid issues when resize event listener was not removed when the component was unmounted.
+- Markdown: avoid filters loading too early when creating a new site within a Multisite network.
+- Payments Block: avoid layout issues when setting up a new payment plan.
+- Pay With Paypal Block: ensure that line breaks can be used in product description.
+- Secure Sign On: improve the connection flow when users first log in via SSO.
+- Sharing: avoid displaying block content in Open Graph Meta tags when not needed.
+- Sharing: ensure that sharing popup opens properly in Firefox.
+- Shortcodes: use arguments provided by shortcode attributes for the Instagram embeds.
+- Video Block: avoid potential PHP notice when working with Jetpack Videos.
+- WhatsApp block: adjust width of block options toolbar.
+
+## 9.4.1 - 2021-02-16
+### Bug fixes
+- Carousel: ensure that the Carousel view is available regardless of your gallery's link settings.
+- Dashboard: improve performance by reducing excessive API calls.
+- Payments Block: avoid layout issues when setting up a new payment plan.
+
+## [9.4] - 2021-02-02
+### Enhancements
+- Dashboard: add new Recommendations page to help you get started with recommended features of Jetpack.
+- Dashboard: change the development notice link to an external link.
+- Podcast Player Block: add skip back/forward buttons.
+- Podcast Player Block: improve RSS feed detection.
+- Sharing: remove jQuery dependency to improve performance of the sharing buttons.
+- Sharing: improve performance of the Email Sharing button by lazy-loading the Google reCAPTCHA when necessary.
+- Social Menu: add Patreon icon.
+- Synchronization with WordPress.com: improve the validation of field names when calculating checksums on tables.
+- Synchronization Performance: reduce concurrency of requests by implementation of Retry-After for concurrent requests.
+- Widgets: add Patreon icon to Social Icons Widget.
+- WordPress.com REST API: add new Cloudflare Analytics field option.
+
+### Improved compatibility
+- Form Block: avoid display issues when submitting a form within an AMP view.
+- Instant Search: improve support for older browsers such as Internet Explorer 11.
+- Secure Sign On: support custom login page plugins such as WPS Hide Login.
+- Tiled Gallery Block: add additional CSS classes to improve compatibility with the Core Gallery block.
+
+### Bug fixes
+- Autoloader: resolve inconsistencies when including a cache supporting autoloader from one without cache support.
+- Contact Form: prevent post status transition actions from firing twice when the post status is changed.
+- Crowdsignal: avoid issues when using a Crowdsignal shortcode in the block editor.
+- Jetpack Video Block: avoid block validation errors when editing existing content.
+- Jetpack Video Block: add missing alignment classes.
+- Publicize: allow clearing Publicize custom message if a post title has been set.
+- Stats: update dashboard widget to respect new dashboard widget markup.
+- Subcriptions Block: avoid errors when displayed within a Disabled context, such as a block or pattern preview.
+- Synchronization with WordPress.com: avoid PHP warnings.
+- Synchronization with WordPress.com: fix potential PHP notices when making XMLRPC requests.
+- WordPress.com REST API: fix PHP notice when fetching user connection data without a connection owner.
+
+## 9.3.1 - 2021-01-14
+### Bug fixes
+- Multisite: avoid Fatals on sites using the WPMUDEV domain mapping plugin.
+- SEO Tools: prevent a PHP notice in some situations involving taxonomy or author pages.
+
+## [9.3] - 2021-01-12
+### Enhancements
+- Autoloader: improve performance by caching known plugins.
+- Instant Search: improve compatibility with IE11.
+- Related Posts: use the semantic time element when displaying dates.
+- Sharing: defer loading of the reCAPTCHA library by default.
+
+### Improved compatibility
+- AMP: avoid PHP notice on sites using legacy versions of the AMP plugin.
+- Dashboard: avoid errors on sites using PHP 8.
+- General: use modern JavaScript best practices for loading scripts.
+- Infinite Scroll: add compatibility for the TwentyTwentyOne theme.
+- Search: improve styling for the TwentyTwenty theme.
+- Synchronization: improve integrity of synchronization between your site and WordPress.com.
+- WordPress.com Toolbar: iterate on the design and functionality of the toolbar to match the toolbar in use on WordPress.com.
+
+### Bug fixes
+- Autoloader: resolve symbolic links in active plugin paths.
+- Autoloader: ensure deactivating plugins aren't cached.
+- Blocks: improve sidebar display in non-fullscreen mode.
+- Content Options: do not output CSS when it is not needed.
+- Instant Search: improve display of tags and categories in search results.
+- Lazy Images: attempt to load all images when printing a post, and inform the user when printing if images haven't been loaded.
+- Podcast Player Block: avoid PHP notices in some scenarios.
+- Search: limit number of filters automatically set up.
+- Slideshow Block: ensure that image captions are always shown, regardless of the theme you're using.
+- Subscription Block: display the correct default placeholder and button text strings in the post editor.
+- Subscriptions: fix the behavior of the toggle switches for the comment subscription settings.
+- Twitter Threads: improve how Twitter Cards are generated for embeds in the thread preview.
+- VideoPress: detect aspect ratios rounding to both 1.77 and 1.78 as 16:9.
+- Widgets: avoid JavaScript errors when displaying the Cookies & Consent Widget.
+- WordPress.com REST API: avoid fatal errors in some scenarios, when updating a post's metadata.
+
+## 9.2.1 - 2020-12-10
+### Improved compatibility
+- Site Health Tools: improve PHP 8 compatibility.
+- Twenty Twenty One: add support for Jetpack's Content Options.
+
+### Bug fixes
+- Instant Search: fix layout issues with filtering checkboxes with some themes.
+- WordPress.com Toolbar: avoid Fatal errors when the feature is not active.
+- WordPress.com Toolbar: avoid 404 errors when loading the toolbar.
+
+## [9.2] - 2020-12-01
+### Enhancements
+- Connection Flow: clarify error message when the options table is not writable.
+- Contact Form Block: display fallback link when the block is rendered in non-WordPress contexts, such as subscription emails.
+- Contact Form Block: display the correct default email address and subject in the form block settings.
+- Dashboard: clarify language around support options.
+- Instagram Embeds: add support for embed parameters supported by Instagram.
+- Payments Block: move unreadable notice to the sidebar.
+- Pinterest Block: ensure that Pinterest embeds are displayed nicely in non-WordPress contexts, such as subscription emails.
+- Podcast Block: display fallback link when the block is rendered in non-WordPress contexts, such as RSS feeds.
+- Search: improve URL formatting for the expanded search layout.
+- Sharing: ensure the first suitable image found in a post is always the one used in Open Graph Image meta tags.
+- Site Health Tools: update description of Synchronization issues for better usability.
+- Slideshow Block: ensure that slideshows are displayed nicely in subscription emails.
+- Status: improve detection of staging servers.
+- Story Block: improve display of the block.
+- Synchronization: improve synchronization of comment status, taxononmies, and terms between your site and WordPress.com.
+- Tiled Gallery Block: improve rendering when the block is rendered in non-WordPress contexts, such as subscription emails.
+- WhatsApp button Block: improve text alignment on mobile devices.
+- WordPress.com Toolbar: include admin color in user's REST API output.
+
+### Improved compatibility
+- Autoloader: support Composer 2.0.7.
+- General: continued work towards ensuring that Jetpack is fully compatible with the upcoming version of PHP, PHP 8.
+- General: ensure Jetpack's full compatibility with the upcoming WordPress 5.6 release.
+- General: update Jetpack's minimum required WordPress version to 5.5, in anticipation of the upcoming WordPress 5.6 release.
+- Sharing: disable Open Graph Meta tags added by the Web Stories plugin when Jetpack's tags are active.
+- Stats: support Web Stories plugin.
+- Synchronization: ensure better synchronization of post meta data (used by Publicize, Subscriptions, Search) in WordPress 5.6.
+
+### Bug fixes
+- Connection: handle XMLRPC requests when SERVER_PORT is not defined.
+- External Media: fix a conflict with CoBlock's image replace feature.
+- Dashboard: fix incorrect links to Jetpack credentials form.
+- Google Analytics: ensure compatibility with Google Analytics 4 (GA4).
+- Sitemaps: ensure that the Home URL is slashed on subdirectory websites.
+- Social Icons widget: display only one icon when a URL matches both a domain and the feed URL match.
+- Sync: avoid trying to sync when something else disabled syncing a request.
+- Whatsapp Button Block: fix Guyana country code metadata.
+- WordPress.com REST API: restore post comments when untrashing a post, such as via the mobile apps.
+
+## [9.1] - 2020-11-10
+### Enhancements
+- Button Block: add a center alignment option to all Jetpack button blocks.
+- Content Options: add new filter to allow theme and plugin authors to disable featured image removal for their Custom Post Types.
+- Dashboard: improve the display of dates in the Jetpack Plan screen and in the Stats graph.
+- Dashboard: improve the display of numbers in all languages.
+- Donations Block: improve the display of the block outside WordPress (in subscription emails, for example).
+- Embeds: update Loom logo.
+- External Media: add feature to the Cover block.
+- Google Calendar Block: improve the display of the block in the editor.
+- Image Compare Block: accessibility improvements.
+- Instant Search: improve accessibility of the Search modal.
+- Likes: remove jQuery dependency where possible.
+- Pay with PayPal Block: improve the styling of the buttons in subscription emails.
+- Pay with PayPal Block: improve the display of currencies.
+- Podcast Player Block: add option to hide the episode title.
+- Podcast Player Block: display more helpful error messages when a podcast cannot be embedded.
+- Publicize: improve the usability of the Twitter thread options.
+- REST API: support needed capabilities in Jetpack REST API endpoints that allow site based authentication.
+- Social Menu & Social Media Icons: add support for Telegram profiles.
+- Synchronization: improve reliability of synchronization of theme changes.
+- WhatsApp Block: add option to change the alignment of the button.
+- Widget Visibility: improve performance on sites with a large number of pages.
+- WordPress.com Block Editor: add option to add metadata to a post indicating the last editor used.
+- WordPress.com REST API: remove outdated code that allowed non-secure requests to the API, as such requests are no longer accepted.
+
+### Improved compatibility
+- Comments: avoid AMP validation errors when using Jetpack's Comments feature and the AMP plugin.
+- Dashboard: better support all states available when using one of Jetpack's Security solutions.
+- Embeds: improve compatibility between Jetpack's Instagram embed and WordPress' own embed.
+- Embeds: ensure Facebook Embeds work well with the AMP plugin.
+- External Media: update iconography and improve forward compatibility.
+- General: better detect local development environments.
+- Google Analytics: add support for the AMP plugin to track WooCommerce events.
+- OpenTable Block: ensure full compatibility with the AMP plugin.
+- Pay with PayPal Block: ensure full compatibility with the AMP plugin.
+- Sharing: add support for the Google Web Stories plugin.
+- Slideshow Block: ensure that the block can be displayed using the Full Width alignment setting when using the Gutenberg plugin.
+- Widget Visibility: avoid performance impact it may have on the block editor when used with the Gutenberg plugin.
+- YouTube embeds: ensure that all YouTube video embeds work well when using the AMP plugin.
+
+### Bug fixes
+- Calendly and Eventbrite Blocks: fix layout issue when selecting block styles in the editor.
+- Contact Form: selection widgets, radio buttons, and checkboxes can now use commas, brackets, and backslashes in the labels and values without breaking the form.
+- Donations / Payments Block: fix visual bug in Stripe connection banner.
+- Embeds: ensure Facebook videos are centered properly with the Twenty Twenty theme.
+- Google Analytics: support updated Google Analytics 4 properties.
+- Image CDN: the CDN will now ignore attempts to specify percentages for width or height in an image tag.
+- Infinite Scroll: ensure the number of posts loaded when using Infinite Scroll respects posts per page settings.
+- Latest Instagram Posts Block: avoid PHP warning when no images can be retrieved from Instagram.
+- Lazy Images: attempt to load all images when printing a post, and inform the user when printing if images haven't been loaded.
+- Pay with PayPal Block: add default price value.
+- Pay with PayPal Block: ensure currencies are displayed properly in the editor.
+- Protect: fix handling of IPv6 addresses.
+- Publicize: ensure that custom messages can be saved when using the Portfolio Custom Post Type.
+- Publicize: ensure that tweets consisting only of whitespace aren't added to Twitter threads.
+- Publicize: when generating Twitter threads, allow text to be split at line breaks where appropriate.
+- Security / Contact Form: add additional checks before checking submitted forms for spam.
+- Security / WordPress.com REST API: improve authentication checks when making proxied requests to a site's API endpoints.
+- Slideshow Block: fix a bug that prevented the first and last images from displaying when the slideshow loops.
+- Stats: no longer incorrectly report a term ID as a post ID in some rare cases.
+- Videos: ensure Jetpack videos use the correct aspect ratio in both the editor and the frontend, even when used within column blocks.
+- WhatsApp Block: fix issue when the text color would not be correct.
+
+## 9.0.2 - 2020-10-09
+### Enhancements
+- Publicize: improve handling of URLs when generating Twitter threads.
+
+### Bug fixes
+- Instagram Embeds: ensure that Instagram URLs with additional URL parameters can be embedded as well.
+- Media Extractor: prevent PHP notice for some URLs.
+- Publicize: avoid block editor errors when no Publicize connections are available.
+- Synchronization flow: avoid potential fatal errors when updating the plugin from the Dashboard > Updates screen.
+- Sharing: avoid PHP notices when a post object is invalid.
+- WordPress.com REST API: avoid errors when uploading images from a URL.
+
+## 9.0.1 - 2020-10-06
+### Bug fixes
+- General: remove a database optimization task that could potentially cause database issues.
+
+## [9.0] - 2020-10-06
+### Major Enhancements
+- Publicize: add the ability to publish the entire content of posts to Twitter as threads.
+
+### Enhancements
+- Blocks: update icon color for all blocks provided by Jetpack.
+- Custom CSS: add support for the `clip-path` property.
+- Custom CSS: add rebeccapurple color to the list of colors that can be processed by the SCSS and LESS preprocessors.
+- Dashboard: clarify Backup & Scan settings and alerts.
+- Dashboard: improve the reconnecting process for site owners willing to disconnect and then reconnect Jetpack to WordPress.com.
+- Dashboard: do not display option to purchase a plan when in Offline mode.
+- Embeds: add Loom.com as a new embed option.
+- Embeds: update song.link oEmbed to support more formats.
+- Embeds: allow Instagram embeds to keep working via the WordPress.com REST API.
+- Google Analytics: move the legacy variant from the HTML body to head.
+- Instant Search: optimize images displayed in Search results thanks to Jetpack's Image CDN.
+- Instant Search: improve layout of search results on mobile devices.
+- Instant Search: trigger the search overlay upon typing into the search input.
+- Pay with PayPal Block: display more helpful content in subscription emails.
+- OpenTable Block: display wide style widget as standard on mobile.
+- Site Health: add new test for testing blog and current user's token health.
+- Site Health: refine information shared when using the "Copy site info to clipboard" button.
+- Site Health: offer more information and help in failing tests.
+- Slideshow Block: remove the default background color.
+- Synchronization: improve performance of synchronization of term changes.
+
+### Improved compatibility
+- Autoloader: add support for non-optimized PSR-4 namespace loading.
+- Autoloader: add PSR-0 support.
+- Autoloader: add handling for filtered `active_plugins` options that would otherwise have left classes out.
+- Contact Form: add more integration settings for a better compatibility with Jetpack CRM.
+- Contact Form: ensure that forms are displayed correctly in legacy AMP Reader views.
+- Dashboard: remove plugin autoupdate settings from the dashboard now that WordPress itself handles this feature.
+- Embeds: ensure that Instagram and Facebook embeds are always available, to avoid breaking embeds on existing posts.
+- Embeds: solve PHP 8 compatibility issues with Crowdsignal embeds.
+- EventBrite Block: ensure full compatibility with the AMP plugin.
+- Google Calendar Block: ensure full compatibility with the AMP plugin.
+- Image Compare Block: improve display on AMP views.
+- Infinite Scroll: ensure Infinite Scroll works on AMP views as well for the Twenty Nineteen and Twenty Twenty themes.
+- Infinite Scroll: add tools allowing theme authors to implement Infinite Scroll on AMP views in their own theme.
+- Pinterest Block: ensure full compatibility with the AMP plugin.
+- Security Scanning: avoid validation issues when using the AMP plugin and when notified of a security threat on your site.
+- Slideshow Block: ensure images are displayed properly when using the Swell theme.
+- Synchronization: ensure review comments are properly synchronized with WordPress.com.
+- Twitter Threads Block: add support for unrolling threads when Gutenberg 8.8+ is activated.
+- WordPress.com REST API: improved PHP 8.0 support.
+
+### Bug fixes
+- Activity Log: avoid potential duplicate entries.
+- Beautiful Math: resolve incorrectly rendered LaTeX images cached during a server migration.
+- Connection Flow: resolve conflicts where "staging" connection errors were wrongly detected for some sites.
+- Copy Post: ensure categories can be copied properly on sites using an old database schema.
+- Donations / Payments: fix link to WordPress.com on sites where WordPress is installed in a subdirectory.
+- Image CDN: ensure Wikimedia-hosted images are correctly handled by the CDN.
+- Infinity Scroll: remove the loading spinner when loading an extra set of posts and receiving an empty response.
+- Stats: do not track visits when site is in staging mode.
+- Synchronization: ensure theme information is correctly synchronized with WordPress.com.
+- WordPress.com Block Editor: ensure that "Code Editor" menu item is available on mobile devices.
+- WordPress.com REST API: improve messaging when uploading a media file via the API fails.
+
+## 8.9.1 - 2020-09-16
+### Enhancements
+- Jetpack Dashboard: add support for new Jetpack plans.
+
+### Bug fixes
+- General: avoid deprecation PHP notices when used with WooCommerce 4.4+.
+- Image CDN: avoid PHP warning when replacing URLs by their image CDN equivalent.
+- REST API: avoid authentication issues when using a third-party plugin also using the REST API.
+- Search: fix a bug where no results appear when using Jetpack's Instant Search interface.
+- Site Health Tools: skip a connection status test when in offline mode.
+
+## [8.9] - 2020-09-01
+### Major Enhancements
+- The new Donations Block allows you to easily accept and process donations on your site.
+- You can now preview how your posts will look on Facebook, Twitter, and Google Search Results even before you hit the Publish button.
+
+### Enhancements
+- Blocks: add "Edit" button to the Calendly block toolbar.
+- Blocks: add new "Consent" field option to the Form block.
+- Connection: improve the reconnection process when your site is not properly connected to WordPress.com anymore.
+- Connection: improve messaging offered and displayed in the dashboard when there are connection issues between your site and WordPress.com.
+- Contact Form: put feedback that matches the disallowed list in trash.
+- Dashboard: improved legibility across all Jetpack interfaces.
+- External Media: improve keyboard navigation in the media modal.
+- External Media: offer a way to disconnect Google Photos accounts from within the media modal.
+- Sharing: add spacing around customization link.
+- Search: improve styling of expanded results in the Instant Search interface.
+- Shortcodes: remove jQuery dependency from Gist shortcode.
+
+### Improved compatibility
+- Anti-Spam: better handle globally-configured Akismet API keys in the Jetpack dashboard.
+- Blocks: update to use latest colors defined by WordPress.
+- Blocks: ensure our External Media option is compatible with other plugins that also make changes to the Media Library options in the block editor.
+- Connection: ensure better compatibility of the Monitor, Protect, Secure Sign In, Stats, and Subscription features with your site's connection to WordPress.com.
+- General: remove references to pre-PHP 5.6 code.
+- Sharing: improve accessibility of the sharing butttons in AMP views.
+- Shortcode Embeds: ensure compatibility of the Instagram embeds with upcoming Instagram API changes.
+- Third-party plugin compatibility: add new compatibility file for the Creative Mail plugin.
+- Third-party plugin compatibility: add Slim SEO to the list of plugins compatible with Jetpack's Open Graph and Twitter Cards Meta tags.
+
+### Bug fixes
+- Autoloader: avoid issues when updating plugins using the Autoloader in environments using OPCache.
+- Autoloader: remove the map regeneration that occurs after a plugin update.
+- Activity Log: ensure that theme changes are mentioned in the Activity Log.
+- Blocks: ensure alignment options are respected for the Video block in the editor.
+- Blocks: avoid accidental disconnections of the Payments block in the editor.
+- Blocks: bug fixes and improvement of consistency of block style implementation in the OpenTable block.
+- Blocks: avoid duplicate navigation arrows in the Slideshow block.
+- CLI tools: avoid notices when using Synchronization CLI tools.
+- Connection: ensure that secondary users can connect their own account to their WordPress.com account.
+- Dashboard: fix missing card for Backups in some error cases.
+- Protect: avoid displaying HTML markup on blocked login screen.
+- Protect: avoid Fatal errors when trying to update Protect options from the REST API.
+- Search: ensure that Instant Search options are properly saved in the Customizer.
+- Search: avoid errors when searching for a term and including the "%" symbol.
+- Shortcodes: avoid Fatal errors when receiving unexpected response from Flickr.
+- Theme Tools: resolve a PHP notice in PHP 7.4.
+- Video: ensure that videos uploaded with Jetpack Videos are assigned to the correct author.
+- Widgets: ensure that the Instagram Widget is properly styled when previewed in the customizer.
+- Widgets: do not hide accepted cookie widget to allow visual customization in the Customizer.
+
+## 8.8.2 - 2020-08-17
+### Bug fixes
+- Infinite Scroll: avoid loading issues with some themes using Infinite Scroll.
+
+## 8.8.1 - 2020-08-10
+### Improved compatibility
+- WordPress 5.5: ensure that Jetpack's Autoupdate feature is fully compatible with the autoupdate feature introduced in the new version of WordPress.
+
+### Bug fixes
+- Admin Page: avoid blank dashboard when some specific notices (such as Offline mode) are displayed.
+- Synchronization with WordPress.com: resolve errors triggered from not properly sanitizing/verifying inputs.
+
+## [8.8] - 2020-08-04
+### Enhancements
+- Blocks: update categories to improve discoverability.
+- Connection Flow: improve experience of any additional users of your site that may want to link their WordPress.com account.
+- Dashboard: add Jetpack Anti-spam to the product list in the dashboard.
+- External Media: add ability to show google photos for a specific month or year.
+- Infinite Scroll: improve accessibility of the "Load More" behavior.
+- Instant Search: add support for excluding certain post types from search results.
+- Mailchimp Block: show error message on email validation error.
+- Markdown block: improve handling of long links with custom characters, as well as em- and en- dashes.
+- Payments block: add extra customization options to the Submit button.
+- Performance: use WordPress-provided wp_resource_hints for DNS prefetching.
+- Podcast Player block: start saving content in post content for better compatibility with non-WordPress tools.
+- Sharing: add direct link to share button customization for logged-in admins.
+- Widgets: introduce new Instagram Widget.
+- Widgets: add additional options to the Twitter Timeline widget.
+- Widgets: add the rel attribute to links with target=”_blank” in the Social Icons widget.
+- WordAds: update ad units to be more flexible and dynamic.
+
+### Improved compatibility
+- Blocks: add default text color to all buttons in AMP mode.
+- Connection Flow: improve the display of any connection errors, and provide more tools to help fix those connection errors.
+- Contact Form: updates based on language improvements in WordPress 5.5.
+- Deprecated hooks: Use native WordPress functionality for deprecated hooks.
+- Deprecation Notices: provide more information about deprecated files and functions.
+- General: ensure Jetpack's full compatibility with the upcoming WordPress 5.5 release.
+- General: update Jetpack's minimum required WordPress version to 5.4, in anticipation of the upcoming WordPress 5.5 release.
+- General: update Jetpack to support new environment type features introduced in WordPress 5.5.
+- Infinite Scroll: fix layout issue when used with the P2 theme.
+- Latest Instagram Posts block: fix layout when used with the AMP plugin.
+- Synchronization: improve stability of the connection between your site and WordPress.com.
+- WordPress.com REST API: adjust API response based on language improvements in WordPress 5.5.
+
+### Bug fixes
+- Asset CDN: avoid returning a directory when setting the local path for translation files.
+- Carousel: ensure jQuery is loaded when using the Carousel feature.
+- Contact Form: fix alignment of radio and checkbox items.
+- External Media: ensure that images inserted from Pexels or Google Photos are attached to the post you're composing.
+- General: avoid issues on sites hosted on a Windows server environment.
+- General: avoid PHP notices when managing your site via the WordPress Desktop app.
+- Gathering Tweetstorms: don't enable the Unroll button until after a Twitter URL has been entered and verified.
+- Latest Instagram Posts block: stop showing cached galleries after the Instagram connection has been deleted.
+- Likes: resolve a potential PHP notice.
+- Media Tools: resolve potential PHP notice.
+- OpenTable block: ensure additional CSS classes are populated correctly.
+- Subscriptions block: Stop saving localized attributes defaults in the block content.
+- Tiled Gallery block: do not load the block when your site is not connected to WordPress.com.
+- Twitter Cards: resolve potential PHP notice.
+
+## 8.7.1 - 2020-07-14
+### Bug fixes
+- Autoloader: avoid PHP warning on sites with an invalid `active_plugins` option.
+- Backwards Compatibility: Prevent fatal errors on themes relying on a deprecated static method.
+- Blocks: show a loading spinner when unrolling Twitter threads on WordPress 5.3.
+- General: prevent PHP notices with the Contact Form feature, Sharing feature, and the Latest Instagram Galleries block.
+- Sharing: create proper Open Graph Description tag when a post starts with an image.
+
+## [8.7] - 2020-07-07
+### Major Enhancements
+- When inserting images into your posts, you can now choose images from your Google Photos account, or from the Pexels Free Photos library.
+- WhatsApp block: this new block adds a button so your site's visitors can contact you via WhatsApp with the tap of a button.
+- You can now import Twitter threads into a post with the click of a button.
+- Jetpack Search now includes more options to customize the look of the Search overlay: you can choose between minimal and expanded results, you can hide the Sort option, or change the default sorting option.
+- Jetpack Ads: you can now enable a "Do Not Sell My Personal Information" link as specified in the California Consumer Privacy Act (CCPA) for California site visitors to opt-out of targeted advertising.
+
+### Enhancements
+- Blocks: add more options to customize the look of the Payments block.
+- Blocks: allowing playing a Jetpack video in the block editor.
+- Blocks: add episode link and improve the look of the Podcast player when displaying only one episode.
+- Blocks: add more customization options to the buttons offered by the following blocks: Calendly, Mailchimp, Eventbrite.
+- Blocks: rename "Earn" blocks: "Simple Payments" becomes "Pay with Paypal"; "Recurring Payments" becomes "Payments".
+- Connection Flow: improve the display of connection errors when a site cannot be connected to WordPress.com.
+- Contact Form: improve the "Empty Spam" process to better handle large amount of Spam.
+- Jetpack Search: use the full width of the browser when the site does not use any Jetpack Search Sidebar.
+- Performance: switch from JavaScript library to CSS animations to display loading spinners.
+- Related Posts: improve accessibility of the titles of each Related Post.
+- Site Stats: improve accessibility of the Stats dashboard.
+- Social Logos: update Facebook Logo design.
+- Widgets: improve accessibility of the Contact Info Widget as well as the Blog Stats Widget.
+- Widgets: improve performance of the Display Posts widget by fetching less data.
+
+### Improved compatibility
+- Autoloader: improve the way Jetpack librairies are loaded when used in multiple plugins.
+- Blocks: improve the display of the Tiled Gallery block when used with the AMP plugin.
+- Custom Content Types: ensure that the Comic Post Type is compatible with the AMP plugin.
+- Custom Content Types: allow third-party themes to enqueue their own Portfolio styles.
+- Gravatar Hovercards: avoid validation errors when used with the AMP plugin.
+- Open Graph Meta Tags: avoid displaying Jetpack's Tags when the Rank Math plugin is active.
+- Shortcodes / Embeds: ensure better compatibility of multiple embeds with the AMP plugin.
+- Sharing: ensure that all button styles can be used with the AMP plugin.
+- Sitemaps: avoid conflicts with the Sitemap option that will be available in the upcoming version of WordPress.
+- WordPress.com Toolbar: ensure it is accessible when using the Twenty Twenty theme.
+- WooCommerce: avoid broken resources when using the WooCommerce plugin alongside Jetpack.
+
+### Bug fixes
+- Blocks: avoid layout issues when using the Image Compare block alongside older themes.
+- Blocks: ensure the Eventbrite button can be centered.
+- Blocks: ensure the Podcast block can be loaded when the page is loaded via Infinite Scroll.
+- Blocks: do not render the Slideshow block's markup when no images have been added to the block.
+- Blocks: avoid errors when one adds and edits 2 Image Compare Blocks in a single post.
+- Blocks: fix Form block issues with checkbox fields not being checked by default when the option is selected.
+- Blocks: add missing "Required" option to the Form block's Checkbox field settings.
+- Blocks: avoid caching results from the Latest Instagram Posts block when there are errors with the fetched data.
+- Forms: improve accessibility of the "Required" text used in form fields.
+- Image CDN: avoid using CDN image URL when inserting an image using the image block.
+- Jetpack Search: load translations in the Search overlay on International sites.
+- Publicize: avoid layout issues when displaying broken connections in the Publicize block toolbar.
+- Sharing: avoid relying on jQuery for the official Facebook button.
+- Shortcodes / Embeds: fix the Twitch embed according to new Twitch embed requirements.
+- SEO Tools / Open Graph: improve cleaning up of description meta tags.
+
+## 8.6.1 - 2020-06-02
+### Bug Fixes
+- Resolves PHP notice when generating Twitter Cards for posts with images without saved size information.
+- Resolves an issue that can lead to excessive SQL queries.
+
+## [8.6] - 2020-06-02
+### Major Enhancements
+- Image Compare Block: show off your before / after pictures! This new block allows you to easily compare two images with a slider.
+- Latest Instagram Posts Block: this new block allows you to insert lists of the latest posts from your Instagram feed, on any post or page of your site.
+
+### Enhancements
+- Blocks: add new RSVP, Registration, Appointment, and Feedback form options to the existing Form block.
+- Blocks: add new width option to Form block fields.
+- Blocks: add more customization options to the Subscriptions block.
+- Blocks: use the Mailchimp logo for the Mailchimp block icon.
+- Blocks: add Schema.org metadata to the Star Rating block.
+- Blocks: add alignment options to the Revue block's button.
+- Blocks: add an example usage of the Podcast Player Block.
+- Carousel: new option to remove the Comment form area from the Carousel view.
+- Connection Flow: add new tools allowing for a better Jetpack onboarding for new Jetpack site owners.
+- Connection Flow: ensure connection can happen on sites that can be a bit slower.
+- Dashboard: add new sections for the upcoming Scan feature.
+- Dashboard: allow for easy copying of Sitemap URLs from within the dashboard.
+- Infinite Scroll: add support for running inline scripts.
+- Performance: improve autoloading of Jetpack options.
+- Twitter Cards: use additional post-specific media for Twitter card tags.
+- Synchronization: new experimental feature aiming to minimize the impact of Sync on servers, by having Synchronization actions processed by WordPress.com asynchronously.
+- WordPress.com Toolbar: remove retired "Recommendations" link.
+- WordPress.com Block Editor: offer an option to "Switch to Classic Editor".
+
+### Improved compatibility
+- Blocks: ensure that the Video block can still be used to upload videos with the latest version of the Gutenberg plugin.
+- Connection tools: ensure better compatibility with other plugins that may rely on a Jetpack connection.
+- Contact Form: improve compatibility with the Akismet service.
+- Google Analytics: ensure compatibility with the AMP plugin.
+- Shortcodes & Embeds: ensure that the slideshow and TED shortcodes are compatible with the AMP plugin.
+- SSO: allow third-party plugins to hook into Jetpack's Secure Sign On login form.
+- Widgets: ensure that the Cookies & Consent widget is compatible with the AMP plugin.
+- WordPress.com REST API: improve compatibility with the block editor.
+
+### Bug fixes
+- Blocks: avoid layout issues with the OpenTable block's button.
+- Blocks: fix SVG attributes naming.
+- Blocks: fix infinite scroll compatibility.
+- Blocks: improve the display of currencies in Recurring Payments block.
+- Blocks: ensure Podcast Player icons are always visible, even on sites where WordPress lives in a subdirectory.
+- Dashboard: avoid broken profile image in the Jetpack Dashboard.
+- Embeds: stop using deprecated WordPress option.
+- Embeds: ensure that all valid Spotify embeds are being rendered.
+- Infinite Scroll: fix issues with sites that may customize post queries.
+- Related posts: avoid making requests for Related posts in embedded posts.
+- Search: fix issues with the Instant Search layout when the number of posts per page is set to more than 20.
+- Site Accelerator: avoid breaking links when linking to Wikimedia images.
+- Site Health Tools: correct issue that prevented the WordPress Site Health area from completing all checks.
+- Synchronization: ensure data is properly handled when customizing the Sync experience.
+- Theme Tools: add correct schema.org value for Jetpack Breadcrumbs.
+
+## [8.5] - 2020-05-05
+### Major Enhancements
+- Podcast Player: you can now embed and play recent podcast episodes in any post or page.
+
+### Enhancements
+- Comments: update how comment types are stored to be fully compatible with upcoming WordPress Core changes.
+- OpenTable Block: add a warning notice when their selected combination of style and align options may cause display issues.
+- Publicize: allow site owners to set a filter to enable embedding media directly into Twitter embeds.
+- Revue Block: add new customization options.
+- Search: add new option to configure the Instant Search overlay.
+- Sync: improve performance of the synchronization process on sites with plugins generating an important amount of posts.
+
+### Improved compatibility
+- Ad Block: ensure full compatibility of the feature with the AMP plugin.
+- Carousel: ensure full compatibility of the feature with the AMP plugin.
+- Embeds: ensure that all recipes, as well as Google Maps embeds and Scribd embeds, can be viewed with no errors in AMP views.
+- General: when using a beta version of Jetpack via the Jetpack Beta Plugin, allow Multisite connections to be managed in Network Admin.
+- Shortcodes: improve behavior of the Archives shortcode in AMP views.
+- Widgets: ensure that the Twitter Timeline and Internet Defense League widgets are compatible with the AMP plugin.
+
+### Bug fixes
+- Dashboard: fix layout issue when using the monthly / yearly toggle in the Jetpack dashboard.
+- Contact Form: avoid making unnecessary requests to the Akismet API.
+- Crowdsignal: fix survey embeds when posts are loaded via Infinite Scroll.
+- Embeds: provide helpful feedback when inline PDFs cannot be displayed in mobile browsers.
+- General: fix comment notification overrides that direct moderation links to the WordPress.com interface.
+- General: improve deprecated hook notices to handle anonymous functions.
+- Site Health Tools: reduce false positives in Jetpack connection tests.
+- Slideshow Block: avoid layout issues when a block is added to a column block.
+- Subscriptions Block: fix layout issue in email input box.
+- Sync: improve performance of the synchronization process when processing a large amount of Akismet feedback.
+
+## 8.4.2 - 2020-04-14
+### Bug Fixes
+- General: avoid conflicts with other plugins interacting with the AMP plugin and the admin bar.
+- Infinite Scroll: avoid breaking functionality on sites without any footer.
+- Infinite Scroll: avoid any conflict that may cause some posts to be missing from Infinite Scroll load.
+- Site Health Tools: improve messaging to make translations easier.
+- Contact Info Widget: avoid the display of notices in the widget settings when an API key is set via a filter.
+- Top Posts Widget: provide default for newly added parameter to avoid errors when using third-party plugins interacting with stats.
+
+## 8.4.1 - 2020-04-07
+### Bug Fixes
+- Secure Sign On: fix conflict that would block one from logging in to their site via the Secure Sign On option.
+
+## [8.4] - 2020-04-07
+### Major Enhancements
+- Search: our new Instant search experience will allow your visitors to get search results as soon as they start typing.
+
+### Enhancements
+- Autoloader: improve performance when loading a large number of files.
+- Blocks: improve discoverability of multiple blocks by reviewing keywords used in the block search.
+- Blocks: improve the display of error notices in Jetpack's embed blocks.
+- Blocks: better differentiate paid blocks from free ones.
+- Blocks: improve layout of block style previews.
+- Calendly block: display an error when the embed URL is not found.
+- Comment Likes: improve performance by removing dependency on Noticons.
+- Contact Info Widget: improve the display of Map API key notices.
+- Custom CSS: add support for more CSS 3.0 properties: mask , scroll, and object-fit.
+- Dashboard notices: allow the use of different Jetpack logos.
+- Embeds: enable inline PDF previews.
+- Eventbrite Block: offer additional alignment options.
+- Facebook Embeds and Facebook Page Plugin Widget: improve performance and compatibility with caching plugins.
+- Facebook Page Plugin Widget: add new layout options (Cover Photo and Call To Action).
+- Gravatar Hovercards: avoid loading Gravatar assets when not needed on the page.
+- Gravatar Hovercards: improve performance of the feature by avoiding the use of jQuery.
+- Infinite Scroll: improve performance of the feature by avoiding the use of jQuery.
+- Jetpack Videos: improve performance of Video queries with better caching.
+- Lazy Images: improve performance of the feature by avoiding the use of jQuery.
+- Likes: improve performance when loading resources used by the Likes feature on the front-end of your site.
+- Map Block: slightly decrease Zoom on maps with multiple points.
+- Map Block: improve the look of the map style picker.
+- Protect: improve detection of IP on servers using custom IP Headers.
+- Revue Block: update the layout of the default placeholder appearing when you first insert the block.
+- Site Health: add new card informing you of your site's synchronization status with WordPress.com.
+- Social Menus: add Ravelry support.
+- Widgets: add Ravelry support to Social Icons widget.
+- Widgets: improve performance of the Search and Milestone widgets.
+- WooCommerce Analytics: add additional information to events (plugin version, information about blocks and shortcodes).
+- WordAds Block: update "hide on mobile" toggle layout.
+- WordAds: update ad loader support for Google Chrome.
+- WordAds: improve performance of the display of all ads.
+- WordPress.com Toolbar: log user out of WordPress.com when attempting to log out from the site.
+
+### Improved compatibility
+- Blocks: ensure that all blocks are displayed nicely, even when using the latest version of the Gutenberg plugin.
+- Blocks on International sites: ensure that blocks can be translated when using Jetpack's Site Accelerator feature.
+- Comment Likes / AMP Plugin: avoid loading Likes on AMP views.
+- General: Jetpack now requires WordPress 5.3 and newer.
+- Multisite Networks: better detect the main site of a network when synchronizing data with WordPress.com.
+- Recurring Payments Block: implement AMP view for full compatibility with the AMP plugin.
+
+### Bug fixes
+- Connection: ensure that the "Disconnect" button is easily accessible on mobile.
+- Connection: fix connection issues for sites with a plan in a "pending" state.
+- Connection: improve connection flow when starting to connect your site from the WordPress.com dashboard.
+- Dashboard: clarify wording and display of the Backup & Scan cards.
+- Dashboard: fix layout issues within the Stats Widget in the dashboard.
+- Form Block: fix button colors not saving correctly.
+- Google Calendar Block: ensure calendars are properly displayed regardless of the width option picked in block styles.
+- Publicize Block: update wording in custom message field to clarify how the feature works.
+- Pinterest Block: check for valid Pinterest URLs when embedding them into a new block.
+- OpenTable Block: fix layout issue when using Wide and Full-width sizes.
+- OpenTable Block: fix PHP warning occuring when a block is created but not configured.
+- Recurring Payments Block: ensure that the minimum payment option respects the chosen currency for the button.
+- Shortcodes: Fix Crowdsignal poll embeds when using the P2 theme.
+- Simple Payments Block: avoid issues when pasting email addresses into the email field.
+- Site Logo: avoid PHP notices in the Customizer, when no logo is set yet.
+- Widgets: fix conflicts between some themes and the live countdown feature in the Milestone Widget.
+- Widgets: avoid display issues in the Top Posts Widget, when displaying posts from Custom Post Types.
+
+## [8.3] - 2020-03-03
+### Major Enhancements
+- Google Calendar Block: a simple way to embed Google Calendars into your posts.
+- Revue Block: allow your readers to subscribe to your Revue newsletter right from your site.
+
+### Enhancements
+- Dashboard widget: clarify wording in Anti-spam and Protect sections.
+- Dashboard notices: allow permanent notices.
+- Dashboard notices: add option to provide action button for a notice.
+- Map block: add the ability to set the size of the map.
+- Map block: add a zoom control to the block sidebar.
+- Map block: add a fullscreen option.
+- Map block: add an option for toggling zoom to scroll behaviour in the published post.
+- Mobile Theme: sunset feature. We originally created the mobile theme feature as a fall-back when the regular theme did not include a mobile view. Most themes include a mobile view by default now, so the feature is no longer necessary.
+- OpenTable block: offer more embedding options.
+- Search: improvements to layout options when using the Search widget.
+- Security Scanning tool: improve message about threats found in dashboard.
+- Sharing: improve Open Graph Meta Tags on search result pages.
+- Shortcodes: improve accessibility of navigation buttons for the Slideshow shortcode.
+- Site Health Tests: improve ability to add additional tests.
+- Site Health Tests: Update Connection test with detailed descriptions and actions to resolve failing tests.
+- Synchronization: increase reliability of sync by not sending wp-rest-api-log posts.
+- Synchronization: increase reliability when synchronizing term IDs.
+- Tiled Gallery block: add a Rounded Corners option.
+- Tiled Gallery block: add an option to easily rearrange images within a gallery.
+- Cookies & Consents Banner widget: improve performance by removing reliance on jQuery.
+- Twitter widget: remove deprecated link color parameter.
+
+### Improved compatibility
+- Autoloader: avoid conflicts when other plugins rely on the Autoloader to load Jetpack packages.
+- Beautiful Math: avoid layout issues with inline images when using the Twenty Twenty theme.
+- Blocks: improve compatibility with theme colors for block buttons.
+- Blocks: improve the layout of the blocks' placeholders when using the Gutenberg plugin.
+- Blocks: allow defining a minimum WordPress version or minimum Gutenberg plugin version when registering a block.
+- Lazy Images: add option to skip images with the `data-skip-lazy` attribute.
+- SSO: Add error argument for compatibility with a WordPress 5.4 hook change.
+
+### Bug fixes
+- Blocks: fix layout issues with previews in block sidebar.
+- Blocks: fix layout issues when using a custom CSS class for a block using the option in the block sidebar.
+- Calendly block: fix overlay to render properly in the editor.
+- Dashboard: remove Backups information from the Jetpack dashboard when on a Multisite network. Those do not support the Backup feature at this point.
+- Map block: only show the Add Marker UI if there are no markers.
+- Map block: prevent an unselected block from accidentally capturing scrolling.
+- Map block: fix the styling of the map theme buttons.
+- Mobile Apps: remove the edit post link when in app.
+- OpenTable block: avoid error when inserting some specific embed codes.
+- OpenTable block: fix alignment issues when center-aligning the block.
+- Secure Sign On: do not display feature message when logging in to WordPress.com's central dashboard.
+- Stats: hide Stats smiley in post embeds.
+- WooCommerce Analytics: improve product checks to avoid errors on order pages.
+- Wufoo shortcode: Security fix return early when invalid parameters.
+
+## 8.2.3 - 2020-02-20
+
+- General: fix compatibility issues with other plugins relying on the REST API to communicate with Jetpack, or on the Jetpack registration process.
+- Multisite: resolve issue with Jetpack's loading sequence that would fatal subsites that did not have any individually activated plugins.
+
+## 8.2.1 - 2020-02-17
+### Bug fixes
+- Block Editor: avoid errors when uploading additional media to the Slideshow, Tiled Gallery, and Video blocks.
+- Synchronization: address issues that would cause delayed synchronization of your posts to WordPress.com.
+
+## [8.2] - 2020-02-11
+### Major Enhancements
+- Calendly Block: a useful tool for all coaches, consultants, therapists… Add the block to a post or page and anyone can then book appointments, meetings, and classes right from your website.
+- EventBrite Block: allow your visitors to register to events right from your site with this new block.
+- OpenTable Block: restaurant owners, you can now add a reservation form to your site to make it easy for anyone to book a table online, via your site.
+
+### Enhancements
+- Contact Form: add IP and Feedback date to data that can be exported via the CSV tool.
+- Dashboard: display a notice when a site uses conflicting plans.
+- Map Block: improve the calculation and persistence of maps' center points.
+- Map Block: improve the generation of an access token on WordPress.com sites.
+- Map Block: update Mapbox GL library to opt into map load based billing.
+- Shortcodes: add new Vimeo shortcode format.
+- Subscriptions: display a clear error message when you try to subscribe to a site where you've already subscribed but did not validate your subscription.
+- Subscriptions: display a clear message when an email having many pending confirmations tries to subscribe to a site.
+- Synchronization: improve performance of data synchronization with WordPress.com.
+
+### Improved compatibility
+- Connnection Flow: ongoing work to improve the reliability of the connection between your site and WordPress.com.
+- Connection Flow: improve detection of hosting environments for better communication with WordPress.com.
+- General: avoid any login issues when using other plugins that may interact with cookies on your site.
+- Gutenberg: avoid any layout issues that may appear in the block editor when using the latest version of the Gutenberg plugin.
+- Related Posts: ensure that any filters customizing the display of Related Posts also apply to posts displayed with the AMP plugin.
+- Sharing: do not output Jetpack's Open Graph Meta Tags if the Complete Open Graph plugin is present on your site.
+
+### Bug fixes
+- Blocks / Dashboard: ensure that blocks as well as Jetpack's dashboard can be used even in older browsers such as Internet Explorer 11.
+- Contact Info Block: ensure that Google's Structured Data tool can recognize phone numbers added to the block.
+- Copy Post: ensure correct sharing and like settings are copied when posts are duplicated.
+- Subscriptions: maintain email subscription settings when deactivating and reactivating the feature.
+- WordPress.com REST API: avoid PHP notices when a media file is edited via the API.
+- WordPress.com REST API: ensure that image URLs are currently set when uploading an image multiple times.
+
+## [8.1.1] - 2020-01-23
+### Bug fixes
+- Dashboard: ensure that connection issues with WordPress.com are displayed in the Jetpack dashboard.
+- Block Editor: ensure that the Jetpack block sidebar icon is properly displayed, even with the latest version of the Gutenberg plugin.
+- WordPress.com Block Editor: fix compatibility issues with Chrome's upcoming cross-site cookie changes.
+
+## [8.1] - 2020-01-14
+### Enhancements
+- Dashboard: preload connection flow script to improve performance.
+- Dashboard: improvements to backup interface.
+- Mobile Theme: allow one to temporary disable Jetpack's Mobile Theme for testing.
+- Mobile Theme: disable settings when feature is inactive.
+- Site Accelerator: disable a helper library by default and allow themes to enable it when required.
+- Subscriptions: add a wp-admin setting to alert the admin when someone follows the blog.
+- WordPress.com REST API: add flag to determine site eligibility for Full Site Editing.
+- WordPress.com synchronization: improve the reliability of the synchronization events triggered to keep your site up to date with WordPress.com.
+- WordPress.com Toolbar: update the link directing to the WordPress.com Reader.
+- WordPress.com Toolbar: add "My Home" link to the toolbar.
+
+### Improved compatibility
+- General: improvements to Coding Standards for plugin compatibility files.
+- Notifications: avoid conflicts with Twenty Twenty's instrinsic video resizes.
+- PHP 7.4: fix PHP warnings that may appear on sites running PHP 7.4.
+- Sharing: avoid errors when using the Thrive Architect plugin.
+- Tiled Galleries: fix layout when using a gallery inside a Classic block with the Twenty Twenty theme.
+- Twenty Twenty: improve the display of the Authors and Flickr widget.
+- Twenty Twenty: add Content Options to the Customizer.
+- Twenty Twenty: ensure that Infinite Scroll does not suppress the display of footer widgets.
+- Videos: automatically convert old Flash Jetpack Video embeds so they can use the new player.
+- WooCommerce Services: avoid issues when installing plugin from notification message.
+
+### Bug fixes
+- CLI: prevent a PHP notice when running some Jetpack CLI commands.
+- Map Block: fix layout issue when selecting a marker in a map and then scrolling down.
+- Map Block: avoid errors when adding more than 2 points on a map.
+- REST API: correctly validate on/off values for booleans.
+- Star Rating Block: translate block title.
+- Widget Visibility: ensure that the visibility options always appear on old Widgets Options screen.
+- WordAds: ensure that the ads.txt file created by the feature returns a correct HTTP response code.
+- WordPress.com Block Editor: exclude WordPress.com features from Jetpack sites.
+
+## [8.0] - 2019-12-03
+### Major enhancements
+- Block Editor: new Pinterest block allowing you to easily embed boards, profiles, and pins.
+- Block Editor: new Ratings block allowing you to add star ratings any post or page.
+- Mailchimp block: you can now create forms for a subset (group) of your Mailchimp list, and add a field to track which form the signups are coming from.
+
+### Enhancements
+- Blocks: start using the @wordpress/block-editor package introduced in WordPress 5.2.
+- Contact Form: make the Form block reusable on a single post / page.
+- Dashboard: add support for Jetpack Backup display.
+- Image CDN: expand number of images using the new subdomain determination function.
+- Recurring Payments block: improve display of buttons inside the block in the editor.
+- Shortcodes: add new customization options and improve Schema.org markup of the Recipe shortcode.
+- Shortcodes: add AMP views for 5 shortcodes: `vimeo`, `instagram`, `dailymotion`, `tweet`, and `soundcloud`.
+- Support Tools: improve the reliability of the tools on slower sites.
+
+### Improved compatibility
+- AMP: improve display of the Map block on AMP views.
+- General: As WordPress 5.3 is now available, Jetpack now requires WordPress 5.2.
+- Shortcodes: ensure Vimeo videos can be displayed properly when using the AMP plugin.
+
+### Bug fixes
+- Connection: fix communication between Jetpack sites and WordPress.com for some sites hosted on non-standard ports.
+- Connection management: fix issue that prevented the Connection transfer banner from appearing in some situations.
+- Feature Hints: disable when plugins cannot be installed on site.
+- Image CDN: avoid blurry images when using Jetpack's Image CDN alongside other image-focussed blocks.
+- SEO Tools: do not display any HTML tags in title meta tags.
+- Sharing: improve accessibility of the sharing buttons by updating the buttons' color.
+- Sync: avoid conflicts when two processes are synchronized to WordPress.com at the same time.
+- WordPress.com Block Editor: ensure that the Justify button works well on any paragraph using that button.
+
+## [7.9.1] - 2019-11-19
+### Bug fixes
+- Security: fix vulnerability in the way Jetpack processes embed codes.
+- Verification Tools: avoid PHP warnings when using plugins to modify the WordPress admin menu.
+- Widgets: ensure opening hours can be displayed properly in the Contact Info Widget.
+
+### Improved compatibility
+- Twenty Twenty: ensure that Related Posts and Jetpack Blocks are displayed nicely in the new default theme.
+
+## [7.9] - 2019-11-05
+### Major enhancements
+- Block Editor: allow authors to upload videos to our Jetpack Videos service from the Video Block.
+- Block Editor: add new post-submission settings to the Form block.
+- Twenty Twenty: Ensure full compatibility with the upcoming default theme.
+
+### Enhancements
+- Admin Page: update icons for security settings.
+- Backup: support for Jetpack Backup functionality with simpler configuration.
+- Block Editor: provide block previews for Jetpack blocks.
+- Block Editor: add image size option to the Slideshow block.
+- Block Editor: improve the display of opening hours when using the Business Hours block.
+- CLI: no longer return exit code 1 if trying to disconnect a site that's already disconnected.
+- Connection flow: update connect buttons on main dashboard page and plugins page to use the new connection flow.
+- Connection flow: add plan billing period toggle.
+- Contact Form: synchronize form data with WordPress.com when submitting a form via the Form block.
+- Dashboard: update styles for visual parity with the WordPress.com dashboard.
+- Dashboard: improve performance of the Jetpack dashboard when the plugin is not connected to WordPress.com yet.
+- Dashboard: add new plans' information to Plans pages.
+- Dashboard: update design to better integrate with the updated design of the WordPress dashboard in WordPress 5.3.
+- Dashboard: improve experience for site owners looking to disconnect their site from WordPress.com.
+- Debug: provide additional information in Tools > Site Health when a site's connection to WordPress.com is broken.
+- Performance: modernize various parts of the code to use PHP 5.6+ functionality.
+- Progressive Web Apps: sunset feature. If you wish to continue to use that feature on your site, we recommend installing another plugin that offers the functionality you need.
+- Related Posts: remove nofollow attribute from links.
+- Related Posts: add Posts to the REST API response for all post types that support them.
+- Search: add new filter allowing one to adjuct Jetpack Search's ES query languages.
+- Search: continued work on upcoming Instant Search features.
+- Shortcodes: add support for tab sizing to Gist shortcodes and embeds.
+- Social Networks: update Facebook logo to match new color.
+- Sync: improve reliability of the information synchronized back to your site when connecting to WordPress.com.
+- Tiled Galleries: ensure that color profile information is retained for all images in Tiled Galleries.
+- Widgets: add aria-current attribute to links when on same page.
+- WordAds: improve speed & resource use of Ads' loading scripts.
+
+### Improved compatibility
+- AMP: ensure that one can use the Slideshow and the MailChimp blocks when using the AMP plugin.
+- AMP: support the new Dev mode for Notifications and Stats features.
+- Admin Page: improve compatibility with themes and plugins that insert CSS in the dashboard.
+- Blocks: ensure that all blocks display well in the editor when using WordPress 5.3.
+- Carousel: ensure that the feature works with the new gallery markup introduced in WordPress 5.3.
+- Dashboard Notices: ensure that all notices redirect to the right page, including on WooCommerce dashboard pages.
+- General: use new functionality available in WordPress 5.3.
+- PHP: resolve deprecation warnings in anticipation of PHP 7.4.
+- Related Posts: avoid conflicts with other plugins adding elements below the post content, especially when the AMP plugin is active on the site.
+- SSO: ensure that the Secure Sign In Form is displayed properly when using WordPress 5.3.
+- Widgets: update deprecated option in the Facebook Page Plugin widget.
+- WordPress.com REST API: ensure compatibility with WordPress 5.3.
+
+### Bug fixes
+- Admin Page: remove Jetpack dashboard link for registered users (non admins) when the site is not connected to WordPress.com.
+- Admin Page: translate empty Stats chart's message.
+- Admin Page: change default settings tab depending on your role.
+- Admin Page: do not display Composing header for editors.
+- Block Editor: ensure that the Ad block is compatible with dark themes.
+- Contact Form: revise the email validation function to include length limit.
+- Debug: reduce instances when an inconclusive response would result in an error.
+- Geo-Location: fix spacing for RSS geo-location namespaces.
+- Image CDN: remove wp-dom-ready dependency to improve performance on the frontend.
+- Search: add hooks for when Search falls back to using the local database.
+- Site Logo: ensure that the right stylesheet is loaded depending on your site's language.
+- Site Verification Tools: ensure that you can connect your site to Google Search Console even when Publicize is disabled.
+- Sync: prevent a PHP Notice in some cases where a post isn't actually a post.
+- Widgets: ensure that the Google Maps API key in the Contact Info widget can be set to only work on your domain.
+- Widgets: fix timeout issues that may sometimes occur in the GoodReads widget when user has added lots of books to their account.
+- WordPress.com REST API: better site preview support for sites using WordPress in a subdirectory.
+
+## [7.8] - 2019-10-01
+### Enhancements
+- Connection flow: remove some of the text from the connection prompt.
+- Dashboard: remove custom About menu page ordering.
+- Dashboard: review and remove unnecessary queries.
+- General: remove files that were deprecated in Jetpack 7.5.
+- General: remove outdated pre-PHP 5.6 era code.
+- Image CDN: check for local file upload before processing post images.
+- Markdown Block: display in the block picker even if the classic Markdown feature is disabled.
+- Recurring Payments: add an alignment option to the button.
+- Recurring Payments: improve the display of connection notifications.
+- Tiled Galleries: the block is now available even if you've disable the "Image Accelerator" feature.
+- WordPress.com REST API: improve detection of the Full Site Editing feature.
+
+### Improved compatibility
+- AMP / Sharing: include Open Graph metadata to AMP Story posts.
+- General: avoid conflicts when using Jetpack alongside other plugins or services that rely on an Autoloader.
+
+### Bug fixes
+- Activity Log: avoid displaying events from the Action Scheduler.
+- Ads Block: avoid PHP errors when loading posts via the WordPress.com interface.
+- Blocks: ensure that all blocks are properly translated when a translation is available.
+- Dashboard: do not display Plans page to non-connected admins.
+- Post Images: look for representative images in inner blocks as well.
+- Shortcodes: add title attribute to Archive.org and Archive.org Book embeds.
+- Sync: avoid issues when using deprecated Sync functions.
+- WordPress.com dashboard styles: fix layout on Plugins > Add New Page, on mobile devices.
+
+## 7.7.2 - 2019-09-23
+### Bug fixes
+- General: fix connection issues when attempting to install and connect Jetpack from a mobile app.
+
+## 7.7.1 - 2019-09-06
+### Bug fixes
+- Connection Flow: avoid any errors linked to browser cookie policies during connection request.
+- General: additional check to avoid warnings on plugin update.
+- SSO: avoid Fatal errors happening during some log in attempts.
+- Sync: check if IXR client exists to prevent errors when updating the plugin.
+
+## [7.7] - 2019-09-03
+### Major Enhancements
+- This release brings in multiple improvements to the WordPress.com connection process, to fix issues site owners may experience when first connecting their site to WordPress.com.
+
+### Enhancements
+- Anti-spam: improve the flow to configure Akismet from Jetpack's Dashboard.
+- Blocks: add new utility to get all CSS classes for a given block.
+- Bruteforce Login Protection: improve Network Activation detection on Multisite networks.
+- Dashboard: update all illustrations to use new color scheme.
+- General: log XML-RPC communication errors between the site and WordPress.com.
+- General: use HTTPS URLs when linking to external sites when possible.
+- General: warn admins when about to delete another admin user that happens to be the main Jetpack admin on the site.
+- Sharing / Publicize: add Open Graph Meta Tags to archive pages.
+- Sitemaps: reduce sitemap cache duration when using Jetpack's Development mode.
+- Social menus: replace the outdated Medium icon with updated logo.
+- Stats: improve method used to enqueue JavaScript when the feature is active.
+- Videos: Add video settings to Jetpack's enhanced video block.
+- Widgets: improve the creation process and display of maps inside the Contact Info Widget.
+- Widgets: add more RSS feed patterns to the Social Icons Widget.
+- Widgets: add new `jetpack_widget_authors_params` filter to the Authors widget, to allow site owners to customize the list of authors.
+- WordPress.com API: add option to manage Full Site Editing.
+- WordPress.com Interface: allow language to be changed even if `WPLANG` constant is defined.
+- WooCommerce Analytics: use core WordPress function to enqueue script asynchronously.
+
+### Improved compatibility
+- Ads: make sure the Ad block generates ads that are compatible with the AMP plugin.
+- Image CDN: update the size of images used in AMP Stories when using the AMP plugin.
+- Responsive Videos: improve compatibility and avoid validation errors when using the AMP plugin.
+- WordPress.com API: avoid errors when used in combination with the Polylang plugin.
+- WordPress.com API: improve compatibility with plugins that alter the behavior of search queries.
+
+### Bug fixes
+- Bruteforce Login Protection: fix the display of the admin notice displayed on Multisite networks.
+- Contact Form: update the feedback post type capability to a valid value.
+- Dashboard: improve the layout of the Connection modal on mobile devices.
+- General: do not redirect during automatic upgrades.
+- Image CDN: support the `medium_large` image sizes.
+- Related Posts: ensure Related Posts can be displayed when using the AMP plugin and Jetpack's Sharing feature.
+- Search: authenticated search requests will now display non-public content.
+- Sitemaps: improve the display of descriptions in video sitemaps, when they include HTML content.
+- Stats: load RTL stylesheet for dashboard widget, to fix layout issues on RTL language sites.
+- WordPress.com API: fix API responses which contain malformed (non-UTF-8) data.
+- WordPress.com Toolbar: limit access to Stats and Plan menu items.
+
+## [7.6] - 2019-08-06
+### Enhancements
+- Backups: add ability to send SSH credentials.
+- Blocks: allow the insertion and preview of any Jetpack block in the editor, even when the block is only available via a Paid plan.
+- Carousel: use a pointer cursor when hovering over galleries that utilise the Carousel feature.
+- Dashboard: improve the display of the feature cards in the main Jetpack dashboard.
+- General: hide edit post link on your site when viewing it via the WordPress mobile app.
+- oEmbeds: add support for Song.link service.
+- Stats: improve performance of the Stats tracking pixel by eliminating blocking JavaScript.
+- Stats: improve Cache performance by switching from the WordPress Options API to the WordPress Transient API.
+- Support links: use the Beta support form when on a development version.
+- Sync: add a term taxonomy blacklist option, and start blacklisting taxonomies that do not need to be synchronized with WordPress.com.
+- Sync: improve reliability of the synchronization of taxonomies.
+- Videos: ensure any deprecations added in the core video block are not overwritten.
+- Widgets: allow the customization of avatar image options in the Top Posts Widget, via a filter.
+- Widgets: add option to open Flickr gallery images in a new tab.
+- WordPress.com Activity Log: avoid display issues with WooCommerce Product Reviews.
+
+### Improved compatibility
+- AMP: ensure CSS compatibility with the Sharing buttons.
+- AMP: ensure full compatibility with Jetpack's Image CDN.
+- Dashboard: fix layout issues when viewing the dashboard on WordPress.com Business sites.
+- Compatibility suite for shared libraries: fix PHP notice when running suite.
+- Contact Form: ensure the Date picker field does not cause any AMP validation errors.
+
+### Bug fixes
+- Admin Page: fix the behaviour of the Jetpack Videos button in the "My Plan" tab.
+- Admin Page: fix a typo in the Magic Links modal.
+- Connection process: bring back the ability to connect to WordPress.com via XML-RPC or REST API.
+- Custom CSS: fix Media Width label layout issue in Firefox.
+- Dashboard Notices: fix layout issues on sites using an RTL language.
+- Sync: fix home and Site URL synchronization issues on sites with custom Cron implementations.
+- WordPress.com Activity Log: add Action Scheduler to the list of blacklisted post types
+
+## [7.5.3] - 2019-07-17
+### Bug fixes
+- General: Fixes plugin activation/deactivation hooks that were accidentally disabled.
+- General: Fixes fatal errors that were possible when using pre-7.5 Jetpack internal API.
+
+## [7.5.2] - 2019-07-04
+### Bug fixes
+- General: Fixes an error when a site's connection to WordPress.com is set to "Safe Mode".
+
+## [7.5.1] - 2019-07-02
+### Bug fixes
+- General: Fixes an error when trying to delete the Jetpack plugin.
+- General: Fixes supported PHP version declaration.
+
+## [7.5] - 2019-07-02
+### Enhancements
+- Admin Page: add an option to send a magic link that will help you log in to the mobile apps in one click.
+- Admin Page: improve style and wording of many different sections of the dashboard to clarify the role of each feature.
+- Admin Page: remove feature that would offer you to activate a list of recommended features upon connecting your site to WordPress.com.
+- Backups: include updates to term relationships when backing up Post object changes.
+- Backups: synchronize ABSPATH value to help setting up SSH credentials when using Jetpack Backups.
+- Faceboook Embeds: support new video URL format.
+- Lazy Load: allow adding event handlers to images.
+- Recurring Payments Block: improve the display of the block in the editor.
+- WordAds: update link to daily earnings stats on WordPress.com.
+- WordAds: provide additional details for custom ads.txt entries in the Jetpack dashboard.
+- WordPress.com Toolbar: add colors to Recovery Mode button.
+
+### Improved compatibility
+- Admin Page: improve display of the Jetpack Dashboard in IE11.
+- Sharing: avoid displaying extra list items below the sharing buttons when using the AMP plugin.
+- Staging enviroments: add staging enviroment detection for DreamPress sites.
+
+### Bug fixes
+- Admin Page: fix display of backup details in the Jetpack dashboard.
+- Admin Page: do not disable Widget Visibility and Widgets toggles in Development mode.
+- Sitemaps: ensure links to sitemaps appear in robots.txt
+- Slideshow Block: fix CSS class name.
+- Videos: ensure that Video Poster images are always displayed properly.
+
+## [7.4.1] - 2019-06-17
+### Bug fix
+- Contact Form Block: avoid errors when trying to edit a form block, when using the Gutenberg plugin.
+
+## [7.4] - 2019-06-04
+### Enhancements
+- About Page: remove submenu and add link to page in the footer of Jetpack's dashboard.
+- Admin Page: remove Themes card on Plans tab.
+- Admin Page: consolidate the look of the different discussion settings.
+- Admin Page: add Security Checklist information.
+- Business Hours Block: improve the display of Business Hours.
+- Business Hours Block: Simplify hours format.
+- Comment Form: use HTTP 4xx status codes for comment errors.
+- Contact Form Block: improve styles for better display on mobile devices.
+- General: introduce a new Jetpack Logo package, to make it easier to share and re-use.
+- Multisite: Use modern `wp_initialize_site` hook when automatically connecting new sites.
+- Recurring Payments Block: automatically add button to the post content once you create it.
+- Recurring Payments Block: improve the display of the renewal frequency in button list.
+- Recurring Payments Block: require a paid plan to use the button.
+- Recurring Payments Block: improve the look of the payment modal on mobile devices.
+- Search: add new option for cross-site search permissions.
+- Sharing: update default sharing settings to include buttons.
+- Sitemaps: rename the `jetpack_sitemap_generate` and `jetpack_news_sitemap_generate` filters to the more accurate `jetpack_sitemap_include_in_robotstxt` and `jetpack_news_sitemap_include_in_robotstxt`.
+- Slideshow Block: depending on viewport, display prev/next arrows.
+- Slideshow Block: remove outline when focussing on the block.
+- Sync: offer posts, comments, and comment meta checksums when providing sync status.
+- Tiled Galleries: add `srcset` in the editor for an improved editing experience.
+- WordPress.com Block Editor: allow managing reusable blocks in the WordPress.com interface.
+- WordPress.com Toolbar: display hamburger icon in toolbar when in the block editor.
+- WordPress.com Toolbar: display a link to exit recovery mode when it is active on the site.
+
+### Improved compatibility
+- Display Posts Widget: remove overly opinionated CSS.
+- General: Jetpack now requires PHP 5.3.2, and will display a notice if your site uses an older version of PHP.
+- General: display a notice and log an error if your version of WordPress is not supported by Jetpack.
+- General: Update `Jetpack::get_content_width()` to ensure that only numeric values are used.
+- GIF Block: improve compatibility with the AMP plugin.
+- Shortcodes: bring more of our shortcodes to meet current WordPress Coding Standards to help us maintain these features in the future.
+- Site Health: improve Jetpack errors' messaging in WordPress' new Site Health tools.
+
+### Bug fixes
+- Admin Page: make sure the Jetpack Dashboard is displayed properly in IE11.
+- Admin Page: do not show Plugin Autoupdates card on admin searches.
+- Carousel: avoid scrolling back to the top of the page when you close the Carousel view.
+- Connect Flow: sanitize from parameter when building connection URL.
+- Mobile Themes: fix "View Full Site" and "View Mobile Site" links when WordPress lives in a subdirectory.
+- Recurring Payments Block: avoid invalid subscription amounts.
+- Recurring Payments Block: allow line breaks in the payment button.
+- Related Posts: do not add markup to attachment pages by default.
+- SEO Tools: support taxonomy archive pages in page titles.
+- Sharing: make sure the Whatsapp button works well in all browsers, including Firefox on desktop.
+- Shortcodes: update embed type detection for Medium Collections.
+- Social Icons SVG: switch to the presentation role for better accessibility.
+- Subscriptions: display checkboxes above the comment submit button.
+- Sync: add new WP Cli commands to help in monitoring and updating sync settings.
+- Tracks: limit the length of the strings saved for feature searches.
+- Unit Tests: add support for testing using VVV 3.0.
+- Verification Tools: make sure the feature can be disabled by override.
+- WooCommerce Analytics: remove duplicate self-executing anonymous function.
+- WordPress.com Interface: make sure navigation menu items match the one available in the WordPress.com interface.
+- WordPress.com Toolbar: restore the previous layout.
+- WordPress.com Toolbar: ensure you are properly logged out of your WordPress.com account when you sign out of your site using the toolbar.
+- WP Cli: ensure that WP Cli commands added by Jetpack include translator comments when necessary, to help with translations.
+
+## [7.3.1] - 2019-05-14
+### Bug fixes
+- Admin Experience: Correct underline location under a dollar sign.
+- Deprecated Hooks: Do not offer a replacement for jetpack_json_manage_api_enabled since there isn't an equal replacement.
+- Debugger: Clarify labels in the Site Health Info section.
+- Likes and Sharing: Remove duplicate control in the block editor for Likes/Sharing. We added a native block editor plugin, but left the old fallback.
+- WordPress.com Editor: Redirect to a login page when logging out from the block editor on WordPress.com.
+- WordPress.com Toolbar: Add menu icon for smaller screen widths to restore wp-admin navigation menu.
+
+## [7.3] - 2019-05-07
+### Major Enhancements
+- We streamlined the default features of Jetpack to make the "out of the box" experience better.
+- WordPress 5.2 will add a new Site Health section to your dashboard. Jetpack already integrates with it, letting you know that your Jetpack features are working!
+
+### Enhancements
+- Admin Experience: Improve our "just in time messages" and "Recommended Features" for new sites setting up Jetpack for the first time.
+- Admin Experience: Add an "About Jetpack" page to let folks know more about Automattic, the company behind WordPress.com and Jetpack.
+- Admin Experience: Add a link to the full list of Jetpack features in the footer of Jetpack dashboard pages.
+- Backups: Add SSH CLI command for hosting integration support.
+- Block Editor: Compose posts with the Block Editor posts via WordPress.com for their Jetpack sites!
+- Block Editor: Transform core images to Tiled Galleries or Slideshow blocks and back!
+- Block Editor: Provide an option to disable particular extensions.
+- Contact Form: Add a "grunion_after_message_sent" hook for after a form submission is e-mailed. Thanks Tim Nolte for contributing to Jetpack!
+- Contact Form: Do not prefill for administrators on their own sites.
+- Grammar and Spelling: Remove from Jetpack. We've chekced the spelling alot over the years, but now time to retire.
+- Membership Block: Add a new block behind the JETPACK_BETA_BLOCKS constant. Stay tuned!
+- Photon: Remove jQuery dependency for photon.js. Same Image CDN awesomeness with less overhead.
+- Portfolios: Remove the "Portfolio Items" description that would display on some themes.
+- Sharing: Add a "sharing_ajax_action" to to allow other plugins and scripts to render sharing buttons. Thanks Darren Cooney!
+- Social Icons: Add Stack Overflow support. Welcome to the Jetpack contributor ranks Muhammad Osama Arshad!
+- Sync: Report details on what is queued up to sync on the status endpoint.
+- Sync: Improve importer detection so we can better handle cases of imported content.
+- Sync: Add an option to disable sync for an entire network.
+- Sync: Adds new WP-CLI Jetpack Sync commands: settings, enable, disable, reset.
+- Testimonials: Sort by menu order to give site owners more flexibility for display. Thanks Felipe Elia!
+- Tiled Galleries: Add improved layout for when images are in the process of uploading.
+- Tiled Galleries: Add responsive imaging (srcset) support to the Tiled Gallery block.
+- WordAds: Add location id (e.g. under the post) to the ad calls.
+- WordPress.com API: Add behind the scene improvements to support the WordPress.com site management experience.
+- WordPress.com API: Add the public property to the Post Types endpoint response.
+- WordPress.com Menu Bar: Redesign to direct navigation items to WordPress.com instead of duplicating experiences.
+
+### Improved compatibility
+- Blocks: Use the Editor's "BlockIcon" for native placeholder icons instead of custom CSS.
+- Blocks: Drop i18n wrapper, use @wordpress/i18n directly. This means it will be easier and faster to provide translated bits of text.
+- Blocks: Move block development to the Jetpack repo. You shouldn't see any changes, but this helps us make Jetpack Blocks better faster.
+- Block Editor: Improve the experience of using the Block Editor via the WordPress.com dashboard.
+- Browser Compatibility: Remove legacy code for Internet Explorer 10.
+- Coding Standards: Update our code to match the latest WordPress coding standards in various places.
+- Likes and Sharing: Add Likes and Sharing settings as a Block Editor extension.
+- Related Posts: Improve the internationalization of the "in X category" text.
+- Simple Payments: Easily convert old shortcode-style Simple Payment buttons to a block.
+
+### Bug fixes
+- Admin Dashboard: Improve headings when searching for Jetpack features.
+- Admin Dashboard: Remove legacy views no longer used in Jetpack.
+- Blocks: Fix some design oddities in Form and Contact Info blocks.
+- Carousel: Allow any title to be displayed. We used to try to be smart about default file names, but that caused some problems.
+- Development Mode: Display fewer sections of the Admin Dashboard. Some simply don't apply in Development Mode.
+- Google Plus: Remove from Social Icons and Sharing since the service has retired.
+- Internationalization: Translate various sections missed, such as "just in time messages" and block search keywords.
+- Manage: Remove Manage as an independent module. These features have been fully integrated for a few versions now.
+- Multisite: Restore ability to connect subsites via the Network Admin.
+- Open Graph Tags: Prevent a PHP notice on some author pages.
+- Sharing: Improve accessibility of sharing buttons by increasing contrast ratio. Props https://titan.as
+- Sharing: Fix the alignment of the official buttons for LinkedIn and Pinterest.
+- Shortcodes: Retire the Google Video, Jetpack Subscribe, and Digg shortcodes.
+- Slideshow: Fix a JavaScript error that occurs when block is first added.
+- Slideshow: Add slideshow images to Open Graph tags when using the Slideshow block.
+- Social Icons: Remove Google+, uses the generic Google now.
+- Subscriptions: Correct conflicts that were possible with the checkboxes after a comment submission form.
+- Theme Tools: Ensure Featured Content tag is retained on a post after saving. Thanks Anis Ladram, you're a Jetpack contributor now!
+- Uninstalling Jetpack: Prevent notice about JETPACK__PLUGIN_DIR already being defined when programmatically uninstalling Jetpack. (But why would you uninstall?)
+- Widgets: Remove the Cookies & Consents Banner (not just hide it) after consenting. Thanks Tony Tettinger!
+
+## [7.2.1] - 2019-04-04
+
+- Feature Hints: display suggestions only for features available under the site's current plan.
+- Feature Hints: improve visual display to make more distinct from search results.
+- Feature Hints: disable hints once administrators have dismissed three hints.
+- Slideshow Block: resolve an issue that broke navigating between images.
+
+## [7.2] - 2019-04-02
+### Major Enhancements
+- Adds a Repeat Visitor block that controls block visibility based on how often a visitor has viewed the page.
+- New option to disable Ads blocks for visitors on mobile devices.
+
+### Enhancements
+- Admin Dashboard: improve text and design to make your administration experience all the better.
+- Jumpstart: streamline what features are suggested to be activated when setting up Jetpack for the first time.
+- Password Checker: adds a password checker class that will help Jetpack let you know if you're using a weak password. More about this coming in a future release!
+- Plans: refactor how Jetpack Plans are coded within Jetpack to improve performance and help prevent any future bugs.
+- Post Images: provide the image itself when requesting an attachment's post image.
+- REST API: Enable Likes and Sharing meta field for all post types.
+- Related Posts: improve HTML markup for related posts, with emphasis on accessibility.
+- Search: add an easy way to see the raw Jetpack Search query results in the search page's source code.
+- Shortcodes: allow links in Quiz shortcode explanations.
+- Widgets: improve the text for the Blog Stats widget when stats data can not be retrieved from WordPress.com.
+
+### Improved compatibility
+- General: require WordPress 5.0! To celebrate, we cleaned out some compatibility code that supported older versions. We know how to party.
+- General: update various parts of Jetpack to fully align with WordPress coding standards to make developing Jetpack easier!
+- Connection: notify site owners when a plugin or theme is double-encoding URL redirects.
+- Shortcodes: update the Ustream shortcode to use the HTML5 player for a better experience on all browsers.
+- Shortcodes: add AMP support for Crowdsignal polls and shortcodes.
+- Sitemaps: add thumbnails to video sitemaps to improve compatibility with Google Search Console. Props Adam Heckler!
+- Sync: improve performance when using the VIP Legacy Redirect plugin.
+- Twenty Nineteen Compatibility: prevent sharing buttons overlapping with the Like button. Props Torres!
+- VideoPress: update right-to-left language CSS to remove extra styles only used on browsers no longer supported.
+- Widgets: improve rendering of Contact Info widget map when using the AMP plugin.
+
+### Bug fixes
+- Admin Dashboard: fix an error that you'd see in the console when changing your Carousel settings.
+- Blocks: fix an issue where sometimes we would attempt to register a particular block twice. I'm looking at you, Related Posts.
+- Blocks: display all Business Hours details, even if they're the default set.
+- Blocks: fix an error that occurred when loading some translations in the Block Editor.
+- Blocks: resolve a conflict between the Ads block and infinite scroll that would cause new posts to sometimes not load.
+- General: ensure the proper Jetpack plan is reflected throughout Jetpack and the administrative dashboard.
+- Plugin Search: display Akismet and VaultPress plugin cards when WordPress.org suggests them.
+- Publicize: remove unused assets, like images and JavaScript that aren't needed anymore.
+- Related Posts: restore use of the jetpack_relatedposts_filter_options filter.
+- Security: Improvements to the Likes feature and the Slideshow block.
+- Sharing: update WhatsApp to be more consistent with the other sharing buttons.
+- Shortcodes: remove Lytro service, which closed in March.
+- Stats: properly handle an error from the REST API that sometimes caused issues with the Stats Dashboard.
+- Widgets: display all characters in an address from Contact Info correctly when sometimes we encoded those that we'd expect in an URL.
+- Widgets: improve the performance of the Contact Info widget by eliminating unused JavaScript.
+
+## [7.1.1] - 2019-03-06
+### Bug fixes
+- General: avoid conflicting with other plugins when suggesting Jetpack features on the Plugins screen.
+- Publicize: avoid errors when the feature is not active on a site.
+- Widgets: improve performance of the Top Posts and the Blog Stats widgets on high-traffic sites.
+- Subscriptions: fix an issue that prevented displaying subscribers count in the subscription forms.
+- Tiled Galleries / Slideshows: ensure they can be displayed properly in Internet Explorer 11.
+
+## [7.1] - 2019-03-05
+### Major Enhancements
+- Block Editor: this release introduces 6 new blocks:
+ - the Ads block allows you to insert different ads from [our WordAds program](https://jetpack.com/support/ads/) within your posts and pages.
+ - the Mailchimp block allows your readers to easily subscribe to your Mailchimp newsletter.
+ - the Video block supports VideoPress videos if you've purchased our Premium or Professional plan.
+ - the Slideshow block allows you to insert beautiful slideshows in your posts and pages.
+ - The Business Hours blocks is useful for companies who want to display their business's Opening Hours on their site.
+ - The Contact Info block is useful for any business who may want to display useful information on a post or page.
+
+### Enhancements
+- Admin Page: move Carousel settings from Performance to Writing section.
+- Ads: include search results pages under the `Archive` toggle.
+- Block Editor: improve block registration structure for better management of block availability.
+- General: remove IE8 support fallbacks.
+- General: add feature suggestions to the plugin search screen.
+- Image CDN: add new mode that disables the creation of resized images, thus saving disk space.
+- Instagram: update embed to support Instagram TV URLs.
+- Post Images detection: add support for alt text.
+- Plans: clarify upgrade prompts in the Jetpack dashboard's Plans page.
+- Publicize: remove the Google+ interface as the Social Network is now deprecated.
+- Related Posts: update block to allow for up to 6 related posts.
+- Social Menus & Icons: add Discord Support.
+- Support: add additional tests to check when Jetpack isn't working as expected and ensures all current debugging platforms use the same testing list.
+- Simple Payments: add generic currency fallback symbol.
+- Sync: further performance improvements in PHP 7+ environments.
+- Woocommerce Analytics: include product type with analytics data.
+
+### Improved compatibility
+- General: replace all .dev TLD references by .test as the .dev TLD will soon become available for registration.
+- PHP 7.3: introduce automated testing for PHP 7.3.
+- Site Accelerator: ensure compatibility with the AMP plugin.
+- Twenty Nineteen: fix Top Posts and Pages Widget image list margins.
+- WordPress 5.1 Compatibility: update usage of `wp_schedule_single_event` to match changes in WordPress.
+
+### Bug fixes
+- Copy Post: ensure the feature can be used when using non-standard post formats.
+- Infinite Scroll: fix vertical spacing for new posts loaded with Infinite Scroll.
+- Internationalization: fix minor problem affecting translations in the block editor.
+- Mobile Theme: fix PHP notices when trying to display gallery images.
+- Mobile Theme: fix redirection issues when clicking on the "Desktop version" links.
+- Photon: add paypalobjects.com to the list of banned domains, as this domain already relies on a CDN.
+- Publicize / Subscriptions: do not show message at the top of the editor when creating a private post.
+- Spelling / Grammar: fix error when spellchecking the contents of a Classic block in the block editor.
+- Top Posts: allow fetching posts from a long timeframe when using the `jetpack_top_posts_days` filter.
+- Related Posts: avoid display a dulplicated set of related posts when using the Related Posts block.
+- REST API: fix a bug causing Likes settings on a post to sometimes be flipped.
+- Security: fix an XSS vulnerability in the "My Community" widget.
+- Security: avoid bypassing Protect's Math Fallback challenge.
+- Site Stats: do not show the Jetpack logo in the Stats dashboard widget title in the Screen Options tab.
+- Theme Tools: support alternative Pinterest domain extensions in the Social Menus tool.
+- Widgets: support alternative Pinterest domain extensions in the Social Icons Widget.
+- Widgets: update the Cookies & Consents Banner to be fully accessible on mobile devices.
+
+## [7.0.1] - 2019-02-14
+### Improved compatibility
+- Publicize: update LinkedIn connections to use newer API, anticipating changes with LinkedIn's API v1 on March 1st.
+- Publicize: display a message inviting site owners to reconnect their site to their LinkedIn profile.
+- Publicize: remove section in Settings > Sharing in the dashboard.
+
+### Bug fixes
+- Tiled Galleries: avoid errors when converting a tiled gallery into a block.
+- Security: ensure json_encode()d data safely output to the page.
+- Shortlinks: do not show Jetpack Sidebar in the block editor if Shortlinks are not available.
+- Sync: avoid errors in WordPress' code editor, for sites using PHP 7 with `fastcgi_finish_request` enabled.
+
+## [7.0] - 2019-02-05
+### Major Enhancements
+- Block Editor: introduce a new Gif block to help you quickly search and add Gif images to your posts.
+- Copy Post: this new feature allows you to quickly create a new draft based on a post that's already published.
+
+### Enhancements
+- Block Editor: update the way we check for available blocks and extensions.
+- Connection flow: display a notice upon connection when the site is suspended.
+- Contact Form: add more options to customize the look of the submit button.
+- Likes / Publicize: in the Jetpack Dashboard, add explanation to clarify the role of the features.
+- REST API: add likes and sharing settings to the REST API Post response.
+- Sharing: deprecate the Google+ sharing Button.
+- Sharing: deprecate the Google+ embed shortcode.
+- Shortcodes: rely on WordPress Core to handle SlideShare slideshow embeds.
+- Shortcodes: cache the output of the Twitter shortcode.
+- Subscriptions: remove obsolete polyfill JavaScript from the Subscriptions form.
+- Subscriptions: allow more customization of the subscription form's submit button.
+- Sync: improvements to the synchronization of plugin and theme updates.
+- Sync: improve performance for sites using PHP 7, with `fastcgi_finish_request` enabled.
+- Sync: synchronize plugin and theme fatal errors reported by WordPress 5.1.
+- Widgets: deprecate the Google+ widgets.
+- WordPress.com: allow the display of plugin action links in the WordPress.com plugins' interface.
+
+### Improved compatibility
+- Lazy Images: fix a compatibility issue with themes that overwrite classes on html.
+- Contact Form: ensure contact form submissions with long words do not break the site layout, regardless of the theme.
+- Publicize: remove the option to connect your site to a Google+ account, in anticipation of the service's shutdown.
+
+### Bug fixes
+- Admin Page: avoid PHP notices when looking at non-Jetpack admin pages.
+- Carousel: fix display issue when viewing images with long captions.
+- Carousel: avoid errors when fetching comments in the Carousel modal.
+- CSS: fix the behavior of the CSS concatenation filter.
+- Multisite: fix the display of the main connection banner.
+- Protect: ensure the Math fallback is displayed when necessary.
+- Publicize: avoid Fatal Errors on sites using Development Mode.
+- Responsive videos: do not apply for videos that benefit from WordPress' own Responsive Embeds solution.
+- Shortcodes: only load Mailchimp CSS when needed.
+- Subscriptions: display subscription options below the comment form, even when you are logged in to your WordPress account.
+- WordPress.com REST API: add new endpoint to allow the creation of a WooCommerce connection via the API.
+
+## [6.9] - 2019-01-10
+### Major Enhancements
+- Block Editor: this release introduces new blocks: a Subcription form block, a Tiled Gallery block, and a Related Posts block.
+
+### Enhancements
+- Admin Page: several changes to improve navigation and connection flows for new and existing Jetpack site owners.
+- Admin Page: make the Jetpack dashboard wider on large screens for a better experience.
+- Affiliate tools: offer options for affiliate partners to manage affiliation links on their site.
+- Carousel: add support for the new Tiled Gallery block.
+- Contact Form: use the comment blacklist to filter contact form submissions.
+- Dashboard notices: automatically dismiss notices once a feature has been activated.
+- Dashboard notices: fix styling to work better with the Hello Dolly plugin.
+- Internationalization: add new locales, ensure existing ones are up to date.
+- REST API: new endpoint to expose Gutenberg block and plugin availabilty.
+- Search: add hook to get_filters() to allow the use of custom filters.
+- Shortcodes: add new Mailchimp shortcode to insert Mailchimp subscription forms anywhere in your posts and pages.
+- SSO: offer message introducing the feature to new users.
+- Stats: improve the design of the Stats dashboard widget.
+- Widgets: add filter to set DoNotTrack in Twitter Timeline widget.
+- WordPress.com REST API: add new option to set sites to private.
+
+### Improved compatibility
+- AMP: ensure that all Jetpack features are compatible with the latest version of the AMP plugin. Solves issues previously encountered with sharing buttons and stats.
+- Images: ensure that images inserted with new block editor can be used in Open Graph Meta tags, Related Posts, and Publicized posts.
+- PHP 7.3: avoid PHP warnings so the plugin can be fully compatible with the latest version of PHP.
+- Sharing: do not add Jetpack's Twitter Meta Tags when the WP To Twitter plugin is active.
+- Twenty Nineteen: additional style adjustments to make sure all Jetpack widgets look good with the theme.
+- WooCommerce: do not include product reviews in comment counts in the WordPress.com REST API.
+
+### Bug fixes
+- Admin Page: update feature limits mentioned when disconnecting Jetpack from WordPress.com
+- Block Editor: fix loading of translations in the editor when Jetpack's Site Accelerator feature is active.
+- Carousel: ensure that Carousel works well with the Gallery block in the new block editor.
+- Carousel: do not open modal when clicking on a link in a caption
+- Publicize: improve synchronization of sharing settings with WordPress.com.
+- Publicize: only display Gutenberg Publicize UI to users with the correct permissions.
+- Responsive videos: don't load if theme supports core responsive embeds.
+- Search: fix fatal error when the Search Widget is enabled while the site is in Development Mode.
+- Sharing: update Tumblr official sharing button.
+- Shortcodes: update YouTube shortcode to support more video link formats.
+- Shortlinks: add the option to view shortlinks in the block editor.
+- Simple Payments: only register block when all needed data is available.
+- Widgets: only load Social Icons widget scripts and styles when necessary.
+- WooCommerce Analytics: avoid Fatal Errors in some specific site setups.
+- WooCommerce Analytics: improve performance by avoiding unnecessary calls to the feature when it is not needed.
+
+## [6.8.1] - 2018-12-06
+### Bug fixes
+- Contact Form: security changes to improve the display of success messages after submitting a form.
+- Publicize: avoid Fatal errors when trying to create or edit posts from a Custom Post Type that supports Publicize.
+- Sync: improve synchronization of WooCommerce events.
+- WordPress.com REST API: handle WooCommerce Product reviews for a better display in apps that use the API.
+
+## [6.8] - 2018-11-27
+### Major Enhancements
+- This release introduces the first wave of Jetpack blocks built for the new block editor, available in WordPress 5.0.
+
+### Enhancements
+- General: improve ability to create and troubleshoot Jetpack connections.
+- REST API: new endpoint for testing the Jetpack connection.
+
+### Improved compatibility
+- Akismet: improve caching of all queries for Akismet status.
+- Spellcheck / Grammar: we've made sure the Jetpack feature did not create any error when using the block editor.
+- Twenty Nineteen: ensure compatibility with Jetpack's widgets.
+
+### Bug fixes
+- Asset CDN: do not try to serve assets from non-public versions.
+- Carousel: handle galleries created via the Gallery block in the new block editor.
+- Photon: make sure our image CDN is fully compatible with the block editor.
+
+## [6.7] - 2018-11-06
+### Major Enhancements
+- Site acceleration: new toggle to serve both your images and static files (like CSS and JavaScript) from our CDN.
+- Activity: update Jetpack dashboard to include links to our Activity page, where you can view a record of every change and update on your site.
+
+### Enhancements
+- Admin page: add site Activity card.
+- Blocks: provide a mechanism so editor blocks can be translated.
+- Blocks: enqueue Jetpack blocks in the block editor when blocks are available.
+- Debug tools: add information about missing XML extension in self-help tools.
+- REST API: introduce endpoint for retrieving related posts of a particular post.
+- Search: add an advanced `excess_boost` param which can be adjusted with filters to fine tune query scoring.
+- Sharing / Publicize: change the icons used in the Jetpack dashboard to clarify where the configuration links lead.
+- Secure Sign On: update wording on admin pages to avoid confusion.
+- Shortcodes: update the Polldaddy shortcode to use the new brand, Crowdsignal.
+- Sitemaps: coding standards changes.
+- Site Verification Tools: improve display of the tool's description on mobile devices.
+- Unit Tests: improve process for faster tests.
+
+### Improved compatibility
+- Themes: ensure compatibility between Jetpack features and the new WordPress default theme, Twenty Nineteen.
+- AMP: add support for GitHub's Gist shortcodes.
+- PHP 7.3: update Infinite Scroll to avoid PHP warnings when using the latest version of PHP.
+- Protect: fix output of Protect's Math challenge on login forms created by third-party plugins.
+- Plugins: add a WordPress.com themed plugins page for users managing their plugins via the WordPress.com interface.
+- Site Verification Tools: do not enable Google's Auto-verification option when a site using a maintenance / coming soon plugin.
+
+### Bug fixes
+- Blocks: update the VR block to be fully compatible with the latest version of WordPress and Gutenberg.
+- Comment Likes: only prefetch domains used by the feature.
+- CSS Concatenation: make sure all concatenated CSS is up to date.
+- Featured Content: no longer hides the "featured" tag from the WordPress.com Editor or the mobile apps.
+- Geolocation: avoid a PHP notice when setting location for a post in the WordPress.com post editor.
+- Likes: ensure that the Likes column is accessible.
+- REST API: Ensure only strings as escaped as URLs.
+- Search: avoid PHP warning with Search widget.
+- Sharing: improve accessibility of email sharing button.
+- Simple Payments / Widget Visibility: avoid potential Fatal errors on some specific server configurations when updating Jetpack.
+- Sitemaps: remove double encoding of site name in news sitemap.
+- Sitemaps: ensure homepage is only included once.
+- Sitemaps: provide richer "not found" message to site admins.
+- Sitemaps: ensure sitemap is refreshed faster after upgrading Jetpack.
+- Sitemaps: avoid protocol mismatches between the sitemaps and the site.
+- Site Verification Tools: make sure we validate meta tags when saving.
+
+## [6.6.1] - 2018-10-10
+### Bug fixes
+- Sitemaps: improve initial sitemap creation process.
+- Widgets: fix missing CSS for the Social Icons Widgets.
+
+## [6.6] - 2018-10-09
+### Major Enhancements
+- Verification Tools: enable one-click site verification and sitemap.xml registration with Google.
+
+### Enhancements
+- Admin Interface: update all Jetpack settings screens to use a similar design.
+- API: add flags to determine if Jetpack Search is enabled and supported.
+- CDN: First Beta version of the Photon CDN -- Speed up sites and increase max concurrent connections through Photon by cloud-hosting Jetpack and WordPress Core scripts, styles, and assets.
+- Contact Form: add filters to allow customizing the class attributes of inputs and buttons.
+- General: add more constants to error log for the Jetpack test suite.
+- Gutenberg: add infrastructure necessary to add new blocks via Jetpack.
+- Lazy Images: load the placeholder via the `srcset` attribute instead of the `src` attribute.
+- Masterbar: add link to Activity Log.
+- Publicize: the Path Social Network is closing in October. The option has consequently been removed from the Publicize interface.
+- Search: improve the feature activation process.
+- Search: update the admin interface to give more information about what the feature does and how it can be used.
+- Simple Payments: update all mentions of the product for a more consistent naming convention and less confusion for both site owners and translators.
+- Sync: log action when an attachment is added to a post for the first time.
+- Sync: add URL details to synchronization requests.
+- Sync: detect if a post is saved via Gutenberg when synchronizing post events.
+
+### Improved compatibility
+- Shortcodes: update Mailchimp shortcode to match the new format offered by Mailchimp.
+
+### Bug fixes
+- CSS Concatenation: add Authors and Social Icons widgets to concatenated styles.
+- Featured Content: avoid registering duplicate Post Types.
+- Geo Location: only enqueue Dashicons when necessary.
+- Google Analytics: do not output tracking code when the "Enhanced eCommerce" option is active, but the WooCommerce plugin is not.
+- Infinite Scroll: add a Privacy Link to the site's footer if a Privacy Policy was set up via WordPress's privacy options.
+- Infinite Scroll: fix video playback of VideoPress videos loaded via Infinite Scroll.
+- Protect: fix layout of legend that prompts the user to solve the math fallback so it works better in all languages.
+- Responsive Videos: avoid PHP notice.
+- Sharing: do not record stats if the stats module is disabled.
+- Sharing: allow saving sharing button options on media edit page as well.
+- Shortcodes: ensure we build minified and RTL stylesheets for slideshows.
+- Simple Payments: Stop contributors from creating inaccessible buttons with a "pending" post status.
+- Sitemaps: no longer add images attached to non-published posts to the image sitemap.
+- Slideshows: ensure arrows point in the right direction for RTL Languages.
+- Sync: avoid PHP notices when synchronizing user information.
+- VideoPress: avoid duplicate rel attributes in links.
+- VideoPress: do not block access to the Video settings for our customers using a 2-year plan.
+
+## [6.5] - 2018-09-04
+### Major Enhancements
+- WordAds: Added ability to include custom ads.txt entries in the ads module.
+
+### Enhancements
+- Admin Page: Added ability to disable backups UI by filter when VaultPress is not activated.
+- Comments: Moved the Subscription checkboxes on a comment form from after the submit button to before the submit button.
+- General: Removed the outdated "Site Verification Services" card in Tools.
+- General: Removed jetpack_enable_site_verification filter. We recommend filtering access to verification tools using jetpack_get_available_modules instead.
+- General: Simplified the logic of Jetpack's signed HTTP requests code.
+- Lazy Images: Updated lazy images to use a default base64 encoded transparent to reduce a network request.
+
+### Improved compatibility
+- Geo Location: Fixed a compatibility issue with other plugins that added meta attributes to site feeds with the `rss2_ns`, `atom_ns` or `rdf_ns` filters.
+
+### Bug fixes
+- AMP: Fix PHP notice when rendering AMP images with unknown width and height.
+- Contact Forms: We fixed an issue where personal data eraser requests didn't erase all requested feedback.
+- General: Improves compatibility with the upcoming PHP 7.3.
+- General: Updated input validation for meta tags given in site verification.
+- Lazy Images: Deprecated jetpack_lazy_images_skip_image_with_atttributes filter in favor of jetpack_lazy_images_skip_image_with_attributes to address typo.
+- Sharing: Fixed duplicate rel tags on Sharing links.
+- Search: Fixed an issue where a CSS and JavaScript file could be enqueued unnecessarily if the Search module was activated and if the site was using the Query Monitor plugin.
+- Shortcodes: Updated Wufoo Shortcode to always load over https and use async form embed.
+- Widgets: Fixed excessive logging issue with Twitter Timeline widget.
+- Widgets: Removed cutoff date check for Twitter Timeline widget as it is no longer necessary.
+- Widgets: Added decimal precision validator to Simple Payments Widget price field on the Customizer for supporting Japanese Yen.
+
+## [6.4.2] - 2018-08-10
+### Bug fixes
+- Comments: We fixed an error that broke functionality of Social Login for comments.
+
+## [6.4.1] - 2018-08-08
+### Bug fixes
+- Comments: We fixed an error that broke functionality of nested comments.
+
+## [6.4] - 2018-08-07
+### Enhancements
+- Connection: Updated connect splash screen with new content.
+- Sharing: Sharing section in wp-admin will now redirect to Calypso instead.
+- Docs: Added documentation for retrieving provision status of a site.
+- Shortcodes: Added oEmbed support for flat.io.
+- Widgets: Added `jetpack_top_posts_widget_layout` filter that allows you to create a custom display layout for the Top posts widget.
+- Privacy tools: Identify the data export/erasure callbacks for Feedback posts using associative keys, to better match the convention in Core.
+- Privacy tools: Added the `grunion_contact_form_delete_feedback_post` filter hook to allow specific Feedback posts to be bypassed during data erasure requests, similar to the `wp_anonymize_comment` filter in Core.
+- Contact Fork: Disabled random table optimizations on core tables.
+
+### Improved compatibility
+- AMP: Improved AMP compatibility for Comments iframe.
+- General: The SEO Framework is no longer a conflicting Open Graph plugin and is now better compatible with Jetpack.
+
+### Bug fixes
+- Shortcodes: Removed extra black bars from YouTube embeds as controls are inside the container now.
+- Simple Payments: Fixed the custom post type bug that affected Simple Payments widget for 2 year subscriptions.
+- Simple Payments: Fixed site failure which happens on Multisite installation with Simple Payments widget.
+- Simple Payments: Fixed syntax and misc compatibility issues with Simple Payments widget on PHP 5.2.
+- Simple Payments: Added warning for admin users if Simple Payments is not enabled but there are products published on pages/posts as a widget.
+- Lazy Images: Fixed an issue with images not loading while updating quantity in WooCommerce shopping cart.
+- Lazy Images: Fixed centered images that do not crop properly when no JavaScript is enabled.
+- General: Fixed auto scrolling to top when following the Quick Tour buttons.
+- General: Removed ability to set custom name for Site Identity section.
+- General: Added advanced control capabilities to image extraction from posts.
+
+## [6.3.3] - 2018-07-30
+### Facebook API Maintenance
+- On the 1st of August, 2018 Facebook sunsets its API allowing to post updates to your Profile Page. Only the API allowing to post to Facebook Pages will remain. This required several changes to Jetpack that we are presenting in this release:
+ - Publicize: making sure we are handling existing connections gracefully.
+ - Publicize: using logo font instead of images to make the UI up to date and mobile ready.
+ - Publicize: removing the ability to select Facebook Profile connections in the UI.
+
+### Bug fixes
+- General: properly handle Jetpack connection owner transition process.
+
+## [6.3.2] - 2018-07-04
+### Bug fixes
+- Simple Payment: Fix compatibility issues with PHP versions 5.3 and below
+
+## [6.3] - 2018-07-03
+### Major Enhancements
+- Simple Payment: Added Simple Payment Products as Widgets, with the option to manage them via the Customizer.
+
+### Enhancements
+- Connection: Added a new connect splash screen content.
+- Jetpack Dashboard: We removed the labels reading 'PAID' in order to introduce a better way to remark paid features.
+- General: Added support to display geo-location data added to posts and pages with Calypso.
+
+### Improved compatibility
+- Protect: We solved an issue related to interaction with bbPress when trying to log in via a bbPress login widget. You would get redirected a few times to log in again after solving the math puzzle.
+
+### Bug fixes
+- Comments: Implemented Core WordPress' Comment Cookie Consent Checkbox in Jetpack Comments.
+- General: We solved an issue that arised when using the Front End Editor feature plugin. A fatal error wass thrown due to us assuming the `enter_title_here` filter would only run within wp-admin.
+- General: Fixed a compatibility problem between WordPress TinyMCE and Jetpack Markdown when visiting the WordPress Dashboard.
+- Lazy Images: Fixed behavior for when JavaScript is disabled.
+- Markdown: We fixed the naming of the class used for code blocks that specify a language.
+- Simple Payments: Fixed an error when the user had published Simple Payment Products but their Professional Subscription had expired.
+- Sitemap: We fixed the format of the date shown for videos on the video sitemap.
+- Stats: We fixed the width of the Stats page for wide screens.
+
+## [6.2.1] - 2018-06-08
+### Bug fixes
+- AMP: We fixed the rendering of the stats pixel for legacy, non-paired, non-canonical AMP pages.
+- Shortcodes: Fixed a fatal coming form the VR shortcode when using the Gutenberg editor in the frontend.
+
+## [6.2] - 2018-06-05
+### Major Enhancements
+- Shortcodes: Added Gutenberg block for the [vr] shortcode.
+
+### Enhancements
+- AMP: Allow Jetpack features to work on AMP pages, and prevent Jetpack features from rendering to the front end at all.
+- Content Options: We now exclude Custom Post Types like Portfolio and Testimonial when we toggle content/excerpt via the Blog Display option in the customizer.
+- Cookies & Consent Widget: Added a "top" option for the cookie widget position. The existing bottom of the screen position is the default.
+- Tiled Galleries: use Photon if active when a Tiled Gallery links to media file.
+
+### Improved compatibility
+- Widgets: Deprecated the use of Widget IDs in the Twitter Timeline Widget given that Twitter deprecates Widget IDs on July, 27th 2018.
+
+### Bug fixes
+- Contact Form: Fixed an issue with undefined variables and a warning being logged when submitting the Contact Form.
+- Contact Form: Fixed scrolling/height for very large contact forms.
+- Widgets: Fixed Cookies & Consent Widget's bottom margin for themes that set a specific margin for forms.
+- Related Posts: Made it not try to fetch related posts for an unpublished post.
+- Sharing: Fixed an issue that resulted in wrong URLs for sharing on WhatsApp.
+- Sharing: Fixed the way we check if Akismet is active and has a valid key by caching the result of the verification.
+- Shortcodes: Fixed the Facebook shortcode in wp-admin.
+- Widget Visibility: Fixed styling for MS Edge.
+- Widgets: Removed .widget class from Cookies and Consent widget styles since .widget is not used in every theme.
+
+## [6.1.1] - 2018-05-22
+### Enhancements
+- Ads: Added new setting for Banner consent expiration. Added new filter jetpack_disable_eu_cookie_law_widget, which can be used to disable the banner.
+- Ads: Added a new personalized-ads-consent cookie for ads-enabled sites.
+- Ads: Added requirement and notice, and button-click opt-in for ads module users.
+- Ads: When a user site has a Privacy Policy page set (introduced in 4.9.6), we now default to using that privacy policy as a custom policy URL.
+- GDPR: A new warning is displayed while configuring an instance of the EU Cookie Law widget: "Caution: The default policy URL only covers cookies set by Jetpack. If you're running other plugins, custom cookies, or third-party tracking technologies, you should create and link to your own cookie statement."
+- GDPR: Added Feedback data (i.e., Contact Form Submissions) to the Personal Data exported and/or erased by the latest version of WordPress core.
+
+### Bug fixes
+- Ads: We updated Ads behavior to not show unless the visitor is on the main query within the loop.
+- General: We fixed a bug that resulted in an alert box showing for sites set to languages deriving from main ones.
+- Lazy Images: Fixed a bug where images would disappear when scrolling.
+- Sharing: make sure JS files can be loaded on development sites.
+- Sharing: Added check for validating Akismet key before allowing sharing by email.
+- WooCommerce Analytics: Fixed PHP warning when attemping to get a list of plugins.
+
+## [6.1] - 2018-05-01
+### Major Enhancements
+- WordAds: Introduced shortcode for inline Ad placement.
+- WordAds: Added support for the ads.txt file.
+
+### Enhancements
+- Dashboard: We improved the styles of status numbers so it doesn't look like floating.
+- JSON API: Added support for Google My Business integration available on WordPress.com.
+- Masterbar: We removed the Next Steps link from the Account sidebar.
+- Publicize: Let the user know that we are going to send emails to subscribers and publicize to the different accounts.
+- Settings: Added "Privacy Information" links to each Jetpack module/feature card.
+- Shortcodes: Mixcloud shortcode now uses oEmbed.
+- Stats: Added a new filter jetpack_honor_dnt_header_for_stats, which if enabled would not track stats for visitors with DNT enabled.
+- Sync: Removed requirement for gzencode.
+- Widgets: always load script via HTTPS for Gravatar Hovercards.
+
+### Improved compatibility
+- Social Icons Widget: Improved support on screen reader text for themes that do not provide support out of the box.
+- Sharing: Removed the sharing and like display functionality from Cart, Checkout, and Account WooCommerce pages.
+
+### Bug fixes
+- Admin Page: We fixed the internationalization of the plans page.
+- Ads: We fixed a problem that impeded Premium Plan customers to activate Google Analytics.
+- Auto Updates: We fixed a warning being thrown due to a bad concatenation of strings.
+- General: Fixed a warning that was being logged due to attempting to use in_array() over a variable that didn't always contain an array.
+- General: Fixed Warning: count(): Parameter must be an array or an object that implements Countable showing on PHP 7.x.
+- JSON API: Fixed internationalization on embed endpoint.
+- Theme Tools: Show featured images in WooCommerce pages when Display on blog and archives is turned off for Themes that support this feature.
+- Publicize: Avoid adding Publicize post meta when a post transitions to publish and it is not a publicize-able post type.
+- Settings: Fixed the icon representing the minimum plan needed for SEO and Google Analytics features.
+- Slideshow: Fixed an invalid argument supplied for foreach() warning.
+- SSO: We fixed the name of a filter which contained a typo before. The filter is now named: `jetpack_sso_auth_cookie_expiration`.
+- SSO: Fixed some cases where we were not handling secure cookies for sites running over https.
+- Sync: Fixed Warning: Invalid argument supplied for foreach().
+- Sync: Fixed Warning: Warning: json_encode(): recursion detected.
+- WooCommerce Analytics: fixed broken Remove From Cart link.
+
+## [6.0] - 2018-04-03
+### Major Enhancements
+- Admin Page: Introduced a new Privacy admin page linked at the bottom of the Jetpack dashboard.
+- Admin Page: Introduced a Privacy toggle that allows the user to disable event tracking.
+- Widgets: Added new Social Icons widget and deprecated old Social Media Icons widget.
+
+### Enhancements
+- Activity Log: Started syncing comment untrashed and comment unspammed events.
+- Admin Page: Added inline module settings for plan welcome page.
+- Admin Page: Removed Javascript patterns previously used in the Admin Page that should improve performance lightly (bind pattern).
+- Admin Page: Made Jetpack Monitor setting management easier by adding a simple toggle.
+- Admin Page: Moved the button for closing the Jumpstart modal closer to the dialog so it's more visible.
+- Admin Page: Updated the "install and activate" link in the Backups card to be a functional link matching the "Set up" button.
+- Admin Page: Updated notices style to be more accessible.
+- Admin Page: We now show a link to see all plans on small screens.
+- Admin Page: Settings in Jetpack dashboard now feature contextual help and a link to learn more about it.
+- Ads: Added site id to head meta.
+- Comments: Improved accessibility of comments form by adding title attributes.
+- Connect: Removed account creation links from below the Set Up Jetpack buttons.
+- General: Show correct available status in Jetpack modules list if module is not supported by current plan.
+- General: Removed holiday snow module.
+- General: Return error in wp-cli if activating a module that is not supported by the current plan.
+- Google Translate Widget: Made sure the widget is responsive by default.
+- JITM: We now allow specifying that a jitm can be opened in a new window, or the same window.
+- JITM: We now don't use all caps for buttons text.
+- Likes: Removed Likes from Jumpstart.
+- Likes/Sharing: Moved metabox in post editor to the right side for a better fit.
+- Masterbar: Made the Sign Out link in the Master always log you out from WordPress.com.
+- Publicize: Made styling of Publicize more consistent with wp-admin.
+- Protect: Started blocking XML RPC requests when they get marked as blocked by Protect.
+- Search: Made the Search widget available whether or not Extra Sidebar Widgets is enabled.
+- SEO Tools: Removed SEO Tools from Jumpstart
+- Shortcodes: We now load Twitters widget.js over https.
+- Subscriptions: We've made it a better experience if you try to subscribe to a site you are already subscribed to.
+- Sync: Stopped syncing personal data coming from WooCommerce orders.
+- VideoPress: Default to grid view when linking to upload videos
+- Warm Welcome: Added Search to the features listed on the Warm Welcome dialog for Professional Plan.
+- Widgets: Added rel=noopener attribute to links in the Display WordPress Posts widget if set to open in a new window.
+
+### Improved compatibility
+- bbPress: Markdown support added for bbPress CPTs.
+- PHP 7.1: Fixed an error coming from one of our json-api endpoints.
+
+### Bug fixes
+- Admin Page: Fixed Dashboard connection card from showing text that overflows the card.
+- Admin Page: Fixed directory separator character used when displaying the site URL on the disconnect dialog.
+- Admin Page: Fixed an issue by which clicking the back button on a page visited after the Admin Page would result in the Admin Page being rendered with cached data.
+- Admin Page: Don't show a Set Up button when searching for modules that are inactive in Jetpack Settings page. The Set Up button is meant for paid features coming from plugins.
+- Admin Page: Make it clear when tracking begins in the connetion dialog.
+- Admin Page: Hide the date range tabs when the initial dialog is shown.
+- Admin Page: Fixed the positioning of popovers in the Jetpack Settings page.
+- Admin Page: Fixed a bug with the Ads settings toggle.
+- Admin Page: Fixed a display issue for the custom user capability "jetpack_connect".
+- Admin Page: Made sure translations are properly applied to several phrases.
+- Connection Banner: Updated style to better fit wide screens.
+- Connection Banner: Added illustration SVGs.
+- Contact Form: Fixed width style of input for Website address.
+- Google Analytics: fix PHP notice on search pages.
+- Infinite Scroll: Fixed issues where the first was being duplicated on scroll.
+- Likes: Made manually enabled likes remain being likeable if Likes are enabled for all posts
+- Masterbar: Fixed a javascript error that would pop up with the Grammarly extension enabled on Chrome macOS.
+- Search: Added default values for the Search widget so it can be added from the Customizer.
+- Settings: Fixed overflow/overlap when there are many ignored phrases in spelling options.
+- Settings: Updated SEO/analytics links to avoid unnecessary redirects.
+- Stats: Fixed column spacing styling issues in WP Dashboard box for Jetpack stats.
+- VaultPress: Remove menu item that links nowhere when Rewind is enabled.
+- Widgets: Fixed issue with custom URL choice and selective refresh in the EU Cookie Law widget.
+- WooCommerce Analytics: Fixed PHP warning coming from str_replace usage.
+- WooCommerce Analytics: Started tracking all possible ways to add a product to a cart.
+
+## [5.9] - 2018-03-06
+### Major Enhancements
+- WooCommerce Analytics: Added a new module for WooCommerce analytics that will use Jetpack's analytics functionality to help you track activity on your WooCommerce store.
+- Custom Content Types: Added support for excerpts on Testimonial and Portfolio.
+
+### Enhancements
+- Activity Log: Improved the way we show failed login attempts in Jetpack's Activity Log.
+- Admin Page: We now hide settings for Lazy Images and Photon in the Admin page when the modules are not enabled due to being filtered out by jetpack_get_available_modules.
+- Admin Page: Now we only show the dismissal button in Apps card of the Jetpack Dashboard for admin users.
+- Build: Added a pre-commit hook for linting the Jetpack Admin Page source code. This aids in finding common syntax and style problems before having to wait for automated tests to run.
+- JSON API: We removed an obsolete endpoint for updating invites.
+- Onboarding: Added the ability to configure the country for a business address the using the Onboarding functionality of Jetpack.
+- Onboarding: Added the ability to enable the stats module when using the Onboarding functionality.
+- Onboarding: We now delete the onboarding token when the site gets connected.
+- Jetpack Start: Updated scripts for partners allowing to pass a tracking ID when provisioning or cancelling a plan which will help in debugging.
+- Jetpack Start: Improved the documentation for partners so they're now able to get them right on the Jetpack's Github repository under the docs/partners directory.
+- Plans: Correctly forward the client IP address for currency localization.
+- Plans: Updated the copy-text on Jetpack's Admin page for plans to be more concise on the features of each plan.
+- REST API: Added a plans endpoint to Jetpack's REST API to better handle the features of each Jetpack plan internally.
+- Search Implicitly activate Jetpack Search when attempting to add the Jetpack Search widget.
+- Search: Updated the Jetpack Search settings card to be more helpful in setting up the widget.
+- Search: We made the "Add Jetpack Search Widget" link in the Search module settings card open the widgets section of the customizer.
+- Search: Move any active search widgets to the inactive list if you disable the search module.
+- Search: Only log mysql and ES query times that are less than 60 seconds. There are some outliers that mess up our stats.
+- Sync: Improved the way widget titles are synchronized to WordPress.com servers when widgets are saved or updated.
+- Twitter Cards: Added new jetpack_twitter_image_default filter to allow themes and plugins to customize twitter:image when no suitable image is found automatically.
+- We updated the way we handle Jetpack's green color in out stylesheets for better compatibility with Jetpack's new logo.
+
+### Improved compatibility
+- Admin Page: Jetpack's Admin Page javascript code is now fully compatible with React 16.
+- JSON API: Updated the modules endpoint Jetpack's JSON API to reply with a new property `override` that indicates if a module was either enabled or disabled by a filter.
+- Lazy Images: Updated the library used as IntersectionObserver for Lazy Images. We now use the W3C IntersectionObserver polyfill.
+- Lazy Images: Jetpack now allows the lazy images module to skip images with the skip-lazy css class or any given class of your choice by using the jetpack_lazy_images_blacklisted_classes filter.
+- Masterbar: Updated the sign out button behavior of the Masterbar to not sign you out of WordPress.com when you sign out of your site for regular Jetpack sites.
+- REST API: Updated the modules endpoint in Jetpack's REST API to be aware of modules that have been filtered through option_jetpack_active_modules allowing for better compatibility with custom Jetpack installation where the administrator decides to filter out specific Jetpack modules.
+- Sync: Added the jetpack_sync_action_before_enqueue action that's done when anything gets enqueued before being synchronized to WordPress.com servers.
+
+### Bug fixes
+- Admin Page: Removed all linting warnings for the JS code of the Admin page. These were only shown in development builds.
+- Connect: Fixed an issue that sometimes resulted in a notice being shown about another user already having connected a Jetpack site when attempting to connect your site to WordPress.com
+- General: Added suppress_filters param to get_posts / get_children function calls.
+- Markdown: Updated WordAds code to not use create_function which is getting deprecated in PHP 7.2.
+- Sync: Fixed a problem in Jetpack Sync code when trying to get property of non-object in the post syncing file.
+- Sync: Stopped synchronizing the sitemap post types to WordPress.com servers as it was an issue given the size of these.
+- Tracks events: Track events are logged now only if the user has accepted ToS and not just if Jetpack is connected.
+- Widget Visibility: Added a decodeEntities function in widget-conditions.js to handle entity decoding for the minor conditions dropdown.
+- WordAds: Updated WordAds code to not use create_function which is getting deprecated in PHP 7.2.
+
+## [5.8] - 2018-02-06
+### Major Enhancements
+- [Lazy Images](https://jetpack.com/support/lazy-images/): after a Beta
+ period, you can now enable this new feature from Jetpack > Settings in your
+ dashboard.
+- [Elasticsearch-powered search](https://jetpack.com/features/design/elasticsearch-powered-search/):
+ also out of Beta! We've improved the way data is indexed behind the scenes,
+ and made changes to the Search widget and its filters. (Elasticsearch is a
+ trademark of Elasticsearch BV, registered in the U.S. and in other countries.)
+
+### Enhancements
+- Comment moderation tools: moderation emails now point to WordPress.com when
+ using the `edit_links_calypso_redirect` option.
+- Custom CSS: add CSS Grid Layout support.
+- Dashboard: update list of features available in Paid plans.
+- Dashboard: improve the display of notices inside the Jetpack dashboard.
+- Dashboard: update content displayed in the Jetpack dashboard when not
+ connected to WordPress.com.
+- Development mode: improve the display of the development notice.
+- General: add a new filter, `jetpack_active_modules`, allowing site owners to
+ filter the list of active modules.
+- Notices: add rel tags to notice links to avoid issues when links open in a
+ new window.
+- Onboarding: add functionality for saving Business Address in the Contact
+ Info widget.
+- Onboarding: save site type during site setup process.
+- Onboarding: enable loading of specific modules when using the Onboarding
+ process.
+- Post Images: allow passing size when searching for images in HTML.
+- REST API: update the plugin installation process to use a new library.
+- REST API: allow changing the number of posts displayed in the RSS feed, and
+ whether feeds display full text or a summary.
+- REST API: simplify our invites endpoint.
+- Sharing: make sure the Whatsapp button works on mobile and on desktop.
+- Sharing: add new filter, `wp_sharing_email_send_post_subject`, to allow
+ modifying the email sharing subject line.
+- Shortcodes: update the GettyImages shortcode to use the new format required
+ by GettyImages.
+- Site Settings: add support for site language and timezone settings.
+- Sync: improve synchronization of user actions, theme and plugin edits /
+ updates, post status, updates on Multisite networks, Protect events, and
+ WooCommerce's meta data.
+- WordAds: enable the Ads in the header by default.
+- WordAds: add filters so site owners can control the display of the ads via
+ code as well.
+
+### Improved compatibility
+- Lazy Images: fix issues with the Gazette theme.
+- Open Graph: add Open Graph Metabox to the list of conflicting plugins.
+- Masterbar: fix incompatibility with BeaverBuilder plugin.
+- PHP 7.2: fix issues when running Jetpack with PHP 7.2.
+
+### Bug fixes
+- Carousel: fix PHP Notice with images using custom meta.
+- Dashboard: make sure all links to WordPress.com point to the right site's
+ settings on WordPress.com.
+- Dashboard: update links to the plugin interface on WordPress.com to load the
+ full plugin management page.
+- General: fix images shown in the dashboard when Jetpack is installed in a
+ directory different than `jetpack`.
+- Lazy Images: make sure Lazy Load can be triggered even when images are added
+ to the content very late.
+- Stats: make sure the Stats script is XHTML compliant.
+- Widgets: Mailchimp - avoid conflicts with jQuery UI.
+
+## [5.7.1] - 2018-01-16
+### Bug Fixes
+- Protect: Fixed the math problem fallback for logging into Multisite installations.
+- Settings: Made sure that the Security tab is no longer constantly updating the displayed information.
+
+## [5.7] - 2018-01-02
+### Enhancements
+- Added ability to create revisions of Portfolio Projects.
+- Users hosting their sites with our Pressable partner who have Rewind access can now jump from the new Activity card in the Jetpack dashboard to the Activity Log in WordPress.com and restore or download backups for the site.
+- Comments: Edit links for comments in the frontend can redirect to calypso if the Jetpack option `edit_links_calypso_redirect` is enabled.
+- Protect: Updated the styling of the Protect page for recovering access to your site when you're locked out of it.
+- Search: Improved the UI for customizing the Search widget.
+
+### Improved compatibility
+- Comments: Updated our filtering behavior for Jetpack comments so other plugins appending html to the comments section are able to do it instead of being filtered out by Jetpack.
+- Widgets: We updated Goodreads URLs to support https schema.
+- Masterbar: We now hide the Masterbar settings card in Jetpack’s Admin Page for sites that are set to always show the Masterbar.
+- Lazy Images: Added a callback for processing image attributes array when attempting to lazy load images are loaded via `wp_get_attachment_image`.
+- Search: Added hooks to the search filters widget so that other plugins/themes can hook in and change its output.
+
+### Bug fixes
+- REST API: Added a check for avoiding a fatal error when attempting to include Akismet class files in case the Akismet plugin files are present but the permissions on the files there are set to be not readable
+- Markdown: Fixed bug where code inside shortcodes wasn't correctly restored from the hash.
+- Search: Fixed the link that acts as a month and year filter removal toggle.
+
+## [5.6.1] - 2017-12-14
+### Security Improvements
+- Contact Forms: Hardened security in Contact Form processing.
+
+### Enhancements
+- Sharing: Bumped the character limit to 280 when sharing a post to Twitter.
+
+### Bug fixes
+- Widget Visibility: Fixed a bug that disabled "saving" the widget when removing a Widget Visibility rule.
+
+## [5.6] - 2017-12-05
+### Major Enhancements
+- Google Analytics: Add support for universal analytics for WooCommerce.
+- Performance: minify all JavaScript files used in the plugin.
+- Performance: add new Lazy Images module.
+- Protect: add new mechanism allowing you to send yourself an email with a
+ link to the form when you are locked out of your site.
+
+### Enhancements
+- Custom CSS: add new set of font properties that can be used in the CSS
+ editor.
+- Photon: do not remove `width` and `height` attributes from image tags when
+ known.
+- Sitemaps: add CLI commands to purge and built the sitemaps.
+- Sitemaps: only display the reporter log success messages if
+ `JETPACK_DEV_DEBUG` is defined.
+- WordPress.com API: add new endpoints to allow for better comment management
+ in third party interfaces like WordPress.com.
+- WordPress.com Toolbar: prevent dns prefetching for logged out users.
+
+### Improved compatibility
+- Stats: remove function deprecated in PHP 7.2.
+
+### Bug fixes
+- Comment Likes: make sure Like text is properly translated.
+- General: only load stats code when necessary.
+- Related Posts: allow site owners to exclude multiple blog posts from the
+ list of Related Posts.
+- Sharing: remove inline JavaScript used in the email sharing form.
+- Search: Maintain ordering of the search filters in the widget.
+- Sync: avoid PHP notices during the synchronization process.
+
+## [5.5.1] - 2017-11-21
+### Bug fixes
+- In Jetpack 5.5 we made some changes that created errors if you were using other plugins that added custom links to the Plugins menu. This is now fixed.
+- We have fixed a problem that did not allow to upload plugins using API requests.
+- Open Graph links in post headers are no longer invalid in some special cases.
+- We fixed warnings happening when syncing users with WordPress.com.
+- We updated the way the Google+ button is loaded to match changes made by Google, to ensure the button is always displayed properly.
+- We fixed conflicts between Jetpack's Responsive Videos and the updates made to Video players in WordPress 4.9.
+- We updated Publicize's message length to match Twitter's new 280 character limit.
+
+## [5.5] - 2017-11-07
+### Major Enhancements
+- Jetpack is now fully compatible with WordPress's [new Gallery Widget](https://make.wordpress.org/core/2017/09/25/introducing-the-gallery-widget/). Your old Gallery widgets powered by Jetpack will switch to the new Widget when you update to WordPress 4.9.
+
+### Enhancements
+- We have improved the performance when loading the Jetpack Settings in the dashboard by optimizing the number of calls made when loading the page.
+- We have updated the plugin to do a better job of cleaning up after itself whenever you decide to remove Jetpack from your site.
+- We made some changes to reduce the number of connection issues that may happen on a site when switching from HTTP to HTTPs.
+- We made some performance improvements to the Jetpack dashboard interface, to make sure your options and settings are loaded faster there.
+- Error messages are also better in the Jetpack Dashboard; whenever you can't update settings, Jetpack will provide you with more information about why.
+- We improved the Jetpack update process to make sure updating Jetpack does not stress your database during it, even on high-traffic sites.
+- The next version of WordPress, 4.9, will be released very soon and will include [a lot of changes to its code editors](https://make.wordpress.org/core/2017/10/22/code-editing-improvements-in-wordpress-4-9/). Jetpack's Custom CSS will be fully compatible with the new editors and their syntax highlighting feature.
+- We also made changes to make sure Jetpack was fully compatible with the [role and capability changes](https://make.wordpress.org/core/2017/10/15/improvements-for-roles-and-capabilities-in-4-9/) in WordPress 4.9.
+- We have made some performance improvements to the Carousel feature.
+- Contact Form: do not process shortcodes in widgets when WordPress itself does, starting in 4.9.
+- Contact Form: we have improved the "website" field to display better error messages when you don't supply a URL. We have also improved the look of the date picker for the date field.
+- Contact Form: avoid duplicate slashes when loading editor style.
+- Masterbar: update the "Plugins" menu item to match the updated design on WordPress.com.
+- Open Graph: do not display images smaller than Facebook's required size.
+- Sharing: use Google's minified libraries to improve performance when loading Google buttons.
+- Sharing: update Open Graph Image tags appearing on the home page to offer better alternatives based on your site settings in Appearance > Customize.
+- We improved the way sitemaps are built so they do not consume too much memory when they are generated.
+- WP.me Shorlinks: those links will now always use HTTPS.
+- Spellchecker: we improved the admin interface to make it more clear when adding ignored phrases and saving them.
+- Subscriptions: we added a filter so third party developers can track comment subscription activations.
+- Sync: synchronize plugin action links to add that information to WordPress.com.
+- Sync: improvements to better track theme and widget changes.
+- VideoPress: we removed Jetpack version locking for directly embedded VideoPress videos to ensure all users receive the newest version of the player.
+- We added a new filter (`jetpack_google_translate_widget_layout`) to the Google Translate Widget to allow you to change its layout.
+- WordPress.com REST API: improve comment management for all roles, including post authors.
+- WordPress.com REST API: allow site owners to manage comments on attachment pages from WordPress.com.
+- WordPress.com REST API: improve the response from the API when WordPress' autoupdates are disabled.
+
+### Improved compatibility
+- You can now use Jetpack's contact form and Yoast SEO's Focus keywords on the same page without any issues in the editor.
+- Top Posts Widget: avoid Fatal Errors when the widget is used on a site using WPML, and when a popular post cannot be found by WPML.
+- Sync: add more Custom Post Types from third-party plugins to the list of things we do not synchronize with WordPress.com, to improve sync performance.
+- Sharing: since [Press This is now a plugin and not part of WordPress itself](https://make.wordpress.org/core/2017/11/02/press-this-in-4-9/), we removed the Press This sharing button if you are not using the plugin.
+
+### Bug fixes
+- We now avoid displaying notices to user roles that cannot benefit or act based on the info in the notices.
+- Gravatar Hovercards: avoid PHP Notices when the user info is an object.
+- Infinite Scroll: avoid PHP notices when a site customizes galleries thanks to the `post_gallery` filter.
+- Mailchimp: make sure subscription forms can still be embedded in posts and pages.
+- Mailchimp: do not require the use of the shortcodes feature to use the Mailchimp widget.
+- Mailchimp: fix issue where Mailchimp form code could not be added to the Mailchimp widget.
+- Masterbar: avoid JavaScript errors by always loading jQuery.
+- Post By Email: do not display any content in the email address field if no email address has ever been set before.
+- Publicize: avoid errors when DOMDocument is not available.
+- Publicize: we now hide the feature activation toggle if you are not allowed to manage Jetpack features.
+- Search: make sure module cannot be activated when the site does not use a Plan.
+- SEO Tools: do not output any custom meta tags if another SEO plugin is already active.
+- Sharing: make sure Twitter Cards can be displayed even when a post does not include a title.
+- Sharing: fix alignment of sharing buttons in the admin preview when using custom sharing buttons.
+- Sitemaps: wait a minute before to generate sitemaps when the feature is activated, to avoid performance issues.
+- Sync: avoid synchronization issues on Multisite networks using custom domains.
+- Top Posts Widget: display the default title when it is set to empty.
+- Milestone Widget: make sure the widget is displayed properly and can easily be translated into other languages.
+- Verification Tools: avoid notices when saving changes on a Multisite network admin page.
+- VideoPress: avoid missing file warning in the editor when using an RTL language.
+- Upcoming events Widget: avoid PHP notices on sites using a custom timezone setting.
+- WordPress.com REST API: avoid errors when installing plugins via the WordPress.com API.
+
+## [5.4] - 2017-10-03
+### Major Enhancements
+- Multiple improvements to the connection process, to allow more people to use the Jetpack plugin, even on very specific server configurations.
+- Add a new Welcome screen to guide site owners after they have purchased a Jetpack plan.
+
+### Enhancements
+- Add Schema.org markup to the Contact Info Widget.
+- Add a new "Date" field to the Contact Form.
+- Do not show any update notices when in [development mode](http://jetpack.com/support/development-mode).
+- Improve our documentation to help contributors set up a unit testing environment.
+- Avoid conflicts between Jetpack's Infinite Scroll and other Infinite Scroll plugins.
+- Improvements to the WordPress.com REST API to avoid issues when interacting with your site's categories and tags on WordPress.com.
+- Allow third party plugin and theme authors to add new menu items to the WordPress.com toolbar.
+- Improve the Content Options panel displayed in the Customizer with certain themes.
+- Add architecture for the Jetpack Search feature, available for Jetpack Professional users.
+- Simple Payments: improve the display of the payment items when used on your site.
+- Ensure a proper display of the Recipe shortcode on sites using an RTL language.
+- Improve the display of the Facebook posts, images, and all other Facebook embeds in your posts.
+- Synchronize the author information for all published posts.
+- Record how Jetpack was discovered and activated to better understand how site owners first discover Jetpack.
+- Improve the display and options offered with the Milestone Widget.
+
+### Bug fixes
+- We fixed layout issues appearing in the admin interface for IE11 users.
+- Comment Form: avoid whitespace sometimes appearing below the form with some themes.
+- Contact Form: avoid errors in the post editor on sites using RTL languages.
+- Toolbar: always display the Toolbar when it's active, regardless of other admin bar settings.
+- Widget Visibility: make sure rules are correctly migrated from the old Jetpack image widget to the new WordPress Image Widget.
+- Avoid errors showing that Jetpack is out of date on WordPress.com, when running a Multisite network.
+- WP CLI: avoid warnings when using the `wp jetpack protect whitelist list` command to list the whitelisted IP addresses in the Protect feature.
+- Avoid displaying raw HTML in the Stats Configuration screen.
+- Comment edits are reflected properly in wordpress.com.
+
+## [5.3] - 2017-09-05
+### Major Enhancements
+- Full PHP 7.1 compatibility.
+- It's now possible to preview your site within WordPress.com.
+
+### Enhancements
+- The Ads feature now gives you more options and control over the ads displayed on your site.
+- Increased performance in the admin by cutting back on unnecessary requests.
+- Loading comment avatars from Facebook and Twitter through a more secure https.
+- Admin UI is much friendlier on initial activation when there are no stats to display.
+- You're now able to stop VideoPress from looping a video during autoplay through the shortcode.
+- Made some optimizations to the Jetpack connection process which means connecting your site more is more reliable.
+- The EU Cookie Law widget got some styling improvements and looks better in any theme.
+- There's a new Jetpack CLI command to allow testing of the Jetpack connection.
+- Added the Likes and Monitor features to our recommended features list, making it easier to activate for new sites.
+- Improvements made that makes sure we have the most up-to-date version of your site when managing from WordPress.com.
+- Added a link to view your Comments in the WordPress.com toolbar.
+- Lots of minor design improvements to the Jetpack admin area.
+- We've found a few places where we were able to optimize the loading of css files.
+- Removed the Omnisearch feature.
+
+### Bug fixes
+- Fixed compatibility issues with plugins using TinyMCE.
+- Contact Form submission emails have been fixed for sites hosted on SiteGround.
+- Updating WordPress.com themes will no longer have any problems.
+- The Sitemaps feature will no longer error with posts/images with special characters in the title.
+- There are no more conflicts with the ACF plugin when adding a new custom field.
+- Fixed a bug that would cause some plugins to throw warnings with the Shortcode feature.
+- We're no longer loading a font on the front-end for the Likes feature, which will also have some performance benefits.
+- The Jetpack admin UI had some bugs that were causing some features to not display the correct active status, which are squashed now.
+- Cleaned up our markup to avoid XHTML validation errors.
+- Brought back a filter for the Widget Visibility feature that was accidentally removed.
+- Managing your comments and comment authors more reliable from WordPress.com.
+
+## [5.2.1] - 2017-08-02
+### Bug fixes
+- Solves an issue that caused widgets to lose their content when saved in WP Admin or Customizer.
+
+## [5.2] - 2017-08-01
+### Major Enhancements
+- Contact Forms now sports a fancy new interface that allows you to visually compose your form in the editor.
+- We have a new and slick way to showcase and explain the features we recommend to activate to new users.
+
+### Enhancements
+- Reduced 500kb from plugin zip file, which means faster updates.
+- Refactored and reduced code for Comment Likes so it's faster and lighter.
+
+### Bug fixes
+- An inconsistency experienced in WordPress.com dashboard when Related Posts settings were set in the local site's WP Admin is now fixed.
+- Fixed a 404 when loading Open Sans font from a stylesheet plus now it's only enqueued if it will be used.
+- Solve PHP warnings when Image widget wasn't migrated.
+
+## [5.1] - 2017-07-05
+### Major Enhancements
+- You and your readers can now show appreciation to particularly clever comments with the new Comment Likes feature.
+
+### Enhancements
+- Quickly visit your current site's front-end directly from the Masterbar's new "View Site" item.
+- Site data fetch from /me/sites REST API endpoint now includes `blog_public` in the list of returned options.
+- The Flickr widget now automatically displays images in a grid if there's enough room.
+- E-mail sharing is now disabled by default unless it's explicitly enabled by a filter or Akismet is active.
+
+### Compatibility Improvements
+- Updated instructions in Flickr widget to reflect recent changes to the Flickr UI.
+
+### Bug fixes
+- EU Cookie Law Banner cookie no longer cached.
+- WP Admin menu can now be accessed in mobile when Masterbar is displayed.
+- We now sync the `order_id` for `order_items` in older WooCommerce versions.
+- UI now handles VaultPress connection or registration problems gracefully.
+- Photon now works correctly with images uploaded before WordPress 2.7.
+
+## [5.0] - 2017-06-06
+### Enhancements
+- Several changes to the Jetpack dashboard and notices: alignment tweaks, code refactor, text simplification, and more.
+- Changes to the communication layer between your site and WordPress.com, to improve performance and allow you to do more to manage your site from WordPress.com.
+- Social menu gets icons for Etsy, Meetup, 500px, and Goodreads.
+- Jetpack data sync now better supports WordPress updates, themes changes, widgets, and multisite networks.
+- Video is updated to be fully compatible with the upcoming Media Widget.
+- Force secure WordPress.com API requests for request body, remove deprecated stats methods, and add new endpoints for post listing and user invitations.
+- Jetpack's Command Line tools can now output information about the primary Jetpack site owner. Try `wp jetpack status`!
+- Custom CSS now supports the `animation-fill-mode`, `fill`, and `stroke` properties.
+- Remove the "Menus" item from the WordPress.com toolbar for parity with the toolbar on WordPress.com.
+- Improve the display of the Omnisearch results page on sites using an RTL language.
+- Trim any white space when adding new email address in the Contact Info Widget.
+- Improve the look of your recipes in search engine result pages, when you use the Recipe shortcode.
+
+### Compatibility Improvements
+- Improve the connection process for end users and hosts.
+- Improve compatibility of Jetpack data sync with WooCommerce and Pet Manager plugins.
+- Make sure Jetpack's SEO Tools don't conflict with other SEO plugins that may already be active on the site, like Yoast SEO or All In One SEO Pack.
+
+### Bug Fixes
+- Add a "Set Up" button when a Personal plan is purchased, but VaultPress isn't active yet.
+- When the Ads feature is active, do not display Ads in RSS feeds.
+- Comments do not use Photon for Facebook and Twitter avatars and now avoid non-secure warnings when submitting comments on a HTTP site in Safari.
+- Contact form emails are now sent in a way that ensures they are correctly rendered as HTML.
+- Properly print the full list of modules when using the sync command in Jetpack's Command Line Interface (CLI).
+- Avoid errors when reordering a lot of Restaurant menu items at once.
+- Add a mechanism to detect broken connection states and resolve them.
+- Autosaves can now be restored as Markdown.
+- Photon no longer conflicts with Facebook's CDN, local images, and plugins that customize reponsive images.
+- Avoid potential PHP notice in Publicize.
+- Fix bad jQuery selector in Presentations shortcode.
+- Avoid fatal errors for Social Links on sites running PHP 7.1.
+- Properly escape button attribute in spellchecker.
+- Avoid PHP notices for stats on some sites when user roles are not attributed properly.
+- No longer attempt to sync options that do not exist and avoid fatal errors when de/activating plugins.
+- Avoid errors when Social Menu functions have already been defined in the theme or in another plugin.
+- VideoPress media items now always return their unique ID, and do not trigger any PHP notice.
+- Fix style of the EU Cookie Law Widget on themes with specific positioning.
+- Use correct time constant to define an hour in Upcoming Events Widget.
+- Avoid HTML encoding issues in sitemaps.
+
+## [4.9] - 2017-05-02
+### Major Enhancements
+- New "EU Cookie Law Banner", Flickr, and "Internet Defense League" widgets.
+
+### Slightly Less Exciting Enhancements
+- Success notices are automatically dismissed after a short period.
+- Removed unused code from "My Jetpack" interface and deprecated an XML-RPC method.
+- Contact Form now adds display names to email addresses in the `To` header.
+- Added an updated multiple unit tests increasing code coverage.
+- Development mode now also shows module list.
+- Updated the list of locales available in Jetpack.
+- Plugin auto-updates only triggered from WordPress.com and now trigger WordPress' maintenance mode.
+
+### Performance Improvements
+- Record comment content modifications and moderation events to make sure comments are always up to date on WordPress.com.
+- Sync post deletions, changes to sidebar, user events (addition, removal, and update) and theme installation.
+- We now distinguish between a new and an updated attachment.
+- Sync plugin and theme names when a related event is triggered including theme updates.
+
+### Compatibility Improvements
+- Protect avoid conflicts with other plugins hooking into the log in form.
+- Contact Form not auto-activated when Ninja Forms is active.
+- WordPess.com REST API now allows `HTTP PUT` requests.
+
+### Bug Fixes
+- Fixed wording in Post By Email button when no email address has been generated.
+- Fixed a notice in the subscription widget in PHP 7.1
+- Properly display VaultPress notices in the Jetpack dashboard.
+- VideoPress now included in search results for "video" and fixed positioning of search icon on mobile screens.
+- Protect supports IPv6 addresses properly.
+- Dashboard avoids API requests being cached on some hosts and avoids errors when Spellchecker is inactive.
+- Contact Form message content type is now set properly to restore compatibility with email plugins.
+- Ads not displayed in the portfolio projects custom content type.
+- Display all sites available in a network, even on large multisite installations.
+- Featured Image is always used in tweets posted via Publicize.
+- Avoid fatal errors when the exclusion parameter in Related Posts is not a string.
+- Allow the removal of all custom title settings in the SEO feature.
+- Make sure images are not distorted when Tiled Galleries uses Photon.
+- Avoid PHP warnings and errors in the Stats dashboard on Multisite.
+- Avoid errors when the Jetpack plugin is deleted.
+
+## [4.8.2] - 2017-04-07
+### Bug Fixes
+- Fixed a bug that prevented activating/deactivating of some features in PHP versions below 5.4.
+- Removed an unused function that was also incompatible with PHP versions below 5.4.
+- Fixed a bug that was causing a blank Jetpack admin area.
+
+## [4.8.1] - 2017-04-05
+### Bug Fixes
+- An incompatibility with PHP versions lower than 5.4 was introduced in the last release, causing a fatal error and we've immediately fixed this.
+- Sitemaps: Some plugins were relying on a function that was removed in the last release, which has been fixed.
+- General: Clicking on the info icon in the settings area will no longer jump to the top of the page.
+- General: The Anti-spam card will always display the correct status in the Jetpack dashboard.
+
+## [4.8] - 2017-04-04
+### Major Enhancements
+- Easier to navigate Jetpack's feature settings in your dashboard and WordPress.com.
+- New WordPress.com Toolbar provides quick access to site management, stats, and other services.
+- New MailChimp Subscribe Popup widget.
+- Sitemaps are faster and now support sites with a very large amount of posts.
+- Contact Form now has a plain-text alternative and better avoids spam filters.
+- Debug form includes extra information to better prioritize your support requests.
+- Photon can now be used within the dashboard, and supports bbPress topics and replies.
+
+### Slightly Less Exciting Enhancements
+- Improved previously confusing wording in Stats dashboard, and Featured Content options.
+- You can now embed Apple Keynotes straight from icloud.com in your posts and pages.
+- Changed Infinite Scroll button text on taxonomy page and added a new filter to short-circuit the `is_last_batch()` method.
+- Open Graph now uses transients to save image IDs.
+- You can now use full URLs in the Social Media Icons widget.
+- Milestone widget now allows custom links to open in a new window.
+- VideoPress videos can be used as headers in themes that support it, like Twenty Seventeen.
+- Extracted the timezone offset method from the Upcoming Events widget so it can be used by other features.
+
+### Performance Improvements
+- Database load is reduced during updates on large sites with multiple servers by retaining hashes for current and current-1 versions.
+- Disk storage is reduced on large multisite networks by storing the `jetpack_file_data` option in the `wp_sitemeta` table.
+- Jetpack plan data now uses the WordPress.com REST API.
+- Slovakian language files now rely on WordPress.org's language packs.
+
+### Accessibility Improvements
+- Improved post details clipping for better screen reader support.
+- Updated custom language packs for multiple languages.
+
+### Security Improvements
+- We now avoid path disclosure via cookies in PHP error messages.
+
+### Compatibility Improvements
+- Removed deprecated functions `get_theme` and `get_current_theme`.
+- Publicize now works with third-party plugins like WP Recipe Maker.
+- Open Graph Meta Tags are now enabled when you use the "Head, Footer and Post Injections" plugin.
+- Better support for WooCommerce data sync and backup.
+- We now also sync the `sync_via_cron` setting, the user's chosen language, and WP Super Cache's globals and constants.
+- We no longer sync post types from the WordPress Automatic Plugin and RSS AutoPilot to avoid synchronization issues.
+- Sync settings can now be edited from the WordPress.com REST API to better troubleshoot sync issues.
+
+### Bug Fixes
+- Gravatar is always displayed in Settings.
+- Submenu items always use relative links.
+- Contact Form avoids PHP notices when using the form in a Text widget.
+- Content Options now correctly displays single characters word count on sites with multibyte languages.
+- Administrator area translations fixed for several languages.
+- Added proper support for Formal/Informal translation versions for languages that support them.
+- Site Icons are always used as fallback Open Graph Image tags.
+- Protect removes port number when server returns a port alongside a stored IP address.
+- Filters ensure that more than 1,024 posts can be excluded from Related Posts.
+- When the email is already subscribed we now show the correct notification in the subscription form.
+- When using the Email sharing button, we now avoid syntax errors due to unexpected characters in the from name.
+- Remove deprecated `jetpack_publicize_post` action.
+- VideoPress now avoids PHP Notices when fetching video information.
+- Instagram base URL now uses `www` in the Social Media Icons widget.
+- All values entered in Facebook Page Plugin widget settings are now escaped.
+- Widget Visibility now avoids memory issues on sites with a lot of registered users.
+
+## [4.7.1] - 2017-03-14
+### Bug Fixes
+- Carousel: avoid javascript errors that may cause issues with Slideshows or Tiled Galleries.
+- Markdown: always enable Markdown for posts whenever the module is active.
+- Sharing: make sure that sharing buttons open in a small pop-up instead of a separate window.
+- SSO: Avoid token or nonce errors when trying to log in to your site via the Secure Sign On option.
+- VideoPress: add in the ability to get video thumbnails from the WordPress.com REST API.
+- Widgets: improve rendering of the Image Widget via Photon.
+- Widget Visibility: avoid empty widget visibility rules after updating to Jetpack 4.7.
+- Widget Visibility: restore the option to make widgets appear on archive pages of different Custom Post Types.
+- Widget Visibility: migrate widget visibility settings to the new major Page rule for Custom Post Types.
+- Widget Visibility: add missing CSS for widget visibility settings on sites using an RTL language.
+
+## [4.7] - 2017-03-07
+### Enhancements
+- Quickly jump to post specific stats on WordPress.com with a new link.
+- We've added more information to our debug tools to improve your support experience.
+- New HTML5 versions of our house ads are out.
+- Display custom copyright EXIF information in the Carousel with this new filter.
+- We've highlighted the ability to export Contact Form feedback as it was being overlooked.
+- If you have images on WordPress.com we're going to skip using Photon when the images include resize parameters.
+- It is now possible to use the Sharing filter to customize the emails sent from the Email Sharing button.
+- We've updated the library powering the Print link in the Recipe shortcode.
+- Customize the speed and display of your slideshows with new Slideshow shortcode filters.
+- The Twitch.tv shortcode now uses Twitch's new embedded player.
+- Social Menus now come with the option to use SVG icons.
+- Customize the content of the Display Posts Widget with a new filter.
+- We've added a new email field to the Contact Info Widget.
+- The Image and the Text widgets now use Photon if it is enabled.
+- The WordPress.com REST API got several updates including using `register_rest_route()` consistently for registering, new date and time format settings, a filter for theme info results, new links and endpoints, and more.
+- We cleaned up the Google+ Shortcode JS library and added a way to filter the SlideShare shortcode.
+
+### Performance Improvements
+- Experience better performance with single page load caching of the media summary.
+- We made some improvements to avoid slow queries on sites with thousands of images.
+- The Top Posts widget now utilizes an endpoint from the WP.com REST API improving performance.
+- Improve development mode performance by only calling `site_url()` once.
+- We rewrote the way major/minor rules lists are generated to save bandwidth, and memory for sites using Widget Visibility.
+- We've removed sync options that weren't needed to save memory during the sync process.
+
+### Accessibility
+- We've improved the highlight of the stats range for a better visual experience and to make it consistent with other areas of the dashboard.
+- Added a missing label to one of the fields in the Email sharing dialog.
+- We've enabled keyboard focus styling in the new admin interface.
+- Increased padding to sharing buttons on mobile to avoid usability issues.
+- We've replaced Widget Visibility text labels with icons to improve usability on smaller devices.
+
+### Slightly Less Exciting Enhancements
+- We've added a filter to allow you to remove the Comment Form title.
+- The Development Mode notice got an update to include all possible options to activate Development mode.
+- Jetpack registration function got an update and cleanup.
+- A notice displayed to WooCommerce store owners now detects when WooCommerce Services is installed, but not active.
+- We've removed the Holiday Snow settings until you need them.
+- Improved Infinite Scroll settings to reduce confusion.
+- The HTML classes `infinite-scroll` and `neverending` are now applied using JS instead of PHP.
+- We've updated the support link appearing when you're locked out of your site.
+- New Unit Tests were added to make sure Publicize doesn't break when making changes to the Publicize process.
+- We've added a sync filter to allow customizing timeout.
+- The Top Posts widget now supports non-square image sizes.
+- Added the Video GUID to the media API endpoint.
+
+### Improved Compatibility
+- Fixed some W3C validation errors in Comments.
+- Infinite Scroll now works beautifully with the Twenty Seventeen Theme.
+- Translate new terms easier with an improvement to the translator comments.
+- We switched to use Core functions to retrieve the list of sites in a multisite network for more accurate results.
+- We added Product visibility to post meta whitelist, for better control of products displayed in Related Posts.
+- We no longer sync specific post meta data added by Postman or WP RSS Multi Importer to avoid performance issues during the sync process.
+- We're now avoiding conflicts with plugins adding the core Video upload library to the post editor.
+- Removed deprecated compatibility code for older versions of WordPress.
+- We had some Shortcode conflicts with WordPress Post embeds, but that's been fixed.
+
+### Bug Fixes
+- The Carousel `jp_carousel_load_for_images_linked_to_file` filter wasn't working well with Photon, this has been fixed.
+- Carousel is now working well when loaded from infinite scroll.
+- We removed double slashes from file paths in the Contact Form to avoid errors in specific server environments.
+- Fixed a problem where CSS was being stripped when migrating from Jetpack's Custom CSS to Core's CSS editor.
+- Our Debug Tool is now reporting the correct URL when WordPress lives in a subdirectory.
+- Found and fixed a PHP error when uninstalling Jetpack.
+- Infinite Scroll is no longer buggy when displaying the last page, and is more compatible with certain themes that were returning posts when there were none left to show.
+- We're now skipping Photon for .ashx files.
+- The Twitter character counter in Publicize got a fix to display info correctly.
+- Related Posts are now displaying correctly for everyone, and we brought back the `jetpack_sharing_headline_html` filter.
+- We've improved Sharing to render custom sharing services correctly, include Open Graph Meta Tags, and avoid JavaScript errors when jQuery is enqueued in the footer.
+- Synchronization scheduling issues have been resolved.
+- We're now trimming spaces in URLs for Image and Display Posts Widgets.
+- Widget Visibility wasn't playing nice on taxonomy pages, this is no longer the case.
+- The WordPress.com REST API received a couple of fixes to remove PHP errors when editing via the WordPress.com interface, authentication errors when using third-party apps, and permission errors when trying to preview edited posts in the WordPress.com editor.
+
+## [4.6] - 2017-02-07
+### New Features and Improvements
+- Enable Google Analytics without touching a line of code with this new Jetpack feature.
+
+### Performance Improvements
+- We've updated all outbound links to use HTTPS to improve performance and security.
+- Photon now leverages a new WordPress core function to improve performance a bit.
+
+### Enhancements
+- Keep an eye out for a note from WooCommerce on how your e-commerce store may benefit from our new USPS and CanadaPost shipping functionality.
+- We've added an error message if Publicize isn't functioning as it should be.
+- The Twitter Widget timeline now displays the tweet limit count as 20, prior to this it appeared to have no limit.
+
+### Slightly Less Exciting Enhancements
+- In an effort to help us better understand features that are being used, Twitter's timeline widget and Twitter's shortcodes now pass Jetpack's partner ID.
+- We've added new API endpoints allowing us to enable translation auto-updates and pull post rows and metadata for backups.
+- We're now retrieving all feature settings in the readable `/settings` endpoint.
+
+### Improved Compatibility
+- We've eliminated some notices and warnings when using Jetpack on a server running PHP 7.1 or on servers where `print_r()` is disabled.
+- Photon now avoids PHP notices when your site is using plugins that do srcset CDN replacement.
+- When the sharing options appear to be incorrect due to site configuration issues we force it to retrieve the right options avoiding potential fatal errors.
+- We've added some shortcode CSS and widget class names prefixes to avoid conflicts with other plugins.
+
+### Bug Fixes
+- Some sites were using illegal multibyte characters and failing to sync posts, this has been fixed.
+- IE11 was giving our admin layout a bit of a problem but we rectified that.
+- There were some PHP notices popping up when a site has no posts so we got rid of them.
+- The new Jetpack Ads feature will auto disable itself if your Jetpack plan doesn't support the feature.
+- We fixed a few PHP notices and warnings related to the Custom CSS feature.
+- The connection banner's "dismiss" icon was giving us a little trouble, but we got it fixed right up.
+- The Likes feature was showing a PHP notice when there was no $post object, this has been fixed.
+- We've brought back the Twitter Widget "noscrollbar" option.
+- We're now forcing only Photon URLs to HTTPS as your custom CDN URLs may use a different protocol.
+- If a Publicize connection is not shared with all users on the site, do not trigger Publicize for the other users.
+- Publicize was having trouble working with scheduled posts, this should be fixed now.
+- SSO may not have been displaying the login form when using JSON API authorization. Sorry about that, we've fixed it.
+- We've eliminated some PHP notices that were showing with some Shortcodes.
+- There was a Top Posts Widget image size issue when using list layouts, but is no longer causing issues.
+- We fixed some notices and warnings when updating data from the WordPress.com central interface.
+
+## [4.5] - 2017-01-17
+
+This release introduces a brand-new module, Jetpack Ads, a brand-new VideoPress feature, and a lot of new shortcodes and widgets.
+
+### Exciting New Features and Improvements
+- Generate revenue from your site with an all-new WordAds feature, which when enabled displays high-quality ads for your visitors.
+- Today we are proud to release a fully redesigned VideoPress interface for easy uploading, management, and add-free playback of your fantastic videos now fully integrated with your Jetpack Premium or Professional plans.
+- Spice up your sidebar with new widgets that display blog stats, author info, "Follow my blog" buttons, and even an event countdown.
+- Embed your amazing 360° photos with the VR shortcode
+- Link your visitors to your Tumblr or Twitch pages using the new icons in the Social Media Icons Widget.
+
+### Enhancements
+- Use the beautiful Jetpack carousel feature to display single images.
+- Turn on and update Related Posts right from the Customizer.
+- Customize the output of the Related Posts headline using a new filter.
+
+### Performance and Security Improvements
+- Your Custom CSS will now be served in a separate stylesheet when it is more than 2,000 characters.
+- Your Stats queries are now always being made over HTTPS.
+- Holiday Snow files now load in the footer, but rest assured the snow still falls from above.
+- We have improved Jetpack's synchronization process to support more plugins and use less resources.
+- The jQuery Cycle script used by slideshow galleries is now minified, resulting in faster loading times.
+
+### Slightly Less Exciting Enhancements
+- The JSON API now allows updating translations and alternative theme installation methods.
+- Public Custom Post Types are now automatically available via the WordPress.com REST API.
+- We've added a token-based authentication mechanism to the REST API in order for the site to be able to receive authenticated requests from WordPress.com.
+- Use `sync` commands in Jetpack's WP CLI.
+- You can now set the value for options directly in the Contact Form shortcode.
+- Updated some verbiage around IP Whitelisting on the Protect settings screen.
+- Custom sharing buttons got some new variables.
+- RIP blip.tv — we've removed your shortcode.
+- Improved Image and Display Posts Widget settings to provide more explanation and better error messages.
+- We've added a few new Content Options to the Customizer for supported themes.
+- Improved the Facebook Widget to avoid confusion when editing width and height settings.
+- Added and improved a few shortcodes.
+
+### Improved Compatibility
+- If your server is misconfigured and we can't get an IP address we're going to deactivate Protect and send you a notice so you're in the loop.
+- The WPML compatibility file wasn't loading at the right time, but we've fixed that.
+- We've improved compatibility with tools like Cavalcade to avoid stuck Cron jobs.
+- Some selected WooCommerce data (order items and order item meta) are now syncing to WordPress.com.
+
+### Bug Fixes
+- You'll notice numerous design improvements to the Jetpack UI.
+- Accessibility is important to us so we've made some improvements there.
+- Missing attachments in the Carousel were causing an infinite loop, but we've corrected that.
+- Eliminated a PHP Notice when running the CLI `wp jetpack` command.
+- PHP warnings in the Restaurant Menu Post type have seen their last day with us.
+- Fixed a bug that displayed the wrong connected user for up to 24 hours after they disconnected.
+- Removed a deprecated function to prevent notices when using Infinite Scroll in the Customizer.
+- Long titles in Jetpack widgets weren't looking so great, so we cleaned them up.
+- Before now you weren't able to create a child category from WordPress.com. Now you can!
+- Rogue colons were showing up in the related posts area on sites with the Twenty Fourteen and Twenty Sixteen themes.
+- Fixed a ReCaptcha error on the Email sharing button.
+- Confirmed Instagram embeds actually load when using Infinite Scroll.
+- Site Icons now display on the WordPress.com site management interface.
+- Set a default time limit of 30 seconds when sending sync requests via Cron.
+- Synchronized supported shortcodes on a site.
+- Fixed an issue where empty categories weren't showing with the Widget Visibility feature dropdown.
+- Fixed various little bugs when working with multiple widgets in the Customizer and in the Widgets admin screen.
+- Added a Translate Widget default title in case you haven't defined one.
+- The Top Posts Widget now avoids layout issues when using the Grid layout while displaying a post without an image.
+
+## [4.4.2] - 2016-12-06
+
+This release improves Jetpack compatibility with WordPress 4.7.
+
+### Compatibility changes
+- Custom CSS: Made the Custom CSS feature of Jetpack compatible with the CSS Customizer editor in WordPress 4.7.
+- Sync: improved compatibility with the wp-missed-schedule plugin.
+
+### Bug fixes
+- Featured Content: made sure there is no infinite loop when removing the featured tag from the tag list.
+- Admin: made sure help tabs are not being hidden.
+- Admin: made At a Glance page work nicely when there is no backup data yet.
+- Sync: now making sure that needed classes are loaded, preventing errors.
+- Sync: cleared out unneeded scheduled jobs.
+
+## [4.4.1] - 2016-11-22
+### Bug Fixes
+- Fixed an issue where some users with slower servers would get an error on
+ the Jetpack dashboard when `WP_DEBUG` was enabled.
+- Fixed an issue where users on a Jetpack Professional plan who were paying
+ monthly (as opposed to annually) wouldn’t be able to enable SEO Tools.
+
+## [4.4] - 2016-11-21
+### Enhancements
+- Additional unit tests have been added to improve Jetpack's development process and stability.
+- Custom post types have been added to the WP REST API output.
+- Many of the screenshots throughout the plugin have been replaced by SVGs in order to make Jetpack smaller.
+- New endpoints have been added to allow the installation of plugin and theme zip files via the API.
+- Twelve new filters to make Jetpack more extensible! See: http://wp.me/p5U9nj-2Ow.
+- New widget: "Google Translate" to allow users to translate your site into their own language.
+- New widget: "My Community" where you can see who recently interacted with your site.
+- One of the biggest issues facing Jetpack users for years now has been difficulties in moving sites from one domain name to another. This update makes strides towards improving that process.
+- Photon now uses HTTPS by default. Secure all the things!
+- There are now helpful hints throughout the admin interface to make Jetpack easier to use.
+- We now allow you to embed pins, boards and profiles from Pinterest.
+- We've added a new feature: SEO Tools, available to Jetpack Professional subscribers. You can read more about our plans here: https://jetpack.com/features/
+- We've made numerous improvements to the data sync process.
+
+### Bug Fixes
+- Fixed link to Akismet settings.
+- Improved compatibility between Infinite Scroll and WPML.
+- Move email notification settings back with the other email settings in the Discussion Settings.
+- Various minor performance/compatibility fixes.
+
+## 4.3.2 - 2016-10-13
+### Enhancements
+- Unsaved changes were getting lost when users were navigating away from settings so we put in a confirmation message to prevent this from happening.
+- We've stopped counting carousel views in stats by default, you can use the `jetpack_enable_carousel_stats` filter to enable counting them again.
+- Stats are now responding faster.
+- There were several improvements and repairs made to sync including additional endpoints, performance enhancements, whitelisted data, better decision making around when to sync information, and more.
+- Markdown now has a CSS class on footnotes.
+
+### Improved Compatibility
+- We've improved compatibility with Kinsta by automatically turning on Staging Mode for Jetpack when in a staging environment.
+
+### Bug Fixes
+- Several fixes have been made to sync to repair issues with Publicize, Notifications, and Subscriptions.
+- We removed PHP warnings by checking to make sure json language files like jetpack-en_US.json are readable before we load them.
+- We found an unused option in Gravatar Hovercard settings and removed it.
+- The correct support link is now being used to make it easier for you to connect with the Jetpack team if you need us.
+- The permissions check for plugin information retrieval was fixed as well.
+- Some plugins were adding content on outbound http requests causing an infinite loop we fixed this right up.
+- We removed some warnings that were occurring when translations didn't exist by adding a fallback.
+- We've added Moroccan Arabic translations, and switched to language packs for Croatian, Spanish (Chile) and Greek.
+- Sync was running into issues so we've limited dequeue time to 1/3 of PHP's max execution time, which has unclogged the problem.
+- We're now sending full and incremental queues separately so that a failure in one doesn't block the other.
+- There was a JavaScript enqueuing error with our Sharing feature that has been repaired.
+- The Top Posts widget now includes the ability to list attachment (media) pages.
+- We weren't building CPT links correctly resulting in bad navigation, which is now fixed.
+- We removed the form legend for default Tiled Gallery settings as it doesn't relate.
+- With shortcodes we now return early from processing them if no string is passed, as they are required.
+
+## 4.3.1 - 2016-09-08
+### Support Enhancements
+- We're now syncing data about hosts so that we can provide better support
+ when needed.
+- Minor update to inline docs to match version numbers.
+
+### Bug Fixes
+- Admin Page: fix error when Admin Page resources could not be fetched with
+ `wp_remote_get` due to unique host configurations.
+- Admin Page: fix error when Post By Email could not be enabled when the
+ browser's dev console was enabled.
+- Admin Page: make sure all translated strings are encoded properly.
+- Admin Page: only use POST requests for updating the state of Jetpack, to
+ avoid issues on servers not allowing PUT requests.
+- Admin Page: search icon no longer overlaps the global notices.
+- Admin Page: make sure that non-admins can also modify Spellchecking
+ settings.
+- Admin Page: check that a json language file like jetpack-en_US.json is
+ readable before loading its contents and thus avoid a PHP warning.
+- General: Improve random number generation for compatibility with more hosts.
+- General: Add deprecated PHP file (class.jetpack-landing-page.php) back as an
+ empty file, to avoid generating fatal errors on sites with aggressive caching.
+- General: Ensure concatenated CSS is generated for RTL languages.
+- Security: Ensure that all options are included on the security tab.
+- Stats: fix display for sites with pretty permalinks disabled.
+- Subscriptions: ensure that no email is sent when updating a published post.
+- Sync: To improve performance, add snapTW to the list of post meta data that
+ won't be synchronized for each post.
+- Sync: do not schedule a full sync after each import.
+- Verification Tools: in the Settings card, use appropriate link for each
+ service.
+
+## 4.3 - 2016-09-06
+### Exciting Performance and UI Improvements
+- We have launched the all new React powered interface, a year in the making,
+ designed to give you better control of your favorite Jetpack features.
+
+## 4.2.2 - 2016-08-19
+### Bug Fixes
+- We fixed the code which displays the Facebook share count to accomodate
+ Facebook's new data structure.
+- We fixed an issue which caused PHP notices to get logged for users of the
+ Twenty Fourteen theme.
+- We fixed an issue with the Minileven mobile theme which was preventing it
+ from loading.
+- Improved Sync performance.
+- Increase security by sanitizing a URL used in the SSO process.
+
+## 4.2.1 - 2016-08-17
+### Bug Fixes
+- We fixed a conflict between Jetpack and W3 Total Cache.
+- We fixed some issues with Publicize and Custom Post Types.
+- Very large Multisite networks with lots of users can now be synchronized
+ with WordPress.com.
+- We improved the synchronization process between your site and WordPress.com.
+
+## 4.2 - 2016-08-10
+### Performance Enhancements
+- We’ve improved Jetpack’s performance by making calls to the database more
+ efficient; essentially, Jetpack is doing less on each page load, making things
+ faster. #4281, #4316
+- We’ve ensured that every feature uses information that is up to date by
+ completely refactoring the way information was synchronized between your site
+ and WordPress.com.
+- We've improved the way Jetpack queries for information about features, which
+ results in less overall queries.
+
+### Exciting Feature and UI Improvements
+- We now track your visitor views of Carousel images in stats.
+- You can now customize advanced typographic settings like ligatures in the
+ Custom CSS editor with new support for the `font-feature-settings` property.
+- We’ve improved the experience when you don’t actually have enough posts to
+ Infinitely Scroll.
+- Our Contact Info Widget allows you to enter a Google Maps API Key which is
+ now required by Google if you want to display a map.
+
+### Security
+- We’re continuing our efforts to harden Jetpack security, by implementing the
+ `hash_equals()` function to avoid timing attacks when comparing strings. We
+ also improved security on CSVs exported from your contact form.
+
+### Slightly Less Exciting Feature Improvements
+- The Cartodb shortcode has been changed to match the new product name, Carto.
+- The YouTube shortcode now uses the content width defined by the theme when
+ available, even if an embed size was defined in an old version of WordPress.
+- Breadcrumbs now support hierarchical post types and taxonomies.
+- We’ve added the Portfolio Post Type to the WordPress.com REST API whitelist.
+- There are a few new parameters for the Dailymotion shortcode.
+
+### Improved Compatibility
+- We now work well with WP Stagecoach staging sites, so you should not see any
+ future impact on production sites.
+- We had some PHP notices popping up in the WooCommerce plugin wizard screen,
+ these are gone.
+
+### Bug Fixes
+- We stopped loading compatibility stylesheets on the default theme's singular
+ views for Infinite Scroll.
+- Debug tests forwarded through the contact form in the Jetpack Debug menu are
+ now successfully sent to the support team.
+- We’ve removed the PHP notices you might have seen when moderating comments.
+- There are no longer PHP notices cropping up when publishing via Cron.
+- We’ve fixed the official Sharing buttons so they now line up just right.
+- The PHP warnings of Sitemaps stylesheets have been eliminated.
+- We’ve done away with the warnings that appeared when Tonesque processes a
+ file which claims to be one filetype, but is actually another.
+- We’ve exterminated PHP notices that appeared when using Random Redirect, as
+ well as when the author wasn't set.
+
+## 4.1.1 - 2016-07-07
+### Bug Fixes
+- SSO: Use high-resolution Gravatar images on the log-in form on Retina
+ devices.
+- Publicize: improve reliability of Publicize when publishing new posts.
+
+## [4.1] - 2016-07-06
+### Performance Enhancements
+- Carousel no longer loads full-size images in the previous and next previews,
+ increasing the speed and performance of slideshows.
+- We’ve improved Jetpack’s performance by making calls to the database more
+ efficient; essentially, Jetpack is doing less on each page load, making things
+ faster.
+- We’ve improved Photon dev mode, eliminating unnecessary attempts to sync
+ images.
+
+### Exciting Feature and UI Improvements
+- A new look: SSO, redesigned and refactored, provides a new and improved
+ experience.
+- Tracking made simple: quickly view the number of unread feedback submissions
+ in your sidebar.
+- Getting support just got easier! Access improved self-help tools in the
+ Jetpack Debug menu.
+- Greater control over Infinite Scroll: pause and resume Infinite Scroll with
+ two new JavaScript methods.
+- Improved Sharing: we’ve swapped image icons for icon fonts and added
+ Telegram and WhatsApp buttons.
+- Untappd shortcode: now you can sip and share your favorite craft brews.
+ Cheers!
+- Recipes, revamped: we’ve added new recipe shortcodes and options to create
+ more detailed recipes.
+- Improved Gallery Widgets now use Photon to resize and serve images.
+
+### Security
+- We’re continuing our efforts to harden Jetpack security by implementing the
+ `hash_equals()` function in an effort to avoid timing attacks when comparing
+ strings.
+- We’ve made it easier to use SSL connections on ports `80` and `443`,
+ improving our ability to communicate with an increased number of secure
+ websites.
+- You will now receive a warning for any failed attempts when connecting your
+ website via SSL.
+
+### Slightly Less Exciting Feature Improvements
+- Updated the Infinite Scroll settings verbiage, which was a bit confusing.
+- Removed Jetpack Audio Shortcode, which is no longer in use.
+- Redesigned Jetpack banner notices to match core notification styles.
+- Added an icon on a connected Jetpack user’s profile page, next to their
+ name.
+- Added the ability to edit Portfolio custom-post-type options in the
+ Customizer.
+- Added a new filter called `jetpack_publicize_capability` which allows you to
+ override user role restrictions for Publicize.
+- Improved the connection process between Jetpack and WordPress.com making it
+ easier to start using Manage.
+- Updated the Top Posts Widget so you can use and display posts that are older
+ than 10 days.
+- Updated the Twitter Timeline Widget to support updates made by Twitter.
+- Improved the VideoPress Shortcode modal.
+- Updated VideoPress, which now defaults to HTML5 videos when the `freedom`
+ shortcode parameter is in use.
+- Improved how Jetpack syncs by removing mock options.
+- Updated the naming convention for feedback posts.
+- Updated several JSON API endpoints to match WordPress.com endpoints, added
+ support for custom taxonomies, and enabled trash as a valid status for the
+ post update endpoint.
+
+### Improved Compatibility
+- A community member found and fixed a compatibility issue with our Open Graph
+ Meta Tags and Bitly’s older plugin -- we now check to make sure we don’t
+ create conflicts.
+- We’ve fixed a rare scenario where an error would occur when other plugins or
+ sites were using the `JETPACK__GLOTPRESS_LOCALES_PATH` constant.
+
+### Bug Fixes
+- Comment avatars are now retrieved in a manner more consistent with the login
+ avatar, improving consistency and eliminating the possibility of a future bug.
+- We eliminated PHP notices that were appearing when Custom Content Types were
+ defined without labels or sections.
+- PHP memory limits were reached in rare cases when a website had thousands of
+ revisions of their Custom CSS. The issue is fixed -- happy editing!
+- jQuery deprecated the `size()` function -- as a result, we’ve stopped using
+ it as well.
+- A PHP notice popped up when plugins were updated from the WordPress.com
+ plugin management interface -- these notices will no longer appear.
+- We fixed a bug where Photon wasn’t providing the original size for images
+ that were being used outside of the post content.
+- We eliminated the PHP notices that displayed when posts with slideshows were
+ added to a sitemap.
+- We fixed an error that was showing up in Sitemaps when a website permalink
+ structure used `index.php`.
+- We eliminated JavaScript errors that displayed when tiled galleries were
+ viewed.
+- We fixed an issue where image dimensions weren’t properly saved when added
+ to a new widget.
+- Since Google Maps API keys are now required to use maps, we’ve updated the
+ Contact Info Widget to allow site owners to set up their keys.
+- We fixed a bug where multiple `display` properties weren’t able to be saved
+ in Custom CSS.
+
+## [4.0.4] - 2016-06-20
+### Security
+- Post By Email: Added an additional layer of security to prevent unauthorized
+ changes to Post By Email settings.
+- Likes: Fixed an XSS vulnerability in the Likes module.
+- REST API/Contact Form: We've eliminated unauthenticated access to Feedback
+ posts.
+
+### Feature Improvements
+- Customizing Protect: We've increased Protect’s response time and added a new
+ filter, `jetpack_protect_connect_timeout`, reducing the likelihood of seeing
+ the fall back form.
+- Connection Process: Your site url and icon are displayed on the Jetpack
+ connection screens to help improve communication.
+- Jetpack for Multisite: It’s now easier to manage your Jetpack connections on
+ the network admin screen.
+- Photon Responsive Image Improvements: We’re now auto-generating new scrset
+ options, improving how images served from Photon are handled.
+- Developing on Kinsta: A new constant has been added to improve developing
+ with Jetpack on a staging environment hosted with Kinsta.
+
+### Jetpack UI Improvements
+- Better Access to Our Support Team: We wanted to make it easier for you to
+ get help so we added a contact form in the admin that links directly to our
+ Jetpack Support Team.
+
+### Improved Compatibility
+- We’ve stopped adding Open Graph Meta tags if you’re using the SEO Framework
+ plugin.
+- Having both GlotPress and Jetpack active at the same time was causing
+ errors, we’ve eliminated them.
+
+### Bug Fixes
+- Fixed the handling of special characters like ampersands in Carousel Titles
+ and Descriptions.
+- When visitors tried to view a Carousel image with a hash in the URL, a
+ JavaScript error would occur; we’ve fixed that.
+- Jetpack Comment form fields now use the default language you’ve set for
+ WordPress, previously the verbiage was always in English.
+- Custom CSS wasn’t handling slashes and quotes properly; we’ve squashed that
+ bug.
+- There were some rare cases where PHP notices were popping up when a Contact
+ Form was submitted. These instances have been identified and eliminated.
+- We’ve replaced a bit of code with a Jetpack native function to fix a bug
+ that was breaking things during an API request for available updates.
+- We accidentally removed the ability for Open Graph to select images from
+ slideshows, it’s up and running again.
+- There was an issue where Open Graph meta tags weren’t being set when your
+ homepage is a “Static Front Page”, it’s working again.
+- In rare cases when developers were customizing Photon they were seeing a PHP
+ notice when arguments were passed as a string rather than an array. This has
+ been fixed.
+- We’ve fixed an issue where Protect’s backup math form wasn’t showing on
+ custom front end login forms.
+- When setting up WooCommerce you might have seen a Related Posts notice which
+ didn’t belong. We’ve eliminated them.
+- If you’ve been using our sharing tool with unofficial sharing buttons you
+ might have noticed your sharing numbers were missing. They’re now back.
+- In unique situations where special characters were used in sitemap
+ stylesheets an error would occur; that has been remedied.
+- We’ve fixed a problem with mismatching HTML tags in our Spelling and Grammar
+ feature.
+- We’ve ensured that the `jetpack_disable_twitter_cards` filter actually
+ removes Twitter cards.
+- We’ve fixed some JavaScript errors that would crop up if you were editing a
+ custom-post-type post that didn’t support the core media editor — say that 10
+ times fast.
+- We had some JavaScript errors when you were using the customizer to modify
+ widgets. They are no longer with us.
+
+## [4.0.3] - 2016-05-26
+
+- Important security update. Please upgrade immediately.
+
+## 4.0.2 - 2016-04-21
+### Bug Fix
+- Addresses an issue where Jetpack 4.0 caused a fatal error on sites with
+ specific configurations.
+
+## [4.0] - 2016-04-20
+### Performance Enhancements
+- Protect: the routine that verifies your site is protected from brute-force
+ attacks got some love and is more efficient.
+- Contact Forms: cleaning the database of spam form submission records is more
+ efficient.
+
+### Feature Improvements
+- VideoPress: edit your VideoPress shortcode in the editor with a fancy new
+ modal options window.
+- Custom Content Types are now classier: a new CSS class on Testimonial
+ featured images — has-testimonial-thumbnail — allows you to customize Jetpack
+ custom post types as you see fit.
+- Sharing: social icons are now placed under the "add to cart” singular
+ product views in WooCommerce, making it easier for customers to share your
+ products on social media.
+- Theme Tools: search engines will now have an easier time knowing what page
+ they are on, and how that page relates to the other pages in your site
+ hierarchy with improved schema.org microdata for breadcrumbs.
+- Widget Visibility: now you can select widgets and when to show or hide them
+ right from custom post type single and archive views.
+
+### Jetpack UI Improvements
+- What’s in it for me? We’ve done a better job explaining the benefits of
+ Jetpack and connecting it to WordPress.com.
+- Shortcodes: handy links to shortcode documentation convey the types of media
+ you can quickly and safely embed.
+- Widgets: As of WordPress 4.5, Jetpack widgets now refresh in the customizer
+ without making you refresh the entire page. Live previews, yes indeed.
+
+### Bug Fixes
+- Comments: we fixed a mistake where a comment subscription checkbox appeared
+ on custom post types — despite the fact you couldn’t actually subscribe to
+ those types of comments. Our bad.
+- Contact Forms: we fixed a bug where the telephone field (which can only be
+ added manually) rendered incorrectly — breaking some forms in the process.
+- General: we blocked direct access to the Jetpack_IXR_Client class which
+ caused fatal PHP errors in some server setups.
+- Shortcodes: we removed the frameborder attribute in the YouTube embed code.
+ It was deprecated in HTML 5.
+- Unminified responsive-videos.min.js in order to address a false positive
+ virus alert in ClamAV. Expect it to be re-minified in 4.0.3 once we resolve
+ the issue with ClamAV.
+
+## [3.9.6] - 2016-03-31
+
+Bug fix: Shortcodes: fixed incorrect Vimeo embed logic.
+
+## [3.9.5] - 2016-03-31
+
+This release features several WordPress 4.5 compatibility changes that make
+several Jetpack features work properly in the Customizer view. Big thanks to
+@westonruter for contributing the code!
+
+### Other enhancements and bug fixes
+- Contact Form: no longer calling the datepicker method if it's not available.
+- SSO: settings checkboxes now honor filters and constants that restrict
+ certain sign-in modes.
+- Shortcodes: fixed a problem with Gist fetching.
+- Shortcodes: fixed invalid HTML5 markup in YouTube embed code.
+- Shortcodes: made the Vimeo links work properly in case of multiple mixed
+ uses in one post.
+
+## [3.9.4] - 2016-03-10
+
+Bug fix: Shortcodes: Addresses an issue with embedded Vimeo content
+
+## [3.9.3] - 2016-03-09
+### Featured
+- Site Logo now supports Custom Logo - a theme tool to be introduced in
+ WordPress 4.5.
+
+### Enhancements
+- Carousel: Made the full size image URL use a Photon URL if enabled.
+- Comments: Removed an unnecessary redirect by always connecting via HTTPS.
+- General: Added new actions that fire before automatic updates.
+- Infinite Scroll: Introduced a later filter for settings.
+- Infinite Scroll: Removed code that is now redundant due to WordPress Core.
+- Markdown: Removed deprecated markup from the output.
+- Publicize: Improved handling of featured images in posts.
+- Shortcodes: Added houzz.com support.
+- Sitemaps: Added a language attribute to the news sitemap.
+- Sitemaps: Improved the image retrieval mechanism for posts.
+- Widgets: Added new filters in the Top Posts Widget code.
+- Widgets: Cleaned up the CSS for the Subscription widget.
+
+### Bug Fixes
+- Comments: No longer reloading the page on clicking the reply button.
+- Contact Forms: Fixed a fatal error on missing metadata.
+- Contact Forms: Fixed message formatting for plaintext email clients.
+- Shortcodes: Fixed dimensions of Vimeo embeds in certain cases.
+- Shortcodes: Fixed warnings and allowed shorter style Vimeo embeds.
+- Shortcodes: Removed alignment markup from feeds for YouTube embeds.
+- Sitemaps: Made URLs display properly according to the permalink structure.
+- Stats: Fixed non-XHTML-valid markup.
+- Widgets: No longer showing errors when adding new instances of the Display
+ Post Widget.
+
+## [3.9.2] - 2016-02-25
+
+Maintenance and Security Release
+
+### Featured
+- Beautiful Math: fix XSS vulnerability when parsing LaTeX markup within HTML
+ elements.
+- Contact Form: do not save private site credentials in post meta. Thanks to
+ @visualdatasolutions.
+
+### Enhancements
+- Contact Info: Added two hooks for adding arbitrary information to the
+ widget.
+- Development: Added new possibilities for REST API debugging.
+- Embeds: Added Codepen embeds support.
+- Embeds: Added Sketchfab embeds support.
+- I18n: Added support for translation packages for the Finnish language.
+- Markdown: Added a filter to enable skipping processing of developer supplied
+ patterns.
+- Related Posts: Added a filter to change heading markup.
+- Staging: Added a constant to force staging mode.
+- Staging: Added a notice to make staging mode more obvious.
+- Top Posts Widget: Added a new `[jetpack_top_posts_widget]` shortcode.
+
+### Bug Fixes
+- Custom Post Types: Nova: Fixed a JavaScript bug on adding multiple items.
+- Embeds: Allowing embeds from Instagram with a www in an URL.
+- General: Fixed untranslated module names on the Settings screen.
+- General: Improved module descriptions and fixed misleading or broken links
+ in descriptions.
+- General: No more notices on module deprecation on older installations.
+- General: Only showing one prompt to enable Photon when uploading several new
+ images.
+- Multisite: Fixed a problem with site lists for older WordPress
+ installations.
+- OpenGraph: Fixed a bug to properly fallback to a WordPress Site Icon image.
+- Photon: Improve performance for images over a secure connection.
+- Photon: No longer including links from data attributes.
+- Publicize: Fixed problems for en_AU and en_CA locales with Facebook.
+- Related Posts: Fixed a notice on certain requests.
+- Site Logo: It's no longer possible to choose a non-image.
+- Widget Visibility: No longer confusing page IDs and titles in certain cases.
+
+## 3.9.1 - 2016-01-21
+### Bug Fixes
+- General: Addresses a namespacing issue which was causing conflicts on some
+ hosting providers.
+- Sitemaps: Added MSM-Sitemap to the list of plugins which, if installed, will
+ prevent Jetpack Sitemaps from being used
+
+## [3.9] - 2016-01-20
+### Featured
+- New sharing button: let users share your content using Skype.
+- New "Social Menu" theme tool that uses Genericons to display Social Links.
+- Sitemap support for better search engine indexing.
+
+### Enhancements
+- Contact Form: Added a new filter that allows you to change the "Required"
+ text.
+- General: Hidden archived sites in multisite site list.
+- General: Removed several function calls that would be deprecated in
+ WordPress 4.5.
+- Infinite Scroll: Added a new filter to check if Infinite Scroll has been
+ triggered.
+- Likes: Added a conditional to ensure WordPress 4.5 compatibility.
+- Photon: Improved compatibility with responsive images feature added in
+ WordPress 4.4.
+- Photon: Now enabled by default on sites using HTTPS.
+- REST API: Extended the ability to manage users from WordPress.com.
+- REST API: Increased the performance of the plugin update endpoint.
+- Responsive Videos: Centering videos when they are wrapped in a centered
+ paragraph.
+- Sharing: Added a new filter to customize the default OpenGraph description.
+- Shortcodes: Added Wistia oEmbed support.
+- Shortcodes: Bandcamp: Added support for new attributes for tracks approved
+ by artists.
+- Shortcodes: Improved Medium path format recognition.
+- Slideshow: Improved compatibility with older IE versions.
+- Staging: Improved staging environment detection.
+- Widgets: Added "width" option to the Facebook Page widget.
+- Widgets: Added size parameters to tags in Top Posts to avoid warnings.
+- Widgets: Introduced major performance and stability improvements to the
+ Display Posts Widget.
+- Widgets: Refactored to remove deprecated code patterns.
+
+### Bug Fixes
+- AtD: Fixed replacing emojis with images in the text editor in Chrome.
+- AtD: Made pre tags be excluded from spell-checking.
+- CPT: Not registering Nova if it is already registered.
+- Carousel: Fixed a bug where full size images were not always served by
+ Photon.
+- Carousel: Reverted a change that broke direct link to carousel image.
+- Contact Form: Fixed a CSV export bug with multiple choice questions.
+- Contact Form: Fixed notices when creating feedback entries without a contact
+ form.
+- General: Fixed a scrolling bug on modal window closing.
+- Infinite Scroll: Disabled in the Customizer when previewing a non-active
+ theme.
+- Publicize: Fixed notices appearing with bbPress or BuddyPress installed.
+- Publicize: Showing options only to users that can change them.
+- Related Posts: Fixed incorrect URLs generated for posts.
+- Responsive Videos: Fixed warnings in debug mode.
+- Shortcodes: Bandcamp: Fixed a problem with large track IDs.
+- Shortcodes: Fixed a problem with dynamic Gist embeds.
+- Stats: Fixed dashboard widget resize problem.
+- Widgets: Added a fallback to English US when a locale isn't supported by
+ Facebook.
+- Widgets: Fixed layout for Twenty Sixteen.
+
+## [3.8.2] - 2015-12-17
+
+Jetpack 3.8.2 is here to squash a few annoying bugs.
+
+### Bug Fixes
+- Photon: Fixed a bug where some custom thumbnail image sizes weren't being
+ sized properly.
+- Shortcodes: Fixed an incompatibility with how WordPress renders the YouTube
+ shortcode.
+- Shortcodes: Tightened up security in the Wufoo shortcode.
+- Image Widget: Now shows the caption.
+- Fixed typos in inline docs.
+- Very minor fixes to: Carousel, Publicize, Google+, and Infinite Scroll.
+
+## [3.8.1] - 2015-12-01
+
+Jetpack 3.8.1 is here and is fully compatible with WordPress 4.4.
+
+### Featured
+- Photon + Responsive Images FTW.
+- Fully compatible with Twenty Sixteen.
+- More accessibility enhancements.
+- Dropped some weight by optimizing Jetpack's plugin images.
+
+### Enhancements
+- Comments: filter to allow disabling comments per post type.
+
+### Bug Fixes
+- Carousel: Stop page from scrolling to top when Carousel is closed.
+- Carousel: Browser compatibility fixes with older version of IE.
+- Markdown: Fixed a bug that would strip markdown when saving in "Quick Edit"
+ mode.
+- Single Sign On: Fixed login always redirecting to the admin dashboard.
+- Subscriptions: Filter to allow per-post emails fixed for use in themes.
+
+## [3.8.0] - 2015-11-04
+
+We're happy to introduce Jetpack 3.8, which has significant contributions from
+the Jetpack community. Read more about it here: http://wp.me/p1moTy-1VN
+
+### Feature enhancements
+- New Google+ Badge Widget. Display your profile, page, or community Google+
+ badge.
+- New twitch.tv shortcode embeds. Display a Twitch.tv stream in your posts.
+- Accessibility enhancements.
+- A handful of new filters to allow further customization of Jetpack.
+
+### Other enhancements
+- Carousel: Added support to retrieve image dimensions from an image url.
+- Carousel: Simpler algorithm to detect shutter speeds.
+- Contact Form: New "Checkbox with Multiple Items" field available in the
+ Contact Form.
+- Contact Form: Allow pre-filling form fields with URL parameters.
+- Contact Form: Better styling of the emailed form responses.
+- Performance: Replaced some custom-built functions with core's native
+ functions.
+- Related Posts: New filter to add post classes to post's container class.
+- Sharing: New filter to choose if sharing meta box should be shown.
+- Sharing: New filter to allow sharing button markup to be editable.
+- Sharing: New filter to allow you to specify a custom Facebook app ID.
+- Social Media Icons Widget: Added option for YouTube username as well as
+ Channel ID.
+- Social Media Icons Widget: Added Google+ icon.
+- Social Media Icons Widget: New filter to allow you to add your own social
+ media icons and links.
+- Subscriptions: Better errors to your visitors if their subscription sign-up
+ fails.
+- Subscriptions: Removed "widget" class from Subs shortcode form.
+
+### Bug fixes
+- Carousel: Fixed browser back/forward button behavior.
+- Contact Form: Allow the email field to be set to empty when building form in
+ post editor.
+- Facebook Likebox Widget: Fixed an issue where some languages were not
+ translating.
+- Facebook Likebox Widget: Return a language when none found.
+- General: Fixed some minor styling issues in the Jetpack admin areas.
+- General: Add missing parameter to the_title filter call.
+- General: Prevent scrolling of body when the Jetpack admin modals are opened.
+- General: Update doc to reflect that Open Graph filter
+ jetpack_enable_opengraph has been deprecated in favor of
+ jetpack_enable_open_graph.
+- Infinite Scroll: Fixed an error that sometimes occurred that would stop
+ posts from loading.
+- JSON API: Fixed some undefined notices when publishing a post with the API.
+- Open Graph: Fixed bug where facebook description content was sometimes being
+ polluted by a filter.
+- Sharing: Use full SSL Pinterest url instead of protocol relative.
+- Sharing: Fixed plus signs appearing in tweets shared from iOS.
+- Shortcodes: Prefer HTTPS for video embeds to avoid mixed content warnings.
+- Subscriptions Widget: Fix HTML Validation error.
+- Theme Tools: Check oEmbeds for the presence of a video before adding the
+ responsive videos filter.
+- Tiled Galleries: Add image alt attribute if there is a title set. This was
+ breaking some screen reader functionality.
+
+## [3.7.2] - 2015-09-29
+
+- Bug Fix: REST API: Fixed an error when saving drafts and publishing posts
+
+## [3.7.1] - 2015-09-28
+
+- Enhancement: General: Added inline documentation for various filters and
+ functions
+- Enhancement: General: Added custom capabilities for module management on
+ multi-site installs
+- Enhancement: General: Cleaned up old changelog entries from readme
+- Enhancement: General: Cleaned up unused i18n textdomains
+- Enhancement: General: Updated the new settings page to look better in
+ various translations
+- Enhancement: REST API: Added new endpoints to manage users
+- Enhancement: Sharing: Updated the Google logo
+- Bug Fix: Carousel: Page scroll no longer disappears after closing the
+ carousel
+- Bug Fix: Contact Form: Fields are sent and displayed in the correct order
+- Bug Fix: Contact Form: No longer showing a notice on AJAX actions in
+ feedback lists
+- Bug Fix: Contact Form: Made using more than two notification emails possible
+- Bug Fix: Contact Form: Mitigate a potential stored XSS vulnerability. Thanks
+ to Marc-Alexandre Montpas (Sucuri)
+- Bug Fix: General: Mitigate a potential information disclosure. Thanks to
+ Jaime Delgado Horna
+- Bug Fix: General: Fixed a locale error in the notifications popout
+- Bug Fix: General: Fixed a possible fatal error in the client area
+- Bug Fix: General: Fixed compatibility issues with certain use cases
+- Bug Fix: General: Disabled connection warnings for multisites with domain
+ mapping
+- Bug Fix: General: Updated translations for correct link display in admin
+ notices
+- Bug Fix: REST API: Fixed a fatal error in one of the endpoints
+- Bug Fix: Sharing: Fixed OpenGraph tags for Instagram embeds
+- Bug Fix: Sharing: Fixed compatibility issues with bbPress
+- Bug Fix: Widget Visibility: Fixed a fatal error in case of a missing tag
+
+## [3.7.0] - 2015-09-09
+### Feature Enhancements
+- New admin page interface to easily configure Jetpack
+- Added staging site support for testing a connected Jetpack site
+
+### Additional changes
+- Enhancement: CLI: Added a possibility to change all options with
+ confirmation for some of them
+- Enhancement: Gallery: Added filters to allow new gallery types to be
+ declared
+- Enhancement: General: Added inline documentation for actions, filters, etc.
+- Enhancement: General: Changed class variable declarations keyword from var
+ to public
+- Enhancement: General: Made the Settings page module toggle buttons more
+ accessible
+- Enhancement: General: The admin bar now loads new notifications popout
+- Enhancement: General: Renamed some modules to avoid redundant prefixes
+- Enhancement: General: Switched to the WordPress Core's spinner image
+- Enhancement: General: Updated the bot list
+- Enhancement: Manage: Added the ability to activate a network-wide plugin on
+ a single site from WordPress.com
+- Enhancement: Photon: Added a way to check image URLs against custom domains
+- Enhancement: Photon: Added prompts on the media upload page telling the user
+ about Photon
+- Enhancement: Publicize: Added width and height values to OpenGraph tags for
+ default images
+- Enhancement: Related Posts: Added a filter to allow disabling nofollow
+- Enhancement: REST API: Added new API endpoints to extend API functionality
+- Enhancement: REST API: Added new fields to existing API endpoints
+- Enhancement: Sharing: Added a possibility to opt-out of sharing for a single
+ post
+- Enhancement: Sharing: Added bbPress support
+- Enhancement: Sharing: Added more configuration to the Likes modal
+- Enhancement: Sharing: Made the reddit button open a new tab
+- Enhancement: Sharing: Removed unused files
+- Enhancement: Shortcodes: Added auto embed option inside comments
+- Enhancement: Shortcodes: Added autohide parameter to the YouTube shortcode
+- Enhancement: Subscriptions: added an action that triggers at the end of the
+ subscription process
+- Enhancement: VideoPress: Videos are now embedded using a new player
+- Enhancement: Widget Visibility: Added parent page logic
+- Enhancement: Widget Visibility: Added support for split terms
+- Enhancement: Widgets: Added actions to the Social Media widget
+- Enhancement: Widgets: Switched the Display Posts widget to the new API
+ version
+- Bug Fix: General: Fixed scrolling to top after modal window closing
+- Bug Fix: Infinite Scroll: Added a check for cases when output buffering is
+ disabled
+- Bug Fix: Infinite Scroll: Added translation to the copyright message
+- Bug Fix: Manage: Fixed automatic update synchronization on WordPress
+ multisite network admin
+- Bug Fix: Manage: Redirects back to WordPress.com are allowed from the
+ customizer view
+- Bug Fix: Media: Fixed duplicate images bug in the Media Extractor
+- Bug Fix: Publicize: Made it possible to remove previously set message
+- Bug Fix: Sharing: Added a thumbnail image to OpenGraph tags on pages with
+ DailyMotion embeds
+- Bug Fix: Sharing: Fixed Twitter Cards tags escaping
+- Bug Fix: Sharing: Made OpenGraph tags for title and description use proper
+ punctuation
+- Bug Fix: Sharing: Made sure Likes can be disabled on the front page
+- Bug Fix: Shortcodes: Fixed Facebook embeds by placing the scipt in the
+ footer
+- Bug Fix: Shortcodes: Fixed PollDaddy shortcode issues over SSL connections
+- Bug Fix: Shortcodes: Made responsive video wrappers only wrap video embeds
+- Bug Fix: Shortcodes: Made SoundCloud accept percents for dimensions
+- Bug Fix: Social Links: Fixed a possible conflict with another class
+- Bug Fix: Stats: Made sure the Stats URL is always escaped properly
+
+## 3.6.1 - 2015-07-24
+
+- Enhancement: Fully compatible with upcoming WordPress 4.3
+- Enhancement: Site Icon: Start to deprecate Site Icon in favor of Core's
+ version (if available)
+- Bug Fix: Subscriptions: You can now use more than one Subscription form on a
+ single page
+- Bug Fix: Quieted PHP notices and warnings with the JSON API, Display Posts
+ Widget and Gallery Widget (slideshow mode)
+- Bug Fix: Correct permissions check for connection panel
+- Hardening: Increase permissions checks
+
+## [3.6] - 2015-07-06
+### Feature Enhancements
+- CLI: Add a number of Jetpack CLI improvements: see
+ http://jetpack.com/support/jetpack-cli
+- New Jetpack admin page for connection management
+- New Social Media Icons widget
+- FB Like Box: A visual refresh of the Facebook likebox widget
+- Protect: When your IP is blocked, use a math captcha as a fallback instead
+ of a complete block
+
+### Additional changes
+- Enhancement: Custom CSS: Add more Flexbox support and other enhancements
+- Enhancement: Extra Sidebar Widgets: Top Posts Widget: Choose what Post Types
+ to display
+- Enhancement: General: Save on some requests! print CSS inline when there
+ isn't much of it
+- Enhancement: Likes: Likes can now be shown on all post types
+- Enhancement: Minileven: Add Featured Image to Gallery Post Format and Pages
+- Enhancement: Mobile Theme: Add div wrapping View Mobile Site link to allow
+ for easier CSS customizations
+- Enhancement: Omnisearch: Link to edit post in titles
+- Enhancement: Protect: Learn Trusted Headers locally and cache blocks
+ properly
+- Enhancement: REST API: Add locale support
+- Enhancement: Sharing: Retire StumbleUpon
+- Enhancement: Sharing: Upgrade to reCAPTCHA 2.0 for Email Sharing
+- Enhancement: Shortcode Embeds: Add Mesh oembed support
+- Enhancement: Shortcode Embeds: New Wufoo Shortcode from WordPress.com
+- Enhancement: Shortcode Embeds: Mixcloud: handle accented characters in URLs
+- Enhancement: Site Logo: Adding itemprops to support logo schema.
+- Enhancement: Slideshow Gallery: New parameters *size* and *autostart*
+- Enhancement: Slideshow Gallery: Use more reliable CSS for resizing instead
+ of js
+- Enhancement: Stats: No longer track stats for preview pages
+- Enhancement: Tiled Gallery: Improve the shapes and distributions of shapes
+ in the Tiled Gallery, based on observations for its usage.
+- Enhancement: Protect: Whitelist for multisite globally and locally
+- Enhancement: Sharing: LinkedIn always uses https for share counts. (saved
+ extra http request)
+- Bug Fix: Carousel: Jetpack Carousel now supports HTML5 gallery
+- Bug Fix: Extra Sidebar Widgets: Choose Images button works in accessibility
+ mode
+- Bug Fix: General: Fix: Cannot remove hooks from filter
+ 'jetpack_get_available_modules'
+- Bug Fix: Infinite Scroll: Check that search terms exist before matching
+ against post title. fixes #2075
+- Bug Fix: Likes: Never double show on search results
+- Bug Fix: Notifications: Notifications didn't load on wp-admin/network pages
+- Bug Fix: Sharing: Fix Facebook share button not showing for Australian &
+ Canadian locale
+- Bug Fix: Shortcode Embed: Slideshare Shortcode now fixed
+- Bug Fix: SSO: Hide login no matter what when using the filter to do so
+- Bug Fix: Subs Widget: Don't hide email input if submit failed
+- Bug Fix: Tiled Gallery: Show columns setting for Thumbnail Grid when Tiled
+ Mosaic galleries are the default
+- Bug Fix: Twitter Cards: Remove deprecated card types
+
+## 3.5.3 - 2015-05-06
+
+- Security Hardening: Remove Genericons example.html file.
+
+## 3.5.2 - 2015-05-05
+
+- Bug Fix: Sharing: Changes Facebook share count endpoint
+
+## 3.5.1 - 2015-05-05
+
+- Enhancement: Sharing: Changes Facebook share count method per Facebook API
+ change
+- Enhancement: General: Remove .po files to reduce plugin size
+- Bug Fix: General: Remove identity crisis notification
+- Bug Fix: Subscriptions: Correct required input validation
+- Security hardening
+
+## [3.5] - 2015-04-23
+
+Jetpack 3.5 introduces the ability to manage your site's menus directly from
+WordPress.com and several bug fixes and enhancements. This upgrade is
+recommended for all users.
+
+- Enhancement: General: Change security reporting to use a transient instead
+ of option to reduce backup load
+- Enhancement: General: Improve module search
+- Enhancement: JSON API: Allow users to manage menus through WordPress.com
+- Enhancement: Sharing: Reduce spam through email sharing
+- Bug Fix: Custom CSS: Improve recall of CSS revisions
+- Bug Fix: Extra Sidebar Widgets: Change class name for Contact Info widget
+- Bug Fix: Extra Sidebar Widgets: Fix errors when adding widgets via the
+ customizer
+- Bug Fix: Extra Sidebar Widgets: Fix PHP notices in RSS widget
+- Bug Fix: General: Fix redirect loop on activation
+- Bug Fix: General: Styling fixes
+- Bug Fix: Protect: Add IP translation fallback when inet_pton is not
+ available
+- Bug Fix: Protect: Always allow login from local IDs
+- Bug Fix: Protect: Sanitize displayed IP after block
+- Bug Fix: Publicize: Prevent generating Facebook profile links for app-scoped
+ user IDs
+- Bug Fix: Subscriptions: Improve error handling
+- Bug Fix: Theme Tools: Include breadcrumb code
+- Misc: Extra Sidebar Widgets: Remove Readmill Widget
+
+## [3.4.3] - 2015-04-20
+
+- Security hardening.
+
+## [3.4.2] - 2015-04-19
+
+- Bug Fix: Contact info widget namespacing
+- Bug Fix: Javascript errors on wp-admin due to stats display code
+- Bug Fix: Potential fatal error from improperly called function
+- Bug Fix: Potential fatal error when protect servers are unreachable for
+ WordPress Multisite
+
+## 3.4.1 - 2015-03-19
+
+- Bug Fix: General: Modules not displaying properly in non-English installs
+- Bug Fix: Manage: Some installs showing a transient fatal error
+- Bug Fix: Protect: Protect module not auto-activating for users who upgrade
+- Bug Fix: Omnisearch: Some installs not properly reporting WP version number,
+ causing Omnisearch error
+- Bug Fix: Stats: Top posts/pages widget not loading
+- Bug Fix: Contact Info Widget: Fix conflict with Avada theme
+
+## [3.4] - 2015-03-18
+
+- Enhancement: Config Settings: provide a notification for users that update
+ features settings
+- Enhancement: Config Settings: provide a notification for users that update
+ features settings
+- Enhancement: Contact Form: Use the predefined $title variable in the anchor
+ tag in grunion contact form button
+- Enhancement: Contact Form: Use the predefined $title variable in the anchor
+ tag in the button on admin
+- Enhancement: Custom Content Type: Add all Custom Post Types to Omnisearch
+- Enhancement: Custom Content Type: Add option to add Testimonial Custom
+ Content Type in admin
+- Enhancement: Custom Content Type: bring consistency between the portfolio
+ and testimonial shared codebase
+- Enhancement: Custom Content Type: code cleanup
+- Enhancement: Custom Content Type: register namespaced 'jetpack_portfolio'
+ shortcode/use a prefix for shortcode for Portfolio
+- Enhancement: Custom Content Type: set shortcode image size to 'large' and
+ add jetpack_portfolio_thumbnail_size filter to allow themes to set their own
+ size for Portfolio
+- Enhancement: Custom Content Type: testimonial shortcode enhancement
+- Enhancement: Extra Sidebar Widgets: Add subscription widget wildcard
+- Enhancement: Extra Sidebar Widgets: Likes and Sharing Shortcodes
+- Enhancement: Extra Sidebar Widgets: Minor fixes to Facebook widget plugin
+ for SSL
+- Enhancement: Fix/update jetpack version
+- Enhancement: General: Add DNS Prefetching
+- Enhancement: General: Add Jetpack admin dashboard widget
+- Enhancement: GlotPress: Update GP_Locales and GP_Locale classes
+- Enhancement: Improved control over Nova Theme Menu output markup
+- Enhancement: Infinite Scroll: Adds a `button` wrapper for the infinity
+ handle.
+- Enhancement: Infinite Scroll: Check for response.html before using indexOf
+- Enhancement: Integrate BruteProtect for protection against Brute Force
+ attacks
+- Enhancement: JSON API Manage: Added Mock Jetpack Option to Sync options that
+ don't have to live in the Database
+- Enhancement: JSON API: Add/empty trash days option to sync
+- Enhancement: Jump Start: Add "Jump Start" interface for new users
+- Enhancement: Manage: Add "modified_before" and "modified_after" parameters
+ to /sites/%s/posts/ via JSON API
+- Enhancement: Mobile Theme: Add filter for choosing mobile theme menu
+- Enhancement: Notifications: Changes to load the new notifications client.
+- Enhancement: Protect: Add a filter so that user can add thier own bots
+- Enhancement: Protect: Add security reporting
+- Enhancement: Protect: Add/whitelist endpoints via JSON API for Jetpack
+ Protect
+- Enhancement: Publicize: update connection confirmation message
+- Enhancement: Sharing: Add custom service name as a class
+- Enhancement: Sharing: display name of custom service in link title
+- Enhancement: Sharing: Remove default post types for showing share links
+- Enhancement: Sharing: use Jetpack version number when enqueing sharing.js
+- Enhancement: Shortcodes Team Partnerships: Backport fixes from SoundCloud
+ 2.3.1 through 3.0.2
+- Enhancement: Shortlinks: use HTTPS when possible
+- Enhancement: Stats: Make loading of stats async
+- Enhancement: Subscriptions: Added settings field for comment sub text
+- Enhancement: Subscriptions: Hide Form After Submit
+- Enhancement: Subscriptions: remove label from widget title
+- Enhancement: Subscriptions: Update subscriptions.php
+- Bug Fix: Contact form: Increase CSS specificity for Contact Forms in widgets
+- Bug Fix: Custom Content Type: Testimonial Custom Content Type: use core
+ `WP_Customize_Image_Control` instead of custom...
+- Bug Fix: Extra Sidebar Widgets: add missing & to if statement for widget
+ visibility
+- Bug Fix: Extra Sidebar Widgets: Don't require height/width values in the
+ Twitter Timeline widget
+- Bug Fix: Extra Sidebar Widgets: Upload images from the customizer/Extra
+ Sidebar Widgets Tiled Galleries for Gallery Widget
+- Bug Fix: General: Fix bug that was preventing modules from displaying
+ properly
+- Bug Fix: Manage: When calling /sites/%s/posts/ include all attachments not
+ just the first five via JSON API
+- Bug Fix: Mobile Theme: Minileven; Start after DOM ready
+- Bug Fix: Sharing: Open sharing in same window
+- Bug Fix: Stats language
+- Bug Fix: Subscritpions: fix invalid field when no email address
+
+## 3.3.2 - 2015-02-19
+
+- Enhancement: Updated translation files.
+- Enhancement: Heartbeat: Correctly stat new datasets.
+- Bug Fix: Widget Visibility: Correct some caching of visibility results that
+ may get evaluated too soon.
+- Bug Fix: Contact Form: Hardening.
+- Bug Fix: Photon: Make sure our gallery filter can parse array inputs as well
+ as the default html.
+
+## 3.3.1 - 2015-02-11
+
+- Bug Fix: JSON API: Minor versioning data.
+- Bug Fix: Markdown: Re-run KSES after processing to account for syntax
+ changes.
+- Bug Fix: Media Extractor: Don't call a gallery a gallery if it hasn't got
+ any pictures!
+- Bug Fix: Module Management: Handle a core api change for folks running
+ trunk.
+- Bug Fix: Related Posts: CSS -- better clear rows.
+- Bug Fix: Sharing: Including sharing account on Pinterest unofficial buttons
+ as well.
+- Bug Fix: Sharing: Properly version external assets by Jetpack release
+ version.
+- Bug Fix: Shortcodes: Soundcloud: Backport API compatibility fixes.
+- Bug Fix: Shortcodes: Flickr: Tidy up our regex url pattern matching.
+- Bug Fix: Subscriptions: Don't add 'Email Address' as the value -- we have
+ placeholders!
+- Bug Fix: Widgets: Gallery Widget: Allow folks to upload images from the
+ widget area in the customizer.
+
+## [3.3] - 2014-12-15
+
+- Enhancement: Adds responsive video support to BuddyPress.
+- Enhancement: Custom Content Types: Added 'order' and 'orderby' options to
+ portfolio shortcode.
+- Enhancement: Display notice when Jetpack Development Mode is on.
+- Enhancement: General: Update compatibility with Twenty Fifteen.
+- Enhancement: Image URL can now be overwritten with the
+ `jetpack_images_fit_image_url_override` filter after dimensions are set by
+ Photon.
+- Enhancement: JSON API: Add Endpoint for trigger Plugin Autoupdates.
+- Enhancement: JSON API: General Improvements. Documentation on
+ http://developer.wordpress.com/
+- Enhancement: Likes: Updated the code to accept arbitrary CPTs.
+- Enhancement: Related Posts: Allow filter by `post_format`.
+- Enhancement: Sharing: add new `jetpack_sharing_counts` filter for option to
+ turn off sharing counts.
+- Enhancement: Sharing: Use the Site Logo Theme Tool and the Site Icon as
+ fallbacks for image tags.
+- Enhancement: Shortcodes: Made the code more readable by using output buffers
+ instead of string concatenation.
+- Enhancement: Site Logo: Add alias functions to provide backward
+ compatibility for themes expecting the old function calls.
+- Enhancement: Slideshow: Add title and alt text to images.
+- Enhancement: Subscription Form: Do not display the logged in user's email
+ address by default.
+- Enhancement: Top Posts Widget: Refactor to allow conditional loading of the
+ css.
+- Enhancement: Top Posts: Add `jetpack_top_posts_widget_count` filter to
+ control number of displayed posts.
+- Bug Fix: Change subscribe_text from `p` to `div` so that it can contain
+ block-level elements.
+- Bug Fix: Fonts: Change path to look for the svg in the right directory.
+- Bug Fix: Increase CSS specificity for Contact Forms in widgets.
+- Bug Fix: JSON API: Plugins Update: Make sure the plugin doesn't get
+ deactivated.
+- Bug Fix: Likes: Fixes issues where likes don't load, load master iframe
+ after scripts are loaded.
+- Bug Fix: Notes Module: Avoid a PHP Notice in cli scripts when the request
+ doesn't contain a User-Agent header.
+- Bug Fix: Nova Menu CPT: fix notice when we have no taxonomies.
+- Bug Fix: Nova Menus: Use current instance to maintain object context.
+- Bug Fix: Related Posts: Add filter for `_enabled_for_request()`.
+- Bug Fix: Sharing: Prevent duplicate @ in shared Tweets.
+- Bug Fix: Site Logo: `get_site_logo()` now properly returns the site logo ID
+ when provided in the `$show` argument.
+- Bug Fix: Site Logo: Correct evaluation of the Display Header Text in
+ Customizer preview.
+
+## 3.2.1 - 2014-11-14
+
+- Enhancement: Updated translation files.
+- Enhancement: JSON API: More object vars passed back to some queries.
+ Documentation on http://developer.wordpress.com/
+- Bug Fix: JSON API: Pass back correct author in `me/posts` data.
+- Bug Fix: JSON API: Don't check if a post is freshly pressed on remote
+ Jetpack sites where the function doesn't exist.
+- Bug Fix: Site Logo: Add backward-compatible template tags to match the
+ standalone release.
+- Bug Fix: Don't use `__DIR__` -- it's 5.3+ only, and WordPress supports back to
+ 5.2.
+- Bug Fix: Retool how we remove the source styles when using the concatenated
+ version.
+- Bug Fix: Shortcodes: TED: Correct default language code from `eng` to `en`.
+- Bug Fix: Gallery Widget: Add a default background color.
+- Bug Fix: Subscription Notifications: Remove the label.
+- Bug Fix: Sharing: enqueue Genericons on static front page as well if
+ selected.
+
+## [3.2] - 2014-10-29
+
+- Enhancement: Speed Improvements (woohoo!).
+- Enhancement: Add site icons: an avatar for your blog.
+- Enhancement: Improvements to API endpoints.
+- Enhancement: Add oEmbed sources (Twitter, SoundCloud, Instagram,
+ DailyMotion, Vine).
+- Enhancement: Add indicators to make it easier to see which modules are
+ active.
+- Enhancement: Improve debug tool.
+- Enhancement: Add new 'Site Logos' code to theme tools, for themes that opt
+ in to support it.
+- Enhancement: Improved caching for related posts.
+- Enhancement: Added "Remember Me" functionality to Single Sign On.
+- Enhancement: Improved accessibility.
+- Enhancement: Added additional filters to Widget Visibility.
+- Bug Fix: Fixed PHP Notice errors for Likes, Widget Visibility.
+- Bug Fix: Improvements to the testimonials CPT.
+- Bug Fix: Improved RTL on VideoPress admin.
+- Bug Fix: Removed Google+ Authorship module (discontinued by Google).
+- Bug Fix: Fixed use of deprecated function in mobile theme.
+- Bug Fix: Various fixes to Tiled Galleries.
+- Bug Fix: Various fixes to Contact Form.
+- Bug Fix: Various fixes to oEmbed.
+- Bug Fix: Various fixes to Single Sign On.
+- Bug Fix: Fixed styles in ShareDaddy.
+- Bug Fix: Better match protocols (http/https) to the site.
+
+## 3.1.1 - 2014-08-07
+
+- Enhancement: Update translation files for strings that had been
+ submitted/approved since release.
+- Bug Fix: Social Links: Add a function check to better degrade if Publicize
+ isn't around.
+- Bug Fix: Open Graph: Add WordPress SEO back to the blacklist, until they
+ update how they opt us out.
+- Bug Fix: Asset Minification: Add another caveat ( empty $plugin ) to short
+ out on.
+- Bug Fix: Deprecated Hooks: Fixing our expectations where something that
+ should be an array occasionally wasn't.
+- Bug Fix: Custom CSS: Add extra whitelist rule for -o-keyframe rules.
+
+## [3.1] - 2014-07-31
+
+- Enhancement: New Custom Content Types module.
+- Enhancement: New Jetpack Logo.
+- Enhancement: New optional JSON API endpoints for viewing updates and
+ managing plugins and themes.
+- Enhancement: New Custom Post Type: Portfolio!
+- Enhancement: Rearranged buttons on the modules modals for easier management.
+- Enhancement: Jetpack Settings have improved keyboard accessibility.
+- Enhancement: Improved RTL support for After the Deadline, Carousel, Contact
+ Form, Comics CPT, Custom CSS, Omnisearch, Publicize, Related Posts, Slideshow
+ short code, Tiled Gallery, Widget-Visibility and Widgets Gallery.
+- Enhancement: Contact Form: Add an "Empty Spam" option.
+- Enhancement: i18n: Change the priority of where plugin_textdomain is hooked
+ so that the plugins can better translate Jetpack.
+- Enhancement: Monitor: Displays how often the site is checked for downtime.
+- Enhancement: Shortcode: Added Mixcloud shortcode and oEmbed support.
+- Enhancement: Social Links: Improved handling of customizer hooks in
+ non-admin context.
+- Enhancement: Stats: The smiley image is gone by default.
+- Enhancement: Stats: Added link to the configure page for stats so that the
+ stats settings page is easier to find.
+- Enhancement: Theme Tools: Added the responsive videos to theme tools so that
+ themes can support responsive videos more easily.
+- Update: Updated Genericons to version 3.1, new icons for website, ellipsis,
+ foursquare, x-post, sitemap, hierarchy and paintbrush.
+- Bug Fix: Contact Form: Prefix function to avoid conflicts with other
+ plugins.
+- Bug Fix: Custom CSS: Admin UI has a responsive layout.
+- Bug Fix: Custom CSS: Custom $content_width value doesn't overwrite theme's
+ $content_width.
+- Bug Fix: Contact Form: Feedback link takes you to the form page.
+- Bug Fix: Carousel: Confirms an avatar is returned by get_avatar before
+ displaying.
+- Bug Fix: Featured Content: Don't remove setting validation.
+- Bug Fix: Infinite Scroll: Google Universal Analytics support added.
+- Bug Fix: Multisite: Add message when updating multisite settings.
+- Bug Fix: Photon: Photon will no longer upscale images larger than the
+ original size.
+- Bug Fix: Photon: Check that the image exists before rewriting the image URL
+ to utilize Photon.
+- Bug Fix: Sharing: Pinterest adds attribute to display share count.
+- Bug Fix: Sharing: Respect an empty sharing title.
+- Bug Fix: Sharing: Share buttons now appear in the bbPress forms.
+- Bug Fix: Sharing: Support for multiple meta html tag og:image values.
+- Bug Fix: Single Sign On: Logout allows override of forcing Single Sign On.
+- Bug Fix: Single Sign On: Remove the lost password link on auto-forward
+ logout.
+- Bug Fix: Social Links: Do not use anonymous function for compatibility with
+ PHP 5.2.
+- Bug Fix: Tiled Galleries: Update jQuery mouseover caption effect to reduce
+ flickering.
+- Bug Fix: Widgets Visibility: Works better in the customizer admin view.
+
+## 3.0.2 - 2014-06-17
+
+- Enhancement: General: Make module categories filter more visible when
+ active.
+- Enhancement: General: Updated translation files with more strings added
+ since the last release.
+- Enhancement: General: Allow deep-linking to the Contact Support form.
+- Bug Fix: General: RTL Jetpack Admin UI looks better.
+- Bug Fix: General: Fixed PHP warning when bulk deactivating modules.
+- Bug Fix: General: Removed an unnecessary description.
+- Bug Fix: General: Resolved an SSL error on Jetpack Admin UI.
+- Bug Fix: General: Fix error comparing signatures when the WordPress
+ installation is using site_url filters (applied mostly to WPEngine sites).
+- Bug Fix: General: Resolved PHP strict error on the mobile menu.
+- Bug Fix: General: Fix timing of conditional checks, so that calling
+ developer mode via a plugin works again.
+- Bug Fix: General: Main page categories tab now properly translates module
+ names.
+- Bug Fix: Related Posts: Fix a typo, the "more info" link now works.
+- Bug Fix: Likes: Improve button styling.
+- Bug Fix: Likes: Remove unused UI for Reblog settings on social settings
+ page.
+- Bug Fix: Contact Form: Updated to no longer use a deprecated Akismet
+ function.
+- Bug Fix: Contact Form: Sends email to the administrator that is not marked
+ as spam again.
+- Bug Fix: Open Graph: Resolved PHP warning on open graph gallery pages when
+ the gallery is empty.
+
+## 3.0.1 - 2014-05-22
+
+- Bug Fix: AtD: A wpcom-only function got synced by mistake and caused a few
+ errors. Fixed.
+- Bug Fix: Post By Email: Add static keyword to a function.
+- Bug Fix: ShareDaddy: In the admin-side configuration of sharing links, we
+ used a Path icon instead of Pinterest. Oops!
+- Bug Fix: ShareDaddy: We inadvertently appended `via @jetpack` to some
+ twitter shares. This is no longer the case.
+- Bug Fix: Related Posts: Tidying up and relocation of the `resync` button
+ formerly on the more info modal.
+- Bug Fix: Infinite Scroll: Work better with core's MediaElement.js
+- Bug Fix: Heartbeat: Undeclared variable fixed.
+
+## [3.0] - 2014-05-20
+
+- New User Interface for managing modules and settings
+- New Module: Verfication Tools
+- Enhancement: New look for the Sharing module
+- Enhancement: Multiple improvements on which Twitter handle a Twitter card
+ will display
+- Enhancement: Add option to hide Google+ Authorship banner while still
+ receiving the benefits
+- Enhancement: Many Infinite Scroll enhancements to improve performance
+- Enhancement: Infinite Scroll will use your CPT's display name instead of
+ "Older Posts"
+- Enhancement: JSON API added /media/new endpoint
+- Enhancement: Added filter to assign new default image for Open Graph tags
+- Enhancement: New [jetpack-related-posts] shortcode to add Related Posts to
+ page instead of default placement
+- Enhancement: Added SSO option to turn off login form completely, to use
+ WordPress.com login exclusively
+- Enhancement: The [googlemaps] shortcode allows for Google Maps Engine
+- Enhancement: YouTube shortcode allows HD playback
+- Enhancement: Smoother, Faster Tiled Galleries!
+- Enhancement: New languages! Use Jetpack in Irish, Fulah, and Tigrinya
+- Bug Fix: Use your browser's Back and Forward buttons when naviagating a
+ Carousel
+- Bug Fix: Various Related Posts fixes and improvements for added flexibility
+- Bug Fix: WordPress 3.9: Restores ability to edit Contact Forms
+- Bug Fix: WordPress 3.9: Restores Gallery Widget compatability
+- Bug Fix: Ensure Markdown is kept when Bulk Editing posts
+- Bug Fix: Improved Jetpack's Multisite Network Admin page for networks with a
+ large number of sites
+- Bug Fix: Ensure Sharing settings persist when Bulk Editing a post
+- Bug Fix: Various other shortcode improvements
+
+## [2.9.3] - 2014-04-10
+
+- Important security update. CVE-2014-0173
+
+## 2.9.2 - 2014-03-17
+
+- Bug Fix: Publicize: When publishing from a mobile app or third-party client,
+ Publicize now works again.
+
+## 2.9.1 - 2014-03-06
+
+- Bug Fix: After the Deadline: Fix a Javascript glitch that could prevent
+ publishing of posts.
+- Bug Fix: SSO: Disable the implementation of an option that had been removed
+ before release. This would have only been an issue if a site administrator
+ had enabled the module during an early beta of 2.9.
+
+## [2.9] - 2014-02-26
+
+- Added Multisite network functionality
+- New Module: Related Posts
+- Enhancement: Single Sign On
+- Enhancement: Mixcloud shortcode and oEmbed
+- Enhancement: Gist shortcode and oEmbed
+- Enhancement: Modify Facebook Like Box widget to support new Facebook
+ parameters
+- Enhancement: Rolled the Push Notifications module into the Notes module
+- Enhancement: Update kses with Markdown
+- Enhancement: Adding keyboard accessibility to sharing buttons config page
+- Enhancement: Pull WordPress testing bits from the new official git mirror at
+ WordPress.org
+- Bug Fix: Widget Visibility
+- Bug Fix: Revisions box in Custom CSS
+- Bug Fix: Fix several bugs in the WordPress Posts Widget so that it correctly
+ updates
+- Bug Fix: Limit Login Attempts no longer generates false positives from
+ xmlrpc.
+- Bug Fix: Clear max_posts transient on theme switch.
+- Bug Fix: Lower priority of sync to allow all CPTs to be registered.
+- Bug Fix: Contact form fields emailed in correct order.
+
+Other bugfixes and enhancements at https://github.com/Automattic/jetpack/commits/2.9
+
+## [2.8] - 2014-01-31
+
+- New Module: Markdown
+- Module Update: Jetpack Monitor
+- Enhancement: Infinite Scroll: Keep track of $current_day between requests so
+ the_date() works well.
+- Enhancement: Embeds: New filter to turn off embeds in comments.
+- Enhancement: Contact Form: Add placeholder support.
+- Enhancement: Widget: Gravatar Profile: Added filters to allow users to
+ customize headings and fixed output of personal links.
+- Enhancement: Facebook OG Tags: Add `published_time`, `modified_time`, and
+ `author` if the post type supports it.
+- Enhancement: Sharing: Display buttons on CPT archive pages.
+- Enhancement: Sharing: Add `get_share_title` function and filter.
+- Enhancement: Sharing: Add filter `sharing_display_link`.
+- Enhancement: Twitter Timeline: Flesh out tweet limit option.
+- Enhancement: Social Links: Add Google+ to the list of supported services.
+- Enhancement: Stats: Improve dashboard styles in 3.8.
+- Enhancement: Stats: No longer use Quantcast.
+- Enhancement: Top Posts: Add `jetpack_top_posts_days` filter.
+- Enhancement: AtD: Add TinyMCE 4 compatibility for its pending arrival in
+ WordPress 3.9
+- Enhancement: Genericons: Update to v3.0.3
+- Enhancement: Tiled Galleries: Add alt attributes to images.
+- Enhancement: Shortcode: YouTube: Accept protocol-relative URLs.
+- Enhancement: Shortcode: Slideshow: Add white background option.
+- Enhancement: Shortcode: YouTube: Add support for the two closed-caption
+ arguments.
+- Enhancement: Shortcode: Vimeo: Update the regex to support the new embed
+ code.
+- Enhancement: Shortcode: Google Maps: Update the regex to handle new format
+ for embeds.
+- Enhancement: Likes: Avoid a PHP Notice when $_POST['post_type'] is not set
+ in meta_box_save.
+- Enhancement: Smush images to save on file size.
+- Enhancement: Publicize: Enable opt-in publicizing of custom post types.
+- Bug Fix: Random Redirect: Further namespace to avoid conflicts.
+- Bug Fix: Twitter Timeline: Resolve undefined index notice.
+- Bug Fix: Featured Content: Add extra class_exists() check to be extra
+ careful.
+- Bug Fix: Facebook OG Tags: Change OG type of Home and Front Page to
+ 'website'
+- Bug Fix: Widget Visibility: Add support for old-style single use widgets.
+- Bug Fix: Google Authorship: Support apostrophe in author names.
+- Bug Fix: Media Extractor: Assorted graceful failure caveats.
+- Bug Fix: Carousel: 'Link to None' bug fixed.
+- Bug Fix: Embeds: Bandcamp: Switch escaping function for album and track IDs
+ to handle (int)s greater than PHP_INT_MAX
+- Bug Fix: Some plugins trying to catch brute-force attacks mistakenly flagged
+ the Jetpack connection as one.
+
+## [2.7] - 2013-12-11
+
+- Enhancement: Google+ Publicize
+- Enhancement: Add Cloudup as an oEmbed provider
+- Enhancement: Subscriptions: Add subscribe_field_id filter to allow updated
+ ids when using multiple widgets
+- Enhancement: Infinite Scroll: TwentyFourteen Support
+- Bug Fix: Contact Form: Fix warning when form is called outside the loop
+- Bug Fix: Featured Content: Moving Settings to Customizer, provide option to
+ set default tag as fallback, specify all supported post-types rather than just
+ additional ones. Description Updates
+- Bug Fix: Featured Content: Compat with 'additional_post_types' theme support
+ argument. Comment updates
+- Bug Fix: Featured Content: Make sure $term is an object before we treat it
+ as one
+- Bug Fix: GlotPress: Merge with latest GlotPress
+- Bug Fix: Infinite Scroll: prevent Undefined index notice that can cause IS
+ to fail when user has WP_DEBUG set to true
+- Bug Fix: Infinite Scroll: Improved compatibility with Carousel, Tiled
+ Galleries, VideoPress, and the `[audio]` and `[video]` shortcodes
+- Bug Fix: Likes: Stop manually including version.php and trust the global.
+ Some whitespace fixes, and if it's an attachment, follow the post_status of
+ the parent post
+- Bug Fix: Mobile Theme: Display password field for Gallery format protected
+ posts
+- Bug Fix: Sharing: Add new translation width for share button, and Google
+ Plus icons
+- Bug Fix: Shortcodes: Support Ineternational Google domains for maps
+- Bug Fix: Shortcodes: Facebook Embeds: Register alternate permalink.php URL
+ for posts
+- Bug Fix: Subscriptions: Moved inline styles from widget email input to
+ separate css file
+- Bug Fix: Theme Tools: Fix glitch where random-redirect.php also showed as a
+ plugin being deleted if you were deleting Jetpack
+- Bug Fix: Misc: Internationalization & RTL updates
+- Bug Fix: Misc: Prevent collisions with 'Facebook Featured Image & OG Meta
+ Tags' plugin
+
+## 2.6.1 - 2013-12-03
+
+- Bug Fix: minor styling fix in pre- and post-MP6/3.8 UI changes.
+- Bug Fix: Stats: spinner gif url fix when the user is viewing it over https.
+- Bug Fix: Stats: Switch to esc_html from htmlspecialchars in error message --
+ better to be native
+- Bug Fix: Media Extractor: some hosts don't compile unicode for
+ preg_match_all, so we temporarily removed the block that depended on it.
+- Bug Fix: Media Extractor: Add in some error handling for malformed URLs.
+- Bug Fix: Twitter Cards: treat single-image galleries as a photo-type.
+- Bug Fix: Update conflicting plugins for OG tags and Twitter Cards.
+- Bug Fix: Correct max supported version number -- had been 3.6, update to
+ 3.7.1
+
+## [2.6] - 2013-11-28
+
+- Enhancement: WPCC / now called [SSO](http://jetpack.com/support/sso/):
+ refactored.
+- Enhancement: Monitor: new module which will notify you if your site goes
+ down(http://jetpack.com/support/monitor/).
+- Enhancement: Custom CSS: replace Ace editor with Codemirror.
+- Enhancement: Widgets: new “Display Posts” widget.
+- Enhancement: WP-CLI: add commands to disconnect a site and manage modules.
+- Enhancement: Contact Form: new filters, `grunion_contact_form_field_html`
+ and `grunion_should_send_email`.
+- Enhancement: Custom Post Types: new restaurant post type.
+- Enhancement: Genericons: update to version 3.0.2.
+- Enhancement: Infinite Scroll: many improvements and fixes.
+- Enhancement: Likes: performance improvements.
+- Enhancement: MP6: Jetpack icons are now compatible with WordPress 3.8.
+- Enhancement: Open Graph: better descriptions, fallback images, and media
+ extraction from video posts.
+- Enhancement: Publicize: new background token tests for connected publicize
+ services and display problems on settings sharing and add new post.
+- Enhancement: Shortcodes: updated Bandcamp shortcode to support the
+ `tracklist` and `minimal` attributes, as well as more `artwork` attribute
+ values.
+- Enhancement: Shortlinks: add Custom Post Type support.
+- Enhancement: Subscriptions: add more ways to customize the subscriptions
+ widget.
+- Enhancement: Twitter Cards: better media management and card type detection,
+ and better handling of conflicts with other Twitter Cards plugins.
+- Enhancement: better handling of conflicts with other plugins.
+- Bug Fix: After the Deadline: add a typeof check for `tinyMCEPreInit.mceInit`
+ to prevent js errors.
+- Bug Fix: Carousel: speed improvements and several bugfixes.
+- Bug Fix: Contact Form: remove nonce creating issues with caching plugins.
+- Bug Fix: Custom Post Types: Testimonials: return if featured image is empty
+ so it can be removed after it’s been set.
+- Bug Fix: Featured Content: add additional post type support through the
+ `additional_post_types` argument.
+- Bug Fix: Google Authorship: support apostrophes in Google+ profiles.
+- Bug Fix: Google Authorship: use a regexp Instead of using
+ `mb_convert_encoding`, which doesn’t enjoy universal support.
+- Bug Fix: Heartbeat: ensure that it never triggers more than once per week.
+- Bug Fix: JSON API: add new `?meta=` parameter that allows you to expand the
+ data found in the `meta->links` responses.
+- Bug Fix: JSON API: add new `is_private` response to the sites endpoint and
+ `global_ID` response to the reader and post endpoints.
+- Bug Fix: Mobile Theme: allow small images to display inline.
+- Bug Fix: Mobile Theme: fix fatal errors for missing `minileven_header`
+ function.
+- Bug Fix: Photon: fix errors when an image is not uploaded properly.
+- Bug Fix: Shortcodes: improvements to Archives, Google+, Presentations, Vine
+ and Youtube.
+- Bug Fix: Tiled Galleries: improve display of panoramic images and fix errors
+ when an image is not uploaded properly.
+
+## [2.5] - 2013-09-19
+
+- Enhancement: Connect your Google+ profile and WordPress site to prove
+ authorship of posts.
+- Enhancement: Improved sharing buttons display.
+- Enhancement: Comment on your posts using Google+ to signin.
+- Enhancement: Embed Google+ posts into your posts.
+- Enhancement: Added event logging capabilities for debugging
+- Enhancement: LaTeX is now available in dev mode
+- Enhancement: Introduced gallery widget
+- Enhancement: Added new module: VideoPress
+- Enhancement: Updated identity crisis checker
+- Enhancement: Tiled Gallery widget added
+- Enhancement: Google +1 button changed to Google+ Share button, to avoid
+ confusion
+- Enhancement: Added check to ensure Google+ authorship accounts have
+ disconnected properly
+- Enhancement: Updated identity crisis checker
+- Enhancement: Tiled Gallery widget added
+- Enhancement: Google +1 button changed to Google+ Share button, to avoid
+ confusion
+- Enhancement: Added the ability to embed Facebook posts
+- Bug Fix: Redirect issue with G+ authorship when WordPress is not in the root
+ directory
+- Enhancement: Better security if carousel to prevent self-XSS
+- Enhancement: Better handling of cookies for subsites on multisite installs
+- Bug Fix: Check for post in G+ authorship before accessing it
+
+## 2.4.2 - 2013-09-05
+
+- Enhancement: Converted to module headers to detect Auto-Activating modules.
+- Enhancement: WPCC: Added 'Close' link to deactivate WPCC in the admin nag.
+- Enhancement: JSON API: Add User Nicename to the user data.
+- Bug Fix: Contact Form: Stopped using a short tag.
+- Bug Fix: Changed CSS selector to catch MP6 stylings.
+- Bug Fix: Dropped `__FILE__` references in class.jetpack.php in favor of
+ JETPACK__PLUGIN_DIR constant, now code that deactivates the plugin from the
+ connect nag works again.
+- Bug Fix: Random Redirect: Add random-redirect to the plugins overriden list,
+ in case someone is using Matt's Random Redirect plugin.
+- Bug Fix: Tiled Gallery: Revert r757178 relating to tiled gallery defaults.
+- Bug Fix: Return false, not zero, if $GLOBALS['content_width'] isn't defined.
+- Bug Fix: WPCC: Don't call wp_login_url() in the constructor -- if someone is
+ running a custom login page, that can break things if their plugin runs
+ get_permalink as a filter before init.
+- Bug Fix: Tiled Gallery: Add fallback if post_parent == 0 due to
+ infinite_scroll_load_other_plugins_scripts.
+- Bug Fix: Custom CSS: Set the ACE gutter z-index to 1.
+- Bug Fix: Custom Post Types: Switch from wp_redirect() to wp_safe_redirect().
+- Bug Fix: Likes: Set overflow:hidden; on the likes adminbar item.
+- Bug Fix: Mobile Theme: Migrate where/when the custom header stuff is
+ included.
+- Bug Fix: Slideshow Shortcode: Add a height of 410px.
+
+## 2.4.1 - 2013-09-04
+
+- Enhancement: Don't auto-activate WPCC.
+
+## [2.4] - 2013-08-30
+
+- Enhancement: WordPress.com Connect (WPCC): New Module.
+- Enhancement: Widget Visibility: New Module.
+- Enhancement: Shortcode: Addition of new Twitter Timeline shortcode.
+- Enhancement: Shortcode: Addition of new Presentation shortcode.
+- Enhancement: Shortcode: Addition of new Vine shortcode.
+- Enhancement: Custom Post Types: CPTs are available.
+- Enhancement: Subscriptions: Add 'jetpack_is_post_mailable' filter.
+- Enhancement: OpenGraph: Add Twitter Cards meta tags as well.
+- Enhancement: Custom CSS: Update lessc and scssc preprocessors to 0.4.0 and
+ 0.0.7 respectively.
+- Enhancement: Omnisearch: Add Media results.
+- Enhancement: Likes: Use a protocol-agnostic iframe, instead of forced HTTPS.
+- Enhancement: Top Posts: Increase post limit.
+- Enhancement: Publicize: Updated JS and UI.
+- Enhancement: Photon: New filter to let site admins/owners enable photon for
+ HTTPS urls.
+- Enhancement: New jetpack_get_available_modules filter.
+- Enhancement: Subscriptions: Antispam measures.
+- Bug Fix: Add inline style to keep plugins/themes from inadvertently hiding
+ the Connect box.
+- Bug Fix: Custom CSS: Respect the new wp_revisions_to_keep filter.
+- Bug Fix: Photon: Only hook jetpack_photon_url into the filter if the user
+ has Photon active.
+- Bug Fix: Heartbeat: Used wrong object, occasinally fatal-erroring out for
+ the cron.
+- Bug Fix: Add an empty debug.php file to the /modules/ folder, to solve some
+ update issues where it never got deleted.
+
+## [2.3.5] - 2013-08-12
+
+- Enhancement: Added Path support to Publicize.
+
+## [2.3.4] - 2013-08-06
+
+- Bug Fix: Correct when output occurs with CSV export for feedback.
+- Bug Fix: Tidy up the Heartbeat API.
+- Enhancement: User Agent: Improve detecting of bots.
+- Enhancement: Genericons: Make sure we're pulling the freshest version from
+ genericons.com on each release.
+- Enhancement: JSON API: Open up replies/new endpoints so that users can
+ comment on blogs that are not in their access token.
+- Enhancement: Photon: Apply to `get_post_gallery()` function as well.
+- Enhancement: Tiled Galleries: Add a default bottom margin to be more robust
+ out of the box.
+- Translations: Adding in fresher translation files.
+- Deprecation: Removing the retinization code for 3.4, as it was included in
+ WordPress trunk from 3.5 onwards.
+
+## [2.3.3] - 2013-07-26
+
+- Bug Fix: We were inadvertently overwriting cron schedules with our Jetpack
+ heartbeat. This should now be fixed.
+- Enhancement: New Facebook Sharing icons.
+- Enhancement: Minor update to the Minileven stylesheet.
+
+## [2.3.2] - 2013-07-25
+
+- Bug Fix: Fixed an issue where Facebook Pages were not available when
+ connecting a Publicize account.
+- Bug Fix: For some web hosts, fixed an issue where 'Jetpack ID' error would
+ occur consistently on connecting to WordPress.com.
+- Enhancement: Adding some new stats and heartbeat checking to Jetpack.
+
+## [2.3.1] - 2013-07-02
+
+- Enhancement: Social Links: Retooling the class for better consistency and
+ performance behind the scenes.
+- Enhancement: Omnisearch: Make it easier to search Custom Post Types. No
+ longer need to extend the class, if all you want is a basic display. Just
+ call `new Jetpack_Omnisearch_Posts( 'cpt' );`
+- Enhancement: Sharing Buttons: LinkedIn: Use the official button's sharing
+ link on the Jetpack implementation for a more consistent sharing experience
+ and produce better results on LinkedIn's end.
+- Enhancement: Debug / Connection: Better logic in determining whether the
+ server can use SSL to connect to WPCOM servers.
+- Enhancement: Sharing: Twitter: Calculate the size of the Tweet based on the
+ short URL rather than the full URL size.
+- Enhancement: Debug: More readable and understandable messages.
+- Enhancement: Likes: Including some MP6 styles.
+- Enhancement: Comments: Add new core classes to comment form. See
+ http://core.trac.wordpress.org/changeset/24525
+- Bug Fix: Omnisearch: Don't load everything initially, run the providers off
+ admin_init, and then issue an action for folks to hook into.
+- Bug Fix: Omnisearch: Modify some child class functions to match the parent's
+ parameters and avoid strict notices in newer versions of PHP.
+- Bug Fix: Omnisearch: Hide the search form in the module description if the
+ current user can't use it.
+- Bug Fix: Comment Form: Use edit_pages, not edit_page (fixes glitch in
+ previous beta, never publicly released).
+- Bug Fix: Twitter Timeline Widget: Additional testing of values and casting
+ to default if they are nonconforming.
+- Bug Fix: Sharing: Pinterest: Make the button wider if there's a count to
+ avoid overlapping with others.
+- Bug Fix: Post By Email: Change configuration_redirect to static.
+- Bug Fix: Likes: Don't call configuration_redirect as a static, do it as a
+ method.
+- Bug Fix: Add some further security measures to module activation.
+
+## [2.3] - 2013-06-19
+
+- Enhancement: Omnisearch: Search once, get results from everything!
+ Omnisearch is a single search box that lets you search many different things
+- Enhancement: Debugger: this module helps you debug connection issues right
+ from your dashboard, and contact the Jetpack support team if needed
+- Enhancement: Social Links: this module is a canonical source, based on
+ Publicize, that themes can use to let users specify where social icons should
+ link to
+- Enhancement: It’s now easier to find out if a module is active or note,
+ thanks to the new Jetpack::is_module_active()
+- Enhancement: Contact Form: You are now able to customize the submit button
+ text thanks to the submit_button_text parameter
+- Enhancement: Comments: We've added a filter to let users customize the
+ Comment Reply label, and users can now also customize the prompt on the
+ comment form again.
+- Enhancement: Mobile Theme: Add genericons.css and registering it so it’s
+ easily accessible to other modules that may want it
+- Enhancement: Tiled Galleries: You can now customize the captions, thanks to
+ the jetpack_slideshow_slide_caption filter
+- Enhancement: Widgets: Twitter Timeline: Add the noscrollbar option
+- Enhancement: Widgets: Facebook Like Box Widget: add a show_border attribute
+- Enhancement: Widgets: FB Like Box: let Jetpack users override the iframe
+ background color set in an inline style attribute by using the
+ jetpack_fb_likebox_bg filter
+- Bug Fix: Carousel: Fix a bug where double-clicking a gallery thumbnail broke
+ the carousel functionality
+- Bug Fix: Comments: Change “must-log-in” to class from ID
+- Bug Fix: Contact Form: Make the Add Contact Form link a button, ala Add
+ Media in core
+- Bug Fix: Contact Form: Fix encoding of field labels
+- Bug Fix: Contact Form: Remove references to missing images
+- Bug Fix: Fix 2 XSS vulnerabilities
+- Bug Fix: JSON API: Minor fixes for bbPress compatibility
+- Bug Fix: JSON API: Fix metadata bugs
+- Bug Fix: JSON API: Add a new hook that is fired when a post is posted using
+ the API
+- Bug Fix: JSON API: Prefork/REST: update path normalizer to accept versions
+ other than 1
+- Bug Fix: JSON API: Remove extra parenthesis in CSS
+- Bug Fix: Custom CSS: Move content width filters higher up so that they’re
+ active for all users, not just logged-in admins.
+- Bug Fix: Custom CSS: All CSS properties that accept images as values need to
+ be allowed to be declared multiple times so that cross-browser gradients work
+- Bug Fix: Infinite Scroll: Allow themes to define a custom function to render
+ the IS footer
+- Bug Fix: Infinite Scroll: Fix up Twenty Thirteen styles for RTL and small
+ viewports.
+- Bug Fix: Likes: Fix ‘Call to undefined function’
+- Bug Fix: Likes: Add scrolling no to iframe to make sure that like button in
+ admin bar does not show scrollbars
+- Bug Fix: Likes: Remove setInterval( JetpackLikesWidgetQueueHandler, 250 )
+ call that was causing heavy CPU load
+- Bug Fix: Mobile Theme: Remove unused variable & function call
+- Bug Fix: Publicize: Fix LinkedIn profile URL generation
+- Bug Fix: Publicize: Better refresh handling for services such as LinkedIn
+ and Facebook
+- Bug Fix: Shortcodes: Audio shortcode: Treat src as element 0. Fixes audio
+ shortcodes created by wp_embed_register_handler when an audio url is on a line
+ by itself
+- Bug Fix: Bandcamp: Updates to the Bandcamp shortcode
+- Bug Fix: Stats: Fix missing function get_editable_roles on non-admin page
+ loads
+- Bug Fix: Widgets: Twitter Timeline: Fix HTML links in admin; set default
+ values for width/height; change some of the sanitization functions
+- Bug Fix: Widgets: Top Posts Widget: Exclude attachments
+- Bug Fix: Widgets: Top Posts Widget: fix data validation for number of posts
+- Bug Fix: Fix PHP warnings non-static method called dynamically
+- Bug Fix: Fixed an issue in image extraction from HTML content
+- Bug Fix: Open Graph: Change default minimum size for og:image too 200×200
+- Note: The old Twitter widget was removed in favour of Twitter Timeline
+ widget
+- Note: Add is_module_active() to make it easier to detect what is and what
+ isn’t
+- Note: Compressing images via lossless methods
+- Note: Tidying up jetpack’s CSS
+- Note: Set the max DB version for our retina overrides that were meant to
+ stop for WordPress 3.5
+- Note: Updating spin.js to the current version, and shifting to the canonical
+ jquery.spin.js library
+- Note: Adding Jetpack_Options class, and abstracting out options functions to
+ it
+
+## [2.2.5] - 2013-05-01
+
+- Enhancement: Stats: Counting of registered users' views can now be enabled
+ for specific roles
+- Bug Fix: Security tightening for metadata support in the REST API
+- Bug Fix: Update the method for checking Twitter Timeline widget_id and
+ update coding standards
+- Bug Fix: Custom CSS: Allow the content width setting to be larger than the
+ theme's content width
+- Bug Fix: Custom CSS: Fix possible missing argument warning.
+
+## [2.2.4] - 2013-04-26
+
+- Bug Fix: JSON API compat file include was not assigning a variable
+ correctly, thus throwing errors. This has been resolved.
+
+## [2.2.3] - 2013-04-26
+
+- Enhancement: Comments - Add the reply-title H3 to the comment form so that
+ themes or user CSS can style it
+- Enhancement: Custom CSS - Support for the CSS @viewport
+- Enhancement: JSON API - Support for i_like, is_following, and is_reblogged
+- Enhancement: JSON API: Custom Post Type Support
+- Enhancement: JSON API: Meta Data Support
+- Enhancement: JSON API: Bundled Support for bbPress
+- Enhancement: JSON API: Additions of following, reblog, and like status for
+ post endpoints.
+- Enhancement: Shortcodes - Add Bandcamp shortcode
+- Enhancement: Tiled Galleries - Add code to get blog_id
+- Bug Fix: Carousel - Support relative image paths incase a plugin is
+ filtering attachment URLs to be relative instead of absolute
+- Bug Fix: Carousel - Add likes widget to images / Respect comment settings
+ for name/email
+- Bug Fix: Carousel - Make name and email optional if the setting in the admin
+ area says they are
+- Bug Fix: Contact Form - Bug fixes, including a fix for WP-CLI
+- Bug Fix: Contact Form - Remove deprecated .live calls, delegate lazily to
+ jQuery(document) since it's all in an iframe modal
+- Bug Fix: Contact Form - RTL styles
+- Bug Fix: Contact Form - Better handle MP6 icons
+- Bug Fix: Custom CSS - array_shift() took a variable by reference, so avoid
+ passing it the result of a function
+- Bug Fix: Custom CSS - Allow case-insensitive CSS properties (<a
+ href="https://wordpress.org/support/topic/two-issues-with-jetpack-css-module?replies=9">ref</a>)
+- Bug Fix: Infinite Scroll - Maintain main query's `post__not_in` values when
+ querying posts for IS
+- Bug Fix: Infinite Scroll - Ensure that IS's `pre_get_posts` method isn't
+ applied in the admin. Also fixes an incorrect use of `add_filter()` where
+ `add_action()` was meant. Fixes #1696-plugins
+- Bug Fix: Infinite Scroll - CSS update - IS footer was too large in Firefox
+- Bug Fix: Infinite Scroll - Add bundled support for Twenty Thirteen default
+ theme
+- Bug Fix: Infinite Scroll - Include posts table's prefix when modifying the
+ SQL WordPress generates to retrieve posts for Infinite Scroll
+- Bug Fix: JSON API - Use wp_set_comment_status to change the comment status,
+ to make sure actions are run where needed
+- Bug Fix: Likes - Update style and logic for matching id's
+- Bug Fix: Mobile Theme - Ensure that
+ <code>minileven_actual_current_theme()</code> is child-theme compatible +
+ other updates
+- Bug Fix: Mobile Theme - Update method for finding currently active theme.
+- Bug Fix: Notifications - Remove the postmessage.js enqueue since this
+ feature solely supports native postMessage
+- Bug Fix: Notifications - Clean up script enqueues and use core versions of
+ underscore and backbone on wpcom as fallbacks
+- Bug Fix: Notifications - Enqueue v2 scripts and style
+- Bug Fix: Notifications - Prefix module-specific scripts and style to prevent
+ collision
+- Bug Fix: Notifications - Include lang and dir attributes on
+ #wpnt-notes-panel so the notifications iframe can use these to display
+ correctly
+- Bug Fix: Open Graph: Use the profile OG type instead of author. Add tags for
+ first/last names
+- Bug Fix: Publicize - Remove the Yahoo! service because they stopped
+ supporting that API entirely
+- Bug Fix: Publicize - fix fatal errors caused by using a method on a
+ non-object. Props @ipstenu
+- Bug Fix: Sharing - Adding 2x graphics for Pocket sharing service
+- Bug Fix: Sharing - Bug fixes, and a new filter
+- Bug Fix: Shortcodes - Audio: make sure that the Jetpack audion shortcode
+ does not override the 3.6 core audio shortcode. Also, we need to filter the
+ old Jetpack-style shortcode to properly set the params for the Core audio
+ shortcode.
+- Bug Fix: Shortcodes - Audio: Re-enable the flash player
+- Bug Fix: Shortcodes - Slideshow: RTL styling update
+- Bug Fix: Tiled Galleries - Fix IE8 display bug where it doesn't honor inline
+ CSS for width on images
+- Bug Fix: Tiled Galleries - Remove depreacted hover call, use mouseenter
+ mouseleave instead
+- Enhancement: Twitter Timeline Widget: New JavaScript based widget. Old one
+ will discontinue May 7th.
+
+## 2.2.2 - 2013-04-05
+
+- Enhancement: Mobile Theme: Add controls for custom CSS.
+- Enhancement: Sharing: Add Pocket to the available services.
+- Bug Fix: Custom CSS: Update the method for generating content width setting.
+- Bug Fix: JSON API: Security updates.
+- Bug Fix: Likes: Add settings for email notifications and misc style updates.
+- Bug Fix: Notifications: Add the post types to sync after init.
+- Bug Fix: Publicize: RTL styling.
+- Bug Fix: Shortcodes: security fixes and function prefixing.
+- Bug Fix: Widgets: Update wording on the Top Posts widget for clarity.
+- Bug Fix: Jetpack Post Images security fixes.
+
+## [2.2.1] - 2013-03-28
+
+- Enhancement: Development Mode: Define the `JETPACK_DEV_DEBUG` constant to
+ `true` to enable an offline mode for localhost development. Only modules that
+ don't require a WordPress.com connection can be enabled in this mode.
+- Enhancement: Likes: Added the number of likes to the wp-admin/edit.php
+ screens.
+- Enhancement: Mobile Theme - design refresh
+- Enhancement: Shortcodes - Add a filter to the shortcode loading section so
+ that a plugin can override what Jetpack loads for shortcodes
+- Enhancement: Widgets - Filter Jetpack's widgets so that a plugin can control
+ which widgets get loaded
+- Bug Fix: Comments - Add in a wrapper div with id='commentform'
+- Bug Fix: Contact Form - Added date field with datepicker
+- Bug Fix: Contact Form - Allowed non-text widgets to use contact forms by
+ running their output through the widget_text filter
+- Bug Fix: Custom CSS - Allowing color values to be defined multiple times
+- Bug Fix: Custom CSS - Dynamically loading the correct CSS/LESS/SCSS mode for
+ the CSS editor if the user changes the preprocessor
+- Bug Fix: Custom CSS - Using the unminified worker CSS
+- Bug Fix: Custom CSS - Added rule: reminder about using .custom-background on
+ body selector
+- Bug Fix: Custom CSS - Modified rule: Removed portion of overqualification
+ rule that deems 'a.foo' overqualified if there are no other 'a' rules
+- Bug Fix: Custom CSS - Ensuring that the editor and the textarea behind it
+ are using the same font so that the cursor appears in the correct location
+- Bug Fix: Custom CSS - Fix a bug that caused some sites to always ignore the
+ base theme's CSS when in preview mode
+- Bug Fix: Custom CSS - Run stripslashes() before passing CSS to save()
+- Bug Fix: Custom CSS - Moving inline CSS and JavaScript into external files
+- Bug Fix: Infinite Scroll - Use the `is_main_query()` function and query
+ method
+- Bug Fix: Infinite Scroll - Remove unused styles and an unnecessary margin
+ setting
+- Bug Fix: Infinite Scroll - Allow the query used with IS to be filtered, so
+ IS can be applied to a new query within a page template
+- Bug Fix: JSON API - Catch the 'User cannot view password protected post'
+ error from can_view_post and bypass it for likes actions if the user has the
+ password entered
+- Bug Fix: Likes - Bump cache buster, Don't show likes for password protected
+ posts
+- Bug Fix: Notifications - Remove a redundant span closing tag
+- Bug Fix: Photon - If an image is already served from Photon but the anchor
+ tag that surrounds it hasn't had its `href` value rewritten to use Photon, do
+ so. Accounts for WP galleries whose individual items are linked to the
+ original image files
+- Bug Fix: Publicize - Allows GLOBAL_CAP to be filtered, Adds an AYS to
+ connection deletion, UI improvement for MP6 (and in general)
+- Bug Fix: Sharedaddy - Fire the sharing redirect earlier for increased plugin
+ compatibility
+- Bug Fix: Stats - Move the display:none CSS output to wp_head so it gets
+ written inside the HEAD tag if the option to hide the stats smilie is active
+- Bug Fix: Tiled Galleries - A more descriptive name for the default gallery
+ type
+- Bug Fix: Tiled Galleries - Hide the Columns setting for gallery types that
+ don't support it
+- Bug Fix: Run the admin_menu action late so that plugins hooking into it get
+ a chance to run
+- Bug Fix: Prophylactic strict equality check
+
+## [2.2] - 2013-02-26
+
+- Enhancement: Likes: Allow your readers to show their appreciation of your
+ posts.
+- Enhancement: Shortcodes: SoundCloud: Update to version 2.3 of the SoundCloud
+ plugin (HTML5 default player, various fixes).
+- Enhancement: Shortcodes: Subscriptions: Add a shortcode to enable placement
+ of a subscription signup form in a post or page.
+- Enhancement: Sharedaddy: Allow selecting multiple images from a post using
+ the Pinterest share button.
+- Enhancement: Contact Form: Allow feedbacks to be marked spam in bulk.
+- Enhancement: Widgets: Readmill Widget: Give your visitors a link to send
+ your book to their Readmill library.
+- Note: Notifications: Discontinue support for Internet Explorer 7 and below.
+- Bug Fix: JSON API: Fix authorization problems that some users were
+ experiencing.
+- Bug Fix: JSON API: Sticky posts were not being sorted correctly in /posts
+ requests.
+- Bug Fix: Stats: sync stats_options so server has roles array needed for
+ view_stats cap check.
+- Bug Fix: Infinite Scroll: Display improvements.
+- Bug Fix: Infinite Scroll: WordPress compatibility fixes.
+- Bug Fix: Photon: Only rewrite iamge urls if the URL is compatible with
+ Photon.
+- Bug Fix: Photon: Account for registered image sizes with one or more
+ dimesions set to zero.
+- Bug Fix: Subscriptions: Make HTML markup more valid.
+- Bug Fix: Subscriptions: Fixed notices displayed in debug mode.
+- Bug Fix: Custom CSS: CSS warnings and errors should now work in environments
+ where JavaScript is concatenated or otherwise modified before being served.
+- Bug Fix: Hovercards: WordPress compatibility fixes.
+- Bug Fix: Improved image handling for the Sharing and Publicize modules.
+- Bug Fix: Carousel: Display and Scrollbar fixes.
+- Bug Fix: Tiled Galleries: Restrict images in tiled galleries from being set
+ larger than their containers.
+- Bug Fix: Widgets: Gravatar Profile: CSS fixes.
+- Bug Fix: Publicize: Strip HTML comments from the data we send to the third
+ party services.
+- Bug Fix: Notifications: Dropped support for IE7 and below in the
+ notifications menu.
+- Bug Fix: Custom CSS Editor: Allow custom themes to save CSS more easily.
+- Bug Fix: Infinite Scroll: Waits until the DOM is ready before loading the
+ scrolling code.
+- Bug Fix: Mobile Theme: If the user has disabled the custom header text
+ color, show the default black header text color.
+- Bug Fix: Mobile Theme: Fix for the "View Full Site" link.
+- Bug Fix: Mobile Theme: Use a filter to modify the output of wp_title().
+- Bug Fix: Publicize: Twitter: Re-enable character count turning red when more
+ than 140 characters are typed.
+
+## 2.1.2 - 2013-02-05
+
+- Enhancement: Infinite Scroll: Introduce filters for Infinite Scroll.
+- Enhancement: Shortcodes: TED shortcode.
+- Bug Fix: Carousel: Make sure to use large image sizes.
+- Bug Fix: Carousel: Clicking the back button in your browser after exiting a
+ carousel gallery brings you back to the gallery.
+- Bug Fix: Carousel: Fix a scrollbar issue.
+- Bug Fix: Comments: Move the get_avatar() function out of the base class.
+- Bug Fix: Contact Form: Prevent the form from displaying i18n characters.
+- Bug Fix: Contact Form: Remove the !important CSS rule.
+- Bug Fix: Infinite Scroll: Main query arguments are not respected when using
+ default permalink.
+- Bug Fix: JSON API: Trap 'wp_die' for new comments and image uploads.
+- Bug Fix: JSON API: Use a better array key for the user_ID.
+- Bug Fix: JSON API: Make the class instantiable only once, but multi-use.
+- Bug Fix: JSON API: Fix lookup of pages by page slug.
+- Bug Fix: JSON API: Updates for post likes.
+- Bug Fix: Mobile Theme: Remove Android download link for BB10 and Playbook.
+- Bug Fix: Open Graph: Stop using Loop functions to get post data for meta
+ tags.
+- Bug Fix: Photon: Suppress and check for warnings when pasing_url and using
+ it.
+- Bug Fix: Photon: Ensure full image size can be used.
+- Bug Fix: Photon: Resolve Photon / YouTube embed conflict.
+- Bug Fix: Photon: Fix dimension parsing from URLs.
+- Bug Fix: Photon: Make sure that width/height atts are greater than zero.
+- Bug Fix: Sharedaddy: Layout fixes for share buttons.
+- Bug Fix: Sharedaddy: Always send Facebook a language locale.
+- Bug Fix: Sharedaddy: Don't look up share counts for empty URLs.
+- Bug Fix: Shortcodes: Ensure that images don't overflow their containers in
+ the slideshow shortcode.
+- Bug Fix: Shortcodes: only enqueue jquery if archive supports Infinite Scroll
+ in the Audio Shortcode.
+- Bug Fix: Tiled Galleries: Use a more specific class for gallery item size to
+ avoid conflicts.
+- Bug Fix: Tiled Galleries: Fixing scrolling issue when tapping on a Tiled
+ Gallery on Android.
+- Bug Fix: Widgets: Gravatar profile widget typo.
+- Bug Fix: Widgets: Add (Jetpack) to widget titles.
+- Bug Fix: Widgets: Twitter wasn't wrapping links in the t.co shortener.
+- Bug Fix: Widgets: Facebook Likebox updates to handling the language locale.
+- Bug Fix: Widgets: Top Posts: Fixed a WP_DEBUG notice.
+- Bug Fix: Widgets: Gravatar Profile Widget: transient names must be less than
+ 45 characters long.
+- Bug Fix: typo in delete_post_action function.
+- Bug Fix: Load rendered LaTeX image on same protocol as its page.
+
+## [2.1.1] - 2013-01-05
+
+- Bug Fix: Fix for an error appearing for blogs updating from Jetpack 1.9.2 or
+ earlier to 2.1.
+
+## [2.1] - 2013-01-04
+
+- Enhancement: Tiled Galleries: Show off your photos with cool mosaic
+ galleries.
+- Enhancement: Slideshow gallery type: Display any gallery as a slideshow.
+- Enhancement: Custom CSS: Allow zoom property.
+- Enhancement: Stats: Show WordPress.com subscribers in stats.
+- Bug Fix: Fix errors shown after connecting Jetpack to WordPress.com.
+- Bug Fix: Photon: Fix bug causing errors to be shown in some posts.
+- Bug Fix: Photon: Convert all images in posts when Photon is active.
+- Bug Fix: Infinite Scroll: Improved compatibility with the other modules.
+- Bug Fix: Custom CSS: Updated editor to fix missing file errors.
+- Bug Fix: Publicize: Don't show the Facebook profile option if this is a
+ Page-only account.
+- Bug Fix: Photon: A fix for photos appearing shrunken if they didn't load
+ quickly enough.
+- Bug Fix: Sharing: A compatibility fix for posts that only have partial
+ featured image data.
+- Bug Fix: Publicize/Sharing: For sites without a static homepage, don't set
+ the OpenGraph url value to the first post permalink.
+- Bug Fix: Mobile Theme: Better compatibility with the customizer on mobile
+ devices.
+- Bug Fix: Sharing: Don't show sharing options on front page if that option is
+ turned off.
+- Bug Fix: Contact Form: Fix PHP warning shown when adding a Contact Form in
+ WordPress 3.5.
+- Bug Fix: Photon: Handle images with relative paths.
+- Bug Fix: Contact Form: Fix compatibility with the Shortcode Embeds module.
+
+## [2.0.4] - 2012-12-14
+
+- Bug Fix: Open Graph: Correct a bug that prevents Jetpack from being
+ activated if the SharePress plugin isn't installed.
+
+## [2.0.3] - 2012-12-14
+
+- Enhancement: Infinite Scroll: support
+ [VideoPress](https://wordpress.org/plugins/video/) plugin.
+- Enhancement: Photon: Apply to all images retrieved from the Media Library.
+- Enhancement: Photon: Retina image support.
+- Enhancement: Custom CSS: Refined editor interface.
+- Enhancement: Custom CSS: Support [Sass](http://sass-lang.com/) and
+ [LESS](http://lesscss.org/) with built-in preprocessors.
+- Enhancement: Open Graph: Better checks for other plugins that may be loading
+ Open Graph tags to prevent Jetpack from doubling meta tag output.
+- Bug Fix: Infinite Scroll: Respect relative image dimensions.
+- Bug Fix: Photon: Detect custom-cropped images and use those with Photon,
+ rather than trying to use the original.
+- Bug Fix: Custom CSS: Fix for bug preventing @import from working with
+ url()-style URLs.
+
+## [2.0.2] - 2012-11-21
+
+- Bug Fix: Remove an erroneous PHP short open tag with the full tag to correct
+ fatal errors under certain PHP configurations.
+
+## [2.0.1] - 2012-11-21
+
+- Enhancement: Photon: Support for the [Lazy
+ Load](https://wordpress.org/plugins/lazy-load/) plugin.
+- Bug Fix: Photon: Fix warped images with un- or under-specified dimensions.
+- Bug Fix: Photon: Fix warped images with pre-photonized URLs; don't try to
+ photonize them twice.
+- Bug Fix: Infinite Scroll: Check a child theme's parent theme for infinite
+ scroll support.
+- Bug Fix: Infinite Scroll: Correct a bug with archives that resulted in posts
+ appearing on archives that they didn't belong on.
+- Bug Fix: Publicize: Send the correct shortlink to Twitter (et al.) if your
+ site uses a shortener other than wp.me.
+- Bug Fix: Sharing: Improved theme compatibility for the Google+ button.
+- Bug Fix: Notifications: Use locally-installed Javascript libraries if
+ available.
+
+## [2.0] - 2012-11-08
+
+- Enhancement: Publicize: Connect your site to popular social networks and
+ automatically share new posts with your friends.
+- Enhancement: Post By Email: Publish posts to your blog directly from your
+ personal email account.
+- Enhancement: Photon: Images served through the global WordPress.com cloud.
+- Enhancement: Infinite Scroll: Better/faster browsing by pulling the next set
+ of posts into view automatically when the reader approaches the bottom of the
+ page.
+- Enhancement: Open Graph: Provides more detailed information about your posts
+ to social networks.
+- Enhancement: JSON API: New parameters for creating and viewing posts.
+- Enhancement: Improved compatibility for the upcoming WordPress 3.5.
+- Bug Fix: Sharing: When you set your sharing buttons to use icon, text, or
+ icon + text mode, the Google+ button will display accordingly.
+- Bug Fix: Gravatar Profile Widget: Allow basic HTML to be displayed.
+- Bug Fix: Twitter Widget: Error handling fixes.
+- Bug Fix: Sharing: Improved theme compatibility
+- Bug Fix: JSON API: Fixed error when creating some posts in some versions of
+ PHP.
+
+## 1.9.2 - 2012-10-29
+
+- Bug Fix: Only sync options on upgrade once.
+
+## [1.9.1] - 2012-10-29
+
+- Enhancement: Notifications feature is enabled for logged-out users when the
+ module is active & the toolbar is shown by another plugin.
+- Bug Fix: Use proper CDN addresses to avoid SSL cert issues.
+- Bug Fix: Prioritize syncing comments over deleting comments on
+ WordPress.com. Fixes comment notifications marked as spam appearing to be
+ trashed.
+
+## [1.9] - 2012-10-26
+
+- Enhancement: Notifications: Display Notifications in the toolbar and support
+ reply/moderation of comment notifications.
+- Enhancement: Mobile Push Notifications: Added support for mobile push
+ notifications of new comments for users that linked their accounts to
+ WordPress.com accounts.
+- Enhancement: JSON API: Allows applications to send API requests via
+ WordPress.com (see [the docs](http://developer.wordpress.com/docs/api/) )
+- Enhancement: Sync: Modules (that require the data) sync full Post/Comment to
+ ensure consistent data on WP.com (eg Stats)
+- Enhancement: Sync: Improve syncing of site options to WP.com
+- Enhancement: Sync: Sync attachment parents to WP.com
+- Enhancement: Sync: Add signing of WP.com user ids for Jetpack Comments
+- Enhancement: Sync: Mark and obfuscate private posts.
+- Enhancement: Privacy: Default disable enhanced-distribution and json-api
+ modules if site appears to be private.
+- Enhancement: Custom CSS: allow applying Custom CSS to mobile theme.
+- Enhancement: Sharing: On HTTPS pageloads, load as much of the sharing embeds
+ as possible from HTTPS URLs.
+- Enhancement: Contact Form: Overhaul of the contact form code to fix
+ incompatibilites with other plugins.
+- Bug Fix: Only allow users with manage_options permission to enable/disable
+ modules
+- Bug Fix: Custom CSS: allow '/' in media query units; e.g.
+ (-o-min-device-pixel-ratio: 3/2)
+- Bug Fix: Custom CSS: leave comments alone in CSS when editing but minify on
+ the front end
+- Bug Fix: Sharing: Keep "more" pane open so Google+ Button isn't obscured
+- Bug Fix: Carousel: Make sure the original size is used, even when it is
+ exceedingly large.
+- Bug Fix: Exclude iPad from Twitter on iPhone mobile browsing
+- Bug Fix: Sync: On .org user role changes synchronize the change to .com
+- Bug Fix: Contact Form: Fix a bug where some web hosts would reject mail from
+ the contact form due to email address spoofing.
+
+## 1.8.3 - 2012-10-23
+
+- Bug Fix: Subscriptions: Fix a bug where subscriptions were not being sent
+ from the blog.
+- Bug Fix: Twitter: Fix a bug where the Twitter username was being saved as
+ blank.
+- Bug Fix: Fix a bug where Contact Form notification emails were not being
+ sent.
+
+## [1.8.2] - 2012-10-04
+
+- Bug Fix: Subscriptions: Fix a bug where subscriptions were not sent for
+ posts and comments written by some authors.
+- Bug Fix: Widgets: Fix CSS that was uglifying some themes (like P2).
+- Bug Fix: Widgets: Improve Top Posts and Pages styling.
+- Bug Fix: Custom CSS: Make the default "Welcome" message translatable.
+- Bug Fix: Fix Lithuanian translation.
+
+## [1.8.1] - 2012-09-28
+
+- Bug Fix: Stats: Fixed a bug preventing some users from viewing stats.
+- Bug Fix: Mobile Theme: Fixed some disabled toolbar buttons.
+- Bug Fix: Top Posts widget: Fixed a bug preventing the usage of the Top Posts
+ widget.
+- Bug Fix: Mobile Theme: Fixed a bug that broke some sites when the
+ Subscriptions module was not enabled and the Mobile Theme module was enabled.
+- Bug Fix: Mobile Theme: Made mobile app promos in the Mobile Theme footer
+ opt-in.
+- Bug Fix: Twitter Widget: A fix to prevent malware warnings.
+- Bug Fix: Mobile Theme: Fixed a bug that caused errors for some users with
+ custom header images.
+
+## [1.8] - 2012-09-27
+
+- Enhancement: Mobile Theme: Automatically serve a slimmed down version of
+ your site to users on mobile devices.
+- Enhancement: Multiuser: Allow multiple users to link their accounts to
+ WordPress.com accounts.
+- Enhancement: Custom CSS: Added support for object-fit, object-position,
+ transition, and filter properties.
+- Enhancement: Twitter Widget: Added Follow button
+- Enhancement: Widgets: Added Top Posts and Pages widget
+- Enhancement: Mobile Push Notifications: Added support for mobile push
+ notifications on new comments.
+- Enhancement: VideoPress: Shortcodes now support the HD option, for default
+ HD playback.
+- Bug Fix: Twitter Widget: Fixed tweet permalinks in the Twitter widget
+- Bug Fix: Custom CSS: @import rules and external images are no longer
+ stripped out of custom CSS
+- Bug Fix: Custom CSS: Fixed warnings and notices displayed in debug mode
+- Bug Fix: Sharing: Fixed double-encoding of image URLs
+- Bug Fix: Sharing: Fix Google +1 button HTML validation issues (again :))
+- Bug Fix: Gravatar Profile Widget: Reduce size of header margins
+
+## [1.7] - 2012-08-23
+
+- Enhancement: CSS Editor: Customize your site's design without modifying your
+ theme.
+- Enhancement: Comments: Submit the comment within the iframe. No more full
+ page load to jetpack.wordpress.com.
+- Enhancement: Sharing: Share counts for Twitter, Facebook, LinkedIn
+- Enhancement: Sharing: Improve styling
+- Enhancement: Sharing: Add support for ReCaptcha
+- Enhancement: Sharing: Better extensability through filters
+- Enhancement: Widgets: Twitter: Attempt to reduce errors by storing a long
+ lasting copy of the data. Thanks, kareldonk :)
+- Regression Fix: Sharing: Properly store and display the sharing label
+ option's default value.
+- Bug Fix: Contact Form: remove worse-than-useless nonce.
+- Bug Fix: Subscriptions: remove worse-than-useless nonce.
+- Bug Fix: Sharing: Don't show sharing buttons twice on attachment pages.
+- Bug Fix: Sharing: Increase width of Spanish Like button for Facebook.
+- Bug Fix: Sharing: Use the correct URL to the throbber.
+- Bug Fix: Stats: Fix notice about undefined variable $alt
+- Bug Fix: Subscriptions: Make Subscriptions module obey the settings of the
+ Settngs -> Discussion checkboxes for Follow Blog/Comments
+- Bug Fix: Shortcodes: VideoPress: Compatibility with the latest version of
+ VideoPress
+- Bug Fix: Shortcodes: Audio: Include JS File for HTML5 audio player
+- Bug Fix: Hovercards: Improve cache handling.
+- Bug Fix: Widgets: Gravatar Profle: Correctly display service icons in edge
+ cases.
+- Bug Fix: Widgets: Gravatar Profle: Prevent ugly "flash" of too-large image
+ when page first loads on some sites
+- Bug Fix: Carousel: CSS Compatibility with more themes.
+
+## 1.6.1 - 2012-08-04
+
+- Bug Fix: Prevent Fatal error under certain conditions in sharing module
+- Bug Fix: Add cachebuster to sharing.css
+- Bug Fix: Disable via for Twitter until more robust code is in place
+
+## [1.6] - 2012-08-02
+
+- Enhancement: Carousel: Better image resolution selection based on available
+ width/height.
+- Enhancement: Carousel: Load image caption, metadata, comments, et alii when
+ a slide is clicked to switch to instead of waiting.
+- Enhancement: Carousel: Added a "Comment" button and handling to scroll to
+ and focus on comment textarea.
+- Enhancement: Widgets: Facebook Likebox now supports a height parameter and a
+ better width parameter.
+- Enhancement: Widgets: Better feedback when widgets are not set up properly.
+- Enhancement: Shortcodes: Google Maps shortcode now supports percentages in
+ the width.
+- Enhancement: Shortcodes: Update Polldaddy shortcode for more efficient
+ Javascript libraries.
+- Enhancement: Shortcodes: Youtube shortcode now has playlist support.
+- Enhancement: Add Gravatar Profile widget.
+- Enhancement: Update Sharedaddy to latest version, including Pinterest
+ support.
+- Enhancement: Retinize Jetpack and much of WordPress.
+- Bug Fix: Shortcodes: Fix Audio shortcode color parameter and rename encoding
+ function.
+- Bug Fix: Shortcodes: Don't output HTML 5 version of the Audio shortcode
+ because of a bug with Google Reader.
+- Bug Fix: Jetpack Comments: Don't overlead the addComments object if it
+ doesn't exist. Fixes spacing issue with comment form.
+- Bug Fix: Contact Form: If send_to_editor() exists, use it. Fixes an IE9 text
+ area issue.
+
+## [1.5] - 2012-07-31
+
+- Enhancement: Add Gallery Carousel feature
+- Note: the Carousel module bundles http://fgnass.github.com/spin.js/ (MIT
+ license)
+
+## 1.4.2 - 2012-06-20
+
+- Bug Fix: Jetpack Comments: Add alternative Javascript event listener for
+ Internet 8 users.
+- Enhancement: Remove more PHP 4 backwards-compatible code (WordPress
+ andJetpack only support PHP 5).
+- Enhancement: Remove more WordPress 3.1 and under backwards-compatible code.
+
+## 1.4.1 - 2012-06-15
+
+- Bug Fix: Jetpack Comments / Subscriptions: Add checkboxes and logic control
+ for the Subscription checkboxes.
+
+## [1.4] - 2012-06-14
+
+- Enhancement: Add Jetpack Comments feature.
+- Bug Fix: Sharing: Make the sharing_label translatable.
+- Bug Fix: Sharing: Fixed the file type on the LinkedIn graphic.
+- Bug Fix: Sharing: Fixes for the Faceboox Like button language locales.
+- Bug Fix: Sharing: Updates for the "more" button when used with touch screen
+ devices.
+- Bug Fix: Sharing: Properly scope the More button so that multiple More
+ buttons on a page behave properly.
+- Bug Fix: Shortcodes: Update the YouTube and Audio shortcodes to better
+ handle spaces in the URLs.
+- Bug Fix: Shortcodes: Make the YouTube shortcode respect embed settings in
+ Settings -> Media when appropriate.
+- Bug Fix: Shortcodes: Removed the Slide.com shortcode; Slide.com no longer
+ exists.
+- Bug Fix: Shortcodes: Match both http and https links in the [googlemaps]
+ shortcode.
+- Bug Fix: After the Deadline: Code clean up and removal of inconsistencies.
+
+## 1.3.4 - 2012-05-24
+
+- Bug Fix: Revert changes to the top level menu that are causing problems.
+
+## 1.3.3 - 2012-05-22
+
+- Bug Fix: Fix notices caused by last update
+
+## 1.3.2 - 2012-05-22
+
+- Bug Fix: Fix Jetpack menu so that Akismet and VaultPress submenus show up.
+
+## 1.3.1 - 2012-05-22
+
+- Enhancement: Add a new widget, the Facebook Likebox
+- Bug Fix: Sharing: Sharing buttons can now be used on custom post types.
+- Bug Fix: Contact Forms: Make Contact Forms widget shortcode less aggressive
+ about the shortcodes it converts.
+- Bug Fix: Ensure contact forms are parsed correctly in text widgets.
+- Bug Fix: Connection notices now only appear on the Dashboard and plugin
+ page.
+- Bug Fix: Connection notices are now dismissable if Jetpack is not network
+ activated.
+- Bug Fix: Subscriptions: Fix an issue that was causing errors with new
+ BuddyPress forum posts.
+
+## [1.3] - 2012-04-25
+
+- Enhancement: Add Contact Forms feature. Formerly Grunion Contact Forms.
+- Bug Fix: Tweak YouTube autoembedder to catch more YouTube URLs.
+- Bug Fix: Correctly load the Sharing CSS files.
+
+## 1.2.4 - 2012-04-06
+
+- Bug Fix: Fix rare bug with static front pages
+
+## [1.2.3] - 2012-04-05
+
+- Enhancement: Twitter Widget: Expand t.co URLs
+- Bug Fix: Various PHP Notices.
+- Bug Fix: WordPress Deprecated `add_contextual_help()` notices
+- Bug Fix: Don't display unimportant DB errors when processing Jetpack nonces
+- Bug Fix: Correctly sync data during certain MultiSite cases.
+- Bug Fix: Stats: Allow sparkline img to load even when there is a DB upgrade.
+- Bug Fix: Stats: Replace "loading title" with post title regardless of type
+ and status.
+- Bug Fix: Stats: Avoid edge case infinite redirect for `show_on_front=page`
+ sites where the `home_url()` conatins uppercase letters.
+- Bug Fix: Subscriptions: Don't send subscriptions if the feature is turned
+ off in Jetpack.
+- Bug Fix: Subscriptions: Fix pagination of subscribers.
+- Bug Fix: Subscriptions: Sync data about categories/tags as well to improve
+ subscription emails.
+- Bug Fix: Subscriptions: Better styling for the subscription success message.
+- Bug Fix: Shortcodes: Support for multiple Google Maps in one post. Support
+ for all Google Maps URLs.
+- Bug Fix: Shortcodes: Improved support for youtu.be URLs
+- Bug Fix: Shortcodes: Improved Vimeo embeds.
+- Bug Fix: Sharing: Switch to the 20px version of Google's +1 button for
+ consistency.
+- Bug Fix: Sharing: Fix Google +1 button HTML validation issues.
+- Bug Fix: Sharing: Disable sharing buttons during preview.
+- Bug Fix: Spelling and Grammar: Properly handle proofreading settings.
+- Bug Fix: Spelling and Grammar: Don't prevent post save when proofreading
+ service is unavailable.
+
+## [1.2.2] - 2011-12-06
+
+- Bug Fix: Ensure expected modules get reactivated correctly during upgrade.
+- Bug Fix: Don't send subscription request during spam comment submission.
+- Bug Fix: Increased theme compatibility for subscriptions.
+- Bug Fix: Remove reference to unused background image.
+
+## [1.2.1] - 2011-11-18
+
+- Bug Fix: Ensure Site Stats menu item is accessible.
+- Bug Fix: Fixed errors displayed during some upgrades.
+- Bug Fix: Fix inaccurate new modules "bubble" in menu for some upgrades.
+- Bug Fix: Fix VaultPress detection.
+- Bug Fix: Fix link to http://jetpack.com/faq/
+
+## [1.2] - 2011-11-17
+
+- Enhancement: Add Subscriptions: Subscribe to site's posts and posts'
+ comments.
+- Enhancement: Add Google Maps shortcode.
+- Enhancement: Add Image Widget.
+- Enhancement: Add RSS Links Widget.
+- Enhancement: Stats: More responsive stats dashboard.
+- Enhancement: Shortcodes: Google Maps, VideoPress
+- Enhancement: Sharing: Google+, LinkedIn
+- Enhancement: Enhanced Distribution: Added Jetpack blogs to
+ https://en.wordpress.com/firehose/
+- Bug Fix: Spelling and Grammar: WordPress 3.3 compatibility.
+- Bug Fix: Translatable module names/descriptinos.
+- Bug Fix: Correctly detect host's ability to make outgoing HTTPS requests.
+
+## [1.1.3] - 2011-07-19
+
+- Bug Fix: Increase compatibility with WordPress 3.2's new
+ `wp_remote_request()` API.
+- Bug Fix: Increase compatibility with Admin Bar.
+- Bug Fix: Stats: Improved performance when creating new posts.
+- Bug Fix: Twitter Widget: Fix PHP Notice.
+- Bug Fix: Sharedaddy: Fix PHP Warning.
+- Enhancement: AtD: Add spellcheck button to Distraction Free Writing screen.
+- Translations: Added: Bosnian, Danish, German, Finnish, Galician, Croatian,
+ Indonesian, Macedonian, Norwegian (Bokmål), Russian, Slovak, Serbian, Swedish
+- Translations: Updated: Spanish, French, Italian, Japanese, Brazilian
+ Portuguese, Portuguese
+
+## [1.1.2] - 2011-07-06
+
+- Bug Fix: Note, store, and keep fresh the time difference between the Jetpack
+ site's host and the Jetpack servers at WordPress.com. Should fix all
+ "timestamp is too old" errors.
+- Bug Fix: Improve experience on hosts capable of making outgoing HTTPS
+ requests but incapable of verifying SSL certificates. Fixes some
+ "register_http_request_failed", "error setting certificate verify locations",
+ and "error:14090086:lib(20):func(144):reason(134)" errors.
+- Bug Fix: Better fallback when WordPress.com is experiencing problems.
+- Bug Fix: It's Jetpack, not JetPack :)
+- Bug Fix: Remove PHP Warnings/Notices.
+- Bug Fix: AtD: JS based XSS bug. Props markjaquith.
+- Bug Fix: AtD: Prevent stored configuration options from becoming corrupted.
+- Bug Fix: Stats: Prevent missing old stats for some blogs.
+- Bug Fix: Twitter Widget: Fix formatting of dates/times in PHP4.
+- Bug Fix: Twitter Widget: Cache the response from Twitter to prevent "Twitter
+ did not respond. Please wait a few minutes and refresh this page." errors.
+- Enhancement: Slightly improved RTL experience. Jetpack 1.2 should include a
+ much better fix.
+- Enhancement: Sharedaddy: Improve localization for Facebook Like button.
+- Enhancement: Gravatar Hovercards: Improved experience for Windows browsers.
+
+## [1.1.1] - 2011-03-19
+
+- Bug Fix: Improve experience on hosts capable of making outgoing HTTPS
+ requests but incapable of verifying SSL certificates. Fixes most "Your Jetpack
+ has a glitch. Connecting this site with WordPress.com is not possible. This
+ usually means your site is not publicly accessible (localhost)." errors.
+- Bug Fix: Sharedaddy: Fatal error under PHP4. Disable on PHP4 hosts.
+- Bug Fix: Stats: Fatal error under PHP4. Rewrite to be PHP4 compatible.
+- Bug Fix: Stats: Fatal error on some sites modifying/removing core WordPress
+ user roles. Add sanity check.
+- Bug Fix: Stats: Replace debug output with error message in dashboard widget.
+- Bug Fix: Stats: Rework hook priorities so that stats views are always
+ counted even if a plugin (such as Paginated Comments) bails early on
+ template_redirect.
+- Bug Fix: Identify the module that connot be activated to fatal error during
+ single module activation.
+- Bug Fix: `glob()` is not always available. Use `opendir()`, `readdir()`,
+ `closedir()`.
+- Bug Fix: Send permalink options to Stats Server for improved per post
+ permalink calculation.
+- Bug Fix: Do not hide Screen Options and Help links during Jetpack call to
+ connect.
+- Bug Fix: Improve readablitiy of text.
+- Bug Fix: AtD: Correctly store/display options.
+- Enhancement: Output more informative error messages.
+- Enhancement: Improve CSS styling.
+- Enhancement: Stats: Query all post types and statuses when getting posts for
+ stats reports.
+- Enhancement: Improve performance of LaTeX URLs be using cookieless CDN.
+
+## [1.1] - 2011-03-09
+
+- Initial release
+
+[9.5]: https://wp.me/p1moTy-uSv
+[9.4]: https://wp.me/p1moTy-tOv
+[9.3]: https://wp.me/p1moTy-sgZ
+[9.2]: https://wp.me/p1moTy-scn
+[9.1]: https://wp.me/p1moTy-s0E
+[9.0]: https://wp.me/p1moTy-rLy
+[8.9]: https://wp.me/p1moTy-rAs
+[8.8]: https://wp.me/p1moTy-rs2
+[8.7]: https://wp.me/p1moTy-qiH
+[8.6]: https://wp.me/p1moTy-pb1
+[8.5]: https://wp.me/p1moTy-p00
+[8.4]: https://wp.me/p1moTy-oPp
+[8.3]: https://wp.me/p1moTy-nZT
+[8.2]: https://wp.me/p1moTy-mVu
+[8.1.1]: https://wp.me/p1moTy-lJT
+[8.1]: https://wp.me/p1moTy-lJT
+[8.0]: https://wp.me/p1moTy-lGH
+[7.9.1]: https://wp.me/p1moTy-lHA
+[7.9]: https://wp.me/p1moTy-lzt
+[7.8]: https://wp.me/p1moTy-lvE
+[7.7]: https://wp.me/p1moTy-log
+[7.6]: https://wp.me/p1moTy-ljs
+[7.5.3]: https://wp.me/p1moTy-k9A
+[7.5.2]: https://wp.me/p1moTy-k9A
+[7.5.1]: https://wp.me/p1moTy-k9A
+[7.5]: https://wp.me/p1moTy-k9A
+[7.4.1]: https://wp.me/p1moTy-kvz
+[7.4]: https://wp.me/p1moTy-jgZ
+[7.3.1]: https://wp.me/p1moTy-jgO
+[7.3]: https://wp.me/p1moTy-ipR
+[7.2.1]: https://wp.me/p1moTy-h7o
+[7.2]: https://wp.me/p1moTy-foe
+[7.1.1]: https://wp.me/p1moTy-foJ
+[7.1]: https://wp.me/p1moTy-e9x
+[7.0.1]: https://wp.me/p1moTy-eFX
+[7.0]: https://wp.me/p1moTy-dqO
+[6.9]: https://wp.me/p1moTy-cEZ
+[6.8.1]: https://wp.me/p1moTy-d3t
+[6.8]: https://wp.me/p1moTy-cee
+[6.7]: https://wp.me/p1moTy-aEq
+[6.6.1]: https://wp.me/p1moTy-aEt
+[6.6]: https://wp.me/p1moTy-aa1
+[6.5]: https://wp.me/p1moTy-a7U
+[6.4.2]: https://wp.me/p1moTy-9pL
+[6.4.1]: https://wp.me/p1moTy-9pc
+[6.4]: https://wp.me/p1moTy-9md
+[6.3.3]: https://wp.me/p1moTy-9n0
+[6.3.2]: https://wp.me/p1moTy-96E
+[6.3]: https://wp.me/p1moTy-8ag
+[6.2.1]: https://wp.me/p1moTy-8am
+[6.2]: https://wp.me/p1moTy-88v
+[6.1.1]: https://wp.me/p1moTy-85t
+[6.1]: https://wp.me/p1moTy-7Sj
+[6.0]: https://wp.me/p1moTy-7xM
+[5.9]: https://wp.me/p1moTy-7mW
+[5.8]: https://wp.me/p1moTy-731
+[5.7.1]: https://wp.me/p1moTy-7aS
+[5.7]: https://wp.me/p1moTy-6FR
+[5.6.1]: https://wp.me/p1moTy-6Jk
+[5.6]: https://wp.me/p1moTy-6zt
+[5.5.1]: https://wp.me/p1moTy-6Bd
+[5.5]: https://wp.me/p1moTy-6rk
+[5.4]: http://wp.me/p1moTy-67V
+[5.3]: http://wp.me/p1moTy-5Xv
+[5.2.1]: https://jetpack.com/?p=22686
+[5.2]: https://jetpack.com/?p=22509
+[5.1]: https://jetpack.com/?p=20888
+[5.0]: http://wp.me/p1moTy-5hK
+[4.9]: http://wp.me/p1moTy-4Rl
+[4.8.2]: http://wp.me/p1moTy-4P0
+[4.8.1]: http://wp.me/p1moTy-4N5
+[4.8]: http://wp.me/p1moTy-4gA
+[4.7.1]: http://wp.me/p1moTy-48Y
+[4.7]: http://wp.me/p1moTy-46L
+[4.6]: http://wp.me/p1moTy-40g
+[4.5]: http://wp.me/p1moTy-3Kc
+[4.4.2]: http://wp.me/p1moTy-3JR
+[4.4.1]: http://wp.me/p1moTy-3JR
+[4.4]: http://wp.me/p5U9nj-2Ow
+[4.1]: http://wp.me/p1moTy-3jd
+[4.0.4]: http://wp.me/p1moTy-3eT
+[4.0.3]: http://wp.me/p1moTy-3hm
+[4.0]: http://wp.me/p1moTy-3dL
+[3.9.6]: http://wp.me/p1moTy-3bz
+[3.9.5]: http://wp.me/p1moTy-3bz
+[3.9.4]: http://wp.me/p1moTy-396
+[3.9.3]: http://wp.me/p1moTy-396
+[3.9.2]: http://wp.me/p1moTy-2Ei
+[3.9]: http://wp.me/p1moTy-29R
+[3.8.2]: http://wp.me/p1moTy-26v
+[3.8.1]: http://wp.me/p1moTy-23V
+[3.8.0]: http://wp.me/p1moTy-1VN
+[3.7.2]: http://wp.me/p1moTy-1LB
+[3.7.1]: http://wp.me/p1moTy-1LB
+[3.7.0]: http://wp.me/p1moTy-1JB
+[3.6]: http://wp.me/p1moTy-1ua
+[3.5]: http://wp.me/p1moTy-1jF
+[3.4.3]: http://wp.me/p1moTy-1jb
+[3.4.2]: http://wp.me/p1moTy-1j6
+[3.4]: http://wp.me/p1moTy-1fU
+[3.3]: http://wp.me/p1moTy-1aF
+[3.2]: http://wp.me/p1moTy-181
+[3.1]: http://wp.me/p1moTy-129
+[3.0]: http://wp.me/p1moTy-Wi
+[2.9.3]: http://wp.me/p1moTy-U2
+[2.9]: http://wp.me/p1moTy-RN
+[2.8]: http://wp.me/p1moTy-Pd
+[2.7]: http://wp.me/p1moTy-Mk
+[2.6]: http://wp.me/p1moTy-KE
+[2.5]: http://wp.me/p1moTy-xS
+[2.4]: http://wp.me/p1moTy-wv
+[2.3.5]: http://wp.me/p1moTy-vf
+[2.3.4]: http://wp.me/p1moTy-uL
+[2.3.3]: http://wp.me/p1moTy-uv
+[2.3.2]: http://wp.me/p1moTy-uv
+[2.3.1]: http://wp.me/p1moTy-t9
+[2.3]: http://wp.me/p1moTy-rX
+[2.2.5]: http://wp.me/p1moTy-p8
+[2.2.4]: http://wp.me/p1moTy-oU
+[2.2.3]: http://wp.me/p1moTy-oR
+[2.2.1]: http://wp.me/p1moTy-ob
+[2.2]: http://wp.me/p1moTy-ns
+[2.1.1]: http://wp.me/p1moTy-ng
+[2.1]: http://wp.me/p1moTy-m3
+[2.0.4]: http://wp.me/p1moTy-lT
+[2.0.3]: http://wp.me/p1moTy-lJ
+[2.0.2]: http://wp.me/p1moTy-lu
+[2.0.1]: http://wp.me/p1moTy-lc
+[2.0]: http://wp.me/p1moTy-jg
+[1.9.1]: http://wp.me/p1moTy-iC
+[1.9]: http://wp.me/p1moTy-hC
+[1.8.2]: http://wp.me/p1moTy-gI
+[1.8.1]: http://wp.me/p1moTy-gx
+[1.8]: http://wp.me/p1moTy-fV
+[1.7]: http://wp.me/p1moTy-eq
+[1.6]: http://wp.me/p1moTy-e0
+[1.5]: http://wp.me/p1moTy-d7
+[1.4]: http://wp.me/p1moTy-cz
+[1.3]: http://wp.me/p1moTy-bq
+[1.2.3]: http://wp.me/p1moTy-b4
+[1.2.2]: http://wp.me/p1moTy-ax
+[1.2.1]: http://wp.me/p1moTy-9H
+[1.2]: http://wp.me/p1moTy-8x
+[1.1.3]: http://wp.me/p1moTy-90
+[1.1.2]: http://wp.me/p1moTy-8B
+[1.1.1]: http://wp.me/p1moTy-8i
+[1.1]: http://wp.me/p1moTy-7R
diff --git a/plugins/jetpack/LICENSE.txt b/plugins/jetpack/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/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.
+
+<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 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/plugins/jetpack/SECURITY.md b/plugins/jetpack/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/_inc/accessible-focus.js b/plugins/jetpack/_inc/accessible-focus.js
index 44608c2b..98eb5035 100644
--- a/plugins/jetpack/_inc/accessible-focus.js
+++ b/plugins/jetpack/_inc/accessible-focus.js
@@ -1,7 +1,7 @@
var keyboardNavigation = false,
keyboardNavigationKeycodes = [ 9, 32, 37, 38, 39, 40 ]; // keyCodes for tab, space, left, up, right, down respectively
-document.addEventListener( 'keydown', function( event ) {
+document.addEventListener( 'keydown', function ( event ) {
if ( keyboardNavigation ) {
return;
}
@@ -10,7 +10,7 @@ document.addEventListener( 'keydown', function( event ) {
document.documentElement.classList.add( 'accessible-focus' );
}
} );
-document.addEventListener( 'mouseup', function() {
+document.addEventListener( 'mouseup', function () {
if ( ! keyboardNavigation ) {
return;
}
diff --git a/plugins/jetpack/_inc/blocks/860.js b/plugins/jetpack/_inc/blocks/860.js
new file mode 100644
index 00000000..a6565600
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/860.js
@@ -0,0 +1 @@
+(self.webpackChunkJetpack=self.webpackChunkJetpack||[]).push([[860],{78858:function(e,t,a){"use strict";a.r(t)},16402:function(e){e.exports=function(){"use strict";function e(e,t){for(var a=0;a<t.length;a++){var i=t[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function t(t,a,i){return a&&e(t.prototype,a),i&&e(t,i),t}function a(){return a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i])}return e},a.apply(this,arguments)}function i(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function s(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(a){void 0===e[a]?e[a]=t[a]:i(t[a])&&i(e[a])&&Object.keys(t[a]).length>0&&s(e[a],t[a])}))}var r={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function n(){var e="undefined"!=typeof document?document:{};return s(e,r),e}var l={document:r,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function o(){var e="undefined"!=typeof window?window:{};return s(e,l),e}function d(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function u(e,t){return u=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},u(e,t)}function c(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function h(e,t,a){return h=c()?Reflect.construct:function(e,t,a){var i=[null];i.push.apply(i,t);var s=new(Function.bind.apply(e,i));return a&&u(s,a.prototype),s},h.apply(null,arguments)}function v(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!v(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,a)}function a(){return h(e,arguments,p(this).constructor)}return a.prototype=Object.create(e.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),u(a,e)},f(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){var t=e.__proto__;Object.defineProperty(e,"__proto__",{get:function(){return t},set:function(e){t.__proto__=e}})}var b=function(e){function t(t){var a;return g(m(a=e.call.apply(e,[this].concat(t))||this)),a}return d(t,e),t}(f(Array));function w(e){void 0===e&&(e=[]);var t=[];return e.forEach((function(e){Array.isArray(e)?t.push.apply(t,w(e)):t.push(e)})),t}function y(e,t){return Array.prototype.filter.call(e,t)}function E(e){for(var t=[],a=0;a<e.length;a+=1)-1===t.indexOf(e[a])&&t.push(e[a]);return t}function x(e,t){if("string"!=typeof e)return[e];for(var a=[],i=t.querySelectorAll(e),s=0;s<i.length;s+=1)a.push(i[s]);return a}function T(e,t){var a=o(),i=n(),s=[];if(!t&&e instanceof b)return e;if(!e)return new b(s);if("string"==typeof e){var r=e.trim();if(r.indexOf("<")>=0&&r.indexOf(">")>=0){var l="div";0===r.indexOf("<li")&&(l="ul"),0===r.indexOf("<tr")&&(l="tbody"),0!==r.indexOf("<td")&&0!==r.indexOf("<th")||(l="tr"),0===r.indexOf("<tbody")&&(l="table"),0===r.indexOf("<option")&&(l="select");var d=i.createElement(l);d.innerHTML=r;for(var p=0;p<d.childNodes.length;p+=1)s.push(d.childNodes[p])}else s=x(e.trim(),t||i)}else if(e.nodeType||e===a||e===i)s.push(e);else if(Array.isArray(e)){if(e instanceof b)return e;s=e}return new b(E(s))}function C(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=w(t.map((function(e){return e.split(" ")})));return this.forEach((function(e){var t;(t=e.classList).add.apply(t,i)})),this}function S(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=w(t.map((function(e){return e.split(" ")})));return this.forEach((function(e){var t;(t=e.classList).remove.apply(t,i)})),this}function M(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=w(t.map((function(e){return e.split(" ")})));this.forEach((function(e){i.forEach((function(t){e.classList.toggle(t)}))}))}function z(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=w(t.map((function(e){return e.split(" ")})));return y(this,(function(e){return i.filter((function(t){return e.classList.contains(t)})).length>0})).length>0}function k(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var a=0;a<this.length;a+=1)if(2===arguments.length)this[a].setAttribute(e,t);else for(var i in e)this[a][i]=e[i],this[a].setAttribute(i,e[i]);return this}function P(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this}function $(e){for(var t=0;t<this.length;t+=1)this[t].style.transform=e;return this}function L(e){for(var t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?e+"ms":e;return this}function I(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=t[0],s=t[1],r=t[2],n=t[3];function l(e){var t=e.target;if(t){var a=e.target.dom7EventData||[];if(a.indexOf(e)<0&&a.unshift(e),T(t).is(s))r.apply(t,a);else for(var i=T(t).parents(),n=0;n<i.length;n+=1)T(i[n]).is(s)&&r.apply(i[n],a)}}function o(e){var t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),r.apply(this,t)}"function"==typeof t[1]&&(i=t[0],r=t[1],n=t[2],s=void 0),n||(n=!1);for(var d,p=i.split(" "),u=0;u<this.length;u+=1){var c=this[u];if(s)for(d=0;d<p.length;d+=1){var h=p[d];c.dom7LiveListeners||(c.dom7LiveListeners={}),c.dom7LiveListeners[h]||(c.dom7LiveListeners[h]=[]),c.dom7LiveListeners[h].push({listener:r,proxyListener:l}),c.addEventListener(h,l,n)}else for(d=0;d<p.length;d+=1){var v=p[d];c.dom7Listeners||(c.dom7Listeners={}),c.dom7Listeners[v]||(c.dom7Listeners[v]=[]),c.dom7Listeners[v].push({listener:r,proxyListener:o}),c.addEventListener(v,o,n)}}return this}function O(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=t[0],s=t[1],r=t[2],n=t[3];"function"==typeof t[1]&&(i=t[0],r=t[1],n=t[2],s=void 0),n||(n=!1);for(var l=i.split(" "),o=0;o<l.length;o+=1)for(var d=l[o],p=0;p<this.length;p+=1){var u=this[p],c=void 0;if(!s&&u.dom7Listeners?c=u.dom7Listeners[d]:s&&u.dom7LiveListeners&&(c=u.dom7LiveListeners[d]),c&&c.length)for(var h=c.length-1;h>=0;h-=1){var v=c[h];r&&v.listener===r||r&&v.listener&&v.listener.dom7proxy&&v.listener.dom7proxy===r?(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1)):r||(u.removeEventListener(d,v.proxyListener,n),c.splice(h,1))}}return this}function A(){for(var e=o(),t=arguments.length,a=new Array(t),i=0;i<t;i++)a[i]=arguments[i];for(var s=a[0].split(" "),r=a[1],n=0;n<s.length;n+=1)for(var l=s[n],d=0;d<this.length;d+=1){var p=this[d];if(e.CustomEvent){var u=new e.CustomEvent(l,{detail:r,bubbles:!0,cancelable:!0});p.dom7EventData=a.filter((function(e,t){return t>0})),p.dispatchEvent(u),p.dom7EventData=[],delete p.dom7EventData}}return this}function D(e){var t=this;function a(i){i.target===this&&(e.call(this,i),t.off("transitionend",a))}return e&&t.on("transitionend",a),this}function N(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null}function G(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null}function B(){if(this.length>0){var e=o(),t=n(),a=this[0],i=a.getBoundingClientRect(),s=t.body,r=a.clientTop||s.clientTop||0,l=a.clientLeft||s.clientLeft||0,d=a===e?e.scrollY:a.scrollTop,p=a===e?e.scrollX:a.scrollLeft;return{top:i.top+d-r,left:i.left+p-l}}return null}function H(){var e=o();return this[0]?e.getComputedStyle(this[0],null):{}}function X(e,t){var a,i=o();if(1===arguments.length){if("string"!=typeof e){for(a=0;a<this.length;a+=1)for(var s in e)this[a].style[s]=e[s];return this}if(this[0])return i.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(a=0;a<this.length;a+=1)this[a].style[e]=t;return this}return this}function Y(e){return e?(this.forEach((function(t,a){e.apply(t,[t,a])})),this):this}function R(e){return T(y(this,e))}function W(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(var t=0;t<this.length;t+=1)this[t].innerHTML=e;return this}function V(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(var t=0;t<this.length;t+=1)this[t].textContent=e;return this}function F(e){var t,a,i=o(),s=n(),r=this[0];if(!r||void 0===e)return!1;if("string"==typeof e){if(r.matches)return r.matches(e);if(r.webkitMatchesSelector)return r.webkitMatchesSelector(e);if(r.msMatchesSelector)return r.msMatchesSelector(e);for(t=T(e),a=0;a<t.length;a+=1)if(t[a]===r)return!0;return!1}if(e===s)return r===s;if(e===i)return r===i;if(e.nodeType||e instanceof b){for(t=e.nodeType?[e]:e,a=0;a<t.length;a+=1)if(t[a]===r)return!0;return!1}return!1}function _(){var e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}}function q(e){if(void 0===e)return this;var t=this.length;if(e>t-1)return T([]);if(e<0){var a=t+e;return T(a<0?[]:[this[a]])}return T([this[e]])}function j(){for(var e,t=n(),a=0;a<arguments.length;a+=1){e=a<0||arguments.length<=a?void 0:arguments[a];for(var i=0;i<this.length;i+=1)if("string"==typeof e){var s=t.createElement("div");for(s.innerHTML=e;s.firstChild;)this[i].appendChild(s.firstChild)}else if(e instanceof b)for(var r=0;r<e.length;r+=1)this[i].appendChild(e[r]);else this[i].appendChild(e)}return this}function U(e){var t,a,i=n();for(t=0;t<this.length;t+=1)if("string"==typeof e){var s=i.createElement("div");for(s.innerHTML=e,a=s.childNodes.length-1;a>=0;a-=1)this[t].insertBefore(s.childNodes[a],this[t].childNodes[0])}else if(e instanceof b)for(a=0;a<e.length;a+=1)this[t].insertBefore(e[a],this[t].childNodes[0]);else this[t].insertBefore(e,this[t].childNodes[0]);return this}function K(e){return this.length>0?e?this[0].nextElementSibling&&T(this[0].nextElementSibling).is(e)?T([this[0].nextElementSibling]):T([]):this[0].nextElementSibling?T([this[0].nextElementSibling]):T([]):T([])}function J(e){var t=[],a=this[0];if(!a)return T([]);for(;a.nextElementSibling;){var i=a.nextElementSibling;e?T(i).is(e)&&t.push(i):t.push(i),a=i}return T(t)}function Z(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&T(t.previousElementSibling).is(e)?T([t.previousElementSibling]):T([]):t.previousElementSibling?T([t.previousElementSibling]):T([])}return T([])}function Q(e){var t=[],a=this[0];if(!a)return T([]);for(;a.previousElementSibling;){var i=a.previousElementSibling;e?T(i).is(e)&&t.push(i):t.push(i),a=i}return T(t)}function ee(e){for(var t=[],a=0;a<this.length;a+=1)null!==this[a].parentNode&&(e?T(this[a].parentNode).is(e)&&t.push(this[a].parentNode):t.push(this[a].parentNode));return T(t)}function te(e){for(var t=[],a=0;a<this.length;a+=1)for(var i=this[a].parentNode;i;)e?T(i).is(e)&&t.push(i):t.push(i),i=i.parentNode;return T(t)}function ae(e){var t=this;return void 0===e?T([]):(t.is(e)||(t=t.parents(e).eq(0)),t)}function ie(e){for(var t=[],a=0;a<this.length;a+=1){try{var i=this[a].querySelectorAll(e)}catch(t){console.log(e)}for(var s=0;s<i.length;s+=1)t.push(i[s])}return T(t)}function se(e){for(var t=[],a=0;a<this.length;a+=1)for(var i=this[a].children,s=0;s<i.length;s+=1)e&&!T(i[s]).is(e)||t.push(i[s]);return T(t)}function re(){for(var e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}T.fn=b.prototype;var ne,le,oe,de={addClass:C,removeClass:S,hasClass:z,toggleClass:M,attr:k,removeAttr:P,transform:$,transition:L,on:I,off:O,trigger:A,transitionEnd:D,outerWidth:N,outerHeight:G,styles:H,offset:B,css:X,each:Y,html:W,text:V,is:F,index:_,eq:q,append:j,prepend:U,next:K,nextAll:J,prev:Z,prevAll:Q,parent:ee,parents:te,closest:ae,find:ie,children:se,filter:R,remove:re};function pe(e){var t=e;Object.keys(t).forEach((function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function ue(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function ce(){return Date.now()}function he(e){var t,a=o();return a.getComputedStyle&&(t=a.getComputedStyle(e,null)),!t&&e.currentStyle&&(t=e.currentStyle),t||(t=e.style),t}function ve(e,t){void 0===t&&(t="x");var a,i,s,r=o(),n=he(e);return r.WebKitCSSMatrix?((i=n.transform||n.webkitTransform).split(",").length>6&&(i=i.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),s=new r.WebKitCSSMatrix("none"===i?"":i)):a=(s=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(i=r.WebKitCSSMatrix?s.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=r.WebKitCSSMatrix?s.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function fe(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function me(){for(var e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"],a=1;a<arguments.length;a+=1){var i=a<0||arguments.length<=a?void 0:arguments[a];if(null!=i)for(var s=Object.keys(Object(i)).filter((function(e){return t.indexOf(e)<0})),r=0,n=s.length;r<n;r+=1){var l=s[r],o=Object.getOwnPropertyDescriptor(i,l);void 0!==o&&o.enumerable&&(fe(e[l])&&fe(i[l])?i[l].__swiper__?e[l]=i[l]:me(e[l],i[l]):!fe(e[l])&&fe(i[l])?(e[l]={},i[l].__swiper__?e[l]=i[l]:me(e[l],i[l])):e[l]=i[l])}}return e}function ge(e,t){Object.keys(t).forEach((function(a){fe(t[a])&&Object.keys(t[a]).forEach((function(i){"function"==typeof t[a][i]&&(t[a][i]=t[a][i].bind(e))})),e[a]=t[a]}))}function be(e){return void 0===e&&(e=""),"."+e.trim().replace(/([\.:\/])/g,"\\$1").replace(/ /g,".")}function we(e,t,a,i){var s=n();return a&&Object.keys(i).forEach((function(a){if(!t[a]&&!0===t.auto){var r=s.createElement("div");r.className=i[a],e.append(r),t[a]=r}})),t}function ye(){var e=o(),t=n();return{touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),pointerEvents:!!e.PointerEvent&&"maxTouchPoints"in e.navigator&&e.navigator.maxTouchPoints>=0,observer:"MutationObserver"in e||"WebkitMutationObserver"in e,passiveListener:function(){var t=!1;try{var a=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassiveListener",null,a)}catch(e){}return t}(),gestures:"ongesturestart"in e}}function Ee(){return ne||(ne=ye()),ne}function xe(e){var t=(void 0===e?{}:e).userAgent,a=Ee(),i=o(),s=i.navigator.platform,r=t||i.navigator.userAgent,n={ios:!1,android:!1},l=i.screen.width,d=i.screen.height,p=r.match(/(Android);?[\s\/]+([\d.]+)?/),u=r.match(/(iPad).*OS\s([\d_]+)/),c=r.match(/(iPod)(.*OS\s([\d_]+))?/),h=!u&&r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),v="Win32"===s,f="MacIntel"===s,m=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!u&&f&&a.touch&&m.indexOf(l+"x"+d)>=0&&((u=r.match(/(Version)\/([\d.]+)/))||(u=[0,1,"13_0_0"]),f=!1),p&&!v&&(n.os="android",n.android=!0),(u||h||c)&&(n.os="ios",n.ios=!0),n}function Te(e){return void 0===e&&(e={}),le||(le=xe(e)),le}function Ce(){var e=o();function t(){var t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}return{isEdge:!!e.navigator.userAgent.match(/Edge/g),isSafari:t(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}function Se(){return oe||(oe=Ce()),oe}Object.keys(de).forEach((function(e){Object.defineProperty(T.fn,e,{value:de[e],writable:!0})}));var Me=function(){return void 0!==o().ResizeObserver},ze={name:"resize",create:function(){var e=this;me(e,{resize:{observer:null,createObserver:function(){e&&!e.destroyed&&e.initialized&&(e.resize.observer=new ResizeObserver((function(t){var a=e.width,i=e.height,s=a,r=i;t.forEach((function(t){var a=t.contentBoxSize,i=t.contentRect,n=t.target;n&&n!==e.el||(s=i?i.width:(a[0]||a).inlineSize,r=i?i.height:(a[0]||a).blockSize)})),s===a&&r===i||e.resize.resizeHandler()})),e.resize.observer.observe(e.el))},removeObserver:function(){e.resize.observer&&e.resize.observer.unobserve&&e.el&&(e.resize.observer.unobserve(e.el),e.resize.observer=null)},resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(e){var t=o();e.params.resizeObserver&&Me()?e.resize.createObserver():(t.addEventListener("resize",e.resize.resizeHandler),t.addEventListener("orientationchange",e.resize.orientationChangeHandler))},destroy:function(e){var t=o();e.resize.removeObserver(),t.removeEventListener("resize",e.resize.resizeHandler),t.removeEventListener("orientationchange",e.resize.orientationChangeHandler)}}},ke={attach:function(e,t){void 0===t&&(t={});var a=o(),i=this,s=new(a.MutationObserver||a.WebkitMutationObserver)((function(e){if(1!==e.length){var t=function(){i.emit("observerUpdate",e[0])};a.requestAnimationFrame?a.requestAnimationFrame(t):a.setTimeout(t,0)}else i.emit("observerUpdate",e[0])}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),i.observer.observers.push(s)},init:function(){var e=this;if(e.support.observer&&e.params.observer){if(e.params.observeParents)for(var t=e.$el.parents(),a=0;a<t.length;a+=1)e.observer.attach(t[a]);e.observer.attach(e.$el[0],{childList:e.params.observeSlideChildren}),e.observer.attach(e.$wrapperEl[0],{attributes:!1})}},destroy:function(){var e=this;e.observer.observers.forEach((function(e){e.disconnect()})),e.observer.observers=[]}},Pe={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create:function(){ge(this,{observer:a({},ke,{observers:[]})})},on:{init:function(e){e.observer.init()},destroy:function(e){e.observer.destroy()}}},$e={useParams:function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a];i.params&&me(e,i.params)}))},useModules:function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var i=t.modules[a],s=e[a]||{};i.on&&t.on&&Object.keys(i.on).forEach((function(e){t.on(e,i.on[e])})),i.create&&i.create.bind(t)(s)}))}},Le={on:function(e,t,a){var i=this;if("function"!=typeof t)return i;var s=a?"unshift":"push";return e.split(" ").forEach((function(e){i.eventsListeners[e]||(i.eventsListeners[e]=[]),i.eventsListeners[e][s](t)})),i},once:function(e,t,a){var i=this;if("function"!=typeof t)return i;function s(){i.off(e,s),s.__emitterProxy&&delete s.__emitterProxy;for(var a=arguments.length,r=new Array(a),n=0;n<a;n++)r[n]=arguments[n];t.apply(i,r)}return s.__emitterProxy=t,i.on(e,s,a)},onAny:function(e,t){var a=this;if("function"!=typeof e)return a;var i=t?"unshift":"push";return a.eventsAnyListeners.indexOf(e)<0&&a.eventsAnyListeners[i](e),a},offAny:function(e){var t=this;if(!t.eventsAnyListeners)return t;var a=t.eventsAnyListeners.indexOf(e);return a>=0&&t.eventsAnyListeners.splice(a,1),t},off:function(e,t){var a=this;return a.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(i,s){(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&a.eventsListeners[e].splice(s,1)}))})),a):a},emit:function(){var e,t,a,i=this;if(!i.eventsListeners)return i;for(var s=arguments.length,r=new Array(s),n=0;n<s;n++)r[n]=arguments[n];return"string"==typeof r[0]||Array.isArray(r[0])?(e=r[0],t=r.slice(1,r.length),a=i):(e=r[0].events,t=r[0].data,a=r[0].context||i),t.unshift(a),(Array.isArray(e)?e:e.split(" ")).forEach((function(e){i.eventsAnyListeners&&i.eventsAnyListeners.length&&i.eventsAnyListeners.forEach((function(i){i.apply(a,[e].concat(t))})),i.eventsListeners&&i.eventsListeners[e]&&i.eventsListeners[e].forEach((function(e){e.apply(a,t)}))})),i}};function Ie(){var e,t,a=this,i=a.$el;e=void 0!==a.params.width&&null!==a.params.width?a.params.width:i[0].clientWidth,t=void 0!==a.params.height&&null!==a.params.height?a.params.height:i[0].clientHeight,0===e&&a.isHorizontal()||0===t&&a.isVertical()||(e=e-parseInt(i.css("padding-left")||0,10)-parseInt(i.css("padding-right")||0,10),t=t-parseInt(i.css("padding-top")||0,10)-parseInt(i.css("padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),me(a,{width:e,height:t,size:a.isHorizontal()?e:t}))}function Oe(){var e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function a(e,a){return parseFloat(e.getPropertyValue(t(a))||0)}var i=e.params,s=e.$wrapperEl,r=e.size,n=e.rtlTranslate,l=e.wrongRTL,o=e.virtual&&i.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,p=s.children("."+e.params.slideClass),u=o?e.virtual.slides.length:p.length,c=[],h=[],v=[],f=i.slidesOffsetBefore;"function"==typeof f&&(f=i.slidesOffsetBefore.call(e));var m=i.slidesOffsetAfter;"function"==typeof m&&(m=i.slidesOffsetAfter.call(e));var g=e.snapGrid.length,b=e.slidesGrid.length,w=i.spaceBetween,y=-f,E=0,x=0;if(void 0!==r){var T,C;"string"==typeof w&&w.indexOf("%")>=0&&(w=parseFloat(w.replace("%",""))/100*r),e.virtualSize=-w,n?p.css({marginLeft:"",marginTop:""}):p.css({marginRight:"",marginBottom:""}),i.slidesPerColumn>1&&(T=Math.floor(u/i.slidesPerColumn)===u/e.params.slidesPerColumn?u:Math.ceil(u/i.slidesPerColumn)*i.slidesPerColumn,"auto"!==i.slidesPerView&&"row"===i.slidesPerColumnFill&&(T=Math.max(T,i.slidesPerView*i.slidesPerColumn)));for(var S,M,z,k=i.slidesPerColumn,P=T/k,$=Math.floor(u/i.slidesPerColumn),L=0;L<u;L+=1){C=0;var I=p.eq(L);if(i.slidesPerColumn>1){var O=void 0,A=void 0,D=void 0;if("row"===i.slidesPerColumnFill&&i.slidesPerGroup>1){var N=Math.floor(L/(i.slidesPerGroup*i.slidesPerColumn)),G=L-i.slidesPerColumn*i.slidesPerGroup*N,B=0===N?i.slidesPerGroup:Math.min(Math.ceil((u-N*k*i.slidesPerGroup)/k),i.slidesPerGroup);O=(A=G-(D=Math.floor(G/B))*B+N*i.slidesPerGroup)+D*T/k,I.css({"-webkit-box-ordinal-group":O,"-moz-box-ordinal-group":O,"-ms-flex-order":O,"-webkit-order":O,order:O})}else"column"===i.slidesPerColumnFill?(D=L-(A=Math.floor(L/k))*k,(A>$||A===$&&D===k-1)&&(D+=1)>=k&&(D=0,A+=1)):A=L-(D=Math.floor(L/P))*P;I.css(t("margin-top"),0!==D&&i.spaceBetween&&i.spaceBetween+"px")}if("none"!==I.css("display")){if("auto"===i.slidesPerView){var H=getComputedStyle(I[0]),X=I[0].style.transform,Y=I[0].style.webkitTransform;if(X&&(I[0].style.transform="none"),Y&&(I[0].style.webkitTransform="none"),i.roundLengths)C=e.isHorizontal()?I.outerWidth(!0):I.outerHeight(!0);else{var R=a(H,"width"),W=a(H,"padding-left"),V=a(H,"padding-right"),F=a(H,"margin-left"),_=a(H,"margin-right"),q=H.getPropertyValue("box-sizing");if(q&&"border-box"===q)C=R+F+_;else{var j=I[0],U=j.clientWidth;C=R+W+V+F+_+(j.offsetWidth-U)}}X&&(I[0].style.transform=X),Y&&(I[0].style.webkitTransform=Y),i.roundLengths&&(C=Math.floor(C))}else C=(r-(i.slidesPerView-1)*w)/i.slidesPerView,i.roundLengths&&(C=Math.floor(C)),p[L]&&(p[L].style[t("width")]=C+"px");p[L]&&(p[L].swiperSlideSize=C),v.push(C),i.centeredSlides?(y=y+C/2+E/2+w,0===E&&0!==L&&(y=y-r/2-w),0===L&&(y=y-r/2-w),Math.abs(y)<.001&&(y=0),i.roundLengths&&(y=Math.floor(y)),x%i.slidesPerGroup==0&&c.push(y),h.push(y)):(i.roundLengths&&(y=Math.floor(y)),(x-Math.min(e.params.slidesPerGroupSkip,x))%e.params.slidesPerGroup==0&&c.push(y),h.push(y),y=y+C+w),e.virtualSize+=C+w,E=C,x+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+m,n&&l&&("slide"===i.effect||"coverflow"===i.effect)&&s.css({width:e.virtualSize+i.spaceBetween+"px"}),i.setWrapperSize&&s.css(((M={})[t("width")]=e.virtualSize+i.spaceBetween+"px",M)),i.slidesPerColumn>1&&(e.virtualSize=(C+i.spaceBetween)*T,e.virtualSize=Math.ceil(e.virtualSize/i.slidesPerColumn)-i.spaceBetween,s.css(((z={})[t("width")]=e.virtualSize+i.spaceBetween+"px",z)),i.centeredSlides)){S=[];for(var K=0;K<c.length;K+=1){var J=c[K];i.roundLengths&&(J=Math.floor(J)),c[K]<e.virtualSize+c[0]&&S.push(J)}c=S}if(!i.centeredSlides){S=[];for(var Z=0;Z<c.length;Z+=1){var Q=c[Z];i.roundLengths&&(Q=Math.floor(Q)),c[Z]<=e.virtualSize-r&&S.push(Q)}c=S,Math.floor(e.virtualSize-r)-Math.floor(c[c.length-1])>1&&c.push(e.virtualSize-r)}if(0===c.length&&(c=[0]),0!==i.spaceBetween){var ee,te=e.isHorizontal()&&n?"marginLeft":t("marginRight");p.filter((function(e,t){return!i.cssMode||t!==p.length-1})).css(((ee={})[te]=w+"px",ee))}if(i.centeredSlides&&i.centeredSlidesBounds){var ae=0;v.forEach((function(e){ae+=e+(i.spaceBetween?i.spaceBetween:0)}));var ie=(ae-=i.spaceBetween)-r;c=c.map((function(e){return e<0?-f:e>ie?ie+m:e}))}if(i.centerInsufficientSlides){var se=0;if(v.forEach((function(e){se+=e+(i.spaceBetween?i.spaceBetween:0)})),(se-=i.spaceBetween)<r){var re=(r-se)/2;c.forEach((function(e,t){c[t]=e-re})),h.forEach((function(e,t){h[t]=e+re}))}}me(e,{slides:p,snapGrid:c,slidesGrid:h,slidesSizesGrid:v}),u!==d&&e.emit("slidesLengthChange"),c.length!==g&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),(i.watchSlidesProgress||i.watchSlidesVisibility)&&e.updateSlidesOffset()}}function Ae(e){var t,a=this,i=[],s=a.virtual&&a.params.virtual.enabled,r=0;"number"==typeof e?a.setTransition(e):!0===e&&a.setTransition(a.params.speed);var n=function(e){return s?a.slides.filter((function(t){return parseInt(t.getAttribute("data-swiper-slide-index"),10)===e}))[0]:a.slides.eq(e)[0]};if("auto"!==a.params.slidesPerView&&a.params.slidesPerView>1)if(a.params.centeredSlides)a.visibleSlides.each((function(e){i.push(e)}));else for(t=0;t<Math.ceil(a.params.slidesPerView);t+=1){var l=a.activeIndex+t;if(l>a.slides.length&&!s)break;i.push(n(l))}else i.push(n(a.activeIndex));for(t=0;t<i.length;t+=1)if(void 0!==i[t]){var o=i[t].offsetHeight;r=o>r?o:r}r&&a.$wrapperEl.css("height",r+"px")}function De(){for(var e=this,t=e.slides,a=0;a<t.length;a+=1)t[a].swiperSlideOffset=e.isHorizontal()?t[a].offsetLeft:t[a].offsetTop}function Ne(e){void 0===e&&(e=this&&this.translate||0);var t=this,a=t.params,i=t.slides,s=t.rtlTranslate;if(0!==i.length){void 0===i[0].swiperSlideOffset&&t.updateSlidesOffset();var r=-e;s&&(r=e),i.removeClass(a.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(var n=0;n<i.length;n+=1){var l=i[n],o=(r+(a.centeredSlides?t.minTranslate():0)-l.swiperSlideOffset)/(l.swiperSlideSize+a.spaceBetween);if(a.watchSlidesVisibility||a.centeredSlides&&a.autoHeight){var d=-(r-l.swiperSlideOffset),p=d+t.slidesSizesGrid[n];(d>=0&&d<t.size-1||p>1&&p<=t.size||d<=0&&p>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(n),i.eq(n).addClass(a.slideVisibleClass))}l.progress=s?-o:o}t.visibleSlides=T(t.visibleSlides)}}function Ge(e){var t=this;if(void 0===e){var a=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*a||0}var i=t.params,s=t.maxTranslate()-t.minTranslate(),r=t.progress,n=t.isBeginning,l=t.isEnd,o=n,d=l;0===s?(r=0,n=!0,l=!0):(n=(r=(e-t.minTranslate())/s)<=0,l=r>=1),me(t,{progress:r,isBeginning:n,isEnd:l}),(i.watchSlidesProgress||i.watchSlidesVisibility||i.centeredSlides&&i.autoHeight)&&t.updateSlidesProgress(e),n&&!o&&t.emit("reachBeginning toEdge"),l&&!d&&t.emit("reachEnd toEdge"),(o&&!n||d&&!l)&&t.emit("fromEdge"),t.emit("progress",r)}function Be(){var e,t=this,a=t.slides,i=t.params,s=t.$wrapperEl,r=t.activeIndex,n=t.realIndex,l=t.virtual&&i.virtual.enabled;a.removeClass(i.slideActiveClass+" "+i.slideNextClass+" "+i.slidePrevClass+" "+i.slideDuplicateActiveClass+" "+i.slideDuplicateNextClass+" "+i.slideDuplicatePrevClass),(e=l?t.$wrapperEl.find("."+i.slideClass+'[data-swiper-slide-index="'+r+'"]'):a.eq(r)).addClass(i.slideActiveClass),i.loop&&(e.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(i.slideDuplicateActiveClass));var o=e.nextAll("."+i.slideClass).eq(0).addClass(i.slideNextClass);i.loop&&0===o.length&&(o=a.eq(0)).addClass(i.slideNextClass);var d=e.prevAll("."+i.slideClass).eq(0).addClass(i.slidePrevClass);i.loop&&0===d.length&&(d=a.eq(-1)).addClass(i.slidePrevClass),i.loop&&(o.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicateNextClass),d.hasClass(i.slideDuplicateClass)?s.children("."+i.slideClass+":not(."+i.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass):s.children("."+i.slideClass+"."+i.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(i.slideDuplicatePrevClass)),t.emitSlidesClasses()}function He(e){var t,a=this,i=a.rtlTranslate?a.translate:-a.translate,s=a.slidesGrid,r=a.snapGrid,n=a.params,l=a.activeIndex,o=a.realIndex,d=a.snapIndex,p=e;if(void 0===p){for(var u=0;u<s.length;u+=1)void 0!==s[u+1]?i>=s[u]&&i<s[u+1]-(s[u+1]-s[u])/2?p=u:i>=s[u]&&i<s[u+1]&&(p=u+1):i>=s[u]&&(p=u);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if(r.indexOf(i)>=0)t=r.indexOf(i);else{var c=Math.min(n.slidesPerGroupSkip,p);t=c+Math.floor((p-c)/n.slidesPerGroup)}if(t>=r.length&&(t=r.length-1),p!==l){var h=parseInt(a.slides.eq(p).attr("data-swiper-slide-index")||p,10);me(a,{snapIndex:t,realIndex:h,previousIndex:l,activeIndex:p}),a.emit("activeIndexChange"),a.emit("snapIndexChange"),o!==h&&a.emit("realIndexChange"),(a.initialized||a.params.runCallbacksOnInit)&&a.emit("slideChange")}else t!==d&&(a.snapIndex=t,a.emit("snapIndexChange"))}function Xe(e){var t,a=this,i=a.params,s=T(e.target).closest("."+i.slideClass)[0],r=!1;if(s)for(var n=0;n<a.slides.length;n+=1)if(a.slides[n]===s){r=!0,t=n;break}if(!s||!r)return a.clickedSlide=void 0,void(a.clickedIndex=void 0);a.clickedSlide=s,a.virtual&&a.params.virtual.enabled?a.clickedIndex=parseInt(T(s).attr("data-swiper-slide-index"),10):a.clickedIndex=t,i.slideToClickedSlide&&void 0!==a.clickedIndex&&a.clickedIndex!==a.activeIndex&&a.slideToClickedSlide()}function Ye(e){void 0===e&&(e=this.isHorizontal()?"x":"y");var t=this,a=t.params,i=t.rtlTranslate,s=t.translate,r=t.$wrapperEl;if(a.virtualTranslate)return i?-s:s;if(a.cssMode)return s;var n=ve(r[0],e);return i&&(n=-n),n||0}function Re(e,t){var a=this,i=a.rtlTranslate,s=a.params,r=a.$wrapperEl,n=a.wrapperEl,l=a.progress,o=0,d=0,p=0;a.isHorizontal()?o=i?-e:e:d=e,s.roundLengths&&(o=Math.floor(o),d=Math.floor(d)),s.cssMode?n[a.isHorizontal()?"scrollLeft":"scrollTop"]=a.isHorizontal()?-o:-d:s.virtualTranslate||r.transform("translate3d("+o+"px, "+d+"px, "+p+"px)"),a.previousTranslate=a.translate,a.translate=a.isHorizontal()?o:d;var u=a.maxTranslate()-a.minTranslate();(0===u?0:(e-a.minTranslate())/u)!==l&&a.updateProgress(e),a.emit("setTranslate",a.translate,t)}function We(){return-this.snapGrid[0]}function Ve(){return-this.snapGrid[this.snapGrid.length-1]}function Fe(e,t,a,i,s){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===a&&(a=!0),void 0===i&&(i=!0);var r=this,n=r.params,l=r.wrapperEl;if(r.animating&&n.preventInteractionOnTransition)return!1;var o,d=r.minTranslate(),p=r.maxTranslate();if(o=i&&e>d?d:i&&e<p?p:e,r.updateProgress(o),n.cssMode){var u,c=r.isHorizontal();return 0===t?l[c?"scrollLeft":"scrollTop"]=-o:l.scrollTo?l.scrollTo(((u={})[c?"left":"top"]=-o,u.behavior="smooth",u)):l[c?"scrollLeft":"scrollTop"]=-o,!0}return 0===t?(r.setTransition(0),r.setTranslate(o),a&&(r.emit("beforeTransitionStart",t,s),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(o),a&&(r.emit("beforeTransitionStart",t,s),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,a&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}function _e(e,t){var a=this;a.params.cssMode||a.$wrapperEl.transition(e),a.emit("setTransition",e,t)}function qe(e,t){void 0===e&&(e=!0);var a=this,i=a.activeIndex,s=a.params,r=a.previousIndex;if(!s.cssMode){s.autoHeight&&a.updateAutoHeight();var n=t;if(n||(n=i>r?"next":i<r?"prev":"reset"),a.emit("transitionStart"),e&&i!==r){if("reset"===n)return void a.emit("slideResetTransitionStart");a.emit("slideChangeTransitionStart"),"next"===n?a.emit("slideNextTransitionStart"):a.emit("slidePrevTransitionStart")}}}function je(e,t){void 0===e&&(e=!0);var a=this,i=a.activeIndex,s=a.previousIndex,r=a.params;if(a.animating=!1,!r.cssMode){a.setTransition(0);var n=t;if(n||(n=i>s?"next":i<s?"prev":"reset"),a.emit("transitionEnd"),e&&i!==s){if("reset"===n)return void a.emit("slideResetTransitionEnd");a.emit("slideChangeTransitionEnd"),"next"===n?a.emit("slideNextTransitionEnd"):a.emit("slidePrevTransitionEnd")}}}function Ue(e,t,a,i,s){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===a&&(a=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. ["+typeof e+"] given.");if("string"==typeof e){var r=parseInt(e,10);if(!isFinite(r))throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. ["+e+"] given.");e=r}var n=this,l=e;l<0&&(l=0);var o=n.params,d=n.snapGrid,p=n.slidesGrid,u=n.previousIndex,c=n.activeIndex,h=n.rtlTranslate,v=n.wrapperEl,f=n.enabled;if(n.animating&&o.preventInteractionOnTransition||!f&&!i&&!s)return!1;var m=Math.min(n.params.slidesPerGroupSkip,l),g=m+Math.floor((l-m)/n.params.slidesPerGroup);g>=d.length&&(g=d.length-1),(c||o.initialSlide||0)===(u||0)&&a&&n.emit("beforeSlideChangeStart");var b,w=-d[g];if(n.updateProgress(w),o.normalizeSlideIndex)for(var y=0;y<p.length;y+=1){var E=-Math.floor(100*w),x=Math.floor(100*p[y]),T=Math.floor(100*p[y+1]);void 0!==p[y+1]?E>=x&&E<T-(T-x)/2?l=y:E>=x&&E<T&&(l=y+1):E>=x&&(l=y)}if(n.initialized&&l!==c){if(!n.allowSlideNext&&w<n.translate&&w<n.minTranslate())return!1;if(!n.allowSlidePrev&&w>n.translate&&w>n.maxTranslate()&&(c||0)!==l)return!1}if(b=l>c?"next":l<c?"prev":"reset",h&&-w===n.translate||!h&&w===n.translate)return n.updateActiveIndex(l),o.autoHeight&&n.updateAutoHeight(),n.updateSlidesClasses(),"slide"!==o.effect&&n.setTranslate(w),"reset"!==b&&(n.transitionStart(a,b),n.transitionEnd(a,b)),!1;if(o.cssMode){var C,S=n.isHorizontal(),M=-w;return h&&(M=v.scrollWidth-v.offsetWidth-M),0===t?v[S?"scrollLeft":"scrollTop"]=M:v.scrollTo?v.scrollTo(((C={})[S?"left":"top"]=M,C.behavior="smooth",C)):v[S?"scrollLeft":"scrollTop"]=M,!0}return 0===t?(n.setTransition(0),n.setTranslate(w),n.updateActiveIndex(l),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(a,b),n.transitionEnd(a,b)):(n.setTransition(t),n.setTranslate(w),n.updateActiveIndex(l),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(a,b),n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.$wrapperEl[0].removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.$wrapperEl[0].removeEventListener("webkitTransitionEnd",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(a,b))}),n.$wrapperEl[0].addEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.$wrapperEl[0].addEventListener("webkitTransitionEnd",n.onSlideToWrapperTransitionEnd))),!0}function Ke(e,t,a,i){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===a&&(a=!0);var s=this,r=e;return s.params.loop&&(r+=s.loopedSlides),s.slideTo(r,t,a,i)}function Je(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this,s=i.params,r=i.animating;if(!i.enabled)return i;var n=i.activeIndex<s.slidesPerGroupSkip?1:s.slidesPerGroup;if(s.loop){if(r&&s.loopPreventsSlide)return!1;i.loopFix(),i._clientLeft=i.$wrapperEl[0].clientLeft}return i.slideTo(i.activeIndex+n,e,t,a)}function Ze(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this,s=i.params,r=i.animating,n=i.snapGrid,l=i.slidesGrid,o=i.rtlTranslate;if(!i.enabled)return i;if(s.loop){if(r&&s.loopPreventsSlide)return!1;i.loopFix(),i._clientLeft=i.$wrapperEl[0].clientLeft}function d(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}var p=d(o?i.translate:-i.translate),u=n.map((function(e){return d(e)}));n[u.indexOf(p)];var c,h=n[u.indexOf(p)-1];return void 0===h&&s.cssMode&&n.forEach((function(e){!h&&p>=e&&(h=e)})),void 0!==h&&(c=l.indexOf(h))<0&&(c=i.activeIndex-1),i.slideTo(c,e,t,a)}function Qe(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var i=this;return i.slideTo(i.activeIndex,e,t,a)}function et(e,t,a,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===i&&(i=.5);var s=this,r=s.activeIndex,n=Math.min(s.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/s.params.slidesPerGroup),o=s.rtlTranslate?s.translate:-s.translate;if(o>=s.snapGrid[l]){var d=s.snapGrid[l];o-d>(s.snapGrid[l+1]-d)*i&&(r+=s.params.slidesPerGroup)}else{var p=s.snapGrid[l-1];o-p<=(s.snapGrid[l]-p)*i&&(r-=s.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,s.slidesGrid.length-1),s.slideTo(r,e,t,a)}function tt(){var e,t=this,a=t.params,i=t.$wrapperEl,s="auto"===a.slidesPerView?t.slidesPerViewDynamic():a.slidesPerView,r=t.clickedIndex;if(a.loop){if(t.animating)return;e=parseInt(T(t.clickedSlide).attr("data-swiper-slide-index"),10),a.centeredSlides?r<t.loopedSlides-s/2||r>t.slides.length-t.loopedSlides+s/2?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),ue((function(){t.slideTo(r)}))):t.slideTo(r):r>t.slides.length-s?(t.loopFix(),r=i.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),ue((function(){t.slideTo(r)}))):t.slideTo(r)}else t.slideTo(r)}function at(){var e=this,t=n(),a=e.params,i=e.$wrapperEl;i.children("."+a.slideClass+"."+a.slideDuplicateClass).remove();var s=i.children("."+a.slideClass);if(a.loopFillGroupWithBlank){var r=a.slidesPerGroup-s.length%a.slidesPerGroup;if(r!==a.slidesPerGroup){for(var l=0;l<r;l+=1){var o=T(t.createElement("div")).addClass(a.slideClass+" "+a.slideBlankClass);i.append(o)}s=i.children("."+a.slideClass)}}"auto"!==a.slidesPerView||a.loopedSlides||(a.loopedSlides=s.length),e.loopedSlides=Math.ceil(parseFloat(a.loopedSlides||a.slidesPerView,10)),e.loopedSlides+=a.loopAdditionalSlides,e.loopedSlides>s.length&&(e.loopedSlides=s.length);var d=[],p=[];s.each((function(t,a){var i=T(t);a<e.loopedSlides&&p.push(t),a<s.length&&a>=s.length-e.loopedSlides&&d.push(t),i.attr("data-swiper-slide-index",a)}));for(var u=0;u<p.length;u+=1)i.append(T(p[u].cloneNode(!0)).addClass(a.slideDuplicateClass));for(var c=d.length-1;c>=0;c-=1)i.prepend(T(d[c].cloneNode(!0)).addClass(a.slideDuplicateClass))}function it(){var e=this;e.emit("beforeLoopFix");var t,a=e.activeIndex,i=e.slides,s=e.loopedSlides,r=e.allowSlidePrev,n=e.allowSlideNext,l=e.snapGrid,o=e.rtlTranslate;e.allowSlidePrev=!0,e.allowSlideNext=!0;var d=-l[a]-e.getTranslate();a<s?(t=i.length-3*s+a,t+=s,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((o?-e.translate:e.translate)-d)):a>=i.length-s&&(t=-i.length+a+s,t+=s,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((o?-e.translate:e.translate)-d)),e.allowSlidePrev=r,e.allowSlideNext=n,e.emit("loopFix")}function st(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides;t.children("."+a.slideClass+"."+a.slideDuplicateClass+",."+a.slideClass+"."+a.slideBlankClass).remove(),i.removeAttr("data-swiper-slide-index")}function rt(e){var t=this;if(!(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)){var a=t.el;a.style.cursor="move",a.style.cursor=e?"-webkit-grabbing":"-webkit-grab",a.style.cursor=e?"-moz-grabbin":"-moz-grab",a.style.cursor=e?"grabbing":"grab"}}function nt(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.el.style.cursor="")}function lt(e){var t=this,a=t.$wrapperEl,i=t.params;if(i.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var s=0;s<e.length;s+=1)e[s]&&a.append(e[s]);else a.append(e);i.loop&&t.loopCreate(),i.observer&&t.support.observer||t.update()}function ot(e){var t=this,a=t.params,i=t.$wrapperEl,s=t.activeIndex;a.loop&&t.loopDestroy();var r=s+1;if("object"==typeof e&&"length"in e){for(var n=0;n<e.length;n+=1)e[n]&&i.prepend(e[n]);r=s+e.length}else i.prepend(e);a.loop&&t.loopCreate(),a.observer&&t.support.observer||t.update(),t.slideTo(r,0,!1)}function dt(e,t){var a=this,i=a.$wrapperEl,s=a.params,r=a.activeIndex;s.loop&&(r-=a.loopedSlides,a.loopDestroy(),a.slides=i.children("."+s.slideClass));var n=a.slides.length;if(e<=0)a.prependSlide(t);else if(e>=n)a.appendSlide(t);else{for(var l=r>e?r+1:r,o=[],d=n-1;d>=e;d-=1){var p=a.slides.eq(d);p.remove(),o.unshift(p)}if("object"==typeof t&&"length"in t){for(var u=0;u<t.length;u+=1)t[u]&&i.append(t[u]);l=r>e?r+t.length:r}else i.append(t);for(var c=0;c<o.length;c+=1)i.append(o[c]);s.loop&&a.loopCreate(),s.observer&&a.support.observer||a.update(),s.loop?a.slideTo(l+a.loopedSlides,0,!1):a.slideTo(l,0,!1)}}function pt(e){var t=this,a=t.params,i=t.$wrapperEl,s=t.activeIndex;a.loop&&(s-=t.loopedSlides,t.loopDestroy(),t.slides=i.children("."+a.slideClass));var r,n=s;if("object"==typeof e&&"length"in e){for(var l=0;l<e.length;l+=1)r=e[l],t.slides[r]&&t.slides.eq(r).remove(),r<n&&(n-=1);n=Math.max(n,0)}else r=e,t.slides[r]&&t.slides.eq(r).remove(),r<n&&(n-=1),n=Math.max(n,0);a.loop&&t.loopCreate(),a.observer&&t.support.observer||t.update(),a.loop?t.slideTo(n+t.loopedSlides,0,!1):t.slideTo(n,0,!1)}function ut(){for(var e=this,t=[],a=0;a<e.slides.length;a+=1)t.push(a);e.removeSlide(t)}function ct(e){var t=this,a=n(),i=o(),s=t.touchEventsData,r=t.params,l=t.touches;if(t.enabled&&(!t.animating||!r.preventInteractionOnTransition)){var d=e;d.originalEvent&&(d=d.originalEvent);var p=T(d.target);if(("wrapper"!==r.touchEventsTarget||p.closest(t.wrapperEl).length)&&(s.isTouchEvent="touchstart"===d.type,(s.isTouchEvent||!("which"in d)||3!==d.which)&&!(!s.isTouchEvent&&"button"in d&&d.button>0||s.isTouched&&s.isMoved)))if(!!r.noSwipingClass&&""!==r.noSwipingClass&&d.target&&d.target.shadowRoot&&e.path&&e.path[0]&&(p=T(e.path[0])),r.noSwiping&&p.closest(r.noSwipingSelector?r.noSwipingSelector:"."+r.noSwipingClass)[0])t.allowClick=!0;else if(!r.swipeHandler||p.closest(r.swipeHandler)[0]){l.currentX="touchstart"===d.type?d.targetTouches[0].pageX:d.pageX,l.currentY="touchstart"===d.type?d.targetTouches[0].pageY:d.pageY;var u=l.currentX,c=l.currentY,h=r.edgeSwipeDetection||r.iOSEdgeSwipeDetection,v=r.edgeSwipeThreshold||r.iOSEdgeSwipeThreshold;if(h&&(u<=v||u>=i.innerWidth-v)){if("prevent"!==h)return;e.preventDefault()}if(me(s,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),l.startX=u,l.startY=c,s.touchStartTime=ce(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,r.threshold>0&&(s.allowThresholdMove=!1),"touchstart"!==d.type){var f=!0;p.is(s.formElements)&&(f=!1),a.activeElement&&T(a.activeElement).is(s.formElements)&&a.activeElement!==p[0]&&a.activeElement.blur();var m=f&&t.allowTouchMove&&r.touchStartPreventDefault;!r.touchStartForcePreventDefault&&!m||p[0].isContentEditable||d.preventDefault()}t.emit("touchStart",d)}}}function ht(e){var t=n(),a=this,i=a.touchEventsData,s=a.params,r=a.touches,l=a.rtlTranslate;if(a.enabled){var o=e;if(o.originalEvent&&(o=o.originalEvent),i.isTouched){if(!i.isTouchEvent||"touchmove"===o.type){var d="touchmove"===o.type&&o.targetTouches&&(o.targetTouches[0]||o.changedTouches[0]),p="touchmove"===o.type?d.pageX:o.pageX,u="touchmove"===o.type?d.pageY:o.pageY;if(o.preventedByNestedSwiper)return r.startX=p,void(r.startY=u);if(!a.allowTouchMove)return a.allowClick=!1,void(i.isTouched&&(me(r,{startX:p,startY:u,currentX:p,currentY:u}),i.touchStartTime=ce()));if(i.isTouchEvent&&s.touchReleaseOnEdges&&!s.loop)if(a.isVertical()){if(u<r.startY&&a.translate<=a.maxTranslate()||u>r.startY&&a.translate>=a.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(p<r.startX&&a.translate<=a.maxTranslate()||p>r.startX&&a.translate>=a.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&o.target===t.activeElement&&T(o.target).is(i.formElements))return i.isMoved=!0,void(a.allowClick=!1);if(i.allowTouchCallbacks&&a.emit("touchMove",o),!(o.targetTouches&&o.targetTouches.length>1)){r.currentX=p,r.currentY=u;var c,h=r.currentX-r.startX,v=r.currentY-r.startY;if(!(a.params.threshold&&Math.sqrt(Math.pow(h,2)+Math.pow(v,2))<a.params.threshold))if(void 0===i.isScrolling&&(a.isHorizontal()&&r.currentY===r.startY||a.isVertical()&&r.currentX===r.startX?i.isScrolling=!1:h*h+v*v>=25&&(c=180*Math.atan2(Math.abs(v),Math.abs(h))/Math.PI,i.isScrolling=a.isHorizontal()?c>s.touchAngle:90-c>s.touchAngle)),i.isScrolling&&a.emit("touchMoveOpposite",o),void 0===i.startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){a.allowClick=!1,!s.cssMode&&o.cancelable&&o.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&o.stopPropagation(),i.isMoved||(s.loop&&a.loopFix(),i.startTranslate=a.getTranslate(),a.setTransition(0),a.animating&&a.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!s.grabCursor||!0!==a.allowSlideNext&&!0!==a.allowSlidePrev||a.setGrabCursor(!0),a.emit("sliderFirstMove",o)),a.emit("sliderMove",o),i.isMoved=!0;var f=a.isHorizontal()?h:v;r.diff=f,f*=s.touchRatio,l&&(f=-f),a.swipeDirection=f>0?"prev":"next",i.currentTranslate=f+i.startTranslate;var m=!0,g=s.resistanceRatio;if(s.touchReleaseOnEdges&&(g=0),f>0&&i.currentTranslate>a.minTranslate()?(m=!1,s.resistance&&(i.currentTranslate=a.minTranslate()-1+Math.pow(-a.minTranslate()+i.startTranslate+f,g))):f<0&&i.currentTranslate<a.maxTranslate()&&(m=!1,s.resistance&&(i.currentTranslate=a.maxTranslate()+1-Math.pow(a.maxTranslate()-i.startTranslate-f,g))),m&&(o.preventedByNestedSwiper=!0),!a.allowSlideNext&&"next"===a.swipeDirection&&i.currentTranslate<i.startTranslate&&(i.currentTranslate=i.startTranslate),!a.allowSlidePrev&&"prev"===a.swipeDirection&&i.currentTranslate>i.startTranslate&&(i.currentTranslate=i.startTranslate),a.allowSlidePrev||a.allowSlideNext||(i.currentTranslate=i.startTranslate),s.threshold>0){if(!(Math.abs(f)>s.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,i.currentTranslate=i.startTranslate,void(r.diff=a.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}s.followFinger&&!s.cssMode&&((s.freeMode||s.watchSlidesProgress||s.watchSlidesVisibility)&&(a.updateActiveIndex(),a.updateSlidesClasses()),s.freeMode&&(0===i.velocities.length&&i.velocities.push({position:r[a.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:r[a.isHorizontal()?"currentX":"currentY"],time:ce()})),a.updateProgress(i.currentTranslate),a.setTranslate(i.currentTranslate))}}}}else i.startMoving&&i.isScrolling&&a.emit("touchMoveOpposite",o)}}function vt(e){var t=this,a=t.touchEventsData,i=t.params,s=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,l=t.slidesGrid,o=t.snapGrid;if(t.enabled){var d=e;if(d.originalEvent&&(d=d.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",d),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&i.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);i.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,u=ce(),c=u-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap click",d),c<300&&u-a.lastClickTime<300&&t.emit("doubleTap doubleClick",d)),a.lastClickTime=ce(),ue((function(){t.destroyed||(t.allowClick=!0)})),!a.isTouched||!a.isMoved||!t.swipeDirection||0===s.diff||a.currentTranslate===a.startTranslate)return a.isTouched=!1,a.isMoved=!1,void(a.startMoving=!1);if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,p=i.followFinger?r?t.translate:-t.translate:-a.currentTranslate,!i.cssMode)if(i.freeMode){if(p<-t.minTranslate())return void t.slideTo(t.activeIndex);if(p>-t.maxTranslate())return void(t.slides.length<o.length?t.slideTo(o.length-1):t.slideTo(t.slides.length-1));if(i.freeModeMomentum){if(a.velocities.length>1){var h=a.velocities.pop(),v=a.velocities.pop(),f=h.position-v.position,m=h.time-v.time;t.velocity=f/m,t.velocity/=2,Math.abs(t.velocity)<i.freeModeMinimumVelocity&&(t.velocity=0),(m>150||ce()-h.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=i.freeModeMomentumVelocityRatio,a.velocities.length=0;var g=1e3*i.freeModeMomentumRatio,b=t.velocity*g,w=t.translate+b;r&&(w=-w);var y,E,x=!1,T=20*Math.abs(t.velocity)*i.freeModeMomentumBounceRatio;if(w<t.maxTranslate())i.freeModeMomentumBounce?(w+t.maxTranslate()<-T&&(w=t.maxTranslate()-T),y=t.maxTranslate(),x=!0,a.allowMomentumBounce=!0):w=t.maxTranslate(),i.loop&&i.centeredSlides&&(E=!0);else if(w>t.minTranslate())i.freeModeMomentumBounce?(w-t.minTranslate()>T&&(w=t.minTranslate()+T),y=t.minTranslate(),x=!0,a.allowMomentumBounce=!0):w=t.minTranslate(),i.loop&&i.centeredSlides&&(E=!0);else if(i.freeModeSticky){for(var C,S=0;S<o.length;S+=1)if(o[S]>-w){C=S;break}w=-(w=Math.abs(o[C]-w)<Math.abs(o[C-1]-w)||"next"===t.swipeDirection?o[C]:o[C-1])}if(E&&t.once("transitionEnd",(function(){t.loopFix()})),0!==t.velocity){if(g=r?Math.abs((-w-t.translate)/t.velocity):Math.abs((w-t.translate)/t.velocity),i.freeModeSticky){var M=Math.abs((r?-w:w)-t.translate),z=t.slidesSizesGrid[t.activeIndex];g=M<z?i.speed:M<2*z?1.5*i.speed:2.5*i.speed}}else if(i.freeModeSticky)return void t.slideToClosest();i.freeModeMomentumBounce&&x?(t.updateProgress(y),t.setTransition(g),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating=!0,n.transitionEnd((function(){t&&!t.destroyed&&a.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(i.speed),setTimeout((function(){t.setTranslate(y),n.transitionEnd((function(){t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(t.updateProgress(w),t.setTransition(g),t.setTranslate(w),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((function(){t&&!t.destroyed&&t.transitionEnd()})))):(t.emit("_freeModeNoMomentumRelease"),t.updateProgress(w)),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(i.freeModeSticky)return void t.slideToClosest();i.freeMode&&t.emit("_freeModeNoMomentumRelease")}(!i.freeModeMomentum||c>=i.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var k=0,P=t.slidesSizesGrid[0],$=0;$<l.length;$+=$<i.slidesPerGroupSkip?1:i.slidesPerGroup){var L=$<i.slidesPerGroupSkip-1?1:i.slidesPerGroup;void 0!==l[$+L]?p>=l[$]&&p<l[$+L]&&(k=$,P=l[$+L]-l[$]):p>=l[$]&&(k=$,P=l[l.length-1]-l[l.length-2])}var I=(p-l[k])/P,O=k<i.slidesPerGroupSkip-1?1:i.slidesPerGroup;if(c>i.longSwipesMs){if(!i.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(I>=i.longSwipesRatio?t.slideTo(k+O):t.slideTo(k)),"prev"===t.swipeDirection&&(I>1-i.longSwipesRatio?t.slideTo(k+O):t.slideTo(k))}else{if(!i.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||d.target!==t.navigation.nextEl&&d.target!==t.navigation.prevEl?("next"===t.swipeDirection&&t.slideTo(k+O),"prev"===t.swipeDirection&&t.slideTo(k)):d.target===t.navigation.nextEl?t.slideTo(k+O):t.slideTo(k)}}}}function ft(){var e=this,t=e.params,a=e.el;if(!a||0!==a.offsetWidth){t.breakpoints&&e.setBreakpoint();var i=e.allowSlideNext,s=e.allowSlidePrev,r=e.snapGrid;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=s,e.allowSlideNext=i,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}}function mt(e){var t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function gt(){var e=this,t=e.wrapperEl,a=e.rtlTranslate;if(e.enabled){e.previousTranslate=e.translate,e.isHorizontal()?e.translate=a?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();var i=e.maxTranslate()-e.minTranslate();(0===i?0:(e.translate-e.minTranslate())/i)!==e.progress&&e.updateProgress(a?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}}var bt=!1;function wt(){}function yt(){var e=this,t=n(),a=e.params,i=e.touchEvents,s=e.el,r=e.wrapperEl,l=e.device,o=e.support;e.onTouchStart=ct.bind(e),e.onTouchMove=ht.bind(e),e.onTouchEnd=vt.bind(e),a.cssMode&&(e.onScroll=gt.bind(e)),e.onClick=mt.bind(e);var d=!!a.nested;if(!o.touch&&o.pointerEvents)s.addEventListener(i.start,e.onTouchStart,!1),t.addEventListener(i.move,e.onTouchMove,d),t.addEventListener(i.end,e.onTouchEnd,!1);else{if(o.touch){var p=!("touchstart"!==i.start||!o.passiveListener||!a.passiveListeners)&&{passive:!0,capture:!1};s.addEventListener(i.start,e.onTouchStart,p),s.addEventListener(i.move,e.onTouchMove,o.passiveListener?{passive:!1,capture:d}:d),s.addEventListener(i.end,e.onTouchEnd,p),i.cancel&&s.addEventListener(i.cancel,e.onTouchEnd,p),bt||(t.addEventListener("touchstart",wt),bt=!0)}(a.simulateTouch&&!l.ios&&!l.android||a.simulateTouch&&!o.touch&&l.ios)&&(s.addEventListener("mousedown",e.onTouchStart,!1),t.addEventListener("mousemove",e.onTouchMove,d),t.addEventListener("mouseup",e.onTouchEnd,!1))}(a.preventClicks||a.preventClicksPropagation)&&s.addEventListener("click",e.onClick,!0),a.cssMode&&r.addEventListener("scroll",e.onScroll),a.updateOnWindowResize?e.on(l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",ft,!0):e.on("observerUpdate",ft,!0)}function Et(){var e=this,t=n(),a=e.params,i=e.touchEvents,s=e.el,r=e.wrapperEl,l=e.device,o=e.support,d=!!a.nested;if(!o.touch&&o.pointerEvents)s.removeEventListener(i.start,e.onTouchStart,!1),t.removeEventListener(i.move,e.onTouchMove,d),t.removeEventListener(i.end,e.onTouchEnd,!1);else{if(o.touch){var p=!("onTouchStart"!==i.start||!o.passiveListener||!a.passiveListeners)&&{passive:!0,capture:!1};s.removeEventListener(i.start,e.onTouchStart,p),s.removeEventListener(i.move,e.onTouchMove,d),s.removeEventListener(i.end,e.onTouchEnd,p),i.cancel&&s.removeEventListener(i.cancel,e.onTouchEnd,p)}(a.simulateTouch&&!l.ios&&!l.android||a.simulateTouch&&!o.touch&&l.ios)&&(s.removeEventListener("mousedown",e.onTouchStart,!1),t.removeEventListener("mousemove",e.onTouchMove,d),t.removeEventListener("mouseup",e.onTouchEnd,!1))}(a.preventClicks||a.preventClicksPropagation)&&s.removeEventListener("click",e.onClick,!0),a.cssMode&&r.removeEventListener("scroll",e.onScroll),e.off(l.ios||l.android?"resize orientationchange observerUpdate":"resize observerUpdate",ft)}function xt(){var e=this,t=e.activeIndex,a=e.initialized,i=e.loopedSlides,s=void 0===i?0:i,r=e.params,n=e.$el,l=r.breakpoints;if(l&&(!l||0!==Object.keys(l).length)){var o=e.getBreakpoint(l,e.params.breakpointsBase,e.el);if(o&&e.currentBreakpoint!==o){var d=o in l?l[o]:void 0;d&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach((function(e){var t=d[e];void 0!==t&&(d[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")}));var p=d||e.originalParams,u=r.slidesPerColumn>1,c=p.slidesPerColumn>1,h=r.enabled;u&&!c?(n.removeClass(r.containerModifierClass+"multirow "+r.containerModifierClass+"multirow-column"),e.emitContainerClasses()):!u&&c&&(n.addClass(r.containerModifierClass+"multirow"),"column"===p.slidesPerColumnFill&&n.addClass(r.containerModifierClass+"multirow-column"),e.emitContainerClasses());var v=p.direction&&p.direction!==r.direction,f=r.loop&&(p.slidesPerView!==r.slidesPerView||v);v&&a&&e.changeDirection(),me(e.params,p);var m=e.params.enabled;me(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),h&&!m?e.disable():!h&&m&&e.enable(),e.currentBreakpoint=o,e.emit("_beforeBreakpoint",p),f&&a&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-s+e.loopedSlides,0,!1)),e.emit("breakpoint",p)}}}function Tt(e,t,a){if(void 0===t&&(t="window"),e&&("container"!==t||a)){var i=!1,s=o(),r="window"===t?s.innerWidth:a.clientWidth,n="window"===t?s.innerHeight:a.clientHeight,l=Object.keys(e).map((function(e){if("string"==typeof e&&0===e.indexOf("@")){var t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var d=0;d<l.length;d+=1){var p=l[d],u=p.point;p.value<=r&&(i=u)}return i||"max"}}function Ct(e,t){var a=[];return e.forEach((function(e){"object"==typeof e?Object.keys(e).forEach((function(i){e[i]&&a.push(t+i)})):"string"==typeof e&&a.push(t+e)})),a}function St(){var e=this,t=e.classNames,a=e.params,i=e.rtl,s=e.$el,r=e.device,n=e.support,l=Ct(["initialized",a.direction,{"pointer-events":n.pointerEvents&&!n.touch},{"free-mode":a.freeMode},{autoheight:a.autoHeight},{rtl:i},{multirow:a.slidesPerColumn>1},{"multirow-column":a.slidesPerColumn>1&&"column"===a.slidesPerColumnFill},{android:r.android},{ios:r.ios},{"css-mode":a.cssMode}],a.containerModifierClass);t.push.apply(t,l),s.addClass([].concat(t).join(" ")),e.emitContainerClasses()}function Mt(){var e=this,t=e.$el,a=e.classNames;t.removeClass(a.join(" ")),e.emitContainerClasses()}function zt(e,t,a,i,s,r){var n,l=o();function d(){r&&r()}T(e).parent("picture")[0]||e.complete&&s?d():t?((n=new l.Image).onload=d,n.onerror=d,i&&(n.sizes=i),a&&(n.srcset=a),t&&(n.src=t)):d()}function kt(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var a=0;a<e.imagesToLoad.length;a+=1){var i=e.imagesToLoad[a];e.loadImage(i,i.currentSrc||i.getAttribute("src"),i.srcset||i.getAttribute("srcset"),i.sizes||i.getAttribute("sizes"),!0,t)}}function Pt(){var e=this,t=e.params,a=e.isLocked,i=e.slides.length>0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&i?e.isLocked=i<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,a!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),a&&a!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}var $t={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!1,nested:!1,createElements:!1,enabled:!0,width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1},Lt={modular:$e,eventsEmitter:Le,update:{updateSize:Ie,updateSlides:Oe,updateAutoHeight:Ae,updateSlidesOffset:De,updateSlidesProgress:Ne,updateProgress:Ge,updateSlidesClasses:Be,updateActiveIndex:He,updateClickedSlide:Xe},translate:{getTranslate:Ye,setTranslate:Re,minTranslate:We,maxTranslate:Ve,translateTo:Fe},transition:{setTransition:_e,transitionStart:qe,transitionEnd:je},slide:{slideTo:Ue,slideToLoop:Ke,slideNext:Je,slidePrev:Ze,slideReset:Qe,slideToClosest:et,slideToClickedSlide:tt},loop:{loopCreate:at,loopFix:it,loopDestroy:st},grabCursor:{setGrabCursor:rt,unsetGrabCursor:nt},manipulation:{appendSlide:lt,prependSlide:ot,addSlide:dt,removeSlide:pt,removeAllSlides:ut},events:{attachEvents:yt,detachEvents:Et},breakpoints:{setBreakpoint:xt,getBreakpoint:Tt},checkOverflow:{checkOverflow:Pt},classes:{addClasses:St,removeClasses:Mt},images:{loadImage:zt,preloadImages:kt}},It={},Ot=function(){function e(){for(var t,a,i=arguments.length,s=new Array(i),r=0;r<i;r++)s[r]=arguments[r];if(1===s.length&&s[0].constructor&&"Object"===Object.prototype.toString.call(s[0]).slice(8,-1)?a=s[0]:(t=s[0],a=s[1]),a||(a={}),a=me({},a),t&&!a.el&&(a.el=t),a.el&&T(a.el).length>1){var n=[];return T(a.el).each((function(t){var i=me({},a,{el:t});n.push(new e(i))})),n}var l=this;l.__swiper__=!0,l.support=Ee(),l.device=Te({userAgent:a.userAgent}),l.browser=Se(),l.eventsListeners={},l.eventsAnyListeners=[],void 0===l.modules&&(l.modules={}),Object.keys(l.modules).forEach((function(e){var t=l.modules[e];if(t.params){var i=Object.keys(t.params)[0],s=t.params[i];if("object"!=typeof s||null===s)return;if(["navigation","pagination","scrollbar"].indexOf(i)>=0&&!0===a[i]&&(a[i]={auto:!0}),!(i in a)||!("enabled"in s))return;!0===a[i]&&(a[i]={enabled:!0}),"object"!=typeof a[i]||"enabled"in a[i]||(a[i].enabled=!0),a[i]||(a[i]={enabled:!1})}}));var o,d,p=me({},$t);return l.useParams(p),l.params=me({},p,It,a),l.originalParams=me({},l.params),l.passedParams=me({},a),l.params&&l.params.on&&Object.keys(l.params.on).forEach((function(e){l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),l.$=T,me(l,{enabled:l.params.enabled,el:t,classNames:[],slides:T(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===l.params.direction},isVertical:function(){return"vertical"===l.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEvents:(o=["touchstart","touchmove","touchend","touchcancel"],d=["mousedown","mousemove","mouseup"],l.support.pointerEvents&&(d=["pointerdown","pointermove","pointerup"]),l.touchEventsTouch={start:o[0],move:o[1],end:o[2],cancel:o[3]},l.touchEventsDesktop={start:d[0],move:d[1],end:d[2]},l.support.touch||!l.params.simulateTouch?l.touchEventsTouch:l.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video, label",lastClickTime:ce(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.useModules(),l.emit("_swiper"),l.params.init&&l.init(),l}var a=e.prototype;return a.enable=function(){var e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))},a.disable=function(){var e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))},a.setProgress=function(e,t){var a=this;e=Math.min(Math.max(e,0),1);var i=a.minTranslate(),s=(a.maxTranslate()-i)*e+i;a.translateTo(s,void 0===t?0:t),a.updateActiveIndex(),a.updateSlidesClasses()},a.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(" ").filter((function(t){return 0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass)}));e.emit("_containerClasses",t.join(" "))}},a.getSlideClasses=function(e){var t=this;return e.className.split(" ").filter((function(e){return 0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)})).join(" ")},a.emitSlidesClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=[];e.slides.each((function(a){var i=e.getSlideClasses(a);t.push({slideEl:a,classNames:i}),e.emit("_slideClass",a,i)})),e.emit("_slideClasses",t)}},a.slidesPerViewDynamic=function(){var e=this,t=e.params,a=e.slides,i=e.slidesGrid,s=e.size,r=e.activeIndex,n=1;if(t.centeredSlides){for(var l,o=a[r].swiperSlideSize,d=r+1;d<a.length;d+=1)a[d]&&!l&&(n+=1,(o+=a[d].swiperSlideSize)>s&&(l=!0));for(var p=r-1;p>=0;p-=1)a[p]&&!l&&(n+=1,(o+=a[p].swiperSlideSize)>s&&(l=!0))}else for(var u=r+1;u<a.length;u+=1)i[u]-i[r]<s&&(n+=1);return n},a.update=function(){var e=this;if(e&&!e.destroyed){var t=e.snapGrid,a=e.params;a.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode?(i(),e.params.autoHeight&&e.updateAutoHeight()):(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||i(),a.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function i(){var t=e.rtlTranslate?-1*e.translate:e.translate,a=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(a),e.updateActiveIndex(),e.updateSlidesClasses()}},a.changeDirection=function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.direction;return e||(e="horizontal"===i?"vertical":"horizontal"),e===i||"horizontal"!==e&&"vertical"!==e||(a.$el.removeClass(""+a.params.containerModifierClass+i).addClass(""+a.params.containerModifierClass+e),a.emitContainerClasses(),a.params.direction=e,a.slides.each((function(t){"vertical"===e?t.style.width="":t.style.height=""})),a.emit("changeDirection"),t&&a.update()),a},a.mount=function(e){var t=this;if(t.mounted)return!0;var a=T(e||t.params.el);if(!(e=a[0]))return!1;e.swiper=t;var i=function(){if(e&&e.shadowRoot&&e.shadowRoot.querySelector){var i=T(e.shadowRoot.querySelector("."+t.params.wrapperClass));return i.children=function(e){return a.children(e)},i}return a.children("."+t.params.wrapperClass)}();if(0===i.length&&t.params.createElements){var s=n().createElement("div");i=T(s),s.className=t.params.wrapperClass,a.append(s),a.children("."+t.params.slideClass).each((function(e){i.append(e)}))}return me(t,{$el:a,el:e,$wrapperEl:i,wrapperEl:i[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===a.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===a.css("direction")),wrongRTL:"-webkit-box"===i.css("display")}),!0},a.init=function(e){var t=this;return t.initialized||!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t},a.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var a=this,i=a.params,s=a.$el,r=a.$wrapperEl,n=a.slides;return void 0===a.params||a.destroyed||(a.emit("beforeDestroy"),a.initialized=!1,a.detachEvents(),i.loop&&a.loopDestroy(),t&&(a.removeClasses(),s.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([i.slideVisibleClass,i.slideActiveClass,i.slideNextClass,i.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),a.emit("destroy"),Object.keys(a.eventsListeners).forEach((function(e){a.off(e)})),!1!==e&&(a.$el[0].swiper=null,pe(a)),a.destroyed=!0),null},e.extendDefaults=function(e){me(It,e)},e.installModule=function(t){e.prototype.modules||(e.prototype.modules={});var a=t.name||Object.keys(e.prototype.modules).length+"_"+ce();e.prototype.modules[a]=t},e.use=function(t){return Array.isArray(t)?(t.forEach((function(t){return e.installModule(t)})),e):(e.installModule(t),e)},t(e,null,[{key:"extendedDefaults",get:function(){return It}},{key:"defaults",get:function(){return $t}}]),e}();Object.keys(Lt).forEach((function(e){Object.keys(Lt[e]).forEach((function(t){Ot.prototype[t]=Lt[e][t]}))})),Ot.use([ze,Pe]);var At={update:function(e){var t=this,a=t.params,i=a.slidesPerView,s=a.slidesPerGroup,r=a.centeredSlides,n=t.params.virtual,l=n.addSlidesBefore,o=n.addSlidesAfter,d=t.virtual,p=d.from,u=d.to,c=d.slides,h=d.slidesGrid,v=d.renderSlide,f=d.offset;t.updateActiveIndex();var m,g,b,w=t.activeIndex||0;m=t.rtlTranslate?"right":t.isHorizontal()?"left":"top",r?(g=Math.floor(i/2)+s+o,b=Math.floor(i/2)+s+l):(g=i+(s-1)+o,b=s+l);var y=Math.max((w||0)-b,0),E=Math.min((w||0)+g,c.length-1),x=(t.slidesGrid[y]||0)-(t.slidesGrid[0]||0);function T(){t.updateSlides(),t.updateProgress(),t.updateSlidesClasses(),t.lazy&&t.params.lazy.enabled&&t.lazy.load()}if(me(t.virtual,{from:y,to:E,offset:x,slidesGrid:t.slidesGrid}),p===y&&u===E&&!e)return t.slidesGrid!==h&&x!==f&&t.slides.css(m,x+"px"),void t.updateProgress();if(t.params.virtual.renderExternal)return t.params.virtual.renderExternal.call(t,{offset:x,from:y,to:E,slides:function(){for(var e=[],t=y;t<=E;t+=1)e.push(c[t]);return e}()}),void(t.params.virtual.renderExternalUpdate&&T());var C=[],S=[];if(e)t.$wrapperEl.find("."+t.params.slideClass).remove();else for(var M=p;M<=u;M+=1)(M<y||M>E)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+M+'"]').remove();for(var z=0;z<c.length;z+=1)z>=y&&z<=E&&(void 0===u||e?S.push(z):(z>u&&S.push(z),z<p&&C.push(z)));S.forEach((function(e){t.$wrapperEl.append(v(c[e],e))})),C.sort((function(e,t){return t-e})).forEach((function(e){t.$wrapperEl.prepend(v(c[e],e))})),t.$wrapperEl.children(".swiper-slide").css(m,x+"px"),T()},renderSlide:function(e,t){var a=this,i=a.params.virtual;if(i.cache&&a.virtual.cache[t])return a.virtual.cache[t];var s=i.renderSlide?T(i.renderSlide.call(a,e,t)):T('<div class="'+a.params.slideClass+'" data-swiper-slide-index="'+t+'">'+e+"</div>");return s.attr("data-swiper-slide-index")||s.attr("data-swiper-slide-index",t),i.cache&&(a.virtual.cache[t]=s),s},appendSlide:function(e){var t=this;if("object"==typeof e&&"length"in e)for(var a=0;a<e.length;a+=1)e[a]&&t.virtual.slides.push(e[a]);else t.virtual.slides.push(e);t.virtual.update(!0)},prependSlide:function(e){var t=this,a=t.activeIndex,i=a+1,s=1;if(Array.isArray(e)){for(var r=0;r<e.length;r+=1)e[r]&&t.virtual.slides.unshift(e[r]);i=a+e.length,s=e.length}else t.virtual.slides.unshift(e);if(t.params.virtual.cache){var n=t.virtual.cache,l={};Object.keys(n).forEach((function(e){var t=n[e],a=t.attr("data-swiper-slide-index");a&&t.attr("data-swiper-slide-index",parseInt(a,10)+1),l[parseInt(e,10)+s]=t})),t.virtual.cache=l}t.virtual.update(!0),t.slideTo(i,0)},removeSlide:function(e){var t=this;if(null!=e){var a=t.activeIndex;if(Array.isArray(e))for(var i=e.length-1;i>=0;i-=1)t.virtual.slides.splice(e[i],1),t.params.virtual.cache&&delete t.virtual.cache[e[i]],e[i]<a&&(a-=1),a=Math.max(a,0);else t.virtual.slides.splice(e,1),t.params.virtual.cache&&delete t.virtual.cache[e],e<a&&(a-=1),a=Math.max(a,0);t.virtual.update(!0),t.slideTo(a,0)}},removeAllSlides:function(){var e=this;e.virtual.slides=[],e.params.virtual.cache&&(e.virtual.cache={}),e.virtual.update(!0),e.slideTo(0,0)}},Dt={name:"virtual",params:{virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}},create:function(){var e=this;ge(e,{virtual:a({},At,{slides:e.params.virtual.slides,cache:{}})})},on:{beforeInit:function(e){if(e.params.virtual.enabled){e.classNames.push(e.params.containerModifierClass+"virtual");var t={watchSlidesProgress:!0};me(e.params,t),me(e.originalParams,t),e.params.initialSlide||e.virtual.update()}},setTranslate:function(e){e.params.virtual.enabled&&e.virtual.update()}}},Nt={handle:function(e){var t=this;if(t.enabled){var a=o(),i=n(),s=t.rtlTranslate,r=e;r.originalEvent&&(r=r.originalEvent);var l=r.keyCode||r.charCode,d=t.params.keyboard.pageUpDown,p=d&&33===l,u=d&&34===l,c=37===l,h=39===l,v=38===l,f=40===l;if(!t.allowSlideNext&&(t.isHorizontal()&&h||t.isVertical()&&f||u))return!1;if(!t.allowSlidePrev&&(t.isHorizontal()&&c||t.isVertical()&&v||p))return!1;if(!(r.shiftKey||r.altKey||r.ctrlKey||r.metaKey||i.activeElement&&i.activeElement.nodeName&&("input"===i.activeElement.nodeName.toLowerCase()||"textarea"===i.activeElement.nodeName.toLowerCase()))){if(t.params.keyboard.onlyInViewport&&(p||u||c||h||v||f)){var m=!1;if(t.$el.parents("."+t.params.slideClass).length>0&&0===t.$el.parents("."+t.params.slideActiveClass).length)return;var g=t.$el,b=g[0].clientWidth,w=g[0].clientHeight,y=a.innerWidth,E=a.innerHeight,x=t.$el.offset();s&&(x.left-=t.$el[0].scrollLeft);for(var T=[[x.left,x.top],[x.left+b,x.top],[x.left,x.top+w],[x.left+b,x.top+w]],C=0;C<T.length;C+=1){var S=T[C];if(S[0]>=0&&S[0]<=y&&S[1]>=0&&S[1]<=E){if(0===S[0]&&0===S[1])continue;m=!0}}if(!m)return}t.isHorizontal()?((p||u||c||h)&&(r.preventDefault?r.preventDefault():r.returnValue=!1),((u||h)&&!s||(p||c)&&s)&&t.slideNext(),((p||c)&&!s||(u||h)&&s)&&t.slidePrev()):((p||u||v||f)&&(r.preventDefault?r.preventDefault():r.returnValue=!1),(u||f)&&t.slideNext(),(p||v)&&t.slidePrev()),t.emit("keyPress",l)}}},enable:function(){var e=this,t=n();e.keyboard.enabled||(T(t).on("keydown",e.keyboard.handle),e.keyboard.enabled=!0)},disable:function(){var e=this,t=n();e.keyboard.enabled&&(T(t).off("keydown",e.keyboard.handle),e.keyboard.enabled=!1)}},Gt={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}},create:function(){ge(this,{keyboard:a({enabled:!1},Nt)})},on:{init:function(e){e.params.keyboard.enabled&&e.keyboard.enable()},destroy:function(e){e.keyboard.enabled&&e.keyboard.disable()}}};function Bt(){var e=n(),t="onwheel",a=t in e;if(!a){var i=e.createElement("div");i.setAttribute(t,"return;"),a="function"==typeof i[t]}return!a&&e.implementation&&e.implementation.hasFeature&&!0!==e.implementation.hasFeature("","")&&(a=e.implementation.hasFeature("Events.wheel","3.0")),a}var Ht={lastScrollTime:ce(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:function(){return o().navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":Bt()?"wheel":"mousewheel"},normalize:function(e){var t=10,a=40,i=800,s=0,r=0,n=0,l=0;return"detail"in e&&(r=e.detail),"wheelDelta"in e&&(r=-e.wheelDelta/120),"wheelDeltaY"in e&&(r=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(s=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(s=r,r=0),n=s*t,l=r*t,"deltaY"in e&&(l=e.deltaY),"deltaX"in e&&(n=e.deltaX),e.shiftKey&&!n&&(n=l,l=0),(n||l)&&e.deltaMode&&(1===e.deltaMode?(n*=a,l*=a):(n*=i,l*=i)),n&&!s&&(s=n<1?-1:1),l&&!r&&(r=l<1?-1:1),{spinX:s,spinY:r,pixelX:n,pixelY:l}},handleMouseEnter:function(){var e=this;e.enabled&&(e.mouseEntered=!0)},handleMouseLeave:function(){var e=this;e.enabled&&(e.mouseEntered=!1)},handle:function(e){var t=e,a=this;if(a.enabled){var i=a.params.mousewheel;a.params.cssMode&&t.preventDefault();var s=a.$el;if("container"!==a.params.mousewheel.eventsTarget&&(s=T(a.params.mousewheel.eventsTarget)),!a.mouseEntered&&!s[0].contains(t.target)&&!i.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var r=0,n=a.rtlTranslate?-1:1,l=Ht.normalize(t);if(i.forceToAxis)if(a.isHorizontal()){if(!(Math.abs(l.pixelX)>Math.abs(l.pixelY)))return!0;r=-l.pixelX*n}else{if(!(Math.abs(l.pixelY)>Math.abs(l.pixelX)))return!0;r=-l.pixelY}else r=Math.abs(l.pixelX)>Math.abs(l.pixelY)?-l.pixelX*n:-l.pixelY;if(0===r)return!0;i.invert&&(r=-r);var o=a.getTranslate()+r*i.sensitivity;if(o>=a.minTranslate()&&(o=a.minTranslate()),o<=a.maxTranslate()&&(o=a.maxTranslate()),(!!a.params.loop||!(o===a.minTranslate()||o===a.maxTranslate()))&&a.params.nested&&t.stopPropagation(),a.params.freeMode){var d={time:ce(),delta:Math.abs(r),direction:Math.sign(r)},p=a.mousewheel.lastEventBeforeSnap,u=p&&d.time<p.time+500&&d.delta<=p.delta&&d.direction===p.direction;if(!u){a.mousewheel.lastEventBeforeSnap=void 0,a.params.loop&&a.loopFix();var c=a.getTranslate()+r*i.sensitivity,h=a.isBeginning,v=a.isEnd;if(c>=a.minTranslate()&&(c=a.minTranslate()),c<=a.maxTranslate()&&(c=a.maxTranslate()),a.setTransition(0),a.setTranslate(c),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!h&&a.isBeginning||!v&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky){clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=void 0;var f=a.mousewheel.recentWheelEvents;f.length>=15&&f.shift();var m=f.length?f[f.length-1]:void 0,g=f[0];if(f.push(d),m&&(d.delta>m.delta||d.direction!==m.direction))f.splice(0);else if(f.length>=15&&d.time-g.time<500&&g.delta-d.delta>=1&&d.delta<=6){var b=r>0?.8:.2;a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.mousewheel.timeout=ue((function(){a.slideToClosest(a.params.speed,!0,void 0,b)}),0)}a.mousewheel.timeout||(a.mousewheel.timeout=ue((function(){var e=.5;a.mousewheel.lastEventBeforeSnap=d,f.splice(0),a.slideToClosest(a.params.speed,!0,void 0,e)}),500))}if(u||a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),c===a.minTranslate()||c===a.maxTranslate())return!0}}else{var w={time:ce(),delta:Math.abs(r),direction:Math.sign(r),raw:e},y=a.mousewheel.recentWheelEvents;y.length>=2&&y.shift();var E=y.length?y[y.length-1]:void 0;if(y.push(w),E?(w.direction!==E.direction||w.delta>E.delta||w.time>E.time+150)&&a.mousewheel.animateSlider(w):a.mousewheel.animateSlider(w),a.mousewheel.releaseScroll(w))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1}},animateSlider:function(e){var t=this,a=o();return!(this.params.mousewheel.thresholdDelta&&e.delta<this.params.mousewheel.thresholdDelta||this.params.mousewheel.thresholdTime&&ce()-t.mousewheel.lastScrollTime<this.params.mousewheel.thresholdTime||!(e.delta>=6&&ce()-t.mousewheel.lastScrollTime<60)&&(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),t.emit("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),t.emit("scroll",e.raw)),t.mousewheel.lastScrollTime=(new a.Date).getTime(),1))},releaseScroll:function(e){var t=this,a=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&a.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&a.releaseOnEdges)return!0;return!1},enable:function(){var e=this,t=Ht.event();if(e.params.cssMode)return e.wrapperEl.removeEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=T(e.params.mousewheel.eventsTarget)),a.on("mouseenter",e.mousewheel.handleMouseEnter),a.on("mouseleave",e.mousewheel.handleMouseLeave),a.on(t,e.mousewheel.handle),e.mousewheel.enabled=!0,!0},disable:function(){var e=this,t=Ht.event();if(e.params.cssMode)return e.wrapperEl.addEventListener(t,e.mousewheel.handle),!0;if(!t)return!1;if(!e.mousewheel.enabled)return!1;var a=e.$el;return"container"!==e.params.mousewheel.eventsTarget&&(a=T(e.params.mousewheel.eventsTarget)),a.off(t,e.mousewheel.handle),e.mousewheel.enabled=!1,!0}},Xt={toggleEl:function(e,t){e[t?"addClass":"removeClass"](this.params.navigation.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=t)},update:function(){var e=this,t=e.params.navigation,a=e.navigation.toggleEl;if(!e.params.loop){var i=e.navigation,s=i.$nextEl,r=i.$prevEl;r&&r.length>0&&(e.isBeginning?a(r,!0):a(r,!1),e.params.watchOverflow&&e.enabled&&r[e.isLocked?"addClass":"removeClass"](t.lockClass)),s&&s.length>0&&(e.isEnd?a(s,!0):a(s,!1),e.params.watchOverflow&&e.enabled&&s[e.isLocked?"addClass":"removeClass"](t.lockClass))}},onPrevClick:function(e){var t=this;e.preventDefault(),t.isBeginning&&!t.params.loop||t.slidePrev()},onNextClick:function(e){var t=this;e.preventDefault(),t.isEnd&&!t.params.loop||t.slideNext()},init:function(){var e,t,a=this,i=a.params.navigation;a.params.navigation=we(a.$el,a.params.navigation,a.params.createElements,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),(i.nextEl||i.prevEl)&&(i.nextEl&&(e=T(i.nextEl),a.params.uniqueNavElements&&"string"==typeof i.nextEl&&e.length>1&&1===a.$el.find(i.nextEl).length&&(e=a.$el.find(i.nextEl))),i.prevEl&&(t=T(i.prevEl),a.params.uniqueNavElements&&"string"==typeof i.prevEl&&t.length>1&&1===a.$el.find(i.prevEl).length&&(t=a.$el.find(i.prevEl))),e&&e.length>0&&e.on("click",a.navigation.onNextClick),t&&t.length>0&&t.on("click",a.navigation.onPrevClick),me(a.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}),a.enabled||(e&&e.addClass(i.lockClass),t&&t.addClass(i.lockClass)))},destroy:function(){var e=this,t=e.navigation,a=t.$nextEl,i=t.$prevEl;a&&a.length&&(a.off("click",e.navigation.onNextClick),a.removeClass(e.params.navigation.disabledClass)),i&&i.length&&(i.off("click",e.navigation.onPrevClick),i.removeClass(e.params.navigation.disabledClass))}},Yt={update:function(){var e=this,t=e.rtl,a=e.params.pagination;if(a.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var i,s=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,r=e.pagination.$el,n=e.params.loop?Math.ceil((s-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?((i=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup))>s-1-2*e.loopedSlides&&(i-=s-2*e.loopedSlides),i>n-1&&(i-=n),i<0&&"bullets"!==e.params.paginationType&&(i=n+i)):i=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===a.type&&e.pagination.bullets&&e.pagination.bullets.length>0){var l,o,d,p=e.pagination.bullets;if(a.dynamicBullets&&(e.pagination.bulletSize=p.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(a.dynamicMainBullets+4)+"px"),a.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=i-e.previousIndex,e.pagination.dynamicBulletIndex>a.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=a.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),l=i-e.pagination.dynamicBulletIndex,d=((o=l+(Math.min(p.length,a.dynamicMainBullets)-1))+l)/2),p.removeClass(a.bulletActiveClass+" "+a.bulletActiveClass+"-next "+a.bulletActiveClass+"-next-next "+a.bulletActiveClass+"-prev "+a.bulletActiveClass+"-prev-prev "+a.bulletActiveClass+"-main"),r.length>1)p.each((function(e){var t=T(e),s=t.index();s===i&&t.addClass(a.bulletActiveClass),a.dynamicBullets&&(s>=l&&s<=o&&t.addClass(a.bulletActiveClass+"-main"),s===l&&t.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),s===o&&t.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next"))}));else{var u=p.eq(i),c=u.index();if(u.addClass(a.bulletActiveClass),a.dynamicBullets){for(var h=p.eq(l),v=p.eq(o),f=l;f<=o;f+=1)p.eq(f).addClass(a.bulletActiveClass+"-main");if(e.params.loop)if(c>=p.length-a.dynamicMainBullets){for(var m=a.dynamicMainBullets;m>=0;m-=1)p.eq(p.length-m).addClass(a.bulletActiveClass+"-main");p.eq(p.length-a.dynamicMainBullets-1).addClass(a.bulletActiveClass+"-prev")}else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next");else h.prev().addClass(a.bulletActiveClass+"-prev").prev().addClass(a.bulletActiveClass+"-prev-prev"),v.next().addClass(a.bulletActiveClass+"-next").next().addClass(a.bulletActiveClass+"-next-next")}}if(a.dynamicBullets){var g=Math.min(p.length,a.dynamicMainBullets+4),b=(e.pagination.bulletSize*g-e.pagination.bulletSize)/2-d*e.pagination.bulletSize,w=t?"right":"left";p.css(e.isHorizontal()?w:"top",b+"px")}}if("fraction"===a.type&&(r.find(be(a.currentClass)).text(a.formatFractionCurrent(i+1)),r.find(be(a.totalClass)).text(a.formatFractionTotal(n))),"progressbar"===a.type){var y;y=a.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";var E=(i+1)/n,x=1,C=1;"horizontal"===y?x=E:C=E,r.find(be(a.progressbarFillClass)).transform("translate3d(0,0,0) scaleX("+x+") scaleY("+C+")").transition(e.params.speed)}"custom"===a.type&&a.renderCustom?(r.html(a.renderCustom(e,i+1,n)),e.emit("paginationRender",r[0])):e.emit("paginationUpdate",r[0]),e.params.watchOverflow&&e.enabled&&r[e.isLocked?"addClass":"removeClass"](a.lockClass)}},render:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,i=e.pagination.$el,s="";if("bullets"===t.type){var r=e.params.loop?Math.ceil((a-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&!e.params.loop&&r>a&&(r=a);for(var n=0;n<r;n+=1)t.renderBullet?s+=t.renderBullet.call(e,n,t.bulletClass):s+="<"+t.bulletElement+' class="'+t.bulletClass+'"></'+t.bulletElement+">";i.html(s),e.pagination.bullets=i.find(be(t.bulletClass))}"fraction"===t.type&&(s=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):'<span class="'+t.currentClass+'"></span> / <span class="'+t.totalClass+'"></span>',i.html(s)),"progressbar"===t.type&&(s=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'<span class="'+t.progressbarFillClass+'"></span>',i.html(s)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var e=this;e.params.pagination=we(e.$el,e.params.pagination,e.params.createElements,{el:"swiper-pagination"});var t=e.params.pagination;if(t.el){var a=T(t.el);0!==a.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&a.length>1&&(a=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&a.addClass(t.clickableClass),a.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(a.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&a.addClass(t.progressbarOppositeClass),t.clickable&&a.on("click",be(t.bulletClass),(function(t){t.preventDefault();var a=T(this).index()*e.params.slidesPerGroup;e.params.loop&&(a+=e.loopedSlides),e.slideTo(a)})),me(e.pagination,{$el:a,el:a[0]}),e.enabled||a.addClass(t.lockClass))}},destroy:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a=e.pagination.$el;a.removeClass(t.hiddenClass),a.removeClass(t.modifierClass+t.type),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&a.off("click",be(t.bulletClass))}}},Rt={setTranslate:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=e.rtlTranslate,i=e.progress,s=t.dragSize,r=t.trackSize,n=t.$dragEl,l=t.$el,o=e.params.scrollbar,d=s,p=(r-s)*i;a?(p=-p)>0?(d=s-p,p=0):-p+s>r&&(d=r+p):p<0?(d=s+p,p=0):p+s>r&&(d=r-p),e.isHorizontal()?(n.transform("translate3d("+p+"px, 0, 0)"),n[0].style.width=d+"px"):(n.transform("translate3d(0px, "+p+"px, 0)"),n[0].style.height=d+"px"),o.hide&&(clearTimeout(e.scrollbar.timeout),l[0].style.opacity=1,e.scrollbar.timeout=setTimeout((function(){l[0].style.opacity=0,l.transition(400)}),1e3))}},setTransition:function(e){var t=this;t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)},updateSize:function(){var e=this;if(e.params.scrollbar.el&&e.scrollbar.el){var t=e.scrollbar,a=t.$dragEl,i=t.$el;a[0].style.width="",a[0].style.height="";var s,r=e.isHorizontal()?i[0].offsetWidth:i[0].offsetHeight,n=e.size/e.virtualSize,l=n*(r/e.size);s="auto"===e.params.scrollbar.dragSize?r*n:parseInt(e.params.scrollbar.dragSize,10),e.isHorizontal()?a[0].style.width=s+"px":a[0].style.height=s+"px",i[0].style.display=n>=1?"none":"",e.params.scrollbar.hide&&(i[0].style.opacity=0),me(t,{trackSize:r,divider:n,moveDivider:l,dragSize:s}),e.params.watchOverflow&&e.enabled&&t.$el[e.isLocked?"addClass":"removeClass"](e.params.scrollbar.lockClass)}},getPointerPosition:function(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition:function(e){var t,a=this,i=a.scrollbar,s=a.rtlTranslate,r=i.$el,n=i.dragSize,l=i.trackSize,o=i.dragStartPos;t=(i.getPointerPosition(e)-r.offset()[a.isHorizontal()?"left":"top"]-(null!==o?o:n/2))/(l-n),t=Math.max(Math.min(t,1),0),s&&(t=1-t);var d=a.minTranslate()+(a.maxTranslate()-a.minTranslate())*t;a.updateProgress(d),a.setTranslate(d),a.updateActiveIndex(),a.updateSlidesClasses()},onDragStart:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el,n=i.$dragEl;t.scrollbar.isTouched=!0,t.scrollbar.dragStartPos=e.target===n[0]||e.target===n?i.getPointerPosition(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),s.transition(100),n.transition(100),i.setDragPosition(e),clearTimeout(t.scrollbar.dragTimeout),r.transition(0),a.hide&&r.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),t.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this,a=t.scrollbar,i=t.$wrapperEl,s=a.$el,r=a.$dragEl;t.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,a.setDragPosition(e),i.transition(0),s.transition(0),r.transition(0),t.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this,a=t.params.scrollbar,i=t.scrollbar,s=t.$wrapperEl,r=i.$el;t.scrollbar.isTouched&&(t.scrollbar.isTouched=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),s.transition("")),a.hide&&(clearTimeout(t.scrollbar.dragTimeout),t.scrollbar.dragTimeout=ue((function(){r.css("opacity",0),r.transition(400)}),1e3)),t.emit("scrollbarDragEnd",e),a.snapOnRelease&&t.slideToClosest())},enableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=n(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,r=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};o&&(l.touch?(o.addEventListener(i.start,e.scrollbar.onDragStart,d),o.addEventListener(i.move,e.scrollbar.onDragMove,d),o.addEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.addEventListener(s.start,e.scrollbar.onDragStart,d),t.addEventListener(s.move,e.scrollbar.onDragMove,d),t.addEventListener(s.end,e.scrollbar.onDragEnd,p)))}},disableDraggable:function(){var e=this;if(e.params.scrollbar.el){var t=n(),a=e.scrollbar,i=e.touchEventsTouch,s=e.touchEventsDesktop,r=e.params,l=e.support,o=a.$el[0],d=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};o&&(l.touch?(o.removeEventListener(i.start,e.scrollbar.onDragStart,d),o.removeEventListener(i.move,e.scrollbar.onDragMove,d),o.removeEventListener(i.end,e.scrollbar.onDragEnd,p)):(o.removeEventListener(s.start,e.scrollbar.onDragStart,d),t.removeEventListener(s.move,e.scrollbar.onDragMove,d),t.removeEventListener(s.end,e.scrollbar.onDragEnd,p)))}},init:function(){var e=this,t=e.scrollbar,a=e.$el;e.params.scrollbar=we(a,e.params.scrollbar,e.params.createElements,{el:"swiper-scrollbar"});var i=e.params.scrollbar;if(i.el){var s=T(i.el);e.params.uniqueNavElements&&"string"==typeof i.el&&s.length>1&&1===a.find(i.el).length&&(s=a.find(i.el));var r=s.find("."+e.params.scrollbar.dragClass);0===r.length&&(r=T('<div class="'+e.params.scrollbar.dragClass+'"></div>'),s.append(r)),me(t,{$el:s,el:s[0],$dragEl:r,dragEl:r[0]}),i.draggable&&t.enableDraggable(),s&&s[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)}},destroy:function(){this.scrollbar.disableDraggable()}},Wt={setTransform:function(e,t){var a=this,i=a.rtl,s=T(e),r=i?-1:1,n=s.attr("data-swiper-parallax")||"0",l=s.attr("data-swiper-parallax-x"),o=s.attr("data-swiper-parallax-y"),d=s.attr("data-swiper-parallax-scale"),p=s.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):a.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*t*r+"%":l*t*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*t+"%":o*t+"px",null!=p){var u=p-(p-1)*(1-Math.abs(t));s[0].style.opacity=u}if(null==d)s.transform("translate3d("+l+", "+o+", 0px)");else{var c=d-(d-1)*(1-Math.abs(t));s.transform("translate3d("+l+", "+o+", 0px) scale("+c+")")}},setTranslate:function(){var e=this,t=e.$el,a=e.slides,i=e.progress,s=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,i)})),a.each((function(t,a){var r=t.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(r+=Math.ceil(a/2)-i*(s.length-1)),r=Math.min(Math.max(r,-1),1),T(t).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){e.parallax.setTransform(t,r)}))}))},setTransition:function(e){void 0===e&&(e=this.params.speed),this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t){var a=T(t),i=parseInt(a.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),a.transition(i)}))}},Vt={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,a=e.targetTouches[0].pageY,i=e.targetTouches[1].pageX,s=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(i-t,2)+Math.pow(s-a,2))},onGestureStart:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(s.fakeGestureTouched=!1,s.fakeGestureMoved=!1,!a.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;s.fakeGestureTouched=!0,r.scaleStart=Vt.getDistanceBetweenTouches(e)}r.$slideEl&&r.$slideEl.length||(r.$slideEl=T(e.target).closest("."+t.params.slideClass),0===r.$slideEl.length&&(r.$slideEl=t.slides.eq(t.activeIndex)),r.$imageEl=r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),r.$imageWrapEl=r.$imageEl.parent("."+i.containerClass),r.maxRatio=r.$imageWrapEl.attr("data-swiper-zoom")||i.maxRatio,0!==r.$imageWrapEl.length)?(r.$imageEl&&r.$imageEl.transition(0),t.zoom.isScaling=!0):r.$imageEl=void 0},onGestureChange:function(e){var t=this,a=t.support,i=t.params.zoom,s=t.zoom,r=s.gesture;if(!a.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;s.fakeGestureMoved=!0,r.scaleMove=Vt.getDistanceBetweenTouches(e)}r.$imageEl&&0!==r.$imageEl.length?(a.gestures?s.scale=e.scale*s.currentScale:s.scale=r.scaleMove/r.scaleStart*s.currentScale,s.scale>r.maxRatio&&(s.scale=r.maxRatio-1+Math.pow(s.scale-r.maxRatio+1,.5)),s.scale<i.minRatio&&(s.scale=i.minRatio+1-Math.pow(i.minRatio-s.scale+1,.5)),r.$imageEl.transform("translate3d(0,0,0) scale("+s.scale+")")):"gesturechange"===e.type&&s.onGestureStart(e)},onGestureEnd:function(e){var t=this,a=t.device,i=t.support,s=t.params.zoom,r=t.zoom,n=r.gesture;if(!i.gestures){if(!r.fakeGestureTouched||!r.fakeGestureMoved)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!a.android)return;r.fakeGestureTouched=!1,r.fakeGestureMoved=!1}n.$imageEl&&0!==n.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,n.maxRatio),s.minRatio),n.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale("+r.scale+")"),r.currentScale=r.scale,r.isScaling=!1,1===r.scale&&(n.$slideEl=void 0))},onTouchStart:function(e){var t=this,a=t.device,i=t.zoom,s=i.gesture,r=i.image;s.$imageEl&&0!==s.$imageEl.length&&(r.isTouched||(a.android&&e.cancelable&&e.preventDefault(),r.isTouched=!0,r.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,r.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))},onTouchMove:function(e){var t=this,a=t.zoom,i=a.gesture,s=a.image,r=a.velocity;if(i.$imageEl&&0!==i.$imageEl.length&&(t.allowClick=!1,s.isTouched&&i.$slideEl)){s.isMoved||(s.width=i.$imageEl[0].offsetWidth,s.height=i.$imageEl[0].offsetHeight,s.startX=ve(i.$imageWrapEl[0],"x")||0,s.startY=ve(i.$imageWrapEl[0],"y")||0,i.slideWidth=i.$slideEl[0].offsetWidth,i.slideHeight=i.$slideEl[0].offsetHeight,i.$imageWrapEl.transition(0),t.rtl&&(s.startX=-s.startX,s.startY=-s.startY));var n=s.width*a.scale,l=s.height*a.scale;if(!(n<i.slideWidth&&l<i.slideHeight)){if(s.minX=Math.min(i.slideWidth/2-n/2,0),s.maxX=-s.minX,s.minY=Math.min(i.slideHeight/2-l/2,0),s.maxY=-s.minY,s.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,s.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!s.isMoved&&!a.isScaling){if(t.isHorizontal()&&(Math.floor(s.minX)===Math.floor(s.startX)&&s.touchesCurrent.x<s.touchesStart.x||Math.floor(s.maxX)===Math.floor(s.startX)&&s.touchesCurrent.x>s.touchesStart.x))return void(s.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(s.minY)===Math.floor(s.startY)&&s.touchesCurrent.y<s.touchesStart.y||Math.floor(s.maxY)===Math.floor(s.startY)&&s.touchesCurrent.y>s.touchesStart.y))return void(s.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),s.isMoved=!0,s.currentX=s.touchesCurrent.x-s.touchesStart.x+s.startX,s.currentY=s.touchesCurrent.y-s.touchesStart.y+s.startY,s.currentX<s.minX&&(s.currentX=s.minX+1-Math.pow(s.minX-s.currentX+1,.8)),s.currentX>s.maxX&&(s.currentX=s.maxX-1+Math.pow(s.currentX-s.maxX+1,.8)),s.currentY<s.minY&&(s.currentY=s.minY+1-Math.pow(s.minY-s.currentY+1,.8)),s.currentY>s.maxY&&(s.currentY=s.maxY-1+Math.pow(s.currentY-s.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=s.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=s.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(s.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(s.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(s.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(s.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=s.touchesCurrent.x,r.prevPositionY=s.touchesCurrent.y,r.prevTime=Date.now(),i.$imageWrapEl.transform("translate3d("+s.currentX+"px, "+s.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,i=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var s=300,r=300,n=i.x*s,l=a.currentX+n,o=i.y*r,d=a.currentY+o;0!==i.x&&(s=Math.abs((l-a.currentX)/i.x)),0!==i.y&&(r=Math.abs((d-a.currentY)/i.y));var p=Math.max(s,r);a.currentX=l,a.currentY=d;var u=a.width*e.scale,c=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-u/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-c/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(p).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this,t=e.zoom,a=t.gesture;a.$slideEl&&e.previousIndex!==e.activeIndex&&(a.$imageEl&&a.$imageEl.transform("translate3d(0,0,0) scale(1)"),a.$imageWrapEl&&a.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,t.currentScale=1,a.$slideEl=void 0,a.$imageEl=void 0,a.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,i,s,r,n,l,d,p,u,c,h,v,f,m,g,b=this,w=o(),y=b.zoom,E=b.params.zoom,x=y.gesture,T=y.image;x.$slideEl||(b.params.virtual&&b.params.virtual.enabled&&b.virtual?x.$slideEl=b.$wrapperEl.children("."+b.params.slideActiveClass):x.$slideEl=b.slides.eq(b.activeIndex),x.$imageEl=x.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),x.$imageWrapEl=x.$imageEl.parent("."+E.containerClass)),x.$imageEl&&0!==x.$imageEl.length&&x.$imageWrapEl&&0!==x.$imageWrapEl.length&&(x.$slideEl.addClass(""+E.zoomedSlideClass),void 0===T.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=T.touchesStart.x,a=T.touchesStart.y),y.scale=x.$imageWrapEl.attr("data-swiper-zoom")||E.maxRatio,y.currentScale=x.$imageWrapEl.attr("data-swiper-zoom")||E.maxRatio,e?(m=x.$slideEl[0].offsetWidth,g=x.$slideEl[0].offsetHeight,i=x.$slideEl.offset().left+w.scrollX+m/2-t,s=x.$slideEl.offset().top+w.scrollY+g/2-a,l=x.$imageEl[0].offsetWidth,d=x.$imageEl[0].offsetHeight,p=l*y.scale,u=d*y.scale,v=-(c=Math.min(m/2-p/2,0)),f=-(h=Math.min(g/2-u/2,0)),(r=i*y.scale)<c&&(r=c),r>v&&(r=v),(n=s*y.scale)<h&&(n=h),n>f&&(n=f)):(r=0,n=0),x.$imageWrapEl.transition(300).transform("translate3d("+r+"px, "+n+"px,0)"),x.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+y.scale+")"))},out:function(){var e=this,t=e.zoom,a=e.params.zoom,i=t.gesture;i.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?i.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):i.$slideEl=e.slides.eq(e.activeIndex),i.$imageEl=i.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),i.$imageWrapEl=i.$imageEl.parent("."+a.containerClass)),i.$imageEl&&0!==i.$imageEl.length&&i.$imageWrapEl&&0!==i.$imageWrapEl.length&&(t.scale=1,t.currentScale=1,i.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),i.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),i.$slideEl.removeClass(""+a.zoomedSlideClass),i.$slideEl=void 0)},toggleGestures:function(e){var t=this,a=t.zoom,i=a.slideSelector,s=a.passiveListener;t.$wrapperEl[e]("gesturestart",i,a.onGestureStart,s),t.$wrapperEl[e]("gesturechange",i,a.onGestureChange,s),t.$wrapperEl[e]("gestureend",i,a.onGestureEnd,s)},enableGestures:function(){this.zoom.gesturesEnabled||(this.zoom.gesturesEnabled=!0,this.zoom.toggleGestures("on"))},disableGestures:function(){this.zoom.gesturesEnabled&&(this.zoom.gesturesEnabled=!1,this.zoom.toggleGestures("off"))},enable:function(){var e=this,t=e.support,a=e.zoom;if(!a.enabled){a.enabled=!0;var i=!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!t.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;e.zoom.passiveListener=i,e.zoom.slideSelector=r,t.gestures?(e.$wrapperEl.on(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.on(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,a.onGestureStart,i),e.$wrapperEl.on(e.touchEvents.move,r,a.onGestureChange,s),e.$wrapperEl.on(e.touchEvents.end,r,a.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,a.onGestureEnd,i)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,a.onTouchMove,s)}},disable:function(){var e=this,t=e.zoom;if(t.enabled){var a=e.support;e.zoom.enabled=!1;var i=!("touchstart"!==e.touchEvents.start||!a.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},s=!a.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;a.gestures?(e.$wrapperEl.off(e.touchEvents.start,e.zoom.enableGestures,i),e.$wrapperEl.off(e.touchEvents.end,e.zoom.disableGestures,i)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,t.onGestureStart,i),e.$wrapperEl.off(e.touchEvents.move,r,t.onGestureChange,s),e.$wrapperEl.off(e.touchEvents.end,r,t.onGestureEnd,i),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,t.onGestureEnd,i)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,s)}}},Ft={loadInSlide:function(e,t){void 0===t&&(t=!0);var a=this,i=a.params.lazy;if(void 0!==e&&0!==a.slides.length){var s=a.virtual&&a.params.virtual.enabled?a.$wrapperEl.children("."+a.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):a.slides.eq(e),r=s.find("."+i.elementClass+":not(."+i.loadedClass+"):not(."+i.loadingClass+")");!s.hasClass(i.elementClass)||s.hasClass(i.loadedClass)||s.hasClass(i.loadingClass)||r.push(s[0]),0!==r.length&&r.each((function(e){var r=T(e);r.addClass(i.loadingClass);var n=r.attr("data-background"),l=r.attr("data-src"),o=r.attr("data-srcset"),d=r.attr("data-sizes"),p=r.parent("picture");a.loadImage(r[0],l||n,o,d,!1,(function(){if(null!=a&&a&&(!a||a.params)&&!a.destroyed){if(n?(r.css("background-image",'url("'+n+'")'),r.removeAttr("data-background")):(o&&(r.attr("srcset",o),r.removeAttr("data-srcset")),d&&(r.attr("sizes",d),r.removeAttr("data-sizes")),p.length&&p.children("source").each((function(e){var t=T(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),l&&(r.attr("src",l),r.removeAttr("data-src"))),r.addClass(i.loadedClass).removeClass(i.loadingClass),s.find("."+i.preloaderClass).remove(),a.params.loop&&t){var e=s.attr("data-swiper-slide-index");if(s.hasClass(a.params.slideDuplicateClass)){var u=a.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+a.params.slideDuplicateClass+")");a.lazy.loadInSlide(u.index(),!1)}else{var c=a.$wrapperEl.children("."+a.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');a.lazy.loadInSlide(c.index(),!1)}}a.emit("lazyImageReady",s[0],r[0]),a.params.autoHeight&&a.updateAutoHeight()}})),a.emit("lazyImageLoad",s[0],r[0])}))}},load:function(){var e=this,t=e.$wrapperEl,a=e.params,i=e.slides,s=e.activeIndex,r=e.virtual&&a.virtual.enabled,n=a.lazy,l=a.slidesPerView;function o(e){if(r){if(t.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(i[e])return!0;return!1}function d(e){return r?T(e).attr("data-swiper-slide-index"):T(e).index()}if("auto"===l&&(l=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+a.slideVisibleClass).each((function(t){var a=r?T(t).attr("data-swiper-slide-index"):T(t).index();e.lazy.loadInSlide(a)}));else if(l>1)for(var p=s;p<s+l;p+=1)o(p)&&e.lazy.loadInSlide(p);else e.lazy.loadInSlide(s);if(n.loadPrevNext)if(l>1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){for(var u=n.loadPrevNextAmount,c=l,h=Math.min(s+c+Math.max(u,c),i.length),v=Math.max(s-Math.max(c,u),0),f=s+l;f<h;f+=1)o(f)&&e.lazy.loadInSlide(f);for(var m=v;m<s;m+=1)o(m)&&e.lazy.loadInSlide(m)}else{var g=t.children("."+a.slideNextClass);g.length>0&&e.lazy.loadInSlide(d(g));var b=t.children("."+a.slidePrevClass);b.length>0&&e.lazy.loadInSlide(d(b))}},checkInViewOnLoad:function(){var e=o(),t=this;if(t&&!t.destroyed){var a=t.params.lazy.scrollingElement?T(t.params.lazy.scrollingElement):T(e),i=a[0]===e,s=i?e.innerWidth:a[0].offsetWidth,r=i?e.innerHeight:a[0].offsetHeight,n=t.$el.offset(),l=!1;t.rtlTranslate&&(n.left-=t.$el[0].scrollLeft);for(var d=[[n.left,n.top],[n.left+t.width,n.top],[n.left,n.top+t.height],[n.left+t.width,n.top+t.height]],p=0;p<d.length;p+=1){var u=d[p];if(u[0]>=0&&u[0]<=s&&u[1]>=0&&u[1]<=r){if(0===u[0]&&0===u[1])continue;l=!0}}var c=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};l?(t.lazy.load(),a.off("scroll",t.lazy.checkInViewOnLoad,c)):t.lazy.scrollHandlerAttached||(t.lazy.scrollHandlerAttached=!0,a.on("scroll",t.lazy.checkInViewOnLoad,c))}}},_t={LinearSpline:function(e,t){var a,i,s,r,n,l=function(e,t){for(i=-1,a=e.length;a-i>1;)e[s=a+i>>1]<=t?i=s:a=s;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(n=l(this.x,e),r=n-1,(e-this.x[r])*(this.y[n]-this.y[r])/(this.x[n]-this.x[r])+this.y[r]):0},this},getInterpolateFunction:function(e){var t=this;t.controller.spline||(t.controller.spline=t.params.loop?new _t.LinearSpline(t.slidesGrid,e.slidesGrid):new _t.LinearSpline(t.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,i,s=this,r=s.controller.control,n=s.constructor;function l(e){var t=s.rtlTranslate?-s.translate:s.translate;"slide"===s.params.controller.by&&(s.controller.getInterpolateFunction(e),i=-s.controller.spline.interpolate(-t)),i&&"container"!==s.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(s.maxTranslate()-s.minTranslate()),i=(t-s.minTranslate())*a+e.minTranslate()),s.params.controller.inverse&&(i=e.maxTranslate()-i),e.updateProgress(i),e.setTranslate(i,s),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(r))for(var o=0;o<r.length;o+=1)r[o]!==t&&r[o]instanceof n&&l(r[o]);else r instanceof n&&t!==r&&l(r)},setTransition:function(e,t){var a,i=this,s=i.constructor,r=i.controller.control;function n(t){t.setTransition(e,i),0!==e&&(t.transitionStart(),t.params.autoHeight&&ue((function(){t.updateAutoHeight()})),t.$wrapperEl.transitionEnd((function(){r&&(t.params.loop&&"slide"===i.params.controller.by&&t.loopFix(),t.transitionEnd())})))}if(Array.isArray(r))for(a=0;a<r.length;a+=1)r[a]!==t&&r[a]instanceof s&&n(r[a]);else r instanceof s&&t!==r&&n(r)}},qt={name:"controller",params:{controller:{control:void 0,inverse:!1,by:"slide"}},create:function(){var e=this;ge(e,{controller:a({control:e.params.controller.control},_t)})},on:{update:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},resize:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},observerUpdate:function(e){e.controller.control&&e.controller.spline&&(e.controller.spline=void 0,delete e.controller.spline)},setTranslate:function(e,t,a){e.controller.control&&e.controller.setTranslate(t,a)},setTransition:function(e,t,a){e.controller.control&&e.controller.setTransition(t,a)}}},jt={getRandomNumber:function(e){void 0===e&&(e=16);var t=function(){return Math.round(16*Math.random()).toString(16)};return"x".repeat(e).replace(/x/g,t)},makeElFocusable:function(e){return e.attr("tabIndex","0"),e},makeElNotFocusable:function(e){return e.attr("tabIndex","-1"),e},addElRole:function(e,t){return e.attr("role",t),e},addElRoleDescription:function(e,t){return e.attr("aria-roledescription",t),e},addElControls:function(e,t){return e.attr("aria-controls",t),e},addElLabel:function(e,t){return e.attr("aria-label",t),e},addElId:function(e,t){return e.attr("id",t),e},addElLive:function(e,t){return e.attr("aria-live",t),e},disableEl:function(e){return e.attr("aria-disabled",!0),e},enableEl:function(e){return e.attr("aria-disabled",!1),e},onEnterOrSpaceKey:function(e){if(13===e.keyCode||32===e.keyCode){var t=this,a=t.params.a11y,i=T(e.target);t.navigation&&t.navigation.$nextEl&&i.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?t.a11y.notify(a.lastSlideMessage):t.a11y.notify(a.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&i.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?t.a11y.notify(a.firstSlideMessage):t.a11y.notify(a.prevSlideMessage)),t.pagination&&i.is(be(t.params.pagination.bulletClass))&&i[0].click()}},notify:function(e){var t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation:function(){var e=this;if(!e.params.loop&&e.navigation){var t=e.navigation,a=t.$nextEl,i=t.$prevEl;i&&i.length>0&&(e.isBeginning?(e.a11y.disableEl(i),e.a11y.makeElNotFocusable(i)):(e.a11y.enableEl(i),e.a11y.makeElFocusable(i))),a&&a.length>0&&(e.isEnd?(e.a11y.disableEl(a),e.a11y.makeElNotFocusable(a)):(e.a11y.enableEl(a),e.a11y.makeElFocusable(a)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((function(a){var i=T(a);e.a11y.makeElFocusable(i),e.params.pagination.renderBullet||(e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1)))}))},init:function(){var e=this,t=e.params.a11y;e.$el.append(e.a11y.liveRegion);var a=e.$el;t.containerRoleDescriptionMessage&&e.a11y.addElRoleDescription(a,t.containerRoleDescriptionMessage),t.containerMessage&&e.a11y.addElLabel(a,t.containerMessage);var i,s,r=e.$wrapperEl,n=r.attr("id")||"swiper-wrapper-"+e.a11y.getRandomNumber(16),l=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";e.a11y.addElId(r,n),e.a11y.addElLive(r,l),t.itemRoleDescriptionMessage&&e.a11y.addElRoleDescription(T(e.slides),t.itemRoleDescriptionMessage),e.a11y.addElRole(T(e.slides),t.slideRole),e.slides.each((function(a){var i=T(a),s=t.slideLabelMessage.replace(/\{\{index\}\}/,i.index()+1).replace(/\{\{slidesLength\}\}/,e.slides.length);e.a11y.addElLabel(i,s)})),e.navigation&&e.navigation.$nextEl&&(i=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(s=e.navigation.$prevEl),i&&i.length&&(e.a11y.makeElFocusable(i),"BUTTON"!==i[0].tagName&&(e.a11y.addElRole(i,"button"),i.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(i,t.nextSlideMessage),e.a11y.addElControls(i,n)),s&&s.length&&(e.a11y.makeElFocusable(s),"BUTTON"!==s[0].tagName&&(e.a11y.addElRole(s,"button"),s.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(s,t.prevSlideMessage),e.a11y.addElControls(s,n)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown",be(e.params.pagination.bulletClass),e.a11y.onEnterOrSpaceKey)},destroy:function(){var e,t,a=this;a.a11y.liveRegion&&a.a11y.liveRegion.length>0&&a.a11y.liveRegion.remove(),a.navigation&&a.navigation.$nextEl&&(e=a.navigation.$nextEl),a.navigation&&a.navigation.$prevEl&&(t=a.navigation.$prevEl),e&&e.off("keydown",a.a11y.onEnterOrSpaceKey),t&&t.off("keydown",a.a11y.onEnterOrSpaceKey),a.pagination&&a.params.pagination.clickable&&a.pagination.bullets&&a.pagination.bullets.length&&a.pagination.$el.off("keydown",be(a.params.pagination.bulletClass),a.a11y.onEnterOrSpaceKey)}},Ut={init:function(){var e=this,t=o();if(e.params.history){if(!t.history||!t.history.pushState)return e.params.history.enabled=!1,void(e.params.hashNavigation.enabled=!0);var a=e.history;a.initialized=!0,a.paths=Ut.getPathValues(e.params.url),(a.paths.key||a.paths.value)&&(a.scrollToSlide(0,a.paths.value,e.params.runCallbacksOnInit),e.params.history.replaceState||t.addEventListener("popstate",e.history.setHistoryPopState))}},destroy:function(){var e=this,t=o();e.params.history.replaceState||t.removeEventListener("popstate",e.history.setHistoryPopState)},setHistoryPopState:function(){var e=this;e.history.paths=Ut.getPathValues(e.params.url),e.history.scrollToSlide(e.params.speed,e.history.paths.value,!1)},getPathValues:function(e){var t=o(),a=(e?new URL(e):t.location).pathname.slice(1).split("/").filter((function(e){return""!==e})),i=a.length;return{key:a[i-2],value:a[i-1]}},setHistory:function(e,t){var a=this,i=o();if(a.history.initialized&&a.params.history.enabled){var s;s=a.params.url?new URL(a.params.url):i.location;var r=a.slides.eq(t),n=Ut.slugify(r.attr("data-history"));if(a.params.history.root.length>0){var l=a.params.history.root;"/"===l[l.length-1]&&(l=l.slice(0,l.length-1)),n=l+"/"+e+"/"+n}else s.pathname.includes(e)||(n=e+"/"+n);var d=i.history.state;d&&d.value===n||(a.params.history.replaceState?i.history.replaceState({value:n},null,n):i.history.pushState({value:n},null,n))}},slugify:function(e){return e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,"")},scrollToSlide:function(e,t,a){var i=this;if(t)for(var s=0,r=i.slides.length;s<r;s+=1){var n=i.slides.eq(s);if(Ut.slugify(n.attr("data-history"))===t&&!n.hasClass(i.params.slideDuplicateClass)){var l=n.index();i.slideTo(l,e,a)}}else i.slideTo(0,e,a)}},Kt={onHashCange:function(){var e=this,t=n();e.emit("hashChange");var a=t.location.hash.replace("#","");if(a!==e.slides.eq(e.activeIndex).attr("data-hash")){var i=e.$wrapperEl.children("."+e.params.slideClass+'[data-hash="'+a+'"]').index();if(void 0===i)return;e.slideTo(i)}},setHash:function(){var e=this,t=o(),a=n();if(e.hashNavigation.initialized&&e.params.hashNavigation.enabled)if(e.params.hashNavigation.replaceState&&t.history&&t.history.replaceState)t.history.replaceState(null,null,"#"+e.slides.eq(e.activeIndex).attr("data-hash")||0),e.emit("hashSet");else{var i=e.slides.eq(e.activeIndex),s=i.attr("data-hash")||i.attr("data-history");a.location.hash=s||"",e.emit("hashSet")}},init:function(){var e=this,t=n(),a=o();if(!(!e.params.hashNavigation.enabled||e.params.history&&e.params.history.enabled)){e.hashNavigation.initialized=!0;var i=t.location.hash.replace("#","");if(i)for(var s=0,r=0,l=e.slides.length;r<l;r+=1){var d=e.slides.eq(r);if((d.attr("data-hash")||d.attr("data-history"))===i&&!d.hasClass(e.params.slideDuplicateClass)){var p=d.index();e.slideTo(p,s,e.params.runCallbacksOnInit,!0)}}e.params.hashNavigation.watchState&&T(a).on("hashchange",e.hashNavigation.onHashCange)}},destroy:function(){var e=this,t=o();e.params.hashNavigation.watchState&&T(t).off("hashchange",e.hashNavigation.onHashCange)}},Jt={run:function(){var e=this,t=e.slides.eq(e.activeIndex),a=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(a=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(e.autoplay.timeout),e.autoplay.timeout=ue((function(){var t;e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),t=e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(t=e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(t=e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),t=e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(t=e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(t=e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")),(e.params.cssMode&&e.autoplay.running||!1===t)&&e.autoplay.run()}),a)},start:function(){var e=this;return void 0===e.autoplay.timeout&&!e.autoplay.running&&(e.autoplay.running=!0,e.emit("autoplayStart"),e.autoplay.run(),!0)},stop:function(){var e=this;return!!e.autoplay.running&&void 0!==e.autoplay.timeout&&(e.autoplay.timeout&&(clearTimeout(e.autoplay.timeout),e.autoplay.timeout=void 0),e.autoplay.running=!1,e.emit("autoplayStop"),!0)},pause:function(e){var t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((function(e){t.$wrapperEl[0].addEventListener(e,t.autoplay.onTransitionEnd)})):(t.autoplay.paused=!1,t.autoplay.run())))},onVisibilityChange:function(){var e=this,t=n();"hidden"===t.visibilityState&&e.autoplay.running&&e.autoplay.pause(),"visible"===t.visibilityState&&e.autoplay.paused&&(e.autoplay.run(),e.autoplay.paused=!1)},onTransitionEnd:function(e){var t=this;t&&!t.destroyed&&t.$wrapperEl&&e.target===t.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((function(e){t.$wrapperEl[0].removeEventListener(e,t.autoplay.onTransitionEnd)})),t.autoplay.paused=!1,t.autoplay.running?t.autoplay.run():t.autoplay.stop())},onMouseEnter:function(){var e=this;e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause(),["transitionend","webkitTransitionEnd"].forEach((function(t){e.$wrapperEl[0].removeEventListener(t,e.autoplay.onTransitionEnd)}))},onMouseLeave:function(){var e=this;e.params.autoplay.disableOnInteraction||(e.autoplay.paused=!1,e.autoplay.run())},attachMouseEvents:function(){var e=this;e.params.autoplay.pauseOnMouseEnter&&(e.$el.on("mouseenter",e.autoplay.onMouseEnter),e.$el.on("mouseleave",e.autoplay.onMouseLeave))},detachMouseEvents:function(){var e=this;e.$el.off("mouseenter",e.autoplay.onMouseEnter),e.$el.off("mouseleave",e.autoplay.onMouseLeave)}},Zt={setTranslate:function(){for(var e=this,t=e.slides,a=0;a<t.length;a+=1){var i=e.slides.eq(a),s=-i[0].swiperSlideOffset;e.params.virtualTranslate||(s-=e.translate);var r=0;e.isHorizontal()||(r=s,s=0);var n=e.params.fadeEffect.crossFade?Math.max(1-Math.abs(i[0].progress),0):1+Math.min(Math.max(i[0].progress,-1),0);i.css({opacity:n}).transform("translate3d("+s+"px, "+r+"px, 0px)")}},setTransition:function(e){var t=this,a=t.slides,i=t.$wrapperEl;if(a.transition(e),t.params.virtualTranslate&&0!==e){var s=!1;a.transitionEnd((function(){if(!s&&t&&!t.destroyed){s=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],a=0;a<e.length;a+=1)i.trigger(e[a])}}))}}},Qt={setTranslate:function(){var e,t=this,a=t.$el,i=t.$wrapperEl,s=t.slides,r=t.width,n=t.height,l=t.rtlTranslate,o=t.size,d=t.browser,p=t.params.cubeEffect,u=t.isHorizontal(),c=t.virtual&&t.params.virtual.enabled,h=0;p.shadow&&(u?(0===(e=i.find(".swiper-cube-shadow")).length&&(e=T('<div class="swiper-cube-shadow"></div>'),i.append(e)),e.css({height:r+"px"})):0===(e=a.find(".swiper-cube-shadow")).length&&(e=T('<div class="swiper-cube-shadow"></div>'),a.append(e)));for(var v=0;v<s.length;v+=1){var f=s.eq(v),m=v;c&&(m=parseInt(f.attr("data-swiper-slide-index"),10));var g=90*m,b=Math.floor(g/360);l&&(g=-g,b=Math.floor(-g/360));var w=Math.max(Math.min(f[0].progress,1),-1),y=0,E=0,x=0;m%4==0?(y=4*-b*o,x=0):(m-1)%4==0?(y=0,x=4*-b*o):(m-2)%4==0?(y=o+4*b*o,x=o):(m-3)%4==0&&(y=-o,x=3*o+4*o*b),l&&(y=-y),u||(E=y,y=0);var C="rotateX("+(u?0:-g)+"deg) rotateY("+(u?g:0)+"deg) translate3d("+y+"px, "+E+"px, "+x+"px)";if(w<=1&&w>-1&&(h=90*m+90*w,l&&(h=90*-m-90*w)),f.transform(C),p.slideShadows){var S=u?f.find(".swiper-slide-shadow-left"):f.find(".swiper-slide-shadow-top"),M=u?f.find(".swiper-slide-shadow-right"):f.find(".swiper-slide-shadow-bottom");0===S.length&&(S=T('<div class="swiper-slide-shadow-'+(u?"left":"top")+'"></div>'),f.append(S)),0===M.length&&(M=T('<div class="swiper-slide-shadow-'+(u?"right":"bottom")+'"></div>'),f.append(M)),S.length&&(S[0].style.opacity=Math.max(-w,0)),M.length&&(M[0].style.opacity=Math.max(w,0))}}if(i.css({"-webkit-transform-origin":"50% 50% -"+o/2+"px","-moz-transform-origin":"50% 50% -"+o/2+"px","-ms-transform-origin":"50% 50% -"+o/2+"px","transform-origin":"50% 50% -"+o/2+"px"}),p.shadow)if(u)e.transform("translate3d(0px, "+(r/2+p.shadowOffset)+"px, "+-r/2+"px) rotateX(90deg) rotateZ(0deg) scale("+p.shadowScale+")");else{var z=Math.abs(h)-90*Math.floor(Math.abs(h)/90),k=1.5-(Math.sin(2*z*Math.PI/360)/2+Math.cos(2*z*Math.PI/360)/2),P=p.shadowScale,$=p.shadowScale/k,L=p.shadowOffset;e.transform("scale3d("+P+", 1, "+$+") translate3d(0px, "+(n/2+L)+"px, "+-n/2/$+"px) rotateX(-90deg)")}var I=d.isSafari||d.isWebView?-o/2:0;i.transform("translate3d(0px,0,"+I+"px) rotateX("+(t.isHorizontal()?0:h)+"deg) rotateY("+(t.isHorizontal()?-h:0)+"deg)")},setTransition:function(e){var t=this,a=t.$el;t.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&a.find(".swiper-cube-shadow").transition(e)}},ea={setTranslate:function(){for(var e=this,t=e.slides,a=e.rtlTranslate,i=0;i<t.length;i+=1){var s=t.eq(i),r=s[0].progress;e.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s[0].progress,1),-1));var n=-180*r,l=0,o=-s[0].swiperSlideOffset,d=0;if(e.isHorizontal()?a&&(n=-n):(d=o,o=0,l=-n,n=0),s[0].style.zIndex=-Math.abs(Math.round(r))+t.length,e.params.flipEffect.slideShadows){var p=e.isHorizontal()?s.find(".swiper-slide-shadow-left"):s.find(".swiper-slide-shadow-top"),u=e.isHorizontal()?s.find(".swiper-slide-shadow-right"):s.find(".swiper-slide-shadow-bottom");0===p.length&&(p=T('<div class="swiper-slide-shadow-'+(e.isHorizontal()?"left":"top")+'"></div>'),s.append(p)),0===u.length&&(u=T('<div class="swiper-slide-shadow-'+(e.isHorizontal()?"right":"bottom")+'"></div>'),s.append(u)),p.length&&(p[0].style.opacity=Math.max(-r,0)),u.length&&(u[0].style.opacity=Math.max(r,0))}s.transform("translate3d("+o+"px, "+d+"px, 0px) rotateX("+l+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var t=this,a=t.slides,i=t.activeIndex,s=t.$wrapperEl;if(a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var r=!1;a.eq(i).transitionEnd((function(){if(!r&&t&&!t.destroyed){r=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],a=0;a<e.length;a+=1)s.trigger(e[a])}}))}}},ta={setTranslate:function(){for(var e=this,t=e.width,a=e.height,i=e.slides,s=e.slidesSizesGrid,r=e.params.coverflowEffect,n=e.isHorizontal(),l=e.translate,o=n?t/2-l:a/2-l,d=n?r.rotate:-r.rotate,p=r.depth,u=0,c=i.length;u<c;u+=1){var h=i.eq(u),v=s[u],f=(o-h[0].swiperSlideOffset-v/2)/v*r.modifier,m=n?d*f:0,g=n?0:d*f,b=-p*Math.abs(f),w=r.stretch;"string"==typeof w&&-1!==w.indexOf("%")&&(w=parseFloat(r.stretch)/100*v);var y=n?0:w*f,E=n?w*f:0,x=1-(1-r.scale)*Math.abs(f);Math.abs(E)<.001&&(E=0),Math.abs(y)<.001&&(y=0),Math.abs(b)<.001&&(b=0),Math.abs(m)<.001&&(m=0),Math.abs(g)<.001&&(g=0),Math.abs(x)<.001&&(x=0);var C="translate3d("+E+"px,"+y+"px,"+b+"px) rotateX("+g+"deg) rotateY("+m+"deg) scale("+x+")";if(h.transform(C),h[0].style.zIndex=1-Math.abs(Math.round(f)),r.slideShadows){var S=n?h.find(".swiper-slide-shadow-left"):h.find(".swiper-slide-shadow-top"),M=n?h.find(".swiper-slide-shadow-right"):h.find(".swiper-slide-shadow-bottom");0===S.length&&(S=T('<div class="swiper-slide-shadow-'+(n?"left":"top")+'"></div>'),h.append(S)),0===M.length&&(M=T('<div class="swiper-slide-shadow-'+(n?"right":"bottom")+'"></div>'),h.append(M)),S.length&&(S[0].style.opacity=f>0?f:0),M.length&&(M[0].style.opacity=-f>0?-f:0)}}},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},aa={init:function(){var e=this,t=e.params.thumbs;if(e.thumbs.initialized)return!1;e.thumbs.initialized=!0;var a=e.constructor;return t.swiper instanceof a?(e.thumbs.swiper=t.swiper,me(e.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),me(e.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):fe(t.swiper)&&(e.thumbs.swiper=new a(me({},t.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),e.thumbs.swiperCreated=!0),e.thumbs.swiper.$el.addClass(e.params.thumbs.thumbsContainerClass),e.thumbs.swiper.on("tap",e.thumbs.onThumbClick),!0},onThumbClick:function(){var e=this,t=e.thumbs.swiper;if(t){var a=t.clickedIndex,i=t.clickedSlide;if(!(i&&T(i).hasClass(e.params.thumbs.slideThumbActiveClass)||null==a)){var s;if(s=t.params.loop?parseInt(T(t.clickedSlide).attr("data-swiper-slide-index"),10):a,e.params.loop){var r=e.activeIndex;e.slides.eq(r).hasClass(e.params.slideDuplicateClass)&&(e.loopFix(),e._clientLeft=e.$wrapperEl[0].clientLeft,r=e.activeIndex);var n=e.slides.eq(r).prevAll('[data-swiper-slide-index="'+s+'"]').eq(0).index(),l=e.slides.eq(r).nextAll('[data-swiper-slide-index="'+s+'"]').eq(0).index();s=void 0===n?l:void 0===l?n:l-r<r-n?l:n}e.slideTo(s)}}},update:function(e){var t=this,a=t.thumbs.swiper;if(a){var i="auto"===a.params.slidesPerView?a.slidesPerViewDynamic():a.params.slidesPerView,s=t.params.thumbs.autoScrollOffset,r=s&&!a.params.loop;if(t.realIndex!==a.realIndex||r){var n,l,o=a.activeIndex;if(a.params.loop){a.slides.eq(o).hasClass(a.params.slideDuplicateClass)&&(a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft,o=a.activeIndex);var d=a.slides.eq(o).prevAll('[data-swiper-slide-index="'+t.realIndex+'"]').eq(0).index(),p=a.slides.eq(o).nextAll('[data-swiper-slide-index="'+t.realIndex+'"]').eq(0).index();n=void 0===d?p:void 0===p?d:p-o==o-d?a.params.slidesPerGroup>1?p:o:p-o<o-d?p:d,l=t.activeIndex>t.previousIndex?"next":"prev"}else l=(n=t.realIndex)>t.previousIndex?"next":"prev";r&&(n+="next"===l?s:-1*s),a.visibleSlidesIndexes&&a.visibleSlidesIndexes.indexOf(n)<0&&(a.params.centeredSlides?n=n>o?n-Math.floor(i/2)+1:n+Math.floor(i/2)-1:n>o&&a.params.slidesPerGroup,a.slideTo(n,e?0:void 0))}var u=1,c=t.params.thumbs.slideThumbActiveClass;if(t.params.slidesPerView>1&&!t.params.centeredSlides&&(u=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(u=1),u=Math.floor(u),a.slides.removeClass(c),a.params.loop||a.params.virtual&&a.params.virtual.enabled)for(var h=0;h<u;h+=1)a.$wrapperEl.children('[data-swiper-slide-index="'+(t.realIndex+h)+'"]').addClass(c);else for(var v=0;v<u;v+=1)a.slides.eq(t.realIndex+v).addClass(c)}}},ia=[Dt,Gt,{name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}},create:function(){ge(this,{mousewheel:{enabled:!1,lastScrollTime:ce(),lastEventBeforeSnap:void 0,recentWheelEvents:[],enable:Ht.enable,disable:Ht.disable,handle:Ht.handle,handleMouseEnter:Ht.handleMouseEnter,handleMouseLeave:Ht.handleMouseLeave,animateSlider:Ht.animateSlider,releaseScroll:Ht.releaseScroll}})},on:{init:function(e){!e.params.mousewheel.enabled&&e.params.cssMode&&e.mousewheel.disable(),e.params.mousewheel.enabled&&e.mousewheel.enable()},destroy:function(e){e.params.cssMode&&e.mousewheel.enable(),e.mousewheel.enabled&&e.mousewheel.disable()}}},{name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){ge(this,{navigation:a({},Xt)})},on:{init:function(e){e.navigation.init(),e.navigation.update()},toEdge:function(e){e.navigation.update()},fromEdge:function(e){e.navigation.update()},destroy:function(e){e.navigation.destroy()},"enable disable":function(e){var t=e.navigation,a=t.$nextEl,i=t.$prevEl;a&&a[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),i&&i[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)},click:function(e,t){var a=e.navigation,i=a.$nextEl,s=a.$prevEl,r=t.target;if(e.params.navigation.hideOnClick&&!T(r).is(s)&&!T(r).is(i)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===r||e.pagination.el.contains(r)))return;var n;i?n=i.hasClass(e.params.navigation.hiddenClass):s&&(n=s.hasClass(e.params.navigation.hiddenClass)),!0===n?e.emit("navigationShow"):e.emit("navigationHide"),i&&i.toggleClass(e.params.navigation.hiddenClass),s&&s.toggleClass(e.params.navigation.hiddenClass)}}}},{name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:function(e){return e},formatFractionTotal:function(e){return e},bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){ge(this,{pagination:a({dynamicBulletIndex:0},Yt)})},on:{init:function(e){e.pagination.init(),e.pagination.render(),e.pagination.update()},activeIndexChange:function(e){(e.params.loop||void 0===e.snapIndex)&&e.pagination.update()},snapIndexChange:function(e){e.params.loop||e.pagination.update()},slidesLengthChange:function(e){e.params.loop&&(e.pagination.render(),e.pagination.update())},snapGridLengthChange:function(e){e.params.loop||(e.pagination.render(),e.pagination.update())},destroy:function(e){e.pagination.destroy()},"enable disable":function(e){var t=e.pagination.$el;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)},click:function(e,t){var a=t.target;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&e.pagination.$el.length>0&&!T(a).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&a===e.navigation.nextEl||e.navigation.prevEl&&a===e.navigation.prevEl))return;!0===e.pagination.$el.hasClass(e.params.pagination.hiddenClass)?e.emit("paginationShow"):e.emit("paginationHide"),e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)}}}},{name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){ge(this,{scrollbar:a({isTouched:!1,timeout:null,dragTimeout:null},Rt)})},on:{init:function(e){e.scrollbar.init(),e.scrollbar.updateSize(),e.scrollbar.setTranslate()},update:function(e){e.scrollbar.updateSize()},resize:function(e){e.scrollbar.updateSize()},observerUpdate:function(e){e.scrollbar.updateSize()},setTranslate:function(e){e.scrollbar.setTranslate()},setTransition:function(e,t){e.scrollbar.setTransition(t)},"enable disable":function(e){var t=e.scrollbar.$el;t&&t[e.enabled?"removeClass":"addClass"](e.params.scrollbar.lockClass)},destroy:function(e){e.scrollbar.destroy()}}},{name:"parallax",params:{parallax:{enabled:!1}},create:function(){ge(this,{parallax:a({},Wt)})},on:{beforeInit:function(e){e.params.parallax.enabled&&(e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},init:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTranslate:function(e){e.params.parallax.enabled&&e.parallax.setTranslate()},setTransition:function(e,t){e.params.parallax.enabled&&e.parallax.setTransition(t)}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this;ge(e,{zoom:a({enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}},Vt)});var t=1;Object.defineProperty(e.zoom,"scale",{get:function(){return t},set:function(a){if(t!==a){var i=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,s=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",a,i,s)}t=a}})},on:{init:function(e){e.params.zoom.enabled&&e.zoom.enable()},destroy:function(e){e.zoom.disable()},touchStart:function(e,t){e.zoom.enabled&&e.zoom.onTouchStart(t)},touchEnd:function(e,t){e.zoom.enabled&&e.zoom.onTouchEnd(t)},doubleTap:function(e,t){!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&e.zoom.toggle(t)},transitionEnd:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"lazy",params:{lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){ge(this,{lazy:a({initialImageLoaded:!1},Ft)})},on:{beforeInit:function(e){e.params.lazy.enabled&&e.params.preloadImages&&(e.params.preloadImages=!1)},init:function(e){e.params.lazy.enabled&&!e.params.loop&&0===e.params.initialSlide&&(e.params.lazy.checkInView?e.lazy.checkInViewOnLoad():e.lazy.load())},scroll:function(e){e.params.freeMode&&!e.params.freeModeSticky&&e.lazy.load()},"scrollbarDragMove resize _freeModeNoMomentumRelease":function(e){e.params.lazy.enabled&&e.lazy.load()},transitionStart:function(e){e.params.lazy.enabled&&(e.params.lazy.loadOnTransitionStart||!e.params.lazy.loadOnTransitionStart&&!e.lazy.initialImageLoaded)&&e.lazy.load()},transitionEnd:function(e){e.params.lazy.enabled&&!e.params.lazy.loadOnTransitionStart&&e.lazy.load()},slideChange:function(e){e.params.lazy.enabled&&e.params.cssMode&&e.lazy.load()}}},qt,{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group"}},create:function(){var e=this;ge(e,{a11y:a({},jt,{liveRegion:T('<span class="'+e.params.a11y.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>')})})},on:{afterInit:function(e){e.params.a11y.enabled&&(e.a11y.init(),e.a11y.updateNavigation())},toEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},fromEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},paginationUpdate:function(e){e.params.a11y.enabled&&e.a11y.updatePagination()},destroy:function(e){e.params.a11y.enabled&&e.a11y.destroy()}}},{name:"history",params:{history:{enabled:!1,root:"",replaceState:!1,key:"slides"}},create:function(){ge(this,{history:a({},Ut)})},on:{init:function(e){e.params.history.enabled&&e.history.init()},destroy:function(e){e.params.history.enabled&&e.history.destroy()},"transitionEnd _freeModeNoMomentumRelease":function(e){e.history.initialized&&e.history.setHistory(e.params.history.key,e.activeIndex)},slideChange:function(e){e.history.initialized&&e.params.cssMode&&e.history.setHistory(e.params.history.key,e.activeIndex)}}},{name:"hash-navigation",params:{hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}},create:function(){ge(this,{hashNavigation:a({initialized:!1},Kt)})},on:{init:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.init()},destroy:function(e){e.params.hashNavigation.enabled&&e.hashNavigation.destroy()},"transitionEnd _freeModeNoMomentumRelease":function(e){e.hashNavigation.initialized&&e.hashNavigation.setHash()},slideChange:function(e){e.hashNavigation.initialized&&e.params.cssMode&&e.hashNavigation.setHash()}}},{name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}},create:function(){ge(this,{autoplay:a({},Jt,{running:!1,paused:!1})})},on:{init:function(e){e.params.autoplay.enabled&&(e.autoplay.start(),n().addEventListener("visibilitychange",e.autoplay.onVisibilityChange),e.autoplay.attachMouseEvents())},beforeTransitionStart:function(e,t,a){e.autoplay.running&&(a||!e.params.autoplay.disableOnInteraction?e.autoplay.pause(t):e.autoplay.stop())},sliderFirstMove:function(e){e.autoplay.running&&(e.params.autoplay.disableOnInteraction?e.autoplay.stop():e.autoplay.pause())},touchEnd:function(e){e.params.cssMode&&e.autoplay.paused&&!e.params.autoplay.disableOnInteraction&&e.autoplay.run()},destroy:function(e){e.autoplay.detachMouseEvents(),e.autoplay.running&&e.autoplay.stop(),n().removeEventListener("visibilitychange",e.autoplay.onVisibilityChange)}}},{name:"effect-fade",params:{fadeEffect:{crossFade:!1}},create:function(){ge(this,{fadeEffect:a({},Zt)})},on:{beforeInit:function(e){if("fade"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"fade");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};me(e.params,t),me(e.originalParams,t)}},setTranslate:function(e){"fade"===e.params.effect&&e.fadeEffect.setTranslate()},setTransition:function(e,t){"fade"===e.params.effect&&e.fadeEffect.setTransition(t)}}},{name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){ge(this,{cubeEffect:a({},Qt)})},on:{beforeInit:function(e){if("cube"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"cube"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};me(e.params,t),me(e.originalParams,t)}},setTranslate:function(e){"cube"===e.params.effect&&e.cubeEffect.setTranslate()},setTransition:function(e,t){"cube"===e.params.effect&&e.cubeEffect.setTransition(t)}}},{name:"effect-flip",params:{flipEffect:{slideShadows:!0,limitRotation:!0}},create:function(){ge(this,{flipEffect:a({},ea)})},on:{beforeInit:function(e){if("flip"===e.params.effect){e.classNames.push(e.params.containerModifierClass+"flip"),e.classNames.push(e.params.containerModifierClass+"3d");var t={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!0};me(e.params,t),me(e.originalParams,t)}},setTranslate:function(e){"flip"===e.params.effect&&e.flipEffect.setTranslate()},setTransition:function(e,t){"flip"===e.params.effect&&e.flipEffect.setTransition(t)}}},{name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0}},create:function(){ge(this,{coverflowEffect:a({},ta)})},on:{beforeInit:function(e){"coverflow"===e.params.effect&&(e.classNames.push(e.params.containerModifierClass+"coverflow"),e.classNames.push(e.params.containerModifierClass+"3d"),e.params.watchSlidesProgress=!0,e.originalParams.watchSlidesProgress=!0)},setTranslate:function(e){"coverflow"===e.params.effect&&e.coverflowEffect.setTranslate()},setTransition:function(e,t){"coverflow"===e.params.effect&&e.coverflowEffect.setTransition(t)}}},{name:"thumbs",params:{thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-container-thumbs"}},create:function(){ge(this,{thumbs:a({swiper:null,initialized:!1},aa)})},on:{beforeInit:function(e){var t=e.params.thumbs;t&&t.swiper&&(e.thumbs.init(),e.thumbs.update(!0))},slideChange:function(e){e.thumbs.swiper&&e.thumbs.update()},update:function(e){e.thumbs.swiper&&e.thumbs.update()},resize:function(e){e.thumbs.swiper&&e.thumbs.update()},observerUpdate:function(e){e.thumbs.swiper&&e.thumbs.update()},setTransition:function(e,t){var a=e.thumbs.swiper;a&&a.setTransition(t)},beforeDestroy:function(e){var t=e.thumbs.swiper;t&&e.thumbs.swiperCreated&&t&&t.destroy()}}}];return Ot.use(ia),Ot}()}}]); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/business-hours/view.asset.php b/plugins/jetpack/_inc/blocks/business-hours/view.asset.php
index b0089def..ed83ee6e 100644
--- a/plugins/jetpack/_inc/blocks/business-hours/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/business-hours/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'b22763bb1a1ec93f76008778235311ca'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '98fe7312891f0abbfc57f72af9fc2cf2'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/business-hours/view.css b/plugins/jetpack/_inc/blocks/business-hours/view.css
index 6f319b18..fcef9945 100644
--- a/plugins/jetpack/_inc/blocks/business-hours/view.css
+++ b/plugins/jetpack/_inc/blocks/business-hours/view.css
@@ -1 +1 @@
-@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em} \ No newline at end of file
+@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/business-hours/view.js b/plugins/jetpack/_inc/blocks/business-hours/view.js
index 89d1016c..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/business-hours/view.js
+++ b/plugins/jetpack/_inc/blocks/business-hours/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=273)}({126:function(e,t,n){},273:function(e,t,n){n(42),e.exports=n(274)},274:function(e,t,n){"use strict";n.r(t);n(126)},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/business-hours/view.rtl.css b/plugins/jetpack/_inc/blocks/business-hours/view.rtl.css
index 8672d507..b66c0587 100644
--- a/plugins/jetpack/_inc/blocks/business-hours/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/business-hours/view.rtl.css
@@ -1 +1 @@
-@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em} \ No newline at end of file
+@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/button/view.asset.php b/plugins/jetpack/_inc/blocks/button/view.asset.php
new file mode 100644
index 00000000..7fbb83b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/button/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '9a003aad38d25dfed01e48d7d5074887'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/button/view.css b/plugins/jetpack/_inc/blocks/button/view.css
new file mode 100644
index 00000000..f55634aa
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/button/view.css
@@ -0,0 +1 @@
+.amp-wp-article .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-button button{border:inherit} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/button/view.js b/plugins/jetpack/_inc/blocks/button/view.js
new file mode 100644
index 00000000..ec1b31b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/button/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/button/view.rtl.css b/plugins/jetpack/_inc/blocks/button/view.rtl.css
new file mode 100644
index 00000000..f55634aa
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/button/view.rtl.css
@@ -0,0 +1 @@
+.amp-wp-article .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-button button{border:inherit} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/calendly/view.asset.php b/plugins/jetpack/_inc/blocks/calendly/view.asset.php
index b6e45b25..eab5adbc 100644
--- a/plugins/jetpack/_inc/blocks/calendly/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/calendly/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '31483c7a7cd6794e8753fc0709171ca5'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'd19bd228ce801bf66f24454506ac0680'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/calendly/view.css b/plugins/jetpack/_inc/blocks/calendly/view.css
index 27fde6fb..f8ca3f64 100644
--- a/plugins/jetpack/_inc/blocks/calendly/view.css
+++ b/plugins/jetpack/_inc/blocks/calendly/view.css
@@ -1 +1 @@
-.admin-bar .calendly-overlay .calendly-popup-close{top:47px} \ No newline at end of file
+.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/calendly/view.js b/plugins/jetpack/_inc/blocks/calendly/view.js
index dcf5cd75..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/calendly/view.js
+++ b/plugins/jetpack/_inc/blocks/calendly/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=275)}({275:function(e,t,n){n(42),e.exports=n(276)},276:function(e,t,n){"use strict";n.r(t);n(277)},277:function(e,t,n){},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/calendly/view.rtl.css b/plugins/jetpack/_inc/blocks/calendly/view.rtl.css
index 27fde6fb..f8ca3f64 100644
--- a/plugins/jetpack/_inc/blocks/calendly/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/calendly/view.rtl.css
@@ -1 +1 @@
-.admin-bar .calendly-overlay .calendly-popup-close{top:47px} \ No newline at end of file
+.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/components.css b/plugins/jetpack/_inc/blocks/components.css
index d3d6d73b..0e814121 100644
--- a/plugins/jetpack/_inc/blocks/components.css
+++ b/plugins/jetpack/_inc/blocks/components.css
@@ -1 +1 @@
-.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.block-editor-warning{border:1px solid #e2e4e7;padding:10px 14px}.block-editor-warning .block-editor-warning__message{line-height:1.4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-warning .block-editor-warning__actions .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:inherit;text-decoration:none} \ No newline at end of file
+.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-left:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.block-editor-warning{border:1px solid #e0e0e0;padding:10px 14px}.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4}.block-editor-warning .block-editor-warning__actions .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:inherit;text-decoration:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/components.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/components.js.LICENSE.txt
new file mode 100644
index 00000000..af0f4aca
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/components.js.LICENSE.txt
@@ -0,0 +1,56 @@
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/**
+ * @license
+ * Lodash <https://lodash.com/>
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** @license React v0.20.2
+ * scheduler.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.
+ */
+
+/** @license React v17.0.2
+ * react-dom-server.browser.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.
+ */
+
+/** @license React v17.0.2
+ * react-dom.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.
+ */
+
+/** @license React v17.0.2
+ * react.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/plugins/jetpack/_inc/blocks/components.rtl.css b/plugins/jetpack/_inc/blocks/components.rtl.css
index 37f279f9..56a90689 100644
--- a/plugins/jetpack/_inc/blocks/components.rtl.css
+++ b/plugins/jetpack/_inc/blocks/components.rtl.css
@@ -1 +1 @@
-.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.block-editor-warning{border:1px solid #e2e4e7;padding:10px 14px}.block-editor-warning .block-editor-warning__message{line-height:1.4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.block-editor-warning .block-editor-warning__actions .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:inherit;text-decoration:none} \ No newline at end of file
+.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-right:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px;width:100%}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.block-editor-warning{border:1px solid #e0e0e0;padding:10px 14px}.block-editor-warning .block-editor-warning__message{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;line-height:1.4}.block-editor-warning .block-editor-warning__actions .components-button{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-weight:inherit;text-decoration:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/contact-info/view.asset.php b/plugins/jetpack/_inc/blocks/contact-info/view.asset.php
index a0f2e697..68a5b5af 100644
--- a/plugins/jetpack/_inc/blocks/contact-info/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/contact-info/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '2b138cc36124a83ac2f6b21b4b0b2dd7'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'bd7dad5bce49d5eb5e0e074001289dbe'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/contact-info/view.js b/plugins/jetpack/_inc/blocks/contact-info/view.js
index 86274605..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/contact-info/view.js
+++ b/plugins/jetpack/_inc/blocks/contact-info/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=278)}({129:function(e,t,n){},278:function(e,t,n){n(42),e.exports=n(279)},279:function(e,t,n){"use strict";n.r(t);n(129)},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/dialogue/view.asset.php b/plugins/jetpack/_inc/blocks/dialogue/view.asset.php
new file mode 100644
index 00000000..d4945d61
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/dialogue/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-data', 'wp-dom-ready', 'wp-polyfill'), 'version' => '227e4c0621e17bd94c29d032478bb3d3'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/dialogue/view.css b/plugins/jetpack/_inc/blocks/dialogue/view.css
new file mode 100644
index 00000000..6b5574c3
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/dialogue/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:5px;margin-right:0;padding:6px 12px;text-align:right;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:right}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-right:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/dialogue/view.js b/plugins/jetpack/_inc/blocks/dialogue/view.js
new file mode 100644
index 00000000..7f2156a3
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/dialogue/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,e,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(r.p=window.Jetpack_Block_Assets_Base_Url.url)},9818:function(t){"use strict";t.exports=window.wp.data},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t+"../"}(),function(){"use strict";r(57836)}(),function(){"use strict";var t=r(47701),e=r.n(t),n=r(9818);const o="jetpack/media-source";e()((function(){const t=(0,n.select)(o)?.getDefaultMediaSource();t||document?.body.classList.add("no-media-source"),document.body.addEventListener("click",(e=>{if(!e?.target?.classList?.contains("wp-block-jetpack-dialogue__timestamp_link"))return;const r=e.target?.href?.split("#")?.[1];r&&t&&(e.preventDefault(),(0,n.dispatch)(o).setMediaSourceCurrentTime(t.id,r),(0,n.dispatch)(o).playMediaSource(t.id,r))}))}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/dialogue/view.rtl.css b/plugins/jetpack/_inc/blocks/dialogue/view.rtl.css
new file mode 100644
index 00000000..df7644d5
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/dialogue/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:0;margin-right:5px;padding:6px 12px;text-align:left;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:left}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-left:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/donations/view.asset.php b/plugins/jetpack/_inc/blocks/donations/view.asset.php
new file mode 100644
index 00000000..ce8974d5
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/donations/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-dom-ready', 'wp-keycodes', 'wp-polyfill', 'wp-url'), 'version' => 'b1cd3a3d133ee9024b5e8dccf136f071'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/donations/view.css b/plugins/jetpack/_inc/blocks/donations/view.css
new file mode 100644
index 00000000..3bc7f346
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/donations/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-left:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-left:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{margin-left:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wp-block-jetpack-donations .donations__container:not(.loaded){height:200px;position:relative;width:100%}.wp-block-jetpack-donations .donations__container:not(.loaded) *{display:none}.wp-block-jetpack-donations .donations__container:not(.loaded):before{background-color:#949494;border-radius:100%;content:"";height:18px;left:50%;opacity:.7;position:absolute;top:50%;transform:translate(-50%,-50%);width:18px}.wp-block-jetpack-donations .donations__container:not(.loaded):after{animation:spinner 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;left:50%;margin-left:-6px;margin-top:-6px;position:absolute;top:50%;transform-origin:6px 6px;width:4px}.wp-block-jetpack-donations .donations__tab.is-annual .donations__monthly-item,.wp-block-jetpack-donations .donations__tab.is-annual .donations__one-time-item,.wp-block-jetpack-donations .donations__tab.is-monthly .donations__annual-item,.wp-block-jetpack-donations .donations__tab.is-monthly .donations__one-time-item,.wp-block-jetpack-donations .donations__tab.is-one-time .donations__annual-item,.wp-block-jetpack-donations .donations__tab.is-one-time .donations__monthly-item{display:none}.wp-block-jetpack-donations .donations__amount{cursor:pointer}.wp-block-jetpack-donations .donations__amount.is-selected{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount{cursor:text}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;text-align:left;white-space:pre-wrap}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value:empty:after{color:#ccc;content:attr(data-empty-text)}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value:focus{outline:none}.wp-block-jetpack-donations .donations__donate-button.is-disabled{opacity:.2;pointer-events:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/donations/view.js b/plugins/jetpack/_inc/blocks/donations/view.js
new file mode 100644
index 00000000..290eb1fc
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/donations/view.js
@@ -0,0 +1,2 @@
+/*! For license information please see view.js.LICENSE.txt */
+!function(){var t={8172:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(31354),i=n(64803);function o(t){var e=(0,r.Z)(t);return function(t){return(0,i.Z)(e,t)}}},64803:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r={"!":function(t){return!t},"*":function(t,e){return t*e},"/":function(t,e){return t/e},"%":function(t,e){return t%e},"+":function(t,e){return t+e},"-":function(t,e){return t-e},"<":function(t,e){return t<e},"<=":function(t,e){return t<=e},">":function(t,e){return t>e},">=":function(t,e){return t>=e},"==":function(t,e){return t===e},"!=":function(t,e){return t!==e},"&&":function(t,e){return t&&e},"||":function(t,e){return t||e},"?:":function(t,e,n){if(t)throw e;return n}};function i(t,e){var n,i,o,s,c,u,a=[];for(n=0;n<t.length;n++){if(c=t[n],s=r[c]){for(i=s.length,o=Array(i);i--;)o[i]=a.pop();try{u=s.apply(null,o)}catch(t){return t}}else u=e.hasOwnProperty(c)?e[c]:+c;a.push(u)}return a[0]}},7478:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=n(8172);function i(t){var e=(0,r.Z)(t);return function(t){return+e({n:t})}}},31354:function(t,e,n){"use strict";var r,i,o,s;function c(t){for(var e,n,c,u,a=[],l=[];e=t.match(s);){for(n=e[0],(c=t.substr(0,e.index).trim())&&a.push(c);u=l.pop();){if(o[n]){if(o[n][0]===u){n=o[n][1]||n;break}}else if(i.indexOf(u)>=0||r[u]<r[n]){l.push(u);break}a.push(u)}o[n]||l.push(n),t=t.substr(e.index+n.length)}return(t=t.trim())&&a.push(t),a.concat(l.reverse())}n.d(e,{Z:function(){return c}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},i=["(","?"],o={")":["("],":":["?","?:"]},s=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function i(t,e){var n;if(!Array.isArray(e))for(e=new Array(arguments.length-1),n=1;n<arguments.length;n++)e[n-1]=arguments[n];return n=1,t.replace(r,(function(){var t,r,i,o,s;return t=arguments[3],r=arguments[5],"%"===(o=arguments[9])?"%":("*"===(i=arguments[7])&&(i=e[n-1],n++),void 0!==r?e[0]&&"object"==typeof e[0]&&e[0].hasOwnProperty(r)&&(s=e[0][r]):(void 0===t&&(t=n),n++,s=e[t-1]),"f"===o?s=parseFloat(s)||0:"d"===o&&(s=parseInt(s)||0),void 0!==i&&("f"===o?s=s.toFixed(i):"s"===o&&(s=s.substr(0,i))),null!=s?s:"")}))}},2571:function(t){"use strict";var e,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};e=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var i=Number.isNaN||function(t){return t!=t};function o(){o.init.call(this)}t.exports=o,t.exports.once=function(t,e){return new Promise((function(n,r){function i(n){t.removeListener(e,o),r(n)}function o(){"function"==typeof t.removeListener&&t.removeListener("error",i),n([].slice.call(arguments))}d(t,e,o,{once:!0}),"error"!==e&&function(t,e,n){"function"==typeof t.on&&d(t,"error",e,n)}(t,i,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var s=10;function c(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function u(t){return void 0===t._maxListeners?o.defaultMaxListeners:t._maxListeners}function a(t,e,n,r){var i,o,s,a;if(c(n),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),s=o[e]),void 0===s)s=o[e]=n,++t._eventsCount;else if("function"==typeof s?s=o[e]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),(i=u(t))>0&&s.length>i&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=s.length,a=l,console&&console.warn&&console.warn(a)}return t}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=l.bind(r);return i.listener=n,r.wrapFn=i,i}function f(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}(i):g(i,i.length)}function m(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function d(t,e,n,r){if("function"==typeof t.on)r.once?t.once(e,n):t.on(e,n);else{if("function"!=typeof t.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t);t.addEventListener(e,(function i(o){r.once&&t.removeEventListener(e,i),n(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");s=t}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||i(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},o.prototype.getMaxListeners=function(){return u(this)},o.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var i="error"===t,o=this._events;if(void 0!==o)i=i&&void 0===o.error;else if(!i)return!1;if(i){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var c=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw c.context=s,c}var u=o[t];if(void 0===u)return!1;if("function"==typeof u)r(u,this,e);else{var a=u.length,l=g(u,a);for(n=0;n<a;++n)r(l[n],this,e)}return!0},o.prototype.addListener=function(t,e){return a(this,t,e,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(t,e){return a(this,t,e,!0)},o.prototype.once=function(t,e){return c(e),this.on(t,p(this,t,e)),this},o.prototype.prependOnceListener=function(t,e){return c(e),this.prependListener(t,p(this,t,e)),this},o.prototype.removeListener=function(t,e){var n,r,i,o,s;if(c(e),void 0===(r=this._events))return this;if(void 0===(n=r[t]))return this;if(n===e||n.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,n.listener||e));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,s||e)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(t){var e,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=n[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},o.prototype.listeners=function(t){return f(this,t,!0)},o.prototype.rawListeners=function(t){return f(this,t,!1)},o.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]}},95949:function(t,e,n){"use strict";var r=n(53566),i=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}e.BlockHash=o,o.prototype.update=function(t,e){if(t=r.toArray(t,e),this.pending?this.pending=this.pending.concat(t):this.pending=t,this.pendingTotal+=t.length,this.pending.length>=this._delta8){var n=(t=this.pending).length%this._delta8;this.pending=t.slice(t.length-n,t.length),0===this.pending.length&&(this.pending=null),t=r.join32(t,0,t.length-n,this.endian);for(var i=0;i<t.length;i+=this._delta32)this._update(t,i,i+this._delta32)}return this},o.prototype.digest=function(t){return this.update(this._pad()),i(null===this.pending),this._digest(t)},o.prototype._pad=function(){var t=this.pendingTotal,e=this._delta8,n=e-(t+this.padLength)%e,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(t<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=t>>>24&255,r[i++]=t>>>16&255,r[i++]=t>>>8&255,r[i++]=255&t}else for(r[i++]=255&t,r[i++]=t>>>8&255,r[i++]=t>>>16&255,r[i++]=t>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o<this.padLength;o++)r[i++]=0;return r}},69016:function(t,e,n){"use strict";var r=n(53566),i=n(95949),o=n(47574),s=r.rotl32,c=r.sum32,u=r.sum32_5,a=o.ft_1,l=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function f(){if(!(this instanceof f))return new f;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(f,l),t.exports=f,f.blockSize=512,f.outSize=160,f.hmacStrength=80,f.padLength=64,f.prototype._update=function(t,e){for(var n=this.W,r=0;r<16;r++)n[r]=t[e+r];for(;r<n.length;r++)n[r]=s(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],o=this.h[1],l=this.h[2],f=this.h[3],m=this.h[4];for(r=0;r<n.length;r++){var g=~~(r/20),d=u(s(i,5),a(g,o,l,f),m,n[r],p[g]);m=f,f=l,l=s(o,30),o=i,i=d}this.h[0]=c(this.h[0],i),this.h[1]=c(this.h[1],o),this.h[2]=c(this.h[2],l),this.h[3]=c(this.h[3],f),this.h[4]=c(this.h[4],m)},f.prototype._digest=function(t){return"hex"===t?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(t,e,n){"use strict";var r=n(53566).rotr32;function i(t,e,n){return t&e^~t&n}function o(t,e,n){return t&e^t&n^e&n}function s(t,e,n){return t^e^n}e.ft_1=function(t,e,n,r){return 0===t?i(e,n,r):1===t||3===t?s(e,n,r):2===t?o(e,n,r):void 0},e.ch32=i,e.maj32=o,e.p32=s,e.s0_256=function(t){return r(t,2)^r(t,13)^r(t,22)},e.s1_256=function(t){return r(t,6)^r(t,11)^r(t,25)},e.g0_256=function(t){return r(t,7)^r(t,18)^t>>>3},e.g1_256=function(t){return r(t,17)^r(t,19)^t>>>10}},53566:function(t,e,n){"use strict";var r=n(48282),i=n(59503);function o(t,e){return 55296==(64512&t.charCodeAt(e))&&(!(e<0||e+1>=t.length)&&56320==(64512&t.charCodeAt(e+1)))}function s(t){return(t>>>24|t>>>8&65280|t<<8&16711680|(255&t)<<24)>>>0}function c(t){return 1===t.length?"0"+t:t}function u(t){return 7===t.length?"0"+t:6===t.length?"00"+t:5===t.length?"000"+t:4===t.length?"0000"+t:3===t.length?"00000"+t:2===t.length?"000000"+t:1===t.length?"0000000"+t:t}e.inherits=i,e.toArray=function(t,e){if(Array.isArray(t))return t.slice();if(!t)return[];var n=[];if("string"==typeof t)if(e){if("hex"===e)for((t=t.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(t="0"+t),i=0;i<t.length;i+=2)n.push(parseInt(t[i]+t[i+1],16))}else for(var r=0,i=0;i<t.length;i++){var s=t.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):o(t,i)?(s=65536+((1023&s)<<10)+(1023&t.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<t.length;i++)n[i]=0|t[i];return n},e.toHex=function(t){for(var e="",n=0;n<t.length;n++)e+=c(t[n].toString(16));return e},e.htonl=s,e.toHex32=function(t,e){for(var n="",r=0;r<t.length;r++){var i=t[r];"little"===e&&(i=s(i)),n+=u(i.toString(16))}return n},e.zero2=c,e.zero8=u,e.join32=function(t,e,n,i){var o=n-e;r(o%4==0);for(var s=new Array(o/4),c=0,u=e;c<s.length;c++,u+=4){var a;a="big"===i?t[u]<<24|t[u+1]<<16|t[u+2]<<8|t[u+3]:t[u+3]<<24|t[u+2]<<16|t[u+1]<<8|t[u],s[c]=a>>>0}return s},e.split32=function(t,e){for(var n=new Array(4*t.length),r=0,i=0;r<t.length;r++,i+=4){var o=t[r];"big"===e?(n[i]=o>>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},e.rotr32=function(t,e){return t>>>e|t<<32-e},e.rotl32=function(t,e){return t<<e|t>>>32-e},e.sum32=function(t,e){return t+e>>>0},e.sum32_3=function(t,e,n){return t+e+n>>>0},e.sum32_4=function(t,e,n,r){return t+e+n+r>>>0},e.sum32_5=function(t,e,n,r,i){return t+e+n+r+i>>>0},e.sum64=function(t,e,n,r){var i=t[e],o=r+t[e+1]>>>0,s=(o<r?1:0)+n+i;t[e]=s>>>0,t[e+1]=o},e.sum64_hi=function(t,e,n,r){return(e+r>>>0<e?1:0)+t+n>>>0},e.sum64_lo=function(t,e,n,r){return e+r>>>0},e.sum64_4_hi=function(t,e,n,r,i,o,s,c){var u=0,a=e;return u+=(a=a+r>>>0)<e?1:0,u+=(a=a+o>>>0)<o?1:0,t+n+i+s+(u+=(a=a+c>>>0)<c?1:0)>>>0},e.sum64_4_lo=function(t,e,n,r,i,o,s,c){return e+r+o+c>>>0},e.sum64_5_hi=function(t,e,n,r,i,o,s,c,u,a){var l=0,p=e;return l+=(p=p+r>>>0)<e?1:0,l+=(p=p+o>>>0)<o?1:0,l+=(p=p+c>>>0)<c?1:0,t+n+i+s+u+(l+=(p=p+a>>>0)<a?1:0)>>>0},e.sum64_5_lo=function(t,e,n,r,i,o,s,c,u,a){return e+r+o+c+a>>>0},e.rotr64_hi=function(t,e,n){return(e<<32-n|t>>>n)>>>0},e.rotr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0},e.shr64_hi=function(t,e,n){return t>>>n},e.shr64_lo=function(t,e,n){return(t<<32-n|e>>>n)>>>0}},88617:function(t,e,n){"use strict";var r=n(59128),i=n(98086),o=n(90922),s=n.n(o),c=n(94481),u=n(88090),a=n(75565),l=n.n(a),p=n(69016),f=n.n(p),m=n(2571),g=n(702),d=n(92846),h=s()("i18n-calypso"),y="number_format_decimals",b="number_format_thousands_sep",v="messages",w=[function(t){return t}],C={};function _(){L.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function S(t){return Array.prototype.slice.call(t)}function F(t){var e=t[0];("string"!=typeof e||t.length>3||t.length>2&&"object"==typeof t[1]&&"object"==typeof t[2])&&_("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",S(t),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===t.length&&"string"==typeof e&&"string"==typeof t[1]&&_("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",S(t));for(var n={},r=0;r<t.length;r++)"object"==typeof t[r]&&(n=t[r]);if("string"==typeof e?n.original=e:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof t[1]&&(n.plural=t[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function O(t,e){return t.dcnpgettext(v,e.context,e.original,e.plural,e.count)}function A(t,e){for(var n=w.length-1;n>=0;n--){var r=w[n](Object.assign({},e)),i=r.context?r.context+""+r.original:r.original;if(t.state.locale[i])return O(t.state.tannin,r)}return null}function L(){if(!(this instanceof L))return new L;this.defaultLocaleSlug="en",this.defaultPluralForms=function(t){return 1===t?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:l()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new m.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}L.throwErrors=!1,L.prototype.on=function(){var t;(t=this.stateObserver).on.apply(t,arguments)},L.prototype.off=function(){var t;(t=this.stateObserver).off.apply(t,arguments)},L.prototype.emit=function(){var t;(t=this.stateObserver).emit.apply(t,arguments)},L.prototype.numberFormat=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof e?e:e.decimals||0,r=e.decPoint||this.state.numberFormatSettings.decimal_point||".",i=e.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,d.Z)(t,n,r,i)},L.prototype.configure=function(t){Object.assign(this,t||{}),this.setLocale()},L.prototype.setLocale=function(t){var e,n,r;if(t&&t[""]&&t[""]["key-hash"]){var o=t[""]["key-hash"],s=function(t,e){var n=!1===e?"":String(e);if(void 0!==C[n+t])return C[n+t];var r=f()().update(t).digest("hex");return C[n+t]=e?r.substr(0,e):r},c=function(t){return function(e){return e.context?(e.original=s(e.context+String.fromCharCode(4)+e.original,t),delete e.context):e.original=s(e.original,t),e}};if("sha1"===o.substr(0,4))if(4===o.length)w.push(c(!1));else{var a=o.substr(5).indexOf("-");if(a<0){var l=Number(o.substr(5));w.push(c(l))}else for(var p=Number(o.substr(5,a)),m=Number(o.substr(6+a)),g=p;g<=m;g++)w.push(c(g))}}if(t&&t[""].localeSlug)if(t[""].localeSlug===this.state.localeSlug){if(t===this.state.locale)return;Object.assign(this.state.locale,t)}else this.state.locale=Object.assign({},t);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(e=this.state.locale["text directionltr"])||void 0===e?void 0:e[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new u.Z((0,i.Z)({},v,this.state.locale)),this.state.numberFormatSettings.decimal_point=O(this.state.tannin,F([y])),this.state.numberFormatSettings.thousands_sep=O(this.state.tannin,F([b])),this.state.numberFormatSettings.decimal_point===y&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===b&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},L.prototype.getLocale=function(){return this.state.locale},L.prototype.getLocaleSlug=function(){return this.state.localeSlug},L.prototype.isRtl=function(){return"rtl"===this.state.textDirection},L.prototype.addTranslations=function(t){for(var e in t)""!==e&&(this.state.tannin.data.messages[e]=t[e]);this.stateObserver.emit("change")},L.prototype.hasTranslation=function(){return!!A(this,F(arguments))},L.prototype.translate=function(){var t=F(arguments),e=A(this,t);if(e||(e=O(this.state.tannin,t)),t.args){var n=Array.isArray(t.args)?t.args.slice(0):[t.args];n.unshift(e);try{e=g.Z.apply(void 0,(0,r.Z)(n))}catch(t){if(!window||!window.console)return;var i=this.throwErrors?"error":"warn";"string"!=typeof t?window.console[i](t):window.console[i]("i18n sprintf error:",n)}}return t.components&&(e=(0,c.Z)({mixedString:e,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){e=n(e,t)})),e},L.prototype.reRenderTranslations=function(){h("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},L.prototype.registerComponentUpdateHook=function(t){this.componentUpdateHooks.push(t)},L.prototype.registerTranslateHook=function(t){this.translateHooks.push(t)},e.Z=L},63807:function(t,e,n){"use strict";n.d(e,{Y4:function(){return u}});var r=n(88617),i=n(42928),o=n(80975),s=n(24531),c=new r.Z,u=c.numberFormat.bind(c),a=(c.translate.bind(c),c.configure.bind(c),c.setLocale.bind(c),c.getLocale.bind(c),c.getLocaleSlug.bind(c),c.addTranslations.bind(c),c.reRenderTranslations.bind(c),c.registerComponentUpdateHook.bind(c),c.registerTranslateHook.bind(c),c.state,c.stateObserver,c.on.bind(c),c.off.bind(c),c.emit.bind(c),(0,i.Z)(c),(0,o.Z)(c),(0,s.Z)(c));a.useRtl,a.withRtl},42928:function(t,e,n){"use strict";n.d(e,{Z:function(){return f}});var r=n(59591),i=n(71687),o=n(93772),s=n(55200),c=n(82104),u=n(9057),a=n(98086),l=n(99196),p=n.n(l);function f(t){var e={numberFormat:t.numberFormat.bind(t),translate:t.translate.bind(t)};return function(n){var l,f,m=n.displayName||n.name||"";return f=l=function(l){(0,c.Z)(m,l);var f=(0,u.Z)(m);function m(){var t;(0,i.Z)(this,m);for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return t=f.call.apply(f,[this].concat(n)),(0,a.Z)((0,s.Z)(t),"boundForceUpdate",t.forceUpdate.bind((0,s.Z)(t))),t}return(0,o.Z)(m,[{key:"componentDidMount",value:function(){t.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){t.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var i=(0,r.Z)({locale:t.getLocaleSlug()},this.props,{},e);return p().createElement(n,i)}}]),m}(p().Component),(0,a.Z)(l,"displayName","Localized("+m+")"),f}}},92846:function(t,e,n){"use strict";function r(t,e,n,r){t=(t+"").replace(/[^0-9+\-Ee.]/g,"");var i=isFinite(+t)?+t:0,o=isFinite(+e)?Math.abs(e):0,s=void 0===r?",":r,c=void 0===n?".":n,u="";return u=(o?function(t,e){var n=Math.pow(10,e);return""+(Math.round(t*n)/n).toFixed(e)}(i,o):""+Math.round(i)).split("."),u[0].length>3&&(u[0]=u[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,s)),(u[1]||"").length<o&&(u[1]=u[1]||"",u[1]+=new Array(o-u[1].length+1).join("0")),u.join(c)}n.d(e,{Z:function(){return r}})},24531:function(t,e,n){"use strict";n.d(e,{Z:function(){return u}});var r=n(95672),i=n(99196),o=n.n(i),s=n(20036),c=n(94333);function u(t){var e={getCurrentValue:function(){return t.isRtl()},subscribe:function(e){return t.on("change",e),function(){return t.off("change",e)}}};function n(){return(0,s.useSubscription)(e)}var u=(0,c.createHigherOrderComponent)((function(t){return(0,i.forwardRef)((function(e,i){var s=n();return o().createElement(t,(0,r.Z)({},e,{isRtl:s,ref:i}))}))}),"WithRTL");return{useRtl:n,withRtl:u}}},80975:function(t,e,n){"use strict";n.d(e,{Z:function(){return s}});var r=n(50572),i=n(99196),o=n.n(i);function s(t){function e(){var e=t.translate.bind(t);return Object.defineProperty(e,"localeSlug",{get:t.getLocaleSlug.bind(t)}),e}return function(){var n=o().useState(e),i=(0,r.Z)(n,2),s=i[0],c=i[1];return o().useEffect((function(){var n=function(){return c(e)};return t.on("change",n),function(){return t.off("change",n)}}),[]),s}}},59503:function(t){"function"==typeof Object.create?t.exports=function(t,e){e&&(t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(t,e){if(e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}}},75565:function(t,e,n){var r=n(2571),i=n(59503);function o(t){if(!(this instanceof o))return new o(t);"number"==typeof t&&(t={max:t}),t||(t={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=t.max||1e3,this.maxAge=t.maxAge||0}t.exports=o,i(o,r.EventEmitter),Object.defineProperty(o.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),o.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},o.prototype.remove=function(t){if("string"!=typeof t&&(t=""+t),this.cache.hasOwnProperty(t)){var e=this.cache[t];return delete this.cache[t],this._unlink(t,e.prev,e.next),e.value}},o.prototype._unlink=function(t,e,n){this.length--,0===this.length?this.head=this.tail=null:this.head===t?(this.head=e,this.cache[this.head].next=null):this.tail===t?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[e].next=n,this.cache[n].prev=e)},o.prototype.peek=function(t){if(this.cache.hasOwnProperty(t)){var e=this.cache[t];if(this._checkAge(t,e))return e.value}},o.prototype.set=function(t,e){var n;if("string"!=typeof t&&(t=""+t),this.cache.hasOwnProperty(t)){if((n=this.cache[t]).value=e,this.maxAge&&(n.modified=Date.now()),t===this.head)return e;this._unlink(t,n.prev,n.next)}else n={value:e,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[t]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=t),this.head=t,this.tail||(this.tail=t),e},o.prototype._checkAge=function(t,e){return!(this.maxAge&&Date.now()-e.modified>this.maxAge)||(this.remove(t),this.emit("evict",{key:t,value:e.value}),!1)},o.prototype.get=function(t){if("string"!=typeof t&&(t=""+t),this.cache.hasOwnProperty(t)){var e=this.cache[t];if(this._checkAge(t,e))return this.head!==t&&(t===this.tail?(this.tail=e.next,this.cache[this.tail].prev=null):this.cache[e.prev].next=e.next,this.cache[e.next].prev=e.prev,this.cache[this.head].next=t,e.prev=this.head,e.next=null,this.head=t),e.value}},o.prototype.evict=function(){if(this.tail){var t=this.tail,e=this.remove(this.tail);this.emit("evict",{key:t,value:e})}}},48282:function(t){function e(t,e){if(!t)throw new Error(e||"Assertion failed")}t.exports=e,e.equal=function(t,e,n){if(t!=e)throw new Error(n||"Assertion failed: "+t+" != "+e)}},32002:function(t){var e=1e3,n=60*e,r=60*n,i=24*r,o=7*i,s=365.25*i;function c(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}t.exports=function(t,u){u=u||{};var a=typeof t;if("string"===a&&t.length>0)return function(t){if((t=String(t)).length>100)return;var c=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!c)return;var u=parseFloat(c[1]);switch((c[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return u*s;case"weeks":case"week":case"w":return u*o;case"days":case"day":case"d":return u*i;case"hours":case"hour":case"hrs":case"hr":case"h":return u*r;case"minutes":case"minute":case"mins":case"min":case"m":return u*n;case"seconds":case"second":case"secs":case"sec":case"s":return u*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return u;default:return}}(t);if("number"===a&&isFinite(t))return u.long?function(t){var o=Math.abs(t);if(o>=i)return c(t,o,i,"day");if(o>=r)return c(t,o,r,"hour");if(o>=n)return c(t,o,n,"minute");if(o>=e)return c(t,o,e,"second");return t+" ms"}(t):function(t){var o=Math.abs(t);if(o>=i)return Math.round(t/i)+"d";if(o>=r)return Math.round(t/r)+"h";if(o>=n)return Math.round(t/n)+"m";if(o>=e)return Math.round(t/e)+"s";return t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},1625:function(t){"use strict";var e=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}t.exports=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,o){for(var s,c,u=i(t),a=1;a<arguments.length;a++){for(var l in s=Object(arguments[a]))n.call(s,l)&&(u[l]=s[l]);if(e){c=e(s);for(var p=0;p<c.length;p++)r.call(s,c[p])&&(u[c[p]]=s[c[p]])}}return u}},88090:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(7478),i={contextDelimiter:"",onMissingKey:null};function o(t,e){var n;for(n in this.data=t,this.pluralForms={},this.options={},i)this.options[n]=void 0!==e&&n in e?e[n]:i[n]}o.prototype.getPluralForm=function(t,e){var n,i,o,s=this.pluralForms[t];return s||("function"!=typeof(o=(n=this.data[t][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(i=function(t){var e,n,r;for(e=t.split(";"),n=0;n<e.length;n++)if(0===(r=e[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),o=(0,r.Z)(i)),s=this.pluralForms[t]=o),s(e)},o.prototype.dcnpgettext=function(t,e,n,r,i){var o,s,c;return o=void 0===i?0:this.getPluralForm(t,i),s=n,e&&(s=e+this.options.contextDelimiter+n),(c=this.data[t][s])&&c[o]?c[o]:(this.options.onMissingKey&&this.options.onMissingKey(n,t),0===o?n:r)}},17882:function(t,e,n){"use strict";n.d(e,{hj:function(){return s},Vm:function(){return c}});var r=n(75139),i=n(92819);const o={USD:.5,AUD:.5,BRL:.5,CAD:.5,CHF:.5,DKK:2.5,EUR:.5,GBP:.3,HKD:4,INR:.5,JPY:50,MXN:10,NOK:3,NZD:.5,PLN:2,SEK:3,SGD:.5};Object.keys(o).map((t=>{const{symbol:e}=(0,r.X)(t);return{value:t,label:e===t?t:`${t} ${(0,i.trimEnd)(e,".")}`}}));function s(t){return o[t]}function c(t,e){return t?"number"==typeof t?t:(t=parseFloat(t.replace(new RegExp("\\"+r.M[e].grouping,"g"),"").replace(new RegExp("\\"+r.M[e].decimal,"g"),".")),isNaN(t)?null:t):null}},53857:function(t,e,n){"use strict";function r(t){if("https://subscribe.wordpress.com"===t.origin&&t.data){const e=JSON.parse(t.data);e&&"close"===e.action&&(window.removeEventListener("message",r),tb_remove())}}n.d(e,{f:function(){return i}});const i=t=>{Array.prototype.slice.call(document.querySelectorAll(t)).forEach((t=>{if("true"!==t.getAttribute("data-jetpack-memberships-button-initialized")){try{!function(t){t.addEventListener("click",(e=>{e.preventDefault();const n=t.getAttribute("href");window.scrollTo(0,0),tb_show(null,n+"&display=alternate&TB_iframe=true",null),window.addEventListener("message",r,!1),document.querySelector("#TB_window").classList.add("jetpack-memberships-modal"),window.scrollTo(0,0)}))}(t)}catch(t){console.error("Problem setting up Thickbox",t)}t.setAttribute("data-jetpack-memberships-button-initialized","true")}}))}},57836:function(t,e,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},75139:function(t,e,n){"use strict";n.d(e,{M:function(){return r},X:function(){return i}});var r={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 i(t){return r[t]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(t,e,n){"use strict";n.d(e,{ZP:function(){return s}});var r=n(52141),i=n(63807),o=n(75139);function s(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=(0,o.X)(e);if(!s||isNaN(t))return null;var c=(0,r.Z)({},s,n),u=c.decimal,a=c.grouping,l=c.precision,p=c.symbol,f=t<0?"-":"",m=(0,i.Y4)(Math.abs(t),{decimals:l,thousandsSep:a,decPoint:u});return"".concat(f).concat(p).concat(m)}},94481:function(t,e,n){"use strict";n.d(e,{Z:function(){return s}});var r=n(99196),i=n(32365);function o(t,e){let n,i,s=[];for(let r=0;r<t.length;r++){const o=t[r];if("string"!==o.type){if(void 0===e[o.value])throw new Error(`Invalid interpolation, missing component node: \`${o.value}\``);if("object"!=typeof e[o.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${o.value}\``);if("componentClose"===o.type)throw new Error(`Missing opening component token: \`${o.value}\``);if("componentOpen"===o.type){n=e[o.value],i=r;break}s.push(e[o.value])}else s.push(o.value)}if(n){const c=function(t,e){const n=e[t];let r=0;for(let i=t+1;i<e.length;i++){const t=e[i];if(t.value===n.value){if("componentOpen"===t.type){r++;continue}if("componentClose"===t.type){if(0===r)return i;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(i,t),u=o(t.slice(i+1,c),e),a=(0,r.cloneElement)(n,{},u);if(s.push(a),c<t.length-1){const n=o(t.slice(c+1),e);s=s.concat(n)}}return s=s.filter(Boolean),0===s.length?null:1===s.length?s[0]:(0,r.createElement)(r.Fragment,null,...s)}function s(t){const{mixedString:e,components:n,throwErrors:r}=t;if(!n)return e;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${e}\` because components is not an object`);return e}const s=(0,i.Z)(e);try{return o(s,n)}catch(t){if(r)throw new Error(`Interpolation Error: unable to process \`${e}\` because of error \`${t.message}\``);return e}}},32365:function(t,e,n){"use strict";function r(t){return t.startsWith("{{/")?{type:"componentClose",value:t.replace(/\W/g,"")}:t.endsWith("/}}")?{type:"componentSelfClosing",value:t.replace(/\W/g,"")}:t.startsWith("{{")?{type:"componentOpen",value:t.replace(/\W/g,"")}:{type:"string",value:t}}function i(t){return t.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(e,{Z:function(){return i}})},90922:function(t,e,n){e.formatArgs=function(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,(t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))})),e.splice(i,0,n)},e.save=function(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch(t){}},e.load=function(){let t;try{t=e.storage.getItem("debug")}catch(t){}!t&&"undefined"!=typeof process&&"env"in process&&(t=process.env.DEBUG);return t},e.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+)/)},e.storage=function(){try{return localStorage}catch(t){}}(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!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`."))}})(),e.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"],e.log=console.debug||console.log||(()=>{}),t.exports=n(31967)(e);const{formatters:r}=t.exports;r.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},31967:function(t,e,n){t.exports=function(t){function e(t){let n,i,o,s=null;function c(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];if(!c.enabled)return;const o=c,s=Number(new Date),u=s-(n||s);o.diff=u,o.prev=n,o.curr=s,n=s,r[0]=e.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let a=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((t,n)=>{if("%%"===t)return"%";a++;const i=e.formatters[n];if("function"==typeof i){const e=r[a];t=i.call(o,e),r.splice(a,1),a--}return t})),e.formatArgs.call(o,r);const l=o.log||e.log;l.apply(o,r)}return c.namespace=t,c.useColors=e.useColors(),c.color=e.selectColor(t),c.extend=r,c.destroy=e.destroy,Object.defineProperty(c,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(i!==e.namespaces&&(i=e.namespaces,o=e.enabled(t)),o),set:t=>{s=t}}),"function"==typeof e.init&&e.init(c),c}function r(t,n){const r=e(this.namespace+(void 0===n?":":n)+t);return r.log=this.log,r}function i(t){return t.toString().substring(2,t.toString().length-2).replace(/\.\*\?$/,"*")}return e.debug=e,e.default=e,e.coerce=function(t){if(t instanceof Error)return t.stack||t.message;return t},e.disable=function(){const t=[...e.names.map(i),...e.skips.map(i).map((t=>"-"+t))].join(",");return e.enable(""),t},e.enable=function(t){let n;e.save(t),e.namespaces=t,e.names=[],e.skips=[];const r=("string"==typeof t?t:"").split(/[\s,]+/),i=r.length;for(n=0;n<i;n++)r[n]&&("-"===(t=r[n].replace(/\*/g,".*?"))[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")))},e.enabled=function(t){if("*"===t[t.length-1])return!0;let n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1},e.humanize=n(32002),e.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(t).forEach((n=>{e[n]=t[n]})),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(t){let n=0;for(let e=0;e<t.length;e++)n=(n<<5)-n+t.charCodeAt(e),n|=0;return e.colors[Math.abs(n)%e.colors.length]},e.enable(e.load()),e}},11043:function(t,e,n){"use strict";var r=n(1625),i=n(99196);e.useSubscription=function(t){var e=t.getCurrentValue,n=t.subscribe,o=i.useState((function(){return{getCurrentValue:e,subscribe:n,value:e()}}));t=o[0];var s=o[1];return o=t.value,t.getCurrentValue===e&&t.subscribe===n||(o=e(),s({getCurrentValue:e,subscribe:n,value:o})),i.useDebugValue(o),i.useEffect((function(){function t(){if(!i){var t=e();s((function(i){return i.getCurrentValue!==e||i.subscribe!==n||i.value===t?i:r({},i,{value:t})}))}}var i=!1,o=n(t);return t(),function(){i=!0,o()}}),[e,n]),o}},20036:function(t,e,n){"use strict";t.exports=n(11043)},99196:function(t){"use strict";t.exports=window.React},92819:function(t){"use strict";t.exports=window.lodash},94333:function(t){"use strict";t.exports=window.wp.compose},47701:function(t){"use strict";t.exports=window.wp.domReady},39630:function(t){"use strict";t.exports=window.wp.keycodes},96483:function(t){"use strict";t.exports=window.wp.url},8134:function(t,e,n){"use strict";function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}n.d(e,{Z:function(){return r}})},14316:function(t,e,n){"use strict";function r(t){if(Array.isArray(t))return t}n.d(e,{Z:function(){return r}})},97024:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=n(8134);function i(t){if(Array.isArray(t))return(0,r.Z)(t)}},55200:function(t,e,n){"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,{Z:function(){return r}})},71687:function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}n.d(e,{Z:function(){return r}})},93772:function(t,e,n){"use strict";function r(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function i(t,e,n){return e&&r(t.prototype,e),n&&r(t,n),t}n.d(e,{Z:function(){return i}})},9057:function(t,e,n){"use strict";n.d(e,{Z:function(){return s}});var r=n(72406),i=n(58189),o=n(34621);function s(t){var e=(0,i.Z)();return function(){var n,i=(0,r.Z)(t);if(e){var s=(0,r.Z)(this).constructor;n=Reflect.construct(i,arguments,s)}else n=i.apply(this,arguments);return(0,o.Z)(this,n)}}},98086:function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}n.d(e,{Z:function(){return r}})},95672:function(t,e,n){"use strict";function r(){return r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r.apply(this,arguments)}n.d(e,{Z:function(){return r}})},72406:function(t,e,n){"use strict";function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}n.d(e,{Z:function(){return r}})},82104:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=n(43051);function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&(0,r.Z)(t,e)}},58189:function(t,e,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}n.d(e,{Z:function(){return r}})},40613:function(t,e,n){"use strict";function r(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}n.d(e,{Z:function(){return r}})},20120:function(t,e,n){"use strict";function r(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o=[],_n=!0,s=!1;try{for(n=n.call(t);!(_n=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);_n=!0);}catch(t){s=!0,i=t}finally{try{_n||null==n.return||n.return()}finally{if(s)throw i}}return o}}n.d(e,{Z:function(){return r}})},41722:function(t,e,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(e,{Z:function(){return r}})},56083:function(t,e,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(e,{Z:function(){return r}})},52141:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=n(98086);function i(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?Object(arguments[e]):{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&i.push.apply(i,Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach((function(e){(0,r.Z)(t,e,n[e])}))}return t}},59591:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(98086);function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){(0,r.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}},34621:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(29504),i=n(55200);function o(t,e){if(e&&("object"===(0,r.Z)(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(t)}},43051:function(t,e,n){"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}n.d(e,{Z:function(){return r}})},50572:function(t,e,n){"use strict";n.d(e,{Z:function(){return c}});var r=n(14316),i=n(20120),o=n(33611),s=n(41722);function c(t,e){return(0,r.Z)(t)||(0,i.Z)(t,e)||(0,o.Z)(t,e)||(0,s.Z)()}},59128:function(t,e,n){"use strict";n.d(e,{Z:function(){return c}});var r=n(97024),i=n(40613),o=n(33611),s=n(56083);function c(t){return(0,r.Z)(t)||(0,i.Z)(t)||(0,o.Z)(t)||(0,s.Z)()}},29504:function(t,e,n){"use strict";function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}n.d(e,{Z:function(){return r}})},33611:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=n(8134);function i(t,e){if(t){if("string"==typeof t)return(0,r.Z)(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(t,e):void 0}}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");r.length&&(t=r[r.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";var t=n(78850),e=n(47701),r=n.n(e),i=n(39630),o=n(96483),s=n(17882),c=n(53857);class u{constructor(t){this.block=t,this.amount=null,this.isCustomAmount=!1,this.interval="one-time",this.initNavigation(),this.handleCustomAmount(),this.handleChosenAmount(),this.block.querySelector(".donations__container").classList.add("loaded")}getNavItem(t){return this.block.querySelector(`.donations__nav-item[data-interval="${t}"]`)}resetSelectedAmount(){const t=this.block.querySelector(".donations__amount.is-selected");t&&t.classList.remove("is-selected")}getDonateButton(){return this.block.querySelector(`.donations__donate-button.${{"one-time":"donations__one-time-item","1 month":"donations__monthly-item","1 year":"donations__annual-item"}[this.interval]}`)}toggleDonateButton(t){const e=this.getDonateButton();t?e.classList.remove("is-disabled"):e.classList.add("is-disabled")}updateUrl(){const t=this.getDonateButton(),e=t.getAttribute("href");this.amount?t.setAttribute("href",(0,o.addQueryArgs)(e,{amount:this.amount,...this.isCustomAmount&&{customAmount:!0}})):t.setAttribute("href",(0,o.removeQueryArgs)(e,"amount","customAmount"))}updateAmountFromCustomAmountInput(){const t=this.block.querySelector(".donations__custom-amount .donations__amount-value"),e=this.block.querySelector(".donations__custom-amount"),n=t.innerHTML;if(!n)return this.amount=null,void this.toggleDonateButton(!1);const r=t.dataset.currency,i=(0,s.Vm)(n,r);i&&i>=(0,s.hj)(r)?(e.classList.remove("has-error"),this.amount=i,this.toggleDonateButton(!0)):(e.classList.add("has-error"),this.amount=null,this.toggleDonateButton(!1)),this.updateUrl()}initNavigation(){const t=this.block.querySelectorAll(".donations__nav-item"),e=this.block.querySelector(".donations__tab"),n={"one-time":"is-one-time","1 month":"is-monthly","1 year":"is-annual"},r=t=>{const r=this.interval,i=t.target.dataset.interval;this.interval=i;const o=this.getNavItem(r);o&&o.classList.remove("is-active");const s=this.getNavItem(i);s&&s.classList.add("is-active"),e.classList.remove(n[r]),e.classList.add(n[i]),this.amount=null,this.isCustomAmount=!1,this.resetSelectedAmount(),this.updateUrl(),this.toggleDonateButton(!1)};t.forEach((t=>{t.addEventListener("click",r),t.addEventListener("keydown",r)}));const i=this.getNavItem(this.interval);i&&i.classList.add("is-active"),e.classList.add(n[this.interval])}handleCustomAmount(){const e=this.block.querySelector(".donations__custom-amount .donations__amount-value");if(!e)return;const n=this.block.querySelector(".donations__custom-amount");e.setAttribute("contenteditable",""),e.addEventListener("keydown",(t=>{t.keyCode===i.ENTER&&t.preventDefault()})),e.addEventListener("focus",(()=>{this.resetSelectedAmount(),n.classList.add("is-selected"),this.isCustomAmount||(this.isCustomAmount=!0,this.updateAmountFromCustomAmountInput())})),e.addEventListener("blur",(()=>{this.isCustomAmount&&this.amount&&(e.innerHTML=(0,t.ZP)(this.amount,e.dataset.currency,{symbol:""}))})),e.addEventListener("input",(()=>this.updateAmountFromCustomAmountInput()))}handleChosenAmount(){this.block.querySelectorAll(".donations__amount:not( .donations__custom-amount )").forEach((t=>{t.addEventListener("click",(t=>{this.resetSelectedAmount(),t.target.classList.add("is-selected"),this.amount=t.target.dataset.amount,this.isCustomAmount=!1;const e=this.block.querySelector(".donations__custom-amount");e&&e.classList.remove("has-error"),this.updateUrl();this.getDonateButton().classList.remove("is-disabled")}))})),this.block.querySelectorAll(".donations__donate-button").forEach((t=>t.classList.add("is-disabled")))}}r()((()=>{document.querySelectorAll(".wp-block-jetpack-donations").forEach((t=>new u(t))),(0,c.f)(".donations__donate-button")}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/donations/view.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/donations/view.js.LICENSE.txt
new file mode 100644
index 00000000..e9b10c94
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/donations/view.js.LICENSE.txt
@@ -0,0 +1,22 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/blocks/donations/view.rtl.css b/plugins/jetpack/_inc/blocks/donations/view.rtl.css
new file mode 100644
index 00000000..8f0a2a9a
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/donations/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-right:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-right:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-left:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{margin-right:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.wp-block-jetpack-donations .donations__container:not(.loaded){height:200px;position:relative;width:100%}.wp-block-jetpack-donations .donations__container:not(.loaded) *{display:none}.wp-block-jetpack-donations .donations__container:not(.loaded):before{background-color:#949494;border-radius:100%;content:"";height:18px;opacity:.7;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:18px}.wp-block-jetpack-donations .donations__container:not(.loaded):after{animation:spinner 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;margin-right:-6px;margin-top:-6px;position:absolute;right:50%;top:50%;transform-origin:6px 6px;width:4px}.wp-block-jetpack-donations .donations__tab.is-annual .donations__monthly-item,.wp-block-jetpack-donations .donations__tab.is-annual .donations__one-time-item,.wp-block-jetpack-donations .donations__tab.is-monthly .donations__annual-item,.wp-block-jetpack-donations .donations__tab.is-monthly .donations__one-time-item,.wp-block-jetpack-donations .donations__tab.is-one-time .donations__annual-item,.wp-block-jetpack-donations .donations__tab.is-one-time .donations__monthly-item{display:none}.wp-block-jetpack-donations .donations__amount{cursor:pointer}.wp-block-jetpack-donations .donations__amount.is-selected{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount{cursor:text}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;text-align:right;white-space:pre-wrap}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value:empty:after{color:#ccc;content:attr(data-empty-text)}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value:focus{outline:none}.wp-block-jetpack-donations .donations__donate-button.is-disabled{opacity:.2;pointer-events:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.css b/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.css
new file mode 100644
index 00000000..41203868
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.css
@@ -0,0 +1 @@
+.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){-moz-box-shadow:0 0 2px rgba(0,0,0,.1);-webkit-box-shadow:0 0 2px rgba(0,0,0,.1);box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl button::-moz-focus-inner{border:0;padding:0}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{-webkit-animation:mapboxgl-spin 2s linear infinite;-moz-animation:mapboxgl-spin 2s infinite linear;-o-animation:mapboxgl-spin 2s infinite linear;-ms-animation:mapboxgl-spin 2s infinite linear;animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 005.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 009 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 003.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0011 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 110 7 3.5 3.5 0 110-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}}@-webkit-keyframes mapboxgl-spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@-moz-keyframes mapboxgl-spin{0%{-moz-transform:rotate(0deg)}to{-moz-transform:rotate(1turn)}}@-o-keyframes mapboxgl-spin{0%{-o-transform:rotate(0deg)}to{-o-transform:rotate(1turn)}}@-ms-keyframes mapboxgl-spin{0%{-ms-transform:rotate(0deg)}to{-ms-transform:rotate(1turn)}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1012 0 6 6 0 10-12 0m5-3a1 1 0 102 0 1 1 0 10-2 0m0 3a1 1 0 112 0v3a1 1 0 11-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:-webkit-flex;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{-webkit-flex-direction:column;flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{-webkit-flex-direction:column-reverse;flex-direction:column-reverse}.mapboxgl-popup-anchor-left{-webkit-flex-direction:row;flex-direction:row}.mapboxgl-popup-anchor-right{-webkit-flex-direction:row-reverse;flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{-webkit-align-self:flex-start;align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{-webkit-align-self:flex-end;align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{-webkit-align-self:center;align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;-webkit-animation:mapboxgl-user-location-dot-pulse 2s infinite;-moz-animation:mapboxgl-user-location-dot-pulse 2s infinite;-ms-animation:mapboxgl-user-location-dot-pulse 2s infinite;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}@-webkit-keyframes mapboxgl-user-location-dot-pulse{0%{-webkit-transform:scale(1);opacity:1}70%{-webkit-transform:scale(3);opacity:0}to{-webkit-transform:scale(1);opacity:0}}@-ms-keyframes mapboxgl-user-location-dot-pulse{0%{-ms-transform:scale(1);opacity:1}70%{-ms-transform:scale(3);opacity:0}to{-ms-transform:scale(1);opacity:0}}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.js b/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.js
new file mode 100644
index 00000000..b1f4bf35
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-assets/mapbox-gl-1.13.0.js
@@ -0,0 +1,42 @@
+/* Mapbox GL JS is licensed under the 3-Clause BSD License. Full text of license: https://github.com/mapbox/mapbox-gl-js/blob/v1.13.0/LICENSE.txt */
+(function (global, factory) {
+typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+typeof define === 'function' && define.amd ? define(factory) :
+(global = global || self, global.mapboxgl = factory());
+}(this, (function () { 'use strict';
+
+/* eslint-disable */
+
+var shared, worker, mapboxgl;
+// define gets called three times: one for each chunk. we rely on the order
+// they're imported to know which is which
+function define(_, chunk) {
+if (!shared) {
+ shared = chunk;
+} else if (!worker) {
+ worker = chunk;
+} else {
+ var workerBundleString = 'var sharedChunk = {}; (' + shared + ')(sharedChunk); (' + worker + ')(sharedChunk);'
+
+ var sharedChunk = {};
+ shared(sharedChunk);
+ mapboxgl = chunk(sharedChunk);
+ if (typeof window !== 'undefined') {
+ mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: 'text/javascript' }));
+ }
+}
+}
+
+
+define(["exports"],(function(t){"use strict";function e(t,e){return t(e={exports:{}},e.exports),e.exports}var r=n;function n(t,e,r,n){this.cx=3*t,this.bx=3*(r-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*e,this.by=3*(n-e)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=r,this.p2y=n;}n.prototype.sampleCurveX=function(t){return ((this.ax*t+this.bx)*t+this.cx)*t},n.prototype.sampleCurveY=function(t){return ((this.ay*t+this.by)*t+this.cy)*t},n.prototype.sampleCurveDerivativeX=function(t){return (3*this.ax*t+2*this.bx)*t+this.cx},n.prototype.solveCurveX=function(t,e){var r,n,i,a,o;for(void 0===e&&(e=1e-6),i=t,o=0;o<8;o++){if(a=this.sampleCurveX(i)-t,Math.abs(a)<e)return i;var s=this.sampleCurveDerivativeX(i);if(Math.abs(s)<1e-6)break;i-=a/s;}if((i=t)<(r=0))return r;if(i>(n=1))return n;for(;r<n;){if(a=this.sampleCurveX(i),Math.abs(a-t)<e)return i;t>a?r=i:n=i,i=.5*(n-r)+r;}return i},n.prototype.solve=function(t,e){return this.sampleCurveY(this.solveCurveX(t,e))};var i=a;function a(t,e){this.x=t,this.y=e;}a.prototype={clone:function(){return new a(this.x,this.y)},add:function(t){return this.clone()._add(t)},sub:function(t){return this.clone()._sub(t)},multByPoint:function(t){return this.clone()._multByPoint(t)},divByPoint:function(t){return this.clone()._divByPoint(t)},mult:function(t){return this.clone()._mult(t)},div:function(t){return this.clone()._div(t)},rotate:function(t){return this.clone()._rotate(t)},rotateAround:function(t,e){return this.clone()._rotateAround(t,e)},matMult:function(t){return this.clone()._matMult(t)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var e=t.x-this.x,r=t.y-this.y;return e*e+r*r},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)},_matMult:function(t){var e=t[2]*this.x+t[3]*this.y;return this.x=t[0]*this.x+t[1]*this.y,this.y=e,this},_add:function(t){return this.x+=t.x,this.y+=t.y,this},_sub:function(t){return this.x-=t.x,this.y-=t.y,this},_mult:function(t){return this.x*=t,this.y*=t,this},_div:function(t){return this.x/=t,this.y/=t,this},_multByPoint:function(t){return this.x*=t.x,this.y*=t.y,this},_divByPoint:function(t){return this.x/=t.x,this.y/=t.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var t=this.y;return this.y=this.x,this.x=-t,this},_rotate:function(t){var e=Math.cos(t),r=Math.sin(t),n=r*this.x+e*this.y;return this.x=e*this.x-r*this.y,this.y=n,this},_rotateAround:function(t,e){var r=Math.cos(t),n=Math.sin(t),i=e.y+n*(this.x-e.x)+r*(this.y-e.y);return this.x=e.x+r*(this.x-e.x)-n*(this.y-e.y),this.y=i,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},a.convert=function(t){return t instanceof a?t:Array.isArray(t)?new a(t[0],t[1]):t};var o="undefined"!=typeof self?self:{},s=Math.pow(2,53)-1;function u(t,e,n,i){var a=new r(t,e,n,i);return function(t){return a.solve(t)}}var l=u(.25,.1,.25,1);function p(t,e,r){return Math.min(r,Math.max(e,t))}function c(t,e,r){var n=r-e,i=((t-e)%n+n)%n+e;return i===e?r:i}function h(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o];}return t}var f=1;function y(){return f++}function d(){return function t(e){return e?(e^16*Math.random()>>e/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,t)}()}function m(t){return !!t&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(t)}function v(t,e){t.forEach((function(t){e[t]&&(e[t]=e[t].bind(e));}));}function g(t,e){return -1!==t.indexOf(e,t.length-e.length)}function x(t,e,r){var n={};for(var i in t)n[i]=e.call(r||this,t[i],i,t);return n}function b(t,e,r){var n={};for(var i in t)e.call(r||this,t[i],i,t)&&(n[i]=t[i]);return n}function w(t){return Array.isArray(t)?t.map(w):"object"==typeof t&&t?x(t,w):t}var _={};function A(t){_[t]||("undefined"!=typeof console&&console.warn(t),_[t]=!0);}function S(t,e,r){return (r.y-t.y)*(e.x-t.x)>(e.y-t.y)*(r.x-t.x)}function k(t){for(var e=0,r=0,n=t.length,i=n-1,a=void 0,o=void 0;r<n;i=r++)e+=((o=t[i]).x-(a=t[r]).x)*(a.y+o.y);return e}function I(){return "undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function z(t){var e={};if(t.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(t,r,n,i){var a=n||i;return e[r]=!a||a.toLowerCase(),""})),e["max-age"]){var r=parseInt(e["max-age"],10);isNaN(r)?delete e["max-age"]:e["max-age"]=r;}return e}var C=null;function E(t){if(null==C){var e=t.navigator?t.navigator.userAgent:null;C=!!t.safari||!(!e||!(/\b(iPad|iPhone|iPod)\b/.test(e)||e.match("Safari")&&!e.match("Chrome")));}return C}function P(t){try{var e=o[t];return e.setItem("_mapbox_test_",1),e.removeItem("_mapbox_test_"),!0}catch(t){return !1}}var M,B,T,V,F=o.performance&&o.performance.now?o.performance.now.bind(o.performance):Date.now.bind(Date),D=o.requestAnimationFrame||o.mozRequestAnimationFrame||o.webkitRequestAnimationFrame||o.msRequestAnimationFrame,L=o.cancelAnimationFrame||o.mozCancelAnimationFrame||o.webkitCancelAnimationFrame||o.msCancelAnimationFrame,O={now:F,frame:function(t){var e=D(t);return {cancel:function(){return L(e)}}},getImageData:function(t,e){void 0===e&&(e=0);var r=o.document.createElement("canvas"),n=r.getContext("2d");if(!n)throw new Error("failed to create canvas 2d context");return r.width=t.width,r.height=t.height,n.drawImage(t,0,0,t.width,t.height),n.getImageData(-e,-e,t.width+2*e,t.height+2*e)},resolveURL:function(t){return M||(M=o.document.createElement("a")),M.href=t,M.href},hardwareConcurrency:o.navigator&&o.navigator.hardwareConcurrency||4,get devicePixelRatio(){return o.devicePixelRatio},get prefersReducedMotion(){return !!o.matchMedia&&(null==B&&(B=o.matchMedia("(prefers-reduced-motion: reduce)")),B.matches)}},R={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?0===this.API_URL.indexOf("https://api.mapbox.cn")?"https://events.mapbox.cn/events/v2":0===this.API_URL.indexOf("https://api.mapbox.com")?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},U={supported:!1,testSupport:function(t){!j&&V&&(q?N(t):T=t);}},j=!1,q=!1;function N(t){var e=t.createTexture();t.bindTexture(t.TEXTURE_2D,e);try{if(t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,V),t.isContextLost())return;U.supported=!0;}catch(t){}t.deleteTexture(e),j=!0;}o.document&&((V=o.document.createElement("img")).onload=function(){T&&N(T),T=null,q=!0;},V.onerror=function(){j=!0,T=null;},V.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var K="01",G=function(t,e){this._transformRequestFn=t,this._customAccessToken=e,this._createSkuToken();};function Z(t){return 0===t.indexOf("mapbox:")}G.prototype._createSkuToken=function(){var t=function(){for(var t="",e=0;e<10;e++)t+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return {token:["1",K,t].join(""),tokenExpiresAt:Date.now()+432e5}}();this._skuToken=t.token,this._skuTokenExpiresAt=t.tokenExpiresAt;},G.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},G.prototype.transformRequest=function(t,e){return this._transformRequestFn&&this._transformRequestFn(t,e)||{url:t}},G.prototype.normalizeStyleURL=function(t,e){if(!Z(t))return t;var r=Y(t);return r.path="/styles/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},G.prototype.normalizeGlyphsURL=function(t,e){if(!Z(t))return t;var r=Y(t);return r.path="/fonts/v1"+r.path,this._makeAPIURL(r,this._customAccessToken||e)},G.prototype.normalizeSourceURL=function(t,e){if(!Z(t))return t;var r=Y(t);return r.path="/v4/"+r.authority+".json",r.params.push("secure"),this._makeAPIURL(r,this._customAccessToken||e)},G.prototype.normalizeSpriteURL=function(t,e,r,n){var i=Y(t);return Z(t)?(i.path="/styles/v1"+i.path+"/sprite"+e+r,this._makeAPIURL(i,this._customAccessToken||n)):(i.path+=""+e+r,$(i))},G.prototype.normalizeTileURL=function(t,e){if(this._isSkuTokenExpired()&&this._createSkuToken(),t&&!Z(t))return t;var r=Y(t);r.path=r.path.replace(/(\.(png|jpg)\d*)(?=$)/,(O.devicePixelRatio>=2||512===e?"@2x":"")+(U.supported?".webp":"$1")),r.path=r.path.replace(/^.+\/v4\//,"/"),r.path="/v4"+r.path;var n=this._customAccessToken||function(t){for(var e=0,r=t;e<r.length;e+=1){var n=r[e].match(/^access_token=(.*)$/);if(n)return n[1]}return null}(r.params)||R.ACCESS_TOKEN;return R.REQUIRE_ACCESS_TOKEN&&n&&this._skuToken&&r.params.push("sku="+this._skuToken),this._makeAPIURL(r,n)},G.prototype.canonicalizeTileURL=function(t,e){var r=Y(t);if(!r.path.match(/(^\/v4\/)/)||!r.path.match(/\.[\w]+$/))return t;var n="mapbox://tiles/";n+=r.path.replace("/v4/","");var i=r.params;return e&&(i=i.filter((function(t){return !t.match(/^access_token=/)}))),i.length&&(n+="?"+i.join("&")),n},G.prototype.canonicalizeTileset=function(t,e){for(var r=!!e&&Z(e),n=[],i=0,a=t.tiles||[];i<a.length;i+=1){var o=a[i];J(o)?n.push(this.canonicalizeTileURL(o,r)):n.push(o);}return n},G.prototype._makeAPIURL=function(t,e){var r="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",n=Y(R.API_URL);if(t.protocol=n.protocol,t.authority=n.authority,"http"===t.protocol){var i=t.params.indexOf("secure");i>=0&&t.params.splice(i,1);}if("/"!==n.path&&(t.path=""+n.path+t.path),!R.REQUIRE_ACCESS_TOKEN)return $(t);if(!(e=e||R.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+r);if("s"===e[0])throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+r);return t.params=t.params.filter((function(t){return -1===t.indexOf("access_token")})),t.params.push("access_token="+e),$(t)};var X=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function J(t){return X.test(t)}var H=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Y(t){var e=t.match(H);if(!e)throw new Error("Unable to parse URL object");return {protocol:e[1],authority:e[2],path:e[3]||"/",params:e[4]?e[4].split("&"):[]}}function $(t){var e=t.params.length?"?"+t.params.join("&"):"";return t.protocol+"://"+t.authority+t.path+e}function W(t){if(!t)return null;var e=t.split(".");if(!e||3!==e.length)return null;try{return JSON.parse(decodeURIComponent(o.atob(e[1]).split("").map((function(t){return "%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)})).join("")))}catch(t){return null}}var Q=function(t){this.type=t,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null;};Q.prototype.getStorageKey=function(t){var e,r=W(R.ACCESS_TOKEN);return e=r&&r.u?o.btoa(encodeURIComponent(r.u).replace(/%([0-9A-F]{2})/g,(function(t,e){return String.fromCharCode(Number("0x"+e))}))):R.ACCESS_TOKEN||"",t?"mapbox.eventData."+t+":"+e:"mapbox.eventData:"+e},Q.prototype.fetchEventData=function(){var t=P("localStorage"),e=this.getStorageKey(),r=this.getStorageKey("uuid");if(t)try{var n=o.localStorage.getItem(e);n&&(this.eventData=JSON.parse(n));var i=o.localStorage.getItem(r);i&&(this.anonId=i);}catch(t){A("Unable to read from LocalStorage");}},Q.prototype.saveEventData=function(){var t=P("localStorage"),e=this.getStorageKey(),r=this.getStorageKey("uuid");if(t)try{o.localStorage.setItem(r,this.anonId),Object.keys(this.eventData).length>=1&&o.localStorage.setItem(e,JSON.stringify(this.eventData));}catch(t){A("Unable to write to LocalStorage");}},Q.prototype.processRequests=function(t){},Q.prototype.postEvent=function(t,e,r,n){var i=this;if(R.EVENTS_URL){var a=Y(R.EVENTS_URL);a.params.push("access_token="+(n||R.ACCESS_TOKEN||""));var o={event:this.type,created:new Date(t).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.13.0",skuId:K,userId:this.anonId},s=e?h(o,e):o,u={url:$(a),headers:{"Content-Type":"text/plain"},body:JSON.stringify([s])};this.pendingRequest=wt(u,(function(t){i.pendingRequest=null,r(t),i.saveEventData(),i.processRequests(n);}));}},Q.prototype.queueRequest=function(t,e){this.queue.push(t),this.processRequests(e);};var tt,et,rt=function(t){function e(){t.call(this,"map.load"),this.success={},this.skuToken="";}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postMapLoadEvent=function(t,e,r,n){this.skuToken=r,(R.EVENTS_URL&&n||R.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return Z(t)||J(t)})))&&this.queueRequest({id:e,timestamp:Date.now()},n);},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){var r=this.queue.shift(),n=r.id,i=r.timestamp;n&&this.success[n]||(this.anonId||this.fetchEventData(),m(this.anonId)||(this.anonId=d()),this.postEvent(i,{skuToken:this.skuToken},(function(t){t||n&&(e.success[n]=!0);}),t));}},e}(Q),nt=new(function(t){function e(e){t.call(this,"appUserTurnstile"),this._customAccessToken=e;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.postTurnstileEvent=function(t,e){R.EVENTS_URL&&R.ACCESS_TOKEN&&Array.isArray(t)&&t.some((function(t){return Z(t)||J(t)}))&&this.queueRequest(Date.now(),e);},e.prototype.processRequests=function(t){var e=this;if(!this.pendingRequest&&0!==this.queue.length){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var r=W(R.ACCESS_TOKEN),n=r?r.u:R.ACCESS_TOKEN,i=n!==this.eventData.tokenU;m(this.anonId)||(this.anonId=d(),i=!0);var a=this.queue.shift();if(this.eventData.lastSuccess){var o=new Date(this.eventData.lastSuccess),s=new Date(a),u=(a-this.eventData.lastSuccess)/864e5;i=i||u>=1||u<-1||o.getDate()!==s.getDate();}else i=!0;if(!i)return this.processRequests();this.postEvent(a,{"enabled.telemetry":!1},(function(t){t||(e.eventData.lastSuccess=a,e.eventData.tokenU=n);}),t);}},e}(Q)),it=nt.postTurnstileEvent.bind(nt),at=new rt,ot=at.postMapLoadEvent.bind(at),st=500,ut=50;function lt(){o.caches&&!tt&&(tt=o.caches.open("mapbox-tiles"));}function pt(t){var e=t.indexOf("?");return e<0?t:t.slice(0,e)}var ct,ht=1/0;function ft(){return null==ct&&(ct=o.OffscreenCanvas&&new o.OffscreenCanvas(1,1).getContext("2d")&&"function"==typeof o.createImageBitmap),ct}var yt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};"function"==typeof Object.freeze&&Object.freeze(yt);var dt=function(t){function e(e,r,n){401===r&&J(n)&&(e+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),t.call(this,e),this.status=r,this.url=n,this.name=this.constructor.name,this.message=e;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},e}(Error),mt=I()?function(){return self.worker&&self.worker.referrer}:function(){return ("blob:"===o.location.protocol?o.parent:o).location.href};var vt,gt,xt=function(t,e){if(!(/^file:/.test(r=t.url)||/^file:/.test(mt())&&!/^\w+:/.test(r))){if(o.fetch&&o.Request&&o.AbortController&&o.Request.prototype.hasOwnProperty("signal"))return function(t,e){var r,n=new o.AbortController,i=new o.Request(t.url,{method:t.method||"GET",body:t.body,credentials:t.credentials,headers:t.headers,referrer:mt(),signal:n.signal}),a=!1,s=!1,u=(r=i.url).indexOf("sku=")>0&&J(r);"json"===t.type&&i.headers.set("Accept","application/json");var l=function(r,n,a){if(!s){if(r&&"SecurityError"!==r.message&&A(r),n&&a)return p(n);var l=Date.now();o.fetch(i).then((function(r){if(r.ok){var n=u?r.clone():null;return p(r,n,l)}return e(new dt(r.statusText,r.status,t.url))})).catch((function(t){20!==t.code&&e(new Error(t.message));}));}},p=function(r,n,u){("arrayBuffer"===t.type?r.arrayBuffer():"json"===t.type?r.json():r.text()).then((function(t){s||(n&&u&&function(t,e,r){if(lt(),tt){var n={status:e.status,statusText:e.statusText,headers:new o.Headers};e.headers.forEach((function(t,e){return n.headers.set(e,t)}));var i=z(e.headers.get("Cache-Control")||"");i["no-store"]||(i["max-age"]&&n.headers.set("Expires",new Date(r+1e3*i["max-age"]).toUTCString()),new Date(n.headers.get("Expires")).getTime()-r<42e4||function(t,e){if(void 0===et)try{new Response(new ReadableStream),et=!0;}catch(t){et=!1;}et?e(t.body):t.blob().then(e);}(e,(function(e){var r=new o.Response(e,n);lt(),tt&&tt.then((function(e){return e.put(pt(t.url),r)})).catch((function(t){return A(t.message)}));})));}}(i,n,u),a=!0,e(null,t,r.headers.get("Cache-Control"),r.headers.get("Expires")));})).catch((function(t){s||e(new Error(t.message));}));};return u?function(t,e){if(lt(),!tt)return e(null);var r=pt(t.url);tt.then((function(t){t.match(r).then((function(n){var i=function(t){if(!t)return !1;var e=new Date(t.headers.get("Expires")||0),r=z(t.headers.get("Cache-Control")||"");return e>Date.now()&&!r["no-cache"]}(n);t.delete(r),i&&t.put(r,n.clone()),e(null,n,i);})).catch(e);})).catch(e);}(i,l):l(null,null),{cancel:function(){s=!0,a||n.abort();}}}(t,e);if(I()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",t,e,void 0,!0)}var r;return function(t,e){var r=new o.XMLHttpRequest;for(var n in r.open(t.method||"GET",t.url,!0),"arrayBuffer"===t.type&&(r.responseType="arraybuffer"),t.headers)r.setRequestHeader(n,t.headers[n]);return "json"===t.type&&(r.responseType="text",r.setRequestHeader("Accept","application/json")),r.withCredentials="include"===t.credentials,r.onerror=function(){e(new Error(r.statusText));},r.onload=function(){if((r.status>=200&&r.status<300||0===r.status)&&null!==r.response){var n=r.response;if("json"===t.type)try{n=JSON.parse(r.response);}catch(t){return e(t)}e(null,n,r.getResponseHeader("Cache-Control"),r.getResponseHeader("Expires"));}else e(new dt(r.statusText,r.status,t.url));},r.send(t.body),{cancel:function(){return r.abort()}}}(t,e)},bt=function(t,e){return xt(h(t,{type:"arrayBuffer"}),e)},wt=function(t,e){return xt(h(t,{method:"POST"}),e)},_t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";vt=[],gt=0;var At=function(t,e){if(U.supported&&(t.headers||(t.headers={}),t.headers.accept="image/webp,*/*"),gt>=R.MAX_PARALLEL_IMAGE_REQUESTS){var r={requestParameters:t,callback:e,cancelled:!1,cancel:function(){this.cancelled=!0;}};return vt.push(r),r}gt++;var n=!1,i=function(){if(!n)for(n=!0,gt--;vt.length&&gt<R.MAX_PARALLEL_IMAGE_REQUESTS;){var t=vt.shift();t.cancelled||(t.cancel=At(t.requestParameters,t.callback).cancel);}},a=bt(t,(function(t,r,n,a){i(),t?e(t):r&&(ft()?function(t,e){var r=new o.Blob([new Uint8Array(t)],{type:"image/png"});o.createImageBitmap(r).then((function(t){e(null,t);})).catch((function(t){e(new Error("Could not load image because of "+t.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));}));}(r,e):function(t,e,r,n){var i=new o.Image,a=o.URL;i.onload=function(){e(null,i),a.revokeObjectURL(i.src),i.onload=null,i.src=_t;},i.onerror=function(){return e(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var s=new o.Blob([new Uint8Array(t)],{type:"image/png"});i.cacheControl=r,i.expires=n,i.src=t.byteLength?a.createObjectURL(s):_t;}(r,e,n,a));}));return {cancel:function(){a.cancel(),i();}}};function St(t,e,r){r[t]&&-1!==r[t].indexOf(e)||(r[t]=r[t]||[],r[t].push(e));}function kt(t,e,r){if(r&&r[t]){var n=r[t].indexOf(e);-1!==n&&r[t].splice(n,1);}}var It=function(t,e){void 0===e&&(e={}),h(this,e),this.type=t;},zt=function(t){function e(e,r){void 0===r&&(r={}),t.call(this,"error",h({error:e},r));}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(It),Ct=function(){};Ct.prototype.on=function(t,e){return this._listeners=this._listeners||{},St(t,e,this._listeners),this},Ct.prototype.off=function(t,e){return kt(t,e,this._listeners),kt(t,e,this._oneTimeListeners),this},Ct.prototype.once=function(t,e){return this._oneTimeListeners=this._oneTimeListeners||{},St(t,e,this._oneTimeListeners),this},Ct.prototype.fire=function(t,e){"string"==typeof t&&(t=new It(t,e||{}));var r=t.type;if(this.listens(r)){t.target=this;for(var n=0,i=this._listeners&&this._listeners[r]?this._listeners[r].slice():[];n<i.length;n+=1)i[n].call(this,t);for(var a=0,o=this._oneTimeListeners&&this._oneTimeListeners[r]?this._oneTimeListeners[r].slice():[];a<o.length;a+=1){var s=o[a];kt(r,s,this._oneTimeListeners),s.call(this,t);}var u=this._eventedParent;u&&(h(t,"function"==typeof this._eventedParentData?this._eventedParentData():this._eventedParentData),u.fire(t));}else t instanceof zt&&console.error(t.error);return this},Ct.prototype.listens=function(t){return this._listeners&&this._listeners[t]&&this._listeners[t].length>0||this._oneTimeListeners&&this._oneTimeListeners[t]&&this._oneTimeListeners[t].length>0||this._eventedParent&&this._eventedParent.listens(t)},Ct.prototype.setEventedParent=function(t,e){return this._eventedParent=t,this._eventedParentData=e,this};var Et={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}},Pt=function(t,e,r,n){this.message=(t?t+": ":"")+r,n&&(this.identifier=n),null!=e&&e.__line__&&(this.line=e.__line__);};function Mt(t){var e=t.value;return e?[new Pt(t.key,e,"constants have been deprecated as of v8")]:[]}function Bt(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];for(var n=0,i=e;n<i.length;n+=1){var a=i[n];for(var o in a)t[o]=a[o];}return t}function Tt(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}function Vt(t){if(Array.isArray(t))return t.map(Vt);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){var e={};for(var r in t)e[r]=Vt(t[r]);return e}return Tt(t)}var Ft=function(t){function e(e,r){t.call(this,r),this.message=r,this.key=e;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(Error),Dt=function(t,e){void 0===e&&(e=[]),this.parent=t,this.bindings={};for(var r=0,n=e;r<n.length;r+=1){var i=n[r];this.bindings[i[0]]=i[1];}};Dt.prototype.concat=function(t){return new Dt(this,t)},Dt.prototype.get=function(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")},Dt.prototype.has=function(t){return !!this.bindings[t]||!!this.parent&&this.parent.has(t)};var Lt={kind:"null"},Ot={kind:"number"},Rt={kind:"string"},Ut={kind:"boolean"},jt={kind:"color"},qt={kind:"object"},Nt={kind:"value"},Kt={kind:"collator"},Gt={kind:"formatted"},Zt={kind:"resolvedImage"};function Xt(t,e){return {kind:"array",itemType:t,N:e}}function Jt(t){if("array"===t.kind){var e=Jt(t.itemType);return "number"==typeof t.N?"array<"+e+", "+t.N+">":"value"===t.itemType.kind?"array":"array<"+e+">"}return t.kind}var Ht=[Lt,Ot,Rt,Ut,jt,Gt,qt,Xt(Nt),Zt];function Yt(t,e){if("error"===e.kind)return null;if("array"===t.kind){if("array"===e.kind&&(0===e.N&&"value"===e.itemType.kind||!Yt(t.itemType,e.itemType))&&("number"!=typeof t.N||t.N===e.N))return null}else {if(t.kind===e.kind)return null;if("value"===t.kind)for(var r=0,n=Ht;r<n.length;r+=1)if(!Yt(n[r],e))return null}return "Expected "+Jt(t)+" but found "+Jt(e)+" instead."}function $t(t,e){return e.some((function(e){return e.kind===t.kind}))}function Wt(t,e){return e.some((function(e){return "null"===e?null===t:"array"===e?Array.isArray(t):"object"===e?t&&!Array.isArray(t)&&"object"==typeof t:e===typeof t}))}var Qt=e((function(t,e){var r={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function n(t){return (t=Math.round(t))<0?0:t>255?255:t}function i(t){return n("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function a(t){return (e="%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))<0?0:e>1?1:e;var e;}function o(t,e,r){return r<0?r+=1:r>1&&(r-=1),6*r<1?t+(e-t)*r*6:2*r<1?e:3*r<2?t+(e-t)*(2/3-r)*6:t}try{e.parseCSSColor=function(t){var e,s=t.replace(/ /g,"").toLowerCase();if(s in r)return r[s].slice();if("#"===s[0])return 4===s.length?(e=parseInt(s.substr(1),16))>=0&&e<=4095?[(3840&e)>>4|(3840&e)>>8,240&e|(240&e)>>4,15&e|(15&e)<<4,1]:null:7===s.length&&(e=parseInt(s.substr(1),16))>=0&&e<=16777215?[(16711680&e)>>16,(65280&e)>>8,255&e,1]:null;var u=s.indexOf("("),l=s.indexOf(")");if(-1!==u&&l+1===s.length){var p=s.substr(0,u),c=s.substr(u+1,l-(u+1)).split(","),h=1;switch(p){case"rgba":if(4!==c.length)return null;h=a(c.pop());case"rgb":return 3!==c.length?null:[i(c[0]),i(c[1]),i(c[2]),h];case"hsla":if(4!==c.length)return null;h=a(c.pop());case"hsl":if(3!==c.length)return null;var f=(parseFloat(c[0])%360+360)%360/360,y=a(c[1]),d=a(c[2]),m=d<=.5?d*(y+1):d+y-d*y,v=2*d-m;return [n(255*o(v,m,f+1/3)),n(255*o(v,m,f)),n(255*o(v,m,f-1/3)),h];default:return null}}return null};}catch(t){}})).parseCSSColor,te=function(t,e,r,n){void 0===n&&(n=1),this.r=t,this.g=e,this.b=r,this.a=n;};te.parse=function(t){if(t){if(t instanceof te)return t;if("string"==typeof t){var e=Qt(t);if(e)return new te(e[0]/255*e[3],e[1]/255*e[3],e[2]/255*e[3],e[3])}}},te.prototype.toString=function(){var t=this.toArray(),e=t[1],r=t[2],n=t[3];return "rgba("+Math.round(t[0])+","+Math.round(e)+","+Math.round(r)+","+n+")"},te.prototype.toArray=function(){var t=this.a;return 0===t?[0,0,0,0]:[255*this.r/t,255*this.g/t,255*this.b/t,t]},te.black=new te(0,0,0,1),te.white=new te(1,1,1,1),te.transparent=new te(0,0,0,0),te.red=new te(1,0,0,1);var ee=function(t,e,r){this.sensitivity=t?e?"variant":"case":e?"accent":"base",this.locale=r,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"});};ee.prototype.compare=function(t,e){return this.collator.compare(t,e)},ee.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var re=function(t,e,r,n,i){this.text=t,this.image=e,this.scale=r,this.fontStack=n,this.textColor=i;},ne=function(t){this.sections=t;};ne.fromString=function(t){return new ne([new re(t,null,null,null,null)])},ne.prototype.isEmpty=function(){return 0===this.sections.length||!this.sections.some((function(t){return 0!==t.text.length||t.image&&0!==t.image.name.length}))},ne.factory=function(t){return t instanceof ne?t:ne.fromString(t)},ne.prototype.toString=function(){return 0===this.sections.length?"":this.sections.map((function(t){return t.text})).join("")},ne.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e<r.length;e+=1){var n=r[e];if(n.image)t.push(["image",n.image.name]);else {t.push(n.text);var i={};n.fontStack&&(i["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(i["font-scale"]=n.scale),n.textColor&&(i["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(i);}}return t};var ie=function(t){this.name=t.name,this.available=t.available;};function ae(t,e,r,n){return "number"==typeof t&&t>=0&&t<=255&&"number"==typeof e&&e>=0&&e<=255&&"number"==typeof r&&r>=0&&r<=255?void 0===n||"number"==typeof n&&n>=0&&n<=1?null:"Invalid rgba value ["+[t,e,r,n].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+("number"==typeof n?[t,e,r,n]:[t,e,r]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function oe(t){if(null===t)return !0;if("string"==typeof t)return !0;if("boolean"==typeof t)return !0;if("number"==typeof t)return !0;if(t instanceof te)return !0;if(t instanceof ee)return !0;if(t instanceof ne)return !0;if(t instanceof ie)return !0;if(Array.isArray(t)){for(var e=0,r=t;e<r.length;e+=1)if(!oe(r[e]))return !1;return !0}if("object"==typeof t){for(var n in t)if(!oe(t[n]))return !1;return !0}return !1}function se(t){if(null===t)return Lt;if("string"==typeof t)return Rt;if("boolean"==typeof t)return Ut;if("number"==typeof t)return Ot;if(t instanceof te)return jt;if(t instanceof ee)return Kt;if(t instanceof ne)return Gt;if(t instanceof ie)return Zt;if(Array.isArray(t)){for(var e,r=t.length,n=0,i=t;n<i.length;n+=1){var a=se(i[n]);if(e){if(e===a)continue;e=Nt;break}e=a;}return Xt(e||Nt,r)}return qt}function ue(t){var e=typeof t;return null===t?"":"string"===e||"number"===e||"boolean"===e?String(t):t instanceof te||t instanceof ne||t instanceof ie?t.toString():JSON.stringify(t)}ie.prototype.toString=function(){return this.name},ie.fromString=function(t){return t?new ie({name:t,available:!1}):null},ie.prototype.serialize=function(){return ["image",this.name]};var le=function(t,e){this.type=t,this.value=e;};le.parse=function(t,e){if(2!==t.length)return e.error("'literal' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(!oe(t[1]))return e.error("invalid value");var r=t[1],n=se(r),i=e.expectedType;return "array"!==n.kind||0!==n.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(n=i),new le(n,r)},le.prototype.evaluate=function(){return this.value},le.prototype.eachChild=function(){},le.prototype.outputDefined=function(){return !0},le.prototype.serialize=function(){return "array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof te?["rgba"].concat(this.value.toArray()):this.value instanceof ne?this.value.serialize():this.value};var pe=function(t){this.name="ExpressionEvaluationError",this.message=t;};pe.prototype.toJSON=function(){return this.message};var ce={string:Rt,number:Ot,boolean:Ut,object:qt},he=function(t,e){this.type=t,this.args=e;};he.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r,n=1,i=t[0];if("array"===i){var a,o;if(t.length>2){var s=t[1];if("string"!=typeof s||!(s in ce)||"object"===s)return e.error('The item type argument of "array" must be one of string, number, boolean',1);a=ce[s],n++;}else a=Nt;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return e.error('The length argument to "array" must be a positive integer literal',2);o=t[2],n++;}r=Xt(a,o);}else r=ce[i];for(var u=[];n<t.length;n++){var l=e.parse(t[n],n,Nt);if(!l)return null;u.push(l);}return new he(r,u)},he.prototype.evaluate=function(t){for(var e=0;e<this.args.length;e++){var r=this.args[e].evaluate(t);if(!Yt(this.type,se(r)))return r;if(e===this.args.length-1)throw new pe("Expected value to be of type "+Jt(this.type)+", but found "+Jt(se(r))+" instead.")}return null},he.prototype.eachChild=function(t){this.args.forEach(t);},he.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},he.prototype.serialize=function(){var t=this.type,e=[t.kind];if("array"===t.kind){var r=t.itemType;if("string"===r.kind||"number"===r.kind||"boolean"===r.kind){e.push(r.kind);var n=t.N;("number"==typeof n||this.args.length>1)&&e.push(n);}}return e.concat(this.args.map((function(t){return t.serialize()})))};var fe=function(t){this.type=Gt,this.sections=t;};fe.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[1];if(!Array.isArray(r)&&"object"==typeof r)return e.error("First argument must be an image or text section.");for(var n=[],i=!1,a=1;a<=t.length-1;++a){var o=t[a];if(i&&"object"==typeof o&&!Array.isArray(o)){i=!1;var s=null;if(o["font-scale"]&&!(s=e.parse(o["font-scale"],1,Ot)))return null;var u=null;if(o["text-font"]&&!(u=e.parse(o["text-font"],1,Xt(Rt))))return null;var l=null;if(o["text-color"]&&!(l=e.parse(o["text-color"],1,jt)))return null;var p=n[n.length-1];p.scale=s,p.font=u,p.textColor=l;}else {var c=e.parse(t[a],1,Nt);if(!c)return null;var h=c.type.kind;if("string"!==h&&"value"!==h&&"null"!==h&&"resolvedImage"!==h)return e.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");i=!0,n.push({content:c,scale:null,font:null,textColor:null});}}return new fe(n)},fe.prototype.evaluate=function(t){return new ne(this.sections.map((function(e){var r=e.content.evaluate(t);return se(r)===Zt?new re("",r,null,null,null):new re(ue(r),null,e.scale?e.scale.evaluate(t):null,e.font?e.font.evaluate(t).join(","):null,e.textColor?e.textColor.evaluate(t):null)})))},fe.prototype.eachChild=function(t){for(var e=0,r=this.sections;e<r.length;e+=1){var n=r[e];t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor);}},fe.prototype.outputDefined=function(){return !1},fe.prototype.serialize=function(){for(var t=["format"],e=0,r=this.sections;e<r.length;e+=1){var n=r[e];t.push(n.content.serialize());var i={};n.scale&&(i["font-scale"]=n.scale.serialize()),n.font&&(i["text-font"]=n.font.serialize()),n.textColor&&(i["text-color"]=n.textColor.serialize()),t.push(i);}return t};var ye=function(t){this.type=Zt,this.input=t;};ye.parse=function(t,e){if(2!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Rt);return r?new ye(r):e.error("No image name provided.")},ye.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=ie.fromString(e);return r&&t.availableImages&&(r.available=t.availableImages.indexOf(e)>-1),r},ye.prototype.eachChild=function(t){t(this.input);},ye.prototype.outputDefined=function(){return !1},ye.prototype.serialize=function(){return ["image",this.input.serialize()]};var de={"to-boolean":Ut,"to-color":jt,"to-number":Ot,"to-string":Rt},me=function(t,e){this.type=t,this.args=e;};me.parse=function(t,e){if(t.length<2)return e.error("Expected at least one argument.");var r=t[0];if(("to-boolean"===r||"to-string"===r)&&2!==t.length)return e.error("Expected one argument.");for(var n=de[r],i=[],a=1;a<t.length;a++){var o=e.parse(t[a],a,Nt);if(!o)return null;i.push(o);}return new me(n,i)},me.prototype.evaluate=function(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){for(var e,r,n=0,i=this.args;n<i.length;n+=1){if(r=null,(e=i[n].evaluate(t))instanceof te)return e;if("string"==typeof e){var a=t.parseColor(e);if(a)return a}else if(Array.isArray(e)&&!(r=e.length<3||e.length>4?"Invalid rbga value "+JSON.stringify(e)+": expected an array containing either three or four numeric values.":ae(e[0],e[1],e[2],e[3])))return new te(e[0]/255,e[1]/255,e[2]/255,e[3])}throw new pe(r||"Could not parse color from value '"+("string"==typeof e?e:String(JSON.stringify(e)))+"'")}if("number"===this.type.kind){for(var o=null,s=0,u=this.args;s<u.length;s+=1){if(null===(o=u[s].evaluate(t)))return 0;var l=Number(o);if(!isNaN(l))return l}throw new pe("Could not convert "+JSON.stringify(o)+" to number.")}return "formatted"===this.type.kind?ne.fromString(ue(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?ie.fromString(ue(this.args[0].evaluate(t))):ue(this.args[0].evaluate(t))},me.prototype.eachChild=function(t){this.args.forEach(t);},me.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},me.prototype.serialize=function(){if("formatted"===this.type.kind)return new fe([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new ye(this.args[0]).serialize();var t=["to-"+this.type.kind];return this.eachChild((function(e){t.push(e.serialize());})),t};var ve=["Unknown","Point","LineString","Polygon"],ge=function(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null;};ge.prototype.id=function(){return this.feature&&"id"in this.feature?this.feature.id:null},ge.prototype.geometryType=function(){return this.feature?"number"==typeof this.feature.type?ve[this.feature.type]:this.feature.type:null},ge.prototype.geometry=function(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null},ge.prototype.canonicalID=function(){return this.canonical},ge.prototype.properties=function(){return this.feature&&this.feature.properties||{}},ge.prototype.parseColor=function(t){var e=this._parseColorCache[t];return e||(e=this._parseColorCache[t]=te.parse(t)),e};var xe=function(t,e,r,n){this.name=t,this.type=e,this._evaluate=r,this.args=n;};xe.prototype.evaluate=function(t){return this._evaluate(t,this.args)},xe.prototype.eachChild=function(t){this.args.forEach(t);},xe.prototype.outputDefined=function(){return !1},xe.prototype.serialize=function(){return [this.name].concat(this.args.map((function(t){return t.serialize()})))},xe.parse=function(t,e){var r,n=t[0],i=xe.definitions[n];if(!i)return e.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0);for(var a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter((function(e){var r=e[0];return !Array.isArray(r)||r.length===t.length-1})),u=null,l=0,p=s;l<p.length;l+=1){var c=p[l],h=c[0],f=c[1];u=new je(e.registry,e.path,null,e.scope);for(var y=[],d=!1,m=1;m<t.length;m++){var v=t[m],g=Array.isArray(h)?h[m-1]:h.type,x=u.parse(v,1+y.length,g);if(!x){d=!0;break}y.push(x);}if(!d)if(Array.isArray(h)&&h.length!==y.length)u.error("Expected "+h.length+" arguments, but found "+y.length+" instead.");else {for(var b=0;b<y.length;b++){var w=Array.isArray(h)?h[b]:h.type,_=y[b];u.concat(b+1).checkSubtype(w,_.type);}if(0===u.errors.length)return new xe(n,a,f,y)}}if(1===s.length)(r=e.errors).push.apply(r,u.errors);else {for(var A=(s.length?s:o).map((function(t){var e;return e=t[0],Array.isArray(e)?"("+e.map(Jt).join(", ")+")":"("+Jt(e.type)+"...)"})).join(" | "),S=[],k=1;k<t.length;k++){var I=e.parse(t[k],1+S.length);if(!I)return null;S.push(Jt(I.type));}e.error("Expected arguments of type "+A+", but found ("+S.join(", ")+") instead.");}return null},xe.register=function(t,e){for(var r in xe.definitions=e,e)t[r]=xe;};var be=function(t,e,r){this.type=Kt,this.locale=r,this.caseSensitive=t,this.diacriticSensitive=e;};function we(t,e){t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[0]),t[3]=Math.max(t[3],e[1]);}function _e(t,e){return !(t[0]<=e[0]||t[2]>=e[2]||t[1]<=e[1]||t[3]>=e[3])}function Ae(t,e){var r=(180+t[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,e.z);return [Math.round(r*i*8192),Math.round(n*i*8192)]}function Se(t,e,r){return e[1]>t[1]!=r[1]>t[1]&&t[0]<(r[0]-e[0])*(t[1]-e[1])/(r[1]-e[1])+e[0]}function ke(t,e){for(var r,n,i,a,o,s,u,l=!1,p=0,c=e.length;p<c;p++)for(var h=e[p],f=0,y=h.length;f<y-1;f++){if((a=(r=t)[0]-(n=h[f])[0])*(u=r[1]-(i=h[f+1])[1])-(s=r[0]-i[0])*(o=r[1]-n[1])==0&&a*s<=0&&o*u<=0)return !1;Se(t,h[f],h[f+1])&&(l=!l);}return l}function Ie(t,e){for(var r=0;r<e.length;r++)if(ke(t,e[r]))return !0;return !1}function ze(t,e,r,n){var i=n[0]-r[0],a=n[1]-r[1],o=(t[0]-r[0])*a-i*(t[1]-r[1]),s=(e[0]-r[0])*a-i*(e[1]-r[1]);return o>0&&s<0||o<0&&s>0}function Ce(t,e,r){for(var n=0,i=r;n<i.length;n+=1)for(var a=i[n],o=0;o<a.length-1;++o)if(0!=(c=[(p=a[o+1])[0]-(l=a[o])[0],p[1]-l[1]])[0]*(h=[(u=e)[0]-(s=t)[0],u[1]-s[1]])[1]-c[1]*h[0]&&ze(s,u,l,p)&&ze(l,p,s,u))return !0;var s,u,l,p,c,h;return !1}function Ee(t,e){for(var r=0;r<t.length;++r)if(!ke(t[r],e))return !1;for(var n=0;n<t.length-1;++n)if(Ce(t[n],t[n+1],e))return !1;return !0}function Pe(t,e){for(var r=0;r<e.length;r++)if(Ee(t,e[r]))return !0;return !1}function Me(t,e,r){for(var n=[],i=0;i<t.length;i++){for(var a=[],o=0;o<t[i].length;o++){var s=Ae(t[i][o],r);we(e,s),a.push(s);}n.push(a);}return n}function Be(t,e,r){for(var n=[],i=0;i<t.length;i++){var a=Me(t[i],e,r);n.push(a);}return n}function Te(t,e,r,n){if(t[0]<r[0]||t[0]>r[2]){var i=.5*n,a=t[0]-r[0]>i?-n:r[0]-t[0]>i?n:0;0===a&&(a=t[0]-r[2]>i?-n:r[2]-t[0]>i?n:0),t[0]+=a;}we(e,t);}function Ve(t,e,r,n){for(var i=8192*Math.pow(2,n.z),a=[8192*n.x,8192*n.y],o=[],s=0,u=t;s<u.length;s+=1)for(var l=0,p=u[s];l<p.length;l+=1){var c=p[l],h=[c.x+a[0],c.y+a[1]];Te(h,e,r,i),o.push(h);}return o}function Fe(t,e,r,n){for(var i,a=8192*Math.pow(2,n.z),o=[8192*n.x,8192*n.y],s=[],u=0,l=t;u<l.length;u+=1){for(var p=[],c=0,h=l[u];c<h.length;c+=1){var f=h[c],y=[f.x+o[0],f.y+o[1]];we(e,y),p.push(y);}s.push(p);}if(e[2]-e[0]<=a/2){(i=e)[0]=i[1]=1/0,i[2]=i[3]=-1/0;for(var d=0,m=s;d<m.length;d+=1)for(var v=0,g=m[d];v<g.length;v+=1)Te(g[v],e,r,a);}return s}be.parse=function(t,e){if(2!==t.length)return e.error("Expected one argument.");var r=t[1];if("object"!=typeof r||Array.isArray(r))return e.error("Collator options argument must be an object.");var n=e.parse(void 0!==r["case-sensitive"]&&r["case-sensitive"],1,Ut);if(!n)return null;var i=e.parse(void 0!==r["diacritic-sensitive"]&&r["diacritic-sensitive"],1,Ut);if(!i)return null;var a=null;return r.locale&&!(a=e.parse(r.locale,1,Rt))?null:new be(n,i,a)},be.prototype.evaluate=function(t){return new ee(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)},be.prototype.eachChild=function(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale);},be.prototype.outputDefined=function(){return !1},be.prototype.serialize=function(){var t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]};var De=function(t,e){this.type=Ut,this.geojson=t,this.geometries=e;};function Le(t){if(t instanceof xe){if("get"===t.name&&1===t.args.length)return !1;if("feature-state"===t.name)return !1;if("has"===t.name&&1===t.args.length)return !1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return !1;if(/^filter-/.test(t.name))return !1}if(t instanceof De)return !1;var e=!0;return t.eachChild((function(t){e&&!Le(t)&&(e=!1);})),e}function Oe(t){if(t instanceof xe&&"feature-state"===t.name)return !1;var e=!0;return t.eachChild((function(t){e&&!Oe(t)&&(e=!1);})),e}function Re(t,e){if(t instanceof xe&&e.indexOf(t.name)>=0)return !1;var r=!0;return t.eachChild((function(t){r&&!Re(t,e)&&(r=!1);})),r}De.parse=function(t,e){if(2!==t.length)return e.error("'within' expression requires exactly one argument, but found "+(t.length-1)+" instead.");if(oe(t[1])){var r=t[1];if("FeatureCollection"===r.type)for(var n=0;n<r.features.length;++n){var i=r.features[n].geometry.type;if("Polygon"===i||"MultiPolygon"===i)return new De(r,r.features[n].geometry)}else if("Feature"===r.type){var a=r.geometry.type;if("Polygon"===a||"MultiPolygon"===a)return new De(r,r.geometry)}else if("Polygon"===r.type||"MultiPolygon"===r.type)return new De(r,r)}return e.error("'within' expression requires valid geojson object that contains polygon geometry type.")},De.prototype.evaluate=function(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,e){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){var a=Me(e.coordinates,n,i),o=Ve(t.geometry(),r,n,i);if(!_e(r,n))return !1;for(var s=0,u=o;s<u.length;s+=1)if(!ke(u[s],a))return !1}if("MultiPolygon"===e.type){var l=Be(e.coordinates,n,i),p=Ve(t.geometry(),r,n,i);if(!_e(r,n))return !1;for(var c=0,h=p;c<h.length;c+=1)if(!Ie(h[c],l))return !1}return !0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,e){var r=[1/0,1/0,-1/0,-1/0],n=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if("Polygon"===e.type){var a=Me(e.coordinates,n,i),o=Fe(t.geometry(),r,n,i);if(!_e(r,n))return !1;for(var s=0,u=o;s<u.length;s+=1)if(!Ee(u[s],a))return !1}if("MultiPolygon"===e.type){var l=Be(e.coordinates,n,i),p=Fe(t.geometry(),r,n,i);if(!_e(r,n))return !1;for(var c=0,h=p;c<h.length;c+=1)if(!Pe(h[c],l))return !1}return !0}(t,this.geometries)}return !1},De.prototype.eachChild=function(){},De.prototype.outputDefined=function(){return !0},De.prototype.serialize=function(){return ["within",this.geojson]};var Ue=function(t,e){this.type=e.type,this.name=t,this.boundExpression=e;};Ue.parse=function(t,e){if(2!==t.length||"string"!=typeof t[1])return e.error("'var' expression requires exactly one string literal argument.");var r=t[1];return e.scope.has(r)?new Ue(r,e.scope.get(r)):e.error('Unknown variable "'+r+'". Make sure "'+r+'" has been bound in an enclosing "let" expression before using it.',1)},Ue.prototype.evaluate=function(t){return this.boundExpression.evaluate(t)},Ue.prototype.eachChild=function(){},Ue.prototype.outputDefined=function(){return !1},Ue.prototype.serialize=function(){return ["var",this.name]};var je=function(t,e,r,n,i){void 0===e&&(e=[]),void 0===n&&(n=new Dt),void 0===i&&(i=[]),this.registry=t,this.path=e,this.key=e.map((function(t){return "["+t+"]"})).join(""),this.scope=n,this.errors=i,this.expectedType=r;};function qe(t,e){for(var r,n=t.length-1,i=0,a=n,o=0;i<=a;)if((r=t[o=Math.floor((i+a)/2)])<=e){if(o===n||e<t[o+1])return o;i=o+1;}else {if(!(r>e))throw new pe("Input is not a number.");a=o-1;}return 0}je.prototype.parse=function(t,e,r,n,i){return void 0===i&&(i={}),e?this.concat(e,r,n)._parse(t,i):this._parse(t,i)},je.prototype._parse=function(t,e){function r(t,e,r){return "assert"===r?new he(e,[t]):"coerce"===r?new me(e,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var n=t[0];if("string"!=typeof n)return this.error("Expression name must be a string, but found "+typeof n+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var i=this.registry[n];if(i){var a=i.parse(t,this);if(!a)return null;if(this.expectedType){var o=this.expectedType,s=a.type;if("string"!==o.kind&&"number"!==o.kind&&"boolean"!==o.kind&&"object"!==o.kind&&"array"!==o.kind||"value"!==s.kind)if("color"!==o.kind&&"formatted"!==o.kind&&"resolvedImage"!==o.kind||"value"!==s.kind&&"string"!==s.kind){if(this.checkSubtype(o,s))return null}else a=r(a,o,e.typeAnnotation||"coerce");else a=r(a,o,e.typeAnnotation||"assert");}if(!(a instanceof le)&&"resolvedImage"!==a.type.kind&&function t(e){if(e instanceof Ue)return t(e.boundExpression);if(e instanceof xe&&"error"===e.name)return !1;if(e instanceof be)return !1;if(e instanceof De)return !1;var r=e instanceof me||e instanceof he,n=!0;return e.eachChild((function(e){n=r?n&&t(e):n&&e instanceof le;})),!!n&&Le(e)&&Re(e,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}(a)){var u=new ge;try{a=new le(a.type,a.evaluate(u));}catch(t){return this.error(t.message),null}}return a}return this.error('Unknown expression "'+n+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(void 0===t?"'undefined' value invalid. Use null instead.":"object"==typeof t?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof t+" instead.")},je.prototype.concat=function(t,e,r){var n="number"==typeof t?this.path.concat(t):this.path,i=r?this.scope.concat(r):this.scope;return new je(this.registry,n,e||null,i,this.errors)},je.prototype.error=function(t){for(var e=[],r=arguments.length-1;r-- >0;)e[r]=arguments[r+1];var n=""+this.key+e.map((function(t){return "["+t+"]"})).join("");this.errors.push(new Ft(n,t));},je.prototype.checkSubtype=function(t,e){var r=Yt(t,e);return r&&this.error(r),r};var Ne=function(t,e,r){this.type=t,this.input=e,this.labels=[],this.outputs=[];for(var n=0,i=r;n<i.length;n+=1){var a=i[n],o=a[1];this.labels.push(a[0]),this.outputs.push(o);}};function Ke(t,e,r){return t*(1-r)+e*r}Ne.parse=function(t,e){if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");var r=e.parse(t[1],1,Ot);if(!r)return null;var n=[],i=null;e.expectedType&&"value"!==e.expectedType.kind&&(i=e.expectedType);for(var a=1;a<t.length;a+=2){var o=1===a?-1/0:t[a],s=t[a+1],u=a,l=a+1;if("number"!=typeof o)return e.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',u);if(n.length&&n[n.length-1][0]>=o)return e.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',u);var p=e.parse(s,l,i);if(!p)return null;i=i||p.type,n.push([o,p]);}return new Ne(i,r,n)},Ne.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;return n>=e[i-1]?r[i-1].evaluate(t):r[qe(e,n)].evaluate(t)},Ne.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e]);},Ne.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))},Ne.prototype.serialize=function(){for(var t=["step",this.input.serialize()],e=0;e<this.labels.length;e++)e>0&&t.push(this.labels[e]),t.push(this.outputs[e].serialize());return t};var Ge=Object.freeze({__proto__:null,number:Ke,color:function(t,e,r){return new te(Ke(t.r,e.r,r),Ke(t.g,e.g,r),Ke(t.b,e.b,r),Ke(t.a,e.a,r))},array:function(t,e,r){return t.map((function(t,n){return Ke(t,e[n],r)}))}}),Ze=6/29*3*(6/29),Xe=Math.PI/180,Je=180/Math.PI;function He(t){return t>.008856451679035631?Math.pow(t,1/3):t/Ze+4/29}function Ye(t){return t>6/29?t*t*t:Ze*(t-4/29)}function $e(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function We(t){return (t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Qe(t){var e=We(t.r),r=We(t.g),n=We(t.b),i=He((.4124564*e+.3575761*r+.1804375*n)/.95047),a=He((.2126729*e+.7151522*r+.072175*n)/1);return {l:116*a-16,a:500*(i-a),b:200*(a-He((.0193339*e+.119192*r+.9503041*n)/1.08883)),alpha:t.a}}function tr(t){var e=(t.l+16)/116,r=isNaN(t.a)?e:e+t.a/500,n=isNaN(t.b)?e:e-t.b/200;return e=1*Ye(e),r=.95047*Ye(r),n=1.08883*Ye(n),new te($e(3.2404542*r-1.5371385*e-.4985314*n),$e(-.969266*r+1.8760108*e+.041556*n),$e(.0556434*r-.2040259*e+1.0572252*n),t.alpha)}function er(t,e,r){var n=e-t;return t+r*(n>180||n<-180?n-360*Math.round(n/360):n)}var rr={forward:Qe,reverse:tr,interpolate:function(t,e,r){return {l:Ke(t.l,e.l,r),a:Ke(t.a,e.a,r),b:Ke(t.b,e.b,r),alpha:Ke(t.alpha,e.alpha,r)}}},nr={forward:function(t){var e=Qe(t),r=e.l,n=e.a,i=e.b,a=Math.atan2(i,n)*Je;return {h:a<0?a+360:a,c:Math.sqrt(n*n+i*i),l:r,alpha:t.a}},reverse:function(t){var e=t.h*Xe,r=t.c;return tr({l:t.l,a:Math.cos(e)*r,b:Math.sin(e)*r,alpha:t.alpha})},interpolate:function(t,e,r){return {h:er(t.h,e.h,r),c:Ke(t.c,e.c,r),l:Ke(t.l,e.l,r),alpha:Ke(t.alpha,e.alpha,r)}}},ir=Object.freeze({__proto__:null,lab:rr,hcl:nr}),ar=function(t,e,r,n,i){this.type=t,this.operator=e,this.interpolation=r,this.input=n,this.labels=[],this.outputs=[];for(var a=0,o=i;a<o.length;a+=1){var s=o[a],u=s[1];this.labels.push(s[0]),this.outputs.push(u);}};function or(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}ar.interpolationFactor=function(t,e,n,i){var a=0;if("exponential"===t.name)a=or(e,t.base,n,i);else if("linear"===t.name)a=or(e,1,n,i);else if("cubic-bezier"===t.name){var o=t.controlPoints;a=new r(o[0],o[1],o[2],o[3]).solve(or(e,1,n,i));}return a},ar.parse=function(t,e){var r=t[0],n=t[1],i=t[2],a=t.slice(3);if(!Array.isArray(n)||0===n.length)return e.error("Expected an interpolation type expression.",1);if("linear"===n[0])n={name:"linear"};else if("exponential"===n[0]){var o=n[1];if("number"!=typeof o)return e.error("Exponential interpolation requires a numeric base.",1,1);n={name:"exponential",base:o};}else {if("cubic-bezier"!==n[0])return e.error("Unknown interpolation type "+String(n[0]),1,0);var s=n.slice(1);if(4!==s.length||s.some((function(t){return "number"!=typeof t||t<0||t>1})))return e.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);n={name:"cubic-bezier",controlPoints:s};}if(t.length-1<4)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if((t.length-1)%2!=0)return e.error("Expected an even number of arguments.");if(!(i=e.parse(i,2,Ot)))return null;var u=[],l=null;"interpolate-hcl"===r||"interpolate-lab"===r?l=jt:e.expectedType&&"value"!==e.expectedType.kind&&(l=e.expectedType);for(var p=0;p<a.length;p+=2){var c=a[p],h=a[p+1],f=p+3,y=p+4;if("number"!=typeof c)return e.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',f);if(u.length&&u[u.length-1][0]>=c)return e.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',f);var d=e.parse(h,y,l);if(!d)return null;l=l||d.type,u.push([c,d]);}return "number"===l.kind||"color"===l.kind||"array"===l.kind&&"number"===l.itemType.kind&&"number"==typeof l.N?new ar(l,r,n,i,u):e.error("Type "+Jt(l)+" is not interpolatable.")},ar.prototype.evaluate=function(t){var e=this.labels,r=this.outputs;if(1===e.length)return r[0].evaluate(t);var n=this.input.evaluate(t);if(n<=e[0])return r[0].evaluate(t);var i=e.length;if(n>=e[i-1])return r[i-1].evaluate(t);var a=qe(e,n),o=ar.interpolationFactor(this.interpolation,n,e[a],e[a+1]),s=r[a].evaluate(t),u=r[a+1].evaluate(t);return "interpolate"===this.operator?Ge[this.type.kind.toLowerCase()](s,u,o):"interpolate-hcl"===this.operator?nr.reverse(nr.interpolate(nr.forward(s),nr.forward(u),o)):rr.reverse(rr.interpolate(rr.forward(s),rr.forward(u),o))},ar.prototype.eachChild=function(t){t(this.input);for(var e=0,r=this.outputs;e<r.length;e+=1)t(r[e]);},ar.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))},ar.prototype.serialize=function(){var t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);for(var e=[this.operator,t,this.input.serialize()],r=0;r<this.labels.length;r++)e.push(this.labels[r],this.outputs[r].serialize());return e};var sr=function(t,e){this.type=t,this.args=e;};sr.parse=function(t,e){if(t.length<2)return e.error("Expectected at least one argument.");var r=null,n=e.expectedType;n&&"value"!==n.kind&&(r=n);for(var i=[],a=0,o=t.slice(1);a<o.length;a+=1){var s=e.parse(o[a],1+i.length,r,void 0,{typeAnnotation:"omit"});if(!s)return null;r=r||s.type,i.push(s);}var u=n&&i.some((function(t){return Yt(n,t.type)}));return new sr(u?Nt:r,i)},sr.prototype.evaluate=function(t){for(var e,r=null,n=0,i=0,a=this.args;i<a.length&&(n++,(r=a[i].evaluate(t))&&r instanceof ie&&!r.available&&(e||(e=r.name),r=null,n===this.args.length&&(r=e)),null===r);i+=1);return r},sr.prototype.eachChild=function(t){this.args.forEach(t);},sr.prototype.outputDefined=function(){return this.args.every((function(t){return t.outputDefined()}))},sr.prototype.serialize=function(){var t=["coalesce"];return this.eachChild((function(e){t.push(e.serialize());})),t};var ur=function(t,e){this.type=e.type,this.bindings=[].concat(t),this.result=e;};ur.prototype.evaluate=function(t){return this.result.evaluate(t)},ur.prototype.eachChild=function(t){for(var e=0,r=this.bindings;e<r.length;e+=1)t(r[e][1]);t(this.result);},ur.parse=function(t,e){if(t.length<4)return e.error("Expected at least 3 arguments, but found "+(t.length-1)+" instead.");for(var r=[],n=1;n<t.length-1;n+=2){var i=t[n];if("string"!=typeof i)return e.error("Expected string, but found "+typeof i+" instead.",n);if(/[^a-zA-Z0-9_]/.test(i))return e.error("Variable names must contain only alphanumeric characters or '_'.",n);var a=e.parse(t[n+1],n+1);if(!a)return null;r.push([i,a]);}var o=e.parse(t[t.length-1],t.length-1,e.expectedType,r);return o?new ur(r,o):null},ur.prototype.outputDefined=function(){return this.result.outputDefined()},ur.prototype.serialize=function(){for(var t=["let"],e=0,r=this.bindings;e<r.length;e+=1){var n=r[e];t.push(n[0],n[1].serialize());}return t.push(this.result.serialize()),t};var lr=function(t,e,r){this.type=t,this.index=e,this.input=r;};lr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Ot),n=e.parse(t[2],2,Xt(e.expectedType||Nt));return r&&n?new lr(n.type.itemType,r,n):null},lr.prototype.evaluate=function(t){var e=this.index.evaluate(t),r=this.input.evaluate(t);if(e<0)throw new pe("Array index out of bounds: "+e+" < 0.");if(e>=r.length)throw new pe("Array index out of bounds: "+e+" > "+(r.length-1)+".");if(e!==Math.floor(e))throw new pe("Array index must be an integer, but found "+e+" instead.");return r[e]},lr.prototype.eachChild=function(t){t(this.index),t(this.input);},lr.prototype.outputDefined=function(){return !1},lr.prototype.serialize=function(){return ["at",this.index.serialize(),this.input.serialize()]};var pr=function(t,e){this.type=Ut,this.needle=t,this.haystack=e;};pr.parse=function(t,e){if(3!==t.length)return e.error("Expected 2 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Nt),n=e.parse(t[2],2,Nt);return r&&n?$t(r.type,[Ut,Rt,Ot,Lt,Nt])?new pr(r,n):e.error("Expected first argument to be of type boolean, string, number or null, but found "+Jt(r.type)+" instead"):null},pr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!r)return !1;if(!Wt(e,["boolean","string","number","null"]))throw new pe("Expected first argument to be of type boolean, string, number or null, but found "+Jt(se(e))+" instead.");if(!Wt(r,["string","array"]))throw new pe("Expected second argument to be of type array or string, but found "+Jt(se(r))+" instead.");return r.indexOf(e)>=0},pr.prototype.eachChild=function(t){t(this.needle),t(this.haystack);},pr.prototype.outputDefined=function(){return !0},pr.prototype.serialize=function(){return ["in",this.needle.serialize(),this.haystack.serialize()]};var cr=function(t,e,r){this.type=Ot,this.needle=t,this.haystack=e,this.fromIndex=r;};cr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Nt),n=e.parse(t[2],2,Nt);if(!r||!n)return null;if(!$t(r.type,[Ut,Rt,Ot,Lt,Nt]))return e.error("Expected first argument to be of type boolean, string, number or null, but found "+Jt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ot);return i?new cr(r,n,i):null}return new cr(r,n)},cr.prototype.evaluate=function(t){var e=this.needle.evaluate(t),r=this.haystack.evaluate(t);if(!Wt(e,["boolean","string","number","null"]))throw new pe("Expected first argument to be of type boolean, string, number or null, but found "+Jt(se(e))+" instead.");if(!Wt(r,["string","array"]))throw new pe("Expected second argument to be of type array or string, but found "+Jt(se(r))+" instead.");if(this.fromIndex){var n=this.fromIndex.evaluate(t);return r.indexOf(e,n)}return r.indexOf(e)},cr.prototype.eachChild=function(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex);},cr.prototype.outputDefined=function(){return !1},cr.prototype.serialize=function(){if(null!=this.fromIndex&&void 0!==this.fromIndex){var t=this.fromIndex.serialize();return ["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return ["index-of",this.needle.serialize(),this.haystack.serialize()]};var hr=function(t,e,r,n,i,a){this.inputType=t,this.type=e,this.input=r,this.cases=n,this.outputs=i,this.otherwise=a;};hr.parse=function(t,e){if(t.length<5)return e.error("Expected at least 4 arguments, but found only "+(t.length-1)+".");if(t.length%2!=1)return e.error("Expected an even number of arguments.");var r,n;e.expectedType&&"value"!==e.expectedType.kind&&(n=e.expectedType);for(var i={},a=[],o=2;o<t.length-1;o+=2){var s=t[o],u=t[o+1];Array.isArray(s)||(s=[s]);var l=e.concat(o);if(0===s.length)return l.error("Expected at least one branch label.");for(var p=0,c=s;p<c.length;p+=1){var h=c[p];if("number"!=typeof h&&"string"!=typeof h)return l.error("Branch labels must be numbers or strings.");if("number"==typeof h&&Math.abs(h)>Number.MAX_SAFE_INTEGER)return l.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if("number"==typeof h&&Math.floor(h)!==h)return l.error("Numeric branch labels must be integer values.");if(r){if(l.checkSubtype(r,se(h)))return null}else r=se(h);if(void 0!==i[String(h)])return l.error("Branch labels must be unique.");i[String(h)]=a.length;}var f=e.parse(u,o,n);if(!f)return null;n=n||f.type,a.push(f);}var y=e.parse(t[1],1,Nt);if(!y)return null;var d=e.parse(t[t.length-1],t.length-1,n);return d?"value"!==y.type.kind&&e.concat(1).checkSubtype(r,y.type)?null:new hr(r,n,y,i,a,d):null},hr.prototype.evaluate=function(t){var e=this.input.evaluate(t);return (se(e)===this.inputType&&this.outputs[this.cases[e]]||this.otherwise).evaluate(t)},hr.prototype.eachChild=function(t){t(this.input),this.outputs.forEach(t),t(this.otherwise);},hr.prototype.outputDefined=function(){return this.outputs.every((function(t){return t.outputDefined()}))&&this.otherwise.outputDefined()},hr.prototype.serialize=function(){for(var t=this,e=["match",this.input.serialize()],r=[],n={},i=0,a=Object.keys(this.cases).sort();i<a.length;i+=1){var o=a[i];void 0===(c=n[this.cases[o]])?(n[this.cases[o]]=r.length,r.push([this.cases[o],[o]])):r[c][1].push(o);}for(var s=function(e){return "number"===t.inputType.kind?Number(e):e},u=0,l=r;u<l.length;u+=1){var p=l[u],c=p[0],h=p[1];e.push(1===h.length?s(h[0]):h.map(s)),e.push(this.outputs[outputIndex$1].serialize());}return e.push(this.otherwise.serialize()),e};var fr=function(t,e,r){this.type=t,this.branches=e,this.otherwise=r;};fr.parse=function(t,e){if(t.length<4)return e.error("Expected at least 3 arguments, but found only "+(t.length-1)+".");if(t.length%2!=0)return e.error("Expected an odd number of arguments.");var r;e.expectedType&&"value"!==e.expectedType.kind&&(r=e.expectedType);for(var n=[],i=1;i<t.length-1;i+=2){var a=e.parse(t[i],i,Ut);if(!a)return null;var o=e.parse(t[i+1],i+1,r);if(!o)return null;n.push([a,o]),r=r||o.type;}var s=e.parse(t[t.length-1],t.length-1,r);return s?new fr(r,n,s):null},fr.prototype.evaluate=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[1];if(n[0].evaluate(t))return i.evaluate(t)}return this.otherwise.evaluate(t)},fr.prototype.eachChild=function(t){for(var e=0,r=this.branches;e<r.length;e+=1){var n=r[e],i=n[1];t(n[0]),t(i);}t(this.otherwise);},fr.prototype.outputDefined=function(){return this.branches.every((function(t){return t[1].outputDefined()}))&&this.otherwise.outputDefined()},fr.prototype.serialize=function(){var t=["case"];return this.eachChild((function(e){t.push(e.serialize());})),t};var yr=function(t,e,r,n){this.type=t,this.input=e,this.beginIndex=r,this.endIndex=n;};function dr(t,e){return "=="===t||"!="===t?"boolean"===e.kind||"string"===e.kind||"number"===e.kind||"null"===e.kind||"value"===e.kind:"string"===e.kind||"number"===e.kind||"value"===e.kind}function mr(t,e,r,n){return 0===n.compare(e,r)}function vr(t,e,r){var n="=="!==t&&"!="!==t;return function(){function i(t,e,r){this.type=Ut,this.lhs=t,this.rhs=e,this.collator=r,this.hasUntypedArgument="value"===t.type.kind||"value"===e.type.kind;}return i.parse=function(t,e){if(3!==t.length&&4!==t.length)return e.error("Expected two or three arguments.");var r=t[0],a=e.parse(t[1],1,Nt);if(!a)return null;if(!dr(r,a.type))return e.concat(1).error('"'+r+"\" comparisons are not supported for type '"+Jt(a.type)+"'.");var o=e.parse(t[2],2,Nt);if(!o)return null;if(!dr(r,o.type))return e.concat(2).error('"'+r+"\" comparisons are not supported for type '"+Jt(o.type)+"'.");if(a.type.kind!==o.type.kind&&"value"!==a.type.kind&&"value"!==o.type.kind)return e.error("Cannot compare types '"+Jt(a.type)+"' and '"+Jt(o.type)+"'.");n&&("value"===a.type.kind&&"value"!==o.type.kind?a=new he(o.type,[a]):"value"!==a.type.kind&&"value"===o.type.kind&&(o=new he(a.type,[o])));var s=null;if(4===t.length){if("string"!==a.type.kind&&"string"!==o.type.kind&&"value"!==a.type.kind&&"value"!==o.type.kind)return e.error("Cannot use collator to compare non-string types.");if(!(s=e.parse(t[3],3,Kt)))return null}return new i(a,o,s)},i.prototype.evaluate=function(i){var a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(n&&this.hasUntypedArgument){var s=se(a),u=se(o);if(s.kind!==u.kind||"string"!==s.kind&&"number"!==s.kind)throw new pe('Expected arguments for "'+t+'" to be (string, string) or (number, number), but found ('+s.kind+", "+u.kind+") instead.")}if(this.collator&&!n&&this.hasUntypedArgument){var l=se(a),p=se(o);if("string"!==l.kind||"string"!==p.kind)return e(i,a,o)}return this.collator?r(i,a,o,this.collator.evaluate(i)):e(i,a,o)},i.prototype.eachChild=function(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator);},i.prototype.outputDefined=function(){return !0},i.prototype.serialize=function(){var e=[t];return this.eachChild((function(t){e.push(t.serialize());})),e},i}()}yr.parse=function(t,e){if(t.length<=2||t.length>=5)return e.error("Expected 3 or 4 arguments, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1,Nt),n=e.parse(t[2],2,Ot);if(!r||!n)return null;if(!$t(r.type,[Xt(Nt),Rt,Nt]))return e.error("Expected first argument to be of type array or string, but found "+Jt(r.type)+" instead");if(4===t.length){var i=e.parse(t[3],3,Ot);return i?new yr(r.type,r,n,i):null}return new yr(r.type,r,n)},yr.prototype.evaluate=function(t){var e=this.input.evaluate(t),r=this.beginIndex.evaluate(t);if(!Wt(e,["string","array"]))throw new pe("Expected first argument to be of type array or string, but found "+Jt(se(e))+" instead.");if(this.endIndex){var n=this.endIndex.evaluate(t);return e.slice(r,n)}return e.slice(r)},yr.prototype.eachChild=function(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex);},yr.prototype.outputDefined=function(){return !1},yr.prototype.serialize=function(){if(null!=this.endIndex&&void 0!==this.endIndex){var t=this.endIndex.serialize();return ["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return ["slice",this.input.serialize(),this.beginIndex.serialize()]};var gr=vr("==",(function(t,e,r){return e===r}),mr),xr=vr("!=",(function(t,e,r){return e!==r}),(function(t,e,r,n){return !mr(0,e,r,n)})),br=vr("<",(function(t,e,r){return e<r}),(function(t,e,r,n){return n.compare(e,r)<0})),wr=vr(">",(function(t,e,r){return e>r}),(function(t,e,r,n){return n.compare(e,r)>0})),_r=vr("<=",(function(t,e,r){return e<=r}),(function(t,e,r,n){return n.compare(e,r)<=0})),Ar=vr(">=",(function(t,e,r){return e>=r}),(function(t,e,r,n){return n.compare(e,r)>=0})),Sr=function(t,e,r,n,i){this.type=Rt,this.number=t,this.locale=e,this.currency=r,this.minFractionDigits=n,this.maxFractionDigits=i;};Sr.parse=function(t,e){if(3!==t.length)return e.error("Expected two arguments.");var r=e.parse(t[1],1,Ot);if(!r)return null;var n=t[2];if("object"!=typeof n||Array.isArray(n))return e.error("NumberFormat options argument must be an object.");var i=null;if(n.locale&&!(i=e.parse(n.locale,1,Rt)))return null;var a=null;if(n.currency&&!(a=e.parse(n.currency,1,Rt)))return null;var o=null;if(n["min-fraction-digits"]&&!(o=e.parse(n["min-fraction-digits"],1,Ot)))return null;var s=null;return n["max-fraction-digits"]&&!(s=e.parse(n["max-fraction-digits"],1,Ot))?null:new Sr(r,i,a,o,s)},Sr.prototype.evaluate=function(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))},Sr.prototype.eachChild=function(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits);},Sr.prototype.outputDefined=function(){return !1},Sr.prototype.serialize=function(){var t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]};var kr=function(t){this.type=Ot,this.input=t;};kr.parse=function(t,e){if(2!==t.length)return e.error("Expected 1 argument, but found "+(t.length-1)+" instead.");var r=e.parse(t[1],1);return r?"array"!==r.type.kind&&"string"!==r.type.kind&&"value"!==r.type.kind?e.error("Expected argument of type string or array, but found "+Jt(r.type)+" instead."):new kr(r):null},kr.prototype.evaluate=function(t){var e=this.input.evaluate(t);if("string"==typeof e)return e.length;if(Array.isArray(e))return e.length;throw new pe("Expected value to be of type string or array, but found "+Jt(se(e))+" instead.")},kr.prototype.eachChild=function(t){t(this.input);},kr.prototype.outputDefined=function(){return !1},kr.prototype.serialize=function(){var t=["length"];return this.eachChild((function(e){t.push(e.serialize());})),t};var Ir={"==":gr,"!=":xr,">":wr,"<":br,">=":Ar,"<=":_r,array:he,at:lr,boolean:he,case:fr,coalesce:sr,collator:be,format:fe,image:ye,in:pr,"index-of":cr,interpolate:ar,"interpolate-hcl":ar,"interpolate-lab":ar,length:kr,let:ur,literal:le,match:hr,number:he,"number-format":Sr,object:he,slice:yr,step:Ne,string:he,"to-boolean":me,"to-color":me,"to-number":me,"to-string":me,var:Ue,within:De};function zr(t,e){var r=e[0],n=e[1],i=e[2],a=e[3];r=r.evaluate(t),n=n.evaluate(t),i=i.evaluate(t);var o=a?a.evaluate(t):1,s=ae(r,n,i,o);if(s)throw new pe(s);return new te(r/255*o,n/255*o,i/255*o,o)}function Cr(t,e){return t in e}function Er(t,e){var r=e[t];return void 0===r?null:r}function Pr(t){return {type:t}}function Mr(t){return {result:"success",value:t}}function Br(t){return {result:"error",value:t}}function Tr(t){return "data-driven"===t["property-type"]||"cross-faded-data-driven"===t["property-type"]}function Vr(t){return !!t.expression&&t.expression.parameters.indexOf("zoom")>-1}function Fr(t){return !!t.expression&&t.expression.interpolated}function Dr(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function Lr(t){return "object"==typeof t&&null!==t&&!Array.isArray(t)}function Or(t){return t}function Rr(t,e,r){return void 0!==t?t:void 0!==e?e:void 0!==r?r:void 0}function Ur(t,e,r,n,i){return Rr(typeof r===i?n[r]:void 0,t.default,e.default)}function jr(t,e,r){if("number"!==Dr(r))return Rr(t.default,e.default);var n=t.stops.length;if(1===n)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[n-1][0])return t.stops[n-1][1];var i=qe(t.stops.map((function(t){return t[0]})),r);return t.stops[i][1]}function qr(t,e,r){var n=void 0!==t.base?t.base:1;if("number"!==Dr(r))return Rr(t.default,e.default);var i=t.stops.length;if(1===i)return t.stops[0][1];if(r<=t.stops[0][0])return t.stops[0][1];if(r>=t.stops[i-1][0])return t.stops[i-1][1];var a=qe(t.stops.map((function(t){return t[0]})),r),o=function(t,e,r,n){var i=n-r,a=t-r;return 0===i?0:1===e?a/i:(Math.pow(e,a)-1)/(Math.pow(e,i)-1)}(r,n,t.stops[a][0],t.stops[a+1][0]),s=t.stops[a][1],u=t.stops[a+1][1],l=Ge[e.type]||Or;if(t.colorSpace&&"rgb"!==t.colorSpace){var p=ir[t.colorSpace];l=function(t,e){return p.reverse(p.interpolate(p.forward(t),p.forward(e),o))};}return "function"==typeof s.evaluate?{evaluate:function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];var r=s.evaluate.apply(void 0,t),n=u.evaluate.apply(void 0,t);if(void 0!==r&&void 0!==n)return l(r,n,o)}}:l(s,u,o)}function Nr(t,e,r){return "color"===e.type?r=te.parse(r):"formatted"===e.type?r=ne.fromString(r.toString()):"resolvedImage"===e.type?r=ie.fromString(r.toString()):Dr(r)===e.type||"enum"===e.type&&e.values[r]||(r=void 0),Rr(r,t.default,e.default)}xe.register(Ir,{error:[{kind:"error"},[Rt],function(t,e){throw new pe(e[0].evaluate(t))}],typeof:[Rt,[Nt],function(t,e){return Jt(se(e[0].evaluate(t)))}],"to-rgba":[Xt(Ot,4),[jt],function(t,e){return e[0].evaluate(t).toArray()}],rgb:[jt,[Ot,Ot,Ot],zr],rgba:[jt,[Ot,Ot,Ot,Ot],zr],has:{type:Ut,overloads:[[[Rt],function(t,e){return Cr(e[0].evaluate(t),t.properties())}],[[Rt,qt],function(t,e){var r=e[1];return Cr(e[0].evaluate(t),r.evaluate(t))}]]},get:{type:Nt,overloads:[[[Rt],function(t,e){return Er(e[0].evaluate(t),t.properties())}],[[Rt,qt],function(t,e){var r=e[1];return Er(e[0].evaluate(t),r.evaluate(t))}]]},"feature-state":[Nt,[Rt],function(t,e){return Er(e[0].evaluate(t),t.featureState||{})}],properties:[qt,[],function(t){return t.properties()}],"geometry-type":[Rt,[],function(t){return t.geometryType()}],id:[Nt,[],function(t){return t.id()}],zoom:[Ot,[],function(t){return t.globals.zoom}],"heatmap-density":[Ot,[],function(t){return t.globals.heatmapDensity||0}],"line-progress":[Ot,[],function(t){return t.globals.lineProgress||0}],accumulated:[Nt,[],function(t){return void 0===t.globals.accumulated?null:t.globals.accumulated}],"+":[Ot,Pr(Ot),function(t,e){for(var r=0,n=0,i=e;n<i.length;n+=1)r+=i[n].evaluate(t);return r}],"*":[Ot,Pr(Ot),function(t,e){for(var r=1,n=0,i=e;n<i.length;n+=1)r*=i[n].evaluate(t);return r}],"-":{type:Ot,overloads:[[[Ot,Ot],function(t,e){var r=e[1];return e[0].evaluate(t)-r.evaluate(t)}],[[Ot],function(t,e){return -e[0].evaluate(t)}]]},"/":[Ot,[Ot,Ot],function(t,e){var r=e[1];return e[0].evaluate(t)/r.evaluate(t)}],"%":[Ot,[Ot,Ot],function(t,e){var r=e[1];return e[0].evaluate(t)%r.evaluate(t)}],ln2:[Ot,[],function(){return Math.LN2}],pi:[Ot,[],function(){return Math.PI}],e:[Ot,[],function(){return Math.E}],"^":[Ot,[Ot,Ot],function(t,e){var r=e[1];return Math.pow(e[0].evaluate(t),r.evaluate(t))}],sqrt:[Ot,[Ot],function(t,e){return Math.sqrt(e[0].evaluate(t))}],log10:[Ot,[Ot],function(t,e){return Math.log(e[0].evaluate(t))/Math.LN10}],ln:[Ot,[Ot],function(t,e){return Math.log(e[0].evaluate(t))}],log2:[Ot,[Ot],function(t,e){return Math.log(e[0].evaluate(t))/Math.LN2}],sin:[Ot,[Ot],function(t,e){return Math.sin(e[0].evaluate(t))}],cos:[Ot,[Ot],function(t,e){return Math.cos(e[0].evaluate(t))}],tan:[Ot,[Ot],function(t,e){return Math.tan(e[0].evaluate(t))}],asin:[Ot,[Ot],function(t,e){return Math.asin(e[0].evaluate(t))}],acos:[Ot,[Ot],function(t,e){return Math.acos(e[0].evaluate(t))}],atan:[Ot,[Ot],function(t,e){return Math.atan(e[0].evaluate(t))}],min:[Ot,Pr(Ot),function(t,e){return Math.min.apply(Math,e.map((function(e){return e.evaluate(t)})))}],max:[Ot,Pr(Ot),function(t,e){return Math.max.apply(Math,e.map((function(e){return e.evaluate(t)})))}],abs:[Ot,[Ot],function(t,e){return Math.abs(e[0].evaluate(t))}],round:[Ot,[Ot],function(t,e){var r=e[0].evaluate(t);return r<0?-Math.round(-r):Math.round(r)}],floor:[Ot,[Ot],function(t,e){return Math.floor(e[0].evaluate(t))}],ceil:[Ot,[Ot],function(t,e){return Math.ceil(e[0].evaluate(t))}],"filter-==":[Ut,[Rt,Nt],function(t,e){var r=e[0],n=e[1];return t.properties()[r.value]===n.value}],"filter-id-==":[Ut,[Nt],function(t,e){var r=e[0];return t.id()===r.value}],"filter-type-==":[Ut,[Rt],function(t,e){var r=e[0];return t.geometryType()===r.value}],"filter-<":[Ut,[Rt,Nt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<a}],"filter-id-<":[Ut,[Nt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<i}],"filter->":[Ut,[Rt,Nt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>a}],"filter-id->":[Ut,[Nt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>i}],"filter-<=":[Ut,[Rt,Nt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i<=a}],"filter-id-<=":[Ut,[Nt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n<=i}],"filter->=":[Ut,[Rt,Nt],function(t,e){var r=e[0],n=e[1],i=t.properties()[r.value],a=n.value;return typeof i==typeof a&&i>=a}],"filter-id->=":[Ut,[Nt],function(t,e){var r=e[0],n=t.id(),i=r.value;return typeof n==typeof i&&n>=i}],"filter-has":[Ut,[Nt],function(t,e){return e[0].value in t.properties()}],"filter-has-id":[Ut,[],function(t){return null!==t.id()&&void 0!==t.id()}],"filter-type-in":[Ut,[Xt(Rt)],function(t,e){return e[0].value.indexOf(t.geometryType())>=0}],"filter-id-in":[Ut,[Xt(Nt)],function(t,e){return e[0].value.indexOf(t.id())>=0}],"filter-in-small":[Ut,[Rt,Xt(Nt)],function(t,e){var r=e[0];return e[1].value.indexOf(t.properties()[r.value])>=0}],"filter-in-large":[Ut,[Rt,Xt(Nt)],function(t,e){var r=e[0],n=e[1];return function(t,e,r,n){for(;r<=n;){var i=r+n>>1;if(e[i]===t)return !0;e[i]>t?n=i-1:r=i+1;}return !1}(t.properties()[r.value],n.value,0,n.value.length-1)}],all:{type:Ut,overloads:[[[Ut,Ut],function(t,e){var r=e[1];return e[0].evaluate(t)&&r.evaluate(t)}],[Pr(Ut),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(!n[r].evaluate(t))return !1;return !0}]]},any:{type:Ut,overloads:[[[Ut,Ut],function(t,e){var r=e[1];return e[0].evaluate(t)||r.evaluate(t)}],[Pr(Ut),function(t,e){for(var r=0,n=e;r<n.length;r+=1)if(n[r].evaluate(t))return !0;return !1}]]},"!":[Ut,[Ut],function(t,e){return !e[0].evaluate(t)}],"is-supported-script":[Ut,[Rt],function(t,e){var r=t.globals&&t.globals.isSupportedScript;return !r||r(e[0].evaluate(t))}],upcase:[Rt,[Rt],function(t,e){return e[0].evaluate(t).toUpperCase()}],downcase:[Rt,[Rt],function(t,e){return e[0].evaluate(t).toLowerCase()}],concat:[Rt,Pr(Nt),function(t,e){return e.map((function(e){return ue(e.evaluate(t))})).join("")}],"resolved-locale":[Rt,[Kt],function(t,e){return e[0].evaluate(t).resolvedLocale()}]});var Kr=function(t,e){this.expression=t,this._warningHistory={},this._evaluator=new ge,this._defaultValue=e?function(t){return "color"===t.type&&Lr(t.default)?new te(0,0,0,0):"color"===t.type?te.parse(t.default)||null:void 0===t.default?null:t.default}(e):null,this._enumValues=e&&"enum"===e.type?e.values:null;};function Gr(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in Ir}function Zr(t,e){var r=new je(Ir,[],e?function(t){var e={color:jt,string:Rt,number:Ot,enum:Rt,boolean:Ut,formatted:Gt,resolvedImage:Zt};return "array"===t.type?Xt(e[t.value]||Nt,t.length):e[t.type]}(e):void 0),n=r.parse(t,void 0,void 0,void 0,e&&"string"===e.type?{typeAnnotation:"coerce"}:void 0);return n?Mr(new Kr(n,e)):Br(r.errors)}Kr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._evaluator.globals=t,this._evaluator.feature=e,this._evaluator.featureState=r,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)},Kr.prototype.evaluate=function(t,e,r,n,i,a){this._evaluator.globals=t,this._evaluator.feature=e||null,this._evaluator.featureState=r||null,this._evaluator.canonical=n,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{var o=this.expression.evaluate(this._evaluator);if(null==o||"number"==typeof o&&o!=o)return this._defaultValue;if(this._enumValues&&!(o in this._enumValues))throw new pe("Expected value to be one of "+Object.keys(this._enumValues).map((function(t){return JSON.stringify(t)})).join(", ")+", but found "+JSON.stringify(o)+" instead.");return o}catch(t){return this._warningHistory[t.message]||(this._warningHistory[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this._defaultValue}};var Xr=function(t,e){this.kind=t,this._styleExpression=e,this.isStateDependent="constant"!==t&&!Oe(e.expression);};Xr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Xr.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)};var Jr=function(t,e,r,n){this.kind=t,this.zoomStops=r,this._styleExpression=e,this.isStateDependent="camera"!==t&&!Oe(e.expression),this.interpolationType=n;};function Hr(t,e){if("error"===(t=Zr(t,e)).result)return t;var r=t.value.expression,n=Le(r);if(!n&&!Tr(e))return Br([new Ft("","data expressions not supported")]);var i=Re(r,["zoom"]);if(!i&&!Vr(e))return Br([new Ft("","zoom expressions not supported")]);var a=function t(e){var r=null;if(e instanceof ur)r=t(e.result);else if(e instanceof sr)for(var n=0,i=e.args;n<i.length&&!(r=t(i[n]));n+=1);else (e instanceof Ne||e instanceof ar)&&e.input instanceof xe&&"zoom"===e.input.name&&(r=e);return r instanceof Ft||e.eachChild((function(e){var n=t(e);n instanceof Ft?r=n:!r&&n?r=new Ft("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):r&&n&&r!==n&&(r=new Ft("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));})),r}(r);return a||i?a instanceof Ft?Br([a]):a instanceof ar&&!Fr(e)?Br([new Ft("",'"interpolate" expressions cannot be used with this property')]):Mr(a?new Jr(n?"camera":"composite",t.value,a.labels,a instanceof ar?a.interpolation:void 0):new Xr(n?"constant":"source",t.value)):Br([new Ft("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}Jr.prototype.evaluateWithoutErrorHandling=function(t,e,r,n,i,a){return this._styleExpression.evaluateWithoutErrorHandling(t,e,r,n,i,a)},Jr.prototype.evaluate=function(t,e,r,n,i,a){return this._styleExpression.evaluate(t,e,r,n,i,a)},Jr.prototype.interpolationFactor=function(t,e,r){return this.interpolationType?ar.interpolationFactor(this.interpolationType,t,e,r):0};var Yr=function(t,e){this._parameters=t,this._specification=e,Bt(this,function t(e,r){var n,i,a,o="color"===r.type,s=e.stops&&"object"==typeof e.stops[0][0],u=s||!(s||void 0!==e.property),l=e.type||(Fr(r)?"exponential":"interval");if(o&&((e=Bt({},e)).stops&&(e.stops=e.stops.map((function(t){return [t[0],te.parse(t[1])]}))),e.default=te.parse(e.default?e.default:r.default)),e.colorSpace&&"rgb"!==e.colorSpace&&!ir[e.colorSpace])throw new Error("Unknown color space: "+e.colorSpace);if("exponential"===l)n=qr;else if("interval"===l)n=jr;else if("categorical"===l){n=Ur,i=Object.create(null);for(var p=0,c=e.stops;p<c.length;p+=1){var h=c[p];i[h[0]]=h[1];}a=typeof e.stops[0][0];}else {if("identity"!==l)throw new Error('Unknown function type "'+l+'"');n=Nr;}if(s){for(var f={},y=[],d=0;d<e.stops.length;d++){var m=e.stops[d],v=m[0].zoom;void 0===f[v]&&(f[v]={zoom:v,type:e.type,property:e.property,default:e.default,stops:[]},y.push(v)),f[v].stops.push([m[0].value,m[1]]);}for(var g=[],x=0,b=y;x<b.length;x+=1){var w=b[x];g.push([f[w].zoom,t(f[w],r)]);}var _={name:"linear"};return {kind:"composite",interpolationType:_,interpolationFactor:ar.interpolationFactor.bind(void 0,_),zoomStops:g.map((function(t){return t[0]})),evaluate:function(t,n){var i=t.zoom;return qr({stops:g,base:e.base},r,i).evaluate(i,n)}}}if(u){var A="exponential"===l?{name:"exponential",base:void 0!==e.base?e.base:1}:null;return {kind:"camera",interpolationType:A,interpolationFactor:ar.interpolationFactor.bind(void 0,A),zoomStops:e.stops.map((function(t){return t[0]})),evaluate:function(t){return n(e,r,t.zoom,i,a)}}}return {kind:"source",evaluate:function(t,o){var s=o&&o.properties?o.properties[e.property]:void 0;return void 0===s?Rr(e.default,r.default):n(e,r,s,i,a)}}}(this._parameters,this._specification));};function $r(t){var e=t.key,r=t.value,n=t.valueSpec||{},i=t.objectElementValidators||{},a=t.style,o=t.styleSpec,s=[],u=Dr(r);if("object"!==u)return [new Pt(e,r,"object expected, "+u+" found")];for(var l in r){var p=l.split(".")[0],c=n[p]||n["*"],h=void 0;if(i[p])h=i[p];else if(n[p])h=An;else if(i["*"])h=i["*"];else {if(!n["*"]){s.push(new Pt(e,r[l],'unknown property "'+l+'"'));continue}h=An;}s=s.concat(h({key:(e?e+".":e)+l,value:r[l],valueSpec:c,style:a,styleSpec:o,object:r,objectKey:l},r));}for(var f in n)i[f]||n[f].required&&void 0===n[f].default&&void 0===r[f]&&s.push(new Pt(e,r,'missing required property "'+f+'"'));return s}function Wr(t){var e=t.value,r=t.valueSpec,n=t.style,i=t.styleSpec,a=t.key,o=t.arrayElementValidator||An;if("array"!==Dr(e))return [new Pt(a,e,"array expected, "+Dr(e)+" found")];if(r.length&&e.length!==r.length)return [new Pt(a,e,"array length "+r.length+" expected, length "+e.length+" found")];if(r["min-length"]&&e.length<r["min-length"])return [new Pt(a,e,"array length at least "+r["min-length"]+" expected, length "+e.length+" found")];var s={type:r.value,values:r.values};i.$version<7&&(s.function=r.function),"object"===Dr(r.value)&&(s=r.value);for(var u=[],l=0;l<e.length;l++)u=u.concat(o({array:e,arrayIndex:l,value:e[l],valueSpec:s,style:n,styleSpec:i,key:a+"["+l+"]"}));return u}function Qr(t){var e=t.key,r=t.value,n=t.valueSpec,i=Dr(r);return "number"===i&&r!=r&&(i="NaN"),"number"!==i?[new Pt(e,r,"number expected, "+i+" found")]:"minimum"in n&&r<n.minimum?[new Pt(e,r,r+" is less than the minimum value "+n.minimum)]:"maximum"in n&&r>n.maximum?[new Pt(e,r,r+" is greater than the maximum value "+n.maximum)]:[]}function tn(t){var e,r,n,i=t.valueSpec,a=Tt(t.value.type),o={},s="categorical"!==a&&void 0===t.value.property,u=!s,l="array"===Dr(t.value.stops)&&"array"===Dr(t.value.stops[0])&&"object"===Dr(t.value.stops[0][0]),p=$r({key:t.key,value:t.value,valueSpec:t.styleSpec.function,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{stops:function(t){if("identity"===a)return [new Pt(t.key,t.value,'identity function may not have a "stops" property')];var e=[],r=t.value;return e=e.concat(Wr({key:t.key,value:r,valueSpec:t.valueSpec,style:t.style,styleSpec:t.styleSpec,arrayElementValidator:c})),"array"===Dr(r)&&0===r.length&&e.push(new Pt(t.key,r,"array must have at least one stop")),e},default:function(t){return An({key:t.key,value:t.value,valueSpec:i,style:t.style,styleSpec:t.styleSpec})}}});return "identity"===a&&s&&p.push(new Pt(t.key,t.value,'missing required property "property"')),"identity"===a||t.value.stops||p.push(new Pt(t.key,t.value,'missing required property "stops"')),"exponential"===a&&t.valueSpec.expression&&!Fr(t.valueSpec)&&p.push(new Pt(t.key,t.value,"exponential functions not supported")),t.styleSpec.$version>=8&&(u&&!Tr(t.valueSpec)?p.push(new Pt(t.key,t.value,"property functions not supported")):s&&!Vr(t.valueSpec)&&p.push(new Pt(t.key,t.value,"zoom functions not supported"))),"categorical"!==a&&!l||void 0!==t.value.property||p.push(new Pt(t.key,t.value,'"property" property is required')),p;function c(t){var e=[],a=t.value,s=t.key;if("array"!==Dr(a))return [new Pt(s,a,"array expected, "+Dr(a)+" found")];if(2!==a.length)return [new Pt(s,a,"array length 2 expected, length "+a.length+" found")];if(l){if("object"!==Dr(a[0]))return [new Pt(s,a,"object expected, "+Dr(a[0])+" found")];if(void 0===a[0].zoom)return [new Pt(s,a,"object stop key must have zoom")];if(void 0===a[0].value)return [new Pt(s,a,"object stop key must have value")];if(n&&n>Tt(a[0].zoom))return [new Pt(s,a[0].zoom,"stop zoom values must appear in ascending order")];Tt(a[0].zoom)!==n&&(n=Tt(a[0].zoom),r=void 0,o={}),e=e.concat($r({key:s+"[0]",value:a[0],valueSpec:{zoom:{}},style:t.style,styleSpec:t.styleSpec,objectElementValidators:{zoom:Qr,value:h}}));}else e=e.concat(h({key:s+"[0]",value:a[0],valueSpec:{},style:t.style,styleSpec:t.styleSpec},a));return Gr(Vt(a[1]))?e.concat([new Pt(s+"[1]",a[1],"expressions are not allowed in function stops.")]):e.concat(An({key:s+"[1]",value:a[1],valueSpec:i,style:t.style,styleSpec:t.styleSpec}))}function h(t,n){var s=Dr(t.value),u=Tt(t.value),l=null!==t.value?t.value:n;if(e){if(s!==e)return [new Pt(t.key,l,s+" stop domain type must match previous stop domain type "+e)]}else e=s;if("number"!==s&&"string"!==s&&"boolean"!==s)return [new Pt(t.key,l,"stop domain value must be a number, string, or boolean")];if("number"!==s&&"categorical"!==a){var p="number expected, "+s+" found";return Tr(i)&&void 0===a&&(p+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Pt(t.key,l,p)]}return "categorical"!==a||"number"!==s||isFinite(u)&&Math.floor(u)===u?"categorical"!==a&&"number"===s&&void 0!==r&&u<r?[new Pt(t.key,l,"stop domain values must appear in ascending order")]:(r=u,"categorical"===a&&u in o?[new Pt(t.key,l,"stop domain values must be unique")]:(o[u]=!0,[])):[new Pt(t.key,l,"integer expected, found "+u)]}}function en(t){var e=("property"===t.expressionContext?Hr:Zr)(Vt(t.value),t.valueSpec);if("error"===e.result)return e.value.map((function(e){return new Pt(""+t.key+e.key,t.value,e.message)}));var r=e.value.expression||e.value._styleExpression.expression;if("property"===t.expressionContext&&"text-font"===t.propertyKey&&!r.outputDefined())return [new Pt(t.key,t.value,'Invalid data expression for "'+t.propertyKey+'". Output values must be contained as literals within the expression.')];if("property"===t.expressionContext&&"layout"===t.propertyType&&!Oe(r))return [new Pt(t.key,t.value,'"feature-state" data expressions are not supported with layout properties.')];if("filter"===t.expressionContext&&!Oe(r))return [new Pt(t.key,t.value,'"feature-state" data expressions are not supported with filters.')];if(t.expressionContext&&0===t.expressionContext.indexOf("cluster")){if(!Re(r,["zoom","feature-state"]))return [new Pt(t.key,t.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if("cluster-initial"===t.expressionContext&&!Le(r))return [new Pt(t.key,t.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return []}function rn(t){var e=t.key,r=t.value,n=t.valueSpec,i=[];return Array.isArray(n.values)?-1===n.values.indexOf(Tt(r))&&i.push(new Pt(e,r,"expected one of ["+n.values.join(", ")+"], "+JSON.stringify(r)+" found")):-1===Object.keys(n.values).indexOf(Tt(r))&&i.push(new Pt(e,r,"expected one of ["+Object.keys(n.values).join(", ")+"], "+JSON.stringify(r)+" found")),i}function nn(t){if(!0===t||!1===t)return !0;if(!Array.isArray(t)||0===t.length)return !1;switch(t[0]){case"has":return t.length>=2&&"$id"!==t[1]&&"$type"!==t[1];case"in":return t.length>=3&&("string"!=typeof t[1]||Array.isArray(t[2]));case"!in":case"!has":case"none":return !1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==t.length||Array.isArray(t[1])||Array.isArray(t[2]);case"any":case"all":for(var e=0,r=t.slice(1);e<r.length;e+=1){var n=r[e];if(!nn(n)&&"boolean"!=typeof n)return !1}return !0;default:return !0}}Yr.deserialize=function(t){return new Yr(t._parameters,t._specification)},Yr.serialize=function(t){return {_parameters:t._parameters,_specification:t._specification}};var an={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function on(t){if(null==t)return {filter:function(){return !0},needGeometry:!1};nn(t)||(t=un(t));var e=Zr(t,an);if("error"===e.result)throw new Error(e.value.map((function(t){return t.key+": "+t.message})).join(", "));return {filter:function(t,r,n){return e.value.evaluate(t,r,{},n)},needGeometry:function t(e){if(!Array.isArray(e))return !1;if("within"===e[0])return !0;for(var r=1;r<e.length;r++)if(t(e[r]))return !0;return !1}(t)}}function sn(t,e){return t<e?-1:t>e?1:0}function un(t){if(!t)return !0;var e,r=t[0];return t.length<=1?"any"!==r:"=="===r?ln(t[1],t[2],"=="):"!="===r?hn(ln(t[1],t[2],"==")):"<"===r||">"===r||"<="===r||">="===r?ln(t[1],t[2],r):"any"===r?(e=t.slice(1),["any"].concat(e.map(un))):"all"===r?["all"].concat(t.slice(1).map(un)):"none"===r?["all"].concat(t.slice(1).map(un).map(hn)):"in"===r?pn(t[1],t.slice(2)):"!in"===r?hn(pn(t[1],t.slice(2))):"has"===r?cn(t[1]):"!has"===r?hn(cn(t[1])):"within"!==r||t}function ln(t,e,r){switch(t){case"$type":return ["filter-type-"+r,e];case"$id":return ["filter-id-"+r,e];default:return ["filter-"+r,t,e]}}function pn(t,e){if(0===e.length)return !1;switch(t){case"$type":return ["filter-type-in",["literal",e]];case"$id":return ["filter-id-in",["literal",e]];default:return e.length>200&&!e.some((function(t){return typeof t!=typeof e[0]}))?["filter-in-large",t,["literal",e.sort(sn)]]:["filter-in-small",t,["literal",e]]}}function cn(t){switch(t){case"$type":return !0;case"$id":return ["filter-has-id"];default:return ["filter-has",t]}}function hn(t){return ["!",t]}function fn(t){return nn(Vt(t.value))?en(Bt({},t,{expressionContext:"filter",valueSpec:{value:"boolean"}})):function t(e){var r=e.value,n=e.key;if("array"!==Dr(r))return [new Pt(n,r,"array expected, "+Dr(r)+" found")];var i,a=e.styleSpec,o=[];if(r.length<1)return [new Pt(n,r,"filter array must have at least 1 element")];switch(o=o.concat(rn({key:n+"[0]",value:r[0],valueSpec:a.filter_operator,style:e.style,styleSpec:e.styleSpec})),Tt(r[0])){case"<":case"<=":case">":case">=":r.length>=2&&"$type"===Tt(r[1])&&o.push(new Pt(n,r,'"$type" cannot be use with operator "'+r[0]+'"'));case"==":case"!=":3!==r.length&&o.push(new Pt(n,r,'filter array for operator "'+r[0]+'" must have 3 elements'));case"in":case"!in":r.length>=2&&"string"!==(i=Dr(r[1]))&&o.push(new Pt(n+"[1]",r[1],"string expected, "+i+" found"));for(var s=2;s<r.length;s++)i=Dr(r[s]),"$type"===Tt(r[1])?o=o.concat(rn({key:n+"["+s+"]",value:r[s],valueSpec:a.geometry_type,style:e.style,styleSpec:e.styleSpec})):"string"!==i&&"number"!==i&&"boolean"!==i&&o.push(new Pt(n+"["+s+"]",r[s],"string, number, or boolean expected, "+i+" found"));break;case"any":case"all":case"none":for(var u=1;u<r.length;u++)o=o.concat(t({key:n+"["+u+"]",value:r[u],style:e.style,styleSpec:e.styleSpec}));break;case"has":case"!has":i=Dr(r[1]),2!==r.length?o.push(new Pt(n,r,'filter array for "'+r[0]+'" operator must have 2 elements')):"string"!==i&&o.push(new Pt(n+"[1]",r[1],"string expected, "+i+" found"));break;case"within":i=Dr(r[1]),2!==r.length?o.push(new Pt(n,r,'filter array for "'+r[0]+'" operator must have 2 elements')):"object"!==i&&o.push(new Pt(n+"[1]",r[1],"object expected, "+i+" found"));}return o}(t)}function yn(t,e){var r=t.key,n=t.style,i=t.styleSpec,a=t.value,o=t.objectKey,s=i[e+"_"+t.layerType];if(!s)return [];var u=o.match(/^(.*)-transition$/);if("paint"===e&&u&&s[u[1]]&&s[u[1]].transition)return An({key:r,value:a,valueSpec:i.transition,style:n,styleSpec:i});var l,p=t.valueSpec||s[o];if(!p)return [new Pt(r,a,'unknown property "'+o+'"')];if("string"===Dr(a)&&Tr(p)&&!p.tokens&&(l=/^{([^}]+)}$/.exec(a)))return [new Pt(r,a,'"'+o+'" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": '+JSON.stringify(l[1])+" }`.")];var c=[];return "symbol"===t.layerType&&("text-field"===o&&n&&!n.glyphs&&c.push(new Pt(r,a,'use of "text-field" requires a style "glyphs" property')),"text-font"===o&&Lr(Vt(a))&&"identity"===Tt(a.type)&&c.push(new Pt(r,a,'"text-font" does not support identity functions'))),c.concat(An({key:t.key,value:a,valueSpec:p,style:n,styleSpec:i,expressionContext:"property",propertyType:e,propertyKey:o}))}function dn(t){return yn(t,"paint")}function mn(t){return yn(t,"layout")}function vn(t){var e=[],r=t.value,n=t.key,i=t.style,a=t.styleSpec;r.type||r.ref||e.push(new Pt(n,r,'either "type" or "ref" is required'));var o,s=Tt(r.type),u=Tt(r.ref);if(r.id)for(var l=Tt(r.id),p=0;p<t.arrayIndex;p++){var c=i.layers[p];Tt(c.id)===l&&e.push(new Pt(n,r.id,'duplicate layer id "'+r.id+'", previously used at line '+c.id.__line__));}if("ref"in r)["type","source","source-layer","filter","layout"].forEach((function(t){t in r&&e.push(new Pt(n,r[t],'"'+t+'" is prohibited for ref layers'));})),i.layers.forEach((function(t){Tt(t.id)===u&&(o=t);})),o?o.ref?e.push(new Pt(n,r.ref,"ref cannot reference another ref layer")):s=Tt(o.type):e.push(new Pt(n,r.ref,'ref layer "'+u+'" not found'));else if("background"!==s)if(r.source){var h=i.sources&&i.sources[r.source],f=h&&Tt(h.type);h?"vector"===f&&"raster"===s?e.push(new Pt(n,r.source,'layer "'+r.id+'" requires a raster source')):"raster"===f&&"raster"!==s?e.push(new Pt(n,r.source,'layer "'+r.id+'" requires a vector source')):"vector"!==f||r["source-layer"]?"raster-dem"===f&&"hillshade"!==s?e.push(new Pt(n,r.source,"raster-dem source can only be used with layer type 'hillshade'.")):"line"!==s||!r.paint||!r.paint["line-gradient"]||"geojson"===f&&h.lineMetrics||e.push(new Pt(n,r,'layer "'+r.id+'" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):e.push(new Pt(n,r,'layer "'+r.id+'" must specify a "source-layer"')):e.push(new Pt(n,r.source,'source "'+r.source+'" not found'));}else e.push(new Pt(n,r,'missing required property "source"'));return e=e.concat($r({key:n,value:r,valueSpec:a.layer,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(){return []},type:function(){return An({key:n+".type",value:r.type,valueSpec:a.layer.type,style:t.style,styleSpec:t.styleSpec,object:r,objectKey:"type"})},filter:fn,layout:function(t){return $r({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(t){return mn(Bt({layerType:s},t))}}})},paint:function(t){return $r({layer:r,key:t.key,value:t.value,style:t.style,styleSpec:t.styleSpec,objectElementValidators:{"*":function(t){return dn(Bt({layerType:s},t))}}})}}}))}function gn(t){var e=t.value,r=t.key,n=Dr(e);return "string"!==n?[new Pt(r,e,"string expected, "+n+" found")]:[]}var xn={promoteId:function(t){var e=t.key,r=t.value;if("string"===Dr(r))return gn({key:e,value:r});var n=[];for(var i in r)n.push.apply(n,gn({key:e+"."+i,value:r[i]}));return n}};function bn(t){var e=t.value,r=t.key,n=t.styleSpec,i=t.style;if(!e.type)return [new Pt(r,e,'"type" is required')];var a,o=Tt(e.type);switch(o){case"vector":case"raster":case"raster-dem":return $r({key:r,value:e,valueSpec:n["source_"+o.replace("-","_")],style:t.style,styleSpec:n,objectElementValidators:xn});case"geojson":if(a=$r({key:r,value:e,valueSpec:n.source_geojson,style:i,styleSpec:n,objectElementValidators:xn}),e.cluster)for(var s in e.clusterProperties){var u=e.clusterProperties[s],l=u[0],p="string"==typeof l?[l,["accumulated"],["get",s]]:l;a.push.apply(a,en({key:r+"."+s+".map",value:u[1],expressionContext:"cluster-map"})),a.push.apply(a,en({key:r+"."+s+".reduce",value:p,expressionContext:"cluster-reduce"}));}return a;case"video":return $r({key:r,value:e,valueSpec:n.source_video,style:i,styleSpec:n});case"image":return $r({key:r,value:e,valueSpec:n.source_image,style:i,styleSpec:n});case"canvas":return [new Pt(r,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return rn({key:r+".type",value:e.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:i,styleSpec:n})}}function wn(t){var e=t.value,r=t.styleSpec,n=r.light,i=t.style,a=[],o=Dr(e);if(void 0===e)return a;if("object"!==o)return a.concat([new Pt("light",e,"object expected, "+o+" found")]);for(var s in e){var u=s.match(/^(.*)-transition$/);a=a.concat(u&&n[u[1]]&&n[u[1]].transition?An({key:s,value:e[s],valueSpec:r.transition,style:i,styleSpec:r}):n[s]?An({key:s,value:e[s],valueSpec:n[s],style:i,styleSpec:r}):[new Pt(s,e[s],'unknown property "'+s+'"')]);}return a}var _n={"*":function(){return []},array:Wr,boolean:function(t){var e=t.value,r=t.key,n=Dr(e);return "boolean"!==n?[new Pt(r,e,"boolean expected, "+n+" found")]:[]},number:Qr,color:function(t){var e=t.key,r=t.value,n=Dr(r);return "string"!==n?[new Pt(e,r,"color expected, "+n+" found")]:null===Qt(r)?[new Pt(e,r,'color expected, "'+r+'" found')]:[]},constants:Mt,enum:rn,filter:fn,function:tn,layer:vn,object:$r,source:bn,light:wn,string:gn,formatted:function(t){return 0===gn(t).length?[]:en(t)},resolvedImage:function(t){return 0===gn(t).length?[]:en(t)}};function An(t){var e=t.value,r=t.valueSpec,n=t.styleSpec;return r.expression&&Lr(Tt(e))?tn(t):r.expression&&Gr(Vt(e))?en(t):r.type&&_n[r.type]?_n[r.type](t):$r(Bt({},t,{valueSpec:r.type?n[r.type]:r}))}function Sn(t){var e=t.value,r=t.key,n=gn(t);return n.length||(-1===e.indexOf("{fontstack}")&&n.push(new Pt(r,e,'"glyphs" url must include a "{fontstack}" token')),-1===e.indexOf("{range}")&&n.push(new Pt(r,e,'"glyphs" url must include a "{range}" token'))),n}function kn(t,e){void 0===e&&(e=Et);var r=[];return r=r.concat(An({key:"",value:t,valueSpec:e.$root,styleSpec:e,style:t,objectElementValidators:{glyphs:Sn,"*":function(){return []}}})),t.constants&&(r=r.concat(Mt({key:"constants",value:t.constants,style:t,styleSpec:e}))),In(r)}function In(t){return [].concat(t).sort((function(t,e){return t.line-e.line}))}function zn(t){return function(){for(var e=[],r=arguments.length;r--;)e[r]=arguments[r];return In(t.apply(this,e))}}kn.source=zn(bn),kn.light=zn(wn),kn.layer=zn(vn),kn.filter=zn(fn),kn.paintProperty=zn(dn),kn.layoutProperty=zn(mn);var Cn=kn,En=Cn.light,Pn=Cn.paintProperty,Mn=Cn.layoutProperty;function Bn(t,e){var r=!1;if(e&&e.length)for(var n=0,i=e;n<i.length;n+=1)t.fire(new zt(new Error(i[n].message))),r=!0;return r}var Tn=Vn;function Vn(t,e,r){var n=this.cells=[];if(t instanceof ArrayBuffer){this.arrayBuffer=t;var i=new Int32Array(this.arrayBuffer);t=i[0],this.d=(e=i[1])+2*(r=i[2]);for(var a=0;a<this.d*this.d;a++){var o=i[3+a],s=i[3+a+1];n.push(o===s?null:i.subarray(o,s));}var u=i[3+n.length+1];this.keys=i.subarray(i[3+n.length],u),this.bboxes=i.subarray(u),this.insert=this._insertReadonly;}else {this.d=e+2*r;for(var l=0;l<this.d*this.d;l++)n.push([]);this.keys=[],this.bboxes=[];}this.n=e,this.extent=t,this.padding=r,this.scale=e/t,this.uid=0;var p=r/e*t;this.min=-p,this.max=t+p;}Vn.prototype.insert=function(t,e,r,n,i){this._forEachCell(e,r,n,i,this._insertCell,this.uid++),this.keys.push(t),this.bboxes.push(e),this.bboxes.push(r),this.bboxes.push(n),this.bboxes.push(i);},Vn.prototype._insertReadonly=function(){throw "Cannot insert into a GridIndex created from an ArrayBuffer."},Vn.prototype._insertCell=function(t,e,r,n,i,a){this.cells[i].push(a);},Vn.prototype.query=function(t,e,r,n,i){var a=this.min,o=this.max;if(t<=a&&e<=a&&o<=r&&o<=n&&!i)return Array.prototype.slice.call(this.keys);var s=[];return this._forEachCell(t,e,r,n,this._queryCell,s,{},i),s},Vn.prototype._queryCell=function(t,e,r,n,i,a,o,s){var u=this.cells[i];if(null!==u)for(var l=this.keys,p=this.bboxes,c=0;c<u.length;c++){var h=u[c];if(void 0===o[h]){var f=4*h;(s?s(p[f+0],p[f+1],p[f+2],p[f+3]):t<=p[f+2]&&e<=p[f+3]&&r>=p[f+0]&&n>=p[f+1])?(o[h]=!0,a.push(l[h])):o[h]=!1;}}},Vn.prototype._forEachCell=function(t,e,r,n,i,a,o,s){for(var u=this._convertToCellCoord(t),l=this._convertToCellCoord(e),p=this._convertToCellCoord(r),c=this._convertToCellCoord(n),h=u;h<=p;h++)for(var f=l;f<=c;f++){var y=this.d*f+h;if((!s||s(this._convertFromCellCoord(h),this._convertFromCellCoord(f),this._convertFromCellCoord(h+1),this._convertFromCellCoord(f+1)))&&i.call(this,t,e,r,n,y,a,o,s))return}},Vn.prototype._convertFromCellCoord=function(t){return (t-this.padding)/this.scale},Vn.prototype._convertToCellCoord=function(t){return Math.max(0,Math.min(this.d-1,Math.floor(t*this.scale)+this.padding))},Vn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var t=this.cells,e=3+this.cells.length+1+1,r=0,n=0;n<this.cells.length;n++)r+=this.cells[n].length;var i=new Int32Array(e+r+this.keys.length+this.bboxes.length);i[0]=this.extent,i[1]=this.n,i[2]=this.padding;for(var a=e,o=0;o<t.length;o++){var s=t[o];i[3+o]=a,i.set(s,a),a+=s.length;}return i[3+t.length]=a,i.set(this.keys,a),i[3+t.length+1]=a+=this.keys.length,i.set(this.bboxes,a),a+=this.bboxes.length,i.buffer};var Fn=o.ImageData,Dn=o.ImageBitmap,Ln={};function On(t,e,r){void 0===r&&(r={}),Object.defineProperty(e,"_classRegistryKey",{value:t,writeable:!1}),Ln[t]={klass:e,omit:r.omit||[],shallow:r.shallow||[]};}for(var Rn in On("Object",Object),Tn.serialize=function(t,e){var r=t.toArrayBuffer();return e&&e.push(r),{buffer:r}},Tn.deserialize=function(t){return new Tn(t.buffer)},On("Grid",Tn),On("Color",te),On("Error",Error),On("ResolvedImage",ie),On("StylePropertyFunction",Yr),On("StyleExpression",Kr,{omit:["_evaluator"]}),On("ZoomDependentExpression",Jr),On("ZoomConstantExpression",Xr),On("CompoundExpression",xe,{omit:["_evaluate"]}),Ir)Ir[Rn]._classRegistryKey||On("Expression_"+Rn,Ir[Rn]);function Un(t){return t&&"undefined"!=typeof ArrayBuffer&&(t instanceof ArrayBuffer||t.constructor&&"ArrayBuffer"===t.constructor.name)}function jn(t){return Dn&&t instanceof Dn}function qn(t,e){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp)return t;if(Un(t)||jn(t))return e&&e.push(t),t;if(ArrayBuffer.isView(t)){var r=t;return e&&e.push(r.buffer),r}if(t instanceof Fn)return e&&e.push(t.data.buffer),t;if(Array.isArray(t)){for(var n=[],i=0,a=t;i<a.length;i+=1)n.push(qn(a[i],e));return n}if("object"==typeof t){var o=t.constructor,s=o._classRegistryKey;if(!s)throw new Error("can't serialize object of unregistered class");var u=o.serialize?o.serialize(t,e):{};if(!o.serialize){for(var l in t)if(t.hasOwnProperty(l)&&!(Ln[s].omit.indexOf(l)>=0)){var p=t[l];u[l]=Ln[s].shallow.indexOf(l)>=0?p:qn(p,e);}t instanceof Error&&(u.message=t.message);}if(u.$name)throw new Error("$name property is reserved for worker serialization logic.");return "Object"!==s&&(u.$name=s),u}throw new Error("can't serialize object of type "+typeof t)}function Nn(t){if(null==t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||t instanceof Boolean||t instanceof Number||t instanceof String||t instanceof Date||t instanceof RegExp||Un(t)||jn(t)||ArrayBuffer.isView(t)||t instanceof Fn)return t;if(Array.isArray(t))return t.map(Nn);if("object"==typeof t){var e=t.$name||"Object",r=Ln[e].klass;if(!r)throw new Error("can't deserialize unregistered class "+e);if(r.deserialize)return r.deserialize(t);for(var n=Object.create(r.prototype),i=0,a=Object.keys(t);i<a.length;i+=1){var o=a[i];if("$name"!==o){var s=t[o];n[o]=Ln[e].shallow.indexOf(o)>=0?s:Nn(s);}}return n}throw new Error("can't deserialize object of type "+typeof t)}var Kn=function(){this.first=!0;};Kn.prototype.update=function(t,e){var r=Math.floor(t);return this.first?(this.first=!1,this.lastIntegerZoom=r,this.lastIntegerZoomTime=0,this.lastZoom=t,this.lastFloorZoom=r,!0):(this.lastFloorZoom>r?(this.lastIntegerZoom=r+1,this.lastIntegerZoomTime=e):this.lastFloorZoom<r&&(this.lastIntegerZoom=r,this.lastIntegerZoomTime=e),t!==this.lastZoom&&(this.lastZoom=t,this.lastFloorZoom=r,!0))};var Gn={"Latin-1 Supplement":function(t){return t>=128&&t<=255},Arabic:function(t){return t>=1536&&t<=1791},"Arabic Supplement":function(t){return t>=1872&&t<=1919},"Arabic Extended-A":function(t){return t>=2208&&t<=2303},"Hangul Jamo":function(t){return t>=4352&&t<=4607},"Unified Canadian Aboriginal Syllabics":function(t){return t>=5120&&t<=5759},Khmer:function(t){return t>=6016&&t<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(t){return t>=6320&&t<=6399},"General Punctuation":function(t){return t>=8192&&t<=8303},"Letterlike Symbols":function(t){return t>=8448&&t<=8527},"Number Forms":function(t){return t>=8528&&t<=8591},"Miscellaneous Technical":function(t){return t>=8960&&t<=9215},"Control Pictures":function(t){return t>=9216&&t<=9279},"Optical Character Recognition":function(t){return t>=9280&&t<=9311},"Enclosed Alphanumerics":function(t){return t>=9312&&t<=9471},"Geometric Shapes":function(t){return t>=9632&&t<=9727},"Miscellaneous Symbols":function(t){return t>=9728&&t<=9983},"Miscellaneous Symbols and Arrows":function(t){return t>=11008&&t<=11263},"CJK Radicals Supplement":function(t){return t>=11904&&t<=12031},"Kangxi Radicals":function(t){return t>=12032&&t<=12255},"Ideographic Description Characters":function(t){return t>=12272&&t<=12287},"CJK Symbols and Punctuation":function(t){return t>=12288&&t<=12351},Hiragana:function(t){return t>=12352&&t<=12447},Katakana:function(t){return t>=12448&&t<=12543},Bopomofo:function(t){return t>=12544&&t<=12591},"Hangul Compatibility Jamo":function(t){return t>=12592&&t<=12687},Kanbun:function(t){return t>=12688&&t<=12703},"Bopomofo Extended":function(t){return t>=12704&&t<=12735},"CJK Strokes":function(t){return t>=12736&&t<=12783},"Katakana Phonetic Extensions":function(t){return t>=12784&&t<=12799},"Enclosed CJK Letters and Months":function(t){return t>=12800&&t<=13055},"CJK Compatibility":function(t){return t>=13056&&t<=13311},"CJK Unified Ideographs Extension A":function(t){return t>=13312&&t<=19903},"Yijing Hexagram Symbols":function(t){return t>=19904&&t<=19967},"CJK Unified Ideographs":function(t){return t>=19968&&t<=40959},"Yi Syllables":function(t){return t>=40960&&t<=42127},"Yi Radicals":function(t){return t>=42128&&t<=42191},"Hangul Jamo Extended-A":function(t){return t>=43360&&t<=43391},"Hangul Syllables":function(t){return t>=44032&&t<=55215},"Hangul Jamo Extended-B":function(t){return t>=55216&&t<=55295},"Private Use Area":function(t){return t>=57344&&t<=63743},"CJK Compatibility Ideographs":function(t){return t>=63744&&t<=64255},"Arabic Presentation Forms-A":function(t){return t>=64336&&t<=65023},"Vertical Forms":function(t){return t>=65040&&t<=65055},"CJK Compatibility Forms":function(t){return t>=65072&&t<=65103},"Small Form Variants":function(t){return t>=65104&&t<=65135},"Arabic Presentation Forms-B":function(t){return t>=65136&&t<=65279},"Halfwidth and Fullwidth Forms":function(t){return t>=65280&&t<=65519}};function Zn(t){for(var e=0,r=t;e<r.length;e+=1)if(Xn(r[e].charCodeAt(0)))return !0;return !1}function Xn(t){return !(746!==t&&747!==t&&(t<4352||!(Gn["Bopomofo Extended"](t)||Gn.Bopomofo(t)||Gn["CJK Compatibility Forms"](t)&&!(t>=65097&&t<=65103)||Gn["CJK Compatibility Ideographs"](t)||Gn["CJK Compatibility"](t)||Gn["CJK Radicals Supplement"](t)||Gn["CJK Strokes"](t)||!(!Gn["CJK Symbols and Punctuation"](t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Gn["CJK Unified Ideographs Extension A"](t)||Gn["CJK Unified Ideographs"](t)||Gn["Enclosed CJK Letters and Months"](t)||Gn["Hangul Compatibility Jamo"](t)||Gn["Hangul Jamo Extended-A"](t)||Gn["Hangul Jamo Extended-B"](t)||Gn["Hangul Jamo"](t)||Gn["Hangul Syllables"](t)||Gn.Hiragana(t)||Gn["Ideographic Description Characters"](t)||Gn.Kanbun(t)||Gn["Kangxi Radicals"](t)||Gn["Katakana Phonetic Extensions"](t)||Gn.Katakana(t)&&12540!==t||!(!Gn["Halfwidth and Fullwidth Forms"](t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!Gn["Small Form Variants"](t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||Gn["Unified Canadian Aboriginal Syllabics"](t)||Gn["Unified Canadian Aboriginal Syllabics Extended"](t)||Gn["Vertical Forms"](t)||Gn["Yijing Hexagram Symbols"](t)||Gn["Yi Syllables"](t)||Gn["Yi Radicals"](t))))}function Jn(t){return !(Xn(t)||function(t){return !!(Gn["Latin-1 Supplement"](t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||Gn["General Punctuation"](t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||Gn["Letterlike Symbols"](t)||Gn["Number Forms"](t)||Gn["Miscellaneous Technical"](t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||Gn["Control Pictures"](t)&&9251!==t||Gn["Optical Character Recognition"](t)||Gn["Enclosed Alphanumerics"](t)||Gn["Geometric Shapes"](t)||Gn["Miscellaneous Symbols"](t)&&!(t>=9754&&t<=9759)||Gn["Miscellaneous Symbols and Arrows"](t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||Gn["CJK Symbols and Punctuation"](t)||Gn.Katakana(t)||Gn["Private Use Area"](t)||Gn["CJK Compatibility Forms"](t)||Gn["Small Form Variants"](t)||Gn["Halfwidth and Fullwidth Forms"](t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Hn(t){return t>=1424&&t<=2303||Gn["Arabic Presentation Forms-A"](t)||Gn["Arabic Presentation Forms-B"](t)}function Yn(t,e){return !(!e&&Hn(t)||t>=2304&&t<=3583||t>=3840&&t<=4255||Gn.Khmer(t))}function $n(t){for(var e=0,r=t;e<r.length;e+=1)if(Hn(r[e].charCodeAt(0)))return !0;return !1}var Wn=null,Qn="unavailable",ti=null,ei=function(t){t&&"string"==typeof t&&t.indexOf("NetworkError")>-1&&(Qn="error"),Wn&&Wn(t);};function ri(){ni.fire(new It("pluginStateChange",{pluginStatus:Qn,pluginURL:ti}));}var ni=new Ct,ii=function(){return Qn},ai=function(){if("deferred"!==Qn||!ti)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Qn="loading",ri(),ti&&bt({url:ti},(function(t){t?ei(t):(Qn="loaded",ri());}));},oi={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return "loaded"===Qn||null!=oi.applyArabicShaping},isLoading:function(){return "loading"===Qn},setState:function(t){Qn=t.pluginStatus,ti=t.pluginURL;},isParsed:function(){return null!=oi.applyArabicShaping&&null!=oi.processBidirectionalText&&null!=oi.processStyledBidirectionalText},getPluginURL:function(){return ti}},si=function(t,e){this.zoom=t,e?(this.now=e.now,this.fadeDuration=e.fadeDuration,this.zoomHistory=e.zoomHistory,this.transition=e.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Kn,this.transition={});};si.prototype.isSupportedScript=function(t){return function(t,e){for(var r=0,n=t;r<n.length;r+=1)if(!Yn(n[r].charCodeAt(0),e))return !1;return !0}(t,oi.isLoaded())},si.prototype.crossFadingFactor=function(){return 0===this.fadeDuration?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},si.prototype.getCrossfadeParameters=function(){var t=this.zoom,e=t-Math.floor(t),r=this.crossFadingFactor();return t>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:e+(1-e)*r}:{fromScale:.5,toScale:1,t:1-(1-r)*e}};var ui=function(t,e){this.property=t,this.value=e,this.expression=function(t,e){if(Lr(t))return new Yr(t,e);if(Gr(t)){var r=Hr(t,e);if("error"===r.result)throw new Error(r.value.map((function(t){return t.key+": "+t.message})).join(", "));return r.value}var n=t;return "string"==typeof t&&"color"===e.type&&(n=te.parse(t)),{kind:"constant",evaluate:function(){return n}}}(void 0===e?t.specification.default:e,t.specification);};ui.prototype.isDataDriven=function(){return "source"===this.expression.kind||"composite"===this.expression.kind},ui.prototype.possiblyEvaluate=function(t,e,r){return this.property.possiblyEvaluate(this,t,e,r)};var li=function(t){this.property=t,this.value=new ui(t,void 0);};li.prototype.transitioned=function(t,e){return new ci(this.property,this.value,e,h({},t.transition,this.transition),t.now)},li.prototype.untransitioned=function(){return new ci(this.property,this.value,null,{},0)};var pi=function(t){this._properties=t,this._values=Object.create(t.defaultTransitionablePropertyValues);};pi.prototype.getValue=function(t){return w(this._values[t].value.value)},pi.prototype.setValue=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new li(this._values[t].property)),this._values[t].value=new ui(this._values[t].property,null===e?void 0:w(e));},pi.prototype.getTransition=function(t){return w(this._values[t].transition)},pi.prototype.setTransition=function(t,e){this._values.hasOwnProperty(t)||(this._values[t]=new li(this._values[t].property)),this._values[t].transition=w(e)||void 0;},pi.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i);var a=this.getTransition(n);void 0!==a&&(t[n+"-transition"]=a);}return t},pi.prototype.transitioned=function(t,e){for(var r=new hi(this._properties),n=0,i=Object.keys(this._values);n<i.length;n+=1){var a=i[n];r._values[a]=this._values[a].transitioned(t,e._values[a]);}return r},pi.prototype.untransitioned=function(){for(var t=new hi(this._properties),e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e];t._values[n]=this._values[n].untransitioned();}return t};var ci=function(t,e,r,n,i){this.property=t,this.value=e,this.begin=i+n.delay||0,this.end=this.begin+n.duration||0,t.specification.transition&&(n.delay||n.duration)&&(this.prior=r);};ci.prototype.possiblyEvaluate=function(t,e,r){var n=t.now||0,i=this.value.possiblyEvaluate(t,e,r),a=this.prior;if(a){if(n>this.end)return this.prior=null,i;if(this.value.isDataDriven())return this.prior=null,i;if(n<this.begin)return a.possiblyEvaluate(t,e,r);var o=(n-this.begin)/(this.end-this.begin);return this.property.interpolate(a.possiblyEvaluate(t,e,r),i,function(t){if(t<=0)return 0;if(t>=1)return 1;var e=t*t,r=e*t;return 4*(t<.5?r:3*(t-e)+r-.75)}(o))}return i};var hi=function(t){this._properties=t,this._values=Object.create(t.defaultTransitioningPropertyValues);};hi.prototype.possiblyEvaluate=function(t,e,r){for(var n=new di(this._properties),i=0,a=Object.keys(this._values);i<a.length;i+=1){var o=a[i];n._values[o]=this._values[o].possiblyEvaluate(t,e,r);}return n},hi.prototype.hasTransition=function(){for(var t=0,e=Object.keys(this._values);t<e.length;t+=1)if(this._values[e[t]].prior)return !0;return !1};var fi=function(t){this._properties=t,this._values=Object.create(t.defaultPropertyValues);};fi.prototype.getValue=function(t){return w(this._values[t].value)},fi.prototype.setValue=function(t,e){this._values[t]=new ui(this._values[t].property,null===e?void 0:w(e));},fi.prototype.serialize=function(){for(var t={},e=0,r=Object.keys(this._values);e<r.length;e+=1){var n=r[e],i=this.getValue(n);void 0!==i&&(t[n]=i);}return t},fi.prototype.possiblyEvaluate=function(t,e,r){for(var n=new di(this._properties),i=0,a=Object.keys(this._values);i<a.length;i+=1){var o=a[i];n._values[o]=this._values[o].possiblyEvaluate(t,e,r);}return n};var yi=function(t,e,r){this.property=t,this.value=e,this.parameters=r;};yi.prototype.isConstant=function(){return "constant"===this.value.kind},yi.prototype.constantOr=function(t){return "constant"===this.value.kind?this.value.value:t},yi.prototype.evaluate=function(t,e,r,n){return this.property.evaluate(this.value,this.parameters,t,e,r,n)};var di=function(t){this._properties=t,this._values=Object.create(t.defaultPossiblyEvaluatedValues);};di.prototype.get=function(t){return this._values[t]};var mi=function(t){this.specification=t;};mi.prototype.possiblyEvaluate=function(t,e){return t.expression.evaluate(e)},mi.prototype.interpolate=function(t,e,r){var n=Ge[this.specification.type];return n?n(t,e,r):t};var vi=function(t,e){this.specification=t,this.overrides=e;};vi.prototype.possiblyEvaluate=function(t,e,r,n){return new yi(this,"constant"===t.expression.kind||"camera"===t.expression.kind?{kind:"constant",value:t.expression.evaluate(e,null,{},r,n)}:t.expression,e)},vi.prototype.interpolate=function(t,e,r){if("constant"!==t.value.kind||"constant"!==e.value.kind)return t;if(void 0===t.value.value||void 0===e.value.value)return new yi(this,{kind:"constant",value:void 0},t.parameters);var n=Ge[this.specification.type];return n?new yi(this,{kind:"constant",value:n(t.value.value,e.value.value,r)},t.parameters):t},vi.prototype.evaluate=function(t,e,r,n,i,a){return "constant"===t.kind?t.value:t.evaluate(e,r,n,i,a)};var gi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0===t.value)return new yi(this,{kind:"constant",value:void 0},e);if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n),a="resolvedImage"===t.property.specification.type&&"string"!=typeof i?i.name:i,o=this._calculate(a,a,a,e);return new yi(this,{kind:"constant",value:o},e)}if("camera"===t.expression.kind){var s=this._calculate(t.expression.evaluate({zoom:e.zoom-1}),t.expression.evaluate({zoom:e.zoom}),t.expression.evaluate({zoom:e.zoom+1}),e);return new yi(this,{kind:"constant",value:s},e)}return new yi(this,t.expression,e)},e.prototype.evaluate=function(t,e,r,n,i,a){if("source"===t.kind){var o=t.evaluate(e,r,n,i,a);return this._calculate(o,o,o,e)}return "composite"===t.kind?this._calculate(t.evaluate({zoom:Math.floor(e.zoom)-1},r,n),t.evaluate({zoom:Math.floor(e.zoom)},r,n),t.evaluate({zoom:Math.floor(e.zoom)+1},r,n),e):t.value},e.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},e.prototype.interpolate=function(t){return t},e}(vi),xi=function(t){this.specification=t;};xi.prototype.possiblyEvaluate=function(t,e,r,n){if(void 0!==t.value){if("constant"===t.expression.kind){var i=t.expression.evaluate(e,null,{},r,n);return this._calculate(i,i,i,e)}return this._calculate(t.expression.evaluate(new si(Math.floor(e.zoom-1),e)),t.expression.evaluate(new si(Math.floor(e.zoom),e)),t.expression.evaluate(new si(Math.floor(e.zoom+1),e)),e)}},xi.prototype._calculate=function(t,e,r,n){return n.zoom>n.zoomHistory.lastIntegerZoom?{from:t,to:e}:{from:r,to:e}},xi.prototype.interpolate=function(t){return t};var bi=function(t){this.specification=t;};bi.prototype.possiblyEvaluate=function(t,e,r,n){return !!t.expression.evaluate(e,null,{},r,n)},bi.prototype.interpolate=function(){return !1};var wi=function(t){for(var e in this.properties=t,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],t){var r=t[e];r.specification.overridable&&this.overridableProperties.push(e);var n=this.defaultPropertyValues[e]=new ui(r,void 0),i=this.defaultTransitionablePropertyValues[e]=new li(r);this.defaultTransitioningPropertyValues[e]=i.untransitioned(),this.defaultPossiblyEvaluatedValues[e]=n.possiblyEvaluate({});}};On("DataDrivenProperty",vi),On("DataConstantProperty",mi),On("CrossFadedDataDrivenProperty",gi),On("CrossFadedProperty",xi),On("ColorRampProperty",bi);var _i=function(t){function e(e,r){if(t.call(this),this.id=e.id,this.type=e.type,this._featureFilter={filter:function(){return !0},needGeometry:!1},"custom"!==e.type&&(this.metadata=(e=e).metadata,this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,"background"!==e.type&&(this.source=e.source,this.sourceLayer=e["source-layer"],this.filter=e.filter),r.layout&&(this._unevaluatedLayout=new fi(r.layout)),r.paint)){for(var n in this._transitionablePaint=new pi(r.paint),e.paint)this.setPaintProperty(n,e.paint[n],{validate:!1});for(var i in e.layout)this.setLayoutProperty(i,e.layout[i],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new di(r.paint);}}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},e.prototype.getLayoutProperty=function(t){return "visibility"===t?this.visibility:this._unevaluatedLayout.getValue(t)},e.prototype.setLayoutProperty=function(t,e,r){void 0===r&&(r={}),null!=e&&this._validate(Mn,"layers."+this.id+".layout."+t,t,e,r)||("visibility"!==t?this._unevaluatedLayout.setValue(t,e):this.visibility=e);},e.prototype.getPaintProperty=function(t){return g(t,"-transition")?this._transitionablePaint.getTransition(t.slice(0,-"-transition".length)):this._transitionablePaint.getValue(t)},e.prototype.setPaintProperty=function(t,e,r){if(void 0===r&&(r={}),null!=e&&this._validate(Pn,"layers."+this.id+".paint."+t,t,e,r))return !1;if(g(t,"-transition"))return this._transitionablePaint.setTransition(t.slice(0,-"-transition".length),e||void 0),!1;var n=this._transitionablePaint._values[t],i="cross-faded-data-driven"===n.property.specification["property-type"],a=n.value.isDataDriven(),o=n.value;this._transitionablePaint.setValue(t,e),this._handleSpecialPaintPropertyUpdate(t);var s=this._transitionablePaint._values[t].value;return s.isDataDriven()||a||i||this._handleOverridablePaintPropertyUpdate(t,o,s)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){},e.prototype._handleOverridablePaintPropertyUpdate=function(t,e,r){return !1},e.prototype.isHidden=function(t){return !!(this.minzoom&&t<this.minzoom)||!!(this.maxzoom&&t>=this.maxzoom)||"none"===this.visibility},e.prototype.updateTransitions=function(t){this._transitioningPaint=this._transitionablePaint.transitioned(t,this._transitioningPaint);},e.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},e.prototype.recalculate=function(t,e){t.getCrossfadeParameters&&(this._crossfadeParameters=t.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(t,void 0,e)),this.paint=this._transitioningPaint.possiblyEvaluate(t,void 0,e);},e.prototype.serialize=function(){var t={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(t.layout=t.layout||{},t.layout.visibility=this.visibility),b(t,(function(t,e){return !(void 0===t||"layout"===e&&!Object.keys(t).length||"paint"===e&&!Object.keys(t).length)}))},e.prototype._validate=function(t,e,r,n,i){return void 0===i&&(i={}),(!i||!1!==i.validate)&&Bn(this,t.call(Cn,{key:e,layerType:this.type,objectKey:r,value:n,styleSpec:Et,style:{glyphs:!0,sprite:!0}}))},e.prototype.is3D=function(){return !1},e.prototype.isTileClipped=function(){return !1},e.prototype.hasOffscreenPass=function(){return !1},e.prototype.resize=function(){},e.prototype.isStateDependent=function(){for(var t in this.paint._values){var e=this.paint.get(t);if(e instanceof yi&&Tr(e.property.specification)&&("source"===e.value.kind||"composite"===e.value.kind)&&e.value.isStateDependent)return !0}return !1},e}(Ct),Ai={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Si=function(t,e){this._structArray=t,this._pos1=e*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;},ki=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0);};function Ii(t,e){void 0===e&&(e=1);var r=0,n=0;return {members:t.map((function(t){var i=Ai[t.type].BYTES_PER_ELEMENT,a=r=zi(r,Math.max(e,i)),o=t.components||1;return n=Math.max(n,i),r+=i*o,{name:t.name,type:t.type,components:o,offset:a}})),size:zi(r,Math.max(n,e)),alignment:e}}function zi(t,e){return Math.ceil(t/e)*e}ki.serialize=function(t,e){return t._trim(),e&&(t.isTransferred=!0,e.push(t.arrayBuffer)),{length:t.length,arrayBuffer:t.arrayBuffer}},ki.deserialize=function(t){var e=Object.create(this.prototype);return e.arrayBuffer=t.arrayBuffer,e.length=t.length,e.capacity=t.arrayBuffer.byteLength/e.bytesPerElement,e._refreshViews(),e},ki.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());},ki.prototype.clear=function(){this.length=0;},ki.prototype.resize=function(t){this.reserve(t),this.length=t;},ki.prototype.reserve=function(t){if(t>this.capacity){this.capacity=Math.max(t,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var e=this.uint8;this._refreshViews(),e&&this.uint8.set(e);}},ki.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Ci=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.int16[n+0]=e,this.int16[n+1]=r,t},e}(ki);Ci.prototype.bytesPerElement=4,On("StructArrayLayout2i4",Ci);var Ei=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.int16[a+0]=e,this.int16[a+1]=r,this.int16[a+2]=n,this.int16[a+3]=i,t},e}(ki);Ei.prototype.bytesPerElement=8,On("StructArrayLayout4i8",Ei);var Pi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(ki);Pi.prototype.bytesPerElement=12,On("StructArrayLayout2i4i12",Pi);var Mi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=4*t,u=8*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.uint8[u+4]=n,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,t},e}(ki);Mi.prototype.bytesPerElement=8,On("StructArrayLayout2i4ub8",Mi);var Bi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.float32[n+0]=e,this.float32[n+1]=r,t},e}(ki);Bi.prototype.bytesPerElement=8,On("StructArrayLayout2f8",Bi);var Ti=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l){var p=this.length;return this.resize(p+1),this.emplace(p,t,e,r,n,i,a,o,s,u,l)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p){var c=10*t;return this.uint16[c+0]=e,this.uint16[c+1]=r,this.uint16[c+2]=n,this.uint16[c+3]=i,this.uint16[c+4]=a,this.uint16[c+5]=o,this.uint16[c+6]=s,this.uint16[c+7]=u,this.uint16[c+8]=l,this.uint16[c+9]=p,t},e}(ki);Ti.prototype.bytesPerElement=20,On("StructArrayLayout10ui20",Ti);var Vi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l,p,c){var h=this.length;return this.resize(h+1),this.emplace(h,t,e,r,n,i,a,o,s,u,l,p,c)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h){var f=12*t;return this.int16[f+0]=e,this.int16[f+1]=r,this.int16[f+2]=n,this.int16[f+3]=i,this.uint16[f+4]=a,this.uint16[f+5]=o,this.uint16[f+6]=s,this.uint16[f+7]=u,this.int16[f+8]=l,this.int16[f+9]=p,this.int16[f+10]=c,this.int16[f+11]=h,t},e}(ki);Vi.prototype.bytesPerElement=24,On("StructArrayLayout4i4ui4i24",Vi);var Fi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.float32[i+0]=e,this.float32[i+1]=r,this.float32[i+2]=n,t},e}(ki);Fi.prototype.bytesPerElement=12,On("StructArrayLayout3f12",Fi);var Di=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint32[1*t+0]=e,t},e}(ki);Di.prototype.bytesPerElement=4,On("StructArrayLayout1ul4",Di);var Li=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u){var l=this.length;return this.resize(l+1),this.emplace(l,t,e,r,n,i,a,o,s,u)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l){var p=10*t,c=5*t;return this.int16[p+0]=e,this.int16[p+1]=r,this.int16[p+2]=n,this.int16[p+3]=i,this.int16[p+4]=a,this.int16[p+5]=o,this.uint32[c+3]=s,this.uint16[p+8]=u,this.uint16[p+9]=l,t},e}(ki);Li.prototype.bytesPerElement=20,On("StructArrayLayout6i1ul2ui20",Li);var Oi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a){var o=this.length;return this.resize(o+1),this.emplace(o,t,e,r,n,i,a)},e.prototype.emplace=function(t,e,r,n,i,a,o){var s=6*t;return this.int16[s+0]=e,this.int16[s+1]=r,this.int16[s+2]=n,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,t},e}(ki);Oi.prototype.bytesPerElement=12,On("StructArrayLayout2i2i2i12",Oi);var Ri=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i){var a=this.length;return this.resize(a+1),this.emplace(a,t,e,r,n,i)},e.prototype.emplace=function(t,e,r,n,i,a){var o=4*t,s=8*t;return this.float32[o+0]=e,this.float32[o+1]=r,this.float32[o+2]=n,this.int16[s+6]=i,this.int16[s+7]=a,t},e}(ki);Ri.prototype.bytesPerElement=16,On("StructArrayLayout2f1f2i16",Ri);var Ui=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=12*t,o=3*t;return this.uint8[a+0]=e,this.uint8[a+1]=r,this.float32[o+1]=n,this.float32[o+2]=i,t},e}(ki);Ui.prototype.bytesPerElement=12,On("StructArrayLayout2ub2f12",Ui);var ji=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.uint16[i+0]=e,this.uint16[i+1]=r,this.uint16[i+2]=n,t},e}(ki);ji.prototype.bytesPerElement=6,On("StructArrayLayout3ui6",ji);var qi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m){var v=this.length;return this.resize(v+1),this.emplace(v,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v){var g=24*t,x=12*t,b=48*t;return this.int16[g+0]=e,this.int16[g+1]=r,this.uint16[g+2]=n,this.uint16[g+3]=i,this.uint32[x+2]=a,this.uint32[x+3]=o,this.uint32[x+4]=s,this.uint16[g+10]=u,this.uint16[g+11]=l,this.uint16[g+12]=p,this.float32[x+7]=c,this.float32[x+8]=h,this.uint8[b+36]=f,this.uint8[b+37]=y,this.uint8[b+38]=d,this.uint32[x+10]=m,this.int16[g+22]=v,t},e}(ki);qi.prototype.bytesPerElement=48,On("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",qi);var Ni=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z){var C=this.length;return this.resize(C+1),this.emplace(C,t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z)},e.prototype.emplace=function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,A,S,k,I,z,C){var E=34*t,P=17*t;return this.int16[E+0]=e,this.int16[E+1]=r,this.int16[E+2]=n,this.int16[E+3]=i,this.int16[E+4]=a,this.int16[E+5]=o,this.int16[E+6]=s,this.int16[E+7]=u,this.uint16[E+8]=l,this.uint16[E+9]=p,this.uint16[E+10]=c,this.uint16[E+11]=h,this.uint16[E+12]=f,this.uint16[E+13]=y,this.uint16[E+14]=d,this.uint16[E+15]=m,this.uint16[E+16]=v,this.uint16[E+17]=g,this.uint16[E+18]=x,this.uint16[E+19]=b,this.uint16[E+20]=w,this.uint16[E+21]=_,this.uint16[E+22]=A,this.uint32[P+12]=S,this.float32[P+13]=k,this.float32[P+14]=I,this.float32[P+15]=z,this.float32[P+16]=C,t},e}(ki);Ni.prototype.bytesPerElement=68,On("StructArrayLayout8i15ui1ul4f68",Ni);var Ki=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.float32[1*t+0]=e,t},e}(ki);Ki.prototype.bytesPerElement=4,On("StructArrayLayout1f4",Ki);var Gi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=3*t;return this.int16[i+0]=e,this.int16[i+1]=r,this.int16[i+2]=n,t},e}(ki);Gi.prototype.bytesPerElement=6,On("StructArrayLayout3i6",Gi);var Zi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r){var n=this.length;return this.resize(n+1),this.emplace(n,t,e,r)},e.prototype.emplace=function(t,e,r,n){var i=4*t;return this.uint32[2*t+0]=e,this.uint16[i+2]=r,this.uint16[i+3]=n,t},e}(ki);Zi.prototype.bytesPerElement=8,On("StructArrayLayout1ul2ui8",Zi);var Xi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e){var r=this.length;return this.resize(r+1),this.emplace(r,t,e)},e.prototype.emplace=function(t,e,r){var n=2*t;return this.uint16[n+0]=e,this.uint16[n+1]=r,t},e}(ki);Xi.prototype.bytesPerElement=4,On("StructArrayLayout2ui4",Xi);var Ji=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t){var e=this.length;return this.resize(e+1),this.emplace(e,t)},e.prototype.emplace=function(t,e){return this.uint16[1*t+0]=e,t},e}(ki);Ji.prototype.bytesPerElement=2,On("StructArrayLayout1ui2",Ji);var Hi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);},e.prototype.emplaceBack=function(t,e,r,n){var i=this.length;return this.resize(i+1),this.emplace(i,t,e,r,n)},e.prototype.emplace=function(t,e,r,n,i){var a=4*t;return this.float32[a+0]=e,this.float32[a+1]=r,this.float32[a+2]=n,this.float32[a+3]=i,t},e}(ki);Hi.prototype.bytesPerElement=16,On("StructArrayLayout4f16",Hi);var Yi=function(t){function e(){t.apply(this,arguments);}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return r.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},r.x1.get=function(){return this._structArray.int16[this._pos2+2]},r.y1.get=function(){return this._structArray.int16[this._pos2+3]},r.x2.get=function(){return this._structArray.int16[this._pos2+4]},r.y2.get=function(){return this._structArray.int16[this._pos2+5]},r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.anchorPoint.get=function(){return new i(this.anchorPointX,this.anchorPointY)},Object.defineProperties(e.prototype,r),e}(Si);Yi.prototype.size=20;var $i=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Yi(this,t)},e}(Li);On("CollisionBoxArray",$i);var Wi=function(t){function e(){t.apply(this,arguments);}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},r.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},r.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},r.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},r.segment.get=function(){return this._structArray.uint16[this._pos2+10]},r.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},r.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},r.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},r.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},r.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},r.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},r.placedOrientation.set=function(t){this._structArray.uint8[this._pos1+37]=t;},r.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},r.hidden.set=function(t){this._structArray.uint8[this._pos1+38]=t;},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+10]=t;},r.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(e.prototype,r),e}(Si);Wi.prototype.size=48;var Qi=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new Wi(this,t)},e}(qi);On("PlacedSymbolArray",Qi);var ta=function(t){function e(){t.apply(this,arguments);}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return r.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},r.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},r.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},r.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},r.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},r.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},r.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},r.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},r.key.get=function(){return this._structArray.uint16[this._pos2+8]},r.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},r.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},r.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},r.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},r.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},r.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},r.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},r.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},r.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},r.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},r.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},r.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},r.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},r.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},r.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},r.crossTileID.set=function(t){this._structArray.uint32[this._pos4+12]=t;},r.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},r.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},r.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},r.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(e.prototype,r),e}(Si);ta.prototype.size=68;var ea=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new ta(this,t)},e}(Ni);On("SymbolInstanceArray",ea);var ra=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getoffsetX=function(t){return this.float32[1*t+0]},e}(Ki);On("GlyphOffsetArray",ra);var na=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getx=function(t){return this.int16[3*t+0]},e.prototype.gety=function(t){return this.int16[3*t+1]},e.prototype.gettileUnitDistanceFromAnchor=function(t){return this.int16[3*t+2]},e}(Gi);On("SymbolLineVertexArray",na);var ia=function(t){function e(){t.apply(this,arguments);}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var r={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return r.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},r.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},r.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(e.prototype,r),e}(Si);ia.prototype.size=8;var aa=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.get=function(t){return new ia(this,t)},e}(Zi);On("FeatureIndexArray",aa);var oa=Ii([{name:"a_pos",components:2,type:"Int16"}],4).members,sa=function(t){void 0===t&&(t=[]),this.segments=t;};function ua(t,e){return 256*(t=p(Math.floor(t),0,255))+p(Math.floor(e),0,255)}sa.prototype.prepareSegment=function(t,e,r,n){var i=this.segments[this.segments.length-1];return t>sa.MAX_VERTEX_ARRAY_LENGTH&&A("Max vertices per segment is "+sa.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+t),(!i||i.vertexLength+t>sa.MAX_VERTEX_ARRAY_LENGTH||i.sortKey!==n)&&(i={vertexOffset:e.length,primitiveOffset:r.length,vertexLength:0,primitiveLength:0},void 0!==n&&(i.sortKey=n),this.segments.push(i)),i},sa.prototype.get=function(){return this.segments},sa.prototype.destroy=function(){for(var t=0,e=this.segments;t<e.length;t+=1){var r=e[t];for(var n in r.vaos)r.vaos[n].destroy();}},sa.simpleSegment=function(t,e,r,n){return new sa([{vertexOffset:t,primitiveOffset:e,vertexLength:r,primitiveLength:n,vaos:{},sortKey:0}])},sa.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,On("SegmentVector",sa);var la=Ii([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]),pa=e((function(t){t.exports=function(t,e){var r,n,i,a,o,s,u,l;for(n=t.length-(r=3&t.length),i=e,o=3432918353,s=461845907,l=0;l<n;)u=255&t.charCodeAt(l)|(255&t.charCodeAt(++l))<<8|(255&t.charCodeAt(++l))<<16|(255&t.charCodeAt(++l))<<24,++l,i=27492+(65535&(a=5*(65535&(i=(i^=u=(65535&(u=(u=(65535&u)*o+(((u>>>16)*o&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295)<<13|i>>>19))+((5*(i>>>16)&65535)<<16)&4294967295))+((58964+(a>>>16)&65535)<<16);switch(u=0,r){case 3:u^=(255&t.charCodeAt(l+2))<<16;case 2:u^=(255&t.charCodeAt(l+1))<<8;case 1:i^=u=(65535&(u=(u=(65535&(u^=255&t.charCodeAt(l)))*o+(((u>>>16)*o&65535)<<16)&4294967295)<<15|u>>>17))*s+(((u>>>16)*s&65535)<<16)&4294967295;}return i^=t.length,i=2246822507*(65535&(i^=i>>>16))+((2246822507*(i>>>16)&65535)<<16)&4294967295,i=3266489909*(65535&(i^=i>>>13))+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0};})),ca=e((function(t){t.exports=function(t,e){for(var r,n=t.length,i=e^n,a=0;n>=4;)r=1540483477*(65535&(r=255&t.charCodeAt(a)|(255&t.charCodeAt(++a))<<8|(255&t.charCodeAt(++a))<<16|(255&t.charCodeAt(++a))<<24))+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^(r=1540483477*(65535&(r^=r>>>24))+((1540483477*(r>>>16)&65535)<<16)),n-=4,++a;switch(n){case 3:i^=(255&t.charCodeAt(a+2))<<16;case 2:i^=(255&t.charCodeAt(a+1))<<8;case 1:i=1540483477*(65535&(i^=255&t.charCodeAt(a)))+((1540483477*(i>>>16)&65535)<<16);}return i=1540483477*(65535&(i^=i>>>13))+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0};})),ha=pa,fa=ca;ha.murmur3=pa,ha.murmur2=fa;var ya=function(){this.ids=[],this.positions=[],this.indexed=!1;};ya.prototype.add=function(t,e,r,n){this.ids.push(ma(t)),this.positions.push(e,r,n);},ya.prototype.getPositions=function(t){for(var e=ma(t),r=0,n=this.ids.length-1;r<n;){var i=r+n>>1;this.ids[i]>=e?n=i:r=i+1;}for(var a=[];this.ids[r]===e;)a.push({index:this.positions[3*r],start:this.positions[3*r+1],end:this.positions[3*r+2]}),r++;return a},ya.serialize=function(t,e){var r=new Float64Array(t.ids),n=new Uint32Array(t.positions);return function t(e,r,n,i){for(;n<i;){for(var a=e[n+i>>1],o=n-1,s=i+1;;){do{o++;}while(e[o]<a);do{s--;}while(e[s]>a);if(o>=s)break;va(e,o,s),va(r,3*o,3*s),va(r,3*o+1,3*s+1),va(r,3*o+2,3*s+2);}s-n<i-s?(t(e,r,n,s),n=s+1):(t(e,r,s+1,i),i=s);}}(r,n,0,r.length-1),e&&e.push(r.buffer,n.buffer),{ids:r,positions:n}},ya.deserialize=function(t){var e=new ya;return e.ids=t.ids,e.positions=t.positions,e.indexed=!0,e};var da=Math.pow(2,53)-1;function ma(t){var e=+t;return !isNaN(e)&&e<=da?e:ha(String(t))}function va(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}On("FeaturePositionMap",ya);var ga=function(t,e){this.gl=t.gl,this.location=e;},xa=function(t){function e(e,r){t.call(this,e,r),this.current=0;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1i(this.location,t));},e}(ga),ba=function(t){function e(e,r){t.call(this,e,r),this.current=0;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){this.current!==t&&(this.current=t,this.gl.uniform1f(this.location,t));},e}(ga),wa=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0];}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]||(this.current=t,this.gl.uniform2f(this.location,t[0],t[1]));},e}(ga),_a=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0,0];}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]||(this.current=t,this.gl.uniform3f(this.location,t[0],t[1],t[2]));},e}(ga),Aa=function(t){function e(e,r){t.call(this,e,r),this.current=[0,0,0,0];}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){t[0]===this.current[0]&&t[1]===this.current[1]&&t[2]===this.current[2]&&t[3]===this.current[3]||(this.current=t,this.gl.uniform4f(this.location,t[0],t[1],t[2],t[3]));},e}(ga),Sa=function(t){function e(e,r){t.call(this,e,r),this.current=te.transparent;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){t.r===this.current.r&&t.g===this.current.g&&t.b===this.current.b&&t.a===this.current.a||(this.current=t,this.gl.uniform4f(this.location,t.r,t.g,t.b,t.a));},e}(ga),ka=new Float32Array(16),Ia=function(t){function e(e,r){t.call(this,e,r),this.current=ka;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){if(t[12]!==this.current[12]||t[0]!==this.current[0])return this.current=t,void this.gl.uniformMatrix4fv(this.location,!1,t);for(var e=1;e<16;e++)if(t[e]!==this.current[e]){this.current=t,this.gl.uniformMatrix4fv(this.location,!1,t);break}},e}(ga);function za(t){return [ua(255*t.r,255*t.g),ua(255*t.b,255*t.a)]}var Ca=function(t,e,r){this.value=t,this.uniformNames=e.map((function(t){return "u_"+t})),this.type=r;};Ca.prototype.setUniform=function(t,e,r){t.set(r.constantOr(this.value));},Ca.prototype.getBinding=function(t,e,r){return "color"===this.type?new Sa(t,e):new ba(t,e)};var Ea=function(t,e){this.uniformNames=e.map((function(t){return "u_"+t})),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;};Ea.prototype.setConstantPatternPositions=function(t,e){this.pixelRatioFrom=e.pixelRatio,this.pixelRatioTo=t.pixelRatio,this.patternFrom=e.tlbr,this.patternTo=t.tlbr;},Ea.prototype.setUniform=function(t,e,r,n){var i="u_pattern_to"===n?this.patternTo:"u_pattern_from"===n?this.patternFrom:"u_pixel_ratio_to"===n?this.pixelRatioTo:"u_pixel_ratio_from"===n?this.pixelRatioFrom:null;i&&t.set(i);},Ea.prototype.getBinding=function(t,e,r){return "u_pattern"===r.substr(0,9)?new Aa(t,e):new ba(t,e)};var Pa=function(t,e,r,n){this.expression=t,this.type=r,this.maxValue=0,this.paintVertexAttributes=e.map((function(t){return {name:"a_"+t,type:"Float32",components:"color"===r?2:1,offset:0}})),this.paintVertexArray=new n;};Pa.prototype.populatePaintArray=function(t,e,r,n,i){var a=this.paintVertexArray.length,o=this.expression.evaluate(new si(0),e,{},n,[],i);this.paintVertexArray.resize(t),this._setPaintValue(a,t,o);},Pa.prototype.updatePaintArray=function(t,e,r,n){var i=this.expression.evaluate({zoom:0},r,n);this._setPaintValue(t,e,i);},Pa.prototype._setPaintValue=function(t,e,r){if("color"===this.type)for(var n=za(r),i=t;i<e;i++)this.paintVertexArray.emplace(i,n[0],n[1]);else {for(var a=t;a<e;a++)this.paintVertexArray.emplace(a,r);this.maxValue=Math.max(this.maxValue,Math.abs(r));}},Pa.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));},Pa.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();};var Ma=function(t,e,r,n,i,a){this.expression=t,this.uniformNames=e.map((function(t){return "u_"+t+"_t"})),this.type=r,this.useIntegerZoom=n,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=e.map((function(t){return {name:"a_"+t,type:"Float32",components:"color"===r?4:2,offset:0}})),this.paintVertexArray=new a;};Ma.prototype.populatePaintArray=function(t,e,r,n,i){var a=this.expression.evaluate(new si(this.zoom),e,{},n,[],i),o=this.expression.evaluate(new si(this.zoom+1),e,{},n,[],i),s=this.paintVertexArray.length;this.paintVertexArray.resize(t),this._setPaintValue(s,t,a,o);},Ma.prototype.updatePaintArray=function(t,e,r,n){var i=this.expression.evaluate({zoom:this.zoom},r,n),a=this.expression.evaluate({zoom:this.zoom+1},r,n);this._setPaintValue(t,e,i,a);},Ma.prototype._setPaintValue=function(t,e,r,n){if("color"===this.type)for(var i=za(r),a=za(n),o=t;o<e;o++)this.paintVertexArray.emplace(o,i[0],i[1],a[0],a[1]);else {for(var s=t;s<e;s++)this.paintVertexArray.emplace(s,r,n);this.maxValue=Math.max(this.maxValue,Math.abs(r),Math.abs(n));}},Ma.prototype.upload=function(t){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=t.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));},Ma.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();},Ma.prototype.setUniform=function(t,e){var r=this.useIntegerZoom?Math.floor(e.zoom):e.zoom,n=p(this.expression.interpolationFactor(r,this.zoom,this.zoom+1),0,1);t.set(n);},Ma.prototype.getBinding=function(t,e,r){return new ba(t,e)};var Ba=function(t,e,r,n,i,a){this.expression=t,this.type=e,this.useIntegerZoom=r,this.zoom=n,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i;};Ba.prototype.populatePaintArray=function(t,e,r){var n=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(t),this.zoomOutPaintVertexArray.resize(t),this._setPaintValues(n,t,e.patterns&&e.patterns[this.layerId],r);},Ba.prototype.updatePaintArray=function(t,e,r,n,i){this._setPaintValues(t,e,r.patterns&&r.patterns[this.layerId],i);},Ba.prototype._setPaintValues=function(t,e,r,n){if(n&&r){var i=n[r.min],a=n[r.mid],o=n[r.max];if(i&&a&&o)for(var s=t;s<e;s++)this.zoomInPaintVertexArray.emplace(s,a.tl[0],a.tl[1],a.br[0],a.br[1],i.tl[0],i.tl[1],i.br[0],i.br[1],a.pixelRatio,i.pixelRatio),this.zoomOutPaintVertexArray.emplace(s,a.tl[0],a.tl[1],a.br[0],a.br[1],o.tl[0],o.tl[1],o.br[0],o.br[1],a.pixelRatio,o.pixelRatio);}},Ba.prototype.upload=function(t){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=t.createVertexBuffer(this.zoomInPaintVertexArray,la.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=t.createVertexBuffer(this.zoomOutPaintVertexArray,la.members,this.expression.isStateDependent));},Ba.prototype.destroy=function(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy();};var Ta=function(t,e,r){this.binders={},this._buffers=[];var n=[];for(var i in t.paint._values)if(r(i)){var a=t.paint.get(i);if(a instanceof yi&&Tr(a.property.specification)){var o=Fa(i,t.type),s=a.value,u=a.property.specification.type,l=a.property.useIntegerZoom,p=a.property.specification["property-type"],c="cross-faded"===p||"cross-faded-data-driven"===p;if("constant"===s.kind)this.binders[i]=c?new Ea(s.value,o):new Ca(s.value,o,u),n.push("/u_"+i);else if("source"===s.kind||c){var h=Da(i,u,"source");this.binders[i]=c?new Ba(s,u,l,e,h,t.id):new Pa(s,o,u,h),n.push("/a_"+i);}else {var f=Da(i,u,"composite");this.binders[i]=new Ma(s,o,u,l,e,f),n.push("/z_"+i);}}}this.cacheKey=n.sort().join("");};Ta.prototype.getMaxValue=function(t){var e=this.binders[t];return e instanceof Pa||e instanceof Ma?e.maxValue:0},Ta.prototype.populatePaintArrays=function(t,e,r,n,i){for(var a in this.binders){var o=this.binders[a];(o instanceof Pa||o instanceof Ma||o instanceof Ba)&&o.populatePaintArray(t,e,r,n,i);}},Ta.prototype.setConstantPatternPositions=function(t,e){for(var r in this.binders){var n=this.binders[r];n instanceof Ea&&n.setConstantPatternPositions(t,e);}},Ta.prototype.updatePaintArrays=function(t,e,r,n,i){var a=!1;for(var o in t)for(var s=0,u=e.getPositions(o);s<u.length;s+=1){var l=u[s],p=r.feature(l.index);for(var c in this.binders){var h=this.binders[c];if((h instanceof Pa||h instanceof Ma||h instanceof Ba)&&!0===h.expression.isStateDependent){var f=n.paint.get(c);h.expression=f.value,h.updatePaintArray(l.start,l.end,p,t[o],i),a=!0;}}}return a},Ta.prototype.defines=function(){var t=[];for(var e in this.binders){var r=this.binders[e];(r instanceof Ca||r instanceof Ea)&&t.push.apply(t,r.uniformNames.map((function(t){return "#define HAS_UNIFORM_"+t})));}return t},Ta.prototype.getBinderAttributes=function(){var t=[];for(var e in this.binders){var r=this.binders[e];if(r instanceof Pa||r instanceof Ma)for(var n=0;n<r.paintVertexAttributes.length;n++)t.push(r.paintVertexAttributes[n].name);else if(r instanceof Ba)for(var i=0;i<la.members.length;i++)t.push(la.members[i].name);}return t},Ta.prototype.getBinderUniforms=function(){var t=[];for(var e in this.binders){var r=this.binders[e];if(r instanceof Ca||r instanceof Ea||r instanceof Ma)for(var n=0,i=r.uniformNames;n<i.length;n+=1)t.push(i[n]);}return t},Ta.prototype.getPaintVertexBuffers=function(){return this._buffers},Ta.prototype.getUniforms=function(t,e){var r=[];for(var n in this.binders){var i=this.binders[n];if(i instanceof Ca||i instanceof Ea||i instanceof Ma)for(var a=0,o=i.uniformNames;a<o.length;a+=1){var s=o[a];if(e[s]){var u=i.getBinding(t,e[s],s);r.push({name:s,property:n,binding:u});}}}return r},Ta.prototype.setUniforms=function(t,e,r,n){for(var i=0,a=e;i<a.length;i+=1){var o=a[i],s=o.name,u=o.property;this.binders[u].setUniform(o.binding,n,r.get(u),s);}},Ta.prototype.updatePaintBuffers=function(t){for(var e in this._buffers=[],this.binders){var r=this.binders[e];if(t&&r instanceof Ba){var n=2===t.fromScale?r.zoomInPaintVertexBuffer:r.zoomOutPaintVertexBuffer;n&&this._buffers.push(n);}else (r instanceof Pa||r instanceof Ma)&&r.paintVertexBuffer&&this._buffers.push(r.paintVertexBuffer);}},Ta.prototype.upload=function(t){for(var e in this.binders){var r=this.binders[e];(r instanceof Pa||r instanceof Ma||r instanceof Ba)&&r.upload(t);}this.updatePaintBuffers();},Ta.prototype.destroy=function(){for(var t in this.binders){var e=this.binders[t];(e instanceof Pa||e instanceof Ma||e instanceof Ba)&&e.destroy();}};var Va=function(t,e,r){void 0===r&&(r=function(){return !0}),this.programConfigurations={};for(var n=0,i=t;n<i.length;n+=1){var a=i[n];this.programConfigurations[a.id]=new Ta(a,e,r);}this.needsUpload=!1,this._featureMap=new ya,this._bufferOffset=0;};function Fa(t,e){return {"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[t]||[t.replace(e+"-","").replace(/-/g,"_")]}function Da(t,e,r){var n={color:{source:Bi,composite:Hi},number:{source:Ki,composite:Bi}},i=function(t){return {"line-pattern":{source:Ti,composite:Ti},"fill-pattern":{source:Ti,composite:Ti},"fill-extrusion-pattern":{source:Ti,composite:Ti}}[t]}(t);return i&&i[r]||n[e][r]}Va.prototype.populatePaintArrays=function(t,e,r,n,i,a){for(var o in this.programConfigurations)this.programConfigurations[o].populatePaintArrays(t,e,n,i,a);void 0!==e.id&&this._featureMap.add(e.id,r,this._bufferOffset,t),this._bufferOffset=t,this.needsUpload=!0;},Va.prototype.updatePaintArrays=function(t,e,r,n){for(var i=0,a=r;i<a.length;i+=1){var o=a[i];this.needsUpload=this.programConfigurations[o.id].updatePaintArrays(t,this._featureMap,e,o,n)||this.needsUpload;}},Va.prototype.get=function(t){return this.programConfigurations[t]},Va.prototype.upload=function(t){if(this.needsUpload){for(var e in this.programConfigurations)this.programConfigurations[e].upload(t);this.needsUpload=!1;}},Va.prototype.destroy=function(){for(var t in this.programConfigurations)this.programConfigurations[t].destroy();},On("ConstantBinder",Ca),On("CrossFadedConstantBinder",Ea),On("SourceExpressionBinder",Pa),On("CrossFadedCompositeBinder",Ba),On("CompositeExpressionBinder",Ma),On("ProgramConfiguration",Ta,{omit:["_buffers"]}),On("ProgramConfigurationSet",Va);var La=Math.pow(2,14)-1,Oa=-La-1;function Ra(t){for(var e=8192/t.extent,r=t.loadGeometry(),n=0;n<r.length;n++)for(var i=r[n],a=0;a<i.length;a++){var o=i[a],s=Math.round(o.x*e),u=Math.round(o.y*e);o.x=p(s,Oa,La),o.y=p(u,Oa,La),(s<o.x||s>o.x+1||u<o.y||u>o.y+1)&&A("Geometry exceeds allowed extent, reduce your vector tile buffer size");}return r}function Ua(t,e){return {type:t.type,id:t.id,properties:t.properties,geometry:e?Ra(t):[]}}function ja(t,e,r,n,i){t.emplaceBack(2*e+(n+1)/2,2*r+(i+1)/2);}var qa=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Ci,this.indexArray=new ji,this.segments=new sa,this.programConfigurations=new Va(t.layers,t.zoom),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};function Na(t,e){for(var r=0;r<t.length;r++)if(Wa(e,t[r]))return !0;for(var n=0;n<e.length;n++)if(Wa(t,e[n]))return !0;return !!Xa(t,e)}function Ka(t,e,r){return !!Wa(t,e)||!!Ha(e,t,r)}function Ga(t,e){if(1===t.length)return $a(e,t[0]);for(var r=0;r<e.length;r++)for(var n=e[r],i=0;i<n.length;i++)if(Wa(t,n[i]))return !0;for(var a=0;a<t.length;a++)if($a(e,t[a]))return !0;for(var o=0;o<e.length;o++)if(Xa(t,e[o]))return !0;return !1}function Za(t,e,r){if(t.length>1){if(Xa(t,e))return !0;for(var n=0;n<e.length;n++)if(Ha(e[n],t,r))return !0}for(var i=0;i<t.length;i++)if(Ha(t[i],e,r))return !0;return !1}function Xa(t,e){if(0===t.length||0===e.length)return !1;for(var r=0;r<t.length-1;r++)for(var n=t[r],i=t[r+1],a=0;a<e.length-1;a++)if(Ja(n,i,e[a],e[a+1]))return !0;return !1}function Ja(t,e,r,n){return S(t,r,n)!==S(e,r,n)&&S(t,e,r)!==S(t,e,n)}function Ha(t,e,r){var n=r*r;if(1===e.length)return t.distSqr(e[0])<n;for(var i=1;i<e.length;i++)if(Ya(t,e[i-1],e[i])<n)return !0;return !1}function Ya(t,e,r){var n=e.distSqr(r);if(0===n)return t.distSqr(e);var i=((t.x-e.x)*(r.x-e.x)+(t.y-e.y)*(r.y-e.y))/n;return t.distSqr(i<0?e:i>1?r:r.sub(e)._mult(i)._add(e))}function $a(t,e){for(var r,n,i,a=!1,o=0;o<t.length;o++)for(var s=0,u=(r=t[o]).length-1;s<r.length;u=s++)(n=r[s]).y>e.y!=(i=r[u]).y>e.y&&e.x<(i.x-n.x)*(e.y-n.y)/(i.y-n.y)+n.x&&(a=!a);return a}function Wa(t,e){for(var r=!1,n=0,i=t.length-1;n<t.length;i=n++){var a=t[n],o=t[i];a.y>e.y!=o.y>e.y&&e.x<(o.x-a.x)*(e.y-a.y)/(o.y-a.y)+a.x&&(r=!r);}return r}function Qa(t,e,r){var n=r[0],i=r[2];if(t.x<n.x&&e.x<n.x||t.x>i.x&&e.x>i.x||t.y<n.y&&e.y<n.y||t.y>i.y&&e.y>i.y)return !1;var a=S(t,e,r[0]);return a!==S(t,e,r[1])||a!==S(t,e,r[2])||a!==S(t,e,r[3])}function to(t,e,r){var n=e.paint.get(t).value;return "constant"===n.kind?n.value:r.programConfigurations.get(e.id).getMaxValue(t)}function eo(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ro(t,e,r,n,a){if(!e[0]&&!e[1])return t;var o=i.convert(e)._mult(a);"viewport"===r&&o._rotate(-n);for(var s=[],u=0;u<t.length;u++)s.push(t[u].sub(o));return s}qa.prototype.populate=function(t,e,r){var n=this.layers[0],i=[],a=null;"circle"===n.type&&(a=n.layout.get("circle-sort-key"));for(var o=0,s=t;o<s.length;o+=1){var u=s[o],l=u.feature,p=u.id,c=u.index,h=u.sourceLayerIndex,f=this.layers[0]._featureFilter.needGeometry,y=Ua(l,f);if(this.layers[0]._featureFilter.filter(new si(this.zoom),y,r)){var d=a?a.evaluate(y,{},r):void 0,m={id:p,properties:l.properties,type:l.type,sourceLayerIndex:h,index:c,geometry:f?y.geometry:Ra(l),patterns:{},sortKey:d};i.push(m);}}a&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var v=0,g=i;v<g.length;v+=1){var x=g[v],b=x.geometry,w=x.index,_=x.sourceLayerIndex,A=t[w].feature;this.addFeature(x,b,w,r),e.featureIndex.insert(A,b,w,_,this.index);}},qa.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);},qa.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},qa.prototype.uploadPending=function(){return !this.uploaded||this.programConfigurations.needsUpload},qa.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,oa),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;},qa.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());},qa.prototype.addFeature=function(t,e,r,n){for(var i=0,a=e;i<a.length;i+=1)for(var o=0,s=a[i];o<s.length;o+=1){var u=s[o],l=u.x,p=u.y;if(!(l<0||l>=8192||p<0||p>=8192)){var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,t.sortKey),h=c.vertexLength;ja(this.layoutVertexArray,l,p,-1,-1),ja(this.layoutVertexArray,l,p,1,-1),ja(this.layoutVertexArray,l,p,1,1),ja(this.layoutVertexArray,l,p,-1,1),this.indexArray.emplaceBack(h,h+1,h+2),this.indexArray.emplaceBack(h,h+3,h+2),c.vertexLength+=4,c.primitiveLength+=2;}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,{},n);},On("CircleBucket",qa,{omit:["layers"]});var no=new wi({"circle-sort-key":new vi(Et.layout_circle["circle-sort-key"])}),io={paint:new wi({"circle-radius":new vi(Et.paint_circle["circle-radius"]),"circle-color":new vi(Et.paint_circle["circle-color"]),"circle-blur":new vi(Et.paint_circle["circle-blur"]),"circle-opacity":new vi(Et.paint_circle["circle-opacity"]),"circle-translate":new mi(Et.paint_circle["circle-translate"]),"circle-translate-anchor":new mi(Et.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new mi(Et.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new mi(Et.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new vi(Et.paint_circle["circle-stroke-width"]),"circle-stroke-color":new vi(Et.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new vi(Et.paint_circle["circle-stroke-opacity"])}),layout:no},ao="undefined"!=typeof Float32Array?Float32Array:Array;function oo(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function so(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],l=e[6],p=e[7],c=e[8],h=e[9],f=e[10],y=e[11],d=e[12],m=e[13],v=e[14],g=e[15],x=r[0],b=r[1],w=r[2],_=r[3];return t[0]=x*n+b*s+w*c+_*d,t[1]=x*i+b*u+w*h+_*m,t[2]=x*a+b*l+w*f+_*v,t[3]=x*o+b*p+w*y+_*g,t[4]=(x=r[4])*n+(b=r[5])*s+(w=r[6])*c+(_=r[7])*d,t[5]=x*i+b*u+w*h+_*m,t[6]=x*a+b*l+w*f+_*v,t[7]=x*o+b*p+w*y+_*g,t[8]=(x=r[8])*n+(b=r[9])*s+(w=r[10])*c+(_=r[11])*d,t[9]=x*i+b*u+w*h+_*m,t[10]=x*a+b*l+w*f+_*v,t[11]=x*o+b*p+w*y+_*g,t[12]=(x=r[12])*n+(b=r[13])*s+(w=r[14])*c+(_=r[15])*d,t[13]=x*i+b*u+w*h+_*m,t[14]=x*a+b*l+w*f+_*v,t[15]=x*o+b*p+w*y+_*g,t}Math.hypot||(Math.hypot=function(){for(var t=arguments,e=0,r=arguments.length;r--;)e+=t[r]*t[r];return Math.sqrt(e)});var uo,lo=so;function po(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*a+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*a+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*a+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*a+r[15]*o,t}uo=new ao(3),ao!=Float32Array&&(uo[0]=0,uo[1]=0,uo[2]=0),function(){var t=new ao(4);ao!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0);}();var co=(function(){var t=new ao(2);ao!=Float32Array&&(t[0]=0,t[1]=0);}(),function(t){function e(e){t.call(this,e,io);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new qa(t)},e.prototype.queryRadius=function(t){var e=t;return to("circle-radius",this,e)+to("circle-stroke-width",this,e)+eo(this.paint.get("circle-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o,s){for(var u=ro(t,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),a.angle,o),l=this.paint.get("circle-radius").evaluate(e,r)+this.paint.get("circle-stroke-width").evaluate(e,r),p="map"===this.paint.get("circle-pitch-alignment"),c=p?u:function(t,e){return t.map((function(t){return ho(t,e)}))}(u,s),h=p?l*o:l,f=0,y=n;f<y.length;f+=1)for(var d=0,m=y[f];d<m.length;d+=1){var v=m[d],g=p?v:ho(v,s),x=h,b=po([],[v.x,v.y,0,1],s);if("viewport"===this.paint.get("circle-pitch-scale")&&"map"===this.paint.get("circle-pitch-alignment")?x*=b[3]/a.cameraToCenterDistance:"map"===this.paint.get("circle-pitch-scale")&&"viewport"===this.paint.get("circle-pitch-alignment")&&(x*=a.cameraToCenterDistance/b[3]),Ka(c,g,x))return !0}return !1},e}(_i));function ho(t,e){var r=po([],[t.x,t.y,0,1],e);return new i(r[0]/r[3],r[1]/r[3])}var fo=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(qa);function yo(t,e,r,n){var i=e.width,a=e.height;if(n){if(n instanceof Uint8ClampedArray)n=new Uint8Array(n.buffer);else if(n.length!==i*a*r)throw new RangeError("mismatched image size")}else n=new Uint8Array(i*a*r);return t.width=i,t.height=a,t.data=n,t}function mo(t,e,r){var n=e.width,i=e.height;if(n!==t.width||i!==t.height){var a=yo({},{width:n,height:i},r);vo(t,a,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,i)},r),t.width=n,t.height=i,t.data=a.data;}}function vo(t,e,r,n,i,a){if(0===i.width||0===i.height)return e;if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw new RangeError("out of range destination coordinates for image copy");for(var o=t.data,s=e.data,u=0;u<i.height;u++)for(var l=((r.y+u)*t.width+r.x)*a,p=((n.y+u)*e.width+n.x)*a,c=0;c<i.width*a;c++)s[p+c]=o[l+c];return e}On("HeatmapBucket",fo,{omit:["layers"]});var go=function(t,e){yo(this,t,1,e);};go.prototype.resize=function(t){mo(this,t,1);},go.prototype.clone=function(){return new go({width:this.width,height:this.height},new Uint8Array(this.data))},go.copy=function(t,e,r,n,i){vo(t,e,r,n,i,1);};var xo=function(t,e){yo(this,t,4,e);};xo.prototype.resize=function(t){mo(this,t,4);},xo.prototype.replace=function(t,e){e?this.data.set(t):this.data=t instanceof Uint8ClampedArray?new Uint8Array(t.buffer):t;},xo.prototype.clone=function(){return new xo({width:this.width,height:this.height},new Uint8Array(this.data))},xo.copy=function(t,e,r,n,i){vo(t,e,r,n,i,4);},On("AlphaImage",go),On("RGBAImage",xo);var bo={paint:new wi({"heatmap-radius":new vi(Et.paint_heatmap["heatmap-radius"]),"heatmap-weight":new vi(Et.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new mi(Et.paint_heatmap["heatmap-intensity"]),"heatmap-color":new bi(Et.paint_heatmap["heatmap-color"]),"heatmap-opacity":new mi(Et.paint_heatmap["heatmap-opacity"])})};function wo(t){var e={},r=t.resolution||256,n=t.clips?t.clips.length:1,i=t.image||new xo({width:r,height:n}),a=function(r,n,a){e[t.evaluationKey]=a;var o=t.expression.evaluate(e);i.data[r+n+0]=Math.floor(255*o.r/o.a),i.data[r+n+1]=Math.floor(255*o.g/o.a),i.data[r+n+2]=Math.floor(255*o.b/o.a),i.data[r+n+3]=Math.floor(255*o.a);};if(t.clips)for(var o=0,s=0;o<n;++o,s+=4*r)for(var u=0,l=0;u<r;u++,l+=4){var p=u/(r-1),c=t.clips[o];a(s,l,c.start*(1-p)+c.end*p);}else for(var h=0,f=0;h<r;h++,f+=4)a(0,f,h/(r-1));return i}var _o=function(t){function e(e){t.call(this,e,bo),this._updateColorRamp();}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new fo(t)},e.prototype._handleSpecialPaintPropertyUpdate=function(t){"heatmap-color"===t&&this._updateColorRamp();},e.prototype._updateColorRamp=function(){this.colorRamp=wo({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null;},e.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null);},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return !1},e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get("heatmap-opacity")&&"none"!==this.visibility},e}(_i),Ao={paint:new wi({"hillshade-illumination-direction":new mi(Et.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-anchor":new mi(Et.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new mi(Et.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new mi(Et.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new mi(Et.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new mi(Et.paint_hillshade["hillshade-accent-color"])})},So=function(t){function e(e){t.call(this,e,Ao);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.hasOffscreenPass=function(){return 0!==this.paint.get("hillshade-exaggeration")&&"none"!==this.visibility},e}(_i),ko=Ii([{name:"a_pos",components:2,type:"Int16"}],4).members,Io=Co,zo=Co;function Co(t,e,r){r=r||2;var n,i,a,o,s,u,l,p=e&&e.length,c=p?e[0]*r:t.length,h=Eo(t,0,c,r,!0),f=[];if(!h||h.next===h.prev)return f;if(p&&(h=function(t,e,r,n){var i,a,o,s=[];for(i=0,a=e.length;i<a;i++)(o=Eo(t,e[i]*n,i<a-1?e[i+1]*n:t.length,n,!1))===o.next&&(o.steiner=!0),s.push(Uo(o));for(s.sort(Do),i=0;i<s.length;i++)Lo(s[i],r),r=Po(r,r.next);return r}(t,e,h,r)),t.length>80*r){n=a=t[0],i=o=t[1];for(var y=r;y<c;y+=r)(s=t[y])<n&&(n=s),(u=t[y+1])<i&&(i=u),s>a&&(a=s),u>o&&(o=u);l=0!==(l=Math.max(a-n,o-i))?1/l:0;}return Mo(h,f,r,n,i,l),f}function Eo(t,e,r,n,i){var a,o;if(i===Qo(t,e,r,n)>0)for(a=e;a<r;a+=n)o=Yo(a,t[a],t[a+1],o);else for(a=r-n;a>=e;a-=n)o=Yo(a,t[a],t[a+1],o);return o&&Ko(o,o.next)&&($o(o),o=o.next),o}function Po(t,e){if(!t)return t;e||(e=t);var r,n=t;do{if(r=!1,n.steiner||!Ko(n,n.next)&&0!==No(n.prev,n,n.next))n=n.next;else {if($o(n),(n=e=n.prev)===n.next)break;r=!0;}}while(r||n!==e);return e}function Mo(t,e,r,n,i,a,o){if(t){!o&&a&&function(t,e,r,n){var i=t;do{null===i.z&&(i.z=Ro(i.x,i.y,e,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var e,r,n,i,a,o,s,u,l=1;do{for(r=t,t=null,a=null,o=0;r;){for(o++,n=r,s=0,e=0;e<l&&(s++,n=n.nextZ);e++);for(u=l;s>0||u>0&&n;)0!==s&&(0===u||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:t=i,i.prevZ=a,a=i;r=n;}a.nextZ=null,l*=2;}while(o>1)}(i);}(t,n,i,a);for(var s,u,l=t;t.prev!==t.next;)if(s=t.prev,u=t.next,a?To(t,n,i,a):Bo(t))e.push(s.i/r),e.push(t.i/r),e.push(u.i/r),$o(t),t=u.next,l=u.next;else if((t=u)===l){o?1===o?Mo(t=Vo(Po(t),e,r),e,r,n,i,a,2):2===o&&Fo(t,e,r,n,i,a):Mo(Po(t),e,r,n,i,a,1);break}}}function Bo(t){var e=t.prev,r=t,n=t.next;if(No(e,r,n)>=0)return !1;for(var i=t.next.next;i!==t.prev;){if(jo(e.x,e.y,r.x,r.y,n.x,n.y,i.x,i.y)&&No(i.prev,i,i.next)>=0)return !1;i=i.next;}return !0}function To(t,e,r,n){var i=t.prev,a=t,o=t.next;if(No(i,a,o)>=0)return !1;for(var s=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,u=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,l=Ro(i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,e,r,n),p=Ro(s,u,e,r,n),c=t.prevZ,h=t.nextZ;c&&c.z>=l&&h&&h.z<=p;){if(c!==t.prev&&c!==t.next&&jo(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&No(c.prev,c,c.next)>=0)return !1;if(c=c.prevZ,h!==t.prev&&h!==t.next&&jo(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&No(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}for(;c&&c.z>=l;){if(c!==t.prev&&c!==t.next&&jo(i.x,i.y,a.x,a.y,o.x,o.y,c.x,c.y)&&No(c.prev,c,c.next)>=0)return !1;c=c.prevZ;}for(;h&&h.z<=p;){if(h!==t.prev&&h!==t.next&&jo(i.x,i.y,a.x,a.y,o.x,o.y,h.x,h.y)&&No(h.prev,h,h.next)>=0)return !1;h=h.nextZ;}return !0}function Vo(t,e,r){var n=t;do{var i=n.prev,a=n.next.next;!Ko(i,a)&&Go(i,n,n.next,a)&&Jo(i,a)&&Jo(a,i)&&(e.push(i.i/r),e.push(n.i/r),e.push(a.i/r),$o(n),$o(n.next),n=t=a),n=n.next;}while(n!==t);return Po(n)}function Fo(t,e,r,n,i,a){var o=t;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&qo(o,s)){var u=Ho(o,s);return o=Po(o,o.next),u=Po(u,u.next),Mo(o,e,r,n,i,a),void Mo(u,e,r,n,i,a)}s=s.next;}o=o.next;}while(o!==t)}function Do(t,e){return t.x-e.x}function Lo(t,e){if(e=function(t,e){var r,n=e,i=t.x,a=t.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y&&n.next.y!==n.y){var s=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(s<=i&&s>o){if(o=s,s===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next;}}n=n.next;}while(n!==e);if(!r)return null;if(i===o)return r;var u,l=r,p=r.x,c=r.y,h=1/0;n=r;do{i>=n.x&&n.x>=p&&i!==n.x&&jo(a<c?i:o,a,p,c,a<c?o:i,a,n.x,n.y)&&(u=Math.abs(a-n.y)/(i-n.x),Jo(n,t)&&(u<h||u===h&&(n.x>r.x||n.x===r.x&&Oo(r,n)))&&(r=n,h=u)),n=n.next;}while(n!==l);return r}(t,e)){var r=Ho(e,t);Po(e,e.next),Po(r,r.next);}}function Oo(t,e){return No(t.prev,t,e.prev)<0&&No(e.next,t,t.next)<0}function Ro(t,e,r,n,i){return (t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*i)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)*i)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function Uo(t){var e=t,r=t;do{(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;}while(e!==t);return r}function jo(t,e,r,n,i,a,o,s){return (i-o)*(e-s)-(t-o)*(a-s)>=0&&(t-o)*(n-s)-(r-o)*(e-s)>=0&&(r-o)*(a-s)-(i-o)*(n-s)>=0}function qo(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){var r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Go(r,r.next,t,e))return !0;r=r.next;}while(r!==t);return !1}(t,e)&&(Jo(t,e)&&Jo(e,t)&&function(t,e){var r=t,n=!1,i=(t.x+e.x)/2,a=(t.y+e.y)/2;do{r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;}while(r!==t);return n}(t,e)&&(No(t.prev,t,e.prev)||No(t,e.prev,e))||Ko(t,e)&&No(t.prev,t,t.next)>0&&No(e.prev,e,e.next)>0)}function No(t,e,r){return (e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Ko(t,e){return t.x===e.x&&t.y===e.y}function Go(t,e,r,n){var i=Xo(No(t,e,r)),a=Xo(No(t,e,n)),o=Xo(No(r,n,t)),s=Xo(No(r,n,e));return i!==a&&o!==s||!(0!==i||!Zo(t,r,e))||!(0!==a||!Zo(t,n,e))||!(0!==o||!Zo(r,t,n))||!(0!==s||!Zo(r,e,n))}function Zo(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Xo(t){return t>0?1:t<0?-1:0}function Jo(t,e){return No(t.prev,t,t.next)<0?No(t,e,t.next)>=0&&No(t,t.prev,e)>=0:No(t,e,t.prev)<0||No(t,t.next,e)<0}function Ho(t,e){var r=new Wo(t.i,t.x,t.y),n=new Wo(e.i,e.x,e.y),i=t.next,a=e.prev;return t.next=e,e.prev=t,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function Yo(t,e,r,n){var i=new Wo(t,e,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function $o(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ);}function Wo(t,e,r){this.i=t,this.x=e,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1;}function Qo(t,e,r,n){for(var i=0,a=e,o=r-n;a<r;a+=n)i+=(t[o]-t[a])*(t[a+1]+t[o+1]),o=a;return i}function ts(t,e,r,n,i){!function t(e,r,n,i,a){for(;i>n;){if(i-n>600){var o=i-n+1,s=r-n+1,u=Math.log(o),l=.5*Math.exp(2*u/3),p=.5*Math.sqrt(u*l*(o-l)/o)*(s-o/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-s*l/o+p)),Math.min(i,Math.floor(r+(o-s)*l/o+p)),a);}var c=e[r],h=n,f=i;for(es(e,n,r),a(e[i],c)>0&&es(e,n,i);h<f;){for(es(e,h,f),h++,f--;a(e[h],c)<0;)h++;for(;a(e[f],c)>0;)f--;}0===a(e[n],c)?es(e,n,f):es(e,++f,i),f<=r&&(n=f+1),r<=f&&(i=f-1);}}(t,e,r||0,n||t.length-1,i||rs);}function es(t,e,r){var n=t[e];t[e]=t[r],t[r]=n;}function rs(t,e){return t<e?-1:t>e?1:0}function ns(t,e){var r=t.length;if(r<=1)return [t];for(var n,i,a=[],o=0;o<r;o++){var s=k(t[o]);0!==s&&(t[o].area=Math.abs(s),void 0===i&&(i=s<0),i===s<0?(n&&a.push(n),n=[t[o]]):n.push(t[o]));}if(n&&a.push(n),e>1)for(var u=0;u<a.length;u++)a[u].length<=e||(ts(a[u],e,1,a[u].length-1,is),a[u]=a[u].slice(0,e));return a}function is(t,e){return e.area-t.area}function as(t,e,r){for(var n=r.patternDependencies,i=!1,a=0,o=e;a<o.length;a+=1){var s=o[a].paint.get(t+"-pattern");s.isConstant()||(i=!0);var u=s.constantOr(null);u&&(i=!0,n[u.to]=!0,n[u.from]=!0);}return i}function os(t,e,r,n,i){for(var a=i.patternDependencies,o=0,s=e;o<s.length;o+=1){var u=s[o],l=u.paint.get(t+"-pattern").value;if("constant"!==l.kind){var p=l.evaluate({zoom:n-1},r,{},i.availableImages),c=l.evaluate({zoom:n},r,{},i.availableImages),h=l.evaluate({zoom:n+1},r,{},i.availableImages);c=c&&c.name?c.name:c,h=h&&h.name?h.name:h,a[p=p&&p.name?p.name:p]=!0,a[c]=!0,a[h]=!0,r.patterns[u.id]={min:p,mid:c,max:h};}}return r}Co.deviation=function(t,e,r,n){var i=e&&e.length,a=Math.abs(Qo(t,0,i?e[0]*r:t.length,r));if(i)for(var o=0,s=e.length;o<s;o++)a-=Math.abs(Qo(t,e[o]*r,o<s-1?e[o+1]*r:t.length,r));var u=0;for(o=0;o<n.length;o+=3){var l=n[o]*r,p=n[o+1]*r,c=n[o+2]*r;u+=Math.abs((t[l]-t[c])*(t[p+1]-t[l+1])-(t[l]-t[p])*(t[c+1]-t[l+1]));}return 0===a&&0===u?0:Math.abs((u-a)/a)},Co.flatten=function(t){for(var e=t[0][0].length,r={vertices:[],holes:[],dimensions:e},n=0,i=0;i<t.length;i++){for(var a=0;a<t[i].length;a++)for(var o=0;o<e;o++)r.vertices.push(t[i][a][o]);i>0&&r.holes.push(n+=t[i-1].length);}return r},Io.default=zo;var ss=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Ci,this.indexArray=new ji,this.indexArray2=new Xi,this.programConfigurations=new Va(t.layers,t.zoom),this.segments=new sa,this.segments2=new sa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};ss.prototype.populate=function(t,e,r){this.hasPattern=as("fill",this.layers,e);for(var n=this.layers[0].layout.get("fill-sort-key"),i=[],a=0,o=t;a<o.length;a+=1){var s=o[a],u=s.feature,l=s.id,p=s.index,c=s.sourceLayerIndex,h=this.layers[0]._featureFilter.needGeometry,f=Ua(u,h);if(this.layers[0]._featureFilter.filter(new si(this.zoom),f,r)){var y=n?n.evaluate(f,{},r,e.availableImages):void 0,d={id:l,properties:u.properties,type:u.type,sourceLayerIndex:c,index:p,geometry:h?f.geometry:Ra(u),patterns:{},sortKey:y};i.push(d);}}n&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var m=0,v=i;m<v.length;m+=1){var g=v[m],x=g.geometry,b=g.index,w=g.sourceLayerIndex;if(this.hasPattern){var _=os("fill",this.layers,g,this.zoom,e);this.patternFeatures.push(_);}else this.addFeature(g,x,b,r,{});e.featureIndex.insert(t[b].feature,x,b,w,this.index);}},ss.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);},ss.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.patternFeatures;n<i.length;n+=1){var a=i[n];this.addFeature(a,a.geometry,a.index,e,r);}},ss.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},ss.prototype.uploadPending=function(){return !this.uploaded||this.programConfigurations.needsUpload},ss.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,ko),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.indexBuffer2=t.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(t),this.uploaded=!0;},ss.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());},ss.prototype.addFeature=function(t,e,r,n,i){for(var a=0,o=ns(e,500);a<o.length;a+=1){for(var s=o[a],u=0,l=0,p=s;l<p.length;l+=1)u+=p[l].length;for(var c=this.segments.prepareSegment(u,this.layoutVertexArray,this.indexArray),h=c.vertexLength,f=[],y=[],d=0,m=s;d<m.length;d+=1){var v=m[d];if(0!==v.length){v!==s[0]&&y.push(f.length/2);var g=this.segments2.prepareSegment(v.length,this.layoutVertexArray,this.indexArray2),x=g.vertexLength;this.layoutVertexArray.emplaceBack(v[0].x,v[0].y),this.indexArray2.emplaceBack(x+v.length-1,x),f.push(v[0].x),f.push(v[0].y);for(var b=1;b<v.length;b++)this.layoutVertexArray.emplaceBack(v[b].x,v[b].y),this.indexArray2.emplaceBack(x+b-1,x+b),f.push(v[b].x),f.push(v[b].y);g.vertexLength+=v.length,g.primitiveLength+=v.length;}}for(var w=Io(f,y),_=0;_<w.length;_+=3)this.indexArray.emplaceBack(h+w[_],h+w[_+1],h+w[_+2]);c.vertexLength+=u,c.primitiveLength+=w.length/3;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n);},On("FillBucket",ss,{omit:["layers","patternFeatures"]});var us=new wi({"fill-sort-key":new vi(Et.layout_fill["fill-sort-key"])}),ls={paint:new wi({"fill-antialias":new mi(Et.paint_fill["fill-antialias"]),"fill-opacity":new vi(Et.paint_fill["fill-opacity"]),"fill-color":new vi(Et.paint_fill["fill-color"]),"fill-outline-color":new vi(Et.paint_fill["fill-outline-color"]),"fill-translate":new mi(Et.paint_fill["fill-translate"]),"fill-translate-anchor":new mi(Et.paint_fill["fill-translate-anchor"]),"fill-pattern":new gi(Et.paint_fill["fill-pattern"])}),layout:us},ps=function(t){function e(e){t.call(this,e,ls);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r);var n=this.paint._values["fill-outline-color"];"constant"===n.value.kind&&void 0===n.value.value&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"]);},e.prototype.createBucket=function(t){return new ss(t)},e.prototype.queryRadius=function(){return eo(this.paint.get("fill-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,i,a,o){return Ga(ro(t,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),a.angle,o),n)},e.prototype.isTileClipped=function(){return !0},e}(_i),cs=Ii([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4).members,hs=fs;function fs(t,e,r,n,i){this.properties={},this.extent=r,this.type=0,this._pbf=t,this._geometry=-1,this._keys=n,this._values=i,t.readFields(ys,this,e);}function ys(t,e,r){1==t?e.id=r.readVarint():2==t?function(t,e){for(var r=t.readVarint()+t.pos;t.pos<r;){var n=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[n]=i;}}(r,e):3==t?e.type=r.readVarint():4==t&&(e._geometry=r.pos);}function ds(t){for(var e,r,n=0,i=0,a=t.length,o=a-1;i<a;o=i++)n+=((r=t[o]).x-(e=t[i]).x)*(e.y+r.y);return n}fs.types=["Unknown","Point","LineString","Polygon"],fs.prototype.loadGeometry=function(){var t=this._pbf;t.pos=this._geometry;for(var e,r=t.readVarint()+t.pos,n=1,a=0,o=0,s=0,u=[];t.pos<r;){if(a<=0){var l=t.readVarint();n=7&l,a=l>>3;}if(a--,1===n||2===n)o+=t.readSVarint(),s+=t.readSVarint(),1===n&&(e&&u.push(e),e=[]),e.push(new i(o,s));else {if(7!==n)throw new Error("unknown command "+n);e&&e.push(e[0].clone());}}return e&&u.push(e),u},fs.prototype.bbox=function(){var t=this._pbf;t.pos=this._geometry;for(var e=t.readVarint()+t.pos,r=1,n=0,i=0,a=0,o=1/0,s=-1/0,u=1/0,l=-1/0;t.pos<e;){if(n<=0){var p=t.readVarint();r=7&p,n=p>>3;}if(n--,1===r||2===r)(i+=t.readSVarint())<o&&(o=i),i>s&&(s=i),(a+=t.readSVarint())<u&&(u=a),a>l&&(l=a);else if(7!==r)throw new Error("unknown command "+r)}return [o,u,s,l]},fs.prototype.toGeoJSON=function(t,e,r){var n,i,a=this.extent*Math.pow(2,r),o=this.extent*t,s=this.extent*e,u=this.loadGeometry(),l=fs.types[this.type];function p(t){for(var e=0;e<t.length;e++){var r=t[e];t[e]=[360*(r.x+o)/a-180,360/Math.PI*Math.atan(Math.exp((180-360*(r.y+s)/a)*Math.PI/180))-90];}}switch(this.type){case 1:var c=[];for(n=0;n<u.length;n++)c[n]=u[n][0];p(u=c);break;case 2:for(n=0;n<u.length;n++)p(u[n]);break;case 3:for(u=function(t){var e=t.length;if(e<=1)return [t];for(var r,n,i=[],a=0;a<e;a++){var o=ds(t[a]);0!==o&&(void 0===n&&(n=o<0),n===o<0?(r&&i.push(r),r=[t[a]]):r.push(t[a]));}return r&&i.push(r),i}(u),n=0;n<u.length;n++)for(i=0;i<u[n].length;i++)p(u[n][i]);}1===u.length?u=u[0]:l="Multi"+l;var h={type:"Feature",geometry:{type:l,coordinates:u},properties:this.properties};return "id"in this&&(h.id=this.id),h};var ms=vs;function vs(t,e){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(gs,this,e),this.length=this._features.length;}function gs(t,e,r){15===t?e.version=r.readVarint():1===t?e.name=r.readString():5===t?e.extent=r.readVarint():2===t?e._features.push(r.pos):3===t?e._keys.push(r.readString()):4===t&&e._values.push(function(t){for(var e=null,r=t.readVarint()+t.pos;t.pos<r;){var n=t.readVarint()>>3;e=1===n?t.readString():2===n?t.readFloat():3===n?t.readDouble():4===n?t.readVarint64():5===n?t.readVarint():6===n?t.readSVarint():7===n?t.readBoolean():null;}return e}(r));}function xs(t,e,r){if(3===t){var n=new ms(r,r.readVarint()+r.pos);n.length&&(e[n.name]=n);}}vs.prototype.feature=function(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];var e=this._pbf.readVarint()+this._pbf.pos;return new hs(this._pbf,e,this.extent,this._keys,this._values)};var bs={VectorTile:function(t,e){this.layers=t.readFields(xs,{},e);},VectorTileFeature:hs,VectorTileLayer:ms},ws=bs.VectorTileFeature.types,_s=Math.pow(2,13);function As(t,e,r,n,i,a,o,s){t.emplaceBack(e,r,2*Math.floor(n*_s)+o,i*_s*2,a*_s*2,Math.round(s));}var Ss=function(t){this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.layoutVertexArray=new Pi,this.indexArray=new ji,this.programConfigurations=new Va(t.layers,t.zoom),this.segments=new sa,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};function ks(t,e){return t.x===e.x&&(t.x<0||t.x>8192)||t.y===e.y&&(t.y<0||t.y>8192)}Ss.prototype.populate=function(t,e,r){this.features=[],this.hasPattern=as("fill-extrusion",this.layers,e);for(var n=0,i=t;n<i.length;n+=1){var a=i[n],o=a.feature,s=a.id,u=a.index,l=a.sourceLayerIndex,p=this.layers[0]._featureFilter.needGeometry,c=Ua(o,p);if(this.layers[0]._featureFilter.filter(new si(this.zoom),c,r)){var h={id:s,sourceLayerIndex:l,index:u,geometry:p?c.geometry:Ra(o),properties:o.properties,type:o.type,patterns:{}};this.hasPattern?this.features.push(os("fill-extrusion",this.layers,h,this.zoom,e)):this.addFeature(h,h.geometry,u,r,{}),e.featureIndex.insert(o,h.geometry,u,l,this.index,!0);}}},Ss.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.features;n<i.length;n+=1){var a=i[n];this.addFeature(a,a.geometry,a.index,e,r);}},Ss.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);},Ss.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Ss.prototype.uploadPending=function(){return !this.uploaded||this.programConfigurations.needsUpload},Ss.prototype.upload=function(t){this.uploaded||(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,cs),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;},Ss.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());},Ss.prototype.addFeature=function(t,e,r,n,i){for(var a=0,o=ns(e,500);a<o.length;a+=1){for(var s=o[a],u=0,l=0,p=s;l<p.length;l+=1)u+=p[l].length;for(var c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),h=0,f=s;h<f.length;h+=1){var y=f[h];if(0!==y.length&&!((B=y).every((function(t){return t.x<0}))||B.every((function(t){return t.x>8192}))||B.every((function(t){return t.y<0}))||B.every((function(t){return t.y>8192}))))for(var d=0,m=0;m<y.length;m++){var v=y[m];if(m>=1){var g=y[m-1];if(!ks(v,g)){c.vertexLength+4>sa.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var x=v.sub(g)._perp()._unit(),b=g.dist(v);d+b>32768&&(d=0),As(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,0,d),As(this.layoutVertexArray,v.x,v.y,x.x,x.y,0,1,d),As(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,0,d+=b),As(this.layoutVertexArray,g.x,g.y,x.x,x.y,0,1,d);var w=c.vertexLength;this.indexArray.emplaceBack(w,w+2,w+1),this.indexArray.emplaceBack(w+1,w+2,w+3),c.vertexLength+=4,c.primitiveLength+=2;}}}}if(c.vertexLength+u>sa.MAX_VERTEX_ARRAY_LENGTH&&(c=this.segments.prepareSegment(u,this.layoutVertexArray,this.indexArray)),"Polygon"===ws[t.type]){for(var _=[],A=[],S=c.vertexLength,k=0,I=s;k<I.length;k+=1){var z=I[k];if(0!==z.length){z!==s[0]&&A.push(_.length/2);for(var C=0;C<z.length;C++){var E=z[C];As(this.layoutVertexArray,E.x,E.y,0,0,1,1,0),_.push(E.x),_.push(E.y);}}}for(var P=Io(_,A),M=0;M<P.length;M+=3)this.indexArray.emplaceBack(S+P[M],S+P[M+2],S+P[M+1]);c.primitiveLength+=P.length/3,c.vertexLength+=u;}}var B;this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n);},On("FillExtrusionBucket",Ss,{omit:["layers","features"]});var Is={paint:new wi({"fill-extrusion-opacity":new mi(Et["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new vi(Et["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new mi(Et["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new gi(Et["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new vi(Et["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new vi(Et["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new mi(Et["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})},zs=function(t){function e(e){t.call(this,e,Is);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.createBucket=function(t){return new Ss(t)},e.prototype.queryRadius=function(){return eo(this.paint.get("fill-extrusion-translate"))},e.prototype.is3D=function(){return !0},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s,u){var l=ro(t,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),o.angle,s),p=this.paint.get("fill-extrusion-height").evaluate(e,r),c=this.paint.get("fill-extrusion-base").evaluate(e,r),h=function(t,e,r,n){for(var a=[],o=0,s=t;o<s.length;o+=1){var u=s[o],l=[u.x,u.y,0,1];po(l,l,e),a.push(new i(l[0]/l[3],l[1]/l[3]));}return a}(l,u),f=function(t,e,r,n){for(var a=[],o=[],s=n[8]*e,u=n[9]*e,l=n[10]*e,p=n[11]*e,c=n[8]*r,h=n[9]*r,f=n[10]*r,y=n[11]*r,d=0,m=t;d<m.length;d+=1){for(var v=[],g=[],x=0,b=m[d];x<b.length;x+=1){var w=b[x],_=w.x,A=w.y,S=n[0]*_+n[4]*A+n[12],k=n[1]*_+n[5]*A+n[13],I=n[2]*_+n[6]*A+n[14],z=n[3]*_+n[7]*A+n[15],C=I+l,E=z+p,P=S+c,M=k+h,B=I+f,T=z+y,V=new i((S+s)/E,(k+u)/E);V.z=C/E,v.push(V);var F=new i(P/T,M/T);F.z=B/T,g.push(F);}a.push(v),o.push(g);}return [a,o]}(n,c,p,u);return function(t,e,r){var n=1/0;Ga(r,e)&&(n=Es(r,e[0]));for(var i=0;i<e.length;i++)for(var a=e[i],o=t[i],s=0;s<a.length-1;s++){var u=a[s],l=[u,a[s+1],o[s+1],o[s],u];Na(r,l)&&(n=Math.min(n,Es(r,l)));}return n!==1/0&&n}(f[0],f[1],h)},e}(_i);function Cs(t,e){return t.x*e.x+t.y*e.y}function Es(t,e){if(1===t.length){for(var r,n=0,i=e[n++];!r||i.equals(r);)if(!(r=e[n++]))return 1/0;for(;n<e.length;n++){var a=e[n],o=t[0],s=r.sub(i),u=a.sub(i),l=o.sub(i),p=Cs(s,s),c=Cs(s,u),h=Cs(u,u),f=Cs(l,s),y=Cs(l,u),d=p*h-c*c,m=(h*f-c*y)/d,v=(p*y-c*f)/d,g=i.z*(1-m-v)+r.z*m+a.z*v;if(isFinite(g))return g}return 1/0}for(var x=1/0,b=0,w=e;b<w.length;b+=1)x=Math.min(x,w[b].z);return x}var Ps=Ii([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4).members,Ms=Ii([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]).members,Bs=bs.VectorTileFeature.types,Ts=Math.cos(Math.PI/180*37.5),Vs=Math.pow(2,14)/.5,Fs=function(t){var e=this;this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((function(t){e.gradients[t.id]={};})),this.layoutVertexArray=new Mi,this.layoutVertexArray2=new Bi,this.indexArray=new ji,this.programConfigurations=new Va(t.layers,t.zoom),this.segments=new sa,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id}));};Fs.prototype.populate=function(t,e,r){this.hasPattern=as("line",this.layers,e);for(var n=this.layers[0].layout.get("line-sort-key"),i=[],a=0,o=t;a<o.length;a+=1){var s=o[a],u=s.feature,l=s.id,p=s.index,c=s.sourceLayerIndex,h=this.layers[0]._featureFilter.needGeometry,f=Ua(u,h);if(this.layers[0]._featureFilter.filter(new si(this.zoom),f,r)){var y=n?n.evaluate(f,{},r):void 0,d={id:l,properties:u.properties,type:u.type,sourceLayerIndex:c,index:p,geometry:h?f.geometry:Ra(u),patterns:{},sortKey:y};i.push(d);}}n&&i.sort((function(t,e){return t.sortKey-e.sortKey}));for(var m=0,v=i;m<v.length;m+=1){var g=v[m],x=g.geometry,b=g.index,w=g.sourceLayerIndex;if(this.hasPattern){var _=os("line",this.layers,g,this.zoom,e);this.patternFeatures.push(_);}else this.addFeature(g,x,b,r,{});e.featureIndex.insert(t[b].feature,x,b,w,this.index);}},Fs.prototype.update=function(t,e,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(t,e,this.stateDependentLayers,r);},Fs.prototype.addFeatures=function(t,e,r){for(var n=0,i=this.patternFeatures;n<i.length;n+=1){var a=i[n];this.addFeature(a,a.geometry,a.index,e,r);}},Fs.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length},Fs.prototype.uploadPending=function(){return !this.uploaded||this.programConfigurations.needsUpload},Fs.prototype.upload=function(t){this.uploaded||(0!==this.layoutVertexArray2.length&&(this.layoutVertexBuffer2=t.createVertexBuffer(this.layoutVertexArray2,Ms)),this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,Ps),this.indexBuffer=t.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(t),this.uploaded=!0;},Fs.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());},Fs.prototype.lineFeatureClips=function(t){if(t.properties&&t.properties.hasOwnProperty("mapbox_clip_start")&&t.properties.hasOwnProperty("mapbox_clip_end"))return {start:+t.properties.mapbox_clip_start,end:+t.properties.mapbox_clip_end}},Fs.prototype.addFeature=function(t,e,r,n,i){var a=this.layers[0].layout,o=a.get("line-join").evaluate(t,{}),s=a.get("line-cap"),u=a.get("line-miter-limit"),l=a.get("line-round-limit");this.lineClips=this.lineFeatureClips(t);for(var p=0,c=e;p<c.length;p+=1)this.addLine(c[p],t,o,s,u,l);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,t,r,i,n);},Fs.prototype.addLine=function(t,e,r,n,i,a){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(var o=0;o<t.length-1;o++)this.totalDistance+=t[o].dist(t[o+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}for(var s="Polygon"===Bs[e.type],u=t.length;u>=2&&t[u-1].equals(t[u-2]);)u--;for(var l=0;l<u-1&&t[l].equals(t[l+1]);)l++;if(!(u<(s?3:2))){"bevel"===r&&(i=1.05);var p,c=this.overscaling<=16?122880/(512*this.overscaling):0,h=this.segments.prepareSegment(10*u,this.layoutVertexArray,this.indexArray),f=void 0,y=void 0,d=void 0,m=void 0;this.e1=this.e2=-1,s&&(m=t[l].sub(p=t[u-2])._unit()._perp());for(var v=l;v<u;v++)if(!(y=v===u-1?s?t[l+1]:void 0:t[v+1])||!t[v].equals(y)){m&&(d=m),p&&(f=p),p=t[v],m=y?y.sub(p)._unit()._perp():d;var g=(d=d||m).add(m);0===g.x&&0===g.y||g._unit();var x=d.x*m.x+d.y*m.y,b=g.x*m.x+g.y*m.y,w=0!==b?1/b:1/0,_=2*Math.sqrt(2-2*b),A=b<Ts&&f&&y,S=d.x*m.y-d.y*m.x>0;if(A&&v>l){var k=p.dist(f);if(k>2*c){var I=p.sub(p.sub(f)._mult(c/k)._round());this.updateDistance(f,I),this.addCurrentVertex(I,d,0,0,h),f=I;}}var z=f&&y,C=z?r:s?"butt":n;if(z&&"round"===C&&(w<a?C="miter":w<=2&&(C="fakeround")),"miter"===C&&w>i&&(C="bevel"),"bevel"===C&&(w>2&&(C="flipbevel"),w<i&&(C="miter")),f&&this.updateDistance(f,p),"miter"===C)g._mult(w),this.addCurrentVertex(p,g,0,0,h);else if("flipbevel"===C){if(w>100)g=m.mult(-1);else {var E=w*d.add(m).mag()/d.sub(m).mag();g._perp()._mult(E*(S?-1:1));}this.addCurrentVertex(p,g,0,0,h),this.addCurrentVertex(p,g.mult(-1),0,0,h);}else if("bevel"===C||"fakeround"===C){var P=-Math.sqrt(w*w-1),M=S?P:0,B=S?0:P;if(f&&this.addCurrentVertex(p,d,M,B,h),"fakeround"===C)for(var T=Math.round(180*_/Math.PI/20),V=1;V<T;V++){var F=V/T;if(.5!==F){var D=F-.5;F+=F*D*(F-1)*((1.0904+x*(x*(3.55645-1.43519*x)-3.2452))*D*D+(.848013+x*(.215638*x-1.06021)));}var L=m.sub(d)._mult(F)._add(d)._unit()._mult(S?-1:1);this.addHalfVertex(p,L.x,L.y,!1,S,0,h);}y&&this.addCurrentVertex(p,m,-M,-B,h);}else if("butt"===C)this.addCurrentVertex(p,g,0,0,h);else if("square"===C){var O=f?1:-1;this.addCurrentVertex(p,g,O,O,h);}else "round"===C&&(f&&(this.addCurrentVertex(p,d,0,0,h),this.addCurrentVertex(p,d,1,1,h,!0)),y&&(this.addCurrentVertex(p,m,-1,-1,h,!0),this.addCurrentVertex(p,m,0,0,h)));if(A&&v<u-1){var R=p.dist(y);if(R>2*c){var U=p.add(y.sub(p)._mult(c/R)._round());this.updateDistance(p,U),this.addCurrentVertex(U,m,0,0,h),p=U;}}}}},Fs.prototype.addCurrentVertex=function(t,e,r,n,i,a){void 0===a&&(a=!1);var o=e.y*n-e.x,s=-e.y-e.x*n;this.addHalfVertex(t,e.x+e.y*r,e.y-e.x*r,a,!1,r,i),this.addHalfVertex(t,o,s,a,!0,-n,i),this.distance>Vs/2&&0===this.totalDistance&&(this.distance=0,this.addCurrentVertex(t,e,r,n,i,a));},Fs.prototype.addHalfVertex=function(t,e,r,n,i,a,o){var s=.5*(this.lineClips?this.scaledDistance*(Vs-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((t.x<<1)+(n?1:0),(t.y<<1)+(i?1:0),Math.round(63*e)+128,Math.round(63*r)+128,1+(0===a?0:a<0?-1:1)|(63&s)<<2,s>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);var u=o.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,u),o.primitiveLength++),i?this.e2=u:this.e1=u;},Fs.prototype.updateScaledDistance=function(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;},Fs.prototype.updateDistance=function(t,e){this.distance+=t.dist(e),this.updateScaledDistance();},On("LineBucket",Fs,{omit:["layers","patternFeatures"]});var Ds=new wi({"line-cap":new mi(Et.layout_line["line-cap"]),"line-join":new vi(Et.layout_line["line-join"]),"line-miter-limit":new mi(Et.layout_line["line-miter-limit"]),"line-round-limit":new mi(Et.layout_line["line-round-limit"]),"line-sort-key":new vi(Et.layout_line["line-sort-key"])}),Ls={paint:new wi({"line-opacity":new vi(Et.paint_line["line-opacity"]),"line-color":new vi(Et.paint_line["line-color"]),"line-translate":new mi(Et.paint_line["line-translate"]),"line-translate-anchor":new mi(Et.paint_line["line-translate-anchor"]),"line-width":new vi(Et.paint_line["line-width"]),"line-gap-width":new vi(Et.paint_line["line-gap-width"]),"line-offset":new vi(Et.paint_line["line-offset"]),"line-blur":new vi(Et.paint_line["line-blur"]),"line-dasharray":new xi(Et.paint_line["line-dasharray"]),"line-pattern":new gi(Et.paint_line["line-pattern"]),"line-gradient":new bi(Et.paint_line["line-gradient"])}),layout:Ds},Os=new(function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.possiblyEvaluate=function(e,r){return r=new si(Math.floor(r.zoom),{now:r.now,fadeDuration:r.fadeDuration,zoomHistory:r.zoomHistory,transition:r.transition}),t.prototype.possiblyEvaluate.call(this,e,r)},e.prototype.evaluate=function(e,r,n,i){return r=h({},r,{zoom:Math.floor(r.zoom)}),t.prototype.evaluate.call(this,e,r,n,i)},e}(vi))(Ls.paint.properties["line-width"].specification);Os.useIntegerZoom=!0;var Rs=function(t){function e(e){t.call(this,e,Ls),this.gradientVersion=0;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._handleSpecialPaintPropertyUpdate=function(t){"line-gradient"===t&&(this.stepInterpolant=this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof Ne,this.gradientVersion=(this.gradientVersion+1)%s);},e.prototype.gradientExpression=function(){return this._transitionablePaint._values["line-gradient"].value.expression},e.prototype.recalculate=function(e,r){t.prototype.recalculate.call(this,e,r),this.paint._values["line-floorwidth"]=Os.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,e);},e.prototype.createBucket=function(t){return new Fs(t)},e.prototype.queryRadius=function(t){var e=t,r=Us(to("line-width",this,e),to("line-gap-width",this,e)),n=to("line-offset",this,e);return r/2+Math.abs(n)+eo(this.paint.get("line-translate"))},e.prototype.queryIntersectsFeature=function(t,e,r,n,a,o,s){var u=ro(t,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),o.angle,s),l=s/2*Us(this.paint.get("line-width").evaluate(e,r),this.paint.get("line-gap-width").evaluate(e,r)),p=this.paint.get("line-offset").evaluate(e,r);return p&&(n=function(t,e){for(var r=[],n=new i(0,0),a=0;a<t.length;a++){for(var o=t[a],s=[],u=0;u<o.length;u++){var l=o[u],p=o[u+1],c=0===u?n:l.sub(o[u-1])._unit()._perp(),h=u===o.length-1?n:p.sub(l)._unit()._perp(),f=c._add(h)._unit();f._mult(1/(f.x*h.x+f.y*h.y)),s.push(f._mult(e)._add(l));}r.push(s);}return r}(n,p*s)),function(t,e,r){for(var n=0;n<e.length;n++){var i=e[n];if(t.length>=3)for(var a=0;a<i.length;a++)if(Wa(t,i[a]))return !0;if(Za(t,i,r))return !0}return !1}(u,n,l)},e.prototype.isTileClipped=function(){return !0},e}(_i);function Us(t,e){return e>0?e+2*t:t}var js=Ii([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),qs=Ii([{name:"a_projected_pos",components:3,type:"Float32"}],4),Ns=(Ii([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),Ii([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),Ks=(Ii([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),Ii([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),Gs=Ii([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function Zs(t,e,r){return t.sections.forEach((function(t){t.text=function(t,e,r){var n=e.layout.get("text-transform").evaluate(r,{});return "uppercase"===n?t=t.toLocaleUpperCase():"lowercase"===n&&(t=t.toLocaleLowerCase()),oi.applyArabicShaping&&(t=oi.applyArabicShaping(t)),t}(t.text,e,r);})),t}Ii([{name:"triangle",components:3,type:"Uint16"}]),Ii([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),Ii([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),Ii([{type:"Float32",name:"offsetX"}]),Ii([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var Xs={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"},Js=function(t,e,r,n,i){var a,o,s=8*i-n-1,u=(1<<s)-1,l=u>>1,p=-7,c=r?i-1:0,h=r?-1:1,f=t[e+c];for(c+=h,a=f&(1<<-p)-1,f>>=-p,p+=s;p>0;a=256*a+t[e+c],c+=h,p-=8);for(o=a&(1<<-p)-1,a>>=-p,p+=n;p>0;o=256*o+t[e+c],c+=h,p-=8);if(0===a)a=1-l;else {if(a===u)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,n),a-=l;}return (f?-1:1)*o*Math.pow(2,a-n)},Hs=function(t,e,r,n,i,a){var o,s,u,l=8*a-i-1,p=(1<<l)-1,c=p>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:a-1,y=n?1:-1,d=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(s=isNaN(e)?1:0,o=p):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),(e+=o+c>=1?h/u:h*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=p?(s=0,o=p):o+c>=1?(s=(e*u-1)*Math.pow(2,i),o+=c):(s=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[r+f]=255&s,f+=y,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;t[r+f]=255&o,f+=y,o/=256,l-=8);t[r+f-y]|=128*d;},Ys=$s;function $s(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length;}$s.Varint=0,$s.Fixed64=1,$s.Bytes=2,$s.Fixed32=5;var Ws="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function Qs(t){return t.type===$s.Bytes?t.readVarint()+t.pos:t.pos+1}function tu(t,e,r){return r?4294967296*e+(t>>>0):4294967296*(e>>>0)+(t>>>0)}function eu(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(7*Math.LN2));r.realloc(n);for(var i=r.pos-1;i>=t;i--)r.buf[i+n]=r.buf[i];}function ru(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r]);}function nu(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r]);}function iu(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r]);}function au(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r]);}function ou(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r]);}function su(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r]);}function uu(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r]);}function lu(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r]);}function pu(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r]);}function cu(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+16777216*t[e+3]}function hu(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24;}function fu(t,e){return (t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function yu(t,e,r){1===t&&r.readMessage(du,e);}function du(t,e,r){if(3===t){var n=r.readMessage(mu,{}),i=n.width,a=n.height,o=n.left,s=n.top,u=n.advance;e.push({id:n.id,bitmap:new go({width:i+6,height:a+6},n.bitmap),metrics:{width:i,height:a,left:o,top:s,advance:u}});}}function mu(t,e,r){1===t?e.id=r.readVarint():2===t?e.bitmap=r.readBytes():3===t?e.width=r.readVarint():4===t?e.height=r.readVarint():5===t?e.left=r.readSVarint():6===t?e.top=r.readSVarint():7===t&&(e.advance=r.readVarint());}function vu(t){for(var e=0,r=0,n=0,i=t;n<i.length;n+=1){var a=i[n];e+=a.w*a.h,r=Math.max(r,a.w);}t.sort((function(t,e){return e.h-t.h}));for(var o=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(e/.95)),r),h:1/0}],s=0,u=0,l=0,p=t;l<p.length;l+=1)for(var c=p[l],h=o.length-1;h>=0;h--){var f=o[h];if(!(c.w>f.w||c.h>f.h)){if(c.x=f.x,c.y=f.y,u=Math.max(u,c.y+c.h),s=Math.max(s,c.x+c.w),c.w===f.w&&c.h===f.h){var y=o.pop();h<o.length&&(o[h]=y);}else c.h===f.h?(f.x+=c.w,f.w-=c.w):c.w===f.w?(f.y+=c.h,f.h-=c.h):(o.push({x:f.x+c.w,y:f.y,w:f.w-c.w,h:c.h}),f.y+=c.h,f.h-=c.h);break}}return {w:s,h:u,fill:e/(s*u)||0}}$s.prototype={destroy:function(){this.buf=null;},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),i=n>>3,a=this.pos;this.type=7&n,t(i,e,this),this.pos===a&&this.skip(n);}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=cu(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=fu(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=cu(this.buf,this.pos)+4294967296*cu(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=cu(this.buf,this.pos)+4294967296*fu(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=Js(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Js(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e,r,n=this.buf;return e=127&(r=n[this.pos++]),r<128?e:(e|=(127&(r=n[this.pos++]))<<7,r<128?e:(e|=(127&(r=n[this.pos++]))<<14,r<128?e:(e|=(127&(r=n[this.pos++]))<<21,r<128?e:function(t,e,r){var n,i,a=r.buf;if(n=(112&(i=a[r.pos++]))>>4,i<128)return tu(t,n,e);if(n|=(127&(i=a[r.pos++]))<<3,i<128)return tu(t,n,e);if(n|=(127&(i=a[r.pos++]))<<10,i<128)return tu(t,n,e);if(n|=(127&(i=a[r.pos++]))<<17,i<128)return tu(t,n,e);if(n|=(127&(i=a[r.pos++]))<<24,i<128)return tu(t,n,e);if(n|=(1&(i=a[r.pos++]))<<31,i<128)return tu(t,n,e);throw new Error("Expected varint not more than 10 bytes")}(e|=(15&(r=n[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=12&&Ws?function(t,e,r){return Ws.decode(t.subarray(e,r))}(this.buf,e,t):function(t,e,r){for(var n="",i=e;i<r;){var a,o,s,u=t[i],l=null,p=u>239?4:u>223?3:u>191?2:1;if(i+p>r)break;1===p?u<128&&(l=u):2===p?128==(192&(a=t[i+1]))&&(l=(31&u)<<6|63&a)<=127&&(l=null):3===p?(o=t[i+2],128==(192&(a=t[i+1]))&&128==(192&o)&&((l=(15&u)<<12|(63&a)<<6|63&o)<=2047||l>=55296&&l<=57343)&&(l=null)):4===p&&(o=t[i+2],s=t[i+3],128==(192&(a=t[i+1]))&&128==(192&o)&&128==(192&s)&&((l=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)<=65535||l>=1114112)&&(l=null)),null===l?(l=65533,p=1):l>65535&&(l-=65536,n+=String.fromCharCode(l>>>10&1023|55296),l=56320|1023&l),n+=String.fromCharCode(l),i+=p;}return n}(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==$s.Bytes)return t.push(this.readVarint(e));var r=Qs(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==$s.Bytes)return t.push(this.readSVarint());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==$s.Bytes)return t.push(this.readBoolean());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==$s.Bytes)return t.push(this.readFloat());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==$s.Bytes)return t.push(this.readDouble());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==$s.Bytes)return t.push(this.readFixed32());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==$s.Bytes)return t.push(this.readSFixed32());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==$s.Bytes)return t.push(this.readFixed64());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==$s.Bytes)return t.push(this.readSFixed64());var e=Qs(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=7&t;if(e===$s.Varint)for(;this.buf[this.pos++]>127;);else if(e===$s.Bytes)this.pos=this.readVarint()+this.pos;else if(e===$s.Fixed32)this.pos+=4;else {if(e!==$s.Fixed64)throw new Error("Unimplemented type: "+e);this.pos+=8;}},writeTag:function(t,e){this.writeVarint(t<<3|e);},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e;}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),hu(this.buf,t,this.pos),this.pos+=4;},writeSFixed32:function(t){this.realloc(4),hu(this.buf,t,this.pos),this.pos+=4;},writeFixed64:function(t){this.realloc(8),hu(this.buf,-1&t,this.pos),hu(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8;},writeSFixed64:function(t){this.realloc(8),hu(this.buf,-1&t,this.pos),hu(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8;},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(n=~(-t/4294967296),4294967295^(r=~(-t%4294967296))?r=r+1|0:(r=0,n=n+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),function(t,e,r){r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,t>>>=7,r.buf[r.pos++]=127&t|128,r.buf[r.pos]=127&(t>>>=7);}(r,0,e),function(t,e){var r=(7&t)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=127&t)))));}(n,e);}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))));},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t);},writeBoolean:function(t){this.writeVarint(Boolean(t));},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var e=this.pos;this.pos=function(t,e,r){for(var n,i,a=0;a<e.length;a++){if((n=e.charCodeAt(a))>55295&&n<57344){if(!i){n>56319||a+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=n;continue}if(n<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=n;continue}n=i-55296<<10|n-56320|65536,i=null;}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);n<128?t[r++]=n:(n<2048?t[r++]=n>>6|192:(n<65536?t[r++]=n>>12|224:(t[r++]=n>>18|240,t[r++]=n>>12&63|128),t[r++]=n>>6&63|128),t[r++]=63&n|128);}return r}(this.buf,t,this.pos);var r=this.pos-e;r>=128&&eu(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r;},writeFloat:function(t){this.realloc(4),Hs(this.buf,t,this.pos,!0,23,4),this.pos+=4;},writeDouble:function(t){this.realloc(8),Hs(this.buf,t,this.pos,!0,52,8),this.pos+=8;},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r];},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&eu(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n;},writeMessage:function(t,e,r){this.writeTag(t,$s.Bytes),this.writeRawMessage(e,r);},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,ru,e);},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,nu,e);},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,ou,e);},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,iu,e);},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,au,e);},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,su,e);},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,uu,e);},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,lu,e);},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,pu,e);},writeBytesField:function(t,e){this.writeTag(t,$s.Bytes),this.writeBytes(e);},writeFixed32Field:function(t,e){this.writeTag(t,$s.Fixed32),this.writeFixed32(e);},writeSFixed32Field:function(t,e){this.writeTag(t,$s.Fixed32),this.writeSFixed32(e);},writeFixed64Field:function(t,e){this.writeTag(t,$s.Fixed64),this.writeFixed64(e);},writeSFixed64Field:function(t,e){this.writeTag(t,$s.Fixed64),this.writeSFixed64(e);},writeVarintField:function(t,e){this.writeTag(t,$s.Varint),this.writeVarint(e);},writeSVarintField:function(t,e){this.writeTag(t,$s.Varint),this.writeSVarint(e);},writeStringField:function(t,e){this.writeTag(t,$s.Bytes),this.writeString(e);},writeFloatField:function(t,e){this.writeTag(t,$s.Fixed32),this.writeFloat(e);},writeDoubleField:function(t,e){this.writeTag(t,$s.Fixed64),this.writeDouble(e);},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e));}};var gu=function(t,e){var r=e.pixelRatio,n=e.version,i=e.stretchX,a=e.stretchY,o=e.content;this.paddedRect=t,this.pixelRatio=r,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n;},xu={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};xu.tl.get=function(){return [this.paddedRect.x+1,this.paddedRect.y+1]},xu.br.get=function(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},xu.tlbr.get=function(){return this.tl.concat(this.br)},xu.displaySize.get=function(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(gu.prototype,xu);var bu=function(t,e){var r={},n={};this.haveRenderCallbacks=[];var i=[];this.addImages(t,r,i),this.addImages(e,n,i);var a=vu(i),o=new xo({width:a.w||1,height:a.h||1});for(var s in t){var u=t[s],l=r[s].paddedRect;xo.copy(u.data,o,{x:0,y:0},{x:l.x+1,y:l.y+1},u.data);}for(var p in e){var c=e[p],h=n[p].paddedRect,f=h.x+1,y=h.y+1,d=c.data.width,m=c.data.height;xo.copy(c.data,o,{x:0,y:0},{x:f,y:y},c.data),xo.copy(c.data,o,{x:0,y:m-1},{x:f,y:y-1},{width:d,height:1}),xo.copy(c.data,o,{x:0,y:0},{x:f,y:y+m},{width:d,height:1}),xo.copy(c.data,o,{x:d-1,y:0},{x:f-1,y:y},{width:1,height:m}),xo.copy(c.data,o,{x:0,y:0},{x:f+d,y:y},{width:1,height:m});}this.image=o,this.iconPositions=r,this.patternPositions=n;};bu.prototype.addImages=function(t,e,r){for(var n in t){var i=t[n],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};r.push(a),e[n]=new gu(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(n);}},bu.prototype.patchUpdatedImages=function(t,e){for(var r in t.dispatchRenderCallbacks(this.haveRenderCallbacks),t.updatedImages)this.patchUpdatedImage(this.iconPositions[r],t.getImage(r),e),this.patchUpdatedImage(this.patternPositions[r],t.getImage(r),e);},bu.prototype.patchUpdatedImage=function(t,e,r){if(t&&e&&t.version!==e.version){t.version=e.version;var n=t.tl;r.update(e.data,void 0,{x:n[0],y:n[1]});}},On("ImagePosition",gu),On("ImageAtlas",bu);var wu={horizontal:1,vertical:2,horizontalOnly:3},_u=function(){this.scale=1,this.fontStack="",this.imageName=null;};_u.forText=function(t,e){var r=new _u;return r.scale=t||1,r.fontStack=e,r},_u.forImage=function(t){var e=new _u;return e.imageName=t,e};var Au=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null;};function Su(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d){var m,v=Au.fromFeature(t,i);c===wu.vertical&&v.verticalizePunctuation();var g=oi.processBidirectionalText,x=oi.processStyledBidirectionalText;if(g&&1===v.sections.length){m=[];for(var b=0,w=g(v.toString(),Mu(v,l,a,e,n,f,y));b<w.length;b+=1){var _=w[b],A=new Au;A.text=_,A.sections=v.sections;for(var S=0;S<_.length;S++)A.sectionIndex.push(0);m.push(A);}}else if(x){m=[];for(var k=0,I=x(v.text,v.sectionIndex,Mu(v,l,a,e,n,f,y));k<I.length;k+=1){var z=I[k],C=new Au;C.text=z[0],C.sectionIndex=z[1],C.sections=v.sections,m.push(C);}}else m=function(t,e){for(var r=[],n=t.text,i=0,a=0,o=e;a<o.length;a+=1){var s=o[a];r.push(t.substring(i,s)),i=s;}return i<n.length&&r.push(t.substring(i,n.length)),r}(v,Mu(v,l,a,e,n,f,y));var E=[],P={positionedLines:E,text:v.toString(),top:p[1],bottom:p[1],left:p[0],right:p[0],writingMode:c,iconsInText:!1,verticalizable:!1};return function(t,e,r,n,i,a,o,s,u,l,p,c){for(var h=0,f=-17,y=0,d=0,m="right"===s?1:"left"===s?0:.5,v=0,g=0,x=i;g<x.length;g+=1){var b=x[g];b.trim();var w=b.getMaxScale(),_=24*(w-1),A={positionedGlyphs:[],lineOffset:0};t.positionedLines[v]=A;var S=A.positionedGlyphs,k=0;if(b.length()){for(var I=0;I<b.length();I++){var z=b.getSection(I),C=b.getSectionIndex(I),E=b.getCharCode(I),P=0,M=null,B=null,T=null,V=24,F=!(u===wu.horizontal||!p&&!Xn(E)||p&&(ku[E]||(K=E,Gn.Arabic(K)||Gn["Arabic Supplement"](K)||Gn["Arabic Extended-A"](K)||Gn["Arabic Presentation Forms-A"](K)||Gn["Arabic Presentation Forms-B"](K))));if(z.imageName){var D=n[z.imageName];if(!D)continue;T=z.imageName,t.iconsInText=t.iconsInText||!0,B=D.paddedRect;var L=D.displaySize;z.scale=24*z.scale/c,P=_+(24-L[1]*z.scale),V=(M={width:L[0],height:L[1],left:1,top:-3,advance:F?L[1]:L[0]}).advance;var O=F?L[0]*z.scale-24*w:L[1]*z.scale-24*w;O>0&&O>k&&(k=O);}else {var R=r[z.fontStack],U=R&&R[E];if(U&&U.rect)B=U.rect,M=U.metrics;else {var j=e[z.fontStack],q=j&&j[E];if(!q)continue;M=q.metrics;}P=24*(w-z.scale);}F?(t.verticalizable=!0,S.push({glyph:E,imageName:T,x:h,y:f+P,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:M,rect:B}),h+=V*z.scale+l):(S.push({glyph:E,imageName:T,x:h,y:f+P,vertical:F,scale:z.scale,fontStack:z.fontStack,sectionIndex:C,metrics:M,rect:B}),h+=M.advance*z.scale+l);}0!==S.length&&(y=Math.max(h-l,y),Tu(S,0,S.length-1,m,k)),h=0;var N=a*w+k;A.lineOffset=Math.max(k,_),f+=N,d=Math.max(N,d),++v;}else f+=a,++v;}var K,G=f- -17,Z=Bu(o),X=Z.horizontalAlign,J=Z.verticalAlign;(function(t,e,r,n,i,a,o,s,u){var l,p=(e-r)*i;l=a!==o?-s*n- -17:(-n*u+.5)*o;for(var c=0,h=t;c<h.length;c+=1)for(var f=0,y=h[c].positionedGlyphs;f<y.length;f+=1){var d=y[f];d.x+=p,d.y+=l;}})(t.positionedLines,m,X,J,y,d,a,G,i.length),t.top+=-J*G,t.bottom=t.top+G,t.left+=-X*y,t.right=t.left+y;}(P,e,r,n,m,o,s,u,c,l,h,d),!function(t){for(var e=0,r=t;e<r.length;e+=1)if(0!==r[e].positionedGlyphs.length)return !1;return !0}(E)&&P}Au.fromFeature=function(t,e){for(var r=new Au,n=0;n<t.sections.length;n++){var i=t.sections[n];i.image?r.addImageSection(i):r.addTextSection(i,e);}return r},Au.prototype.length=function(){return this.text.length},Au.prototype.getSection=function(t){return this.sections[this.sectionIndex[t]]},Au.prototype.getSectionIndex=function(t){return this.sectionIndex[t]},Au.prototype.getCharCode=function(t){return this.text.charCodeAt(t)},Au.prototype.verticalizePunctuation=function(){this.text=function(t){for(var e="",r=0;r<t.length;r++){var n=t.charCodeAt(r+1)||null,i=t.charCodeAt(r-1)||null;e+=n&&Jn(n)&&!Xs[t[r+1]]||i&&Jn(i)&&!Xs[t[r-1]]||!Xs[t[r]]?t[r]:Xs[t[r]];}return e}(this.text);},Au.prototype.trim=function(){for(var t=0,e=0;e<this.text.length&&ku[this.text.charCodeAt(e)];e++)t++;for(var r=this.text.length,n=this.text.length-1;n>=0&&n>=t&&ku[this.text.charCodeAt(n)];n--)r--;this.text=this.text.substring(t,r),this.sectionIndex=this.sectionIndex.slice(t,r);},Au.prototype.substring=function(t,e){var r=new Au;return r.text=this.text.substring(t,e),r.sectionIndex=this.sectionIndex.slice(t,e),r.sections=this.sections,r},Au.prototype.toString=function(){return this.text},Au.prototype.getMaxScale=function(){var t=this;return this.sectionIndex.reduce((function(e,r){return Math.max(e,t.sections[r].scale)}),0)},Au.prototype.addTextSection=function(t,e){this.text+=t.text,this.sections.push(_u.forText(t.scale,t.fontStack||e));for(var r=this.sections.length-1,n=0;n<t.text.length;++n)this.sectionIndex.push(r);},Au.prototype.addImageSection=function(t){var e=t.image?t.image.name:"";if(0!==e.length){var r=this.getNextImageSectionCharCode();r?(this.text+=String.fromCharCode(r),this.sections.push(_u.forImage(e)),this.sectionIndex.push(this.sections.length-1)):A("Reached maximum number of images 6401");}else A("Can't add FormattedSection with an empty image.");},Au.prototype.getNextImageSectionCharCode=function(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var ku={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Iu={};function zu(t,e,r,n,i,a){if(e.imageName){var o=n[e.imageName];return o?o.displaySize[0]*e.scale*24/a+i:0}var s=r[e.fontStack],u=s&&s[t];return u?u.metrics.advance*e.scale+i:0}function Cu(t,e,r,n){var i=Math.pow(t-e,2);return n?t<e?i/2:2*i:i+Math.abs(r)*r}function Eu(t,e,r){var n=0;return 10===t&&(n-=1e4),r&&(n+=150),40!==t&&65288!==t||(n+=50),41!==e&&65289!==e||(n+=50),n}function Pu(t,e,r,n,i,a){for(var o=null,s=Cu(e,r,i,a),u=0,l=n;u<l.length;u+=1){var p=l[u],c=Cu(e-p.x,r,i,a)+p.badness;c<=s&&(o=p,s=c);}return {index:t,x:e,priorBreak:o,badness:s}}function Mu(t,e,r,n,i,a,o){if("point"!==a)return [];if(!t)return [];for(var s,u=[],l=function(t,e,r,n,i,a){for(var o=0,s=0;s<t.length();s++){var u=t.getSection(s);o+=zu(t.getCharCode(s),u,n,i,e,a);}return o/Math.max(1,Math.ceil(o/r))}(t,e,r,n,i,o),p=t.text.indexOf("​")>=0,c=0,h=0;h<t.length();h++){var f=t.getSection(h),y=t.getCharCode(h);if(ku[y]||(c+=zu(y,f,n,i,e,o)),h<t.length()-1){var d=!((s=y)<11904||!(Gn["Bopomofo Extended"](s)||Gn.Bopomofo(s)||Gn["CJK Compatibility Forms"](s)||Gn["CJK Compatibility Ideographs"](s)||Gn["CJK Compatibility"](s)||Gn["CJK Radicals Supplement"](s)||Gn["CJK Strokes"](s)||Gn["CJK Symbols and Punctuation"](s)||Gn["CJK Unified Ideographs Extension A"](s)||Gn["CJK Unified Ideographs"](s)||Gn["Enclosed CJK Letters and Months"](s)||Gn["Halfwidth and Fullwidth Forms"](s)||Gn.Hiragana(s)||Gn["Ideographic Description Characters"](s)||Gn["Kangxi Radicals"](s)||Gn["Katakana Phonetic Extensions"](s)||Gn.Katakana(s)||Gn["Vertical Forms"](s)||Gn["Yi Radicals"](s)||Gn["Yi Syllables"](s)));(Iu[y]||d||f.imageName)&&u.push(Pu(h+1,c,l,u,Eu(y,t.getCharCode(h+1),d&&p),!1));}}return function t(e){return e?t(e.priorBreak).concat(e.index):[]}(Pu(t.length(),c,l,u,0,!0))}function Bu(t){var e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=1;break;case"left":case"top-left":case"bottom-left":e=0;}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=1;break;case"top":case"top-right":case"top-left":r=0;}return {horizontalAlign:e,verticalAlign:r}}function Tu(t,e,r,n,i){if(n||i)for(var a=t[r],o=(t[r].x+a.metrics.advance*a.scale)*n,s=e;s<=r;s++)t[s].x-=o,t[s].y+=i;}function Vu(t,e,r,n,i,a){var o,s=t.image;if(s.content){var u=s.content,l=s.pixelRatio||1;o=[u[0]/l,u[1]/l,s.displaySize[0]-u[2]/l,s.displaySize[1]-u[3]/l];}var p,c,h,f,y=e.left*a,d=e.right*a;"width"===r||"both"===r?(f=i[0]+y-n[3],c=i[0]+d+n[1]):c=(f=i[0]+(y+d-s.displaySize[0])/2)+s.displaySize[0];var m=e.top*a,v=e.bottom*a;return "height"===r||"both"===r?(p=i[1]+m-n[0],h=i[1]+v+n[2]):h=(p=i[1]+(m+v-s.displaySize[1])/2)+s.displaySize[1],{image:s,top:p,right:c,bottom:h,left:f,collisionPadding:o}}Iu[10]=!0,Iu[32]=!0,Iu[38]=!0,Iu[40]=!0,Iu[41]=!0,Iu[43]=!0,Iu[45]=!0,Iu[47]=!0,Iu[173]=!0,Iu[183]=!0,Iu[8203]=!0,Iu[8208]=!0,Iu[8211]=!0,Iu[8231]=!0;var Fu=function(t){function e(e,r,n,i){t.call(this,e,r),this.angle=n,void 0!==i&&(this.segment=i);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.clone=function(){return new e(this.x,this.y,this.angle,this.segment)},e}(i);function Du(t,e){var r=e.expression;if("constant"===r.kind)return {kind:"constant",layoutSize:r.evaluate(new si(t+1))};if("source"===r.kind)return {kind:"source"};for(var n=r.zoomStops,i=r.interpolationType,a=0;a<n.length&&n[a]<=t;)a++;for(var o=a=Math.max(0,a-1);o<n.length&&n[o]<t+1;)o++;o=Math.min(n.length-1,o);var s=n[a],u=n[o];return "composite"===r.kind?{kind:"composite",minZoom:s,maxZoom:u,interpolationType:i}:{kind:"camera",minZoom:s,maxZoom:u,minSize:r.evaluate(new si(s)),maxSize:r.evaluate(new si(u)),interpolationType:i}}function Lu(t,e,r){var n=e.uSize,i=r.lowerSize;return "source"===t.kind?i/128:"composite"===t.kind?Ke(i/128,r.upperSize/128,e.uSizeT):n}function Ou(t,e){var r=0,n=0;if("constant"===t.kind)n=t.layoutSize;else if("source"!==t.kind){var i=t.interpolationType,a=i?p(ar.interpolationFactor(i,e,t.minZoom,t.maxZoom),0,1):0;"camera"===t.kind?n=Ke(t.minSize,t.maxSize,a):r=a;}return {uSizeT:r,uSize:n}}On("Anchor",Fu);var Ru=Object.freeze({__proto__:null,getSizeData:Du,evaluateSizeForFeature:Lu,evaluateSizeForZoom:Ou,SIZE_PACK_FACTOR:128});function Uu(t,e,r,n,i){if(void 0===e.segment)return !0;for(var a=e,o=e.segment+1,s=0;s>-r/2;){if(--o<0)return !1;s-=t[o].dist(a),a=t[o];}s+=t[o].dist(t[o+1]),o++;for(var u=[],l=0;s<r/2;){var p=t[o],c=t[o+1];if(!c)return !1;var h=t[o-1].angleTo(p)-p.angleTo(c);for(h=Math.abs((h+3*Math.PI)%(2*Math.PI)-Math.PI),u.push({distance:s,angleDelta:h}),l+=h;s-u[0].distance>n;)l-=u.shift().angleDelta;if(l>i)return !1;o++,s+=p.dist(c);}return !0}function ju(t){for(var e=0,r=0;r<t.length-1;r++)e+=t[r].dist(t[r+1]);return e}function qu(t,e,r){return t?.6*e*r:0}function Nu(t,e){return Math.max(t?t.right-t.left:0,e?e.right-e.left:0)}function Ku(t,e,r,n,i,a){for(var o=qu(r,i,a),s=Nu(r,n)*a,u=0,l=ju(t)/2,p=0;p<t.length-1;p++){var c=t[p],h=t[p+1],f=c.dist(h);if(u+f>l){var y=(l-u)/f,d=Ke(c.x,h.x,y),m=Ke(c.y,h.y,y),v=new Fu(d,m,h.angleTo(c),p);return v._round(),!o||Uu(t,v,s,o,e)?v:void 0}u+=f;}}function Gu(t,e,r,n,i,a,o,s,u){var l=qu(n,a,o),p=Nu(n,i),c=p*o,h=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return e-c<e/4&&(e=c+e/4),function t(e,r,n,i,a,o,s,u,l){for(var p=o/2,c=ju(e),h=0,f=r-n,y=[],d=0;d<e.length-1;d++){for(var m=e[d],v=e[d+1],g=m.dist(v),x=v.angleTo(m);f+n<h+g;){var b=((f+=n)-h)/g,w=Ke(m.x,v.x,b),_=Ke(m.y,v.y,b);if(w>=0&&w<l&&_>=0&&_<l&&f-p>=0&&f+p<=c){var A=new Fu(w,_,x,d);A._round(),i&&!Uu(e,A,o,i,a)||y.push(A);}}h+=g;}return u||y.length||s||(y=t(e,h/2,n,i,a,o,s,!0,l)),y}(t,h?e/2*s%e:(p/2+2*a)*o*s%e,e,l,r,c,h,!1,u)}function Zu(t,e,r,n,a){for(var o=[],s=0;s<t.length;s++)for(var u=t[s],l=void 0,p=0;p<u.length-1;p++){var c=u[p],h=u[p+1];c.x<e&&h.x<e||(c.x<e?c=new i(e,c.y+(e-c.x)/(h.x-c.x)*(h.y-c.y))._round():h.x<e&&(h=new i(e,c.y+(e-c.x)/(h.x-c.x)*(h.y-c.y))._round()),c.y<r&&h.y<r||(c.y<r?c=new i(c.x+(r-c.y)/(h.y-c.y)*(h.x-c.x),r)._round():h.y<r&&(h=new i(c.x+(r-c.y)/(h.y-c.y)*(h.x-c.x),r)._round()),c.x>=n&&h.x>=n||(c.x>=n?c=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round():h.x>=n&&(h=new i(n,c.y+(n-c.x)/(h.x-c.x)*(h.y-c.y))._round()),c.y>=a&&h.y>=a||(c.y>=a?c=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round():h.y>=a&&(h=new i(c.x+(a-c.y)/(h.y-c.y)*(h.x-c.x),a)._round()),l&&c.equals(l[l.length-1])||o.push(l=[c]),l.push(h)))));}return o}function Xu(t,e,r,n){var a=[],o=t.image,s=o.pixelRatio,u=o.paddedRect.w-2,l=o.paddedRect.h-2,p=t.right-t.left,c=t.bottom-t.top,h=o.stretchX||[[0,u]],f=o.stretchY||[[0,l]],y=function(t,e){return t+e[1]-e[0]},d=h.reduce(y,0),m=f.reduce(y,0),v=u-d,g=l-m,x=0,b=d,w=0,_=m,A=0,S=v,k=0,I=g;if(o.content&&n){var z=o.content;x=Ju(h,0,z[0]),w=Ju(f,0,z[1]),b=Ju(h,z[0],z[2]),_=Ju(f,z[1],z[3]),A=z[0]-x,k=z[1]-w,S=z[2]-z[0]-b,I=z[3]-z[1]-_;}var C=function(n,a,u,l){var h=Yu(n.stretch-x,b,p,t.left),f=$u(n.fixed-A,S,n.stretch,d),y=Yu(a.stretch-w,_,c,t.top),v=$u(a.fixed-k,I,a.stretch,m),g=Yu(u.stretch-x,b,p,t.left),z=$u(u.fixed-A,S,u.stretch,d),C=Yu(l.stretch-w,_,c,t.top),E=$u(l.fixed-k,I,l.stretch,m),P=new i(h,y),M=new i(g,y),B=new i(g,C),T=new i(h,C),V=new i(f/s,v/s),F=new i(z/s,E/s),D=e*Math.PI/180;if(D){var L=Math.sin(D),O=Math.cos(D),R=[O,-L,L,O];P._matMult(R),M._matMult(R),T._matMult(R),B._matMult(R);}var U=n.stretch+n.fixed,j=a.stretch+a.fixed;return {tl:P,tr:M,bl:T,br:B,tex:{x:o.paddedRect.x+1+U,y:o.paddedRect.y+1+j,w:u.stretch+u.fixed-U,h:l.stretch+l.fixed-j},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:V,pixelOffsetBR:F,minFontScaleX:S/s/p,minFontScaleY:I/s/c,isSDF:r}};if(n&&(o.stretchX||o.stretchY))for(var E=Hu(h,v,d),P=Hu(f,g,m),M=0;M<E.length-1;M++)for(var B=E[M],T=E[M+1],V=0;V<P.length-1;V++)a.push(C(B,P[V],T,P[V+1]));else a.push(C({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:u+1},{fixed:0,stretch:l+1}));return a}function Ju(t,e,r){for(var n=0,i=0,a=t;i<a.length;i+=1){var o=a[i];n+=Math.max(e,Math.min(r,o[1]))-Math.max(e,Math.min(r,o[0]));}return n}function Hu(t,e,r){for(var n=[{fixed:-1,stretch:0}],i=0,a=t;i<a.length;i+=1){var o=a[i],s=o[0],u=o[1],l=n[n.length-1];n.push({fixed:s-l.stretch,stretch:l.stretch}),n.push({fixed:s-l.stretch,stretch:l.stretch+(u-s)});}return n.push({fixed:e+1,stretch:r}),n}function Yu(t,e,r,n){return t/e*r+n}function $u(t,e,r,n){return t-e*r/n}var Wu=function(t,e,r,n,a,o,s,u,l,p){if(this.boxStartIndex=t.length,l){var c=o.top,h=o.bottom,f=o.collisionPadding;f&&(c-=f[1],h+=f[3]);var y=h-c;y>0&&(y=Math.max(10,y),this.circleDiameter=y);}else {var d=o.top*s-u,m=o.bottom*s+u,v=o.left*s-u,g=o.right*s+u,x=o.collisionPadding;if(x&&(v-=x[0]*s,d-=x[1]*s,g+=x[2]*s,m+=x[3]*s),p){var b=new i(v,d),w=new i(g,d),_=new i(v,m),A=new i(g,m),S=p*Math.PI/180;b._rotate(S),w._rotate(S),_._rotate(S),A._rotate(S),v=Math.min(b.x,w.x,_.x,A.x),g=Math.max(b.x,w.x,_.x,A.x),d=Math.min(b.y,w.y,_.y,A.y),m=Math.max(b.y,w.y,_.y,A.y);}t.emplaceBack(e.x,e.y,v,d,g,m,r,n,a);}this.boxEndIndex=t.length;},Qu=function(t,e){if(void 0===t&&(t=[]),void 0===e&&(e=tl),this.data=t,this.length=this.data.length,this.compare=e,this.length>0)for(var r=(this.length>>1)-1;r>=0;r--)this._down(r);};function tl(t,e){return t<e?-1:t>e?1:0}function el(t,e,r){void 0===e&&(e=1),void 0===r&&(r=!1);for(var n=1/0,a=1/0,o=-1/0,s=-1/0,u=t[0],l=0;l<u.length;l++){var p=u[l];(!l||p.x<n)&&(n=p.x),(!l||p.y<a)&&(a=p.y),(!l||p.x>o)&&(o=p.x),(!l||p.y>s)&&(s=p.y);}var c=Math.min(o-n,s-a),h=c/2,f=new Qu([],rl);if(0===c)return new i(n,a);for(var y=n;y<o;y+=c)for(var d=a;d<s;d+=c)f.push(new nl(y+h,d+h,h,t));for(var m=function(t){for(var e=0,r=0,n=0,i=t[0],a=0,o=i.length,s=o-1;a<o;s=a++){var u=i[a],l=i[s],p=u.x*l.y-l.x*u.y;r+=(u.x+l.x)*p,n+=(u.y+l.y)*p,e+=3*p;}return new nl(r/e,n/e,0,t)}(t),v=f.length;f.length;){var g=f.pop();(g.d>m.d||!m.d)&&(m=g,r&&console.log("found best %d after %d probes",Math.round(1e4*g.d)/1e4,v)),g.max-m.d<=e||(f.push(new nl(g.p.x-(h=g.h/2),g.p.y-h,h,t)),f.push(new nl(g.p.x+h,g.p.y-h,h,t)),f.push(new nl(g.p.x-h,g.p.y+h,h,t)),f.push(new nl(g.p.x+h,g.p.y+h,h,t)),v+=4);}return r&&(console.log("num probes: "+v),console.log("best distance: "+m.d)),m.p}function rl(t,e){return e.max-t.max}function nl(t,e,r,n){this.p=new i(t,e),this.h=r,this.d=function(t,e){for(var r=!1,n=1/0,i=0;i<e.length;i++)for(var a=e[i],o=0,s=a.length,u=s-1;o<s;u=o++){var l=a[o],p=a[u];l.y>t.y!=p.y>t.y&&t.x<(p.x-l.x)*(t.y-l.y)/(p.y-l.y)+l.x&&(r=!r),n=Math.min(n,Ya(t,l,p));}return (r?1:-1)*Math.sqrt(n)}(this.p,n),this.max=this.d+this.h*Math.SQRT2;}Qu.prototype.push=function(t){this.data.push(t),this.length++,this._up(this.length-1);},Qu.prototype.pop=function(){if(0!==this.length){var t=this.data[0],e=this.data.pop();return this.length--,this.length>0&&(this.data[0]=e,this._down(0)),t}},Qu.prototype.peek=function(){return this.data[0]},Qu.prototype._up=function(t){for(var e=this.data,r=this.compare,n=e[t];t>0;){var i=t-1>>1,a=e[i];if(r(n,a)>=0)break;e[t]=a,t=i;}e[t]=n;},Qu.prototype._down=function(t){for(var e=this.data,r=this.compare,n=this.length>>1,i=e[t];t<n;){var a=1+(t<<1),o=e[a],s=a+1;if(s<this.length&&r(e[s],o)<0&&(a=s,o=e[s]),r(o,i)>=0)break;e[t]=o,t=a;}e[t]=i;};var il=Number.POSITIVE_INFINITY;function al(t,e){return e[1]!==il?function(t,e,r){var n=0,i=0;switch(e=Math.abs(e),r=Math.abs(r),t){case"top-right":case"top-left":case"top":i=r-7;break;case"bottom-right":case"bottom-left":case"bottom":i=7-r;}switch(t){case"top-right":case"bottom-right":case"right":n=-e;break;case"top-left":case"bottom-left":case"left":n=e;}return [n,i]}(t,e[0],e[1]):function(t,e){var r=0,n=0;e<0&&(e=0);var i=e/Math.sqrt(2);switch(t){case"top-right":case"top-left":n=i-7;break;case"bottom-right":case"bottom-left":n=7-i;break;case"bottom":n=7-e;break;case"top":n=e-7;}switch(t){case"top-right":case"bottom-right":r=-i;break;case"top-left":case"bottom-left":r=i;break;case"left":r=e;break;case"right":r=-e;}return [r,n]}(t,e[0])}function ol(t){switch(t){case"right":case"top-right":case"bottom-right":return "right";case"left":case"top-left":case"bottom-left":return "left"}return "center"}function sl(t,e,r,n,a,o,s,u,l,p,c,h,f,y,d){var m=function(t,e,r,n,a,o,s,u){for(var l=n.layout.get("text-rotate").evaluate(o,{})*Math.PI/180,p=[],c=0,h=e.positionedLines;c<h.length;c+=1)for(var f=h[c],y=0,d=f.positionedGlyphs;y<d.length;y+=1){var m=d[y];if(m.rect){var v=m.rect||{},g=4,x=!0,b=1,w=0,_=(a||u)&&m.vertical,A=m.metrics.advance*m.scale/2;if(u&&e.verticalizable&&(w=f.lineOffset/2-(m.imageName?-(24-m.metrics.width*m.scale)/2:24*(m.scale-1))),m.imageName){var S=s[m.imageName];x=S.sdf,g=1/(b=S.pixelRatio);}var k=a?[m.x+A,m.y]:[0,0],I=a?[0,0]:[m.x+A+r[0],m.y+r[1]-w],z=[0,0];_&&(z=I,I=[0,0]);var C=(m.metrics.left-g)*m.scale-A+I[0],E=(-m.metrics.top-g)*m.scale+I[1],P=C+v.w*m.scale/b,M=E+v.h*m.scale/b,B=new i(C,E),T=new i(P,E),V=new i(C,M),F=new i(P,M);if(_){var D=new i(-A,A- -17),L=-Math.PI/2,O=12-A,R=new i(22-O,-(m.imageName?O:0)),U=new(Function.prototype.bind.apply(i,[null].concat(z)));B._rotateAround(L,D)._add(R)._add(U),T._rotateAround(L,D)._add(R)._add(U),V._rotateAround(L,D)._add(R)._add(U),F._rotateAround(L,D)._add(R)._add(U);}if(l){var j=Math.sin(l),q=Math.cos(l),N=[q,-j,j,q];B._matMult(N),T._matMult(N),V._matMult(N),F._matMult(N);}var K=new i(0,0),G=new i(0,0);p.push({tl:B,tr:T,bl:V,br:F,tex:v,writingMode:e.writingMode,glyphOffset:k,sectionIndex:m.sectionIndex,isSDF:x,pixelOffsetTL:K,pixelOffsetBR:G,minFontScaleX:0,minFontScaleY:0});}}return p}(0,r,u,a,o,s,n,t.allowVerticalPlacement),v=t.textSizeData,g=null;"source"===v.kind?(g=[128*a.layout.get("text-size").evaluate(s,{})])[0]>32640&&A(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):"composite"===v.kind&&((g=[128*y.compositeTextSizes[0].evaluate(s,{},d),128*y.compositeTextSizes[1].evaluate(s,{},d)])[0]>32640||g[1]>32640)&&A(t.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),t.addSymbols(t.text,m,g,u,o,s,p,e,l.lineStartIndex,l.lineLength,f,d);for(var x=0,b=c;x<b.length;x+=1)h[b[x]]=t.text.placedSymbolArray.length-1;return 4*m.length}function ul(t){for(var e in t)return t[e];return null}function ll(t,e,r,n){var i=t.compareText;if(e in i){for(var a=i[e],o=a.length-1;o>=0;o--)if(n.dist(a[o])<r)return !0}else i[e]=[];return i[e].push(n),!1}var pl=bs.VectorTileFeature.types,cl=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function hl(t,e,r,n,i,a,o,s,u,l,p,c,h){var f=s?Math.min(32640,Math.round(s[0])):0,y=s?Math.min(32640,Math.round(s[1])):0;t.emplaceBack(e,r,Math.round(32*n),Math.round(32*i),a,o,(f<<1)+(u?1:0),y,16*l,16*p,256*c,256*h);}function fl(t,e,r){t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r),t.emplaceBack(e.x,e.y,r);}function yl(t){for(var e=0,r=t.sections;e<r.length;e+=1)if($n(r[e].text))return !0;return !1}var dl=function(t){this.layoutVertexArray=new Vi,this.indexArray=new ji,this.programConfigurations=t,this.segments=new sa,this.dynamicLayoutVertexArray=new Fi,this.opacityVertexArray=new Di,this.placedSymbolArray=new Qi;};dl.prototype.isEmpty=function(){return 0===this.layoutVertexArray.length&&0===this.indexArray.length&&0===this.dynamicLayoutVertexArray.length&&0===this.opacityVertexArray.length},dl.prototype.upload=function(t,e,r,n){this.isEmpty()||(r&&(this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,js.members),this.indexBuffer=t.createIndexBuffer(this.indexArray,e),this.dynamicLayoutVertexBuffer=t.createVertexBuffer(this.dynamicLayoutVertexArray,qs.members,!0),this.opacityVertexBuffer=t.createVertexBuffer(this.opacityVertexArray,cl,!0),this.opacityVertexBuffer.itemSize=1),(r||n)&&this.programConfigurations.upload(t));},dl.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy());},On("SymbolBuffers",dl);var ml=function(t,e,r){this.layoutVertexArray=new t,this.layoutAttributes=e,this.indexArray=new r,this.segments=new sa,this.collisionVertexArray=new Ui;};ml.prototype.upload=function(t){this.layoutVertexBuffer=t.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=t.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=t.createVertexBuffer(this.collisionVertexArray,Ns.members,!0);},ml.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy());},On("CollisionBuffers",ml);var vl=function(t){this.collisionBoxArray=t.collisionBoxArray,this.zoom=t.zoom,this.overscaling=t.overscaling,this.layers=t.layers,this.layerIds=this.layers.map((function(t){return t.id})),this.index=t.index,this.pixelRatio=t.pixelRatio,this.sourceLayerIndex=t.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=oo([]),this.placementViewportMatrix=oo([]);var e=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Du(this.zoom,e["text-size"]),this.iconSizeData=Du(this.zoom,e["icon-size"]);var r=this.layers[0].layout,n=r.get("symbol-sort-key"),i=r.get("symbol-z-order");this.canOverlap=r.get("text-allow-overlap")||r.get("icon-allow-overlap")||r.get("text-ignore-placement")||r.get("icon-ignore-placement"),this.sortFeaturesByKey="viewport-y"!==i&&void 0!==n.constantOr(1),this.sortFeaturesByY=("viewport-y"===i||"auto"===i&&!this.sortFeaturesByKey)&&this.canOverlap,"point"===r.get("symbol-placement")&&(this.writingModes=r.get("text-writing-mode").map((function(t){return wu[t]}))),this.stateDependentLayerIds=this.layers.filter((function(t){return t.isStateDependent()})).map((function(t){return t.id})),this.sourceID=t.sourceID;};vl.prototype.createArrays=function(){this.text=new dl(new Va(this.layers,this.zoom,(function(t){return /^text/.test(t)}))),this.icon=new dl(new Va(this.layers,this.zoom,(function(t){return /^icon/.test(t)}))),this.glyphOffsetArray=new ra,this.lineVertexArray=new na,this.symbolInstances=new ea;},vl.prototype.calculateGlyphDependencies=function(t,e,r,n,i){for(var a=0;a<t.length;a++)if(e[t.charCodeAt(a)]=!0,(r||n)&&i){var o=Xs[t.charAt(a)];o&&(e[o.charCodeAt(0)]=!0);}},vl.prototype.populate=function(t,e,r){var n=this.layers[0],i=n.layout,a=i.get("text-font"),o=i.get("text-field"),s=i.get("icon-image"),u=("constant"!==o.value.kind||o.value.value instanceof ne&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&("constant"!==a.value.kind||a.value.value.length>0),l="constant"!==s.value.kind||!!s.value.value||Object.keys(s.parameters).length>0,p=i.get("symbol-sort-key");if(this.features=[],u||l){for(var c=e.iconDependencies,h=e.glyphDependencies,f=e.availableImages,y=new si(this.zoom),d=0,m=t;d<m.length;d+=1){var v=m[d],g=v.feature,x=v.id,b=v.index,w=v.sourceLayerIndex,_=n._featureFilter.needGeometry,A=Ua(g,_);if(n._featureFilter.filter(y,A,r)){_||(A.geometry=Ra(g));var S=void 0;if(u){var k=n.getValueAndResolveTokens("text-field",A,r,f),I=ne.factory(k);yl(I)&&(this.hasRTLText=!0),(!this.hasRTLText||"unavailable"===ii()||this.hasRTLText&&oi.isParsed())&&(S=Zs(I,n,A));}var z=void 0;if(l){var C=n.getValueAndResolveTokens("icon-image",A,r,f);z=C instanceof ie?C:ie.fromString(C);}if(S||z){var E=this.sortFeaturesByKey?p.evaluate(A,{},r):void 0;if(this.features.push({id:x,text:S,icon:z,index:b,sourceLayerIndex:w,geometry:A.geometry,properties:g.properties,type:pl[g.type],sortKey:E}),z&&(c[z.name]=!0),S){var P=a.evaluate(A,{},r).join(","),M="map"===i.get("text-rotation-alignment")&&"point"!==i.get("symbol-placement");this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(wu.vertical)>=0;for(var B=0,T=S.sections;B<T.length;B+=1){var V=T[B];if(V.image)c[V.image.name]=!0;else {var F=Zn(S.toString()),D=V.fontStack||P,L=h[D]=h[D]||{};this.calculateGlyphDependencies(V.text,L,M,this.allowVerticalPlacement,F);}}}}}}"line"===i.get("symbol-placement")&&(this.features=function(t){var e={},r={},n=[],i=0;function a(e){n.push(t[e]),i++;}function o(t,e,i){var a=r[t];return delete r[t],r[e]=a,n[a].geometry[0].pop(),n[a].geometry[0]=n[a].geometry[0].concat(i[0]),a}function s(t,r,i){var a=e[r];return delete e[r],e[t]=a,n[a].geometry[0].shift(),n[a].geometry[0]=i[0].concat(n[a].geometry[0]),a}function u(t,e,r){var n=r?e[0][e[0].length-1]:e[0][0];return t+":"+n.x+":"+n.y}for(var l=0;l<t.length;l++){var p=t[l],c=p.geometry,h=p.text?p.text.toString():null;if(h){var f=u(h,c),y=u(h,c,!0);if(f in r&&y in e&&r[f]!==e[y]){var d=s(f,y,c),m=o(f,y,n[d].geometry);delete e[f],delete r[y],r[u(h,n[m].geometry,!0)]=m,n[d].geometry=null;}else f in r?o(f,y,c):y in e?s(f,y,c):(a(l),e[f]=i-1,r[y]=i-1);}else a(l);}return n.filter((function(t){return t.geometry}))}(this.features)),this.sortFeaturesByKey&&this.features.sort((function(t,e){return t.sortKey-e.sortKey}));}},vl.prototype.update=function(t,e,r){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(t,e,this.layers,r),this.icon.programConfigurations.updatePaintArrays(t,e,this.layers,r));},vl.prototype.isEmpty=function(){return 0===this.symbolInstances.length&&!this.hasRTLText},vl.prototype.uploadPending=function(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload},vl.prototype.upload=function(t){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(t),this.iconCollisionBox.upload(t)),this.text.upload(t,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(t,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0;},vl.prototype.destroyDebugData=function(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();},vl.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();},vl.prototype.addToLineVertexArray=function(t,e){var r=this.lineVertexArray.length;if(void 0!==t.segment){for(var n=t.dist(e[t.segment+1]),i=t.dist(e[t.segment]),a={},o=t.segment+1;o<e.length;o++)a[o]={x:e[o].x,y:e[o].y,tileUnitDistanceFromAnchor:n},o<e.length-1&&(n+=e[o+1].dist(e[o]));for(var s=t.segment||0;s>=0;s--)a[s]={x:e[s].x,y:e[s].y,tileUnitDistanceFromAnchor:i},s>0&&(i+=e[s-1].dist(e[s]));for(var u=0;u<e.length;u++){var l=a[u];this.lineVertexArray.emplaceBack(l.x,l.y,l.tileUnitDistanceFromAnchor);}}return {lineStartIndex:r,lineLength:this.lineVertexArray.length-r}},vl.prototype.addSymbols=function(t,e,r,n,i,a,o,s,u,l,p,c){for(var h=t.indexArray,f=t.layoutVertexArray,y=t.segments.prepareSegment(4*e.length,f,h,this.canOverlap?a.sortKey:void 0),d=this.glyphOffsetArray.length,m=y.vertexLength,v=this.allowVerticalPlacement&&o===wu.vertical?Math.PI/2:0,g=a.text&&a.text.sections,x=0;x<e.length;x++){var b=e[x],w=b.tl,_=b.tr,A=b.bl,S=b.br,k=b.tex,I=b.pixelOffsetTL,z=b.pixelOffsetBR,C=b.minFontScaleX,E=b.minFontScaleY,P=b.glyphOffset,M=b.isSDF,B=b.sectionIndex,T=y.vertexLength,V=P[1];hl(f,s.x,s.y,w.x,V+w.y,k.x,k.y,r,M,I.x,I.y,C,E),hl(f,s.x,s.y,_.x,V+_.y,k.x+k.w,k.y,r,M,z.x,I.y,C,E),hl(f,s.x,s.y,A.x,V+A.y,k.x,k.y+k.h,r,M,I.x,z.y,C,E),hl(f,s.x,s.y,S.x,V+S.y,k.x+k.w,k.y+k.h,r,M,z.x,z.y,C,E),fl(t.dynamicLayoutVertexArray,s,v),h.emplaceBack(T,T+1,T+2),h.emplaceBack(T+1,T+2,T+3),y.vertexLength+=4,y.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(P[0]),x!==e.length-1&&B===e[x+1].sectionIndex||t.programConfigurations.populatePaintArrays(f.length,a,a.index,{},c,g&&g[B]);}t.placedSymbolArray.emplaceBack(s.x,s.y,d,this.glyphOffsetArray.length-d,m,u,l,s.segment,r?r[0]:0,r?r[1]:0,n[0],n[1],o,0,!1,0,p);},vl.prototype._addCollisionDebugVertex=function(t,e,r,n,i,a){return e.emplaceBack(0,0),t.emplaceBack(r.x,r.y,n,i,Math.round(a.x),Math.round(a.y))},vl.prototype.addCollisionDebugVertices=function(t,e,r,n,a,o,s){var u=a.segments.prepareSegment(4,a.layoutVertexArray,a.indexArray),l=u.vertexLength,p=a.layoutVertexArray,c=a.collisionVertexArray,h=s.anchorX,f=s.anchorY;this._addCollisionDebugVertex(p,c,o,h,f,new i(t,e)),this._addCollisionDebugVertex(p,c,o,h,f,new i(r,e)),this._addCollisionDebugVertex(p,c,o,h,f,new i(r,n)),this._addCollisionDebugVertex(p,c,o,h,f,new i(t,n)),u.vertexLength+=4;var y=a.indexArray;y.emplaceBack(l,l+1),y.emplaceBack(l+1,l+2),y.emplaceBack(l+2,l+3),y.emplaceBack(l+3,l),u.primitiveLength+=4;},vl.prototype.addDebugCollisionBoxes=function(t,e,r,n){for(var i=t;i<e;i++){var a=this.collisionBoxArray.get(i);this.addCollisionDebugVertices(a.x1,a.y1,a.x2,a.y2,n?this.textCollisionBox:this.iconCollisionBox,a.anchorPoint,r);}},vl.prototype.generateCollisionDebugBuffers=function(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new ml(Oi,Ks.members,Xi),this.iconCollisionBox=new ml(Oi,Ks.members,Xi);for(var t=0;t<this.symbolInstances.length;t++){var e=this.symbolInstances.get(t);this.addDebugCollisionBoxes(e.textBoxStartIndex,e.textBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.verticalTextBoxStartIndex,e.verticalTextBoxEndIndex,e,!0),this.addDebugCollisionBoxes(e.iconBoxStartIndex,e.iconBoxEndIndex,e,!1),this.addDebugCollisionBoxes(e.verticalIconBoxStartIndex,e.verticalIconBoxEndIndex,e,!1);}},vl.prototype._deserializeCollisionBoxesForSymbol=function(t,e,r,n,i,a,o,s,u){for(var l={},p=e;p<r;p++){var c=t.get(p);l.textBox={x1:c.x1,y1:c.y1,x2:c.x2,y2:c.y2,anchorPointX:c.anchorPointX,anchorPointY:c.anchorPointY},l.textFeatureIndex=c.featureIndex;break}for(var h=n;h<i;h++){var f=t.get(h);l.verticalTextBox={x1:f.x1,y1:f.y1,x2:f.x2,y2:f.y2,anchorPointX:f.anchorPointX,anchorPointY:f.anchorPointY},l.verticalTextFeatureIndex=f.featureIndex;break}for(var y=a;y<o;y++){var d=t.get(y);l.iconBox={x1:d.x1,y1:d.y1,x2:d.x2,y2:d.y2,anchorPointX:d.anchorPointX,anchorPointY:d.anchorPointY},l.iconFeatureIndex=d.featureIndex;break}for(var m=s;m<u;m++){var v=t.get(m);l.verticalIconBox={x1:v.x1,y1:v.y1,x2:v.x2,y2:v.y2,anchorPointX:v.anchorPointX,anchorPointY:v.anchorPointY},l.verticalIconFeatureIndex=v.featureIndex;break}return l},vl.prototype.deserializeCollisionBoxes=function(t){this.collisionArrays=[];for(var e=0;e<this.symbolInstances.length;e++){var r=this.symbolInstances.get(e);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t,r.textBoxStartIndex,r.textBoxEndIndex,r.verticalTextBoxStartIndex,r.verticalTextBoxEndIndex,r.iconBoxStartIndex,r.iconBoxEndIndex,r.verticalIconBoxStartIndex,r.verticalIconBoxEndIndex));}},vl.prototype.hasTextData=function(){return this.text.segments.get().length>0},vl.prototype.hasIconData=function(){return this.icon.segments.get().length>0},vl.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},vl.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},vl.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},vl.prototype.addIndicesForPlacedSymbol=function(t,e){for(var r=t.placedSymbolArray.get(e),n=r.vertexStartIndex+4*r.numGlyphs,i=r.vertexStartIndex;i<n;i+=4)t.indexArray.emplaceBack(i,i+1,i+2),t.indexArray.emplaceBack(i+1,i+2,i+3);},vl.prototype.getSortedSymbolIndexes=function(t){if(this.sortedAngle===t&&void 0!==this.symbolInstanceIndexes)return this.symbolInstanceIndexes;for(var e=Math.sin(t),r=Math.cos(t),n=[],i=[],a=[],o=0;o<this.symbolInstances.length;++o){a.push(o);var s=this.symbolInstances.get(o);n.push(0|Math.round(e*s.anchorX+r*s.anchorY)),i.push(s.featureIndex);}return a.sort((function(t,e){return n[t]-n[e]||i[e]-i[t]})),a},vl.prototype.addToSortKeyRanges=function(t,e){var r=this.sortKeyRanges[this.sortKeyRanges.length-1];r&&r.sortKey===e?r.symbolInstanceEnd=t+1:this.sortKeyRanges.push({sortKey:e,symbolInstanceStart:t,symbolInstanceEnd:t+1});},vl.prototype.sortFeatures=function(t){var e=this;if(this.sortFeaturesByY&&this.sortedAngle!==t&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(t),this.sortedAngle=t,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var r=0,n=this.symbolInstanceIndexes;r<n.length;r+=1){var i=this.symbolInstances.get(n[r]);this.featureSortOrder.push(i.featureIndex),[i.rightJustifiedTextSymbolIndex,i.centerJustifiedTextSymbolIndex,i.leftJustifiedTextSymbolIndex].forEach((function(t,r,n){t>=0&&n.indexOf(t)===r&&e.addIndicesForPlacedSymbol(e.text,t);})),i.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,i.verticalPlacedTextSymbolIndex),i.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.placedIconSymbolIndex),i.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,i.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}},On("SymbolBucket",vl,{omit:["layers","collisionBoxArray","features","compareText"]}),vl.MAX_GLYPHS=65535,vl.addDynamicAttributes=fl;var gl=new wi({"symbol-placement":new mi(Et.layout_symbol["symbol-placement"]),"symbol-spacing":new mi(Et.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new mi(Et.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new vi(Et.layout_symbol["symbol-sort-key"]),"symbol-z-order":new mi(Et.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new mi(Et.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new mi(Et.layout_symbol["icon-ignore-placement"]),"icon-optional":new mi(Et.layout_symbol["icon-optional"]),"icon-rotation-alignment":new mi(Et.layout_symbol["icon-rotation-alignment"]),"icon-size":new vi(Et.layout_symbol["icon-size"]),"icon-text-fit":new mi(Et.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new mi(Et.layout_symbol["icon-text-fit-padding"]),"icon-image":new vi(Et.layout_symbol["icon-image"]),"icon-rotate":new vi(Et.layout_symbol["icon-rotate"]),"icon-padding":new mi(Et.layout_symbol["icon-padding"]),"icon-keep-upright":new mi(Et.layout_symbol["icon-keep-upright"]),"icon-offset":new vi(Et.layout_symbol["icon-offset"]),"icon-anchor":new vi(Et.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new mi(Et.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new mi(Et.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new mi(Et.layout_symbol["text-rotation-alignment"]),"text-field":new vi(Et.layout_symbol["text-field"]),"text-font":new vi(Et.layout_symbol["text-font"]),"text-size":new vi(Et.layout_symbol["text-size"]),"text-max-width":new vi(Et.layout_symbol["text-max-width"]),"text-line-height":new mi(Et.layout_symbol["text-line-height"]),"text-letter-spacing":new vi(Et.layout_symbol["text-letter-spacing"]),"text-justify":new vi(Et.layout_symbol["text-justify"]),"text-radial-offset":new vi(Et.layout_symbol["text-radial-offset"]),"text-variable-anchor":new mi(Et.layout_symbol["text-variable-anchor"]),"text-anchor":new vi(Et.layout_symbol["text-anchor"]),"text-max-angle":new mi(Et.layout_symbol["text-max-angle"]),"text-writing-mode":new mi(Et.layout_symbol["text-writing-mode"]),"text-rotate":new vi(Et.layout_symbol["text-rotate"]),"text-padding":new mi(Et.layout_symbol["text-padding"]),"text-keep-upright":new mi(Et.layout_symbol["text-keep-upright"]),"text-transform":new vi(Et.layout_symbol["text-transform"]),"text-offset":new vi(Et.layout_symbol["text-offset"]),"text-allow-overlap":new mi(Et.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new mi(Et.layout_symbol["text-ignore-placement"]),"text-optional":new mi(Et.layout_symbol["text-optional"])}),xl={paint:new wi({"icon-opacity":new vi(Et.paint_symbol["icon-opacity"]),"icon-color":new vi(Et.paint_symbol["icon-color"]),"icon-halo-color":new vi(Et.paint_symbol["icon-halo-color"]),"icon-halo-width":new vi(Et.paint_symbol["icon-halo-width"]),"icon-halo-blur":new vi(Et.paint_symbol["icon-halo-blur"]),"icon-translate":new mi(Et.paint_symbol["icon-translate"]),"icon-translate-anchor":new mi(Et.paint_symbol["icon-translate-anchor"]),"text-opacity":new vi(Et.paint_symbol["text-opacity"]),"text-color":new vi(Et.paint_symbol["text-color"],{runtimeType:jt,getOverride:function(t){return t.textColor},hasOverride:function(t){return !!t.textColor}}),"text-halo-color":new vi(Et.paint_symbol["text-halo-color"]),"text-halo-width":new vi(Et.paint_symbol["text-halo-width"]),"text-halo-blur":new vi(Et.paint_symbol["text-halo-blur"]),"text-translate":new mi(Et.paint_symbol["text-translate"]),"text-translate-anchor":new mi(Et.paint_symbol["text-translate-anchor"])}),layout:gl},bl=function(t){this.type=t.property.overrides?t.property.overrides.runtimeType:Lt,this.defaultValue=t;};bl.prototype.evaluate=function(t){if(t.formattedSection){var e=this.defaultValue.property.overrides;if(e&&e.hasOverride(t.formattedSection))return e.getOverride(t.formattedSection)}return t.feature&&t.featureState?this.defaultValue.evaluate(t.feature,t.featureState):this.defaultValue.property.specification.default},bl.prototype.eachChild=function(t){this.defaultValue.isConstant()||t(this.defaultValue.value._styleExpression.expression);},bl.prototype.outputDefined=function(){return !1},bl.prototype.serialize=function(){return null},On("FormatSectionOverride",bl,{omit:["defaultValue"]});var wl=function(t){function e(e){t.call(this,e,xl);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.recalculate=function(e,r){if(t.prototype.recalculate.call(this,e,r),"auto"===this.layout.get("icon-rotation-alignment")&&(this.layout._values["icon-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-rotation-alignment")&&(this.layout._values["text-rotation-alignment"]="point"!==this.layout.get("symbol-placement")?"map":"viewport"),"auto"===this.layout.get("text-pitch-alignment")&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),"auto"===this.layout.get("icon-pitch-alignment")&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),"point"===this.layout.get("symbol-placement")){var n=this.layout.get("text-writing-mode");if(n){for(var i=[],a=0,o=n;a<o.length;a+=1){var s=o[a];i.indexOf(s)<0&&i.push(s);}this.layout._values["text-writing-mode"]=i;}else this.layout._values["text-writing-mode"]=["horizontal"];}this._setPaintOverrides();},e.prototype.getValueAndResolveTokens=function(t,e,r,n){var i=this.layout.get(t).evaluate(e,{},r,n),a=this._unevaluatedLayout._values[t];return a.isDataDriven()||Gr(a.value)||!i?i:function(t,e){return e.replace(/{([^{}]+)}/g,(function(e,r){return r in t?String(t[r]):""}))}(e.properties,i)},e.prototype.createBucket=function(t){return new vl(t)},e.prototype.queryRadius=function(){return 0},e.prototype.queryIntersectsFeature=function(){return !1},e.prototype._setPaintOverrides=function(){for(var t=0,r=xl.paint.overridableProperties;t<r.length;t+=1){var n=r[t];if(e.hasPaintOverride(this.layout,n)){var i,a=this.paint.get(n),o=new bl(a),s=new Kr(o,a.property.specification);i="constant"===a.value.kind||"source"===a.value.kind?new Xr("source",s):new Jr("composite",s,a.value.zoomStops,a.value._interpolationType),this.paint._values[n]=new yi(a.property,i,a.parameters);}}},e.prototype._handleOverridablePaintPropertyUpdate=function(t,r,n){return !(!this.layout||r.isDataDriven()||n.isDataDriven())&&e.hasPaintOverride(this.layout,t)},e.hasPaintOverride=function(t,e){var r=t.get("text-field"),n=xl.paint.properties[e],i=!1,a=function(t){for(var e=0,r=t;e<r.length;e+=1)if(n.overrides&&n.overrides.hasOverride(r[e]))return void(i=!0)};if("constant"===r.value.kind&&r.value.value instanceof ne)a(r.value.value.sections);else if("source"===r.value.kind){var o=function(t){i||(t instanceof le&&se(t.value)===Gt?a(t.value.sections):t instanceof fe?a(t.sections):t.eachChild(o));},s=r.value;s._styleExpression&&o(s._styleExpression.expression);}return i},e}(_i),_l={paint:new wi({"background-color":new mi(Et.paint_background["background-color"]),"background-pattern":new xi(Et.paint_background["background-pattern"]),"background-opacity":new mi(Et.paint_background["background-opacity"])})},Al=function(t){function e(e){t.call(this,e,_l);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(_i),Sl={paint:new wi({"raster-opacity":new mi(Et.paint_raster["raster-opacity"]),"raster-hue-rotate":new mi(Et.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new mi(Et.paint_raster["raster-brightness-min"]),"raster-brightness-max":new mi(Et.paint_raster["raster-brightness-max"]),"raster-saturation":new mi(Et.paint_raster["raster-saturation"]),"raster-contrast":new mi(Et.paint_raster["raster-contrast"]),"raster-resampling":new mi(Et.paint_raster["raster-resampling"]),"raster-fade-duration":new mi(Et.paint_raster["raster-fade-duration"])})},kl=function(t){function e(e){t.call(this,e,Sl);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(_i),Il=function(t){function e(e){t.call(this,e,{}),this.implementation=e;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.is3D=function(){return "3d"===this.implementation.renderingMode},e.prototype.hasOffscreenPass=function(){return void 0!==this.implementation.prerender},e.prototype.recalculate=function(){},e.prototype.updateTransitions=function(){},e.prototype.hasTransition=function(){},e.prototype.serialize=function(){},e.prototype.onAdd=function(t){this.implementation.onAdd&&this.implementation.onAdd(t,t.painter.context.gl);},e.prototype.onRemove=function(t){this.implementation.onRemove&&this.implementation.onRemove(t,t.painter.context.gl);},e}(_i),zl={circle:co,heatmap:_o,hillshade:So,fill:ps,"fill-extrusion":zs,line:Rs,symbol:wl,background:Al,raster:kl},Cl=o.HTMLImageElement,El=o.HTMLCanvasElement,Pl=o.HTMLVideoElement,Ml=o.ImageData,Bl=o.ImageBitmap,Tl=function(t,e,r,n){this.context=t,this.format=r,this.texture=t.gl.createTexture(),this.update(e,n);};Tl.prototype.update=function(t,e,r){var n=t.width,i=t.height,a=!(this.size&&this.size[0]===n&&this.size[1]===i||r),o=this.context,s=o.gl;if(this.useMipmap=Boolean(e&&e.useMipmap),s.bindTexture(s.TEXTURE_2D,this.texture),o.pixelStoreUnpackFlipY.set(!1),o.pixelStoreUnpack.set(1),o.pixelStoreUnpackPremultiplyAlpha.set(this.format===s.RGBA&&(!e||!1!==e.premultiply)),a)this.size=[n,i],t instanceof Cl||t instanceof El||t instanceof Pl||t instanceof Ml||Bl&&t instanceof Bl?s.texImage2D(s.TEXTURE_2D,0,this.format,this.format,s.UNSIGNED_BYTE,t):s.texImage2D(s.TEXTURE_2D,0,this.format,n,i,0,this.format,s.UNSIGNED_BYTE,t.data);else {var u=r||{x:0,y:0},l=u.x,p=u.y;t instanceof Cl||t instanceof El||t instanceof Pl||t instanceof Ml||Bl&&t instanceof Bl?s.texSubImage2D(s.TEXTURE_2D,0,l,p,s.RGBA,s.UNSIGNED_BYTE,t):s.texSubImage2D(s.TEXTURE_2D,0,l,p,n,i,s.RGBA,s.UNSIGNED_BYTE,t.data);}this.useMipmap&&this.isSizePowerOfTwo()&&s.generateMipmap(s.TEXTURE_2D);},Tl.prototype.bind=function(t,e,r){var n=this.context.gl;n.bindTexture(n.TEXTURE_2D,this.texture),r!==n.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(r=n.LINEAR),t!==this.filter&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,t),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,r||t),this.filter=t),e!==this.wrap&&(n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,e),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,e),this.wrap=e);},Tl.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},Tl.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null;};var Vl=function(t){var e=this;this._callback=t,this._triggered=!1,"undefined"!=typeof MessageChannel&&(this._channel=new MessageChannel,this._channel.port2.onmessage=function(){e._triggered=!1,e._callback();});};Vl.prototype.trigger=function(){var t=this;this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((function(){t._triggered=!1,t._callback();}),0));},Vl.prototype.remove=function(){delete this._channel,this._callback=function(){};};var Fl=function(t,e,r){this.target=t,this.parent=e,this.mapId=r,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},v(["receive","process"],this),this.invoker=new Vl(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=I()?t:o;};function Dl(t,e,r){var n=2*Math.PI*6378137/256/Math.pow(2,r);return [t*n-2*Math.PI*6378137/2,e*n-2*Math.PI*6378137/2]}Fl.prototype.send=function(t,e,r,n,i){var a=this;void 0===i&&(i=!1);var o=Math.round(1e18*Math.random()).toString(36).substring(0,10);r&&(this.callbacks[o]=r);var s=E(this.globalScope)?void 0:[];return this.target.postMessage({id:o,type:t,hasCallback:!!r,targetMapId:n,mustQueue:i,sourceMapId:this.mapId,data:qn(e,s)},s),{cancel:function(){r&&delete a.callbacks[o],a.target.postMessage({id:o,type:"<cancel>",targetMapId:n,sourceMapId:a.mapId});}}},Fl.prototype.receive=function(t){var e=t.data,r=e.id;if(r&&(!e.targetMapId||this.mapId===e.targetMapId))if("<cancel>"===e.type){delete this.tasks[r];var n=this.cancelCallbacks[r];delete this.cancelCallbacks[r],n&&n();}else I()||e.mustQueue?(this.tasks[r]=e,this.taskQueue.push(r),this.invoker.trigger()):this.processTask(r,e);},Fl.prototype.process=function(){if(this.taskQueue.length){var t=this.taskQueue.shift(),e=this.tasks[t];delete this.tasks[t],this.taskQueue.length&&this.invoker.trigger(),e&&this.processTask(t,e);}},Fl.prototype.processTask=function(t,e){var r=this;if("<response>"===e.type){var n=this.callbacks[t];delete this.callbacks[t],n&&(e.error?n(Nn(e.error)):n(null,Nn(e.data)));}else {var i=!1,a=E(this.globalScope)?void 0:[],o=e.hasCallback?function(e,n){i=!0,delete r.cancelCallbacks[t],r.target.postMessage({id:t,type:"<response>",sourceMapId:r.mapId,error:e?qn(e):null,data:qn(n,a)},a);}:function(t){i=!0;},s=null,u=Nn(e.data);if(this.parent[e.type])s=this.parent[e.type](e.sourceMapId,u,o);else if(this.parent.getWorkerSource){var l=e.type.split(".");s=this.parent.getWorkerSource(e.sourceMapId,l[0],u.source)[l[1]](u,o);}else o(new Error("Could not find function "+e.type));!i&&s&&s.cancel&&(this.cancelCallbacks[t]=s.cancel);}},Fl.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1);};var Ll=function(t,e){t&&(e?this.setSouthWest(t).setNorthEast(e):4===t.length?this.setSouthWest([t[0],t[1]]).setNorthEast([t[2],t[3]]):this.setSouthWest(t[0]).setNorthEast(t[1]));};Ll.prototype.setNorthEast=function(t){return this._ne=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this},Ll.prototype.setSouthWest=function(t){return this._sw=t instanceof Ol?new Ol(t.lng,t.lat):Ol.convert(t),this},Ll.prototype.extend=function(t){var e,r,n=this._sw,i=this._ne;if(t instanceof Ol)e=t,r=t;else {if(!(t instanceof Ll))return Array.isArray(t)?4===t.length||t.every(Array.isArray)?this.extend(Ll.convert(t)):this.extend(Ol.convert(t)):this;if(r=t._ne,!(e=t._sw)||!r)return this}return n||i?(n.lng=Math.min(e.lng,n.lng),n.lat=Math.min(e.lat,n.lat),i.lng=Math.max(r.lng,i.lng),i.lat=Math.max(r.lat,i.lat)):(this._sw=new Ol(e.lng,e.lat),this._ne=new Ol(r.lng,r.lat)),this},Ll.prototype.getCenter=function(){return new Ol((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},Ll.prototype.getSouthWest=function(){return this._sw},Ll.prototype.getNorthEast=function(){return this._ne},Ll.prototype.getNorthWest=function(){return new Ol(this.getWest(),this.getNorth())},Ll.prototype.getSouthEast=function(){return new Ol(this.getEast(),this.getSouth())},Ll.prototype.getWest=function(){return this._sw.lng},Ll.prototype.getSouth=function(){return this._sw.lat},Ll.prototype.getEast=function(){return this._ne.lng},Ll.prototype.getNorth=function(){return this._ne.lat},Ll.prototype.toArray=function(){return [this._sw.toArray(),this._ne.toArray()]},Ll.prototype.toString=function(){return "LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},Ll.prototype.isEmpty=function(){return !(this._sw&&this._ne)},Ll.prototype.contains=function(t){var e=Ol.convert(t),r=e.lng,n=e.lat,i=this._sw.lng<=r&&r<=this._ne.lng;return this._sw.lng>this._ne.lng&&(i=this._sw.lng>=r&&r>=this._ne.lng),this._sw.lat<=n&&n<=this._ne.lat&&i},Ll.convert=function(t){return !t||t instanceof Ll?t:new Ll(t)};var Ol=function(t,e){if(isNaN(t)||isNaN(e))throw new Error("Invalid LngLat object: ("+t+", "+e+")");if(this.lng=+t,this.lat=+e,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};Ol.prototype.wrap=function(){return new Ol(c(this.lng,-180,180),this.lat)},Ol.prototype.toArray=function(){return [this.lng,this.lat]},Ol.prototype.toString=function(){return "LngLat("+this.lng+", "+this.lat+")"},Ol.prototype.distanceTo=function(t){var e=Math.PI/180,r=this.lat*e,n=t.lat*e,i=Math.sin(r)*Math.sin(n)+Math.cos(r)*Math.cos(n)*Math.cos((t.lng-this.lng)*e);return 6371008.8*Math.acos(Math.min(i,1))},Ol.prototype.toBounds=function(t){void 0===t&&(t=0);var e=360*t/40075017,r=e/Math.cos(Math.PI/180*this.lat);return new Ll(new Ol(this.lng-r,this.lat-e),new Ol(this.lng+r,this.lat+e))},Ol.convert=function(t){if(t instanceof Ol)return t;if(Array.isArray(t)&&(2===t.length||3===t.length))return new Ol(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&"object"==typeof t&&null!==t)return new Ol(Number("lng"in t?t.lng:t.lon),Number(t.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")};var Rl=2*Math.PI*6371008.8;function Ul(t){return Rl*Math.cos(t*Math.PI/180)}function jl(t){return (180+t)/360}function ql(t){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t*Math.PI/360)))/360}function Nl(t,e){return t/Ul(e)}function Kl(t){return 360/Math.PI*Math.atan(Math.exp((180-360*t)*Math.PI/180))-90}var Gl=function(t,e,r){void 0===r&&(r=0),this.x=+t,this.y=+e,this.z=+r;};Gl.fromLngLat=function(t,e){void 0===e&&(e=0);var r=Ol.convert(t);return new Gl(jl(r.lng),ql(r.lat),Nl(e,r.lat))},Gl.prototype.toLngLat=function(){return new Ol(360*this.x-180,Kl(this.y))},Gl.prototype.toAltitude=function(){return this.z*Ul(Kl(this.y))},Gl.prototype.meterInMercatorCoordinateUnits=function(){return 1/Rl*(t=Kl(this.y),1/Math.cos(t*Math.PI/180));var t;};var Zl=function(t,e,r){this.z=t,this.x=e,this.y=r,this.key=Hl(0,t,t,e,r);};Zl.prototype.equals=function(t){return this.z===t.z&&this.x===t.x&&this.y===t.y},Zl.prototype.url=function(t,e){var r,n,i,a,o,s=(n=this.y,i=this.z,a=Dl(256*(r=this.x),256*(n=Math.pow(2,i)-n-1),i),o=Dl(256*(r+1),256*(n+1),i),a[0]+","+a[1]+","+o[0]+","+o[1]),u=function(t,e,r){for(var n,i="",a=t;a>0;a--)i+=(e&(n=1<<a-1)?1:0)+(r&n?2:0);return i}(this.z,this.x,this.y);return t[(this.x+this.y)%t.length].replace("{prefix}",(this.x%16).toString(16)+(this.y%16).toString(16)).replace("{z}",String(this.z)).replace("{x}",String(this.x)).replace("{y}",String("tms"===e?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",u).replace("{bbox-epsg-3857}",s)},Zl.prototype.getTilePoint=function(t){var e=Math.pow(2,this.z);return new i(8192*(t.x*e-this.x),8192*(t.y*e-this.y))},Zl.prototype.toString=function(){return this.z+"/"+this.x+"/"+this.y};var Xl=function(t,e){this.wrap=t,this.canonical=e,this.key=Hl(t,e.z,e.z,e.x,e.y);},Jl=function(t,e,r,n,i){this.overscaledZ=t,this.wrap=e,this.canonical=new Zl(r,+n,+i),this.key=Hl(e,t,r,n,i);};function Hl(t,e,r,n,i){(t*=2)<0&&(t=-1*t-1);var a=1<<r;return (a*a*t+a*i+n).toString(36)+r.toString(36)+e.toString(36)}Jl.prototype.equals=function(t){return this.overscaledZ===t.overscaledZ&&this.wrap===t.wrap&&this.canonical.equals(t.canonical)},Jl.prototype.scaledTo=function(t){var e=this.canonical.z-t;return t>this.canonical.z?new Jl(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Jl(t,this.wrap,t,this.canonical.x>>e,this.canonical.y>>e)},Jl.prototype.calculateScaledKey=function(t,e){var r=this.canonical.z-t;return t>this.canonical.z?Hl(this.wrap*+e,t,this.canonical.z,this.canonical.x,this.canonical.y):Hl(this.wrap*+e,t,t,this.canonical.x>>r,this.canonical.y>>r)},Jl.prototype.isChildOf=function(t){if(t.wrap!==this.wrap)return !1;var e=this.canonical.z-t.canonical.z;return 0===t.overscaledZ||t.overscaledZ<this.overscaledZ&&t.canonical.x===this.canonical.x>>e&&t.canonical.y===this.canonical.y>>e},Jl.prototype.children=function(t){if(this.overscaledZ>=t)return [new Jl(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var e=this.canonical.z+1,r=2*this.canonical.x,n=2*this.canonical.y;return [new Jl(e,this.wrap,e,r,n),new Jl(e,this.wrap,e,r+1,n),new Jl(e,this.wrap,e,r,n+1),new Jl(e,this.wrap,e,r+1,n+1)]},Jl.prototype.isLessThan=function(t){return this.wrap<t.wrap||!(this.wrap>t.wrap)&&(this.overscaledZ<t.overscaledZ||!(this.overscaledZ>t.overscaledZ)&&(this.canonical.x<t.canonical.x||!(this.canonical.x>t.canonical.x)&&this.canonical.y<t.canonical.y))},Jl.prototype.wrapped=function(){return new Jl(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},Jl.prototype.unwrapTo=function(t){return new Jl(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)},Jl.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},Jl.prototype.toUnwrapped=function(){return new Xl(this.wrap,this.canonical)},Jl.prototype.toString=function(){return this.overscaledZ+"/"+this.canonical.x+"/"+this.canonical.y},Jl.prototype.getTilePoint=function(t){return this.canonical.getTilePoint(new Gl(t.x-this.wrap,t.y))},On("CanonicalTileID",Zl),On("OverscaledTileID",Jl,{omit:["posMatrix"]});var Yl=function(t,e,r){if(this.uid=t,e.height!==e.width)throw new RangeError("DEM tiles must be square");if(r&&"mapbox"!==r&&"terrarium"!==r)return A('"'+r+'" is not a valid encoding type. Valid types include "mapbox" and "terrarium".');this.stride=e.height;var n=this.dim=e.height-2;this.data=new Uint32Array(e.data.buffer),this.encoding=r||"mapbox";for(var i=0;i<n;i++)this.data[this._idx(-1,i)]=this.data[this._idx(0,i)],this.data[this._idx(n,i)]=this.data[this._idx(n-1,i)],this.data[this._idx(i,-1)]=this.data[this._idx(i,0)],this.data[this._idx(i,n)]=this.data[this._idx(i,n-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(n,-1)]=this.data[this._idx(n-1,0)],this.data[this._idx(-1,n)]=this.data[this._idx(0,n-1)],this.data[this._idx(n,n)]=this.data[this._idx(n-1,n-1)];};Yl.prototype.get=function(t,e){var r=new Uint8Array(this.data.buffer),n=4*this._idx(t,e);return ("terrarium"===this.encoding?this._unpackTerrarium:this._unpackMapbox)(r[n],r[n+1],r[n+2])},Yl.prototype.getUnpackVector=function(){return "terrarium"===this.encoding?[256,1,1/256,32768]:[6553.6,25.6,.1,1e4]},Yl.prototype._idx=function(t,e){if(t<-1||t>=this.dim+1||e<-1||e>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return (e+1)*this.stride+(t+1)},Yl.prototype._unpackMapbox=function(t,e,r){return (256*t*256+256*e+r)/10-1e4},Yl.prototype._unpackTerrarium=function(t,e,r){return 256*t+e+r/256-32768},Yl.prototype.getPixels=function(){return new xo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Yl.prototype.backfillBorder=function(t,e,r){if(this.dim!==t.dim)throw new Error("dem dimension mismatch");var n=e*this.dim,i=e*this.dim+this.dim,a=r*this.dim,o=r*this.dim+this.dim;switch(e){case-1:n=i-1;break;case 1:i=n+1;}switch(r){case-1:a=o-1;break;case 1:o=a+1;}for(var s=-e*this.dim,u=-r*this.dim,l=a;l<o;l++)for(var p=n;p<i;p++)this.data[this._idx(p,l)]=t.data[this._idx(p+s,l+u)];},On("DEMData",Yl);var $l=function(t){this._stringToNumber={},this._numberToString=[];for(var e=0;e<t.length;e++){var r=t[e];this._stringToNumber[r]=e,this._numberToString[e]=r;}};$l.prototype.encode=function(t){return this._stringToNumber[t]},$l.prototype.decode=function(t){return this._numberToString[t]};var Wl=function(t,e,r,n,i){this.type="Feature",this._vectorTileFeature=t,t._z=e,t._x=r,t._y=n,this.properties=t.properties,this.id=i;},Ql={geometry:{configurable:!0}};Ql.geometry.get=function(){return void 0===this._geometry&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry},Ql.geometry.set=function(t){this._geometry=t;},Wl.prototype.toJSON=function(){var t={geometry:this.geometry};for(var e in this)"_geometry"!==e&&"_vectorTileFeature"!==e&&(t[e]=this[e]);return t},Object.defineProperties(Wl.prototype,Ql);var tp=function(){this.state={},this.stateChanges={},this.deletedStates={};};tp.prototype.updateState=function(t,e,r){var n=String(e);if(this.stateChanges[t]=this.stateChanges[t]||{},this.stateChanges[t][n]=this.stateChanges[t][n]||{},h(this.stateChanges[t][n],r),null===this.deletedStates[t])for(var i in this.deletedStates[t]={},this.state[t])i!==n&&(this.deletedStates[t][i]=null);else if(this.deletedStates[t]&&null===this.deletedStates[t][n])for(var a in this.deletedStates[t][n]={},this.state[t][n])r[a]||(this.deletedStates[t][n][a]=null);else for(var o in r)this.deletedStates[t]&&this.deletedStates[t][n]&&null===this.deletedStates[t][n][o]&&delete this.deletedStates[t][n][o];},tp.prototype.removeFeatureState=function(t,e,r){if(null!==this.deletedStates[t]){var n=String(e);if(this.deletedStates[t]=this.deletedStates[t]||{},r&&void 0!==e)null!==this.deletedStates[t][n]&&(this.deletedStates[t][n]=this.deletedStates[t][n]||{},this.deletedStates[t][n][r]=null);else if(void 0!==e)if(this.stateChanges[t]&&this.stateChanges[t][n])for(r in this.deletedStates[t][n]={},this.stateChanges[t][n])this.deletedStates[t][n][r]=null;else this.deletedStates[t][n]=null;else this.deletedStates[t]=null;}},tp.prototype.getState=function(t,e){var r=String(e),n=h({},(this.state[t]||{})[r],(this.stateChanges[t]||{})[r]);if(null===this.deletedStates[t])return {};if(this.deletedStates[t]){var i=this.deletedStates[t][e];if(null===i)return {};for(var a in i)delete n[a];}return n},tp.prototype.initializeTileState=function(t,e){t.setFeatureState(this.state,e);},tp.prototype.coalesceChanges=function(t,e){var r={};for(var n in this.stateChanges){this.state[n]=this.state[n]||{};var i={};for(var a in this.stateChanges[n])this.state[n][a]||(this.state[n][a]={}),h(this.state[n][a],this.stateChanges[n][a]),i[a]=this.state[n][a];r[n]=i;}for(var o in this.deletedStates){this.state[o]=this.state[o]||{};var s={};if(null===this.deletedStates[o])for(var u in this.state[o])s[u]={},this.state[o][u]={};else for(var l in this.deletedStates[o]){if(null===this.deletedStates[o][l])this.state[o][l]={};else for(var p=0,c=Object.keys(this.deletedStates[o][l]);p<c.length;p+=1)delete this.state[o][l][c[p]];s[l]=this.state[o][l];}r[o]=r[o]||{},h(r[o],s);}if(this.stateChanges={},this.deletedStates={},0!==Object.keys(r).length)for(var f in t)t[f].setFeatureState(r,e);};var ep=function(t,e){this.tileID=t,this.x=t.canonical.x,this.y=t.canonical.y,this.z=t.canonical.z,this.grid=new Tn(8192,16,0),this.grid3D=new Tn(8192,16,0),this.featureIndexArray=new aa,this.promoteId=e;};function rp(t,e,r,n,i){return x(t,(function(t,a){var o=e instanceof di?e.get(a):null;return o&&o.evaluate?o.evaluate(r,n,i):o}))}function np(t){for(var e=1/0,r=1/0,n=-1/0,i=-1/0,a=0,o=t;a<o.length;a+=1){var s=o[a];e=Math.min(e,s.x),r=Math.min(r,s.y),n=Math.max(n,s.x),i=Math.max(i,s.y);}return {minX:e,minY:r,maxX:n,maxY:i}}function ip(t,e){return e-t}ep.prototype.insert=function(t,e,r,n,i,a){var o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(r,n,i);for(var s=a?this.grid3D:this.grid,u=0;u<e.length;u++){for(var l=e[u],p=[1/0,1/0,-1/0,-1/0],c=0;c<l.length;c++){var h=l[c];p[0]=Math.min(p[0],h.x),p[1]=Math.min(p[1],h.y),p[2]=Math.max(p[2],h.x),p[3]=Math.max(p[3],h.y);}p[0]<8192&&p[1]<8192&&p[2]>=0&&p[3]>=0&&s.insert(o,p[0],p[1],p[2],p[3]);}},ep.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new bs.VectorTile(new Ys(this.rawTileData)).layers,this.sourceLayerCoder=new $l(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},ep.prototype.query=function(t,e,r,n){var a=this;this.loadVTLayers();for(var o=t.params||{},s=8192/t.tileSize/t.scale,u=on(o.filter),l=t.queryGeometry,p=t.queryPadding*s,c=np(l),h=this.grid.query(c.minX-p,c.minY-p,c.maxX+p,c.maxY+p),f=np(t.cameraQueryGeometry),y=this.grid3D.query(f.minX-p,f.minY-p,f.maxX+p,f.maxY+p,(function(e,r,n,a){return function(t,e,r,n,a){for(var o=0,s=t;o<s.length;o+=1){var u=s[o];if(e<=u.x&&r<=u.y&&n>=u.x&&a>=u.y)return !0}var l=[new i(e,r),new i(e,a),new i(n,a),new i(n,r)];if(t.length>2)for(var p=0,c=l;p<c.length;p+=1)if(Wa(t,c[p]))return !0;for(var h=0;h<t.length-1;h++)if(Qa(t[h],t[h+1],l))return !0;return !1}(t.cameraQueryGeometry,e-p,r-p,n+p,a+p)})),d=0,m=y;d<m.length;d+=1)h.push(m[d]);h.sort(ip);for(var v,g={},x=function(i){var p=h[i];if(p!==v){v=p;var c=a.featureIndexArray.get(p),f=null;a.loadMatchingFeature(g,c.bucketIndex,c.sourceLayerIndex,c.featureIndex,u,o.layers,o.availableImages,e,r,n,(function(e,r,n){return f||(f=Ra(e)),r.queryIntersectsFeature(l,e,n,f,a.z,t.transform,s,t.pixelPosMatrix)}));}},b=0;b<h.length;b++)x(b);return g},ep.prototype.loadMatchingFeature=function(t,e,r,n,i,a,o,s,u,l,p){var c=this.bucketLayerIDs[e];if(!a||function(t,e){for(var r=0;r<t.length;r++)if(e.indexOf(t[r])>=0)return !0;return !1}(a,c)){var f=this.sourceLayerCoder.decode(r),y=this.vtLayers[f].feature(n);if(i.needGeometry){var d=Ua(y,!0);if(!i.filter(new si(this.tileID.overscaledZ),d,this.tileID.canonical))return}else if(!i.filter(new si(this.tileID.overscaledZ),y))return;for(var m=this.getId(y,f),v=0;v<c.length;v++){var g=c[v];if(!(a&&a.indexOf(g)<0)){var x=s[g];if(x){var b={};void 0!==m&&l&&(b=l.getState(x.sourceLayer||"_geojsonTileLayer",m));var w=h({},u[g]);w.paint=rp(w.paint,x.paint,y,b,o),w.layout=rp(w.layout,x.layout,y,b,o);var _=!p||p(y,x,b);if(_){var A=new Wl(y,this.z,this.x,this.y,m);A.layer=w;var S=t[g];void 0===S&&(S=t[g]=[]),S.push({featureIndex:n,feature:A,intersectionZ:_});}}}}}},ep.prototype.lookupSymbolFeatures=function(t,e,r,n,i,a,o,s){var u={};this.loadVTLayers();for(var l=on(i),p=0,c=t;p<c.length;p+=1)this.loadMatchingFeature(u,r,n,c[p],l,a,o,s,e);return u},ep.prototype.hasLayer=function(t){for(var e=0,r=this.bucketLayerIDs;e<r.length;e+=1)for(var n=0,i=r[e];n<i.length;n+=1)if(t===i[n])return !0;return !1},ep.prototype.getId=function(t,e){var r=t.id;return this.promoteId&&"boolean"==typeof(r=t.properties["string"==typeof this.promoteId?this.promoteId:this.promoteId[e]])&&(r=Number(r)),r},On("FeatureIndex",ep,{omit:["rawTileData","sourceLayerCoder"]});var ap=function(t,e){this.tileID=t,this.uid=y(),this.uses=0,this.tileSize=e,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.expiredRequestCount=0,this.state="loading";};ap.prototype.registerFadeDuration=function(t){var e=t+this.timeAdded;e<O.now()||this.fadeEndTime&&e<this.fadeEndTime||(this.fadeEndTime=e);},ap.prototype.wasRequested=function(){return "errored"===this.state||"loaded"===this.state||"reloading"===this.state},ap.prototype.loadVectorData=function(t,e,r){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",t){for(var n in t.featureIndex&&(this.latestFeatureIndex=t.featureIndex,t.rawTileData?(this.latestRawTileData=t.rawTileData,this.latestFeatureIndex.rawTileData=t.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=t.collisionBoxArray,this.buckets=function(t,e){var r={};if(!e)return r;for(var n=function(){var t=a[i],n=t.layerIds.map((function(t){return e.getLayer(t)})).filter(Boolean);if(0!==n.length){t.layers=n,t.stateDependentLayerIds&&(t.stateDependentLayers=t.stateDependentLayerIds.map((function(t){return n.filter((function(e){return e.id===t}))[0]})));for(var o=0,s=n;o<s.length;o+=1)r[s[o].id]=t;}},i=0,a=t;i<a.length;i+=1)n();return r}(t.buckets,e.style),this.hasSymbolBuckets=!1,this.buckets){var i=this.buckets[n];if(i instanceof vl){if(this.hasSymbolBuckets=!0,!r)break;i.justReloaded=!0;}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(var a in this.buckets){var o=this.buckets[a];if(o instanceof vl&&o.hasRTLText){this.hasRTLText=!0,oi.isLoading()||oi.isLoaded()||"deferred"!==ii()||ai();break}}for(var s in this.queryPadding=0,this.buckets){var u=this.buckets[s];this.queryPadding=Math.max(this.queryPadding,e.style.getLayer(s).queryRadius(u));}t.imageAtlas&&(this.imageAtlas=t.imageAtlas),t.glyphAtlasImage&&(this.glyphAtlasImage=t.glyphAtlasImage);}else this.collisionBoxArray=new $i;},ap.prototype.unloadVectorData=function(){for(var t in this.buckets)this.buckets[t].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded";},ap.prototype.getBucket=function(t){return this.buckets[t.id]},ap.prototype.upload=function(t){for(var e in this.buckets){var r=this.buckets[e];r.uploadPending()&&r.upload(t);}var n=t.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Tl(t,this.imageAtlas.image,n.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Tl(t,this.glyphAtlasImage,n.ALPHA),this.glyphAtlasImage=null);},ap.prototype.prepare=function(t){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(t,this.imageAtlasTexture);},ap.prototype.queryRenderedFeatures=function(t,e,r,n,i,a,o,s,u,l){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:n,cameraQueryGeometry:i,scale:a,tileSize:this.tileSize,pixelPosMatrix:l,transform:s,params:o,queryPadding:this.queryPadding*u},t,e,r):{}},ap.prototype.querySourceFeatures=function(t,e){var r=this.latestFeatureIndex;if(r&&r.rawTileData){var n=r.loadVTLayers(),i=e?e.sourceLayer:"",a=n._geojsonTileLayer||n[i];if(a)for(var o=on(e&&e.filter),s=this.tileID.canonical,u=s.z,l=s.x,p=s.y,c={z:u,x:l,y:p},h=0;h<a.length;h++){var f=a.feature(h);if(o.needGeometry){var y=Ua(f,!0);if(!o.filter(new si(this.tileID.overscaledZ),y,this.tileID.canonical))continue}else if(!o.filter(new si(this.tileID.overscaledZ),f))continue;var d=r.getId(f,i),m=new Wl(f,u,l,p,d);m.tile=c,t.push(m);}}},ap.prototype.hasData=function(){return "loaded"===this.state||"reloading"===this.state||"expired"===this.state},ap.prototype.patternsLoaded=function(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length},ap.prototype.setExpiryData=function(t){var e=this.expirationTime;if(t.cacheControl){var r=z(t.cacheControl);r["max-age"]&&(this.expirationTime=Date.now()+1e3*r["max-age"]);}else t.expires&&(this.expirationTime=new Date(t.expires).getTime());if(this.expirationTime){var n=Date.now(),i=!1;if(this.expirationTime>n)i=!1;else if(e)if(this.expirationTime<e)i=!0;else {var a=this.expirationTime-e;a?this.expirationTime=n+Math.max(a,3e4):i=!0;}else i=!0;i?(this.expiredRequestCount++,this.state="expired"):this.expiredRequestCount=0;}},ap.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-(new Date).getTime(),Math.pow(2,31)-1)},ap.prototype.setFeatureState=function(t,e){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData&&0!==Object.keys(t).length){var r=this.latestFeatureIndex.loadVTLayers();for(var n in this.buckets)if(e.style.hasLayer(n)){var i=this.buckets[n],a=i.layers[0].sourceLayer||"_geojsonTileLayer",o=r[a],s=t[a];if(o&&s&&0!==Object.keys(s).length){i.update(s,o,this.imageAtlas&&this.imageAtlas.patternPositions||{});var u=e&&e.style&&e.style.getLayer(n);u&&(this.queryPadding=Math.max(this.queryPadding,u.queryRadius(i)));}}}},ap.prototype.holdingForFade=function(){return void 0!==this.symbolFadeHoldUntil},ap.prototype.symbolFadeFinished=function(){return !this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<O.now()},ap.prototype.clearFadeHold=function(){this.symbolFadeHoldUntil=void 0;},ap.prototype.setHoldDuration=function(t){this.symbolFadeHoldUntil=O.now()+t;},ap.prototype.setDependencies=function(t,e){for(var r={},n=0,i=e;n<i.length;n+=1)r[i[n]]=!0;this.dependencies[t]=r;},ap.prototype.hasDependency=function(t,e){for(var r=0,n=t;r<n.length;r+=1){var i=this.dependencies[n[r]];if(i)for(var a=0,o=e;a<o.length;a+=1)if(i[o[a]])return !0}return !1};var op=o.performance,sp=function(t){this._marks={start:[t.url,"start"].join("#"),end:[t.url,"end"].join("#"),measure:t.url.toString()},op.mark(this._marks.start);};sp.prototype.finish=function(){op.mark(this._marks.end);var t=op.getEntriesByName(this._marks.measure);return 0===t.length&&(op.measure(this._marks.measure,this._marks.start,this._marks.end),t=op.getEntriesByName(this._marks.measure),op.clearMarks(this._marks.start),op.clearMarks(this._marks.end),op.clearMeasures(this._marks.measure)),t},t.Actor=Fl,t.AlphaImage=go,t.CanonicalTileID=Zl,t.CollisionBoxArray=$i,t.Color=te,t.DEMData=Yl,t.DataConstantProperty=mi,t.DictionaryCoder=$l,t.EXTENT=8192,t.ErrorEvent=zt,t.EvaluationParameters=si,t.Event=It,t.Evented=Ct,t.FeatureIndex=ep,t.FillBucket=ss,t.FillExtrusionBucket=Ss,t.ImageAtlas=bu,t.ImagePosition=gu,t.LineBucket=Fs,t.LngLat=Ol,t.LngLatBounds=Ll,t.MercatorCoordinate=Gl,t.ONE_EM=24,t.OverscaledTileID=Jl,t.Point=i,t.Point$1=i,t.Properties=wi,t.Protobuf=Ys,t.RGBAImage=xo,t.RequestManager=G,t.RequestPerformance=sp,t.ResourceType=yt,t.SegmentVector=sa,t.SourceFeatureState=tp,t.StructArrayLayout1ui2=Ji,t.StructArrayLayout2f1f2i16=Ri,t.StructArrayLayout2i4=Ci,t.StructArrayLayout3ui6=ji,t.StructArrayLayout4i8=Ei,t.SymbolBucket=vl,t.Texture=Tl,t.Tile=ap,t.Transitionable=pi,t.Uniform1f=ba,t.Uniform1i=xa,t.Uniform2f=wa,t.Uniform3f=_a,t.Uniform4f=Aa,t.UniformColor=Sa,t.UniformMatrix4f=Ia,t.UnwrappedTileID=Xl,t.ValidationError=Pt,t.WritingMode=wu,t.ZoomHistory=Kn,t.add=function(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t},t.addDynamicAttributes=fl,t.asyncAll=function(t,e,r){if(!t.length)return r(null,[]);var n=t.length,i=new Array(t.length),a=null;t.forEach((function(t,o){e(t,(function(t,e){t&&(a=t),i[o]=e,0==--n&&r(a,i);}));}));},t.bezier=u,t.bindAll=v,t.browser=O,t.cacheEntryPossiblyAdded=function(t){++ht>ut&&(t.getActor().send("enforceCacheSizeLimit",st),ht=0);},t.clamp=p,t.clearTileCache=function(t){var e=o.caches.delete("mapbox-tiles");t&&e.catch(t).then((function(){return t()}));},t.clipLine=Zu,t.clone=function(t){var e=new ao(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e},t.clone$1=w,t.clone$2=function(t){var e=new ao(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e},t.collisionCircleLayout=Gs,t.config=R,t.create=function(){var t=new ao(16);return ao!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t},t.create$1=function(){var t=new ao(9);return ao!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t},t.create$2=function(){var t=new ao(4);return ao!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t},t.createCommonjsModule=e,t.createExpression=Zr,t.createLayout=Ii,t.createStyleLayer=function(t){return "custom"===t.type?new Il(t):new zl[t.type](t)},t.cross=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=r[0],s=r[1],u=r[2];return t[0]=i*u-a*s,t[1]=a*o-n*u,t[2]=n*s-i*o,t},t.deepEqual=function t(e,r){if(Array.isArray(e)){if(!Array.isArray(r)||e.length!==r.length)return !1;for(var n=0;n<e.length;n++)if(!t(e[n],r[n]))return !1;return !0}if("object"==typeof e&&null!==e&&null!==r){if("object"!=typeof r)return !1;if(Object.keys(e).length!==Object.keys(r).length)return !1;for(var i in e)if(!t(e[i],r[i]))return !1;return !0}return e===r},t.dot=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},t.dot$1=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},t.ease=l,t.emitValidationErrors=Bn,t.endsWith=g,t.enforceCacheSizeLimit=function(t){lt(),tt&&tt.then((function(e){e.keys().then((function(r){for(var n=0;n<r.length-t;n++)e.delete(r[n]);}));}));},t.evaluateSizeForFeature=Lu,t.evaluateSizeForZoom=Ou,t.evaluateVariableOffset=al,t.evented=ni,t.extend=h,t.featureFilter=on,t.filterObject=b,t.fromRotation=function(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=-r,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},t.getAnchorAlignment=Bu,t.getAnchorJustification=ol,t.getArrayBuffer=bt,t.getImage=At,t.getJSON=function(t,e){return xt(h(t,{type:"json"}),e)},t.getRTLTextPluginStatus=ii,t.getReferrer=mt,t.getVideo=function(t,e){var r,n,i=o.document.createElement("video");i.muted=!0,i.onloadstart=function(){e(null,i);};for(var a=0;a<t.length;a++){var s=o.document.createElement("source");r=t[a],n=void 0,(n=o.document.createElement("a")).href=r,(n.protocol!==o.document.location.protocol||n.host!==o.document.location.host)&&(i.crossOrigin="Anonymous"),s.src=t[a],i.appendChild(s);}return {cancel:function(){}}},t.identity=oo,t.invert=function(t,e){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],u=e[6],l=e[7],p=e[8],c=e[9],h=e[10],f=e[11],y=e[12],d=e[13],m=e[14],v=e[15],g=r*s-n*o,x=r*u-i*o,b=r*l-a*o,w=n*u-i*s,_=n*l-a*s,A=i*l-a*u,S=p*d-c*y,k=p*m-h*y,I=p*v-f*y,z=c*m-h*d,C=c*v-f*d,E=h*v-f*m,P=g*E-x*C+b*z+w*I-_*k+A*S;return P?(t[0]=(s*E-u*C+l*z)*(P=1/P),t[1]=(i*C-n*E-a*z)*P,t[2]=(d*A-m*_+v*w)*P,t[3]=(h*_-c*A-f*w)*P,t[4]=(u*I-o*E-l*k)*P,t[5]=(r*E-i*I+a*k)*P,t[6]=(m*b-y*A-v*x)*P,t[7]=(p*A-h*b+f*x)*P,t[8]=(o*C-s*I+l*S)*P,t[9]=(n*I-r*C-a*S)*P,t[10]=(y*_-d*b+v*g)*P,t[11]=(c*b-p*_-f*g)*P,t[12]=(s*k-o*z-u*S)*P,t[13]=(r*z-n*k+i*S)*P,t[14]=(d*x-y*w-m*g)*P,t[15]=(p*w-c*x+h*g)*P,t):null},t.isChar=Gn,t.isMapboxURL=Z,t.keysDifference=function(t,e){var r=[];for(var n in t)n in e||r.push(n);return r},t.makeRequest=xt,t.mapObject=x,t.mercatorXfromLng=jl,t.mercatorYfromLat=ql,t.mercatorZfromAltitude=Nl,t.mul=lo,t.multiply=so,t.mvt=bs,t.nextPowerOfTwo=function(t){return t<=1?1:Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))},t.normalize=function(t,e){var r=e[0],n=e[1],i=e[2],a=r*r+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t},t.number=Ke,t.offscreenCanvasSupported=ft,t.ortho=function(t,e,r,n,i,a,o){var s=1/(e-r),u=1/(n-i),l=1/(a-o);return t[0]=-2*s,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*u,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*s,t[13]=(i+n)*u,t[14]=(o+a)*l,t[15]=1,t},t.parseGlyphPBF=function(t){return new Ys(t).readFields(yu,[])},t.pbf=Ys,t.performSymbolLayout=function(t,e,r,n,i,a,o){t.createArrays(),t.tilePixelRatio=8192/(512*t.overscaling),t.compareText={},t.iconsNeedLinear=!1;var s=t.layers[0].layout,u=t.layers[0]._unevaluatedLayout._values,l={};if("composite"===t.textSizeData.kind){var p=t.textSizeData,c=p.maxZoom;l.compositeTextSizes=[u["text-size"].possiblyEvaluate(new si(p.minZoom),o),u["text-size"].possiblyEvaluate(new si(c),o)];}if("composite"===t.iconSizeData.kind){var h=t.iconSizeData,f=h.maxZoom;l.compositeIconSizes=[u["icon-size"].possiblyEvaluate(new si(h.minZoom),o),u["icon-size"].possiblyEvaluate(new si(f),o)];}l.layoutTextSize=u["text-size"].possiblyEvaluate(new si(t.zoom+1),o),l.layoutIconSize=u["icon-size"].possiblyEvaluate(new si(t.zoom+1),o),l.textMaxSize=u["text-size"].possiblyEvaluate(new si(18));for(var y=24*s.get("text-line-height"),d="map"===s.get("text-rotation-alignment")&&"point"!==s.get("symbol-placement"),m=s.get("text-keep-upright"),v=s.get("text-size"),g=function(){var a=b[x],u=s.get("text-font").evaluate(a,{},o).join(","),p=v.evaluate(a,{},o),c=l.layoutTextSize.evaluate(a,{},o),h=l.layoutIconSize.evaluate(a,{},o),f={horizontal:{},vertical:void 0},g=a.text,w=[0,0];if(g){var _=g.toString(),S=24*s.get("text-letter-spacing").evaluate(a,{},o),k=function(t){for(var e=0,r=t;e<r.length;e+=1)if(n=r[e].charCodeAt(0),Gn.Arabic(n)||Gn["Arabic Supplement"](n)||Gn["Arabic Extended-A"](n)||Gn["Arabic Presentation Forms-A"](n)||Gn["Arabic Presentation Forms-B"](n))return !1;var n;return !0}(_)?S:0,I=s.get("text-anchor").evaluate(a,{},o),z=s.get("text-variable-anchor");if(!z){var C=s.get("text-radial-offset").evaluate(a,{},o);w=C?al(I,[24*C,il]):s.get("text-offset").evaluate(a,{},o).map((function(t){return 24*t}));}var E=d?"center":s.get("text-justify").evaluate(a,{},o),P=s.get("symbol-placement"),M="point"===P?24*s.get("text-max-width").evaluate(a,{},o):0,B=function(){t.allowVerticalPlacement&&Zn(_)&&(f.vertical=Su(g,e,r,i,u,M,y,I,"left",k,w,wu.vertical,!0,P,c,p));};if(!d&&z){for(var T="auto"===E?z.map((function(t){return ol(t)})):[E],V=!1,F=0;F<T.length;F++){var D=T[F];if(!f.horizontal[D])if(V)f.horizontal[D]=f.horizontal[0];else {var L=Su(g,e,r,i,u,M,y,"center",D,k,w,wu.horizontal,!1,P,c,p);L&&(f.horizontal[D]=L,V=1===L.positionedLines.length);}}B();}else {"auto"===E&&(E=ol(I));var O=Su(g,e,r,i,u,M,y,I,E,k,w,wu.horizontal,!1,P,c,p);O&&(f.horizontal[E]=O),B(),Zn(_)&&d&&m&&(f.vertical=Su(g,e,r,i,u,M,y,I,E,k,w,wu.vertical,!1,P,c,p));}}var R=void 0,U=!1;if(a.icon&&a.icon.name){var j=n[a.icon.name];j&&(R=function(t,e,r){var n=Bu(r),i=e[0]-t.displaySize[0]*n.horizontalAlign,a=e[1]-t.displaySize[1]*n.verticalAlign;return {image:t,top:a,bottom:a+t.displaySize[1],left:i,right:i+t.displaySize[0]}}(i[a.icon.name],s.get("icon-offset").evaluate(a,{},o),s.get("icon-anchor").evaluate(a,{},o)),U=j.sdf,void 0===t.sdfIcons?t.sdfIcons=j.sdf:t.sdfIcons!==j.sdf&&A("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(j.pixelRatio!==t.pixelRatio||0!==s.get("icon-rotate").constantOr(1))&&(t.iconsNeedLinear=!0));}var q=ul(f.horizontal)||f.vertical;t.iconsInText=!!q&&q.iconsInText,(q||R)&&function(t,e,r,n,i,a,o,s,u,l,p){var c=a.textMaxSize.evaluate(e,{});void 0===c&&(c=o);var h,f=t.layers[0].layout,y=f.get("icon-offset").evaluate(e,{},p),d=ul(r.horizontal),m=o/24,v=t.tilePixelRatio*m,g=t.tilePixelRatio*c/24,x=t.tilePixelRatio*s,b=t.tilePixelRatio*f.get("symbol-spacing"),w=f.get("text-padding")*t.tilePixelRatio,_=f.get("icon-padding")*t.tilePixelRatio,S=f.get("text-max-angle")/180*Math.PI,k="map"===f.get("text-rotation-alignment")&&"point"!==f.get("symbol-placement"),I="map"===f.get("icon-rotation-alignment")&&"point"!==f.get("symbol-placement"),z=f.get("symbol-placement"),C=b/2,E=f.get("icon-text-fit");n&&"none"!==E&&(t.allowVerticalPlacement&&r.vertical&&(h=Vu(n,r.vertical,E,f.get("icon-text-fit-padding"),y,m)),d&&(n=Vu(n,d,E,f.get("icon-text-fit-padding"),y,m)));var P=function(s,c){c.x<0||c.x>=8192||c.y<0||c.y>=8192||function(t,e,r,n,i,a,o,s,u,l,p,c,h,f,y,d,m,v,g,x,b,w,_,S,k){var I,z,C,E,P,M=t.addToLineVertexArray(e,r),B=0,T=0,V=0,F=0,D=-1,L=-1,O={},R=ha(""),U=0,j=0;if(void 0===s._unevaluatedLayout.getValue("text-radial-offset")?(U=(I=s.layout.get("text-offset").evaluate(b,{},S).map((function(t){return 24*t})))[0],j=I[1]):(U=24*s.layout.get("text-radial-offset").evaluate(b,{},S),j=il),t.allowVerticalPlacement&&n.vertical){var q=s.layout.get("text-rotate").evaluate(b,{},S)+90;E=new Wu(u,e,l,p,c,n.vertical,h,f,y,q),o&&(P=new Wu(u,e,l,p,c,o,m,v,y,q));}if(i){var N=s.layout.get("icon-rotate").evaluate(b,{}),K="none"!==s.layout.get("icon-text-fit"),G=Xu(i,N,_,K),Z=o?Xu(o,N,_,K):void 0;C=new Wu(u,e,l,p,c,i,m,v,!1,N),B=4*G.length;var X=t.iconSizeData,J=null;"source"===X.kind?(J=[128*s.layout.get("icon-size").evaluate(b,{})])[0]>32640&&A(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):"composite"===X.kind&&((J=[128*w.compositeIconSizes[0].evaluate(b,{},S),128*w.compositeIconSizes[1].evaluate(b,{},S)])[0]>32640||J[1]>32640)&&A(t.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),t.addSymbols(t.icon,G,J,x,g,b,!1,e,M.lineStartIndex,M.lineLength,-1,S),D=t.icon.placedSymbolArray.length-1,Z&&(T=4*Z.length,t.addSymbols(t.icon,Z,J,x,g,b,wu.vertical,e,M.lineStartIndex,M.lineLength,-1,S),L=t.icon.placedSymbolArray.length-1);}for(var H in n.horizontal){var Y=n.horizontal[H];if(!z){R=ha(Y.text);var $=s.layout.get("text-rotate").evaluate(b,{},S);z=new Wu(u,e,l,p,c,Y,h,f,y,$);}var W=1===Y.positionedLines.length;if(V+=sl(t,e,Y,a,s,y,b,d,M,n.vertical?wu.horizontal:wu.horizontalOnly,W?Object.keys(n.horizontal):[H],O,D,w,S),W)break}n.vertical&&(F+=sl(t,e,n.vertical,a,s,y,b,d,M,wu.vertical,["vertical"],O,L,w,S));var Q=z?z.boxStartIndex:t.collisionBoxArray.length,tt=z?z.boxEndIndex:t.collisionBoxArray.length,et=E?E.boxStartIndex:t.collisionBoxArray.length,rt=E?E.boxEndIndex:t.collisionBoxArray.length,nt=C?C.boxStartIndex:t.collisionBoxArray.length,it=C?C.boxEndIndex:t.collisionBoxArray.length,at=P?P.boxStartIndex:t.collisionBoxArray.length,ot=P?P.boxEndIndex:t.collisionBoxArray.length,st=-1,ut=function(t,e){return t&&t.circleDiameter?Math.max(t.circleDiameter,e):e};st=ut(z,st),st=ut(E,st),st=ut(C,st);var lt=(st=ut(P,st))>-1?1:0;lt&&(st*=k/24),t.glyphOffsetArray.length>=vl.MAX_GLYPHS&&A("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),void 0!==b.sortKey&&t.addToSortKeyRanges(t.symbolInstances.length,b.sortKey),t.symbolInstances.emplaceBack(e.x,e.y,O.right>=0?O.right:-1,O.center>=0?O.center:-1,O.left>=0?O.left:-1,O.vertical||-1,D,L,R,Q,tt,et,rt,nt,it,at,ot,l,V,F,B,T,lt,0,h,U,j,st);}(t,c,s,r,n,i,h,t.layers[0],t.collisionBoxArray,e.index,e.sourceLayerIndex,t.index,v,w,k,u,x,_,I,y,e,a,l,p,o);};if("line"===z)for(var M=0,B=Zu(e.geometry,0,0,8192,8192);M<B.length;M+=1)for(var T=B[M],V=0,F=Gu(T,b,S,r.vertical||d,n,24,g,t.overscaling,8192);V<F.length;V+=1){var D=F[V];d&&ll(t,d.text,C,D)||P(T,D);}else if("line-center"===z)for(var L=0,O=e.geometry;L<O.length;L+=1){var R=O[L];if(R.length>1){var U=Ku(R,S,r.vertical||d,n,24,g);U&&P(R,U);}}else if("Polygon"===e.type)for(var j=0,q=ns(e.geometry,0);j<q.length;j+=1){var N=q[j],K=el(N,16);P(N[0],new Fu(K.x,K.y,0));}else if("LineString"===e.type)for(var G=0,Z=e.geometry;G<Z.length;G+=1){var X=Z[G];P(X,new Fu(X[0].x,X[0].y,0));}else if("Point"===e.type)for(var J=0,H=e.geometry;J<H.length;J+=1)for(var Y=0,$=H[J];Y<$.length;Y+=1){var W=$[Y];P([W],new Fu(W.x,W.y,0));}}(t,a,f,R,n,l,c,h,w,U,o);},x=0,b=t.features;x<b.length;x+=1)g();a&&t.generateCollisionDebugBuffers();},t.perspective=function(t,e,r,n,i){var a,o=1/Math.tan(e/2);return t[0]=o/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=o,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,null!=i&&i!==1/0?(t[10]=(i+n)*(a=1/(n-i)),t[14]=2*i*n*a):(t[10]=-1,t[14]=-2*n),t},t.pick=function(t,e){for(var r={},n=0;n<e.length;n++){var i=e[n];i in t&&(r[i]=t[i]);}return r},t.plugin=oi,t.polygonIntersectsPolygon=Na,t.postMapLoadEvent=ot,t.postTurnstileEvent=it,t.potpack=vu,t.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],t.register=On,t.registerForPluginStateChange=function(t){return t({pluginStatus:Qn,pluginURL:ti}),ni.on("pluginStateChange",t),t},t.renderColorRamp=wo,t.rotate=function(t,e,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=Math.sin(r),u=Math.cos(r);return t[0]=n*u+a*s,t[1]=i*u+o*s,t[2]=n*-s+a*u,t[3]=i*-s+o*u,t},t.rotateX=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[4],o=e[5],s=e[6],u=e[7],l=e[8],p=e[9],c=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=a*i+l*n,t[5]=o*i+p*n,t[6]=s*i+c*n,t[7]=u*i+h*n,t[8]=l*i-a*n,t[9]=p*i-o*n,t[10]=c*i-s*n,t[11]=h*i-u*n,t},t.rotateZ=function(t,e,r){var n=Math.sin(r),i=Math.cos(r),a=e[0],o=e[1],s=e[2],u=e[3],l=e[4],p=e[5],c=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=a*i+l*n,t[1]=o*i+p*n,t[2]=s*i+c*n,t[3]=u*i+h*n,t[4]=l*i-a*n,t[5]=p*i-o*n,t[6]=c*i-s*n,t[7]=h*i-u*n,t},t.scale=function(t,e,r){var n=r[0],i=r[1],a=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*a,t[9]=e[9]*a,t[10]=e[10]*a,t[11]=e[11]*a,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t},t.scale$1=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t},t.scale$2=function(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t},t.setCacheLimits=function(t,e){st=t,ut=e;},t.setRTLTextPlugin=function(t,e,r){if(void 0===r&&(r=!1),"deferred"===Qn||"loading"===Qn||"loaded"===Qn)throw new Error("setRTLTextPlugin cannot be called multiple times.");ti=O.resolveURL(t),Qn="deferred",Wn=e,ri(),r||ai();},t.sphericalToCartesian=function(t){var e=t[0],r=t[1],n=t[2];return r+=90,r*=Math.PI/180,n*=Math.PI/180,{x:e*Math.cos(r)*Math.sin(n),y:e*Math.sin(r)*Math.sin(n),z:e*Math.cos(n)}},t.sqrLen=function(t){var e=t[0],r=t[1];return e*e+r*r},t.styleSpec=Et,t.sub=function(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t},t.symbolSize=Ru,t.transformMat3=function(t,e,r){var n=e[0],i=e[1],a=e[2];return t[0]=n*r[0]+i*r[3]+a*r[6],t[1]=n*r[1]+i*r[4]+a*r[7],t[2]=n*r[2]+i*r[5]+a*r[8],t},t.transformMat4=po,t.translate=function(t,e,r){var n,i,a,o,s,u,l,p,c,h,f,y,d=r[0],m=r[1],v=r[2];return e===t?(t[12]=e[0]*d+e[4]*m+e[8]*v+e[12],t[13]=e[1]*d+e[5]*m+e[9]*v+e[13],t[14]=e[2]*d+e[6]*m+e[10]*v+e[14],t[15]=e[3]*d+e[7]*m+e[11]*v+e[15]):(i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],l=e[6],p=e[7],c=e[8],h=e[9],f=e[10],y=e[11],t[0]=n=e[0],t[1]=i,t[2]=a,t[3]=o,t[4]=s,t[5]=u,t[6]=l,t[7]=p,t[8]=c,t[9]=h,t[10]=f,t[11]=y,t[12]=n*d+s*m+c*v+e[12],t[13]=i*d+u*m+h*v+e[13],t[14]=a*d+l*m+f*v+e[14],t[15]=o*d+p*m+y*v+e[15]),t},t.triggerPluginCompletionEvent=ei,t.uniqueId=y,t.validateCustomStyleLayer=function(t){var e=[],r=t.id;return void 0===r&&e.push({message:"layers."+r+': missing required property "id"'}),void 0===t.render&&e.push({message:"layers."+r+': missing required method "render"'}),t.renderingMode&&"2d"!==t.renderingMode&&"3d"!==t.renderingMode&&e.push({message:"layers."+r+': property "renderingMode" must be either "2d" or "3d"'}),e},t.validateLight=En,t.validateStyle=Cn,t.values=function(t){var e=[];for(var r in t)e.push(t[r]);return e},t.vectorTile=bs,t.version="1.13.0",t.warnOnce=A,t.webpSupported=U,t.window=o,t.wrap=c;}));
+
+define(["./shared"],(function(e){"use strict";function t(e){var r=typeof e;if("number"===r||"boolean"===r||"string"===r||null==e)return JSON.stringify(e);if(Array.isArray(e)){for(var i="[",o=0,n=e;o<n.length;o+=1)i+=t(n[o])+",";return i+"]"}for(var s=Object.keys(e).sort(),a="{",l=0;l<s.length;l++)a+=JSON.stringify(s[l])+":"+t(e[s[l]])+",";return a+"}"}function r(r){for(var i="",o=0,n=e.refProperties;o<n.length;o+=1)i+="/"+t(r[n[o]]);return i}var i=function(e){this.keyCache={},e&&this.replace(e);};i.prototype.replace=function(e){this._layerConfigs={},this._layers={},this.update(e,[]);},i.prototype.update=function(t,i){for(var o=this,n=0,s=t;n<s.length;n+=1){var a=s[n];this._layerConfigs[a.id]=a;var l=this._layers[a.id]=e.createStyleLayer(a);l._featureFilter=e.featureFilter(l.filter),this.keyCache[a.id]&&delete this.keyCache[a.id];}for(var u=0,h=i;u<h.length;u+=1){var c=h[u];delete this.keyCache[c],delete this._layerConfigs[c],delete this._layers[c];}this.familiesBySource={};for(var p=0,f=function(e,t){for(var i={},o=0;o<e.length;o++){var n=t&&t[e[o].id]||r(e[o]);t&&(t[e[o].id]=n);var s=i[n];s||(s=i[n]=[]),s.push(e[o]);}var a=[];for(var l in i)a.push(i[l]);return a}(e.values(this._layerConfigs),this.keyCache);p<f.length;p+=1){var d=f[p].map((function(e){return o._layers[e.id]})),g=d[0];if("none"!==g.visibility){var v=g.source||"",m=this.familiesBySource[v];m||(m=this.familiesBySource[v]={});var y=g.sourceLayer||"_geojsonTileLayer",x=m[y];x||(x=m[y]=[]),x.push(d);}}};var o=function(t){var r={},i=[];for(var o in t){var n=t[o],s=r[o]={};for(var a in n){var l=n[+a];if(l&&0!==l.bitmap.width&&0!==l.bitmap.height){var u={x:0,y:0,w:l.bitmap.width+2,h:l.bitmap.height+2};i.push(u),s[a]={rect:u,metrics:l.metrics};}}}var h=e.potpack(i),c=new e.AlphaImage({width:h.w||1,height:h.h||1});for(var p in t){var f=t[p];for(var d in f){var g=f[+d];if(g&&0!==g.bitmap.width&&0!==g.bitmap.height){var v=r[p][d].rect;e.AlphaImage.copy(g.bitmap,c,{x:0,y:0},{x:v.x+1,y:v.y+1},g.bitmap);}}}this.image=c,this.positions=r;};e.register("GlyphAtlas",o);var n=function(t){this.tileID=new e.OverscaledTileID(t.tileID.overscaledZ,t.tileID.wrap,t.tileID.canonical.z,t.tileID.canonical.x,t.tileID.canonical.y),this.uid=t.uid,this.zoom=t.zoom,this.pixelRatio=t.pixelRatio,this.tileSize=t.tileSize,this.source=t.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=t.showCollisionBoxes,this.collectResourceTiming=!!t.collectResourceTiming,this.returnDependencies=!!t.returnDependencies,this.promoteId=t.promoteId;};function s(t,r,i){for(var o=new e.EvaluationParameters(r),n=0,s=t;n<s.length;n+=1)s[n].recalculate(o,i);}function a(t,r){var i=e.getArrayBuffer(t.request,(function(t,i,o,n){t?r(t):i&&r(null,{vectorTile:new e.vectorTile.VectorTile(new e.pbf(i)),rawData:i,cacheControl:o,expires:n});}));return function(){i.cancel(),r();}}n.prototype.parse=function(t,r,i,n,a){var l=this;this.status="parsing",this.data=t,this.collisionBoxArray=new e.CollisionBoxArray;var u=new e.DictionaryCoder(Object.keys(t.layers).sort()),h=new e.FeatureIndex(this.tileID,this.promoteId);h.bucketLayerIDs=[];var c,p,f,d,g={},v={featureIndex:h,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:i},m=r.familiesBySource[this.source];for(var y in m){var x=t.layers[y];if(x){1===x.version&&e.warnOnce('Vector tile source "'+this.source+'" layer "'+y+'" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var w=u.encode(y),S=[],I=0;I<x.length;I++){var M=x.feature(I),b=h.getId(M,y);S.push({feature:M,id:b,index:I,sourceLayerIndex:w});}for(var _=0,k=m[y];_<k.length;_+=1){var P=k[_],T=P[0];T.minzoom&&this.zoom<Math.floor(T.minzoom)||T.maxzoom&&this.zoom>=T.maxzoom||"none"!==T.visibility&&(s(P,this.zoom,i),(g[T.id]=T.createBucket({index:h.bucketLayerIDs.length,layers:P,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:w,sourceID:this.source})).populate(S,v,this.tileID.canonical),h.bucketLayerIDs.push(P.map((function(e){return e.id}))));}}}var C=e.mapObject(v.glyphDependencies,(function(e){return Object.keys(e).map(Number)}));Object.keys(C).length?n.send("getGlyphs",{uid:this.uid,stacks:C},(function(e,t){c||(c=e,p=t,z.call(l));})):p={};var D=Object.keys(v.iconDependencies);D.length?n.send("getImages",{icons:D,source:this.source,tileID:this.tileID,type:"icons"},(function(e,t){c||(c=e,f=t,z.call(l));})):f={};var L=Object.keys(v.patternDependencies);function z(){if(c)return a(c);if(p&&f&&d){var t=new o(p),r=new e.ImageAtlas(f,d);for(var n in g){var l=g[n];l instanceof e.SymbolBucket?(s(l.layers,this.zoom,i),e.performSymbolLayout(l,p,t.positions,f,r.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):l.hasPattern&&(l instanceof e.LineBucket||l instanceof e.FillBucket||l instanceof e.FillExtrusionBucket)&&(s(l.layers,this.zoom,i),l.addFeatures(v,this.tileID.canonical,r.patternPositions));}this.status="done",a(null,{buckets:e.values(g).filter((function(e){return !e.isEmpty()})),featureIndex:h,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:t.image,imageAtlas:r,glyphMap:this.returnDependencies?p:null,iconMap:this.returnDependencies?f:null,glyphPositions:this.returnDependencies?t.positions:null});}}L.length?n.send("getImages",{icons:L,source:this.source,tileID:this.tileID,type:"patterns"},(function(e,t){c||(c=e,d=t,z.call(l));})):d={},z.call(this);};var l=function(e,t,r,i){this.actor=e,this.layerIndex=t,this.availableImages=r,this.loadVectorData=i||a,this.loading={},this.loaded={};};l.prototype.loadTile=function(t,r){var i=this,o=t.uid;this.loading||(this.loading={});var s=!!(t&&t.request&&t.request.collectResourceTiming)&&new e.RequestPerformance(t.request),a=this.loading[o]=new n(t);a.abort=this.loadVectorData(t,(function(t,n){if(delete i.loading[o],t||!n)return a.status="done",i.loaded[o]=a,r(t);var l=n.rawData,u={};n.expires&&(u.expires=n.expires),n.cacheControl&&(u.cacheControl=n.cacheControl);var h={};if(s){var c=s.finish();c&&(h.resourceTiming=JSON.parse(JSON.stringify(c)));}a.vectorTile=n.vectorTile,a.parse(n.vectorTile,i.layerIndex,i.availableImages,i.actor,(function(t,i){if(t||!i)return r(t);r(null,e.extend({rawTileData:l.slice(0)},i,u,h));})),i.loaded=i.loaded||{},i.loaded[o]=a;}));},l.prototype.reloadTile=function(e,t){var r=this,i=this.loaded,o=e.uid,n=this;if(i&&i[o]){var s=i[o];s.showCollisionBoxes=e.showCollisionBoxes;var a=function(e,i){var o=s.reloadCallback;o&&(delete s.reloadCallback,s.parse(s.vectorTile,n.layerIndex,r.availableImages,n.actor,o)),t(e,i);};"parsing"===s.status?s.reloadCallback=a:"done"===s.status&&(s.vectorTile?s.parse(s.vectorTile,this.layerIndex,this.availableImages,this.actor,a):a());}},l.prototype.abortTile=function(e,t){var r=this.loading,i=e.uid;r&&r[i]&&r[i].abort&&(r[i].abort(),delete r[i]),t();},l.prototype.removeTile=function(e,t){var r=this.loaded,i=e.uid;r&&r[i]&&delete r[i],t();};var u=e.window.ImageBitmap,h=function(){this.loaded={};};function c(e,t){if(0!==e.length){p(e[0],t);for(var r=1;r<e.length;r++)p(e[r],!t);}}function p(e,t){for(var r=0,i=0,o=e.length,n=o-1;i<o;n=i++)r+=(e[i][0]-e[n][0])*(e[n][1]+e[i][1]);r>=0!=!!t&&e.reverse();}h.prototype.loadTile=function(t,r){var i=t.uid,o=t.encoding,n=t.rawImageData,s=u&&n instanceof u?this.getImageData(n):n,a=new e.DEMData(i,s,o);this.loaded=this.loaded||{},this.loaded[i]=a,r(null,a);},h.prototype.getImageData=function(t){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(t.width,t.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=t.width,this.offscreenCanvas.height=t.height,this.offscreenCanvasContext.drawImage(t,0,0,t.width,t.height);var r=this.offscreenCanvasContext.getImageData(-1,-1,t.width+2,t.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new e.RGBAImage({width:r.width,height:r.height},r.data)},h.prototype.removeTile=function(e){var t=this.loaded,r=e.uid;t&&t[r]&&delete t[r];};var f=e.vectorTile.VectorTileFeature.prototype.toGeoJSON,d=function(t){this._feature=t,this.extent=e.EXTENT,this.type=t.type,this.properties=t.tags,"id"in t&&!isNaN(t.id)&&(this.id=parseInt(t.id,10));};d.prototype.loadGeometry=function(){if(1===this._feature.type){for(var t=[],r=0,i=this._feature.geometry;r<i.length;r+=1){var o=i[r];t.push([new e.Point$1(o[0],o[1])]);}return t}for(var n=[],s=0,a=this._feature.geometry;s<a.length;s+=1){for(var l=[],u=0,h=a[s];u<h.length;u+=1){var c=h[u];l.push(new e.Point$1(c[0],c[1]));}n.push(l);}return n},d.prototype.toGeoJSON=function(e,t,r){return f.call(this,e,t,r)};var g=function(t){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=e.EXTENT,this.length=t.length,this._features=t;};g.prototype.feature=function(e){return new d(this._features[e])};var v=e.vectorTile.VectorTileFeature,m=y;function y(e,t){this.options=t||{},this.features=e,this.length=e.length;}function x(e,t){this.id="number"==typeof e.id?e.id:void 0,this.type=e.type,this.rawGeometry=1===e.type?[e.geometry]:e.geometry,this.properties=e.tags,this.extent=t||4096;}y.prototype.feature=function(e){return new x(this.features[e],this.options.extent)},x.prototype.loadGeometry=function(){var t=this.rawGeometry;this.geometry=[];for(var r=0;r<t.length;r++){for(var i=t[r],o=[],n=0;n<i.length;n++)o.push(new e.Point$1(i[n][0],i[n][1]));this.geometry.push(o);}return this.geometry},x.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var e=this.geometry,t=1/0,r=-1/0,i=1/0,o=-1/0,n=0;n<e.length;n++)for(var s=e[n],a=0;a<s.length;a++){var l=s[a];t=Math.min(t,l.x),r=Math.max(r,l.x),i=Math.min(i,l.y),o=Math.max(o,l.y);}return [t,i,r,o]},x.prototype.toGeoJSON=v.prototype.toGeoJSON;var w=I,S=m;function I(t){var r=new e.pbf;return function(e,t){for(var r in e.layers)t.writeMessage(3,M,e.layers[r]);}(t,r),r.finish()}function M(e,t){var r;t.writeVarintField(15,e.version||1),t.writeStringField(1,e.name||""),t.writeVarintField(5,e.extent||4096);var i={keys:[],values:[],keycache:{},valuecache:{}};for(r=0;r<e.length;r++)i.feature=e.feature(r),t.writeMessage(2,b,i);var o=i.keys;for(r=0;r<o.length;r++)t.writeStringField(3,o[r]);var n=i.values;for(r=0;r<n.length;r++)t.writeMessage(4,C,n[r]);}function b(e,t){var r=e.feature;void 0!==r.id&&t.writeVarintField(1,r.id),t.writeMessage(2,_,e),t.writeVarintField(3,r.type),t.writeMessage(4,T,r);}function _(e,t){var r=e.feature,i=e.keys,o=e.values,n=e.keycache,s=e.valuecache;for(var a in r.properties){var l=n[a];void 0===l&&(i.push(a),n[a]=l=i.length-1),t.writeVarint(l);var u=r.properties[a],h=typeof u;"string"!==h&&"boolean"!==h&&"number"!==h&&(u=JSON.stringify(u));var c=h+":"+u,p=s[c];void 0===p&&(o.push(u),s[c]=p=o.length-1),t.writeVarint(p);}}function k(e,t){return (t<<3)+(7&e)}function P(e){return e<<1^e>>31}function T(e,t){for(var r=e.loadGeometry(),i=e.type,o=0,n=0,s=r.length,a=0;a<s;a++){var l=r[a],u=1;1===i&&(u=l.length),t.writeVarint(k(1,u));for(var h=3===i?l.length-1:l.length,c=0;c<h;c++){1===c&&1!==i&&t.writeVarint(k(2,h-1));var p=l[c].x-o,f=l[c].y-n;t.writeVarint(P(p)),t.writeVarint(P(f)),o+=p,n+=f;}3===i&&t.writeVarint(k(7,1));}}function C(e,t){var r=typeof e;"string"===r?t.writeStringField(1,e):"boolean"===r?t.writeBooleanField(7,e):"number"===r&&(e%1!=0?t.writeDoubleField(3,e):e<0?t.writeSVarintField(6,e):t.writeVarintField(5,e));}function D(e,t,r,i){L(e,r,i),L(t,2*r,2*i),L(t,2*r+1,2*i+1);}function L(e,t,r){var i=e[t];e[t]=e[r],e[r]=i;}function z(e,t,r,i){var o=e-r,n=t-i;return o*o+n*n}w.fromVectorTileJs=I,w.fromGeojsonVt=function(e,t){t=t||{};var r={};for(var i in e)r[i]=new m(e[i].features,t),r[i].name=i,r[i].version=t.version,r[i].extent=t.extent;return I({layers:r})},w.GeoJSONWrapper=S;var O=function(e){return e[0]},E=function(e){return e[1]},F=function(e,t,r,i,o){void 0===t&&(t=O),void 0===r&&(r=E),void 0===i&&(i=64),void 0===o&&(o=Float64Array),this.nodeSize=i,this.points=e;for(var n=e.length<65536?Uint16Array:Uint32Array,s=this.ids=new n(e.length),a=this.coords=new o(2*e.length),l=0;l<e.length;l++)s[l]=l,a[2*l]=t(e[l]),a[2*l+1]=r(e[l]);!function e(t,r,i,o,n,s){if(!(n-o<=i)){var a=o+n>>1;!function e(t,r,i,o,n,s){for(;n>o;){if(n-o>600){var a=n-o+1,l=i-o+1,u=Math.log(a),h=.5*Math.exp(2*u/3),c=.5*Math.sqrt(u*h*(a-h)/a)*(l-a/2<0?-1:1);e(t,r,i,Math.max(o,Math.floor(i-l*h/a+c)),Math.min(n,Math.floor(i+(a-l)*h/a+c)),s);}var p=r[2*i+s],f=o,d=n;for(D(t,r,o,i),r[2*n+s]>p&&D(t,r,o,n);f<d;){for(D(t,r,f,d),f++,d--;r[2*f+s]<p;)f++;for(;r[2*d+s]>p;)d--;}r[2*o+s]===p?D(t,r,o,d):D(t,r,++d,n),d<=i&&(o=d+1),i<=d&&(n=d-1);}}(t,r,a,o,n,s%2),e(t,r,i,o,a-1,s+1),e(t,r,i,a+1,n,s+1);}}(s,a,i,0,s.length-1,0);};F.prototype.range=function(e,t,r,i){return function(e,t,r,i,o,n,s){for(var a,l,u=[0,e.length-1,0],h=[];u.length;){var c=u.pop(),p=u.pop(),f=u.pop();if(p-f<=s)for(var d=f;d<=p;d++)l=t[2*d+1],(a=t[2*d])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[d]);else {var g=Math.floor((f+p)/2);l=t[2*g+1],(a=t[2*g])>=r&&a<=o&&l>=i&&l<=n&&h.push(e[g]);var v=(c+1)%2;(0===c?r<=a:i<=l)&&(u.push(f),u.push(g-1),u.push(v)),(0===c?o>=a:n>=l)&&(u.push(g+1),u.push(p),u.push(v));}}return h}(this.ids,this.coords,e,t,r,i,this.nodeSize)},F.prototype.within=function(e,t,r){return function(e,t,r,i,o,n){for(var s=[0,e.length-1,0],a=[],l=o*o;s.length;){var u=s.pop(),h=s.pop(),c=s.pop();if(h-c<=n)for(var p=c;p<=h;p++)z(t[2*p],t[2*p+1],r,i)<=l&&a.push(e[p]);else {var f=Math.floor((c+h)/2),d=t[2*f],g=t[2*f+1];z(d,g,r,i)<=l&&a.push(e[f]);var v=(u+1)%2;(0===u?r-o<=d:i-o<=g)&&(s.push(c),s.push(f-1),s.push(v)),(0===u?r+o>=d:i+o>=g)&&(s.push(f+1),s.push(h),s.push(v));}}return a}(this.ids,this.coords,e,t,r,this.nodeSize)};var N={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(e){return e}},J=function(e){this.options=V(Object.create(N),e),this.trees=new Array(this.options.maxZoom+1);};function Z(e,t,r,i,o){return {x:e,y:t,zoom:1/0,id:r,parentId:-1,numPoints:i,properties:o}}function A(e,t){var r=e.geometry.coordinates,i=r[1];return {x:Y(r[0]),y:j(i),zoom:1/0,index:t,parentId:-1}}function B(e){return {type:"Feature",id:e.id,properties:G(e),geometry:{type:"Point",coordinates:[(i=e.x,360*(i-.5)),(t=e.y,r=(180-360*t)*Math.PI/180,360*Math.atan(Math.exp(r))/Math.PI-90)]}};var t,r,i;}function G(e){var t=e.numPoints,r=t>=1e4?Math.round(t/1e3)+"k":t>=1e3?Math.round(t/100)/10+"k":t;return V(V({},e.properties),{cluster:!0,cluster_id:e.id,point_count:t,point_count_abbreviated:r})}function Y(e){return e/360+.5}function j(e){var t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function V(e,t){for(var r in t)e[r]=t[r];return e}function X(e){return e.x}function W(e){return e.y}function R(e,t,r,i,o,n){var s=o-r,a=n-i;if(0!==s||0!==a){var l=((e-r)*s+(t-i)*a)/(s*s+a*a);l>1?(r=o,i=n):l>0&&(r+=s*l,i+=a*l);}return (s=e-r)*s+(a=t-i)*a}function q(e,t,r,i){var o={id:void 0===e?null:e,type:t,geometry:r,tags:i,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(e){var t=e.geometry,r=e.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)U(e,t);else if("Polygon"===r||"MultiLineString"===r)for(var i=0;i<t.length;i++)U(e,t[i]);else if("MultiPolygon"===r)for(i=0;i<t.length;i++)for(var o=0;o<t[i].length;o++)U(e,t[i][o]);}(o),o}function U(e,t){for(var r=0;r<t.length;r+=3)e.minX=Math.min(e.minX,t[r]),e.minY=Math.min(e.minY,t[r+1]),e.maxX=Math.max(e.maxX,t[r]),e.maxY=Math.max(e.maxY,t[r+1]);}function $(e,t,r,i){if(t.geometry){var o=t.geometry.coordinates,n=t.geometry.type,s=Math.pow(r.tolerance/((1<<r.maxZoom)*r.extent),2),a=[],l=t.id;if(r.promoteId?l=t.properties[r.promoteId]:r.generateId&&(l=i||0),"Point"===n)H(o,a);else if("MultiPoint"===n)for(var u=0;u<o.length;u++)H(o[u],a);else if("LineString"===n)K(o,a,s,!1);else if("MultiLineString"===n){if(r.lineMetrics){for(u=0;u<o.length;u++)K(o[u],a=[],s,!1),e.push(q(l,"LineString",a,t.properties));return}Q(o,a,s,!1);}else if("Polygon"===n)Q(o,a,s,!0);else {if("MultiPolygon"!==n){if("GeometryCollection"===n){for(u=0;u<t.geometry.geometries.length;u++)$(e,{id:l,geometry:t.geometry.geometries[u],properties:t.properties},r,i);return}throw new Error("Input data is not a valid GeoJSON object.")}for(u=0;u<o.length;u++){var h=[];Q(o[u],h,s,!0),a.push(h);}}e.push(q(l,n,a,t.properties));}}function H(e,t){t.push(ee(e[0])),t.push(te(e[1])),t.push(0);}function K(e,t,r,i){for(var o,n,s=0,a=0;a<e.length;a++){var l=ee(e[a][0]),u=te(e[a][1]);t.push(l),t.push(u),t.push(0),a>0&&(s+=i?(o*u-l*n)/2:Math.sqrt(Math.pow(l-o,2)+Math.pow(u-n,2))),o=l,n=u;}var h=t.length-3;t[2]=1,function e(t,r,i,o){for(var n,s=o,a=i-r>>1,l=i-r,u=t[r],h=t[r+1],c=t[i],p=t[i+1],f=r+3;f<i;f+=3){var d=R(t[f],t[f+1],u,h,c,p);if(d>s)n=f,s=d;else if(d===s){var g=Math.abs(f-a);g<l&&(n=f,l=g);}}s>o&&(n-r>3&&e(t,r,n,o),t[n+2]=s,i-n>3&&e(t,n,i,o));}(t,0,h,r),t[h+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size;}function Q(e,t,r,i){for(var o=0;o<e.length;o++){var n=[];K(e[o],n,r,i),t.push(n);}}function ee(e){return e/360+.5}function te(e){var t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function re(e,t,r,i,o,n,s,a){if(i/=t,n>=(r/=t)&&s<i)return e;if(s<r||n>=i)return null;for(var l=[],u=0;u<e.length;u++){var h=e[u],c=h.geometry,p=h.type,f=0===o?h.minX:h.minY,d=0===o?h.maxX:h.maxY;if(f>=r&&d<i)l.push(h);else if(!(d<r||f>=i)){var g=[];if("Point"===p||"MultiPoint"===p)ie(c,g,r,i,o);else if("LineString"===p)oe(c,g,r,i,o,!1,a.lineMetrics);else if("MultiLineString"===p)se(c,g,r,i,o,!1);else if("Polygon"===p)se(c,g,r,i,o,!0);else if("MultiPolygon"===p)for(var v=0;v<c.length;v++){var m=[];se(c[v],m,r,i,o,!0),m.length&&g.push(m);}if(g.length){if(a.lineMetrics&&"LineString"===p){for(v=0;v<g.length;v++)l.push(q(h.id,p,g[v],h.tags));continue}"LineString"!==p&&"MultiLineString"!==p||(1===g.length?(p="LineString",g=g[0]):p="MultiLineString"),"Point"!==p&&"MultiPoint"!==p||(p=3===g.length?"Point":"MultiPoint"),l.push(q(h.id,p,g,h.tags));}}}return l.length?l:null}function ie(e,t,r,i,o){for(var n=0;n<e.length;n+=3){var s=e[n+o];s>=r&&s<=i&&(t.push(e[n]),t.push(e[n+1]),t.push(e[n+2]));}}function oe(e,t,r,i,o,n,s){for(var a,l,u=ne(e),h=0===o?le:ue,c=e.start,p=0;p<e.length-3;p+=3){var f=e[p],d=e[p+1],g=e[p+2],v=e[p+3],m=e[p+4],y=0===o?f:d,x=0===o?v:m,w=!1;s&&(a=Math.sqrt(Math.pow(f-v,2)+Math.pow(d-m,2))),y<r?x>r&&(l=h(u,f,d,v,m,r),s&&(u.start=c+a*l)):y>i?x<i&&(l=h(u,f,d,v,m,i),s&&(u.start=c+a*l)):ae(u,f,d,g),x<r&&y>=r&&(l=h(u,f,d,v,m,r),w=!0),x>i&&y<=i&&(l=h(u,f,d,v,m,i),w=!0),!n&&w&&(s&&(u.end=c+a*l),t.push(u),u=ne(e)),s&&(c+=a);}var S=e.length-3;f=e[S],d=e[S+1],g=e[S+2],(y=0===o?f:d)>=r&&y<=i&&ae(u,f,d,g),S=u.length-3,n&&S>=3&&(u[S]!==u[0]||u[S+1]!==u[1])&&ae(u,u[0],u[1],u[2]),u.length&&t.push(u);}function ne(e){var t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function se(e,t,r,i,o,n){for(var s=0;s<e.length;s++)oe(e[s],t,r,i,o,n,!1);}function ae(e,t,r,i){e.push(t),e.push(r),e.push(i);}function le(e,t,r,i,o,n){var s=(n-t)/(i-t);return e.push(n),e.push(r+(o-r)*s),e.push(1),s}function ue(e,t,r,i,o,n){var s=(n-r)/(o-r);return e.push(t+(i-t)*s),e.push(n),e.push(1),s}function he(e,t){for(var r=[],i=0;i<e.length;i++){var o,n=e[i],s=n.type;if("Point"===s||"MultiPoint"===s||"LineString"===s)o=ce(n.geometry,t);else if("MultiLineString"===s||"Polygon"===s){o=[];for(var a=0;a<n.geometry.length;a++)o.push(ce(n.geometry[a],t));}else if("MultiPolygon"===s)for(o=[],a=0;a<n.geometry.length;a++){for(var l=[],u=0;u<n.geometry[a].length;u++)l.push(ce(n.geometry[a][u],t));o.push(l);}r.push(q(n.id,s,o,n.tags));}return r}function ce(e,t){var r=[];r.size=e.size,void 0!==e.start&&(r.start=e.start,r.end=e.end);for(var i=0;i<e.length;i+=3)r.push(e[i]+t,e[i+1],e[i+2]);return r}function pe(e,t){if(e.transformed)return e;var r,i,o,n=1<<e.z,s=e.x,a=e.y;for(r=0;r<e.features.length;r++){var l=e.features[r],u=l.geometry,h=l.type;if(l.geometry=[],1===h)for(i=0;i<u.length;i+=2)l.geometry.push(fe(u[i],u[i+1],t,n,s,a));else for(i=0;i<u.length;i++){var c=[];for(o=0;o<u[i].length;o+=2)c.push(fe(u[i][o],u[i][o+1],t,n,s,a));l.geometry.push(c);}}return e.transformed=!0,e}function fe(e,t,r,i,o,n){return [Math.round(r*(e*i-o)),Math.round(r*(t*i-n))]}function de(e,t,r,i,o){for(var n=t===o.maxZoom?0:o.tolerance/((1<<t)*o.extent),s={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:r,y:i,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},a=0;a<e.length;a++){s.numFeatures++,ge(s,e[a],n,o);var l=e[a].minX,u=e[a].minY,h=e[a].maxX,c=e[a].maxY;l<s.minX&&(s.minX=l),u<s.minY&&(s.minY=u),h>s.maxX&&(s.maxX=h),c>s.maxY&&(s.maxY=c);}return s}function ge(e,t,r,i){var o=t.geometry,n=t.type,s=[];if("Point"===n||"MultiPoint"===n)for(var a=0;a<o.length;a+=3)s.push(o[a]),s.push(o[a+1]),e.numPoints++,e.numSimplified++;else if("LineString"===n)ve(s,o,e,r,!1,!1);else if("MultiLineString"===n||"Polygon"===n)for(a=0;a<o.length;a++)ve(s,o[a],e,r,"Polygon"===n,0===a);else if("MultiPolygon"===n)for(var l=0;l<o.length;l++){var u=o[l];for(a=0;a<u.length;a++)ve(s,u[a],e,r,!0,0===a);}if(s.length){var h=t.tags||null;if("LineString"===n&&i.lineMetrics){for(var c in h={},t.tags)h[c]=t.tags[c];h.mapbox_clip_start=o.start/o.size,h.mapbox_clip_end=o.end/o.size;}var p={geometry:s,type:"Polygon"===n||"MultiPolygon"===n?3:"LineString"===n||"MultiLineString"===n?2:1,tags:h};null!==t.id&&(p.id=t.id),e.features.push(p);}}function ve(e,t,r,i,o,n){var s=i*i;if(i>0&&t.size<(o?s:i))r.numPoints+=t.length/3;else {for(var a=[],l=0;l<t.length;l+=3)(0===i||t[l+2]>s)&&(r.numSimplified++,a.push(t[l]),a.push(t[l+1])),r.numPoints++;o&&function(e,t){for(var r=0,i=0,o=e.length,n=o-2;i<o;n=i,i+=2)r+=(e[i]-e[n])*(e[i+1]+e[n+1]);if(r>0===t)for(i=0,o=e.length;i<o/2;i+=2){var s=e[i],a=e[i+1];e[i]=e[o-2-i],e[i+1]=e[o-1-i],e[o-2-i]=s,e[o-1-i]=a;}}(a,n),e.push(a);}}function me(e,t){var r=(t=this.options=function(e,t){for(var r in t)e[r]=t[r];return e}(Object.create(this.options),t)).debug;if(r&&console.time("preprocess data"),t.maxZoom<0||t.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(t.promoteId&&t.generateId)throw new Error("promoteId and generateId cannot be used together.");var i=function(e,t){var r=[];if("FeatureCollection"===e.type)for(var i=0;i<e.features.length;i++)$(r,e.features[i],t,i);else $(r,"Feature"===e.type?e:{geometry:e},t);return r}(e,t);this.tiles={},this.tileCoords=[],r&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",t.indexMaxZoom,t.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),(i=function(e,t){var r=t.buffer/t.extent,i=e,o=re(e,1,-1-r,r,0,-1,2,t),n=re(e,1,1-r,2+r,0,-1,2,t);return (o||n)&&(i=re(e,1,-r,1+r,0,-1,2,t)||[],o&&(i=he(o,1).concat(i)),n&&(i=i.concat(he(n,-1)))),i}(i,t)).length&&this.splitTile(i,0,0,0),r&&(i.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)));}function ye(e,t,r){return 32*((1<<e)*r+t)+e}function xe(e,t){var r=e.tileID.canonical;if(!this._geoJSONIndex)return t(null,null);var i=this._geoJSONIndex.getTile(r.z,r.x,r.y);if(!i)return t(null,null);var o=new g(i.features),n=w(o);0===n.byteOffset&&n.byteLength===n.buffer.byteLength||(n=new Uint8Array(n)),t(null,{vectorTile:o,rawData:n.buffer});}J.prototype.load=function(e){var t=this.options,r=t.log,i=t.minZoom,o=t.maxZoom,n=t.nodeSize;r&&console.time("total time");var s="prepare "+e.length+" points";r&&console.time(s),this.points=e;for(var a=[],l=0;l<e.length;l++)e[l].geometry&&a.push(A(e[l],l));this.trees[o+1]=new F(a,X,W,n,Float32Array),r&&console.timeEnd(s);for(var u=o;u>=i;u--){var h=+Date.now();a=this._cluster(a,u),this.trees[u]=new F(a,X,W,n,Float32Array),r&&console.log("z%d: %d clusters in %dms",u,a.length,+Date.now()-h);}return r&&console.timeEnd("total time"),this},J.prototype.getClusters=function(e,t){var r=((e[0]+180)%360+360)%360-180,i=Math.max(-90,Math.min(90,e[1])),o=180===e[2]?180:((e[2]+180)%360+360)%360-180,n=Math.max(-90,Math.min(90,e[3]));if(e[2]-e[0]>=360)r=-180,o=180;else if(r>o){var s=this.getClusters([r,i,180,n],t),a=this.getClusters([-180,i,o,n],t);return s.concat(a)}for(var l=this.trees[this._limitZoom(t)],u=[],h=0,c=l.range(Y(r),j(n),Y(o),j(i));h<c.length;h+=1){var p=l.points[c[h]];u.push(p.numPoints?B(p):this.points[p.index]);}return u},J.prototype.getChildren=function(e){var t=this._getOriginId(e),r=this._getOriginZoom(e),i="No cluster with the specified id.",o=this.trees[r];if(!o)throw new Error(i);var n=o.points[t];if(!n)throw new Error(i);for(var s=this.options.radius/(this.options.extent*Math.pow(2,r-1)),a=[],l=0,u=o.within(n.x,n.y,s);l<u.length;l+=1){var h=o.points[u[l]];h.parentId===e&&a.push(h.numPoints?B(h):this.points[h.index]);}if(0===a.length)throw new Error(i);return a},J.prototype.getLeaves=function(e,t,r){var i=[];return this._appendLeaves(i,e,t=t||10,r=r||0,0),i},J.prototype.getTile=function(e,t,r){var i=this.trees[this._limitZoom(e)],o=Math.pow(2,e),n=this.options,s=n.radius/n.extent,a=(r-s)/o,l=(r+1+s)/o,u={features:[]};return this._addTileFeatures(i.range((t-s)/o,a,(t+1+s)/o,l),i.points,t,r,o,u),0===t&&this._addTileFeatures(i.range(1-s/o,a,1,l),i.points,o,r,o,u),t===o-1&&this._addTileFeatures(i.range(0,a,s/o,l),i.points,-1,r,o,u),u.features.length?u:null},J.prototype.getClusterExpansionZoom=function(e){for(var t=this._getOriginZoom(e)-1;t<=this.options.maxZoom;){var r=this.getChildren(e);if(t++,1!==r.length)break;e=r[0].properties.cluster_id;}return t},J.prototype._appendLeaves=function(e,t,r,i,o){for(var n=0,s=this.getChildren(t);n<s.length;n+=1){var a=s[n],l=a.properties;if(l&&l.cluster?o+l.point_count<=i?o+=l.point_count:o=this._appendLeaves(e,l.cluster_id,r,i,o):o<i?o++:e.push(a),e.length===r)break}return o},J.prototype._addTileFeatures=function(e,t,r,i,o,n){for(var s=0,a=e;s<a.length;s+=1){var l=t[a[s]],u=l.numPoints,h={type:1,geometry:[[Math.round(this.options.extent*(l.x*o-r)),Math.round(this.options.extent*(l.y*o-i))]],tags:u?G(l):this.points[l.index].properties},c=void 0;u?c=l.id:this.options.generateId?c=l.index:this.points[l.index].id&&(c=this.points[l.index].id),void 0!==c&&(h.id=c),n.features.push(h);}},J.prototype._limitZoom=function(e){return Math.max(this.options.minZoom,Math.min(+e,this.options.maxZoom+1))},J.prototype._cluster=function(e,t){for(var r=[],i=this.options,o=i.reduce,n=i.minPoints,s=i.radius/(i.extent*Math.pow(2,t)),a=0;a<e.length;a++){var l=e[a];if(!(l.zoom<=t)){l.zoom=t;for(var u=this.trees[t+1],h=u.within(l.x,l.y,s),c=l.numPoints||1,p=c,f=0,d=h;f<d.length;f+=1){var g=u.points[d[f]];g.zoom>t&&(p+=g.numPoints||1);}if(p>=n){for(var v=l.x*c,m=l.y*c,y=o&&c>1?this._map(l,!0):null,x=(a<<5)+(t+1)+this.points.length,w=0,S=h;w<S.length;w+=1){var I=u.points[S[w]];if(!(I.zoom<=t)){I.zoom=t;var M=I.numPoints||1;v+=I.x*M,m+=I.y*M,I.parentId=x,o&&(y||(y=this._map(l,!0)),o(y,this._map(I)));}}l.parentId=x,r.push(Z(v/p,m/p,x,p,y));}else if(r.push(l),p>1)for(var b=0,_=h;b<_.length;b+=1){var k=u.points[_[b]];k.zoom<=t||(k.zoom=t,r.push(k));}}}return r},J.prototype._getOriginId=function(e){return e-this.points.length>>5},J.prototype._getOriginZoom=function(e){return (e-this.points.length)%32},J.prototype._map=function(e,t){if(e.numPoints)return t?V({},e.properties):e.properties;var r=this.points[e.index].properties,i=this.options.map(r);return t&&i===r?V({},i):i},me.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},me.prototype.splitTile=function(e,t,r,i,o,n,s){for(var a=[e,t,r,i],l=this.options,u=l.debug;a.length;){i=a.pop(),r=a.pop(),t=a.pop(),e=a.pop();var h=1<<t,c=ye(t,r,i),p=this.tiles[c];if(!p&&(u>1&&console.time("creation"),p=this.tiles[c]=de(e,t,r,i,l),this.tileCoords.push({z:t,x:r,y:i}),u)){u>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",t,r,i,p.numFeatures,p.numPoints,p.numSimplified),console.timeEnd("creation"));var f="z"+t;this.stats[f]=(this.stats[f]||0)+1,this.total++;}if(p.source=e,o){if(t===l.maxZoom||t===o)continue;var d=1<<o-t;if(r!==Math.floor(n/d)||i!==Math.floor(s/d))continue}else if(t===l.indexMaxZoom||p.numPoints<=l.indexMaxPoints)continue;if(p.source=null,0!==e.length){u>1&&console.time("clipping");var g,v,m,y,x,w,S=.5*l.buffer/l.extent,I=.5-S,M=.5+S,b=1+S;g=v=m=y=null,x=re(e,h,r-S,r+M,0,p.minX,p.maxX,l),w=re(e,h,r+I,r+b,0,p.minX,p.maxX,l),e=null,x&&(g=re(x,h,i-S,i+M,1,p.minY,p.maxY,l),v=re(x,h,i+I,i+b,1,p.minY,p.maxY,l),x=null),w&&(m=re(w,h,i-S,i+M,1,p.minY,p.maxY,l),y=re(w,h,i+I,i+b,1,p.minY,p.maxY,l),w=null),u>1&&console.timeEnd("clipping"),a.push(g||[],t+1,2*r,2*i),a.push(v||[],t+1,2*r,2*i+1),a.push(m||[],t+1,2*r+1,2*i),a.push(y||[],t+1,2*r+1,2*i+1);}}},me.prototype.getTile=function(e,t,r){var i=this.options,o=i.extent,n=i.debug;if(e<0||e>24)return null;var s=1<<e,a=ye(e,t=(t%s+s)%s,r);if(this.tiles[a])return pe(this.tiles[a],o);n>1&&console.log("drilling down to z%d-%d-%d",e,t,r);for(var l,u=e,h=t,c=r;!l&&u>0;)u--,h=Math.floor(h/2),c=Math.floor(c/2),l=this.tiles[ye(u,h,c)];return l&&l.source?(n>1&&console.log("found parent tile z%d-%d-%d",u,h,c),n>1&&console.time("drilling down"),this.splitTile(l.source,u,h,c,e,t,r),n>1&&console.timeEnd("drilling down"),this.tiles[a]?pe(this.tiles[a],o):null):null};var we=function(t){function r(e,r,i,o){t.call(this,e,r,i,xe),o&&(this.loadGeoJSON=o);}return t&&(r.__proto__=t),(r.prototype=Object.create(t&&t.prototype)).constructor=r,r.prototype.loadData=function(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=t,this._pendingLoadDataParams=e,this._state&&"Idle"!==this._state?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData());},r.prototype._loadData=function(){var t=this;if(this._pendingCallback&&this._pendingLoadDataParams){var r=this._pendingCallback,i=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var o=!!(i&&i.request&&i.request.collectResourceTiming)&&new e.RequestPerformance(i.request);this.loadGeoJSON(i,(function(n,s){if(n||!s)return r(n);if("object"!=typeof s)return r(new Error("Input data given to '"+i.source+"' is not a valid GeoJSON object."));!function e(t,r){var i,o=t&&t.type;if("FeatureCollection"===o)for(i=0;i<t.features.length;i++)e(t.features[i],r);else if("GeometryCollection"===o)for(i=0;i<t.geometries.length;i++)e(t.geometries[i],r);else if("Feature"===o)e(t.geometry,r);else if("Polygon"===o)c(t.coordinates,r);else if("MultiPolygon"===o)for(i=0;i<t.coordinates.length;i++)c(t.coordinates[i],r);return t}(s,!0);try{if(i.filter){var a=e.createExpression(i.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if("error"===a.result)throw new Error(a.value.map((function(e){return e.key+": "+e.message})).join(", "));var l=s.features.filter((function(e){return a.value.evaluate({zoom:0},e)}));s={type:"FeatureCollection",features:l};}t._geoJSONIndex=i.cluster?new J(function(t){var r=t.superclusterOptions,i=t.clusterProperties;if(!i||!r)return r;for(var o={},n={},s={accumulated:null,zoom:0},a={properties:null},l=Object.keys(i),u=0,h=l;u<h.length;u+=1){var c=h[u],p=i[c],f=p[0],d=e.createExpression(p[1]),g=e.createExpression("string"==typeof f?[f,["accumulated"],["get",c]]:f);o[c]=d.value,n[c]=g.value;}return r.map=function(e){a.properties=e;for(var t={},r=0,i=l;r<i.length;r+=1){var n=i[r];t[n]=o[n].evaluate(s,a);}return t},r.reduce=function(e,t){a.properties=t;for(var r=0,i=l;r<i.length;r+=1){var o=i[r];s.accumulated=e[o],e[o]=n[o].evaluate(s,a);}},r}(i)).load(s.features):function(e,t){return new me(e,t)}(s,i.geojsonVtOptions);}catch(n){return r(n)}t.loaded={};var u={};if(o){var h=o.finish();h&&(u.resourceTiming={},u.resourceTiming[i.source]=JSON.parse(JSON.stringify(h)));}r(null,u);}));}},r.prototype.coalesce=function(){"Coalescing"===this._state?this._state="Idle":"NeedsLoadData"===this._state&&(this._state="Coalescing",this._loadData());},r.prototype.reloadTile=function(e,r){var i=this.loaded;return i&&i[e.uid]?t.prototype.reloadTile.call(this,e,r):this.loadTile(e,r)},r.prototype.loadGeoJSON=function(t,r){if(t.request)e.getJSON(t.request,r);else {if("string"!=typeof t.data)return r(new Error("Input data given to '"+t.source+"' is not a valid GeoJSON object."));try{return r(null,JSON.parse(t.data))}catch(e){return r(new Error("Input data given to '"+t.source+"' is not a valid GeoJSON object."))}}},r.prototype.removeSource=function(e,t){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),t();},r.prototype.getClusterExpansionZoom=function(e,t){try{t(null,this._geoJSONIndex.getClusterExpansionZoom(e.clusterId));}catch(e){t(e);}},r.prototype.getClusterChildren=function(e,t){try{t(null,this._geoJSONIndex.getChildren(e.clusterId));}catch(e){t(e);}},r.prototype.getClusterLeaves=function(e,t){try{t(null,this._geoJSONIndex.getLeaves(e.clusterId,e.limit,e.offset));}catch(e){t(e);}},r}(l),Se=function(t){var r=this;this.self=t,this.actor=new e.Actor(t,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:l,geojson:we},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(e,t){if(r.workerSourceTypes[e])throw new Error('Worker source with name "'+e+'" already registered.');r.workerSourceTypes[e]=t;},this.self.registerRTLTextPlugin=function(t){if(e.plugin.isParsed())throw new Error("RTL text plugin already registered.");e.plugin.applyArabicShaping=t.applyArabicShaping,e.plugin.processBidirectionalText=t.processBidirectionalText,e.plugin.processStyledBidirectionalText=t.processStyledBidirectionalText;};};return Se.prototype.setReferrer=function(e,t){this.referrer=t;},Se.prototype.setImages=function(e,t,r){for(var i in this.availableImages[e]=t,this.workerSources[e]){var o=this.workerSources[e][i];for(var n in o)o[n].availableImages=t;}r();},Se.prototype.setLayers=function(e,t,r){this.getLayerIndex(e).replace(t),r();},Se.prototype.updateLayers=function(e,t,r){this.getLayerIndex(e).update(t.layers,t.removedIds),r();},Se.prototype.loadTile=function(e,t,r){this.getWorkerSource(e,t.type,t.source).loadTile(t,r);},Se.prototype.loadDEMTile=function(e,t,r){this.getDEMWorkerSource(e,t.source).loadTile(t,r);},Se.prototype.reloadTile=function(e,t,r){this.getWorkerSource(e,t.type,t.source).reloadTile(t,r);},Se.prototype.abortTile=function(e,t,r){this.getWorkerSource(e,t.type,t.source).abortTile(t,r);},Se.prototype.removeTile=function(e,t,r){this.getWorkerSource(e,t.type,t.source).removeTile(t,r);},Se.prototype.removeDEMTile=function(e,t){this.getDEMWorkerSource(e,t.source).removeTile(t);},Se.prototype.removeSource=function(e,t,r){if(this.workerSources[e]&&this.workerSources[e][t.type]&&this.workerSources[e][t.type][t.source]){var i=this.workerSources[e][t.type][t.source];delete this.workerSources[e][t.type][t.source],void 0!==i.removeSource?i.removeSource(t,r):r();}},Se.prototype.loadWorkerSource=function(e,t,r){try{this.self.importScripts(t.url),r();}catch(e){r(e.toString());}},Se.prototype.syncRTLPluginState=function(t,r,i){try{e.plugin.setState(r);var o=e.plugin.getPluginURL();if(e.plugin.isLoaded()&&!e.plugin.isParsed()&&null!=o){this.self.importScripts(o);var n=e.plugin.isParsed();i(n?void 0:new Error("RTL Text Plugin failed to import scripts from "+o),n);}}catch(e){i(e.toString());}},Se.prototype.getAvailableImages=function(e){var t=this.availableImages[e];return t||(t=[]),t},Se.prototype.getLayerIndex=function(e){var t=this.layerIndexes[e];return t||(t=this.layerIndexes[e]=new i),t},Se.prototype.getWorkerSource=function(e,t,r){var i=this;return this.workerSources[e]||(this.workerSources[e]={}),this.workerSources[e][t]||(this.workerSources[e][t]={}),this.workerSources[e][t][r]||(this.workerSources[e][t][r]=new this.workerSourceTypes[t]({send:function(t,r,o){i.actor.send(t,r,o,e);}},this.getLayerIndex(e),this.getAvailableImages(e))),this.workerSources[e][t][r]},Se.prototype.getDEMWorkerSource=function(e,t){return this.demWorkerSources[e]||(this.demWorkerSources[e]={}),this.demWorkerSources[e][t]||(this.demWorkerSources[e][t]=new h),this.demWorkerSources[e][t]},Se.prototype.enforceCacheSizeLimit=function(t,r){e.enforceCacheSizeLimit(r);},"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope&&(self.worker=new Se(self)),Se}));
+
+define(["./shared"],(function(t){"use strict";var e=t.createCommonjsModule((function(t){function e(t){return !i(t)}function i(t){return "undefined"==typeof window||"undefined"==typeof document?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return !1;var t,e,i=new Blob([""],{type:"text/javascript"}),o=URL.createObjectURL(i);try{e=new Worker(o),t=!0;}catch(e){t=!1;}return e&&e.terminate(),URL.revokeObjectURL(o),t}()?"Uint8ClampedArray"in window?ArrayBuffer.isView?function(){var t=document.createElement("canvas");t.width=t.height=1;var e=t.getContext("2d");if(!e)return !1;var i=e.getImageData(0,0,1,1);return i&&i.width===t.width}()?(void 0===o[i=t&&t.failIfMajorPerformanceCaveat]&&(o[i]=function(t){var i=function(t){var i=document.createElement("canvas"),o=Object.create(e.webGLContextAttributes);return o.failIfMajorPerformanceCaveat=t,i.probablySupportsContext?i.probablySupportsContext("webgl",o)||i.probablySupportsContext("experimental-webgl",o):i.supportsContext?i.supportsContext("webgl",o)||i.supportsContext("experimental-webgl",o):i.getContext("webgl",o)||i.getContext("experimental-webgl",o)}(t);if(!i)return !1;var o=i.createShader(i.VERTEX_SHADER);return !(!o||i.isContextLost())&&(i.shaderSource(o,"void main() {}"),i.compileShader(o),!0===i.getShaderParameter(o,i.COMPILE_STATUS))}(i)),o[i]?void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray support":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var i;}t.exports?t.exports=e:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=e,window.mapboxgl.notSupportedReason=i);var o={};e.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0};})),i={create:function(e,i,o){var r=t.window.document.createElement(e);return void 0!==i&&(r.className=i),o&&o.appendChild(r),r},createNS:function(e,i){return t.window.document.createElementNS(e,i)}},o=t.window.document&&t.window.document.documentElement.style;function r(t){if(!o)return t[0];for(var e=0;e<t.length;e++)if(t[e]in o)return t[e];return t[0]}var a,n=r(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]);i.disableDrag=function(){o&&n&&(a=o[n],o[n]="none");},i.enableDrag=function(){o&&n&&(o[n]=a);};var s=r(["transform","WebkitTransform"]);i.setTransform=function(t,e){t.style[s]=e;};var l=!1;try{var c=Object.defineProperty({},"passive",{get:function(){l=!0;}});t.window.addEventListener("test",c,c),t.window.removeEventListener("test",c,c);}catch(t){l=!1;}i.addEventListener=function(t,e,i,o){void 0===o&&(o={}),t.addEventListener(e,i,"passive"in o&&l?o:o.capture);},i.removeEventListener=function(t,e,i,o){void 0===o&&(o={}),t.removeEventListener(e,i,"passive"in o&&l?o:o.capture);};var u=function(e){e.preventDefault(),e.stopPropagation(),t.window.removeEventListener("click",u,!0);};function h(t){var e=t.userImage;return !!(e&&e.render&&e.render())&&(t.data.replace(new Uint8Array(e.data.buffer)),!0)}i.suppressClick=function(){t.window.addEventListener("click",u,!0),t.window.setTimeout((function(){t.window.removeEventListener("click",u,!0);}),0);},i.mousePos=function(e,i){var o=e.getBoundingClientRect();return new t.Point(i.clientX-o.left-e.clientLeft,i.clientY-o.top-e.clientTop)},i.touchPos=function(e,i){for(var o=e.getBoundingClientRect(),r=[],a=0;a<i.length;a++)r.push(new t.Point(i[a].clientX-o.left-e.clientLeft,i[a].clientY-o.top-e.clientTop));return r},i.mouseButton=function(e){return void 0!==t.window.InstallTrigger&&2===e.button&&e.ctrlKey&&t.window.navigator.platform.toUpperCase().indexOf("MAC")>=0?0:e.button},i.remove=function(t){t.parentNode&&t.parentNode.removeChild(t);};var p=function(e){function i(){e.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new t.RGBAImage({width:1,height:1}),this.dirty=!0;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.isLoaded=function(){return this.loaded},i.prototype.setLoaded=function(t){if(this.loaded!==t&&(this.loaded=t,t)){for(var e=0,i=this.requestors;e<i.length;e+=1){var o=i[e];this._notify(o.ids,o.callback);}this.requestors=[];}},i.prototype.getImage=function(t){return this.images[t]},i.prototype.addImage=function(t,e){this._validate(t,e)&&(this.images[t]=e);},i.prototype._validate=function(e,i){var o=!0;return this._validateStretch(i.stretchX,i.data&&i.data.width)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "stretchX" value'))),o=!1),this._validateStretch(i.stretchY,i.data&&i.data.height)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "stretchY" value'))),o=!1),this._validateContent(i.content,i)||(this.fire(new t.ErrorEvent(new Error('Image "'+e+'" has invalid "content" value'))),o=!1),o},i.prototype._validateStretch=function(t,e){if(!t)return !0;for(var i=0,o=0,r=t;o<r.length;o+=1){var a=r[o];if(a[0]<i||a[1]<a[0]||e<a[1])return !1;i=a[1];}return !0},i.prototype._validateContent=function(t,e){return !(t&&(4!==t.length||t[0]<0||e.data.width<t[0]||t[1]<0||e.data.height<t[1]||t[2]<0||e.data.width<t[2]||t[3]<0||e.data.height<t[3]||t[2]<t[0]||t[3]<t[1]))},i.prototype.updateImage=function(t,e){e.version=this.images[t].version+1,this.images[t]=e,this.updatedImages[t]=!0;},i.prototype.removeImage=function(t){var e=this.images[t];delete this.images[t],delete this.patterns[t],e.userImage&&e.userImage.onRemove&&e.userImage.onRemove();},i.prototype.listImages=function(){return Object.keys(this.images)},i.prototype.getImages=function(t,e){var i=!0;if(!this.isLoaded())for(var o=0,r=t;o<r.length;o+=1)this.images[r[o]]||(i=!1);this.isLoaded()||i?this._notify(t,e):this.requestors.push({ids:t,callback:e});},i.prototype._notify=function(e,i){for(var o={},r=0,a=e;r<a.length;r+=1){var n=a[r];this.images[n]||this.fire(new t.Event("styleimagemissing",{id:n}));var s=this.images[n];s?o[n]={data:s.data.clone(),pixelRatio:s.pixelRatio,sdf:s.sdf,version:s.version,stretchX:s.stretchX,stretchY:s.stretchY,content:s.content,hasRenderCallback:Boolean(s.userImage&&s.userImage.render)}:t.warnOnce('Image "'+n+'" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.');}i(null,o);},i.prototype.getPixelSize=function(){var t=this.atlasImage;return {width:t.width,height:t.height}},i.prototype.getPattern=function(e){var i=this.patterns[e],o=this.getImage(e);if(!o)return null;if(i&&i.position.version===o.version)return i.position;if(i)i.position.version=o.version;else {var r={w:o.data.width+2,h:o.data.height+2,x:0,y:0},a=new t.ImagePosition(r,o);this.patterns[e]={bin:r,position:a};}return this._updatePatternAtlas(),this.patterns[e].position},i.prototype.bind=function(e){var i=e.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new t.Texture(e,this.atlasImage,i.RGBA),this.atlasTexture.bind(i.LINEAR,i.CLAMP_TO_EDGE);},i.prototype._updatePatternAtlas=function(){var e=[];for(var i in this.patterns)e.push(this.patterns[i].bin);var o=t.potpack(e),r=o.w,a=o.h,n=this.atlasImage;for(var s in n.resize({width:r||1,height:a||1}),this.patterns){var l=this.patterns[s].bin,c=l.x+1,u=l.y+1,h=this.images[s].data,p=h.width,d=h.height;t.RGBAImage.copy(h,n,{x:0,y:0},{x:c,y:u},{width:p,height:d}),t.RGBAImage.copy(h,n,{x:0,y:d-1},{x:c,y:u-1},{width:p,height:1}),t.RGBAImage.copy(h,n,{x:0,y:0},{x:c,y:u+d},{width:p,height:1}),t.RGBAImage.copy(h,n,{x:p-1,y:0},{x:c-1,y:u},{width:1,height:d}),t.RGBAImage.copy(h,n,{x:0,y:0},{x:c+p,y:u},{width:1,height:d});}this.dirty=!0;},i.prototype.beginFrame=function(){this.callbackDispatchedThisFrame={};},i.prototype.dispatchRenderCallbacks=function(t){for(var e=0,i=t;e<i.length;e+=1){var o=i[e];if(!this.callbackDispatchedThisFrame[o]){this.callbackDispatchedThisFrame[o]=!0;var r=this.images[o];h(r)&&this.updateImage(o,r);}}},i}(t.Evented),d=m,_=m,f=1e20;function m(t,e,i,o,r,a){this.fontSize=t||24,this.buffer=void 0===e?3:e,this.cutoff=o||.25,this.fontFamily=r||"sans-serif",this.fontWeight=a||"normal",this.radius=i||8;var n=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=n,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(n*n),this.gridInner=new Float64Array(n*n),this.f=new Float64Array(n),this.d=new Float64Array(n),this.z=new Float64Array(n+1),this.v=new Int16Array(n),this.middle=Math.round(n/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1));}function g(t,e,i,o,r,a,n){for(var s=0;s<e;s++){for(var l=0;l<i;l++)o[l]=t[l*e+s];for(v(o,r,a,n,i),l=0;l<i;l++)t[l*e+s]=r[l];}for(l=0;l<i;l++){for(s=0;s<e;s++)o[s]=t[l*e+s];for(v(o,r,a,n,e),s=0;s<e;s++)t[l*e+s]=Math.sqrt(r[s]);}}function v(t,e,i,o,r){i[0]=0,o[0]=-f,o[1]=+f;for(var a=1,n=0;a<r;a++){for(var s=(t[a]+a*a-(t[i[n]]+i[n]*i[n]))/(2*a-2*i[n]);s<=o[n];)n--,s=(t[a]+a*a-(t[i[n]]+i[n]*i[n]))/(2*a-2*i[n]);i[++n]=a,o[n]=s,o[n+1]=+f;}for(a=0,n=0;a<r;a++){for(;o[n+1]<a;)n++;e[a]=(a-i[n])*(a-i[n])+t[i[n]];}}m.prototype.draw=function(t){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(t,this.buffer,this.middle);for(var e=this.ctx.getImageData(0,0,this.size,this.size),i=new Uint8ClampedArray(this.size*this.size),o=0;o<this.size*this.size;o++){var r=e.data[4*o+3]/255;this.gridOuter[o]=1===r?0:0===r?f:Math.pow(Math.max(0,.5-r),2),this.gridInner[o]=1===r?f:0===r?0:Math.pow(Math.max(0,r-.5),2);}for(g(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),g(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),o=0;o<this.size*this.size;o++)i[o]=Math.max(0,Math.min(255,Math.round(255-255*((this.gridOuter[o]-this.gridInner[o])/this.radius+this.cutoff))));return i},d.default=_;var y=function(t,e){this.requestManager=t,this.localIdeographFontFamily=e,this.entries={};};y.prototype.setURL=function(t){this.url=t;},y.prototype.getGlyphs=function(e,i){var o=this,r=[];for(var a in e)for(var n=0,s=e[a];n<s.length;n+=1)r.push({stack:a,id:s[n]});t.asyncAll(r,(function(t,e){var i=t.stack,r=t.id,a=o.entries[i];a||(a=o.entries[i]={glyphs:{},requests:{},ranges:{}});var n=a.glyphs[r];if(void 0===n){if(n=o._tinySDF(a,i,r))return a.glyphs[r]=n,void e(null,{stack:i,id:r,glyph:n});var s=Math.floor(r/256);if(256*s>65535)e(new Error("glyphs > 65535 not supported"));else if(a.ranges[s])e(null,{stack:i,id:r,glyph:n});else {var l=a.requests[s];l||(l=a.requests[s]=[],y.loadGlyphRange(i,s,o.url,o.requestManager,(function(t,e){if(e){for(var i in e)o._doesCharSupportLocalGlyph(+i)||(a.glyphs[+i]=e[+i]);a.ranges[s]=!0;}for(var r=0,n=l;r<n.length;r+=1)(0,n[r])(t,e);delete a.requests[s];}))),l.push((function(t,o){t?e(t):o&&e(null,{stack:i,id:r,glyph:o[r]||null});}));}}else e(null,{stack:i,id:r,glyph:n});}),(function(t,e){if(t)i(t);else if(e){for(var o={},r=0,a=e;r<a.length;r+=1){var n=a[r],s=n.stack,l=n.id,c=n.glyph;(o[s]||(o[s]={}))[l]=c&&{id:c.id,bitmap:c.bitmap.clone(),metrics:c.metrics};}i(null,o);}}));},y.prototype._doesCharSupportLocalGlyph=function(e){return !!this.localIdeographFontFamily&&(t.isChar["CJK Unified Ideographs"](e)||t.isChar["Hangul Syllables"](e)||t.isChar.Hiragana(e)||t.isChar.Katakana(e))},y.prototype._tinySDF=function(e,i,o){var r=this.localIdeographFontFamily;if(r&&this._doesCharSupportLocalGlyph(o)){var a=e.tinySDF;if(!a){var n="400";/bold/i.test(i)?n="900":/medium/i.test(i)?n="500":/light/i.test(i)&&(n="200"),a=e.tinySDF=new y.TinySDF(24,3,8,.25,r,n);}return {id:o,bitmap:new t.AlphaImage({width:30,height:30},a.draw(String.fromCharCode(o))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},y.loadGlyphRange=function(e,i,o,r,a){var n=256*i,s=n+255,l=r.transformRequest(r.normalizeGlyphsURL(o).replace("{fontstack}",e).replace("{range}",n+"-"+s),t.ResourceType.Glyphs);t.getArrayBuffer(l,(function(e,i){if(e)a(e);else if(i){for(var o={},r=0,n=t.parseGlyphPBF(i);r<n.length;r+=1){var s=n[r];o[s.id]=s;}a(null,o);}}));},y.TinySDF=d;var x=function(){this.specification=t.styleSpec.light.position;};x.prototype.possiblyEvaluate=function(e,i){return t.sphericalToCartesian(e.expression.evaluate(i))},x.prototype.interpolate=function(e,i,o){return {x:t.number(e.x,i.x,o),y:t.number(e.y,i.y,o),z:t.number(e.z,i.z,o)}};var b=new t.Properties({anchor:new t.DataConstantProperty(t.styleSpec.light.anchor),position:new x,color:new t.DataConstantProperty(t.styleSpec.light.color),intensity:new t.DataConstantProperty(t.styleSpec.light.intensity)}),w=function(e){function i(i){e.call(this),this._transitionable=new t.Transitionable(b),this.setLight(i),this._transitioning=this._transitionable.untransitioned();}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.getLight=function(){return this._transitionable.serialize()},i.prototype.setLight=function(e,i){if(void 0===i&&(i={}),!this._validate(t.validateLight,e,i))for(var o in e){var r=e[o];t.endsWith(o,"-transition")?this._transitionable.setTransition(o.slice(0,-"-transition".length),r):this._transitionable.setValue(o,r);}},i.prototype.updateTransitions=function(t){this._transitioning=this._transitionable.transitioned(t,this._transitioning);},i.prototype.hasTransition=function(){return this._transitioning.hasTransition()},i.prototype.recalculate=function(t){this.properties=this._transitioning.possiblyEvaluate(t);},i.prototype._validate=function(e,i,o){return (!o||!1!==o.validate)&&t.emitValidationErrors(this,e.call(t.validateStyle,t.extend({value:i,style:{glyphs:!0,sprite:!0},styleSpec:t.styleSpec})))},i}(t.Evented),T=function(t,e){this.width=t,this.height=e,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={};};T.prototype.getDash=function(t,e){var i=t.join(",")+String(e);return this.dashEntry[i]||(this.dashEntry[i]=this.addDash(t,e)),this.dashEntry[i]},T.prototype.getDashRanges=function(t,e,i){var o=[],r=t.length%2==1?-t[t.length-1]*i:0,a=t[0]*i,n=!0;o.push({left:r,right:a,isDash:n,zeroLength:0===t[0]});for(var s=t[0],l=1;l<t.length;l++){var c=t[l];o.push({left:r=s*i,right:a=(s+=c)*i,isDash:n=!n,zeroLength:0===c});}return o},T.prototype.addRoundDash=function(t,e,i){for(var o=e/2,r=-i;r<=i;r++)for(var a=this.width*(this.nextRow+i+r),n=0,s=t[n],l=0;l<this.width;l++){l/s.right>1&&(s=t[++n]);var c=Math.abs(l-s.left),u=Math.abs(l-s.right),h=Math.min(c,u),p=void 0,d=r/i*(o+1);if(s.isDash){var _=o-Math.abs(d);p=Math.sqrt(h*h+_*_);}else p=o-Math.sqrt(h*h+d*d);this.data[a+l]=Math.max(0,Math.min(255,p+128));}},T.prototype.addRegularDash=function(t){for(var e=t.length-1;e>=0;--e){var i=t[e],o=t[e+1];i.zeroLength?t.splice(e,1):o&&o.isDash===i.isDash&&(o.left=i.left,t.splice(e,1));}var r=t[0],a=t[t.length-1];r.isDash===a.isDash&&(r.left=a.left-this.width,a.right=r.right+this.width);for(var n=this.width*this.nextRow,s=0,l=t[s],c=0;c<this.width;c++){c/l.right>1&&(l=t[++s]);var u=Math.abs(c-l.left),h=Math.abs(c-l.right),p=Math.min(u,h);this.data[n+c]=Math.max(0,Math.min(255,(l.isDash?p:-p)+128));}},T.prototype.addDash=function(e,i){var o=i?7:0,r=2*o+1;if(this.nextRow+r>this.height)return t.warnOnce("LineAtlas out of space"),null;for(var a=0,n=0;n<e.length;n++)a+=e[n];if(0!==a){var s=this.width/a,l=this.getDashRanges(e,this.width,s);i?this.addRoundDash(l,s,o):this.addRegularDash(l);}var c={y:(this.nextRow+o+.5)/this.height,height:2*o/this.height,width:a};return this.nextRow+=r,this.dirty=!0,c},T.prototype.bind=function(t){var e=t.gl;this.texture?(e.bindTexture(e.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,e.texSubImage2D(e.TEXTURE_2D,0,0,0,this.width,this.height,e.ALPHA,e.UNSIGNED_BYTE,this.data))):(this.texture=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.texture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texImage2D(e.TEXTURE_2D,0,e.ALPHA,this.width,this.height,0,e.ALPHA,e.UNSIGNED_BYTE,this.data));};var E=function e(i,o){this.workerPool=i,this.actors=[],this.currentActor=0,this.id=t.uniqueId();for(var r=this.workerPool.acquire(this.id),a=0;a<r.length;a++){var n=new e.Actor(r[a],o,this.id);n.name="Worker "+a,this.actors.push(n);}};function I(e,i,o){var r=function(r,a){if(r)return o(r);if(a){var n=t.pick(t.extend(a,e),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);a.vector_layers&&(n.vectorLayers=a.vector_layers,n.vectorLayerIds=n.vectorLayers.map((function(t){return t.id}))),n.tiles=i.canonicalizeTileset(n,e.url),o(null,n);}};return e.url?t.getJSON(i.transformRequest(i.normalizeSourceURL(e.url),t.ResourceType.Source),r):t.browser.frame((function(){return r(null,e)}))}E.prototype.broadcast=function(e,i,o){t.asyncAll(this.actors,(function(t,o){t.send(e,i,o);}),o=o||function(){});},E.prototype.getActor=function(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]},E.prototype.remove=function(){this.actors.forEach((function(t){t.remove();})),this.actors=[],this.workerPool.release(this.id);},E.Actor=t.Actor;var P=function(e,i,o){this.bounds=t.LngLatBounds.convert(this.validateBounds(e)),this.minzoom=i||0,this.maxzoom=o||24;};P.prototype.validateBounds=function(t){return Array.isArray(t)&&4===t.length?[Math.max(-180,t[0]),Math.max(-90,t[1]),Math.min(180,t[2]),Math.min(90,t[3])]:[-180,-90,180,90]},P.prototype.contains=function(e){var i=Math.pow(2,e.z),o=Math.floor(t.mercatorXfromLng(this.bounds.getWest())*i),r=Math.floor(t.mercatorYfromLat(this.bounds.getNorth())*i),a=Math.ceil(t.mercatorXfromLng(this.bounds.getEast())*i),n=Math.ceil(t.mercatorYfromLat(this.bounds.getSouth())*i);return e.x>=o&&e.x<a&&e.y>=r&&e.y<n};var S=function(e){function i(i,o,r,a){if(e.call(this),this.id=i,this.dispatcher=r,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,t.extend(this,t.pick(o,["url","scheme","tileSize","promoteId"])),this._options=t.extend({type:"vector"},o),this._collectResourceTiming=o.collectResourceTiming,512!==this.tileSize)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(a);}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(){var e=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=I(this._options,this.map._requestManager,(function(i,o){e._tileJSONRequest=null,e._loaded=!0,i?e.fire(new t.ErrorEvent(i)):o&&(t.extend(e,o),o.bounds&&(e.tileBounds=new P(o.bounds,e.minzoom,e.maxzoom)),t.postTurnstileEvent(o.tiles,e.map._requestManager._customAccessToken),t.postMapLoadEvent(o.tiles,e.map._getMapId(),e.map._requestManager._skuToken,e.map._requestManager._customAccessToken),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})));}));},i.prototype.loaded=function(){return this._loaded},i.prototype.hasTile=function(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setSourceProperty=function(t){this._tileJSONRequest&&this._tileJSONRequest.cancel(),t(),this.map.style.sourceCaches[this.id].clearTiles(),this.load();},i.prototype.setTiles=function(t){var e=this;return this.setSourceProperty((function(){e._options.tiles=t;})),this},i.prototype.setUrl=function(t){var e=this;return this.setSourceProperty((function(){e.url=t,e._options.url=t;})),this},i.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);},i.prototype.serialize=function(){return t.extend({},this._options)},i.prototype.loadTile=function(e,i){var o=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme)),r={request:this.map._requestManager.transformRequest(o,t.ResourceType.Tile),uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,tileSize:this.tileSize*e.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function a(o,r){return delete e.request,e.aborted?i(null):o&&404!==o.status?i(o):(r&&r.resourceTiming&&(e.resourceTiming=r.resourceTiming),this.map._refreshExpiredTiles&&r&&e.setExpiryData(r),e.loadVectorData(r,this.map.painter),t.cacheEntryPossiblyAdded(this.dispatcher),i(null),void(e.reloadCallback&&(this.loadTile(e,e.reloadCallback),e.reloadCallback=null)))}r.request.collectResourceTiming=this._collectResourceTiming,e.actor&&"expired"!==e.state?"loading"===e.state?e.reloadCallback=i:e.request=e.actor.send("reloadTile",r,a.bind(this)):(e.actor=this.dispatcher.getActor(),e.request=e.actor.send("loadTile",r,a.bind(this)));},i.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.actor&&t.actor.send("abortTile",{uid:t.uid,type:this.type,source:this.id},void 0);},i.prototype.unloadTile=function(t){t.unloadVectorData(),t.actor&&t.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id},void 0);},i.prototype.hasTransition=function(){return !1},i}(t.Evented),C=function(e){function i(i,o,r,a){e.call(this),this.id=i,this.dispatcher=r,this.setEventedParent(a),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=t.extend({type:"raster"},o),t.extend(this,t.pick(o,["url","scheme","tileSize"]));}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(){var e=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=I(this._options,this.map._requestManager,(function(i,o){e._tileJSONRequest=null,e._loaded=!0,i?e.fire(new t.ErrorEvent(i)):o&&(t.extend(e,o),o.bounds&&(e.tileBounds=new P(o.bounds,e.minzoom,e.maxzoom)),t.postTurnstileEvent(o.tiles),t.postMapLoadEvent(o.tiles,e.map._getMapId(),e.map._requestManager._skuToken),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})),e.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})));}));},i.prototype.loaded=function(){return this._loaded},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null);},i.prototype.serialize=function(){return t.extend({},this._options)},i.prototype.hasTile=function(t){return !this.tileBounds||this.tileBounds.contains(t.canonical)},i.prototype.loadTile=function(e,i){var o=this,r=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);e.request=t.getImage(this.map._requestManager.transformRequest(r,t.ResourceType.Tile),(function(r,a){if(delete e.request,e.aborted)e.state="unloaded",i(null);else if(r)e.state="errored",i(r);else if(a){o.map._refreshExpiredTiles&&e.setExpiryData(a),delete a.cacheControl,delete a.expires;var n=o.map.painter.context,s=n.gl;e.texture=o.map.painter.getTileTexture(a.width),e.texture?e.texture.update(a,{useMipmap:!0}):(e.texture=new t.Texture(n,a,s.RGBA,{useMipmap:!0}),e.texture.bind(s.LINEAR,s.CLAMP_TO_EDGE,s.LINEAR_MIPMAP_NEAREST),n.extTextureFilterAnisotropic&&s.texParameterf(s.TEXTURE_2D,n.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,n.extTextureFilterAnisotropicMax)),e.state="loaded",t.cacheEntryPossiblyAdded(o.dispatcher),i(null);}}));},i.prototype.abortTile=function(t,e){t.request&&(t.request.cancel(),delete t.request),e();},i.prototype.unloadTile=function(t,e){t.texture&&this.map.painter.saveTileTexture(t.texture),e();},i.prototype.hasTransition=function(){return !1},i}(t.Evented),z=function(e){function i(i,o,r,a){e.call(this,i,o,r,a),this.type="raster-dem",this.maxzoom=22,this._options=t.extend({type:"raster-dem"},o),this.encoding=o.encoding||"mapbox";}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.serialize=function(){return {type:"raster-dem",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},i.prototype.loadTile=function(e,i){var o=this.map._requestManager.normalizeTileURL(e.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);function r(t,o){t&&(e.state="errored",i(t)),o&&(e.dem=o,e.needsHillshadePrepare=!0,e.state="loaded",i(null));}e.request=t.getImage(this.map._requestManager.transformRequest(o,t.ResourceType.Tile),function(o,a){if(delete e.request,e.aborted)e.state="unloaded",i(null);else if(o)e.state="errored",i(o);else if(a){this.map._refreshExpiredTiles&&e.setExpiryData(a),delete a.cacheControl,delete a.expires;var n=t.window.ImageBitmap&&a instanceof t.window.ImageBitmap&&t.offscreenCanvasSupported()?a:t.browser.getImageData(a,1),s={uid:e.uid,coord:e.tileID,source:this.id,rawImageData:n,encoding:this.encoding};e.actor&&"expired"!==e.state||(e.actor=this.dispatcher.getActor(),e.actor.send("loadDEMTile",s,r.bind(this)));}}.bind(this)),e.neighboringTiles=this._getNeighboringTiles(e.tileID);},i.prototype._getNeighboringTiles=function(e){var i=e.canonical,o=Math.pow(2,i.z),r=(i.x-1+o)%o,a=0===i.x?e.wrap-1:e.wrap,n=(i.x+1+o)%o,s=i.x+1===o?e.wrap+1:e.wrap,l={};return l[new t.OverscaledTileID(e.overscaledZ,a,i.z,r,i.y).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,i.z,n,i.y).key]={backfilled:!1},i.y>0&&(l[new t.OverscaledTileID(e.overscaledZ,a,i.z,r,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,i.z,i.x,i.y-1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,i.z,n,i.y-1).key]={backfilled:!1}),i.y+1<o&&(l[new t.OverscaledTileID(e.overscaledZ,a,i.z,r,i.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,e.wrap,i.z,i.x,i.y+1).key]={backfilled:!1},l[new t.OverscaledTileID(e.overscaledZ,s,i.z,n,i.y+1).key]={backfilled:!1}),l},i.prototype.unloadTile=function(t){t.demTexture&&this.map.painter.saveTileTexture(t.demTexture),t.fbo&&(t.fbo.destroy(),delete t.fbo),t.dem&&delete t.dem,delete t.neighboringTiles,t.state="unloaded",t.actor&&t.actor.send("removeDEMTile",{uid:t.uid,source:this.id});},i}(C),D=function(e){function i(i,o,r,a){e.call(this),this.id=i,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._loaded=!1,this.actor=r.getActor(),this.setEventedParent(a),this._data=o.data,this._options=t.extend({},o),this._collectResourceTiming=o.collectResourceTiming,this._resourceTiming=[],void 0!==o.maxzoom&&(this.maxzoom=o.maxzoom),o.type&&(this.type=o.type),o.attribution&&(this.attribution=o.attribution),this.promoteId=o.promoteId;var n=t.EXTENT/this.tileSize;this.workerOptions=t.extend({source:this.id,cluster:o.cluster||!1,geojsonVtOptions:{buffer:(void 0!==o.buffer?o.buffer:128)*n,tolerance:(void 0!==o.tolerance?o.tolerance:.375)*n,extent:t.EXTENT,maxZoom:this.maxzoom,lineMetrics:o.lineMetrics||!1,generateId:o.generateId||!1},superclusterOptions:{maxZoom:void 0!==o.clusterMaxZoom?Math.min(o.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,minPoints:Math.max(2,o.clusterMinPoints||2),extent:t.EXTENT,radius:(o.clusterRadius||50)*n,log:!1,generateId:o.generateId||!1},clusterProperties:o.clusterProperties,filter:o.filter},o.workerOptions);}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(){var e=this;this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(i){if(i)e.fire(new t.ErrorEvent(i));else {var o={dataType:"source",sourceDataType:"metadata"};e._collectResourceTiming&&e._resourceTiming&&e._resourceTiming.length>0&&(o.resourceTiming=e._resourceTiming,e._resourceTiming=[]),e.fire(new t.Event("data",o));}}));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setData=function(e){var i=this;return this._data=e,this.fire(new t.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(e){if(e)i.fire(new t.ErrorEvent(e));else {var o={dataType:"source",sourceDataType:"content"};i._collectResourceTiming&&i._resourceTiming&&i._resourceTiming.length>0&&(o.resourceTiming=i._resourceTiming,i._resourceTiming=[]),i.fire(new t.Event("data",o));}})),this},i.prototype.getClusterExpansionZoom=function(t,e){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:t,source:this.id},e),this},i.prototype.getClusterChildren=function(t,e){return this.actor.send("geojson.getClusterChildren",{clusterId:t,source:this.id},e),this},i.prototype.getClusterLeaves=function(t,e,i,o){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:t,limit:e,offset:i},o),this},i.prototype._updateWorkerData=function(e){var i=this;this._loaded=!1;var o=t.extend({},this.workerOptions),r=this._data;"string"==typeof r?(o.request=this.map._requestManager.transformRequest(t.browser.resolveURL(r),t.ResourceType.Source),o.request.collectResourceTiming=this._collectResourceTiming):o.data=JSON.stringify(r),this.actor.send(this.type+".loadData",o,(function(t,r){i._removed||r&&r.abandoned||(i._loaded=!0,r&&r.resourceTiming&&r.resourceTiming[i.id]&&(i._resourceTiming=r.resourceTiming[i.id].slice(0)),i.actor.send(i.type+".coalesce",{source:o.source},null),e(t));}));},i.prototype.loaded=function(){return this._loaded},i.prototype.loadTile=function(e,i){var o=this,r=e.actor?"reloadTile":"loadTile";e.actor=this.actor,e.request=this.actor.send(r,{type:this.type,uid:e.uid,tileID:e.tileID,zoom:e.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:t.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(function(t,a){return delete e.request,e.unloadVectorData(),e.aborted?i(null):t?i(t):(e.loadVectorData(a,o.map.painter,"reloadTile"===r),i(null))}));},i.prototype.abortTile=function(t){t.request&&(t.request.cancel(),delete t.request),t.aborted=!0;},i.prototype.unloadTile=function(t){t.unloadVectorData(),this.actor.send("removeTile",{uid:t.uid,type:this.type,source:this.id});},i.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id});},i.prototype.serialize=function(){return t.extend({},this._options,{type:this.type,data:this._data})},i.prototype.hasTransition=function(){return !1},i}(t.Evented),A=t.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),M=function(e){function i(t,i,o,r){e.call(this),this.id=t,this.dispatcher=o,this.coordinates=i.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(r),this.options=i;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(e,i){var o=this;this._loaded=!1,this.fire(new t.Event("dataloading",{dataType:"source"})),this.url=this.options.url,t.getImage(this.map._requestManager.transformRequest(this.url,t.ResourceType.Image),(function(r,a){o._loaded=!0,r?o.fire(new t.ErrorEvent(r)):a&&(o.image=a,e&&(o.coordinates=e),i&&i(),o._finishLoading());}));},i.prototype.loaded=function(){return this._loaded},i.prototype.updateImage=function(t){var e=this;return this.image&&t.url?(this.options.url=t.url,this.load(t.coordinates,(function(){e.texture=null;})),this):this},i.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"metadata"})));},i.prototype.onAdd=function(t){this.map=t,this.load();},i.prototype.setCoordinates=function(e){var i=this;this.coordinates=e;var o=e.map(t.MercatorCoordinate.fromLngLat);this.tileID=function(e){for(var i=1/0,o=1/0,r=-1/0,a=-1/0,n=0,s=e;n<s.length;n+=1){var l=s[n];i=Math.min(i,l.x),o=Math.min(o,l.y),r=Math.max(r,l.x),a=Math.max(a,l.y);}var c=Math.max(r-i,a-o),u=Math.max(0,Math.floor(-Math.log(c)/Math.LN2)),h=Math.pow(2,u);return new t.CanonicalTileID(u,Math.floor((i+r)/2*h),Math.floor((o+a)/2*h))}(o),this.minzoom=this.maxzoom=this.tileID.z;var r=o.map((function(t){return i.tileID.getTilePoint(t)._round()}));return this._boundsArray=new t.StructArrayLayout4i8,this._boundsArray.emplaceBack(r[0].x,r[0].y,0,0),this._boundsArray.emplaceBack(r[1].x,r[1].y,t.EXTENT,0),this._boundsArray.emplaceBack(r[3].x,r[3].y,0,t.EXTENT),this._boundsArray.emplaceBack(r[2].x,r[2].y,t.EXTENT,t.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new t.Event("data",{dataType:"source",sourceDataType:"content"})),this},i.prototype.prepare=function(){if(0!==Object.keys(this.tiles).length&&this.image){var e=this.map.painter.context,i=e.gl;for(var o in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,A.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new t.Texture(e,this.image,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[o];"loaded"!==r.state&&(r.state="loaded",r.texture=this.texture);}}},i.prototype.loadTile=function(t,e){this.tileID&&this.tileID.equals(t.tileID.canonical)?(this.tiles[String(t.tileID.wrap)]=t,t.buckets={},e(null)):(t.state="errored",e(null));},i.prototype.serialize=function(){return {type:"image",url:this.options.url,coordinates:this.coordinates}},i.prototype.hasTransition=function(){return !1},i}(t.Evented),L=function(e){function i(t,i,o,r){e.call(this,t,i,o,r),this.roundZoom=!0,this.type="video",this.options=i;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(){var e=this;this._loaded=!1;var i=this.options;this.urls=[];for(var o=0,r=i.urls;o<r.length;o+=1)this.urls.push(this.map._requestManager.transformRequest(r[o],t.ResourceType.Source).url);t.getVideo(this.urls,(function(i,o){e._loaded=!0,i?e.fire(new t.ErrorEvent(i)):o&&(e.video=o,e.video.loop=!0,e.video.addEventListener("playing",(function(){e.map.triggerRepaint();})),e.map&&e.video.play(),e._finishLoading());}));},i.prototype.pause=function(){this.video&&this.video.pause();},i.prototype.play=function(){this.video&&this.video.play();},i.prototype.seek=function(e){if(this.video){var i=this.video.seekable;e<i.start(0)||e>i.end(0)?this.fire(new t.ErrorEvent(new t.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+i.start(0)+" and "+i.end(0)+"-second mark."))):this.video.currentTime=e;}},i.prototype.getVideo=function(){return this.video},i.prototype.onAdd=function(t){this.map||(this.map=t,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)));},i.prototype.prepare=function(){if(!(0===Object.keys(this.tiles).length||this.video.readyState<2)){var e=this.map.painter.context,i=e.gl;for(var o in this.boundsBuffer||(this.boundsBuffer=e.createVertexBuffer(this._boundsArray,A.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE),i.texSubImage2D(i.TEXTURE_2D,0,0,0,i.RGBA,i.UNSIGNED_BYTE,this.video)):(this.texture=new t.Texture(e,this.video,i.RGBA),this.texture.bind(i.LINEAR,i.CLAMP_TO_EDGE)),this.tiles){var r=this.tiles[o];"loaded"!==r.state&&(r.state="loaded",r.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"video",urls:this.urls,coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this.video&&!this.video.paused},i}(M),R=function(e){function i(i,o,r,a){e.call(this,i,o,r,a),o.coordinates?Array.isArray(o.coordinates)&&4===o.coordinates.length&&!o.coordinates.some((function(t){return !Array.isArray(t)||2!==t.length||t.some((function(t){return "number"!=typeof t}))}))||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'missing required property "coordinates"'))),o.animate&&"boolean"!=typeof o.animate&&this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'optional "animate" property must be a boolean value'))),o.canvas?"string"==typeof o.canvas||o.canvas instanceof t.window.HTMLCanvasElement||this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new t.ErrorEvent(new t.ValidationError("sources."+i,null,'missing required property "canvas"'))),this.options=o,this.animate=void 0===o.animate||o.animate;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof t.window.HTMLCanvasElement?this.options.canvas:t.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new t.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint();},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1);},this._finishLoading());},i.prototype.getCanvas=function(){return this.canvas},i.prototype.onAdd=function(t){this.map=t,this.load(),this.canvas&&this.animate&&this.play();},i.prototype.onRemove=function(){this.pause();},i.prototype.prepare=function(){var e=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,e=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,e=!0),!this._hasInvalidDimensions()&&0!==Object.keys(this.tiles).length){var i=this.map.painter.context,o=i.gl;for(var r in this.boundsBuffer||(this.boundsBuffer=i.createVertexBuffer(this._boundsArray,A.members)),this.boundsSegments||(this.boundsSegments=t.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(e||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new t.Texture(i,this.canvas,o.RGBA,{premultiply:!0}),this.tiles){var a=this.tiles[r];"loaded"!==a.state&&(a.state="loaded",a.texture=this.texture);}}},i.prototype.serialize=function(){return {type:"canvas",coordinates:this.coordinates}},i.prototype.hasTransition=function(){return this._playing},i.prototype._hasInvalidDimensions=function(){for(var t=0,e=[this.canvas.width,this.canvas.height];t<e.length;t+=1){var i=e[t];if(isNaN(i)||i<=0)return !0}return !1},i}(M),k={vector:S,raster:C,"raster-dem":z,geojson:D,video:L,image:M,canvas:R};function B(e,i){var o=t.identity([]);return t.translate(o,o,[1,1,0]),t.scale(o,o,[.5*e.width,.5*e.height,1]),t.multiply(o,o,e.calculatePosMatrix(i.toUnwrapped()))}function O(t,e,i,o,r,a){var n=function(t,e,i){if(t)for(var o=0,r=t;o<r.length;o+=1){var a=e[r[o]];if(a&&a.source===i&&"fill-extrusion"===a.type)return !0}else for(var n in e){var s=e[n];if(s.source===i&&"fill-extrusion"===s.type)return !0}return !1}(r&&r.layers,e,t.id),s=a.maxPitchScaleFactor(),l=t.tilesIn(o,s,n);l.sort(F);for(var c=[],u=0,h=l;u<h.length;u+=1){var p=h[u];c.push({wrappedTileID:p.tileID.wrapped().key,queryResults:p.tile.queryRenderedFeatures(e,i,t._state,p.queryGeometry,p.cameraQueryGeometry,p.scale,r,a,s,B(t.transform,p.tileID))});}var d=function(t){for(var e={},i={},o=0,r=t;o<r.length;o+=1){var a=r[o],n=a.queryResults,s=a.wrappedTileID,l=i[s]=i[s]||{};for(var c in n)for(var u=n[c],h=l[c]=l[c]||{},p=e[c]=e[c]||[],d=0,_=u;d<_.length;d+=1){var f=_[d];h[f.featureIndex]||(h[f.featureIndex]=!0,p.push(f));}}return e}(c);for(var _ in d)d[_].forEach((function(e){var i=e.feature,o=t.getFeatureState(i.layer["source-layer"],i.id);i.source=i.layer.source,i.layer["source-layer"]&&(i.sourceLayer=i.layer["source-layer"]),i.state=o;}));return d}function F(t,e){var i=t.tileID,o=e.tileID;return i.overscaledZ-o.overscaledZ||i.canonical.y-o.canonical.y||i.wrap-o.wrap||i.canonical.x-o.canonical.x}var U=function(t,e){this.max=t,this.onRemove=e,this.reset();};U.prototype.reset=function(){for(var t in this.data)for(var e=0,i=this.data[t];e<i.length;e+=1){var o=i[e];o.timeout&&clearTimeout(o.timeout),this.onRemove(o.value);}return this.data={},this.order=[],this},U.prototype.add=function(t,e,i){var o=this,r=t.wrapped().key;void 0===this.data[r]&&(this.data[r]=[]);var a={value:e,timeout:void 0};if(void 0!==i&&(a.timeout=setTimeout((function(){o.remove(t,a);}),i)),this.data[r].push(a),this.order.push(r),this.order.length>this.max){var n=this._getAndRemoveByKey(this.order[0]);n&&this.onRemove(n);}return this},U.prototype.has=function(t){return t.wrapped().key in this.data},U.prototype.getAndRemove=function(t){return this.has(t)?this._getAndRemoveByKey(t.wrapped().key):null},U.prototype._getAndRemoveByKey=function(t){var e=this.data[t].shift();return e.timeout&&clearTimeout(e.timeout),0===this.data[t].length&&delete this.data[t],this.order.splice(this.order.indexOf(t),1),e.value},U.prototype.getByKey=function(t){var e=this.data[t];return e?e[0].value:null},U.prototype.get=function(t){return this.has(t)?this.data[t.wrapped().key][0].value:null},U.prototype.remove=function(t,e){if(!this.has(t))return this;var i=t.wrapped().key,o=void 0===e?0:this.data[i].indexOf(e),r=this.data[i][o];return this.data[i].splice(o,1),r.timeout&&clearTimeout(r.timeout),0===this.data[i].length&&delete this.data[i],this.onRemove(r.value),this.order.splice(this.order.indexOf(i),1),this},U.prototype.setMaxSize=function(t){for(this.max=t;this.order.length>this.max;){var e=this._getAndRemoveByKey(this.order[0]);e&&this.onRemove(e);}return this},U.prototype.filter=function(t){var e=[];for(var i in this.data)for(var o=0,r=this.data[i];o<r.length;o+=1){var a=r[o];t(a.value)||e.push(a);}for(var n=0,s=e;n<s.length;n+=1){var l=s[n];this.remove(l.value.tileID,l);}};var N=function(t,e,i){this.context=t;var o=t.gl;this.buffer=o.createBuffer(),this.dynamicDraw=Boolean(i),this.context.unbindVAO(),t.bindElementBuffer.set(this.buffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?o.DYNAMIC_DRAW:o.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;};N.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer);},N.prototype.updateData=function(t){var e=this.context.gl;this.context.unbindVAO(),this.bind(),e.bufferSubData(e.ELEMENT_ARRAY_BUFFER,0,t.arrayBuffer);},N.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);};var Z={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"},q=function(t,e,i,o){this.length=e.length,this.attributes=i,this.itemSize=e.bytesPerElement,this.dynamicDraw=o,this.context=t;var r=t.gl;this.buffer=r.createBuffer(),t.bindVertexBuffer.set(this.buffer),r.bufferData(r.ARRAY_BUFFER,e.arrayBuffer,this.dynamicDraw?r.DYNAMIC_DRAW:r.STATIC_DRAW),this.dynamicDraw||delete e.arrayBuffer;};q.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer);},q.prototype.updateData=function(t){var e=this.context.gl;this.bind(),e.bufferSubData(e.ARRAY_BUFFER,0,t.arrayBuffer);},q.prototype.enableAttributes=function(t,e){for(var i=0;i<this.attributes.length;i++){var o=e.attributes[this.attributes[i].name];void 0!==o&&t.enableVertexAttribArray(o);}},q.prototype.setVertexAttribPointers=function(t,e,i){for(var o=0;o<this.attributes.length;o++){var r=this.attributes[o],a=e.attributes[r.name];void 0!==a&&t.vertexAttribPointer(a,r.components,t[Z[r.type]],!1,this.itemSize,r.offset+this.itemSize*(i||0));}},q.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer);};var j=function(t){this.gl=t.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1;};j.prototype.get=function(){return this.current},j.prototype.set=function(t){},j.prototype.getDefault=function(){return this.default},j.prototype.setDefault=function(){this.set(this.default);};var V=function(e){function i(){e.apply(this,arguments);}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.getDefault=function(){return t.Color.transparent},i.prototype.set=function(t){var e=this.current;(t.r!==e.r||t.g!==e.g||t.b!==e.b||t.a!==e.a||this.dirty)&&(this.gl.clearColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1);},i}(j),G=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return 1},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.clearDepth(t),this.current=t,this.dirty=!1);},e}(j),W=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return 0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.clearStencil(t),this.current=t,this.dirty=!1);},e}(j),X=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return [!0,!0,!0,!0]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||t[3]!==e[3]||this.dirty)&&(this.gl.colorMask(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1);},e}(j),H=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.depthMask(t),this.current=t,this.dirty=!1);},e}(j),K=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return 255},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.stencilMask(t),this.current=t,this.dirty=!1);},e}(j),Y=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return {func:this.gl.ALWAYS,ref:0,mask:255}},e.prototype.set=function(t){var e=this.current;(t.func!==e.func||t.ref!==e.ref||t.mask!==e.mask||this.dirty)&&(this.gl.stencilFunc(t.func,t.ref,t.mask),this.current=t,this.dirty=!1);},e}(j),J=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){var t=this.gl;return [t.KEEP,t.KEEP,t.KEEP]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||this.dirty)&&(this.gl.stencilOp(t[0],t[1],t[2]),this.current=t,this.dirty=!1);},e}(j),Q=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),this.current=t,this.dirty=!1;}},e}(j),$=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return [0,1]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||this.dirty)&&(this.gl.depthRange(t[0],t[1]),this.current=t,this.dirty=!1);},e}(j),tt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),this.current=t,this.dirty=!1;}},e}(j),et=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return this.gl.LESS},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.depthFunc(t),this.current=t,this.dirty=!1);},e}(j),it=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.BLEND):e.disable(e.BLEND),this.current=t,this.dirty=!1;}},e}(j),ot=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){var t=this.gl;return [t.ONE,t.ZERO]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||this.dirty)&&(this.gl.blendFunc(t[0],t[1]),this.current=t,this.dirty=!1);},e}(j),rt=function(e){function i(){e.apply(this,arguments);}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.getDefault=function(){return t.Color.transparent},i.prototype.set=function(t){var e=this.current;(t.r!==e.r||t.g!==e.g||t.b!==e.b||t.a!==e.a||this.dirty)&&(this.gl.blendColor(t.r,t.g,t.b,t.a),this.current=t,this.dirty=!1);},i}(j),at=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return this.gl.FUNC_ADD},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.blendEquation(t),this.current=t,this.dirty=!1);},e}(j),nt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;t?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),this.current=t,this.dirty=!1;}},e}(j),st=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return this.gl.BACK},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.cullFace(t),this.current=t,this.dirty=!1);},e}(j),lt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return this.gl.CCW},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.frontFace(t),this.current=t,this.dirty=!1);},e}(j),ct=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.useProgram(t),this.current=t,this.dirty=!1);},e}(j),ut=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return this.gl.TEXTURE0},e.prototype.set=function(t){(t!==this.current||this.dirty)&&(this.gl.activeTexture(t),this.current=t,this.dirty=!1);},e}(j),ht=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){var t=this.gl;return [0,0,t.drawingBufferWidth,t.drawingBufferHeight]},e.prototype.set=function(t){var e=this.current;(t[0]!==e[0]||t[1]!==e[1]||t[2]!==e[2]||t[3]!==e[3]||this.dirty)&&(this.gl.viewport(t[0],t[1],t[2],t[3]),this.current=t,this.dirty=!1);},e}(j),pt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindFramebuffer(e.FRAMEBUFFER,t),this.current=t,this.dirty=!1;}},e}(j),dt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindRenderbuffer(e.RENDERBUFFER,t),this.current=t,this.dirty=!1;}},e}(j),_t=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindTexture(e.TEXTURE_2D,t),this.current=t,this.dirty=!1;}},e}(j),ft=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.bindBuffer(e.ARRAY_BUFFER,t),this.current=t,this.dirty=!1;}},e}(j),mt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){var e=this.gl;e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t),this.current=t,this.dirty=!1;},e}(j),gt=function(t){function e(e){t.call(this,e),this.vao=e.extVertexArrayObject;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e.prototype.set=function(t){this.vao&&(t!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(t),this.current=t,this.dirty=!1);},e}(j),vt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return 4},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_ALIGNMENT,t),this.current=t,this.dirty=!1;}},e}(j),yt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t),this.current=t,this.dirty=!1;}},e}(j),xt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return !1},e.prototype.set=function(t){if(t!==this.current||this.dirty){var e=this.gl;e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,t),this.current=t,this.dirty=!1;}},e}(j),bt=function(t){function e(e,i){t.call(this,e),this.context=e,this.parent=i;}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.getDefault=function(){return null},e}(j),wt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.setDirty=function(){this.dirty=!0;},e.prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0),this.current=t,this.dirty=!1;}},e}(bt),Tt=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.set=function(t){if(t!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var e=this.gl;e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_ATTACHMENT,e.RENDERBUFFER,t),this.current=t,this.dirty=!1;}},e}(bt),Et=function(t,e,i,o){this.context=t,this.width=e,this.height=i;var r=this.framebuffer=t.gl.createFramebuffer();this.colorAttachment=new wt(t,r),o&&(this.depthAttachment=new Tt(t,r));};Et.prototype.destroy=function(){var t=this.context.gl,e=this.colorAttachment.get();if(e&&t.deleteTexture(e),this.depthAttachment){var i=this.depthAttachment.get();i&&t.deleteRenderbuffer(i);}t.deleteFramebuffer(this.framebuffer);};var It=function(t,e,i){this.func=t,this.mask=e,this.range=i;};It.ReadOnly=!1,It.ReadWrite=!0,It.disabled=new It(519,It.ReadOnly,[0,1]);var Pt=function(t,e,i,o,r,a){this.test=t,this.ref=e,this.mask=i,this.fail=o,this.depthFail=r,this.pass=a;};Pt.disabled=new Pt({func:519,mask:0},0,0,7680,7680,7680);var St=function(t,e,i){this.blendFunction=t,this.blendColor=e,this.mask=i;};St.disabled=new St(St.Replace=[1,0],t.Color.transparent,[!1,!1,!1,!1]),St.unblended=new St(St.Replace,t.Color.transparent,[!0,!0,!0,!0]),St.alphaBlended=new St([1,771],t.Color.transparent,[!0,!0,!0,!0]);var Ct=function(t,e,i){this.enable=t,this.mode=e,this.frontFace=i;};Ct.disabled=new Ct(!1,1029,2305),Ct.backCCW=new Ct(!0,1029,2305);var zt=function(t){this.gl=t,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),this.clearColor=new V(this),this.clearDepth=new G(this),this.clearStencil=new W(this),this.colorMask=new X(this),this.depthMask=new H(this),this.stencilMask=new K(this),this.stencilFunc=new Y(this),this.stencilOp=new J(this),this.stencilTest=new Q(this),this.depthRange=new $(this),this.depthTest=new tt(this),this.depthFunc=new et(this),this.blend=new it(this),this.blendFunc=new ot(this),this.blendColor=new rt(this),this.blendEquation=new at(this),this.cullFace=new nt(this),this.cullFaceSide=new st(this),this.frontFace=new lt(this),this.program=new ct(this),this.activeTexture=new ut(this),this.viewport=new ht(this),this.bindFramebuffer=new pt(this),this.bindRenderbuffer=new dt(this),this.bindTexture=new _t(this),this.bindVertexBuffer=new ft(this),this.bindElementBuffer=new mt(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new gt(this),this.pixelStoreUnpack=new vt(this),this.pixelStoreUnpackPremultiplyAlpha=new yt(this),this.pixelStoreUnpackFlipY=new xt(this),this.extTextureFilterAnisotropic=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=t.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=t.getExtension("OES_texture_half_float"),this.extTextureHalfFloat&&(t.getExtension("OES_texture_half_float_linear"),this.extRenderToTextureHalfFloat=t.getExtension("EXT_color_buffer_half_float")),this.extTimerQuery=t.getExtension("EXT_disjoint_timer_query"),this.maxTextureSize=t.getParameter(t.MAX_TEXTURE_SIZE);};zt.prototype.setDefault=function(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault();},zt.prototype.setDirty=function(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0;},zt.prototype.createIndexBuffer=function(t,e){return new N(this,t,e)},zt.prototype.createVertexBuffer=function(t,e,i){return new q(this,t,e,i)},zt.prototype.createRenderbuffer=function(t,e,i){var o=this.gl,r=o.createRenderbuffer();return this.bindRenderbuffer.set(r),o.renderbufferStorage(o.RENDERBUFFER,t,e,i),this.bindRenderbuffer.set(null),r},zt.prototype.createFramebuffer=function(t,e,i){return new Et(this,t,e,i)},zt.prototype.clear=function(t){var e=t.color,i=t.depth,o=this.gl,r=0;e&&(r|=o.COLOR_BUFFER_BIT,this.clearColor.set(e),this.colorMask.set([!0,!0,!0,!0])),void 0!==i&&(r|=o.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(i),this.depthMask.set(!0)),o.clear(r);},zt.prototype.setCullFace=function(t){!1===t.enable?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(t.mode),this.frontFace.set(t.frontFace));},zt.prototype.setDepthMode=function(t){t.func!==this.gl.ALWAYS||t.mask?(this.depthTest.set(!0),this.depthFunc.set(t.func),this.depthMask.set(t.mask),this.depthRange.set(t.range)):this.depthTest.set(!1);},zt.prototype.setStencilMode=function(t){t.test.func!==this.gl.ALWAYS||t.mask?(this.stencilTest.set(!0),this.stencilMask.set(t.mask),this.stencilOp.set([t.fail,t.depthFail,t.pass]),this.stencilFunc.set({func:t.test.func,ref:t.ref,mask:t.test.mask})):this.stencilTest.set(!1);},zt.prototype.setColorMode=function(e){t.deepEqual(e.blendFunction,St.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(e.blendFunction),this.blendColor.set(e.blendColor)),this.colorMask.set(e.mask);},zt.prototype.unbindVAO=function(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null);};var Dt=function(e){function i(i,o,r){var a=this;e.call(this),this.id=i,this.dispatcher=r,this.on("data",(function(t){"source"===t.dataType&&"metadata"===t.sourceDataType&&(a._sourceLoaded=!0),a._sourceLoaded&&!a._paused&&"source"===t.dataType&&"content"===t.sourceDataType&&(a.reload(),a.transform&&a.update(a.transform));})),this.on("error",(function(){a._sourceErrored=!0;})),this._source=function(e,i,o,r){var a=new k[i.type](e,i,o,r);if(a.id!==e)throw new Error("Expected Source id to be "+e+" instead of "+a.id);return t.bindAll(["load","abort","unload","serialize","prepare"],a),a}(i,o,r,this),this._tiles={},this._cache=new U(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new t.SourceFeatureState;}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.onAdd=function(t){this.map=t,this._maxTileCacheSize=t?t._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(t);},i.prototype.onRemove=function(t){this._source&&this._source.onRemove&&this._source.onRemove(t);},i.prototype.loaded=function(){if(this._sourceErrored)return !0;if(!this._sourceLoaded)return !1;if(!this._source.loaded())return !1;for(var t in this._tiles){var e=this._tiles[t];if("loaded"!==e.state&&"errored"!==e.state)return !1}return !0},i.prototype.getSource=function(){return this._source},i.prototype.pause=function(){this._paused=!0;},i.prototype.resume=function(){if(this._paused){var t=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,t&&this.reload(),this.transform&&this.update(this.transform);}},i.prototype._loadTile=function(t,e){return this._source.loadTile(t,e)},i.prototype._unloadTile=function(t){if(this._source.unloadTile)return this._source.unloadTile(t,(function(){}))},i.prototype._abortTile=function(t){if(this._source.abortTile)return this._source.abortTile(t,(function(){}))},i.prototype.serialize=function(){return this._source.serialize()},i.prototype.prepare=function(t){for(var e in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){var i=this._tiles[e];i.upload(t),i.prepare(this.map.style.imageManager);}},i.prototype.getIds=function(){return t.values(this._tiles).map((function(t){return t.tileID})).sort(At).map((function(t){return t.key}))},i.prototype.getRenderableIds=function(e){var i=this,o=[];for(var r in this._tiles)this._isIdRenderable(r,e)&&o.push(this._tiles[r]);return e?o.sort((function(e,o){var r=e.tileID,a=o.tileID,n=new t.Point(r.canonical.x,r.canonical.y)._rotate(i.transform.angle),s=new t.Point(a.canonical.x,a.canonical.y)._rotate(i.transform.angle);return r.overscaledZ-a.overscaledZ||s.y-n.y||s.x-n.x})).map((function(t){return t.tileID.key})):o.map((function(t){return t.tileID})).sort(At).map((function(t){return t.key}))},i.prototype.hasRenderableParent=function(t){var e=this.findLoadedParent(t,0);return !!e&&this._isIdRenderable(e.tileID.key)},i.prototype._isIdRenderable=function(t,e){return this._tiles[t]&&this._tiles[t].hasData()&&!this._coveredTiles[t]&&(e||!this._tiles[t].holdingForFade())},i.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var t in this._cache.reset(),this._tiles)"errored"!==this._tiles[t].state&&this._reloadTile(t,"reloading");},i.prototype._reloadTile=function(t,e){var i=this._tiles[t];i&&("loading"!==i.state&&(i.state=e),this._loadTile(i,this._tileLoaded.bind(this,i,t,e)));},i.prototype._tileLoaded=function(e,i,o,r){if(r)return e.state="errored",void(404!==r.status?this._source.fire(new t.ErrorEvent(r,{tile:e})):this.update(this.transform));e.timeAdded=t.browser.now(),"expired"===o&&(e.refreshedUponExpiration=!0),this._setTileReloadTimer(i,e),"raster-dem"===this.getSource().type&&e.dem&&this._backfillDEM(e),this._state.initializeTileState(e,this.map?this.map.painter:null),this._source.fire(new t.Event("data",{dataType:"source",tile:e,coord:e.tileID}));},i.prototype._backfillDEM=function(t){for(var e=this.getRenderableIds(),i=0;i<e.length;i++){var o=e[i];if(t.neighboringTiles&&t.neighboringTiles[o]){var r=this.getTileByID(o);a(t,r),a(r,t);}}function a(t,e){t.needsHillshadePrepare=!0;var i=e.tileID.canonical.x-t.tileID.canonical.x,o=e.tileID.canonical.y-t.tileID.canonical.y,r=Math.pow(2,t.tileID.canonical.z),a=e.tileID.key;0===i&&0===o||Math.abs(o)>1||(Math.abs(i)>1&&(1===Math.abs(i+r)?i+=r:1===Math.abs(i-r)&&(i-=r)),e.dem&&t.dem&&(t.dem.backfillBorder(e.dem,i,o),t.neighboringTiles&&t.neighboringTiles[a]&&(t.neighboringTiles[a].backfilled=!0)));}},i.prototype.getTile=function(t){return this.getTileByID(t.key)},i.prototype.getTileByID=function(t){return this._tiles[t]},i.prototype._retainLoadedChildren=function(t,e,i,o){for(var r in this._tiles){var a=this._tiles[r];if(!(o[r]||!a.hasData()||a.tileID.overscaledZ<=e||a.tileID.overscaledZ>i)){for(var n=a.tileID;a&&a.tileID.overscaledZ>e+1;){var s=a.tileID.scaledTo(a.tileID.overscaledZ-1);(a=this._tiles[s.key])&&a.hasData()&&(n=s);}for(var l=n;l.overscaledZ>e;)if(t[(l=l.scaledTo(l.overscaledZ-1)).key]){o[n.key]=n;break}}}},i.prototype.findLoadedParent=function(t,e){if(t.key in this._loadedParentTiles){var i=this._loadedParentTiles[t.key];return i&&i.tileID.overscaledZ>=e?i:null}for(var o=t.overscaledZ-1;o>=e;o--){var r=t.scaledTo(o),a=this._getLoadedTile(r);if(a)return a}},i.prototype._getLoadedTile=function(t){var e=this._tiles[t.key];return e&&e.hasData()?e:this._cache.getByKey(t.wrapped().key)},i.prototype.updateCacheSize=function(t){var e=Math.ceil(t.width/this._source.tileSize)+1,i=Math.ceil(t.height/this._source.tileSize)+1,o=Math.floor(e*i*5),r="number"==typeof this._maxTileCacheSize?Math.min(this._maxTileCacheSize,o):o;this._cache.setMaxSize(r);},i.prototype.handleWrapJump=function(t){var e=Math.round((t-(void 0===this._prevLng?t:this._prevLng))/360);if(this._prevLng=t,e){var i={};for(var o in this._tiles){var r=this._tiles[o];r.tileID=r.tileID.unwrapTo(r.tileID.wrap+e),i[r.tileID.key]=r;}for(var a in this._tiles=i,this._timers)clearTimeout(this._timers[a]),delete this._timers[a];for(var n in this._tiles)this._setTileReloadTimer(n,this._tiles[n]);}},i.prototype.update=function(e){var o=this;if(this.transform=e,this._sourceLoaded&&!this._paused){var r;this.updateCacheSize(e),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?r=e.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(e){return new t.OverscaledTileID(e.canonical.z,e.wrap,e.canonical.z,e.canonical.x,e.canonical.y)})):(r=e.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(r=r.filter((function(t){return o._source.hasTile(t)})))):r=[];var a=e.coveringZoomLevel(this._source),n=Math.max(a-i.maxOverzooming,this._source.minzoom),s=Math.max(a+i.maxUnderzooming,this._source.minzoom),l=this._updateRetainedTiles(r,a);if(Mt(this._source.type)){for(var c={},u={},h=0,p=Object.keys(l);h<p.length;h+=1){var d=p[h],_=l[d],f=this._tiles[d];if(f&&!(f.fadeEndTime&&f.fadeEndTime<=t.browser.now())){var m=this.findLoadedParent(_,n);m&&(this._addTile(m.tileID),c[m.tileID.key]=m.tileID),u[d]=_;}}for(var g in this._retainLoadedChildren(u,a,s,l),c)l[g]||(this._coveredTiles[g]=!0,l[g]=c[g]);}for(var v in l)this._tiles[v].clearFadeHold();for(var y=0,x=t.keysDifference(this._tiles,l);y<x.length;y+=1){var b=x[y],w=this._tiles[b];w.hasSymbolBuckets&&!w.holdingForFade()?w.setHoldDuration(this.map._fadeDuration):w.hasSymbolBuckets&&!w.symbolFadeFinished()||this._removeTile(b);}this._updateLoadedParentTileCache();}},i.prototype.releaseSymbolFadeTiles=function(){for(var t in this._tiles)this._tiles[t].holdingForFade()&&this._removeTile(t);},i.prototype._updateRetainedTiles=function(t,e){for(var o={},r={},a=Math.max(e-i.maxOverzooming,this._source.minzoom),n=Math.max(e+i.maxUnderzooming,this._source.minzoom),s={},l=0,c=t;l<c.length;l+=1){var u=c[l],h=this._addTile(u);o[u.key]=u,h.hasData()||e<this._source.maxzoom&&(s[u.key]=u);}this._retainLoadedChildren(s,e,n,o);for(var p=0,d=t;p<d.length;p+=1){var _=d[p],f=this._tiles[_.key];if(!f.hasData()){if(e+1>this._source.maxzoom){var m=_.children(this._source.maxzoom)[0],g=this.getTile(m);if(g&&g.hasData()){o[m.key]=m;continue}}else {var v=_.children(this._source.maxzoom);if(o[v[0].key]&&o[v[1].key]&&o[v[2].key]&&o[v[3].key])continue}for(var y=f.wasRequested(),x=_.overscaledZ-1;x>=a;--x){var b=_.scaledTo(x);if(r[b.key])break;if(r[b.key]=!0,!(f=this.getTile(b))&&y&&(f=this._addTile(b)),f&&(o[b.key]=b,y=f.wasRequested(),f.hasData()))break}}}return o},i.prototype._updateLoadedParentTileCache=function(){for(var t in this._loadedParentTiles={},this._tiles){for(var e=[],i=void 0,o=this._tiles[t].tileID;o.overscaledZ>0;){if(o.key in this._loadedParentTiles){i=this._loadedParentTiles[o.key];break}e.push(o.key);var r=o.scaledTo(o.overscaledZ-1);if(i=this._getLoadedTile(r))break;o=r;}for(var a=0,n=e;a<n.length;a+=1)this._loadedParentTiles[n[a]]=i;}},i.prototype._addTile=function(e){var i=this._tiles[e.key];if(i)return i;(i=this._cache.getAndRemove(e))&&(this._setTileReloadTimer(e.key,i),i.tileID=e,this._state.initializeTileState(i,this.map?this.map.painter:null),this._cacheTimers[e.key]&&(clearTimeout(this._cacheTimers[e.key]),delete this._cacheTimers[e.key],this._setTileReloadTimer(e.key,i)));var o=Boolean(i);return o||(i=new t.Tile(e,this._source.tileSize*e.overscaleFactor()),this._loadTile(i,this._tileLoaded.bind(this,i,e.key,i.state))),i?(i.uses++,this._tiles[e.key]=i,o||this._source.fire(new t.Event("dataloading",{tile:i,coord:i.tileID,dataType:"source"})),i):null},i.prototype._setTileReloadTimer=function(t,e){var i=this;t in this._timers&&(clearTimeout(this._timers[t]),delete this._timers[t]);var o=e.getExpiryTimeout();o&&(this._timers[t]=setTimeout((function(){i._reloadTile(t,"expired"),delete i._timers[t];}),o));},i.prototype._removeTile=function(t){var e=this._tiles[t];e&&(e.uses--,delete this._tiles[t],this._timers[t]&&(clearTimeout(this._timers[t]),delete this._timers[t]),e.uses>0||(e.hasData()&&"reloading"!==e.state?this._cache.add(e.tileID,e,e.getExpiryTimeout()):(e.aborted=!0,this._abortTile(e),this._unloadTile(e))));},i.prototype.clearTiles=function(){for(var t in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(t);this._cache.reset();},i.prototype.tilesIn=function(e,i,o){var r=this,a=[],n=this.transform;if(!n)return a;for(var s=o?n.getCameraQueryGeometry(e):e,l=e.map((function(t){return n.pointCoordinate(t)})),c=s.map((function(t){return n.pointCoordinate(t)})),u=this.getIds(),h=1/0,p=1/0,d=-1/0,_=-1/0,f=0,m=c;f<m.length;f+=1){var g=m[f];h=Math.min(h,g.x),p=Math.min(p,g.y),d=Math.max(d,g.x),_=Math.max(_,g.y);}for(var v=function(e){var o=r._tiles[u[e]];if(!o.holdingForFade()){var s=o.tileID,f=Math.pow(2,n.zoom-o.tileID.overscaledZ),m=i*o.queryPadding*t.EXTENT/o.tileSize/f,g=[s.getTilePoint(new t.MercatorCoordinate(h,p)),s.getTilePoint(new t.MercatorCoordinate(d,_))];if(g[0].x-m<t.EXTENT&&g[0].y-m<t.EXTENT&&g[1].x+m>=0&&g[1].y+m>=0){var v=l.map((function(t){return s.getTilePoint(t)})),y=c.map((function(t){return s.getTilePoint(t)}));a.push({tile:o,tileID:s,queryGeometry:v,cameraQueryGeometry:y,scale:f});}}},y=0;y<u.length;y++)v(y);return a},i.prototype.getVisibleCoordinates=function(t){for(var e=this,i=this.getRenderableIds(t).map((function(t){return e._tiles[t].tileID})),o=0,r=i;o<r.length;o+=1){var a=r[o];a.posMatrix=this.transform.calculatePosMatrix(a.toUnwrapped());}return i},i.prototype.hasTransition=function(){if(this._source.hasTransition())return !0;if(Mt(this._source.type))for(var e in this._tiles){var i=this._tiles[e];if(void 0!==i.fadeEndTime&&i.fadeEndTime>=t.browser.now())return !0}return !1},i.prototype.setFeatureState=function(t,e,i){this._state.updateState(t=t||"_geojsonTileLayer",e,i);},i.prototype.removeFeatureState=function(t,e,i){this._state.removeFeatureState(t=t||"_geojsonTileLayer",e,i);},i.prototype.getFeatureState=function(t,e){return this._state.getState(t=t||"_geojsonTileLayer",e)},i.prototype.setDependencies=function(t,e,i){var o=this._tiles[t];o&&o.setDependencies(e,i);},i.prototype.reloadTilesForDependencies=function(t,e){for(var i in this._tiles)this._tiles[i].hasDependency(t,e)&&this._reloadTile(i,"reloading");this._cache.filter((function(i){return !i.hasDependency(t,e)}));},i}(t.Evented);function At(t,e){var i=Math.abs(2*t.wrap)-+(t.wrap<0),o=Math.abs(2*e.wrap)-+(e.wrap<0);return t.overscaledZ-e.overscaledZ||o-i||e.canonical.y-t.canonical.y||e.canonical.x-t.canonical.x}function Mt(t){return "raster"===t||"image"===t||"video"===t}function Lt(){return new t.window.Worker(Kr.workerUrl)}Dt.maxOverzooming=10,Dt.maxUnderzooming=3;var Rt="mapboxgl_preloaded_worker_pool",kt=function(){this.active={};};kt.prototype.acquire=function(t){if(!this.workers)for(this.workers=[];this.workers.length<kt.workerCount;)this.workers.push(new Lt);return this.active[t]=!0,this.workers.slice()},kt.prototype.release=function(t){delete this.active[t],0===this.numActive()&&(this.workers.forEach((function(t){t.terminate();})),this.workers=null);},kt.prototype.isPreloaded=function(){return !!this.active[Rt]},kt.prototype.numActive=function(){return Object.keys(this.active).length};var Bt,Ot=Math.floor(t.browser.hardwareConcurrency/2);function Ft(){return Bt||(Bt=new kt),Bt}function Ut(e,i){var o={};for(var r in e)"ref"!==r&&(o[r]=e[r]);return t.refProperties.forEach((function(t){t in i&&(o[t]=i[t]);})),o}function Nt(t){t=t.slice();for(var e=Object.create(null),i=0;i<t.length;i++)e[t[i].id]=t[i];for(var o=0;o<t.length;o++)"ref"in t[o]&&(t[o]=Ut(t[o],e[t[o].ref]));return t}kt.workerCount=Math.max(Math.min(Ot,6),1);var Zt={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight"};function qt(t,e,i){i.push({command:Zt.addSource,args:[t,e[t]]});}function jt(t,e,i){e.push({command:Zt.removeSource,args:[t]}),i[t]=!0;}function Vt(t,e,i,o){jt(t,i,o),qt(t,e,i);}function Gt(e,i,o){var r;for(r in e[o])if(e[o].hasOwnProperty(r)&&"data"!==r&&!t.deepEqual(e[o][r],i[o][r]))return !1;for(r in i[o])if(i[o].hasOwnProperty(r)&&"data"!==r&&!t.deepEqual(e[o][r],i[o][r]))return !1;return !0}function Wt(e,i,o,r,a,n){var s;for(s in i=i||{},e=e||{})e.hasOwnProperty(s)&&(t.deepEqual(e[s],i[s])||o.push({command:n,args:[r,s,i[s],a]}));for(s in i)i.hasOwnProperty(s)&&!e.hasOwnProperty(s)&&(t.deepEqual(e[s],i[s])||o.push({command:n,args:[r,s,i[s],a]}));}function Xt(t){return t.id}function Ht(t,e){return t[e.id]=e,t}var Kt=function(t,e){this.reset(t,e);};Kt.prototype.reset=function(t,e){this.points=t||[],this._distances=[0];for(var i=1;i<this.points.length;i++)this._distances[i]=this._distances[i-1]+this.points[i].dist(this.points[i-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(e||0,.5*this.length),this.paddedLength=this.length-2*this.padding;},Kt.prototype.lerp=function(e){if(1===this.points.length)return this.points[0];e=t.clamp(e,0,1);for(var i=1,o=this._distances[i],r=e*this.paddedLength+this.padding;o<r&&i<this._distances.length;)o=this._distances[++i];var a=i-1,n=this._distances[a],s=o-n,l=s>0?(r-n)/s:0;return this.points[a].mult(1-l).add(this.points[i].mult(l))};var Yt=function(t,e,i){var o=this.boxCells=[],r=this.circleCells=[];this.xCellCount=Math.ceil(t/i),this.yCellCount=Math.ceil(e/i);for(var a=0;a<this.xCellCount*this.yCellCount;a++)o.push([]),r.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=t,this.height=e,this.xScale=this.xCellCount/t,this.yScale=this.yCellCount/e,this.boxUid=0,this.circleUid=0;};function Jt(e,i,o,r,a){var n=t.create();return i?(t.scale(n,n,[1/a,1/a,1]),o||t.rotateZ(n,n,r.angle)):t.multiply(n,r.labelPlaneMatrix,e),n}function Qt(e,i,o,r,a){if(i){var n=t.clone(e);return t.scale(n,n,[a,a,1]),o||t.rotateZ(n,n,-r.angle),n}return r.glCoordMatrix}function $t(e,i){var o=[e.x,e.y,0,1];ue(o,o,i);var r=o[3];return {point:new t.Point(o[0]/r,o[1]/r),signedDistanceFromCamera:r}}function te(t,e){return .5+t/e*.5}function ee(t,e){var i=t[0]/t[3],o=t[1]/t[3];return i>=-e[0]&&i<=e[0]&&o>=-e[1]&&o<=e[1]}function ie(e,i,o,r,a,n,s,l){var c=r?e.textSizeData:e.iconSizeData,u=t.evaluateSizeForZoom(c,o.transform.zoom),h=[256/o.width*2+1,256/o.height*2+1],p=r?e.text.dynamicLayoutVertexArray:e.icon.dynamicLayoutVertexArray;p.clear();for(var d=e.lineVertexArray,_=r?e.text.placedSymbolArray:e.icon.placedSymbolArray,f=o.transform.width/o.transform.height,m=!1,g=0;g<_.length;g++){var v=_.get(g);if(v.hidden||v.writingMode===t.WritingMode.vertical&&!m)ce(v.numGlyphs,p);else {m=!1;var y=[v.anchorX,v.anchorY,0,1];if(t.transformMat4(y,y,i),ee(y,h)){var x=te(o.transform.cameraToCenterDistance,y[3]),b=t.evaluateSizeForFeature(c,u,v),w=s?b/x:b*x,T=new t.Point(v.anchorX,v.anchorY),E=$t(T,a).point,I={},P=ae(v,w,!1,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f);m=P.useVertical,(P.notEnoughRoom||m||P.needsFlipping&&ae(v,w,!0,l,i,a,n,e.glyphOffsetArray,d,p,E,T,I,f).notEnoughRoom)&&ce(v.numGlyphs,p);}else ce(v.numGlyphs,p);}}r?e.text.dynamicLayoutVertexBuffer.updateData(p):e.icon.dynamicLayoutVertexBuffer.updateData(p);}function oe(t,e,i,o,r,a,n,s,l,c,u){var h=s.glyphStartIndex+s.numGlyphs,p=s.lineStartIndex,d=s.lineStartIndex+s.lineLength,_=e.getoffsetX(s.glyphStartIndex),f=e.getoffsetX(h-1),m=se(t*_,i,o,r,a,n,s.segment,p,d,l,c,u);if(!m)return null;var g=se(t*f,i,o,r,a,n,s.segment,p,d,l,c,u);return g?{first:m,last:g}:null}function re(e,i,o,r){return e===t.WritingMode.horizontal&&Math.abs(o.y-i.y)>Math.abs(o.x-i.x)*r?{useVertical:!0}:(e===t.WritingMode.vertical?i.y<o.y:i.x>o.x)?{needsFlipping:!0}:null}function ae(e,i,o,r,a,n,s,l,c,u,h,p,d,_){var f,m=i/24,g=e.lineOffsetX*m,v=e.lineOffsetY*m;if(e.numGlyphs>1){var y=e.glyphStartIndex+e.numGlyphs,x=e.lineStartIndex,b=e.lineStartIndex+e.lineLength,w=oe(m,l,g,v,o,h,p,e,c,n,d);if(!w)return {notEnoughRoom:!0};var T=$t(w.first.point,s).point,E=$t(w.last.point,s).point;if(r&&!o){var I=re(e.writingMode,T,E,_);if(I)return I}f=[w.first];for(var P=e.glyphStartIndex+1;P<y-1;P++)f.push(se(m*l.getoffsetX(P),g,v,o,h,p,e.segment,x,b,c,n,d));f.push(w.last);}else {if(r&&!o){var S=$t(p,a).point,C=e.lineStartIndex+e.segment+1,z=new t.Point(c.getx(C),c.gety(C)),D=$t(z,a),A=D.signedDistanceFromCamera>0?D.point:ne(p,z,S,1,a),M=re(e.writingMode,S,A,_);if(M)return M}var L=se(m*l.getoffsetX(e.glyphStartIndex),g,v,o,h,p,e.segment,e.lineStartIndex,e.lineStartIndex+e.lineLength,c,n,d);if(!L)return {notEnoughRoom:!0};f=[L];}for(var R=0,k=f;R<k.length;R+=1){var B=k[R];t.addDynamicAttributes(u,B.point,B.angle);}return {}}function ne(t,e,i,o,r){var a=$t(t.add(t.sub(e)._unit()),r).point,n=i.sub(a);return i.add(n._mult(o/n.mag()))}function se(e,i,o,r,a,n,s,l,c,u,h,p){var d=r?e-i:e+i,_=d>0?1:-1,f=0;r&&(_*=-1,f=Math.PI),_<0&&(f+=Math.PI);for(var m=_>0?l+s:l+s+1,g=a,v=a,y=0,x=0,b=Math.abs(d),w=[];y+x<=b;){if((m+=_)<l||m>=c)return null;if(v=g,w.push(g),void 0===(g=p[m])){var T=new t.Point(u.getx(m),u.gety(m)),E=$t(T,h);if(E.signedDistanceFromCamera>0)g=p[m]=E.point;else {var I=m-_;g=ne(0===y?n:new t.Point(u.getx(I),u.gety(I)),T,v,b-y+1,h);}}y+=x,x=v.dist(g);}var P=(b-y)/x,S=g.sub(v),C=S.mult(P)._add(v);C._add(S._unit()._perp()._mult(o*_));var z=f+Math.atan2(g.y-v.y,g.x-v.x);return w.push(C),{point:C,angle:z,path:w}}Yt.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},Yt.prototype.insert=function(t,e,i,o,r){this._forEachCell(e,i,o,r,this._insertBoxCell,this.boxUid++),this.boxKeys.push(t),this.bboxes.push(e),this.bboxes.push(i),this.bboxes.push(o),this.bboxes.push(r);},Yt.prototype.insertCircle=function(t,e,i,o){this._forEachCell(e-o,i-o,e+o,i+o,this._insertCircleCell,this.circleUid++),this.circleKeys.push(t),this.circles.push(e),this.circles.push(i),this.circles.push(o);},Yt.prototype._insertBoxCell=function(t,e,i,o,r,a){this.boxCells[r].push(a);},Yt.prototype._insertCircleCell=function(t,e,i,o,r,a){this.circleCells[r].push(a);},Yt.prototype._query=function(t,e,i,o,r,a){if(i<0||t>this.width||o<0||e>this.height)return !r&&[];var n=[];if(t<=0&&e<=0&&this.width<=i&&this.height<=o){if(r)return !0;for(var s=0;s<this.boxKeys.length;s++)n.push({key:this.boxKeys[s],x1:this.bboxes[4*s],y1:this.bboxes[4*s+1],x2:this.bboxes[4*s+2],y2:this.bboxes[4*s+3]});for(var l=0;l<this.circleKeys.length;l++){var c=this.circles[3*l],u=this.circles[3*l+1],h=this.circles[3*l+2];n.push({key:this.circleKeys[l],x1:c-h,y1:u-h,x2:c+h,y2:u+h});}return a?n.filter(a):n}return this._forEachCell(t,e,i,o,this._queryCell,n,{hitTest:r,seenUids:{box:{},circle:{}}},a),r?n.length>0:n},Yt.prototype._queryCircle=function(t,e,i,o,r){var a=t-i,n=t+i,s=e-i,l=e+i;if(n<0||a>this.width||l<0||s>this.height)return !o&&[];var c=[];return this._forEachCell(a,s,n,l,this._queryCellCircle,c,{hitTest:o,circle:{x:t,y:e,radius:i},seenUids:{box:{},circle:{}}},r),o?c.length>0:c},Yt.prototype.query=function(t,e,i,o,r){return this._query(t,e,i,o,!1,r)},Yt.prototype.hitTest=function(t,e,i,o,r){return this._query(t,e,i,o,!0,r)},Yt.prototype.hitTestCircle=function(t,e,i,o){return this._queryCircle(t,e,i,!0,o)},Yt.prototype._queryCell=function(t,e,i,o,r,a,n,s){var l=n.seenUids,c=this.boxCells[r];if(null!==c)for(var u=this.bboxes,h=0,p=c;h<p.length;h+=1){var d=p[h];if(!l.box[d]){l.box[d]=!0;var _=4*d;if(t<=u[_+2]&&e<=u[_+3]&&i>=u[_+0]&&o>=u[_+1]&&(!s||s(this.boxKeys[d]))){if(n.hitTest)return a.push(!0),!0;a.push({key:this.boxKeys[d],x1:u[_],y1:u[_+1],x2:u[_+2],y2:u[_+3]});}}}var f=this.circleCells[r];if(null!==f)for(var m=this.circles,g=0,v=f;g<v.length;g+=1){var y=v[g];if(!l.circle[y]){l.circle[y]=!0;var x=3*y;if(this._circleAndRectCollide(m[x],m[x+1],m[x+2],t,e,i,o)&&(!s||s(this.circleKeys[y]))){if(n.hitTest)return a.push(!0),!0;var b=m[x],w=m[x+1],T=m[x+2];a.push({key:this.circleKeys[y],x1:b-T,y1:w-T,x2:b+T,y2:w+T});}}}},Yt.prototype._queryCellCircle=function(t,e,i,o,r,a,n,s){var l=n.circle,c=n.seenUids,u=this.boxCells[r];if(null!==u)for(var h=this.bboxes,p=0,d=u;p<d.length;p+=1){var _=d[p];if(!c.box[_]){c.box[_]=!0;var f=4*_;if(this._circleAndRectCollide(l.x,l.y,l.radius,h[f+0],h[f+1],h[f+2],h[f+3])&&(!s||s(this.boxKeys[_])))return a.push(!0),!0}}var m=this.circleCells[r];if(null!==m)for(var g=this.circles,v=0,y=m;v<y.length;v+=1){var x=y[v];if(!c.circle[x]){c.circle[x]=!0;var b=3*x;if(this._circlesCollide(g[b],g[b+1],g[b+2],l.x,l.y,l.radius)&&(!s||s(this.circleKeys[x])))return a.push(!0),!0}}},Yt.prototype._forEachCell=function(t,e,i,o,r,a,n,s){for(var l=this._convertToXCellCoord(t),c=this._convertToYCellCoord(e),u=this._convertToXCellCoord(i),h=this._convertToYCellCoord(o),p=l;p<=u;p++)for(var d=c;d<=h;d++)if(r.call(this,t,e,i,o,this.xCellCount*d+p,a,n,s))return},Yt.prototype._convertToXCellCoord=function(t){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(t*this.xScale)))},Yt.prototype._convertToYCellCoord=function(t){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(t*this.yScale)))},Yt.prototype._circlesCollide=function(t,e,i,o,r,a){var n=o-t,s=r-e,l=i+a;return l*l>n*n+s*s},Yt.prototype._circleAndRectCollide=function(t,e,i,o,r,a,n){var s=(a-o)/2,l=Math.abs(t-(o+s));if(l>s+i)return !1;var c=(n-r)/2,u=Math.abs(e-(r+c));if(u>c+i)return !1;if(l<=s||u<=c)return !0;var h=l-s,p=u-c;return h*h+p*p<=i*i};var le=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ce(t,e){for(var i=0;i<t;i++){var o=e.length;e.resize(o+4),e.float32.set(le,3*o);}}function ue(t,e,i){var o=e[0],r=e[1];return t[0]=i[0]*o+i[4]*r+i[12],t[1]=i[1]*o+i[5]*r+i[13],t[3]=i[3]*o+i[7]*r+i[15],t}var he=function(t,e,i){void 0===e&&(e=new Yt(t.width+200,t.height+200,25)),void 0===i&&(i=new Yt(t.width+200,t.height+200,25)),this.transform=t,this.grid=e,this.ignoredGrid=i,this.pitchfactor=Math.cos(t._pitch)*t.cameraToCenterDistance,this.screenRightBoundary=t.width+100,this.screenBottomBoundary=t.height+100,this.gridRightBoundary=t.width+200,this.gridBottomBoundary=t.height+200;};function pe(e,i,o){return i*(t.EXTENT/(e.tileSize*Math.pow(2,o-e.tileID.overscaledZ)))}he.prototype.placeCollisionBox=function(t,e,i,o,r){var a=this.projectAndGetPerspectiveRatio(o,t.anchorPointX,t.anchorPointY),n=i*a.perspectiveRatio,s=t.x1*n+a.point.x,l=t.y1*n+a.point.y,c=t.x2*n+a.point.x,u=t.y2*n+a.point.y;return !this.isInsideGrid(s,l,c,u)||!e&&this.grid.hitTest(s,l,c,u,r)?{box:[],offscreen:!1}:{box:[s,l,c,u],offscreen:this.isOffscreen(s,l,c,u)}},he.prototype.placeCollisionCircles=function(e,i,o,r,a,n,s,l,c,u,h,p,d){var _=[],f=new t.Point(i.anchorX,i.anchorY),m=$t(f,n),g=te(this.transform.cameraToCenterDistance,m.signedDistanceFromCamera),v=(u?a/g:a*g)/t.ONE_EM,y=$t(f,s).point,x=oe(v,r,i.lineOffsetX*v,i.lineOffsetY*v,!1,y,f,i,o,s,{}),b=!1,w=!1,T=!0;if(x){for(var E=.5*p*g+d,I=new t.Point(-100,-100),P=new t.Point(this.screenRightBoundary,this.screenBottomBoundary),S=new Kt,C=x.first,z=x.last,D=[],A=C.path.length-1;A>=1;A--)D.push(C.path[A]);for(var M=1;M<z.path.length;M++)D.push(z.path[M]);var L=2.5*E;if(l){var R=D.map((function(t){return $t(t,l)}));D=R.some((function(t){return t.signedDistanceFromCamera<=0}))?[]:R.map((function(t){return t.point}));}var k=[];if(D.length>0){for(var B=D[0].clone(),O=D[0].clone(),F=1;F<D.length;F++)B.x=Math.min(B.x,D[F].x),B.y=Math.min(B.y,D[F].y),O.x=Math.max(O.x,D[F].x),O.y=Math.max(O.y,D[F].y);k=B.x>=I.x&&O.x<=P.x&&B.y>=I.y&&O.y<=P.y?[D]:O.x<I.x||B.x>P.x||O.y<I.y||B.y>P.y?[]:t.clipLine([D],I.x,I.y,P.x,P.y);}for(var U=0,N=k;U<N.length;U+=1){var Z;S.reset(N[U],.25*E),Z=S.length<=.5*E?1:Math.ceil(S.paddedLength/L)+1;for(var q=0;q<Z;q++){var j=q/Math.max(Z-1,1),V=S.lerp(j),G=V.x+100,W=V.y+100;_.push(G,W,E,0);var X=G-E,H=W-E,K=G+E,Y=W+E;if(T=T&&this.isOffscreen(X,H,K,Y),w=w||this.isInsideGrid(X,H,K,Y),!e&&this.grid.hitTestCircle(G,W,E,h)&&(b=!0,!c))return {circles:[],offscreen:!1,collisionDetected:b}}}}return {circles:!c&&b||!w?[]:_,offscreen:T,collisionDetected:b}},he.prototype.queryRenderedSymbols=function(e){if(0===e.length||0===this.grid.keysLength()&&0===this.ignoredGrid.keysLength())return {};for(var i=[],o=1/0,r=1/0,a=-1/0,n=-1/0,s=0,l=e;s<l.length;s+=1){var c=l[s],u=new t.Point(c.x+100,c.y+100);o=Math.min(o,u.x),r=Math.min(r,u.y),a=Math.max(a,u.x),n=Math.max(n,u.y),i.push(u);}for(var h={},p={},d=0,_=this.grid.query(o,r,a,n).concat(this.ignoredGrid.query(o,r,a,n));d<_.length;d+=1){var f=_[d],m=f.key;if(void 0===h[m.bucketInstanceId]&&(h[m.bucketInstanceId]={}),!h[m.bucketInstanceId][m.featureIndex]){var g=[new t.Point(f.x1,f.y1),new t.Point(f.x2,f.y1),new t.Point(f.x2,f.y2),new t.Point(f.x1,f.y2)];t.polygonIntersectsPolygon(i,g)&&(h[m.bucketInstanceId][m.featureIndex]=!0,void 0===p[m.bucketInstanceId]&&(p[m.bucketInstanceId]=[]),p[m.bucketInstanceId].push(m.featureIndex));}}return p},he.prototype.insertCollisionBox=function(t,e,i,o,r){(e?this.ignoredGrid:this.grid).insert({bucketInstanceId:i,featureIndex:o,collisionGroupID:r},t[0],t[1],t[2],t[3]);},he.prototype.insertCollisionCircles=function(t,e,i,o,r){for(var a=e?this.ignoredGrid:this.grid,n={bucketInstanceId:i,featureIndex:o,collisionGroupID:r},s=0;s<t.length;s+=4)a.insertCircle(n,t[s],t[s+1],t[s+2]);},he.prototype.projectAndGetPerspectiveRatio=function(e,i,o){var r=[i,o,0,1];return ue(r,r,e),{point:new t.Point((r[0]/r[3]+1)/2*this.transform.width+100,(-r[1]/r[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/r[3]*.5}},he.prototype.isOffscreen=function(t,e,i,o){return i<100||t>=this.screenRightBoundary||o<100||e>this.screenBottomBoundary},he.prototype.isInsideGrid=function(t,e,i,o){return i>=0&&t<this.gridRightBoundary&&o>=0&&e<this.gridBottomBoundary},he.prototype.getViewportMatrix=function(){var e=t.identity([]);return t.translate(e,e,[-100,-100,0]),e};var de=function(t,e,i,o){this.opacity=t?Math.max(0,Math.min(1,t.opacity+(t.placed?e:-e))):o&&i?1:0,this.placed=i;};de.prototype.isHidden=function(){return 0===this.opacity&&!this.placed};var _e=function(t,e,i,o,r){this.text=new de(t?t.text:null,e,i,r),this.icon=new de(t?t.icon:null,e,o,r);};_e.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var fe=function(t,e,i){this.text=t,this.icon=e,this.skipFade=i;},me=function(){this.invProjMatrix=t.create(),this.viewportMatrix=t.create(),this.circles=[];},ge=function(t,e,i,o,r){this.bucketInstanceId=t,this.featureIndex=e,this.sourceLayerIndex=i,this.bucketIndex=o,this.tileID=r;},ve=function(t){this.crossSourceCollisions=t,this.maxGroupID=0,this.collisionGroups={};};function ye(e,i,o,r,a){var n=t.getAnchorAlignment(e),s=-(n.horizontalAlign-.5)*i,l=-(n.verticalAlign-.5)*o,c=t.evaluateVariableOffset(e,r);return new t.Point(s+c[0]*a,l+c[1]*a)}function xe(e,i,o,r,a,n){var s=e.x1,l=e.x2,c=e.y1,u=e.y2,h=e.anchorPointX,p=e.anchorPointY,d=new t.Point(i,o);return r&&d._rotate(a?n:-n),{x1:s+d.x,y1:c+d.y,x2:l+d.x,y2:u+d.y,anchorPointX:h,anchorPointY:p}}ve.prototype.get=function(t){if(this.crossSourceCollisions)return {ID:0,predicate:null};if(!this.collisionGroups[t]){var e=++this.maxGroupID;this.collisionGroups[t]={ID:e,predicate:function(t){return t.collisionGroupID===e}};}return this.collisionGroups[t]};var be=function(t,e,i,o){this.transform=t.clone(),this.collisionIndex=new he(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=e,this.retainedQueryData={},this.collisionGroups=new ve(i),this.collisionCircleArrays={},this.prevPlacement=o,o&&(o.prevPlacement=void 0),this.placedOrientations={};};function we(t,e,i,o,r){t.emplaceBack(e?1:0,i?1:0,o||0,r||0),t.emplaceBack(e?1:0,i?1:0,o||0,r||0),t.emplaceBack(e?1:0,i?1:0,o||0,r||0),t.emplaceBack(e?1:0,i?1:0,o||0,r||0);}be.prototype.getBucketParts=function(e,i,o,r){var a=o.getBucket(i),n=o.latestFeatureIndex;if(a&&n&&i.id===a.layerIds[0]){var s=o.collisionBoxArray,l=a.layers[0].layout,c=Math.pow(2,this.transform.zoom-o.tileID.overscaledZ),u=o.tileSize/t.EXTENT,h=this.transform.calculatePosMatrix(o.tileID.toUnwrapped()),p="map"===l.get("text-pitch-alignment"),d="map"===l.get("text-rotation-alignment"),_=pe(o,1,this.transform.zoom),f=Jt(h,p,d,this.transform,_),m=null;if(p){var g=Qt(h,p,d,this.transform,_);m=t.multiply([],this.transform.labelPlaneMatrix,g);}this.retainedQueryData[a.bucketInstanceId]=new ge(a.bucketInstanceId,n,a.sourceLayerIndex,a.index,o.tileID);var v={bucket:a,layout:l,posMatrix:h,textLabelPlaneMatrix:f,labelToScreenMatrix:m,scale:c,textPixelRatio:u,holdingForFade:o.holdingForFade(),collisionBoxArray:s,partiallyEvaluatedTextSize:t.evaluateSizeForZoom(a.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(a.sourceID)};if(r)for(var y=0,x=a.sortKeyRanges;y<x.length;y+=1){var b=x[y];e.push({sortKey:b.sortKey,symbolInstanceStart:b.symbolInstanceStart,symbolInstanceEnd:b.symbolInstanceEnd,parameters:v});}else e.push({symbolInstanceStart:0,symbolInstanceEnd:a.symbolInstances.length,parameters:v});}},be.prototype.attemptAnchorPlacement=function(t,e,i,o,r,a,n,s,l,c,u,h,p,d,_){var f,m=[h.textOffset0,h.textOffset1],g=ye(t,i,o,m,r),v=this.collisionIndex.placeCollisionBox(xe(e,g.x,g.y,a,n,this.transform.angle),u,s,l,c.predicate);if(!_||0!==this.collisionIndex.placeCollisionBox(xe(_,g.x,g.y,a,n,this.transform.angle),u,s,l,c.predicate).box.length)return v.box.length>0?(this.prevPlacement&&this.prevPlacement.variableOffsets[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID]&&this.prevPlacement.placements[h.crossTileID].text&&(f=this.prevPlacement.variableOffsets[h.crossTileID].anchor),this.variableOffsets[h.crossTileID]={textOffset:m,width:i,height:o,anchor:t,textBoxScale:r,prevAnchor:f},this.markUsedJustification(p,t,h,d),p.allowVerticalPlacement&&(this.markUsedOrientation(p,d,h),this.placedOrientations[h.crossTileID]=d),{shift:g,placedGlyphBoxes:v}):void 0},be.prototype.placeLayerBucketPart=function(e,i,o){var r=this,a=e.parameters,n=a.bucket,s=a.layout,l=a.posMatrix,c=a.textLabelPlaneMatrix,u=a.labelToScreenMatrix,h=a.textPixelRatio,p=a.holdingForFade,d=a.collisionBoxArray,_=a.partiallyEvaluatedTextSize,f=a.collisionGroup,m=s.get("text-optional"),g=s.get("icon-optional"),v=s.get("text-allow-overlap"),y=s.get("icon-allow-overlap"),x="map"===s.get("text-rotation-alignment"),b="map"===s.get("text-pitch-alignment"),w="none"!==s.get("icon-text-fit"),T="viewport-y"===s.get("symbol-z-order"),E=v&&(y||!n.hasIconData()||g),I=y&&(v||!n.hasTextData()||m);!n.collisionArrays&&d&&n.deserializeCollisionBoxes(d);var P=function(e,a){if(!i[e.crossTileID])if(p)r.placements[e.crossTileID]=new fe(!1,!1,!1);else {var d,T=!1,P=!1,S=!0,C=null,z={box:null,offscreen:null},D={box:null,offscreen:null},A=null,M=null,L=0,R=0,k=0;a.textFeatureIndex?L=a.textFeatureIndex:e.useRuntimeCollisionCircles&&(L=e.featureIndex),a.verticalTextFeatureIndex&&(R=a.verticalTextFeatureIndex);var B=a.textBox;if(B){var O=function(i){var o=t.WritingMode.horizontal;if(n.allowVerticalPlacement&&!i&&r.prevPlacement){var a=r.prevPlacement.placedOrientations[e.crossTileID];a&&(r.placedOrientations[e.crossTileID]=a,r.markUsedOrientation(n,o=a,e));}return o},F=function(i,o){if(n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&a.verticalTextBox)for(var r=0,s=n.writingModes;r<s.length&&(s[r]===t.WritingMode.vertical?(z=o(),D=z):z=i(),!(z&&z.box&&z.box.length));r+=1);else z=i();};if(s.get("text-variable-anchor")){var U=s.get("text-variable-anchor");if(r.prevPlacement&&r.prevPlacement.variableOffsets[e.crossTileID]){var N=r.prevPlacement.variableOffsets[e.crossTileID];U.indexOf(N.anchor)>0&&(U=U.filter((function(t){return t!==N.anchor}))).unshift(N.anchor);}var Z=function(t,i,o){for(var a=t.x2-t.x1,s=t.y2-t.y1,c=e.textBoxScale,u=w&&!y?i:null,p={box:[],offscreen:!1},d=v?2*U.length:U.length,_=0;_<d;++_){var m=r.attemptAnchorPlacement(U[_%U.length],t,a,s,c,x,b,h,l,f,_>=U.length,e,n,o,u);if(m&&(p=m.placedGlyphBoxes)&&p.box&&p.box.length){T=!0,C=m.shift;break}}return p};F((function(){return Z(B,a.iconBox,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&!(z&&z.box&&z.box.length)&&e.numVerticalGlyphVertices>0&&i?Z(i,a.verticalIconBox,t.WritingMode.vertical):{box:null,offscreen:null}})),z&&(T=z.box,S=z.offscreen);var q=O(z&&z.box);if(!T&&r.prevPlacement){var j=r.prevPlacement.variableOffsets[e.crossTileID];j&&(r.variableOffsets[e.crossTileID]=j,r.markUsedJustification(n,j.anchor,e,q));}}else {var V=function(t,i){var o=r.collisionIndex.placeCollisionBox(t,v,h,l,f.predicate);return o&&o.box&&o.box.length&&(r.markUsedOrientation(n,i,e),r.placedOrientations[e.crossTileID]=i),o};F((function(){return V(B,t.WritingMode.horizontal)}),(function(){var i=a.verticalTextBox;return n.allowVerticalPlacement&&e.numVerticalGlyphVertices>0&&i?V(i,t.WritingMode.vertical):{box:null,offscreen:null}})),O(z&&z.box&&z.box.length);}}if(T=(d=z)&&d.box&&d.box.length>0,S=d&&d.offscreen,e.useRuntimeCollisionCircles){var G=n.text.placedSymbolArray.get(e.centerJustifiedTextSymbolIndex),W=t.evaluateSizeForFeature(n.textSizeData,_,G),X=s.get("text-padding");A=r.collisionIndex.placeCollisionCircles(v,G,n.lineVertexArray,n.glyphOffsetArray,W,l,c,u,o,b,f.predicate,e.collisionCircleDiameter,X),T=v||A.circles.length>0&&!A.collisionDetected,S=S&&A.offscreen;}if(a.iconFeatureIndex&&(k=a.iconFeatureIndex),a.iconBox){var H=function(t){var e=w&&C?xe(t,C.x,C.y,x,b,r.transform.angle):t;return r.collisionIndex.placeCollisionBox(e,y,h,l,f.predicate)};P=D&&D.box&&D.box.length&&a.verticalIconBox?(M=H(a.verticalIconBox)).box.length>0:(M=H(a.iconBox)).box.length>0,S=S&&M.offscreen;}var K=m||0===e.numHorizontalGlyphVertices&&0===e.numVerticalGlyphVertices,Y=g||0===e.numIconVertices;if(K||Y?Y?K||(P=P&&T):T=P&&T:P=T=P&&T,T&&d&&d.box&&r.collisionIndex.insertCollisionBox(d.box,s.get("text-ignore-placement"),n.bucketInstanceId,D&&D.box&&R?R:L,f.ID),P&&M&&r.collisionIndex.insertCollisionBox(M.box,s.get("icon-ignore-placement"),n.bucketInstanceId,k,f.ID),A&&(T&&r.collisionIndex.insertCollisionCircles(A.circles,s.get("text-ignore-placement"),n.bucketInstanceId,L,f.ID),o)){var J=n.bucketInstanceId,Q=r.collisionCircleArrays[J];void 0===Q&&(Q=r.collisionCircleArrays[J]=new me);for(var $=0;$<A.circles.length;$+=4)Q.circles.push(A.circles[$+0]),Q.circles.push(A.circles[$+1]),Q.circles.push(A.circles[$+2]),Q.circles.push(A.collisionDetected?1:0);}r.placements[e.crossTileID]=new fe(T||E,P||I,S||n.justReloaded),i[e.crossTileID]=!0;}};if(T)for(var S=n.getSortedSymbolIndexes(this.transform.angle),C=S.length-1;C>=0;--C){var z=S[C];P(n.symbolInstances.get(z),n.collisionArrays[z]);}else for(var D=e.symbolInstanceStart;D<e.symbolInstanceEnd;D++)P(n.symbolInstances.get(D),n.collisionArrays[D]);if(o&&n.bucketInstanceId in this.collisionCircleArrays){var A=this.collisionCircleArrays[n.bucketInstanceId];t.invert(A.invProjMatrix,l),A.viewportMatrix=this.collisionIndex.getViewportMatrix();}n.justReloaded=!1;},be.prototype.markUsedJustification=function(e,i,o,r){var a;a=r===t.WritingMode.vertical?o.verticalPlacedTextSymbolIndex:{left:o.leftJustifiedTextSymbolIndex,center:o.centerJustifiedTextSymbolIndex,right:o.rightJustifiedTextSymbolIndex}[t.getAnchorJustification(i)];for(var n=0,s=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex,o.verticalPlacedTextSymbolIndex];n<s.length;n+=1){var l=s[n];l>=0&&(e.text.placedSymbolArray.get(l).crossTileID=a>=0&&l!==a?0:o.crossTileID);}},be.prototype.markUsedOrientation=function(e,i,o){for(var r=i===t.WritingMode.horizontal||i===t.WritingMode.horizontalOnly?i:0,a=i===t.WritingMode.vertical?i:0,n=0,s=[o.leftJustifiedTextSymbolIndex,o.centerJustifiedTextSymbolIndex,o.rightJustifiedTextSymbolIndex];n<s.length;n+=1)e.text.placedSymbolArray.get(s[n]).placedOrientation=r;o.verticalPlacedTextSymbolIndex&&(e.text.placedSymbolArray.get(o.verticalPlacedTextSymbolIndex).placedOrientation=a);},be.prototype.commit=function(t){this.commitTime=t,this.zoomAtLastRecencyCheck=this.transform.zoom;var e=this.prevPlacement,i=!1;this.prevZoomAdjustment=e?e.zoomAdjustment(this.transform.zoom):0;var o=e?e.symbolFadeChange(t):1,r=e?e.opacities:{},a=e?e.variableOffsets:{},n=e?e.placedOrientations:{};for(var s in this.placements){var l=this.placements[s],c=r[s];c?(this.opacities[s]=new _e(c,o,l.text,l.icon),i=i||l.text!==c.text.placed||l.icon!==c.icon.placed):(this.opacities[s]=new _e(null,o,l.text,l.icon,l.skipFade),i=i||l.text||l.icon);}for(var u in r){var h=r[u];if(!this.opacities[u]){var p=new _e(h,o,!1,!1);p.isHidden()||(this.opacities[u]=p,i=i||h.text.placed||h.icon.placed);}}for(var d in a)this.variableOffsets[d]||!this.opacities[d]||this.opacities[d].isHidden()||(this.variableOffsets[d]=a[d]);for(var _ in n)this.placedOrientations[_]||!this.opacities[_]||this.opacities[_].isHidden()||(this.placedOrientations[_]=n[_]);i?this.lastPlacementChangeTime=t:"number"!=typeof this.lastPlacementChangeTime&&(this.lastPlacementChangeTime=e?e.lastPlacementChangeTime:t);},be.prototype.updateLayerOpacities=function(t,e){for(var i={},o=0,r=e;o<r.length;o+=1){var a=r[o],n=a.getBucket(t);n&&a.latestFeatureIndex&&t.id===n.layerIds[0]&&this.updateBucketOpacities(n,i,a.collisionBoxArray);}},be.prototype.updateBucketOpacities=function(e,i,o){var r=this;e.hasTextData()&&e.text.opacityVertexArray.clear(),e.hasIconData()&&e.icon.opacityVertexArray.clear(),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexArray.clear(),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexArray.clear();var a=e.layers[0].layout,n=new _e(null,0,!1,!1,!0),s=a.get("text-allow-overlap"),l=a.get("icon-allow-overlap"),c=a.get("text-variable-anchor"),u="map"===a.get("text-rotation-alignment"),h="map"===a.get("text-pitch-alignment"),p="none"!==a.get("icon-text-fit"),d=new _e(null,0,s&&(l||!e.hasIconData()||a.get("icon-optional")),l&&(s||!e.hasTextData()||a.get("text-optional")),!0);!e.collisionArrays&&o&&(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData())&&e.deserializeCollisionBoxes(o);for(var _=function(t,e,i){for(var o=0;o<e/4;o++)t.opacityVertexArray.emplaceBack(i);},f=function(o){var a=e.symbolInstances.get(o),s=a.numHorizontalGlyphVertices,l=a.numVerticalGlyphVertices,f=a.crossTileID,m=r.opacities[f];i[f]?m=n:m||(r.opacities[f]=m=d),i[f]=!0;var g=a.numIconVertices>0,v=r.placedOrientations[a.crossTileID],y=v===t.WritingMode.vertical,x=v===t.WritingMode.horizontal||v===t.WritingMode.horizontalOnly;if(s>0||l>0){var b=De(m.text);_(e.text,s,y?Ae:b),_(e.text,l,x?Ae:b);var w=m.text.isHidden();[a.rightJustifiedTextSymbolIndex,a.centerJustifiedTextSymbolIndex,a.leftJustifiedTextSymbolIndex].forEach((function(t){t>=0&&(e.text.placedSymbolArray.get(t).hidden=w||y?1:0);})),a.verticalPlacedTextSymbolIndex>=0&&(e.text.placedSymbolArray.get(a.verticalPlacedTextSymbolIndex).hidden=w||x?1:0);var T=r.variableOffsets[a.crossTileID];T&&r.markUsedJustification(e,T.anchor,a,v);var E=r.placedOrientations[a.crossTileID];E&&(r.markUsedJustification(e,"left",a,E),r.markUsedOrientation(e,E,a));}if(g){var I=De(m.icon),P=!(p&&a.verticalPlacedIconSymbolIndex&&y);a.placedIconSymbolIndex>=0&&(_(e.icon,a.numIconVertices,P?I:Ae),e.icon.placedSymbolArray.get(a.placedIconSymbolIndex).hidden=m.icon.isHidden()),a.verticalPlacedIconSymbolIndex>=0&&(_(e.icon,a.numVerticalIconVertices,P?Ae:I),e.icon.placedSymbolArray.get(a.verticalPlacedIconSymbolIndex).hidden=m.icon.isHidden());}if(e.hasIconCollisionBoxData()||e.hasTextCollisionBoxData()){var S=e.collisionArrays[o];if(S){var C=new t.Point(0,0);if(S.textBox||S.verticalTextBox){var z=!0;if(c){var D=r.variableOffsets[f];D?(C=ye(D.anchor,D.width,D.height,D.textOffset,D.textBoxScale),u&&C._rotate(h?r.transform.angle:-r.transform.angle)):z=!1;}S.textBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||y,C.x,C.y),S.verticalTextBox&&we(e.textCollisionBox.collisionVertexArray,m.text.placed,!z||x,C.x,C.y);}var A=Boolean(!x&&S.verticalIconBox);S.iconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,A,p?C.x:0,p?C.y:0),S.verticalIconBox&&we(e.iconCollisionBox.collisionVertexArray,m.icon.placed,!A,p?C.x:0,p?C.y:0);}}},m=0;m<e.symbolInstances.length;m++)f(m);if(e.sortFeatures(this.transform.angle),this.retainedQueryData[e.bucketInstanceId]&&(this.retainedQueryData[e.bucketInstanceId].featureSortOrder=e.featureSortOrder),e.hasTextData()&&e.text.opacityVertexBuffer&&e.text.opacityVertexBuffer.updateData(e.text.opacityVertexArray),e.hasIconData()&&e.icon.opacityVertexBuffer&&e.icon.opacityVertexBuffer.updateData(e.icon.opacityVertexArray),e.hasIconCollisionBoxData()&&e.iconCollisionBox.collisionVertexBuffer&&e.iconCollisionBox.collisionVertexBuffer.updateData(e.iconCollisionBox.collisionVertexArray),e.hasTextCollisionBoxData()&&e.textCollisionBox.collisionVertexBuffer&&e.textCollisionBox.collisionVertexBuffer.updateData(e.textCollisionBox.collisionVertexArray),e.bucketInstanceId in this.collisionCircleArrays){var g=this.collisionCircleArrays[e.bucketInstanceId];e.placementInvProjMatrix=g.invProjMatrix,e.placementViewportMatrix=g.viewportMatrix,e.collisionCircleArray=g.circles,delete this.collisionCircleArrays[e.bucketInstanceId];}},be.prototype.symbolFadeChange=function(t){return 0===this.fadeDuration?1:(t-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment},be.prototype.zoomAdjustment=function(t){return Math.max(0,(this.transform.zoom-t)/1.5)},be.prototype.hasTransitions=function(t){return this.stale||t-this.lastPlacementChangeTime<this.fadeDuration},be.prototype.stillRecent=function(t,e){var i=this.zoomAtLastRecencyCheck===e?1-this.zoomAdjustment(e):1;return this.zoomAtLastRecencyCheck=e,this.commitTime+this.fadeDuration*i>t},be.prototype.setStale=function(){this.stale=!0;};var Te=Math.pow(2,25),Ee=Math.pow(2,24),Ie=Math.pow(2,17),Pe=Math.pow(2,16),Se=Math.pow(2,9),Ce=Math.pow(2,8),ze=Math.pow(2,1);function De(t){if(0===t.opacity&&!t.placed)return 0;if(1===t.opacity&&t.placed)return 4294967295;var e=t.placed?1:0,i=Math.floor(127*t.opacity);return i*Te+e*Ee+i*Ie+e*Pe+i*Se+e*Ce+i*ze+e}var Ae=0,Me=function(t){this._sortAcrossTiles="viewport-y"!==t.layout.get("symbol-z-order")&&void 0!==t.layout.get("symbol-sort-key").constantOr(1),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[];};Me.prototype.continuePlacement=function(t,e,i,o,r){for(var a=this._bucketParts;this._currentTileIndex<t.length;)if(e.getBucketParts(a,o,t[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,r())return !0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,a.sort((function(t,e){return t.sortKey-e.sortKey})));this._currentPartIndex<a.length;)if(e.placeLayerBucketPart(a[this._currentPartIndex],this._seenCrossTileIDs,i),this._currentPartIndex++,r())return !0;return !1};var Le=function(t,e,i,o,r,a,n){this.placement=new be(t,r,a,n),this._currentPlacementIndex=e.length-1,this._forceFullPlacement=i,this._showCollisionBoxes=o,this._done=!1;};Le.prototype.isDone=function(){return this._done},Le.prototype.continuePlacement=function(e,i,o){for(var r=this,a=t.browser.now(),n=function(){var e=t.browser.now()-a;return !r._forceFullPlacement&&e>2};this._currentPlacementIndex>=0;){var s=i[e[this._currentPlacementIndex]],l=this.placement.collisionIndex.transform.zoom;if("symbol"===s.type&&(!s.minzoom||s.minzoom<=l)&&(!s.maxzoom||s.maxzoom>l)){if(this._inProgressLayer||(this._inProgressLayer=new Me(s)),this._inProgressLayer.continuePlacement(o[s.source],this.placement,this._showCollisionBoxes,s,n))return;delete this._inProgressLayer;}this._currentPlacementIndex--;}this._done=!0;},Le.prototype.commit=function(t){return this.placement.commit(t),this.placement};var Re=512/t.EXTENT/2,ke=function(t,e,i){this.tileID=t,this.indexedSymbolInstances={},this.bucketInstanceId=i;for(var o=0;o<e.length;o++){var r=e.get(o),a=r.key;this.indexedSymbolInstances[a]||(this.indexedSymbolInstances[a]=[]),this.indexedSymbolInstances[a].push({crossTileID:r.crossTileID,coord:this.getScaledCoordinates(r,t)});}};ke.prototype.getScaledCoordinates=function(e,i){var o=Re/Math.pow(2,i.canonical.z-this.tileID.canonical.z);return {x:Math.floor((i.canonical.x*t.EXTENT+e.anchorX)*o),y:Math.floor((i.canonical.y*t.EXTENT+e.anchorY)*o)}},ke.prototype.findMatches=function(t,e,i){for(var o=this.tileID.canonical.z<e.canonical.z?1:Math.pow(2,this.tileID.canonical.z-e.canonical.z),r=0;r<t.length;r++){var a=t.get(r);if(!a.crossTileID){var n=this.indexedSymbolInstances[a.key];if(n)for(var s=this.getScaledCoordinates(a,e),l=0,c=n;l<c.length;l+=1){var u=c[l];if(Math.abs(u.coord.x-s.x)<=o&&Math.abs(u.coord.y-s.y)<=o&&!i[u.crossTileID]){i[u.crossTileID]=!0,a.crossTileID=u.crossTileID;break}}}}};var Be=function(){this.maxCrossTileID=0;};Be.prototype.generate=function(){return ++this.maxCrossTileID};var Oe=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0;};Oe.prototype.handleWrapJump=function(t){var e=Math.round((t-this.lng)/360);if(0!==e)for(var i in this.indexes){var o=this.indexes[i],r={};for(var a in o){var n=o[a];n.tileID=n.tileID.unwrapTo(n.tileID.wrap+e),r[n.tileID.key]=n;}this.indexes[i]=r;}this.lng=t;},Oe.prototype.addBucket=function(t,e,i){if(this.indexes[t.overscaledZ]&&this.indexes[t.overscaledZ][t.key]){if(this.indexes[t.overscaledZ][t.key].bucketInstanceId===e.bucketInstanceId)return !1;this.removeBucketCrossTileIDs(t.overscaledZ,this.indexes[t.overscaledZ][t.key]);}for(var o=0;o<e.symbolInstances.length;o++)e.symbolInstances.get(o).crossTileID=0;this.usedCrossTileIDs[t.overscaledZ]||(this.usedCrossTileIDs[t.overscaledZ]={});var r=this.usedCrossTileIDs[t.overscaledZ];for(var a in this.indexes){var n=this.indexes[a];if(Number(a)>t.overscaledZ)for(var s in n){var l=n[s];l.tileID.isChildOf(t)&&l.findMatches(e.symbolInstances,t,r);}else {var c=n[t.scaledTo(Number(a)).key];c&&c.findMatches(e.symbolInstances,t,r);}}for(var u=0;u<e.symbolInstances.length;u++){var h=e.symbolInstances.get(u);h.crossTileID||(h.crossTileID=i.generate(),r[h.crossTileID]=!0);}return void 0===this.indexes[t.overscaledZ]&&(this.indexes[t.overscaledZ]={}),this.indexes[t.overscaledZ][t.key]=new ke(t,e.symbolInstances,e.bucketInstanceId),!0},Oe.prototype.removeBucketCrossTileIDs=function(t,e){for(var i in e.indexedSymbolInstances)for(var o=0,r=e.indexedSymbolInstances[i];o<r.length;o+=1)delete this.usedCrossTileIDs[t][r[o].crossTileID];},Oe.prototype.removeStaleBuckets=function(t){var e=!1;for(var i in this.indexes){var o=this.indexes[i];for(var r in o)t[o[r].bucketInstanceId]||(this.removeBucketCrossTileIDs(i,o[r]),delete o[r],e=!0);}return e};var Fe=function(){this.layerIndexes={},this.crossTileIDs=new Be,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={};};Fe.prototype.addLayer=function(t,e,i){var o=this.layerIndexes[t.id];void 0===o&&(o=this.layerIndexes[t.id]=new Oe);var r=!1,a={};o.handleWrapJump(i);for(var n=0,s=e;n<s.length;n+=1){var l=s[n],c=l.getBucket(t);c&&t.id===c.layerIds[0]&&(c.bucketInstanceId||(c.bucketInstanceId=++this.maxBucketInstanceId),o.addBucket(l.tileID,c,this.crossTileIDs)&&(r=!0),a[c.bucketInstanceId]=!0);}return o.removeStaleBuckets(a)&&(r=!0),r},Fe.prototype.pruneUnusedLayers=function(t){var e={};for(var i in t.forEach((function(t){e[t]=!0;})),this.layerIndexes)e[i]||delete this.layerIndexes[i];};var Ue=function(e,i){return t.emitValidationErrors(e,i&&i.filter((function(t){return "source.canvas"!==t.identifier})))},Ne=t.pick(Zt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData"]),Ze=t.pick(Zt,["setCenter","setZoom","setBearing","setPitch"]),qe=function(){var e={},i=t.styleSpec.$version;for(var o in t.styleSpec.$root){var r,a=t.styleSpec.$root[o];if(a.required)null!=(r="version"===o?i:"array"===a.type?[]:{})&&(e[o]=r);}return e}(),je=function(e){function i(o,r){var a=this;void 0===r&&(r={}),e.call(this),this.map=o,this.dispatcher=new E(Ft(),this),this.imageManager=new p,this.imageManager.setEventedParent(this),this.glyphManager=new y(o._requestManager,r.localIdeographFontFamily),this.lineAtlas=new T(256,512),this.crossTileSymbolIndex=new Fe,this._layers={},this._serializedLayers={},this._order=[],this.sourceCaches={},this.zoomHistory=new t.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",t.getReferrer());var n=this;this._rtlTextPluginCallback=i.registerForPluginStateChange((function(e){n.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:e.pluginStatus,pluginURL:e.pluginURL},(function(e,i){if(t.triggerPluginCompletionEvent(e),i&&i.every((function(t){return t})))for(var o in n.sourceCaches)n.sourceCaches[o].reload();}));})),this.on("data",(function(t){if("source"===t.dataType&&"metadata"===t.sourceDataType){var e=a.sourceCaches[t.sourceId];if(e){var i=e.getSource();if(i&&i.vectorLayerIds)for(var o in a._layers){var r=a._layers[o];r.source===i.id&&a._validateLayer(r);}}}}));}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.loadURL=function(e,i){var o=this;void 0===i&&(i={}),this.fire(new t.Event("dataloading",{dataType:"style"}));var r="boolean"==typeof i.validate?i.validate:!t.isMapboxURL(e);e=this.map._requestManager.normalizeStyleURL(e,i.accessToken);var a=this.map._requestManager.transformRequest(e,t.ResourceType.Style);this._request=t.getJSON(a,(function(e,i){o._request=null,e?o.fire(new t.ErrorEvent(e)):i&&o._load(i,r);}));},i.prototype.loadJSON=function(e,i){var o=this;void 0===i&&(i={}),this.fire(new t.Event("dataloading",{dataType:"style"})),this._request=t.browser.frame((function(){o._request=null,o._load(e,!1!==i.validate);}));},i.prototype.loadEmpty=function(){this.fire(new t.Event("dataloading",{dataType:"style"})),this._load(qe,!1);},i.prototype._load=function(e,i){if(!i||!Ue(this,t.validateStyle(e))){for(var o in this._loaded=!0,this.stylesheet=e,e.sources)this.addSource(o,e.sources[o],{validate:!1});e.sprite?this._loadSprite(e.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(e.glyphs);var r=Nt(this.stylesheet.layers);this._order=r.map((function(t){return t.id})),this._layers={},this._serializedLayers={};for(var a=0,n=r;a<n.length;a+=1){var s=n[a];(s=t.createStyleLayer(s)).setEventedParent(this,{layer:{id:s.id}}),this._layers[s.id]=s,this._serializedLayers[s.id]=s.serialize();}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new w(this.stylesheet.light),this.fire(new t.Event("data",{dataType:"style"})),this.fire(new t.Event("style.load"));}},i.prototype._loadSprite=function(e){var i=this;this._spriteRequest=function(e,i,o){var r,a,n,s=t.browser.devicePixelRatio>1?"@2x":"",l=t.getJSON(i.transformRequest(i.normalizeSpriteURL(e,s,".json"),t.ResourceType.SpriteJSON),(function(t,e){l=null,n||(n=t,r=e,u());})),c=t.getImage(i.transformRequest(i.normalizeSpriteURL(e,s,".png"),t.ResourceType.SpriteImage),(function(t,e){c=null,n||(n=t,a=e,u());}));function u(){if(n)o(n);else if(r&&a){var e=t.browser.getImageData(a),i={};for(var s in r){var l=r[s],c=l.width,u=l.height,h=l.x,p=l.y,d=l.sdf,_=l.pixelRatio,f=l.stretchX,m=l.stretchY,g=l.content,v=new t.RGBAImage({width:c,height:u});t.RGBAImage.copy(e,v,{x:h,y:p},{x:0,y:0},{width:c,height:u}),i[s]={data:v,pixelRatio:_,sdf:d,stretchX:f,stretchY:m,content:g};}o(null,i);}}return {cancel:function(){l&&(l.cancel(),l=null),c&&(c.cancel(),c=null);}}}(e,this.map._requestManager,(function(e,o){if(i._spriteRequest=null,e)i.fire(new t.ErrorEvent(e));else if(o)for(var r in o)i.imageManager.addImage(r,o[r]);i.imageManager.setLoaded(!0),i._availableImages=i.imageManager.listImages(),i.dispatcher.broadcast("setImages",i._availableImages),i.fire(new t.Event("data",{dataType:"style"}));}));},i.prototype._validateLayer=function(e){var i=this.sourceCaches[e.source];if(i){var o=e.sourceLayer;if(o){var r=i.getSource();("geojson"===r.type||r.vectorLayerIds&&-1===r.vectorLayerIds.indexOf(o))&&this.fire(new t.ErrorEvent(new Error('Source layer "'+o+'" does not exist on source "'+r.id+'" as specified by style layer "'+e.id+'"')));}}},i.prototype.loaded=function(){if(!this._loaded)return !1;if(Object.keys(this._updatedSources).length)return !1;for(var t in this.sourceCaches)if(!this.sourceCaches[t].loaded())return !1;return !!this.imageManager.isLoaded()},i.prototype._serializeLayers=function(t){for(var e=[],i=0,o=t;i<o.length;i+=1){var r=this._layers[o[i]];"custom"!==r.type&&e.push(r.serialize());}return e},i.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return !0;for(var t in this.sourceCaches)if(this.sourceCaches[t].hasTransition())return !0;for(var e in this._layers)if(this._layers[e].hasTransition())return !0;return !1},i.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},i.prototype.update=function(e){if(this._loaded){var i=this._changed;if(this._changed){var o=Object.keys(this._updatedLayers),r=Object.keys(this._removedLayers);for(var a in (o.length||r.length)&&this._updateWorkerLayers(o,r),this._updatedSources){var n=this._updatedSources[a];"reload"===n?this._reloadSource(a):"clear"===n&&this._clearSource(a);}for(var s in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[s].updateTransitions(e);this.light.updateTransitions(e),this._resetUpdates();}var l={};for(var c in this.sourceCaches){var u=this.sourceCaches[c];l[c]=u.used,u.used=!1;}for(var h=0,p=this._order;h<p.length;h+=1){var d=this._layers[p[h]];d.recalculate(e,this._availableImages),!d.isHidden(e.zoom)&&d.source&&(this.sourceCaches[d.source].used=!0);}for(var _ in l){var f=this.sourceCaches[_];l[_]!==f.used&&f.fire(new t.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:_}));}this.light.recalculate(e),this.z=e.zoom,i&&this.fire(new t.Event("data",{dataType:"style"}));}},i.prototype._updateTilesForChangedImages=function(){var t=Object.keys(this._changedImages);if(t.length){for(var e in this.sourceCaches)this.sourceCaches[e].reloadTilesForDependencies(["icons","patterns"],t);this._changedImages={};}},i.prototype._updateWorkerLayers=function(t,e){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(t),removedIds:e});},i.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={};},i.prototype.setState=function(e){var i=this;if(this._checkLoaded(),Ue(this,t.validateStyle(e)))return !1;(e=t.clone$1(e)).layers=Nt(e.layers);var o=function(e,i){if(!e)return [{command:Zt.setStyle,args:[i]}];var o=[];try{if(!t.deepEqual(e.version,i.version))return [{command:Zt.setStyle,args:[i]}];t.deepEqual(e.center,i.center)||o.push({command:Zt.setCenter,args:[i.center]}),t.deepEqual(e.zoom,i.zoom)||o.push({command:Zt.setZoom,args:[i.zoom]}),t.deepEqual(e.bearing,i.bearing)||o.push({command:Zt.setBearing,args:[i.bearing]}),t.deepEqual(e.pitch,i.pitch)||o.push({command:Zt.setPitch,args:[i.pitch]}),t.deepEqual(e.sprite,i.sprite)||o.push({command:Zt.setSprite,args:[i.sprite]}),t.deepEqual(e.glyphs,i.glyphs)||o.push({command:Zt.setGlyphs,args:[i.glyphs]}),t.deepEqual(e.transition,i.transition)||o.push({command:Zt.setTransition,args:[i.transition]}),t.deepEqual(e.light,i.light)||o.push({command:Zt.setLight,args:[i.light]});var r={},a=[];!function(e,i,o,r){var a;for(a in i=i||{},e=e||{})e.hasOwnProperty(a)&&(i.hasOwnProperty(a)||jt(a,o,r));for(a in i)i.hasOwnProperty(a)&&(e.hasOwnProperty(a)?t.deepEqual(e[a],i[a])||("geojson"===e[a].type&&"geojson"===i[a].type&&Gt(e,i,a)?o.push({command:Zt.setGeoJSONSourceData,args:[a,i[a].data]}):Vt(a,i,o,r)):qt(a,i,o));}(e.sources,i.sources,a,r);var n=[];e.layers&&e.layers.forEach((function(t){r[t.source]?o.push({command:Zt.removeLayer,args:[t.id]}):n.push(t);})),o=o.concat(a),function(e,i,o){i=i||[];var r,a,n,s,l,c,u,h=(e=e||[]).map(Xt),p=i.map(Xt),d=e.reduce(Ht,{}),_=i.reduce(Ht,{}),f=h.slice(),m=Object.create(null);for(r=0,a=0;r<h.length;r++)_.hasOwnProperty(n=h[r])?a++:(o.push({command:Zt.removeLayer,args:[n]}),f.splice(f.indexOf(n,a),1));for(r=0,a=0;r<p.length;r++)f[f.length-1-r]!==(n=p[p.length-1-r])&&(d.hasOwnProperty(n)?(o.push({command:Zt.removeLayer,args:[n]}),f.splice(f.lastIndexOf(n,f.length-a),1)):a++,o.push({command:Zt.addLayer,args:[_[n],c=f[f.length-r]]}),f.splice(f.length-r,0,n),m[n]=!0);for(r=0;r<p.length;r++)if(s=d[n=p[r]],l=_[n],!m[n]&&!t.deepEqual(s,l))if(t.deepEqual(s.source,l.source)&&t.deepEqual(s["source-layer"],l["source-layer"])&&t.deepEqual(s.type,l.type)){for(u in Wt(s.layout,l.layout,o,n,null,Zt.setLayoutProperty),Wt(s.paint,l.paint,o,n,null,Zt.setPaintProperty),t.deepEqual(s.filter,l.filter)||o.push({command:Zt.setFilter,args:[n,l.filter]}),t.deepEqual(s.minzoom,l.minzoom)&&t.deepEqual(s.maxzoom,l.maxzoom)||o.push({command:Zt.setLayerZoomRange,args:[n,l.minzoom,l.maxzoom]}),s)s.hasOwnProperty(u)&&"layout"!==u&&"paint"!==u&&"filter"!==u&&"metadata"!==u&&"minzoom"!==u&&"maxzoom"!==u&&(0===u.indexOf("paint.")?Wt(s[u],l[u],o,n,u.slice(6),Zt.setPaintProperty):t.deepEqual(s[u],l[u])||o.push({command:Zt.setLayerProperty,args:[n,u,l[u]]}));for(u in l)l.hasOwnProperty(u)&&!s.hasOwnProperty(u)&&"layout"!==u&&"paint"!==u&&"filter"!==u&&"metadata"!==u&&"minzoom"!==u&&"maxzoom"!==u&&(0===u.indexOf("paint.")?Wt(s[u],l[u],o,n,u.slice(6),Zt.setPaintProperty):t.deepEqual(s[u],l[u])||o.push({command:Zt.setLayerProperty,args:[n,u,l[u]]}));}else o.push({command:Zt.removeLayer,args:[n]}),c=f[f.lastIndexOf(n)+1],o.push({command:Zt.addLayer,args:[l,c]});}(n,i.layers,o);}catch(t){console.warn("Unable to compute style diff:",t),o=[{command:Zt.setStyle,args:[i]}];}return o}(this.serialize(),e).filter((function(t){return !(t.command in Ze)}));if(0===o.length)return !1;var r=o.filter((function(t){return !(t.command in Ne)}));if(r.length>0)throw new Error("Unimplemented: "+r.map((function(t){return t.command})).join(", ")+".");return o.forEach((function(t){"setTransition"!==t.command&&i[t.command].apply(i,t.args);})),this.stylesheet=e,!0},i.prototype.addImage=function(e,i){if(this.getImage(e))return this.fire(new t.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(e,i),this._afterImageUpdated(e);},i.prototype.updateImage=function(t,e){this.imageManager.updateImage(t,e);},i.prototype.getImage=function(t){return this.imageManager.getImage(t)},i.prototype.removeImage=function(e){if(!this.getImage(e))return this.fire(new t.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(e),this._afterImageUpdated(e);},i.prototype._afterImageUpdated=function(e){this._availableImages=this.imageManager.listImages(),this._changedImages[e]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new t.Event("data",{dataType:"style"}));},i.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},i.prototype.addSource=function(e,i,o){var r=this;if(void 0===o&&(o={}),this._checkLoaded(),void 0!==this.sourceCaches[e])throw new Error("There is already a source with this ID");if(!i.type)throw new Error("The type property must be defined, but only the following properties were given: "+Object.keys(i).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(i.type)>=0&&this._validate(t.validateStyle.source,"sources."+e,i,null,o))){this.map&&this.map._collectResourceTiming&&(i.collectResourceTiming=!0);var a=this.sourceCaches[e]=new Dt(e,i,this.dispatcher);a.style=this,a.setEventedParent(this,(function(){return {isSourceLoaded:r.loaded(),source:a.serialize(),sourceId:e}})),a.onAdd(this.map),this._changed=!0;}},i.prototype.removeSource=function(e){if(this._checkLoaded(),void 0===this.sourceCaches[e])throw new Error("There is no source with this ID");for(var i in this._layers)if(this._layers[i].source===e)return this.fire(new t.ErrorEvent(new Error('Source "'+e+'" cannot be removed while layer "'+i+'" is using it.')));var o=this.sourceCaches[e];delete this.sourceCaches[e],delete this._updatedSources[e],o.fire(new t.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:e})),o.setEventedParent(null),o.clearTiles(),o.onRemove&&o.onRemove(this.map),this._changed=!0;},i.prototype.setGeoJSONSourceData=function(t,e){this._checkLoaded(),this.sourceCaches[t].getSource().setData(e),this._changed=!0;},i.prototype.getSource=function(t){return this.sourceCaches[t]&&this.sourceCaches[t].getSource()},i.prototype.addLayer=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=e.id;if(this.getLayer(r))this.fire(new t.ErrorEvent(new Error('Layer with id "'+r+'" already exists on this map')));else {var a;if("custom"===e.type){if(Ue(this,t.validateCustomStyleLayer(e)))return;a=t.createStyleLayer(e);}else {if("object"==typeof e.source&&(this.addSource(r,e.source),e=t.clone$1(e),e=t.extend(e,{source:r})),this._validate(t.validateStyle.layer,"layers."+r,e,{arrayIndex:-1},o))return;a=t.createStyleLayer(e),this._validateLayer(a),a.setEventedParent(this,{layer:{id:r}}),this._serializedLayers[a.id]=a.serialize();}var n=i?this._order.indexOf(i):this._order.length;if(i&&-1===n)this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.')));else {if(this._order.splice(n,0,r),this._layerOrderChanged=!0,this._layers[r]=a,this._removedLayers[r]&&a.source&&"custom"!==a.type){var s=this._removedLayers[r];delete this._removedLayers[r],s.type!==a.type?this._updatedSources[a.source]="clear":(this._updatedSources[a.source]="reload",this.sourceCaches[a.source].pause());}this._updateLayer(a),a.onAdd&&a.onAdd(this.map);}}},i.prototype.moveLayer=function(e,i){if(this._checkLoaded(),this._changed=!0,this._layers[e]){if(e!==i){var o=this._order.indexOf(e);this._order.splice(o,1);var r=i?this._order.indexOf(i):this._order.length;i&&-1===r?this.fire(new t.ErrorEvent(new Error('Layer with id "'+i+'" does not exist on this map.'))):(this._order.splice(r,0,e),this._layerOrderChanged=!0);}}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be moved.")));},i.prototype.removeLayer=function(e){this._checkLoaded();var i=this._layers[e];if(i){i.setEventedParent(null);var o=this._order.indexOf(e);this._order.splice(o,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[e]=i,delete this._layers[e],delete this._serializedLayers[e],delete this._updatedLayers[e],delete this._updatedPaintProps[e],i.onRemove&&i.onRemove(this.map);}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be removed.")));},i.prototype.getLayer=function(t){return this._layers[t]},i.prototype.hasLayer=function(t){return t in this._layers},i.prototype.setLayerZoomRange=function(e,i,o){this._checkLoaded();var r=this.getLayer(e);r?r.minzoom===i&&r.maxzoom===o||(null!=i&&(r.minzoom=i),null!=o&&(r.maxzoom=o),this._updateLayer(r)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot have zoom extent.")));},i.prototype.setFilter=function(e,i,o){void 0===o&&(o={}),this._checkLoaded();var r=this.getLayer(e);if(r){if(!t.deepEqual(r.filter,i))return null==i?(r.filter=void 0,void this._updateLayer(r)):void(this._validate(t.validateStyle.filter,"layers."+r.id+".filter",i,null,o)||(r.filter=t.clone$1(i),this._updateLayer(r)))}else this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be filtered.")));},i.prototype.getFilter=function(e){return t.clone$1(this.getLayer(e).filter)},i.prototype.setLayoutProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getLayoutProperty(i),o)||(a.setLayoutProperty(i,o,r),this._updateLayer(a)):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")));},i.prototype.getLayoutProperty=function(e,i){var o=this.getLayer(e);if(o)return o.getLayoutProperty(i);this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style.")));},i.prototype.setPaintProperty=function(e,i,o,r){void 0===r&&(r={}),this._checkLoaded();var a=this.getLayer(e);a?t.deepEqual(a.getPaintProperty(i),o)||(a.setPaintProperty(i,o,r)&&this._updateLayer(a),this._changed=!0,this._updatedPaintProps[e]=!0):this.fire(new t.ErrorEvent(new Error("The layer '"+e+"' does not exist in the map's style and cannot be styled.")));},i.prototype.getPaintProperty=function(t,e){return this.getLayer(t).getPaintProperty(e)},i.prototype.setFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=e.sourceLayer,a=this.sourceCaches[o];if(void 0!==a){var n=a.getSource().type;"geojson"===n&&r?this.fire(new t.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):"vector"!==n||r?(void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),a.setFeatureState(r,e.id,i)):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));}else this.fire(new t.ErrorEvent(new Error("The source '"+o+"' does not exist in the map's style.")));},i.prototype.removeFeatureState=function(e,i){this._checkLoaded();var o=e.source,r=this.sourceCaches[o];if(void 0!==r){var a=r.getSource().type,n="vector"===a?e.sourceLayer:void 0;"vector"!==a||n?i&&"string"!=typeof e.id&&"number"!=typeof e.id?this.fire(new t.ErrorEvent(new Error("A feature id is required to remove its specific state property."))):r.removeFeatureState(n,e.id,i):this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));}else this.fire(new t.ErrorEvent(new Error("The source '"+o+"' does not exist in the map's style.")));},i.prototype.getFeatureState=function(e){this._checkLoaded();var i=e.source,o=e.sourceLayer,r=this.sourceCaches[i];if(void 0!==r){if("vector"!==r.getSource().type||o)return void 0===e.id&&this.fire(new t.ErrorEvent(new Error("The feature id parameter must be provided."))),r.getFeatureState(o,e.id);this.fire(new t.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));}else this.fire(new t.ErrorEvent(new Error("The source '"+i+"' does not exist in the map's style.")));},i.prototype.getTransition=function(){return t.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},i.prototype.serialize=function(){return t.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:t.mapObject(this.sourceCaches,(function(t){return t.serialize()})),layers:this._serializeLayers(this._order)},(function(t){return void 0!==t}))},i.prototype._updateLayer=function(t){this._updatedLayers[t.id]=!0,t.source&&!this._updatedSources[t.source]&&"raster"!==this.sourceCaches[t.source].getSource().type&&(this._updatedSources[t.source]="reload",this.sourceCaches[t.source].pause()),this._changed=!0;},i.prototype._flattenAndSortRenderedFeatures=function(t){for(var e=this,i=function(t){return "fill-extrusion"===e._layers[t].type},o={},r=[],a=this._order.length-1;a>=0;a--){var n=this._order[a];if(i(n)){o[n]=a;for(var s=0,l=t;s<l.length;s+=1){var c=l[s][n];if(c)for(var u=0,h=c;u<h.length;u+=1)r.push(h[u]);}}}r.sort((function(t,e){return e.intersectionZ-t.intersectionZ}));for(var p=[],d=this._order.length-1;d>=0;d--){var _=this._order[d];if(i(_))for(var f=r.length-1;f>=0;f--){var m=r[f].feature;if(o[m.layer.id]<d)break;p.push(m),r.pop();}else for(var g=0,v=t;g<v.length;g+=1){var y=v[g][_];if(y)for(var x=0,b=y;x<b.length;x+=1)p.push(b[x].feature);}}return p},i.prototype.queryRenderedFeatures=function(e,i,o){i&&i.filter&&this._validate(t.validateStyle.filter,"queryRenderedFeatures.filter",i.filter,null,i);var r={};if(i&&i.layers){if(!Array.isArray(i.layers))return this.fire(new t.ErrorEvent(new Error("parameters.layers must be an Array."))),[];for(var a=0,n=i.layers;a<n.length;a+=1){var s=n[a],l=this._layers[s];if(!l)return this.fire(new t.ErrorEvent(new Error("The layer '"+s+"' does not exist in the map's style and cannot be queried for features."))),[];r[l.source]=!0;}}var c=[];for(var u in i.availableImages=this._availableImages,this.sourceCaches)i.layers&&!r[u]||c.push(O(this.sourceCaches[u],this._layers,this._serializedLayers,e,i,o));return this.placement&&c.push(function(t,e,i,o,r,a,n){for(var s={},l=a.queryRenderedSymbols(o),c=[],u=0,h=Object.keys(l).map(Number);u<h.length;u+=1)c.push(n[h[u]]);c.sort(F);for(var p=function(){var i=_[d],o=i.featureIndex.lookupSymbolFeatures(l[i.bucketInstanceId],e,i.bucketIndex,i.sourceLayerIndex,r.filter,r.layers,r.availableImages,t);for(var a in o){var n=s[a]=s[a]||[],c=o[a];c.sort((function(t,e){var o=i.featureSortOrder;if(o){var r=o.indexOf(t.featureIndex);return o.indexOf(e.featureIndex)-r}return e.featureIndex-t.featureIndex}));for(var u=0,h=c;u<h.length;u+=1)n.push(h[u]);}},d=0,_=c;d<_.length;d+=1)p();var f=function(e){s[e].forEach((function(o){var r=o.feature,a=i[t[e].source].getFeatureState(r.layer["source-layer"],r.id);r.source=r.layer.source,r.layer["source-layer"]&&(r.sourceLayer=r.layer["source-layer"]),r.state=a;}));};for(var m in s)f(m);return s}(this._layers,this._serializedLayers,this.sourceCaches,e,i,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(c)},i.prototype.querySourceFeatures=function(e,i){i&&i.filter&&this._validate(t.validateStyle.filter,"querySourceFeatures.filter",i.filter,null,i);var o=this.sourceCaches[e];return o?function(t,e){for(var i=t.getRenderableIds().map((function(e){return t.getTileByID(e)})),o=[],r={},a=0;a<i.length;a++){var n=i[a],s=n.tileID.canonical.key;r[s]||(r[s]=!0,n.querySourceFeatures(o,e));}return o}(o,i):[]},i.prototype.addSourceType=function(t,e,o){return i.getSourceType(t)?o(new Error('A source type called "'+t+'" already exists.')):(i.setSourceType(t,e),e.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:t,url:e.workerSourceURL},o):o(null,null))},i.prototype.getLight=function(){return this.light.getLight()},i.prototype.setLight=function(e,i){void 0===i&&(i={}),this._checkLoaded();var o=this.light.getLight(),r=!1;for(var a in e)if(!t.deepEqual(e[a],o[a])){r=!0;break}if(r){var n={now:t.browser.now(),transition:t.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(e,i),this.light.updateTransitions(n);}},i.prototype._validate=function(e,i,o,r,a){return void 0===a&&(a={}),(!a||!1!==a.validate)&&Ue(this,e.call(t.validateStyle,t.extend({key:i,style:this.serialize(),value:o,styleSpec:t.styleSpec},r)))},i.prototype._remove=function(){for(var e in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),t.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[e].setEventedParent(null);for(var i in this.sourceCaches)this.sourceCaches[i].clearTiles(),this.sourceCaches[i].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove();},i.prototype._clearSource=function(t){this.sourceCaches[t].clearTiles();},i.prototype._reloadSource=function(t){this.sourceCaches[t].resume(),this.sourceCaches[t].reload();},i.prototype._updateSources=function(t){for(var e in this.sourceCaches)this.sourceCaches[e].update(t);},i.prototype._generateCollisionBoxes=function(){for(var t in this.sourceCaches)this._reloadSource(t);},i.prototype._updatePlacement=function(e,i,o,r,a){void 0===a&&(a=!1);for(var n=!1,s=!1,l={},c=0,u=this._order;c<u.length;c+=1){var h=this._layers[u[c]];if("symbol"===h.type){if(!l[h.source]){var p=this.sourceCaches[h.source];l[h.source]=p.getRenderableIds(!0).map((function(t){return p.getTileByID(t)})).sort((function(t,e){return e.tileID.overscaledZ-t.tileID.overscaledZ||(t.tileID.isLessThan(e.tileID)?-1:1)}));}var d=this.crossTileSymbolIndex.addLayer(h,l[h.source],e.center.lng);n=n||d;}}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((a=a||this._layerOrderChanged||0===o)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(t.browser.now(),e.zoom))&&(this.pauseablePlacement=new Le(e,this._order,a,i,o,r,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,l),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(t.browser.now()),s=!0),n&&this.pauseablePlacement.placement.setStale()),s||n)for(var _=0,f=this._order;_<f.length;_+=1){var m=this._layers[f[_]];"symbol"===m.type&&this.placement.updateLayerOpacities(m,l[m.source]);}return !this.pauseablePlacement.isDone()||this.placement.hasTransitions(t.browser.now())},i.prototype._releaseSymbolFadeTiles=function(){for(var t in this.sourceCaches)this.sourceCaches[t].releaseSymbolFadeTiles();},i.prototype.getImages=function(t,e,i){this.imageManager.getImages(e.icons,i),this._updateTilesForChangedImages();var o=this.sourceCaches[e.source];o&&o.setDependencies(e.tileID.key,e.type,e.icons);},i.prototype.getGlyphs=function(t,e,i){this.glyphManager.getGlyphs(e.stacks,i);},i.prototype.getResource=function(e,i,o){return t.makeRequest(i,o)},i}(t.Evented);je.getSourceType=function(t){return k[t]},je.setSourceType=function(t,e){k[t]=e;},je.registerForPluginStateChange=t.registerForPluginStateChange;var Ve=t.createLayout([{name:"a_pos",type:"Int16",components:2}]),Ge=gi("#ifdef GL_ES\nprecision mediump float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif","#ifdef GL_ES\nprecision highp float;\n#else\n#if !defined(lowp)\n#define lowp\n#endif\n#if !defined(mediump)\n#define mediump\n#endif\n#if !defined(highp)\n#define highp\n#endif\n#endif\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}"),We=gi("uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Xe=gi("uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),He=gi("varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define mediump float radius\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define highp vec4 stroke_color\n#pragma mapbox: define mediump float stroke_width\n#pragma mapbox: define lowp float stroke_opacity\nvoid main(void) {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize mediump float radius\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize highp vec4 stroke_color\n#pragma mapbox: initialize mediump float stroke_width\n#pragma mapbox: initialize lowp float stroke_opacity\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}"),Ke=gi("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Ye=gi("uniform highp float u_intensity;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#define GAUSS_COEF 0.3989422804014327\nvoid main() {\n#pragma mapbox: initialize highp float weight\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\n#pragma mapbox: define highp float weight\n#pragma mapbox: define mediump float radius\nconst highp float ZERO=1.0/255.0/16.0;\n#define GAUSS_COEF 0.3989422804014327\nvoid main(void) {\n#pragma mapbox: initialize highp float weight\n#pragma mapbox: initialize mediump float radius\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}"),Je=gi("uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(0.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),Qe=gi("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),$e=gi("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),ti=gi("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),ei=gi("#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_FragColor=color*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);}"),ii=gi("varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\n#pragma mapbox: define highp vec4 outline_color\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 outline_color\n#pragma mapbox: initialize lowp float opacity\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),oi=gi("uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}"),ri=gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}"),ai=gi("varying vec4 v_color;void main() {gl_FragColor=v_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\n#pragma mapbox: define highp float base\n#pragma mapbox: define highp float height\n#pragma mapbox: define highp vec4 color\nvoid main() {\n#pragma mapbox: initialize highp float base\n#pragma mapbox: initialize highp float height\n#pragma mapbox: initialize highp vec4 color\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}"),ni=gi("uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\n#pragma mapbox: define lowp float base\n#pragma mapbox: define lowp float height\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float base\n#pragma mapbox: initialize lowp float height\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\n? a_pos\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}"),si=gi("#ifdef GL_ES\nprecision highp float;\n#endif\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),li=gi("uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\n#define PI 3.141592653589793\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),ci=gi("uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),ui=gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}"),hi=gi("uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\n#pragma mapbox: define lowp vec4 pattern_from\n#pragma mapbox: define lowp vec4 pattern_to\n#pragma mapbox: define lowp float pixel_ratio_from\n#pragma mapbox: define lowp float pixel_ratio_to\nvoid main() {\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\n#pragma mapbox: initialize mediump vec4 pattern_from\n#pragma mapbox: initialize mediump vec4 pattern_to\n#pragma mapbox: initialize lowp float pixel_ratio_from\n#pragma mapbox: initialize lowp float pixel_ratio_to\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}"),pi=gi("uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","\n#define scale 0.015873016\n#define LINE_DISTANCE_SCALE 2.0\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\n#pragma mapbox: define highp vec4 color\n#pragma mapbox: define lowp float blur\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define mediump float gapwidth\n#pragma mapbox: define lowp float offset\n#pragma mapbox: define mediump float width\n#pragma mapbox: define lowp float floorwidth\nvoid main() {\n#pragma mapbox: initialize highp vec4 color\n#pragma mapbox: initialize lowp float blur\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize mediump float gapwidth\n#pragma mapbox: initialize lowp float offset\n#pragma mapbox: initialize mediump float width\n#pragma mapbox: initialize lowp float floorwidth\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}"),di=gi("uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),_i=gi("uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\n#pragma mapbox: define lowp float opacity\nvoid main() {\n#pragma mapbox: initialize lowp float opacity\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}"),fi=gi("#define SDF_PX 8.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}"),mi=gi("#define SDF_PX 8.0\n#define SDF 1.0\n#define ICON 0.0\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\n#ifdef OVERDRAW_INSPECTOR\ngl_FragColor=vec4(1.0);\n#endif\n}","const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\n#pragma mapbox: define highp vec4 fill_color\n#pragma mapbox: define highp vec4 halo_color\n#pragma mapbox: define lowp float opacity\n#pragma mapbox: define lowp float halo_width\n#pragma mapbox: define lowp float halo_blur\nvoid main() {\n#pragma mapbox: initialize highp vec4 fill_color\n#pragma mapbox: initialize highp vec4 halo_color\n#pragma mapbox: initialize lowp float opacity\n#pragma mapbox: initialize lowp float halo_width\n#pragma mapbox: initialize lowp float halo_blur\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\ncamera_to_anchor_distance/u_camera_to_center_distance :\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}");function gi(t,e){var i=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,o=e.match(/attribute ([\w]+) ([\w]+)/g),r=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),n=a?a.concat(r):r,s={};return {fragmentSource:t=t.replace(i,(function(t,e,i,o,r){return s[r]=!0,"define"===e?"\n#ifndef HAS_UNIFORM_u_"+r+"\nvarying "+i+" "+o+" "+r+";\n#else\nuniform "+i+" "+o+" u_"+r+";\n#endif\n":"\n#ifdef HAS_UNIFORM_u_"+r+"\n "+i+" "+o+" "+r+" = u_"+r+";\n#endif\n"})),vertexSource:e=e.replace(i,(function(t,e,i,o,r){var a="float"===o?"vec2":"vec4",n=r.match(/color/)?"color":a;return s[r]?"define"===e?"\n#ifndef HAS_UNIFORM_u_"+r+"\nuniform lowp float u_"+r+"_t;\nattribute "+i+" "+a+" a_"+r+";\nvarying "+i+" "+o+" "+r+";\n#else\nuniform "+i+" "+o+" u_"+r+";\n#endif\n":"vec4"===n?"\n#ifndef HAS_UNIFORM_u_"+r+"\n "+r+" = a_"+r+";\n#else\n "+i+" "+o+" "+r+" = u_"+r+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+r+"\n "+r+" = unpack_mix_"+n+"(a_"+r+", u_"+r+"_t);\n#else\n "+i+" "+o+" "+r+" = u_"+r+";\n#endif\n":"define"===e?"\n#ifndef HAS_UNIFORM_u_"+r+"\nuniform lowp float u_"+r+"_t;\nattribute "+i+" "+a+" a_"+r+";\n#else\nuniform "+i+" "+o+" u_"+r+";\n#endif\n":"vec4"===n?"\n#ifndef HAS_UNIFORM_u_"+r+"\n "+i+" "+o+" "+r+" = a_"+r+";\n#else\n "+i+" "+o+" "+r+" = u_"+r+";\n#endif\n":"\n#ifndef HAS_UNIFORM_u_"+r+"\n "+i+" "+o+" "+r+" = unpack_mix_"+n+"(a_"+r+", u_"+r+"_t);\n#else\n "+i+" "+o+" "+r+" = u_"+r+";\n#endif\n"})),staticAttributes:o,staticUniforms:n}}var vi=Object.freeze({__proto__:null,prelude:Ge,background:We,backgroundPattern:Xe,circle:He,clippingMask:Ke,heatmap:Ye,heatmapTexture:Je,collisionBox:Qe,collisionCircle:$e,debug:ti,fill:ei,fillOutline:ii,fillOutlinePattern:oi,fillPattern:ri,fillExtrusion:ai,fillExtrusionPattern:ni,hillshadePrepare:si,hillshade:li,line:ci,lineGradient:ui,linePattern:hi,lineSDF:pi,raster:di,symbolIcon:_i,symbolSDF:fi,symbolTextAndIcon:mi}),yi=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null;};function xi(t){for(var e=[],i=0;i<t.length;i++)if(null!==t[i]){var o=t[i].split(" ");e.push(o.pop());}return e}yi.prototype.bind=function(t,e,i,o,r,a,n,s){this.context=t;for(var l=this.boundPaintVertexBuffers.length!==o.length,c=0;!l&&c<o.length;c++)this.boundPaintVertexBuffers[c]!==o[c]&&(l=!0);t.extVertexArrayObject&&this.vao&&this.boundProgram===e&&this.boundLayoutVertexBuffer===i&&!l&&this.boundIndexBuffer===r&&this.boundVertexOffset===a&&this.boundDynamicVertexBuffer===n&&this.boundDynamicVertexBuffer2===s?(t.bindVertexArrayOES.set(this.vao),n&&n.bind(),r&&r.dynamicDraw&&r.bind(),s&&s.bind()):this.freshBind(e,i,o,r,a,n,s);},yi.prototype.freshBind=function(t,e,i,o,r,a,n){var s,l=t.numAttributes,c=this.context,u=c.gl;if(c.extVertexArrayObject)this.vao&&this.destroy(),this.vao=c.extVertexArrayObject.createVertexArrayOES(),c.bindVertexArrayOES.set(this.vao),s=0,this.boundProgram=t,this.boundLayoutVertexBuffer=e,this.boundPaintVertexBuffers=i,this.boundIndexBuffer=o,this.boundVertexOffset=r,this.boundDynamicVertexBuffer=a,this.boundDynamicVertexBuffer2=n;else {s=c.currentNumAttributes||0;for(var h=l;h<s;h++)u.disableVertexAttribArray(h);}e.enableAttributes(u,t);for(var p=0,d=i;p<d.length;p+=1)d[p].enableAttributes(u,t);a&&a.enableAttributes(u,t),n&&n.enableAttributes(u,t),e.bind(),e.setVertexAttribPointers(u,t,r);for(var _=0,f=i;_<f.length;_+=1){var m=f[_];m.bind(),m.setVertexAttribPointers(u,t,r);}a&&(a.bind(),a.setVertexAttribPointers(u,t,r)),o&&o.bind(),n&&(n.bind(),n.setVertexAttribPointers(u,t,r)),c.currentNumAttributes=l;},yi.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null);};var bi=function(t,e,i,o,r,a){var n=t.gl;this.program=n.createProgram();for(var s=xi(i.staticAttributes),l=o?o.getBinderAttributes():[],c=s.concat(l),u=i.staticUniforms?xi(i.staticUniforms):[],h=o?o.getBinderUniforms():[],p=[],d=0,_=u.concat(h);d<_.length;d+=1){var f=_[d];p.indexOf(f)<0&&p.push(f);}var m=o?o.defines():[];a&&m.push("#define OVERDRAW_INSPECTOR;");var g=m.concat(Ge.fragmentSource,i.fragmentSource).join("\n"),v=m.concat(Ge.vertexSource,i.vertexSource).join("\n"),y=n.createShader(n.FRAGMENT_SHADER);if(n.isContextLost())this.failedToCreate=!0;else {n.shaderSource(y,g),n.compileShader(y),n.attachShader(this.program,y);var x=n.createShader(n.VERTEX_SHADER);if(n.isContextLost())this.failedToCreate=!0;else {n.shaderSource(x,v),n.compileShader(x),n.attachShader(this.program,x),this.attributes={};var b={};this.numAttributes=c.length;for(var w=0;w<this.numAttributes;w++)c[w]&&(n.bindAttribLocation(this.program,w,c[w]),this.attributes[c[w]]=w);n.linkProgram(this.program),n.deleteShader(x),n.deleteShader(y);for(var T=0;T<p.length;T++){var E=p[T];if(E&&!b[E]){var I=n.getUniformLocation(this.program,E);I&&(b[E]=I);}}this.fixedUniforms=r(t,b),this.binderUniforms=o?o.getUniforms(t,b):[];}}};function wi(t,e,i){var o=1/pe(i,1,e.transform.tileZoom),r=Math.pow(2,i.tileID.overscaledZ),a=i.tileSize*Math.pow(2,e.transform.tileZoom)/r,n=a*(i.tileID.canonical.x+i.tileID.wrap*r),s=a*i.tileID.canonical.y;return {u_image:0,u_texsize:i.imageAtlasTexture.size,u_scale:[o,t.fromScale,t.toScale],u_fade:t.t,u_pixel_coord_upper:[n>>16,s>>16],u_pixel_coord_lower:[65535&n,65535&s]}}bi.prototype.draw=function(t,e,i,o,r,a,n,s,l,c,u,h,p,d,_,f){var m,g=t.gl;if(!this.failedToCreate){for(var v in t.program.set(this.program),t.setDepthMode(i),t.setStencilMode(o),t.setColorMode(r),t.setCullFace(a),this.fixedUniforms)this.fixedUniforms[v].set(n[v]);d&&d.setUniforms(t,this.binderUniforms,h,{zoom:p});for(var y=(m={},m[g.LINES]=2,m[g.TRIANGLES]=3,m[g.LINE_STRIP]=1,m)[e],x=0,b=u.get();x<b.length;x+=1){var w=b[x],T=w.vaos||(w.vaos={});(T[s]||(T[s]=new yi)).bind(t,this,l,d?d.getPaintVertexBuffers():[],c,w.vertexOffset,_,f),g.drawElements(e,w.primitiveLength*y,g.UNSIGNED_SHORT,w.primitiveOffset*y*2);}}};var Ti=function(e,i,o,r){var a=i.style.light,n=a.properties.get("position"),s=[n.x,n.y,n.z],l=t.create$1();"viewport"===a.properties.get("anchor")&&t.fromRotation(l,-i.transform.angle),t.transformMat3(s,s,l);var c=a.properties.get("color");return {u_matrix:e,u_lightpos:s,u_lightintensity:a.properties.get("intensity"),u_lightcolor:[c.r,c.g,c.b],u_vertical_gradient:+o,u_opacity:r}},Ei=function(e,i,o,r,a,n,s){return t.extend(Ti(e,i,o,r),wi(n,i,s),{u_height_factor:-Math.pow(2,a.overscaledZ)/s.tileSize/8})},Ii=function(t){return {u_matrix:t}},Pi=function(e,i,o,r){return t.extend(Ii(e),wi(o,i,r))},Si=function(t,e){return {u_matrix:t,u_world:e}},Ci=function(e,i,o,r,a){return t.extend(Pi(e,i,o,r),{u_world:a})},zi=function(e,i,o,r){var a,n,s=e.transform;if("map"===r.paint.get("circle-pitch-alignment")){var l=pe(o,1,s.zoom);a=!0,n=[l,l];}else a=!1,n=s.pixelsToGLUnits;return {u_camera_to_center_distance:s.cameraToCenterDistance,u_scale_with_map:+("map"===r.paint.get("circle-pitch-scale")),u_matrix:e.translatePosMatrix(i.posMatrix,o,r.paint.get("circle-translate"),r.paint.get("circle-translate-anchor")),u_pitch_with_map:+a,u_device_pixel_ratio:t.browser.devicePixelRatio,u_extrude_scale:n}},Di=function(t,e,i){var o=pe(i,1,e.zoom),r=Math.pow(2,e.zoom-i.tileID.overscaledZ),a=i.tileID.overscaleFactor();return {u_matrix:t,u_camera_to_center_distance:e.cameraToCenterDistance,u_pixels_to_tile_units:o,u_extrude_scale:[e.pixelsToGLUnits[0]/(o*r),e.pixelsToGLUnits[1]/(o*r)],u_overscale_factor:a}},Ai=function(t,e,i){return {u_matrix:t,u_inv_matrix:e,u_camera_to_center_distance:i.cameraToCenterDistance,u_viewport_size:[i.width,i.height]}},Mi=function(t,e,i){return void 0===i&&(i=1),{u_matrix:t,u_color:e,u_overlay:0,u_overlay_scale:i}},Li=function(t){return {u_matrix:t}},Ri=function(t,e,i,o){return {u_matrix:t,u_extrude_scale:pe(e,1,i),u_intensity:o}},ki=function(e,i,o){var r=e.transform;return {u_matrix:Ni(e,i,o),u_ratio:1/pe(i,1,r.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_units_to_pixels:[1/r.pixelsToGLUnits[0],1/r.pixelsToGLUnits[1]]}},Bi=function(e,i,o,r){return t.extend(ki(e,i,o),{u_image:0,u_image_height:r})},Oi=function(e,i,o,r){var a=e.transform,n=Ui(i,a);return {u_matrix:Ni(e,i,o),u_texsize:i.imageAtlasTexture.size,u_ratio:1/pe(i,1,a.zoom),u_device_pixel_ratio:t.browser.devicePixelRatio,u_image:0,u_scale:[n,r.fromScale,r.toScale],u_fade:r.t,u_units_to_pixels:[1/a.pixelsToGLUnits[0],1/a.pixelsToGLUnits[1]]}},Fi=function(e,i,o,r,a){var n=e.lineAtlas,s=Ui(i,e.transform),l="round"===o.layout.get("line-cap"),c=n.getDash(r.from,l),u=n.getDash(r.to,l),h=c.width*a.fromScale,p=u.width*a.toScale;return t.extend(ki(e,i,o),{u_patternscale_a:[s/h,-c.height/2],u_patternscale_b:[s/p,-u.height/2],u_sdfgamma:n.width/(256*Math.min(h,p)*t.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:c.y,u_tex_y_b:u.y,u_mix:a.t})};function Ui(t,e){return 1/pe(t,1,e.tileZoom)}function Ni(t,e,i){return t.translatePosMatrix(e.tileID.posMatrix,e,i.paint.get("line-translate"),i.paint.get("line-translate-anchor"))}var Zi=function(t,e,i,o,r){return {u_matrix:t,u_tl_parent:e,u_scale_parent:i,u_buffer_scale:1,u_fade_t:o.mix,u_opacity:o.opacity*r.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:r.paint.get("raster-brightness-min"),u_brightness_high:r.paint.get("raster-brightness-max"),u_saturation_factor:(n=r.paint.get("raster-saturation"),n>0?1-1/(1.001-n):-n),u_contrast_factor:(a=r.paint.get("raster-contrast"),a>0?1/(1-a):1+a),u_spin_weights:qi(r.paint.get("raster-hue-rotate"))};var a,n;};function qi(t){t*=Math.PI/180;var e=Math.sin(t),i=Math.cos(t);return [(2*i+1)/3,(-Math.sqrt(3)*e-i+1)/3,(Math.sqrt(3)*e-i+1)/3]}var ji,Vi=function(t,e,i,o,r,a,n,s,l,c){var u=r.transform;return {u_is_size_zoom_constant:+("constant"===t||"source"===t),u_is_size_feature_constant:+("constant"===t||"camera"===t),u_size_t:e?e.uSizeT:0,u_size:e?e.uSize:0,u_camera_to_center_distance:u.cameraToCenterDistance,u_pitch:u.pitch/360*2*Math.PI,u_rotate_symbol:+i,u_aspect_ratio:u.width/u.height,u_fade_change:r.options.fadeDuration?r.symbolFadeChange:1,u_matrix:a,u_label_plane_matrix:n,u_coord_matrix:s,u_is_text:+l,u_pitch_with_map:+o,u_texsize:c,u_texture:0}},Gi=function(e,i,o,r,a,n,s,l,c,u,h){var p=a.transform;return t.extend(Vi(e,i,o,r,a,n,s,l,c,u),{u_gamma_scale:r?Math.cos(p._pitch)*p.cameraToCenterDistance:1,u_device_pixel_ratio:t.browser.devicePixelRatio,u_is_halo:+h})},Wi=function(e,i,o,r,a,n,s,l,c,u){return t.extend(Gi(e,i,o,r,a,n,s,l,!0,c,!0),{u_texsize_icon:u,u_texture_icon:1})},Xi=function(t,e,i){return {u_matrix:t,u_opacity:e,u_color:i}},Hi=function(e,i,o,r,a,n){return t.extend(function(t,e,i,o){var r=i.imageManager.getPattern(t.from.toString()),a=i.imageManager.getPattern(t.to.toString()),n=i.imageManager.getPixelSize(),s=n.width,l=n.height,c=Math.pow(2,o.tileID.overscaledZ),u=o.tileSize*Math.pow(2,i.transform.tileZoom)/c,h=u*(o.tileID.canonical.x+o.tileID.wrap*c),p=u*o.tileID.canonical.y;return {u_image:0,u_pattern_tl_a:r.tl,u_pattern_br_a:r.br,u_pattern_tl_b:a.tl,u_pattern_br_b:a.br,u_texsize:[s,l],u_mix:e.t,u_pattern_size_a:r.displaySize,u_pattern_size_b:a.displaySize,u_scale_a:e.fromScale,u_scale_b:e.toScale,u_tile_units_to_pixels:1/pe(o,1,i.transform.tileZoom),u_pixel_coord_upper:[h>>16,p>>16],u_pixel_coord_lower:[65535&h,65535&p]}}(r,n,o,a),{u_matrix:e,u_opacity:i})},Ki={fillExtrusion:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fillExtrusionPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_lightpos:new t.Uniform3f(e,i.u_lightpos),u_lightintensity:new t.Uniform1f(e,i.u_lightintensity),u_lightcolor:new t.Uniform3f(e,i.u_lightcolor),u_vertical_gradient:new t.Uniform1f(e,i.u_vertical_gradient),u_height_factor:new t.Uniform1f(e,i.u_height_factor),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade),u_opacity:new t.Uniform1f(e,i.u_opacity)}},fill:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},fillPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},fillOutline:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world)}},fillOutlinePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_texsize:new t.Uniform2f(e,i.u_texsize),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},circle:function(e,i){return {u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_scale_with_map:new t.Uniform1i(e,i.u_scale_with_map),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},collisionBox:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pixels_to_tile_units:new t.Uniform1f(e,i.u_pixels_to_tile_units),u_extrude_scale:new t.Uniform2f(e,i.u_extrude_scale),u_overscale_factor:new t.Uniform1f(e,i.u_overscale_factor)}},collisionCircle:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_inv_matrix:new t.UniformMatrix4f(e,i.u_inv_matrix),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_viewport_size:new t.Uniform2f(e,i.u_viewport_size)}},debug:function(e,i){return {u_color:new t.UniformColor(e,i.u_color),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_overlay:new t.Uniform1i(e,i.u_overlay),u_overlay_scale:new t.Uniform1f(e,i.u_overlay_scale)}},clippingMask:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmap:function(e,i){return {u_extrude_scale:new t.Uniform1f(e,i.u_extrude_scale),u_intensity:new t.Uniform1f(e,i.u_intensity),u_matrix:new t.UniformMatrix4f(e,i.u_matrix)}},heatmapTexture:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_world:new t.Uniform2f(e,i.u_world),u_image:new t.Uniform1i(e,i.u_image),u_color_ramp:new t.Uniform1i(e,i.u_color_ramp),u_opacity:new t.Uniform1f(e,i.u_opacity)}},hillshade:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_latrange:new t.Uniform2f(e,i.u_latrange),u_light:new t.Uniform2f(e,i.u_light),u_shadow:new t.UniformColor(e,i.u_shadow),u_highlight:new t.UniformColor(e,i.u_highlight),u_accent:new t.UniformColor(e,i.u_accent)}},hillshadePrepare:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_image:new t.Uniform1i(e,i.u_image),u_dimension:new t.Uniform2f(e,i.u_dimension),u_zoom:new t.Uniform1f(e,i.u_zoom),u_unpack:new t.Uniform4f(e,i.u_unpack)}},line:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels)}},lineGradient:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_image:new t.Uniform1i(e,i.u_image),u_image_height:new t.Uniform1f(e,i.u_image_height)}},linePattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_texsize:new t.Uniform2f(e,i.u_texsize),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_image:new t.Uniform1i(e,i.u_image),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_scale:new t.Uniform3f(e,i.u_scale),u_fade:new t.Uniform1f(e,i.u_fade)}},lineSDF:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_ratio:new t.Uniform1f(e,i.u_ratio),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_units_to_pixels:new t.Uniform2f(e,i.u_units_to_pixels),u_patternscale_a:new t.Uniform2f(e,i.u_patternscale_a),u_patternscale_b:new t.Uniform2f(e,i.u_patternscale_b),u_sdfgamma:new t.Uniform1f(e,i.u_sdfgamma),u_image:new t.Uniform1i(e,i.u_image),u_tex_y_a:new t.Uniform1f(e,i.u_tex_y_a),u_tex_y_b:new t.Uniform1f(e,i.u_tex_y_b),u_mix:new t.Uniform1f(e,i.u_mix)}},raster:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_tl_parent:new t.Uniform2f(e,i.u_tl_parent),u_scale_parent:new t.Uniform1f(e,i.u_scale_parent),u_buffer_scale:new t.Uniform1f(e,i.u_buffer_scale),u_fade_t:new t.Uniform1f(e,i.u_fade_t),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image0:new t.Uniform1i(e,i.u_image0),u_image1:new t.Uniform1i(e,i.u_image1),u_brightness_low:new t.Uniform1f(e,i.u_brightness_low),u_brightness_high:new t.Uniform1f(e,i.u_brightness_high),u_saturation_factor:new t.Uniform1f(e,i.u_saturation_factor),u_contrast_factor:new t.Uniform1f(e,i.u_contrast_factor),u_spin_weights:new t.Uniform3f(e,i.u_spin_weights)}},symbolIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture)}},symbolSDF:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texture:new t.Uniform1i(e,i.u_texture),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},symbolTextAndIcon:function(e,i){return {u_is_size_zoom_constant:new t.Uniform1i(e,i.u_is_size_zoom_constant),u_is_size_feature_constant:new t.Uniform1i(e,i.u_is_size_feature_constant),u_size_t:new t.Uniform1f(e,i.u_size_t),u_size:new t.Uniform1f(e,i.u_size),u_camera_to_center_distance:new t.Uniform1f(e,i.u_camera_to_center_distance),u_pitch:new t.Uniform1f(e,i.u_pitch),u_rotate_symbol:new t.Uniform1i(e,i.u_rotate_symbol),u_aspect_ratio:new t.Uniform1f(e,i.u_aspect_ratio),u_fade_change:new t.Uniform1f(e,i.u_fade_change),u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_label_plane_matrix:new t.UniformMatrix4f(e,i.u_label_plane_matrix),u_coord_matrix:new t.UniformMatrix4f(e,i.u_coord_matrix),u_is_text:new t.Uniform1i(e,i.u_is_text),u_pitch_with_map:new t.Uniform1i(e,i.u_pitch_with_map),u_texsize:new t.Uniform2f(e,i.u_texsize),u_texsize_icon:new t.Uniform2f(e,i.u_texsize_icon),u_texture:new t.Uniform1i(e,i.u_texture),u_texture_icon:new t.Uniform1i(e,i.u_texture_icon),u_gamma_scale:new t.Uniform1f(e,i.u_gamma_scale),u_device_pixel_ratio:new t.Uniform1f(e,i.u_device_pixel_ratio),u_is_halo:new t.Uniform1i(e,i.u_is_halo)}},background:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_color:new t.UniformColor(e,i.u_color)}},backgroundPattern:function(e,i){return {u_matrix:new t.UniformMatrix4f(e,i.u_matrix),u_opacity:new t.Uniform1f(e,i.u_opacity),u_image:new t.Uniform1i(e,i.u_image),u_pattern_tl_a:new t.Uniform2f(e,i.u_pattern_tl_a),u_pattern_br_a:new t.Uniform2f(e,i.u_pattern_br_a),u_pattern_tl_b:new t.Uniform2f(e,i.u_pattern_tl_b),u_pattern_br_b:new t.Uniform2f(e,i.u_pattern_br_b),u_texsize:new t.Uniform2f(e,i.u_texsize),u_mix:new t.Uniform1f(e,i.u_mix),u_pattern_size_a:new t.Uniform2f(e,i.u_pattern_size_a),u_pattern_size_b:new t.Uniform2f(e,i.u_pattern_size_b),u_scale_a:new t.Uniform1f(e,i.u_scale_a),u_scale_b:new t.Uniform1f(e,i.u_scale_b),u_pixel_coord_upper:new t.Uniform2f(e,i.u_pixel_coord_upper),u_pixel_coord_lower:new t.Uniform2f(e,i.u_pixel_coord_lower),u_tile_units_to_pixels:new t.Uniform1f(e,i.u_tile_units_to_pixels)}}};function Yi(e,i,o,r,a,n,s){for(var l=e.context,c=l.gl,u=e.useProgram("collisionBox"),h=[],p=0,d=0,_=0;_<r.length;_++){var f=r[_],m=i.getTile(f),g=m.getBucket(o);if(g){var v=f.posMatrix;0===a[0]&&0===a[1]||(v=e.translatePosMatrix(f.posMatrix,m,a,n));var y=s?g.textCollisionBox:g.iconCollisionBox,x=g.collisionCircleArray;if(x.length>0){var b=t.create(),w=v;t.mul(b,g.placementInvProjMatrix,e.transform.glCoordMatrix),t.mul(b,b,g.placementViewportMatrix),h.push({circleArray:x,circleOffset:d,transform:w,invTransform:b}),d=p+=x.length/4;}y&&u.draw(l,c.LINES,It.disabled,Pt.disabled,e.colorModeForRenderPass(),Ct.disabled,Di(v,e.transform,m),o.id,y.layoutVertexBuffer,y.indexBuffer,y.segments,null,e.transform.zoom,null,null,y.collisionVertexBuffer);}}if(s&&h.length){var T=e.useProgram("collisionCircle"),E=new t.StructArrayLayout2f1f2i16;E.resize(4*p),E._trim();for(var I=0,P=0,S=h;P<S.length;P+=1)for(var C=S[P],z=0;z<C.circleArray.length/4;z++){var D=4*z,A=C.circleArray[D+0],M=C.circleArray[D+1],L=C.circleArray[D+2],R=C.circleArray[D+3];E.emplace(I++,A,M,L,R,0),E.emplace(I++,A,M,L,R,1),E.emplace(I++,A,M,L,R,2),E.emplace(I++,A,M,L,R,3);}(!ji||ji.length<2*p)&&(ji=function(e){var i=2*e,o=new t.StructArrayLayout3ui6;o.resize(i),o._trim();for(var r=0;r<i;r++){var a=6*r;o.uint16[a+0]=4*r+0,o.uint16[a+1]=4*r+1,o.uint16[a+2]=4*r+2,o.uint16[a+3]=4*r+2,o.uint16[a+4]=4*r+3,o.uint16[a+5]=4*r+0;}return o}(p));for(var k=l.createIndexBuffer(ji,!0),B=l.createVertexBuffer(E,t.collisionCircleLayout.members,!0),O=0,F=h;O<F.length;O+=1){var U=F[O],N=Ai(U.transform,U.invTransform,e.transform);T.draw(l,c.TRIANGLES,It.disabled,Pt.disabled,e.colorModeForRenderPass(),Ct.disabled,N,o.id,B,k,t.SegmentVector.simpleSegment(0,2*U.circleOffset,U.circleArray.length,U.circleArray.length/2),null,e.transform.zoom,null,null,null);}B.destroy(),k.destroy();}}var Ji=t.identity(new Float32Array(16));function Qi(e,i,o,r,a,n){var s=t.getAnchorAlignment(e),l=-(s.horizontalAlign-.5)*i,c=-(s.verticalAlign-.5)*o,u=t.evaluateVariableOffset(e,r);return new t.Point((l/a+u[0])*n,(c/a+u[1])*n)}function $i(e,i,o,r,a,n,s,l,c,u,h){var p=e.text.placedSymbolArray,d=e.text.dynamicLayoutVertexArray,_=e.icon.dynamicLayoutVertexArray,f={};d.clear();for(var m=0;m<p.length;m++){var g=p.get(m),v=g.hidden||!g.crossTileID||e.allowVerticalPlacement&&!g.placedOrientation?null:r[g.crossTileID];if(v){var y=new t.Point(g.anchorX,g.anchorY),x=$t(y,o?l:s),b=te(n.cameraToCenterDistance,x.signedDistanceFromCamera),w=a.evaluateSizeForFeature(e.textSizeData,u,g)*b/t.ONE_EM;o&&(w*=e.tilePixelRatio/c);for(var T=Qi(v.anchor,v.width,v.height,v.textOffset,v.textBoxScale,w),E=o?$t(y.add(T),s).point:x.point.add(i?T.rotate(-n.angle):T),I=e.allowVerticalPlacement&&g.placedOrientation===t.WritingMode.vertical?Math.PI/2:0,P=0;P<g.numGlyphs;P++)t.addDynamicAttributes(d,E,I);h&&g.associatedIconIndex>=0&&(f[g.associatedIconIndex]={shiftedAnchor:E,angle:I});}else ce(g.numGlyphs,d);}if(h){_.clear();for(var S=e.icon.placedSymbolArray,C=0;C<S.length;C++){var z=S.get(C);if(z.hidden)ce(z.numGlyphs,_);else {var D=f[C];if(D)for(var A=0;A<z.numGlyphs;A++)t.addDynamicAttributes(_,D.shiftedAnchor,D.angle);else ce(z.numGlyphs,_);}}e.icon.dynamicLayoutVertexBuffer.updateData(_);}e.text.dynamicLayoutVertexBuffer.updateData(d);}function to(t,e,i){return i.iconsInText&&e?"symbolTextAndIcon":t?"symbolSDF":"symbolIcon"}function eo(e,i,o,r,a,n,s,l,c,u,h,p){for(var d=e.context,_=d.gl,f=e.transform,m="map"===l,g="map"===c,v=m&&"point"!==o.layout.get("symbol-placement"),y=m&&!g&&!v,x=void 0!==o.layout.get("symbol-sort-key").constantOr(1),b=!1,w=e.depthModeForSublayer(0,It.ReadOnly),T=o.layout.get("text-variable-anchor"),E=[],I=0,P=r;I<P.length;I+=1){var S=P[I],C=i.getTile(S),z=C.getBucket(o);if(z){var D=a?z.text:z.icon;if(D&&D.segments.get().length){var A=D.programConfigurations.get(o.id),M=a||z.sdfIcons,L=a?z.textSizeData:z.iconSizeData,R=g||0!==f.pitch,k=e.useProgram(to(M,a,z),A),B=t.evaluateSizeForZoom(L,f.zoom),O=void 0,F=[0,0],U=void 0,N=void 0,Z=null,q=void 0;if(a)U=C.glyphAtlasTexture,N=_.LINEAR,O=C.glyphAtlasTexture.size,z.iconsInText&&(F=C.imageAtlasTexture.size,Z=C.imageAtlasTexture,q=R||e.options.rotating||e.options.zooming||"composite"===L.kind||"camera"===L.kind?_.LINEAR:_.NEAREST);else {var j=1!==o.layout.get("icon-size").constantOr(0)||z.iconsNeedLinear;U=C.imageAtlasTexture,N=M||e.options.rotating||e.options.zooming||j||R?_.LINEAR:_.NEAREST,O=C.imageAtlasTexture.size;}var V=pe(C,1,e.transform.zoom),G=Jt(S.posMatrix,g,m,e.transform,V),W=Qt(S.posMatrix,g,m,e.transform,V),X=T&&z.hasTextData(),H="none"!==o.layout.get("icon-text-fit")&&X&&z.hasIconData();v&&ie(z,S.posMatrix,e,a,G,W,g,u);var K=e.translatePosMatrix(S.posMatrix,C,n,s),Y=v||a&&T||H?Ji:G,J=e.translatePosMatrix(W,C,n,s,!0),Q=M&&0!==o.paint.get(a?"text-halo-width":"icon-halo-width").constantOr(1),$={program:k,buffers:D,uniformValues:M?z.iconsInText?Wi(L.kind,B,y,g,e,K,Y,J,O,F):Gi(L.kind,B,y,g,e,K,Y,J,a,O,!0):Vi(L.kind,B,y,g,e,K,Y,J,a,O),atlasTexture:U,atlasTextureIcon:Z,atlasInterpolation:N,atlasInterpolationIcon:q,isSDF:M,hasHalo:Q};if(x&&z.canOverlap){b=!0;for(var tt=0,et=D.segments.get();tt<et.length;tt+=1){var it=et[tt];E.push({segments:new t.SegmentVector([it]),sortKey:it.sortKey,state:$});}}else E.push({segments:D.segments,sortKey:0,state:$});}}}b&&E.sort((function(t,e){return t.sortKey-e.sortKey}));for(var ot=0,rt=E;ot<rt.length;ot+=1){var at=rt[ot],nt=at.state;if(d.activeTexture.set(_.TEXTURE0),nt.atlasTexture.bind(nt.atlasInterpolation,_.CLAMP_TO_EDGE),nt.atlasTextureIcon&&(d.activeTexture.set(_.TEXTURE1),nt.atlasTextureIcon&&nt.atlasTextureIcon.bind(nt.atlasInterpolationIcon,_.CLAMP_TO_EDGE)),nt.isSDF){var st=nt.uniformValues;nt.hasHalo&&(st.u_is_halo=1,io(nt.buffers,at.segments,o,e,nt.program,w,h,p,st)),st.u_is_halo=0;}io(nt.buffers,at.segments,o,e,nt.program,w,h,p,nt.uniformValues);}}function io(t,e,i,o,r,a,n,s,l){var c=o.context;r.draw(c,c.gl.TRIANGLES,a,n,s,Ct.disabled,l,i.id,t.layoutVertexBuffer,t.indexBuffer,e,i.paint,o.transform.zoom,t.programConfigurations.get(i.id),t.dynamicLayoutVertexBuffer,t.opacityVertexBuffer);}function oo(t,e,i,o,r,a,n){var s,l,c,u,h,p=t.context.gl,d=i.paint.get("fill-pattern"),_=d&&d.constantOr(1),f=i.getCrossfadeParameters();n?(l=_&&!i.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",s=p.LINES):(l=_?"fillPattern":"fill",s=p.TRIANGLES);for(var m=0,g=o;m<g.length;m+=1){var v=g[m],y=e.getTile(v);if(!_||y.patternsLoaded()){var x=y.getBucket(i);if(x){var b=x.programConfigurations.get(i.id),w=t.useProgram(l,b);_&&(t.context.activeTexture.set(p.TEXTURE0),y.imageAtlasTexture.bind(p.LINEAR,p.CLAMP_TO_EDGE),b.updatePaintBuffers(f));var T=d.constantOr(null);if(T&&y.imageAtlas){var E=y.imageAtlas,I=E.patternPositions[T.to.toString()],P=E.patternPositions[T.from.toString()];I&&P&&b.setConstantPatternPositions(I,P);}var S=t.translatePosMatrix(v.posMatrix,y,i.paint.get("fill-translate"),i.paint.get("fill-translate-anchor"));if(n){u=x.indexBuffer2,h=x.segments2;var C=[p.drawingBufferWidth,p.drawingBufferHeight];c="fillOutlinePattern"===l&&_?Ci(S,t,f,y,C):Si(S,C);}else u=x.indexBuffer,h=x.segments,c=_?Pi(S,t,f,y):Ii(S);w.draw(t.context,s,r,t.stencilModeForClipping(v),a,Ct.disabled,c,i.id,x.layoutVertexBuffer,u,h,i.paint,t.transform.zoom,b);}}}}function ro(t,e,i,o,r,a,n){for(var s=t.context,l=s.gl,c=i.paint.get("fill-extrusion-pattern"),u=c.constantOr(1),h=i.getCrossfadeParameters(),p=i.paint.get("fill-extrusion-opacity"),d=0,_=o;d<_.length;d+=1){var f=_[d],m=e.getTile(f),g=m.getBucket(i);if(g){var v=g.programConfigurations.get(i.id),y=t.useProgram(u?"fillExtrusionPattern":"fillExtrusion",v);u&&(t.context.activeTexture.set(l.TEXTURE0),m.imageAtlasTexture.bind(l.LINEAR,l.CLAMP_TO_EDGE),v.updatePaintBuffers(h));var x=c.constantOr(null);if(x&&m.imageAtlas){var b=m.imageAtlas,w=b.patternPositions[x.to.toString()],T=b.patternPositions[x.from.toString()];w&&T&&v.setConstantPatternPositions(w,T);}var E=t.translatePosMatrix(f.posMatrix,m,i.paint.get("fill-extrusion-translate"),i.paint.get("fill-extrusion-translate-anchor")),I=i.paint.get("fill-extrusion-vertical-gradient"),P=u?Ei(E,t,I,p,f,h,m):Ti(E,t,I,p);y.draw(s,s.gl.TRIANGLES,r,a,n,Ct.backCCW,P,i.id,g.layoutVertexBuffer,g.indexBuffer,g.segments,i.paint,t.transform.zoom,v);}}}function ao(e,i,o,r,a,n){var s=e.context,l=s.gl,c=i.fbo;if(c){var u=e.useProgram("hillshade");s.activeTexture.set(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,c.colorAttachment.get());var h=function(e,i,o){var r=o.paint.get("hillshade-shadow-color"),a=o.paint.get("hillshade-highlight-color"),n=o.paint.get("hillshade-accent-color"),s=o.paint.get("hillshade-illumination-direction")*(Math.PI/180);"viewport"===o.paint.get("hillshade-illumination-anchor")&&(s-=e.transform.angle);var l,c,u,h=!e.options.moving;return {u_matrix:e.transform.calculatePosMatrix(i.tileID.toUnwrapped(),h),u_image:0,u_latrange:(l=i.tileID,c=Math.pow(2,l.canonical.z),u=l.canonical.y,[new t.MercatorCoordinate(0,u/c).toLngLat().lat,new t.MercatorCoordinate(0,(u+1)/c).toLngLat().lat]),u_light:[o.paint.get("hillshade-exaggeration"),s],u_shadow:r,u_highlight:a,u_accent:n}}(e,i,o);u.draw(s,l.TRIANGLES,r,a,n,Ct.disabled,h,o.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments);}}function no(e,i,o,r,a,n){var s=e.context,l=s.gl,c=i.dem;if(c&&c.data){var u=c.dim,h=c.stride,p=c.getPixels();if(s.activeTexture.set(l.TEXTURE1),s.pixelStoreUnpackPremultiplyAlpha.set(!1),i.demTexture=i.demTexture||e.getTileTexture(h),i.demTexture){var d=i.demTexture;d.update(p,{premultiply:!1}),d.bind(l.NEAREST,l.CLAMP_TO_EDGE);}else i.demTexture=new t.Texture(s,p,l.RGBA,{premultiply:!1}),i.demTexture.bind(l.NEAREST,l.CLAMP_TO_EDGE);s.activeTexture.set(l.TEXTURE0);var _=i.fbo;if(!_){var f=new t.Texture(s,{width:u,height:u,data:null},l.RGBA);f.bind(l.LINEAR,l.CLAMP_TO_EDGE),(_=i.fbo=s.createFramebuffer(u,u,!0)).colorAttachment.set(f.texture);}s.bindFramebuffer.set(_.framebuffer),s.viewport.set([0,0,u,u]),e.useProgram("hillshadePrepare").draw(s,l.TRIANGLES,r,a,n,Ct.disabled,function(e,i){var o=i.stride,r=t.create();return t.ortho(r,0,t.EXTENT,-t.EXTENT,0,0,1),t.translate(r,r,[0,-t.EXTENT,0]),{u_matrix:r,u_image:1,u_dimension:[o,o],u_zoom:e.overscaledZ,u_unpack:i.getUnpackVector()}}(i.tileID,c),o.id,e.rasterBoundsBuffer,e.quadTriangleIndexBuffer,e.rasterBoundsSegments),i.needsHillshadePrepare=!1;}}function so(e,i,o,r,a){var n=r.paint.get("raster-fade-duration");if(n>0){var s=t.browser.now(),l=(s-e.timeAdded)/n,c=i?(s-i.timeAdded)/n:-1,u=o.getSource(),h=a.coveringZoomLevel({tileSize:u.tileSize,roundZoom:u.roundZoom}),p=!i||Math.abs(i.tileID.overscaledZ-h)>Math.abs(e.tileID.overscaledZ-h),d=p&&e.refreshedUponExpiration?1:t.clamp(p?l:1-c,0,1);return e.refreshedUponExpiration&&l>=1&&(e.refreshedUponExpiration=!1),i?{opacity:1,mix:1-d}:{opacity:d,mix:0}}return {opacity:1,mix:0}}var lo=new t.Color(1,0,0,1),co=new t.Color(0,1,0,1),uo=new t.Color(0,0,1,1),ho=new t.Color(1,0,1,1),po=new t.Color(0,1,1,1);function _o(t,e,i,o){mo(t,0,e+i/2,t.transform.width,i,o);}function fo(t,e,i,o){mo(t,e-i/2,0,i,t.transform.height,o);}function mo(e,i,o,r,a,n){var s=e.context,l=s.gl;l.enable(l.SCISSOR_TEST),l.scissor(i*t.browser.devicePixelRatio,o*t.browser.devicePixelRatio,r*t.browser.devicePixelRatio,a*t.browser.devicePixelRatio),s.clear({color:n}),l.disable(l.SCISSOR_TEST);}function go(e,i,o){var r=e.context,a=r.gl,n=o.posMatrix,s=e.useProgram("debug"),l=It.disabled,c=Pt.disabled,u=e.colorModeForRenderPass();r.activeTexture.set(a.TEXTURE0),e.emptyTexture.bind(a.LINEAR,a.CLAMP_TO_EDGE),s.draw(r,a.LINE_STRIP,l,c,u,Ct.disabled,Mi(n,t.Color.red),"$debug",e.debugBuffer,e.tileBorderIndexBuffer,e.debugSegments);var h=i.getTileByID(o.key).latestRawTileData,p=Math.floor((h&&h.byteLength||0)/1024),d=i.getTile(o).tileSize,_=512/Math.min(d,512)*(o.overscaledZ/e.transform.zoom)*.5,f=o.canonical.toString();o.overscaledZ!==o.canonical.z&&(f+=" => "+o.overscaledZ),function(t,e){t.initDebugOverlayCanvas();var i=t.debugOverlayCanvas,o=t.context.gl,r=t.debugOverlayCanvas.getContext("2d");r.clearRect(0,0,i.width,i.height),r.shadowColor="white",r.shadowBlur=2,r.lineWidth=1.5,r.strokeStyle="white",r.textBaseline="top",r.font="bold 36px Open Sans, sans-serif",r.fillText(e,5,5),r.strokeText(e,5,5),t.debugOverlayTexture.update(i),t.debugOverlayTexture.bind(o.LINEAR,o.CLAMP_TO_EDGE);}(e,f+" "+p+"kb"),s.draw(r,a.TRIANGLES,l,c,St.alphaBlended,Ct.disabled,Mi(n,t.Color.transparent,_),"$debug",e.debugBuffer,e.quadTriangleIndexBuffer,e.debugSegments);}var vo={symbol:function(e,i,o,r,a){if("translucent"===e.renderPass){var n=Pt.disabled,s=e.colorModeForRenderPass();o.layout.get("text-variable-anchor")&&function(e,i,o,r,a,n,s){for(var l=i.transform,c="map"===a,u="map"===n,h=0,p=e;h<p.length;h+=1){var d=p[h],_=r.getTile(d),f=_.getBucket(o);if(f&&f.text&&f.text.segments.get().length){var m=t.evaluateSizeForZoom(f.textSizeData,l.zoom),g=pe(_,1,i.transform.zoom),v=Jt(d.posMatrix,u,c,i.transform,g),y="none"!==o.layout.get("icon-text-fit")&&f.hasIconData();if(m){var x=Math.pow(2,l.zoom-_.tileID.overscaledZ);$i(f,c,u,s,t.symbolSize,l,v,d.posMatrix,x,m,y);}}}}(r,e,o,i,o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),a),0!==o.paint.get("icon-opacity").constantOr(1)&&eo(e,i,o,r,!1,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),o.layout.get("icon-rotation-alignment"),o.layout.get("icon-pitch-alignment"),o.layout.get("icon-keep-upright"),n,s),0!==o.paint.get("text-opacity").constantOr(1)&&eo(e,i,o,r,!0,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),o.layout.get("text-rotation-alignment"),o.layout.get("text-pitch-alignment"),o.layout.get("text-keep-upright"),n,s),i.map.showCollisionBoxes&&(Yi(e,i,o,r,o.paint.get("text-translate"),o.paint.get("text-translate-anchor"),!0),Yi(e,i,o,r,o.paint.get("icon-translate"),o.paint.get("icon-translate-anchor"),!1));}},circle:function(e,i,o,r){if("translucent"===e.renderPass){var a=o.paint.get("circle-opacity"),n=o.paint.get("circle-stroke-width"),s=o.paint.get("circle-stroke-opacity"),l=void 0!==o.layout.get("circle-sort-key").constantOr(1);if(0!==a.constantOr(1)||0!==n.constantOr(1)&&0!==s.constantOr(1)){for(var c=e.context,u=c.gl,h=e.depthModeForSublayer(0,It.ReadOnly),p=Pt.disabled,d=e.colorModeForRenderPass(),_=[],f=0;f<r.length;f++){var m=r[f],g=i.getTile(m),v=g.getBucket(o);if(v){var y=v.programConfigurations.get(o.id),x={programConfiguration:y,program:e.useProgram("circle",y),layoutVertexBuffer:v.layoutVertexBuffer,indexBuffer:v.indexBuffer,uniformValues:zi(e,m,g,o)};if(l)for(var b=0,w=v.segments.get();b<w.length;b+=1){var T=w[b];_.push({segments:new t.SegmentVector([T]),sortKey:T.sortKey,state:x});}else _.push({segments:v.segments,sortKey:0,state:x});}}l&&_.sort((function(t,e){return t.sortKey-e.sortKey}));for(var E=0,I=_;E<I.length;E+=1){var P=I[E],S=P.state;S.program.draw(c,u.TRIANGLES,h,p,d,Ct.disabled,S.uniformValues,o.id,S.layoutVertexBuffer,S.indexBuffer,P.segments,o.paint,e.transform.zoom,S.programConfiguration);}}}},heatmap:function(e,i,o,r){if(0!==o.paint.get("heatmap-opacity"))if("offscreen"===e.renderPass){var a=e.context,n=a.gl,s=Pt.disabled,l=new St([n.ONE,n.ONE],t.Color.transparent,[!0,!0,!0,!0]);!function(t,e,i){var o=t.gl;t.activeTexture.set(o.TEXTURE1),t.viewport.set([0,0,e.width/4,e.height/4]);var r=i.heatmapFbo;if(r)o.bindTexture(o.TEXTURE_2D,r.colorAttachment.get()),t.bindFramebuffer.set(r.framebuffer);else {var a=o.createTexture();o.bindTexture(o.TEXTURE_2D,a),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),r=i.heatmapFbo=t.createFramebuffer(e.width/4,e.height/4,!1),function(t,e,i,o){var r=t.gl;r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width/4,e.height/4,0,r.RGBA,t.extRenderToTextureHalfFloat?t.extTextureHalfFloat.HALF_FLOAT_OES:r.UNSIGNED_BYTE,null),o.colorAttachment.set(i);}(t,e,a,r);}}(a,e,o),a.clear({color:t.Color.transparent});for(var c=0;c<r.length;c++){var u=r[c];if(!i.hasRenderableParent(u)){var h=i.getTile(u),p=h.getBucket(o);if(p){var d=p.programConfigurations.get(o.id);e.useProgram("heatmap",d).draw(a,n.TRIANGLES,It.disabled,s,l,Ct.disabled,Ri(u.posMatrix,h,e.transform.zoom,o.paint.get("heatmap-intensity")),o.id,p.layoutVertexBuffer,p.indexBuffer,p.segments,o.paint,e.transform.zoom,d);}}}a.viewport.set([0,0,e.width,e.height]);}else "translucent"===e.renderPass&&(e.context.setColorMode(e.colorModeForRenderPass()),function(e,i){var o=e.context,r=o.gl,a=i.heatmapFbo;if(a){o.activeTexture.set(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,a.colorAttachment.get()),o.activeTexture.set(r.TEXTURE1);var n=i.colorRampTexture;n||(n=i.colorRampTexture=new t.Texture(o,i.colorRamp,r.RGBA)),n.bind(r.LINEAR,r.CLAMP_TO_EDGE),e.useProgram("heatmapTexture").draw(o,r.TRIANGLES,It.disabled,Pt.disabled,e.colorModeForRenderPass(),Ct.disabled,function(e,i,o,r){var a=t.create();t.ortho(a,0,e.width,e.height,0,0,1);var n=e.context.gl;return {u_matrix:a,u_world:[n.drawingBufferWidth,n.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:i.paint.get("heatmap-opacity")}}(e,i),i.id,e.viewportBuffer,e.quadTriangleIndexBuffer,e.viewportSegments,i.paint,e.transform.zoom);}}(e,o));},line:function(e,i,o,r){if("translucent"===e.renderPass){var a=o.paint.get("line-opacity"),n=o.paint.get("line-width");if(0!==a.constantOr(1)&&0!==n.constantOr(1))for(var s=e.depthModeForSublayer(0,It.ReadOnly),l=e.colorModeForRenderPass(),c=o.paint.get("line-dasharray"),u=o.paint.get("line-pattern"),h=u.constantOr(1),p=o.paint.get("line-gradient"),d=o.getCrossfadeParameters(),_=h?"linePattern":c?"lineSDF":p?"lineGradient":"line",f=e.context,m=f.gl,g=!0,v=0,y=r;v<y.length;v+=1){var x=y[v],b=i.getTile(x);if(!h||b.patternsLoaded()){var w=b.getBucket(o);if(w){var T=w.programConfigurations.get(o.id),E=e.context.program.get(),I=e.useProgram(_,T),P=g||I.program!==E,S=u.constantOr(null);if(S&&b.imageAtlas){var C=b.imageAtlas,z=C.patternPositions[S.to.toString()],D=C.patternPositions[S.from.toString()];z&&D&&T.setConstantPatternPositions(z,D);}var A=h?Oi(e,b,o,d):c?Fi(e,b,o,c,d):p?Bi(e,b,o,w.lineClipsArray.length):ki(e,b,o);if(h)f.activeTexture.set(m.TEXTURE0),b.imageAtlasTexture.bind(m.LINEAR,m.CLAMP_TO_EDGE),T.updatePaintBuffers(d);else if(c&&(P||e.lineAtlas.dirty))f.activeTexture.set(m.TEXTURE0),e.lineAtlas.bind(f);else if(p){var M=w.gradients[o.id],L=M.texture;if(o.gradientVersion!==M.version){var R=256;if(o.stepInterpolant){var k=i.getSource().maxzoom,B=x.canonical.z===k?Math.ceil(1<<e.transform.maxZoom-x.canonical.z):1;R=t.clamp(t.nextPowerOfTwo(w.maxLineLength/t.EXTENT*1024*B),256,f.maxTextureSize);}M.gradient=t.renderColorRamp({expression:o.gradientExpression(),evaluationKey:"lineProgress",resolution:R,image:M.gradient||void 0,clips:w.lineClipsArray}),M.texture?M.texture.update(M.gradient):M.texture=new t.Texture(f,M.gradient,m.RGBA),M.version=o.gradientVersion,L=M.texture;}f.activeTexture.set(m.TEXTURE0),L.bind(o.stepInterpolant?m.NEAREST:m.LINEAR,m.CLAMP_TO_EDGE);}I.draw(f,m.TRIANGLES,s,e.stencilModeForClipping(x),l,Ct.disabled,A,o.id,w.layoutVertexBuffer,w.indexBuffer,w.segments,o.paint,e.transform.zoom,T,w.layoutVertexBuffer2),g=!1;}}}}},fill:function(e,i,o,r){var a=o.paint.get("fill-color"),n=o.paint.get("fill-opacity");if(0!==n.constantOr(1)){var s=e.colorModeForRenderPass(),l=o.paint.get("fill-pattern"),c=e.opaquePassEnabledForLayer()&&!l.constantOr(1)&&1===a.constantOr(t.Color.transparent).a&&1===n.constantOr(0)?"opaque":"translucent";if(e.renderPass===c){var u=e.depthModeForSublayer(1,"opaque"===e.renderPass?It.ReadWrite:It.ReadOnly);oo(e,i,o,r,u,s,!1);}if("translucent"===e.renderPass&&o.paint.get("fill-antialias")){var h=e.depthModeForSublayer(o.getPaintProperty("fill-outline-color")?2:0,It.ReadOnly);oo(e,i,o,r,h,s,!0);}}},"fill-extrusion":function(t,e,i,o){var r=i.paint.get("fill-extrusion-opacity");if(0!==r&&"translucent"===t.renderPass){var a=new It(t.context.gl.LEQUAL,It.ReadWrite,t.depthRangeFor3D);if(1!==r||i.paint.get("fill-extrusion-pattern").constantOr(1))ro(t,e,i,o,a,Pt.disabled,St.disabled),ro(t,e,i,o,a,t.stencilModeFor3D(),t.colorModeForRenderPass());else {var n=t.colorModeForRenderPass();ro(t,e,i,o,a,Pt.disabled,n);}}},hillshade:function(t,e,i,o){if("offscreen"===t.renderPass||"translucent"===t.renderPass){for(var r=t.context,a=t.depthModeForSublayer(0,It.ReadOnly),n=t.colorModeForRenderPass(),s="translucent"===t.renderPass?t.stencilConfigForOverlap(o):[{},o],l=s[0],c=0,u=s[1];c<u.length;c+=1){var h=u[c],p=e.getTile(h);p.needsHillshadePrepare&&"offscreen"===t.renderPass?no(t,p,i,a,Pt.disabled,n):"translucent"===t.renderPass&&ao(t,p,i,a,l[h.overscaledZ],n);}r.viewport.set([0,0,t.width,t.height]);}},raster:function(t,e,i,o){if("translucent"===t.renderPass&&0!==i.paint.get("raster-opacity")&&o.length)for(var r=t.context,a=r.gl,n=e.getSource(),s=t.useProgram("raster"),l=t.colorModeForRenderPass(),c=n instanceof M?[{},o]:t.stencilConfigForOverlap(o),u=c[0],h=c[1],p=h[h.length-1].overscaledZ,d=!t.options.moving,_=0,f=h;_<f.length;_+=1){var m=f[_],g=t.depthModeForSublayer(m.overscaledZ-p,1===i.paint.get("raster-opacity")?It.ReadWrite:It.ReadOnly,a.LESS),v=e.getTile(m),y=t.transform.calculatePosMatrix(m.toUnwrapped(),d);v.registerFadeDuration(i.paint.get("raster-fade-duration"));var x=e.findLoadedParent(m,0),b=so(v,x,e,i,t.transform),w=void 0,T=void 0,E="nearest"===i.paint.get("raster-resampling")?a.NEAREST:a.LINEAR;r.activeTexture.set(a.TEXTURE0),v.texture.bind(E,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST),r.activeTexture.set(a.TEXTURE1),x?(x.texture.bind(E,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST),w=Math.pow(2,x.tileID.overscaledZ-v.tileID.overscaledZ),T=[v.tileID.canonical.x*w%1,v.tileID.canonical.y*w%1]):v.texture.bind(E,a.CLAMP_TO_EDGE,a.LINEAR_MIPMAP_NEAREST);var I=Zi(y,T||[0,0],w||1,b,i);n instanceof M?s.draw(r,a.TRIANGLES,g,Pt.disabled,l,Ct.disabled,I,i.id,n.boundsBuffer,t.quadTriangleIndexBuffer,n.boundsSegments):s.draw(r,a.TRIANGLES,g,u[m.overscaledZ],l,Ct.disabled,I,i.id,t.rasterBoundsBuffer,t.quadTriangleIndexBuffer,t.rasterBoundsSegments);}},background:function(t,e,i){var o=i.paint.get("background-color"),r=i.paint.get("background-opacity");if(0!==r){var a=t.context,n=a.gl,s=t.transform,l=s.tileSize,c=i.paint.get("background-pattern");if(!t.isPatternMissing(c)){var u=!c&&1===o.a&&1===r&&t.opaquePassEnabledForLayer()?"opaque":"translucent";if(t.renderPass===u){var h=Pt.disabled,p=t.depthModeForSublayer(0,"opaque"===u?It.ReadWrite:It.ReadOnly),d=t.colorModeForRenderPass(),_=t.useProgram(c?"backgroundPattern":"background"),f=s.coveringTiles({tileSize:l});c&&(a.activeTexture.set(n.TEXTURE0),t.imageManager.bind(t.context));for(var m=i.getCrossfadeParameters(),g=0,v=f;g<v.length;g+=1){var y=v[g],x=t.transform.calculatePosMatrix(y.toUnwrapped()),b=c?Hi(x,r,t,c,{tileID:y,tileSize:l},m):Xi(x,r,o);_.draw(a,n.TRIANGLES,p,h,d,Ct.disabled,b,i.id,t.tileExtentBuffer,t.quadTriangleIndexBuffer,t.tileExtentSegments);}}}}},debug:function(t,e,i){for(var o=0;o<i.length;o++)go(t,e,i[o]);},custom:function(t,e,i){var o=t.context,r=i.implementation;if("offscreen"===t.renderPass){var a=r.prerender;a&&(t.setCustomLayerDefaults(),o.setColorMode(t.colorModeForRenderPass()),a.call(r,o.gl,t.transform.customLayerMatrix()),o.setDirty(),t.setBaseState());}else if("translucent"===t.renderPass){t.setCustomLayerDefaults(),o.setColorMode(t.colorModeForRenderPass()),o.setStencilMode(Pt.disabled);var n="3d"===r.renderingMode?new It(t.context.gl.LEQUAL,It.ReadWrite,t.depthRangeFor3D):t.depthModeForSublayer(0,It.ReadOnly);o.setDepthMode(n),r.render(o.gl,t.transform.customLayerMatrix()),o.setDirty(),t.setBaseState(),o.bindFramebuffer.set(null);}}},yo=function(t,e){this.context=new zt(t),this.transform=e,this._tileTextures={},this.setup(),this.numSublayers=Dt.maxUnderzooming+Dt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new Fe,this.gpuTimers={};};yo.prototype.resize=function(e,i){if(this.width=e*t.browser.devicePixelRatio,this.height=i*t.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var o=0,r=this.style._order;o<r.length;o+=1)this.style._layers[r[o]].resize();},yo.prototype.setup=function(){var e=this.context,i=new t.StructArrayLayout2i4;i.emplaceBack(0,0),i.emplaceBack(t.EXTENT,0),i.emplaceBack(0,t.EXTENT),i.emplaceBack(t.EXTENT,t.EXTENT),this.tileExtentBuffer=e.createVertexBuffer(i,Ve.members),this.tileExtentSegments=t.SegmentVector.simpleSegment(0,0,4,2);var o=new t.StructArrayLayout2i4;o.emplaceBack(0,0),o.emplaceBack(t.EXTENT,0),o.emplaceBack(0,t.EXTENT),o.emplaceBack(t.EXTENT,t.EXTENT),this.debugBuffer=e.createVertexBuffer(o,Ve.members),this.debugSegments=t.SegmentVector.simpleSegment(0,0,4,5);var r=new t.StructArrayLayout4i8;r.emplaceBack(0,0,0,0),r.emplaceBack(t.EXTENT,0,t.EXTENT,0),r.emplaceBack(0,t.EXTENT,0,t.EXTENT),r.emplaceBack(t.EXTENT,t.EXTENT,t.EXTENT,t.EXTENT),this.rasterBoundsBuffer=e.createVertexBuffer(r,A.members),this.rasterBoundsSegments=t.SegmentVector.simpleSegment(0,0,4,2);var a=new t.StructArrayLayout2i4;a.emplaceBack(0,0),a.emplaceBack(1,0),a.emplaceBack(0,1),a.emplaceBack(1,1),this.viewportBuffer=e.createVertexBuffer(a,Ve.members),this.viewportSegments=t.SegmentVector.simpleSegment(0,0,4,2);var n=new t.StructArrayLayout1ui2;n.emplaceBack(0),n.emplaceBack(1),n.emplaceBack(3),n.emplaceBack(2),n.emplaceBack(0),this.tileBorderIndexBuffer=e.createIndexBuffer(n);var s=new t.StructArrayLayout3ui6;s.emplaceBack(0,1,2),s.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=e.createIndexBuffer(s),this.emptyTexture=new t.Texture(e,{width:1,height:1,data:new Uint8Array([0,0,0,0])},e.gl.RGBA);var l=this.context.gl;this.stencilClearMode=new Pt({func:l.ALWAYS,mask:0},0,255,l.ZERO,l.ZERO,l.ZERO);},yo.prototype.clearStencil=function(){var e=this.context,i=e.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var o=t.create();t.ortho(o,0,this.width,this.height,0,0,1),t.scale(o,o,[i.drawingBufferWidth,i.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(e,i.TRIANGLES,It.disabled,this.stencilClearMode,St.disabled,Ct.disabled,Li(o),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments);},yo.prototype._renderTileClippingMasks=function(t,e){if(this.currentStencilSource!==t.source&&t.isTileClipped()&&e&&e.length){this.currentStencilSource=t.source;var i=this.context,o=i.gl;this.nextStencilID+e.length>256&&this.clearStencil(),i.setColorMode(St.disabled),i.setDepthMode(It.disabled);var r=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var a=0,n=e;a<n.length;a+=1){var s=n[a],l=this._tileClippingMaskIDs[s.key]=this.nextStencilID++;r.draw(i,o.TRIANGLES,It.disabled,new Pt({func:o.ALWAYS,mask:0},l,255,o.KEEP,o.KEEP,o.REPLACE),St.disabled,Ct.disabled,Li(s.posMatrix),"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments);}}},yo.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();var t=this.nextStencilID++,e=this.context.gl;return new Pt({func:e.NOTEQUAL,mask:255},t,255,e.KEEP,e.KEEP,e.REPLACE)},yo.prototype.stencilModeForClipping=function(t){var e=this.context.gl;return new Pt({func:e.EQUAL,mask:255},this._tileClippingMaskIDs[t.key],0,e.KEEP,e.KEEP,e.REPLACE)},yo.prototype.stencilConfigForOverlap=function(t){var e,i=this.context.gl,o=t.sort((function(t,e){return e.overscaledZ-t.overscaledZ})),r=o[o.length-1].overscaledZ,a=o[0].overscaledZ-r+1;if(a>1){this.currentStencilSource=void 0,this.nextStencilID+a>256&&this.clearStencil();for(var n={},s=0;s<a;s++)n[s+r]=new Pt({func:i.GEQUAL,mask:255},s+this.nextStencilID,255,i.KEEP,i.KEEP,i.REPLACE);return this.nextStencilID+=a,[n,o]}return [(e={},e[r]=Pt.disabled,e),o]},yo.prototype.colorModeForRenderPass=function(){var e=this.context.gl;return this._showOverdrawInspector?new St([e.CONSTANT_COLOR,e.ONE],new t.Color(1/8,1/8,1/8,0),[!0,!0,!0,!0]):"opaque"===this.renderPass?St.unblended:St.alphaBlended},yo.prototype.depthModeForSublayer=function(t,e,i){if(!this.opaquePassEnabledForLayer())return It.disabled;var o=1-((1+this.currentLayer)*this.numSublayers+t)*this.depthEpsilon;return new It(i||this.context.gl.LEQUAL,e,[o,o])},yo.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},yo.prototype.render=function(e,i){var o=this;this.style=e,this.options=i,this.lineAtlas=e.lineAtlas,this.imageManager=e.imageManager,this.glyphManager=e.glyphManager,this.symbolFadeChange=e.placement.symbolFadeChange(t.browser.now()),this.imageManager.beginFrame();var r=this.style._order,a=this.style.sourceCaches;for(var n in a){var s=a[n];s.used&&s.prepare(this.context);}var l,c,u={},h={},p={};for(var d in a){var _=a[d];u[d]=_.getVisibleCoordinates(),h[d]=u[d].slice().reverse(),p[d]=_.getVisibleCoordinates(!0).reverse();}this.opaquePassCutoff=1/0;for(var f=0;f<r.length;f++)if(this.style._layers[r[f]].is3D()){this.opaquePassCutoff=f;break}this.renderPass="offscreen";for(var m=0,g=r;m<g.length;m+=1){var v=this.style._layers[g[m]];if(v.hasOffscreenPass()&&!v.isHidden(this.transform.zoom)){var y=h[v.source];("custom"===v.type||y.length)&&this.renderLayer(this,a[v.source],v,y);}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:i.showOverdrawInspector?t.Color.black:t.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=i.showOverdrawInspector,this.depthRangeFor3D=[0,1-(e._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass="opaque",this.currentLayer=r.length-1;this.currentLayer>=0;this.currentLayer--){var x=this.style._layers[r[this.currentLayer]],b=a[x.source],w=u[x.source];this._renderTileClippingMasks(x,w),this.renderLayer(this,b,x,w);}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<r.length;this.currentLayer++){var T=this.style._layers[r[this.currentLayer]],E=a[T.source],I=("symbol"===T.type?p:h)[T.source];this._renderTileClippingMasks(T,u[T.source]),this.renderLayer(this,E,T,I);}this.options.showTileBoundaries&&(t.values(this.style._layers).forEach((function(t){t.source&&!t.isHidden(o.transform.zoom)&&(t.source!==(c&&c.id)&&(c=o.style.sourceCaches[t.source]),(!l||l.getSource().maxzoom<c.getSource().maxzoom)&&(l=c));})),l&&vo.debug(this,l,l.getVisibleCoordinates())),this.options.showPadding&&function(t){var e=t.transform.padding;_o(t,t.transform.height-(e.top||0),3,lo),_o(t,e.bottom||0,3,co),fo(t,e.left||0,3,uo),fo(t,t.transform.width-(e.right||0),3,ho);var i=t.transform.centerPoint;!function(t,e,i,o){mo(t,e-1,i-10,2,20,o),mo(t,e-10,i-1,20,2,o);}(t,i.x,t.transform.height-i.y,po);}(this),this.context.setDefault();},yo.prototype.renderLayer=function(t,e,i,o){i.isHidden(this.transform.zoom)||("background"===i.type||"custom"===i.type||o.length)&&(this.id=i.id,this.gpuTimingStart(i),vo[i.type](t,e,i,o,this.style.placement.variableOffsets),this.gpuTimingEnd());},yo.prototype.gpuTimingStart=function(t){if(this.options.gpuTiming){var e=this.context.extTimerQuery,i=this.gpuTimers[t.id];i||(i=this.gpuTimers[t.id]={calls:0,cpuTime:0,query:e.createQueryEXT()}),i.calls++,e.beginQueryEXT(e.TIME_ELAPSED_EXT,i.query);}},yo.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var t=this.context.extTimerQuery;t.endQueryEXT(t.TIME_ELAPSED_EXT);}},yo.prototype.collectGpuTimers=function(){var t=this.gpuTimers;return this.gpuTimers={},t},yo.prototype.queryGpuTimers=function(t){var e={};for(var i in t){var o=t[i],r=this.context.extTimerQuery,a=r.getQueryObjectEXT(o.query,r.QUERY_RESULT_EXT)/1e6;r.deleteQueryEXT(o.query),e[i]=a;}return e},yo.prototype.translatePosMatrix=function(e,i,o,r,a){if(!o[0]&&!o[1])return e;var n=a?"map"===r?this.transform.angle:0:"viewport"===r?-this.transform.angle:0;if(n){var s=Math.sin(n),l=Math.cos(n);o=[o[0]*l-o[1]*s,o[0]*s+o[1]*l];}var c=[a?o[0]:pe(i,o[0],this.transform.zoom),a?o[1]:pe(i,o[1],this.transform.zoom),0],u=new Float32Array(16);return t.translate(u,e,c),u},yo.prototype.saveTileTexture=function(t){var e=this._tileTextures[t.size[0]];e?e.push(t):this._tileTextures[t.size[0]]=[t];},yo.prototype.getTileTexture=function(t){var e=this._tileTextures[t];return e&&e.length>0?e.pop():null},yo.prototype.isPatternMissing=function(t){if(!t)return !1;if(!t.from||!t.to)return !0;var e=this.imageManager.getPattern(t.from.toString()),i=this.imageManager.getPattern(t.to.toString());return !e||!i},yo.prototype.useProgram=function(t,e){this.cache=this.cache||{};var i=""+t+(e?e.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[i]||(this.cache[i]=new bi(this.context,t,vi[t],e,Ki[t],this._showOverdrawInspector)),this.cache[i]},yo.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault();},yo.prototype.setBaseState=function(){var t=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(t.FUNC_ADD);},yo.prototype.initDebugOverlayCanvas=function(){null==this.debugOverlayCanvas&&(this.debugOverlayCanvas=t.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new t.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA));},yo.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy();};var xo=function(t,e){this.points=t,this.planes=e;};xo.fromInvProjectionMatrix=function(e,i,o){var r=Math.pow(2,o),a=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(i){return t.transformMat4([],i,e)})).map((function(e){return t.scale$1([],e,1/e[3]/i*r)})),n=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(e){var i=t.sub([],a[e[0]],a[e[1]]),o=t.sub([],a[e[2]],a[e[1]]),r=t.normalize([],t.cross([],i,o)),n=-t.dot(r,a[e[1]]);return r.concat(n)}));return new xo(a,n)};var bo=function(e,i){this.min=e,this.max=i,this.center=t.scale$2([],t.add([],this.min,this.max),.5);};bo.prototype.quadrant=function(e){for(var i=[e%2==0,e<2],o=t.clone$2(this.min),r=t.clone$2(this.max),a=0;a<i.length;a++)o[a]=i[a]?this.min[a]:this.center[a],r[a]=i[a]?this.center[a]:this.max[a];return r[2]=this.max[2],new bo(o,r)},bo.prototype.distanceX=function(t){return Math.max(Math.min(this.max[0],t[0]),this.min[0])-t[0]},bo.prototype.distanceY=function(t){return Math.max(Math.min(this.max[1],t[1]),this.min[1])-t[1]},bo.prototype.intersects=function(e){for(var i=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],o=!0,r=0;r<e.planes.length;r++){for(var a=e.planes[r],n=0,s=0;s<i.length;s++)n+=t.dot$1(a,i[s])>=0;if(0===n)return 0;n!==i.length&&(o=!1);}if(o)return 2;for(var l=0;l<3;l++){for(var c=Number.MAX_VALUE,u=-Number.MAX_VALUE,h=0;h<e.points.length;h++){var p=e.points[h][l]-this.min[l];c=Math.min(c,p),u=Math.max(u,p);}if(u<0||c>this.max[l]-this.min[l])return 0}return 1};var wo=function(t,e,i,o){if(void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===o&&(o=0),isNaN(t)||t<0||isNaN(e)||e<0||isNaN(i)||i<0||isNaN(o)||o<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=t,this.bottom=e,this.left=i,this.right=o;};wo.prototype.interpolate=function(e,i,o){return null!=i.top&&null!=e.top&&(this.top=t.number(e.top,i.top,o)),null!=i.bottom&&null!=e.bottom&&(this.bottom=t.number(e.bottom,i.bottom,o)),null!=i.left&&null!=e.left&&(this.left=t.number(e.left,i.left,o)),null!=i.right&&null!=e.right&&(this.right=t.number(e.right,i.right,o)),this},wo.prototype.getCenter=function(e,i){var o=t.clamp((this.left+e-this.right)/2,0,e),r=t.clamp((this.top+i-this.bottom)/2,0,i);return new t.Point(o,r)},wo.prototype.equals=function(t){return this.top===t.top&&this.bottom===t.bottom&&this.left===t.left&&this.right===t.right},wo.prototype.clone=function(){return new wo(this.top,this.bottom,this.left,this.right)},wo.prototype.toJSON=function(){return {top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var To=function(e,i,o,r,a){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=void 0===a||a,this._minZoom=e||0,this._maxZoom=i||22,this._minPitch=null==o?0:o,this._maxPitch=null==r?60:r,this.setMaxBounds(),this.width=0,this.height=0,this._center=new t.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new wo,this._posMatrixCache={},this._alignedPosMatrixCache={};},Eo={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};To.prototype.clone=function(){var t=new To(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return t.tileSize=this.tileSize,t.latRange=this.latRange,t.width=this.width,t.height=this.height,t._center=this._center,t.zoom=this.zoom,t.angle=this.angle,t._fov=this._fov,t._pitch=this._pitch,t._unmodified=this._unmodified,t._edgeInsets=this._edgeInsets.clone(),t._calcMatrices(),t},Eo.minZoom.get=function(){return this._minZoom},Eo.minZoom.set=function(t){this._minZoom!==t&&(this._minZoom=t,this.zoom=Math.max(this.zoom,t));},Eo.maxZoom.get=function(){return this._maxZoom},Eo.maxZoom.set=function(t){this._maxZoom!==t&&(this._maxZoom=t,this.zoom=Math.min(this.zoom,t));},Eo.minPitch.get=function(){return this._minPitch},Eo.minPitch.set=function(t){this._minPitch!==t&&(this._minPitch=t,this.pitch=Math.max(this.pitch,t));},Eo.maxPitch.get=function(){return this._maxPitch},Eo.maxPitch.set=function(t){this._maxPitch!==t&&(this._maxPitch=t,this.pitch=Math.min(this.pitch,t));},Eo.renderWorldCopies.get=function(){return this._renderWorldCopies},Eo.renderWorldCopies.set=function(t){void 0===t?t=!0:null===t&&(t=!1),this._renderWorldCopies=t;},Eo.worldSize.get=function(){return this.tileSize*this.scale},Eo.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Eo.size.get=function(){return new t.Point(this.width,this.height)},Eo.bearing.get=function(){return -this.angle/Math.PI*180},Eo.bearing.set=function(e){var i=-t.wrap(e,-180,180)*Math.PI/180;this.angle!==i&&(this._unmodified=!1,this.angle=i,this._calcMatrices(),this.rotationMatrix=t.create$2(),t.rotate(this.rotationMatrix,this.rotationMatrix,this.angle));},Eo.pitch.get=function(){return this._pitch/Math.PI*180},Eo.pitch.set=function(e){var i=t.clamp(e,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==i&&(this._unmodified=!1,this._pitch=i,this._calcMatrices());},Eo.fov.get=function(){return this._fov/Math.PI*180},Eo.fov.set=function(t){t=Math.max(.01,Math.min(60,t)),this._fov!==t&&(this._unmodified=!1,this._fov=t/180*Math.PI,this._calcMatrices());},Eo.zoom.get=function(){return this._zoom},Eo.zoom.set=function(t){var e=Math.min(Math.max(t,this.minZoom),this.maxZoom);this._zoom!==e&&(this._unmodified=!1,this._zoom=e,this.scale=this.zoomScale(e),this.tileZoom=Math.floor(e),this.zoomFraction=e-this.tileZoom,this._constrain(),this._calcMatrices());},Eo.center.get=function(){return this._center},Eo.center.set=function(t){t.lat===this._center.lat&&t.lng===this._center.lng||(this._unmodified=!1,this._center=t,this._constrain(),this._calcMatrices());},Eo.padding.get=function(){return this._edgeInsets.toJSON()},Eo.padding.set=function(t){this._edgeInsets.equals(t)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,t,1),this._calcMatrices());},Eo.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},To.prototype.isPaddingEqual=function(t){return this._edgeInsets.equals(t)},To.prototype.interpolatePadding=function(t,e,i){this._unmodified=!1,this._edgeInsets.interpolate(t,e,i),this._constrain(),this._calcMatrices();},To.prototype.coveringZoomLevel=function(t){var e=(t.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/t.tileSize));return Math.max(0,e)},To.prototype.getVisibleUnwrappedCoordinates=function(e){var i=[new t.UnwrappedTileID(0,e)];if(this._renderWorldCopies)for(var o=this.pointCoordinate(new t.Point(0,0)),r=this.pointCoordinate(new t.Point(this.width,0)),a=this.pointCoordinate(new t.Point(this.width,this.height)),n=this.pointCoordinate(new t.Point(0,this.height)),s=Math.floor(Math.min(o.x,r.x,a.x,n.x)),l=Math.floor(Math.max(o.x,r.x,a.x,n.x)),c=s-1;c<=l+1;c++)0!==c&&i.push(new t.UnwrappedTileID(c,e));return i},To.prototype.coveringTiles=function(e){var i=this.coveringZoomLevel(e),o=i;if(void 0!==e.minzoom&&i<e.minzoom)return [];void 0!==e.maxzoom&&i>e.maxzoom&&(i=e.maxzoom);var r=t.MercatorCoordinate.fromLngLat(this.center),a=Math.pow(2,i),n=[a*r.x,a*r.y,0],s=xo.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,i),l=e.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(l=i);var c=function(t){return {aabb:new bo([t*a,0,0],[(t+1)*a,a,0]),zoom:0,x:0,y:0,wrap:t,fullyVisible:!1}},u=[],h=[],p=i,d=e.reparseOverscaled?o:i;if(this._renderWorldCopies)for(var _=1;_<=3;_++)u.push(c(-_)),u.push(c(_));for(u.push(c(0));u.length>0;){var f=u.pop(),m=f.x,g=f.y,v=f.fullyVisible;if(!v){var y=f.aabb.intersects(s);if(0===y)continue;v=2===y;}var x=f.aabb.distanceX(n),b=f.aabb.distanceY(n),w=Math.max(Math.abs(x),Math.abs(b));if(f.zoom===p||w>3+(1<<p-f.zoom)-2&&f.zoom>=l)h.push({tileID:new t.OverscaledTileID(f.zoom===p?d:f.zoom,f.wrap,f.zoom,m,g),distanceSq:t.sqrLen([n[0]-.5-m,n[1]-.5-g])});else for(var T=0;T<4;T++){var E=(m<<1)+T%2,I=(g<<1)+(T>>1);u.push({aabb:f.aabb.quadrant(T),zoom:f.zoom+1,x:E,y:I,wrap:f.wrap,fullyVisible:v});}}return h.sort((function(t,e){return t.distanceSq-e.distanceSq})).map((function(t){return t.tileID}))},To.prototype.resize=function(t,e){this.width=t,this.height=e,this.pixelsToGLUnits=[2/t,-2/e],this._constrain(),this._calcMatrices();},Eo.unmodified.get=function(){return this._unmodified},To.prototype.zoomScale=function(t){return Math.pow(2,t)},To.prototype.scaleZoom=function(t){return Math.log(t)/Math.LN2},To.prototype.project=function(e){var i=t.clamp(e.lat,-this.maxValidLatitude,this.maxValidLatitude);return new t.Point(t.mercatorXfromLng(e.lng)*this.worldSize,t.mercatorYfromLat(i)*this.worldSize)},To.prototype.unproject=function(e){return new t.MercatorCoordinate(e.x/this.worldSize,e.y/this.worldSize).toLngLat()},Eo.point.get=function(){return this.project(this.center)},To.prototype.setLocationAtPoint=function(e,i){var o=this.pointCoordinate(i),r=this.pointCoordinate(this.centerPoint),a=this.locationCoordinate(e),n=new t.MercatorCoordinate(a.x-(o.x-r.x),a.y-(o.y-r.y));this.center=this.coordinateLocation(n),this._renderWorldCopies&&(this.center=this.center.wrap());},To.prototype.locationPoint=function(t){return this.coordinatePoint(this.locationCoordinate(t))},To.prototype.pointLocation=function(t){return this.coordinateLocation(this.pointCoordinate(t))},To.prototype.locationCoordinate=function(e){return t.MercatorCoordinate.fromLngLat(e)},To.prototype.coordinateLocation=function(t){return t.toLngLat()},To.prototype.pointCoordinate=function(e){var i=[e.x,e.y,0,1],o=[e.x,e.y,1,1];t.transformMat4(i,i,this.pixelMatrixInverse),t.transformMat4(o,o,this.pixelMatrixInverse);var r=i[3],a=o[3],n=i[1]/r,s=o[1]/a,l=i[2]/r,c=o[2]/a,u=l===c?0:(0-l)/(c-l);return new t.MercatorCoordinate(t.number(i[0]/r,o[0]/a,u)/this.worldSize,t.number(n,s,u)/this.worldSize)},To.prototype.coordinatePoint=function(e){var i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix),new t.Point(i[0]/i[3],i[1]/i[3])},To.prototype.getBounds=function(){return (new t.LngLatBounds).extend(this.pointLocation(new t.Point(0,0))).extend(this.pointLocation(new t.Point(this.width,0))).extend(this.pointLocation(new t.Point(this.width,this.height))).extend(this.pointLocation(new t.Point(0,this.height)))},To.prototype.getMaxBounds=function(){return this.latRange&&2===this.latRange.length&&this.lngRange&&2===this.lngRange.length?new t.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},To.prototype.setMaxBounds=function(t){t?(this.lngRange=[t.getWest(),t.getEast()],this.latRange=[t.getSouth(),t.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude]);},To.prototype.calculatePosMatrix=function(e,i){void 0===i&&(i=!1);var o=e.key,r=i?this._alignedPosMatrixCache:this._posMatrixCache;if(r[o])return r[o];var a=e.canonical,n=this.worldSize/this.zoomScale(a.z),s=a.x+Math.pow(2,a.z)*e.wrap,l=t.identity(new Float64Array(16));return t.translate(l,l,[s*n,a.y*n,0]),t.scale(l,l,[n/t.EXTENT,n/t.EXTENT,1]),t.multiply(l,i?this.alignedProjMatrix:this.projMatrix,l),r[o]=new Float32Array(l),r[o]},To.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},To.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var e,i,o,r,a=-90,n=90,s=-180,l=180,c=this.size,u=this._unmodified;if(this.latRange){var h=this.latRange;a=t.mercatorYfromLat(h[1])*this.worldSize,e=(n=t.mercatorYfromLat(h[0])*this.worldSize)-a<c.y?c.y/(n-a):0;}if(this.lngRange){var p=this.lngRange;s=t.mercatorXfromLng(p[0])*this.worldSize,i=(l=t.mercatorXfromLng(p[1])*this.worldSize)-s<c.x?c.x/(l-s):0;}var d=this.point,_=Math.max(i||0,e||0);if(_)return this.center=this.unproject(new t.Point(i?(l+s)/2:d.x,e?(n+a)/2:d.y)),this.zoom+=this.scaleZoom(_),this._unmodified=u,void(this._constraining=!1);if(this.latRange){var f=d.y,m=c.y/2;f-m<a&&(r=a+m),f+m>n&&(r=n-m);}if(this.lngRange){var g=d.x,v=c.x/2;g-v<s&&(o=s+v),g+v>l&&(o=l-v);}void 0===o&&void 0===r||(this.center=this.unproject(new t.Point(void 0!==o?o:d.x,void 0!==r?r:d.y))),this._unmodified=u,this._constraining=!1;}},To.prototype._calcMatrices=function(){if(this.height){var e=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var i=Math.PI/2+this._pitch,o=this._fov*(.5+e.y/this.height),r=Math.sin(o)*this.cameraToCenterDistance/Math.sin(t.clamp(Math.PI-i-o,.01,Math.PI-.01)),a=this.point,n=a.x,s=a.y,l=1.01*(Math.cos(Math.PI/2-this._pitch)*r+this.cameraToCenterDistance),c=this.height/50,u=new Float64Array(16);t.perspective(u,this._fov,this.width/this.height,c,l),u[8]=2*-e.x/this.width,u[9]=2*e.y/this.height,t.scale(u,u,[1,-1,1]),t.translate(u,u,[0,0,-this.cameraToCenterDistance]),t.rotateX(u,u,this._pitch),t.rotateZ(u,u,this.angle),t.translate(u,u,[-n,-s,0]),this.mercatorMatrix=t.scale([],u,[this.worldSize,this.worldSize,this.worldSize]),t.scale(u,u,[1,1,t.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=u,this.invProjMatrix=t.invert([],this.projMatrix);var h=this.width%2/2,p=this.height%2/2,d=Math.cos(this.angle),_=Math.sin(this.angle),f=n-Math.round(n)+d*h+_*p,m=s-Math.round(s)+d*p+_*h,g=new Float64Array(u);if(t.translate(g,g,[f>.5?f-1:f,m>.5?m-1:m,0]),this.alignedProjMatrix=g,u=t.create(),t.scale(u,u,[this.width/2,-this.height/2,1]),t.translate(u,u,[1,-1,0]),this.labelPlaneMatrix=u,u=t.create(),t.scale(u,u,[1,-1,1]),t.translate(u,u,[-1,-1,0]),t.scale(u,u,[2/this.width,2/this.height,1]),this.glCoordMatrix=u,this.pixelMatrix=t.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(u=t.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=u,this._posMatrixCache={},this._alignedPosMatrixCache={};}},To.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var e=this.pointCoordinate(new t.Point(0,0)),i=[e.x*this.worldSize,e.y*this.worldSize,0,1];return t.transformMat4(i,i,this.pixelMatrix)[3]/this.cameraToCenterDistance},To.prototype.getCameraPoint=function(){var e=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new t.Point(0,e))},To.prototype.getCameraQueryGeometry=function(e){var i=this.getCameraPoint();if(1===e.length)return [e[0],i];for(var o=i.x,r=i.y,a=i.x,n=i.y,s=0,l=e;s<l.length;s+=1){var c=l[s];o=Math.min(o,c.x),r=Math.min(r,c.y),a=Math.max(a,c.x),n=Math.max(n,c.y);}return [new t.Point(o,r),new t.Point(a,r),new t.Point(a,n),new t.Point(o,n),new t.Point(o,r)]},Object.defineProperties(To.prototype,Eo);var Io=function(e){var i,o,r,a;this._hashName=e&&encodeURIComponent(e),t.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=(i=this._updateHashUnthrottled.bind(this),o=!1,r=null,a=function(){r=null,o&&(i(),r=setTimeout(a,300),o=!1);},function(){return o=!0,r||a(),r});};Io.prototype.addTo=function(e){return this._map=e,t.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Io.prototype.remove=function(){return t.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},Io.prototype.getHashString=function(e){var i=this._map.getCenter(),o=Math.round(100*this._map.getZoom())/100,r=Math.ceil((o*Math.LN2+Math.log(512/360/.5))/Math.LN10),a=Math.pow(10,r),n=Math.round(i.lng*a)/a,s=Math.round(i.lat*a)/a,l=this._map.getBearing(),c=this._map.getPitch(),u="";if(u+=e?"/"+n+"/"+s+"/"+o:o+"/"+s+"/"+n,(l||c)&&(u+="/"+Math.round(10*l)/10),c&&(u+="/"+Math.round(c)),this._hashName){var h=this._hashName,p=!1,d=t.window.location.hash.slice(1).split("&").map((function(t){var e=t.split("=")[0];return e===h?(p=!0,e+"="+u):t})).filter((function(t){return t}));return p||d.push(h+"="+u),"#"+d.join("&")}return "#"+u},Io.prototype._getCurrentHash=function(){var e,i=this,o=t.window.location.hash.replace("#","");return this._hashName?(o.split("&").map((function(t){return t.split("=")})).forEach((function(t){t[0]===i._hashName&&(e=t);})),(e&&e[1]||"").split("/")):o.split("/")},Io.prototype._onHashChange=function(){var t=this._getCurrentHash();if(t.length>=3&&!t.some((function(t){return isNaN(t)}))){var e=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(t[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+t[2],+t[1]],zoom:+t[0],bearing:e,pitch:+(t[4]||0)}),!0}return !1},Io.prototype._updateHashUnthrottled=function(){var e=t.window.location.href.replace(/(#.+)?$/,this.getHashString());try{t.window.history.replaceState(t.window.history.state,null,e);}catch(t){}};var Po={linearity:.3,easing:t.bezier(0,0,.3,1)},So=t.extend({deceleration:2500,maxSpeed:1400},Po),Co=t.extend({deceleration:20,maxSpeed:1400},Po),zo=t.extend({deceleration:1e3,maxSpeed:360},Po),Do=t.extend({deceleration:1e3,maxSpeed:90},Po),Ao=function(t){this._map=t,this.clear();};function Mo(t,e){(!t.duration||t.duration<e.duration)&&(t.duration=e.duration,t.easing=e.easing);}function Lo(e,i,o){var r=o.maxSpeed,a=o.linearity,n=o.deceleration,s=t.clamp(e*a/(i/1e3),-r,r),l=Math.abs(s)/(n*a);return {easing:o.easing,duration:1e3*l,amount:s*(l/2)}}Ao.prototype.clear=function(){this._inertiaBuffer=[];},Ao.prototype.record=function(e){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:t.browser.now(),settings:e});},Ao.prototype._drainInertiaBuffer=function(){for(var e=this._inertiaBuffer,i=t.browser.now();e.length>0&&i-e[0].time>160;)e.shift();},Ao.prototype._onMoveEnd=function(e){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var i={zoom:0,bearing:0,pitch:0,pan:new t.Point(0,0),pinchAround:void 0,around:void 0},o=0,r=this._inertiaBuffer;o<r.length;o+=1){var a=r[o].settings;i.zoom+=a.zoomDelta||0,i.bearing+=a.bearingDelta||0,i.pitch+=a.pitchDelta||0,a.panDelta&&i.pan._add(a.panDelta),a.around&&(i.around=a.around),a.pinchAround&&(i.pinchAround=a.pinchAround);}var n=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,s={};if(i.pan.mag()){var l=Lo(i.pan.mag(),n,t.extend({},So,e||{}));s.offset=i.pan.mult(l.amount/i.pan.mag()),s.center=this._map.transform.center,Mo(s,l);}if(i.zoom){var c=Lo(i.zoom,n,Co);s.zoom=this._map.transform.zoom+c.amount,Mo(s,c);}if(i.bearing){var u=Lo(i.bearing,n,zo);s.bearing=this._map.transform.bearing+t.clamp(u.amount,-179,179),Mo(s,u);}if(i.pitch){var h=Lo(i.pitch,n,Do);s.pitch=this._map.transform.pitch+h.amount,Mo(s,h);}if(s.zoom||s.bearing){var p=void 0===i.pinchAround?i.around:i.pinchAround;s.around=p?this._map.unproject(p):this._map.getCenter();}return this.clear(),t.extend(s,{noMoveStart:!0})}};var Ro=function(e){function o(o,r,a,n){void 0===n&&(n={});var s=i.mousePos(r.getCanvasContainer(),a),l=r.unproject(s);e.call(this,o,t.extend({point:s,lngLat:l,originalEvent:a},n)),this._defaultPrevented=!1,this.target=r;}e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o;var r={defaultPrevented:{configurable:!0}};return o.prototype.preventDefault=function(){this._defaultPrevented=!0;},r.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(o.prototype,r),o}(t.Event),ko=function(e){function o(o,r,a){var n="touchend"===o?a.changedTouches:a.touches,s=i.touchPos(r.getCanvasContainer(),n),l=s.map((function(t){return r.unproject(t)})),c=s.reduce((function(t,e,i,o){return t.add(e.div(o.length))}),new t.Point(0,0)),u=r.unproject(c);e.call(this,o,{points:s,point:c,lngLats:l,lngLat:u,originalEvent:a}),this._defaultPrevented=!1;}e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o;var r={defaultPrevented:{configurable:!0}};return o.prototype.preventDefault=function(){this._defaultPrevented=!0;},r.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(o.prototype,r),o}(t.Event),Bo=function(t){function e(e,i,o){t.call(this,e,{originalEvent:o}),this._defaultPrevented=!1;}t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e;var i={defaultPrevented:{configurable:!0}};return e.prototype.preventDefault=function(){this._defaultPrevented=!0;},i.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(e.prototype,i),e}(t.Event),Oo=function(t,e){this._map=t,this._clickTolerance=e.clickTolerance;};Oo.prototype.reset=function(){delete this._mousedownPos;},Oo.prototype.wheel=function(t){return this._firePreventable(new Bo(t.type,this._map,t))},Oo.prototype.mousedown=function(t,e){return this._mousedownPos=e,this._firePreventable(new Ro(t.type,this._map,t))},Oo.prototype.mouseup=function(t){this._map.fire(new Ro(t.type,this._map,t));},Oo.prototype.click=function(t,e){this._mousedownPos&&this._mousedownPos.dist(e)>=this._clickTolerance||this._map.fire(new Ro(t.type,this._map,t));},Oo.prototype.dblclick=function(t){return this._firePreventable(new Ro(t.type,this._map,t))},Oo.prototype.mouseover=function(t){this._map.fire(new Ro(t.type,this._map,t));},Oo.prototype.mouseout=function(t){this._map.fire(new Ro(t.type,this._map,t));},Oo.prototype.touchstart=function(t){return this._firePreventable(new ko(t.type,this._map,t))},Oo.prototype.touchmove=function(t){this._map.fire(new ko(t.type,this._map,t));},Oo.prototype.touchend=function(t){this._map.fire(new ko(t.type,this._map,t));},Oo.prototype.touchcancel=function(t){this._map.fire(new ko(t.type,this._map,t));},Oo.prototype._firePreventable=function(t){if(this._map.fire(t),t.defaultPrevented)return {}},Oo.prototype.isEnabled=function(){return !0},Oo.prototype.isActive=function(){return !1},Oo.prototype.enable=function(){},Oo.prototype.disable=function(){};var Fo=function(t){this._map=t;};Fo.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent;},Fo.prototype.mousemove=function(t){this._map.fire(new Ro(t.type,this._map,t));},Fo.prototype.mousedown=function(){this._delayContextMenu=!0;},Fo.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new Ro("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent);},Fo.prototype.contextmenu=function(t){this._delayContextMenu?this._contextMenuEvent=t:this._map.fire(new Ro(t.type,this._map,t)),this._map.listens("contextmenu")&&t.preventDefault();},Fo.prototype.isEnabled=function(){return !0},Fo.prototype.isActive=function(){return !1},Fo.prototype.enable=function(){},Fo.prototype.disable=function(){};var Uo=function(t,e){this._map=t,this._el=t.getCanvasContainer(),this._container=t.getContainer(),this._clickTolerance=e.clickTolerance||1;};function No(t,e){for(var i={},o=0;o<t.length;o++)i[t[o].identifier]=e[o];return i}Uo.prototype.isEnabled=function(){return !!this._enabled},Uo.prototype.isActive=function(){return !!this._active},Uo.prototype.enable=function(){this.isEnabled()||(this._enabled=!0);},Uo.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1);},Uo.prototype.mousedown=function(t,e){this.isEnabled()&&t.shiftKey&&0===t.button&&(i.disableDrag(),this._startPos=this._lastPos=e,this._active=!0);},Uo.prototype.mousemoveWindow=function(t,e){if(this._active){var o=e;if(!(this._lastPos.equals(o)||!this._box&&o.dist(this._startPos)<this._clickTolerance)){var r=this._startPos;this._lastPos=o,this._box||(this._box=i.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",t));var a=Math.min(r.x,o.x),n=Math.max(r.x,o.x),s=Math.min(r.y,o.y),l=Math.max(r.y,o.y);i.setTransform(this._box,"translate("+a+"px,"+s+"px)"),this._box.style.width=n-a+"px",this._box.style.height=l-s+"px";}}},Uo.prototype.mouseupWindow=function(e,o){var r=this;if(this._active&&0===e.button){var a=this._startPos,n=o;if(this.reset(),i.suppressClick(),a.x!==n.x||a.y!==n.y)return this._map.fire(new t.Event("boxzoomend",{originalEvent:e})),{cameraAnimation:function(t){return t.fitScreenCoordinates(a,n,r._map.getBearing(),{linear:!0})}};this._fireEvent("boxzoomcancel",e);}},Uo.prototype.keydown=function(t){this._active&&27===t.keyCode&&(this.reset(),this._fireEvent("boxzoomcancel",t));},Uo.prototype.reset=function(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(i.remove(this._box),this._box=null),i.enableDrag(),delete this._startPos,delete this._lastPos;},Uo.prototype._fireEvent=function(e,i){return this._map.fire(new t.Event(e,{originalEvent:i}))};var Zo=function(t){this.reset(),this.numTouches=t.numTouches;};Zo.prototype.reset=function(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1;},Zo.prototype.touchstart=function(e,i,o){(this.centroid||o.length>this.numTouches)&&(this.aborted=!0),this.aborted||(void 0===this.startTime&&(this.startTime=e.timeStamp),o.length===this.numTouches&&(this.centroid=function(e){for(var i=new t.Point(0,0),o=0,r=e;o<r.length;o+=1)i._add(r[o]);return i.div(e.length)}(i),this.touches=No(o,i)));},Zo.prototype.touchmove=function(t,e,i){if(!this.aborted&&this.centroid){var o=No(i,e);for(var r in this.touches){var a=o[r];(!a||a.dist(this.touches[r])>30)&&(this.aborted=!0);}}},Zo.prototype.touchend=function(t,e,i){if((!this.centroid||t.timeStamp-this.startTime>500)&&(this.aborted=!0),0===i.length){var o=!this.aborted&&this.centroid;if(this.reset(),o)return o}};var qo=function(t){this.singleTap=new Zo(t),this.numTaps=t.numTaps,this.reset();};qo.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset();},qo.prototype.touchstart=function(t,e,i){this.singleTap.touchstart(t,e,i);},qo.prototype.touchmove=function(t,e,i){this.singleTap.touchmove(t,e,i);},qo.prototype.touchend=function(t,e,i){var o=this.singleTap.touchend(t,e,i);if(o){var r=t.timeStamp-this.lastTime<500,a=!this.lastTap||this.lastTap.dist(o)<30;if(r&&a||this.reset(),this.count++,this.lastTime=t.timeStamp,this.lastTap=o,this.count===this.numTaps)return this.reset(),o}};var jo=function(){this._zoomIn=new qo({numTouches:1,numTaps:2}),this._zoomOut=new qo({numTouches:2,numTaps:1}),this.reset();};jo.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset();},jo.prototype.touchstart=function(t,e,i){this._zoomIn.touchstart(t,e,i),this._zoomOut.touchstart(t,e,i);},jo.prototype.touchmove=function(t,e,i){this._zoomIn.touchmove(t,e,i),this._zoomOut.touchmove(t,e,i);},jo.prototype.touchend=function(t,e,i){var o=this,r=this._zoomIn.touchend(t,e,i),a=this._zoomOut.touchend(t,e,i);return r?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()+1,around:e.unproject(r)},{originalEvent:t})}}):a?(this._active=!0,t.preventDefault(),setTimeout((function(){return o.reset()}),0),{cameraAnimation:function(e){return e.easeTo({duration:300,zoom:e.getZoom()-1,around:e.unproject(a)},{originalEvent:t})}}):void 0},jo.prototype.touchcancel=function(){this.reset();},jo.prototype.enable=function(){this._enabled=!0;},jo.prototype.disable=function(){this._enabled=!1,this.reset();},jo.prototype.isEnabled=function(){return this._enabled},jo.prototype.isActive=function(){return this._active};var Vo={0:1,2:2},Go=function(t){this.reset(),this._clickTolerance=t.clickTolerance||1;};Go.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton;},Go.prototype._correctButton=function(t,e){return !1},Go.prototype._move=function(t,e){return {}},Go.prototype.mousedown=function(t,e){if(!this._lastPoint){var o=i.mouseButton(t);this._correctButton(t,o)&&(this._lastPoint=e,this._eventButton=o);}},Go.prototype.mousemoveWindow=function(t,e){var i=this._lastPoint;if(i)if(t.preventDefault(),function(t,e){var i=Vo[e];return void 0===t.buttons||(t.buttons&i)!==i}(t,this._eventButton))this.reset();else if(this._moved||!(e.dist(i)<this._clickTolerance))return this._moved=!0,this._lastPoint=e,this._move(i,e)},Go.prototype.mouseupWindow=function(t){this._lastPoint&&i.mouseButton(t)===this._eventButton&&(this._moved&&i.suppressClick(),this.reset());},Go.prototype.enable=function(){this._enabled=!0;},Go.prototype.disable=function(){this._enabled=!1,this.reset();},Go.prototype.isEnabled=function(){return this._enabled},Go.prototype.isActive=function(){return this._active};var Wo=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.mousedown=function(e,i){t.prototype.mousedown.call(this,e,i),this._lastPoint&&(this._active=!0);},e.prototype._correctButton=function(t,e){return 0===e&&!t.ctrlKey},e.prototype._move=function(t,e){return {around:e,panDelta:e.sub(t)}},e}(Go),Xo=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._correctButton=function(t,e){return 0===e&&t.ctrlKey||2===e},e.prototype._move=function(t,e){var i=.8*(e.x-t.x);if(i)return this._active=!0,{bearingDelta:i}},e.prototype.contextmenu=function(t){t.preventDefault();},e}(Go),Ho=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype._correctButton=function(t,e){return 0===e&&t.ctrlKey||2===e},e.prototype._move=function(t,e){var i=-.5*(e.y-t.y);if(i)return this._active=!0,{pitchDelta:i}},e.prototype.contextmenu=function(t){t.preventDefault();},e}(Go),Ko=function(t){this._minTouches=1,this._clickTolerance=t.clickTolerance||1,this.reset();};Ko.prototype.reset=function(){this._active=!1,this._touches={},this._sum=new t.Point(0,0);},Ko.prototype.touchstart=function(t,e,i){return this._calculateTransform(t,e,i)},Ko.prototype.touchmove=function(t,e,i){if(this._active&&!(i.length<this._minTouches))return t.preventDefault(),this._calculateTransform(t,e,i)},Ko.prototype.touchend=function(t,e,i){this._calculateTransform(t,e,i),this._active&&i.length<this._minTouches&&this.reset();},Ko.prototype.touchcancel=function(){this.reset();},Ko.prototype._calculateTransform=function(e,i,o){o.length>0&&(this._active=!0);var r=No(o,i),a=new t.Point(0,0),n=new t.Point(0,0),s=0;for(var l in r){var c=r[l],u=this._touches[l];u&&(a._add(c),n._add(c.sub(u)),s++,r[l]=c);}if(this._touches=r,!(s<this._minTouches)&&n.mag()){var h=n.div(s);if(this._sum._add(h),!(this._sum.mag()<this._clickTolerance))return {around:a.div(s),panDelta:h}}},Ko.prototype.enable=function(){this._enabled=!0;},Ko.prototype.disable=function(){this._enabled=!1,this.reset();},Ko.prototype.isEnabled=function(){return this._enabled},Ko.prototype.isActive=function(){return this._active};var Yo=function(){this.reset();};function Jo(t,e,i){for(var o=0;o<t.length;o++)if(t[o].identifier===i)return e[o]}function Qo(t,e){return Math.log(t/e)/Math.LN2}Yo.prototype.reset=function(){this._active=!1,delete this._firstTwoTouches;},Yo.prototype._start=function(t){},Yo.prototype._move=function(t,e,i){return {}},Yo.prototype.touchstart=function(t,e,i){this._firstTwoTouches||i.length<2||(this._firstTwoTouches=[i[0].identifier,i[1].identifier],this._start([e[0],e[1]]));},Yo.prototype.touchmove=function(t,e,i){if(this._firstTwoTouches){t.preventDefault();var o=this._firstTwoTouches,r=o[1],a=Jo(i,e,o[0]),n=Jo(i,e,r);if(a&&n){var s=this._aroundCenter?null:a.add(n).div(2);return this._move([a,n],s,t)}}},Yo.prototype.touchend=function(t,e,o){if(this._firstTwoTouches){var r=this._firstTwoTouches,a=r[1],n=Jo(o,e,r[0]),s=Jo(o,e,a);n&&s||(this._active&&i.suppressClick(),this.reset());}},Yo.prototype.touchcancel=function(){this.reset();},Yo.prototype.enable=function(t){this._enabled=!0,this._aroundCenter=!!t&&"center"===t.around;},Yo.prototype.disable=function(){this._enabled=!1,this.reset();},Yo.prototype.isEnabled=function(){return this._enabled},Yo.prototype.isActive=function(){return this._active};var $o=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),delete this._distance,delete this._startDistance;},e.prototype._start=function(t){this._startDistance=this._distance=t[0].dist(t[1]);},e.prototype._move=function(t,e){var i=this._distance;if(this._distance=t[0].dist(t[1]),this._active||!(Math.abs(Qo(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:Qo(this._distance,i),pinchAround:e}},e}(Yo);function tr(t,e){return 180*t.angleWith(e)/Math.PI}var er=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),delete this._minDiameter,delete this._startVector,delete this._vector;},e.prototype._start=function(t){this._startVector=this._vector=t[0].sub(t[1]),this._minDiameter=t[0].dist(t[1]);},e.prototype._move=function(t,e){var i=this._vector;if(this._vector=t[0].sub(t[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:tr(this._vector,i),pinchAround:e}},e.prototype._isBelowThreshold=function(t){this._minDiameter=Math.min(this._minDiameter,t.mag());var e=25/(Math.PI*this._minDiameter)*360,i=tr(t,this._startVector);return Math.abs(i)<e},e}(Yo);function ir(t){return Math.abs(t.y)>Math.abs(t.x)}var or=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e.prototype.reset=function(){t.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints;},e.prototype._start=function(t){this._lastPoints=t,ir(t[0].sub(t[1]))&&(this._valid=!1);},e.prototype._move=function(t,e,i){var o=t[0].sub(this._lastPoints[0]),r=t[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(o,r,i.timeStamp),this._valid)return this._lastPoints=t,this._active=!0,{pitchDelta:(o.y+r.y)/2*-.5}},e.prototype.gestureBeginsVertically=function(t,e,i){if(void 0!==this._valid)return this._valid;var o=t.mag()>=2,r=e.mag()>=2;if(o||r){if(!o||!r)return void 0===this._firstMove&&(this._firstMove=i),i-this._firstMove<100&&void 0;var a=t.y>0==e.y>0;return ir(t)&&ir(e)&&a}},e}(Yo),rr={panStep:100,bearingStep:15,pitchStep:10},ar=function(){var t=rr;this._panStep=t.panStep,this._bearingStep=t.bearingStep,this._pitchStep=t.pitchStep,this._rotationDisabled=!1;};function nr(t){return t*(2-t)}ar.prototype.reset=function(){this._active=!1;},ar.prototype.keydown=function(t){var e=this;if(!(t.altKey||t.ctrlKey||t.metaKey)){var i=0,o=0,r=0,a=0,n=0;switch(t.keyCode){case 61:case 107:case 171:case 187:i=1;break;case 189:case 109:case 173:i=-1;break;case 37:t.shiftKey?o=-1:(t.preventDefault(),a=-1);break;case 39:t.shiftKey?o=1:(t.preventDefault(),a=1);break;case 38:t.shiftKey?r=1:(t.preventDefault(),n=-1);break;case 40:t.shiftKey?r=-1:(t.preventDefault(),n=1);break;default:return}return this._rotationDisabled&&(o=0,r=0),{cameraAnimation:function(s){var l=s.getZoom();s.easeTo({duration:300,easeId:"keyboardHandler",easing:nr,zoom:i?Math.round(l)+i*(t.shiftKey?2:1):l,bearing:s.getBearing()+o*e._bearingStep,pitch:s.getPitch()+r*e._pitchStep,offset:[-a*e._panStep,-n*e._panStep],center:s.getCenter()},{originalEvent:t});}}}},ar.prototype.enable=function(){this._enabled=!0;},ar.prototype.disable=function(){this._enabled=!1,this.reset();},ar.prototype.isEnabled=function(){return this._enabled},ar.prototype.isActive=function(){return this._active},ar.prototype.disableRotation=function(){this._rotationDisabled=!0;},ar.prototype.enableRotation=function(){this._rotationDisabled=!1;};var sr=function(e,i){this._map=e,this._el=e.getCanvasContainer(),this._handler=i,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,t.bindAll(["_onTimeout"],this);};sr.prototype.setZoomRate=function(t){this._defaultZoomRate=t;},sr.prototype.setWheelZoomRate=function(t){this._wheelZoomRate=t;},sr.prototype.isEnabled=function(){return !!this._enabled},sr.prototype.isActive=function(){return !!this._active||void 0!==this._finishTimeout},sr.prototype.isZooming=function(){return !!this._zooming},sr.prototype.enable=function(t){this.isEnabled()||(this._enabled=!0,this._aroundCenter=t&&"center"===t.around);},sr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1);},sr.prototype.wheel=function(e){if(this.isEnabled()){var i=e.deltaMode===t.window.WheelEvent.DOM_DELTA_LINE?40*e.deltaY:e.deltaY,o=t.browser.now(),r=o-(this._lastWheelEventTime||0);this._lastWheelEventTime=o,0!==i&&i%4.000244140625==0?this._type="wheel":0!==i&&Math.abs(i)<4?this._type="trackpad":r>400?(this._type=null,this._lastValue=i,this._timeout=setTimeout(this._onTimeout,40,e)):this._type||(this._type=Math.abs(r*i)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,i+=this._lastValue)),e.shiftKey&&i&&(i/=4),this._type&&(this._lastWheelEvent=e,this._delta-=i,this._active||this._start(e)),e.preventDefault();}},sr.prototype._onTimeout=function(t){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(t);},sr.prototype._start=function(e){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var o=i.mousePos(this._el,e);this._around=t.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(o)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame());}},sr.prototype.renderFrame=function(){var e=this;if(this._frameId&&(this._frameId=null,this.isActive())){var i=this._map.transform;if(0!==this._delta){var o="wheel"===this._type&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,r=2/(1+Math.exp(-Math.abs(this._delta*o)));this._delta<0&&0!==r&&(r=1/r);var a="number"==typeof this._targetZoom?i.zoomScale(this._targetZoom):i.scale;this._targetZoom=Math.min(i.maxZoom,Math.max(i.minZoom,i.scaleZoom(a*r))),"wheel"===this._type&&(this._startZoom=i.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0;}var n,s="number"==typeof this._targetZoom?this._targetZoom:i.zoom,l=this._startZoom,c=this._easing,u=!1;if("wheel"===this._type&&l&&c){var h=Math.min((t.browser.now()-this._lastWheelEventTime)/200,1),p=c(h);n=t.number(l,s,p),h<1?this._frameId||(this._frameId=!0):u=!0;}else n=s,u=!0;return this._active=!0,u&&(this._active=!1,this._finishTimeout=setTimeout((function(){e._zooming=!1,e._handler._triggerRenderFrame(),delete e._targetZoom,delete e._finishTimeout;}),200)),{noInertia:!0,needsRenderFrame:!u,zoomDelta:n-i.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},sr.prototype._smoothOutEasing=function(e){var i=t.ease;if(this._prevEase){var o=this._prevEase,r=(t.browser.now()-o.start)/o.duration,a=o.easing(r+.01)-o.easing(r),n=.27/Math.sqrt(a*a+1e-4)*.01,s=Math.sqrt(.0729-n*n);i=t.bezier(n,s,.25,1);}return this._prevEase={start:t.browser.now(),duration:e,easing:i},i},sr.prototype.reset=function(){this._active=!1;};var lr=function(t,e){this._clickZoom=t,this._tapZoom=e;};lr.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable();},lr.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable();},lr.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},lr.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var cr=function(){this.reset();};cr.prototype.reset=function(){this._active=!1;},cr.prototype.dblclick=function(t,e){return t.preventDefault(),{cameraAnimation:function(i){i.easeTo({duration:300,zoom:i.getZoom()+(t.shiftKey?-1:1),around:i.unproject(e)},{originalEvent:t});}}},cr.prototype.enable=function(){this._enabled=!0;},cr.prototype.disable=function(){this._enabled=!1,this.reset();},cr.prototype.isEnabled=function(){return this._enabled},cr.prototype.isActive=function(){return this._active};var ur=function(){this._tap=new qo({numTouches:1,numTaps:1}),this.reset();};ur.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset();},ur.prototype.touchstart=function(t,e,i){this._swipePoint||(this._tapTime&&t.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?i.length>0&&(this._swipePoint=e[0],this._swipeTouch=i[0].identifier):this._tap.touchstart(t,e,i));},ur.prototype.touchmove=function(t,e,i){if(this._tapTime){if(this._swipePoint){if(i[0].identifier!==this._swipeTouch)return;var o=e[0],r=o.y-this._swipePoint.y;return this._swipePoint=o,t.preventDefault(),this._active=!0,{zoomDelta:r/128}}}else this._tap.touchmove(t,e,i);},ur.prototype.touchend=function(t,e,i){this._tapTime?this._swipePoint&&0===i.length&&this.reset():this._tap.touchend(t,e,i)&&(this._tapTime=t.timeStamp);},ur.prototype.touchcancel=function(){this.reset();},ur.prototype.enable=function(){this._enabled=!0;},ur.prototype.disable=function(){this._enabled=!1,this.reset();},ur.prototype.isEnabled=function(){return this._enabled},ur.prototype.isActive=function(){return this._active};var hr=function(t,e,i){this._el=t,this._mousePan=e,this._touchPan=i;};hr.prototype.enable=function(t){this._inertiaOptions=t||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan");},hr.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan");},hr.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},hr.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var pr=function(t,e,i){this._pitchWithRotate=t.pitchWithRotate,this._mouseRotate=e,this._mousePitch=i;};pr.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable();},pr.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable();},pr.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},pr.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var dr=function(t,e,i,o){this._el=t,this._touchZoom=e,this._touchRotate=i,this._tapDragZoom=o,this._rotationDisabled=!1,this._enabled=!0;};dr.prototype.enable=function(t){this._touchZoom.enable(t),this._rotationDisabled||this._touchRotate.enable(t),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate");},dr.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate");},dr.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},dr.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},dr.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable();},dr.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable();};var _r=function(t){return t.zoom||t.drag||t.pitch||t.rotate},fr=function(t){function e(){t.apply(this,arguments);}return t&&(e.__proto__=t),(e.prototype=Object.create(t&&t.prototype)).constructor=e,e}(t.Event);function mr(t){return t.panDelta&&t.panDelta.mag()||t.zoomDelta||t.bearingDelta||t.pitchDelta}var gr=function(e,o){this._map=e,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Ao(e),this._bearingSnap=o.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(o),t.bindAll(["handleEvent","handleWindowEvent"],this);var r=this._el;this._listeners=[[r,"touchstart",{passive:!0}],[r,"touchmove",{passive:!1}],[r,"touchend",void 0],[r,"touchcancel",void 0],[r,"mousedown",void 0],[r,"mousemove",void 0],[r,"mouseup",void 0],[t.window.document,"mousemove",{capture:!0}],[t.window.document,"mouseup",void 0],[r,"mouseover",void 0],[r,"mouseout",void 0],[r,"dblclick",void 0],[r,"click",void 0],[r,"keydown",{capture:!1}],[r,"keyup",void 0],[r,"wheel",{passive:!1}],[r,"contextmenu",void 0],[t.window,"blur",void 0]];for(var a=0,n=this._listeners;a<n.length;a+=1){var s=n[a],l=s[0];i.addEventListener(l,s[1],l===t.window.document?this.handleWindowEvent:this.handleEvent,s[2]);}};gr.prototype.destroy=function(){for(var e=0,o=this._listeners;e<o.length;e+=1){var r=o[e],a=r[0];i.removeEventListener(a,r[1],a===t.window.document?this.handleWindowEvent:this.handleEvent,r[2]);}},gr.prototype._addDefaultHandlers=function(t){var e=this._map,i=e.getCanvasContainer();this._add("mapEvent",new Oo(e,t));var o=e.boxZoom=new Uo(e,t);this._add("boxZoom",o);var r=new jo,a=new cr;e.doubleClickZoom=new lr(a,r),this._add("tapZoom",r),this._add("clickZoom",a);var n=new ur;this._add("tapDragZoom",n);var s=e.touchPitch=new or;this._add("touchPitch",s);var l=new Xo(t),c=new Ho(t);e.dragRotate=new pr(t,l,c),this._add("mouseRotate",l,["mousePitch"]),this._add("mousePitch",c,["mouseRotate"]);var u=new Wo(t),h=new Ko(t);e.dragPan=new hr(i,u,h),this._add("mousePan",u),this._add("touchPan",h,["touchZoom","touchRotate"]);var p=new er,d=new $o;e.touchZoomRotate=new dr(i,d,p,n),this._add("touchRotate",p,["touchPan","touchZoom"]),this._add("touchZoom",d,["touchPan","touchRotate"]);var _=e.scrollZoom=new sr(e,this);this._add("scrollZoom",_,["mousePan"]);var f=e.keyboard=new ar;this._add("keyboard",f),this._add("blockableMapEvent",new Fo(e));for(var m=0,g=["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"];m<g.length;m+=1){var v=g[m];t.interactive&&t[v]&&e[v].enable(t[v]);}},gr.prototype._add=function(t,e,i){this._handlers.push({handlerName:t,handler:e,allowed:i}),this._handlersById[t]=e;},gr.prototype.stop=function(t){if(!this._updatingCamera){for(var e=0,i=this._handlers;e<i.length;e+=1)i[e].handler.reset();this._inertia.clear(),this._fireEvents({},{},t),this._changes=[];}},gr.prototype.isActive=function(){for(var t=0,e=this._handlers;t<e.length;t+=1)if(e[t].handler.isActive())return !0;return !1},gr.prototype.isZooming=function(){return !!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()},gr.prototype.isRotating=function(){return !!this._eventsInProgress.rotate},gr.prototype.isMoving=function(){return Boolean(_r(this._eventsInProgress))||this.isZooming()},gr.prototype._blockedByActive=function(t,e,i){for(var o in t)if(o!==i&&(!e||e.indexOf(o)<0))return !0;return !1},gr.prototype.handleWindowEvent=function(t){this.handleEvent(t,t.type+"Window");},gr.prototype._getMapTouches=function(t){for(var e=[],i=0,o=t;i<o.length;i+=1){var r=o[i];this._el.contains(r.target)&&e.push(r);}return e},gr.prototype.handleEvent=function(t,e){if("blur"!==t.type){this._updatingCamera=!0;for(var o="renderFrame"===t.type?void 0:t,r={needsRenderFrame:!1},a={},n={},s=t.touches?this._getMapTouches(t.touches):void 0,l=s?i.touchPos(this._el,s):i.mousePos(this._el,t),c=0,u=this._handlers;c<u.length;c+=1){var h=u[c],p=h.handlerName,d=h.handler,_=h.allowed;if(d.isEnabled()){var f=void 0;this._blockedByActive(n,_,p)?d.reset():d[e||t.type]&&(f=d[e||t.type](t,l,s),this.mergeHandlerResult(r,a,f,p,o),f&&f.needsRenderFrame&&this._triggerRenderFrame()),(f||d.isActive())&&(n[p]=d);}}var m={};for(var g in this._previousActiveHandlers)n[g]||(m[g]=o);this._previousActiveHandlers=n,(Object.keys(m).length||mr(r))&&(this._changes.push([r,a,m]),this._triggerRenderFrame()),(Object.keys(n).length||mr(r))&&this._map._stop(!0),this._updatingCamera=!1;var v=r.cameraAnimation;v&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],v(this._map));}else this.stop(!0);},gr.prototype.mergeHandlerResult=function(e,i,o,r,a){if(o){t.extend(e,o);var n={handlerName:r,originalEvent:o.originalEvent||a};void 0!==o.zoomDelta&&(i.zoom=n),void 0!==o.panDelta&&(i.drag=n),void 0!==o.pitchDelta&&(i.pitch=n),void 0!==o.bearingDelta&&(i.rotate=n);}},gr.prototype._applyChanges=function(){for(var e={},i={},o={},r=0,a=this._changes;r<a.length;r+=1){var n=a[r],s=n[0],l=n[1],c=n[2];s.panDelta&&(e.panDelta=(e.panDelta||new t.Point(0,0))._add(s.panDelta)),s.zoomDelta&&(e.zoomDelta=(e.zoomDelta||0)+s.zoomDelta),s.bearingDelta&&(e.bearingDelta=(e.bearingDelta||0)+s.bearingDelta),s.pitchDelta&&(e.pitchDelta=(e.pitchDelta||0)+s.pitchDelta),void 0!==s.around&&(e.around=s.around),void 0!==s.pinchAround&&(e.pinchAround=s.pinchAround),s.noInertia&&(e.noInertia=s.noInertia),t.extend(i,l),t.extend(o,c);}this._updateMapTransform(e,i,o),this._changes=[];},gr.prototype._updateMapTransform=function(t,e,i){var o=this._map,r=o.transform;if(!mr(t))return this._fireEvents(e,i,!0);var a=t.panDelta,n=t.zoomDelta,s=t.bearingDelta,l=t.pitchDelta,c=t.around,u=t.pinchAround;void 0!==u&&(c=u),o._stop(!0),c=c||o.transform.centerPoint;var h=r.pointLocation(a?c.sub(a):c);s&&(r.bearing+=s),l&&(r.pitch+=l),n&&(r.zoom+=n),r.setLocationAtPoint(h,c),this._map._update(),t.noInertia||this._inertia.record(t),this._fireEvents(e,i,!0);},gr.prototype._fireEvents=function(e,i,o){var r=this,a=_r(this._eventsInProgress),n=_r(e),s={};for(var l in e)this._eventsInProgress[l]||(s[l+"start"]=e[l].originalEvent),this._eventsInProgress[l]=e[l];for(var c in !a&&n&&this._fireEvent("movestart",n.originalEvent),s)this._fireEvent(c,s[c]);for(var u in n&&this._fireEvent("move",n.originalEvent),e)this._fireEvent(u,e[u].originalEvent);var h,p={};for(var d in this._eventsInProgress){var _=this._eventsInProgress[d],f=_.handlerName,m=_.originalEvent;this._handlersById[f].isActive()||(delete this._eventsInProgress[d],p[d+"end"]=h=i[f]||m);}for(var g in p)this._fireEvent(g,p[g]);var v=_r(this._eventsInProgress);if(o&&(a||n)&&!v){this._updatingCamera=!0;var y=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),x=function(t){return 0!==t&&-r._bearingSnap<t&&t<r._bearingSnap};y?(x(y.bearing||this._map.getBearing())&&(y.bearing=0),this._map.easeTo(y,{originalEvent:h})):(this._map.fire(new t.Event("moveend",{originalEvent:h})),x(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1;}},gr.prototype._fireEvent=function(e,i){this._map.fire(new t.Event(e,i?{originalEvent:i}:{}));},gr.prototype._requestFrame=function(){var t=this;return this._map.triggerRepaint(),this._map._renderTaskQueue.add((function(e){delete t._frameId,t.handleEvent(new fr("renderFrame",{timeStamp:e})),t._applyChanges();}))},gr.prototype._triggerRenderFrame=function(){void 0===this._frameId&&(this._frameId=this._requestFrame());};var vr=function(e){function i(i,o){e.call(this),this._moving=!1,this._zooming=!1,this.transform=i,this._bearingSnap=o.bearingSnap,t.bindAll(["_renderFrameCallback"],this);}return e&&(i.__proto__=e),(i.prototype=Object.create(e&&e.prototype)).constructor=i,i.prototype.getCenter=function(){return new t.LngLat(this.transform.center.lng,this.transform.center.lat)},i.prototype.setCenter=function(t,e){return this.jumpTo({center:t},e)},i.prototype.panBy=function(e,i,o){return e=t.Point.convert(e).mult(-1),this.panTo(this.transform.center,t.extend({offset:e},i),o)},i.prototype.panTo=function(e,i,o){return this.easeTo(t.extend({center:e},i),o)},i.prototype.getZoom=function(){return this.transform.zoom},i.prototype.setZoom=function(t,e){return this.jumpTo({zoom:t},e),this},i.prototype.zoomTo=function(e,i,o){return this.easeTo(t.extend({zoom:e},i),o)},i.prototype.zoomIn=function(t,e){return this.zoomTo(this.getZoom()+1,t,e),this},i.prototype.zoomOut=function(t,e){return this.zoomTo(this.getZoom()-1,t,e),this},i.prototype.getBearing=function(){return this.transform.bearing},i.prototype.setBearing=function(t,e){return this.jumpTo({bearing:t},e),this},i.prototype.getPadding=function(){return this.transform.padding},i.prototype.setPadding=function(t,e){return this.jumpTo({padding:t},e),this},i.prototype.rotateTo=function(e,i,o){return this.easeTo(t.extend({bearing:e},i),o)},i.prototype.resetNorth=function(e,i){return this.rotateTo(0,t.extend({duration:1e3},e),i),this},i.prototype.resetNorthPitch=function(e,i){return this.easeTo(t.extend({bearing:0,pitch:0,duration:1e3},e),i),this},i.prototype.snapToNorth=function(t,e){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(t,e):this},i.prototype.getPitch=function(){return this.transform.pitch},i.prototype.setPitch=function(t,e){return this.jumpTo({pitch:t},e),this},i.prototype.cameraForBounds=function(e,i){e=t.LngLatBounds.convert(e);var o=i&&i.bearing||0;return this._cameraForBoxAndBearing(e.getNorthWest(),e.getSouthEast(),o,i)},i.prototype._cameraForBoxAndBearing=function(e,i,o,r){var a={top:0,bottom:0,right:0,left:0};if("number"==typeof(r=t.extend({padding:a,offset:[0,0],maxZoom:this.transform.maxZoom},r)).padding){var n=r.padding;r.padding={top:n,bottom:n,right:n,left:n};}r.padding=t.extend(a,r.padding);var s=this.transform,l=s.padding,c=s.project(t.LngLat.convert(e)),u=s.project(t.LngLat.convert(i)),h=c.rotate(-o*Math.PI/180),p=u.rotate(-o*Math.PI/180),d=new t.Point(Math.max(h.x,p.x),Math.max(h.y,p.y)),_=new t.Point(Math.min(h.x,p.x),Math.min(h.y,p.y)),f=d.sub(_),m=(s.width-(l.left+l.right+r.padding.left+r.padding.right))/f.x,g=(s.height-(l.top+l.bottom+r.padding.top+r.padding.bottom))/f.y;if(!(g<0||m<0)){var v=Math.min(s.scaleZoom(s.scale*Math.min(m,g)),r.maxZoom),y="number"==typeof r.offset.x?new t.Point(r.offset.x,r.offset.y):t.Point.convert(r.offset),x=new t.Point((r.padding.left-r.padding.right)/2,(r.padding.top-r.padding.bottom)/2).rotate(o*Math.PI/180),b=y.add(x).mult(s.scale/s.zoomScale(v));return {center:s.unproject(c.add(u).div(2).sub(b)),zoom:v,bearing:o}}t.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.");},i.prototype.fitBounds=function(t,e,i){return this._fitInternal(this.cameraForBounds(t,e),e,i)},i.prototype.fitScreenCoordinates=function(e,i,o,r,a){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(t.Point.convert(e)),this.transform.pointLocation(t.Point.convert(i)),o,r),r,a)},i.prototype._fitInternal=function(e,i,o){return e?(delete(i=t.extend(e,i)).padding,i.linear?this.easeTo(i,o):this.flyTo(i,o)):this},i.prototype.jumpTo=function(e,i){this.stop();var o=this.transform,r=!1,a=!1,n=!1;return "zoom"in e&&o.zoom!==+e.zoom&&(r=!0,o.zoom=+e.zoom),void 0!==e.center&&(o.center=t.LngLat.convert(e.center)),"bearing"in e&&o.bearing!==+e.bearing&&(a=!0,o.bearing=+e.bearing),"pitch"in e&&o.pitch!==+e.pitch&&(n=!0,o.pitch=+e.pitch),null==e.padding||o.isPaddingEqual(e.padding)||(o.padding=e.padding),this.fire(new t.Event("movestart",i)).fire(new t.Event("move",i)),r&&this.fire(new t.Event("zoomstart",i)).fire(new t.Event("zoom",i)).fire(new t.Event("zoomend",i)),a&&this.fire(new t.Event("rotatestart",i)).fire(new t.Event("rotate",i)).fire(new t.Event("rotateend",i)),n&&this.fire(new t.Event("pitchstart",i)).fire(new t.Event("pitch",i)).fire(new t.Event("pitchend",i)),this.fire(new t.Event("moveend",i))},i.prototype.easeTo=function(e,i){var o=this;this._stop(!1,e.easeId),(!1===(e=t.extend({offset:[0,0],duration:500,easing:t.ease},e)).animate||!e.essential&&t.browser.prefersReducedMotion)&&(e.duration=0);var r=this.transform,a=this.getZoom(),n=this.getBearing(),s=this.getPitch(),l=this.getPadding(),c="zoom"in e?+e.zoom:a,u="bearing"in e?this._normalizeBearing(e.bearing,n):n,h="pitch"in e?+e.pitch:s,p="padding"in e?e.padding:r.padding,d=t.Point.convert(e.offset),_=r.centerPoint.add(d),f=r.pointLocation(_),m=t.LngLat.convert(e.center||f);this._normalizeCenter(m);var g,v,y=r.project(f),x=r.project(m).sub(y),b=r.zoomScale(c-a);e.around&&(g=t.LngLat.convert(e.around),v=r.locationPoint(g));var w={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=this._zooming||c!==a,this._rotating=this._rotating||n!==u,this._pitching=this._pitching||h!==s,this._padding=!r.isPaddingEqual(p),this._easeId=e.easeId,this._prepareEase(i,e.noMoveStart,w),this._ease((function(e){if(o._zooming&&(r.zoom=t.number(a,c,e)),o._rotating&&(r.bearing=t.number(n,u,e)),o._pitching&&(r.pitch=t.number(s,h,e)),o._padding&&(r.interpolatePadding(l,p,e),_=r.centerPoint.add(d)),g)r.setLocationAtPoint(g,v);else {var f=r.zoomScale(r.zoom-a),m=c>a?Math.min(2,b):Math.max(.5,b),w=Math.pow(m,1-e),T=r.unproject(y.add(x.mult(e*w)).mult(f));r.setLocationAtPoint(r.renderWorldCopies?T.wrap():T,_);}o._fireMoveEvents(i);}),(function(t){o._afterEase(i,t);}),e),this},i.prototype._prepareEase=function(e,i,o){void 0===o&&(o={}),this._moving=!0,i||o.moving||this.fire(new t.Event("movestart",e)),this._zooming&&!o.zooming&&this.fire(new t.Event("zoomstart",e)),this._rotating&&!o.rotating&&this.fire(new t.Event("rotatestart",e)),this._pitching&&!o.pitching&&this.fire(new t.Event("pitchstart",e));},i.prototype._fireMoveEvents=function(e){this.fire(new t.Event("move",e)),this._zooming&&this.fire(new t.Event("zoom",e)),this._rotating&&this.fire(new t.Event("rotate",e)),this._pitching&&this.fire(new t.Event("pitch",e));},i.prototype._afterEase=function(e,i){if(!this._easeId||!i||this._easeId!==i){delete this._easeId;var o=this._zooming,r=this._rotating,a=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,o&&this.fire(new t.Event("zoomend",e)),r&&this.fire(new t.Event("rotateend",e)),a&&this.fire(new t.Event("pitchend",e)),this.fire(new t.Event("moveend",e));}},i.prototype.flyTo=function(e,i){var o=this;if(!e.essential&&t.browser.prefersReducedMotion){var r=t.pick(e,["center","zoom","bearing","pitch","around"]);return this.jumpTo(r,i)}this.stop(),e=t.extend({offset:[0,0],speed:1.2,curve:1.42,easing:t.ease},e);var a=this.transform,n=this.getZoom(),s=this.getBearing(),l=this.getPitch(),c=this.getPadding(),u="zoom"in e?t.clamp(+e.zoom,a.minZoom,a.maxZoom):n,h="bearing"in e?this._normalizeBearing(e.bearing,s):s,p="pitch"in e?+e.pitch:l,d="padding"in e?e.padding:a.padding,_=a.zoomScale(u-n),f=t.Point.convert(e.offset),m=a.centerPoint.add(f),g=a.pointLocation(m),v=t.LngLat.convert(e.center||g);this._normalizeCenter(v);var y=a.project(g),x=a.project(v).sub(y),b=e.curve,w=Math.max(a.width,a.height),T=w/_,E=x.mag();if("minZoom"in e){var I=t.clamp(Math.min(e.minZoom,n,u),a.minZoom,a.maxZoom),P=w/a.zoomScale(I-n);b=Math.sqrt(P/E*2);}var S=b*b;function C(t){var e=(T*T-w*w+(t?-1:1)*S*S*E*E)/(2*(t?T:w)*S*E);return Math.log(Math.sqrt(e*e+1)-e)}function z(t){return (Math.exp(t)-Math.exp(-t))/2}function D(t){return (Math.exp(t)+Math.exp(-t))/2}var A=C(0),M=function(t){return D(A)/D(A+b*t)},L=function(t){return w*((D(A)*(z(e=A+b*t)/D(e))-z(A))/S)/E;var e;},R=(C(1)-A)/b;if(Math.abs(E)<1e-6||!isFinite(R)){if(Math.abs(w-T)<1e-6)return this.easeTo(e,i);var k=T<w?-1:1;R=Math.abs(Math.log(T/w))/b,L=function(){return 0},M=function(t){return Math.exp(k*b*t)};}return e.duration="duration"in e?+e.duration:1e3*R/("screenSpeed"in e?+e.screenSpeed/b:+e.speed),e.maxDuration&&e.duration>e.maxDuration&&(e.duration=0),this._zooming=!0,this._rotating=s!==h,this._pitching=p!==l,this._padding=!a.isPaddingEqual(d),this._prepareEase(i,!1),this._ease((function(e){var r=e*R,_=1/M(r);a.zoom=1===e?u:n+a.scaleZoom(_),o._rotating&&(a.bearing=t.number(s,h,e)),o._pitching&&(a.pitch=t.number(l,p,e)),o._padding&&(a.interpolatePadding(c,d,e),m=a.centerPoint.add(f));var g=1===e?v:a.unproject(y.add(x.mult(L(r))).mult(_));a.setLocationAtPoint(a.renderWorldCopies?g.wrap():g,m),o._fireMoveEvents(i);}),(function(){return o._afterEase(i)}),e),this},i.prototype.isEasing=function(){return !!this._easeFrameId},i.prototype.stop=function(){return this._stop()},i.prototype._stop=function(t,e){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var i=this._onEaseEnd;delete this._onEaseEnd,i.call(this,e);}if(!t){var o=this.handlers;o&&o.stop(!1);}return this},i.prototype._ease=function(e,i,o){!1===o.animate||0===o.duration?(e(1),i()):(this._easeStart=t.browser.now(),this._easeOptions=o,this._onEaseFrame=e,this._onEaseEnd=i,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback));},i.prototype._renderFrameCallback=function(){var e=Math.min((t.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(e)),e<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop();},i.prototype._normalizeBearing=function(e,i){e=t.wrap(e,-180,180);var o=Math.abs(e-i);return Math.abs(e-360-i)<o&&(e-=360),Math.abs(e+360-i)<o&&(e+=360),e},i.prototype._normalizeCenter=function(t){var e=this.transform;if(e.renderWorldCopies&&!e.lngRange){var i=t.lng-e.center.lng;t.lng+=i>180?-360:i<-180?360:0;}},i}(t.Evented),yr=function(e){void 0===e&&(e={}),this.options=e,t.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this);};yr.prototype.getDefaultPosition=function(){return "bottom-right"},yr.prototype.onAdd=function(t){var e=this.options&&this.options.compact;return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=i.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=i.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),e&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),void 0===e&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},yr.prototype.onRemove=function(){i.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0;},yr.prototype._setElementTitle=function(t,e){var i=this._map._getUIString("AttributionControl."+e);t.title=i,t.setAttribute("aria-label",i);},yr.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"));},yr.prototype._updateEditLink=function(){var e=this._editLink;e||(e=this._editLink=this._container.querySelector(".mapbox-improve-map"));var i=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||t.config.ACCESS_TOKEN}];if(e){var o=i.reduce((function(t,e,o){return e.value&&(t+=e.key+"="+e.value+(o<i.length-1?"&":"")),t}),"?");e.href=t.config.FEEDBACK_URL+"/"+o+(this._map._hash?this._map._hash.getHashString(!0):""),e.rel="noopener nofollow",this._setElementTitle(e,"MapFeedback");}},yr.prototype._updateData=function(t){!t||"metadata"!==t.sourceDataType&&"visibility"!==t.sourceDataType&&"style"!==t.dataType||(this._updateAttributions(),this._updateEditLink());},yr.prototype._updateAttributions=function(){if(this._map.style){var t=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?t=t.concat(this.options.customAttribution.map((function(t){return "string"!=typeof t?"":t}))):"string"==typeof this.options.customAttribution&&t.push(this.options.customAttribution)),this._map.style.stylesheet){var e=this._map.style.stylesheet;this.styleOwner=e.owner,this.styleId=e.id;}var i=this._map.style.sourceCaches;for(var o in i){var r=i[o];if(r.used){var a=r.getSource();a.attribution&&t.indexOf(a.attribution)<0&&t.push(a.attribution);}}t.sort((function(t,e){return t.length-e.length}));var n=(t=t.filter((function(e,i){for(var o=i+1;o<t.length;o++)if(t[o].indexOf(e)>=0)return !1;return !0}))).join(" | ");n!==this._attribHTML&&(this._attribHTML=n,t.length?(this._innerContainer.innerHTML=n,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null);}},yr.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show");};var xr=function(){t.bindAll(["_updateLogo"],this),t.bindAll(["_updateCompact"],this);};xr.prototype.onAdd=function(t){this._map=t,this._container=i.create("div","mapboxgl-ctrl");var e=i.create("a","mapboxgl-ctrl-logo");return e.target="_blank",e.rel="noopener nofollow",e.href="https://www.mapbox.com/",e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},xr.prototype.onRemove=function(){i.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact);},xr.prototype.getDefaultPosition=function(){return "bottom-left"},xr.prototype._updateLogo=function(t){t&&"metadata"!==t.sourceDataType||(this._container.style.display=this._logoRequired()?"block":"none");},xr.prototype._logoRequired=function(){if(this._map.style){var t=this._map.style.sourceCaches;for(var e in t)if(t[e].getSource().mapbox_logo)return !0;return !1}},xr.prototype._updateCompact=function(){var t=this._container.children;if(t.length){var e=t[0];this._map.getCanvasContainer().offsetWidth<250?e.classList.add("mapboxgl-compact"):e.classList.remove("mapboxgl-compact");}};var br=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1;};br.prototype.add=function(t){var e=++this._id;return this._queue.push({callback:t,id:e,cancelled:!1}),e},br.prototype.remove=function(t){for(var e=this._currentlyRunning,i=0,o=e?this._queue.concat(e):this._queue;i<o.length;i+=1){var r=o[i];if(r.id===t)return void(r.cancelled=!0)}},br.prototype.run=function(t){void 0===t&&(t=0);var e=this._currentlyRunning=this._queue;this._queue=[];for(var i=0,o=e;i<o.length;i+=1){var r=o[i];if(!r.cancelled&&(r.callback(t),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1;},br.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[];};var wr={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm"},Tr=t.window.HTMLImageElement,Er=t.window.HTMLElement,Ir=t.window.ImageBitmap,Pr={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileCacheSize:null,localIdeographFontFamily:"sans-serif",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},Sr=function(o){function r(e){var i=this;if(null!=(e=t.extend({},Pr,e)).minZoom&&null!=e.maxZoom&&e.minZoom>e.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(null!=e.minPitch&&null!=e.maxPitch&&e.minPitch>e.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(null!=e.minPitch&&e.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(null!=e.maxPitch&&e.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var r=new To(e.minZoom,e.maxZoom,e.minPitch,e.maxPitch,e.renderWorldCopies);if(o.call(this,r,e),this._interactive=e.interactive,this._maxTileCacheSize=e.maxTileCacheSize,this._failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=e.preserveDrawingBuffer,this._antialias=e.antialias,this._trackResize=e.trackResize,this._bearingSnap=e.bearingSnap,this._refreshExpiredTiles=e.refreshExpiredTiles,this._fadeDuration=e.fadeDuration,this._crossSourceCollisions=e.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=e.collectResourceTiming,this._renderTaskQueue=new br,this._controls=[],this._mapId=t.uniqueId(),this._locale=t.extend({},wr,e.locale),this._clickTolerance=e.clickTolerance,this._requestManager=new t.RequestManager(e.transformRequest,e.accessToken),"string"==typeof e.container){if(this._container=t.window.document.getElementById(e.container),!this._container)throw new Error("Container '"+e.container+"' not found.")}else {if(!(e.container instanceof Er))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=e.container;}if(e.maxBounds&&this.setMaxBounds(e.maxBounds),t.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),void 0===this.painter)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return i._update(!1)})),this.on("moveend",(function(){return i._update(!1)})),this.on("zoom",(function(){return i._update(!0)})),void 0!==t.window&&(t.window.addEventListener("online",this._onWindowOnline,!1),t.window.addEventListener("resize",this._onWindowResize,!1),t.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new gr(this,e),this._hash=e.hash&&new Io("string"==typeof e.hash&&e.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:e.center,zoom:e.zoom,bearing:e.bearing,pitch:e.pitch}),e.bounds&&(this.resize(),this.fitBounds(e.bounds,t.extend({},e.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=e.localIdeographFontFamily,e.style&&this.setStyle(e.style,{localIdeographFontFamily:e.localIdeographFontFamily}),e.attributionControl&&this.addControl(new yr({customAttribution:e.customAttribution})),this.addControl(new xr,e.logoPosition),this.on("style.load",(function(){i.transform.unmodified&&i.jumpTo(i.style.stylesheet);})),this.on("data",(function(e){i._update("style"===e.dataType),i.fire(new t.Event(e.dataType+"data",e));})),this.on("dataloading",(function(e){i.fire(new t.Event(e.dataType+"dataloading",e));}));}o&&(r.__proto__=o),(r.prototype=Object.create(o&&o.prototype)).constructor=r;var a={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return r.prototype._getMapId=function(){return this._mapId},r.prototype.addControl=function(e,i){if(void 0===i&&(i=e.getDefaultPosition?e.getDefaultPosition():"top-right"),!e||!e.onAdd)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var o=e.onAdd(this);this._controls.push(e);var r=this._controlPositions[i];return -1!==i.indexOf("bottom")?r.insertBefore(o,r.firstChild):r.appendChild(o),this},r.prototype.removeControl=function(e){if(!e||!e.onRemove)return this.fire(new t.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var i=this._controls.indexOf(e);return i>-1&&this._controls.splice(i,1),e.onRemove(this),this},r.prototype.hasControl=function(t){return this._controls.indexOf(t)>-1},r.prototype.resize=function(e){var i=this._containerDimensions(),o=i[0],r=i[1];this._resizeCanvas(o,r),this.transform.resize(o,r),this.painter.resize(o,r);var a=!this._moving;return a&&(this.stop(),this.fire(new t.Event("movestart",e)).fire(new t.Event("move",e))),this.fire(new t.Event("resize",e)),a&&this.fire(new t.Event("moveend",e)),this},r.prototype.getBounds=function(){return this.transform.getBounds()},r.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},r.prototype.setMaxBounds=function(e){return this.transform.setMaxBounds(t.LngLatBounds.convert(e)),this._update()},r.prototype.setMinZoom=function(t){if((t=null==t?-2:t)>=-2&&t<=this.transform.maxZoom)return this.transform.minZoom=t,this._update(),this.getZoom()<t&&this.setZoom(t),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")},r.prototype.getMinZoom=function(){return this.transform.minZoom},r.prototype.setMaxZoom=function(t){if((t=null==t?22:t)>=this.transform.minZoom)return this.transform.maxZoom=t,this._update(),this.getZoom()>t&&this.setZoom(t),this;throw new Error("maxZoom must be greater than the current minZoom")},r.prototype.getMaxZoom=function(){return this.transform.maxZoom},r.prototype.setMinPitch=function(t){if((t=null==t?0:t)<0)throw new Error("minPitch must be greater than or equal to 0");if(t>=0&&t<=this.transform.maxPitch)return this.transform.minPitch=t,this._update(),this.getPitch()<t&&this.setPitch(t),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")},r.prototype.getMinPitch=function(){return this.transform.minPitch},r.prototype.setMaxPitch=function(t){if((t=null==t?60:t)>60)throw new Error("maxPitch must be less than or equal to 60");if(t>=this.transform.minPitch)return this.transform.maxPitch=t,this._update(),this.getPitch()>t&&this.setPitch(t),this;throw new Error("maxPitch must be greater than the current minPitch")},r.prototype.getMaxPitch=function(){return this.transform.maxPitch},r.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},r.prototype.setRenderWorldCopies=function(t){return this.transform.renderWorldCopies=t,this._update()},r.prototype.project=function(e){return this.transform.locationPoint(t.LngLat.convert(e))},r.prototype.unproject=function(e){return this.transform.pointLocation(t.Point.convert(e))},r.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},r.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},r.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},r.prototype._createDelegatedListener=function(t,e,i){var o,r=this;if("mouseenter"===t||"mouseover"===t){var a=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){var n=r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[];n.length?a||(a=!0,i.call(r,new Ro(t,r,o.originalEvent,{features:n}))):a=!1;},mouseout:function(){a=!1;}}}}if("mouseleave"===t||"mouseout"===t){var n=!1;return {layer:e,listener:i,delegates:{mousemove:function(o){(r.getLayer(e)?r.queryRenderedFeatures(o.point,{layers:[e]}):[]).length?n=!0:n&&(n=!1,i.call(r,new Ro(t,r,o.originalEvent)));},mouseout:function(e){n&&(n=!1,i.call(r,new Ro(t,r,e.originalEvent)));}}}}return {layer:e,listener:i,delegates:(o={},o[t]=function(t){var o=r.getLayer(e)?r.queryRenderedFeatures(t.point,{layers:[e]}):[];o.length&&(t.features=o,i.call(r,t),delete t.features);},o)}},r.prototype.on=function(t,e,i){if(void 0===i)return o.prototype.on.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[t]=this._delegatedListeners[t]||[],this._delegatedListeners[t].push(r),r.delegates)this.on(a,r.delegates[a]);return this},r.prototype.once=function(t,e,i){if(void 0===i)return o.prototype.once.call(this,t,e);var r=this._createDelegatedListener(t,e,i);for(var a in r.delegates)this.once(a,r.delegates[a]);return this},r.prototype.off=function(t,e,i){var r=this;return void 0===i?o.prototype.off.call(this,t,e):(this._delegatedListeners&&this._delegatedListeners[t]&&function(o){for(var a=o[t],n=0;n<a.length;n++){var s=a[n];if(s.layer===e&&s.listener===i){for(var l in s.delegates)r.off(l,s.delegates[l]);return a.splice(n,1),r}}}(this._delegatedListeners),this)},r.prototype.queryRenderedFeatures=function(e,i){if(!this.style)return [];var o;if(void 0!==i||void 0===e||e instanceof t.Point||Array.isArray(e)||(i=e,e=void 0),i=i||{},(e=e||[[0,0],[this.transform.width,this.transform.height]])instanceof t.Point||"number"==typeof e[0])o=[t.Point.convert(e)];else {var r=t.Point.convert(e[0]),a=t.Point.convert(e[1]);o=[r,new t.Point(a.x,r.y),a,new t.Point(r.x,a.y),r];}return this.style.queryRenderedFeatures(o,i,this.transform)},r.prototype.querySourceFeatures=function(t,e){return this.style.querySourceFeatures(t,e)},r.prototype.setStyle=function(e,i){return !1!==(i=t.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},i)).diff&&i.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&e?(this._diffStyle(e,i),this):(this._localIdeographFontFamily=i.localIdeographFontFamily,this._updateStyle(e,i))},r.prototype._getUIString=function(t){var e=this._locale[t];if(null==e)throw new Error("Missing UI string '"+t+"'");return e},r.prototype._updateStyle=function(t,e){return this.style&&(this.style.setEventedParent(null),this.style._remove()),t?(this.style=new je(this,e||{}),this.style.setEventedParent(this,{style:this.style}),"string"==typeof t?this.style.loadURL(t):this.style.loadJSON(t),this):(delete this.style,this)},r.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new je(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty());},r.prototype._diffStyle=function(e,i){var o=this;if("string"==typeof e){var r=this._requestManager.normalizeStyleURL(e),a=this._requestManager.transformRequest(r,t.ResourceType.Style);t.getJSON(a,(function(e,r){e?o.fire(new t.ErrorEvent(e)):r&&o._updateDiff(r,i);}));}else "object"==typeof e&&this._updateDiff(e,i);},r.prototype._updateDiff=function(e,i){try{this.style.setState(e)&&this._update(!0);}catch(o){t.warnOnce("Unable to perform style diff: "+(o.message||o.error||o)+". Rebuilding the style from scratch."),this._updateStyle(e,i);}},r.prototype.getStyle=function(){if(this.style)return this.style.serialize()},r.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():t.warnOnce("There is no style added to the map.")},r.prototype.addSource=function(t,e){return this._lazyInitEmptyStyle(),this.style.addSource(t,e),this._update(!0)},r.prototype.isSourceLoaded=function(e){var i=this.style&&this.style.sourceCaches[e];if(void 0!==i)return i.loaded();this.fire(new t.ErrorEvent(new Error("There is no source with ID '"+e+"'")));},r.prototype.areTilesLoaded=function(){var t=this.style&&this.style.sourceCaches;for(var e in t){var i=t[e]._tiles;for(var o in i){var r=i[o];if("loaded"!==r.state&&"errored"!==r.state)return !1}}return !0},r.prototype.addSourceType=function(t,e,i){return this._lazyInitEmptyStyle(),this.style.addSourceType(t,e,i)},r.prototype.removeSource=function(t){return this.style.removeSource(t),this._update(!0)},r.prototype.getSource=function(t){return this.style.getSource(t)},r.prototype.addImage=function(e,i,o){void 0===o&&(o={});var r=o.pixelRatio;void 0===r&&(r=1);var a=o.sdf;void 0===a&&(a=!1);var n=o.stretchX,s=o.stretchY,l=o.content;if(this._lazyInitEmptyStyle(),i instanceof Tr||Ir&&i instanceof Ir){var c=t.browser.getImageData(i);this.style.addImage(e,{data:new t.RGBAImage({width:c.width,height:c.height},c.data),pixelRatio:r,stretchX:n,stretchY:s,content:l,sdf:a,version:0});}else {if(void 0===i.width||void 0===i.height)return this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));var u=i;this.style.addImage(e,{data:new t.RGBAImage({width:i.width,height:i.height},new Uint8Array(i.data)),pixelRatio:r,stretchX:n,stretchY:s,content:l,sdf:a,version:0,userImage:u}),u.onAdd&&u.onAdd(this,e);}},r.prototype.updateImage=function(e,i){var o=this.style.getImage(e);if(!o)return this.fire(new t.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));var r=i instanceof Tr||Ir&&i instanceof Ir?t.browser.getImageData(i):i,a=r.width,n=r.height,s=r.data;return void 0===a||void 0===n?this.fire(new t.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))):a!==o.data.width||n!==o.data.height?this.fire(new t.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))):(o.data.replace(s,!(i instanceof Tr||Ir&&i instanceof Ir)),void this.style.updateImage(e,o))},r.prototype.hasImage=function(e){return e?!!this.style.getImage(e):(this.fire(new t.ErrorEvent(new Error("Missing required image id"))),!1)},r.prototype.removeImage=function(t){this.style.removeImage(t);},r.prototype.loadImage=function(e,i){t.getImage(this._requestManager.transformRequest(e,t.ResourceType.Image),i);},r.prototype.listImages=function(){return this.style.listImages()},r.prototype.addLayer=function(t,e){return this._lazyInitEmptyStyle(),this.style.addLayer(t,e),this._update(!0)},r.prototype.moveLayer=function(t,e){return this.style.moveLayer(t,e),this._update(!0)},r.prototype.removeLayer=function(t){return this.style.removeLayer(t),this._update(!0)},r.prototype.getLayer=function(t){return this.style.getLayer(t)},r.prototype.setLayerZoomRange=function(t,e,i){return this.style.setLayerZoomRange(t,e,i),this._update(!0)},r.prototype.setFilter=function(t,e,i){return void 0===i&&(i={}),this.style.setFilter(t,e,i),this._update(!0)},r.prototype.getFilter=function(t){return this.style.getFilter(t)},r.prototype.setPaintProperty=function(t,e,i,o){return void 0===o&&(o={}),this.style.setPaintProperty(t,e,i,o),this._update(!0)},r.prototype.getPaintProperty=function(t,e){return this.style.getPaintProperty(t,e)},r.prototype.setLayoutProperty=function(t,e,i,o){return void 0===o&&(o={}),this.style.setLayoutProperty(t,e,i,o),this._update(!0)},r.prototype.getLayoutProperty=function(t,e){return this.style.getLayoutProperty(t,e)},r.prototype.setLight=function(t,e){return void 0===e&&(e={}),this._lazyInitEmptyStyle(),this.style.setLight(t,e),this._update(!0)},r.prototype.getLight=function(){return this.style.getLight()},r.prototype.setFeatureState=function(t,e){return this.style.setFeatureState(t,e),this._update()},r.prototype.removeFeatureState=function(t,e){return this.style.removeFeatureState(t,e),this._update()},r.prototype.getFeatureState=function(t){return this.style.getFeatureState(t)},r.prototype.getContainer=function(){return this._container},r.prototype.getCanvasContainer=function(){return this._canvasContainer},r.prototype.getCanvas=function(){return this._canvas},r.prototype._containerDimensions=function(){var t=0,e=0;return this._container&&(t=this._container.clientWidth||400,e=this._container.clientHeight||300),[t,e]},r.prototype._detectMissingCSS=function(){"rgb(250, 128, 114)"!==t.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")&&t.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.");},r.prototype._setupContainer=function(){var t=this._container;t.classList.add("mapboxgl-map"),(this._missingCSSCanary=i.create("div","mapboxgl-canary",t)).style.visibility="hidden",this._detectMissingCSS();var e=this._canvasContainer=i.create("div","mapboxgl-canvas-container",t);this._interactive&&e.classList.add("mapboxgl-interactive"),this._canvas=i.create("canvas","mapboxgl-canvas",e),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");var o=this._containerDimensions();this._resizeCanvas(o[0],o[1]);var r=this._controlContainer=i.create("div","mapboxgl-control-container",t),a=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((function(t){a[t]=i.create("div","mapboxgl-ctrl-"+t,r);})),this._container.addEventListener("scroll",this._onMapScroll,!1);},r.prototype._resizeCanvas=function(e,i){var o=t.browser.devicePixelRatio||1;this._canvas.width=o*e,this._canvas.height=o*i,this._canvas.style.width=e+"px",this._canvas.style.height=i+"px";},r.prototype._setupPainter=function(){var i=t.extend({},e.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),o=this._canvas.getContext("webgl",i)||this._canvas.getContext("experimental-webgl",i);o?(this.painter=new yo(o,this.transform),t.webpSupported.testSupport(o)):this.fire(new t.ErrorEvent(new Error("Failed to initialize WebGL")));},r.prototype._contextLost=function(e){e.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new t.Event("webglcontextlost",{originalEvent:e}));},r.prototype._contextRestored=function(e){this._setupPainter(),this.resize(),this._update(),this.fire(new t.Event("webglcontextrestored",{originalEvent:e}));},r.prototype._onMapScroll=function(t){if(t.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},r.prototype.loaded=function(){return !this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},r.prototype._update=function(t){return this.style?(this._styleDirty=this._styleDirty||t,this._sourcesDirty=!0,this.triggerRepaint(),this):this},r.prototype._requestRenderFrame=function(t){return this._update(),this._renderTaskQueue.add(t)},r.prototype._cancelRenderFrame=function(t){this._renderTaskQueue.remove(t);},r.prototype._render=function(e){var i,o=this,r=0,a=this.painter.context.extTimerQuery;if(this.listens("gpu-timing-frame")&&(i=a.createQueryEXT(),a.beginQueryEXT(a.TIME_ELAPSED_EXT,i),r=t.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(e),!this._removed){var n=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var s=this.transform.zoom,l=t.browser.now();this.style.zoomHistory.update(s,l);var c=new t.EvaluationParameters(s,{now:l,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),u=c.crossFadingFactor();1===u&&u===this._crossFadingFactor||(n=!0,this._crossFadingFactor=u),this.style.update(c);}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer")}),this.fire(new t.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new t.Event("load"))),this.style&&(this.style.hasTransitions()||n)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){var h=t.browser.now()-r;a.endQueryEXT(a.TIME_ELAPSED_EXT,i),setTimeout((function(){var e=a.getQueryObjectEXT(i,a.QUERY_RESULT_EXT)/1e6;a.deleteQueryEXT(i),o.fire(new t.Event("gpu-timing-frame",{cpuTime:h,gpuTime:e}));}),50);}if(this.listens("gpu-timing-layer")){var p=this.painter.collectGpuTimers();setTimeout((function(){var e=o.painter.queryGpuTimers(p);o.fire(new t.Event("gpu-timing-layer",{layerTimes:e}));}),50);}var d=this._sourcesDirty||this._styleDirty||this._placementDirty;return d||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new t.Event("idle")),!this._loaded||this._fullyLoaded||d||(this._fullyLoaded=!0),this}},r.prototype.remove=function(){this._hash&&this._hash.remove();for(var e=0,i=this._controls;e<i.length;e+=1)i[e].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),void 0!==t.window&&(t.window.removeEventListener("resize",this._onWindowResize,!1),t.window.removeEventListener("orientationchange",this._onWindowResize,!1),t.window.removeEventListener("online",this._onWindowOnline,!1));var o=this.painter.context.gl.getExtension("WEBGL_lose_context");o&&o.loseContext(),Cr(this._canvasContainer),Cr(this._controlContainer),Cr(this._missingCSSCanary),this._container.classList.remove("mapboxgl-map"),this._removed=!0,this.fire(new t.Event("remove"));},r.prototype.triggerRepaint=function(){var e=this;this.style&&!this._frame&&(this._frame=t.browser.frame((function(t){e._frame=null,e._render(t);})));},r.prototype._onWindowOnline=function(){this._update();},r.prototype._onWindowResize=function(t){this._trackResize&&this.resize({originalEvent:t})._update();},a.showTileBoundaries.get=function(){return !!this._showTileBoundaries},a.showTileBoundaries.set=function(t){this._showTileBoundaries!==t&&(this._showTileBoundaries=t,this._update());},a.showPadding.get=function(){return !!this._showPadding},a.showPadding.set=function(t){this._showPadding!==t&&(this._showPadding=t,this._update());},a.showCollisionBoxes.get=function(){return !!this._showCollisionBoxes},a.showCollisionBoxes.set=function(t){this._showCollisionBoxes!==t&&(this._showCollisionBoxes=t,t?this.style._generateCollisionBoxes():this._update());},a.showOverdrawInspector.get=function(){return !!this._showOverdrawInspector},a.showOverdrawInspector.set=function(t){this._showOverdrawInspector!==t&&(this._showOverdrawInspector=t,this._update());},a.repaint.get=function(){return !!this._repaint},a.repaint.set=function(t){this._repaint!==t&&(this._repaint=t,this.triggerRepaint());},a.vertices.get=function(){return !!this._vertices},a.vertices.set=function(t){this._vertices=t,this._update();},r.prototype._setCacheLimits=function(e,i){t.setCacheLimits(e,i);},a.version.get=function(){return t.version},Object.defineProperties(r.prototype,a),r}(vr);function Cr(t){t.parentNode&&t.parentNode.removeChild(t);}var zr={showCompass:!0,showZoom:!0,visualizePitch:!1},Dr=function(e){var o=this;this.options=t.extend({},zr,e),this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this.options.showZoom&&(t.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",(function(t){return o._map.zoomIn({},{originalEvent:t})})),i.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",(function(t){return o._map.zoomOut({},{originalEvent:t})})),i.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(t.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",(function(t){o.options.visualizePitch?o._map.resetNorthPitch({},{originalEvent:t}):o._map.resetNorth({},{originalEvent:t});})),this._compassIcon=i.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0));};Dr.prototype._updateZoomButtons=function(){var t=this._map.getZoom(),e=t===this._map.getMaxZoom(),i=t===this._map.getMinZoom();this._zoomInButton.disabled=e,this._zoomOutButton.disabled=i,this._zoomInButton.setAttribute("aria-disabled",e.toString()),this._zoomOutButton.setAttribute("aria-disabled",i.toString());},Dr.prototype._rotateCompassArrow=function(){var t=this.options.visualizePitch?"scale("+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+") rotateX("+this._map.transform.pitch+"deg) rotateZ("+this._map.transform.angle*(180/Math.PI)+"deg)":"rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassIcon.style.transform=t;},Dr.prototype.onAdd=function(t){return this._map=t,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ar(this._map,this._compass,this.options.visualizePitch)),this._container},Dr.prototype.onRemove=function(){i.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map;},Dr.prototype._createButton=function(t,e){var o=i.create("button",t,this._container);return o.type="button",o.addEventListener("click",e),o},Dr.prototype._setButtonTitle=function(t,e){var i=this._map._getUIString("NavigationControl."+e);t.title=i,t.setAttribute("aria-label",i);};var Ar=function(e,o,r){void 0===r&&(r=!1),this._clickTolerance=10,this.element=o,this.mouseRotate=new Xo({clickTolerance:e.dragRotate._mouseRotate._clickTolerance}),this.map=e,r&&(this.mousePitch=new Ho({clickTolerance:e.dragRotate._mousePitch._clickTolerance})),t.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),i.addEventListener(o,"mousedown",this.mousedown),i.addEventListener(o,"touchstart",this.touchstart,{passive:!1}),i.addEventListener(o,"touchmove",this.touchmove),i.addEventListener(o,"touchend",this.touchend),i.addEventListener(o,"touchcancel",this.reset);};function Mr(e,i,o){if(e=new t.LngLat(e.lng,e.lat),i){var r=new t.LngLat(e.lng-360,e.lat),a=new t.LngLat(e.lng+360,e.lat),n=o.locationPoint(e).distSqr(i);o.locationPoint(r).distSqr(i)<n?e=r:o.locationPoint(a).distSqr(i)<n&&(e=a);}for(;Math.abs(e.lng-o.center.lng)>180;){var s=o.locationPoint(e);if(s.x>=0&&s.y>=0&&s.x<=o.width&&s.y<=o.height)break;e.lng>o.center.lng?e.lng-=360:e.lng+=360;}return e}Ar.prototype.down=function(t,e){this.mouseRotate.mousedown(t,e),this.mousePitch&&this.mousePitch.mousedown(t,e),i.disableDrag();},Ar.prototype.move=function(t,e){var i=this.map,o=this.mouseRotate.mousemoveWindow(t,e);if(o&&o.bearingDelta&&i.setBearing(i.getBearing()+o.bearingDelta),this.mousePitch){var r=this.mousePitch.mousemoveWindow(t,e);r&&r.pitchDelta&&i.setPitch(i.getPitch()+r.pitchDelta);}},Ar.prototype.off=function(){var t=this.element;i.removeEventListener(t,"mousedown",this.mousedown),i.removeEventListener(t,"touchstart",this.touchstart,{passive:!1}),i.removeEventListener(t,"touchmove",this.touchmove),i.removeEventListener(t,"touchend",this.touchend),i.removeEventListener(t,"touchcancel",this.reset),this.offTemp();},Ar.prototype.offTemp=function(){i.enableDrag(),i.removeEventListener(t.window,"mousemove",this.mousemove),i.removeEventListener(t.window,"mouseup",this.mouseup);},Ar.prototype.mousedown=function(e){this.down(t.extend({},e,{ctrlKey:!0,preventDefault:function(){return e.preventDefault()}}),i.mousePos(this.element,e)),i.addEventListener(t.window,"mousemove",this.mousemove),i.addEventListener(t.window,"mouseup",this.mouseup);},Ar.prototype.mousemove=function(t){this.move(t,i.mousePos(this.element,t));},Ar.prototype.mouseup=function(t){this.mouseRotate.mouseupWindow(t),this.mousePitch&&this.mousePitch.mouseupWindow(t),this.offTemp();},Ar.prototype.touchstart=function(t){1!==t.targetTouches.length?this.reset():(this._startPos=this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return t.preventDefault()}},this._startPos));},Ar.prototype.touchmove=function(t){1!==t.targetTouches.length?this.reset():(this._lastPos=i.touchPos(this.element,t.targetTouches)[0],this.move({preventDefault:function(){return t.preventDefault()}},this._lastPos));},Ar.prototype.touchend=function(t){0===t.targetTouches.length&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset();},Ar.prototype.reset=function(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp();};var Lr={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Rr(t,e,i){var o=t.classList;for(var r in Lr)o.remove("mapboxgl-"+i+"-anchor-"+r);o.add("mapboxgl-"+i+"-anchor-"+e);}var kr,Br=function(e){function o(o,r){if(e.call(this),(o instanceof t.window.HTMLElement||r)&&(o=t.extend({element:o},r)),t.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=o&&o.anchor||"center",this._color=o&&o.color||"#3FB1CE",this._scale=o&&o.scale||1,this._draggable=o&&o.draggable||!1,this._clickTolerance=o&&o.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=o&&o.rotation||0,this._rotationAlignment=o&&o.rotationAlignment||"auto",this._pitchAlignment=o&&o.pitchAlignment&&"auto"!==o.pitchAlignment?o.pitchAlignment:this._rotationAlignment,o&&o.element)this._element=o.element,this._offset=t.Point.convert(o&&o.offset||[0,0]);else {this._defaultMarker=!0,this._element=i.create("div"),this._element.setAttribute("aria-label","Map marker");var a=i.createNS("http://www.w3.org/2000/svg","svg");a.setAttributeNS(null,"display","block"),a.setAttributeNS(null,"height","41px"),a.setAttributeNS(null,"width","27px"),a.setAttributeNS(null,"viewBox","0 0 27 41");var n=i.createNS("http://www.w3.org/2000/svg","g");n.setAttributeNS(null,"stroke","none"),n.setAttributeNS(null,"stroke-width","1"),n.setAttributeNS(null,"fill","none"),n.setAttributeNS(null,"fill-rule","evenodd");var s=i.createNS("http://www.w3.org/2000/svg","g");s.setAttributeNS(null,"fill-rule","nonzero");var l=i.createNS("http://www.w3.org/2000/svg","g");l.setAttributeNS(null,"transform","translate(3.0, 29.0)"),l.setAttributeNS(null,"fill","#000000");for(var c=0,u=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];c<u.length;c+=1){var h=u[c],p=i.createNS("http://www.w3.org/2000/svg","ellipse");p.setAttributeNS(null,"opacity","0.04"),p.setAttributeNS(null,"cx","10.5"),p.setAttributeNS(null,"cy","5.80029008"),p.setAttributeNS(null,"rx",h.rx),p.setAttributeNS(null,"ry",h.ry),l.appendChild(p);}var d=i.createNS("http://www.w3.org/2000/svg","g");d.setAttributeNS(null,"fill",this._color);var _=i.createNS("http://www.w3.org/2000/svg","path");_.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),d.appendChild(_);var f=i.createNS("http://www.w3.org/2000/svg","g");f.setAttributeNS(null,"opacity","0.25"),f.setAttributeNS(null,"fill","#000000");var m=i.createNS("http://www.w3.org/2000/svg","path");m.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),f.appendChild(m);var g=i.createNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"transform","translate(6.0, 7.0)"),g.setAttributeNS(null,"fill","#FFFFFF");var v=i.createNS("http://www.w3.org/2000/svg","g");v.setAttributeNS(null,"transform","translate(8.0, 8.0)");var y=i.createNS("http://www.w3.org/2000/svg","circle");y.setAttributeNS(null,"fill","#000000"),y.setAttributeNS(null,"opacity","0.25"),y.setAttributeNS(null,"cx","5.5"),y.setAttributeNS(null,"cy","5.5"),y.setAttributeNS(null,"r","5.4999962");var x=i.createNS("http://www.w3.org/2000/svg","circle");x.setAttributeNS(null,"fill","#FFFFFF"),x.setAttributeNS(null,"cx","5.5"),x.setAttributeNS(null,"cy","5.5"),x.setAttributeNS(null,"r","5.4999962"),v.appendChild(y),v.appendChild(x),s.appendChild(l),s.appendChild(d),s.appendChild(f),s.appendChild(g),s.appendChild(v),a.appendChild(s),a.setAttributeNS(null,"height",41*this._scale+"px"),a.setAttributeNS(null,"width",27*this._scale+"px"),this._element.appendChild(a),this._offset=t.Point.convert(o&&o.offset||[0,-14]);}this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",(function(t){t.preventDefault();})),this._element.addEventListener("mousedown",(function(t){t.preventDefault();})),Rr(this._element,this._anchor,"marker"),this._popup=null;}return e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o,o.prototype.addTo=function(t){return this.remove(),this._map=t,t.getCanvasContainer().appendChild(this._element),t.on("move",this._update),t.on("moveend",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this},o.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),i.remove(this._element),this._popup&&this._popup.remove(),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},o.prototype.getElement=function(){return this._element},o.prototype.setPopup=function(t){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),t){if(!("offset"in t.options)){var e=Math.sqrt(Math.pow(13.5,2)/2);t.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[e,-1*(24.6+e)],"bottom-right":[-e,-1*(24.6+e)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset;}this._popup=t,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress);}return this},o.prototype._onKeyPress=function(t){var e=t.code,i=t.charCode||t.keyCode;"Space"!==e&&"Enter"!==e&&32!==i&&13!==i||this.togglePopup();},o.prototype._onMapClick=function(t){var e=t.originalEvent.target,i=this._element;this._popup&&(e===i||i.contains(e))&&this.togglePopup();},o.prototype.getPopup=function(){return this._popup},o.prototype.togglePopup=function(){var t=this._popup;return t?(t.isOpen()?t.remove():t.addTo(this._map),this):this},o.prototype._update=function(t){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=Mr(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var e="";"viewport"===this._rotationAlignment||"auto"===this._rotationAlignment?e="rotateZ("+this._rotation+"deg)":"map"===this._rotationAlignment&&(e="rotateZ("+(this._rotation-this._map.getBearing())+"deg)");var o="";"viewport"===this._pitchAlignment||"auto"===this._pitchAlignment?o="rotateX(0deg)":"map"===this._pitchAlignment&&(o="rotateX("+this._map.getPitch()+"deg)"),t&&"moveend"!==t.type||(this._pos=this._pos.round()),i.setTransform(this._element,Lr[this._anchor]+" translate("+this._pos.x+"px, "+this._pos.y+"px) "+o+" "+e);}},o.prototype.getOffset=function(){return this._offset},o.prototype.setOffset=function(e){return this._offset=t.Point.convert(e),this._update(),this},o.prototype._onMove=function(e){if(!this._isDragging){var i=this._clickTolerance||this._map._clickTolerance;this._isDragging=e.point.dist(this._pointerdownPos)>=i;}this._isDragging&&(this._pos=e.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none","pending"===this._state&&(this._state="active",this.fire(new t.Event("dragstart"))),this.fire(new t.Event("drag")));},o.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),"active"===this._state&&this.fire(new t.Event("dragend")),this._state="inactive";},o.prototype._addDragHandler=function(t){this._element.contains(t.originalEvent.target)&&(t.preventDefault(),this._positionDelta=t.point.sub(this._pos).add(this._offset),this._pointerdownPos=t.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp));},o.prototype.setDraggable=function(t){return this._draggable=!!t,this._map&&(t?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},o.prototype.isDraggable=function(){return this._draggable},o.prototype.setRotation=function(t){return this._rotation=t||0,this._update(),this},o.prototype.getRotation=function(){return this._rotation},o.prototype.setRotationAlignment=function(t){return this._rotationAlignment=t||"auto",this._update(),this},o.prototype.getRotationAlignment=function(){return this._rotationAlignment},o.prototype.setPitchAlignment=function(t){return this._pitchAlignment=t&&"auto"!==t?t:this._rotationAlignment,this._update(),this},o.prototype.getPitchAlignment=function(){return this._pitchAlignment},o}(t.Evented),Or={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},Fr=0,Ur=!1,Nr=function(e){function o(i){e.call(this),this.options=t.extend({},Or,i),t.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this);}return e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o,o.prototype.onAdd=function(e){var o;return this._map=e,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),o=this._setupUI,void 0!==kr?o(kr):void 0!==t.window.navigator.permissions?t.window.navigator.permissions.query({name:"geolocation"}).then((function(t){o(kr="denied"!==t.state);})):o(kr=!!t.window.navigator.geolocation),this._container},o.prototype.onRemove=function(){void 0!==this._geolocationWatchID&&(t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),i.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Fr=0,Ur=!1;},o.prototype._isOutOfMapMaxBounds=function(t){var e=this._map.getMaxBounds(),i=t.coords;return e&&(i.longitude<e.getWest()||i.longitude>e.getEast()||i.latitude<e.getSouth()||i.latitude>e.getNorth())},o.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");}},o.prototype._onSuccess=function(e){if(this._map){if(this._isOutOfMapMaxBounds(e))return this._setErrorState(),this.fire(new t.Event("outofmaxbounds",e)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=e,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");}this.options.showUserLocation&&"OFF"!==this._watchState&&this._updateMarker(e),this.options.trackUserLocation&&"ACTIVE_LOCK"!==this._watchState||this._updateCamera(e),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("geolocate",e)),this._finish();}},o.prototype._updateCamera=function(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude),o=e.coords.accuracy,r=this._map.getBearing(),a=t.extend({bearing:r},this.options.fitBoundsOptions);this._map.fitBounds(i.toBounds(o),a,{geolocateSource:!0});},o.prototype._updateMarker=function(e){if(e){var i=new t.LngLat(e.coords.longitude,e.coords.latitude);this._accuracyCircleMarker.setLngLat(i).addTo(this._map),this._userLocationDotMarker.setLngLat(i).addTo(this._map),this._accuracy=e.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove();},o.prototype._updateCircleRadius=function(){var t=this._map._container.clientHeight/2,e=this._map.unproject([0,t]),i=this._map.unproject([1,t]),o=e.distanceTo(i),r=Math.ceil(2*this._accuracy/o);this._circleElement.style.width=r+"px",this._circleElement.style.height=r+"px";},o.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius();},o.prototype._onError=function(e){if(this._map){if(this.options.trackUserLocation)if(1===e.code){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var i=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=i,this._geolocateButton.setAttribute("aria-label",i),void 0!==this._geolocationWatchID&&this._clearWatch();}else {if(3===e.code&&Ur)return;this._setErrorState();}"OFF"!==this._watchState&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new t.Event("error",e)),this._finish();}},o.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0;},o.prototype._setupUI=function(e){var o=this;if(this._container.addEventListener("contextmenu",(function(t){return t.preventDefault()})),this._geolocateButton=i.create("button","mapboxgl-ctrl-geolocate",this._container),i.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",!1===e){t.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var r=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=r,this._geolocateButton.setAttribute("aria-label",r);}else {var a=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=a,this._geolocateButton.setAttribute("aria-label",a);}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=i.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Br(this._dotElement),this._circleElement=i.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Br({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(e){e.geolocateSource||"ACTIVE_LOCK"!==o._watchState||e.originalEvent&&"resize"===e.originalEvent.type||(o._watchState="BACKGROUND",o._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),o._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),o.fire(new t.Event("trackuserlocationend")));}));},o.prototype.trigger=function(){if(!this._setup)return t.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new t.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Fr--,Ur=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new t.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new t.Event("trackuserlocationstart"));}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error");}if("OFF"===this._watchState&&void 0!==this._geolocationWatchID)this._clearWatch();else if(void 0===this._geolocationWatchID){var e;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++Fr>1?(e={maximumAge:6e5,timeout:0},Ur=!0):(e=this.options.positionOptions,Ur=!1),this._geolocationWatchID=t.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,e);}}else t.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return !0},o.prototype._clearWatch=function(){t.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null);},o}(t.Evented),Zr={maxWidth:100,unit:"metric"},qr=function(e){this.options=t.extend({},Zr,e),t.bindAll(["_onMove","setUnit"],this);};function jr(t,e,i){var o=i&&i.maxWidth||100,r=t._container.clientHeight/2,a=t.unproject([0,r]),n=t.unproject([o,r]),s=a.distanceTo(n);if(i&&"imperial"===i.unit){var l=3.2808*s;l>5280?Vr(e,o,l/5280,t._getUIString("ScaleControl.Miles")):Vr(e,o,l,t._getUIString("ScaleControl.Feet"));}else i&&"nautical"===i.unit?Vr(e,o,s/1852,t._getUIString("ScaleControl.NauticalMiles")):s>=1e3?Vr(e,o,s/1e3,t._getUIString("ScaleControl.Kilometers")):Vr(e,o,s,t._getUIString("ScaleControl.Meters"));}function Vr(t,e,i,o){var r,a,n,s=(r=i,(a=Math.pow(10,(""+Math.floor(r)).length-1))*(n=(n=r/a)>=10?10:n>=5?5:n>=3?3:n>=2?2:n>=1?1:function(t){var e=Math.pow(10,Math.ceil(-Math.log(t)/Math.LN10));return Math.round(t*e)/e}(n)));t.style.width=e*(s/i)+"px",t.innerHTML=s+"&nbsp;"+o;}qr.prototype.getDefaultPosition=function(){return "bottom-left"},qr.prototype._onMove=function(){jr(this._map,this._container,this.options);},qr.prototype.onAdd=function(t){return this._map=t,this._container=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",t.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},qr.prototype.onRemove=function(){i.remove(this._container),this._map.off("move",this._onMove),this._map=void 0;},qr.prototype.setUnit=function(t){this.options.unit=t,jr(this._map,this._container,this.options);};var Gr=function(e){this._fullscreen=!1,e&&e.container&&(e.container instanceof t.window.HTMLElement?this._container=e.container:t.warnOnce("Full screen control 'container' must be a DOM element.")),t.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in t.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in t.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in t.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in t.window.document&&(this._fullscreenchange="MSFullscreenChange");};Gr.prototype.onAdd=function(e){return this._map=e,this._container||(this._container=this._map.getContainer()),this._controlContainer=i.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",t.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Gr.prototype.onRemove=function(){i.remove(this._controlContainer),this._map=null,t.window.document.removeEventListener(this._fullscreenchange,this._changeIcon);},Gr.prototype._checkFullscreenSupport=function(){return !!(t.window.document.fullscreenEnabled||t.window.document.mozFullScreenEnabled||t.window.document.msFullscreenEnabled||t.window.document.webkitFullscreenEnabled)},Gr.prototype._setupUI=function(){var e=this._fullscreenButton=i.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);i.create("span","mapboxgl-ctrl-icon",e).setAttribute("aria-hidden",!0),e.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),t.window.document.addEventListener(this._fullscreenchange,this._changeIcon);},Gr.prototype._updateTitle=function(){var t=this._getTitle();this._fullscreenButton.setAttribute("aria-label",t),this._fullscreenButton.title=t;},Gr.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Gr.prototype._isFullscreen=function(){return this._fullscreen},Gr.prototype._changeIcon=function(){(t.window.document.fullscreenElement||t.window.document.mozFullScreenElement||t.window.document.webkitFullscreenElement||t.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle());},Gr.prototype._onClickFullscreen=function(){this._isFullscreen()?t.window.document.exitFullscreen?t.window.document.exitFullscreen():t.window.document.mozCancelFullScreen?t.window.document.mozCancelFullScreen():t.window.document.msExitFullscreen?t.window.document.msExitFullscreen():t.window.document.webkitCancelFullScreen&&t.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen();};var Wr={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},Xr=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),Hr=function(e){function o(i){e.call(this),this.options=t.extend(Object.create(Wr),i),t.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this);}return e&&(o.__proto__=e),(o.prototype=Object.create(e&&e.prototype)).constructor=o,o.prototype.addTo=function(e){return this._map&&this.remove(),this._map=e,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new t.Event("open")),this},o.prototype.isOpen=function(){return !!this._map},o.prototype.remove=function(){return this._content&&i.remove(this._content),this._container&&(i.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new t.Event("close")),this},o.prototype.getLngLat=function(){return this._lngLat},o.prototype.setLngLat=function(e){return this._lngLat=t.LngLat.convert(e),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},o.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},o.prototype.getElement=function(){return this._container},o.prototype.setText=function(e){return this.setDOMContent(t.window.document.createTextNode(e))},o.prototype.setHTML=function(e){var i,o=t.window.document.createDocumentFragment(),r=t.window.document.createElement("body");for(r.innerHTML=e;i=r.firstChild;)o.appendChild(i);return this.setDOMContent(o)},o.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},o.prototype.setMaxWidth=function(t){return this.options.maxWidth=t,this._update(),this},o.prototype.setDOMContent=function(t){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=i.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(t),this._createCloseButton(),this._update(),this._focusFirstElement(),this},o.prototype.addClassName=function(t){this._container&&this._container.classList.add(t);},o.prototype.removeClassName=function(t){this._container&&this._container.classList.remove(t);},o.prototype.setOffset=function(t){return this.options.offset=t,this._update(),this},o.prototype.toggleClassName=function(t){if(this._container)return this._container.classList.toggle(t)},o.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=i.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="&#215;",this._closeButton.addEventListener("click",this._onClose));},o.prototype._onMouseUp=function(t){this._update(t.point);},o.prototype._onMouseMove=function(t){this._update(t.point);},o.prototype._onDrag=function(t){this._update(t.point);},o.prototype._update=function(e){var o=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=i.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=i.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(t){return o._container.classList.add(t)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=Mr(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||e)){var r=this._pos=this._trackPointer&&e?e:this._map.project(this._lngLat),a=this.options.anchor,n=function e(i){if(i){if("number"==typeof i){var o=Math.round(Math.sqrt(.5*Math.pow(i,2)));return {center:new t.Point(0,0),top:new t.Point(0,i),"top-left":new t.Point(o,o),"top-right":new t.Point(-o,o),bottom:new t.Point(0,-i),"bottom-left":new t.Point(o,-o),"bottom-right":new t.Point(-o,-o),left:new t.Point(i,0),right:new t.Point(-i,0)}}if(i instanceof t.Point||Array.isArray(i)){var r=t.Point.convert(i);return {center:r,top:r,"top-left":r,"top-right":r,bottom:r,"bottom-left":r,"bottom-right":r,left:r,right:r}}return {center:t.Point.convert(i.center||[0,0]),top:t.Point.convert(i.top||[0,0]),"top-left":t.Point.convert(i["top-left"]||[0,0]),"top-right":t.Point.convert(i["top-right"]||[0,0]),bottom:t.Point.convert(i.bottom||[0,0]),"bottom-left":t.Point.convert(i["bottom-left"]||[0,0]),"bottom-right":t.Point.convert(i["bottom-right"]||[0,0]),left:t.Point.convert(i.left||[0,0]),right:t.Point.convert(i.right||[0,0])}}return e(new t.Point(0,0))}(this.options.offset);if(!a){var s,l=this._container.offsetWidth,c=this._container.offsetHeight;s=r.y+n.bottom.y<c?["top"]:r.y>this._map.transform.height-c?["bottom"]:[],r.x<l/2?s.push("left"):r.x>this._map.transform.width-l/2&&s.push("right"),a=0===s.length?"bottom":s.join("-");}var u=r.add(n[a]).round();i.setTransform(this._container,Lr[a]+" translate("+u.x+"px,"+u.y+"px)"),Rr(this._container,a,"popup");}},o.prototype._focusFirstElement=function(){if(this.options.focusAfterOpen&&this._container){var t=this._container.querySelector(Xr);t&&t.focus();}},o.prototype._onClose=function(){this.remove();},o}(t.Evented),Kr={version:t.version,supported:e,setRTLTextPlugin:t.setRTLTextPlugin,getRTLTextPluginStatus:t.getRTLTextPluginStatus,Map:Sr,NavigationControl:Dr,GeolocateControl:Nr,AttributionControl:yr,ScaleControl:qr,FullscreenControl:Gr,Popup:Hr,Marker:Br,Style:je,LngLat:t.LngLat,LngLatBounds:t.LngLatBounds,Point:t.Point,MercatorCoordinate:t.MercatorCoordinate,Evented:t.Evented,config:t.config,prewarm:function(){Ft().acquire(Rt);},clearPrewarmedResources:function(){var t=Bt;t&&(t.isPreloaded()&&1===t.numActive()?(t.release(Rt),Bt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"));},get accessToken(){return t.config.ACCESS_TOKEN},set accessToken(e){t.config.ACCESS_TOKEN=e;},get baseApiUrl(){return t.config.API_URL},set baseApiUrl(e){t.config.API_URL=e;},get workerCount(){return kt.workerCount},set workerCount(t){kt.workerCount=t;},get maxParallelImageRequests(){return t.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(e){t.config.MAX_PARALLEL_IMAGE_REQUESTS=e;},clearStorage:function(e){t.clearTileCache(e);},workerUrl:""};return Kr}));
+
+//
+
+return mapboxgl;
+
+})));
+//# sourceMappingURL=mapbox-gl.js.map
diff --git a/plugins/jetpack/_inc/blocks/editor-beta.asset.php b/plugins/jetpack/_inc/blocks/editor-beta.asset.php
index aac7a69b..0ce4f5bf 100644
--- a/plugins/jetpack/_inc/blocks/editor-beta.asset.php
+++ b/plugins/jetpack/_inc/blocks/editor-beta.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-token-list', 'wp-url'), 'version' => 'af202345ce4c02273a9706fe204e7d13'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-a11y', 'wp-annotations', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-token-list', 'wp-url', 'wp-viewport'), 'version' => '89c6abee98ffea69b5aafffa60e28a36'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-beta.css b/plugins/jetpack/_inc/blocks/editor-beta.css
index dc94cba3..199c2419 100644
--- a/plugins/jetpack/_inc/blocks/editor-beta.css
+++ b/plugins/jetpack/_inc/blocks/editor-beta.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:left;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 32px 2px 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;left:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-right:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;left:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-left:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:right}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:left}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 0 0 4px;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-right:0;padding-left:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:left;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-left:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-right:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-left:0;margin-right:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;left:0;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 0 0 5%;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-left:-10px;margin-right:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);left:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 0 0 6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-right:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;left:50%;margin-top:-9px;margin-left:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 0 2px 2px;position:absolute;right:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px}.jetpack-seo-message-box{background-color:#edeff0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-left:5px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);left:8px;-o-object-fit:contain;object-fit:contain;position:absolute;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:left;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;left:0;padding:20px 0;position:fixed;position:sticky;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-right:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-right:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-left:1px solid #ccc;margin-left:16px;padding-left:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-right:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 1px 9px 0}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-right:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;margin-top:-48px;padding:0;position:absolute;right:0;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-right:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-left:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-right:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-right:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-right:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-right:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-right:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left;margin:3px 5px 0 0}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:left;margin:0 5px 0 0}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-left:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-left:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-left:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-left:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:left}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-right:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-right:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:left}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{left:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-right:12px}.components-placeholder.is-large .image-compare__image-after{padding-left:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-left:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-left:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto auto auto -3px;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}div.jx-arrow.jx-right{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;left:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;right:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{left:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{right:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{left:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;right:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{left:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:0;left:0}div.jx-image.jx-left img{left:0}div.jx-image.jx-right{background-position:100%;right:0}div.jx-image.jx-right img{bottom:0;right:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:left;left:0}div.jx-image.jx-right div.jx-label{float:right;right:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;left:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:left .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-left:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);left:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);right:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-right:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;left:50%;margin-left:-16px;margin-top:-19px;position:absolute;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:right;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:left;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 0 0 4px;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:1em;padding-right:0}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:left}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:auto;right:0}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:left}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{margin-left:2rem;max-width:840px;right:auto}.wp-block-jetpack-opentable.is-style-wide.alignright{left:calc(100% - 840px - 2rem);max-width:840px}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:15px;padding-right:18px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-right:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 24px 10px 22px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-left:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-left:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 2px 0 0;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-left:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-right:5px}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-right:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 0 0 8px}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-left:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-left:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);left:-10px;position:absolute;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-left:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 24px 0 8px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-right:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{left:calc(50% - 12px);position:absolute;top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-right:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 16px 8px 56px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-left:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-left:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-right:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 5px 0 0}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-left:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-left:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-right:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;right:0;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;padding-top:0;position:relative;right:auto}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-right:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-right:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-left:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-left:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:left;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 2px -4px 0;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-right:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-left:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";left:-20px;position:absolute}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-right:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-left:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-right:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;left:3px;position:absolute;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-right-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;margin:15px;padding:5px 3px;position:absolute;right:0;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{left:-84px;margin:auto}.wp-story-container .wp-story-next-slide{margin:auto;right:-84px}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-next-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 16px 0 0;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 12px 0 0;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-left:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{left:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{right:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-left:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-right:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:0;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-right:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;margin:0;position:absolute;right:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{left:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-right:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 0 4px 12px;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-right:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-left:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px}.anchor-post-publish-outbound-link .anchor-post-publish-outbound-link__external_icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-premium-content-container .premium-content-tabs{align-items:center;background:#fff;border:1px solid #1e1e1e;border-radius:2px;color:#757575;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:0 0 0 -1px;padding:8px 14px;position:relative}.wp-block-premium-content-container--tab{align-items:center;background:transparent;border:none;display:flex;flex-direction:row;margin-right:5px;padding:5px;text-decoration:none}.premium-content-tabs>button.edit{margin-left:auto}.premium-content-wrapper{margin:0}.premium-content-block-nudge .editor-warning{margin-bottom:0}.premium-content-block-nudge .editor-warning__message{margin:13px 0}.premium-content-block-nudge .editor-warning__actions{line-height:1}.premium-content-block-nudge .premium-content-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.premium-content-block-nudge .premium-content-block-nudge__text-container{display:flex;flex-direction:column;padding-left:10px}.premium-content-block-nudge .premium-content-block-nudge__title{font-size:14px}.premium-content-block-nudge__message{color:#646970}.editor-styles-wrapper a.premium-content-block-nudge__button{color:#0075af;text-decoration:none}.membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-interval .components-base-control,.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-name .components-base-control{width:100%}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-price .components-base-control{margin:0;width:45%}.wp-block-premium-content-container---settings-add_plan .components-panel__row:last-child{margin-top:25px}.wp-block-premium-content-container---settings-add_plan .components-base-control:last-child{margin:0}.wp-block-premium-content-container---link-to-earn{display:block;margin:16px}.premium-content-toolbar-button .components-dropdown-menu__toggle:after{border-color:transparent currentcolor currentcolor transparent;border-style:solid;border-width:4px;bottom:1px;content:"";display:block;position:absolute;right:0}.connect-stripe.has-icon.has-text svg{margin-right:0}.connect-stripe.has-icon.has-text{font-weight:400}.wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"]{display:inline-block;margin:0 .5em 0 0}.editor-styles-wrapper .wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"] .wp-block-button:not(.alignleft):not(.alignright){margin:0}.wp-block-premium-content-container .jetpack-block-nudge{display:none}.wp-block-premium-content-login-button{display:inline-block}.wp-block[data-align=center]>.wp-block-premium-content-login-button{align-items:center;display:flex;justify-content:center}.wp-block-jetpack-conversation__participant{display:flex;height:30px;line-height:30px}.wp-block-jetpack-conversation__participant-label{flex-grow:2}.wp-block-jetpack-conversation__placeholder,.wp-block-jetpack-dialogue__timestamp-controls{display:flex}.wp-block-jetpack-dialogue__timestamp-controls .components-number-control{min-width:60px}.wp-block-jetpack-dialogue__timestamp-button{margin-left:6px}.wp-block-jetpack-dialogue__timestamp-control__hour,.wp-block-jetpack-dialogue__timestamp-control__minute{margin-right:5px}.wp-block-jetpack-dialogue__timestamp-control__play-button{align-self:flex-end;margin-left:10px}.wp-block-jetpack-dialogue__timestamp-content .wp-block-jetpack-dialogue__timestamp-container{min-width:290px}.wp-block-jetpack-dialogue__timestamp-range-control{margin-right:16px;margin-top:8px}.wp-block-jetpack-dialogue__timestamp-dropdown{min-width:90px}.wp-block-jetpack-dialogue__participant.is-participant-adding,.wp-block-jetpack-dialogue__participant.is-participant-editing{opacity:.7}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta.has-not-media-source>div{width:100%}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta .wp-block-jetpack-dialogue__participant{min-width:50px}.media-player-control__current-time{align-items:center;display:flex;font-size:14px;min-width:55px;padding:0 12px 0 5px}.media-player-control__current-time.is-disabled{color:#757575;cursor:default}.wp-block-jetpack-dialogue__timestamp-player{display:flex;flex-wrap:wrap;justify-content:center;margin-top:10px}.wp-block-jetpack-dialogue__timestamp-player button{padding:0}.media-player-control__toolbar .components-toolbar-button .dashicons{margin:0}.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:5px;margin-right:0;padding:6px 12px;text-align:right;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:right}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-right:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none}.wp-block-jetpack-amazon{font-size:14px}.wp-block-jetpack-amazon-title{font-weight:700;line-height:1.3em}.wp-block-jetpack-amazon-title a{text-decoration:none}.wp-block-jetpack-amazon-button{justify-content:center;width:100%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-beta.js b/plugins/jetpack/_inc/blocks/editor-beta.js
index e387ada7..fcef9624 100644
--- a/plugins/jetpack/_inc/blocks/editor-beta.js
+++ b/plugins/jetpack/_inc/blocks/editor-beta.js
@@ -1,2 +1,152 @@
-/*! For license information please see editor-beta.js.LICENSE */
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(t){for(var n,r,i=t[0],o=t[1],c=0,s=[];c<i.length;c++)r=i[c],Object.prototype.hasOwnProperty.call(a,r)&&a[r]&&s.push(a[r][0]),a[r]=0;for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);for(l&&l(t);s.length;)s.shift()()}var n={},r={4:0},a={4:0};function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];r[e]?t.push(r[e]):0!==r[e]&&{16:1,17:1}[e]&&t.push(r[e]=new Promise((function(t,n){for(var a="rtl"===document.dir?({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".rtl.css":({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".css",o=i.p+a,c=document.getElementsByTagName("link"),s=0;s<c.length;s++){var l=(p=c[s]).getAttribute("data-href")||p.getAttribute("href");if("stylesheet"===p.rel&&(l===a||l===o))return t()}var u=document.getElementsByTagName("style");for(s=0;s<u.length;s++){var p;if((l=(p=u[s]).getAttribute("data-href"))===a||l===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.setAttribute("data-webpack",!0),d.onload=t,d.onerror=function(t){var a=t&&t.target&&t.target.src||o,i=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=a,delete r[e],d.parentNode.removeChild(d),n(i)},d.href=o,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){r[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var o=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=o);var c,s=document.createElement("script");s.charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.src=function(e){return i.p+""+({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".js"}(e);var l=new Error;c=function(t){s.onerror=s.onload=null,clearTimeout(u);var n=a[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",l.name="ChunkLoadError",l.type=r,l.request=i,n[1](l)}a[e]=void 0}};var u=setTimeout((function(){c({type:"timeout",target:s})}),12e4);s.onerror=s.onload=c,document.head.appendChild(s)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],c=o.push.bind(o);o.push=t,o=o.slice();for(var s=0;s<o.length;s++)t(o[s]);var l=c;return i(i.s=271)}([function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){!function(){e.exports=this.wp.i18n}()},function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){!function(){e.exports=this.lodash}()},function(e,t){!function(){e.exports=this.wp.blockEditor}()},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(127),a=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(128);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var o=a.apply(null,r);o&&e.push(o)}else if("object"===i)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t,n){var r=n(3);function a(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},function(e,t){!function(){e.exports=this.wp.blocks}()},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(55),o=n(16),c=n(94),s=n(40),l=n(30),u=n.n(l),p=n(0),d=n(14),h=(n(143),function(e){return Object(d.createHigherOrderComponent)((function(t){return function(n){return Object(p.createElement)(t,u()({},n,{className:n.name===e?"has-warning is-interactive":""}))}}),"withHasWarningIsInteractiveClassNames")}),m=n(56),f=n.n(m),b=n(1),g=n(31),v=n(5),j=n(13),y=n(50),_=n(57),k=n(35),O=n(24),w={setPlans:function(e){return{type:"SET_PLANS",plans:e}},fetchFromAPI:function(e){return{type:"FETCH_FROM_API",url:e}}};Object(j.registerStore)("wordpress-com/plans",{reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PLANS":return t.plans}return e},actions:w,selectors:{getPlan:function(e,t){return e.find((function(e){return e.product_slug===t}))}},controls:{FETCH_FROM_API:function(e){var t=e.url;return fetch(t).then((function(e){return e.json()}))}},resolvers:{getPlan:regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"https://public-api.wordpress.com/rest/v1.5/plans",e.next=3,w.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");case 3:return t=e.sent,e.abrupt("return",w.setPlans(t));case 5:case"end":return e.stop()}}),e)}))}});n(145);var E=Object(d.compose)([Object(j.withSelect)((function(e,t){var n=t.plan,r=e("wordpress-com/plans").getPlan(n),a=Object(v.startsWith)(n,"jetpack_")?n.substr("jetpack_".length):Object(v.get)(r,["path_slug"]),i=e("core/editor").getCurrentPostId(),o=e("core/editor").getCurrentPostType(),c=["page","post"].includes(o)?"":"edit",s=Object(O.b)()?Object(g.addQueryArgs)("/"+Object(v.compact)([c,o,Object(k.a)(),i]).join("/"),{plan_upgraded:1}):Object(g.addQueryArgs)(window.location.protocol+"//".concat(Object(k.a)().replace("::","/"),"/wp-admin/post.php"),{action:"edit",post:i,plan_upgraded:1}),l=a&&Object(g.addQueryArgs)("https://wordpress.com/checkout/".concat(Object(k.a)(),"/").concat(a),{redirect_to:s});return{trackEvent:function(e){y.a.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:r,block:e})},planName:Object(v.get)(r,["product_name"]),upgradeUrl:l}}))])((function(e){var t=e.planName,n=e.trackEvent,r=e.upgradeUrl;return Object(p.createElement)(_.a,{buttonLabel:Object(b.__)("Upgrade","jetpack"),icon:Object(p.createElement)(f.a,{className:"jetpack-upgrade-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:r,onClick:n,title:t?Object(b.sprintf)(Object(b.__)("Upgrade to %(planName)s to use this block on your site.","jetpack"),{planName:t}):Object(b.__)("Upgrade to a paid plan to use this block on your site.","jetpack"),subtitle:Object(b.__)("You can try it out before upgrading, but only you will see it. It will be hidden from your visitors until you upgrade.","jetpack")})})),C=function(e){var t=e.requiredPlan;return Object(d.createHigherOrderComponent)((function(e){return function(n){return Object(p.createElement)(p.Fragment,null,Object(p.createElement)(E,{plan:t,blockName:n.name}),Object(p.createElement)(e,n))}}),"wrapPaidBlock")};n.d(t,"a",(function(){return A}));var x=c.beta||[];function S(e,t){return"missing_plan"===e&&t.required_plan}function A(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=Object(s.a)(e),c=r.available,l=r.details,u=r.unavailableReason,p=S(u,l);if(!c&&!p)return!1;var d=Object(o.registerBlockType)("jetpack/".concat(e),a()({},t,{title:x.includes(e)?"".concat(t.title," (beta)"):t.title,edit:p?C({requiredPlan:p})(t.edit):t.edit,example:p?void 0:t.example}));return p&&Object(i.addFilter)("editor.BlockListBlock","jetpack/".concat(e,"-with-has-warning-is-interactive-class-names"),h("jetpack/".concat(e))),n.forEach((function(e){return Object(o.registerBlockType)("jetpack/".concat(e.name),e.settings)})),d}},function(e,t,n){var r=n(65),a=n(66),i=n(67);e.exports=function(e,t){return r(e)||a(e,t)||i()}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function o(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var c=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,s=new RegExp(c.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),l=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(81);var p=/[&<>"]/,d=/[&<>"]/g,h={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function m(e){return h[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var b=n(68);t.lib={},t.lib.mdurl=n(82),t.lib.ucmicro=n(168),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(c,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(s,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&l.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?o(n):e}(e,n)}))},t.isValidEntityCode=i,t.fromCodePoint=o,t.escapeHtml=function(e){return p.test(e)?e.replace(d,m):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return b.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){return Object(r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},function(e,t,n){var r=n(123),a=n(124),i=n(125);e.exports=function(e){return r(e)||a(e)||i()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"h",(function(){return i})),n.d(t,"i",(function(){return o})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return s})),n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return u})),n.d(t,"g",(function(){return p}));var r=["image"],a=4,i=20,o=2e3,c="circle",s="columns",l="rectangular",u="square",p=[{isDefault:!0,name:l},{name:c},{name:u},{name:s}]},function(e,t){!function(){e.exports=this.wp.apiFetch}()},function(e,t,n){"use strict";function r(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function a(){return"simple"===r()}function i(){return"atomic"===r()}n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return i}))},function(e,t){!function(){e.exports=this.wp.blob}()},function(e,t){!function(){e.exports=this.wp.keycodes}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),a=n(1),i={name:"map",prefix:"jetpack",title:Object(a.__)("Map","jetpack"),icon:Object(r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},Object(r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Object(r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"jetpack",keywords:[Object(a._x)("map","block search term","jetpack"),Object(a._x)("location","block search term","jetpack"),Object(a._x)("navigation","block search term","jetpack")],description:Object(a.__)("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},mapStyle:{type:"string",default:"default"},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1}},supports:{html:!1},mapStyleOptions:[{value:"default",label:Object(a.__)("Basic","jetpack")},{value:"black_and_white",label:Object(a.__)("Black and white","jetpack")},{value:"satellite",label:Object(a.__)("Satellite","jetpack")},{value:"terrain",label:Object(a.__)("Terrain","jetpack")}],validAlignments:["center","wide","full"],markerIcon:Object(r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},Object(r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},Object(r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},Object(r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),Object(r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},function(e,t){!function(){e.exports=this.wp.editor}()},function(e,t,n){"use strict";var r=n(136),a=n(138);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=j,t.resolve=function(e,t){return j(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?j(e,!1,!0).resolveObject(t):t},t.format=function(e){a.isString(e)&&(e=j(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var o=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(139);function j(e,t,n){if(e&&a.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),c=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(c);l[0]=l[0].replace(/\\/g,"/");var j=e=l.join(c);if(j=j.trim(),!n&&1===e.split("#").length){var y=s.exec(j);if(y)return this.path=j,this.href=j,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=o.exec(j);if(_){var k=(_=_[0]).toLowerCase();this.protocol=k,j=j.substr(_.length)}if(n||_||j.match(/^\/\/[^@\/]+@[^@\/]+/)){var O="//"===j.substr(0,2);!O||_&&b[_]||(j=j.substr(2),this.slashes=!0)}if(!b[_]&&(O||_&&!g[_])){for(var w,E,C=-1,x=0;x<d.length;x++){-1!==(S=j.indexOf(d[x]))&&(-1===C||S<C)&&(C=S)}-1!==(E=-1===C?j.lastIndexOf("@"):j.lastIndexOf("@",C))&&(w=j.slice(0,E),j=j.slice(E+1),this.auth=decodeURIComponent(w)),C=-1;for(x=0;x<p.length;x++){var S;-1!==(S=j.indexOf(p[x]))&&(-1===C||S<C)&&(C=S)}-1===C&&(C=j.length),this.host=j.slice(0,C),j=j.slice(C),this.parseHost(),this.hostname=this.hostname||"";var A="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!A)for(var F=this.hostname.split(/\./),P=(x=0,F.length);x<P;x++){var T=F[x];if(T&&!T.match(h)){for(var N="",M=0,R=T.length;M<R;M++)T.charCodeAt(M)>127?N+="x":N+=T[M];if(!N.match(h)){var D=F.slice(0,x),z=F.slice(x+1),I=T.match(m);I&&(D.push(I[1]),z.unshift(I[2])),z.length&&(j="/"+z.join(".")+j),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),A||(this.hostname=r.toASCII(this.hostname));var L=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+L,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==j[0]&&(j="/"+j))}if(!f[k])for(x=0,P=u.length;x<P;x++){var q=u[x];if(-1!==j.indexOf(q)){var U=encodeURIComponent(q);U===q&&(U=escape(q)),j=j.split(q).join(U)}}var V=j.indexOf("#");-1!==V&&(this.hash=j.substr(V),j=j.slice(0,V));var H=j.indexOf("?");if(-1!==H?(this.search=j.substr(H),this.query=j.substr(H+1),t&&(this.query=v.parse(this.query)),j=j.slice(0,H)):t&&(this.search="",this.query={}),j&&(this.pathname=j),g[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){L=this.pathname||"";var G=this.search||"";this.path=L+G}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=v.stringify(this.query));var c=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),c&&"?"!==c.charAt(0)&&(c="?"+c),t+i+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(c=c.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(j(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(a.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),o=0;o<r.length;o++){var c=r[o];n[c]=this[c]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var u=s[l];"protocol"!==u&&(n[u]=e[u])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var h=p[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||b[e.protocol])n.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),n.pathname=m.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var j=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),_=y||j||n.host&&e.pathname,k=_,O=n.pathname&&n.pathname.split("/")||[],w=(m=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(w&&(n.hostname="",n.port=null,n.host&&(""===O[0]?O[0]=n.host:O.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),_=_&&(""===m[0]||""===O[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,O=m;else if(m.length)O||(O=[]),O.pop(),O=O.concat(m),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(w)n.hostname=n.host=O.shift(),(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!O.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=O.slice(-1)[0],C=(n.host||e.host||O.length>1)&&("."===E||".."===E)||""===E,x=0,S=O.length;S>=0;S--)"."===(E=O[S])?O.splice(S,1):".."===E?(O.splice(S,1),x++):x&&(O.splice(S,1),x--);if(!_&&!k)for(;x--;x)O.unshift("..");!_||""===O[0]||O[0]&&"/"===O[0].charAt(0)||O.unshift(""),C&&"/"!==O.join("/").substr(-1)&&O.push("");var A,F=""===O[0]||O[0]&&"/"===O[0].charAt(0);w&&(n.hostname=n.host=F?"":O.length?O.shift():"",(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift()));return(_=_||n.host&&O.length)&&!F&&O.unshift(""),O.length?n.pathname=O.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=c.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t){!function(){e.exports=this.wp.url}()},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(10),m=n.n(h),f=n(0),b=n(1),g=n(12),v=n.n(g),j=n(14),y=n(2),_=n(6),k=n(5),O=window.getComputedStyle,w=Object(y.withFallbackStyles)((function(e,t){var n,r,a,i,o=t.textButtonColor,c=t.backgroundButtonColor,s=c&&c.color,l=o&&o.color;return!l&&e&&(n=e.querySelector('[contenteditable="true"]')),r=e.querySelector(".wp-block-button__link")?e.querySelector(".wp-block-button__link"):e,e&&(a=O(r).backgroundColor),n&&(i=O(n).color),{fallbackBackgroundColor:s||a,fallbackTextColor:l||i}})),E=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return m()(t,e),s()(t,[{key:"componentDidUpdate",value:function(e){if(!Object(k.isEqual)(this.props.textButtonColor,e.textButtonColor)||!Object(k.isEqual)(this.props.backgroundButtonColor,e.backgroundButtonColor)){var t=this.getButtonClasses();this.props.setAttributes({submitButtonClasses:t})}}},{key:"getButtonClasses",value:function(){var e,t=this.props,n=t.textButtonColor,r=t.backgroundButtonColor,i=Object(k.get)(n,"class"),o=Object(k.get)(r,"class");return v()("wp-block-button__link",(e={"has-text-color":n},a()(e,i,i),a()(e,"has-background",r),a()(e,o,o),e))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.fallbackBackgroundColor,r=e.fallbackTextColor,a=e.setAttributes,i=e.setBackgroundButtonColor,o=e.setTextButtonColor,c=t.customBackgroundButtonColor||n,s=t.customTextButtonColor||r,l={border:"none",backgroundColor:c,color:s},u=this.getButtonClasses();return Object(f.createElement)(f.Fragment,null,Object(f.createElement)("div",{className:"wp-block-button jetpack-submit-button"},Object(f.createElement)(_.RichText,{placeholder:Object(b.__)("Add text…","jetpack"),value:t.submitButtonText,onChange:function(e){return a({submitButtonText:e})},className:u,style:l,keepPlaceholderOnFocus:!0,allowedFormats:[]})),Object(f.createElement)(_.InspectorControls,null,Object(f.createElement)(_.PanelColorSettings,{title:Object(b.__)("Button Color Settings","jetpack"),colorSettings:[{value:c,onChange:function(e){i(e),a({customBackgroundButtonColor:e})},label:Object(b.__)("Background Color","jetpack")},{value:s,onChange:function(e){o(e),a({customTextButtonColor:e})},label:Object(b.__)("Text Color","jetpack")}]}),Object(f.createElement)(_.ContrastChecker,{textColor:s,backgroundColor:c})))}}]),t}(f.Component);t.a=Object(j.compose)([Object(_.withColors)("backgroundButtonColor",{textButtonColor:"color"}),w])(E)},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"e",(function(){return c}));var r="after-visits",a="before-visits",i=3,o="jp-visit-counter",c=15552e3},function(e,t){!function(){e.exports=this.React}()},function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,"a",(function(){return r}))},function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(47),a=n(40);function i(e,t){var n=Object(a.a)(e),i=n.available;n.unavailableReason;return!!i&&Object(r.registerPlugin)("jetpack-".concat(e),t)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return l})),n.d(t,"d",(function(){return c}));var r=n(74),a=n(5),i="wp-block-jetpack-slideshow_autoplay-paused";function o(e){c(e),s(e),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(i)?(e.el.classList.remove(i),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(i),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function c(e){if(e&&e.el){var t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(t){var n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,16/9),1),a="undefined"!=typeof window?.8*window.innerHeight:600,i=Math.min(e.width/r,a),o="".concat(Math.floor(i),"px"),c="".concat(Math.floor(i/2),"px");e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=o,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=c,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=c}}}function s(e){Object(a.forEach)(e.slides,(function(t,n){t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){var t=e.slides[e.activeIndex];if(t){var n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:Object(r.escapeHTML)(a.alt))}}(e)}function l(e){Object(a.forEach)(e.pagination.bullets,(function(t){t.addEventListener("click",(function(){var t=e.slides[e.realIndex];setTimeout((function(){t.focus()}),500)}))}))}},function(e,t,n){"use strict";var r=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return(function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}())}(),a="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,i="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var c=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&s()}function c(){o(i)}function s(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);a=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){a&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){a&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;c.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||i},d=v(0,0,0,0);function h(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+h(e["border-"+n+"-width"])}),0)}function f(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=p(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],i=e["padding-"+a];t[a]=h(i)}return t}(r),i=a.left+a.right,o=a.top+a.bottom,c=h(r.width),s=h(r.height);if("border-box"===r.boxSizing&&(Math.round(c+i)!==t&&(c-=m(r,"left","right")+i),Math.round(s+o)!==n&&(s-=m(r,"top","bottom")+o)),!function(e){return e===p(e).document.documentElement}(e)){var l=Math.round(c+i)-t,u=Math.round(s+o)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(u)&&(s-=u)}return v(a.left,a.top,c,s)}var b="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return a?b(e)?function(e){var t=e.getBBox();return v(0,0,t.width,t.height)}(e):f(e):d}function v(e,t,n,r){return{x:e,y:t,width:n,height:r}}var j=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=v(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,r,a,i,o,c,s,l=(r=(n=t).x,a=n.y,i=n.width,o=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(c.prototype),u(s,{x:r,y:a,width:i,height:o,top:a,right:r+i,bottom:o+a,left:r}),s);u(this,{target:e,contentRect:l})},_=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new j(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new y(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),k="undefined"!=typeof WeakMap?new WeakMap:new r,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new _(t,n,this);k.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}}));var w=void 0!==i.ResizeObserver?i.ResizeObserver:O;t.a=w},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(5);function o(e){var t=Object(i.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null),n=Object(i.get)(t,["available_blocks",e,"available"],!1),r=Object(i.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),o=Object(i.get)(t,["available_blocks",e,"details"],[]);return a()({available:n},!n&&{details:o,unavailableReason:r})}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";var r=n(30),a=n.n(r),i=n(46),o=n.n(i),c=n(0),s=n(12),l=n.n(s),u=n(96),p=n.n(u);n(151);t.a=function(e){var t=e.children,n=void 0===t?null:t,r=e.isError,i=void 0!==r&&r,s=o()(e,["children","isError"]),u=l()("help-message",{"help-message-is-error":i});return n&&Object(c.createElement)("div",a()({className:u},s),i&&Object(c.createElement)(p.a,{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),Object(c.createElement)("span",null,n))}},,function(e,t,n){"use strict";var r=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!r.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(2),i=n(52),o=n(47),c=(n(155),n(53)),s=Object(a.createSlotFill)("JetpackPluginSidebar"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-sidebar",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(r.Fragment,null,Object(r.createElement)(i.PluginSidebarMoreMenuItem,{target:"jetpack",icon:Object(r.createElement)(c.a,null)},"Jetpack"),Object(r.createElement)(i.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:Object(r.createElement)(c.a,null)},e)):null}))}})},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},function(e,t,n){var r=n(150);e.exports=function(e,t){if(null==e)return{};var n,a,i=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t){!function(){e.exports=this.wp.plugins}()},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){var t=e.label,n=e.onClick;return Object(r.createElement)(a.IconButton,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},function(e,t,n){"use strict";var r=n(54),a=n.n(r),i=n(102),o=n.n(i),c=n(103),s=n.n(c),l=n(63),u=n.n(l),p=n(104),d=n.n(p),h=n(77),m=n.n(h),f=n(105),b=n.n(f),g=n(72);function v(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,c=void 0===n?".":n,s="";return(s=(i?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,i):""+Math.round(a)).split("."))[0].length>3&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(s[1]||"").length<i&&(s[1]=s[1]||"",s[1]+=new Array(i-s[1].length+1).join("0")),s.join(c)}var j=o()("i18n-calypso"),y=[function(e){return e}],_={};function k(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function O(e){return Array.prototype.slice.call(e)}function w(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&k("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",O(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&k("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",O(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function E(e,t){var n="gettext";t.context&&(n="p"+n),"string"==typeof t.original&&"string"==typeof t.plural&&(n="n"+n);var r=function(e,t){switch(e){case"gettext":return[t.original];case"ngettext":return[t.original,t.plural,t.count];case"npgettext":return[t.context,t.original,t.plural,t.count];case"pgettext":return[t.context,t.original]}return[]}(n,t);return e[n].apply(e,r)}function C(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t));if(e.state.locale[r.original])return E(e.state.jed,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.state={numberFormatSettings:{},jed:void 0,locale:void 0,localeSlug:void 0,translations:d()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new g.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.moment=m.a,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return v(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){if(e&&e[""]&&e[""]["key-hash"]){var t=e[""]["key-hash"],n=function(e,t){var n=!1===t?"":String(t);if(void 0!==_[n+e])return _[n+e];var r=b()().update(e).digest("hex");return _[n+e]=t?r.substr(0,t):r},r=function(e){return function(t){return t.context?(t.original=n(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=n(t.original,e),t}};if("sha1"===t.substr(0,4))if(4===t.length)y.push(r(!1));else{var a=t.substr(5).indexOf("-");if(a<0){var i=Number(t.substr(5));y.push(r(i))}else for(var o=Number(t.substr(5,a)),c=Number(t.substr(6+a)),s=o;s<=c;s++)y.push(r(s))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.jed=new u.a({locale_data:{messages:this.state.locale}}),m.a.locale(this.state.localeSlug),this.state.numberFormatSettings.decimal_point=E(this.state.jed,w(["number_format_decimals"])),this.state.numberFormatSettings.thousands_sep=E(this.state.jed,w(["number_format_thousands_sep"])),"number_format_decimals"===this.state.numberFormatSettings.decimal_point&&(this.state.numberFormatSettings.decimal_point="."),"number_format_thousands_sep"===this.state.numberFormatSettings.thousands_sep&&(this.state.numberFormatSettings.thousands_sep=","),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.jed.options.locale_data.messages[t]=e[t]);this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!C(this,w(arguments))},x.prototype.translate=function(){var e,t=w(arguments),n=!t.components;if(n){try{e=JSON.stringify(t)}catch(c){n=!1}if(e){var r=this.state.translations.get(e);if(r)return r}}var a=C(this,t);if(a||(a=E(this.state.jed,t)),t.args){var i=Array.isArray(t.args)?t.args.slice(0):[t.args];i.unshift(a);try{a=u.a.sprintf.apply(u.a,i)}catch(l){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof l?window.console[o](l):window.console[o]("i18n sprintf error:",i)}}return t.components&&(a=s()({mixedString:a,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(e){a=e(a,t)})),n&&this.state.translations.set(e,a),a},x.prototype.reRenderTranslations=function(){j("Re-rendering all translations due to external request"),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var S,A,F=x,P=n(7),T=n.n(P),N=n(11),M=n.n(N),R=n(8),D=n.n(R),z=n(9),I=n.n(z),L=n(4),B=n.n(L),q=n(10),U=n.n(q),V=n(3),H=n.n(V),G=n(34),$=n.n(G),W=n(18),K=n.n(W),Z=new F,J=(Z.moment,Z.numberFormat.bind(Z)),Y=(Z.translate.bind(Z),Z.configure.bind(Z),Z.setLocale.bind(Z),Z.getLocale.bind(Z),Z.getLocaleSlug.bind(Z),Z.addTranslations.bind(Z),Z.reRenderTranslations.bind(Z),Z.registerComponentUpdateHook.bind(Z),Z.registerTranslateHook.bind(Z),Z.state,Z.stateObserver,Z.on.bind(Z),Z.off.bind(Z),Z.emit.bind(Z),A={moment:(S=Z).moment,numberFormat:S.numberFormat.bind(S),translate:S.translate.bind(S)},function(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}}(Z),n(45));function Q(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object(Y.a)(t);if(!r||isNaN(e))return null;var i=a()({},r,n),o=i.decimal,c=i.grouping,s=i.precision,l=i.symbol,u=e<0?"-":"",p=J(Math.abs(e),{decimals:s,thousandsSep:c,decPoint:o});return"".concat(u).concat(l).concat(p)}n.d(t,"a",(function(){return Q}))},function(e,t,n){"use strict";var r=n(93),a=n.n(r),i=n(5),o={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};var c,s,l=function(e){if(e in o)return o[e];throw new Error("config key `"+e+"` does not exist")},u=a()("dops:analytics");window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;var p={initialize:function(e,t,n){p.setUser(e,t),p.setSuperProps(n),p.identifyUser()},setUser:function(e,t){s={ID:e,username:t}},setSuperProps:function(e){c=e},mc:{bumpStat:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&x_"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Built stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){p.tracks.recordPageView(e),p.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,i,o){p.ga.recordPurchase(e,t,n,r,a,i,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(c&&(u("- Super Props: %o",c),t=Object(i.assign)(t,c)),u('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):u('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){var t="object"==typeof e?e:{target:e};p.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){p.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){u("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){var e={};p.ga.initialized||(s&&(e={userId:"u-"+s.ID}),window.ga("create",l("google_analytics_key"),"auto",e),p.ga.initialized=!0)},recordPageView:function(e,t){p.ga.initialize(),u("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),l("google_analytics_enabled")&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,n,r){p.ga.initialize();var a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),u(a),l("google_analytics_enabled")&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,i,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:i}),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"])}};t.a=p},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(5),a=function(e,t){return Object(r.reduce)(t,(function(t,n,r){var a=e[r],i=a.type,o=a.validator,c=a.validValues,s=a.default;return t[r]="boolean"===i?!!n:o?o(n)?n:s:c?c.includes(n)?n:s:n,t}),{})}},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(12),o=n.n(i);t.a=function(e){var t=e.size,n=void 0===t?24:t,i=e.className;return Object(r.createElement)(a.SVG,{className:o()("jetpack-logo",i),width:n,height:n,viewBox:"0 0 32 32"},Object(r.createElement)(a.Path,{className:"jetpack-logo__icon-circle",fill:"#00be28",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))}},function(e,t,n){var r=n(3);e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){r(e,t,n[t])}))}return e}},function(e,t){!function(){e.exports=this.wp.hooks}()},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-star",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.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"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(14),o=n(13),c=n(6);n(144);t.a=Object(i.compose)([Object(o.withDispatch)((function(e,t){var n=t.blockName,r=t.href,a=t.onClick;return{autosaveAndRedirect:function(t){return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return t.preventDefault(),a(n),i.next=4,regeneratorRuntime.awrap(e("core/editor").autosave());case 4:window.top.location.href=r;case 5:case"end":return i.stop()}}))}}}))])((function(e){var t=e.autosaveAndRedirect,n=e.buttonLabel,i=e.href,o=e.icon,s=e.subtitle,l=e.title;return Object(r.createElement)(c.Warning,{actions:i&&[Object(r.createElement)(a.Button,{href:i,onClick:t,target:"_top",isDefault:!0},n)],className:"jetpack-block-nudge"},Object(r.createElement)("span",{className:"jetpack-block-nudge__info"},o,Object(r.createElement)("span",{className:"jetpack-block-nudge__text-container"},Object(r.createElement)("span",{className:"jetpack-block-nudge__title"},l),Object(r.createElement)("span",{className:"jetpack-block-nudge__message"},s))))}))},function(e,t){!function(){e.exports=this.wp.date}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(15),a=n.n(r),i=n(0),o=n(12),c=n.n(o),s=n(5),l=n(16),u=n(6),p=n(13),d=n(26),h=function(e){var t=e.attributes,n=e.styleOption,r=e.viewportWidth,o=e.blockName,c=Object(l.getBlockType)(o);return Object(i.createElement)("div",{className:"block-editor-block-styles__item-preview"},Object(i.createElement)(u.BlockPreview,{viewportWidth:r,blocks:c.example?Object(l.getBlockFromExample)(o,{attributes:a()({},c.example.attributes,{style:n.value}),innerBlocks:c.example.innerBlocks}):Object(l.createBlock)(c,t)}))},m=i.memo?Object(i.memo)(h,(function(e,t){return Object(s.isEqual)(e,t)})):h;function f(e){var t,n=e.attributes,r=e.clientId,o=e.styleOptions,s=e.onSelectStyle,l=e.activeStyle,u=e.viewportWidth;return p.useSelect&&(t=Object(p.useSelect)((function(e){return(0,e("core/block-editor").getBlock)(r)}))),Object(i.createElement)("div",{className:"block-editor-block-styles"},o.map((function(e){var r=a()({},n,{style:e.value});return Object(i.createElement)("div",{key:e.value,className:c()("block-editor-block-styles__item",{"is-active":e.value===l}),onClick:function(){s({style:e.value})},onKeyDown:function(t){d.ENTER!==t.keyCode&&d.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},p.useSelect&&t&&Object(i.createElement)(m,{blockName:t.name,styleOption:e,attributes:r,viewportWidth:u}),Object(i.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(1),i=n(2),o=n(47),c=n(44),s=Object(i.createSlotFill)("JetpackLikesAndSharingPanel"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-likes-and-sharing-panel",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(c.a,null,Object(r.createElement)(i.PanelBody,{title:Object(a.__)("Likes and Sharing","jetpack")},e)):null}))}})},function(e,t,n){"use strict";var r=n(233);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=a.default.parse(e,!0,!0),r="https:"===n.protocol;delete n.protocol,delete n.auth,delete n.port;var l={slashes:!0,protocol:"https:",query:{}};if(f=n.host,/^i[0-2]\.wp\.com$/.test(f))l.pathname=n.pathname,l.hostname=n.hostname;else{if(n.search)return null;var u=a.default.format(n);l.pathname=0===u.indexOf("//")?u.substring(1):u,l.hostname=(p=l.pathname,d=(0,i.default)(p),h=(0,o.default)(d),m="i"+Math.floor(3*h()),c('determined server "%s" to use with "%s"',m,p),m+".wp.com"),r&&(l.query.ssl=1)}var p,d,h,m;var f;if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?l.query[s[b]||b]=t[b]:l.protocol="http:":l.hostname=t[b];var g=a.default.format(l);return c("generated Photon URL: %s",g),g};var a=r(n(29)),i=r(n(234)),o=r(n(235)),c=(0,r(n(236)).default)("photon"),s={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return s}));var r=n(18),a=n.n(r),i=n(22);function o(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function c(e,t){!function(e,t,n){var r=a()(t,2),c=r[0],s=r[1],h=1/c*(n-i.b*(e.childElementCount-1)-s);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=l(e),c=a.map((function(e){return(n-i.b*(e.childElementCount-1))*p(e)[0]})),s=o(c,r);a.forEach((function(e,t){var r=c[t],a=s[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=o(u(e).map((function(e){return a/d(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-i.b*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:h,rowWidth:n-i.b*(e.childElementCount-1)})}(e,function(e){return l(e).map(p).reduce((function(e,t){var n=a()(e,2),r=n[0],i=n[1],o=a()(t,2);return[r+o[0],i+o[1]]}),[0,0])}(e),t)}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function u(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function p(e){var t=u(e),n=t.length,r=1/t.map(d).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function d(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},function(e,t,n){!function(n,r){var a=Array.prototype,i=Object.prototype,o=a.slice,c=i.hasOwnProperty,s=a.forEach,l={},u={forEach:function(e,t,n){var r,a,i;if(null!==e)if(s&&e.forEach===s)e.forEach(t,n);else if(e.length===+e.length){for(r=0,a=e.length;r<a;r++)if(r in e&&t.call(n,e[r],r,e)===l)return}else for(i in e)if(c.call(e,i)&&t.call(n,e[i],i,e)===l)return},extend:function(e){return this.forEach(o.call(arguments,1),(function(t){for(var n in t)e[n]=t[n]})),e}},p=function(e){if(this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages",debug:!1},this.options=u.extend({},this.defaults,e),this.textdomain(this.options.domain),e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};function d(e){return p.PF.compile(e||"nplurals=2; plural=(n != 1);")}function h(e,t){this._key=e,this._i18n=t}p.context_delimiter=String.fromCharCode(4),u.extend(h.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return"[object Array]"!={}.toString.call(e)&&(e=[].slice.call(arguments,0)),(e&&e.length?p.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),u.extend(p.prototype,{translate:function(e){return new h(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,void 0,void 0,e)},dgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},dcgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},ngettext:function(e,t,n){return this.dcnpgettext.call(this,void 0,void 0,e,t,n)},dngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},dcngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},pgettext:function(e,t){return this.dcnpgettext.call(this,void 0,e,t)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,t,n,r){return this.dcnpgettext.call(this,void 0,e,t,n,r)},dnpgettext:function(e,t,n,r,a){return this.dcnpgettext.call(this,e,t,n,r,a)},dcnpgettext:function(e,t,n,r,a){var i;if(r=r||n,e=e||this._textdomain,!this.options)return(i=new p).dcnpgettext.call(i,void 0,void 0,n,r,a);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");var o,c,s,l=t?t+p.context_delimiter+n:n,u=this.options.locale_data,h=u[e],m=(u.messages||this.defaults.locale_data.messages)[""],f=h[""].plural_forms||h[""]["Plural-Forms"]||h[""]["plural-forms"]||m.plural_forms||m["Plural-Forms"]||m["plural-forms"];if(void 0===a)s=0;else{if("number"!=typeof a&&(a=parseInt(a,10),isNaN(a)))throw new Error("The number that was passed in is not a number.");s=d(f)(a)}if(!h)throw new Error("No domain named `"+e+"` could be found.");return!(o=h[l])||s>o.length?(this.options.missing_key_callback&&this.options.missing_key_callback(l,e),c=[n,r],!0===this.options.debug&&console.log(c[d(f)(a)]),c[d()(a)]):(c=o[s])||(c=[n,r])[d()(a)]}});var m,f,b=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var a,i,o,c,s,l,u,p=1,d=n.length,h="",m=[];for(i=0;i<d;i++)if("string"===(h=e(n[i])))m.push(n[i]);else if("array"===h){if((c=n[i])[2])for(a=r[p],o=0;o<c[2].length;o++){if(!a.hasOwnProperty(c[2][o]))throw b('[sprintf] property "%s" does not exist',c[2][o]);a=a[c[2][o]]}else a=c[1]?r[c[1]]:r[p++];if(/[^s]/.test(c[8])&&"number"!=e(a))throw b("[sprintf] expecting number but found %s",e(a));switch(null==a&&(a=""),c[8]){case"b":a=a.toString(2);break;case"c":a=String.fromCharCode(a);break;case"d":a=parseInt(a,10);break;case"e":a=c[7]?a.toExponential(c[7]):a.toExponential();break;case"f":a=c[7]?parseFloat(a).toFixed(c[7]):parseFloat(a);break;case"o":a=a.toString(8);break;case"s":a=(a=String(a))&&c[7]?a.substring(0,c[7]):a;break;case"u":a=Math.abs(a);break;case"x":a=a.toString(16);break;case"X":a=a.toString(16).toUpperCase()}a=/[def]/.test(c[8])&&c[3]&&a>=0?"+"+a:a,l=c[4]?"0"==c[4]?"0":c[4].charAt(1):" ",u=c[6]-String(a).length,s=c[6]?t(l,u):"",m.push(c[5]?a+s:s+a)}return m.join("")},n.cache={},n.parse=function(e){for(var t=e,n=[],r=[],a=0;t;){if(null!==(n=/^[^\x25]+/.exec(t)))r.push(n[0]);else if(null!==(n=/^\x25{2}/.exec(t)))r.push("%");else{if(null===(n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t)))throw"[sprintf] huh?";if(n[2]){a|=1;var i=[],o=n[2],c=[];if(null===(c=/^([a-z_][a-z_\d]*)/i.exec(o)))throw"[sprintf] huh?";for(i.push(c[1]);""!==(o=o.substring(c[0].length));)if(null!==(c=/^\.([a-z_][a-z_\d]*)/i.exec(o)))i.push(c[1]);else{if(null===(c=/^\[(\d+)\]/.exec(o)))throw"[sprintf] huh?";i.push(c[1])}n[2]=i}else a|=2;if(3===a)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),g=function(e,t){return t.unshift(e),b.apply(null,t)};p.parse_plural=function(e,t){return e=e.replace(/n/g,t),p.parse_expression(e)},p.sprintf=function(e,t){return"[object Array]"=={}.toString.call(t)?g(e,[].slice.call(t)):b.apply(this,[].slice.call(arguments))},p.prototype.sprintf=function(){return p.sprintf.apply(this,arguments)},(p.PF={}).parse=function(e){var t=p.PF.extractPluralExpr(e);return p.PF.parser.parse.call(p.PF.parser,t)},p.PF.compile=function(e){var t=p.PF.parse(e);return function(e){return!0===(n=p.PF.interpreter(t)(e))?1:n||0;var n}},p.PF.interpreter=function(e){return function(t){switch(e.type){case"GROUP":return p.PF.interpreter(e.expr)(t);case"TERNARY":return p.PF.interpreter(e.expr)(t)?p.PF.interpreter(e.truthy)(t):p.PF.interpreter(e.falsey)(t);case"OR":return p.PF.interpreter(e.left)(t)||p.PF.interpreter(e.right)(t);case"AND":return p.PF.interpreter(e.left)(t)&&p.PF.interpreter(e.right)(t);case"LT":return p.PF.interpreter(e.left)(t)<p.PF.interpreter(e.right)(t);case"GT":return p.PF.interpreter(e.left)(t)>p.PF.interpreter(e.right)(t);case"LTE":return p.PF.interpreter(e.left)(t)<=p.PF.interpreter(e.right)(t);case"GTE":return p.PF.interpreter(e.left)(t)>=p.PF.interpreter(e.right)(t);case"EQ":return p.PF.interpreter(e.left)(t)==p.PF.interpreter(e.right)(t);case"NEQ":return p.PF.interpreter(e.left)(t)!=p.PF.interpreter(e.right)(t);case"MOD":return p.PF.interpreter(e.left)(t)%p.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},p.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t,n=/nplurals\=(\d+);/,r=e.match(n);if(!(r.length>1))throw new Error("nplurals not found in plural_forms string: "+e);if(r[1],!((t=(e=e.replace(n,"")).match(/plural\=(.*);/))&&t.length>1))throw new Error("`plural` expression not found: "+e);return t[1]},p.PF.parser=(m={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(e,t,n,r,a,i,o){var c=i.length-1;switch(a){case 1:return{type:"GROUP",expr:i[c-1]};case 2:this.$={type:"TERNARY",expr:i[c-4],truthy:i[c-2],falsey:i[c]};break;case 3:this.$={type:"OR",left:i[c-2],right:i[c]};break;case 4:this.$={type:"AND",left:i[c-2],right:i[c]};break;case 5:this.$={type:"LT",left:i[c-2],right:i[c]};break;case 6:this.$={type:"LTE",left:i[c-2],right:i[c]};break;case 7:this.$={type:"GT",left:i[c-2],right:i[c]};break;case 8:this.$={type:"GTE",left:i[c-2],right:i[c]};break;case 9:this.$={type:"NEQ",left:i[c-2],right:i[c]};break;case 10:this.$={type:"EQ",left:i[c-2],right:i[c]};break;case 11:this.$={type:"MOD",left:i[c-2],right:i[c]};break;case 12:this.$={type:"GROUP",expr:i[c-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(e)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(e,t){throw new Error(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],i=this.table,o="",c=0,s=0,l=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;function p(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}a.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var d,h,m,f,b,g,v,j,y,_,k={};;){if(m=n[n.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==d&&(d=p()),f=i[m]&&i[m][d]),void 0===f||!f.length||!f[0]){if(!l){for(g in y=[],i[m])this.terminals_[g]&&g>2&&y.push("'"+this.terminals_[g]+"'");var O="";O=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+y.join(", ")+", got '"+this.terminals_[d]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(O,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:y})}if(3==l){if(1==d)throw new Error(O||"Parsing halted.");s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,d=p()}for(;!(2..toString()in i[m]);){if(0==m)throw new Error(O||"Parsing halted.");_=1,n.length=n.length-2*_,r.length=r.length-_,a.length=a.length-_,m=n[n.length-1]}h=d,d=2,f=i[m=n[n.length-1]]&&i[m][2],l=3}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+d);switch(f[0]){case 1:n.push(d),r.push(this.lexer.yytext),a.push(this.lexer.yylloc),n.push(f[1]),d=null,h?(d=h,h=null):(s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,l>0&&l--);break;case 2:if(v=this.productions_[f[1]][1],k.$=r[r.length-v],k._$={first_line:a[a.length-(v||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(v||1)].first_column,last_column:a[a.length-1].last_column},void 0!==(b=this.performAction.call(k,o,s,c,this.yy,f[1],r,a)))return b;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),a=a.slice(0,-1*v)),n.push(this.productions_[f[1]][0]),r.push(k.$),a.push(k._$),j=i[n[n.length-2]][n[n.length-1]],n.push(j);break;case 3:return!0}}return!0}},f=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;var e,t;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if(e=this._input.match(this.rules[n[r]]))return(t=e[0].match(/\n.*/g))&&(this.yylineno+=t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:t?t[t.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],this.performAction.call(this,this.yy,this,n[r],this.conditionStack[this.conditionStack.length-1])||void 0;if(""===this._input)return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},rules:[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return e}(),m.lexer=f,m),e.exports&&(t=e.exports=p),t.Jed=p}()},function(e,t){var n=1e3,r=6e4,a=36e5,i=24*a;function o(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,t){t=t||{};var c=typeof e;if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\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(!t)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return 6048e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*a;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===c&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return o(e,t,i,"day");if(t>=a)return o(e,t,a,"hour");if(t>=r)return o(e,t,r,"minute");if(t>=n)return o(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=i)return Math.round(e/i)+"d";if(t>=a)return Math.round(e/a)+"h";if(t>=r)return Math.round(e/r)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(s){a=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(a)throw i}}return n}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},function(e,t,n){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},r.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},r.prototype.before=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},r.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},r.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=r},function(e,t,n){"use strict";var r=n(92),a=n(91);function i(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function c(e){return 1===e.length?"0"+e:e}function s(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var o=e.charCodeAt(a);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):i(e,a)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++a)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=c(e[n].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=o(a)),n+=s(a.toString(16))}return n},t.zero2=c,t.zero8=s,t.join32=function(e,t,n,a){var i=n-t;r(i%4==0);for(var o=new Array(i/4),c=0,s=t;c<o.length;c++,s+=4){var l;l="big"===a?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],o[c]=l>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var i=e[r];"big"===t?(n[a]=i>>>24,n[a+1]=i>>>16&255,n[a+2]=i>>>8&255,n[a+3]=255&i):(n[a+3]=i>>>24,n[a+2]=i>>>16&255,n[a+1]=i>>>8&255,n[a]=255&i)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],i=r+e[t+1]>>>0,o=(i<r?1:0)+n+a;e[t]=o>>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,i,o,c){var s=0,l=t;return s+=(l=l+r>>>0)<t?1:0,s+=(l=l+i>>>0)<i?1:0,e+n+a+o+(s+=(l=l+c>>>0)<c?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,i,o,c){return t+r+i+c>>>0},t.sum64_5_hi=function(e,t,n,r,a,i,o,c,s,l){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+i>>>0)<i?1:0,u+=(p=p+c>>>0)<c?1:0,e+n+a+o+s+(u+=(p=p+l>>>0)<l?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,i,o,c,s,l){return t+r+i+c+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){"use strict";var r,a="object"==typeof Reflect?Reflect:null,i=a&&"function"==typeof a.apply?a.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=a&&"function"==typeof a.ownKeys?a.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var s=10;function l(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var a,i,o,c;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]),void 0===o)o=i[t]=n,++e._eventsCount;else if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(a=l(e))>0&&o.length>a&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,c=s,console&&console.warn&&console.warn(c)}return e}function p(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,i(this.listener,this.target,e))}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=p.bind(r);return a.listener=n,r.wrapFn=a,a}function h(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):f(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function f(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return l(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,a=this._events;if(void 0!==a)r=r&&void 0===a.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var c=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw c.context=o,c}var s=a[e];if(void 0===s)return!1;if("function"==typeof s)i(s,this,t);else{var l=s.length,u=f(s,l);for(n=0;n<l;++n)i(u[n],this,t)}return!0},c.prototype.addListener=function(e,t){return u(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return u(this,e,t,!0)},c.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,d(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,d(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,a,i,o;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,a=i;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(a=i[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return h(this,e,!0)},c.prototype.rawListeners=function(e){return h(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},c.prototype.listenerCount=m,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(18),a=n.n(r),i=n(5);n(135);function o(){var e,t,r,o,c,s,l,u=arguments;return regeneratorRuntime.async((function(p){for(;;)switch(p.prev=p.next){case 0:return e=u.length>0&&void 0!==u[0]?u[0]:".swiper-container",t=u.length>1&&void 0!==u[1]?u[1]:{},r=u.length>2&&void 0!==u[2]?u[2]:{},o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,touchStartPreventDefault:!1,on:Object(i.mapValues)(r,(function(e){return function(){e(this)}}))},p.next=6,regeneratorRuntime.awrap(Promise.all([n.e(17).then(n.t.bind(null,266,7)),n.e(17).then(n.t.bind(null,267,7))]));case 6:return c=p.sent,s=a()(c,1),l=s[0].default,p.abrupt("return",new l(e,Object(i.merge)({},o,t)));case 10:case"end":return p.stop()}}))}},function(e,t){!function(){e.exports=this.wp.escapeHtml}()},,function(e,t,n){"use strict";var r=n(18),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(1),_=n(5),k=n(2),O=(n(131),function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"handleClick",(function(){(0,n.props.onClick)(m()(n))})),v()(m()(n),"getPoint",(function(){var e=n.props.point;return[e.coordinates.longitude,e.coordinates.latitude]})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){this.renderMarker()}},{key:"componentWillUnmount",value:function(){this.marker&&this.marker.remove()}},{key:"componentDidUpdate",value:function(){this.renderMarker()}},{key:"renderMarker",value:function(){var e=this.props,t=e.map,n=e.point,r=e.mapboxgl,a=e.markerColor,i=this.handleClick,o=[n.coordinates.longitude,n.coordinates.latitude],c=this.marker?this.marker.getElement():document.createElement("div");this.marker?this.marker.setLngLat(o):(c.className="wp-block-jetpack-map-marker",this.marker=new r.Marker(c).setLngLat(o).setOffset([0,-19]).addTo(t),this.marker.getElement().addEventListener("click",i)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+a+'" mask="url(#c)"/></g></svg>'}},{key:"render",value:function(){return null}}]),t}(j.Component));O.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:function(){}};var w=O,E=function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"closeClick",(function(){n.props.unsetActiveMarker()})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this.props.mapboxgl;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}},{key:"componentDidUpdate",value:function(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}},{key:"render",value:function(){return this.el?Object(j.createPortal)(this.props.children,this.el):null}},{key:"openWindow",value:function(){var e=this.props,t=e.map,n=e.activeMarker;this.infowindow.setLngLat(n.getPoint()).addTo(t)}},{key:"closeWindow",value:function(){this.infowindow.remove()}}]),t}(j.Component);E.defaultProps={unsetActiveMarker:function(){},activeMarker:null,map:null,mapboxgl:null};var C=E;var x=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onMarkerClick",(function(t){var n=e.props.onMarkerClick;e.setState({activeMarker:t}),n()})),v()(m()(e),"onMapClick",(function(){e.setState({activeMarker:null})})),v()(m()(e),"clearCurrentMarker",(function(){e.setState({activeMarker:null})})),v()(m()(e),"updateActiveMarker",(function(t){var n=e.props.points,r=e.state.activeMarker.props.index,a=n.slice(0);Object(_.assign)(a[r],t),e.props.onSetPoints(a)})),v()(m()(e),"deleteActiveMarker",(function(){var t=e.props.points,n=e.state.activeMarker.props.index,r=t.slice(0);r.splice(n,1),e.props.onSetPoints(r),e.setState({activeMarker:null})})),v()(m()(e),"sizeMap",(function(){var t=e.state.map,n=e.mapRef.current,r=n.offsetWidth,a=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,i=Math.min(.75*r,a);n.style.height=i+"px",t.resize(),e.setBoundsByMarkers()})),v()(m()(e),"setBoundsByMarkers",(function(){var t=e.props,n=t.admin,r=t.onSetMapCenter,a=t.onSetZoom,i=t.points,o=t.zoom,c=e.state,s=c.map,l=c.activeMarker,u=c.mapboxgl,p=c.zoomControl,d=c.boundsSetProgrammatically;if(s&&(i.length&&n?s.dragPan.disable():s.dragPan.enable(),i.length&&!l)){var h=new u.LngLatBounds;if(i.forEach((function(e){h.extend([e.coordinates.longitude,e.coordinates.latitude])})),r(h.getCenter()),i.length>1){s.fitBounds(h,{padding:{top:40,bottom:40,left:20,right:20}}),e.setState({boundsSetProgrammatically:!0});try{s.removeControl(p)}catch(m){}}else{if(s.setCenter(h.getCenter()),d){s.setZoom(12),a(12)}else s.setZoom(parseInt(o,10));s.addControl(p),e.setState({boundsSetProgrammatically:!1})}}})),v()(m()(e),"scriptsLoaded",(function(){var t=e.props,n=t.mapCenter,r=t.points;e.setState({loaded:!0}),r.length,e.initMap(n)})),v()(m()(e),"googlePoint2Mapbox",(function(e){return e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0}})),e.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},e.mapRef=Object(j.createRef)(),e.debouncedSizeMap=Object(_.debounce)(e.sizeMap,250),e}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.points,r=t.admin,a=t.children,i=t.markerColor,o=this.state,c=o.map,s=o.activeMarker,l=o.mapboxgl,u=this.onMarkerClick,p=this.deleteActiveMarker,d=this.updateActiveMarker,h=Object(_.get)(s,"props.point")||{},m=h.title,f=h.caption,b=j.Children.map(a,(function(e){if("AddPoint"===Object(_.get)(e,"props.tagName"))return e})),g=c&&l&&n.map((function(e,t){return Object(j.createElement)(w,{key:t,point:e,index:t,map:c,mapboxgl:l,markerColor:i,onClick:u})})),v=l&&Object(j.createElement)(C,{activeMarker:s,map:c,mapboxgl:l,unsetActiveMarker:function(){return e.setState({activeMarker:null})}},s&&r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)(k.TextControl,{label:Object(y.__)("Marker Title","jetpack"),value:m,onChange:function(e){return d({title:e})}}),Object(j.createElement)(k.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:Object(y.__)("Marker Caption","jetpack"),value:f,rows:"2",tag:"textarea",onChange:function(e){return d({caption:e})}}),Object(j.createElement)(k.Button,{onClick:p,className:"wp-block-jetpack-map__delete-btn"},Object(j.createElement)(k.Dashicon,{icon:"trash",size:"15"})," ",Object(y.__)("Delete Marker","jetpack"))),s&&!r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)("h3",null,m),Object(j.createElement)("p",null,f)));return Object(j.createElement)(j.Fragment,null,Object(j.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},g),v,b)}},{key:"componentDidMount",value:function(){this.props.apiKey&&this.loadMapLibraries()}},{key:"componentWillUnmount",value:function(){this.debouncedSizeMap.cancel()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.apiKey,r=t.children,a=t.points,i=t.mapStyle,o=t.mapDetails,c=this.state.map;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),i===e.mapStyle&&o===e.mapDetails||c.setStyle(this.getMapStyle())}},{key:"getMapStyle",value:function(){var e=this.props;return function(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}(e.mapStyle,e.mapDetails)}},{key:"getMapType",value:function(){switch(this.props.mapStyle){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";case"black_and_white":default:return"ROADMAP"}}},{key:"loadMapLibraries",value:function(){var e=this,t=this.props.apiKey;Promise.all([n.e(16).then(n.t.bind(null,306,7)),n.e(16).then(n.t.bind(null,307,7))]).then((function(n){var r=a()(n,1)[0].default;r.accessToken=t,e.setState({mapboxgl:r},e.scriptsLoaded)}))}},{key:"initMap",value:function(e){var t=this,n=this.state.mapboxgl,r=this.props,a=r.zoom,i=r.onMapLoaded,o=r.onError,c=r.admin,s=null;try{s=new n.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(a,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(u){return void o("mapbox_error",u.message)}s.on("error",(function(e){o("mapbox_error",e.error.message)}));var l=new n.NavigationControl({showCompass:!1,showZoom:!0});s.on("zoomend",(function(){t.props.onSetZoom(s.getZoom())})),s.on("moveend",(function(){var e=t.props,n=e.onSetMapCenter;e.points.length<1&&n(s.getCenter())})),s.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:s,zoomControl:l},(function(){t.debouncedSizeMap(),s.addControl(l),c||s.addControl(new n.FullscreenControl),t.mapRef.current.addEventListener("alignmentChanged",t.debouncedSizeMap),s.resize(),i(),t.setState({loaded:!0}),window.addEventListener("resize",t.debouncedSizeMap)}))}}]),t}(j.Component);x.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:function(){},onSetMapCenter:function(){},onMapLoaded:function(){},onMarkerClick:function(){},onError:function(){},markerColor:"red",apiKey:null,mapCenter:{}};t.a=x},function(e,t){!function(){e.exports=this.moment}()},function(e,t){!function(){e.exports=this.wp.notices}()},function(e,t){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set}catch(n){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var i=e[r];if("[object Array]"!==Object.prototype.toString.call(i)&&2===i.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(i[0],i[1])}else for(var o in e)e.hasOwnProperty(o)&&this.append(o,e[o])}},i=a.prototype;i.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},i.delete=function(e){delete this._entries[e]},i.get=function(e){return e in this._entries?this._entries[e][0]:null},i.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},i.has=function(e){return e in this._entries},i.set=function(e,t){this._entries[e]=[String(t)]},i.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},i.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},i.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},i.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(i[Symbol.iterator]=i.entries),i.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var i=e.URLSearchParams.prototype;"function"!=typeof i.sort&&(i.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof i._fromString&&Object.defineProperty(i,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,i=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<i.length;n++)r=i[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c%20d","http://a/c%20d"===t.href&&t.searchParams}catch(n){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(p){throw new Error("URL unable to set base "+n+" due to "+p)}}var i=a.createElement("a");if(i.href=t,r&&(a.body.appendChild(i),i.href=i.href),":"===i.protocol||!/:/.test(i.href))throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:i});var o=new e.URLSearchParams(this.search),c=!0,s=!0,l=this;["append","delete","set"].forEach((function(e){var t=o[e];o[e]=function(){t.apply(o,arguments),c&&(s=!1,l.search=o.toString(),s=!0)}})),Object.defineProperty(this,"searchParams",{value:o,enumerable:!0});var u=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==u&&(u=this.search,s&&(c=!1,this.searchParams._fromString(this.search),c=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},function(e,t,n){},function(e,t,n){"use strict";e.exports=n(163)},function(e,t,n){"use strict";e.exports.encode=n(164),e.exports.decode=n(165),e.exports.format=n(166),e.exports.parse=n(167)},function(e,t){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},function(e,t){e.exports=/[\0-\x1F\x7F-\x9F]/},function(e,t){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},function(e,t,n){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",a="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",i=new RegExp("^(?:"+r+"|"+a+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),o=new RegExp("^(?:"+r+"|"+a+")");e.exports.HTML_TAG_RE=i,e.exports.HTML_OPEN_CLOSE_TAG_RE=o},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a,i,o=e.pos,c=e.src.charCodeAt(o);if(t)return!1;if(126!==c)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(c),a<2)return!1;for(a%2&&(e.push("text","",0).content=i,a--),n=0;n<a;n+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:c,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o=[],c=e.delimiters,s=e.delimiters.length;for(t=0;t<s;t++)126===(r=c[t]).marker&&-1!==r.end&&(a=c[r.end],(i=e.tokens[r.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[a.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[a.token-1].type&&"~"===e.tokens[a.token-1].content&&o.push(a.token-1));for(;o.length;){for(n=(t=o.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a=e.pos,i=e.src.charCodeAt(a);if(t)return!1;if(95!==i&&42!==i)return!1;for(r=e.scanDelims(e.pos,42===i),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:r.length,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o,c=e.delimiters;for(t=e.delimiters.length-1;t>=0;t--)95!==(n=c[t]).marker&&42!==n.marker||-1!==n.end&&(r=c[n.end],o=t>0&&c[t-1].end===n.end+1&&c[t-1].token===n.token-1&&c[n.end+1].token===r.token+1&&c[t-1].marker===n.marker,i=String.fromCharCode(n.marker),(a=e.tokens[n.token]).type=o?"strong_open":"em_open",a.tag=o?"strong":"em",a.nesting=1,a.markup=o?i+i:i,a.content="",(a=e.tokens[r.token]).type=o?"strong_close":"em_close",a.tag=o?"strong":"em",a.nesting=-1,a.markup=o?i+i:i,a.content="",o&&(e.tokens[c[t-1].token].content="",e.tokens[c[n.end+1].token].content="",t--))}},function(e,t,n){},function(e,t,n){"use strict";function r(e){return function(){return e}}var a=function(){};a.thatReturns=r,a.thatReturnsFalse=r(!1),a.thatReturnsTrue=r(!0),a.thatReturnsNull=r(null),a.thatReturnsThis=function(){return this},a.thatReturnsArgument=function(e){return e},e.exports=a},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},function(e,t,n){t.log=function(){var e;return"object"==typeof console&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(142)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e){e.exports=JSON.parse('{"production":["business-hours","calendly","contact-form","contact-info","eventbrite","gif","likes","mailchimp","map","markdown","opentable","pinterest","publicize","rating-star","recurring-payments","related-posts","repeat-visitor","sharing","shortlinks","simple-payments","slideshow","subscriptions","tiled-gallery","videopress","wordads"],"beta":["amazon","seo"]}')},function(e,t,n){"use strict";var r=n(147),a=n(148);function i(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),i=t.length>0?t.join("="):void 0;i=void 0===i?null:decodeURIComponent(i),n(decodeURIComponent(a),i,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[i(t,e),"[",r,"]"].join(""):[i(t,e),"[",i(r,e),"]=",i(n,e)].join("")};case"bracket":return function(t,n){return null===n?i(t,e):[i(t,e),"[]=",i(n,e)].join("")};default:return function(t,n){return null===n?i(t,e):[i(t,e),"=",i(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return i(r,t);if(Array.isArray(a)){var o=[];return a.slice().forEach((function(e){void 0!==e&&o.push(n(r,e,o.length))})),o.join("&")}return i(r,t)+"="+i(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-notice-outline",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){e.exports=n.p+"images/eventbrite-in-page-example-e7ade5e253cebf23789d136227b66aa4.png"},function(e,t,n){e.exports=n.p+"images/eventbrite-modal-example-38b56f85505164d217370e285a7207a9.png"},function(e,t,n){e.exports=n.p+"images/map-preview-1744c8f7587de6d8857dbbe7d7cf5cb8.jpg"},function(e,t,n){"use strict";e.exports=n(162)},function(e,t,n){"use strict";e.exports=function(e){var t,n={};return function e(t,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)e(t,n[r]);else for(r in n)t[r]=(t[r]||[]).concat(n[r])}(n,e),(t=function(e){return function(t){return function(r){var a,i,o=n[r.type],c=t(r);if(o)for(a=0;a<o.length;a++)(i=o[a](r,e))&&e.dispatch(i);return c}}}).effects=n,t}},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(219)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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},a=c(n(34)),i=c(n(220)),o=c(n(223));function c(e){return e&&e.__esModule?e:{default:e}}var s=void 0;function l(e,t){var n,o,c,u,p,d,h,m,f=[],b={};for(d=0;d<e.length;d++)if("string"!==(p=e[d]).type){if(!t.hasOwnProperty(p.value)||void 0===t[p.value])throw new Error("Invalid interpolation, missing component node: `"+p.value+"`");if("object"!==r(t[p.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+p.value+"`","\n> "+s);if("componentClose"===p.type)throw new Error("Missing opening component token: `"+p.value+"`");if("componentOpen"===p.type){n=t[p.value],c=d;break}f.push(t[p.value])}else f.push(p.value);return n&&(u=function(e,t){var n,r,a=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===a.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+a.value+"`")}(c,e),h=l(e.slice(c+1,u),t),o=a.default.cloneElement(n,{},h),f.push(o),u<e.length-1&&(m=l(e.slice(u+1),t),f=f.concat(m))),1===f.length?f[0]:(f.forEach((function(e,t){e&&(b["interpolation-child-"+t]=e)})),(0,i.default)(b))}t.default=function(e){var t=e.mixedString,n=e.components,a=e.throwErrors;if(s=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,o.default)(t);try{return l(i,n)}catch(c){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+c.message+"`");return t}}},function(e,t,n){var r=n(72),a=n(91);function i(e){if(!(this instanceof i))return new i(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=i,a(i,r.EventEmitter),Object.defineProperty(i.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),i.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},i.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},i.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},i.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},i.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},i.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},i.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},i.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},function(e,t,n){"use strict";var r=n(71),a=n(224),i=n(225),o=r.rotl32,c=r.sum32,s=r.sum32_5,l=i.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],i=this.h[1],u=this.h[2],d=this.h[3],h=this.h[4];for(r=0;r<n.length;r++){var m=~~(r/20),f=s(o(a,5),l(m,i,u,d),h,n[r],p[m]);h=d,d=u,u=o(i,30),i=a,a=f}this.h[0]=c(this.h[0],a),this.h[1]=c(this.h[1],i),this.h[2]=c(this.h[2],u),this.h[3]=c(this.h[3],d),this.h[4]=c(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){e.exports=n.p+"images/paypal-button-1e53882e702881f8dfd958c141e65383.png"},function(e,t,n){e.exports=n.p+"images/paypal-button-2x-fe4d34770a47484f401cecbb892f8456.png"},function(e,t,n){e.exports=n.p+"images/simple-payments_example-1-f3666e40d28c564ecf04f814e9a9f236.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-1-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-2-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-3-75cfaba94fc18a9c4b2bc164bd070c08.jpg"},function(e,t){!function(){e.exports=this.wp.tokenList}()},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-1-e124e79c7cd0291640efe8f28aa9a6cd.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-2-ee687d7366c359324b23a9681fb2cf92.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-3-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-4-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-5-3fafa6df43363f274a371ed90dbce254.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-6-797246061ba8a7039b660584e9dc8946.jpg"},function(e,t,n){e.exports=n.p+"images/example_300x250-212e56e8c2ac91bdcbbd742cd7591e17.png"},function(e,t,n){e.exports=n.p+"images/example_728x90-a5e5ae2b8f307e343aea049530c1742d.png"},function(e,t,n){e.exports=n.p+"images/example_320x50-a1b9b09ff673b75f41d0b32162387f89.png"},function(e,t,n){e.exports=n.p+"images/example_160x600-a12cea65e6d4ce4b6f41d8c4f3184ded.png"},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){},function(e,t){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})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){(function(e){var r;!function(a){t&&t.nodeType,e&&e.nodeType;var i="object"==typeof window&&window;i.global!==i&&i.window!==i&&i.self;var o,c=2147483647,s=/^xn--/,l=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,h=String.fromCharCode;function m(e){throw RangeError(p[e])}function f(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+f((e=e.replace(u,".")).split("."),t).join(".")}function g(e){for(var t,n,r=[],a=0,i=e.length;a<i;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<i?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function v(e){return f(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function y(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=36)e=d(e/35);return d(r+36*e/(e+38))}function _(e){var t,n,r,a,i,o,s,l,u,p,h,f=[],b=e.length,g=0,j=128,_=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&m("not-basic"),f.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(i=g,o=1,s=36;a>=b&&m("invalid-input"),((l=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||l>d((c-g)/o))&&m("overflow"),g+=l*o,!(l<(u=s<=_?1:s>=_+26?26:s-_));s+=36)o>d(c/(p=36-u))&&m("overflow"),o*=p;_=y(g-i,t=f.length+1,0==i),d(g/t)>c-j&&m("overflow"),j+=d(g/t),g%=t,f.splice(g++,0,j)}return v(f)}function k(e){var t,n,r,a,i,o,s,l,u,p,f,b,v,_,k,O=[];for(b=(e=g(e)).length,t=128,n=0,i=72,o=0;o<b;++o)(f=e[o])<128&&O.push(h(f));for(r=a=O.length,a&&O.push("-");r<b;){for(s=c,o=0;o<b;++o)(f=e[o])>=t&&f<s&&(s=f);for(s-t>d((c-n)/(v=r+1))&&m("overflow"),n+=(s-t)*v,t=s,o=0;o<b;++o)if((f=e[o])<t&&++n>c&&m("overflow"),f==t){for(l=n,u=36;!(l<(p=u<=i?1:u>=i+26?26:u-i));u+=36)k=l-p,_=36-p,O.push(h(j(p+k%_,0))),l=d(k/_);O.push(h(j(l,0))),i=y(n,v,r==a),n=0,++r}++n,++t}return O.join("")}o={version:"1.3.2",ucs2:{decode:g,encode:v},decode:_,encode:k,toASCII:function(e){return b(e,(function(e){return l.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return b(e,(function(e){return s.test(e)?_(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()}).call(this,n(137)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(140),t.encode=t.stringify=n(141)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,a){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;var o=/\+/g;e=e.split(t);var c=1e3;a&&"number"==typeof a.maxKeys&&(c=a.maxKeys);var s=e.length;c>0&&s>c&&(s=c);for(var l=0;l<s;++l){var u,p,d,h,m=e[l].replace(o,"%20"),f=m.indexOf(n);f>=0?(u=m.substr(0,f),p=m.substr(f+1)):(u=m,p=""),d=decodeURIComponent(u),h=decodeURIComponent(p),r(i,d)?Array.isArray(i[d])?i[d].push(h):i[d]=[i[d],h]:i[d]=h}return i}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,a){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var i=encodeURIComponent(r(a))+n;return Array.isArray(e[a])?e[a].map((function(e){return i+encodeURIComponent(r(e))})).join(t):i+encodeURIComponent(r(e[a]))})).join(t):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(e)):""}},function(e,t,n){var r=n(21);e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return a.colors[Math.abs(t)%a.colors.length]}function a(e){var n;function r(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if(r.enabled){var o=r,c=Number(new Date),s=c-(n||c);o.diff=s,o.prev=n,o.curr=c,n=c,t[0]=a.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var r=a.formatters[n];if("function"==typeof r){var i=t[l];e=r.call(o,i),t.splice(l,1),l--}return e})),a.formatArgs.call(o,t);var u=o.log||a.log;u.apply(o,t)}}return r.namespace=e,r.enabled=a.enabled(e),r.useColors=a.useColors(),r.color=t(e),r.destroy=i,r.extend=o,"function"==typeof a.init&&a.init(r),a.instances.push(r),r}function i(){var e=a.instances.indexOf(this);return-1!==e&&(a.instances.splice(e,1),!0)}function o(e,t){var n=a(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function c(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},a.disable=function(){var e=[].concat(r(a.names.map(c)),r(a.skips.map(c).map((function(e){return"-"+e})))).join(",");return a.enable(""),e},a.enable=function(e){var t;a.save(e),a.names=[],a.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length;for(t=0;t<r;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?a.skips.push(new RegExp("^"+e.substr(1)+"$")):a.names.push(new RegExp("^"+e+"$")));for(t=0;t<a.instances.length;t++){var i=a.instances[t];i.enabled=a.enabled(i.namespace)}},a.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=a.skips.length;t<n;t++)if(a.skips[t].test(e))return!1;for(t=0,n=a.names.length;t<n;t++)if(a.names[t].test(e))return!0;return!1},a.humanize=n(64),Object.keys(e).forEach((function(t){a[t]=e[t]})),a.instances=[],a.names=[],a.skips=[],a.formatters={},a.selectColor=t,a.enable(a.load()),a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,t){for(var n,c,s=o(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))a.call(n,u)&&(s[u]=n[u]);if(r){c=r(n);for(var p=0;p<c.length;p++)i.call(n,c[p])&&(s[c[p]]=n[c[p]])}}return s}},function(e,t,n){},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var r=n(19),a=n(170),i=n(174),o=n(175),c=n(183),s=n(197),l=n(210),u=n(82),p=n(212),d={default:n(213),zero:n(214),commonmark:n(215)},h=/^(vbscript|javascript|file|data):/,m=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!h.test(t)||!!m.test(t)}var b=["http:","https:","mailto:"];function g(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(n){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(n){}return u.decode(u.format(t))}function j(e,t){if(!(this instanceof j))return new j(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new s,this.block=new c,this.core=new o,this.renderer=new i,this.linkify=new l,this.validateLink=f,this.normalizeLink=g,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}j.prototype.set=function(e){return r.assign(this.options,e),this},j.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},j.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},j.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},j.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},j.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},j.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},j.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},j.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=j},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e,t,n){"use strict";var r={};function a(e,t,n){var i,o,c,s,l,u="";for("string"!=typeof t&&(n=t,t=a.defaultChars),void 0===n&&(n=!0),l=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?a.push(n):a.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)a[e.charCodeAt(t)]=e[t];return a}(t),i=0,o=e.length;i<o;i++)if(c=e.charCodeAt(i),n&&37===c&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(c<128)u+=l[c];else if(c>=55296&&c<=57343){if(c>=55296&&c<=56319&&i+1<o&&(s=e.charCodeAt(i+1))>=56320&&s<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}a.defaultChars=";/?:@&=+$,-_.!~*'()#",a.componentChars="-_.!~*'()",e.exports=a},function(e,t,n){"use strict";var r={};function a(e,t){var n;return"string"!=typeof t&&(t=a.defaultChars),n=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),a.push(n);for(t=0;t<e.length;t++)a[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return a}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,a,i,o,c,s,l="";for(t=0,r=e.length;t<r;t+=3)(a=parseInt(e.slice(t+1,t+3),16))<128?l+=n[a]:192==(224&a)&&t+3<r&&128==(192&(i=parseInt(e.slice(t+4,t+6),16)))?(l+=(s=a<<6&1984|63&i)<128?"��":String.fromCharCode(s),t+=3):224==(240&a)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128==(192&i)&&128==(192&o))?(l+=(s=a<<12&61440|i<<6&4032|63&o)<2048||s>=55296&&s<=57343?"���":String.fromCharCode(s),t+=6):240==(248&a)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),c=parseInt(e.slice(t+10,t+12),16),128==(192&i)&&128==(192&o)&&128==(192&c))?((s=a<<18&1835008|i<<12&258048|o<<6&4032|63&c)<65536||s>1114111?l+="����":(s-=65536,l+=String.fromCharCode(55296+(s>>10),56320+(1023&s))),t+=9):l+="�";return l}))}a.defaultChars=";/?:@&=+$,#",a.componentChars="",e.exports=a},function(e,t,n){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var a=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,o=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),s=["'"].concat(c),l=["%","/","?",";","#"].concat(s),u=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var n,r,i,c,s,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var b=o.exec(f);if(b)return this.pathname=b[1],b[2]&&(this.search=b[2]),this}var g=a.exec(f);if(g&&(i=(g=g[0]).toLowerCase(),this.protocol=g,f=f.substr(g.length)),(t||g||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(s="//"===f.substr(0,2))||g&&h[g]||(f=f.substr(2),this.slashes=!0)),!h[g]&&(s||g&&!m[g])){var v,j,y=-1;for(n=0;n<u.length;n++)-1!==(c=f.indexOf(u[n]))&&(-1===y||c<y)&&(y=c);for(-1!==(j=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,j),f=f.slice(j+1),this.auth=v),y=-1,n=0;n<l.length;n++)-1!==(c=f.indexOf(l[n]))&&(-1===y||c<y)&&(y=c);-1===y&&(y=f.length),":"===f[y-1]&&y--;var _=f.slice(0,y);f=f.slice(y),this.parseHost(_),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k){var O=this.hostname.split(/\./);for(n=0,r=O.length;n<r;n++){var w=O[n];if(w&&!w.match(p)){for(var E="",C=0,x=w.length;C<x;C++)w.charCodeAt(C)>127?E+="x":E+=w[C];if(!E.match(p)){var S=O.slice(0,n),A=O.slice(n+1),F=w.match(d);F&&(S.push(F[1]),A.unshift(F[2])),A.length&&(f=A.join(".")+f),this.hostname=S.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var P=f.indexOf("#");-1!==P&&(this.hash=f.substr(P),f=f.slice(0,P));var T=f.indexOf("?");return-1!==T&&(this.search=f.substr(T),f=f.slice(0,T)),f&&(this.pathname=f),m[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=i.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}},function(e,t,n){"use strict";t.Any=n(83),t.Cc=n(84),t.Cf=n(169),t.P=n(68),t.Z=n(85)},function(e,t){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(e,t,n){"use strict";t.parseLinkLabel=n(171),t.parseLinkDestination=n(172),t.parseLinkTitle=n(173)},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c=-1,s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos<s;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)r++;else if(n)return e.pos=l,-1}return a&&(c=e.pos),e.pos=l,c}},function(e,t,n){"use strict";var r=n(19).isSpace,a=n(19).unescapeAll;e.exports=function(e,t,n){var i,o,c=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(i=e.charCodeAt(t))||r(i))return s;if(62===i)return s.pos=t+1,s.str=a(e.slice(c+1,t)),s.ok=!0,s;92===i&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(i=e.charCodeAt(t))&&!(i<32||127===i);)if(92===i&&t+1<n)t+=2;else{if(40===i&&o++,41===i){if(0===o)break;o--}t++}return c===t?s:0!==o?s:(s.str=a(e.slice(c,t)),s.lines=0,s.pos=t,s.ok=!0,s)}},function(e,t,n){"use strict";var r=n(19).unescapeAll;e.exports=function(e,t,n){var a,i,o=0,c=t,s={ok:!1,pos:0,lines:0,str:""};if(t>=n)return s;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return s;for(t++,40===i&&(i=41);t<n;){if((a=e.charCodeAt(t))===i)return s.pos=t+1,s.lines=o,s.str=r(e.slice(c+1,t)),s.ok=!0,s;10===a?o++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return s}},function(e,t,n){"use strict";var r=n(19).assign,a=n(19).unescapeAll,i=n(19).escapeHtml,o={};function c(){this.rules=r({},o)}o.code_inline=function(e,t,n,r,a){var o=e[t];return"<code"+a.renderAttrs(o)+">"+i(e[t].content)+"</code>"},o.code_block=function(e,t,n,r,a){var o=e[t];return"<pre"+a.renderAttrs(o)+"><code>"+i(e[t].content)+"</code></pre>\n"},o.fence=function(e,t,n,r,o){var c,s,l,u,p=e[t],d=p.info?a(p.info).trim():"",h="";return d&&(h=d.split(/\s+/g)[0]),0===(c=n.highlight&&n.highlight(p.content,h)||i(p.content)).indexOf("<pre")?c+"\n":d?(s=p.attrIndex("class"),l=p.attrs?p.attrs.slice():[],s<0?l.push(["class",n.langPrefix+h]):l[s][1]+=" "+n.langPrefix+h,u={attrs:l},"<pre><code"+o.renderAttrs(u)+">"+c+"</code></pre>\n"):"<pre><code"+o.renderAttrs(p)+">"+c+"</code></pre>\n"},o.image=function(e,t,n,r,a){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=a.renderInlineAsText(i.children,n,r),a.renderToken(e,t,n)},o.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},o.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},o.text=function(e,t){return i(e[t].content)},o.html_block=function(e,t){return e[t].content},o.html_inline=function(e,t){return e[t].content},c.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+i(e.attrs[t][0])+'="'+i(e.attrs[t][1])+'"';return r},c.prototype.renderToken=function(e,t,n){var r,a="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===o.nesting?"</":"<")+o.tag,a+=this.renderAttrs(o),0===o.nesting&&n.xhtmlOut&&(a+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden?i=!1:-1===r.nesting&&r.tag===o.tag&&(i=!1))),a+=i?">\n":">")},c.prototype.renderInline=function(e,t,n){for(var r,a="",i=this.rules,o=0,c=e.length;o<c;o++)void 0!==i[r=e[o].type]?a+=i[r](e,o,t,n,this):a+=this.renderToken(e,o,t);return a},c.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,i=e.length;a<i;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},c.prototype.render=function(e,t,n){var r,a,i,o="",c=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(i=e[r].type)?o+=this.renderInline(e[r].children,t,n):void 0!==c[i]?o+=c[e[r].type](e,r,t,n,this):o+=this.renderToken(e,r,t,n);return o},e.exports=c},function(e,t,n){"use strict";var r=n(69),a=[["normalize",n(176)],["block",n(177)],["inline",n(178)],["linkify",n(179)],["replacements",n(180)],["smartquotes",n(181)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}i.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},i.prototype.State=n(182),e.exports=i},function(e,t,n){"use strict";var r=/\r[\n\u0085]?|[\u2424\u2028\u0085]/g,a=/\u0000/g;e.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(a,"�"),e.src=t}},function(e,t,n){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},function(e,t,n){"use strict";var r=n(19).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_=e.tokens;if(e.md.options.linkify)for(n=0,i=_.length;n<i;n++)if("inline"===_[n].type&&e.md.linkify.pretest(_[n].content))for(f=0,t=(o=_[n].children).length-1;t>=0;t--)if("link_close"!==(s=o[t]).type){if("html_inline"===s.type&&(y=s.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(s.content)&&f++),!(f>0)&&"text"===s.type&&e.md.linkify.test(s.content)){for(p=s.content,j=e.md.linkify.match(p),l=[],m=s.level,h=0,u=0;u<j.length;u++)b=j[u].url,g=e.md.normalizeLink(b),e.md.validateLink(g)&&(v=j[u].text,v=j[u].schema?"mailto:"!==j[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=j[u].index)>h&&((c=new e.Token("text","",0)).content=p.slice(h,d),c.level=m,l.push(c)),(c=new e.Token("link_open","a",1)).attrs=[["href",g]],c.level=m++,c.markup="linkify",c.info="auto",l.push(c),(c=new e.Token("text","",0)).content=v,c.level=m,l.push(c),(c=new e.Token("link_close","a",-1)).level=--m,c.markup="linkify",c.info="auto",l.push(c),h=j[u].lastIndex);h<p.length&&((c=new e.Token("text","",0)).content=p.slice(h),c.level=m,l.push(c)),_[n].children=o=r(o,t,l)}}else for(t--;o[t].level!==s.level&&"link_open"!==o[t].type;)t--}},function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,a=/\((c|tm|r|p)\)/i,i=/\((c|tm|r|p)\)/gi,o={c:"©",r:"®",p:"§",tm:"™"};function c(e,t){return o[t.toLowerCase()]}function s(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||r||(n.content=n.content.replace(i,c)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function l(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(a.test(e.tokens[t].content)&&s(e.tokens[t].children),r.test(e.tokens[t].content)&&l(e.tokens[t].children))}},function(e,t,n){"use strict";var r=n(19).isWhiteSpace,a=n(19).isPunctChar,i=n(19).isMdAsciiPunct,o=/['"]/,c=/['"]/g;function s(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function l(e,t){var n,o,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x;for(E=[],n=0;n<e.length;n++){for(o=e[n],h=e[n].level,O=E.length-1;O>=0&&!(E[O].level<=h);O--);if(E.length=O+1,"text"===o.type){p=0,d=(l=o.content).length;e:for(;p<d&&(c.lastIndex=p,u=c.exec(l));){if(_=k=!0,p=u.index+1,w="'"===u[0],f=32,u.index-1>=0)f=l.charCodeAt(u.index-1);else for(O=n-1;O>=0&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O--)if("text"===e[O].type){f=e[O].content.charCodeAt(e[O].content.length-1);break}if(b=32,p<d)b=l.charCodeAt(p);else for(O=n+1;O<e.length&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O++)if("text"===e[O].type){b=e[O].content.charCodeAt(0);break}if(g=i(f)||a(String.fromCharCode(f)),v=i(b)||a(String.fromCharCode(b)),j=r(f),(y=r(b))?_=!1:v&&(j||g||(_=!1)),j?k=!1:g&&(y||v||(k=!1)),34===b&&'"'===u[0]&&f>=48&&f<=57&&(k=_=!1),_&&k&&(_=!1,k=v),_||k){if(k)for(O=E.length-1;O>=0&&(m=E[O],!(E[O].level<h));O--)if(m.single===w&&E[O].level===h){m=E[O],w?(C=t.md.options.quotes[2],x=t.md.options.quotes[3]):(C=t.md.options.quotes[0],x=t.md.options.quotes[1]),o.content=s(o.content,u.index,x),e[m.token].content=s(e[m.token].content,m.pos,C),p+=x.length-1,m.token===n&&(p+=C.length-1),d=(l=o.content).length,E.length=O;continue e}_?E.push({token:n,pos:u.index,single:w,level:h}):k&&w&&(o.content=s(o.content,u.index,"’"))}else w&&(o.content=s(o.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&o.test(e.tokens[t].content)&&l(e.tokens[t].children,e)}},function(e,t,n){"use strict";var r=n(70);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},function(e,t,n){"use strict";var r=n(69),a=[["table",n(184),["paragraph","reference"]],["code",n(185)],["fence",n(186),["paragraph","reference","blockquote","list"]],["blockquote",n(187),["paragraph","reference","blockquote","list"]],["hr",n(188),["paragraph","reference","blockquote","list"]],["list",n(189),["paragraph","reference","blockquote"]],["reference",n(190)],["heading",n(191),["paragraph","reference","blockquote"]],["lheading",n(192)],["html_block",n(193),["paragraph","reference","blockquote"]],["paragraph",n(195)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}i.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),i=a.length,o=t,c=!1,s=e.md.options.maxNesting;o<n&&(e.line=o=e.skipEmptyLines(o),!(o>=n))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=s){e.line=n;break}for(r=0;r<i&&!a[r](e,o,n,!1);r++);e.tight=!c,e.isEmpty(e.line-1)&&(c=!0),(o=e.line)<n&&e.isEmpty(o)&&(c=!0,o++,e.line=o)}},i.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},i.prototype.State=n(196),e.exports=i},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}function i(e){var t,n=[],r=0,a=e.length,i=0,o=0,c=!1,s=0;for(t=e.charCodeAt(r);r<a;)96===t?c?(c=!1,s=r):i%2==0&&(c=!0,s=r):124!==t||i%2!=0||c||(n.push(e.substring(o,r)),o=r+1),92===t?i++:i=0,++r===a&&c&&(c=!1,r=s+1),t=e.charCodeAt(r);return n.push(e.substring(o)),n}e.exports=function(e,t,n,o){var c,s,l,u,p,d,h,m,f,b,g,v;if(t+2>n)return!1;if(p=t+1,e.sCount[p]<e.blkIndent)return!1;if(e.sCount[p]-e.blkIndent>=4)return!1;if((l=e.bMarks[p]+e.tShift[p])>=e.eMarks[p])return!1;if(124!==(c=e.src.charCodeAt(l++))&&45!==c&&58!==c)return!1;for(;l<e.eMarks[p];){if(124!==(c=e.src.charCodeAt(l))&&45!==c&&58!==c&&!r(c))return!1;l++}for(d=(s=a(e,t+1)).split("|"),f=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?f.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(s=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((h=(d=i(s.replace(/^\||\|$/g,""))).length)>f.length)return!1;if(o)return!0;for((m=e.push("table_open","table",1)).map=g=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)(m=e.push("th_open","th",1)).map=[t,t+1],f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.map=[t,t+1],m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),(m=e.push("tbody_open","tbody",1)).map=v=[t+2,0],p=t+2;p<n&&!(e.sCount[p]<e.blkIndent)&&-1!==(s=a(e,p).trim()).indexOf("|")&&!(e.sCount[p]-e.blkIndent>=4);p++){for(d=i(s.replace(/^\||\|$/g,"")),m=e.push("tr_open","tr",1),u=0;u<h;u++)m=e.push("td_open","td",1),f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return m=e.push("tbody_close","tbody",-1),m=e.push("table_close","table",-1),g[1]=v[1]=p,e.line=p,!0}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(i=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),i.map=[t,e.line],!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var a,i,o,c,s,l,u,p=!1,d=e.bMarks[t]+e.tShift[t],h=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>h)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(s=d,(i=(d=e.skipChars(d,a))-s)<3)return!1;if(u=e.src.slice(s,d),(o=e.src.slice(d,h)).indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(c=t;!(++c>=n)&&!((d=s=e.bMarks[c]+e.tShift[c])<(h=e.eMarks[c])&&e.sCount[c]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[c]-e.blkIndent>=4||(d=e.skipChars(d,a))-s<i||(d=e.skipSpaces(d))<h)){p=!0;break}return i=e.sCount[t],e.line=c+(p?1:0),(l=e.push("fence","code",0)).info=o,l.content=e.getLines(t+1,c,i,!0),l.markup=u,l.map=[t,e.line],!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E=e.lineMax,C=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(C++))return!1;if(a)return!0;for(s=h=e.sCount[t]+C-(e.bMarks[t]+e.tShift[t]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[t]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m=[e.bMarks[t]],e.bMarks[t]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[t]+(i?1:0))%4:h++,C++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=C>=x,v=[e.sCount[t]],e.sCount[t]=h-s,j=[e.tShift[t]],e.tShift[t]=C-e.bMarks[t],k=e.md.block.ruler.getRules("blockquote"),g=e.parentType,e.parentType="blockquote",w=!1,d=t+1;d<n&&(e.sCount[d]<e.blkIndent&&(w=!0),!((C=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(C++)||w){if(u)break;for(_=!1,c=0,l=k.length;c<l;c++)if(k[c](e,d,n,!0)){_=!0;break}if(_){e.lineMax=d,0!==e.blkIndent&&(m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(s=h=e.sCount[d]+C-(e.bMarks[d]+e.tShift[d]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[d]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m.push(e.bMarks[d]),e.bMarks[d]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[d]+(i?1:0))%4:h++,C++;u=C>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=h-s,j.push(e.tShift[d]),e.tShift[d]=C-e.bMarks[d]}for(b=e.blkIndent,e.blkIndent=0,(O=e.push("blockquote_open","blockquote",1)).markup=">",O.map=p=[t,0],e.md.block.tokenize(e,t,d),(O=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=E,e.parentType=g,p[1]=e.line,c=0;c<j.length;c++)e.bMarks[c+t]=m[c],e.tShift[c+t]=j[c],e.sCount[c+t]=v[c],e.bsCount[c+t]=f[c];return e.blkIndent=b,!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(l++))&&45!==i&&95!==i)return!1;for(o=1;l<u;){if((c=e.src.charCodeAt(l++))!==i&&!r(c))return!1;c===i&&o++}return!(o<3)&&(!!a||(e.line=t+1,(s=e.push("hr","hr",0)).map=[t,e.line],s.markup=Array(o+1).join(String.fromCharCode(i)),!0))}},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n,a,i,o;return a=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n?-1:a<i&&(o=e.src.charCodeAt(a),!r(o))?-1:a}function i(e,t){var n,a=e.bMarks[t]+e.tShift[t],i=a,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-a>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}e.exports=function(e,t,n,r){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x,S,A,F,P,T,N,M=!1,R=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(M=!0),(S=i(e,t))>=0){if(d=!0,F=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(F,S-F-1)),M&&1!==v)return!1}else{if(!((S=a(e,t))>=0))return!1;d=!1}if(M&&e.skipSpaces(S)>=e.eMarks[t])return!1;if(g=e.src.charCodeAt(S-1),r)return!0;for(b=e.tokens.length,d?(N=e.push("ordered_list_open","ol",1),1!==v&&(N.attrs=[["start",v]])):N=e.push("bullet_list_open","ul",1),N.map=f=[t,0],N.markup=String.fromCharCode(g),y=t,A=!1,T=e.md.block.ruler.getRules("list"),w=e.parentType,e.parentType="list";y<n;){for(x=S,j=e.eMarks[y],p=_=e.sCount[y]+S-(e.bMarks[t]+e.tShift[t]);x<j;){if(9===(o=e.src.charCodeAt(x)))_+=4-(_+e.bsCount[y])%4;else{if(32!==o)break;_++}x++}if((u=(c=x)>=j?1:_-p)>4&&(u=1),l=p+u,(N=e.push("list_item_open","li",1)).markup=String.fromCharCode(g),N.map=h=[t,0],k=e.blkIndent,C=e.tight,E=e.tShift[t],O=e.sCount[t],e.blkIndent=l,e.tight=!0,e.tShift[t]=c-e.bMarks[t],e.sCount[t]=_,c>=j&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!A||(R=!1),A=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=k,e.tShift[t]=E,e.sCount[t]=O,e.tight=C,(N=e.push("list_item_close","li",-1)).markup=String.fromCharCode(g),y=t=e.line,h[1]=y,c=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;for(P=!1,s=0,m=T.length;s<m;s++)if(T[s](e,y,n,!0)){P=!0;break}if(P)break;if(d){if((S=i(e,y))<0)break}else if((S=a(e,y))<0)break;if(g!==e.src.charCodeAt(S-1))break}return(N=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(g),f[1]=y,e.line=y,e.parentType=w,R&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,b),!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t,n,i){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k=0,O=e.bMarks[t]+e.tShift[t],w=e.eMarks[t],E=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(O))return!1;for(;++O<w;)if(93===e.src.charCodeAt(O)&&92!==e.src.charCodeAt(O-1)){if(O+1===w)return!1;if(58!==e.src.charCodeAt(O+1))return!1;break}for(l=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";E<l&&!e.isEmpty(E);E++)if(!(e.sCount[E]-e.blkIndent>3||e.sCount[E]<0)){for(j=!1,p=0,d=y.length;p<d;p++)if(y[p](e,E,l,!0)){j=!0;break}if(j)break}for(w=(v=e.getLines(t,E,e.blkIndent,!1).trim()).length,O=1;O<w;O++){if(91===(o=v.charCodeAt(O)))return!1;if(93===o){m=O;break}10===o?k++:92===o&&++O<w&&10===v.charCodeAt(O)&&k++}if(m<0||58!==v.charCodeAt(m+1))return!1;for(O=m+2;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;if(!(b=e.md.helpers.parseLinkDestination(v,O,w)).ok)return!1;if(u=e.md.normalizeLink(b.str),!e.md.validateLink(u))return!1;for(c=O=b.pos,s=k+=b.lines,g=O;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;for(b=e.md.helpers.parseLinkTitle(v,O,w),O<w&&g!==O&&b.ok?(_=b.str,O=b.pos,k+=b.lines):(_="",O=c,k=s);O<w&&(o=v.charCodeAt(O),a(o));)O++;if(O<w&&10!==v.charCodeAt(O)&&_)for(_="",O=c,k=s;O<w&&(o=v.charCodeAt(O),a(o));)O++;return!(O<w&&10!==v.charCodeAt(O))&&(!!(h=r(v.slice(1,m)))&&(!!i||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[h]&&(e.env.references[h]={title:_,href:u}),e.parentType=f,e.line=t+k+1,!0)))}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(l))||l>=u)return!1;for(o=1,i=e.src.charCodeAt(++l);35===i&&l<u&&o<=6;)o++,i=e.src.charCodeAt(++l);return!(o>6||l<u&&!r(i))&&(!!a||(u=e.skipSpacesBack(u,l),(c=e.skipCharsBack(u,35,l))>l&&r(e.src.charCodeAt(c-1))&&(u=c),e.line=t+1,(s=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),s.map=[t,e.line],(s=e.push("inline","",0)).content=e.src.slice(l,u).trim(),s.map=[t,e.line],s.children=[],(s=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o),!0))}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c,s,l,u,p,d,h=t+1,m=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";h<n&&!e.isEmpty(h);h++)if(!(e.sCount[h]-e.blkIndent>3)){if(e.sCount[h]>=e.blkIndent&&(s=e.bMarks[h]+e.tShift[h])<(l=e.eMarks[h])&&(45===(p=e.src.charCodeAt(s))||61===p)&&(s=e.skipChars(s,p),(s=e.skipSpaces(s))>=l)){u=61===p?1:2;break}if(!(e.sCount[h]<0)){for(a=!1,i=0,o=m.length;i<o;i++)if(m[i](e,h,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,h,e.blkIndent,!1).trim(),e.line=h+1,(c=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),c.map=[t,e.line],(c=e.push("inline","",0)).content=r,c.map=[t,e.line-1],c.children=[],(c=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},function(e,t,n){"use strict";var r=n(194),a=n(86).HTML_OPEN_CLOSE_TAG_RE,i=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(l))return!1;for(s=e.src.slice(l,u),a=0;a<i.length&&!i[a][0].test(s);a++);if(a===i.length)return!1;if(r)return i[a][2];if(o=t+1,!i[a][1].test(s))for(;o<n&&!(e.sCount[o]<e.blkIndent);o++)if(l=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],s=e.src.slice(l,u),i[a][1].test(s)){0!==s.length&&o++;break}return e.line=o,(c=e.push("html_block","",0)).map=[t,o],c.content=e.getLines(t,o,e.blkIndent,!0),!0}},function(e,t,n){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=t+1,l=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(c=e.parentType,e.parentType="paragraph";s<u&&!e.isEmpty(s);s++)if(!(e.sCount[s]-e.blkIndent>3||e.sCount[s]<0)){for(r=!1,a=0,i=l.length;a<i;a++)if(l[a](e,s,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,s,e.blkIndent,!1).trim(),e.line=s,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=n,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=c,!0}},function(e,t,n){"use strict";var r=n(70),a=n(19).isSpace;function i(e,t,n,r){var i,o,c,s,l,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,c=s=u=p=0,l=(o=this.src).length;s<l;s++){if(i=o.charCodeAt(s),!d){if(a(i)){u++,9===i?p+=4-p%4:p++;continue}d=!0}10!==i&&s!==l-1||(10!==i&&s++,this.bMarks.push(c),this.eMarks.push(s),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,c=s+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}i.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},i.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},i.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},i.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},i.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},i.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},i.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},i.prototype.getLines=function(e,t,n,r){var i,o,c,s,l,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),i=0;d<t;d++,i++){for(o=0,p=s=this.bMarks[d],l=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];s<l&&o<n;){if(c=this.src.charCodeAt(s),a(c))9===c?o+=4-(o+this.bsCount[d])%4:o++;else{if(!(s-p<this.tShift[d]))break;o++}s++}u[i]=o>n?new Array(o-n+1).join(" ")+this.src.slice(s,l):this.src.slice(s,l)}return u.join("")},i.prototype.Token=r,e.exports=i},function(e,t,n){"use strict";var r=n(69),a=[["text",n(198)],["newline",n(199)],["escape",n(200)],["backticks",n(201)],["strikethrough",n(87).tokenize],["emphasis",n(88).tokenize],["link",n(202)],["image",n(203)],["autolink",n(204)],["html_inline",n(205)],["entity",n(206)]],i=[["balance_pairs",n(207)],["strikethrough",n(87).postProcess],["emphasis",n(88).postProcess],["text_collapse",n(208)]];function o(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<i.length;e++)this.ruler2.push(i[e][0],i[e][1])}o.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),i=a.length,o=e.md.options.maxNesting,c=e.cache;if(void 0===c[r]){if(e.level<o)for(n=0;n<i&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,c[r]=e.pos}else e.pos=c[r]},o.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},o.prototype.parse=function(e,t,n,r){var a,i,o,c=new this.State(e,t,n,r);for(this.tokenize(c),o=(i=this.ruler2.getRules("")).length,a=0;a<o;a++)i[a](c)},o.prototype.State=n(209),e.exports=o},function(e,t,n){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t){var n,a,i=e.pos;if(10!==e.src.charCodeAt(i))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),i++;i<a&&r(e.src.charCodeAt(i));)i++;return e.pos=i,!0}},function(e,t,n){"use strict";for(var r=n(19).isSpace,a=[],i=0;i<256;i++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((n=e.src.charCodeAt(i))<256&&0!==a[n])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),i++;i<o&&(n=e.src.charCodeAt(i),r(n));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=e.pos;if(96!==e.src.charCodeAt(s))return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(a=e.src.slice(n,s),i=o=s;-1!==(i=e.src.indexOf("`",o));){for(o=i+1;o<r&&96===e.src.charCodeAt(o);)o++;if(o-i===a.length)return t||((c=e.push("code_inline","code",0)).markup=a,c.content=e.src.slice(s,i).replace(/[ \n]+/g," ").trim()),e.pos=o,!0}return t||(e.pending+=a),e.pos+=a.length,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h="",m=e.pos,f=e.posMax,b=e.pos,g=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(s=e.pos+1,(c=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((l=c+1)<f&&40===e.src.charCodeAt(l)){for(g=!1,l++;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(l>=f)return!1;for(b=l,(u=e.md.helpers.parseLinkDestination(e.src,l,e.posMax)).ok&&(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?l=u.pos:h=""),b=l;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(u=e.md.helpers.parseLinkTitle(e.src,l,e.posMax),l<f&&b!==l&&u.ok)for(d=u.str,l=u.pos;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);else d="";(l>=f||41!==e.src.charCodeAt(l))&&(g=!0),l++}if(g){if(void 0===e.env.references)return!1;if(l<f&&91===e.src.charCodeAt(l)?(b=l+1,(l=e.md.helpers.parseLinkLabel(e,l))>=0?o=e.src.slice(b,l++):l=c+1):l=c+1,o||(o=e.src.slice(s,c)),!(p=e.env.references[r(o)]))return e.pos=m,!1;h=p.href,d=p.title}return t||(e.pos=s,e.posMax=c,e.push("link_open","a",1).attrs=n=[["href",h]],d&&n.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=l,e.posMax=f,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h,m,f,b,g="",v=e.pos,j=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(l=e.pos+2,(s=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=s+1)<j&&40===e.src.charCodeAt(u)){for(u++;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(u>=j)return!1;for(b=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(g=e.md.normalizeLink(d.str),e.md.validateLink(g)?u=d.pos:g=""),b=u;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<j&&b!==u&&d.ok)for(h=d.str,u=d.pos;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);else h="";if(u>=j||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<j&&91===e.src.charCodeAt(u)?(b=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?c=e.src.slice(b,u++):u=s+1):u=s+1,c||(c=e.src.slice(l,s)),!(p=e.env.references[r(c)]))return e.pos=v,!1;g=p.href,h=p.title}return t||(o=e.src.slice(l,s),e.md.inline.parse(o,e.md,e.env,f=[]),(m=e.push("image","img",0)).attrs=n=[["src",g],["alt",""]],m.children=f,m.content=o,h&&n.push(["title",h])),e.pos=u,e.posMax=j,!0}},function(e,t,n){"use strict";var r=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,i,o,c,s,l,u=e.pos;return 60===e.src.charCodeAt(u)&&(!((n=e.src.slice(u)).indexOf(">")<0)&&(a.test(n)?(c=(i=n.match(a))[0].slice(1,-1),s=e.md.normalizeLink(c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=i[0].length,!0)):!!r.test(n)&&(c=(o=n.match(r))[0].slice(1,-1),s=e.md.normalizeLink("mailto:"+c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=o[0].length,!0))))}},function(e,t,n){"use strict";var r=n(86).HTML_TAG_RE;e.exports=function(e,t){var n,a,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+a[0].length)),e.pos+=a[0].length,!0))))}},function(e,t,n){"use strict";var r=n(81),a=n(19).has,i=n(19).isValidEntityCode,o=n(19).fromCodePoint,c=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,s=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,l,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(l=e.src.slice(u).match(c))return t||(n="x"===l[1][0].toLowerCase()?parseInt(l[1].slice(1),16):parseInt(l[1],10),e.pending+=i(n)?o(n):o(65533)),e.pos+=l[0].length,!0}else if((l=e.src.slice(u).match(s))&&a(r,l[1]))return t||(e.pending+=r[l[1]]),e.pos+=l[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a,i=e.delimiters,o=e.delimiters.length;for(t=0;t<o;t++)if((r=i[t]).close)for(n=t-r.jump-1;n>=0;){if((a=i[n]).open&&a.marker===r.marker&&a.end<0&&a.level===r.level)if(!((a.close||r.open)&&void 0!==a.length&&void 0!==r.length&&(a.length+r.length)%3==0)){r.jump=t-n,r.open=!1,a.end=t,a.jump=0;break}n-=a.jump+1}}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,i=e.tokens.length;for(t=n=0;t<i;t++)r+=a[t].nesting,a[t].level=r,"text"===a[t].type&&t+1<i&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},function(e,t,n){"use strict";var r=n(70),a=n(19).isWhiteSpace,i=n(19).isPunctChar,o=n(19).isMdAsciiPunct;function c(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[]}c.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},c.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n);return n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.pendingLevel=this.level,this.tokens.push(a),a},c.prototype.scanDelims=function(e,t){var n,r,c,s,l,u,p,d,h,m=e,f=!0,b=!0,g=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;m<g&&this.src.charCodeAt(m)===v;)m++;return c=m-e,r=m<g?this.src.charCodeAt(m):32,p=o(n)||i(String.fromCharCode(n)),h=o(r)||i(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:h&&(u||p||(f=!1)),u?b=!1:p&&(d||h||(b=!1)),t?(s=f,l=b):(s=f&&(!b||p),l=b&&(!f||h)),{can_open:s,can_close:l,length:c}},c.prototype.Token=r,e.exports=c},function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function i(e){return"[object Function]"===a(e)}function o(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var c={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var s={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]?0:t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},l="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(211)(e.__opts__),r=e.__tlds__.slice();function c(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(c(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(c(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(c(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(c(t.tpl_host_fuzzy_test),"i");var s=[];function l(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?i(n.validate)?r.validate=n.validate:l(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(i(n.normalize)?r.normalize=n.normalize:n.normalize?l(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?l(t,n):s.push(t)}})),s.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(o).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function h(e,t){if(!(this instanceof h))return new h(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||c.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},c,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},s,e),this.__compiled__={},this.__tlds__=l,this.__tlds_replaced__=!1,this.re={},u(this)}h.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},h.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},h.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,i,o,c,s;if(this.re.schema_test.test(e))for((c=this.re.schema_search).lastIndex=0;null!==(t=c.exec(e));)if(a=this.testSchemaAt(e,t[2],c.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(s=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||s<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=n.index+n[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(i=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},h.prototype.pretest=function(e){return this.re.pretest.test(e)},h.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},h.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},h.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},h.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},h.prototype.onCompile=function(){},e.exports=h},function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(83).source,t.src_Cc=n(84).source,t.src_Z=n(85).source,t.src_P=n(68).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},function(e,t,n){"use strict";n.r(t),n.d(t,"ucs2decode",(function(){return m})),n.d(t,"ucs2encode",(function(){return f})),n.d(t,"decode",(function(){return v})),n.d(t,"encode",(function(){return j})),n.d(t,"toASCII",(function(){return _})),n.d(t,"toUnicode",(function(){return y}));var r=n(21),a=n.n(r),i=2147483647,o=/^xn--/,c=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},u=Math.floor,p=String.fromCharCode;function d(e){throw new RangeError(l[e])}function h(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]);var a=function(e,t){for(var n=[],r=e.length;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var i=e.charCodeAt(n++);56320==(64512&i)?t.push(((1023&a)<<10)+(1023&i)+65536):(t.push(a),n--)}else t.push(a)}return t}var f=function(e){return String.fromCodePoint.apply(String,a()(e))},b=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){var r=0;for(e=n?u(e/700):e>>1,e+=u(e/t);e>455;r+=36)e=u(e/35);return u(r+36*e/(e+38))},v=function(e){var t,n=[],r=e.length,a=0,o=128,c=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var l=0;l<s;++l)e.charCodeAt(l)>=128&&d("not-basic"),n.push(e.charCodeAt(l));for(var p=s>0?s+1:0;p<r;){for(var h=a,m=1,f=36;;f+=36){p>=r&&d("invalid-input");var b=(t=e.charCodeAt(p++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(b>=36||b>u((i-a)/m))&&d("overflow"),a+=b*m;var v=f<=c?1:f>=c+26?26:f-c;if(b<v)break;var j=36-v;m>u(i/j)&&d("overflow"),m*=j}var y=n.length+1;c=g(a-h,y,0==h),u(a/y)>i-o&&d("overflow"),o+=u(a/y),a%=y,n.splice(a++,0,o)}return String.fromCodePoint.apply(String,n)},j=function(e){var t=[],n=(e=m(e)).length,r=128,a=0,o=72,c=!0,s=!1,l=void 0;try{for(var h,f=e[Symbol.iterator]();!(c=(h=f.next()).done);c=!0){var v=h.value;v<128&&t.push(p(v))}}catch(B){s=!0,l=B}finally{try{c||null==f.return||f.return()}finally{if(s)throw l}}var j=t.length,y=j;for(j&&t.push("-");y<n;){var _=i,k=!0,O=!1,w=void 0;try{for(var E,C=e[Symbol.iterator]();!(k=(E=C.next()).done);k=!0){var x=E.value;x>=r&&x<_&&(_=x)}}catch(B){O=!0,w=B}finally{try{k||null==C.return||C.return()}finally{if(O)throw w}}var S=y+1;_-r>u((i-a)/S)&&d("overflow"),a+=(_-r)*S,r=_;var A=!0,F=!1,P=void 0;try{for(var T,N=e[Symbol.iterator]();!(A=(T=N.next()).done);A=!0){var M=T.value;if(M<r&&++a>i&&d("overflow"),M==r){for(var R=a,D=36;;D+=36){var z=D<=o?1:D>=o+26?26:D-o;if(R<z)break;var I=R-z,L=36-z;t.push(p(b(z+I%L,0))),R=u(I/L)}t.push(p(b(R,0))),o=g(a,S,y==j),a=0,++y}}}catch(B){F=!0,P=B}finally{try{A||null==N.return||N.return()}finally{if(F)throw P}}++a,++r}return t.join("")},y=function(e){return h(e,(function(e){return o.test(e)?v(e.slice(4).toLowerCase()):e}))},_=function(e){return h(e,(function(e){return c.test(e)?"xn--"+j(e):e}))},k={version:"2.1.0",ucs2:{decode:m,encode:f},decode:v,encode:j,toASCII:_,toUnicode:y};t.default=k},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){"use strict";var r=n(34),a="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,i=n(90),o=n(221),c=n(222),s="function"==typeof Symbol&&Symbol.iterator;function l(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function u(e,t,n,r){var i,c=typeof e;if("undefined"!==c&&"boolean"!==c||(e=null),null===e||"string"===c||"number"===c||"object"===c&&e.$$typeof===a)return n(r,e,""===t?"."+l(e,0):t),1;var p=0,d=""===t?".":t+":";if(Array.isArray(e))for(var h=0;h<e.length;h++)p+=u(i=e[h],d+l(i,h),n,r);else{var m=function(e){var t=e&&(s&&e[s]||e["@@iterator"]);if("function"==typeof t)return t}(e);if(m){0;for(var f,b=m.call(e),g=0;!(f=b.next()).done;)p+=u(i=f.value,d+l(i,g++),n,r)}else if("object"===c){0;var v=""+e;o(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===v?"object with keys {"+Object.keys(e).join(", ")+"}":v,"")}}return p}var p=/\/+/g;function d(e){return(""+e).replace(p,"$&/")}var h,m,f=b,b=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)},g=function(e){o(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)};function v(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function j(e,t,n){var a,o,c=e.result,s=e.keyPrefix,l=e.func,u=e.context,p=l.call(u,t,e.count++);Array.isArray(p)?y(p,c,n,i.thatReturnsArgument):null!=p&&(r.isValidElement(p)&&(a=p,o=s+(!p.key||t&&t.key===p.key?"":d(p.key)+"/")+n,p=r.cloneElement(a,{key:o},void 0!==a.props?a.props.children:void 0)),c.push(p))}function y(e,t,n,r,a){var i="";null!=n&&(i=d(n)+"/");var o=v.getPooled(t,i,r,a);!function(e,t,n){null==e||u(e,"",t,n)}(e,j,o),v.release(o)}v.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h=function(e,t,n,r){if(this.instancePool.length){var a=this.instancePool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)},(m=v).instancePool=[],m.getPooled=h||f,m.poolSize||(m.poolSize=10),m.release=g;e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return c(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return c(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;o(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)y(e[n],t,n,i.thatReturnsArgument);return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,a,i,o,c){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,i,o,c],u=0;(s=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},function(e,t,n){"use strict";var r=n(90);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t,n){"use strict";var r=n(71),a=n(92);function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},i.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},i.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var i=8;i<this.padLength;i++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,i=8;i<this.padLength;i++)r[a++]=0;return r}},function(e,t,n){"use strict";var r=n(71).rotr32;function a(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?o(t,n,r):2===e?i(t,n,r):void 0},t.ch32=a,t.maj32=i,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){!function(){"use strict";var t=[];function n(e){var t,n,r,a,i=-1;for(t=0,r=e.length;t<r;t+=1){for(a=255&(i^e[t]),n=0;n<8;n+=1)1==(1&a)?a=a>>>1^3988292384:a>>>=1;i=i>>>8^a}return-1^i}function r(e,n){var a,i,o;if(void 0!==r.crc&&n&&e||(r.crc=-1,e)){for(a=r.crc,i=0,o=e.length;i<o;i+=1)a=a>>>8^t[255&(a^e[i])];return r.crc=a,-1^a}}!function(){var e,n,r;for(n=0;n<256;n+=1){for(e=n,r=0;r<8;r+=1)1&e?e=3988292384^e>>>1:e>>>=1;t[n]=e>>>0}}(),e.exports=function(e,t){var a;e="string"==typeof e?(a=e,Array.prototype.map.call(a,(function(e){return e.charCodeAt(0)}))):e;return((t?n(e):r(e))>>>0).toString(16)},e.exports.direct=n,e.exports.table=r}()},function(e,t,n){"use strict";var r=[],a=window,i=Math.pow(256,6),o=Math.pow(2,52),c=2*o,s=Math.random;function l(e){var t,n=e.length,r=this,a=0,i=r.i=r.j=0,o=r.S=[];for(n||(e=[n++]);a<256;)o[a]=a++;for(a=0;a<256;a++)o[a]=o[i=255&i+e[a%n]+(t=o[a])],o[i]=t;(r.g=function(e){for(var t,n=0,a=r.i,i=r.j,o=r.S;e--;)t=o[a=255&a+1],n=256*n+o[255&(o[a]=o[i=255&i+t])+(o[i]=t)];return r.i=a,r.j=i,n})(256)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(i){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[255&a]=255&(n^=19*t[255&a])+r.charCodeAt(a++);return h(t)}function d(e){try{return a.crypto.getRandomValues(e=new Uint8Array(256)),h(e)}catch(t){return[+new Date,a,a.navigator&&a.navigator.plugins,a.screen,h(r)]}}function h(e){return String.fromCharCode.apply(0,e)}e.exports=function(t,n){if(n&&!0===n.global)return n.global=!1,Math.random=e.exports(t,n),n.global=!0,Math.random;var a=n&&n.entropy||!1,s=[],m=(p(u(a?[t,h(r)]:0 in arguments?t:d(),3),s),new l(s));return p(h(m.S),r),function(){for(var e=m.g(6),t=i,n=0;e<o;)e=256*(e+n),t*=256,n=m.g(1);for(;e>=c;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=s},p(Math.random(),r)},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(237)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"save",(function(){return Mt})),n.d(r,"attributes",(function(){return Dt})),n.d(r,"support",(function(){return zt}));var a=n(17),i=n(15),o=n.n(i),c=n(3),s=n.n(c),l=n(0),u=n(1),p=n(16),d=n(5),h=n(2),m=n(21),f=n.n(m),b=n(7),g=n.n(b),v=n(11),j=n.n(v),y=n(8),_=n.n(y),k=n(9),O=n.n(k),w=n(4),E=n.n(w),C=n(10),x=n.n(C),S=n(6),A=n(28),F=[{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Original","image style","jetpack"),value:void 0},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Black and White","image style","jetpack"),value:"black-and-white"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:Object(u._x)("Sepia","image style","jetpack"),value:"sepia"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Clarendon","image style","jetpack"),value:"clarendon"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:Object(u._x)("Gingham","image style","jetpack"),value:"gingham"}],P=Object(u.__)("Pick an image filter","jetpack");function T(e){var t=e.value,n=e.onChange;return Object(l.createElement)(h.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(l.createElement)(h.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:P,tooltip:P,icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:function(e){var r=e.onClose;return Object(l.createElement)(h.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},F.map((function(e){var a,i=e.icon,o=e.title,c=e.value;return Object(l.createElement)(h.MenuItem,{className:t===c?"is-active":void 0,icon:i,isSelected:t===c,key:c||"original",onClick:(a=c,function(){n(t===a?void 0:a),r()}),role:"menuitemcheckbox"},o)})))}})}var N=n(12),M=n.n(N),R=n(26),D=n(25),z=n(13),I=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"img",Object(l.createRef)()),s()(E()(n),"onImageClick",(function(){n.props.isSelected||n.props.onSelect()})),s()(E()(n),"onImageKeyDown",(function(e){n.img.current===document.activeElement&&n.props.isSelected&&[R.BACKSPACE,R.DELETE].includes(e.keyCode)&&n.props.onRemove()})),n}return x()(t,e),j()(t,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.alt,n=e.height,r=e.image,a=e.link,i=e.url,o=e.width;if(r){var c={};!t&&r.alt_text&&(c.alt=r.alt_text),!n&&r.media_details&&r.media_details.height&&(c.height=+r.media_details.height),!a&&r.link&&(c.link=r.link),!i&&r.source_url&&(c.url=r.source_url),!o&&r.media_details&&r.media_details.width&&(c.width=+r.media_details.width),Object.keys(c).length&&this.props.setAttributes(c)}}},{key:"render",value:function(){var e,t=this.props,n=t["aria-label"],r=t.alt,a=t.height,i=t.id,o=t.imageFilter,c=t.isSelected,p=t.link,d=t.linkTo,m=t.onRemove,f=t.origUrl,b=t.srcSet,g=t.url,v=t.width;switch(d){case"media":e=g;break;case"attachment":e=p}var j=Object(D.isBlobURL)(f),y=Object(l.createElement)(l.Fragment,null,Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":p,"data-url":f,"data-width":v,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:g,srcSet:j?void 0:b,tabIndex:"0",style:j?{backgroundImage:"url(".concat(f,")")}:void 0}),j&&Object(l.createElement)(h.Spinner,null));return Object(l.createElement)("figure",{className:M()("tiled-gallery__item",s()({"is-selected":c,"is-transient":j},"filter__".concat(o),!!o))},c&&Object(l.createElement)("div",{className:"tiled-gallery__item__inline-menu"},Object(l.createElement)(h.IconButton,{icon:"no-alt",onClick:m,className:"tiled-gallery__item__remove",label:Object(u.__)("Remove Image","jetpack")})),e?Object(l.createElement)("a",null,y):y)}}]),t}(l.Component),L=Object(z.withSelect)((function(e,t){var n=e("core").getMedia,r=t.id;return{image:r?n(r):null}}))(I);function B(e){var t,n=e.alt,r=e.imageFilter,a=e.height,i=e.id,o=e.link,c=e.linkTo,u=e.origUrl,p=e.url,d=e.width;if(Object(D.isBlobURL)(u))return null;switch(c){case"media":t=p;break;case"attachment":t=o}var h=Object(l.createElement)("img",{alt:n,"data-height":a,"data-id":i,"data-link":o,"data-url":u,"data-width":d,src:p});return Object(l.createElement)("figure",{className:M()("tiled-gallery__item",s()({},"filter__".concat(r),!!r))},t?Object(l.createElement)("a",{href:t},h):h)}var q=n(39);function U(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function V(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function H(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:M()("tiled-gallery__row",n)},t)}var G=n(62);function $(e){var t=e.height,n=e.width;return t&&n?n/t:1}var W=he([2,1,2],5),K=me([fe,fe,be,fe,fe]),Z=me([fe,fe,fe,be,fe,fe,fe]),J=he([3,1,3],5),Y=me([be,fe,fe,be]),Q=he([1,2,1],5),X=me([be,fe,fe,fe]),ee=he([1,3],3),te=me([fe,fe,fe,be]),ne=he([3,1],3),re=me([ve(1.6),Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2))]),ae=he([1,2],3),ie=he([1,1,1,1,1],1),oe=he([1,1,1,1],1),ce=he([1,1,1],3),se=me([Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2)),ve(1.6)]),le=he([2,1],3),ue=me([function(e){return e>=2}]);function pe(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&ce(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function de(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return oe(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function he(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function me(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function fe(e){return e>=1&&e<2}function be(e){return e<1}function ge(e){return function(t){return t>=e}}function ve(e){return function(t){return t<e}}var je=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Object(G.a)(n).forEach((function(e){return Object(G.b)(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,$)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&K(r)&&W(t)?[2,1,2]:r.length>15&&Z(r)&&J(t)?[3,1,3]:5!==r.length&&Y(r)&&Q(t)?[1,2,1]:X(r)&&ee(t)?[1,3]:te(r)&&ne(t)?[3,1]:re(r)&&ae(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ie(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:de(t,r)?[1,1,1,1]:pe(t,r,n)?[1,1,1]:se(r)&&le(t)?[2,1]:ue(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(V,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(H,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(U,{key:t},n)})))})))}}]),t}(l.Component),ye=n(22);function _e(e){var t=e.columns,n=e.renderedImages,r=Math.min(ye.h,t),a=n.length%r;return Object(l.createElement)(V,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(H,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(U,{key:t},e)})))})))}var ke=n(46),Oe=n.n(ke),we=n(61),Ee=n.n(we),Ce=n(29);function xe(e){return["circle","square"].includes(e)}function Se(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function Ae(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}function Fe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}var Pe=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"renderImage",value:function(e,t){var n=this.props,r=n.imageFilter,a=n.images,i=n.isSave,o=n.linkTo,c=n.layoutStyle,s=n.onRemoveImage,p=n.onSelectImage,h=n.selectedImage,m=n.setImageAttributes,f=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,a.length),b=i?B:L,g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if(Object(D.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};var n,r=e.url.split("?",1)[0],a=e.height,i=e.width,o=t.layoutStyle,c=Ae(r)||!0===Se()?Fe:Ee.a;if(xe(o)&&i&&a){var s=Math.min(ye.i,i,a);n=c(r,{resize:"".concat(s,",").concat(s)})}else n=c(r);var l,u=300,p=600;if(xe(o)){var h=Math.min(p,i,a),m=Math.min(ye.i,i,a);l=Object(d.range)(h,m,u).map((function(e){var t=c(r,{resize:"".concat(e,",").concat(e),strip:"info"});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}else{var f=Math.min(p,i),b=Math.min(ye.i,i);l=Object(d.range)(f,b,u).map((function(e){var t=c(r,{strip:"info",width:e});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}return Object.assign({src:n},l&&{srcSet:l})}(e,{layoutStyle:c}),v=g.src,j=g.srcSet;return Object(l.createElement)(b,{alt:e.alt,"aria-label":f,height:e.height,id:e.id,imageFilter:r,isSelected:h===t,key:t,link:e.link,linkTo:o,onRemove:i?void 0:s(t),onSelect:i?void 0:p(t),origUrl:e.url,setAttributes:i?void 0:m(t),srcSet:j,url:v,width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=xe(o)?_e:je,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component),Te=n(112),Ne=n.n(Te);function Me(e,t){var n=function(e,t){var n=!0,r=!1,a=void 0;try{for(var i,o=new Ne.a(t).values()[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var c=i.value;if(-1!==c.indexOf("is-style-")){var s=c.substring(9),l=Object(d.find)(e,{name:s});if(l)return l}}}catch(u){r=!0,a=u}finally{try{n||null==o.return||o.return()}finally{if(r)throw a}}return Object(d.find)(e,"isDefault")}(e,t);return n?n.name:null}var Re=n(48),De=[{value:"attachment",label:Object(u.__)("Attachment Page","jetpack")},{value:"media",label:Object(u.__)("Media File","jetpack")},{value:"none",label:Object(u.__)("None","jetpack")}];function ze(e){return Math.min(3,e.images.length)}var Ie=function(e){var t=Object(d.pick)(e,[["alt"],["id"],["link"]]);return t.url=Object(d.get)(e,["sizes","large","url"])||Object(d.get)(e,["media_details","sizes","large","source_url"])||e.url,t},Le=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"state",{selectedImage:null}),s()(E()(n),"addFiles",(function(e){var t=n.props.attributes.images||[],r=n.props.noticeOperations;Object(A.mediaUpload)({allowedTypes:ye.a,filesList:e,onFileChange:function(e){var r=e.map((function(e){return Ie(e)}));n.setAttributes({images:t.concat(r)})},onError:r.createErrorNotice})})),s()(E()(n),"onRemoveImage",(function(e){return function(){var t=Object(d.filter)(n.props.attributes.images,(function(t,n){return e!==n})),r=n.props.attributes.columns;n.setState({selectedImage:null}),n.setAttributes({images:t,columns:r?Math.min(t.length,r):r})}})),s()(E()(n),"onSelectImage",(function(e){return function(){n.state.selectedImage!==e&&n.setState({selectedImage:e})}})),s()(E()(n),"onSelectImages",(function(e){var t=n.props.attributes.columns;n.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((function(e){return Ie(e)}))})})),s()(E()(n),"setColumnsNumber",(function(e){return n.setAttributes({columns:e})})),s()(E()(n),"setImageAttributes",(function(e){return function(t){var r=n.props.attributes.images;r[e]&&n.setAttributes({images:[].concat(f()(r.slice(0,e)),[o()({},r[e],{},t)],f()(r.slice(e+1)))})}})),s()(E()(n),"setLinkTo",(function(e){return n.setAttributes({linkTo:e})})),s()(E()(n),"uploadFromFiles",(function(e){return n.addFiles(e.target.files)})),n}return x()(t,e),j()(t,[{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=o()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"render",value:function(){var e=this,t=this.state.selectedImage,n=this.props,r=n.attributes,a=n.isSelected,i=n.className,o=n.noticeOperations,c=n.noticeUI,s=n.setAttributes,p=r.align,d=r.columns,m=void 0===d?ze(r):d,f=r.imageFilter,b=r.images,g=r.linkTo,v=Object(l.createElement)(h.DropZone,{onFilesDrop:this.addFiles}),j=Object(l.createElement)(S.BlockControls,null,!!b.length&&Object(l.createElement)(l.Fragment,null,Object(l.createElement)(h.Toolbar,null,Object(l.createElement)(S.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:ye.a,multiple:!0,gallery:!0,value:b.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(l.createElement)(Re.a,{label:Object(u.__)("Edit Gallery","jetpack"),onClick:t})}})),Object(l.createElement)(T,{value:f,onChange:function(t){s({imageFilter:t}),e.setState({selectedImage:null})}})));if(0===b.length)return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.MediaPlaceholder,{icon:Object(l.createElement)(S.BlockIcon,{icon:tn}),className:i,labels:{title:Object(u.__)("Tiled Gallery","jetpack"),name:Object(u.__)("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:ye.a,multiple:!0,notices:c,onError:o.createErrorNotice}));var y=Me(ye.g,r.className);return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.InspectorControls,null,Object(l.createElement)(h.PanelBody,{title:Object(u.__)("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(y)&&b.length>1&&Object(l.createElement)(h.RangeControl,{label:Object(u.__)("Columns","jetpack"),value:m,onChange:this.setColumnsNumber,min:1,max:Math.min(ye.h,b.length)}),Object(l.createElement)(h.SelectControl,{label:Object(u.__)("Link To","jetpack"),value:g,onChange:this.setLinkTo,options:De}))),c,Object(l.createElement)(Pe,{align:p,className:i,columns:m,imageFilter:f,images:b,layoutStyle:y,linkTo:g,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,selectedImage:a?t:null,setImageAttributes:this.setImageAttributes},v,a&&Object(l.createElement)("div",{className:"tiled-gallery__add-item"},Object(l.createElement)(h.FormFileUpload,{multiple:!0,isLarge:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(u.__)("Upload an image","jetpack")))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}}]),t}(l.Component),Be=Object(h.withNotices)(Le);var qe=n(24);n(238);function Ue(e){var t,n=e["aria-label"],r=e.alt,a=e.height,i=e.id,o=e.link,c=e.linkTo,s=e.origUrl,u=e.url,p=e.width;if(Object(D.isBlobURL)(s))return null;switch(c){case"media":t=u;break;case"attachment":t=o}var d=Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":o,"data-url":s,"data-width":p,src:u});return Object(l.createElement)("figure",{className:"tiled-gallery__item"},t?Object(l.createElement)("a",{href:t},d):d)}function Ve(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function He(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function Ge(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:M()("tiled-gallery__row",n)},t)}var $e=n(18),We=n.n($e),Ke=[{isDefault:!0,name:"rectangular"},{name:"circle"},{name:"square"},{name:"columns"}];function Ze(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function Je(e,t){!function(e,t,n){var r=We()(t,2),a=r[0],i=r[1],o=1/a*(n-4*(e.childElementCount-1)-i);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=Qe(e),i=a.map((function(e){return(n-4*(e.childElementCount-1))*et(e)[0]})),o=Ze(i,r);a.forEach((function(e,t){var r=i[t],a=o[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=Ze(Xe(e).map((function(e){return a/tt(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-4*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:o,rowWidth:n-4*(e.childElementCount-1)})}(e,function(e){return Qe(e).map(et).reduce((function(e,t){var n=We()(e,2),r=n[0],a=n[1],i=We()(t,2);return[r+i[0],a+i[1]]}),[0,0])}(e),t)}function Ye(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function Qe(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function Xe(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function et(e){var t=Xe(e),n=t.length,r=1/t.map(tt).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function tt(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}function nt(e){var t=e.height,n=e.width;return t&&n?n/t:1}var rt=Ot([2,1,2],5),at=wt([Et,Et,Ct,Et,Et]),it=wt([Et,Et,Et,Ct,Et,Et,Et]),ot=Ot([3,1,3],5),ct=wt([Ct,Et,Et,Ct]),st=Ot([1,2,1],5),lt=wt([Ct,Et,Et,Et]),ut=Ot([1,3],3),pt=wt([Et,Et,Et,Ct]),dt=Ot([3,1],3),ht=wt([St(1.6),Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2))]),mt=Ot([1,2],3),ft=Ot([1,1,1,1,1],1),bt=Ot([1,1,1,1],1),gt=Ot([1,1,1],3),vt=wt([Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2)),St(1.6)]),jt=Ot([2,1],3),yt=wt([function(e){return e>=2}]);function _t(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&gt(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function kt(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return bt(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function Ot(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function wt(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function Et(e){return e>=1&&e<2}function Ct(e){return e<1}function xt(e){return function(t){return t>=e}}function St(e){return function(t){return t<e}}var At=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Ye(n).forEach((function(e){return Je(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,nt)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&at(r)&&rt(t)?[2,1,2]:r.length>15&&it(r)&&ot(t)?[3,1,3]:5!==r.length&&ct(r)&&st(t)?[1,2,1]:lt(r)&&ut(t)?[1,3]:pt(r)&&dt(t)?[3,1]:ht(r)&&mt(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ft(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:kt(t,r)?[1,1,1,1]:_t(t,r,n)?[1,1,1]:vt(r)&&jt(t)?[2,1]:yt(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(He,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(Ge,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(Ve,{key:t},n)})))})))}}]),t}(l.Component);function Ft(e){var t=e.columns,n=e.renderedImages,r=Math.min(20,t),a=n.length%r;return Object(l.createElement)(He,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(Ge,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(Ve,{key:t},e)})))})))}var Pt=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"photonize",value:function(e){var t=e.height,n=e.width,r=e.url;if(r){if(Object(D.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;var a=r.split("?",1)[0],i=function(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}(r)?Nt:Ee.a;if(Tt(this.props.layoutStyle)&&n&&t){var o=Math.min(2e3,n,t);return i(a,{resize:"".concat(o,",").concat(o)})}return i(a)}}},{key:"renderImage",value:function(e,t){var n=this.props,r=n.images,a=n.linkTo,i=n.selectedImage,o=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,r.length);return Object(l.createElement)(Ue,{alt:e.alt,"aria-label":o,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=Tt(o)?Ft:At,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component);function Tt(e){return["circle","square"].includes(e)}function Nt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}function Mt(e){var t=e.attributes,n=t.images;if(!n.length)return null;var r=t.align,a=t.className,i=t.columns,o=void 0===i?function(e){return Math.min(3,e.images.length)}(t):i,c=t.linkTo;return Object(l.createElement)(Pt,{align:r,className:a,columns:o,images:n,layoutStyle:Me(Ke,a),linkTo:c})}var Rt,Dt={align:{default:"center",type:"string"},className:{default:"is-style-".concat("rectangular"),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},zt={align:["center","wide","full"],customClassName:!1,html:!1},It=n(113),Lt=n.n(It),Bt=n(114),qt=n.n(Bt),Ut=n(115),Vt=n.n(Ut),Ht=n(116),Gt=n.n(Ht),$t=n(117),Wt=n.n($t),Kt=n(118),Zt=n.n(Kt),Jt=(Rt={},s()(Rt,ye.e,Object(u._x)("Tiled mosaic","Tiled gallery layout","jetpack")),s()(Rt,ye.c,Object(u._x)("Circles","Tiled gallery layout","jetpack")),s()(Rt,ye.d,Object(u._x)("Tiled columns","Tiled gallery layout","jetpack")),s()(Rt,ye.f,Object(u._x)("Square tiles","Tiled gallery layout","jetpack")),Rt),Yt=ye.g.map((function(e){return o()({},e,{label:Jt[e.name]})}));function Qt(e){return Object(d.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var Xt={align:{default:"center",type:"string"},className:{default:"is-style-".concat(ye.e),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},en={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:Lt.a,width:160,height:95},{alt:"",link:"",url:qt.a,width:160,height:107},{alt:"",link:"",url:Vt.a,width:304,height:203},{alt:"",link:"",url:Gt.a,width:312,height:207},{alt:"",link:"",url:Wt.a,width:152,height:101},{alt:"",link:"",url:Zt.a,width:152,height:105}],linkTo:"none"},tn=Object(l.createElement)(h.SVG,{viewBox:"0 0 24 24",width:24,height:24},Object(l.createElement)(h.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),nn={attributes:Xt,category:"jetpack",description:Object(u.__)("Display multiple images in an elegantly organized tiled layout.","jetpack")+(Object(qe.b)()?"":" "+Object(u.__)("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:tn,keywords:[Object(u._x)("images","block search term","jetpack"),Object(u._x)("photos","block search term","jetpack"),Object(u._x)("pictures","block search term","jetpack")],styles:Yt,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:Object(u.__)("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return Qt(e).length>0},transform:function(e){var t=Qt(e);return Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:function(e){var t=Qt(e.images);return t.length>0?Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))}):Object(p.createBlock)("jetpack/".concat("tiled-gallery"))}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids,r=e.columns,a=e.linkTo;return Object(p.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.align,n=e.images;return n.length>0?n.map((function(e){var n=e.id,r=e.url,a=e.alt;return Object(p.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):Object(p.createBlock)("core/image")}}]},edit:Be,save:function(e){var t=e.attributes,n=t.imageFilter,r=t.images;if(!r.length)return null;var a=t.align,i=t.className,o=t.columns,c=void 0===o?ze(t):o,s=t.linkTo;return Object(l.createElement)(Pe,{align:a,className:i,columns:c,imageFilter:n,images:r,isSave:!0,layoutStyle:Me(ye.g,i),linkTo:s})},deprecated:[r],example:{attributes:en}};Object(a.a)("tiled-gallery",nn)},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"setConnectionTestResults",(function(){return p})),n.d(r,"refreshConnectionTestResults",(function(){return d})),n.d(r,"fetchFromAPI",(function(){return h}));var a={};n.r(a),n.d(a,"getFailedConnections",(function(){return m})),n.d(a,"getMustReauthConnections",(function(){return f}));var i=n(0),o=n(1),c=n(2),s=n(52),l=n(28),u=(n(216),n(13));function p(e){return{type:"SET_CONNECTION_TEST_RESULTS",results:e}}function d(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function h(e){return{type:"FETCH_FROM_API",path:e}}function m(e){return e.filter((function(e){return!1===e.test_success}))}function f(e){return e.filter((function(e){return"must_reauth"===e.test_success})).map((function(e){return e.service_name}))}var b=n(21),g=n.n(b),v=n(101),j=n.n(v),y=n(5),_=n(23),k=n.n(_);var O={REFRESH_CONNECTION_TEST_RESULTS:function(e,t){var n,r;return regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.dispatch,e.prev=1,e.next=4,regeneratorRuntime.awrap(k()({path:"/wpcom/v2/publicize/connection-test-results"}));case 4:return r=e.sent,e.abrupt("return",n(p(r)));case 8:e.prev=8,e.t0=e.catch(1);case 10:case"end":return e.stop()}}),null,null,[[1,8]])}};var w,E,C,x,S,A={FETCH_FROM_API:function(e){var t=e.path;return k()({path:t})}},F=Object(u.registerStore)("jetpack/publicize",{actions:r,controls:A,reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_CONNECTION_TEST_RESULTS":return t.results;case"REFRESH_CONNECTION_TEST_RESULTS":return[]}return e},selectors:a});w=F,C=[j()(O)],x=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},S={getState:w.getState,dispatch:function(){return x.apply(void 0,arguments)}},E=C.map((function(e){return e(S)})),x=y.flowRight.apply(void 0,g()(E))(w.dispatch),w.dispatch=x;var P=n(44),T=n(14),N=n(7),M=n.n(N),R=n(11),D=n.n(R),z=n(8),I=n.n(z),L=n(9),B=n.n(L),q=n(4),U=n.n(q),V=n(10),H=n.n(V),G=n(3),$=n.n(G),W=function(e){function t(){var e,n;M()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"refreshConnectionClick",(function(e){var t=e.target,r=t.href,a=t.title;e.preventDefault();var i=window.open(r,a,""),o=window.setInterval((function(){!1!==i.closed&&(window.clearInterval(o),n.props.refreshConnections())}),500)})),n}return H()(t,e),D()(t,[{key:"componentDidMount",value:function(){this.props.refreshConnections()}},{key:"renderRefreshableConnections",value:function(){var e=this,t=this.props.failedConnections.filter((function(e){return e.can_refresh}));return t.length?Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((function(t){return Object(i.createElement)(c.Button,{href:t.refresh_url,isSmall:!0,key:t.id,onClick:e.refreshConnectionClick,title:t.refresh_text},t.refresh_text)}))):null}},{key:"renderNonRefreshableConnections",value:function(){var e=this.props.failedConnections.filter((function(e){return!e.can_refresh}));return e.length?e.map((function(e){return Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,e.test_message))})):null}},{key:"render",value:function(){return Object(i.createElement)(i.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}]),t}(i.Component),K=Object(T.compose)([Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections()}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("jetpack/publicize").refreshConnectionTestResults}}))])(W),Z=n(15),J=n.n(Z),Y=n(12),Q=n.n(Y),X=n(30),ee=n.n(X),te=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M20.007 3H3.993C3.445 3 3 3.445 3 3.993v16.013c0 .55.445.994.993.994h8.62v-6.97H10.27V11.31h2.346V9.31c0-2.325 1.42-3.59 3.494-3.59.993 0 1.847.073 2.096.106v2.43h-1.438c-1.128 0-1.346.537-1.346 1.324v1.734h2.69l-.35 2.717h-2.34V21h4.587c.548 0 .993-.445.993-.993V3.993c0-.548-.445-.993-.993-.993z"}))),ne=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z"}))),re=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),ae=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),ie=function(e){var t=e.serviceName,n={className:"jetpack-publicize-gutenberg-social-icon is-".concat(t),size:24};switch(t){case"facebook":return Object(i.createElement)(c.Icon,ee()({icon:te},n));case"twitter":return Object(i.createElement)(c.Icon,ee()({icon:ne},n));case"linkedin":return Object(i.createElement)(c.Icon,ee()({icon:re},n));case"tumblr":return Object(i.createElement)(c.Icon,ee()({icon:ae},n))}return null},oe=n(35),ce=function(e){function t(){var e,n;M()(this,t);for(var r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"maybeDisplayLinkedInNotice",(function(){return n.connectionNeedsReauth()&&Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),Object(i.createElement)(c.ExternalLink,{href:"https://wordpress.com/marketing/connections/".concat(Object(oe.a)())},Object(o.__)("Go to Sharing settings","jetpack")))})),$()(U()(n),"connectionNeedsReauth",(function(){return Object(y.includes)(n.props.mustReauthConnections,n.props.name)})),$()(U()(n),"onConnectionChange",(function(){var e=n.props.id;n.props.toggleConnection(e)})),n}return H()(t,e),D()(t,[{key:"connectionIsFailing",value:function(){var e=this.props,t=e.failedConnections,n=e.name;return t.some((function(e){return e.service_name===n}))}},{key:"render",value:function(){var e=this.props,t=e.disabled,n=e.enabled,r=e.id,a=e.label,o=e.name,s="connection-"+o+"-"+r,l=o.replace("_","-"),u=Object(i.createElement)(c.FormToggle,{id:s,className:"jetpack-publicize-connection-toggle",checked:n,onChange:this.onConnectionChange});return(t||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=Object(i.createElement)(c.Disabled,null,u)),Object(i.createElement)("li",null,this.maybeDisplayLinkedInNotice(),Object(i.createElement)("div",{className:"publicize-jetpack-connection-container"},Object(i.createElement)("label",{htmlFor:s,className:"jetpack-publicize-connection-label"},Object(i.createElement)(ie,{serviceName:l}),Object(i.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a)),u))}}]),t}(i.Component),se=Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()}}))(ce),le=function(e){function t(){var e,n;M()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"settingsClick",(function(e){var t=n.getButtonLink(),r=n.props.refreshCallback;e.preventDefault();var a=window.open(t,"",""),i=window.setInterval((function(){!1!==a.closed&&(window.clearInterval(i),r())}),500)})),n}return H()(t,e),D()(t,[{key:"getButtonLink",value:function(){var e=Object(oe.a)();return e?"https://wordpress.com/marketing/connections/".concat(e):"options-general.php?page=sharing&publicize_popup=true"}},{key:"render",value:function(){var e=Q()("jetpack-publicize-add-connection-container",this.props.className);return Object(i.createElement)("div",{className:e},Object(i.createElement)(c.ExternalLink,{onClick:this.settingsClick},Object(o.__)("Connect an account","jetpack")))}}]),t}(i.Component),ue=function(e){function t(){var e,n;M()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"state",{hasEditedShareMessage:!1}),$()(U()(n),"fieldId",Object(y.uniqueId)("jetpack-publicize-message-field-")),$()(U()(n),"onMessageChange",(function(e){var t=n.props.messageChange;n.setState({hasEditedShareMessage:!0}),t(e)})),n}return H()(t,e),D()(t,[{key:"isDisabled",value:function(){return this.props.connections.every((function(e){return!e.toggleable}))}},{key:"getShareMessage",value:function(){var e=this.props,t=e.shareMessage,n=e.defaultShareMessage;return this.state.hasEditedShareMessage||""!==t?t:n}},{key:"render",value:function(){var e=this.props,t=e.connections,n=e.toggleConnection,r=e.refreshCallback,a=this.getShareMessage(),c=256-a.length,s=Q()("jetpack-publicize-character-count",{"wpas-twitter-length-limit":c<=0});return Object(i.createElement)("div",{id:"publicize-form"},Object(i.createElement)("ul",{className:"jetpack-publicize__connections-list"},t.map((function(e){var t=e.display_name,r=e.enabled,a=e.id,o=e.service_name,c=e.toggleable;return Object(i.createElement)(se,{disabled:!c,enabled:r,key:a,id:a,label:t,name:o,toggleConnection:n})}))),Object(i.createElement)(le,{refreshCallback:r}),t.some((function(e){return e.enabled}))&&Object(i.createElement)(i.Fragment,null,Object(i.createElement)("label",{className:"jetpack-publicize-message-note",htmlFor:this.fieldId},Object(o.__)("Customize your message","jetpack")),Object(i.createElement)("div",{className:"jetpack-publicize-message-box"},Object(i.createElement)("textarea",{id:this.fieldId,value:a,onChange:this.onMessageChange,disabled:this.isDisabled(),maxLength:256,placeholder:Object(o.__)("Write a message for your audience here. If you leave this blank, we'll use the post title as the message.","jetpack"),rows:4}),Object(i.createElement)("div",{className:s},Object(o.sprintf)(Object(o._n)("%d character remaining","%d characters remaining",c,"jetpack"),c)))))}}]),t}(i.Component),pe=Object(T.compose)([Object(u.withSelect)((function(e){var t=e("core/editor").getEditedPostAttribute("meta"),n=e("core/editor").getEditedPostAttribute("title"),r=Object(y.get)(t,["jetpack_publicize_message"],"");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),defaultShareMessage:n.substr(0,256),shareMessage:r.substr(0,256)}})),Object(u.withDispatch)((function(e,t){var n=t.connections;return{toggleConnection:function(t){var r=n.map((function(e){return J()({},e,{enabled:e.id===t?!e.enabled:e.enabled})}));e("core/editor").editPost({jetpack_publicize_connections:r})},messageChange:function(t){e("core/editor").editPost({meta:{jetpack_publicize_message:t.target.value}})}}}))])(ue),de=Object(T.compose)([Object(u.withSelect)((function(e){return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("core/editor").refreshPost}}))])((function(e){var t=e.connections,n=e.refreshConnections;return Object(i.createElement)(i.Fragment,null,t&&t.some((function(e){return e.enabled}))&&Object(i.createElement)(K,null),Object(i.createElement)("div",null,Object(o.__)("Connect and select the accounts where you'd like to share your post.","jetpack")),t&&t.length>0&&Object(i.createElement)(pe,{refreshCallback:n}),t&&0===t.length&&Object(i.createElement)(le,{className:"jetpack-publicize-add-connection-wrapper",refreshCallback:n}))})),he={render:function(){return Object(i.createElement)(l.PostTypeSupportCheck,{supportKeys:"publicize"},Object(i.createElement)(P.a,null,Object(i.createElement)(c.PanelBody,{title:Object(o.__)("Share this post","jetpack")},Object(i.createElement)(de,null))),Object(i.createElement)(s.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:Object(i.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},Object(o.__)("Share this post","jetpack"))},Object(i.createElement)(de,null)))}},me=n(37);Object(me.a)("publicize",he)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(6),c=n(2),s=n(12),l=n.n(s),u=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],p=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]],d=function(e){var t=e.isSelected;return Object(a.createElement)("div",{className:l()({"jetpack-contact-info-block":!0,"is-selected":t})},Object(a.createElement)(o.InnerBlocks,{allowedBlocks:u,templateLock:!1,template:p}))},h=n(20),m=(n(152),n(129),n(7)),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,i=t.addressLine3,o=t.city,c=t.region,s=t.postal,l=t.country;return Object(a.createElement)(a.Fragment,null,n&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},n),r&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},r),i&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},i),o&&!(c||s)&&Object(a.createElement)("div",{className:"jetpack-address__city"},o),o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__city"},o),", ",Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&Object(a.createElement)("div",{className:"jetpack-address__country"},l))},x=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,a=t.addressLine3,i=t.city,o=t.region,c=t.postal,s=t.country,l=n?"".concat(n,","):"",u=r?"".concat(r,","):"",p=a?"".concat(a,","):"",d=i?"+".concat(i,","):"",h=o?"+".concat(o,","):"";h=c?"".concat(h,"+").concat(c):h;var m=s?"+".concat(s):"";return"https://www.google.com/maps/search/".concat(l).concat(u).concat(p).concat(d).concat(h).concat(m).replace(" ","+")},S=function(e){return[(t=e.attributes).address,t.addressLine2,t.addressLine3,t.city,t.region,t.postal,t.country].some((function(e){return""!==e}))&&Object(a.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&Object(a.createElement)("a",{href:x(e),target:"_blank",rel:"noopener noreferrer",title:Object(i.__)("Open address in Google Maps","jetpack")},Object(a.createElement)(C,e)),!e.attributes.linkToGoogleMaps&&Object(a.createElement)(C,e));var t},A=function(e){function t(){var e,n;f()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=j()(this,(e=_()(t)).call.apply(e,[this].concat(a)))).preventEnterKey=n.preventEnterKey.bind(O()(n)),n}return E()(t,e),g()(t,[{key:"preventEnterKey",value:function(e){"Enter"!==e.key||e.preventDefault()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=t.address,r=t.addressLine2,s=t.addressLine3,u=t.city,p=t.region,d=t.postal,h=t.country,m=t.linkToGoogleMaps,f=e.isSelected,b=e.setAttributes,g=[n,r,s,u,p,d,h].some((function(e){return""!==e})),v=l()({"jetpack-address-block":!0,"is-selected":f}),j=Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Link address to Google Maps","jetpack"),checked:m,onChange:function(e){return b({linkToGoogleMaps:e})}});return Object(a.createElement)("div",{className:v},!f&&g&&S(this.props),(f||!g)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(o.PlainText,{value:n,placeholder:Object(i.__)("Street Address","jetpack"),"aria-label":Object(i.__)("Street Address","jetpack"),onChange:function(e){return b({address:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:r,placeholder:Object(i.__)("Address Line 2","jetpack"),"aria-label":Object(i.__)("Address Line 2","jetpack"),onChange:function(e){return b({addressLine2:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:s,placeholder:Object(i.__)("Address Line 3","jetpack"),"aria-label":Object(i.__)("Address Line 3","jetpack"),onChange:function(e){return b({addressLine3:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:u,placeholder:Object(i.__)("City","jetpack"),"aria-label":Object(i.__)("City","jetpack"),onChange:function(e){return b({city:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:p,placeholder:Object(i.__)("State/Province/Region","jetpack"),"aria-label":Object(i.__)("State/Province/Region","jetpack"),onChange:function(e){return b({region:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:d,placeholder:Object(i.__)("Postal/Zip Code","jetpack"),"aria-label":Object(i.__)("Postal/Zip Code","jetpack"),onChange:function(e){return b({postal:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:h,placeholder:Object(i.__)("Country","jetpack"),"aria-label":Object(i.__)("Country","jetpack"),onChange:function(e){return b({country:e})},onKeyDown:this.preventEnterKey}),j))}}]),t}(a.Component),F={title:Object(i.__)("Address","jetpack"),description:Object(i.__)("Lets you add a physical address with Schema markup.","jetpack"),keywords:[Object(i._x)("location","block search term","jetpack"),Object(i._x)("direction","block search term","jetpack"),Object(i._x)("place","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(a.Fragment,null,Object(a.createElement)(c.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),Object(a.createElement)(c.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"jetpack",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:A,save:S},P=n(43),T=n.n(P),N=function(e){var t=e.attributes.email,n=e.className;return t&&Object(a.createElement)("div",{className:n},t.split(/(\s+)/).map((function(e,t){var n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&T.a.validate(n)?e===n?Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},e):Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},n),Object(a.createElement)(a.Fragment,null,e.slice(-(e.length-n.length)))):Object(a.createElement)(a.Fragment,{key:t},e)})))},M=function(e,t,n,r,i){var c=t.isSelected,s=t.attributes[e];return Object(a.createElement)("div",{className:"jetpack-".concat(e,c?"-block is-selected":"-block")},!c&&""!==s&&r(t),(c||""===s)&&Object(a.createElement)(o.PlainText,{value:s,placeholder:n,"aria-label":n,onChange:i}))},R=function(e){var t=e.setAttributes;return M("email",e,Object(i.__)("Email","jetpack"),N,(function(e){return t({email:e})}))},D={title:Object(i.__)("Email Address","jetpack"),description:Object(i.__)("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",Object(i._x)("message","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"jetpack",attributes:{email:{type:"string",default:""}},edit:R,save:N,parent:["jetpack/contact-info"]};var z=function(e){var t=e.attributes.phone,n=e.className;return t&&Object(a.createElement)("div",{className:n},function(e){var t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;var n=e.indexOf(t[0]),r=n?e.substring(n-1):e,i=n?e.substring(0,n):"",o=r.replace(/\D/g,"");return/[0-9/+/(]/.test(r[0])?(i=i.slice(0,-1),"+"===r[0]&&(o="+"+o)):r=r.substring(1),[i.trim()?Object(a.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},i):null,Object(a.createElement)("a",{key:"phoneNumber",href:"tel:".concat(o)},r)]}(t))},I=function(e){var t=e.setAttributes;return M("phone",e,Object(i.__)("Phone number","jetpack"),z,(function(e){return t({phone:e})}))},L={title:Object(i.__)("Phone Number","jetpack"),description:Object(i.__)("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[Object(i._x)("mobile","block search term","jetpack"),Object(i._x)("telephone","block search term","jetpack"),Object(i._x)("cell","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"jetpack",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:I,save:z},B={title:Object(i.__)("Contact Info","jetpack"),description:Object(i.__)("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("phone","block search term","jetpack"),Object(i._x)("address","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),category:"jetpack",supports:{align:["wide","full"],html:!1},attributes:{},edit:d,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},q=[{name:"address",settings:F},{name:"email",settings:D},{name:"phone",settings:L}];Object(r.a)("contact-info",B,q)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(27),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(23),_=n.n(y),k=n(1),O=n(2),w=n(6),E=(n(157),n(21)),C=n.n(E),x=n(12),S=n.n(x),A=n(5),F=n(26),P=n(14);function T(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=[],r=0;r<e.length;r++){var a=e[r],i=a.keywords,o=void 0===i?[]:i;if("string"==typeof a.label&&(o=[].concat(C()(o),[a.label])),n.push(a),n.length===t)break}return n}var N=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"select",(function(t){(e.props.completer.getOptionCompletion||{})(t),e.reset()})),v()(m()(e),"reset",(function(){e.setState(e.constructor.getInitialState())})),v()(m()(e),"onChange",(function(t){var n=e.props.completer,r=e.state.options;if(t){n&&(n.isDebounced?e.debouncedLoadOptions(n,t):e.loadOptions(n,t));var a=n?T(r):[];n&&e.setState({selectedIndex:0,filteredOptions:a,query:t})}else e.reset()})),v()(m()(e),"onKeyDown",(function(t){var n=e.state,r=n.isOpen,a=n.selectedIndex,i=n.filteredOptions;if(r){var o;switch(t.keyCode){case F.UP:o=(0===a?i.length:a)-1,e.setState({selectedIndex:o});break;case F.DOWN:o=(a+1)%i.length,e.setState({selectedIndex:o});break;case F.ENTER:e.select(i[a]);break;case F.LEFT:case F.RIGHT:case F.ESCAPE:return void e.reset();default:return}t.preventDefault(),t.stopPropagation()}})),e.debouncedLoadOptions=Object(A.debounce)(e.loadOptions,250),e.state=e.constructor.getInitialState(),e}return b()(t,e),s()(t,null,[{key:"getInitialState",value:function(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}}]),s()(t,[{key:"componentWillUnmount",value:function(){this.debouncedLoadOptions.cancel()}},{key:"handleFocusOutside",value:function(){this.reset()}},{key:"loadOptions",value:function(e,t){var n=this,r=e.options,a=this.activePromise=Promise.resolve("function"==typeof r?r(t):r).then((function(t){var r;if(a===n.activePromise){var i=t.map((function(t,n){return{key:"".concat(n),value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}})),o=T(i),c=o.length===n.state.filteredOptions.length?n.state.selectedIndex:0;n.setState((r={},v()(r,"options",i),v()(r,"filteredOptions",o),v()(r,"selectedIndex",c),v()(r,"isOpen",o.length>0),r)),n.announce(o)}}))}},{key:"announce",value:function(e){var t=this.props.debouncedSpeak;t&&(e.length?t(Object(k.sprintf)(Object(k._n)("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(Object(k.__)("No results.","jetpack"),"assertive"))}},{key:"render",value:function(){var e=this,t=this.onChange,n=this.onKeyDown,r=this.props,a=r.children,i=r.instanceId,o=r.completer,c=this.state,s=c.selectedIndex,l=c.filteredOptions,u=(l[s]||{}).key,p=void 0===u?"":u,d=o.className,h=l.length>0,m=h?"components-autocomplete-listbox-".concat(i):null,f=h?"components-autocomplete-item-".concat(i,"-").concat(p):null;return Object(j.createElement)("div",{className:"components-autocomplete"},a({isExpanded:h,listBoxId:m,activeId:f,onChange:t,onKeyDown:n}),h&&Object(j.createElement)(O.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},Object(j.createElement)("div",{id:m,role:"listbox",className:"components-autocomplete__results"},Object(A.map)(l,(function(t,n){return Object(j.createElement)(O.Button,{key:t.key,id:"components-autocomplete-item-".concat(i,"-").concat(t.key),role:"option","aria-selected":n===s,disabled:t.isDisabled,className:S()("components-autocomplete__result",d,{"is-selected":n===s}),onClick:function(){return e.select(t)}},t.label)})))))}}]),t}(j.Component),M=Object(P.compose)([O.withSpokenMessages,P.withInstanceId,O.withFocusOutside])(N),R=Object(k.__)("Add a marker…","jetpack"),D=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"getOptionCompletion",(function(t){var n=t.value,r={placeTitle:n.text,title:n.text,caption:n.place_name,id:n.id,coordinates:{longitude:n.geometry.coordinates[0],latitude:n.geometry.coordinates[1]}};return e.props.onAddPoint(r),n.text})),v()(m()(e),"search",(function(t){var n=e.props,r=n.apiKey,a=n.onError,i="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(t)+".json?access_token="+r;return new Promise((function(e,t){var n=new XMLHttpRequest;n.open("GET",i),n.onload=function(){if(200===n.status){var r=JSON.parse(n.responseText);e(r.features)}else{var i=JSON.parse(n.responseText);a(i.statusText,i.responseJSON.message),t(new Error("Mapbox Places Error"))}},n.send()}))})),v()(m()(e),"onReset",(function(){e.textRef.current.value=null})),e.textRef=Object(j.createRef)(),e.containerRef=Object(j.createRef)(),e.state={isEmpty:!0},e.autocompleter={name:"placeSearch",options:e.search,isDebounced:!0,getOptionLabel:function(e){return Object(j.createElement)("span",null,e.place_name)},getOptionKeywords:function(e){return[e.place_name]},getOptionCompletion:e.getOptionCompletion},e}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this;setTimeout((function(){e.containerRef.current.querySelector("input").focus()}),50)}},{key:"render",value:function(){var e=this,t=this.props.label;return Object(j.createElement)("div",{ref:this.containerRef},Object(j.createElement)(O.BaseControl,{label:t,className:"components-location-search"},Object(j.createElement)(M,{completer:this.autocompleter,onReset:this.onReset},(function(t){var n=t.isExpanded,r=t.listBoxId,a=t.activeId,i=t.onChange,o=t.onKeyDown;return Object(j.createElement)(O.TextControl,{placeholder:R,ref:e.textRef,onChange:i,"aria-expanded":n,"aria-owns":r,"aria-activedescendant":a,onKeyDown:o})}))))}}]),t}(j.Component);D.defaultProps={onError:function(){}};var z=D,I=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.onClose,n=e.onAddPoint,r=e.onError,a=e.apiKey;return Object(j.createElement)(O.Button,{className:"component__add-point"},Object(k.__)("Add marker","jetpack"),Object(j.createElement)(O.Popover,{className:"component__add-point__popover"},Object(j.createElement)(O.Button,{className:"component__add-point__close",onClick:t},Object(j.createElement)(O.Dashicon,{icon:"no"})),Object(j.createElement)(z,{onAddPoint:n,label:Object(k.__)("Add a location","jetpack"),apiKey:a,onError:r})))}}]),t}(j.Component);I.defaultProps={onAddPoint:function(){},onClose:function(){},onError:function(){}};var L=I,B=(n(158),function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onDeletePoint",(function(t){var n=parseInt(t.target.getAttribute("data-id")),r=e.props,a=r.points,i=r.onChange,o=a.slice(0);o.splice(n,1),i(o)})),e.state={selectedCell:null},e}return b()(t,e),s()(t,[{key:"setMarkerField",value:function(e,t,n){var r=this.props,a=r.points,i=r.onChange,o=a.slice(0);o[n][e]=t,i(o)}},{key:"render",value:function(){var e=this,t=this.props.points.map((function(t,n){return Object(j.createElement)(O.PanelBody,{title:t.placeTitle,key:t.id,initialOpen:!1},Object(j.createElement)(O.TextControl,{label:"Marker Title",value:t.title,onChange:function(t){return e.setMarkerField("title",t,n)}}),Object(j.createElement)(O.TextareaControl,{label:"Marker Caption",value:t.caption,rows:"3",onChange:function(t){return e.setMarkerField("caption",t,n)}}),Object(j.createElement)(O.Button,{"data-id":n,onClick:e.onDeletePoint,className:"component__locations__delete-btn"},Object(j.createElement)(O.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))}));return Object(j.createElement)("div",{className:"component__locations"},Object(j.createElement)(O.Panel,{className:"component__locations__panel"},t))}}]),t}(j.Component));B.defaultProps={points:Object.freeze([]),onChange:function(){}};var q=B,U=n(76),V=(n(159),function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.options,n=e.value,r=e.onChange,a=e.label,i=t.map((function(e,t){var a=S()("component__map-theme-picker__button","is-theme-"+e.value,e.value===n?"is-selected":"");return Object(j.createElement)(O.Button,{className:a,title:e.label,key:t,onClick:function(){return r(e.value)}},e.label)}));return Object(j.createElement)("div",{className:"component__map-theme-picker components-base-control"},Object(j.createElement)("label",{className:"components-base-control__label"},a),Object(j.createElement)(O.ButtonGroup,null,i))}}]),t}(j.Component));V.defaultProps={label:"",options:[],value:null,onChange:function(){}};var H=V,G=n(99),$=n.n(G),W=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"addPoint",(function(t){var n=e.props,r=n.attributes,a=n.setAttributes,i=r.points,o=i.slice(0),c=!1;i.map((function(e){e.id===t.id&&(c=!0)})),c||(o.push(t),a({points:o}),e.setState({addPointVisibility:!1}))})),v()(m()(e),"updateAlignment",(function(t){e.props.setAttributes({align:t}),setTimeout(e.mapRef.current.sizeMap,0)})),v()(m()(e),"updateAPIKeyControl",(function(t){e.setState({apiKeyControl:t.target.value})})),v()(m()(e),"updateAPIKey",(function(){var t=e.props.noticeOperations,n=e.state.apiKeyControl;t.removeAllNotices(),n&&e.apiCall(n,"POST")})),v()(m()(e),"removeAPIKey",(function(){e.apiCall(null,"DELETE")})),v()(m()(e),"onError",(function(t,n){var r=e.props.noticeOperations;r.removeAllNotices(),r.createErrorNotice(n)})),e.state={addPointVisibility:!1,apiState:0},e.mapRef=Object(j.createRef)(),e}return b()(t,e),s()(t,[{key:"apiCall",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=this.props.noticeOperations,a="/wpcom/v2/service-api-keys/mapbox",i=t?{path:a,method:n,data:{service_api_key:t}}:{path:a,method:n};this.setState({apiRequestOutstanding:!0},(function(){_()(i).then((function(t){var n=t.service_api_key,a=t.service_api_key_source;r.removeAllNotices();var i=n?2:1,o="wpcom"===a?"":n;e.setState({apiState:i,apiKey:n,apiKeyControl:o,apiKeySource:a,apiRequestOutstanding:!1})}),(function(t){var n=t.message;e.onError(null,n),e.setState({apiState:1,apiRequestOutstanding:!1})}))}))}},{key:"componentDidMount",value:function(){this.apiCall()}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.setAttributes,i=t.attributes,o=t.noticeUI,c=t.notices,s=t.isSelected,l=i.mapStyle,u=i.mapDetails,p=i.points,d=i.zoom,h=i.mapCenter,m=i.markerColor,f=i.align,b=i.preview,g=this.state,v=g.addPointVisibility,y=g.apiKey,_=g.apiKeyControl,E=g.apiKeySource,C=g.apiState,x=g.apiRequestOutstanding,S=Object(j.createElement)(j.Fragment,null,Object(j.createElement)(w.BlockControls,null,Object(j.createElement)(w.BlockAlignmentToolbar,{value:f,onChange:this.updateAlignment,controls:["center","wide","full"]}),Object(j.createElement)(O.Toolbar,null,Object(j.createElement)(O.IconButton,{icon:a.a.markerIcon,label:"Add a marker",onClick:function(){return e.setState({addPointVisibility:!0})}}))),Object(j.createElement)(w.InspectorControls,null,Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Map Theme","jetpack")},Object(j.createElement)(H,{value:l,onChange:function(e){return r({mapStyle:e})},options:a.a.mapStyleOptions}),Object(j.createElement)(O.ToggleControl,{label:Object(k.__)("Show street names","jetpack"),checked:u,onChange:function(e){return r({mapDetails:e})}})),Object(j.createElement)(w.PanelColorSettings,{title:Object(k.__)("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:m,onChange:function(e){return r({markerColor:e})},label:"Marker Color"}]}),p.length?Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Markers","jetpack"),initialOpen:!1},Object(j.createElement)(q,{points:p,onChange:function(e){r({points:e})}})):null,"wpcom"!==E&&Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Mapbox Access Token","jetpack"),initialOpen:!1},Object(j.createElement)(O.TextControl,{label:Object(k.__)("Mapbox Access Token","jetpack"),value:_,onChange:function(t){return e.setState({apiKeyControl:t})}}),Object(j.createElement)(O.ButtonGroup,null,Object(j.createElement)(O.Button,{type:"button",onClick:this.updateAPIKey,isDefault:!0},Object(k.__)("Update Token","jetpack")),Object(j.createElement)(O.Button,{type:"button",onClick:this.removeAPIKey,isDefault:!0},Object(k.__)("Remove Token","jetpack")))))),A=Object(j.createElement)(O.Placeholder,{icon:a.a.icon},Object(j.createElement)(O.Spinner,null)),F=Object(j.createElement)(j.Fragment,null,Object(k.__)("To use the map block, you need an Access Token.","jetpack"),Object(j.createElement)("br",null),Object(j.createElement)(O.ExternalLink,{href:"https://www.mapbox.com"},Object(k.__)("Create an account or log in to Mapbox.","jetpack")),Object(j.createElement)("br",null),Object(k.__)("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),P=Object(j.createElement)(O.Placeholder,{icon:a.a.icon,label:Object(k.__)("Map","jetpack"),notices:c,instructions:F},Object(j.createElement)(j.Fragment,null,Object(j.createElement)("form",null,Object(j.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:x,placeholder:Object(k.__)("Paste Token Here","jetpack"),value:_,onChange:this.updateAPIKeyControl}),Object(j.createElement)(O.Button,{isLarge:!0,isSecondary:!0,disabled:x||!_||_.length<1,onClick:this.updateAPIKey},Object(k.__)("Set Token","jetpack"))))),T=Object(j.createElement)(j.Fragment,null,S,Object(j.createElement)("div",{className:n},Object(j.createElement)(U.a,{ref:this.mapRef,mapStyle:l,mapDetails:u,points:p,zoom:d,mapCenter:h,markerColor:m,onSetZoom:function(e){r({zoom:e})},admin:!0,apiKey:y,onSetPoints:function(e){return r({points:e})},onSetMapCenter:function(e){return r({mapCenter:e})},onMapLoaded:function(){return e.setState({addPointVisibility:!0})},onMarkerClick:function(){return e.setState({addPointVisibility:!1})},onError:this.onError},s&&v&&Object(j.createElement)(L,{onAddPoint:this.addPoint,onClose:function(){return e.setState({addPointVisibility:!1})},apiKey:y,onError:this.onError,tagName:"AddPoint"})))),N=Object(j.createElement)("div",null,Object(j.createElement)("img",{alt:Object(k.__)("Map Preview","jetpack"),src:$.a}));return Object(j.createElement)(j.Fragment,null,o,b&&N,!b&&0===C&&A,!b&&1===C&&P,!b&&2===C&&T)}}]),t}(j.Component),K=Object(O.withNotices)(W),Z=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props.attributes,t=e.align,n=e.mapStyle,r=e.mapDetails,a=e.points,i=e.zoom,o=e.mapCenter,c=e.markerColor,s=a.map((function(e,t){var n=e.coordinates,r=n.longitude,a="https://www.google.com/maps/search/?api=1&query="+n.latitude+","+r;return Object(j.createElement)("li",{key:t},Object(j.createElement)("a",{href:a},e.title))})),l=t?"align".concat(t):null;return Object(j.createElement)("div",{className:l,"data-map-style":n,"data-map-details":r,"data-points":JSON.stringify(a),"data-zoom":i,"data-map-center":JSON.stringify(o),"data-marker-color":c},a.length>0&&Object(j.createElement)("ul",null,s))}}]),t}(j.Component),J=(n(132),n(160),a.a.name),Y={title:a.a.title,icon:a.a.icon,category:a.a.category,keywords:a.a.keywords,description:a.a.description,attributes:a.a.attributes,supports:a.a.supports,getEditWrapperProps:function(e){var t=e.align;if(-1!==a.a.validAlignments.indexOf(t))return{"data-align":t}},edit:K,save:Z,example:a.a.example};Object(r.a)(J,Y)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(15),i=n.n(a),o=n(0),c=n(1),s=n(16),l=n(2),u=n(6),p=(n(149),n(7)),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(41),A=n(20),F=n(32),P=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"],T=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeSubject=n.onChangeSubject.bind(y()(n)),n.onBlurTo=n.onBlurTo.bind(y()(n)),n.onChangeTo=n.onChangeTo.bind(y()(n)),n.onChangeSubmit=n.onChangeSubmit.bind(y()(n)),n.onFormSettingsSet=n.onFormSettingsSet.bind(y()(n)),n.getToValidationError=n.getToValidationError.bind(y()(n)),n.renderToAndSubjectFields=n.renderToAndSubjectFields.bind(y()(n)),n.preventEnterSubmittion=n.preventEnterSubmittion.bind(y()(n)),n.hasEmailError=n.hasEmailError.bind(y()(n));var o=a[0].attributes.to?a[0].attributes.to:"",c=o.split(",").map(n.getToValidationError).filter(Boolean);return n.state={toError:c&&c.length?c:null},n}return k()(t,e),m()(t,[{key:"getEmailHelpMessage",value:function(){return Object(c.__)("You can enter multiple email addresses separated by commas.","jetpack")}},{key:"onChangeSubject",value:function(e){this.props.setAttributes({subject:e})}},{key:"getToValidationError",value:function(e){return 0!==(e=e.trim()).length&&(!C.a.validate(e)&&{email:e})}},{key:"onBlurTo",value:function(e){var t=e.target.value.split(",").map(this.getToValidationError).filter(Boolean);t&&t.length&&this.setState({toError:t})}},{key:"onChangeTo",value:function(e){if(0===e.trim().length)return this.setState({toError:null}),void this.props.setAttributes({to:e});this.setState({toError:null}),this.props.setAttributes({to:e})}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}},{key:"onFormSettingsSet",value:function(e){e.preventDefault(),this.state.toError||this.props.setAttributes({hasFormSettingsSet:"yes"})}},{key:"getfieldEmailError",value:function(e){if(e){if(1===e.length)return e[0]&&e[0].email?Object(c.sprintf)(Object(c.__)("%s is not a valid email address.","jetpack"),e[0].email):e[0];if(2===e.length)return Object(c.sprintf)(Object(c.__)("%s and %s are not a valid email address.","jetpack"),e[0].email,e[1].email);var t=e.map((function(e){return e.email}));return Object(c.sprintf)(Object(c.__)("%s are not a valid email address.","jetpack"),t.join(", "))}return null}},{key:"preventEnterSubmittion",value:function(e){"Enter"===e.key&&(e.preventDefault(),e.stopPropagation())}},{key:"renderToAndSubjectFields",value:function(){var e=this.state.toError,t=this.props,n=t.instanceId,r=t.attributes,a=r.subject,i=r.to;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.TextControl,{"aria-describedby":"contact-form-".concat(n,"-email-").concat(this.hasEmailError()?"error":"help"),label:Object(c.__)("Email address","jetpack"),placeholder:Object(c.__)("name@example.com","jetpack"),onKeyDown:this.preventEnterSubmittion,value:i,onBlur:this.onBlurTo,onChange:this.onChangeTo}),Object(o.createElement)(S.a,{isError:!0,id:"contact-form-".concat(n,"-email-error")},this.getfieldEmailError(e)),Object(o.createElement)(S.a,{id:"contact-form-".concat(n,"-email-help")},this.getEmailHelpMessage()),Object(o.createElement)(l.TextControl,{label:Object(c.__)("Email subject line","jetpack"),value:a,placeholder:Object(c.__)("Let's work together","jetpack"),onChange:this.onChangeSubject}))}},{key:"renderConfirmationMessageFields",value:function(){var e=this,t=this.props.instanceId,n=this.props.attributes,r=n.customThankyou,a=n.customThankyouMessage,i=n.customThankyouRedirect;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.SelectControl,{label:Object(c.__)("On Submission","jetpack"),value:r,options:[{label:Object(c.__)("Show a summary of submitted fields","jetpack"),value:""},{label:Object(c.__)("Show a custom text message","jetpack"),value:"message"},{label:Object(c.__)("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:function(t){return e.props.setAttributes({customThankyou:t})}}),"message"===r&&Object(o.createElement)(l.TextareaControl,{label:Object(c.__)("Message Text","jetpack"),value:a,placeholder:Object(c.__)("Thank you for your submission!","jetpack"),onChange:function(t){return e.props.setAttributes({customThankyouMessage:t})}}),"redirect"===r&&Object(o.createElement)(l.BaseControl,{label:Object(c.__)("Redirect Address","jetpack"),id:"contact-form-".concat(t,"-thankyou-url")},Object(o.createElement)(u.URLInput,{id:"contact-form-".concat(t,"-thankyou-url"),value:i,className:"jetpack-contact-form__thankyou-redirect-url",onChange:function(t){return e.props.setAttributes({customThankyouRedirect:t})}})))}},{key:"hasEmailError",value:function(){var e=this.state.toError;return e&&e.length>0}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.attributes.hasFormSettingsSet,r=w()(t,"jetpack-contact-form",{"has-intro":!n});return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Email Feedback Settings","jetpack")},this.renderToAndSubjectFields()),Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Confirmation Message","jetpack")},this.renderConfirmationMessageFields())),Object(o.createElement)("div",{className:r},!n&&Object(o.createElement)(l.Placeholder,{label:Object(c.__)("Form","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),instructions:Object(c.__)("You’ll receive an email notification each time someone fills out the form. Where should it go, and what should the subject line be?","jetpack")},Object(o.createElement)("form",{onSubmit:this.onFormSettingsSet},this.renderToAndSubjectFields(),Object(o.createElement)("div",{class:"components-placeholder__instructions"},Object(c.__)("(If you leave these blank, notifications will go to the author with the post or page title as the subject line.)","jetpack")),Object(o.createElement)("div",{className:"jetpack-contact-form__create"},Object(o.createElement)(l.Button,{isDefault:!0,type:"submit",disabled:this.hasEmailError()},Object(c.__)("Add form","jetpack"))))),n&&Object(o.createElement)(u.InnerBlocks,{allowedBlocks:P,templateLock:!1,template:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-url",{}],["jetpack/field-textarea",{}]]}),n&&Object(o.createElement)(F.a,this.props)))}}]),t}(o.Component),N=Object(x.compose)([x.withInstanceId])(T),M=function(e){var t=e.setAttributes,n=e.label,r=e.resetFocus,a=e.isSelected,i=e.required;return Object(o.createElement)("div",{className:"jetpack-field-label"},Object(o.createElement)(u.PlainText,{value:n,className:"jetpack-field-label__input",onChange:function(e){r&&r(),t({label:e})},placeholder:Object(c.__)("Write label…","jetpack")}),a&&Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Required","jetpack"),className:"jetpack-field-label__required",checked:i,onChange:function(e){return t({required:e})}}),!a&&i&&Object(o.createElement)("span",{className:"required"},Object(c.__)("(required)","jetpack")))};var R=function(e){var t=e.isSelected,n=e.type,r=e.required,a=e.label,i=e.setAttributes,s=e.defaultValue,p=e.placeholder,d=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:w()("jetpack-field",{"is-selected":t})},Object(o.createElement)(l.TextControl,{type:n,label:Object(o.createElement)(M,{required:r,label:a,setAttributes:i,isSelected:t}),placeholder:p,value:p,onChange:function(e){return i({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:s,onChange:function(e){return i({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return i({id:e})}}))))};var D=function(e){var t=e.required,n=e.label,r=e.setAttributes,a=e.isSelected,i=e.defaultValue,s=e.placeholder,p=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:"jetpack-field"},Object(o.createElement)(l.TextareaControl,{label:Object(o.createElement)(M,{required:t,label:n,setAttributes:r,isSelected:a}),placeholder:s,value:s,onChange:function(e){return r({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:i,onChange:function(e){return r({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return r({id:e})}}))))},z=Object(x.withInstanceId)((function(e){var t=e.instanceId,n=e.required,r=e.label,a=e.setAttributes,i=e.isSelected,s=e.defaultValue,p=e.id;return Object(o.createElement)(l.BaseControl,{id:"jetpack-field-checkbox-".concat(t),className:"jetpack-field jetpack-field-checkbox",label:Object(o.createElement)(o.Fragment,null,Object(o.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:s}),Object(o.createElement)(M,{required:n,label:r,setAttributes:a,isSelected:i}),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Default Checked State","jetpack"),checked:s,onChange:function(e){return a({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return a({id:e})}}))))})})),I=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.onKeyPress=n.onKeyPress.bind(y()(n)),n.onDeleteOption=n.onDeleteOption.bind(y()(n)),n.textInput=Object(o.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"componentDidUpdate",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"onChangeOption",value:function(e){this.props.onChangeOption(this.props.index,e.target.value)}},{key:"onKeyPress",value:function(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}},{key:"onDeleteOption",value:function(){this.props.onChangeOption(this.props.index)}},{key:"render",value:function(){var e=this.props,t=e.isSelected,n=e.option,r=e.type;return Object(o.createElement)("li",{className:"jetpack-option"},r&&"select"!==r&&Object(o.createElement)("input",{className:"jetpack-option__type",type:r,disabled:!0}),Object(o.createElement)("input",{type:"text",className:"jetpack-option__input",value:n,placeholder:Object(c.__)("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),t&&Object(o.createElement)(l.IconButton,{className:"jetpack-option__remove",icon:"trash",label:Object(c.__)("Remove option","jetpack"),onClick:this.onDeleteOption}))}}]),t}(o.Component),L=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.addNewOption=n.addNewOption.bind(y()(n)),n.state={inFocus:null},n}return k()(t,e),m()(t,[{key:"onChangeOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.props.options.slice(0);null===t?(n.splice(e,1),e>0&&this.setState({inFocus:e-1})):(n.splice(e,1,t),this.setState({inFocus:e})),this.props.setAttributes({options:n})}},{key:"addNewOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.props.options.slice(0),n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),this.setState({inFocus:n}),this.props.setAttributes({options:t})}},{key:"render",value:function(){var e=this,t=this.props,n=t.type,r=t.instanceId,a=t.required,i=t.label,s=t.setAttributes,p=t.isSelected,d=t.id,h=this.props.options,m=this.state.inFocus;return h.length||(h=[""],m=0),Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.BaseControl,{id:"jetpack-field-multiple-".concat(r),className:"jetpack-field jetpack-field-multiple",label:Object(o.createElement)(M,{required:a,label:i,setAttributes:s,isSelected:p,resetFocus:function(){return e.setState({inFocus:null})}})},Object(o.createElement)("ol",{className:"jetpack-field-multiple__list",id:"jetpack-field-multiple-".concat(r)},h.map((function(t,r){return Object(o.createElement)(I,{type:n,key:r,option:t,index:r,onChangeOption:e.onChangeOption,onAddOption:e.addNewOption,isInFocus:r===m&&p,isSelected:p})}))),p&&Object(o.createElement)(l.IconButton,{className:"jetpack-field-multiple__add-option",icon:"insert",label:Object(c.__)("Insert option","jetpack"),onClick:this.addNewOption},Object(c.__)("Add option","jetpack"))),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return s({id:e})}}))))}}]),t}(o.Component),B=Object(x.withInstanceId)(L),q={title:Object(c.__)("Form","jetpack"),description:Object(c.__)("A simple way to get feedback from folks visiting your site.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),keywords:[Object(c._x)("email","block search term","jetpack"),Object(c._x)("feedback","block search term","jetpack"),Object(c._x)("contact form","block search term","jetpack")],category:"jetpack",supports:{html:!1},attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submitButtonText:{type:"string",default:Object(c.__)("Submit","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},hasFormSettingsSet:{type:"string",default:null},customThankyou:{type:"string",default:""},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},has_form_settings_set:{type:"string",default:null},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")}},edit:N,save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)},example:{attributes:{hasFormSettingsSet:!0,submitButtonText:Object(c.__)("Submit","jetpack")},innerBlocks:[{name:"jetpack/field-name",attributes:{label:Object(c.__)("Name","jetpack"),required:!0}},{name:"jetpack/field-email",attributes:{label:Object(c.__)("Email","jetpack"),required:!0}},{name:"jetpack/field-url",attributes:{label:Object(c.__)("Website","jetpack")}},{name:"jetpack/field-textarea",attributes:{label:Object(c.__)("Message","jetpack")}}]},deprecated:[{attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")},has_form_settings_set:{type:"string",default:null}},migrate:function(e){return{submitButtonText:e.submit_button_text,hasFormSettingsSet:e.has_form_settings_set,to:e.to,subject:e.subject}},isEligible:function(e){return!!(e.has_form_settings_set||e.submit_button_text&&"Submit"!==e.submit_button_text)},save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)}}]},U={category:"jetpack",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-text",e)}},{type:"block",blocks:["jetpack/field-name"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-name",e)}},{type:"block",blocks:["jetpack/field-email"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-email",e)}},{type:"block",blocks:["jetpack/field-url"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-url",e)}},{type:"block",blocks:["jetpack/field-date"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-date",e)}},{type:"block",blocks:["jetpack/field-telephone"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-telephone",e)}},{type:"block",blocks:["jetpack/field-textarea"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-textarea",e)}},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-checkbox-multiple",e)}},{type:"block",blocks:["jetpack/field-radio"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-radio",e)}},{type:"block",blocks:["jetpack/field-select"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-select",e)}}]},save:function(){return null}},V=function(e){var t=e.attributes,n=e.name;return null===t.label?Object(s.getBlockType)(n).title:t.label},H=function(e){return function(t){return Object(o.createElement)(R,{type:e,label:V(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id})}},G=function(e){return function(t){return Object(o.createElement)(B,{label:V(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id})}},$=[{name:"field-text",settings:i()({},U,{title:Object(c.__)("Text","jetpack"),description:Object(c.__)("When you need just a small amount of text, add a text input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:H("text")})},{name:"field-name",settings:i()({},U,{title:Object(c.__)("Name","jetpack"),description:Object(c.__)("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:H("text")})},{name:"field-email",settings:i()({},U,{title:Object(c.__)("Email","jetpack"),keywords:[Object(c.__)("e-mail","jetpack"),Object(c.__)("mail","jetpack"),"email"],description:Object(c.__)("Want to reply to folks? Add an email address input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:H("email")})},{name:"field-url",settings:i()({},U,{title:Object(c.__)("Website","jetpack"),keywords:["url",Object(c.__)("internet page","jetpack"),"link"],description:Object(c.__)("Add an address input for a website.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:H("url")})},{name:"field-date",settings:i()({},U,{title:Object(c.__)("Date Picker","jetpack"),keywords:[Object(c.__)("Calendar","jetpack"),Object(c.__)("day month year","block search term","jetpack")],description:Object(c.__)("The best way to set a date. Add a date picker.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:H("text")})},{name:"field-telephone",settings:i()({},U,{title:Object(c.__)("Telephone","jetpack"),keywords:[Object(c.__)("Phone","jetpack"),Object(c.__)("Cellular phone","jetpack"),Object(c.__)("Mobile","jetpack")],description:Object(c.__)("Add a phone number input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:H("tel")})},{name:"field-textarea",settings:i()({},U,{title:Object(c.__)("Message","jetpack"),keywords:[Object(c.__)("Textarea","jetpack"),"textarea",Object(c.__)("Multiline text","jetpack")],description:Object(c.__)("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:function(e){return Object(o.createElement)(D,{label:V(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id})}})},{name:"field-checkbox",settings:i()({},U,{title:Object(c.__)("Checkbox","jetpack"),keywords:[Object(c.__)("Confirm","jetpack"),Object(c.__)("Accept","jetpack")],description:Object(c.__)("Add a single checkbox.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:function(e){return Object(o.createElement)(z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id})},attributes:i()({},U.attributes,{label:{type:"string",default:""}})})},{name:"field-checkbox-multiple",settings:i()({},U,{title:Object(c.__)("Checkbox Group","jetpack"),keywords:[Object(c.__)("Choose Multiple","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("People love options. Add several checkbox items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:G("checkbox"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose several"}})})},{name:"field-radio",settings:i()({},U,{title:Object(c.__)("Radio","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Select","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.Path,{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),Object(o.createElement)(l.Circle,{cx:"12",cy:"12",r:"5"}))),edit:G("radio"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose one"}})})},{name:"field-select",settings:i()({},U,{title:Object(c.__)("Select","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Dropdown","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Compact, but powerful. Add a select box with several items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:G("select"),attributes:i()({},U.attributes,{label:{type:"string",default:"Select one"}})})}];Object(r.a)("contact-form",q,$)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=["USD","EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"],s=n(24),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(13),A=n(5),F=n(45),P=n(41),T=(n(230),n(106)),N=n.n(T),M=n(107),R=n.n(M),D=function(e){var t=e.title,n=void 0===t?"":t,r=e.content,o=void 0===r?"":r,c=e.formattedPrice,s=void 0===c?"":c,l=e.multiple,u=void 0!==l&&l,p=e.featuredMediaUrl,d=void 0===p?null:p,h=e.featuredMediaTitle,m=void 0===h?null:h;return Object(a.createElement)("div",{className:"jetpack-simple-payments-wrapper"},Object(a.createElement)("div",{className:"jetpack-simple-payments-product"},d&&Object(a.createElement)("div",{className:"jetpack-simple-payments-product-image"},Object(a.createElement)("figure",{className:"jetpack-simple-payments-image"},Object(a.createElement)("img",{src:d,alt:m}))),Object(a.createElement)("div",{className:"jetpack-simple-payments-details"},n&&Object(a.createElement)("div",{className:"jetpack-simple-payments-title"},Object(a.createElement)("p",null,n)),o&&Object(a.createElement)("div",{className:"jetpack-simple-payments-description"},Object(a.createElement)("p",null,o)),s&&Object(a.createElement)("div",{className:"jetpack-simple-payments-price"},Object(a.createElement)("p",null,s)),Object(a.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},u&&Object(a.createElement)("div",{className:"jetpack-simple-payments-items"},Object(a.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),Object(a.createElement)("div",{className:"jetpack-simple-payments-button"},Object(a.createElement)("img",{alt:Object(i.__)("Pay with PayPal","jetpack"),src:N.a,srcSet:"".concat(R.a," 2x")}))))))},z=n(6),I=n(48),L=function(e){return function(t){return e({featuredMediaId:Object(A.get)(t,"id",0),featuredMediaUrl:Object(A.get)(t,"url",null),featuredMediaTitle:Object(A.get)(t,"title",null)})}},B=function(e){var t=e.featuredMediaId,n=e.featuredMediaUrl,r=e.featuredMediaTitle,c=e.setAttributes;return t?Object(a.createElement)("div",null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(z.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(z.MediaUpload,{onSelect:L(c),allowedTypes:["image"],value:t,render:function(e){var t=e.open;return Object(a.createElement)(I.a,{label:Object(i.__)("Edit Image","jetpack"),onClick:t})}}),Object(a.createElement)(o.ToolbarButton,{icon:"trash",title:Object(i.__)("Remove Image","jetpack"),onClick:function(){return c({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}}))),Object(a.createElement)("figure",null,Object(a.createElement)("img",{src:n,alt:r})))):Object(a.createElement)(z.MediaPlaceholder,{icon:"format-image",labels:{title:Object(i.__)("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:L(c)})},q=function(e){var t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},U=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Object(F.a)(t),a=r.precision,i=r.symbol,o=e.toFixed(a);return n?"".concat(o," ").concat(Object(A.trimEnd)(i,".")):o},V=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),k()(v()(n),"shouldInjectPaymentAttributes",!!n.props.attributes.productId),k()(v()(n),"validateAttributes",(function(){var e=n.validatePrice(),t=n.validateTitle(),r=n.validateEmail(),a=n.validateCurrency();return e&&t&&r&&a})),k()(v()(n),"validateCurrency",(function(){var e=n.props.attributes.currency;return c.includes(e)})),k()(v()(n),"validatePrice",(function(){var e=n.props.attributes,t=e.currency,r=e.price,a=Object(F.a)(t).precision;return r&&0!==parseFloat(r)?Number.isNaN(parseFloat(r))?(n.setState({fieldPriceError:Object(i.__)("Invalid price","jetpack")}),!1):parseFloat(r)<0?(n.setState({fieldPriceError:Object(i.__)("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):q(r)>a?0===a?(n.setState({fieldPriceError:Object(i.__)("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(n.setState({fieldPriceError:Object(i.sprintf)(Object(i._n)("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",a,"jetpack"),a)}),!1):(n.state.fieldPriceError&&n.setState({fieldPriceError:null}),!0):(n.setState({fieldPriceError:Object(i.__)("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),k()(v()(n),"validateEmail",(function(){var e=n.props.attributes.email;return e?C.a.validate(e)?(n.state.fieldEmailError&&n.setState({fieldEmailError:null}),!0):(n.setState({fieldEmailError:Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),e)}),!1):(n.setState({fieldEmailError:Object(i.__)("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),k()(v()(n),"validateTitle",(function(){return n.props.attributes.title?(n.state.fieldTitleError&&n.setState({fieldTitleError:null}),!0):(n.setState({fieldTitleError:Object(i.__)("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),k()(v()(n),"handleEmailChange",(function(e){n.props.setAttributes({email:e}),n.setState({fieldEmailError:null})})),k()(v()(n),"handleFeaturedMediaSelect",(function(e){n.props.setAttributes({featuredMediaId:Object(A.get)(e,"id",0)})})),k()(v()(n),"handleContentChange",(function(e){n.props.setAttributes({content:e})})),k()(v()(n),"handlePriceChange",(function(e){e=parseFloat(e),isNaN(e)?n.props.setAttributes({price:void 0}):n.props.setAttributes({price:e}),n.setState({fieldPriceError:null})})),k()(v()(n),"handleCurrencyChange",(function(e){n.props.setAttributes({currency:e})})),k()(v()(n),"handleMultipleChange",(function(e){n.props.setAttributes({multiple:!!e})})),k()(v()(n),"handleTitleChange",(function(e){n.props.setAttributes({title:e}),n.setState({fieldTitleError:null})})),k()(v()(n),"getCurrencyList",c.map((function(e){var t=Object(F.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(A.trimEnd)(t,"."))}}))),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.injectPaymentAttributes();var e=this.props,t=e.attributes,n=e.hasPublishAction;!t.productId&&n&&this.saveProduct()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.hasPublishAction,r=t.isSelected;Object(A.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&n&&this.validateAttributes()?this.saveProduct():e.isSelected&&!r&&this.validateAttributes()}},{key:"injectPaymentAttributes",value:function(){var e=this.props.simplePayment;if(this.shouldInjectPaymentAttributes&&!Object(A.isEmpty)(e)){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.content,i=n.currency,o=n.email,c=n.featuredMediaId,s=n.multiple,l=n.price,u=n.title;r({content:Object(A.get)(e,["content","raw"],a),currency:Object(A.get)(e,["meta","spay_currency"],i),email:Object(A.get)(e,["meta","spay_email"],o),featuredMediaId:Object(A.get)(e,["featured_media"],c),multiple:Boolean(Object(A.get)(e,["meta","spay_multiple"],Boolean(s))),price:Object(A.get)(e,["meta","spay_price"],l||void 0),title:Object(A.get)(e,["title","raw"],u)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}}},{key:"toApi",value:function(){var e=this.props.attributes,t=e.content,n=e.currency,r=e.email,a=e.featuredMediaId,i=e.multiple,o=e.price,c=e.productId;return{id:c,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:i,spay_price:o},status:c?"publish":"draft",title:e.title}}},{key:"saveProduct",value:function(){var e=this;if(!this.state.isSavingProduct){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.email,o=Object(S.dispatch)("core").saveEntityRecord;this.setState({isSavingProduct:!0},(function(){o("postType","jp_pay_product",e.toApi()).then((function(e){return e&&r({productId:e.id}),e})).catch((function(t){if(t&&t.data){var n=t.data.key;e.setState({fieldEmailError:"spay_email"===n?Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),a):null,fieldPriceError:"spay_price"===n?Object(i.__)("Invalid price.","jetpack"):null})}})).finally((function(){e.setState({isSavingProduct:!1})}))}))}}},{key:"render",value:function(){var e=this.state,t=e.fieldEmailError,n=e.fieldPriceError,r=e.fieldTitleError,c=this.props,s=c.attributes,l=c.featuredMedia,u=c.instanceId,p=c.isSelected,d=c.setAttributes,h=c.simplePayment,m=s.content,f=s.currency,b=s.email,g=s.featuredMediaId,v=s.featuredMediaUrl,j=s.featuredMediaTitle,y=s.multiple,_=s.price,k=s.productId,O=s.title,E=v||l&&l.source_url,C=j||l&&l.alt_text,x=k&&Object(A.isEmpty)(h);if(!p&&x)return Object(a.createElement)("div",{className:"simple-payments__loading"},Object(a.createElement)(D,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!p&&b&&_&&O&&!t&&!n&&!r)return Object(a.createElement)(D,{"aria-busy":"false",content:m,featuredMediaUrl:E,featuredMediaTitle:C,formattedPrice:U(_,f),multiple:y,title:O});var S=x?o.Disabled:"div";return Object(a.createElement)(S,{className:"wp-block-jetpack-simple-payments"},Object(a.createElement)(B,{featuredMediaId:g,featuredMediaUrl:E,featuredMediaTitle:C,setAttributes:d}),Object(a.createElement)("div",null,Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-title-error"),className:w()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":r}),label:Object(i.__)("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:Object(i.__)("Item name","jetpack"),required:!0,type:"text",value:O}),Object(a.createElement)(P.a,{id:"".concat(u,"-title-error"),isError:!0},r),Object(a.createElement)(o.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:Object(i.__)("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:Object(i.__)("Describe your item in a few words","jetpack"),value:m}),Object(a.createElement)("div",{className:"simple-payments__price-container"},Object(a.createElement)(o.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:Object(i.__)("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:f}),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-price-error"),className:w()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":n}),label:Object(i.__)("Price","jetpack"),onChange:this.handlePriceChange,placeholder:U(0,f,!1),required:!0,step:"1",type:"number",value:_||""}),Object(a.createElement)(P.a,{id:"".concat(u,"-price-error"),isError:!0},n)),Object(a.createElement)("div",{className:"simple-payments__field-multiple"},Object(a.createElement)(o.ToggleControl,{checked:Boolean(y),label:Object(i.__)("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-email-").concat(t?"error":"help"),className:w()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":t}),label:Object(i.__)("Email","jetpack"),onChange:this.handleEmailChange,placeholder:Object(i.__)("Email","jetpack"),required:!0,type:"email",value:b}),Object(a.createElement)(P.a,{id:"".concat(u,"-email-error"),isError:!0},t),Object(a.createElement)(P.a,{id:"".concat(u,"-email-help")},Object(i.__)("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",Object(a.createElement)(o.ExternalLink,{href:"https://www.paypal.com/"},Object(i.__)("Create one on PayPal","jetpack")))))}}]),t}(a.Component),H=Object(S.withSelect)((function(e,t){var n=e("core"),r=n.getEntityRecord,a=n.getMedia,i=e("core/editor"),o=i.isSavingPost,c=i.getCurrentPost,s=t.attributes,l=s.productId,u=s.featuredMediaId,p=l?Object(A.pick)(r("postType","jp_pay_product",l),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0;return{hasPublishAction:!!Object(A.get)(c(),["_links","wp:action-publish"]),isSaving:!!o(),simplePayment:p,featuredMedia:u?a(u):null}})),G=Object(x.compose)(H,x.withInstanceId)(V);var $=n(108),W=n.n($),K=(n(231),Object(s.b)()||Object(s.a)()?"https://support.wordpress.com/simple-payments/":"https://jetpack.com/support/jetpack-blocks/simple-payments-block/"),Z={title:Object(i.__)("Simple Payments button","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),Object(a.createElement)("p",null,Object(i.__)("Good for collecting donations or payments for products and services.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:K},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),category:"jetpack",keywords:[Object(i._x)("shop","block search term","jetpack"),Object(i._x)("sell","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:function(e){var t=e.named.id;if(t){var n=parseInt(t,10);return n||void 0}}}}}]},edit:G,save:function(e){var t=e.attributes.productId;return t?Object(a.createElement)(a.RawHTML,null,'[simple-payment id="'.concat(t,'"]')):null},example:{attributes:{price:25,title:Object(i.__)("Jetpack t-shirt","jetpack"),content:Object(i.__)("Take flight in ultimate comfort with ths stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:W.a}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};Object(r.a)("simple-payments",Z)},function(e,t,n){"use strict";n.r(t);var r=n(21),a=n.n(r),i=n(18),o=n.n(i),c=n(15),s=n.n(c),l=n(25),u=n(16),p=n(28),d=n(55),h=n(5),m=n(7),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=n(3),x=n.n(C),S=n(0),A=n(23),F=n.n(A),P=n(2),T=n(14),N=n(13),M=n(6),R=n(1),D=n(12),z=n.n(D),I=function(e){var t=e.text;return Object(S.createElement)("div",{className:"wp-block-embed is-loading"},Object(S.createElement)(P.Spinner,null),Object(S.createElement)("p",null,t))},L=n(31),B=function(e,t){var n=t.autoplay,r=t.controls,a=t.loop,i=t.muted,o=t.poster,c=t.preload;if(!e)return null;var l=s()({},n&&{autoPlay:!0},{},!r&&{controls:!1},{},a&&{loop:!0},{},i&&{muted:!0,persistVolume:!1},{},o&&{posterUrl:o},{},"none"!==c&&{preloadContent:c});return Object(L.addQueryArgs)("https://videopress.com/v/".concat(e),l)},q=["image"],U=Object(T.createHigherOrderComponent)(Object(T.compose)([Object(N.withSelect)((function(e,t){var n=t.attributes,r=n.autoplay,a=n.controls,i=n.guid,o=n.loop,c=n.muted,s=n.poster,u=n.preload,p=n.src,d=e("core"),h=d.getEmbedPreview,m=d.isRequestingEmbedPreview,f=B(i,{autoplay:r,controls:a,loop:o,muted:c,poster:s,preload:u}),b=!!f&&h(f);return{isFetchingPreview:!!f&&m(f),isUploading:Object(l.isBlobURL)(p),preview:b,url:f}})),Object(N.withDispatch)((function(e){return{invalidateCachedEmbedPreview:function(t){e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}})),T.withInstanceId,function(e){return function(t){function n(){var e;return f()(this,n),e=j()(this,_()(n).apply(this,arguments)),x()(O()(e),"fallbackToCore",(function(){e.props.setAttributes({guid:void 0}),e.setState({fallback:!0})})),x()(O()(e),"setGuid",(function(){var t,n,r,a,i,o,c;return regeneratorRuntime.async((function(s){for(;;)switch(s.prev=s.next){case 0:if(t=e.props,n=t.attributes,r=t.setAttributes,a=n.id){s.next=5;break}return r({guid:void 0}),s.abrupt("return");case 5:return s.prev=5,e.setState({isFetchingMedia:!0}),s.next=9,regeneratorRuntime.awrap(F()({path:"/wp/v2/media/".concat(a)}));case 9:if(i=s.sent,e.setState({isFetchingMedia:!1}),o=e.props.attributes.id,a===o){s.next=14;break}return s.abrupt("return");case 14:e.setState({media:i}),(c=Object(h.get)(i,"jetpack_videopress_guid"))?r({guid:c}):e.fallbackToCore(),s.next=23;break;case 19:s.prev=19,s.t0=s.catch(5),e.setState({isFetchingMedia:!1}),e.fallbackToCore();case 23:case"end":return s.stop()}}),null,null,[[5,19]])})),x()(O()(e),"switchToEditing",(function(){e.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),x()(O()(e),"onSelectPoster",(function(t){(0,e.props.setAttributes)({poster:t.url})})),x()(O()(e),"onRemovePoster",(function(){(0,e.props.setAttributes)({poster:""}),e.posterImageButton.current.focus()})),x()(O()(e),"toggleAttribute",(function(t){return function(n){e.props.setAttributes(x()({},t,n))}})),x()(O()(e),"getAutoplayHelp",(function(e){return e?Object(R.__)("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null})),e.state={media:null,isFetchingMedia:!1,fallback:!1},e.posterImageButton=Object(S.createRef)(),e}return E()(n,t),g()(n,[{key:"componentDidMount",value:function(){this.props.attributes.guid||this.setGuid()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.attributes,r=t.invalidateCachedEmbedPreview,a=t.url;n.id!==e.attributes.id&&this.setGuid(),a&&a!==e.url&&r(a)}},{key:"render",value:function(){var t=this,n=this.props,r=n.attributes,a=n.className,i=n.instanceId,o=n.isFetchingPreview,c=n.isSelected,s=n.isUploading,l=n.preview,u=n.setAttributes,p=this.state,d=p.fallback,h=p.isFetchingMedia,m=r.autoplay,f=r.caption,b=r.controls,g=r.loop,v=r.muted,j=r.poster,y=r.preload,_="video-block__poster-image-description-".concat(i),k=Object(S.createElement)(S.Fragment,null,Object(S.createElement)(M.BlockControls,null,Object(S.createElement)(P.Toolbar,null,Object(S.createElement)(P.IconButton,{className:"components-icon-button components-toolbar__control",label:Object(R.__)("Edit video","jetpack"),onClick:this.switchToEditing,icon:"edit"}))),Object(S.createElement)(M.InspectorControls,null,Object(S.createElement)(P.PanelBody,{title:Object(R.__)("Video Settings","jetpack")},Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Autoplay","jetpack"),onChange:this.toggleAttribute("autoplay"),checked:m,help:this.getAutoplayHelp}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Loop","jetpack"),onChange:this.toggleAttribute("loop"),checked:g}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:v}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Playback Controls","jetpack"),onChange:this.toggleAttribute("controls"),checked:b}),Object(S.createElement)(P.SelectControl,{label:Object(R.__)("Preload","jetpack"),value:y,onChange:function(e){return u({preload:e})},options:[{value:"auto",label:Object(R._x)("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:Object(R._x)("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:Object(R._x)("None","VideoPress preload setting","jetpack")}]}),Object(S.createElement)(M.MediaUploadCheck,null,Object(S.createElement)(P.BaseControl,{className:"editor-video-poster-control",label:Object(R.__)("Poster Image","jetpack")},Object(S.createElement)(M.MediaUpload,{title:Object(R.__)("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:q,render:function(e){var n=e.open;return Object(S.createElement)(P.Button,{isDefault:!0,onClick:n,ref:t.posterImageButton,"aria-describedby":_},j?Object(R.__)("Replace image","jetpack"):Object(R.__)("Select Poster Image","jetpack"))}}),Object(S.createElement)("p",{id:_,hidden:!0},j?Object(R.sprintf)(Object(R.__)("The current poster image url is %s","jetpack"),j):Object(R.__)("There is no poster image currently selected","jetpack")),!!j&&Object(S.createElement)(P.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},Object(R.__)("Remove Poster Image")))))));if(s)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Uploading…","jetpack")}));if(h||o)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Generating preview…","jetpack")}));if(d||!l)return Object(S.createElement)(e,this.props);var O=l.html,w=l.scripts;return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)("figure",{className:z()(a,"wp-block-embed","is-type-video")},Object(S.createElement)(P.Disabled,null,Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},Object(S.createElement)(P.SandBox,{html:O,scripts:w}))),(!M.RichText.isEmpty(f)||c)&&Object(S.createElement)(M.RichText,{tagName:"figcaption",placeholder:Object(R.__)("Write caption…","jetpack"),value:f,onChange:function(e){return u({caption:e})},inlineToolbar:!0})))}}]),n}(S.Component)}]),"withVideoPressEdit"),V=Object(T.createHigherOrderComponent)((function(e){return function(t){var n=t.attributes,r=(n=void 0===n?{}:n).autoplay,a=n.caption,i=n.controls,o=n.guid,c=n.loop,s=n.muted,l=n.poster,u=n.preload;if(!o)return e(t);var p=B(o,{autoplay:r,controls:i,loop:c,muted:s,poster:l,preload:u});return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(p,"\n")),!M.RichText.isEmpty(a)&&Object(S.createElement)(M.RichText.Content,{tagName:"figcaption",value:a}))}}),"withVideoPressSave"),H=n(40);var G={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:function(e){var t=e.attributes,n=t.caption,r=t.guid;if(!r)return null;var a="https://videopress.com/v/".concat(r);return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(a,"\n")),!M.RichText.isEmpty(n)&&Object(S.createElement)(M.RichText.Content,{tagName:"figcaption",value:n}))},isDeprecation:!0};Object(d.addFilter)("blocks.registerBlockType","jetpack/videopress",(function(e,t){if("core/video"!==t||e.isDeprecation)return e;var n=e.attributes,r=e.deprecated,i=e.edit,c=e.save,d=e.supports,m=e.transforms,f=Object(H.a)("videopress"),b=f.available,g=f.unavailableReason;return b||["missing_plan","missing_module"].includes(g)?s()({},e,{attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},transforms:s()({},m,{from:[{type:"files",isMatch:function(e){return Object(h.every)(e,(function(e){return 0===e.type.indexOf("video/")}))},priority:9,transform:function(e,t){var n=[];return e.forEach((function(e){var r=Object(u.createBlock)("core/video",{src:Object(l.createBlobURL)(e)});Object(p.mediaUpload)({filesList:[e],onFileChange:function(e){var n=o()(e,1)[0],a=n.id,i=n.url;t(r.clientId,{id:a,src:i})},allowedTypes:["video"]}),n.push(r)})),n}}]}),supports:s()({},d,{reusable:!1}),edit:U(i),save:V(c),deprecated:[].concat(a()(r||[]),[{attributes:n,isEligible:function(e){return!e.guid},save:c,supports:d,isDeprecation:!0},G])}):e}))},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(15),s=n.n(c),l=n(21),u=n.n(l),p=n(7),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(3),w=n.n(O),E=n(14),C=n(5),x=n(25),S=n(13),A=n(6),F=n(28),P=n(48),T=function(e){var t=e.allowedMediaTypes,n=e.attributes,r=n.autoplay,c=n.delay,s=n.effect,l=n.images,u=n.sizeSlug,p=e.imageSizeOptions,d=e.onChangeImageSize,h=e.onSelectImages,m=e.setAttributes,f="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,b=[{label:Object(i._x)("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:Object(i._x)("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(A.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Autoplay","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Autoplay","jetpack"),help:Object(i.__)("Autoplay between slides","jetpack"),checked:r,onChange:function(e){m({autoplay:e})}}),r&&Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Delay between transitions (in seconds)","jetpack"),value:c,onChange:function(e){m({delay:e})},min:1,max:5}),r&&f&&Object(a.createElement)("span",null,Object(i.__)("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Effects","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Transition effect","jetpack"),value:s,onChange:function(e){m({effect:e})},options:b})),!Object(C.isEmpty)(l)&&!Object(C.isEmpty)(p)&&Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Image Settings","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Image Size","jetpack"),value:u,options:p,onChange:d}))),Object(a.createElement)(A.BlockControls,null,!!l.length&&Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(A.MediaUpload,{onSelect:h,allowedTypes:t,multiple:!0,gallery:!0,value:l.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(a.createElement)(P.a,{label:Object(i.__)("Edit Slideshow","jetpack"),onClick:t})}}))))},N=n(12),M=n.n(N),R=n(39),D=n(73),z=n(38),I=function(e){function t(e){var n;return d()(this,t),n=b()(this,v()(t).call(this,e)),w()(y()(n),"pendingRequestAnimationFrame",null),w()(y()(n),"resizeObserver",null),w()(y()(n),"initializeResizeObserver",(function(e){n.clearResizeObserver(),n.resizeObserver=new R.a((function(){n.clearPendingRequestAnimationFrame(),n.pendingRequestAnimationFrame=requestAnimationFrame((function(){Object(z.d)(e),e.update()}))})),n.resizeObserver.observe(e.el)})),w()(y()(n),"clearPendingRequestAnimationFrame",(function(){n.pendingRequestAnimationFrame&&(cancelAnimationFrame(n.pendingRequestAnimationFrame),n.pendingRequestAnimationFrame=null)})),w()(y()(n),"clearResizeObserver",(function(){n.resizeObserver&&(n.resizeObserver.disconnect(),n.resizeObserver=null)})),w()(y()(n),"prefersReducedMotion",(function(){return"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches})),w()(y()(n),"buildSwiper",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(Object(D.a)(n.slideshowRef.current,{autoplay:!(!n.props.autoplay||n.prefersReducedMotion())&&{delay:1e3*n.props.delay,disableOnInteraction:!1},effect:n.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:n.btnNextRef.current,prevEl:n.btnPrevRef.current},pagination:{clickable:!0,el:n.paginationRef.current,type:"bullets"}},{init:z.b,imagesReady:z.d,paginationRender:z.c,transitionEnd:z.a}))})),n.slideshowRef=Object(a.createRef)(),n.btnNextRef=Object(a.createRef)(),n.btnPrevRef=Object(a.createRef)(),n.paginationRef=Object(a.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.onError;this.buildSwiper().then((function(t){e.swiperInstance=t,e.initializeResizeObserver(t)})).catch((function(){t(Object(i.__)("The Swiper library could not be loaded.","jetpack"))}))}},{key:"componentWillUnmount",value:function(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}},{key:"componentDidUpdate",value:function(e){var t,n=this,r=this.props,a=r.align,o=r.autoplay,c=r.delay,s=r.effect,l=r.images,u=r.onError;(a===e.align&&Object(C.isEqual)(l,e.images)||this.swiperInstance&&this.swiperInstance.update(),s!==e.effect||o!==e.autoplay||c!==e.delay||l!==e.images)&&(t=this.swiperIndex?l.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((function(e){n.swiperInstance=e,n.initializeResizeObserver(e)})).catch((function(){u(Object(i.__)("The Swiper library could not be loaded.","jetpack"))})))}},{key:"render",value:function(){var e=this.props,t=e.autoplay,n=e.className,r=e.delay,i=e.effect,c=e.images;return Object(a.createElement)("div",{className:n,"data-autoplay":t||null,"data-delay":t?r:null,"data-effect":i},Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},Object(a.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},c.map((function(e){var t=e.alt,n=e.caption,r=e.id,i=e.url;return Object(a.createElement)("li",{className:M()("wp-block-jetpack-slideshow_slide","swiper-slide",Object(x.isBlobURL)(i)&&"is-transient"),key:r},Object(a.createElement)("figure",null,Object(a.createElement)("img",{alt:t,className:"wp-block-jetpack-slideshow_image wp-image-".concat(r),"data-id":r,src:i}),Object(x.isBlobURL)(i)&&Object(a.createElement)(o.Spinner,null),n&&Object(a.createElement)(A.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),Object(a.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}]),t}(a.Component);w()(I,"defaultProps",{effect:"slide"});var L=I,B=(n(232),["image"]),q=function(e,t){var n=Object(C.pick)(e,["alt","id","link","caption"]);return n.url=Object(C.get)(e,["sizes",t,"url"])||Object(C.get)(e,["media_details","sizes",t,"source_url"])||e.url,n},U=function(e){function t(){var e;return d()(this,t),e=b()(this,v()(t).apply(this,arguments)),w()(y()(e),"onSelectImages",(function(t){var n=e.props.attributes.sizeSlug,r=t.map((function(e){return q(e,n)}));e.setAttributes({images:r})})),w()(y()(e),"onRemoveImage",(function(t){return function(){var n=Object(C.filter)(e.props.attributes.images,(function(e,n){return t!==n}));e.setState({selectedImage:null}),e.setAttributes({images:n})}})),w()(y()(e),"addFiles",(function(t){var n=e.props.attributes.images||[],r=e.props.attributes.sizeSlug,a=e.props,i=a.lockPostSaving,o=a.unlockPostSaving,c=a.noticeOperations;i("slideshowBlockLock"),Object(F.mediaUpload)({allowedTypes:B,filesList:t,onFileChange:function(t){var a=t.map((function(e){return q(e,r)}));e.setAttributes({images:[].concat(u()(n),u()(a))}),a.every((function(e){return Object(x.isBlobURL)(e.url)}))||o("slideshowBlockLock")},onError:c.createErrorNotice})})),w()(y()(e),"uploadFromFiles",(function(t){return e.addFiles(t.target.files)})),w()(y()(e),"updateImagesSize",(function(t){var n=e.props.attributes.images,r=e.props.resizedImages,a=n.map((function(e){var n=r.find((function(t){var n=t.id;return parseInt(n,10)===parseInt(e.id,10)})),a=Object(C.get)(n,["sizes",t,"source_url"]);return s()({},e,{},a&&{url:a})}));e.setAttributes({images:a,sizeSlug:t})})),e.state={selectedImage:null},e}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this.props.attributes,t=e.ids;e.sizeSlug||this.setAttributes({sizeSlug:t.length?"full":"large"})}},{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=s()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"getImageSizeOptions",value:function(){var e=this.props.imageSizes;return Object(C.map)(e,(function(e){var t=e.name;return{value:e.slug,label:t}}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.noticeOperations,l=t.noticeUI,u=n.align,p=n.autoplay,d=n.delay,h=n.effect,m=n.images,f=this.getImageSizeOptions(),b=Object(a.createElement)(T,{allowedMediaTypes:B,attributes:n,imageSizeOptions:f,onChangeImageSize:this.updateImagesSize,onSelectImages:this.onSelectImages,setAttributes:function(t){return e.setAttributes(t)}});return 0===m.length?Object(a.createElement)(a.Fragment,null,b,Object(a.createElement)(A.MediaPlaceholder,{icon:Object(a.createElement)(A.BlockIcon,{icon:X}),className:r,labels:{title:Object(i.__)("Slideshow","jetpack"),instructions:Object(i.__)("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:B,multiple:!0,notices:l,onError:s.createErrorNotice})):Object(a.createElement)(a.Fragment,null,b,l,Object(a.createElement)(L,{align:u,autoplay:p,className:r,delay:d,effect:h,images:m,onError:s.createErrorNotice}),Object(a.createElement)(o.DropZone,{onFilesDrop:this.addFiles}),c&&Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},Object(a.createElement)(o.FormFileUpload,{multiple:!0,isLarge:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(i.__)("Upload an image","jetpack"))))}}]),t}(a.Component),V=Object(E.compose)(Object(S.withSelect)((function(e,t){return{imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce((function(t,n){var r=e("core").getMedia(n),a=Object(C.get)(r,["media_details","sizes"]);return[].concat(u()(t),[{id:n,sizes:a}])}),[])}})),Object(S.withDispatch)((function(e){var t=e("core/editor");return{lockPostSaving:t.lockPostSaving,unlockPostSaving:t.unlockPostSaving}})),o.withNotices)(U),H=n(16);function G(e){return Object(C.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var $={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return G(e).length>0},transform:function(e){var t=G(e);return Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:function(e){var t=G(e.images);return t.length>0?Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))}):Object(H.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids;return Object(H.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.images;return t.length>0?t.map((function(e){var t=e.id,n=e.url,r=e.alt,a=e.caption;return Object(H.createBlock)("core/image",{id:t,url:n,alt:r,caption:a})})):Object(H.createBlock)("core/image")}}]},W=n(109),K=n.n(W),Z=n(110),J=n.n(Z),Y=n(111),Q=n.n(Y),X=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{d:"M0 0h24v24H0z",fill:"none"}),Object(a.createElement)(o.Path,{d:"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"})),ee={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:K.a},{alt:"",caption:"",id:23,url:J.a},{alt:"",caption:"",id:23,url:Q.a}],effect:"slide"},te={title:Object(i.__)("Slideshow","jetpack"),category:"jetpack",keywords:[Object(i._x)("image","block search term","jetpack"),Object(i._x)("gallery","block search term","jetpack"),Object(i._x)("slider","block search term","jetpack")],description:Object(i.__)("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:X,edit:V,save:function(e){var t=e.attributes,n=t.align,r=t.autoplay,i=t.delay,o=t.effect,c=t.images,s=e.className;return Object(a.createElement)(L,{align:n,autoplay:r,className:s,delay:i,effect:o,images:c})},transforms:$,example:{attributes:ee}};Object(r.a)("slideshow",te)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(13),c=n(5),s=function(e){return e.map((function(e){return e.value}))},l=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],u=s(l),p=function(e){return Object(c.compact)([{value:"standard",label:Object(i.__)("Standard (224 x 301 pixels)","jetpack")},{value:"tall",label:Object(i.__)("Tall (288 x 490 pixels)","jetpack")},{value:"wide",label:Object(i.__)("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&{value:"button",label:Object(i.__)("Button (210 x 113 pixels)","jetpack")}])},d=function(e){return s(p(e))},h=Object(o.select)("core/block-editor").getSettings().siteLocale,m=!Object(c.isEmpty)(h)&&u.includes(h)?h:"en-US",f={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:d()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:m,type:"string",validValues:u},newtab:{default:!1,type:"boolean"}},b=n(3),g=n.n(b),v=n(18),j=n.n(v),y=(n(79),n(12)),_=n.n(y),k=n(6),O=n(2),w=(n(89),Object(a.createElement)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},Object(a.createElement)(O.Path,{fill:"#555d66",d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))),E=n(24),C=n(30),x=n.n(C);var S=/<script type=\'text\/javascript\' src=\'\/\/www.opentable\.(\w{2,3}\.)?\w+\/widget\/reservation\/loader\?[^']+\'><\/script>/;function A(e){var t=Object(a.useState)(""),n=j()(t,2),r=n[0],o=n[1],s=function(e,t){var n=Object(a.useState)([]),r=j()(n,2),i=r[0],o=r[1],s=Object(a.useCallback)(Object(c.throttle)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((function(e){return e.json()})).then((function(e){return o(Object(c.unionBy)(i,e.items,"rid"))}))}),500),[i]);return Object(a.useEffect)((function(){Object(c.isEmpty)(e)||e.startsWith("<script")||s(e)}),[e]),i}(r,20),l=Object(a.useState)(e.rids||[]),u=j()(l,2),p=u[0],d=u[1],h=/^(\d+)$|\(\#(\d+)\)$/,m=s.filter((function(e){return p.indexOf(e.rid.toString())})).map((function(e){return e.name+" (#".concat(e.rid,")")})),f=Object(a.createElement)(O.FormTokenField,x()({value:p,suggestions:m,onInputChange:o,maxSuggestions:20,label:Object(i._n)("Restaurant","Restaurants",p.length,"jetpack")},e,{onChange:function(t){var n=t.map((function(e){var t=h.exec(e);return t[1]||t[2]}));d(n),e.onChange&&e.onChange(n)}}));return Object(a.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?Object(a.createElement)("form",{onSubmit:function(t){t.preventDefault(),e.onSubmit(Object(c.isEmpty)(p)&&S.test(r)?r:p)}},f,Object(a.createElement)(O.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i.__)("Embed","jetpack"))):f)}var F=n(59),P=n(51);n(133);var T={title:Object(i.__)("OpenTable","jetpack"),description:Object(i.__)("Allow visitors to book a reservation with OpenTable","jetpack"),icon:w,category:"jetpack",keywords:[Object(i.__)("opentable","jetpack"),Object(i.__)("reservation","jetpack"),Object(i.__)("restaurant","jetpack")],supports:{align:!0,html:!1},edit:function(e){var t,n=e.attributes,r=e.setAttributes,o=e.className,s=e.clientId,h=Object(P.a)(f,n);Object(c.isEqual)(h,n)||r(h);var m,b,v,y,C,x=n.align,S=n.rid,T=n.style,N=n.iframe,M=n.domain,R=n.lang,D=n.newtab,z=Object(a.useState)(),I=j()(z,2),L=I[0],B=I[1],q=function(){return B(Object(a.createElement)(a.Fragment,null,Object(a.createElement)("strong",null,Object(i.__)("We ran into an issue","jetpack")),Object(a.createElement)("br",null),Object(i.__)("Please ensure this embed matches the one from your OpenTable account","jetpack")))},U=p(S),V=d(S),H=function(e){return S.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e]},G=Object(a.createElement)(k.BlockControls,null,!Object(c.isEmpty)(S)&&Object(a.createElement)(O.Toolbar,{popoverProps:{className:"is-opentable"},isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:U.map((function(e){return{title:e.label,isActive:e.value===T,onClick:function(){return t=e.value,r({style:t}),"wide"===T&&"wide"===x&&r({align:""}),void("wide"===t&&r({align:"wide"}));var t}}}))})),$=function(e){Array.isArray(e)?r({rid:e,style:e.length>1&&"button"===T?"standard":T}):function(e){if(e){var t=e.match(/< *script[^>]*src *= *["']?([^"']*)/i);if(t&&t[1]){var n="";if((n=0===t[1].indexOf("http")?new URL(t[1]):new URL("http:"+t[1])).search){var a=new URLSearchParams(n.search),i=a.get("theme");"button"===a.get("type")&&(i=a.get("type"));var o={rid:a.getAll("rid"),iframe:Boolean(a.get("iframe")),domain:a.get("domain"),lang:a.get("lang"),newtab:Boolean(a.get("newtab")),style:i},c=Object(P.a)(f,o);r(c)}else q()}else q()}else q()}(e)},W=Object(E.b)()||Object(E.a)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",K=Object(a.createElement)(O.Placeholder,{label:Object(i.__)("OpenTable Reservation","jetpack"),icon:Object(a.createElement)(k.BlockIcon,{icon:w}),instructions:Object(i.__)("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:L&&Object(a.createElement)(O.Notice,{status:"error",isDismissible:!1},L)},Object(a.createElement)(A,{rids:S,onSubmit:$}),Object(a.createElement)("div",{className:"".concat(o,"-placeholder-links")},Object(a.createElement)(O.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},Object(i.__)("Sign up for OpenTable","jetpack")),Object(a.createElement)(O.ExternalLink,{href:W},Object(i.__)("Learn more","jetpack")))),Z=_()(o,(t={},g()(t,"".concat(o,"-theme-").concat(T),!Object(c.isEmpty)(S)&&V.includes(T)),g()(t,"is-multi","multi"===H(T)[0]),t));return Object(a.createElement)("div",{className:Z},!Object(c.isEmpty)(S)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(k.InspectorAdvancedControls,null,Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Load the widget in an iFrame (Recommended)","jetpack"),checked:N,onChange:function(){return r({iframe:!N})},className:"is-opentable"})),Object(a.createElement)(k.InspectorControls,null,Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(F.a,{clientId:s,styleOptions:U,onSelectStyle:r,activeStyle:T,attributes:n,viewportWidth:150})),Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(a.createElement)(A,{rids:S,onChange:$}),Object(a.createElement)(O.SelectControl,{label:Object(i.__)("Language","jetpack"),value:R,onChange:function(e){return r({lang:e})},options:l}),Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Open in a new window","jetpack"),checked:D,onChange:function(){return r({newtab:!D})}})))),G),Object(c.isEmpty)(S)?K:(b=H(m||T),v=j()(b,2),y=v[0],C=v[1],Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(o,"-overlay")}),Object(a.createElement)("iframe",{title:Object(i.sprintf)(Object(i.__)("Open Table Preview %s","jetpack"),s),scrolling:"no",src:"https://www.opentable.com/widget/reservation/canvas?rid=".concat(Object(c.join)(S,"%2C"),"&type=").concat(y,"&theme=").concat(C,"&overlay=false&domain=").concat(M,"&lang=").concat(R&&u.includes(R)?R:"en-US","&newtab=").concat(D,"&disablega=true")}))))},save:function(e){var t=e.attributes.rid;return Object(a.createElement)(a.Fragment,null,t.map((function(e){return Object(a.createElement)("a",{href:"https://www.opentable.com/restref/client/?rid=".concat(e)},"https://www.opentable.com/restref/client/?rid=".concat(e))})))},attributes:f,example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1}}};Object(r.a)("opentable",T)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(12),O=n.n(k),w=n(6),E=n(13),C=n(28),x=n(23),S=n.n(x),A=n(26);function F(e){if(!e)return null;var t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}var P=n(24),T=n(14),N=window.getComputedStyle,M=Object(o.withFallbackStyles)((function(e,t){var n=t.textColor,r=t.backgroundColor,a=r&&r.color,i=n&&n.color,o=!i&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:a||!e?void 0:N(e).backgroundColor,fallbackTextColor:i||!o?void 0:N(o).color}}));function R(e){var t=e.borderRadius,n=void 0===t?"":t,r=e.setAttributes,c=Object(a.useCallback)((function(e){r({borderRadius:e})}),[r]);return Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Border Settings","jetpack")},Object(a.createElement)(o.RangeControl,{value:n,label:Object(i.__)("Border Radius","jetpack"),min:0,max:50,initialPosition:5,allowReset:!0,onChange:c}))}var D=function(e){function t(){var e;return l()(this,t),(e=h()(this,f()(t).apply(this,arguments))).nodeRef=null,e.bindRef=e.bindRef.bind(g()(e)),e}return j()(t,e),p()(t,[{key:"bindRef",value:function(e){e&&(this.nodeRef=e)}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.backgroundColor,o=t.textColor,c=t.setBackgroundColor,s=t.setTextColor,l=t.fallbackBackgroundColor,u=t.fallbackTextColor,p=t.setAttributes,d=t.className,h=n.borderRadius,m=n.placeholder,f=n.text,b=n.title;return Object(a.createElement)("div",{className:O()(d,"wp-block-button is-modal-button"),title:b,ref:this.bindRef},Object(a.createElement)(w.RichText,{placeholder:m||Object(i.__)("Add text…","jetpack"),value:f,keepPlaceholderOnFocus:!0,onChange:function(e){return p({text:e})},withoutInteractiveFormatting:!0,className:O()("wp-block-button__link",(e={"has-background":r.color},_()(e,r.class,r.class),_()(e,"has-text-color",o.color),_()(e,o.class,o.class),_()(e,"no-border-radius",0===h),e)),style:{backgroundColor:r.color,color:o.color,borderRadius:h?h+"px":void 0}}),Object(a.createElement)(w.InspectorControls,null,Object(a.createElement)(w.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),colorSettings:[{value:r.color,onChange:c,label:Object(i.__)("Background Color","jetpack")},{value:o.color,onChange:s,label:Object(i.__)("Text Color","jetpack")}]},Object(a.createElement)(w.ContrastChecker,{isLargeText:!1,textColor:o.color,backgroundColor:r.color,fallbackBackgroundColor:l,fallbackTextColor:u})),Object(a.createElement)(R,{borderRadius:h,setAttributes:p})))}}]),t}(a.Component),z=Object(T.compose)([Object(w.withColors)("backgroundColor",{textColor:"color"}),M])(D),I=n(97),L=n.n(I),B=n(98),q=n.n(B),U=(n(153),[{name:"fill",label:Object(i.__)("Fill","jetpack"),isDefault:!0},{name:"outline",label:Object(i.__)("Outline","jetpack")}]),V=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{editedUrl:n.props.attributes.url||"",editingUrl:!1,resolvingUrl:n.props.attributes.url&&!n.props.attributes.eventId,resolvedStatusCode:null}),_()(g()(n),"resolveUrl",(function(){var e=n.props.attributes.url;n.setState({resolvedStatusCode:null}),n.fetchRequest=S()({path:"/wpcom/v2/resolve-redirect/".concat(e)}),n.fetchRequest.then((function(t){n.fetchRequest=null;var r=t.url||e,a=t.status?parseInt(t.status,10):null;n.props.setAttributes({eventId:F(r),url:r}),n.setState({resolvingUrl:!1,resolvedStatusCode:a,editedUrl:r})}),(function(e){"abort"!==e.statusText&&(n.fetchRequest=null,n.setState({resolvingUrl:!1,editingUrl:!0}))}))})),_()(g()(n),"setUrl",(function(e){e&&e.preventDefault();var t=n.state.editedUrl;t&&(n.props.setAttributes({eventId:F(t),url:t}),n.setState({editingUrl:!1,resolvingUrl:!0}))})),_()(g()(n),"cannotEmbed",(function(){var e=n.props.attributes.url,t=n.state.resolvedStatusCode;return e&&!G.test(e)||t&&t>=400})),_()(g()(n),"setEmbedType",(function(e){(0,n.props.setAttributes)({useModal:"modal"===e})})),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingUrl&&this.resolveUrl()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingUrl&&this.state.resolvingUrl&&this.resolveUrl()}},{key:"renderLoading",value:function(){return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…","jetpack")))}},{key:"renderInspectorControls",value:function(){var e=this.props.attributes.useModal,t=[{value:"inline",isActive:!e,label:Object(i.__)("In-page Embed","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:L.a,alt:Object(i.__)("In page Eventbrite checkout example","jetpack")}))},{value:"modal",isActive:e,label:Object(i.__)(" Button & Modal","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:q.a,alt:Object(i.__)("Modal Eventbrite checkout example","jetpack")}))}];return Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"jetpack-eventbrite-block__embed-type-controls",title:Object(i._x)("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack")},Object(a.createElement)("div",{className:"block-editor-block-styles"},t.map(this.renderEmbedTypeItem.bind(this)))))}},{key:"renderEmbedTypeItem",value:function(e){var t=this,n=e.label,r=e.isActive,i=e.value,o=e.preview;return Object(a.createElement)("div",{key:i,className:O()("block-editor-block-styles__item",{"is-active":r}),onClick:function(){return t.setEmbedType(i)},onKeyDown:function(e){A.ENTER!==e.keyCode&&A.SPACE!==e.keyCode||e.preventDefault()},role:"button",tabIndex:"0","aria-label":n},Object(a.createElement)("div",{className:"block-editor-block-styles__item-preview"},o),Object(a.createElement)("div",{className:"block-editor-block-styles__item-label"},n))}},{key:"renderBlockControls",value:function(){var e=this;return Object(a.createElement)(w.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})))}},{key:"renderEditEmbed",value:function(){var e=this,t=this.props.className,n=this.state.editedUrl,r=Object(P.b)()||Object(P.a)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Eventbrite Checkout","jetpack"),instructions:Object(i.__)("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:Object(a.createElement)(w.BlockIcon,{icon:K})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":Object(i.__)("Eventbrite URL","jetpack"),placeholder:Object(i.__)("Enter an event URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isDefault:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","submit button label","jetpack")),this.cannotEmbed()&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return t=n,r=e.props.onReplace,i=Object(a.createElement)("a",{href:t},t),void r(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(i)}));var t,r,i}},Object(i._x)("Convert block to link","button label","jetpack")))),Object(a.createElement)("div",{className:"components-placeholder__learn-more"},Object(a.createElement)(o.ExternalLink,{href:r},Object(i.__)("Learn more about Eventbrite embeds","jetpack")))))}},{key:"renderInlinePreview",value:function(){var e=this.props.className,t=this.props.attributes.eventId;if(t){var n="eventbrite-widget-".concat(t),r="\n\t\t\t<script src=\"https://www.eventbrite.com/static/widgets/eb_widgets.js\"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ".concat(t,",\n\t\t\t\t\tiframeContainerId: '").concat(n,"',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id=\"").concat(n,'"></div>\n\t\t');return Object(a.createElement)("div",{className:e},Object(a.createElement)(o.SandBox,{html:r}),Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.addModalButtonStyles,i=t.removeModalButtonStyles,o=n.url,c=n.useModal,s=this.state,l=s.editingUrl;return s.resolvingUrl?(i(),e=this.renderLoading()):l||!o||this.cannotEmbed()?(i(),e=this.renderEditEmbed()):(c?r():i(),e=Object(a.createElement)(a.Fragment,null,this.renderBlockControls(),c?Object(a.createElement)(z,this.props):this.renderInlinePreview())),Object(a.createElement)(a.Fragment,null,this.renderInspectorControls(),e)}}]),t}(a.Component),H=Object(E.withDispatch)((function(e,t,n){var r=t.name,a=(0,(0,n.select)("core/blocks").getBlockStyles)(r);return{addModalButtonStyles:function(){a.length<1&&e("core/blocks").addBlockStyles(r,U)},removeModalButtonStyles:function(){a.length>0&&e("core/blocks").removeBlockStyles(r,U.map((function(e){return e.name})))}}}))(V);var G=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,$=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,W=Object(i.__)("Eventbrite Checkout","jetpack"),K={src:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,{id:"eventbrite-icon"},Object(a.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),foreground:"#555d66"},Z={title:W,description:Object(i.__)("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:K,category:"jetpack",keywords:[Object(i.__)("events","jetpack"),Object(i.__)("tickets","jetpack")],supports:{html:!1},attributes:{url:{type:"string"},eventId:{type:"number"},useModal:{type:"boolean"},text:{type:"string",default:Object(i._x)("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},edit:H,save:function(e){var t=e.attributes,n=t.eventId,r=t.useModal,i=t.url;if(n)return r?function(e){var t,n=e.backgroundColor,r=e.borderRadius,i=e.customBackgroundColor,o=e.customTextColor,c=e.eventId,s=e.text,l=e.textColor,u=e.url,p=Object(w.getColorClassName)("color",l),d=Object(w.getColorClassName)("background-color",n),h=O()("wp-block-button__link",(t={"has-text-color":l||o},_()(t,p,p),_()(t,"has-background",n||i),_()(t,d,d),_()(t,"no-border-radius",0===r),t)),m={backgroundColor:d?void 0:i,color:p?void 0:o,borderRadius:r?r+"px":void 0};return Object(a.createElement)("div",{className:"wp-block-button"},Object(a.createElement)(w.RichText.Content,{className:h,href:u,id:"eventbrite-widget-".concat(c),rel:"noopener noreferrer",role:"button",style:m,tagName:"a",target:"_blank",value:s}))}(t):i&&Object(a.createElement)("a",{className:"eventbrite__direct-link",href:i},i)},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&(G.test(e.textContent)||$.test(e.textContent))},transform:function(e){return Object(c.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://www.eventbrite.com/e/test-event-tickets-123456789",eventId:123456789,useModal:!0}}};Object(r.a)("eventbrite",Z)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(16),c=/^#?[A-Fa-f0-9]{6}$/,s=function(e){return c.test(e)},l={backgroundColor:{type:"string",default:"ffffff",validator:s},submitButtonText:{type:"string",default:Object(i.__)("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:s},textColor:{type:"string",default:"4D5055",validator:s},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:function(e){return!e||e.startsWith("https://calendly.com/")}},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:s},customTextButtonColor:{type:"string",validator:s}},u=n(18),p=n.n(u),d=(n(79),n(5)),h=n(95),m=n.n(h),f=n(6),b=n(2),g=(n(80),Object(a.createElement)(b.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(b.G,{fill:"none",fillRule:"evenodd"},Object(a.createElement)(b.Rect,{height:"20.956522",rx:"3",stroke:"#656a74",strokeWidth:"2",width:"20.956522",x:"1",y:"2.043478"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"6.565217"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"14.652174"}),Object(a.createElement)(b.Path,{d:"m14.6086957 10.0869565c-.6956522-.57971012-1.6231885-.8695652-2.7826087-.8695652-1.7391305 0-3.47826091 1.5652174-3.47826091 3.6521739s1.73913041 3.6521739 3.47826091 3.6521739c1.1594202 0 2.0869565-.3478261 2.7826087-1.0434782",stroke:"#656a74"})))),v=n(51),j=n(32),y=/(^|\/\/)(calendly\.com[^"']*)/i,_=function(e){if(e){var t=function(e){var t=e.match(y);if(t)return"https://"+t[2]}(e);if(t){var n=function(e){var t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;var r=new URLSearchParams(n.search),a=r.get("background_color"),i=r.get("primary_color"),o=r.get("text_color"),c=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(c)&&(t.backgroundColor=a),i&&i.match(c)&&(t.primaryColor=i),o&&o.match(c)&&(t.textColor=o),t}(t),r=function(e){return e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0}(e);r&&(n.style=r);var a=function(e){var t=e.match(/false;"\>([^<]+)\<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/))?t[1]:void 0}(e);a&&(n.submitButtonText=a);var i=function(e){var t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]}(e);i&&(n.customTextButtonColor=i);var o=function(e){var t=e.match(/color: '([^']*?)'/);if(t)return t[1]}(e);return o&&(n.customBackgroundButtonColor=o),n}}},k=n(59);var O={title:Object(i.__)("Calendly","jetpack"),description:Object(i.__)("Embed a calendar for customers to schedule appointments","jetpack"),icon:g,category:"jetpack",keywords:[Object(i.__)("calendar","jetpack"),Object(i.__)("schedule","jetpack"),Object(i.__)("appointments","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:function(e){var t=e.attributes,n=e.className,r=e.clientId,o=e.setAttributes,c=Object(v.a)(l,t);Object(d.isEqual)(c,t)||o(c);var s,u,h=c.backgroundColor,y=c.submitButtonText,O=c.hideEventTypeDetails,w=c.primaryColor,E=c.textColor,C=c.style,x=c.url,S=Object(a.useState)(""),A=p()(S,2),F=A[0],P=A[1],T=Object(a.useState)(),N=p()(T,2),M=N[0],R=N[1],D=function(){return R(Object(a.createElement)(a.Fragment,null,Object(i.__)("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack")))},z=function(e){if(e){e.preventDefault();var t=_(F);if(t){var n=Object(v.a)(l,t);o(n)}else D()}else D()},I=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("form",{onSubmit:z},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)("div",{className:"".concat(n,"-learn-more")},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},Object(i.__)("Need help finding your embed code?","jetpack")))),L=Object(a.createElement)(b.Placeholder,{label:Object(i.__)("Calendly","jetpack"),instructions:Object(i.__)("Enter your Calendly web address or embed code below.","jetpack"),icon:Object(a.createElement)(f.BlockIcon,{icon:g}),notices:M&&Object(a.createElement)(b.Notice,{status:"error",isDismissible:!1},M)},I),B=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(n,"-overlay")}),Object(a.createElement)("iframe",{src:(s=m.a.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:O?1:0,background_color:h,primary_color:w,text_color:E}),"".concat(x,"?").concat(s)),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",style:{minWidth:"320px",height:"630px",width:"100%"},title:"Calendly"})),q=Object(a.createElement)(j.a,{submitButtonText:y,attributes:t,setAttributes:o}),U=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("a",{style:{alignSelf:"flex-start",border:"none"},className:"wp-block-button__link"},y)),V=[{value:"inline",label:Object(i.__)("Inline","jetpack")},{value:"link",label:Object(i.__)("Link","jetpack")}],H=Object(a.createElement)(f.BlockControls,null,x&&Object(a.createElement)(b.Toolbar,{isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:V.map((function(e){return{title:e.label,isActive:e.value===C,onClick:function(){return o({style:e.value})}}})),popoverProps:{className:"is-calendly"}})),G=Object(a.createElement)(f.InspectorControls,null,x&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(k.a,{clientId:r,styleOptions:V,onSelectStyle:o,activeStyle:C,attributes:t,viewportWidth:500}))),Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Calendar Settings","jetpack"),initialOpen:!1},Object(a.createElement)("form",{onSubmit:z,className:"".concat(n,"-embed-form-sidebar")},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)(b.ToggleControl,{label:Object(i.__)("Hide Event Type Details","jetpack"),checked:O,onChange:function(){return o({hideEventTypeDetails:!O})}})),x&&Object(a.createElement)(b.Notice,{className:"".concat(n,"-color-notice"),isDismissible:!1},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},Object(i.__)("Follow these instructions to change the colors in this block.","jetpack"))));return Object(a.createElement)("div",{className:n},G,H,x?"inline"===C?B:u?U:q:L)},save:function(e){var t=e.attributes.url;return Object(a.createElement)("a",{href:t},t)},attributes:l,example:{attributes:{submitButtonText:Object(i.__)("Schedule time with me","jetpack"),hideEventTypeDetails:!1,style:"inline",url:"https://calendly.com/wordpresscom/jetpack-block-example"}},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&y.test(e.textContent)},transform:function(e){var t=_(e.textContent);return Object(o.createBlock)("jetpack/calendly",t)}}]}};Object(r.a)("calendly",O)},function(e,t,n){"use strict";n.r(t);var r,a=n(17),i=n(1),o=n(0),c=n(5),s=n(6),l=n(2),u=n(26),p=function(e){var t,n=e.id,r=e.setRating,a=e.children;return Object(o.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(t=n,function(e){return e.keyCode===u.ENTER?r(t):null}),onClick:function(e){return function(){return r(e)}}(n)},a)},d=(n(217),n(134),{title:Object(i.__)("Star Rating","jetpack"),description:Object(i.__)("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:function(){return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(o.createElement)(l.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}))},keywords:[Object(i._x)("star","block search term","jetpack"),Object(i._x)("rating","block search term","jetpack"),Object(i._x)("review","block search term","jetpack")],category:"jetpack",example:{},styles:[{name:"filled",label:Object(i._x)("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:Object(i._x)("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:function(e){return function(t){var n=t.className,r=t.setAttributes,a=t.attributes,u=a.align,d=a.color,h=a.rating,m=a.maxRating,f=function(e){e===h&&Math.ceil(h)===h&&(e-=.5),r({rating:e})};return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(s.BlockControls,null,Object(o.createElement)(s.AlignmentToolbar,{value:u,onChange:function(e){return r({align:e})}})),Object(o.createElement)("div",{className:n,style:{textAlign:u}},Object(c.range)(1,m+1).map((function(t){return Object(o.createElement)(p,{key:t,id:t,setRating:f},Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t-.5?null:"is-rating-unfilled",color:d})),Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t?null:"is-rating-unfilled",color:d})))}))),Object(o.createElement)(s.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(o.createElement)(l.RangeControl,{label:Object(i.__)("Highest rating","jetpack"),value:m,onChange:function(e){return r({maxRating:e})},min:2,max:10}),Object(o.createElement)(s.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:d,onChange:function(e){return r({color:e})},label:Object(i.__)("Color","jetpack")}]}))))}}((function(e){var t=function(e){return e&&e.color?e.color:"currentColor"}(e),n=function(e){return e&&e.className?e.className:""}(e);return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},Object(o.createElement)(l.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))})),save:(r="★",function(e){var t=e.className,n=e.attributes,a=n.align,i=n.rating,s=n.color;return Object(o.createElement)("figure",{className:t,style:{textAlign:a}},Object(c.range)(1,i+1).map((function(e){return Object(o.createElement)("span",{key:e,style:{color:s}},r)})))})});Object(a.a)("rating-star",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(161),n(24)),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(14),w=n(13),E=n(100),C=new(n.n(E).a),x=function(e){"A"===e.target.nodeName&&(window.confirm(Object(i.__)("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault())},S=function(e){var t=e.className,n=e.source,r=void 0===n?"":n;return Object(a.createElement)(a.RawHTML,{className:t,onClick:x},r.length?C.render(r):"")},A=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"input",null),_()(g()(n),"state",{activePanel:"editor"}),_()(g()(n),"bindInput",(function(e){n.input=e})),_()(g()(n),"updateSource",(function(e){return n.props.setAttributes({source:e})})),_()(g()(n),"handleKeyDown",(function(e){var t=n.props,r=t.attributes,a=t.removeBlock,i=r.source;8===e.keyCode&&""===i&&(a(),e.preventDefault())})),_()(g()(n),"toggleMode",(function(e){return function(){return n.setState({activePanel:e})}})),n}return j()(t,e),p()(t,[{key:"componentDidUpdate",value:function(e){e.isSelected&&!this.props.isSelected&&"preview"===this.state.activePanel&&this.toggleMode("editor")(),!e.isSelected&&this.props.isSelected&&"editor"===this.state.activePanel&&this.input&&this.input.focus()}},{key:"isEmpty",value:function(){var e=this.props.attributes.source;return!e||""===e.trim()}},{key:"renderToolbarButton",value:function(e,t){var n=this.state.activePanel;return Object(a.createElement)("button",{className:"components-tab-button ".concat(n===e?"is-active":""),onClick:this.toggleMode(e)},Object(a.createElement)("span",null,t))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=t.source,c=this.state.activePanel;return!r&&this.isEmpty()?Object(a.createElement)("p",{className:"".concat(n,"__placeholder")},Object(i.__)("Write your _Markdown_ **here**…","jetpack")):Object(a.createElement)("div",{className:n},Object(a.createElement)(k.BlockControls,null,Object(a.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton("editor",Object(i.__)("Markdown","jetpack")),this.renderToolbarButton("preview",Object(i.__)("Preview","jetpack")))),"preview"!==c&&r?Object(a.createElement)(k.PlainText,{className:"".concat(n,"__editor"),onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":Object(i.__)("Markdown","jetpack"),innerRef:this.bindInput,value:o}):Object(a.createElement)(S,{className:"".concat(n,"__preview"),source:o}))}}]),t}(a.Component),F=Object(O.compose)([Object(w.withSelect)((function(e){return{currentBlockId:e("core/block-editor").getSelectedBlockClientId()}})),Object(w.withDispatch)((function(e,t){var n=t.currentBlockId;return{removeBlock:function(){return e("core/block-editor").removeBlocks(n)}}}))])(A),P=Object(i.__)("Try Markdown","jetpack"),T=Object(i.__)("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),N=Object(c.b)()||Object(c.a)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",M={title:Object(i.__)("Markdown","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Use regular characters and punctuation to style text, links, and lists.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:N},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},Object(a.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),Object(a.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),category:"jetpack",keywords:[Object(i._x)("formatting","block search term","jetpack"),Object(i._x)("syntax","block search term","jetpack"),Object(i._x)("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:F,save:function(e){var t=e.attributes,n=e.className;return Object(a.createElement)(S,{className:n,source:t.source})},example:{attributes:{source:"## ## ".concat(P,"\n\n").concat(T)}}};Object(r.a)("markdown",M)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(6),k=[{height:250,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:Object(i.__)("Rectangle 300x250","jetpack"),tag:"mrec",width:300,editorPadding:30},{height:90,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:Object(i.__)("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:Object(i.__)("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),Object(a.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:Object(i.__)("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}],O=Object(i.__)("Pick an ad format","jetpack");function w(e){var t=e.value,n=e.onChange;return Object(a.createElement)(o.Dropdown,{position:"bottom right",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(a.createElement)(o.Toolbar,{controls:[{icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:O,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:function(e){var r=e.onClose;return Object(a.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},k.map((function(e){var i=e.tag,c=e.name,s=e.icon;return Object(a.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:s,isSelected:i===t,key:i,onClick:function(){n(i),r()},role:"menuitemcheckbox"},c)})))}})}n(239);var E=n(119),C=n.n(E),x=n(120),S=n.n(x),A=n(121),F=n.n(A),P=n(122),T=n.n(P),N=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(a))),y()(b()(n),"handleHideMobileChange",(function(e){n.props.setAttributes({hideMobile:!!e})})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,r=e.isSelected,c=t.format,s=t.hideMobile,l=k.filter((function(e){return e.tag===c}))[0],u=Object(a.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:Boolean(s),label:Object(i.__)("Hide ad on mobile views","jetpack"),onChange:this.handleHideMobileChange});return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(_.BlockControls,null,Object(a.createElement)(w,{value:c,onChange:function(e){return n({format:e})}})),Object(a.createElement)("div",{className:"wp-block-jetpack-wordads jetpack-wordads-".concat(c)},Object(a.createElement)("div",{className:"jetpack-wordads__ad",style:{width:l.width,height:l.height,backgroundImage:"url( ".concat(function(e){switch(e){case"leaderboard":return S.a;case"mobile_leaderboard":return F.a;case"wideskyscraper":return T.a;default:return C.a}}(c)," )"),backgroundSize:"cover"}}),r&&u))}}]),t}(a.Component),M=Object(i.__)("Ad","jetpack"),R=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),D={title:M,description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Earn income by adding high quality ads to your post","jetpack")),Object(a.createElement)(o.ExternalLink,{href:"https://wordads.co/"},Object(i.__)("Learn all about WordAds","jetpack"))),icon:R,attributes:{align:{type:"string",default:"center"},format:{type:"string",default:"mrec"},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"jetpack",keywords:[Object(i.__)("ads","jetpack"),"WordAds",Object(i.__)("Advertisement","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:N,save:function(){return null}};Object(r.a)("wordads",D)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(146),n(126),n(30)),s=n.n(c),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(23),w=n.n(O),E=n(12),C=n.n(E),x=n(58),S=n(6),A=n(15),F=n.n(A),P=n(5),T=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,c=new Array(r),s=0;s<r;s++)c[s]=arguments[s];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(c))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day,c=e.opening,s=e.closing;return Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("div",{className:"business-hours__row"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")},0===t&&n.renderDayToggle()),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Opening","jetpack"),value:c,className:"business-hours__open",placeholder:"09:00",onChange:function(e){n.setHour(e,"opening",t)}}),Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Closing","jetpack"),value:s,className:"business-hours__close",placeholder:"17:00",onChange:function(e){n.setHour(e,"closing",t)}})),Object(a.createElement)("div",{className:"business-hours__remove"},r.hours.length>1&&Object(a.createElement)(o.IconButton,{isSmall:!0,isLink:!0,icon:"trash",onClick:function(){n.removeInterval(t)}}))),t===r.hours.length-1&&Object(a.createElement)("div",{className:"business-hours__row business-hours-row__add"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")}," "),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.IconButton,{isLink:!0,label:Object(i.__)("Add Hours","jetpack"),onClick:n.addInterval},Object(i.__)("Add Hours","jetpack"))),Object(a.createElement)("div",{className:"business-hours__remove"}," ")))})),k()(v()(n),"setHour",(function(e,t,r){var a=n.props,i=a.day,o=a.attributes;(0,a.setAttributes)({days:o.days.map((function(n){return n.name===i.name?F()({},n,{hours:n.hours.map((function(n,a){return a===r?F()({},n,k()({},t,e)):n}))}):n}))})})),k()(v()(n),"toggleClosed",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){if(t.name===r.name){var n=e?[{opening:"09:00",closing:"17:00"}]:[];return F()({},t,{hours:n})}return t}))})})),k()(v()(n),"addInterval",(function(){var e=n.props,t=e.day,r=e.attributes,a=e.setAttributes,i=r.days;t.hours.push({opening:"",closing:""}),a({days:i.map((function(e){return e.name===t.name?F()({},e,{hours:t.hours}):e}))})})),k()(v()(n),"removeInterval",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){return r.name===t.name?F()({},t,{hours:t.hours.filter((function(t,n){return e!==n}))}):t}))})})),n}return y()(t,e),d()(t,[{key:"isClosed",value:function(){var e=this.props.day;return Object(P.isEmpty)(e.hours)}},{key:"renderDayToggle",value:function(){var e=this.props,t=e.day,n=e.localization;return Object(a.createElement)(a.Fragment,null,Object(a.createElement)("span",{className:"business-hours__day-name"},n.days[t.name]),Object(a.createElement)(o.ToggleControl,{label:this.isClosed()?Object(i.__)("Closed","jetpack"):Object(i.__)("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}},{key:"renderClosed",value:function(){var e=this.props.day;return Object(a.createElement)("div",{className:"business-hours__row business-hours-row__closed"},Object(a.createElement)("div",{className:C()(e.name,"business-hours__day")},this.renderDayToggle()),Object(a.createElement)("div",{className:C()(e.name,"closed","business-hours__hours")}," "),Object(a.createElement)("div",{className:"business-hours__remove"}," "))}},{key:"render",value:function(){var e=this.props.day;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}]),t}(a.Component),N=n(18),M=n.n(N),R=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(o))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day.hours;return Object(a.createElement)("span",{key:t},Object(i.sprintf)("%s - %s",n.formatTime(e.opening),n.formatTime(e.closing)),r.length>1+t&&Object(a.createElement)("span",null,", "))})),n}return y()(t,e),d()(t,[{key:"formatTime",value:function(e){var t=this.props.timeFormat,n=e.split(":"),r=M()(n,2),a=r[0],i=r[1],o=new Date;return!(!a||!i)&&(o.setHours(a),o.setMinutes(i),Object(x.date)(t,o))}},{key:"render",value:function(){var e=this,t=this.props,n=t.day,r=t.localization,o=n.hours.filter((function(t){return e.formatTime(t.opening)&&e.formatTime(t.closing)}));return Object(a.createElement)("div",{className:"jetpack-business-hours__item"},Object(a.createElement)("dt",{className:n.name},r.days[n.name]),Object(a.createElement)("dd",null,Object(P.isEmpty)(o)?Object(i._x)("Closed","business is closed on a full day","jetpack"):o.map(this.renderInterval),Object(a.createElement)("br",null)))}}]),t}(a.Component),D={days:{Sun:Object(i.__)("Sunday","jetpack"),Mon:Object(i.__)("Monday","jetpack"),Tue:Object(i.__)("Tuesday","jetpack"),Wed:Object(i.__)("Wednesday","jetpack"),Thu:Object(i.__)("Thursday","jetpack"),Fri:Object(i.__)("Friday","jetpack"),Sat:Object(i.__)("Saturday","jetpack")},startOfWeek:0},z=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{localization:D,hasFetched:!1}),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.apiFetch()}},{key:"apiFetch",value:function(){var e=this;this.setState({data:D},(function(){w()({path:"/wpcom/v2/business-hours/localized-week"}).then((function(t){e.setState({localization:t,hasFetched:!0})}),(function(){e.setState({localization:D,hasFetched:!0})}))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,l=n.days,u=this.state,p=u.localization,d=u.hasFetched,h=p.startOfWeek,m=l.concat(l.slice(0,h)).slice(h);if(!d)return Object(a.createElement)(o.Placeholder,{icon:Object(a.createElement)(S.BlockIcon,{icon:B}),label:Object(i.__)("Loading business hours","jetpack")});if(!c){var f=Object(x.__experimentalGetSettings)().formats.time;return Object(a.createElement)("dl",{className:C()(r,"jetpack-business-hours")},m.map((function(e,t){return Object(a.createElement)(R,{key:t,day:e,localization:p,timeFormat:f})})))}return Object(a.createElement)("div",{className:C()(r,"is-edit")},m.map((function(t,n){return Object(a.createElement)(T,s()({key:n,day:t,localization:p},e.props))})))}}]),t}(a.Component),I=n(20),L=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],B=Object(I.a)(Object(a.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),q={title:Object(i.__)("Business Hours","jetpack"),description:Object(i.__)("Display opening hours for your business.","jetpack"),icon:B,category:"jetpack",supports:{html:!0},keywords:[Object(i._x)("opening hours","block search term","jetpack"),Object(i._x)("closing time","block search term","jetpack"),Object(i._x)("schedule","block search term","jetpack")],attributes:{days:{type:"array",default:L}},edit:function(e){return Object(a.createElement)(z,e)},save:function(){return null},example:{attributes:{days:L}}};Object(r.a)("business-hours",q)},function(e,t,n){"use strict";n.r(t);n(36);var r=n(21),a=n.n(r),i=n(0),o=n(16),c=n(53);Object(o.setCategories)([].concat(a()(Object(o.getCategories)().filter((function(e){return"jetpack"!==e.slug}))),[{slug:"jetpack",title:"Jetpack",icon:Object(i.createElement)(c.a,null)}]));var s,l,u,p,d=n(15),h=n.n(d),m=n(23),f=n.n(m),b=n(13),g=n(1),v=(n(78),n(29)),j=n(35),y=n(24);function _(){var e=Object(j.a)();return void 0!==typeof window&&window.location&&e?Object(y.b)()||Object(y.a)()?"https://wordpress.com/plans/my-plan/".concat(e):"".concat(window.location.protocol,"//").concat(e.replace("::","/"),"/wp-admin/admin.php?page=jetpack#/my-plan"):null}if(regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===typeof window||!window.location){e.next=16;break}if(!Object(v.parse)(window.location.href,!0).query.plan_upgraded){e.next=16;break}if(s=null,e.prev=4,!Object(y.b)()){e.next=7;break}return e.abrupt("break",16);case 7:return e.next=9,regeneratorRuntime.awrap(f()({path:"/jetpack/v4/site"}));case 9:l=e.sent,u=JSON.parse(l.data),s=u.plan.product_name;case 12:return e.prev=12,p=_(),Object(b.dispatch)("core/notices").createNotice("success",s?Object(g.sprintf)(Object(g.__)("Congratulations! Your site is now on the %s plan.","jetpack"),s):Object(g.__)("Congratulations! Your site is now on a paid plan.","jetpack"),h()({isDismissible:!0},p&&{actions:[{url:_(),label:Object(g.__)("View my plan","jetpack")}]})),e.finish(12);case 16:case"end":return e.stop()}}),null,null,[[4,,12,16]]),void 0!==typeof window&&window.location){var k=Object(v.parse)(window.location.href,!0).query;k.stripe_connect_success?Object(b.dispatch)("core/notices").createNotice("success",Object(g.__)("Congrats! Your site is now connected to Stripe. You can start making money by adding your first subscription!","jetpack")):k.stripe_connect_cancelled&&Object(b.dispatch)("core/notices").createNotice("error",Object(g.__)("You cancelled connecting your site to Stripe.","jetpack"))}var O=n(50);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){var w=window.Jetpack_Editor_Initial_State.tracksUserData,E=w.userid,C=w.username;O.a.initialize(E,C,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(5),O=n(6),w=n(23),E=n.n(w),C=n(31);function x(e){if(!F.test(e))return"";var t=Object(C.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}var S=/^\s*https?:\/\/pin\.it\//i,A=function(e){function t(){var e;return l()(this,t),e=h()(this,f()(t).apply(this,arguments)),_()(g()(e),"resolveRedirect",(function(){var t=e.props.attributes.url;e.fetchRequest=E()({path:"/wpcom/v2/resolve-redirect/".concat(t)}),e.fetchRequest.then((function(t){e.fetchRequest=null,e.props.setAttributes({url:t.url}),e.setState({resolvingRedirect:!1,editedUrl:t.url})}),(function(t){"abort"!==t.statusText&&(e.fetchRequest=null,e.setState({resolvingRedirect:!1,editingUrl:!0}))}))})),_()(g()(e),"hideOverlay",(function(){e.setState({interactive:!0})})),_()(g()(e),"setUrl",(function(t){t&&t.preventDefault();var n=e.state.editedUrl;e.props.setAttributes({url:n}),e.setState({editingUrl:!1}),S.test(n)&&e.setState({resolvingRedirect:!0})})),e.state={editedUrl:e.props.attributes.url||"",editingUrl:!1,resolvingRedirect:S.test(e.props.attributes.url),interactive:!1},e}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingRedirect&&this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentWillUnmount",value:function(){Object(k.invoke)(this.fetchRequest,["abort"])}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,s=n.url,l=this.state,u=l.editedUrl,p=l.interactive,d=l.editingUrl;if(l.resolvingRedirect)return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…")));var h=x(s),m="<a data-pin-do='".concat(h,"' href='").concat(s,"'></a>"),f=s&&!h,b=Object(a.createElement)(O.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})));return d||!s||f?Object(a.createElement)("div",{className:r},b,Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Pinterest","jetpack"),icon:Object(a.createElement)(O.BlockIcon,{icon:T})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:u,className:"components-placeholder__input","aria-label":Object(i.__)("Pinterest URL","jetpack"),placeholder:Object(i.__)("Enter URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")),f&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return function(e,t){var n=Object(a.createElement)("a",{href:e},e);t(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(n)}))}(u,e.props.onReplace)}},Object(i._x)("Convert block to link","button label","jetpack")))))):Object(a.createElement)("div",{className:r},b,Object(a.createElement)("div",null,Object(a.createElement)(o.SandBox,{html:m,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:this.hideOverlay}),!p&&Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:this.hideOverlay})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}}]),t}(a.Component),F=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,P=Object(i.__)("Pinterest","jetpack"),T=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,null,Object(a.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),N={title:P,description:Object(i.__)("Embed a Pinterest pin, board, or user.","jetpack"),icon:T,category:"jetpack",supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:A,save:function(e){var t=e.attributes,n=e.className,r=t.url;return x(r)?Object(a.createElement)("div",{className:n},Object(a.createElement)("a",{"data-pin-do":x(r),href:r})):null},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&F.test(e.textContent)},transform:function(e){return Object(c.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://pinterest.com/anapinskywalker/"}}};Object(r.a)("pinterest",N)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(20),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(13),w=n(12),E=n.n(w),C=n(33),x=[{value:C.b,label:Object(i.__)("Show after threshold","jetpack")},{value:C.c,label:Object(i.__)("Show before threshold","jetpack")}],S=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{isThresholdValid:!0}),_()(g()(n),"setCriteria",(function(e){return n.props.setAttributes({criteria:e})})),_()(g()(n),"setThreshold",(function(e){if(/^\d+$/.test(e)&&+e>0)return n.props.setAttributes({threshold:+e}),void n.setState({isThresholdValid:!0});n.setState({isThresholdValid:!1})})),n}return j()(t,e),p()(t,[{key:"getNoticeLabel",value:function(){return this.props.attributes.criteria===C.b?Object(i.sprintf)(Object(i._n)("This block will only appear to people who have visited this page more than once.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):Object(i.sprintf)(Object(i._n)("This block will only appear to people who are visiting this page for the first time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}},{key:"render",value:function(){return Object(a.createElement)("div",{className:E()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},Object(a.createElement)(o.Placeholder,{icon:F,label:Object(i.__)("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":Object(i.__)("Please enter a valid number.","jetpack"),label:Object(i.__)("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),Object(a.createElement)(o.RadioControl,{label:Object(i.__)("Visibility","jetpack"),selected:this.props.attributes.criteria,options:x,onChange:this.setCriteria})),Object(a.createElement)(o.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),Object(a.createElement)(k.InnerBlocks,null))}}]),t}(a.Component),A=Object(O.withSelect)((function(e,t){var n=e("core/block-editor"),r=n.isBlockSelected,a=n.hasSelectedInnerBlock;return{isSelected:r(t.clientId)||a(t.clientId)}}))(S),F=(n(228),Object(c.a)(Object(a.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))),P={attributes:{criteria:{type:"string",default:C.b},threshold:{type:"number",default:C.d}},category:"jetpack",description:Object(i.__)("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:F,keywords:[Object(i._x)("return","block search term","jetpack"),Object(i._x)("visitors","block search term","jetpack"),Object(i._x)("visibility","block search term","jetpack")],supports:{html:!1},title:Object(i.__)("Repeat Visitor","jetpack"),edit:A,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(k.InnerBlocks.Content,null))},example:{attributes:{criteria:C.b,threshold:C.d},innerBlocks:[{name:"core/paragraph",attributes:{content:Object(i.__)("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}};Object(r.a)("repeat-visitor",P)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(21),s=n.n(c),l=n(7),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(23),k=n.n(_),O=n(12),w=n.n(O),E=n(32),C=n(6),x=n(11),S=n.n(x),A=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,i=new Array(r),c=0;c<r;c++)i[c]=arguments[c];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"state",{interest_categories:[]}),y()(b()(n),"retrieveGroups",(function(){k()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((function(e){var t=e.interest_categories;n.setState({interest_categories:t})}))})),y()(b()(n),"render",(function(){var e=n.state.interest_categories,t=n.props,r=t.interests,i=t.onChange;return Object(a.createElement)(a.Fragment,null,e&&(e||[]).map((function(e){return e.interests.map((function(e){return Object(a.createElement)(o.CheckboxControl,{label:e.name,value:e.id,checked:r.includes(e.id),onChange:function(t){return i(e.id,t)},key:e.id})}))})))})),n}return v()(t,e),S()(t,[{key:"componentDidMount",value:function(){this.retrieveGroups()}}]),t}(a.Component),F=A;A.defaultProps={interests:[],onChange:function(){return null}};var P=function(e){function t(){var e;return u()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/mailchimp",method:"GET"};k()(t).then((function(t){var n=t.connect_url,r="connected"===t.code?1:2;e.setState({connected:r,connectURL:n})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"auditionNotification",(function(t){e.setState({audition:t}),e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(e.clearAudition,3e3)})),y()(b()(e),"clearAudition",(function(){e.setState({audition:null})})),y()(b()(e),"updateProcessingText",(function(t){(0,e.props.setAttributes)({processingLabel:t}),e.auditionNotification("processing")})),y()(b()(e),"updateSuccessText",(function(t){(0,e.props.setAttributes)({successLabel:t}),e.auditionNotification("success")})),y()(b()(e),"updateErrorText",(function(t){(0,e.props.setAttributes)({errorLabel:t}),e.auditionNotification("error")})),y()(b()(e),"updateEmailPlaceholder",(function(t){(0,e.props.setAttributes)({emailPlaceholder:t}),e.clearAudition()})),y()(b()(e),"labelForAuditionType",(function(t){var n=e.props.attributes,r=n.processingLabel,a=n.successLabel,i=n.errorLabel;return"processing"===t?r:"success"===t?a:"error"===t?i:null})),y()(b()(e),"roleForAuditionType",(function(e){return"error"===e?"alert":"status"})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,l=t.noticeUI,u=t.setAttributes,p=e.state,d=p.audition,h=p.connected,m=p.connectURL,f=n.emailPlaceholder,b=n.consentText,g=n.interests,v=n.processingLabel,j=n.successLabel,_=n.errorLabel,k=n.preview,O=n.signupFieldTag,x=n.signupFieldValue,S="wp-block-jetpack-mailchimp_",A=Object(a.createElement)(o.Placeholder,{icon:N,notices:c},Object(a.createElement)(o.Spinner,null)),P=Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:N,label:Object(i.__)("Mailchimp","jetpack"),notices:c,instructions:Object(i.__)("You need to connect your Mailchimp account and choose a list in order to start collecting Email subscribers.","jetpack")},Object(a.createElement)("div",null,Object(a.createElement)(o.Button,{isDefault:!0,isLarge:!0,href:m,target:"_blank"},Object(i.__)("Set up Mailchimp form","jetpack"))),Object(a.createElement)(o.Button,{isLink:!0,onClick:e.apiCall},Object(i.__)("Re-check Connection","jetpack"))),T=Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Text Elements","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Email Placeholder","jetpack"),value:f,onChange:e.updateEmailPlaceholder})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Notifications","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Processing text","jetpack"),value:v,onChange:e.updateProcessingText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Success text","jetpack"),value:j,onChange:e.updateSuccessText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Error text","jetpack"),value:_,onChange:e.updateErrorText})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Groups","jetpack")},Object(a.createElement)(F,{interests:g,onChange:function(e,t){var n=s()(new Set([].concat(s()(g),[e]))).filter((function(n){return!(n===e&&!t)&&n}));u({interests:n})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},Object(i.__)("Learn about groups","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Signup Location Tracking","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Tag","jetpack"),placeholder:Object(i.__)("SIGNUP"),value:O,onChange:function(e){return u({signupFieldTag:e})}}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Value","jetpack"),placeholder:Object(i.__)("website"),value:x,onChange:function(e){return u({signupFieldValue:e})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},Object(i.__)("Learn about signup location tracking","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Connection","jetpack")},Object(a.createElement)(o.ExternalLink,{href:m},Object(i.__)("Manage Connection","jetpack")))),M=w()(r,y()({},"".concat(S,"notication-audition"),d)),R=Object(a.createElement)("div",{className:M},Object(a.createElement)(o.TextControl,{"aria-label":f,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:function(){return!1},placeholder:f,title:Object(i.__)("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),Object(a.createElement)(E.a,e.props),Object(a.createElement)(C.RichText,{tagName:"p",placeholder:Object(i.__)("Write consent text","jetpack"),value:b,onChange:function(e){return u({consentText:e})},inlineToolbar:!0}),d&&Object(a.createElement)("div",{className:"".concat(S,"notification ").concat(S).concat(d),role:e.roleForAuditionType(d)},e.labelForAuditionType(d))),D=R;return Object(a.createElement)(a.Fragment,null,l,k&&D,!k&&0===h&&A,!k&&2===h&&P,!k&&1===h&&T,!k&&1===h&&R)})),e.state={audition:null,connected:0,connectURL:null},e.timeout=null,e}return v()(t,e),t}(a.Component),T=Object(o.withNotices)(P),N=(n(156),Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"}))),M={title:Object(i.__)("Mailchimp","jetpack"),icon:N,description:Object(i.__)("A form enabling readers to join a Mailchimp list.","jetpack"),category:"jetpack",keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("subscription","block search term","jetpack"),Object(i._x)("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:Object(i.__)("Enter your email","jetpack")},submitButtonText:{type:"string",default:Object(i.__)("Join my email list","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:Object(i.__)("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:Object(i.__)("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:Object(i.__)("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:Object(i.__)("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:T,save:function(){return null},example:{attributes:{preview:!0}}};Object(r.a)("mailchimp",M)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(2),o=n(1),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(32),w=n(23),E=n.n(w),C=n(5),x=n(45),S=n(49),A=n(31),F=n(14),P=n(13),T=n(6),N=n(40),M=n(56),R=n.n(M),D=n(50),z=n(57),I=(n(218),function(e){var t=e.stripeConnectUrl;return Object(a.createElement)(z.a,{buttonLabel:Object(o.__)("Connect","jetpack"),icon:Object(a.createElement)(R.a,{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:t,onClick:function(e){D.a.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:e})},title:Object(o.__)("Connect to Stripe to use this block on your site","jetpack"),subtitle:Object(o.__)("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})}),L=function(e){function t(){var e;s()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/memberships/status",method:"GET"};E()(t).then((function(t){if(t.errors&&Object.values(t.errors)&&Object.values(t.errors)[0][0])return e.setState({connected:null,connectURL:2}),void e.onError(Object.values(t.errors)[0][0]);var n=t.connect_url,r=t.products,a=t.should_upgrade_to_access_memberships,i=t.upgrade_url,o=t.site_slug,c=t.connected_account_id?1:2;e.setState({connected:c,connectURL:n,products:r,shouldUpgrade:a,upgradeURL:i,siteSlug:o})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"getCurrencyList",V.map((function(e){var t=Object(x.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(C.trimEnd)(t,"."))}}))),y()(b()(e),"handleCurrencyChange",(function(t){return e.setState({editedProductCurrency:t})})),y()(b()(e),"handleRenewIntervalChange",(function(t){return e.setState({editedProductRenewInterval:t})})),y()(b()(e),"handlePriceChange",(function(t){t=parseFloat(t),e.setState({editedProductPrice:t,editedProductPriceValid:!isNaN(t)&&t>=5})})),y()(b()(e),"handleTitleChange",(function(t){return e.setState({editedProductTitle:t,editedProductTitleValid:t.length>0})})),y()(b()(e),"saveProduct",(function(){if(e.state.editedProductTitle&&0!==e.state.editedProductTitle.length)if(!e.state.editedProductPrice||isNaN(e.state.editedProductPrice)||e.state.editedProductPrice<5)e.setState({editedProductPriceValid:!1});else{e.setState({addingMembershipAmount:2});var t={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:e.state.editedProductCurrency,price:e.state.editedProductPrice,title:e.state.editedProductTitle,interval:e.state.editedProductRenewInterval}};E()(t).then((function(t){e.setState({addingMembershipAmount:0,products:e.state.products.concat([{id:t.id,title:t.title,interval:t.interval,price:t.price,currency:t.currency}])}),e.setMembershipAmount(t.id)}),(function(t){e.setState({addingMembershipAmount:1}),e.onError(t.message)}))}else e.setState({editedProductTitleValid:!1})})),y()(b()(e),"renderAmount",(function(e){var t=Object(S.a)(parseFloat(e.price),e.currency);return"1 month"===e.interval?Object(o.sprintf)(Object(o.__)("%s / month","jetpack"),t):"1 year"===e.interval?Object(o.sprintf)(Object(o.__)("%s / year","jetpack"),t):"one-time"===e.interval?t:Object(o.sprintf)(Object(o.__)("%s / %s","jetpack"),t,e.interval)})),y()(b()(e),"renderAddMembershipAmount",(function(t){return 0!==e.state.addingMembershipAmount||t?2!==e.state.addingMembershipAmount?Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"membership-button__price-container"},Object(a.createElement)(i.SelectControl,{className:"membership-button__field membership-button__field-currency",label:Object(o.__)("Currency","jetpack"),onChange:e.handleCurrencyChange,options:e.getCurrencyList,value:e.state.editedProductCurrency}),Object(a.createElement)(i.TextControl,{label:Object(o.__)("Price","jetpack"),className:k()({"membership-membership-button__field":!0,"membership-button__field-price":!0,"membership-button__field-error":!e.state.editedProductPriceValid}),onChange:e.handlePriceChange,placeholder:Object(S.a)(0,e.state.editedProductCurrency),required:!0,min:"5.00",step:"1",type:"number",value:e.state.editedProductPrice||""})),Object(a.createElement)(i.TextControl,{className:k()({"membership-button__field":!0,"membership-button__field-error":!e.state.editedProductTitleValid}),label:Object(o.__)("Describe your subscription in a few words","jetpack"),onChange:e.handleTitleChange,placeholder:Object(o.__)("Subscription description","jetpack"),value:e.state.editedProductTitle}),Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Renew interval","jetpack"),onChange:e.handleRenewIntervalChange,options:[{label:Object(o.__)("Monthly","jetpack"),value:"1 month"},{label:Object(o.__)("Yearly","jetpack"),value:"1 year"}],value:e.state.editedProductRenewInterval}),Object(a.createElement)("div",null,Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:e.saveProduct},Object(o.__)("Add this plan","jetpack")),Object(a.createElement)(i.Button,{isLarge:!0,className:"membership-button__field-button",onClick:function(){return e.setState({addingMembershipAmount:0})}},Object(o.__)("Cancel","jetpack")))):void 0:Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,onClick:function(){return e.setState({addingMembershipAmount:1})}},Object(o.__)("Add a plan","jetpack"))})),y()(b()(e),"getFormattedPriceByProductId",(function(t){var n=e.state.products.filter((function(e){return parseInt(e.id)===parseInt(t)})).pop();return Object(S.a)(parseFloat(n.price),n.currency)})),y()(b()(e),"setMembershipAmount",(function(t){return e.props.setAttributes({planId:t,submitButtonText:e.getFormattedPriceByProductId(t)+Object(o.__)(" Contribution","jetpack")})})),y()(b()(e),"renderMembershipAmounts",(function(){return Object(a.createElement)("div",null,e.state.products.map((function(t){return Object(a.createElement)(i.Button,{className:"membership-button__field-button",isLarge:!0,key:t.id,onClick:function(){return e.setMembershipAmount(t.id)}},e.renderAmount(t))})))})),y()(b()(e),"renderDisclaimer",(function(){return Object(a.createElement)("div",{className:"membership-button__disclaimer"},Object(a.createElement)(i.ExternalLink,{href:"https://en.support.wordpress.com/recurring-payments-button/#related-fees"},Object(o.__)("Read more about Recurring Payments and related fees.","jetpack")))})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,s=e.state,l=s.connected,u=s.products,p=n.align,d=e.getConnectUrl(),h=Object(a.createElement)(T.InspectorControls,null,Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Product","jetpack")},Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Payment plan","jetpack"),value:e.props.attributes.planId,onChange:e.setMembershipAmount,options:e.state.products.map((function(t){return{label:e.renderAmount(t),value:t.id,key:t.id}}))})),Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Management","jetpack")},Object(a.createElement)(i.ExternalLink,{href:"https://wordpress.com/earn/payments/".concat(e.state.siteSlug)},Object(o.__)("See your earnings, subscriber list, and products.","jetpack")))),m=k()(r,["wp-block-button__link","components-button","is-primary","is-button","align".concat(p)]),f=Object(a.createElement)(O.a,{className:m,submitButtonText:e.props.attributes.submitButtonText,attributes:e.props.attributes,setAttributes:e.props.setAttributes});return Object(a.createElement)(a.Fragment,null,e.props.noticeUI,!e.hasUpgradeNudge&&!e.state.shouldUpgrade&&2===l&&Object(a.createElement)(I,{blockName:"recurring-payments",stripeConnectUrl:d}),!e.hasUpgradeNudge&&e.state.shouldUpgrade&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c,instructions:Object(o.__)("You'll need to upgrade your plan to use the Recurring Payments button.","jetpack")},Object(a.createElement)(i.Button,{isSecondary:!0,isLarge:!0,href:e.state.upgradeURL,target:"_blank"},Object(o.__)("Upgrade Your Plan","jetpack")),e.renderDisclaimer())),(0===l||2===e.state.addingMembershipAmount)&&!e.props.attributes.planId&&Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),notices:c},Object(a.createElement)(i.Spinner,null)),!e.state.shouldUpgrade&&!e.props.attributes.planId&&1===l&&0===u.length&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, first add at least one payment plan.","jetpack")),e.renderAddMembershipAmount(!0),e.renderDisclaimer()))),!e.state.shouldUpgrade&&!e.props.attributes.planId&&2!==e.state.addingMembershipAmount&&1===l&&u.length>0&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, select a previously created payment plan.","jetpack")),e.renderMembershipAmounts(),Object(a.createElement)("p",null,Object(o.__)("Or a new one.","jetpack")),e.renderAddMembershipAmount(!1),e.renderDisclaimer()))),e.state.products&&h,((e.hasUpgradeNudge||!e.state.shouldUpgrade)&&0!==l||e.props.attributes.planId)&&f,e.hasUpgradeNudge&&2===l&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments disclaimer-only"},e.renderDisclaimer()))})),e.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],siteSlug:"",editedProductCurrency:"USD",editedProductPrice:5,editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},e.timeout=null;var n=Object(N.a)("recurring-payments");return e.hasUpgradeNudge=!n.available&&"missing_plan"===n.unavailableReason,e}return v()(t,e),u()(t,[{key:"getConnectUrl",value:function(){var e,t=this.props.postId,n=this.state.connectURL;if(!Object(A.isURL)(n))return null;if(!t)return n;try{var r=Object(A.getQueryArg)(n,"state");e=JSON.parse(atob(r))}catch(a){return n}return e.from_editor_post_id=t,Object(A.addQueryArgs)(n,{state:btoa(JSON.stringify(e))})}}]),t}(a.Component),B=Object(F.compose)([Object(P.withSelect)((function(e){return{postId:e("core/editor").getCurrentPostId()}})),i.withNotices])(L),q=(n(226),Object(a.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},Object(a.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(i.G,null,Object(a.createElement)(i.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})))),U={title:Object(o.__)("Recurring Payments button","jetpack"),icon:q,description:Object(o.__)("Button allowing you to sell subscription products.","jetpack"),category:"jetpack",keywords:[Object(o._x)("sell","block search term","jetpack"),Object(o._x)("subscription","block search term","jetpack"),"stripe"],attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},edit:B,save:function(){return null},supports:{html:!1,align:!0}},V=["USD","AUD","BRL","CAD","CHF","DKK","EUR","GBP","HKD","JPY","MXN","NOK","NZD","SEK","SGD"];Object(r.a)("recurring-payments",U)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(5),c=n(2),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(23),O=n.n(k),w=n(32),E=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{subscriberCountString:""}),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.get_subscriber_count()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=e.setAttributes,s=t.subscribePlaceholder,l=t.showSubscribersTotal;return r?Object(a.createElement)("div",{className:n,role:"form"},Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Show total subscribers","jetpack"),checked:l,onChange:function(){o({showSubscribersTotal:!l})}}),Object(a.createElement)(c.TextControl,{placeholder:s,disabled:!0,onChange:function(){}}),Object(a.createElement)(w.a,this.props)):Object(a.createElement)("div",{className:n,role:"form"},l&&Object(a.createElement)("p",{role:"heading"},this.state.subscriberCountString),Object(a.createElement)(c.TextControl,{placeholder:s}),Object(a.createElement)(w.a,this.props))}},{key:"get_subscriber_count",value:function(){var e=this;O()({path:"/wpcom/v2/subscribers/count"}).then((function(t){t.hasOwnProperty("count")?e.setState({subscriberCountString:Object(i.sprintf)(Object(i._n)("Join %s other subscriber","Join %s other subscribers",t.count,"jetpack"),t.count)}):e.setState({subscriberCountString:Object(i.__)("Subscriber count unavailable","jetpack")})}))}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}}]),t}(a.Component);var C=n(20),x={title:Object(i.__)("Subscription Form","jetpack"),description:Object(a.createElement)("p",null,Object(i.__)("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:Object(C.a)(Object(a.createElement)(c.Path,{d:"M23 16v2h-3v3h-2v-3h-3v-2h3v-3h2v3h3zM20 2v9h-4v3h-3v4H4c-1.1 0-2-.9-2-2V2h18zM8 13v-1H4v1h4zm3-3H4v1h7v-1zm0-2H4v1h7V8zm7-4H4v2h14V4z"})),category:"jetpack",keywords:[Object(i._x)("subscribe","block search term","jetpack"),Object(i._x)("join","block search term","jetpack"),Object(i._x)("follow","block search term","jetpack")],attributes:{subscribePlaceholder:{type:"string",default:Object(i.__)("Email Address","jetpack")},subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:Object(i.__)("Subscribe","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},edit:E,save:function(e){var t=e.attributes,n=t.showSubscribersTotal,r=t.submitButtonClasses,i=t.customBackgroundButtonColor,o=t.customTextButtonColor,c=t.submitButtonText;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="'.concat(i,'" custom_text_button_color="').concat(o,'" submit_button_text="').concat(c,'" submit_button_classes="').concat(r,'" show_subscribers_total="').concat(n,'" ]'))},example:{attributes:{}},deprecated:[{attributes:{subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:function(e){return{subscribeButton:"",submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal,customBackgroundButtonColor:"",customTextButtonColor:"",submitButtonClasses:""}},isEligible:function(e){return!!Object(o.isEmpty)(e.subscribeButton)},save:function(e){var t=e.attributes;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_subscribers_total="'.concat(t.showSubscribersTotal,'" show_only_email_and_button="true"]'))}}]};Object(r.a)("subscriptions",x)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{areLikesEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_likes_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.areLikesEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show likes.","jetpack"),checked:t,onChange:function(e){n({jetpack_likes_enabled:e})}})))}))},h=n(37);Object(h.a)("likes",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(10),b=n.n(f),g=n(6),v=n(5),j=n(13),y=n(14);function _(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},Object(i.__)("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&Object(a.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":Object(i.__)("Placeholder image","jetpack")},Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},Object(a.createElement)("title",null,Object(i.__)("Grey square","jetpack")),Object(a.createElement)(o.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)("title",null,Object(i.__)("Icon for image","jetpack")),Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},Object(i.__)("August 3, 2018","jetpack")),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},Object(i.__)("In “Uncategorized”","jetpack")))}function k(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&Object(a.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},Object(a.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function O(e){var t=0,n=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:t=2;break;default:t=3}return Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(0,t).length},e.posts.slice(0,t)),n&&Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(t).length},e.posts.slice(t)))}var w=function(e){function t(){return s()(this,t),d()(this,m()(t).apply(this,arguments))}return b()(t,e),u()(t,[{key:"render",value:function(){for(var e=this.props,t=e.attributes,n=e.className,r=e.posts,c=e.setAttributes,s=e.instanceId,l=t.displayContext,u=t.displayDate,p=t.displayThumbnails,d=t.postLayout,h=t.postsToShow,m=[{icon:"grid-view",title:Object(i.__)("Grid View","jetpack"),onClick:function(){return c({postLayout:"grid"})},isActive:"grid"===d},{icon:"list-view",title:Object(i.__)("List View","jetpack"),onClick:function(){return c({postLayout:"list"})},isActive:"list"===d}],f=[],b=0;b<h;b++)r[b]?f.push(Object(a.createElement)(k,{id:"related-posts-".concat(s,"-post-").concat(b),key:"jp-relatedposts-i2-"+b,post:r[b],displayThumbnails:p,displayDate:u,displayContext:l})):f.push(Object(a.createElement)(_,{id:"related-posts-".concat(s,"-post-").concat(b),key:"related-post-placeholder-"+b,displayThumbnails:p,displayDate:u,displayContext:l}));return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(g.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Related Posts Settings","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display thumbnails","jetpack"),checked:p,onChange:function(e){return c({displayThumbnails:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display date","jetpack"),checked:u,onChange:function(e){return c({displayDate:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display context (category or tag)","jetpack"),checked:l,onChange:function(e){return c({displayContext:e})}}),Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Number of posts","jetpack"),value:h,onChange:function(e){return c({postsToShow:Math.min(e,6)})},min:1,max:6}))),Object(a.createElement)(g.BlockControls,null,Object(a.createElement)(o.Toolbar,{controls:m})),Object(a.createElement)("div",{className:n,id:"related-posts-".concat(s)},Object(a.createElement)("div",{className:"jp-relatedposts-i2","data-layout":d},Object(a.createElement)(O,{posts:f}))))}}]),t}(a.Component),E=Object(y.compose)(y.withInstanceId,Object(j.withSelect)((function(e){var t=e("core/editor").getCurrentPost;return{posts:Object(v.get)(t(),"jetpack-related-posts",[])}})))(w),C=(n(227),{title:Object(i.__)("Related Posts","jetpack"),icon:Object(a.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},Object(a.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),category:"jetpack",keywords:[Object(i._x)("Similar content","block search term","jetpack"),Object(i._x)("Linked","block search term","jetpack"),Object(i._x)("Connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:E,save:function(){return null},example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}});Object(r.a)("related-posts",C)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(6),w="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW",E=Object(i.__)("Search for a term or paste a Giphy URL","jetpack"),C=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"textControlRef",Object(a.createRef)()),y()(b()(n),"state",{captionFocus:!1,results:null}),y()(b()(n),"onFormSubmit",(function(e){e.preventDefault(),n.onSubmit()})),y()(b()(n),"onSubmit",(function(){var e=n.props.attributes.searchText;n.parseSearch(e)})),y()(b()(n),"parseSearch",(function(e){var t=null;-1!==e.indexOf("//giphy.com/gifs")&&(t=n.splitAndLast(n.splitAndLast(e,"/"),"-")),-1!==e.indexOf("//i.giphy.com")&&(t=n.splitAndLast(e,"/").replace(".gif",""));var r=e.match(/http[s]?:\/\/media.giphy.com\/media\/([A-Za-z0-9\-.]+)\/giphy.gif/);return r&&(t=r[1]),t?n.fetch(n.urlForId(t)):n.fetch(n.urlForSearch(e))})),y()(b()(n),"urlForSearch",(function(e){return"https://api.giphy.com/v1/gifs/search?q=".concat(encodeURIComponent(e),"&api_key=").concat(encodeURIComponent(w),"&limit=10")})),y()(b()(n),"urlForId",(function(e){return"https://api.giphy.com/v1/gifs/".concat(encodeURIComponent(e),"?api_key=").concat(encodeURIComponent(w))})),y()(b()(n),"splitAndLast",(function(e,t){var n=e.split(t);return n[n.length-1]})),y()(b()(n),"fetch",(function(e){var t=new XMLHttpRequest;t.open("GET",e),t.onload=function(){if(200===t.status){var e=JSON.parse(t.responseText),r=void 0!==e.data.images?[e.data]:e.data,a=r[0];if(!a.images)return;n.setState({results:r},(function(){n.selectGiphy(a)}))}},t.send()})),y()(b()(n),"selectGiphy",(function(e){var t=n.props.setAttributes,r=Math.floor(e.images.original.height/e.images.original.width*100),a="".concat(r,"%");t({giphyUrl:e.embed_url,paddingTop:a})})),y()(b()(n),"setFocus",(function(){n.textControlRef.current.querySelector("input").focus(),n.setState({captionFocus:!1})})),y()(b()(n),"hasSearchText",(function(){var e=n.props.attributes.searchText;return e&&e.length>0})),y()(b()(n),"thumbnailClicked",(function(e){n.selectGiphy(e)})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.setAttributes,l=n.align,u=n.caption,p=n.giphyUrl,d=n.searchText,h=n.paddingTop,m=this.state,f=m.captionFocus,b=m.results,g={paddingTop:h},v=k()(r,"align".concat(l)),j=Object(a.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:this.onFormSubmit,ref:this.textControlRef},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-gif_input",label:E,placeholder:E,onChange:function(e){return s({searchText:e})},value:d}),Object(a.createElement)(o.Button,{isDefault:!0,onClick:this.onSubmit},Object(i.__)("Search","jetpack")));return Object(a.createElement)("div",{className:v},Object(a.createElement)(O.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"components-panel__body-gif-branding"},Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},Object(a.createElement)(o.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),Object(a.createElement)(o.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"})))),p?Object(a.createElement)("figure",null,c&&j,c&&b&&b.length>1&&Object(a.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},b.map((function(t){var n={backgroundImage:"url(".concat(t.images.downsized_still.url,")")};return Object(a.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:t.id,onClick:function(){e.thumbnailClicked(t)},style:n})}))),Object(a.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:g},Object(a.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:this.setFocus,onKeyDown:this.setFocus,role:"button",tabIndex:"0"}),Object(a.createElement)("iframe",{src:p,title:d})),(!O.RichText.isEmpty(u)||c)&&!!p&&Object(a.createElement)(O.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:f,unstableOnFocus:function(){e.setState({captionFocus:!0})},onChange:function(e){return s({caption:e})},placeholder:Object(i.__)("Write caption…","jetpack"),tagName:"figcaption",value:u})):Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:S,label:x},j))}}]),t}(a.Component),x=(n(130),n(154),Object(i.__)("GIF","jetpack")),S=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),A={title:x,icon:S,category:"jetpack",keywords:[Object(i._x)("animated","block search term","jetpack"),Object(i._x)("giphy","block search term","jetpack"),Object(i._x)("image","block search term","jetpack")],description:Object(i.__)("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:C,save:function(){return null},example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}};Object(r.a)("gif",A)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{isSharingEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_sharing_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.isSharingEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show sharing buttons.","jetpack"),checked:t,onChange:function(e){n({jetpack_sharing_enabled:e})}})))}))},h=n(37);Object(h.a)("sharing",d)},function(e,t,n){"use strict";n.r(t);var r=n(7),a=n.n(r),i=n(11),o=n.n(i),c=n(8),s=n.n(c),l=n(9),u=n.n(l),p=n(10),d=n.n(p),h=n(0),m=n(1),f=n(5),b=n(2),g=n(13),v=n(4),j=n.n(v),y=n(3),_=n.n(y),k=(n(229),function(e){function t(){var e,n;a()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=s()(this,(e=u()(t)).call.apply(e,[this].concat(i))),_()(j()(n),"state",{hasCopied:!1}),_()(j()(n),"onCopy",(function(){return n.setState({hasCopied:!0})})),_()(j()(n),"onFinishCopy",(function(){return n.setState({hasCopied:!1})})),_()(j()(n),"onFocus",(function(e){return e.target.select()})),n}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.link,t=this.state.hasCopied;return e?Object(h.createElement)("div",{className:"jetpack-clipboard-input"},Object(h.createElement)(b.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),Object(h.createElement)(b.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?Object(m.__)("Copied!","jetpack"):Object(m._x)("Copy","verb","jetpack"))):null}}]),t}(h.Component)),O=n(44),w={render:function(){return Object(h.createElement)(C,null)}},E=function(e){function t(){return a()(this,t),s()(this,u()(t).apply(this,arguments))}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.shortlink;return e?Object(h.createElement)(O.a,null,Object(h.createElement)(b.PanelBody,{title:Object(m.__)("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},Object(h.createElement)(k,{link:e}))):null}}]),t}(h.Component),C=Object(g.withSelect)((function(e){var t=e("core/editor").getCurrentPost();return{shortlink:Object(f.get)(t,"jetpack_shortlink","")}}))(E),x=n(37);Object(x.a)("shortlinks",w)},,,,,function(e,t,n){},function(e,t,n){n(255),n(254),n(250),n(244),n(242),n(249),n(263),n(261),n(258),n(243),n(252),n(248),n(256),n(241),n(251),n(259),n(262),n(257),n(264),n(265),n(245),n(247),n(260),n(240),n(246),n(253),n(303),e.exports=n(304)},function(e,t,n){},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(20),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(10),g=n.n(b),v=(n(270),function(e){function t(){return l()(this,t),h()(this,f()(t).apply(this,arguments))}return g()(t,e),p()(t,[{key:"render",value:function(){return Object(a.createElement)("p",null,Object(i.__)("Coming soon","jetpack"))}}]),t}(a.Component)),j={title:Object(i.__)("Amazon","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Amazon","jetpack")),Object(a.createElement)(o.ExternalLink,{href:"#"},Object(i.__)("Learn more about Amazon","jetpack"))),icon:Object(c.a)(Object(a.createElement)(o.Path,{d:"M9 15h2V9H9v6zm1-10c-.5 0-1 .5-1 1s.5 1 1 1 1-.5 1-1-.5-1-1-1zm0-4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z"})),category:"jetpack",keywords:[],supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},edit:v,save:function(){return null},example:{attributes:{}}};Object(r.a)("amazon",j)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(52),c=(n(272),n(44)),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(14),O=n(5),w=n(13),E=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"onMessageChange",(function(e){n.props.updateSeoDescription(e.target.value)})),n}return j()(t,e),p()(t,[{key:"render",value:function(){var e=this.props.seoDescription;return Object(r.createElement)("div",{className:"jetpack-seo-message-box"},Object(r.createElement)("textarea",{value:e,onChange:this.onMessageChange,placeholder:Object(a.__)("Write a description…","jetpack"),rows:4}),Object(r.createElement)("div",{className:"jetpack-seo-character-count"},Object(a.sprintf)(Object(a._n)("%d character","%d characters",e.length,"jetpack"),e.length)))}}]),t}(r.Component),C=Object(k.compose)([Object(w.withSelect)((function(e){return{seoDescription:Object(O.get)(e("core/editor").getEditedPostAttribute("meta"),["advanced_seo_description"],"")}})),Object(w.withDispatch)((function(e){return{updateSeoDescription:function(t){e("core/editor").editPost({meta:{advanced_seo_description:t}})}}}))])(E),x={render:function(){return Object(r.createElement)(r.Fragment,null,Object(r.createElement)(c.a,null,Object(r.createElement)(i.PanelBody,{title:Object(a.__)("SEO Description","jetpack")},Object(r.createElement)(C,null))),Object(r.createElement)(o.PluginPrePublishPanel,{initialOpen:!0,id:"seo-title",title:Object(r.createElement)("span",{id:"seo-defaults",key:"seo-title-span"},Object(a.__)("SEO Description","jetpack"))},Object(r.createElement)(C,null)))}},S=n(37);Object(S.a)("seo",x)}])); \ No newline at end of file
+/*! For license information please see editor-beta.js.LICENSE.txt */
+!function(){var e,t,n,r,a,o,i={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31354),a=n(64803);function o(e){var t=(0,r.Z)(e);return function(e){return(0,a.Z)(t,e)}}},64803:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function a(e,t){var n,a,o,i,s,l,c=[];for(n=0;n<e.length;n++){if(s=e[n],i=r[s]){for(a=i.length,o=Array(a);a--;)o[a]=c.pop();try{l=i.apply(null,o)}catch(e){return e}}else l=t.hasOwnProperty(s)?t[s]:+s;c.push(l)}return c[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8172);function a(e){var t=(0,r.Z)(e);return function(e){return+t({n:e})}}},31354:function(e,t,n){"use strict";var r,a,o,i;function s(e){for(var t,n,s,l,c=[],u=[];t=e.match(i);){for(n=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(o[n]){if(o[n][0]===l){n=o[n][1]||n;break}}else if(a.indexOf(l)>=0||r[l]<r[n]){u.push(l);break}c.push(l)}o[n]||u.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&c.push(e),c.concat(u.reverse())}n.d(t,{Z:function(){return s}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},a=["(","?"],o={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function a(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(r,(function(){var e,r,a,o,i;return e=arguments[3],r=arguments[5],"%"===(o=arguments[9])?"%":("*"===(a=arguments[7])&&(a=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(i=t[0][r]):(void 0===e&&(e=n),n++,i=t[e-1]),"f"===o?i=parseFloat(i)||0:"d"===o&&(i=parseInt(i)||0),void 0!==a&&("f"===o?i=i.toFixed(a):"s"===o&&(i=i.substr(0,a))),null!=i?i:"")}))}},22607:function(e,t,n){"use strict";var r=n(69307);t.Z=function(e){let{icon:t,size:n=24,...a}=e;return(0,r.cloneElement)(t,{width:n,height:n,...a})}},15284:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z"}));t.Z=o},84675:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"}));t.Z=o},35127:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"}));t.Z=o},41221:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"}));t.Z=o},7345:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},(0,r.createElement)(a.Path,{d:"M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z"}));t.Z=o},31266:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"}));t.Z=o},81326:function(e,t){var n;!function(){"use strict";var r=function(){function e(){}function t(e,t){for(var n=t.length,r=0;r<n;++r)a(e,t[r])}e.prototype=Object.create(null);var n={}.hasOwnProperty;var r=/\s+/;function a(e,a){if(a){var o=typeof a;"string"===o?function(e,t){for(var n=t.split(r),a=n.length,o=0;o<a;++o)e[n[o]]=!0}(e,a):Array.isArray(a)?t(e,a):"object"===o?function(e,t){if(t.toString===Object.prototype.toString)for(var r in t)n.call(t,r)&&(e[r]=!!t[r]);else e[t.toString()]=!0}(e,a):"number"===o&&function(e,t){e[t]=!0}(e,a)}}return function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var o=new e;t(o,r);var i=[];for(var s in o)o[s]&&i.push(s);return i.join(" ")}}();e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},92213:function(e){!function(){"use strict";var t=[],n=3988292384;function r(e){var t,r,a,o,i=-1;for(t=0,a=e.length;t<a;t+=1){for(o=255&(i^e[t]),r=0;r<8;r+=1)1==(1&o)?o=o>>>1^n:o>>>=1;i=i>>>8^o}return-1^i}function a(e,n){var r,o,i;if(void 0!==a.crc&&n&&e||(a.crc=-1,e)){for(r=a.crc,o=0,i=e.length;o<i;o+=1)r=r>>>8^t[255&(r^e[o])];return a.crc=r,-1^r}}!function(){var e,r,a;for(r=0;r<256;r+=1){for(e=r,a=0;a<8;a+=1)1&e?e=n^e>>>1:e>>>=1;t[r]=e>>>0}}(),e.exports=function(e,t){var n;e="string"==typeof e?(n=e,Array.prototype.map.call(n,(function(e){return e.charCodeAt(0)}))):e;return((t?r(e):a(e))>>>0).toString(16)},e.exports.direct=r,e.exports.table=a}()},97115:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp(t,"gi"),r=new RegExp("("+t+")+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],a(n),a(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n),r=1;r<t.length;r++)t=(e=a(t,r).join("")).match(n);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=r.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var a=o(n[0]);a!==n[0]&&(t[n[0]]=a)}n=r.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),s=0;s<i.length;s++){var l=i[s];e=e.replace(new RegExp(l,"g"),t[l])}return e}(e)}}},89453:function(e,t){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},2571:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function a(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",a),n([].slice.call(arguments))}f(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&f(e,"error",t,n)}(e,a,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var i=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var a,o,i,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),i=o[t]),void 0===i)i=o[t]=n,++e._eventsCount;else if("function"==typeof i?i=o[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(a=l(e))>0&&i.length>a&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=u.bind(r);return a.listener=n,r.wrapFn=a,a}function d(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):h(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function a(o){r.once&&e.removeEventListener(t,a),n(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var a="error"===e,o=this._events;if(void 0!==o)a=a&&void 0===o.error;else if(!a)return!1;if(a){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,a,o,i;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){i=n[o].listener,a=o;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(a=o[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},95946:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),a=Array.isArray(t),o=0;o<r.length;o++){var i=r[o],s=e[i];(a?-1!==t.indexOf(i):t(i,s,e))&&(n[i]=s)}return n}},95949:function(e,t,n){"use strict";var r=n(53566),a=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,o=8;o<this.padLength;o++)r[a++]=0;return r}},69016:function(e,t,n){"use strict";var r=n(53566),a=n(95949),o=n(47574),i=r.rotl32,s=r.sum32,l=r.sum32_5,c=o.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],o=this.h[1],u=this.h[2],d=this.h[3],m=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),f=l(i(a,5),c(h,o,u,d),m,n[r],p[h]);m=d,d=u,u=i(o,30),o=a,a=f}this.h[0]=s(this.h[0],a),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],u),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],m)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function a(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?i(t,n,r):2===e?o(t,n,r):void 0},t.ch32=a,t.maj32=o,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),a=n(59503);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var i=e.charCodeAt(a);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):o(e,a)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++a)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=i(a)),n+=l(a.toString(16))}return n},t.zero2=s,t.zero8=l,t.join32=function(e,t,n,a){var o=n-t;r(o%4==0);for(var i=new Array(o/4),s=0,l=t;s<i.length;s++,l+=4){var c;c="big"===a?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[s]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var o=e[r];"big"===t?(n[a]=o>>>24,n[a+1]=o>>>16&255,n[a+2]=o>>>8&255,n[a+3]=255&o):(n[a+3]=o>>>24,n[a+2]=o>>>16&255,n[a+1]=o>>>8&255,n[a]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],o=r+e[t+1]>>>0,i=(o<r?1:0)+n+a;e[t]=i>>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,o,i,s){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+o>>>0)<o?1:0,e+n+a+i+(l+=(c=c+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,o,i,s){return t+r+o+s>>>0},t.sum64_5_hi=function(e,t,n,r,a,o,i,s,l,c){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+o>>>0)<o?1:0,u+=(p=p+s>>>0)<s?1:0,e+n+a+i+l+(u+=(p=p+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,o,i,s,l,c){return t+r+o+s+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},88617:function(e,t,n){"use strict";var r=n(59128),a=n(98086),o=n(90922),i=n.n(o),s=n(94481),l=n(88090),c=n(75565),u=n.n(c),p=n(69016),d=n.n(p),m=n(2571),h=n(702),f=n(92846),g=i()("i18n-calypso"),b="number_format_decimals",v="number_format_thousands_sep",k="messages",y=[function(e){return e}],E={};function w(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function _(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&w("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",_(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&w("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",_(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function j(e,t){return e.dcnpgettext(k,t.context,t.original,t.plural,t.count)}function S(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t)),a=r.context?r.context+""+r.original:r.original;if(e.state.locale[a])return j(e.state.tannin,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:u()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new m.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,f.Z)(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var o=e[""]["key-hash"],i=function(e,t){var n=!1===t?"":String(t);if(void 0!==E[n+e])return E[n+e];var r=d()().update(e).digest("hex");return E[n+e]=t?r.substr(0,t):r},s=function(e){return function(t){return t.context?(t.original=i(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=i(t.original,e),t}};if("sha1"===o.substr(0,4))if(4===o.length)y.push(s(!1));else{var c=o.substr(5).indexOf("-");if(c<0){var u=Number(o.substr(5));y.push(s(u))}else for(var p=Number(o.substr(5,c)),m=Number(o.substr(6+c)),h=p;h<=m;h++)y.push(s(h))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new l.Z((0,a.Z)({},k,this.state.locale)),this.state.numberFormatSettings.decimal_point=j(this.state.tannin,C([b])),this.state.numberFormatSettings.thousands_sep=j(this.state.tannin,C([v])),this.state.numberFormatSettings.decimal_point===b&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===v&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.isRtl=function(){return"rtl"===this.state.textDirection},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!S(this,C(arguments))},x.prototype.translate=function(){var e=C(arguments),t=S(this,e);if(t||(t=j(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=h.Z.apply(void 0,(0,r.Z)(n))}catch(e){if(!window||!window.console)return;var a=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[a](e):window.console[a]("i18n sprintf error:",n)}}return e.components&&(t=(0,s.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},x.prototype.reRenderTranslations=function(){g("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=x},63807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return l}});var r=n(88617),a=n(42928),o=n(80975),i=n(24531),s=new r.Z,l=s.numberFormat.bind(s),c=(s.translate.bind(s),s.configure.bind(s),s.setLocale.bind(s),s.getLocale.bind(s),s.getLocaleSlug.bind(s),s.addTranslations.bind(s),s.reRenderTranslations.bind(s),s.registerComponentUpdateHook.bind(s),s.registerTranslateHook.bind(s),s.state,s.stateObserver,s.on.bind(s),s.off.bind(s),s.emit.bind(s),(0,a.Z)(s),(0,o.Z)(s),(0,i.Z)(s));c.useRtl,c.withRtl},42928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(59591),a=n(71687),o=n(93772),i=n(55200),s=n(82104),l=n(9057),c=n(98086),u=n(99196),p=n.n(u);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var u,d,m=n.displayName||n.name||"";return d=u=function(u){(0,s.Z)(m,u);var d=(0,l.Z)(m);function m(){var e;(0,a.Z)(this,m);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e=d.call.apply(d,[this].concat(n)),(0,c.Z)((0,i.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,i.Z)(e))),e}return(0,o.Z)(m,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var a=(0,r.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,a)}}]),m}(p().Component),(0,c.Z)(u,"displayName","Localized("+m+")"),d}}},92846:function(e,t,n){"use strict";function r(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,o=isFinite(+t)?Math.abs(t):0,i=void 0===r?",":r,s=void 0===n?".":n,l="";return l=(o?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,o):""+Math.round(a)).split("."),l[0].length>3&&(l[0]=l[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,i)),(l[1]||"").length<o&&(l[1]=l[1]||"",l[1]+=new Array(o-l[1].length+1).join("0")),l.join(s)}n.d(t,{Z:function(){return r}})},24531:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(95672),a=n(99196),o=n.n(a),i=n(20036),s=n(94333);function l(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,i.useSubscription)(t)}var l=(0,s.createHigherOrderComponent)((function(e){return(0,a.forwardRef)((function(t,a){var i=n();return o().createElement(e,(0,r.Z)({},t,{isRtl:i,ref:a}))}))}),"WithRTL");return{useRtl:n,withRtl:l}}},80975:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(50572),a=n(99196),o=n.n(a);function i(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=o().useState(t),a=(0,r.Z)(n,2),i=a[0],s=a[1];return o().useEffect((function(){var n=function(){return s(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),i}}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},30045:function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function o(e){return"[object Function]"===a(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var s={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var l={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(49872)(e.__opts__),r=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(s(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(s(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(s(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(s(t.tpl_host_fuzzy_test),"i");var l=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?o(n.validate)?r.validate=n.validate:c(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(o(n.normalize)?r.normalize=n.normalize:n.normalize?c(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?c(t,n):l.push(t)}})),l.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function m(e,t){if(!(this instanceof m))return new m(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||s.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},s,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},l,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},u(this)}m.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},m.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},m.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,o,i,s,l;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(a=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=n.index+n[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,i=r.index+r[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},m.prototype.pretest=function(e){return this.re.pretest.test(e)},m.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},m.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},m.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},m.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},m.prototype.onCompile=function(){},e.exports=m},49872:function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(26285).source,t.src_Cc=n(84080).source,t.src_Z=n(76202).source,t.src_P=n(87696).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+"[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},47595:function(e,t,n){"use strict";const r=n(22199),a=Symbol("max"),o=Symbol("length"),i=Symbol("lengthCalculator"),s=Symbol("allowStale"),l=Symbol("maxAge"),c=Symbol("dispose"),u=Symbol("noDisposeOnSet"),p=Symbol("lruList"),d=Symbol("cache"),m=Symbol("updateAgeOnGet"),h=()=>1;const f=(e,t,n)=>{const r=e[d].get(t);if(r){const t=r.value;if(g(e,t)){if(v(e,r),!e[s])return}else n&&(e[m]&&(r.value.now=Date.now()),e[p].unshiftNode(r));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[o]>e[a])for(let t=e[p].tail;e[o]>e[a]&&null!==t;){const n=t.prev;v(e,t),t=n}},v=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[o]-=n.length,e[d].delete(n.key),e[p].removeNode(t)}};class k{constructor(e,t,n,r,a){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=a||0}}const y=(e,t,n,r)=>{let a=n.value;g(e,a)&&(v(e,n),e[s]||(a=void 0)),a&&t.call(r,a.value,a.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[a]=e.max||1/0;const t=e.length||h;if(this[i]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[m]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[a]=e||1/0,b(this)}get max(){return this[a]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[i]&&(this[i]=e,this[o]=0,this[p].forEach((e=>{e.length=this[i](e.value,e.key),this[o]+=e.length}))),b(this)}get lengthCalculator(){return this[i]}get length(){return this[o]}get itemCount(){return this[p].length}rforEach(e,t){t=t||this;for(let n=this[p].tail;null!==n;){const r=n.prev;y(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[p].head;null!==n;){const r=n.next;y(this,e,n,t),n=r}}keys(){return this[p].toArray().map((e=>e.key))}values(){return this[p].toArray().map((e=>e.value))}reset(){this[c]&&this[p]&&this[p].length&&this[p].forEach((e=>this[c](e.key,e.value))),this[d]=new Map,this[p]=new r,this[o]=0}dump(){return this[p].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[p]}set(e,t,n){if((n=n||this[l])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[i](t,e);if(this[d].has(e)){if(s>this[a])return v(this,this[d].get(e)),!1;const i=this[d].get(e).value;return this[c]&&(this[u]||this[c](e,i.value)),i.now=r,i.maxAge=n,i.value=t,this[o]+=s-i.length,i.length=s,this.get(e),b(this),!0}const m=new k(e,t,s,r,n);return m.length>this[a]?(this[c]&&this[c](e,t),!1):(this[o]+=m.length,this[p].unshift(m),this[d].set(e,this[p].head),b(this),!0)}has(e){if(!this[d].has(e))return!1;const t=this[d].get(e).value;return!g(this,t)}get(e){return f(this,e,!0)}peek(e){return f(this,e,!1)}pop(){const e=this[p].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[d].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],a=r.e||0;if(0===a)this.set(r.k,r.v);else{const e=a-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[d].forEach(((e,t)=>f(this,t,!1)))}}},75565:function(e,t,n){var r=n(2571),a=n(59503);function o(e){if(!(this instanceof o))return new o(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=o,a(o,r.EventEmitter),Object.defineProperty(o.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),o.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},o.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},o.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},o.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},o.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},o.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},o.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},o.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},69472:function(e,t,n){"use strict";e.exports=n(98092)},95926:function(e,t,n){"use strict";e.exports=n(60231)},4692:function(e){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},75501:function(e){"use strict";var t="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",r=new RegExp("^(?:"+t+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),a=new RegExp("^(?:"+t+"|"+n+")");e.exports.n=r,e.exports.q=a},58201:function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function o(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function i(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(95926);var p=/[&<>"]/,d=/[&<>"]/g,m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return m[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var g=n(87696);t.lib={},t.lib.mdurl=n(36664),t.lib.ucmicro=n(39126),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?i(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=i,t.escapeHtml=function(e){return p.test(e)?e.replace(d,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},69486:function(e,t,n){"use strict";t.parseLinkLabel=n(53020),t.parseLinkDestination=n(80113),t.parseLinkTitle=n(7266)},80113:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(a=e.charCodeAt(t)))return s;if(60===a)return s;if(62===a)return s.pos=t+1,s.str=r(e.slice(i+1,t)),s.ok=!0,s;92===a&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(a=e.charCodeAt(t))&&!(a<32||127===a);)if(92===a&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===a&&++o>32)return s;if(41===a){if(0===o)break;o--}t++}return i===t||0!==o||(s.str=r(e.slice(i,t)),s.lines=0,s.pos=t,s.ok=!0),s}},53020:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,r=1;e.pos<l;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)r++;else if(n)return e.pos=c,-1}return a&&(s=e.pos),e.pos=c,s}},7266:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=0,s=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(o=e.charCodeAt(t))&&39!==o&&40!==o)return l;for(t++,40===o&&(o=41);t<n;){if((a=e.charCodeAt(t))===o)return l.pos=t+1,l.lines=i,l.str=r(e.slice(s+1,t)),l.ok=!0,l;if(40===a&&41===o)return l;10===a?i++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&i++),t++}return l}},98092:function(e,t,n){"use strict";var r=n(58201),a=n(69486),o=n(54065),i=n(36020),s=n(63435),l=n(92241),c=n(30045),u=n(36664),p=n(15661),d={default:n(36101),zero:n(67545),commonmark:n(45815)},m=/^(vbscript|javascript|file|data):/,h=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!m.test(t)||!!h.test(t)}var g=["http:","https:","mailto:"];function b(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(e){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(e){}return u.decode(u.format(t),u.decode.defaultChars+"%")}function k(e,t){if(!(this instanceof k))return new k(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new i,this.renderer=new o,this.linkify=new c,this.validateLink=f,this.normalizeLink=b,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}k.prototype.set=function(e){return r.assign(this.options,e),this},k.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},k.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},k.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},k.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},k.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},k.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},k.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},k.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=k},63435:function(e,t,n){"use strict";var r=n(21473),a=[["table",n(33168),["paragraph","reference"]],["code",n(63390)],["fence",n(7477),["paragraph","reference","blockquote","list"]],["blockquote",n(61264),["paragraph","reference","blockquote","list"]],["hr",n(94438),["paragraph","reference","blockquote","list"]],["list",n(90185),["paragraph","reference","blockquote"]],["reference",n(48707)],["heading",n(66926),["paragraph","reference","blockquote"]],["lheading",n(22288)],["html_block",n(77476),["paragraph","reference","blockquote"]],["paragraph",n(13958)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}o.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),o=a.length,i=t,s=!1,l=e.md.options.maxNesting;i<n&&(e.line=i=e.skipEmptyLines(i),!(i>=n))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=l){e.line=n;break}for(r=0;r<o&&!a[r](e,i,n,!1);r++);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(i=e.line)<n&&e.isEmpty(i)&&(s=!0,i++,e.line=i)}},o.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},o.prototype.State=n(62389),e.exports=o},36020:function(e,t,n){"use strict";var r=n(21473),a=[["normalize",n(75615)],["block",n(37262)],["inline",n(50127)],["linkify",n(65644)],["replacements",n(652)],["smartquotes",n(34335)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}o.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},o.prototype.State=n(53706),e.exports=o},92241:function(e,t,n){"use strict";var r=n(21473),a=[["text",n(96733)],["newline",n(22051)],["escape",n(52960)],["backticks",n(61191)],["strikethrough",n(30832).w],["emphasis",n(98052).w],["link",n(68839)],["image",n(39590)],["autolink",n(84145)],["html_inline",n(20354)],["entity",n(44659)]],o=[["balance_pairs",n(93296)],["strikethrough",n(30832).g],["emphasis",n(98052).g],["text_collapse",n(72300)]];function i(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<o.length;e++)this.ruler2.push(o[e][0],o[e][1])}i.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),o=a.length,i=e.md.options.maxNesting,s=e.cache;if(void 0===s[r]){if(e.level<i)for(n=0;n<o&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,s[r]=e.pos}else e.pos=s[r]},i.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,n,r){var a,o,i,s=new this.State(e,t,n,r);for(this.tokenize(s),i=(o=this.ruler2.getRules("")).length,a=0;a<i;a++)o[a](s)},i.prototype.State=n(4160),e.exports=i},45815:function(e){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},36101:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},67545:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},54065:function(e,t,n){"use strict";var r=n(58201).assign,a=n(58201).unescapeAll,o=n(58201).escapeHtml,i={};function s(){this.rules=r({},i)}i.code_inline=function(e,t,n,r,a){var i=e[t];return"<code"+a.renderAttrs(i)+">"+o(e[t].content)+"</code>"},i.code_block=function(e,t,n,r,a){var i=e[t];return"<pre"+a.renderAttrs(i)+"><code>"+o(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,n,r,i){var s,l,c,u,p,d=e[t],m=d.info?a(d.info).trim():"",h="",f="";return m&&(h=(c=m.split(/(\s+)/g))[0],f=c.slice(2).join("")),0===(s=n.highlight&&n.highlight(d.content,h,f)||o(d.content)).indexOf("<pre")?s+"\n":m?(l=d.attrIndex("class"),u=d.attrs?d.attrs.slice():[],l<0?u.push(["class",n.langPrefix+h]):(u[l]=u[l].slice(),u[l][1]+=" "+n.langPrefix+h),p={attrs:u},"<pre><code"+i.renderAttrs(p)+">"+s+"</code></pre>\n"):"<pre><code"+i.renderAttrs(d)+">"+s+"</code></pre>\n"},i.image=function(e,t,n,r,a){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=a.renderInlineAsText(o.children,n,r),a.renderToken(e,t,n)},i.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return o(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+o(e.attrs[t][0])+'="'+o(e.attrs[t][1])+'"';return r},s.prototype.renderToken=function(e,t,n){var r,a="",o=!1,i=e[t];return i.hidden?"":(i.block&&-1!==i.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===i.nesting?"</":"<")+i.tag,a+=this.renderAttrs(i),0===i.nesting&&n.xhtmlOut&&(a+=" /"),i.block&&(o=!0,1===i.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden||-1===r.nesting&&r.tag===i.tag)&&(o=!1)),a+=o?">\n":">")},s.prototype.renderInline=function(e,t,n){for(var r,a="",o=this.rules,i=0,s=e.length;i<s;i++)void 0!==o[r=e[i].type]?a+=o[r](e,i,t,n,this):a+=this.renderToken(e,i,t);return a},s.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,o=e.length;a<o;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},s.prototype.render=function(e,t,n){var r,a,o,i="",s=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(o=e[r].type)?i+=this.renderInline(e[r].children,t,n):void 0!==s[o]?i+=s[e[r].type](e,r,t,n,this):i+=this.renderToken(e,r,t,n);return i},e.exports=s},21473:function(e){"use strict";function t(){this.__rules__=[],this.__cache__=null}t.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},t.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},t.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},t.prototype.before=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.after=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},t.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},t.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},t.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},t.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=t},61264:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j=e.lineMax,S=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(S++))return!1;if(a)return!0;for(l=m=e.sCount[t]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[t]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h=[e.bMarks[t]],e.bMarks[t]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[t]+(o?1:0))%4:m++,S++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=S>=x,v=[e.sCount[t]],e.sCount[t]=m-l,k=[e.tShift[t]],e.tShift[t]=S-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",d=t+1;d<n&&(C=e.sCount[d]<e.blkIndent,!((S=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(S++)||C){if(u)break;for(E=!1,s=0,c=w.length;s<c;s++)if(w[s](e,d,n,!0)){E=!0;break}if(E){e.lineMax=d,0!==e.blkIndent&&(h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(l=m=e.sCount[d]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[d]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h.push(e.bMarks[d]),e.bMarks[d]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[d]+(o?1:0))%4:m++,S++;u=S>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=m-l,k.push(e.tShift[d]),e.tShift[d]=S-e.bMarks[d]}for(g=e.blkIndent,e.blkIndent=0,(_=e.push("blockquote_open","blockquote",1)).markup=">",_.map=p=[t,0],e.md.block.tokenize(e,t,d),(_=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=j,e.parentType=b,p[1]=e.line,s=0;s<k.length;s++)e.bMarks[s+t]=h[s],e.tShift[s+t]=k[s],e.sCount[s+t]=v[s],e.bsCount[s+t]=f[s];return e.blkIndent=g,!0}},63390:function(e){"use strict";e.exports=function(e,t,n){var r,a,o;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(o=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),o.map=[t,e.line],!0}},7477:function(e){"use strict";e.exports=function(e,t,n,r){var a,o,i,s,l,c,u,p=!1,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>m)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(l=d,(o=(d=e.skipChars(d,a))-l)<3)return!1;if(u=e.src.slice(l,d),i=e.src.slice(d,m),96===a&&i.indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((d=l=e.bMarks[s]+e.tShift[s])<(m=e.eMarks[s])&&e.sCount[s]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[s]-e.blkIndent>=4||(d=e.skipChars(d,a))-l<o||(d=e.skipSpaces(d))<m)){p=!0;break}return o=e.sCount[t],e.line=s+(p?1:0),(c=e.push("fence","code",0)).info=i,c.content=e.getLines(t+1,s,o,!0),c.markup=u,c.map=[t,e.line],!0}},66926:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(o=e.src.charCodeAt(c))||c>=u)return!1;for(i=1,o=e.src.charCodeAt(++c);35===o&&c<u&&i<=6;)i++,o=e.src.charCodeAt(++c);return!(i>6||c<u&&!r(o))&&(a||(u=e.skipSpacesBack(u,c),(s=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(l=e.push("heading_open","h"+String(i),1)).markup="########".slice(0,i),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(i),-1)).markup="########".slice(0,i)),!0)}},94438:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(o=e.src.charCodeAt(c++))&&45!==o&&95!==o)return!1;for(i=1;c<u;){if((s=e.src.charCodeAt(c++))!==o&&!r(s))return!1;s===o&&i++}return!(i<3)&&(a||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(i+1).join(String.fromCharCode(o))),!0)}},77476:function(e,t,n){"use strict";var r=n(4692),a=n(75501).q,o=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),a=0;a<o.length&&!o[a][0].test(l);a++);if(a===o.length)return!1;if(r)return o[a][2];if(i=t+1,!o[a][1].test(l))for(;i<n&&!(e.sCount[i]<e.blkIndent);i++)if(c=e.bMarks[i]+e.tShift[i],u=e.eMarks[i],l=e.src.slice(c,u),o[a][1].test(l)){0!==l.length&&i++;break}return e.line=i,(s=e.push("html_block","",0)).map=[t,i],s.content=e.getLines(t,i,e.blkIndent,!0),!0}},22288:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s,l,c,u,p,d,m=t+1,h=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";m<n&&!e.isEmpty(m);m++)if(!(e.sCount[m]-e.blkIndent>3)){if(e.sCount[m]>=e.blkIndent&&(l=e.bMarks[m]+e.tShift[m])<(c=e.eMarks[m])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[m]<0)){for(a=!1,o=0,i=h.length;o<i;o++)if(h[o](e,m,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,m,e.blkIndent,!1).trim(),e.line=m+1,(s=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),s.map=[t,e.line],(s=e.push("inline","",0)).content=r,s.map=[t,e.line-1],s.children=[],(s=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},90185:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n,a,o,i;return a=e.bMarks[t]+e.tShift[t],o=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n||a<o&&(i=e.src.charCodeAt(a),!r(i))?-1:a}function o(e,t){var n,a=e.bMarks[t]+e.tShift[t],o=a,i=e.eMarks[t];if(o+1>=i)return-1;if((n=e.src.charCodeAt(o++))<48||n>57)return-1;for(;;){if(o>=i)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-a>=10)return-1}return o<i&&(n=e.src.charCodeAt(o),!r(n))?-1:o}e.exports=function(e,t,n,r){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x,T,P,N,A,I,B,M=!1,R=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(M=!0),(T=o(e,t))>=0){if(d=!0,N=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(N,T-N-1)),M&&1!==v)return!1}else{if(!((T=a(e,t))>=0))return!1;d=!1}if(M&&e.skipSpaces(T)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(T-1),r)return!0;for(g=e.tokens.length,d?(B=e.push("ordered_list_open","ol",1),1!==v&&(B.attrs=[["start",v]])):B=e.push("bullet_list_open","ul",1),B.map=f=[t,0],B.markup=String.fromCharCode(b),y=t,P=!1,I=e.md.block.ruler.getRules("list"),_=e.parentType,e.parentType="list";y<n;){for(x=T,k=e.eMarks[y],p=E=e.sCount[y]+T-(e.bMarks[t]+e.tShift[t]);x<k;){if(9===(i=e.src.charCodeAt(x)))E+=4-(E+e.bsCount[y])%4;else{if(32!==i)break;E++}x++}if((u=(s=x)>=k?1:E-p)>4&&(u=1),c=p+u,(B=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),B.map=m=[t,0],S=e.tight,j=e.tShift[t],C=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=E,s>=k&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!P||(R=!1),P=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=j,e.sCount[t]=C,e.tight=S,(B=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),y=t=e.line,m[1]=y,s=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;if(e.sCount[t]-e.blkIndent>=4)break;for(A=!1,l=0,h=I.length;l<h;l++)if(I[l](e,y,n,!0)){A=!0;break}if(A)break;if(d){if((T=o(e,y))<0)break}else if((T=a(e,y))<0)break;if(b!==e.src.charCodeAt(T-1))break}return(B=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),f[1]=y,e.line=y,e.parentType=_,R&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,g),!0}},13958:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(s=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if(!(e.sCount[l]-e.blkIndent>3||e.sCount[l]<0)){for(r=!1,a=0,o=c.length;a<o;a++)if(c[a](e,l,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(i=e.push("paragraph_open","p",1)).map=[t,e.line],(i=e.push("inline","",0)).content=n,i.map=[t,e.line],i.children=[],i=e.push("paragraph_close","p",-1),e.parentType=s,!0}},48707:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t,n,o){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w=0,_=e.bMarks[t]+e.tShift[t],C=e.eMarks[t],j=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(_))return!1;for(;++_<C;)if(93===e.src.charCodeAt(_)&&92!==e.src.charCodeAt(_-1)){if(_+1===C)return!1;if(58!==e.src.charCodeAt(_+1))return!1;break}for(c=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";j<c&&!e.isEmpty(j);j++)if(!(e.sCount[j]-e.blkIndent>3||e.sCount[j]<0)){for(k=!1,p=0,d=y.length;p<d;p++)if(y[p](e,j,c,!0)){k=!0;break}if(k)break}for(C=(v=e.getLines(t,j,e.blkIndent,!1).trim()).length,_=1;_<C;_++){if(91===(i=v.charCodeAt(_)))return!1;if(93===i){h=_;break}(10===i||92===i&&++_<C&&10===v.charCodeAt(_))&&w++}if(h<0||58!==v.charCodeAt(h+1))return!1;for(_=h+2;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;if(!(g=e.md.helpers.parseLinkDestination(v,_,C)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(s=_=g.pos,l=w+=g.lines,b=_;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;for(g=e.md.helpers.parseLinkTitle(v,_,C),_<C&&b!==_&&g.ok?(E=g.str,_=g.pos,w+=g.lines):(E="",_=s,w=l);_<C&&(i=v.charCodeAt(_),a(i));)_++;if(_<C&&10!==v.charCodeAt(_)&&E)for(E="",_=s,w=l;_<C&&(i=v.charCodeAt(_),a(i));)_++;return!(_<C&&10!==v.charCodeAt(_))&&(!!(m=r(v.slice(1,h)))&&(o||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[m]&&(e.env.references[m]={title:E,href:u}),e.parentType=f,e.line=t+w+1),!0))}},62389:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isSpace;function o(e,t,n,r){var o,i,s,l,c,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,s=l=u=p=0,c=(i=this.src).length;l<c;l++){if(o=i.charCodeAt(l),!d){if(a(o)){u++,9===o?p+=4-p%4:p++;continue}d=!0}10!==o&&l!==c-1||(10!==o&&l++,this.bMarks.push(s),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,s=l+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}o.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},o.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},o.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},o.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,i,s,l,c,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),o=0;d<t;d++,o++){for(i=0,p=l=this.bMarks[d],c=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];l<c&&i<n;){if(s=this.src.charCodeAt(l),a(s))9===s?i+=4-(i+this.bsCount[d])%4:i++;else{if(!(l-p<this.tShift[d]))break;i++}l++}u[o]=i>n?new Array(i-n+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},o.prototype.Token=r,e.exports=o},33168:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,a=e.length,o=!1,i=0,s="";for(t=e.charCodeAt(r);r<a;)124===t&&(o?(s+=e.substring(i,r-1),i=r):(n.push(s+e.substring(i,r)),s="",i=r+1)),o=92===t,r++,t=e.charCodeAt(r);return n.push(s+e.substring(i)),n}e.exports=function(e,t,n,i){var s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w;if(t+2>n)return!1;if(d=t+1,e.sCount[d]<e.blkIndent)return!1;if(e.sCount[d]-e.blkIndent>=4)return!1;if((c=e.bMarks[d]+e.tShift[d])>=e.eMarks[d])return!1;if(124!==(s=e.src.charCodeAt(c++))&&45!==s&&58!==s)return!1;for(;c<e.eMarks[d];){if(124!==(s=e.src.charCodeAt(c))&&45!==s&&58!==s&&!r(s))return!1;c++}for(m=(l=a(e,t+1)).split("|"),g=[],u=0;u<m.length;u++){if(!(b=m[u].trim())){if(0===u||u===m.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),0===(h=m.length)||h!==g.length)return!1;if(i)return!0;for(y=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),(f=e.push("table_open","table",1)).map=v=[t,0],(f=e.push("thead_open","thead",1)).map=[t,t+1],(f=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<m.length;u++)f=e.push("th_open","th",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u].trim(),f.children=[],f=e.push("th_close","th",-1);for(f=e.push("tr_close","tr",-1),f=e.push("thead_close","thead",-1),d=t+2;d<n&&!(e.sCount[d]<e.blkIndent);d++){for(E=!1,u=0,p=w.length;u<p;u++)if(w[u](e,d,n,!0)){E=!0;break}if(E)break;if(!(l=a(e,d).trim()))break;if(e.sCount[d]-e.blkIndent>=4)break;for((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),d===t+2&&((f=e.push("tbody_open","tbody",1)).map=k=[t+2,0]),(f=e.push("tr_open","tr",1)).map=[d,d+1],u=0;u<h;u++)f=e.push("td_open","td",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u]?m[u].trim():"",f.children=[],f=e.push("td_close","td",-1);f=e.push("tr_close","tr",-1)}return k&&(f=e.push("tbody_close","tbody",-1),k[1]=d),f=e.push("table_close","table",-1),v[1]=d,e.parentType=y,e.line=d,!0}},37262:function(e){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},50127:function(e){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},65644:function(e,t,n){"use strict";var r=n(58201).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E=e.tokens;if(e.md.options.linkify)for(n=0,o=E.length;n<o;n++)if("inline"===E[n].type&&e.md.linkify.pretest(E[n].content))for(f=0,t=(i=E[n].children).length-1;t>=0;t--)if("link_close"!==(l=i[t]).type){if("html_inline"===l.type&&(y=l.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(l.content)&&f++),!(f>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,k=e.md.linkify.match(p),c=[],h=l.level,m=0,u=0;u<k.length;u++)g=k[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(v=k[u].text,v=k[u].schema?"mailto:"!==k[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=k[u].index)>m&&((s=new e.Token("text","",0)).content=p.slice(m,d),s.level=h,c.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",b]],s.level=h++,s.markup="linkify",s.info="auto",c.push(s),(s=new e.Token("text","",0)).content=v,s.level=h,c.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",c.push(s),m=k[u].lastIndex);m<p.length&&((s=new e.Token("text","",0)).content=p.slice(m),s.level=h,c.push(s)),E[n].children=i=r(i,t,c)}}else for(t--;i[t].level!==l.level&&"link_open"!==i[t].type;)t--}},75615:function(e){"use strict";var t=/\r\n?|\n/g,n=/\0/g;e.exports=function(e){var r;r=(r=e.src.replace(t,"\n")).replace(n,"�"),e.src=r}},652:function(e){"use strict";var t=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,r=/\((c|tm|r|p)\)/gi,a={c:"©",r:"®",p:"§",tm:"™"};function o(e,t){return a[t.toLowerCase()]}function i(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||(n.content=n.content.replace(r,o)),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}function s(e){var n,r,a=0;for(n=e.length-1;n>=0;n--)"text"!==(r=e[n]).type||a||t.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&a--,"link_close"===r.type&&"auto"===r.info&&a++}e.exports=function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&(n.test(e.tokens[r].content)&&i(e.tokens[r].children),t.test(e.tokens[r].content)&&s(e.tokens[r].children))}},34335:function(e,t,n){"use strict";var r=n(58201).isWhiteSpace,a=n(58201).isPunctChar,o=n(58201).isMdAsciiPunct,i=/['"]/,s=/['"]/g;function l(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,i,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x;for(j=[],n=0;n<e.length;n++){for(i=e[n],m=e[n].level,_=j.length-1;_>=0&&!(j[_].level<=m);_--);if(j.length=_+1,"text"===i.type){p=0,d=(c=i.content).length;e:for(;p<d&&(s.lastIndex=p,u=s.exec(c));){if(E=w=!0,p=u.index+1,C="'"===u[0],f=32,u.index-1>=0)f=c.charCodeAt(u.index-1);else for(_=n-1;_>=0&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_--)if(e[_].content){f=e[_].content.charCodeAt(e[_].content.length-1);break}if(g=32,p<d)g=c.charCodeAt(p);else for(_=n+1;_<e.length&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_++)if(e[_].content){g=e[_].content.charCodeAt(0);break}if(b=o(f)||a(String.fromCharCode(f)),v=o(g)||a(String.fromCharCode(g)),k=r(f),(y=r(g))?E=!1:v&&(k||b||(E=!1)),k?w=!1:b&&(y||v||(w=!1)),34===g&&'"'===u[0]&&f>=48&&f<=57&&(w=E=!1),E&&w&&(E=b,w=v),E||w){if(w)for(_=j.length-1;_>=0&&(h=j[_],!(j[_].level<m));_--)if(h.single===C&&j[_].level===m){h=j[_],C?(S=t.md.options.quotes[2],x=t.md.options.quotes[3]):(S=t.md.options.quotes[0],x=t.md.options.quotes[1]),i.content=l(i.content,u.index,x),e[h.token].content=l(e[h.token].content,h.pos,S),p+=x.length-1,h.token===n&&(p+=S.length-1),d=(c=i.content).length,j.length=_;continue e}E?j.push({token:n,pos:u.index,single:C,level:m}):w&&C&&(i.content=l(i.content,u.index,"’"))}else C&&(i.content=l(i.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},53706:function(e,t,n){"use strict";var r=n(82069);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},84145:function(e){"use strict";var t=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;e.exports=function(e,r){var a,o,i,s,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(s=e.src.charCodeAt(u)))return!1;if(62===s)break}return a=e.src.slice(l+1,u),n.test(a)?(o=e.md.normalizeLink(a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0)):!!t.test(a)&&(o=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0))}},61191:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(n=u,u++,r=e.posMax;u<r&&96===e.src.charCodeAt(u);)u++;if(l=(a=e.src.slice(n,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=n)return t||(e.pending+=a),e.pos+=l,!0;for(i=s=u;-1!==(i=e.src.indexOf("`",s));){for(s=i+1;s<r&&96===e.src.charCodeAt(s);)s++;if((c=s-i)===l)return t||((o=e.push("code_inline","code",0)).markup=a,o.content=e.src.slice(u,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=s,!0;e.backticks[c]=i}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=l,!0}},93296:function(e){"use strict";function t(e,t){var n,r,a,o,i,s,l,c,u={},p=t.length;for(n=0;n<p;n++)if((a=t[n]).length=a.length||0,a.close){for(u.hasOwnProperty(a.marker)||(u[a.marker]=[-1,-1,-1]),i=u[a.marker][a.length%3],(r=n-a.jump-1)<-1&&(r=-1),s=r;r>i;r-=o.jump+1)if((o=t[r]).marker===a.marker&&o.open&&o.end<0&&(l=!1,(o.close||a.open)&&(o.length+a.length)%3==0&&(o.length%3==0&&a.length%3==0||(l=!0)),!l)){c=r>0&&!t[r-1].open?t[r-1].jump+1:0,a.jump=n-r+c,a.open=!1,o.end=n,o.jump=c,o.close=!1,s=-1;break}-1!==s&&(u[a.marker][(a.length||0)%3]=s)}}e.exports=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(0,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(0,r[n].delimiters)}},98052:function(e){"use strict";function t(e,t){var n,r,a,o,i,s;for(n=t.length-1;n>=0;n--)95!==(r=t[n]).marker&&42!==r.marker||-1!==r.end&&(a=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].token===r.token-1&&t[r.end+1].token===a.token+1&&t[n-1].marker===r.marker,i=String.fromCharCode(r.marker),(o=e.tokens[r.token]).type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?i+i:i,o.content="",(o=e.tokens[a.token]).type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?i+i:i,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.w=function(e,t){var n,r,a=e.pos,o=e.src.charCodeAt(a);if(t)return!1;if(95!==o&&42!==o)return!1;for(r=e.scanDelims(e.pos,42===o),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:r.length,jump:n,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},44659:function(e,t,n){"use strict";var r=n(95926),a=n(58201).has,o=n(58201).isValidEntityCode,i=n(58201).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=o(n)?i(n):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(l))&&a(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},52960:function(e,t,n){"use strict";for(var r=n(58201).isSpace,a=[],o=0;o<256;o++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==a[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),o++;o<i&&(n=e.src.charCodeAt(o),r(n));)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},20354:function(e,t,n){"use strict";var r=n(75501).n;e.exports=function(e,t){var n,a,o,i=e.pos;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(i)||i+2>=o)&&(!(33!==(n=e.src.charCodeAt(i+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(i).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(i,i+a[0].length)),e.pos+=a[0].length,!0))))}},39590:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d,m,h,f,g,b="",v=e.pos,k=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<k&&40===e.src.charCodeAt(u)){for(u++;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(u>=k)return!1;for(g=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(d.str),e.md.validateLink(b)?u=d.pos:b=""),g=u;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<k&&g!==u&&d.ok)for(m=d.str,u=d.pos;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);else m="";if(u>=k||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<k&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?s=e.src.slice(g,u++):u=l+1):u=l+1,s||(s=e.src.slice(c,l)),!(p=e.env.references[r(s)]))return e.pos=v,!1;b=p.href,m=p.title}return t||(i=e.src.slice(c,l),e.md.inline.parse(i,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=n=[["src",b],["alt",""]],h.children=f,h.content=i,m&&n.push(["title",m])),e.pos=u,e.posMax=k,!0}},68839:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d="",m="",h=e.pos,f=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(s=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=s+1)<f&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(c>=f)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(d=e.md.normalizeLink(u.str),e.md.validateLink(d)?c=u.pos:d="",g=c;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<f&&g!==c&&u.ok)for(m=u.str,c=u.pos;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);}(c>=f||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if(void 0===e.env.references)return!1;if(c<f&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?i=e.src.slice(g,c++):c=s+1):c=s+1,i||(i=e.src.slice(l,s)),!(p=e.env.references[r(i)]))return e.pos=h,!1;d=p.href,m=p.title}return t||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",d]],m&&n.push(["title",m]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=f,!0}},22051:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t){var n,a,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o<a&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}},4160:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isWhiteSpace,o=n(58201).isPunctChar,i=n(58201).isMdAsciiPunct;function s(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}s.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},s.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),a.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(a),this.tokens_meta.push(o),a},s.prototype.scanDelims=function(e,t){var n,r,s,l,c,u,p,d,m,h=e,f=!0,g=!0,b=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;h<b&&this.src.charCodeAt(h)===v;)h++;return s=h-e,r=h<b?this.src.charCodeAt(h):32,p=i(n)||o(String.fromCharCode(n)),m=i(r)||o(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:m&&(u||p||(f=!1)),u?g=!1:p&&(d||m||(g=!1)),t?(l=f,c=g):(l=f&&(!g||p),c=g&&(!f||m)),{can_open:l,can_close:c,length:s}},s.prototype.Token=r,e.exports=s},30832:function(e){"use strict";function t(e,t){var n,r,a,o,i,s=[],l=t.length;for(n=0;n<l;n++)126===(a=t[n]).marker&&-1!==a.end&&(o=t[a.end],(i=e.tokens[a.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[o.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[o.token-1].type&&"~"===e.tokens[o.token-1].content&&s.push(o.token-1));for(;s.length;){for(r=(n=s.pop())+1;r<e.tokens.length&&"s_close"===e.tokens[r].type;)r++;n!==--r&&(i=e.tokens[r],e.tokens[r]=e.tokens[n],e.tokens[n]=i)}}e.exports.w=function(e,t){var n,r,a,o,i=e.pos,s=e.src.charCodeAt(i);if(t)return!1;if(126!==s)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(s),a<2)return!1;for(a%2&&(e.push("text","",0).content=o,a--),n=0;n<a;n+=2)e.push("text","",0).content=o+o,e.delimiters.push({marker:s,length:0,jump:n/2,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},96733:function(e){"use strict";function t(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,n){for(var r=e.pos;r<e.posMax&&!t(e.src.charCodeAt(r));)r++;return r!==e.pos&&(n||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}},72300:function(e){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,o=e.tokens.length;for(t=n=0;t<o;t++)a[t].nesting<0&&r--,a[t].level=r,a[t].nesting>0&&r++,"text"===a[t].type&&t+1<o&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},82069:function(e){"use strict";function t(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}t.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},t.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},t.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},t.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},t.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=t},62098:function(e){"use strict";var t={};function n(e,r){var a;return"string"!=typeof r&&(r=n.defaultChars),a=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),a.push(r);for(n=0;n<e.length;n++)a[r=e.charCodeAt(n)]="%"+("0"+r.toString(16).toUpperCase()).slice(-2);return a}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,n,r,o,i,s,l,c="";for(t=0,n=e.length;t<n;t+=3)(r=parseInt(e.slice(t+1,t+3),16))<128?c+=a[r]:192==(224&r)&&t+3<n&&128==(192&(o=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=r<<6&1984|63&o)<128?"��":String.fromCharCode(l),t+=3):224==(240&r)&&t+6<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),128==(192&o)&&128==(192&i))?(c+=(l=r<<12&61440|o<<6&4032|63&i)<2048||l>=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240==(248&r)&&t+9<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),s=parseInt(e.slice(t+10,t+12),16),128==(192&o)&&128==(192&i)&&128==(192&s))?((l=r<<18&1835008|o<<12&258048|i<<6&4032|63&s)<65536||l>1114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",e.exports=n},9401:function(e){"use strict";var t={};function n(e,r,a){var o,i,s,l,c,u="";for("string"!=typeof r&&(a=r,r=n.defaultChars),void 0===a&&(a=!0),c=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),/^[0-9a-z]$/i.test(r)?a.push(r):a.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));for(n=0;n<e.length;n++)a[e.charCodeAt(n)]=e[n];return a}(r),o=0,i=e.length;o<i;o++)if(s=e.charCodeAt(o),a&&37===s&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(s<128)u+=c[s];else if(s>=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1<i&&(l=e.charCodeAt(o+1))>=56320&&l<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",e.exports=n},56558:function(e){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},36664:function(e,t,n){"use strict";e.exports.encode=n(9401),e.exports.decode=n(62098),e.exports.format=n(56558),e.exports.parse=n(5)},5:function(e){"use strict";function t(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,r=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),i=["'"].concat(o),s=["%","/","?",";","#"].concat(i),l=["/","?","#"],c=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};t.prototype.parse=function(e,t){var r,o,i,m,h,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var g=a.exec(f);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(f);if(b&&(i=(b=b[0]).toLowerCase(),this.protocol=b,f=f.substr(b.length)),(t||b||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(h="//"===f.substr(0,2))||b&&p[b]||(f=f.substr(2),this.slashes=!0)),!p[b]&&(h||b&&!d[b])){var v,k,y=-1;for(r=0;r<l.length;r++)-1!==(m=f.indexOf(l[r]))&&(-1===y||m<y)&&(y=m);for(-1!==(k=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,k),f=f.slice(k+1),this.auth=v),y=-1,r=0;r<s.length;r++)-1!==(m=f.indexOf(s[r]))&&(-1===y||m<y)&&(y=m);-1===y&&(y=f.length),":"===f[y-1]&&y--;var E=f.slice(0,y);f=f.slice(y),this.parseHost(E),this.hostname=this.hostname||"";var w="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!w){var _=this.hostname.split(/\./);for(r=0,o=_.length;r<o;r++){var C=_[r];if(C&&!C.match(c)){for(var j="",S=0,x=C.length;S<x;S++)C.charCodeAt(S)>127?j+="x":j+=C[S];if(!j.match(c)){var T=_.slice(0,r),P=_.slice(r+1),N=C.match(u);N&&(T.push(N[1]),P.unshift(N[2])),P.length&&(f=P.join(".")+f),this.hostname=T.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var A=f.indexOf("#");-1!==A&&(this.hash=f.substr(A),f=f.slice(0,A));var I=f.indexOf("?");return-1!==I&&(this.search=f.substr(I),f=f.slice(0,I)),f&&(this.pathname=f),d[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},t.prototype.parseHost=function(e){var t=r.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,n){if(e&&e instanceof t)return e;var r=new t;return r.parse(e,n),r}},99889:function(){},93474:function(){},33285:function(){},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},32002:function(e){var t=1e3,n=60*t,r=60*n,a=24*r,o=7*a,i=365.25*a;function s(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,l){l=l||{};var c=typeof e;if("string"===c&&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 l=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*a;case"hours":case"hour":case"hrs":case"hr":case"h":return l*r;case"minutes":case"minute":case"mins":case"min":case"m":return l*n;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"===c&&isFinite(e))return l.long?function(e){var o=Math.abs(e);if(o>=a)return s(e,o,a,"day");if(o>=r)return s(e,o,r,"hour");if(o>=n)return s(e,o,n,"minute");if(o>=t)return s(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=a)return Math.round(e/a)+"d";if(o>=r)return Math.round(e/r)+"h";if(o>=n)return Math.round(e/n)+"m";if(o>=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))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(l[u]=i[u]);if(t){s=t(i);for(var p=0;p<s.length;p++)r.call(i,s[p])&&(l[s[p]]=i[s[p]])}}return l}},40278:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(92213),a=n.n(r),o=n(68211),i=n.n(o),s=n(48468),l=n.n(s)()("photon"),c={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},u="__domain__.invalid",p="http://".concat(u);function d(e,t){var n;try{n=new URL(e,p)}catch(e){return null}var r,o,s,d,m,h="https:"===n.protocol,f=new URL("https://i0.wp.com");if(m=n.host,/^i[0-2]\.wp\.com$/.test(m))f.pathname=n.pathname,f.hostname=n.hostname;else{if(n.search)return null;var g=n.href.replace("".concat(n.protocol,"/"),"");"blob:"===n.protocol&&(g=n.pathname.replace("://","//")),n.hostname===u&&(g=n.pathname),f.pathname=g,f.hostname=(r=g,o=a()(r),s=i()(o),d="i"+Math.floor(3*s()),l('determined server "%s" to use with "%s"',d,r),d+".wp.com"),h&&f.searchParams.set("ssl",1)}if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?f.searchParams.set(c[b]||b,t[b]):f.protocol="http:":f.hostname=t[b];return l("generated Photon URL: %s",f.href),f.href}},9587:function(e,t,n){"use strict";var r=n(45843);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){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 n={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:o,resetWarningCache:a};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},10753:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,a){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var i=/\+/g;e=e.split(n);var s=1e3;a&&"number"==typeof a.maxKeys&&(s=a.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,p,d,m,h=e[c].replace(i,"%20"),f=h.indexOf(r);f>=0?(u=h.substr(0,f),p=h.substr(f+1)):(u=h,p=""),d=decodeURIComponent(u),m=decodeURIComponent(p),t(o,d)?Array.isArray(o[d])?o[d].push(m):o[d]=[o[d],m]:o[d]=m}return o}},68527:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,a){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var o=encodeURIComponent(t(a))+r;return Array.isArray(e[a])?e[a].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[a]))})).join(n):a?encodeURIComponent(t(a))+r+encodeURIComponent(t(e)):""}},76250:function(e,t,n){"use strict";t.decode=t.parse=n(10753),t.encode=t.stringify=n(68527)},97765:function(e,t,n){"use strict";var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(63130),l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function c(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={isSupported:s.Gb&&s.WD},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),l(t,[{key:"componentDidMount",value:function(){this.state.isSupported&&(this.handleVisibilityChange=this.handleVisibilityChange.bind(this),document.addEventListener(s.WD.event,this.handleVisibilityChange))}},{key:"componentWillUnmount",value:function(){this.state.isSupported&&document.removeEventListener(s.WD.event,this.handleVisibilityChange)}},{key:"handleVisibilityChange",value:function(){var e;"function"==typeof this.props.onChange&&(e=this.props).onChange.apply(e,c((0,s.XO)()));"function"==typeof this.props.children&&this.forceUpdate()}},{key:"render",value:function(){return this.props.children?"function"==typeof this.props.children?this.state.isSupported?(e=this.props).children.apply(e,c((0,s.XO)())):this.props.children():i().Children.only(this.props.children):null;var e}}]),t}(i().Component);u.displayName="PageVisibility",u.propTypes={onChange:a().func,children:a().oneOfType([a().node,a().func])},t.Z=u},75031:function(e,t,n){"use strict";var r=n(97765);t.Z=r.Z},63130:function(e,t,n){"use strict";n.d(t,{Gb:function(){return o},WD:function(){return i},XO:function(){return s}});var r="undefined"!=typeof document,a=[{hidden:"hidden",event:"visibilitychange",state:"visibilityState"},{hidden:"webkitHidden",event:"webkitvisibilitychange",state:"webkitVisibilityState"},{hidden:"mozHidden",event:"mozvisibilitychange",state:"mozVisibilityState"},{hidden:"msHidden",event:"msvisibilitychange",state:"msVisibilityState"},{hidden:"oHidden",event:"ovisibilitychange",state:"oVisibilityState"}],o=r&&Boolean(document.addEventListener),i=function(){if(!o)return null;var e=!0,t=!1,n=void 0;try{for(var r,i=a[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var s=r.value;if(s.hidden in document)return s}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}return null}(),s=function(){if(!i)return[!0,"visible"];var e=i.hidden,t=i.state;return[!document[e],document[t]]}},2601:function(e){"use strict";function t(e,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)t(e,n[r]);else for(r in n)e[r]=(e[r]||[]).concat(n[r])}e.exports=function(e){var n,r={};return t(r,e),(n=function(e){return function(t){return function(n){var a,o,i=r[n.type],s=t(n);if(i)for(a=0;a<i.length;a++)(o=i[a](n,e))&&e.dispatch(o);return s}}}).effects=r,n}},19551:function(e,t,n){"use strict";var r,a;function o(e){return[e]}function i(){var e={clear:function(){e.head=null}};return e}function s(e,t,n){var r;if(e.length!==t.length)return!1;for(r=n;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function l(e,t){var n,l;function c(){n=a?new WeakMap:i()}function u(){var n,r,a,o,i,c=arguments.length;for(o=new Array(c),a=0;a<c;a++)o[a]=arguments[a];for(i=t.apply(null,o),(n=l(i)).isUniqueByDependants||(n.lastDependants&&!s(i,n.lastDependants,0)&&n.clear(),n.lastDependants=i),r=n.head;r;){if(s(r.args,o,1))return r!==n.head&&(r.prev.next=r.next,r.next&&(r.next.prev=r.prev),r.next=n.head,r.prev=null,n.head.prev=r,n.head=r),r.val;r=r.next}return r={val:e.apply(null,o)},o[0]=null,r.args=o,n.head&&(n.head.prev=r,r.next=n.head),n.head=r,r.val}return t||(t=o),l=a?function(e){var t,a,o,s,l,c=n,u=!0;for(t=0;t<e.length;t++){if(a=e[t],!(l=a)||"object"!=typeof l){u=!1;break}c.has(a)?c=c.get(a):(o=new WeakMap,c.set(a,o),c=o)}return c.has(r)||((s=i()).isUniqueByDependants=u,c.set(r,s)),c.get(r)}:function(){return n},u.getDependants=t,u.clear=c,c(),u}n.d(t,{Z:function(){return l}}),r={},a="undefined"!=typeof WeakMap},54166:function(e,t){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var i=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&l()}function s(){o(i)}function l(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(s,t);a=e}return l}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;i.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},p=b(0,0,0,0);function d(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function h(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],o=e["padding-"+a];t[a]=d(o)}return t}(r),o=a.left+a.right,i=a.top+a.bottom,s=d(r.width),l=d(r.height);if("border-box"===r.boxSizing&&(Math.round(s+o)!==t&&(s-=m(r,"left","right")+o),Math.round(l+i)!==n&&(l-=m(r,"top","bottom")+i)),!function(e){return e===u(e).document.documentElement}(e)){var c=Math.round(s+o)-t,h=Math.round(l+i)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(h)&&(l-=h)}return b(a.left,a.top,s,l)}var f="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return r?f(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):h(e):p}function b(e,t,n,r){return{x:e,y:t,width:n,height:r}}var v=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),k=function(e,t){var n,r,a,o,i,s,l,u=(r=(n=t).x,a=n.y,o=n.width,i=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(s.prototype),c(l,{x:r,y:a,width:o,height:i,top:a,right:r+o,bottom:i+a,left:r}),l);c(this,{target:e,contentRect:u})},y=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new v(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new k(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),E="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new y(t,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=E.get(this))[e].apply(t,arguments)}}));var _=void 0!==a.ResizeObserver?a.ResizeObserver:w;t.Z=_},68211:function(e){"use strict";var t=256,n=[],r=window,a=Math.pow(t,6),o=Math.pow(2,52),i=2*o,s=255,l=Math.random;function c(e){var n,r=e.length,a=this,o=0,i=a.i=a.j=0,l=a.S=[];for(r||(e=[r++]);o<t;)l[o]=o++;for(o=0;o<t;o++)l[o]=l[i=s&i+e[o%r]+(n=l[o])],l[i]=n;(a.g=function(e){for(var n,r=0,o=a.i,i=a.j,l=a.S;e--;)n=l[o=s&o+1],r=r*t+l[s&(l[o]=l[i=s&i+n])+(l[i]=n)];return a.i=o,a.j=i,r})(t)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(e){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[s&a]=s&(n^=19*t[s&a])+r.charCodeAt(a++);return m(t)}function d(e){try{return r.crypto.getRandomValues(e=new Uint8Array(t)),m(e)}catch(e){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,m(n)]}}function m(e){return String.fromCharCode.apply(0,e)}e.exports=function(r,s){if(s&&!0===s.global)return s.global=!1,Math.random=e.exports(r,s),s.global=!0,Math.random;var l=s&&s.entropy||!1,h=[],f=(p(u(l?[r,m(n)]:0 in arguments?r:d(),3),h),new c(h));return p(m(f.S),n),function(){for(var e=f.g(6),n=a,r=0;e<o;)e=(e+r)*t,n*=t,r=f.g(1);for(;e>=i;)e/=2,n/=2,r>>>=1;return(e+r)/n}},e.exports.resetGlobal=function(){Math.random=l},p(Math.random(),n)},45702:function(e,t,n){const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=o(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}c("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new p(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new p(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=l(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=l(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||o&&i||s||c}}e.exports=a;const o=n(75265),{re:i,t:s}=n(75698),l=n(48937),c=n(72840),u=n(88208),p=n(55062)},55062:function(e,t,n){class r{constructor(e,t){if(t=o(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&f(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=a.get(t);if(n)return n;const r=this.options.loose,o=r?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(o,x(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(c[u.COMPARATORTRIM],p),s("comparator trim",e,c[u.COMPARATORTRIM]),e=(e=(e=e.replace(c[u.TILDETRIM],d)).replace(c[u.CARETTRIM],m)).split(/\s+/).join(" ");const l=r?c[u.COMPARATORLOOSE]:c[u.COMPARATOR],f=e.split(" ").map((e=>b(e,this.options))).join(" ").split(/\s+/).map((e=>S(e,this.options))).filter(this.options.loose?e=>!!e.match(l):()=>!0).map((e=>new i(e,this.options))),g=(f.length,new Map);for(const e of f){if(h(e))return[e];g.set(e.value,e)}g.size>1&&g.has("")&&g.delete("");const v=[...g.values()];return a.set(t,v),v}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>g(n,t)&&e.set.some((e=>g(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(T(this.set[t],e,this.options))return!0;return!1}}e.exports=r;const a=new(n(47595))({max:1e3}),o=n(75265),i=n(45702),s=n(72840),l=n(88208),{re:c,t:u,comparatorTrimReplace:p,tildeTrimReplace:d,caretTrimReplace:m}=n(75698),h=e=>"<0.0.0-0"===e.value,f=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every((e=>a.intersects(e,t))),a=r.pop();return n},b=(e,t)=>(s("comp",e,t),e=E(e,t),s("caret",e),e=k(e,t),s("tildes",e),e=_(e,t),s("xrange",e),e=j(e,t),s("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,k=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" "),y=(e,t)=>{const n=t.loose?c[u.TILDELOOSE]:c[u.TILDE];return e.replace(n,((t,n,r,a,o)=>{let i;return s("tilde",e,t,n,r,a,o),v(n)?i="":v(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:v(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:o?(s("replaceTilde pr",o),i=`>=${n}.${r}.${a}-${o} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,s("tilde return",i),i}))},E=(e,t)=>e.trim().split(/\s+/).map((e=>w(e,t))).join(" "),w=(e,t)=>{s("caret",e,t);const n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,a,o,i)=>{let l;return s("caret",e,t,n,a,o,i),v(n)?l="":v(a)?l=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(o)?l="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(s("replaceCaret pr",i),l="0"===n?"0"===a?`>=${n}.${a}.${o}-${i} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o}-${i} <${+n+1}.0.0-0`):(s("no pr"),l="0"===n?"0"===a?`>=${n}.${a}.${o}${r} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o} <${+n+1}.0.0-0`),s("caret return",l),l}))},_=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>C(e,t))).join(" ")),C=(e,t)=>{e=e.trim();const n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,((n,r,a,o,i,l)=>{s("xRange",e,n,r,a,o,i,l);const c=v(a),u=c||v(o),p=u||v(i),d=p;return"="===r&&d&&(r=""),l=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&d?(u&&(o=0),i=0,">"===r?(r=">=",u?(a=+a+1,o=0,i=0):(o=+o+1,i=0)):"<="===r&&(r="<",u?a=+a+1:o=+o+1),"<"===r&&(l="-0"),n=`${r+a}.${o}.${i}${l}`):u?n=`>=${a}.0.0${l} <${+a+1}.0.0-0`:p&&(n=`>=${a}.${o}.0${l} <${a}.${+o+1}.0-0`),s("xRange return",n),n}))},j=(e,t)=>(s("replaceStars",e,t),e.trim().replace(c[u.STAR],"")),S=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),x=e=>(t,n,r,a,o,i,s,l,c,u,p,d,m)=>`${n=v(r)?"":v(a)?`>=${r}.0.0${e?"-0":""}`:v(o)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=v(c)?"":v(u)?`<${+c+1}.0.0-0`:v(p)?`<${c}.${+u+1}.0-0`:d?`<=${c}.${u}.${p}-${d}`:e?`<${c}.${u}.${+p+1}-0`:`<=${l}`}`.trim(),T=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(s(e[n].semver),e[n].semver!==i.ANY&&e[n].semver.prerelease.length>0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},88208:function(e,t,n){const r=n(72840),{MAX_LENGTH:a,MAX_SAFE_INTEGER:o}=n(29609),{re:i,t:s}=n(75698),l=n(75265),{compareIdentifiers:c}=n(15322);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e})):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(r("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"==typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const n=this.prerelease[t],a=e.prerelease[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const n=this.build[t],a=e.build[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},52045:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},48937:function(e,t,n){const r=n(42969),a=n(74619),o=n(74765),i=n(71767),s=n(63590),l=n(94638);e.exports=(e,t,n,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return a(e,n,c);case">":return o(e,n,c);case">=":return i(e,n,c);case"<":return s(e,n,c);case"<=":return l(e,n,c);default:throw new TypeError(`Invalid operator: ${t}`)}}},12977:function(e,t,n){const r=n(88208),a=n(38675),{re:o,t:i}=n(75698);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=o[i.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),o[i.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[i.COERCERTL].lastIndex=-1}else n=e.match(o[i.COERCE]);return null===n?null:a(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},58230:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>{const a=new r(e,n),o=new r(t,n);return a.compare(o)||a.compareBuild(o)}},25112:function(e,t,n){const r=n(50192);e.exports=(e,t)=>r(e,t,!0)},50192:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},13751:function(e,t,n){const r=n(38675),a=n(42969);e.exports=(e,t)=>{if(a(e,t))return null;{const n=r(e),a=r(t),o=n.prerelease.length||a.prerelease.length,i=o?"pre":"",s=o?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==a[e])return i+e;return s}}},42969:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0===r(e,t,n)},74765:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>0},71767:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>=0},20177:function(e,t,n){const r=n(88208);e.exports=(e,t,n,a)=>{"string"==typeof n&&(a=n,n=void 0);try{return new r(e,n).inc(t,a).version}catch(e){return null}}},63590:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<0},94638:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<=0},51847:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).major},87989:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).minor},74619:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0!==r(e,t,n)},38675:function(e,t,n){const{MAX_LENGTH:r}=n(29609),{re:a,t:o}=n(75698),i=n(88208),s=n(75265);e.exports=(e,t)=>{if(t=s(t),e instanceof i)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?a[o.LOOSE]:a[o.FULL]).test(e))return null;try{return new i(e,t)}catch(e){return null}}},8906:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).patch},85676:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},82576:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(t,e,n)},25709:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},53907:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},21978:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},55641:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},53377:function(e,t,n){const r=n(75698);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(29609).SEMVER_SPEC_VERSION,SemVer:n(88208),compareIdentifiers:n(15322).compareIdentifiers,rcompareIdentifiers:n(15322).rcompareIdentifiers,parse:n(38675),valid:n(55641),clean:n(52045),inc:n(20177),diff:n(13751),major:n(51847),minor:n(87989),patch:n(8906),prerelease:n(85676),compare:n(50192),rcompare:n(82576),compareLoose:n(25112),compareBuild:n(58230),sort:n(21978),rsort:n(25709),gt:n(74765),lt:n(63590),eq:n(42969),neq:n(74619),gte:n(71767),lte:n(94638),cmp:n(48937),coerce:n(12977),Comparator:n(45702),Range:n(55062),satisfies:n(53907),toComparators:n(76055),maxSatisfying:n(33422),minSatisfying:n(17212),minVersion:n(9077),validRange:n(53140),outside:n(44494),gtr:n(2824),ltr:n(34370),intersects:n(30723),simplifyRange:n(23589),subset:n(34992)}},29609:function(e){const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},72840:function(e){const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},15322:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:e<n?-1:1};e.exports={compareIdentifiers:n,rcompareIdentifiers:(e,t)=>n(t,e)}},75265:function(e){const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},75698:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r}=n(29609),a=n(72840),o=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let l=0;const c=(e,t,n)=>{const r=l++;a(r,t),s[e]=r,i[r]=t,o[r]=new RegExp(t,n?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),c("FULL",`^${i[s.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),c("LOOSE",`^${i[s.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),c("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),c("COERCERTL",i[s.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},2824:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,">",n)},30723:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},34370:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,"<",n)},33422:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&-1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},17212:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},9077:function(e,t,n){const r=n(88208),a=n(55062),o=n(74765);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t<e.set.length;++t){const a=e.set[t];let i=null;a.forEach((e=>{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!o(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||n&&!o(n,i)||(n=i)}return n&&e.test(n)?n:null}},44494:function(e,t,n){const r=n(88208),a=n(45702),{ANY:o}=a,i=n(55062),s=n(53907),l=n(74765),c=n(63590),u=n(94638),p=n(71767);e.exports=(e,t,n,d)=>{let m,h,f,g,b;switch(e=new r(e,d),t=new i(t,d),n){case">":m=l,h=u,f=c,g=">",b=">=";break;case"<":m=c,h=p,f=l,g="<",b="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,d))return!1;for(let n=0;n<t.set.length;++n){const r=t.set[n];let i=null,s=null;if(r.forEach((e=>{e.semver===o&&(e=new a(">=0.0.0")),i=i||e,s=s||e,m(e.semver,i.semver,d)?i=e:f(e.semver,s.semver,d)&&(s=e)})),i.operator===g||i.operator===b)return!1;if((!s.operator||s.operator===g)&&h(e,s.semver))return!1;if(s.operator===b&&f(e,s.semver))return!1}return!0}},23589:function(e,t,n){const r=n(53907),a=n(50192);e.exports=(e,t,n)=>{const o=[];let i=null,s=null;const l=e.sort(((e,t)=>a(e,t,n)));for(const e of l){r(e,t,n)?(s=e,i||(i=e)):(s&&o.push([i,s]),s=null,i=null)}i&&o.push([i,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==l[0]?t?e===l[0]?c.push(`<=${t}`):c.push(`${e} - ${t}`):c.push(`>=${e}`):c.push("*");const u=c.join(" || "),p="string"==typeof t.raw?t.raw:String(t);return u.length<p.length?u:t}},34992:function(e,t,n){const r=n(55062),a=n(45702),{ANY:o}=a,i=n(53907),s=n(50192),l=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===o){if(1===t.length&&t[0].semver===o)return!0;e=n.includePrerelease?[new a(">=0.0.0-0")]:[new a(">=0.0.0")]}if(1===t.length&&t[0].semver===o){if(n.includePrerelease)return!0;t=[new a(">=0.0.0")]}const r=new Set;let l,p,d,m,h,f,g;for(const t of e)">"===t.operator||">="===t.operator?l=c(l,t,n):"<"===t.operator||"<="===t.operator?p=u(p,t,n):r.add(t.semver);if(r.size>1)return null;if(l&&p){if(d=s(l.semver,p.semver,n),d>0)return null;if(0===d&&(">="!==l.operator||"<="!==p.operator))return null}for(const e of r){if(l&&!i(e,String(l),n))return null;if(p&&!i(e,String(p),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let b=!(!p||n.includePrerelease||!p.semver.prerelease.length)&&p.semver,v=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver;b&&1===b.prerelease.length&&"<"===p.operator&&0===b.prerelease[0]&&(b=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,l)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(m=c(l,e,n),m===e&&m!==l)return!1}else if(">="===l.operator&&!i(l.semver,String(e),n))return!1;if(p)if(b&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===b.major&&e.semver.minor===b.minor&&e.semver.patch===b.patch&&(b=!1),"<"===e.operator||"<="===e.operator){if(h=u(p,e,n),h===e&&h!==p)return!1}else if("<="===p.operator&&!i(p.semver,String(e),n))return!1;if(!e.operator&&(p||l)&&0!==d)return!1}return!(l&&f&&!p&&0!==d)&&(!(p&&g&&!l&&0!==d)&&(!v&&!b))},c=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=l(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},76055:function(e,t,n){const r=n(55062);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},53140:function(e,t,n){const r=n(55062);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},88090:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7478),a={contextDelimiter:"",onMissingKey:null};function o(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},a)this.options[n]=void 0!==t&&n in t?t[n]:a[n]}o.prototype.getPluralForm=function(e,t){var n,a,o,i=this.pluralForms[e];return i||("function"!=typeof(o=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(a=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),o=(0,r.Z)(a)),i=this.pluralForms[e]=o),i(t)},o.prototype.dcnpgettext=function(e,t,n,r,a){var o,i,s;return o=void 0===a?0:this.getPluralForm(e,a),i=n,t&&(i=t+this.options.contextDelimiter+n),(s=this.data[e][i])&&s[o]?s[o]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===o?n:r)}},80816:function(e,t,n){"use strict";var r=n(90922),a=n.n(r),o=n(92819);const i=a()("dops:analytics");let s,l;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const c={initialize:function(e,t,n){c.setUser(e,t),c.setSuperProps(n),c.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]: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){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){c.tracks.recordPageView(e),c.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,o,i){c.ga.recordPurchase(e,t,n,r,a,o,i)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(i("- Super Props: %o",s),t=(0,o.assign)(t,s)),i('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):i('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};c.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){c.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){i("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};c.ga.initialized||(l&&(e={userId:"u-"+l.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),c.ga.initialized=!0)},recordPageView:function(e,t){c.ga.initialize(),i("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,n,r){c.ga.initialize();let a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),i(a),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,o,i){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:i}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:o}),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"])}};t.Z=c},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},11973:function(e,t,n){"use strict";var r=n(9481),a=n(80816);a.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),a.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=a.Z},78953:function(e,t,n){"use strict";var r=n(68039);t.Z={backgroundColor:{type:"string",validator:r.Z},textColor:{type:"string",validator:r.Z},buttonAndLinkColor:{type:"string",validator:r.Z},style:{type:"string",default:"small",validValues:["small","large"]},asin:{type:"string"},showImage:{default:!0,type:"boolean"},showTitle:{default:!0,type:"boolean"},showSeller:{default:!1,type:"boolean"},showPrice:{default:!0,type:"boolean"},showPurchaseButton:{default:!0,type:"boolean"}}},44046:function(e,t){"use strict";t.Z={products:[{title:"New York Biology Dead Sea Mud Mask for Face and Body - All Natural - Spa Quality Pore Reducer for Acne, Blackheads and Oily Skin - Tightens Skin for A Healthier Complexion - 8.8 oz",asin:"B01NCM25K7",productGroup:"Beauty",authors:[],artists:[],actors:[],manufacturer:"New York Biology",detailPageUrl:"https://www.amazon.com/New-York-Biology-Dead-Mask/dp/B01NCM25K7?psc=1&SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B01NCM25K7",listPrice:"$14.95",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51asbRHNuVL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:62,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51asbRHNuVL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:133,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51asbRHNuVL.jpg",imageHeightLarge:500,imageWidthLarge:415,authorshipInfo:"New York Biology"},{title:"Face/Off",asin:"B002PT1KH6",productGroup:"Movie",authors:[],artists:[],actors:["John Travolta","Nicolas Cage","Joan Allen","Alessandro Nivola","Gina Gershon"],detailPageUrl:"https://www.amazon.com/Face-Off-John-Travolta/dp/B002PT1KH6?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B002PT1KH6",listPrice:"$9.99",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51TyrHec4QL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:50,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51TyrHec4QL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:107,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51TyrHec4QL.jpg",imageHeightLarge:500,imageWidthLarge:333,authorshipInfo:"Starring John Travolta, Nicolas Cage, Joan Allen, Alessandro Nivola, Gina Gershon"},{title:"PIXNOR Facial Cleansing Brush [Newest 2020], Waterproof Face Spin Brush with 7 Brush Heads for Deep Cleansing, Gentle Exfoliating, Removing Blackhead, Massaging(Pink)",asin:"B077ZW5YQP",productGroup:"Beauty",authors:[],artists:[],actors:[],manufacturer:"PIXNOR",detailPageUrl:"https://www.amazon.com/PIXNOR-Cleansing-Waterproof-Exfoliating-Blackhead/dp/B077ZW5YQP?psc=1&SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B077ZW5YQP",listPrice:"$39.99",salePrice:"$22.99",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/41KQCaa1hjL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/41KQCaa1hjL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/41KQCaa1hjL.jpg",imageHeightLarge:500,imageWidthLarge:500,authorshipInfo:"PIXNOR"},{title:"BESTOPE Blackhead Remover Pimple Comedone Extractor Tool Best Acne Removal Kit - Treatment for Blemish, Whitehead Popping, Zit Removing for Risk Free Nose Face Skin with Metal Case",asin:"B019SVHLEY",productGroup:"Beauty",authors:[],artists:[],actors:[],manufacturer:"Doctor PimplePopper",detailPageUrl:"https://www.amazon.com/BESTOPE-Blackhead-Remover-Comedone-Extractor/dp/B019SVHLEY?psc=1&SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B019SVHLEY",listPrice:"$7.99",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51QHC5fDdfL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51QHC5fDdfL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51QHC5fDdfL.jpg",imageHeightLarge:500,imageWidthLarge:500,authorshipInfo:"Doctor PimplePopper"},{title:"Welcome to the Jungle",asin:"B004L3L9PM",productGroup:"TV Series Episode Video on Demand",authors:[],artists:[],actors:[],detailPageUrl:"https://www.amazon.com/Welcome-to-the-Jungle/dp/B004L3L9PM?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B004L3L9PM",listPrice:"$2.99",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51KBv1L7lJL._SL75_.jpg",imageHeightSmall:56,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51KBv1L7lJL._SL160_.jpg",imageHeightMedium:120,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51KBv1L7lJL.jpg",imageHeightLarge:375,imageWidthLarge:500,authorshipInfo:""},{title:"Black Charcoal Mask - Face Peel Off Mask with Organic Bamboo and Vitamin C - Deep Cleansing Pore Blackhead Removal and Purifying Black Mask for Men and Women",asin:"B07V1MPG8N",productGroup:"Beauty",authors:[],artists:[],actors:[],manufacturer:"O'linear",detailPageUrl:"https://www.amazon.com/Black-Charcoal-Mask-Cleansing-Blackhead/dp/B07V1MPG8N?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B07V1MPG8N",listPrice:"$7.49",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51QkF1BReJL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51QkF1BReJL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51QkF1BReJL.jpg",imageHeightLarge:500,imageWidthLarge:500,authorshipInfo:"O'linear"},{title:"Girl, Wash Your Face: Stop Believing the Lies about Who You Are So You Can Become Who You Were Meant to Be",asin:"1400201659",productGroup:"Book",authors:["Rachel Hollis"],artists:[],actors:[],manufacturer:"Thomas Nelson",detailPageUrl:"https://www.amazon.com/Girl-Wash-Your-Face-Believing/dp/1400201659?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=1400201659",listPrice:"$11.88",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51uuwa-5OgL._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:49,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51uuwa-5OgL._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:104,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51uuwa-5OgL.jpg",imageHeightLarge:500,imageWidthLarge:326,authorshipInfo:"By Rachel Hollis"},{title:"Death Dealers",asin:"B07F75BN4W",productGroup:"TV Series Episode Video on Demand",authors:[],artists:[],actors:[],detailPageUrl:"https://www.amazon.com/Death-Dealers/dp/B07F75BN4W?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B07F75BN4W",listPrice:"$1.99",authorshipInfo:""},{title:"eDiva Natural Jade Roller- Gua Sha - Lymphatic Drainage Tool for Face, Neck, Body - Anti Aging Treatment - Reduces Wrinkles and Fine Lines",asin:"B07HHF37F7",productGroup:"Beauty",authors:[],artists:[],actors:[],manufacturer:"eDiva",detailPageUrl:"https://www.amazon.com/eDiva-Natural-Jade-Roller-Gua/dp/B07HHF37F7?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B07HHF37F7",listPrice:"$49.95",salePrice:"$22.95",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/41DWi8-M92L._SL75_.jpg",imageHeightSmall:75,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/41DWi8-M92L._SL160_.jpg",imageHeightMedium:160,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/41DWi8-M92L.jpg",imageHeightLarge:500,imageWidthLarge:500,authorshipInfo:"eDiva"},{title:"Pack Leaders",asin:"B071GRS6R9",productGroup:"TV Series Episode Video on Demand",authors:[],artists:[],actors:["McKenzie Westmore","Ve Neill","Glenn Hetrick","Neville Page","Michael Westmore"],detailPageUrl:"https://www.amazon.com/Pack-Leaders/dp/B071GRS6R9?SubscriptionId=AKIAIA3UEVTLIG7AIKFA&tag=%5Bassociate-id-placeholder%5D&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B071GRS6R9",listPrice:"$2.99",imageUrlSmall:"https://images-na.ssl-images-amazon.com/images/I/51rP3BM0oxL._SL75_.jpg",imageHeightSmall:56,imageWidthSmall:75,imageUrlMedium:"https://images-na.ssl-images-amazon.com/images/I/51rP3BM0oxL._SL160_.jpg",imageHeightMedium:120,imageWidthMedium:160,imageUrlLarge:"https://images-na.ssl-images-amazon.com/images/I/51rP3BM0oxL.jpg",imageHeightLarge:375,imageWidthLarge:500,authorshipInfo:"Starring McKenzie Westmore, Ve Neill, Glenn Hetrick, Neville Page, Michael Westmore"}]}},23609:function(e,t,n){"use strict";var r=n(69307),a=n(55066),o=n.n(a),i=n(65736),s=n(52175),l=n(55609),c=n(4981),u=n(33352),p=n(44046);const __=i.__;t.Z=(0,l.withNotices)((function(e){let{attributes:{backgroundColor:t,textColor:n,buttonAndLinkColor:a,asin:i,showImage:d,showTitle:m,showSeller:h,showPrice:f,showPurchaseButton:g},className:b,name:v,noticeUI:k,setAttributes:y}=e;const E=(0,c.getBlockDefaultClassName)(v),[w,_]=(0,r.useState)([]),C=/^(\d+)$|\(ASIN:(.+)\)$/,j=(0,r.createElement)(l.Placeholder,{label:__("Amazon","jetpack"),instructions:__("Search by entering an Amazon product name or ID below.","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:u.Z}),notices:k},(0,r.createElement)("form",null,(0,r.createElement)(l.FormTokenField,{value:i,suggestions:w,onInputChange:()=>{_(p.Z.products.map((e=>`${e.title} (ASIN:${e.asin})`)))},maxSuggestions:10,label:__("Products","jetpack"),onChange:e=>{const t=e.map((e=>{const t=C.exec(e),n=t[1]||t[2];return p.Z.products.filter((e=>e.asin===n))}));y({asin:t[0][0].asin})}}),(0,r.createElement)(l.Button,{isSecondary:!0,isLarge:!0,type:"submit"},__("Preview","jetpack")))),S=(0,r.createElement)(s.InspectorControls,null,i&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(l.PanelBody,{title:__("Promotion Settings","jetpack")},(0,r.createElement)(l.ToggleControl,{label:__("Show Image","jetpack"),checked:d,onChange:()=>y({showImage:!d})}),(0,r.createElement)(l.ToggleControl,{label:__("Show Title","jetpack"),checked:m,onChange:()=>y({showTitle:!m})}),(0,r.createElement)(l.ToggleControl,{label:__("Show Author/Seller","jetpack"),checked:h,onChange:()=>y({showSeller:!h})}),(0,r.createElement)(l.ToggleControl,{label:__("Show Price","jetpack"),checked:f,onChange:()=>y({showPrice:!f})}),(0,r.createElement)(l.ToggleControl,{label:__("Show Purchase Button","jetpack"),checked:g,onChange:()=>y({showPurchaseButton:!g})})),(0,r.createElement)(s.PanelColorSettings,{title:__("Color Settings","jetpack"),colorSettings:[{value:t,onChange:e=>y({backgroundColor:e}),label:__("Background Color","jetpack")},{value:n,onChange:e=>y({textColor:e}),label:__("Text Color","jetpack")},{value:a,onChange:e=>y({buttonAndLinkColor:e}),label:__("Button & Link Color","jetpack")}]},(0,r.createElement)(s.ContrastChecker,{isLargeText:!1,textColor:n,backgroundColor:t}))));return(0,r.createElement)("div",{className:b},S,i?(()=>{const{title:e,detailPageUrl:s,listPrice:c,imageUrlMedium:b,imageWidthMedium:v,imageHeightMedium:k}=p.Z.products.filter((e=>e.asin===i))[0],y="TODO",w=b&&(0,r.createElement)("a",{target:"_blank",href:s,rel:"noopener noreferrer"},(0,r.createElement)("img",{alt:e,src:b,width:v,heigth:k})),_=o().mostReadable(a,["#ffffff"],{includeFallbackColors:!0,size:"small"}).toHexString();return i?(0,r.createElement)("div",{style:{backgroundColor:t,color:n,width:v}},d&&w,m&&(0,r.createElement)("div",{className:`${E}-title`},(0,r.createElement)(l.ExternalLink,{href:s,style:{color:a}},e)),h&&(0,r.createElement)("div",{className:`${E}-seller`},y),f&&(0,r.createElement)("div",{className:`${E}-list-price`},c),g&&(0,r.createElement)(l.Button,{href:s,icon:u.Z,isPrimary:!0,className:`${E}-button`,style:{color:_,backgroundColor:a,borderColor:a}},__("Shop Now","jetpack"))):null})():j)}))},33352:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{clipRule:"evenodd",d:"m13.958 10.09c0 1.232.029 2.256-.591 3.351-.502.891-1.301 1.438-2.186 1.438-1.214 0-1.922-.924-1.922-2.292 0-2.692 2.415-3.182 4.7-3.182v.685zm3.186 7.705c-.209.189-.512.201-.745.074-1.052-.872-1.238-1.276-1.814-2.106-1.734 1.767-2.962 2.297-5.209 2.297-2.66 0-4.731-1.641-4.731-4.925 0-2.565 1.391-4.309 3.37-5.164 1.715-.754 4.11-.891 5.942-1.095v-.41c0-.753.06-1.642-.383-2.294-.385-.579-1.124-.82-1.775-.82-1.205 0-2.277.618-2.54 1.897-.054.285-.261.567-.549.582l-3.061-.333c-.259-.056-.548-.266-.472-.66.704-3.716 4.06-4.838 7.066-4.838 1.537 0 3.547.41 4.758 1.574 1.538 1.436 1.392 3.352 1.392 5.438v4.923c0 1.481.616 2.13 1.192 2.929.204.287.247.63-.01.839-.647.541-1.794 1.537-2.423 2.099zm3.559 1.988c-2.748 1.472-5.735 2.181-8.453 2.181-4.027 0-7.927-1.393-11.081-3.706-.277002-.202-.481003.154-.251003.416 2.925003 3.326 6.786003 5.326 11.076003 5.326 3.061 0 6.614-1.214 9.066-3.494.406-.377.058-.945-.357-.723zm.67 2.216c-.091.227.104.32.31.147 1.339-1.12 1.685-3.466 1.411-3.804-.272-.336-2.612-.626-4.04.377-.22.154-.182.367.062.337.805-.096 2.595-.312 2.913.098.319.41-.355 2.094-.656 2.845z",fillRule:"evenodd"}))},6007:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return u}});var r=n(65736),a=n(78953),o=n(23609),i=n(33352),s=n(57535);const __=r.__,l="amazon",c=__("Amazon","jetpack"),u={attributes:a.Z,title:c,description:__("Promote Amazon products and earn a commission from sales.","jetpack"),icon:{src:i.Z,foreground:(0,s.m)()},category:"earn",keywords:[__("amazon","jetpack"),__("affiliate","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:o.Z,save:()=>null,example:{attributes:{}}}},22874:function(e,t,n){"use strict";n.d(t,{J:function(){return p},F:function(){return d}});var r=n(4981),a=n(9818),o=n(65736),i=n(57535),s=n(41362);const _x=o._x,__=o.__;function l(e){let{spotifyShowUrl:t,spotifyImageUrl:n}=e;return[["core/image",{url:n,linkDestination:"none",href:t,align:"center",width:165,height:40,className:"is-spotify-podcast-badge"}]]}function c(e){let{episodeTrack:t,feedUrl:n}=e;const{guid:r}=t;return[["jetpack/podcast-player",{customPrimaryColor:(0,i.m)(),hexPrimaryColor:(0,i.m)(),url:n,selectedEpisodes:r?[{guid:r}]:[],showCoverArt:!1,showEpisodeTitle:!1,showEpisodeDescription:!1}]]}function u(e){let{spotifyShowUrl:t,spotifyImageUrl:n,episodeTrack:o={},feedUrl:i}=e;const s=[...c({episodeTrack:o,feedUrl:i})];return t&&n&&s.push(...l({spotifyShowUrl:t,spotifyImageUrl:n})),s.push(...function(e){let{episodeTrack:t}=e;const n=[["core/heading",{level:3,content:_x("Summary","noun: summary of a podcast episode","jetpack"),placeholder:__("Podcast episode title","jetpack")}]],a=(0,r.pasteHandler)({HTML:t.description_html,mode:"BLOCKS"});return a.length?n.push(...a):n.push(["core/paragraph",{placeholder:__("Podcast episode summary","jetpack")}]),n}({episodeTrack:o})),s.push(...function(){const e="jetpack/conversation";return(0,a.select)("core/blocks").getBlockType(e)?[[e,{participants:[{slug:"participant-0",label:__("Speaker 1","jetpack")},{slug:"participant-1",label:__("Speaker 2","jetpack")},{slug:"participant-2",label:__("Speaker 3","jetpack")}]},[["core/heading",{level:3,content:__("Transcription","jetpack"),placeholder:__("Podcast episode transcription","jetpack")}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-0"}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-1"}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-2"}]]]]:[["core/heading",{level:3,content:__("Transcription","jetpack"),placeholder:__("Podcast episode transcription","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}]]}()),s}function p(e){return(0,s.Z)(u(e))}function d(e){if(e.spotifyImageUrl&&e.spotifyShowUrl)return(0,s.Z)([...l(e)])}},63533:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819);const __=l.__,p="09:00",d="17:00";class m extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,{opening:r,closing:a}=e;return(0,o.createElement)(o.Fragment,{key:t},(0,o.createElement)("div",{className:"business-hours__row"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")},0===t&&this.renderDayToggle()),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.TextControl,{type:"time",label:__("Opening","jetpack"),value:r,className:"business-hours__open",placeholder:p,onChange:e=>{this.setHour(e,"opening",t)}}),(0,o.createElement)(c.TextControl,{type:"time",label:__("Closing","jetpack"),value:a,className:"business-hours__close",placeholder:d,onChange:e=>{this.setHour(e,"closing",t)}})),(0,o.createElement)("div",{className:"business-hours__remove"},n.hours.length>1&&(0,o.createElement)(c.Button,{isSmall:!0,isLink:!0,icon:"trash",label:__("Remove Hours","jetpack"),onClick:()=>{this.removeInterval(t)}}))),t===n.hours.length-1&&(0,o.createElement)("div",{className:"business-hours__row business-hours-row__add"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")}," "),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.Button,{isLink:!0,label:__("Add Hours","jetpack"),onClick:this.addInterval},__("Add Hours","jetpack"))),(0,o.createElement)("div",{className:"business-hours__remove"}," ")))})),a()(this,"setHour",((e,t,n)=>{const{day:r,attributes:a,setAttributes:o}=this.props,{days:i}=a;o({days:i.map((a=>a.name===r.name?{...a,hours:a.hours.map(((r,a)=>a===n?{...r,[t]:e}:r))}:a))})})),a()(this,"toggleClosed",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>{if(n.name===t.name){const t=e?[{opening:p,closing:d}]:[];return{...n,hours:t}}return n}))})})),a()(this,"addInterval",(()=>{const{day:e,attributes:t,setAttributes:n}=this.props,{days:r}=t;e.hours.push({opening:"",closing:""}),n({days:r.map((t=>t.name===e.name?{...t,hours:e.hours}:t))})})),a()(this,"removeInterval",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>t.name===n.name?{...n,hours:n.hours.filter(((t,n)=>e!==n))}:n))})}))}isClosed(){const{day:e}=this.props;return(0,u.isEmpty)(e.hours)}renderDayToggle(){const{day:e,localization:t}=this.props;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"business-hours__day-name"},t.days[e.name]),(0,o.createElement)(c.ToggleControl,{label:this.isClosed()?__("Closed","jetpack"):__("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}renderClosed(){const{day:e}=this.props;return(0,o.createElement)("div",{className:"business-hours__row business-hours-row__closed"},(0,o.createElement)("div",{className:s()(e.name,"business-hours__day")},this.renderDayToggle()),(0,o.createElement)("div",{className:s()(e.name,"closed","business-hours__hours")}," "),(0,o.createElement)("div",{className:"business-hours__remove"}," "))}render(){const{day:e}=this.props;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}t.Z=m},20920:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(69771),l=n(92819);const _x=i._x;class c extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,r=n.hours;return(0,o.createElement)("span",{key:t},(0,i.sprintf)("%1$s - %2$s",this.formatTime(e.opening),this.formatTime(e.closing)),r.length>1+t&&(0,o.createElement)("span",null,", "))}))}formatTime(e){const{timeFormat:t}=this.props,[n,r]=e.split(":"),a=new Date;return!(!n||!r)&&(a.setHours(n),a.setMinutes(r),(0,s.date)(t,a))}render(){const{day:e,localization:t}=this.props,n=e.hours.filter((e=>this.formatTime(e.opening)&&this.formatTime(e.closing)));return(0,o.createElement)("div",{className:"jetpack-business-hours__item"},(0,o.createElement)("dt",{className:e.name},t.days[e.name]),(0,o.createElement)("dd",null,(0,l.isEmpty)(n)?_x("Closed","business is closed on a full day","jetpack"):n.map(this.renderInterval),(0,o.createElement)("br",null)))}}t.Z=c},85932:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(89105),p=n.n(u),d=n(65736),m=n(69771),h=n(52175),f=n(55609),g=n(63533),b=n(20920),v=n(8042);const __=d.__,k={days:{Sun:__("Sunday","jetpack"),Mon:__("Monday","jetpack"),Tue:__("Tuesday","jetpack"),Wed:__("Wednesday","jetpack"),Thu:__("Thursday","jetpack"),Fri:__("Friday","jetpack"),Sat:__("Saturday","jetpack")},startOfWeek:0};class y extends s.Component{constructor(){super(...arguments),i()(this,"state",{localization:k,hasFetched:!1})}componentDidMount(){this.apiFetch()}apiFetch(){this.setState({data:k},(()=>{c()({path:"/wpcom/v2/business-hours/localized-week"}).then((e=>{this.setState({localization:e,hasFetched:!0})}),(()=>{this.setState({localization:k,hasFetched:!0})}))}))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{days:r}=e,{localization:o,hasFetched:i}=this.state,{startOfWeek:l}=o,c=r.concat(r.slice(0,l)).slice(l);if(!i)return(0,s.createElement)(f.Placeholder,{icon:(0,s.createElement)(h.BlockIcon,{icon:v.qv}),label:__("Loading business hours","jetpack")});if(!n){const e=(0,m.__experimentalGetSettings)(),{formats:{time:n}}=e;return(0,s.createElement)("dl",{className:p()(t,"jetpack-business-hours")},c.map(((e,t)=>(0,s.createElement)(b.Z,{key:t,day:e,localization:o,timeFormat:n}))))}return(0,s.createElement)("div",{className:p()(t,"is-edit")},c.map(((e,t)=>(0,s.createElement)(g.Z,a()({key:t,day:e,localization:o},this.props)))))}}t.Z=y},8042:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(85932),s=n(41632),l=n(57535);const __=a.__,_x=a._x,c=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],u="business-hours",p=(0,s.Z)((0,r.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),d={title:__("Business Hours","jetpack"),description:__("Display opening hours for your business.","jetpack"),icon:{src:p,foreground:(0,l.m)()},category:"grow",supports:{html:!0},keywords:[_x("opening hours","block search term","jetpack"),_x("closing time","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("working day","block search term","jetpack")],attributes:{days:{type:"array",default:c}},edit:e=>(0,r.createElement)(i.Z,e),save:()=>null,example:{attributes:{days:c}}}},83487:function(e,t,n){"use strict";var r=n(92819),a=n(55609);const o=(0,a.withFallbackStyles)(((e,t)=>{const{backgroundColor:n,textColor:a}=t,o=(0,r.get)(n,"color"),i=!(0,r.get)(a,"color")&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:o||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:a||!i?void 0:getComputedStyle(i).color}}));t.Z=o},70443:function(e,t,n){"use strict";var r=n(68039);t.Z={element:{type:"string",enum:["a","button","input"]},saveInPostContent:{type:"boolean",default:!1},uniqueId:{type:"string"},passthroughAttributes:{type:"object"},text:{type:"string"},placeholder:{type:"string"},url:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string",validator:r.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:r.Z},gradient:{type:"string"},customGradient:{type:"string"},borderRadius:{type:"number"},width:{type:"string"}}},24429:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(77012);const __=o.__;function s(e){let{borderRadius:t="",setAttributes:n}=e;const o=(0,r.useCallback)((e=>n({borderRadius:e})),[n]);return(0,r.createElement)(a.PanelBody,{title:__("Border Settings","jetpack")},(0,r.createElement)(a.RangeControl,{allowReset:!0,initialPosition:i.pg,label:__("Border radius","jetpack"),max:i.Gp,min:i.G0,onChange:o,value:t}))}},63020:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(65736);const __=o.__;function i(e){let{isGradientAvailable:t,backgroundColor:n,fallbackBackgroundColor:o,fallbackTextColor:i,gradientValue:s,setBackgroundColor:l,setGradient:c,setTextColor:u,textColor:p}=e;const d=(0,r.createElement)(a.ContrastChecker,{backgroundColor:n.color,fallbackBackgroundColor:o,fallbackTextColor:i,isLargeText:!1,textColor:p.color});return t?(0,r.createElement)(a.__experimentalPanelColorGradientSettings,{settings:[{colorValue:p.color,label:__("Text Color","jetpack"),onColorChange:u},{colorValue:n.color,gradientValue:s,label:__("Background","jetpack"),onColorChange:l,onGradientChange:c}],title:__("Background & Text Color","jetpack")},d):(0,r.createElement)(a.PanelColorSettings,{colorSettings:[{value:p.color,onChange:u,label:__("Text Color","jetpack")},{value:n.color,onChange:l,label:__("Background","jetpack")}],title:__("Background & Text Color","jetpack")},d)}},80790:function(e,t,n){"use strict";n.d(t,{Z:function(){return p},h:function(){return d}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=[{value:"px",label:"px",default:150},{value:"%",label:"%",default:100},{value:"em",label:"em",default:10}],c=[{value:"px",label:"px",default:150},{value:"em",label:"em",default:10}],u=["25%","50%","75%","100%"];function p(e){return(0,r.createElement)(i.PanelBody,{title:__("Width settings","jetpack")},(0,r.createElement)(d,e))}function d(e){let{align:t,width:n,onChange:a}=e;const[s,p]=(0,r.useState)(null);(0,r.useEffect)((()=>{void 0===n&&p("px")}),[n]);const d="left"===t||"right"===t;return(0,r.createElement)(i.BaseControl,{label:__("Button width","jetpack")},(0,r.createElement)("div",{className:o()("jetpack-button__width-settings",{"is-aligned":d})},!d&&(0,r.createElement)(i.ButtonGroup,{"aria-label":__("Percentage Width","jetpack")},u.map((e=>(0,r.createElement)(i.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>function(e){const t=n===e?void 0:e;p("%"),a(t)}(e)},e)))),(0,r.createElement)(i.__experimentalUnitControl,{className:"jetpack-button__custom-width",isResetValueOnUnitChange:!0,max:"%"===s||n?.includes("%")?100:void 0,min:0,onChange:e=>a(e),onUnitChange:e=>p(e),size:"small",units:d?c:l,value:n,unit:s})))}},77012:function(e,t,n){"use strict";n.d(t,{DA:function(){return a},pg:function(){return o},Gp:function(){return i},G0:function(){return s}});var r=n(52175);const a=!!r.__experimentalUseGradient,o=5,i=50,s=0},78593:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(24429),o=n(63020),i=n(80790);function s(e){let{attributes:t,backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,setAttributes:c,setBackgroundColor:u,setTextColor:p,textColor:d,gradientValue:m,setGradient:h,isGradientAvailable:f}=e;const{align:g,borderRadius:b,width:v}=t;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Z,{backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,gradientValue:m,setBackgroundColor:u,setGradient:h,setTextColor:p,textColor:d,isGradientAvailable:f}),(0,r.createElement)(a.Z,{borderRadius:b,setAttributes:c}),(0,r.createElement)(i.Z,{align:g,width:v,onChange:e=>c({width:e})}))}},16867:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(52175),c=n(94333),u=n(65736),p=n(83487),d=n(78593),m=n(77012),h=n(31123);const __=u.__;t.Z=(0,c.compose)((0,l.withColors)({backgroundColor:"background-color"},{textColor:"color"}),p.Z)((function(e){const{attributes:t,backgroundColor:n,className:r,clientId:i,setAttributes:c,textColor:u}=e,{align:p,borderRadius:f,element:g,placeholder:b,text:v,width:k}=t,y=(e=>{const t=(0,o.useRef)();return(0,o.useEffect)((()=>{t.current=e}),[e]),t.current})(p);(0,h.Z)({attributes:t,clientId:i,setAttributes:c}),(0,o.useEffect)((()=>{y!==p&&("left"===p||"right"===p)&&k?.includes("%")&&c({width:void 0})}),[p,y,c,k]);const{gradientClass:E,gradientValue:w,setGradient:_}=m.DA?(0,l.__experimentalUseGradient)({gradientAttribute:"gradient",customGradientAttribute:"customGradient"}):{},C=s()("wp-block-button",r),j=s()("wp-block-button__link",{"has-background":n.color||w,[n.class]:!w&&n.class,"has-text-color":u.color,[u.class]:u.class,[E]:E,"no-border-radius":0===f,"has-custom-width":!!k}),S={...!n.color&&w?{background:w}:{backgroundColor:n.color},color:u.color,borderRadius:f?f+"px":void 0,width:k};return(0,o.createElement)("div",{className:C},(0,o.createElement)(l.RichText,{allowedFormats:"input"===g?[]:void 0,className:j,disableLineBreaks:"input"===g,onChange:e=>{const t="input"===g?e.replace(/<br>/gim," "):e;c({text:t})},placeholder:b||__("Add text…","jetpack"),style:S,value:v,withoutInteractiveFormatting:!0}),(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(d.Z,a()({gradientValue:w,setGradient:_,isGradientAvailable:m.DA},e))))}))},51245:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 13h8v-1.5H8V13z"}))},32278:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(70443),o=n(16867),i=n(51245),s=n(41328),l=n(20510);const __=r.__,c="button",u={title:__("Button","jetpack"),icon:i.Z,category:(0,l.Z)("design","layout"),keywords:[],supports:{html:!1,inserter:!1,align:["left","center","right"]},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],attributes:a.Z,edit:o.Z,save:s.Z}},41328:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(77012);function l(e){let{attributes:t,blockName:n,uniqueId:a}=e;const{backgroundColor:l,borderRadius:c,className:u,customBackgroundColor:p,customGradient:d,customTextColor:m,gradient:h,saveInPostContent:f,text:g,textColor:b,url:v,width:k}=t;if(!f)return null;const y=(0,i.getColorClassName)("background-color",l),E=s.DA?(0,i.__experimentalGetGradientClass)(h):void 0,w=(0,i.getColorClassName)("color",b),_=o()("wp-block-button","jetpack-submit-button",u,{[`wp-block-jetpack-${n}`]:n}),C=o()("wp-block-button__link",{"has-text-color":b||m,[w]:w,"has-background":l||h||p||d,[y]:y,[E]:E,"no-border-radius":0===c,"has-custom-width":!!k}),j={background:d||void 0,backgroundColor:y||d||h?void 0:p,color:w?void 0:m,borderRadius:c?c+"px":void 0,width:k};return(0,r.createElement)("div",{className:_},(0,r.createElement)(i.RichText.Content,{className:C,"data-id-attr":a||"placeholder",href:v,id:a,rel:"noopener noreferrer",role:"button",style:j,tagName:"a",target:"_blank",value:g}))}},31123:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(9818),o=n(69307);function i(e){let{attributes:t,clientId:n,setAttributes:i}=e;const{passthroughAttributes:s}=t,{attributesToSync:l}=(0,a.useSelect)((e=>{const{getBlockAttributes:a,getBlockRootClientId:o}=e("core/block-editor"),i=a(o(n))||{},l=(0,r.mapValues)(s,(e=>i[e]));return{attributesToSync:(0,r.pickBy)(l,((e,n)=>e!==t[n]))}}));(0,o.useEffect)((()=>{(0,r.isEmpty)(l)||i(l)}),[l,i])}},35932:function(e,t,n){"use strict";var r=n(68039);t.Z={backgroundColor:{type:"string",default:"ffffff",validator:r.Z},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:r.Z},textColor:{type:"string",default:"4D5055",validator:r.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")}}},16485:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(72566);const __=i.__,_x=i._x,l=e=>{let{onEditClick:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{onClick:()=>t(!0)},__("Edit","jetpack")))},c=e=>{const{attributes:{hideEventTypeDetails:t,url:n},defaultClassName:a,embedCode:i,parseEmbedCode:s,setAttributes:l,setEmbedCode:c}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{PanelBody:!0,title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:s,className:`${a}-embed-form-sidebar`},(0,r.createElement)("input",{type:"text",id:"embedCode",onChange:e=>c(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:i||"",className:"components-placeholder__input"}),(0,r.createElement)("div",null,(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)(o.ToggleControl,{label:__("Hide event type details","jetpack"),checked:t,onChange:()=>l({hideEventTypeDetails:!t})})),n&&(0,r.createElement)(o.Notice,{className:`${a}-color-notice`,isDismissible:!1},(0,r.createElement)(o.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},__("Follow these instructions to change the colors in this block.","jetpack"))))};t.ZP=e=>{const{attributes:t,clientId:n,isEditingUrl:o,setAttributes:i,setIsEditingUrl:u}=e,{style:p,url:d}=t,m=[{value:"inline",label:__("Inline","jetpack")},{value:"link",label:__("Link","jetpack")}];return(0,r.createElement)(r.Fragment,null,d&&!o&&(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(l,{onEditClick:u})),d&&(0,r.createElement)(s.Z,{clientId:n,styleOptions:m,onSelectStyle:i,activeStyle:p,attributes:t,viewportWidth:500}),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(c,e)))}},77017:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(68039);const __=o.__;t.Z={attributes:{backgroundColor:{type:"string",default:"ffffff",validator:i.Z},submitButtonText:{type:"string",default:__("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:i.Z},textColor:{type:"string",default:"4D5055",validator:i.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:i.Z},customTextButtonColor:{type:"string",validator:i.Z}},migrate:e=>{const{submitButtonText:t,submitButtonTextColor:n,submitButtonBackgroundColor:r,submitButtonClasses:o,backgroundButtonColor:i,textButtonColor:s,customBackgroundButtonColor:l,customTextButtonColor:c,...u}=e,p={text:(d=e).submitButtonText||__("Schedule time with me","jetpack"),textColor:d.submitButtonTextColor||d.textButtonColor,customTextColor:d.customTextButtonColor,backgroundColor:d.submitButtonBackgroundColor||d.backgroundButtonColor,customBackgroundColor:d.customBackgroundButtonColor,url:d.url};var d;return[u,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"calendly-widget-id",...p})]]},save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)}}},96537:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=(n(86841),n(92819)),s=n(5157),l=n(52175),c=n(55609),u=n(65736),p=n(4981),d=n(9818),m=n(59040),h=n(35932),f=n(14087),g=n(79042),b=n(79884),v=n(87072),k=n(16485);const __=u.__,_x=u._x;t.Z=(0,c.withNotices)((function(e){const{attributes:t,className:n,clientId:r,name:u,noticeOperations:y,noticeUI:E,setAttributes:w}=e,_=(0,p.getBlockDefaultClassName)(u),C=(0,f.S)(h.Z,t);(0,i.isEqual)(C,t)||w(C);const{backgroundColor:j,hideEventTypeDetails:S,primaryColor:x,textColor:T,style:P,url:N}=C,[A,I]=(0,o.useState)(N),[B,M]=(0,o.useState)(!1),[R,L]=(0,o.useState)(!1),[Z,F]=(0,o.useState)({}),D=()=>{y.removeAllNotices(),y.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack"))};(0,o.useEffect)((()=>{N&&b.lR!==N&&"link"!==P&&(0,v.Z)(N,L).catch((()=>{w({url:void 0}),D()}))}),[]);const O=e=>{if(!e)return void D();e.preventDefault();const t=(0,g.CC)(A);if(t){if(t.buttonAttributes&&"link"===t.style){const e=(0,d.select)("core/editor").getBlocksByClientId(r);e.length&&e[0].innerBlocks.forEach((e=>{(0,d.dispatch)("core/editor").updateBlockAttributes(e.clientId,t.buttonAttributes)})),F(t.buttonAttributes)}(0,v.Z)(t.url,L).then((()=>{const e=(0,f.S)(h.Z,t);w(e),M(!1),y.removeAllNotices()})).catch((()=>{w({url:void 0}),D()}))}else D()},z=(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(c.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack"))),U=(0,o.createElement)(c.Placeholder,{label:__("Calendly","jetpack"),instructions:__("Enter your Calendly web address or embed code below.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:m.Z}),notices:E},(0,o.createElement)("form",{onSubmit:O},(0,o.createElement)("input",{type:"text",id:"embedCode",onChange:e=>I(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:A||"",className:"components-placeholder__input"}),(0,o.createElement)("div",null,(0,o.createElement)(c.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,o.createElement)("div",{className:`${_}-learn-more`},(0,o.createElement)(c.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},__("Need help finding your embed code?","jetpack")))),$=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:`${_}-overlay`}),(0,o.createElement)("iframe",{src:(()=>{const e=s.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:S?1:0,background_color:j,primary_color:x,text_color:T});return`${N}?${e}`})(),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",title:"Calendly"})),V=(0,o.createElement)(l.InnerBlocks,{template:[[b.Ss.name,{...b.Ss.attributes,...Z,passthroughAttributes:{url:"url"}}]],templateLock:"all"});if(R)return z;let G=n;return N&&!B&&(G+=` calendly-style-${P}`),(0,o.createElement)("div",{className:G},(0,o.createElement)(k.ZP,a()({},e,{defaultClassName:_,embedCode:A,isEditingUrl:B,parseEmbedCode:O,setEmbedCode:I,setIsEditingUrl:M})),N&&!B?"inline"===P?$:V:U)}))},59040:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19,1h-2.3v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H8.6v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H4C1.8,1,0,2.8,0,5 v15c0,2.2,1.8,4,4,4h15c2.2,0,4-1.8,4-4V5C23,2.8,21.2,1,19,1z M21,20c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h2.6 v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3h6.1v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3H19c1.1,0,2,0.9,2,2V20z M13.9,14.8l1.4,1.4 c-0.9,0.9-2.1,1.3-3.5,1.3c-2.4,0-4.5-2.1-4.5-4.7s2.1-4.7,4.5-4.7c1.4,0,2.5,0.4,3.4,1.1L14,10.9c-0.5-0.4-1.2-0.6-2.1-0.6 c-1.2,0-2.5,1.1-2.5,2.7c0,1.6,1.3,2.7,2.5,2.7C12.7,15.5,13.4,15.3,13.9,14.8z"}))},79884:function(e,t,n){"use strict";n.d(t,{lR:function(){return d},Ss:function(){return m},u2:function(){return h},Xd:function(){return f}});var r=n(65736),a=n(4981),o=n(35932),i=n(77017),s=n(96537),l=n(59040),c=n(56610),u=n(79042),p=n(57535);const __=r.__,_x=r._x,d="https://calendly.com/wpcom/jetpack-block-example",m={name:"jetpack/button",attributes:{element:"a",text:__("Schedule time with me","jetpack"),uniqueId:"calendly-widget-id",url:d}},h="calendly",f={title:__("Calendly","jetpack"),description:__("Embed a calendar for customers to schedule appointments","jetpack"),icon:{src:l.Z,foreground:(0,p.m)()},category:"grow",keywords:[_x("calendar","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack"),_x("events","block search term","jetpack"),_x("dates","block search term","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:s.Z,save:c.Z,attributes:o.Z,example:{attributes:{hideEventTypeDetails:!1,style:"inline",url:d},innerBlocks:[m]},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&u.mL.test(e.textContent),transform:e=>{const t=(0,u.CC)(e.textContent);return(0,a.createBlock)("jetpack/calendly",t)}}]},deprecated:[i.Z]}},56610:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null))}},79042:function(e,t,n){"use strict";n.d(t,{mL:function(){return r},CC:function(){return a}});const r=/(^|\/\/)(calendly\.com[^"']*)/i,a=e=>{if(!e)return;const t=(e=>{const t=e.match(r);if(t)return"https://"+t[2]})(e);if(!t)return;const n=(e=>{const t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;const r=new URLSearchParams(n.search),a=r.get("background_color"),o=r.get("primary_color"),i=r.get("text_color"),s=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(s)&&(t.backgroundColor=a),o&&o.match(s)&&(t.primaryColor=o),i&&i.match(s)&&(t.textColor=i),t})(t),a=(e=>e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0)(e);if(a&&(n.style=a),"link"===a){n.buttonAttributes={};const t=(e=>{let t=e.match(/false;">([^<]+)<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/),t?t[1]:void 0)})(e);t&&(n.buttonAttributes.text=t);const r=(e=>{const t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]})(e);r&&(n.buttonAttributes.textColor=void 0,n.buttonAttributes.customTextColor=r);const a=(e=>{const t=e.match(/color: '([^']*?)'/);if(t)return t[1]})(e);a&&(n.buttonAttributes.backgroundColor=void 0,n.buttonAttributes.customBackgroundColor=a)}return n}},89534:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subject:{type:"string"},to:{type:"string"},customThankyou:{type:"string",default:""},customThankyouHeading:{type:"string",default:__("Message Sent","jetpack")},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},jetpackCRM:{type:"boolean",default:!0}}},60689:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__('The CRM Jetpack Form extension failed to activate. The error message was "<error />".',"jetpack"),{error:(0,r.createElement)("span",null,t)}))}},81316:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(60689);const __=s.__,c=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:s,crmData:c,setCRMData:u}=e;const p=((e,t,n,r)=>()=>{t(void 0),e(!0),o()({path:"/jetpack/v4/jetpack_crm",method:"POST",data:{extension:"jetpackforms"}}).then((e=>{if("success"!==e.code)throw new Error(e.code);const t=Object.assign({},n);t.jp_form_ext_enabled=!0,r(t)})).catch((e=>{t(e.message)})).finally((()=>{e(!1)}))})(n,s,c,u);return t?(0,r.createElement)(i.Spinner,null):a?(0,r.createElement)(l.Z,{error:a}):(0,r.createElement)(i.Button,{isSecondary:!0,onClick:p},__("Enable Jetpack Forms Extension","jetpack"))},u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("A site administrator must enable the CRM Jetpack Forms extension.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You can integrate this contact form with Jetpack CRM by enabling Jetpack CRM's Jetpack Forms extension.","jetpack"));t.Z=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s}=e;return i.can_activate_extension?(0,r.createElement)("div",null,(0,r.createElement)(p,null),(0,r.createElement)("br",null),(0,r.createElement)(c,{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s})):(0,r.createElement)(u,null)}},36080:function(e,t,n){"use strict";var r=n(69307),a=n(53377),o=n.n(a),i=n(55609),s=n(65736),l=n(81316);const __=s.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Jetpack CRM is installed but has an invalid version.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Zero BS CRM plugin is now Jetpack CRM. Update to the latest version to integrate your contact form with your CRM.","jetpack")),d=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},(0,r.createInterpolateElement)(__("You can save contacts from Jetpack contact forms in Jetpack CRM. Learn more at <a>jetpackcrm.com</a>","jetpack"),{a:(0,r.createElement)(i.ExternalLink,{href:"https://jetpackcrm.com"})})),m=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You already have the Jetpack CRM plugin installed, but it's not activated. Activate the Jetpack CRM plugin to save contacts from this contact form in your Jetpack CRM.","jetpack")),h=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:s}=e;const[c,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)(!1);return t.jp_form_ext_enabled?o().satisfies(o().coerce(t.crm_version),"3.0.19 - 4.0.0")?(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("Contacts from this form will be stored in Jetpack CRM.","jetpack")):(0,r.createElement)(i.ToggleControl,{className:"jetpack-contact-form__crm_toggle",label:__("Jetpack CRM","jetpack"),checked:a,onChange:e=>s({jetpackCRM:e}),help:__("Store contact form submissions in your CRM.","jetpack")}):(0,r.createElement)(l.Z,{isActivatingExt:c,setIsActivatingExt:u,extActivationError:p,setExtActivationError:d,crmData:t,setCRMData:n})};t.Z=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}=e;const s=o().coerce(t.crm_version);if(t.crm_installed&&!s)return(0,r.createElement)(u,null);if(t.crm_installed&&o().lt(s,"3.0.19"))return(0,r.createElement)(p,null);let l=c.NOT_INSTALLED;return t.crm_active?l=c.ACTIVE:t.crm_installed&&(l=c.INSTALLED),(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===l&&(0,r.createElement)(h,{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}),c.INSTALLED===l&&(0,r.createElement)(m,null),c.NOT_INSTALLED===l&&(0,r.createElement)(d,null))}},6361:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(36080);const __=s.__,c=e=>{let{isFetchingCRMData:t,hasCRMDataError:n,crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c}=e;return t?(0,r.createElement)(i.Spinner,null):n?null:(0,r.createElement)(l.Z,{crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c})};t.Z=e=>{let{jetpackCRM:t,setAttributes:n}=e;const[a,s]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)();return(0,r.useEffect)((()=>{o()({path:"/jetpack/v4/jetpack_crm"}).then((e=>{if(e.error)throw e.message;u(!1),d(e)})).catch((()=>u(!0))).finally((()=>s(!1)))}),[]),(0,r.createElement)(i.PanelBody,{title:__("CRM Integration","jetpack"),initialOpen:!1},(0,r.createElement)(i.BaseControl,null,(0,r.createElement)(c,{isFetchingCRMData:a,hasCRMDataError:l,crmData:p,setCRMData:d,jetpackCRM:t,setAttributes:n})))}},69802:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(8523);const __=a.__;t.Z=(0,s.withInstanceId)((function(e){const{id:t,instanceId:n,required:a,label:s,setAttributes:u,width:p,defaultValue:d}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-checkbox-${n}`,className:"jetpack-field jetpack-field-checkbox",label:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:d}),(0,r.createElement)(l.Z,{required:a,label:s,setAttributes:u}),(0,r.createElement)(c.Z,{id:t,required:a,width:p,setAttributes:u}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Checkbox Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Checked by default","jetpack"),checked:d,onChange:e=>u({defaultValue:e?"true":""})}))))})}))},57324:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(84803),u=n(10745);const __=a.__;t.Z=(0,s.withInstanceId)((e=>{var t;let{id:n,instanceId:s,width:p,consentType:d,implicitConsentMessage:m,explicitConsentMessage:h,setAttributes:f}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-consent-${s}`,className:"jetpack-field jetpack-field-consent",label:(0,r.createElement)(r.Fragment,null,"explicit"===d&&(0,r.createElement)("input",{className:"jetpack-field-consent__checkbox",type:"checkbox",disabled:!0}),(0,r.createElement)(l.Z,{required:!1,label:null!==(t={implicit:m,explicit:h}[d])&&void 0!==t?t:"",setAttributes:f,labelFieldName:`${d}ConsentMessage`,placeholder:(0,a.sprintf)(
+/* translators: placeholder is a type of consent: implicit or explicit */
+__("Add %s consent message…","jetpack"),d)}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(c.Z,{setAttributes:f,width:p}))),(0,r.createElement)(i.InspectorAdvancedControls,null,(0,r.createElement)(u.Z,{setAttributes:f,id:n})),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Consent Settings","jetpack")},(0,r.createElement)(o.BaseControl,null,(0,r.createElement)(o.SelectControl,{label:__("Permission to email","jetpack"),value:d,options:[{label:__("Mention that you can email","jetpack"),value:"implicit"},{label:__("Add a privacy checkbox","jetpack"),value:"explicit"}],onChange:e=>f({consentType:e})})))))})}))},8523:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(41632),l=n(84803),c=n(10745);const __=a.__;t.Z=e=>{let{setAttributes:t,width:n,id:a,required:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarButton,{title:__("Required","jetpack"),icon:(0,s.Z)((0,r.createElement)(i.Path,{d:"M8.23118 8L16 16M8 16L15.7688 8 M6.5054 11.893L17.6567 11.9415M12.0585 17.6563L12 6.5",stroke:"currentColor"})),onClick:()=>{t({required:!u})},className:u?"is-pressed":void 0}))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Field is required","jetpack"),className:"jetpack-field-label__required",checked:u,onChange:e=>t({required:e}),help:__("Does this field have to be completed for the form to be submitted?","jetpack")}),(0,r.createElement)(l.Z,{setAttributes:t,width:n}))),(0,r.createElement)(o.InspectorAdvancedControls,null,(0,r.createElement)(c.Z,{setAttributes:t,id:a})))}},10745:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,id:n}=e;return(0,r.createElement)(o.TextControl,{label:__("Unique CSS ID","jetpack"),value:n,onChange:e=>t({id:e}),help:__("A unique ID that can be used in CSS or as an anchor.","jetpack")})}},80500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175);const __=a.__;t.Z=e=>{let{setAttributes:t,label:n,labelFieldName:a,placeholder:i,resetFocus:s,required:l}=e;return(0,r.createElement)("div",{className:"jetpack-field-label"},(0,r.createElement)(o.RichText,{tagName:"label",value:n,className:"jetpack-field-label__input",onChange:e=>{s&&s(),t(a?{[a]:e}:{label:e})},placeholder:null!=i?i:__("Add label…","jetpack"),withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic"]}),l&&(0,r.createElement)("span",{className:"required"},__("(required)","jetpack")))}},56764:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(80500),l=n(29110),c=n(8523);const __=a.__;t.Z=(0,i.withInstanceId)((function(e){const{id:t,type:n,instanceId:a,required:i,label:u,setAttributes:p,isSelected:d,width:m,options:h}=e,[f,g]=(0,r.useState)(null),b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=h.slice(0);null===t?(n.splice(e,1),e>0&&g(e-1)):(n.splice(e,1,t),g(e)),p({options:n})},v=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=h.slice(0);let n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),g(n),p({options:t})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{id:`jetpack-field-multiple-${a}`,className:"jetpack-field jetpack-field-multiple",label:(0,r.createElement)(s.Z,{required:i,label:u,setAttributes:p,isSelected:d,resetFocus:()=>g(null)})},(0,r.createElement)("ol",{className:"jetpack-field-multiple__list",id:`jetpack-field-multiple-${a}`},h.map(((e,t)=>(0,r.createElement)(l.Z,{type:n,key:t,option:e,index:t,onChangeOption:b,onAddOption:v,isInFocus:t===f&&d,isSelected:d})))),d&&(0,r.createElement)(o.Button,{className:"jetpack-field-multiple__add-option",icon:"insert",label:__("Insert option","jetpack"),onClick:v},__("Add option","jetpack"))),(0,r.createElement)(c.Z,{id:t,required:i,setAttributes:p,width:m}))}))},7640:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(80500),s=n(8523);const __=a.__;function l(e){const{id:t,required:n,label:a,setAttributes:l,placeholder:c,width:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"jetpack-field"},(0,r.createElement)(i.Z,{required:n,label:a,setAttributes:l}),(0,r.createElement)(o.Disabled,null,(0,r.createElement)(o.TextareaControl,{placeholder:c,value:c,onChange:e=>l({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,r.createElement)(s.Z,{id:t,required:n,setAttributes:l,width:u}))}},84803:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,width:n}=e;return(0,r.createElement)(o.BaseControl,{label:__("Field Width","jetpack"),help:__("Adjust the width of the field to include multiple fields on a single line.","jetpack"),className:"jetpack-field-label__width"},(0,r.createElement)(o.ButtonGroup,{"aria-label":__("Field Width","jetpack")},[25,50,75,100].map((e=>(0,r.createElement)(o.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>t({width:e})},e,"%")))))}},36755:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(55609),c=n(92694),u=n(80500),p=n(8523);const __=i.__;function d(e){const{id:t,type:n,required:r,label:a,setAttributes:i,placeholder:s,width:c}=e;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"jetpack-field"},(0,o.createElement)(u.Z,{required:r,label:a,setAttributes:i}),(0,o.createElement)(l.Disabled,null,(0,o.createElement)(l.TextControl,{type:n,placeholder:s,value:s,onChange:e=>i({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,o.createElement)(p.Z,{id:t,required:r,width:c,setAttributes:i}))}const m=(0,s.createHigherOrderComponent)((e=>t=>{if(t.name.indexOf("jetpack/field")>-1){const n=t.attributes.width?"jetpack-field__width-"+t.attributes.width:"";return(0,o.createElement)(e,a()({},t,{className:n}))}return(0,o.createElement)(e,t)}),"withCustomClassName");(0,c.addFilter)("editor.BlockListBlock","jetpack/contact-form",m)},32605:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(9818),s=n(4981);const __=o.__,l=()=>{const{insertConsentBlock:e}=(()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]),{insertBlock:t}=(0,i.useDispatch)("core/block-editor");return{insertConsentBlock:(0,r.useCallback)((async()=>{var n;let r=(null!==(n=e.innerBlocks)&&void 0!==n?n:[]).findIndex((e=>{let{name:t}=e;return"jetpack/button"===t}));var a;-1===r&&(r=(null!==(a=e.innerBlocks)&&void 0!==a?a:[]).length);const o=await(0,s.createBlock)("jetpack/field-consent");await t(o,r,e.clientId,!1)}),[t,e.clientId,e.innerBlocks])}})();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("You’re already collecting email contacts. Why not make sure you have permission to email them too?","jetpack")),(0,r.createElement)(a.Button,{isSecondary:!0,onClick:e,style:{marginBottom:"1em"}},__("Add email permission request","jetpack")),(0,r.createElement)("br",null))};t.Z=()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]);return(0,r.useMemo)((()=>(e=>{const t=e.some((e=>{let{name:t}=e;return"jetpack/field-email"===t})),n=e.some((e=>{let{name:t}=e;return"jetpack/field-consent"===t}));return!!t&&!n})(e.innerBlocks)),[e.innerBlocks])?(0,r.createElement)(l,null):null}},95363:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=(n(65736),n(92819)),i=n(99230),s=n(56994),l=n(58505);const c="creative-mail-by-constant-contact/creative-mail-plugin.php",u=e=>{let{pluginState:t,setPluginState:n}=e;const[a,o]=(0,r.useState)(),[i,c]=(0,r.useState)(!1),u=((e,t,n)=>(0,r.useCallback)(((r,a)=>{e(void 0),t(!0),r(a).then((()=>{n(l.Q.ACTIVE)})).catch((t=>{e(t)})).finally((()=>t(!1)))}),[t,e,n]))(o,c,n);return a?(0,r.createElement)(s.Z,{error:a}):(0,r.createElement)(l.Z,{pluginState:t,onCreativeMailPluginClick:u,isInstalling:i})},p=e=>{let{isFetchingPlugins:t,hasError:n,pluginState:o,setPluginState:i}=e;return t?(0,r.createElement)(a.Spinner,null):n?null:(0,r.createElement)(u,{pluginState:o,setPluginState:i})};t.Z=()=>{const[e,t]=(0,r.useState)(!0),[n,a]=(0,r.useState)(!1),[s,u]=(0,r.useState)(l.Q.NOT_INSTALLED);return(0,r.useEffect)((()=>{(0,i.uM)().then((e=>{a(!1),(0,o.get)(e,c)&&((0,o.get)(e,[c,"active"])?u(l.Q.ACTIVE):u(l.Q.INSTALLED))})).catch((()=>a(!0))).finally((()=>t(!1)))}),[u,t,a]),(0,r.createElement)(p,{isFetchingPlugins:e,hasError:n,pluginState:s,setPluginState:u})}},56994:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__("The plugin failed to install. <b /> Please check the <a>plugin information</a> for detailed requirements.","jetpack"),{a:(0,r.createElement)(a.ExternalLink,{href:"https://wordpress.org/plugins/creative-mail-by-constant-contact"}),b:(0,r.createElement)("span",null,t)}))}},58505:function(e,t,n){"use strict";n.d(t,{Q:function(){return c}});var r=n(69307),a=n(55609),o=n(65736),i=n(99230),s=n(47583),l=n(92819);const __=o.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=e=>{let{isActivating:t}=e;const n=t?__("Activating…","jetpack"):__("Installing…","jetpack",0);return(0,r.createElement)(a.Button,{isSecondary:!0,icon:(0,r.createElement)(a.Icon,{style:{animation:"rotation 2s infinite linear"},icon:"update"}),disabled:!0,"aria-label":n},n)},p=e=>{let{installAndActivateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",{style:{color:"rgba(38, 46, 57, 0.7)"}},__("To start sending email campaigns, install the Creative Mail plugin for WordPress.","jetpack"),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,null),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Install Creative Mail plugin","jetpack"))))},d=e=>{let{activateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("To start sending email campaigns, activate the Creative Mail plugin for WordPress.","jetpack")),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,{isActivating:!0}),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Activate Creative Mail Plugin","jetpack")))},m=()=>(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("You’re all setup for email marketing with Creative Mail.","jetpack"),(0,r.createElement)("br",null),(0,r.createElement)(a.ExternalLink,{href:`${(0,l.get)((0,s.Z)(),"adminUrl",!1)}admin.php?page=creativemail`},__("Open Creative Mail settings","jetpack"))));t.Z=e=>{let{pluginState:t,onCreativeMailPluginClick:n,isInstalling:a}=e;return(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===t&&(0,r.createElement)(m,null),c.INSTALLED===t&&(0,r.createElement)(d,{activateCreativeMailPlugin:()=>n(i.bu,"creative-mail-by-constant-contact/creative-mail-plugin"),isInstalling:a}),c.NOT_INSTALLED===t&&(0,r.createElement)(p,{installAndActivateCreativeMailPlugin:()=>n(i.yX,"creative-mail-by-constant-contact"),isInstalling:a}))}},31186:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(32605),s=n(95363);const __=o.__;t.Z=()=>(0,r.createElement)(a.PanelBody,{title:__("Newsletter Integration","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,null,(0,r.createElement)(i.Z,null),(0,r.createElement)(s.Z,null)))},29110:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;class i extends r.Component{constructor(){super(...arguments),this.onChangeOption=this.onChangeOption.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onDeleteOption=this.onDeleteOption.bind(this),this.textInput=(0,r.createRef)()}componentDidMount(){this.props.isInFocus&&this.textInput.current.focus()}componentDidUpdate(){this.props.isInFocus&&this.textInput.current.focus()}onChangeOption(e){this.props.onChangeOption(this.props.index,e.target.value)}onKeyPress(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}onDeleteOption(){this.props.onChangeOption(this.props.index)}render(){const{isSelected:e,option:t,type:n}=this.props;return(0,r.createElement)("li",{className:"jetpack-option"},n&&"select"!==n&&(0,r.createElement)("input",{className:"jetpack-option__type",type:n,disabled:!0}),(0,r.createElement)("input",{type:"text",className:"jetpack-option__input",value:t,placeholder:__("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),e&&(0,r.createElement)(o.Button,{className:"jetpack-option__remove",icon:"trash",label:__("Remove option","jetpack"),onClick:this.onDeleteOption}))}}t.Z=i},89998:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(4981),l=n(89534);const __=o.__,c=["submit_button_text","has_form_settings_set","submitButtonText","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor","submitButtonClasses","hasFormSettingsSet"];t.Z=[{attributes:{submit_button_text:{type:"string",default:__("Submit","jetpack")},has_form_settings_set:{type:"string",default:null},submitButtonText:{type:"string",default:__("Submit","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},...l.Z},migrate:(e,t)=>{const n=(0,a.omit)(e,c),r={text:e.submitButtonText||e.submit_button_text||__("Submit","jetpack"),backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,customBackgroundColor:e.customBackgroundButtonColor,customTextColor:e.customTextButtonColor};return[n,t.concat((0,s.createBlock)("jetpack/button",{element:"button",...r}))]},isEligible:e=>!(!e.has_form_settings_set&&!e.hasFormSettingsSet),save:()=>(0,r.createElement)(i.InnerBlocks.Content,null)}]},31970:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(89105),i=n.n(o),s=n(89453),l=n(65736),c=n(94333),u=n(4981),p=n(9818),d=n(39630),m=n(52175),h=n(55609),f=n(22985),g=n(12289),b=n(6361),v=n(31186),k=n(58014);const __=l.__,y=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"];t.Z=(0,c.compose)([(0,p.withSelect)(((e,t)=>{const{getBlockType:n,getBlockVariations:r,getDefaultBlockVariation:o}=e("core/blocks"),{getBlocks:i}=e("core/block-editor"),{getEditedPostAttribute:s}=e("core/editor"),{getSite:l,getUser:c}=e("core"),u=i(t.clientId),p=s("author"),d=p&&c(p)&&c(p).email,m=s("title");return{blockType:n&&n(t.name),defaultVariation:o&&o(t.name,"block"),variations:r&&r(t.name,"block"),innerBlocks:u,hasInnerBlocks:u.length>0,siteTitle:(0,a.get)(l&&l(),["title"]),postTitle:m,postAuthorEmail:d}})),(0,p.withDispatch)((e=>{const{replaceInnerBlocks:t,selectBlock:n}=e("core/block-editor");return{replaceInnerBlocks:t,selectBlock:n}})),c.withInstanceId])((function(e){let{attributes:t,setAttributes:n,siteTitle:o,postTitle:c,postAuthorEmail:p,hasInnerBlocks:E,replaceInnerBlocks:w,selectBlock:_,clientId:C,instanceId:j,className:S,blockType:x,variations:T,defaultVariation:P}=e;const{to:N,subject:A,customThankyou:I,customThankyouHeading:B,customThankyouMessage:M,customThankyouRedirect:R,jetpackCRM:L}=t,[Z,F]=(0,r.useState)(!1),D=i()(S,"jetpack-contact-form"),O=e=>(0,a.map)(e,(e=>{let[t,n,r=[]]=e;return(0,u.createBlock)(t,n,O(r))})),z=e=>{e.attributes&&n(e.attributes),e.innerBlocks&&w(C,O(e.innerBlocks)),_(C)};(0,r.useEffect)((()=>{E||u.registerBlockVariation||z(g.Z[0])})),(0,r.useEffect)((()=>{if(void 0===N&&p&&n({to:p}),void 0===A&&void 0!==o&&void 0!==c){n({subject:"["+o+"] "+c})}}),[N,p,A,o,c,n]);const U=e=>0!==(e=e.trim()).length&&(!s.validate(e)&&{email:e}),$=e=>{if(0===e.target.value.length)return F(!1),void n({to:p});const t=e.target.value.split(",").map(U).filter(Boolean);t&&t.length&&F(t)},V=e=>{F(!1),n({to:e.trim()})},G=()=>{const e=void 0!==N?N:"",t=void 0!==A?A:"";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(h.TextControl,{"aria-describedby":`contact-form-${j}-email-${Z&&Z.length>0?"error":"help"}`,label:__("Email address to send to","jetpack"),placeholder:__("name@example.com","jetpack"),onKeyDown:e=>{"Enter"===event.key&&(e.preventDefault(),e.stopPropagation())},value:e,onBlur:$,onChange:V,help:__("You can enter multiple email addresses separated by commas.","jetpack")}),(0,r.createElement)(f.Z,{isError:!0,id:`contact-form-${j}-email-error`},(()=>{if(Z){if(1===Z.length)return Z[0]&&Z[0].email?(0,l.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),Z[0].email):Z[0];if(2===Z.length)return(0,l.sprintf)(
+/* translators: placeholders are email addresses. */
+__("%1$s and %2$s are not a valid email address.","jetpack"),Z[0].email,Z[1].email);const e=Z.map((e=>e.email));return(0,l.sprintf)(
+/* translators: placeholder is a list of email addresses. */
+__("%s are not a valid email address.","jetpack"),e.join(", "))}return null})()),(0,r.createElement)(h.TextControl,{label:__("Email subject line","jetpack"),value:t,placeholder:__("Enter a subject","jetpack"),onChange:e=>n({subject:e}),help:__("Choose a subject line that you recognize as an email from your website.","jetpack")}),(0,r.createElement)(h.SelectControl,{label:__("On Submission","jetpack"),value:I,options:[{label:__("Show a summary of submitted fields","jetpack"),value:""},{label:__("Show a custom text message","jetpack"),value:"message"},{label:__("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:e=>n({customThankyou:e})}),"redirect"!==I&&(0,r.createElement)(h.TextControl,{label:__("Message Heading","jetpack"),value:B,placeholder:__("Message Sent","jetpack"),onChange:e=>n({customThankyouHeading:e})}),"message"===I&&(0,r.createElement)(h.TextareaControl,{label:__("Message Text","jetpack"),value:M,placeholder:__("Thank you for your submission!","jetpack"),onChange:e=>n({customThankyouMessage:e})}),"redirect"===I&&(0,r.createElement)(h.BaseControl,{label:__("Redirect Address","jetpack"),id:`contact-form-${j}-thankyou-url`},(0,r.createElement)(m.URLInput,{id:`contact-form-${j}-thankyou-url`,value:R,className:"jetpack-contact-form__thankyou-redirect-url",onChange:e=>n({customThankyouRedirect:e})})))};return!E&&u.registerBlockVariation?(0,r.createElement)("div",{className:D},(0,r.createElement)(m.__experimentalBlockVariationPicker,{icon:(0,a.get)(x,["icon","src"]),label:(0,a.get)(x,["title"]),instructions:__("Please select which type of form you'd like to add, or create your own using the skip option.","jetpack"),variations:T,allowSkip:!0,onSelect:function(){z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:P)}})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m.BlockControls,null,(0,r.createElement)(h.ToolbarGroup,null,(0,r.createElement)(h.ToolbarItem,null,(()=>(0,r.createElement)(h.Dropdown,{position:"bottom right",className:"jetpack-contact-form-settings-selector",contentClassName:"jetpack-contact-form__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(h.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("Edit Form Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==d.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,r.createElement)(h.Icon,{icon:"edit"})}))(t,n)},renderContent:()=>G()}))))),(0,r.createElement)(m.InspectorControls,null,(0,r.createElement)(h.PanelBody,{title:__("Form Settings","jetpack")},G()),!(0,k.Wp)()&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(b.Z,{jetpackCRM:L,setAttributes:n}),(0,r.createElement)(v.Z,null))),(0,r.createElement)("div",{className:D},(0,r.createElement)(m.InnerBlocks,{allowedBlocks:y,templateInsertUpdatesSelection:!1})))}))},75494:function(e,t,n){"use strict";n.d(t,{u2:function(){return y},Xd:function(){return w},Nk:function(){return x}});var r=n(69307),a=n(65736),o=n(4981),i=n(55609),s=n(52175),l=n(31970),c=n(89534),u=n(12289),p=n(89998),d=n(54789),m=n(36755),h=n(7640),f=n(69802),g=n(56764),b=n(41632),v=n(57535),k=n(57324);const __=a.__,_x=a._x,y="contact-form",E=(0,b.Z)((0,r.createElement)(i.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),w={title:__("Form","jetpack"),description:__("A simple way to get feedback from folks visiting your site.","jetpack"),icon:{src:E,foreground:(0,v.m)()},keywords:[_x("email","block search term","jetpack"),_x("feedback","block search term","jetpack"),_x("contact form","block search term","jetpack")],supports:{html:!1},attributes:c.Z,edit:l.Z,save:()=>(0,r.createElement)(s.InnerBlocks.Content,null),variations:u.Z,category:"grow",transforms:d.Z,deprecated:p.Z},_={category:"grow",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""},width:{type:"number",default:100}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-text",e)},{type:"block",blocks:["jetpack/field-name"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-name",e)},{type:"block",blocks:["jetpack/field-email"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-email",e)},{type:"block",blocks:["jetpack/field-url"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-url",e)},{type:"block",blocks:["jetpack/field-date"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-date",e)},{type:"block",blocks:["jetpack/field-telephone"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-telephone",e)},{type:"block",blocks:["jetpack/field-textarea"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-textarea",e)},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-checkbox-multiple",e)},{type:"block",blocks:["jetpack/field-radio"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-radio",e)},{type:"block",blocks:["jetpack/field-select"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-select",e)},{type:"block",blocks:["jetpack/field-consent"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-consent",e)}]},save:()=>null,example:{}},C=e=>{let{attributes:t,name:n}=e;return null===t.label?(0,o.getBlockType)(n).title:t.label},j=e=>t=>(0,r.createElement)(m.Z,{type:e,label:C(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id,width:t.attributes.width}),S=e=>t=>(0,r.createElement)(g.Z,{label:C(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id,width:t.attributes.width}),x=[{name:"field-text",settings:{..._,title:__("Text","jetpack"),description:__("When you need just a small amount of text, add a text input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:j("text")}},{name:"field-name",settings:{..._,title:__("Name","jetpack"),description:__("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:j("text")}},{name:"field-email",settings:{..._,title:__("Email","jetpack"),keywords:[__("e-mail","jetpack"),__("mail","jetpack"),"email"],description:__("Want to reply to folks? Add an email address input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:j("email")}},{name:"field-url",settings:{..._,title:__("Website","jetpack"),keywords:["url",__("internet page","jetpack"),"link"],description:__("Add an address input for a website.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:j("url")}},{name:"field-date",settings:{..._,title:__("Date Picker","jetpack"),keywords:[__("Calendar","jetpack"),_x("day month year","block search term","jetpack")],description:__("The best way to set a date. Add a date picker.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:j("text")}},{name:"field-telephone",settings:{..._,title:__("Phone Number","jetpack"),keywords:[__("Phone","jetpack"),__("Cellular phone","jetpack"),__("Mobile","jetpack")],description:__("Add a phone number input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:j("tel")}},{name:"field-textarea",settings:{..._,title:__("Message","jetpack"),keywords:[__("Textarea","jetpack"),"textarea",__("Multiline text","jetpack")],description:__("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:e=>(0,r.createElement)(h.Z,{label:C(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id,width:e.attributes.width})}},{name:"field-checkbox",settings:{..._,title:__("Checkbox","jetpack"),keywords:[__("Confirm","jetpack"),__("Accept","jetpack")],description:__("Add a single checkbox.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:e=>(0,r.createElement)(f.Z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id,width:e.attributes.width}),attributes:{..._.attributes,label:{type:"string",default:""}}}},{name:"field-consent",settings:{..._,title:__("Consent","jetpack"),keywords:[__("Consent","jetpack")],description:__("Ask for consent","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"m81 370h142v40h-142zm0-39h142v-40h-142zm0-79h245v-40h-245zm378 260h-40c0-40.253906-32.746094-73-73-73s-73 32.746094-73 73h-40c0-42.085938 23.128906-78.867188 57.34375-98.3125-11.40625-13.023438-18.34375-30.054688-18.34375-48.6875 0-40.804688 33.195312-74 74-74s74 33.195312 74 74c0 18.632812-6.9375 35.664062-18.34375 48.6875 34.214844 19.445312 57.34375 56.226562 57.34375 98.3125zm-113-113c18.746094 0 34-15.253906 34-34s-15.253906-34-34-34-34 15.253906-34 34 15.253906 34 34 34zm-286 73h138.316406c-3.460937 12.757812-5.316406 26.164062-5.316406 40h-133c-33.085938 0-60-26.914062-60-60v-392c0-33.085938 26.914062-60 60-60h203.757812l142.132813 142.855469v125.210937c-12.042969-7.476562-25.453125-12.765625-39.890625-15.324218v-81.632813h-71.109375c-33.085937 0-60-26.914063-60-60v-71.109375h-174.890625c-11.027344 0-20 8.972656-20 20v392c0 11.027344 8.972656 20 20 20zm234.890625-340.890625h42.972656l-62.972656-63.234375v43.234375c0 11.03125 8.96875 20 20 20zm0 0"}),24,25,"-26 0 512 512"),attributes:{..._.attributes,label:{type:"string",default:__("Consent","jetpack")},consentType:{type:"string",default:"implicit"},implicitConsentMessage:{type:"string",default:__("By submitting your information, you're giving us permission to email you. You may unsubscribe at any time.","jetpack")},explicitConsentMessage:{type:"string",default:__("Can we send you an email from time to time?","jetpack")}},edit:e=>{let{attributes:t,isSelected:n,setAttributes:a}=e;const{id:o,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c}=t;return(0,r.createElement)(k.Z,{id:o,isSelected:n,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c,setAttributes:a})}}},{name:"field-checkbox-multiple",settings:{..._,title:__("Checkbox Group","jetpack"),keywords:[__("Choose Multiple","jetpack"),__("Option","jetpack")],description:__("People love options. Add several checkbox items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:S("checkbox"),attributes:{..._.attributes,label:{type:"string",default:"Choose several"}}}},{name:"field-radio",settings:{..._,title:__("Radio","jetpack"),keywords:[__("Choose","jetpack"),__("Select","jetpack"),__("Option","jetpack")],description:__("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,r.createElement)(i.Circle,{cx:"12",cy:"12",r:"5"}))),edit:S("radio"),attributes:{..._.attributes,label:{type:"string",default:"Choose one"}}}},{name:"field-select",settings:{..._,title:__("Select","jetpack"),keywords:[__("Choose","jetpack"),__("Dropdown","jetpack"),__("Option","jetpack")],description:__("Compact, but powerful. Add a select box with several items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:S("select"),attributes:{..._.attributes,label:{type:"string",default:"Select one"}}}}]},54789:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=(e,t,n)=>{const r=n.match(new RegExp(`\\[${e}[^\\]]* ${t}="([^"]*)"`,"im"));if(r&&r.length)return r[1];const a=n.match(new RegExp(`\\[${e}[^\\]]* ${t}='([^']*)'`,"im"));if(a&&a.length)return a[1];const o=n.match(new RegExp(`\\[${e}[^\\]]* ${t}=([^\\s]*)\\s`,"im"));return!(!o||!o.length)&&o[1]},s={root:{},innerBlocks:[]};t.Z={from:[{type:"raw",priority:1,isMatch:e=>!("P"!==e.nodeName||!(/\[contact-form(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[contact-field(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[\/contact-form]/g.test(e.textContent))),transform:e=>{const t=e.textContent.replace("<br>","");if(t.includes("[contact-form")&&(s.root={},s.innerBlocks=[],s.root=(e=>{const t={to:i("contact-form","to",e),subject:i("contact-form","subject",e),submitButtonText:i("contact-form","submit_button_text",e)};return{blockName:"jetpack/contact-form",attrs:(0,r.pickBy)(t,r.identity)}})(t)),t.includes("[contact-field")){const e=t.match(/(\[contact-field[\s\S]*?\/?])/g);e&&e.length>0&&e.forEach((e=>{s.innerBlocks.push((e=>{const t={label:i("contact-field","label",e),placeholder:i("contact-field","placeholder",e),required:i("contact-field","required",e),options:i("contact-field","options",e)},n=(e=>{const t={text:"jetpack/field-text",url:"jetpack/field-text",textarea:"jetpack/field-textarea",radio:"jetpack/field-radio",checkbox:"jetpack/field-checkbox","checkbox-multiple":"jetpack/field-checkbox-multiple",select:"jetpack/field-select",email:"jetpack/field-email",name:"jetpack/field-name",default:"jetpack/field-text"};return t[e]?t[e]:t.default})(i("contact-field","type",e));return t.options&&(t.options=t.options.split(",")),(0,a.createBlock)(n,(0,r.pickBy)(t,r.identity))})(e))}))}if(t.includes("[/contact-form]")){s.innerBlocks.push((0,a.createBlock)("jetpack/button",{element:"button",text:s.root.attrs.submitButtonText||__("Contact Us","jetpack")}));return(0,a.createBlock)(s.root.blockName,s.root.attrs,s.innerBlocks)}return!1}}]}},12289:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(55609),s=n(58014),l=n(41632),c=n(57535);const __=o.__,u=(0,a.compact)([{name:"contact-form",title:__("Contact Form","jetpack"),description:__("Add a contact form to your page.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M21.99 8c0-.72-.37-1.35-.94-1.7l-8.04-4.71c-.62-.37-1.4-.37-2.02 0L2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-11.05 4.34l-7.2-4.5 7.25-4.25c.62-.37 1.4-.37 2.02 0l7.25 4.25-7.2 4.5c-.65.4-1.47.4-2.12 0z"}),48,48,"-4 -4 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-textarea",{}],["jetpack/button",{text:__("Contact Us","jetpack"),element:"button"}]]},!(0,s.Wp)()&&{name:"newsletter-form",title:__("Newsletter Sign-up","jetpack"),description:__("A simple way to collect information from folks visiting your site.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M37.9999 7.59998C49.3999 7.59998 68.3999 26.6 68.3999 26.6V68.4H7.59985V26.6C7.59985 26.6 26.5999 7.59998 37.9999 7.59998ZM64.5999 63.536L50.4259 52.44L64.5999 41.8L62.9659 40.394L54.3779 45.334L55.2899 28.956L21.9639 26.98L20.2159 44.232L12.6539 40.622L11.3999 41.8L25.5739 52.44L12.5019 63.27L14.0219 64.904L37.9999 49.4L62.8139 65.17L64.5999 63.536Z"}),48,48,"-6 -6 92 92"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-consent",{}],["jetpack/button",{text:__("Subscribe","jetpack"),element:"button"}]]},{name:"rsvp-form",title:__("RSVP Form","jetpack"),description:__("Add an RSVP form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M10 9V7.41c0-.89-1.08-1.34-1.71-.71L3.7 11.29c-.39.39-.39 1.02 0 1.41l4.59 4.59c.63.63 1.71.19 1.71-.7V14.9c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Attending?","jetpack"),required:!0,options:[__("Yes","jetpack"),__("No","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send RSVP","jetpack"),element:"button"}]],attributes:{subject:__("A new RSVP from your website","jetpack")}},{name:"registration-form",title:__("Registration Form","jetpack"),description:__("Add a Registration form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.34 15.02c.39.39 1.02.39 1.41 0l6.36-6.36c.39-.39.39-1.02 0-1.41L14.16 2.3c-.38-.4-1.01-.4-1.4-.01L6.39 8.66c-.39.39-.39 1.02 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95zm6.95 11l-2.12-2.12c-.18-.18-.44-.29-.7-.29h-.27l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2h-.42c-.27 0-.52.11-.71.29l-2.12 2.12c-.37.38-.58.89-.58 1.42V20c0 1.1.9 2 2 2h14c1.1 0 2-.89 2-2v-3.17c0-.53-.21-1.04-.59-1.42z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{label:__("Phone Number","jetpack")}],["jetpack/field-select",{label:__("How did you hear about us?","jetpack"),options:[__("Search Engine","jetpack"),__("Social Media","jetpack"),__("TV","jetpack"),__("Radio","jetpack"),__("Friend or Family","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send","jetpack"),element:"button"}]],attributes:{subject:__("A new registration from your website","jetpack")}},{name:"appointment-form",title:__("Appointment Form","jetpack"),description:__("Add an Appointment booking form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V8c0-.55-.45-1-1-1s-1 .45-1 1v2H2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H6zm9 4c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{required:!0}],["jetpack/field-date",{label:__("Date","jetpack"),required:!0}],["jetpack/field-radio",{label:__("Time","jetpack"),required:!0,options:[__("Morning","jetpack"),__("Afternoon","jetpack")]}],["jetpack/field-textarea",{label:__("Notes","jetpack")}],["jetpack/button",{text:__("Book Appointment","jetpack"),element:"button"}]],attributes:{subject:__("A new appointment booked from your website","jetpack")}},{name:"feedback-form",title:__("Feedback Form","jetpack"),description:__("Add a Feedback form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.03 0 3.8-1.11 4.75-2.75.19-.33-.05-.75-.44-.75H7.69c-.38 0-.63.42-.44.75.95 1.64 2.72 2.75 4.75 2.75z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Please rate our website","jetpack"),required:!0,options:[__("1 - Very Bad","jetpack"),__("2 - Poor","jetpack"),__("3 - Average","jetpack"),__("4 - Good","jetpack"),__("5 - Excellent","jetpack")]}],["jetpack/field-textarea",{label:__("How could we improve?","jetpack")}],["jetpack/button",{text:__("Send Feedback","jetpack"),element:"button"}]],attributes:{subject:__("New feedback received from your website","jetpack")}}]);t.Z=u},4352:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(55609),c=n(29756);const __=i.__;class u extends r.Component{constructor(){super(...arguments),this.preventEnterKey=this.preventEnterKey.bind(this)}preventEnterKey(e){"Enter"!==e.key||e.preventDefault()}render(){const{attributes:{address:e,addressLine2:t,addressLine3:n,city:a,region:i,postal:u,country:p,linkToGoogleMaps:d},isSelected:m,setAttributes:h}=this.props,f=[e,t,n,a,i,u,p].some((e=>""!==e)),g=o()({"jetpack-address-block":!0,"is-selected":m}),b=(0,r.createElement)(l.ToggleControl,{label:__("Link address to Google Maps","jetpack"),checked:d,onChange:e=>h({linkToGoogleMaps:e})});return(0,r.createElement)("div",{className:g},!m&&f&&(0,c.Z)(this.props),(m||!f)&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.PlainText,{value:e,placeholder:__("Street Address","jetpack"),"aria-label":__("Street Address","jetpack"),onChange:e=>h({address:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:t,placeholder:__("Address Line 2","jetpack"),"aria-label":__("Address Line 2","jetpack"),onChange:e=>h({addressLine2:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:n,placeholder:__("Address Line 3","jetpack"),"aria-label":__("Address Line 3","jetpack"),onChange:e=>h({addressLine3:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:a,placeholder:__("City","jetpack"),"aria-label":__("City","jetpack"),onChange:e=>h({city:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:i,placeholder:__("State/Province/Region","jetpack"),"aria-label":__("State/Province/Region","jetpack"),onChange:e=>h({region:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:u,placeholder:__("Postal/Zip Code","jetpack"),"aria-label":__("Postal/Zip Code","jetpack"),onChange:e=>h({postal:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:p,placeholder:__("Country","jetpack"),"aria-label":__("Country","jetpack"),onChange:e=>h({country:e}),onKeyDown:this.preventEnterKey}),b))}}t.Z=u},47559:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(4352),s=n(29756),l=n(41632);const __=a.__,_x=a._x,c="address",u={title:__("Address","jetpack"),description:__("Lets you add a physical address with Schema markup.","jetpack"),keywords:[_x("location","block search term","jetpack"),_x("direction","block search term","jetpack"),_x("place","block search term","jetpack")],icon:(0,l.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),(0,r.createElement)(o.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"grow",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:i.Z,save:s.Z}},29756:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:a,city:o,region:i,postal:s,country:l}}=e;return(0,r.createElement)(r.Fragment,null,t&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},t),n&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},n),a&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},a),o&&!(i||s)&&(0,r.createElement)("div",{className:"jetpack-address__city"},o),o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__city"},o),", ",(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&(0,r.createElement)("div",{className:"jetpack-address__country"},l))},i=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}}=e;let l=o?`+${o},`:"";l=i?`${l}+${i}`:l;return`https://www.google.com/maps/search/${t?`${t},`:""}${n?`${n},`:""}${r?`${r},`:""}${a?`+${a},`:""}${l}${s?`+${s}`:""}`.replace(" ","+")};t.Z=e=>(e=>{let{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}=e;return[t,n,r,a,o,i,s].some((e=>""!==e))})(e.attributes)&&(0,r.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&(0,r.createElement)("a",{href:i(e),target:"_blank",rel:"noopener noreferrer",title:__("Open address in Google Maps","jetpack")},(0,r.createElement)(o,e)),!e.attributes.linkToGoogleMaps&&(0,r.createElement)(o,e))},18680:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(89105),i=n.n(o);const s=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],l=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]];t.Z=e=>{const{isSelected:t}=e;return(0,r.createElement)("div",{className:i()({"jetpack-contact-info-block":!0,"is-selected":t})},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:s,templateLock:!1,template:l}))}},63015:function(e,t,n){"use strict";var r=n(59861),a=n(55637),o=n(65736);const __=o.__;t.Z=e=>{const{setAttributes:t}=e;return(0,a.Z)("email",e,__("Email","jetpack"),r.Z,(e=>t({email:e})))}},52413:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(63015),s=n(41632),l=n(59861);const __=a.__,_x=a._x,c="email",u={title:__("Email Address","jetpack"),description:__("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",_x("message","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"grow",attributes:{email:{type:"string",default:""}},edit:i.Z,save:l.Z,parent:["jetpack/contact-info"]}},59861:function(e,t,n){"use strict";var r=n(69307),a=n(89453);t.Z=e=>{let{attributes:{email:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},t.split(/(\s+)/).map(((e,t)=>{const n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&a.validate(n)?e===n?(0,r.createElement)("a",{href:`mailto:${e}`,key:t},e):(0,r.createElement)(r.Fragment,{key:t},(0,r.createElement)("a",{href:`mailto:${e}`,key:t},n),(0,r.createElement)(r.Fragment,null,e.slice(-(e.length-n.length)))):(0,r.createElement)(r.Fragment,{key:t},e)})))}},20195:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return g},Nk:function(){return b}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(4981),l=n(18680),c=n(41632),u=n(47559),p=n(52413),d=n(51592),m=n(57535);const __=a.__,_x=a._x,h="contact-info",f=(0,c.Z)((0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),g={title:__("Contact Info","jetpack"),description:__("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[_x("email","block search term","jetpack"),_x("phone","block search term","jetpack"),_x("address","block search term","jetpack")],icon:{src:f,foreground:(0,m.m)()},category:"grow",supports:{align:["wide","full"],html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"widget_contact_info"===t},transform:e=>{let{instance:t}=e,n=[(0,s.createBlock)("core/heading",{content:t.raw.title}),(0,s.createBlock)("jetpack/email",{email:t.raw.email}),(0,s.createBlock)("jetpack/phone",{phone:t.raw.phone}),(0,s.createBlock)("jetpack/address",{address:t.raw.address})];return t.raw.hours&&(n=[...n,(0,s.createBlock)("core/paragraph",{content:t.raw.hours})]),t.raw.showmap&&t.raw.address&&(n=[...n,(0,s.createBlock)("jetpack/map",{address:t.raw.address})]),(0,s.createBlock)("jetpack/contact-info",{},n)}}]},attributes:{},edit:l.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},b=[{name:u.u,settings:u.X},{name:p.u,settings:p.X},{name:d.u,settings:d.X}]},51633:function(e,t,n){"use strict";var r=n(65736),a=n(18690),o=n(55637);const __=r.__;t.Z=e=>{const{setAttributes:t}=e;return(0,o.Z)("phone",e,__("Phone number","jetpack"),a.Z,(e=>t({phone:e})))}},51592:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(51633),s=n(41632),l=n(18690);const __=a.__,_x=a._x,c="phone",u={title:__("Phone Number","jetpack"),description:__("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[_x("mobile","block search term","jetpack"),_x("telephone","block search term","jetpack"),_x("cell","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"grow",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:i.Z,save:l.Z}},18690:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{let{attributes:{phone:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},function(e){const t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;const n=e.indexOf(t[0]);let a=n?e.substring(n-1):e,o=n?e.substring(0,n):"",i=a.replace(/\D/g,"");return/[0-9/+/(]/.test(a[0])?(o=o.slice(0,-1),"+"===a[0]&&(i="+"+i)):a=a.substring(1),[o.trim()?(0,r.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},o):null,(0,r.createElement)("a",{key:"phoneNumber",href:`tel:${i}`},a)]}(t))}},2534:function(e,t){"use strict";t.Z={participants:{type:"array"},showTimestamps:{type:"boolean",default:!1},skipUpload:{type:"boolean",default:!1}}},74113:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.createContext)()},78e3:function(e,t,n){"use strict";n.d(t,{C:function(){return l}});var r=n(69307),a=n(55609),o=n(65736),i=n(90566);const __=o.__,_x=o._x;function s(e){let{className:t,participants:n,onDelete:o}=e;return(0,r.createElement)("div",{className:`${t}__participant-control`},n.map((e=>{let{label:n,slug:s}=e;return(0,r.createElement)("div",{key:`${s}-key`,className:`${t}__participant`},(0,r.createElement)("div",{className:`${t}__participant-label`},(0,i.iT)(n)),(0,r.createElement)(a.Button,{className:`${t}__remove-participant`,label:__("Remove participant","jetpack"),onClick:()=>o(s),isTertiary:!0,isSmall:!0},_x("Remove","verb: remove item from a list","jetpack")))})))}function l(e){let{participants:t,className:n,onChange:a,onDelete:o}=e;return(0,r.createElement)(s,{className:n,participants:t,onChange:a,onDelete:o})}},63414:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(9818),l=n(78e3),c=n(74113),u=n(51591),p=n(41362),d=n(90566);const __=a.__,m=[["jetpack/dialogue"]];t.Z=(0,i.withNotices)((function(e){let{className:t,attributes:n,setAttributes:a,noticeUI:h,clientId:f,noticeOperations:g}=e;const{participants:b=[],showTimestamps:v,skipUpload:k}=n,[y,E]=(0,r.useState)(""),{insertBlocks:w}=(0,s.useDispatch)("core/block-editor"),_=(0,r.useCallback)((e=>{a({participants:b.map((t=>t.slug!==e.slug?t:{...t,...e}))})}),[a,b]),C=(0,r.useCallback)((function(e){let{label:t,slug:n}=e;if(!t)return;const r=t.trim();if(!r?.length)return;const o=(0,d.tQ)(b,r);if(o)return o;const i={slug:n||"speaker-"+ +new Date,label:r};return a({participants:[...b,i]}),i}),[b,a]),j=(0,r.useCallback)(a,[a]),S=(0,r.useMemo)((()=>({setAttributes:j,updateParticipants:_,addNewParticipant:C,attributes:{showTimestamps:v}})),[C,j,v,_]);function x(e){g.removeAllNotices(),g.createErrorNotice(e),E(!1)}const T="wp-block-jetpack-conversation";return b?.length||k?(0,r.createElement)(c.Z.Provider,{value:S},(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.Panel,null,(0,r.createElement)(i.PanelBody,{title:__("Speakers","jetpack"),className:`${T}__participants`},(0,r.createElement)(l.C,{className:T,participants:b,onDelete:function(e){a({participants:b.filter((t=>{let{slug:n}=t;return n!==e}))})}})))),(0,r.createElement)(o.InnerBlocks,{template:m}))):(0,r.createElement)(i.Placeholder,{label:__("Conversation","jetpack"),instructions:(0,r.createElement)(r.Fragment,null,__("Upload a transcript file or create a conversation with blank content.","jetpack"),(0,r.createElement)("div",null,(0,r.createElement)("em",null,__("Accepted file formats:","jetpack"),(0,r.createElement)("strong",null," ",d.bZ),"."))),icon:(0,r.createElement)(o.BlockIcon,{icon:u.Xu}),notices:h},(0,r.createElement)("div",{className:`${T}__placeholder`},(0,r.createElement)(i.FormFileUpload,{multiple:!1,isLarge:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:function(e){const t=e.target.files?.[0];if(!t)return x(__("Transcript file not found.","jetpack"));if(t?.size&&t.size<=0||!t?.size||t.size>d.$n)return x(__("Invalid transcript file size.","jetpack"));if(t?.type?.length&&"text/plain"!==t.type)return x(__("Invalid transcript file type.","jetpack"));const n=(0,d.Y7)(t?.name);if(!(0,d.P8)(n))return x(__("Invalid transcript file extension.","jetpack"));E(!0),(0,d.Bt)(t,(function(e,t){let{conversation:n,dialogues:r}=e;if(t)return x(t);a({participants:n.speakers,skipUpload:!n?.length});const o=r.map((e=>e.slug||e.timestamp?["jetpack/dialogue",e]:["core/paragraph",e])),i=(0,p.Z)(o);w(i,0,f),E(!1)}))},accept:d.bZ,isPrimary:!0,title:`${__("Accepted file formats:","jetpack")} ${d.bZ}`,disabled:y},__("Upload transcript","jetpack")),(0,r.createElement)(i.Button,{isTertiary:!0,disabled:y,onClick:()=>a({skipUpload:!0})},__("Skip upload","jetpack"))))}))},34376:function(e,t,n){"use strict";var r=n(65736);const __=r.__,a=[{slug:"participant-0",label:"Rosalind"},{slug:"participant-1",label:"Orlando"}],o=[{name:"core/heading",attributes:{content:__("Shakespeare text","jetpack"),level:4}},{name:"jetpack/dialogue",attributes:{...a[0],content:__("O, my dear Orlando, how it grieves me to see thee wear thy heart in a scarf!","jetpack"),timestamp:"00:10"}},{name:"jetpack/dialogue",attributes:{...a[1],content:__("It is my arm.","jetpack"),timestamp:"00:15"}},{name:"jetpack/dialogue",attributes:{...a[0],content:__("I thought thy heart had been wounded with the claws of a lion.","jetpack"),timestamp:"00:32"}},{name:"jetpack/dialogue",attributes:{...a[1],content:__("Wounded it is, but with the eyes of a lady.","jetpack"),timestamp:"00:37"}}];t.Z={attributes:{participants:a,showTimestamps:!0,className:"is-style-row"},innerBlocks:o}},36384:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(4981),o=n(51591),i=n(41362),s=n(2534),l=n(63414),c=n(22766),u=n(34376);const __=r.__,_x=r._x,p="conversation",d={title:__("Conversation","jetpack"),description:__("Create a transcription of a speech or conversation, with any number of participants, using dialogue blocks.","jetpack"),icon:o.Xu,category:"layout",keywords:[_x("conversation","block search term","jetpack"),_x("transcription","block search term","jetpack"),_x("dialogue","block search term","jetpack"),_x("speaker","block search term","jetpack")],supports:{align:!0},attributes:s.Z,example:u.Z,styles:[{name:"row",label:__("Row","jetpack"),isDefault:!0},{name:"column",label:__("Column","jetpack")}],edit:l.Z,save:c.Z,providesContext:{"jetpack/conversation-participants":"participants","jetpack/conversation-showTimestamps":"showTimestamps"},transforms:{from:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>{const t=e.map((e=>{let{content:t}=e;return["jetpack/dialogue",{content:t}]}));return(0,a.createBlock)("jetpack/conversation",{},(0,i.Z)(t))}}]}}},22766:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175);function s(e){let{attributes:t}=e;return(0,r.createElement)("div",{className:o()("wp-block-jetpack-conversation",{"show-timestamps":t?.showTimestamp})},(0,r.createElement)(i.InnerBlocks.Content,null))}},90566:function(e,t,n){"use strict";n.d(t,{ly:function(){return i},tQ:function(){return s},iT:function(){return l},Y7:function(){return c},bZ:function(){return m},$n:function(){return h},P8:function(){return k},Bt:function(){return y}});var r=n(72629),a=n(81975),o=n(65736);const __=o.__;function i(e,t){const n=e.filter((e=>{let{slug:n}=e;return n===t}));return n?.length?n[0]:null}function s(e,t){const n=e.filter((e=>{let{label:n}=e;return n?.toLowerCase()===t?.toLowerCase()}));return n?.length?n[0]:null}function l(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=(0,r.getTextContent)((0,r.create)({html:e}))?.trim();return t?(0,a.escapeHTML)(n):n}function c(e){return`.${e.substr(e.lastIndexOf(".")+1)}`}const u=".srt",p=".txt",d=[u,p,".vtt",".sbv"],m=d.join(", "),h=1e5,f=/(.*[^\s])\s{1,}(\d{1,2}(?::\d{1,2}?)+)\s+\n([\s\S]*?(?=\n{2}|$))/,g=/(?:(.*[^\s]):\s+)?(?:\[(\d+(?::\d+)*?(?:\.\d*)?)])?(?:[\s])*?([^\s].+?(?:\n+|$))/,b=[{name:"otter",re:new RegExp(f,"gm"),testRE:new RegExp(f,"g")},{name:"sonix",re:new RegExp(g,"gm"),testRE:new RegExp(g,"g")}],v=/(\d+)\n([\d:,]+)\s+-{2}>\s+([\d:,]+)\n([\s\S]*?(?=\n{2}|$))/gm;function k(e){return d.indexOf(e)>=0}function y(e,t){const n=c(e?.name),r=new FileReader;r.addEventListener("load",(e=>{const r=e.target.result?e.target.result.replace(/\r\n|\r|\n/g,"\n"):null;if(!r?.length)return t({},__("Transcript content is empty","jetpack"));let a={};if(n&&n!==p&&n===u&&(a=function(e){const t={conversation:{speakers:[]},dialogues:[]};let n;for(;null!==(n=v.exec(e));)t.dialogues.push({timestamp:n[2],content:n[4]});return t}(r)),n===p&&(a=function(e){const t={dialogues:[],conversation:{speakers:[]}},n=b.filter((t=>{let{testRE:n}=t;return n.test(e)}));if(!n?.length)return t;const r=n[0];let a;for(;null!=(a=r.re.exec(e));){const e=a[r?.indexes?.speaker||1]||"";e?.length&&t.conversation.speakers.indexOf(e)<0&&t.conversation.speakers.push(e);const n={content:a[r?.indexes?.content||3],timestamp:a[r?.indexes?.timestamp||2],showTimestamp:!0};e?.length&&(n.label=e,n.slug=`speaker-${t.conversation.speakers.indexOf(e)}`),t.dialogues.push(n)}return t.conversation.speakers=t.conversation.speakers.map(((e,t)=>({label:e,slug:`speaker-${t}`}))),t}(r)),!a.dialogues?.length)return t({},__("Transcript format not supported","jetpack"));t(a)})),r.readAsText(e)}},60522:function(e,t){"use strict";t.Z={label:{type:"string",source:"html",selector:".wp-block-jetpack-dialogue__participant"},slug:{type:"string"},timestamp:{type:"string",default:"00:00"},showTimestamp:{type:"boolean",default:!1},placeholder:{type:"string"},content:{type:"string",source:"html",selector:".wp-block-jetpack-dialogue__content"}}},23180:function(e,t,n){"use strict";n.d(t,{Ev:function(){return m},v$:function(){return g}});n(29183);var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736),l=n(52175),c=n(90566);const __=s.__,u="is-participant-adding",p="is-participant-selecting",d="was-participant-selected";function m(e){let{participants:t,slug:n,onSelect:a}=e;return(0,r.createElement)(i.SelectControl,{label:__("Speaker name","jetpack"),value:n,options:t.map((e=>{let{slug:t,label:n}=e;return{label:(0,c.iT)(n),value:t}})),onChange:e=>a((0,c.ly)(t,e))})}const h=(0,i.withFocusOutside)(class extends r.Component{handleFocusOutside(e){this.props.onFocusOutside(e)}render(){return(0,r.createElement)("div",{className:this.props.className},this.props.children)}});function f(e){return{name:"jetpack/conversation-participants",triggerPrefix:"",options:e,getOptionLabel:e=>{let{label:t}=e;return(0,r.createElement)("span",null,(0,c.iT)(t))},getOptionKeywords:e=>{let{label:t}=e;return[t]},getOptionCompletion:e=>({action:"replace",value:e}),popoverProps:{position:"bottom"}}}function g(e){let{className:t,label:n,participant:a,participants:i,transcriptRef:s,onParticipantChange:m,onUpdate:g=(()=>{}),onSelect:b,onAdd:v,onClean:k}=e;const[y,E]=(0,r.useState)("is-participant-ready");function w(){if(!n)return;const e=(0,c.tQ)(i,n);return a&&a.label!==n?e&&e.slug!==a.slug?(E(d),b(e)):(E("was-participant-edited"),g({...a,label:(0,c.iT)(n,!0)})):e?(E(d),b(e)):(v((0,c.iT)(n,!0)),E("was-participant-added"))}const _=(0,r.useMemo)((()=>y?y!==u&&y!==p?[]:[f(i)]:[]),[i,y]);return(0,r.createElement)(h,{className:o()(t,{"has-bold-style":n?.length,[y]:y}),onFocusOutside:w},(0,r.createElement)(l.RichText,{tagName:"div",value:n,allowedFormats:[],withoutInteractiveFormatting:!0,onChange:function(e){if(!e?.length)return E(u),k();m(e);const t=(0,c.tQ)(i,e);a?a.label===e?E(p):E("is-participant-editing"):E(t?p:u)},placeholder:__("Speaker","jetpack"),keepPlaceholderOnFocus:!0,onSplit:()=>{},onReplace:e=>{setTimeout((()=>s?.current?.focus()),10);const t=e?.[0];if(t){const{label:e}=t;return m(e),E(d),b(t)}return w()},autocompleters:_}))}},94371:function(e,t,n){"use strict";n.d(t,{dG:function(){return d},S6:function(){return f}});var r=n(69307),a=n(92819),o=n(55609),i=n(65736),s=n(38205),l=n(98017);const __=i.__,_x=i._x;const c=["hour","min","sec"];function u(e,t){const n=Object.keys(e)?.[0];if(!n)return t.join(":");let r=String((a=e[n],o="hour"===n?23:59,Math.max(0,Math.min(a,o))));var a,o;return 1===r?.length?r=`0${r}`:0===r?.length&&(r="00"),t[c.indexOf(n)]=r,3===t.length&&"00"===t[0]&&t.shift(),t.join(":")}const p=(0,a.debounce)((function(e,t){t((0,l.H)(e))}),250);function d(e){let{value:t,className:n,onChange:a,shortLabel:i=!1,isDisabled:c=!1,duration:d}=e;const[m,h]=(0,r.useState)((0,l.i)(t)),f=t.split(":");return f.length<=2&&f.unshift("00"),(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${n}__timestamp-controls`},(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__hour`,label:i?_x("Hour","hour (short form)","jetpack"):_x("Hour","hour (long form)","jetpack",0),value:f[0],min:0,max:23,onChange:e=>!c&&a(u({hour:e},f)),disabled:c}),(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__minute`,label:i?_x("Min","Short for Minute","jetpack"):__("Minute","jetpack"),value:f[1],min:0,max:59,onChange:e=>!c&&a(u({min:e},f)),disabled:c}),(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__second`,label:i?_x("Sec","Short for Second","jetpack"):__("Second","jetpack"),value:f[2],min:0,max:59,onChange:e=>!c&&a(u({sec:e},f)),disabled:c})),(0,r.createElement)(o.RangeControl,{disabled:void 0===d,value:m,className:`${n}__timestamp-range-control`,min:0,max:d,onChange:e=>{h(e),p(e,a)},withInputField:!1,renderTooltipContent:e=>(0,l.H)(e)}))}function m(e){let{className:t,onPlayback:n,value:a}=e;return(0,r.createElement)(o.Button,{className:t,isTertiary:!0,onClick:()=>n((0,l.i)(a))},a)}function h(e){let{className:t,currentTime:n,isTimestampButtonVisible:a,children:i,onChange:s,onToggle:c}=e;return(0,r.createElement)(o.Button,{className:t,isSmall:!0,isTertiary:!0,onClick:()=>{c(!a),a||s((0,l.H)(n),s)}},i)}function f(e){let{className:t,isSelected:n,show:a,value:o,mediaCurrentTime:i=0,onChange:s,onToggle:l,onPlayback:c}=e;return n?a?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m,{className:`${t}__timestamp-label`,value:o,onPlayback:c}),(0,r.createElement)(h,{className:`${t}__timestamp-button`,currentTime:i,onChange:s,onToggle:l,isTimestampButtonVisible:a},__("Remove","jetpack"))):(0,r.createElement)(h,{className:`${t}__timestamp-button`,currentTime:i,onChange:s,onToggle:l,isTimestampButtonVisible:a},__("Add timestamp","jetpack")):a?(0,r.createElement)(m,{className:`${t}__timestamp-label`,value:o,onPlayback:c}):null}},27257:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(4981),c=n(9818),u=n(55609),p=n(23180),d=n(94371),m=n(38882),h=n(74113),f=n(15111),g=n(37837),b=n(98017),v=n(90566);const __=i.__,k="core/paragraph";function y(e){let{className:t,attributes:n,setAttributes:a,context:i,onReplace:y,mergeBlocks:E,isSelected:w}=e;const{content:_,label:C,slug:j,placeholder:S,showTimestamp:x,timestamp:T}=n,{mediaSource:P,mediaCurrentTime:N,mediaDuration:A,mediaDomReference:I,isMultipleSelection:B}=(0,c.useSelect)((e=>{const{getDefaultMediaSource:t,getMediaSourceCurrentTime:n,getMediaSourceDuration:r,getMediaSourceDomReference:a}=e(f.tT);return{mediaSource:t(),mediaCurrentTime:n(),mediaDuration:r(),mediaDomReference:a(),isMultipleSelection:e("core/block-editor").getMultiSelectedBlocks().length>0}}),[]),{playMediaSource:M,setMediaSourceCurrentTime:R}=(0,c.useDispatch)(f.tT),L=(0,r.useRef)(),Z=i["jetpack/conversation-participants"],F=Z?.length?Z:[],D=(0,v.ly)(F,j),O=(0,r.useContext)(h.Z);function z(e){a({timestamp:e})}return(0,r.useEffect)((()=>{B||w||D&&D.slug===j&&D.label!==C&&a({label:D.label})}),[D,C,j,B,w,a]),(0,r.createElement)("div",{className:t},(0,r.createElement)(s.BlockControls,null,P&&(0,r.createElement)(g.m,{onTimestampClick:e=>{a({showTimestamp:!0}),z((0,b.H)(e))}})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Panel,null,(0,r.createElement)(u.PanelBody,{title:__("Speaker","jetpack")},(0,r.createElement)(p.Ev,{className:m.P,participants:F,slug:j||"",onSelect:a})),!!P?.title&&(0,r.createElement)(u.PanelBody,{title:__("Podcast episode","jetpack")},(0,r.createElement)("p",null,P.title)),P&&x&&(0,r.createElement)(u.PanelBody,{title:__("Timestamp","jetpack")},(0,r.createElement)(d.dG,{className:m.P,value:T,onChange:z,mediaSource:P,duration:A})))),(0,r.createElement)("div",{className:o()(`${m.P}__meta`,{"has-not-media-source":!P})},(0,r.createElement)(p.v$,{className:`${m.P}__participant`,label:C,participant:D,participants:F,transcriptRef:L,onParticipantChange:e=>{a({label:e})},onSelect:e=>{B||a(e)},onClean:()=>{a({slug:null,label:""})},onAdd:e=>{const t=O.addNewParticipant({label:e,slug:j});a(t)},onUpdate:e=>{O.updateParticipants(e)}}),P&&(0,r.createElement)(d.S6,{className:m.P,show:x,isSelected:w,value:T,mediaCurrentTime:N,onChange:z,onToggle:e=>a({showTimestamp:e}),onPlayback:function(e){I&&(I.currentTime=e),R(e),M()}})),(0,r.createElement)(s.RichText,{ref:L,identifier:"content",tagName:"p",className:`${m.P}__content`,value:_,onChange:e=>a({content:e}),onMerge:E,onSplit:e=>{if(!_?.length)return(0,l.createBlock)(k);const t=e?.length?n:{};return(0,l.createBlock)("jetpack/dialogue",{...t,content:e})},onReplace:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return O?e[0]?.name!==k||e[1]?.name!==k||e[0]?.attributes.content||e[1]?.attributes.content?void y(e,...n):((0,c.dispatch)("core/block-editor").selectBlock(e[0].clientId),y([e[0]],...n)):y(e,...n)},onRemove:y?()=>y([]):void 0,placeholder:S||__("Write dialogue…","jetpack"),keepPlaceholderOnFocus:!0}))}},98956:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return m}});var r=n(65736),a=n(4981),o=n(60522),i=n(27257),s=n(57937),l=n(51591),c=n(90059),u=n(36384);const __=r.__,_x=r._x,p=c.p,d="dialogue",m={title:__("Dialogue","jetpack"),description:__("Create a dialogue paragraph, setting the participant with an optional timestamp.","jetpack"),parent:[`jetpack/${u.u2}`],icon:l.VV,category:"layout",edit:i.Z,save:s.Z,attributes:o.Z,usesContext:["jetpack/conversation-participants","jetpack/conversation-showTimestamps"],keywords:[_x("dialogue","block search term","jetpack"),_x("participant","block search term","jetpack"),_x("transcription","block search term","jetpack"),_x("speaker","block search term","jetpack")],transforms:{to:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>e.map((e=>{let{content:t,label:n}=e;return(0,a.createBlock)("core/paragraph",{content:(n?.length?`<strong>${n}</strong>: `:"")+t})}))}],from:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>e.map((e=>{let{content:t}=e;return(0,a.createBlock)("jetpack/dialogue",{participant:p[0],content:t})}))}]}}},57937:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(52175),o=n(38882),i=n(98017);function s(e){let{attributes:t}=e;const{content:n,label:s,showTimestamp:l,timestamp:c}=t;return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:`${o.P}__meta`},(0,r.createElement)(a.RichText.Content,{className:`${o.P}__participant has-bold-style`,tagName:"div",value:s}),l&&(0,r.createElement)("div",{className:`${o.P}__timestamp-label`},(0,r.createElement)("a",{className:`${o.P}__timestamp_link`,href:`#${(0,i.i)(c)}`},c))),(0,r.createElement)(a.RichText.Content,{className:`${o.P}__content`,tagName:"p",value:n}))}},38882:function(e,t,n){"use strict";n.d(t,{P:function(){return r}});const r="wp-block-jetpack-dialogue"},48387:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(89105),s=n.n(i),l=n(52175),c=n(17882);t.Z=e=>{let{className:t=null,currency:n=null,defaultValue:i=null,disabled:u=!1,label:p="",onChange:d=null,value:m=""}=e;const[h,f]=(0,r.useState)((0,a.ZP)(m,n,{symbol:""})),[g,b]=(0,r.useState)(!1),[v,k]=(0,r.useState)(!1),y=(0,r.useRef)(null),E=(0,r.useCallback)((e=>{if(f(e),!d)return;const t=(0,c.Vm)(e,n);t&&t>=(0,c.hj)(n)?(d(t),k(!1)):e&&k(!0)}),[n,d]),w=()=>{y.current&&(y.current.focus(),b(!0))};return(0,r.useEffect)((()=>{y.current&&y.current.addEventListener("blur",(()=>b(!1)))}),[y]),(0,r.useEffect)((()=>{g||h||E((0,a.ZP)(i,n,{symbol:""}))}),[n,i,h,g,E]),(0,r.useEffect)((()=>{g||v||f((0,a.ZP)(m,n,{symbol:""}))}),[n,g,v,E,m]),(0,r.createElement)("div",{className:s()("donations__amount",t,{"has-focus":g,"has-error":v}),role:"button",tabIndex:0,onClick:w,onKeyDown:w},o.M[n].symbol,u?(0,r.createElement)("div",{className:"donations__amount-value"},(0,a.ZP)(m||i,n,{symbol:""})):(0,r.createElement)(l.RichText,{allowedFormats:[],"aria-label":p,keepPlaceholderOnFocus:!0,multiline:!1,onChange:e=>E(e),placeholder:(0,a.ZP)(i,n,{symbol:""}),ref:y,value:h,withoutInteractiveFormatting:!0}))}},46928:function(e,t,n){"use strict";var r=n(69307),a=n(75139),o=n(52175),i=n(55609),s=n(65736),l=n(39630),c=n(17882),u=n(4235);const __=s.__;t.Z=e=>{const{attributes:t,setAttributes:n}=e,{currency:s,monthlyDonation:p,annualDonation:d,showCustomAmount:m}=t,h=(e,r)=>{const a={"1 month":"monthlyDonation","1 year":"annualDonation"}[e],o=t[a];n({[a]:{...o,show:r}})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(i.Dropdown,{contentClassName:"jetpack-donations__currency-popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(i.Button,{className:"jetpack-donations__currency-toggle",icon:(0,r.createElement)(r.Fragment,null,a.M[s].symbol+" - "+s,(0,r.createElement)(i.Dashicon,{icon:"arrow-down"})),label:__("Change currency","jetpack"),onClick:t,onKeyDown:e=>{n||e.keyCode!==l.DOWN||(e.preventDefault(),e.stopPropagation(),t())}})},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(i.MenuGroup,null,Object.keys(c.ck).map((e=>(0,r.createElement)(i.MenuItem,{isSelected:e===s,onClick:()=>{n({currency:e}),t()},key:`jetpack-donations-currency-${e}`},a.M[e].symbol+" - "+e))))}}))))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{checked:p.show,onChange:e=>h("1 month",e),label:__("Show monthly donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:d.show,onChange:e=>h("1 year",e),label:__("Show annual donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:m,onChange:e=>n({showCustomAmount:e}),label:__("Show custom amount option","jetpack")}),(0,r.createElement)(i.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,u.Z)()}`},__("View donation earnings","jetpack")))))}},92202:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(52175),s=n(65736),l=n(17882);const __=s.__;t.Z={attributes:{currency:{type:"string",default:"USD"},oneTimeDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a one-time donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate","jetpack")}},monthlyDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a monthly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate monthly","jetpack")}},annualDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a yearly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate yearly","jetpack")}},showCustomAmount:{type:"boolean",default:!0},chooseAmountText:{type:"string",default:__("Choose an amount","jetpack")},customAmountText:{type:"string",default:__("Or enter a custom amount","jetpack")}},supports:{html:!1},save:e=>{let{attributes:t}=e;const{currency:n,oneTimeDonation:s,monthlyDonation:c,annualDonation:u,showCustomAmount:p,chooseAmountText:d,customAmountText:m}=t;if(!s||!s.show||-1===s.planId)return null;const h={"one-time":{title:__("One-Time","jetpack")},...c.show&&{"1 month":{title:__("Monthly","jetpack")}},...u.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"donations__container"},Object.keys(h).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(h).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:"donations__nav-item",key:`jetpack-donations-nav-item-${t} `,"data-interval":t},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__one-time-item",value:s.heading}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__monthly-item",value:c.heading}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__annual-item",value:u.heading}),(0,r.createElement)(i.RichText.Content,{tagName:"p",value:d}),(0,r.createElement)("div",{className:"donations__amounts donations__one-time-item"},s.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),c.show&&(0,r.createElement)("div",{className:"donations__amounts donations__monthly-item"},c.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),u.show&&(0,r.createElement)("div",{className:"donations__amounts donations__annual-item"},u.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),p&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.RichText.Content,{tagName:"p",value:m}),(0,r.createElement)("div",{className:"donations__amount donations__custom-amount"},o.M[n].symbol,(0,r.createElement)("div",{className:"donations__amount-value","data-currency":n,"data-empty-text":(0,a.ZP)(100*(0,l.hj)(n),n,{symbol:""})}))),(0,r.createElement)("div",{className:"donations__separator"},"——"),(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__one-time-item",value:s.extraText}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__monthly-item",value:c.extraText}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__annual-item",value:u.extraText}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__one-time-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__one-time-item",value:s.buttonText})),c.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__monthly-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__monthly-item",value:c.buttonText})),u.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__annual-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__annual-item",value:u.buttonText}))))))}}},53104:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(9818),s=n(65736),l=n(53823),c=n(82116),u=n(83040),p=n(10756);const __=s.__;t.Z=e=>{const{attributes:t,className:n,setAttributes:r}=e,{currency:s}=t,[d,m]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[g,b]=(0,o.useState)(!1),[v,k]=(0,o.useState)([]),y=(0,i.useSelect)((e=>e("core/editor").getCurrentPost()),[]);(0,o.useEffect)((()=>{r({fallbackLinkUrl:y.link})}),[y.link,r]);const E=e=>{m(e)},w=e=>e.reduce(((e,t)=>{let{id:n,currency:r,type:a,interval:o}=t;return r===s&&"donation"===a&&(e[o]=n),e}),{}),_=e=>{if(!e&&"object"!=typeof e||e.errors)return void m(__("Could not load data from WordPress.com.","jetpack"));f(e.should_upgrade_to_access_memberships),b(e.connect_url);const t=w(e.products);(e=>{const t=Object.keys(e);return t.includes("one-time")&&t.includes("1 month")&&t.includes("1 year")})(t)?k(t):e.should_upgrade_to_access_memberships||e.connect_url?k({"one-time":-1,"1 month":-1,"1 year":-1}):(0,u.Z)(s).then((e=>k(w(e))),E)};return(0,o.useEffect)((()=>{(0,p.Z)("donation").then(_,E)}),[s]),d?(0,o.createElement)(c.Z,{className:n,error:d}):(0,o.createElement)(l.Z,a()({},e,{products:v,shouldUpgrade:h,stripeConnectUrl:g}))}},83040:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z=async e=>{try{return await a()({path:"/wpcom/v2/memberships/products",method:"POST",data:{type:"donation",currency:e}})}catch(e){return Promise.reject(e.message)}}},10756:function(e,t,n){"use strict";var r=n(82827),a=n(86989),o=n.n(a),i=n(96483);t.Z=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const{query:t}=(0,r.Qc)(window.location.href,!0),n=(0,i.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t.origin?"gutenberg-wpcom":"gutenberg",...e&&{type:e}});try{return await o()({path:n,method:"GET"})}catch(e){return Promise.reject(e.message)}}},63445:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return c}});var r=n(65736),a=n(53104),o=n(56734),i=n(92202),s=n(51591);const __=r.__,l="donations",c={title:__("Donations","jetpack"),description:__("Collect one-time, monthly, or annually recurring donations.","jetpack"),icon:s.K9,category:"earn",keywords:[__("Donations","jetpack")],supports:{html:!1},edit:a.Z,save:o.Z,example:{},deprecated:[i.Z]}},82116:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=e=>{let{className:t,error:n}=e;return(0,r.createElement)(o.Placeholder,{icon:"lock",label:__("Donations","jetpack"),instructions:n,className:t})}},56734:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t}=e;const{fallbackLinkUrl:n,oneTimeDonation:o,monthlyDonation:i,annualDonation:s}=t;return o&&o.show&&o.planId&&-1!==o.planId?(0,r.createElement)("div",null,(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:o.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:o.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:o.buttonText}),i.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:i.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:i.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:i.buttonText})),s.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:s.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:s.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:s.buttonText}))):null}},75242:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(9818),i=n(65736),s=n(48387),l=n(17882);const __=i.__;t.Z=e=>{let{activeTab:t,attributes:n,setAttributes:c}=e;const{currency:u,oneTimeDonation:p,monthlyDonation:d,annualDonation:m,showCustomAmount:h,chooseAmountText:f,customAmountText:g}=n,b={"one-time":"oneTimeDonation","1 month":"monthlyDonation","1 year":"annualDonation"},v=e=>n[b[t]][e],k=(e,r)=>{const a=b[t],o=n[a];c({[a]:{...o,[e]:r}})},[y,E]=(0,r.useState)(u),w=(0,l.hj)(u),_=(0,r.useMemo)((()=>[10*w,30*w,200*w]),[w]);(0,r.useEffect)((()=>{y!==u&&(E(u),c({oneTimeDonation:{...p,amounts:_},monthlyDonation:{...d,amounts:_},annualDonation:{...m,amounts:_}}))}),[u,y,_,p,d,m,c]);const C=v("amounts"),j=(0,o.useSelect)((e=>e("core/rich-text").getFormatTypes()),[]).map((e=>e.name)).filter((e=>"core/link"!==e));return(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(a.RichText,{tagName:"h4",placeholder:__("Write a message…","jetpack"),value:v("heading"),onChange:e=>k("heading",e)}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:f,onChange:e=>c({chooseAmountText:e})}),(0,r.createElement)("div",{className:"donations__amounts"},C.map(((e,t)=>(0,r.createElement)(s.Z,{currency:u,defaultValue:_[t],label:(0,i.sprintf)(// translators: %d: Tier level e.g: "1", "2", "3"
+__("Tier %d","jetpack"),t+1),key:`jetpack-donations-amount-${t}`,onChange:e=>((e,t)=>{const n=[...C];n[t]=e,k("amounts",n)})(e,t),value:e})))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:g,onChange:e=>c({customAmountText:e})}),(0,r.createElement)(s.Z,{currency:u,label:__("Custom amount","jetpack"),defaultValue:100*(0,l.hj)(u),className:"donations__custom-amount",disabled:!0})),(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:v("extraText"),onChange:e=>k("extraText",e)}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper"},(0,r.createElement)(a.RichText,{className:"wp-block-button__link donations__donate-button",placeholder:__("Write a message…","jetpack"),value:v("buttonText"),onChange:e=>{return t=e,void c({oneTimeDonation:{...p,buttonText:t},monthlyDonation:{...d,buttonText:t},annualDonation:{...m,buttonText:t}});var t},allowedFormats:j})))}},53823:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(65736),l=n(46928),c=n(75242),u=n(43393);const __=s.__;t.Z=e=>{const{attributes:t,className:n,products:a,setAttributes:s,shouldUpgrade:p,stripeConnectUrl:d}=e,{oneTimeDonation:m,monthlyDonation:h,annualDonation:f}=t,[g,b]=(0,r.useState)("one-time"),v=(0,i.useSelect)((e=>e("core/editor").getCurrentPostId()),[]),k=(0,r.useCallback)((e=>g===e),[g]),y={"one-time":{title:__("One-Time","jetpack")},...h.show&&{"1 month":{title:__("Monthly","jetpack")}},...f.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.useEffect)((()=>{m.planId===a["one-time"]&&h.planId===a["1 month"]&&f.planId===a["1 year"]||s({oneTimeDonation:{...m,planId:a["one-time"]},monthlyDonation:{...h,planId:a["1 month"]},annualDonation:{...f,planId:a["1 year"]}})}),[m,h,f,s,a]),(0,r.useEffect)((()=>{!h.show&&k("1 month")&&b("one-time"),!f.show&&k("1 year")&&b("one-time")}),[h,f,b,k]),(0,r.createElement)("div",{className:n},!p&&d&&(0,r.createElement)(u.Z,{blockName:"donations",postId:v,stripeConnectUrl:d}),(0,r.createElement)("div",{className:"donations__container"},Object.keys(y).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(y).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:o()("donations__nav-item",{"is-active":k(t)}),onClick:()=>b(t),onKeyDown:()=>b(t),key:`jetpack-donations-nav-item-${t} `},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)(c.Z,{activeTab:g,attributes:t,setAttributes:s}))),(0,r.createElement)(l.Z,e))}},28559:function(e,t){"use strict";t.Z={url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},style:{type:"string",default:"inline"}}},77019:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__,i=e=>{let{setEditingUrl:t}=e;return(0,r.createElement)(a.ToolbarGroup,null,(0,r.createElement)(a.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},48631:function(e,t,n){"use strict";var r=n(61652);t.Z=[r.Z]},61652:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(92819),l=n(4981),c=n(65736);const _x=c._x,u=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius"];t.Z={attributes:{url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},useModal:{type:"boolean"},style:{type:"string"},text:{type:"string",default:_x("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},migrate:e=>{const{className:t,style:n}=e;let r=n;r||(r=e.useModal?"modal":"inline");const a={...(0,s.omit)(e,["useModal",...u]),className:t&&t.replace("is-style-outline",""),style:r},o=(0,s.pick)(e,u);return[a,[(0,l.createBlock)("jetpack/button",{element:"a",text:o.text||_x("Register","verb: e.g. register for an event.","jetpack"),...o,uniqueId:"eventbrite-widget-id",className:t&&-1!==t.indexOf("is-style-outline")?"is-style-outline":""})]]},save:function(e){let{attributes:t}=e;const{eventId:n,useModal:a,url:s,style:l}=t;if(n)return a||"modal"===l?function(e){const{backgroundColor:t,borderRadius:n,customBackgroundColor:a,customTextColor:s,eventId:l,text:c,textColor:u,url:p}=e,d=(0,i.getColorClassName)("color",u),m=(0,i.getColorClassName)("background-color",t),h=o()("wp-block-button__link",{"has-text-color":u||s,[d]:d,"has-background":t||a,[m]:m,"no-border-radius":0===n}),f={backgroundColor:m?void 0:a,color:d?void 0:s,borderRadius:n?n+"px":void 0};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{className:h,href:p,id:`eventbrite-widget-${l}`,rel:"noopener noreferrer",role:"button",style:f,tagName:"a",target:"_blank",value:c}))}(t):s&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:s},s)},isEligible:(e,t)=>("modal"===e.style||e.useModal)&&((0,s.isEmpty)(t)||(0,s.some)((0,s.pick)(e,u),Boolean))}},62337:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(45166),u=n(28559),p=n(62194),d=n(14087),m=n(58014),h=n(8964),f=n(72566),g=n(87072),b=n(77019);const __=i.__,_x=i._x;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{editedUrl:this.props.attributes.url||"",editingUrl:!1,isResolvingUrl:!1}),a()(this,"setUrl",(e=>{const{attributes:t,noticeOperations:n,setAttributes:r}=this.props,{style:a}=t;if(!e||c.Q7===e||"modal"===a)return;const o=(0,p.Ve)(e);if(o){const t={eventId:o,url:e};(0,g.Z)(t.url,this.setIsResolvingUrl).then((e=>{const a=(0,d.S)(u.Z,{...t,url:e});r(a),this.setState({editedUrl:e}),n.removeAllNotices()})).catch((()=>{r({eventId:void 0,url:void 0}),this.setErrorNotice()}))}else this.setErrorNotice()})),a()(this,"setIsResolvingUrl",(e=>this.setState({isResolvingUrl:e}))),a()(this,"setEditingUrl",(e=>this.setState({editingUrl:e}))),a()(this,"setErrorNotice",(()=>{const{noticeOperations:e,onReplace:t}=this.props,{editedUrl:n}=this.state;e.removeAllNotices(),e.createErrorNotice((0,o.createElement)(o.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,o.createElement)(s.Button,{isLink:!0,onClick:()=>(0,p.N3)(n,t)},_x("Convert block to link","button label","jetpack"))))})),a()(this,"submitForm",(e=>{e&&e.preventDefault(),this.setUrl((0,p.qq)(this.state.editedUrl)),this.setState({editingUrl:!1})})),a()(this,"cannotEmbed",(()=>{const{url:e}=this.props.attributes,{isResolvingUrl:t}=this.state;return!t&&e&&!c.Wh.test(e)}))}componentDidMount(){const{url:e}=this.props.attributes;this.setUrl(e)}renderLoading(){return(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(s.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack")))}renderInspectorControls(){const{style:e}=this.props.attributes,{attributes:t,clientId:n,setAttributes:r}=this.props,a=[{value:"inline",label:__("In-page Embed","jetpack"),preview:(0,o.createElement)("div",{className:"block-editor-block-preview__container"},(0,o.createElement)("img",{src:h,alt:__("In page Eventbrite checkout example","jetpack")}))},{value:"modal",label:__("Button & Modal","jetpack")}];return(0,o.createElement)(f.Z,{title:_x("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack"),clientId:n,styleOptions:a,onSelectStyle:r,activeStyle:e,attributes:t,viewportWidth:130})}renderEditEmbed(){const{className:e,noticeUI:t}=this.props,{editedUrl:n}=this.state,r=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.Placeholder,{label:__("Eventbrite Checkout","jetpack"),instructions:__("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:c.qv}),notices:t},(0,o.createElement)("form",{onSubmit:this.submitForm},(0,o.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":__("Eventbrite URL","jetpack"),placeholder:__("Enter an event URL to embed here…","jetpack"),onChange:e=>this.setState({editedUrl:e.target.value})}),(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},_x("Embed","submit button label","jetpack"))),(0,o.createElement)("div",{className:"components-placeholder__learn-more"},(0,o.createElement)(s.ExternalLink,{href:r},__("Learn more about Eventbrite embeds","jetpack")))))}renderInlinePreview(){const{className:e}=this.props,{eventId:t}=this.props.attributes;if(!t)return;const n=`eventbrite-widget-${t}`,r=`\n\t\t\t<script src="https://www.eventbrite.com/static/widgets/eb_widgets.js"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ${t},\n\t\t\t\t\tiframeContainerId: '${n}',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id="${n}"></div>\n\t\t`;return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.SandBox,{html:r}),(0,o.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}render(){const{attributes:e}=this.props,{url:t,style:n}=e,{editingUrl:r,isResolvingUrl:a}=this.state;return a?this.renderLoading():r||!t||this.cannotEmbed()?this.renderEditEmbed():(0,o.createElement)(o.Fragment,null,this.renderInspectorControls(),(0,o.createElement)(l.BlockControls,null,(0,o.createElement)(b.J,{setEditingUrl:this.setEditingUrl})),"modal"===n?(0,o.createElement)(l.InnerBlocks,{template:[[c.Ss.name,c.Ss.attributes]],templateLock:"all"}):this.renderInlinePreview())}}t.Z=(0,s.withNotices)(v)},45166:function(e,t,n){"use strict";n.d(t,{Ss:function(){return d},Wh:function(){return m},Q7:function(){return f},u2:function(){return g},qv:function(){return v},Xd:function(){return k}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(28559),l=n(48631),c=n(62337),u=n(74318),p=n(57535);const __=a.__,_x=a._x,d={name:"jetpack/button",attributes:{element:"a",text:_x("Register","verb: e.g. register for an event.","jetpack"),uniqueId:"eventbrite-widget-id"}},m=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,h=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,f="https://www.eventbrite.com/e/test-event-tickets-123456789",g="eventbrite",b=__("Eventbrite Checkout","jetpack"),v=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,{id:"eventbrite-icon"},(0,r.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),k={title:b,description:__("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:{src:v,foreground:(0,p.m)()},category:"embed",keywords:[_x("events","block search term","jetpack"),_x("tickets","block search term","jetpack")],supports:{html:!1,align:!0},attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&(m.test(e.textContent)||h.test(e.textContent)),transform:e=>(0,i.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}]},example:{attributes:{url:f,eventId:123456789,style:"modal"},innerBlocks:[d]},deprecated:l.Z}},74318:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{eventId:n,style:o,url:i}=t;if(n)return"modal"===o?(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null)):i&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:i},i)}},62194:function(e,t,n){"use strict";n.d(t,{N3:function(){return o},Ve:function(){return i},qq:function(){return s}});var r=n(69307),a=n(4981);function o(e,t){const n=(0,r.createElement)("a",{href:e},e);t((0,a.createBlock)("core/paragraph",{content:(0,r.renderToString)(n)}))}function i(e){if(!e)return null;const t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e&&"string"==typeof e?e.trim():null}},47271:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(4981),u=n(9818);const __=s.__;function p(e){let{onReplace:t}=e;const[n,a]=(0,i.useState)(!1),s=(0,u.useSelect)((e=>e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")));return{isGatheringStorm:n,unleashStorm:(e,n)=>{if((0,r.isEmpty)(e))return;const i=e.match(/^https?:\/\/(?:www\.)?twitter\.com\/([^/]+)\/status\/\d+/);if((0,r.isEmpty)(i))return;const p=i[1];n.removeAllNotices(),a(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/tweetstorm/gather",{url:e})}).then((e=>{if(a(!1),!(0,r.isArray)(e))return void n.createErrorNotice(__("An error occurred. Please try again later.","jetpack"));if((0,r.isEmpty)(e))return void n.createErrorNotice(__("We were unable to get any content from this tweet.","jetpack"));t(e.map((e=>{switch(e.type){case"paragraph":return(0,c.createBlock)("core/paragraph",{content:e.content});case"gallery":return(0,c.createBlock)("core/gallery",{images:e.images});case"image":return(0,c.createBlock)("core/image",{url:e.url,alt:e.alt});case"video":return(0,c.createBlock)("core/video",{src:e.url,caption:e.alt});case"embed":return(0,c.createBlock)("core/embed",{url:e.url})}})));(0,r.some)(s,(e=>"twitter"===e.service_name&&`@${p}`===e.display_name))||(0,u.dispatch)("core/notices").createWarningNotice(__("We were unable to verify that this Twitter thread was published on a Twitter account belonging to you. Please ensure you have permission to reproduce it before publishing.","jetpack")),(0,u.dispatch)("core/notices").createSuccessNotice(__("Twitter thread successfully imported","jetpack"),{type:"snackbar"})})).catch((e=>{a(!1),n.createErrorNotice(e.message)}))}}}},72966:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=(0,r.forwardRef)((function(e,t){let{onSubmit:n,onChange:a,value:i=""}=e;return(0,r.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:n},(0,r.createElement)("input",{type:"text",className:"wp-block-jetpack-gif_input components-placeholder__input",placeholder:__("Enter search terms, e.g. cat…","jetpack"),value:i,onChange:a,ref:t,"aria-labelledby":"wp-block-jetpack-gif_search-button"}),(0,r.createElement)(o.Button,{id:"wp-block-jetpack-gif_search-button",isSecondary:!0,type:"submit"},__("Search","jetpack")))}))},32882:function(e,t,n){"use strict";n.d(t,{U:function(){return r}});const r="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW"},68055:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(52175);function i(){return(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(a.PanelBody,{className:"components-panel__body-gif-branding"},(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},(0,r.createElement)(a.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),(0,r.createElement)(a.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"}))))}},61796:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31072),u=n(80917),p=n(72966),d=n(68055),m=n(21835);const __=i.__;t.Z=function(e){let{attributes:t,setAttributes:n,className:a,isSelected:i}=e;const{align:h,caption:f,giphyUrl:g,searchText:b,paddingTop:v}=t,k=o()(a,`align${h}`),[y,E]=(0,r.useState)(!1),w=(0,r.createRef)(),{isFetching:_,giphyData:C,fetchGiphyData:j}=(0,m.Z)(),S=()=>{w.current.focus(),E(!1)};(0,r.useEffect)((()=>{C&&C[0]&&n((0,u.ix)(C[0]))}),[C,n]);const x=e=>{e.preventDefault(),t.searchText&&!_&&j((0,u.Gr)(t.searchText))},T=e=>n({searchText:e.target.value});return(0,r.createElement)("div",{className:k},(0,r.createElement)(d.Z,null),g?(0,r.createElement)("figure",null,i&&(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w}),i&&C&&C.length>1&&(0,r.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},C.map((e=>{const t={backgroundImage:`url(${e.images.downsized_still.url})`};return(0,r.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:e.id,onClick:t=>{t.preventDefault(),(e=>{n((0,u.ix)(e))})(e)},style:t})}))),(0,r.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:{paddingTop:v}},(0,r.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:S,onKeyDown:S,role:"button",tabIndex:"0"}),(0,r.createElement)("iframe",{src:g,title:b})),(!l.RichText.isEmpty(f)||i)&&!!g&&(0,r.createElement)(l.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:y,unstableOnFocus:()=>E(!1),onChange:e=>n({caption:e}),placeholder:__("Write caption…","jetpack"),tagName:"figcaption",value:f})):(0,r.createElement)(s.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:c.qv,label:c.TN,instructions:__("Search for a term or paste a Giphy URL","jetpack")},(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w})))}},21835:function(e,t,n){"use strict";var r=n(69307);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[t,n]=(0,r.useState)(!1),[a,o]=(0,r.useState)(e),[i,s]=(0,r.useState)("");return(0,r.useEffect)((()=>{if(!i)return;(async()=>{n(!0);const e=await fetch(i).then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json(),n=void 0!==t.data.images?[t.data]:t.data;n[0].images&&o(n)}n(!1)})()}),[i]),{isFetching:t,giphyData:a,fetchGiphyData:s}}},31072:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},TN:function(){return c},qv:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(61796),s=n(57535);const __=a.__,_x=a._x,l="gif",c=__("GIF","jetpack"),u=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),p={title:c,icon:{src:u,foreground:(0,s.m)()},category:"embed",keywords:[_x("animated","block search term","jetpack"),_x("giphy","block search term","jetpack"),_x("image","block search term","jetpack")],description:__("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:i.Z,save:()=>null,example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}}},80917:function(e,t,n){"use strict";n.d(t,{Gr:function(){return s},ix:function(){return u}});var r=n(32882);const a=e=>`https://api.giphy.com/v1/gifs/search?q=${encodeURIComponent(e)}&api_key=${encodeURIComponent(r.U)}&limit=10`,o=e=>`https://api.giphy.com/v1/gifs/${encodeURIComponent(e)}?api_key=${encodeURIComponent(r.U)}`,i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;const n=e.split(t);return n[n.length-1]},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=null;e=e.trim();const n=/^https?:\/\/(media\.|i\.)?giphy\.com\/(embed|gifs|media)?\/?([-\w]*)(\/giphy)?(\.gif)?$/,r=e.match(n);return r&&r[3]&&(t=i(r[3],"-")),t?o(t):a(e)},l=e=>`${Math.floor(e.images.original.height/e.images.original.width*100)}%`,c=e=>e?.embed_url,u=e=>({giphyUrl:c(e),paddingTop:l(e)})},76280:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__,_x=o._x;t.Z=e=>{const{className:t,embedValue:n,onChange:o,onSubmit:i}=e;return(0,r.createElement)(a.PanelBody,{title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:i,className:t},(0,r.createElement)("textarea",{type:"text",value:n,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:o}),(0,r.createElement)(a.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack"))))}},53997:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(52175),l=n(90162),c=n(4981),u=n(76280),p=n(54286),d=n(3030),m=n(58014);const __=a.__,_x=a._x;t.Z=(0,i.compose)(o.withNotices,(0,l.withViewportMatch)({isMobile:"< small"}))((function(e){const{attributes:{url:t,height:n},className:a,isMobile:i,isSelected:l,name:h,noticeOperations:f,noticeUI:g,setAttributes:b}=e,[v,k]=(0,r.useState)(t||""),[y,E]=(0,r.useState)(!1),[w,_]=(0,r.useState)(!1);(0,r.useEffect)((()=>{!l&&w&&_(!1)}),[l,w]);const C=()=>{_(!0)},j=e=>{e&&e.preventDefault();const t=(0,d.L7)(v.trim());if(!d.Wh.test(t.url))return f.removeAllNotices(),void f.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or Embed Code. Please note, you need to use the 'Public URL' or 'Embed Code', the 'Shareable Link' will not work.","jetpack"));b(t),E(!1),f.removeAllNotices()},S=(0,c.getBlockDefaultClassName)(h),x=`<iframe src="${t}" style="border:0" scrolling="no" frameborder="0" height="${i?"300":n}"></iframe>`,T=(0,r.createElement)(o.ExternalLink,{href:"https://en.support.wordpress.com/google-calendar/"},__("Enable Permissions for the calendar you want to share","jetpack")),P=(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Z,{className:`${S}-embed-form-sidebar`,embedValue:v,onChange:e=>k(e.target.value),onSubmit:j}));if(y||!t){const e=(0,m.Wp)()||(0,m.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/google-calendar/":"https://jetpack.com/support/jetpack-blocks/google-calendar/";return(0,r.createElement)("div",{className:a},P,(0,r.createElement)(o.Placeholder,{className:a,label:__("Google Calendar","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:(0,r.createElement)("ol",{className:`${S}-placeholder-instructions`},(0,r.createElement)("li",null,T),(0,r.createElement)("li",null,__("Paste the embed code you copied from your Google Calendar below","jetpack"))),notices:g},(N=`${S}-embed-form-editor`,(0,r.createElement)("form",{onSubmit:j,className:N},(0,r.createElement)("textarea",{type:"text",value:v,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:e=>k(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)("div",{className:`${S}-placeholder-links`},(0,r.createElement)(o.ExternalLink,{href:e},__("Learn more","jetpack")))))}var N;return(0,r.createElement)("div",{className:a},P,(0,r.createElement)("div",null,(0,r.createElement)(o.SandBox,{html:x,onFocus:C}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:C})))}))},54286:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"23",viewBox:"0 0 24 23",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19.5,23h-15c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h15c2.2,0,4,1.8,4,4v15C23.5,21.2,21.7,23,19.5,23z M4.5,2 c-1.1,0-2,0.9-2,2v15c0,1.1,0.9,2,2,2h15c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2H4.5z M6.9,3.9L6.9,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0C6.5,5.9,6.1,5.5,6.1,5V4.7C6.1,4.3,6.5,3.9,6.9,3.9z M17,3.9L17,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0c-0.5,0-0.9-0.4-0.9-0.9V4.7C16.2,4.3,16.5,3.9,17,3.9z M8.8,17.6c1.8,0,3.2-1,3.2-2.4 c0-1.1-0.7-1.8-1.8-1.9v-0.1c0.9-0.2,1.5-0.9,1.5-1.8c0-1.3-1.2-2.2-2.9-2.2c-1.8,0-2.9,1-3,2.5h1.6c0-0.7,0.6-1.1,1.4-1.1 c0.8,0,1.3,0.4,1.3,1.1c0,0.7-0.5,1.1-1.3,1.1h-1v1.3h1c0.9,0,1.5,0.4,1.5,1.1c0,0.7-0.6,1.2-1.4,1.2c-0.9,0-1.4-0.4-1.5-1.1H5.7 C5.8,16.6,7,17.6,8.8,17.6z M17.6,17.4V9.3h-1.7l-2.1,1.4v1.6l2-1.4h0.1v6.4H17.6z"}))},13984:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(4981),i=n(53997),s=n(3030),l=n(54286),c=n(57535);const __=a.__,_x=a._x,u="google-calendar",p={title:__("Google Calendar","jetpack"),description:__("Embed a Google Calendar","jetpack"),keywords:[_x("events","block search term","jetpack"),_x("dates","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack")],icon:{src:l.Z,foreground:(0,c.m)()},category:"embed",supports:{align:!0,alignWide:!0,html:!1},attributes:{url:{type:"string"},height:{type:"integer",default:600}},edit:i.Z,save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)},transforms:{from:[{type:"shortcode",tag:"googleapps",isMatch:function(e){return"calendar"===e.named.domain},attributes:{url:{type:"string",shortcode:e=>{let{named:{domain:t,dir:n,query:r}}=e;return`https://${t}.google.com/${n}?${r}`}}}},{type:"raw",isMatch:e=>"P"===e.nodeName&&s.Wh.test(e.textContent),transform:e=>(0,o.createBlock)("jetpack/google-calendar",{url:e.textContent.trim()})},{type:"raw",isMatch:e=>"FIGURE"===e.nodeName&&s.E6.test(e.innerHTML),transform:e=>{const{url:t,height:n}=(0,s.jj)(e.innerHTML.trim());return(0,o.createBlock)("jetpack/google-calendar",{url:t,height:n})}}]},example:{attributes:{url:"https://calendar.google.com/calendar/embed?src=jb4bu80jirp0u11a6niie21pp4%40group.calendar.google.com&ctz=America/New_York"}}}},3030:function(e,t,n){"use strict";n.d(t,{Wh:function(){return a},E6:function(){return o},jj:function(){return c},L7:function(){return u}});const r="s*https?://calendar.google.com/calendar",a=new RegExp(`^${r}`,"i"),o=new RegExp(`<iframe((?:\\s+\\w+=(['"]).*?\\2)*)\\s+src=(["'])(${r}.*?)\\3((?:\\s+\\w+=(['"]).*?\\6)*)`,"i"),i=new RegExp(`${r}\\?cid=([-A-Za-z0-9+/]+={0,3})`,"i"),s=/\s+(\w+)=(["'])(.*?)\2/gi;function l(e){const t=i.exec(e);if(t)return"https://calendar.google.com/calendar/embed?src="+encodeURIComponent(atob(t[1]))}function c(e){const t=o.exec(e);if(!t)return;const n={};return t.forEach(((e,t)=>{if(0===t)return;if(a.test(e))return void(n.url=e);let r;for(;null!==(r=s.exec(e));)n[r[1]]=r[3]})),{url:n.url,width:n.width,height:n.height}}function u(e){return o.test(e)?c(e):i.test(e)?{url:l(e)}:{url:e}}},74956:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{attributes:t,setAttributes:n}=e;const{orientation:o}=t;return(0,r.createElement)(a.PanelBody,{title:__("Orientation","jetpack")},(0,r.createElement)(a.RadioControl,{selected:o||"horizontal",options:[{label:__("Side by side","jetpack"),value:"horizontal"},{label:__("Above and below","jetpack"),value:"vertical"}],onChange:e=>n({orientation:e})}))}},38544:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(94333),s=n(65736),l=n(5968),c=n(74956),u=n(91667),p=n(12379);n(728);const __=s.__;t.Z=e=>{let{attributes:t,className:n,clientId:s,isSelected:d,setAttributes:m}=e;const{imageBefore:h,imageAfter:f,caption:g,orientation:b}=t;let v=null,k=null;const y=(0,r.useRef)();i.useResizeObserver&&([v,k]=(0,i.useResizeObserver)(),(0,p.Z)((e=>{e>0&&"undefined"!=typeof juxtapose&&juxtapose.sliders&&juxtapose.sliders.forEach((t=>{t.wrapper.parentElement.id===s&&t.optimizeWrapper(e)}))}),200,k.width));const E=h&&h.url&&f&&f.url?"image-compare__comparison juxtapose":"image-compare__placeholder";return(0,r.useLayoutEffect)((()=>{h.url&&f.url&&"undefined"!=typeof juxtapose&&juxtapose.makeSlider(y?.current)}),[h,f,b]),(0,r.createElement)("figure",{className:n,id:s},v,(0,r.createElement)(a.InspectorControls,{key:"controls"},(0,r.createElement)(c.Z,{attributes:t,setAttributes:m})),(0,r.createElement)("div",{ref:y,className:E,"data-mode":b||"horizontal"},(0,r.createElement)(o.Placeholder,{label:null},(0,r.createElement)("div",{className:"image-compare__image-before"},(0,r.createElement)(u.Z,{image:{id:h.id,url:h.url,alt:h.alt},placeHolderLabel:__("Image before","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageBefore:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})),(0,r.createElement)("div",{className:"image-compare__image-after"},(0,r.createElement)(u.Z,{image:{id:f.id,url:f.url,alt:f.alt},placeHolderLabel:__("Image after","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageAfter:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})))),(!a.RichText.isEmpty(g)||d&&h.url&&f.url)&&(0,r.createElement)(a.RichText,{tagName:"figcaption",placeholder:__("Write caption","jetpack"),value:g,onChange:e=>m({caption:e}),inlineToolbar:!0}))}},94703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M21 4h-6v1.5h6c.3 0 .5.2.5.5v.4l-3.6 3.5L15 8.1v1.8l2.6 1.7c.1.1.3.1.4.1.2 0 .4-.1.5-.2l3-2.9V18c0 .3-.2.5-.5.5h-6V20h6c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM1 6v12c0 1.1.9 2 2 2h10.5V4H3c-1.1 0-2 .9-2 2zm11 12.5H3c-.3 0-.5-.2-.5-.5v-1.4L5 14.7l1.5-1.1.1-.1 3 1.9c.1.1.3.1.4.1.2 0 .4-.1.5-.2L12 14v4.5zm0-6.6l-2.1 2L7 12c-.1-.1-.3-.1-.4-.1h-.1c-.1 0-.3.1-.4.1l-1.1.9-2.5 1.8V6c0-.3.2-.5.5-.5h9v6.4z"}))},91667:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(55609);t.Z=(0,a.compose)([i.withNotices])((e=>{const{image:t,noticeOperations:n,noticeUI:a,onChange:i,placeHolderLabel:s}=e,l=(0,r.createElement)("img",{id:t.id,src:t.url,alt:t.alt}),c=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.MediaPlaceholder,{labels:{title:s},accept:"image/*",allowedTypes:["image"],onSelect:i,onError:e=>n.createErrorNotice(e),notices:a}));return t&&t.url?l:c}))},1624:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return d}});var r=n(65736),a=n(38544),o=n(94703),i=n(31105),s=n(90767),l=n(58632),c=n(20510),u=n(57535);const __=r.__,_x=r._x,p="image-compare",d={title:__("Image Compare","jetpack"),description:__("Compare two images with a slider. Works best with images of the same size.","jetpack"),icon:{src:o.Z,foreground:(0,u.m)()},category:(0,c.Z)("media","layout"),keywords:[_x("juxtapose","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("side by side","block search term","jetpack"),_x("slider","block search term","jetpack")],attributes:{imageBefore:{type:"object",default:{}},imageAfter:{type:"object",default:{}},caption:{type:"string"},orientation:{type:"string",default:"horizontal"}},example:{attributes:{imageBefore:{id:1,url:l,alt:__("Before","jetpack")},imageAfter:{id:2,url:s,alt:__("After","jetpack")},caption:__("Example image","jetpack")}},edit:a.Z,save:i.Z}},31105:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t,className:n}=e;const{imageBefore:o,imageAfter:i,caption:s,orientation:l}=t;return(0,r.createElement)("figure",{className:n},(0,r.createElement)("div",{className:"juxtapose","data-mode":l||"horizontal"},(0,r.createElement)("img",{id:o.id,src:o.url,alt:o.alt,width:o.width,height:o.height,className:"image-compare__image-before"}),(0,r.createElement)("img",{id:i.id,src:i.url,alt:i.alt,width:i.width,height:i.height,className:"image-compare__image-after"})),!a.RichText.isEmpty(s)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:s}))}},12379:function(e,t,n){"use strict";var r=n(69307);t.Z=(e,t,n)=>{(0,r.useEffect)((()=>{const r=setTimeout((()=>e(n)),t);return()=>clearTimeout(r)}),[n])}},728:function(e,t,n){"use strict";var r=n(47701);n.n(r)()((function(){const e={sliders:[],OPTIMIZATION_ACCEPTED:1,OPTIMIZATION_WAS_CONSTRAINED:2};function t(e,t){const n=this;this.image=new Image,this.loaded=!1,this.image.onload=function(){n.loaded=!0,t._onLoaded()},this.image.src=e.src,this.image.alt=e.alt||"",this.label=e.label||!1}function n(e,t){e&&e.classList.add(t)}function r(e,t){e&&e.classList.remove(t)}function a(e){return{width:parseInt(window.getComputedStyle(e).width,10),height:parseInt(window.getComputedStyle(e).height,10)}}function o(e,t){let n;if("string"==typeof t||"number"==typeof t)n=parseInt(t,10);else{const r=e.getBoundingClientRect(),a={top:r.top+document.body.scrollTop+document.documentElement.scrollTop,left:r.left+document.body.scrollLeft+document.documentElement.scrollLeft},o=e.offsetWidth;n=(function(e){let t;return t=e.pageX?e.pageX:e.touches?e.touches[0].pageX:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,t}(t)-a.left)/o*100}return n}function i(e,t,n){let r;if("string"==typeof t||"number"==typeof t)r=parseInt(t,10);else{const a=e.getBoundingClientRect(),o={top:a.top+n.body.scrollTop+n.documentElement.scrollTop,left:a.left+n.body.scrollLeft+n.documentElement.scrollLeft},i=e.offsetHeight;r=(function(e){let t;return t=e.pageY?e.pageY:e.touches?e.touches[0].pageY:e.clientY+document.body.scrollTop+document.documentElement.scrollTop,t}(t)-o.top)/i*100}return r}const s={animate:!0,showLabels:!0,makeResponsive:!0};function l(e,n,r){let a;for(a in this.element=e,this.options={animate:!0,showLabels:!0,makeResponsive:!0,startingPosition:"50%",mode:"horizontal",callback:null},this.options)a in r&&(this.options[a]=a in s?"string"!=typeof(o=r[a])?Boolean(o):!("false"===o||""===o):r[a]);var o;2===n.length&&(this.imgBefore=new t(n[0],this),this.imgAfter=new t(n[1],this))}l.prototype={updateSlider:function(e,t){let a;a="vertical"===this.options.mode?i(this.slider,e,this.sliderParentDocument):o(this.slider,e),a=a.toFixed(2)+"%";const s=parseFloat(a),l=100-s+"%";s>0&&s<100&&(r(this.handle,"transition"),r(this.rightImage,"transition"),r(this.leftImage,"transition"),this.options.animate&&t&&(n(this.handle,"transition"),n(this.leftImage,"transition"),n(this.rightImage,"transition")),"vertical"===this.options.mode?(this.handle.style.top=a,this.leftImage.style.height=a,this.rightImage.style.height=l):(this.handle.style.left=a,this.leftImage.style.width=a,this.rightImage.style.width=l),this.sliderPosition=a)},getPosition:function(){return this.sliderPosition},displayLabel:function(e,t){const n=document.createElement("div");n.className="jx-label",n.setAttribute("tabindex",0),function(e,t){document.body.textContent?e.textContent=t:e.innerText=t}(n,t),e.appendChild(n)},setStartingPosition:function(e){this.options.startingPosition=e},calculateDims:function(e,t){const n=(r=this.imgBefore.image,{width:r.naturalWidth,height:r.naturalHeight,aspect:function(){return this.width/this.height}}).aspect();var r;return e?t=e/n:t&&(e=t*n),{width:e,height:t,ratio:n}},responsivizeIframe:function(e){return e.height<window.innerHeight?e.ratio>=1&&(this.wrapper.style.paddingTop=parseInt((window.innerHeight-e.height)/2)+"px"):e.height>window.innerHeight&&(e=this.calculateDims(0,window.innerHeight),this.wrapper.style.paddingLeft=parseInt((window.innerWidth-e.width)/2)+"px"),e},setWrapperDimensions:function(){const e=a(this.wrapper.parentNode).width,t=a(this.wrapper.parentNode).height;let n=this.calculateDims(e,t);window.location===window.parent.location||this.options.makeResponsive||(n=this.responsivizeIframe(n)),this.wrapper.style.height=parseInt(n.height)+"px",this.wrapper.style.width=parseInt(n.width)+"px"},optimizeWrapper:function(t){let n=e.OPTIMIZATION_ACCEPTED;return this.imgBefore.image.naturalWidth>=t&&this.imgAfter.image.naturalWidth>=t?(this.wrapper.style.width=t+"px",n=e.OPTIMIZATION_WAS_CONSTRAINED):this.imgAfter.image.naturalWidth<t?this.wrapper.style.width=this.imgAfter.image.naturalWidth+"px":this.wrapper.style.width=this.imgBefore.image.naturalWidth+"px",this.setWrapperDimensions(),n},_onLoaded:function(){if(this.imgBefore&&!0===this.imgBefore.loaded&&this.imgAfter&&!0===this.imgAfter.loaded){if(this.wrapper=this.element,!this.wrapper||this.wrapper.querySelector(".jx-slider"))return;n(this.wrapper,"juxtapose"),this.wrapper.style.width=this.imgBefore.image.naturalWidth,this.setWrapperDimensions(),this.slider=document.createElement("div"),this.slider.className="jx-slider",this.wrapper.appendChild(this.slider),this.sliderParentDocument=this.wrapper.ownerDocument,"horizontal"!==this.options.mode&&n(this.slider,this.options.mode),this.handle=document.createElement("div"),this.handle.className="jx-handle",this.rightImage=document.createElement("div"),this.rightImage.className="jx-image jx-right",this.rightImage.appendChild(this.imgAfter.image),this.leftImage=document.createElement("div"),this.leftImage.className="jx-image jx-left",this.leftImage.appendChild(this.imgBefore.image),this.slider.appendChild(this.handle),this.slider.appendChild(this.leftImage),this.slider.appendChild(this.rightImage),this.leftArrow=document.createElement("div"),this.rightArrow=document.createElement("div"),this.control=document.createElement("div"),this.controller=document.createElement("div"),this.leftArrow.className="jx-arrow jx-left",this.rightArrow.className="jx-arrow jx-right",this.control.className="jx-control",this.controller.className="jx-controller",this.controller.setAttribute("tabindex",0),this.controller.setAttribute("role","slider"),this.controller.setAttribute("aria-valuenow",50),this.controller.setAttribute("aria-valuemin",0),this.controller.setAttribute("aria-valuemax",100),this.controller.setAttribute("aria-label",window.imageCompareHandle?.msg||"Slide to compare images"),this.handle.appendChild(this.leftArrow),this.handle.appendChild(this.control),this.handle.appendChild(this.rightArrow),this.control.appendChild(this.controller),this._init()}},_init:function(){this.updateSlider(this.options.startingPosition,!1),!0===this.options.showLabels&&(this.imgBefore.label&&this.displayLabel(this.leftImage,this.imgBefore.label),this.imgAfter.label&&this.displayLabel(this.rightImage,this.imgAfter.label));const t=this;window.addEventListener("resize",(function(){t.setWrapperDimensions()})),this.slider.addEventListener("mousedown",(function(e){e.preventDefault(),t.updateSlider(e,!0);let n=!0;this.addEventListener("mousemove",(function(e){e.preventDefault(),n&&t.updateSlider(e,!1)})),this.addEventListener("mouseup",(function(e){e.preventDefault(),e.stopPropagation(),n=!1}))})),this.slider.addEventListener("touchstart",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!0),this.addEventListener("touchmove",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!1)}))})),this.handle.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;let r=parseFloat(this.style.left);if(37===n){r-=1;const e=parseFloat(this.style.left)-1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}if(39===n){r+=1;const e=parseFloat(this.style.left)+1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}})),this.leftImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("90%",!0),t.controller.setAttribute("aria-valuenow",91))})),this.rightImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("10%",!0),t.controller.setAttribute("aria-valuenow",10))})),e.sliders.push(this),this.options.callback&&"function"==typeof this.options.callback&&this.options.callback(this)}},e.makeSlider=function(t,r){void 0===r&&(r=e.sliders.length);const a=t,o=a.querySelectorAll("img");if(o.length<2)return;const i={};a.getAttribute("data-animate")&&(i.animate=a.getAttribute("data-animate")),a.getAttribute("data-showlabels")&&(i.showLabels=a.getAttribute("data-showlabels")),a.getAttribute("data-startingposition")&&(i.startingPosition=a.getAttribute("data-startingposition")),a.getAttribute("data-mode")&&(i.mode=a.getAttribute("data-mode")),a.getAttribute("data-makeresponsive")&&(i.mode=a.getAttribute("data-makeresponsive"));return n(t,"juxtapose-"+r),a.innerHTML?a.innerHTML="":a.innerText="",new e.JXSlider(t,[{src:o[0].src,label:o[0].getAttribute("data-label"),alt:o[0].alt},{src:o[1].src,label:o[1].getAttribute("data-label"),alt:o[1].alt}],i)},e.scanPage=function(){const t=document.querySelectorAll(".juxtapose");for(let n=0;n<t.length;n++)e.makeSlider(t[n],n)},e.JXSlider=l,window.juxtapose=e,e.scanPage()}))},18776:function(e,t){"use strict";t.Z={accessToken:{type:"string"},instagramUser:{type:"string"},columns:{type:"number",default:3,min:1,max:6},count:{type:"number",default:9,min:1,max:30},spacing:{type:"number",default:10,min:0,max:50},isStackedOnMobile:{type:"boolean",default:!0}}},14937:function(e,t,n){"use strict";n.d(t,{u:function(){return r},D:function(){return a}});const r=30,a="jetpack-new-instagram-connection"},3802:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(14937);const __=o.__,_n=o._n;function s(e){let{accountImageTotal:t,attributes:n,currentUserConnected:s,disconnectFromService:l,shouldRenderSidebarNotice:c,setAttributes:u}=e;const{accessToken:p,columns:d,count:m,instagramUser:h,isStackedOnMobile:f,spacing:g}=n;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.PanelBody,{title:__("Account Settings","jetpack")},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("span",null,__("Account","jetpack")),(0,r.createElement)(a.ExternalLink,{href:`https://www.instagram.com/${h}/`},"@",h)),s&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isDestructive:!0,isLink:!0,onClick:()=>l(p)},__("Disconnect your account","jetpack")))),(0,r.createElement)(a.PanelBody,{title:__("Display Settings","jetpack")},c?(()=>{const e=t?(0,o.sprintf)(
+/* translators: placeholder is a number. */
+_n("There is currently only %s post in your Instagram account.","There are currently only %s posts in your Instagram account.",t,"jetpack"),t):__("There are currently no posts in your Instagram account.","jetpack");return(0,r.createElement)("div",{className:"wp-block-jetpack-instagram-gallery__count-notice"},(0,r.createElement)(a.Notice,{isDismissible:!1,status:"info"},e))})():null,(0,r.createElement)(a.RangeControl,{label:__("Number of Posts","jetpack"),value:m,onChange:e=>u({count:e}),min:1,max:i.u}),(0,r.createElement)(a.RangeControl,{label:__("Number of Columns","jetpack"),value:d,onChange:e=>u({columns:e}),min:1,max:6}),(0,r.createElement)(a.RangeControl,{label:__("Image Spacing (px)","jetpack"),value:g,onChange:e=>u({spacing:e}),min:0,max:50}),(0,r.createElement)(a.ToggleControl,{label:__("Stack on mobile","jetpack"),checked:f,onChange:()=>u({isStackedOnMobile:!f})})))}},66137:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(18776),p=n(14937),d=n(14087),m=n(10273),h=n(2992),f=n(44420),g=n(76853),b=n(63729),v=n(3802);const __=c.__;t.Z=(0,l.withNotices)((e=>{const{attributes:t,className:n,isSelected:a,noticeOperations:c,noticeUI:k,setAttributes:y}=e,{accessToken:E,align:w,columns:_,count:C,isStackedOnMobile:j,spacing:S}=t;(0,r.useEffect)((()=>{const e=(0,d.S)(u.Z,t);(0,i.isEqual)(e,t)||y(e)}),[t,y]);const[x,T]=(0,r.useState)(E),{isRequestingWpcomConnectUrl:P,wpcomConnectUrl:N}=(0,h.Z)(),{images:A,isLoadingGallery:I,setImages:B}=(0,f.Z)({accessToken:E,noticeOperations:c,setAttributes:y,setSelectedAccount:T}),{connectToService:M,disconnectFromService:R,isConnecting:L,isRequestingUserConnections:Z,userConnections:F}=(0,m.Z)({accessToken:E,noticeOperations:c,selectedAccount:x,setAttributes:y,setImages:B,setSelectedAccount:T}),D=(0,b.Z)(),O=C>A.length?A.length:C,z=!I&&(!E||(0,i.isEmpty)(A)),U=!z,$=E&&I&&(0,i.isEmpty)(A),V=!z&&!$,G=o()(n,{[`align${w}`]:w}),H=o()("wp-block-jetpack-instagram-gallery__grid",`wp-block-jetpack-instagram-gallery__grid-columns-${_}`,{"is-stacked-on-mobile":j}),q={gridGap:S,"--latest-instagram-posts-spacing":S?`${S}px`:void 0},W={padding:S},K=()=>{x&&p.D!==x?y({accessToken:x,instagramUser:(0,i.find)(F,{token:x}).username}):M()};return(0,r.createElement)("div",{className:G},z&&(0,r.createElement)(l.Placeholder,{icon:"instagram",instructions:D?Z||F.length?void 0:__("Connect to Instagram to start sharing your images.","jetpack"):__("First, you'll need to connect your WordPress.com account.","jetpack"),label:__("Latest Instagram Posts","jetpack"),notices:k},D?(()=>{const e=F.length>0,t=[...(0,i.map)(F,(e=>({label:`@${e.username}`,value:e.token}))),{label:__("Add a new account","jetpack"),value:p.D}],n=L||Z||e&&!x;return(0,r.createElement)("div",null,e&&(0,r.createElement)(l.RadioControl,{label:__("Select your Instagram account:","jetpack"),onChange:e=>T(e),options:t,selected:x}),p.D===x&&(0,r.createElement)("p",{className:"wp-block-jetpack-instagram-gallery__new-account-instructions"},__("If you are currently logged in to Instagram on this device, you might need to log out of it first.","jetpack")),(0,r.createElement)(l.Button,{disabled:n,isPrimary:!0,onClick:K},L&&__("Connecting…","jetpack"),Z&&__("Loading your connections…","jetpack"),!L&&!Z&&__("Connect to Instagram","jetpack")))})():(0,r.createElement)(l.Button,{disabled:P||!N,href:N,isSecondary:!0},__("Connect to WordPress.com","jetpack"))),$&&(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(l.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack"))),V&&(0,r.createElement)("div",{className:H,style:q},(0,i.times)(a?C:O,(e=>(0,r.createElement)("span",{className:o()("wp-block-jetpack-instagram-gallery__grid-post"),key:e,style:W},(e=>{if(A[e]){const n=A[e];return(0,r.createElement)(g.Z,{alt:n.title||n.url,src:n.url,attributes:t,spacing:S})}return(0,r.createElement)("img",{alt:__("Latest Instagram Posts placeholder","jetpack"),src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNMyc2tBwAEOgG/c94mJwAAAABJRU5ErkJggg=="})})(e))))),U&&(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(v.Z,{accountImageTotal:A.length,attributes:t,currentUserConnected:D,disconnectFromService:R,shouldRenderSidebarNotice:U&&!$&&A.length<C,setAttributes:y})))}))},76853:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{src:t,alt:n,spacing:a}=e;const[i,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)("auto"),u=(0,r.useRef)(),p=()=>{s(!0),c("auto")};(0,r.useEffect)((()=>{const e=t;if(e){const t=new window.Image;t.src=e,t.onload=p}u.current&&c(u.current.parentNode.getBoundingClientRect().width)}),[t]);const d=-1*a,m=o()("wp-block-jetpack-instagram-gallery__placeholder",{"is-loaded":i}),h=i?{margin:d}:{margin:d,height:l},f=o()({"is-loaded":i});return(0,r.createElement)("span",{style:h,className:m},(0,r.createElement)("img",{alt:n,className:f,ref:u,src:t}))}},77007:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(4981),i=n(18776),s=n(66137),l=n(57535);const __=a.__,_x=a._x,c="instagram-gallery",u={title:__("Latest Instagram Posts","jetpack"),description:__("Display an automatically updating list of the latest posts from your Instagram feed.","jetpack"),icon:{src:"instagram",foreground:(0,l.m)()},category:"embed",keywords:[_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack")],supports:{align:!0,html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"wpcom_instagram_widget"===t},transform:e=>{let{instance:t}=e;return(0,o.createBlock)("jetpack/instagram-gallery",{columns:t.raw.columns,count:t.raw.count,accessToken:t.raw.token_id})}}]},attributes:i.Z,edit:s.Z,save:e=>{let{attributes:{instagramUser:t}}=e;return t&&(0,r.createElement)("div",null,(0,r.createElement)("a",{href:`https://www.instagram.com/${t}/`,rel:"noopener noreferrer",target:"_blank"},`https://www.instagram.com/${t}/`))}}},10273:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(59177),a=n(92819),o=n(86989),i=n.n(o),s=n(69307),l=n(65736),c=n(14937),u=n(63729);const __=l.__;function p(e){let{accessToken:t,noticeOperations:n,selectedAccount:o,setAttributes:l,setImages:p,setSelectedAccount:d}=e;const[m,h]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),[b,v]=(0,s.useState)([]),k=(0,u.Z)();(0,s.useEffect)((()=>{!t&&k&&(g(!0),i()({path:"/wpcom/v2/instagram-gallery/connections"}).then((e=>{g(!1),v(e)})).catch((()=>{g(!1),v([])})))}),[t,k]),(0,s.useEffect)((()=>{c.D===o||(0,a.find)(b,{token:o})||d(void 0)}),[o,d,b]);return{connectToService:()=>{n.removeAllNotices(),h(!0),i()({path:"/wpcom/v2/instagram-gallery/connect-url"}).then((e=>{const t=new r.Z;t.open(e,"connect-to-instagram-popup","toolbar=0,location=0,menubar=0,"+t.getScreenCenterSpecs(700,700)),t.on("message",(e=>{let{keyring_id:t}=e;if(h(!1),t){const e=t.toString();l({accessToken:e}),d(e)}})),t.on("close",(e=>{"connect-to-instagram-popup"===e&&h(!1)}))})).catch((()=>{n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),h(!1)}))},disconnectFromService:()=>{n.removeAllNotices(),l({accessToken:void 0,instagramUser:void 0}),p([])},isConnecting:m,isRequestingUserConnections:f,userConnections:b}}},2992:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(86989),a=n.n(r),o=n(9818),i=n(69307),s=n(96483),l=n(63729);function c(){const{isAutoDraft:e}=(0,o.useSelect)((e=>{const{status:t}=e("core/editor").getCurrentPost();return{isAutoDraft:"auto-draft"===t}})),{savePost:t}=(0,o.useDispatch)("core/editor"),[n,r]=(0,i.useState)(),[c,u]=(0,i.useState)(!1),p=(0,l.Z)();return(0,i.useEffect)((()=>{p||n||c||(e?t():(u(!0),a()({path:(0,s.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((e=>{r(e),u(!1)}))))}),[p,e,c,t,n]),{isRequestingWpcomConnectUrl:c,wpcomConnectUrl:n}}},44420:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(14937);const __=s.__;function u(e){let{accessToken:t,noticeOperations:n,setAttributes:a,setSelectedAccount:s}=e;const[u,p]=(0,i.useState)([]),[d,m]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{t&&(n.removeAllNotices(),m(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/instagram-gallery/gallery",{access_token:t,count:c.u})}).then((e=>{let{external_name:t,images:o}=e;if(m(!1),!o||!(0,r.isArray)(o))return n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),p([]),a({accessToken:void 0,instagramUser:void 0}),void s(void 0);(0,r.isEmpty)(o)&&n.createErrorNotice(__("No images were found in your Instagram account.","jetpack")),a({instagramUser:t}),p(o)})).catch((()=>{m(!1),p([]),a({accessToken:void 0,instagramUser:void 0}),s(void 0)})))}),[t,a,s]),{images:u,isLoadingGallery:d,setImages:p}}},66916:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(48355);const a="likes",o={render:r.Z}},48355:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(12238),l=n(9818),c=n(23539);const __=a.__,u=(0,l.withSelect)((e=>{const{getEditedPostAttribute:t}=e("core/editor");return{areLikesEnabled:t("jetpack_likes_enabled")}})),p=(0,l.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{editPost:t}}));t.Z=(0,i.compose)([u,p])((e=>{let{areLikesEnabled:t,editPost:n}=e;return(0,r.createElement)(s.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},(0,r.createElement)(c.Z,null,(0,r.createElement)(o.CheckboxControl,{label:__("Show likes.","jetpack"),checked:t,onChange:e=>{n({jetpack_likes_enabled:e})}})))}))},25887:function(e,t,n){"use strict";n.d(t,{N3:function(){return r},sf:function(){return a},Cw:function(){return o}});const r="processing",a="success",o="error"},50013:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(18417),s=n(25887);const __=a.__;function l(e){let{auditionNotification:t,clearAudition:n,setAttributes:a,emailPlaceholder:l,processingLabel:c,successLabel:u,errorLabel:p,interests:d,signupFieldTag:m,signupFieldValue:h,connectURL:f}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Text Elements","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Email Placeholder","jetpack"),value:l,onChange:e=>{a({emailPlaceholder:e}),n()}})),(0,r.createElement)(o.PanelBody,{title:__("Notifications","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Processing text","jetpack"),value:c,onChange:e=>{a({processingLabel:e}),t(s.N3)}}),(0,r.createElement)(o.TextControl,{label:__("Success text","jetpack"),value:u,onChange:e=>{a({successLabel:e}),t(s.sf)}}),(0,r.createElement)(o.TextControl,{label:__("Error text","jetpack"),value:p,onChange:e=>{a({errorLabel:e}),t(s.Cw)}})),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Groups","jetpack")},(0,r.createElement)(i.Z,{interests:d,onChange:(e,t)=>{const n=[...new Set([...d,e])].filter((n=>!(n===e&&!t)&&n));a({interests:n})}}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},__("Learn about groups","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Signup Location Tracking","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Signup Field Tag","jetpack"),placeholder:__("SIGNUP","jetpack"),value:m,onChange:e=>a({signupFieldTag:e})}),(0,r.createElement)(o.TextControl,{label:__("Signup Field Value","jetpack"),placeholder:__("website","jetpack"),value:h,onChange:e=>a({signupFieldValue:e})}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},__("Learn about signup location tracking","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Connection","jetpack")},(0,r.createElement)(o.ExternalLink,{href:f},__("Manage Connection","jetpack"))))}},58791:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=["submitButtonText","backgroundButtonColor","textButtonColor","submitButtonClasses","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},submitButtonText:{type:"string",default:__("Join my email list","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},submitButtonClasses:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},migrate:e=>{const t=(0,r.omit)(e,i),n={text:(o=e).submitButtonText||__("Join my email list","jetpack"),textColor:o.textButtonColor,customTextColor:o.customTextButtonColor,backgroundColor:o.backgroundButtonColor,customBackgroundColor:o.customBackgroundButtonColor};var o;return[t,[(0,a.createBlock)("jetpack/button",{element:"button",uniqueId:"mailchimp-widget-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,i),Boolean),save:()=>null}},87539:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(89105),c=n.n(l),u=n(65736),p=n(96483),d=n(55609),m=n(52175),h=n(19916),f=n(50013),g=n(63729),b=n(25887);const __=u.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e=(0,g.Z)();if(e){const t={path:"/wpcom/v2/mailchimp",method:"GET"};s()(t).then((t=>{const n=t.connect_url,r="connected"===t.code?1:2;this.setState({currentUserConnected:e,connected:r,connectURL:n})}),(t=>{this.setState({currentUserConnected:e,connected:2,connectURL:null}),this.onError(t.message)}))}else s()({path:(0,p.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((t=>{const n=t;this.setState({currentUserConnected:e,connected:2,connectURL:n})}))})),a()(this,"auditionNotification",(e=>{this.setState({audition:e}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.clearAudition,3e3)})),a()(this,"clearAudition",(()=>{this.setState({audition:null})})),a()(this,"labelForAuditionType",(e=>{const{attributes:t}=this.props,{processingLabel:n,successLabel:r,errorLabel:a}=t;return e===b.N3?n:e===b.sf?r:e===b.Cw?a:null})),a()(this,"roleForAuditionType",(e=>e===b.Cw?"alert":"status")),a()(this,"render",(()=>{const{attributes:e,className:t,notices:n,noticeUI:r,setAttributes:a}=this.props,{audition:i,connected:s,connectURL:l,currentUserConnected:u}=this.state,{emailPlaceholder:p,consentText:g,interests:b,processingLabel:v,successLabel:k,errorLabel:y,preview:E,signupFieldTag:w,signupFieldValue:_}=e,C="wp-block-jetpack-mailchimp",j=(0,o.createElement)(d.Placeholder,{icon:h.qv,notices:n},(0,o.createElement)(d.Spinner,null)),S=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("You need to connect your Mailchimp account and choose an audience in order to start collecting Email subscribers.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l,target:"_blank"},__("Set up Mailchimp form","jetpack")),(0,o.createElement)("div",{className:`${C}-recheck`},(0,o.createElement)(d.Button,{isLink:!0,onClick:this.apiCall},__("Re-check Connection","jetpack")))),x=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("First, you'll need to connect your WordPress.com account.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l},__("Connect to WordPress.com","jetpack"))),T=(0,o.createElement)(m.InspectorControls,null,(0,o.createElement)(f.Q,{auditionNotification:this.auditionNotification,clearAudition:this.clearAudition,emailPlaceholder:p,processingLabel:v,successLabel:k,errorLabel:y,interests:b,setAttributes:this.props.setAttributes,signupFieldTag:w,signupFieldValue:_,connectURL:l})),P=c()(t,{[`${C}_notication-audition`]:i}),N=(0,o.createElement)("div",{className:P},(0,o.createElement)(d.TextControl,{"aria-label":p,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:()=>!1,placeholder:p,title:__("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),(0,o.createElement)(m.InnerBlocks,{template:[[h.Ss.name,h.Ss.attributes]],templateLock:"all"}),(0,o.createElement)(m.RichText,{tagName:"p",placeholder:__("Write consent text","jetpack"),value:g,onChange:e=>a({consentText:e}),inlineToolbar:!0}),i&&(0,o.createElement)("div",{className:`${C}_notification ${C}_${i}`,role:this.roleForAuditionType(i)},this.labelForAuditionType(i))),A=N;return(0,o.createElement)(o.Fragment,null,r,E&&A,!E&&0===s&&j,!E&&2===s&&u&&S,!E&&2===s&&!u&&x,!E&&1===s&&T,!E&&1===s&&N)})),this.state={audition:null,connected:0,connectURL:null,currentUserConnected:null},this.timeout=null}}t.Z=(0,d.withNotices)(v)},19916:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Ss:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(58791),l=n(87539),c=n(57535);const __=a.__,_x=a._x,u="mailchimp",p=(0,r.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(i.G,{transform:"translate(-45.478101,-100.73059)"},(0,r.createElement)(i.G,{transform:"matrix(0.26458333,0,0,0.26458333,15.6741,59.72)"},(0,r.createElement)(i.Path,{d:"m 176.433,197.529 c 0.657,-0.078 1.286,-0.082 1.865,0 0.335,-0.768 0.392,-2.091 0.091,-3.532 -0.447,-2.142 -1.053,-3.438 -2.305,-3.236 -1.252,0.202 -1.298,1.754 -0.85,3.895 0.252,1.205 0.7,2.235 1.199,2.873"}),(0,r.createElement)(i.Path,{d:"m 165.688,199.224 c 0.895,0.393 1.446,0.654 1.661,0.426 0.139,-0.142 0.097,-0.413 -0.117,-0.762 -0.442,-0.721 -1.351,-1.453 -2.316,-1.864 -1.972,-0.849 -4.325,-0.567 -6.14,0.737 -0.599,0.439 -1.167,1.047 -1.086,1.416 0.026,0.119 0.116,0.209 0.326,0.239 0.494,0.056 2.22,-0.816 4.209,-0.938 1.403,-0.086 2.566,0.353 3.462,0.746"}),(0,r.createElement)(i.Path,{d:"m 163.887,200.252 c -1.167,0.184 -1.81,0.569 -2.223,0.926 -0.352,0.308 -0.57,0.649 -0.568,0.888 0.001,0.114 0.05,0.18 0.089,0.213 0.053,0.047 0.116,0.073 0.192,0.073 0.263,0 0.854,-0.237 0.854,-0.237 1.623,-0.581 2.694,-0.51 3.755,-0.39 0.586,0.066 0.864,0.102 0.992,-0.099 0.038,-0.058 0.084,-0.183 -0.033,-0.373 -0.273,-0.443 -1.451,-1.192 -3.057,-1.001"}),(0,r.createElement)(i.Path,{d:"m 172.805,204.025 c 0.792,0.389 1.664,0.236 1.948,-0.341 0.284,-0.577 -0.128,-1.361 -0.92,-1.75 -0.792,-0.389 -1.664,-0.236 -1.948,0.341 -0.284,0.578 0.128,1.361 0.92,1.75"}),(0,r.createElement)(i.Path,{d:"m 177.896,199.576 c -0.643,-0.011 -1.177,0.695 -1.192,1.578 -0.015,0.883 0.495,1.606 1.138,1.617 0.643,0.011 1.177,-0.695 1.192,-1.578 0.015,-0.882 -0.495,-1.606 -1.138,-1.617"}),(0,r.createElement)(i.Path,{d:"m 134.683,215.485 c -0.16,-0.201 -0.423,-0.14 -0.678,-0.08 -0.178,0.042 -0.379,0.088 -0.6,0.085 -0.473,-0.009 -0.874,-0.211 -1.099,-0.557 -0.293,-0.45 -0.276,-1.121 0.047,-1.889 l 0.151,-0.344 c 0.516,-1.158 1.379,-3.095 0.41,-4.941 -0.73,-1.39 -1.92,-2.255 -3.351,-2.437 -1.374,-0.174 -2.788,0.335 -3.69,1.33 -1.423,1.57 -1.646,3.707 -1.371,4.462 0.101,0.276 0.259,0.353 0.373,0.369 0.242,0.032 0.6,-0.144 0.824,-0.747 l 0.064,-0.196 c 0.1,-0.319 0.286,-0.913 0.591,-1.389 0.368,-0.574 0.94,-0.969 1.612,-1.114 0.684,-0.147 1.384,-0.016 1.97,0.368 0.997,0.652 1.381,1.874 0.955,3.039 -0.22,0.603 -0.578,1.756 -0.499,2.703 0.16,1.917 1.339,2.687 2.398,2.769 1.03,0.039 1.75,-0.54 1.932,-0.962 0.107,-0.25 0.017,-0.402 -0.042,-0.467"}),(0,r.createElement)(i.Path,{d:"m 144.475,180.275 c 3.36,-3.882 7.495,-7.257 11.2,-9.152 0.128,-0.066 0.264,0.073 0.195,0.199 -0.294,0.533 -0.861,1.674 -1.04,2.539 -0.028,0.135 0.119,0.236 0.233,0.159 2.305,-1.571 6.314,-3.255 9.831,-3.471 0.151,-0.009 0.224,0.184 0.104,0.277 -0.535,0.41 -1.12,0.978 -1.547,1.552 -0.073,0.098 -0.004,0.238 0.118,0.239 2.469,0.018 5.95,0.882 8.219,2.155 0.153,0.086 0.044,0.383 -0.128,0.344 -3.433,-0.787 -9.052,-1.384 -14.89,0.04 -5.211,1.271 -9.189,3.234 -12.09,5.344 -0.147,0.107 -0.323,-0.087 -0.204,-0.224 z m 16.732,37.612 0.001,0.002 0.002,0.004 z m 13.854,1.635 c 0.1,-0.042 0.168,-0.155 0.157,-0.268 -0.014,-0.139 -0.138,-0.24 -0.277,-0.226 0,0 -7.169,1.061 -13.942,-1.418 0.738,-2.398 2.699,-1.532 5.664,-1.293 5.344,0.319 10.134,-0.462 13.674,-1.478 3.067,-0.88 7.096,-2.616 10.225,-5.086 1.055,2.318 1.428,4.87 1.428,4.87 0,0 0.817,-0.146 1.5,0.274 0.645,0.397 1.118,1.222 0.795,3.356 -0.658,3.986 -2.352,7.222 -5.2,10.199 -1.734,1.866 -3.838,3.488 -6.246,4.668 -1.279,0.672 -2.64,1.253 -4.079,1.722 -10.736,3.507 -21.726,-0.348 -25.268,-8.626 -0.283,-0.622 -0.522,-1.274 -0.71,-1.955 -1.509,-5.455 -0.228,-12 3.778,-16.12 v -0.002 c 0.247,-0.262 0.499,-0.571 0.499,-0.96 0,-0.325 -0.207,-0.668 -0.386,-0.912 -1.402,-2.033 -6.257,-5.497 -5.282,-12.201 0.7,-4.816 4.912,-8.208 8.839,-8.007 l 0.995,0.057 c 1.702,0.101 3.186,0.319 4.587,0.378 2.345,0.102 4.453,-0.239 6.951,-2.32 0.842,-0.702 1.518,-1.311 2.661,-1.504 0.12,-0.021 0.419,-0.128 1.016,-0.1 0.61,0.033 1.19,0.2 1.711,0.547 2.002,1.332 2.286,4.559 2.39,6.919 0.059,1.347 0.222,4.607 0.278,5.543 0.127,2.14 0.69,2.441 1.828,2.816 0.64,0.211 1.234,0.368 2.11,0.614 2.65,0.744 4.221,1.499 5.212,2.469 0.591,0.606 0.866,1.25 0.951,1.864 0.312,2.28 -1.77,5.096 -7.283,7.655 -6.026,2.797 -13.337,3.505 -18.388,2.942 l -1.77,-0.2 c -4.04,-0.544 -6.345,4.677 -3.92,8.255 1.563,2.306 5.82,3.806 10.079,3.807 9.765,0.001 17.271,-4.169 20.063,-7.77 l 0.223,-0.318 c 0.138,-0.207 0.024,-0.321 -0.147,-0.204 -2.281,1.561 -12.413,7.758 -23.251,5.893 0,0 -1.317,-0.217 -2.519,-0.684 -0.955,-0.372 -2.955,-1.292 -3.198,-3.343 8.746,2.705 14.253,0.148 14.253,0.148 z m -48.039,-20.785 c -3.042,0.591 -5.723,2.315 -7.362,4.697 -0.98,-0.817 -2.805,-2.399 -3.128,-3.016 -2.617,-4.97 2.856,-14.632 6.68,-20.089 9.45,-13.485 24.25,-23.692 31.101,-21.84 1.114,0.315 4.803,4.592 4.803,4.592 0,0 -6.849,3.8 -13.2,9.097 -8.558,6.589 -15.022,16.166 -18.895,26.559 z m 5.111,22.805 c -0.46,0.079 -0.93,0.11 -1.404,0.098 -4.577,-0.123 -9.52,-4.243 -10.011,-9.129 -0.543,-5.401 2.217,-9.557 7.103,-10.543 0.584,-0.118 1.29,-0.186 2.051,-0.146 2.738,0.15 6.772,2.252 7.693,8.216 0.816,5.282 -0.48,10.659 -5.432,11.503 z m 61.996,-9.564 c -0.039,-0.139 -0.295,-1.072 -0.646,-2.197 -0.351,-1.126 -0.714,-1.917 -0.714,-1.917 1.408,-2.107 1.433,-3.992 1.245,-5.059 -0.2,-1.323 -0.751,-2.45 -1.861,-3.616 -1.11,-1.165 -3.381,-2.359 -6.572,-3.255 l -1.674,-0.465 c -0.008,-0.069 -0.088,-3.947 -0.16,-5.612 -0.053,-1.204 -0.156,-3.083 -0.739,-4.933 -0.695,-2.505 -1.905,-4.697 -3.416,-6.099 4.17,-4.322 6.773,-9.084 6.766,-13.168 -0.012,-7.855 -9.659,-10.232 -21.548,-5.309 l -2.519,1.069 c -0.011,-0.011 -4.554,-4.468 -4.622,-4.528 -13.555,-11.823 -55.935,35.284 -42.386,46.725 l 2.961,2.509 c -0.768,1.99 -1.07,4.27 -0.823,6.721 0.316,3.149 1.94,6.167 4.573,8.499 2.499,2.214 5.785,3.616 8.973,3.613 5.273,12.151 17.321,19.605 31.447,20.025 15.153,0.45 27.873,-6.66 33.203,-19.432 0.349,-0.896 1.828,-4.935 1.828,-8.501 0,-3.583 -2.026,-5.068 -3.316,-5.068"})))),d={name:"jetpack/button",attributes:{element:"button",text:__("Join my Mailchimp audience","jetpack"),uniqueId:"mailchimp-widget-id"}},m={title:__("Mailchimp","jetpack"),icon:{src:p,foreground:(0,c.m)()},description:__("A form enabling readers to join a Mailchimp audience.","jetpack"),category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:l.Z,save:()=>(0,r.createElement)(o.InnerBlocks.Content,null),example:{attributes:{preview:!0},innerBlocks:[d]},deprecated:[s.Z]}},18417:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(55609);class c extends o.Component{constructor(){super(...arguments),a()(this,"state",{interest_categories:[]}),a()(this,"retrieveGroups",(()=>{s()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((e=>{const{interest_categories:t}=e;this.setState({interest_categories:t})}))})),a()(this,"render",(()=>{const{interest_categories:e}=this.state,{interests:t,onChange:n}=this.props;return(0,o.createElement)(o.Fragment,null,e&&(e||[]).map((e=>e.interests.map((e=>(0,o.createElement)(l.CheckboxControl,{label:e.name,value:e.id,checked:t.includes(e.id),onChange:t=>n(e.id,t),key:e.id}))))))}))}componentDidMount(){this.retrieveGroups()}}t.Z=c,c.defaultProps={interests:[],onChange:()=>null}},36710:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(1595);const __=a.__;class s extends r.Component{render(){const{onClose:e,onAddPoint:t,onError:n,apiKey:a}=this.props;return(0,r.createElement)(o.Button,{className:"component__add-point"},__("Add marker","jetpack"),(0,r.createElement)(o.Popover,{className:"component__add-point__popover",position:"bottom center"},(0,r.createElement)(o.Button,{className:"component__add-point__close",onClick:e},(0,r.createElement)(o.Dashicon,{icon:"no"})),(0,r.createElement)(i.Z,{onAddPoint:t,label:__("Add a location","jetpack"),apiKey:a,onError:n})))}}s.defaultProps={onAddPoint:()=>{},onClose:()=>{},onError:()=>{}},t.Z=s},79267:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(55609),c=n(81041),u=n(77714),p=n(73242),d=n(87929),m=n(45388);const __=i.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),a()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),a()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),a()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:n}=this.state,{index:r}=n.props,a=t.slice(0);(0,s.assign)(a[r],e),this.props.onSetPoints(a)})),a()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:n}=t.props,r=e.slice(0);r.splice(n,1),this.props.onSetPoints(r),this.setState({activeMarker:null})})),a()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,n=this.mapRef.current;if(e)n.style.height=e+"px";else{const e=n.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,r=Math.min(e*(3/4),t);n.style.height=r+"px"}t.resize(),this.setBoundsByMarkers()})),a()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),a()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:n,points:r,zoom:a}=this.props,{map:o,activeMarker:i,mapboxgl:s,zoomControl:l,boundsSetProgrammatically:c}=this.state;if(!o)return;if(r.length&&e?o.dragPan.disable():o.dragPan.enable(),!r.length)return;if(i)return;const u=new s.LngLatBounds;if(r.forEach((e=>{u.extend([e.coordinates.longitude,e.coordinates.latitude])})),t(u.getCenter()),r.length>1){o.fitBounds(u,{padding:{top:80,bottom:80,left:40,right:40}}),this.setState({boundsSetProgrammatically:!0});try{o.removeControl(l)}catch(e){}}else{if(o.setCenter(u.getCenter()),c){const e=12;o.setZoom(e),n(e)}else o.setZoom(parseInt(a,10));o.addControl(l),this.setState({boundsSetProgrammatically:!1})}})),a()(this,"scriptsLoaded",(()=>{const{mapCenter:e,points:t}=this.props;this.setState({loaded:!0}),t.length,this.initMap(e)})),a()(this,"googlePoint2Mapbox",(e=>e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0})),this.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},this.mapRef=(0,o.createRef)(),this.debouncedSizeMap=(0,s.debounce)(this.sizeMap,250)}render(){const{points:e,admin:t,children:n,markerColor:r}=this.props,{map:a,activeMarker:i,mapboxgl:p}=this.state,{onMarkerClick:d,deleteActiveMarker:m,updateActiveMarker:h}=this,f=(0,s.get)(i,"props.point")||{},{title:g,caption:b}=f,v=o.Children.map(n,(e=>{if("AddPoint"===(0,s.get)(e,"props.tagName"))return e})),k=a&&p&&e.map(((e,t)=>(0,o.createElement)(c.Z,{mapRef:this.mapRef,key:t,point:e,index:t,map:a,mapboxgl:p,markerColor:r,onClick:d}))),y=p&&(0,o.createElement)(u.Z,{activeMarker:i,map:a,mapboxgl:p,unsetActiveMarker:()=>this.setState({activeMarker:null})},i&&t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.TextControl,{label:__("Marker Title","jetpack"),value:g,onChange:e=>h({title:e})}),(0,o.createElement)(l.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:__("Marker Caption","jetpack"),value:b,rows:"2",tag:"textarea",onChange:e=>h({caption:e})}),(0,o.createElement)(l.Button,{onClick:m,className:"wp-block-jetpack-map__delete-btn"},(0,o.createElement)(l.Dashicon,{icon:"trash",size:"15"})," ",__("Delete Marker","jetpack"))),i&&!t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h3",null,g),(0,o.createElement)("p",null,b)));return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},k),y,v)}componentDidMount(){const{apiKey:e}=this.props;e&&this.loadMapLibraries()}componentWillUnmount(){this.debouncedSizeMap.cancel(),window.removeEventListener("resize",this.debouncedSizeMap)}componentDidUpdate(e){const{admin:t,apiKey:n,children:r,points:a,mapStyle:o,mapDetails:i,scrollToZoom:s,showFullscreenButton:l}=this.props,{map:c,fullscreenControl:u}=this.state;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),o===e.mapStyle&&i===e.mapDetails||c.setStyle(this.getMapStyle()),s!==e.scrollToZoom&&(s?c.scrollZoom.enable():c.scrollZoom.disable()),l!==e.showFullscreenButton&&(l?(c.addControl(u),t&&u._fullscreenButton&&(u._fullscreenButton.disabled=!0)):c.removeControl(u))}getMapStyle(){const{mapStyle:e,mapDetails:t}=this.props;return(0,p.h)(e,t)}getMapType(){const{mapStyle:e}=this.props;switch(e){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";default:return"ROADMAP"}}loadMapLibraries(){const{apiKey:e}=this.props,{currentWindow:t}=(0,d.bL)(this.mapRef.current),n={"mapbox-gl-js":()=>{(0,d.Dz)(t,"mapboxgl").then((t=>{t.accessToken=e,this.setState({mapboxgl:t},this.scriptsLoaded)}))}};(0,d.Pp)(m,n,this.mapRef.current)}initMap(e){const{mapboxgl:t}=this.state,{zoom:n,onMapLoaded:r,onError:a,scrollToZoom:o,showFullscreenButton:i,admin:s}=this.props;let l=null;try{l=new t.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(n,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(e){return void a("mapbox_error",e.message)}o||l.scrollZoom.disable();const c=new t.FullscreenControl;l.on("error",(e=>{a("mapbox_error",e.error.message)}));const u=new t.NavigationControl({showCompass:!1,showZoom:!0});l.on("zoomend",(()=>{this.props.onSetZoom(l.getZoom())})),l.on("moveend",(()=>{const{onSetMapCenter:e,points:t}=this.props;t.length<1&&e(l.getCenter())})),l.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:l,zoomControl:u,fullscreenControl:c},(()=>{this.debouncedSizeMap(),l.addControl(u),i&&(l.addControl(c),s&&c._fullscreenButton&&(c._fullscreenButton.disabled=!0)),this.mapRef.current.addEventListener("alignmentChanged",this.debouncedSizeMap),l.resize(),r(),this.setState({loaded:!0}),window.addEventListener("resize",this.debouncedSizeMap)}))}}h.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:()=>{},onSetMapCenter:()=>{},onMapLoaded:()=>{},onMarkerClick:()=>{},onError:()=>{},markerColor:"red",apiKey:null,mapCenter:{}},t.Z=h},20522:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(41626),l=n(17885);const __=a.__;t.Z=e=>{let{attributes:t,setAttributes:n,state:a,setState:c,context:u,mapRef:p,instanceId:d,minHeight:m,removeAPIKey:h,updateAPIKey:f,setPointVisibility:g}=e;const b=e=>{n({align:e}),setTimeout(p.current.sizeMap,0)};return"toolbar"===u?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockAlignmentToolbar,{value:t.align,onChange:b,controls:["center","wide","full"]}),(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:l.X.markerIcon,label:__("Add a marker","jetpack"),onClick:g}))):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.PanelColorSettings,{title:__("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:t.markerColor,onChange:e=>n({markerColor:e}),label:__("Marker Color","jetpack")}]}),(0,r.createElement)(o.PanelBody,{title:__("Map Settings","jetpack")},(0,r.createElement)(o.BaseControl,{label:__("Height in pixels","jetpack"),id:`block-jetpack-map-height-input-${d}`},(0,r.createElement)("input",{type:"number",id:`block-jetpack-map-height-input-${d}`,className:"wp-block-jetpack-map__height_input",onChange:e=>{n({mapHeight:e.target.value}),e.target!==document.activeElement&&setTimeout(p.current.sizeMap,0)},onBlur:e=>{const{mapHeight:r}=t;let a=parseInt(e.target.value,10);isNaN(a)?a=null:null==r?a=p.current.mapRef.current.offsetHeight:a<m&&(a=m),n({mapHeight:a}),setTimeout(p.current.sizeMap,0)},value:t.mapHeight||"",min:m,step:"10"})),(0,r.createElement)(o.RangeControl,{label:__("Zoom level","jetpack"),help:t.points.length>1&&__("The default zoom level cannot be changed when there are two or more markers on the map.","jetpack"),disabled:t.points.length>1,value:t.zoom,onChange:e=>{n({zoom:e}),setTimeout(p.current.updateZoom,0)},min:0,max:22}),(0,r.createElement)(o.ToggleControl,{label:__("Show street names","jetpack"),checked:t.mapDetails,onChange:e=>n({mapDetails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Scroll to zoom","jetpack"),help:__("Allow the map to capture scrolling, and zoom in or out.","jetpack"),checked:t.scrollToZoom,onChange:e=>n({scrollToZoom:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Show Fullscreen Button","jetpack"),help:__("Allow your visitors to display the map in fullscreen.","jetpack"),checked:t.showFullscreenButton,onChange:e=>n({showFullscreenButton:e})})),t.points.length?(0,r.createElement)(o.PanelBody,{title:__("Markers","jetpack"),initialOpen:!1},(0,r.createElement)(s.Z,{points:t.points,onChange:e=>{n({points:e})}})):null,(0,r.createElement)(o.PanelBody,{title:__("Mapbox Access Token","jetpack"),initialOpen:!1},(0,r.createElement)(o.TextControl,{help:"wpcom"===a.apiKeySource&&(0,r.createElement)(r.Fragment,null,__("You can optionally enter your own access token.","jetpack")," ",(0,r.createElement)(o.ExternalLink,{href:"https://account.mapbox.com/access-tokens/"},__("Find it on Mapbox","jetpack"))),label:__("Mapbox Access Token","jetpack"),value:a.apiKeyControl,onChange:e=>c({apiKeyControl:e})}),(0,r.createElement)(o.ButtonGroup,null,(0,r.createElement)(o.Button,{type:"button",onClick:f,disabled:!a.apiKeyControl||a.apiKeyControl===a.apiKey},__("Update Token","jetpack")),(0,r.createElement)(o.Button,{type:"button",onClick:h,disabled:"wpcom"===a.apiKeySource,isSecondary:!0},__("Remove Token","jetpack")))))}},86124:function(e,t,n){"use strict";var r=n(98372);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,showFullscreenButton:!0,className:t}},save:r.Z}},98372:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u}=e,p=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),d=t?`align${t}`:null;return(0,r.createElement)("div",{className:d,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null},o.length>0&&(0,r.createElement)("ul",null,p))}}t.Z=a},91576:function(e,t,n){"use strict";var r=n(51694);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,className:t}},save:r.Z}},51694:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u,showFullscreenButton:p}=e,d=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),m=t?`align${t}`:null;return(0,r.createElement)("div",{className:m,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null,"data-show-fullscreen-button":p||null},o.length>0&&(0,r.createElement)("ul",null,d))}}t.Z=a},70312:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(65736),c=n(55609),u=n(52175),p=n(36710),d=n(79267),m=n(20522),h=n(17885),f=n(96406),g=n(94333),b=n(9818),v=n(98085),k=n(14499);const __=l.__,y={top:!1,right:!1,bottom:!0,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1};class E extends o.Component{constructor(){super(...arguments),a()(this,"geoCodeAddress",((e,t)=>{t&&(0,k.P)(e,t).then((e=>{if(e.features?.length){const t=e.features[0],n=[{title:t.text,placeTitle:t.text,caption:t.place_name,id:t.id,coordinates:{latitude:t.center[1],longitude:t.center[0]}}];this.props.setAttributes({points:n})}else this.onError(null,__("Could not find the coordinates of the provided address. Displaying default location. Feel free to add the location manually.","jetpack"))})).catch((e=>this.onError(null,e.message)))})),a()(this,"componentDidUpdate",(e=>{const t=this.props.attributes?.address,n=e.attributes?.address;t&&n!==t&&this.geoCodeAddress(t,this.state.apiKey)})),a()(this,"addPoint",(e=>{const{attributes:t,setAttributes:n}=this.props,{points:r}=t,a=r.slice(0);let o=!1;r.map((t=>{t.id===e.id&&(o=!0)})),o||(a.push(e),n({points:a}),this.setState({addPointVisibility:!1}))})),a()(this,"setPointVisibility",(()=>{this.setState({addPointVisibility:!0})})),a()(this,"updateAPIKeyControl",(e=>{this.setState({apiKeyControl:e.target.value})})),a()(this,"updateAPIKey",(()=>{const{noticeOperations:e}=this.props,{apiKeyControl:t}=this.state;e.removeAllNotices(),t&&this.apiCall(t,"POST")})),a()(this,"removeAPIKey",(()=>{this.apiCall(null,"DELETE")})),a()(this,"onError",((e,t)=>{const{noticeOperations:n}=this.props;n.removeAllNotices(),n.createErrorNotice(t)})),a()(this,"onMapResize",((e,t,n,r)=>{const{onResizeStop:a,setAttributes:o}=this.props;a();o({mapHeight:parseInt(this.mapRef.current.mapRef.current.offsetHeight+r.height,10)}),setTimeout(this.mapRef.current.sizeMap,0)})),this.state={addPointVisibility:!1,apiState:0},this.mapRef=(0,o.createRef)()}apiCall(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";return new Promise(((n,r)=>{const{noticeOperations:a}=this.props,o="/wpcom/v2/service-api-keys/mapbox",i=e?{path:o,method:t,data:{service_api_key:e}}:{path:o,method:t};this.setState({apiRequestOutstanding:!0},(()=>{s()(i).then((e=>{let{service_api_key:t,service_api_key_source:r}=e;a.removeAllNotices();const o=t?2:1,i="wpcom"===r?"":t;this.setState({apiState:o,apiKey:t,apiKeyControl:i,apiKeySource:r,apiRequestOutstanding:!1}),n()}),(e=>{let{message:t}=e;this.onError(null,t),this.setState({apiState:1,apiRequestOutstanding:!1}),r()}))}))}))}componentDidMount(){this.apiCall().then((()=>{this.props.attributes?.address&&this.geoCodeAddress(this.props.attributes?.address,this.state.apiKey)}))}render(){const{className:e,setAttributes:t,attributes:n,noticeUI:r,notices:a,isSelected:i,instanceId:s,onResizeStart:l}=this.props,{mapDetails:g,points:b,zoom:k,mapCenter:E,markerColor:w,preview:_,mapHeight:C,showFullscreenButton:j}=n,{addPointVisibility:S,apiKey:x,apiKeyControl:T,apiState:P,apiRequestOutstanding:N}=this.state,A=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.BlockControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setPointVisibility:this.setPointVisibility,context:"toolbar",mapRef:this.mapRef})),(0,o.createElement)(u.InspectorControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setState:this.setState,mapRef:this.mapRef,instanceId:s,minHeight:400,removeAPIKey:this.removeAPIKey,updateAPIKey:this.updateAPIKey}))),I=(0,o.createElement)(c.Placeholder,{icon:h.X.icon},(0,o.createElement)(c.Spinner,null)),B=(0,o.createElement)(o.Fragment,null,__("To use the map block, you need an Access Token.","jetpack"),(0,o.createElement)("br",null),(0,o.createElement)(c.ExternalLink,{href:"https://www.mapbox.com"},__("Create an account or log in to Mapbox.","jetpack")),(0,o.createElement)("br",null),__("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),M=(0,o.createElement)(c.Placeholder,{icon:h.X.icon,label:__("Map","jetpack"),notices:a,instructions:B},(0,o.createElement)(o.Fragment,null,(0,o.createElement)("form",null,(0,o.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:N,placeholder:__("Paste Token Here","jetpack"),value:T,onChange:this.updateAPIKeyControl}),(0,o.createElement)(c.Button,{isSecondary:!0,disabled:N||!T||T.length<1,onClick:this.updateAPIKey},__("Set Token","jetpack"))))),R=i&&b.length<=1,L=(0,v.t)(h.X.styles,n.className),Z=(0,o.createElement)(o.Fragment,null,A,(0,o.createElement)("div",{className:e},(0,o.createElement)(c.ResizableBox,{size:{height:C||"auto",width:"100%"},grid:[10,10],showHandle:i,minHeight:400,enable:y,onResizeStart:l,onResizeStop:this.onMapResize},(0,o.createElement)("div",{className:"wp-block-jetpack-map__map_wrapper"},(0,o.createElement)(d.Z,{ref:this.mapRef,scrollToZoom:R,showFullscreenButton:j,mapStyle:L||"default",mapDetails:g,mapHeight:C,points:b,zoom:k,mapCenter:E,markerColor:w,onSetZoom:e=>{t({zoom:e})},admin:!0,apiKey:x,onSetPoints:e=>t({points:e}),onSetMapCenter:e=>t({mapCenter:e}),onMapLoaded:()=>this.setState({addPointVisibility:!b.length}),onMarkerClick:()=>this.setState({addPointVisibility:!1}),onError:this.onError},i&&S&&(0,o.createElement)(p.Z,{onAddPoint:this.addPoint,onClose:()=>this.setState({addPointVisibility:!1}),apiKey:x,onError:this.onError,tagName:"AddPoint"})))))),F=h.X.styles.find((e=>e.name===L)),D=(0,o.createElement)("div",null,(0,o.createElement)("img",{alt:__("Map Preview","jetpack"),src:F?F.preview:f}));return(0,o.createElement)(o.Fragment,null,r,_&&D,!_&&0===P&&I,!_&&1===P&&M,!_&&2===P&&Z)}}t.Z=(0,g.compose)([c.withNotices,(0,b.withDispatch)((e=>{const{toggleSelection:t}=e("core/block-editor");return{onResizeStart:()=>t(!1),onResizeStop:()=>t(!0)}}))])(E)},14499:function(e,t,n){"use strict";function r(e,t){return fetch(`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(e)}.json?access_token=${encodeURIComponent(t)}`).then((e=>e.json()))}n.d(t,{P:function(){return r}})},92828:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(17885),a=n(70312),o=n(18156),i=n(86124),s=n(91576),l=n(57535);const{name:c}=r.X,u={title:r.X.title,icon:{src:r.X.icon,foreground:(0,l.m)()},category:r.X.category,keywords:r.X.keywords,description:r.X.description,attributes:r.X.attributes,supports:r.X.supports,styles:r.X.styles,getEditWrapperProps(e){const{align:t}=e;if(-1!==r.X.validAlignments.indexOf(t))return{"data-align":t}},edit:a.Z,save:o.Z,example:r.X.example,deprecated:[s.Z,i.Z]}},77714:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307);class i extends o.Component{constructor(){super(...arguments),a()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,o.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}i.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null},t.Z=i},1595:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(95319);const c=(0,i.__)("Add a marker…","jetpack");class u extends o.Component{constructor(){super(...arguments),a()(this,"getOptionCompletion",(e=>{const{value:t}=e,n={placeTitle:t.text,title:t.text,caption:t.place_name,id:t.id,coordinates:{longitude:t.geometry.coordinates[0],latitude:t.geometry.coordinates[1]}};return this.props.onAddPoint(n),t.text})),a()(this,"search",(e=>{const{apiKey:t,onError:n}=this.props,r="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(e)+".json?access_token="+t;return new Promise((function(e,t){const a=new XMLHttpRequest;a.open("GET",r),a.onload=function(){if(200===a.status){const t=JSON.parse(a.responseText);e(t.features)}else{const e=JSON.parse(a.responseText);n(e.statusText,e.responseJSON.message),t(new Error("Mapbox Places Error"))}},a.send()}))})),a()(this,"onReset",(()=>{this.textRef.current.value=null})),this.textRef=(0,o.createRef)(),this.containerRef=(0,o.createRef)(),this.state={isEmpty:!0},this.autocompleter={name:"placeSearch",options:this.search,isDebounced:!0,getOptionLabel:e=>(0,o.createElement)("span",null,e.place_name),getOptionKeywords:e=>[e.place_name],getOptionCompletion:this.getOptionCompletion}}componentDidMount(){setTimeout((()=>{this.containerRef.current.querySelector("input").focus()}),50)}render(){const{label:e}=this.props;return(0,o.createElement)("div",{ref:this.containerRef},(0,o.createElement)(s.BaseControl,{label:e,className:"components-location-search"},(0,o.createElement)(l.Z,{completer:this.autocompleter,onReset:this.onReset},(e=>{let{isExpanded:t,listBoxId:n,activeId:r,onChange:a,onKeyDown:i}=e;return(0,o.createElement)(s.TextControl,{placeholder:c,ref:this.textRef,onChange:a,"aria-expanded":t,"aria-owns":n,"aria-activedescendant":r,onKeyDown:i})}))))}}u.defaultProps={onError:()=>{}},t.Z=u},41626:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(55609);class s extends o.Component{constructor(){super(...arguments),a()(this,"onDeletePoint",(e=>{const t=parseInt(e.target.getAttribute("data-id")),{points:n,onChange:r}=this.props,a=n.slice(0);a.splice(t,1),r(a)})),this.state={selectedCell:null}}setMarkerField(e,t,n){const{points:r,onChange:a}=this.props,o=r.slice(0);o[n][e]=t,a(o)}render(){const{points:e}=this.props,t=e.map(((e,t)=>(0,o.createElement)(i.PanelBody,{title:e.placeTitle,key:e.id,initialOpen:!1},(0,o.createElement)(i.TextControl,{label:"Marker Title",value:e.title,onChange:e=>this.setMarkerField("title",e,t)}),(0,o.createElement)(i.TextareaControl,{label:"Marker Caption",value:e.caption,rows:"3",onChange:e=>this.setMarkerField("caption",e,t)}),(0,o.createElement)(i.Button,{"data-id":t,onClick:this.onDeletePoint,className:"component__locations__delete-btn"},(0,o.createElement)(i.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))));return(0,o.createElement)("div",{className:"component__locations"},(0,o.createElement)(i.Panel,{className:"component__locations__panel"},t))}}s.defaultProps={points:Object.freeze([]),onChange:()=>{}},t.Z=s},95319:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819),p=n(39630),d=n(94333);const __=l.__,_n=l._n;function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;const n=[];for(let r=0;r<e.length;r++){const a=e[r];let{keywords:o=[]}=a;if("string"==typeof a.label&&(o=[...o,a.label]),n.push(a),n.length===t)break}return n}class h extends o.Component{static getInitialState(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}constructor(){super(...arguments),a()(this,"select",(e=>{const{completer:t}=this.props;(t.getOptionCompletion||{})(e),this.reset()})),a()(this,"reset",(()=>{this.setState(this.constructor.getInitialState())})),a()(this,"onChange",(e=>{const{completer:t}=this.props,{options:n}=this.state;if(!e)return void this.reset();t&&(t.isDebounced?this.debouncedLoadOptions(t,e):this.loadOptions(t,e));const r=t?m(n):[];t&&this.setState({selectedIndex:0,filteredOptions:r,query:e})})),a()(this,"onKeyDown",(e=>{const{isOpen:t,selectedIndex:n,filteredOptions:r}=this.state;if(!t)return;let a;switch(e.keyCode){case p.UP:a=(0===n?r.length:n)-1,this.setState({selectedIndex:a});break;case p.DOWN:a=(n+1)%r.length,this.setState({selectedIndex:a});break;case p.ENTER:this.select(r[n]);break;case p.LEFT:case p.RIGHT:case p.ESCAPE:return void this.reset();default:return}e.preventDefault(),e.stopPropagation()})),this.debouncedLoadOptions=(0,u.debounce)(this.loadOptions,250),this.state=this.constructor.getInitialState()}componentWillUnmount(){this.debouncedLoadOptions.cancel()}handleFocusOutside(){this.reset()}loadOptions(e,t){const{options:n}=e,r=this.activePromise=Promise.resolve("function"==typeof n?n(t):n).then((t=>{if(r!==this.activePromise)return;const n=t.map(((t,n)=>({key:`${n}`,value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}))),a=m(n),o=a.length===this.state.filteredOptions.length?this.state.selectedIndex:0;this.setState({options:n,filteredOptions:a,selectedIndex:o,isOpen:a.length>0}),this.announce(a)}))}announce(e){const{debouncedSpeak:t}=this.props;t&&(e.length?t((0,l.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(__("No results.","jetpack"),"assertive"))}render(){const{onChange:e,onKeyDown:t}=this,{children:n,instanceId:r,completer:a}=this.props,{selectedIndex:i,filteredOptions:l}=this.state,{key:p=""}=l[i]||{},{className:d}=a,m=l.length>0,h=m?`components-autocomplete-listbox-${r}`:null,f=m?`components-autocomplete-item-${r}-${p}`:null;return(0,o.createElement)("div",{className:"components-autocomplete"},n({isExpanded:m,listBoxId:h,activeId:f,onChange:e,onKeyDown:t}),m&&(0,o.createElement)(c.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},(0,o.createElement)("div",{id:h,role:"listbox",className:"components-autocomplete__results"},(0,u.map)(l,((e,t)=>(0,o.createElement)(c.Button,{key:e.key,id:`components-autocomplete-item-${r}-${e.key}`,role:"option","aria-selected":t===i,disabled:e.isDisabled,className:s()("components-autocomplete__result",d,{"is-selected":t===i}),onClick:()=>this.select(e)},e.label))))))}}t.Z=(0,d.compose)([c.withSpokenMessages,d.withInstanceId,c.withFocusOutside])(h)},81041:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(87929);class s extends o.Component{constructor(){super(...arguments),a()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),a()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:n,markerColor:r,mapRef:a}=this.props,{handleClick:o}=this,s=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:l}=(0,i.bL)(a.current),c=this.marker?this.marker.getElement():l.createElement("div");this.marker?this.marker.setLngLat(s):(c.className="wp-block-jetpack-map-marker",this.marker=new n.Marker(c).setLngLat(s).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",o)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+r+'" mask="url(#c)"/></g></svg>'}render(){return null}}s.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}},t.Z=s},73242:function(e,t,n){"use strict";function r(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}n.d(t,{h:function(){return r}})},18156:function(e,t,n){"use strict";var r=n(69307),a=n(17885),o=n(98085);class i extends r.Component{render(){const{attributes:e}=this.props,{align:t,className:n,mapDetails:i,points:s,zoom:l,mapCenter:c,markerColor:u,scrollToZoom:p,mapHeight:d,showFullscreenButton:m}=e,h=(0,o.t)(a.X.styles,n),f=s.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),g=t?`align${t}`:null;return(0,r.createElement)("div",{className:g,"data-map-style":h,"data-map-details":i,"data-points":JSON.stringify(s),"data-zoom":l,"data-map-center":JSON.stringify(c),"data-marker-color":u,"data-scroll-to-zoom":p||null,"data-map-height":d||null,"data-show-fullscreen-button":m||null},s.length>0&&(0,r.createElement)("ul",null,f))}}t.Z=i},17885:function(e,t,n){"use strict";n.d(t,{X:function(){return c}});var r=n(69307),a=n(65736),o=n(56932),i=n(45107),s=n(65765),l=n(34140);const __=a.__,_x=a._x,c={name:"map",prefix:"jetpack",title:__("Map","jetpack"),icon:(0,r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},(0,r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"embed",keywords:[_x("maps","block search term","jetpack"),_x("location","block search term","jetpack"),_x("navigation","block search term","jetpack")],description:__("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},address:{type:"string",default:""},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},supports:{defaultStylePicker:!1,html:!1},styles:[{name:"default",label:__("Basic","jetpack"),preview:o,isDefault:!0},{name:"black_and_white",label:__("Black and white","jetpack"),preview:i},{name:"satellite",label:__("Satellite","jetpack"),preview:s},{name:"terrain",label:__("Terrain","jetpack"),preview:l}],validAlignments:["center","wide","full"],markerIcon:(0,r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},(0,r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},(0,r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),(0,r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},81092:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(52175),u=n(94333),p=n(9818),d=n(4822);const __=l.__,m="editor",h="preview";class f extends o.Component{constructor(){super(...arguments),a()(this,"input",null),a()(this,"state",{activePanel:m}),a()(this,"bindInput",(e=>{this.input=e})),a()(this,"updateSource",(e=>this.props.setAttributes({source:e}))),a()(this,"handleKeyDown",(e=>{const{attributes:t,removeBlock:n}=this.props,{source:r}=t;8===e.keyCode&&""===r&&(n(),e.preventDefault())})),a()(this,"toggleMode",(e=>()=>this.setState({activePanel:e})))}componentDidUpdate(e){e.isSelected&&!this.props.isSelected&&this.state.activePanel===h&&this.toggleMode(m)(),!e.isSelected&&this.props.isSelected&&this.state.activePanel===m&&this.input&&this.input.focus()}isEmpty(){const e=this.props.attributes.source;return!e||""===e.trim()}renderToolbarButton(e,t){const{activePanel:n}=this.state,{className:r}=this.props,a=s()(r,"components-button components-tab-button",{"is-pressed":n===e});return(0,o.createElement)("button",{className:a,onClick:this.toggleMode(e)},(0,o.createElement)("span",null,t))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{source:r}=e,{activePanel:a}=this.state;return!n&&this.isEmpty()?(0,o.createElement)("p",{className:`${t}__placeholder`},__("Write your _Markdown_ **here**…","jetpack")):(0,o.createElement)("div",{className:t},(0,o.createElement)(c.BlockControls,null,(0,o.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton(m,__("Markdown","jetpack")),this.renderToolbarButton(h,__("Preview","jetpack")))),a!==h&&n?(0,o.createElement)(c.PlainText,{className:`${t}__editor`,onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":__("Markdown","jetpack"),innerRef:this.bindInput,value:r}):(0,o.createElement)(d.Z,{className:`${t}__preview`,source:r}))}}t.Z=(0,u.compose)([(0,p.withSelect)((e=>({currentBlockId:e("core/block-editor").getSelectedBlockClientId()}))),(0,p.withDispatch)(((e,t)=>{let{currentBlockId:n}=t;return{removeBlock:()=>e("core/block-editor").removeBlocks(n)}}))])(f)},7882:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(58014),s=n(81092),l=n(27279),c=n(57535),u=n(20510);const __=a.__,_x=a._x,p="markdown",d=__("Try Markdown","jetpack"),m=__("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},(0,r.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),(0,r.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),f=(0,i.Wp)()||(0,i.Ug)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",g={title:__("Markdown","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Use regular characters and punctuation to style text, links, and lists.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:f},__("Support reference","jetpack"))),icon:{src:h,foreground:(0,c.m)()},category:(0,u.Z)("text","formatting"),keywords:[_x("formatting","block search term","jetpack"),_x("syntax","block search term","jetpack"),_x("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:s.Z,save:l.Z,example:{attributes:{source:`## ## ${d}\n\n${m}`}}}},4822:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(69472),i=n.n(o);const __=a.__,s=new(i()),l=e=>{if("A"===e.target.nodeName){window.confirm(__("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault()}};t.Z=e=>{let{className:t,source:n=""}=e;return(0,r.createElement)(r.RawHTML,{className:t,onClick:l},n.length?s.render(n):"")}},27279:function(e,t,n){"use strict";var r=n(69307),a=n(4822);t.Z=e=>{let{attributes:t,className:n}=e;return(0,r.createElement)(a.Z,{className:n,source:t.source})}},11868:function(e,t,n){"use strict";n.d(t,{V1:function(){return i},vW:function(){return s},jn:function(){return l},Eo:function(){return c},fL:function(){return u},ez:function(){return m}});var r=n(65736),a=n(9818),o=n(92819);const __=r.__,i=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],s=i.map((e=>e.value));const l={name:"button",label:__("Button (210 x 113 pixels)","jetpack")},c=e=>(0,o.compact)([{name:"standard",label:__("Standard (224 x 301 pixels)","jetpack"),isDefault:!0},{name:"tall",label:__("Tall (288 x 490 pixels)","jetpack")},{name:"wide",label:__("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&l]),u=e=>c(e).map((e=>e.name)),{siteLocale:p}=(0,a.select)("core/block-editor").getSettings(),d=!(0,o.isEmpty)(p)&&s.includes(p)?p:"en-US",m={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:u()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:d,type:"string",validValues:s},newtab:{default:!1,type:"boolean"},negativeMargin:{default:!1,type:"boolean"}}},65618:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,supports:{align:!0,html:!1},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)(r.Fragment,null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},77583:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,migrate:e=>{const{style:t,className:n}=e,r="standard"===t?"":`is-style-${t}`;return{...e,className:n?`${n} ${r}`:r}},isEligible:e=>{let{style:t,className:n}=e;return!(!t||"standard"===t)&&(!n||-1===n.indexOf("is-style-"))},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},97372:function(e,t,n){"use strict";var r=n(69307),a=(n(86841),n(89105)),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(4981),p=n(12087),d=n(58014),m=n(70718),h=n(18746),f=n(11868),g=n(14087),b=n(98085),v=n(88707);const __=c.__;t.Z=(0,l.withNotices)((function(e){let{attributes:t,className:n,clientId:a,isSelected:k,name:y,noticeOperations:E,noticeUI:w,setAttributes:_}=e;const C=(0,u.getBlockDefaultClassName)(y),j=(0,g.S)(f.ez,t);(0,i.isEqual)(j,t)||_(j);const{align:S,rid:x,iframe:T,domain:P,lang:N,newtab:A,negativeMargin:I}=t,B=(0,i.isEmpty)(x),M=(0,b.t)((0,f.Eo)(),t.className),R=(0,b.t)((0,f.Eo)(x),t.className),L=(0,h.Z)(R),Z=(0,i.isEqual)(x,["1"]);(0,r.useEffect)((()=>{if(E.removeAllNotices(),!B&&!Z&&"wide"===R&&"wide"!==S&&"full"!==S){const e=(0,r.createElement)(r.Fragment,null,__('With the OpenTable block you may encounter display issues if you use its "wide" style with anything other than "wide" or "full" alignment. The wide display style may also not work well on smaller screens.',"jetpack"));E.createNotice({status:"warning",content:e})}}),[Z,S,B,x,R]),(0,r.useEffect)((()=>{"button"===M&&Array.isArray(x)&&x.length>1&&_({className:"",style:""})}),[x,M,_]),(0,r.useEffect)((()=>{k&&(Array.isArray(x)&&x.length>1?(0,u.unregisterBlockStyle)("jetpack/opentable",["button"]):(0,u.registerBlockStyle)("jetpack/opentable",f.jn))}),[k,x]),(0,r.useEffect)((()=>{"wide"===L&&"wide"===S&&_({align:""}),"wide"===R&&L&&R!==L&&_({align:"wide"}),_({style:R})}),[R]);const F=(0,f.fL)(x),D=e=>x.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e],O=e=>{Array.isArray(e)?_({rid:e,style:e.length>1&&"button"===R?"standard":R}):(e=>{const t=(0,v.CC)(e);t||(E.removeAllNotices(),E.createErrorNotice((0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,__("We ran into an issue","jetpack")),(0,r.createElement)("br",null),__("Please ensure this embed matches the one from your OpenTable account","jetpack"))));const n=(0,g.S)(f.ez,t);_(n),E.removeAllNotices()})(e)},z=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.InspectorAdvancedControls,null,(0,r.createElement)(l.ToggleControl,{label:__("Load the widget in an iFrame (Recommended)","jetpack"),checked:T,onChange:()=>_({iframe:!T}),className:"is-opentable"}),"button"===R&&(0,r.createElement)(l.ToggleControl,{label:__("Remove button margin","jetpack"),checked:I,onChange:()=>_({negativeMargin:!I})})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(l.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(m.Z,{rids:x,onChange:O}),(0,r.createElement)(l.SelectControl,{label:__("Language","jetpack"),value:N,onChange:e=>_({lang:e}),options:f.V1}),(0,r.createElement)(l.ToggleControl,{label:__("Open in a new window","jetpack"),checked:A,onChange:()=>_({newtab:!A})})))),U=(0,d.Wp)()||(0,d.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",$=(0,r.createElement)(l.Placeholder,{label:__("OpenTable Reservation","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:__("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:w},(0,r.createElement)(m.Z,{rids:x,onSubmit:O}),(0,r.createElement)("div",{className:`${C}-placeholder-links`},(0,r.createElement)(l.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},__("Sign up for OpenTable","jetpack")),(0,r.createElement)(l.ExternalLink,{href:U},__("Learn more","jetpack")))),V=o()(n,{[`is-style-${R}`]:!B&&F.includes(R)&&-1===n.indexOf("is-style"),"is-placeholder":B,"is-multi":"multi"===D(R)[0],[`align${S}`]:S,"has-no-margin":I});return(0,r.createElement)(r.Fragment,null,w,(0,r.createElement)("div",{className:V},!B&&z,B?$:(e=>{const[t,n]=D(e||R);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${C}-overlay`}),(0,r.createElement)("iframe",{title:(0,c.sprintf)(
+/* translators: Placeholder is a unique ID. */
+__("Open Table Preview %s","jetpack"),a),scrolling:"no",src:`https://www.opentable.com/widget/reservation/canvas?rid=${(0,i.join)(x,"%2C")}&type=${t}&theme=${n}&overlay=false&domain=${P}&lang=${N&&f.vW.includes(N)?N:"en-US"}&newtab=${A}&disablega=true`}))})()))}))},12087:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},(0,r.createElement)(a.Path,{d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))},5458:function(e,t,n){"use strict";n.d(t,{u2:function(){return m},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(4981),i=n(11868),s=n(65618),l=n(77583),c=n(97372),u=n(12087),p=n(88707),d=n(57535);n(6757);const __=a.__,_x=a._x,m="opentable",h={title:__("OpenTable","jetpack"),description:__("Allow visitors to book a reservation with OpenTable","jetpack"),icon:{src:u.Z,foreground:(0,d.m)()},category:"earn",keywords:[_x("booking","block search term","jetpack"),_x("reservation","block search term","jetpack"),_x("restaurant","block search term","jetpack")],supports:{align:!0,html:!1},edit:c.Z,save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map(((e,t)=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`,key:`${e}-${t}`},`https://www.opentable.com/restref/client/?rid=${e}`))))},attributes:i.ez,styles:(0,i.Eo)(),example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1,negativeMargin:!1}},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&0===e.textContent.indexOf("http")&&(p.pU.test(e.textContent)||p.tC.test(e.textContent)),transform:e=>{const t=(0,p.CC)(e.textContent);return(0,o.createBlock)("jetpack/opentable",t)}}]},deprecated:[s.Z,l.Z]}},70718:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(92819),s=n(55609),l=n(65736),c=n(74701);const __=l.__,_n=l._n;function u(e){const[t,n]=(0,o.useState)(""),r=(0,c.Z)(t,20),[l,u]=(0,o.useState)(e.rids||[]),p=/^(\d+)$|\(\#(\d+)\)$/,d=r.filter((e=>l.indexOf(e.rid.toString())<0)).map((e=>e.name+` (#${e.rid})`)),m=(0,o.createElement)(s.FormTokenField,a()({value:l,suggestions:d,saveTransform:e=>c.$.test(e)?"":e.trim(),onInputChange:n,maxSuggestions:20,label:_n("Restaurant","Restaurants",l.length,"jetpack")},e,{onChange:t=>{const n=t.map((e=>{const t=p.exec(e);return t[1]||t[2]}));u(n),e.onChange&&e.onChange(n)}}));return(0,o.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?(0,o.createElement)("form",{onSubmit:n=>{n.preventDefault(),e.onSubmit((0,i.isEmpty)(l)?t:l)}},m,(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},__("Embed","jetpack"))):m)}},18746:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)();return(0,r.useEffect)((()=>{t.current=e}),[e]),t.current}},74701:function(e,t,n){"use strict";n.d(t,{$:function(){return o},Z:function(){return i}});var r=n(92819),a=n(69307);const o=/^\s*(http[s]?:\/\/|\<script)/;function i(e,t){const[n,i]=(0,a.useState)([]),s=(0,a.useCallback)((0,r.throttle)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((e=>e.json())).then((e=>i((0,r.unionBy)(n,e.items,"rid"))))}),500),[n]);return(0,a.useEffect)((()=>{(0,r.isEmpty)(e)||o.test(e)||s(e)}),[e]),n}},88707:function(e,t,n){"use strict";n.d(t,{tC:function(){return a},pU:function(){return o},CC:function(){return i}});const r=/<\s*script[^>]*src\s*=\s*["']?([^"']*)/i,a=/restref=([0-9]+)&/,o=/rid=([0-9]+)&/,i=e=>{if(e)return(e=>{if(!e)return;let t="";if(t=0===e.indexOf("http")?new URL(e):new URL("http:"+e),!t.host||-1===t.host.indexOf("opentable")||!t.search)return;const n=new URLSearchParams(t.search);let r=n.get("theme");"button"===n.get("type")&&(r=n.get("type"));let a=n.getAll("rid");if(a&&0!==a.length||(a=n.getAll("restref")),!a||0===a.length)return;const o={};a&&(o.rid=a);const i=n.get("domain");i&&(o.domain=i);const s=n.get("iframe");s&&(o.iframe=s);const l=n.get("lang");l&&(o.lang=l);const c=n.get("newtab");return c&&(o.newtab=c),r&&(o.style=r),o})((e=>{const t=e.match(r);return t&&t[1]?t[1]:a.test(e)||o.test(e)?e:void 0})(e))}},79509:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(18161);const __=a.__,_x=a._x;function l(e){let{className:t,onSubmit:n,noticeUI:a,url:l,setUrl:c}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.Placeholder,{label:__("Pinterest","jetpack"),icon:(0,r.createElement)(i.BlockIcon,{icon:s.qv}),notices:a},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),n()}},(0,r.createElement)("input",{type:"url",value:l,className:"components-placeholder__input","aria-label":__("Pinterest URL","jetpack"),placeholder:__("Enter URL to embed here…","jetpack"),onChange:e=>c(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))))}},49362:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981);const __=a.__,_x=a._x;function s(e){let{fallbackUrl:t,onClick:n}=e;return(0,r.createElement)(r.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,r.createElement)(o.Button,{isLink:!0,onClick:()=>{const e=(0,r.createElement)("a",{href:t},t);n((0,i.createBlock)("core/paragraph",{content:(0,r.renderToString)(e)}))}},_x("Convert block to link","button label","jetpack")))}},61989:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(){return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(o.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack")))}},4052:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setEditingState:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},41659:function(e,t,n){"use strict";var r=n(69307),a=n(94991);t.Z={attributes:{url:{type:"string"}},supports:{align:!1,html:!1},save:e=>{let{attributes:t,className:n}=e;const{url:o}=t;return(0,a.t)(o)?(0,r.createElement)("div",{className:n},(0,r.createElement)("a",{"data-pin-do":(0,a.t)(o),href:o})):null}}},81253:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(52175),i=n(94991),s=n(4052),l=n(61989),c=n(79509),u=n(49362),p=n(79474);t.Z=(0,a.withNotices)((function(e){let{attributes:t,isSelected:n,className:d,noticeOperations:m,noticeUI:h,setAttributes:f,onReplace:g}=e;const{url:b}=t,{isFetching:v,pinterestUrl:k,testUrl:y,hasTestUrlError:E}=(0,p.Z)(),[w,_]=(0,r.useState)(!1),[C,j]=(0,r.useState)(""),[S,x]=(0,r.useState)(!1),T=(0,r.useCallback)((()=>(0,r.createElement)(u.Z,{fallbackUrl:C,onClick:g})),[E]),P=()=>{v||(y(C),x(!1))},N=()=>{_(!0)};if((0,r.useEffect)((()=>{b&&y(b)}),[]),(0,r.useEffect)((()=>{!n&&w&&_(!1)}),[n,w]),(0,r.useEffect)((()=>{f({url:k}),m.removeAllNotices(),k&&j(k),E&&m.createErrorNotice(T())}),[k,E,f,T]),v)return(0,r.createElement)(l.Z,null);const A=(0,i.t)(b);if(S||!b||b&&!A)return(0,r.createElement)(c.Z,{className:d,onSubmit:P,noticeUI:h,url:C,setUrl:j});const I=`<a data-pin-do='${A}' href='${b}'></a>`;return(0,r.createElement)("div",{className:d},(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.C,{setEditingState:x})),(0,r.createElement)("div",null,(0,r.createElement)(a.SandBox,{html:I,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:N}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:N})))}))},79474:function(e,t,n){"use strict";var r=n(69307),a=n(87072),o=n(18161);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n]=(0,r.useState)(!1),[i,s]=(0,r.useState)(e),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i&&i!==o.a0&&(n(!0),(0,a.Z)(i).then((e=>{n(!1),s(e),c(!1)})).catch((()=>{n(!1),s(i||void 0),c(!0)})))}),[i]),{isFetching:t,pinterestUrl:i,hasTestUrlError:l,testUrl:s}}},18161:function(e,t,n){"use strict";n.d(t,{Wh:function(){return p},a0:function(){return d},u2:function(){return m},qv:function(){return f},Xd:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(81253),l=n(26981),c=n(57535),u=n(41659);const __=a.__,_x=a._x,p=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,d="https://pinterest.com/anapinskywalker/",m="pinterest",h=__("Pinterest","jetpack"),f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,null,(0,r.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),g={title:h,description:__("Embed a Pinterest pin, board, or user.","jetpack"),icon:{src:f,foreground:(0,c.m)()},category:"embed",keywords:[_x("social","block search term","jetpack"),_x("pinboard","block search term","jetpack"),_x("pins","block search term","jetpack")],supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:s.Z,save:l.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&p.test(e.textContent),transform:e=>(0,i.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}]},example:{attributes:{url:d}},deprecated:[u.Z]}},26981:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;return(0,r.createElement)("a",{href:n},n)}},94991:function(e,t,n){"use strict";n.d(t,{t:function(){return o}});var r=n(96483),a=n(18161);function o(e){if(!a.Wh.test(e))return"";const t=(0,r.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}},45452:function(e,t,n){"use strict";n.d(t,{G:function(){return s},q:function(){return l}});var r=n(12761),a=n(86989),o=n.n(a),i=n(96483);const s=async()=>await o()({path:"/wpcom/v2/podcast-player/track-quantity"}),l=async e=>{let t,n,a,{url:s,guids:l=[],fetchEpisodeOptions:c=!1}=e;try{t=await o()({path:(0,i.addQueryArgs)("/wpcom/v2/podcast-player",{url:s,guids:l,"episode-options":c})})}catch(e){n=e}if(t)return{type:r.u,data:t};try{a=await o()({path:(0,i.addQueryArgs)("/oembed/1.0/proxy",{url:s})})}catch(e){}const u='<a href="'+s+'">'+s+"</a>";if(a&&a.html!==u)return{type:r.b};throw n}},23600:function(e,t,n){"use strict";var r=n(96483),a=n(68039);t.Z={url:{type:"string",validator:r.isUrl},selectedEpisodes:{type:"array",default:[]},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeTitle:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}}},98006:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(76814);const s=(0,r.memo)((e=>{let{playerId:t,title:n,cover:a,link:o,track:i,children:s,showEpisodeTitle:c,showCoverArt:u,showEpisodeDescription:p,colors:d}=e;return u||c||p?(0,r.createElement)("div",{className:"jetpack-podcast-player__header"},(0,r.createElement)("div",{className:"jetpack-podcast-player__current-track-info"},u&&a&&(0,r.createElement)("div",{className:"jetpack-podcast-player__cover"},(0,r.createElement)("img",{className:"jetpack-podcast-player__cover-image",src:a,alt:""})),c&&!!(n||i&&i.title)&&(0,r.createElement)(l,{playerId:t,title:n,link:o,track:i,colors:d})),!!(p&&i&&i.description)&&(0,r.createElement)("p",{id:`${t}__track-description`,className:"jetpack-podcast-player__track-description"},i.description),s):s})),l=(0,r.memo)((e=>{let{playerId:t,title:n,link:a,track:s,colors:l={primary:{name:null,custom:null,classes:""}}}=e;return(0,r.createElement)("h2",{id:`${t}__title`,className:"jetpack-podcast-player__title"},!(!s||!s.title)&&(0,r.createElement)("span",{className:o()("jetpack-podcast-player__current-track-title",l.primary.classes),style:{color:l.primary.custom}},s.title,(0,r.createElement)("a",{className:"jetpack-podcast-player__track-title-link",href:s.link||s.src,target:"_blank",rel:"noopener noreferrer nofollow"},i.Z)),!!(s&&s.title&&n)&&(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"}," - "),!!n&&(0,r.createElement)(c,{title:n,link:a,colors:l}))})),c=(0,r.memo)((e=>{let{title:t,link:n}=e;return(0,r.createElement)("span",{className:"jetpack-podcast-player__podcast-title"},n?(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:n,target:"_blank",rel:"noopener noreferrer nofollow"},t):{title:t})}));t.Z=s},66530:function(e,t,n){"use strict";var r=n(69307),a=n(15111),o=n(15020);const i=(0,r.memo)((e=>{let{playerId:t,tracks:n,selectTrack:i,currentTrack:s,playerState:l,colors:c}=e;return(0,r.createElement)("ol",{className:"jetpack-podcast-player__tracks","aria-labelledby":`jetpack-podcast-player__tracklist-title--${t}`,"aria-describedby":`jetpack-podcast-player__tracklist-description--${t}`},n.map(((e,t)=>{const n=s===t;return(0,r.createElement)(o.Z,{key:e.id,index:t,track:e,selectTrack:i,isActive:n,isPlaying:n&&l===a.Wp,isError:n&&l===a.Vy,colors:c})})))}));t.Z=i},58627:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(25158),u=n(94333),p=n(9818),d=n(15111),m=n(92924),h=n(66530),f=n(98006),g=n(74693),b=n(56551);const __=l.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{currentTrack:0,hasUserInteraction:!1}),a()(this,"recordUserInteraction",(()=>{this.state.hasUserInteraction||this.setState({hasUserInteraction:!0})})),a()(this,"selectTrack",(e=>{const{currentTrack:t}=this.state;if(t===e)return this.recordUserInteraction(),void this.props.toggleMediaSource(this.props.playerId);-1!==t&&this.props.pauseMediaSource(this.props.playerId),this.loadAndPlay(e)})),a()(this,"loadTrack",(e=>{const t=this.getTrack(e);if(!t)return!1;this.state.currentTrack!==e&&this.setState({currentTrack:e});const{title:n,link:r,description:a}=t;return this.props.updateMediaSourceData(this.props.playerId,{title:n,link:r}),(0,c.speak)(
+/* translators: %s is the track title. It describes the current state of the track as "Loading: [track title]". */
+`${(0,l.sprintf)(__("Loading: %s","jetpack"),n)} ${a}`,"assertive"),!0})),a()(this,"loadAndPlay",(e=>{this.recordUserInteraction(),this.loadTrack(e)&&this.props.playMediaSource(this.props.playerId)})),a()(this,"getTrack",(e=>this.props.tracks[e])),a()(this,"handleError",(e=>{if(!this.state.hasUserInteraction){const t=window.navigator.userAgent.match(/Trident\/7\./)?"IE11: Playing sounds in webpages setting is not checked":e;this.setState((()=>{throw new Error(t)}))}this.props.errorMediaSource(this.props.playerId),(0,c.speak)(`${__("Error: Episode unavailable - Open in a new tab","jetpack")}`,"assertive")})),a()(this,"handlePlay",(()=>{this.props.playMediaSource(this.props.playerId),this.setState({hasUserInteraction:!0})})),a()(this,"handlePause",(()=>{this.props.pauseMediaSource(this.props.playerId),this.props.playerState!==d.Vy&&this.props.pauseMediaSource(this.props.playerId)})),a()(this,"handleTimeChange",(e=>{this.props.setMediaSourceCurrentTime(this.props.playerId,e)})),a()(this,"handleJump",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime-5)})),a()(this,"handleSkip",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime+30)})),a()(this,"updateMediaData",(e=>{this.props.updateMediaSourceData(this.props.playerId,{duration:e.target?.duration,domId:e.target?.id})}))}registerPlayer(){const e=this.getTrack(this.state.currentTrack)||{},{playerId:t}=this.props;this.props.registerMediaSource(t,{title:e.title,link:e.link,state:d._5}),this.props.setDefaultMediaSource(t)}componentDidMount(){this.props.playerId&&this.registerPlayer()}componentWillUnmount(){this.props.playerId&&this.props.unregisterMediaSource(this.props.playerId)}componentDidUpdate(e){const t=e=>e?.length?e.map((e=>e.guid)):[],n=t(this.props.tracks),r=new Set(t(e.tracks));n.length===r.size&&n.every((e=>r.has(e)))||this.loadTrack(0)}static getDerivedStateFromProps(e,t){return e.tracks.length<=t.currentTrack?{...t,currentTrack:0}:null}render(){const{playerId:e,title:t,link:n,cover:r,tracks:a,attributes:i,currentTime:c,playerState:u}=this.props,{itemsToShow:p,primaryColor:d,customPrimaryColor:b,hexPrimaryColor:v,secondaryColor:k,customSecondaryColor:y,hexSecondaryColor:E,backgroundColor:w,customBackgroundColor:_,hexBackgroundColor:C,showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x}=i,{currentTrack:T}=this.state,P=a.slice(0,p),N=this.getTrack(T),A=(0,g.Aq)({primaryColor:d,customPrimaryColor:b,secondaryColor:k,customSecondaryColor:y,backgroundColor:w,customBackgroundColor:_}),I={color:y,backgroundColor:_,"--jetpack-podcast-player-primary":v,"--jetpack-podcast-player-secondary":E,"--jetpack-podcast-player-background":C},B=s()("jetpack-podcast-player",u,A.secondary.classes,A.background.classes);return(0,o.createElement)("section",{className:B,style:I,"aria-labelledby":t||N&&N.title?`${e}__title`:void 0,"aria-describedby":N&&N.description?`${e}__track-description`:void 0,"data-jetpack-iframe-ignore":!0},(0,o.createElement)(f.Z,{playerId:e,title:t,link:n,cover:r,track:this.getTrack(T),showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x,colors:A},(0,o.createElement)(m.Z,{onJumpBack:this.handleJump,onSkipForward:this.handleSkip,trackSource:this.getTrack(T).src,onPlay:this.handlePlay,onPause:this.handlePause,onError:this.handleError,playStatus:u,currentTime:c,onTimeChange:this.handleTimeChange,onMetadataLoaded:this.updateMediaData})),P.length>1&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h4",{id:`jetpack-podcast-player__tracklist-title--${e}`,className:"jetpack-podcast-player--visually-hidden"},(0,l.sprintf)(// translators: %s is the track title.
+__("Playlist: %s","jetpack"),t)),(0,o.createElement)("p",{id:`jetpack-podcast-player__tracklist-description--${e}`,className:"jetpack-podcast-player--visually-hidden"},__("Select an episode to play it in the audio player.","jetpack")),(0,o.createElement)(h.Z,{playerId:e,playerState:u,currentTrack:T,tracks:P,selectTrack:this.selectTrack,colors:A})))}}v.defaultProps={title:"",cover:"",link:"",attributes:{url:null,itemsToShow:5,showCoverArt:!0,showEpisodeTitle:!0,showEpisodeDescription:!0},tracks:[]},t.Z=(0,u.compose)([b.Z,(0,p.withSelect)(((e,t)=>{const{playerId:n}=t,{getMediaSourceCurrentTime:r,getMediaPlayerState:a}=e(d.tT);return{currentTime:r(n),playerState:a(n)}})),(0,p.withDispatch)((e=>{const{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}=e(d.tT);return{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}}))])(v)},86852:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=(0,r.memo)((e=>{let{link:t,title:n,colors:o}=e;return(0,r.createElement)("div",{className:"jetpack-podcast-player__track-error"},__("Episode unavailable. ","jetpack"),t&&(0,r.createElement)("span",{className:o.secondary.classes,style:{color:o.secondary.custom}},(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:t,rel:"noopener noreferrer nofollow",target:"_blank"},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${(0,a.sprintf)(
+/* translators: %s is the title of the track. This text is visually hidden from the screen, but available to screen readers. */
+__("%s:","jetpack"),n)} `),__("Open in a new tab","jetpack"))))}));t.Z=o},71938:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(72086);const __=a.__,i=(0,r.memo)((e=>{let t,n,{isPlaying:a,isError:i,className:s}=e;i?(n="error",
+/* translators: This is text to describe the current state. This will go
+ before the track title, such as "Error: [The title of the track]". */
+t=__("Error:","jetpack")):a&&(n="playing",
+/* translators: Text to describe the current state. This will go before the
+ track title, such as "Playing: [The title of the track]". */
+t=__("Playing:","jetpack"));const l=o[n];return l?(0,r.createElement)("span",{className:`${s} ${s}--${n}`},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${t} `),l):(0,r.createElement)("span",{className:s})}));t.Z=i},15020:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(71938),l=n(86852),c=n(74693);const __=i.__,u=(0,r.memo)((e=>{let{track:t,isActive:n,isPlaying:a,isError:i,selectTrack:u,index:p,colors:d={primary:{},secondary:{}}}=e;const m=(0,c.Gd)("color",d.primary.name),h=(0,c.Gd)("color",d.secondary.name),f=o()("jetpack-podcast-player__track",{"is-active":n,"has-primary":n&&(d.primary.name||d.primary.custom),[m]:n&&!!m,"has-secondary":!n&&(d.secondary.name||d.secondary.custom),[h]:!n&&!!h}),g={};n&&d.primary.custom&&!m?g.color=d.primary.custom:n||!d.secondary.custom||h||(g.color=d.secondary.custom);const
+/* translators: This needs to be a single word with no spaces. It describes
+ the current item in the group. A screen reader will announce it as "[title],
+ current track". */
+b=n?__("track","jetpack"):void 0;return(0,r.createElement)("li",{className:f,style:Object.keys(g).length?g:null},(0,r.createElement)("a",{className:"jetpack-podcast-player__link jetpack-podcast-player__track-link",href:t.link||t.src,role:"button","aria-current":b,onClick:e=>{e.shiftKey||e.metaKey||e.altKey||(e.preventDefault(),u(p))},onKeyDown:e=>{" "===event.key&&(e.preventDefault(),u(p))}},(0,r.createElement)(s.Z,{className:"jetpack-podcast-player__track-status-icon",isPlaying:a,isError:i}),(0,r.createElement)("span",{className:"jetpack-podcast-player__track-title"},t.title),t.duration&&(0,r.createElement)("time",{className:"jetpack-podcast-player__track-duration",dateTime:t.duration},t.duration)),n&&i&&(0,r.createElement)(l.Z,{link:t.link,title:t.title,colors:d}))}));t.Z=u},56551:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736);const __=i.__;function s(e){class t extends o.Component{constructor(){super(...arguments),a()(this,"state",{didError:!1,isIE11AudioIssue:!1}),a()(this,"componentDidCatch",((e,t)=>{this.props.onError(e,t)}))}render(){const{didError:t,isIE11AudioIssue:n}=this.state;return t?(0,o.createElement)("section",{className:"jetpack-podcast-player"},(0,o.createElement)("p",{className:"jetpack-podcast-player__error"},n?__('The podcast player cannot be displayed as your browser settings do not allow for sounds to be played in webpages. This can be changed in your browser’s "Internet options" settings. In the "Advanced" tab you will have to check the box next to "Play sounds in webpages" in the "Multimedia" section. Once you have confirmed that the box is checked, please press "Apply" and then reload this page.',"jetpack"):__("An unexpected error occured within the Podcast Player. Reloading this page might fix the problem.","jetpack",0))):(0,o.createElement)(e,this.props)}}return a()(t,"getDerivedStateFromError",(e=>({didError:!0,isIE11AudioIssue:!!e.message.match(/IE11/)}))),t.defaultProps={onError:()=>{}},t}},12761:function(e,t,n){"use strict";n.d(t,{u:function(){return r},b:function(){return a}});const r="podcast-feed",a="embed-block"},90307:function(e,t,n){"use strict";var r=n(96483),a=n(68039);const o={url:{type:"string",validator:r.isUrl},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}};t.Z={attributes:o,supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},save:()=>null}},87315:function(e,t,n){"use strict";var r=n(69307),a=n(90922),o=n.n(a),i=n(92819),s=n(55609),l=n(94333),c=n(65736),u=n(52175),p=n(9818),d=n(4981),m=n(96483),h=n(14087),f=n(41820),g=n(58014),b=n(23600),v=n(58627),k=n(74693),y=n(45452),E=n(91763),w=n(71420),_=n(12761),C=n(87929);const __=c.__,j=o()("jetpack:podcast-player:edit"),S=(0,g.Wp)()||(0,g.Ug)()?"http://en.support.wordpress.com/wordpress-editor/blocks/podcast-player-block/":"https://jetpack.com/support/jetpack-blocks/podcast-player-block/";t.Z=(0,l.compose)([(0,p.withDispatch)(((e,t)=>{let{clientId:n,attributes:r}=t;return{replaceWithEmbedBlock(){e("core/block-editor").replaceBlock(n,(0,d.createBlock)("core/embed",{url:r.url}))}}})),(0,u.withColors)("backgroundColor",{primaryColor:"color"},{secondaryColor:"color"}),s.withNotices,l.withInstanceId,w.K])((e=>{let{instanceId:t,className:n,attributes:a,setAttributes:o,noticeOperations:{createErrorNotice:l,removeAllNotices:c},noticeUI:p,primaryColor:d,setPrimaryColor:g,secondaryColor:w,setSecondaryColor:x,fallbackTextColor:T,backgroundColor:P,setBackgroundColor:N,fallbackBackgroundColor:A,isSelected:I,replaceWithEmbedBlock:B}=e;const M=(0,h.S)(b.Z,a),{url:R,selectedEpisodes:L,itemsToShow:Z,showCoverArt:F,showEpisodeTitle:D,showEpisodeDescription:O,exampleFeedData:z}=M,U=`jetpack-podcast-player-block-${t}`,[$,V]=(0,r.useState)(!1),[G,H]=(0,r.useState)(10),q=(0,r.useRef)(),[{selectedGuid:W,checkUrl:K,...X},J]=(0,r.useReducer)(E.J,{editedUrl:R||"",isEditing:!R&&!z,isLoading:!1,feedData:z||{},isInteractive:!1,selectedGuid:L?.[0]?.guid,checkUrl:R||""}),Y=(0,r.useMemo)((()=>(0,i.debounce)((e=>{J({type:E.N.START_FETCH}),q.current?.cancel(),q.current=(0,k.W4)((0,y.q)({...e,fetchEpisodeOptions:!0})),q.current.promise.then((t=>{if(c(),t?.isCanceled)j("Block was unmounted during fetch",t);else switch(t?.type){case _.u:return o({url:e.url,selectedEpisodes:e.guids.map((e=>({guid:e})))}),J({type:E.N.FEED_RECEIVED,payload:t.data});case _.b:return B()}}),(e=>{e?.isCanceled?j("Block was unmounted during fetch",e):(j("feed error",e),c(),l(e.message||__("Your podcast couldn't be embedded. Please double check your URL.","jetpack")),J({type:E.N.START_EDITING}))}))}),300)),[B,o,l,c]);(0,r.useEffect)((()=>()=>{q?.current?.cancel?.()}),[]);const Q=(0,r.useCallback)((e=>{null===e||$||((0,C.DT)(["link#mediaelement-css","link#wp-mediaelement-css"],e),V(!0))}),[$]);(0,r.useEffect)((()=>{if(""!==K)return Y({url:K,guids:W?[W]:[]}),()=>q?.current?.cancel?.()}),[Y,K,W]),(0,r.useEffect)((()=>{(0,y.G)().then((e=>{H(e)}))}),[]),(0,r.useEffect)((()=>{W&&1!==Z&&o({itemsToShow:1})}),[W,Z,o]),(0,r.useEffect)((()=>{!I&&X.isInteractive&&J({type:E.N.PREVENT_INTERACTIONS})}),[I,X.isInteractive]);const ee=e=>{if(e.preventDefault(),""===X.editedUrl)return;const t=(0,m.prependHTTP)(X.editedUrl);(0,m.isURL)(t)?(t===K?(J({type:E.N.CLEAR_FEED}),Y({url:K,guids:L[0]?.guid?[L[0].guid]:[]})):J({type:E.N.CHECK_URL,payload:t}),J({type:E.N.FINISH_EDITING,payload:t})):l(__("Your podcast couldn't be embedded. Please double check your URL.","jetpack"))};if(X.isEditing)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Enter your podcast RSS feed URL.","jetpack"),className:"jetpack-podcast-player__placeholder"},(0,r.createElement)("form",{onSubmit:ee},p,(0,r.createElement)(s.TextControl,{type:"text",inputMode:"url",placeholder:__("Enter URL here…","jetpack"),value:X.editedUrl,className:"components-placeholder__input",onChange:e=>J({type:E.N.EDIT_URL,payload:e})}),(0,r.createElement)(s.Button,{isPrimary:!0,type:"submit"},__("Embed","jetpack"))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(s.ExternalLink,{href:S},__("Learn more about embeds","jetpack"))));if(!X.feedData.tracks?.length)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Loading podcast feed…","jetpack")},(0,r.createElement)(s.Spinner,null));const te=(e,t)=>n=>{o({[e]:n}),t(n)};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(u.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarButton,{"aria-label":__("Edit Podcast Feed URL","jetpack"),onClick:()=>J({type:E.N.START_EDITING})},__("Replace","jetpack")))),(0,r.createElement)(u.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Podcast settings","jetpack")},(s.ComboboxControl||0===L.length)&&(0,r.createElement)(s.RangeControl,{label:__("Number of items","jetpack"),value:Z,onChange:e=>o({itemsToShow:W?1:e}),min:1,max:G,required:!0,disabled:!!W}),s.ComboboxControl&&(0,r.createElement)(s.ComboboxControl,{className:"jetpack-podcast-player__episode-selector",value:W,onChange:e=>J({type:E.N.SELECT_EPISODE,payload:e}),options:X.feedData.options||[],label:__("Episode","jetpack"),onFilterValueChange:i.noop}),(0,r.createElement)(s.ToggleControl,{label:__("Show Cover Art","jetpack"),checked:F,onChange:e=>o({showCoverArt:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Title","jetpack"),checked:D,onChange:e=>o({showEpisodeTitle:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Description","jetpack"),checked:O,onChange:e=>o({showEpisodeDescription:e})})),(0,r.createElement)(u.PanelColorSettings,{title:__("Color Settings","jetpack"),colorSettings:[{value:d.color,onChange:te("hexPrimaryColor",g),label:__("Primary Color","jetpack")},{value:w.color,onChange:te("hexSecondaryColor",x),label:__("Secondary Color","jetpack")},{value:P.color,onChange:te("hexBackgroundColor",N),label:__("Background Color","jetpack")}]},(0,r.createElement)(u.ContrastChecker,{isLargeText:!1,textColor:w.color,backgroundColor:P.color,fallbackBackgroundColor:A,fallbackTextColor:T}))),(0,r.createElement)("div",{id:U,className:n,ref:Q},(0,r.createElement)(v.Z,{playerId:U,attributes:M,tracks:X.feedData.tracks,cover:X.feedData.cover,title:X.feedData.title,link:X.feedData.link}),!X.isInteractive&&!X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__interactive-overlay",onMouseUp:()=>J({type:E.N.MAKE_INTERACTIVE})}),X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__loading-overlay"},(0,r.createElement)(s.Spinner,null))))}))},41820:function(e,t,n){"use strict";n.d(t,{E:function(){return r.Z}});var r=n(95506)},76814:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"}));t.Z=o},95506:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,null,(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"})),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,null),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,{transform:"matrix(1 0 0 1 144 120)"},(0,r.createElement)(a.Path,{d:"M-122-114h-5v8.18c-0.31-0.11-0.65-0.18-1-0.18c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3v-9h3V-114 L-122-114z M-129-114h-12v2h12V-114L-129-114z M-129-110h-12v2h12V-110L-129-110z M-133-106h-8v2h8V-106L-133-106z M-129-103 c0-0.55,0.45-1,1-1c0.55,0,1,0.45,1,1s-0.45,1-1,1C-128.55-102-129-102.45-129-103z"})))))},72086:function(e,t,n){"use strict";n.r(t),n.d(t,{playing:function(){return i},error:function(){return s}});var r=n(69307),a=n(55609);const o={height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},i=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm7-.17v6.34L7.83 13H5v-2h2.83L10 8.83zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77 0-4.28-2.99-7.86-7-8.77z"})),s=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}))},58495:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(65736),a=n(23600),o=n(90307),i=n(87315),s=n(99944),l=n(41820),c=n(57535);const __=r.__,_x=r._x,u="podcast-player",p={title:__("Podcast Player","jetpack"),description:__("Select and play episodes from a single podcast.","jetpack"),icon:{src:l.E,foreground:(0,c.m)()},category:"embed",keywords:[_x("audio","block search term","jetpack"),_x("embed","block search term","jetpack")],supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},edit:i.Z,save:s.Z,attributes:a.Z,example:{attributes:{customPrimaryColor:(0,c.m)(),hexPrimaryColor:(0,c.m)(),exampleFeedData:{title:__("Jetpack Example Podcast","jetpack"),link:"https://jetpack.com",cover:"https://jetpackme.files.wordpress.com/2020/05/jetpack-example-podcast-cover.png?w=160",tracks:[{id:"3",title:__("3. Our third episode","jetpack"),duration:"14:58"},{id:"2",title:__("2. Interview with a special guest","jetpack"),duration:"19:17"},{id:"1",title:__("1. Welcome to Example Podcast","jetpack"),duration:"11:25"}]}}},deprecated:[o.Z]}},99944:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;if(n&&""!==n)return(0,r.createElement)("a",{className:"jetpack-podcast-player__direct-link",href:n},n)}},91763:function(e,t,n){"use strict";n.d(t,{N:function(){return r},J:function(){return a}});const r={EDIT_URL:"EDIT_URL",FINISH_EDITING:"FINISH_EDITING",START_EDITING:"START_EDITING",SELECT_EPISODE:"SELECT_EPISODE",FEED_RECEIVED:"FEED_RECEIVED",CLEAR_FEED:"CLEAR_FEED",MAKE_INTERACTIVE:"MAKE_INTERACTIVE",PREVENT_INTERACTIONS:"PREVENT_INTERACTIONS",START_FETCH:"START_FETCH",CHECK_URL:"CHECK_URL"},a=(e,t)=>{switch(t.type){case r.EDIT_URL:return{...e,editedUrl:t.payload};case r.START_EDITING:return{...e,isEditing:!0,isLoading:!1};case r.FINISH_EDITING:return{...e,editedUrl:t.payload,isEditing:!1};case r.FEED_RECEIVED:return{...e,isLoading:!1,feedData:t.payload};case r.CLEAR_FEED:return{...e,feedData:{}};case r.MAKE_INTERACTIVE:return{...e,isInteractive:!0};case r.PREVENT_INTERACTIONS:return{...e,isInteractive:!1};case r.START_FETCH:return{...e,isLoading:!0};case r.SELECT_EPISODE:return{...e,selectedGuid:t.payload};case r.CHECK_URL:return{...e,selectedGuid:null,feedData:{},checkUrl:t.payload};default:return{...e}}}},74693:function(e,t,n){"use strict";n.d(t,{Gd:function(){return i},W4:function(){return s},Aq:function(){return l}});var r=n(89105),a=n.n(r),o=n(92819);function i(e,t){if(e&&t)return`has-${t}-${e}`}function s(e){let t=!1;return{promise:new Promise(((n,r)=>{e.then((e=>t?r({isCanceled:!0}):n(e)),(e=>r(t?{isCanceled:!0}:e)))})),cancel(){t=!0}}}const l=(0,o.memoize)((e=>{let{primaryColor:t,customPrimaryColor:n,secondaryColor:r,customSecondaryColor:o,backgroundColor:s,customBackgroundColor:l}=e;const c=i("color",t),u=i("color",r),p=i("background-color",s);return{primary:{name:t,custom:n,classes:a()({"has-primary":c||n,[c]:c})},secondary:{name:r,custom:o,classes:a()({"has-secondary":u||o,[u]:u})},background:{name:s,custom:l,classes:a()({"has-background":p||l,[p]:p})}}}),(e=>Object.values(e).join()))},59189:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"premium-content-wrapper"},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:["premium-content/subscriber-view","premium-content/logged-out-view"],templateLock:"all",template:[["premium-content/subscriber-view"],["premium-content/logged-out-view"]],__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))}},2963:function(e,t,n){"use strict";var r=n(69307);const a={selectedTab:{id:"",className:"",label:(0,r.createElement)(r.Fragment,null)},stripeNudge:null},o=(0,r.createContext)(a);t.Z=o},76136:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(55609),l=n(22607),c=n(7345),u=n(65736),p=n(29917),d=n(20361);const __=u.__;function m(e){const{selectedPlanId:t,onSelected:n,plans:r,getPlanDescription:u}=e,m=r.find((e=>e.id===t));let h=null;return m&&(h=" "+u(m)),(0,o.createElement)(i.BlockControls,null,(0,o.createElement)(s.ToolbarGroup,null,(0,o.createElement)(s.ToolbarItem,null,(()=>(0,o.createElement)(s.DropdownMenu,{icon:(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.Z,{icon:c.Z})," ",h&&(0,o.createElement)(o.Fragment,null,h)),label:__("Select a plan","jetpack"),className:"premium-content-toolbar-button"},(t=>{let{onClose:r}=t;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.Z,a()({},e,{onSelected:n,onClose:r,selectedPlan:m})),(0,o.createElement)(d.Z,a()({},e,{onClose:r})))}))))))}},47322:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"25",height:"24",viewBox:"0 0 25 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12.7439 14.4271L8.64053 13.165L8.51431 13.8718L8.09208 20.7415C8.06165 21.2365 8.61087 21.5526 9.02363 21.2776L12.7439 18.799L16.7475 21.304C17.1687 21.5676 17.7094 21.2343 17.6631 20.7396L17.0212 13.8718L17.0212 13.165L12.7439 14.4271Z"}),(0,r.createElement)(a.Circle,{cx:"12.7439",cy:"8.69796",r:"5.94466",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(a.Path,{d:"M9.71023 8.12461L11.9543 10.3687L15.7776 6.54533",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}))},61114:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(17882);const __=i.__;function l(e){const[t,n]=(0,r.useState)(0),{attributes:i,setAttributes:l,className:c,savePlan:u,siteSlug:p}=e;return(0,r.createElement)(o.InspectorControls,null,p&&(0,r.createElement)(a.ExternalLink,{href:`https://wordpress.com/earn/payments/${p}`,className:"wp-block-premium-content-container---link-to-earn"},__("Manage your subscriptions.","jetpack")),(0,r.createElement)(a.PanelBody,{title:__("Add a new subscription","jetpack"),initialOpen:!0,className:`${c}---settings-add_plan`},1===t&&(0,r.createElement)(a.Placeholder,{icon:"lock",label:__("Premium Content","jetpack"),instructions:__("Saving plan…","jetpack")},(0,r.createElement)(a.Spinner,null)),0===t&&(0,r.createElement)("div",null,(0,r.createElement)(a.PanelRow,{className:"plan-name"},(0,r.createElement)(a.TextControl,{id:"new-plan-name",label:__("Name","jetpack"),value:i.newPlanName,onChange:e=>l({newPlanName:e})})),(0,r.createElement)(a.PanelRow,{className:"plan-price"},(0,r.createElement)(a.SelectControl,{label:__("Currency","jetpack"),onChange:e=>l({newPlanCurrency:e}),value:i.newPlanCurrency,options:s.Xy}),(0,r.createElement)(a.TextControl,{label:__("Price","jetpack"),value:i.newPlanPrice,onChange:e=>l({newPlanPrice:parseFloat(e)}),type:"number"})),(0,r.createElement)(a.PanelRow,{className:"plan-interval"},(0,r.createElement)(a.SelectControl,{label:__("Interval","jetpack"),onChange:e=>l({newPlanInterval:e}),value:i.newPlanInterval,options:[{label:__("Month","jetpack"),value:"1 month"},{label:__("Year","jetpack"),value:"1 year"}]})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isSecondary:!0,isLarge:!0,onClick:t=>{t.preventDefault(),n(1),u(e.attributes,(e=>{n(0),e&&(l({newPlanPrice:5}),l({newPlanName:""}))}))}},__("Add subscription","jetpack"))))))}},20361:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(9818),o=n(55609),i=n(65736);const __=i.__;function s(e){return(0,r.createElement)(o.MenuGroup,null,(0,r.createElement)(o.MenuItem,{onClick:t=>{t.preventDefault(),(0,a.select)("core/edit-post").isEditorSidebarOpened()||(0,a.dispatch)("core/edit-post").openGeneralSidebar("edit-post/block");const n=document.getElementById("new-plan-name");null!==n&&n.focus(),e.onClose()}},__("Add a new subscription","jetpack")))}},61556:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(55609);function o(e){const{className:t,plan:n,selectedPlan:o,onSelected:i,onClose:s,getPlanDescription:l}=e,c=o&&n.id===o.id,u=(c?["is-selected"]:[]).concat([t]).join(" "),p=c?"yes":void 0;let d=null;return n&&(d=" "+l(n)),(0,r.createElement)(a.MenuItem,{onClick:e=>{e.preventDefault(),i(n),s()},className:u,key:n.id,value:n.id,selected:c,icon:p},n.title," : ",d)}},29917:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(61556);function l(e){const{plans:t,selectedPlan:n,onSelected:r}=e;return(0,o.createElement)(i.MenuGroup,null,t.map((t=>(0,o.createElement)(s.Z,a()({},e,{key:t.id,selectedPlan:n,onSelected:r,plan:t})))))}},34411:function(e,t,n){"use strict";n.d(t,{W:function(){return a},H:function(){return o}});var r=n(9818);const a=e=>0===e.name.indexOf("premium-content/")||e.innerBlocks.some(a),o=e=>{const{getBlocksByClientId:t,getBlockParents:n}=(0,r.select)("core/block-editor");return!!t(n(e.clientId)).find((e=>0===e.name.indexOf("premium-content/")))}},97894:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(94333),i=n(9818),s=n(65736),l=n(92694);const __=s.__,c=["core/button","jetpack/recurring-payments","premium-content/login-button"];t.Z=(0,o.compose)([(0,i.withSelect)(((e,t)=>({subscribeButton:e("core/block-editor").getBlock(t.clientId).innerBlocks.find((e=>"jetpack/recurring-payments"===e.name))}))),(0,i.withDispatch)(((e,t)=>({setSubscribeButtonPlan(n){e("core/block-editor").updateBlockAttributes(t.subscribeButton.clientId,{planId:n})}})))])((function(e){let{context:t,subscribeButton:n,setSubscribeButtonPlan:o}=e;const i=t?t["premium-content/planId"]:null,s=!!t&&t["premium-content/isPreview"],u=[["core/button",{element:"a",uniqueId:"recurring-payments-id",text:__("Subscribe","jetpack")}],["premium-content/login-button"]],p=[["jetpack/recurring-payments",{planId:i},[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id",text:__("Subscribe","jetpack")}]]],["premium-content/login-button"]];(0,r.useEffect)((()=>{i&&n&&n.attributes.planId!==i&&o(i)}),[i,n,o]),(0,r.useEffect)((()=>{n&&(0,l.addFilter)("jetpack.RecurringPayments.showControls","jetpack/premium-content-hide-recurring-payments-controls",((e,t)=>t!==n.clientId&&e))}),[n]);const d=(0,a.useBlockProps)({className:"wp-block-buttons"});return(0,r.createElement)("div",d,(0,r.createElement)(a.InnerBlocks,{allowedBlocks:c,template:s?u:p,templateInsertUpdatesSelection:!1,__experimentalLayout:{type:"default",alignments:[]},__experimentalMoverDirection:"horizontal"}))}))},46157:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(15284),i=n(52175),s=n(97894),l=n(71586);const __=a.__,c="premium-content/buttons",u={apiVersion:2,title:__("Premium Content buttons","jetpack"),description:__("Prompt Premium Content visitors to take action with a group of button-style links.","jetpack"),category:"grow",icon:o.Z,supports:{align:!0,alignWide:!1,lightBlockWrapper:!0,inserter:!1},keywords:[__("link","jetpack")],edit:s.Z,save:l.Z,usesContext:["premium-content/planId","premium-content/isPreview"],deprecated:[{attributes:{},supports:{align:!0,alignWide:!1,lightBlockWrapper:!0,inserter:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-buttons"},(0,r.createElement)(i.InnerBlocks.Content,null))}]}},71586:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){const e=a.useBlockProps.save({className:"wp-block-buttons"});return(0,r.createElement)("div",e,(0,r.createElement)(a.InnerBlocks.Content,null))}},86633:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(52175),l=n(65736),c=n(94333),u=n(9818),p=n(96483),d=n(78850),m=n(86989),h=n.n(m),f=n(59189),g=n(76136),b=n(61114),v=n(2963),k=n(51591),y=n(17882),E=n(2368),w=n(37930);const __=l.__,_=[{id:"premium",label:(0,o.createElement)("span",null,__("Subscriber View","jetpack")),className:"wp-premium-content-subscriber-view"},{id:"wall",label:(0,o.createElement)("span",null,__("Non-subscriber View","jetpack")),className:"wp-premium-content-logged-out-view"}],C=[];function j(e){const[t,n]=(0,o.useState)(_[1]),[r,c]=(0,o.useState)(!1),[u,m]=(0,o.useState)(C),[j,x]=(0,o.useState)(null),[T,P]=(0,o.useState)(0),[N,A]=(0,o.useState)(!1),[I,B]=(0,o.useState)(""),{isPreview:M}=e.attributes;function R(t,n){if(!t.newPlanName||0===t.newPlanName.length)return S(e,__("Plan requires a name","jetpack")),void n(!1);const r=parseFloat(t.newPlanPrice),a=(0,y.hj)(t.newPlanCurrency),o=(0,l.sprintf)(// translators: %s: Price
+__("Minimum allowed price is %s.","jetpack"),(0,d.ZP)(a,t.newPlanCurrency));if(r<a)return S(e,o),void n(!1);if(!(0,y.vs)(t.newPlanCurrency,r))return S(e,__("Plan requires a valid price","jetpack")),void n(!1);const i={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:t.newPlanCurrency,price:t.newPlanPrice,title:t.newPlanName,interval:t.newPlanInterval}};h()(i).then((t=>{const r={id:t.id,title:t.title,interval:t.interval,price:t.price,currency:t.currency};m(u.concat([r])),L(r),function(e,t){e.createSuccessNotice(t,{type:"snackbar"})}(e,__("Successfully created plan","jetpack")),n&&n(!0)}),(()=>{S(e,__("There was an error when adding the plan.","jetpack")),n&&n(!1)}))}function L(t){e.setAttributes({selectedPlanId:t.id})}const Z=(0,o.useRef)(null);!function(e,t){function n(n){e.current&&n.target&&n.target instanceof Node&&!e.current.contains(n.target)?t(!1):t(!0)}(0,o.useEffect)((()=>(document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)})))}(Z,c);const{isSelected:F,className:D}=e;(0,o.useEffect)((()=>{if(M)return;const t=(0,p.getQueryArg)(window.location.href,"origin"),n={path:(0,p.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t?"gutenberg-wpcom":"gutenberg"}),method:"GET"};h()(n).then((t=>{if(t||"object"==typeof t){if(t.errors&&Object.values(t.errors)&&Object.values(t.errors)[0][0])return P(2),void S(e,Object.values(t.errors)[0][0]);x((0,E.Z)(e.postId,t.connect_url)),A(t.should_upgrade_to_access_memberships),B(t.site_slug),t.products&&0===t.products.length&&!t.should_upgrade_to_access_memberships&&t.connected_account_id?R({newPlanCurrency:"USD",newPlanPrice:5,newPlanName:__("Monthly Subscription","jetpack"),newPlanInterval:"1 month"},(()=>{P(t.connected_account_id?1:2)})):(t.products&&t.products.length>0&&(m(t.products),e.attributes.selectedPlanId||L(t.products[0])),P(t.connected_account_id?1:2))}}),(t=>{x(null),P(2),S(e,t.message)})),setTimeout((()=>e.selectBlock()),1e3)}),[]);const{autosaveAndRedirect:O}=(0,w.Z)(j);return 0!==T||M?(0,o.createElement)(o.Fragment,null,(0,o.createElement)(s.BlockControls,null,!N&&1!==T&&j&&(0,o.createElement)(i.ToolbarGroup,null,(0,o.createElement)(i.ToolbarButton,{icon:k.Pw,onClick:O,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))),(0,o.createElement)(i.ToolbarGroup,null,(0,o.createElement)(i.ToolbarButton,{onClick:()=>{n(_[1])},className:"components-tab-button",isPressed:"wp-premium-content-logged-out-view"===t.className},(0,o.createElement)("span",null,__("Visitor View","jetpack"))),(0,o.createElement)(i.ToolbarButton,{onClick:()=>{n(_[0])},className:"components-tab-button",isPressed:"wp-premium-content-logged-out-view"!==t.className},(0,o.createElement)("span",null,__("Subscriber View","jetpack"))))),(0,o.createElement)("div",{className:D,ref:Z},(F||r)&&1===T&&(0,o.createElement)(g.Z,a()({},e,{plans:u,selectedPlanId:e.attributes.selectedPlanId,onSelected:L,getPlanDescription:function(e){const t=(0,d.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,l.sprintf)(// translators: %s: amount
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,l.sprintf)(// translators: %s: amount
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,l.sprintf)(// translators: %s: amount, plan interval
+__("%1$s / %2$s","jetpack"),t,e.interval)}})),(F||r)&&1===T&&(0,o.createElement)(b.Z,a()({},e,{savePlan:R,siteSlug:I})),(0,o.createElement)(v.Z.Provider,{value:{selectedTab:t}},(0,o.createElement)(f.Z,null)))):(0,o.createElement)("div",{className:D,ref:Z},(0,o.createElement)(i.Placeholder,{icon:"lock",label:__("Premium Content","jetpack"),instructions:__("Loading data…","jetpack")},(0,o.createElement)(i.Spinner,null)))}function S(e,t){e.createErrorNotice(t,{type:"snackbar"})}t.Z=(0,c.compose)([(0,u.withSelect)((e=>{const{getCurrentPostId:t}=e("core/editor");return{postId:t()}})),(0,u.withDispatch)(((e,t)=>{const n=e("core/block-editor"),r=e("core/notices");return{selectBlock(){n.selectBlock(t.clientId)},createErrorNotice:r.createErrorNotice,createSuccessNotice:r.createSuccessNotice}}))])((function(e){return(0,o.createElement)(i.Disabled.Consumer,null,(t=>(0,o.createElement)(j,a()({},e,{attributes:{...e.attributes,isPreview:t||e.attributes?.isPreview}}))))}))},98034:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(4981),o=n(86633),i=n(77940),s=n(47322),l=n(34411);const __=r.__,_x=r._x,c="premium-content/container",u={title:__("Premium Content","jetpack"),description:__("Restrict access to your content for paying subscribers.","jetpack"),icon:s.Z,category:"grow",keywords:[_x("paywall","keyword","jetpack"),_x("paid","keyword","jetpack"),_x("subscribe","keyword","jetpack"),_x("membership","keyword","jetpack")],attributes:{newPlanName:{type:"string",default:__("Monthly Subscription","jetpack")},newPlanCurrency:{type:"string",default:"USD"},newPlanPrice:{type:"number",default:5},newPlanInterval:{type:"string",default:"1 month"},selectedPlanId:{type:"number",default:0},isPreview:{type:"boolean",default:!1},isPremiumContentChild:{type:"bool",default:!0}},edit:o.Z,save:i.Z,providesContext:{"premium-content/planId":"selectedPlanId","premium-content/isPreview":"isPreview",isPremiumContentChild:"isPremiumContentChild"},supports:{html:!1},example:{attributes:{isPreview:!0}},transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["*"],__experimentalConvert(e){if(e.some(l.W))return;if((0,l.H)(e[0]))return;const t=e.map((e=>(0,a.createBlock)(e.name,e.attributes,e.innerBlocks)));return(0,a.createBlock)("premium-content/container",{},[(0,a.createBlock)("premium-content/subscriber-view",{},t),(0,a.createBlock)("premium-content/logged-out-view")])}}]}}},93068:function(e,t,n){"use strict";var r=n(25905),a=n(9109);t.Z=[r.Z,a.Z]},25905:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(52175);t.Z={attributes:{subscribeButtonText:{type:"string",default:"Subscribe"},loginButtonText:{type:"string",default:"Log In"},buttonClasses:{type:"string",default:""},backgroundButtonColor:{type:"string",default:""},textButtonColor:{type:"string",default:""},customBackgroundButtonColor:{type:"string",default:""},customTextButtonColor:{type:"string",default:""}},isEligible:e=>{let{buttonClasses:t}=e;return!!t},migrate:(e,t)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)if(t[n].name&&"premium-content/buttons"===t[n].name)return[e,[...t]];const n=(0,a.createBlock)("premium-content/buttons",{},[(0,a.createBlock)("jetpack/recurring-payments",{submitButtonText:e.subscribeButtonText,backgroundButtonColor:e.backgroundButtonColor,textButtonColor:e.textButtonColor,customBackgroundButtonColor:e.customBackgroundButtonColor,customTextButtonColor:e.customTextButtonColor}),(0,a.createBlock)("premium-content/login-button",{text:e.loginButtonText,backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,style:{color:{background:e.customBackgroundButtonColor,text:e.customTextButtonColor}}})]);return[e,[...t,n]]},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view"},(0,r.createElement)(o.InnerBlocks.Content,null))}},9109:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{},supports:{inserter:!1,html:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view"})}},43279:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(65736),i=n(9818),s=n(94333),l=n(2963);const __=o.__;t.Z=(0,s.compose)((0,i.withSelect)((e=>{const{getBlockParents:t,getSelectedBlockClientId:n}=e("core/block-editor"),r=t(n());return{parentClientId:r.length?r[r.length-1]:void 0}})))((function(e){let{parentClientId:t,isSelected:n}=e;const{selectBlock:o}=(0,i.useDispatch)("core/block-editor");return(0,r.useEffect)((()=>{n&&o(t)}),[o,n,t]),(0,r.createElement)(l.Z.Consumer,null,(e=>{let{selectedTab:t,stripeNudge:n}=e;return(0,r.createElement)("div",{hidden:"premium"===t.id,className:t.className},n,(0,r.createElement)(a.InnerBlocks,{templateLock:!1,templateInsertUpdatesSelection:!1,template:[["core/heading",{content:__("Subscribe to get access","jetpack"),level:3}],["core/paragraph",{content:__("Read more of this content when you subscribe today.","jetpack")}],["premium-content/buttons"]]}))}))}))},76883:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return d}});var r=n(43279),a=n(54222),o=n(93068),i=n(47322),s=n(94333),l=n(9818),c=n(65736),u=n(72629);const __=c.__,p="premium-content/logged-out-view",d={title:__("Logged Out View","jetpack"),description:__("The container for all content shown to site visitors who are not subscribers.","jetpack"),icon:i.Z,category:"grow",parent:["premium-content/container"],supports:{inserter:!1,html:!1},edit:r.Z,save:a.Z,deprecated:o.Z},m=(0,l.subscribe)((()=>{const e=(0,l.select)("core/rich-text").getFormatType("core/link");if(!e)return;m(),(0,u.unregisterFormatType)("core/link");const t=(0,s.compose)((0,l.withSelect)((e=>({selectedBlock:e("core/block-editor").getSelectedBlock()}))),(0,s.ifCondition)((e=>e.selectedBlock&&e.selectedBlock.name!==p)))(e.edit);(0,u.registerFormatType)("core/link",{...e,edit:t})}))},54222:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view entry-content"},(0,r.createElement)(a.InnerBlocks.Content,null))}},43110:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={text:{type:"string",source:"html",selector:"a",default:__("Log in","jetpack")},borderRadius:{type:"number"},backgroundColor:{type:"string"},textColor:{type:"string"},gradient:{type:"string"},style:{type:"object"}}},19398:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(9818),s=n(52175);const __=o.__,l="web"===r.Platform.OS;const c=e=>{if(!(0,a.isObject)(e))return e;const t=(0,a.pickBy)((0,a.mapValues)(e,c),a.identity);return(0,a.isEqual)(t,{})?void 0:t};function u(e){let{settings:t,clientId:n,enableContrastChecking:a=!0}=e;const{getComputedStyle:o,Node:i}=window,[c,u]=(0,r.useState)(),[p,d]=(0,r.useState)(),m=l?__("Color settings","jetpack"):__("Color Settings","jetpack",0);return(0,r.useEffect)((()=>{if(l&&!a)return;const e=function(e){return document.getElementById("block-"+e)}(n);if(!e)return;d(o(e).color);let t=e,r=o(t).backgroundColor;for(;"rgba(0, 0, 0, 0)"===r&&t.parentNode&&t.parentNode.nodeType===i.ELEMENT_NODE;)t=t.parentNode,r=o(t).backgroundColor;u(r)})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(s.__experimentalPanelColorGradientSettings,{title:m,initialOpen:!1,settings:t},l&&a&&(0,r.createElement)(s.ContrastChecker,{backgroundColor:c,textColor:p})))}t.Z=function(e){const{attributes:t}=e,{colors:n,gradients:a}=(0,i.useSelect)((e=>e("core/block-editor").getSettings()),[]),o=(0,r.useRef)(t);(0,r.useEffect)((()=>{o.current=t}),[t]);const{style:l,textColor:p,backgroundColor:d,gradient:m}=t;let h;h=m?(0,s.getGradientValueBySlug)(a,m):l?.color?.gradient;const f=t=>r=>{const a=(0,s.getColorObjectByColorValue)(n,r),i=t+"Color",l={...o.current.style,color:{...o.current?.style?.color,[t]:a?.slug?void 0:r}},u=a?.slug?a.slug:void 0,p={style:c(l),[i]:u};e.setAttributes(p),o.current={...o.current,...p}};return(0,r.createElement)(u,{enableContrastChecking:!m&&!l?.color?.gradient,clientId:e.clientId,settings:[{label:__("Text Color","jetpack"),onColorChange:f("text"),colorValue:(0,s.getColorObjectByAttributeValues)(n,p,l?.color?.text).color},{label:__("Background Color","jetpack"),onColorChange:f("background"),colorValue:(0,s.getColorObjectByAttributeValues)(n,d,l?.color?.background).color,gradientValue:h,onGradientChange:t=>{const n=(0,s.getGradientSlugByValue)(a,t);let r;if(n){const e={...o.current?.style,color:{...o.current?.style?.color,gradient:void 0}};r={style:c(e),gradient:n}}else{const e={...o.current?.style,color:{...o.current?.style?.color,gradient:t}};r={style:c(e),gradient:void 0}}e.setAttributes(r),o.current={...o.current,...r}}}]})}},97209:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(89105),a=n.n(r),o=n(52175);function i(e){const{backgroundColor:t,textColor:n,gradient:r,style:i}=e,s=(0,o.getColorClassName)("background-color",t),l=(0,o.__experimentalGetGradientClass)(r),c=(0,o.getColorClassName)("color",n),u=a()(c,l,{[s]:!i?.color?.gradient&&!!s,"has-text-color":n||i?.color?.text,"has-background":t||i?.color?.background||r||i?.color?.gradient});return{className:u||void 0,style:i?.color?.background||i?.color?.text||i?.color?.gradient?{background:i?.color?.gradient?i.color.gradient:void 0,backgroundColor:i?.color?.background?i.color.background:void 0,color:i?.color?.text?i.color.text:void 0}:{}}}},48186:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(65736),l=n(97209);const __=s.__;t.Z={attributes:{text:{type:"string",source:"html",selector:"a",default:__("Log in","jetpack")},borderRadius:{type:"number"},backgroundColor:{type:"string"},textColor:{type:"string"},gradient:{type:"string"},style:{type:"object"}},supports:{align:!0,alignWide:!1,html:!1,lightBlockWrapper:!0,inserter:!1},save:e=>{let{attributes:t}=e;const{borderRadius:n,text:a}=t,s=(0,l.Z)(t),c=o()("wp-block-button__link",s.className,{"no-border-radius":0===n}),u={borderRadius:n?n+"px":void 0,...s.style};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:c,style:u,value:a}))}}},87909:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(19398),u=n(97209);const __=i.__;function p(e){let{borderRadius:t="",setAttributes:n}=e;const a=(0,r.useCallback)((e=>{n({borderRadius:e})}),[n]);return(0,r.createElement)(s.PanelBody,{title:__("Border settings","jetpack")},(0,r.createElement)(s.RangeControl,{value:t,label:__("Border radius","jetpack"),min:0,max:50,initialPosition:5,allowReset:!0,onChange:a}))}t.Z=function(e){const{attributes:t,setAttributes:n,className:a}=e,{borderRadius:i,text:s}=t,d=(0,u.Z)(t),m=(0,l.useBlockProps)({className:"wp-block-button"});return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",m,(0,r.createElement)(l.RichText,{placeholder:__("Add text…","jetpack"),value:s,onChange:e=>n({text:e}),withoutInteractiveFormatting:!0,className:o()(a,"wp-block-button__link",d.className,{"no-border-radius":0===i}),style:{borderRadius:i?i+"px":void 0,...d.style}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.Z,e),(0,r.createElement)(p,{borderRadius:i,setAttributes:n})))}},37436:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(15284),a=n(65736),o=n(87909),i=n(54662),s=n(43110),l=n(48186);const __=a.__,c="premium-content/login-button",u={title:__("Premium Content login button","jetpack"),description:__("Prompt subscriber visitors to log in with a button-style link (only visible for logged out users).","jetpack"),category:"grow",attributes:s.Z,icon:r.Z,keywords:[__("link","jetpack")],supports:{align:!0,alignWide:!1,html:!1,lightBlockWrapper:!0,inserter:!1},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],edit:o.Z,save:i.Z,deprecated:[l.Z]}},54662:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(97209);function l(e){let{attributes:t}=e;const{borderRadius:n,text:a,align:l}=t,c=(0,s.Z)(t),u=o()("wp-block-button","wp-block-premium-content-login-button",{alignleft:"left"===l},{aligncenter:"center"===l},{alignright:"right"===l}),p=o()("wp-block-button__link",c.className,{"no-border-radius":0===n}),d={borderRadius:n?n+"px":void 0,...c.style},m=i.useBlockProps.save({className:u});return(0,r.createElement)("div",m,(0,r.createElement)(i.RichText.Content,{tagName:"a",className:p,style:d,value:a}))}},77940:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-container"},(0,r.createElement)(a.InnerBlocks.Content,null))}},37915:function(e,t,n){"use strict";var r=n(54682);t.Z=[r.Z]},54682:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{},supports:{inserter:!1,html:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-subscriber-view"})}},6627:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(65736),i=n(9818),s=n(94333),l=n(2963);const __=o.__;t.Z=(0,s.compose)([(0,i.withSelect)(((e,t)=>{const{getBlockParents:n,getSelectedBlockClientId:r}=e("core/block-editor"),a=n(r());return{parentClientId:a.length?a[a.length-1]:void 0,hasInnerBlocks:!!e("core/block-editor").getBlocksByClientId(t.clientId)[0].innerBlocks.length}}))])((function(e){let{hasInnerBlocks:t,parentClientId:n,isSelected:o}=e;const{selectBlock:s}=(0,i.useDispatch)("core/block-editor");return(0,r.useEffect)((()=>{o&&s(n)}),[s,o,n]),(0,r.createElement)(l.Z.Consumer,null,(e=>{let{selectedTab:n,stripeNudge:o}=e;return(0,r.createElement)("div",{hidden:"wall"===n.id,className:n.className},o,(0,r.createElement)(a.InnerBlocks,{renderAppender:!t&&a.InnerBlocks.ButtonBlockAppender,templateLock:!1,templateInsertUpdatesSelection:!1,template:[["core/heading",{content:__("Subscriber Content","jetpack"),level:3}],["core/paragraph",{content:__("Add content here that will only be visible to your subscribers.","jetpack")}]]}))}))}))},24720:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(6627),a=n(2718),o=n(37915),i=n(47322),s=n(65736);const __=s.__,l="premium-content/subscriber-view",c={title:__("Subscriber View","jetpack"),description:__("The container for all content shown to subscribers.","jetpack"),icon:i.Z,category:"grow",attributes:{},edit:r.Z,save:a.Z,parent:["premium-content/container"],supports:{inserter:!1,html:!1},deprecated:o.Z}},2718:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-subscriber-view entry-content"},(0,r.createElement)(a.InnerBlocks.Content,null))}},96440:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(55609),l=n(39630);const __=o.__,c=e=>{let{id:t,setRating:n,children:a}=e;return(0,r.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(o=t,e=>{let{keyCode:t}=e;return t===l.ENTER?n(o):null}),onClick:(e=>()=>n(e))(t)},a);var o};t.Z=e=>function(t){let{className:n,setAttributes:o,attributes:{align:l,color:u,rating:p,maxRating:d}}=t;const m=e=>{e===p?Math.ceil(p)===p&&(e-=.5):.5===p&&1===e&&(e=0),o({rating:e})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockControls,null,(0,r.createElement)(i.AlignmentToolbar,{value:l,onChange:e=>o({align:e})})),(0,r.createElement)("div",{className:n,style:{textAlign:l}},(0,a.range)(1,d+1).map((t=>(0,r.createElement)(c,{key:t,id:t,setRating:m},(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t-.5?null:"is-rating-unfilled",color:u})),(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t?null:"is-rating-unfilled",color:u})))))),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(s.RangeControl,{label:__("Highest rating","jetpack"),value:d,onChange:e=>o({maxRating:e}),min:2,max:10}),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:u,onChange:e=>o({color:e}),label:__("Color","jetpack")}]}))))}},9615:function(e,t,n){"use strict";n.d(t,{d:function(){return o},r:function(){return i}});var r=n(69307),a=n(55609);const o=()=>(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"})),i=e=>{const t=(e=>e&&e.color?e.color:"currentColor")(e),n=(e=>e&&e.className?e.className:"")(e);return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},(0,r.createElement)(a.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))}},84807:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(65736),a=n(96440),o=n(2027),i=n(9615),s=n(57535);const __=r.__,_x=r._x,l="rating-star",c={title:__("Star Rating","jetpack"),description:__("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:{src:i.d,foreground:(0,s.m)()},keywords:[_x("star","block search term","jetpack"),_x("rating","block search term","jetpack"),_x("review","block search term","jetpack")],category:"widgets",example:{},styles:[{name:"filled",label:_x("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:_x("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:(0,a.Z)(i.r),save:(0,o.Z)("★")}},2027:function(e,t,n){"use strict";var r=n(69307),a=n(92819);t.Z=e=>function(t){let{className:n,attributes:{align:o,rating:i,color:s}}=t;return(0,r.createElement)("figure",{className:n,style:{textAlign:o}},(0,a.range)(1,i+1).map((t=>(0,r.createElement)("span",{key:t,style:{color:s}},e))))}},79642:function(e,t,n){"use strict";n.d(t,{G:function(){return u},J:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(51591),s=n(48721),l=n(4235),c=n(37930);const __=a.__;function u(e){let{attributes:{planId:t},products:n,setMembershipAmount:a}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Payment plan","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Payment plan","jetpack"),value:t,onChange:e=>a(e),options:n.map((e=>({label:(0,s.C)(e),value:e.id,key:e.id})))})),(0,r.createElement)(o.PanelBody,{title:__("Management","jetpack")},(0,r.createElement)(o.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,l.Z)()}`},__("See your earnings, subscriber list, and payment plans.","jetpack"))))}function p(e){let{connected:t,connectURL:n,hasUpgradeNudge:a,shouldUpgrade:s}=e;const{autosaveAndRedirect:l}=(0,c.Z)(n);return(0,r.createElement)(r.Fragment,null,!a&&!s&&!t&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:i.Pw,onClick:l,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))))}},2235:function(e,t,n){"use strict";var r=n(92819),a=n(4981);const o=["submitButtonText","submitButtonClasses","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},submitButtonClasses:{type:"string"},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},migrate:e=>{const t=(0,r.omit)(e,o),n={text:(i=e).submitButtonText,textColor:i.textButtonColor,customTextColor:i.customTextButtonColor,backgroundColor:i.backgroundButtonColor,customBackgroundColor:i.customBackgroundButtonColor};var i;return[t,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"recurring-payments-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,o),Boolean),save:()=>null}},39035:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(86989),c=n.n(l),u=n(65736),p=n(78850),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(92694),b=n(21409),v=n(17882),k=n(2368),y=n(82163),E=n(79642),w=n(48721);const __=u.__;class _ extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e={path:"/wpcom/v2/memberships/status",method:"GET"};c()(e).then((e=>{if(e.errors&&Object.values(e.errors)&&Object.values(e.errors)[0][0])return this.setState({connected:null,connectURL:2}),void this.onError(Object.values(e.errors)[0][0]);const{connect_url:t,products:n,should_upgrade_to_access_memberships:r,upgrade_url:a}=e,o=e.connected_account_id?1:2;this.setState({connected:o,connectURL:t,shouldUpgrade:r,upgradeURL:a,products:(0,y.ME)(n)})}),(e=>{this.setState({connected:2,connectURL:null}),this.onError(e.message)}))})),a()(this,"handleCurrencyChange",(e=>{let t=this.state.editedProductPrice;(0,v.vs)(e,t)||(t=(0,w.w)((0,v.hj)(e),e)),this.setState({editedProductCurrency:e,editedProductPrice:t,editedProductPriceValid:!0})})),a()(this,"handleRenewIntervalChange",(e=>this.setState({editedProductRenewInterval:e}))),a()(this,"handlePriceChange",(e=>{const t=parseFloat(e),n=(0,v.vs)(this.state.editedProductCurrency,t);this.setState({editedProductPrice:t,editedProductPriceValid:n})})),a()(this,"handleTitleChange",(e=>this.setState({editedProductTitle:e,editedProductTitleValid:e.length>0}))),a()(this,"saveProduct",(()=>{if(!this.state.editedProductTitle||0===this.state.editedProductTitle.length)return void this.setState({editedProductTitleValid:!1});if(!this.state.editedProductPrice||!(0,v.vs)(this.state.editedProductCurrency,this.state.editedProductPrice))return void this.setState({editedProductPriceValid:!1});this.setState({addingMembershipAmount:2});const e={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:this.state.editedProductCurrency,price:this.state.editedProductPrice,title:this.state.editedProductTitle,interval:this.state.editedProductRenewInterval}};c()(e).then((e=>{this.setState({addingMembershipAmount:0,products:this.state.products.concat([{id:e.id,title:e.title,interval:e.interval,price:e.price,currency:e.currency}])}),this.setMembershipAmount(e.id)}),(e=>{this.setState({addingMembershipAmount:1}),this.onError(e.message)}))})),a()(this,"renderAddMembershipAmount",(e=>{if(0===this.state.addingMembershipAmount&&!e)return(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,onClick:()=>this.setState({addingMembershipAmount:1})},__("Add a payment plan","jetpack"));if(2===this.state.addingMembershipAmount)return;const t=(0,p.ZP)((0,v.hj)(this.state.editedProductCurrency),this.state.editedProductCurrency),n=(0,u.sprintf)(
+/* translators: placeholder is a price. */
+__("Minimum allowed price is %s.","jetpack"),t);return(0,o.createElement)("div",null,(0,o.createElement)("div",{className:"membership-button__price-container"},(0,o.createElement)(h.SelectControl,{className:"membership-button__field membership-button__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:v.Xy,value:this.state.editedProductCurrency}),(0,o.createElement)("div",{className:"membership-membership-button__field membership-button__field-price"},(0,o.createElement)(h.TextControl,{label:__("Price","jetpack"),className:s()({"membership-button__field-error":!this.state.editedProductPriceValid}),onChange:this.handlePriceChange,placeholder:t,required:!0,min:"0",step:"1",type:"number",value:this.state.editedProductPrice||""}),(0,o.createElement)("p",null,n))),(0,o.createElement)(h.TextControl,{className:s()({"membership-button__field":!0,"membership-button__field-error":!this.state.editedProductTitleValid}),label:__("Describe your subscription in a few words","jetpack"),onChange:this.handleTitleChange,placeholder:__("Subscription description","jetpack"),value:this.state.editedProductTitle}),(0,o.createElement)(h.SelectControl,{label:__("Renew interval","jetpack"),onChange:this.handleRenewIntervalChange,options:[{label:__("Monthly","jetpack"),value:"1 month"},{label:__("Yearly","jetpack"),value:"1 year"},{label:__("One-Time Payment","jetpack"),value:"one-time"}],value:this.state.editedProductRenewInterval}),(0,o.createElement)("div",null,(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:this.saveProduct},__("Add this payment plan","jetpack")),(0,o.createElement)(h.Button,{isLarge:!0,className:"membership-button__field-button",onClick:()=>this.setState({addingMembershipAmount:0})},__("Cancel","jetpack"))))})),a()(this,"getFormattedPriceByProductId",(e=>{const t=this.state.products.filter((t=>parseInt(t.id)===parseInt(e))).pop();return(0,p.ZP)(parseFloat(t.price),t.currency)})),a()(this,"setMembershipAmount",(e=>{const{innerButtons:t,updateBlockAttributes:n,setAttributes:r}=this.props,a=this.props.attributes.planId,o=(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(e)),i=a?(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(a)):void 0;return t&&t.length&&t[0].innerBlocks.forEach((e=>{const t=e.attributes.text,r=t===i?o:t;n(e.clientId,{text:r})})),r({planId:parseInt(e)})})),a()(this,"renderMembershipAmounts",(()=>(0,o.createElement)("div",null,this.state.products.map((e=>(0,o.createElement)(h.Button,{className:"membership-button__field-button",isLarge:!0,isSecondary:!0,key:e.id,onClick:()=>this.setMembershipAmount(e.id)},(0,w.C)(e))))))),a()(this,"renderDisclaimer",(()=>(0,o.createElement)("div",{className:"membership-button__disclaimer"},(0,o.createElement)(h.ExternalLink,{href:"https://wordpress.com/support/wordpress-editor/blocks/payments/#related-fees"},__("Read more about Payments and related fees.","jetpack"))))),a()(this,"renderUpgradeNudges",(()=>{const{notices:e}=this.props;return(0,o.createElement)(o.Fragment,null,!this.hasUpgradeNudge&&this.state.shouldUpgrade&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e,instructions:__("You'll need to upgrade your plan to use the Payments block.","jetpack")},(0,o.createElement)(h.Button,{isSecondary:!0,isLarge:!0,href:this.state.upgradeURL,target:"_blank"},__("Upgrade your plan","jetpack")),this.renderDisclaimer())))})),a()(this,"renderPlanNotices",(()=>{const{notices:e}=this.props,{connected:t,products:n}=this.state;return(0,o.createElement)(o.Fragment,null,(0===t||2===this.state.addingMembershipAmount)&&!this.props.attributes.planId&&(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),notices:e},(0,o.createElement)(h.Spinner,null)),!this.state.shouldUpgrade&&!this.props.attributes.planId&&1===t&&0===n.length&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, first add at least one payment plan.","jetpack")),this.renderAddMembershipAmount(!0),this.renderDisclaimer()))),!this.state.shouldUpgrade&&!this.props.attributes.planId&&2!==this.state.addingMembershipAmount&&1===t&&n.length>0&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, select a previously created payment plan.","jetpack")),this.renderMembershipAmounts(),(0,o.createElement)("p",null,__("Or a new one.","jetpack")),this.renderAddMembershipAmount(!1),this.renderDisclaimer()))))})),a()(this,"render",(()=>{const{connected:e,connectURL:t,products:n}=this.state,r=(0,g.applyFilters)("jetpack.RecurringPayments.showControls",n.length>0,this.props.clientId),a=(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{attributes:this.props.attributes,products:n,setMembershipAmount:this.setMembershipAmount})),i=(0,o.createElement)(f.BlockControls,null,(0,o.createElement)(E.J,{connected:2!==e,connectURL:(0,k.Z)(this.props.postId,t),hasUpgradeNudge:this.hasUpgradeNudge,shouldUpgrade:this.state.shouldUpgrade}));return(0,o.createElement)(o.Fragment,null,this.props.noticeUI,!this.isPremiumContentChild&&this.renderUpgradeNudges(),!this.isPremiumContentChild&&this.renderPlanNotices(),r&&a,i,(0,o.createElement)(f.InnerBlocks,{template:[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id"}]],templateLock:"all",__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))})),this.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],editedProductCurrency:"USD",editedProductPrice:(0,w.w)((0,v.hj)("USD"),"USD"),editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},this.timeout=null;const e=(0,b.Z)("recurring-payments");this.hasUpgradeNudge=!e.available&&"missing_plan"===e.unavailableReason,this.isPremiumContentChild=this.props.context.isPremiumContentChild||!1}}t.Z=(0,d.compose)([(0,m.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()}))),(0,m.withDispatch)((e=>{const{updateBlockAttributes:t}=e("core/editor");return{updateBlockAttributes:t,autosaveAndRedirect:async(t,n)=>{t.preventDefault(),await e("core/editor").savePost(),window.top.location.href=n}}})),h.withNotices])(_)},82163:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m},ME:function(){return h}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(57535),l=n(2235),c=n(39035),u=n(17882);const __=i.__,_x=i._x,p="recurring-payments",d=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},(0,r.createElement)(a.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"}))),m={title:__("Payments","jetpack"),icon:{src:d,foreground:(0,s.m)()},description:__("Button allowing you to sell products and subscriptions.","jetpack"),category:"earn",keywords:[_x("sell","block search term","jetpack"),_x("subscriptions","block search term","jetpack"),_x("product","block search term","jetpack"),"stripe",_x("memberships","block search term","jetpack")],usesContext:["isPremiumContentChild"],attributes:{planId:{type:"integer"},align:{type:"string"}},edit:c.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},supports:{html:!1,align:!0},deprecated:[l.Z]};function h(e){return e.filter((e=>(0,u.vs)(e.currency,e.price)))}},48721:function(e,t,n){"use strict";n.d(t,{w:function(){return o},C:function(){return i}});var r=n(65736),a=n(78850);const __=r.__,o=(e,t)=>(0,a.ZP)(e,t,{decimal:".",symbol:""}),i=e=>{const t=(0,a.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,r.sprintf)(
+/* translators: %1$s is a price, %2$s is a period (1 year for example) */
+__("%1$s / %2$s","jetpack"),t,e.interval)}},14823:function(e,t,n){"use strict";n.d(t,{Hj:function(){return i},AP:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{attributes:t,setAttributes:n}=e;const{displayContext:a,displayDate:i,displayThumbnails:s,postsToShow:l}=t;return(0,r.createElement)(o.PanelBody,{title:__("Related Posts Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Display thumbnails","jetpack"),checked:s,onChange:e=>n({displayThumbnails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display date","jetpack"),checked:i,onChange:e=>n({displayDate:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display context (category or tag)","jetpack"),checked:a,onChange:e=>n({displayContext:e})}),(0,r.createElement)(o.RangeControl,{label:__("Number of posts","jetpack"),value:l,onChange:e=>n({postsToShow:Math.min(e,6)}),min:1,max:6}))}function s(e){let{attributes:t,setAttributes:n}=e;const{postLayout:a}=t,i=[{icon:"grid-view",title:__("Grid View","jetpack"),onClick:()=>n({postLayout:"grid"}),isActive:"grid"===a},{icon:"list-view",title:__("List View","jetpack"),onClick:()=>n({postLayout:"list"}),isActive:"list"===a}];return(0,r.createElement)(o.ToolbarGroup,{controls:i})}},31759:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(92819),l=n(9818),c=n(94333),u=n(14823);const __=a.__;function p(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},e.isInSiteEditor?__("Preview unavailable in site editor.","jetpack"):__("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&(0,r.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":__("Placeholder image","jetpack")},(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},(0,r.createElement)("title",null,__("Grey square","jetpack")),(0,r.createElement)(i.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)("title",null,__("Icon for image","jetpack")),(0,r.createElement)(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},__("August 3, 2018","jetpack")),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},__("In “Uncategorized”","jetpack")))}function d(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&(0,r.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},(0,r.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function m(e){const t="jp-related-posts-i2__row";let n=0;const a=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:n=2;break;default:n=3}return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(0,n).length},e.posts.slice(0,n)),a&&(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(n).length},e.posts.slice(n)))}class h extends r.Component{render(){const{attributes:e,className:t,posts:n,setAttributes:a,instanceId:i,isInSiteEditor:s}=this.props,{displayContext:l,displayDate:c,displayThumbnails:h,postLayout:f,postsToShow:g}=e,b="jp-relatedposts-i2",v=[];for(let e=0;e<g;e++)n[e]?v.push((0,r.createElement)(d,{id:`related-posts-${i}-post-${e}`,key:b+"-"+e,post:n[e],displayThumbnails:h,displayDate:c,displayContext:l})):v.push((0,r.createElement)(p,{id:`related-posts-${i}-post-${e}`,key:"related-post-placeholder-"+e,displayThumbnails:h,displayDate:c,displayContext:l,isInSiteEditor:s}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(u.Hj,{attributes:e,setAttributes:a})),(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(u.AP,{attributes:e,setAttributes:a})),(0,r.createElement)("div",{className:t,id:`related-posts-${i}`},(0,r.createElement)("div",{className:b,"data-layout":f},(0,r.createElement)(m,{posts:v}))))}}t.ZP=(0,c.compose)(c.withInstanceId,(0,l.withSelect)((e=>{const{getCurrentPost:t}=e("core/editor"),n=t();return{posts:(0,s.get)(n,"jetpack-related-posts",[]),isInSiteEditor:(0,s.isEmpty)(n)}})))(h)},32051:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(31759),s=n(57535);const __=a.__,_x=a._x,l="related-posts",c=(0,r.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},(0,r.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),u={title:__("Related Posts","jetpack"),icon:{src:c,foreground:(0,s.m)()},category:"embed",keywords:[_x("similar content","block search term","jetpack"),_x("linked","block search term","jetpack"),_x("connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:i.ZP,save:()=>null,example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}}},35978:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(9818),u=n(89105),p=n.n(u),d=n(46314),m=n(57368);const __=i.__,_n=i._n,h=[{value:d.FV,label:__("Show after threshold","jetpack")},{value:d.Am,label:__("Show before threshold","jetpack")}];class f extends o.Component{constructor(){super(...arguments),a()(this,"state",{isThresholdValid:!0}),a()(this,"setCriteria",(e=>this.props.setAttributes({criteria:e}))),a()(this,"setThreshold",(e=>{if(/^\d+$/.test(e)&&+e>0)return this.props.setAttributes({threshold:+e}),void this.setState({isThresholdValid:!0});this.setState({isThresholdValid:!1})}))}getNoticeLabel(){return this.props.attributes.criteria===d.FV?1===this.props.attributes.threshold?__("This block will only appear to people who have visited this page more than once.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who have visited this page more than %d time.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):1===this.props.attributes.threshold?__("This block will only appear to people who are visiting this page for the first time.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who are visiting this page for %d time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}render(){return(0,o.createElement)("div",{className:p()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},(0,o.createElement)(s.Placeholder,{icon:m.qv,label:__("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},(0,o.createElement)(s.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":__("Please enter a valid number.","jetpack"),label:__("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),(0,o.createElement)(s.RadioControl,{label:__("Visibility","jetpack"),selected:this.props.attributes.criteria,options:h,onChange:this.setCriteria})),(0,o.createElement)(s.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),(0,o.createElement)(l.InnerBlocks,null))}}t.Z=(0,c.withSelect)(((e,t)=>{const{isBlockSelected:n,hasSelectedInnerBlock:r}=e("core/block-editor");return{isSelected:n(t.clientId)||r(t.clientId)}}))(f)},42860:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks.Content,null))}},46314:function(e,t,n){"use strict";n.d(t,{FV:function(){return r},Am:function(){return a},Kv:function(){return o}});const r="after-visits",a="before-visits",o=3},57368:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(41632),s=n(35978),l=n(42860),c=n(46314),u=n(57535);const __=a.__,_x=a._x,p="repeat-visitor",d=(0,i.Z)((0,r.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"})),m={attributes:{criteria:{type:"string",default:c.FV},threshold:{type:"number",default:c.Kv}},category:"widgets",description:__("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:{src:d,foreground:(0,u.m)()},keywords:[_x("return","block search term","jetpack"),_x("visitors","block search term","jetpack"),_x("visibility","block search term","jetpack")],supports:{html:!1},title:__("Repeat Visitor","jetpack"),edit:s.Z,save:l.Z,example:{attributes:{criteria:c.FV,threshold:c.Kv},innerBlocks:[{name:"core/paragraph",attributes:{content:__("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}}},92826:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={revueUsername:{type:"string"},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0}}},26246:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(4981),i=n(65736);const _x=i._x,__=i.__,s=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius","gradient","customGradient"];t.Z={attributes:{revueUsername:{type:"string"},text:{type:"string",default:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"},gradient:{type:"string"},customGradient:{type:"string"}},migrate:e=>{const t=(0,a.omit)(e,s),n=(0,a.pick)(e,s);return[t,[(0,o.createBlock)("jetpack/button",{element:"button",text:n.text||"Subscribe",...n})]]},isEligible:(e,t)=>(0,a.isEmpty)(t)||(0,a.some)((0,a.pick)(e,s),Boolean),save:e=>{let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)("a",{href:n},n))}}},55380:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(92819),o=n(52175),i=n(55609),s=n(65736),l=n(8223),c=n(92826),u=n(80500),p=n(93641),d=n(14087),m=n(58014);const __=s.__;function h(e){let{attributes:t,className:n,setAttributes:s}=e;(0,r.useEffect)((()=>{const e=(0,d.S)(c.Z,t);(0,a.isEqual)(e,t)||s(e)}),[t,s]);const{revueUsername:h,emailLabel:f,emailPlaceholder:g,firstNameLabel:b,firstNamePlaceholder:v,firstNameShow:k,lastNameLabel:y,lastNamePlaceholder:E,lastNameShow:w}=t,[_,C]=(0,r.useState)("");(0,r.useEffect)((()=>{!_&&h&&C(h)}),[]);const j=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/revue-block/":"https://jetpack.com/support/jetpack-blocks/revue-block/";return(0,r.createElement)("div",{className:n},!h&&(0,r.createElement)(i.Placeholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:p.Z}),instructions:__("Enter your Revue username.","jetpack"),label:__("Revue","jetpack")},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),s({revueUsername:_.trim()})}},(0,r.createElement)("input",{className:"components-placeholder__input",onChange:e=>C(e.target.value.trim()),placeholder:__("Enter your Revue username here…","jetpack"),type:"text",value:_}),(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{disabled:!_,isDefault:!0,isLarge:!0,isSecondary:!0,type:"submit"},__("Add Form","jetpack")))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(i.ExternalLink,{href:j},__("Need help finding your Revue username?","jetpack")))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Show first name field.","jetpack"),checked:k,onChange:()=>s({firstNameShow:!k})}),(0,r.createElement)(i.ToggleControl,{label:__("Show last name field.","jetpack"),checked:w,onChange:()=>s({lastNameShow:!w})}),(0,r.createElement)(i.TextControl,{label:__("Revue Username","jetpack"),onChange:e=>{C(e.trim()),s({revueUsername:e.trim()})},value:h}))),(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:f,labelFieldName:"emailLabel",required:!0,setAttributes:s}),onChange:e=>s({emailPlaceholder:e}),placeholder:g,value:g}),k&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:b,labelFieldName:"firstNameLabel",setAttributes:s}),onChange:e=>s({firstNamePlaceholder:e}),placeholder:v,value:v}),w&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:y,labelFieldName:"lastNameLabel",setAttributes:s}),onChange:e=>s({lastNamePlaceholder:e}),placeholder:E,value:E}),(0,r.createElement)(o.InnerBlocks,{template:[[l.Ss.name,l.Ss.attributes]],templateLock:"all"})))}},93641:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,{fillRule:"nonzero"},(0,r.createElement)(a.Path,{d:"M16.8452322,23.2301186 C13.9471277,22.2565366 12.0226052,20.2188069 10.6188359,16.5961763 C10.2565728,15.6225943 9.87166831,14.4905223 9.80374399,14.1056178 C9.66789534,13.4037331 9.6452539,13.3810917 8.96601067,13.6075061 C7.8792215,13.9697691 7.76601429,14.1282592 7.35846835,15.758443 C6.724508,18.2490015 6.45281071,18.7244718 5.56979451,18.8829619 C5.09432424,18.9735276 4.5735711,18.9282447 4.27923236,18.7697547 C3.84904498,18.5433402 3.8037621,18.3848502 3.93961075,17.501834 C4.00753507,16.9584394 4.41508101,15.3056142 4.82262695,13.8339205 C5.8414918,10.2792143 6.11318909,8.98865211 6.29432062,7.1094125 C6.43016927,5.63771883 6.47545215,5.50187018 7.08677106,5.20753145 C7.92450438,4.79998551 8.80752058,5.09432424 9.19242508,5.88677468 C9.44148093,6.38488639 9.39619805,6.90563953 8.96601067,8.98865211 C8.67167193,10.3924215 8.51318185,11.5244935 8.62638905,11.5244935 C9.12450076,11.5244935 11.2754377,10.2565728 12.0452467,9.50940525 C13.8339205,7.83393861 14.2641079,5.77356748 13.2905259,3.82640354 C12.5886412,2.4226342 11.6150593,1.94716393 9.78110255,2.08301258 C6.97356385,2.28678555 4.43772245,4.25659092 3.01131166,7.35846835 C2.21886123,9.05657643 2.19621978,9.07921787 1.49433511,8.94336923 C-1.74339096,8.28676744 0.63396035,3.39621616 5.29809721,1.19999638 C8.39997464,-0.294338734 11.5018521,-0.362263057 14.0829764,0.950940525 C17.0716466,2.51319996 18.0225871,5.93205756 16.2791961,8.96601067 C15.5999529,10.1433656 14.2641079,11.3886449 12.9509043,12.0678881 C12.5433584,12.2716611 12.2037367,12.5207169 12.2037367,12.6339241 C12.2037367,12.9509043 13.2678845,15.9395745 13.6301475,16.6641006 C14.3093908,17.9773042 16.2339133,19.8112609 17.4565511,20.377297 C18.8829619,21.0112573 21.4640861,21.0791816 23.0263456,20.5131456 L23.9772861,20.1508826 L23.9772861,20.7169186 C23.9772861,21.5320105 23.3433258,22.3471023 22.3018195,22.8904969 C21.147106,23.4791744 18.1584357,23.6603059 16.8452322,23.2301186 Z"})))},8223:function(e,t,n){"use strict";n.d(t,{Ss:function(){return u},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(92826),o=n(26246),i=n(55380),s=n(93641),l=n(57535),c=n(12628);const __=r.__,_x=r._x,u={name:"jetpack/button",attributes:{element:"button",text:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")}},p="revue",d={title:__("Revue","jetpack"),description:__("Add a subscription form for your Revue newsletter.","jetpack"),icon:{src:s.Z,foreground:(0,l.m)()},category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack"),_x("mailing list","block search term","jetpack")],supports:{html:!1},attributes:a.Z,edit:i.Z,save:c.Z,example:{attributes:{revueUsername:"example"},innerBlocks:[u]},deprecated:[o.Z]}},12628:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null),(0,r.createElement)("a",{className:"wp-block-jetpack-revue__fallback",href:n},n))}},37161:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks,{template:[["jetpack/whatsapp-button",{}]],allowedBlocks:["jetpack/whatsapp-button"]}))}},93636:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(37161),l=n(1720),c=n(41632),u=n(57535);const __=a.__,_x=a._x,p="send-a-message",d={title:__("Send A Message","jetpack"),description:__("Let your visitors send you messages with the tap of a button.","jetpack"),icon:{src:(0,c.Z)((0,r.createElement)(i.Path,{d:"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"})),foreground:(0,u.m)()},category:"grow",keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1},attributes:{},edit:s.Z,save:e=>(0,r.createElement)("div",{className:e.className},(0,r.createElement)(o.InnerBlocks.Content,null)),variations:l.Z,example:{}}},64566:function(e,t,n){"use strict";n.d(t,{n:function(){return r}});const r=[{code:"US",label:"🇺🇸 +1",value:"1US"},{code:"CA",label:"🇨🇦 +1",value:"1CA"},{code:"BS",label:"🇧🇸 +1242",value:"1242BS"},{code:"BB",label:"🇧🇧 +1246",value:"1246BB"},{code:"AI",label:"🇦🇮 +1264",value:"1264AI"},{code:"AG",label:"🇦🇬 +1268",value:"1268AG"},{code:"VG",label:"🇻🇬 +1284",value:"1284VG"},{code:"VI",label:"🇻🇮 +1340",value:"1340VI"},{code:"BM",label:"🇧🇲 +1441",value:"1441BM"},{code:"GD",label:"🇬🇩 +1473",value:"1473GD"},{code:"TC",label:"🇹🇨 +1649",value:"1649TC"},{code:"MS",label:"🇲🇸 +1664",value:"1664MS"},{code:"MP",label:"🇲🇵 +1670",value:"1670MP"},{code:"GU",label:"🇬🇺 +1671",value:"1671GU"},{code:"AS",label:"🇦🇸 +1684",value:"1684AS"},{code:"LC",label:"🇱🇨 +1758",value:"1758LC"},{code:"DM",label:"🇩🇲 +1767",value:"1767DM"},{code:"VC",label:"🇻🇨 +1784",value:"1784VC"},{code:"DO",label:"🇩🇴 +1849",value:"1849DO"},{code:"TT",label:"🇹🇹 +1868",value:"1868TT"},{code:"KN",label:"🇰🇳 +1869",value:"1869KN"},{code:"JM",label:"🇯🇲 +1876",value:"1876JM"},{code:"PR",label:"🇵🇷 +1939",value:"1939PR"},{code:"EG",label:"🇪🇬 +20",value:"20EG"},{code:"MA",label:"🇲🇦 +212",value:"212MA"},{code:"DZ",label:"🇩🇿 +213",value:"213DZ"},{code:"TN",label:"🇹🇳 +216",value:"216TN"},{code:"LY",label:"🇱🇾 +218",value:"218LY"},{code:"GM",label:"🇬🇲 +220",value:"220GM"},{code:"SN",label:"🇸🇳 +221",value:"221SN"},{code:"MR",label:"🇲🇷 +222",value:"222MR"},{code:"ML",label:"🇲🇱 +223",value:"223ML"},{code:"GN",label:"🇬🇳 +224",value:"224GN"},{code:"CI",label:"🇨🇮 +225",value:"225CI"},{code:"BF",label:"🇧🇫 +226",value:"226BF"},{code:"NE",label:"🇳🇪 +227",value:"227NE"},{code:"TG",label:"🇹🇬 +228",value:"228TG"},{code:"BJ",label:"🇧🇯 +229",value:"229BJ"},{code:"MU",label:"🇲🇺 +230",value:"230MU"},{code:"LR",label:"🇱🇷 +231",value:"231LR"},{code:"SL",label:"🇸🇱 +232",value:"232SL"},{code:"GH",label:"🇬🇭 +233",value:"233GH"},{code:"NG",label:"🇳🇬 +234",value:"234NG"},{code:"TD",label:"🇹🇩 +235",value:"235TD"},{code:"CF",label:"🇨🇫 +236",value:"236CF"},{code:"CM",label:"🇨🇲 +237",value:"237CM"},{code:"CV",label:"🇨🇻 +238",value:"238CV"},{code:"ST",label:"🇸🇹 +239",value:"239ST"},{code:"GQ",label:"🇬🇶 +240",value:"240GQ"},{code:"GA",label:"🇬🇦 +241",value:"241GA"},{code:"CG",label:"🇨🇬 +242",value:"242CG"},{code:"CD",label:"🇨🇩 +243",value:"243CD"},{code:"AO",label:"🇦🇴 +244",value:"244AO"},{code:"GW",label:"🇬🇼 +245",value:"245GW"},{code:"IO",label:"🇮🇴 +246",value:"246IO"},{code:"SC",label:"🇸🇨 +248",value:"248SC"},{code:"SD",label:"🇸🇩 +249",value:"249SD"},{code:"RW",label:"🇷🇼 +250",value:"250RW"},{code:"ET",label:"🇪🇹 +251",value:"251ET"},{code:"SO",label:"🇸🇴 +252",value:"252SO"},{code:"DJ",label:"🇩🇯 +253",value:"253DJ"},{code:"KE",label:"🇰🇪 +254",value:"254KE"},{code:"TZ",label:"🇹🇿 +255",value:"255TZ"},{code:"UG",label:"🇺🇬 +256",value:"256UG"},{code:"BI",label:"🇧🇮 +257",value:"257BI"},{code:"MZ",label:"🇲🇿 +258",value:"258MZ"},{code:"ZM",label:"🇿🇲 +260",value:"260ZM"},{code:"MG",label:"🇲🇬 +261",value:"261MG"},{code:"YT",label:"🇾🇹 +262",value:"262YT"},{code:"RE",label:"🇷🇪 +262",value:"262RE"},{code:"ZW",label:"🇿🇼 +263",value:"263ZW"},{code:"NA",label:"🇳🇦 +264",value:"264NA"},{code:"MW",label:"🇲🇼 +265",value:"265MW"},{code:"LS",label:"🇱🇸 +266",value:"266LS"},{code:"BW",label:"🇧🇼 +267",value:"267BW"},{code:"SZ",label:"🇸🇿 +268",value:"268SZ"},{code:"KM",label:"🇰🇲 +269",value:"269KM"},{code:"ZA",label:"🇿🇦 +27",value:"27ZA"},{code:"SH",label:"🇸🇭 +290",value:"290SH"},{code:"ER",label:"🇪🇷 +291",value:"291ER"},{code:"AW",label:"🇦🇼 +297",value:"297AW"},{code:"FO",label:"🇫🇴 +298",value:"298FO"},{code:"GL",label:"🇬🇱 +299",value:"299GL"},{code:"GR",label:"🇬🇷 +30",value:"30GR"},{code:"NL",label:"🇳🇱 +31",value:"31NL"},{code:"BE",label:"🇧🇪 +32",value:"32BE"},{code:"FR",label:"🇫🇷 +33",value:"33FR"},{code:"ES",label:"🇪🇸 +34",value:"34ES"},{code:"KY",label:"🇰🇾 +345",value:"345KY"},{code:"GI",label:"🇬🇮 +350",value:"350GI"},{code:"PT",label:"🇵🇹 +351",value:"351PT"},{code:"LU",label:"🇱🇺 +352",value:"352LU"},{code:"IE",label:"🇮🇪 +353",value:"353IE"},{code:"IS",label:"🇮🇸 +354",value:"354IS"},{code:"AL",label:"🇦🇱 +355",value:"355AL"},{code:"MT",label:"🇲🇹 +356",value:"356MT"},{code:"CY",label:"🇨🇾 +357",value:"357CY"},{code:"FI",label:"🇫🇮 +358",value:"358FI"},{code:"BG",label:"🇧🇬 +359",value:"359BG"},{code:"HU",label:"🇭🇺 +36",value:"36HU"},{code:"LT",label:"🇱🇹 +370",value:"370LT"},{code:"LV",label:"🇱🇻 +371",value:"371LV"},{code:"EE",label:"🇪🇪 +372",value:"372EE"},{code:"MD",label:"🇲🇩 +373",value:"373MD"},{code:"AM",label:"🇦🇲 +374",value:"374AM"},{code:"BY",label:"🇧🇾 +375",value:"375BY"},{code:"AD",label:"🇦🇩 +376",value:"376AD"},{code:"MC",label:"🇲🇨 +377",value:"377MC"},{code:"SM",label:"🇸🇲 +378",value:"378SM"},{code:"VA",label:"🇻🇦 +379",value:"379VA"},{code:"UA",label:"🇺🇦 +380",value:"380UA"},{code:"RS",label:"🇷🇸 +381",value:"381RS"},{code:"ME",label:"🇲🇪 +382",value:"382ME"},{code:"XK",label:"🇽🇰 +383",value:"383XK"},{code:"HR",label:"🇭🇷 +385",value:"385HR"},{code:"SI",label:"🇸🇮 +386",value:"386SI"},{code:"BA",label:"🇧🇦 +387",value:"387BA"},{code:"MK",label:"🇲🇰 +389",value:"389MK"},{code:"IT",label:"🇮🇹 +39",value:"39IT"},{code:"RO",label:"🇷🇴 +40",value:"40RO"},{code:"CH",label:"🇨🇭 +41",value:"41CH"},{code:"CZ",label:"🇨🇿 +420",value:"420CZ"},{code:"SK",label:"🇸🇰 +421",value:"421SK"},{code:"LI",label:"🇱🇮 +423",value:"423LI"},{code:"AT",label:"🇦🇹 +43",value:"43AT"},{code:"IM",label:"🇮🇲 +44",value:"44IM"},{code:"GG",label:"🇬🇬 +44",value:"44GG"},{code:"JE",label:"🇯🇪 +44",value:"44JE"},{code:"GB",label:"🇬🇧 +44",value:"44GB"},{code:"DK",label:"🇩🇰 +45",value:"45DK"},{code:"SE",label:"🇸🇪 +46",value:"46SE"},{code:"NO",label:"🇳🇴 +47",value:"47NO"},{code:"SJ",label:"🇸🇯 +47",value:"47SJ"},{code:"PL",label:"🇵🇱 +48",value:"48PL"},{code:"DE",label:"🇩🇪 +49",value:"49DE"},{code:"FK",label:"🇫🇰 +500",value:"500FK"},{code:"GS",label:"🇬🇸 +500",value:"500GS"},{code:"BZ",label:"🇧🇿 +501",value:"501BZ"},{code:"GT",label:"🇬🇹 +502",value:"502GT"},{code:"SV",label:"🇸🇻 +503",value:"503SV"},{code:"HN",label:"🇭🇳 +504",value:"504HN"},{code:"NI",label:"🇳🇮 +505",value:"505NI"},{code:"CR",label:"🇨🇷 +506",value:"506CR"},{code:"PA",label:"🇵🇦 +507",value:"507PA"},{code:"PM",label:"🇵🇲 +508",value:"508PM"},{code:"HT",label:"🇭🇹 +509",value:"509HT"},{code:"PE",label:"🇵🇪 +51",value:"51PE"},{code:"MX",label:"🇲🇽 +52",value:"52MX"},{code:"CU",label:"🇨🇺 +53",value:"53CU"},{code:"AR",label:"🇦🇷 +54",value:"54AR"},{code:"BR",label:"🇧🇷 +55",value:"55BR"},{code:"CL",label:"🇨🇱 +56",value:"56CL"},{code:"CO",label:"🇨🇴 +57",value:"57CO"},{code:"VE",label:"🇻🇪 +58",value:"58VE"},{code:"BL",label:"🇧🇱 +590",value:"590BL"},{code:"MF",label:"🇲🇫 +590",value:"590MF"},{code:"GP",label:"🇬🇵 +590",value:"590GP"},{code:"BO",label:"🇧🇴 +591",value:"591BO"},{code:"GY",label:"🇬🇾 +592",value:"592GY"},{code:"EC",label:"🇪🇨 +593",value:"593EC"},{code:"GF",label:"🇬🇫 +594",value:"594GF"},{code:"PY",label:"🇵🇾 +595",value:"595PY"},{code:"MQ",label:"🇲🇶 +596",value:"596MQ"},{code:"SR",label:"🇸🇷 +597",value:"597SR"},{code:"UY",label:"🇺🇾 +598",value:"598UY"},{code:"MY",label:"🇲🇾 +60",value:"60MY"},{code:"CC",label:"🇨🇨 +61",value:"61CC"},{code:"AU",label:"🇦🇺 +61",value:"61AU"},{code:"CX",label:"🇨🇽 +61",value:"61CX"},{code:"ID",label:"🇮🇩 +62",value:"62ID"},{code:"PH",label:"🇵🇭 +63",value:"63PH"},{code:"NZ",label:"🇳🇿 +64",value:"64NZ"},{code:"SG",label:"🇸🇬 +65",value:"65SG"},{code:"TH",label:"🇹🇭 +66",value:"66TH"},{code:"TL",label:"🇹🇱 +670",value:"670TL"},{code:"NF",label:"🇳🇫 +672",value:"672NF"},{code:"BN",label:"🇧🇳 +673",value:"673BN"},{code:"NR",label:"🇳🇷 +674",value:"674NR"},{code:"PG",label:"🇵🇬 +675",value:"675PG"},{code:"TO",label:"🇹🇴 +676",value:"676TO"},{code:"SB",label:"🇸🇧 +677",value:"677SB"},{code:"VU",label:"🇻🇺 +678",value:"678VU"},{code:"FJ",label:"🇫🇯 +679",value:"679FJ"},{code:"PW",label:"🇵🇼 +680",value:"680PW"},{code:"WF",label:"🇼🇫 +681",value:"681WF"},{code:"CK",label:"🇨🇰 +682",value:"682CK"},{code:"NU",label:"🇳🇺 +683",value:"683NU"},{code:"WS",label:"🇼🇸 +685",value:"685WS"},{code:"KI",label:"🇰🇮 +686",value:"686KI"},{code:"NC",label:"🇳🇨 +687",value:"687NC"},{code:"TV",label:"🇹🇻 +688",value:"688TV"},{code:"PF",label:"🇵🇫 +689",value:"689PF"},{code:"TK",label:"🇹🇰 +690",value:"690TK"},{code:"FM",label:"🇫🇲 +691",value:"691FM"},{code:"MH",label:"🇲🇭 +692",value:"692MH"},{code:"RU",label:"🇷🇺 +7",value:"7RU"},{code:"KZ",label:"🇰🇿 +77",value:"77KZ"},{code:"JP",label:"🇯🇵 +81",value:"81JP"},{code:"KR",label:"🇰🇷 +82",value:"82KR"},{code:"VN",label:"🇻🇳 +84",value:"84VN"},{code:"KP",label:"🇰🇵 +850",value:"850KP"},{code:"HK",label:"🇭🇰 +852",value:"852HK"},{code:"MO",label:"🇲🇴 +853",value:"853MO"},{code:"KH",label:"🇰🇭 +855",value:"855KH"},{code:"LA",label:"🇱🇦 +856",value:"856LA"},{code:"CN",label:"🇨🇳 +86",value:"86CN"},{code:"PN",label:"🇵🇳 +872",value:"872PN"},{code:"BD",label:"🇧🇩 +880",value:"880BD"},{code:"TW",label:"🇹🇼 +886",value:"886TW"},{code:"TR",label:"🇹🇷 +90",value:"90TR"},{code:"IN",label:"🇮🇳 +91",value:"91IN"},{code:"PK",label:"🇵🇰 +92",value:"92PK"},{code:"AF",label:"🇦🇫 +93",value:"93AF"},{code:"LK",label:"🇱🇰 +94",value:"94LK"},{code:"MM",label:"🇲🇲 +95",value:"95MM"},{code:"MV",label:"🇲🇻 +960",value:"960MV"},{code:"LB",label:"🇱🇧 +961",value:"961LB"},{code:"JO",label:"🇯🇴 +962",value:"962JO"},{code:"SY",label:"🇸🇾 +963",value:"963SY"},{code:"IQ",label:"🇮🇶 +964",value:"964IQ"},{code:"KW",label:"🇰🇼 +965",value:"965KW"},{code:"SA",label:"🇸🇦 +966",value:"966SA"},{code:"YE",label:"🇾🇪 +967",value:"967YE"},{code:"OM",label:"🇴🇲 +968",value:"968OM"},{code:"PS",label:"🇵🇸 +970",value:"970PS"},{code:"AE",label:"🇦🇪 +971",value:"971AE"},{code:"IL",label:"🇮🇱 +972",value:"972IL"},{code:"BH",label:"🇧🇭 +973",value:"973BH"},{code:"QA",label:"🇶🇦 +974",value:"974QA"},{code:"BT",label:"🇧🇹 +975",value:"975BT"},{code:"MN",label:"🇲🇳 +976",value:"976MN"},{code:"NP",label:"🇳🇵 +977",value:"977NP"},{code:"IR",label:"🇮🇷 +98",value:"98IR"},{code:"TJ",label:"🇹🇯 +992",value:"992TJ"},{code:"TM",label:"🇹🇲 +993",value:"993TM"},{code:"AZ",label:"🇦🇿 +994",value:"994AZ"},{code:"GE",label:"🇬🇪 +995",value:"995GE"},{code:"KG",label:"🇰🇬 +996",value:"996KG"},{code:"UZ",label:"🇺🇿 +998",value:"998UZ"}]},1720:function(e,t,n){"use strict";var r=n(65736),a=n(22823),o=n(32220);const __=r.__,i=[{isDefault:!0,name:"whatsapp-button",title:__("WhatsApp Button","jetpack"),description:__("Let your visitors send you messages on WhatsApp with the tap of a button.","jetpack"),icon:(0,o.p)("send-a-message",a.Z),innerBlocks:[["jetpack/whatsapp-button",{}]]}];t.Z=i},87165:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={countryCode:{type:"string"},phoneNumber:{type:"string"},firstMessage:{type:"string",default:__("Hi, I got your WhatsApp information from your website.","jetpack")},buttonText:{type:"array",source:"children",selector:"a.whatsapp-block__button",default:__("Chat on WhatsApp","jetpack")},backgroundColor:{type:"string",default:"#25D366"},colorClass:{type:"string",default:"dark"},openInNewTab:{type:"boolean",default:!1}}},93374:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(39630),l=n(64566),c=n(41632),u=n(22985);const __=a.__,_x=a._x,p="#25D366",d="#465B64";function m(e){let{attributes:t,setAttributes:n,context:a}=e;const{countryCode:m,phoneNumber:h,firstMessage:f,openInNewTab:g,backgroundColor:b}=t,[v,k]=(0,r.useState)(!0),y=()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{label:__("Phone Number","jetpack"),help:__("Enter the phone number you use for WhatsApp and would like to be contacted on.","jetpack"),className:"jetpack-whatsapp-button__phonenumber"},(0,r.createElement)(o.SelectControl,{label:__("Country code","jetpack"),value:m,onChange:e=>n({countryCode:e}),options:l.n,hideLabelFromVision:!0}),(0,r.createElement)(o.TextControl,{placeholder:__("Your phone number…","jetpack"),onChange:e=>{n({phoneNumber:e}),0===e.length&&k(!0),e.length>2&&k((e=>{const t=RegExp(/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/,"g");return!(void 0===e||e.length<1)&&t.test(m.replace(/\D/g,"")+e)})(e))},value:h}),!v&&(0,r.createElement)(u.Z,{isError:!0,className:"jetpack-whatsapp-error"},__("Please enter a valid phone number.","jetpack"))),"inspector"===a&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.TextareaControl,{label:__("Default First Message","jetpack"),help:__("The default first message that will be sent by visitors when using this button.","jetpack"),value:f,onChange:e=>n({firstMessage:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Open in new tab","jetpack"),checked:g,onChange:e=>n({openInNewTab:e}),help:__("When the button is tapped, should a new tab be opened if the visitor does not have WhatsApp installed?","jetpack")})));return"toolbar"===a?(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"jetpack-whatsapp-button-settings-selector",contentClassName:"jetpack-whatsapp-button__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(o.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("WhatsApp Button Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==s.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,c.Z)((0,r.createElement)(o.Path,{d:"M10.82 12.49c.02-.16.04-.32.04-.49 0-.17-.02-.33-.04-.49l1.08-.82c.1-.07.12-.21.06-.32l-1.03-1.73c-.06-.11-.2-.15-.31-.11l-1.28.5c-.27-.2-.56-.36-.87-.49l-.2-1.33c0-.12-.11-.21-.24-.21H5.98c-.13 0-.24.09-.26.21l-.2 1.32c-.31.12-.6.3-.87.49l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.73c-.06.12-.03.25.07.33l1.08.82c-.02.16-.03.33-.03.49 0 .17.02.33.04.49l-1.09.83c-.1.07-.12.21-.06.32l1.03 1.73c.06.11.2.15.31.11l1.28-.5c.27.2.56.36.87.49l.2 1.32c.01.12.12.21.25.21h2.06c.13 0 .24-.09.25-.21l.2-1.32c.31-.12.6-.3.87-.49l1.28.5c.12.05.25 0 .31-.11l1.03-1.73c.06-.11.04-.24-.06-.32l-1.1-.83zM7 13.75c-.99 0-1.8-.78-1.8-1.75s.81-1.75 1.8-1.75 1.8.78 1.8 1.75S8 13.75 7 13.75zM18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"}))}))(t,n)},renderContent:y})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("WhatsApp Button Settings","jetpack"),initialOpen:!0},y()),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!1,colorSettings:[{value:b,onChange:e=>(e=>{if(n({backgroundColor:e}),void 0===e||e===p||e===d)return n({colorClass:"dark"});n({colorClass:"light"})})(e),label:__("Background Color","jetpack"),disableCustomColors:!0,colors:[{name:_x("WhatsApp Green","background color name","jetpack"),slug:"whatsapp-green",color:p},{name:_x("WhatsApp Dark","background color name","jetpack"),slug:"whatsapp-dark",color:d},{name:_x("WhatsApp Light","background color name","jetpack"),slug:"whatsapp-light",color:"#F4F4F4"},{name:_x("White","background color name","jetpack"),slug:"whatsapp-white",color:"#FFFFFF"}]}]}))}},11026:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770),l=n(87165);t.Z={attributes:l.Z,supports:{html:!1,reusable:!1},save:function(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,colorClass:u,buttonText:p,backgroundColor:d,openInNewTab:m}=t,h=m?"_blank":"_self",f=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",g=o()(n,u?"is-color-"+u:void 0,p.length?void 0:"has-no-text");return(0,r.createElement)("div",{className:g},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+f;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:d},target:h,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:p})))}}},60249:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(52175),l=n(64566),c=n(93374);function u(e){let{attributes:t,setAttributes:n,className:a,clientId:u}=e;const{countryCode:p,buttonText:d,colorClass:m,backgroundColor:h}=t,{selectBlock:f}=(0,i.useDispatch)("core/block-editor"),g=(0,r.useCallback)((async()=>{n({countryCode:"1"});const e=await fetch("https://public-api.wordpress.com/geo/").then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json();l.n.forEach((e=>{e.code===t.country_short&&n({countryCode:e.value})}))}}),[n]);(0,r.useEffect)((()=>{void 0===p&&(g(),f(u))}),[u,p,g,f]);return(0,r.createElement)("div",{className:o()(a,m?"is-color-"+m:void 0)},(0,r.createElement)(s.BlockControls,null,(0,r.createElement)(c.Z,{context:"toolbar",setAttributes:n,attributes:t})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(c.Z,{context:"inspector",setAttributes:n,attributes:t})),(0,r.createElement)(s.RichText,{placeholder:d.default,value:d,onChange:e=>n({buttonText:e}),withoutInteractiveFormatting:!0,allowedFormats:[],className:"whatsapp-block__button",tagName:"a",preserveWhiteSpace:!1,style:{backgroundColor:h,color:"dark"===m?"#fff":"#465B64"}}))}},22823:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(57535);t.Z=(0,r.createElement)(a.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1"},(0,r.createElement)(a.Path,{fill:(0,o.m)(),d:"M24,11.6909333 C24,18.1477333 18.7256,23.3818667 12.2181333,23.3818667 C10.1522667,23.3818667 8.21146667,22.8538667 6.52293333,21.9272 L0,24 L2.12666667,17.7274667 C1.05386667,15.9658667 0.436,13.8997333 0.436,11.6909333 C0.436,5.23413333 5.71093333,0 12.2181333,0 C18.7261333,0 24,5.23413333 24,11.6909333 Z M12.2181333,1.86186667 C6.75573333,1.86186667 2.31253333,6.2712 2.31253333,11.6909333 C2.31253333,13.8416 3.0136,15.8333333 4.19946667,17.4536 L2.96186667,21.104 L6.76853333,19.8941333 C8.33253333,20.9210667 10.2061333,21.52 12.2184,21.52 C17.68,21.52 22.124,17.1112 22.124,11.6914667 C22.124,6.27173333 17.6802667,1.86186667 12.2181333,1.86186667 Z M18.1677333,14.3834667 C18.0949333,14.2642667 17.9026667,14.1922667 17.6141333,14.0490667 C17.3250667,13.9058667 15.9048,13.2122667 15.6408,13.1170667 C15.376,13.0216 15.1829333,12.9736 14.9906667,13.2602667 C14.7984,13.5472 14.2448,14.1922667 14.076,14.3834667 C13.9074667,14.5752 13.7392,14.5992 13.4501333,14.4557333 C13.1616,14.3125333 12.2312,14.0096 11.128,13.0336 C10.2696,12.2741333 9.68986667,11.3365333 9.52133333,11.0493333 C9.35306667,10.7626667 9.50373333,10.6077333 9.648,10.4650667 C9.77813333,10.3365333 9.93706667,10.1304 10.0813333,9.9632 C10.2261333,9.79573333 10.2741333,9.67653333 10.3698667,9.48506667 C10.4666667,9.29386667 10.4184,9.12666667 10.3458667,8.98293333 C10.2738667,8.83973333 9.69573333,7.4296 9.4552,6.85573333 C9.21466667,6.2824 8.9744,6.37786667 8.8056,6.37786667 C8.63733333,6.37786667 8.44453333,6.35386667 8.252,6.35386667 C8.05946667,6.35386667 7.7464,6.4256 7.4816,6.71226667 C7.21706667,6.9992 6.4712,7.69253333 6.4712,9.1024 C6.4712,10.5125333 7.5056,11.8749333 7.6504,12.0658667 C7.79466667,12.2568 9.64773333,15.2445333 12.5837333,16.392 C15.52,17.5389333 15.52,17.1562667 16.0496,17.1082667 C16.5786667,17.0605333 17.7578667,16.4152 17.9994667,15.7464 C18.2394667,15.0765333 18.2394667,14.5029333 18.1677333,14.3834667 Z"}))},59770:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},pf:function(){return d},Xd:function(){return m}});var r=n(65736),a=n(57535),o=n(87165),i=n(60249),s=n(4114),l=n(11026),c=n(22823);const __=r.__,_x=r._x,u="whatsapp-button",p=__("WhatsApp Button","jetpack"),d="https://api.whatsapp.com/send?phone=",m=(__("Chat on WhatsApp","jetpack"),__("Hi, I got your WhatsApp information from your website.","jetpack"),{title:p,description:__("Let your visitors send you a message on WhatsApp with the tap of a button.","jetpack"),icon:{src:c.Z,foreground:(0,a.m)()},category:"grow",parent:["jetpack/send-a-message"],keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1,reusable:!1,align:["left","center","right"]},attributes:o.Z,edit:i.Z,save:s.Z,example:{attributes:{countryCode:"1",phoneNumber:"555-123-4567"}},deprecated:[l.Z]})},4114:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770);function l(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,buttonText:u,backgroundColor:p,colorClass:d,openInNewTab:m}=t,h=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",f=o()(n,d?"is-color-"+d:void 0,u.length?void 0:"has-no-text"),g=m?"_blank":"_self";return(0,r.createElement)("div",{className:f},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+h;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:p,color:"dark"===d?"#fff":"#465B64"},target:g,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:u})))}},96594:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(20489);const __=a.__,c="seo",u={render:()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("SEO Description","jetpack")},(0,r.createElement)(l.Z,null))),(0,r.createElement)(i.PluginPrePublishPanel,{initialOpen:!0,id:"seo-title",title:(0,r.createElement)("span",{id:"seo-defaults",key:"seo-title-span"},__("SEO Description","jetpack"))},(0,r.createElement)(l.Z,null)))}},20489:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(9818);const __=i.__,_n=i._n;class u extends o.Component{constructor(){super(...arguments),a()(this,"onMessageChange",(e=>{this.props.updateSeoDescription(e.target.value)}))}render(){const{seoDescription:e}=this.props;return(0,o.createElement)("div",{className:"jetpack-seo-message-box"},(0,o.createElement)("textarea",{value:e,onChange:this.onMessageChange,placeholder:__("Write a description…","jetpack"),rows:4}),(0,o.createElement)("div",{className:"jetpack-seo-character-count"},(0,i.sprintf)(
+/* translators: Placeholder is a number of characters in a sentence. */
+_n("%d character","%d characters",e.length,"jetpack"),e.length)))}}t.Z=(0,s.compose)([(0,c.withSelect)((e=>({seoDescription:(0,l.get)(e("core/editor").getEditedPostAttribute("meta"),["advanced_seo_description"],"")}))),(0,c.withDispatch)((e=>({updateSeoDescription(t){e("core/editor").editPost({meta:{advanced_seo_description:t}})}})))])(u)},71730:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(92819),i=n(55609),s=n(9818),l=n(70609),c=n(32673);const __=a.__,u="shortlinks",p={render:()=>(0,r.createElement)(m,null)};class d extends r.Component{render(){const{shortlink:e}=this.props;return e?(0,r.createElement)(c.Z,null,(0,r.createElement)(i.PanelBody,{title:__("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},(0,r.createElement)(l.Z,{link:e}))):null}}const m=(0,s.withSelect)((e=>{const t=e("core/editor").getCurrentPost();return{shortlink:(0,o.get)(t,"jetpack_shortlink","")}}))(d)},47175:function(e,t,n){"use strict";n.d(t,{LC:function(){return r},a7:function(){return a},Rh:function(){return o}});const r="jp_pay_product",a="USD",o=[a,"EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"]},81255:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{setAttributes:t,postLinkText:n}=e;return(0,r.createElement)(a.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,r.createElement)(a.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>t({postLinkText:e}),value:n})))}},56511:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},save:e=>{let{attributes:t}=e;const{productId:n}=t;return n?(0,r.createElement)(r.RawHTML,null,`[simple-payment id="${n}"]`):null}}},75050:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175);const __=p.__,_n=p._n;class E extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(h.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,o.createElement)(h.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,o.createElement)(h.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>this.props.setAttributes({postLinkText:e}),value:this.props.attributes.postLinkText}))))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r}=this.props,{productId:a}=e;!a&&t&&this.saveProduct();const o=n&&n!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&r({...o&&{postLinkUrl:n},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.w)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.w)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const w=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u.link}}));t.Z=(0,d.compose)(w,d.withInstanceId)(E)},19372:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(75050),u=n(63290);const __=a.__,_x=a._x,p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),d=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",m={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:d},__("Support reference","jetpack"))),icon:{src:p,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};t.Z=m},63290:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.w)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},81666:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175),E=n(81255);const __=p.__,_n=p._n;class w extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{postLinkText:this.props.attributes.postLinkText,setAttributes:this.props.setAttributes}))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r,isPostEditor:a}=this.props,{productId:o}=e;(!o&&t||!a)&&this.saveProduct();const i=n&&n!==this.props.attributes.postLinkUrl,s=!this.props.attributes.postLinkText;(i||s)&&r({...i&&{postLinkUrl:n},...s&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.T4)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),"aria-label":__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.T4)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const _=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u?.link,isPostEditor:Object.keys(o()).length>0}}));t.Z=(0,d.compose)(_,d.withInstanceId)(w)},8565:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(92819),s=n(55609),l=n(58703);const __=a.__,c=e=>t=>e({featuredMediaId:(0,i.get)(t,"id",0),featuredMediaUrl:(0,i.get)(t,"url",null),featuredMediaTitle:(0,i.get)(t,"title",null)});t.Z=e=>{let{featuredMediaId:t,featuredMediaUrl:n,featuredMediaTitle:a,setAttributes:i}=e;return t?(0,r.createElement)("div",null,(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarItem,null,(()=>(0,r.createElement)(o.MediaUpload,{onSelect:c(i),allowedTypes:["image"],value:t,render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Image","jetpack"),onClick:t})}}))),(0,r.createElement)(s.ToolbarButton,{icon:"trash",title:__("Remove Image","jetpack"),onClick:()=>i({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}))),(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:n,alt:a})))):(0,r.createElement)(o.MediaPlaceholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:"format-image"}),labels:{title:__("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:c(i)})}},35289:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(81666),u=n(73e3),p=n(56511),d=n(19372),m=n(60206);const __=a.__,_x=a._x,h="simple-payments",f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),g=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",b={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:g},__("Support reference","jetpack"))),icon:{src:f,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,example:{attributes:{price:25,title:__("Jetpack t-shirt","jetpack"),content:__("Take flight in ultimate comfort with this stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:m}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},deprecated:[p.Z,d.Z]}},87079:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(22323),i=n(23879);const __=a.__;t.Z=e=>{let{title:t="",content:n="",formattedPrice:a="",multiple:s=!1,featuredMediaUrl:l=null,featuredMediaTitle:c=null}=e;return(0,r.createElement)("div",{className:"jetpack-simple-payments-wrapper"},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},l&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("figure",{className:"jetpack-simple-payments-image"},(0,r.createElement)("img",{src:l,alt:c}))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},t&&(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,t)),n&&(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),a&&(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,a)),(0,r.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},s&&(0,r.createElement)("div",{className:"jetpack-simple-payments-items"},(0,r.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),(0,r.createElement)("div",{className:"jetpack-simple-payments-button"},(0,r.createElement)("img",{alt:__("Pay with PayPal","jetpack"),src:o,srcSet:`${i} 2x`}))))))}},73e3:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.T4)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},37299:function(e,t,n){"use strict";n.d(t,{N3:function(){return i},w:function(){return l},T4:function(){return c}});var r=n(75139),a=n(92819),o=n(9818);n(47175);const i=e=>{const t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},s=function(){var e,t,n;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en-US";const a=window?.window?.navigator;return a?.languages?.length?a.languages[0]:null!==(e=null!==(t=null!==(n=a?.userLanguage)&&void 0!==n?n:a?.language)&&void 0!==t?t:a?.browserLanguage)&&void 0!==e?e:r},l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const{precision:o,symbol:i}=(0,r.X)(t),s=e.toFixed(o);return n?`${s} ${(0,a.trimEnd)(i,".")}`:s},c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!window.Intl||"function"!=typeof Intl.NumberFormat)return l(e,t,n);const{siteLocale:r}=(0,o.select)("core/block-editor").getSettings(),a=[r,s(),"en-US"];let i,c={};for(i of(n&&(c={style:"currency",currency:t}),a))try{return Intl.NumberFormat(i,c).format(e)}catch{continue}return l(e,t,n)}},98972:function(e,t,n){"use strict";n.d(t,{G:function(){return c},J:function(){return u}});var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(92819),l=n(58703);const __=i.__,_x=i._x;function c(e){let{attributes:{autoplay:t,delay:n,effect:a,images:i,sizeSlug:l},imageSizeOptions:c,onChangeImageSize:u,setAttributes:p}=e;const d="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,m=[{label:_x("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:_x("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Autoplay","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Autoplay","jetpack"),help:__("Autoplay between slides","jetpack"),checked:t,onChange:e=>{p({autoplay:e})}}),t&&(0,r.createElement)(o.RangeControl,{label:__("Delay between transitions (in seconds)","jetpack"),value:n,onChange:e=>{p({delay:e})},min:1,max:5}),t&&d&&(0,r.createElement)("span",null,__("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Effects","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Transition effect","jetpack"),value:a,onChange:e=>{p({effect:e})},options:m})),!(0,s.isEmpty)(i)&&!(0,s.isEmpty)(c)&&(0,r.createElement)(o.PanelBody,{title:__("Image Settings","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Image Size","jetpack"),value:l,options:c,onChange:e=>u(e)})))}function u(e){let{allowedMediaTypes:t,attributes:{images:n},onSelectImages:i}=e;return(0,r.createElement)(r.Fragment,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{onSelect:i,allowedTypes:t,multiple:!0,gallery:!0,value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Slideshow","jetpack"),onClick:t})}})))))}},44890:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);async function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".swiper-container",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicks:!1,preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,threshold:5,touchStartPreventDefault:!1,on:(0,r.mapValues)(a,(e=>function(){e(this)}))},[{default:i}]=await Promise.all([Promise.all([n.e(860),n.e(390)]).then(n.t.bind(n,16402,23)),Promise.all([n.e(860),n.e(390)]).then(n.bind(n,78858))]);return new i(e,(0,r.merge)({},o,t))}},67448:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(11313),u=n(9818),p=n(52175),d=n(12238),m=n(55609),h=n(94120),f=n(98972),g=n(712);const __=i.__,b=["image"],v=(e,t)=>{const n=(0,l.pick)(e,["alt","id","link","caption"]);return n.url=(0,l.get)(e,["sizes",t,"url"])||(0,l.get)(e,["media_details","sizes",t,"source_url"])||e.url,n};class k extends o.Component{constructor(){super(...arguments),a()(this,"onSelectImages",(e=>{const{sizeSlug:t}=this.props.attributes,n=e.map((e=>v(e,t)));this.setAttributes({images:n})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,l.filter)(this.props.attributes.images,((t,n)=>e!==n));this.setState({selectedImage:null}),this.setAttributes({images:t})})),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],n=this.props.attributes.sizeSlug,{lockPostSaving:r,unlockPostSaving:a,noticeOperations:o}=this.props,i="slideshowBlockLock";r(i),(0,d.mediaUpload)({allowedTypes:b,filesList:e,onFileChange:e=>{const r=e.map((e=>v(e,n)));this.setAttributes({images:[...t,...r]}),r.every((e=>(0,c.isBlobURL)(e.url)))||a(i)},onError:o.createErrorNotice})})),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files))),a()(this,"updateImagesSize",(e=>{const{images:t}=this.props.attributes,{resizedImages:n}=this.props,r=t.map((t=>{const r=n.find((e=>{let{id:n}=e;return parseInt(n,10)===parseInt(t.id,10)})),a=(0,l.get)(r,["sizes",e,"source_url"]);return{...t,...a&&{url:a}}}));this.setAttributes({images:r,sizeSlug:e})})),this.state={selectedImage:null}}componentDidMount(){const{ids:e,sizeSlug:t}=this.props.attributes;t||this.setAttributes({sizeSlug:e.length?"full":"large"})}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}getImageSizeOptions(){const{imageSizes:e}=this.props;return(0,l.map)(e,(e=>{let{name:t,slug:n}=e;return{value:n,label:t}}))}render(){const{attributes:e,className:t,isSelected:n,noticeOperations:r,noticeUI:a}=this.props,{align:i,autoplay:s,delay:l,effect:c,images:u}=e,d=this.getImageSizeOptions(),v=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.InspectorControls,null,(0,o.createElement)(f.G,{attributes:e,imageSizeOptions:d,onChangeImageSize:this.updateImagesSize,setAttributes:e=>this.setAttributes(e)})),(0,o.createElement)(p.BlockControls,null,(0,o.createElement)(f.J,{allowedMediaTypes:b,attributes:e,onSelectImages:this.onSelectImages})));return 0===u.length?(0,o.createElement)(o.Fragment,null,v,(0,o.createElement)(p.MediaPlaceholder,{icon:(0,o.createElement)(p.BlockIcon,{icon:h.qv}),className:t,labels:{title:__("Slideshow","jetpack"),instructions:__("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:b,multiple:!0,notices:a,onError:r.createErrorNotice})):(0,o.createElement)(o.Fragment,null,v,a,(0,o.createElement)(g.Z,{align:i,autoplay:s,className:t,delay:l,effect:c,images:u,onError:r.createErrorNotice}),(0,o.createElement)(m.DropZone,{onFilesDrop:this.addFiles}),n&&(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},(0,o.createElement)(m.FormFileUpload,{multiple:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack"))))}}t.ZP=(0,s.compose)((0,u.withSelect)(((e,t)=>({imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce(((t,n)=>{const r=e("core").getMedia(n);return[...t,{id:n,sizes:(0,l.get)(r,["media_details","sizes"])}]}),[])}))),(0,u.withDispatch)((e=>{const{lockPostSaving:t,unlockPostSaving:n}=e("core/editor");return{lockPostSaving:t,unlockPostSaving:n}})),m.withNotices)(k)},94120:function(e,t,n){"use strict";n.d(t,{qv:function(){return h},u2:function(){return g},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(67448),s=n(91957),l=n(4830),c=n(57535),u=n(20510),p=n(65784),d=n(6425),m=n(85983);const __=a.__,_x=a._x,h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none"},(0,r.createElement)(o.Path,{d:"M21 8V19C21 20.1046 20.1057 21 19.0011 21C15.8975 21 9.87435 21 6 21",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Rect,{x:"3.75",y:"3.75",width:"13.5",height:"13.5",rx:"0.875",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Path,{d:"M9 14L12 11L9 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})),f={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:p},{alt:"",caption:"",id:23,url:d},{alt:"",caption:"",id:23,url:m}],effect:"slide"},g="slideshow",b={title:__("Slideshow","jetpack"),category:(0,u.Z)("media","layout"),keywords:[_x("image","block search term","jetpack"),_x("gallery","block search term","jetpack"),_x("slider","block search term","jetpack")],description:__("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:{src:h,foreground:(0,c.m)()},edit:i.ZP,save:s.Z,transforms:l.Z,example:{attributes:f}}},91957:function(e,t,n){"use strict";var r=n(69307),a=n(712);t.Z=e=>{let{attributes:{align:t,autoplay:n,delay:o,effect:i,images:s},className:l}=e;return(0,r.createElement)(a.Z,{align:t,autoplay:n,className:l,delay:o,effect:i,images:s})}},712:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(54166),c=n(65736),u=n(11313),p=n(92819),d=n(52175),m=n(55609),h=n(44890),f=n(10099);const __=c.__;class g extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"pendingRequestAnimationFrame",null),a()(this,"resizeObserver",null),a()(this,"initializeResizeObserver",(e=>{this.clearResizeObserver(),this.resizeObserver=new l.Z((()=>{this.clearPendingRequestAnimationFrame(),this.pendingRequestAnimationFrame=requestAnimationFrame((()=>{(0,f.$m)(e),e.update()}))})),this.resizeObserver.observe(e.el)})),a()(this,"clearPendingRequestAnimationFrame",(()=>{this.pendingRequestAnimationFrame&&(cancelAnimationFrame(this.pendingRequestAnimationFrame),this.pendingRequestAnimationFrame=null)})),a()(this,"clearResizeObserver",(()=>{this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)})),a()(this,"prefersReducedMotion",(()=>"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)),a()(this,"buildSwiper",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(0,h.Z)(t.slideshowRef.current,{autoplay:!(!t.props.autoplay||t.prefersReducedMotion())&&{delay:1e3*t.props.delay,disableOnInteraction:!1},effect:t.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:t.btnNextRef.current,prevEl:t.btnPrevRef.current},pagination:{clickable:!0,el:t.paginationRef.current,type:"bullets"}},{init:f.UA,imagesReady:f.$m,paginationRender:f.Wj,transitionEnd:f.HV})})),this.slideshowRef=(0,o.createRef)(),this.btnNextRef=(0,o.createRef)(),this.btnPrevRef=(0,o.createRef)(),this.paginationRef=(0,o.createRef)()}componentDidMount(){const{onError:e}=this.props;this.buildSwiper().then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{e(__("The Swiper library could not be loaded.","jetpack"))}))}componentWillUnmount(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}componentDidUpdate(e){const{align:t,autoplay:n,delay:r,effect:a,images:o,onError:i}=this.props;if(t===e.align&&(0,p.isEqual)(o,e.images)||this.swiperInstance&&this.swiperInstance.update(),a!==e.effect||n!==e.autoplay||r!==e.delay||o!==e.images){let t;t=this.swiperIndex?o.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{i(__("The Swiper library could not be loaded.","jetpack"))}))}}render(){if(!this.props?.images?.length)return null;const{autoplay:e,className:t,delay:n,effect:r,images:a}=this.props;return(0,o.createElement)("div",{className:t,"data-autoplay":e||null,"data-delay":e?n:null,"data-effect":r},(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},(0,o.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},a.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return(0,o.createElement)("li",{className:s()("wp-block-jetpack-slideshow_slide","swiper-slide",(0,u.isBlobURL)(a)&&"is-transient"),key:r||a},(0,o.createElement)("figure",null,(0,o.createElement)("img",{alt:t,className:`wp-block-jetpack-slideshow_image wp-image-${r}`,"data-id":r,src:a}),(0,u.isBlobURL)(a)&&(0,o.createElement)(m.Spinner,null),n&&(0,o.createElement)(d.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),(0,o.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}a()(g,"defaultProps",{effect:"slide"}),t.Z=g},10099:function(e,t,n){"use strict";n.d(t,{HV:function(){return l},UA:function(){return i},Wj:function(){return c},$m:function(){return s}});var r=n(81975),a=n(92819);const o="wp-block-jetpack-slideshow_autoplay-paused";function i(e){s(e),l(e);document.querySelector("body").dispatchEvent(new Event("jetpack-lazy-images-load")),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function s(e){if(!e||!e.el)return;const t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(!t)return;const n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,1.7777777777777777),1),a="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,a),i=`${Math.floor(o)}px`,s=`${Math.floor(o/2)}px`;e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=i,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=s}function l(e){(0,a.forEach)(e.slides,((t,n)=>{t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){const t=e.slides[e.activeIndex];if(!t)return;const n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:(0,r.escapeHTML)(a.alt))}(e)}function c(e){(0,a.forEach)(e.pagination.bullets,(t=>{t.addEventListener("click",(()=>{const t=e.slides[e.realIndex];setTimeout((()=>{t.focus()}),500)}))}))}},4830:function(e,t,n){"use strict";var r=n(4981),a=n(92819);function o(e){return(0,a.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const i={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>o(e).length>0,transform:e=>{const t=o(e);return(0,r.createBlock)("jetpack/slideshow",{images:t.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:e=>{let{images:t}=e;const n=o(t);return n.length>0?(0,r.createBlock)("jetpack/slideshow",{images:n.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,r.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n}=e;return(0,r.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:e=>{let{images:t}=e;return t.length>0?t.map((e=>{let{id:t,url:n,alt:a,caption:o}=e;return(0,r.createBlock)("core/image",{id:t,url:n,alt:a,caption:o})})):(0,r.createBlock)("core/image")}}]};t.Z=i},23133:function(e,t,n){"use strict";n.d(t,{z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(80505),l=n(52489),c=n(79465);const __=i.__,u=[{title:__("Google Search","jetpack"),icon:"google",name:"google",preview:s.Z},{title:__("Facebook","jetpack"),icon:"facebook",name:"facebook",preview:e=>(0,o.createElement)(l.Z,a()({type:"article"},e))},{title:__("Twitter","jetpack"),icon:"twitter",name:"twitter",preview:e=>(0,o.createElement)(c.Z,e)}]},42366:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p},w6:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(8277),c=n(6538);const __=a.__,u="social-previews",p={render:()=>(0,r.createElement)(d,null)},d=function(e){let{showUpgradeNudge:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,n&&(0,r.createElement)(c.Z,{showUpgradeNudge:t,onClose:()=>a(!1)}),(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t}))),(0,r.createElement)(i.PluginPrePublishPanel,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t})))}},6538:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(28723),l=n(23133),c=n(51591),u=n(479);const __=a.__;t.Z=(0,i.withSelect)(((e,t)=>{if(t.showUpgradeNudge)return{};const{getMedia:n,getUser:r}=e("core"),{getCurrentPost:a,getEditedPostAttribute:o}=e("core/editor"),{getTweetTemplate:i,getTweetStorm:s,getShareMessage:l,isTweetStorm:c}=e("jetpack/publicize"),p=o("featured_media"),d=o("author"),m=d&&r(d),h={post:a(),title:o("title"),description:o("meta")?.advanced_seo_description||o("excerpt")||o("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:o("link"),author:m?.name,image:!!p&&(0,u.i)(n(p))};let f=[];return c()?f=s():f.push({...i(),text:l(),card:{...h,type:h.image?"summary_large_image":"summary"}}),{...h,tweets:f,isTweetStorm:c()}}))((function(e){let{onClose:t,showUpgradeNudge:n,image:a,title:i,description:u,url:p,author:d,isTweetStorm:m,tweets:h}=e;const f=l.z.map((e=>({...e,title:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(c.av,{serviceName:e.icon}),e.title)})));return(0,r.createElement)(o.Modal,{onRequestClose:t,title:__("Social Previews","jetpack"),className:"jetpack-social-previews__modal"},n?(0,r.createElement)(s.Z,null):(0,r.createElement)(o.TabPanel,{className:"jetpack-social-previews__modal-previews",tabs:f,initialTabName:m?"twitter":null,orientation:"vertical"},(e=>(0,r.createElement)("div",null,(0,r.createElement)(e.preview,{title:i,description:u,url:p,author:d,image:a,isTweetStorm:m,tweets:h})))))}))},8277:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(23133),s=n(51591);const __=a.__;t.Z=function(e){let{openModal:t,showUpgradeNudge:n}=e;const a=n?__("Learn more","jetpack"):__("Preview","jetpack",0),l=n?__("Learn more about paid plans","jetpack"):__("Open Social Previews","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__panel"},(0,r.createElement)("p",null,__("Preview what this will look like on social networks and Google search.","jetpack")),n&&(0,r.createElement)("p",null,__("Business or eCommerce plan required.","jetpack")),(0,r.createElement)("div",{className:"jetpack-gutenberg-social-icons"},i.z.map((e=>(0,r.createElement)(s.av,{key:e.icon,serviceName:e.icon,className:"jetpack-social-previews__icon"})))),(0,r.createElement)(o.Button,{isSecondary:!0,onClick:t,label:l},a))}},28723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(69307),a=n(55609),o=n(65736),i=n(11973),s=n(37447),l=n(18733),c=n(21409),u=n(42366);const __=o.__;function p(){const e=(0,c.Z)(u.u2)?.details?.required_plan,[t,n,o]=(0,l.Z)(e,(()=>{i.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:e,block:u.u2})})),p=o?__("Redirecting…","jetpack"):__("Upgrade","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__modal-upgrade"},(0,r.createElement)("img",{className:"jetpack-social-previews__upgrade-illustration",src:s,width:"351",height:"264",alt:""}),(0,r.createElement)("div",{className:"jetpack-social-previews__upgrade-description"},(0,r.createElement)("h2",{className:"jetpack-social-previews__upgrade-heading"},__("Upgrade to a Business plan to unlock the power of our SEO tools","jetpack")),(0,r.createElement)("ul",{className:"jetpack-social-previews__upgrade-feature-list"},(0,r.createElement)("li",null,__("Preview your site’s content as it will appear on Facebook, Twitter, and the WordPress.com Reader.","jetpack")),(0,r.createElement)("li",null,__("Control how page titles will appear on Google search results and social networks.","jetpack")),(0,r.createElement)("li",null,__("Customize your front page metadata to change how your site appears to search engines.","jetpack"))),(0,r.createElement)(a.Button,{href:t,isPrimary:!0,label:__("Purchase a Business plan to access social previews","jetpack"),onClick:n,target:"_top",isBusy:o},p)))}},479:function(e,t,n){"use strict";function r(e){return e?e.media_details?.sizes?.large?.source_url||e.source_url:null}n.d(t,{i:function(){return r}})},22547:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(58703);const __=i.__;t.Z=e=>{let{allowedMediaTypes:t,attributes:{mediaFiles:n},onSelectMedia:i}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{title:__("Edit Story","jetpack"),onSelect:i,allowedTypes:t,addToGallery:!0,multiple:"add",value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(s.Z,{label:__("Edit Story","jetpack"),onClick:t})}}))))))}},68329:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(65736),l=n(11313),c=n(9818),u=n(52175),p=n(55609),d=n(20222),m=n(22547),h=n(4045);const __=s.__,f=["image","video"],g=e=>{const t=(0,i.pick)(e,["alt","title","id","link","type","mime","caption","width","height"]);return t.url=(0,i.get)(e,["media_details","original","url"])||(0,i.get)(e,["media_details","videopress","original"])||(0,i.get)(e,["media_details","sizes","large","source_url"])||(0,i.get)(e,["sizes","large","url"])||e.url,t.type=e.media_type||e.type,t.mime=e.mime_type||e.mime,t.title=t.title?.rendered||t.title,t.width=t.width||e.media_details?.width,t.height=t.height||e.media_details?.height,t};t.Z=(0,p.withNotices)((function(e){let{attributes:t,className:n,isSelected:a,noticeOperations:i,noticeUI:s,setAttributes:p}=e;const{mediaFiles:b}=t,{lockPostSaving:v,unlockPostSaving:k}=(0,c.useDispatch)("core/editor"),y="storyBlockLock",E=e=>{const t=e.map((e=>{if(!isNaN(e)){return b.find((t=>t.id===e))||{id:e}}return e})).map(g),n=t.filter((e=>!(0,l.isBlobURL)(e.url)));t.length!==n.length?v(y):k(y),p({mediaFiles:t})},w=(0,r.createElement)(m.Z,{allowedMediaTypes:f,attributes:t,onSelectMedia:E}),_=!!b.length,C=(0,r.createElement)(u.MediaPlaceholder,{addToGallery:_,isAppender:_,className:n,disableMediaButtons:_&&!a,icon:!_&&(0,r.createElement)(u.BlockIcon,{icon:d.qv}),labels:{title:!_&&__("Story","jetpack"),instructions:!_&&__("Drag images and videos, upload new ones, or select files from your library.","jetpack")},onSelect:E,accept:f.map((e=>e+"/*")).join(","),allowedTypes:f,multiple:"add",value:b,notices:_?void 0:s,onError:i.createErrorNotice});return _?(0,r.createElement)(r.Fragment,null,w,s,(0,r.createElement)("div",{className:o()("wp-block-jetpack-story","wp-story",n)},(0,r.createElement)(h.Z,{slides:b,disabled:!a,showSlideCount:a,shadowDOM:{enabled:!1},playInFullscreen:!1,tapToPlayPause:!1,playOnNextSlide:!1})),a&&C):(0,r.createElement)(r.Fragment,null,w,C)}))},96178:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,n(41632).Z)((0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M17 5a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2h9z"}),(0,r.createElement)(a.Path,{d:"M13 4H5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2z"}),(0,r.createElement)(a.Path,{d:"M7 16h8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"})));t.Z=o},20222:function(e,t,n){"use strict";n.d(t,{qv:function(){return i.Z},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(68329),o=n(1436),i=n(96178),s=n(20510),l=n(57535),c=n(15915);const __=r.__,_x=r._x,u={mediaFiles:[{alt:"",caption:"",mime:"image/jpg",type:"image",id:22,url:c}]},p="story",d={title:__("Story","jetpack"),category:(0,s.Z)("media","layout"),keywords:[_x("story","block search term","jetpack"),_x("image","block search term","jetpack"),_x("video","block search term","jetpack"),_x("gallery","block search term","jetpack")],description:__("Add an interactive story.","jetpack"),attributes:{settings:{type:"object"},mediaFiles:{type:"array",default:[]}},supports:{html:!1},icon:{src:i.Z,foreground:(0,l.m)()},edit:a.Z,save:o.Z,example:{attributes:u}}},18754:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(55609);function o(e){let{currentMedia:t}=e;const n=t&&"image"===t.type?t.url:null;return(0,r.createElement)("div",{className:"wp-story-background"},(0,r.createElement)("div",{className:"wp-story-background-image",style:{backgroundImage:n?`url("${n}")`:"none"}}),(0,r.createElement)("div",{className:"wp-story-background-blur"}),(0,r.createElement)(a.SVG,{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"0",height:"0"},(0,r.createElement)("filter",{id:"gaussian-blur-18"},(0,r.createElement)("feGaussianBlur",{stdDeviation:"18"}))))}},85974:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609);const __=i.__;function l(e){let{isEllipsis:t,disabled:n,index:a,isSelected:l,progress:c,onClick:u}=e;const p=n||t;let d=null;return t||(d=l?(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Slide %d, currently selected","jetpack"),a+1):(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Go to slide %d","jetpack"),a+1)),(0,r.createElement)(s.Button,{role:p?"presentation":"tab",key:a,className:o()("wp-story-pagination-bullet",{"wp-story-pagination-ellipsis":t}),"aria-label":d,"aria-disabled":p||l,onClick:p||l?void 0:u,disabled:p},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar"},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar-progress",style:{width:`${c}%`}})))}},9610:function(e,t,n){"use strict";n.d(t,{b:function(){return l},r:function(){return c}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{className:t,size:n,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button","circle-icon","outlined","bordered",t),style:{width:`${n}px`,height:`${n}px`}},l))},c=e=>{let{className:t,size:n=24,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button",t),style:{width:`${n}px`,height:`${n}px`}},l))}},1019:function(e,t,n){"use strict";var r=n(69307);t.Z=()=>(0,r.createElement)("div",{className:"wp-story-loading-spinner"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__outer"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__inner"})))},50281:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const _x=a._x;function s(e){let{playing:t,muted:n,onPlayPressed:a,onMutePressed:s,showMute:l}=e;return(0,r.createElement)("div",{className:"wp-story-controls"},(0,r.createElement)(o.r,{isPressed:t,label:t?_x("pause","Button tooltip text","jetpack"):_x("play","Button tooltip text","jetpack",0),onClick:a},t?(0,r.createElement)(i.fp,null):(0,r.createElement)(i.o1,null)),l&&(0,r.createElement)(o.r,{isPressed:n,label:n?_x("unmute","Button tooltip text","jetpack"):_x("mute","Button tooltip text","jetpack",0),onClick:s},n?(0,r.createElement)(i.xb,null):(0,r.createElement)(i.MC,null)))}},40220:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const __=a.__;function s(e){let{fullscreen:t,onExitFullscreen:n,siteIconUrl:a,storyTitle:s}=e;return t?(0,r.createElement)("div",{className:"wp-story-meta"},(0,r.createElement)("div",{className:"wp-story-icon"},(0,r.createElement)("img",{alt:__("Site icon","jetpack"),src:a,width:"40",height:"40"})),(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"wp-story-title"},s)),(0,r.createElement)(o.r,{className:"wp-story-exit-fullscreen",label:__("Exit Fullscreen","jetpack"),onClick:n},(0,r.createElement)(i.Tw,null))):null}},29089:function(e,t,n){"use strict";n.d(t,{o1:function(){return s},fp:function(){return l},Tw:function(){return c},MC:function(){return u},xb:function(){return p},JM:function(){return d},Vq:function(){return m}});var r=n(69307),a=n(55609),o=n(41632);const i=e=>{let{children:t,size:n}=e;return(0,o.Z)(t,n,n)},s=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M8 5v14l11-7z"}))},l=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}))},c=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}))},u=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}))},p=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"}))},d=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}))},m=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}))}},27870:function(e,t,n){"use strict";n.d(t,{gT:function(){return r.Z},ZX:function(){return a.Z},h4:function(){return o.Z},aV:function(){return i.Z},Aq:function(){return s.Z},WB:function(){return l.Z},pU:function(){return c.pU}});var r=n(85974),a=n(50281),o=n(40220),i=n(46531),s=n(18754),l=n(1019),c=n(64816);n(9610)},64816:function(e,t,n){"use strict";n.d(t,{pU:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{title:t,alt:n,className:r,id:a,mediaRef:i,mime:l,sizes:c,srcset:u,url:p}=e;return(0,o.createElement)("img",{ref:i,"data-id":a,"data-mime":l,title:t,alt:n,src:p,className:s()("wp-story-image",`wp-image-${a}`,r),srcSet:u,sizes:c})},c=e=>{let{title:t,className:n,id:r,mediaRef:a,mime:i,url:l,poster:c}=e;return(0,o.createElement)("video",{className:s()("wp-story-video","intrinsic-ignore",`wp-video-${r}`,n),ref:a,"data-id":r,title:t,type:i,src:l,poster:c,tabIndex:-1,preload:"auto",playsInline:!0})},u=e=>{let{targetAspectRatio:t,cropUpTo:n,type:r,width:i,height:s,...u}=e,p=null;if(i&&s){const e=i/s;if(e>=t){e>t/(1-n)||(p="wp-story-crop-wide")}else{e<t*(1-n)||(p="wp-story-crop-narrow")}}const d="video"===r||(u.mime||"").startsWith("video/");return(0,o.createElement)("figure",null,d?(0,o.createElement)(c,a()({},u,{className:p})):(0,o.createElement)(l,a()({},u,{className:p})))}},46531:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(48735),o=n.n(a),i=n(65736),s=n(9610),l=n(29089);const __=i.__;function c(e){let{ended:t,hasPrevious:n,onNextSlide:a,onPreviousSlide:c,icon:u,slideCount:p,showSlideCount:d}=e;const m=(0,r.useCallback)((e=>{t||(e.stopPropagation(),c())}),[c,t]),h=(0,r.useCallback)((e=>{t||(e.stopPropagation(),a())}),[a,t]);return(0,r.createElement)("div",{className:"wp-story-overlay"},d&&(0,r.createElement)("div",{className:"wp-story-embed-icon"},u,(0,r.createElement)("span",null,p)),!d&&(0,r.createElement)("div",{className:"wp-story-embed-icon-expand"},(0,r.createElement)(o(),{role:"img"})),n&&(0,r.createElement)("div",{className:"wp-story-prev-slide",onClick:m},(0,r.createElement)(s.b,{size:44,label:__("Previous Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.Vq,{size:24}):(0,r.createElement)(l.JM,{size:24}))),(0,r.createElement)("div",{className:"wp-story-next-slide",onClick:h},(0,r.createElement)(s.b,{size:44,label:__("Next Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.JM,{size:24}):(0,r.createElement)(l.Vq,{size:24}))))}},58871:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(31158),s=n(29891),l=n(72096);const c=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);function u(e){let{className:t,fullscreenClassName:n,bodyFullscreenClassName:a,fullscreen:u,shadowDOM:p,onKeyDown:d,onExitFullscreen:m,playerQuerySelector:h,children:f}=e;const g=(0,r.useRef)(),b=(0,r.useRef)(),[v,k]=(0,r.useState)(null),y=c&&s.am(),E=u&&!y,w=u&&y;return(0,r.useLayoutEffect)((()=>{if(y)u?g.current&&s.uP(g.current,m):s.bG()&&s.JF();else if(u){if(k([document.documentElement.scrollLeft,document.documentElement.scrollTop]),document.body.classList.add(a),document.getElementsByTagName("html")[0].classList.add(a),b.current){const e=b.current.querySelector(h);e&&e.focus()}}else if(document.body.classList.remove(a),document.getElementsByTagName("html")[0].classList.remove(a),v){window.scrollTo(...v);const e=g.current.querySelector(h);e&&e.focus()}}),[u]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,p,(0,r.createElement)("div",{ref:g,className:o()(t,{[n]:w}),onKeyDown:d},!E&&f)),(0,r.createElement)(l.Z,{className:o()(t,{[n]:E}),isOpened:E,onRequestClose:m,shadowDOM:p,onKeyDown:E&&d,focusOnMount:!1,modalRef:b},E&&f))}},4045:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(9818),o=n(39630),i=(n(66930),n(54616)),s=n(58871);function l(e){let{id:t,slides:n,metadata:l,disabled:c,...u}=e;const p=(0,r.useMemo)((()=>t||Math.random().toString(36)),[t]),{init:d,setEnded:m,setPlaying:h,setFullscreen:f,showSlide:g}=(0,a.useDispatch)("jetpack/story/player"),{playing:b,currentSlideIndex:v,fullscreen:k,isReady:y,playerSettings:E}=(0,a.useSelect)((e=>{const{getCurrentSlideIndex:t,getSettings:n,isFullscreen:r,isPlayerReady:a,isPlaying:o}=e("jetpack/story/player");return a(p)?{playing:o(p),currentSlideIndex:t(p),isReady:!0,fullscreen:r(p),playerSettings:n(p)}:{isReady:!1}}),[p]);(0,r.useEffect)((()=>{y||d(p,{slideCount:n.length,...u})}),[y,p]);const w=(0,r.useCallback)((e=>{switch(e.keyCode){case o.ENTER:if(k)break;case o.SPACE:h(p,!b);break;case o.LEFT:v>0&&g(p,v-1);break;case o.RIGHT:v<n.length-1?g(p,v+1):m(p)}}),[p,v,k,b]),_=(0,r.useCallback)((()=>{f(p,!1)}),[p]);return y?(0,r.createElement)(s.Z,{shadowDOM:E.shadowDOM,className:"wp-story-app",fullscreenClassName:"wp-story-fullscreen",bodyFullscreenClassName:"wp-story-in-fullscreen",playerQuerySelector:".wp-story-container",fullscreen:k,onExitFullscreen:_,onKeyDown:w},(0,r.createElement)(i.Z,{id:p,slides:n,metadata:l,disabled:c})):null}},29891:function(e,t,n){"use strict";n.d(t,{am:function(){return r},bG:function(){return a},uP:function(){return o},JF:function(){return i}});const r=()=>document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled,a=()=>document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullScreenElement,o=(e,t)=>{if((e.requestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen).call(e),t){const e=()=>{document.fullscreenElement||(document.removeEventListener("fullscreenchange",e),t())};document.addEventListener("fullscreenchange",e)}},i=()=>(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen).call(document)},31158:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307);const a=window&&window.Element&&window.Element.prototype.hasOwnProperty("attachShadow");function o(e){let{enabled:t,delegatesFocus:n=!1,mode:o="open",globalStyleElements:s=[],adoptedStyleSheets:l=null,mountOnElement:c=null,children:u}=e;const[p,d]=(0,r.useState)(null),m=c||p,[h,f]=(0,r.useState)(null),g="string"==typeof s?[...document.querySelectorAll(s)]:s,b=a&&t&&g.length>0,v=(0,r.useCallback)((e=>{null!==e&&d(e.parentNode)}),[]);if((0,r.useEffect)((()=>{if(!m)return;if(m.shadowRoot)return void f(m.shadowRoot);const e=m.attachShadow({delegatesFocus:n,mode:o});l&&(e.adoptedStyleSheets=l),f(e)}),[m]),b&&!h)return c?null:(0,r.createElement)("span",{ref:v});const k=(0,r.createElement)(r.Fragment,null,b&&(0,r.createElement)(i,{globalStyleElements:g}),u);return b?(0,r.createPortal)(k,h):k}function i(e){let{globalStyleElements:t}=e;return(0,r.createElement)(r.Fragment,null,t.map(((e,t)=>{let{id:n,tagName:a,attributes:o,innerHTML:i}=e;return"LINK"===a?(0,r.createElement)("link",{key:n||t,id:n,rel:o.rel.value,href:o.href.value}):"STYLE"===a?(0,r.createElement)("style",{key:n||t,id:n},i):void 0})))}},94292:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{const t=(0,r.useRef)(),n=(0,r.useRef)(),a=(0,r.useRef)(e),o=(0,r.useCallback)((e=>{e.touches&&1===e.touches.length&&e.preventDefault()}),[]);return(0,r.useEffect)((()=>{a.current=e}),[e]),{onTouchStart:(0,r.useCallback)((e=>{e.target&&(e.target.addEventListener("touchend",o,{passive:!1}),n.current=e.target),t.current=setTimeout((()=>{a.current&&a.current(!0),t.current=null}),200)}),[]),onTouchEnd:(0,r.useCallback)((e=>{t.current?clearTimeout(t.current):(a.current&&a.current(!1),e.stopPropagation()),n.current&&n.current.removeEventListener("touchend",o)}),[])}}},21531:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)(null),n=(0,r.useRef)(!1),a=(0,r.useRef)(e),o=(0,r.useRef)(e);return o.current=e,(0,r.useLayoutEffect)((()=>{e.forEach(((e,r)=>{const o=a.current[r];"function"==typeof e&&e!==o&&!1===n.current&&(o(null),e(t.current))})),a.current=e}),e),(0,r.useLayoutEffect)((()=>{n.current=!1})),(0,r.useCallback)((e=>{t.current=e,n.current=!0;(e?o.current:a.current).forEach((t=>{"function"==typeof t?t(e):t&&t.hasOwnProperty("current")&&(t.current=e)}))}),[])}},97524:function(e,t,n){"use strict";async function r(e){const t=e.tagName.toLowerCase();if("img"===t){if(e.complete)return;await new Promise((t=>{e.addEventListener("load",t,{once:!0})}))}else if("video"===t||"audio"===t){if(e.HAVE_ENOUGH_DATA===e.readyState)return;await new Promise((t=>{e.addEventListener("canplaythrough",t,{once:!0}),e.addEventListener("load",t,{once:!0}),e.HAVE_NOTHING===e.readyState&&e.networkState!==e.NETWORK_LOADING&&e.load()}))}}n.d(t,{Z:function(){return r}})},82295:function(e,t,n){"use strict";n.d(t,{BM:function(){return s},i1:function(){return l}});var r=n(92819);const a=new Set(["alert","status","log","marquee","timer"]);let o=[],i=!1;function s(e){if(i)return;const t=document.body.children;(0,r.forEach)(t,(t=>{t!==e&&function(e){const t=e.getAttribute("role");return!("SCRIPT"===e.tagName||e.hasAttribute("aria-hidden")||e.hasAttribute("aria-live")||a.has(t))}(t)&&(t.setAttribute("aria-hidden","true"),o.push(t))})),i=!0}function l(){i&&((0,r.forEach)(o,(e=>{e.removeAttribute("aria-hidden")})),o=[],i=!1)}},97790:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(39630),o=n(94333),i=n(21531);function s(e){let{overlayClassName:t,children:n,className:s,focusOnMount:l,shouldCloseOnEsc:c=!0,onRequestClose:u,onKeyDown:p,modalRef:d}=e;const m=(0,o.useFocusOnMount)(l),h=(0,o.useConstrainedTabbing)(),f=(0,o.useFocusReturn)();return(0,r.createElement)("div",{className:t,onKeyDown:function(e){c&&e.keyCode===a.ESCAPE&&(e.stopPropagation(),u&&u(e)),e.target&&"button"===e.target.tagName.toLowerCase()&&e.keyCode===a.SPACE||p&&p(e)}},(0,r.createElement)("div",{className:s,ref:(0,i.Z)([h,f,m,d])},n))}},72096:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333),s=n(31158),l=n(97790),c=n(82295);let u,p=0;const d=()=>{};class m extends o.Component{constructor(e){super(e),this.prepareDOM()}componentDidMount(){p++,1===p&&this.openFirstModal()}componentWillUnmount(){p--,0===p&&this.closeLastModal(),this.cleanDOM()}prepareDOM(){u||(u=document.createElement("div"),document.body.appendChild(u)),this.node=document.createElement("div"),u.appendChild(this.node),this.node.ontouchstart=d,this.node.ontouchend=d}cleanDOM(){u.removeChild(this.node)}openFirstModal(){c.BM(u)}closeLastModal(){c.i1()}render(){const{children:e,isOpened:t,shadowDOM:n,...r}=this.props;return(0,o.createElement)(s.Z,a()({},n,{mountOnElement:this.node}),t&&(0,o.createElement)(l.Z,r,e))}}m.defaultProps={shouldCloseOnEsc:!0,isOpened:!1,focusOnMount:!0},t.Z=(0,i.withInstanceId)(m)},54616:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(92819),c=n(11313),u=n(94333),p=n(65736),d=n(9818),m=n(12378),h=n(96178),f=n(16019),g=n(27870),b=n(94292);const __=p.__;function v(e){let{id:t,slides:n,metadata:r,disabled:i}=e;const{setFullscreen:p,setEnded:v,setPlaying:k,setMuted:y,showSlide:E}=(0,d.useDispatch)("jetpack/story/player"),{playing:w,muted:_,currentSlideIndex:C,currentSlideEnded:j,ended:S,fullscreen:x,settings:T}=(0,d.useSelect)((e=>{const{getCurrentSlideIndex:n,getSettings:r,hasCurrentSlideEnded:a,hasEnded:o,isFullscreen:i,isMuted:s,isPlaying:l}=e("jetpack/story/player");return{playing:l(t),muted:s(t),currentSlideIndex:n(t),currentSlideEnded:a(t),ended:o(t),fullscreen:i(t),settings:r(t)}}),[t]),P=(0,o.useRef)(),[N,A]=(0,o.useState)(null),[I,{width:B,height:M}]=(0,u.useResizeObserver)(),[R,L]=(0,o.useState)(T.defaultAspectRatio),Z=(0,l.some)(n,(e=>(0,c.isBlobURL)(e.url))),F=e=>{E(t,e)},D=(0,o.useCallback)((()=>{i||x||T.playInFullscreen&&!w&&k(t,!0)}),[w,i,x]),{onTouchStart:O,onTouchEnd:z}=(0,b.Z)((e=>{k(t,!e)}),[]),U=(0,o.useCallback)((()=>{C>0&&F(C-1)}),[C]),$=(0,o.useCallback)((()=>{C<n.length-1?F(C+1):v(t)}),[C,n]),V=(0,o.useCallback)((()=>{p(t,!1)}),[]);let G,H;return(0,o.useEffect)((()=>{i&&w&&k(t,!1)}),[i,w]),(0,o.useEffect)((()=>{w&&j&&$()}),[w,j]),(0,o.useLayoutEffect)((()=>{if(!P.current)return;let e=Math.round(T.defaultAspectRatio*P.current.offsetHeight);x&&(e=Math.abs(1-e/B)<T.cropUpTo?B:e),A(e)}),[B,M,x]),(0,o.useLayoutEffect)((()=>{N&&P.current&&P.current.offsetHeight>0&&L(N/P.current.offsetHeight)}),[N]),G=x?[__("You are currently playing a story.","jetpack"),w?__("Press space to pause.","jetpack"):__("Press space to play.","jetpack",0),__("Press escape to exit.","jetpack")].join(" "):__("Play story","jetpack"),H=i?"presentation":x?"dialog":"button",(0,o.createElement)("div",{className:"wp-story-display-contents"},I,(0,o.createElement)("div",{role:H,"aria-label":G,tabIndex:x?-1:0,className:s()("wp-story-container",{"wp-story-with-controls":!i&&!x&&!T.playInFullscreen,"wp-story-fullscreen":x,"wp-story-ended":S,"wp-story-disabled":i,"wp-story-clickable":!i&&!x}),style:{maxWidth:`${N}px`},onClick:D,onTouchStart:O,onTouchEnd:z},(0,o.createElement)(g.h4,a()({},r,{fullscreen:x,onExitFullscreen:V})),(0,o.createElement)("div",{ref:P,className:"wp-story-wrapper"},n.map(((e,n)=>(0,o.createElement)(m.Z,{playerId:t,key:n,media:e,index:n,playing:!i&&w,uploading:Z,settings:T,targetAspectRatio:R})))),(0,o.createElement)(g.aV,{icon:h.Z,slideCount:n.length,showSlideCount:T.showSlideCount,ended:S,hasPrevious:C>0,onPreviousSlide:U,onNextSlide:$}),T.showProgressBar&&(0,o.createElement)(f.ZP,{playerId:t,slides:n,disabled:!x,onSlideSeek:F,maxBullets:x?T.maxBulletsFullscreen:T.maxBullets}),(0,o.createElement)(g.ZX,{playing:w,muted:_,onPlayPressed:()=>k(t,!w),onMutePressed:()=>y(t,!_),showMute:(e=>{const t=e<n.length?n[e]:null;return!!t&&("video"===t.type||(t.mime||"").startsWith("video/"))})(C)})),x&&(0,o.createElement)(g.Aq,{currentMedia:T.blurredBackground&&n.length>C&&n[C]}))}},16019:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(27870),i=n(9818);const s=e=>{let{key:t,playerId:n,index:a,disabled:s,isSelected:l,onClick:c}=e;const u=(0,i.useSelect)((e=>e("jetpack/story/player").getCurrentSlideProgressPercentage(n)),[]);return(0,r.createElement)(o.gT,{key:t,index:a,progress:u,disabled:s,isSelected:l,onClick:c})};t.ZP=e=>{let{playerId:t,slides:n,disabled:l,onSlideSeek:c,maxBullets:u}=e;const{currentSlideIndex:p}=(0,i.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t)})),[]),d=Math.min(n.length,u),m=Math.floor(d/2);let h,f=0,g=n.length-1;return n.length<=u||p<m?(h=p,g=d-1):p>=n.length-m?(h=p-n.length+d,f=n.length-d):(h=m,f=p-m,g=p+m),(0,r.createElement)("div",{className:"wp-story-pagination wp-story-pagination-bullets",role:"tablist"},f>0&&(0,r.createElement)(o.gT,{key:"bullet-0",index:f-1,progress:100,isEllipsis:!0}),(0,a.range)(1,d+1).map(((e,n)=>{const a=n+f;let i=null;if(a<p)i=100;else{if(!(a>p))return(0,r.createElement)(s,{playerId:t,key:`bullet-${n}`,index:a,disabled:l,isSelected:h===n,onClick:()=>c(a)});i=0}return(0,r.createElement)(o.gT,{key:`bullet-${n}`,index:a,progress:i,disabled:l,isSelected:h===n,onClick:()=>c(a)})})),g<n.length-1&&(0,r.createElement)(o.gT,{key:`bullet-${d+1}`,index:g+1,progress:0,isEllipsis:!0}))}},12378:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(97524),s=n(89105),l=n.n(s),c=n(9818),u=n(27870);t.Z=e=>{let{playerId:t,media:n,index:r,playing:s,uploading:p,settings:d,targetAspectRatio:m}=e;const{currentSlideIndex:h,buffering:f}=(0,c.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t),buffering:e("jetpack/story/player").isBuffering(t)})),[]),{slideReady:g}=(0,c.useDispatch)("jetpack/story/player"),b=r===h,v=(0,o.useRef)(null),[k,y]=(0,o.useState)(!1),[E,w]=(0,o.useState)(!0);return(0,o.useEffect)((()=>{if(b&&!E){const e=v.current&&v.current.src&&"video"===v.current.tagName.toLowerCase()?v.current:null;g(t,v.current,e?e.duration:d.imageTime)}}),[b,E]),(0,o.useEffect)((()=>{r<=h+(s?1:0)&&y(!0)}),[s,h]),(0,o.useLayoutEffect)((()=>{v.current&&(0,i.Z)(v.current).then((()=>{w(!1)}))}),[k,p]),(0,o.createElement)(o.Fragment,null,b&&(E||p||f)&&(0,o.createElement)("div",{className:l()("wp-story-slide","is-loading",{transparent:s&&f,"semi-transparent":p||!s&&f})},(0,o.createElement)(u.WB,null)),(0,o.createElement)("div",{role:"figure",className:"wp-story-slide",style:{display:b&&!E?"block":"none"},tabIndex:b?0:-1},k&&(0,o.createElement)(u.pU,a()({},n,{targetAspectRatio:m,cropUpTo:d.cropUpTo,index:r,mediaRef:v}))))}},46192:function(e,t,n){"use strict";function r(e,t){return{type:"SET_MUTED",value:t,playerId:e}}function a(e,t){return{type:"SET_PLAYING",value:t,playerId:e}}function o(e,t){return{type:"SHOW_SLIDE",index:t,playerId:e}}function i(e,t,n){return{type:"SLIDE_READY",mediaElement:t,duration:n,playerId:e}}function s(e,t){return{type:"SET_CURRENT_SLIDE_PROGRESS",value:t,playerId:e}}function l(e){return{type:"RESET_CURRENT_SLIDE_PROGRESS",playerId:e}}function c(e){return{type:"SET_CURRENT_SLIDE_ENDED",playerId:e}}function u(e,t){return{type:"SET_FULLSCREEN",playerId:e,fullscreen:t}}function p(e){return{type:"ENDED",playerId:e}}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:"INIT",playerId:e,settings:t}}function m(e,t){return{type:"SET_BUFFERING",value:t,playerId:e}}n.r(t),n.d(t,{setMuted:function(){return r},setPlaying:function(){return a},showSlide:function(){return o},slideReady:function(){return i},setCurrentSlideProgress:function(){return s},resetCurrentSlideProgress:function(){return l},setCurrentSlideEnded:function(){return c},setFullscreen:function(){return u},setEnded:function(){return p},init:function(){return d},setBuffering:function(){return m}})},58571:function(e,t,n){"use strict";n.d(t,{XO:function(){return r},Qz:function(){return a},H2:function(){return o}});const r={currentTime:0,duration:null,timeout:null,lastUpdate:null},a={progress:r,index:0,mediaElement:null,duration:null,ended:!1,ready:!1},o={slideCount:0,currentSlide:a,previousSlide:null,muted:!1,playing:!1,ended:!1,buffering:!1,fullscreen:!1,settings:{imageTime:5,startMuted:!1,playInFullscreen:!0,playOnNextSlide:!0,playOnLoad:!1,exitFullscreenOnEnd:!0,loadInFullscreen:!1,blurredBackground:!0,showSlideCount:!1,showProgressBar:!0,shadowDOM:{enabled:!0,mode:"open",globalStyleElements:'#jetpack-block-story-css, link[href*="jetpack/_inc/blocks/story/view.css"]'},defaultAspectRatio:.5625,cropUpTo:.2,volume:.8,maxBullets:7,maxBulletsFullscreen:14}}},83566:function(e,t,n){"use strict";var r=n(46192),a=n(96494);const o=e=>e&&e.src&&"video"===e.tagName.toLowerCase();function i(e,t){const{getState:n}=t,r=e.playerId,i=(0,a.isMuted)(n(),r),s=(0,a.isPlaying)(n(),r),l=(0,a.getCurrentMediaElement)(n(),r),c=(0,a.getPreviousSlideMediaElement)(n(),r),u=(0,a.getSettings)(n(),r);o(c)&&(c.currentTime=0,c.onwaiting=null,c.onplaying=null,c.pause()),o(l)&&(i!==l.muted&&(l.muted=i,i||(l.volume=u.volume)),s?l.play():l.pause())}function s(e,t){const{getState:n,dispatch:i}=t,l=e.playerId,c=(0,a.isCurrentSlideReady)(n(),l),u=(0,a.isPlaying)(n(),l),p=(0,a.getCurrentSlideProgress)(n(),l);if(clearTimeout(p.timeout),!u||!c)return void(p.lastUpdate&&i((0,r.setCurrentSlideProgress)(l,{...p,lastUpdate:null})));const d=(0,a.getCurrentMediaElement)(n(),l),m=(0,a.getCurrentMediaDuration)(n(),l),h=p.lastUpdate?Date.now()-p.lastUpdate:100,f=o(d)?d.currentTime:p.currentTime+h/1e3;if(f>=m){i((0,r.setCurrentSlideEnded)(l));const e=(0,a.getSlideCount)(n(),l);(0,a.getCurrentSlideIndex)(n(),l)===e-1&&i((0,r.setEnded)(l))}else i((0,r.setCurrentSlideProgress)(l,{timeout:setTimeout((()=>s(e,t)),100),lastUpdate:Date.now(),duration:m,currentTime:f}))}t.Z={SET_PLAYING:[s,i],SLIDE_READY:[function(e,t){const{getState:n,dispatch:i}=t,s=e.playerId,l=(0,a.getCurrentMediaElement)(n(),s);if(!o(l))return;const c=(0,a.getCurrentSlideProgress)(n(),s);0===l.currentTime&&c.currentTime>0&&(l.currentTime=c.currentTime),l.onwaiting=()=>i((0,r.setBuffering)(s,!0)),l.onplaying=()=>i((0,r.setBuffering)(s,!1))},s,i],SET_MUTED:i,SHOW_SLIDE:i}},66930:function(e,t,n){"use strict";var r=n(9818),a=n(46192),o=n(96494),i=n(36978),s=n(2814);const l=(0,r.registerStore)("jetpack/story/player",{actions:a,reducer:s.Z,selectors:o});(0,i.Z)(l)},36978:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(83566);function s(e){const t=[a()(i.Z)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},2814:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(58571);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.H2,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SHOW_SLIDE":{const n=e.currentSlide===t.index+1;return{...e,currentSlide:{...a.Qz,index:t.index},previousSlide:e.currentSlide,playing:n?e.settings.playOnNextSlide:e.playing}}case"SLIDE_READY":return{...e,buffering:!1,currentSlide:{...e.currentSlide,mediaElement:t.mediaElement,duration:t.duration,ready:!0},previousSlide:null};case"SET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:t.value}};case"SET_CURRENT_SLIDE_ENDED":return{...e,currentSlide:{...e.currentSlide,ended:!0}};case"RESET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:{...a.XO}}};case"SET_MUTED":return{...e,muted:t.value};case"SET_PLAYING":{const n=t.value&&e.ended;return{...e,playing:t.value,buffering:!!t.value&&e.buffering,fullscreen:!e.playing&&t.value?e.settings.playInFullscreen:e.fullscreen,ended:!n&&e.ended,currentSlide:n?{...a.Qz,index:0}:e.currentSlide,previousSlide:n?null:e.previousSlide}}case"SET_BUFFERING":return{...e,buffering:t.value};case"SET_FULLSCREEN":return{...e,fullscreen:t.fullscreen,playing:!(e.fullscreen&&!t.fullscreen&&e.settings.playInFullscreen)&&e.playing};case"INIT":{const n=(0,r.merge)({},e.settings,t.settings);return{...e,settings:n,playing:n.playOnLoad,fullscreen:n.loadInFullscreen}}case"ENDED":return{...e,currentSlide:{...a.Qz,index:e.settings.slideCount-1,progress:{...a.XO,currentTime:100,duration:100}},ended:!0,playing:!1,fullscreen:!e.settings.exitFullscreenOnEnd}}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.playerId?{...e,[t.playerId]:o(e[t.playerId],t)}:e}},96494:function(e,t,n){"use strict";function r(e,t){return!!e[t]}function a(e,t){return e[t].currentSlide.index}function o(e,t){return e[t].currentSlide.progress}function i(e,t){const n=e[t].currentSlide.progress.currentTime,r=e[t].currentSlide.progress.duration,a=Math.round(100*n/r);return a>=100?100:a}function s(e,t){return e[t].playing}function l(e,t){return e[t].muted}function c(e,t){return e[t].buffering}function u(e,t){return e[t].currentSlide.mediaElement}function p(e,t){return e[t].currentSlide.duration}function d(e,t){return e[t].currentSlide.ended}function m(e,t){return e[t].currentSlide.ready}function h(e,t){return e[t].previousSlide?.mediaElement}function f(e,t){return e[t].fullscreen}function g(e,t){return e[t].ended}function b(e,t){return e[t].settings}function v(e,t){return e[t].settings.slideCount}n.r(t),n.d(t,{isPlayerReady:function(){return r},getCurrentSlideIndex:function(){return a},getCurrentSlideProgress:function(){return o},getCurrentSlideProgressPercentage:function(){return i},isPlaying:function(){return s},isMuted:function(){return l},isBuffering:function(){return c},getCurrentMediaElement:function(){return u},getCurrentMediaDuration:function(){return p},hasCurrentSlideEnded:function(){return d},isCurrentSlideReady:function(){return m},getPreviousSlideMediaElement:function(){return h},isFullscreen:function(){return f},hasEnded:function(){return g},getSettings:function(){return b},getSlideCount:function(){return v}})},1436:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:o()("wp-story",t)})}},79885:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"},successMessage:{type:"string",default:__("Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.","jetpack")}}},87138:function(e,t,n){"use strict";n.d(t,{G0:function(){return r},Gp:function(){return a},S9:function(){return o},VF:function(){return i},K3:function(){return s},XJ:function(){return l},xV:function(){return c},bK:function(){return u},HE:function(){return p},Tr:function(){return d},pC:function(){return m},FP:function(){return h},tm:function(){return f}});const r=0,a=50,o=0,i=0,s=15,l=1,c=5,u=50,p=15,d=0,m=50,h=10,f="16px"},45643:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(80790),l=n(87138);const __=a.__;function c(e){let{buttonBackgroundColor:t,borderColor:n,buttonGradient:a,borderRadius:c,borderWeight:u,buttonOnNewLine:p,emailFieldBackgroundColor:d,fallbackButtonBackgroundColor:m,fallbackTextColor:h,fontSize:f,isGradientAvailable:g,padding:b,setAttributes:v,setButtonBackgroundColor:k,setTextColor:y,showSubscribersTotal:E,spacing:w,subscriberCount:_,textColor:C,buttonWidth:j,successMessage:S}=e;return(0,r.createElement)(r.Fragment,null,g&&(0,r.createElement)(i.__experimentalPanelColorGradientSettings,{title:__("Color Settings","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",settings:[{colorValue:t.color,onColorChange:k,gradientValue:a.gradientValue,onGradientChange:a.setGradient,label:__("Button Background Color","jetpack")},{colorValue:C.color,onColorChange:y,label:__("Button Text Color","jetpack")},{colorValue:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!0},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),!g&&(0,r.createElement)(i.PanelColorSettings,{title:__("Background Colors","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",colorSettings:[{value:t.color,onChange:k,label:__("Button Background Color","jetpack")},{value:C.color,onChange:y,label:__("Button Text Color","jetpack")},{value:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!1},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),(0,r.createElement)(o.PanelBody,{title:__("Text Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__textpanel"},(0,r.createElement)(i.FontSizePicker,{withSlider:!0,value:f.size,onChange:e=>{const t=e||l.tm;v({fontSize:t,customFontSize:t})}})),(0,r.createElement)(o.PanelBody,{title:__("Border Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__borderpanel"},(0,r.createElement)(o.RangeControl,{value:c,label:__("Border Radius","jetpack"),min:l.G0,max:l.Gp,initialPosition:l.S9,allowReset:!0,onChange:e=>v({borderRadius:e})}),(0,r.createElement)(o.RangeControl,{value:u,label:__("Border Weight","jetpack"),min:l.VF,max:l.K3,initialPosition:l.XJ,allowReset:!0,onChange:e=>v({borderWeight:e})})),(0,r.createElement)(o.PanelBody,{title:__("Spacing Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__spacingpanel"},(0,r.createElement)(o.RangeControl,{value:b,label:__("Space Inside","jetpack"),min:l.xV,max:l.bK,initialPosition:l.HE,allowReset:!0,onChange:e=>v({padding:e})}),(0,r.createElement)(o.RangeControl,{value:w,label:__("Space Between","jetpack"),min:l.Tr,max:l.pC,initialPosition:l.FP,allowReset:!0,onChange:e=>v({spacing:e})}),(0,r.createElement)(s.h,{width:j,onChange:e=>v({buttonWidth:e})})),(0,r.createElement)(o.PanelBody,{title:__("Display Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__displaypanel"},(0,r.createElement)(o.ToggleControl,{label:__("Show subscriber count","jetpack"),checked:E,onChange:()=>{v({showSubscribersTotal:!E})},help:()=>{if(!_||_<1)return __("This will remain hidden on your website until you have at least one subscriber.","jetpack")}}),(0,r.createElement)(o.ToggleControl,{label:__("Place button on new line","jetpack"),checked:p,onChange:()=>{v({buttonOnNewLine:!p})}})),(0,r.createElement)(o.PanelBody,{title:__("Success Message Text","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__successpanel"},(0,r.createElement)(o.TextareaControl,{value:S,label:__("Success Message Text","jetpack"),hideLabelFromVision:!0,help:__("Save your custom message to display when a user subscribes your website.","jetpack"),onChange:e=>v({successMessage:e})})))}},58363:function(e,t,n){"use strict";var r=n(26233),a=n(80960),o=n(28897),i=n(73300),s=n(56286),l=n(16949);t.Z=[l.Z,s.Z,i.Z,o.Z,a.Z,r.Z]},26233:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(92819);const __=a.__;t.Z={attributes:{subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:e=>({submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal}),isEligible:e=>!(!e.hasOwnProperty("subscribeButton")||!(0,o.isEmpty)(e.subscribeButton)),save:function(e){let{attributes:t}=e;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_subscribers_total="${t.showSubscribersTotal}" show_only_email_and_button="true"]`)}}},80960:function(e,t,n){"use strict";var r=n(65736),a=n(51268);const __=r.__;t.Z={attributes:{subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},migrate:e=>({subscribePlaceholder:e.subscribePlaceholder,showSubscribersTotal:e.showSubscribersTotal,buttonOnNewLine:!0,submitButtonText:e.submitButtonText,buttonBackgroundColor:e.backgroundButtonColor?e.backgroundButtonColor:"primary",customButtonBackgroundColor:e.customBackgroundButtonColor,textColor:e.textButtonColor?e.textButtonColor:"background",customTextColor:e.customTextButtonColor}),save:a.Z}},51268:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{showSubscribersTotal:n,submitButtonClasses:a,customBackgroundButtonColor:o,customTextButtonColor:i,submitButtonText:s}=t;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="${o}" custom_text_button_color="${i}" submit_button_text="${s}" submit_button_classes="${a}" show_subscribers_total="${n}" ]`)}},80929:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Enter your email address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Sign Up","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"number"},customFontSize:{type:"number"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},69283:function(e,t,n){"use strict";n.d(t,{ZP:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(80929);function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const{subscribePlaceholder:o,showSubscribersTotal:l,buttonOnNewLine:c,submitButtonText:u,emailFieldBackgroundColor:p,customEmailFieldBackgroundColor:d,emailFieldGradient:m,customEmailFieldGradient:h,buttonBackgroundColor:f,customButtonBackgroundColor:g,buttonGradient:b,customButtonGradient:v,textColor:k,customTextColor:y,fontSize:E,customFontSize:w,borderRadius:_,borderWeight:C,borderColor:j,customBorderColor:S,padding:x,spacing:T}=t,P=!!a.__experimentalGetGradientClass,N=(0,a.getColorClassName)("color",k),A=(0,a.getFontSizeClass)(E),I=(0,a.getColorClassName)("border-color",j),B=(0,a.getColorClassName)("background-color",f),M=P?(0,a.__experimentalGetGradientClass)(b):void 0,R=(0,a.getColorClassName)("background-color",p),L=P?(0,a.__experimentalGetGradientClass)(m):void 0,Z=i()(0===_?"no-border-radius":void 0,A,I),F=i()(Z,k?"has-text-color":void 0,N,f||b?"has-background":void 0,B,M),D=i()(Z,R,L),O=!R&&h?h:d,z=!B&&v?v:g,U=()=>i()(e,"wp-block-jetpack-subscriptions__supports-newline",c?"wp-block-jetpack-subscriptions__use-newline":void 0,l?"wp-block-jetpack-subscriptions__show-subs":void 0);let $=o,V=u;return"check-text-defaults"===n&&($=o===s.Z.subscribePlaceholder.default?"Enter your email address":o,V=u===s.Z.submitButtonText.default?"Sign Up":u),(0,r.createElement)("div",{className:U()},(0,r.createElement)(r.RawHTML,null,`\n\t\t\t[jetpack_subscription_form\n\t\t\t\tsubscribe_placeholder="${$}"\n\t\t\t\tshow_subscribers_total="${l}"\n\t\t\t\tbutton_on_newline="${c}"\n\t\t\t\tsubmit_button_text="${V}"\n\t\t\t\tcustom_background_emailfield_color="${O}"\n\t\t\t\tcustom_background_button_color="${z}"\n\t\t\t\tcustom_text_button_color="${y}"\n\t\t\t\tcustom_font_size="${w||16}"\n\t\t\t\tcustom_border_radius="${_||0}"\n\t\t\t\tcustom_border_weight="${C||1}"\n\t\t\t\tcustom_border_color="${S}"\n\t\t\t\tcustom_padding="${x||15}"\n\t\t\t\tcustom_spacing="${T||10}"\n\t\t\t\tsubmit_button_classes="${F}"\n\t\t\t\temail_field_classes="${D}"\n\t\t\t\tshow_only_email_and_button="true"\n\t\t\t]`))}},28897:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n)}}},73300:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n,"check-text-defaults")}}},56286:function(e,t,n){"use strict";var r=n(80929),a=n(14556);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:a.ZP}},14556:function(e,t,n){"use strict";n.d(t,{ZP:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(80929);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:P}=n,N=!!a.__experimentalGetGradientClass,A=(0,a.getColorClassName)("color",y),I=(0,a.getFontSizeClass)(w),B=(0,a.getColorClassName)("border-color",S),M=(0,a.getColorClassName)("background-color",g),R=N?(0,a.__experimentalGetGradientClass)(v):void 0,L=(0,a.getColorClassName)("background-color",d),Z=N?(0,a.__experimentalGetGradientClass)(h):void 0,F=i()(0===C?"no-border-radius":void 0,I,B),D=i()(F,y?"has-text-color":void 0,A,g||v?"has-background":void 0,M,R),O=i()(F,L,Z),z=!L&&f?f:m,U=!M&&k?k:b,$={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:z,custom_background_button_color:U,custom_text_button_color:E,custom_font_size:_||16,custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_padding:T||15,custom_spacing:P||10,submit_button_classes:D,email_field_classes:O,show_only_email_and_button:!0},V=(0,s.reduce)($,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${V}]`))}},61798:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},16949:function(e,t,n){"use strict";var r=n(61798),a=n(75799);t.Z={attributes:r.Z,save:a.Z}},75799:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(61798);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:P,buttonWidth:N}=n,A=!!a.__experimentalGetGradientClass,I=(0,a.getColorClassName)("color",y),B=(0,a.getFontSizeClass)(w),M=(0,a.getColorClassName)("border-color",S),R=(0,a.getColorClassName)("background-color",g),L=A?(0,a.__experimentalGetGradientClass)(v):void 0,Z=(0,a.getColorClassName)("background-color",d),F=A?(0,a.__experimentalGetGradientClass)(h):void 0,D=i()(0===C?"no-border-radius":void 0,B,M),O=i()(D,y?"has-text-color":void 0,I,g||v?"has-background":void 0,R,L),z=i()(D,Z,F),U=!Z&&f?f:m,$=!R&&k?k:b,V=N||void 0,G={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:U,custom_background_button_color:$,custom_text_button_color:E,custom_font_size:_||"16px",custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_button_width:V,custom_padding:T||15,custom_spacing:P||10,submit_button_classes:O,email_field_classes:z,show_only_email_and_button:!0},H=(0,s.reduce)(G,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${H}]`))}},73228:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(86989),l=n.n(s),c=n(65736),u=n(55609),p=n(52175),d=n(94333),m=n(79885),h=n(14087),f=n(87138),g=n(45643);const __=c.__,_n=c._n,{getComputedStyle:b}=window,v=!!p.__experimentalUseGradient,k=(0,u.withFallbackStyles)(((e,t)=>{const{buttonBackgroundColor:n,textColor:r}=t,a=n&&n.color,o=r&&r.color,i=e.querySelector(".wp-block-jetpack-subscriptions__button");return{fallbackButtonBackgroundColor:a||!e?void 0:i&&b(i).backgroundColor,fallbackTextColor:o||!e?void 0:i&&b(i).color}}));t.Z=(0,d.compose)([(0,p.withColors)({emailFieldBackgroundColor:"backgroundColor"},{buttonBackgroundColor:"backgroundColor"},{textColor:"color"},"borderColor"),(0,p.withFontSizes)("fontSize"),k])((function(e){const{className:t,attributes:n,setAttributes:a,emailFieldBackgroundColor:s,buttonBackgroundColor:d,setButtonBackgroundColor:b,fallbackButtonBackgroundColor:k,textColor:y,fallbackTextColor:E,setTextColor:w,borderColor:_,fontSize:C}=e,j=(0,h.S)(m.Z,n);(0,i.isEqual)(j,n)||a(j);const{borderRadius:S,borderWeight:x,buttonWidth:T,padding:P,spacing:N,submitButtonText:A,subscribePlaceholder:I,showSubscribersTotal:B,buttonOnNewLine:M,successMessage:R}=j,[L,Z]=(0,r.useState)(""),[F,D]=(0,r.useState)(""),O=v?(0,p.__experimentalUseGradient)({gradientAttribute:"emailFieldGradient",customGradientAttribute:"customEmailFieldGradient"}):{},z=v?(0,p.__experimentalUseGradient)({gradientAttribute:"buttonGradient",customGradientAttribute:"customButtonGradient"}):{},U={"no-border-radius":0===S,[C.class]:C.class,"has-text-color":y.color,[y.class]:y.class},$={...U,"has-background":s.color||O.gradientValue,[s.class]:!O.gradientValue&&s.class,[O.gradientClass]:O.gradientClass},V={...U,"has-background":d.color||z.gradientValue,[d.class]:!z.gradientValue&&d.class,[z.gradientClass]:z.gradientClass},G=e=>e||f.FP,H={color:y.color,borderColor:_.color,borderRadius:S?S+"px":f.S9+"px",borderWidth:x?x+"px":f.XJ+"px",fontSize:C.size?C.size:f.tm,padding:(e=>{const t=e||f.HE;return t+"px "+Math.round(1.5*t)+"px "+t+"px "+Math.round(1.5*t)+"px"})(P)},q={...H,...!s.color&&O.gradientValue?{background:O.gradientValue}:{backgroundColor:s.color}},W={...H,...!d.color&&z.gradientValue?{background:z.gradientValue}:{backgroundColor:d.color},...M?{marginTop:G(N)+"px"}:{marginLeft:G(N)+"px"},width:T};return(0,r.useEffect)((()=>{l()({path:"/wpcom/v2/subscribers/count"}).then((e=>{e.hasOwnProperty("count")?(Z((0,c.sprintf)(
+/* translators: Placeholder is a number of subscribers. */
+_n("Join %s other subscriber","Join %s other subscribers",e.count,"jetpack"),e.count)),D(e.count)):(Z(__("Subscriber count unavailable","jetpack")),D(0))}))}),[]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(p.InspectorControls,null,(0,r.createElement)(g.Z,{buttonBackgroundColor:d,borderColor:_,buttonGradient:z,borderRadius:S,borderWeight:x,buttonOnNewLine:M,emailFieldBackgroundColor:s,fallbackButtonBackgroundColor:k,fallbackTextColor:E,fontSize:C,isGradientAvailable:v,padding:P,setAttributes:a,setButtonBackgroundColor:b,setTextColor:w,showSubscribersTotal:B,spacing:N,subscriberCount:F,textColor:y,buttonWidth:T,successMessage:R})),(0,r.createElement)("div",{className:o()(t,"wp-block-jetpack-subscriptions__supports-newline",M?"wp-block-jetpack-subscriptions__use-newline":void 0,B?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)("div",{className:"wp-block-jetpack-subscriptions__form",role:"form"},(0,r.createElement)(u.TextControl,{placeholder:I,disabled:!0,className:o()($,"wp-block-jetpack-subscriptions__textfield"),style:q}),(0,r.createElement)(p.RichText,{className:o()(V,"wp-block-jetpack-subscriptions__button","wp-block-button__link"),onChange:e=>a({submitButtonText:e}),style:W,value:A,withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic","core/strikethrough"]})),B&&(0,r.createElement)("p",{className:"wp-block-jetpack-subscriptions__subscount"},L)))}))},57211:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(79885),l=n(58363),c=n(73228),u=n(5321),p=n(57535);const __=a.__,_x=a._x,d="subscriptions",m=(0,r.createElement)(o.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.Rect,{x:"4.75",y:"6.75",width:"14.5",height:"10.5",rx:"1.25",stroke:(0,p.m)(),strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(o.Path,{d:"M19 7L13.3609 12.2363C12.5935 12.9489 11.4065 12.9489 10.6391 12.2363L5 7",stroke:(0,p.m)(),strokeWidth:"1.5",strokeLinejoin:"bevel",fill:"none"})),h={title:__("Subscription Form","jetpack"),description:(0,r.createElement)("p",null,__("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:{src:m,foreground:(0,p.m)()},category:"grow",keywords:[_x("subscribe","block search term","jetpack"),_x("join","block search term","jetpack"),_x("follow","block search term","jetpack")],attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"blog_subscription"===t},transform:e=>{let{instance:t}=e;return(0,i.createBlock)("jetpack/subscriptions",{showSubscribersTotal:t.raw.show_subscribers_total,submitButtonText:t.raw.subscribe_button,subscribePlaceholder:t.raw.subscribe_placeholder,successMessage:t.raw.success_message})}}]},example:{attributes:{}},deprecated:l.Z}},5321:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(79885),c=n(87138);function u(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:u,buttonOnNewLine:p,submitButtonText:d,emailFieldBackgroundColor:m,customEmailFieldBackgroundColor:h,emailFieldGradient:f,customEmailFieldGradient:g,buttonBackgroundColor:b,customButtonBackgroundColor:v,buttonGradient:k,customButtonGradient:y,textColor:E,customTextColor:w,fontSize:_,customFontSize:C,borderRadius:j,borderWeight:S,borderColor:x,customBorderColor:T,padding:P,spacing:N,buttonWidth:A,successMessage:I}=n,B=!!a.__experimentalGetGradientClass,M=(0,a.getColorClassName)("color",E),R=(0,a.getFontSizeClass)(_),L=(0,a.getColorClassName)("border-color",x),Z=(0,a.getColorClassName)("background-color",b),F=B?(0,a.__experimentalGetGradientClass)(k):void 0,D=(0,a.getColorClassName)("background-color",m),O=B?(0,a.__experimentalGetGradientClass)(f):void 0,z=i()(0===j?"no-border-radius":void 0,R,L),U=i()(z,E?"has-text-color":void 0,M,b||k?"has-background":void 0,Z,F),$=i()(z,D,O),V=!D&&g?g:h,G=!Z&&y?y:v,H=A||void 0,q={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:u,button_on_newline:p,submit_button_text:d!==l.Z.submitButtonText.default?d:void 0,custom_background_emailfield_color:V,custom_background_button_color:G,custom_text_button_color:w,custom_font_size:C||c.tm,custom_border_radius:j||c.S9,custom_border_weight:S||c.XJ,custom_border_color:T,custom_button_width:H,custom_padding:P||c.HE,custom_spacing:N||c.FP,submit_button_classes:U,email_field_classes:$,show_only_email_and_button:!0,success_message:I},W=(0,s.reduce)(q,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",p?"wp-block-jetpack-subscriptions__use-newline":void 0,u?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${W}]`))}},28526:function(e,t,n){"use strict";n.d(t,{RA:function(){return r},q3:function(){return a},hI:function(){return o},Z5:function(){return i},GP:function(){return s},xJ:function(){return l},sw:function(){return c},EU:function(){return u},yw:function(){return p},P0:function(){return d}});const r=["image"],a=4,o=20,i=20,s=2e3,l="circle",c="columns",u="rectangular",p="square",d=[{isDefault:!0,name:u},{name:l},{name:p},{name:c}]},70132:function(e,t,n){"use strict";var r=n(25689),a=n(47330),o=n(35660);t.Z=[o,a,r]},66105:function(e,t,n){"use strict";n.d(t,{q3:function(){return r},hI:function(){return a},GP:function(){return o},EU:function(){return i},P0:function(){return s}});const r=4,a=20,o=2e3,i="rectangular",s=[{isDefault:!0,name:i},{name:"circle"},{name:"square"},{name:"columns"}]},2589:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(11313);function o(e){const{"aria-label":t,alt:n,height:o,id:i,link:s,linkTo:l,origUrl:c,url:u,width:p}=e;if((0,a.isBlobURL)(c))return null;let d;switch(l){case"media":d=u;break;case"attachment":d=s}const m=(0,r.createElement)("img",{alt:n,"aria-label":t,"data-height":o,"data-id":i,"data-link":s,"data-url":c,"data-width":p,src:u});return(0,r.createElement)("figure",{className:"tiled-gallery__item"},d?(0,r.createElement)("a",{href:d},m):m)}},25689:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return r.Z},attributes:function(){return a},support:function(){return o}});var r=n(19092);const a={align:{default:"center",type:"string"},className:{default:`is-style-${n(66105).EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},o={align:["center","wide","full"],customClassName:!1,html:!1}},43064:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},7696:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},17357:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(40278),o=n(65736),i=n(82827),s=n(11313),l=n(2589),c=n(1077),u=n(47536),p=n(66105);const __=o.__;class d extends r.Component{photonize(e){let{height:t,width:n,url:r}=e;if(!r)return;if((0,s.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;const o=r.split("?",1)[0],l=function(e){const{host:t}=(0,i.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}(r)?h:a.Z,{layoutStyle:c}=this.props;if(m(c)&&n&&t){const e=Math.min(p.GP,n,t);return l(o,{resize:`${e},${e}`})}return l(o)}renderImage(e,t){const{images:n,linkTo:a,selectedImage:i}=this.props,s=(0,o.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,n.length);return(0,r.createElement)(l.Z,{alt:e.alt,"aria-label":s,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:i}=this.props,s=m(i)?u.Z:c.Z,l=this.props.images.map(this.renderImage,this);return(0,r.createElement)("div",{className:n},(0,r.createElement)(s,{align:e,columns:a,images:o,layoutStyle:i,renderedImages:l}),t)}}function m(e){return["circle","square"].includes(e)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:a,port:o,query:s,search:l,...c}=(0,i.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,i.WU)(c)}},1077:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(43064),l=n(7696),c=n(8292),u=n(37335),p=n(54794);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t;(0,u.W)(n).forEach((t=>(0,u.i)(t,e)))}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,i=(0,p.h9)(n),u="columns"===r?(0,p.sv)(i,t):(0,p.T9)(i,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},u.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(s.Z,{key:t},n)}))))))}}},54794:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=P([N,N,A,N,N]),c=P([N,N,N,A,N,N,N]),u=T([3,1,3],5),p=P([A,N,N,A]),d=T([1,2,1],5),m=P([A,N,N,N]),h=T([1,3],3),f=P([N,N,N,A]),g=T([3,1],3),b=P([B(1.6),(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=P([(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2)),B(1.6)]),_=T([2,1],3),C=P([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function P(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function N(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function B(e){return t=>t<e}},37335:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(66105);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){!function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);!function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},8292:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},47536:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8292),i=n(43064),s=n(7696),l=n(66105);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},19092:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(17357),o=n(98085),i=n(66105);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{images:n}=t;if(!n.length)return null;const{align:l,className:c,columns:u=s(t),linkTo:p}=t;return(0,r.createElement)(a.Z,{align:l,className:c,columns:u,images:n,layoutStyle:(0,o.t)(i.P0,c),linkTo:p})}},96470:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},72285:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},47330:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i}});var r=n(96470),a=n(96659);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1}},71410:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},86159:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},15515:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(72285),l=n(56556),c=n(14916),u=n(92805),p=n(96470);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,linkTo:l,layoutStyle:c,selectedImage:p}=this.props,d=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:m,srcSet:h}=(0,u.z)(e,{layoutStyle:c});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":d,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:p===t,key:t,link:e.link,linkTo:l,origUrl:e.url,showMovers:i.length>1,srcSet:h,url:m,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d}=this.props,m=(0,u.v)(s)?c.Z:l.Z,h=this.props.images.map(this.renderImage,this),f=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${f}`]:f>0})},(0,r.createElement)(m,{align:e,columns:a,images:o,layoutStyle:s,renderedImages:h}),t)}}},56556:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(71410),s=n(86159),l=n(8955),c=n(9972);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,u=(0,c.h9)(n),p="columns"===r?(0,c.sv)(u,t):(0,c.T9)(u,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},p.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(i.Z,{key:t},n)}))))))}}},9972:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=P([N,N,A,N,N]),c=P([N,N,N,A,N,N,N]),u=T([3,1,3],5),p=P([A,N,N,A]),d=T([1,2,1],5),m=P([A,N,N,N]),h=T([1,3],3),f=P([N,N,N,A]),g=T([3,1],3),b=P([B(1.6),(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=P([(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2)),B(1.6)]),_=T([2,1],3),C=P([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function P(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function N(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function B(e){return t=>t<e}},8955:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},14916:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8955),i=n(71410),s=n(86159),l=n(96470);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},96659:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(15515),o=n(98085),i=n(96470);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m})}},92805:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(96470);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},30154:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},7214:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},35660:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i},migrate:function(){return s}});var r=n(30154),a=n(2387);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1},s=e=>{const t=Math.pow(10,5);return{...e,columnWidths:e.columnWidths.map((e=>e.map((e=>Math.round(e*t)/t))))}}},62940:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=Math.pow(10,12),o=Math.round(n*a)/a,i=n?{flexBasis:`${o}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:i},t)}},68742:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},62108:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(7214),l=n(34506),c=n(85185),u=n(60185),p=n(30154);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:l,linkTo:c,layoutStyle:p,onMoveBackward:d,onMoveForward:m,onRemoveImage:h,onSelectImage:f,selectedImage:g,setImageAttributes:b}=this.props,v=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:k,srcSet:y}=(0,u.z)(e,{layoutStyle:p});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":v,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:g===t,key:t,link:e.link,linkTo:c,onMoveBackward:l?void 0:d(t),onMoveForward:l?void 0:m(t),onRemove:l?void 0:h(t),onSelect:l?void 0:f(t),origUrl:e.url,setAttributes:l?void 0:b(t),showMovers:i.length>1,srcSet:y,url:k,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,u.v)(s)?c.Z:l.Z,b=this.props.images.map(this.renderImage,this),v=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},34506:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(62940),s=n(68742),l=n(7930),c=n(58174);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:u}=this.props,p=(0,c.h9)(n),d="columns"===r?(0,c.sv)(p,t):(0,c.T9)(p,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(i.Z,{key:n,width:u?.[t]?.[n]},r)}))))))}}},58174:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=P([N,N,A,N,N]),c=P([N,N,N,A,N,N,N]),u=T([3,1,3],5),p=P([A,N,N,A]),d=T([1,2,1],5),m=P([A,N,N,N]),h=T([1,3],3),f=P([N,N,N,A]),g=T([3,1],3),b=P([B(1.6),(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=P([(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2)),B(1.6)]),_=T([2,1],3),C=P([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function P(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function N(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function B(e){return t=>t<e}},7930:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},85185:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(7930),i=n(62940),s=n(68742),l=n(30154);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},2387:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(62108),o=n(98085),i=n(30154);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},60185:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(30154);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},86655:function(e,t,n){"use strict";n.d(t,{F:function(){return v}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(52175),c=n(12238),u=n(55609),p=n(41451),d=n(6624),m=n(28526),h=n(98085),f=n(80349),g=n(58703);const __=i.__,b=[{value:"attachment",label:__("Attachment Page","jetpack")},{value:"media",label:__("Media File","jetpack")},{value:"none",label:__("None","jetpack")}];function v(e){return Math.min(3,e.images.length)}const k=e=>{const t=(0,s.pick)(e,[["alt"],["id"],["link"]]);return t.url=(0,s.get)(e,["sizes","large","url"])||(0,s.get)(e,["media_details","sizes","large","source_url"])||e.url,t};class y extends o.Component{constructor(){super(...arguments),a()(this,"state",{selectedImage:null,changed:void 0===this.props.attributes.columnWidths||0===this.props.attributes.columnWidths?.length}),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],{noticeOperations:n}=this.props;(0,c.mediaUpload)({allowedTypes:m.RA,filesList:e,onFileChange:e=>{const n=e.map((e=>k(e)));this.setAttributes({images:t.concat(n)})},onError:n.createErrorNotice}),this.setState({changed:!0})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,s.filter)(this.props.attributes.images,((t,n)=>e!==n)),{columns:n}=this.props.attributes;this.setState({selectedImage:null,changed:!0}),this.setAttributes({images:t,columns:n?Math.min(t.length,n):n})})),a()(this,"onSelectImage",(e=>()=>{this.state.selectedImage!==e&&this.setState({selectedImage:e})})),a()(this,"onSelectImages",(e=>{const{columns:t}=this.props.attributes;this.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((e=>k(e)))}),this.setState({changed:!0})})),a()(this,"onMove",((e,t)=>{const n=[...this.props.attributes.images];n.splice(t,1,this.props.attributes.images[e]),n.splice(e,1,this.props.attributes.images[t]),this.setState({selectedImage:t,changed:!0}),this.setAttributes({images:n})})),a()(this,"onMoveForward",(e=>()=>{e!==this.props.attributes.images.length-1&&this.onMove(e,e+1)})),a()(this,"onMoveBackward",(e=>()=>{0!==e&&this.onMove(e,e-1)})),a()(this,"onResize",(e=>{this.state.changed&&this.setAttributes({columnWidths:e})})),a()(this,"setColumnsNumber",(e=>this.setAttributes({columns:e}))),a()(this,"setRoundedCorners",(e=>this.setAttributes({roundedCorners:e}))),a()(this,"setImageAttributes",(e=>t=>{const{attributes:{images:n}}=this.props;n[e]&&this.setAttributes({images:[...n.slice(0,e),{...n[e],...t},...n.slice(e+1)]})})),a()(this,"setLinkTo",(e=>this.setAttributes({linkTo:e}))),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files)))}static getDerivedStateFromProps(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}render(){const{selectedImage:e}=this.state,{attributes:t,isSelected:n,className:r,noticeOperations:a,noticeUI:i,setAttributes:s}=this.props,{align:c,columns:k=v(t),imageFilter:y,images:E,linkTo:w,roundedCorners:_}=t,C=(0,o.createElement)(u.DropZone,{onFilesDrop:this.addFiles}),j=(0,o.createElement)(l.BlockControls,null,!!E.length&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.ToolbarGroup,null,(0,o.createElement)(u.ToolbarItem,null,(()=>(0,o.createElement)(l.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:m.RA,multiple:!0,gallery:!0,value:E.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,o.createElement)(g.Z,{label:__("Edit Gallery","jetpack"),onClick:t})}})))),(0,o.createElement)(p.Z,{value:y,onChange:e=>{s({imageFilter:e}),this.setState({selectedImage:null})}})));if(0===E.length)return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.MediaPlaceholder,{icon:(0,o.createElement)(l.BlockIcon,{icon:f.qv}),className:r,labels:{title:__("Tiled Gallery","jetpack"),name:__("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:m.RA,multiple:!0,notices:i,onError:a.createErrorNotice}));const S=(0,h.t)(m.P0,t.className);return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(u.PanelBody,{title:__("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(S)&&E.length>1&&(0,o.createElement)(u.RangeControl,{label:__("Columns","jetpack"),value:k,onChange:this.setColumnsNumber,min:1,max:Math.min(m.hI,E.length)}),S!==m.xJ&&(0,o.createElement)(u.RangeControl,{label:__("Rounded corners","jetpack"),value:_,onChange:this.setRoundedCorners,min:0,max:m.Z5}),(0,o.createElement)(u.SelectControl,{label:__("Link To","jetpack"),value:w,onChange:this.setLinkTo,options:b}))),i,(0,o.createElement)(d.Z,{align:c,className:r,columns:k,imageFilter:y,images:E,layoutStyle:S,linkTo:w,onMoveBackward:this.onMoveBackward,onMoveForward:this.onMoveForward,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,onResize:this.onResize,roundedCorners:_,selectedImage:n?e:null,setImageAttributes:this.setImageAttributes},C,n&&(0,o.createElement)("div",{className:"tiled-gallery__add-item"},(0,o.createElement)(u.FormFileUpload,{multiple:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack")))))}}t.ZP=(0,u.withNotices)(y)},41451:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_x=a._x,i=[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Original","image style","jetpack"),value:void 0},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Black and White","image style","jetpack"),value:"black-and-white"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:_x("Sepia","image style","jetpack"),value:"sepia"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Clarendon","image style","jetpack"),value:"clarendon"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:_x("Gingham","image style","jetpack"),value:"gingham"}],s=__("Pick an image filter","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:s,tooltip:s,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},i.map((e=>{let{icon:i,title:s,value:l}=e;return(0,r.createElement)(o.MenuItem,{className:t===l?"is-active":void 0,icon:i,isSelected:t===l,key:l||"original",onClick:(c=l,()=>{n(t===c?void 0:c),a()}),role:"menuitemcheckbox"},s);var c})))}})}},79906:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(39630),u=n(55609),p=n(11313),d=n(9818),m=n(9512);const __=l.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"img",(0,o.createRef)()),a()(this,"onImageClick",(()=>{this.props.isSelected||this.props.onSelect()})),a()(this,"onImageKeyDown",(e=>{this.img.current===document.activeElement&&this.props.isSelected&&[c.BACKSPACE,c.DELETE].includes(e.keyCode)&&this.props.onRemove()}))}componentDidUpdate(){const{alt:e,height:t,image:n,link:r,url:a,width:o}=this.props;if(n){const i={};!e&&n.alt_text&&(i.alt=n.alt_text),!t&&n.media_details&&n.media_details.height&&(i.height=+n.media_details.height),!r&&n.link&&(i.link=n.link),!a&&n.source_url&&(i.url=n.source_url),!o&&n.media_details&&n.media_details.width&&(i.width=+n.media_details.width),Object.keys(i).length&&this.props.setAttributes(i)}}render(){const{"aria-label":e,alt:t,columns:n,height:r,id:a,imageFilter:i,isFirstItem:l,isLastItem:c,isSelected:d,link:h,linkTo:f,onMoveBackward:g,onMoveForward:b,onRemove:v,origUrl:k,showMovers:y,srcSet:E,url:w,width:_}=this.props;let C;switch(f){case"media":C=w;break;case"attachment":C=h}const j=(0,p.isBlobURL)(k),S=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("img",{alt:t,"aria-label":e,"data-height":r,"data-id":a,"data-link":h,"data-url":k,"data-width":_,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:w,srcSet:j?void 0:E,tabIndex:"0",style:j?{backgroundImage:`url(${k})`}:void 0}),j&&(0,o.createElement)(u.Spinner,null));return(0,o.createElement)("figure",{className:s()("tiled-gallery__item",{"is-selected":d,"is-transient":j,[`filter__${i}`]:!!i})},y&&(0,o.createElement)("div",{className:"tiled-gallery__item__move-menu"},(0,o.createElement)(u.Button,{icon:1===n?m.WO:m.KT,onClick:l?void 0:g,className:"tiled-gallery__item__move-backward",label:__("Move image backward","jetpack"),"aria-disabled":l,disabled:!d}),(0,o.createElement)(u.Button,{icon:1===n?m.xf:m.zz,onClick:c?void 0:b,className:"tiled-gallery__item__move-forward",label:__("Move image forward","jetpack"),"aria-disabled":c,disabled:!d})),(0,o.createElement)("div",{className:"tiled-gallery__item__inline-menu"},(0,o.createElement)(u.Button,{icon:m.xv,onClick:v,className:"tiled-gallery__item__remove",label:__("Remove image","jetpack"),disabled:!d})),C?(0,o.createElement)("a",null,S):S)}}t.Z=(0,d.withSelect)(((e,t)=>{const{getMedia:n}=e("core"),{id:r}=t;return{image:r?n(r):null}}))(h)},97671:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p,"data-amp-layout":"responsive"});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},9512:function(e,t,n){"use strict";n.d(t,{KT:function(){return o},zz:function(){return i},xf:function(){return s},WO:function(){return l},xv:function(){return c}});var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M5 8.70002L10.6 14.4L12 12.9L7.8 8.70002L12 4.50002L10.6 3.00002L5 8.70002Z"})),i=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M13 8.7L7.4 3L6 4.5L10.2 8.7L6 12.9L7.4 14.4L13 8.7Z"})),s=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"})),l=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"})),c=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"-2 -2 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z"}))},80349:function(e,t,n){"use strict";n.d(t,{u2:function(){return S},qv:function(){return x},Xd:function(){return T}});var r=n(69307),a=n(65736),o=n(4981),i=n(92819),s=n(55609),l=n(86655),c=n(57713),u=n(28526),p=n(58014),d=n(57535),m=n(20510),h=n(70132),f=n(96606),g=n(85472),b=n(79009),v=n(10742),k=n(52642),y=n(41145);const __=a.__,_x=a._x,E={[u.EU]:_x("Tiled mosaic","Tiled gallery layout","jetpack"),[u.xJ]:_x("Circles","Tiled gallery layout","jetpack"),[u.sw]:_x("Tiled columns","Tiled gallery layout","jetpack"),[u.yw]:_x("Square tiles","Tiled gallery layout","jetpack")},w=u.P0.map((e=>({...e,label:E[e.name]})));function _(e){return(0,i.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const C={align:{default:"center",type:"string"},className:{default:`is-style-${u.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},j={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:f,width:160,height:95},{alt:"",link:"",url:g,width:160,height:107},{alt:"",link:"",url:b,width:304,height:203},{alt:"",link:"",url:v,width:312,height:207},{alt:"",link:"",url:k,width:152,height:101},{alt:"",link:"",url:y,width:152,height:105}],linkTo:"none"},S="tiled-gallery",x=(0,r.createElement)(s.SVG,{viewBox:"0 0 24 24",width:24,height:24},(0,r.createElement)(s.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),T={attributes:C,category:(0,m.Z)("media","layout"),description:__("Display multiple images in an elegantly organized tiled layout.","jetpack")+((0,p.Wp)()?"":" "+__("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:{src:x,foreground:(0,d.m)()},keywords:[_x("columns","block search term","jetpack"),_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("square","block search term","jetpack"),_x("circle","block search term","jetpack"),_x("mosaic","block search term","jetpack")],styles:w,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:__("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>_(e).length>0,transform:e=>{const t=_(e);return(0,o.createBlock)(`jetpack/${S}`,{images:t.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:e=>{let{images:t}=e;const n=_(t);return n.length>0?(0,o.createBlock)(`jetpack/${S}`,{images:n.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,o.createBlock)(`jetpack/${S}`)}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n,columns:r,linkTo:a}=e;return(0,o.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:e=>{let{align:t,images:n}=e;return n.length>0?n.map((e=>{let{id:n,url:r,alt:a}=e;return(0,o.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):(0,o.createBlock)("core/image")}}]},edit:l.ZP,save:c.Z,deprecated:h.Z,example:{attributes:j}}},64597:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=n?{flexBasis:`${n}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:a},t)}},31766:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},6624:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(79906),l=n(97671),c=n(83958),u=n(92870),p=n(5968),d=n(28526);const __=a.__;class m extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:c,linkTo:u,layoutStyle:d,onMoveBackward:m,onMoveForward:h,onRemoveImage:f,onSelectImage:g,selectedImage:b,setImageAttributes:v}=this.props,k=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),y=c?l.Z:s.Z,{src:E,srcSet:w}=(0,p.z)(e,{layoutStyle:d});return(0,r.createElement)(y,{alt:e.alt,"aria-label":k,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:b===t,key:t,link:e.link,linkTo:u,onMoveBackward:c?void 0:m(t),onMoveForward:c?void 0:h(t),onRemove:c?void 0:f(t),onSelect:c?void 0:g(t),origUrl:e.url,setAttributes:c?void 0:v(t),showMovers:i.length>1,srcSet:w,url:E,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:l,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,p.v)(s)?u.Z:c.Z,b=this.props.images.map(this.renderImage,this),v=s!==d.xJ?Math.min(l,d.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},83958:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(64597),l=n(31766),c=n(92212),u=n(17265),p=n(58731);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t,r=[];(0,u.W)(n).forEach((t=>{r.push((0,u.i)(t,e))})),void 0!==this.props.onResize&&this.props.onResize(r)}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:i}=this.props,u=(0,p.h9)(n),d="columns"===r?(0,p.sv)(u,t):(0,p.T9)(u,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(s.Z,{key:n,width:i?.[t]?.[n]},r)}))))))}}},58731:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=P([N,N,A,N,N]),c=P([N,N,N,A,N,N,N]),u=T([3,1,3],5),p=P([A,N,N,A]),d=T([1,2,1],5),m=P([A,N,N,N]),h=T([1,3],3),f=P([N,N,N,A]),g=T([3,1],3),b=P([B(1.6),(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=P([(0,r.overEvery)(I(.9),B(2)),(0,r.overEvery)(I(.9),B(2)),B(1.6)]),_=T([2,1],3),C=P([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function P(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function N(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function B(e){return t=>t<e}},17265:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(28526);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){return function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);return function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}));return d.map((e=>parseFloat(e/o*100).toFixed(5)))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},92212:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},92870:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(92212),i=n(64597),s=n(31766),l=n(28526);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},57713:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(6624),o=n(86655),i=n(98085),s=n(28526);function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=(0,o.F)(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,i.t)(s.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},5968:function(e,t,n){"use strict";n.d(t,{v:function(){return u},z:function(){return p}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(28526),l=n(58014),c=n(47077);function u(e){return["circle","square"].includes(e)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.width)return e.url?{src:e.url}:{};if((0,c.Z)())return{src:e.url};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url)||(0,l.Ug)()&&(0,l.M6)())return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:p}=e,{layoutStyle:f}=t,g=m(n)||!0===d()?h:r.Z;let b;if(u(f)&&p&&a){const e=Math.min(s.GP,p,a);b=g(n,{resize:`${e},${e}`})}else b=g(n);const v=300,k=600;let y;if(u(f)){const e=Math.min(k,p,a),t=Math.min(s.GP,p,a);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(k,p),t=Math.min(s.GP,p);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:b},y&&{srcSet:y})}function d(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function m(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},96816:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});const r=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}]},71486:function(e,t,n){"use strict";var r=n(70124);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:r.Z,isDeprecation:!0}},70124:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{caption:n,guid:o}=t;if(!o)return null;const i=`https://videopress.com/v/${o}`;return(0,r.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${i}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},4207:function(e,t,n){"use strict";var r=n(30663),a=n(7332);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"},videoPressClassNames:{type:"string"},align:{type:"wide"}},support:{reusable:!1},isEligible:e=>{let{videoPressClassNames:t,guid:n}=e;return n&&void 0===t},migrate:e=>{const{className:t,videoPressClassNames:n}=e;return{...e,...(0,a.a)(t,n)}},save:r.Z,isDeprecation:!0}},30663:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(10198);function i(e){const{attributes:{autoplay:t,caption:n,controls:i,guid:s,loop:l,muted:c,poster:u,preload:p,videoPressClassNames:d}={}}=e;if(!s)return null;const m=(0,o.p)(s,{autoplay:t,controls:i,loop:l,muted:c,poster:u,preload:p});return(0,r.createElement)("figure",{className:d},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${m}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},10198:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,poster:s,preload:l}=t;if(!e)return null;const c={...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{posterUrl:s},..."none"!==l&&{preloadContent:l}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,c)}},7332:function(e,t,n){"use strict";n.d(t,{a:function(){return l}});var r=n(81326),a=n.n(r),o=n(29512),i=n.n(o);const s=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}],l=(e,t)=>{const n=s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1}),r=a()(e,{...n,"wp-block-embed":!1,"is-type-video":!1,"is-provider-videopress":!1}),o=new(i())(r);let l=a()(e,t);return o.forEach((e=>{l=l.replace(e,"")})),{className:r,videoPressClassNames:l.trim()}}},3082:function(e,t,n){"use strict";var r=n(38225);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},videoPressClassNames:{type:"string"}},support:{reusable:!1},isEligible:e=>e.guid,save:r.Z,isDeprecation:!0}},38225:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(14842);function l(e){const{attributes:{autoplay:t,caption:n,controls:o,guid:l,loop:c,muted:u,playsinline:p,poster:d,preload:m,videoPressClassNames:h,className:f,align:g,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k}={}}=e,y=a.useBlockProps.save({className:i()("wp-block-video",f,h,{[`align${g}`]:g})}),E=(0,s.p)(l,{autoplay:t,controls:o,loop:c,muted:u,playsinline:p,poster:d,preload:m,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k});return(0,r.createElement)("figure",y,(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${E}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},14842:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d}=t;if(!e)return null;const m={resizeToParent:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,m)}},6976:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(11313),p=n(55609),d=n(94333),m=n(9818),h=n(52175),f=n(65736),g=n(22607),b=n(41221),v=n(89105),k=n.n(v),y=n(92819),E=n(38341),w=n(45151),_=n(43501),C=n(72905),j=n(9360);const __=f.__,_x=f._x,S=["image"],x=e=>{const{html:t,scripts:n,interactive:r,caption:a,isSelected:o,hideOverlay:i,attributes:l,setAttributes:c}=e,{align:u,className:d,videoPressClassNames:m,maxWidth:f}=l,g=(0,h.useBlockProps)({className:k()("wp-block-video",d,m,{[`align${u}`]:u})});return(0,s.createElement)("figure",g,(0,s.createElement)("div",{className:"wp-block-embed__wrapper"},(0,s.createElement)(p.ResizableBox,{enable:{top:!1,bottom:!1,left:!0,right:!0},maxWidth:"100%",size:{width:f},style:{margin:"auto"},onResizeStop:(e,t,n)=>{let r=getComputedStyle(n).width;if(null!==n.parentElement){r===getComputedStyle(n.parentElement).width&&(r="100%")}c({maxWidth:r})}},(0,s.createElement)(p.SandBox,{html:t,scripts:n,type:m}))),!r&&(0,s.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:i}),(!h.RichText.isEmpty(a)||o)&&(0,s.createElement)(h.RichText,{tagName:"figcaption",placeholder:__("Write caption…","jetpack"),value:a,onChange:e=>c({caption:e}),inlineToolbar:!0}))};t.Z=(0,d.createHigherOrderComponent)((0,d.compose)([(0,m.withSelect)(((e,t)=>{const{autoplay:n,controls:r,guid:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,src:h,useAverageColor:f}=t.attributes,{getEmbedPreview:g,isRequestingEmbedPreview:b}=e("core"),v=(0,w.p)(a,{autoplay:n,controls:r,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,useAverageColor:f}),k=!!v&&g(v);return{isFetchingPreview:!!v&&b(v),isUploading:(0,u.isBlobURL)(h),preview:k,url:v}})),(0,m.withDispatch)((e=>({invalidateCachedEmbedPreview:t=>{e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}))),d.withInstanceId,e=>class extends s.Component{constructor(){super(...arguments),i()(this,"hideOverlay",(()=>{this.setState({interactive:!0})})),i()(this,"setRatingAndAllowDownload",(async()=>{const e=(0,y.get)(this.props,"attributes.id"),t=await this.requestMedia(e);let n=(0,y.get)(t,"jetpack_videopress.rating");const r=(0,y.get)(t,"media_details.videopress.allow_download");n&&("X-18"===n&&(n="R-17"),this.setState({rating:n})),void 0!==r&&this.setState({allowDownload:!!r})})),i()(this,"schedulePreviewCacheReload",(()=>{const{invalidateCachedEmbedPreview:e,url:t}=this.props;null===this.previewCacheReloadTimer&&this.previewFailuresCount<5&&(this.previewFailuresCount++,this.previewCacheReloadTimer=setTimeout((()=>{e(t),this.previewCacheReloadTimer=null}),2e3*this.previewFailuresCount))})),i()(this,"fallbackToCore",(()=>{this.props.setAttributes({guid:void 0}),this.setState({fallback:!0})})),i()(this,"setGuid",(async()=>{const{attributes:e,setAttributes:t}=this.props,{id:n}=e;if(n)try{const e=await this.requestMedia(n);if(null===e)return;const r=(0,y.get)(e,"jetpack_videopress.guid");r?(t({guid:r}),this.setTracks(r)):this.fallbackToCore()}catch(e){this.setState({isFetchingMedia:!1}),this.fallbackToCore()}else t({guid:void 0})})),i()(this,"requestMedia",(async e=>{if(!e)return null;if(null!==this.state.media&&this.state.lastRequestedMediaId===e)return this.state.media;this.setState({isFetchingMedia:!0});const t=await c()({path:`/wp/v2/media/${e}`}).catch((()=>(this.setState({fallback:!0}),null))).finally((()=>{this.setState({isFetchingMedia:!1})})),{id:n}=this.props.attributes;return e!==n?null:(this.setState({media:t,lastRequestedMediaId:e}),t)})),i()(this,"setTracks",(e=>{const{setAttributes:t}=this.props;e&&c()({url:`https://public-api.wordpress.com/rest/v1.1/videos/${e}`,credentials:"omit",global:!0}).then((e=>{const n=[];Object.keys(e.tracks).forEach((t=>{for(const r in e.tracks[t]){const a=e.tracks[t][r];n.push({src:a.src,kind:t,srcLang:r,label:a.label})}})),t({videoPressTracks:n})}))})),i()(this,"switchToEditing",(()=>{this.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),i()(this,"onSelectPoster",(e=>{const{setAttributes:t}=this.props;t({poster:e.url})})),i()(this,"onRemovePoster",(()=>{const{setAttributes:e}=this.props;e({poster:""}),this.posterImageButton.current.focus()})),i()(this,"toggleAttribute",(e=>t=>{this.props.setAttributes({[e]:t})})),i()(this,"getAutoplayHelp",(e=>e?__("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null)),i()(this,"onChangeRating",(e=>{const t=this.state.rating;"X-18"===e&&(e="R-17"),-1!==(0,y.indexOf)(["G","PG-13","R-17"],e)&&this.updateMetaApiCall({rating:e},(()=>this.setState({isUpdatingRating:!0,rating:e})),(()=>this.setState({rating:t})),(()=>this.setState({isUpdatingRating:!1})))})),i()(this,"onChangeAllowDownload",(e=>{const t=this.state.allowDownload;this.updateMetaApiCall({allow_download:e?1:0},(()=>this.setState({isUpdatingAllowDownload:!0,allowDownload:e})),(()=>this.setState({allowDownload:t})),(()=>this.setState({isUpdatingAllowDownload:!1})))})),i()(this,"updateMetaApiCall",((e,t,n,r)=>{const{invalidateCachedEmbedPreview:a,url:o}=this.props,{id:i}=this.props.attributes;if(!i)return;t();const s={id:i};Object.assign(s,e),c()({path:"/wpcom/v2/videopress/meta",method:"POST",data:s}).then((e=>{status in e&&200!==e.status&&n()})).catch((()=>n())).finally((()=>{r(),a(o)}))})),this.state={media:null,isFetchingMedia:!1,fallback:!1,interactive:!1,rating:null,lastRequestedMediaId:null,isUpdatingRating:!1,allowDownload:null,isUpdatingAllowDownload:!1},this.posterImageButton=(0,s.createRef)(),this.previewCacheReloadTimer=null,this.previewFailuresCount=0}static getDerivedStateFromProps(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}async componentDidMount(){const{guid:e}=this.props.attributes;e?this.setTracks(e):await this.setGuid(),this.setRatingAndAllowDownload()}async componentDidUpdate(e){const{attributes:t,invalidateCachedEmbedPreview:n,preview:r,setAttributes:a,url:o,isFetchingPreview:i}=this.props;t.id!==e.attributes.id&&(await this.setGuid(),this.setRatingAndAllowDownload());let s=!1;if(o&&o!==e.url&&(n(o),s=!0),r){const e=(0,_.f)(r.html,k()("wp-block-embed","is-type-video","is-provider-videopress"),!1);this.previewFailuresCount=0,a({videoPressClassNames:e})}else i||s||!this.props.attributes.guid||this.schedulePreviewCacheReload()}getPreloadHelp(){const{attributes:e}=this.props;return"auto"===e.preload?__("Note: Automatically downloading videos may cause issues if there are many videos displayed on the same page.","jetpack"):null}renderControlLabelWithTooltip(e,t){return(0,s.createElement)(p.Tooltip,{text:t,position:"top"},(0,s.createElement)("span",null,e))}render(){const{attributes:t,instanceId:n,isFetchingPreview:r,isUploading:o,preview:i,setAttributes:l}=this.props,{fallback:c,isFetchingMedia:u,isUpdatingRating:d,interactive:m,rating:v,allowDownload:k,isUpdatingAllowDownload:y}=this.state,{autoplay:w,caption:_,controls:T,guid:P,loop:N,muted:A,playsinline:I,poster:B,preload:M,useAverageColor:R,videoPressTracks:L,isVideoPressExample:Z,src:F}=t;if(Z&&F)return(0,s.createElement)("img",{src:F,alt:_});const D=`video-block__poster-image-description-${n}`,O=(0,s.createElement)(s.Fragment,null,(0,s.createElement)(h.BlockControls,{group:"block"},(0,s.createElement)(j.Z,{tracks:L,onChange:e=>{l({videoPressTracks:e})},guid:P})),(0,s.createElement)(h.BlockControls,null,(0,s.createElement)(p.ToolbarGroup,null,(0,s.createElement)(p.ToolbarButton,{className:"components-icon-button components-toolbar__control",label:__("Edit video","jetpack"),onClick:this.switchToEditing,icon:(0,s.createElement)(g.Z,{icon:b.Z})}))),(0,s.createElement)(h.InspectorControls,null,(0,s.createElement)(p.PanelBody,{title:__("Video Settings","jetpack")},(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Autoplay","jetpack"),
+/* translators: Tooltip describing the "autoplay" option for the VideoPress player */
+__("Start playing the video as soon as the page loads","jetpack")),onChange:this.toggleAttribute("autoplay"),checked:w,help:this.getAutoplayHelp}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Loop","jetpack"),
+/* translators: Tooltip describing the "loop" option for the VideoPress player */
+__("Restarts the video when it reaches the end","jetpack")),onChange:this.toggleAttribute("loop"),checked:N}),(0,s.createElement)(p.ToggleControl,{label:__("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:A}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Playback Controls","jetpack"),
+/* translators: Tooltip describing the "controls" option for the VideoPress player */
+__("Display the video playback controls","jetpack")),onChange:this.toggleAttribute("controls"),checked:T}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Play Inline","jetpack"),
+/* translators: Tooltip describing the "playsinline" option for the VideoPress player */
+__("Play the video inline instead of full-screen on mobile devices","jetpack")),onChange:this.toggleAttribute("playsinline"),checked:I}),(0,s.createElement)(p.SelectControl,{label:this.renderControlLabelWithTooltip(__("Preload","jetpack"),
+/* translators: Tooltip describing the "preload" option for the VideoPress player */
+__("Content to dowload before the video is played","jetpack")),value:M,onChange:e=>l({preload:e}),options:[{value:"auto",label:_x("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:_x("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:_x("None","VideoPress preload setting","jetpack")}],help:this.getPreloadHelp()}),(0,s.createElement)(h.MediaUploadCheck,null,(0,s.createElement)(p.BaseControl,{className:"editor-video-poster-control",label:__("Poster Image","jetpack")},(0,s.createElement)(h.MediaUpload,{title:__("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:S,render:e=>{let{open:t}=e;return(0,s.createElement)(p.Button,{isDefault:!0,onClick:t,ref:this.posterImageButton,"aria-describedby":D},B?__("Replace image","jetpack",0):__("Select Poster Image","jetpack"))}}),(0,s.createElement)("p",{id:D,hidden:!0},B?(0,f.sprintf)(
+/* translators: Placeholder is an image URL. */
+__("The current poster image url is %s","jetpack"),B):__("There is no poster image currently selected","jetpack")),!!B&&(0,s.createElement)(p.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},__("Remove Poster Image","jetpack"))))),(0,s.createElement)(C.Z,{attributes:t,setAttributes:l,useAverageColor:R,toggleAttribute:this.toggleAttribute}),(0,s.createElement)(p.PanelBody,{title:__("Video File Settings","jetpack")},(0,s.createElement)(p.SelectControl,{label:_x("Rating","The age rating for this video.","jetpack"),value:v,disabled:u||d,options:[{label:_x("G",'Video rating for "General Audiences".',"jetpack"),value:"G"},{label:_x("PG-13",'Video rating for "Parental Guidance", unsuitable for children under 13.',"jetpack"),value:"PG-13"},{label:_x("R",'Video rating for "Restricted", not recommended for children under 17.',"jetpack"),value:"R-17"}],onChange:this.onChangeRating}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Allow download","jetpack"),
+/* translators: Tooltip describing the "allow download" option for the VideoPress player */
+__("Display download option and allow viewers to download this video","jetpack")),onChange:this.onChangeAllowDownload,checked:k,disabled:u||y})))),z=u||r,U=c||o||!P,$=U&&!o&&!z;if(U)return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",{className:o||z?"":"videopress-block-hide"},(0,s.createElement)(E.Z,{text:o?__("Uploading…","jetpack"):__("Generating preview…","jetpack",0)})),(0,s.createElement)("div",{className:$?"":"videopress-block-hide"},(0,s.createElement)(e,this.props)));const{html:V,scripts:G}=i||{html:null,scripts:null},H=z||!i;return(0,s.createElement)(s.Fragment,null,O,H&&(0,s.createElement)(E.Z,{text:__("Generating preview…","jetpack")}),!H&&(0,s.createElement)(x,a()({},this.props,{hideOverlay:this.hideOverlay,html:V,scripts:G,interactive:m,caption:_})))}}]),"withVideoPressEdit")},38341:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{text:t}=e;return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(a.Spinner,null),(0,r.createElement)("p",null,t))}},64089:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(89105),s=n.n(i),l=n(45151);t.Z=(0,a.createHigherOrderComponent)((e=>t=>{const{attributes:{autoplay:n,caption:a,controls:i,guid:c,loop:u,muted:p,playsinline:d,poster:m,preload:h,videoPressClassNames:f,className:g,align:b,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E,maxWidth:w}={}}=t,_=o.useBlockProps.save({className:s()("wp-block-video",g,f,{[`align${b}`]:b})});if(!c)return e(t);const C=(0,l.p)(c,{autoplay:n,controls:i,loop:u,muted:p,playsinline:d,poster:m,preload:h,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E});let j={};return w&&w.length>0&&"100%"!==w&&(j={maxWidth:w,margin:"auto"}),(0,r.createElement)("figure",_,(0,r.createElement)("div",{className:"wp-block-embed__wrapper",style:j},`\n${C}\n`),!o.RichText.isEmpty(a)&&(0,r.createElement)(o.RichText.Content,{tagName:"figcaption",value:a}))}),"withVideoPressSave")},72905:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=(n(99196),n(55609)),s=n(52175),l=n(65736);const __=l.__;class c extends o.Component{constructor(){super(...arguments),a()(this,"handleChangeSeekbarColor",(e=>{this.setState({seekbarColor:e})})),a()(this,"handleChangeSeekbarLoadingColor",(e=>{this.setState({seekbarLoadingColor:e})})),a()(this,"handleChangeSeekbarPlayedColor",(e=>{this.setState({seekbarPlayedColor:e})})),a()(this,"saveColors",(()=>{const{seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n}=this.state,{setAttributes:r}=this.props;r({seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n})}));const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.props.attributes;this.state={seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}}render(){const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.state,{toggleAttribute:r,useAverageColor:a}=this.props,l=!0;return(0,o.createElement)(i.PanelBody,{className:"seekbar-color-settings__panel",title:__("Progress Bar Colors","jetpack"),initialOpen:!1},(0,o.createElement)(i.ToggleControl,{label:__("Match video","jetpack"),help:__("Colors adapt to the video as it plays","jetpack"),onChange:r("useAverageColor"),checked:a}),(0,o.createElement)(s.PanelColorSettings,{opened:!a,showTitle:!1,colorSettings:[{value:e,onChange:this.handleChangeSeekbarColor,label:__("Main","jetpack"),showTitle:l},{value:n,onChange:this.handleChangeSeekbarLoadingColor,label:__("Loaded","jetpack"),showTitle:l},{value:t,onChange:this.handleChangeSeekbarPlayedColor,label:__("Progress","jetpack"),showTitle:l}]},(0,o.createElement)(i.Button,{variant:"secondary",onClick:this.saveColors},__("Save colors","jetpack"))))}}t.Z=c},9360:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(69307),a=n(86989),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31266),u=n(9818);const __=i.__,p="subtitles",d=".vtt,text/vtt",m=[{label:__("Subtitles","jetpack"),value:"subtitles"},{label:__("Captions","jetpack"),value:"captions"},{label:__("Descriptions","jetpack"),value:"descriptions"},{label:__("Chapters","jetpack"),value:"chapters"},{label:__("Metadata","jetpack"),value:"metadata"}],h=(0,r.createElement)(s.SVG,{width:"18",height:"14",viewBox:"0 0 18 14",role:"img",fill:"none"},(0,r.createElement)(s.Rect,{x:"0.75",y:"0.75",width:"16.5",height:"12.5",rx:"1.25",stroke:"black",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(s.Path,{d:"M3 7H15",stroke:"black",strokeWidth:"1.5"}),(0,r.createElement)(s.Path,{d:"M3 10L15 10",stroke:"black",strokeWidth:"1.5"})),f=()=>"videoPressUploadTrack"in window;function g(e){let{tracks:t,onChange:n,guid:a}=e;const[l=-1,c]=(0,r.useState)(),u=e=>{const r=t[e];c(e),((e,t)=>{if(f())return window.videoPressDeleteTrack(t,e.kind,e.srcLang);const n={method:"POST",path:`/videos/${t}/tracks/delete`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang]]};return o()(n)})(r,a).finally((()=>{n(t.filter(((t,n)=>n!==e))),c(-1)}))};let p;return p=0===t.length?(0,r.createElement)("p",{className:"videopress-block-tracks-editor__tracks-informative-message"},__("Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.","jetpack")):t.map(((e,t)=>(0,r.createElement)("div",{key:t,className:"videopress-block-tracks-editor__track-list-track"},(0,r.createElement)("span",null,e.label),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__track-list-track-delete"},(0,r.createElement)(s.Button,{isLink:!0,isDestructive:!0,onClick:()=>{u(t)},"aria-label":(0,i.sprintf)(
+/* translators: %s: Label of the video text track e.g: "French subtitles" */
+__("Delete %s","jetpack"),e.label),disabled:l===t},l===t?__("Deleting","jetpack"):__("Delete","jetpack",0)))))),(0,r.createElement)(s.MenuGroup,{label:__("Text tracks","jetpack"),className:"videopress-block-tracks-editor__track-list"},p)}function b(e){let{track:t,guid:n,onChange:a,onClose:c,onCancel:h,trackExists:g}=e;const[b,v]=(0,r.useState)(),[k=!1,y]=(0,r.useState)(),{label:E="",srcLang:w="",kind:_=p}=t,C=t.tmpFile?t.tmpFile.name:"";if(!(0,u.useSelect)((e=>e(l.store).getSettings().mediaUpload),[]))return null;return(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor"},(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-label"},__("Edit track","jetpack")),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file"},(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label"},(0,r.createElement)("span",null,__("File","jetpack"),":"),""!==C&&(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label-name"},(0,r.createElement)("strong",null,C)),(0,r.createElement)(l.MediaUploadCheck,null,(0,r.createElement)(s.FormFileUpload,{onChange:e=>{const n=e.target.files;!n.length>0||(t.tmpFile=n[0],a(t))},accept:d,render:e=>{let{openFileDialog:t}=e;return(0,r.createElement)(s.Button,{isLink:!0,onClick:()=>{t()}},""===C?__("Select track","jetpack"):__("Change track","jetpack",0))},disabled:k}))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-help"},
+/* translators: %s: The allowed file types to be uploaded as a video text track." */
+(0,i.sprintf)(__("Allowed formats: %s","jetpack"),d))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-label-language"},(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,label:e}),label:__("Label","jetpack"),value:E,help:__("Title of track","jetpack"),disabled:k}),(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,srcLang:e}),label:__("Source language","jetpack"),value:w,help:__("Language tag (en, fr, etc.)","jetpack"),disabled:k})),(0,r.createElement)(s.SelectControl,{className:"videopress-block-tracks-editor__single-track-editor-kind-select",options:m,value:_,label:
+/* translators: %s: The kind of video text track e.g: "Subtitles, Captions" */
+__("Kind","jetpack"),onChange:e=>{a({...t,kind:e})},disabled:k}),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-buttons-container"},k?(0,r.createElement)(s.Spinner,null):(0,r.createElement)(s.Button,{isSecondary:!0,disabled:!t.tmpFile,onClick:()=>{v(null),""===E&&(t.label=__("English","jetpack")),""===w&&(t.srcLang="en"),void 0===t.kind&&(t.kind=p),g(t)?v(__("A track already exists for that language and kind.","jetpack")):(y(!0),((e,t)=>{if(f())return window.videoPressUploadTrack(t,e.kind,e.srcLang,e.label,e.tmpFile);const n={method:"POST",path:`/videos/${t}/tracks`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang],["label",e.label],["vtt",e.tmpFile]]};return o()(n)})(t,n).then((()=>{a(t),v(null),c()})).catch((e=>{e.message&&v(e.message)})).finally((()=>{y(!1)})))}},__("Save","jetpack")),(0,r.createElement)(s.Button,{isLink:!0,onClick:h},__("Close","jetpack"))),b&&(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-error"},
+/* translators: %s: An error message returned after a failed video track file upload." */
+(0,i.sprintf)(__("Error: %s","jetpack"),b))))}function v(e){let{tracks:t=[],onChange:n,guid:a}=e;const[o,i]=(0,r.useState)(null);return(0,r.createElement)(s.Dropdown,{contentClassName:"videopress-block-tracks-editor",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return(0,r.createElement)(s.ToolbarButton,{label:__("Text tracks","jetpack"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:n,icon:h})},renderContent:()=>null!==o?(0,r.createElement)(b,{track:t[o],guid:a,onChange:e=>{const r=[...t];r[o]=e,n(r)},onClose:()=>i(null),onCancel:()=>{n(t.filter(((e,t)=>t!==o))),i(null)},trackExists:e=>-1!==t.filter(((e,t)=>t!==o)).findIndex((t=>t.kind===e.kind&&t.srcLang===e.srcLang))}):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)(g,{tracks:t,onChange:n,guid:a}),(0,r.createElement)(s.MenuGroup,{className:"videopress-block-tracks-editor__add-tracks-container",label:__("Add tracks","jetpack")},(0,r.createElement)(s.MenuItem,{icon:c.Z,onClick:()=>{(()=>{const e=t.length,r=[...t];r[e]||(r[e]={}),r[e]={...t[e]},n(r),i(e)})()}},__("Upload track","jetpack")))))})}},45151:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d,useAverageColor:m}=t;if(!e)return null;const h={resizeToParent:!0,cover:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d},...m&&{useAverageColor:!0}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,h)}},43501:function(e,t,n){"use strict";n.d(t,{f:function(){return s}});var r=n(96816),a=n(89105),o=n.n(a);const i=e=>{const t=r.s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1});return o()(e,t)};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return i(t);const a=document.implementation.createHTMLDocument("");a.body.innerHTML=e;const s=a.body.querySelector("iframe");if(s&&s.height&&s.width){const e=(s.width/s.height).toFixed(2);for(let n=0;n<r.s.length;n++){const a=r.s[n];if(e>=a.ratio)return o()(i(t),a.className,"wp-has-aspect-ratio")}}return t}},33144:function(e,t,n){"use strict";n.d(t,{U:function(){return i},m:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i="mrec",s=[{height:250,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:__("Rectangle 300x250","jetpack"),tag:i,width:300,editorPadding:30},{height:90,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:__("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:__("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),(0,r.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:__("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}]},67907:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(21762);const __=i.__,l=e=>{let{value:t,onChange:n}=e;return(0,r.createElement)(o.PanelBody,{title:__("Visibility","jetpack")},(0,r.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:!!t,label:__("Hide on mobile","jetpack"),help:__("Hides this block for site visitors on mobile devices.","jetpack"),onChange:n}))};t.Z=e=>{let{attributes:{format:t,hideMobile:n},setAttributes:o}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(s.Z,{value:t,onChange:e=>o({format:e})})),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(l,{value:n,onChange:e=>o({hideMobile:!!e})})))}},7299:function(e,t,n){"use strict";var r=n(69307),a=n(67907),o=n(33144),i=n(72473),s=n(52203),l=n(38511),c=n(80405);t.Z=e=>{let{attributes:t,setAttributes:n}=e;const{format:u}=t,p=o.m.find((e=>{let{tag:t}=e;return t===u}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Z,{attributes:t,setAttributes:n}),(0,r.createElement)("div",{className:`wp-block-jetpack-wordads jetpack-wordads-${u}`},(0,r.createElement)("div",{className:"jetpack-wordads__ad",style:{width:p.width,height:p.height,backgroundImage:`url( ${(e=>{switch(e){case"leaderboard":return s;case"mobile_leaderboard":return l;case"wideskyscraper":return c;default:return i}})(u)} )`,backgroundSize:"cover"}})))}},21762:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(33144);const s=(0,a.__)("Pick an ad format","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.ToolbarGroup,{controls:[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:s,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},i.m.map((e=>{let{tag:i,name:s,icon:l}=e;return(0,r.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:l,isSelected:i===t,key:i,onClick:()=>{n(i),a()},role:"menuitemcheckbox"},s)})))}})}},62086:function(e,t,n){"use strict";n.d(t,{u2:function(){return c},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(7299),s=n(33144),l=n(57535);const __=a.__,_x=a._x,c="wordads",u=__("Ad","jetpack"),p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),d={title:u,description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Earn income by adding high quality ads to your post","jetpack")),(0,r.createElement)(o.ExternalLink,{href:"https://wordads.co/"},__("Learn all about WordAds","jetpack"))),icon:{src:p,foreground:(0,l.m)()},attributes:{align:{type:"string",default:"center"},format:{type:"string",default:s.U},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"earn",keywords:[_x("ads","block search term","jetpack"),"WordAds",_x("advertisement","block search term","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:i.Z,save:()=>null}},81921:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535);const __=a.__,_x=a._x,i={name:"facebook",title:"Facebook",icon:{src:"facebook",foreground:(0,o.m)()},keywords:[_x("social","block search term","jetpack")],description:__("Embed a Facebook post.","jetpack"),patterns:[/^https?:\/\/www\.facebook.com\/.+/i],attributes:{providerNameSlug:"facebook",previewable:!1,responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateFacebookEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations)return e;const n=e.variations.filter((e=>e.name!==i.name));return e.variations=[...n,i],e}))},17269:function(e,t,n){"use strict";n(81921),n(82122),n(19775),n(34034)},82122:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535),i=n(28938);const __=a.__,_x=a._x,s={name:"instagram",title:"Instagram",icon:{src:"instagram",foreground:(0,o.m)()},keywords:[_x("image","block search term","jetpack"),_x("social","block search term","jetpack")],description:__("Embed an Instagram post.","jetpack"),patterns:[/^https?:\/\/(www\.)?instagr(\.am|am\.com)\/.+/i],attributes:{providerNameSlug:"instagram",responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateInstagramEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations||!(0,i.Z)())return e;const n=e.variations.filter((e=>e.name!==s.name));return e.variations=[...n,s],e}))},19775:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"loom",title:"Loom",icon:o.zf,keywords:[__("video","jetpack")],description:__("Embed a Loom video.","jetpack"),patterns:[/^https?:\/\/(www\.)?loom\.com\/share\/.+/i],attributes:{providerNameSlug:"loom",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},34034:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"smartframe",title:"SmartFrame",icon:o.Ae,keywords:[__("smartframe","jetpack")],description:__("Embed a SmartFrame Image.","jetpack"),patterns:[/^https?:\/\/(.*?).smartframe.(io|net)\/.*/i],attributes:{providerNameSlug:"smartframe",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},56771:function(e,t,n){"use strict";var r=n(92694),a=n(4981),o=n(33722);const i={from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"jetpack_widget_social_icons"===t},transform:e=>{let{instance:t}=e,n=[];return t.raw.icons.forEach((e=>{const t=new URL(e.url.includes(":")?e.url:"https://"+e.url),r=t.hostname?t.hostname:t.protocol,i=o.Z.find((e=>r.includes(e.url)||e.url.includes(r))),s=(0,a.createBlock)("core/social-link",{service:i?i.name:"chain",url:e.url});n=[...n,s]})),(0,a.createBlock)("core/social-links",{},n)}}]};(0,r.addFilter)("blocks.registerBlockType","addTransformToSocialLinksWidget",(function(e,t){return"core/social-links"!==t||(e.transforms=i),e}))},33722:function(e,t){"use strict";t.Z=[{name:"wordpress",url:["wordpress."]},{name:"fivehundredpx",url:["500px.com"]},{name:"amazon",url:["amazon."]},{name:"bandcamp",url:["bandcamp.com"]},{name:"behance",url:["behance.net"]},{name:"codepen",url:["codepen.io"]},{name:"deviantart",url:["deviantart.com"]},{name:"dribbble",url:["dribbble.com"]},{name:"dropbox",url:["dropbox.com"]},{name:"etsy",url:["etsy.com"]},{name:"facebook",url:["facebook.com"]},{name:"flickr",url:["flickr.com"]},{name:"foursquare",url:["foursquare.com"]},{name:"goodreads",url:["goodreads.com"]},{name:"google",url:["google."]},{name:"github",url:["github.com"]},{name:"instagram",url:["instagram.com"]},{name:"lastfm",url:["last.fm"]},{name:"linkedin",url:["linkedin.com"]},{name:"mail",url:["mailto:"]},{name:"linkedin",url:["linkedin.com"]},{name:"mastodon",url:["mastodon.social"]},{name:"meetup",url:["meetup.com"]},{name:"medium",url:["medium.com"]},{name:"patreon",url:["patreon.com"]},{name:"pinterest",url:["pinterest."]},{name:"pocket",url:["getpocket.com"]},{name:"reddit",url:["reddit.com"]},{name:"skype",url:["skype.com","skype:"]},{name:"snapchat",url:["snapchat.com"]},{name:"soundcloud",url:["soundcloud.com"]},{name:"spotify",url:["spotify.com"]},{name:"telegram",url:["telegram.me","t.me"]},{name:"tiktok",url:["tiktok.com"]},{name:"tumblr",url:["tumblr.com"]},{name:"twitch",url:["twitch.tv"]},{name:"twitter",url:["twitter.com"]},{name:"vimeo",url:["vimeo.com"]},{name:"vk",url:["vk.com"]},{name:"yelp",url:["yelp.com"]},{name:"youtube",url:["youtube.com"]}]},32630:function(e,t,n){"use strict";n.d(t,{x:function(){return a},L:function(){return o}});var r=n(69307);const a=(0,r.createContext)(),o=e=>{let{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o,children:i}=e;return(0,r.createElement)(a.Provider,{value:{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o},children:i})}},58721:function(e,t,n){"use strict";var r=n(92819),a=n(47701),o=n.n(a),i=n(92694),s=n(65736),l=n(81475),c=n(44298),u=n(32220),p=n(94239),d=n(99199);const __=s.__,m=[];(0,i.addFilter)("blocks.registerBlockType","jetpack/paid-block",((e,t)=>((0,c.X1)(t)&&(m.includes(t)||m.push(t),e.keywords=(0,r.uniq)([...e.keywords,"premium",__("premium","jetpack")]),(0,c.HD)(t)||(e.icon=(0,u.Z)(e.icon)),e.attributes.shouldDisplayFrontendBanner||(e.attributes.shouldDisplayFrontendBanner={type:"boolean",default:!0})),e))),(0,i.addFilter)("editor.BlockListBlock","jetpack/paid-block-with-warning",l.Z),(0,i.addFilter)("editor.MediaPlaceholder","jetpack/paid-block-media-placeholder",p.Z),(0,i.addFilter)("editor.MediaReplaceFlow","jetpack/paid-block-media-placeholder",d.Z),o()((function(){(0,c.FK)()&&document.body.classList.add("jetpack-enable-upgrade-nudge")}))},94239:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n);if(!r?.mediaPlaceholder||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:s}=r,{onError:p}=t,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x),m=(0,o.useCallback)((e=>d(e?.length&&(0,l.Qu)(e[0],s))),[s,d]),h=(0,o.useCallback)((e=>{const t=e?.[0]?.props?.children;return(0,l.Qu)(t,s)?m([t]):p(e)}),[m,s,p]);return(0,o.createElement)("div",{className:"paid-block-media-placeholder"},(0,o.createElement)(e,a()({},t,{onFilesPreUpload:m,onError:h})))}),"withMediaPlaceholderUpgradable")},99199:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n),s=(0,o.useRef)();if(!r?.mediaReplaceFlow||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:p}=r,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x);return(0,o.createElement)(e,a()({},t,{onFilesUpload:e=>{s.current=e?.length?e[0]:null,d(e?.length&&(0,l.Qu)(e[0],p))},createNotice:(e,n,r)=>{if((0,l.Qu)(s.current,p))return s.current=null,null;t.createNotice(e,n,r)}}))}),"withMediaReplaceFlowUpgradable")},25122:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{cx:t=23,cy:n=3,r:o=4,fill:i="#e34c84",stroke:s="#ffffff",strokeWidth:l="2"}=e;return(0,r.createElement)(a.Circle,{className:"jetpack-paid-block-symbol",cx:t,cy:n,r:o,fill:i,stroke:s,strokeWidth:l})}},32220:function(e,t,n){"use strict";n.d(t,{p:function(){return s}});var r=n(69307),a=n(25122),o=n(44298);const i=e=>(e?.src?e={...e,src:(0,r.cloneElement)(e.src,{children:[e.src.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})}:e?.props?.children&&(e=(0,r.cloneElement)(e,{children:[e.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})),e);function s(e,t){return(0,o.X1)(e)?i(t):t}t.Z=i},53283:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(18733),i=n(19356);const __=a.__,s=__("Premium Block","jetpack"),l=__("Upgrade your plan to use this premium block","jetpack"),c=__("Upgrade","jetpack");t.ZP=e=>{let{onRedirect:t,align:n,className:a,title:u=s,description:p=l,buttonText:d=c,visible:m=!0,requiredPlan:h,context:f}=e;const[g,b,v]=(0,o.Z)(h,t);return(0,r.createElement)(i.p,{align:n,buttonText:d,checkoutUrl:g,className:a,context:f,description:p,goToCheckoutPage:b,isRedirecting:v,title:u,visible:m})}},63627:function(e,t,n){"use strict";n.d(t,{v:function(){return a},W:function(){return o}});var r=n(11973);const a=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:t,block:n,context:a})},o=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_banner_impression",{plan:t,block:n,context:a})}},81475:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(94333),c=n(9818),u=n(44298),p=n(53283),d=n(32630),m=n(63627);t.Z=(0,l.createHigherOrderComponent)((e=>t=>{const{name:n,className:r,clientId:i,isSelected:l,attributes:h,setAttributes:f}=t||{},{onChildBannerVisibilityChange:g,hasParentBanner:b}=(0,o.useContext)(d.x)||{},v=(0,u.Rl)(n);if(!v)return(0,o.createElement)(e,t);const k=(0,u.HD)(n),y=(0,u.m3)(n),[E,w]=(0,o.useState)(!k),[_,C]=(0,o.useState)(!1),[j,S]=(0,o.useState)(!1),x="editor-canvas",T=(0,c.useSelect)((e=>e("core/block-editor").hasSelectedInnerBlock(i,!0)),[]),P=(l||T)&&E&&!j,N=(0,o.useMemo)((()=>({plan:v,blockName:n,context:x})),[v,n,x]);(0,o.useEffect)((()=>{P&&C(!0)}),[P,C]),(0,o.useEffect)((()=>{!_&&P&&(0,m.W)(N)}),[_,N,P]),(0,o.useEffect)((()=>w(!k)),[h,w,k]),(0,o.useEffect)((()=>{f({shouldDisplayFrontendBanner:!b})}),[f,b]),(0,o.useEffect)((()=>{g&&g(P||j)}),[P,j,g]);const A=s()(r,{"is-upgradable":P});return(0,o.createElement)(d.L,{onBannerVisibilityChange:w,onChildBannerVisibilityChange:S,hasParentBanner:!0},(0,o.createElement)(p.ZP,{className:`is-${t.name.replace(/\//,"-")}-paid-block`,title:null,align:t?.attributes?.align,visible:P,description:y?.description,requiredPlan:v,context:x,onRedirect:()=>(0,m.v)(N)}),(0,o.createElement)(e,a()({},t,{className:A})))}),"withUpgradeBanner")},5587:function(e,t,n){"use strict";var r=n(69307),a=n(11268),o=n.n(a),i=n(51591);const s=e=>{const{id:t,serviceName:n,label:a,profilePicture:o}=e;return(0,r.createElement)("label",{htmlFor:t,className:"jetpack-publicize-connection-label"},(0,r.createElement)("div",{className:o?"components-connection-icon__picture":""},o&&(0,r.createElement)("img",{src:o,alt:a}),(0,r.createElement)(i.av,{serviceName:n,className:"jetpack-publicize-gutenberg-social-icon"})),(0,r.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a))};s.propTypes={id:o().string.isRequired,serviceName:o().string,label:o().string,profilePicture:o().string},t.Z=s},90342:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(11268),s=n.n(i),l=n(55609),c=n(5587);const u=e=>{const{className:t,checked:n,id:a,disabled:i,onChange:s,serviceName:u,label:p,profilePicture:d}=e,m=o()("components-connection-toggle",{"is-not-checked":!n,"is-disabled":i});return(0,r.createElement)("div",{className:m},(0,r.createElement)(c.Z,{id:a,serviceName:u,label:p,profilePicture:d}),(0,r.createElement)(l.FormToggle,{id:a,className:t,checked:n,onChange:s,disabled:i}))};u.propTypes={className:s().string,checked:s().bool,id:s().string.isRequired,disabled:s().bool,onChange:s().func,serviceName:s().string,label:s().string,profilePicture:s().string},t.Z=u},9580:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(94333),c=n(9818);const __=i.__;class u extends o.Component{constructor(){super(...arguments),a()(this,"refreshConnectionClick",(e=>{const{href:t,title:n}=e.target;e.preventDefault();const r=window.open(t,n,""),a=window.setInterval((()=>{!1!==r.closed&&(window.clearInterval(a),this.props.refreshConnections())}),500)}))}componentDidMount(){this.props.refreshConnections()}renderRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>e.can_refresh));return t.length?(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((e=>(0,o.createElement)(s.Button,{href:e.refresh_url,isSmall:!0,key:e.id,onClick:this.refreshConnectionClick,title:e.refresh_text},e.refresh_text)))):null}renderNonRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>!e.can_refresh));return t.length?t.map((e=>(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,e.test_message)))):null}render(){return(0,o.createElement)(o.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}t.Z=(0,l.compose)([(0,c.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections()}))),(0,c.withDispatch)((e=>({refreshConnections:e("jetpack/publicize").refreshConnectionTestResults})))])(u)},65459:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(9818),c=n(92819),u=n(4235),p=n(90342);const __=i.__;class d extends o.Component{constructor(){super(...arguments),a()(this,"maybeDisplayLinkedInNotice",(()=>this.connectionNeedsReauth()&&(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),(0,o.createElement)(s.ExternalLink,{href:`https://wordpress.com/marketing/connections/${(0,u.Z)()}`},__("Go to Sharing settings","jetpack"))))),a()(this,"connectionNeedsReauth",(()=>(0,c.includes)(this.props.mustReauthConnections,this.props.name))),a()(this,"onConnectionChange",(()=>{const{id:e}=this.props;this.props.toggleConnection(e)}))}connectionIsFailing(){const{failedConnections:e,name:t}=this.props;return e.some((e=>e.service_name===t))}render(){const{disabled:e,enabled:t,id:n,label:r,name:a,profilePicture:i}=this.props,l="connection-"+a+"-"+n,c=a.replace("_","-");let u=(0,o.createElement)(p.Z,{id:l,className:"jetpack-publicize-connection-toggle",checked:t,onChange:this.onConnectionChange,disabled:e,serviceName:c,label:r,profilePicture:i});return(e||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=(0,o.createElement)(s.Disabled,null,u)),(0,o.createElement)("li",null,this.maybeDisplayLinkedInNotice(),(0,o.createElement)("div",{className:"publicize-jetpack-connection-container"},u))}}t.Z=(0,l.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()})))(d)},94552:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65459),i=n(97527),s=n(11230),l=n(69423),c=n(47959);function u(e){let{isPublicizeEnabled:t,isRePublicizeFeatureEnabled:n,isPublicizeDisabledBySitePlan:u}=e;const{connections:p,toggleById:d,hasConnections:m}=(0,l.Z)(),{message:h,updateMessage:f,maxLength:g}=(0,c.Z)();const b=u?a.Disabled:r.Fragment;return(0,r.createElement)(b,null,m&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("ul",{className:"jetpack-publicize__connections-list"},p.map((e=>{let{display_name:a,enabled:i,id:s,service_name:l,toggleable:c,profile_picture:p}=e;return(0,r.createElement)(o.Z,{disabled:n?!t:!c,enabled:i&&!u,key:s,id:s,label:a,name:l,toggleConnection:d,profilePicture:p})})))),!u&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,null),p.some((e=>e.enabled))&&(0,r.createElement)(s.Z,{disabled:!n&&p.every((e=>!e.toggleable)),maxLength:g,onChange:f,message:h})))}},11230:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_n=a._n;function i(e){let{message:t="",onChange:n,disabled:i,maxLength:s}=e;const l=s-t.length;return(0,r.createElement)(o.TextareaControl,{value:t,onChange:n,disabled:i,maxLength:s,placeholder:__("Write a message for your audience here.","jetpack"),rows:4,help:(0,a.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d character remaining","%d characters remaining",l,"jetpack"),l)})}},8425:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(12238),s=n(9818),l=n(9580),c=n(94552),u=n(58933),p=n(69423),d=n(20265),m=n(23731),h=n(99490),f=n(96609);const __=a.__;t.Z=e=>{let{prePublish:t}=e;const{refresh:n,hasConnections:a,hasEnabledConnections:g}=(0,p.Z)(),b=(0,s.useSelect)((e=>e(i.store).isCurrentPostPublished()),[]),{isRePublicizeFeatureEnabled:v,isPublicizeEnabled:k,togglePublicizeFeature:y,isPublicizeDisabledBySitePlan:E,hideRePublicizeFeature:w}=(0,m.Z)(),_=k&&!E;(0,d.M)((function(){g&&n()}),[g,n]);const C=E?o.Disabled:o.PanelRow,j=t?r.Fragment:o.PanelBody,S=t?{}:{title:__("Share this post","jetpack"),className:E?"jetpack-publicize-disabled":""};return(0,r.createElement)(j,S,(0,r.createElement)(f.Z,{isPostPublished:b}),!w&&(0,r.createElement)(r.Fragment,null,v&&!b&&(0,r.createElement)(C,null,(0,r.createElement)(o.ToggleControl,{className:"jetpack-publicize-toggle",label:_&&!E?__("Share when publishing","jetpack"):__("Sharing is disabled","jetpack",0),onChange:y,checked:_,disabled:!a})),(0,r.createElement)(l.Z,null),(0,r.createElement)(c.Z,{isPublicizeEnabled:_,isRePublicizeFeatureEnabled:v,isPublicizeDisabledBySitePlan:E}),!E&&(0,r.createElement)(u.Z,{prePublish:t}),(0,r.createElement)(h.o,null)))}},97527:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(92819),o=n(75031),i=n(65736),s=n(55609),l=n(4235),c=n(69423);const __=i.__;function u(){const{refresh:e}=(0,c.Z)(),t=(0,l.Z)(),n=(0,a.debounce)((function(t){t&&e()}),2e3),i=t?`https://wordpress.com/marketing/connections/${t}`:"options-general.php?page=sharing&publicize_popup=true";return(0,r.createElement)(o.Z,{onChange:n},(0,r.createElement)("div",{className:"jetpack-publicize-add-connection-wrapper"},(0,r.createElement)(s.ExternalLink,{href:i,target:"_blank"},__("Connect an account","jetpack"))))}},99490:function(e,t,n){"use strict";n.d(t,{o:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(53961),l=n(12238),c=n(90732),u=n(69423),p=n(23731);const __=a.__;function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:__("Unable to share the Post","jetpack");const{createErrorNotice:t}=(0,i.dispatch)(s.store);t(e,{id:"publicize-post-share-message"})}function m(){const{hasEnabledConnections:e}=(0,u.Z)(),{isPublicizeEnabled:t}=(0,p.Z)(),{isFetching:n,isError:a,isSuccess:m,doPublicize:h}=(0,c.Z)(),f=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);(0,r.useEffect)((()=>{if(!n)return a?d():void(m&&function(){const{createSuccessNotice:e}=(0,i.dispatch)(s.store);e(__("Post shared","jetpack"),{id:"publicize-post-share-message",type:"snackbar"})}())}),[n,a,m]);const g=!t||!e||!f||n;return(0,r.createElement)(o.Button,{isSecondary:!0,onClick:function(){if(!f)return d(__("You must publish your post before you can share it.","jetpack"));(0,i.dispatch)(s.store).removeNotice("publicize-post-share-message"),h()},disabled:g,isBusy:n},__("Share post","jetpack"))}function h(){const{isRePublicizeFeatureEnabled:e,isRePublicizeUpgradableViaUpsell:t}=(0,p.Z)(),n=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);return e&&n?t?null:(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(m,null)):null}},41093:function(e,t,n){"use strict";n.d(t,{nE:function(){return l},H8:function(){return c}});var r=n(69307),a=n(94333),o=n(9818),i=n(92694),s=n(54802);const l={"core/gallery":{contentAttributes:["images"]},"core/heading":{contentAttributes:["content"]},"core/image":{contentAttributes:["alt","url"]},"core/list":{contentAttributes:["values"]},"core/paragraph":{contentAttributes:["content"]},"core/quote":{contentAttributes:["value","citation"]},"core/separator":{contentAttributes:[]},"core/spacer":{contentAttributes:[]},"core/verse":{contentAttributes:["content"]},"core/video":{contentAttributes:["src"]},"core/embed":{contentAttributes:["url"]},"jetpack/gif":{contentAttributes:["giphyUrl"]}},c=["core/column","core/columns","core/group"];(0,i.addFilter)("blocks.registerBlockType","jetpack/publishing-tweetstorms",(e=>{const{edit:t}=e;return{...e,edit:e=>(0,r.createElement)(s.Z,{ChildEdit:t,childProps:e})}}));t.ZP=(0,a.compose)([(0,o.withSelect)((e=>({isTweetStorm:e("jetpack/publicize").isTweetStorm(),isTyping:e("core/block-editor").isTyping()})))])((e=>{let{isTweetStorm:t,isTyping:n}=e;return t?document.body.classList.add("jetpack-tweetstorm"):document.body.classList.remove("jetpack-tweetstorm"),t&&n?document.body.classList.add("jetpack-tweetstorm-is-typing"):document.body.classList.remove("jetpack-tweetstorm-is-typing"),null}))},58933:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(9818);n(42998);const __=a.__;t.Z=(0,i.compose)([(0,s.withSelect)((e=>{const{isTweetStorm:t,getTweetStorm:n}=e("jetpack/publicize");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),isTweetStorm:t(),tweetStormLength:n().length}})),(0,s.withDispatch)((e=>({setTweetstorm:t=>{e("core/editor").editPost({meta:{jetpack_is_tweetstorm:t}}),t?e("jetpack/publicize").refreshTweets():(e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm"),e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm-line-break"))}})))])((e=>{let{connections:t,isTweetStorm:n,tweetStormLength:a,setTweetstorm:i,prePublish:s}=e;if(!t?.some((e=>"twitter"===e.service_name&&e.enabled)))return null;const l=(e,t)=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,e),(0,r.createElement)("br",null),t),c=[];return a>=102?c.push({id:"jetpack-publicize-twitter-tweetstorm-too-long",status:"error",content:__("Only the first 100 tweets of this post will be published in the Twitter thread.","jetpack"),isDismissible:!1}):a>=22?c.push({id:"jetpack-publicize-twitter-tweetstorm-a-bit-long",status:"warning",content:__("This post will create a Twitter thread more than 20 tweets long.","jetpack"),isDismissible:!1}):s&&a<=2&&c.push({id:"jetpack-publicize-twitter-tweetstorm-too-short",status:"warning",content:__("None of the content in this post could be transformed into tweets, it may be better to share as a single tweet.","jetpack"),isDismissible:!1}),(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(o.RadioControl,{label:__("Twitter settings","jetpack"),selected:n?"tweetstorm":"single",options:[{label:l(__("Single Tweet","jetpack"),__("Share a link to this post to Twitter.","jetpack")),value:"single"},{label:l(__("Twitter Thread","jetpack"),__("Share the content of this post as a Twitter thread.","jetpack")),value:"tweetstorm"}],onChange:e=>{i("tweetstorm"===e)}}),n&&(0,r.createElement)(o.NoticeList,{className:"jetpack-publicize-twitter-options__notices",notices:c}))}))},54802:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(55609),i=n(94333),s=n(9818),l=(n(42998),n(51591));class c extends r.Component{componentDidMount(){const{isTweetStorm:e,updateTweets:t}=this.props;e&&t()}componentDidUpdate(e){const{boundaries:t,childProps:n,currentAnnotations:r,isTweetStorm:o,updateAnnotations:i,updateTweets:s,supportedBlockType:l,contentAttributesChanged:c}=this.props;o&&l&&(c(e.childProps,n)&&s(),r.length===t.filter((e=>["normal","line-break"].includes(e.type))).length&&(0,a.isEqual)(e.boundaries,t)||i())}render(){const{ChildEdit:e,childProps:t,isTweetStorm:n,isSelectedTweetBoundary:a,boundaryStylesSelectors:i,popoverWarnings:s}=this.props;return n?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(e,t),a&&(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider"},(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider-icon"},(0,r.createElement)(l.av,{serviceName:"twitter"})),s.length>0&&(0,r.createElement)(o.Popover,{className:"jetpack-publicize-twitter__tweet-divider-popover",focusOnMount:!1,position:"bottom center"},(0,r.createElement)("ol",null,s.map(((e,t)=>(0,r.createElement)("li",{key:`jetpack-publicize-twitter__tweet-divider-popover-warning-${t}`},e)))))),i&&(0,r.createElement)("style",{type:"text/css"},i.map((e=>`${e}::after {\n\t\t\t\t\t\t\t\tcontent: "";\n\t\t\t\t\t\t\t\tbackground: #0009;\n\t\t\t\t\t\t\t\twidth: 3px;\n\t\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\t\tmargin: 0 1px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.is-dark-theme ${e}::after {\n\t\t\t\t\t\t\t\tbackground: #fff9;\n\t\t\t\t\t\t\t}`)))):(0,r.createElement)(e,t)}}t.Z=(0,i.compose)([(0,s.withSelect)(((e,t)=>{let{childProps:n}=t;const{isTweetStorm:r,getPopoverWarnings:a,getBoundariesForBlock:o,getBoundaryStyleSelectors:i,isSelectedTweetBoundary:s,getSupportedBlockType:l,contentAttributesChanged:c}=e("jetpack/publicize"),u=e("core/annotations").__experimentalGetAllAnnotationsForBlock(n.clientId);return{isTweetStorm:r(),isSelectedTweetBoundary:s(n),boundaries:o(n.clientId),boundaryStylesSelectors:i(n.clientId),popoverWarnings:a(n),currentAnnotations:u,supportedBlockType:l(n.name),contentAttributesChanged:c}})),(0,s.withDispatch)(((e,t,n)=>{let{childProps:r}=t,{select:a}=n;return{updateTweets:()=>e("jetpack/publicize").refreshTweets(),updateAnnotations:()=>{const{contentAttributesChanged:t,getTweetsForBlock:n}=a("jetpack/publicize"),o=n(r.clientId);if(!o||0===o.length)return;if(t(o.reduce(((e,t)=>e||t.blocks.find((e=>e.clientId===r.clientId))),!1),r))return;a("core/annotations").__experimentalGetAllAnnotationsForBlock(r.clientId).forEach((t=>{["jetpack-tweetstorm","jetpack-tweetstorm-line-break"].includes(t.source)&&e("core/annotations").__experimentalRemoveAnnotation(t.id)}));o.filter((e=>e.boundary)).map((e=>e.boundary)).forEach((t=>{const{container:n,type:a,start:o,end:i}=t;"normal"===a?e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm",richTextIdentifier:n,range:{start:o,end:i}}):"line-break"===a&&e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm-line-break",richTextIdentifier:n,range:{start:o,end:i}})}))}}}))])(c)},96609:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(84675),c=n(44298),u=n(18733),p=n(23731),d=n(58014),m=n(69423);const __=i.__;function h(e){let{isPostPublished:t}=e;const{isRePublicizeFeatureEnabled:n,isRePublicizeUpgradableViaUpsell:a,isRePublicizeFeatureAvailable:h,isPublicizeEnabled:f}=(0,p.Z)(),g=(0,c.Rl)("republicize"),[b,v,k,y]=(0,u.Z)(g),{hasConnections:E,hasEnabledConnections:w}=(0,m.Z)(),_=f&&!(a&&n);if(!t||!n||t&&h)return(0,r.createElement)("div",null,function(e,t,n,r,a){const o=__("Start sharing your posts by connecting your social media accounts.","jetpack"),i=__("This post will be shared on all your enabled social media accounts the moment you publish the post.","jetpack");return t?r?n&&a?n&&a&&!e?i:__("Share this post on all your enabled social media accounts by clicking on the share post button.","jetpack"):__("Use this tool to share your post on all your social media accounts.","jetpack"):o:e?o:i}(t,n,_,E,w));const C=y?.product_name||__("paid","jetpack"),j=!(0,d.Ug)()&&!(0,d.Wp)(),S=j?__("Re-sharing your content","jetpack"):__("Share Your Content Again","jetpack",0),x=j?"https://jetpack.com/support/publicize/#re-sharing-your-content":"https://wordpress.com/support/publicize/#share-your-content-again",T=__("Upgrade now","jetpack");return h||a?(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("div",{className:"jetpack-publicize__upsell-description"},(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("To re-share a post, you need to upgrade to the %s plan","jetpack"),C)),(0,r.createElement)(s.Button,{href:k?null:b,onClick:v,target:"_top",icon:l.Z,className:o()("jetpack-publicize__upsell-button is-primary",{"jetpack-upgrade-plan__hidden":!b}),isBusy:k},k?__("Redirecting…","jetpack"):T)):(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("strong",null,S),(0,r.createElement)("br",null),(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("This feature is for sites with a %s plan.","jetpack"),C),(0,r.createElement)("br",null),(0,r.createElement)(s.ExternalLink,{href:x},__("More information.","jetpack")))}},23731:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(9818),a=n(12238),o=n(21409),i=n(44298);const s="republicize";function l(){const{togglePublicizeFeature:e}=(0,r.useDispatch)("jetpack/publicize"),{available:t}=(0,o.Z)(s),n=(0,r.useSelect)((e=>e(a.store).isCurrentPostPublished()),[]),l=(0,r.useSelect)((e=>e("jetpack/publicize").getFeatureEnableState()),[]),c=!!window?.Jetpack_Editor_Initial_State.jetpack?.republicize_enabled,u=(0,i.X1)(s);return{isPublicizeEnabledMeta:l,isRePublicizeFeatureEnabled:c,isPublicizeEnabled:n&&!(u&&c)||l,togglePublicizeFeature:e,isPublicizeDisabledBySitePlan:c&&n&&u,isRePublicizeFeatureAvailable:t,isRePublicizeUpgradableViaUpsell:u,hideRePublicizeFeature:n&&!t&&!u&&c}}},20265:function(e,t,n){"use strict";n.d(t,{M:function(){return s}});var r=n(94333),a=n(12238),o=n(9818),i=n(69307);function s(e,t){const n=(0,o.useSelect)((e=>e(a.store).isPublishingPost()),[]),s=(0,r.usePrevious)(n);(0,i.useEffect)((()=>{s&&!n&&e()}),[n,s,e,t])}},90732:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(86989),a=n.n(r),o=n(9818),i=n(12238),s=n(69307),l=n(65736),c=n(47959),u=n(69423);const __=l.__;function p(e){const t=e?.code,n=e?.errors?.length;if(!t&&!n)return!1;let r="";return t&&(r=__("Unable to share the Post","jetpack")),n&&(r=__("Unable to share the Post","jetpack")),{message:r,result:e}}function d(e){const{message:t}=(0,c.Z)(),{skippedConnections:n}=(0,u.Z)(),r=(0,o.useSelect)((e=>e(i.store).getCurrentPostId()),[]);e=e||r;const[l,d]=(0,s.useState)({data:[],error:{}}),m=(0,s.useCallback)((function(){const r={isFetching:!1,isError:!1,isSuccess:!1,data:[],error:{},postId:e};if(!l.isFetching)return d({...r,isFetching:!0}),a()({path:`/wpcom/v2/posts/${e}/publicize`,method:"POST",data:{message:t,skipped_connections:n}}).then((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=p(e);if(t)return d((e=>({...e,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:t})));d((t=>({...t,isFetching:!1,isSuccess:!0,isError:!1,data:e?.results,error:{}})))})).catch((e=>{d((t=>({...t,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:p(e)})))})),function(){d(r)}}),[e,t,n,l.isFetching]);return{...l,doPublicize:m}}},69423:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(9818);function a(){const{refreshConnectionTestResults:e,toggleConnectionById:t}=(0,r.useDispatch)("jetpack/publicize"),n=(0,r.useSelect)((e=>e("jetpack/publicize").getConnections()),[]),a=n.filter((e=>!e.enabled)).map((e=>e.id));return{connections:n,hasConnections:n.length>0,hasEnabledConnections:n&&n.some((e=>e.enabled)),skippedConnections:a,toggleById:t,refresh:e}}},47959:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(9818),a=n(12238);function o(){const{editPost:e}=(0,r.useDispatch)(a.store),{message:t,maxLength:n}=(0,r.useSelect)((e=>({message:e("jetpack/publicize").getShareMessage(),maxLength:e("jetpack/publicize").getShareMessageMaxLength()})),[]);return{message:t,maxLength:n,updateMessage:function(t){e({meta:{jetpack_publicize_message:t}})}}}},72228:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(72067),i=n(12238),s=(n(64967),n(41093)),l=n(32673),c=n(8425);const __=a.__,u="publicize",p={render:()=>(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"publicize"},(0,r.createElement)(s.ZP,null),(0,r.createElement)(l.Z,null,(0,r.createElement)(c.Z,null)),(0,r.createElement)(o.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:(0,r.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},__("Share this post","jetpack"))},(0,r.createElement)(c.Z,{prePublish:!0})))}},59213:function(e,t,n){"use strict";n.r(t),n.d(t,{refreshConnectionTestResults:function(){return a},toggleConnectionById:function(){return o},togglePublicizeFeature:function(){return i},fetchFromAPI:function(){return s},refreshTweets:function(){return l},setTweets:function(){return c},getTwitterCards:function(){return u},setTwitterCards:function(){return p}});var r=n(9818);function a(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function o(e){return{type:"TOGGLE_CONNECTION_BY_ID",connectionId:e}}function i(){return{type:"TOGGLE_PUBLICIZE_FEATURE"}}function s(e){return{type:"FETCH_FROM_API",path:e}}function l(){return{type:"REFRESH_TWEETS"}}function c(e){return{type:"SET_TWEETS",tweets:e}}function u(e){const{twitterCardIsCached:t}=(0,r.select)("jetpack/publicize");return{type:"GET_TWITTER_CARDS",urls:e.filter((e=>!t(e)))}}function p(e){return{type:"SET_TWITTER_CARDS",cards:e}}},39808:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z={FETCH_FROM_API:e=>{let{path:t}=e;return a()({path:t})}}},94663:function(e,t,n){"use strict";var r=n(92819),a=n(86989),o=n.n(a),i=n(4981),s=n(9818),l=n(12238),c=n(41093);const u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{getSupportedBlockType:t}=(0,s.select)("jetpack/publicize");return(0,r.flatMap)(e,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(e.name)||e.name.startsWith("core-embed/")?e:c.H8.includes(e.name)?u(e.innerBlocks):[]}))};const p=(0,r.throttle)((async function(){const e=(0,s.select)("core/editor").getBlocks(),t=u(e);try{const e=await o()({path:"/wpcom/v2/tweetstorm/parse",data:{blocks:t.map((e=>({attributes:e.attributes,block:(0,i.serialize)(e),clientId:e.clientId})))},method:"POST"}),n=(0,r.flatMap)(e,(e=>e.urls));return(0,s.dispatch)("jetpack/publicize").getTwitterCards(n),(0,s.dispatch)("jetpack/publicize").setTweets(e)}catch(e){}}),2e3,{leading:!0,trailing:!0});t.ZP={REFRESH_CONNECTION_TEST_RESULTS:async function(){try{const e=await o()({path:"/wpcom/v2/publicize/connection-test-results"}),t=(0,s.select)("jetpack/publicize").getConnections(),n=e,r=[],a={done:!1,enabled:!0,toggleable:!0};for(const e of n){const n=t.find((t=>t.id===e.id)),{done:o,enabled:i,toggleable:s}=null!=n?n:a,l={display_name:e.display_name,service_name:e.service_name,id:e.id,profile_picture:e.profile_picture,done:o,enabled:i,toggleable:s};r.push(l)}return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:r})}catch(e){}},TOGGLE_CONNECTION_BY_ID:async function(e){let{connectionId:t}=e;const n=(0,s.select)("jetpack/publicize").getConnections().map((e=>({...e,enabled:e.id===t?!e.enabled:e.enabled})));return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:n})},TOGGLE_PUBLICIZE_FEATURE:async function(){const e=(0,s.select)("jetpack/publicize").getFeatureEnableState();return(0,s.dispatch)(l.store).editPost({meta:{jetpack_publicize_feature_enabled:!e}})},REFRESH_TWEETS:p,GET_TWITTER_CARDS:async function(e){if(0===e.urls.length)return(0,s.dispatch)("jetpack/publicize").setTwitterCards([]);try{const t=await o()({path:"/wpcom/v2/tweetstorm/generate-cards",data:{urls:e.urls},method:"POST"});return(0,s.dispatch)("jetpack/publicize").setTwitterCards(t)}catch(e){}}}},64967:function(e,t,n){"use strict";var r=n(9818),a=n(59213),o=n(62016),i=n(49591),s=n(39808),l=n(44391);const c=(0,r.registerStore)("jetpack/publicize",{actions:a,controls:s.Z,reducer:l.Z,selectors:o});(0,i.Z)(c)},49591:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(94663);function s(e){const t=[a()(i.ZP)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},44391:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r={tweets:[],twitterCards:[]};function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REFRESH_CONNECTION_TEST_RESULTS":case"TOGGLE_CONNECTION_BY_ID":case"TOGGLE_PUBLICIZE_FEATURE":return e;case"SET_TWEETS":return{...e,tweets:t.tweets};case"GET_TWITTER_CARDS":{const n={};return t.urls.forEach((e=>n[e]={error:"loading"})),{...e,twitterCards:{...e.twitterCards,...n}}}case"SET_TWITTER_CARDS":return{...e,twitterCards:{...e.twitterCards,...t.cards}}}return e}},62016:function(e,t,n){"use strict";n.r(t),n.d(t,{getFailedConnections:function(){return u},getMustReauthConnections:function(){return p},getTweetTemplate:function(){return d},getTweetStorm:function(){return m},getFirstTweet:function(){return h},getLastTweet:function(){return f},getSupportedBlockType:function(){return g},getTweetsForBlock:function(){return b},getTwitterCardForURLs:function(){return v},twitterCardIsCached:function(){return k},getShareMessage:function(){return y},getShareMessageMaxLength:function(){return E},isTweetStorm:function(){return w},getBoundariesForBlock:function(){return _},getBoundaryStyleSelectors:function(){return j},checkForTagsInContentAttributes:function(){return S},getPopoverWarnings:function(){return x},isSelectedTweetBoundary:function(){return T},contentAttributesChanged:function(){return P},getConnections:function(){return N},getFeatureEnableState:function(){return A}});var r=n(92819),a=n(19551),o=n(9818),i=n(65736),s=n(12238),l=n(41093);const __=i.__,c="\n\n"+__("A thread ⬇️","jetpack");function u(){return N().filter((e=>!1===e.test_success))}function p(){return N().filter((e=>"must_reauth"===e.test_success)).map((e=>e.service_name))}function d(e){const t=(e.connections||N())?.find((e=>"twitter"===e.service_name));return{date:Date.now(),name:t?.profile_display_name||__("Account Name","jetpack"),profileImage:t?.profile_picture||"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:t?.display_name||""}}function m(e){const t=d(e),n=[h(e),...e.tweets.slice(0,100).map((n=>({...t,text:n.text,media:n.media,tweet:n.tweet,urls:n.urls,card:v(e,n.urls)})))];return n.length>1&&n.push(f(e)),n}function h(e){if(!(0,o.select)("core"))return;const t=d(e),{getMedia:n}=(0,o.select)("core"),{getEditedPostAttribute:r}=(0,o.select)("core/editor"),a=r("featured_media"),i=r("link"),s=a&&n(a),l=s?.media_details?.sizes?.large?.source_url||s?.source_url;return{...t,text:y()+` ${i}`,urls:[i],card:{title:r("title"),description:r("meta")?.advanced_seo_description||r("excerpt")||r("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:i,image:l,type:l?"summary_large_image":"summary"}}}function f(e){if(!(0,o.select)("core/editor"))return;const{getEditedPostAttribute:t}=(0,o.select)("core/editor"),n=t("link"),r=e.tweets.length>100?__("The rest of this thread can be read here:","jetpack"):__("This thread can be read here:","jetpack");return{...h(e),text:`${r} ${n}`}}function g(e,t){if(l.nE[t])return l.nE[t]}const b=(0,a.Z)(((e,t)=>e.tweets.filter((e=>!!e.blocks.find((e=>e.clientId===t))))),(e=>[e.tweets]));function v(e,t){if(t)return t.reduce(((t,n)=>t||(e.twitterCards[n]&&!e.twitterCards[n].error?{url:n,...e.twitterCards[n]}:void 0)),void 0)}function k(e,t){return!!e.twitterCards[t]}function y(){const{getEditedPostAttribute:e}=(0,o.select)("core/editor"),t=e("meta"),n=e("title"),a=(0,r.get)(t,["jetpack_publicize_message"],"");return a?a.substr(0,E()):w()&&n?n.substr(0,E())+c:""}function E(){return w()?255-c.length:255}function w(){return!!(0,o.select)("core/editor").getEditedPostAttribute("meta")?.jetpack_is_tweetstorm}const _=(0,a.Z)(((e,t)=>{if(!w())return[];const n=b(e,t);return n&&0!==n.length?n.filter((e=>e.boundary)).map((e=>e.boundary)):[]}),(e=>[e.tweets]));function C(e,t){if(`block-${t}`===e.id)return`#block-${t}`;const n=e.parentNode,r=Array.prototype.indexOf.call(n.children,e);return C(n,t)+` > :nth-child( ${r+1} )`}const j=(0,a.Z)(((e,t)=>{const n=_(e,t),r=document.getElementById(`block-${t}`);return n.filter((e=>"end-of-line"===e.type)).map((e=>{if(!r)return!1;const n=r.getElementsByTagName("li").item(e.line);return!!n&&C(n,t)})).filter((e=>!!e))}),(e=>[e.tweets]));function S(e,t,n){if(0===n.length)return!1;if(!g(0,t.name)?.contentAttributes)return!1;const r=new RegExp(`<(${n.join("|")})( |>|/>)`,"gi");return g(0,t.name).contentAttributes.reduce(((e,n)=>!!e||r.test(t.attributes[n])),!1)}const x=(0,a.Z)(((e,t)=>{const{isTyping:n,isDraggingBlocks:r,isMultiSelecting:a,hasMultiSelection:i,isCaretWithinFormattedText:s}=(0,o.select)("core/block-editor");if(!w())return[];if(n()||r()||a()||i()||s())return[];const c=[];return g(0,t.name)||l.H8[t.name]?("core/gallery"===t.name&&t.attributes.images.length>4&&c.push(__("Twitter displays the first four images.","jetpack")),S(0,t,["strong","bold","em","i","sup","sub","span","s"])&&c.push(__("Twitter removes all text formatting.","jetpack")),S(0,t,["a"])&&c.push(__("Links will be posted seperately.","jetpack"))):c.push(__("This block is not exportable to Twitter","jetpack")),c}),(e=>[e.tweets]));function T(e,t){const{isBlockSelected:n}=(0,o.select)("core/block-editor");if(!w())return!1;const r=g(0,t.name),a=b(e,t.clientId);if(!a||0===a.length)return!1;const i=a[a.length-1];return n(t.clientId)&&!r||i.blocks[i.blocks.length-1].clientId===t.clientId&&a.some((e=>e.blocks.some((e=>n(e.clientId)))))}function P(e,t,n){const a=g(0,n.name);if(!a)return!1;const o=a.contentAttributes;return!(0,r.isEqual)(o.map((e=>({attribute:e,content:t.attributes[e]}))),o.map((e=>({attribute:e,content:n.attributes[e]}))))}function N(){return(0,o.select)(s.store).getEditedPostAttribute("jetpack_publicize_connections")||[]}function A(){const{getEditedPostAttribute:e}=(0,o.select)(s.store),t=e("meta");return(0,r.get)(t,["jetpack_publicize_feature_enabled"],!0)}},60756:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65736),i=n(12238),s=n(9818),l=n(23539);const __=o.__;function c(e){let{checked:t,onChange:n}=e;return(0,r.createElement)(a.CheckboxControl,{label:__("Show sharing buttons.","jetpack"),checked:t,onChange:e=>{n({jetpack_sharing_enabled:e})}})}function u(){const e=(0,s.useSelect)((e=>e(i.store).getEditedPostAttribute("jetpack_sharing_enabled")),[]),{editPost:t}=(0,s.useDispatch)(i.store);return(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},(0,r.createElement)(l.Z,null,(0,r.createElement)(c,{checked:e,onChange:t})))}},91994:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(60756);const a="sharing",o={render:r.Z}},71420:function(e,t,n){"use strict";n.d(t,{K:function(){return a}});var r=n(55609);const a=(0,r.withFallbackStyles)(((e,t)=>{const{textColor:n,backgroundColor:r}=t,a=r&&r.color,o=n&&n.color;return{fallbackBackgroundColor:a||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:o||!e?void 0:getComputedStyle(e).color}}))},6757:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(51591),s=n(58014);const __=o.__;(0,s.Wp)()||(0,s.Ug)()||(0,a.registerBlockCollection)("jetpack",{title:"Jetpack",icon:(0,r.createElement)(i.IM,null)}),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"earn"!==t})),{slug:"earn",title:__("Earn","jetpack"),icon:(0,r.createElement)(i.IM,null)}]),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"grow"!==t})),{slug:"grow",title:__("Grow","jetpack"),icon:(0,r.createElement)(i.IM,null)}])},87929:function(e,t,n){"use strict";function r(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}function a(e){const{currentWindow:t}=r(e);return"editor-canvas"===t.name&&t.self!==t.top}function o(e){try{return!!e?.parent?.location.href}catch(e){return!1}}function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];if(!t||!e&&!e.length||!a(t))return i;const{currentDoc:s,currentWindow:l}=r(t);if(!o(l))return i;const c=l?.parent?.document;return s&&c?(i=e.filter((e=>{const t=c.querySelector(e),r=!!s.querySelector(e);return!(!t||r)&&(s.head.appendChild(t.cloneNode()),n&&t.remove(),!0)})),i):void 0}function s(e,t,n){const a=`${window.Jetpack_Block_Assets_Base_Url.url}editor-assets`,{currentDoc:o}=r(n),i=o.getElementsByTagName("head")[0];e.forEach((e=>{const[n,r]=e.file.split("/").pop().split(".");if("css"===r){if(o.getElementById(e.id))return;const t=o.createElement("link");t.id=e.id,t.rel="stylesheet",t.href=`${a}/${n}-${e.version}.${r}`,i.appendChild(t)}if("js"===r){const s=t[e.id]?t[e.id]:null;if(o.getElementById(e.id))return s();const l=o.createElement("script");l.id=e.id,l.type="text/javascript",l.src=`${a}/${n}-${e.version}.${r}`,l.onload=s,i.appendChild(l)}}))}function l(e,t){return new Promise((n=>{const r=()=>{e[t]?n(e[t]):e.requestAnimationFrame(r)};r()}))}n.d(t,{bL:function(){return r},DT:function(){return i},Pp:function(){return s},Dz:function(){return l}})},57535:function(e,t,n){"use strict";n.d(t,{m:function(){return i}});var r=n(27655),a=n(58014);const o=r.O["Jetpack Green 40"];function i(){return(0,a.Ug)()||(0,a.Wp)()?null:o}},98085:function(e,t,n){"use strict";n.d(t,{t:function(){return i}});var r=n(29512),a=n.n(r),o=n(92819);function i(e,t){const n=function(e,t){for(const n of new(a())(t).values()){if(-1===n.indexOf("is-style-"))continue;const t=n.substring(9),r=(0,o.find)(e,{name:t});if(r)return r}return(0,o.find)(e,"isDefault")}(e,t);return n?n.name:null}},70609:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609);const __=i.__,_x=i._x;class l extends o.Component{constructor(){super(...arguments),a()(this,"state",{hasCopied:!1}),a()(this,"onCopy",(()=>this.setState({hasCopied:!0}))),a()(this,"onFinishCopy",(()=>this.setState({hasCopied:!1}))),a()(this,"onFocus",(e=>e.target.select()))}render(){const{link:e}=this.props,{hasCopied:t}=this.state;return e?(0,o.createElement)("div",{className:"jetpack-clipboard-input"},(0,o.createElement)(s.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),(0,o.createElement)(s.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?__("Copied!","jetpack"):_x("Copy","verb","jetpack"))):null}}t.Z=l},68039:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r=/^#?[A-Fa-f0-9]{6}$/;function a(e){return r.test(e)}},92924:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(25158),s=n(15111);const __=o.__,l="undefined"!=typeof _wpmejsSettings?_wpmejsSettings:{};function c(e,t,n){const r=document.createElement("div");r.className=e;const a=document.createElement("button");return a.innerText=t,a.addEventListener("click",n),a.setAttribute("aria-label",t),a.setAttribute("title",t),r.appendChild(a),r}t.Z=function(e){let{trackSource:t,onPlay:n,onPause:o,onError:u,onTimeChange:p,onSkipForward:d,onJumpBack:m,currentTime:h,playStatus:f=s._5,onMetadataLoaded:g,loadWhenReady:b=!1,preload:v="metadata"}=e;const k=(0,r.useRef)(),y=()=>{k.current.play().catch((()=>{}))},E=()=>{k.current.pause(),(0,i.speak)(__("Paused","jetpack"),"assertive")};return(0,r.useEffect)((()=>{MediaElementPlayer.prototype._setResponsiveMode||(MediaElementPlayer.prototype._setResponsiveMode=MediaElementPlayer.prototype.setResponsiveMode,MediaElementPlayer.prototype.setResponsiveMode=function(){const e=this;e.getElement(e.container).parentNode&&e._setResponsiveMode()})}),[]),(0,r.useEffect)((()=>{const e=k.current;e.preload=v;const t=new MediaElementPlayer(e,{...l,success:()=>b&&e?.load()});if(m||d){const e=`${t.options.classPrefix}button ${t.options.classPrefix}jump-button`;if(m){const n=`${e} ${t.options.classPrefix}jump-backward-button`;t.addControlElement(c(n,__("Jump Back","jetpack"),m),"jumpBackwardButton")}if(d){const n=`${e} ${t.options.classPrefix}skip-forward-button`;t.addControlElement(c(n,__("Skip Forward","jetpack"),d),"skipForwardButton")}}return n&&e.addEventListener("play",n),o&&e.addEventListener("pause",o),u&&e.addEventListener("error",u),g&&e.addEventListener("loadedmetadata",g),()=>{t.remove(),n&&e.removeEventListener("play",n),o&&e.removeEventListener("pause",o),u&&e.removeEventListener("error",u),g&&e.removeEventListener("loadedmetadata",g)}}),[n,o,u,m,d,g,b,v]),(0,r.useEffect)((()=>{const[e,t]=!1===k.current?.paused?[s.Wp,E]:[s._5,y],n=(0,a.debounce)(t,100);return s.Vy!==f&&e!==f&&n(),()=>{n.cancel()}}),[k,f,t]),(0,r.useEffect)((()=>{if(!p)return;const e=k.current,t=(0,a.throttle)((e=>p(e)),1e3,{leading:!0,trailing:!1}),n=e=>t(e.target.currentTime);return p&&e?.addEventListener("timeupdate",n),()=>{t.cancel(),e?.removeEventListener("timeupdate",n)}}),[k,p]),(0,r.useEffect)((()=>{const e=k.current;h&&e&&Math.abs(Math.floor(h-e.currentTime))>1&&(e.currentTime=h)}),[k,h]),(0,r.createElement)("div",{className:"jetpack-audio-player"},(0,r.createElement)("audio",{src:t,ref:k}))}},62475:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(52175),l=n(37930);function c(e){let{blockName:t,buttonLabel:n,href:a,icon:c,onClick:u,subtitle:p,title:d,className:m}=e;const{autosaveAndRedirect:h}=(0,l.Z)(a);return(0,r.createElement)(s.Warning,{actions:a&&[(0,r.createElement)(i.Button,{href:a,onClick:e=>{e.preventDefault(),u(t),h(e)},target:"_top",isSecondary:!0,isLarge:!0},n)],className:o()(m,"jetpack-block-nudge wp-block")},(0,r.createElement)("span",{className:"jetpack-block-nudge__info"},c,(0,r.createElement)("span",{className:"jetpack-block-nudge__text-container"},(0,r.createElement)("span",{className:"jetpack-block-nudge__title"},d),p&&(0,r.createElement)("span",{className:"jetpack-block-nudge__message"},p))))}},72566:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(4981),l=n(52175),c=n(55609),u=n(9818),p=n(39630),d=n(65736);const __=d.__,m=e=>{let{attributes:t,styleOption:n,viewportWidth:a,blockName:o}=e;const i=(0,s.getBlockType)(o);return(0,r.createElement)(l.BlockPreview,{viewportWidth:a,blocks:(c=i.example?(0,s.getBlockFromExample)(o,{attributes:{...i.example.attributes,style:n.value},innerBlocks:i.example.innerBlocks}):(0,s.createBlock)(o,t),{...c,attributes:{...c.attributes,__isBlockPreview:!0}})});var c},h=r.memo?(0,r.memo)(m,((e,t)=>(0,i.isEqual)(e,t))):m;function f(e){let t,{attributes:n,clientId:a,styleOptions:i,onSelectStyle:s,activeStyle:d,viewportWidth:m,title:f}=e;return u.useSelect&&(t=(0,u.useSelect)((e=>{const{getBlock:t}=e("core/block-editor");return t(a)}))),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(l.BlockControls,null,(0,r.createElement)(c.ToolbarGroup,{isCollapsed:!0,icon:"admin-appearance",label:__("Style","jetpack"),controls:i.map((e=>({title:e.label,isActive:e.value===d,onClick:()=>s({style:e.value})}))),popoverProps:{className:"jetpack-block-styles-selector-toolbar"}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.PanelBody,{title:f||__("Styles","jetpack")},(0,r.createElement)("div",{className:"block-editor-block-styles jetpack-block-styles-selector"},i.map((e=>{const a={...n,style:e.value};return(0,r.createElement)("div",{key:e.value,className:o()("block-editor-block-styles__item",{"is-active":e.value===d}),onClick:()=>{s({style:e.value})},onKeyDown:t=>{p.ENTER!==t.keyCode&&p.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},(0,r.createElement)("div",{className:"block-editor-block-styles__item-preview"},e.preview?e.preview:u.useSelect&&t&&(0,r.createElement)(h,{blockName:t.name,styleOption:e,attributes:a,viewportWidth:m})),(0,r.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))}))))))}},37837:function(e,t,n){"use strict";n.d(t,{m:function(){return m}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(9818),l=n(65736),c=n(51591),u=n(15111),p=n(98017);const __=l.__;function d(e){let{skipForwardTime:t=5,jumpBackTime:n=5,playIcon:a="controls-play",pauseIcon:l="controls-pause",jumpBackIcon:d=c.Qv,skipForwardIcon:m=c._z,currenTimeDisplay:h=!0,onTimestampClick:f}=e;const{playerState:g,mediaCurrentTime:b,defaultMediaSource:v,mediaDomReference:k}=(0,s.useSelect)((e=>{const{getMediaSourceCurrentTime:t,getMediaPlayerState:n,getDefaultMediaSource:r,getMediaSourceDuration:a,getMediaSourceDomReference:o}=e(u.tT);return{playerState:n(),mediaCurrentTime:t(),mediaDuration:a(),defaultMediaSource:r(),mediaDomReference:o()}}),[]),y=(0,p.H)(b),E=!v,{toggleMediaSource:w,setMediaSourceCurrentTime:_}=(0,s.useDispatch)(u.tT);function C(e){!function(e){k&&(k.currentTime=e),_(v.id,e)}(e),k&&(k.currentTime=e)}return(0,r.createElement)(r.Fragment,null,!1!==n&&(0,r.createElement)(i.ToolbarButton,{icon:d,isDisabled:E,onClick:()=>C(b-n),label:__("Jump back","jetpack")}),(0,r.createElement)(i.ToolbarButton,{icon:g===u._5?a:l,isDisabled:E,onClick:function(){w(v.id)},label:__("Play","jetpack")}),t&&(0,r.createElement)(i.ToolbarButton,{icon:m,isDisabled:E,onClick:()=>C(b+t),label:__("Skip forward","jetpack")}),h&&(0,r.createElement)(i.ToolbarButton,{className:o()("media-player-control__current-time",{"is-disabled":E}),label:__("Set timestamp","jetpack"),onClick:()=>f(b)},y))}function m(e){return(0,r.createElement)(i.ToolbarGroup,{className:"media-player-control__toolbar"},(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(d,e))))}},98017:function(e,t,n){"use strict";n.d(t,{H:function(){return r},i:function(){return a}});const r=mejs.Utils.secondsToTimeCode,a=mejs.Utils.timeCodeToSeconds},38205:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609);const s=i.NumberControl||i.__experimentalNumberControl||function(e){return(0,o.createElement)(i.TextControl,a()({type:"number",inputMode:"numeric"},e))};t.Z=s},43393:function(e,t,n){"use strict";var r=n(69307),a=n(35381),o=n.n(a),i=n(65736),s=n(11973),l=n(62475),c=n(2368);const __=i.__,u=e=>{let{blockName:t,url:n}=e;return(0,r.createElement)(l.Z,{className:"jetpack-stripe-nudge__banner",buttonLabel:__("Connect","jetpack"),icon:(0,r.createElement)(o(),{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:n,onClick:()=>{s.Z.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:t})},title:__("Connect to Stripe to use this block on your site","jetpack"),subtitle:__("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})};t.Z=e=>{let{blockName:t,postId:n,stripeConnectUrl:a}=e;const o=(0,c.Z)(n,a);return o?(0,r.createElement)(u,{blockName:t,url:o}):null}},19356:function(e,t,n){"use strict";n.d(t,{p:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=e=>{let{align:t,className:n,title:a,description:s,buttonText:l,visible:c=!0,context:u,checkoutUrl:p,goToCheckoutPage:d,isRedirecting:m=!1}=e;const h=o()(n,"jetpack-upgrade-plan-banner",{"wp-block":"editor-canvas"===u,"block-editor-block-list__block":"editor-canvas"===u,"jetpack-upgrade-plan__hidden":!c}),f=__("Redirecting…","jetpack");return(0,r.createElement)("div",{className:h,"data-align":t},(0,r.createElement)("div",{className:"jetpack-upgrade-plan-banner__wrapper"},a&&(0,r.createElement)("strong",{className:o()("banner-title",{[`${n}__title`]:n})},a),s&&(0,r.createElement)("span",{className:`${n}__description banner-description`},s),(0,r.createElement)(i.Button,{href:m?null:p,onClick:d,target:"_top",className:o()("is-primary",{"jetpack-upgrade-plan__hidden":!p}),isBusy:m},m?f:l)))}},13180:function(e,t,n){"use strict";var r=n(9818);const a={setPlans:e=>({type:"SET_PLANS",plans:e}),fetchFromAPI:e=>({type:"FETCH_FROM_API",url:e})};(0,r.registerStore)("wordpress-com/plans",{reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return"SET_PLANS"===t.type?t.plans:e},actions:a,selectors:{getPlan:(e,t)=>e.find((e=>e.product_slug===t))},controls:{FETCH_FROM_API(e){let{url:t}=e;return fetch(t).then((e=>e.json()))}},resolvers:{*getPlan(){const e=yield a.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");return a.setPlans(e)}}})},41362:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return void 0!==r.createBlocksFromInnerBlocksTemplate?(0,r.createBlocksFromInnerBlocksTemplate)(e):e.map((e=>{const t=Array.isArray(e)?e:[e.name,e.attributes,e.innerBlocks],[n,o,i=[]]=t;return(0,r.createBlock)(n,o,a(i))}))}},17882:function(e,t,n){"use strict";n.d(t,{ck:function(){return o},Xy:function(){return i},hj:function(){return s},vs:function(){return l},Vm:function(){return c}});var r=n(75139),a=n(92819);const o={USD:.5,AUD:.5,BRL:.5,CAD:.5,CHF:.5,DKK:2.5,EUR:.5,GBP:.3,HKD:4,INR:.5,JPY:50,MXN:10,NOK:3,NZD:.5,PLN:2,SEK:3,SGD:.5},i=Object.keys(o).map((e=>{const{symbol:t}=(0,r.X)(e);return{value:e,label:t===e?e:`${e} ${(0,a.trimEnd)(t,".")}`}}));function s(e){return o[e]}function l(e,t){return!isNaN(t)&&t>=s(e)}function c(e,t){return e?"number"==typeof e?e:(e=parseFloat(e.replace(new RegExp("\\"+r.M[t].grouping,"g"),"").replace(new RegExp("\\"+r.M[t].decimal,"g"),".")),isNaN(e)?null:e):null}},58703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{label:t,onClick:n}=e;return(0,r.createElement)(a.Button,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},99418:function(e,t,n){"use strict";n.d(t,{iT:function(){return i},wk:function(){return s},oI:function(){return l},Tu:function(){return c},OG:function(){return u},tY:function(){return p},h9:function(){return d},CY:function(){return m},Wm:function(){return h},Qh:function(){return f},Bb:function(){return g},En:function(){return b},yD:function(){return v},QU:function(){return k},zs:function(){return y},l5:function(){return E}});var r=n(65736),a=n(69771),o=n(92819);const __=r.__,i="google_photos",s="pexels",l="recent",c="/",u=[{value:l,label:__("Photos","jetpack")},{value:c,label:__("Albums","jetpack")}],p=[{value:"",
+/* translators: category of images */
+label:__("All categories","jetpack")},{value:"animals",
+/* translators: category of images */
+label:__("Animals","jetpack")},{value:"arts",
+/* translators: category of images */
+label:__("Arts","jetpack")},{value:"birthdays",
+/* translators: category of images */
+label:__("Birthdays","jetpack")},{value:"cityscapes",
+/* translators: category of images */
+label:__("Cityscapes","jetpack")},{value:"crafts",
+/* translators: category of images */
+label:__("Crafts","jetpack")},{value:"fashion",
+/* translators: category of images */
+label:__("Fashion","jetpack")},{value:"food",
+/* translators: category of images */
+label:__("Food","jetpack")},{value:"flowers",
+/* translators: category of images */
+label:__("Flowers","jetpack")},{value:"gardens",
+/* translators: category of images */
+label:__("Gardens","jetpack")},{value:"holidays",
+/* translators: category of images */
+label:__("Holidays","jetpack")},{value:"houses",
+/* translators: category of images */
+label:__("Houses","jetpack")},{value:"landmarks",
+/* translators: category of images */
+label:__("Landmarks","jetpack")},{value:"landscapes",
+/* translators: category of images */
+label:__("Landscapes","jetpack")},{value:"night",
+/* translators: category of images */
+label:__("Night","jetpack")},{value:"people",
+/* translators: category of images */
+label:__("People","jetpack")},{value:"pets",
+/* translators: category of images */
+label:__("Pets","jetpack")},{value:"selfies",
+/* translators: category of images */
+label:__("Selfies","jetpack")},{value:"sport",
+/* translators: category of images */
+label:__("Sport","jetpack")},{value:"travel",
+/* translators: category of images */
+label:__("Travel","jetpack")},{value:"weddings",
+/* translators: category of images */
+label:__("Weddings","jetpack")}],d=["mountain","ocean","river","clouds","pattern","abstract","sky"],m="ANY",h="LAST_7_DAYS",f="LAST_30_DAYS",g="LAST_6_MONTHS",b="LAST_12_MONTHS",v="CUSTOM",k=[{value:m,label:__("Any time","jetpack")},{value:h,label:__("Last 7 days","jetpack")},{value:f,label:__("Last 30 days","jetpack")},{value:g,label:__("Last 6 months","jetpack")},{value:b,label:__("Last 12 months","jetpack")},{value:v,label:__("Specific Month/Year","jetpack")}],y=(new Date).getFullYear(),E=[{label:__("Any Month","jetpack"),value:-1},...(0,o.map)((0,o.range)(0,12),(e=>({label:(0,a.dateI18n)("F",new Date(0,e)),value:e})))]},26634:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(92694),s=n(52175),l=n(63729),c=n(97294),u=n(34724);if((0,l.Z)()&&"function"==typeof s.useBlockEditContext){const e=e=>e.unstableFeaturedImageFlow||e.modalClass&&e.modalClass.indexOf("featured-image")>-1,t=(e,t)=>["core/cover","core/image","core/gallery","core/media-text","jetpack/image-compare","jetpack/slideshow","jetpack/story","jetpack/tiled-gallery"].indexOf(e)>-1&&-1===t.toString().indexOf("coblocks");(0,i.addFilter)("editor.MediaUpload","external-media/replace-media-upload",(n=>r=>{const{name:i}=(0,s.useBlockEditContext)();let{render:l}=r;if(t(i,l)||e(r)){const{allowedTypes:e,gallery:t=!1,value:n=[]}=r;e.indexOf("image")>-1&&!(t&&n.length>0)&&(l=e=>(0,o.createElement)(c.Z,a()({},e,{mediaProps:r})))}return(0,o.createElement)(n,a()({},r,{render:l}))}),100),(0,i.addFilter)("blocks.registerBlockType","external-media/individual-blocks",(function(e,t){return"core/image"!==t?e:{...e,keywords:[...e.keywords,...u.Dv.map((e=>e.keyword))]}}))}},6966:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(55609),l=n(65736),c=n(39630),u=n(25432),p=n(9236);const __=l.__,d=(0,r.memo)((()=>(0,r.createElement)("div",{className:"jetpack-external-media-browser__empty"},(0,r.createElement)("p",null,__("Sorry, but nothing matched your search criteria.","jetpack")))));t.Z=function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,className:m,multiple:h,setPath:f,nextPage:g,onCopy:b}=e,[v,k]=(0,r.useState)([]),[y,E]=(0,r.useState)(-1),w=(0,r.useRef)(-1),_=(0,r.useRef)(null),C=(0,r.useCallback)((e=>{let t=[e];"folder"===e.type?f(e.ID):h?(t=v.slice(0,9).concat(e),v.find((t=>e.ID===t.ID))&&(t=v.filter((t=>t.ID!==e.ID)))):1===v.length&&e.ID===v[0].ID&&(t=[]),k(t)}),[v,h,f]),j=(0,r.useCallback)((()=>{b(v)}),[v,b]),S=t.filter((e=>"folder"!==e.type)).length>0,x=o()({"jetpack-external-media-browser__media":!0,"jetpack-external-media-browser__media__loading":a}),T=o()({"jetpack-external-media-browser":!0,[m]:!0}),P=()=>{let e=1;const t=_.current.children;if(t.length>0){const n=t[0].offsetTop;for(;e<t.length&&t[e].offsetTop===n;)++e}w.current=e},N=(0,i.debounce)(P,400);(0,r.useEffect)((()=>(window.addEventListener("resize",N),()=>{window.removeEventListener("resize",N)})),[]),(0,r.useEffect)((()=>{t.length&&-1===w.current&&P()}),[t]);const A=(e,t)=>{let{item:n}=t;C(n)},I=(e,n)=>{let{item:r,index:a}=n;[c.LEFT,c.RIGHT,c.UP,c.DOWN].includes(e.keyCode)?((e,n)=>{switch(e){case c.LEFT:n>=1&&E(n-1);break;case c.RIGHT:n<t.length&&E(n+1);break;case c.UP:n>=w.current&&E(n-w.current);break;case c.DOWN:n<t.length-w.current&&E(n+w.current)}})(e.keyCode,a):c.SPACE===e.keyCode?(C(r),e.preventDefault()):c.ENTER===e.keyCode&&C(r),[c.LEFT,c.RIGHT,c.UP,c.DOWN,c.SPACE,c.ENTER].includes(e.keyCode)&&e.stopPropagation()};return(0,r.createElement)("div",{className:T},(0,r.createElement)("ul",{ref:_,className:x},t.map(((e,t)=>(0,r.createElement)(p.Z,{item:e,index:t,key:e.ID,onClick:A,onKeyDown:I,focus:t===y,isSelected:v.find((t=>t.ID===e.ID)),isCopying:n}))),0===t.length&&!a&&(0,r.createElement)(d,null),a&&(0,r.createElement)(u.Z,null),l&&!a&&(0,r.createElement)(s.Button,{isSecondary:!0,className:"jetpack-external-media-browser__loadmore",disabled:a||n,onClick:()=>{t.length&&E(t.length),g()}},__("Load More","jetpack"))),S&&(0,r.createElement)((()=>{const e=0===v.length||n,t=n?__("Inserting…","jetpack"):__("Select","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__toolbar"},(0,r.createElement)(s.Button,{isPrimary:!0,isBusy:n,disabled:e,onClick:j},t))}),null))}},9236:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__;t.Z=function(e){const{item:t,focus:n,isSelected:a,isCopying:s=!1}=e,{thumbnails:l,caption:c,name:u,title:p,type:d,children:m=0}=t,{medium:h=null,fmt_hd:f=null}=l,g=p||c||u,b=o()({"jetpack-external-media-browser__media__item":!0,"jetpack-external-media-browser__media__item__selected":a,"jetpack-external-media-browser__media__folder":"folder"===d,"is-transient":s}),v=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n&&v.current.focus()}),[n]),(0,r.createElement)("li",{ref:v,className:b,onClick:s?void 0:t=>{const{item:n,index:r}=e;e.onClick&&e.onClick(t,{item:n,index:r})},onKeyDown:s?void 0:t=>{const{item:n,index:r}=e;e.onKeyDown&&e.onKeyDown(t,{item:n,index:r})},role:"checkbox",tabIndex:"0","aria-checked":!!a,"aria-disabled":!!s},a&&s&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator"},(0,r.createElement)(i.Spinner,null),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator__label"},__("Inserting Image…","jetpack"))),(0,r.createElement)("img",{src:h||f,alt:g}),"folder"===d&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__info"},(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__name"},u),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__count"},m)))}},25432:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.memo)((function(){const e="jetpack-external-media-browser__media__item jetpack-external-media-browser__media__placeholder";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}))}))},97294:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(34724),s=n(60133);const l=e=>e.unstableFeaturedImageFlow||e.modalClass&&-1!==e.modalClass.indexOf("featured-image"),c=e=>void 0===e.multiple&&!l(e);t.Z=function(e){const{mediaProps:t}=e,[n,r]=(0,o.useState)(null),u=(0,i.ZR)(n);return(0,o.createElement)("div",{onClick:e=>e.stopPropagation()},(0,o.createElement)(s.Z,a()({},e,{setSelectedSource:r,isReplace:c(t),isFeatured:l(t),hasImage:t.value>0})),u&&(0,o.createElement)(u,a()({onClose:e=>{e&&(e.stopPropagation(),e.target.closest(".jetpack-external-media-header__dropdown"))||r(null)}},t)))}},60133:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(35127),s=n(2562);const __=o.__;t.Z=function(e){const{mediaProps:t,open:n,setSelectedSource:o,isFeatured:l,isReplace:c,hasImage:u}=e,p=t.render;let d=l,m=!1,h=!l;if(c)return(0,r.createElement)(s.Z,{originalButton:p,open:n,setSource:o});let f=__("Select Image","jetpack");return t.multiple&&(f=__("Select Images","jetpack")),t.allowedTypes.length>1&&(f=__("Select Media","jetpack")),l&&(f=__("Replace Image","jetpack"),d=!1,h=!1,m=!0),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Dropdown,{position:"bottom right",contentClassName:"jetpack-external-media-button-menu__options",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;const o=p&&p({open:n});return l&&u||o&&"string"!=typeof o.props.children?o:(0,r.createElement)(a.Button,{isPrimary:d,isSecondary:m,isTertiary:h,className:"jetpack-external-media-button-menu","aria-haspopup":"true","aria-expanded":t,onClick:n},f)},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(a.NavigableMenu,{"aria-label":f},(0,r.createElement)(a.MenuGroup,null,(0,r.createElement)(a.MenuItem,{icon:i.Z,onClick:()=>{t(),n()}},__("Media Library","jetpack")),(0,r.createElement)(s.Z,{open:n,setSource:o,onClick:t})))}}))}},2562:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(34724);t.Z=function(e){let{originalButton:t=null,onClick:n=(()=>{}),open:i,setSource:s}=e;return(0,r.createElement)(r.Fragment,null,t&&t({open:i}),o.Dv.map((e=>{let{icon:t,id:o,label:i}=e;return(0,r.createElement)(a.MenuItem,{icon:t,key:o,onClick:()=>{n(),s(o)}},i)})))}},67236:function(e,t,n){"use strict";n.d(t,{k:function(){return o}});var r=n(96483);const a={list:"/wpcom/v2/external-media/list/",copy:(0,n(58014).Wp)()?"/rest/v1.1/external-media-upload?service=":"/wpcom/v2/external-media/copy/",connection:"/wpcom/v2/external-media/connection/"};function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a[e]?(0,r.addQueryArgs)(a[e]+t,n):null}},97416:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(51591);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.JO,null),(0,r.createElement)("p",null,__("To get started, connect your site to your Google Photos library.","jetpack")),(0,r.createElement)("p",null,__("You can remove the connection in either of these places:","jetpack")),(0,r.createElement)("ul",null,(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://myaccount.google.com/security"},__("Google Security page","jetpack"))),(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/connections/"},__("WordPress.com Connections","jetpack")))))}))},75039:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)("p",null,__("Awaiting authorization","jetpack"))}))},72475:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418);const __=a.__;t.Z=(0,r.memo)((function(e){let{path:t,setPath:n}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Button,{isTertiary:!0,onClick:()=>n(i.Tu)},__("Albums","jetpack")),"→   ",t.name)}))},10365:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(38205);const __=a.__;function c(e){let{value:t,updateFilter:n}=e;return(0,r.createElement)(o.SelectControl,{label:__("Category","jetpack"),value:t,options:s.tY,onChange:n})}function u(e){let{value:t,updateFilter:n}=e;const a=t?.range||s.CY,[i,c]=(0,r.useState)(-1),[u,p]=(0,r.useState)(s.zs);return(0,r.createElement)("div",{className:"jetpack-external-media-date-filter"},(0,r.createElement)(o.SelectControl,{label:__("Filter by time period","jetpack"),value:a,options:s.QU,onChange:e=>n({range:e})}),a===s.yD&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Month","jetpack"),value:i,options:s.l5,onChange:c}),(0,r.createElement)(l.Z,{className:"components-base-control",label:__("Year","jetpack"),value:u,min:1970,onChange:p}),(0,r.createElement)(o.Button,{isSecondary:!0,disabled:t?.month===i&&t?.year===u,onClick:()=>{n({range:a,month:i,year:u})}},__("Apply","jetpack"))))}function p(){return(0,r.createElement)("span",null,__("Favorites","jetpack"))}function d(e){let{value:t,updateFilter:n}=e;const a=[{label:__("All","jetpack"),value:""},{label:__("Images","jetpack"),value:"photo"},{label:__("Videos","jetpack"),value:"video"}];return(0,r.createElement)(o.SelectControl,{label:__("Type","jetpack"),value:t,options:a,onChange:n})}function m(e){let{children:t,removeFilter:n,isRemovable:a=!1}=e;return(0,r.createElement)("div",{className:"jetpack-external-media-googlephotos-filter"},t,!!a&&(0,r.createElement)(o.Button,{onClick:n,isSmall:!0},__("Remove Filter","jetpack")))}t.Z=function(e){let{filters:t,setFilters:n,canChangeMedia:a}=e;const o=Object.keys(t).filter((e=>a||"mediaType"!==e)).map((e=>{return(0,r.createElement)(m,{key:e,removeFilter:()=>n((0,i.omit)(t,e))},(a=e,o=t[e],s=r=>n(function(e,t,n){const r={...e,[t]:n};return"mediaType"===t&&"video"===n?delete r.category:"category"===t&&"video"===r.mediaType&&delete r.mediaType,r}(t,e,r)),"category"===a?(0,r.createElement)(c,{value:o,updateFilter:s}):"date"===a?(0,r.createElement)(u,{value:o,updateFilter:s}):"favorite"===a?(0,r.createElement)(p,{value:o}):"mediaType"===a?(0,r.createElement)(d,{value:o,updateFilter:s}):null));var a,o,s}));return 0===o.length?null:o}},50254:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(76292),a=n.n(r),o=n(99418);const i=a()();function s(e){const{mediaType:t,category:n,favorite:r,date:s}=e,l=[];if(t&&l.push("mediaType="+t),n&&"video"!==t&&l.push("categoryInclude="+n),void 0!==r&&l.push("feature=favorite"),s){let e=null,t=null;switch(s.range){case o.Wm:e=a()(i).subtract(7,"days"),t=i;break;case o.Qh:e=a()(i).subtract(30,"days"),t=i;break;case o.Bb:e=a()(i).subtract(6,"months"),t=i;break;case o.En:e=a()(i).subtract(1,"year"),t=i;break;case o.yD:const n=parseInt(s.month),r=parseInt(s.year);isNaN(n)||isNaN(r)||(-1===n?(e=a()([r,0]),t=a()(e).endOf("year")):(e=a()([r,n]),t=a()(e).endOf("month")))}const n=e?e.format("YYYY-MM-DD"):"0000-00-00",r=t?t.format("YYYY-MM-DD"):"0000-00-00";l.push(`dateRange=${n}:${r}`)}return l.length>0?l:null}},48389:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i=[{label:__("Category","jetpack"),value:"category"},{label:__("Date","jetpack"),value:"date"},{label:__("Favorites","jetpack"),value:"favorite"},{label:__("Media Type","jetpack"),value:"mediaType"}];function s(e){return i.filter((t=>void 0===e[t.value]))}function l(e){const t=s(e);return t.length>0?t[0].value:""}t.Z=function(e){const[t,n]=(0,r.useState)(l([])),{isLoading:a,isCopying:i,filters:c,canChangeMedia:u}=e,p=function(e,t){return t?e:e.filter((e=>"mediaType"!==e.value))}(s(c),u);return 0===p.length?null:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Filters","jetpack"),value:t,disabled:a||i,options:p,onChange:n}),(0,r.createElement)(o.Button,{disabled:a||i,isSecondary:!0,isSmall:!0,onClick:()=>{const r=(a=c,o=t,{...a,[o]:"favorite"===o||""});var a,o;e.setFilters(r),n(l(r))}},__("Add Filter","jetpack")))}},72461:function(e,t,n){"use strict";var r=n(69307),a=n(3308);t.Z=e=>{let{account:t,setAuthenticated:n}=e;const{image:o,name:i}=t||{};return(0,r.createElement)("div",{className:"jetpack-external-media-header__account"},(0,r.createElement)("div",{className:"jetpack-external-media-header__account-info"},o&&(0,r.createElement)("img",{className:"jetpack-external-media-header__account-image",src:o,alt:"",height:"18",width:"18"}),i&&(0,r.createElement)("div",{className:"jetpack-external-media-header__account-name"},i)),(0,r.createElement)(a.Z,{setAuthenticated:n}))}},17482:function(e,t,n){"use strict";var r=n(69307),a=n(39151),o=n(86989),i=n.n(o),s=n(65736),l=n(55609),c=n(99418),u=n(67236),p=n(97416),d=n(75039);const __=s.__;t.Z=function(e){const{setAuthenticated:t}=e,[n,o]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{o(!0),i()({path:(0,u.k)("connection",c.iT)}).then((e=>{if(e.error)throw e.message;(0,a.Z)(e.connect_URL,(()=>{o(!1),t(!0)}))})).catch((()=>{o(!1)}))}),[t]);return(0,r.createElement)("div",{className:"jetpack-external-media-auth"},n?(0,r.createElement)(d.Z,null):(0,r.createElement)(p.Z,null),(0,r.createElement)(l.Button,{isPrimary:!0,disabled:n,onClick:s},__("Connect to Google Photos","jetpack")))}},3308:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(67236),c=n(99418);const __=s.__;t.Z=e=>{let{setAuthenticated:t}=e;const[n,a]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{a(!0),o()({method:"DELETE",path:(0,l.k)("connection",c.iT)}).then((()=>t(!1))).catch((()=>a(!1)))}),[t]);return(0,r.createElement)(i.Button,{isSecondary:!0,className:"jetpack-external-media-browser__disconnect",onClick:s,disabled:n,isBusy:n},__("Disconnect from Google Photos","jetpack"))}},8910:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418),s=n(6966),l=n(67236),c=n(10365),u=n(48389),p=n(72461),d=n(72475),m=n(50254);const __=a.__;t.Z=function(e){const{account:t,allowedTypes:n,copyMedia:a,getMedia:h,isCopying:f,isLoading:g,media:b,multiple:v,onChangePath:k,pageHandle:y,path:E,setAuthenticated:w,showAdditionalFilters:_=!1}=e,C=(j=n)&&1===j.length&&"image"===j[0];var j;const[S,x]=(0,r.useState)(C?{mediaType:"photo",date:{range:i.CY}}:{date:{range:i.CY}}),T=(0,r.useRef)(""),P=(0,r.useRef)(""),N=E.ID===i.oI?(0,m.Z)(S):null,A={number:20,path:E.ID};N&&(A.filter=N);const I=(0,l.k)("list",i.iT,A),B=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h(I,t)}),[h,I]),M=(0,r.useCallback)((e=>{const t=b.find((t=>t.ID===e));P.current=E,k(t||{ID:e})}),[b,k,P,E]),R=(0,r.useCallback)((e=>{a(e,(0,l.k)("copy",i.iT),i.iT)}),[a]);return(0,r.useEffect)((()=>{T!==I&&(T.current=I,B({},E!==P.current))}),[T,I,B,E]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__google"},(0,r.createElement)("div",{className:"jetpack-external-media-header__view"},(0,r.createElement)(o.SelectControl,{className:"jetpack-external-media-header__select",label:__("View","jetpack"),value:E.ID!==i.oI?i.Tu:i.oI,disabled:g||f,options:i.OG,onChange:M}),_&&E.ID===i.oI&&(0,r.createElement)(u.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),(0,r.createElement)("div",{className:"jetpack-external-media-header__filter"},E.ID===i.oI&&(0,r.createElement)(c.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),E.ID!==i.oI&&E.ID!==i.Tu&&(0,r.createElement)(d.Z,{path:E,setPath:M})),(!g||b.length>0)&&(0,r.createElement)(p.Z,{account:t,setAuthenticated:w})),(0,r.createElement)(s.Z,{className:"jetpack-external-media-browser__google",key:I,media:b,isCopying:f,isLoading:g,nextPage:B,onCopy:R,pageHandle:y,multiple:v,setPath:M}))}},5465:function(e,t,n){"use strict";var r=n(69307),a=n(37603),o=n(17482),i=n(8910);t.Z=(0,a.Z)()((function(e){return e.isAuthenticated?(0,r.createElement)(i.Z,e):(0,r.createElement)(o.Z,e)}))},34724:function(e,t,n){"use strict";n.d(t,{Dv:function(){return c},ZR:function(){return u}});var r=n(69307),a=n(65736),o=n(51591),i=n(5465),s=n(7500),l=n(99418);const __=a.__,c=[{id:l.iT,label:__("Google Photos","jetpack"),icon:(0,r.createElement)(o.He,{className:"components-menu-items__item-icon"}),keyword:"google photos"},{id:l.wk,label:__("Pexels Free Photos","jetpack"),icon:(0,r.createElement)(o.yk,{className:"components-menu-items__item-icon"}),keyword:"pexels"}];function u(e){return e===l.wk?s.Z:e===l.iT?i.Z:null}},7500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(37603),c=n(6966),u=n(67236);const __=a.__;t.Z=(0,l.Z)()((function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,multiple:p,copyMedia:d,getMedia:m}=e,[h,f]=(0,r.useState)((0,i.sample)(s.h9)),[g,b]=(0,r.useState)(""),v=(0,r.useCallback)((e=>{d(e,(0,u.k)("copy",s.wk),s.wk)}),[d]),k=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h&&m((0,u.k)("list",s.wk,{number:20,path:"recent",search:h}),t)}),[m,h]),y=(0,r.useRef)(),E=(0,r.useCallback)((e=>{e.preventDefault(),b(h),k(e,!0),y.current=h}),[k,h]);(0,r.useEffect)(k,[]);const w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!w.current)return;const e=Array.from(w.current.elements).find((e=>"search"===e.type));e&&(e.focus(),e.select())}),[]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__pexels"},(0,r.createElement)("form",{ref:w,className:"jetpack-external-media-header__pexels",onSubmit:E},(0,r.createElement)(o.TextControl,{"aria-label":__("Search","jetpack"),type:"search",value:h,onChange:f,disabled:!!n}),(0,r.createElement)(o.Button,{isPrimary:!0,onClick:E,type:"submit",disabled:!h.length||h===y.current||n},__("Search","jetpack"))),(0,r.createElement)(c.Z,{key:g,className:"jetpack-external-media-browser__pexels",media:t,isCopying:n,isLoading:a,nextPage:k,onCopy:v,pageHandle:l,multiple:p}))}))},37603:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(27538),a=n.n(r),o=n(69307),i=n(92819),s=n(89105),l=n.n(s),c=n(86989),u=n.n(c),p=n(94333),d=n(55609),m=n(65736),h=n(39630),f=n(9818),g=n(99418);const __=m.__;function b(){return(0,p.createHigherOrderComponent)((e=>{class t extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"contentRef",(e=>{e?(this.contentElement=e,this.modalElement=e.closest(".jetpack-external-media-browser"),this.modalElement&&this.modalElement.addEventListener("keydown",this.stopArrowKeysPropagation)):this.modalElement&&(this.modalElement.removeEventListener("keydown",this.stopArrowKeysPropagation),this.modalElement=null,this.contentElement=null)})),a()(this,"stopArrowKeysPropagation",(e=>{[h.UP,h.DOWN,h.LEFT,h.RIGHT].includes(e.keyCode)&&!e.target.classList.contains("jetpack-external-media-browser__media__item")&&e.stopPropagation()})),a()(this,"setAuthenticated",(e=>this.setState({isAuthenticated:e}))),a()(this,"getMedia",(function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.state.isLoading||(n&&t.props.noticeOperations.removeAllNotices(),t.setState({account:n?t.defaultAccount:t.state.account,isLoading:!0,media:n?[]:t.state.media,nextHandle:!n&&t.state.nextHandle},(()=>t.getMediaRequest(e))))})),a()(this,"handleApiError",(e=>{if("authorization_required"===e.code)return void this.setState({isAuthenticated:!1,isLoading:!1,isCopying:!1});e.errors?.length&&(e={code:e.errors[0].error,message:e.errors[0].message});const{noticeOperations:t}=this.props;t.createErrorNotice("internal_server_error"===e.code?"Internal server error":e.message),this.setState({isLoading:!1,isCopying:!1})})),a()(this,"getMediaRequest",(e=>{const{nextHandle:t,media:n}=this.state;if(!1===t&&n.length>0)return void this.setState({isLoading:!1});const r=this.getRequestUrl(e);this.setAuthenticated(!0),u()({path:r,method:"GET",parse:void 0===window.wpcomFetch}).then((e=>{this.setState({account:e.meta.account,media:this.mergeMedia(n,e.media),nextHandle:e.meta.next_page,isLoading:!1})})).catch(this.handleApiError)})),a()(this,"copyMedia",((e,t,n)=>{var r;this.setState({isCopying:e}),this.props.noticeOperations.removeAllNotices(),this.modalElement&&this.modalElement.focus(),u()({path:t,method:"POST",data:{external_ids:e.map((e=>e.guid)),media:e.map((e=>({guid:e.guid,caption:e.caption,title:e.title}))),service:n,post_id:null!==(r=this.props.postId)&&void 0!==r?r:0}}).then((e=>{e.media&&(e=e.media.map((e=>({alt:e.alt,caption:e.caption,id:e.ID,type:"image",url:e.URL}))));const{value:t,addToGallery:n,multiple:r}=this.props,a=r?e:e[0],o=e.find((e=>e.errors));if(o){const{errors:e}=o,t=Object.keys(e)[0];this.handleApiError({code:t,message:e[t]})}else this.props.onClose(),this.props.onSelect(n?t.concat(e):a)})).catch(this.handleApiError)})),a()(this,"onChangePath",((e,t)=>{this.setState({path:e},t)})),this.defaultAccount={image:"",name:""},this.state={account:this.defaultAccount,media:[],nextHandle:!1,isLoading:!1,isCopying:null,isAuthenticated:!0,path:{ID:g.oI}}}mergeMedia(e,t){return(0,i.uniqBy)(e.concat(t),"ID")}getRequestUrl(e){const{nextHandle:t}=this.state;return t?e+"&page_handle="+encodeURIComponent(t):e}render(){const{account:t,isAuthenticated:n,isCopying:r,isLoading:a,media:i,nextHandle:s,path:c}=this.state,{allowedTypes:u,multiple:p=!1,noticeUI:m,onClose:h}=this.props,f=r?__("Inserting media","jetpack"):__("Select media","jetpack",0),g=r?__("When the media is finished copying and inserting, you will be returned to the editor.","jetpack"):__("Select the media you would like to insert into the editor.","jetpack",0),b="jetpack-external-media-browser__description",v=l()({"jetpack-external-media-browser":!0,"jetpack-external-media-browser--is-copying":r});return(0,o.createElement)(d.Modal,{onRequestClose:h,title:f,aria:{describedby:b},className:v},(0,o.createElement)("div",{ref:this.contentRef},m,(0,o.createElement)("p",{id:b,className:"jetpack-external-media-browser--visually-hidden"},g),(0,o.createElement)(e,{account:t,getMedia:this.getMedia,copyMedia:this.copyMedia,isCopying:r,isLoading:a,media:i,pageHandle:s,allowedTypes:u,isAuthenticated:n,setAuthenticated:this.setAuthenticated,multiple:p,path:c,onChangePath:this.onChangePath})))}}return(0,f.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()})))((0,d.withNotices)(t))}))}},36745:function(e,t,n){"use strict";n.d(t,{Qu:function(){return i}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["allowedMimeTypes"],[])}function i(e,t){if(!e||!t)return!1;if(!o())return!1;const n=(a=t)?(0,r.pickBy)(o(),(e=>(0,r.startsWith)(e,`${a}/`))):{};var a;const i=(s=n)?(0,r.flatten)((0,r.map)((0,r.keys)(s),(e=>e.split("|")))):[];var s;if("string"==typeof e){const t=e.split(".").pop();return t&&i.includes(t)}return"object"==typeof e&&(e.type&&(0,r.values)(n).includes(e.type))}},20510:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){const e=(0,r.getCategories)();for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(const t of n)if(e.some((e=>{let{slug:n}=e;return n===t})))return t;throw new Error(`Could not find a category from the provided list: ${n.join(",")}`)}},2368:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(96483);function a(e,t){if(!(0,r.isURL)(t))return null;let n=t;try{const a=(0,r.getQueryArg)(t,"state"),o=JSON.parse(atob(a));if(e)o.from_editor_post_id=e;else{const e=new URLSearchParams(window.location.search);o.from_site_editor_post_id=e.get("postId"),o.from_site_editor_post_type=e.get("postType")}n=(0,r.addQueryArgs)(t,{state:btoa(JSON.stringify(o))})}catch(e){0}return n}},47583:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);function a(){return(0,r.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null)}},21409:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(e){const t=(0,a.Z)(),n=(0,r.get)(t,["available_blocks",e,"available"],!1),o=(0,r.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),i=(0,r.get)(t,["available_blocks",e,"details"],[]);return{available:n,...!n&&{details:i,unavailableReason:o}}}},4235:function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,{Z:function(){return r}})},14087:function(e,t,n){"use strict";n.d(t,{S:function(){return a}});var r=n(92819);const a=(e,t)=>(0,r.reduce)(t,((t,n,r)=>{if(void 0===e[r])return t;const{type:a,validator:o,validValues:i,default:s}=e[r];return t[r]="boolean"===a?"false"!==n&&!!n:o?o(n)?n:s:i?i.includes(n)?n:s:n,t}),{})},22985:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(20651),c=n.n(l);t.Z=e=>{let{children:t=null,isError:n=!1,...r}=e;const i=s()("help-message",{"help-message-is-error":n});return t&&(0,o.createElement)("div",a()({className:i},r),n&&(0,o.createElement)(c(),{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),(0,o.createElement)("span",null,t))}},51591:function(e,t,n){"use strict";n.d(t,{He:function(){return d},yk:function(){return m},JO:function(){return h},IM:function(){return f},zf:function(){return E},Ae:function(){return w},K9:function(){return _},Xu:function(){return C},VV:function(){return j},_z:function(){return S},Qv:function(){return x},av:function(){return T},Pw:function(){return P}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(89105),l=n.n(s),c=n(27655),u=n(57535);const p=c.O["Jetpack Green 40"],d=e=>(0,o.createElement)(i.SVG,a()({height:"24",width:"24",viewBox:"1.2 10.8 169.6 169.6",xmlns:"http://www.w3.org/2000/svg"},e),(0,o.createElement)(i.Path,{d:"m43.6 49.4c23.4 0 42.4 19 42.4 42.4v3.9h-80.9c-2.1 0-3.8-1.7-3.9-3.9 0-23.4 19-42.4 42.4-42.4z",fill:"#f6bc04"}),(0,o.createElement)(i.Path,{d:"m132.2 53.2c0 23.4-19 42.4-42.4 42.4h-3.8v-80.9c0-2.1 1.7-3.9 3.8-3.9 23.5 0 42.4 19 42.4 42.4z",fill:"#ea4335"}),(0,o.createElement)(i.Path,{d:"m128.4 141.9c-23.4 0-42.4-19-42.4-42.4v-3.9h80.9c2.1 0 3.9 1.7 3.9 3.8 0 23.5-19 42.5-42.4 42.5z",fill:"#4285f4"}),(0,o.createElement)(i.Path,{d:"m39.8 138c0-23.4 19-42.4 42.4-42.4h3.8v80.9c0 2.1-1.7 3.8-3.9 3.9-23.4 0-42.3-19-42.3-42.4z",fill:"#34a853"})),m=e=>(0,o.createElement)(i.SVG,a()({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},e),(0,o.createElement)(i.Path,{d:"M14 7H9v10h3.9v-3.8H14c1.7 0 3.1-1.4 3.1-3.1C17.2 8.4 15.8 7 14 7z"}),(0,o.createElement)(i.Path,{d:"M20.5 2h-17C2.7 2 2 2.7 2 3.5v17c0 .8.7 1.5 1.5 1.5h17c.8 0 1.5-.7 1.5-1.5v-17c0-.8-.7-1.5-1.5-1.5zm-5.6 13.2V19H7V5h7c2.8 0 5.1 2.3 5.1 5.1.1 2.5-1.8 4.7-4.2 5.1z"})),h=()=>{const e="#757575";return(0,o.createElement)(i.SVG,{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/SVG",x:"0px",y:"0px",viewBox:"0 0 1292 448",style:{enableBackground:"new 0 0 1292 448"}},(0,o.createElement)(i.G,{id:"Icon"},(0,o.createElement)(i.Path,{class:"st0",fill:"#F6B704",d:"M171.6,177.4c23.4,0,42.4,19,42.4,42.4v3.9h-80.9c-2.1,0-3.8-1.7-3.9-3.9C129.2,196.4,148.2,177.4,171.6,177.4 C171.6,177.4,171.6,177.4,171.6,177.4z"}),(0,o.createElement)(i.Path,{class:"st1",fill:"#E54335",d:"M260.2,181.2c0,23.4-19,42.4-42.4,42.4H214v-80.9c0-2.1,1.7-3.9,3.8-3.9h0 C241.3,138.8,260.2,157.8,260.2,181.2C260.2,181.2,260.2,181.2,260.2,181.2z"}),(0,o.createElement)(i.Path,{class:"st2",fill:"#4280EF",d:"M256.4,269.9c-23.4,0-42.4-19-42.4-42.4v-3.9h80.9c2.1,0,3.9,1.7,3.9,3.8v0 C298.8,250.9,279.8,269.9,256.4,269.9C256.4,269.9,256.4,269.9,256.4,269.9z"}),(0,o.createElement)(i.Path,{class:"st3",fill:"#34A353",d:"M167.8,266c0-23.4,19-42.4,42.4-42.4c0,0,0,0,0,0h3.9v80.9c0,2.1-1.7,3.8-3.9,3.9 C186.7,308.4,167.8,289.4,167.8,266z"})),(0,o.createElement)(i.G,{id:"Photos"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M796,272v-91.6h31.2c15.2,0,28.7,11.3,28.7,27.3s-13.4,27.3-28.7,27.3h-19.4V272H796z M827.5,223.6 c8.8,0,16-7.2,16-16s-7.2-16-16-16h-19.7v32H827.5z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M875.8,209.3l-0.5,8.7h0.5c3.3-5.8,11.3-10.8,19.8-10.8c16,0,23.9,10.9,23.9,26.4V272h-11.8v-36.6 c0-13-6.5-17.4-15.5-17.4c-10.2,0-16.5,9.7-16.5,19.3V272H864v-91.6h11.8V209.3z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M993.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4S993.8,221.6,993.8,240.6z M982,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S982,255,982,240.6L982,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1008,252.9V220h-11v-10.7h11v-19.2h11.8v19.2h15.3V220h-15.3v32c0,7,2.9,10.2,8.4,10.2c1.8,0.1,3.7-0.3,5.4-1 l4.1,10.1c-3,1.2-6.2,1.8-9.5,1.7C1015,273,1008,265.7,1008,252.9z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1105.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4 S1105.8,221.6,1105.8,240.6z M1094,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S1094,255,1094,240.6 L1094,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1111,256.1l10.5-4.4c3.3,7.9,9.5,11.8,17,11.8c7.3,0,12.5-3.6,12.5-8.8c0-3.2-1.9-6.6-8.6-8.3l-12.7-3.1 c-5.8-1.4-16.8-6.4-16.8-17.4c0-11.4,11.8-18.7,24.8-18.7c10.9,0,20.3,5,24.2,14.6l-10.2,4.2c-2.4-5.9-8.2-8.3-14.3-8.3 c-6.7,0-12.4,3-12.4,8.1c0,4,3.3,6.1,8.3,7.3l12.4,2.9c12.4,2.9,17.3,10.6,17.3,18.3c0,11.1-10,19.7-24.7,19.7 C1123.2,274,1114.7,265.1,1111,256.1z"})),(0,o.createElement)(i.G,{id:"Google"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M348.7,221.6c0-28.9,24.3-52.5,53.2-52.5c13.5-0.2,26.4,5,36,14.5l-10.1,10.1c-6.9-6.7-16.2-10.4-25.9-10.2 c-21.1,0-37.6,17-37.6,38.2s16.5,38.1,37.6,38.1c13.7,0,21.5-5.5,26.5-10.5c4.1-4.1,6.8-10,7.8-18H402v-14.4h48.3 c0.5,3,0.8,6,0.8,9c0,10.8-2.9,24.1-12.4,33.5c-9.2,9.6-21,14.7-36.6,14.7C373,274,348.7,250.5,348.7,221.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M490,206.5c-18.7,0-33.9,14.2-33.9,33.8S471.3,274,490,274s33.9-14.3,33.9-33.8S508.7,206.5,490,206.5z M490,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S500.2,260.7,490,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M564,206.5c-18.7,0-33.9,14.2-33.9,33.8S545.3,274,564,274s33.9-14.3,33.9-33.8S582.7,206.5,564,206.5z M564,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S574.2,260.7,564,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M654.8,208.5v5.5h-0.5c-3.3-4-9.7-7.6-17.8-7.6c-16.9,0-32.4,14.9-32.4,33.9s15.5,33.7,32.4,33.7 c8.1,0,14.5-3.6,17.8-7.7h0.5v4.9c0,12.9-6.9,19.8-18,19.8c-9.1,0-14.7-6.5-17-12l-12.9,5.4c5,12.1,16.8,20.1,30,20 c17.4,0,32.1-10.2,32.1-35.2v-60.7H654.8z M637.8,260.7c-10.2,0-18.8-8.6-18.8-20.4s8.6-20.6,18.8-20.6s18,8.7,18,20.6 S647.9,260.7,637.8,260.7L637.8,260.7z"}),(0,o.createElement)(i.Rect,{x:"679.2",y:"172.7",class:"st4",fill:e,width:"14.8",height:"99.3"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M734.7,260.7c-7.6,0-12.9-3.5-16.4-10.2l45.2-18.7L762,228c-2.8-7.6-11.4-21.5-28.9-21.5s-31.9,13.7-31.9,33.8 c0,19,14.3,33.8,33.5,33.8c11.3,0.1,21.9-5.6,28.2-15l-11.5-7.7C747.5,257,742.3,260.7,734.7,260.7z M733.6,219.5 c5.9,0,10.9,2.9,12.5,7.2l-30.2,12.5C715.5,226.2,726,219.5,733.6,219.5L733.6,219.5z"})))},f=e=>{let{size:t=24,className:n}=e;return(0,o.createElement)(i.SVG,{className:l()("jetpack-logo",n),width:t,height:t,viewBox:"0 0 32 32"},(0,o.createElement)(i.Path,{className:"jetpack-logo__icon-circle",fill:p,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))},g=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"}))),b=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19,3H5C3.895,3,3,3.895,3,5v14c0,1.105,0.895,2,2,2h14c1.105,0,2-0.895,2-2V5C21,3.895,20.105,3,19,3z M16.466,9.71 c0.004,0.099,0.007,0.198,0.007,0.298c0,3.045-2.318,6.556-6.556,6.556c-1.301,0-2.512-0.381-3.532-1.035 c0.18,0.021,0.364,0.032,0.55,0.032c1.079,0,2.073-0.368,2.862-0.986c-1.008-0.019-1.859-0.685-2.152-1.6 c0.141,0.027,0.285,0.041,0.433,0.041c0.21,0,0.414-0.028,0.607-0.081c-1.054-0.212-1.848-1.143-1.848-2.259 c0-0.01,0-0.019,0-0.029c0.311,0.173,0.666,0.276,1.044,0.288c-0.618-0.413-1.025-1.118-1.025-1.918 c0-0.422,0.114-0.818,0.312-1.158c1.136,1.394,2.834,2.311,4.749,2.407c-0.039-0.169-0.06-0.344-0.06-0.525 c0-1.272,1.032-2.304,2.304-2.304c0.663,0,1.261,0.28,1.682,0.728c0.525-0.103,1.018-0.295,1.463-0.559 c-0.172,0.538-0.537,0.99-1.013,1.275c0.466-0.056,0.91-0.18,1.323-0.363C17.306,8.979,16.916,9.385,16.466,9.71z"}))),v=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),k=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),y=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.05h-9.36z"}))),E={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 100 100"},(0,o.createElement)(i.Path,{d:"M100,44H72.4l23.9-13.8l-6-10.4L66.4,33.6L80.2,9.7l-10.4-6L56,27.59V0H44v27.6L30.2,3.7l-10.4,6l13.8,23.9 L9.7,19.8l-6,10.4L27.6,44H0V56h27.6L3.7,69.8l6,10.4l23.9-13.8L19.8,90.3l10.4,6L44,72.4V100H56V72.41l13.8,23.9l10.4-6L66.4,66.4 l23.9,13.8l6-10.4L72.4,56H100V44z M50,65.23c-8.41,0-15.23-6.82-15.23-15.23c0-8.41,6.82-15.23,15.23-15.23S65.23,41.59,65.23,50 C65.23,58.41,58.41,65.23,50,65.23z"}))},w={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20.7 17",xmlSpace:"preserve"},(0,o.createElement)(i.Path,{d:"m20.7 12.9-.9-11c0-.5-.2-.9-.5-1.3-.3-.3-.8-.5-1.3-.5L1.9 0h-.1c-.2 0-.5 0-.7.1C.9.2.7.4.5.5.4.7.2.9.1 1.1c-.1.2-.1.5-.1.7v.1l.9 13.4c0 .5.2.9.5 1.3.3.2.8.4 1.3.4H3l16.1-2c.4 0 .9-.3 1.1-.6.3-.3.5-.8.5-1.2v-.3zm-3.1.8L4.2 15.3H4c-.4 0-.8-.1-1-.4-.3-.3-.4-.6-.5-1L1.7 3.2v-.1c0-.4.2-.8.5-1 .3-.3.7-.4 1-.4h.1l13.5.1c.4 0 .8.1 1 .4.3.3.4.6.5 1L19 12v.3c0 .4-.2.7-.4 1-.3.2-.6.4-1 .4z"}))},_={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})))},C=((0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M15.9216 2H2.98533C2.43803 2 1.99023 2.45 1.99023 3V17L5.97062 13H15.9216C16.4689 13 16.9167 12.55 16.9167 12V3C16.9167 2.45 16.4689 2 15.9216 2ZM14.9265 4V11H5.14469L3.98043 12.17V4H14.9265ZM18.9069 6H20.8971C21.4444 6 21.8922 6.45 21.8922 7V22L17.9118 18H6.96572C6.41842 18 5.97062 17.55 5.97062 17V15H18.9069V6Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M3.98042 2H19.9019C20.9965 2 21.8921 2.9 21.8921 4V16C21.8921 17.1 20.9965 18 19.9019 18H5.97061L1.99023 22V4C1.99023 2.9 2.88582 2 3.98042 2ZM5.97061 16H19.9019V4H3.98042V18L5.97061 16Z"}))),{foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M11.1114 8H20.0002M11.1113 15H20.0002",stroke:(0,u.m)(),strokeWidth:"1.5"}),(0,o.createElement)(i.Path,{d:"M4 10V6L8 8L4 10Z",fill:(0,u.m)()}),(0,o.createElement)(i.Path,{d:"M4 17V13L8 15L4 17Z",fill:(0,u.m)()})))}),j={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M4 12V4L11 8L4 12Z"}),(0,o.createElement)(i.Path,{d:"M4 14.5H20V16H4V14.5Z"}),(0,o.createElement)(i.Path,{d:"M4 18.5H13V20H4V18.5Z"})))},S=((0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M2.5 7.5V4.5H15.5V7.5H10.5V19.5H7.5V7.5H2.5ZM12.5 9.5H21.5V12.5H18.5V19.5H15.5V12.5H12.5V9.5Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M12.7049 2V6C8.30658 6 4.74414 9.58 4.74414 14C4.74414 18.42 8.30658 22 12.7049 22C17.1032 22 20.6656 18.42 20.6656 14H18.6755C18.6755 17.31 15.9987 20 12.7049 20C9.41113 20 6.73433 17.31 6.73433 14C6.73433 10.69 9.41113 8 12.7049 8V12L17.6804 7L12.7049 2ZM11.6501 12.73L11.4013 14.9L12.068 15.06C12.0753 15.0526 12.0827 15.0447 12.0901 15.0366C12.1131 15.0116 12.1375 14.9851 12.1675 14.97C12.1874 14.96 12.2073 14.9475 12.2272 14.935C12.2471 14.9225 12.2671 14.91 12.287 14.9C12.3268 14.88 12.3865 14.86 12.4362 14.85C12.486 14.84 12.5556 14.83 12.6352 14.83C12.7447 14.83 12.8542 14.85 12.9338 14.88C13.0134 14.91 13.083 14.96 13.1427 15.03C13.2024 15.1 13.2422 15.17 13.2721 15.27C13.302 15.37 13.3119 15.47 13.3119 15.58V15.58C13.3119 15.69 13.3119 15.79 13.2821 15.89C13.2522 15.99 13.2124 16.07 13.1726 16.14C13.1328 16.21 13.0631 16.27 12.9935 16.31C12.9238 16.35 12.8343 16.37 12.7248 16.37C12.5556 16.37 12.4163 16.31 12.3069 16.22C12.1974 16.13 12.1377 15.99 12.1178 15.81H11.2819C11.2819 16.01 11.3317 16.19 11.4113 16.34C11.4909 16.49 11.5904 16.63 11.7297 16.73C11.869 16.83 12.0183 16.92 12.1874 16.97C12.3566 17.02 12.5357 17.05 12.7148 17.05C12.9636 17.05 13.1726 17 13.3517 16.93C13.5308 16.86 13.6801 16.75 13.7995 16.62C13.9189 16.49 14.0085 16.34 14.0682 16.17C14.1279 16 14.1577 15.82 14.1577 15.63C14.1577 15.41 14.1179 15.21 14.0682 15.03C14.0184 14.85 13.9289 14.7 13.8194 14.58C13.7099 14.46 13.5706 14.37 13.4114 14.3C13.2522 14.23 13.0731 14.2 12.8641 14.2C12.7945 14.2 12.7248 14.21 12.6651 14.22C12.6352 14.225 12.6054 14.2325 12.5755 14.24C12.5457 14.2475 12.5158 14.255 12.486 14.26C12.4263 14.27 12.3765 14.29 12.3367 14.31C12.3201 14.3183 12.3035 14.325 12.2876 14.3313C12.2654 14.3401 12.2446 14.3483 12.2272 14.36L12.3367 13.44H14.0284V12.73H11.6501Z"}))),x=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M11.9412 2V6C16.3395 6 19.902 9.58 19.902 14C19.902 18.42 16.3395 22 11.9412 22C7.54291 22 3.98047 18.42 3.98047 14H5.97066C5.97066 17.31 8.64746 20 11.9412 20C15.235 20 17.9118 17.31 17.9118 14C17.9118 10.69 15.235 8 11.9412 8V12L6.96575 7L11.9412 2ZM10.8864 12.73L10.6376 14.9L11.3044 15.06C11.3117 15.0526 11.319 15.0447 11.3264 15.0366C11.3494 15.0116 11.3738 14.9851 11.4039 14.97C11.4238 14.96 11.4437 14.9475 11.4636 14.935C11.4835 14.9225 11.5034 14.91 11.5233 14.9C11.5631 14.88 11.6228 14.86 11.6725 14.85C11.7223 14.84 11.792 14.83 11.8716 14.83C11.981 14.83 12.0905 14.85 12.1701 14.88C12.2497 14.91 12.3194 14.96 12.3791 15.03C12.4388 15.1 12.4786 15.17 12.5084 15.27C12.5383 15.37 12.5482 15.47 12.5482 15.58V15.58C12.5482 15.69 12.5482 15.79 12.5184 15.89C12.4885 15.99 12.4487 16.07 12.4089 16.14C12.3691 16.21 12.2995 16.27 12.2298 16.31C12.1601 16.35 12.0706 16.37 11.9611 16.37C11.792 16.37 11.6526 16.31 11.5432 16.22C11.4337 16.13 11.374 15.99 11.3541 15.81H10.5182C10.5182 16.01 10.568 16.19 10.6476 16.34C10.7272 16.49 10.8267 16.63 10.966 16.73C11.1053 16.83 11.2546 16.92 11.4238 16.97C11.5929 17.02 11.7721 17.05 11.9512 17.05C12.1999 17.05 12.4089 17 12.588 16.93C12.7672 16.86 12.9164 16.75 13.0358 16.62C13.1552 16.49 13.2448 16.34 13.3045 16.17C13.3642 16 13.3941 15.82 13.3941 15.63C13.3941 15.41 13.3543 15.21 13.3045 15.03C13.2547 14.85 13.1652 14.7 13.0557 14.58C12.9463 14.46 12.807 14.37 12.6477 14.3C12.4885 14.23 12.3094 14.2 12.1004 14.2C12.0308 14.2 11.9611 14.21 11.9014 14.22C11.8716 14.225 11.8417 14.2325 11.8119 14.24C11.782 14.2475 11.7522 14.255 11.7223 14.26C11.6626 14.27 11.6128 14.29 11.573 14.31C11.5564 14.3183 11.5398 14.325 11.5239 14.3313C11.5017 14.3401 11.481 14.3483 11.4636 14.36L11.573 13.44H13.2647V12.73H10.8864Z"})),T=e=>{let{serviceName:t,className:n}=e;const r={className:l()("jetpack-gutenberg-social-icon",`is-${t}`,n),size:24};switch(t){case"facebook":return(0,o.createElement)(i.Icon,a()({icon:g},r));case"twitter":return(0,o.createElement)(i.Icon,a()({icon:b},r));case"linkedin":return(0,o.createElement)(i.Icon,a()({icon:v},r));case"tumblr":return(0,o.createElement)(i.Icon,a()({icon:k},r));case"google":return(0,o.createElement)(i.Icon,a()({icon:y},r))}return null},P=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M0 0h24v24H0z",fill:"none"}),(0,o.createElement)(i.Path,{d:"M7 2v11h3v9l7-12h-4l4-8z",fill:"currentColor"}))},28938:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_active"],!1)}},63729:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_current_user_connected"],!1)}},47077:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_offline_mode"],!1)}},23539:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(98817),s=n(32673);const __=a.__,{Fill:l,Slot:c}=(0,o.createSlotFill)("JetpackLikesAndSharingPanel");(0,i.registerPlugin)("jetpack-likes-and-sharing-panel",{render:()=>(0,r.createElement)(c,null,(e=>e.length?(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Likes and Sharing","jetpack")},e)):null))})},32673:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(55609),o=n(72067),i=n(98817),s=n(9818),l=n(96483),c=n(47701),u=n.n(c),p=n(51591);const{Fill:d,Slot:m}=(0,a.createSlotFill)("JetpackPluginSidebar");u()((function(){"true"===(0,l.getQueryArg)(window.location.search,"jetpackSidebarIsOpen")&&(0,s.dispatch)("core/interface").enableComplementaryArea("core/edit-post","jetpack-sidebar/jetpack")})),(0,i.registerPlugin)("jetpack-sidebar",{render:()=>(0,r.createElement)(m,null,(e=>e.length?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PluginSidebarMoreMenuItem,{target:"jetpack",icon:(0,r.createElement)(p.IM,null)},"Jetpack"),(0,r.createElement)(o.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:(0,r.createElement)(p.IM,null)},e)):null))})},7616:function(e,t,n){"use strict";var r=n(86989),a=n.n(r),o=n(9818),i=n(65736),s=(n(53961),n(82827),n(4235)),l=n(58014);const __=i.__;function c(){const e=(0,s.Z)();return void 0!==typeof window&&window.location&&e?(0,l.Wp)()||(0,l.Ug)()?`https://wordpress.com/plans/my-plan/${e}`:`${window.location.protocol}//${e.replace("::","/")}/wp-admin/admin.php?page=jetpack#/my-plan`:null}(async()=>{if(void 0!==typeof window&&window.location){if(new URLSearchParams(window.location.search).get("plan_upgraded")){let e=null;e:try{if((0,l.Wp)())break e;const t=await a()({path:"/jetpack/v4/site"});e=JSON.parse(t.data).plan.product_name}finally{const t=c();(0,o.dispatch)("core/notices").createNotice("success",e?(0,i.sprintf)(
+/* translators: %s is the plan name, such as Jetpack Premium. */
+__("Congratulations! Your site is now on the %s plan.","jetpack"),e):__("Congratulations! Your site is now on a paid plan.","jetpack"),{isDismissible:!0,...t&&{actions:[{url:c(),label:__("View my plan","jetpack")}]}})}}}})()},44298:function(e,t,n){"use strict";n.d(t,{Qq:function(){return p},X1:function(){return d},Rl:function(){return m},FK:function(){return f},HD:function(){return g},m3:function(){return b}});var r=n(92819),a=n(96483),o=n(65736),i=n(47583),s=n(58014),l=n(4235),c=n(21409),u=n(28069);const __=o.__;function p(e){let{planSlug:t,plan:n,postId:o,postType:i}=e;const c=(0,r.startsWith)(t,"jetpack_")?t:(0,r.get)(n,["path_slug"]),u=(void 0===i?()=>{const e=new URLSearchParams(window.location.search);return(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/admin.php`,{page:"gutenberg-edit-site",postId:e.get("postId"),postType:e.get("postType"),plan_upgraded:1})}:()=>{const e=["page","post"].includes(i)?"":"edit";return(0,s.Wp)()?(0,a.addQueryArgs)("/"+(0,r.compact)([e,i,(0,l.Z)(),o]).join("/"),{plan_upgraded:1}):(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/post.php`,{action:"edit",post:o,plan_upgraded:1})})();return(0,s.Ug)()?(0,a.addQueryArgs)(`https://wordpress.com/plans/${(0,l.Z)()}`,{redirect_to:u,customerType:"business"}):c&&(0,a.addQueryArgs)(`https://wordpress.com/checkout/${(0,l.Z)()}/${c}`,{redirect_to:u})}function d(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{available:n,unavailableReason:r}=(0,c.Z)(t);return!n&&"missing_plan"===r}function m(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{details:n,unavailableReason:r}=(0,c.Z)(t);return(0,u._)(r,n)}const h=[{name:"core/cover",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"video",description:__("Upgrade your plan to use video covers","jetpack")},{name:"core/audio",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"audio",description:__("Upgrade your plan to upload audio","jetpack")}];function f(){return(0,r.get)((0,i.Z)(),"jetpack.enable_upgrade_nudge",!1)}const g=e=>(0,r.map)(h,"name").includes(e),b=e=>(0,r.head)((0,r.filter)(h,(t=>{let{name:n}=t;return n===e})))},99230:function(e,t,n){"use strict";n.d(t,{uM:function(){return i},yX:function(){return s},bu:function(){return l}});var r=n(86989),a=n.n(r),o=n(58014);async function i(){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins"})}catch(e){return Promise.reject(e.message)}}async function s(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins",method:"POST",data:{slug:e,status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}async function l(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:`/jetpack/v4/plugins/${e}`,method:"POST",data:{status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},28069:function(e,t,n){"use strict";n.d(t,{_:function(){return p},Z:function(){return h}});var r=n(65736),a=n(92694),o=n(4981),i=n(1949),s=n(21409),l=n(28137);const __=r.__,c={paid:(0,r._x)("paid","Short label appearing near a block requiring a paid plan","jetpack"),beta:__("beta","jetpack")},u=i.Kc||[];function p(e,t){return"missing_plan"===e&&t.required_plan}function d(e){const t=[];return u.includes(e)&&t.push(c.beta),t}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.length?`${e} (${t.join(", ")})`:e}function h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const{available:i,details:c,unavailableReason:u}=(0,s.Z)(e),h=p(u,c),f=r?"jetpack/":"";if(!i&&!h)return!1;const g=(0,o.registerBlockType)(f+e,{...t,title:m(t.title,d(e))});return h&&(0,a.addFilter)("editor.BlockListBlock",`${f+e}-with-has-warning-is-interactive-class-names`,(0,l.Z)(f+e)),n.forEach((e=>(0,o.registerBlockType)(f+e.name,e.settings))),g}},52291:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98817),a=n(21409);function o(e,t){const{available:n,unavailableReason:o}=(0,a.Z)(e);return!!n&&(0,r.registerPlugin)(`jetpack-${e}`,t)}},41632:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:24,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0 0 24 24";return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,viewBox:o},(0,r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},55637:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=(e,t,n,o,i)=>{const{isSelected:s}=t,l=t.attributes[e];return(0,r.createElement)("div",{className:s?`jetpack-${e}-block is-selected`:`jetpack-${e}-block`},!s&&""!==l&&o(t),(s||""===l)&&(0,r.createElement)(a.PlainText,{value:l,placeholder:n,"aria-label":n,onChange:i}))}},58014:function(e,t,n){"use strict";n.d(t,{Wp:function(){return i},Ug:function(){return s},M6:function(){return l}});var r=n(92819),a=n(47583);function o(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function i(){return"simple"===o()}function s(){return"atomic"===o()}function l(){return(0,r.get)((0,a.Z)(),["jetpack","is_private_site"],!1)}},92919:function(e,t,n){"use strict";var r=n(9818),a=n(65736),o=(n(53961),n(82827));const __=a.__;if(void 0!==typeof window&&window.location){const{query:e}=(0,o.Qc)(window.location.href,!0);e.stripe_connect_success?(0,r.dispatch)("core/notices").createNotice("success",__("Congrats! Your site is now connected to Stripe. You can now start accepting funds!","jetpack")):e.stripe_connect_cancelled&&(0,r.dispatch)("core/notices").createNotice("error",__("You cancelled connecting your site to Stripe.","jetpack"))}},87072:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(86989),o=n.n(a);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;return t(!0),new Promise(((n,r)=>{o()({path:`/wpcom/v2/resolve-redirect/?url=${encodeURIComponent(e)}`}).then((a=>{t(!1);const o=a.status?parseInt(a.status,10):null;o&&o>=400?r():n(a.url||e)}),(()=>{t(!1),r()}))}))}},37930:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),a=n(9818),o=n(69307);function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t&&t(e),n?window.open(e,"_blank"):window.top.location.href=e}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const[n,s]=(0,o.useState)(!1),{isAutosaveablePost:l,isDirtyPost:c,currentPost:u}=(0,a.useSelect)((e=>{const t=e("core/editor");return{isAutosaveablePost:t.isEditedPostAutosaveable(),isDirtyPost:t.isEditedPostDirty(),currentPost:t.getCurrentPost()}}),[]),p=Object.keys(u).length>0,d=(0,a.useSelect)((e=>!!window.wp.customize||!!e("core/edit-widgets"))),m=(0,a.dispatch)("core/editor").savePost,h=(0,a.useSelect)((e=>e("core").__experimentalGetDirtyEntityRecords())),f=async()=>{for(let e=0;e<h.length;e++)await(0,a.dispatch)("core").saveEditedEntityRecord(h[e].kind,h[e].name,h[e].key)},g=async e=>{e.preventDefault(),p?c&&l&&await m(e):await f(e)},b=async r=>{r.preventDefault(),n||(s(!0),g(r).then((()=>{i(e,t,d)})))};return{autosave:g,autosaveAndRedirect:b,isRedirecting:n}}},18733:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(92819),a=n(9818),o=n(92694),i=(n(13180),n(44298)),s=n(37930);const l="a8c.wpcom-block-editor.openCheckoutModal";function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const{checkoutUrl:n,planData:c}=(0,a.useSelect)((t=>{const n=t("core/editor"),r=t("wordpress-com/plans"),{id:a,type:o}=n.getCurrentPost(),s=r&&r.getPlan(e);return{checkoutUrl:(0,i.Qq)({plan:s,planSlug:e,postId:a,postType:o}),planData:s}}),[]),{autosave:u,autosaveAndRedirect:p,isRedirecting:d}=(0,s.Z)(n,t),m=async e=>{if(e.preventDefault(),(0,o.hasAction)(l))return e.preventDefault(),u(e),void(0,o.doAction)(l,{products:[c]});p(e)};return[n,m,d,c]}},33690:function(e,t,n){"use strict";n.d(t,{U:function(){return a}});var r=n(9818);const a=async()=>new Promise((e=>{const t=(0,r.subscribe)((()=>{(0,r.select)("core/editor").isCleanNewPost()&&(t(),e());(0,r.select)("core/editor").getBlocks().length>0&&(t(),e())}))}))},28137:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333);t.Z=e=>(0,i.createHigherOrderComponent)((t=>n=>(0,o.createElement)(t,a()({},n,{className:n.name===e?"has-warning is-interactive":n.className}))),"withHasWarningIsInteractiveClassNames")},15111:function(e,t,n){"use strict";n.d(t,{tT:function(){return r},Wp:function(){return a},Vy:function(){return o},_5:function(){return i}});const r="jetpack/media-source",a="is-playing",o="is-error",i="is-paused"},73617:function(e,t,n){"use strict";var r=n(9818),a=n(46169),o=n(15111);if(void 0!==r.createReduxStore){const e=(0,r.createReduxStore)(o.tT,a.Z);(0,r.register)(e)}else(0,r.registerStore)(o.tT,a.Z)},46169:function(e,t,n){"use strict";var r=n(15111);const a={sources:{},default:null},o={getDefaultMediaSource(e){let t=null;const n=Object.keys(e.sources);if(e.default?t=e.default:n?.length&&(t=e.sources[n[0]].id),t)return e.sources[t]},getMediaPlayerState:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.state,getMediaSourceCurrentTime:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.currentTime,getMediaSourceDuration(e,t){if(!t){return o.getDefaultMediaSource(e)?.duration}return e.sources?.[t]?.duration},getMediaSourceDomReference(e,t){const n=t?e.sources?.[t]:o.getDefaultMediaSource(e);if(!n)return;const r=n?.domId;return r?document.getElementById(r):void 0}},i={reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;const n=t.id||e.default||Object.keys(e.sources)?.[0];switch(t.type){case"REGISTER_MEDIA_SOURCE":return{...e,sources:{...e.sources,[t.id]:{id:t.id,...t.mediaSourceState}}};case"UPDATE_MEDIA_SOURCE_DATA":return{...e,sources:{...e.sources,[t.id]:{...e.sources[t.id],...t.data}}};case"UNREGISTER_MEDIA_SOURCE":{const n=Object.assign({},e);return n.sources[t.id]&&delete n.sources[t.id],t.id===e.default&&(n.default=Object.keys(e.sources)?.[0]),n}case"SET_DEFAULT_MEDIA_SOURCE":return{...e,default:t.id};case"SET_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:t.state}}};case"TOGGLE_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:e.sources[n].state===r.Wp?r._5:r.Wp}}};case"SET_MEDIA_PLAYER_CURRENT_TIME":return{...e,sources:{...e.sources,[n]:{...e.sources[n],currentTime:t.currentTime}}}}return e},actions:{registerMediaSource:(e,t)=>({type:"REGISTER_MEDIA_SOURCE",id:e,mediaSourceState:t}),updateMediaSourceData:(e,t)=>({type:"UPDATE_MEDIA_SOURCE_DATA",id:e,data:t}),unregisterMediaSource:e=>({type:"UNREGISTER_MEDIA_SOURCE",id:e}),setDefaultMediaSource:e=>({type:"SET_DEFAULT_MEDIA_SOURCE",id:e}),playMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Wp}),toggleMediaSource:e=>({type:"TOGGLE_MEDIA_PLAYER_STATE",id:e}),pauseMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r._5}),errorMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Vy}),setMediaSourceCurrentTime:(e,t)=>({type:"SET_MEDIA_PLAYER_CURRENT_TIME",id:e,currentTime:t})},selectors:o};t.Z=i},75139:function(e,t,n){"use strict";n.d(t,{M:function(){return r},X:function(){return a}});var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(e,t,n){"use strict";n.d(t,{ZP:function(){return i}});var r=n(52141),a=n(63807),o=n(75139);function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,o.X)(t);if(!i||isNaN(e))return null;var s=(0,r.Z)({},i,n),l=s.decimal,c=s.grouping,u=s.precision,p=s.symbol,d=e<0?"-":"",m=(0,a.Y4)(Math.abs(e),{decimals:u,thousandsSep:c,decPoint:l});return"".concat(d).concat(p).concat(m)}},94481:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99196),a=n(32365);function o(e,t){let n,a,i=[];for(let r=0;r<e.length;r++){const o=e[r];if("string"!==o.type){if(void 0===t[o.value])throw new Error(`Invalid interpolation, missing component node: \`${o.value}\``);if("object"!=typeof t[o.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${o.value}\``);if("componentClose"===o.type)throw new Error(`Missing opening component token: \`${o.value}\``);if("componentOpen"===o.type){n=t[o.value],a=r;break}i.push(t[o.value])}else i.push(o.value)}if(n){const s=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(a,e),l=o(e.slice(a+1,s),t),c=(0,r.cloneElement)(n,{},l);if(i.push(c),s<e.length-1){const n=o(e.slice(s+1),t);i=i.concat(n)}}return i=i.filter(Boolean),0===i.length?null:1===i.length?i[0]:(0,r.createElement)(r.Fragment,null,...i)}function i(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const i=(0,a.Z)(t);try{return o(i,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},32365:function(e,t,n){"use strict";function r(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function a(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(t,{Z:function(){return a}})},47236:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(2571);function o(e){(0,r.assign)(e,a.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},59177:function(e,t,n){"use strict";function r(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}(0,n(47236).Z)(r.prototype),r.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},r.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},r.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(e){}return!t},r.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},r.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t},t.Z=r},39151:function(e,t,n){"use strict";var r=n(59177);t.Z=function(e,t){var n,a=new r.Z;a.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+a.getScreenCenterSpecs(780,700)),a.once("close",(function(){var e={};n&&n.keyring_id&&(e.keyring_id=Number(n.keyring_id),e.id_token=n.id_token,e.user=n.user),t(e)})),a.on("message",(function(e){return n=e}))}},52489:function(e,t,n){"use strict";var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(11268),l=n.n(s),c=n(99196),u=n.n(c),p=n(92819),d=n(13639),m=(n(99889),function(e){return e&&e.replace(/^[^/]+[/]*/,"").replace(/\/.*$/,"")}),h=(0,d.SL)((0,d.hs)(80),(0,d.KB)(80)),f=(0,d.SL)((0,d.hs)(200),(0,d.KB)(200)),g=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.type,r=e.title,a=e.description,o=e.image,i=e.author;return u().createElement("div",{className:"facebook-preview facebook-preview__".concat(n)},u().createElement("div",{className:"facebook-preview__content"},u().createElement("div",{className:"facebook-preview__image"},o&&u().createElement("img",{alt:"Facebook Preview Thumbnail",src:o})),u().createElement("div",{className:"facebook-preview__body"},u().createElement("div",{className:"facebook-preview__url"},(0,p.compact)([m(t),i]).join(" | ")),u().createElement("div",{className:"facebook-preview__title"},h(r||"")),u().createElement("div",{className:"facebook-preview__description"},f((0,d.ju)(a))))))}}]),n}(c.PureComponent);g.propTypes={url:l().string,type:l().string,title:l().string,description:l().string,image:l().string,author:l().string},t.Z=g},13639:function(e,t,n){"use strict";n.d(t,{hs:function(){return a},I$:function(){return o},KB:function(){return i},SL:function(){return s},ju:function(){return l}});var r=n(92819),a=function(e){return function(t){return t.length<=e&&t}},o=function(e,t){return function(n){var r=n.slice(0,t),a=r.lastIndexOf(" ");return a>e&&a<t&&r.slice(0,a).concat("…")}},i=function(e){return function(t){return t.slice(0,e).concat("…")}},s=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return(0,r.find)(t,(function(t){return!1!==t(e)}))(e)}},l=function(e){return e?e.replace(/(<([^>]+)>)/gi,""):""}},80505:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(13639),l=(n(93474),160),c=(0,s.SL)((0,s.hs)(63),(0,s.I$)(23,73),(0,s.KB)(63)),u=(0,s.SL)((0,s.hs)(l),(0,s.I$)(80,170),(0,s.KB)(l));function p(e){var t=e.description,n=e.title,r=e.url;return i().createElement("div",{className:"search-preview"},i().createElement("div",{className:"search-preview__display"},i().createElement("div",{className:"search-preview__url"},function(e){var t=e.replace(/^[^/]+[/]*/,"").split("/").join(" › ");return(0,s.SL)((0,s.hs)(68),(0,s.KB)(68))(t)}(r)," ▾"),i().createElement("div",{className:"search-preview__title"},c(n)),i().createElement("div",{className:"search-preview__description"},u((0,s.ju)(t)))))}p.propTypes={title:a().string,url:a().string,description:a().string},p.defaultProps={title:"",url:"",description:""}},79465:function(e,t,n){"use strict";var r=n(40988),a=n(49058),o=n(45086),i=n(57275),s=n(45814),l=n(15746),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(82943),h=(n(33285),function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"render",value:function(){var e=this.props.tweets||[{text:"",media:[],card:(0,a.Z)((0,a.Z)({},this.props),{},{type:"large_image_summary"===this.props.type?"summary_large_image":this.props.type}),date:Date.now(),name:"Account Name",profileImage:"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:"@account"}];return d().createElement("div",{className:"twitter-preview"},e&&e.map((function(t,n){return d().createElement(m.t,(0,r.Z)({key:"twitter-preview__tweet-".concat(n),isLast:n+1===e.length},t))})))}}]),n}(p.PureComponent));h.propTypes={tweets:u().array},t.Z=h},82943:function(e,t,n){"use strict";n.d(t,{t:function(){return k}});var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(89105),l=n.n(s),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(76292),h=n.n(m),f=n(65736),g=n(55609),b=n(13639);n(33285);var __=f.__,v=(0,b.SL)((0,b.hs)(200),(0,b.KB)(200)),k=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"renderSidebar",value:function(e,t){return d().createElement("div",{className:"twitter-preview__sidebar"},d().createElement("div",{className:"twitter-preview__profile-image"},d().createElement("img",{alt:__("Twitter profile image","jetpack"),src:e})),!t&&d().createElement("div",{className:"twitter-preview__connector"}))}},{key:"renderHeader",value:function(e,t,n){return d().createElement("div",{className:"twitter-preview__header"},d().createElement("span",{className:"twitter-preview__name"},e),d().createElement("span",{className:"twitter-preview__screen-name"},t),d().createElement("span",{className:"twitter-preview__date"},h()(n).format("MMM D")))}},{key:"renderText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.url||"",a=e.endsWith(r)?e.substr(0,e.lastIndexOf(r)):e,o=t.reduce((function(e,t){return e.replace(new RegExp("\\("+t+"\\)","g"),'(<a href="'.concat(t,'">').concat(t,"</a>)"))}),(0,b.ju)(a).replace(new RegExp("\\n","g"),"<br/>"));return d().createElement("div",{className:"twitter-preview__text",dangerouslySetInnerHTML:{__html:o}})}},{key:"renderMedia",value:function(e){if(e){var t=e.filter((function(e){return e.type.startsWith("image/")||e.type.startsWith("video/")})).filter((function(e,t,n){return 0===t||!n[0].type.startsWith("video/")&&"image/gif"!==n[0].type&&(!e.type.startsWith("video/")&&"image/gif"!==e.type)})).slice(0,4),n=t.length>0&&t[0].type.startsWith("video/"),r=l()(["twitter-preview__media","twitter-preview__media-children-"+t.length]);if(0!==t.length)return d().createElement("div",{className:r},n&&t.map((function(e,t){return d().createElement("video",{key:"twitter-preview__media-item-".concat(t),controls:!0},d().createElement("source",{src:e.url,type:e.type})," ")})),!n&&t.map((function(e,t){return d().createElement("img",{key:"twitter-preview__media-item-".concat(t),alt:e.alt,src:e.url})})))}}},{key:"renderQuoteTweet",value:function(e){if(e)return d().createElement("div",{className:"twitter-preview__quote-tweet"},d().createElement(g.SandBox,{html:'<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><a href="'.concat(e,'"></a></blockquote>'),scripts:["https://platform.twitter.com/widgets.js"],title:"Embedded tweet",onFocus:this.hideOverlay}),d().createElement("div",{className:"twitter-preview__quote-tweet-overlay"}))}},{key:"renderCard",value:function(e){if(e){var t=e.description,n=e.image,r=e.title,a=e.type,o=e.url,i=l()("twitter-preview__card-".concat(a),{"twitter-preview__card-has-image":!!n});return d().createElement("div",{className:"twitter-preview__card"},d().createElement("div",{className:i},n&&d().createElement("img",{className:"twitter-preview__card-image",src:n,alt:""}),d().createElement("div",{className:"twitter-preview__card-body"},d().createElement("div",{className:"twitter-preview__card-title"},r),d().createElement("div",{className:"twitter-preview__card-description"},v((0,b.ju)(t))),d().createElement("div",{className:"twitter-preview__card-url"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("g",null,d().createElement("path",{d:"M11.96 14.945c-.067 0-.136-.01-.203-.027-1.13-.318-2.097-.986-2.795-1.932-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608c2.322-1.716 5.61-1.224 7.33 1.1.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094c-.333.246-.804.175-1.05-.158-.246-.334-.176-.804.158-1.05l1.48-1.095c.803-.592 1.327-1.463 1.476-2.45.148-.988-.098-1.975-.69-2.778-1.225-1.656-3.572-2.01-5.23-.784l-3.53 2.608c-.802.593-1.326 1.464-1.475 2.45-.15.99.097 1.975.69 2.778.498.675 1.187 1.15 1.992 1.377.4.114.633.528.52.928-.092.33-.394.547-.722.547z"}),d().createElement("path",{d:"M7.27 22.054c-1.61 0-3.197-.735-4.225-2.125-.832-1.127-1.176-2.51-.968-3.894s.943-2.605 2.07-3.438l1.478-1.094c.334-.245.805-.175 1.05.158s.177.804-.157 1.05l-1.48 1.095c-.803.593-1.326 1.464-1.475 2.45-.148.99.097 1.975.69 2.778 1.225 1.657 3.57 2.01 5.23.785l3.528-2.608c1.658-1.225 2.01-3.57.785-5.23-.498-.674-1.187-1.15-1.992-1.376-.4-.113-.633-.527-.52-.927.112-.4.528-.63.926-.522 1.13.318 2.096.986 2.794 1.932 1.717 2.324 1.224 5.612-1.1 7.33l-3.53 2.608c-.933.693-2.023 1.026-3.105 1.026z"}))),function(e){return e.replace(/^[^/]+[/]*(www\.)?/,"").replace(/\/.*$/,"")}(o||"")))))}}},{key:"renderFooter",value:function(){return d().createElement("div",{className:"twitter-preview__footer"},d().createElement("span",{className:"twitter-preview__icon-replies"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828c0 .108.044.286.12.403.142.225.384.347.632.347.138 0 .277-.038.402-.118.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67c0-.414-.335-.75-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"}))),d().createElement("span",{className:"twitter-preview__icon-retweets"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M23.77 15.67c-.292-.293-.767-.293-1.06 0l-2.22 2.22V7.65c0-2.068-1.683-3.75-3.75-3.75h-5.85c-.414 0-.75.336-.75.75s.336.75.75.75h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22c-.293-.293-.768-.293-1.06 0s-.294.768 0 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5c.294-.292.294-.767 0-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22c.148.147.34.22.532.22s.384-.073.53-.22c.293-.293.293-.768 0-1.06l-3.5-3.5c-.293-.294-.768-.294-1.06 0l-3.5 3.5c-.294.292-.294.767 0 1.06s.767.293 1.06 0l2.22-2.22V16.7c0 2.068 1.683 3.75 3.75 3.75h5.85c.414 0 .75-.336.75-.75s-.337-.75-.75-.75z"}))),d().createElement("span",{className:"twitter-preview__icon-likes"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"}))),d().createElement("span",{className:"twitter-preview__icon-share"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M17.53 7.47l-5-5c-.293-.293-.768-.293-1.06 0l-5 5c-.294.293-.294.768 0 1.06s.767.294 1.06 0l3.72-3.72V15c0 .414.336.75.75.75s.75-.336.75-.75V4.81l3.72 3.72c.146.147.338.22.53.22s.384-.072.53-.22c.293-.293.293-.767 0-1.06z"}),d().createElement("path",{d:"M19.708 21.944H4.292C3.028 21.944 2 20.916 2 19.652V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 .437.355.792.792.792h15.416c.437 0 .792-.355.792-.792V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 1.264-1.028 2.292-2.292 2.292z"}))))}},{key:"render",value:function(){var e=this.props,t=e.isLast,n=e.profileImage,r=e.name,a=e.screenName,o=e.date,i=e.text,s=e.media,l=e.tweet,c=e.urls,u=e.card;return d().createElement("div",{className:"twitter-preview__container"},this.renderSidebar(n,t),d().createElement("div",{className:"twitter-preview__main"},this.renderHeader(r,a,o),d().createElement("div",{className:"twitter-preview__content"},this.renderText(i,c,u),this.renderMedia(s),this.renderQuoteTweet(l),this.renderCard(u)),this.renderFooter()))}}]),n}(p.PureComponent);k.propTypes={tweets:u().array,isLast:u().bool,profileImage:u().string,name:u().string,screenName:u().string,date:u().number,text:u().string,media:u().array,tweet:u().string,urls:u().array,card:u().object}},48468:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(83712)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},83712:function(e,t,n){e.exports=function(e){function t(e){let n,a=null;function o(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!o.enabled)return;const i=o,s=Number(new Date),l=s-(n||s);i.diff=l,i.prev=n,i.curr=s,n=s,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(i,t),r.splice(c,1),c--}return e})),t.formatArgs.call(i,r);const u=i.log||t.log;u.apply(i,r)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===a?t.enabled(e):a,set:e=>{a=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},90922:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(31967)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){e.exports=function(e){function t(e){let n,a,o,i=null;function s(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!s.enabled)return;const o=s,i=Number(new Date),l=i-(n||i);o.diff=l,o.prev=n,o.curr=i,n=i,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(o,t),r.splice(c,1),c--}return e})),t.formatArgs.call(o,r);const u=o.log||t.log;u.apply(o,r)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(a!==t.namespaces&&(a=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},48735:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.size,n=void 0===t?24:t,a=e.onClick,o=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-fullscreen",o,!1,!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:l,height:n,width:n,onClick:a},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M21 3v6h-2V6.41l-3.29 3.3-1.42-1.42L17.59 5H15V3zM3 3v6h2V6.41l3.29 3.3 1.42-1.42L6.41 5H9V3zm18 18v-6h-2v2.59l-3.29-3.29-1.41 1.41L17.59 19H15v2zM9 21v-2H6.41l3.29-3.29-1.41-1.42L5 17.59V15H3v6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},20651:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-notice-outline",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},35381:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-star",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.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"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},7104:function(e,t,n){var r;e=n.nmd(e),function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof window&&window;o.global!==o&&o.window!==o&&o.self;var i,s=2147483647,l=36,c=/^xn--/,u=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,h=String.fromCharCode;function f(e){throw RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(p,".")).split("."),t).join(".")}function v(e){for(var t,n,r=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function k(e){return g(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function E(e,t,n){var r=0;for(e=n?m(e/700):e>>1,e+=m(e/t);e>455;r+=l)e=m(e/35);return m(r+36*e/(e+38))}function w(e){var t,n,r,a,o,i,c,u,p,d,h,g=[],b=e.length,v=0,y=128,w=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&f("not-basic"),g.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(o=v,i=1,c=l;a>=b&&f("invalid-input"),((u=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||u>m((s-v)/i))&&f("overflow"),v+=u*i,!(u<(p=c<=w?1:c>=w+26?26:c-w));c+=l)i>m(s/(d=l-p))&&f("overflow"),i*=d;w=E(v-o,t=g.length+1,0==o),m(v/t)>s-y&&f("overflow"),y+=m(v/t),v%=t,g.splice(v++,0,y)}return k(g)}function _(e){var t,n,r,a,o,i,c,u,p,d,g,b,k,w,_,C=[];for(b=(e=v(e)).length,t=128,n=0,o=72,i=0;i<b;++i)(g=e[i])<128&&C.push(h(g));for(r=a=C.length,a&&C.push("-");r<b;){for(c=s,i=0;i<b;++i)(g=e[i])>=t&&g<c&&(c=g);for(c-t>m((s-n)/(k=r+1))&&f("overflow"),n+=(c-t)*k,t=c,i=0;i<b;++i)if((g=e[i])<t&&++n>s&&f("overflow"),g==t){for(u=n,p=l;!(u<(d=p<=o?1:p>=o+26?26:p-o));p+=l)_=u-d,w=l-d,C.push(h(y(d+_%w,0))),u=m(_/w);C.push(h(y(u,0))),o=E(n,k,r==a),n=0,++r}++n,++t}return C.join("")}i={version:"1.3.2",ucs2:{decode:v,encode:k},decode:w,encode:_,toASCII:function(e){return b(e,(function(e){return u.test(e)?"xn--"+_(e):e}))},toUnicode:function(e){return b(e,(function(e){return c.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},15661:function(e,t,n){"use strict";n.r(t),n.d(t,{ucs2decode:function(){return m},ucs2encode:function(){return h},decode:function(){return b},encode:function(){return v},toASCII:function(){return y},toUnicode:function(){return k}});const r=2147483647,a=36,o=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function p(e){throw new RangeError(l[e])}function d(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){const t=[];let n=0;const r=e.length;for(;n<r;){const a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&a)<<10)+(1023&r)+65536):(t.push(a),n--)}else t.push(a)}return t}const h=e=>String.fromCodePoint(...e),f=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){let r=0;for(e=n?c(e/700):e>>1,e+=c(e/t);e>455;r+=a)e=c(e/35);return c(r+36*e/(e+38))},b=function(e){const t=[],n=e.length;let o=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let n=0;n<l;++n)e.charCodeAt(n)>=128&&p("not-basic"),t.push(e.charCodeAt(n));for(let d=l>0?l+1:0;d<n;){let l=o;for(let t=1,i=a;;i+=a){d>=n&&p("invalid-input");const l=(u=e.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:a;(l>=a||l>c((r-o)/t))&&p("overflow"),o+=l*t;const m=i<=s?1:i>=s+26?26:i-s;if(l<m)break;const h=a-m;t>c(r/h)&&p("overflow"),t*=h}const m=t.length+1;s=g(o-l,m,0==l),c(o/m)>r-i&&p("overflow"),i+=c(o/m),o%=m,t.splice(o++,0,i)}var u;return String.fromCodePoint(...t)},v=function(e){const t=[];let n=(e=m(e)).length,o=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let l=t.length,d=l;for(l&&t.push("-");d<n;){let n=r;for(const t of e)t>=o&&t<n&&(n=t);const m=d+1;n-o>c((r-i)/m)&&p("overflow"),i+=(n-o)*m,o=n;for(const n of e)if(n<o&&++i>r&&p("overflow"),n==o){let e=i;for(let n=a;;n+=a){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const o=e-r,i=a-r;t.push(u(f(r+o%i,0))),e=c(o/i)}t.push(u(f(e,0))),s=g(i,m,d==l),i=0,++d}++i,++o}return t.join("")},k=function(e){return d(e,(function(e){return o.test(e)?b(e.slice(4).toLowerCase()):e}))},y=function(e){return d(e,(function(e){return i.test(e)?"xn--"+v(e):e}))},E={version:"2.1.0",ucs2:{decode:m,encode:h},decode:b,encode:v,toASCII:y,toUnicode:k};t.default=E},5157:function(e,t,n){"use strict";const r=n(55778),a=n(97115),o=n(63851),i=n(95946);function s(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?a(e):e}function u(e){return Array.isArray(e)?e.sort():"object"==typeof e?u(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function p(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=p(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function m(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const a="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!a&&c(n,e).includes(e.arrayFormatSeparator);n=o?c(n,e):n;const i=a||o?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const a=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!a)return void(r[t]=n?c(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const a of e.split("&")){if(""===a)continue;let[e,i]=o(t.decode?a.replace(/\+/g," "):a,"=");i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:c(i,t),n(c(e,t),i,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=m(n[e],t);else r[e]=m(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=u(n):e[t]=n,e}),Object.create(null))}t.extract=d,t.parse=h,t.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const a=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",a,"]"].join("")]:[...n,[l(t,e),"[",l(a,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,a)=>void 0===a||e.skipNull&&null===a||e.skipEmptyString&&""===a?r:(a=null===a?"":a,0===r.length?[[l(n,e),t,l(a,e)].join("")]:[[r,l(a,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),a={};for(const t of Object.keys(e))n(t)||(a[t]=e[t]);const o=Object.keys(a);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const a=e[n];return void 0===a?"":null===a?l(n,t):Array.isArray(a)?0===a.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":a.reduce(r(n),[]).join("&"):l(n,t)+"="+l(a,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:h(d(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0},n);const r=p(e.url).split("?")[0]||"",a=t.extract(e.url),o=t.parse(a,{sort:!1}),i=Object.assign(o,e.query);let s=t.stringify(i,n);s&&(s=`?${s}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${l(e.fragmentIdentifier,n)}`),`${r}${s}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0},r);const{url:a,query:o,fragmentIdentifier:s}=t.parseUrl(e,r);return t.stringifyUrl({url:a,query:i(o,n),fragmentIdentifier:s},r)},t.exclude=(e,n,r)=>{const a=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,a,r)}},63851:function(e){"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},55778:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},55066:function(e,t,n){var r;!function(a){var o=/^\s+/,i=/\s+$/,s=0,l=a.round,c=a.min,u=a.max,p=a.random;function d(e,t){if(t=t||{},(e=e||"")instanceof d)return e;if(!(this instanceof d))return new d(e,t);var n=function(e){var t={r:0,g:0,b:0},n=1,r=null,s=null,l=null,p=!1,d=!1;"string"==typeof e&&(e=function(e){e=e.replace(o,"").replace(i,"").toLowerCase();var t,n=!1;if(N[e])e=N[e],n=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(t=$.rgb.exec(e))return{r:t[1],g:t[2],b:t[3]};if(t=$.rgba.exec(e))return{r:t[1],g:t[2],b:t[3],a:t[4]};if(t=$.hsl.exec(e))return{h:t[1],s:t[2],l:t[3]};if(t=$.hsla.exec(e))return{h:t[1],s:t[2],l:t[3],a:t[4]};if(t=$.hsv.exec(e))return{h:t[1],s:t[2],v:t[3]};if(t=$.hsva.exec(e))return{h:t[1],s:t[2],v:t[3],a:t[4]};if(t=$.hex8.exec(e))return{r:R(t[1]),g:R(t[2]),b:R(t[3]),a:D(t[4]),format:n?"name":"hex8"};if(t=$.hex6.exec(e))return{r:R(t[1]),g:R(t[2]),b:R(t[3]),format:n?"name":"hex"};if(t=$.hex4.exec(e))return{r:R(t[1]+""+t[1]),g:R(t[2]+""+t[2]),b:R(t[3]+""+t[3]),a:D(t[4]+""+t[4]),format:n?"name":"hex8"};if(t=$.hex3.exec(e))return{r:R(t[1]+""+t[1]),g:R(t[2]+""+t[2]),b:R(t[3]+""+t[3]),format:n?"name":"hex"};return!1}(e));"object"==typeof e&&(V(e.r)&&V(e.g)&&V(e.b)?(m=e.r,h=e.g,f=e.b,t={r:255*B(m,255),g:255*B(h,255),b:255*B(f,255)},p=!0,d="%"===String(e.r).substr(-1)?"prgb":"rgb"):V(e.h)&&V(e.s)&&V(e.v)?(r=Z(e.s),s=Z(e.v),t=function(e,t,n){e=6*B(e,360),t=B(t,100),n=B(n,100);var r=a.floor(e),o=e-r,i=n*(1-t),s=n*(1-o*t),l=n*(1-(1-o)*t),c=r%6;return{r:255*[n,s,i,i,l,n][c],g:255*[l,n,n,s,i,i][c],b:255*[i,i,l,n,n,s][c]}}(e.h,r,s),p=!0,d="hsv"):V(e.h)&&V(e.s)&&V(e.l)&&(r=Z(e.s),l=Z(e.l),t=function(e,t,n){var r,a,o;function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}if(e=B(e,360),t=B(t,100),n=B(n,100),0===t)r=a=o=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=i(l,s,e+1/3),a=i(l,s,e),o=i(l,s,e-1/3)}return{r:255*r,g:255*a,b:255*o}}(e.h,r,l),p=!0,d="hsl"),e.hasOwnProperty("a")&&(n=e.a));var m,h,f;return n=I(n),{ok:p,format:e.format||d,r:c(255,u(t.r,0)),g:c(255,u(t.g,0)),b:c(255,u(t.b,0)),a:n}}(e);this._originalInput=e,this._r=n.r,this._g=n.g,this._b=n.b,this._a=n.a,this._roundA=l(100*this._a)/100,this._format=t.format||n.format,this._gradientType=t.gradientType,this._r<1&&(this._r=l(this._r)),this._g<1&&(this._g=l(this._g)),this._b<1&&(this._b=l(this._b)),this._ok=n.ok,this._tc_id=s++}function m(e,t,n){e=B(e,255),t=B(t,255),n=B(n,255);var r,a,o=u(e,t,n),i=c(e,t,n),s=(o+i)/2;if(o==i)r=a=0;else{var l=o-i;switch(a=s>.5?l/(2-o-i):l/(o+i),o){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,l:s}}function h(e,t,n){e=B(e,255),t=B(t,255),n=B(n,255);var r,a,o=u(e,t,n),i=c(e,t,n),s=o,l=o-i;if(a=0===o?0:l/o,o==i)r=0;else{switch(o){case e:r=(t-n)/l+(t<n?6:0);break;case t:r=(n-e)/l+2;break;case n:r=(e-t)/l+4}r/=6}return{h:r,s:a,v:s}}function f(e,t,n,r){var a=[L(l(e).toString(16)),L(l(t).toString(16)),L(l(n).toString(16))];return r&&a[0].charAt(0)==a[0].charAt(1)&&a[1].charAt(0)==a[1].charAt(1)&&a[2].charAt(0)==a[2].charAt(1)?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function g(e,t,n,r){return[L(F(r)),L(l(e).toString(16)),L(l(t).toString(16)),L(l(n).toString(16))].join("")}function b(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.s-=t/100,n.s=M(n.s),d(n)}function v(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.s+=t/100,n.s=M(n.s),d(n)}function k(e){return d(e).desaturate(100)}function y(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.l+=t/100,n.l=M(n.l),d(n)}function E(e,t){t=0===t?0:t||10;var n=d(e).toRgb();return n.r=u(0,c(255,n.r-l(-t/100*255))),n.g=u(0,c(255,n.g-l(-t/100*255))),n.b=u(0,c(255,n.b-l(-t/100*255))),d(n)}function w(e,t){t=0===t?0:t||10;var n=d(e).toHsl();return n.l-=t/100,n.l=M(n.l),d(n)}function _(e,t){var n=d(e).toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,d(n)}function C(e){var t=d(e).toHsl();return t.h=(t.h+180)%360,d(t)}function j(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+120)%360,s:t.s,l:t.l}),d({h:(n+240)%360,s:t.s,l:t.l})]}function S(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+90)%360,s:t.s,l:t.l}),d({h:(n+180)%360,s:t.s,l:t.l}),d({h:(n+270)%360,s:t.s,l:t.l})]}function x(e){var t=d(e).toHsl(),n=t.h;return[d(e),d({h:(n+72)%360,s:t.s,l:t.l}),d({h:(n+216)%360,s:t.s,l:t.l})]}function T(e,t,n){t=t||6,n=n||30;var r=d(e).toHsl(),a=360/n,o=[d(e)];for(r.h=(r.h-(a*t>>1)+720)%360;--t;)r.h=(r.h+a)%360,o.push(d(r));return o}function P(e,t){t=t||6;for(var n=d(e).toHsv(),r=n.h,a=n.s,o=n.v,i=[],s=1/t;t--;)i.push(d({h:r,s:a,v:o})),o=(o+s)%1;return i}d.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,n,r=this.toRgb();return e=r.r/255,t=r.g/255,n=r.b/255,.2126*(e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:a.pow((n+.055)/1.055,2.4))},setAlpha:function(e){return this._a=I(e),this._roundA=l(100*this._a)/100,this},toHsv:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=h(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+r+"%)":"hsva("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var e=m(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=m(this._r,this._g,this._b),t=l(360*e.h),n=l(100*e.s),r=l(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+r+"%)":"hsla("+t+", "+n+"%, "+r+"%, "+this._roundA+")"},toHex:function(e){return f(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,n,r,a){var o=[L(l(e).toString(16)),L(l(t).toString(16)),L(l(n).toString(16)),L(F(r))];if(a&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:l(this._r),g:l(this._g),b:l(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+l(this._r)+", "+l(this._g)+", "+l(this._b)+")":"rgba("+l(this._r)+", "+l(this._g)+", "+l(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:l(100*B(this._r,255))+"%",g:l(100*B(this._g,255))+"%",b:l(100*B(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+l(100*B(this._r,255))+"%, "+l(100*B(this._g,255))+"%, "+l(100*B(this._b,255))+"%)":"rgba("+l(100*B(this._r,255))+"%, "+l(100*B(this._g,255))+"%, "+l(100*B(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(A[f(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+g(this._r,this._g,this._b,this._a),n=t,r=this._gradientType?"GradientType = 1, ":"";if(e){var a=d(e);n="#"+g(a._r,a._g,a._b,a._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+t+",endColorstr="+n+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return d(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(y,arguments)},brighten:function(){return this._applyModification(E,arguments)},darken:function(){return this._applyModification(w,arguments)},desaturate:function(){return this._applyModification(b,arguments)},saturate:function(){return this._applyModification(v,arguments)},greyscale:function(){return this._applyModification(k,arguments)},spin:function(){return this._applyModification(_,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(T,arguments)},complement:function(){return this._applyCombination(C,arguments)},monochromatic:function(){return this._applyCombination(P,arguments)},splitcomplement:function(){return this._applyCombination(x,arguments)},triad:function(){return this._applyCombination(j,arguments)},tetrad:function(){return this._applyCombination(S,arguments)}},d.fromRatio=function(e,t){if("object"==typeof e){var n={};for(var r in e)e.hasOwnProperty(r)&&(n[r]="a"===r?e[r]:Z(e[r]));e=n}return d(e,t)},d.equals=function(e,t){return!(!e||!t)&&d(e).toRgbString()==d(t).toRgbString()},d.random=function(){return d.fromRatio({r:p(),g:p(),b:p()})},d.mix=function(e,t,n){n=0===n?0:n||50;var r=d(e).toRgb(),a=d(t).toRgb(),o=n/100;return d({r:(a.r-r.r)*o+r.r,g:(a.g-r.g)*o+r.g,b:(a.b-r.b)*o+r.b,a:(a.a-r.a)*o+r.a})},d.readability=function(e,t){var n=d(e),r=d(t);return(a.max(n.getLuminance(),r.getLuminance())+.05)/(a.min(n.getLuminance(),r.getLuminance())+.05)},d.isReadable=function(e,t,n){var r,a,o=d.readability(e,t);switch(a=!1,(r=function(e){var t,n;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==n&&"large"!==n&&(n="small");return{level:t,size:n}}(n)).level+r.size){case"AAsmall":case"AAAlarge":a=o>=4.5;break;case"AAlarge":a=o>=3;break;case"AAAsmall":a=o>=7}return a},d.mostReadable=function(e,t,n){var r,a,o,i,s=null,l=0;a=(n=n||{}).includeFallbackColors,o=n.level,i=n.size;for(var c=0;c<t.length;c++)(r=d.readability(e,t[c]))>l&&(l=r,s=d(t[c]));return d.isReadable(e,s,{level:o,size:i})||!a?s:(n.includeFallbackColors=!1,d.mostReadable(e,["#fff","#000"],n))};var N=d.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},A=d.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(N);function I(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function B(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var n=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=c(t,u(0,parseFloat(e))),n&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function M(e){return c(1,u(0,e))}function R(e){return parseInt(e,16)}function L(e){return 1==e.length?"0"+e:""+e}function Z(e){return e<=1&&(e=100*e+"%"),e}function F(e){return a.round(255*parseFloat(e)).toString(16)}function D(e){return R(e)/255}var O,z,U,$=(z="[\\s|\\(]+("+(O="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+O+")[,|\\s]+("+O+")\\s*\\)?",U="[\\s|\\(]+("+O+")[,|\\s]+("+O+")[,|\\s]+("+O+")[,|\\s]+("+O+")\\s*\\)?",{CSS_UNIT:new RegExp(O),rgb:new RegExp("rgb"+z),rgba:new RegExp("rgba"+U),hsl:new RegExp("hsl"+z),hsla:new RegExp("hsla"+U),hsv:new RegExp("hsv"+z),hsva:new RegExp("hsva"+U),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function V(e){return!!$.CSS_UNIT.exec(e)}e.exports?e.exports=d:void 0===(r=function(){return d}.call(t,n,t,e))||(e.exports=r)}(Math)},84080:function(e){e.exports=/[\0-\x1F\x7F-\x9F]/},75423:function(e){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},87696:function(e){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},76202:function(e){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},39126:function(e,t,n){"use strict";t.Any=n(26285),t.Cc=n(84080),t.Cf=n(75423),t.P=n(87696),t.Z=n(76202)},26285:function(e){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},86841:function(){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set&&"function"==typeof t.prototype.entries}catch(e){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var o=e[r];if("[object Array]"!==Object.prototype.toString.call(o)&&2===o.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(o[0],o[1])}else for(var i in e)e.hasOwnProperty(i)&&this.append(i,e[i])}},o=a.prototype;o.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},o.delete=function(e){delete this._entries[e]},o.get=function(e){return e in this._entries?this._entries[e][0]:null},o.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},o.has=function(e){return e in this._entries},o.set=function(e,t){this._entries[e]=[String(t)]},o.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},o.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},o.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},o.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(o[Symbol.iterator]=o.entries),o.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var o=e.URLSearchParams.prototype;"function"!=typeof o.sort&&(o.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof o._fromString&&Object.defineProperty(o,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,o=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<o.length;n++)r=o[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c d","http://a/c%20d"===t.href&&t.searchParams}catch(e){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t)),n&&"string"!=typeof n&&(n=String(n));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){n=n.toLowerCase(),(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(e){throw new Error("URL unable to set base "+n+" due to "+e)}}var o=a.createElement("a");o.href=t,r&&(a.body.appendChild(o),o.href=o.href);var i=a.createElement("input");if(i.type="url",i.value=t,":"===o.protocol||!/:/.test(o.href)||!i.checkValidity()&&!n)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:o});var s=new e.URLSearchParams(this.search),l=!0,c=!0,u=this;["append","delete","set"].forEach((function(e){var t=s[e];s[e]=function(){t.apply(s,arguments),l&&(c=!1,u.search=s.toString(),c=!0)}})),Object.defineProperty(this,"searchParams",{value:s,enumerable:!0});var p=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==p&&(p=this.search,c&&(l=!1,this.searchParams._fromString(this.search),l=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},82827:function(e,t,n){"use strict";var r=n(7104),a=n(68070);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.Qc=k,t.WU=function(e){a.isString(e)&&(e=k(e));return e instanceof o?e.format():o.prototype.format.call(e)};var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(76250);function k(e,t,n){if(e&&a.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var k=e=c.join(s);if(k=k.trim(),!n&&1===e.split("#").length){var y=l.exec(k);if(y)return this.path=k,this.href=k,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var E=i.exec(k);if(E){var w=(E=E[0]).toLowerCase();this.protocol=w,k=k.substr(E.length)}if(n||E||k.match(/^\/\/[^@\/]+@[^@\/]+/)){var _="//"===k.substr(0,2);!_||E&&g[E]||(k=k.substr(2),this.slashes=!0)}if(!g[E]&&(_||E&&!b[E])){for(var C,j,S=-1,x=0;x<d.length;x++){-1!==(T=k.indexOf(d[x]))&&(-1===S||T<S)&&(S=T)}-1!==(j=-1===S?k.lastIndexOf("@"):k.lastIndexOf("@",S))&&(C=k.slice(0,j),k=k.slice(j+1),this.auth=decodeURIComponent(C)),S=-1;for(x=0;x<p.length;x++){var T;-1!==(T=k.indexOf(p[x]))&&(-1===S||T<S)&&(S=T)}-1===S&&(S=k.length),this.host=k.slice(0,S),k=k.slice(S),this.parseHost(),this.hostname=this.hostname||"";var P="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!P)for(var N=this.hostname.split(/\./),A=(x=0,N.length);x<A;x++){var I=N[x];if(I&&!I.match(m)){for(var B="",M=0,R=I.length;M<R;M++)I.charCodeAt(M)>127?B+="x":B+=I[M];if(!B.match(m)){var L=N.slice(0,x),Z=N.slice(x+1),F=I.match(h);F&&(L.push(F[1]),Z.unshift(F[2])),Z.length&&(k="/"+Z.join(".")+k),this.hostname=L.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),P||(this.hostname=r.toASCII(this.hostname));var D=this.port?":"+this.port:"",O=this.hostname||"";this.host=O+D,this.href+=this.host,P&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==k[0]&&(k="/"+k))}if(!f[w])for(x=0,A=u.length;x<A;x++){var z=u[x];if(-1!==k.indexOf(z)){var U=encodeURIComponent(z);U===z&&(U=escape(z)),k=k.split(z).join(U)}}var $=k.indexOf("#");-1!==$&&(this.hash=k.substr($),k=k.slice(0,$));var V=k.indexOf("?");if(-1!==V?(this.search=k.substr(V),this.query=k.substr(V+1),t&&(this.query=v.parse(this.query)),k=k.slice(0,V)):t&&(this.search="",this.query={}),k&&(this.pathname=k),b[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){D=this.pathname||"";var G=this.search||"";this.path=D+G}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(i=v.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||b[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},o.prototype.resolve=function(e){return this.resolveObject(k(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(a.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(n[u]=e[u])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!b[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var m=p[d];n[m]=e[m]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),n.pathname=h.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var k=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=y||k||n.host&&e.pathname,w=E,_=n.pathname&&n.pathname.split("/")||[],C=(h=e.pathname&&e.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),E=E&&(""===h[0]||""===_[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,_=h;else if(h.length)_||(_=[]),_.pop(),_=_.concat(h),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(C)n.hostname=n.host=_.shift(),(P=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=P.shift(),n.host=n.hostname=P.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var j=_.slice(-1)[0],S=(n.host||e.host||_.length>1)&&("."===j||".."===j)||""===j,x=0,T=_.length;T>=0;T--)"."===(j=_[T])?_.splice(T,1):".."===j?(_.splice(T,1),x++):x&&(_.splice(T,1),x--);if(!E&&!w)for(;x--;x)_.unshift("..");!E||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),S&&"/"!==_.join("/").substr(-1)&&_.push("");var P,N=""===_[0]||_[0]&&"/"===_[0].charAt(0);C&&(n.hostname=n.host=N?"":_.length?_.shift():"",(P=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=P.shift(),n.host=n.hostname=P.shift()));return(E=E||n.host&&_.length)&&!N&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},68070:function(e){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},11043:function(e,t,n){"use strict";var r=n(1625),a=n(99196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,o=a.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=o[0];var i=o[1];return o=e.value,e.getCurrentValue===t&&e.subscribe===n||(o=t(),i({getCurrentValue:t,subscribe:n,value:o})),a.useDebugValue(o),a.useEffect((function(){function e(){if(!a){var e=t();i((function(a){return a.getCurrentValue!==t||a.subscribe!==n||a.value===e?a:r({},a,{value:e})}))}}var a=!1,o=n(e);return e(),function(){a=!0,o()}}),[t,n]),o}},20036:function(e,t,n){"use strict";e.exports=n(11043)},61521:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},22199:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,a=arguments.length;n<a;n++)t.push(arguments[n]);return t}function a(e,t,n){var r=t===e.head?new s(n,null,t,e):new s(n,t,t.next,e);return null===r.next&&(e.tail=r),null===r.prev&&(e.head=r),e.length++,r}function o(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function i(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,n,r){if(!(this instanceof s))return new s(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}e.exports=r,r.Node=s,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},r.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},r.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},r.prototype.forEach=function(e,t){t=t||this;for(var n=this.head,r=0;null!==n;r++)e.call(t,n.value,r,this),n=n.next},r.prototype.forEachReverse=function(e,t){t=t||this;for(var n=this.tail,r=this.length-1;null!==n;r--)e.call(t,n.value,r,this),n=n.prev},r.prototype.get=function(e){for(var t=0,n=this.head;null!==n&&t<e;t++)n=n.next;if(t===e&&null!==n)return n.value},r.prototype.getReverse=function(e){for(var t=0,n=this.tail;null!==n&&t<e;t++)n=n.prev;if(t===e&&null!==n)return n.value},r.prototype.map=function(e,t){t=t||this;for(var n=new r,a=this.head;null!==a;)n.push(e.call(t,a.value,this)),a=a.next;return n},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r,a=this.tail;null!==a;)n.push(e.call(t,a.value,this)),a=a.prev;return n},r.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var a=0;null!==r;a++)n=e(n,r.value,a),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var a=this.length-1;null!==r;a--)n=e(n,r.value,a),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=0,o=this.head;null!==o&&a<e;a++)o=o.next;for(;null!==o&&a<t;a++,o=o.next)n.push(o.value);return n},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=this.length,o=this.tail;null!==o&&a>t;a--)o=o.prev;for(;null!==o&&a>e;a--,o=o.prev)n.push(o.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,o=this.head;null!==o&&r<e;r++)o=o.next;var i=[];for(r=0;o&&r<t;r++)i.push(o.value),o=this.removeNode(o);null===o&&(o=this.tail),o!==this.head&&o!==this.tail&&(o=o.prev);for(r=0;r<n.length;r++)o=a(this,o,n[r]);return i},r.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;null!==n;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};try{n(61521)(r)}catch(e){}},8964:function(e,t,n){"use strict";e.exports=n.p+"images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png"},90767:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-after-d6db862c442c24ad1c63.png"},58632:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-before-4592b4656108c1429614.png"},96406:function(e,t,n){"use strict";e.exports=n.p+"images/map-preview-97bda80ebb6981457630.jpg"},45107:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg"},56932:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_default-b53ccdf170e5ac873ff0.jpg"},65765:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_satellite-cc50c608e244f90d18dc.jpg"},34140:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_terrain-ac291441b3461820747d.jpg"},23879:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-2x-3d5d36867a0f3728cc3a.png"},22323:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-5ecd2d5421d74f39e027.png"},60206:function(e,t,n){"use strict";e.exports=n.p+"images/simple-payments_example-1-0273eeccd8d120df4984.jpg"},65784:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-1-07a3f164621235df0419.jpg"},6425:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-2-2ee401e47066229bdac5.jpg"},85983:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-3-0682afca66c485f17ff6.jpg"},37447:function(e,t,n){"use strict";e.exports=n.p+"images/upgrade-illustration-5b3059f7101ac37f4339.svg"},15915:function(e,t,n){"use strict";e.exports=n.p+"images/story_example-1-716db2e4f5a074d302f7.png"},96606:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg"},85472:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg"},79009:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-3-07a3f164621235df0419.jpg"},10742:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg"},52642:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg"},41145:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg"},41194:function(e,t,n){"use strict";e.exports=n.p+"images/videopress-block-example-image-da9ef73787adca8896f2.jpg"},80405:function(e,t,n){"use strict";e.exports=n.p+"images/example_160x600-ccbc594f54431dafa70d.png"},72473:function(e,t,n){"use strict";e.exports=n.p+"images/example_300x250-5b93e8174f02d48c40b7.png"},38511:function(e,t,n){"use strict";e.exports=n.p+"images/example_320x50-7110edf045141630a222.png"},52203:function(e,t,n){"use strict";e.exports=n.p+"images/example_728x90-d9de384932330b92e1c3.png"},99196:function(e){"use strict";e.exports=window.React},92819:function(e){"use strict";e.exports=window.lodash},76292:function(e){"use strict";e.exports=window.moment},25158:function(e){"use strict";e.exports=window.wp.a11y},42998:function(e){"use strict";e.exports=window.wp.annotations},86989:function(e){"use strict";e.exports=window.wp.apiFetch},11313:function(e){"use strict";e.exports=window.wp.blob},52175:function(e){"use strict";e.exports=window.wp.blockEditor},4981:function(e){"use strict";e.exports=window.wp.blocks},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69771:function(e){"use strict";e.exports=window.wp.date},47701:function(e){"use strict";e.exports=window.wp.domReady},72067:function(e){"use strict";e.exports=window.wp.editPost},12238:function(e){"use strict";e.exports=window.wp.editor},69307:function(e){"use strict";e.exports=window.wp.element},81975:function(e){"use strict";e.exports=window.wp.escapeHtml},92694:function(e){"use strict";e.exports=window.wp.hooks},65736:function(e){"use strict";e.exports=window.wp.i18n},39630:function(e){"use strict";e.exports=window.wp.keycodes},53961:function(e){"use strict";e.exports=window.wp.notices},98817:function(e){"use strict";e.exports=window.wp.plugins},70444:function(e){"use strict";e.exports=window.wp.primitives},72629:function(e){"use strict";e.exports=window.wp.richText},29512:function(e){"use strict";e.exports=window.wp.tokenList},96483:function(e){"use strict";e.exports=window.wp.url},90162:function(e){"use strict";e.exports=window.wp.viewport},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},45086:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},57275:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},15746:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(6336),a=n(77363),o=n(2102);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},12472:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},6336:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},45814:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(99112);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},77363:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},49058:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(12472);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},2102:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31344),a=n(25303);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},31344:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},8134:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},14316:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97024:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e){if(Array.isArray(e))return(0,r.Z)(e)}},55200:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},71687:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},93772:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(72406),a=n(58189),o=n(34621);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},98086:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},95672:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},72406:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},82104:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(43051);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},58189:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},40613:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},20120:function(e,t,n){"use strict";function r(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],_n=!0,i=!1;try{for(n=n.call(e);!(_n=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,a=e}finally{try{_n||null==n.return||n.return()}finally{if(i)throw a}}return o}}n.d(t,{Z:function(){return r}})},41722:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},56083:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},52141:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(98086);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&a.push.apply(a,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach((function(t){(0,r.Z)(e,t,n[t])}))}return e}},59591:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98086);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},34621:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(29504),a=n(55200);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},43051:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},50572:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(14316),a=n(20120),o=n(33611),i=n(41722);function s(e,t){return(0,r.Z)(e)||(0,a.Z)(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},59128:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(97024),a=n(40613),o=n(33611),i=n(56083);function s(e){return(0,r.Z)(e)||(0,a.Z)(e)||(0,o.Z)(e)||(0,i.Z)()}},29504:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},33611:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},27655:function(e){"use strict";e.exports=JSON.parse('{"O":{"White":"#fff","Black":"#000","Gray":"#646970","Gray 0":"#f6f7f7","Gray 5":"#dcdcde","Gray 10":"#c3c4c7","Gray 20":"#a7aaad","Gray 30":"#8c8f94","Gray 40":"#787c82","Gray 50":"#646970","Gray 60":"#50575e","Gray 70":"#3c434a","Gray 80":"#2c3338","Gray 90":"#1d2327","Gray 100":"#101517","Blue":"#0675c4","Blue 0":"#e9f0f5","Blue 5":"#bbe0fa","Blue 10":"#91caf2","Blue 20":"#68b3e8","Blue 30":"#399ce3","Blue 40":"#1689db","Blue 50":"#0675c4","Blue 60":"#055d9c","Blue 70":"#044b7a","Blue 80":"#02395c","Blue 90":"#01283d","Blue 100":"#001621","Purple":"#984a9c","Purple 0":"#f2e9ed","Purple 5":"#ebcee0","Purple 10":"#e3afd5","Purple 20":"#d48fc8","Purple 30":"#c475bd","Purple 40":"#b35eb1","Purple 50":"#984a9c","Purple 60":"#7c3982","Purple 70":"#662c6e","Purple 80":"#4d2054","Purple 90":"#35163b","Purple 100":"#1e0c21","Pink":"#c9356e","Pink 0":"#f5e9ed","Pink 5":"#f2ceda","Pink 10":"#f7a8c3","Pink 20":"#f283aa","Pink 30":"#eb6594","Pink 40":"#e34c84","Pink 50":"#c9356e","Pink 60":"#ab235a","Pink 70":"#8c1749","Pink 80":"#700f3b","Pink 90":"#4f092a","Pink 100":"#260415","Red":"#d63638","Red 0":"#f7ebec","Red 5":"#facfd2","Red 10":"#ffabaf","Red 20":"#ff8085","Red 30":"#f86368","Red 40":"#e65054","Red 50":"#d63638","Red 60":"#b32d2e","Red 70":"#8a2424","Red 80":"#691c1c","Red 90":"#451313","Red 100":"#240a0a","Orange":"#b26200","Orange 0":"#f5ece6","Orange 5":"#f7dcc6","Orange 10":"#ffbf86","Orange 20":"#faa754","Orange 30":"#e68b28","Orange 40":"#d67709","Orange 50":"#b26200","Orange 60":"#8a4d00","Orange 70":"#704000","Orange 80":"#543100","Orange 90":"#361f00","Orange 100":"#1f1200","Yellow":"#9d6e00","Yellow 0":"#f5f1e1","Yellow 5":"#f5e6b3","Yellow 10":"#f2d76b","Yellow 20":"#f0c930","Yellow 30":"#deb100","Yellow 40":"#c08c00","Yellow 50":"#9d6e00","Yellow 60":"#7d5600","Yellow 70":"#674600","Yellow 80":"#4f3500","Yellow 90":"#320","Yellow 100":"#1c1300","Green":"#008a20","Green 0":"#e6f2e8","Green 5":"#b8e6bf","Green 10":"#68de86","Green 20":"#1ed15a","Green 30":"#00ba37","Green 40":"#00a32a","Green 50":"#008a20","Green 60":"#007017","Green 70":"#005c12","Green 80":"#00450c","Green 90":"#003008","Green 100":"#001c05","Celadon":"#008763","Celadon 0":"#e4f2ed","Celadon 5":"#a7e8d3","Celadon 10":"#66deb9","Celadon 20":"#31cc9f","Celadon 30":"#09b585","Celadon 40":"#009e73","Celadon 50":"#008763","Celadon 60":"#007053","Celadon 70":"#005c44","Celadon 80":"#004533","Celadon 90":"#003024","Celadon 100":"#001c15","WordPress Blue":"#006088","WordPress Blue 0":"#e6f1f5","WordPress Blue 5":"#bedae6","WordPress Blue 10":"#98c6d9","WordPress Blue 20":"#6ab3d0","WordPress Blue 30":"#3895ba","WordPress Blue 40":"#187aa2","WordPress Blue 50":"#006088","WordPress Blue 60":"#004e6e","WordPress Blue 70":"#003c56","WordPress Blue 80":"#002c40","WordPress Blue 90":"#001d2d","WordPress Blue 100":"#00101c","Simplenote Blue":"#3361cc","Simplenote Blue 0":"#e9ecf5","Simplenote Blue 5":"#ced9f2","Simplenote Blue 10":"#abc1f5","Simplenote Blue 20":"#84a4f0","Simplenote Blue 30":"#618df2","Simplenote Blue 40":"#4678eb","Simplenote Blue 50":"#3361cc","Simplenote Blue 60":"#1d4fc4","Simplenote Blue 70":"#113ead","Simplenote Blue 80":"#0d2f85","Simplenote Blue 90":"#09205c","Simplenote Blue 100":"#05102e","WooCommerce Purple":"#7f54b3","WooCommerce Purple 0":"#f7edf7","WooCommerce Purple 5":"#e5cfe8","WooCommerce Purple 10":"#d6b4e0","WooCommerce Purple 20":"#c792e0","WooCommerce Purple 30":"#af7dd1","WooCommerce Purple 40":"#9a69c7","WooCommerce Purple 50":"#7f54b3","WooCommerce Purple 60":"#674399","WooCommerce Purple 70":"#533582","WooCommerce Purple 80":"#3c2861","WooCommerce Purple 90":"#271b3d","WooCommerce Purple 100":"#140e1f","Jetpack Green":"#069e08","Jetpack Green 0":"#f0f2eb","Jetpack Green 5":"#d0e6b8","Jetpack Green 10":"#9dd977","Jetpack Green 20":"#64ca43","Jetpack Green 30":"#2fb41f","Jetpack Green 40":"#069e08","Jetpack Green 50":"#008710","Jetpack Green 60":"#007117","Jetpack Green 70":"#005b18","Jetpack Green 80":"#004515","Jetpack Green 90":"#003010","Jetpack Green 100":"#001c09"}}')},60231:function(e){"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},90059:function(e){"use strict";e.exports=JSON.parse('{"p":[{"slug":"participant-0","label":"Speaker 1"},{"slug":"participant-1","label":"Speaker 2"},{"slug":"participant-2","label":"Speaker 3"}]}')},45388:function(e){"use strict";e.exports=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]')},1949:function(e){"use strict";e.exports={Kc:["amazon"]}}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=i,l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);l.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return n[e]}}));return o.default=function(){return n},l.d(a,o),a},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce((function(t,n){return l.f[n](e,t),t}),[]))},l.u=function(e){return(390===e?"swiper":e)+".js?minify=false&ver="+{390:"87699145e1e11e92e952",860:"d8d32efbe3dcb1077f70"}[e]},l.miniCssF=function(e){return"swiper.css?minify=false&ver=4f0a26962ac03729a198"},function(){if(!l.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;l.miniCssF=(e=l.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="Jetpack:",l.l=function(e,t,a,o){if(n[e])n[e].push(t);else{var i,s;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var p=c[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==r+a){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",r+a),i.src=e),n[e]=[t];var d=function(t,r){i.onerror=i.onload=null,clearTimeout(m);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((function(e){return e(r)})),t)return t(r)},m=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),s&&document.head.appendChild(i)}},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e}(),a=function(e){return new Promise((function(t,n){var r=l.miniCssF(e),a=l.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var a=(i=n[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(a===e||a===t))return i}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var i;if((a=(i=o[r]).getAttribute("data-href"))===e||a===t)return i}}(r,a))return t();!function(e,t,n,r){var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=function(o){if(a.onerror=a.onload=null,"load"===o.type)n();else{var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=i,l.request=s,a.parentNode.removeChild(a),r(l)}},a.href=t,document.head.appendChild(a)}(e,a,t,n)}))},o={35:0,189:0,161:0,486:0},l.f.miniCss=function(e,t){o[e]?t.push(o[e]):0!==o[e]&&{390:1}[e]&&t.push(o[e]=a(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))},function(){var e={35:0,189:0,161:0,486:0};l.f.j=function(t,n){var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(390!=t){var a=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=a);var o=l.p+l.u(t),i=new Error;l.l(o,(function(n){if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,r[1](i)}}),"chunk-"+t,t)}else e[t]=0};var t=function(t,n){var r,a,o=n[0],i=n[1],s=n[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(s)s(l)}for(t&&t(n);c<o.length;c++)a=o[c],l.o(e,a)&&e[a]&&e[a][0](),e[o[c]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";l(57836),l(6757),l(7616),l(92919),l(26634),l(17269),l(56771),l(58721),l(73617);var e=l(11973);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){const{userid:t,username:n}=window.Jetpack_Editor_Initial_State.tracksUserData;e.Z.initialize(t,n,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}}(),function(){"use strict";var e=l(28069),t=l(8042);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32278);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(79884);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(75494);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(20195);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(63445);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(45166);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(92694),n=l(52175),r=l(55609),a=l(65736),o=l(47271);const __=a.__,i=t=>{if(t.isDeprecation)return t;if("core/embed"!==t.name)return t;const{edit:a}=t;return{...t,edit:(0,r.withNotices)((t=>{const{noticeOperations:i,noticeUI:s,onReplace:l}=t,{url:c}=t.attributes,{isGatheringStorm:u,unleashStorm:p}=(0,o.Z)({onReplace:l});return"twitter"!==t.attributes.providerNameSlug?(0,e.createElement)(a,t):(0,e.createElement)(e.Fragment,null,s,(0,e.createElement)(n.BlockControls,null,(0,e.createElement)(r.ToolbarGroup,{className:"gathering-tweetstorms__embed-toolbar"},(0,e.createElement)(r.ToolbarButton,{className:"gathering-tweetstorms__embed-toolbar-button",onClick:()=>p(c,i),label:__("Import the entire Twitter thread directly into this post.","jetpack"),showTooltip:!0,disabled:u||!c},__("Unroll","jetpack")),u&&(0,e.createElement)(r.ToolbarItem,{as:r.Spinner}))),(0,e.createElement)(a,t))}))}};(0,t.addFilter)("blocks.registerBlockType","jetpack/gathering-tweetstorms",i)}(),function(){"use strict";var e=l(28069),t=l(31072);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(13984);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(1624);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(77007);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(66916);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(19916);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(92828);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(7882);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(5458);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(18161);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(58495);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(72228);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(84807);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(82163);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32051);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57368);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(8223);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(93636),n=l(59770);(0,e.Z)(t.u2,t.Xd,[{name:n.u2,settings:n.Xd}])}(),function(){"use strict";var e=l(96594);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(91994);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(71730);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(35289);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(94120);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(98817),n=l(42366),r=l(21409),a=l(58014);(0,l(52291).Z)(n.u2,n.Xd);const o=(0,r.Z)("social-previews")?.available;!o&&(0,a.Wp)()&&(0,t.registerPlugin)(`jetpack-${n.u2}-upgrade-nudge`,{render:()=>(0,e.createElement)(n.w6,{showUpgradeNudge:!0})})}(),function(){"use strict";var e=l(28069),t=l(20222);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57211);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(80349);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(29183),t=l.n(e),n=l(69307),r=l(55609),a=l(11313),o=l(4981),i=l(12238),s=l(52175),c=l(92694),u=l(94333),p=l(65736),d=l(92819),m=l(6976),h=l(64089),f=l(21409),g=l(71486),b=l(4207),v=l(3082),k=l(58014),y=l(28137),E=l(41194);const __=p.__,w=(0,u.createHigherOrderComponent)((e=>a=>{const{name:o}=(0,s.useBlockEditContext)();return"core/video"!==o?(0,n.createElement)(e,a):(0,n.createElement)(e,t()({},a,{disableDropZone:!0,className:"no-videopress-media-placeholder"}),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Media Library","jetpack")),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Upload","jetpack")))}),"videoPressNoPlanMediaPlaceholder"),_=(e,t,n)=>("core/video"!==t.name||!n.guid||n.className?.indexOf("wp-block-video")>=0||n.videoPressClassNames||(e.className=e.className.replace("wp-block-video","").trim()),e);(0,c.addFilter)("blocks.registerBlockType","jetpack/videopress",((e,t)=>{if("core/embed"===t)return(e=>{if(!("variations"in e)||"object"!=typeof e.variations)return;const{available:t}=(0,f.Z)("videopress");e.variations.some((e=>"videopress"===e.name&&(t&&(e.scope=[]),e.patterns.push(/^https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?$/i),!0)))})(e),e;if("core/video"!==t||e.isDeprecation)return e;const{deprecated:n,edit:r,save:s,supports:l,transforms:u}=e,{available:p,unavailableReason:C}=(0,f.Z)("videopress");if(((0,k.Wp)()||(0,k.Ug)())&&["missing_plan","unknown"].includes(C)?((0,c.addFilter)("editor.MediaPlaceholder","jetpack/videopress",w),(0,c.addFilter)("editor.BlockListBlock","jetpack/videopress-with-has-warning-is-interactive-class-names",(0,y.Z)("core/video"))):p&&(e.description=__("Embed a video from your media library or upload a new one with VideoPress.","jetpack"),e.example.attributes={caption:"",isVideoPressExample:!0,src:E}),(0,c.addFilter)("blocks.getSaveContent.extraProps","jetpack/videopress",_,20),p||["missing_plan","missing_module","unknown"].includes(C)){const t={autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},maxWidth:{type:"string",default:"100%"},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},isVideoPressExample:{type:"boolean",default:!1},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},useAverageColor:{type:"boolean"},videoPressTracks:{type:"array",items:{type:"object"},default:[]},videoPressClassNames:{type:"string"}},c=/https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?/i;return{...e,attributes:t,transforms:{...u,from:[{type:"files",isMatch:e=>(0,d.every)(e,(e=>0===e.type.indexOf("video/"))),priority:9,transform:(e,t)=>{const n=[];return e.forEach((e=>{const r=(0,o.createBlock)("core/video",{src:(0,a.createBlobURL)(e)});(0,i.mediaUpload)({filesList:[e],onFileChange:e=>{let[{id:n,url:a}]=e;t(r.clientId,{id:n,src:a})},allowedTypes:["video"]}),n.push(r)})),n}},{type:"raw",isMatch:e=>"P"===e.nodeName&&c.test(e.innerHTML),transform:e=>{const t=c.exec(e.innerHTML);return(0,o.createBlock)("core/embed",{url:"https://videopress.com/v/"+t[1].trim()})}}]},supports:{...l,reusable:!1},edit:(0,m.Z)(r),save:(0,h.Z)(s),deprecated:[...n||[],v.Z,{attributes:t,isEligible:e=>!e.guid,save:s,supports:l,isDeprecation:!0},b.Z,g.Z]}}return e}),5)}(),function(){"use strict";var e=l(28069),t=l(62086);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(92819),n=l(99196),r=l(9818),a=l(72067),o=l(22607),i=l(84675),s=l(65736),c=l(98817),u=l(55609),p=(l(53961),l(33690)),d=l(22874),m=l(11973);const __=s.__;async function h(e){await(0,p.U)();const{insertBlocks:t}=(0,r.dispatch)("core/block-editor");let n;switch(e.tpl){case"spotifyBadge":n=(0,d.F)(e);break;case"basicEpisode":n=(0,d.J)(e)}n?.length&&t(n,0,void 0,!1)}const f=()=>{(0,n.useEffect)((()=>{m.Z.tracks.recordEvent("jetpack_editor_block_anchor_fm_post_publish_impression")}),[]);const t=(0,n.useCallback)((()=>m.Z.tracks.recordEvent("jetpack_editor_block_anchor_fm_post_publish_click")),[]);return(0,e.createElement)(a.PluginPostPublishPanel,{className:"anchor-post-publish-outbound-link"},(0,e.createElement)("p",{className:"post-publish-panel__postpublish-subheader"},(0,e.createElement)("strong",null,__("Convert to audio","jetpack"))),(0,e.createElement)("p",null,__("Seamlessly turn this post into a podcast episode with Anchor - and let readers listen to your post.","jetpack")),(0,e.createElement)("div",{role:"link",className:"post-publish-panel__postpublish-buttons",tabIndex:0,onClick:t,onKeyDown:t},(0,e.createElement)(u.Button,{isPrimary:!0,href:"https://anchor.fm/wordpressdotcom",target:"_top"},__("Create a podcast episode","jetpack")," ",(0,e.createElement)(o.Z,{icon:i.Z,className:"anchor-post-publish-outbound-link__external_icon"}))))};!function(){const e=window.Jetpack_AnchorFm;"object"==typeof e&&e.actions.forEach((e=>{const[n,a]=(0,t.castArray)(e);switch(n){case"insert-spotify-badge":h({...a,tpl:"spotifyBadge"});break;case"insert-episode-template":h({...a,tpl:"basicEpisode"});break;case"show-post-publish-outbound-link":(0,c.registerPlugin)("anchor-post-publish-outbound-link",{render:f});break;case"set-episode-title":!async function(e){let{title:t}=e;t&&(await(0,p.U)(),(0,r.dispatch)("core/editor").editPost({title:t}))}(a);break;case"create-episode-error-notice":o=a,(0,r.dispatch)("core/notices").createNotice("error",__("We couldn't find that episode in your feed. If you just published the episode, please try creating the post again in a few minutes.","jetpack"),{id:"episode-error-notice",actions:[{onClick(){window.location.href=o.retry_url},onKeyDown(){window.location.href=o.retry_url},label:__("Retry","jetpack")}]})}var o}))}()}(),function(){"use strict";var e=l(28069),t=l(98034),n=l(76883),r=l(24720),a=l(46157),o=l(37436);(0,e.Z)(t.u,t.X,[{name:n.u,settings:n.X},{name:r.u,settings:r.X},{name:a.u,settings:a.X},{name:o.u,settings:o.X}],!1)}(),function(){"use strict";var e=l(28069),t=l(36384);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(98956);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(6007);(0,e.Z)(t.u2,t.Xd)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-beta.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/editor-beta.js.LICENSE.txt
new file mode 100644
index 00000000..f4234c69
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-beta.js.LICENSE.txt
@@ -0,0 +1,30 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*! https://mths.be/punycode v1.3.2 by @mathias */
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/blocks/editor-beta.rtl.css b/plugins/jetpack/_inc/blocks/editor-beta.rtl.css
index 7dd3874f..41ea37c2 100644
--- a/plugins/jetpack/_inc/blocks/editor-beta.rtl.css
+++ b/plugins/jetpack/_inc/blocks/editor-beta.rtl.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:right;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 14px 2px 32px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;right:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-left:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;right:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-right:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:left}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:right}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-right:0;margin-left:0;padding-right:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 4px 0 0;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:right;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-right:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-left:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-right:0;margin-left:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;right:0;position:absolute;left:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 5% 0 0;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-right:-10px;margin-left:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);right:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 6px 0 0}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;right:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-left:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;left:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;right:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;left:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;right:50%;margin-top:-9px;margin-right:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-right:4px;padding-left:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 2px 2px 0;position:absolute;left:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;right:50%;margin:0;transform:translate(50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px}.jetpack-seo-message-box{background-color:#edeff0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-right:5px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);-o-object-fit:contain;object-fit:contain;position:absolute;right:8px;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;right:0;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:right;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;padding:20px 0;position:fixed;position:sticky;right:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-left:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-left:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-right:1px solid #ccc;margin-right:16px;padding-right:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-left:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 0 9px 1px}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-left:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;left:0;margin-top:-48px;padding:0;position:absolute;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-left:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-right:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-left:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-left:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-left:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-left:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-left:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right;margin:3px 0 0 5px}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:right;margin:0 0 0 5px}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-right:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-right:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-right:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-left:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-right:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:right}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-left:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;position:absolute;right:0;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;margin:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-left:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:right}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{right:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-left:12px}.components-placeholder.is-large .image-compare__image-after{padding-right:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-right:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-right:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto -3px auto auto;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}div.jx-arrow.jx-right{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;right:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;left:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{right:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{left:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{right:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;left:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{right:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:100%;right:0}div.jx-image.jx-left img{right:0}div.jx-image.jx-right{background-position:0;left:0}div.jx-image.jx-right img{bottom:0;left:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:right;right:0}div.jx-image.jx-right div.jx-label{float:left;left:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;right:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:right .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-right:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);right:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);left:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(-90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-left:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;margin-right:-16px;margin-top:-19px;position:absolute;right:50%;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:left;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:right;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-left:0;margin-right:0;padding-right:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 4px 0 0;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:right}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:0;right:auto}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:right}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{left:auto;margin-right:2rem;max-width:840px}.wp-block-jetpack-opentable.is-style-wide.alignright{max-width:840px;right:calc(100% - 840px - 2rem)}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:18px;padding-right:15px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-left:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 22px 10px 24px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-right:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-right:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 0 0 2px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-right:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-left:5px}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-left:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 8px 0 0}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-right:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-right:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);position:absolute;right:-10px;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-right:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 8px 0 24px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-left:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;right:calc(50% - 12px);top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-left:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 56px 8px 16px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-right:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-right:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-left:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 0 0 5px}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-right:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-right:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-left:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;left:0;padding:0 4px;pointer-events:none;position:absolute;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;left:10px;margin-top:0;position:absolute;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;left:auto;padding-top:0;position:relative}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-left:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-left:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-right:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-right:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:right;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 0 -4px 2px;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-left:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-right:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";position:absolute;right:-20px}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-left:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-right:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-left:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;position:absolute;right:3px;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-left-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;left:0;margin:15px;padding:5px 3px;position:absolute;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{margin:auto;right:-84px}.wp-story-container .wp-story-next-slide{left:-84px;margin:auto}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-next-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(-180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 0 0 16px;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 0 0 12px;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-right:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{right:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{left:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-right:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-left:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:100%;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-left:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;left:0;margin:0;position:absolute}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{right:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-left:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 12px 4px 0;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-left:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-right:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px}.anchor-post-publish-outbound-link .anchor-post-publish-outbound-link__external_icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-premium-content-container .premium-content-tabs{align-items:center;background:#fff;border:1px solid #1e1e1e;border-radius:2px;color:#757575;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:0 -1px 0 0;padding:8px 14px;position:relative}.wp-block-premium-content-container--tab{align-items:center;background:transparent;border:none;display:flex;flex-direction:row;margin-left:5px;padding:5px;text-decoration:none}.premium-content-tabs>button.edit{margin-right:auto}.premium-content-wrapper{margin:0}.premium-content-block-nudge .editor-warning{margin-bottom:0}.premium-content-block-nudge .editor-warning__message{margin:13px 0}.premium-content-block-nudge .editor-warning__actions{line-height:1}.premium-content-block-nudge .premium-content-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.premium-content-block-nudge .premium-content-block-nudge__text-container{display:flex;flex-direction:column;padding-right:10px}.premium-content-block-nudge .premium-content-block-nudge__title{font-size:14px}.premium-content-block-nudge__message{color:#646970}.editor-styles-wrapper a.premium-content-block-nudge__button{color:#0075af;text-decoration:none}.membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-interval .components-base-control,.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-name .components-base-control{width:100%}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-price .components-base-control{margin:0;width:45%}.wp-block-premium-content-container---settings-add_plan .components-panel__row:last-child{margin-top:25px}.wp-block-premium-content-container---settings-add_plan .components-base-control:last-child{margin:0}.wp-block-premium-content-container---link-to-earn{display:block;margin:16px}.premium-content-toolbar-button .components-dropdown-menu__toggle:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:4px;bottom:1px;content:"";display:block;left:0;position:absolute}.connect-stripe.has-icon.has-text svg{margin-left:0}.connect-stripe.has-icon.has-text{font-weight:400}.wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"]{display:inline-block;margin:0 0 0 .5em}.editor-styles-wrapper .wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"] .wp-block-button:not(.alignleft):not(.alignright){margin:0}.wp-block-premium-content-container .jetpack-block-nudge{display:none}.wp-block-premium-content-login-button{display:inline-block}.wp-block[data-align=center]>.wp-block-premium-content-login-button{align-items:center;display:flex;justify-content:center}.wp-block-jetpack-conversation__participant{display:flex;height:30px;line-height:30px}.wp-block-jetpack-conversation__participant-label{flex-grow:2}.wp-block-jetpack-conversation__placeholder,.wp-block-jetpack-dialogue__timestamp-controls{display:flex}.wp-block-jetpack-dialogue__timestamp-controls .components-number-control{min-width:60px}.wp-block-jetpack-dialogue__timestamp-button{margin-right:6px}.wp-block-jetpack-dialogue__timestamp-control__hour,.wp-block-jetpack-dialogue__timestamp-control__minute{margin-left:5px}.wp-block-jetpack-dialogue__timestamp-control__play-button{align-self:flex-end;margin-right:10px}.wp-block-jetpack-dialogue__timestamp-content .wp-block-jetpack-dialogue__timestamp-container{min-width:290px}.wp-block-jetpack-dialogue__timestamp-range-control{margin-left:16px;margin-top:8px}.wp-block-jetpack-dialogue__timestamp-dropdown{min-width:90px}.wp-block-jetpack-dialogue__participant.is-participant-adding,.wp-block-jetpack-dialogue__participant.is-participant-editing{opacity:.7}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta.has-not-media-source>div{width:100%}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta .wp-block-jetpack-dialogue__participant{min-width:50px}.media-player-control__current-time{align-items:center;display:flex;font-size:14px;min-width:55px;padding:0 5px 0 12px}.media-player-control__current-time.is-disabled{color:#757575;cursor:default}.wp-block-jetpack-dialogue__timestamp-player{display:flex;flex-wrap:wrap;justify-content:center;margin-top:10px}.wp-block-jetpack-dialogue__timestamp-player button{padding:0}.media-player-control__toolbar .components-toolbar-button .dashicons{margin:0}.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:0;margin-right:5px;padding:6px 12px;text-align:left;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:left}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-left:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none}.wp-block-jetpack-amazon{font-size:14px}.wp-block-jetpack-amazon-title{font-weight:700;line-height:1.3em}.wp-block-jetpack-amazon-title a{text-decoration:none}.wp-block-jetpack-amazon-button{justify-content:center;width:100%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-experimental.asset.php b/plugins/jetpack/_inc/blocks/editor-experimental.asset.php
index 2fbeb0bd..5c38d052 100644
--- a/plugins/jetpack/_inc/blocks/editor-experimental.asset.php
+++ b/plugins/jetpack/_inc/blocks/editor-experimental.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-token-list', 'wp-url'), 'version' => '3a61b3002bb5a87b70bf81c5340b6456'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-a11y', 'wp-annotations', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-token-list', 'wp-url', 'wp-viewport'), 'version' => '506556acd0fd8d576c3b30f6285a162e'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-experimental.css b/plugins/jetpack/_inc/blocks/editor-experimental.css
index 0bbd46a1..c2a760db 100644
--- a/plugins/jetpack/_inc/blocks/editor-experimental.css
+++ b/plugins/jetpack/_inc/blocks/editor-experimental.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:left;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 32px 2px 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;left:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-right:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;left:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-left:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:right}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:left}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 0 0 4px;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-right:0;padding-left:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:left;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-left:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-right:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-left:0;margin-right:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;left:0;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 0 0 5%;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-left:-10px;margin-right:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);left:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 0 0 6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-right:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;left:50%;margin-top:-9px;margin-left:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 0 2px 2px;position:absolute;right:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);left:8px;-o-object-fit:contain;object-fit:contain;position:absolute;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:left;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;left:0;padding:20px 0;position:fixed;position:sticky;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-right:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-right:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-left:1px solid #ccc;margin-left:16px;padding-left:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-right:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 1px 9px 0}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-right:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;margin-top:-48px;padding:0;position:absolute;right:0;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-right:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-left:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-right:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-right:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-right:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-right:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-right:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left;margin:3px 5px 0 0}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:left;margin:0 5px 0 0}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-left:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-left:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-left:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-left:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:left}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-right:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-right:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:left}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{left:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-right:12px}.components-placeholder.is-large .image-compare__image-after{padding-left:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-left:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-left:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto auto auto -3px;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}div.jx-arrow.jx-right{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;left:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;right:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{left:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{right:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{left:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;right:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{left:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:0;left:0}div.jx-image.jx-left img{left:0}div.jx-image.jx-right{background-position:100%;right:0}div.jx-image.jx-right img{bottom:0;right:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:left;left:0}div.jx-image.jx-right div.jx-label{float:right;right:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;left:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:left .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-left:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);left:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);right:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-right:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;left:50%;margin-left:-16px;margin-top:-19px;position:absolute;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:right;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:left;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 0 0 4px;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:1em;padding-right:0}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:left}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:auto;right:0}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:left}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{margin-left:2rem;max-width:840px;right:auto}.wp-block-jetpack-opentable.is-style-wide.alignright{left:calc(100% - 840px - 2rem);max-width:840px}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:15px;padding-right:18px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-right:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 24px 10px 22px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-left:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-left:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 2px 0 0;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-left:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-right:5px}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-right:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 0 0 8px}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-left:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-left:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);left:-10px;position:absolute;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-left:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 24px 0 8px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-right:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{left:calc(50% - 12px);position:absolute;top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-right:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 16px 8px 56px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-left:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-left:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-right:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 5px 0 0}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-left:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-left:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-right:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;right:0;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;padding-top:0;position:relative;right:auto}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-right:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-right:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-left:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-left:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:left;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 2px -4px 0;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-right:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-left:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";left:-20px;position:absolute}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-right:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-left:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-right:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;left:3px;position:absolute;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-right-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;margin:15px;padding:5px 3px;position:absolute;right:0;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{left:-84px;margin:auto}.wp-story-container .wp-story-next-slide{margin:auto;right:-84px}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-next-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 16px 0 0;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 12px 0 0;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-left:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{left:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{right:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-left:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-right:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:0;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-right:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;margin:0;position:absolute;right:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{left:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-right:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 0 4px 12px;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-right:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-left:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px}.anchor-post-publish-outbound-link .anchor-post-publish-outbound-link__external_icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-premium-content-container .premium-content-tabs{align-items:center;background:#fff;border:1px solid #1e1e1e;border-radius:2px;color:#757575;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:0 0 0 -1px;padding:8px 14px;position:relative}.wp-block-premium-content-container--tab{align-items:center;background:transparent;border:none;display:flex;flex-direction:row;margin-right:5px;padding:5px;text-decoration:none}.premium-content-tabs>button.edit{margin-left:auto}.premium-content-wrapper{margin:0}.premium-content-block-nudge .editor-warning{margin-bottom:0}.premium-content-block-nudge .editor-warning__message{margin:13px 0}.premium-content-block-nudge .editor-warning__actions{line-height:1}.premium-content-block-nudge .premium-content-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.premium-content-block-nudge .premium-content-block-nudge__text-container{display:flex;flex-direction:column;padding-left:10px}.premium-content-block-nudge .premium-content-block-nudge__title{font-size:14px}.premium-content-block-nudge__message{color:#646970}.editor-styles-wrapper a.premium-content-block-nudge__button{color:#0075af;text-decoration:none}.membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-interval .components-base-control,.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-name .components-base-control{width:100%}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-price .components-base-control{margin:0;width:45%}.wp-block-premium-content-container---settings-add_plan .components-panel__row:last-child{margin-top:25px}.wp-block-premium-content-container---settings-add_plan .components-base-control:last-child{margin:0}.wp-block-premium-content-container---link-to-earn{display:block;margin:16px}.premium-content-toolbar-button .components-dropdown-menu__toggle:after{border-color:transparent currentcolor currentcolor transparent;border-style:solid;border-width:4px;bottom:1px;content:"";display:block;position:absolute;right:0}.connect-stripe.has-icon.has-text svg{margin-right:0}.connect-stripe.has-icon.has-text{font-weight:400}.wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"]{display:inline-block;margin:0 .5em 0 0}.editor-styles-wrapper .wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"] .wp-block-button:not(.alignleft):not(.alignright){margin:0}.wp-block-premium-content-container .jetpack-block-nudge{display:none}.wp-block-premium-content-login-button{display:inline-block}.wp-block[data-align=center]>.wp-block-premium-content-login-button{align-items:center;display:flex;justify-content:center}.wp-block-jetpack-conversation__participant{display:flex;height:30px;line-height:30px}.wp-block-jetpack-conversation__participant-label{flex-grow:2}.wp-block-jetpack-conversation__placeholder,.wp-block-jetpack-dialogue__timestamp-controls{display:flex}.wp-block-jetpack-dialogue__timestamp-controls .components-number-control{min-width:60px}.wp-block-jetpack-dialogue__timestamp-button{margin-left:6px}.wp-block-jetpack-dialogue__timestamp-control__hour,.wp-block-jetpack-dialogue__timestamp-control__minute{margin-right:5px}.wp-block-jetpack-dialogue__timestamp-control__play-button{align-self:flex-end;margin-left:10px}.wp-block-jetpack-dialogue__timestamp-content .wp-block-jetpack-dialogue__timestamp-container{min-width:290px}.wp-block-jetpack-dialogue__timestamp-range-control{margin-right:16px;margin-top:8px}.wp-block-jetpack-dialogue__timestamp-dropdown{min-width:90px}.wp-block-jetpack-dialogue__participant.is-participant-adding,.wp-block-jetpack-dialogue__participant.is-participant-editing{opacity:.7}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta.has-not-media-source>div{width:100%}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta .wp-block-jetpack-dialogue__participant{min-width:50px}.media-player-control__current-time{align-items:center;display:flex;font-size:14px;min-width:55px;padding:0 12px 0 5px}.media-player-control__current-time.is-disabled{color:#757575;cursor:default}.wp-block-jetpack-dialogue__timestamp-player{display:flex;flex-wrap:wrap;justify-content:center;margin-top:10px}.wp-block-jetpack-dialogue__timestamp-player button{padding:0}.media-player-control__toolbar .components-toolbar-button .dashicons{margin:0}.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:5px;margin-right:0;padding:6px 12px;text-align:right;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:right}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-right:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-experimental.js b/plugins/jetpack/_inc/blocks/editor-experimental.js
index feca7d39..5e37630c 100644
--- a/plugins/jetpack/_inc/blocks/editor-experimental.js
+++ b/plugins/jetpack/_inc/blocks/editor-experimental.js
@@ -1,2 +1,152 @@
-/*! For license information please see editor-experimental.js.LICENSE */
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(t){for(var n,r,i=t[0],o=t[1],c=0,s=[];c<i.length;c++)r=i[c],Object.prototype.hasOwnProperty.call(a,r)&&a[r]&&s.push(a[r][0]),a[r]=0;for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);for(l&&l(t);s.length;)s.shift()()}var n={},r={5:0,3:0},a={5:0,3:0};function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];r[e]?t.push(r[e]):0!==r[e]&&{16:1,17:1}[e]&&t.push(r[e]=new Promise((function(t,n){for(var a="rtl"===document.dir?({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".rtl.css":({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".css",o=i.p+a,c=document.getElementsByTagName("link"),s=0;s<c.length;s++){var l=(p=c[s]).getAttribute("data-href")||p.getAttribute("href");if("stylesheet"===p.rel&&(l===a||l===o))return t()}var u=document.getElementsByTagName("style");for(s=0;s<u.length;s++){var p;if((l=(p=u[s]).getAttribute("data-href"))===a||l===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.setAttribute("data-webpack",!0),d.onload=t,d.onerror=function(t){var a=t&&t.target&&t.target.src||o,i=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=a,delete r[e],d.parentNode.removeChild(d),n(i)},d.href=o,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){r[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var o=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=o);var c,s=document.createElement("script");s.charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.src=function(e){return i.p+""+({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".js"}(e);var l=new Error;c=function(t){s.onerror=s.onload=null,clearTimeout(u);var n=a[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",l.name="ChunkLoadError",l.type=r,l.request=i,n[1](l)}a[e]=void 0}};var u=setTimeout((function(){c({type:"timeout",target:s})}),12e4);s.onerror=s.onload=c,document.head.appendChild(s)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],c=o.push.bind(o);o.push=t,o=o.slice();for(var s=0;s<o.length;s++)t(o[s]);var l=c;return i(i.s=268)}([function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){!function(){e.exports=this.wp.i18n}()},function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){!function(){e.exports=this.lodash}()},function(e,t){!function(){e.exports=this.wp.blockEditor}()},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(127),a=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(128);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var o=a.apply(null,r);o&&e.push(o)}else if("object"===i)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t,n){var r=n(3);function a(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},function(e,t){!function(){e.exports=this.wp.blocks}()},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(55),o=n(16),c=n(94),s=n(40),l=n(30),u=n.n(l),p=n(0),d=n(14),h=(n(143),function(e){return Object(d.createHigherOrderComponent)((function(t){return function(n){return Object(p.createElement)(t,u()({},n,{className:n.name===e?"has-warning is-interactive":""}))}}),"withHasWarningIsInteractiveClassNames")}),m=n(56),f=n.n(m),b=n(1),g=n(31),v=n(5),j=n(13),y=n(50),_=n(57),k=n(35),O=n(24),w={setPlans:function(e){return{type:"SET_PLANS",plans:e}},fetchFromAPI:function(e){return{type:"FETCH_FROM_API",url:e}}};Object(j.registerStore)("wordpress-com/plans",{reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PLANS":return t.plans}return e},actions:w,selectors:{getPlan:function(e,t){return e.find((function(e){return e.product_slug===t}))}},controls:{FETCH_FROM_API:function(e){var t=e.url;return fetch(t).then((function(e){return e.json()}))}},resolvers:{getPlan:regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"https://public-api.wordpress.com/rest/v1.5/plans",e.next=3,w.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");case 3:return t=e.sent,e.abrupt("return",w.setPlans(t));case 5:case"end":return e.stop()}}),e)}))}});n(145);var E=Object(d.compose)([Object(j.withSelect)((function(e,t){var n=t.plan,r=e("wordpress-com/plans").getPlan(n),a=Object(v.startsWith)(n,"jetpack_")?n.substr("jetpack_".length):Object(v.get)(r,["path_slug"]),i=e("core/editor").getCurrentPostId(),o=e("core/editor").getCurrentPostType(),c=["page","post"].includes(o)?"":"edit",s=Object(O.b)()?Object(g.addQueryArgs)("/"+Object(v.compact)([c,o,Object(k.a)(),i]).join("/"),{plan_upgraded:1}):Object(g.addQueryArgs)(window.location.protocol+"//".concat(Object(k.a)().replace("::","/"),"/wp-admin/post.php"),{action:"edit",post:i,plan_upgraded:1}),l=a&&Object(g.addQueryArgs)("https://wordpress.com/checkout/".concat(Object(k.a)(),"/").concat(a),{redirect_to:s});return{trackEvent:function(e){y.a.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:r,block:e})},planName:Object(v.get)(r,["product_name"]),upgradeUrl:l}}))])((function(e){var t=e.planName,n=e.trackEvent,r=e.upgradeUrl;return Object(p.createElement)(_.a,{buttonLabel:Object(b.__)("Upgrade","jetpack"),icon:Object(p.createElement)(f.a,{className:"jetpack-upgrade-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:r,onClick:n,title:t?Object(b.sprintf)(Object(b.__)("Upgrade to %(planName)s to use this block on your site.","jetpack"),{planName:t}):Object(b.__)("Upgrade to a paid plan to use this block on your site.","jetpack"),subtitle:Object(b.__)("You can try it out before upgrading, but only you will see it. It will be hidden from your visitors until you upgrade.","jetpack")})})),C=function(e){var t=e.requiredPlan;return Object(d.createHigherOrderComponent)((function(e){return function(n){return Object(p.createElement)(p.Fragment,null,Object(p.createElement)(E,{plan:t,blockName:n.name}),Object(p.createElement)(e,n))}}),"wrapPaidBlock")};n.d(t,"a",(function(){return A}));var x=c.beta||[];function S(e,t){return"missing_plan"===e&&t.required_plan}function A(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=Object(s.a)(e),c=r.available,l=r.details,u=r.unavailableReason,p=S(u,l);if(!c&&!p)return!1;var d=Object(o.registerBlockType)("jetpack/".concat(e),a()({},t,{title:x.includes(e)?"".concat(t.title," (beta)"):t.title,edit:p?C({requiredPlan:p})(t.edit):t.edit,example:p?void 0:t.example}));return p&&Object(i.addFilter)("editor.BlockListBlock","jetpack/".concat(e,"-with-has-warning-is-interactive-class-names"),h("jetpack/".concat(e))),n.forEach((function(e){return Object(o.registerBlockType)("jetpack/".concat(e.name),e.settings)})),d}},function(e,t,n){var r=n(65),a=n(66),i=n(67);e.exports=function(e,t){return r(e)||a(e,t)||i()}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function o(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var c=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,s=new RegExp(c.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),l=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(81);var p=/[&<>"]/,d=/[&<>"]/g,h={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function m(e){return h[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var b=n(68);t.lib={},t.lib.mdurl=n(82),t.lib.ucmicro=n(168),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(c,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(s,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&l.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?o(n):e}(e,n)}))},t.isValidEntityCode=i,t.fromCodePoint=o,t.escapeHtml=function(e){return p.test(e)?e.replace(d,m):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return b.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){return Object(r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},function(e,t,n){var r=n(123),a=n(124),i=n(125);e.exports=function(e){return r(e)||a(e)||i()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"h",(function(){return i})),n.d(t,"i",(function(){return o})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return s})),n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return u})),n.d(t,"g",(function(){return p}));var r=["image"],a=4,i=20,o=2e3,c="circle",s="columns",l="rectangular",u="square",p=[{isDefault:!0,name:l},{name:c},{name:u},{name:s}]},function(e,t){!function(){e.exports=this.wp.apiFetch}()},function(e,t,n){"use strict";function r(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function a(){return"simple"===r()}function i(){return"atomic"===r()}n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return i}))},function(e,t){!function(){e.exports=this.wp.blob}()},function(e,t){!function(){e.exports=this.wp.keycodes}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),a=n(1),i={name:"map",prefix:"jetpack",title:Object(a.__)("Map","jetpack"),icon:Object(r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},Object(r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Object(r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"jetpack",keywords:[Object(a._x)("map","block search term","jetpack"),Object(a._x)("location","block search term","jetpack"),Object(a._x)("navigation","block search term","jetpack")],description:Object(a.__)("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},mapStyle:{type:"string",default:"default"},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1}},supports:{html:!1},mapStyleOptions:[{value:"default",label:Object(a.__)("Basic","jetpack")},{value:"black_and_white",label:Object(a.__)("Black and white","jetpack")},{value:"satellite",label:Object(a.__)("Satellite","jetpack")},{value:"terrain",label:Object(a.__)("Terrain","jetpack")}],validAlignments:["center","wide","full"],markerIcon:Object(r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},Object(r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},Object(r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},Object(r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),Object(r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},function(e,t){!function(){e.exports=this.wp.editor}()},function(e,t,n){"use strict";var r=n(136),a=n(138);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=j,t.resolve=function(e,t){return j(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?j(e,!1,!0).resolveObject(t):t},t.format=function(e){a.isString(e)&&(e=j(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var o=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(139);function j(e,t,n){if(e&&a.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),c=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(c);l[0]=l[0].replace(/\\/g,"/");var j=e=l.join(c);if(j=j.trim(),!n&&1===e.split("#").length){var y=s.exec(j);if(y)return this.path=j,this.href=j,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=o.exec(j);if(_){var k=(_=_[0]).toLowerCase();this.protocol=k,j=j.substr(_.length)}if(n||_||j.match(/^\/\/[^@\/]+@[^@\/]+/)){var O="//"===j.substr(0,2);!O||_&&b[_]||(j=j.substr(2),this.slashes=!0)}if(!b[_]&&(O||_&&!g[_])){for(var w,E,C=-1,x=0;x<d.length;x++){-1!==(S=j.indexOf(d[x]))&&(-1===C||S<C)&&(C=S)}-1!==(E=-1===C?j.lastIndexOf("@"):j.lastIndexOf("@",C))&&(w=j.slice(0,E),j=j.slice(E+1),this.auth=decodeURIComponent(w)),C=-1;for(x=0;x<p.length;x++){var S;-1!==(S=j.indexOf(p[x]))&&(-1===C||S<C)&&(C=S)}-1===C&&(C=j.length),this.host=j.slice(0,C),j=j.slice(C),this.parseHost(),this.hostname=this.hostname||"";var A="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!A)for(var F=this.hostname.split(/\./),P=(x=0,F.length);x<P;x++){var T=F[x];if(T&&!T.match(h)){for(var M="",N=0,R=T.length;N<R;N++)T.charCodeAt(N)>127?M+="x":M+=T[N];if(!M.match(h)){var D=F.slice(0,x),z=F.slice(x+1),I=T.match(m);I&&(D.push(I[1]),z.unshift(I[2])),z.length&&(j="/"+z.join(".")+j),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),A||(this.hostname=r.toASCII(this.hostname));var L=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+L,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==j[0]&&(j="/"+j))}if(!f[k])for(x=0,P=u.length;x<P;x++){var q=u[x];if(-1!==j.indexOf(q)){var U=encodeURIComponent(q);U===q&&(U=escape(q)),j=j.split(q).join(U)}}var V=j.indexOf("#");-1!==V&&(this.hash=j.substr(V),j=j.slice(0,V));var H=j.indexOf("?");if(-1!==H?(this.search=j.substr(H),this.query=j.substr(H+1),t&&(this.query=v.parse(this.query)),j=j.slice(0,H)):t&&(this.search="",this.query={}),j&&(this.pathname=j),g[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){L=this.pathname||"";var G=this.search||"";this.path=L+G}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=v.stringify(this.query));var c=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),c&&"?"!==c.charAt(0)&&(c="?"+c),t+i+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(c=c.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(j(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(a.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),o=0;o<r.length;o++){var c=r[o];n[c]=this[c]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var u=s[l];"protocol"!==u&&(n[u]=e[u])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var h=p[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||b[e.protocol])n.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),n.pathname=m.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var j=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),_=y||j||n.host&&e.pathname,k=_,O=n.pathname&&n.pathname.split("/")||[],w=(m=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(w&&(n.hostname="",n.port=null,n.host&&(""===O[0]?O[0]=n.host:O.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),_=_&&(""===m[0]||""===O[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,O=m;else if(m.length)O||(O=[]),O.pop(),O=O.concat(m),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(w)n.hostname=n.host=O.shift(),(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!O.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=O.slice(-1)[0],C=(n.host||e.host||O.length>1)&&("."===E||".."===E)||""===E,x=0,S=O.length;S>=0;S--)"."===(E=O[S])?O.splice(S,1):".."===E?(O.splice(S,1),x++):x&&(O.splice(S,1),x--);if(!_&&!k)for(;x--;x)O.unshift("..");!_||""===O[0]||O[0]&&"/"===O[0].charAt(0)||O.unshift(""),C&&"/"!==O.join("/").substr(-1)&&O.push("");var A,F=""===O[0]||O[0]&&"/"===O[0].charAt(0);w&&(n.hostname=n.host=F?"":O.length?O.shift():"",(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift()));return(_=_||n.host&&O.length)&&!F&&O.unshift(""),O.length?n.pathname=O.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=c.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t){!function(){e.exports=this.wp.url}()},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(10),m=n.n(h),f=n(0),b=n(1),g=n(12),v=n.n(g),j=n(14),y=n(2),_=n(6),k=n(5),O=window.getComputedStyle,w=Object(y.withFallbackStyles)((function(e,t){var n,r,a,i,o=t.textButtonColor,c=t.backgroundButtonColor,s=c&&c.color,l=o&&o.color;return!l&&e&&(n=e.querySelector('[contenteditable="true"]')),r=e.querySelector(".wp-block-button__link")?e.querySelector(".wp-block-button__link"):e,e&&(a=O(r).backgroundColor),n&&(i=O(n).color),{fallbackBackgroundColor:s||a,fallbackTextColor:l||i}})),E=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return m()(t,e),s()(t,[{key:"componentDidUpdate",value:function(e){if(!Object(k.isEqual)(this.props.textButtonColor,e.textButtonColor)||!Object(k.isEqual)(this.props.backgroundButtonColor,e.backgroundButtonColor)){var t=this.getButtonClasses();this.props.setAttributes({submitButtonClasses:t})}}},{key:"getButtonClasses",value:function(){var e,t=this.props,n=t.textButtonColor,r=t.backgroundButtonColor,i=Object(k.get)(n,"class"),o=Object(k.get)(r,"class");return v()("wp-block-button__link",(e={"has-text-color":n},a()(e,i,i),a()(e,"has-background",r),a()(e,o,o),e))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.fallbackBackgroundColor,r=e.fallbackTextColor,a=e.setAttributes,i=e.setBackgroundButtonColor,o=e.setTextButtonColor,c=t.customBackgroundButtonColor||n,s=t.customTextButtonColor||r,l={border:"none",backgroundColor:c,color:s},u=this.getButtonClasses();return Object(f.createElement)(f.Fragment,null,Object(f.createElement)("div",{className:"wp-block-button jetpack-submit-button"},Object(f.createElement)(_.RichText,{placeholder:Object(b.__)("Add text…","jetpack"),value:t.submitButtonText,onChange:function(e){return a({submitButtonText:e})},className:u,style:l,keepPlaceholderOnFocus:!0,allowedFormats:[]})),Object(f.createElement)(_.InspectorControls,null,Object(f.createElement)(_.PanelColorSettings,{title:Object(b.__)("Button Color Settings","jetpack"),colorSettings:[{value:c,onChange:function(e){i(e),a({customBackgroundButtonColor:e})},label:Object(b.__)("Background Color","jetpack")},{value:s,onChange:function(e){o(e),a({customTextButtonColor:e})},label:Object(b.__)("Text Color","jetpack")}]}),Object(f.createElement)(_.ContrastChecker,{textColor:s,backgroundColor:c})))}}]),t}(f.Component);t.a=Object(j.compose)([Object(_.withColors)("backgroundButtonColor",{textButtonColor:"color"}),w])(E)},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"e",(function(){return c}));var r="after-visits",a="before-visits",i=3,o="jp-visit-counter",c=15552e3},function(e,t){!function(){e.exports=this.React}()},function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,"a",(function(){return r}))},function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(47),a=n(40);function i(e,t){var n=Object(a.a)(e),i=n.available;n.unavailableReason;return!!i&&Object(r.registerPlugin)("jetpack-".concat(e),t)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return l})),n.d(t,"d",(function(){return c}));var r=n(74),a=n(5),i="wp-block-jetpack-slideshow_autoplay-paused";function o(e){c(e),s(e),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(i)?(e.el.classList.remove(i),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(i),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function c(e){if(e&&e.el){var t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(t){var n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,16/9),1),a="undefined"!=typeof window?.8*window.innerHeight:600,i=Math.min(e.width/r,a),o="".concat(Math.floor(i),"px"),c="".concat(Math.floor(i/2),"px");e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=o,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=c,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=c}}}function s(e){Object(a.forEach)(e.slides,(function(t,n){t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){var t=e.slides[e.activeIndex];if(t){var n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:Object(r.escapeHTML)(a.alt))}}(e)}function l(e){Object(a.forEach)(e.pagination.bullets,(function(t){t.addEventListener("click",(function(){var t=e.slides[e.realIndex];setTimeout((function(){t.focus()}),500)}))}))}},function(e,t,n){"use strict";var r=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return(function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}())}(),a="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,i="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var c=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&s()}function c(){o(i)}function s(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);a=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){a&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){a&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;c.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||i},d=v(0,0,0,0);function h(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+h(e["border-"+n+"-width"])}),0)}function f(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=p(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],i=e["padding-"+a];t[a]=h(i)}return t}(r),i=a.left+a.right,o=a.top+a.bottom,c=h(r.width),s=h(r.height);if("border-box"===r.boxSizing&&(Math.round(c+i)!==t&&(c-=m(r,"left","right")+i),Math.round(s+o)!==n&&(s-=m(r,"top","bottom")+o)),!function(e){return e===p(e).document.documentElement}(e)){var l=Math.round(c+i)-t,u=Math.round(s+o)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(u)&&(s-=u)}return v(a.left,a.top,c,s)}var b="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return a?b(e)?function(e){var t=e.getBBox();return v(0,0,t.width,t.height)}(e):f(e):d}function v(e,t,n,r){return{x:e,y:t,width:n,height:r}}var j=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=v(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,r,a,i,o,c,s,l=(r=(n=t).x,a=n.y,i=n.width,o=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(c.prototype),u(s,{x:r,y:a,width:i,height:o,top:a,right:r+i,bottom:o+a,left:r}),s);u(this,{target:e,contentRect:l})},_=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new j(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new y(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),k="undefined"!=typeof WeakMap?new WeakMap:new r,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new _(t,n,this);k.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}}));var w=void 0!==i.ResizeObserver?i.ResizeObserver:O;t.a=w},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(5);function o(e){var t=Object(i.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null),n=Object(i.get)(t,["available_blocks",e,"available"],!1),r=Object(i.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),o=Object(i.get)(t,["available_blocks",e,"details"],[]);return a()({available:n},!n&&{details:o,unavailableReason:r})}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";var r=n(30),a=n.n(r),i=n(46),o=n.n(i),c=n(0),s=n(12),l=n.n(s),u=n(96),p=n.n(u);n(151);t.a=function(e){var t=e.children,n=void 0===t?null:t,r=e.isError,i=void 0!==r&&r,s=o()(e,["children","isError"]),u=l()("help-message",{"help-message-is-error":i});return n&&Object(c.createElement)("div",a()({className:u},s),i&&Object(c.createElement)(p.a,{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),Object(c.createElement)("span",null,n))}},,function(e,t,n){"use strict";var r=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!r.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(2),i=n(52),o=n(47),c=(n(155),n(53)),s=Object(a.createSlotFill)("JetpackPluginSidebar"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-sidebar",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(r.Fragment,null,Object(r.createElement)(i.PluginSidebarMoreMenuItem,{target:"jetpack",icon:Object(r.createElement)(c.a,null)},"Jetpack"),Object(r.createElement)(i.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:Object(r.createElement)(c.a,null)},e)):null}))}})},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},function(e,t,n){var r=n(150);e.exports=function(e,t){if(null==e)return{};var n,a,i=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t){!function(){e.exports=this.wp.plugins}()},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){var t=e.label,n=e.onClick;return Object(r.createElement)(a.IconButton,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},function(e,t,n){"use strict";var r=n(54),a=n.n(r),i=n(102),o=n.n(i),c=n(103),s=n.n(c),l=n(63),u=n.n(l),p=n(104),d=n.n(p),h=n(77),m=n.n(h),f=n(105),b=n.n(f),g=n(72);function v(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,c=void 0===n?".":n,s="";return(s=(i?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,i):""+Math.round(a)).split("."))[0].length>3&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(s[1]||"").length<i&&(s[1]=s[1]||"",s[1]+=new Array(i-s[1].length+1).join("0")),s.join(c)}var j=o()("i18n-calypso"),y=[function(e){return e}],_={};function k(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function O(e){return Array.prototype.slice.call(e)}function w(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&k("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",O(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&k("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",O(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function E(e,t){var n="gettext";t.context&&(n="p"+n),"string"==typeof t.original&&"string"==typeof t.plural&&(n="n"+n);var r=function(e,t){switch(e){case"gettext":return[t.original];case"ngettext":return[t.original,t.plural,t.count];case"npgettext":return[t.context,t.original,t.plural,t.count];case"pgettext":return[t.context,t.original]}return[]}(n,t);return e[n].apply(e,r)}function C(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t));if(e.state.locale[r.original])return E(e.state.jed,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.state={numberFormatSettings:{},jed:void 0,locale:void 0,localeSlug:void 0,translations:d()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new g.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.moment=m.a,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return v(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){if(e&&e[""]&&e[""]["key-hash"]){var t=e[""]["key-hash"],n=function(e,t){var n=!1===t?"":String(t);if(void 0!==_[n+e])return _[n+e];var r=b()().update(e).digest("hex");return _[n+e]=t?r.substr(0,t):r},r=function(e){return function(t){return t.context?(t.original=n(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=n(t.original,e),t}};if("sha1"===t.substr(0,4))if(4===t.length)y.push(r(!1));else{var a=t.substr(5).indexOf("-");if(a<0){var i=Number(t.substr(5));y.push(r(i))}else for(var o=Number(t.substr(5,a)),c=Number(t.substr(6+a)),s=o;s<=c;s++)y.push(r(s))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.jed=new u.a({locale_data:{messages:this.state.locale}}),m.a.locale(this.state.localeSlug),this.state.numberFormatSettings.decimal_point=E(this.state.jed,w(["number_format_decimals"])),this.state.numberFormatSettings.thousands_sep=E(this.state.jed,w(["number_format_thousands_sep"])),"number_format_decimals"===this.state.numberFormatSettings.decimal_point&&(this.state.numberFormatSettings.decimal_point="."),"number_format_thousands_sep"===this.state.numberFormatSettings.thousands_sep&&(this.state.numberFormatSettings.thousands_sep=","),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.jed.options.locale_data.messages[t]=e[t]);this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!C(this,w(arguments))},x.prototype.translate=function(){var e,t=w(arguments),n=!t.components;if(n){try{e=JSON.stringify(t)}catch(c){n=!1}if(e){var r=this.state.translations.get(e);if(r)return r}}var a=C(this,t);if(a||(a=E(this.state.jed,t)),t.args){var i=Array.isArray(t.args)?t.args.slice(0):[t.args];i.unshift(a);try{a=u.a.sprintf.apply(u.a,i)}catch(l){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof l?window.console[o](l):window.console[o]("i18n sprintf error:",i)}}return t.components&&(a=s()({mixedString:a,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(e){a=e(a,t)})),n&&this.state.translations.set(e,a),a},x.prototype.reRenderTranslations=function(){j("Re-rendering all translations due to external request"),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var S,A,F=x,P=n(7),T=n.n(P),M=n(11),N=n.n(M),R=n(8),D=n.n(R),z=n(9),I=n.n(z),L=n(4),B=n.n(L),q=n(10),U=n.n(q),V=n(3),H=n.n(V),G=n(34),$=n.n(G),W=n(18),K=n.n(W),Z=new F,J=(Z.moment,Z.numberFormat.bind(Z)),Y=(Z.translate.bind(Z),Z.configure.bind(Z),Z.setLocale.bind(Z),Z.getLocale.bind(Z),Z.getLocaleSlug.bind(Z),Z.addTranslations.bind(Z),Z.reRenderTranslations.bind(Z),Z.registerComponentUpdateHook.bind(Z),Z.registerTranslateHook.bind(Z),Z.state,Z.stateObserver,Z.on.bind(Z),Z.off.bind(Z),Z.emit.bind(Z),A={moment:(S=Z).moment,numberFormat:S.numberFormat.bind(S),translate:S.translate.bind(S)},function(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}}(Z),n(45));function Q(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object(Y.a)(t);if(!r||isNaN(e))return null;var i=a()({},r,n),o=i.decimal,c=i.grouping,s=i.precision,l=i.symbol,u=e<0?"-":"",p=J(Math.abs(e),{decimals:s,thousandsSep:c,decPoint:o});return"".concat(u).concat(l).concat(p)}n.d(t,"a",(function(){return Q}))},function(e,t,n){"use strict";var r=n(93),a=n.n(r),i=n(5),o={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};var c,s,l=function(e){if(e in o)return o[e];throw new Error("config key `"+e+"` does not exist")},u=a()("dops:analytics");window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;var p={initialize:function(e,t,n){p.setUser(e,t),p.setSuperProps(n),p.identifyUser()},setUser:function(e,t){s={ID:e,username:t}},setSuperProps:function(e){c=e},mc:{bumpStat:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&x_"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Built stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){p.tracks.recordPageView(e),p.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,i,o){p.ga.recordPurchase(e,t,n,r,a,i,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(c&&(u("- Super Props: %o",c),t=Object(i.assign)(t,c)),u('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):u('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){var t="object"==typeof e?e:{target:e};p.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){p.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){u("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){var e={};p.ga.initialized||(s&&(e={userId:"u-"+s.ID}),window.ga("create",l("google_analytics_key"),"auto",e),p.ga.initialized=!0)},recordPageView:function(e,t){p.ga.initialize(),u("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),l("google_analytics_enabled")&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,n,r){p.ga.initialize();var a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),u(a),l("google_analytics_enabled")&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,i,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:i}),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"])}};t.a=p},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(5),a=function(e,t){return Object(r.reduce)(t,(function(t,n,r){var a=e[r],i=a.type,o=a.validator,c=a.validValues,s=a.default;return t[r]="boolean"===i?!!n:o?o(n)?n:s:c?c.includes(n)?n:s:n,t}),{})}},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(12),o=n.n(i);t.a=function(e){var t=e.size,n=void 0===t?24:t,i=e.className;return Object(r.createElement)(a.SVG,{className:o()("jetpack-logo",i),width:n,height:n,viewBox:"0 0 32 32"},Object(r.createElement)(a.Path,{className:"jetpack-logo__icon-circle",fill:"#00be28",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))}},function(e,t,n){var r=n(3);e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){r(e,t,n[t])}))}return e}},function(e,t){!function(){e.exports=this.wp.hooks}()},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-star",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.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"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(14),o=n(13),c=n(6);n(144);t.a=Object(i.compose)([Object(o.withDispatch)((function(e,t){var n=t.blockName,r=t.href,a=t.onClick;return{autosaveAndRedirect:function(t){return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return t.preventDefault(),a(n),i.next=4,regeneratorRuntime.awrap(e("core/editor").autosave());case 4:window.top.location.href=r;case 5:case"end":return i.stop()}}))}}}))])((function(e){var t=e.autosaveAndRedirect,n=e.buttonLabel,i=e.href,o=e.icon,s=e.subtitle,l=e.title;return Object(r.createElement)(c.Warning,{actions:i&&[Object(r.createElement)(a.Button,{href:i,onClick:t,target:"_top",isDefault:!0},n)],className:"jetpack-block-nudge"},Object(r.createElement)("span",{className:"jetpack-block-nudge__info"},o,Object(r.createElement)("span",{className:"jetpack-block-nudge__text-container"},Object(r.createElement)("span",{className:"jetpack-block-nudge__title"},l),Object(r.createElement)("span",{className:"jetpack-block-nudge__message"},s))))}))},function(e,t){!function(){e.exports=this.wp.date}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(15),a=n.n(r),i=n(0),o=n(12),c=n.n(o),s=n(5),l=n(16),u=n(6),p=n(13),d=n(26),h=function(e){var t=e.attributes,n=e.styleOption,r=e.viewportWidth,o=e.blockName,c=Object(l.getBlockType)(o);return Object(i.createElement)("div",{className:"block-editor-block-styles__item-preview"},Object(i.createElement)(u.BlockPreview,{viewportWidth:r,blocks:c.example?Object(l.getBlockFromExample)(o,{attributes:a()({},c.example.attributes,{style:n.value}),innerBlocks:c.example.innerBlocks}):Object(l.createBlock)(c,t)}))},m=i.memo?Object(i.memo)(h,(function(e,t){return Object(s.isEqual)(e,t)})):h;function f(e){var t,n=e.attributes,r=e.clientId,o=e.styleOptions,s=e.onSelectStyle,l=e.activeStyle,u=e.viewportWidth;return p.useSelect&&(t=Object(p.useSelect)((function(e){return(0,e("core/block-editor").getBlock)(r)}))),Object(i.createElement)("div",{className:"block-editor-block-styles"},o.map((function(e){var r=a()({},n,{style:e.value});return Object(i.createElement)("div",{key:e.value,className:c()("block-editor-block-styles__item",{"is-active":e.value===l}),onClick:function(){s({style:e.value})},onKeyDown:function(t){d.ENTER!==t.keyCode&&d.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},p.useSelect&&t&&Object(i.createElement)(m,{blockName:t.name,styleOption:e,attributes:r,viewportWidth:u}),Object(i.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(1),i=n(2),o=n(47),c=n(44),s=Object(i.createSlotFill)("JetpackLikesAndSharingPanel"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-likes-and-sharing-panel",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(c.a,null,Object(r.createElement)(i.PanelBody,{title:Object(a.__)("Likes and Sharing","jetpack")},e)):null}))}})},function(e,t,n){"use strict";var r=n(233);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=a.default.parse(e,!0,!0),r="https:"===n.protocol;delete n.protocol,delete n.auth,delete n.port;var l={slashes:!0,protocol:"https:",query:{}};if(f=n.host,/^i[0-2]\.wp\.com$/.test(f))l.pathname=n.pathname,l.hostname=n.hostname;else{if(n.search)return null;var u=a.default.format(n);l.pathname=0===u.indexOf("//")?u.substring(1):u,l.hostname=(p=l.pathname,d=(0,i.default)(p),h=(0,o.default)(d),m="i"+Math.floor(3*h()),c('determined server "%s" to use with "%s"',m,p),m+".wp.com"),r&&(l.query.ssl=1)}var p,d,h,m;var f;if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?l.query[s[b]||b]=t[b]:l.protocol="http:":l.hostname=t[b];var g=a.default.format(l);return c("generated Photon URL: %s",g),g};var a=r(n(29)),i=r(n(234)),o=r(n(235)),c=(0,r(n(236)).default)("photon"),s={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return s}));var r=n(18),a=n.n(r),i=n(22);function o(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function c(e,t){!function(e,t,n){var r=a()(t,2),c=r[0],s=r[1],h=1/c*(n-i.b*(e.childElementCount-1)-s);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=l(e),c=a.map((function(e){return(n-i.b*(e.childElementCount-1))*p(e)[0]})),s=o(c,r);a.forEach((function(e,t){var r=c[t],a=s[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=o(u(e).map((function(e){return a/d(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-i.b*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:h,rowWidth:n-i.b*(e.childElementCount-1)})}(e,function(e){return l(e).map(p).reduce((function(e,t){var n=a()(e,2),r=n[0],i=n[1],o=a()(t,2);return[r+o[0],i+o[1]]}),[0,0])}(e),t)}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function u(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function p(e){var t=u(e),n=t.length,r=1/t.map(d).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function d(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},function(e,t,n){!function(n,r){var a=Array.prototype,i=Object.prototype,o=a.slice,c=i.hasOwnProperty,s=a.forEach,l={},u={forEach:function(e,t,n){var r,a,i;if(null!==e)if(s&&e.forEach===s)e.forEach(t,n);else if(e.length===+e.length){for(r=0,a=e.length;r<a;r++)if(r in e&&t.call(n,e[r],r,e)===l)return}else for(i in e)if(c.call(e,i)&&t.call(n,e[i],i,e)===l)return},extend:function(e){return this.forEach(o.call(arguments,1),(function(t){for(var n in t)e[n]=t[n]})),e}},p=function(e){if(this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages",debug:!1},this.options=u.extend({},this.defaults,e),this.textdomain(this.options.domain),e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};function d(e){return p.PF.compile(e||"nplurals=2; plural=(n != 1);")}function h(e,t){this._key=e,this._i18n=t}p.context_delimiter=String.fromCharCode(4),u.extend(h.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return"[object Array]"!={}.toString.call(e)&&(e=[].slice.call(arguments,0)),(e&&e.length?p.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),u.extend(p.prototype,{translate:function(e){return new h(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,void 0,void 0,e)},dgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},dcgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},ngettext:function(e,t,n){return this.dcnpgettext.call(this,void 0,void 0,e,t,n)},dngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},dcngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},pgettext:function(e,t){return this.dcnpgettext.call(this,void 0,e,t)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,t,n,r){return this.dcnpgettext.call(this,void 0,e,t,n,r)},dnpgettext:function(e,t,n,r,a){return this.dcnpgettext.call(this,e,t,n,r,a)},dcnpgettext:function(e,t,n,r,a){var i;if(r=r||n,e=e||this._textdomain,!this.options)return(i=new p).dcnpgettext.call(i,void 0,void 0,n,r,a);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");var o,c,s,l=t?t+p.context_delimiter+n:n,u=this.options.locale_data,h=u[e],m=(u.messages||this.defaults.locale_data.messages)[""],f=h[""].plural_forms||h[""]["Plural-Forms"]||h[""]["plural-forms"]||m.plural_forms||m["Plural-Forms"]||m["plural-forms"];if(void 0===a)s=0;else{if("number"!=typeof a&&(a=parseInt(a,10),isNaN(a)))throw new Error("The number that was passed in is not a number.");s=d(f)(a)}if(!h)throw new Error("No domain named `"+e+"` could be found.");return!(o=h[l])||s>o.length?(this.options.missing_key_callback&&this.options.missing_key_callback(l,e),c=[n,r],!0===this.options.debug&&console.log(c[d(f)(a)]),c[d()(a)]):(c=o[s])||(c=[n,r])[d()(a)]}});var m,f,b=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var a,i,o,c,s,l,u,p=1,d=n.length,h="",m=[];for(i=0;i<d;i++)if("string"===(h=e(n[i])))m.push(n[i]);else if("array"===h){if((c=n[i])[2])for(a=r[p],o=0;o<c[2].length;o++){if(!a.hasOwnProperty(c[2][o]))throw b('[sprintf] property "%s" does not exist',c[2][o]);a=a[c[2][o]]}else a=c[1]?r[c[1]]:r[p++];if(/[^s]/.test(c[8])&&"number"!=e(a))throw b("[sprintf] expecting number but found %s",e(a));switch(null==a&&(a=""),c[8]){case"b":a=a.toString(2);break;case"c":a=String.fromCharCode(a);break;case"d":a=parseInt(a,10);break;case"e":a=c[7]?a.toExponential(c[7]):a.toExponential();break;case"f":a=c[7]?parseFloat(a).toFixed(c[7]):parseFloat(a);break;case"o":a=a.toString(8);break;case"s":a=(a=String(a))&&c[7]?a.substring(0,c[7]):a;break;case"u":a=Math.abs(a);break;case"x":a=a.toString(16);break;case"X":a=a.toString(16).toUpperCase()}a=/[def]/.test(c[8])&&c[3]&&a>=0?"+"+a:a,l=c[4]?"0"==c[4]?"0":c[4].charAt(1):" ",u=c[6]-String(a).length,s=c[6]?t(l,u):"",m.push(c[5]?a+s:s+a)}return m.join("")},n.cache={},n.parse=function(e){for(var t=e,n=[],r=[],a=0;t;){if(null!==(n=/^[^\x25]+/.exec(t)))r.push(n[0]);else if(null!==(n=/^\x25{2}/.exec(t)))r.push("%");else{if(null===(n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t)))throw"[sprintf] huh?";if(n[2]){a|=1;var i=[],o=n[2],c=[];if(null===(c=/^([a-z_][a-z_\d]*)/i.exec(o)))throw"[sprintf] huh?";for(i.push(c[1]);""!==(o=o.substring(c[0].length));)if(null!==(c=/^\.([a-z_][a-z_\d]*)/i.exec(o)))i.push(c[1]);else{if(null===(c=/^\[(\d+)\]/.exec(o)))throw"[sprintf] huh?";i.push(c[1])}n[2]=i}else a|=2;if(3===a)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),g=function(e,t){return t.unshift(e),b.apply(null,t)};p.parse_plural=function(e,t){return e=e.replace(/n/g,t),p.parse_expression(e)},p.sprintf=function(e,t){return"[object Array]"=={}.toString.call(t)?g(e,[].slice.call(t)):b.apply(this,[].slice.call(arguments))},p.prototype.sprintf=function(){return p.sprintf.apply(this,arguments)},(p.PF={}).parse=function(e){var t=p.PF.extractPluralExpr(e);return p.PF.parser.parse.call(p.PF.parser,t)},p.PF.compile=function(e){var t=p.PF.parse(e);return function(e){return!0===(n=p.PF.interpreter(t)(e))?1:n||0;var n}},p.PF.interpreter=function(e){return function(t){switch(e.type){case"GROUP":return p.PF.interpreter(e.expr)(t);case"TERNARY":return p.PF.interpreter(e.expr)(t)?p.PF.interpreter(e.truthy)(t):p.PF.interpreter(e.falsey)(t);case"OR":return p.PF.interpreter(e.left)(t)||p.PF.interpreter(e.right)(t);case"AND":return p.PF.interpreter(e.left)(t)&&p.PF.interpreter(e.right)(t);case"LT":return p.PF.interpreter(e.left)(t)<p.PF.interpreter(e.right)(t);case"GT":return p.PF.interpreter(e.left)(t)>p.PF.interpreter(e.right)(t);case"LTE":return p.PF.interpreter(e.left)(t)<=p.PF.interpreter(e.right)(t);case"GTE":return p.PF.interpreter(e.left)(t)>=p.PF.interpreter(e.right)(t);case"EQ":return p.PF.interpreter(e.left)(t)==p.PF.interpreter(e.right)(t);case"NEQ":return p.PF.interpreter(e.left)(t)!=p.PF.interpreter(e.right)(t);case"MOD":return p.PF.interpreter(e.left)(t)%p.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},p.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t,n=/nplurals\=(\d+);/,r=e.match(n);if(!(r.length>1))throw new Error("nplurals not found in plural_forms string: "+e);if(r[1],!((t=(e=e.replace(n,"")).match(/plural\=(.*);/))&&t.length>1))throw new Error("`plural` expression not found: "+e);return t[1]},p.PF.parser=(m={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(e,t,n,r,a,i,o){var c=i.length-1;switch(a){case 1:return{type:"GROUP",expr:i[c-1]};case 2:this.$={type:"TERNARY",expr:i[c-4],truthy:i[c-2],falsey:i[c]};break;case 3:this.$={type:"OR",left:i[c-2],right:i[c]};break;case 4:this.$={type:"AND",left:i[c-2],right:i[c]};break;case 5:this.$={type:"LT",left:i[c-2],right:i[c]};break;case 6:this.$={type:"LTE",left:i[c-2],right:i[c]};break;case 7:this.$={type:"GT",left:i[c-2],right:i[c]};break;case 8:this.$={type:"GTE",left:i[c-2],right:i[c]};break;case 9:this.$={type:"NEQ",left:i[c-2],right:i[c]};break;case 10:this.$={type:"EQ",left:i[c-2],right:i[c]};break;case 11:this.$={type:"MOD",left:i[c-2],right:i[c]};break;case 12:this.$={type:"GROUP",expr:i[c-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(e)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(e,t){throw new Error(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],i=this.table,o="",c=0,s=0,l=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;function p(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}a.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var d,h,m,f,b,g,v,j,y,_,k={};;){if(m=n[n.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==d&&(d=p()),f=i[m]&&i[m][d]),void 0===f||!f.length||!f[0]){if(!l){for(g in y=[],i[m])this.terminals_[g]&&g>2&&y.push("'"+this.terminals_[g]+"'");var O="";O=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+y.join(", ")+", got '"+this.terminals_[d]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(O,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:y})}if(3==l){if(1==d)throw new Error(O||"Parsing halted.");s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,d=p()}for(;!(2..toString()in i[m]);){if(0==m)throw new Error(O||"Parsing halted.");_=1,n.length=n.length-2*_,r.length=r.length-_,a.length=a.length-_,m=n[n.length-1]}h=d,d=2,f=i[m=n[n.length-1]]&&i[m][2],l=3}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+d);switch(f[0]){case 1:n.push(d),r.push(this.lexer.yytext),a.push(this.lexer.yylloc),n.push(f[1]),d=null,h?(d=h,h=null):(s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,l>0&&l--);break;case 2:if(v=this.productions_[f[1]][1],k.$=r[r.length-v],k._$={first_line:a[a.length-(v||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(v||1)].first_column,last_column:a[a.length-1].last_column},void 0!==(b=this.performAction.call(k,o,s,c,this.yy,f[1],r,a)))return b;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),a=a.slice(0,-1*v)),n.push(this.productions_[f[1]][0]),r.push(k.$),a.push(k._$),j=i[n[n.length-2]][n[n.length-1]],n.push(j);break;case 3:return!0}}return!0}},f=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;var e,t;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if(e=this._input.match(this.rules[n[r]]))return(t=e[0].match(/\n.*/g))&&(this.yylineno+=t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:t?t[t.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],this.performAction.call(this,this.yy,this,n[r],this.conditionStack[this.conditionStack.length-1])||void 0;if(""===this._input)return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},rules:[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return e}(),m.lexer=f,m),e.exports&&(t=e.exports=p),t.Jed=p}()},function(e,t){var n=1e3,r=6e4,a=36e5,i=24*a;function o(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,t){t=t||{};var c=typeof e;if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\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(!t)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return 6048e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*a;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===c&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return o(e,t,i,"day");if(t>=a)return o(e,t,a,"hour");if(t>=r)return o(e,t,r,"minute");if(t>=n)return o(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=i)return Math.round(e/i)+"d";if(t>=a)return Math.round(e/a)+"h";if(t>=r)return Math.round(e/r)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(s){a=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(a)throw i}}return n}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},function(e,t,n){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},r.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},r.prototype.before=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},r.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},r.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=r},function(e,t,n){"use strict";var r=n(92),a=n(91);function i(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function c(e){return 1===e.length?"0"+e:e}function s(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var o=e.charCodeAt(a);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):i(e,a)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++a)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=c(e[n].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=o(a)),n+=s(a.toString(16))}return n},t.zero2=c,t.zero8=s,t.join32=function(e,t,n,a){var i=n-t;r(i%4==0);for(var o=new Array(i/4),c=0,s=t;c<o.length;c++,s+=4){var l;l="big"===a?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],o[c]=l>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var i=e[r];"big"===t?(n[a]=i>>>24,n[a+1]=i>>>16&255,n[a+2]=i>>>8&255,n[a+3]=255&i):(n[a+3]=i>>>24,n[a+2]=i>>>16&255,n[a+1]=i>>>8&255,n[a]=255&i)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],i=r+e[t+1]>>>0,o=(i<r?1:0)+n+a;e[t]=o>>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,i,o,c){var s=0,l=t;return s+=(l=l+r>>>0)<t?1:0,s+=(l=l+i>>>0)<i?1:0,e+n+a+o+(s+=(l=l+c>>>0)<c?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,i,o,c){return t+r+i+c>>>0},t.sum64_5_hi=function(e,t,n,r,a,i,o,c,s,l){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+i>>>0)<i?1:0,u+=(p=p+c>>>0)<c?1:0,e+n+a+o+s+(u+=(p=p+l>>>0)<l?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,i,o,c,s,l){return t+r+i+c+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){"use strict";var r,a="object"==typeof Reflect?Reflect:null,i=a&&"function"==typeof a.apply?a.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=a&&"function"==typeof a.ownKeys?a.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var s=10;function l(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var a,i,o,c;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]),void 0===o)o=i[t]=n,++e._eventsCount;else if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(a=l(e))>0&&o.length>a&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,c=s,console&&console.warn&&console.warn(c)}return e}function p(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,i(this.listener,this.target,e))}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=p.bind(r);return a.listener=n,r.wrapFn=a,a}function h(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):f(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function f(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return l(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,a=this._events;if(void 0!==a)r=r&&void 0===a.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var c=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw c.context=o,c}var s=a[e];if(void 0===s)return!1;if("function"==typeof s)i(s,this,t);else{var l=s.length,u=f(s,l);for(n=0;n<l;++n)i(u[n],this,t)}return!0},c.prototype.addListener=function(e,t){return u(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return u(this,e,t,!0)},c.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,d(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,d(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,a,i,o;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,a=i;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(a=i[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return h(this,e,!0)},c.prototype.rawListeners=function(e){return h(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},c.prototype.listenerCount=m,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(18),a=n.n(r),i=n(5);n(135);function o(){var e,t,r,o,c,s,l,u=arguments;return regeneratorRuntime.async((function(p){for(;;)switch(p.prev=p.next){case 0:return e=u.length>0&&void 0!==u[0]?u[0]:".swiper-container",t=u.length>1&&void 0!==u[1]?u[1]:{},r=u.length>2&&void 0!==u[2]?u[2]:{},o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,touchStartPreventDefault:!1,on:Object(i.mapValues)(r,(function(e){return function(){e(this)}}))},p.next=6,regeneratorRuntime.awrap(Promise.all([n.e(17).then(n.t.bind(null,266,7)),n.e(17).then(n.t.bind(null,267,7))]));case 6:return c=p.sent,s=a()(c,1),l=s[0].default,p.abrupt("return",new l(e,Object(i.merge)({},o,t)));case 10:case"end":return p.stop()}}))}},function(e,t){!function(){e.exports=this.wp.escapeHtml}()},,function(e,t,n){"use strict";var r=n(18),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(1),_=n(5),k=n(2),O=(n(131),function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"handleClick",(function(){(0,n.props.onClick)(m()(n))})),v()(m()(n),"getPoint",(function(){var e=n.props.point;return[e.coordinates.longitude,e.coordinates.latitude]})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){this.renderMarker()}},{key:"componentWillUnmount",value:function(){this.marker&&this.marker.remove()}},{key:"componentDidUpdate",value:function(){this.renderMarker()}},{key:"renderMarker",value:function(){var e=this.props,t=e.map,n=e.point,r=e.mapboxgl,a=e.markerColor,i=this.handleClick,o=[n.coordinates.longitude,n.coordinates.latitude],c=this.marker?this.marker.getElement():document.createElement("div");this.marker?this.marker.setLngLat(o):(c.className="wp-block-jetpack-map-marker",this.marker=new r.Marker(c).setLngLat(o).setOffset([0,-19]).addTo(t),this.marker.getElement().addEventListener("click",i)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+a+'" mask="url(#c)"/></g></svg>'}},{key:"render",value:function(){return null}}]),t}(j.Component));O.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:function(){}};var w=O,E=function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"closeClick",(function(){n.props.unsetActiveMarker()})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this.props.mapboxgl;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}},{key:"componentDidUpdate",value:function(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}},{key:"render",value:function(){return this.el?Object(j.createPortal)(this.props.children,this.el):null}},{key:"openWindow",value:function(){var e=this.props,t=e.map,n=e.activeMarker;this.infowindow.setLngLat(n.getPoint()).addTo(t)}},{key:"closeWindow",value:function(){this.infowindow.remove()}}]),t}(j.Component);E.defaultProps={unsetActiveMarker:function(){},activeMarker:null,map:null,mapboxgl:null};var C=E;var x=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onMarkerClick",(function(t){var n=e.props.onMarkerClick;e.setState({activeMarker:t}),n()})),v()(m()(e),"onMapClick",(function(){e.setState({activeMarker:null})})),v()(m()(e),"clearCurrentMarker",(function(){e.setState({activeMarker:null})})),v()(m()(e),"updateActiveMarker",(function(t){var n=e.props.points,r=e.state.activeMarker.props.index,a=n.slice(0);Object(_.assign)(a[r],t),e.props.onSetPoints(a)})),v()(m()(e),"deleteActiveMarker",(function(){var t=e.props.points,n=e.state.activeMarker.props.index,r=t.slice(0);r.splice(n,1),e.props.onSetPoints(r),e.setState({activeMarker:null})})),v()(m()(e),"sizeMap",(function(){var t=e.state.map,n=e.mapRef.current,r=n.offsetWidth,a=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,i=Math.min(.75*r,a);n.style.height=i+"px",t.resize(),e.setBoundsByMarkers()})),v()(m()(e),"setBoundsByMarkers",(function(){var t=e.props,n=t.admin,r=t.onSetMapCenter,a=t.onSetZoom,i=t.points,o=t.zoom,c=e.state,s=c.map,l=c.activeMarker,u=c.mapboxgl,p=c.zoomControl,d=c.boundsSetProgrammatically;if(s&&(i.length&&n?s.dragPan.disable():s.dragPan.enable(),i.length&&!l)){var h=new u.LngLatBounds;if(i.forEach((function(e){h.extend([e.coordinates.longitude,e.coordinates.latitude])})),r(h.getCenter()),i.length>1){s.fitBounds(h,{padding:{top:40,bottom:40,left:20,right:20}}),e.setState({boundsSetProgrammatically:!0});try{s.removeControl(p)}catch(m){}}else{if(s.setCenter(h.getCenter()),d){s.setZoom(12),a(12)}else s.setZoom(parseInt(o,10));s.addControl(p),e.setState({boundsSetProgrammatically:!1})}}})),v()(m()(e),"scriptsLoaded",(function(){var t=e.props,n=t.mapCenter,r=t.points;e.setState({loaded:!0}),r.length,e.initMap(n)})),v()(m()(e),"googlePoint2Mapbox",(function(e){return e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0}})),e.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},e.mapRef=Object(j.createRef)(),e.debouncedSizeMap=Object(_.debounce)(e.sizeMap,250),e}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.points,r=t.admin,a=t.children,i=t.markerColor,o=this.state,c=o.map,s=o.activeMarker,l=o.mapboxgl,u=this.onMarkerClick,p=this.deleteActiveMarker,d=this.updateActiveMarker,h=Object(_.get)(s,"props.point")||{},m=h.title,f=h.caption,b=j.Children.map(a,(function(e){if("AddPoint"===Object(_.get)(e,"props.tagName"))return e})),g=c&&l&&n.map((function(e,t){return Object(j.createElement)(w,{key:t,point:e,index:t,map:c,mapboxgl:l,markerColor:i,onClick:u})})),v=l&&Object(j.createElement)(C,{activeMarker:s,map:c,mapboxgl:l,unsetActiveMarker:function(){return e.setState({activeMarker:null})}},s&&r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)(k.TextControl,{label:Object(y.__)("Marker Title","jetpack"),value:m,onChange:function(e){return d({title:e})}}),Object(j.createElement)(k.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:Object(y.__)("Marker Caption","jetpack"),value:f,rows:"2",tag:"textarea",onChange:function(e){return d({caption:e})}}),Object(j.createElement)(k.Button,{onClick:p,className:"wp-block-jetpack-map__delete-btn"},Object(j.createElement)(k.Dashicon,{icon:"trash",size:"15"})," ",Object(y.__)("Delete Marker","jetpack"))),s&&!r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)("h3",null,m),Object(j.createElement)("p",null,f)));return Object(j.createElement)(j.Fragment,null,Object(j.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},g),v,b)}},{key:"componentDidMount",value:function(){this.props.apiKey&&this.loadMapLibraries()}},{key:"componentWillUnmount",value:function(){this.debouncedSizeMap.cancel()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.apiKey,r=t.children,a=t.points,i=t.mapStyle,o=t.mapDetails,c=this.state.map;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),i===e.mapStyle&&o===e.mapDetails||c.setStyle(this.getMapStyle())}},{key:"getMapStyle",value:function(){var e=this.props;return function(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}(e.mapStyle,e.mapDetails)}},{key:"getMapType",value:function(){switch(this.props.mapStyle){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";case"black_and_white":default:return"ROADMAP"}}},{key:"loadMapLibraries",value:function(){var e=this,t=this.props.apiKey;Promise.all([n.e(16).then(n.t.bind(null,306,7)),n.e(16).then(n.t.bind(null,307,7))]).then((function(n){var r=a()(n,1)[0].default;r.accessToken=t,e.setState({mapboxgl:r},e.scriptsLoaded)}))}},{key:"initMap",value:function(e){var t=this,n=this.state.mapboxgl,r=this.props,a=r.zoom,i=r.onMapLoaded,o=r.onError,c=r.admin,s=null;try{s=new n.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(a,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(u){return void o("mapbox_error",u.message)}s.on("error",(function(e){o("mapbox_error",e.error.message)}));var l=new n.NavigationControl({showCompass:!1,showZoom:!0});s.on("zoomend",(function(){t.props.onSetZoom(s.getZoom())})),s.on("moveend",(function(){var e=t.props,n=e.onSetMapCenter;e.points.length<1&&n(s.getCenter())})),s.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:s,zoomControl:l},(function(){t.debouncedSizeMap(),s.addControl(l),c||s.addControl(new n.FullscreenControl),t.mapRef.current.addEventListener("alignmentChanged",t.debouncedSizeMap),s.resize(),i(),t.setState({loaded:!0}),window.addEventListener("resize",t.debouncedSizeMap)}))}}]),t}(j.Component);x.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:function(){},onSetMapCenter:function(){},onMapLoaded:function(){},onMarkerClick:function(){},onError:function(){},markerColor:"red",apiKey:null,mapCenter:{}};t.a=x},function(e,t){!function(){e.exports=this.moment}()},function(e,t){!function(){e.exports=this.wp.notices}()},function(e,t){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set}catch(n){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var i=e[r];if("[object Array]"!==Object.prototype.toString.call(i)&&2===i.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(i[0],i[1])}else for(var o in e)e.hasOwnProperty(o)&&this.append(o,e[o])}},i=a.prototype;i.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},i.delete=function(e){delete this._entries[e]},i.get=function(e){return e in this._entries?this._entries[e][0]:null},i.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},i.has=function(e){return e in this._entries},i.set=function(e,t){this._entries[e]=[String(t)]},i.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},i.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},i.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},i.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(i[Symbol.iterator]=i.entries),i.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var i=e.URLSearchParams.prototype;"function"!=typeof i.sort&&(i.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof i._fromString&&Object.defineProperty(i,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,i=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<i.length;n++)r=i[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c%20d","http://a/c%20d"===t.href&&t.searchParams}catch(n){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(p){throw new Error("URL unable to set base "+n+" due to "+p)}}var i=a.createElement("a");if(i.href=t,r&&(a.body.appendChild(i),i.href=i.href),":"===i.protocol||!/:/.test(i.href))throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:i});var o=new e.URLSearchParams(this.search),c=!0,s=!0,l=this;["append","delete","set"].forEach((function(e){var t=o[e];o[e]=function(){t.apply(o,arguments),c&&(s=!1,l.search=o.toString(),s=!0)}})),Object.defineProperty(this,"searchParams",{value:o,enumerable:!0});var u=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==u&&(u=this.search,s&&(c=!1,this.searchParams._fromString(this.search),c=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},function(e,t,n){},function(e,t,n){"use strict";e.exports=n(163)},function(e,t,n){"use strict";e.exports.encode=n(164),e.exports.decode=n(165),e.exports.format=n(166),e.exports.parse=n(167)},function(e,t){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},function(e,t){e.exports=/[\0-\x1F\x7F-\x9F]/},function(e,t){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},function(e,t,n){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",a="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",i=new RegExp("^(?:"+r+"|"+a+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),o=new RegExp("^(?:"+r+"|"+a+")");e.exports.HTML_TAG_RE=i,e.exports.HTML_OPEN_CLOSE_TAG_RE=o},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a,i,o=e.pos,c=e.src.charCodeAt(o);if(t)return!1;if(126!==c)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(c),a<2)return!1;for(a%2&&(e.push("text","",0).content=i,a--),n=0;n<a;n+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:c,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o=[],c=e.delimiters,s=e.delimiters.length;for(t=0;t<s;t++)126===(r=c[t]).marker&&-1!==r.end&&(a=c[r.end],(i=e.tokens[r.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[a.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[a.token-1].type&&"~"===e.tokens[a.token-1].content&&o.push(a.token-1));for(;o.length;){for(n=(t=o.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a=e.pos,i=e.src.charCodeAt(a);if(t)return!1;if(95!==i&&42!==i)return!1;for(r=e.scanDelims(e.pos,42===i),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:r.length,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o,c=e.delimiters;for(t=e.delimiters.length-1;t>=0;t--)95!==(n=c[t]).marker&&42!==n.marker||-1!==n.end&&(r=c[n.end],o=t>0&&c[t-1].end===n.end+1&&c[t-1].token===n.token-1&&c[n.end+1].token===r.token+1&&c[t-1].marker===n.marker,i=String.fromCharCode(n.marker),(a=e.tokens[n.token]).type=o?"strong_open":"em_open",a.tag=o?"strong":"em",a.nesting=1,a.markup=o?i+i:i,a.content="",(a=e.tokens[r.token]).type=o?"strong_close":"em_close",a.tag=o?"strong":"em",a.nesting=-1,a.markup=o?i+i:i,a.content="",o&&(e.tokens[c[t-1].token].content="",e.tokens[c[n.end+1].token].content="",t--))}},function(e,t,n){},function(e,t,n){"use strict";function r(e){return function(){return e}}var a=function(){};a.thatReturns=r,a.thatReturnsFalse=r(!1),a.thatReturnsTrue=r(!0),a.thatReturnsNull=r(null),a.thatReturnsThis=function(){return this},a.thatReturnsArgument=function(e){return e},e.exports=a},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},function(e,t,n){t.log=function(){var e;return"object"==typeof console&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(142)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e){e.exports=JSON.parse('{"production":["business-hours","calendly","contact-form","contact-info","eventbrite","gif","likes","mailchimp","map","markdown","opentable","pinterest","publicize","rating-star","recurring-payments","related-posts","repeat-visitor","sharing","shortlinks","simple-payments","slideshow","subscriptions","tiled-gallery","videopress","wordads"],"beta":["amazon","seo"]}')},function(e,t,n){"use strict";var r=n(147),a=n(148);function i(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),i=t.length>0?t.join("="):void 0;i=void 0===i?null:decodeURIComponent(i),n(decodeURIComponent(a),i,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[i(t,e),"[",r,"]"].join(""):[i(t,e),"[",i(r,e),"]=",i(n,e)].join("")};case"bracket":return function(t,n){return null===n?i(t,e):[i(t,e),"[]=",i(n,e)].join("")};default:return function(t,n){return null===n?i(t,e):[i(t,e),"=",i(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return i(r,t);if(Array.isArray(a)){var o=[];return a.slice().forEach((function(e){void 0!==e&&o.push(n(r,e,o.length))})),o.join("&")}return i(r,t)+"="+i(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-notice-outline",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){e.exports=n.p+"images/eventbrite-in-page-example-e7ade5e253cebf23789d136227b66aa4.png"},function(e,t,n){e.exports=n.p+"images/eventbrite-modal-example-38b56f85505164d217370e285a7207a9.png"},function(e,t,n){e.exports=n.p+"images/map-preview-1744c8f7587de6d8857dbbe7d7cf5cb8.jpg"},function(e,t,n){"use strict";e.exports=n(162)},function(e,t,n){"use strict";e.exports=function(e){var t,n={};return function e(t,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)e(t,n[r]);else for(r in n)t[r]=(t[r]||[]).concat(n[r])}(n,e),(t=function(e){return function(t){return function(r){var a,i,o=n[r.type],c=t(r);if(o)for(a=0;a<o.length;a++)(i=o[a](r,e))&&e.dispatch(i);return c}}}).effects=n,t}},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(219)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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},a=c(n(34)),i=c(n(220)),o=c(n(223));function c(e){return e&&e.__esModule?e:{default:e}}var s=void 0;function l(e,t){var n,o,c,u,p,d,h,m,f=[],b={};for(d=0;d<e.length;d++)if("string"!==(p=e[d]).type){if(!t.hasOwnProperty(p.value)||void 0===t[p.value])throw new Error("Invalid interpolation, missing component node: `"+p.value+"`");if("object"!==r(t[p.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+p.value+"`","\n> "+s);if("componentClose"===p.type)throw new Error("Missing opening component token: `"+p.value+"`");if("componentOpen"===p.type){n=t[p.value],c=d;break}f.push(t[p.value])}else f.push(p.value);return n&&(u=function(e,t){var n,r,a=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===a.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+a.value+"`")}(c,e),h=l(e.slice(c+1,u),t),o=a.default.cloneElement(n,{},h),f.push(o),u<e.length-1&&(m=l(e.slice(u+1),t),f=f.concat(m))),1===f.length?f[0]:(f.forEach((function(e,t){e&&(b["interpolation-child-"+t]=e)})),(0,i.default)(b))}t.default=function(e){var t=e.mixedString,n=e.components,a=e.throwErrors;if(s=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,o.default)(t);try{return l(i,n)}catch(c){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+c.message+"`");return t}}},function(e,t,n){var r=n(72),a=n(91);function i(e){if(!(this instanceof i))return new i(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=i,a(i,r.EventEmitter),Object.defineProperty(i.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),i.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},i.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},i.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},i.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},i.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},i.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},i.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},i.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},function(e,t,n){"use strict";var r=n(71),a=n(224),i=n(225),o=r.rotl32,c=r.sum32,s=r.sum32_5,l=i.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],i=this.h[1],u=this.h[2],d=this.h[3],h=this.h[4];for(r=0;r<n.length;r++){var m=~~(r/20),f=s(o(a,5),l(m,i,u,d),h,n[r],p[m]);h=d,d=u,u=o(i,30),i=a,a=f}this.h[0]=c(this.h[0],a),this.h[1]=c(this.h[1],i),this.h[2]=c(this.h[2],u),this.h[3]=c(this.h[3],d),this.h[4]=c(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){e.exports=n.p+"images/paypal-button-1e53882e702881f8dfd958c141e65383.png"},function(e,t,n){e.exports=n.p+"images/paypal-button-2x-fe4d34770a47484f401cecbb892f8456.png"},function(e,t,n){e.exports=n.p+"images/simple-payments_example-1-f3666e40d28c564ecf04f814e9a9f236.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-1-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-2-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-3-75cfaba94fc18a9c4b2bc164bd070c08.jpg"},function(e,t){!function(){e.exports=this.wp.tokenList}()},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-1-e124e79c7cd0291640efe8f28aa9a6cd.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-2-ee687d7366c359324b23a9681fb2cf92.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-3-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-4-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-5-3fafa6df43363f274a371ed90dbce254.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-6-797246061ba8a7039b660584e9dc8946.jpg"},function(e,t,n){e.exports=n.p+"images/example_300x250-212e56e8c2ac91bdcbbd742cd7591e17.png"},function(e,t,n){e.exports=n.p+"images/example_728x90-a5e5ae2b8f307e343aea049530c1742d.png"},function(e,t,n){e.exports=n.p+"images/example_320x50-a1b9b09ff673b75f41d0b32162387f89.png"},function(e,t,n){e.exports=n.p+"images/example_160x600-a12cea65e6d4ce4b6f41d8c4f3184ded.png"},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){},function(e,t){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})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){(function(e){var r;!function(a){t&&t.nodeType,e&&e.nodeType;var i="object"==typeof window&&window;i.global!==i&&i.window!==i&&i.self;var o,c=2147483647,s=/^xn--/,l=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,h=String.fromCharCode;function m(e){throw RangeError(p[e])}function f(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+f((e=e.replace(u,".")).split("."),t).join(".")}function g(e){for(var t,n,r=[],a=0,i=e.length;a<i;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<i?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function v(e){return f(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function y(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=36)e=d(e/35);return d(r+36*e/(e+38))}function _(e){var t,n,r,a,i,o,s,l,u,p,h,f=[],b=e.length,g=0,j=128,_=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&m("not-basic"),f.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(i=g,o=1,s=36;a>=b&&m("invalid-input"),((l=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||l>d((c-g)/o))&&m("overflow"),g+=l*o,!(l<(u=s<=_?1:s>=_+26?26:s-_));s+=36)o>d(c/(p=36-u))&&m("overflow"),o*=p;_=y(g-i,t=f.length+1,0==i),d(g/t)>c-j&&m("overflow"),j+=d(g/t),g%=t,f.splice(g++,0,j)}return v(f)}function k(e){var t,n,r,a,i,o,s,l,u,p,f,b,v,_,k,O=[];for(b=(e=g(e)).length,t=128,n=0,i=72,o=0;o<b;++o)(f=e[o])<128&&O.push(h(f));for(r=a=O.length,a&&O.push("-");r<b;){for(s=c,o=0;o<b;++o)(f=e[o])>=t&&f<s&&(s=f);for(s-t>d((c-n)/(v=r+1))&&m("overflow"),n+=(s-t)*v,t=s,o=0;o<b;++o)if((f=e[o])<t&&++n>c&&m("overflow"),f==t){for(l=n,u=36;!(l<(p=u<=i?1:u>=i+26?26:u-i));u+=36)k=l-p,_=36-p,O.push(h(j(p+k%_,0))),l=d(k/_);O.push(h(j(l,0))),i=y(n,v,r==a),n=0,++r}++n,++t}return O.join("")}o={version:"1.3.2",ucs2:{decode:g,encode:v},decode:_,encode:k,toASCII:function(e){return b(e,(function(e){return l.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return b(e,(function(e){return s.test(e)?_(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()}).call(this,n(137)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(140),t.encode=t.stringify=n(141)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,a){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;var o=/\+/g;e=e.split(t);var c=1e3;a&&"number"==typeof a.maxKeys&&(c=a.maxKeys);var s=e.length;c>0&&s>c&&(s=c);for(var l=0;l<s;++l){var u,p,d,h,m=e[l].replace(o,"%20"),f=m.indexOf(n);f>=0?(u=m.substr(0,f),p=m.substr(f+1)):(u=m,p=""),d=decodeURIComponent(u),h=decodeURIComponent(p),r(i,d)?Array.isArray(i[d])?i[d].push(h):i[d]=[i[d],h]:i[d]=h}return i}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,a){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var i=encodeURIComponent(r(a))+n;return Array.isArray(e[a])?e[a].map((function(e){return i+encodeURIComponent(r(e))})).join(t):i+encodeURIComponent(r(e[a]))})).join(t):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(e)):""}},function(e,t,n){var r=n(21);e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return a.colors[Math.abs(t)%a.colors.length]}function a(e){var n;function r(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if(r.enabled){var o=r,c=Number(new Date),s=c-(n||c);o.diff=s,o.prev=n,o.curr=c,n=c,t[0]=a.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var r=a.formatters[n];if("function"==typeof r){var i=t[l];e=r.call(o,i),t.splice(l,1),l--}return e})),a.formatArgs.call(o,t);var u=o.log||a.log;u.apply(o,t)}}return r.namespace=e,r.enabled=a.enabled(e),r.useColors=a.useColors(),r.color=t(e),r.destroy=i,r.extend=o,"function"==typeof a.init&&a.init(r),a.instances.push(r),r}function i(){var e=a.instances.indexOf(this);return-1!==e&&(a.instances.splice(e,1),!0)}function o(e,t){var n=a(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function c(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},a.disable=function(){var e=[].concat(r(a.names.map(c)),r(a.skips.map(c).map((function(e){return"-"+e})))).join(",");return a.enable(""),e},a.enable=function(e){var t;a.save(e),a.names=[],a.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length;for(t=0;t<r;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?a.skips.push(new RegExp("^"+e.substr(1)+"$")):a.names.push(new RegExp("^"+e+"$")));for(t=0;t<a.instances.length;t++){var i=a.instances[t];i.enabled=a.enabled(i.namespace)}},a.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=a.skips.length;t<n;t++)if(a.skips[t].test(e))return!1;for(t=0,n=a.names.length;t<n;t++)if(a.names[t].test(e))return!0;return!1},a.humanize=n(64),Object.keys(e).forEach((function(t){a[t]=e[t]})),a.instances=[],a.names=[],a.skips=[],a.formatters={},a.selectColor=t,a.enable(a.load()),a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,t){for(var n,c,s=o(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))a.call(n,u)&&(s[u]=n[u]);if(r){c=r(n);for(var p=0;p<c.length;p++)i.call(n,c[p])&&(s[c[p]]=n[c[p]])}}return s}},function(e,t,n){},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var r=n(19),a=n(170),i=n(174),o=n(175),c=n(183),s=n(197),l=n(210),u=n(82),p=n(212),d={default:n(213),zero:n(214),commonmark:n(215)},h=/^(vbscript|javascript|file|data):/,m=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!h.test(t)||!!m.test(t)}var b=["http:","https:","mailto:"];function g(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(n){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(n){}return u.decode(u.format(t))}function j(e,t){if(!(this instanceof j))return new j(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new s,this.block=new c,this.core=new o,this.renderer=new i,this.linkify=new l,this.validateLink=f,this.normalizeLink=g,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}j.prototype.set=function(e){return r.assign(this.options,e),this},j.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},j.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},j.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},j.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},j.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},j.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},j.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},j.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=j},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e,t,n){"use strict";var r={};function a(e,t,n){var i,o,c,s,l,u="";for("string"!=typeof t&&(n=t,t=a.defaultChars),void 0===n&&(n=!0),l=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?a.push(n):a.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)a[e.charCodeAt(t)]=e[t];return a}(t),i=0,o=e.length;i<o;i++)if(c=e.charCodeAt(i),n&&37===c&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(c<128)u+=l[c];else if(c>=55296&&c<=57343){if(c>=55296&&c<=56319&&i+1<o&&(s=e.charCodeAt(i+1))>=56320&&s<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}a.defaultChars=";/?:@&=+$,-_.!~*'()#",a.componentChars="-_.!~*'()",e.exports=a},function(e,t,n){"use strict";var r={};function a(e,t){var n;return"string"!=typeof t&&(t=a.defaultChars),n=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),a.push(n);for(t=0;t<e.length;t++)a[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return a}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,a,i,o,c,s,l="";for(t=0,r=e.length;t<r;t+=3)(a=parseInt(e.slice(t+1,t+3),16))<128?l+=n[a]:192==(224&a)&&t+3<r&&128==(192&(i=parseInt(e.slice(t+4,t+6),16)))?(l+=(s=a<<6&1984|63&i)<128?"��":String.fromCharCode(s),t+=3):224==(240&a)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128==(192&i)&&128==(192&o))?(l+=(s=a<<12&61440|i<<6&4032|63&o)<2048||s>=55296&&s<=57343?"���":String.fromCharCode(s),t+=6):240==(248&a)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),c=parseInt(e.slice(t+10,t+12),16),128==(192&i)&&128==(192&o)&&128==(192&c))?((s=a<<18&1835008|i<<12&258048|o<<6&4032|63&c)<65536||s>1114111?l+="����":(s-=65536,l+=String.fromCharCode(55296+(s>>10),56320+(1023&s))),t+=9):l+="�";return l}))}a.defaultChars=";/?:@&=+$,#",a.componentChars="",e.exports=a},function(e,t,n){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var a=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,o=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),s=["'"].concat(c),l=["%","/","?",";","#"].concat(s),u=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var n,r,i,c,s,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var b=o.exec(f);if(b)return this.pathname=b[1],b[2]&&(this.search=b[2]),this}var g=a.exec(f);if(g&&(i=(g=g[0]).toLowerCase(),this.protocol=g,f=f.substr(g.length)),(t||g||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(s="//"===f.substr(0,2))||g&&h[g]||(f=f.substr(2),this.slashes=!0)),!h[g]&&(s||g&&!m[g])){var v,j,y=-1;for(n=0;n<u.length;n++)-1!==(c=f.indexOf(u[n]))&&(-1===y||c<y)&&(y=c);for(-1!==(j=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,j),f=f.slice(j+1),this.auth=v),y=-1,n=0;n<l.length;n++)-1!==(c=f.indexOf(l[n]))&&(-1===y||c<y)&&(y=c);-1===y&&(y=f.length),":"===f[y-1]&&y--;var _=f.slice(0,y);f=f.slice(y),this.parseHost(_),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k){var O=this.hostname.split(/\./);for(n=0,r=O.length;n<r;n++){var w=O[n];if(w&&!w.match(p)){for(var E="",C=0,x=w.length;C<x;C++)w.charCodeAt(C)>127?E+="x":E+=w[C];if(!E.match(p)){var S=O.slice(0,n),A=O.slice(n+1),F=w.match(d);F&&(S.push(F[1]),A.unshift(F[2])),A.length&&(f=A.join(".")+f),this.hostname=S.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var P=f.indexOf("#");-1!==P&&(this.hash=f.substr(P),f=f.slice(0,P));var T=f.indexOf("?");return-1!==T&&(this.search=f.substr(T),f=f.slice(0,T)),f&&(this.pathname=f),m[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=i.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}},function(e,t,n){"use strict";t.Any=n(83),t.Cc=n(84),t.Cf=n(169),t.P=n(68),t.Z=n(85)},function(e,t){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(e,t,n){"use strict";t.parseLinkLabel=n(171),t.parseLinkDestination=n(172),t.parseLinkTitle=n(173)},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c=-1,s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos<s;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)r++;else if(n)return e.pos=l,-1}return a&&(c=e.pos),e.pos=l,c}},function(e,t,n){"use strict";var r=n(19).isSpace,a=n(19).unescapeAll;e.exports=function(e,t,n){var i,o,c=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(i=e.charCodeAt(t))||r(i))return s;if(62===i)return s.pos=t+1,s.str=a(e.slice(c+1,t)),s.ok=!0,s;92===i&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(i=e.charCodeAt(t))&&!(i<32||127===i);)if(92===i&&t+1<n)t+=2;else{if(40===i&&o++,41===i){if(0===o)break;o--}t++}return c===t?s:0!==o?s:(s.str=a(e.slice(c,t)),s.lines=0,s.pos=t,s.ok=!0,s)}},function(e,t,n){"use strict";var r=n(19).unescapeAll;e.exports=function(e,t,n){var a,i,o=0,c=t,s={ok:!1,pos:0,lines:0,str:""};if(t>=n)return s;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return s;for(t++,40===i&&(i=41);t<n;){if((a=e.charCodeAt(t))===i)return s.pos=t+1,s.lines=o,s.str=r(e.slice(c+1,t)),s.ok=!0,s;10===a?o++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return s}},function(e,t,n){"use strict";var r=n(19).assign,a=n(19).unescapeAll,i=n(19).escapeHtml,o={};function c(){this.rules=r({},o)}o.code_inline=function(e,t,n,r,a){var o=e[t];return"<code"+a.renderAttrs(o)+">"+i(e[t].content)+"</code>"},o.code_block=function(e,t,n,r,a){var o=e[t];return"<pre"+a.renderAttrs(o)+"><code>"+i(e[t].content)+"</code></pre>\n"},o.fence=function(e,t,n,r,o){var c,s,l,u,p=e[t],d=p.info?a(p.info).trim():"",h="";return d&&(h=d.split(/\s+/g)[0]),0===(c=n.highlight&&n.highlight(p.content,h)||i(p.content)).indexOf("<pre")?c+"\n":d?(s=p.attrIndex("class"),l=p.attrs?p.attrs.slice():[],s<0?l.push(["class",n.langPrefix+h]):l[s][1]+=" "+n.langPrefix+h,u={attrs:l},"<pre><code"+o.renderAttrs(u)+">"+c+"</code></pre>\n"):"<pre><code"+o.renderAttrs(p)+">"+c+"</code></pre>\n"},o.image=function(e,t,n,r,a){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=a.renderInlineAsText(i.children,n,r),a.renderToken(e,t,n)},o.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},o.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},o.text=function(e,t){return i(e[t].content)},o.html_block=function(e,t){return e[t].content},o.html_inline=function(e,t){return e[t].content},c.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+i(e.attrs[t][0])+'="'+i(e.attrs[t][1])+'"';return r},c.prototype.renderToken=function(e,t,n){var r,a="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===o.nesting?"</":"<")+o.tag,a+=this.renderAttrs(o),0===o.nesting&&n.xhtmlOut&&(a+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden?i=!1:-1===r.nesting&&r.tag===o.tag&&(i=!1))),a+=i?">\n":">")},c.prototype.renderInline=function(e,t,n){for(var r,a="",i=this.rules,o=0,c=e.length;o<c;o++)void 0!==i[r=e[o].type]?a+=i[r](e,o,t,n,this):a+=this.renderToken(e,o,t);return a},c.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,i=e.length;a<i;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},c.prototype.render=function(e,t,n){var r,a,i,o="",c=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(i=e[r].type)?o+=this.renderInline(e[r].children,t,n):void 0!==c[i]?o+=c[e[r].type](e,r,t,n,this):o+=this.renderToken(e,r,t,n);return o},e.exports=c},function(e,t,n){"use strict";var r=n(69),a=[["normalize",n(176)],["block",n(177)],["inline",n(178)],["linkify",n(179)],["replacements",n(180)],["smartquotes",n(181)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}i.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},i.prototype.State=n(182),e.exports=i},function(e,t,n){"use strict";var r=/\r[\n\u0085]?|[\u2424\u2028\u0085]/g,a=/\u0000/g;e.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(a,"�"),e.src=t}},function(e,t,n){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},function(e,t,n){"use strict";var r=n(19).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_=e.tokens;if(e.md.options.linkify)for(n=0,i=_.length;n<i;n++)if("inline"===_[n].type&&e.md.linkify.pretest(_[n].content))for(f=0,t=(o=_[n].children).length-1;t>=0;t--)if("link_close"!==(s=o[t]).type){if("html_inline"===s.type&&(y=s.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(s.content)&&f++),!(f>0)&&"text"===s.type&&e.md.linkify.test(s.content)){for(p=s.content,j=e.md.linkify.match(p),l=[],m=s.level,h=0,u=0;u<j.length;u++)b=j[u].url,g=e.md.normalizeLink(b),e.md.validateLink(g)&&(v=j[u].text,v=j[u].schema?"mailto:"!==j[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=j[u].index)>h&&((c=new e.Token("text","",0)).content=p.slice(h,d),c.level=m,l.push(c)),(c=new e.Token("link_open","a",1)).attrs=[["href",g]],c.level=m++,c.markup="linkify",c.info="auto",l.push(c),(c=new e.Token("text","",0)).content=v,c.level=m,l.push(c),(c=new e.Token("link_close","a",-1)).level=--m,c.markup="linkify",c.info="auto",l.push(c),h=j[u].lastIndex);h<p.length&&((c=new e.Token("text","",0)).content=p.slice(h),c.level=m,l.push(c)),_[n].children=o=r(o,t,l)}}else for(t--;o[t].level!==s.level&&"link_open"!==o[t].type;)t--}},function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,a=/\((c|tm|r|p)\)/i,i=/\((c|tm|r|p)\)/gi,o={c:"©",r:"®",p:"§",tm:"™"};function c(e,t){return o[t.toLowerCase()]}function s(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||r||(n.content=n.content.replace(i,c)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function l(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(a.test(e.tokens[t].content)&&s(e.tokens[t].children),r.test(e.tokens[t].content)&&l(e.tokens[t].children))}},function(e,t,n){"use strict";var r=n(19).isWhiteSpace,a=n(19).isPunctChar,i=n(19).isMdAsciiPunct,o=/['"]/,c=/['"]/g;function s(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function l(e,t){var n,o,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x;for(E=[],n=0;n<e.length;n++){for(o=e[n],h=e[n].level,O=E.length-1;O>=0&&!(E[O].level<=h);O--);if(E.length=O+1,"text"===o.type){p=0,d=(l=o.content).length;e:for(;p<d&&(c.lastIndex=p,u=c.exec(l));){if(_=k=!0,p=u.index+1,w="'"===u[0],f=32,u.index-1>=0)f=l.charCodeAt(u.index-1);else for(O=n-1;O>=0&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O--)if("text"===e[O].type){f=e[O].content.charCodeAt(e[O].content.length-1);break}if(b=32,p<d)b=l.charCodeAt(p);else for(O=n+1;O<e.length&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O++)if("text"===e[O].type){b=e[O].content.charCodeAt(0);break}if(g=i(f)||a(String.fromCharCode(f)),v=i(b)||a(String.fromCharCode(b)),j=r(f),(y=r(b))?_=!1:v&&(j||g||(_=!1)),j?k=!1:g&&(y||v||(k=!1)),34===b&&'"'===u[0]&&f>=48&&f<=57&&(k=_=!1),_&&k&&(_=!1,k=v),_||k){if(k)for(O=E.length-1;O>=0&&(m=E[O],!(E[O].level<h));O--)if(m.single===w&&E[O].level===h){m=E[O],w?(C=t.md.options.quotes[2],x=t.md.options.quotes[3]):(C=t.md.options.quotes[0],x=t.md.options.quotes[1]),o.content=s(o.content,u.index,x),e[m.token].content=s(e[m.token].content,m.pos,C),p+=x.length-1,m.token===n&&(p+=C.length-1),d=(l=o.content).length,E.length=O;continue e}_?E.push({token:n,pos:u.index,single:w,level:h}):k&&w&&(o.content=s(o.content,u.index,"’"))}else w&&(o.content=s(o.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&o.test(e.tokens[t].content)&&l(e.tokens[t].children,e)}},function(e,t,n){"use strict";var r=n(70);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},function(e,t,n){"use strict";var r=n(69),a=[["table",n(184),["paragraph","reference"]],["code",n(185)],["fence",n(186),["paragraph","reference","blockquote","list"]],["blockquote",n(187),["paragraph","reference","blockquote","list"]],["hr",n(188),["paragraph","reference","blockquote","list"]],["list",n(189),["paragraph","reference","blockquote"]],["reference",n(190)],["heading",n(191),["paragraph","reference","blockquote"]],["lheading",n(192)],["html_block",n(193),["paragraph","reference","blockquote"]],["paragraph",n(195)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}i.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),i=a.length,o=t,c=!1,s=e.md.options.maxNesting;o<n&&(e.line=o=e.skipEmptyLines(o),!(o>=n))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=s){e.line=n;break}for(r=0;r<i&&!a[r](e,o,n,!1);r++);e.tight=!c,e.isEmpty(e.line-1)&&(c=!0),(o=e.line)<n&&e.isEmpty(o)&&(c=!0,o++,e.line=o)}},i.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},i.prototype.State=n(196),e.exports=i},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}function i(e){var t,n=[],r=0,a=e.length,i=0,o=0,c=!1,s=0;for(t=e.charCodeAt(r);r<a;)96===t?c?(c=!1,s=r):i%2==0&&(c=!0,s=r):124!==t||i%2!=0||c||(n.push(e.substring(o,r)),o=r+1),92===t?i++:i=0,++r===a&&c&&(c=!1,r=s+1),t=e.charCodeAt(r);return n.push(e.substring(o)),n}e.exports=function(e,t,n,o){var c,s,l,u,p,d,h,m,f,b,g,v;if(t+2>n)return!1;if(p=t+1,e.sCount[p]<e.blkIndent)return!1;if(e.sCount[p]-e.blkIndent>=4)return!1;if((l=e.bMarks[p]+e.tShift[p])>=e.eMarks[p])return!1;if(124!==(c=e.src.charCodeAt(l++))&&45!==c&&58!==c)return!1;for(;l<e.eMarks[p];){if(124!==(c=e.src.charCodeAt(l))&&45!==c&&58!==c&&!r(c))return!1;l++}for(d=(s=a(e,t+1)).split("|"),f=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?f.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(s=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((h=(d=i(s.replace(/^\||\|$/g,""))).length)>f.length)return!1;if(o)return!0;for((m=e.push("table_open","table",1)).map=g=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)(m=e.push("th_open","th",1)).map=[t,t+1],f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.map=[t,t+1],m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),(m=e.push("tbody_open","tbody",1)).map=v=[t+2,0],p=t+2;p<n&&!(e.sCount[p]<e.blkIndent)&&-1!==(s=a(e,p).trim()).indexOf("|")&&!(e.sCount[p]-e.blkIndent>=4);p++){for(d=i(s.replace(/^\||\|$/g,"")),m=e.push("tr_open","tr",1),u=0;u<h;u++)m=e.push("td_open","td",1),f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return m=e.push("tbody_close","tbody",-1),m=e.push("table_close","table",-1),g[1]=v[1]=p,e.line=p,!0}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(i=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),i.map=[t,e.line],!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var a,i,o,c,s,l,u,p=!1,d=e.bMarks[t]+e.tShift[t],h=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>h)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(s=d,(i=(d=e.skipChars(d,a))-s)<3)return!1;if(u=e.src.slice(s,d),(o=e.src.slice(d,h)).indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(c=t;!(++c>=n)&&!((d=s=e.bMarks[c]+e.tShift[c])<(h=e.eMarks[c])&&e.sCount[c]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[c]-e.blkIndent>=4||(d=e.skipChars(d,a))-s<i||(d=e.skipSpaces(d))<h)){p=!0;break}return i=e.sCount[t],e.line=c+(p?1:0),(l=e.push("fence","code",0)).info=o,l.content=e.getLines(t+1,c,i,!0),l.markup=u,l.map=[t,e.line],!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E=e.lineMax,C=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(C++))return!1;if(a)return!0;for(s=h=e.sCount[t]+C-(e.bMarks[t]+e.tShift[t]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[t]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m=[e.bMarks[t]],e.bMarks[t]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[t]+(i?1:0))%4:h++,C++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=C>=x,v=[e.sCount[t]],e.sCount[t]=h-s,j=[e.tShift[t]],e.tShift[t]=C-e.bMarks[t],k=e.md.block.ruler.getRules("blockquote"),g=e.parentType,e.parentType="blockquote",w=!1,d=t+1;d<n&&(e.sCount[d]<e.blkIndent&&(w=!0),!((C=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(C++)||w){if(u)break;for(_=!1,c=0,l=k.length;c<l;c++)if(k[c](e,d,n,!0)){_=!0;break}if(_){e.lineMax=d,0!==e.blkIndent&&(m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(s=h=e.sCount[d]+C-(e.bMarks[d]+e.tShift[d]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[d]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m.push(e.bMarks[d]),e.bMarks[d]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[d]+(i?1:0))%4:h++,C++;u=C>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=h-s,j.push(e.tShift[d]),e.tShift[d]=C-e.bMarks[d]}for(b=e.blkIndent,e.blkIndent=0,(O=e.push("blockquote_open","blockquote",1)).markup=">",O.map=p=[t,0],e.md.block.tokenize(e,t,d),(O=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=E,e.parentType=g,p[1]=e.line,c=0;c<j.length;c++)e.bMarks[c+t]=m[c],e.tShift[c+t]=j[c],e.sCount[c+t]=v[c],e.bsCount[c+t]=f[c];return e.blkIndent=b,!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(l++))&&45!==i&&95!==i)return!1;for(o=1;l<u;){if((c=e.src.charCodeAt(l++))!==i&&!r(c))return!1;c===i&&o++}return!(o<3)&&(!!a||(e.line=t+1,(s=e.push("hr","hr",0)).map=[t,e.line],s.markup=Array(o+1).join(String.fromCharCode(i)),!0))}},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n,a,i,o;return a=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n?-1:a<i&&(o=e.src.charCodeAt(a),!r(o))?-1:a}function i(e,t){var n,a=e.bMarks[t]+e.tShift[t],i=a,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-a>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}e.exports=function(e,t,n,r){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x,S,A,F,P,T,M,N=!1,R=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(N=!0),(S=i(e,t))>=0){if(d=!0,F=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(F,S-F-1)),N&&1!==v)return!1}else{if(!((S=a(e,t))>=0))return!1;d=!1}if(N&&e.skipSpaces(S)>=e.eMarks[t])return!1;if(g=e.src.charCodeAt(S-1),r)return!0;for(b=e.tokens.length,d?(M=e.push("ordered_list_open","ol",1),1!==v&&(M.attrs=[["start",v]])):M=e.push("bullet_list_open","ul",1),M.map=f=[t,0],M.markup=String.fromCharCode(g),y=t,A=!1,T=e.md.block.ruler.getRules("list"),w=e.parentType,e.parentType="list";y<n;){for(x=S,j=e.eMarks[y],p=_=e.sCount[y]+S-(e.bMarks[t]+e.tShift[t]);x<j;){if(9===(o=e.src.charCodeAt(x)))_+=4-(_+e.bsCount[y])%4;else{if(32!==o)break;_++}x++}if((u=(c=x)>=j?1:_-p)>4&&(u=1),l=p+u,(M=e.push("list_item_open","li",1)).markup=String.fromCharCode(g),M.map=h=[t,0],k=e.blkIndent,C=e.tight,E=e.tShift[t],O=e.sCount[t],e.blkIndent=l,e.tight=!0,e.tShift[t]=c-e.bMarks[t],e.sCount[t]=_,c>=j&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!A||(R=!1),A=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=k,e.tShift[t]=E,e.sCount[t]=O,e.tight=C,(M=e.push("list_item_close","li",-1)).markup=String.fromCharCode(g),y=t=e.line,h[1]=y,c=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;for(P=!1,s=0,m=T.length;s<m;s++)if(T[s](e,y,n,!0)){P=!0;break}if(P)break;if(d){if((S=i(e,y))<0)break}else if((S=a(e,y))<0)break;if(g!==e.src.charCodeAt(S-1))break}return(M=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(g),f[1]=y,e.line=y,e.parentType=w,R&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,b),!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t,n,i){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k=0,O=e.bMarks[t]+e.tShift[t],w=e.eMarks[t],E=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(O))return!1;for(;++O<w;)if(93===e.src.charCodeAt(O)&&92!==e.src.charCodeAt(O-1)){if(O+1===w)return!1;if(58!==e.src.charCodeAt(O+1))return!1;break}for(l=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";E<l&&!e.isEmpty(E);E++)if(!(e.sCount[E]-e.blkIndent>3||e.sCount[E]<0)){for(j=!1,p=0,d=y.length;p<d;p++)if(y[p](e,E,l,!0)){j=!0;break}if(j)break}for(w=(v=e.getLines(t,E,e.blkIndent,!1).trim()).length,O=1;O<w;O++){if(91===(o=v.charCodeAt(O)))return!1;if(93===o){m=O;break}10===o?k++:92===o&&++O<w&&10===v.charCodeAt(O)&&k++}if(m<0||58!==v.charCodeAt(m+1))return!1;for(O=m+2;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;if(!(b=e.md.helpers.parseLinkDestination(v,O,w)).ok)return!1;if(u=e.md.normalizeLink(b.str),!e.md.validateLink(u))return!1;for(c=O=b.pos,s=k+=b.lines,g=O;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;for(b=e.md.helpers.parseLinkTitle(v,O,w),O<w&&g!==O&&b.ok?(_=b.str,O=b.pos,k+=b.lines):(_="",O=c,k=s);O<w&&(o=v.charCodeAt(O),a(o));)O++;if(O<w&&10!==v.charCodeAt(O)&&_)for(_="",O=c,k=s;O<w&&(o=v.charCodeAt(O),a(o));)O++;return!(O<w&&10!==v.charCodeAt(O))&&(!!(h=r(v.slice(1,m)))&&(!!i||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[h]&&(e.env.references[h]={title:_,href:u}),e.parentType=f,e.line=t+k+1,!0)))}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(l))||l>=u)return!1;for(o=1,i=e.src.charCodeAt(++l);35===i&&l<u&&o<=6;)o++,i=e.src.charCodeAt(++l);return!(o>6||l<u&&!r(i))&&(!!a||(u=e.skipSpacesBack(u,l),(c=e.skipCharsBack(u,35,l))>l&&r(e.src.charCodeAt(c-1))&&(u=c),e.line=t+1,(s=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),s.map=[t,e.line],(s=e.push("inline","",0)).content=e.src.slice(l,u).trim(),s.map=[t,e.line],s.children=[],(s=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o),!0))}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c,s,l,u,p,d,h=t+1,m=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";h<n&&!e.isEmpty(h);h++)if(!(e.sCount[h]-e.blkIndent>3)){if(e.sCount[h]>=e.blkIndent&&(s=e.bMarks[h]+e.tShift[h])<(l=e.eMarks[h])&&(45===(p=e.src.charCodeAt(s))||61===p)&&(s=e.skipChars(s,p),(s=e.skipSpaces(s))>=l)){u=61===p?1:2;break}if(!(e.sCount[h]<0)){for(a=!1,i=0,o=m.length;i<o;i++)if(m[i](e,h,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,h,e.blkIndent,!1).trim(),e.line=h+1,(c=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),c.map=[t,e.line],(c=e.push("inline","",0)).content=r,c.map=[t,e.line-1],c.children=[],(c=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},function(e,t,n){"use strict";var r=n(194),a=n(86).HTML_OPEN_CLOSE_TAG_RE,i=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(l))return!1;for(s=e.src.slice(l,u),a=0;a<i.length&&!i[a][0].test(s);a++);if(a===i.length)return!1;if(r)return i[a][2];if(o=t+1,!i[a][1].test(s))for(;o<n&&!(e.sCount[o]<e.blkIndent);o++)if(l=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],s=e.src.slice(l,u),i[a][1].test(s)){0!==s.length&&o++;break}return e.line=o,(c=e.push("html_block","",0)).map=[t,o],c.content=e.getLines(t,o,e.blkIndent,!0),!0}},function(e,t,n){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=t+1,l=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(c=e.parentType,e.parentType="paragraph";s<u&&!e.isEmpty(s);s++)if(!(e.sCount[s]-e.blkIndent>3||e.sCount[s]<0)){for(r=!1,a=0,i=l.length;a<i;a++)if(l[a](e,s,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,s,e.blkIndent,!1).trim(),e.line=s,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=n,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=c,!0}},function(e,t,n){"use strict";var r=n(70),a=n(19).isSpace;function i(e,t,n,r){var i,o,c,s,l,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,c=s=u=p=0,l=(o=this.src).length;s<l;s++){if(i=o.charCodeAt(s),!d){if(a(i)){u++,9===i?p+=4-p%4:p++;continue}d=!0}10!==i&&s!==l-1||(10!==i&&s++,this.bMarks.push(c),this.eMarks.push(s),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,c=s+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}i.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},i.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},i.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},i.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},i.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},i.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},i.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},i.prototype.getLines=function(e,t,n,r){var i,o,c,s,l,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),i=0;d<t;d++,i++){for(o=0,p=s=this.bMarks[d],l=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];s<l&&o<n;){if(c=this.src.charCodeAt(s),a(c))9===c?o+=4-(o+this.bsCount[d])%4:o++;else{if(!(s-p<this.tShift[d]))break;o++}s++}u[i]=o>n?new Array(o-n+1).join(" ")+this.src.slice(s,l):this.src.slice(s,l)}return u.join("")},i.prototype.Token=r,e.exports=i},function(e,t,n){"use strict";var r=n(69),a=[["text",n(198)],["newline",n(199)],["escape",n(200)],["backticks",n(201)],["strikethrough",n(87).tokenize],["emphasis",n(88).tokenize],["link",n(202)],["image",n(203)],["autolink",n(204)],["html_inline",n(205)],["entity",n(206)]],i=[["balance_pairs",n(207)],["strikethrough",n(87).postProcess],["emphasis",n(88).postProcess],["text_collapse",n(208)]];function o(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<i.length;e++)this.ruler2.push(i[e][0],i[e][1])}o.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),i=a.length,o=e.md.options.maxNesting,c=e.cache;if(void 0===c[r]){if(e.level<o)for(n=0;n<i&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,c[r]=e.pos}else e.pos=c[r]},o.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},o.prototype.parse=function(e,t,n,r){var a,i,o,c=new this.State(e,t,n,r);for(this.tokenize(c),o=(i=this.ruler2.getRules("")).length,a=0;a<o;a++)i[a](c)},o.prototype.State=n(209),e.exports=o},function(e,t,n){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t){var n,a,i=e.pos;if(10!==e.src.charCodeAt(i))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),i++;i<a&&r(e.src.charCodeAt(i));)i++;return e.pos=i,!0}},function(e,t,n){"use strict";for(var r=n(19).isSpace,a=[],i=0;i<256;i++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((n=e.src.charCodeAt(i))<256&&0!==a[n])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),i++;i<o&&(n=e.src.charCodeAt(i),r(n));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=e.pos;if(96!==e.src.charCodeAt(s))return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(a=e.src.slice(n,s),i=o=s;-1!==(i=e.src.indexOf("`",o));){for(o=i+1;o<r&&96===e.src.charCodeAt(o);)o++;if(o-i===a.length)return t||((c=e.push("code_inline","code",0)).markup=a,c.content=e.src.slice(s,i).replace(/[ \n]+/g," ").trim()),e.pos=o,!0}return t||(e.pending+=a),e.pos+=a.length,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h="",m=e.pos,f=e.posMax,b=e.pos,g=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(s=e.pos+1,(c=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((l=c+1)<f&&40===e.src.charCodeAt(l)){for(g=!1,l++;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(l>=f)return!1;for(b=l,(u=e.md.helpers.parseLinkDestination(e.src,l,e.posMax)).ok&&(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?l=u.pos:h=""),b=l;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(u=e.md.helpers.parseLinkTitle(e.src,l,e.posMax),l<f&&b!==l&&u.ok)for(d=u.str,l=u.pos;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);else d="";(l>=f||41!==e.src.charCodeAt(l))&&(g=!0),l++}if(g){if(void 0===e.env.references)return!1;if(l<f&&91===e.src.charCodeAt(l)?(b=l+1,(l=e.md.helpers.parseLinkLabel(e,l))>=0?o=e.src.slice(b,l++):l=c+1):l=c+1,o||(o=e.src.slice(s,c)),!(p=e.env.references[r(o)]))return e.pos=m,!1;h=p.href,d=p.title}return t||(e.pos=s,e.posMax=c,e.push("link_open","a",1).attrs=n=[["href",h]],d&&n.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=l,e.posMax=f,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h,m,f,b,g="",v=e.pos,j=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(l=e.pos+2,(s=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=s+1)<j&&40===e.src.charCodeAt(u)){for(u++;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(u>=j)return!1;for(b=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(g=e.md.normalizeLink(d.str),e.md.validateLink(g)?u=d.pos:g=""),b=u;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<j&&b!==u&&d.ok)for(h=d.str,u=d.pos;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);else h="";if(u>=j||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<j&&91===e.src.charCodeAt(u)?(b=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?c=e.src.slice(b,u++):u=s+1):u=s+1,c||(c=e.src.slice(l,s)),!(p=e.env.references[r(c)]))return e.pos=v,!1;g=p.href,h=p.title}return t||(o=e.src.slice(l,s),e.md.inline.parse(o,e.md,e.env,f=[]),(m=e.push("image","img",0)).attrs=n=[["src",g],["alt",""]],m.children=f,m.content=o,h&&n.push(["title",h])),e.pos=u,e.posMax=j,!0}},function(e,t,n){"use strict";var r=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,i,o,c,s,l,u=e.pos;return 60===e.src.charCodeAt(u)&&(!((n=e.src.slice(u)).indexOf(">")<0)&&(a.test(n)?(c=(i=n.match(a))[0].slice(1,-1),s=e.md.normalizeLink(c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=i[0].length,!0)):!!r.test(n)&&(c=(o=n.match(r))[0].slice(1,-1),s=e.md.normalizeLink("mailto:"+c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=o[0].length,!0))))}},function(e,t,n){"use strict";var r=n(86).HTML_TAG_RE;e.exports=function(e,t){var n,a,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+a[0].length)),e.pos+=a[0].length,!0))))}},function(e,t,n){"use strict";var r=n(81),a=n(19).has,i=n(19).isValidEntityCode,o=n(19).fromCodePoint,c=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,s=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,l,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(l=e.src.slice(u).match(c))return t||(n="x"===l[1][0].toLowerCase()?parseInt(l[1].slice(1),16):parseInt(l[1],10),e.pending+=i(n)?o(n):o(65533)),e.pos+=l[0].length,!0}else if((l=e.src.slice(u).match(s))&&a(r,l[1]))return t||(e.pending+=r[l[1]]),e.pos+=l[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a,i=e.delimiters,o=e.delimiters.length;for(t=0;t<o;t++)if((r=i[t]).close)for(n=t-r.jump-1;n>=0;){if((a=i[n]).open&&a.marker===r.marker&&a.end<0&&a.level===r.level)if(!((a.close||r.open)&&void 0!==a.length&&void 0!==r.length&&(a.length+r.length)%3==0)){r.jump=t-n,r.open=!1,a.end=t,a.jump=0;break}n-=a.jump+1}}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,i=e.tokens.length;for(t=n=0;t<i;t++)r+=a[t].nesting,a[t].level=r,"text"===a[t].type&&t+1<i&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},function(e,t,n){"use strict";var r=n(70),a=n(19).isWhiteSpace,i=n(19).isPunctChar,o=n(19).isMdAsciiPunct;function c(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[]}c.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},c.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n);return n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.pendingLevel=this.level,this.tokens.push(a),a},c.prototype.scanDelims=function(e,t){var n,r,c,s,l,u,p,d,h,m=e,f=!0,b=!0,g=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;m<g&&this.src.charCodeAt(m)===v;)m++;return c=m-e,r=m<g?this.src.charCodeAt(m):32,p=o(n)||i(String.fromCharCode(n)),h=o(r)||i(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:h&&(u||p||(f=!1)),u?b=!1:p&&(d||h||(b=!1)),t?(s=f,l=b):(s=f&&(!b||p),l=b&&(!f||h)),{can_open:s,can_close:l,length:c}},c.prototype.Token=r,e.exports=c},function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function i(e){return"[object Function]"===a(e)}function o(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var c={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var s={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]?0:t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},l="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(211)(e.__opts__),r=e.__tlds__.slice();function c(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(c(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(c(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(c(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(c(t.tpl_host_fuzzy_test),"i");var s=[];function l(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?i(n.validate)?r.validate=n.validate:l(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(i(n.normalize)?r.normalize=n.normalize:n.normalize?l(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?l(t,n):s.push(t)}})),s.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(o).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function h(e,t){if(!(this instanceof h))return new h(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||c.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},c,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},s,e),this.__compiled__={},this.__tlds__=l,this.__tlds_replaced__=!1,this.re={},u(this)}h.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},h.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},h.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,i,o,c,s;if(this.re.schema_test.test(e))for((c=this.re.schema_search).lastIndex=0;null!==(t=c.exec(e));)if(a=this.testSchemaAt(e,t[2],c.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(s=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||s<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=n.index+n[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(i=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},h.prototype.pretest=function(e){return this.re.pretest.test(e)},h.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},h.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},h.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},h.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},h.prototype.onCompile=function(){},e.exports=h},function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(83).source,t.src_Cc=n(84).source,t.src_Z=n(85).source,t.src_P=n(68).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},function(e,t,n){"use strict";n.r(t),n.d(t,"ucs2decode",(function(){return m})),n.d(t,"ucs2encode",(function(){return f})),n.d(t,"decode",(function(){return v})),n.d(t,"encode",(function(){return j})),n.d(t,"toASCII",(function(){return _})),n.d(t,"toUnicode",(function(){return y}));var r=n(21),a=n.n(r),i=2147483647,o=/^xn--/,c=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},u=Math.floor,p=String.fromCharCode;function d(e){throw new RangeError(l[e])}function h(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]);var a=function(e,t){for(var n=[],r=e.length;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var i=e.charCodeAt(n++);56320==(64512&i)?t.push(((1023&a)<<10)+(1023&i)+65536):(t.push(a),n--)}else t.push(a)}return t}var f=function(e){return String.fromCodePoint.apply(String,a()(e))},b=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){var r=0;for(e=n?u(e/700):e>>1,e+=u(e/t);e>455;r+=36)e=u(e/35);return u(r+36*e/(e+38))},v=function(e){var t,n=[],r=e.length,a=0,o=128,c=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var l=0;l<s;++l)e.charCodeAt(l)>=128&&d("not-basic"),n.push(e.charCodeAt(l));for(var p=s>0?s+1:0;p<r;){for(var h=a,m=1,f=36;;f+=36){p>=r&&d("invalid-input");var b=(t=e.charCodeAt(p++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(b>=36||b>u((i-a)/m))&&d("overflow"),a+=b*m;var v=f<=c?1:f>=c+26?26:f-c;if(b<v)break;var j=36-v;m>u(i/j)&&d("overflow"),m*=j}var y=n.length+1;c=g(a-h,y,0==h),u(a/y)>i-o&&d("overflow"),o+=u(a/y),a%=y,n.splice(a++,0,o)}return String.fromCodePoint.apply(String,n)},j=function(e){var t=[],n=(e=m(e)).length,r=128,a=0,o=72,c=!0,s=!1,l=void 0;try{for(var h,f=e[Symbol.iterator]();!(c=(h=f.next()).done);c=!0){var v=h.value;v<128&&t.push(p(v))}}catch(B){s=!0,l=B}finally{try{c||null==f.return||f.return()}finally{if(s)throw l}}var j=t.length,y=j;for(j&&t.push("-");y<n;){var _=i,k=!0,O=!1,w=void 0;try{for(var E,C=e[Symbol.iterator]();!(k=(E=C.next()).done);k=!0){var x=E.value;x>=r&&x<_&&(_=x)}}catch(B){O=!0,w=B}finally{try{k||null==C.return||C.return()}finally{if(O)throw w}}var S=y+1;_-r>u((i-a)/S)&&d("overflow"),a+=(_-r)*S,r=_;var A=!0,F=!1,P=void 0;try{for(var T,M=e[Symbol.iterator]();!(A=(T=M.next()).done);A=!0){var N=T.value;if(N<r&&++a>i&&d("overflow"),N==r){for(var R=a,D=36;;D+=36){var z=D<=o?1:D>=o+26?26:D-o;if(R<z)break;var I=R-z,L=36-z;t.push(p(b(z+I%L,0))),R=u(I/L)}t.push(p(b(R,0))),o=g(a,S,y==j),a=0,++y}}}catch(B){F=!0,P=B}finally{try{A||null==M.return||M.return()}finally{if(F)throw P}}++a,++r}return t.join("")},y=function(e){return h(e,(function(e){return o.test(e)?v(e.slice(4).toLowerCase()):e}))},_=function(e){return h(e,(function(e){return c.test(e)?"xn--"+j(e):e}))},k={version:"2.1.0",ucs2:{decode:m,encode:f},decode:v,encode:j,toASCII:_,toUnicode:y};t.default=k},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){"use strict";var r=n(34),a="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,i=n(90),o=n(221),c=n(222),s="function"==typeof Symbol&&Symbol.iterator;function l(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function u(e,t,n,r){var i,c=typeof e;if("undefined"!==c&&"boolean"!==c||(e=null),null===e||"string"===c||"number"===c||"object"===c&&e.$$typeof===a)return n(r,e,""===t?"."+l(e,0):t),1;var p=0,d=""===t?".":t+":";if(Array.isArray(e))for(var h=0;h<e.length;h++)p+=u(i=e[h],d+l(i,h),n,r);else{var m=function(e){var t=e&&(s&&e[s]||e["@@iterator"]);if("function"==typeof t)return t}(e);if(m){0;for(var f,b=m.call(e),g=0;!(f=b.next()).done;)p+=u(i=f.value,d+l(i,g++),n,r)}else if("object"===c){0;var v=""+e;o(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===v?"object with keys {"+Object.keys(e).join(", ")+"}":v,"")}}return p}var p=/\/+/g;function d(e){return(""+e).replace(p,"$&/")}var h,m,f=b,b=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)},g=function(e){o(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)};function v(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function j(e,t,n){var a,o,c=e.result,s=e.keyPrefix,l=e.func,u=e.context,p=l.call(u,t,e.count++);Array.isArray(p)?y(p,c,n,i.thatReturnsArgument):null!=p&&(r.isValidElement(p)&&(a=p,o=s+(!p.key||t&&t.key===p.key?"":d(p.key)+"/")+n,p=r.cloneElement(a,{key:o},void 0!==a.props?a.props.children:void 0)),c.push(p))}function y(e,t,n,r,a){var i="";null!=n&&(i=d(n)+"/");var o=v.getPooled(t,i,r,a);!function(e,t,n){null==e||u(e,"",t,n)}(e,j,o),v.release(o)}v.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h=function(e,t,n,r){if(this.instancePool.length){var a=this.instancePool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)},(m=v).instancePool=[],m.getPooled=h||f,m.poolSize||(m.poolSize=10),m.release=g;e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return c(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return c(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;o(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)y(e[n],t,n,i.thatReturnsArgument);return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,a,i,o,c){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,i,o,c],u=0;(s=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},function(e,t,n){"use strict";var r=n(90);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t,n){"use strict";var r=n(71),a=n(92);function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},i.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},i.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var i=8;i<this.padLength;i++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,i=8;i<this.padLength;i++)r[a++]=0;return r}},function(e,t,n){"use strict";var r=n(71).rotr32;function a(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?o(t,n,r):2===e?i(t,n,r):void 0},t.ch32=a,t.maj32=i,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){!function(){"use strict";var t=[];function n(e){var t,n,r,a,i=-1;for(t=0,r=e.length;t<r;t+=1){for(a=255&(i^e[t]),n=0;n<8;n+=1)1==(1&a)?a=a>>>1^3988292384:a>>>=1;i=i>>>8^a}return-1^i}function r(e,n){var a,i,o;if(void 0!==r.crc&&n&&e||(r.crc=-1,e)){for(a=r.crc,i=0,o=e.length;i<o;i+=1)a=a>>>8^t[255&(a^e[i])];return r.crc=a,-1^a}}!function(){var e,n,r;for(n=0;n<256;n+=1){for(e=n,r=0;r<8;r+=1)1&e?e=3988292384^e>>>1:e>>>=1;t[n]=e>>>0}}(),e.exports=function(e,t){var a;e="string"==typeof e?(a=e,Array.prototype.map.call(a,(function(e){return e.charCodeAt(0)}))):e;return((t?n(e):r(e))>>>0).toString(16)},e.exports.direct=n,e.exports.table=r}()},function(e,t,n){"use strict";var r=[],a=window,i=Math.pow(256,6),o=Math.pow(2,52),c=2*o,s=Math.random;function l(e){var t,n=e.length,r=this,a=0,i=r.i=r.j=0,o=r.S=[];for(n||(e=[n++]);a<256;)o[a]=a++;for(a=0;a<256;a++)o[a]=o[i=255&i+e[a%n]+(t=o[a])],o[i]=t;(r.g=function(e){for(var t,n=0,a=r.i,i=r.j,o=r.S;e--;)t=o[a=255&a+1],n=256*n+o[255&(o[a]=o[i=255&i+t])+(o[i]=t)];return r.i=a,r.j=i,n})(256)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(i){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[255&a]=255&(n^=19*t[255&a])+r.charCodeAt(a++);return h(t)}function d(e){try{return a.crypto.getRandomValues(e=new Uint8Array(256)),h(e)}catch(t){return[+new Date,a,a.navigator&&a.navigator.plugins,a.screen,h(r)]}}function h(e){return String.fromCharCode.apply(0,e)}e.exports=function(t,n){if(n&&!0===n.global)return n.global=!1,Math.random=e.exports(t,n),n.global=!0,Math.random;var a=n&&n.entropy||!1,s=[],m=(p(u(a?[t,h(r)]:0 in arguments?t:d(),3),s),new l(s));return p(h(m.S),r),function(){for(var e=m.g(6),t=i,n=0;e<o;)e=256*(e+n),t*=256,n=m.g(1);for(;e>=c;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=s},p(Math.random(),r)},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(237)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"save",(function(){return Nt})),n.d(r,"attributes",(function(){return Dt})),n.d(r,"support",(function(){return zt}));var a=n(17),i=n(15),o=n.n(i),c=n(3),s=n.n(c),l=n(0),u=n(1),p=n(16),d=n(5),h=n(2),m=n(21),f=n.n(m),b=n(7),g=n.n(b),v=n(11),j=n.n(v),y=n(8),_=n.n(y),k=n(9),O=n.n(k),w=n(4),E=n.n(w),C=n(10),x=n.n(C),S=n(6),A=n(28),F=[{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Original","image style","jetpack"),value:void 0},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Black and White","image style","jetpack"),value:"black-and-white"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:Object(u._x)("Sepia","image style","jetpack"),value:"sepia"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Clarendon","image style","jetpack"),value:"clarendon"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:Object(u._x)("Gingham","image style","jetpack"),value:"gingham"}],P=Object(u.__)("Pick an image filter","jetpack");function T(e){var t=e.value,n=e.onChange;return Object(l.createElement)(h.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(l.createElement)(h.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:P,tooltip:P,icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:function(e){var r=e.onClose;return Object(l.createElement)(h.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},F.map((function(e){var a,i=e.icon,o=e.title,c=e.value;return Object(l.createElement)(h.MenuItem,{className:t===c?"is-active":void 0,icon:i,isSelected:t===c,key:c||"original",onClick:(a=c,function(){n(t===a?void 0:a),r()}),role:"menuitemcheckbox"},o)})))}})}var M=n(12),N=n.n(M),R=n(26),D=n(25),z=n(13),I=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"img",Object(l.createRef)()),s()(E()(n),"onImageClick",(function(){n.props.isSelected||n.props.onSelect()})),s()(E()(n),"onImageKeyDown",(function(e){n.img.current===document.activeElement&&n.props.isSelected&&[R.BACKSPACE,R.DELETE].includes(e.keyCode)&&n.props.onRemove()})),n}return x()(t,e),j()(t,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.alt,n=e.height,r=e.image,a=e.link,i=e.url,o=e.width;if(r){var c={};!t&&r.alt_text&&(c.alt=r.alt_text),!n&&r.media_details&&r.media_details.height&&(c.height=+r.media_details.height),!a&&r.link&&(c.link=r.link),!i&&r.source_url&&(c.url=r.source_url),!o&&r.media_details&&r.media_details.width&&(c.width=+r.media_details.width),Object.keys(c).length&&this.props.setAttributes(c)}}},{key:"render",value:function(){var e,t=this.props,n=t["aria-label"],r=t.alt,a=t.height,i=t.id,o=t.imageFilter,c=t.isSelected,p=t.link,d=t.linkTo,m=t.onRemove,f=t.origUrl,b=t.srcSet,g=t.url,v=t.width;switch(d){case"media":e=g;break;case"attachment":e=p}var j=Object(D.isBlobURL)(f),y=Object(l.createElement)(l.Fragment,null,Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":p,"data-url":f,"data-width":v,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:g,srcSet:j?void 0:b,tabIndex:"0",style:j?{backgroundImage:"url(".concat(f,")")}:void 0}),j&&Object(l.createElement)(h.Spinner,null));return Object(l.createElement)("figure",{className:N()("tiled-gallery__item",s()({"is-selected":c,"is-transient":j},"filter__".concat(o),!!o))},c&&Object(l.createElement)("div",{className:"tiled-gallery__item__inline-menu"},Object(l.createElement)(h.IconButton,{icon:"no-alt",onClick:m,className:"tiled-gallery__item__remove",label:Object(u.__)("Remove Image","jetpack")})),e?Object(l.createElement)("a",null,y):y)}}]),t}(l.Component),L=Object(z.withSelect)((function(e,t){var n=e("core").getMedia,r=t.id;return{image:r?n(r):null}}))(I);function B(e){var t,n=e.alt,r=e.imageFilter,a=e.height,i=e.id,o=e.link,c=e.linkTo,u=e.origUrl,p=e.url,d=e.width;if(Object(D.isBlobURL)(u))return null;switch(c){case"media":t=p;break;case"attachment":t=o}var h=Object(l.createElement)("img",{alt:n,"data-height":a,"data-id":i,"data-link":o,"data-url":u,"data-width":d,src:p});return Object(l.createElement)("figure",{className:N()("tiled-gallery__item",s()({},"filter__".concat(r),!!r))},t?Object(l.createElement)("a",{href:t},h):h)}var q=n(39);function U(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function V(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function H(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:N()("tiled-gallery__row",n)},t)}var G=n(62);function $(e){var t=e.height,n=e.width;return t&&n?n/t:1}var W=he([2,1,2],5),K=me([fe,fe,be,fe,fe]),Z=me([fe,fe,fe,be,fe,fe,fe]),J=he([3,1,3],5),Y=me([be,fe,fe,be]),Q=he([1,2,1],5),X=me([be,fe,fe,fe]),ee=he([1,3],3),te=me([fe,fe,fe,be]),ne=he([3,1],3),re=me([ve(1.6),Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2))]),ae=he([1,2],3),ie=he([1,1,1,1,1],1),oe=he([1,1,1,1],1),ce=he([1,1,1],3),se=me([Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2)),ve(1.6)]),le=he([2,1],3),ue=me([function(e){return e>=2}]);function pe(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&ce(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function de(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return oe(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function he(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function me(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function fe(e){return e>=1&&e<2}function be(e){return e<1}function ge(e){return function(t){return t>=e}}function ve(e){return function(t){return t<e}}var je=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Object(G.a)(n).forEach((function(e){return Object(G.b)(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,$)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&K(r)&&W(t)?[2,1,2]:r.length>15&&Z(r)&&J(t)?[3,1,3]:5!==r.length&&Y(r)&&Q(t)?[1,2,1]:X(r)&&ee(t)?[1,3]:te(r)&&ne(t)?[3,1]:re(r)&&ae(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ie(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:de(t,r)?[1,1,1,1]:pe(t,r,n)?[1,1,1]:se(r)&&le(t)?[2,1]:ue(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(V,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(H,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(U,{key:t},n)})))})))}}]),t}(l.Component),ye=n(22);function _e(e){var t=e.columns,n=e.renderedImages,r=Math.min(ye.h,t),a=n.length%r;return Object(l.createElement)(V,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(H,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(U,{key:t},e)})))})))}var ke=n(46),Oe=n.n(ke),we=n(61),Ee=n.n(we),Ce=n(29);function xe(e){return["circle","square"].includes(e)}function Se(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function Ae(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}function Fe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}var Pe=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"renderImage",value:function(e,t){var n=this.props,r=n.imageFilter,a=n.images,i=n.isSave,o=n.linkTo,c=n.layoutStyle,s=n.onRemoveImage,p=n.onSelectImage,h=n.selectedImage,m=n.setImageAttributes,f=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,a.length),b=i?B:L,g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if(Object(D.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};var n,r=e.url.split("?",1)[0],a=e.height,i=e.width,o=t.layoutStyle,c=Ae(r)||!0===Se()?Fe:Ee.a;if(xe(o)&&i&&a){var s=Math.min(ye.i,i,a);n=c(r,{resize:"".concat(s,",").concat(s)})}else n=c(r);var l,u=300,p=600;if(xe(o)){var h=Math.min(p,i,a),m=Math.min(ye.i,i,a);l=Object(d.range)(h,m,u).map((function(e){var t=c(r,{resize:"".concat(e,",").concat(e),strip:"info"});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}else{var f=Math.min(p,i),b=Math.min(ye.i,i);l=Object(d.range)(f,b,u).map((function(e){var t=c(r,{strip:"info",width:e});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}return Object.assign({src:n},l&&{srcSet:l})}(e,{layoutStyle:c}),v=g.src,j=g.srcSet;return Object(l.createElement)(b,{alt:e.alt,"aria-label":f,height:e.height,id:e.id,imageFilter:r,isSelected:h===t,key:t,link:e.link,linkTo:o,onRemove:i?void 0:s(t),onSelect:i?void 0:p(t),origUrl:e.url,setAttributes:i?void 0:m(t),srcSet:j,url:v,width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=xe(o)?_e:je,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component),Te=n(112),Me=n.n(Te);function Ne(e,t){var n=function(e,t){var n=!0,r=!1,a=void 0;try{for(var i,o=new Me.a(t).values()[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var c=i.value;if(-1!==c.indexOf("is-style-")){var s=c.substring(9),l=Object(d.find)(e,{name:s});if(l)return l}}}catch(u){r=!0,a=u}finally{try{n||null==o.return||o.return()}finally{if(r)throw a}}return Object(d.find)(e,"isDefault")}(e,t);return n?n.name:null}var Re=n(48),De=[{value:"attachment",label:Object(u.__)("Attachment Page","jetpack")},{value:"media",label:Object(u.__)("Media File","jetpack")},{value:"none",label:Object(u.__)("None","jetpack")}];function ze(e){return Math.min(3,e.images.length)}var Ie=function(e){var t=Object(d.pick)(e,[["alt"],["id"],["link"]]);return t.url=Object(d.get)(e,["sizes","large","url"])||Object(d.get)(e,["media_details","sizes","large","source_url"])||e.url,t},Le=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"state",{selectedImage:null}),s()(E()(n),"addFiles",(function(e){var t=n.props.attributes.images||[],r=n.props.noticeOperations;Object(A.mediaUpload)({allowedTypes:ye.a,filesList:e,onFileChange:function(e){var r=e.map((function(e){return Ie(e)}));n.setAttributes({images:t.concat(r)})},onError:r.createErrorNotice})})),s()(E()(n),"onRemoveImage",(function(e){return function(){var t=Object(d.filter)(n.props.attributes.images,(function(t,n){return e!==n})),r=n.props.attributes.columns;n.setState({selectedImage:null}),n.setAttributes({images:t,columns:r?Math.min(t.length,r):r})}})),s()(E()(n),"onSelectImage",(function(e){return function(){n.state.selectedImage!==e&&n.setState({selectedImage:e})}})),s()(E()(n),"onSelectImages",(function(e){var t=n.props.attributes.columns;n.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((function(e){return Ie(e)}))})})),s()(E()(n),"setColumnsNumber",(function(e){return n.setAttributes({columns:e})})),s()(E()(n),"setImageAttributes",(function(e){return function(t){var r=n.props.attributes.images;r[e]&&n.setAttributes({images:[].concat(f()(r.slice(0,e)),[o()({},r[e],{},t)],f()(r.slice(e+1)))})}})),s()(E()(n),"setLinkTo",(function(e){return n.setAttributes({linkTo:e})})),s()(E()(n),"uploadFromFiles",(function(e){return n.addFiles(e.target.files)})),n}return x()(t,e),j()(t,[{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=o()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"render",value:function(){var e=this,t=this.state.selectedImage,n=this.props,r=n.attributes,a=n.isSelected,i=n.className,o=n.noticeOperations,c=n.noticeUI,s=n.setAttributes,p=r.align,d=r.columns,m=void 0===d?ze(r):d,f=r.imageFilter,b=r.images,g=r.linkTo,v=Object(l.createElement)(h.DropZone,{onFilesDrop:this.addFiles}),j=Object(l.createElement)(S.BlockControls,null,!!b.length&&Object(l.createElement)(l.Fragment,null,Object(l.createElement)(h.Toolbar,null,Object(l.createElement)(S.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:ye.a,multiple:!0,gallery:!0,value:b.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(l.createElement)(Re.a,{label:Object(u.__)("Edit Gallery","jetpack"),onClick:t})}})),Object(l.createElement)(T,{value:f,onChange:function(t){s({imageFilter:t}),e.setState({selectedImage:null})}})));if(0===b.length)return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.MediaPlaceholder,{icon:Object(l.createElement)(S.BlockIcon,{icon:tn}),className:i,labels:{title:Object(u.__)("Tiled Gallery","jetpack"),name:Object(u.__)("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:ye.a,multiple:!0,notices:c,onError:o.createErrorNotice}));var y=Ne(ye.g,r.className);return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.InspectorControls,null,Object(l.createElement)(h.PanelBody,{title:Object(u.__)("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(y)&&b.length>1&&Object(l.createElement)(h.RangeControl,{label:Object(u.__)("Columns","jetpack"),value:m,onChange:this.setColumnsNumber,min:1,max:Math.min(ye.h,b.length)}),Object(l.createElement)(h.SelectControl,{label:Object(u.__)("Link To","jetpack"),value:g,onChange:this.setLinkTo,options:De}))),c,Object(l.createElement)(Pe,{align:p,className:i,columns:m,imageFilter:f,images:b,layoutStyle:y,linkTo:g,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,selectedImage:a?t:null,setImageAttributes:this.setImageAttributes},v,a&&Object(l.createElement)("div",{className:"tiled-gallery__add-item"},Object(l.createElement)(h.FormFileUpload,{multiple:!0,isLarge:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(u.__)("Upload an image","jetpack")))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}}]),t}(l.Component),Be=Object(h.withNotices)(Le);var qe=n(24);n(238);function Ue(e){var t,n=e["aria-label"],r=e.alt,a=e.height,i=e.id,o=e.link,c=e.linkTo,s=e.origUrl,u=e.url,p=e.width;if(Object(D.isBlobURL)(s))return null;switch(c){case"media":t=u;break;case"attachment":t=o}var d=Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":o,"data-url":s,"data-width":p,src:u});return Object(l.createElement)("figure",{className:"tiled-gallery__item"},t?Object(l.createElement)("a",{href:t},d):d)}function Ve(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function He(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function Ge(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:N()("tiled-gallery__row",n)},t)}var $e=n(18),We=n.n($e),Ke=[{isDefault:!0,name:"rectangular"},{name:"circle"},{name:"square"},{name:"columns"}];function Ze(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function Je(e,t){!function(e,t,n){var r=We()(t,2),a=r[0],i=r[1],o=1/a*(n-4*(e.childElementCount-1)-i);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=Qe(e),i=a.map((function(e){return(n-4*(e.childElementCount-1))*et(e)[0]})),o=Ze(i,r);a.forEach((function(e,t){var r=i[t],a=o[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=Ze(Xe(e).map((function(e){return a/tt(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-4*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:o,rowWidth:n-4*(e.childElementCount-1)})}(e,function(e){return Qe(e).map(et).reduce((function(e,t){var n=We()(e,2),r=n[0],a=n[1],i=We()(t,2);return[r+i[0],a+i[1]]}),[0,0])}(e),t)}function Ye(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function Qe(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function Xe(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function et(e){var t=Xe(e),n=t.length,r=1/t.map(tt).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function tt(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}function nt(e){var t=e.height,n=e.width;return t&&n?n/t:1}var rt=Ot([2,1,2],5),at=wt([Et,Et,Ct,Et,Et]),it=wt([Et,Et,Et,Ct,Et,Et,Et]),ot=Ot([3,1,3],5),ct=wt([Ct,Et,Et,Ct]),st=Ot([1,2,1],5),lt=wt([Ct,Et,Et,Et]),ut=Ot([1,3],3),pt=wt([Et,Et,Et,Ct]),dt=Ot([3,1],3),ht=wt([St(1.6),Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2))]),mt=Ot([1,2],3),ft=Ot([1,1,1,1,1],1),bt=Ot([1,1,1,1],1),gt=Ot([1,1,1],3),vt=wt([Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2)),St(1.6)]),jt=Ot([2,1],3),yt=wt([function(e){return e>=2}]);function _t(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&gt(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function kt(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return bt(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function Ot(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function wt(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function Et(e){return e>=1&&e<2}function Ct(e){return e<1}function xt(e){return function(t){return t>=e}}function St(e){return function(t){return t<e}}var At=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Ye(n).forEach((function(e){return Je(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,nt)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&at(r)&&rt(t)?[2,1,2]:r.length>15&&it(r)&&ot(t)?[3,1,3]:5!==r.length&&ct(r)&&st(t)?[1,2,1]:lt(r)&&ut(t)?[1,3]:pt(r)&&dt(t)?[3,1]:ht(r)&&mt(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ft(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:kt(t,r)?[1,1,1,1]:_t(t,r,n)?[1,1,1]:vt(r)&&jt(t)?[2,1]:yt(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(He,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(Ge,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(Ve,{key:t},n)})))})))}}]),t}(l.Component);function Ft(e){var t=e.columns,n=e.renderedImages,r=Math.min(20,t),a=n.length%r;return Object(l.createElement)(He,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(Ge,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(Ve,{key:t},e)})))})))}var Pt=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"photonize",value:function(e){var t=e.height,n=e.width,r=e.url;if(r){if(Object(D.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;var a=r.split("?",1)[0],i=function(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}(r)?Mt:Ee.a;if(Tt(this.props.layoutStyle)&&n&&t){var o=Math.min(2e3,n,t);return i(a,{resize:"".concat(o,",").concat(o)})}return i(a)}}},{key:"renderImage",value:function(e,t){var n=this.props,r=n.images,a=n.linkTo,i=n.selectedImage,o=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,r.length);return Object(l.createElement)(Ue,{alt:e.alt,"aria-label":o,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=Tt(o)?Ft:At,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component);function Tt(e){return["circle","square"].includes(e)}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}function Nt(e){var t=e.attributes,n=t.images;if(!n.length)return null;var r=t.align,a=t.className,i=t.columns,o=void 0===i?function(e){return Math.min(3,e.images.length)}(t):i,c=t.linkTo;return Object(l.createElement)(Pt,{align:r,className:a,columns:o,images:n,layoutStyle:Ne(Ke,a),linkTo:c})}var Rt,Dt={align:{default:"center",type:"string"},className:{default:"is-style-".concat("rectangular"),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},zt={align:["center","wide","full"],customClassName:!1,html:!1},It=n(113),Lt=n.n(It),Bt=n(114),qt=n.n(Bt),Ut=n(115),Vt=n.n(Ut),Ht=n(116),Gt=n.n(Ht),$t=n(117),Wt=n.n($t),Kt=n(118),Zt=n.n(Kt),Jt=(Rt={},s()(Rt,ye.e,Object(u._x)("Tiled mosaic","Tiled gallery layout","jetpack")),s()(Rt,ye.c,Object(u._x)("Circles","Tiled gallery layout","jetpack")),s()(Rt,ye.d,Object(u._x)("Tiled columns","Tiled gallery layout","jetpack")),s()(Rt,ye.f,Object(u._x)("Square tiles","Tiled gallery layout","jetpack")),Rt),Yt=ye.g.map((function(e){return o()({},e,{label:Jt[e.name]})}));function Qt(e){return Object(d.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var Xt={align:{default:"center",type:"string"},className:{default:"is-style-".concat(ye.e),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},en={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:Lt.a,width:160,height:95},{alt:"",link:"",url:qt.a,width:160,height:107},{alt:"",link:"",url:Vt.a,width:304,height:203},{alt:"",link:"",url:Gt.a,width:312,height:207},{alt:"",link:"",url:Wt.a,width:152,height:101},{alt:"",link:"",url:Zt.a,width:152,height:105}],linkTo:"none"},tn=Object(l.createElement)(h.SVG,{viewBox:"0 0 24 24",width:24,height:24},Object(l.createElement)(h.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),nn={attributes:Xt,category:"jetpack",description:Object(u.__)("Display multiple images in an elegantly organized tiled layout.","jetpack")+(Object(qe.b)()?"":" "+Object(u.__)("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:tn,keywords:[Object(u._x)("images","block search term","jetpack"),Object(u._x)("photos","block search term","jetpack"),Object(u._x)("pictures","block search term","jetpack")],styles:Yt,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:Object(u.__)("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return Qt(e).length>0},transform:function(e){var t=Qt(e);return Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:function(e){var t=Qt(e.images);return t.length>0?Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))}):Object(p.createBlock)("jetpack/".concat("tiled-gallery"))}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids,r=e.columns,a=e.linkTo;return Object(p.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.align,n=e.images;return n.length>0?n.map((function(e){var n=e.id,r=e.url,a=e.alt;return Object(p.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):Object(p.createBlock)("core/image")}}]},edit:Be,save:function(e){var t=e.attributes,n=t.imageFilter,r=t.images;if(!r.length)return null;var a=t.align,i=t.className,o=t.columns,c=void 0===o?ze(t):o,s=t.linkTo;return Object(l.createElement)(Pe,{align:a,className:i,columns:c,imageFilter:n,images:r,isSave:!0,layoutStyle:Ne(ye.g,i),linkTo:s})},deprecated:[r],example:{attributes:en}};Object(a.a)("tiled-gallery",nn)},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"setConnectionTestResults",(function(){return p})),n.d(r,"refreshConnectionTestResults",(function(){return d})),n.d(r,"fetchFromAPI",(function(){return h}));var a={};n.r(a),n.d(a,"getFailedConnections",(function(){return m})),n.d(a,"getMustReauthConnections",(function(){return f}));var i=n(0),o=n(1),c=n(2),s=n(52),l=n(28),u=(n(216),n(13));function p(e){return{type:"SET_CONNECTION_TEST_RESULTS",results:e}}function d(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function h(e){return{type:"FETCH_FROM_API",path:e}}function m(e){return e.filter((function(e){return!1===e.test_success}))}function f(e){return e.filter((function(e){return"must_reauth"===e.test_success})).map((function(e){return e.service_name}))}var b=n(21),g=n.n(b),v=n(101),j=n.n(v),y=n(5),_=n(23),k=n.n(_);var O={REFRESH_CONNECTION_TEST_RESULTS:function(e,t){var n,r;return regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.dispatch,e.prev=1,e.next=4,regeneratorRuntime.awrap(k()({path:"/wpcom/v2/publicize/connection-test-results"}));case 4:return r=e.sent,e.abrupt("return",n(p(r)));case 8:e.prev=8,e.t0=e.catch(1);case 10:case"end":return e.stop()}}),null,null,[[1,8]])}};var w,E,C,x,S,A={FETCH_FROM_API:function(e){var t=e.path;return k()({path:t})}},F=Object(u.registerStore)("jetpack/publicize",{actions:r,controls:A,reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_CONNECTION_TEST_RESULTS":return t.results;case"REFRESH_CONNECTION_TEST_RESULTS":return[]}return e},selectors:a});w=F,C=[j()(O)],x=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},S={getState:w.getState,dispatch:function(){return x.apply(void 0,arguments)}},E=C.map((function(e){return e(S)})),x=y.flowRight.apply(void 0,g()(E))(w.dispatch),w.dispatch=x;var P=n(44),T=n(14),M=n(7),N=n.n(M),R=n(11),D=n.n(R),z=n(8),I=n.n(z),L=n(9),B=n.n(L),q=n(4),U=n.n(q),V=n(10),H=n.n(V),G=n(3),$=n.n(G),W=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"refreshConnectionClick",(function(e){var t=e.target,r=t.href,a=t.title;e.preventDefault();var i=window.open(r,a,""),o=window.setInterval((function(){!1!==i.closed&&(window.clearInterval(o),n.props.refreshConnections())}),500)})),n}return H()(t,e),D()(t,[{key:"componentDidMount",value:function(){this.props.refreshConnections()}},{key:"renderRefreshableConnections",value:function(){var e=this,t=this.props.failedConnections.filter((function(e){return e.can_refresh}));return t.length?Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((function(t){return Object(i.createElement)(c.Button,{href:t.refresh_url,isSmall:!0,key:t.id,onClick:e.refreshConnectionClick,title:t.refresh_text},t.refresh_text)}))):null}},{key:"renderNonRefreshableConnections",value:function(){var e=this.props.failedConnections.filter((function(e){return!e.can_refresh}));return e.length?e.map((function(e){return Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,e.test_message))})):null}},{key:"render",value:function(){return Object(i.createElement)(i.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}]),t}(i.Component),K=Object(T.compose)([Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections()}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("jetpack/publicize").refreshConnectionTestResults}}))])(W),Z=n(15),J=n.n(Z),Y=n(12),Q=n.n(Y),X=n(30),ee=n.n(X),te=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M20.007 3H3.993C3.445 3 3 3.445 3 3.993v16.013c0 .55.445.994.993.994h8.62v-6.97H10.27V11.31h2.346V9.31c0-2.325 1.42-3.59 3.494-3.59.993 0 1.847.073 2.096.106v2.43h-1.438c-1.128 0-1.346.537-1.346 1.324v1.734h2.69l-.35 2.717h-2.34V21h4.587c.548 0 .993-.445.993-.993V3.993c0-.548-.445-.993-.993-.993z"}))),ne=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z"}))),re=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),ae=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),ie=function(e){var t=e.serviceName,n={className:"jetpack-publicize-gutenberg-social-icon is-".concat(t),size:24};switch(t){case"facebook":return Object(i.createElement)(c.Icon,ee()({icon:te},n));case"twitter":return Object(i.createElement)(c.Icon,ee()({icon:ne},n));case"linkedin":return Object(i.createElement)(c.Icon,ee()({icon:re},n));case"tumblr":return Object(i.createElement)(c.Icon,ee()({icon:ae},n))}return null},oe=n(35),ce=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"maybeDisplayLinkedInNotice",(function(){return n.connectionNeedsReauth()&&Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),Object(i.createElement)(c.ExternalLink,{href:"https://wordpress.com/marketing/connections/".concat(Object(oe.a)())},Object(o.__)("Go to Sharing settings","jetpack")))})),$()(U()(n),"connectionNeedsReauth",(function(){return Object(y.includes)(n.props.mustReauthConnections,n.props.name)})),$()(U()(n),"onConnectionChange",(function(){var e=n.props.id;n.props.toggleConnection(e)})),n}return H()(t,e),D()(t,[{key:"connectionIsFailing",value:function(){var e=this.props,t=e.failedConnections,n=e.name;return t.some((function(e){return e.service_name===n}))}},{key:"render",value:function(){var e=this.props,t=e.disabled,n=e.enabled,r=e.id,a=e.label,o=e.name,s="connection-"+o+"-"+r,l=o.replace("_","-"),u=Object(i.createElement)(c.FormToggle,{id:s,className:"jetpack-publicize-connection-toggle",checked:n,onChange:this.onConnectionChange});return(t||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=Object(i.createElement)(c.Disabled,null,u)),Object(i.createElement)("li",null,this.maybeDisplayLinkedInNotice(),Object(i.createElement)("div",{className:"publicize-jetpack-connection-container"},Object(i.createElement)("label",{htmlFor:s,className:"jetpack-publicize-connection-label"},Object(i.createElement)(ie,{serviceName:l}),Object(i.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a)),u))}}]),t}(i.Component),se=Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()}}))(ce),le=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"settingsClick",(function(e){var t=n.getButtonLink(),r=n.props.refreshCallback;e.preventDefault();var a=window.open(t,"",""),i=window.setInterval((function(){!1!==a.closed&&(window.clearInterval(i),r())}),500)})),n}return H()(t,e),D()(t,[{key:"getButtonLink",value:function(){var e=Object(oe.a)();return e?"https://wordpress.com/marketing/connections/".concat(e):"options-general.php?page=sharing&publicize_popup=true"}},{key:"render",value:function(){var e=Q()("jetpack-publicize-add-connection-container",this.props.className);return Object(i.createElement)("div",{className:e},Object(i.createElement)(c.ExternalLink,{onClick:this.settingsClick},Object(o.__)("Connect an account","jetpack")))}}]),t}(i.Component),ue=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"state",{hasEditedShareMessage:!1}),$()(U()(n),"fieldId",Object(y.uniqueId)("jetpack-publicize-message-field-")),$()(U()(n),"onMessageChange",(function(e){var t=n.props.messageChange;n.setState({hasEditedShareMessage:!0}),t(e)})),n}return H()(t,e),D()(t,[{key:"isDisabled",value:function(){return this.props.connections.every((function(e){return!e.toggleable}))}},{key:"getShareMessage",value:function(){var e=this.props,t=e.shareMessage,n=e.defaultShareMessage;return this.state.hasEditedShareMessage||""!==t?t:n}},{key:"render",value:function(){var e=this.props,t=e.connections,n=e.toggleConnection,r=e.refreshCallback,a=this.getShareMessage(),c=256-a.length,s=Q()("jetpack-publicize-character-count",{"wpas-twitter-length-limit":c<=0});return Object(i.createElement)("div",{id:"publicize-form"},Object(i.createElement)("ul",{className:"jetpack-publicize__connections-list"},t.map((function(e){var t=e.display_name,r=e.enabled,a=e.id,o=e.service_name,c=e.toggleable;return Object(i.createElement)(se,{disabled:!c,enabled:r,key:a,id:a,label:t,name:o,toggleConnection:n})}))),Object(i.createElement)(le,{refreshCallback:r}),t.some((function(e){return e.enabled}))&&Object(i.createElement)(i.Fragment,null,Object(i.createElement)("label",{className:"jetpack-publicize-message-note",htmlFor:this.fieldId},Object(o.__)("Customize your message","jetpack")),Object(i.createElement)("div",{className:"jetpack-publicize-message-box"},Object(i.createElement)("textarea",{id:this.fieldId,value:a,onChange:this.onMessageChange,disabled:this.isDisabled(),maxLength:256,placeholder:Object(o.__)("Write a message for your audience here. If you leave this blank, we'll use the post title as the message.","jetpack"),rows:4}),Object(i.createElement)("div",{className:s},Object(o.sprintf)(Object(o._n)("%d character remaining","%d characters remaining",c,"jetpack"),c)))))}}]),t}(i.Component),pe=Object(T.compose)([Object(u.withSelect)((function(e){var t=e("core/editor").getEditedPostAttribute("meta"),n=e("core/editor").getEditedPostAttribute("title"),r=Object(y.get)(t,["jetpack_publicize_message"],"");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),defaultShareMessage:n.substr(0,256),shareMessage:r.substr(0,256)}})),Object(u.withDispatch)((function(e,t){var n=t.connections;return{toggleConnection:function(t){var r=n.map((function(e){return J()({},e,{enabled:e.id===t?!e.enabled:e.enabled})}));e("core/editor").editPost({jetpack_publicize_connections:r})},messageChange:function(t){e("core/editor").editPost({meta:{jetpack_publicize_message:t.target.value}})}}}))])(ue),de=Object(T.compose)([Object(u.withSelect)((function(e){return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("core/editor").refreshPost}}))])((function(e){var t=e.connections,n=e.refreshConnections;return Object(i.createElement)(i.Fragment,null,t&&t.some((function(e){return e.enabled}))&&Object(i.createElement)(K,null),Object(i.createElement)("div",null,Object(o.__)("Connect and select the accounts where you'd like to share your post.","jetpack")),t&&t.length>0&&Object(i.createElement)(pe,{refreshCallback:n}),t&&0===t.length&&Object(i.createElement)(le,{className:"jetpack-publicize-add-connection-wrapper",refreshCallback:n}))})),he={render:function(){return Object(i.createElement)(l.PostTypeSupportCheck,{supportKeys:"publicize"},Object(i.createElement)(P.a,null,Object(i.createElement)(c.PanelBody,{title:Object(o.__)("Share this post","jetpack")},Object(i.createElement)(de,null))),Object(i.createElement)(s.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:Object(i.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},Object(o.__)("Share this post","jetpack"))},Object(i.createElement)(de,null)))}},me=n(37);Object(me.a)("publicize",he)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(6),c=n(2),s=n(12),l=n.n(s),u=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],p=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]],d=function(e){var t=e.isSelected;return Object(a.createElement)("div",{className:l()({"jetpack-contact-info-block":!0,"is-selected":t})},Object(a.createElement)(o.InnerBlocks,{allowedBlocks:u,templateLock:!1,template:p}))},h=n(20),m=(n(152),n(129),n(7)),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,i=t.addressLine3,o=t.city,c=t.region,s=t.postal,l=t.country;return Object(a.createElement)(a.Fragment,null,n&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},n),r&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},r),i&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},i),o&&!(c||s)&&Object(a.createElement)("div",{className:"jetpack-address__city"},o),o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__city"},o),", ",Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&Object(a.createElement)("div",{className:"jetpack-address__country"},l))},x=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,a=t.addressLine3,i=t.city,o=t.region,c=t.postal,s=t.country,l=n?"".concat(n,","):"",u=r?"".concat(r,","):"",p=a?"".concat(a,","):"",d=i?"+".concat(i,","):"",h=o?"+".concat(o,","):"";h=c?"".concat(h,"+").concat(c):h;var m=s?"+".concat(s):"";return"https://www.google.com/maps/search/".concat(l).concat(u).concat(p).concat(d).concat(h).concat(m).replace(" ","+")},S=function(e){return[(t=e.attributes).address,t.addressLine2,t.addressLine3,t.city,t.region,t.postal,t.country].some((function(e){return""!==e}))&&Object(a.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&Object(a.createElement)("a",{href:x(e),target:"_blank",rel:"noopener noreferrer",title:Object(i.__)("Open address in Google Maps","jetpack")},Object(a.createElement)(C,e)),!e.attributes.linkToGoogleMaps&&Object(a.createElement)(C,e));var t},A=function(e){function t(){var e,n;f()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=j()(this,(e=_()(t)).call.apply(e,[this].concat(a)))).preventEnterKey=n.preventEnterKey.bind(O()(n)),n}return E()(t,e),g()(t,[{key:"preventEnterKey",value:function(e){"Enter"!==e.key||e.preventDefault()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=t.address,r=t.addressLine2,s=t.addressLine3,u=t.city,p=t.region,d=t.postal,h=t.country,m=t.linkToGoogleMaps,f=e.isSelected,b=e.setAttributes,g=[n,r,s,u,p,d,h].some((function(e){return""!==e})),v=l()({"jetpack-address-block":!0,"is-selected":f}),j=Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Link address to Google Maps","jetpack"),checked:m,onChange:function(e){return b({linkToGoogleMaps:e})}});return Object(a.createElement)("div",{className:v},!f&&g&&S(this.props),(f||!g)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(o.PlainText,{value:n,placeholder:Object(i.__)("Street Address","jetpack"),"aria-label":Object(i.__)("Street Address","jetpack"),onChange:function(e){return b({address:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:r,placeholder:Object(i.__)("Address Line 2","jetpack"),"aria-label":Object(i.__)("Address Line 2","jetpack"),onChange:function(e){return b({addressLine2:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:s,placeholder:Object(i.__)("Address Line 3","jetpack"),"aria-label":Object(i.__)("Address Line 3","jetpack"),onChange:function(e){return b({addressLine3:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:u,placeholder:Object(i.__)("City","jetpack"),"aria-label":Object(i.__)("City","jetpack"),onChange:function(e){return b({city:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:p,placeholder:Object(i.__)("State/Province/Region","jetpack"),"aria-label":Object(i.__)("State/Province/Region","jetpack"),onChange:function(e){return b({region:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:d,placeholder:Object(i.__)("Postal/Zip Code","jetpack"),"aria-label":Object(i.__)("Postal/Zip Code","jetpack"),onChange:function(e){return b({postal:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:h,placeholder:Object(i.__)("Country","jetpack"),"aria-label":Object(i.__)("Country","jetpack"),onChange:function(e){return b({country:e})},onKeyDown:this.preventEnterKey}),j))}}]),t}(a.Component),F={title:Object(i.__)("Address","jetpack"),description:Object(i.__)("Lets you add a physical address with Schema markup.","jetpack"),keywords:[Object(i._x)("location","block search term","jetpack"),Object(i._x)("direction","block search term","jetpack"),Object(i._x)("place","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(a.Fragment,null,Object(a.createElement)(c.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),Object(a.createElement)(c.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"jetpack",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:A,save:S},P=n(43),T=n.n(P),M=function(e){var t=e.attributes.email,n=e.className;return t&&Object(a.createElement)("div",{className:n},t.split(/(\s+)/).map((function(e,t){var n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&T.a.validate(n)?e===n?Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},e):Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},n),Object(a.createElement)(a.Fragment,null,e.slice(-(e.length-n.length)))):Object(a.createElement)(a.Fragment,{key:t},e)})))},N=function(e,t,n,r,i){var c=t.isSelected,s=t.attributes[e];return Object(a.createElement)("div",{className:"jetpack-".concat(e,c?"-block is-selected":"-block")},!c&&""!==s&&r(t),(c||""===s)&&Object(a.createElement)(o.PlainText,{value:s,placeholder:n,"aria-label":n,onChange:i}))},R=function(e){var t=e.setAttributes;return N("email",e,Object(i.__)("Email","jetpack"),M,(function(e){return t({email:e})}))},D={title:Object(i.__)("Email Address","jetpack"),description:Object(i.__)("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",Object(i._x)("message","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"jetpack",attributes:{email:{type:"string",default:""}},edit:R,save:M,parent:["jetpack/contact-info"]};var z=function(e){var t=e.attributes.phone,n=e.className;return t&&Object(a.createElement)("div",{className:n},function(e){var t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;var n=e.indexOf(t[0]),r=n?e.substring(n-1):e,i=n?e.substring(0,n):"",o=r.replace(/\D/g,"");return/[0-9/+/(]/.test(r[0])?(i=i.slice(0,-1),"+"===r[0]&&(o="+"+o)):r=r.substring(1),[i.trim()?Object(a.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},i):null,Object(a.createElement)("a",{key:"phoneNumber",href:"tel:".concat(o)},r)]}(t))},I=function(e){var t=e.setAttributes;return N("phone",e,Object(i.__)("Phone number","jetpack"),z,(function(e){return t({phone:e})}))},L={title:Object(i.__)("Phone Number","jetpack"),description:Object(i.__)("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[Object(i._x)("mobile","block search term","jetpack"),Object(i._x)("telephone","block search term","jetpack"),Object(i._x)("cell","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"jetpack",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:I,save:z},B={title:Object(i.__)("Contact Info","jetpack"),description:Object(i.__)("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("phone","block search term","jetpack"),Object(i._x)("address","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),category:"jetpack",supports:{align:["wide","full"],html:!1},attributes:{},edit:d,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},q=[{name:"address",settings:F},{name:"email",settings:D},{name:"phone",settings:L}];Object(r.a)("contact-info",B,q)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(27),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(23),_=n.n(y),k=n(1),O=n(2),w=n(6),E=(n(157),n(21)),C=n.n(E),x=n(12),S=n.n(x),A=n(5),F=n(26),P=n(14);function T(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=[],r=0;r<e.length;r++){var a=e[r],i=a.keywords,o=void 0===i?[]:i;if("string"==typeof a.label&&(o=[].concat(C()(o),[a.label])),n.push(a),n.length===t)break}return n}var M=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"select",(function(t){(e.props.completer.getOptionCompletion||{})(t),e.reset()})),v()(m()(e),"reset",(function(){e.setState(e.constructor.getInitialState())})),v()(m()(e),"onChange",(function(t){var n=e.props.completer,r=e.state.options;if(t){n&&(n.isDebounced?e.debouncedLoadOptions(n,t):e.loadOptions(n,t));var a=n?T(r):[];n&&e.setState({selectedIndex:0,filteredOptions:a,query:t})}else e.reset()})),v()(m()(e),"onKeyDown",(function(t){var n=e.state,r=n.isOpen,a=n.selectedIndex,i=n.filteredOptions;if(r){var o;switch(t.keyCode){case F.UP:o=(0===a?i.length:a)-1,e.setState({selectedIndex:o});break;case F.DOWN:o=(a+1)%i.length,e.setState({selectedIndex:o});break;case F.ENTER:e.select(i[a]);break;case F.LEFT:case F.RIGHT:case F.ESCAPE:return void e.reset();default:return}t.preventDefault(),t.stopPropagation()}})),e.debouncedLoadOptions=Object(A.debounce)(e.loadOptions,250),e.state=e.constructor.getInitialState(),e}return b()(t,e),s()(t,null,[{key:"getInitialState",value:function(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}}]),s()(t,[{key:"componentWillUnmount",value:function(){this.debouncedLoadOptions.cancel()}},{key:"handleFocusOutside",value:function(){this.reset()}},{key:"loadOptions",value:function(e,t){var n=this,r=e.options,a=this.activePromise=Promise.resolve("function"==typeof r?r(t):r).then((function(t){var r;if(a===n.activePromise){var i=t.map((function(t,n){return{key:"".concat(n),value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}})),o=T(i),c=o.length===n.state.filteredOptions.length?n.state.selectedIndex:0;n.setState((r={},v()(r,"options",i),v()(r,"filteredOptions",o),v()(r,"selectedIndex",c),v()(r,"isOpen",o.length>0),r)),n.announce(o)}}))}},{key:"announce",value:function(e){var t=this.props.debouncedSpeak;t&&(e.length?t(Object(k.sprintf)(Object(k._n)("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(Object(k.__)("No results.","jetpack"),"assertive"))}},{key:"render",value:function(){var e=this,t=this.onChange,n=this.onKeyDown,r=this.props,a=r.children,i=r.instanceId,o=r.completer,c=this.state,s=c.selectedIndex,l=c.filteredOptions,u=(l[s]||{}).key,p=void 0===u?"":u,d=o.className,h=l.length>0,m=h?"components-autocomplete-listbox-".concat(i):null,f=h?"components-autocomplete-item-".concat(i,"-").concat(p):null;return Object(j.createElement)("div",{className:"components-autocomplete"},a({isExpanded:h,listBoxId:m,activeId:f,onChange:t,onKeyDown:n}),h&&Object(j.createElement)(O.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},Object(j.createElement)("div",{id:m,role:"listbox",className:"components-autocomplete__results"},Object(A.map)(l,(function(t,n){return Object(j.createElement)(O.Button,{key:t.key,id:"components-autocomplete-item-".concat(i,"-").concat(t.key),role:"option","aria-selected":n===s,disabled:t.isDisabled,className:S()("components-autocomplete__result",d,{"is-selected":n===s}),onClick:function(){return e.select(t)}},t.label)})))))}}]),t}(j.Component),N=Object(P.compose)([O.withSpokenMessages,P.withInstanceId,O.withFocusOutside])(M),R=Object(k.__)("Add a marker…","jetpack"),D=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"getOptionCompletion",(function(t){var n=t.value,r={placeTitle:n.text,title:n.text,caption:n.place_name,id:n.id,coordinates:{longitude:n.geometry.coordinates[0],latitude:n.geometry.coordinates[1]}};return e.props.onAddPoint(r),n.text})),v()(m()(e),"search",(function(t){var n=e.props,r=n.apiKey,a=n.onError,i="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(t)+".json?access_token="+r;return new Promise((function(e,t){var n=new XMLHttpRequest;n.open("GET",i),n.onload=function(){if(200===n.status){var r=JSON.parse(n.responseText);e(r.features)}else{var i=JSON.parse(n.responseText);a(i.statusText,i.responseJSON.message),t(new Error("Mapbox Places Error"))}},n.send()}))})),v()(m()(e),"onReset",(function(){e.textRef.current.value=null})),e.textRef=Object(j.createRef)(),e.containerRef=Object(j.createRef)(),e.state={isEmpty:!0},e.autocompleter={name:"placeSearch",options:e.search,isDebounced:!0,getOptionLabel:function(e){return Object(j.createElement)("span",null,e.place_name)},getOptionKeywords:function(e){return[e.place_name]},getOptionCompletion:e.getOptionCompletion},e}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this;setTimeout((function(){e.containerRef.current.querySelector("input").focus()}),50)}},{key:"render",value:function(){var e=this,t=this.props.label;return Object(j.createElement)("div",{ref:this.containerRef},Object(j.createElement)(O.BaseControl,{label:t,className:"components-location-search"},Object(j.createElement)(N,{completer:this.autocompleter,onReset:this.onReset},(function(t){var n=t.isExpanded,r=t.listBoxId,a=t.activeId,i=t.onChange,o=t.onKeyDown;return Object(j.createElement)(O.TextControl,{placeholder:R,ref:e.textRef,onChange:i,"aria-expanded":n,"aria-owns":r,"aria-activedescendant":a,onKeyDown:o})}))))}}]),t}(j.Component);D.defaultProps={onError:function(){}};var z=D,I=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.onClose,n=e.onAddPoint,r=e.onError,a=e.apiKey;return Object(j.createElement)(O.Button,{className:"component__add-point"},Object(k.__)("Add marker","jetpack"),Object(j.createElement)(O.Popover,{className:"component__add-point__popover"},Object(j.createElement)(O.Button,{className:"component__add-point__close",onClick:t},Object(j.createElement)(O.Dashicon,{icon:"no"})),Object(j.createElement)(z,{onAddPoint:n,label:Object(k.__)("Add a location","jetpack"),apiKey:a,onError:r})))}}]),t}(j.Component);I.defaultProps={onAddPoint:function(){},onClose:function(){},onError:function(){}};var L=I,B=(n(158),function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onDeletePoint",(function(t){var n=parseInt(t.target.getAttribute("data-id")),r=e.props,a=r.points,i=r.onChange,o=a.slice(0);o.splice(n,1),i(o)})),e.state={selectedCell:null},e}return b()(t,e),s()(t,[{key:"setMarkerField",value:function(e,t,n){var r=this.props,a=r.points,i=r.onChange,o=a.slice(0);o[n][e]=t,i(o)}},{key:"render",value:function(){var e=this,t=this.props.points.map((function(t,n){return Object(j.createElement)(O.PanelBody,{title:t.placeTitle,key:t.id,initialOpen:!1},Object(j.createElement)(O.TextControl,{label:"Marker Title",value:t.title,onChange:function(t){return e.setMarkerField("title",t,n)}}),Object(j.createElement)(O.TextareaControl,{label:"Marker Caption",value:t.caption,rows:"3",onChange:function(t){return e.setMarkerField("caption",t,n)}}),Object(j.createElement)(O.Button,{"data-id":n,onClick:e.onDeletePoint,className:"component__locations__delete-btn"},Object(j.createElement)(O.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))}));return Object(j.createElement)("div",{className:"component__locations"},Object(j.createElement)(O.Panel,{className:"component__locations__panel"},t))}}]),t}(j.Component));B.defaultProps={points:Object.freeze([]),onChange:function(){}};var q=B,U=n(76),V=(n(159),function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.options,n=e.value,r=e.onChange,a=e.label,i=t.map((function(e,t){var a=S()("component__map-theme-picker__button","is-theme-"+e.value,e.value===n?"is-selected":"");return Object(j.createElement)(O.Button,{className:a,title:e.label,key:t,onClick:function(){return r(e.value)}},e.label)}));return Object(j.createElement)("div",{className:"component__map-theme-picker components-base-control"},Object(j.createElement)("label",{className:"components-base-control__label"},a),Object(j.createElement)(O.ButtonGroup,null,i))}}]),t}(j.Component));V.defaultProps={label:"",options:[],value:null,onChange:function(){}};var H=V,G=n(99),$=n.n(G),W=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"addPoint",(function(t){var n=e.props,r=n.attributes,a=n.setAttributes,i=r.points,o=i.slice(0),c=!1;i.map((function(e){e.id===t.id&&(c=!0)})),c||(o.push(t),a({points:o}),e.setState({addPointVisibility:!1}))})),v()(m()(e),"updateAlignment",(function(t){e.props.setAttributes({align:t}),setTimeout(e.mapRef.current.sizeMap,0)})),v()(m()(e),"updateAPIKeyControl",(function(t){e.setState({apiKeyControl:t.target.value})})),v()(m()(e),"updateAPIKey",(function(){var t=e.props.noticeOperations,n=e.state.apiKeyControl;t.removeAllNotices(),n&&e.apiCall(n,"POST")})),v()(m()(e),"removeAPIKey",(function(){e.apiCall(null,"DELETE")})),v()(m()(e),"onError",(function(t,n){var r=e.props.noticeOperations;r.removeAllNotices(),r.createErrorNotice(n)})),e.state={addPointVisibility:!1,apiState:0},e.mapRef=Object(j.createRef)(),e}return b()(t,e),s()(t,[{key:"apiCall",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=this.props.noticeOperations,a="/wpcom/v2/service-api-keys/mapbox",i=t?{path:a,method:n,data:{service_api_key:t}}:{path:a,method:n};this.setState({apiRequestOutstanding:!0},(function(){_()(i).then((function(t){var n=t.service_api_key,a=t.service_api_key_source;r.removeAllNotices();var i=n?2:1,o="wpcom"===a?"":n;e.setState({apiState:i,apiKey:n,apiKeyControl:o,apiKeySource:a,apiRequestOutstanding:!1})}),(function(t){var n=t.message;e.onError(null,n),e.setState({apiState:1,apiRequestOutstanding:!1})}))}))}},{key:"componentDidMount",value:function(){this.apiCall()}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.setAttributes,i=t.attributes,o=t.noticeUI,c=t.notices,s=t.isSelected,l=i.mapStyle,u=i.mapDetails,p=i.points,d=i.zoom,h=i.mapCenter,m=i.markerColor,f=i.align,b=i.preview,g=this.state,v=g.addPointVisibility,y=g.apiKey,_=g.apiKeyControl,E=g.apiKeySource,C=g.apiState,x=g.apiRequestOutstanding,S=Object(j.createElement)(j.Fragment,null,Object(j.createElement)(w.BlockControls,null,Object(j.createElement)(w.BlockAlignmentToolbar,{value:f,onChange:this.updateAlignment,controls:["center","wide","full"]}),Object(j.createElement)(O.Toolbar,null,Object(j.createElement)(O.IconButton,{icon:a.a.markerIcon,label:"Add a marker",onClick:function(){return e.setState({addPointVisibility:!0})}}))),Object(j.createElement)(w.InspectorControls,null,Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Map Theme","jetpack")},Object(j.createElement)(H,{value:l,onChange:function(e){return r({mapStyle:e})},options:a.a.mapStyleOptions}),Object(j.createElement)(O.ToggleControl,{label:Object(k.__)("Show street names","jetpack"),checked:u,onChange:function(e){return r({mapDetails:e})}})),Object(j.createElement)(w.PanelColorSettings,{title:Object(k.__)("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:m,onChange:function(e){return r({markerColor:e})},label:"Marker Color"}]}),p.length?Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Markers","jetpack"),initialOpen:!1},Object(j.createElement)(q,{points:p,onChange:function(e){r({points:e})}})):null,"wpcom"!==E&&Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Mapbox Access Token","jetpack"),initialOpen:!1},Object(j.createElement)(O.TextControl,{label:Object(k.__)("Mapbox Access Token","jetpack"),value:_,onChange:function(t){return e.setState({apiKeyControl:t})}}),Object(j.createElement)(O.ButtonGroup,null,Object(j.createElement)(O.Button,{type:"button",onClick:this.updateAPIKey,isDefault:!0},Object(k.__)("Update Token","jetpack")),Object(j.createElement)(O.Button,{type:"button",onClick:this.removeAPIKey,isDefault:!0},Object(k.__)("Remove Token","jetpack")))))),A=Object(j.createElement)(O.Placeholder,{icon:a.a.icon},Object(j.createElement)(O.Spinner,null)),F=Object(j.createElement)(j.Fragment,null,Object(k.__)("To use the map block, you need an Access Token.","jetpack"),Object(j.createElement)("br",null),Object(j.createElement)(O.ExternalLink,{href:"https://www.mapbox.com"},Object(k.__)("Create an account or log in to Mapbox.","jetpack")),Object(j.createElement)("br",null),Object(k.__)("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),P=Object(j.createElement)(O.Placeholder,{icon:a.a.icon,label:Object(k.__)("Map","jetpack"),notices:c,instructions:F},Object(j.createElement)(j.Fragment,null,Object(j.createElement)("form",null,Object(j.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:x,placeholder:Object(k.__)("Paste Token Here","jetpack"),value:_,onChange:this.updateAPIKeyControl}),Object(j.createElement)(O.Button,{isLarge:!0,isSecondary:!0,disabled:x||!_||_.length<1,onClick:this.updateAPIKey},Object(k.__)("Set Token","jetpack"))))),T=Object(j.createElement)(j.Fragment,null,S,Object(j.createElement)("div",{className:n},Object(j.createElement)(U.a,{ref:this.mapRef,mapStyle:l,mapDetails:u,points:p,zoom:d,mapCenter:h,markerColor:m,onSetZoom:function(e){r({zoom:e})},admin:!0,apiKey:y,onSetPoints:function(e){return r({points:e})},onSetMapCenter:function(e){return r({mapCenter:e})},onMapLoaded:function(){return e.setState({addPointVisibility:!0})},onMarkerClick:function(){return e.setState({addPointVisibility:!1})},onError:this.onError},s&&v&&Object(j.createElement)(L,{onAddPoint:this.addPoint,onClose:function(){return e.setState({addPointVisibility:!1})},apiKey:y,onError:this.onError,tagName:"AddPoint"})))),M=Object(j.createElement)("div",null,Object(j.createElement)("img",{alt:Object(k.__)("Map Preview","jetpack"),src:$.a}));return Object(j.createElement)(j.Fragment,null,o,b&&M,!b&&0===C&&A,!b&&1===C&&P,!b&&2===C&&T)}}]),t}(j.Component),K=Object(O.withNotices)(W),Z=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props.attributes,t=e.align,n=e.mapStyle,r=e.mapDetails,a=e.points,i=e.zoom,o=e.mapCenter,c=e.markerColor,s=a.map((function(e,t){var n=e.coordinates,r=n.longitude,a="https://www.google.com/maps/search/?api=1&query="+n.latitude+","+r;return Object(j.createElement)("li",{key:t},Object(j.createElement)("a",{href:a},e.title))})),l=t?"align".concat(t):null;return Object(j.createElement)("div",{className:l,"data-map-style":n,"data-map-details":r,"data-points":JSON.stringify(a),"data-zoom":i,"data-map-center":JSON.stringify(o),"data-marker-color":c},a.length>0&&Object(j.createElement)("ul",null,s))}}]),t}(j.Component),J=(n(132),n(160),a.a.name),Y={title:a.a.title,icon:a.a.icon,category:a.a.category,keywords:a.a.keywords,description:a.a.description,attributes:a.a.attributes,supports:a.a.supports,getEditWrapperProps:function(e){var t=e.align;if(-1!==a.a.validAlignments.indexOf(t))return{"data-align":t}},edit:K,save:Z,example:a.a.example};Object(r.a)(J,Y)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(15),i=n.n(a),o=n(0),c=n(1),s=n(16),l=n(2),u=n(6),p=(n(149),n(7)),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(41),A=n(20),F=n(32),P=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"],T=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeSubject=n.onChangeSubject.bind(y()(n)),n.onBlurTo=n.onBlurTo.bind(y()(n)),n.onChangeTo=n.onChangeTo.bind(y()(n)),n.onChangeSubmit=n.onChangeSubmit.bind(y()(n)),n.onFormSettingsSet=n.onFormSettingsSet.bind(y()(n)),n.getToValidationError=n.getToValidationError.bind(y()(n)),n.renderToAndSubjectFields=n.renderToAndSubjectFields.bind(y()(n)),n.preventEnterSubmittion=n.preventEnterSubmittion.bind(y()(n)),n.hasEmailError=n.hasEmailError.bind(y()(n));var o=a[0].attributes.to?a[0].attributes.to:"",c=o.split(",").map(n.getToValidationError).filter(Boolean);return n.state={toError:c&&c.length?c:null},n}return k()(t,e),m()(t,[{key:"getEmailHelpMessage",value:function(){return Object(c.__)("You can enter multiple email addresses separated by commas.","jetpack")}},{key:"onChangeSubject",value:function(e){this.props.setAttributes({subject:e})}},{key:"getToValidationError",value:function(e){return 0!==(e=e.trim()).length&&(!C.a.validate(e)&&{email:e})}},{key:"onBlurTo",value:function(e){var t=e.target.value.split(",").map(this.getToValidationError).filter(Boolean);t&&t.length&&this.setState({toError:t})}},{key:"onChangeTo",value:function(e){if(0===e.trim().length)return this.setState({toError:null}),void this.props.setAttributes({to:e});this.setState({toError:null}),this.props.setAttributes({to:e})}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}},{key:"onFormSettingsSet",value:function(e){e.preventDefault(),this.state.toError||this.props.setAttributes({hasFormSettingsSet:"yes"})}},{key:"getfieldEmailError",value:function(e){if(e){if(1===e.length)return e[0]&&e[0].email?Object(c.sprintf)(Object(c.__)("%s is not a valid email address.","jetpack"),e[0].email):e[0];if(2===e.length)return Object(c.sprintf)(Object(c.__)("%s and %s are not a valid email address.","jetpack"),e[0].email,e[1].email);var t=e.map((function(e){return e.email}));return Object(c.sprintf)(Object(c.__)("%s are not a valid email address.","jetpack"),t.join(", "))}return null}},{key:"preventEnterSubmittion",value:function(e){"Enter"===e.key&&(e.preventDefault(),e.stopPropagation())}},{key:"renderToAndSubjectFields",value:function(){var e=this.state.toError,t=this.props,n=t.instanceId,r=t.attributes,a=r.subject,i=r.to;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.TextControl,{"aria-describedby":"contact-form-".concat(n,"-email-").concat(this.hasEmailError()?"error":"help"),label:Object(c.__)("Email address","jetpack"),placeholder:Object(c.__)("name@example.com","jetpack"),onKeyDown:this.preventEnterSubmittion,value:i,onBlur:this.onBlurTo,onChange:this.onChangeTo}),Object(o.createElement)(S.a,{isError:!0,id:"contact-form-".concat(n,"-email-error")},this.getfieldEmailError(e)),Object(o.createElement)(S.a,{id:"contact-form-".concat(n,"-email-help")},this.getEmailHelpMessage()),Object(o.createElement)(l.TextControl,{label:Object(c.__)("Email subject line","jetpack"),value:a,placeholder:Object(c.__)("Let's work together","jetpack"),onChange:this.onChangeSubject}))}},{key:"renderConfirmationMessageFields",value:function(){var e=this,t=this.props.instanceId,n=this.props.attributes,r=n.customThankyou,a=n.customThankyouMessage,i=n.customThankyouRedirect;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.SelectControl,{label:Object(c.__)("On Submission","jetpack"),value:r,options:[{label:Object(c.__)("Show a summary of submitted fields","jetpack"),value:""},{label:Object(c.__)("Show a custom text message","jetpack"),value:"message"},{label:Object(c.__)("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:function(t){return e.props.setAttributes({customThankyou:t})}}),"message"===r&&Object(o.createElement)(l.TextareaControl,{label:Object(c.__)("Message Text","jetpack"),value:a,placeholder:Object(c.__)("Thank you for your submission!","jetpack"),onChange:function(t){return e.props.setAttributes({customThankyouMessage:t})}}),"redirect"===r&&Object(o.createElement)(l.BaseControl,{label:Object(c.__)("Redirect Address","jetpack"),id:"contact-form-".concat(t,"-thankyou-url")},Object(o.createElement)(u.URLInput,{id:"contact-form-".concat(t,"-thankyou-url"),value:i,className:"jetpack-contact-form__thankyou-redirect-url",onChange:function(t){return e.props.setAttributes({customThankyouRedirect:t})}})))}},{key:"hasEmailError",value:function(){var e=this.state.toError;return e&&e.length>0}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.attributes.hasFormSettingsSet,r=w()(t,"jetpack-contact-form",{"has-intro":!n});return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Email Feedback Settings","jetpack")},this.renderToAndSubjectFields()),Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Confirmation Message","jetpack")},this.renderConfirmationMessageFields())),Object(o.createElement)("div",{className:r},!n&&Object(o.createElement)(l.Placeholder,{label:Object(c.__)("Form","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),instructions:Object(c.__)("You’ll receive an email notification each time someone fills out the form. Where should it go, and what should the subject line be?","jetpack")},Object(o.createElement)("form",{onSubmit:this.onFormSettingsSet},this.renderToAndSubjectFields(),Object(o.createElement)("div",{class:"components-placeholder__instructions"},Object(c.__)("(If you leave these blank, notifications will go to the author with the post or page title as the subject line.)","jetpack")),Object(o.createElement)("div",{className:"jetpack-contact-form__create"},Object(o.createElement)(l.Button,{isDefault:!0,type:"submit",disabled:this.hasEmailError()},Object(c.__)("Add form","jetpack"))))),n&&Object(o.createElement)(u.InnerBlocks,{allowedBlocks:P,templateLock:!1,template:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-url",{}],["jetpack/field-textarea",{}]]}),n&&Object(o.createElement)(F.a,this.props)))}}]),t}(o.Component),M=Object(x.compose)([x.withInstanceId])(T),N=function(e){var t=e.setAttributes,n=e.label,r=e.resetFocus,a=e.isSelected,i=e.required;return Object(o.createElement)("div",{className:"jetpack-field-label"},Object(o.createElement)(u.PlainText,{value:n,className:"jetpack-field-label__input",onChange:function(e){r&&r(),t({label:e})},placeholder:Object(c.__)("Write label…","jetpack")}),a&&Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Required","jetpack"),className:"jetpack-field-label__required",checked:i,onChange:function(e){return t({required:e})}}),!a&&i&&Object(o.createElement)("span",{className:"required"},Object(c.__)("(required)","jetpack")))};var R=function(e){var t=e.isSelected,n=e.type,r=e.required,a=e.label,i=e.setAttributes,s=e.defaultValue,p=e.placeholder,d=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:w()("jetpack-field",{"is-selected":t})},Object(o.createElement)(l.TextControl,{type:n,label:Object(o.createElement)(N,{required:r,label:a,setAttributes:i,isSelected:t}),placeholder:p,value:p,onChange:function(e){return i({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:s,onChange:function(e){return i({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return i({id:e})}}))))};var D=function(e){var t=e.required,n=e.label,r=e.setAttributes,a=e.isSelected,i=e.defaultValue,s=e.placeholder,p=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:"jetpack-field"},Object(o.createElement)(l.TextareaControl,{label:Object(o.createElement)(N,{required:t,label:n,setAttributes:r,isSelected:a}),placeholder:s,value:s,onChange:function(e){return r({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:i,onChange:function(e){return r({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return r({id:e})}}))))},z=Object(x.withInstanceId)((function(e){var t=e.instanceId,n=e.required,r=e.label,a=e.setAttributes,i=e.isSelected,s=e.defaultValue,p=e.id;return Object(o.createElement)(l.BaseControl,{id:"jetpack-field-checkbox-".concat(t),className:"jetpack-field jetpack-field-checkbox",label:Object(o.createElement)(o.Fragment,null,Object(o.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:s}),Object(o.createElement)(N,{required:n,label:r,setAttributes:a,isSelected:i}),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Default Checked State","jetpack"),checked:s,onChange:function(e){return a({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return a({id:e})}}))))})})),I=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.onKeyPress=n.onKeyPress.bind(y()(n)),n.onDeleteOption=n.onDeleteOption.bind(y()(n)),n.textInput=Object(o.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"componentDidUpdate",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"onChangeOption",value:function(e){this.props.onChangeOption(this.props.index,e.target.value)}},{key:"onKeyPress",value:function(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}},{key:"onDeleteOption",value:function(){this.props.onChangeOption(this.props.index)}},{key:"render",value:function(){var e=this.props,t=e.isSelected,n=e.option,r=e.type;return Object(o.createElement)("li",{className:"jetpack-option"},r&&"select"!==r&&Object(o.createElement)("input",{className:"jetpack-option__type",type:r,disabled:!0}),Object(o.createElement)("input",{type:"text",className:"jetpack-option__input",value:n,placeholder:Object(c.__)("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),t&&Object(o.createElement)(l.IconButton,{className:"jetpack-option__remove",icon:"trash",label:Object(c.__)("Remove option","jetpack"),onClick:this.onDeleteOption}))}}]),t}(o.Component),L=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.addNewOption=n.addNewOption.bind(y()(n)),n.state={inFocus:null},n}return k()(t,e),m()(t,[{key:"onChangeOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.props.options.slice(0);null===t?(n.splice(e,1),e>0&&this.setState({inFocus:e-1})):(n.splice(e,1,t),this.setState({inFocus:e})),this.props.setAttributes({options:n})}},{key:"addNewOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.props.options.slice(0),n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),this.setState({inFocus:n}),this.props.setAttributes({options:t})}},{key:"render",value:function(){var e=this,t=this.props,n=t.type,r=t.instanceId,a=t.required,i=t.label,s=t.setAttributes,p=t.isSelected,d=t.id,h=this.props.options,m=this.state.inFocus;return h.length||(h=[""],m=0),Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.BaseControl,{id:"jetpack-field-multiple-".concat(r),className:"jetpack-field jetpack-field-multiple",label:Object(o.createElement)(N,{required:a,label:i,setAttributes:s,isSelected:p,resetFocus:function(){return e.setState({inFocus:null})}})},Object(o.createElement)("ol",{className:"jetpack-field-multiple__list",id:"jetpack-field-multiple-".concat(r)},h.map((function(t,r){return Object(o.createElement)(I,{type:n,key:r,option:t,index:r,onChangeOption:e.onChangeOption,onAddOption:e.addNewOption,isInFocus:r===m&&p,isSelected:p})}))),p&&Object(o.createElement)(l.IconButton,{className:"jetpack-field-multiple__add-option",icon:"insert",label:Object(c.__)("Insert option","jetpack"),onClick:this.addNewOption},Object(c.__)("Add option","jetpack"))),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return s({id:e})}}))))}}]),t}(o.Component),B=Object(x.withInstanceId)(L),q={title:Object(c.__)("Form","jetpack"),description:Object(c.__)("A simple way to get feedback from folks visiting your site.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),keywords:[Object(c._x)("email","block search term","jetpack"),Object(c._x)("feedback","block search term","jetpack"),Object(c._x)("contact form","block search term","jetpack")],category:"jetpack",supports:{html:!1},attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submitButtonText:{type:"string",default:Object(c.__)("Submit","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},hasFormSettingsSet:{type:"string",default:null},customThankyou:{type:"string",default:""},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},has_form_settings_set:{type:"string",default:null},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")}},edit:M,save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)},example:{attributes:{hasFormSettingsSet:!0,submitButtonText:Object(c.__)("Submit","jetpack")},innerBlocks:[{name:"jetpack/field-name",attributes:{label:Object(c.__)("Name","jetpack"),required:!0}},{name:"jetpack/field-email",attributes:{label:Object(c.__)("Email","jetpack"),required:!0}},{name:"jetpack/field-url",attributes:{label:Object(c.__)("Website","jetpack")}},{name:"jetpack/field-textarea",attributes:{label:Object(c.__)("Message","jetpack")}}]},deprecated:[{attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")},has_form_settings_set:{type:"string",default:null}},migrate:function(e){return{submitButtonText:e.submit_button_text,hasFormSettingsSet:e.has_form_settings_set,to:e.to,subject:e.subject}},isEligible:function(e){return!!(e.has_form_settings_set||e.submit_button_text&&"Submit"!==e.submit_button_text)},save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)}}]},U={category:"jetpack",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-text",e)}},{type:"block",blocks:["jetpack/field-name"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-name",e)}},{type:"block",blocks:["jetpack/field-email"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-email",e)}},{type:"block",blocks:["jetpack/field-url"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-url",e)}},{type:"block",blocks:["jetpack/field-date"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-date",e)}},{type:"block",blocks:["jetpack/field-telephone"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-telephone",e)}},{type:"block",blocks:["jetpack/field-textarea"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-textarea",e)}},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-checkbox-multiple",e)}},{type:"block",blocks:["jetpack/field-radio"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-radio",e)}},{type:"block",blocks:["jetpack/field-select"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-select",e)}}]},save:function(){return null}},V=function(e){var t=e.attributes,n=e.name;return null===t.label?Object(s.getBlockType)(n).title:t.label},H=function(e){return function(t){return Object(o.createElement)(R,{type:e,label:V(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id})}},G=function(e){return function(t){return Object(o.createElement)(B,{label:V(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id})}},$=[{name:"field-text",settings:i()({},U,{title:Object(c.__)("Text","jetpack"),description:Object(c.__)("When you need just a small amount of text, add a text input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:H("text")})},{name:"field-name",settings:i()({},U,{title:Object(c.__)("Name","jetpack"),description:Object(c.__)("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:H("text")})},{name:"field-email",settings:i()({},U,{title:Object(c.__)("Email","jetpack"),keywords:[Object(c.__)("e-mail","jetpack"),Object(c.__)("mail","jetpack"),"email"],description:Object(c.__)("Want to reply to folks? Add an email address input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:H("email")})},{name:"field-url",settings:i()({},U,{title:Object(c.__)("Website","jetpack"),keywords:["url",Object(c.__)("internet page","jetpack"),"link"],description:Object(c.__)("Add an address input for a website.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:H("url")})},{name:"field-date",settings:i()({},U,{title:Object(c.__)("Date Picker","jetpack"),keywords:[Object(c.__)("Calendar","jetpack"),Object(c.__)("day month year","block search term","jetpack")],description:Object(c.__)("The best way to set a date. Add a date picker.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:H("text")})},{name:"field-telephone",settings:i()({},U,{title:Object(c.__)("Telephone","jetpack"),keywords:[Object(c.__)("Phone","jetpack"),Object(c.__)("Cellular phone","jetpack"),Object(c.__)("Mobile","jetpack")],description:Object(c.__)("Add a phone number input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:H("tel")})},{name:"field-textarea",settings:i()({},U,{title:Object(c.__)("Message","jetpack"),keywords:[Object(c.__)("Textarea","jetpack"),"textarea",Object(c.__)("Multiline text","jetpack")],description:Object(c.__)("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:function(e){return Object(o.createElement)(D,{label:V(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id})}})},{name:"field-checkbox",settings:i()({},U,{title:Object(c.__)("Checkbox","jetpack"),keywords:[Object(c.__)("Confirm","jetpack"),Object(c.__)("Accept","jetpack")],description:Object(c.__)("Add a single checkbox.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:function(e){return Object(o.createElement)(z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id})},attributes:i()({},U.attributes,{label:{type:"string",default:""}})})},{name:"field-checkbox-multiple",settings:i()({},U,{title:Object(c.__)("Checkbox Group","jetpack"),keywords:[Object(c.__)("Choose Multiple","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("People love options. Add several checkbox items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:G("checkbox"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose several"}})})},{name:"field-radio",settings:i()({},U,{title:Object(c.__)("Radio","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Select","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.Path,{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),Object(o.createElement)(l.Circle,{cx:"12",cy:"12",r:"5"}))),edit:G("radio"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose one"}})})},{name:"field-select",settings:i()({},U,{title:Object(c.__)("Select","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Dropdown","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Compact, but powerful. Add a select box with several items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:G("select"),attributes:i()({},U.attributes,{label:{type:"string",default:"Select one"}})})}];Object(r.a)("contact-form",q,$)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=["USD","EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"],s=n(24),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(13),A=n(5),F=n(45),P=n(41),T=(n(230),n(106)),M=n.n(T),N=n(107),R=n.n(N),D=function(e){var t=e.title,n=void 0===t?"":t,r=e.content,o=void 0===r?"":r,c=e.formattedPrice,s=void 0===c?"":c,l=e.multiple,u=void 0!==l&&l,p=e.featuredMediaUrl,d=void 0===p?null:p,h=e.featuredMediaTitle,m=void 0===h?null:h;return Object(a.createElement)("div",{className:"jetpack-simple-payments-wrapper"},Object(a.createElement)("div",{className:"jetpack-simple-payments-product"},d&&Object(a.createElement)("div",{className:"jetpack-simple-payments-product-image"},Object(a.createElement)("figure",{className:"jetpack-simple-payments-image"},Object(a.createElement)("img",{src:d,alt:m}))),Object(a.createElement)("div",{className:"jetpack-simple-payments-details"},n&&Object(a.createElement)("div",{className:"jetpack-simple-payments-title"},Object(a.createElement)("p",null,n)),o&&Object(a.createElement)("div",{className:"jetpack-simple-payments-description"},Object(a.createElement)("p",null,o)),s&&Object(a.createElement)("div",{className:"jetpack-simple-payments-price"},Object(a.createElement)("p",null,s)),Object(a.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},u&&Object(a.createElement)("div",{className:"jetpack-simple-payments-items"},Object(a.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),Object(a.createElement)("div",{className:"jetpack-simple-payments-button"},Object(a.createElement)("img",{alt:Object(i.__)("Pay with PayPal","jetpack"),src:M.a,srcSet:"".concat(R.a," 2x")}))))))},z=n(6),I=n(48),L=function(e){return function(t){return e({featuredMediaId:Object(A.get)(t,"id",0),featuredMediaUrl:Object(A.get)(t,"url",null),featuredMediaTitle:Object(A.get)(t,"title",null)})}},B=function(e){var t=e.featuredMediaId,n=e.featuredMediaUrl,r=e.featuredMediaTitle,c=e.setAttributes;return t?Object(a.createElement)("div",null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(z.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(z.MediaUpload,{onSelect:L(c),allowedTypes:["image"],value:t,render:function(e){var t=e.open;return Object(a.createElement)(I.a,{label:Object(i.__)("Edit Image","jetpack"),onClick:t})}}),Object(a.createElement)(o.ToolbarButton,{icon:"trash",title:Object(i.__)("Remove Image","jetpack"),onClick:function(){return c({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}}))),Object(a.createElement)("figure",null,Object(a.createElement)("img",{src:n,alt:r})))):Object(a.createElement)(z.MediaPlaceholder,{icon:"format-image",labels:{title:Object(i.__)("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:L(c)})},q=function(e){var t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},U=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Object(F.a)(t),a=r.precision,i=r.symbol,o=e.toFixed(a);return n?"".concat(o," ").concat(Object(A.trimEnd)(i,".")):o},V=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),k()(v()(n),"shouldInjectPaymentAttributes",!!n.props.attributes.productId),k()(v()(n),"validateAttributes",(function(){var e=n.validatePrice(),t=n.validateTitle(),r=n.validateEmail(),a=n.validateCurrency();return e&&t&&r&&a})),k()(v()(n),"validateCurrency",(function(){var e=n.props.attributes.currency;return c.includes(e)})),k()(v()(n),"validatePrice",(function(){var e=n.props.attributes,t=e.currency,r=e.price,a=Object(F.a)(t).precision;return r&&0!==parseFloat(r)?Number.isNaN(parseFloat(r))?(n.setState({fieldPriceError:Object(i.__)("Invalid price","jetpack")}),!1):parseFloat(r)<0?(n.setState({fieldPriceError:Object(i.__)("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):q(r)>a?0===a?(n.setState({fieldPriceError:Object(i.__)("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(n.setState({fieldPriceError:Object(i.sprintf)(Object(i._n)("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",a,"jetpack"),a)}),!1):(n.state.fieldPriceError&&n.setState({fieldPriceError:null}),!0):(n.setState({fieldPriceError:Object(i.__)("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),k()(v()(n),"validateEmail",(function(){var e=n.props.attributes.email;return e?C.a.validate(e)?(n.state.fieldEmailError&&n.setState({fieldEmailError:null}),!0):(n.setState({fieldEmailError:Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),e)}),!1):(n.setState({fieldEmailError:Object(i.__)("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),k()(v()(n),"validateTitle",(function(){return n.props.attributes.title?(n.state.fieldTitleError&&n.setState({fieldTitleError:null}),!0):(n.setState({fieldTitleError:Object(i.__)("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),k()(v()(n),"handleEmailChange",(function(e){n.props.setAttributes({email:e}),n.setState({fieldEmailError:null})})),k()(v()(n),"handleFeaturedMediaSelect",(function(e){n.props.setAttributes({featuredMediaId:Object(A.get)(e,"id",0)})})),k()(v()(n),"handleContentChange",(function(e){n.props.setAttributes({content:e})})),k()(v()(n),"handlePriceChange",(function(e){e=parseFloat(e),isNaN(e)?n.props.setAttributes({price:void 0}):n.props.setAttributes({price:e}),n.setState({fieldPriceError:null})})),k()(v()(n),"handleCurrencyChange",(function(e){n.props.setAttributes({currency:e})})),k()(v()(n),"handleMultipleChange",(function(e){n.props.setAttributes({multiple:!!e})})),k()(v()(n),"handleTitleChange",(function(e){n.props.setAttributes({title:e}),n.setState({fieldTitleError:null})})),k()(v()(n),"getCurrencyList",c.map((function(e){var t=Object(F.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(A.trimEnd)(t,"."))}}))),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.injectPaymentAttributes();var e=this.props,t=e.attributes,n=e.hasPublishAction;!t.productId&&n&&this.saveProduct()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.hasPublishAction,r=t.isSelected;Object(A.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&n&&this.validateAttributes()?this.saveProduct():e.isSelected&&!r&&this.validateAttributes()}},{key:"injectPaymentAttributes",value:function(){var e=this.props.simplePayment;if(this.shouldInjectPaymentAttributes&&!Object(A.isEmpty)(e)){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.content,i=n.currency,o=n.email,c=n.featuredMediaId,s=n.multiple,l=n.price,u=n.title;r({content:Object(A.get)(e,["content","raw"],a),currency:Object(A.get)(e,["meta","spay_currency"],i),email:Object(A.get)(e,["meta","spay_email"],o),featuredMediaId:Object(A.get)(e,["featured_media"],c),multiple:Boolean(Object(A.get)(e,["meta","spay_multiple"],Boolean(s))),price:Object(A.get)(e,["meta","spay_price"],l||void 0),title:Object(A.get)(e,["title","raw"],u)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}}},{key:"toApi",value:function(){var e=this.props.attributes,t=e.content,n=e.currency,r=e.email,a=e.featuredMediaId,i=e.multiple,o=e.price,c=e.productId;return{id:c,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:i,spay_price:o},status:c?"publish":"draft",title:e.title}}},{key:"saveProduct",value:function(){var e=this;if(!this.state.isSavingProduct){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.email,o=Object(S.dispatch)("core").saveEntityRecord;this.setState({isSavingProduct:!0},(function(){o("postType","jp_pay_product",e.toApi()).then((function(e){return e&&r({productId:e.id}),e})).catch((function(t){if(t&&t.data){var n=t.data.key;e.setState({fieldEmailError:"spay_email"===n?Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),a):null,fieldPriceError:"spay_price"===n?Object(i.__)("Invalid price.","jetpack"):null})}})).finally((function(){e.setState({isSavingProduct:!1})}))}))}}},{key:"render",value:function(){var e=this.state,t=e.fieldEmailError,n=e.fieldPriceError,r=e.fieldTitleError,c=this.props,s=c.attributes,l=c.featuredMedia,u=c.instanceId,p=c.isSelected,d=c.setAttributes,h=c.simplePayment,m=s.content,f=s.currency,b=s.email,g=s.featuredMediaId,v=s.featuredMediaUrl,j=s.featuredMediaTitle,y=s.multiple,_=s.price,k=s.productId,O=s.title,E=v||l&&l.source_url,C=j||l&&l.alt_text,x=k&&Object(A.isEmpty)(h);if(!p&&x)return Object(a.createElement)("div",{className:"simple-payments__loading"},Object(a.createElement)(D,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!p&&b&&_&&O&&!t&&!n&&!r)return Object(a.createElement)(D,{"aria-busy":"false",content:m,featuredMediaUrl:E,featuredMediaTitle:C,formattedPrice:U(_,f),multiple:y,title:O});var S=x?o.Disabled:"div";return Object(a.createElement)(S,{className:"wp-block-jetpack-simple-payments"},Object(a.createElement)(B,{featuredMediaId:g,featuredMediaUrl:E,featuredMediaTitle:C,setAttributes:d}),Object(a.createElement)("div",null,Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-title-error"),className:w()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":r}),label:Object(i.__)("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:Object(i.__)("Item name","jetpack"),required:!0,type:"text",value:O}),Object(a.createElement)(P.a,{id:"".concat(u,"-title-error"),isError:!0},r),Object(a.createElement)(o.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:Object(i.__)("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:Object(i.__)("Describe your item in a few words","jetpack"),value:m}),Object(a.createElement)("div",{className:"simple-payments__price-container"},Object(a.createElement)(o.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:Object(i.__)("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:f}),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-price-error"),className:w()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":n}),label:Object(i.__)("Price","jetpack"),onChange:this.handlePriceChange,placeholder:U(0,f,!1),required:!0,step:"1",type:"number",value:_||""}),Object(a.createElement)(P.a,{id:"".concat(u,"-price-error"),isError:!0},n)),Object(a.createElement)("div",{className:"simple-payments__field-multiple"},Object(a.createElement)(o.ToggleControl,{checked:Boolean(y),label:Object(i.__)("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-email-").concat(t?"error":"help"),className:w()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":t}),label:Object(i.__)("Email","jetpack"),onChange:this.handleEmailChange,placeholder:Object(i.__)("Email","jetpack"),required:!0,type:"email",value:b}),Object(a.createElement)(P.a,{id:"".concat(u,"-email-error"),isError:!0},t),Object(a.createElement)(P.a,{id:"".concat(u,"-email-help")},Object(i.__)("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",Object(a.createElement)(o.ExternalLink,{href:"https://www.paypal.com/"},Object(i.__)("Create one on PayPal","jetpack")))))}}]),t}(a.Component),H=Object(S.withSelect)((function(e,t){var n=e("core"),r=n.getEntityRecord,a=n.getMedia,i=e("core/editor"),o=i.isSavingPost,c=i.getCurrentPost,s=t.attributes,l=s.productId,u=s.featuredMediaId,p=l?Object(A.pick)(r("postType","jp_pay_product",l),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0;return{hasPublishAction:!!Object(A.get)(c(),["_links","wp:action-publish"]),isSaving:!!o(),simplePayment:p,featuredMedia:u?a(u):null}})),G=Object(x.compose)(H,x.withInstanceId)(V);var $=n(108),W=n.n($),K=(n(231),Object(s.b)()||Object(s.a)()?"https://support.wordpress.com/simple-payments/":"https://jetpack.com/support/jetpack-blocks/simple-payments-block/"),Z={title:Object(i.__)("Simple Payments button","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),Object(a.createElement)("p",null,Object(i.__)("Good for collecting donations or payments for products and services.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:K},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),category:"jetpack",keywords:[Object(i._x)("shop","block search term","jetpack"),Object(i._x)("sell","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:function(e){var t=e.named.id;if(t){var n=parseInt(t,10);return n||void 0}}}}}]},edit:G,save:function(e){var t=e.attributes.productId;return t?Object(a.createElement)(a.RawHTML,null,'[simple-payment id="'.concat(t,'"]')):null},example:{attributes:{price:25,title:Object(i.__)("Jetpack t-shirt","jetpack"),content:Object(i.__)("Take flight in ultimate comfort with ths stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:W.a}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};Object(r.a)("simple-payments",Z)},function(e,t,n){"use strict";n.r(t);var r=n(21),a=n.n(r),i=n(18),o=n.n(i),c=n(15),s=n.n(c),l=n(25),u=n(16),p=n(28),d=n(55),h=n(5),m=n(7),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=n(3),x=n.n(C),S=n(0),A=n(23),F=n.n(A),P=n(2),T=n(14),M=n(13),N=n(6),R=n(1),D=n(12),z=n.n(D),I=function(e){var t=e.text;return Object(S.createElement)("div",{className:"wp-block-embed is-loading"},Object(S.createElement)(P.Spinner,null),Object(S.createElement)("p",null,t))},L=n(31),B=function(e,t){var n=t.autoplay,r=t.controls,a=t.loop,i=t.muted,o=t.poster,c=t.preload;if(!e)return null;var l=s()({},n&&{autoPlay:!0},{},!r&&{controls:!1},{},a&&{loop:!0},{},i&&{muted:!0,persistVolume:!1},{},o&&{posterUrl:o},{},"none"!==c&&{preloadContent:c});return Object(L.addQueryArgs)("https://videopress.com/v/".concat(e),l)},q=["image"],U=Object(T.createHigherOrderComponent)(Object(T.compose)([Object(M.withSelect)((function(e,t){var n=t.attributes,r=n.autoplay,a=n.controls,i=n.guid,o=n.loop,c=n.muted,s=n.poster,u=n.preload,p=n.src,d=e("core"),h=d.getEmbedPreview,m=d.isRequestingEmbedPreview,f=B(i,{autoplay:r,controls:a,loop:o,muted:c,poster:s,preload:u}),b=!!f&&h(f);return{isFetchingPreview:!!f&&m(f),isUploading:Object(l.isBlobURL)(p),preview:b,url:f}})),Object(M.withDispatch)((function(e){return{invalidateCachedEmbedPreview:function(t){e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}})),T.withInstanceId,function(e){return function(t){function n(){var e;return f()(this,n),e=j()(this,_()(n).apply(this,arguments)),x()(O()(e),"fallbackToCore",(function(){e.props.setAttributes({guid:void 0}),e.setState({fallback:!0})})),x()(O()(e),"setGuid",(function(){var t,n,r,a,i,o,c;return regeneratorRuntime.async((function(s){for(;;)switch(s.prev=s.next){case 0:if(t=e.props,n=t.attributes,r=t.setAttributes,a=n.id){s.next=5;break}return r({guid:void 0}),s.abrupt("return");case 5:return s.prev=5,e.setState({isFetchingMedia:!0}),s.next=9,regeneratorRuntime.awrap(F()({path:"/wp/v2/media/".concat(a)}));case 9:if(i=s.sent,e.setState({isFetchingMedia:!1}),o=e.props.attributes.id,a===o){s.next=14;break}return s.abrupt("return");case 14:e.setState({media:i}),(c=Object(h.get)(i,"jetpack_videopress_guid"))?r({guid:c}):e.fallbackToCore(),s.next=23;break;case 19:s.prev=19,s.t0=s.catch(5),e.setState({isFetchingMedia:!1}),e.fallbackToCore();case 23:case"end":return s.stop()}}),null,null,[[5,19]])})),x()(O()(e),"switchToEditing",(function(){e.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),x()(O()(e),"onSelectPoster",(function(t){(0,e.props.setAttributes)({poster:t.url})})),x()(O()(e),"onRemovePoster",(function(){(0,e.props.setAttributes)({poster:""}),e.posterImageButton.current.focus()})),x()(O()(e),"toggleAttribute",(function(t){return function(n){e.props.setAttributes(x()({},t,n))}})),x()(O()(e),"getAutoplayHelp",(function(e){return e?Object(R.__)("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null})),e.state={media:null,isFetchingMedia:!1,fallback:!1},e.posterImageButton=Object(S.createRef)(),e}return E()(n,t),g()(n,[{key:"componentDidMount",value:function(){this.props.attributes.guid||this.setGuid()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.attributes,r=t.invalidateCachedEmbedPreview,a=t.url;n.id!==e.attributes.id&&this.setGuid(),a&&a!==e.url&&r(a)}},{key:"render",value:function(){var t=this,n=this.props,r=n.attributes,a=n.className,i=n.instanceId,o=n.isFetchingPreview,c=n.isSelected,s=n.isUploading,l=n.preview,u=n.setAttributes,p=this.state,d=p.fallback,h=p.isFetchingMedia,m=r.autoplay,f=r.caption,b=r.controls,g=r.loop,v=r.muted,j=r.poster,y=r.preload,_="video-block__poster-image-description-".concat(i),k=Object(S.createElement)(S.Fragment,null,Object(S.createElement)(N.BlockControls,null,Object(S.createElement)(P.Toolbar,null,Object(S.createElement)(P.IconButton,{className:"components-icon-button components-toolbar__control",label:Object(R.__)("Edit video","jetpack"),onClick:this.switchToEditing,icon:"edit"}))),Object(S.createElement)(N.InspectorControls,null,Object(S.createElement)(P.PanelBody,{title:Object(R.__)("Video Settings","jetpack")},Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Autoplay","jetpack"),onChange:this.toggleAttribute("autoplay"),checked:m,help:this.getAutoplayHelp}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Loop","jetpack"),onChange:this.toggleAttribute("loop"),checked:g}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:v}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Playback Controls","jetpack"),onChange:this.toggleAttribute("controls"),checked:b}),Object(S.createElement)(P.SelectControl,{label:Object(R.__)("Preload","jetpack"),value:y,onChange:function(e){return u({preload:e})},options:[{value:"auto",label:Object(R._x)("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:Object(R._x)("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:Object(R._x)("None","VideoPress preload setting","jetpack")}]}),Object(S.createElement)(N.MediaUploadCheck,null,Object(S.createElement)(P.BaseControl,{className:"editor-video-poster-control",label:Object(R.__)("Poster Image","jetpack")},Object(S.createElement)(N.MediaUpload,{title:Object(R.__)("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:q,render:function(e){var n=e.open;return Object(S.createElement)(P.Button,{isDefault:!0,onClick:n,ref:t.posterImageButton,"aria-describedby":_},j?Object(R.__)("Replace image","jetpack"):Object(R.__)("Select Poster Image","jetpack"))}}),Object(S.createElement)("p",{id:_,hidden:!0},j?Object(R.sprintf)(Object(R.__)("The current poster image url is %s","jetpack"),j):Object(R.__)("There is no poster image currently selected","jetpack")),!!j&&Object(S.createElement)(P.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},Object(R.__)("Remove Poster Image")))))));if(s)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Uploading…","jetpack")}));if(h||o)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Generating preview…","jetpack")}));if(d||!l)return Object(S.createElement)(e,this.props);var O=l.html,w=l.scripts;return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)("figure",{className:z()(a,"wp-block-embed","is-type-video")},Object(S.createElement)(P.Disabled,null,Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},Object(S.createElement)(P.SandBox,{html:O,scripts:w}))),(!N.RichText.isEmpty(f)||c)&&Object(S.createElement)(N.RichText,{tagName:"figcaption",placeholder:Object(R.__)("Write caption…","jetpack"),value:f,onChange:function(e){return u({caption:e})},inlineToolbar:!0})))}}]),n}(S.Component)}]),"withVideoPressEdit"),V=Object(T.createHigherOrderComponent)((function(e){return function(t){var n=t.attributes,r=(n=void 0===n?{}:n).autoplay,a=n.caption,i=n.controls,o=n.guid,c=n.loop,s=n.muted,l=n.poster,u=n.preload;if(!o)return e(t);var p=B(o,{autoplay:r,controls:i,loop:c,muted:s,poster:l,preload:u});return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(p,"\n")),!N.RichText.isEmpty(a)&&Object(S.createElement)(N.RichText.Content,{tagName:"figcaption",value:a}))}}),"withVideoPressSave"),H=n(40);var G={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:function(e){var t=e.attributes,n=t.caption,r=t.guid;if(!r)return null;var a="https://videopress.com/v/".concat(r);return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(a,"\n")),!N.RichText.isEmpty(n)&&Object(S.createElement)(N.RichText.Content,{tagName:"figcaption",value:n}))},isDeprecation:!0};Object(d.addFilter)("blocks.registerBlockType","jetpack/videopress",(function(e,t){if("core/video"!==t||e.isDeprecation)return e;var n=e.attributes,r=e.deprecated,i=e.edit,c=e.save,d=e.supports,m=e.transforms,f=Object(H.a)("videopress"),b=f.available,g=f.unavailableReason;return b||["missing_plan","missing_module"].includes(g)?s()({},e,{attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},transforms:s()({},m,{from:[{type:"files",isMatch:function(e){return Object(h.every)(e,(function(e){return 0===e.type.indexOf("video/")}))},priority:9,transform:function(e,t){var n=[];return e.forEach((function(e){var r=Object(u.createBlock)("core/video",{src:Object(l.createBlobURL)(e)});Object(p.mediaUpload)({filesList:[e],onFileChange:function(e){var n=o()(e,1)[0],a=n.id,i=n.url;t(r.clientId,{id:a,src:i})},allowedTypes:["video"]}),n.push(r)})),n}}]}),supports:s()({},d,{reusable:!1}),edit:U(i),save:V(c),deprecated:[].concat(a()(r||[]),[{attributes:n,isEligible:function(e){return!e.guid},save:c,supports:d,isDeprecation:!0},G])}):e}))},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(15),s=n.n(c),l=n(21),u=n.n(l),p=n(7),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(3),w=n.n(O),E=n(14),C=n(5),x=n(25),S=n(13),A=n(6),F=n(28),P=n(48),T=function(e){var t=e.allowedMediaTypes,n=e.attributes,r=n.autoplay,c=n.delay,s=n.effect,l=n.images,u=n.sizeSlug,p=e.imageSizeOptions,d=e.onChangeImageSize,h=e.onSelectImages,m=e.setAttributes,f="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,b=[{label:Object(i._x)("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:Object(i._x)("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(A.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Autoplay","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Autoplay","jetpack"),help:Object(i.__)("Autoplay between slides","jetpack"),checked:r,onChange:function(e){m({autoplay:e})}}),r&&Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Delay between transitions (in seconds)","jetpack"),value:c,onChange:function(e){m({delay:e})},min:1,max:5}),r&&f&&Object(a.createElement)("span",null,Object(i.__)("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Effects","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Transition effect","jetpack"),value:s,onChange:function(e){m({effect:e})},options:b})),!Object(C.isEmpty)(l)&&!Object(C.isEmpty)(p)&&Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Image Settings","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Image Size","jetpack"),value:u,options:p,onChange:d}))),Object(a.createElement)(A.BlockControls,null,!!l.length&&Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(A.MediaUpload,{onSelect:h,allowedTypes:t,multiple:!0,gallery:!0,value:l.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(a.createElement)(P.a,{label:Object(i.__)("Edit Slideshow","jetpack"),onClick:t})}}))))},M=n(12),N=n.n(M),R=n(39),D=n(73),z=n(38),I=function(e){function t(e){var n;return d()(this,t),n=b()(this,v()(t).call(this,e)),w()(y()(n),"pendingRequestAnimationFrame",null),w()(y()(n),"resizeObserver",null),w()(y()(n),"initializeResizeObserver",(function(e){n.clearResizeObserver(),n.resizeObserver=new R.a((function(){n.clearPendingRequestAnimationFrame(),n.pendingRequestAnimationFrame=requestAnimationFrame((function(){Object(z.d)(e),e.update()}))})),n.resizeObserver.observe(e.el)})),w()(y()(n),"clearPendingRequestAnimationFrame",(function(){n.pendingRequestAnimationFrame&&(cancelAnimationFrame(n.pendingRequestAnimationFrame),n.pendingRequestAnimationFrame=null)})),w()(y()(n),"clearResizeObserver",(function(){n.resizeObserver&&(n.resizeObserver.disconnect(),n.resizeObserver=null)})),w()(y()(n),"prefersReducedMotion",(function(){return"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches})),w()(y()(n),"buildSwiper",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(Object(D.a)(n.slideshowRef.current,{autoplay:!(!n.props.autoplay||n.prefersReducedMotion())&&{delay:1e3*n.props.delay,disableOnInteraction:!1},effect:n.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:n.btnNextRef.current,prevEl:n.btnPrevRef.current},pagination:{clickable:!0,el:n.paginationRef.current,type:"bullets"}},{init:z.b,imagesReady:z.d,paginationRender:z.c,transitionEnd:z.a}))})),n.slideshowRef=Object(a.createRef)(),n.btnNextRef=Object(a.createRef)(),n.btnPrevRef=Object(a.createRef)(),n.paginationRef=Object(a.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.onError;this.buildSwiper().then((function(t){e.swiperInstance=t,e.initializeResizeObserver(t)})).catch((function(){t(Object(i.__)("The Swiper library could not be loaded.","jetpack"))}))}},{key:"componentWillUnmount",value:function(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}},{key:"componentDidUpdate",value:function(e){var t,n=this,r=this.props,a=r.align,o=r.autoplay,c=r.delay,s=r.effect,l=r.images,u=r.onError;(a===e.align&&Object(C.isEqual)(l,e.images)||this.swiperInstance&&this.swiperInstance.update(),s!==e.effect||o!==e.autoplay||c!==e.delay||l!==e.images)&&(t=this.swiperIndex?l.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((function(e){n.swiperInstance=e,n.initializeResizeObserver(e)})).catch((function(){u(Object(i.__)("The Swiper library could not be loaded.","jetpack"))})))}},{key:"render",value:function(){var e=this.props,t=e.autoplay,n=e.className,r=e.delay,i=e.effect,c=e.images;return Object(a.createElement)("div",{className:n,"data-autoplay":t||null,"data-delay":t?r:null,"data-effect":i},Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},Object(a.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},c.map((function(e){var t=e.alt,n=e.caption,r=e.id,i=e.url;return Object(a.createElement)("li",{className:N()("wp-block-jetpack-slideshow_slide","swiper-slide",Object(x.isBlobURL)(i)&&"is-transient"),key:r},Object(a.createElement)("figure",null,Object(a.createElement)("img",{alt:t,className:"wp-block-jetpack-slideshow_image wp-image-".concat(r),"data-id":r,src:i}),Object(x.isBlobURL)(i)&&Object(a.createElement)(o.Spinner,null),n&&Object(a.createElement)(A.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),Object(a.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}]),t}(a.Component);w()(I,"defaultProps",{effect:"slide"});var L=I,B=(n(232),["image"]),q=function(e,t){var n=Object(C.pick)(e,["alt","id","link","caption"]);return n.url=Object(C.get)(e,["sizes",t,"url"])||Object(C.get)(e,["media_details","sizes",t,"source_url"])||e.url,n},U=function(e){function t(){var e;return d()(this,t),e=b()(this,v()(t).apply(this,arguments)),w()(y()(e),"onSelectImages",(function(t){var n=e.props.attributes.sizeSlug,r=t.map((function(e){return q(e,n)}));e.setAttributes({images:r})})),w()(y()(e),"onRemoveImage",(function(t){return function(){var n=Object(C.filter)(e.props.attributes.images,(function(e,n){return t!==n}));e.setState({selectedImage:null}),e.setAttributes({images:n})}})),w()(y()(e),"addFiles",(function(t){var n=e.props.attributes.images||[],r=e.props.attributes.sizeSlug,a=e.props,i=a.lockPostSaving,o=a.unlockPostSaving,c=a.noticeOperations;i("slideshowBlockLock"),Object(F.mediaUpload)({allowedTypes:B,filesList:t,onFileChange:function(t){var a=t.map((function(e){return q(e,r)}));e.setAttributes({images:[].concat(u()(n),u()(a))}),a.every((function(e){return Object(x.isBlobURL)(e.url)}))||o("slideshowBlockLock")},onError:c.createErrorNotice})})),w()(y()(e),"uploadFromFiles",(function(t){return e.addFiles(t.target.files)})),w()(y()(e),"updateImagesSize",(function(t){var n=e.props.attributes.images,r=e.props.resizedImages,a=n.map((function(e){var n=r.find((function(t){var n=t.id;return parseInt(n,10)===parseInt(e.id,10)})),a=Object(C.get)(n,["sizes",t,"source_url"]);return s()({},e,{},a&&{url:a})}));e.setAttributes({images:a,sizeSlug:t})})),e.state={selectedImage:null},e}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this.props.attributes,t=e.ids;e.sizeSlug||this.setAttributes({sizeSlug:t.length?"full":"large"})}},{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=s()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"getImageSizeOptions",value:function(){var e=this.props.imageSizes;return Object(C.map)(e,(function(e){var t=e.name;return{value:e.slug,label:t}}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.noticeOperations,l=t.noticeUI,u=n.align,p=n.autoplay,d=n.delay,h=n.effect,m=n.images,f=this.getImageSizeOptions(),b=Object(a.createElement)(T,{allowedMediaTypes:B,attributes:n,imageSizeOptions:f,onChangeImageSize:this.updateImagesSize,onSelectImages:this.onSelectImages,setAttributes:function(t){return e.setAttributes(t)}});return 0===m.length?Object(a.createElement)(a.Fragment,null,b,Object(a.createElement)(A.MediaPlaceholder,{icon:Object(a.createElement)(A.BlockIcon,{icon:X}),className:r,labels:{title:Object(i.__)("Slideshow","jetpack"),instructions:Object(i.__)("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:B,multiple:!0,notices:l,onError:s.createErrorNotice})):Object(a.createElement)(a.Fragment,null,b,l,Object(a.createElement)(L,{align:u,autoplay:p,className:r,delay:d,effect:h,images:m,onError:s.createErrorNotice}),Object(a.createElement)(o.DropZone,{onFilesDrop:this.addFiles}),c&&Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},Object(a.createElement)(o.FormFileUpload,{multiple:!0,isLarge:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(i.__)("Upload an image","jetpack"))))}}]),t}(a.Component),V=Object(E.compose)(Object(S.withSelect)((function(e,t){return{imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce((function(t,n){var r=e("core").getMedia(n),a=Object(C.get)(r,["media_details","sizes"]);return[].concat(u()(t),[{id:n,sizes:a}])}),[])}})),Object(S.withDispatch)((function(e){var t=e("core/editor");return{lockPostSaving:t.lockPostSaving,unlockPostSaving:t.unlockPostSaving}})),o.withNotices)(U),H=n(16);function G(e){return Object(C.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var $={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return G(e).length>0},transform:function(e){var t=G(e);return Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:function(e){var t=G(e.images);return t.length>0?Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))}):Object(H.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids;return Object(H.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.images;return t.length>0?t.map((function(e){var t=e.id,n=e.url,r=e.alt,a=e.caption;return Object(H.createBlock)("core/image",{id:t,url:n,alt:r,caption:a})})):Object(H.createBlock)("core/image")}}]},W=n(109),K=n.n(W),Z=n(110),J=n.n(Z),Y=n(111),Q=n.n(Y),X=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{d:"M0 0h24v24H0z",fill:"none"}),Object(a.createElement)(o.Path,{d:"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"})),ee={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:K.a},{alt:"",caption:"",id:23,url:J.a},{alt:"",caption:"",id:23,url:Q.a}],effect:"slide"},te={title:Object(i.__)("Slideshow","jetpack"),category:"jetpack",keywords:[Object(i._x)("image","block search term","jetpack"),Object(i._x)("gallery","block search term","jetpack"),Object(i._x)("slider","block search term","jetpack")],description:Object(i.__)("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:X,edit:V,save:function(e){var t=e.attributes,n=t.align,r=t.autoplay,i=t.delay,o=t.effect,c=t.images,s=e.className;return Object(a.createElement)(L,{align:n,autoplay:r,className:s,delay:i,effect:o,images:c})},transforms:$,example:{attributes:ee}};Object(r.a)("slideshow",te)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(13),c=n(5),s=function(e){return e.map((function(e){return e.value}))},l=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],u=s(l),p=function(e){return Object(c.compact)([{value:"standard",label:Object(i.__)("Standard (224 x 301 pixels)","jetpack")},{value:"tall",label:Object(i.__)("Tall (288 x 490 pixels)","jetpack")},{value:"wide",label:Object(i.__)("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&{value:"button",label:Object(i.__)("Button (210 x 113 pixels)","jetpack")}])},d=function(e){return s(p(e))},h=Object(o.select)("core/block-editor").getSettings().siteLocale,m=!Object(c.isEmpty)(h)&&u.includes(h)?h:"en-US",f={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:d()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:m,type:"string",validValues:u},newtab:{default:!1,type:"boolean"}},b=n(3),g=n.n(b),v=n(18),j=n.n(v),y=(n(79),n(12)),_=n.n(y),k=n(6),O=n(2),w=(n(89),Object(a.createElement)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},Object(a.createElement)(O.Path,{fill:"#555d66",d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))),E=n(24),C=n(30),x=n.n(C);var S=/<script type=\'text\/javascript\' src=\'\/\/www.opentable\.(\w{2,3}\.)?\w+\/widget\/reservation\/loader\?[^']+\'><\/script>/;function A(e){var t=Object(a.useState)(""),n=j()(t,2),r=n[0],o=n[1],s=function(e,t){var n=Object(a.useState)([]),r=j()(n,2),i=r[0],o=r[1],s=Object(a.useCallback)(Object(c.throttle)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((function(e){return e.json()})).then((function(e){return o(Object(c.unionBy)(i,e.items,"rid"))}))}),500),[i]);return Object(a.useEffect)((function(){Object(c.isEmpty)(e)||e.startsWith("<script")||s(e)}),[e]),i}(r,20),l=Object(a.useState)(e.rids||[]),u=j()(l,2),p=u[0],d=u[1],h=/^(\d+)$|\(\#(\d+)\)$/,m=s.filter((function(e){return p.indexOf(e.rid.toString())})).map((function(e){return e.name+" (#".concat(e.rid,")")})),f=Object(a.createElement)(O.FormTokenField,x()({value:p,suggestions:m,onInputChange:o,maxSuggestions:20,label:Object(i._n)("Restaurant","Restaurants",p.length,"jetpack")},e,{onChange:function(t){var n=t.map((function(e){var t=h.exec(e);return t[1]||t[2]}));d(n),e.onChange&&e.onChange(n)}}));return Object(a.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?Object(a.createElement)("form",{onSubmit:function(t){t.preventDefault(),e.onSubmit(Object(c.isEmpty)(p)&&S.test(r)?r:p)}},f,Object(a.createElement)(O.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i.__)("Embed","jetpack"))):f)}var F=n(59),P=n(51);n(133);var T={title:Object(i.__)("OpenTable","jetpack"),description:Object(i.__)("Allow visitors to book a reservation with OpenTable","jetpack"),icon:w,category:"jetpack",keywords:[Object(i.__)("opentable","jetpack"),Object(i.__)("reservation","jetpack"),Object(i.__)("restaurant","jetpack")],supports:{align:!0,html:!1},edit:function(e){var t,n=e.attributes,r=e.setAttributes,o=e.className,s=e.clientId,h=Object(P.a)(f,n);Object(c.isEqual)(h,n)||r(h);var m,b,v,y,C,x=n.align,S=n.rid,T=n.style,M=n.iframe,N=n.domain,R=n.lang,D=n.newtab,z=Object(a.useState)(),I=j()(z,2),L=I[0],B=I[1],q=function(){return B(Object(a.createElement)(a.Fragment,null,Object(a.createElement)("strong",null,Object(i.__)("We ran into an issue","jetpack")),Object(a.createElement)("br",null),Object(i.__)("Please ensure this embed matches the one from your OpenTable account","jetpack")))},U=p(S),V=d(S),H=function(e){return S.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e]},G=Object(a.createElement)(k.BlockControls,null,!Object(c.isEmpty)(S)&&Object(a.createElement)(O.Toolbar,{popoverProps:{className:"is-opentable"},isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:U.map((function(e){return{title:e.label,isActive:e.value===T,onClick:function(){return t=e.value,r({style:t}),"wide"===T&&"wide"===x&&r({align:""}),void("wide"===t&&r({align:"wide"}));var t}}}))})),$=function(e){Array.isArray(e)?r({rid:e,style:e.length>1&&"button"===T?"standard":T}):function(e){if(e){var t=e.match(/< *script[^>]*src *= *["']?([^"']*)/i);if(t&&t[1]){var n="";if((n=0===t[1].indexOf("http")?new URL(t[1]):new URL("http:"+t[1])).search){var a=new URLSearchParams(n.search),i=a.get("theme");"button"===a.get("type")&&(i=a.get("type"));var o={rid:a.getAll("rid"),iframe:Boolean(a.get("iframe")),domain:a.get("domain"),lang:a.get("lang"),newtab:Boolean(a.get("newtab")),style:i},c=Object(P.a)(f,o);r(c)}else q()}else q()}else q()}(e)},W=Object(E.b)()||Object(E.a)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",K=Object(a.createElement)(O.Placeholder,{label:Object(i.__)("OpenTable Reservation","jetpack"),icon:Object(a.createElement)(k.BlockIcon,{icon:w}),instructions:Object(i.__)("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:L&&Object(a.createElement)(O.Notice,{status:"error",isDismissible:!1},L)},Object(a.createElement)(A,{rids:S,onSubmit:$}),Object(a.createElement)("div",{className:"".concat(o,"-placeholder-links")},Object(a.createElement)(O.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},Object(i.__)("Sign up for OpenTable","jetpack")),Object(a.createElement)(O.ExternalLink,{href:W},Object(i.__)("Learn more","jetpack")))),Z=_()(o,(t={},g()(t,"".concat(o,"-theme-").concat(T),!Object(c.isEmpty)(S)&&V.includes(T)),g()(t,"is-multi","multi"===H(T)[0]),t));return Object(a.createElement)("div",{className:Z},!Object(c.isEmpty)(S)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(k.InspectorAdvancedControls,null,Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Load the widget in an iFrame (Recommended)","jetpack"),checked:M,onChange:function(){return r({iframe:!M})},className:"is-opentable"})),Object(a.createElement)(k.InspectorControls,null,Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(F.a,{clientId:s,styleOptions:U,onSelectStyle:r,activeStyle:T,attributes:n,viewportWidth:150})),Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(a.createElement)(A,{rids:S,onChange:$}),Object(a.createElement)(O.SelectControl,{label:Object(i.__)("Language","jetpack"),value:R,onChange:function(e){return r({lang:e})},options:l}),Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Open in a new window","jetpack"),checked:D,onChange:function(){return r({newtab:!D})}})))),G),Object(c.isEmpty)(S)?K:(b=H(m||T),v=j()(b,2),y=v[0],C=v[1],Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(o,"-overlay")}),Object(a.createElement)("iframe",{title:Object(i.sprintf)(Object(i.__)("Open Table Preview %s","jetpack"),s),scrolling:"no",src:"https://www.opentable.com/widget/reservation/canvas?rid=".concat(Object(c.join)(S,"%2C"),"&type=").concat(y,"&theme=").concat(C,"&overlay=false&domain=").concat(N,"&lang=").concat(R&&u.includes(R)?R:"en-US","&newtab=").concat(D,"&disablega=true")}))))},save:function(e){var t=e.attributes.rid;return Object(a.createElement)(a.Fragment,null,t.map((function(e){return Object(a.createElement)("a",{href:"https://www.opentable.com/restref/client/?rid=".concat(e)},"https://www.opentable.com/restref/client/?rid=".concat(e))})))},attributes:f,example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1}}};Object(r.a)("opentable",T)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(12),O=n.n(k),w=n(6),E=n(13),C=n(28),x=n(23),S=n.n(x),A=n(26);function F(e){if(!e)return null;var t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}var P=n(24),T=n(14),M=window.getComputedStyle,N=Object(o.withFallbackStyles)((function(e,t){var n=t.textColor,r=t.backgroundColor,a=r&&r.color,i=n&&n.color,o=!i&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:a||!e?void 0:M(e).backgroundColor,fallbackTextColor:i||!o?void 0:M(o).color}}));function R(e){var t=e.borderRadius,n=void 0===t?"":t,r=e.setAttributes,c=Object(a.useCallback)((function(e){r({borderRadius:e})}),[r]);return Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Border Settings","jetpack")},Object(a.createElement)(o.RangeControl,{value:n,label:Object(i.__)("Border Radius","jetpack"),min:0,max:50,initialPosition:5,allowReset:!0,onChange:c}))}var D=function(e){function t(){var e;return l()(this,t),(e=h()(this,f()(t).apply(this,arguments))).nodeRef=null,e.bindRef=e.bindRef.bind(g()(e)),e}return j()(t,e),p()(t,[{key:"bindRef",value:function(e){e&&(this.nodeRef=e)}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.backgroundColor,o=t.textColor,c=t.setBackgroundColor,s=t.setTextColor,l=t.fallbackBackgroundColor,u=t.fallbackTextColor,p=t.setAttributes,d=t.className,h=n.borderRadius,m=n.placeholder,f=n.text,b=n.title;return Object(a.createElement)("div",{className:O()(d,"wp-block-button is-modal-button"),title:b,ref:this.bindRef},Object(a.createElement)(w.RichText,{placeholder:m||Object(i.__)("Add text…","jetpack"),value:f,keepPlaceholderOnFocus:!0,onChange:function(e){return p({text:e})},withoutInteractiveFormatting:!0,className:O()("wp-block-button__link",(e={"has-background":r.color},_()(e,r.class,r.class),_()(e,"has-text-color",o.color),_()(e,o.class,o.class),_()(e,"no-border-radius",0===h),e)),style:{backgroundColor:r.color,color:o.color,borderRadius:h?h+"px":void 0}}),Object(a.createElement)(w.InspectorControls,null,Object(a.createElement)(w.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),colorSettings:[{value:r.color,onChange:c,label:Object(i.__)("Background Color","jetpack")},{value:o.color,onChange:s,label:Object(i.__)("Text Color","jetpack")}]},Object(a.createElement)(w.ContrastChecker,{isLargeText:!1,textColor:o.color,backgroundColor:r.color,fallbackBackgroundColor:l,fallbackTextColor:u})),Object(a.createElement)(R,{borderRadius:h,setAttributes:p})))}}]),t}(a.Component),z=Object(T.compose)([Object(w.withColors)("backgroundColor",{textColor:"color"}),N])(D),I=n(97),L=n.n(I),B=n(98),q=n.n(B),U=(n(153),[{name:"fill",label:Object(i.__)("Fill","jetpack"),isDefault:!0},{name:"outline",label:Object(i.__)("Outline","jetpack")}]),V=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{editedUrl:n.props.attributes.url||"",editingUrl:!1,resolvingUrl:n.props.attributes.url&&!n.props.attributes.eventId,resolvedStatusCode:null}),_()(g()(n),"resolveUrl",(function(){var e=n.props.attributes.url;n.setState({resolvedStatusCode:null}),n.fetchRequest=S()({path:"/wpcom/v2/resolve-redirect/".concat(e)}),n.fetchRequest.then((function(t){n.fetchRequest=null;var r=t.url||e,a=t.status?parseInt(t.status,10):null;n.props.setAttributes({eventId:F(r),url:r}),n.setState({resolvingUrl:!1,resolvedStatusCode:a,editedUrl:r})}),(function(e){"abort"!==e.statusText&&(n.fetchRequest=null,n.setState({resolvingUrl:!1,editingUrl:!0}))}))})),_()(g()(n),"setUrl",(function(e){e&&e.preventDefault();var t=n.state.editedUrl;t&&(n.props.setAttributes({eventId:F(t),url:t}),n.setState({editingUrl:!1,resolvingUrl:!0}))})),_()(g()(n),"cannotEmbed",(function(){var e=n.props.attributes.url,t=n.state.resolvedStatusCode;return e&&!G.test(e)||t&&t>=400})),_()(g()(n),"setEmbedType",(function(e){(0,n.props.setAttributes)({useModal:"modal"===e})})),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingUrl&&this.resolveUrl()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingUrl&&this.state.resolvingUrl&&this.resolveUrl()}},{key:"renderLoading",value:function(){return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…","jetpack")))}},{key:"renderInspectorControls",value:function(){var e=this.props.attributes.useModal,t=[{value:"inline",isActive:!e,label:Object(i.__)("In-page Embed","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:L.a,alt:Object(i.__)("In page Eventbrite checkout example","jetpack")}))},{value:"modal",isActive:e,label:Object(i.__)(" Button & Modal","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:q.a,alt:Object(i.__)("Modal Eventbrite checkout example","jetpack")}))}];return Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"jetpack-eventbrite-block__embed-type-controls",title:Object(i._x)("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack")},Object(a.createElement)("div",{className:"block-editor-block-styles"},t.map(this.renderEmbedTypeItem.bind(this)))))}},{key:"renderEmbedTypeItem",value:function(e){var t=this,n=e.label,r=e.isActive,i=e.value,o=e.preview;return Object(a.createElement)("div",{key:i,className:O()("block-editor-block-styles__item",{"is-active":r}),onClick:function(){return t.setEmbedType(i)},onKeyDown:function(e){A.ENTER!==e.keyCode&&A.SPACE!==e.keyCode||e.preventDefault()},role:"button",tabIndex:"0","aria-label":n},Object(a.createElement)("div",{className:"block-editor-block-styles__item-preview"},o),Object(a.createElement)("div",{className:"block-editor-block-styles__item-label"},n))}},{key:"renderBlockControls",value:function(){var e=this;return Object(a.createElement)(w.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})))}},{key:"renderEditEmbed",value:function(){var e=this,t=this.props.className,n=this.state.editedUrl,r=Object(P.b)()||Object(P.a)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Eventbrite Checkout","jetpack"),instructions:Object(i.__)("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:Object(a.createElement)(w.BlockIcon,{icon:K})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":Object(i.__)("Eventbrite URL","jetpack"),placeholder:Object(i.__)("Enter an event URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isDefault:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","submit button label","jetpack")),this.cannotEmbed()&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return t=n,r=e.props.onReplace,i=Object(a.createElement)("a",{href:t},t),void r(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(i)}));var t,r,i}},Object(i._x)("Convert block to link","button label","jetpack")))),Object(a.createElement)("div",{className:"components-placeholder__learn-more"},Object(a.createElement)(o.ExternalLink,{href:r},Object(i.__)("Learn more about Eventbrite embeds","jetpack")))))}},{key:"renderInlinePreview",value:function(){var e=this.props.className,t=this.props.attributes.eventId;if(t){var n="eventbrite-widget-".concat(t),r="\n\t\t\t<script src=\"https://www.eventbrite.com/static/widgets/eb_widgets.js\"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ".concat(t,",\n\t\t\t\t\tiframeContainerId: '").concat(n,"',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id=\"").concat(n,'"></div>\n\t\t');return Object(a.createElement)("div",{className:e},Object(a.createElement)(o.SandBox,{html:r}),Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.addModalButtonStyles,i=t.removeModalButtonStyles,o=n.url,c=n.useModal,s=this.state,l=s.editingUrl;return s.resolvingUrl?(i(),e=this.renderLoading()):l||!o||this.cannotEmbed()?(i(),e=this.renderEditEmbed()):(c?r():i(),e=Object(a.createElement)(a.Fragment,null,this.renderBlockControls(),c?Object(a.createElement)(z,this.props):this.renderInlinePreview())),Object(a.createElement)(a.Fragment,null,this.renderInspectorControls(),e)}}]),t}(a.Component),H=Object(E.withDispatch)((function(e,t,n){var r=t.name,a=(0,(0,n.select)("core/blocks").getBlockStyles)(r);return{addModalButtonStyles:function(){a.length<1&&e("core/blocks").addBlockStyles(r,U)},removeModalButtonStyles:function(){a.length>0&&e("core/blocks").removeBlockStyles(r,U.map((function(e){return e.name})))}}}))(V);var G=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,$=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,W=Object(i.__)("Eventbrite Checkout","jetpack"),K={src:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,{id:"eventbrite-icon"},Object(a.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),foreground:"#555d66"},Z={title:W,description:Object(i.__)("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:K,category:"jetpack",keywords:[Object(i.__)("events","jetpack"),Object(i.__)("tickets","jetpack")],supports:{html:!1},attributes:{url:{type:"string"},eventId:{type:"number"},useModal:{type:"boolean"},text:{type:"string",default:Object(i._x)("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},edit:H,save:function(e){var t=e.attributes,n=t.eventId,r=t.useModal,i=t.url;if(n)return r?function(e){var t,n=e.backgroundColor,r=e.borderRadius,i=e.customBackgroundColor,o=e.customTextColor,c=e.eventId,s=e.text,l=e.textColor,u=e.url,p=Object(w.getColorClassName)("color",l),d=Object(w.getColorClassName)("background-color",n),h=O()("wp-block-button__link",(t={"has-text-color":l||o},_()(t,p,p),_()(t,"has-background",n||i),_()(t,d,d),_()(t,"no-border-radius",0===r),t)),m={backgroundColor:d?void 0:i,color:p?void 0:o,borderRadius:r?r+"px":void 0};return Object(a.createElement)("div",{className:"wp-block-button"},Object(a.createElement)(w.RichText.Content,{className:h,href:u,id:"eventbrite-widget-".concat(c),rel:"noopener noreferrer",role:"button",style:m,tagName:"a",target:"_blank",value:s}))}(t):i&&Object(a.createElement)("a",{className:"eventbrite__direct-link",href:i},i)},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&(G.test(e.textContent)||$.test(e.textContent))},transform:function(e){return Object(c.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://www.eventbrite.com/e/test-event-tickets-123456789",eventId:123456789,useModal:!0}}};Object(r.a)("eventbrite",Z)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(16),c=/^#?[A-Fa-f0-9]{6}$/,s=function(e){return c.test(e)},l={backgroundColor:{type:"string",default:"ffffff",validator:s},submitButtonText:{type:"string",default:Object(i.__)("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:s},textColor:{type:"string",default:"4D5055",validator:s},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:function(e){return!e||e.startsWith("https://calendly.com/")}},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:s},customTextButtonColor:{type:"string",validator:s}},u=n(18),p=n.n(u),d=(n(79),n(5)),h=n(95),m=n.n(h),f=n(6),b=n(2),g=(n(80),Object(a.createElement)(b.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(b.G,{fill:"none",fillRule:"evenodd"},Object(a.createElement)(b.Rect,{height:"20.956522",rx:"3",stroke:"#656a74",strokeWidth:"2",width:"20.956522",x:"1",y:"2.043478"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"6.565217"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"14.652174"}),Object(a.createElement)(b.Path,{d:"m14.6086957 10.0869565c-.6956522-.57971012-1.6231885-.8695652-2.7826087-.8695652-1.7391305 0-3.47826091 1.5652174-3.47826091 3.6521739s1.73913041 3.6521739 3.47826091 3.6521739c1.1594202 0 2.0869565-.3478261 2.7826087-1.0434782",stroke:"#656a74"})))),v=n(51),j=n(32),y=/(^|\/\/)(calendly\.com[^"']*)/i,_=function(e){if(e){var t=function(e){var t=e.match(y);if(t)return"https://"+t[2]}(e);if(t){var n=function(e){var t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;var r=new URLSearchParams(n.search),a=r.get("background_color"),i=r.get("primary_color"),o=r.get("text_color"),c=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(c)&&(t.backgroundColor=a),i&&i.match(c)&&(t.primaryColor=i),o&&o.match(c)&&(t.textColor=o),t}(t),r=function(e){return e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0}(e);r&&(n.style=r);var a=function(e){var t=e.match(/false;"\>([^<]+)\<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/))?t[1]:void 0}(e);a&&(n.submitButtonText=a);var i=function(e){var t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]}(e);i&&(n.customTextButtonColor=i);var o=function(e){var t=e.match(/color: '([^']*?)'/);if(t)return t[1]}(e);return o&&(n.customBackgroundButtonColor=o),n}}},k=n(59);var O={title:Object(i.__)("Calendly","jetpack"),description:Object(i.__)("Embed a calendar for customers to schedule appointments","jetpack"),icon:g,category:"jetpack",keywords:[Object(i.__)("calendar","jetpack"),Object(i.__)("schedule","jetpack"),Object(i.__)("appointments","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:function(e){var t=e.attributes,n=e.className,r=e.clientId,o=e.setAttributes,c=Object(v.a)(l,t);Object(d.isEqual)(c,t)||o(c);var s,u,h=c.backgroundColor,y=c.submitButtonText,O=c.hideEventTypeDetails,w=c.primaryColor,E=c.textColor,C=c.style,x=c.url,S=Object(a.useState)(""),A=p()(S,2),F=A[0],P=A[1],T=Object(a.useState)(),M=p()(T,2),N=M[0],R=M[1],D=function(){return R(Object(a.createElement)(a.Fragment,null,Object(i.__)("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack")))},z=function(e){if(e){e.preventDefault();var t=_(F);if(t){var n=Object(v.a)(l,t);o(n)}else D()}else D()},I=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("form",{onSubmit:z},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)("div",{className:"".concat(n,"-learn-more")},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},Object(i.__)("Need help finding your embed code?","jetpack")))),L=Object(a.createElement)(b.Placeholder,{label:Object(i.__)("Calendly","jetpack"),instructions:Object(i.__)("Enter your Calendly web address or embed code below.","jetpack"),icon:Object(a.createElement)(f.BlockIcon,{icon:g}),notices:N&&Object(a.createElement)(b.Notice,{status:"error",isDismissible:!1},N)},I),B=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(n,"-overlay")}),Object(a.createElement)("iframe",{src:(s=m.a.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:O?1:0,background_color:h,primary_color:w,text_color:E}),"".concat(x,"?").concat(s)),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",style:{minWidth:"320px",height:"630px",width:"100%"},title:"Calendly"})),q=Object(a.createElement)(j.a,{submitButtonText:y,attributes:t,setAttributes:o}),U=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("a",{style:{alignSelf:"flex-start",border:"none"},className:"wp-block-button__link"},y)),V=[{value:"inline",label:Object(i.__)("Inline","jetpack")},{value:"link",label:Object(i.__)("Link","jetpack")}],H=Object(a.createElement)(f.BlockControls,null,x&&Object(a.createElement)(b.Toolbar,{isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:V.map((function(e){return{title:e.label,isActive:e.value===C,onClick:function(){return o({style:e.value})}}})),popoverProps:{className:"is-calendly"}})),G=Object(a.createElement)(f.InspectorControls,null,x&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(k.a,{clientId:r,styleOptions:V,onSelectStyle:o,activeStyle:C,attributes:t,viewportWidth:500}))),Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Calendar Settings","jetpack"),initialOpen:!1},Object(a.createElement)("form",{onSubmit:z,className:"".concat(n,"-embed-form-sidebar")},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)(b.ToggleControl,{label:Object(i.__)("Hide Event Type Details","jetpack"),checked:O,onChange:function(){return o({hideEventTypeDetails:!O})}})),x&&Object(a.createElement)(b.Notice,{className:"".concat(n,"-color-notice"),isDismissible:!1},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},Object(i.__)("Follow these instructions to change the colors in this block.","jetpack"))));return Object(a.createElement)("div",{className:n},G,H,x?"inline"===C?B:u?U:q:L)},save:function(e){var t=e.attributes.url;return Object(a.createElement)("a",{href:t},t)},attributes:l,example:{attributes:{submitButtonText:Object(i.__)("Schedule time with me","jetpack"),hideEventTypeDetails:!1,style:"inline",url:"https://calendly.com/wordpresscom/jetpack-block-example"}},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&y.test(e.textContent)},transform:function(e){var t=_(e.textContent);return Object(o.createBlock)("jetpack/calendly",t)}}]}};Object(r.a)("calendly",O)},function(e,t,n){"use strict";n.r(t);var r,a=n(17),i=n(1),o=n(0),c=n(5),s=n(6),l=n(2),u=n(26),p=function(e){var t,n=e.id,r=e.setRating,a=e.children;return Object(o.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(t=n,function(e){return e.keyCode===u.ENTER?r(t):null}),onClick:function(e){return function(){return r(e)}}(n)},a)},d=(n(217),n(134),{title:Object(i.__)("Star Rating","jetpack"),description:Object(i.__)("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:function(){return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(o.createElement)(l.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}))},keywords:[Object(i._x)("star","block search term","jetpack"),Object(i._x)("rating","block search term","jetpack"),Object(i._x)("review","block search term","jetpack")],category:"jetpack",example:{},styles:[{name:"filled",label:Object(i._x)("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:Object(i._x)("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:function(e){return function(t){var n=t.className,r=t.setAttributes,a=t.attributes,u=a.align,d=a.color,h=a.rating,m=a.maxRating,f=function(e){e===h&&Math.ceil(h)===h&&(e-=.5),r({rating:e})};return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(s.BlockControls,null,Object(o.createElement)(s.AlignmentToolbar,{value:u,onChange:function(e){return r({align:e})}})),Object(o.createElement)("div",{className:n,style:{textAlign:u}},Object(c.range)(1,m+1).map((function(t){return Object(o.createElement)(p,{key:t,id:t,setRating:f},Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t-.5?null:"is-rating-unfilled",color:d})),Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t?null:"is-rating-unfilled",color:d})))}))),Object(o.createElement)(s.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(o.createElement)(l.RangeControl,{label:Object(i.__)("Highest rating","jetpack"),value:m,onChange:function(e){return r({maxRating:e})},min:2,max:10}),Object(o.createElement)(s.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:d,onChange:function(e){return r({color:e})},label:Object(i.__)("Color","jetpack")}]}))))}}((function(e){var t=function(e){return e&&e.color?e.color:"currentColor"}(e),n=function(e){return e&&e.className?e.className:""}(e);return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},Object(o.createElement)(l.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))})),save:(r="★",function(e){var t=e.className,n=e.attributes,a=n.align,i=n.rating,s=n.color;return Object(o.createElement)("figure",{className:t,style:{textAlign:a}},Object(c.range)(1,i+1).map((function(e){return Object(o.createElement)("span",{key:e,style:{color:s}},r)})))})});Object(a.a)("rating-star",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(161),n(24)),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(14),w=n(13),E=n(100),C=new(n.n(E).a),x=function(e){"A"===e.target.nodeName&&(window.confirm(Object(i.__)("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault())},S=function(e){var t=e.className,n=e.source,r=void 0===n?"":n;return Object(a.createElement)(a.RawHTML,{className:t,onClick:x},r.length?C.render(r):"")},A=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"input",null),_()(g()(n),"state",{activePanel:"editor"}),_()(g()(n),"bindInput",(function(e){n.input=e})),_()(g()(n),"updateSource",(function(e){return n.props.setAttributes({source:e})})),_()(g()(n),"handleKeyDown",(function(e){var t=n.props,r=t.attributes,a=t.removeBlock,i=r.source;8===e.keyCode&&""===i&&(a(),e.preventDefault())})),_()(g()(n),"toggleMode",(function(e){return function(){return n.setState({activePanel:e})}})),n}return j()(t,e),p()(t,[{key:"componentDidUpdate",value:function(e){e.isSelected&&!this.props.isSelected&&"preview"===this.state.activePanel&&this.toggleMode("editor")(),!e.isSelected&&this.props.isSelected&&"editor"===this.state.activePanel&&this.input&&this.input.focus()}},{key:"isEmpty",value:function(){var e=this.props.attributes.source;return!e||""===e.trim()}},{key:"renderToolbarButton",value:function(e,t){var n=this.state.activePanel;return Object(a.createElement)("button",{className:"components-tab-button ".concat(n===e?"is-active":""),onClick:this.toggleMode(e)},Object(a.createElement)("span",null,t))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=t.source,c=this.state.activePanel;return!r&&this.isEmpty()?Object(a.createElement)("p",{className:"".concat(n,"__placeholder")},Object(i.__)("Write your _Markdown_ **here**…","jetpack")):Object(a.createElement)("div",{className:n},Object(a.createElement)(k.BlockControls,null,Object(a.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton("editor",Object(i.__)("Markdown","jetpack")),this.renderToolbarButton("preview",Object(i.__)("Preview","jetpack")))),"preview"!==c&&r?Object(a.createElement)(k.PlainText,{className:"".concat(n,"__editor"),onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":Object(i.__)("Markdown","jetpack"),innerRef:this.bindInput,value:o}):Object(a.createElement)(S,{className:"".concat(n,"__preview"),source:o}))}}]),t}(a.Component),F=Object(O.compose)([Object(w.withSelect)((function(e){return{currentBlockId:e("core/block-editor").getSelectedBlockClientId()}})),Object(w.withDispatch)((function(e,t){var n=t.currentBlockId;return{removeBlock:function(){return e("core/block-editor").removeBlocks(n)}}}))])(A),P=Object(i.__)("Try Markdown","jetpack"),T=Object(i.__)("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),M=Object(c.b)()||Object(c.a)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",N={title:Object(i.__)("Markdown","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Use regular characters and punctuation to style text, links, and lists.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:M},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},Object(a.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),Object(a.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),category:"jetpack",keywords:[Object(i._x)("formatting","block search term","jetpack"),Object(i._x)("syntax","block search term","jetpack"),Object(i._x)("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:F,save:function(e){var t=e.attributes,n=e.className;return Object(a.createElement)(S,{className:n,source:t.source})},example:{attributes:{source:"## ## ".concat(P,"\n\n").concat(T)}}};Object(r.a)("markdown",N)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(6),k=[{height:250,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:Object(i.__)("Rectangle 300x250","jetpack"),tag:"mrec",width:300,editorPadding:30},{height:90,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:Object(i.__)("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:Object(i.__)("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),Object(a.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:Object(i.__)("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}],O=Object(i.__)("Pick an ad format","jetpack");function w(e){var t=e.value,n=e.onChange;return Object(a.createElement)(o.Dropdown,{position:"bottom right",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(a.createElement)(o.Toolbar,{controls:[{icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:O,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:function(e){var r=e.onClose;return Object(a.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},k.map((function(e){var i=e.tag,c=e.name,s=e.icon;return Object(a.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:s,isSelected:i===t,key:i,onClick:function(){n(i),r()},role:"menuitemcheckbox"},c)})))}})}n(239);var E=n(119),C=n.n(E),x=n(120),S=n.n(x),A=n(121),F=n.n(A),P=n(122),T=n.n(P),M=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(a))),y()(b()(n),"handleHideMobileChange",(function(e){n.props.setAttributes({hideMobile:!!e})})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,r=e.isSelected,c=t.format,s=t.hideMobile,l=k.filter((function(e){return e.tag===c}))[0],u=Object(a.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:Boolean(s),label:Object(i.__)("Hide ad on mobile views","jetpack"),onChange:this.handleHideMobileChange});return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(_.BlockControls,null,Object(a.createElement)(w,{value:c,onChange:function(e){return n({format:e})}})),Object(a.createElement)("div",{className:"wp-block-jetpack-wordads jetpack-wordads-".concat(c)},Object(a.createElement)("div",{className:"jetpack-wordads__ad",style:{width:l.width,height:l.height,backgroundImage:"url( ".concat(function(e){switch(e){case"leaderboard":return S.a;case"mobile_leaderboard":return F.a;case"wideskyscraper":return T.a;default:return C.a}}(c)," )"),backgroundSize:"cover"}}),r&&u))}}]),t}(a.Component),N=Object(i.__)("Ad","jetpack"),R=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),D={title:N,description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Earn income by adding high quality ads to your post","jetpack")),Object(a.createElement)(o.ExternalLink,{href:"https://wordads.co/"},Object(i.__)("Learn all about WordAds","jetpack"))),icon:R,attributes:{align:{type:"string",default:"center"},format:{type:"string",default:"mrec"},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"jetpack",keywords:[Object(i.__)("ads","jetpack"),"WordAds",Object(i.__)("Advertisement","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:M,save:function(){return null}};Object(r.a)("wordads",D)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(146),n(126),n(30)),s=n.n(c),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(23),w=n.n(O),E=n(12),C=n.n(E),x=n(58),S=n(6),A=n(15),F=n.n(A),P=n(5),T=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,c=new Array(r),s=0;s<r;s++)c[s]=arguments[s];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(c))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day,c=e.opening,s=e.closing;return Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("div",{className:"business-hours__row"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")},0===t&&n.renderDayToggle()),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Opening","jetpack"),value:c,className:"business-hours__open",placeholder:"09:00",onChange:function(e){n.setHour(e,"opening",t)}}),Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Closing","jetpack"),value:s,className:"business-hours__close",placeholder:"17:00",onChange:function(e){n.setHour(e,"closing",t)}})),Object(a.createElement)("div",{className:"business-hours__remove"},r.hours.length>1&&Object(a.createElement)(o.IconButton,{isSmall:!0,isLink:!0,icon:"trash",onClick:function(){n.removeInterval(t)}}))),t===r.hours.length-1&&Object(a.createElement)("div",{className:"business-hours__row business-hours-row__add"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")}," "),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.IconButton,{isLink:!0,label:Object(i.__)("Add Hours","jetpack"),onClick:n.addInterval},Object(i.__)("Add Hours","jetpack"))),Object(a.createElement)("div",{className:"business-hours__remove"}," ")))})),k()(v()(n),"setHour",(function(e,t,r){var a=n.props,i=a.day,o=a.attributes;(0,a.setAttributes)({days:o.days.map((function(n){return n.name===i.name?F()({},n,{hours:n.hours.map((function(n,a){return a===r?F()({},n,k()({},t,e)):n}))}):n}))})})),k()(v()(n),"toggleClosed",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){if(t.name===r.name){var n=e?[{opening:"09:00",closing:"17:00"}]:[];return F()({},t,{hours:n})}return t}))})})),k()(v()(n),"addInterval",(function(){var e=n.props,t=e.day,r=e.attributes,a=e.setAttributes,i=r.days;t.hours.push({opening:"",closing:""}),a({days:i.map((function(e){return e.name===t.name?F()({},e,{hours:t.hours}):e}))})})),k()(v()(n),"removeInterval",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){return r.name===t.name?F()({},t,{hours:t.hours.filter((function(t,n){return e!==n}))}):t}))})})),n}return y()(t,e),d()(t,[{key:"isClosed",value:function(){var e=this.props.day;return Object(P.isEmpty)(e.hours)}},{key:"renderDayToggle",value:function(){var e=this.props,t=e.day,n=e.localization;return Object(a.createElement)(a.Fragment,null,Object(a.createElement)("span",{className:"business-hours__day-name"},n.days[t.name]),Object(a.createElement)(o.ToggleControl,{label:this.isClosed()?Object(i.__)("Closed","jetpack"):Object(i.__)("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}},{key:"renderClosed",value:function(){var e=this.props.day;return Object(a.createElement)("div",{className:"business-hours__row business-hours-row__closed"},Object(a.createElement)("div",{className:C()(e.name,"business-hours__day")},this.renderDayToggle()),Object(a.createElement)("div",{className:C()(e.name,"closed","business-hours__hours")}," "),Object(a.createElement)("div",{className:"business-hours__remove"}," "))}},{key:"render",value:function(){var e=this.props.day;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}]),t}(a.Component),M=n(18),N=n.n(M),R=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(o))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day.hours;return Object(a.createElement)("span",{key:t},Object(i.sprintf)("%s - %s",n.formatTime(e.opening),n.formatTime(e.closing)),r.length>1+t&&Object(a.createElement)("span",null,", "))})),n}return y()(t,e),d()(t,[{key:"formatTime",value:function(e){var t=this.props.timeFormat,n=e.split(":"),r=N()(n,2),a=r[0],i=r[1],o=new Date;return!(!a||!i)&&(o.setHours(a),o.setMinutes(i),Object(x.date)(t,o))}},{key:"render",value:function(){var e=this,t=this.props,n=t.day,r=t.localization,o=n.hours.filter((function(t){return e.formatTime(t.opening)&&e.formatTime(t.closing)}));return Object(a.createElement)("div",{className:"jetpack-business-hours__item"},Object(a.createElement)("dt",{className:n.name},r.days[n.name]),Object(a.createElement)("dd",null,Object(P.isEmpty)(o)?Object(i._x)("Closed","business is closed on a full day","jetpack"):o.map(this.renderInterval),Object(a.createElement)("br",null)))}}]),t}(a.Component),D={days:{Sun:Object(i.__)("Sunday","jetpack"),Mon:Object(i.__)("Monday","jetpack"),Tue:Object(i.__)("Tuesday","jetpack"),Wed:Object(i.__)("Wednesday","jetpack"),Thu:Object(i.__)("Thursday","jetpack"),Fri:Object(i.__)("Friday","jetpack"),Sat:Object(i.__)("Saturday","jetpack")},startOfWeek:0},z=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{localization:D,hasFetched:!1}),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.apiFetch()}},{key:"apiFetch",value:function(){var e=this;this.setState({data:D},(function(){w()({path:"/wpcom/v2/business-hours/localized-week"}).then((function(t){e.setState({localization:t,hasFetched:!0})}),(function(){e.setState({localization:D,hasFetched:!0})}))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,l=n.days,u=this.state,p=u.localization,d=u.hasFetched,h=p.startOfWeek,m=l.concat(l.slice(0,h)).slice(h);if(!d)return Object(a.createElement)(o.Placeholder,{icon:Object(a.createElement)(S.BlockIcon,{icon:B}),label:Object(i.__)("Loading business hours","jetpack")});if(!c){var f=Object(x.__experimentalGetSettings)().formats.time;return Object(a.createElement)("dl",{className:C()(r,"jetpack-business-hours")},m.map((function(e,t){return Object(a.createElement)(R,{key:t,day:e,localization:p,timeFormat:f})})))}return Object(a.createElement)("div",{className:C()(r,"is-edit")},m.map((function(t,n){return Object(a.createElement)(T,s()({key:n,day:t,localization:p},e.props))})))}}]),t}(a.Component),I=n(20),L=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],B=Object(I.a)(Object(a.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),q={title:Object(i.__)("Business Hours","jetpack"),description:Object(i.__)("Display opening hours for your business.","jetpack"),icon:B,category:"jetpack",supports:{html:!0},keywords:[Object(i._x)("opening hours","block search term","jetpack"),Object(i._x)("closing time","block search term","jetpack"),Object(i._x)("schedule","block search term","jetpack")],attributes:{days:{type:"array",default:L}},edit:function(e){return Object(a.createElement)(z,e)},save:function(){return null},example:{attributes:{days:L}}};Object(r.a)("business-hours",q)},function(e,t,n){"use strict";n.r(t);n(36);var r=n(21),a=n.n(r),i=n(0),o=n(16),c=n(53);Object(o.setCategories)([].concat(a()(Object(o.getCategories)().filter((function(e){return"jetpack"!==e.slug}))),[{slug:"jetpack",title:"Jetpack",icon:Object(i.createElement)(c.a,null)}]));var s,l,u,p,d=n(15),h=n.n(d),m=n(23),f=n.n(m),b=n(13),g=n(1),v=(n(78),n(29)),j=n(35),y=n(24);function _(){var e=Object(j.a)();return void 0!==typeof window&&window.location&&e?Object(y.b)()||Object(y.a)()?"https://wordpress.com/plans/my-plan/".concat(e):"".concat(window.location.protocol,"//").concat(e.replace("::","/"),"/wp-admin/admin.php?page=jetpack#/my-plan"):null}if(regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===typeof window||!window.location){e.next=16;break}if(!Object(v.parse)(window.location.href,!0).query.plan_upgraded){e.next=16;break}if(s=null,e.prev=4,!Object(y.b)()){e.next=7;break}return e.abrupt("break",16);case 7:return e.next=9,regeneratorRuntime.awrap(f()({path:"/jetpack/v4/site"}));case 9:l=e.sent,u=JSON.parse(l.data),s=u.plan.product_name;case 12:return e.prev=12,p=_(),Object(b.dispatch)("core/notices").createNotice("success",s?Object(g.sprintf)(Object(g.__)("Congratulations! Your site is now on the %s plan.","jetpack"),s):Object(g.__)("Congratulations! Your site is now on a paid plan.","jetpack"),h()({isDismissible:!0},p&&{actions:[{url:_(),label:Object(g.__)("View my plan","jetpack")}]})),e.finish(12);case 16:case"end":return e.stop()}}),null,null,[[4,,12,16]]),void 0!==typeof window&&window.location){var k=Object(v.parse)(window.location.href,!0).query;k.stripe_connect_success?Object(b.dispatch)("core/notices").createNotice("success",Object(g.__)("Congrats! Your site is now connected to Stripe. You can start making money by adding your first subscription!","jetpack")):k.stripe_connect_cancelled&&Object(b.dispatch)("core/notices").createNotice("error",Object(g.__)("You cancelled connecting your site to Stripe.","jetpack"))}var O=n(50);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){var w=window.Jetpack_Editor_Initial_State.tracksUserData,E=w.userid,C=w.username;O.a.initialize(E,C,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(5),O=n(6),w=n(23),E=n.n(w),C=n(31);function x(e){if(!F.test(e))return"";var t=Object(C.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}var S=/^\s*https?:\/\/pin\.it\//i,A=function(e){function t(){var e;return l()(this,t),e=h()(this,f()(t).apply(this,arguments)),_()(g()(e),"resolveRedirect",(function(){var t=e.props.attributes.url;e.fetchRequest=E()({path:"/wpcom/v2/resolve-redirect/".concat(t)}),e.fetchRequest.then((function(t){e.fetchRequest=null,e.props.setAttributes({url:t.url}),e.setState({resolvingRedirect:!1,editedUrl:t.url})}),(function(t){"abort"!==t.statusText&&(e.fetchRequest=null,e.setState({resolvingRedirect:!1,editingUrl:!0}))}))})),_()(g()(e),"hideOverlay",(function(){e.setState({interactive:!0})})),_()(g()(e),"setUrl",(function(t){t&&t.preventDefault();var n=e.state.editedUrl;e.props.setAttributes({url:n}),e.setState({editingUrl:!1}),S.test(n)&&e.setState({resolvingRedirect:!0})})),e.state={editedUrl:e.props.attributes.url||"",editingUrl:!1,resolvingRedirect:S.test(e.props.attributes.url),interactive:!1},e}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingRedirect&&this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentWillUnmount",value:function(){Object(k.invoke)(this.fetchRequest,["abort"])}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,s=n.url,l=this.state,u=l.editedUrl,p=l.interactive,d=l.editingUrl;if(l.resolvingRedirect)return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…")));var h=x(s),m="<a data-pin-do='".concat(h,"' href='").concat(s,"'></a>"),f=s&&!h,b=Object(a.createElement)(O.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})));return d||!s||f?Object(a.createElement)("div",{className:r},b,Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Pinterest","jetpack"),icon:Object(a.createElement)(O.BlockIcon,{icon:T})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:u,className:"components-placeholder__input","aria-label":Object(i.__)("Pinterest URL","jetpack"),placeholder:Object(i.__)("Enter URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")),f&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return function(e,t){var n=Object(a.createElement)("a",{href:e},e);t(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(n)}))}(u,e.props.onReplace)}},Object(i._x)("Convert block to link","button label","jetpack")))))):Object(a.createElement)("div",{className:r},b,Object(a.createElement)("div",null,Object(a.createElement)(o.SandBox,{html:m,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:this.hideOverlay}),!p&&Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:this.hideOverlay})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}}]),t}(a.Component),F=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,P=Object(i.__)("Pinterest","jetpack"),T=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,null,Object(a.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),M={title:P,description:Object(i.__)("Embed a Pinterest pin, board, or user.","jetpack"),icon:T,category:"jetpack",supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:A,save:function(e){var t=e.attributes,n=e.className,r=t.url;return x(r)?Object(a.createElement)("div",{className:n},Object(a.createElement)("a",{"data-pin-do":x(r),href:r})):null},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&F.test(e.textContent)},transform:function(e){return Object(c.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://pinterest.com/anapinskywalker/"}}};Object(r.a)("pinterest",M)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(20),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(13),w=n(12),E=n.n(w),C=n(33),x=[{value:C.b,label:Object(i.__)("Show after threshold","jetpack")},{value:C.c,label:Object(i.__)("Show before threshold","jetpack")}],S=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{isThresholdValid:!0}),_()(g()(n),"setCriteria",(function(e){return n.props.setAttributes({criteria:e})})),_()(g()(n),"setThreshold",(function(e){if(/^\d+$/.test(e)&&+e>0)return n.props.setAttributes({threshold:+e}),void n.setState({isThresholdValid:!0});n.setState({isThresholdValid:!1})})),n}return j()(t,e),p()(t,[{key:"getNoticeLabel",value:function(){return this.props.attributes.criteria===C.b?Object(i.sprintf)(Object(i._n)("This block will only appear to people who have visited this page more than once.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):Object(i.sprintf)(Object(i._n)("This block will only appear to people who are visiting this page for the first time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}},{key:"render",value:function(){return Object(a.createElement)("div",{className:E()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},Object(a.createElement)(o.Placeholder,{icon:F,label:Object(i.__)("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":Object(i.__)("Please enter a valid number.","jetpack"),label:Object(i.__)("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),Object(a.createElement)(o.RadioControl,{label:Object(i.__)("Visibility","jetpack"),selected:this.props.attributes.criteria,options:x,onChange:this.setCriteria})),Object(a.createElement)(o.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),Object(a.createElement)(k.InnerBlocks,null))}}]),t}(a.Component),A=Object(O.withSelect)((function(e,t){var n=e("core/block-editor"),r=n.isBlockSelected,a=n.hasSelectedInnerBlock;return{isSelected:r(t.clientId)||a(t.clientId)}}))(S),F=(n(228),Object(c.a)(Object(a.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))),P={attributes:{criteria:{type:"string",default:C.b},threshold:{type:"number",default:C.d}},category:"jetpack",description:Object(i.__)("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:F,keywords:[Object(i._x)("return","block search term","jetpack"),Object(i._x)("visitors","block search term","jetpack"),Object(i._x)("visibility","block search term","jetpack")],supports:{html:!1},title:Object(i.__)("Repeat Visitor","jetpack"),edit:A,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(k.InnerBlocks.Content,null))},example:{attributes:{criteria:C.b,threshold:C.d},innerBlocks:[{name:"core/paragraph",attributes:{content:Object(i.__)("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}};Object(r.a)("repeat-visitor",P)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(21),s=n.n(c),l=n(7),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(23),k=n.n(_),O=n(12),w=n.n(O),E=n(32),C=n(6),x=n(11),S=n.n(x),A=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,i=new Array(r),c=0;c<r;c++)i[c]=arguments[c];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"state",{interest_categories:[]}),y()(b()(n),"retrieveGroups",(function(){k()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((function(e){var t=e.interest_categories;n.setState({interest_categories:t})}))})),y()(b()(n),"render",(function(){var e=n.state.interest_categories,t=n.props,r=t.interests,i=t.onChange;return Object(a.createElement)(a.Fragment,null,e&&(e||[]).map((function(e){return e.interests.map((function(e){return Object(a.createElement)(o.CheckboxControl,{label:e.name,value:e.id,checked:r.includes(e.id),onChange:function(t){return i(e.id,t)},key:e.id})}))})))})),n}return v()(t,e),S()(t,[{key:"componentDidMount",value:function(){this.retrieveGroups()}}]),t}(a.Component),F=A;A.defaultProps={interests:[],onChange:function(){return null}};var P=function(e){function t(){var e;return u()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/mailchimp",method:"GET"};k()(t).then((function(t){var n=t.connect_url,r="connected"===t.code?1:2;e.setState({connected:r,connectURL:n})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"auditionNotification",(function(t){e.setState({audition:t}),e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(e.clearAudition,3e3)})),y()(b()(e),"clearAudition",(function(){e.setState({audition:null})})),y()(b()(e),"updateProcessingText",(function(t){(0,e.props.setAttributes)({processingLabel:t}),e.auditionNotification("processing")})),y()(b()(e),"updateSuccessText",(function(t){(0,e.props.setAttributes)({successLabel:t}),e.auditionNotification("success")})),y()(b()(e),"updateErrorText",(function(t){(0,e.props.setAttributes)({errorLabel:t}),e.auditionNotification("error")})),y()(b()(e),"updateEmailPlaceholder",(function(t){(0,e.props.setAttributes)({emailPlaceholder:t}),e.clearAudition()})),y()(b()(e),"labelForAuditionType",(function(t){var n=e.props.attributes,r=n.processingLabel,a=n.successLabel,i=n.errorLabel;return"processing"===t?r:"success"===t?a:"error"===t?i:null})),y()(b()(e),"roleForAuditionType",(function(e){return"error"===e?"alert":"status"})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,l=t.noticeUI,u=t.setAttributes,p=e.state,d=p.audition,h=p.connected,m=p.connectURL,f=n.emailPlaceholder,b=n.consentText,g=n.interests,v=n.processingLabel,j=n.successLabel,_=n.errorLabel,k=n.preview,O=n.signupFieldTag,x=n.signupFieldValue,S="wp-block-jetpack-mailchimp_",A=Object(a.createElement)(o.Placeholder,{icon:M,notices:c},Object(a.createElement)(o.Spinner,null)),P=Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:M,label:Object(i.__)("Mailchimp","jetpack"),notices:c,instructions:Object(i.__)("You need to connect your Mailchimp account and choose a list in order to start collecting Email subscribers.","jetpack")},Object(a.createElement)("div",null,Object(a.createElement)(o.Button,{isDefault:!0,isLarge:!0,href:m,target:"_blank"},Object(i.__)("Set up Mailchimp form","jetpack"))),Object(a.createElement)(o.Button,{isLink:!0,onClick:e.apiCall},Object(i.__)("Re-check Connection","jetpack"))),T=Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Text Elements","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Email Placeholder","jetpack"),value:f,onChange:e.updateEmailPlaceholder})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Notifications","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Processing text","jetpack"),value:v,onChange:e.updateProcessingText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Success text","jetpack"),value:j,onChange:e.updateSuccessText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Error text","jetpack"),value:_,onChange:e.updateErrorText})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Groups","jetpack")},Object(a.createElement)(F,{interests:g,onChange:function(e,t){var n=s()(new Set([].concat(s()(g),[e]))).filter((function(n){return!(n===e&&!t)&&n}));u({interests:n})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},Object(i.__)("Learn about groups","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Signup Location Tracking","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Tag","jetpack"),placeholder:Object(i.__)("SIGNUP"),value:O,onChange:function(e){return u({signupFieldTag:e})}}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Value","jetpack"),placeholder:Object(i.__)("website"),value:x,onChange:function(e){return u({signupFieldValue:e})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},Object(i.__)("Learn about signup location tracking","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Connection","jetpack")},Object(a.createElement)(o.ExternalLink,{href:m},Object(i.__)("Manage Connection","jetpack")))),N=w()(r,y()({},"".concat(S,"notication-audition"),d)),R=Object(a.createElement)("div",{className:N},Object(a.createElement)(o.TextControl,{"aria-label":f,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:function(){return!1},placeholder:f,title:Object(i.__)("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),Object(a.createElement)(E.a,e.props),Object(a.createElement)(C.RichText,{tagName:"p",placeholder:Object(i.__)("Write consent text","jetpack"),value:b,onChange:function(e){return u({consentText:e})},inlineToolbar:!0}),d&&Object(a.createElement)("div",{className:"".concat(S,"notification ").concat(S).concat(d),role:e.roleForAuditionType(d)},e.labelForAuditionType(d))),D=R;return Object(a.createElement)(a.Fragment,null,l,k&&D,!k&&0===h&&A,!k&&2===h&&P,!k&&1===h&&T,!k&&1===h&&R)})),e.state={audition:null,connected:0,connectURL:null},e.timeout=null,e}return v()(t,e),t}(a.Component),T=Object(o.withNotices)(P),M=(n(156),Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"}))),N={title:Object(i.__)("Mailchimp","jetpack"),icon:M,description:Object(i.__)("A form enabling readers to join a Mailchimp list.","jetpack"),category:"jetpack",keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("subscription","block search term","jetpack"),Object(i._x)("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:Object(i.__)("Enter your email","jetpack")},submitButtonText:{type:"string",default:Object(i.__)("Join my email list","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:Object(i.__)("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:Object(i.__)("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:Object(i.__)("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:Object(i.__)("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:T,save:function(){return null},example:{attributes:{preview:!0}}};Object(r.a)("mailchimp",N)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(2),o=n(1),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(32),w=n(23),E=n.n(w),C=n(5),x=n(45),S=n(49),A=n(31),F=n(14),P=n(13),T=n(6),M=n(40),N=n(56),R=n.n(N),D=n(50),z=n(57),I=(n(218),function(e){var t=e.stripeConnectUrl;return Object(a.createElement)(z.a,{buttonLabel:Object(o.__)("Connect","jetpack"),icon:Object(a.createElement)(R.a,{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:t,onClick:function(e){D.a.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:e})},title:Object(o.__)("Connect to Stripe to use this block on your site","jetpack"),subtitle:Object(o.__)("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})}),L=function(e){function t(){var e;s()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/memberships/status",method:"GET"};E()(t).then((function(t){if(t.errors&&Object.values(t.errors)&&Object.values(t.errors)[0][0])return e.setState({connected:null,connectURL:2}),void e.onError(Object.values(t.errors)[0][0]);var n=t.connect_url,r=t.products,a=t.should_upgrade_to_access_memberships,i=t.upgrade_url,o=t.site_slug,c=t.connected_account_id?1:2;e.setState({connected:c,connectURL:n,products:r,shouldUpgrade:a,upgradeURL:i,siteSlug:o})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"getCurrencyList",V.map((function(e){var t=Object(x.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(C.trimEnd)(t,"."))}}))),y()(b()(e),"handleCurrencyChange",(function(t){return e.setState({editedProductCurrency:t})})),y()(b()(e),"handleRenewIntervalChange",(function(t){return e.setState({editedProductRenewInterval:t})})),y()(b()(e),"handlePriceChange",(function(t){t=parseFloat(t),e.setState({editedProductPrice:t,editedProductPriceValid:!isNaN(t)&&t>=5})})),y()(b()(e),"handleTitleChange",(function(t){return e.setState({editedProductTitle:t,editedProductTitleValid:t.length>0})})),y()(b()(e),"saveProduct",(function(){if(e.state.editedProductTitle&&0!==e.state.editedProductTitle.length)if(!e.state.editedProductPrice||isNaN(e.state.editedProductPrice)||e.state.editedProductPrice<5)e.setState({editedProductPriceValid:!1});else{e.setState({addingMembershipAmount:2});var t={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:e.state.editedProductCurrency,price:e.state.editedProductPrice,title:e.state.editedProductTitle,interval:e.state.editedProductRenewInterval}};E()(t).then((function(t){e.setState({addingMembershipAmount:0,products:e.state.products.concat([{id:t.id,title:t.title,interval:t.interval,price:t.price,currency:t.currency}])}),e.setMembershipAmount(t.id)}),(function(t){e.setState({addingMembershipAmount:1}),e.onError(t.message)}))}else e.setState({editedProductTitleValid:!1})})),y()(b()(e),"renderAmount",(function(e){var t=Object(S.a)(parseFloat(e.price),e.currency);return"1 month"===e.interval?Object(o.sprintf)(Object(o.__)("%s / month","jetpack"),t):"1 year"===e.interval?Object(o.sprintf)(Object(o.__)("%s / year","jetpack"),t):"one-time"===e.interval?t:Object(o.sprintf)(Object(o.__)("%s / %s","jetpack"),t,e.interval)})),y()(b()(e),"renderAddMembershipAmount",(function(t){return 0!==e.state.addingMembershipAmount||t?2!==e.state.addingMembershipAmount?Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"membership-button__price-container"},Object(a.createElement)(i.SelectControl,{className:"membership-button__field membership-button__field-currency",label:Object(o.__)("Currency","jetpack"),onChange:e.handleCurrencyChange,options:e.getCurrencyList,value:e.state.editedProductCurrency}),Object(a.createElement)(i.TextControl,{label:Object(o.__)("Price","jetpack"),className:k()({"membership-membership-button__field":!0,"membership-button__field-price":!0,"membership-button__field-error":!e.state.editedProductPriceValid}),onChange:e.handlePriceChange,placeholder:Object(S.a)(0,e.state.editedProductCurrency),required:!0,min:"5.00",step:"1",type:"number",value:e.state.editedProductPrice||""})),Object(a.createElement)(i.TextControl,{className:k()({"membership-button__field":!0,"membership-button__field-error":!e.state.editedProductTitleValid}),label:Object(o.__)("Describe your subscription in a few words","jetpack"),onChange:e.handleTitleChange,placeholder:Object(o.__)("Subscription description","jetpack"),value:e.state.editedProductTitle}),Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Renew interval","jetpack"),onChange:e.handleRenewIntervalChange,options:[{label:Object(o.__)("Monthly","jetpack"),value:"1 month"},{label:Object(o.__)("Yearly","jetpack"),value:"1 year"}],value:e.state.editedProductRenewInterval}),Object(a.createElement)("div",null,Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:e.saveProduct},Object(o.__)("Add this plan","jetpack")),Object(a.createElement)(i.Button,{isLarge:!0,className:"membership-button__field-button",onClick:function(){return e.setState({addingMembershipAmount:0})}},Object(o.__)("Cancel","jetpack")))):void 0:Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,onClick:function(){return e.setState({addingMembershipAmount:1})}},Object(o.__)("Add a plan","jetpack"))})),y()(b()(e),"getFormattedPriceByProductId",(function(t){var n=e.state.products.filter((function(e){return parseInt(e.id)===parseInt(t)})).pop();return Object(S.a)(parseFloat(n.price),n.currency)})),y()(b()(e),"setMembershipAmount",(function(t){return e.props.setAttributes({planId:t,submitButtonText:e.getFormattedPriceByProductId(t)+Object(o.__)(" Contribution","jetpack")})})),y()(b()(e),"renderMembershipAmounts",(function(){return Object(a.createElement)("div",null,e.state.products.map((function(t){return Object(a.createElement)(i.Button,{className:"membership-button__field-button",isLarge:!0,key:t.id,onClick:function(){return e.setMembershipAmount(t.id)}},e.renderAmount(t))})))})),y()(b()(e),"renderDisclaimer",(function(){return Object(a.createElement)("div",{className:"membership-button__disclaimer"},Object(a.createElement)(i.ExternalLink,{href:"https://en.support.wordpress.com/recurring-payments-button/#related-fees"},Object(o.__)("Read more about Recurring Payments and related fees.","jetpack")))})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,s=e.state,l=s.connected,u=s.products,p=n.align,d=e.getConnectUrl(),h=Object(a.createElement)(T.InspectorControls,null,Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Product","jetpack")},Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Payment plan","jetpack"),value:e.props.attributes.planId,onChange:e.setMembershipAmount,options:e.state.products.map((function(t){return{label:e.renderAmount(t),value:t.id,key:t.id}}))})),Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Management","jetpack")},Object(a.createElement)(i.ExternalLink,{href:"https://wordpress.com/earn/payments/".concat(e.state.siteSlug)},Object(o.__)("See your earnings, subscriber list, and products.","jetpack")))),m=k()(r,["wp-block-button__link","components-button","is-primary","is-button","align".concat(p)]),f=Object(a.createElement)(O.a,{className:m,submitButtonText:e.props.attributes.submitButtonText,attributes:e.props.attributes,setAttributes:e.props.setAttributes});return Object(a.createElement)(a.Fragment,null,e.props.noticeUI,!e.hasUpgradeNudge&&!e.state.shouldUpgrade&&2===l&&Object(a.createElement)(I,{blockName:"recurring-payments",stripeConnectUrl:d}),!e.hasUpgradeNudge&&e.state.shouldUpgrade&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c,instructions:Object(o.__)("You'll need to upgrade your plan to use the Recurring Payments button.","jetpack")},Object(a.createElement)(i.Button,{isSecondary:!0,isLarge:!0,href:e.state.upgradeURL,target:"_blank"},Object(o.__)("Upgrade Your Plan","jetpack")),e.renderDisclaimer())),(0===l||2===e.state.addingMembershipAmount)&&!e.props.attributes.planId&&Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),notices:c},Object(a.createElement)(i.Spinner,null)),!e.state.shouldUpgrade&&!e.props.attributes.planId&&1===l&&0===u.length&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, first add at least one payment plan.","jetpack")),e.renderAddMembershipAmount(!0),e.renderDisclaimer()))),!e.state.shouldUpgrade&&!e.props.attributes.planId&&2!==e.state.addingMembershipAmount&&1===l&&u.length>0&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, select a previously created payment plan.","jetpack")),e.renderMembershipAmounts(),Object(a.createElement)("p",null,Object(o.__)("Or a new one.","jetpack")),e.renderAddMembershipAmount(!1),e.renderDisclaimer()))),e.state.products&&h,((e.hasUpgradeNudge||!e.state.shouldUpgrade)&&0!==l||e.props.attributes.planId)&&f,e.hasUpgradeNudge&&2===l&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments disclaimer-only"},e.renderDisclaimer()))})),e.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],siteSlug:"",editedProductCurrency:"USD",editedProductPrice:5,editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},e.timeout=null;var n=Object(M.a)("recurring-payments");return e.hasUpgradeNudge=!n.available&&"missing_plan"===n.unavailableReason,e}return v()(t,e),u()(t,[{key:"getConnectUrl",value:function(){var e,t=this.props.postId,n=this.state.connectURL;if(!Object(A.isURL)(n))return null;if(!t)return n;try{var r=Object(A.getQueryArg)(n,"state");e=JSON.parse(atob(r))}catch(a){return n}return e.from_editor_post_id=t,Object(A.addQueryArgs)(n,{state:btoa(JSON.stringify(e))})}}]),t}(a.Component),B=Object(F.compose)([Object(P.withSelect)((function(e){return{postId:e("core/editor").getCurrentPostId()}})),i.withNotices])(L),q=(n(226),Object(a.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},Object(a.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(i.G,null,Object(a.createElement)(i.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})))),U={title:Object(o.__)("Recurring Payments button","jetpack"),icon:q,description:Object(o.__)("Button allowing you to sell subscription products.","jetpack"),category:"jetpack",keywords:[Object(o._x)("sell","block search term","jetpack"),Object(o._x)("subscription","block search term","jetpack"),"stripe"],attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},edit:B,save:function(){return null},supports:{html:!1,align:!0}},V=["USD","AUD","BRL","CAD","CHF","DKK","EUR","GBP","HKD","JPY","MXN","NOK","NZD","SEK","SGD"];Object(r.a)("recurring-payments",U)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(5),c=n(2),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(23),O=n.n(k),w=n(32),E=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{subscriberCountString:""}),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.get_subscriber_count()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=e.setAttributes,s=t.subscribePlaceholder,l=t.showSubscribersTotal;return r?Object(a.createElement)("div",{className:n,role:"form"},Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Show total subscribers","jetpack"),checked:l,onChange:function(){o({showSubscribersTotal:!l})}}),Object(a.createElement)(c.TextControl,{placeholder:s,disabled:!0,onChange:function(){}}),Object(a.createElement)(w.a,this.props)):Object(a.createElement)("div",{className:n,role:"form"},l&&Object(a.createElement)("p",{role:"heading"},this.state.subscriberCountString),Object(a.createElement)(c.TextControl,{placeholder:s}),Object(a.createElement)(w.a,this.props))}},{key:"get_subscriber_count",value:function(){var e=this;O()({path:"/wpcom/v2/subscribers/count"}).then((function(t){t.hasOwnProperty("count")?e.setState({subscriberCountString:Object(i.sprintf)(Object(i._n)("Join %s other subscriber","Join %s other subscribers",t.count,"jetpack"),t.count)}):e.setState({subscriberCountString:Object(i.__)("Subscriber count unavailable","jetpack")})}))}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}}]),t}(a.Component);var C=n(20),x={title:Object(i.__)("Subscription Form","jetpack"),description:Object(a.createElement)("p",null,Object(i.__)("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:Object(C.a)(Object(a.createElement)(c.Path,{d:"M23 16v2h-3v3h-2v-3h-3v-2h3v-3h2v3h3zM20 2v9h-4v3h-3v4H4c-1.1 0-2-.9-2-2V2h18zM8 13v-1H4v1h4zm3-3H4v1h7v-1zm0-2H4v1h7V8zm7-4H4v2h14V4z"})),category:"jetpack",keywords:[Object(i._x)("subscribe","block search term","jetpack"),Object(i._x)("join","block search term","jetpack"),Object(i._x)("follow","block search term","jetpack")],attributes:{subscribePlaceholder:{type:"string",default:Object(i.__)("Email Address","jetpack")},subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:Object(i.__)("Subscribe","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},edit:E,save:function(e){var t=e.attributes,n=t.showSubscribersTotal,r=t.submitButtonClasses,i=t.customBackgroundButtonColor,o=t.customTextButtonColor,c=t.submitButtonText;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="'.concat(i,'" custom_text_button_color="').concat(o,'" submit_button_text="').concat(c,'" submit_button_classes="').concat(r,'" show_subscribers_total="').concat(n,'" ]'))},example:{attributes:{}},deprecated:[{attributes:{subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:function(e){return{subscribeButton:"",submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal,customBackgroundButtonColor:"",customTextButtonColor:"",submitButtonClasses:""}},isEligible:function(e){return!!Object(o.isEmpty)(e.subscribeButton)},save:function(e){var t=e.attributes;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_subscribers_total="'.concat(t.showSubscribersTotal,'" show_only_email_and_button="true"]'))}}]};Object(r.a)("subscriptions",x)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{areLikesEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_likes_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.areLikesEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show likes.","jetpack"),checked:t,onChange:function(e){n({jetpack_likes_enabled:e})}})))}))},h=n(37);Object(h.a)("likes",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(10),b=n.n(f),g=n(6),v=n(5),j=n(13),y=n(14);function _(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},Object(i.__)("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&Object(a.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":Object(i.__)("Placeholder image","jetpack")},Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},Object(a.createElement)("title",null,Object(i.__)("Grey square","jetpack")),Object(a.createElement)(o.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)("title",null,Object(i.__)("Icon for image","jetpack")),Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},Object(i.__)("August 3, 2018","jetpack")),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},Object(i.__)("In “Uncategorized”","jetpack")))}function k(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&Object(a.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},Object(a.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function O(e){var t=0,n=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:t=2;break;default:t=3}return Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(0,t).length},e.posts.slice(0,t)),n&&Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(t).length},e.posts.slice(t)))}var w=function(e){function t(){return s()(this,t),d()(this,m()(t).apply(this,arguments))}return b()(t,e),u()(t,[{key:"render",value:function(){for(var e=this.props,t=e.attributes,n=e.className,r=e.posts,c=e.setAttributes,s=e.instanceId,l=t.displayContext,u=t.displayDate,p=t.displayThumbnails,d=t.postLayout,h=t.postsToShow,m=[{icon:"grid-view",title:Object(i.__)("Grid View","jetpack"),onClick:function(){return c({postLayout:"grid"})},isActive:"grid"===d},{icon:"list-view",title:Object(i.__)("List View","jetpack"),onClick:function(){return c({postLayout:"list"})},isActive:"list"===d}],f=[],b=0;b<h;b++)r[b]?f.push(Object(a.createElement)(k,{id:"related-posts-".concat(s,"-post-").concat(b),key:"jp-relatedposts-i2-"+b,post:r[b],displayThumbnails:p,displayDate:u,displayContext:l})):f.push(Object(a.createElement)(_,{id:"related-posts-".concat(s,"-post-").concat(b),key:"related-post-placeholder-"+b,displayThumbnails:p,displayDate:u,displayContext:l}));return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(g.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Related Posts Settings","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display thumbnails","jetpack"),checked:p,onChange:function(e){return c({displayThumbnails:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display date","jetpack"),checked:u,onChange:function(e){return c({displayDate:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display context (category or tag)","jetpack"),checked:l,onChange:function(e){return c({displayContext:e})}}),Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Number of posts","jetpack"),value:h,onChange:function(e){return c({postsToShow:Math.min(e,6)})},min:1,max:6}))),Object(a.createElement)(g.BlockControls,null,Object(a.createElement)(o.Toolbar,{controls:m})),Object(a.createElement)("div",{className:n,id:"related-posts-".concat(s)},Object(a.createElement)("div",{className:"jp-relatedposts-i2","data-layout":d},Object(a.createElement)(O,{posts:f}))))}}]),t}(a.Component),E=Object(y.compose)(y.withInstanceId,Object(j.withSelect)((function(e){var t=e("core/editor").getCurrentPost;return{posts:Object(v.get)(t(),"jetpack-related-posts",[])}})))(w),C=(n(227),{title:Object(i.__)("Related Posts","jetpack"),icon:Object(a.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},Object(a.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),category:"jetpack",keywords:[Object(i._x)("Similar content","block search term","jetpack"),Object(i._x)("Linked","block search term","jetpack"),Object(i._x)("Connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:E,save:function(){return null},example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}});Object(r.a)("related-posts",C)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(6),w="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW",E=Object(i.__)("Search for a term or paste a Giphy URL","jetpack"),C=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"textControlRef",Object(a.createRef)()),y()(b()(n),"state",{captionFocus:!1,results:null}),y()(b()(n),"onFormSubmit",(function(e){e.preventDefault(),n.onSubmit()})),y()(b()(n),"onSubmit",(function(){var e=n.props.attributes.searchText;n.parseSearch(e)})),y()(b()(n),"parseSearch",(function(e){var t=null;-1!==e.indexOf("//giphy.com/gifs")&&(t=n.splitAndLast(n.splitAndLast(e,"/"),"-")),-1!==e.indexOf("//i.giphy.com")&&(t=n.splitAndLast(e,"/").replace(".gif",""));var r=e.match(/http[s]?:\/\/media.giphy.com\/media\/([A-Za-z0-9\-.]+)\/giphy.gif/);return r&&(t=r[1]),t?n.fetch(n.urlForId(t)):n.fetch(n.urlForSearch(e))})),y()(b()(n),"urlForSearch",(function(e){return"https://api.giphy.com/v1/gifs/search?q=".concat(encodeURIComponent(e),"&api_key=").concat(encodeURIComponent(w),"&limit=10")})),y()(b()(n),"urlForId",(function(e){return"https://api.giphy.com/v1/gifs/".concat(encodeURIComponent(e),"?api_key=").concat(encodeURIComponent(w))})),y()(b()(n),"splitAndLast",(function(e,t){var n=e.split(t);return n[n.length-1]})),y()(b()(n),"fetch",(function(e){var t=new XMLHttpRequest;t.open("GET",e),t.onload=function(){if(200===t.status){var e=JSON.parse(t.responseText),r=void 0!==e.data.images?[e.data]:e.data,a=r[0];if(!a.images)return;n.setState({results:r},(function(){n.selectGiphy(a)}))}},t.send()})),y()(b()(n),"selectGiphy",(function(e){var t=n.props.setAttributes,r=Math.floor(e.images.original.height/e.images.original.width*100),a="".concat(r,"%");t({giphyUrl:e.embed_url,paddingTop:a})})),y()(b()(n),"setFocus",(function(){n.textControlRef.current.querySelector("input").focus(),n.setState({captionFocus:!1})})),y()(b()(n),"hasSearchText",(function(){var e=n.props.attributes.searchText;return e&&e.length>0})),y()(b()(n),"thumbnailClicked",(function(e){n.selectGiphy(e)})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.setAttributes,l=n.align,u=n.caption,p=n.giphyUrl,d=n.searchText,h=n.paddingTop,m=this.state,f=m.captionFocus,b=m.results,g={paddingTop:h},v=k()(r,"align".concat(l)),j=Object(a.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:this.onFormSubmit,ref:this.textControlRef},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-gif_input",label:E,placeholder:E,onChange:function(e){return s({searchText:e})},value:d}),Object(a.createElement)(o.Button,{isDefault:!0,onClick:this.onSubmit},Object(i.__)("Search","jetpack")));return Object(a.createElement)("div",{className:v},Object(a.createElement)(O.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"components-panel__body-gif-branding"},Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},Object(a.createElement)(o.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),Object(a.createElement)(o.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"})))),p?Object(a.createElement)("figure",null,c&&j,c&&b&&b.length>1&&Object(a.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},b.map((function(t){var n={backgroundImage:"url(".concat(t.images.downsized_still.url,")")};return Object(a.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:t.id,onClick:function(){e.thumbnailClicked(t)},style:n})}))),Object(a.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:g},Object(a.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:this.setFocus,onKeyDown:this.setFocus,role:"button",tabIndex:"0"}),Object(a.createElement)("iframe",{src:p,title:d})),(!O.RichText.isEmpty(u)||c)&&!!p&&Object(a.createElement)(O.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:f,unstableOnFocus:function(){e.setState({captionFocus:!0})},onChange:function(e){return s({caption:e})},placeholder:Object(i.__)("Write caption…","jetpack"),tagName:"figcaption",value:u})):Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:S,label:x},j))}}]),t}(a.Component),x=(n(130),n(154),Object(i.__)("GIF","jetpack")),S=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),A={title:x,icon:S,category:"jetpack",keywords:[Object(i._x)("animated","block search term","jetpack"),Object(i._x)("giphy","block search term","jetpack"),Object(i._x)("image","block search term","jetpack")],description:Object(i.__)("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:C,save:function(){return null},example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}};Object(r.a)("gif",A)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{isSharingEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_sharing_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.isSharingEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show sharing buttons.","jetpack"),checked:t,onChange:function(e){n({jetpack_sharing_enabled:e})}})))}))},h=n(37);Object(h.a)("sharing",d)},function(e,t,n){"use strict";n.r(t);var r=n(7),a=n.n(r),i=n(11),o=n.n(i),c=n(8),s=n.n(c),l=n(9),u=n.n(l),p=n(10),d=n.n(p),h=n(0),m=n(1),f=n(5),b=n(2),g=n(13),v=n(4),j=n.n(v),y=n(3),_=n.n(y),k=(n(229),function(e){function t(){var e,n;a()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=s()(this,(e=u()(t)).call.apply(e,[this].concat(i))),_()(j()(n),"state",{hasCopied:!1}),_()(j()(n),"onCopy",(function(){return n.setState({hasCopied:!0})})),_()(j()(n),"onFinishCopy",(function(){return n.setState({hasCopied:!1})})),_()(j()(n),"onFocus",(function(e){return e.target.select()})),n}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.link,t=this.state.hasCopied;return e?Object(h.createElement)("div",{className:"jetpack-clipboard-input"},Object(h.createElement)(b.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),Object(h.createElement)(b.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?Object(m.__)("Copied!","jetpack"):Object(m._x)("Copy","verb","jetpack"))):null}}]),t}(h.Component)),O=n(44),w={render:function(){return Object(h.createElement)(C,null)}},E=function(e){function t(){return a()(this,t),s()(this,u()(t).apply(this,arguments))}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.shortlink;return e?Object(h.createElement)(O.a,null,Object(h.createElement)(b.PanelBody,{title:Object(m.__)("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},Object(h.createElement)(k,{link:e}))):null}}]),t}(h.Component),C=Object(g.withSelect)((function(e){var t=e("core/editor").getCurrentPost();return{shortlink:Object(f.get)(t,"jetpack_shortlink","")}}))(E),x=n(37);Object(x.a)("shortlinks",w)},,,function(e,t,n){n(255),n(254),n(250),n(244),n(242),n(249),n(263),n(261),n(258),n(243),n(252),n(248),n(256),n(241),n(251),n(259),n(262),n(257),n(264),n(265),n(245),n(247),n(260),n(240),n(246),e.exports=n(253)}])); \ No newline at end of file
+/*! For license information please see editor-experimental.js.LICENSE.txt */
+!function(){var e,t,n,r,a,o,i={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31354),a=n(64803);function o(e){var t=(0,r.Z)(e);return function(e){return(0,a.Z)(t,e)}}},64803:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function a(e,t){var n,a,o,i,s,l,c=[];for(n=0;n<e.length;n++){if(s=e[n],i=r[s]){for(a=i.length,o=Array(a);a--;)o[a]=c.pop();try{l=i.apply(null,o)}catch(e){return e}}else l=t.hasOwnProperty(s)?t[s]:+s;c.push(l)}return c[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8172);function a(e){var t=(0,r.Z)(e);return function(e){return+t({n:e})}}},31354:function(e,t,n){"use strict";var r,a,o,i;function s(e){for(var t,n,s,l,c=[],u=[];t=e.match(i);){for(n=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(o[n]){if(o[n][0]===l){n=o[n][1]||n;break}}else if(a.indexOf(l)>=0||r[l]<r[n]){u.push(l);break}c.push(l)}o[n]||u.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&c.push(e),c.concat(u.reverse())}n.d(t,{Z:function(){return s}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},a=["(","?"],o={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function a(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(r,(function(){var e,r,a,o,i;return e=arguments[3],r=arguments[5],"%"===(o=arguments[9])?"%":("*"===(a=arguments[7])&&(a=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(i=t[0][r]):(void 0===e&&(e=n),n++,i=t[e-1]),"f"===o?i=parseFloat(i)||0:"d"===o&&(i=parseInt(i)||0),void 0!==a&&("f"===o?i=i.toFixed(a):"s"===o&&(i=i.substr(0,a))),null!=i?i:"")}))}},22607:function(e,t,n){"use strict";var r=n(69307);t.Z=function(e){let{icon:t,size:n=24,...a}=e;return(0,r.cloneElement)(t,{width:n,height:n,...a})}},15284:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 12.8h8v-1.5H8v1.5z"}));t.Z=o},84675:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"}));t.Z=o},35127:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"}));t.Z=o},41221:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"}));t.Z=o},7345:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},(0,r.createElement)(a.Path,{d:"M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4-3.5-4h2.32c-.45-1.97-2.21-3.45-4.32-3.45-1.45 0-2.73.71-3.54 1.78L4.95 5.66C6.23 4.2 8.11 3.28 10.2 3.28zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48c.45 1.97 2.21 3.45 4.32 3.45 1.45 0 2.73-.71 3.54-1.78l1.71 1.95c-1.28 1.46-3.15 2.38-5.25 2.38z"}));t.Z=o},31266:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"}));t.Z=o},81326:function(e,t){var n;!function(){"use strict";var r=function(){function e(){}function t(e,t){for(var n=t.length,r=0;r<n;++r)a(e,t[r])}e.prototype=Object.create(null);var n={}.hasOwnProperty;var r=/\s+/;function a(e,a){if(a){var o=typeof a;"string"===o?function(e,t){for(var n=t.split(r),a=n.length,o=0;o<a;++o)e[n[o]]=!0}(e,a):Array.isArray(a)?t(e,a):"object"===o?function(e,t){if(t.toString===Object.prototype.toString)for(var r in t)n.call(t,r)&&(e[r]=!!t[r]);else e[t.toString()]=!0}(e,a):"number"===o&&function(e,t){e[t]=!0}(e,a)}}return function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var o=new e;t(o,r);var i=[];for(var s in o)o[s]&&i.push(s);return i.join(" ")}}();e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},92213:function(e){!function(){"use strict";var t=[],n=3988292384;function r(e){var t,r,a,o,i=-1;for(t=0,a=e.length;t<a;t+=1){for(o=255&(i^e[t]),r=0;r<8;r+=1)1==(1&o)?o=o>>>1^n:o>>>=1;i=i>>>8^o}return-1^i}function a(e,n){var r,o,i;if(void 0!==a.crc&&n&&e||(a.crc=-1,e)){for(r=a.crc,o=0,i=e.length;o<i;o+=1)r=r>>>8^t[255&(r^e[o])];return a.crc=r,-1^r}}!function(){var e,r,a;for(r=0;r<256;r+=1){for(e=r,a=0;a<8;a+=1)1&e?e=n^e>>>1:e>>>=1;t[r]=e>>>0}}(),e.exports=function(e,t){var n;e="string"==typeof e?(n=e,Array.prototype.map.call(n,(function(e){return e.charCodeAt(0)}))):e;return((t?r(e):a(e))>>>0).toString(16)},e.exports.direct=r,e.exports.table=a}()},97115:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp(t,"gi"),r=new RegExp("("+t+")+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],a(n),a(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n),r=1;r<t.length;r++)t=(e=a(t,r).join("")).match(n);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=r.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var a=o(n[0]);a!==n[0]&&(t[n[0]]=a)}n=r.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),s=0;s<i.length;s++){var l=i[s];e=e.replace(new RegExp(l,"g"),t[l])}return e}(e)}}},89453:function(e,t){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},2571:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function a(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",a),n([].slice.call(arguments))}f(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&f(e,"error",t,n)}(e,a,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var i=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var a,o,i,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),i=o[t]),void 0===i)i=o[t]=n,++e._eventsCount;else if("function"==typeof i?i=o[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(a=l(e))>0&&i.length>a&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=u.bind(r);return a.listener=n,r.wrapFn=a,a}function d(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):h(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function a(o){r.once&&e.removeEventListener(t,a),n(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var a="error"===e,o=this._events;if(void 0!==o)a=a&&void 0===o.error;else if(!a)return!1;if(a){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,a,o,i;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){i=n[o].listener,a=o;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(a=o[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},95946:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),a=Array.isArray(t),o=0;o<r.length;o++){var i=r[o],s=e[i];(a?-1!==t.indexOf(i):t(i,s,e))&&(n[i]=s)}return n}},95949:function(e,t,n){"use strict";var r=n(53566),a=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,o=8;o<this.padLength;o++)r[a++]=0;return r}},69016:function(e,t,n){"use strict";var r=n(53566),a=n(95949),o=n(47574),i=r.rotl32,s=r.sum32,l=r.sum32_5,c=o.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],o=this.h[1],u=this.h[2],d=this.h[3],m=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),f=l(i(a,5),c(h,o,u,d),m,n[r],p[h]);m=d,d=u,u=i(o,30),o=a,a=f}this.h[0]=s(this.h[0],a),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],u),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],m)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function a(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?i(t,n,r):2===e?o(t,n,r):void 0},t.ch32=a,t.maj32=o,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),a=n(59503);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var i=e.charCodeAt(a);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):o(e,a)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++a)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=i(a)),n+=l(a.toString(16))}return n},t.zero2=s,t.zero8=l,t.join32=function(e,t,n,a){var o=n-t;r(o%4==0);for(var i=new Array(o/4),s=0,l=t;s<i.length;s++,l+=4){var c;c="big"===a?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[s]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var o=e[r];"big"===t?(n[a]=o>>>24,n[a+1]=o>>>16&255,n[a+2]=o>>>8&255,n[a+3]=255&o):(n[a+3]=o>>>24,n[a+2]=o>>>16&255,n[a+1]=o>>>8&255,n[a]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],o=r+e[t+1]>>>0,i=(o<r?1:0)+n+a;e[t]=i>>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,o,i,s){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+o>>>0)<o?1:0,e+n+a+i+(l+=(c=c+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,o,i,s){return t+r+o+s>>>0},t.sum64_5_hi=function(e,t,n,r,a,o,i,s,l,c){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+o>>>0)<o?1:0,u+=(p=p+s>>>0)<s?1:0,e+n+a+i+l+(u+=(p=p+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,o,i,s,l,c){return t+r+o+s+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},88617:function(e,t,n){"use strict";var r=n(59128),a=n(98086),o=n(90922),i=n.n(o),s=n(94481),l=n(88090),c=n(75565),u=n.n(c),p=n(69016),d=n.n(p),m=n(2571),h=n(702),f=n(92846),g=i()("i18n-calypso"),b="number_format_decimals",v="number_format_thousands_sep",k="messages",y=[function(e){return e}],E={};function w(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function _(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&w("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",_(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&w("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",_(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function j(e,t){return e.dcnpgettext(k,t.context,t.original,t.plural,t.count)}function S(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t)),a=r.context?r.context+""+r.original:r.original;if(e.state.locale[a])return j(e.state.tannin,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:u()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new m.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,f.Z)(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var o=e[""]["key-hash"],i=function(e,t){var n=!1===t?"":String(t);if(void 0!==E[n+e])return E[n+e];var r=d()().update(e).digest("hex");return E[n+e]=t?r.substr(0,t):r},s=function(e){return function(t){return t.context?(t.original=i(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=i(t.original,e),t}};if("sha1"===o.substr(0,4))if(4===o.length)y.push(s(!1));else{var c=o.substr(5).indexOf("-");if(c<0){var u=Number(o.substr(5));y.push(s(u))}else for(var p=Number(o.substr(5,c)),m=Number(o.substr(6+c)),h=p;h<=m;h++)y.push(s(h))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new l.Z((0,a.Z)({},k,this.state.locale)),this.state.numberFormatSettings.decimal_point=j(this.state.tannin,C([b])),this.state.numberFormatSettings.thousands_sep=j(this.state.tannin,C([v])),this.state.numberFormatSettings.decimal_point===b&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===v&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.isRtl=function(){return"rtl"===this.state.textDirection},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!S(this,C(arguments))},x.prototype.translate=function(){var e=C(arguments),t=S(this,e);if(t||(t=j(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=h.Z.apply(void 0,(0,r.Z)(n))}catch(e){if(!window||!window.console)return;var a=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[a](e):window.console[a]("i18n sprintf error:",n)}}return e.components&&(t=(0,s.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},x.prototype.reRenderTranslations=function(){g("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=x},63807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return l}});var r=n(88617),a=n(42928),o=n(80975),i=n(24531),s=new r.Z,l=s.numberFormat.bind(s),c=(s.translate.bind(s),s.configure.bind(s),s.setLocale.bind(s),s.getLocale.bind(s),s.getLocaleSlug.bind(s),s.addTranslations.bind(s),s.reRenderTranslations.bind(s),s.registerComponentUpdateHook.bind(s),s.registerTranslateHook.bind(s),s.state,s.stateObserver,s.on.bind(s),s.off.bind(s),s.emit.bind(s),(0,a.Z)(s),(0,o.Z)(s),(0,i.Z)(s));c.useRtl,c.withRtl},42928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(59591),a=n(71687),o=n(93772),i=n(55200),s=n(82104),l=n(9057),c=n(98086),u=n(99196),p=n.n(u);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var u,d,m=n.displayName||n.name||"";return d=u=function(u){(0,s.Z)(m,u);var d=(0,l.Z)(m);function m(){var e;(0,a.Z)(this,m);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e=d.call.apply(d,[this].concat(n)),(0,c.Z)((0,i.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,i.Z)(e))),e}return(0,o.Z)(m,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var a=(0,r.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,a)}}]),m}(p().Component),(0,c.Z)(u,"displayName","Localized("+m+")"),d}}},92846:function(e,t,n){"use strict";function r(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,o=isFinite(+t)?Math.abs(t):0,i=void 0===r?",":r,s=void 0===n?".":n,l="";return l=(o?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,o):""+Math.round(a)).split("."),l[0].length>3&&(l[0]=l[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,i)),(l[1]||"").length<o&&(l[1]=l[1]||"",l[1]+=new Array(o-l[1].length+1).join("0")),l.join(s)}n.d(t,{Z:function(){return r}})},24531:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(95672),a=n(99196),o=n.n(a),i=n(20036),s=n(94333);function l(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,i.useSubscription)(t)}var l=(0,s.createHigherOrderComponent)((function(e){return(0,a.forwardRef)((function(t,a){var i=n();return o().createElement(e,(0,r.Z)({},t,{isRtl:i,ref:a}))}))}),"WithRTL");return{useRtl:n,withRtl:l}}},80975:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(50572),a=n(99196),o=n.n(a);function i(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=o().useState(t),a=(0,r.Z)(n,2),i=a[0],s=a[1];return o().useEffect((function(){var n=function(){return s(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),i}}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},30045:function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function o(e){return"[object Function]"===a(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var s={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var l={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(49872)(e.__opts__),r=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(s(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(s(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(s(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(s(t.tpl_host_fuzzy_test),"i");var l=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?o(n.validate)?r.validate=n.validate:c(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(o(n.normalize)?r.normalize=n.normalize:n.normalize?c(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?c(t,n):l.push(t)}})),l.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function m(e,t){if(!(this instanceof m))return new m(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||s.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},s,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},l,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},u(this)}m.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},m.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},m.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,o,i,s,l;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(a=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=n.index+n[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,i=r.index+r[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},m.prototype.pretest=function(e){return this.re.pretest.test(e)},m.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},m.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},m.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},m.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},m.prototype.onCompile=function(){},e.exports=m},49872:function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(26285).source,t.src_Cc=n(84080).source,t.src_Z=n(76202).source,t.src_P=n(87696).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+"[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},47595:function(e,t,n){"use strict";const r=n(22199),a=Symbol("max"),o=Symbol("length"),i=Symbol("lengthCalculator"),s=Symbol("allowStale"),l=Symbol("maxAge"),c=Symbol("dispose"),u=Symbol("noDisposeOnSet"),p=Symbol("lruList"),d=Symbol("cache"),m=Symbol("updateAgeOnGet"),h=()=>1;const f=(e,t,n)=>{const r=e[d].get(t);if(r){const t=r.value;if(g(e,t)){if(v(e,r),!e[s])return}else n&&(e[m]&&(r.value.now=Date.now()),e[p].unshiftNode(r));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[o]>e[a])for(let t=e[p].tail;e[o]>e[a]&&null!==t;){const n=t.prev;v(e,t),t=n}},v=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[o]-=n.length,e[d].delete(n.key),e[p].removeNode(t)}};class k{constructor(e,t,n,r,a){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=a||0}}const y=(e,t,n,r)=>{let a=n.value;g(e,a)&&(v(e,n),e[s]||(a=void 0)),a&&t.call(r,a.value,a.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[a]=e.max||1/0;const t=e.length||h;if(this[i]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[m]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[a]=e||1/0,b(this)}get max(){return this[a]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[i]&&(this[i]=e,this[o]=0,this[p].forEach((e=>{e.length=this[i](e.value,e.key),this[o]+=e.length}))),b(this)}get lengthCalculator(){return this[i]}get length(){return this[o]}get itemCount(){return this[p].length}rforEach(e,t){t=t||this;for(let n=this[p].tail;null!==n;){const r=n.prev;y(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[p].head;null!==n;){const r=n.next;y(this,e,n,t),n=r}}keys(){return this[p].toArray().map((e=>e.key))}values(){return this[p].toArray().map((e=>e.value))}reset(){this[c]&&this[p]&&this[p].length&&this[p].forEach((e=>this[c](e.key,e.value))),this[d]=new Map,this[p]=new r,this[o]=0}dump(){return this[p].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[p]}set(e,t,n){if((n=n||this[l])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[i](t,e);if(this[d].has(e)){if(s>this[a])return v(this,this[d].get(e)),!1;const i=this[d].get(e).value;return this[c]&&(this[u]||this[c](e,i.value)),i.now=r,i.maxAge=n,i.value=t,this[o]+=s-i.length,i.length=s,this.get(e),b(this),!0}const m=new k(e,t,s,r,n);return m.length>this[a]?(this[c]&&this[c](e,t),!1):(this[o]+=m.length,this[p].unshift(m),this[d].set(e,this[p].head),b(this),!0)}has(e){if(!this[d].has(e))return!1;const t=this[d].get(e).value;return!g(this,t)}get(e){return f(this,e,!0)}peek(e){return f(this,e,!1)}pop(){const e=this[p].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[d].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],a=r.e||0;if(0===a)this.set(r.k,r.v);else{const e=a-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[d].forEach(((e,t)=>f(this,t,!1)))}}},75565:function(e,t,n){var r=n(2571),a=n(59503);function o(e){if(!(this instanceof o))return new o(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=o,a(o,r.EventEmitter),Object.defineProperty(o.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),o.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},o.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},o.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},o.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},o.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},o.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},o.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},o.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},69472:function(e,t,n){"use strict";e.exports=n(98092)},95926:function(e,t,n){"use strict";e.exports=n(60231)},4692:function(e){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},75501:function(e){"use strict";var t="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",r=new RegExp("^(?:"+t+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),a=new RegExp("^(?:"+t+"|"+n+")");e.exports.n=r,e.exports.q=a},58201:function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function o(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function i(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(95926);var p=/[&<>"]/,d=/[&<>"]/g,m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return m[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var g=n(87696);t.lib={},t.lib.mdurl=n(36664),t.lib.ucmicro=n(39126),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?i(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=i,t.escapeHtml=function(e){return p.test(e)?e.replace(d,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},69486:function(e,t,n){"use strict";t.parseLinkLabel=n(53020),t.parseLinkDestination=n(80113),t.parseLinkTitle=n(7266)},80113:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(a=e.charCodeAt(t)))return s;if(60===a)return s;if(62===a)return s.pos=t+1,s.str=r(e.slice(i+1,t)),s.ok=!0,s;92===a&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(a=e.charCodeAt(t))&&!(a<32||127===a);)if(92===a&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===a&&++o>32)return s;if(41===a){if(0===o)break;o--}t++}return i===t||0!==o||(s.str=r(e.slice(i,t)),s.lines=0,s.pos=t,s.ok=!0),s}},53020:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,r=1;e.pos<l;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)r++;else if(n)return e.pos=c,-1}return a&&(s=e.pos),e.pos=c,s}},7266:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=0,s=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(o=e.charCodeAt(t))&&39!==o&&40!==o)return l;for(t++,40===o&&(o=41);t<n;){if((a=e.charCodeAt(t))===o)return l.pos=t+1,l.lines=i,l.str=r(e.slice(s+1,t)),l.ok=!0,l;if(40===a&&41===o)return l;10===a?i++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&i++),t++}return l}},98092:function(e,t,n){"use strict";var r=n(58201),a=n(69486),o=n(54065),i=n(36020),s=n(63435),l=n(92241),c=n(30045),u=n(36664),p=n(15661),d={default:n(36101),zero:n(67545),commonmark:n(45815)},m=/^(vbscript|javascript|file|data):/,h=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!m.test(t)||!!h.test(t)}var g=["http:","https:","mailto:"];function b(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(e){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(e){}return u.decode(u.format(t),u.decode.defaultChars+"%")}function k(e,t){if(!(this instanceof k))return new k(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new i,this.renderer=new o,this.linkify=new c,this.validateLink=f,this.normalizeLink=b,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}k.prototype.set=function(e){return r.assign(this.options,e),this},k.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},k.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},k.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},k.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},k.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},k.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},k.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},k.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=k},63435:function(e,t,n){"use strict";var r=n(21473),a=[["table",n(33168),["paragraph","reference"]],["code",n(63390)],["fence",n(7477),["paragraph","reference","blockquote","list"]],["blockquote",n(61264),["paragraph","reference","blockquote","list"]],["hr",n(94438),["paragraph","reference","blockquote","list"]],["list",n(90185),["paragraph","reference","blockquote"]],["reference",n(48707)],["heading",n(66926),["paragraph","reference","blockquote"]],["lheading",n(22288)],["html_block",n(77476),["paragraph","reference","blockquote"]],["paragraph",n(13958)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}o.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),o=a.length,i=t,s=!1,l=e.md.options.maxNesting;i<n&&(e.line=i=e.skipEmptyLines(i),!(i>=n))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=l){e.line=n;break}for(r=0;r<o&&!a[r](e,i,n,!1);r++);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(i=e.line)<n&&e.isEmpty(i)&&(s=!0,i++,e.line=i)}},o.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},o.prototype.State=n(62389),e.exports=o},36020:function(e,t,n){"use strict";var r=n(21473),a=[["normalize",n(75615)],["block",n(37262)],["inline",n(50127)],["linkify",n(65644)],["replacements",n(652)],["smartquotes",n(34335)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}o.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},o.prototype.State=n(53706),e.exports=o},92241:function(e,t,n){"use strict";var r=n(21473),a=[["text",n(96733)],["newline",n(22051)],["escape",n(52960)],["backticks",n(61191)],["strikethrough",n(30832).w],["emphasis",n(98052).w],["link",n(68839)],["image",n(39590)],["autolink",n(84145)],["html_inline",n(20354)],["entity",n(44659)]],o=[["balance_pairs",n(93296)],["strikethrough",n(30832).g],["emphasis",n(98052).g],["text_collapse",n(72300)]];function i(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<o.length;e++)this.ruler2.push(o[e][0],o[e][1])}i.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),o=a.length,i=e.md.options.maxNesting,s=e.cache;if(void 0===s[r]){if(e.level<i)for(n=0;n<o&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,s[r]=e.pos}else e.pos=s[r]},i.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,n,r){var a,o,i,s=new this.State(e,t,n,r);for(this.tokenize(s),i=(o=this.ruler2.getRules("")).length,a=0;a<i;a++)o[a](s)},i.prototype.State=n(4160),e.exports=i},45815:function(e){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},36101:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},67545:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},54065:function(e,t,n){"use strict";var r=n(58201).assign,a=n(58201).unescapeAll,o=n(58201).escapeHtml,i={};function s(){this.rules=r({},i)}i.code_inline=function(e,t,n,r,a){var i=e[t];return"<code"+a.renderAttrs(i)+">"+o(e[t].content)+"</code>"},i.code_block=function(e,t,n,r,a){var i=e[t];return"<pre"+a.renderAttrs(i)+"><code>"+o(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,n,r,i){var s,l,c,u,p,d=e[t],m=d.info?a(d.info).trim():"",h="",f="";return m&&(h=(c=m.split(/(\s+)/g))[0],f=c.slice(2).join("")),0===(s=n.highlight&&n.highlight(d.content,h,f)||o(d.content)).indexOf("<pre")?s+"\n":m?(l=d.attrIndex("class"),u=d.attrs?d.attrs.slice():[],l<0?u.push(["class",n.langPrefix+h]):(u[l]=u[l].slice(),u[l][1]+=" "+n.langPrefix+h),p={attrs:u},"<pre><code"+i.renderAttrs(p)+">"+s+"</code></pre>\n"):"<pre><code"+i.renderAttrs(d)+">"+s+"</code></pre>\n"},i.image=function(e,t,n,r,a){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=a.renderInlineAsText(o.children,n,r),a.renderToken(e,t,n)},i.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return o(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+o(e.attrs[t][0])+'="'+o(e.attrs[t][1])+'"';return r},s.prototype.renderToken=function(e,t,n){var r,a="",o=!1,i=e[t];return i.hidden?"":(i.block&&-1!==i.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===i.nesting?"</":"<")+i.tag,a+=this.renderAttrs(i),0===i.nesting&&n.xhtmlOut&&(a+=" /"),i.block&&(o=!0,1===i.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden||-1===r.nesting&&r.tag===i.tag)&&(o=!1)),a+=o?">\n":">")},s.prototype.renderInline=function(e,t,n){for(var r,a="",o=this.rules,i=0,s=e.length;i<s;i++)void 0!==o[r=e[i].type]?a+=o[r](e,i,t,n,this):a+=this.renderToken(e,i,t);return a},s.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,o=e.length;a<o;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},s.prototype.render=function(e,t,n){var r,a,o,i="",s=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(o=e[r].type)?i+=this.renderInline(e[r].children,t,n):void 0!==s[o]?i+=s[e[r].type](e,r,t,n,this):i+=this.renderToken(e,r,t,n);return i},e.exports=s},21473:function(e){"use strict";function t(){this.__rules__=[],this.__cache__=null}t.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},t.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},t.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},t.prototype.before=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.after=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},t.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},t.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},t.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},t.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=t},61264:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j=e.lineMax,S=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(S++))return!1;if(a)return!0;for(l=m=e.sCount[t]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[t]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h=[e.bMarks[t]],e.bMarks[t]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[t]+(o?1:0))%4:m++,S++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=S>=x,v=[e.sCount[t]],e.sCount[t]=m-l,k=[e.tShift[t]],e.tShift[t]=S-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",d=t+1;d<n&&(C=e.sCount[d]<e.blkIndent,!((S=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(S++)||C){if(u)break;for(E=!1,s=0,c=w.length;s<c;s++)if(w[s](e,d,n,!0)){E=!0;break}if(E){e.lineMax=d,0!==e.blkIndent&&(h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(l=m=e.sCount[d]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[d]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h.push(e.bMarks[d]),e.bMarks[d]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[d]+(o?1:0))%4:m++,S++;u=S>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=m-l,k.push(e.tShift[d]),e.tShift[d]=S-e.bMarks[d]}for(g=e.blkIndent,e.blkIndent=0,(_=e.push("blockquote_open","blockquote",1)).markup=">",_.map=p=[t,0],e.md.block.tokenize(e,t,d),(_=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=j,e.parentType=b,p[1]=e.line,s=0;s<k.length;s++)e.bMarks[s+t]=h[s],e.tShift[s+t]=k[s],e.sCount[s+t]=v[s],e.bsCount[s+t]=f[s];return e.blkIndent=g,!0}},63390:function(e){"use strict";e.exports=function(e,t,n){var r,a,o;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(o=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),o.map=[t,e.line],!0}},7477:function(e){"use strict";e.exports=function(e,t,n,r){var a,o,i,s,l,c,u,p=!1,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>m)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(l=d,(o=(d=e.skipChars(d,a))-l)<3)return!1;if(u=e.src.slice(l,d),i=e.src.slice(d,m),96===a&&i.indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((d=l=e.bMarks[s]+e.tShift[s])<(m=e.eMarks[s])&&e.sCount[s]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[s]-e.blkIndent>=4||(d=e.skipChars(d,a))-l<o||(d=e.skipSpaces(d))<m)){p=!0;break}return o=e.sCount[t],e.line=s+(p?1:0),(c=e.push("fence","code",0)).info=i,c.content=e.getLines(t+1,s,o,!0),c.markup=u,c.map=[t,e.line],!0}},66926:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(o=e.src.charCodeAt(c))||c>=u)return!1;for(i=1,o=e.src.charCodeAt(++c);35===o&&c<u&&i<=6;)i++,o=e.src.charCodeAt(++c);return!(i>6||c<u&&!r(o))&&(a||(u=e.skipSpacesBack(u,c),(s=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(l=e.push("heading_open","h"+String(i),1)).markup="########".slice(0,i),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(i),-1)).markup="########".slice(0,i)),!0)}},94438:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(o=e.src.charCodeAt(c++))&&45!==o&&95!==o)return!1;for(i=1;c<u;){if((s=e.src.charCodeAt(c++))!==o&&!r(s))return!1;s===o&&i++}return!(i<3)&&(a||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(i+1).join(String.fromCharCode(o))),!0)}},77476:function(e,t,n){"use strict";var r=n(4692),a=n(75501).q,o=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),a=0;a<o.length&&!o[a][0].test(l);a++);if(a===o.length)return!1;if(r)return o[a][2];if(i=t+1,!o[a][1].test(l))for(;i<n&&!(e.sCount[i]<e.blkIndent);i++)if(c=e.bMarks[i]+e.tShift[i],u=e.eMarks[i],l=e.src.slice(c,u),o[a][1].test(l)){0!==l.length&&i++;break}return e.line=i,(s=e.push("html_block","",0)).map=[t,i],s.content=e.getLines(t,i,e.blkIndent,!0),!0}},22288:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s,l,c,u,p,d,m=t+1,h=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";m<n&&!e.isEmpty(m);m++)if(!(e.sCount[m]-e.blkIndent>3)){if(e.sCount[m]>=e.blkIndent&&(l=e.bMarks[m]+e.tShift[m])<(c=e.eMarks[m])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[m]<0)){for(a=!1,o=0,i=h.length;o<i;o++)if(h[o](e,m,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,m,e.blkIndent,!1).trim(),e.line=m+1,(s=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),s.map=[t,e.line],(s=e.push("inline","",0)).content=r,s.map=[t,e.line-1],s.children=[],(s=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},90185:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n,a,o,i;return a=e.bMarks[t]+e.tShift[t],o=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n||a<o&&(i=e.src.charCodeAt(a),!r(i))?-1:a}function o(e,t){var n,a=e.bMarks[t]+e.tShift[t],o=a,i=e.eMarks[t];if(o+1>=i)return-1;if((n=e.src.charCodeAt(o++))<48||n>57)return-1;for(;;){if(o>=i)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-a>=10)return-1}return o<i&&(n=e.src.charCodeAt(o),!r(n))?-1:o}e.exports=function(e,t,n,r){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x,T,N,P,A,I,M,B=!1,R=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(B=!0),(T=o(e,t))>=0){if(d=!0,P=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(P,T-P-1)),B&&1!==v)return!1}else{if(!((T=a(e,t))>=0))return!1;d=!1}if(B&&e.skipSpaces(T)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(T-1),r)return!0;for(g=e.tokens.length,d?(M=e.push("ordered_list_open","ol",1),1!==v&&(M.attrs=[["start",v]])):M=e.push("bullet_list_open","ul",1),M.map=f=[t,0],M.markup=String.fromCharCode(b),y=t,N=!1,I=e.md.block.ruler.getRules("list"),_=e.parentType,e.parentType="list";y<n;){for(x=T,k=e.eMarks[y],p=E=e.sCount[y]+T-(e.bMarks[t]+e.tShift[t]);x<k;){if(9===(i=e.src.charCodeAt(x)))E+=4-(E+e.bsCount[y])%4;else{if(32!==i)break;E++}x++}if((u=(s=x)>=k?1:E-p)>4&&(u=1),c=p+u,(M=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),M.map=m=[t,0],S=e.tight,j=e.tShift[t],C=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=E,s>=k&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!N||(R=!1),N=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=j,e.sCount[t]=C,e.tight=S,(M=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),y=t=e.line,m[1]=y,s=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;if(e.sCount[t]-e.blkIndent>=4)break;for(A=!1,l=0,h=I.length;l<h;l++)if(I[l](e,y,n,!0)){A=!0;break}if(A)break;if(d){if((T=o(e,y))<0)break}else if((T=a(e,y))<0)break;if(b!==e.src.charCodeAt(T-1))break}return(M=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),f[1]=y,e.line=y,e.parentType=_,R&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,g),!0}},13958:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(s=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if(!(e.sCount[l]-e.blkIndent>3||e.sCount[l]<0)){for(r=!1,a=0,o=c.length;a<o;a++)if(c[a](e,l,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(i=e.push("paragraph_open","p",1)).map=[t,e.line],(i=e.push("inline","",0)).content=n,i.map=[t,e.line],i.children=[],i=e.push("paragraph_close","p",-1),e.parentType=s,!0}},48707:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t,n,o){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w=0,_=e.bMarks[t]+e.tShift[t],C=e.eMarks[t],j=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(_))return!1;for(;++_<C;)if(93===e.src.charCodeAt(_)&&92!==e.src.charCodeAt(_-1)){if(_+1===C)return!1;if(58!==e.src.charCodeAt(_+1))return!1;break}for(c=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";j<c&&!e.isEmpty(j);j++)if(!(e.sCount[j]-e.blkIndent>3||e.sCount[j]<0)){for(k=!1,p=0,d=y.length;p<d;p++)if(y[p](e,j,c,!0)){k=!0;break}if(k)break}for(C=(v=e.getLines(t,j,e.blkIndent,!1).trim()).length,_=1;_<C;_++){if(91===(i=v.charCodeAt(_)))return!1;if(93===i){h=_;break}(10===i||92===i&&++_<C&&10===v.charCodeAt(_))&&w++}if(h<0||58!==v.charCodeAt(h+1))return!1;for(_=h+2;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;if(!(g=e.md.helpers.parseLinkDestination(v,_,C)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(s=_=g.pos,l=w+=g.lines,b=_;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;for(g=e.md.helpers.parseLinkTitle(v,_,C),_<C&&b!==_&&g.ok?(E=g.str,_=g.pos,w+=g.lines):(E="",_=s,w=l);_<C&&(i=v.charCodeAt(_),a(i));)_++;if(_<C&&10!==v.charCodeAt(_)&&E)for(E="",_=s,w=l;_<C&&(i=v.charCodeAt(_),a(i));)_++;return!(_<C&&10!==v.charCodeAt(_))&&(!!(m=r(v.slice(1,h)))&&(o||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[m]&&(e.env.references[m]={title:E,href:u}),e.parentType=f,e.line=t+w+1),!0))}},62389:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isSpace;function o(e,t,n,r){var o,i,s,l,c,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,s=l=u=p=0,c=(i=this.src).length;l<c;l++){if(o=i.charCodeAt(l),!d){if(a(o)){u++,9===o?p+=4-p%4:p++;continue}d=!0}10!==o&&l!==c-1||(10!==o&&l++,this.bMarks.push(s),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,s=l+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}o.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},o.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},o.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},o.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,i,s,l,c,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),o=0;d<t;d++,o++){for(i=0,p=l=this.bMarks[d],c=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];l<c&&i<n;){if(s=this.src.charCodeAt(l),a(s))9===s?i+=4-(i+this.bsCount[d])%4:i++;else{if(!(l-p<this.tShift[d]))break;i++}l++}u[o]=i>n?new Array(i-n+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},o.prototype.Token=r,e.exports=o},33168:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,a=e.length,o=!1,i=0,s="";for(t=e.charCodeAt(r);r<a;)124===t&&(o?(s+=e.substring(i,r-1),i=r):(n.push(s+e.substring(i,r)),s="",i=r+1)),o=92===t,r++,t=e.charCodeAt(r);return n.push(s+e.substring(i)),n}e.exports=function(e,t,n,i){var s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w;if(t+2>n)return!1;if(d=t+1,e.sCount[d]<e.blkIndent)return!1;if(e.sCount[d]-e.blkIndent>=4)return!1;if((c=e.bMarks[d]+e.tShift[d])>=e.eMarks[d])return!1;if(124!==(s=e.src.charCodeAt(c++))&&45!==s&&58!==s)return!1;for(;c<e.eMarks[d];){if(124!==(s=e.src.charCodeAt(c))&&45!==s&&58!==s&&!r(s))return!1;c++}for(m=(l=a(e,t+1)).split("|"),g=[],u=0;u<m.length;u++){if(!(b=m[u].trim())){if(0===u||u===m.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),0===(h=m.length)||h!==g.length)return!1;if(i)return!0;for(y=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),(f=e.push("table_open","table",1)).map=v=[t,0],(f=e.push("thead_open","thead",1)).map=[t,t+1],(f=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<m.length;u++)f=e.push("th_open","th",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u].trim(),f.children=[],f=e.push("th_close","th",-1);for(f=e.push("tr_close","tr",-1),f=e.push("thead_close","thead",-1),d=t+2;d<n&&!(e.sCount[d]<e.blkIndent);d++){for(E=!1,u=0,p=w.length;u<p;u++)if(w[u](e,d,n,!0)){E=!0;break}if(E)break;if(!(l=a(e,d).trim()))break;if(e.sCount[d]-e.blkIndent>=4)break;for((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),d===t+2&&((f=e.push("tbody_open","tbody",1)).map=k=[t+2,0]),(f=e.push("tr_open","tr",1)).map=[d,d+1],u=0;u<h;u++)f=e.push("td_open","td",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u]?m[u].trim():"",f.children=[],f=e.push("td_close","td",-1);f=e.push("tr_close","tr",-1)}return k&&(f=e.push("tbody_close","tbody",-1),k[1]=d),f=e.push("table_close","table",-1),v[1]=d,e.parentType=y,e.line=d,!0}},37262:function(e){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},50127:function(e){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},65644:function(e,t,n){"use strict";var r=n(58201).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E=e.tokens;if(e.md.options.linkify)for(n=0,o=E.length;n<o;n++)if("inline"===E[n].type&&e.md.linkify.pretest(E[n].content))for(f=0,t=(i=E[n].children).length-1;t>=0;t--)if("link_close"!==(l=i[t]).type){if("html_inline"===l.type&&(y=l.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(l.content)&&f++),!(f>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,k=e.md.linkify.match(p),c=[],h=l.level,m=0,u=0;u<k.length;u++)g=k[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(v=k[u].text,v=k[u].schema?"mailto:"!==k[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=k[u].index)>m&&((s=new e.Token("text","",0)).content=p.slice(m,d),s.level=h,c.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",b]],s.level=h++,s.markup="linkify",s.info="auto",c.push(s),(s=new e.Token("text","",0)).content=v,s.level=h,c.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",c.push(s),m=k[u].lastIndex);m<p.length&&((s=new e.Token("text","",0)).content=p.slice(m),s.level=h,c.push(s)),E[n].children=i=r(i,t,c)}}else for(t--;i[t].level!==l.level&&"link_open"!==i[t].type;)t--}},75615:function(e){"use strict";var t=/\r\n?|\n/g,n=/\0/g;e.exports=function(e){var r;r=(r=e.src.replace(t,"\n")).replace(n,"�"),e.src=r}},652:function(e){"use strict";var t=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,r=/\((c|tm|r|p)\)/gi,a={c:"©",r:"®",p:"§",tm:"™"};function o(e,t){return a[t.toLowerCase()]}function i(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||(n.content=n.content.replace(r,o)),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}function s(e){var n,r,a=0;for(n=e.length-1;n>=0;n--)"text"!==(r=e[n]).type||a||t.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&a--,"link_close"===r.type&&"auto"===r.info&&a++}e.exports=function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&(n.test(e.tokens[r].content)&&i(e.tokens[r].children),t.test(e.tokens[r].content)&&s(e.tokens[r].children))}},34335:function(e,t,n){"use strict";var r=n(58201).isWhiteSpace,a=n(58201).isPunctChar,o=n(58201).isMdAsciiPunct,i=/['"]/,s=/['"]/g;function l(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,i,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x;for(j=[],n=0;n<e.length;n++){for(i=e[n],m=e[n].level,_=j.length-1;_>=0&&!(j[_].level<=m);_--);if(j.length=_+1,"text"===i.type){p=0,d=(c=i.content).length;e:for(;p<d&&(s.lastIndex=p,u=s.exec(c));){if(E=w=!0,p=u.index+1,C="'"===u[0],f=32,u.index-1>=0)f=c.charCodeAt(u.index-1);else for(_=n-1;_>=0&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_--)if(e[_].content){f=e[_].content.charCodeAt(e[_].content.length-1);break}if(g=32,p<d)g=c.charCodeAt(p);else for(_=n+1;_<e.length&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_++)if(e[_].content){g=e[_].content.charCodeAt(0);break}if(b=o(f)||a(String.fromCharCode(f)),v=o(g)||a(String.fromCharCode(g)),k=r(f),(y=r(g))?E=!1:v&&(k||b||(E=!1)),k?w=!1:b&&(y||v||(w=!1)),34===g&&'"'===u[0]&&f>=48&&f<=57&&(w=E=!1),E&&w&&(E=b,w=v),E||w){if(w)for(_=j.length-1;_>=0&&(h=j[_],!(j[_].level<m));_--)if(h.single===C&&j[_].level===m){h=j[_],C?(S=t.md.options.quotes[2],x=t.md.options.quotes[3]):(S=t.md.options.quotes[0],x=t.md.options.quotes[1]),i.content=l(i.content,u.index,x),e[h.token].content=l(e[h.token].content,h.pos,S),p+=x.length-1,h.token===n&&(p+=S.length-1),d=(c=i.content).length,j.length=_;continue e}E?j.push({token:n,pos:u.index,single:C,level:m}):w&&C&&(i.content=l(i.content,u.index,"’"))}else C&&(i.content=l(i.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},53706:function(e,t,n){"use strict";var r=n(82069);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},84145:function(e){"use strict";var t=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;e.exports=function(e,r){var a,o,i,s,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(s=e.src.charCodeAt(u)))return!1;if(62===s)break}return a=e.src.slice(l+1,u),n.test(a)?(o=e.md.normalizeLink(a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0)):!!t.test(a)&&(o=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0))}},61191:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(n=u,u++,r=e.posMax;u<r&&96===e.src.charCodeAt(u);)u++;if(l=(a=e.src.slice(n,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=n)return t||(e.pending+=a),e.pos+=l,!0;for(i=s=u;-1!==(i=e.src.indexOf("`",s));){for(s=i+1;s<r&&96===e.src.charCodeAt(s);)s++;if((c=s-i)===l)return t||((o=e.push("code_inline","code",0)).markup=a,o.content=e.src.slice(u,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=s,!0;e.backticks[c]=i}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=l,!0}},93296:function(e){"use strict";function t(e,t){var n,r,a,o,i,s,l,c,u={},p=t.length;for(n=0;n<p;n++)if((a=t[n]).length=a.length||0,a.close){for(u.hasOwnProperty(a.marker)||(u[a.marker]=[-1,-1,-1]),i=u[a.marker][a.length%3],(r=n-a.jump-1)<-1&&(r=-1),s=r;r>i;r-=o.jump+1)if((o=t[r]).marker===a.marker&&o.open&&o.end<0&&(l=!1,(o.close||a.open)&&(o.length+a.length)%3==0&&(o.length%3==0&&a.length%3==0||(l=!0)),!l)){c=r>0&&!t[r-1].open?t[r-1].jump+1:0,a.jump=n-r+c,a.open=!1,o.end=n,o.jump=c,o.close=!1,s=-1;break}-1!==s&&(u[a.marker][(a.length||0)%3]=s)}}e.exports=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(0,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(0,r[n].delimiters)}},98052:function(e){"use strict";function t(e,t){var n,r,a,o,i,s;for(n=t.length-1;n>=0;n--)95!==(r=t[n]).marker&&42!==r.marker||-1!==r.end&&(a=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].token===r.token-1&&t[r.end+1].token===a.token+1&&t[n-1].marker===r.marker,i=String.fromCharCode(r.marker),(o=e.tokens[r.token]).type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?i+i:i,o.content="",(o=e.tokens[a.token]).type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?i+i:i,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.w=function(e,t){var n,r,a=e.pos,o=e.src.charCodeAt(a);if(t)return!1;if(95!==o&&42!==o)return!1;for(r=e.scanDelims(e.pos,42===o),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:r.length,jump:n,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},44659:function(e,t,n){"use strict";var r=n(95926),a=n(58201).has,o=n(58201).isValidEntityCode,i=n(58201).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=o(n)?i(n):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(l))&&a(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},52960:function(e,t,n){"use strict";for(var r=n(58201).isSpace,a=[],o=0;o<256;o++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==a[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),o++;o<i&&(n=e.src.charCodeAt(o),r(n));)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},20354:function(e,t,n){"use strict";var r=n(75501).n;e.exports=function(e,t){var n,a,o,i=e.pos;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(i)||i+2>=o)&&(!(33!==(n=e.src.charCodeAt(i+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(i).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(i,i+a[0].length)),e.pos+=a[0].length,!0))))}},39590:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d,m,h,f,g,b="",v=e.pos,k=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<k&&40===e.src.charCodeAt(u)){for(u++;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(u>=k)return!1;for(g=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(d.str),e.md.validateLink(b)?u=d.pos:b=""),g=u;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<k&&g!==u&&d.ok)for(m=d.str,u=d.pos;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);else m="";if(u>=k||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<k&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?s=e.src.slice(g,u++):u=l+1):u=l+1,s||(s=e.src.slice(c,l)),!(p=e.env.references[r(s)]))return e.pos=v,!1;b=p.href,m=p.title}return t||(i=e.src.slice(c,l),e.md.inline.parse(i,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=n=[["src",b],["alt",""]],h.children=f,h.content=i,m&&n.push(["title",m])),e.pos=u,e.posMax=k,!0}},68839:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d="",m="",h=e.pos,f=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(s=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=s+1)<f&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(c>=f)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(d=e.md.normalizeLink(u.str),e.md.validateLink(d)?c=u.pos:d="",g=c;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<f&&g!==c&&u.ok)for(m=u.str,c=u.pos;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);}(c>=f||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if(void 0===e.env.references)return!1;if(c<f&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?i=e.src.slice(g,c++):c=s+1):c=s+1,i||(i=e.src.slice(l,s)),!(p=e.env.references[r(i)]))return e.pos=h,!1;d=p.href,m=p.title}return t||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",d]],m&&n.push(["title",m]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=f,!0}},22051:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t){var n,a,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o<a&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}},4160:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isWhiteSpace,o=n(58201).isPunctChar,i=n(58201).isMdAsciiPunct;function s(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}s.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},s.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),a.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(a),this.tokens_meta.push(o),a},s.prototype.scanDelims=function(e,t){var n,r,s,l,c,u,p,d,m,h=e,f=!0,g=!0,b=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;h<b&&this.src.charCodeAt(h)===v;)h++;return s=h-e,r=h<b?this.src.charCodeAt(h):32,p=i(n)||o(String.fromCharCode(n)),m=i(r)||o(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:m&&(u||p||(f=!1)),u?g=!1:p&&(d||m||(g=!1)),t?(l=f,c=g):(l=f&&(!g||p),c=g&&(!f||m)),{can_open:l,can_close:c,length:s}},s.prototype.Token=r,e.exports=s},30832:function(e){"use strict";function t(e,t){var n,r,a,o,i,s=[],l=t.length;for(n=0;n<l;n++)126===(a=t[n]).marker&&-1!==a.end&&(o=t[a.end],(i=e.tokens[a.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[o.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[o.token-1].type&&"~"===e.tokens[o.token-1].content&&s.push(o.token-1));for(;s.length;){for(r=(n=s.pop())+1;r<e.tokens.length&&"s_close"===e.tokens[r].type;)r++;n!==--r&&(i=e.tokens[r],e.tokens[r]=e.tokens[n],e.tokens[n]=i)}}e.exports.w=function(e,t){var n,r,a,o,i=e.pos,s=e.src.charCodeAt(i);if(t)return!1;if(126!==s)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(s),a<2)return!1;for(a%2&&(e.push("text","",0).content=o,a--),n=0;n<a;n+=2)e.push("text","",0).content=o+o,e.delimiters.push({marker:s,length:0,jump:n/2,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},96733:function(e){"use strict";function t(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,n){for(var r=e.pos;r<e.posMax&&!t(e.src.charCodeAt(r));)r++;return r!==e.pos&&(n||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}},72300:function(e){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,o=e.tokens.length;for(t=n=0;t<o;t++)a[t].nesting<0&&r--,a[t].level=r,a[t].nesting>0&&r++,"text"===a[t].type&&t+1<o&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},82069:function(e){"use strict";function t(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}t.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},t.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},t.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},t.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},t.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=t},62098:function(e){"use strict";var t={};function n(e,r){var a;return"string"!=typeof r&&(r=n.defaultChars),a=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),a.push(r);for(n=0;n<e.length;n++)a[r=e.charCodeAt(n)]="%"+("0"+r.toString(16).toUpperCase()).slice(-2);return a}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,n,r,o,i,s,l,c="";for(t=0,n=e.length;t<n;t+=3)(r=parseInt(e.slice(t+1,t+3),16))<128?c+=a[r]:192==(224&r)&&t+3<n&&128==(192&(o=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=r<<6&1984|63&o)<128?"��":String.fromCharCode(l),t+=3):224==(240&r)&&t+6<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),128==(192&o)&&128==(192&i))?(c+=(l=r<<12&61440|o<<6&4032|63&i)<2048||l>=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240==(248&r)&&t+9<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),s=parseInt(e.slice(t+10,t+12),16),128==(192&o)&&128==(192&i)&&128==(192&s))?((l=r<<18&1835008|o<<12&258048|i<<6&4032|63&s)<65536||l>1114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",e.exports=n},9401:function(e){"use strict";var t={};function n(e,r,a){var o,i,s,l,c,u="";for("string"!=typeof r&&(a=r,r=n.defaultChars),void 0===a&&(a=!0),c=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),/^[0-9a-z]$/i.test(r)?a.push(r):a.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));for(n=0;n<e.length;n++)a[e.charCodeAt(n)]=e[n];return a}(r),o=0,i=e.length;o<i;o++)if(s=e.charCodeAt(o),a&&37===s&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(s<128)u+=c[s];else if(s>=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1<i&&(l=e.charCodeAt(o+1))>=56320&&l<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",e.exports=n},56558:function(e){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},36664:function(e,t,n){"use strict";e.exports.encode=n(9401),e.exports.decode=n(62098),e.exports.format=n(56558),e.exports.parse=n(5)},5:function(e){"use strict";function t(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,r=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),i=["'"].concat(o),s=["%","/","?",";","#"].concat(i),l=["/","?","#"],c=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};t.prototype.parse=function(e,t){var r,o,i,m,h,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var g=a.exec(f);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(f);if(b&&(i=(b=b[0]).toLowerCase(),this.protocol=b,f=f.substr(b.length)),(t||b||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(h="//"===f.substr(0,2))||b&&p[b]||(f=f.substr(2),this.slashes=!0)),!p[b]&&(h||b&&!d[b])){var v,k,y=-1;for(r=0;r<l.length;r++)-1!==(m=f.indexOf(l[r]))&&(-1===y||m<y)&&(y=m);for(-1!==(k=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,k),f=f.slice(k+1),this.auth=v),y=-1,r=0;r<s.length;r++)-1!==(m=f.indexOf(s[r]))&&(-1===y||m<y)&&(y=m);-1===y&&(y=f.length),":"===f[y-1]&&y--;var E=f.slice(0,y);f=f.slice(y),this.parseHost(E),this.hostname=this.hostname||"";var w="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!w){var _=this.hostname.split(/\./);for(r=0,o=_.length;r<o;r++){var C=_[r];if(C&&!C.match(c)){for(var j="",S=0,x=C.length;S<x;S++)C.charCodeAt(S)>127?j+="x":j+=C[S];if(!j.match(c)){var T=_.slice(0,r),N=_.slice(r+1),P=C.match(u);P&&(T.push(P[1]),N.unshift(P[2])),N.length&&(f=N.join(".")+f),this.hostname=T.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var A=f.indexOf("#");-1!==A&&(this.hash=f.substr(A),f=f.slice(0,A));var I=f.indexOf("?");return-1!==I&&(this.search=f.substr(I),f=f.slice(0,I)),f&&(this.pathname=f),d[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},t.prototype.parseHost=function(e){var t=r.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,n){if(e&&e instanceof t)return e;var r=new t;return r.parse(e,n),r}},99889:function(){},93474:function(){},33285:function(){},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},32002:function(e){var t=1e3,n=60*t,r=60*n,a=24*r,o=7*a,i=365.25*a;function s(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,l){l=l||{};var c=typeof e;if("string"===c&&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 l=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*a;case"hours":case"hour":case"hrs":case"hr":case"h":return l*r;case"minutes":case"minute":case"mins":case"min":case"m":return l*n;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"===c&&isFinite(e))return l.long?function(e){var o=Math.abs(e);if(o>=a)return s(e,o,a,"day");if(o>=r)return s(e,o,r,"hour");if(o>=n)return s(e,o,n,"minute");if(o>=t)return s(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=a)return Math.round(e/a)+"d";if(o>=r)return Math.round(e/r)+"h";if(o>=n)return Math.round(e/n)+"m";if(o>=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))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(l[u]=i[u]);if(t){s=t(i);for(var p=0;p<s.length;p++)r.call(i,s[p])&&(l[s[p]]=i[s[p]])}}return l}},40278:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(92213),a=n.n(r),o=n(68211),i=n.n(o),s=n(48468),l=n.n(s)()("photon"),c={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},u="__domain__.invalid",p="http://".concat(u);function d(e,t){var n;try{n=new URL(e,p)}catch(e){return null}var r,o,s,d,m,h="https:"===n.protocol,f=new URL("https://i0.wp.com");if(m=n.host,/^i[0-2]\.wp\.com$/.test(m))f.pathname=n.pathname,f.hostname=n.hostname;else{if(n.search)return null;var g=n.href.replace("".concat(n.protocol,"/"),"");"blob:"===n.protocol&&(g=n.pathname.replace("://","//")),n.hostname===u&&(g=n.pathname),f.pathname=g,f.hostname=(r=g,o=a()(r),s=i()(o),d="i"+Math.floor(3*s()),l('determined server "%s" to use with "%s"',d,r),d+".wp.com"),h&&f.searchParams.set("ssl",1)}if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?f.searchParams.set(c[b]||b,t[b]):f.protocol="http:":f.hostname=t[b];return l("generated Photon URL: %s",f.href),f.href}},9587:function(e,t,n){"use strict";var r=n(45843);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){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 n={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:o,resetWarningCache:a};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},10753:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,a){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var i=/\+/g;e=e.split(n);var s=1e3;a&&"number"==typeof a.maxKeys&&(s=a.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,p,d,m,h=e[c].replace(i,"%20"),f=h.indexOf(r);f>=0?(u=h.substr(0,f),p=h.substr(f+1)):(u=h,p=""),d=decodeURIComponent(u),m=decodeURIComponent(p),t(o,d)?Array.isArray(o[d])?o[d].push(m):o[d]=[o[d],m]:o[d]=m}return o}},68527:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,a){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var o=encodeURIComponent(t(a))+r;return Array.isArray(e[a])?e[a].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[a]))})).join(n):a?encodeURIComponent(t(a))+r+encodeURIComponent(t(e)):""}},76250:function(e,t,n){"use strict";t.decode=t.parse=n(10753),t.encode=t.stringify=n(68527)},97765:function(e,t,n){"use strict";var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(63130),l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function c(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={isSupported:s.Gb&&s.WD},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),l(t,[{key:"componentDidMount",value:function(){this.state.isSupported&&(this.handleVisibilityChange=this.handleVisibilityChange.bind(this),document.addEventListener(s.WD.event,this.handleVisibilityChange))}},{key:"componentWillUnmount",value:function(){this.state.isSupported&&document.removeEventListener(s.WD.event,this.handleVisibilityChange)}},{key:"handleVisibilityChange",value:function(){var e;"function"==typeof this.props.onChange&&(e=this.props).onChange.apply(e,c((0,s.XO)()));"function"==typeof this.props.children&&this.forceUpdate()}},{key:"render",value:function(){return this.props.children?"function"==typeof this.props.children?this.state.isSupported?(e=this.props).children.apply(e,c((0,s.XO)())):this.props.children():i().Children.only(this.props.children):null;var e}}]),t}(i().Component);u.displayName="PageVisibility",u.propTypes={onChange:a().func,children:a().oneOfType([a().node,a().func])},t.Z=u},75031:function(e,t,n){"use strict";var r=n(97765);t.Z=r.Z},63130:function(e,t,n){"use strict";n.d(t,{Gb:function(){return o},WD:function(){return i},XO:function(){return s}});var r="undefined"!=typeof document,a=[{hidden:"hidden",event:"visibilitychange",state:"visibilityState"},{hidden:"webkitHidden",event:"webkitvisibilitychange",state:"webkitVisibilityState"},{hidden:"mozHidden",event:"mozvisibilitychange",state:"mozVisibilityState"},{hidden:"msHidden",event:"msvisibilitychange",state:"msVisibilityState"},{hidden:"oHidden",event:"ovisibilitychange",state:"oVisibilityState"}],o=r&&Boolean(document.addEventListener),i=function(){if(!o)return null;var e=!0,t=!1,n=void 0;try{for(var r,i=a[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var s=r.value;if(s.hidden in document)return s}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}return null}(),s=function(){if(!i)return[!0,"visible"];var e=i.hidden,t=i.state;return[!document[e],document[t]]}},2601:function(e){"use strict";function t(e,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)t(e,n[r]);else for(r in n)e[r]=(e[r]||[]).concat(n[r])}e.exports=function(e){var n,r={};return t(r,e),(n=function(e){return function(t){return function(n){var a,o,i=r[n.type],s=t(n);if(i)for(a=0;a<i.length;a++)(o=i[a](n,e))&&e.dispatch(o);return s}}}).effects=r,n}},19551:function(e,t,n){"use strict";var r,a;function o(e){return[e]}function i(){var e={clear:function(){e.head=null}};return e}function s(e,t,n){var r;if(e.length!==t.length)return!1;for(r=n;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function l(e,t){var n,l;function c(){n=a?new WeakMap:i()}function u(){var n,r,a,o,i,c=arguments.length;for(o=new Array(c),a=0;a<c;a++)o[a]=arguments[a];for(i=t.apply(null,o),(n=l(i)).isUniqueByDependants||(n.lastDependants&&!s(i,n.lastDependants,0)&&n.clear(),n.lastDependants=i),r=n.head;r;){if(s(r.args,o,1))return r!==n.head&&(r.prev.next=r.next,r.next&&(r.next.prev=r.prev),r.next=n.head,r.prev=null,n.head.prev=r,n.head=r),r.val;r=r.next}return r={val:e.apply(null,o)},o[0]=null,r.args=o,n.head&&(n.head.prev=r,r.next=n.head),n.head=r,r.val}return t||(t=o),l=a?function(e){var t,a,o,s,l,c=n,u=!0;for(t=0;t<e.length;t++){if(a=e[t],!(l=a)||"object"!=typeof l){u=!1;break}c.has(a)?c=c.get(a):(o=new WeakMap,c.set(a,o),c=o)}return c.has(r)||((s=i()).isUniqueByDependants=u,c.set(r,s)),c.get(r)}:function(){return n},u.getDependants=t,u.clear=c,c(),u}n.d(t,{Z:function(){return l}}),r={},a="undefined"!=typeof WeakMap},54166:function(e,t){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var i=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&l()}function s(){o(i)}function l(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(s,t);a=e}return l}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;i.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},p=b(0,0,0,0);function d(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function h(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],o=e["padding-"+a];t[a]=d(o)}return t}(r),o=a.left+a.right,i=a.top+a.bottom,s=d(r.width),l=d(r.height);if("border-box"===r.boxSizing&&(Math.round(s+o)!==t&&(s-=m(r,"left","right")+o),Math.round(l+i)!==n&&(l-=m(r,"top","bottom")+i)),!function(e){return e===u(e).document.documentElement}(e)){var c=Math.round(s+o)-t,h=Math.round(l+i)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(h)&&(l-=h)}return b(a.left,a.top,s,l)}var f="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return r?f(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):h(e):p}function b(e,t,n,r){return{x:e,y:t,width:n,height:r}}var v=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),k=function(e,t){var n,r,a,o,i,s,l,u=(r=(n=t).x,a=n.y,o=n.width,i=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(s.prototype),c(l,{x:r,y:a,width:o,height:i,top:a,right:r+o,bottom:i+a,left:r}),l);c(this,{target:e,contentRect:u})},y=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new v(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new k(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),E="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new y(t,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=E.get(this))[e].apply(t,arguments)}}));var _=void 0!==a.ResizeObserver?a.ResizeObserver:w;t.Z=_},68211:function(e){"use strict";var t=256,n=[],r=window,a=Math.pow(t,6),o=Math.pow(2,52),i=2*o,s=255,l=Math.random;function c(e){var n,r=e.length,a=this,o=0,i=a.i=a.j=0,l=a.S=[];for(r||(e=[r++]);o<t;)l[o]=o++;for(o=0;o<t;o++)l[o]=l[i=s&i+e[o%r]+(n=l[o])],l[i]=n;(a.g=function(e){for(var n,r=0,o=a.i,i=a.j,l=a.S;e--;)n=l[o=s&o+1],r=r*t+l[s&(l[o]=l[i=s&i+n])+(l[i]=n)];return a.i=o,a.j=i,r})(t)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(e){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[s&a]=s&(n^=19*t[s&a])+r.charCodeAt(a++);return m(t)}function d(e){try{return r.crypto.getRandomValues(e=new Uint8Array(t)),m(e)}catch(e){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,m(n)]}}function m(e){return String.fromCharCode.apply(0,e)}e.exports=function(r,s){if(s&&!0===s.global)return s.global=!1,Math.random=e.exports(r,s),s.global=!0,Math.random;var l=s&&s.entropy||!1,h=[],f=(p(u(l?[r,m(n)]:0 in arguments?r:d(),3),h),new c(h));return p(m(f.S),n),function(){for(var e=f.g(6),n=a,r=0;e<o;)e=(e+r)*t,n*=t,r=f.g(1);for(;e>=i;)e/=2,n/=2,r>>>=1;return(e+r)/n}},e.exports.resetGlobal=function(){Math.random=l},p(Math.random(),n)},45702:function(e,t,n){const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=o(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}c("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new p(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new p(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=l(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=l(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||o&&i||s||c}}e.exports=a;const o=n(75265),{re:i,t:s}=n(75698),l=n(48937),c=n(72840),u=n(88208),p=n(55062)},55062:function(e,t,n){class r{constructor(e,t){if(t=o(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&f(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=a.get(t);if(n)return n;const r=this.options.loose,o=r?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(o,x(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(c[u.COMPARATORTRIM],p),s("comparator trim",e,c[u.COMPARATORTRIM]),e=(e=(e=e.replace(c[u.TILDETRIM],d)).replace(c[u.CARETTRIM],m)).split(/\s+/).join(" ");const l=r?c[u.COMPARATORLOOSE]:c[u.COMPARATOR],f=e.split(" ").map((e=>b(e,this.options))).join(" ").split(/\s+/).map((e=>S(e,this.options))).filter(this.options.loose?e=>!!e.match(l):()=>!0).map((e=>new i(e,this.options))),g=(f.length,new Map);for(const e of f){if(h(e))return[e];g.set(e.value,e)}g.size>1&&g.has("")&&g.delete("");const v=[...g.values()];return a.set(t,v),v}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>g(n,t)&&e.set.some((e=>g(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(T(this.set[t],e,this.options))return!0;return!1}}e.exports=r;const a=new(n(47595))({max:1e3}),o=n(75265),i=n(45702),s=n(72840),l=n(88208),{re:c,t:u,comparatorTrimReplace:p,tildeTrimReplace:d,caretTrimReplace:m}=n(75698),h=e=>"<0.0.0-0"===e.value,f=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every((e=>a.intersects(e,t))),a=r.pop();return n},b=(e,t)=>(s("comp",e,t),e=E(e,t),s("caret",e),e=k(e,t),s("tildes",e),e=_(e,t),s("xrange",e),e=j(e,t),s("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,k=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" "),y=(e,t)=>{const n=t.loose?c[u.TILDELOOSE]:c[u.TILDE];return e.replace(n,((t,n,r,a,o)=>{let i;return s("tilde",e,t,n,r,a,o),v(n)?i="":v(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:v(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:o?(s("replaceTilde pr",o),i=`>=${n}.${r}.${a}-${o} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,s("tilde return",i),i}))},E=(e,t)=>e.trim().split(/\s+/).map((e=>w(e,t))).join(" "),w=(e,t)=>{s("caret",e,t);const n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,a,o,i)=>{let l;return s("caret",e,t,n,a,o,i),v(n)?l="":v(a)?l=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(o)?l="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(s("replaceCaret pr",i),l="0"===n?"0"===a?`>=${n}.${a}.${o}-${i} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o}-${i} <${+n+1}.0.0-0`):(s("no pr"),l="0"===n?"0"===a?`>=${n}.${a}.${o}${r} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o} <${+n+1}.0.0-0`),s("caret return",l),l}))},_=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>C(e,t))).join(" ")),C=(e,t)=>{e=e.trim();const n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,((n,r,a,o,i,l)=>{s("xRange",e,n,r,a,o,i,l);const c=v(a),u=c||v(o),p=u||v(i),d=p;return"="===r&&d&&(r=""),l=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&d?(u&&(o=0),i=0,">"===r?(r=">=",u?(a=+a+1,o=0,i=0):(o=+o+1,i=0)):"<="===r&&(r="<",u?a=+a+1:o=+o+1),"<"===r&&(l="-0"),n=`${r+a}.${o}.${i}${l}`):u?n=`>=${a}.0.0${l} <${+a+1}.0.0-0`:p&&(n=`>=${a}.${o}.0${l} <${a}.${+o+1}.0-0`),s("xRange return",n),n}))},j=(e,t)=>(s("replaceStars",e,t),e.trim().replace(c[u.STAR],"")),S=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),x=e=>(t,n,r,a,o,i,s,l,c,u,p,d,m)=>`${n=v(r)?"":v(a)?`>=${r}.0.0${e?"-0":""}`:v(o)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=v(c)?"":v(u)?`<${+c+1}.0.0-0`:v(p)?`<${c}.${+u+1}.0-0`:d?`<=${c}.${u}.${p}-${d}`:e?`<${c}.${u}.${+p+1}-0`:`<=${l}`}`.trim(),T=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(s(e[n].semver),e[n].semver!==i.ANY&&e[n].semver.prerelease.length>0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},88208:function(e,t,n){const r=n(72840),{MAX_LENGTH:a,MAX_SAFE_INTEGER:o}=n(29609),{re:i,t:s}=n(75698),l=n(75265),{compareIdentifiers:c}=n(15322);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e})):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(r("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"==typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const n=this.prerelease[t],a=e.prerelease[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const n=this.build[t],a=e.build[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},52045:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},48937:function(e,t,n){const r=n(42969),a=n(74619),o=n(74765),i=n(71767),s=n(63590),l=n(94638);e.exports=(e,t,n,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return a(e,n,c);case">":return o(e,n,c);case">=":return i(e,n,c);case"<":return s(e,n,c);case"<=":return l(e,n,c);default:throw new TypeError(`Invalid operator: ${t}`)}}},12977:function(e,t,n){const r=n(88208),a=n(38675),{re:o,t:i}=n(75698);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=o[i.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),o[i.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[i.COERCERTL].lastIndex=-1}else n=e.match(o[i.COERCE]);return null===n?null:a(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},58230:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>{const a=new r(e,n),o=new r(t,n);return a.compare(o)||a.compareBuild(o)}},25112:function(e,t,n){const r=n(50192);e.exports=(e,t)=>r(e,t,!0)},50192:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},13751:function(e,t,n){const r=n(38675),a=n(42969);e.exports=(e,t)=>{if(a(e,t))return null;{const n=r(e),a=r(t),o=n.prerelease.length||a.prerelease.length,i=o?"pre":"",s=o?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==a[e])return i+e;return s}}},42969:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0===r(e,t,n)},74765:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>0},71767:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>=0},20177:function(e,t,n){const r=n(88208);e.exports=(e,t,n,a)=>{"string"==typeof n&&(a=n,n=void 0);try{return new r(e,n).inc(t,a).version}catch(e){return null}}},63590:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<0},94638:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<=0},51847:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).major},87989:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).minor},74619:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0!==r(e,t,n)},38675:function(e,t,n){const{MAX_LENGTH:r}=n(29609),{re:a,t:o}=n(75698),i=n(88208),s=n(75265);e.exports=(e,t)=>{if(t=s(t),e instanceof i)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?a[o.LOOSE]:a[o.FULL]).test(e))return null;try{return new i(e,t)}catch(e){return null}}},8906:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).patch},85676:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},82576:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(t,e,n)},25709:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},53907:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},21978:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},55641:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},53377:function(e,t,n){const r=n(75698);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(29609).SEMVER_SPEC_VERSION,SemVer:n(88208),compareIdentifiers:n(15322).compareIdentifiers,rcompareIdentifiers:n(15322).rcompareIdentifiers,parse:n(38675),valid:n(55641),clean:n(52045),inc:n(20177),diff:n(13751),major:n(51847),minor:n(87989),patch:n(8906),prerelease:n(85676),compare:n(50192),rcompare:n(82576),compareLoose:n(25112),compareBuild:n(58230),sort:n(21978),rsort:n(25709),gt:n(74765),lt:n(63590),eq:n(42969),neq:n(74619),gte:n(71767),lte:n(94638),cmp:n(48937),coerce:n(12977),Comparator:n(45702),Range:n(55062),satisfies:n(53907),toComparators:n(76055),maxSatisfying:n(33422),minSatisfying:n(17212),minVersion:n(9077),validRange:n(53140),outside:n(44494),gtr:n(2824),ltr:n(34370),intersects:n(30723),simplifyRange:n(23589),subset:n(34992)}},29609:function(e){const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},72840:function(e){const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},15322:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:e<n?-1:1};e.exports={compareIdentifiers:n,rcompareIdentifiers:(e,t)=>n(t,e)}},75265:function(e){const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},75698:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r}=n(29609),a=n(72840),o=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let l=0;const c=(e,t,n)=>{const r=l++;a(r,t),s[e]=r,i[r]=t,o[r]=new RegExp(t,n?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),c("FULL",`^${i[s.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),c("LOOSE",`^${i[s.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),c("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),c("COERCERTL",i[s.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},2824:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,">",n)},30723:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},34370:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,"<",n)},33422:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&-1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},17212:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},9077:function(e,t,n){const r=n(88208),a=n(55062),o=n(74765);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t<e.set.length;++t){const a=e.set[t];let i=null;a.forEach((e=>{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!o(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||n&&!o(n,i)||(n=i)}return n&&e.test(n)?n:null}},44494:function(e,t,n){const r=n(88208),a=n(45702),{ANY:o}=a,i=n(55062),s=n(53907),l=n(74765),c=n(63590),u=n(94638),p=n(71767);e.exports=(e,t,n,d)=>{let m,h,f,g,b;switch(e=new r(e,d),t=new i(t,d),n){case">":m=l,h=u,f=c,g=">",b=">=";break;case"<":m=c,h=p,f=l,g="<",b="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,d))return!1;for(let n=0;n<t.set.length;++n){const r=t.set[n];let i=null,s=null;if(r.forEach((e=>{e.semver===o&&(e=new a(">=0.0.0")),i=i||e,s=s||e,m(e.semver,i.semver,d)?i=e:f(e.semver,s.semver,d)&&(s=e)})),i.operator===g||i.operator===b)return!1;if((!s.operator||s.operator===g)&&h(e,s.semver))return!1;if(s.operator===b&&f(e,s.semver))return!1}return!0}},23589:function(e,t,n){const r=n(53907),a=n(50192);e.exports=(e,t,n)=>{const o=[];let i=null,s=null;const l=e.sort(((e,t)=>a(e,t,n)));for(const e of l){r(e,t,n)?(s=e,i||(i=e)):(s&&o.push([i,s]),s=null,i=null)}i&&o.push([i,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==l[0]?t?e===l[0]?c.push(`<=${t}`):c.push(`${e} - ${t}`):c.push(`>=${e}`):c.push("*");const u=c.join(" || "),p="string"==typeof t.raw?t.raw:String(t);return u.length<p.length?u:t}},34992:function(e,t,n){const r=n(55062),a=n(45702),{ANY:o}=a,i=n(53907),s=n(50192),l=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===o){if(1===t.length&&t[0].semver===o)return!0;e=n.includePrerelease?[new a(">=0.0.0-0")]:[new a(">=0.0.0")]}if(1===t.length&&t[0].semver===o){if(n.includePrerelease)return!0;t=[new a(">=0.0.0")]}const r=new Set;let l,p,d,m,h,f,g;for(const t of e)">"===t.operator||">="===t.operator?l=c(l,t,n):"<"===t.operator||"<="===t.operator?p=u(p,t,n):r.add(t.semver);if(r.size>1)return null;if(l&&p){if(d=s(l.semver,p.semver,n),d>0)return null;if(0===d&&(">="!==l.operator||"<="!==p.operator))return null}for(const e of r){if(l&&!i(e,String(l),n))return null;if(p&&!i(e,String(p),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let b=!(!p||n.includePrerelease||!p.semver.prerelease.length)&&p.semver,v=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver;b&&1===b.prerelease.length&&"<"===p.operator&&0===b.prerelease[0]&&(b=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,l)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(m=c(l,e,n),m===e&&m!==l)return!1}else if(">="===l.operator&&!i(l.semver,String(e),n))return!1;if(p)if(b&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===b.major&&e.semver.minor===b.minor&&e.semver.patch===b.patch&&(b=!1),"<"===e.operator||"<="===e.operator){if(h=u(p,e,n),h===e&&h!==p)return!1}else if("<="===p.operator&&!i(p.semver,String(e),n))return!1;if(!e.operator&&(p||l)&&0!==d)return!1}return!(l&&f&&!p&&0!==d)&&(!(p&&g&&!l&&0!==d)&&(!v&&!b))},c=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=l(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},76055:function(e,t,n){const r=n(55062);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},53140:function(e,t,n){const r=n(55062);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},88090:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7478),a={contextDelimiter:"",onMissingKey:null};function o(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},a)this.options[n]=void 0!==t&&n in t?t[n]:a[n]}o.prototype.getPluralForm=function(e,t){var n,a,o,i=this.pluralForms[e];return i||("function"!=typeof(o=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(a=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),o=(0,r.Z)(a)),i=this.pluralForms[e]=o),i(t)},o.prototype.dcnpgettext=function(e,t,n,r,a){var o,i,s;return o=void 0===a?0:this.getPluralForm(e,a),i=n,t&&(i=t+this.options.contextDelimiter+n),(s=this.data[e][i])&&s[o]?s[o]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===o?n:r)}},80816:function(e,t,n){"use strict";var r=n(90922),a=n.n(r),o=n(92819);const i=a()("dops:analytics");let s,l;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const c={initialize:function(e,t,n){c.setUser(e,t),c.setSuperProps(n),c.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]: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){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){c.tracks.recordPageView(e),c.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,o,i){c.ga.recordPurchase(e,t,n,r,a,o,i)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(i("- Super Props: %o",s),t=(0,o.assign)(t,s)),i('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):i('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};c.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){c.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){i("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};c.ga.initialized||(l&&(e={userId:"u-"+l.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),c.ga.initialized=!0)},recordPageView:function(e,t){c.ga.initialize(),i("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,n,r){c.ga.initialize();let a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),i(a),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,o,i){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:i}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:o}),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"])}};t.Z=c},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},11973:function(e,t,n){"use strict";var r=n(9481),a=n(80816);a.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),a.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=a.Z},22874:function(e,t,n){"use strict";n.d(t,{J:function(){return p},F:function(){return d}});var r=n(4981),a=n(9818),o=n(65736),i=n(57535),s=n(41362);const _x=o._x,__=o.__;function l(e){let{spotifyShowUrl:t,spotifyImageUrl:n}=e;return[["core/image",{url:n,linkDestination:"none",href:t,align:"center",width:165,height:40,className:"is-spotify-podcast-badge"}]]}function c(e){let{episodeTrack:t,feedUrl:n}=e;const{guid:r}=t;return[["jetpack/podcast-player",{customPrimaryColor:(0,i.m)(),hexPrimaryColor:(0,i.m)(),url:n,selectedEpisodes:r?[{guid:r}]:[],showCoverArt:!1,showEpisodeTitle:!1,showEpisodeDescription:!1}]]}function u(e){let{spotifyShowUrl:t,spotifyImageUrl:n,episodeTrack:o={},feedUrl:i}=e;const s=[...c({episodeTrack:o,feedUrl:i})];return t&&n&&s.push(...l({spotifyShowUrl:t,spotifyImageUrl:n})),s.push(...function(e){let{episodeTrack:t}=e;const n=[["core/heading",{level:3,content:_x("Summary","noun: summary of a podcast episode","jetpack"),placeholder:__("Podcast episode title","jetpack")}]],a=(0,r.pasteHandler)({HTML:t.description_html,mode:"BLOCKS"});return a.length?n.push(...a):n.push(["core/paragraph",{placeholder:__("Podcast episode summary","jetpack")}]),n}({episodeTrack:o})),s.push(...function(){const e="jetpack/conversation";return(0,a.select)("core/blocks").getBlockType(e)?[[e,{participants:[{slug:"participant-0",label:__("Speaker 1","jetpack")},{slug:"participant-1",label:__("Speaker 2","jetpack")},{slug:"participant-2",label:__("Speaker 3","jetpack")}]},[["core/heading",{level:3,content:__("Transcription","jetpack"),placeholder:__("Podcast episode transcription","jetpack")}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-0"}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-1"}],["jetpack/dialogue",{placeholder:__("Podcast episode dialogue","jetpack"),slug:"participant-2"}]]]]:[["core/heading",{level:3,content:__("Transcription","jetpack"),placeholder:__("Podcast episode transcription","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}],["core/paragraph",{placeholder:__("Podcast episode dialogue","jetpack")}]]}()),s}function p(e){return(0,s.Z)(u(e))}function d(e){if(e.spotifyImageUrl&&e.spotifyShowUrl)return(0,s.Z)([...l(e)])}},63533:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819);const __=l.__,p="09:00",d="17:00";class m extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,{opening:r,closing:a}=e;return(0,o.createElement)(o.Fragment,{key:t},(0,o.createElement)("div",{className:"business-hours__row"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")},0===t&&this.renderDayToggle()),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.TextControl,{type:"time",label:__("Opening","jetpack"),value:r,className:"business-hours__open",placeholder:p,onChange:e=>{this.setHour(e,"opening",t)}}),(0,o.createElement)(c.TextControl,{type:"time",label:__("Closing","jetpack"),value:a,className:"business-hours__close",placeholder:d,onChange:e=>{this.setHour(e,"closing",t)}})),(0,o.createElement)("div",{className:"business-hours__remove"},n.hours.length>1&&(0,o.createElement)(c.Button,{isSmall:!0,isLink:!0,icon:"trash",label:__("Remove Hours","jetpack"),onClick:()=>{this.removeInterval(t)}}))),t===n.hours.length-1&&(0,o.createElement)("div",{className:"business-hours__row business-hours-row__add"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")}," "),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.Button,{isLink:!0,label:__("Add Hours","jetpack"),onClick:this.addInterval},__("Add Hours","jetpack"))),(0,o.createElement)("div",{className:"business-hours__remove"}," ")))})),a()(this,"setHour",((e,t,n)=>{const{day:r,attributes:a,setAttributes:o}=this.props,{days:i}=a;o({days:i.map((a=>a.name===r.name?{...a,hours:a.hours.map(((r,a)=>a===n?{...r,[t]:e}:r))}:a))})})),a()(this,"toggleClosed",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>{if(n.name===t.name){const t=e?[{opening:p,closing:d}]:[];return{...n,hours:t}}return n}))})})),a()(this,"addInterval",(()=>{const{day:e,attributes:t,setAttributes:n}=this.props,{days:r}=t;e.hours.push({opening:"",closing:""}),n({days:r.map((t=>t.name===e.name?{...t,hours:e.hours}:t))})})),a()(this,"removeInterval",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>t.name===n.name?{...n,hours:n.hours.filter(((t,n)=>e!==n))}:n))})}))}isClosed(){const{day:e}=this.props;return(0,u.isEmpty)(e.hours)}renderDayToggle(){const{day:e,localization:t}=this.props;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"business-hours__day-name"},t.days[e.name]),(0,o.createElement)(c.ToggleControl,{label:this.isClosed()?__("Closed","jetpack"):__("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}renderClosed(){const{day:e}=this.props;return(0,o.createElement)("div",{className:"business-hours__row business-hours-row__closed"},(0,o.createElement)("div",{className:s()(e.name,"business-hours__day")},this.renderDayToggle()),(0,o.createElement)("div",{className:s()(e.name,"closed","business-hours__hours")}," "),(0,o.createElement)("div",{className:"business-hours__remove"}," "))}render(){const{day:e}=this.props;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}t.Z=m},20920:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(69771),l=n(92819);const _x=i._x;class c extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,r=n.hours;return(0,o.createElement)("span",{key:t},(0,i.sprintf)("%1$s - %2$s",this.formatTime(e.opening),this.formatTime(e.closing)),r.length>1+t&&(0,o.createElement)("span",null,", "))}))}formatTime(e){const{timeFormat:t}=this.props,[n,r]=e.split(":"),a=new Date;return!(!n||!r)&&(a.setHours(n),a.setMinutes(r),(0,s.date)(t,a))}render(){const{day:e,localization:t}=this.props,n=e.hours.filter((e=>this.formatTime(e.opening)&&this.formatTime(e.closing)));return(0,o.createElement)("div",{className:"jetpack-business-hours__item"},(0,o.createElement)("dt",{className:e.name},t.days[e.name]),(0,o.createElement)("dd",null,(0,l.isEmpty)(n)?_x("Closed","business is closed on a full day","jetpack"):n.map(this.renderInterval),(0,o.createElement)("br",null)))}}t.Z=c},85932:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(89105),p=n.n(u),d=n(65736),m=n(69771),h=n(52175),f=n(55609),g=n(63533),b=n(20920),v=n(8042);const __=d.__,k={days:{Sun:__("Sunday","jetpack"),Mon:__("Monday","jetpack"),Tue:__("Tuesday","jetpack"),Wed:__("Wednesday","jetpack"),Thu:__("Thursday","jetpack"),Fri:__("Friday","jetpack"),Sat:__("Saturday","jetpack")},startOfWeek:0};class y extends s.Component{constructor(){super(...arguments),i()(this,"state",{localization:k,hasFetched:!1})}componentDidMount(){this.apiFetch()}apiFetch(){this.setState({data:k},(()=>{c()({path:"/wpcom/v2/business-hours/localized-week"}).then((e=>{this.setState({localization:e,hasFetched:!0})}),(()=>{this.setState({localization:k,hasFetched:!0})}))}))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{days:r}=e,{localization:o,hasFetched:i}=this.state,{startOfWeek:l}=o,c=r.concat(r.slice(0,l)).slice(l);if(!i)return(0,s.createElement)(f.Placeholder,{icon:(0,s.createElement)(h.BlockIcon,{icon:v.qv}),label:__("Loading business hours","jetpack")});if(!n){const e=(0,m.__experimentalGetSettings)(),{formats:{time:n}}=e;return(0,s.createElement)("dl",{className:p()(t,"jetpack-business-hours")},c.map(((e,t)=>(0,s.createElement)(b.Z,{key:t,day:e,localization:o,timeFormat:n}))))}return(0,s.createElement)("div",{className:p()(t,"is-edit")},c.map(((e,t)=>(0,s.createElement)(g.Z,a()({key:t,day:e,localization:o},this.props)))))}}t.Z=y},8042:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(85932),s=n(41632),l=n(57535);const __=a.__,_x=a._x,c=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],u="business-hours",p=(0,s.Z)((0,r.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),d={title:__("Business Hours","jetpack"),description:__("Display opening hours for your business.","jetpack"),icon:{src:p,foreground:(0,l.m)()},category:"grow",supports:{html:!0},keywords:[_x("opening hours","block search term","jetpack"),_x("closing time","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("working day","block search term","jetpack")],attributes:{days:{type:"array",default:c}},edit:e=>(0,r.createElement)(i.Z,e),save:()=>null,example:{attributes:{days:c}}}},83487:function(e,t,n){"use strict";var r=n(92819),a=n(55609);const o=(0,a.withFallbackStyles)(((e,t)=>{const{backgroundColor:n,textColor:a}=t,o=(0,r.get)(n,"color"),i=!(0,r.get)(a,"color")&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:o||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:a||!i?void 0:getComputedStyle(i).color}}));t.Z=o},70443:function(e,t,n){"use strict";var r=n(68039);t.Z={element:{type:"string",enum:["a","button","input"]},saveInPostContent:{type:"boolean",default:!1},uniqueId:{type:"string"},passthroughAttributes:{type:"object"},text:{type:"string"},placeholder:{type:"string"},url:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string",validator:r.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:r.Z},gradient:{type:"string"},customGradient:{type:"string"},borderRadius:{type:"number"},width:{type:"string"}}},24429:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(77012);const __=o.__;function s(e){let{borderRadius:t="",setAttributes:n}=e;const o=(0,r.useCallback)((e=>n({borderRadius:e})),[n]);return(0,r.createElement)(a.PanelBody,{title:__("Border Settings","jetpack")},(0,r.createElement)(a.RangeControl,{allowReset:!0,initialPosition:i.pg,label:__("Border radius","jetpack"),max:i.Gp,min:i.G0,onChange:o,value:t}))}},63020:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(65736);const __=o.__;function i(e){let{isGradientAvailable:t,backgroundColor:n,fallbackBackgroundColor:o,fallbackTextColor:i,gradientValue:s,setBackgroundColor:l,setGradient:c,setTextColor:u,textColor:p}=e;const d=(0,r.createElement)(a.ContrastChecker,{backgroundColor:n.color,fallbackBackgroundColor:o,fallbackTextColor:i,isLargeText:!1,textColor:p.color});return t?(0,r.createElement)(a.__experimentalPanelColorGradientSettings,{settings:[{colorValue:p.color,label:__("Text Color","jetpack"),onColorChange:u},{colorValue:n.color,gradientValue:s,label:__("Background","jetpack"),onColorChange:l,onGradientChange:c}],title:__("Background & Text Color","jetpack")},d):(0,r.createElement)(a.PanelColorSettings,{colorSettings:[{value:p.color,onChange:u,label:__("Text Color","jetpack")},{value:n.color,onChange:l,label:__("Background","jetpack")}],title:__("Background & Text Color","jetpack")},d)}},80790:function(e,t,n){"use strict";n.d(t,{Z:function(){return p},h:function(){return d}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=[{value:"px",label:"px",default:150},{value:"%",label:"%",default:100},{value:"em",label:"em",default:10}],c=[{value:"px",label:"px",default:150},{value:"em",label:"em",default:10}],u=["25%","50%","75%","100%"];function p(e){return(0,r.createElement)(i.PanelBody,{title:__("Width settings","jetpack")},(0,r.createElement)(d,e))}function d(e){let{align:t,width:n,onChange:a}=e;const[s,p]=(0,r.useState)(null);(0,r.useEffect)((()=>{void 0===n&&p("px")}),[n]);const d="left"===t||"right"===t;return(0,r.createElement)(i.BaseControl,{label:__("Button width","jetpack")},(0,r.createElement)("div",{className:o()("jetpack-button__width-settings",{"is-aligned":d})},!d&&(0,r.createElement)(i.ButtonGroup,{"aria-label":__("Percentage Width","jetpack")},u.map((e=>(0,r.createElement)(i.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>function(e){const t=n===e?void 0:e;p("%"),a(t)}(e)},e)))),(0,r.createElement)(i.__experimentalUnitControl,{className:"jetpack-button__custom-width",isResetValueOnUnitChange:!0,max:"%"===s||n?.includes("%")?100:void 0,min:0,onChange:e=>a(e),onUnitChange:e=>p(e),size:"small",units:d?c:l,value:n,unit:s})))}},77012:function(e,t,n){"use strict";n.d(t,{DA:function(){return a},pg:function(){return o},Gp:function(){return i},G0:function(){return s}});var r=n(52175);const a=!!r.__experimentalUseGradient,o=5,i=50,s=0},78593:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(24429),o=n(63020),i=n(80790);function s(e){let{attributes:t,backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,setAttributes:c,setBackgroundColor:u,setTextColor:p,textColor:d,gradientValue:m,setGradient:h,isGradientAvailable:f}=e;const{align:g,borderRadius:b,width:v}=t;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Z,{backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,gradientValue:m,setBackgroundColor:u,setGradient:h,setTextColor:p,textColor:d,isGradientAvailable:f}),(0,r.createElement)(a.Z,{borderRadius:b,setAttributes:c}),(0,r.createElement)(i.Z,{align:g,width:v,onChange:e=>c({width:e})}))}},16867:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(52175),c=n(94333),u=n(65736),p=n(83487),d=n(78593),m=n(77012),h=n(31123);const __=u.__;t.Z=(0,c.compose)((0,l.withColors)({backgroundColor:"background-color"},{textColor:"color"}),p.Z)((function(e){const{attributes:t,backgroundColor:n,className:r,clientId:i,setAttributes:c,textColor:u}=e,{align:p,borderRadius:f,element:g,placeholder:b,text:v,width:k}=t,y=(e=>{const t=(0,o.useRef)();return(0,o.useEffect)((()=>{t.current=e}),[e]),t.current})(p);(0,h.Z)({attributes:t,clientId:i,setAttributes:c}),(0,o.useEffect)((()=>{y!==p&&("left"===p||"right"===p)&&k?.includes("%")&&c({width:void 0})}),[p,y,c,k]);const{gradientClass:E,gradientValue:w,setGradient:_}=m.DA?(0,l.__experimentalUseGradient)({gradientAttribute:"gradient",customGradientAttribute:"customGradient"}):{},C=s()("wp-block-button",r),j=s()("wp-block-button__link",{"has-background":n.color||w,[n.class]:!w&&n.class,"has-text-color":u.color,[u.class]:u.class,[E]:E,"no-border-radius":0===f,"has-custom-width":!!k}),S={...!n.color&&w?{background:w}:{backgroundColor:n.color},color:u.color,borderRadius:f?f+"px":void 0,width:k};return(0,o.createElement)("div",{className:C},(0,o.createElement)(l.RichText,{allowedFormats:"input"===g?[]:void 0,className:j,disableLineBreaks:"input"===g,onChange:e=>{const t="input"===g?e.replace(/<br>/gim," "):e;c({text:t})},placeholder:b||__("Add text…","jetpack"),style:S,value:v,withoutInteractiveFormatting:!0}),(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(d.Z,a()({gradientValue:w,setGradient:_,isGradientAvailable:m.DA},e))))}))},51245:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 13h8v-1.5H8V13z"}))},32278:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(70443),o=n(16867),i=n(51245),s=n(41328),l=n(20510);const __=r.__,c="button",u={title:__("Button","jetpack"),icon:i.Z,category:(0,l.Z)("design","layout"),keywords:[],supports:{html:!1,inserter:!1,align:["left","center","right"]},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],attributes:a.Z,edit:o.Z,save:s.Z}},41328:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(77012);function l(e){let{attributes:t,blockName:n,uniqueId:a}=e;const{backgroundColor:l,borderRadius:c,className:u,customBackgroundColor:p,customGradient:d,customTextColor:m,gradient:h,saveInPostContent:f,text:g,textColor:b,url:v,width:k}=t;if(!f)return null;const y=(0,i.getColorClassName)("background-color",l),E=s.DA?(0,i.__experimentalGetGradientClass)(h):void 0,w=(0,i.getColorClassName)("color",b),_=o()("wp-block-button","jetpack-submit-button",u,{[`wp-block-jetpack-${n}`]:n}),C=o()("wp-block-button__link",{"has-text-color":b||m,[w]:w,"has-background":l||h||p||d,[y]:y,[E]:E,"no-border-radius":0===c,"has-custom-width":!!k}),j={background:d||void 0,backgroundColor:y||d||h?void 0:p,color:w?void 0:m,borderRadius:c?c+"px":void 0,width:k};return(0,r.createElement)("div",{className:_},(0,r.createElement)(i.RichText.Content,{className:C,"data-id-attr":a||"placeholder",href:v,id:a,rel:"noopener noreferrer",role:"button",style:j,tagName:"a",target:"_blank",value:g}))}},31123:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(9818),o=n(69307);function i(e){let{attributes:t,clientId:n,setAttributes:i}=e;const{passthroughAttributes:s}=t,{attributesToSync:l}=(0,a.useSelect)((e=>{const{getBlockAttributes:a,getBlockRootClientId:o}=e("core/block-editor"),i=a(o(n))||{},l=(0,r.mapValues)(s,(e=>i[e]));return{attributesToSync:(0,r.pickBy)(l,((e,n)=>e!==t[n]))}}));(0,o.useEffect)((()=>{(0,r.isEmpty)(l)||i(l)}),[l,i])}},35932:function(e,t,n){"use strict";var r=n(68039);t.Z={backgroundColor:{type:"string",default:"ffffff",validator:r.Z},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:r.Z},textColor:{type:"string",default:"4D5055",validator:r.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")}}},16485:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(72566);const __=i.__,_x=i._x,l=e=>{let{onEditClick:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{onClick:()=>t(!0)},__("Edit","jetpack")))},c=e=>{const{attributes:{hideEventTypeDetails:t,url:n},defaultClassName:a,embedCode:i,parseEmbedCode:s,setAttributes:l,setEmbedCode:c}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{PanelBody:!0,title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:s,className:`${a}-embed-form-sidebar`},(0,r.createElement)("input",{type:"text",id:"embedCode",onChange:e=>c(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:i||"",className:"components-placeholder__input"}),(0,r.createElement)("div",null,(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)(o.ToggleControl,{label:__("Hide event type details","jetpack"),checked:t,onChange:()=>l({hideEventTypeDetails:!t})})),n&&(0,r.createElement)(o.Notice,{className:`${a}-color-notice`,isDismissible:!1},(0,r.createElement)(o.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},__("Follow these instructions to change the colors in this block.","jetpack"))))};t.ZP=e=>{const{attributes:t,clientId:n,isEditingUrl:o,setAttributes:i,setIsEditingUrl:u}=e,{style:p,url:d}=t,m=[{value:"inline",label:__("Inline","jetpack")},{value:"link",label:__("Link","jetpack")}];return(0,r.createElement)(r.Fragment,null,d&&!o&&(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(l,{onEditClick:u})),d&&(0,r.createElement)(s.Z,{clientId:n,styleOptions:m,onSelectStyle:i,activeStyle:p,attributes:t,viewportWidth:500}),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(c,e)))}},77017:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(68039);const __=o.__;t.Z={attributes:{backgroundColor:{type:"string",default:"ffffff",validator:i.Z},submitButtonText:{type:"string",default:__("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:i.Z},textColor:{type:"string",default:"4D5055",validator:i.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:i.Z},customTextButtonColor:{type:"string",validator:i.Z}},migrate:e=>{const{submitButtonText:t,submitButtonTextColor:n,submitButtonBackgroundColor:r,submitButtonClasses:o,backgroundButtonColor:i,textButtonColor:s,customBackgroundButtonColor:l,customTextButtonColor:c,...u}=e,p={text:(d=e).submitButtonText||__("Schedule time with me","jetpack"),textColor:d.submitButtonTextColor||d.textButtonColor,customTextColor:d.customTextButtonColor,backgroundColor:d.submitButtonBackgroundColor||d.backgroundButtonColor,customBackgroundColor:d.customBackgroundButtonColor,url:d.url};var d;return[u,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"calendly-widget-id",...p})]]},save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)}}},96537:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=(n(86841),n(92819)),s=n(5157),l=n(52175),c=n(55609),u=n(65736),p=n(4981),d=n(9818),m=n(59040),h=n(35932),f=n(14087),g=n(79042),b=n(79884),v=n(87072),k=n(16485);const __=u.__,_x=u._x;t.Z=(0,c.withNotices)((function(e){const{attributes:t,className:n,clientId:r,name:u,noticeOperations:y,noticeUI:E,setAttributes:w}=e,_=(0,p.getBlockDefaultClassName)(u),C=(0,f.S)(h.Z,t);(0,i.isEqual)(C,t)||w(C);const{backgroundColor:j,hideEventTypeDetails:S,primaryColor:x,textColor:T,style:N,url:P}=C,[A,I]=(0,o.useState)(P),[M,B]=(0,o.useState)(!1),[R,L]=(0,o.useState)(!1),[Z,F]=(0,o.useState)({}),D=()=>{y.removeAllNotices(),y.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack"))};(0,o.useEffect)((()=>{P&&b.lR!==P&&"link"!==N&&(0,v.Z)(P,L).catch((()=>{w({url:void 0}),D()}))}),[]);const O=e=>{if(!e)return void D();e.preventDefault();const t=(0,g.CC)(A);if(t){if(t.buttonAttributes&&"link"===t.style){const e=(0,d.select)("core/editor").getBlocksByClientId(r);e.length&&e[0].innerBlocks.forEach((e=>{(0,d.dispatch)("core/editor").updateBlockAttributes(e.clientId,t.buttonAttributes)})),F(t.buttonAttributes)}(0,v.Z)(t.url,L).then((()=>{const e=(0,f.S)(h.Z,t);w(e),B(!1),y.removeAllNotices()})).catch((()=>{w({url:void 0}),D()}))}else D()},z=(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(c.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack"))),U=(0,o.createElement)(c.Placeholder,{label:__("Calendly","jetpack"),instructions:__("Enter your Calendly web address or embed code below.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:m.Z}),notices:E},(0,o.createElement)("form",{onSubmit:O},(0,o.createElement)("input",{type:"text",id:"embedCode",onChange:e=>I(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:A||"",className:"components-placeholder__input"}),(0,o.createElement)("div",null,(0,o.createElement)(c.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,o.createElement)("div",{className:`${_}-learn-more`},(0,o.createElement)(c.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},__("Need help finding your embed code?","jetpack")))),$=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:`${_}-overlay`}),(0,o.createElement)("iframe",{src:(()=>{const e=s.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:S?1:0,background_color:j,primary_color:x,text_color:T});return`${P}?${e}`})(),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",title:"Calendly"})),V=(0,o.createElement)(l.InnerBlocks,{template:[[b.Ss.name,{...b.Ss.attributes,...Z,passthroughAttributes:{url:"url"}}]],templateLock:"all"});if(R)return z;let G=n;return P&&!M&&(G+=` calendly-style-${N}`),(0,o.createElement)("div",{className:G},(0,o.createElement)(k.ZP,a()({},e,{defaultClassName:_,embedCode:A,isEditingUrl:M,parseEmbedCode:O,setEmbedCode:I,setIsEditingUrl:B})),P&&!M?"inline"===N?$:V:U)}))},59040:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19,1h-2.3v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H8.6v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H4C1.8,1,0,2.8,0,5 v15c0,2.2,1.8,4,4,4h15c2.2,0,4-1.8,4-4V5C23,2.8,21.2,1,19,1z M21,20c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h2.6 v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3h6.1v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3H19c1.1,0,2,0.9,2,2V20z M13.9,14.8l1.4,1.4 c-0.9,0.9-2.1,1.3-3.5,1.3c-2.4,0-4.5-2.1-4.5-4.7s2.1-4.7,4.5-4.7c1.4,0,2.5,0.4,3.4,1.1L14,10.9c-0.5-0.4-1.2-0.6-2.1-0.6 c-1.2,0-2.5,1.1-2.5,2.7c0,1.6,1.3,2.7,2.5,2.7C12.7,15.5,13.4,15.3,13.9,14.8z"}))},79884:function(e,t,n){"use strict";n.d(t,{lR:function(){return d},Ss:function(){return m},u2:function(){return h},Xd:function(){return f}});var r=n(65736),a=n(4981),o=n(35932),i=n(77017),s=n(96537),l=n(59040),c=n(56610),u=n(79042),p=n(57535);const __=r.__,_x=r._x,d="https://calendly.com/wpcom/jetpack-block-example",m={name:"jetpack/button",attributes:{element:"a",text:__("Schedule time with me","jetpack"),uniqueId:"calendly-widget-id",url:d}},h="calendly",f={title:__("Calendly","jetpack"),description:__("Embed a calendar for customers to schedule appointments","jetpack"),icon:{src:l.Z,foreground:(0,p.m)()},category:"grow",keywords:[_x("calendar","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack"),_x("events","block search term","jetpack"),_x("dates","block search term","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:s.Z,save:c.Z,attributes:o.Z,example:{attributes:{hideEventTypeDetails:!1,style:"inline",url:d},innerBlocks:[m]},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&u.mL.test(e.textContent),transform:e=>{const t=(0,u.CC)(e.textContent);return(0,a.createBlock)("jetpack/calendly",t)}}]},deprecated:[i.Z]}},56610:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null))}},79042:function(e,t,n){"use strict";n.d(t,{mL:function(){return r},CC:function(){return a}});const r=/(^|\/\/)(calendly\.com[^"']*)/i,a=e=>{if(!e)return;const t=(e=>{const t=e.match(r);if(t)return"https://"+t[2]})(e);if(!t)return;const n=(e=>{const t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;const r=new URLSearchParams(n.search),a=r.get("background_color"),o=r.get("primary_color"),i=r.get("text_color"),s=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(s)&&(t.backgroundColor=a),o&&o.match(s)&&(t.primaryColor=o),i&&i.match(s)&&(t.textColor=i),t})(t),a=(e=>e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0)(e);if(a&&(n.style=a),"link"===a){n.buttonAttributes={};const t=(e=>{let t=e.match(/false;">([^<]+)<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/),t?t[1]:void 0)})(e);t&&(n.buttonAttributes.text=t);const r=(e=>{const t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]})(e);r&&(n.buttonAttributes.textColor=void 0,n.buttonAttributes.customTextColor=r);const a=(e=>{const t=e.match(/color: '([^']*?)'/);if(t)return t[1]})(e);a&&(n.buttonAttributes.backgroundColor=void 0,n.buttonAttributes.customBackgroundColor=a)}return n}},89534:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subject:{type:"string"},to:{type:"string"},customThankyou:{type:"string",default:""},customThankyouHeading:{type:"string",default:__("Message Sent","jetpack")},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},jetpackCRM:{type:"boolean",default:!0}}},60689:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__('The CRM Jetpack Form extension failed to activate. The error message was "<error />".',"jetpack"),{error:(0,r.createElement)("span",null,t)}))}},81316:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(60689);const __=s.__,c=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:s,crmData:c,setCRMData:u}=e;const p=((e,t,n,r)=>()=>{t(void 0),e(!0),o()({path:"/jetpack/v4/jetpack_crm",method:"POST",data:{extension:"jetpackforms"}}).then((e=>{if("success"!==e.code)throw new Error(e.code);const t=Object.assign({},n);t.jp_form_ext_enabled=!0,r(t)})).catch((e=>{t(e.message)})).finally((()=>{e(!1)}))})(n,s,c,u);return t?(0,r.createElement)(i.Spinner,null):a?(0,r.createElement)(l.Z,{error:a}):(0,r.createElement)(i.Button,{isSecondary:!0,onClick:p},__("Enable Jetpack Forms Extension","jetpack"))},u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("A site administrator must enable the CRM Jetpack Forms extension.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You can integrate this contact form with Jetpack CRM by enabling Jetpack CRM's Jetpack Forms extension.","jetpack"));t.Z=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s}=e;return i.can_activate_extension?(0,r.createElement)("div",null,(0,r.createElement)(p,null),(0,r.createElement)("br",null),(0,r.createElement)(c,{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s})):(0,r.createElement)(u,null)}},36080:function(e,t,n){"use strict";var r=n(69307),a=n(53377),o=n.n(a),i=n(55609),s=n(65736),l=n(81316);const __=s.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Jetpack CRM is installed but has an invalid version.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Zero BS CRM plugin is now Jetpack CRM. Update to the latest version to integrate your contact form with your CRM.","jetpack")),d=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},(0,r.createInterpolateElement)(__("You can save contacts from Jetpack contact forms in Jetpack CRM. Learn more at <a>jetpackcrm.com</a>","jetpack"),{a:(0,r.createElement)(i.ExternalLink,{href:"https://jetpackcrm.com"})})),m=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You already have the Jetpack CRM plugin installed, but it's not activated. Activate the Jetpack CRM plugin to save contacts from this contact form in your Jetpack CRM.","jetpack")),h=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:s}=e;const[c,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)(!1);return t.jp_form_ext_enabled?o().satisfies(o().coerce(t.crm_version),"3.0.19 - 4.0.0")?(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("Contacts from this form will be stored in Jetpack CRM.","jetpack")):(0,r.createElement)(i.ToggleControl,{className:"jetpack-contact-form__crm_toggle",label:__("Jetpack CRM","jetpack"),checked:a,onChange:e=>s({jetpackCRM:e}),help:__("Store contact form submissions in your CRM.","jetpack")}):(0,r.createElement)(l.Z,{isActivatingExt:c,setIsActivatingExt:u,extActivationError:p,setExtActivationError:d,crmData:t,setCRMData:n})};t.Z=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}=e;const s=o().coerce(t.crm_version);if(t.crm_installed&&!s)return(0,r.createElement)(u,null);if(t.crm_installed&&o().lt(s,"3.0.19"))return(0,r.createElement)(p,null);let l=c.NOT_INSTALLED;return t.crm_active?l=c.ACTIVE:t.crm_installed&&(l=c.INSTALLED),(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===l&&(0,r.createElement)(h,{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}),c.INSTALLED===l&&(0,r.createElement)(m,null),c.NOT_INSTALLED===l&&(0,r.createElement)(d,null))}},6361:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(36080);const __=s.__,c=e=>{let{isFetchingCRMData:t,hasCRMDataError:n,crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c}=e;return t?(0,r.createElement)(i.Spinner,null):n?null:(0,r.createElement)(l.Z,{crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c})};t.Z=e=>{let{jetpackCRM:t,setAttributes:n}=e;const[a,s]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)();return(0,r.useEffect)((()=>{o()({path:"/jetpack/v4/jetpack_crm"}).then((e=>{if(e.error)throw e.message;u(!1),d(e)})).catch((()=>u(!0))).finally((()=>s(!1)))}),[]),(0,r.createElement)(i.PanelBody,{title:__("CRM Integration","jetpack"),initialOpen:!1},(0,r.createElement)(i.BaseControl,null,(0,r.createElement)(c,{isFetchingCRMData:a,hasCRMDataError:l,crmData:p,setCRMData:d,jetpackCRM:t,setAttributes:n})))}},69802:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(8523);const __=a.__;t.Z=(0,s.withInstanceId)((function(e){const{id:t,instanceId:n,required:a,label:s,setAttributes:u,width:p,defaultValue:d}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-checkbox-${n}`,className:"jetpack-field jetpack-field-checkbox",label:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:d}),(0,r.createElement)(l.Z,{required:a,label:s,setAttributes:u}),(0,r.createElement)(c.Z,{id:t,required:a,width:p,setAttributes:u}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Checkbox Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Checked by default","jetpack"),checked:d,onChange:e=>u({defaultValue:e?"true":""})}))))})}))},57324:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(84803),u=n(10745);const __=a.__;t.Z=(0,s.withInstanceId)((e=>{var t;let{id:n,instanceId:s,width:p,consentType:d,implicitConsentMessage:m,explicitConsentMessage:h,setAttributes:f}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-consent-${s}`,className:"jetpack-field jetpack-field-consent",label:(0,r.createElement)(r.Fragment,null,"explicit"===d&&(0,r.createElement)("input",{className:"jetpack-field-consent__checkbox",type:"checkbox",disabled:!0}),(0,r.createElement)(l.Z,{required:!1,label:null!==(t={implicit:m,explicit:h}[d])&&void 0!==t?t:"",setAttributes:f,labelFieldName:`${d}ConsentMessage`,placeholder:(0,a.sprintf)(
+/* translators: placeholder is a type of consent: implicit or explicit */
+__("Add %s consent message…","jetpack"),d)}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(c.Z,{setAttributes:f,width:p}))),(0,r.createElement)(i.InspectorAdvancedControls,null,(0,r.createElement)(u.Z,{setAttributes:f,id:n})),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Consent Settings","jetpack")},(0,r.createElement)(o.BaseControl,null,(0,r.createElement)(o.SelectControl,{label:__("Permission to email","jetpack"),value:d,options:[{label:__("Mention that you can email","jetpack"),value:"implicit"},{label:__("Add a privacy checkbox","jetpack"),value:"explicit"}],onChange:e=>f({consentType:e})})))))})}))},8523:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(41632),l=n(84803),c=n(10745);const __=a.__;t.Z=e=>{let{setAttributes:t,width:n,id:a,required:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarButton,{title:__("Required","jetpack"),icon:(0,s.Z)((0,r.createElement)(i.Path,{d:"M8.23118 8L16 16M8 16L15.7688 8 M6.5054 11.893L17.6567 11.9415M12.0585 17.6563L12 6.5",stroke:"currentColor"})),onClick:()=>{t({required:!u})},className:u?"is-pressed":void 0}))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Field is required","jetpack"),className:"jetpack-field-label__required",checked:u,onChange:e=>t({required:e}),help:__("Does this field have to be completed for the form to be submitted?","jetpack")}),(0,r.createElement)(l.Z,{setAttributes:t,width:n}))),(0,r.createElement)(o.InspectorAdvancedControls,null,(0,r.createElement)(c.Z,{setAttributes:t,id:a})))}},10745:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,id:n}=e;return(0,r.createElement)(o.TextControl,{label:__("Unique CSS ID","jetpack"),value:n,onChange:e=>t({id:e}),help:__("A unique ID that can be used in CSS or as an anchor.","jetpack")})}},80500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175);const __=a.__;t.Z=e=>{let{setAttributes:t,label:n,labelFieldName:a,placeholder:i,resetFocus:s,required:l}=e;return(0,r.createElement)("div",{className:"jetpack-field-label"},(0,r.createElement)(o.RichText,{tagName:"label",value:n,className:"jetpack-field-label__input",onChange:e=>{s&&s(),t(a?{[a]:e}:{label:e})},placeholder:null!=i?i:__("Add label…","jetpack"),withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic"]}),l&&(0,r.createElement)("span",{className:"required"},__("(required)","jetpack")))}},56764:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(80500),l=n(29110),c=n(8523);const __=a.__;t.Z=(0,i.withInstanceId)((function(e){const{id:t,type:n,instanceId:a,required:i,label:u,setAttributes:p,isSelected:d,width:m,options:h}=e,[f,g]=(0,r.useState)(null),b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=h.slice(0);null===t?(n.splice(e,1),e>0&&g(e-1)):(n.splice(e,1,t),g(e)),p({options:n})},v=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=h.slice(0);let n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),g(n),p({options:t})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{id:`jetpack-field-multiple-${a}`,className:"jetpack-field jetpack-field-multiple",label:(0,r.createElement)(s.Z,{required:i,label:u,setAttributes:p,isSelected:d,resetFocus:()=>g(null)})},(0,r.createElement)("ol",{className:"jetpack-field-multiple__list",id:`jetpack-field-multiple-${a}`},h.map(((e,t)=>(0,r.createElement)(l.Z,{type:n,key:t,option:e,index:t,onChangeOption:b,onAddOption:v,isInFocus:t===f&&d,isSelected:d})))),d&&(0,r.createElement)(o.Button,{className:"jetpack-field-multiple__add-option",icon:"insert",label:__("Insert option","jetpack"),onClick:v},__("Add option","jetpack"))),(0,r.createElement)(c.Z,{id:t,required:i,setAttributes:p,width:m}))}))},7640:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(80500),s=n(8523);const __=a.__;function l(e){const{id:t,required:n,label:a,setAttributes:l,placeholder:c,width:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"jetpack-field"},(0,r.createElement)(i.Z,{required:n,label:a,setAttributes:l}),(0,r.createElement)(o.Disabled,null,(0,r.createElement)(o.TextareaControl,{placeholder:c,value:c,onChange:e=>l({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,r.createElement)(s.Z,{id:t,required:n,setAttributes:l,width:u}))}},84803:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,width:n}=e;return(0,r.createElement)(o.BaseControl,{label:__("Field Width","jetpack"),help:__("Adjust the width of the field to include multiple fields on a single line.","jetpack"),className:"jetpack-field-label__width"},(0,r.createElement)(o.ButtonGroup,{"aria-label":__("Field Width","jetpack")},[25,50,75,100].map((e=>(0,r.createElement)(o.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>t({width:e})},e,"%")))))}},36755:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(55609),c=n(92694),u=n(80500),p=n(8523);const __=i.__;function d(e){const{id:t,type:n,required:r,label:a,setAttributes:i,placeholder:s,width:c}=e;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"jetpack-field"},(0,o.createElement)(u.Z,{required:r,label:a,setAttributes:i}),(0,o.createElement)(l.Disabled,null,(0,o.createElement)(l.TextControl,{type:n,placeholder:s,value:s,onChange:e=>i({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,o.createElement)(p.Z,{id:t,required:r,width:c,setAttributes:i}))}const m=(0,s.createHigherOrderComponent)((e=>t=>{if(t.name.indexOf("jetpack/field")>-1){const n=t.attributes.width?"jetpack-field__width-"+t.attributes.width:"";return(0,o.createElement)(e,a()({},t,{className:n}))}return(0,o.createElement)(e,t)}),"withCustomClassName");(0,c.addFilter)("editor.BlockListBlock","jetpack/contact-form",m)},32605:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(9818),s=n(4981);const __=o.__,l=()=>{const{insertConsentBlock:e}=(()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]),{insertBlock:t}=(0,i.useDispatch)("core/block-editor");return{insertConsentBlock:(0,r.useCallback)((async()=>{var n;let r=(null!==(n=e.innerBlocks)&&void 0!==n?n:[]).findIndex((e=>{let{name:t}=e;return"jetpack/button"===t}));var a;-1===r&&(r=(null!==(a=e.innerBlocks)&&void 0!==a?a:[]).length);const o=await(0,s.createBlock)("jetpack/field-consent");await t(o,r,e.clientId,!1)}),[t,e.clientId,e.innerBlocks])}})();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("You’re already collecting email contacts. Why not make sure you have permission to email them too?","jetpack")),(0,r.createElement)(a.Button,{isSecondary:!0,onClick:e,style:{marginBottom:"1em"}},__("Add email permission request","jetpack")),(0,r.createElement)("br",null))};t.Z=()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]);return(0,r.useMemo)((()=>(e=>{const t=e.some((e=>{let{name:t}=e;return"jetpack/field-email"===t})),n=e.some((e=>{let{name:t}=e;return"jetpack/field-consent"===t}));return!!t&&!n})(e.innerBlocks)),[e.innerBlocks])?(0,r.createElement)(l,null):null}},95363:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=(n(65736),n(92819)),i=n(99230),s=n(56994),l=n(58505);const c="creative-mail-by-constant-contact/creative-mail-plugin.php",u=e=>{let{pluginState:t,setPluginState:n}=e;const[a,o]=(0,r.useState)(),[i,c]=(0,r.useState)(!1),u=((e,t,n)=>(0,r.useCallback)(((r,a)=>{e(void 0),t(!0),r(a).then((()=>{n(l.Q.ACTIVE)})).catch((t=>{e(t)})).finally((()=>t(!1)))}),[t,e,n]))(o,c,n);return a?(0,r.createElement)(s.Z,{error:a}):(0,r.createElement)(l.Z,{pluginState:t,onCreativeMailPluginClick:u,isInstalling:i})},p=e=>{let{isFetchingPlugins:t,hasError:n,pluginState:o,setPluginState:i}=e;return t?(0,r.createElement)(a.Spinner,null):n?null:(0,r.createElement)(u,{pluginState:o,setPluginState:i})};t.Z=()=>{const[e,t]=(0,r.useState)(!0),[n,a]=(0,r.useState)(!1),[s,u]=(0,r.useState)(l.Q.NOT_INSTALLED);return(0,r.useEffect)((()=>{(0,i.uM)().then((e=>{a(!1),(0,o.get)(e,c)&&((0,o.get)(e,[c,"active"])?u(l.Q.ACTIVE):u(l.Q.INSTALLED))})).catch((()=>a(!0))).finally((()=>t(!1)))}),[u,t,a]),(0,r.createElement)(p,{isFetchingPlugins:e,hasError:n,pluginState:s,setPluginState:u})}},56994:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__("The plugin failed to install. <b /> Please check the <a>plugin information</a> for detailed requirements.","jetpack"),{a:(0,r.createElement)(a.ExternalLink,{href:"https://wordpress.org/plugins/creative-mail-by-constant-contact"}),b:(0,r.createElement)("span",null,t)}))}},58505:function(e,t,n){"use strict";n.d(t,{Q:function(){return c}});var r=n(69307),a=n(55609),o=n(65736),i=n(99230),s=n(47583),l=n(92819);const __=o.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=e=>{let{isActivating:t}=e;const n=t?__("Activating…","jetpack"):__("Installing…","jetpack",0);return(0,r.createElement)(a.Button,{isSecondary:!0,icon:(0,r.createElement)(a.Icon,{style:{animation:"rotation 2s infinite linear"},icon:"update"}),disabled:!0,"aria-label":n},n)},p=e=>{let{installAndActivateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",{style:{color:"rgba(38, 46, 57, 0.7)"}},__("To start sending email campaigns, install the Creative Mail plugin for WordPress.","jetpack"),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,null),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Install Creative Mail plugin","jetpack"))))},d=e=>{let{activateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("To start sending email campaigns, activate the Creative Mail plugin for WordPress.","jetpack")),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,{isActivating:!0}),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Activate Creative Mail Plugin","jetpack")))},m=()=>(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("You’re all setup for email marketing with Creative Mail.","jetpack"),(0,r.createElement)("br",null),(0,r.createElement)(a.ExternalLink,{href:`${(0,l.get)((0,s.Z)(),"adminUrl",!1)}admin.php?page=creativemail`},__("Open Creative Mail settings","jetpack"))));t.Z=e=>{let{pluginState:t,onCreativeMailPluginClick:n,isInstalling:a}=e;return(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===t&&(0,r.createElement)(m,null),c.INSTALLED===t&&(0,r.createElement)(d,{activateCreativeMailPlugin:()=>n(i.bu,"creative-mail-by-constant-contact/creative-mail-plugin"),isInstalling:a}),c.NOT_INSTALLED===t&&(0,r.createElement)(p,{installAndActivateCreativeMailPlugin:()=>n(i.yX,"creative-mail-by-constant-contact"),isInstalling:a}))}},31186:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(32605),s=n(95363);const __=o.__;t.Z=()=>(0,r.createElement)(a.PanelBody,{title:__("Newsletter Integration","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,null,(0,r.createElement)(i.Z,null),(0,r.createElement)(s.Z,null)))},29110:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;class i extends r.Component{constructor(){super(...arguments),this.onChangeOption=this.onChangeOption.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onDeleteOption=this.onDeleteOption.bind(this),this.textInput=(0,r.createRef)()}componentDidMount(){this.props.isInFocus&&this.textInput.current.focus()}componentDidUpdate(){this.props.isInFocus&&this.textInput.current.focus()}onChangeOption(e){this.props.onChangeOption(this.props.index,e.target.value)}onKeyPress(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}onDeleteOption(){this.props.onChangeOption(this.props.index)}render(){const{isSelected:e,option:t,type:n}=this.props;return(0,r.createElement)("li",{className:"jetpack-option"},n&&"select"!==n&&(0,r.createElement)("input",{className:"jetpack-option__type",type:n,disabled:!0}),(0,r.createElement)("input",{type:"text",className:"jetpack-option__input",value:t,placeholder:__("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),e&&(0,r.createElement)(o.Button,{className:"jetpack-option__remove",icon:"trash",label:__("Remove option","jetpack"),onClick:this.onDeleteOption}))}}t.Z=i},89998:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(4981),l=n(89534);const __=o.__,c=["submit_button_text","has_form_settings_set","submitButtonText","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor","submitButtonClasses","hasFormSettingsSet"];t.Z=[{attributes:{submit_button_text:{type:"string",default:__("Submit","jetpack")},has_form_settings_set:{type:"string",default:null},submitButtonText:{type:"string",default:__("Submit","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},...l.Z},migrate:(e,t)=>{const n=(0,a.omit)(e,c),r={text:e.submitButtonText||e.submit_button_text||__("Submit","jetpack"),backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,customBackgroundColor:e.customBackgroundButtonColor,customTextColor:e.customTextButtonColor};return[n,t.concat((0,s.createBlock)("jetpack/button",{element:"button",...r}))]},isEligible:e=>!(!e.has_form_settings_set&&!e.hasFormSettingsSet),save:()=>(0,r.createElement)(i.InnerBlocks.Content,null)}]},31970:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(89105),i=n.n(o),s=n(89453),l=n(65736),c=n(94333),u=n(4981),p=n(9818),d=n(39630),m=n(52175),h=n(55609),f=n(22985),g=n(12289),b=n(6361),v=n(31186),k=n(58014);const __=l.__,y=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"];t.Z=(0,c.compose)([(0,p.withSelect)(((e,t)=>{const{getBlockType:n,getBlockVariations:r,getDefaultBlockVariation:o}=e("core/blocks"),{getBlocks:i}=e("core/block-editor"),{getEditedPostAttribute:s}=e("core/editor"),{getSite:l,getUser:c}=e("core"),u=i(t.clientId),p=s("author"),d=p&&c(p)&&c(p).email,m=s("title");return{blockType:n&&n(t.name),defaultVariation:o&&o(t.name,"block"),variations:r&&r(t.name,"block"),innerBlocks:u,hasInnerBlocks:u.length>0,siteTitle:(0,a.get)(l&&l(),["title"]),postTitle:m,postAuthorEmail:d}})),(0,p.withDispatch)((e=>{const{replaceInnerBlocks:t,selectBlock:n}=e("core/block-editor");return{replaceInnerBlocks:t,selectBlock:n}})),c.withInstanceId])((function(e){let{attributes:t,setAttributes:n,siteTitle:o,postTitle:c,postAuthorEmail:p,hasInnerBlocks:E,replaceInnerBlocks:w,selectBlock:_,clientId:C,instanceId:j,className:S,blockType:x,variations:T,defaultVariation:N}=e;const{to:P,subject:A,customThankyou:I,customThankyouHeading:M,customThankyouMessage:B,customThankyouRedirect:R,jetpackCRM:L}=t,[Z,F]=(0,r.useState)(!1),D=i()(S,"jetpack-contact-form"),O=e=>(0,a.map)(e,(e=>{let[t,n,r=[]]=e;return(0,u.createBlock)(t,n,O(r))})),z=e=>{e.attributes&&n(e.attributes),e.innerBlocks&&w(C,O(e.innerBlocks)),_(C)};(0,r.useEffect)((()=>{E||u.registerBlockVariation||z(g.Z[0])})),(0,r.useEffect)((()=>{if(void 0===P&&p&&n({to:p}),void 0===A&&void 0!==o&&void 0!==c){n({subject:"["+o+"] "+c})}}),[P,p,A,o,c,n]);const U=e=>0!==(e=e.trim()).length&&(!s.validate(e)&&{email:e}),$=e=>{if(0===e.target.value.length)return F(!1),void n({to:p});const t=e.target.value.split(",").map(U).filter(Boolean);t&&t.length&&F(t)},V=e=>{F(!1),n({to:e.trim()})},G=()=>{const e=void 0!==P?P:"",t=void 0!==A?A:"";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(h.TextControl,{"aria-describedby":`contact-form-${j}-email-${Z&&Z.length>0?"error":"help"}`,label:__("Email address to send to","jetpack"),placeholder:__("name@example.com","jetpack"),onKeyDown:e=>{"Enter"===event.key&&(e.preventDefault(),e.stopPropagation())},value:e,onBlur:$,onChange:V,help:__("You can enter multiple email addresses separated by commas.","jetpack")}),(0,r.createElement)(f.Z,{isError:!0,id:`contact-form-${j}-email-error`},(()=>{if(Z){if(1===Z.length)return Z[0]&&Z[0].email?(0,l.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),Z[0].email):Z[0];if(2===Z.length)return(0,l.sprintf)(
+/* translators: placeholders are email addresses. */
+__("%1$s and %2$s are not a valid email address.","jetpack"),Z[0].email,Z[1].email);const e=Z.map((e=>e.email));return(0,l.sprintf)(
+/* translators: placeholder is a list of email addresses. */
+__("%s are not a valid email address.","jetpack"),e.join(", "))}return null})()),(0,r.createElement)(h.TextControl,{label:__("Email subject line","jetpack"),value:t,placeholder:__("Enter a subject","jetpack"),onChange:e=>n({subject:e}),help:__("Choose a subject line that you recognize as an email from your website.","jetpack")}),(0,r.createElement)(h.SelectControl,{label:__("On Submission","jetpack"),value:I,options:[{label:__("Show a summary of submitted fields","jetpack"),value:""},{label:__("Show a custom text message","jetpack"),value:"message"},{label:__("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:e=>n({customThankyou:e})}),"redirect"!==I&&(0,r.createElement)(h.TextControl,{label:__("Message Heading","jetpack"),value:M,placeholder:__("Message Sent","jetpack"),onChange:e=>n({customThankyouHeading:e})}),"message"===I&&(0,r.createElement)(h.TextareaControl,{label:__("Message Text","jetpack"),value:B,placeholder:__("Thank you for your submission!","jetpack"),onChange:e=>n({customThankyouMessage:e})}),"redirect"===I&&(0,r.createElement)(h.BaseControl,{label:__("Redirect Address","jetpack"),id:`contact-form-${j}-thankyou-url`},(0,r.createElement)(m.URLInput,{id:`contact-form-${j}-thankyou-url`,value:R,className:"jetpack-contact-form__thankyou-redirect-url",onChange:e=>n({customThankyouRedirect:e})})))};return!E&&u.registerBlockVariation?(0,r.createElement)("div",{className:D},(0,r.createElement)(m.__experimentalBlockVariationPicker,{icon:(0,a.get)(x,["icon","src"]),label:(0,a.get)(x,["title"]),instructions:__("Please select which type of form you'd like to add, or create your own using the skip option.","jetpack"),variations:T,allowSkip:!0,onSelect:function(){z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:N)}})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m.BlockControls,null,(0,r.createElement)(h.ToolbarGroup,null,(0,r.createElement)(h.ToolbarItem,null,(()=>(0,r.createElement)(h.Dropdown,{position:"bottom right",className:"jetpack-contact-form-settings-selector",contentClassName:"jetpack-contact-form__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(h.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("Edit Form Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==d.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,r.createElement)(h.Icon,{icon:"edit"})}))(t,n)},renderContent:()=>G()}))))),(0,r.createElement)(m.InspectorControls,null,(0,r.createElement)(h.PanelBody,{title:__("Form Settings","jetpack")},G()),!(0,k.Wp)()&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(b.Z,{jetpackCRM:L,setAttributes:n}),(0,r.createElement)(v.Z,null))),(0,r.createElement)("div",{className:D},(0,r.createElement)(m.InnerBlocks,{allowedBlocks:y,templateInsertUpdatesSelection:!1})))}))},75494:function(e,t,n){"use strict";n.d(t,{u2:function(){return y},Xd:function(){return w},Nk:function(){return x}});var r=n(69307),a=n(65736),o=n(4981),i=n(55609),s=n(52175),l=n(31970),c=n(89534),u=n(12289),p=n(89998),d=n(54789),m=n(36755),h=n(7640),f=n(69802),g=n(56764),b=n(41632),v=n(57535),k=n(57324);const __=a.__,_x=a._x,y="contact-form",E=(0,b.Z)((0,r.createElement)(i.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),w={title:__("Form","jetpack"),description:__("A simple way to get feedback from folks visiting your site.","jetpack"),icon:{src:E,foreground:(0,v.m)()},keywords:[_x("email","block search term","jetpack"),_x("feedback","block search term","jetpack"),_x("contact form","block search term","jetpack")],supports:{html:!1},attributes:c.Z,edit:l.Z,save:()=>(0,r.createElement)(s.InnerBlocks.Content,null),variations:u.Z,category:"grow",transforms:d.Z,deprecated:p.Z},_={category:"grow",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""},width:{type:"number",default:100}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-text",e)},{type:"block",blocks:["jetpack/field-name"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-name",e)},{type:"block",blocks:["jetpack/field-email"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-email",e)},{type:"block",blocks:["jetpack/field-url"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-url",e)},{type:"block",blocks:["jetpack/field-date"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-date",e)},{type:"block",blocks:["jetpack/field-telephone"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-telephone",e)},{type:"block",blocks:["jetpack/field-textarea"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-textarea",e)},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-checkbox-multiple",e)},{type:"block",blocks:["jetpack/field-radio"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-radio",e)},{type:"block",blocks:["jetpack/field-select"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-select",e)},{type:"block",blocks:["jetpack/field-consent"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-consent",e)}]},save:()=>null,example:{}},C=e=>{let{attributes:t,name:n}=e;return null===t.label?(0,o.getBlockType)(n).title:t.label},j=e=>t=>(0,r.createElement)(m.Z,{type:e,label:C(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id,width:t.attributes.width}),S=e=>t=>(0,r.createElement)(g.Z,{label:C(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id,width:t.attributes.width}),x=[{name:"field-text",settings:{..._,title:__("Text","jetpack"),description:__("When you need just a small amount of text, add a text input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:j("text")}},{name:"field-name",settings:{..._,title:__("Name","jetpack"),description:__("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:j("text")}},{name:"field-email",settings:{..._,title:__("Email","jetpack"),keywords:[__("e-mail","jetpack"),__("mail","jetpack"),"email"],description:__("Want to reply to folks? Add an email address input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:j("email")}},{name:"field-url",settings:{..._,title:__("Website","jetpack"),keywords:["url",__("internet page","jetpack"),"link"],description:__("Add an address input for a website.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:j("url")}},{name:"field-date",settings:{..._,title:__("Date Picker","jetpack"),keywords:[__("Calendar","jetpack"),_x("day month year","block search term","jetpack")],description:__("The best way to set a date. Add a date picker.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:j("text")}},{name:"field-telephone",settings:{..._,title:__("Phone Number","jetpack"),keywords:[__("Phone","jetpack"),__("Cellular phone","jetpack"),__("Mobile","jetpack")],description:__("Add a phone number input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:j("tel")}},{name:"field-textarea",settings:{..._,title:__("Message","jetpack"),keywords:[__("Textarea","jetpack"),"textarea",__("Multiline text","jetpack")],description:__("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:e=>(0,r.createElement)(h.Z,{label:C(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id,width:e.attributes.width})}},{name:"field-checkbox",settings:{..._,title:__("Checkbox","jetpack"),keywords:[__("Confirm","jetpack"),__("Accept","jetpack")],description:__("Add a single checkbox.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:e=>(0,r.createElement)(f.Z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id,width:e.attributes.width}),attributes:{..._.attributes,label:{type:"string",default:""}}}},{name:"field-consent",settings:{..._,title:__("Consent","jetpack"),keywords:[__("Consent","jetpack")],description:__("Ask for consent","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"m81 370h142v40h-142zm0-39h142v-40h-142zm0-79h245v-40h-245zm378 260h-40c0-40.253906-32.746094-73-73-73s-73 32.746094-73 73h-40c0-42.085938 23.128906-78.867188 57.34375-98.3125-11.40625-13.023438-18.34375-30.054688-18.34375-48.6875 0-40.804688 33.195312-74 74-74s74 33.195312 74 74c0 18.632812-6.9375 35.664062-18.34375 48.6875 34.214844 19.445312 57.34375 56.226562 57.34375 98.3125zm-113-113c18.746094 0 34-15.253906 34-34s-15.253906-34-34-34-34 15.253906-34 34 15.253906 34 34 34zm-286 73h138.316406c-3.460937 12.757812-5.316406 26.164062-5.316406 40h-133c-33.085938 0-60-26.914062-60-60v-392c0-33.085938 26.914062-60 60-60h203.757812l142.132813 142.855469v125.210937c-12.042969-7.476562-25.453125-12.765625-39.890625-15.324218v-81.632813h-71.109375c-33.085937 0-60-26.914063-60-60v-71.109375h-174.890625c-11.027344 0-20 8.972656-20 20v392c0 11.027344 8.972656 20 20 20zm234.890625-340.890625h42.972656l-62.972656-63.234375v43.234375c0 11.03125 8.96875 20 20 20zm0 0"}),24,25,"-26 0 512 512"),attributes:{..._.attributes,label:{type:"string",default:__("Consent","jetpack")},consentType:{type:"string",default:"implicit"},implicitConsentMessage:{type:"string",default:__("By submitting your information, you're giving us permission to email you. You may unsubscribe at any time.","jetpack")},explicitConsentMessage:{type:"string",default:__("Can we send you an email from time to time?","jetpack")}},edit:e=>{let{attributes:t,isSelected:n,setAttributes:a}=e;const{id:o,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c}=t;return(0,r.createElement)(k.Z,{id:o,isSelected:n,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c,setAttributes:a})}}},{name:"field-checkbox-multiple",settings:{..._,title:__("Checkbox Group","jetpack"),keywords:[__("Choose Multiple","jetpack"),__("Option","jetpack")],description:__("People love options. Add several checkbox items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:S("checkbox"),attributes:{..._.attributes,label:{type:"string",default:"Choose several"}}}},{name:"field-radio",settings:{..._,title:__("Radio","jetpack"),keywords:[__("Choose","jetpack"),__("Select","jetpack"),__("Option","jetpack")],description:__("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,r.createElement)(i.Circle,{cx:"12",cy:"12",r:"5"}))),edit:S("radio"),attributes:{..._.attributes,label:{type:"string",default:"Choose one"}}}},{name:"field-select",settings:{..._,title:__("Select","jetpack"),keywords:[__("Choose","jetpack"),__("Dropdown","jetpack"),__("Option","jetpack")],description:__("Compact, but powerful. Add a select box with several items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:S("select"),attributes:{..._.attributes,label:{type:"string",default:"Select one"}}}}]},54789:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=(e,t,n)=>{const r=n.match(new RegExp(`\\[${e}[^\\]]* ${t}="([^"]*)"`,"im"));if(r&&r.length)return r[1];const a=n.match(new RegExp(`\\[${e}[^\\]]* ${t}='([^']*)'`,"im"));if(a&&a.length)return a[1];const o=n.match(new RegExp(`\\[${e}[^\\]]* ${t}=([^\\s]*)\\s`,"im"));return!(!o||!o.length)&&o[1]},s={root:{},innerBlocks:[]};t.Z={from:[{type:"raw",priority:1,isMatch:e=>!("P"!==e.nodeName||!(/\[contact-form(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[contact-field(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[\/contact-form]/g.test(e.textContent))),transform:e=>{const t=e.textContent.replace("<br>","");if(t.includes("[contact-form")&&(s.root={},s.innerBlocks=[],s.root=(e=>{const t={to:i("contact-form","to",e),subject:i("contact-form","subject",e),submitButtonText:i("contact-form","submit_button_text",e)};return{blockName:"jetpack/contact-form",attrs:(0,r.pickBy)(t,r.identity)}})(t)),t.includes("[contact-field")){const e=t.match(/(\[contact-field[\s\S]*?\/?])/g);e&&e.length>0&&e.forEach((e=>{s.innerBlocks.push((e=>{const t={label:i("contact-field","label",e),placeholder:i("contact-field","placeholder",e),required:i("contact-field","required",e),options:i("contact-field","options",e)},n=(e=>{const t={text:"jetpack/field-text",url:"jetpack/field-text",textarea:"jetpack/field-textarea",radio:"jetpack/field-radio",checkbox:"jetpack/field-checkbox","checkbox-multiple":"jetpack/field-checkbox-multiple",select:"jetpack/field-select",email:"jetpack/field-email",name:"jetpack/field-name",default:"jetpack/field-text"};return t[e]?t[e]:t.default})(i("contact-field","type",e));return t.options&&(t.options=t.options.split(",")),(0,a.createBlock)(n,(0,r.pickBy)(t,r.identity))})(e))}))}if(t.includes("[/contact-form]")){s.innerBlocks.push((0,a.createBlock)("jetpack/button",{element:"button",text:s.root.attrs.submitButtonText||__("Contact Us","jetpack")}));return(0,a.createBlock)(s.root.blockName,s.root.attrs,s.innerBlocks)}return!1}}]}},12289:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(55609),s=n(58014),l=n(41632),c=n(57535);const __=o.__,u=(0,a.compact)([{name:"contact-form",title:__("Contact Form","jetpack"),description:__("Add a contact form to your page.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M21.99 8c0-.72-.37-1.35-.94-1.7l-8.04-4.71c-.62-.37-1.4-.37-2.02 0L2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-11.05 4.34l-7.2-4.5 7.25-4.25c.62-.37 1.4-.37 2.02 0l7.25 4.25-7.2 4.5c-.65.4-1.47.4-2.12 0z"}),48,48,"-4 -4 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-textarea",{}],["jetpack/button",{text:__("Contact Us","jetpack"),element:"button"}]]},!(0,s.Wp)()&&{name:"newsletter-form",title:__("Newsletter Sign-up","jetpack"),description:__("A simple way to collect information from folks visiting your site.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M37.9999 7.59998C49.3999 7.59998 68.3999 26.6 68.3999 26.6V68.4H7.59985V26.6C7.59985 26.6 26.5999 7.59998 37.9999 7.59998ZM64.5999 63.536L50.4259 52.44L64.5999 41.8L62.9659 40.394L54.3779 45.334L55.2899 28.956L21.9639 26.98L20.2159 44.232L12.6539 40.622L11.3999 41.8L25.5739 52.44L12.5019 63.27L14.0219 64.904L37.9999 49.4L62.8139 65.17L64.5999 63.536Z"}),48,48,"-6 -6 92 92"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-consent",{}],["jetpack/button",{text:__("Subscribe","jetpack"),element:"button"}]]},{name:"rsvp-form",title:__("RSVP Form","jetpack"),description:__("Add an RSVP form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M10 9V7.41c0-.89-1.08-1.34-1.71-.71L3.7 11.29c-.39.39-.39 1.02 0 1.41l4.59 4.59c.63.63 1.71.19 1.71-.7V14.9c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Attending?","jetpack"),required:!0,options:[__("Yes","jetpack"),__("No","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send RSVP","jetpack"),element:"button"}]],attributes:{subject:__("A new RSVP from your website","jetpack")}},{name:"registration-form",title:__("Registration Form","jetpack"),description:__("Add a Registration form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.34 15.02c.39.39 1.02.39 1.41 0l6.36-6.36c.39-.39.39-1.02 0-1.41L14.16 2.3c-.38-.4-1.01-.4-1.4-.01L6.39 8.66c-.39.39-.39 1.02 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95zm6.95 11l-2.12-2.12c-.18-.18-.44-.29-.7-.29h-.27l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2h-.42c-.27 0-.52.11-.71.29l-2.12 2.12c-.37.38-.58.89-.58 1.42V20c0 1.1.9 2 2 2h14c1.1 0 2-.89 2-2v-3.17c0-.53-.21-1.04-.59-1.42z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{label:__("Phone Number","jetpack")}],["jetpack/field-select",{label:__("How did you hear about us?","jetpack"),options:[__("Search Engine","jetpack"),__("Social Media","jetpack"),__("TV","jetpack"),__("Radio","jetpack"),__("Friend or Family","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send","jetpack"),element:"button"}]],attributes:{subject:__("A new registration from your website","jetpack")}},{name:"appointment-form",title:__("Appointment Form","jetpack"),description:__("Add an Appointment booking form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V8c0-.55-.45-1-1-1s-1 .45-1 1v2H2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H6zm9 4c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{required:!0}],["jetpack/field-date",{label:__("Date","jetpack"),required:!0}],["jetpack/field-radio",{label:__("Time","jetpack"),required:!0,options:[__("Morning","jetpack"),__("Afternoon","jetpack")]}],["jetpack/field-textarea",{label:__("Notes","jetpack")}],["jetpack/button",{text:__("Book Appointment","jetpack"),element:"button"}]],attributes:{subject:__("A new appointment booked from your website","jetpack")}},{name:"feedback-form",title:__("Feedback Form","jetpack"),description:__("Add a Feedback form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.03 0 3.8-1.11 4.75-2.75.19-.33-.05-.75-.44-.75H7.69c-.38 0-.63.42-.44.75.95 1.64 2.72 2.75 4.75 2.75z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Please rate our website","jetpack"),required:!0,options:[__("1 - Very Bad","jetpack"),__("2 - Poor","jetpack"),__("3 - Average","jetpack"),__("4 - Good","jetpack"),__("5 - Excellent","jetpack")]}],["jetpack/field-textarea",{label:__("How could we improve?","jetpack")}],["jetpack/button",{text:__("Send Feedback","jetpack"),element:"button"}]],attributes:{subject:__("New feedback received from your website","jetpack")}}]);t.Z=u},4352:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(55609),c=n(29756);const __=i.__;class u extends r.Component{constructor(){super(...arguments),this.preventEnterKey=this.preventEnterKey.bind(this)}preventEnterKey(e){"Enter"!==e.key||e.preventDefault()}render(){const{attributes:{address:e,addressLine2:t,addressLine3:n,city:a,region:i,postal:u,country:p,linkToGoogleMaps:d},isSelected:m,setAttributes:h}=this.props,f=[e,t,n,a,i,u,p].some((e=>""!==e)),g=o()({"jetpack-address-block":!0,"is-selected":m}),b=(0,r.createElement)(l.ToggleControl,{label:__("Link address to Google Maps","jetpack"),checked:d,onChange:e=>h({linkToGoogleMaps:e})});return(0,r.createElement)("div",{className:g},!m&&f&&(0,c.Z)(this.props),(m||!f)&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.PlainText,{value:e,placeholder:__("Street Address","jetpack"),"aria-label":__("Street Address","jetpack"),onChange:e=>h({address:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:t,placeholder:__("Address Line 2","jetpack"),"aria-label":__("Address Line 2","jetpack"),onChange:e=>h({addressLine2:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:n,placeholder:__("Address Line 3","jetpack"),"aria-label":__("Address Line 3","jetpack"),onChange:e=>h({addressLine3:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:a,placeholder:__("City","jetpack"),"aria-label":__("City","jetpack"),onChange:e=>h({city:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:i,placeholder:__("State/Province/Region","jetpack"),"aria-label":__("State/Province/Region","jetpack"),onChange:e=>h({region:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:u,placeholder:__("Postal/Zip Code","jetpack"),"aria-label":__("Postal/Zip Code","jetpack"),onChange:e=>h({postal:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:p,placeholder:__("Country","jetpack"),"aria-label":__("Country","jetpack"),onChange:e=>h({country:e}),onKeyDown:this.preventEnterKey}),b))}}t.Z=u},47559:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(4352),s=n(29756),l=n(41632);const __=a.__,_x=a._x,c="address",u={title:__("Address","jetpack"),description:__("Lets you add a physical address with Schema markup.","jetpack"),keywords:[_x("location","block search term","jetpack"),_x("direction","block search term","jetpack"),_x("place","block search term","jetpack")],icon:(0,l.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),(0,r.createElement)(o.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"grow",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:i.Z,save:s.Z}},29756:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:a,city:o,region:i,postal:s,country:l}}=e;return(0,r.createElement)(r.Fragment,null,t&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},t),n&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},n),a&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},a),o&&!(i||s)&&(0,r.createElement)("div",{className:"jetpack-address__city"},o),o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__city"},o),", ",(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&(0,r.createElement)("div",{className:"jetpack-address__country"},l))},i=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}}=e;let l=o?`+${o},`:"";l=i?`${l}+${i}`:l;return`https://www.google.com/maps/search/${t?`${t},`:""}${n?`${n},`:""}${r?`${r},`:""}${a?`+${a},`:""}${l}${s?`+${s}`:""}`.replace(" ","+")};t.Z=e=>(e=>{let{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}=e;return[t,n,r,a,o,i,s].some((e=>""!==e))})(e.attributes)&&(0,r.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&(0,r.createElement)("a",{href:i(e),target:"_blank",rel:"noopener noreferrer",title:__("Open address in Google Maps","jetpack")},(0,r.createElement)(o,e)),!e.attributes.linkToGoogleMaps&&(0,r.createElement)(o,e))},18680:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(89105),i=n.n(o);const s=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],l=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]];t.Z=e=>{const{isSelected:t}=e;return(0,r.createElement)("div",{className:i()({"jetpack-contact-info-block":!0,"is-selected":t})},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:s,templateLock:!1,template:l}))}},63015:function(e,t,n){"use strict";var r=n(59861),a=n(55637),o=n(65736);const __=o.__;t.Z=e=>{const{setAttributes:t}=e;return(0,a.Z)("email",e,__("Email","jetpack"),r.Z,(e=>t({email:e})))}},52413:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(63015),s=n(41632),l=n(59861);const __=a.__,_x=a._x,c="email",u={title:__("Email Address","jetpack"),description:__("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",_x("message","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"grow",attributes:{email:{type:"string",default:""}},edit:i.Z,save:l.Z,parent:["jetpack/contact-info"]}},59861:function(e,t,n){"use strict";var r=n(69307),a=n(89453);t.Z=e=>{let{attributes:{email:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},t.split(/(\s+)/).map(((e,t)=>{const n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&a.validate(n)?e===n?(0,r.createElement)("a",{href:`mailto:${e}`,key:t},e):(0,r.createElement)(r.Fragment,{key:t},(0,r.createElement)("a",{href:`mailto:${e}`,key:t},n),(0,r.createElement)(r.Fragment,null,e.slice(-(e.length-n.length)))):(0,r.createElement)(r.Fragment,{key:t},e)})))}},20195:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return g},Nk:function(){return b}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(4981),l=n(18680),c=n(41632),u=n(47559),p=n(52413),d=n(51592),m=n(57535);const __=a.__,_x=a._x,h="contact-info",f=(0,c.Z)((0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),g={title:__("Contact Info","jetpack"),description:__("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[_x("email","block search term","jetpack"),_x("phone","block search term","jetpack"),_x("address","block search term","jetpack")],icon:{src:f,foreground:(0,m.m)()},category:"grow",supports:{align:["wide","full"],html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"widget_contact_info"===t},transform:e=>{let{instance:t}=e,n=[(0,s.createBlock)("core/heading",{content:t.raw.title}),(0,s.createBlock)("jetpack/email",{email:t.raw.email}),(0,s.createBlock)("jetpack/phone",{phone:t.raw.phone}),(0,s.createBlock)("jetpack/address",{address:t.raw.address})];return t.raw.hours&&(n=[...n,(0,s.createBlock)("core/paragraph",{content:t.raw.hours})]),t.raw.showmap&&t.raw.address&&(n=[...n,(0,s.createBlock)("jetpack/map",{address:t.raw.address})]),(0,s.createBlock)("jetpack/contact-info",{},n)}}]},attributes:{},edit:l.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},b=[{name:u.u,settings:u.X},{name:p.u,settings:p.X},{name:d.u,settings:d.X}]},51633:function(e,t,n){"use strict";var r=n(65736),a=n(18690),o=n(55637);const __=r.__;t.Z=e=>{const{setAttributes:t}=e;return(0,o.Z)("phone",e,__("Phone number","jetpack"),a.Z,(e=>t({phone:e})))}},51592:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(51633),s=n(41632),l=n(18690);const __=a.__,_x=a._x,c="phone",u={title:__("Phone Number","jetpack"),description:__("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[_x("mobile","block search term","jetpack"),_x("telephone","block search term","jetpack"),_x("cell","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"grow",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:i.Z,save:l.Z}},18690:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{let{attributes:{phone:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},function(e){const t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;const n=e.indexOf(t[0]);let a=n?e.substring(n-1):e,o=n?e.substring(0,n):"",i=a.replace(/\D/g,"");return/[0-9/+/(]/.test(a[0])?(o=o.slice(0,-1),"+"===a[0]&&(i="+"+i)):a=a.substring(1),[o.trim()?(0,r.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},o):null,(0,r.createElement)("a",{key:"phoneNumber",href:`tel:${i}`},a)]}(t))}},2534:function(e,t){"use strict";t.Z={participants:{type:"array"},showTimestamps:{type:"boolean",default:!1},skipUpload:{type:"boolean",default:!1}}},74113:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.createContext)()},78e3:function(e,t,n){"use strict";n.d(t,{C:function(){return l}});var r=n(69307),a=n(55609),o=n(65736),i=n(90566);const __=o.__,_x=o._x;function s(e){let{className:t,participants:n,onDelete:o}=e;return(0,r.createElement)("div",{className:`${t}__participant-control`},n.map((e=>{let{label:n,slug:s}=e;return(0,r.createElement)("div",{key:`${s}-key`,className:`${t}__participant`},(0,r.createElement)("div",{className:`${t}__participant-label`},(0,i.iT)(n)),(0,r.createElement)(a.Button,{className:`${t}__remove-participant`,label:__("Remove participant","jetpack"),onClick:()=>o(s),isTertiary:!0,isSmall:!0},_x("Remove","verb: remove item from a list","jetpack")))})))}function l(e){let{participants:t,className:n,onChange:a,onDelete:o}=e;return(0,r.createElement)(s,{className:n,participants:t,onChange:a,onDelete:o})}},63414:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(9818),l=n(78e3),c=n(74113),u=n(51591),p=n(41362),d=n(90566);const __=a.__,m=[["jetpack/dialogue"]];t.Z=(0,i.withNotices)((function(e){let{className:t,attributes:n,setAttributes:a,noticeUI:h,clientId:f,noticeOperations:g}=e;const{participants:b=[],showTimestamps:v,skipUpload:k}=n,[y,E]=(0,r.useState)(""),{insertBlocks:w}=(0,s.useDispatch)("core/block-editor"),_=(0,r.useCallback)((e=>{a({participants:b.map((t=>t.slug!==e.slug?t:{...t,...e}))})}),[a,b]),C=(0,r.useCallback)((function(e){let{label:t,slug:n}=e;if(!t)return;const r=t.trim();if(!r?.length)return;const o=(0,d.tQ)(b,r);if(o)return o;const i={slug:n||"speaker-"+ +new Date,label:r};return a({participants:[...b,i]}),i}),[b,a]),j=(0,r.useCallback)(a,[a]),S=(0,r.useMemo)((()=>({setAttributes:j,updateParticipants:_,addNewParticipant:C,attributes:{showTimestamps:v}})),[C,j,v,_]);function x(e){g.removeAllNotices(),g.createErrorNotice(e),E(!1)}const T="wp-block-jetpack-conversation";return b?.length||k?(0,r.createElement)(c.Z.Provider,{value:S},(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.Panel,null,(0,r.createElement)(i.PanelBody,{title:__("Speakers","jetpack"),className:`${T}__participants`},(0,r.createElement)(l.C,{className:T,participants:b,onDelete:function(e){a({participants:b.filter((t=>{let{slug:n}=t;return n!==e}))})}})))),(0,r.createElement)(o.InnerBlocks,{template:m}))):(0,r.createElement)(i.Placeholder,{label:__("Conversation","jetpack"),instructions:(0,r.createElement)(r.Fragment,null,__("Upload a transcript file or create a conversation with blank content.","jetpack"),(0,r.createElement)("div",null,(0,r.createElement)("em",null,__("Accepted file formats:","jetpack"),(0,r.createElement)("strong",null," ",d.bZ),"."))),icon:(0,r.createElement)(o.BlockIcon,{icon:u.Xu}),notices:h},(0,r.createElement)("div",{className:`${T}__placeholder`},(0,r.createElement)(i.FormFileUpload,{multiple:!1,isLarge:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:function(e){const t=e.target.files?.[0];if(!t)return x(__("Transcript file not found.","jetpack"));if(t?.size&&t.size<=0||!t?.size||t.size>d.$n)return x(__("Invalid transcript file size.","jetpack"));if(t?.type?.length&&"text/plain"!==t.type)return x(__("Invalid transcript file type.","jetpack"));const n=(0,d.Y7)(t?.name);if(!(0,d.P8)(n))return x(__("Invalid transcript file extension.","jetpack"));E(!0),(0,d.Bt)(t,(function(e,t){let{conversation:n,dialogues:r}=e;if(t)return x(t);a({participants:n.speakers,skipUpload:!n?.length});const o=r.map((e=>e.slug||e.timestamp?["jetpack/dialogue",e]:["core/paragraph",e])),i=(0,p.Z)(o);w(i,0,f),E(!1)}))},accept:d.bZ,isPrimary:!0,title:`${__("Accepted file formats:","jetpack")} ${d.bZ}`,disabled:y},__("Upload transcript","jetpack")),(0,r.createElement)(i.Button,{isTertiary:!0,disabled:y,onClick:()=>a({skipUpload:!0})},__("Skip upload","jetpack"))))}))},34376:function(e,t,n){"use strict";var r=n(65736);const __=r.__,a=[{slug:"participant-0",label:"Rosalind"},{slug:"participant-1",label:"Orlando"}],o=[{name:"core/heading",attributes:{content:__("Shakespeare text","jetpack"),level:4}},{name:"jetpack/dialogue",attributes:{...a[0],content:__("O, my dear Orlando, how it grieves me to see thee wear thy heart in a scarf!","jetpack"),timestamp:"00:10"}},{name:"jetpack/dialogue",attributes:{...a[1],content:__("It is my arm.","jetpack"),timestamp:"00:15"}},{name:"jetpack/dialogue",attributes:{...a[0],content:__("I thought thy heart had been wounded with the claws of a lion.","jetpack"),timestamp:"00:32"}},{name:"jetpack/dialogue",attributes:{...a[1],content:__("Wounded it is, but with the eyes of a lady.","jetpack"),timestamp:"00:37"}}];t.Z={attributes:{participants:a,showTimestamps:!0,className:"is-style-row"},innerBlocks:o}},36384:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(4981),o=n(51591),i=n(41362),s=n(2534),l=n(63414),c=n(22766),u=n(34376);const __=r.__,_x=r._x,p="conversation",d={title:__("Conversation","jetpack"),description:__("Create a transcription of a speech or conversation, with any number of participants, using dialogue blocks.","jetpack"),icon:o.Xu,category:"layout",keywords:[_x("conversation","block search term","jetpack"),_x("transcription","block search term","jetpack"),_x("dialogue","block search term","jetpack"),_x("speaker","block search term","jetpack")],supports:{align:!0},attributes:s.Z,example:u.Z,styles:[{name:"row",label:__("Row","jetpack"),isDefault:!0},{name:"column",label:__("Column","jetpack")}],edit:l.Z,save:c.Z,providesContext:{"jetpack/conversation-participants":"participants","jetpack/conversation-showTimestamps":"showTimestamps"},transforms:{from:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>{const t=e.map((e=>{let{content:t}=e;return["jetpack/dialogue",{content:t}]}));return(0,a.createBlock)("jetpack/conversation",{},(0,i.Z)(t))}}]}}},22766:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175);function s(e){let{attributes:t}=e;return(0,r.createElement)("div",{className:o()("wp-block-jetpack-conversation",{"show-timestamps":t?.showTimestamp})},(0,r.createElement)(i.InnerBlocks.Content,null))}},90566:function(e,t,n){"use strict";n.d(t,{ly:function(){return i},tQ:function(){return s},iT:function(){return l},Y7:function(){return c},bZ:function(){return m},$n:function(){return h},P8:function(){return k},Bt:function(){return y}});var r=n(72629),a=n(81975),o=n(65736);const __=o.__;function i(e,t){const n=e.filter((e=>{let{slug:n}=e;return n===t}));return n?.length?n[0]:null}function s(e,t){const n=e.filter((e=>{let{label:n}=e;return n?.toLowerCase()===t?.toLowerCase()}));return n?.length?n[0]:null}function l(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=(0,r.getTextContent)((0,r.create)({html:e}))?.trim();return t?(0,a.escapeHTML)(n):n}function c(e){return`.${e.substr(e.lastIndexOf(".")+1)}`}const u=".srt",p=".txt",d=[u,p,".vtt",".sbv"],m=d.join(", "),h=1e5,f=/(.*[^\s])\s{1,}(\d{1,2}(?::\d{1,2}?)+)\s+\n([\s\S]*?(?=\n{2}|$))/,g=/(?:(.*[^\s]):\s+)?(?:\[(\d+(?::\d+)*?(?:\.\d*)?)])?(?:[\s])*?([^\s].+?(?:\n+|$))/,b=[{name:"otter",re:new RegExp(f,"gm"),testRE:new RegExp(f,"g")},{name:"sonix",re:new RegExp(g,"gm"),testRE:new RegExp(g,"g")}],v=/(\d+)\n([\d:,]+)\s+-{2}>\s+([\d:,]+)\n([\s\S]*?(?=\n{2}|$))/gm;function k(e){return d.indexOf(e)>=0}function y(e,t){const n=c(e?.name),r=new FileReader;r.addEventListener("load",(e=>{const r=e.target.result?e.target.result.replace(/\r\n|\r|\n/g,"\n"):null;if(!r?.length)return t({},__("Transcript content is empty","jetpack"));let a={};if(n&&n!==p&&n===u&&(a=function(e){const t={conversation:{speakers:[]},dialogues:[]};let n;for(;null!==(n=v.exec(e));)t.dialogues.push({timestamp:n[2],content:n[4]});return t}(r)),n===p&&(a=function(e){const t={dialogues:[],conversation:{speakers:[]}},n=b.filter((t=>{let{testRE:n}=t;return n.test(e)}));if(!n?.length)return t;const r=n[0];let a;for(;null!=(a=r.re.exec(e));){const e=a[r?.indexes?.speaker||1]||"";e?.length&&t.conversation.speakers.indexOf(e)<0&&t.conversation.speakers.push(e);const n={content:a[r?.indexes?.content||3],timestamp:a[r?.indexes?.timestamp||2],showTimestamp:!0};e?.length&&(n.label=e,n.slug=`speaker-${t.conversation.speakers.indexOf(e)}`),t.dialogues.push(n)}return t.conversation.speakers=t.conversation.speakers.map(((e,t)=>({label:e,slug:`speaker-${t}`}))),t}(r)),!a.dialogues?.length)return t({},__("Transcript format not supported","jetpack"));t(a)})),r.readAsText(e)}},60522:function(e,t){"use strict";t.Z={label:{type:"string",source:"html",selector:".wp-block-jetpack-dialogue__participant"},slug:{type:"string"},timestamp:{type:"string",default:"00:00"},showTimestamp:{type:"boolean",default:!1},placeholder:{type:"string"},content:{type:"string",source:"html",selector:".wp-block-jetpack-dialogue__content"}}},23180:function(e,t,n){"use strict";n.d(t,{Ev:function(){return m},v$:function(){return g}});n(29183);var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736),l=n(52175),c=n(90566);const __=s.__,u="is-participant-adding",p="is-participant-selecting",d="was-participant-selected";function m(e){let{participants:t,slug:n,onSelect:a}=e;return(0,r.createElement)(i.SelectControl,{label:__("Speaker name","jetpack"),value:n,options:t.map((e=>{let{slug:t,label:n}=e;return{label:(0,c.iT)(n),value:t}})),onChange:e=>a((0,c.ly)(t,e))})}const h=(0,i.withFocusOutside)(class extends r.Component{handleFocusOutside(e){this.props.onFocusOutside(e)}render(){return(0,r.createElement)("div",{className:this.props.className},this.props.children)}});function f(e){return{name:"jetpack/conversation-participants",triggerPrefix:"",options:e,getOptionLabel:e=>{let{label:t}=e;return(0,r.createElement)("span",null,(0,c.iT)(t))},getOptionKeywords:e=>{let{label:t}=e;return[t]},getOptionCompletion:e=>({action:"replace",value:e}),popoverProps:{position:"bottom"}}}function g(e){let{className:t,label:n,participant:a,participants:i,transcriptRef:s,onParticipantChange:m,onUpdate:g=(()=>{}),onSelect:b,onAdd:v,onClean:k}=e;const[y,E]=(0,r.useState)("is-participant-ready");function w(){if(!n)return;const e=(0,c.tQ)(i,n);return a&&a.label!==n?e&&e.slug!==a.slug?(E(d),b(e)):(E("was-participant-edited"),g({...a,label:(0,c.iT)(n,!0)})):e?(E(d),b(e)):(v((0,c.iT)(n,!0)),E("was-participant-added"))}const _=(0,r.useMemo)((()=>y?y!==u&&y!==p?[]:[f(i)]:[]),[i,y]);return(0,r.createElement)(h,{className:o()(t,{"has-bold-style":n?.length,[y]:y}),onFocusOutside:w},(0,r.createElement)(l.RichText,{tagName:"div",value:n,allowedFormats:[],withoutInteractiveFormatting:!0,onChange:function(e){if(!e?.length)return E(u),k();m(e);const t=(0,c.tQ)(i,e);a?a.label===e?E(p):E("is-participant-editing"):E(t?p:u)},placeholder:__("Speaker","jetpack"),keepPlaceholderOnFocus:!0,onSplit:()=>{},onReplace:e=>{setTimeout((()=>s?.current?.focus()),10);const t=e?.[0];if(t){const{label:e}=t;return m(e),E(d),b(t)}return w()},autocompleters:_}))}},94371:function(e,t,n){"use strict";n.d(t,{dG:function(){return d},S6:function(){return f}});var r=n(69307),a=n(92819),o=n(55609),i=n(65736),s=n(38205),l=n(98017);const __=i.__,_x=i._x;const c=["hour","min","sec"];function u(e,t){const n=Object.keys(e)?.[0];if(!n)return t.join(":");let r=String((a=e[n],o="hour"===n?23:59,Math.max(0,Math.min(a,o))));var a,o;return 1===r?.length?r=`0${r}`:0===r?.length&&(r="00"),t[c.indexOf(n)]=r,3===t.length&&"00"===t[0]&&t.shift(),t.join(":")}const p=(0,a.debounce)((function(e,t){t((0,l.H)(e))}),250);function d(e){let{value:t,className:n,onChange:a,shortLabel:i=!1,isDisabled:c=!1,duration:d}=e;const[m,h]=(0,r.useState)((0,l.i)(t)),f=t.split(":");return f.length<=2&&f.unshift("00"),(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${n}__timestamp-controls`},(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__hour`,label:i?_x("Hour","hour (short form)","jetpack"):_x("Hour","hour (long form)","jetpack",0),value:f[0],min:0,max:23,onChange:e=>!c&&a(u({hour:e},f)),disabled:c}),(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__minute`,label:i?_x("Min","Short for Minute","jetpack"):__("Minute","jetpack"),value:f[1],min:0,max:59,onChange:e=>!c&&a(u({min:e},f)),disabled:c}),(0,r.createElement)(s.Z,{className:`${n}__timestamp-control__second`,label:i?_x("Sec","Short for Second","jetpack"):__("Second","jetpack"),value:f[2],min:0,max:59,onChange:e=>!c&&a(u({sec:e},f)),disabled:c})),(0,r.createElement)(o.RangeControl,{disabled:void 0===d,value:m,className:`${n}__timestamp-range-control`,min:0,max:d,onChange:e=>{h(e),p(e,a)},withInputField:!1,renderTooltipContent:e=>(0,l.H)(e)}))}function m(e){let{className:t,onPlayback:n,value:a}=e;return(0,r.createElement)(o.Button,{className:t,isTertiary:!0,onClick:()=>n((0,l.i)(a))},a)}function h(e){let{className:t,currentTime:n,isTimestampButtonVisible:a,children:i,onChange:s,onToggle:c}=e;return(0,r.createElement)(o.Button,{className:t,isSmall:!0,isTertiary:!0,onClick:()=>{c(!a),a||s((0,l.H)(n),s)}},i)}function f(e){let{className:t,isSelected:n,show:a,value:o,mediaCurrentTime:i=0,onChange:s,onToggle:l,onPlayback:c}=e;return n?a?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m,{className:`${t}__timestamp-label`,value:o,onPlayback:c}),(0,r.createElement)(h,{className:`${t}__timestamp-button`,currentTime:i,onChange:s,onToggle:l,isTimestampButtonVisible:a},__("Remove","jetpack"))):(0,r.createElement)(h,{className:`${t}__timestamp-button`,currentTime:i,onChange:s,onToggle:l,isTimestampButtonVisible:a},__("Add timestamp","jetpack")):a?(0,r.createElement)(m,{className:`${t}__timestamp-label`,value:o,onPlayback:c}):null}},27257:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(4981),c=n(9818),u=n(55609),p=n(23180),d=n(94371),m=n(38882),h=n(74113),f=n(15111),g=n(37837),b=n(98017),v=n(90566);const __=i.__,k="core/paragraph";function y(e){let{className:t,attributes:n,setAttributes:a,context:i,onReplace:y,mergeBlocks:E,isSelected:w}=e;const{content:_,label:C,slug:j,placeholder:S,showTimestamp:x,timestamp:T}=n,{mediaSource:N,mediaCurrentTime:P,mediaDuration:A,mediaDomReference:I,isMultipleSelection:M}=(0,c.useSelect)((e=>{const{getDefaultMediaSource:t,getMediaSourceCurrentTime:n,getMediaSourceDuration:r,getMediaSourceDomReference:a}=e(f.tT);return{mediaSource:t(),mediaCurrentTime:n(),mediaDuration:r(),mediaDomReference:a(),isMultipleSelection:e("core/block-editor").getMultiSelectedBlocks().length>0}}),[]),{playMediaSource:B,setMediaSourceCurrentTime:R}=(0,c.useDispatch)(f.tT),L=(0,r.useRef)(),Z=i["jetpack/conversation-participants"],F=Z?.length?Z:[],D=(0,v.ly)(F,j),O=(0,r.useContext)(h.Z);function z(e){a({timestamp:e})}return(0,r.useEffect)((()=>{M||w||D&&D.slug===j&&D.label!==C&&a({label:D.label})}),[D,C,j,M,w,a]),(0,r.createElement)("div",{className:t},(0,r.createElement)(s.BlockControls,null,N&&(0,r.createElement)(g.m,{onTimestampClick:e=>{a({showTimestamp:!0}),z((0,b.H)(e))}})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Panel,null,(0,r.createElement)(u.PanelBody,{title:__("Speaker","jetpack")},(0,r.createElement)(p.Ev,{className:m.P,participants:F,slug:j||"",onSelect:a})),!!N?.title&&(0,r.createElement)(u.PanelBody,{title:__("Podcast episode","jetpack")},(0,r.createElement)("p",null,N.title)),N&&x&&(0,r.createElement)(u.PanelBody,{title:__("Timestamp","jetpack")},(0,r.createElement)(d.dG,{className:m.P,value:T,onChange:z,mediaSource:N,duration:A})))),(0,r.createElement)("div",{className:o()(`${m.P}__meta`,{"has-not-media-source":!N})},(0,r.createElement)(p.v$,{className:`${m.P}__participant`,label:C,participant:D,participants:F,transcriptRef:L,onParticipantChange:e=>{a({label:e})},onSelect:e=>{M||a(e)},onClean:()=>{a({slug:null,label:""})},onAdd:e=>{const t=O.addNewParticipant({label:e,slug:j});a(t)},onUpdate:e=>{O.updateParticipants(e)}}),N&&(0,r.createElement)(d.S6,{className:m.P,show:x,isSelected:w,value:T,mediaCurrentTime:P,onChange:z,onToggle:e=>a({showTimestamp:e}),onPlayback:function(e){I&&(I.currentTime=e),R(e),B()}})),(0,r.createElement)(s.RichText,{ref:L,identifier:"content",tagName:"p",className:`${m.P}__content`,value:_,onChange:e=>a({content:e}),onMerge:E,onSplit:e=>{if(!_?.length)return(0,l.createBlock)(k);const t=e?.length?n:{};return(0,l.createBlock)("jetpack/dialogue",{...t,content:e})},onReplace:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return O?e[0]?.name!==k||e[1]?.name!==k||e[0]?.attributes.content||e[1]?.attributes.content?void y(e,...n):((0,c.dispatch)("core/block-editor").selectBlock(e[0].clientId),y([e[0]],...n)):y(e,...n)},onRemove:y?()=>y([]):void 0,placeholder:S||__("Write dialogue…","jetpack"),keepPlaceholderOnFocus:!0}))}},98956:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return m}});var r=n(65736),a=n(4981),o=n(60522),i=n(27257),s=n(57937),l=n(51591),c=n(90059),u=n(36384);const __=r.__,_x=r._x,p=c.p,d="dialogue",m={title:__("Dialogue","jetpack"),description:__("Create a dialogue paragraph, setting the participant with an optional timestamp.","jetpack"),parent:[`jetpack/${u.u2}`],icon:l.VV,category:"layout",edit:i.Z,save:s.Z,attributes:o.Z,usesContext:["jetpack/conversation-participants","jetpack/conversation-showTimestamps"],keywords:[_x("dialogue","block search term","jetpack"),_x("participant","block search term","jetpack"),_x("transcription","block search term","jetpack"),_x("speaker","block search term","jetpack")],transforms:{to:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>e.map((e=>{let{content:t,label:n}=e;return(0,a.createBlock)("core/paragraph",{content:(n?.length?`<strong>${n}</strong>: `:"")+t})}))}],from:[{type:"block",blocks:["core/paragraph"],isMultiBlock:!0,transform:e=>e.map((e=>{let{content:t}=e;return(0,a.createBlock)("jetpack/dialogue",{participant:p[0],content:t})}))}]}}},57937:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(52175),o=n(38882),i=n(98017);function s(e){let{attributes:t}=e;const{content:n,label:s,showTimestamp:l,timestamp:c}=t;return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:`${o.P}__meta`},(0,r.createElement)(a.RichText.Content,{className:`${o.P}__participant has-bold-style`,tagName:"div",value:s}),l&&(0,r.createElement)("div",{className:`${o.P}__timestamp-label`},(0,r.createElement)("a",{className:`${o.P}__timestamp_link`,href:`#${(0,i.i)(c)}`},c))),(0,r.createElement)(a.RichText.Content,{className:`${o.P}__content`,tagName:"p",value:n}))}},38882:function(e,t,n){"use strict";n.d(t,{P:function(){return r}});const r="wp-block-jetpack-dialogue"},48387:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(89105),s=n.n(i),l=n(52175),c=n(17882);t.Z=e=>{let{className:t=null,currency:n=null,defaultValue:i=null,disabled:u=!1,label:p="",onChange:d=null,value:m=""}=e;const[h,f]=(0,r.useState)((0,a.ZP)(m,n,{symbol:""})),[g,b]=(0,r.useState)(!1),[v,k]=(0,r.useState)(!1),y=(0,r.useRef)(null),E=(0,r.useCallback)((e=>{if(f(e),!d)return;const t=(0,c.Vm)(e,n);t&&t>=(0,c.hj)(n)?(d(t),k(!1)):e&&k(!0)}),[n,d]),w=()=>{y.current&&(y.current.focus(),b(!0))};return(0,r.useEffect)((()=>{y.current&&y.current.addEventListener("blur",(()=>b(!1)))}),[y]),(0,r.useEffect)((()=>{g||h||E((0,a.ZP)(i,n,{symbol:""}))}),[n,i,h,g,E]),(0,r.useEffect)((()=>{g||v||f((0,a.ZP)(m,n,{symbol:""}))}),[n,g,v,E,m]),(0,r.createElement)("div",{className:s()("donations__amount",t,{"has-focus":g,"has-error":v}),role:"button",tabIndex:0,onClick:w,onKeyDown:w},o.M[n].symbol,u?(0,r.createElement)("div",{className:"donations__amount-value"},(0,a.ZP)(m||i,n,{symbol:""})):(0,r.createElement)(l.RichText,{allowedFormats:[],"aria-label":p,keepPlaceholderOnFocus:!0,multiline:!1,onChange:e=>E(e),placeholder:(0,a.ZP)(i,n,{symbol:""}),ref:y,value:h,withoutInteractiveFormatting:!0}))}},46928:function(e,t,n){"use strict";var r=n(69307),a=n(75139),o=n(52175),i=n(55609),s=n(65736),l=n(39630),c=n(17882),u=n(4235);const __=s.__;t.Z=e=>{const{attributes:t,setAttributes:n}=e,{currency:s,monthlyDonation:p,annualDonation:d,showCustomAmount:m}=t,h=(e,r)=>{const a={"1 month":"monthlyDonation","1 year":"annualDonation"}[e],o=t[a];n({[a]:{...o,show:r}})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(i.Dropdown,{contentClassName:"jetpack-donations__currency-popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(i.Button,{className:"jetpack-donations__currency-toggle",icon:(0,r.createElement)(r.Fragment,null,a.M[s].symbol+" - "+s,(0,r.createElement)(i.Dashicon,{icon:"arrow-down"})),label:__("Change currency","jetpack"),onClick:t,onKeyDown:e=>{n||e.keyCode!==l.DOWN||(e.preventDefault(),e.stopPropagation(),t())}})},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(i.MenuGroup,null,Object.keys(c.ck).map((e=>(0,r.createElement)(i.MenuItem,{isSelected:e===s,onClick:()=>{n({currency:e}),t()},key:`jetpack-donations-currency-${e}`},a.M[e].symbol+" - "+e))))}}))))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{checked:p.show,onChange:e=>h("1 month",e),label:__("Show monthly donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:d.show,onChange:e=>h("1 year",e),label:__("Show annual donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:m,onChange:e=>n({showCustomAmount:e}),label:__("Show custom amount option","jetpack")}),(0,r.createElement)(i.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,u.Z)()}`},__("View donation earnings","jetpack")))))}},92202:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(52175),s=n(65736),l=n(17882);const __=s.__;t.Z={attributes:{currency:{type:"string",default:"USD"},oneTimeDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a one-time donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate","jetpack")}},monthlyDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a monthly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate monthly","jetpack")}},annualDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a yearly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate yearly","jetpack")}},showCustomAmount:{type:"boolean",default:!0},chooseAmountText:{type:"string",default:__("Choose an amount","jetpack")},customAmountText:{type:"string",default:__("Or enter a custom amount","jetpack")}},supports:{html:!1},save:e=>{let{attributes:t}=e;const{currency:n,oneTimeDonation:s,monthlyDonation:c,annualDonation:u,showCustomAmount:p,chooseAmountText:d,customAmountText:m}=t;if(!s||!s.show||-1===s.planId)return null;const h={"one-time":{title:__("One-Time","jetpack")},...c.show&&{"1 month":{title:__("Monthly","jetpack")}},...u.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"donations__container"},Object.keys(h).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(h).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:"donations__nav-item",key:`jetpack-donations-nav-item-${t} `,"data-interval":t},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__one-time-item",value:s.heading}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__monthly-item",value:c.heading}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__annual-item",value:u.heading}),(0,r.createElement)(i.RichText.Content,{tagName:"p",value:d}),(0,r.createElement)("div",{className:"donations__amounts donations__one-time-item"},s.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),c.show&&(0,r.createElement)("div",{className:"donations__amounts donations__monthly-item"},c.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),u.show&&(0,r.createElement)("div",{className:"donations__amounts donations__annual-item"},u.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),p&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.RichText.Content,{tagName:"p",value:m}),(0,r.createElement)("div",{className:"donations__amount donations__custom-amount"},o.M[n].symbol,(0,r.createElement)("div",{className:"donations__amount-value","data-currency":n,"data-empty-text":(0,a.ZP)(100*(0,l.hj)(n),n,{symbol:""})}))),(0,r.createElement)("div",{className:"donations__separator"},"——"),(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__one-time-item",value:s.extraText}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__monthly-item",value:c.extraText}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__annual-item",value:u.extraText}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__one-time-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__one-time-item",value:s.buttonText})),c.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__monthly-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__monthly-item",value:c.buttonText})),u.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__annual-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__annual-item",value:u.buttonText}))))))}}},53104:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(9818),s=n(65736),l=n(53823),c=n(82116),u=n(83040),p=n(10756);const __=s.__;t.Z=e=>{const{attributes:t,className:n,setAttributes:r}=e,{currency:s}=t,[d,m]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[g,b]=(0,o.useState)(!1),[v,k]=(0,o.useState)([]),y=(0,i.useSelect)((e=>e("core/editor").getCurrentPost()),[]);(0,o.useEffect)((()=>{r({fallbackLinkUrl:y.link})}),[y.link,r]);const E=e=>{m(e)},w=e=>e.reduce(((e,t)=>{let{id:n,currency:r,type:a,interval:o}=t;return r===s&&"donation"===a&&(e[o]=n),e}),{}),_=e=>{if(!e&&"object"!=typeof e||e.errors)return void m(__("Could not load data from WordPress.com.","jetpack"));f(e.should_upgrade_to_access_memberships),b(e.connect_url);const t=w(e.products);(e=>{const t=Object.keys(e);return t.includes("one-time")&&t.includes("1 month")&&t.includes("1 year")})(t)?k(t):e.should_upgrade_to_access_memberships||e.connect_url?k({"one-time":-1,"1 month":-1,"1 year":-1}):(0,u.Z)(s).then((e=>k(w(e))),E)};return(0,o.useEffect)((()=>{(0,p.Z)("donation").then(_,E)}),[s]),d?(0,o.createElement)(c.Z,{className:n,error:d}):(0,o.createElement)(l.Z,a()({},e,{products:v,shouldUpgrade:h,stripeConnectUrl:g}))}},83040:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z=async e=>{try{return await a()({path:"/wpcom/v2/memberships/products",method:"POST",data:{type:"donation",currency:e}})}catch(e){return Promise.reject(e.message)}}},10756:function(e,t,n){"use strict";var r=n(82827),a=n(86989),o=n.n(a),i=n(96483);t.Z=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const{query:t}=(0,r.Qc)(window.location.href,!0),n=(0,i.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t.origin?"gutenberg-wpcom":"gutenberg",...e&&{type:e}});try{return await o()({path:n,method:"GET"})}catch(e){return Promise.reject(e.message)}}},63445:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return c}});var r=n(65736),a=n(53104),o=n(56734),i=n(92202),s=n(51591);const __=r.__,l="donations",c={title:__("Donations","jetpack"),description:__("Collect one-time, monthly, or annually recurring donations.","jetpack"),icon:s.K9,category:"earn",keywords:[__("Donations","jetpack")],supports:{html:!1},edit:a.Z,save:o.Z,example:{},deprecated:[i.Z]}},82116:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=e=>{let{className:t,error:n}=e;return(0,r.createElement)(o.Placeholder,{icon:"lock",label:__("Donations","jetpack"),instructions:n,className:t})}},56734:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t}=e;const{fallbackLinkUrl:n,oneTimeDonation:o,monthlyDonation:i,annualDonation:s}=t;return o&&o.show&&o.planId&&-1!==o.planId?(0,r.createElement)("div",null,(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:o.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:o.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:o.buttonText}),i.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:i.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:i.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:i.buttonText})),s.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:s.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:s.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:s.buttonText}))):null}},75242:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(9818),i=n(65736),s=n(48387),l=n(17882);const __=i.__;t.Z=e=>{let{activeTab:t,attributes:n,setAttributes:c}=e;const{currency:u,oneTimeDonation:p,monthlyDonation:d,annualDonation:m,showCustomAmount:h,chooseAmountText:f,customAmountText:g}=n,b={"one-time":"oneTimeDonation","1 month":"monthlyDonation","1 year":"annualDonation"},v=e=>n[b[t]][e],k=(e,r)=>{const a=b[t],o=n[a];c({[a]:{...o,[e]:r}})},[y,E]=(0,r.useState)(u),w=(0,l.hj)(u),_=(0,r.useMemo)((()=>[10*w,30*w,200*w]),[w]);(0,r.useEffect)((()=>{y!==u&&(E(u),c({oneTimeDonation:{...p,amounts:_},monthlyDonation:{...d,amounts:_},annualDonation:{...m,amounts:_}}))}),[u,y,_,p,d,m,c]);const C=v("amounts"),j=(0,o.useSelect)((e=>e("core/rich-text").getFormatTypes()),[]).map((e=>e.name)).filter((e=>"core/link"!==e));return(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(a.RichText,{tagName:"h4",placeholder:__("Write a message…","jetpack"),value:v("heading"),onChange:e=>k("heading",e)}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:f,onChange:e=>c({chooseAmountText:e})}),(0,r.createElement)("div",{className:"donations__amounts"},C.map(((e,t)=>(0,r.createElement)(s.Z,{currency:u,defaultValue:_[t],label:(0,i.sprintf)(// translators: %d: Tier level e.g: "1", "2", "3"
+__("Tier %d","jetpack"),t+1),key:`jetpack-donations-amount-${t}`,onChange:e=>((e,t)=>{const n=[...C];n[t]=e,k("amounts",n)})(e,t),value:e})))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:g,onChange:e=>c({customAmountText:e})}),(0,r.createElement)(s.Z,{currency:u,label:__("Custom amount","jetpack"),defaultValue:100*(0,l.hj)(u),className:"donations__custom-amount",disabled:!0})),(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:v("extraText"),onChange:e=>k("extraText",e)}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper"},(0,r.createElement)(a.RichText,{className:"wp-block-button__link donations__donate-button",placeholder:__("Write a message…","jetpack"),value:v("buttonText"),onChange:e=>{return t=e,void c({oneTimeDonation:{...p,buttonText:t},monthlyDonation:{...d,buttonText:t},annualDonation:{...m,buttonText:t}});var t},allowedFormats:j})))}},53823:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(65736),l=n(46928),c=n(75242),u=n(43393);const __=s.__;t.Z=e=>{const{attributes:t,className:n,products:a,setAttributes:s,shouldUpgrade:p,stripeConnectUrl:d}=e,{oneTimeDonation:m,monthlyDonation:h,annualDonation:f}=t,[g,b]=(0,r.useState)("one-time"),v=(0,i.useSelect)((e=>e("core/editor").getCurrentPostId()),[]),k=(0,r.useCallback)((e=>g===e),[g]),y={"one-time":{title:__("One-Time","jetpack")},...h.show&&{"1 month":{title:__("Monthly","jetpack")}},...f.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.useEffect)((()=>{m.planId===a["one-time"]&&h.planId===a["1 month"]&&f.planId===a["1 year"]||s({oneTimeDonation:{...m,planId:a["one-time"]},monthlyDonation:{...h,planId:a["1 month"]},annualDonation:{...f,planId:a["1 year"]}})}),[m,h,f,s,a]),(0,r.useEffect)((()=>{!h.show&&k("1 month")&&b("one-time"),!f.show&&k("1 year")&&b("one-time")}),[h,f,b,k]),(0,r.createElement)("div",{className:n},!p&&d&&(0,r.createElement)(u.Z,{blockName:"donations",postId:v,stripeConnectUrl:d}),(0,r.createElement)("div",{className:"donations__container"},Object.keys(y).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(y).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:o()("donations__nav-item",{"is-active":k(t)}),onClick:()=>b(t),onKeyDown:()=>b(t),key:`jetpack-donations-nav-item-${t} `},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)(c.Z,{activeTab:g,attributes:t,setAttributes:s}))),(0,r.createElement)(l.Z,e))}},28559:function(e,t){"use strict";t.Z={url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},style:{type:"string",default:"inline"}}},77019:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__,i=e=>{let{setEditingUrl:t}=e;return(0,r.createElement)(a.ToolbarGroup,null,(0,r.createElement)(a.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},48631:function(e,t,n){"use strict";var r=n(61652);t.Z=[r.Z]},61652:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(92819),l=n(4981),c=n(65736);const _x=c._x,u=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius"];t.Z={attributes:{url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},useModal:{type:"boolean"},style:{type:"string"},text:{type:"string",default:_x("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},migrate:e=>{const{className:t,style:n}=e;let r=n;r||(r=e.useModal?"modal":"inline");const a={...(0,s.omit)(e,["useModal",...u]),className:t&&t.replace("is-style-outline",""),style:r},o=(0,s.pick)(e,u);return[a,[(0,l.createBlock)("jetpack/button",{element:"a",text:o.text||_x("Register","verb: e.g. register for an event.","jetpack"),...o,uniqueId:"eventbrite-widget-id",className:t&&-1!==t.indexOf("is-style-outline")?"is-style-outline":""})]]},save:function(e){let{attributes:t}=e;const{eventId:n,useModal:a,url:s,style:l}=t;if(n)return a||"modal"===l?function(e){const{backgroundColor:t,borderRadius:n,customBackgroundColor:a,customTextColor:s,eventId:l,text:c,textColor:u,url:p}=e,d=(0,i.getColorClassName)("color",u),m=(0,i.getColorClassName)("background-color",t),h=o()("wp-block-button__link",{"has-text-color":u||s,[d]:d,"has-background":t||a,[m]:m,"no-border-radius":0===n}),f={backgroundColor:m?void 0:a,color:d?void 0:s,borderRadius:n?n+"px":void 0};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{className:h,href:p,id:`eventbrite-widget-${l}`,rel:"noopener noreferrer",role:"button",style:f,tagName:"a",target:"_blank",value:c}))}(t):s&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:s},s)},isEligible:(e,t)=>("modal"===e.style||e.useModal)&&((0,s.isEmpty)(t)||(0,s.some)((0,s.pick)(e,u),Boolean))}},62337:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(45166),u=n(28559),p=n(62194),d=n(14087),m=n(58014),h=n(8964),f=n(72566),g=n(87072),b=n(77019);const __=i.__,_x=i._x;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{editedUrl:this.props.attributes.url||"",editingUrl:!1,isResolvingUrl:!1}),a()(this,"setUrl",(e=>{const{attributes:t,noticeOperations:n,setAttributes:r}=this.props,{style:a}=t;if(!e||c.Q7===e||"modal"===a)return;const o=(0,p.Ve)(e);if(o){const t={eventId:o,url:e};(0,g.Z)(t.url,this.setIsResolvingUrl).then((e=>{const a=(0,d.S)(u.Z,{...t,url:e});r(a),this.setState({editedUrl:e}),n.removeAllNotices()})).catch((()=>{r({eventId:void 0,url:void 0}),this.setErrorNotice()}))}else this.setErrorNotice()})),a()(this,"setIsResolvingUrl",(e=>this.setState({isResolvingUrl:e}))),a()(this,"setEditingUrl",(e=>this.setState({editingUrl:e}))),a()(this,"setErrorNotice",(()=>{const{noticeOperations:e,onReplace:t}=this.props,{editedUrl:n}=this.state;e.removeAllNotices(),e.createErrorNotice((0,o.createElement)(o.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,o.createElement)(s.Button,{isLink:!0,onClick:()=>(0,p.N3)(n,t)},_x("Convert block to link","button label","jetpack"))))})),a()(this,"submitForm",(e=>{e&&e.preventDefault(),this.setUrl((0,p.qq)(this.state.editedUrl)),this.setState({editingUrl:!1})})),a()(this,"cannotEmbed",(()=>{const{url:e}=this.props.attributes,{isResolvingUrl:t}=this.state;return!t&&e&&!c.Wh.test(e)}))}componentDidMount(){const{url:e}=this.props.attributes;this.setUrl(e)}renderLoading(){return(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(s.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack")))}renderInspectorControls(){const{style:e}=this.props.attributes,{attributes:t,clientId:n,setAttributes:r}=this.props,a=[{value:"inline",label:__("In-page Embed","jetpack"),preview:(0,o.createElement)("div",{className:"block-editor-block-preview__container"},(0,o.createElement)("img",{src:h,alt:__("In page Eventbrite checkout example","jetpack")}))},{value:"modal",label:__("Button & Modal","jetpack")}];return(0,o.createElement)(f.Z,{title:_x("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack"),clientId:n,styleOptions:a,onSelectStyle:r,activeStyle:e,attributes:t,viewportWidth:130})}renderEditEmbed(){const{className:e,noticeUI:t}=this.props,{editedUrl:n}=this.state,r=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.Placeholder,{label:__("Eventbrite Checkout","jetpack"),instructions:__("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:c.qv}),notices:t},(0,o.createElement)("form",{onSubmit:this.submitForm},(0,o.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":__("Eventbrite URL","jetpack"),placeholder:__("Enter an event URL to embed here…","jetpack"),onChange:e=>this.setState({editedUrl:e.target.value})}),(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},_x("Embed","submit button label","jetpack"))),(0,o.createElement)("div",{className:"components-placeholder__learn-more"},(0,o.createElement)(s.ExternalLink,{href:r},__("Learn more about Eventbrite embeds","jetpack")))))}renderInlinePreview(){const{className:e}=this.props,{eventId:t}=this.props.attributes;if(!t)return;const n=`eventbrite-widget-${t}`,r=`\n\t\t\t<script src="https://www.eventbrite.com/static/widgets/eb_widgets.js"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ${t},\n\t\t\t\t\tiframeContainerId: '${n}',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id="${n}"></div>\n\t\t`;return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.SandBox,{html:r}),(0,o.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}render(){const{attributes:e}=this.props,{url:t,style:n}=e,{editingUrl:r,isResolvingUrl:a}=this.state;return a?this.renderLoading():r||!t||this.cannotEmbed()?this.renderEditEmbed():(0,o.createElement)(o.Fragment,null,this.renderInspectorControls(),(0,o.createElement)(l.BlockControls,null,(0,o.createElement)(b.J,{setEditingUrl:this.setEditingUrl})),"modal"===n?(0,o.createElement)(l.InnerBlocks,{template:[[c.Ss.name,c.Ss.attributes]],templateLock:"all"}):this.renderInlinePreview())}}t.Z=(0,s.withNotices)(v)},45166:function(e,t,n){"use strict";n.d(t,{Ss:function(){return d},Wh:function(){return m},Q7:function(){return f},u2:function(){return g},qv:function(){return v},Xd:function(){return k}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(28559),l=n(48631),c=n(62337),u=n(74318),p=n(57535);const __=a.__,_x=a._x,d={name:"jetpack/button",attributes:{element:"a",text:_x("Register","verb: e.g. register for an event.","jetpack"),uniqueId:"eventbrite-widget-id"}},m=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,h=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,f="https://www.eventbrite.com/e/test-event-tickets-123456789",g="eventbrite",b=__("Eventbrite Checkout","jetpack"),v=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,{id:"eventbrite-icon"},(0,r.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),k={title:b,description:__("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:{src:v,foreground:(0,p.m)()},category:"embed",keywords:[_x("events","block search term","jetpack"),_x("tickets","block search term","jetpack")],supports:{html:!1,align:!0},attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&(m.test(e.textContent)||h.test(e.textContent)),transform:e=>(0,i.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}]},example:{attributes:{url:f,eventId:123456789,style:"modal"},innerBlocks:[d]},deprecated:l.Z}},74318:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{eventId:n,style:o,url:i}=t;if(n)return"modal"===o?(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null)):i&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:i},i)}},62194:function(e,t,n){"use strict";n.d(t,{N3:function(){return o},Ve:function(){return i},qq:function(){return s}});var r=n(69307),a=n(4981);function o(e,t){const n=(0,r.createElement)("a",{href:e},e);t((0,a.createBlock)("core/paragraph",{content:(0,r.renderToString)(n)}))}function i(e){if(!e)return null;const t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e&&"string"==typeof e?e.trim():null}},47271:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(4981),u=n(9818);const __=s.__;function p(e){let{onReplace:t}=e;const[n,a]=(0,i.useState)(!1),s=(0,u.useSelect)((e=>e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")));return{isGatheringStorm:n,unleashStorm:(e,n)=>{if((0,r.isEmpty)(e))return;const i=e.match(/^https?:\/\/(?:www\.)?twitter\.com\/([^/]+)\/status\/\d+/);if((0,r.isEmpty)(i))return;const p=i[1];n.removeAllNotices(),a(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/tweetstorm/gather",{url:e})}).then((e=>{if(a(!1),!(0,r.isArray)(e))return void n.createErrorNotice(__("An error occurred. Please try again later.","jetpack"));if((0,r.isEmpty)(e))return void n.createErrorNotice(__("We were unable to get any content from this tweet.","jetpack"));t(e.map((e=>{switch(e.type){case"paragraph":return(0,c.createBlock)("core/paragraph",{content:e.content});case"gallery":return(0,c.createBlock)("core/gallery",{images:e.images});case"image":return(0,c.createBlock)("core/image",{url:e.url,alt:e.alt});case"video":return(0,c.createBlock)("core/video",{src:e.url,caption:e.alt});case"embed":return(0,c.createBlock)("core/embed",{url:e.url})}})));(0,r.some)(s,(e=>"twitter"===e.service_name&&`@${p}`===e.display_name))||(0,u.dispatch)("core/notices").createWarningNotice(__("We were unable to verify that this Twitter thread was published on a Twitter account belonging to you. Please ensure you have permission to reproduce it before publishing.","jetpack")),(0,u.dispatch)("core/notices").createSuccessNotice(__("Twitter thread successfully imported","jetpack"),{type:"snackbar"})})).catch((e=>{a(!1),n.createErrorNotice(e.message)}))}}}},72966:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=(0,r.forwardRef)((function(e,t){let{onSubmit:n,onChange:a,value:i=""}=e;return(0,r.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:n},(0,r.createElement)("input",{type:"text",className:"wp-block-jetpack-gif_input components-placeholder__input",placeholder:__("Enter search terms, e.g. cat…","jetpack"),value:i,onChange:a,ref:t,"aria-labelledby":"wp-block-jetpack-gif_search-button"}),(0,r.createElement)(o.Button,{id:"wp-block-jetpack-gif_search-button",isSecondary:!0,type:"submit"},__("Search","jetpack")))}))},32882:function(e,t,n){"use strict";n.d(t,{U:function(){return r}});const r="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW"},68055:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(52175);function i(){return(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(a.PanelBody,{className:"components-panel__body-gif-branding"},(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},(0,r.createElement)(a.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),(0,r.createElement)(a.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"}))))}},61796:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31072),u=n(80917),p=n(72966),d=n(68055),m=n(21835);const __=i.__;t.Z=function(e){let{attributes:t,setAttributes:n,className:a,isSelected:i}=e;const{align:h,caption:f,giphyUrl:g,searchText:b,paddingTop:v}=t,k=o()(a,`align${h}`),[y,E]=(0,r.useState)(!1),w=(0,r.createRef)(),{isFetching:_,giphyData:C,fetchGiphyData:j}=(0,m.Z)(),S=()=>{w.current.focus(),E(!1)};(0,r.useEffect)((()=>{C&&C[0]&&n((0,u.ix)(C[0]))}),[C,n]);const x=e=>{e.preventDefault(),t.searchText&&!_&&j((0,u.Gr)(t.searchText))},T=e=>n({searchText:e.target.value});return(0,r.createElement)("div",{className:k},(0,r.createElement)(d.Z,null),g?(0,r.createElement)("figure",null,i&&(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w}),i&&C&&C.length>1&&(0,r.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},C.map((e=>{const t={backgroundImage:`url(${e.images.downsized_still.url})`};return(0,r.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:e.id,onClick:t=>{t.preventDefault(),(e=>{n((0,u.ix)(e))})(e)},style:t})}))),(0,r.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:{paddingTop:v}},(0,r.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:S,onKeyDown:S,role:"button",tabIndex:"0"}),(0,r.createElement)("iframe",{src:g,title:b})),(!l.RichText.isEmpty(f)||i)&&!!g&&(0,r.createElement)(l.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:y,unstableOnFocus:()=>E(!1),onChange:e=>n({caption:e}),placeholder:__("Write caption…","jetpack"),tagName:"figcaption",value:f})):(0,r.createElement)(s.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:c.qv,label:c.TN,instructions:__("Search for a term or paste a Giphy URL","jetpack")},(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w})))}},21835:function(e,t,n){"use strict";var r=n(69307);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[t,n]=(0,r.useState)(!1),[a,o]=(0,r.useState)(e),[i,s]=(0,r.useState)("");return(0,r.useEffect)((()=>{if(!i)return;(async()=>{n(!0);const e=await fetch(i).then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json(),n=void 0!==t.data.images?[t.data]:t.data;n[0].images&&o(n)}n(!1)})()}),[i]),{isFetching:t,giphyData:a,fetchGiphyData:s}}},31072:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},TN:function(){return c},qv:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(61796),s=n(57535);const __=a.__,_x=a._x,l="gif",c=__("GIF","jetpack"),u=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),p={title:c,icon:{src:u,foreground:(0,s.m)()},category:"embed",keywords:[_x("animated","block search term","jetpack"),_x("giphy","block search term","jetpack"),_x("image","block search term","jetpack")],description:__("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:i.Z,save:()=>null,example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}}},80917:function(e,t,n){"use strict";n.d(t,{Gr:function(){return s},ix:function(){return u}});var r=n(32882);const a=e=>`https://api.giphy.com/v1/gifs/search?q=${encodeURIComponent(e)}&api_key=${encodeURIComponent(r.U)}&limit=10`,o=e=>`https://api.giphy.com/v1/gifs/${encodeURIComponent(e)}?api_key=${encodeURIComponent(r.U)}`,i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;const n=e.split(t);return n[n.length-1]},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=null;e=e.trim();const n=/^https?:\/\/(media\.|i\.)?giphy\.com\/(embed|gifs|media)?\/?([-\w]*)(\/giphy)?(\.gif)?$/,r=e.match(n);return r&&r[3]&&(t=i(r[3],"-")),t?o(t):a(e)},l=e=>`${Math.floor(e.images.original.height/e.images.original.width*100)}%`,c=e=>e?.embed_url,u=e=>({giphyUrl:c(e),paddingTop:l(e)})},76280:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__,_x=o._x;t.Z=e=>{const{className:t,embedValue:n,onChange:o,onSubmit:i}=e;return(0,r.createElement)(a.PanelBody,{title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:i,className:t},(0,r.createElement)("textarea",{type:"text",value:n,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:o}),(0,r.createElement)(a.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack"))))}},53997:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(52175),l=n(90162),c=n(4981),u=n(76280),p=n(54286),d=n(3030),m=n(58014);const __=a.__,_x=a._x;t.Z=(0,i.compose)(o.withNotices,(0,l.withViewportMatch)({isMobile:"< small"}))((function(e){const{attributes:{url:t,height:n},className:a,isMobile:i,isSelected:l,name:h,noticeOperations:f,noticeUI:g,setAttributes:b}=e,[v,k]=(0,r.useState)(t||""),[y,E]=(0,r.useState)(!1),[w,_]=(0,r.useState)(!1);(0,r.useEffect)((()=>{!l&&w&&_(!1)}),[l,w]);const C=()=>{_(!0)},j=e=>{e&&e.preventDefault();const t=(0,d.L7)(v.trim());if(!d.Wh.test(t.url))return f.removeAllNotices(),void f.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or Embed Code. Please note, you need to use the 'Public URL' or 'Embed Code', the 'Shareable Link' will not work.","jetpack"));b(t),E(!1),f.removeAllNotices()},S=(0,c.getBlockDefaultClassName)(h),x=`<iframe src="${t}" style="border:0" scrolling="no" frameborder="0" height="${i?"300":n}"></iframe>`,T=(0,r.createElement)(o.ExternalLink,{href:"https://en.support.wordpress.com/google-calendar/"},__("Enable Permissions for the calendar you want to share","jetpack")),N=(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Z,{className:`${S}-embed-form-sidebar`,embedValue:v,onChange:e=>k(e.target.value),onSubmit:j}));if(y||!t){const e=(0,m.Wp)()||(0,m.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/google-calendar/":"https://jetpack.com/support/jetpack-blocks/google-calendar/";return(0,r.createElement)("div",{className:a},N,(0,r.createElement)(o.Placeholder,{className:a,label:__("Google Calendar","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:(0,r.createElement)("ol",{className:`${S}-placeholder-instructions`},(0,r.createElement)("li",null,T),(0,r.createElement)("li",null,__("Paste the embed code you copied from your Google Calendar below","jetpack"))),notices:g},(P=`${S}-embed-form-editor`,(0,r.createElement)("form",{onSubmit:j,className:P},(0,r.createElement)("textarea",{type:"text",value:v,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:e=>k(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)("div",{className:`${S}-placeholder-links`},(0,r.createElement)(o.ExternalLink,{href:e},__("Learn more","jetpack")))))}var P;return(0,r.createElement)("div",{className:a},N,(0,r.createElement)("div",null,(0,r.createElement)(o.SandBox,{html:x,onFocus:C}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:C})))}))},54286:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"23",viewBox:"0 0 24 23",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19.5,23h-15c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h15c2.2,0,4,1.8,4,4v15C23.5,21.2,21.7,23,19.5,23z M4.5,2 c-1.1,0-2,0.9-2,2v15c0,1.1,0.9,2,2,2h15c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2H4.5z M6.9,3.9L6.9,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0C6.5,5.9,6.1,5.5,6.1,5V4.7C6.1,4.3,6.5,3.9,6.9,3.9z M17,3.9L17,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0c-0.5,0-0.9-0.4-0.9-0.9V4.7C16.2,4.3,16.5,3.9,17,3.9z M8.8,17.6c1.8,0,3.2-1,3.2-2.4 c0-1.1-0.7-1.8-1.8-1.9v-0.1c0.9-0.2,1.5-0.9,1.5-1.8c0-1.3-1.2-2.2-2.9-2.2c-1.8,0-2.9,1-3,2.5h1.6c0-0.7,0.6-1.1,1.4-1.1 c0.8,0,1.3,0.4,1.3,1.1c0,0.7-0.5,1.1-1.3,1.1h-1v1.3h1c0.9,0,1.5,0.4,1.5,1.1c0,0.7-0.6,1.2-1.4,1.2c-0.9,0-1.4-0.4-1.5-1.1H5.7 C5.8,16.6,7,17.6,8.8,17.6z M17.6,17.4V9.3h-1.7l-2.1,1.4v1.6l2-1.4h0.1v6.4H17.6z"}))},13984:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(4981),i=n(53997),s=n(3030),l=n(54286),c=n(57535);const __=a.__,_x=a._x,u="google-calendar",p={title:__("Google Calendar","jetpack"),description:__("Embed a Google Calendar","jetpack"),keywords:[_x("events","block search term","jetpack"),_x("dates","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack")],icon:{src:l.Z,foreground:(0,c.m)()},category:"embed",supports:{align:!0,alignWide:!0,html:!1},attributes:{url:{type:"string"},height:{type:"integer",default:600}},edit:i.Z,save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)},transforms:{from:[{type:"shortcode",tag:"googleapps",isMatch:function(e){return"calendar"===e.named.domain},attributes:{url:{type:"string",shortcode:e=>{let{named:{domain:t,dir:n,query:r}}=e;return`https://${t}.google.com/${n}?${r}`}}}},{type:"raw",isMatch:e=>"P"===e.nodeName&&s.Wh.test(e.textContent),transform:e=>(0,o.createBlock)("jetpack/google-calendar",{url:e.textContent.trim()})},{type:"raw",isMatch:e=>"FIGURE"===e.nodeName&&s.E6.test(e.innerHTML),transform:e=>{const{url:t,height:n}=(0,s.jj)(e.innerHTML.trim());return(0,o.createBlock)("jetpack/google-calendar",{url:t,height:n})}}]},example:{attributes:{url:"https://calendar.google.com/calendar/embed?src=jb4bu80jirp0u11a6niie21pp4%40group.calendar.google.com&ctz=America/New_York"}}}},3030:function(e,t,n){"use strict";n.d(t,{Wh:function(){return a},E6:function(){return o},jj:function(){return c},L7:function(){return u}});const r="s*https?://calendar.google.com/calendar",a=new RegExp(`^${r}`,"i"),o=new RegExp(`<iframe((?:\\s+\\w+=(['"]).*?\\2)*)\\s+src=(["'])(${r}.*?)\\3((?:\\s+\\w+=(['"]).*?\\6)*)`,"i"),i=new RegExp(`${r}\\?cid=([-A-Za-z0-9+/]+={0,3})`,"i"),s=/\s+(\w+)=(["'])(.*?)\2/gi;function l(e){const t=i.exec(e);if(t)return"https://calendar.google.com/calendar/embed?src="+encodeURIComponent(atob(t[1]))}function c(e){const t=o.exec(e);if(!t)return;const n={};return t.forEach(((e,t)=>{if(0===t)return;if(a.test(e))return void(n.url=e);let r;for(;null!==(r=s.exec(e));)n[r[1]]=r[3]})),{url:n.url,width:n.width,height:n.height}}function u(e){return o.test(e)?c(e):i.test(e)?{url:l(e)}:{url:e}}},74956:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{attributes:t,setAttributes:n}=e;const{orientation:o}=t;return(0,r.createElement)(a.PanelBody,{title:__("Orientation","jetpack")},(0,r.createElement)(a.RadioControl,{selected:o||"horizontal",options:[{label:__("Side by side","jetpack"),value:"horizontal"},{label:__("Above and below","jetpack"),value:"vertical"}],onChange:e=>n({orientation:e})}))}},38544:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(94333),s=n(65736),l=n(5968),c=n(74956),u=n(91667),p=n(12379);n(728);const __=s.__;t.Z=e=>{let{attributes:t,className:n,clientId:s,isSelected:d,setAttributes:m}=e;const{imageBefore:h,imageAfter:f,caption:g,orientation:b}=t;let v=null,k=null;const y=(0,r.useRef)();i.useResizeObserver&&([v,k]=(0,i.useResizeObserver)(),(0,p.Z)((e=>{e>0&&"undefined"!=typeof juxtapose&&juxtapose.sliders&&juxtapose.sliders.forEach((t=>{t.wrapper.parentElement.id===s&&t.optimizeWrapper(e)}))}),200,k.width));const E=h&&h.url&&f&&f.url?"image-compare__comparison juxtapose":"image-compare__placeholder";return(0,r.useLayoutEffect)((()=>{h.url&&f.url&&"undefined"!=typeof juxtapose&&juxtapose.makeSlider(y?.current)}),[h,f,b]),(0,r.createElement)("figure",{className:n,id:s},v,(0,r.createElement)(a.InspectorControls,{key:"controls"},(0,r.createElement)(c.Z,{attributes:t,setAttributes:m})),(0,r.createElement)("div",{ref:y,className:E,"data-mode":b||"horizontal"},(0,r.createElement)(o.Placeholder,{label:null},(0,r.createElement)("div",{className:"image-compare__image-before"},(0,r.createElement)(u.Z,{image:{id:h.id,url:h.url,alt:h.alt},placeHolderLabel:__("Image before","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageBefore:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})),(0,r.createElement)("div",{className:"image-compare__image-after"},(0,r.createElement)(u.Z,{image:{id:f.id,url:f.url,alt:f.alt},placeHolderLabel:__("Image after","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageAfter:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})))),(!a.RichText.isEmpty(g)||d&&h.url&&f.url)&&(0,r.createElement)(a.RichText,{tagName:"figcaption",placeholder:__("Write caption","jetpack"),value:g,onChange:e=>m({caption:e}),inlineToolbar:!0}))}},94703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M21 4h-6v1.5h6c.3 0 .5.2.5.5v.4l-3.6 3.5L15 8.1v1.8l2.6 1.7c.1.1.3.1.4.1.2 0 .4-.1.5-.2l3-2.9V18c0 .3-.2.5-.5.5h-6V20h6c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM1 6v12c0 1.1.9 2 2 2h10.5V4H3c-1.1 0-2 .9-2 2zm11 12.5H3c-.3 0-.5-.2-.5-.5v-1.4L5 14.7l1.5-1.1.1-.1 3 1.9c.1.1.3.1.4.1.2 0 .4-.1.5-.2L12 14v4.5zm0-6.6l-2.1 2L7 12c-.1-.1-.3-.1-.4-.1h-.1c-.1 0-.3.1-.4.1l-1.1.9-2.5 1.8V6c0-.3.2-.5.5-.5h9v6.4z"}))},91667:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(55609);t.Z=(0,a.compose)([i.withNotices])((e=>{const{image:t,noticeOperations:n,noticeUI:a,onChange:i,placeHolderLabel:s}=e,l=(0,r.createElement)("img",{id:t.id,src:t.url,alt:t.alt}),c=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.MediaPlaceholder,{labels:{title:s},accept:"image/*",allowedTypes:["image"],onSelect:i,onError:e=>n.createErrorNotice(e),notices:a}));return t&&t.url?l:c}))},1624:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return d}});var r=n(65736),a=n(38544),o=n(94703),i=n(31105),s=n(90767),l=n(58632),c=n(20510),u=n(57535);const __=r.__,_x=r._x,p="image-compare",d={title:__("Image Compare","jetpack"),description:__("Compare two images with a slider. Works best with images of the same size.","jetpack"),icon:{src:o.Z,foreground:(0,u.m)()},category:(0,c.Z)("media","layout"),keywords:[_x("juxtapose","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("side by side","block search term","jetpack"),_x("slider","block search term","jetpack")],attributes:{imageBefore:{type:"object",default:{}},imageAfter:{type:"object",default:{}},caption:{type:"string"},orientation:{type:"string",default:"horizontal"}},example:{attributes:{imageBefore:{id:1,url:l,alt:__("Before","jetpack")},imageAfter:{id:2,url:s,alt:__("After","jetpack")},caption:__("Example image","jetpack")}},edit:a.Z,save:i.Z}},31105:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t,className:n}=e;const{imageBefore:o,imageAfter:i,caption:s,orientation:l}=t;return(0,r.createElement)("figure",{className:n},(0,r.createElement)("div",{className:"juxtapose","data-mode":l||"horizontal"},(0,r.createElement)("img",{id:o.id,src:o.url,alt:o.alt,width:o.width,height:o.height,className:"image-compare__image-before"}),(0,r.createElement)("img",{id:i.id,src:i.url,alt:i.alt,width:i.width,height:i.height,className:"image-compare__image-after"})),!a.RichText.isEmpty(s)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:s}))}},12379:function(e,t,n){"use strict";var r=n(69307);t.Z=(e,t,n)=>{(0,r.useEffect)((()=>{const r=setTimeout((()=>e(n)),t);return()=>clearTimeout(r)}),[n])}},728:function(e,t,n){"use strict";var r=n(47701);n.n(r)()((function(){const e={sliders:[],OPTIMIZATION_ACCEPTED:1,OPTIMIZATION_WAS_CONSTRAINED:2};function t(e,t){const n=this;this.image=new Image,this.loaded=!1,this.image.onload=function(){n.loaded=!0,t._onLoaded()},this.image.src=e.src,this.image.alt=e.alt||"",this.label=e.label||!1}function n(e,t){e&&e.classList.add(t)}function r(e,t){e&&e.classList.remove(t)}function a(e){return{width:parseInt(window.getComputedStyle(e).width,10),height:parseInt(window.getComputedStyle(e).height,10)}}function o(e,t){let n;if("string"==typeof t||"number"==typeof t)n=parseInt(t,10);else{const r=e.getBoundingClientRect(),a={top:r.top+document.body.scrollTop+document.documentElement.scrollTop,left:r.left+document.body.scrollLeft+document.documentElement.scrollLeft},o=e.offsetWidth;n=(function(e){let t;return t=e.pageX?e.pageX:e.touches?e.touches[0].pageX:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,t}(t)-a.left)/o*100}return n}function i(e,t,n){let r;if("string"==typeof t||"number"==typeof t)r=parseInt(t,10);else{const a=e.getBoundingClientRect(),o={top:a.top+n.body.scrollTop+n.documentElement.scrollTop,left:a.left+n.body.scrollLeft+n.documentElement.scrollLeft},i=e.offsetHeight;r=(function(e){let t;return t=e.pageY?e.pageY:e.touches?e.touches[0].pageY:e.clientY+document.body.scrollTop+document.documentElement.scrollTop,t}(t)-o.top)/i*100}return r}const s={animate:!0,showLabels:!0,makeResponsive:!0};function l(e,n,r){let a;for(a in this.element=e,this.options={animate:!0,showLabels:!0,makeResponsive:!0,startingPosition:"50%",mode:"horizontal",callback:null},this.options)a in r&&(this.options[a]=a in s?"string"!=typeof(o=r[a])?Boolean(o):!("false"===o||""===o):r[a]);var o;2===n.length&&(this.imgBefore=new t(n[0],this),this.imgAfter=new t(n[1],this))}l.prototype={updateSlider:function(e,t){let a;a="vertical"===this.options.mode?i(this.slider,e,this.sliderParentDocument):o(this.slider,e),a=a.toFixed(2)+"%";const s=parseFloat(a),l=100-s+"%";s>0&&s<100&&(r(this.handle,"transition"),r(this.rightImage,"transition"),r(this.leftImage,"transition"),this.options.animate&&t&&(n(this.handle,"transition"),n(this.leftImage,"transition"),n(this.rightImage,"transition")),"vertical"===this.options.mode?(this.handle.style.top=a,this.leftImage.style.height=a,this.rightImage.style.height=l):(this.handle.style.left=a,this.leftImage.style.width=a,this.rightImage.style.width=l),this.sliderPosition=a)},getPosition:function(){return this.sliderPosition},displayLabel:function(e,t){const n=document.createElement("div");n.className="jx-label",n.setAttribute("tabindex",0),function(e,t){document.body.textContent?e.textContent=t:e.innerText=t}(n,t),e.appendChild(n)},setStartingPosition:function(e){this.options.startingPosition=e},calculateDims:function(e,t){const n=(r=this.imgBefore.image,{width:r.naturalWidth,height:r.naturalHeight,aspect:function(){return this.width/this.height}}).aspect();var r;return e?t=e/n:t&&(e=t*n),{width:e,height:t,ratio:n}},responsivizeIframe:function(e){return e.height<window.innerHeight?e.ratio>=1&&(this.wrapper.style.paddingTop=parseInt((window.innerHeight-e.height)/2)+"px"):e.height>window.innerHeight&&(e=this.calculateDims(0,window.innerHeight),this.wrapper.style.paddingLeft=parseInt((window.innerWidth-e.width)/2)+"px"),e},setWrapperDimensions:function(){const e=a(this.wrapper.parentNode).width,t=a(this.wrapper.parentNode).height;let n=this.calculateDims(e,t);window.location===window.parent.location||this.options.makeResponsive||(n=this.responsivizeIframe(n)),this.wrapper.style.height=parseInt(n.height)+"px",this.wrapper.style.width=parseInt(n.width)+"px"},optimizeWrapper:function(t){let n=e.OPTIMIZATION_ACCEPTED;return this.imgBefore.image.naturalWidth>=t&&this.imgAfter.image.naturalWidth>=t?(this.wrapper.style.width=t+"px",n=e.OPTIMIZATION_WAS_CONSTRAINED):this.imgAfter.image.naturalWidth<t?this.wrapper.style.width=this.imgAfter.image.naturalWidth+"px":this.wrapper.style.width=this.imgBefore.image.naturalWidth+"px",this.setWrapperDimensions(),n},_onLoaded:function(){if(this.imgBefore&&!0===this.imgBefore.loaded&&this.imgAfter&&!0===this.imgAfter.loaded){if(this.wrapper=this.element,!this.wrapper||this.wrapper.querySelector(".jx-slider"))return;n(this.wrapper,"juxtapose"),this.wrapper.style.width=this.imgBefore.image.naturalWidth,this.setWrapperDimensions(),this.slider=document.createElement("div"),this.slider.className="jx-slider",this.wrapper.appendChild(this.slider),this.sliderParentDocument=this.wrapper.ownerDocument,"horizontal"!==this.options.mode&&n(this.slider,this.options.mode),this.handle=document.createElement("div"),this.handle.className="jx-handle",this.rightImage=document.createElement("div"),this.rightImage.className="jx-image jx-right",this.rightImage.appendChild(this.imgAfter.image),this.leftImage=document.createElement("div"),this.leftImage.className="jx-image jx-left",this.leftImage.appendChild(this.imgBefore.image),this.slider.appendChild(this.handle),this.slider.appendChild(this.leftImage),this.slider.appendChild(this.rightImage),this.leftArrow=document.createElement("div"),this.rightArrow=document.createElement("div"),this.control=document.createElement("div"),this.controller=document.createElement("div"),this.leftArrow.className="jx-arrow jx-left",this.rightArrow.className="jx-arrow jx-right",this.control.className="jx-control",this.controller.className="jx-controller",this.controller.setAttribute("tabindex",0),this.controller.setAttribute("role","slider"),this.controller.setAttribute("aria-valuenow",50),this.controller.setAttribute("aria-valuemin",0),this.controller.setAttribute("aria-valuemax",100),this.controller.setAttribute("aria-label",window.imageCompareHandle?.msg||"Slide to compare images"),this.handle.appendChild(this.leftArrow),this.handle.appendChild(this.control),this.handle.appendChild(this.rightArrow),this.control.appendChild(this.controller),this._init()}},_init:function(){this.updateSlider(this.options.startingPosition,!1),!0===this.options.showLabels&&(this.imgBefore.label&&this.displayLabel(this.leftImage,this.imgBefore.label),this.imgAfter.label&&this.displayLabel(this.rightImage,this.imgAfter.label));const t=this;window.addEventListener("resize",(function(){t.setWrapperDimensions()})),this.slider.addEventListener("mousedown",(function(e){e.preventDefault(),t.updateSlider(e,!0);let n=!0;this.addEventListener("mousemove",(function(e){e.preventDefault(),n&&t.updateSlider(e,!1)})),this.addEventListener("mouseup",(function(e){e.preventDefault(),e.stopPropagation(),n=!1}))})),this.slider.addEventListener("touchstart",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!0),this.addEventListener("touchmove",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!1)}))})),this.handle.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;let r=parseFloat(this.style.left);if(37===n){r-=1;const e=parseFloat(this.style.left)-1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}if(39===n){r+=1;const e=parseFloat(this.style.left)+1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}})),this.leftImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("90%",!0),t.controller.setAttribute("aria-valuenow",91))})),this.rightImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("10%",!0),t.controller.setAttribute("aria-valuenow",10))})),e.sliders.push(this),this.options.callback&&"function"==typeof this.options.callback&&this.options.callback(this)}},e.makeSlider=function(t,r){void 0===r&&(r=e.sliders.length);const a=t,o=a.querySelectorAll("img");if(o.length<2)return;const i={};a.getAttribute("data-animate")&&(i.animate=a.getAttribute("data-animate")),a.getAttribute("data-showlabels")&&(i.showLabels=a.getAttribute("data-showlabels")),a.getAttribute("data-startingposition")&&(i.startingPosition=a.getAttribute("data-startingposition")),a.getAttribute("data-mode")&&(i.mode=a.getAttribute("data-mode")),a.getAttribute("data-makeresponsive")&&(i.mode=a.getAttribute("data-makeresponsive"));return n(t,"juxtapose-"+r),a.innerHTML?a.innerHTML="":a.innerText="",new e.JXSlider(t,[{src:o[0].src,label:o[0].getAttribute("data-label"),alt:o[0].alt},{src:o[1].src,label:o[1].getAttribute("data-label"),alt:o[1].alt}],i)},e.scanPage=function(){const t=document.querySelectorAll(".juxtapose");for(let n=0;n<t.length;n++)e.makeSlider(t[n],n)},e.JXSlider=l,window.juxtapose=e,e.scanPage()}))},18776:function(e,t){"use strict";t.Z={accessToken:{type:"string"},instagramUser:{type:"string"},columns:{type:"number",default:3,min:1,max:6},count:{type:"number",default:9,min:1,max:30},spacing:{type:"number",default:10,min:0,max:50},isStackedOnMobile:{type:"boolean",default:!0}}},14937:function(e,t,n){"use strict";n.d(t,{u:function(){return r},D:function(){return a}});const r=30,a="jetpack-new-instagram-connection"},3802:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(14937);const __=o.__,_n=o._n;function s(e){let{accountImageTotal:t,attributes:n,currentUserConnected:s,disconnectFromService:l,shouldRenderSidebarNotice:c,setAttributes:u}=e;const{accessToken:p,columns:d,count:m,instagramUser:h,isStackedOnMobile:f,spacing:g}=n;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.PanelBody,{title:__("Account Settings","jetpack")},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("span",null,__("Account","jetpack")),(0,r.createElement)(a.ExternalLink,{href:`https://www.instagram.com/${h}/`},"@",h)),s&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isDestructive:!0,isLink:!0,onClick:()=>l(p)},__("Disconnect your account","jetpack")))),(0,r.createElement)(a.PanelBody,{title:__("Display Settings","jetpack")},c?(()=>{const e=t?(0,o.sprintf)(
+/* translators: placeholder is a number. */
+_n("There is currently only %s post in your Instagram account.","There are currently only %s posts in your Instagram account.",t,"jetpack"),t):__("There are currently no posts in your Instagram account.","jetpack");return(0,r.createElement)("div",{className:"wp-block-jetpack-instagram-gallery__count-notice"},(0,r.createElement)(a.Notice,{isDismissible:!1,status:"info"},e))})():null,(0,r.createElement)(a.RangeControl,{label:__("Number of Posts","jetpack"),value:m,onChange:e=>u({count:e}),min:1,max:i.u}),(0,r.createElement)(a.RangeControl,{label:__("Number of Columns","jetpack"),value:d,onChange:e=>u({columns:e}),min:1,max:6}),(0,r.createElement)(a.RangeControl,{label:__("Image Spacing (px)","jetpack"),value:g,onChange:e=>u({spacing:e}),min:0,max:50}),(0,r.createElement)(a.ToggleControl,{label:__("Stack on mobile","jetpack"),checked:f,onChange:()=>u({isStackedOnMobile:!f})})))}},66137:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(18776),p=n(14937),d=n(14087),m=n(10273),h=n(2992),f=n(44420),g=n(76853),b=n(63729),v=n(3802);const __=c.__;t.Z=(0,l.withNotices)((e=>{const{attributes:t,className:n,isSelected:a,noticeOperations:c,noticeUI:k,setAttributes:y}=e,{accessToken:E,align:w,columns:_,count:C,isStackedOnMobile:j,spacing:S}=t;(0,r.useEffect)((()=>{const e=(0,d.S)(u.Z,t);(0,i.isEqual)(e,t)||y(e)}),[t,y]);const[x,T]=(0,r.useState)(E),{isRequestingWpcomConnectUrl:N,wpcomConnectUrl:P}=(0,h.Z)(),{images:A,isLoadingGallery:I,setImages:M}=(0,f.Z)({accessToken:E,noticeOperations:c,setAttributes:y,setSelectedAccount:T}),{connectToService:B,disconnectFromService:R,isConnecting:L,isRequestingUserConnections:Z,userConnections:F}=(0,m.Z)({accessToken:E,noticeOperations:c,selectedAccount:x,setAttributes:y,setImages:M,setSelectedAccount:T}),D=(0,b.Z)(),O=C>A.length?A.length:C,z=!I&&(!E||(0,i.isEmpty)(A)),U=!z,$=E&&I&&(0,i.isEmpty)(A),V=!z&&!$,G=o()(n,{[`align${w}`]:w}),q=o()("wp-block-jetpack-instagram-gallery__grid",`wp-block-jetpack-instagram-gallery__grid-columns-${_}`,{"is-stacked-on-mobile":j}),H={gridGap:S,"--latest-instagram-posts-spacing":S?`${S}px`:void 0},W={padding:S},K=()=>{x&&p.D!==x?y({accessToken:x,instagramUser:(0,i.find)(F,{token:x}).username}):B()};return(0,r.createElement)("div",{className:G},z&&(0,r.createElement)(l.Placeholder,{icon:"instagram",instructions:D?Z||F.length?void 0:__("Connect to Instagram to start sharing your images.","jetpack"):__("First, you'll need to connect your WordPress.com account.","jetpack"),label:__("Latest Instagram Posts","jetpack"),notices:k},D?(()=>{const e=F.length>0,t=[...(0,i.map)(F,(e=>({label:`@${e.username}`,value:e.token}))),{label:__("Add a new account","jetpack"),value:p.D}],n=L||Z||e&&!x;return(0,r.createElement)("div",null,e&&(0,r.createElement)(l.RadioControl,{label:__("Select your Instagram account:","jetpack"),onChange:e=>T(e),options:t,selected:x}),p.D===x&&(0,r.createElement)("p",{className:"wp-block-jetpack-instagram-gallery__new-account-instructions"},__("If you are currently logged in to Instagram on this device, you might need to log out of it first.","jetpack")),(0,r.createElement)(l.Button,{disabled:n,isPrimary:!0,onClick:K},L&&__("Connecting…","jetpack"),Z&&__("Loading your connections…","jetpack"),!L&&!Z&&__("Connect to Instagram","jetpack")))})():(0,r.createElement)(l.Button,{disabled:N||!P,href:P,isSecondary:!0},__("Connect to WordPress.com","jetpack"))),$&&(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(l.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack"))),V&&(0,r.createElement)("div",{className:q,style:H},(0,i.times)(a?C:O,(e=>(0,r.createElement)("span",{className:o()("wp-block-jetpack-instagram-gallery__grid-post"),key:e,style:W},(e=>{if(A[e]){const n=A[e];return(0,r.createElement)(g.Z,{alt:n.title||n.url,src:n.url,attributes:t,spacing:S})}return(0,r.createElement)("img",{alt:__("Latest Instagram Posts placeholder","jetpack"),src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNMyc2tBwAEOgG/c94mJwAAAABJRU5ErkJggg=="})})(e))))),U&&(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(v.Z,{accountImageTotal:A.length,attributes:t,currentUserConnected:D,disconnectFromService:R,shouldRenderSidebarNotice:U&&!$&&A.length<C,setAttributes:y})))}))},76853:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{src:t,alt:n,spacing:a}=e;const[i,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)("auto"),u=(0,r.useRef)(),p=()=>{s(!0),c("auto")};(0,r.useEffect)((()=>{const e=t;if(e){const t=new window.Image;t.src=e,t.onload=p}u.current&&c(u.current.parentNode.getBoundingClientRect().width)}),[t]);const d=-1*a,m=o()("wp-block-jetpack-instagram-gallery__placeholder",{"is-loaded":i}),h=i?{margin:d}:{margin:d,height:l},f=o()({"is-loaded":i});return(0,r.createElement)("span",{style:h,className:m},(0,r.createElement)("img",{alt:n,className:f,ref:u,src:t}))}},77007:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(4981),i=n(18776),s=n(66137),l=n(57535);const __=a.__,_x=a._x,c="instagram-gallery",u={title:__("Latest Instagram Posts","jetpack"),description:__("Display an automatically updating list of the latest posts from your Instagram feed.","jetpack"),icon:{src:"instagram",foreground:(0,l.m)()},category:"embed",keywords:[_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack")],supports:{align:!0,html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"wpcom_instagram_widget"===t},transform:e=>{let{instance:t}=e;return(0,o.createBlock)("jetpack/instagram-gallery",{columns:t.raw.columns,count:t.raw.count,accessToken:t.raw.token_id})}}]},attributes:i.Z,edit:s.Z,save:e=>{let{attributes:{instagramUser:t}}=e;return t&&(0,r.createElement)("div",null,(0,r.createElement)("a",{href:`https://www.instagram.com/${t}/`,rel:"noopener noreferrer",target:"_blank"},`https://www.instagram.com/${t}/`))}}},10273:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(59177),a=n(92819),o=n(86989),i=n.n(o),s=n(69307),l=n(65736),c=n(14937),u=n(63729);const __=l.__;function p(e){let{accessToken:t,noticeOperations:n,selectedAccount:o,setAttributes:l,setImages:p,setSelectedAccount:d}=e;const[m,h]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),[b,v]=(0,s.useState)([]),k=(0,u.Z)();(0,s.useEffect)((()=>{!t&&k&&(g(!0),i()({path:"/wpcom/v2/instagram-gallery/connections"}).then((e=>{g(!1),v(e)})).catch((()=>{g(!1),v([])})))}),[t,k]),(0,s.useEffect)((()=>{c.D===o||(0,a.find)(b,{token:o})||d(void 0)}),[o,d,b]);return{connectToService:()=>{n.removeAllNotices(),h(!0),i()({path:"/wpcom/v2/instagram-gallery/connect-url"}).then((e=>{const t=new r.Z;t.open(e,"connect-to-instagram-popup","toolbar=0,location=0,menubar=0,"+t.getScreenCenterSpecs(700,700)),t.on("message",(e=>{let{keyring_id:t}=e;if(h(!1),t){const e=t.toString();l({accessToken:e}),d(e)}})),t.on("close",(e=>{"connect-to-instagram-popup"===e&&h(!1)}))})).catch((()=>{n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),h(!1)}))},disconnectFromService:()=>{n.removeAllNotices(),l({accessToken:void 0,instagramUser:void 0}),p([])},isConnecting:m,isRequestingUserConnections:f,userConnections:b}}},2992:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(86989),a=n.n(r),o=n(9818),i=n(69307),s=n(96483),l=n(63729);function c(){const{isAutoDraft:e}=(0,o.useSelect)((e=>{const{status:t}=e("core/editor").getCurrentPost();return{isAutoDraft:"auto-draft"===t}})),{savePost:t}=(0,o.useDispatch)("core/editor"),[n,r]=(0,i.useState)(),[c,u]=(0,i.useState)(!1),p=(0,l.Z)();return(0,i.useEffect)((()=>{p||n||c||(e?t():(u(!0),a()({path:(0,s.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((e=>{r(e),u(!1)}))))}),[p,e,c,t,n]),{isRequestingWpcomConnectUrl:c,wpcomConnectUrl:n}}},44420:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(14937);const __=s.__;function u(e){let{accessToken:t,noticeOperations:n,setAttributes:a,setSelectedAccount:s}=e;const[u,p]=(0,i.useState)([]),[d,m]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{t&&(n.removeAllNotices(),m(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/instagram-gallery/gallery",{access_token:t,count:c.u})}).then((e=>{let{external_name:t,images:o}=e;if(m(!1),!o||!(0,r.isArray)(o))return n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),p([]),a({accessToken:void 0,instagramUser:void 0}),void s(void 0);(0,r.isEmpty)(o)&&n.createErrorNotice(__("No images were found in your Instagram account.","jetpack")),a({instagramUser:t}),p(o)})).catch((()=>{m(!1),p([]),a({accessToken:void 0,instagramUser:void 0}),s(void 0)})))}),[t,a,s]),{images:u,isLoadingGallery:d,setImages:p}}},66916:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(48355);const a="likes",o={render:r.Z}},48355:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(12238),l=n(9818),c=n(23539);const __=a.__,u=(0,l.withSelect)((e=>{const{getEditedPostAttribute:t}=e("core/editor");return{areLikesEnabled:t("jetpack_likes_enabled")}})),p=(0,l.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{editPost:t}}));t.Z=(0,i.compose)([u,p])((e=>{let{areLikesEnabled:t,editPost:n}=e;return(0,r.createElement)(s.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},(0,r.createElement)(c.Z,null,(0,r.createElement)(o.CheckboxControl,{label:__("Show likes.","jetpack"),checked:t,onChange:e=>{n({jetpack_likes_enabled:e})}})))}))},25887:function(e,t,n){"use strict";n.d(t,{N3:function(){return r},sf:function(){return a},Cw:function(){return o}});const r="processing",a="success",o="error"},50013:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(18417),s=n(25887);const __=a.__;function l(e){let{auditionNotification:t,clearAudition:n,setAttributes:a,emailPlaceholder:l,processingLabel:c,successLabel:u,errorLabel:p,interests:d,signupFieldTag:m,signupFieldValue:h,connectURL:f}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Text Elements","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Email Placeholder","jetpack"),value:l,onChange:e=>{a({emailPlaceholder:e}),n()}})),(0,r.createElement)(o.PanelBody,{title:__("Notifications","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Processing text","jetpack"),value:c,onChange:e=>{a({processingLabel:e}),t(s.N3)}}),(0,r.createElement)(o.TextControl,{label:__("Success text","jetpack"),value:u,onChange:e=>{a({successLabel:e}),t(s.sf)}}),(0,r.createElement)(o.TextControl,{label:__("Error text","jetpack"),value:p,onChange:e=>{a({errorLabel:e}),t(s.Cw)}})),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Groups","jetpack")},(0,r.createElement)(i.Z,{interests:d,onChange:(e,t)=>{const n=[...new Set([...d,e])].filter((n=>!(n===e&&!t)&&n));a({interests:n})}}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},__("Learn about groups","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Signup Location Tracking","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Signup Field Tag","jetpack"),placeholder:__("SIGNUP","jetpack"),value:m,onChange:e=>a({signupFieldTag:e})}),(0,r.createElement)(o.TextControl,{label:__("Signup Field Value","jetpack"),placeholder:__("website","jetpack"),value:h,onChange:e=>a({signupFieldValue:e})}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},__("Learn about signup location tracking","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Connection","jetpack")},(0,r.createElement)(o.ExternalLink,{href:f},__("Manage Connection","jetpack"))))}},58791:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=["submitButtonText","backgroundButtonColor","textButtonColor","submitButtonClasses","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},submitButtonText:{type:"string",default:__("Join my email list","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},submitButtonClasses:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},migrate:e=>{const t=(0,r.omit)(e,i),n={text:(o=e).submitButtonText||__("Join my email list","jetpack"),textColor:o.textButtonColor,customTextColor:o.customTextButtonColor,backgroundColor:o.backgroundButtonColor,customBackgroundColor:o.customBackgroundButtonColor};var o;return[t,[(0,a.createBlock)("jetpack/button",{element:"button",uniqueId:"mailchimp-widget-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,i),Boolean),save:()=>null}},87539:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(89105),c=n.n(l),u=n(65736),p=n(96483),d=n(55609),m=n(52175),h=n(19916),f=n(50013),g=n(63729),b=n(25887);const __=u.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e=(0,g.Z)();if(e){const t={path:"/wpcom/v2/mailchimp",method:"GET"};s()(t).then((t=>{const n=t.connect_url,r="connected"===t.code?1:2;this.setState({currentUserConnected:e,connected:r,connectURL:n})}),(t=>{this.setState({currentUserConnected:e,connected:2,connectURL:null}),this.onError(t.message)}))}else s()({path:(0,p.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((t=>{const n=t;this.setState({currentUserConnected:e,connected:2,connectURL:n})}))})),a()(this,"auditionNotification",(e=>{this.setState({audition:e}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.clearAudition,3e3)})),a()(this,"clearAudition",(()=>{this.setState({audition:null})})),a()(this,"labelForAuditionType",(e=>{const{attributes:t}=this.props,{processingLabel:n,successLabel:r,errorLabel:a}=t;return e===b.N3?n:e===b.sf?r:e===b.Cw?a:null})),a()(this,"roleForAuditionType",(e=>e===b.Cw?"alert":"status")),a()(this,"render",(()=>{const{attributes:e,className:t,notices:n,noticeUI:r,setAttributes:a}=this.props,{audition:i,connected:s,connectURL:l,currentUserConnected:u}=this.state,{emailPlaceholder:p,consentText:g,interests:b,processingLabel:v,successLabel:k,errorLabel:y,preview:E,signupFieldTag:w,signupFieldValue:_}=e,C="wp-block-jetpack-mailchimp",j=(0,o.createElement)(d.Placeholder,{icon:h.qv,notices:n},(0,o.createElement)(d.Spinner,null)),S=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("You need to connect your Mailchimp account and choose an audience in order to start collecting Email subscribers.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l,target:"_blank"},__("Set up Mailchimp form","jetpack")),(0,o.createElement)("div",{className:`${C}-recheck`},(0,o.createElement)(d.Button,{isLink:!0,onClick:this.apiCall},__("Re-check Connection","jetpack")))),x=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("First, you'll need to connect your WordPress.com account.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l},__("Connect to WordPress.com","jetpack"))),T=(0,o.createElement)(m.InspectorControls,null,(0,o.createElement)(f.Q,{auditionNotification:this.auditionNotification,clearAudition:this.clearAudition,emailPlaceholder:p,processingLabel:v,successLabel:k,errorLabel:y,interests:b,setAttributes:this.props.setAttributes,signupFieldTag:w,signupFieldValue:_,connectURL:l})),N=c()(t,{[`${C}_notication-audition`]:i}),P=(0,o.createElement)("div",{className:N},(0,o.createElement)(d.TextControl,{"aria-label":p,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:()=>!1,placeholder:p,title:__("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),(0,o.createElement)(m.InnerBlocks,{template:[[h.Ss.name,h.Ss.attributes]],templateLock:"all"}),(0,o.createElement)(m.RichText,{tagName:"p",placeholder:__("Write consent text","jetpack"),value:g,onChange:e=>a({consentText:e}),inlineToolbar:!0}),i&&(0,o.createElement)("div",{className:`${C}_notification ${C}_${i}`,role:this.roleForAuditionType(i)},this.labelForAuditionType(i))),A=P;return(0,o.createElement)(o.Fragment,null,r,E&&A,!E&&0===s&&j,!E&&2===s&&u&&S,!E&&2===s&&!u&&x,!E&&1===s&&T,!E&&1===s&&P)})),this.state={audition:null,connected:0,connectURL:null,currentUserConnected:null},this.timeout=null}}t.Z=(0,d.withNotices)(v)},19916:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Ss:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(58791),l=n(87539),c=n(57535);const __=a.__,_x=a._x,u="mailchimp",p=(0,r.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(i.G,{transform:"translate(-45.478101,-100.73059)"},(0,r.createElement)(i.G,{transform:"matrix(0.26458333,0,0,0.26458333,15.6741,59.72)"},(0,r.createElement)(i.Path,{d:"m 176.433,197.529 c 0.657,-0.078 1.286,-0.082 1.865,0 0.335,-0.768 0.392,-2.091 0.091,-3.532 -0.447,-2.142 -1.053,-3.438 -2.305,-3.236 -1.252,0.202 -1.298,1.754 -0.85,3.895 0.252,1.205 0.7,2.235 1.199,2.873"}),(0,r.createElement)(i.Path,{d:"m 165.688,199.224 c 0.895,0.393 1.446,0.654 1.661,0.426 0.139,-0.142 0.097,-0.413 -0.117,-0.762 -0.442,-0.721 -1.351,-1.453 -2.316,-1.864 -1.972,-0.849 -4.325,-0.567 -6.14,0.737 -0.599,0.439 -1.167,1.047 -1.086,1.416 0.026,0.119 0.116,0.209 0.326,0.239 0.494,0.056 2.22,-0.816 4.209,-0.938 1.403,-0.086 2.566,0.353 3.462,0.746"}),(0,r.createElement)(i.Path,{d:"m 163.887,200.252 c -1.167,0.184 -1.81,0.569 -2.223,0.926 -0.352,0.308 -0.57,0.649 -0.568,0.888 0.001,0.114 0.05,0.18 0.089,0.213 0.053,0.047 0.116,0.073 0.192,0.073 0.263,0 0.854,-0.237 0.854,-0.237 1.623,-0.581 2.694,-0.51 3.755,-0.39 0.586,0.066 0.864,0.102 0.992,-0.099 0.038,-0.058 0.084,-0.183 -0.033,-0.373 -0.273,-0.443 -1.451,-1.192 -3.057,-1.001"}),(0,r.createElement)(i.Path,{d:"m 172.805,204.025 c 0.792,0.389 1.664,0.236 1.948,-0.341 0.284,-0.577 -0.128,-1.361 -0.92,-1.75 -0.792,-0.389 -1.664,-0.236 -1.948,0.341 -0.284,0.578 0.128,1.361 0.92,1.75"}),(0,r.createElement)(i.Path,{d:"m 177.896,199.576 c -0.643,-0.011 -1.177,0.695 -1.192,1.578 -0.015,0.883 0.495,1.606 1.138,1.617 0.643,0.011 1.177,-0.695 1.192,-1.578 0.015,-0.882 -0.495,-1.606 -1.138,-1.617"}),(0,r.createElement)(i.Path,{d:"m 134.683,215.485 c -0.16,-0.201 -0.423,-0.14 -0.678,-0.08 -0.178,0.042 -0.379,0.088 -0.6,0.085 -0.473,-0.009 -0.874,-0.211 -1.099,-0.557 -0.293,-0.45 -0.276,-1.121 0.047,-1.889 l 0.151,-0.344 c 0.516,-1.158 1.379,-3.095 0.41,-4.941 -0.73,-1.39 -1.92,-2.255 -3.351,-2.437 -1.374,-0.174 -2.788,0.335 -3.69,1.33 -1.423,1.57 -1.646,3.707 -1.371,4.462 0.101,0.276 0.259,0.353 0.373,0.369 0.242,0.032 0.6,-0.144 0.824,-0.747 l 0.064,-0.196 c 0.1,-0.319 0.286,-0.913 0.591,-1.389 0.368,-0.574 0.94,-0.969 1.612,-1.114 0.684,-0.147 1.384,-0.016 1.97,0.368 0.997,0.652 1.381,1.874 0.955,3.039 -0.22,0.603 -0.578,1.756 -0.499,2.703 0.16,1.917 1.339,2.687 2.398,2.769 1.03,0.039 1.75,-0.54 1.932,-0.962 0.107,-0.25 0.017,-0.402 -0.042,-0.467"}),(0,r.createElement)(i.Path,{d:"m 144.475,180.275 c 3.36,-3.882 7.495,-7.257 11.2,-9.152 0.128,-0.066 0.264,0.073 0.195,0.199 -0.294,0.533 -0.861,1.674 -1.04,2.539 -0.028,0.135 0.119,0.236 0.233,0.159 2.305,-1.571 6.314,-3.255 9.831,-3.471 0.151,-0.009 0.224,0.184 0.104,0.277 -0.535,0.41 -1.12,0.978 -1.547,1.552 -0.073,0.098 -0.004,0.238 0.118,0.239 2.469,0.018 5.95,0.882 8.219,2.155 0.153,0.086 0.044,0.383 -0.128,0.344 -3.433,-0.787 -9.052,-1.384 -14.89,0.04 -5.211,1.271 -9.189,3.234 -12.09,5.344 -0.147,0.107 -0.323,-0.087 -0.204,-0.224 z m 16.732,37.612 0.001,0.002 0.002,0.004 z m 13.854,1.635 c 0.1,-0.042 0.168,-0.155 0.157,-0.268 -0.014,-0.139 -0.138,-0.24 -0.277,-0.226 0,0 -7.169,1.061 -13.942,-1.418 0.738,-2.398 2.699,-1.532 5.664,-1.293 5.344,0.319 10.134,-0.462 13.674,-1.478 3.067,-0.88 7.096,-2.616 10.225,-5.086 1.055,2.318 1.428,4.87 1.428,4.87 0,0 0.817,-0.146 1.5,0.274 0.645,0.397 1.118,1.222 0.795,3.356 -0.658,3.986 -2.352,7.222 -5.2,10.199 -1.734,1.866 -3.838,3.488 -6.246,4.668 -1.279,0.672 -2.64,1.253 -4.079,1.722 -10.736,3.507 -21.726,-0.348 -25.268,-8.626 -0.283,-0.622 -0.522,-1.274 -0.71,-1.955 -1.509,-5.455 -0.228,-12 3.778,-16.12 v -0.002 c 0.247,-0.262 0.499,-0.571 0.499,-0.96 0,-0.325 -0.207,-0.668 -0.386,-0.912 -1.402,-2.033 -6.257,-5.497 -5.282,-12.201 0.7,-4.816 4.912,-8.208 8.839,-8.007 l 0.995,0.057 c 1.702,0.101 3.186,0.319 4.587,0.378 2.345,0.102 4.453,-0.239 6.951,-2.32 0.842,-0.702 1.518,-1.311 2.661,-1.504 0.12,-0.021 0.419,-0.128 1.016,-0.1 0.61,0.033 1.19,0.2 1.711,0.547 2.002,1.332 2.286,4.559 2.39,6.919 0.059,1.347 0.222,4.607 0.278,5.543 0.127,2.14 0.69,2.441 1.828,2.816 0.64,0.211 1.234,0.368 2.11,0.614 2.65,0.744 4.221,1.499 5.212,2.469 0.591,0.606 0.866,1.25 0.951,1.864 0.312,2.28 -1.77,5.096 -7.283,7.655 -6.026,2.797 -13.337,3.505 -18.388,2.942 l -1.77,-0.2 c -4.04,-0.544 -6.345,4.677 -3.92,8.255 1.563,2.306 5.82,3.806 10.079,3.807 9.765,0.001 17.271,-4.169 20.063,-7.77 l 0.223,-0.318 c 0.138,-0.207 0.024,-0.321 -0.147,-0.204 -2.281,1.561 -12.413,7.758 -23.251,5.893 0,0 -1.317,-0.217 -2.519,-0.684 -0.955,-0.372 -2.955,-1.292 -3.198,-3.343 8.746,2.705 14.253,0.148 14.253,0.148 z m -48.039,-20.785 c -3.042,0.591 -5.723,2.315 -7.362,4.697 -0.98,-0.817 -2.805,-2.399 -3.128,-3.016 -2.617,-4.97 2.856,-14.632 6.68,-20.089 9.45,-13.485 24.25,-23.692 31.101,-21.84 1.114,0.315 4.803,4.592 4.803,4.592 0,0 -6.849,3.8 -13.2,9.097 -8.558,6.589 -15.022,16.166 -18.895,26.559 z m 5.111,22.805 c -0.46,0.079 -0.93,0.11 -1.404,0.098 -4.577,-0.123 -9.52,-4.243 -10.011,-9.129 -0.543,-5.401 2.217,-9.557 7.103,-10.543 0.584,-0.118 1.29,-0.186 2.051,-0.146 2.738,0.15 6.772,2.252 7.693,8.216 0.816,5.282 -0.48,10.659 -5.432,11.503 z m 61.996,-9.564 c -0.039,-0.139 -0.295,-1.072 -0.646,-2.197 -0.351,-1.126 -0.714,-1.917 -0.714,-1.917 1.408,-2.107 1.433,-3.992 1.245,-5.059 -0.2,-1.323 -0.751,-2.45 -1.861,-3.616 -1.11,-1.165 -3.381,-2.359 -6.572,-3.255 l -1.674,-0.465 c -0.008,-0.069 -0.088,-3.947 -0.16,-5.612 -0.053,-1.204 -0.156,-3.083 -0.739,-4.933 -0.695,-2.505 -1.905,-4.697 -3.416,-6.099 4.17,-4.322 6.773,-9.084 6.766,-13.168 -0.012,-7.855 -9.659,-10.232 -21.548,-5.309 l -2.519,1.069 c -0.011,-0.011 -4.554,-4.468 -4.622,-4.528 -13.555,-11.823 -55.935,35.284 -42.386,46.725 l 2.961,2.509 c -0.768,1.99 -1.07,4.27 -0.823,6.721 0.316,3.149 1.94,6.167 4.573,8.499 2.499,2.214 5.785,3.616 8.973,3.613 5.273,12.151 17.321,19.605 31.447,20.025 15.153,0.45 27.873,-6.66 33.203,-19.432 0.349,-0.896 1.828,-4.935 1.828,-8.501 0,-3.583 -2.026,-5.068 -3.316,-5.068"})))),d={name:"jetpack/button",attributes:{element:"button",text:__("Join my Mailchimp audience","jetpack"),uniqueId:"mailchimp-widget-id"}},m={title:__("Mailchimp","jetpack"),icon:{src:p,foreground:(0,c.m)()},description:__("A form enabling readers to join a Mailchimp audience.","jetpack"),category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:l.Z,save:()=>(0,r.createElement)(o.InnerBlocks.Content,null),example:{attributes:{preview:!0},innerBlocks:[d]},deprecated:[s.Z]}},18417:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(55609);class c extends o.Component{constructor(){super(...arguments),a()(this,"state",{interest_categories:[]}),a()(this,"retrieveGroups",(()=>{s()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((e=>{const{interest_categories:t}=e;this.setState({interest_categories:t})}))})),a()(this,"render",(()=>{const{interest_categories:e}=this.state,{interests:t,onChange:n}=this.props;return(0,o.createElement)(o.Fragment,null,e&&(e||[]).map((e=>e.interests.map((e=>(0,o.createElement)(l.CheckboxControl,{label:e.name,value:e.id,checked:t.includes(e.id),onChange:t=>n(e.id,t),key:e.id}))))))}))}componentDidMount(){this.retrieveGroups()}}t.Z=c,c.defaultProps={interests:[],onChange:()=>null}},36710:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(1595);const __=a.__;class s extends r.Component{render(){const{onClose:e,onAddPoint:t,onError:n,apiKey:a}=this.props;return(0,r.createElement)(o.Button,{className:"component__add-point"},__("Add marker","jetpack"),(0,r.createElement)(o.Popover,{className:"component__add-point__popover",position:"bottom center"},(0,r.createElement)(o.Button,{className:"component__add-point__close",onClick:e},(0,r.createElement)(o.Dashicon,{icon:"no"})),(0,r.createElement)(i.Z,{onAddPoint:t,label:__("Add a location","jetpack"),apiKey:a,onError:n})))}}s.defaultProps={onAddPoint:()=>{},onClose:()=>{},onError:()=>{}},t.Z=s},79267:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(55609),c=n(81041),u=n(77714),p=n(73242),d=n(87929),m=n(45388);const __=i.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),a()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),a()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),a()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:n}=this.state,{index:r}=n.props,a=t.slice(0);(0,s.assign)(a[r],e),this.props.onSetPoints(a)})),a()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:n}=t.props,r=e.slice(0);r.splice(n,1),this.props.onSetPoints(r),this.setState({activeMarker:null})})),a()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,n=this.mapRef.current;if(e)n.style.height=e+"px";else{const e=n.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,r=Math.min(e*(3/4),t);n.style.height=r+"px"}t.resize(),this.setBoundsByMarkers()})),a()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),a()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:n,points:r,zoom:a}=this.props,{map:o,activeMarker:i,mapboxgl:s,zoomControl:l,boundsSetProgrammatically:c}=this.state;if(!o)return;if(r.length&&e?o.dragPan.disable():o.dragPan.enable(),!r.length)return;if(i)return;const u=new s.LngLatBounds;if(r.forEach((e=>{u.extend([e.coordinates.longitude,e.coordinates.latitude])})),t(u.getCenter()),r.length>1){o.fitBounds(u,{padding:{top:80,bottom:80,left:40,right:40}}),this.setState({boundsSetProgrammatically:!0});try{o.removeControl(l)}catch(e){}}else{if(o.setCenter(u.getCenter()),c){const e=12;o.setZoom(e),n(e)}else o.setZoom(parseInt(a,10));o.addControl(l),this.setState({boundsSetProgrammatically:!1})}})),a()(this,"scriptsLoaded",(()=>{const{mapCenter:e,points:t}=this.props;this.setState({loaded:!0}),t.length,this.initMap(e)})),a()(this,"googlePoint2Mapbox",(e=>e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0})),this.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},this.mapRef=(0,o.createRef)(),this.debouncedSizeMap=(0,s.debounce)(this.sizeMap,250)}render(){const{points:e,admin:t,children:n,markerColor:r}=this.props,{map:a,activeMarker:i,mapboxgl:p}=this.state,{onMarkerClick:d,deleteActiveMarker:m,updateActiveMarker:h}=this,f=(0,s.get)(i,"props.point")||{},{title:g,caption:b}=f,v=o.Children.map(n,(e=>{if("AddPoint"===(0,s.get)(e,"props.tagName"))return e})),k=a&&p&&e.map(((e,t)=>(0,o.createElement)(c.Z,{mapRef:this.mapRef,key:t,point:e,index:t,map:a,mapboxgl:p,markerColor:r,onClick:d}))),y=p&&(0,o.createElement)(u.Z,{activeMarker:i,map:a,mapboxgl:p,unsetActiveMarker:()=>this.setState({activeMarker:null})},i&&t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.TextControl,{label:__("Marker Title","jetpack"),value:g,onChange:e=>h({title:e})}),(0,o.createElement)(l.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:__("Marker Caption","jetpack"),value:b,rows:"2",tag:"textarea",onChange:e=>h({caption:e})}),(0,o.createElement)(l.Button,{onClick:m,className:"wp-block-jetpack-map__delete-btn"},(0,o.createElement)(l.Dashicon,{icon:"trash",size:"15"})," ",__("Delete Marker","jetpack"))),i&&!t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h3",null,g),(0,o.createElement)("p",null,b)));return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},k),y,v)}componentDidMount(){const{apiKey:e}=this.props;e&&this.loadMapLibraries()}componentWillUnmount(){this.debouncedSizeMap.cancel(),window.removeEventListener("resize",this.debouncedSizeMap)}componentDidUpdate(e){const{admin:t,apiKey:n,children:r,points:a,mapStyle:o,mapDetails:i,scrollToZoom:s,showFullscreenButton:l}=this.props,{map:c,fullscreenControl:u}=this.state;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),o===e.mapStyle&&i===e.mapDetails||c.setStyle(this.getMapStyle()),s!==e.scrollToZoom&&(s?c.scrollZoom.enable():c.scrollZoom.disable()),l!==e.showFullscreenButton&&(l?(c.addControl(u),t&&u._fullscreenButton&&(u._fullscreenButton.disabled=!0)):c.removeControl(u))}getMapStyle(){const{mapStyle:e,mapDetails:t}=this.props;return(0,p.h)(e,t)}getMapType(){const{mapStyle:e}=this.props;switch(e){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";default:return"ROADMAP"}}loadMapLibraries(){const{apiKey:e}=this.props,{currentWindow:t}=(0,d.bL)(this.mapRef.current),n={"mapbox-gl-js":()=>{(0,d.Dz)(t,"mapboxgl").then((t=>{t.accessToken=e,this.setState({mapboxgl:t},this.scriptsLoaded)}))}};(0,d.Pp)(m,n,this.mapRef.current)}initMap(e){const{mapboxgl:t}=this.state,{zoom:n,onMapLoaded:r,onError:a,scrollToZoom:o,showFullscreenButton:i,admin:s}=this.props;let l=null;try{l=new t.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(n,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(e){return void a("mapbox_error",e.message)}o||l.scrollZoom.disable();const c=new t.FullscreenControl;l.on("error",(e=>{a("mapbox_error",e.error.message)}));const u=new t.NavigationControl({showCompass:!1,showZoom:!0});l.on("zoomend",(()=>{this.props.onSetZoom(l.getZoom())})),l.on("moveend",(()=>{const{onSetMapCenter:e,points:t}=this.props;t.length<1&&e(l.getCenter())})),l.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:l,zoomControl:u,fullscreenControl:c},(()=>{this.debouncedSizeMap(),l.addControl(u),i&&(l.addControl(c),s&&c._fullscreenButton&&(c._fullscreenButton.disabled=!0)),this.mapRef.current.addEventListener("alignmentChanged",this.debouncedSizeMap),l.resize(),r(),this.setState({loaded:!0}),window.addEventListener("resize",this.debouncedSizeMap)}))}}h.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:()=>{},onSetMapCenter:()=>{},onMapLoaded:()=>{},onMarkerClick:()=>{},onError:()=>{},markerColor:"red",apiKey:null,mapCenter:{}},t.Z=h},20522:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(41626),l=n(17885);const __=a.__;t.Z=e=>{let{attributes:t,setAttributes:n,state:a,setState:c,context:u,mapRef:p,instanceId:d,minHeight:m,removeAPIKey:h,updateAPIKey:f,setPointVisibility:g}=e;const b=e=>{n({align:e}),setTimeout(p.current.sizeMap,0)};return"toolbar"===u?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockAlignmentToolbar,{value:t.align,onChange:b,controls:["center","wide","full"]}),(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:l.X.markerIcon,label:__("Add a marker","jetpack"),onClick:g}))):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.PanelColorSettings,{title:__("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:t.markerColor,onChange:e=>n({markerColor:e}),label:__("Marker Color","jetpack")}]}),(0,r.createElement)(o.PanelBody,{title:__("Map Settings","jetpack")},(0,r.createElement)(o.BaseControl,{label:__("Height in pixels","jetpack"),id:`block-jetpack-map-height-input-${d}`},(0,r.createElement)("input",{type:"number",id:`block-jetpack-map-height-input-${d}`,className:"wp-block-jetpack-map__height_input",onChange:e=>{n({mapHeight:e.target.value}),e.target!==document.activeElement&&setTimeout(p.current.sizeMap,0)},onBlur:e=>{const{mapHeight:r}=t;let a=parseInt(e.target.value,10);isNaN(a)?a=null:null==r?a=p.current.mapRef.current.offsetHeight:a<m&&(a=m),n({mapHeight:a}),setTimeout(p.current.sizeMap,0)},value:t.mapHeight||"",min:m,step:"10"})),(0,r.createElement)(o.RangeControl,{label:__("Zoom level","jetpack"),help:t.points.length>1&&__("The default zoom level cannot be changed when there are two or more markers on the map.","jetpack"),disabled:t.points.length>1,value:t.zoom,onChange:e=>{n({zoom:e}),setTimeout(p.current.updateZoom,0)},min:0,max:22}),(0,r.createElement)(o.ToggleControl,{label:__("Show street names","jetpack"),checked:t.mapDetails,onChange:e=>n({mapDetails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Scroll to zoom","jetpack"),help:__("Allow the map to capture scrolling, and zoom in or out.","jetpack"),checked:t.scrollToZoom,onChange:e=>n({scrollToZoom:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Show Fullscreen Button","jetpack"),help:__("Allow your visitors to display the map in fullscreen.","jetpack"),checked:t.showFullscreenButton,onChange:e=>n({showFullscreenButton:e})})),t.points.length?(0,r.createElement)(o.PanelBody,{title:__("Markers","jetpack"),initialOpen:!1},(0,r.createElement)(s.Z,{points:t.points,onChange:e=>{n({points:e})}})):null,(0,r.createElement)(o.PanelBody,{title:__("Mapbox Access Token","jetpack"),initialOpen:!1},(0,r.createElement)(o.TextControl,{help:"wpcom"===a.apiKeySource&&(0,r.createElement)(r.Fragment,null,__("You can optionally enter your own access token.","jetpack")," ",(0,r.createElement)(o.ExternalLink,{href:"https://account.mapbox.com/access-tokens/"},__("Find it on Mapbox","jetpack"))),label:__("Mapbox Access Token","jetpack"),value:a.apiKeyControl,onChange:e=>c({apiKeyControl:e})}),(0,r.createElement)(o.ButtonGroup,null,(0,r.createElement)(o.Button,{type:"button",onClick:f,disabled:!a.apiKeyControl||a.apiKeyControl===a.apiKey},__("Update Token","jetpack")),(0,r.createElement)(o.Button,{type:"button",onClick:h,disabled:"wpcom"===a.apiKeySource,isSecondary:!0},__("Remove Token","jetpack")))))}},86124:function(e,t,n){"use strict";var r=n(98372);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,showFullscreenButton:!0,className:t}},save:r.Z}},98372:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u}=e,p=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),d=t?`align${t}`:null;return(0,r.createElement)("div",{className:d,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null},o.length>0&&(0,r.createElement)("ul",null,p))}}t.Z=a},91576:function(e,t,n){"use strict";var r=n(51694);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,className:t}},save:r.Z}},51694:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u,showFullscreenButton:p}=e,d=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),m=t?`align${t}`:null;return(0,r.createElement)("div",{className:m,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null,"data-show-fullscreen-button":p||null},o.length>0&&(0,r.createElement)("ul",null,d))}}t.Z=a},70312:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(65736),c=n(55609),u=n(52175),p=n(36710),d=n(79267),m=n(20522),h=n(17885),f=n(96406),g=n(94333),b=n(9818),v=n(98085),k=n(14499);const __=l.__,y={top:!1,right:!1,bottom:!0,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1};class E extends o.Component{constructor(){super(...arguments),a()(this,"geoCodeAddress",((e,t)=>{t&&(0,k.P)(e,t).then((e=>{if(e.features?.length){const t=e.features[0],n=[{title:t.text,placeTitle:t.text,caption:t.place_name,id:t.id,coordinates:{latitude:t.center[1],longitude:t.center[0]}}];this.props.setAttributes({points:n})}else this.onError(null,__("Could not find the coordinates of the provided address. Displaying default location. Feel free to add the location manually.","jetpack"))})).catch((e=>this.onError(null,e.message)))})),a()(this,"componentDidUpdate",(e=>{const t=this.props.attributes?.address,n=e.attributes?.address;t&&n!==t&&this.geoCodeAddress(t,this.state.apiKey)})),a()(this,"addPoint",(e=>{const{attributes:t,setAttributes:n}=this.props,{points:r}=t,a=r.slice(0);let o=!1;r.map((t=>{t.id===e.id&&(o=!0)})),o||(a.push(e),n({points:a}),this.setState({addPointVisibility:!1}))})),a()(this,"setPointVisibility",(()=>{this.setState({addPointVisibility:!0})})),a()(this,"updateAPIKeyControl",(e=>{this.setState({apiKeyControl:e.target.value})})),a()(this,"updateAPIKey",(()=>{const{noticeOperations:e}=this.props,{apiKeyControl:t}=this.state;e.removeAllNotices(),t&&this.apiCall(t,"POST")})),a()(this,"removeAPIKey",(()=>{this.apiCall(null,"DELETE")})),a()(this,"onError",((e,t)=>{const{noticeOperations:n}=this.props;n.removeAllNotices(),n.createErrorNotice(t)})),a()(this,"onMapResize",((e,t,n,r)=>{const{onResizeStop:a,setAttributes:o}=this.props;a();o({mapHeight:parseInt(this.mapRef.current.mapRef.current.offsetHeight+r.height,10)}),setTimeout(this.mapRef.current.sizeMap,0)})),this.state={addPointVisibility:!1,apiState:0},this.mapRef=(0,o.createRef)()}apiCall(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";return new Promise(((n,r)=>{const{noticeOperations:a}=this.props,o="/wpcom/v2/service-api-keys/mapbox",i=e?{path:o,method:t,data:{service_api_key:e}}:{path:o,method:t};this.setState({apiRequestOutstanding:!0},(()=>{s()(i).then((e=>{let{service_api_key:t,service_api_key_source:r}=e;a.removeAllNotices();const o=t?2:1,i="wpcom"===r?"":t;this.setState({apiState:o,apiKey:t,apiKeyControl:i,apiKeySource:r,apiRequestOutstanding:!1}),n()}),(e=>{let{message:t}=e;this.onError(null,t),this.setState({apiState:1,apiRequestOutstanding:!1}),r()}))}))}))}componentDidMount(){this.apiCall().then((()=>{this.props.attributes?.address&&this.geoCodeAddress(this.props.attributes?.address,this.state.apiKey)}))}render(){const{className:e,setAttributes:t,attributes:n,noticeUI:r,notices:a,isSelected:i,instanceId:s,onResizeStart:l}=this.props,{mapDetails:g,points:b,zoom:k,mapCenter:E,markerColor:w,preview:_,mapHeight:C,showFullscreenButton:j}=n,{addPointVisibility:S,apiKey:x,apiKeyControl:T,apiState:N,apiRequestOutstanding:P}=this.state,A=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.BlockControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setPointVisibility:this.setPointVisibility,context:"toolbar",mapRef:this.mapRef})),(0,o.createElement)(u.InspectorControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setState:this.setState,mapRef:this.mapRef,instanceId:s,minHeight:400,removeAPIKey:this.removeAPIKey,updateAPIKey:this.updateAPIKey}))),I=(0,o.createElement)(c.Placeholder,{icon:h.X.icon},(0,o.createElement)(c.Spinner,null)),M=(0,o.createElement)(o.Fragment,null,__("To use the map block, you need an Access Token.","jetpack"),(0,o.createElement)("br",null),(0,o.createElement)(c.ExternalLink,{href:"https://www.mapbox.com"},__("Create an account or log in to Mapbox.","jetpack")),(0,o.createElement)("br",null),__("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),B=(0,o.createElement)(c.Placeholder,{icon:h.X.icon,label:__("Map","jetpack"),notices:a,instructions:M},(0,o.createElement)(o.Fragment,null,(0,o.createElement)("form",null,(0,o.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:P,placeholder:__("Paste Token Here","jetpack"),value:T,onChange:this.updateAPIKeyControl}),(0,o.createElement)(c.Button,{isSecondary:!0,disabled:P||!T||T.length<1,onClick:this.updateAPIKey},__("Set Token","jetpack"))))),R=i&&b.length<=1,L=(0,v.t)(h.X.styles,n.className),Z=(0,o.createElement)(o.Fragment,null,A,(0,o.createElement)("div",{className:e},(0,o.createElement)(c.ResizableBox,{size:{height:C||"auto",width:"100%"},grid:[10,10],showHandle:i,minHeight:400,enable:y,onResizeStart:l,onResizeStop:this.onMapResize},(0,o.createElement)("div",{className:"wp-block-jetpack-map__map_wrapper"},(0,o.createElement)(d.Z,{ref:this.mapRef,scrollToZoom:R,showFullscreenButton:j,mapStyle:L||"default",mapDetails:g,mapHeight:C,points:b,zoom:k,mapCenter:E,markerColor:w,onSetZoom:e=>{t({zoom:e})},admin:!0,apiKey:x,onSetPoints:e=>t({points:e}),onSetMapCenter:e=>t({mapCenter:e}),onMapLoaded:()=>this.setState({addPointVisibility:!b.length}),onMarkerClick:()=>this.setState({addPointVisibility:!1}),onError:this.onError},i&&S&&(0,o.createElement)(p.Z,{onAddPoint:this.addPoint,onClose:()=>this.setState({addPointVisibility:!1}),apiKey:x,onError:this.onError,tagName:"AddPoint"})))))),F=h.X.styles.find((e=>e.name===L)),D=(0,o.createElement)("div",null,(0,o.createElement)("img",{alt:__("Map Preview","jetpack"),src:F?F.preview:f}));return(0,o.createElement)(o.Fragment,null,r,_&&D,!_&&0===N&&I,!_&&1===N&&B,!_&&2===N&&Z)}}t.Z=(0,g.compose)([c.withNotices,(0,b.withDispatch)((e=>{const{toggleSelection:t}=e("core/block-editor");return{onResizeStart:()=>t(!1),onResizeStop:()=>t(!0)}}))])(E)},14499:function(e,t,n){"use strict";function r(e,t){return fetch(`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(e)}.json?access_token=${encodeURIComponent(t)}`).then((e=>e.json()))}n.d(t,{P:function(){return r}})},92828:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(17885),a=n(70312),o=n(18156),i=n(86124),s=n(91576),l=n(57535);const{name:c}=r.X,u={title:r.X.title,icon:{src:r.X.icon,foreground:(0,l.m)()},category:r.X.category,keywords:r.X.keywords,description:r.X.description,attributes:r.X.attributes,supports:r.X.supports,styles:r.X.styles,getEditWrapperProps(e){const{align:t}=e;if(-1!==r.X.validAlignments.indexOf(t))return{"data-align":t}},edit:a.Z,save:o.Z,example:r.X.example,deprecated:[s.Z,i.Z]}},77714:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307);class i extends o.Component{constructor(){super(...arguments),a()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,o.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}i.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null},t.Z=i},1595:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(95319);const c=(0,i.__)("Add a marker…","jetpack");class u extends o.Component{constructor(){super(...arguments),a()(this,"getOptionCompletion",(e=>{const{value:t}=e,n={placeTitle:t.text,title:t.text,caption:t.place_name,id:t.id,coordinates:{longitude:t.geometry.coordinates[0],latitude:t.geometry.coordinates[1]}};return this.props.onAddPoint(n),t.text})),a()(this,"search",(e=>{const{apiKey:t,onError:n}=this.props,r="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(e)+".json?access_token="+t;return new Promise((function(e,t){const a=new XMLHttpRequest;a.open("GET",r),a.onload=function(){if(200===a.status){const t=JSON.parse(a.responseText);e(t.features)}else{const e=JSON.parse(a.responseText);n(e.statusText,e.responseJSON.message),t(new Error("Mapbox Places Error"))}},a.send()}))})),a()(this,"onReset",(()=>{this.textRef.current.value=null})),this.textRef=(0,o.createRef)(),this.containerRef=(0,o.createRef)(),this.state={isEmpty:!0},this.autocompleter={name:"placeSearch",options:this.search,isDebounced:!0,getOptionLabel:e=>(0,o.createElement)("span",null,e.place_name),getOptionKeywords:e=>[e.place_name],getOptionCompletion:this.getOptionCompletion}}componentDidMount(){setTimeout((()=>{this.containerRef.current.querySelector("input").focus()}),50)}render(){const{label:e}=this.props;return(0,o.createElement)("div",{ref:this.containerRef},(0,o.createElement)(s.BaseControl,{label:e,className:"components-location-search"},(0,o.createElement)(l.Z,{completer:this.autocompleter,onReset:this.onReset},(e=>{let{isExpanded:t,listBoxId:n,activeId:r,onChange:a,onKeyDown:i}=e;return(0,o.createElement)(s.TextControl,{placeholder:c,ref:this.textRef,onChange:a,"aria-expanded":t,"aria-owns":n,"aria-activedescendant":r,onKeyDown:i})}))))}}u.defaultProps={onError:()=>{}},t.Z=u},41626:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(55609);class s extends o.Component{constructor(){super(...arguments),a()(this,"onDeletePoint",(e=>{const t=parseInt(e.target.getAttribute("data-id")),{points:n,onChange:r}=this.props,a=n.slice(0);a.splice(t,1),r(a)})),this.state={selectedCell:null}}setMarkerField(e,t,n){const{points:r,onChange:a}=this.props,o=r.slice(0);o[n][e]=t,a(o)}render(){const{points:e}=this.props,t=e.map(((e,t)=>(0,o.createElement)(i.PanelBody,{title:e.placeTitle,key:e.id,initialOpen:!1},(0,o.createElement)(i.TextControl,{label:"Marker Title",value:e.title,onChange:e=>this.setMarkerField("title",e,t)}),(0,o.createElement)(i.TextareaControl,{label:"Marker Caption",value:e.caption,rows:"3",onChange:e=>this.setMarkerField("caption",e,t)}),(0,o.createElement)(i.Button,{"data-id":t,onClick:this.onDeletePoint,className:"component__locations__delete-btn"},(0,o.createElement)(i.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))));return(0,o.createElement)("div",{className:"component__locations"},(0,o.createElement)(i.Panel,{className:"component__locations__panel"},t))}}s.defaultProps={points:Object.freeze([]),onChange:()=>{}},t.Z=s},95319:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819),p=n(39630),d=n(94333);const __=l.__,_n=l._n;function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;const n=[];for(let r=0;r<e.length;r++){const a=e[r];let{keywords:o=[]}=a;if("string"==typeof a.label&&(o=[...o,a.label]),n.push(a),n.length===t)break}return n}class h extends o.Component{static getInitialState(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}constructor(){super(...arguments),a()(this,"select",(e=>{const{completer:t}=this.props;(t.getOptionCompletion||{})(e),this.reset()})),a()(this,"reset",(()=>{this.setState(this.constructor.getInitialState())})),a()(this,"onChange",(e=>{const{completer:t}=this.props,{options:n}=this.state;if(!e)return void this.reset();t&&(t.isDebounced?this.debouncedLoadOptions(t,e):this.loadOptions(t,e));const r=t?m(n):[];t&&this.setState({selectedIndex:0,filteredOptions:r,query:e})})),a()(this,"onKeyDown",(e=>{const{isOpen:t,selectedIndex:n,filteredOptions:r}=this.state;if(!t)return;let a;switch(e.keyCode){case p.UP:a=(0===n?r.length:n)-1,this.setState({selectedIndex:a});break;case p.DOWN:a=(n+1)%r.length,this.setState({selectedIndex:a});break;case p.ENTER:this.select(r[n]);break;case p.LEFT:case p.RIGHT:case p.ESCAPE:return void this.reset();default:return}e.preventDefault(),e.stopPropagation()})),this.debouncedLoadOptions=(0,u.debounce)(this.loadOptions,250),this.state=this.constructor.getInitialState()}componentWillUnmount(){this.debouncedLoadOptions.cancel()}handleFocusOutside(){this.reset()}loadOptions(e,t){const{options:n}=e,r=this.activePromise=Promise.resolve("function"==typeof n?n(t):n).then((t=>{if(r!==this.activePromise)return;const n=t.map(((t,n)=>({key:`${n}`,value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}))),a=m(n),o=a.length===this.state.filteredOptions.length?this.state.selectedIndex:0;this.setState({options:n,filteredOptions:a,selectedIndex:o,isOpen:a.length>0}),this.announce(a)}))}announce(e){const{debouncedSpeak:t}=this.props;t&&(e.length?t((0,l.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(__("No results.","jetpack"),"assertive"))}render(){const{onChange:e,onKeyDown:t}=this,{children:n,instanceId:r,completer:a}=this.props,{selectedIndex:i,filteredOptions:l}=this.state,{key:p=""}=l[i]||{},{className:d}=a,m=l.length>0,h=m?`components-autocomplete-listbox-${r}`:null,f=m?`components-autocomplete-item-${r}-${p}`:null;return(0,o.createElement)("div",{className:"components-autocomplete"},n({isExpanded:m,listBoxId:h,activeId:f,onChange:e,onKeyDown:t}),m&&(0,o.createElement)(c.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},(0,o.createElement)("div",{id:h,role:"listbox",className:"components-autocomplete__results"},(0,u.map)(l,((e,t)=>(0,o.createElement)(c.Button,{key:e.key,id:`components-autocomplete-item-${r}-${e.key}`,role:"option","aria-selected":t===i,disabled:e.isDisabled,className:s()("components-autocomplete__result",d,{"is-selected":t===i}),onClick:()=>this.select(e)},e.label))))))}}t.Z=(0,d.compose)([c.withSpokenMessages,d.withInstanceId,c.withFocusOutside])(h)},81041:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(87929);class s extends o.Component{constructor(){super(...arguments),a()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),a()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:n,markerColor:r,mapRef:a}=this.props,{handleClick:o}=this,s=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:l}=(0,i.bL)(a.current),c=this.marker?this.marker.getElement():l.createElement("div");this.marker?this.marker.setLngLat(s):(c.className="wp-block-jetpack-map-marker",this.marker=new n.Marker(c).setLngLat(s).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",o)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+r+'" mask="url(#c)"/></g></svg>'}render(){return null}}s.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}},t.Z=s},73242:function(e,t,n){"use strict";function r(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}n.d(t,{h:function(){return r}})},18156:function(e,t,n){"use strict";var r=n(69307),a=n(17885),o=n(98085);class i extends r.Component{render(){const{attributes:e}=this.props,{align:t,className:n,mapDetails:i,points:s,zoom:l,mapCenter:c,markerColor:u,scrollToZoom:p,mapHeight:d,showFullscreenButton:m}=e,h=(0,o.t)(a.X.styles,n),f=s.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),g=t?`align${t}`:null;return(0,r.createElement)("div",{className:g,"data-map-style":h,"data-map-details":i,"data-points":JSON.stringify(s),"data-zoom":l,"data-map-center":JSON.stringify(c),"data-marker-color":u,"data-scroll-to-zoom":p||null,"data-map-height":d||null,"data-show-fullscreen-button":m||null},s.length>0&&(0,r.createElement)("ul",null,f))}}t.Z=i},17885:function(e,t,n){"use strict";n.d(t,{X:function(){return c}});var r=n(69307),a=n(65736),o=n(56932),i=n(45107),s=n(65765),l=n(34140);const __=a.__,_x=a._x,c={name:"map",prefix:"jetpack",title:__("Map","jetpack"),icon:(0,r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},(0,r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"embed",keywords:[_x("maps","block search term","jetpack"),_x("location","block search term","jetpack"),_x("navigation","block search term","jetpack")],description:__("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},address:{type:"string",default:""},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},supports:{defaultStylePicker:!1,html:!1},styles:[{name:"default",label:__("Basic","jetpack"),preview:o,isDefault:!0},{name:"black_and_white",label:__("Black and white","jetpack"),preview:i},{name:"satellite",label:__("Satellite","jetpack"),preview:s},{name:"terrain",label:__("Terrain","jetpack"),preview:l}],validAlignments:["center","wide","full"],markerIcon:(0,r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},(0,r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},(0,r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),(0,r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},81092:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(52175),u=n(94333),p=n(9818),d=n(4822);const __=l.__,m="editor",h="preview";class f extends o.Component{constructor(){super(...arguments),a()(this,"input",null),a()(this,"state",{activePanel:m}),a()(this,"bindInput",(e=>{this.input=e})),a()(this,"updateSource",(e=>this.props.setAttributes({source:e}))),a()(this,"handleKeyDown",(e=>{const{attributes:t,removeBlock:n}=this.props,{source:r}=t;8===e.keyCode&&""===r&&(n(),e.preventDefault())})),a()(this,"toggleMode",(e=>()=>this.setState({activePanel:e})))}componentDidUpdate(e){e.isSelected&&!this.props.isSelected&&this.state.activePanel===h&&this.toggleMode(m)(),!e.isSelected&&this.props.isSelected&&this.state.activePanel===m&&this.input&&this.input.focus()}isEmpty(){const e=this.props.attributes.source;return!e||""===e.trim()}renderToolbarButton(e,t){const{activePanel:n}=this.state,{className:r}=this.props,a=s()(r,"components-button components-tab-button",{"is-pressed":n===e});return(0,o.createElement)("button",{className:a,onClick:this.toggleMode(e)},(0,o.createElement)("span",null,t))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{source:r}=e,{activePanel:a}=this.state;return!n&&this.isEmpty()?(0,o.createElement)("p",{className:`${t}__placeholder`},__("Write your _Markdown_ **here**…","jetpack")):(0,o.createElement)("div",{className:t},(0,o.createElement)(c.BlockControls,null,(0,o.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton(m,__("Markdown","jetpack")),this.renderToolbarButton(h,__("Preview","jetpack")))),a!==h&&n?(0,o.createElement)(c.PlainText,{className:`${t}__editor`,onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":__("Markdown","jetpack"),innerRef:this.bindInput,value:r}):(0,o.createElement)(d.Z,{className:`${t}__preview`,source:r}))}}t.Z=(0,u.compose)([(0,p.withSelect)((e=>({currentBlockId:e("core/block-editor").getSelectedBlockClientId()}))),(0,p.withDispatch)(((e,t)=>{let{currentBlockId:n}=t;return{removeBlock:()=>e("core/block-editor").removeBlocks(n)}}))])(f)},7882:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(58014),s=n(81092),l=n(27279),c=n(57535),u=n(20510);const __=a.__,_x=a._x,p="markdown",d=__("Try Markdown","jetpack"),m=__("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},(0,r.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),(0,r.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),f=(0,i.Wp)()||(0,i.Ug)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",g={title:__("Markdown","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Use regular characters and punctuation to style text, links, and lists.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:f},__("Support reference","jetpack"))),icon:{src:h,foreground:(0,c.m)()},category:(0,u.Z)("text","formatting"),keywords:[_x("formatting","block search term","jetpack"),_x("syntax","block search term","jetpack"),_x("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:s.Z,save:l.Z,example:{attributes:{source:`## ## ${d}\n\n${m}`}}}},4822:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(69472),i=n.n(o);const __=a.__,s=new(i()),l=e=>{if("A"===e.target.nodeName){window.confirm(__("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault()}};t.Z=e=>{let{className:t,source:n=""}=e;return(0,r.createElement)(r.RawHTML,{className:t,onClick:l},n.length?s.render(n):"")}},27279:function(e,t,n){"use strict";var r=n(69307),a=n(4822);t.Z=e=>{let{attributes:t,className:n}=e;return(0,r.createElement)(a.Z,{className:n,source:t.source})}},11868:function(e,t,n){"use strict";n.d(t,{V1:function(){return i},vW:function(){return s},jn:function(){return l},Eo:function(){return c},fL:function(){return u},ez:function(){return m}});var r=n(65736),a=n(9818),o=n(92819);const __=r.__,i=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],s=i.map((e=>e.value));const l={name:"button",label:__("Button (210 x 113 pixels)","jetpack")},c=e=>(0,o.compact)([{name:"standard",label:__("Standard (224 x 301 pixels)","jetpack"),isDefault:!0},{name:"tall",label:__("Tall (288 x 490 pixels)","jetpack")},{name:"wide",label:__("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&l]),u=e=>c(e).map((e=>e.name)),{siteLocale:p}=(0,a.select)("core/block-editor").getSettings(),d=!(0,o.isEmpty)(p)&&s.includes(p)?p:"en-US",m={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:u()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:d,type:"string",validValues:s},newtab:{default:!1,type:"boolean"},negativeMargin:{default:!1,type:"boolean"}}},65618:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,supports:{align:!0,html:!1},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)(r.Fragment,null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},77583:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,migrate:e=>{const{style:t,className:n}=e,r="standard"===t?"":`is-style-${t}`;return{...e,className:n?`${n} ${r}`:r}},isEligible:e=>{let{style:t,className:n}=e;return!(!t||"standard"===t)&&(!n||-1===n.indexOf("is-style-"))},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},97372:function(e,t,n){"use strict";var r=n(69307),a=(n(86841),n(89105)),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(4981),p=n(12087),d=n(58014),m=n(70718),h=n(18746),f=n(11868),g=n(14087),b=n(98085),v=n(88707);const __=c.__;t.Z=(0,l.withNotices)((function(e){let{attributes:t,className:n,clientId:a,isSelected:k,name:y,noticeOperations:E,noticeUI:w,setAttributes:_}=e;const C=(0,u.getBlockDefaultClassName)(y),j=(0,g.S)(f.ez,t);(0,i.isEqual)(j,t)||_(j);const{align:S,rid:x,iframe:T,domain:N,lang:P,newtab:A,negativeMargin:I}=t,M=(0,i.isEmpty)(x),B=(0,b.t)((0,f.Eo)(),t.className),R=(0,b.t)((0,f.Eo)(x),t.className),L=(0,h.Z)(R),Z=(0,i.isEqual)(x,["1"]);(0,r.useEffect)((()=>{if(E.removeAllNotices(),!M&&!Z&&"wide"===R&&"wide"!==S&&"full"!==S){const e=(0,r.createElement)(r.Fragment,null,__('With the OpenTable block you may encounter display issues if you use its "wide" style with anything other than "wide" or "full" alignment. The wide display style may also not work well on smaller screens.',"jetpack"));E.createNotice({status:"warning",content:e})}}),[Z,S,M,x,R]),(0,r.useEffect)((()=>{"button"===B&&Array.isArray(x)&&x.length>1&&_({className:"",style:""})}),[x,B,_]),(0,r.useEffect)((()=>{k&&(Array.isArray(x)&&x.length>1?(0,u.unregisterBlockStyle)("jetpack/opentable",["button"]):(0,u.registerBlockStyle)("jetpack/opentable",f.jn))}),[k,x]),(0,r.useEffect)((()=>{"wide"===L&&"wide"===S&&_({align:""}),"wide"===R&&L&&R!==L&&_({align:"wide"}),_({style:R})}),[R]);const F=(0,f.fL)(x),D=e=>x.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e],O=e=>{Array.isArray(e)?_({rid:e,style:e.length>1&&"button"===R?"standard":R}):(e=>{const t=(0,v.CC)(e);t||(E.removeAllNotices(),E.createErrorNotice((0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,__("We ran into an issue","jetpack")),(0,r.createElement)("br",null),__("Please ensure this embed matches the one from your OpenTable account","jetpack"))));const n=(0,g.S)(f.ez,t);_(n),E.removeAllNotices()})(e)},z=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.InspectorAdvancedControls,null,(0,r.createElement)(l.ToggleControl,{label:__("Load the widget in an iFrame (Recommended)","jetpack"),checked:T,onChange:()=>_({iframe:!T}),className:"is-opentable"}),"button"===R&&(0,r.createElement)(l.ToggleControl,{label:__("Remove button margin","jetpack"),checked:I,onChange:()=>_({negativeMargin:!I})})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(l.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(m.Z,{rids:x,onChange:O}),(0,r.createElement)(l.SelectControl,{label:__("Language","jetpack"),value:P,onChange:e=>_({lang:e}),options:f.V1}),(0,r.createElement)(l.ToggleControl,{label:__("Open in a new window","jetpack"),checked:A,onChange:()=>_({newtab:!A})})))),U=(0,d.Wp)()||(0,d.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",$=(0,r.createElement)(l.Placeholder,{label:__("OpenTable Reservation","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:__("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:w},(0,r.createElement)(m.Z,{rids:x,onSubmit:O}),(0,r.createElement)("div",{className:`${C}-placeholder-links`},(0,r.createElement)(l.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},__("Sign up for OpenTable","jetpack")),(0,r.createElement)(l.ExternalLink,{href:U},__("Learn more","jetpack")))),V=o()(n,{[`is-style-${R}`]:!M&&F.includes(R)&&-1===n.indexOf("is-style"),"is-placeholder":M,"is-multi":"multi"===D(R)[0],[`align${S}`]:S,"has-no-margin":I});return(0,r.createElement)(r.Fragment,null,w,(0,r.createElement)("div",{className:V},!M&&z,M?$:(e=>{const[t,n]=D(e||R);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${C}-overlay`}),(0,r.createElement)("iframe",{title:(0,c.sprintf)(
+/* translators: Placeholder is a unique ID. */
+__("Open Table Preview %s","jetpack"),a),scrolling:"no",src:`https://www.opentable.com/widget/reservation/canvas?rid=${(0,i.join)(x,"%2C")}&type=${t}&theme=${n}&overlay=false&domain=${N}&lang=${P&&f.vW.includes(P)?P:"en-US"}&newtab=${A}&disablega=true`}))})()))}))},12087:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},(0,r.createElement)(a.Path,{d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))},5458:function(e,t,n){"use strict";n.d(t,{u2:function(){return m},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(4981),i=n(11868),s=n(65618),l=n(77583),c=n(97372),u=n(12087),p=n(88707),d=n(57535);n(6757);const __=a.__,_x=a._x,m="opentable",h={title:__("OpenTable","jetpack"),description:__("Allow visitors to book a reservation with OpenTable","jetpack"),icon:{src:u.Z,foreground:(0,d.m)()},category:"earn",keywords:[_x("booking","block search term","jetpack"),_x("reservation","block search term","jetpack"),_x("restaurant","block search term","jetpack")],supports:{align:!0,html:!1},edit:c.Z,save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map(((e,t)=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`,key:`${e}-${t}`},`https://www.opentable.com/restref/client/?rid=${e}`))))},attributes:i.ez,styles:(0,i.Eo)(),example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1,negativeMargin:!1}},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&0===e.textContent.indexOf("http")&&(p.pU.test(e.textContent)||p.tC.test(e.textContent)),transform:e=>{const t=(0,p.CC)(e.textContent);return(0,o.createBlock)("jetpack/opentable",t)}}]},deprecated:[s.Z,l.Z]}},70718:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(92819),s=n(55609),l=n(65736),c=n(74701);const __=l.__,_n=l._n;function u(e){const[t,n]=(0,o.useState)(""),r=(0,c.Z)(t,20),[l,u]=(0,o.useState)(e.rids||[]),p=/^(\d+)$|\(\#(\d+)\)$/,d=r.filter((e=>l.indexOf(e.rid.toString())<0)).map((e=>e.name+` (#${e.rid})`)),m=(0,o.createElement)(s.FormTokenField,a()({value:l,suggestions:d,saveTransform:e=>c.$.test(e)?"":e.trim(),onInputChange:n,maxSuggestions:20,label:_n("Restaurant","Restaurants",l.length,"jetpack")},e,{onChange:t=>{const n=t.map((e=>{const t=p.exec(e);return t[1]||t[2]}));u(n),e.onChange&&e.onChange(n)}}));return(0,o.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?(0,o.createElement)("form",{onSubmit:n=>{n.preventDefault(),e.onSubmit((0,i.isEmpty)(l)?t:l)}},m,(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},__("Embed","jetpack"))):m)}},18746:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)();return(0,r.useEffect)((()=>{t.current=e}),[e]),t.current}},74701:function(e,t,n){"use strict";n.d(t,{$:function(){return o},Z:function(){return i}});var r=n(92819),a=n(69307);const o=/^\s*(http[s]?:\/\/|\<script)/;function i(e,t){const[n,i]=(0,a.useState)([]),s=(0,a.useCallback)((0,r.throttle)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((e=>e.json())).then((e=>i((0,r.unionBy)(n,e.items,"rid"))))}),500),[n]);return(0,a.useEffect)((()=>{(0,r.isEmpty)(e)||o.test(e)||s(e)}),[e]),n}},88707:function(e,t,n){"use strict";n.d(t,{tC:function(){return a},pU:function(){return o},CC:function(){return i}});const r=/<\s*script[^>]*src\s*=\s*["']?([^"']*)/i,a=/restref=([0-9]+)&/,o=/rid=([0-9]+)&/,i=e=>{if(e)return(e=>{if(!e)return;let t="";if(t=0===e.indexOf("http")?new URL(e):new URL("http:"+e),!t.host||-1===t.host.indexOf("opentable")||!t.search)return;const n=new URLSearchParams(t.search);let r=n.get("theme");"button"===n.get("type")&&(r=n.get("type"));let a=n.getAll("rid");if(a&&0!==a.length||(a=n.getAll("restref")),!a||0===a.length)return;const o={};a&&(o.rid=a);const i=n.get("domain");i&&(o.domain=i);const s=n.get("iframe");s&&(o.iframe=s);const l=n.get("lang");l&&(o.lang=l);const c=n.get("newtab");return c&&(o.newtab=c),r&&(o.style=r),o})((e=>{const t=e.match(r);return t&&t[1]?t[1]:a.test(e)||o.test(e)?e:void 0})(e))}},79509:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(18161);const __=a.__,_x=a._x;function l(e){let{className:t,onSubmit:n,noticeUI:a,url:l,setUrl:c}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.Placeholder,{label:__("Pinterest","jetpack"),icon:(0,r.createElement)(i.BlockIcon,{icon:s.qv}),notices:a},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),n()}},(0,r.createElement)("input",{type:"url",value:l,className:"components-placeholder__input","aria-label":__("Pinterest URL","jetpack"),placeholder:__("Enter URL to embed here…","jetpack"),onChange:e=>c(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))))}},49362:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981);const __=a.__,_x=a._x;function s(e){let{fallbackUrl:t,onClick:n}=e;return(0,r.createElement)(r.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,r.createElement)(o.Button,{isLink:!0,onClick:()=>{const e=(0,r.createElement)("a",{href:t},t);n((0,i.createBlock)("core/paragraph",{content:(0,r.renderToString)(e)}))}},_x("Convert block to link","button label","jetpack")))}},61989:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(){return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(o.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack")))}},4052:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setEditingState:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},41659:function(e,t,n){"use strict";var r=n(69307),a=n(94991);t.Z={attributes:{url:{type:"string"}},supports:{align:!1,html:!1},save:e=>{let{attributes:t,className:n}=e;const{url:o}=t;return(0,a.t)(o)?(0,r.createElement)("div",{className:n},(0,r.createElement)("a",{"data-pin-do":(0,a.t)(o),href:o})):null}}},81253:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(52175),i=n(94991),s=n(4052),l=n(61989),c=n(79509),u=n(49362),p=n(79474);t.Z=(0,a.withNotices)((function(e){let{attributes:t,isSelected:n,className:d,noticeOperations:m,noticeUI:h,setAttributes:f,onReplace:g}=e;const{url:b}=t,{isFetching:v,pinterestUrl:k,testUrl:y,hasTestUrlError:E}=(0,p.Z)(),[w,_]=(0,r.useState)(!1),[C,j]=(0,r.useState)(""),[S,x]=(0,r.useState)(!1),T=(0,r.useCallback)((()=>(0,r.createElement)(u.Z,{fallbackUrl:C,onClick:g})),[E]),N=()=>{v||(y(C),x(!1))},P=()=>{_(!0)};if((0,r.useEffect)((()=>{b&&y(b)}),[]),(0,r.useEffect)((()=>{!n&&w&&_(!1)}),[n,w]),(0,r.useEffect)((()=>{f({url:k}),m.removeAllNotices(),k&&j(k),E&&m.createErrorNotice(T())}),[k,E,f,T]),v)return(0,r.createElement)(l.Z,null);const A=(0,i.t)(b);if(S||!b||b&&!A)return(0,r.createElement)(c.Z,{className:d,onSubmit:N,noticeUI:h,url:C,setUrl:j});const I=`<a data-pin-do='${A}' href='${b}'></a>`;return(0,r.createElement)("div",{className:d},(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.C,{setEditingState:x})),(0,r.createElement)("div",null,(0,r.createElement)(a.SandBox,{html:I,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:P}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:P})))}))},79474:function(e,t,n){"use strict";var r=n(69307),a=n(87072),o=n(18161);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n]=(0,r.useState)(!1),[i,s]=(0,r.useState)(e),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i&&i!==o.a0&&(n(!0),(0,a.Z)(i).then((e=>{n(!1),s(e),c(!1)})).catch((()=>{n(!1),s(i||void 0),c(!0)})))}),[i]),{isFetching:t,pinterestUrl:i,hasTestUrlError:l,testUrl:s}}},18161:function(e,t,n){"use strict";n.d(t,{Wh:function(){return p},a0:function(){return d},u2:function(){return m},qv:function(){return f},Xd:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(81253),l=n(26981),c=n(57535),u=n(41659);const __=a.__,_x=a._x,p=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,d="https://pinterest.com/anapinskywalker/",m="pinterest",h=__("Pinterest","jetpack"),f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,null,(0,r.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),g={title:h,description:__("Embed a Pinterest pin, board, or user.","jetpack"),icon:{src:f,foreground:(0,c.m)()},category:"embed",keywords:[_x("social","block search term","jetpack"),_x("pinboard","block search term","jetpack"),_x("pins","block search term","jetpack")],supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:s.Z,save:l.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&p.test(e.textContent),transform:e=>(0,i.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}]},example:{attributes:{url:d}},deprecated:[u.Z]}},26981:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;return(0,r.createElement)("a",{href:n},n)}},94991:function(e,t,n){"use strict";n.d(t,{t:function(){return o}});var r=n(96483),a=n(18161);function o(e){if(!a.Wh.test(e))return"";const t=(0,r.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}},45452:function(e,t,n){"use strict";n.d(t,{G:function(){return s},q:function(){return l}});var r=n(12761),a=n(86989),o=n.n(a),i=n(96483);const s=async()=>await o()({path:"/wpcom/v2/podcast-player/track-quantity"}),l=async e=>{let t,n,a,{url:s,guids:l=[],fetchEpisodeOptions:c=!1}=e;try{t=await o()({path:(0,i.addQueryArgs)("/wpcom/v2/podcast-player",{url:s,guids:l,"episode-options":c})})}catch(e){n=e}if(t)return{type:r.u,data:t};try{a=await o()({path:(0,i.addQueryArgs)("/oembed/1.0/proxy",{url:s})})}catch(e){}const u='<a href="'+s+'">'+s+"</a>";if(a&&a.html!==u)return{type:r.b};throw n}},23600:function(e,t,n){"use strict";var r=n(96483),a=n(68039);t.Z={url:{type:"string",validator:r.isUrl},selectedEpisodes:{type:"array",default:[]},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeTitle:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}}},98006:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(76814);const s=(0,r.memo)((e=>{let{playerId:t,title:n,cover:a,link:o,track:i,children:s,showEpisodeTitle:c,showCoverArt:u,showEpisodeDescription:p,colors:d}=e;return u||c||p?(0,r.createElement)("div",{className:"jetpack-podcast-player__header"},(0,r.createElement)("div",{className:"jetpack-podcast-player__current-track-info"},u&&a&&(0,r.createElement)("div",{className:"jetpack-podcast-player__cover"},(0,r.createElement)("img",{className:"jetpack-podcast-player__cover-image",src:a,alt:""})),c&&!!(n||i&&i.title)&&(0,r.createElement)(l,{playerId:t,title:n,link:o,track:i,colors:d})),!!(p&&i&&i.description)&&(0,r.createElement)("p",{id:`${t}__track-description`,className:"jetpack-podcast-player__track-description"},i.description),s):s})),l=(0,r.memo)((e=>{let{playerId:t,title:n,link:a,track:s,colors:l={primary:{name:null,custom:null,classes:""}}}=e;return(0,r.createElement)("h2",{id:`${t}__title`,className:"jetpack-podcast-player__title"},!(!s||!s.title)&&(0,r.createElement)("span",{className:o()("jetpack-podcast-player__current-track-title",l.primary.classes),style:{color:l.primary.custom}},s.title,(0,r.createElement)("a",{className:"jetpack-podcast-player__track-title-link",href:s.link||s.src,target:"_blank",rel:"noopener noreferrer nofollow"},i.Z)),!!(s&&s.title&&n)&&(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"}," - "),!!n&&(0,r.createElement)(c,{title:n,link:a,colors:l}))})),c=(0,r.memo)((e=>{let{title:t,link:n}=e;return(0,r.createElement)("span",{className:"jetpack-podcast-player__podcast-title"},n?(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:n,target:"_blank",rel:"noopener noreferrer nofollow"},t):{title:t})}));t.Z=s},66530:function(e,t,n){"use strict";var r=n(69307),a=n(15111),o=n(15020);const i=(0,r.memo)((e=>{let{playerId:t,tracks:n,selectTrack:i,currentTrack:s,playerState:l,colors:c}=e;return(0,r.createElement)("ol",{className:"jetpack-podcast-player__tracks","aria-labelledby":`jetpack-podcast-player__tracklist-title--${t}`,"aria-describedby":`jetpack-podcast-player__tracklist-description--${t}`},n.map(((e,t)=>{const n=s===t;return(0,r.createElement)(o.Z,{key:e.id,index:t,track:e,selectTrack:i,isActive:n,isPlaying:n&&l===a.Wp,isError:n&&l===a.Vy,colors:c})})))}));t.Z=i},58627:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(25158),u=n(94333),p=n(9818),d=n(15111),m=n(92924),h=n(66530),f=n(98006),g=n(74693),b=n(56551);const __=l.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{currentTrack:0,hasUserInteraction:!1}),a()(this,"recordUserInteraction",(()=>{this.state.hasUserInteraction||this.setState({hasUserInteraction:!0})})),a()(this,"selectTrack",(e=>{const{currentTrack:t}=this.state;if(t===e)return this.recordUserInteraction(),void this.props.toggleMediaSource(this.props.playerId);-1!==t&&this.props.pauseMediaSource(this.props.playerId),this.loadAndPlay(e)})),a()(this,"loadTrack",(e=>{const t=this.getTrack(e);if(!t)return!1;this.state.currentTrack!==e&&this.setState({currentTrack:e});const{title:n,link:r,description:a}=t;return this.props.updateMediaSourceData(this.props.playerId,{title:n,link:r}),(0,c.speak)(
+/* translators: %s is the track title. It describes the current state of the track as "Loading: [track title]". */
+`${(0,l.sprintf)(__("Loading: %s","jetpack"),n)} ${a}`,"assertive"),!0})),a()(this,"loadAndPlay",(e=>{this.recordUserInteraction(),this.loadTrack(e)&&this.props.playMediaSource(this.props.playerId)})),a()(this,"getTrack",(e=>this.props.tracks[e])),a()(this,"handleError",(e=>{if(!this.state.hasUserInteraction){const t=window.navigator.userAgent.match(/Trident\/7\./)?"IE11: Playing sounds in webpages setting is not checked":e;this.setState((()=>{throw new Error(t)}))}this.props.errorMediaSource(this.props.playerId),(0,c.speak)(`${__("Error: Episode unavailable - Open in a new tab","jetpack")}`,"assertive")})),a()(this,"handlePlay",(()=>{this.props.playMediaSource(this.props.playerId),this.setState({hasUserInteraction:!0})})),a()(this,"handlePause",(()=>{this.props.pauseMediaSource(this.props.playerId),this.props.playerState!==d.Vy&&this.props.pauseMediaSource(this.props.playerId)})),a()(this,"handleTimeChange",(e=>{this.props.setMediaSourceCurrentTime(this.props.playerId,e)})),a()(this,"handleJump",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime-5)})),a()(this,"handleSkip",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime+30)})),a()(this,"updateMediaData",(e=>{this.props.updateMediaSourceData(this.props.playerId,{duration:e.target?.duration,domId:e.target?.id})}))}registerPlayer(){const e=this.getTrack(this.state.currentTrack)||{},{playerId:t}=this.props;this.props.registerMediaSource(t,{title:e.title,link:e.link,state:d._5}),this.props.setDefaultMediaSource(t)}componentDidMount(){this.props.playerId&&this.registerPlayer()}componentWillUnmount(){this.props.playerId&&this.props.unregisterMediaSource(this.props.playerId)}componentDidUpdate(e){const t=e=>e?.length?e.map((e=>e.guid)):[],n=t(this.props.tracks),r=new Set(t(e.tracks));n.length===r.size&&n.every((e=>r.has(e)))||this.loadTrack(0)}static getDerivedStateFromProps(e,t){return e.tracks.length<=t.currentTrack?{...t,currentTrack:0}:null}render(){const{playerId:e,title:t,link:n,cover:r,tracks:a,attributes:i,currentTime:c,playerState:u}=this.props,{itemsToShow:p,primaryColor:d,customPrimaryColor:b,hexPrimaryColor:v,secondaryColor:k,customSecondaryColor:y,hexSecondaryColor:E,backgroundColor:w,customBackgroundColor:_,hexBackgroundColor:C,showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x}=i,{currentTrack:T}=this.state,N=a.slice(0,p),P=this.getTrack(T),A=(0,g.Aq)({primaryColor:d,customPrimaryColor:b,secondaryColor:k,customSecondaryColor:y,backgroundColor:w,customBackgroundColor:_}),I={color:y,backgroundColor:_,"--jetpack-podcast-player-primary":v,"--jetpack-podcast-player-secondary":E,"--jetpack-podcast-player-background":C},M=s()("jetpack-podcast-player",u,A.secondary.classes,A.background.classes);return(0,o.createElement)("section",{className:M,style:I,"aria-labelledby":t||P&&P.title?`${e}__title`:void 0,"aria-describedby":P&&P.description?`${e}__track-description`:void 0,"data-jetpack-iframe-ignore":!0},(0,o.createElement)(f.Z,{playerId:e,title:t,link:n,cover:r,track:this.getTrack(T),showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x,colors:A},(0,o.createElement)(m.Z,{onJumpBack:this.handleJump,onSkipForward:this.handleSkip,trackSource:this.getTrack(T).src,onPlay:this.handlePlay,onPause:this.handlePause,onError:this.handleError,playStatus:u,currentTime:c,onTimeChange:this.handleTimeChange,onMetadataLoaded:this.updateMediaData})),N.length>1&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h4",{id:`jetpack-podcast-player__tracklist-title--${e}`,className:"jetpack-podcast-player--visually-hidden"},(0,l.sprintf)(// translators: %s is the track title.
+__("Playlist: %s","jetpack"),t)),(0,o.createElement)("p",{id:`jetpack-podcast-player__tracklist-description--${e}`,className:"jetpack-podcast-player--visually-hidden"},__("Select an episode to play it in the audio player.","jetpack")),(0,o.createElement)(h.Z,{playerId:e,playerState:u,currentTrack:T,tracks:N,selectTrack:this.selectTrack,colors:A})))}}v.defaultProps={title:"",cover:"",link:"",attributes:{url:null,itemsToShow:5,showCoverArt:!0,showEpisodeTitle:!0,showEpisodeDescription:!0},tracks:[]},t.Z=(0,u.compose)([b.Z,(0,p.withSelect)(((e,t)=>{const{playerId:n}=t,{getMediaSourceCurrentTime:r,getMediaPlayerState:a}=e(d.tT);return{currentTime:r(n),playerState:a(n)}})),(0,p.withDispatch)((e=>{const{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}=e(d.tT);return{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}}))])(v)},86852:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=(0,r.memo)((e=>{let{link:t,title:n,colors:o}=e;return(0,r.createElement)("div",{className:"jetpack-podcast-player__track-error"},__("Episode unavailable. ","jetpack"),t&&(0,r.createElement)("span",{className:o.secondary.classes,style:{color:o.secondary.custom}},(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:t,rel:"noopener noreferrer nofollow",target:"_blank"},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${(0,a.sprintf)(
+/* translators: %s is the title of the track. This text is visually hidden from the screen, but available to screen readers. */
+__("%s:","jetpack"),n)} `),__("Open in a new tab","jetpack"))))}));t.Z=o},71938:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(72086);const __=a.__,i=(0,r.memo)((e=>{let t,n,{isPlaying:a,isError:i,className:s}=e;i?(n="error",
+/* translators: This is text to describe the current state. This will go
+ before the track title, such as "Error: [The title of the track]". */
+t=__("Error:","jetpack")):a&&(n="playing",
+/* translators: Text to describe the current state. This will go before the
+ track title, such as "Playing: [The title of the track]". */
+t=__("Playing:","jetpack"));const l=o[n];return l?(0,r.createElement)("span",{className:`${s} ${s}--${n}`},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${t} `),l):(0,r.createElement)("span",{className:s})}));t.Z=i},15020:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(71938),l=n(86852),c=n(74693);const __=i.__,u=(0,r.memo)((e=>{let{track:t,isActive:n,isPlaying:a,isError:i,selectTrack:u,index:p,colors:d={primary:{},secondary:{}}}=e;const m=(0,c.Gd)("color",d.primary.name),h=(0,c.Gd)("color",d.secondary.name),f=o()("jetpack-podcast-player__track",{"is-active":n,"has-primary":n&&(d.primary.name||d.primary.custom),[m]:n&&!!m,"has-secondary":!n&&(d.secondary.name||d.secondary.custom),[h]:!n&&!!h}),g={};n&&d.primary.custom&&!m?g.color=d.primary.custom:n||!d.secondary.custom||h||(g.color=d.secondary.custom);const
+/* translators: This needs to be a single word with no spaces. It describes
+ the current item in the group. A screen reader will announce it as "[title],
+ current track". */
+b=n?__("track","jetpack"):void 0;return(0,r.createElement)("li",{className:f,style:Object.keys(g).length?g:null},(0,r.createElement)("a",{className:"jetpack-podcast-player__link jetpack-podcast-player__track-link",href:t.link||t.src,role:"button","aria-current":b,onClick:e=>{e.shiftKey||e.metaKey||e.altKey||(e.preventDefault(),u(p))},onKeyDown:e=>{" "===event.key&&(e.preventDefault(),u(p))}},(0,r.createElement)(s.Z,{className:"jetpack-podcast-player__track-status-icon",isPlaying:a,isError:i}),(0,r.createElement)("span",{className:"jetpack-podcast-player__track-title"},t.title),t.duration&&(0,r.createElement)("time",{className:"jetpack-podcast-player__track-duration",dateTime:t.duration},t.duration)),n&&i&&(0,r.createElement)(l.Z,{link:t.link,title:t.title,colors:d}))}));t.Z=u},56551:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736);const __=i.__;function s(e){class t extends o.Component{constructor(){super(...arguments),a()(this,"state",{didError:!1,isIE11AudioIssue:!1}),a()(this,"componentDidCatch",((e,t)=>{this.props.onError(e,t)}))}render(){const{didError:t,isIE11AudioIssue:n}=this.state;return t?(0,o.createElement)("section",{className:"jetpack-podcast-player"},(0,o.createElement)("p",{className:"jetpack-podcast-player__error"},n?__('The podcast player cannot be displayed as your browser settings do not allow for sounds to be played in webpages. This can be changed in your browser’s "Internet options" settings. In the "Advanced" tab you will have to check the box next to "Play sounds in webpages" in the "Multimedia" section. Once you have confirmed that the box is checked, please press "Apply" and then reload this page.',"jetpack"):__("An unexpected error occured within the Podcast Player. Reloading this page might fix the problem.","jetpack",0))):(0,o.createElement)(e,this.props)}}return a()(t,"getDerivedStateFromError",(e=>({didError:!0,isIE11AudioIssue:!!e.message.match(/IE11/)}))),t.defaultProps={onError:()=>{}},t}},12761:function(e,t,n){"use strict";n.d(t,{u:function(){return r},b:function(){return a}});const r="podcast-feed",a="embed-block"},90307:function(e,t,n){"use strict";var r=n(96483),a=n(68039);const o={url:{type:"string",validator:r.isUrl},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}};t.Z={attributes:o,supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},save:()=>null}},87315:function(e,t,n){"use strict";var r=n(69307),a=n(90922),o=n.n(a),i=n(92819),s=n(55609),l=n(94333),c=n(65736),u=n(52175),p=n(9818),d=n(4981),m=n(96483),h=n(14087),f=n(41820),g=n(58014),b=n(23600),v=n(58627),k=n(74693),y=n(45452),E=n(91763),w=n(71420),_=n(12761),C=n(87929);const __=c.__,j=o()("jetpack:podcast-player:edit"),S=(0,g.Wp)()||(0,g.Ug)()?"http://en.support.wordpress.com/wordpress-editor/blocks/podcast-player-block/":"https://jetpack.com/support/jetpack-blocks/podcast-player-block/";t.Z=(0,l.compose)([(0,p.withDispatch)(((e,t)=>{let{clientId:n,attributes:r}=t;return{replaceWithEmbedBlock(){e("core/block-editor").replaceBlock(n,(0,d.createBlock)("core/embed",{url:r.url}))}}})),(0,u.withColors)("backgroundColor",{primaryColor:"color"},{secondaryColor:"color"}),s.withNotices,l.withInstanceId,w.K])((e=>{let{instanceId:t,className:n,attributes:a,setAttributes:o,noticeOperations:{createErrorNotice:l,removeAllNotices:c},noticeUI:p,primaryColor:d,setPrimaryColor:g,secondaryColor:w,setSecondaryColor:x,fallbackTextColor:T,backgroundColor:N,setBackgroundColor:P,fallbackBackgroundColor:A,isSelected:I,replaceWithEmbedBlock:M}=e;const B=(0,h.S)(b.Z,a),{url:R,selectedEpisodes:L,itemsToShow:Z,showCoverArt:F,showEpisodeTitle:D,showEpisodeDescription:O,exampleFeedData:z}=B,U=`jetpack-podcast-player-block-${t}`,[$,V]=(0,r.useState)(!1),[G,q]=(0,r.useState)(10),H=(0,r.useRef)(),[{selectedGuid:W,checkUrl:K,...X},J]=(0,r.useReducer)(E.J,{editedUrl:R||"",isEditing:!R&&!z,isLoading:!1,feedData:z||{},isInteractive:!1,selectedGuid:L?.[0]?.guid,checkUrl:R||""}),Y=(0,r.useMemo)((()=>(0,i.debounce)((e=>{J({type:E.N.START_FETCH}),H.current?.cancel(),H.current=(0,k.W4)((0,y.q)({...e,fetchEpisodeOptions:!0})),H.current.promise.then((t=>{if(c(),t?.isCanceled)j("Block was unmounted during fetch",t);else switch(t?.type){case _.u:return o({url:e.url,selectedEpisodes:e.guids.map((e=>({guid:e})))}),J({type:E.N.FEED_RECEIVED,payload:t.data});case _.b:return M()}}),(e=>{e?.isCanceled?j("Block was unmounted during fetch",e):(j("feed error",e),c(),l(e.message||__("Your podcast couldn't be embedded. Please double check your URL.","jetpack")),J({type:E.N.START_EDITING}))}))}),300)),[M,o,l,c]);(0,r.useEffect)((()=>()=>{H?.current?.cancel?.()}),[]);const Q=(0,r.useCallback)((e=>{null===e||$||((0,C.DT)(["link#mediaelement-css","link#wp-mediaelement-css"],e),V(!0))}),[$]);(0,r.useEffect)((()=>{if(""!==K)return Y({url:K,guids:W?[W]:[]}),()=>H?.current?.cancel?.()}),[Y,K,W]),(0,r.useEffect)((()=>{(0,y.G)().then((e=>{q(e)}))}),[]),(0,r.useEffect)((()=>{W&&1!==Z&&o({itemsToShow:1})}),[W,Z,o]),(0,r.useEffect)((()=>{!I&&X.isInteractive&&J({type:E.N.PREVENT_INTERACTIONS})}),[I,X.isInteractive]);const ee=e=>{if(e.preventDefault(),""===X.editedUrl)return;const t=(0,m.prependHTTP)(X.editedUrl);(0,m.isURL)(t)?(t===K?(J({type:E.N.CLEAR_FEED}),Y({url:K,guids:L[0]?.guid?[L[0].guid]:[]})):J({type:E.N.CHECK_URL,payload:t}),J({type:E.N.FINISH_EDITING,payload:t})):l(__("Your podcast couldn't be embedded. Please double check your URL.","jetpack"))};if(X.isEditing)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Enter your podcast RSS feed URL.","jetpack"),className:"jetpack-podcast-player__placeholder"},(0,r.createElement)("form",{onSubmit:ee},p,(0,r.createElement)(s.TextControl,{type:"text",inputMode:"url",placeholder:__("Enter URL here…","jetpack"),value:X.editedUrl,className:"components-placeholder__input",onChange:e=>J({type:E.N.EDIT_URL,payload:e})}),(0,r.createElement)(s.Button,{isPrimary:!0,type:"submit"},__("Embed","jetpack"))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(s.ExternalLink,{href:S},__("Learn more about embeds","jetpack"))));if(!X.feedData.tracks?.length)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Loading podcast feed…","jetpack")},(0,r.createElement)(s.Spinner,null));const te=(e,t)=>n=>{o({[e]:n}),t(n)};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(u.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarButton,{"aria-label":__("Edit Podcast Feed URL","jetpack"),onClick:()=>J({type:E.N.START_EDITING})},__("Replace","jetpack")))),(0,r.createElement)(u.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Podcast settings","jetpack")},(s.ComboboxControl||0===L.length)&&(0,r.createElement)(s.RangeControl,{label:__("Number of items","jetpack"),value:Z,onChange:e=>o({itemsToShow:W?1:e}),min:1,max:G,required:!0,disabled:!!W}),s.ComboboxControl&&(0,r.createElement)(s.ComboboxControl,{className:"jetpack-podcast-player__episode-selector",value:W,onChange:e=>J({type:E.N.SELECT_EPISODE,payload:e}),options:X.feedData.options||[],label:__("Episode","jetpack"),onFilterValueChange:i.noop}),(0,r.createElement)(s.ToggleControl,{label:__("Show Cover Art","jetpack"),checked:F,onChange:e=>o({showCoverArt:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Title","jetpack"),checked:D,onChange:e=>o({showEpisodeTitle:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Description","jetpack"),checked:O,onChange:e=>o({showEpisodeDescription:e})})),(0,r.createElement)(u.PanelColorSettings,{title:__("Color Settings","jetpack"),colorSettings:[{value:d.color,onChange:te("hexPrimaryColor",g),label:__("Primary Color","jetpack")},{value:w.color,onChange:te("hexSecondaryColor",x),label:__("Secondary Color","jetpack")},{value:N.color,onChange:te("hexBackgroundColor",P),label:__("Background Color","jetpack")}]},(0,r.createElement)(u.ContrastChecker,{isLargeText:!1,textColor:w.color,backgroundColor:N.color,fallbackBackgroundColor:A,fallbackTextColor:T}))),(0,r.createElement)("div",{id:U,className:n,ref:Q},(0,r.createElement)(v.Z,{playerId:U,attributes:B,tracks:X.feedData.tracks,cover:X.feedData.cover,title:X.feedData.title,link:X.feedData.link}),!X.isInteractive&&!X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__interactive-overlay",onMouseUp:()=>J({type:E.N.MAKE_INTERACTIVE})}),X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__loading-overlay"},(0,r.createElement)(s.Spinner,null))))}))},41820:function(e,t,n){"use strict";n.d(t,{E:function(){return r.Z}});var r=n(95506)},76814:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"}));t.Z=o},95506:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,null,(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"})),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,null),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,{transform:"matrix(1 0 0 1 144 120)"},(0,r.createElement)(a.Path,{d:"M-122-114h-5v8.18c-0.31-0.11-0.65-0.18-1-0.18c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3v-9h3V-114 L-122-114z M-129-114h-12v2h12V-114L-129-114z M-129-110h-12v2h12V-110L-129-110z M-133-106h-8v2h8V-106L-133-106z M-129-103 c0-0.55,0.45-1,1-1c0.55,0,1,0.45,1,1s-0.45,1-1,1C-128.55-102-129-102.45-129-103z"})))))},72086:function(e,t,n){"use strict";n.r(t),n.d(t,{playing:function(){return i},error:function(){return s}});var r=n(69307),a=n(55609);const o={height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},i=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm7-.17v6.34L7.83 13H5v-2h2.83L10 8.83zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77 0-4.28-2.99-7.86-7-8.77z"})),s=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}))},58495:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(65736),a=n(23600),o=n(90307),i=n(87315),s=n(99944),l=n(41820),c=n(57535);const __=r.__,_x=r._x,u="podcast-player",p={title:__("Podcast Player","jetpack"),description:__("Select and play episodes from a single podcast.","jetpack"),icon:{src:l.E,foreground:(0,c.m)()},category:"embed",keywords:[_x("audio","block search term","jetpack"),_x("embed","block search term","jetpack")],supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},edit:i.Z,save:s.Z,attributes:a.Z,example:{attributes:{customPrimaryColor:(0,c.m)(),hexPrimaryColor:(0,c.m)(),exampleFeedData:{title:__("Jetpack Example Podcast","jetpack"),link:"https://jetpack.com",cover:"https://jetpackme.files.wordpress.com/2020/05/jetpack-example-podcast-cover.png?w=160",tracks:[{id:"3",title:__("3. Our third episode","jetpack"),duration:"14:58"},{id:"2",title:__("2. Interview with a special guest","jetpack"),duration:"19:17"},{id:"1",title:__("1. Welcome to Example Podcast","jetpack"),duration:"11:25"}]}}},deprecated:[o.Z]}},99944:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;if(n&&""!==n)return(0,r.createElement)("a",{className:"jetpack-podcast-player__direct-link",href:n},n)}},91763:function(e,t,n){"use strict";n.d(t,{N:function(){return r},J:function(){return a}});const r={EDIT_URL:"EDIT_URL",FINISH_EDITING:"FINISH_EDITING",START_EDITING:"START_EDITING",SELECT_EPISODE:"SELECT_EPISODE",FEED_RECEIVED:"FEED_RECEIVED",CLEAR_FEED:"CLEAR_FEED",MAKE_INTERACTIVE:"MAKE_INTERACTIVE",PREVENT_INTERACTIONS:"PREVENT_INTERACTIONS",START_FETCH:"START_FETCH",CHECK_URL:"CHECK_URL"},a=(e,t)=>{switch(t.type){case r.EDIT_URL:return{...e,editedUrl:t.payload};case r.START_EDITING:return{...e,isEditing:!0,isLoading:!1};case r.FINISH_EDITING:return{...e,editedUrl:t.payload,isEditing:!1};case r.FEED_RECEIVED:return{...e,isLoading:!1,feedData:t.payload};case r.CLEAR_FEED:return{...e,feedData:{}};case r.MAKE_INTERACTIVE:return{...e,isInteractive:!0};case r.PREVENT_INTERACTIONS:return{...e,isInteractive:!1};case r.START_FETCH:return{...e,isLoading:!0};case r.SELECT_EPISODE:return{...e,selectedGuid:t.payload};case r.CHECK_URL:return{...e,selectedGuid:null,feedData:{},checkUrl:t.payload};default:return{...e}}}},74693:function(e,t,n){"use strict";n.d(t,{Gd:function(){return i},W4:function(){return s},Aq:function(){return l}});var r=n(89105),a=n.n(r),o=n(92819);function i(e,t){if(e&&t)return`has-${t}-${e}`}function s(e){let t=!1;return{promise:new Promise(((n,r)=>{e.then((e=>t?r({isCanceled:!0}):n(e)),(e=>r(t?{isCanceled:!0}:e)))})),cancel(){t=!0}}}const l=(0,o.memoize)((e=>{let{primaryColor:t,customPrimaryColor:n,secondaryColor:r,customSecondaryColor:o,backgroundColor:s,customBackgroundColor:l}=e;const c=i("color",t),u=i("color",r),p=i("background-color",s);return{primary:{name:t,custom:n,classes:a()({"has-primary":c||n,[c]:c})},secondary:{name:r,custom:o,classes:a()({"has-secondary":u||o,[u]:u})},background:{name:s,custom:l,classes:a()({"has-background":p||l,[p]:p})}}}),(e=>Object.values(e).join()))},59189:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"premium-content-wrapper"},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:["premium-content/subscriber-view","premium-content/logged-out-view"],templateLock:"all",template:[["premium-content/subscriber-view"],["premium-content/logged-out-view"]],__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))}},2963:function(e,t,n){"use strict";var r=n(69307);const a={selectedTab:{id:"",className:"",label:(0,r.createElement)(r.Fragment,null)},stripeNudge:null},o=(0,r.createContext)(a);t.Z=o},76136:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(55609),l=n(22607),c=n(7345),u=n(65736),p=n(29917),d=n(20361);const __=u.__;function m(e){const{selectedPlanId:t,onSelected:n,plans:r,getPlanDescription:u}=e,m=r.find((e=>e.id===t));let h=null;return m&&(h=" "+u(m)),(0,o.createElement)(i.BlockControls,null,(0,o.createElement)(s.ToolbarGroup,null,(0,o.createElement)(s.ToolbarItem,null,(()=>(0,o.createElement)(s.DropdownMenu,{icon:(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.Z,{icon:c.Z})," ",h&&(0,o.createElement)(o.Fragment,null,h)),label:__("Select a plan","jetpack"),className:"premium-content-toolbar-button"},(t=>{let{onClose:r}=t;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.Z,a()({},e,{onSelected:n,onClose:r,selectedPlan:m})),(0,o.createElement)(d.Z,a()({},e,{onClose:r})))}))))))}},47322:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"25",height:"24",viewBox:"0 0 25 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12.7439 14.4271L8.64053 13.165L8.51431 13.8718L8.09208 20.7415C8.06165 21.2365 8.61087 21.5526 9.02363 21.2776L12.7439 18.799L16.7475 21.304C17.1687 21.5676 17.7094 21.2343 17.6631 20.7396L17.0212 13.8718L17.0212 13.165L12.7439 14.4271Z"}),(0,r.createElement)(a.Circle,{cx:"12.7439",cy:"8.69796",r:"5.94466",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(a.Path,{d:"M9.71023 8.12461L11.9543 10.3687L15.7776 6.54533",stroke:"currentColor",strokeWidth:"1.5",fill:"none"}))},61114:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(17882);const __=i.__;function l(e){const[t,n]=(0,r.useState)(0),{attributes:i,setAttributes:l,className:c,savePlan:u,siteSlug:p}=e;return(0,r.createElement)(o.InspectorControls,null,p&&(0,r.createElement)(a.ExternalLink,{href:`https://wordpress.com/earn/payments/${p}`,className:"wp-block-premium-content-container---link-to-earn"},__("Manage your subscriptions.","jetpack")),(0,r.createElement)(a.PanelBody,{title:__("Add a new subscription","jetpack"),initialOpen:!0,className:`${c}---settings-add_plan`},1===t&&(0,r.createElement)(a.Placeholder,{icon:"lock",label:__("Premium Content","jetpack"),instructions:__("Saving plan…","jetpack")},(0,r.createElement)(a.Spinner,null)),0===t&&(0,r.createElement)("div",null,(0,r.createElement)(a.PanelRow,{className:"plan-name"},(0,r.createElement)(a.TextControl,{id:"new-plan-name",label:__("Name","jetpack"),value:i.newPlanName,onChange:e=>l({newPlanName:e})})),(0,r.createElement)(a.PanelRow,{className:"plan-price"},(0,r.createElement)(a.SelectControl,{label:__("Currency","jetpack"),onChange:e=>l({newPlanCurrency:e}),value:i.newPlanCurrency,options:s.Xy}),(0,r.createElement)(a.TextControl,{label:__("Price","jetpack"),value:i.newPlanPrice,onChange:e=>l({newPlanPrice:parseFloat(e)}),type:"number"})),(0,r.createElement)(a.PanelRow,{className:"plan-interval"},(0,r.createElement)(a.SelectControl,{label:__("Interval","jetpack"),onChange:e=>l({newPlanInterval:e}),value:i.newPlanInterval,options:[{label:__("Month","jetpack"),value:"1 month"},{label:__("Year","jetpack"),value:"1 year"}]})),(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isSecondary:!0,isLarge:!0,onClick:t=>{t.preventDefault(),n(1),u(e.attributes,(e=>{n(0),e&&(l({newPlanPrice:5}),l({newPlanName:""}))}))}},__("Add subscription","jetpack"))))))}},20361:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(9818),o=n(55609),i=n(65736);const __=i.__;function s(e){return(0,r.createElement)(o.MenuGroup,null,(0,r.createElement)(o.MenuItem,{onClick:t=>{t.preventDefault(),(0,a.select)("core/edit-post").isEditorSidebarOpened()||(0,a.dispatch)("core/edit-post").openGeneralSidebar("edit-post/block");const n=document.getElementById("new-plan-name");null!==n&&n.focus(),e.onClose()}},__("Add a new subscription","jetpack")))}},61556:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(55609);function o(e){const{className:t,plan:n,selectedPlan:o,onSelected:i,onClose:s,getPlanDescription:l}=e,c=o&&n.id===o.id,u=(c?["is-selected"]:[]).concat([t]).join(" "),p=c?"yes":void 0;let d=null;return n&&(d=" "+l(n)),(0,r.createElement)(a.MenuItem,{onClick:e=>{e.preventDefault(),i(n),s()},className:u,key:n.id,value:n.id,selected:c,icon:p},n.title," : ",d)}},29917:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(61556);function l(e){const{plans:t,selectedPlan:n,onSelected:r}=e;return(0,o.createElement)(i.MenuGroup,null,t.map((t=>(0,o.createElement)(s.Z,a()({},e,{key:t.id,selectedPlan:n,onSelected:r,plan:t})))))}},34411:function(e,t,n){"use strict";n.d(t,{W:function(){return a},H:function(){return o}});var r=n(9818);const a=e=>0===e.name.indexOf("premium-content/")||e.innerBlocks.some(a),o=e=>{const{getBlocksByClientId:t,getBlockParents:n}=(0,r.select)("core/block-editor");return!!t(n(e.clientId)).find((e=>0===e.name.indexOf("premium-content/")))}},97894:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(94333),i=n(9818),s=n(65736),l=n(92694);const __=s.__,c=["core/button","jetpack/recurring-payments","premium-content/login-button"];t.Z=(0,o.compose)([(0,i.withSelect)(((e,t)=>({subscribeButton:e("core/block-editor").getBlock(t.clientId).innerBlocks.find((e=>"jetpack/recurring-payments"===e.name))}))),(0,i.withDispatch)(((e,t)=>({setSubscribeButtonPlan(n){e("core/block-editor").updateBlockAttributes(t.subscribeButton.clientId,{planId:n})}})))])((function(e){let{context:t,subscribeButton:n,setSubscribeButtonPlan:o}=e;const i=t?t["premium-content/planId"]:null,s=!!t&&t["premium-content/isPreview"],u=[["core/button",{element:"a",uniqueId:"recurring-payments-id",text:__("Subscribe","jetpack")}],["premium-content/login-button"]],p=[["jetpack/recurring-payments",{planId:i},[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id",text:__("Subscribe","jetpack")}]]],["premium-content/login-button"]];(0,r.useEffect)((()=>{i&&n&&n.attributes.planId!==i&&o(i)}),[i,n,o]),(0,r.useEffect)((()=>{n&&(0,l.addFilter)("jetpack.RecurringPayments.showControls","jetpack/premium-content-hide-recurring-payments-controls",((e,t)=>t!==n.clientId&&e))}),[n]);const d=(0,a.useBlockProps)({className:"wp-block-buttons"});return(0,r.createElement)("div",d,(0,r.createElement)(a.InnerBlocks,{allowedBlocks:c,template:s?u:p,templateInsertUpdatesSelection:!1,__experimentalLayout:{type:"default",alignments:[]},__experimentalMoverDirection:"horizontal"}))}))},46157:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(15284),i=n(52175),s=n(97894),l=n(71586);const __=a.__,c="premium-content/buttons",u={apiVersion:2,title:__("Premium Content buttons","jetpack"),description:__("Prompt Premium Content visitors to take action with a group of button-style links.","jetpack"),category:"grow",icon:o.Z,supports:{align:!0,alignWide:!1,lightBlockWrapper:!0,inserter:!1},keywords:[__("link","jetpack")],edit:s.Z,save:l.Z,usesContext:["premium-content/planId","premium-content/isPreview"],deprecated:[{attributes:{},supports:{align:!0,alignWide:!1,lightBlockWrapper:!0,inserter:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-buttons"},(0,r.createElement)(i.InnerBlocks.Content,null))}]}},71586:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){const e=a.useBlockProps.save({className:"wp-block-buttons"});return(0,r.createElement)("div",e,(0,r.createElement)(a.InnerBlocks.Content,null))}},86633:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(52175),l=n(65736),c=n(94333),u=n(9818),p=n(96483),d=n(78850),m=n(86989),h=n.n(m),f=n(59189),g=n(76136),b=n(61114),v=n(2963),k=n(51591),y=n(17882),E=n(2368),w=n(37930);const __=l.__,_=[{id:"premium",label:(0,o.createElement)("span",null,__("Subscriber View","jetpack")),className:"wp-premium-content-subscriber-view"},{id:"wall",label:(0,o.createElement)("span",null,__("Non-subscriber View","jetpack")),className:"wp-premium-content-logged-out-view"}],C=[];function j(e){const[t,n]=(0,o.useState)(_[1]),[r,c]=(0,o.useState)(!1),[u,m]=(0,o.useState)(C),[j,x]=(0,o.useState)(null),[T,N]=(0,o.useState)(0),[P,A]=(0,o.useState)(!1),[I,M]=(0,o.useState)(""),{isPreview:B}=e.attributes;function R(t,n){if(!t.newPlanName||0===t.newPlanName.length)return S(e,__("Plan requires a name","jetpack")),void n(!1);const r=parseFloat(t.newPlanPrice),a=(0,y.hj)(t.newPlanCurrency),o=(0,l.sprintf)(// translators: %s: Price
+__("Minimum allowed price is %s.","jetpack"),(0,d.ZP)(a,t.newPlanCurrency));if(r<a)return S(e,o),void n(!1);if(!(0,y.vs)(t.newPlanCurrency,r))return S(e,__("Plan requires a valid price","jetpack")),void n(!1);const i={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:t.newPlanCurrency,price:t.newPlanPrice,title:t.newPlanName,interval:t.newPlanInterval}};h()(i).then((t=>{const r={id:t.id,title:t.title,interval:t.interval,price:t.price,currency:t.currency};m(u.concat([r])),L(r),function(e,t){e.createSuccessNotice(t,{type:"snackbar"})}(e,__("Successfully created plan","jetpack")),n&&n(!0)}),(()=>{S(e,__("There was an error when adding the plan.","jetpack")),n&&n(!1)}))}function L(t){e.setAttributes({selectedPlanId:t.id})}const Z=(0,o.useRef)(null);!function(e,t){function n(n){e.current&&n.target&&n.target instanceof Node&&!e.current.contains(n.target)?t(!1):t(!0)}(0,o.useEffect)((()=>(document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)})))}(Z,c);const{isSelected:F,className:D}=e;(0,o.useEffect)((()=>{if(B)return;const t=(0,p.getQueryArg)(window.location.href,"origin"),n={path:(0,p.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t?"gutenberg-wpcom":"gutenberg"}),method:"GET"};h()(n).then((t=>{if(t||"object"==typeof t){if(t.errors&&Object.values(t.errors)&&Object.values(t.errors)[0][0])return N(2),void S(e,Object.values(t.errors)[0][0]);x((0,E.Z)(e.postId,t.connect_url)),A(t.should_upgrade_to_access_memberships),M(t.site_slug),t.products&&0===t.products.length&&!t.should_upgrade_to_access_memberships&&t.connected_account_id?R({newPlanCurrency:"USD",newPlanPrice:5,newPlanName:__("Monthly Subscription","jetpack"),newPlanInterval:"1 month"},(()=>{N(t.connected_account_id?1:2)})):(t.products&&t.products.length>0&&(m(t.products),e.attributes.selectedPlanId||L(t.products[0])),N(t.connected_account_id?1:2))}}),(t=>{x(null),N(2),S(e,t.message)})),setTimeout((()=>e.selectBlock()),1e3)}),[]);const{autosaveAndRedirect:O}=(0,w.Z)(j);return 0!==T||B?(0,o.createElement)(o.Fragment,null,(0,o.createElement)(s.BlockControls,null,!P&&1!==T&&j&&(0,o.createElement)(i.ToolbarGroup,null,(0,o.createElement)(i.ToolbarButton,{icon:k.Pw,onClick:O,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))),(0,o.createElement)(i.ToolbarGroup,null,(0,o.createElement)(i.ToolbarButton,{onClick:()=>{n(_[1])},className:"components-tab-button",isPressed:"wp-premium-content-logged-out-view"===t.className},(0,o.createElement)("span",null,__("Visitor View","jetpack"))),(0,o.createElement)(i.ToolbarButton,{onClick:()=>{n(_[0])},className:"components-tab-button",isPressed:"wp-premium-content-logged-out-view"!==t.className},(0,o.createElement)("span",null,__("Subscriber View","jetpack"))))),(0,o.createElement)("div",{className:D,ref:Z},(F||r)&&1===T&&(0,o.createElement)(g.Z,a()({},e,{plans:u,selectedPlanId:e.attributes.selectedPlanId,onSelected:L,getPlanDescription:function(e){const t=(0,d.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,l.sprintf)(// translators: %s: amount
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,l.sprintf)(// translators: %s: amount
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,l.sprintf)(// translators: %s: amount, plan interval
+__("%1$s / %2$s","jetpack"),t,e.interval)}})),(F||r)&&1===T&&(0,o.createElement)(b.Z,a()({},e,{savePlan:R,siteSlug:I})),(0,o.createElement)(v.Z.Provider,{value:{selectedTab:t}},(0,o.createElement)(f.Z,null)))):(0,o.createElement)("div",{className:D,ref:Z},(0,o.createElement)(i.Placeholder,{icon:"lock",label:__("Premium Content","jetpack"),instructions:__("Loading data…","jetpack")},(0,o.createElement)(i.Spinner,null)))}function S(e,t){e.createErrorNotice(t,{type:"snackbar"})}t.Z=(0,c.compose)([(0,u.withSelect)((e=>{const{getCurrentPostId:t}=e("core/editor");return{postId:t()}})),(0,u.withDispatch)(((e,t)=>{const n=e("core/block-editor"),r=e("core/notices");return{selectBlock(){n.selectBlock(t.clientId)},createErrorNotice:r.createErrorNotice,createSuccessNotice:r.createSuccessNotice}}))])((function(e){return(0,o.createElement)(i.Disabled.Consumer,null,(t=>(0,o.createElement)(j,a()({},e,{attributes:{...e.attributes,isPreview:t||e.attributes?.isPreview}}))))}))},98034:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(4981),o=n(86633),i=n(77940),s=n(47322),l=n(34411);const __=r.__,_x=r._x,c="premium-content/container",u={title:__("Premium Content","jetpack"),description:__("Restrict access to your content for paying subscribers.","jetpack"),icon:s.Z,category:"grow",keywords:[_x("paywall","keyword","jetpack"),_x("paid","keyword","jetpack"),_x("subscribe","keyword","jetpack"),_x("membership","keyword","jetpack")],attributes:{newPlanName:{type:"string",default:__("Monthly Subscription","jetpack")},newPlanCurrency:{type:"string",default:"USD"},newPlanPrice:{type:"number",default:5},newPlanInterval:{type:"string",default:"1 month"},selectedPlanId:{type:"number",default:0},isPreview:{type:"boolean",default:!1},isPremiumContentChild:{type:"bool",default:!0}},edit:o.Z,save:i.Z,providesContext:{"premium-content/planId":"selectedPlanId","premium-content/isPreview":"isPreview",isPremiumContentChild:"isPremiumContentChild"},supports:{html:!1},example:{attributes:{isPreview:!0}},transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["*"],__experimentalConvert(e){if(e.some(l.W))return;if((0,l.H)(e[0]))return;const t=e.map((e=>(0,a.createBlock)(e.name,e.attributes,e.innerBlocks)));return(0,a.createBlock)("premium-content/container",{},[(0,a.createBlock)("premium-content/subscriber-view",{},t),(0,a.createBlock)("premium-content/logged-out-view")])}}]}}},93068:function(e,t,n){"use strict";var r=n(25905),a=n(9109);t.Z=[r.Z,a.Z]},25905:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(52175);t.Z={attributes:{subscribeButtonText:{type:"string",default:"Subscribe"},loginButtonText:{type:"string",default:"Log In"},buttonClasses:{type:"string",default:""},backgroundButtonColor:{type:"string",default:""},textButtonColor:{type:"string",default:""},customBackgroundButtonColor:{type:"string",default:""},customTextButtonColor:{type:"string",default:""}},isEligible:e=>{let{buttonClasses:t}=e;return!!t},migrate:(e,t)=>{if(Array.isArray(t))for(let n=0;n<t.length;n++)if(t[n].name&&"premium-content/buttons"===t[n].name)return[e,[...t]];const n=(0,a.createBlock)("premium-content/buttons",{},[(0,a.createBlock)("jetpack/recurring-payments",{submitButtonText:e.subscribeButtonText,backgroundButtonColor:e.backgroundButtonColor,textButtonColor:e.textButtonColor,customBackgroundButtonColor:e.customBackgroundButtonColor,customTextButtonColor:e.customTextButtonColor}),(0,a.createBlock)("premium-content/login-button",{text:e.loginButtonText,backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,style:{color:{background:e.customBackgroundButtonColor,text:e.customTextButtonColor}}})]);return[e,[...t,n]]},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view"},(0,r.createElement)(o.InnerBlocks.Content,null))}},9109:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{},supports:{inserter:!1,html:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view"})}},43279:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(65736),i=n(9818),s=n(94333),l=n(2963);const __=o.__;t.Z=(0,s.compose)((0,i.withSelect)((e=>{const{getBlockParents:t,getSelectedBlockClientId:n}=e("core/block-editor"),r=t(n());return{parentClientId:r.length?r[r.length-1]:void 0}})))((function(e){let{parentClientId:t,isSelected:n}=e;const{selectBlock:o}=(0,i.useDispatch)("core/block-editor");return(0,r.useEffect)((()=>{n&&o(t)}),[o,n,t]),(0,r.createElement)(l.Z.Consumer,null,(e=>{let{selectedTab:t,stripeNudge:n}=e;return(0,r.createElement)("div",{hidden:"premium"===t.id,className:t.className},n,(0,r.createElement)(a.InnerBlocks,{templateLock:!1,templateInsertUpdatesSelection:!1,template:[["core/heading",{content:__("Subscribe to get access","jetpack"),level:3}],["core/paragraph",{content:__("Read more of this content when you subscribe today.","jetpack")}],["premium-content/buttons"]]}))}))}))},76883:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return d}});var r=n(43279),a=n(54222),o=n(93068),i=n(47322),s=n(94333),l=n(9818),c=n(65736),u=n(72629);const __=c.__,p="premium-content/logged-out-view",d={title:__("Logged Out View","jetpack"),description:__("The container for all content shown to site visitors who are not subscribers.","jetpack"),icon:i.Z,category:"grow",parent:["premium-content/container"],supports:{inserter:!1,html:!1},edit:r.Z,save:a.Z,deprecated:o.Z},m=(0,l.subscribe)((()=>{const e=(0,l.select)("core/rich-text").getFormatType("core/link");if(!e)return;m(),(0,u.unregisterFormatType)("core/link");const t=(0,s.compose)((0,l.withSelect)((e=>({selectedBlock:e("core/block-editor").getSelectedBlock()}))),(0,s.ifCondition)((e=>e.selectedBlock&&e.selectedBlock.name!==p)))(e.edit);(0,u.registerFormatType)("core/link",{...e,edit:t})}))},54222:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-logged-out-view entry-content"},(0,r.createElement)(a.InnerBlocks.Content,null))}},43110:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={text:{type:"string",source:"html",selector:"a",default:__("Log in","jetpack")},borderRadius:{type:"number"},backgroundColor:{type:"string"},textColor:{type:"string"},gradient:{type:"string"},style:{type:"object"}}},19398:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(9818),s=n(52175);const __=o.__,l="web"===r.Platform.OS;const c=e=>{if(!(0,a.isObject)(e))return e;const t=(0,a.pickBy)((0,a.mapValues)(e,c),a.identity);return(0,a.isEqual)(t,{})?void 0:t};function u(e){let{settings:t,clientId:n,enableContrastChecking:a=!0}=e;const{getComputedStyle:o,Node:i}=window,[c,u]=(0,r.useState)(),[p,d]=(0,r.useState)(),m=l?__("Color settings","jetpack"):__("Color Settings","jetpack",0);return(0,r.useEffect)((()=>{if(l&&!a)return;const e=function(e){return document.getElementById("block-"+e)}(n);if(!e)return;d(o(e).color);let t=e,r=o(t).backgroundColor;for(;"rgba(0, 0, 0, 0)"===r&&t.parentNode&&t.parentNode.nodeType===i.ELEMENT_NODE;)t=t.parentNode,r=o(t).backgroundColor;u(r)})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(s.__experimentalPanelColorGradientSettings,{title:m,initialOpen:!1,settings:t},l&&a&&(0,r.createElement)(s.ContrastChecker,{backgroundColor:c,textColor:p})))}t.Z=function(e){const{attributes:t}=e,{colors:n,gradients:a}=(0,i.useSelect)((e=>e("core/block-editor").getSettings()),[]),o=(0,r.useRef)(t);(0,r.useEffect)((()=>{o.current=t}),[t]);const{style:l,textColor:p,backgroundColor:d,gradient:m}=t;let h;h=m?(0,s.getGradientValueBySlug)(a,m):l?.color?.gradient;const f=t=>r=>{const a=(0,s.getColorObjectByColorValue)(n,r),i=t+"Color",l={...o.current.style,color:{...o.current?.style?.color,[t]:a?.slug?void 0:r}},u=a?.slug?a.slug:void 0,p={style:c(l),[i]:u};e.setAttributes(p),o.current={...o.current,...p}};return(0,r.createElement)(u,{enableContrastChecking:!m&&!l?.color?.gradient,clientId:e.clientId,settings:[{label:__("Text Color","jetpack"),onColorChange:f("text"),colorValue:(0,s.getColorObjectByAttributeValues)(n,p,l?.color?.text).color},{label:__("Background Color","jetpack"),onColorChange:f("background"),colorValue:(0,s.getColorObjectByAttributeValues)(n,d,l?.color?.background).color,gradientValue:h,onGradientChange:t=>{const n=(0,s.getGradientSlugByValue)(a,t);let r;if(n){const e={...o.current?.style,color:{...o.current?.style?.color,gradient:void 0}};r={style:c(e),gradient:n}}else{const e={...o.current?.style,color:{...o.current?.style?.color,gradient:t}};r={style:c(e),gradient:void 0}}e.setAttributes(r),o.current={...o.current,...r}}}]})}},97209:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(89105),a=n.n(r),o=n(52175);function i(e){const{backgroundColor:t,textColor:n,gradient:r,style:i}=e,s=(0,o.getColorClassName)("background-color",t),l=(0,o.__experimentalGetGradientClass)(r),c=(0,o.getColorClassName)("color",n),u=a()(c,l,{[s]:!i?.color?.gradient&&!!s,"has-text-color":n||i?.color?.text,"has-background":t||i?.color?.background||r||i?.color?.gradient});return{className:u||void 0,style:i?.color?.background||i?.color?.text||i?.color?.gradient?{background:i?.color?.gradient?i.color.gradient:void 0,backgroundColor:i?.color?.background?i.color.background:void 0,color:i?.color?.text?i.color.text:void 0}:{}}}},48186:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(65736),l=n(97209);const __=s.__;t.Z={attributes:{text:{type:"string",source:"html",selector:"a",default:__("Log in","jetpack")},borderRadius:{type:"number"},backgroundColor:{type:"string"},textColor:{type:"string"},gradient:{type:"string"},style:{type:"object"}},supports:{align:!0,alignWide:!1,html:!1,lightBlockWrapper:!0,inserter:!1},save:e=>{let{attributes:t}=e;const{borderRadius:n,text:a}=t,s=(0,l.Z)(t),c=o()("wp-block-button__link",s.className,{"no-border-radius":0===n}),u={borderRadius:n?n+"px":void 0,...s.style};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:c,style:u,value:a}))}}},87909:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(19398),u=n(97209);const __=i.__;function p(e){let{borderRadius:t="",setAttributes:n}=e;const a=(0,r.useCallback)((e=>{n({borderRadius:e})}),[n]);return(0,r.createElement)(s.PanelBody,{title:__("Border settings","jetpack")},(0,r.createElement)(s.RangeControl,{value:t,label:__("Border radius","jetpack"),min:0,max:50,initialPosition:5,allowReset:!0,onChange:a}))}t.Z=function(e){const{attributes:t,setAttributes:n,className:a}=e,{borderRadius:i,text:s}=t,d=(0,u.Z)(t),m=(0,l.useBlockProps)({className:"wp-block-button"});return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",m,(0,r.createElement)(l.RichText,{placeholder:__("Add text…","jetpack"),value:s,onChange:e=>n({text:e}),withoutInteractiveFormatting:!0,className:o()(a,"wp-block-button__link",d.className,{"no-border-radius":0===i}),style:{borderRadius:i?i+"px":void 0,...d.style}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.Z,e),(0,r.createElement)(p,{borderRadius:i,setAttributes:n})))}},37436:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(15284),a=n(65736),o=n(87909),i=n(54662),s=n(43110),l=n(48186);const __=a.__,c="premium-content/login-button",u={title:__("Premium Content login button","jetpack"),description:__("Prompt subscriber visitors to log in with a button-style link (only visible for logged out users).","jetpack"),category:"grow",attributes:s.Z,icon:r.Z,keywords:[__("link","jetpack")],supports:{align:!0,alignWide:!1,html:!1,lightBlockWrapper:!0,inserter:!1},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],edit:o.Z,save:i.Z,deprecated:[l.Z]}},54662:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(97209);function l(e){let{attributes:t}=e;const{borderRadius:n,text:a,align:l}=t,c=(0,s.Z)(t),u=o()("wp-block-button","wp-block-premium-content-login-button",{alignleft:"left"===l},{aligncenter:"center"===l},{alignright:"right"===l}),p=o()("wp-block-button__link",c.className,{"no-border-radius":0===n}),d={borderRadius:n?n+"px":void 0,...c.style},m=i.useBlockProps.save({className:u});return(0,r.createElement)("div",m,(0,r.createElement)(i.RichText.Content,{tagName:"a",className:p,style:d,value:a}))}},77940:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-container"},(0,r.createElement)(a.InnerBlocks.Content,null))}},37915:function(e,t,n){"use strict";var r=n(54682);t.Z=[r.Z]},54682:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{},supports:{inserter:!1,html:!1},save:()=>(0,r.createElement)("div",{className:"wp-block-premium-content-subscriber-view"})}},6627:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(65736),i=n(9818),s=n(94333),l=n(2963);const __=o.__;t.Z=(0,s.compose)([(0,i.withSelect)(((e,t)=>{const{getBlockParents:n,getSelectedBlockClientId:r}=e("core/block-editor"),a=n(r());return{parentClientId:a.length?a[a.length-1]:void 0,hasInnerBlocks:!!e("core/block-editor").getBlocksByClientId(t.clientId)[0].innerBlocks.length}}))])((function(e){let{hasInnerBlocks:t,parentClientId:n,isSelected:o}=e;const{selectBlock:s}=(0,i.useDispatch)("core/block-editor");return(0,r.useEffect)((()=>{o&&s(n)}),[s,o,n]),(0,r.createElement)(l.Z.Consumer,null,(e=>{let{selectedTab:n,stripeNudge:o}=e;return(0,r.createElement)("div",{hidden:"wall"===n.id,className:n.className},o,(0,r.createElement)(a.InnerBlocks,{renderAppender:!t&&a.InnerBlocks.ButtonBlockAppender,templateLock:!1,templateInsertUpdatesSelection:!1,template:[["core/heading",{content:__("Subscriber Content","jetpack"),level:3}],["core/paragraph",{content:__("Add content here that will only be visible to your subscribers.","jetpack")}]]}))}))}))},24720:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(6627),a=n(2718),o=n(37915),i=n(47322),s=n(65736);const __=s.__,l="premium-content/subscriber-view",c={title:__("Subscriber View","jetpack"),description:__("The container for all content shown to subscribers.","jetpack"),icon:i.Z,category:"grow",attributes:{},edit:r.Z,save:a.Z,parent:["premium-content/container"],supports:{inserter:!1,html:!1},deprecated:o.Z}},2718:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",{className:"wp-block-premium-content-subscriber-view entry-content"},(0,r.createElement)(a.InnerBlocks.Content,null))}},96440:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(55609),l=n(39630);const __=o.__,c=e=>{let{id:t,setRating:n,children:a}=e;return(0,r.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(o=t,e=>{let{keyCode:t}=e;return t===l.ENTER?n(o):null}),onClick:(e=>()=>n(e))(t)},a);var o};t.Z=e=>function(t){let{className:n,setAttributes:o,attributes:{align:l,color:u,rating:p,maxRating:d}}=t;const m=e=>{e===p?Math.ceil(p)===p&&(e-=.5):.5===p&&1===e&&(e=0),o({rating:e})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockControls,null,(0,r.createElement)(i.AlignmentToolbar,{value:l,onChange:e=>o({align:e})})),(0,r.createElement)("div",{className:n,style:{textAlign:l}},(0,a.range)(1,d+1).map((t=>(0,r.createElement)(c,{key:t,id:t,setRating:m},(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t-.5?null:"is-rating-unfilled",color:u})),(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t?null:"is-rating-unfilled",color:u})))))),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(s.RangeControl,{label:__("Highest rating","jetpack"),value:d,onChange:e=>o({maxRating:e}),min:2,max:10}),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:u,onChange:e=>o({color:e}),label:__("Color","jetpack")}]}))))}},9615:function(e,t,n){"use strict";n.d(t,{d:function(){return o},r:function(){return i}});var r=n(69307),a=n(55609);const o=()=>(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"})),i=e=>{const t=(e=>e&&e.color?e.color:"currentColor")(e),n=(e=>e&&e.className?e.className:"")(e);return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},(0,r.createElement)(a.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))}},84807:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(65736),a=n(96440),o=n(2027),i=n(9615),s=n(57535);const __=r.__,_x=r._x,l="rating-star",c={title:__("Star Rating","jetpack"),description:__("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:{src:i.d,foreground:(0,s.m)()},keywords:[_x("star","block search term","jetpack"),_x("rating","block search term","jetpack"),_x("review","block search term","jetpack")],category:"widgets",example:{},styles:[{name:"filled",label:_x("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:_x("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:(0,a.Z)(i.r),save:(0,o.Z)("★")}},2027:function(e,t,n){"use strict";var r=n(69307),a=n(92819);t.Z=e=>function(t){let{className:n,attributes:{align:o,rating:i,color:s}}=t;return(0,r.createElement)("figure",{className:n,style:{textAlign:o}},(0,a.range)(1,i+1).map((t=>(0,r.createElement)("span",{key:t,style:{color:s}},e))))}},79642:function(e,t,n){"use strict";n.d(t,{G:function(){return u},J:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(51591),s=n(48721),l=n(4235),c=n(37930);const __=a.__;function u(e){let{attributes:{planId:t},products:n,setMembershipAmount:a}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Payment plan","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Payment plan","jetpack"),value:t,onChange:e=>a(e),options:n.map((e=>({label:(0,s.C)(e),value:e.id,key:e.id})))})),(0,r.createElement)(o.PanelBody,{title:__("Management","jetpack")},(0,r.createElement)(o.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,l.Z)()}`},__("See your earnings, subscriber list, and payment plans.","jetpack"))))}function p(e){let{connected:t,connectURL:n,hasUpgradeNudge:a,shouldUpgrade:s}=e;const{autosaveAndRedirect:l}=(0,c.Z)(n);return(0,r.createElement)(r.Fragment,null,!a&&!s&&!t&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:i.Pw,onClick:l,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))))}},2235:function(e,t,n){"use strict";var r=n(92819),a=n(4981);const o=["submitButtonText","submitButtonClasses","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},submitButtonClasses:{type:"string"},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},migrate:e=>{const t=(0,r.omit)(e,o),n={text:(i=e).submitButtonText,textColor:i.textButtonColor,customTextColor:i.customTextButtonColor,backgroundColor:i.backgroundButtonColor,customBackgroundColor:i.customBackgroundButtonColor};var i;return[t,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"recurring-payments-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,o),Boolean),save:()=>null}},39035:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(86989),c=n.n(l),u=n(65736),p=n(78850),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(92694),b=n(21409),v=n(17882),k=n(2368),y=n(82163),E=n(79642),w=n(48721);const __=u.__;class _ extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e={path:"/wpcom/v2/memberships/status",method:"GET"};c()(e).then((e=>{if(e.errors&&Object.values(e.errors)&&Object.values(e.errors)[0][0])return this.setState({connected:null,connectURL:2}),void this.onError(Object.values(e.errors)[0][0]);const{connect_url:t,products:n,should_upgrade_to_access_memberships:r,upgrade_url:a}=e,o=e.connected_account_id?1:2;this.setState({connected:o,connectURL:t,shouldUpgrade:r,upgradeURL:a,products:(0,y.ME)(n)})}),(e=>{this.setState({connected:2,connectURL:null}),this.onError(e.message)}))})),a()(this,"handleCurrencyChange",(e=>{let t=this.state.editedProductPrice;(0,v.vs)(e,t)||(t=(0,w.w)((0,v.hj)(e),e)),this.setState({editedProductCurrency:e,editedProductPrice:t,editedProductPriceValid:!0})})),a()(this,"handleRenewIntervalChange",(e=>this.setState({editedProductRenewInterval:e}))),a()(this,"handlePriceChange",(e=>{const t=parseFloat(e),n=(0,v.vs)(this.state.editedProductCurrency,t);this.setState({editedProductPrice:t,editedProductPriceValid:n})})),a()(this,"handleTitleChange",(e=>this.setState({editedProductTitle:e,editedProductTitleValid:e.length>0}))),a()(this,"saveProduct",(()=>{if(!this.state.editedProductTitle||0===this.state.editedProductTitle.length)return void this.setState({editedProductTitleValid:!1});if(!this.state.editedProductPrice||!(0,v.vs)(this.state.editedProductCurrency,this.state.editedProductPrice))return void this.setState({editedProductPriceValid:!1});this.setState({addingMembershipAmount:2});const e={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:this.state.editedProductCurrency,price:this.state.editedProductPrice,title:this.state.editedProductTitle,interval:this.state.editedProductRenewInterval}};c()(e).then((e=>{this.setState({addingMembershipAmount:0,products:this.state.products.concat([{id:e.id,title:e.title,interval:e.interval,price:e.price,currency:e.currency}])}),this.setMembershipAmount(e.id)}),(e=>{this.setState({addingMembershipAmount:1}),this.onError(e.message)}))})),a()(this,"renderAddMembershipAmount",(e=>{if(0===this.state.addingMembershipAmount&&!e)return(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,onClick:()=>this.setState({addingMembershipAmount:1})},__("Add a payment plan","jetpack"));if(2===this.state.addingMembershipAmount)return;const t=(0,p.ZP)((0,v.hj)(this.state.editedProductCurrency),this.state.editedProductCurrency),n=(0,u.sprintf)(
+/* translators: placeholder is a price. */
+__("Minimum allowed price is %s.","jetpack"),t);return(0,o.createElement)("div",null,(0,o.createElement)("div",{className:"membership-button__price-container"},(0,o.createElement)(h.SelectControl,{className:"membership-button__field membership-button__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:v.Xy,value:this.state.editedProductCurrency}),(0,o.createElement)("div",{className:"membership-membership-button__field membership-button__field-price"},(0,o.createElement)(h.TextControl,{label:__("Price","jetpack"),className:s()({"membership-button__field-error":!this.state.editedProductPriceValid}),onChange:this.handlePriceChange,placeholder:t,required:!0,min:"0",step:"1",type:"number",value:this.state.editedProductPrice||""}),(0,o.createElement)("p",null,n))),(0,o.createElement)(h.TextControl,{className:s()({"membership-button__field":!0,"membership-button__field-error":!this.state.editedProductTitleValid}),label:__("Describe your subscription in a few words","jetpack"),onChange:this.handleTitleChange,placeholder:__("Subscription description","jetpack"),value:this.state.editedProductTitle}),(0,o.createElement)(h.SelectControl,{label:__("Renew interval","jetpack"),onChange:this.handleRenewIntervalChange,options:[{label:__("Monthly","jetpack"),value:"1 month"},{label:__("Yearly","jetpack"),value:"1 year"},{label:__("One-Time Payment","jetpack"),value:"one-time"}],value:this.state.editedProductRenewInterval}),(0,o.createElement)("div",null,(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:this.saveProduct},__("Add this payment plan","jetpack")),(0,o.createElement)(h.Button,{isLarge:!0,className:"membership-button__field-button",onClick:()=>this.setState({addingMembershipAmount:0})},__("Cancel","jetpack"))))})),a()(this,"getFormattedPriceByProductId",(e=>{const t=this.state.products.filter((t=>parseInt(t.id)===parseInt(e))).pop();return(0,p.ZP)(parseFloat(t.price),t.currency)})),a()(this,"setMembershipAmount",(e=>{const{innerButtons:t,updateBlockAttributes:n,setAttributes:r}=this.props,a=this.props.attributes.planId,o=(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(e)),i=a?(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(a)):void 0;return t&&t.length&&t[0].innerBlocks.forEach((e=>{const t=e.attributes.text,r=t===i?o:t;n(e.clientId,{text:r})})),r({planId:parseInt(e)})})),a()(this,"renderMembershipAmounts",(()=>(0,o.createElement)("div",null,this.state.products.map((e=>(0,o.createElement)(h.Button,{className:"membership-button__field-button",isLarge:!0,isSecondary:!0,key:e.id,onClick:()=>this.setMembershipAmount(e.id)},(0,w.C)(e))))))),a()(this,"renderDisclaimer",(()=>(0,o.createElement)("div",{className:"membership-button__disclaimer"},(0,o.createElement)(h.ExternalLink,{href:"https://wordpress.com/support/wordpress-editor/blocks/payments/#related-fees"},__("Read more about Payments and related fees.","jetpack"))))),a()(this,"renderUpgradeNudges",(()=>{const{notices:e}=this.props;return(0,o.createElement)(o.Fragment,null,!this.hasUpgradeNudge&&this.state.shouldUpgrade&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e,instructions:__("You'll need to upgrade your plan to use the Payments block.","jetpack")},(0,o.createElement)(h.Button,{isSecondary:!0,isLarge:!0,href:this.state.upgradeURL,target:"_blank"},__("Upgrade your plan","jetpack")),this.renderDisclaimer())))})),a()(this,"renderPlanNotices",(()=>{const{notices:e}=this.props,{connected:t,products:n}=this.state;return(0,o.createElement)(o.Fragment,null,(0===t||2===this.state.addingMembershipAmount)&&!this.props.attributes.planId&&(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),notices:e},(0,o.createElement)(h.Spinner,null)),!this.state.shouldUpgrade&&!this.props.attributes.planId&&1===t&&0===n.length&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, first add at least one payment plan.","jetpack")),this.renderAddMembershipAmount(!0),this.renderDisclaimer()))),!this.state.shouldUpgrade&&!this.props.attributes.planId&&2!==this.state.addingMembershipAmount&&1===t&&n.length>0&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, select a previously created payment plan.","jetpack")),this.renderMembershipAmounts(),(0,o.createElement)("p",null,__("Or a new one.","jetpack")),this.renderAddMembershipAmount(!1),this.renderDisclaimer()))))})),a()(this,"render",(()=>{const{connected:e,connectURL:t,products:n}=this.state,r=(0,g.applyFilters)("jetpack.RecurringPayments.showControls",n.length>0,this.props.clientId),a=(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{attributes:this.props.attributes,products:n,setMembershipAmount:this.setMembershipAmount})),i=(0,o.createElement)(f.BlockControls,null,(0,o.createElement)(E.J,{connected:2!==e,connectURL:(0,k.Z)(this.props.postId,t),hasUpgradeNudge:this.hasUpgradeNudge,shouldUpgrade:this.state.shouldUpgrade}));return(0,o.createElement)(o.Fragment,null,this.props.noticeUI,!this.isPremiumContentChild&&this.renderUpgradeNudges(),!this.isPremiumContentChild&&this.renderPlanNotices(),r&&a,i,(0,o.createElement)(f.InnerBlocks,{template:[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id"}]],templateLock:"all",__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))})),this.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],editedProductCurrency:"USD",editedProductPrice:(0,w.w)((0,v.hj)("USD"),"USD"),editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},this.timeout=null;const e=(0,b.Z)("recurring-payments");this.hasUpgradeNudge=!e.available&&"missing_plan"===e.unavailableReason,this.isPremiumContentChild=this.props.context.isPremiumContentChild||!1}}t.Z=(0,d.compose)([(0,m.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()}))),(0,m.withDispatch)((e=>{const{updateBlockAttributes:t}=e("core/editor");return{updateBlockAttributes:t,autosaveAndRedirect:async(t,n)=>{t.preventDefault(),await e("core/editor").savePost(),window.top.location.href=n}}})),h.withNotices])(_)},82163:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m},ME:function(){return h}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(57535),l=n(2235),c=n(39035),u=n(17882);const __=i.__,_x=i._x,p="recurring-payments",d=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},(0,r.createElement)(a.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"}))),m={title:__("Payments","jetpack"),icon:{src:d,foreground:(0,s.m)()},description:__("Button allowing you to sell products and subscriptions.","jetpack"),category:"earn",keywords:[_x("sell","block search term","jetpack"),_x("subscriptions","block search term","jetpack"),_x("product","block search term","jetpack"),"stripe",_x("memberships","block search term","jetpack")],usesContext:["isPremiumContentChild"],attributes:{planId:{type:"integer"},align:{type:"string"}},edit:c.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},supports:{html:!1,align:!0},deprecated:[l.Z]};function h(e){return e.filter((e=>(0,u.vs)(e.currency,e.price)))}},48721:function(e,t,n){"use strict";n.d(t,{w:function(){return o},C:function(){return i}});var r=n(65736),a=n(78850);const __=r.__,o=(e,t)=>(0,a.ZP)(e,t,{decimal:".",symbol:""}),i=e=>{const t=(0,a.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,r.sprintf)(
+/* translators: %1$s is a price, %2$s is a period (1 year for example) */
+__("%1$s / %2$s","jetpack"),t,e.interval)}},14823:function(e,t,n){"use strict";n.d(t,{Hj:function(){return i},AP:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{attributes:t,setAttributes:n}=e;const{displayContext:a,displayDate:i,displayThumbnails:s,postsToShow:l}=t;return(0,r.createElement)(o.PanelBody,{title:__("Related Posts Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Display thumbnails","jetpack"),checked:s,onChange:e=>n({displayThumbnails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display date","jetpack"),checked:i,onChange:e=>n({displayDate:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display context (category or tag)","jetpack"),checked:a,onChange:e=>n({displayContext:e})}),(0,r.createElement)(o.RangeControl,{label:__("Number of posts","jetpack"),value:l,onChange:e=>n({postsToShow:Math.min(e,6)}),min:1,max:6}))}function s(e){let{attributes:t,setAttributes:n}=e;const{postLayout:a}=t,i=[{icon:"grid-view",title:__("Grid View","jetpack"),onClick:()=>n({postLayout:"grid"}),isActive:"grid"===a},{icon:"list-view",title:__("List View","jetpack"),onClick:()=>n({postLayout:"list"}),isActive:"list"===a}];return(0,r.createElement)(o.ToolbarGroup,{controls:i})}},31759:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(92819),l=n(9818),c=n(94333),u=n(14823);const __=a.__;function p(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},e.isInSiteEditor?__("Preview unavailable in site editor.","jetpack"):__("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&(0,r.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":__("Placeholder image","jetpack")},(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},(0,r.createElement)("title",null,__("Grey square","jetpack")),(0,r.createElement)(i.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)("title",null,__("Icon for image","jetpack")),(0,r.createElement)(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},__("August 3, 2018","jetpack")),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},__("In “Uncategorized”","jetpack")))}function d(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&(0,r.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},(0,r.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function m(e){const t="jp-related-posts-i2__row";let n=0;const a=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:n=2;break;default:n=3}return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(0,n).length},e.posts.slice(0,n)),a&&(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(n).length},e.posts.slice(n)))}class h extends r.Component{render(){const{attributes:e,className:t,posts:n,setAttributes:a,instanceId:i,isInSiteEditor:s}=this.props,{displayContext:l,displayDate:c,displayThumbnails:h,postLayout:f,postsToShow:g}=e,b="jp-relatedposts-i2",v=[];for(let e=0;e<g;e++)n[e]?v.push((0,r.createElement)(d,{id:`related-posts-${i}-post-${e}`,key:b+"-"+e,post:n[e],displayThumbnails:h,displayDate:c,displayContext:l})):v.push((0,r.createElement)(p,{id:`related-posts-${i}-post-${e}`,key:"related-post-placeholder-"+e,displayThumbnails:h,displayDate:c,displayContext:l,isInSiteEditor:s}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(u.Hj,{attributes:e,setAttributes:a})),(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(u.AP,{attributes:e,setAttributes:a})),(0,r.createElement)("div",{className:t,id:`related-posts-${i}`},(0,r.createElement)("div",{className:b,"data-layout":f},(0,r.createElement)(m,{posts:v}))))}}t.ZP=(0,c.compose)(c.withInstanceId,(0,l.withSelect)((e=>{const{getCurrentPost:t}=e("core/editor"),n=t();return{posts:(0,s.get)(n,"jetpack-related-posts",[]),isInSiteEditor:(0,s.isEmpty)(n)}})))(h)},32051:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(31759),s=n(57535);const __=a.__,_x=a._x,l="related-posts",c=(0,r.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},(0,r.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),u={title:__("Related Posts","jetpack"),icon:{src:c,foreground:(0,s.m)()},category:"embed",keywords:[_x("similar content","block search term","jetpack"),_x("linked","block search term","jetpack"),_x("connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:i.ZP,save:()=>null,example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}}},35978:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(9818),u=n(89105),p=n.n(u),d=n(46314),m=n(57368);const __=i.__,_n=i._n,h=[{value:d.FV,label:__("Show after threshold","jetpack")},{value:d.Am,label:__("Show before threshold","jetpack")}];class f extends o.Component{constructor(){super(...arguments),a()(this,"state",{isThresholdValid:!0}),a()(this,"setCriteria",(e=>this.props.setAttributes({criteria:e}))),a()(this,"setThreshold",(e=>{if(/^\d+$/.test(e)&&+e>0)return this.props.setAttributes({threshold:+e}),void this.setState({isThresholdValid:!0});this.setState({isThresholdValid:!1})}))}getNoticeLabel(){return this.props.attributes.criteria===d.FV?1===this.props.attributes.threshold?__("This block will only appear to people who have visited this page more than once.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who have visited this page more than %d time.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):1===this.props.attributes.threshold?__("This block will only appear to people who are visiting this page for the first time.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who are visiting this page for %d time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}render(){return(0,o.createElement)("div",{className:p()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},(0,o.createElement)(s.Placeholder,{icon:m.qv,label:__("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},(0,o.createElement)(s.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":__("Please enter a valid number.","jetpack"),label:__("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),(0,o.createElement)(s.RadioControl,{label:__("Visibility","jetpack"),selected:this.props.attributes.criteria,options:h,onChange:this.setCriteria})),(0,o.createElement)(s.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),(0,o.createElement)(l.InnerBlocks,null))}}t.Z=(0,c.withSelect)(((e,t)=>{const{isBlockSelected:n,hasSelectedInnerBlock:r}=e("core/block-editor");return{isSelected:n(t.clientId)||r(t.clientId)}}))(f)},42860:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks.Content,null))}},46314:function(e,t,n){"use strict";n.d(t,{FV:function(){return r},Am:function(){return a},Kv:function(){return o}});const r="after-visits",a="before-visits",o=3},57368:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(41632),s=n(35978),l=n(42860),c=n(46314),u=n(57535);const __=a.__,_x=a._x,p="repeat-visitor",d=(0,i.Z)((0,r.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"})),m={attributes:{criteria:{type:"string",default:c.FV},threshold:{type:"number",default:c.Kv}},category:"widgets",description:__("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:{src:d,foreground:(0,u.m)()},keywords:[_x("return","block search term","jetpack"),_x("visitors","block search term","jetpack"),_x("visibility","block search term","jetpack")],supports:{html:!1},title:__("Repeat Visitor","jetpack"),edit:s.Z,save:l.Z,example:{attributes:{criteria:c.FV,threshold:c.Kv},innerBlocks:[{name:"core/paragraph",attributes:{content:__("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}}},92826:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={revueUsername:{type:"string"},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0}}},26246:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(4981),i=n(65736);const _x=i._x,__=i.__,s=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius","gradient","customGradient"];t.Z={attributes:{revueUsername:{type:"string"},text:{type:"string",default:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"},gradient:{type:"string"},customGradient:{type:"string"}},migrate:e=>{const t=(0,a.omit)(e,s),n=(0,a.pick)(e,s);return[t,[(0,o.createBlock)("jetpack/button",{element:"button",text:n.text||"Subscribe",...n})]]},isEligible:(e,t)=>(0,a.isEmpty)(t)||(0,a.some)((0,a.pick)(e,s),Boolean),save:e=>{let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)("a",{href:n},n))}}},55380:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(92819),o=n(52175),i=n(55609),s=n(65736),l=n(8223),c=n(92826),u=n(80500),p=n(93641),d=n(14087),m=n(58014);const __=s.__;function h(e){let{attributes:t,className:n,setAttributes:s}=e;(0,r.useEffect)((()=>{const e=(0,d.S)(c.Z,t);(0,a.isEqual)(e,t)||s(e)}),[t,s]);const{revueUsername:h,emailLabel:f,emailPlaceholder:g,firstNameLabel:b,firstNamePlaceholder:v,firstNameShow:k,lastNameLabel:y,lastNamePlaceholder:E,lastNameShow:w}=t,[_,C]=(0,r.useState)("");(0,r.useEffect)((()=>{!_&&h&&C(h)}),[]);const j=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/revue-block/":"https://jetpack.com/support/jetpack-blocks/revue-block/";return(0,r.createElement)("div",{className:n},!h&&(0,r.createElement)(i.Placeholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:p.Z}),instructions:__("Enter your Revue username.","jetpack"),label:__("Revue","jetpack")},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),s({revueUsername:_.trim()})}},(0,r.createElement)("input",{className:"components-placeholder__input",onChange:e=>C(e.target.value.trim()),placeholder:__("Enter your Revue username here…","jetpack"),type:"text",value:_}),(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{disabled:!_,isDefault:!0,isLarge:!0,isSecondary:!0,type:"submit"},__("Add Form","jetpack")))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(i.ExternalLink,{href:j},__("Need help finding your Revue username?","jetpack")))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Show first name field.","jetpack"),checked:k,onChange:()=>s({firstNameShow:!k})}),(0,r.createElement)(i.ToggleControl,{label:__("Show last name field.","jetpack"),checked:w,onChange:()=>s({lastNameShow:!w})}),(0,r.createElement)(i.TextControl,{label:__("Revue Username","jetpack"),onChange:e=>{C(e.trim()),s({revueUsername:e.trim()})},value:h}))),(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:f,labelFieldName:"emailLabel",required:!0,setAttributes:s}),onChange:e=>s({emailPlaceholder:e}),placeholder:g,value:g}),k&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:b,labelFieldName:"firstNameLabel",setAttributes:s}),onChange:e=>s({firstNamePlaceholder:e}),placeholder:v,value:v}),w&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:y,labelFieldName:"lastNameLabel",setAttributes:s}),onChange:e=>s({lastNamePlaceholder:e}),placeholder:E,value:E}),(0,r.createElement)(o.InnerBlocks,{template:[[l.Ss.name,l.Ss.attributes]],templateLock:"all"})))}},93641:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,{fillRule:"nonzero"},(0,r.createElement)(a.Path,{d:"M16.8452322,23.2301186 C13.9471277,22.2565366 12.0226052,20.2188069 10.6188359,16.5961763 C10.2565728,15.6225943 9.87166831,14.4905223 9.80374399,14.1056178 C9.66789534,13.4037331 9.6452539,13.3810917 8.96601067,13.6075061 C7.8792215,13.9697691 7.76601429,14.1282592 7.35846835,15.758443 C6.724508,18.2490015 6.45281071,18.7244718 5.56979451,18.8829619 C5.09432424,18.9735276 4.5735711,18.9282447 4.27923236,18.7697547 C3.84904498,18.5433402 3.8037621,18.3848502 3.93961075,17.501834 C4.00753507,16.9584394 4.41508101,15.3056142 4.82262695,13.8339205 C5.8414918,10.2792143 6.11318909,8.98865211 6.29432062,7.1094125 C6.43016927,5.63771883 6.47545215,5.50187018 7.08677106,5.20753145 C7.92450438,4.79998551 8.80752058,5.09432424 9.19242508,5.88677468 C9.44148093,6.38488639 9.39619805,6.90563953 8.96601067,8.98865211 C8.67167193,10.3924215 8.51318185,11.5244935 8.62638905,11.5244935 C9.12450076,11.5244935 11.2754377,10.2565728 12.0452467,9.50940525 C13.8339205,7.83393861 14.2641079,5.77356748 13.2905259,3.82640354 C12.5886412,2.4226342 11.6150593,1.94716393 9.78110255,2.08301258 C6.97356385,2.28678555 4.43772245,4.25659092 3.01131166,7.35846835 C2.21886123,9.05657643 2.19621978,9.07921787 1.49433511,8.94336923 C-1.74339096,8.28676744 0.63396035,3.39621616 5.29809721,1.19999638 C8.39997464,-0.294338734 11.5018521,-0.362263057 14.0829764,0.950940525 C17.0716466,2.51319996 18.0225871,5.93205756 16.2791961,8.96601067 C15.5999529,10.1433656 14.2641079,11.3886449 12.9509043,12.0678881 C12.5433584,12.2716611 12.2037367,12.5207169 12.2037367,12.6339241 C12.2037367,12.9509043 13.2678845,15.9395745 13.6301475,16.6641006 C14.3093908,17.9773042 16.2339133,19.8112609 17.4565511,20.377297 C18.8829619,21.0112573 21.4640861,21.0791816 23.0263456,20.5131456 L23.9772861,20.1508826 L23.9772861,20.7169186 C23.9772861,21.5320105 23.3433258,22.3471023 22.3018195,22.8904969 C21.147106,23.4791744 18.1584357,23.6603059 16.8452322,23.2301186 Z"})))},8223:function(e,t,n){"use strict";n.d(t,{Ss:function(){return u},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(92826),o=n(26246),i=n(55380),s=n(93641),l=n(57535),c=n(12628);const __=r.__,_x=r._x,u={name:"jetpack/button",attributes:{element:"button",text:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")}},p="revue",d={title:__("Revue","jetpack"),description:__("Add a subscription form for your Revue newsletter.","jetpack"),icon:{src:s.Z,foreground:(0,l.m)()},category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack"),_x("mailing list","block search term","jetpack")],supports:{html:!1},attributes:a.Z,edit:i.Z,save:c.Z,example:{attributes:{revueUsername:"example"},innerBlocks:[u]},deprecated:[o.Z]}},12628:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null),(0,r.createElement)("a",{className:"wp-block-jetpack-revue__fallback",href:n},n))}},37161:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks,{template:[["jetpack/whatsapp-button",{}]],allowedBlocks:["jetpack/whatsapp-button"]}))}},93636:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(37161),l=n(1720),c=n(41632),u=n(57535);const __=a.__,_x=a._x,p="send-a-message",d={title:__("Send A Message","jetpack"),description:__("Let your visitors send you messages with the tap of a button.","jetpack"),icon:{src:(0,c.Z)((0,r.createElement)(i.Path,{d:"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"})),foreground:(0,u.m)()},category:"grow",keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1},attributes:{},edit:s.Z,save:e=>(0,r.createElement)("div",{className:e.className},(0,r.createElement)(o.InnerBlocks.Content,null)),variations:l.Z,example:{}}},64566:function(e,t,n){"use strict";n.d(t,{n:function(){return r}});const r=[{code:"US",label:"🇺🇸 +1",value:"1US"},{code:"CA",label:"🇨🇦 +1",value:"1CA"},{code:"BS",label:"🇧🇸 +1242",value:"1242BS"},{code:"BB",label:"🇧🇧 +1246",value:"1246BB"},{code:"AI",label:"🇦🇮 +1264",value:"1264AI"},{code:"AG",label:"🇦🇬 +1268",value:"1268AG"},{code:"VG",label:"🇻🇬 +1284",value:"1284VG"},{code:"VI",label:"🇻🇮 +1340",value:"1340VI"},{code:"BM",label:"🇧🇲 +1441",value:"1441BM"},{code:"GD",label:"🇬🇩 +1473",value:"1473GD"},{code:"TC",label:"🇹🇨 +1649",value:"1649TC"},{code:"MS",label:"🇲🇸 +1664",value:"1664MS"},{code:"MP",label:"🇲🇵 +1670",value:"1670MP"},{code:"GU",label:"🇬🇺 +1671",value:"1671GU"},{code:"AS",label:"🇦🇸 +1684",value:"1684AS"},{code:"LC",label:"🇱🇨 +1758",value:"1758LC"},{code:"DM",label:"🇩🇲 +1767",value:"1767DM"},{code:"VC",label:"🇻🇨 +1784",value:"1784VC"},{code:"DO",label:"🇩🇴 +1849",value:"1849DO"},{code:"TT",label:"🇹🇹 +1868",value:"1868TT"},{code:"KN",label:"🇰🇳 +1869",value:"1869KN"},{code:"JM",label:"🇯🇲 +1876",value:"1876JM"},{code:"PR",label:"🇵🇷 +1939",value:"1939PR"},{code:"EG",label:"🇪🇬 +20",value:"20EG"},{code:"MA",label:"🇲🇦 +212",value:"212MA"},{code:"DZ",label:"🇩🇿 +213",value:"213DZ"},{code:"TN",label:"🇹🇳 +216",value:"216TN"},{code:"LY",label:"🇱🇾 +218",value:"218LY"},{code:"GM",label:"🇬🇲 +220",value:"220GM"},{code:"SN",label:"🇸🇳 +221",value:"221SN"},{code:"MR",label:"🇲🇷 +222",value:"222MR"},{code:"ML",label:"🇲🇱 +223",value:"223ML"},{code:"GN",label:"🇬🇳 +224",value:"224GN"},{code:"CI",label:"🇨🇮 +225",value:"225CI"},{code:"BF",label:"🇧🇫 +226",value:"226BF"},{code:"NE",label:"🇳🇪 +227",value:"227NE"},{code:"TG",label:"🇹🇬 +228",value:"228TG"},{code:"BJ",label:"🇧🇯 +229",value:"229BJ"},{code:"MU",label:"🇲🇺 +230",value:"230MU"},{code:"LR",label:"🇱🇷 +231",value:"231LR"},{code:"SL",label:"🇸🇱 +232",value:"232SL"},{code:"GH",label:"🇬🇭 +233",value:"233GH"},{code:"NG",label:"🇳🇬 +234",value:"234NG"},{code:"TD",label:"🇹🇩 +235",value:"235TD"},{code:"CF",label:"🇨🇫 +236",value:"236CF"},{code:"CM",label:"🇨🇲 +237",value:"237CM"},{code:"CV",label:"🇨🇻 +238",value:"238CV"},{code:"ST",label:"🇸🇹 +239",value:"239ST"},{code:"GQ",label:"🇬🇶 +240",value:"240GQ"},{code:"GA",label:"🇬🇦 +241",value:"241GA"},{code:"CG",label:"🇨🇬 +242",value:"242CG"},{code:"CD",label:"🇨🇩 +243",value:"243CD"},{code:"AO",label:"🇦🇴 +244",value:"244AO"},{code:"GW",label:"🇬🇼 +245",value:"245GW"},{code:"IO",label:"🇮🇴 +246",value:"246IO"},{code:"SC",label:"🇸🇨 +248",value:"248SC"},{code:"SD",label:"🇸🇩 +249",value:"249SD"},{code:"RW",label:"🇷🇼 +250",value:"250RW"},{code:"ET",label:"🇪🇹 +251",value:"251ET"},{code:"SO",label:"🇸🇴 +252",value:"252SO"},{code:"DJ",label:"🇩🇯 +253",value:"253DJ"},{code:"KE",label:"🇰🇪 +254",value:"254KE"},{code:"TZ",label:"🇹🇿 +255",value:"255TZ"},{code:"UG",label:"🇺🇬 +256",value:"256UG"},{code:"BI",label:"🇧🇮 +257",value:"257BI"},{code:"MZ",label:"🇲🇿 +258",value:"258MZ"},{code:"ZM",label:"🇿🇲 +260",value:"260ZM"},{code:"MG",label:"🇲🇬 +261",value:"261MG"},{code:"YT",label:"🇾🇹 +262",value:"262YT"},{code:"RE",label:"🇷🇪 +262",value:"262RE"},{code:"ZW",label:"🇿🇼 +263",value:"263ZW"},{code:"NA",label:"🇳🇦 +264",value:"264NA"},{code:"MW",label:"🇲🇼 +265",value:"265MW"},{code:"LS",label:"🇱🇸 +266",value:"266LS"},{code:"BW",label:"🇧🇼 +267",value:"267BW"},{code:"SZ",label:"🇸🇿 +268",value:"268SZ"},{code:"KM",label:"🇰🇲 +269",value:"269KM"},{code:"ZA",label:"🇿🇦 +27",value:"27ZA"},{code:"SH",label:"🇸🇭 +290",value:"290SH"},{code:"ER",label:"🇪🇷 +291",value:"291ER"},{code:"AW",label:"🇦🇼 +297",value:"297AW"},{code:"FO",label:"🇫🇴 +298",value:"298FO"},{code:"GL",label:"🇬🇱 +299",value:"299GL"},{code:"GR",label:"🇬🇷 +30",value:"30GR"},{code:"NL",label:"🇳🇱 +31",value:"31NL"},{code:"BE",label:"🇧🇪 +32",value:"32BE"},{code:"FR",label:"🇫🇷 +33",value:"33FR"},{code:"ES",label:"🇪🇸 +34",value:"34ES"},{code:"KY",label:"🇰🇾 +345",value:"345KY"},{code:"GI",label:"🇬🇮 +350",value:"350GI"},{code:"PT",label:"🇵🇹 +351",value:"351PT"},{code:"LU",label:"🇱🇺 +352",value:"352LU"},{code:"IE",label:"🇮🇪 +353",value:"353IE"},{code:"IS",label:"🇮🇸 +354",value:"354IS"},{code:"AL",label:"🇦🇱 +355",value:"355AL"},{code:"MT",label:"🇲🇹 +356",value:"356MT"},{code:"CY",label:"🇨🇾 +357",value:"357CY"},{code:"FI",label:"🇫🇮 +358",value:"358FI"},{code:"BG",label:"🇧🇬 +359",value:"359BG"},{code:"HU",label:"🇭🇺 +36",value:"36HU"},{code:"LT",label:"🇱🇹 +370",value:"370LT"},{code:"LV",label:"🇱🇻 +371",value:"371LV"},{code:"EE",label:"🇪🇪 +372",value:"372EE"},{code:"MD",label:"🇲🇩 +373",value:"373MD"},{code:"AM",label:"🇦🇲 +374",value:"374AM"},{code:"BY",label:"🇧🇾 +375",value:"375BY"},{code:"AD",label:"🇦🇩 +376",value:"376AD"},{code:"MC",label:"🇲🇨 +377",value:"377MC"},{code:"SM",label:"🇸🇲 +378",value:"378SM"},{code:"VA",label:"🇻🇦 +379",value:"379VA"},{code:"UA",label:"🇺🇦 +380",value:"380UA"},{code:"RS",label:"🇷🇸 +381",value:"381RS"},{code:"ME",label:"🇲🇪 +382",value:"382ME"},{code:"XK",label:"🇽🇰 +383",value:"383XK"},{code:"HR",label:"🇭🇷 +385",value:"385HR"},{code:"SI",label:"🇸🇮 +386",value:"386SI"},{code:"BA",label:"🇧🇦 +387",value:"387BA"},{code:"MK",label:"🇲🇰 +389",value:"389MK"},{code:"IT",label:"🇮🇹 +39",value:"39IT"},{code:"RO",label:"🇷🇴 +40",value:"40RO"},{code:"CH",label:"🇨🇭 +41",value:"41CH"},{code:"CZ",label:"🇨🇿 +420",value:"420CZ"},{code:"SK",label:"🇸🇰 +421",value:"421SK"},{code:"LI",label:"🇱🇮 +423",value:"423LI"},{code:"AT",label:"🇦🇹 +43",value:"43AT"},{code:"IM",label:"🇮🇲 +44",value:"44IM"},{code:"GG",label:"🇬🇬 +44",value:"44GG"},{code:"JE",label:"🇯🇪 +44",value:"44JE"},{code:"GB",label:"🇬🇧 +44",value:"44GB"},{code:"DK",label:"🇩🇰 +45",value:"45DK"},{code:"SE",label:"🇸🇪 +46",value:"46SE"},{code:"NO",label:"🇳🇴 +47",value:"47NO"},{code:"SJ",label:"🇸🇯 +47",value:"47SJ"},{code:"PL",label:"🇵🇱 +48",value:"48PL"},{code:"DE",label:"🇩🇪 +49",value:"49DE"},{code:"FK",label:"🇫🇰 +500",value:"500FK"},{code:"GS",label:"🇬🇸 +500",value:"500GS"},{code:"BZ",label:"🇧🇿 +501",value:"501BZ"},{code:"GT",label:"🇬🇹 +502",value:"502GT"},{code:"SV",label:"🇸🇻 +503",value:"503SV"},{code:"HN",label:"🇭🇳 +504",value:"504HN"},{code:"NI",label:"🇳🇮 +505",value:"505NI"},{code:"CR",label:"🇨🇷 +506",value:"506CR"},{code:"PA",label:"🇵🇦 +507",value:"507PA"},{code:"PM",label:"🇵🇲 +508",value:"508PM"},{code:"HT",label:"🇭🇹 +509",value:"509HT"},{code:"PE",label:"🇵🇪 +51",value:"51PE"},{code:"MX",label:"🇲🇽 +52",value:"52MX"},{code:"CU",label:"🇨🇺 +53",value:"53CU"},{code:"AR",label:"🇦🇷 +54",value:"54AR"},{code:"BR",label:"🇧🇷 +55",value:"55BR"},{code:"CL",label:"🇨🇱 +56",value:"56CL"},{code:"CO",label:"🇨🇴 +57",value:"57CO"},{code:"VE",label:"🇻🇪 +58",value:"58VE"},{code:"BL",label:"🇧🇱 +590",value:"590BL"},{code:"MF",label:"🇲🇫 +590",value:"590MF"},{code:"GP",label:"🇬🇵 +590",value:"590GP"},{code:"BO",label:"🇧🇴 +591",value:"591BO"},{code:"GY",label:"🇬🇾 +592",value:"592GY"},{code:"EC",label:"🇪🇨 +593",value:"593EC"},{code:"GF",label:"🇬🇫 +594",value:"594GF"},{code:"PY",label:"🇵🇾 +595",value:"595PY"},{code:"MQ",label:"🇲🇶 +596",value:"596MQ"},{code:"SR",label:"🇸🇷 +597",value:"597SR"},{code:"UY",label:"🇺🇾 +598",value:"598UY"},{code:"MY",label:"🇲🇾 +60",value:"60MY"},{code:"CC",label:"🇨🇨 +61",value:"61CC"},{code:"AU",label:"🇦🇺 +61",value:"61AU"},{code:"CX",label:"🇨🇽 +61",value:"61CX"},{code:"ID",label:"🇮🇩 +62",value:"62ID"},{code:"PH",label:"🇵🇭 +63",value:"63PH"},{code:"NZ",label:"🇳🇿 +64",value:"64NZ"},{code:"SG",label:"🇸🇬 +65",value:"65SG"},{code:"TH",label:"🇹🇭 +66",value:"66TH"},{code:"TL",label:"🇹🇱 +670",value:"670TL"},{code:"NF",label:"🇳🇫 +672",value:"672NF"},{code:"BN",label:"🇧🇳 +673",value:"673BN"},{code:"NR",label:"🇳🇷 +674",value:"674NR"},{code:"PG",label:"🇵🇬 +675",value:"675PG"},{code:"TO",label:"🇹🇴 +676",value:"676TO"},{code:"SB",label:"🇸🇧 +677",value:"677SB"},{code:"VU",label:"🇻🇺 +678",value:"678VU"},{code:"FJ",label:"🇫🇯 +679",value:"679FJ"},{code:"PW",label:"🇵🇼 +680",value:"680PW"},{code:"WF",label:"🇼🇫 +681",value:"681WF"},{code:"CK",label:"🇨🇰 +682",value:"682CK"},{code:"NU",label:"🇳🇺 +683",value:"683NU"},{code:"WS",label:"🇼🇸 +685",value:"685WS"},{code:"KI",label:"🇰🇮 +686",value:"686KI"},{code:"NC",label:"🇳🇨 +687",value:"687NC"},{code:"TV",label:"🇹🇻 +688",value:"688TV"},{code:"PF",label:"🇵🇫 +689",value:"689PF"},{code:"TK",label:"🇹🇰 +690",value:"690TK"},{code:"FM",label:"🇫🇲 +691",value:"691FM"},{code:"MH",label:"🇲🇭 +692",value:"692MH"},{code:"RU",label:"🇷🇺 +7",value:"7RU"},{code:"KZ",label:"🇰🇿 +77",value:"77KZ"},{code:"JP",label:"🇯🇵 +81",value:"81JP"},{code:"KR",label:"🇰🇷 +82",value:"82KR"},{code:"VN",label:"🇻🇳 +84",value:"84VN"},{code:"KP",label:"🇰🇵 +850",value:"850KP"},{code:"HK",label:"🇭🇰 +852",value:"852HK"},{code:"MO",label:"🇲🇴 +853",value:"853MO"},{code:"KH",label:"🇰🇭 +855",value:"855KH"},{code:"LA",label:"🇱🇦 +856",value:"856LA"},{code:"CN",label:"🇨🇳 +86",value:"86CN"},{code:"PN",label:"🇵🇳 +872",value:"872PN"},{code:"BD",label:"🇧🇩 +880",value:"880BD"},{code:"TW",label:"🇹🇼 +886",value:"886TW"},{code:"TR",label:"🇹🇷 +90",value:"90TR"},{code:"IN",label:"🇮🇳 +91",value:"91IN"},{code:"PK",label:"🇵🇰 +92",value:"92PK"},{code:"AF",label:"🇦🇫 +93",value:"93AF"},{code:"LK",label:"🇱🇰 +94",value:"94LK"},{code:"MM",label:"🇲🇲 +95",value:"95MM"},{code:"MV",label:"🇲🇻 +960",value:"960MV"},{code:"LB",label:"🇱🇧 +961",value:"961LB"},{code:"JO",label:"🇯🇴 +962",value:"962JO"},{code:"SY",label:"🇸🇾 +963",value:"963SY"},{code:"IQ",label:"🇮🇶 +964",value:"964IQ"},{code:"KW",label:"🇰🇼 +965",value:"965KW"},{code:"SA",label:"🇸🇦 +966",value:"966SA"},{code:"YE",label:"🇾🇪 +967",value:"967YE"},{code:"OM",label:"🇴🇲 +968",value:"968OM"},{code:"PS",label:"🇵🇸 +970",value:"970PS"},{code:"AE",label:"🇦🇪 +971",value:"971AE"},{code:"IL",label:"🇮🇱 +972",value:"972IL"},{code:"BH",label:"🇧🇭 +973",value:"973BH"},{code:"QA",label:"🇶🇦 +974",value:"974QA"},{code:"BT",label:"🇧🇹 +975",value:"975BT"},{code:"MN",label:"🇲🇳 +976",value:"976MN"},{code:"NP",label:"🇳🇵 +977",value:"977NP"},{code:"IR",label:"🇮🇷 +98",value:"98IR"},{code:"TJ",label:"🇹🇯 +992",value:"992TJ"},{code:"TM",label:"🇹🇲 +993",value:"993TM"},{code:"AZ",label:"🇦🇿 +994",value:"994AZ"},{code:"GE",label:"🇬🇪 +995",value:"995GE"},{code:"KG",label:"🇰🇬 +996",value:"996KG"},{code:"UZ",label:"🇺🇿 +998",value:"998UZ"}]},1720:function(e,t,n){"use strict";var r=n(65736),a=n(22823),o=n(32220);const __=r.__,i=[{isDefault:!0,name:"whatsapp-button",title:__("WhatsApp Button","jetpack"),description:__("Let your visitors send you messages on WhatsApp with the tap of a button.","jetpack"),icon:(0,o.p)("send-a-message",a.Z),innerBlocks:[["jetpack/whatsapp-button",{}]]}];t.Z=i},87165:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={countryCode:{type:"string"},phoneNumber:{type:"string"},firstMessage:{type:"string",default:__("Hi, I got your WhatsApp information from your website.","jetpack")},buttonText:{type:"array",source:"children",selector:"a.whatsapp-block__button",default:__("Chat on WhatsApp","jetpack")},backgroundColor:{type:"string",default:"#25D366"},colorClass:{type:"string",default:"dark"},openInNewTab:{type:"boolean",default:!1}}},93374:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(39630),l=n(64566),c=n(41632),u=n(22985);const __=a.__,_x=a._x,p="#25D366",d="#465B64";function m(e){let{attributes:t,setAttributes:n,context:a}=e;const{countryCode:m,phoneNumber:h,firstMessage:f,openInNewTab:g,backgroundColor:b}=t,[v,k]=(0,r.useState)(!0),y=()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{label:__("Phone Number","jetpack"),help:__("Enter the phone number you use for WhatsApp and would like to be contacted on.","jetpack"),className:"jetpack-whatsapp-button__phonenumber"},(0,r.createElement)(o.SelectControl,{label:__("Country code","jetpack"),value:m,onChange:e=>n({countryCode:e}),options:l.n,hideLabelFromVision:!0}),(0,r.createElement)(o.TextControl,{placeholder:__("Your phone number…","jetpack"),onChange:e=>{n({phoneNumber:e}),0===e.length&&k(!0),e.length>2&&k((e=>{const t=RegExp(/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/,"g");return!(void 0===e||e.length<1)&&t.test(m.replace(/\D/g,"")+e)})(e))},value:h}),!v&&(0,r.createElement)(u.Z,{isError:!0,className:"jetpack-whatsapp-error"},__("Please enter a valid phone number.","jetpack"))),"inspector"===a&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.TextareaControl,{label:__("Default First Message","jetpack"),help:__("The default first message that will be sent by visitors when using this button.","jetpack"),value:f,onChange:e=>n({firstMessage:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Open in new tab","jetpack"),checked:g,onChange:e=>n({openInNewTab:e}),help:__("When the button is tapped, should a new tab be opened if the visitor does not have WhatsApp installed?","jetpack")})));return"toolbar"===a?(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"jetpack-whatsapp-button-settings-selector",contentClassName:"jetpack-whatsapp-button__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(o.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("WhatsApp Button Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==s.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,c.Z)((0,r.createElement)(o.Path,{d:"M10.82 12.49c.02-.16.04-.32.04-.49 0-.17-.02-.33-.04-.49l1.08-.82c.1-.07.12-.21.06-.32l-1.03-1.73c-.06-.11-.2-.15-.31-.11l-1.28.5c-.27-.2-.56-.36-.87-.49l-.2-1.33c0-.12-.11-.21-.24-.21H5.98c-.13 0-.24.09-.26.21l-.2 1.32c-.31.12-.6.3-.87.49l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.73c-.06.12-.03.25.07.33l1.08.82c-.02.16-.03.33-.03.49 0 .17.02.33.04.49l-1.09.83c-.1.07-.12.21-.06.32l1.03 1.73c.06.11.2.15.31.11l1.28-.5c.27.2.56.36.87.49l.2 1.32c.01.12.12.21.25.21h2.06c.13 0 .24-.09.25-.21l.2-1.32c.31-.12.6-.3.87-.49l1.28.5c.12.05.25 0 .31-.11l1.03-1.73c.06-.11.04-.24-.06-.32l-1.1-.83zM7 13.75c-.99 0-1.8-.78-1.8-1.75s.81-1.75 1.8-1.75 1.8.78 1.8 1.75S8 13.75 7 13.75zM18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"}))}))(t,n)},renderContent:y})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("WhatsApp Button Settings","jetpack"),initialOpen:!0},y()),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!1,colorSettings:[{value:b,onChange:e=>(e=>{if(n({backgroundColor:e}),void 0===e||e===p||e===d)return n({colorClass:"dark"});n({colorClass:"light"})})(e),label:__("Background Color","jetpack"),disableCustomColors:!0,colors:[{name:_x("WhatsApp Green","background color name","jetpack"),slug:"whatsapp-green",color:p},{name:_x("WhatsApp Dark","background color name","jetpack"),slug:"whatsapp-dark",color:d},{name:_x("WhatsApp Light","background color name","jetpack"),slug:"whatsapp-light",color:"#F4F4F4"},{name:_x("White","background color name","jetpack"),slug:"whatsapp-white",color:"#FFFFFF"}]}]}))}},11026:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770),l=n(87165);t.Z={attributes:l.Z,supports:{html:!1,reusable:!1},save:function(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,colorClass:u,buttonText:p,backgroundColor:d,openInNewTab:m}=t,h=m?"_blank":"_self",f=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",g=o()(n,u?"is-color-"+u:void 0,p.length?void 0:"has-no-text");return(0,r.createElement)("div",{className:g},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+f;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:d},target:h,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:p})))}}},60249:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(52175),l=n(64566),c=n(93374);function u(e){let{attributes:t,setAttributes:n,className:a,clientId:u}=e;const{countryCode:p,buttonText:d,colorClass:m,backgroundColor:h}=t,{selectBlock:f}=(0,i.useDispatch)("core/block-editor"),g=(0,r.useCallback)((async()=>{n({countryCode:"1"});const e=await fetch("https://public-api.wordpress.com/geo/").then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json();l.n.forEach((e=>{e.code===t.country_short&&n({countryCode:e.value})}))}}),[n]);(0,r.useEffect)((()=>{void 0===p&&(g(),f(u))}),[u,p,g,f]);return(0,r.createElement)("div",{className:o()(a,m?"is-color-"+m:void 0)},(0,r.createElement)(s.BlockControls,null,(0,r.createElement)(c.Z,{context:"toolbar",setAttributes:n,attributes:t})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(c.Z,{context:"inspector",setAttributes:n,attributes:t})),(0,r.createElement)(s.RichText,{placeholder:d.default,value:d,onChange:e=>n({buttonText:e}),withoutInteractiveFormatting:!0,allowedFormats:[],className:"whatsapp-block__button",tagName:"a",preserveWhiteSpace:!1,style:{backgroundColor:h,color:"dark"===m?"#fff":"#465B64"}}))}},22823:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(57535);t.Z=(0,r.createElement)(a.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1"},(0,r.createElement)(a.Path,{fill:(0,o.m)(),d:"M24,11.6909333 C24,18.1477333 18.7256,23.3818667 12.2181333,23.3818667 C10.1522667,23.3818667 8.21146667,22.8538667 6.52293333,21.9272 L0,24 L2.12666667,17.7274667 C1.05386667,15.9658667 0.436,13.8997333 0.436,11.6909333 C0.436,5.23413333 5.71093333,0 12.2181333,0 C18.7261333,0 24,5.23413333 24,11.6909333 Z M12.2181333,1.86186667 C6.75573333,1.86186667 2.31253333,6.2712 2.31253333,11.6909333 C2.31253333,13.8416 3.0136,15.8333333 4.19946667,17.4536 L2.96186667,21.104 L6.76853333,19.8941333 C8.33253333,20.9210667 10.2061333,21.52 12.2184,21.52 C17.68,21.52 22.124,17.1112 22.124,11.6914667 C22.124,6.27173333 17.6802667,1.86186667 12.2181333,1.86186667 Z M18.1677333,14.3834667 C18.0949333,14.2642667 17.9026667,14.1922667 17.6141333,14.0490667 C17.3250667,13.9058667 15.9048,13.2122667 15.6408,13.1170667 C15.376,13.0216 15.1829333,12.9736 14.9906667,13.2602667 C14.7984,13.5472 14.2448,14.1922667 14.076,14.3834667 C13.9074667,14.5752 13.7392,14.5992 13.4501333,14.4557333 C13.1616,14.3125333 12.2312,14.0096 11.128,13.0336 C10.2696,12.2741333 9.68986667,11.3365333 9.52133333,11.0493333 C9.35306667,10.7626667 9.50373333,10.6077333 9.648,10.4650667 C9.77813333,10.3365333 9.93706667,10.1304 10.0813333,9.9632 C10.2261333,9.79573333 10.2741333,9.67653333 10.3698667,9.48506667 C10.4666667,9.29386667 10.4184,9.12666667 10.3458667,8.98293333 C10.2738667,8.83973333 9.69573333,7.4296 9.4552,6.85573333 C9.21466667,6.2824 8.9744,6.37786667 8.8056,6.37786667 C8.63733333,6.37786667 8.44453333,6.35386667 8.252,6.35386667 C8.05946667,6.35386667 7.7464,6.4256 7.4816,6.71226667 C7.21706667,6.9992 6.4712,7.69253333 6.4712,9.1024 C6.4712,10.5125333 7.5056,11.8749333 7.6504,12.0658667 C7.79466667,12.2568 9.64773333,15.2445333 12.5837333,16.392 C15.52,17.5389333 15.52,17.1562667 16.0496,17.1082667 C16.5786667,17.0605333 17.7578667,16.4152 17.9994667,15.7464 C18.2394667,15.0765333 18.2394667,14.5029333 18.1677333,14.3834667 Z"}))},59770:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},pf:function(){return d},Xd:function(){return m}});var r=n(65736),a=n(57535),o=n(87165),i=n(60249),s=n(4114),l=n(11026),c=n(22823);const __=r.__,_x=r._x,u="whatsapp-button",p=__("WhatsApp Button","jetpack"),d="https://api.whatsapp.com/send?phone=",m=(__("Chat on WhatsApp","jetpack"),__("Hi, I got your WhatsApp information from your website.","jetpack"),{title:p,description:__("Let your visitors send you a message on WhatsApp with the tap of a button.","jetpack"),icon:{src:c.Z,foreground:(0,a.m)()},category:"grow",parent:["jetpack/send-a-message"],keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1,reusable:!1,align:["left","center","right"]},attributes:o.Z,edit:i.Z,save:s.Z,example:{attributes:{countryCode:"1",phoneNumber:"555-123-4567"}},deprecated:[l.Z]})},4114:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770);function l(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,buttonText:u,backgroundColor:p,colorClass:d,openInNewTab:m}=t,h=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",f=o()(n,d?"is-color-"+d:void 0,u.length?void 0:"has-no-text"),g=m?"_blank":"_self";return(0,r.createElement)("div",{className:f},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+h;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:p,color:"dark"===d?"#fff":"#465B64"},target:g,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:u})))}},96594:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(20489);const __=a.__,c="seo",u={render:()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("SEO Description","jetpack")},(0,r.createElement)(l.Z,null))),(0,r.createElement)(i.PluginPrePublishPanel,{initialOpen:!0,id:"seo-title",title:(0,r.createElement)("span",{id:"seo-defaults",key:"seo-title-span"},__("SEO Description","jetpack"))},(0,r.createElement)(l.Z,null)))}},20489:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(9818);const __=i.__,_n=i._n;class u extends o.Component{constructor(){super(...arguments),a()(this,"onMessageChange",(e=>{this.props.updateSeoDescription(e.target.value)}))}render(){const{seoDescription:e}=this.props;return(0,o.createElement)("div",{className:"jetpack-seo-message-box"},(0,o.createElement)("textarea",{value:e,onChange:this.onMessageChange,placeholder:__("Write a description…","jetpack"),rows:4}),(0,o.createElement)("div",{className:"jetpack-seo-character-count"},(0,i.sprintf)(
+/* translators: Placeholder is a number of characters in a sentence. */
+_n("%d character","%d characters",e.length,"jetpack"),e.length)))}}t.Z=(0,s.compose)([(0,c.withSelect)((e=>({seoDescription:(0,l.get)(e("core/editor").getEditedPostAttribute("meta"),["advanced_seo_description"],"")}))),(0,c.withDispatch)((e=>({updateSeoDescription(t){e("core/editor").editPost({meta:{advanced_seo_description:t}})}})))])(u)},71730:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(92819),i=n(55609),s=n(9818),l=n(70609),c=n(32673);const __=a.__,u="shortlinks",p={render:()=>(0,r.createElement)(m,null)};class d extends r.Component{render(){const{shortlink:e}=this.props;return e?(0,r.createElement)(c.Z,null,(0,r.createElement)(i.PanelBody,{title:__("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},(0,r.createElement)(l.Z,{link:e}))):null}}const m=(0,s.withSelect)((e=>{const t=e("core/editor").getCurrentPost();return{shortlink:(0,o.get)(t,"jetpack_shortlink","")}}))(d)},47175:function(e,t,n){"use strict";n.d(t,{LC:function(){return r},a7:function(){return a},Rh:function(){return o}});const r="jp_pay_product",a="USD",o=[a,"EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"]},81255:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{setAttributes:t,postLinkText:n}=e;return(0,r.createElement)(a.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,r.createElement)(a.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>t({postLinkText:e}),value:n})))}},56511:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},save:e=>{let{attributes:t}=e;const{productId:n}=t;return n?(0,r.createElement)(r.RawHTML,null,`[simple-payment id="${n}"]`):null}}},75050:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175);const __=p.__,_n=p._n;class E extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(h.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,o.createElement)(h.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,o.createElement)(h.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>this.props.setAttributes({postLinkText:e}),value:this.props.attributes.postLinkText}))))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r}=this.props,{productId:a}=e;!a&&t&&this.saveProduct();const o=n&&n!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&r({...o&&{postLinkUrl:n},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.w)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.w)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const w=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u.link}}));t.Z=(0,d.compose)(w,d.withInstanceId)(E)},19372:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(75050),u=n(63290);const __=a.__,_x=a._x,p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),d=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",m={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:d},__("Support reference","jetpack"))),icon:{src:p,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};t.Z=m},63290:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.w)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},81666:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175),E=n(81255);const __=p.__,_n=p._n;class w extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{postLinkText:this.props.attributes.postLinkText,setAttributes:this.props.setAttributes}))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r,isPostEditor:a}=this.props,{productId:o}=e;(!o&&t||!a)&&this.saveProduct();const i=n&&n!==this.props.attributes.postLinkUrl,s=!this.props.attributes.postLinkText;(i||s)&&r({...i&&{postLinkUrl:n},...s&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.T4)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),"aria-label":__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.T4)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const _=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u?.link,isPostEditor:Object.keys(o()).length>0}}));t.Z=(0,d.compose)(_,d.withInstanceId)(w)},8565:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(92819),s=n(55609),l=n(58703);const __=a.__,c=e=>t=>e({featuredMediaId:(0,i.get)(t,"id",0),featuredMediaUrl:(0,i.get)(t,"url",null),featuredMediaTitle:(0,i.get)(t,"title",null)});t.Z=e=>{let{featuredMediaId:t,featuredMediaUrl:n,featuredMediaTitle:a,setAttributes:i}=e;return t?(0,r.createElement)("div",null,(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarItem,null,(()=>(0,r.createElement)(o.MediaUpload,{onSelect:c(i),allowedTypes:["image"],value:t,render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Image","jetpack"),onClick:t})}}))),(0,r.createElement)(s.ToolbarButton,{icon:"trash",title:__("Remove Image","jetpack"),onClick:()=>i({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}))),(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:n,alt:a})))):(0,r.createElement)(o.MediaPlaceholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:"format-image"}),labels:{title:__("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:c(i)})}},35289:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(81666),u=n(73e3),p=n(56511),d=n(19372),m=n(60206);const __=a.__,_x=a._x,h="simple-payments",f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),g=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",b={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:g},__("Support reference","jetpack"))),icon:{src:f,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,example:{attributes:{price:25,title:__("Jetpack t-shirt","jetpack"),content:__("Take flight in ultimate comfort with this stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:m}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},deprecated:[p.Z,d.Z]}},87079:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(22323),i=n(23879);const __=a.__;t.Z=e=>{let{title:t="",content:n="",formattedPrice:a="",multiple:s=!1,featuredMediaUrl:l=null,featuredMediaTitle:c=null}=e;return(0,r.createElement)("div",{className:"jetpack-simple-payments-wrapper"},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},l&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("figure",{className:"jetpack-simple-payments-image"},(0,r.createElement)("img",{src:l,alt:c}))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},t&&(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,t)),n&&(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),a&&(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,a)),(0,r.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},s&&(0,r.createElement)("div",{className:"jetpack-simple-payments-items"},(0,r.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),(0,r.createElement)("div",{className:"jetpack-simple-payments-button"},(0,r.createElement)("img",{alt:__("Pay with PayPal","jetpack"),src:o,srcSet:`${i} 2x`}))))))}},73e3:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.T4)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},37299:function(e,t,n){"use strict";n.d(t,{N3:function(){return i},w:function(){return l},T4:function(){return c}});var r=n(75139),a=n(92819),o=n(9818);n(47175);const i=e=>{const t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},s=function(){var e,t,n;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en-US";const a=window?.window?.navigator;return a?.languages?.length?a.languages[0]:null!==(e=null!==(t=null!==(n=a?.userLanguage)&&void 0!==n?n:a?.language)&&void 0!==t?t:a?.browserLanguage)&&void 0!==e?e:r},l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const{precision:o,symbol:i}=(0,r.X)(t),s=e.toFixed(o);return n?`${s} ${(0,a.trimEnd)(i,".")}`:s},c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!window.Intl||"function"!=typeof Intl.NumberFormat)return l(e,t,n);const{siteLocale:r}=(0,o.select)("core/block-editor").getSettings(),a=[r,s(),"en-US"];let i,c={};for(i of(n&&(c={style:"currency",currency:t}),a))try{return Intl.NumberFormat(i,c).format(e)}catch{continue}return l(e,t,n)}},98972:function(e,t,n){"use strict";n.d(t,{G:function(){return c},J:function(){return u}});var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(92819),l=n(58703);const __=i.__,_x=i._x;function c(e){let{attributes:{autoplay:t,delay:n,effect:a,images:i,sizeSlug:l},imageSizeOptions:c,onChangeImageSize:u,setAttributes:p}=e;const d="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,m=[{label:_x("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:_x("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Autoplay","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Autoplay","jetpack"),help:__("Autoplay between slides","jetpack"),checked:t,onChange:e=>{p({autoplay:e})}}),t&&(0,r.createElement)(o.RangeControl,{label:__("Delay between transitions (in seconds)","jetpack"),value:n,onChange:e=>{p({delay:e})},min:1,max:5}),t&&d&&(0,r.createElement)("span",null,__("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Effects","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Transition effect","jetpack"),value:a,onChange:e=>{p({effect:e})},options:m})),!(0,s.isEmpty)(i)&&!(0,s.isEmpty)(c)&&(0,r.createElement)(o.PanelBody,{title:__("Image Settings","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Image Size","jetpack"),value:l,options:c,onChange:e=>u(e)})))}function u(e){let{allowedMediaTypes:t,attributes:{images:n},onSelectImages:i}=e;return(0,r.createElement)(r.Fragment,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{onSelect:i,allowedTypes:t,multiple:!0,gallery:!0,value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Slideshow","jetpack"),onClick:t})}})))))}},44890:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);async function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".swiper-container",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicks:!1,preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,threshold:5,touchStartPreventDefault:!1,on:(0,r.mapValues)(a,(e=>function(){e(this)}))},[{default:i}]=await Promise.all([Promise.all([n.e(860),n.e(390)]).then(n.t.bind(n,16402,23)),Promise.all([n.e(860),n.e(390)]).then(n.bind(n,78858))]);return new i(e,(0,r.merge)({},o,t))}},67448:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(11313),u=n(9818),p=n(52175),d=n(12238),m=n(55609),h=n(94120),f=n(98972),g=n(712);const __=i.__,b=["image"],v=(e,t)=>{const n=(0,l.pick)(e,["alt","id","link","caption"]);return n.url=(0,l.get)(e,["sizes",t,"url"])||(0,l.get)(e,["media_details","sizes",t,"source_url"])||e.url,n};class k extends o.Component{constructor(){super(...arguments),a()(this,"onSelectImages",(e=>{const{sizeSlug:t}=this.props.attributes,n=e.map((e=>v(e,t)));this.setAttributes({images:n})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,l.filter)(this.props.attributes.images,((t,n)=>e!==n));this.setState({selectedImage:null}),this.setAttributes({images:t})})),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],n=this.props.attributes.sizeSlug,{lockPostSaving:r,unlockPostSaving:a,noticeOperations:o}=this.props,i="slideshowBlockLock";r(i),(0,d.mediaUpload)({allowedTypes:b,filesList:e,onFileChange:e=>{const r=e.map((e=>v(e,n)));this.setAttributes({images:[...t,...r]}),r.every((e=>(0,c.isBlobURL)(e.url)))||a(i)},onError:o.createErrorNotice})})),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files))),a()(this,"updateImagesSize",(e=>{const{images:t}=this.props.attributes,{resizedImages:n}=this.props,r=t.map((t=>{const r=n.find((e=>{let{id:n}=e;return parseInt(n,10)===parseInt(t.id,10)})),a=(0,l.get)(r,["sizes",e,"source_url"]);return{...t,...a&&{url:a}}}));this.setAttributes({images:r,sizeSlug:e})})),this.state={selectedImage:null}}componentDidMount(){const{ids:e,sizeSlug:t}=this.props.attributes;t||this.setAttributes({sizeSlug:e.length?"full":"large"})}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}getImageSizeOptions(){const{imageSizes:e}=this.props;return(0,l.map)(e,(e=>{let{name:t,slug:n}=e;return{value:n,label:t}}))}render(){const{attributes:e,className:t,isSelected:n,noticeOperations:r,noticeUI:a}=this.props,{align:i,autoplay:s,delay:l,effect:c,images:u}=e,d=this.getImageSizeOptions(),v=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.InspectorControls,null,(0,o.createElement)(f.G,{attributes:e,imageSizeOptions:d,onChangeImageSize:this.updateImagesSize,setAttributes:e=>this.setAttributes(e)})),(0,o.createElement)(p.BlockControls,null,(0,o.createElement)(f.J,{allowedMediaTypes:b,attributes:e,onSelectImages:this.onSelectImages})));return 0===u.length?(0,o.createElement)(o.Fragment,null,v,(0,o.createElement)(p.MediaPlaceholder,{icon:(0,o.createElement)(p.BlockIcon,{icon:h.qv}),className:t,labels:{title:__("Slideshow","jetpack"),instructions:__("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:b,multiple:!0,notices:a,onError:r.createErrorNotice})):(0,o.createElement)(o.Fragment,null,v,a,(0,o.createElement)(g.Z,{align:i,autoplay:s,className:t,delay:l,effect:c,images:u,onError:r.createErrorNotice}),(0,o.createElement)(m.DropZone,{onFilesDrop:this.addFiles}),n&&(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},(0,o.createElement)(m.FormFileUpload,{multiple:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack"))))}}t.ZP=(0,s.compose)((0,u.withSelect)(((e,t)=>({imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce(((t,n)=>{const r=e("core").getMedia(n);return[...t,{id:n,sizes:(0,l.get)(r,["media_details","sizes"])}]}),[])}))),(0,u.withDispatch)((e=>{const{lockPostSaving:t,unlockPostSaving:n}=e("core/editor");return{lockPostSaving:t,unlockPostSaving:n}})),m.withNotices)(k)},94120:function(e,t,n){"use strict";n.d(t,{qv:function(){return h},u2:function(){return g},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(67448),s=n(91957),l=n(4830),c=n(57535),u=n(20510),p=n(65784),d=n(6425),m=n(85983);const __=a.__,_x=a._x,h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none"},(0,r.createElement)(o.Path,{d:"M21 8V19C21 20.1046 20.1057 21 19.0011 21C15.8975 21 9.87435 21 6 21",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Rect,{x:"3.75",y:"3.75",width:"13.5",height:"13.5",rx:"0.875",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Path,{d:"M9 14L12 11L9 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})),f={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:p},{alt:"",caption:"",id:23,url:d},{alt:"",caption:"",id:23,url:m}],effect:"slide"},g="slideshow",b={title:__("Slideshow","jetpack"),category:(0,u.Z)("media","layout"),keywords:[_x("image","block search term","jetpack"),_x("gallery","block search term","jetpack"),_x("slider","block search term","jetpack")],description:__("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:{src:h,foreground:(0,c.m)()},edit:i.ZP,save:s.Z,transforms:l.Z,example:{attributes:f}}},91957:function(e,t,n){"use strict";var r=n(69307),a=n(712);t.Z=e=>{let{attributes:{align:t,autoplay:n,delay:o,effect:i,images:s},className:l}=e;return(0,r.createElement)(a.Z,{align:t,autoplay:n,className:l,delay:o,effect:i,images:s})}},712:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(54166),c=n(65736),u=n(11313),p=n(92819),d=n(52175),m=n(55609),h=n(44890),f=n(10099);const __=c.__;class g extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"pendingRequestAnimationFrame",null),a()(this,"resizeObserver",null),a()(this,"initializeResizeObserver",(e=>{this.clearResizeObserver(),this.resizeObserver=new l.Z((()=>{this.clearPendingRequestAnimationFrame(),this.pendingRequestAnimationFrame=requestAnimationFrame((()=>{(0,f.$m)(e),e.update()}))})),this.resizeObserver.observe(e.el)})),a()(this,"clearPendingRequestAnimationFrame",(()=>{this.pendingRequestAnimationFrame&&(cancelAnimationFrame(this.pendingRequestAnimationFrame),this.pendingRequestAnimationFrame=null)})),a()(this,"clearResizeObserver",(()=>{this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)})),a()(this,"prefersReducedMotion",(()=>"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)),a()(this,"buildSwiper",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(0,h.Z)(t.slideshowRef.current,{autoplay:!(!t.props.autoplay||t.prefersReducedMotion())&&{delay:1e3*t.props.delay,disableOnInteraction:!1},effect:t.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:t.btnNextRef.current,prevEl:t.btnPrevRef.current},pagination:{clickable:!0,el:t.paginationRef.current,type:"bullets"}},{init:f.UA,imagesReady:f.$m,paginationRender:f.Wj,transitionEnd:f.HV})})),this.slideshowRef=(0,o.createRef)(),this.btnNextRef=(0,o.createRef)(),this.btnPrevRef=(0,o.createRef)(),this.paginationRef=(0,o.createRef)()}componentDidMount(){const{onError:e}=this.props;this.buildSwiper().then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{e(__("The Swiper library could not be loaded.","jetpack"))}))}componentWillUnmount(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}componentDidUpdate(e){const{align:t,autoplay:n,delay:r,effect:a,images:o,onError:i}=this.props;if(t===e.align&&(0,p.isEqual)(o,e.images)||this.swiperInstance&&this.swiperInstance.update(),a!==e.effect||n!==e.autoplay||r!==e.delay||o!==e.images){let t;t=this.swiperIndex?o.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{i(__("The Swiper library could not be loaded.","jetpack"))}))}}render(){if(!this.props?.images?.length)return null;const{autoplay:e,className:t,delay:n,effect:r,images:a}=this.props;return(0,o.createElement)("div",{className:t,"data-autoplay":e||null,"data-delay":e?n:null,"data-effect":r},(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},(0,o.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},a.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return(0,o.createElement)("li",{className:s()("wp-block-jetpack-slideshow_slide","swiper-slide",(0,u.isBlobURL)(a)&&"is-transient"),key:r||a},(0,o.createElement)("figure",null,(0,o.createElement)("img",{alt:t,className:`wp-block-jetpack-slideshow_image wp-image-${r}`,"data-id":r,src:a}),(0,u.isBlobURL)(a)&&(0,o.createElement)(m.Spinner,null),n&&(0,o.createElement)(d.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),(0,o.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}a()(g,"defaultProps",{effect:"slide"}),t.Z=g},10099:function(e,t,n){"use strict";n.d(t,{HV:function(){return l},UA:function(){return i},Wj:function(){return c},$m:function(){return s}});var r=n(81975),a=n(92819);const o="wp-block-jetpack-slideshow_autoplay-paused";function i(e){s(e),l(e);document.querySelector("body").dispatchEvent(new Event("jetpack-lazy-images-load")),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function s(e){if(!e||!e.el)return;const t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(!t)return;const n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,1.7777777777777777),1),a="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,a),i=`${Math.floor(o)}px`,s=`${Math.floor(o/2)}px`;e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=i,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=s}function l(e){(0,a.forEach)(e.slides,((t,n)=>{t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){const t=e.slides[e.activeIndex];if(!t)return;const n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:(0,r.escapeHTML)(a.alt))}(e)}function c(e){(0,a.forEach)(e.pagination.bullets,(t=>{t.addEventListener("click",(()=>{const t=e.slides[e.realIndex];setTimeout((()=>{t.focus()}),500)}))}))}},4830:function(e,t,n){"use strict";var r=n(4981),a=n(92819);function o(e){return(0,a.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const i={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>o(e).length>0,transform:e=>{const t=o(e);return(0,r.createBlock)("jetpack/slideshow",{images:t.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:e=>{let{images:t}=e;const n=o(t);return n.length>0?(0,r.createBlock)("jetpack/slideshow",{images:n.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,r.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n}=e;return(0,r.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:e=>{let{images:t}=e;return t.length>0?t.map((e=>{let{id:t,url:n,alt:a,caption:o}=e;return(0,r.createBlock)("core/image",{id:t,url:n,alt:a,caption:o})})):(0,r.createBlock)("core/image")}}]};t.Z=i},23133:function(e,t,n){"use strict";n.d(t,{z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(80505),l=n(52489),c=n(79465);const __=i.__,u=[{title:__("Google Search","jetpack"),icon:"google",name:"google",preview:s.Z},{title:__("Facebook","jetpack"),icon:"facebook",name:"facebook",preview:e=>(0,o.createElement)(l.Z,a()({type:"article"},e))},{title:__("Twitter","jetpack"),icon:"twitter",name:"twitter",preview:e=>(0,o.createElement)(c.Z,e)}]},42366:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p},w6:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(8277),c=n(6538);const __=a.__,u="social-previews",p={render:()=>(0,r.createElement)(d,null)},d=function(e){let{showUpgradeNudge:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,n&&(0,r.createElement)(c.Z,{showUpgradeNudge:t,onClose:()=>a(!1)}),(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t}))),(0,r.createElement)(i.PluginPrePublishPanel,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t})))}},6538:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(28723),l=n(23133),c=n(51591),u=n(479);const __=a.__;t.Z=(0,i.withSelect)(((e,t)=>{if(t.showUpgradeNudge)return{};const{getMedia:n,getUser:r}=e("core"),{getCurrentPost:a,getEditedPostAttribute:o}=e("core/editor"),{getTweetTemplate:i,getTweetStorm:s,getShareMessage:l,isTweetStorm:c}=e("jetpack/publicize"),p=o("featured_media"),d=o("author"),m=d&&r(d),h={post:a(),title:o("title"),description:o("meta")?.advanced_seo_description||o("excerpt")||o("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:o("link"),author:m?.name,image:!!p&&(0,u.i)(n(p))};let f=[];return c()?f=s():f.push({...i(),text:l(),card:{...h,type:h.image?"summary_large_image":"summary"}}),{...h,tweets:f,isTweetStorm:c()}}))((function(e){let{onClose:t,showUpgradeNudge:n,image:a,title:i,description:u,url:p,author:d,isTweetStorm:m,tweets:h}=e;const f=l.z.map((e=>({...e,title:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(c.av,{serviceName:e.icon}),e.title)})));return(0,r.createElement)(o.Modal,{onRequestClose:t,title:__("Social Previews","jetpack"),className:"jetpack-social-previews__modal"},n?(0,r.createElement)(s.Z,null):(0,r.createElement)(o.TabPanel,{className:"jetpack-social-previews__modal-previews",tabs:f,initialTabName:m?"twitter":null,orientation:"vertical"},(e=>(0,r.createElement)("div",null,(0,r.createElement)(e.preview,{title:i,description:u,url:p,author:d,image:a,isTweetStorm:m,tweets:h})))))}))},8277:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(23133),s=n(51591);const __=a.__;t.Z=function(e){let{openModal:t,showUpgradeNudge:n}=e;const a=n?__("Learn more","jetpack"):__("Preview","jetpack",0),l=n?__("Learn more about paid plans","jetpack"):__("Open Social Previews","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__panel"},(0,r.createElement)("p",null,__("Preview what this will look like on social networks and Google search.","jetpack")),n&&(0,r.createElement)("p",null,__("Business or eCommerce plan required.","jetpack")),(0,r.createElement)("div",{className:"jetpack-gutenberg-social-icons"},i.z.map((e=>(0,r.createElement)(s.av,{key:e.icon,serviceName:e.icon,className:"jetpack-social-previews__icon"})))),(0,r.createElement)(o.Button,{isSecondary:!0,onClick:t,label:l},a))}},28723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(69307),a=n(55609),o=n(65736),i=n(11973),s=n(37447),l=n(18733),c=n(21409),u=n(42366);const __=o.__;function p(){const e=(0,c.Z)(u.u2)?.details?.required_plan,[t,n,o]=(0,l.Z)(e,(()=>{i.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:e,block:u.u2})})),p=o?__("Redirecting…","jetpack"):__("Upgrade","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__modal-upgrade"},(0,r.createElement)("img",{className:"jetpack-social-previews__upgrade-illustration",src:s,width:"351",height:"264",alt:""}),(0,r.createElement)("div",{className:"jetpack-social-previews__upgrade-description"},(0,r.createElement)("h2",{className:"jetpack-social-previews__upgrade-heading"},__("Upgrade to a Business plan to unlock the power of our SEO tools","jetpack")),(0,r.createElement)("ul",{className:"jetpack-social-previews__upgrade-feature-list"},(0,r.createElement)("li",null,__("Preview your site’s content as it will appear on Facebook, Twitter, and the WordPress.com Reader.","jetpack")),(0,r.createElement)("li",null,__("Control how page titles will appear on Google search results and social networks.","jetpack")),(0,r.createElement)("li",null,__("Customize your front page metadata to change how your site appears to search engines.","jetpack"))),(0,r.createElement)(a.Button,{href:t,isPrimary:!0,label:__("Purchase a Business plan to access social previews","jetpack"),onClick:n,target:"_top",isBusy:o},p)))}},479:function(e,t,n){"use strict";function r(e){return e?e.media_details?.sizes?.large?.source_url||e.source_url:null}n.d(t,{i:function(){return r}})},22547:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(58703);const __=i.__;t.Z=e=>{let{allowedMediaTypes:t,attributes:{mediaFiles:n},onSelectMedia:i}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{title:__("Edit Story","jetpack"),onSelect:i,allowedTypes:t,addToGallery:!0,multiple:"add",value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(s.Z,{label:__("Edit Story","jetpack"),onClick:t})}}))))))}},68329:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(65736),l=n(11313),c=n(9818),u=n(52175),p=n(55609),d=n(20222),m=n(22547),h=n(4045);const __=s.__,f=["image","video"],g=e=>{const t=(0,i.pick)(e,["alt","title","id","link","type","mime","caption","width","height"]);return t.url=(0,i.get)(e,["media_details","original","url"])||(0,i.get)(e,["media_details","videopress","original"])||(0,i.get)(e,["media_details","sizes","large","source_url"])||(0,i.get)(e,["sizes","large","url"])||e.url,t.type=e.media_type||e.type,t.mime=e.mime_type||e.mime,t.title=t.title?.rendered||t.title,t.width=t.width||e.media_details?.width,t.height=t.height||e.media_details?.height,t};t.Z=(0,p.withNotices)((function(e){let{attributes:t,className:n,isSelected:a,noticeOperations:i,noticeUI:s,setAttributes:p}=e;const{mediaFiles:b}=t,{lockPostSaving:v,unlockPostSaving:k}=(0,c.useDispatch)("core/editor"),y="storyBlockLock",E=e=>{const t=e.map((e=>{if(!isNaN(e)){return b.find((t=>t.id===e))||{id:e}}return e})).map(g),n=t.filter((e=>!(0,l.isBlobURL)(e.url)));t.length!==n.length?v(y):k(y),p({mediaFiles:t})},w=(0,r.createElement)(m.Z,{allowedMediaTypes:f,attributes:t,onSelectMedia:E}),_=!!b.length,C=(0,r.createElement)(u.MediaPlaceholder,{addToGallery:_,isAppender:_,className:n,disableMediaButtons:_&&!a,icon:!_&&(0,r.createElement)(u.BlockIcon,{icon:d.qv}),labels:{title:!_&&__("Story","jetpack"),instructions:!_&&__("Drag images and videos, upload new ones, or select files from your library.","jetpack")},onSelect:E,accept:f.map((e=>e+"/*")).join(","),allowedTypes:f,multiple:"add",value:b,notices:_?void 0:s,onError:i.createErrorNotice});return _?(0,r.createElement)(r.Fragment,null,w,s,(0,r.createElement)("div",{className:o()("wp-block-jetpack-story","wp-story",n)},(0,r.createElement)(h.Z,{slides:b,disabled:!a,showSlideCount:a,shadowDOM:{enabled:!1},playInFullscreen:!1,tapToPlayPause:!1,playOnNextSlide:!1})),a&&C):(0,r.createElement)(r.Fragment,null,w,C)}))},96178:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,n(41632).Z)((0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M17 5a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2h9z"}),(0,r.createElement)(a.Path,{d:"M13 4H5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2z"}),(0,r.createElement)(a.Path,{d:"M7 16h8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"})));t.Z=o},20222:function(e,t,n){"use strict";n.d(t,{qv:function(){return i.Z},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(68329),o=n(1436),i=n(96178),s=n(20510),l=n(57535),c=n(15915);const __=r.__,_x=r._x,u={mediaFiles:[{alt:"",caption:"",mime:"image/jpg",type:"image",id:22,url:c}]},p="story",d={title:__("Story","jetpack"),category:(0,s.Z)("media","layout"),keywords:[_x("story","block search term","jetpack"),_x("image","block search term","jetpack"),_x("video","block search term","jetpack"),_x("gallery","block search term","jetpack")],description:__("Add an interactive story.","jetpack"),attributes:{settings:{type:"object"},mediaFiles:{type:"array",default:[]}},supports:{html:!1},icon:{src:i.Z,foreground:(0,l.m)()},edit:a.Z,save:o.Z,example:{attributes:u}}},18754:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(55609);function o(e){let{currentMedia:t}=e;const n=t&&"image"===t.type?t.url:null;return(0,r.createElement)("div",{className:"wp-story-background"},(0,r.createElement)("div",{className:"wp-story-background-image",style:{backgroundImage:n?`url("${n}")`:"none"}}),(0,r.createElement)("div",{className:"wp-story-background-blur"}),(0,r.createElement)(a.SVG,{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"0",height:"0"},(0,r.createElement)("filter",{id:"gaussian-blur-18"},(0,r.createElement)("feGaussianBlur",{stdDeviation:"18"}))))}},85974:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609);const __=i.__;function l(e){let{isEllipsis:t,disabled:n,index:a,isSelected:l,progress:c,onClick:u}=e;const p=n||t;let d=null;return t||(d=l?(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Slide %d, currently selected","jetpack"),a+1):(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Go to slide %d","jetpack"),a+1)),(0,r.createElement)(s.Button,{role:p?"presentation":"tab",key:a,className:o()("wp-story-pagination-bullet",{"wp-story-pagination-ellipsis":t}),"aria-label":d,"aria-disabled":p||l,onClick:p||l?void 0:u,disabled:p},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar"},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar-progress",style:{width:`${c}%`}})))}},9610:function(e,t,n){"use strict";n.d(t,{b:function(){return l},r:function(){return c}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{className:t,size:n,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button","circle-icon","outlined","bordered",t),style:{width:`${n}px`,height:`${n}px`}},l))},c=e=>{let{className:t,size:n=24,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button",t),style:{width:`${n}px`,height:`${n}px`}},l))}},1019:function(e,t,n){"use strict";var r=n(69307);t.Z=()=>(0,r.createElement)("div",{className:"wp-story-loading-spinner"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__outer"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__inner"})))},50281:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const _x=a._x;function s(e){let{playing:t,muted:n,onPlayPressed:a,onMutePressed:s,showMute:l}=e;return(0,r.createElement)("div",{className:"wp-story-controls"},(0,r.createElement)(o.r,{isPressed:t,label:t?_x("pause","Button tooltip text","jetpack"):_x("play","Button tooltip text","jetpack",0),onClick:a},t?(0,r.createElement)(i.fp,null):(0,r.createElement)(i.o1,null)),l&&(0,r.createElement)(o.r,{isPressed:n,label:n?_x("unmute","Button tooltip text","jetpack"):_x("mute","Button tooltip text","jetpack",0),onClick:s},n?(0,r.createElement)(i.xb,null):(0,r.createElement)(i.MC,null)))}},40220:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const __=a.__;function s(e){let{fullscreen:t,onExitFullscreen:n,siteIconUrl:a,storyTitle:s}=e;return t?(0,r.createElement)("div",{className:"wp-story-meta"},(0,r.createElement)("div",{className:"wp-story-icon"},(0,r.createElement)("img",{alt:__("Site icon","jetpack"),src:a,width:"40",height:"40"})),(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"wp-story-title"},s)),(0,r.createElement)(o.r,{className:"wp-story-exit-fullscreen",label:__("Exit Fullscreen","jetpack"),onClick:n},(0,r.createElement)(i.Tw,null))):null}},29089:function(e,t,n){"use strict";n.d(t,{o1:function(){return s},fp:function(){return l},Tw:function(){return c},MC:function(){return u},xb:function(){return p},JM:function(){return d},Vq:function(){return m}});var r=n(69307),a=n(55609),o=n(41632);const i=e=>{let{children:t,size:n}=e;return(0,o.Z)(t,n,n)},s=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M8 5v14l11-7z"}))},l=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}))},c=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}))},u=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}))},p=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"}))},d=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}))},m=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}))}},27870:function(e,t,n){"use strict";n.d(t,{gT:function(){return r.Z},ZX:function(){return a.Z},h4:function(){return o.Z},aV:function(){return i.Z},Aq:function(){return s.Z},WB:function(){return l.Z},pU:function(){return c.pU}});var r=n(85974),a=n(50281),o=n(40220),i=n(46531),s=n(18754),l=n(1019),c=n(64816);n(9610)},64816:function(e,t,n){"use strict";n.d(t,{pU:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{title:t,alt:n,className:r,id:a,mediaRef:i,mime:l,sizes:c,srcset:u,url:p}=e;return(0,o.createElement)("img",{ref:i,"data-id":a,"data-mime":l,title:t,alt:n,src:p,className:s()("wp-story-image",`wp-image-${a}`,r),srcSet:u,sizes:c})},c=e=>{let{title:t,className:n,id:r,mediaRef:a,mime:i,url:l,poster:c}=e;return(0,o.createElement)("video",{className:s()("wp-story-video","intrinsic-ignore",`wp-video-${r}`,n),ref:a,"data-id":r,title:t,type:i,src:l,poster:c,tabIndex:-1,preload:"auto",playsInline:!0})},u=e=>{let{targetAspectRatio:t,cropUpTo:n,type:r,width:i,height:s,...u}=e,p=null;if(i&&s){const e=i/s;if(e>=t){e>t/(1-n)||(p="wp-story-crop-wide")}else{e<t*(1-n)||(p="wp-story-crop-narrow")}}const d="video"===r||(u.mime||"").startsWith("video/");return(0,o.createElement)("figure",null,d?(0,o.createElement)(c,a()({},u,{className:p})):(0,o.createElement)(l,a()({},u,{className:p})))}},46531:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(48735),o=n.n(a),i=n(65736),s=n(9610),l=n(29089);const __=i.__;function c(e){let{ended:t,hasPrevious:n,onNextSlide:a,onPreviousSlide:c,icon:u,slideCount:p,showSlideCount:d}=e;const m=(0,r.useCallback)((e=>{t||(e.stopPropagation(),c())}),[c,t]),h=(0,r.useCallback)((e=>{t||(e.stopPropagation(),a())}),[a,t]);return(0,r.createElement)("div",{className:"wp-story-overlay"},d&&(0,r.createElement)("div",{className:"wp-story-embed-icon"},u,(0,r.createElement)("span",null,p)),!d&&(0,r.createElement)("div",{className:"wp-story-embed-icon-expand"},(0,r.createElement)(o(),{role:"img"})),n&&(0,r.createElement)("div",{className:"wp-story-prev-slide",onClick:m},(0,r.createElement)(s.b,{size:44,label:__("Previous Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.Vq,{size:24}):(0,r.createElement)(l.JM,{size:24}))),(0,r.createElement)("div",{className:"wp-story-next-slide",onClick:h},(0,r.createElement)(s.b,{size:44,label:__("Next Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.JM,{size:24}):(0,r.createElement)(l.Vq,{size:24}))))}},58871:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(31158),s=n(29891),l=n(72096);const c=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);function u(e){let{className:t,fullscreenClassName:n,bodyFullscreenClassName:a,fullscreen:u,shadowDOM:p,onKeyDown:d,onExitFullscreen:m,playerQuerySelector:h,children:f}=e;const g=(0,r.useRef)(),b=(0,r.useRef)(),[v,k]=(0,r.useState)(null),y=c&&s.am(),E=u&&!y,w=u&&y;return(0,r.useLayoutEffect)((()=>{if(y)u?g.current&&s.uP(g.current,m):s.bG()&&s.JF();else if(u){if(k([document.documentElement.scrollLeft,document.documentElement.scrollTop]),document.body.classList.add(a),document.getElementsByTagName("html")[0].classList.add(a),b.current){const e=b.current.querySelector(h);e&&e.focus()}}else if(document.body.classList.remove(a),document.getElementsByTagName("html")[0].classList.remove(a),v){window.scrollTo(...v);const e=g.current.querySelector(h);e&&e.focus()}}),[u]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,p,(0,r.createElement)("div",{ref:g,className:o()(t,{[n]:w}),onKeyDown:d},!E&&f)),(0,r.createElement)(l.Z,{className:o()(t,{[n]:E}),isOpened:E,onRequestClose:m,shadowDOM:p,onKeyDown:E&&d,focusOnMount:!1,modalRef:b},E&&f))}},4045:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(9818),o=n(39630),i=(n(66930),n(54616)),s=n(58871);function l(e){let{id:t,slides:n,metadata:l,disabled:c,...u}=e;const p=(0,r.useMemo)((()=>t||Math.random().toString(36)),[t]),{init:d,setEnded:m,setPlaying:h,setFullscreen:f,showSlide:g}=(0,a.useDispatch)("jetpack/story/player"),{playing:b,currentSlideIndex:v,fullscreen:k,isReady:y,playerSettings:E}=(0,a.useSelect)((e=>{const{getCurrentSlideIndex:t,getSettings:n,isFullscreen:r,isPlayerReady:a,isPlaying:o}=e("jetpack/story/player");return a(p)?{playing:o(p),currentSlideIndex:t(p),isReady:!0,fullscreen:r(p),playerSettings:n(p)}:{isReady:!1}}),[p]);(0,r.useEffect)((()=>{y||d(p,{slideCount:n.length,...u})}),[y,p]);const w=(0,r.useCallback)((e=>{switch(e.keyCode){case o.ENTER:if(k)break;case o.SPACE:h(p,!b);break;case o.LEFT:v>0&&g(p,v-1);break;case o.RIGHT:v<n.length-1?g(p,v+1):m(p)}}),[p,v,k,b]),_=(0,r.useCallback)((()=>{f(p,!1)}),[p]);return y?(0,r.createElement)(s.Z,{shadowDOM:E.shadowDOM,className:"wp-story-app",fullscreenClassName:"wp-story-fullscreen",bodyFullscreenClassName:"wp-story-in-fullscreen",playerQuerySelector:".wp-story-container",fullscreen:k,onExitFullscreen:_,onKeyDown:w},(0,r.createElement)(i.Z,{id:p,slides:n,metadata:l,disabled:c})):null}},29891:function(e,t,n){"use strict";n.d(t,{am:function(){return r},bG:function(){return a},uP:function(){return o},JF:function(){return i}});const r=()=>document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled,a=()=>document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullScreenElement,o=(e,t)=>{if((e.requestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen).call(e),t){const e=()=>{document.fullscreenElement||(document.removeEventListener("fullscreenchange",e),t())};document.addEventListener("fullscreenchange",e)}},i=()=>(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen).call(document)},31158:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307);const a=window&&window.Element&&window.Element.prototype.hasOwnProperty("attachShadow");function o(e){let{enabled:t,delegatesFocus:n=!1,mode:o="open",globalStyleElements:s=[],adoptedStyleSheets:l=null,mountOnElement:c=null,children:u}=e;const[p,d]=(0,r.useState)(null),m=c||p,[h,f]=(0,r.useState)(null),g="string"==typeof s?[...document.querySelectorAll(s)]:s,b=a&&t&&g.length>0,v=(0,r.useCallback)((e=>{null!==e&&d(e.parentNode)}),[]);if((0,r.useEffect)((()=>{if(!m)return;if(m.shadowRoot)return void f(m.shadowRoot);const e=m.attachShadow({delegatesFocus:n,mode:o});l&&(e.adoptedStyleSheets=l),f(e)}),[m]),b&&!h)return c?null:(0,r.createElement)("span",{ref:v});const k=(0,r.createElement)(r.Fragment,null,b&&(0,r.createElement)(i,{globalStyleElements:g}),u);return b?(0,r.createPortal)(k,h):k}function i(e){let{globalStyleElements:t}=e;return(0,r.createElement)(r.Fragment,null,t.map(((e,t)=>{let{id:n,tagName:a,attributes:o,innerHTML:i}=e;return"LINK"===a?(0,r.createElement)("link",{key:n||t,id:n,rel:o.rel.value,href:o.href.value}):"STYLE"===a?(0,r.createElement)("style",{key:n||t,id:n},i):void 0})))}},94292:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{const t=(0,r.useRef)(),n=(0,r.useRef)(),a=(0,r.useRef)(e),o=(0,r.useCallback)((e=>{e.touches&&1===e.touches.length&&e.preventDefault()}),[]);return(0,r.useEffect)((()=>{a.current=e}),[e]),{onTouchStart:(0,r.useCallback)((e=>{e.target&&(e.target.addEventListener("touchend",o,{passive:!1}),n.current=e.target),t.current=setTimeout((()=>{a.current&&a.current(!0),t.current=null}),200)}),[]),onTouchEnd:(0,r.useCallback)((e=>{t.current?clearTimeout(t.current):(a.current&&a.current(!1),e.stopPropagation()),n.current&&n.current.removeEventListener("touchend",o)}),[])}}},21531:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)(null),n=(0,r.useRef)(!1),a=(0,r.useRef)(e),o=(0,r.useRef)(e);return o.current=e,(0,r.useLayoutEffect)((()=>{e.forEach(((e,r)=>{const o=a.current[r];"function"==typeof e&&e!==o&&!1===n.current&&(o(null),e(t.current))})),a.current=e}),e),(0,r.useLayoutEffect)((()=>{n.current=!1})),(0,r.useCallback)((e=>{t.current=e,n.current=!0;(e?o.current:a.current).forEach((t=>{"function"==typeof t?t(e):t&&t.hasOwnProperty("current")&&(t.current=e)}))}),[])}},97524:function(e,t,n){"use strict";async function r(e){const t=e.tagName.toLowerCase();if("img"===t){if(e.complete)return;await new Promise((t=>{e.addEventListener("load",t,{once:!0})}))}else if("video"===t||"audio"===t){if(e.HAVE_ENOUGH_DATA===e.readyState)return;await new Promise((t=>{e.addEventListener("canplaythrough",t,{once:!0}),e.addEventListener("load",t,{once:!0}),e.HAVE_NOTHING===e.readyState&&e.networkState!==e.NETWORK_LOADING&&e.load()}))}}n.d(t,{Z:function(){return r}})},82295:function(e,t,n){"use strict";n.d(t,{BM:function(){return s},i1:function(){return l}});var r=n(92819);const a=new Set(["alert","status","log","marquee","timer"]);let o=[],i=!1;function s(e){if(i)return;const t=document.body.children;(0,r.forEach)(t,(t=>{t!==e&&function(e){const t=e.getAttribute("role");return!("SCRIPT"===e.tagName||e.hasAttribute("aria-hidden")||e.hasAttribute("aria-live")||a.has(t))}(t)&&(t.setAttribute("aria-hidden","true"),o.push(t))})),i=!0}function l(){i&&((0,r.forEach)(o,(e=>{e.removeAttribute("aria-hidden")})),o=[],i=!1)}},97790:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(39630),o=n(94333),i=n(21531);function s(e){let{overlayClassName:t,children:n,className:s,focusOnMount:l,shouldCloseOnEsc:c=!0,onRequestClose:u,onKeyDown:p,modalRef:d}=e;const m=(0,o.useFocusOnMount)(l),h=(0,o.useConstrainedTabbing)(),f=(0,o.useFocusReturn)();return(0,r.createElement)("div",{className:t,onKeyDown:function(e){c&&e.keyCode===a.ESCAPE&&(e.stopPropagation(),u&&u(e)),e.target&&"button"===e.target.tagName.toLowerCase()&&e.keyCode===a.SPACE||p&&p(e)}},(0,r.createElement)("div",{className:s,ref:(0,i.Z)([h,f,m,d])},n))}},72096:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333),s=n(31158),l=n(97790),c=n(82295);let u,p=0;const d=()=>{};class m extends o.Component{constructor(e){super(e),this.prepareDOM()}componentDidMount(){p++,1===p&&this.openFirstModal()}componentWillUnmount(){p--,0===p&&this.closeLastModal(),this.cleanDOM()}prepareDOM(){u||(u=document.createElement("div"),document.body.appendChild(u)),this.node=document.createElement("div"),u.appendChild(this.node),this.node.ontouchstart=d,this.node.ontouchend=d}cleanDOM(){u.removeChild(this.node)}openFirstModal(){c.BM(u)}closeLastModal(){c.i1()}render(){const{children:e,isOpened:t,shadowDOM:n,...r}=this.props;return(0,o.createElement)(s.Z,a()({},n,{mountOnElement:this.node}),t&&(0,o.createElement)(l.Z,r,e))}}m.defaultProps={shouldCloseOnEsc:!0,isOpened:!1,focusOnMount:!0},t.Z=(0,i.withInstanceId)(m)},54616:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(92819),c=n(11313),u=n(94333),p=n(65736),d=n(9818),m=n(12378),h=n(96178),f=n(16019),g=n(27870),b=n(94292);const __=p.__;function v(e){let{id:t,slides:n,metadata:r,disabled:i}=e;const{setFullscreen:p,setEnded:v,setPlaying:k,setMuted:y,showSlide:E}=(0,d.useDispatch)("jetpack/story/player"),{playing:w,muted:_,currentSlideIndex:C,currentSlideEnded:j,ended:S,fullscreen:x,settings:T}=(0,d.useSelect)((e=>{const{getCurrentSlideIndex:n,getSettings:r,hasCurrentSlideEnded:a,hasEnded:o,isFullscreen:i,isMuted:s,isPlaying:l}=e("jetpack/story/player");return{playing:l(t),muted:s(t),currentSlideIndex:n(t),currentSlideEnded:a(t),ended:o(t),fullscreen:i(t),settings:r(t)}}),[t]),N=(0,o.useRef)(),[P,A]=(0,o.useState)(null),[I,{width:M,height:B}]=(0,u.useResizeObserver)(),[R,L]=(0,o.useState)(T.defaultAspectRatio),Z=(0,l.some)(n,(e=>(0,c.isBlobURL)(e.url))),F=e=>{E(t,e)},D=(0,o.useCallback)((()=>{i||x||T.playInFullscreen&&!w&&k(t,!0)}),[w,i,x]),{onTouchStart:O,onTouchEnd:z}=(0,b.Z)((e=>{k(t,!e)}),[]),U=(0,o.useCallback)((()=>{C>0&&F(C-1)}),[C]),$=(0,o.useCallback)((()=>{C<n.length-1?F(C+1):v(t)}),[C,n]),V=(0,o.useCallback)((()=>{p(t,!1)}),[]);let G,q;return(0,o.useEffect)((()=>{i&&w&&k(t,!1)}),[i,w]),(0,o.useEffect)((()=>{w&&j&&$()}),[w,j]),(0,o.useLayoutEffect)((()=>{if(!N.current)return;let e=Math.round(T.defaultAspectRatio*N.current.offsetHeight);x&&(e=Math.abs(1-e/M)<T.cropUpTo?M:e),A(e)}),[M,B,x]),(0,o.useLayoutEffect)((()=>{P&&N.current&&N.current.offsetHeight>0&&L(P/N.current.offsetHeight)}),[P]),G=x?[__("You are currently playing a story.","jetpack"),w?__("Press space to pause.","jetpack"):__("Press space to play.","jetpack",0),__("Press escape to exit.","jetpack")].join(" "):__("Play story","jetpack"),q=i?"presentation":x?"dialog":"button",(0,o.createElement)("div",{className:"wp-story-display-contents"},I,(0,o.createElement)("div",{role:q,"aria-label":G,tabIndex:x?-1:0,className:s()("wp-story-container",{"wp-story-with-controls":!i&&!x&&!T.playInFullscreen,"wp-story-fullscreen":x,"wp-story-ended":S,"wp-story-disabled":i,"wp-story-clickable":!i&&!x}),style:{maxWidth:`${P}px`},onClick:D,onTouchStart:O,onTouchEnd:z},(0,o.createElement)(g.h4,a()({},r,{fullscreen:x,onExitFullscreen:V})),(0,o.createElement)("div",{ref:N,className:"wp-story-wrapper"},n.map(((e,n)=>(0,o.createElement)(m.Z,{playerId:t,key:n,media:e,index:n,playing:!i&&w,uploading:Z,settings:T,targetAspectRatio:R})))),(0,o.createElement)(g.aV,{icon:h.Z,slideCount:n.length,showSlideCount:T.showSlideCount,ended:S,hasPrevious:C>0,onPreviousSlide:U,onNextSlide:$}),T.showProgressBar&&(0,o.createElement)(f.ZP,{playerId:t,slides:n,disabled:!x,onSlideSeek:F,maxBullets:x?T.maxBulletsFullscreen:T.maxBullets}),(0,o.createElement)(g.ZX,{playing:w,muted:_,onPlayPressed:()=>k(t,!w),onMutePressed:()=>y(t,!_),showMute:(e=>{const t=e<n.length?n[e]:null;return!!t&&("video"===t.type||(t.mime||"").startsWith("video/"))})(C)})),x&&(0,o.createElement)(g.Aq,{currentMedia:T.blurredBackground&&n.length>C&&n[C]}))}},16019:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(27870),i=n(9818);const s=e=>{let{key:t,playerId:n,index:a,disabled:s,isSelected:l,onClick:c}=e;const u=(0,i.useSelect)((e=>e("jetpack/story/player").getCurrentSlideProgressPercentage(n)),[]);return(0,r.createElement)(o.gT,{key:t,index:a,progress:u,disabled:s,isSelected:l,onClick:c})};t.ZP=e=>{let{playerId:t,slides:n,disabled:l,onSlideSeek:c,maxBullets:u}=e;const{currentSlideIndex:p}=(0,i.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t)})),[]),d=Math.min(n.length,u),m=Math.floor(d/2);let h,f=0,g=n.length-1;return n.length<=u||p<m?(h=p,g=d-1):p>=n.length-m?(h=p-n.length+d,f=n.length-d):(h=m,f=p-m,g=p+m),(0,r.createElement)("div",{className:"wp-story-pagination wp-story-pagination-bullets",role:"tablist"},f>0&&(0,r.createElement)(o.gT,{key:"bullet-0",index:f-1,progress:100,isEllipsis:!0}),(0,a.range)(1,d+1).map(((e,n)=>{const a=n+f;let i=null;if(a<p)i=100;else{if(!(a>p))return(0,r.createElement)(s,{playerId:t,key:`bullet-${n}`,index:a,disabled:l,isSelected:h===n,onClick:()=>c(a)});i=0}return(0,r.createElement)(o.gT,{key:`bullet-${n}`,index:a,progress:i,disabled:l,isSelected:h===n,onClick:()=>c(a)})})),g<n.length-1&&(0,r.createElement)(o.gT,{key:`bullet-${d+1}`,index:g+1,progress:0,isEllipsis:!0}))}},12378:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(97524),s=n(89105),l=n.n(s),c=n(9818),u=n(27870);t.Z=e=>{let{playerId:t,media:n,index:r,playing:s,uploading:p,settings:d,targetAspectRatio:m}=e;const{currentSlideIndex:h,buffering:f}=(0,c.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t),buffering:e("jetpack/story/player").isBuffering(t)})),[]),{slideReady:g}=(0,c.useDispatch)("jetpack/story/player"),b=r===h,v=(0,o.useRef)(null),[k,y]=(0,o.useState)(!1),[E,w]=(0,o.useState)(!0);return(0,o.useEffect)((()=>{if(b&&!E){const e=v.current&&v.current.src&&"video"===v.current.tagName.toLowerCase()?v.current:null;g(t,v.current,e?e.duration:d.imageTime)}}),[b,E]),(0,o.useEffect)((()=>{r<=h+(s?1:0)&&y(!0)}),[s,h]),(0,o.useLayoutEffect)((()=>{v.current&&(0,i.Z)(v.current).then((()=>{w(!1)}))}),[k,p]),(0,o.createElement)(o.Fragment,null,b&&(E||p||f)&&(0,o.createElement)("div",{className:l()("wp-story-slide","is-loading",{transparent:s&&f,"semi-transparent":p||!s&&f})},(0,o.createElement)(u.WB,null)),(0,o.createElement)("div",{role:"figure",className:"wp-story-slide",style:{display:b&&!E?"block":"none"},tabIndex:b?0:-1},k&&(0,o.createElement)(u.pU,a()({},n,{targetAspectRatio:m,cropUpTo:d.cropUpTo,index:r,mediaRef:v}))))}},46192:function(e,t,n){"use strict";function r(e,t){return{type:"SET_MUTED",value:t,playerId:e}}function a(e,t){return{type:"SET_PLAYING",value:t,playerId:e}}function o(e,t){return{type:"SHOW_SLIDE",index:t,playerId:e}}function i(e,t,n){return{type:"SLIDE_READY",mediaElement:t,duration:n,playerId:e}}function s(e,t){return{type:"SET_CURRENT_SLIDE_PROGRESS",value:t,playerId:e}}function l(e){return{type:"RESET_CURRENT_SLIDE_PROGRESS",playerId:e}}function c(e){return{type:"SET_CURRENT_SLIDE_ENDED",playerId:e}}function u(e,t){return{type:"SET_FULLSCREEN",playerId:e,fullscreen:t}}function p(e){return{type:"ENDED",playerId:e}}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:"INIT",playerId:e,settings:t}}function m(e,t){return{type:"SET_BUFFERING",value:t,playerId:e}}n.r(t),n.d(t,{setMuted:function(){return r},setPlaying:function(){return a},showSlide:function(){return o},slideReady:function(){return i},setCurrentSlideProgress:function(){return s},resetCurrentSlideProgress:function(){return l},setCurrentSlideEnded:function(){return c},setFullscreen:function(){return u},setEnded:function(){return p},init:function(){return d},setBuffering:function(){return m}})},58571:function(e,t,n){"use strict";n.d(t,{XO:function(){return r},Qz:function(){return a},H2:function(){return o}});const r={currentTime:0,duration:null,timeout:null,lastUpdate:null},a={progress:r,index:0,mediaElement:null,duration:null,ended:!1,ready:!1},o={slideCount:0,currentSlide:a,previousSlide:null,muted:!1,playing:!1,ended:!1,buffering:!1,fullscreen:!1,settings:{imageTime:5,startMuted:!1,playInFullscreen:!0,playOnNextSlide:!0,playOnLoad:!1,exitFullscreenOnEnd:!0,loadInFullscreen:!1,blurredBackground:!0,showSlideCount:!1,showProgressBar:!0,shadowDOM:{enabled:!0,mode:"open",globalStyleElements:'#jetpack-block-story-css, link[href*="jetpack/_inc/blocks/story/view.css"]'},defaultAspectRatio:.5625,cropUpTo:.2,volume:.8,maxBullets:7,maxBulletsFullscreen:14}}},83566:function(e,t,n){"use strict";var r=n(46192),a=n(96494);const o=e=>e&&e.src&&"video"===e.tagName.toLowerCase();function i(e,t){const{getState:n}=t,r=e.playerId,i=(0,a.isMuted)(n(),r),s=(0,a.isPlaying)(n(),r),l=(0,a.getCurrentMediaElement)(n(),r),c=(0,a.getPreviousSlideMediaElement)(n(),r),u=(0,a.getSettings)(n(),r);o(c)&&(c.currentTime=0,c.onwaiting=null,c.onplaying=null,c.pause()),o(l)&&(i!==l.muted&&(l.muted=i,i||(l.volume=u.volume)),s?l.play():l.pause())}function s(e,t){const{getState:n,dispatch:i}=t,l=e.playerId,c=(0,a.isCurrentSlideReady)(n(),l),u=(0,a.isPlaying)(n(),l),p=(0,a.getCurrentSlideProgress)(n(),l);if(clearTimeout(p.timeout),!u||!c)return void(p.lastUpdate&&i((0,r.setCurrentSlideProgress)(l,{...p,lastUpdate:null})));const d=(0,a.getCurrentMediaElement)(n(),l),m=(0,a.getCurrentMediaDuration)(n(),l),h=p.lastUpdate?Date.now()-p.lastUpdate:100,f=o(d)?d.currentTime:p.currentTime+h/1e3;if(f>=m){i((0,r.setCurrentSlideEnded)(l));const e=(0,a.getSlideCount)(n(),l);(0,a.getCurrentSlideIndex)(n(),l)===e-1&&i((0,r.setEnded)(l))}else i((0,r.setCurrentSlideProgress)(l,{timeout:setTimeout((()=>s(e,t)),100),lastUpdate:Date.now(),duration:m,currentTime:f}))}t.Z={SET_PLAYING:[s,i],SLIDE_READY:[function(e,t){const{getState:n,dispatch:i}=t,s=e.playerId,l=(0,a.getCurrentMediaElement)(n(),s);if(!o(l))return;const c=(0,a.getCurrentSlideProgress)(n(),s);0===l.currentTime&&c.currentTime>0&&(l.currentTime=c.currentTime),l.onwaiting=()=>i((0,r.setBuffering)(s,!0)),l.onplaying=()=>i((0,r.setBuffering)(s,!1))},s,i],SET_MUTED:i,SHOW_SLIDE:i}},66930:function(e,t,n){"use strict";var r=n(9818),a=n(46192),o=n(96494),i=n(36978),s=n(2814);const l=(0,r.registerStore)("jetpack/story/player",{actions:a,reducer:s.Z,selectors:o});(0,i.Z)(l)},36978:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(83566);function s(e){const t=[a()(i.Z)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},2814:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(58571);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.H2,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SHOW_SLIDE":{const n=e.currentSlide===t.index+1;return{...e,currentSlide:{...a.Qz,index:t.index},previousSlide:e.currentSlide,playing:n?e.settings.playOnNextSlide:e.playing}}case"SLIDE_READY":return{...e,buffering:!1,currentSlide:{...e.currentSlide,mediaElement:t.mediaElement,duration:t.duration,ready:!0},previousSlide:null};case"SET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:t.value}};case"SET_CURRENT_SLIDE_ENDED":return{...e,currentSlide:{...e.currentSlide,ended:!0}};case"RESET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:{...a.XO}}};case"SET_MUTED":return{...e,muted:t.value};case"SET_PLAYING":{const n=t.value&&e.ended;return{...e,playing:t.value,buffering:!!t.value&&e.buffering,fullscreen:!e.playing&&t.value?e.settings.playInFullscreen:e.fullscreen,ended:!n&&e.ended,currentSlide:n?{...a.Qz,index:0}:e.currentSlide,previousSlide:n?null:e.previousSlide}}case"SET_BUFFERING":return{...e,buffering:t.value};case"SET_FULLSCREEN":return{...e,fullscreen:t.fullscreen,playing:!(e.fullscreen&&!t.fullscreen&&e.settings.playInFullscreen)&&e.playing};case"INIT":{const n=(0,r.merge)({},e.settings,t.settings);return{...e,settings:n,playing:n.playOnLoad,fullscreen:n.loadInFullscreen}}case"ENDED":return{...e,currentSlide:{...a.Qz,index:e.settings.slideCount-1,progress:{...a.XO,currentTime:100,duration:100}},ended:!0,playing:!1,fullscreen:!e.settings.exitFullscreenOnEnd}}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.playerId?{...e,[t.playerId]:o(e[t.playerId],t)}:e}},96494:function(e,t,n){"use strict";function r(e,t){return!!e[t]}function a(e,t){return e[t].currentSlide.index}function o(e,t){return e[t].currentSlide.progress}function i(e,t){const n=e[t].currentSlide.progress.currentTime,r=e[t].currentSlide.progress.duration,a=Math.round(100*n/r);return a>=100?100:a}function s(e,t){return e[t].playing}function l(e,t){return e[t].muted}function c(e,t){return e[t].buffering}function u(e,t){return e[t].currentSlide.mediaElement}function p(e,t){return e[t].currentSlide.duration}function d(e,t){return e[t].currentSlide.ended}function m(e,t){return e[t].currentSlide.ready}function h(e,t){return e[t].previousSlide?.mediaElement}function f(e,t){return e[t].fullscreen}function g(e,t){return e[t].ended}function b(e,t){return e[t].settings}function v(e,t){return e[t].settings.slideCount}n.r(t),n.d(t,{isPlayerReady:function(){return r},getCurrentSlideIndex:function(){return a},getCurrentSlideProgress:function(){return o},getCurrentSlideProgressPercentage:function(){return i},isPlaying:function(){return s},isMuted:function(){return l},isBuffering:function(){return c},getCurrentMediaElement:function(){return u},getCurrentMediaDuration:function(){return p},hasCurrentSlideEnded:function(){return d},isCurrentSlideReady:function(){return m},getPreviousSlideMediaElement:function(){return h},isFullscreen:function(){return f},hasEnded:function(){return g},getSettings:function(){return b},getSlideCount:function(){return v}})},1436:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:o()("wp-story",t)})}},79885:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"},successMessage:{type:"string",default:__("Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.","jetpack")}}},87138:function(e,t,n){"use strict";n.d(t,{G0:function(){return r},Gp:function(){return a},S9:function(){return o},VF:function(){return i},K3:function(){return s},XJ:function(){return l},xV:function(){return c},bK:function(){return u},HE:function(){return p},Tr:function(){return d},pC:function(){return m},FP:function(){return h},tm:function(){return f}});const r=0,a=50,o=0,i=0,s=15,l=1,c=5,u=50,p=15,d=0,m=50,h=10,f="16px"},45643:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(80790),l=n(87138);const __=a.__;function c(e){let{buttonBackgroundColor:t,borderColor:n,buttonGradient:a,borderRadius:c,borderWeight:u,buttonOnNewLine:p,emailFieldBackgroundColor:d,fallbackButtonBackgroundColor:m,fallbackTextColor:h,fontSize:f,isGradientAvailable:g,padding:b,setAttributes:v,setButtonBackgroundColor:k,setTextColor:y,showSubscribersTotal:E,spacing:w,subscriberCount:_,textColor:C,buttonWidth:j,successMessage:S}=e;return(0,r.createElement)(r.Fragment,null,g&&(0,r.createElement)(i.__experimentalPanelColorGradientSettings,{title:__("Color Settings","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",settings:[{colorValue:t.color,onColorChange:k,gradientValue:a.gradientValue,onGradientChange:a.setGradient,label:__("Button Background Color","jetpack")},{colorValue:C.color,onColorChange:y,label:__("Button Text Color","jetpack")},{colorValue:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!0},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),!g&&(0,r.createElement)(i.PanelColorSettings,{title:__("Background Colors","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",colorSettings:[{value:t.color,onChange:k,label:__("Button Background Color","jetpack")},{value:C.color,onChange:y,label:__("Button Text Color","jetpack")},{value:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!1},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),(0,r.createElement)(o.PanelBody,{title:__("Text Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__textpanel"},(0,r.createElement)(i.FontSizePicker,{withSlider:!0,value:f.size,onChange:e=>{const t=e||l.tm;v({fontSize:t,customFontSize:t})}})),(0,r.createElement)(o.PanelBody,{title:__("Border Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__borderpanel"},(0,r.createElement)(o.RangeControl,{value:c,label:__("Border Radius","jetpack"),min:l.G0,max:l.Gp,initialPosition:l.S9,allowReset:!0,onChange:e=>v({borderRadius:e})}),(0,r.createElement)(o.RangeControl,{value:u,label:__("Border Weight","jetpack"),min:l.VF,max:l.K3,initialPosition:l.XJ,allowReset:!0,onChange:e=>v({borderWeight:e})})),(0,r.createElement)(o.PanelBody,{title:__("Spacing Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__spacingpanel"},(0,r.createElement)(o.RangeControl,{value:b,label:__("Space Inside","jetpack"),min:l.xV,max:l.bK,initialPosition:l.HE,allowReset:!0,onChange:e=>v({padding:e})}),(0,r.createElement)(o.RangeControl,{value:w,label:__("Space Between","jetpack"),min:l.Tr,max:l.pC,initialPosition:l.FP,allowReset:!0,onChange:e=>v({spacing:e})}),(0,r.createElement)(s.h,{width:j,onChange:e=>v({buttonWidth:e})})),(0,r.createElement)(o.PanelBody,{title:__("Display Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__displaypanel"},(0,r.createElement)(o.ToggleControl,{label:__("Show subscriber count","jetpack"),checked:E,onChange:()=>{v({showSubscribersTotal:!E})},help:()=>{if(!_||_<1)return __("This will remain hidden on your website until you have at least one subscriber.","jetpack")}}),(0,r.createElement)(o.ToggleControl,{label:__("Place button on new line","jetpack"),checked:p,onChange:()=>{v({buttonOnNewLine:!p})}})),(0,r.createElement)(o.PanelBody,{title:__("Success Message Text","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__successpanel"},(0,r.createElement)(o.TextareaControl,{value:S,label:__("Success Message Text","jetpack"),hideLabelFromVision:!0,help:__("Save your custom message to display when a user subscribes your website.","jetpack"),onChange:e=>v({successMessage:e})})))}},58363:function(e,t,n){"use strict";var r=n(26233),a=n(80960),o=n(28897),i=n(73300),s=n(56286),l=n(16949);t.Z=[l.Z,s.Z,i.Z,o.Z,a.Z,r.Z]},26233:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(92819);const __=a.__;t.Z={attributes:{subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:e=>({submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal}),isEligible:e=>!(!e.hasOwnProperty("subscribeButton")||!(0,o.isEmpty)(e.subscribeButton)),save:function(e){let{attributes:t}=e;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_subscribers_total="${t.showSubscribersTotal}" show_only_email_and_button="true"]`)}}},80960:function(e,t,n){"use strict";var r=n(65736),a=n(51268);const __=r.__;t.Z={attributes:{subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},migrate:e=>({subscribePlaceholder:e.subscribePlaceholder,showSubscribersTotal:e.showSubscribersTotal,buttonOnNewLine:!0,submitButtonText:e.submitButtonText,buttonBackgroundColor:e.backgroundButtonColor?e.backgroundButtonColor:"primary",customButtonBackgroundColor:e.customBackgroundButtonColor,textColor:e.textButtonColor?e.textButtonColor:"background",customTextColor:e.customTextButtonColor}),save:a.Z}},51268:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{showSubscribersTotal:n,submitButtonClasses:a,customBackgroundButtonColor:o,customTextButtonColor:i,submitButtonText:s}=t;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="${o}" custom_text_button_color="${i}" submit_button_text="${s}" submit_button_classes="${a}" show_subscribers_total="${n}" ]`)}},80929:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Enter your email address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Sign Up","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"number"},customFontSize:{type:"number"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},69283:function(e,t,n){"use strict";n.d(t,{ZP:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(80929);function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const{subscribePlaceholder:o,showSubscribersTotal:l,buttonOnNewLine:c,submitButtonText:u,emailFieldBackgroundColor:p,customEmailFieldBackgroundColor:d,emailFieldGradient:m,customEmailFieldGradient:h,buttonBackgroundColor:f,customButtonBackgroundColor:g,buttonGradient:b,customButtonGradient:v,textColor:k,customTextColor:y,fontSize:E,customFontSize:w,borderRadius:_,borderWeight:C,borderColor:j,customBorderColor:S,padding:x,spacing:T}=t,N=!!a.__experimentalGetGradientClass,P=(0,a.getColorClassName)("color",k),A=(0,a.getFontSizeClass)(E),I=(0,a.getColorClassName)("border-color",j),M=(0,a.getColorClassName)("background-color",f),B=N?(0,a.__experimentalGetGradientClass)(b):void 0,R=(0,a.getColorClassName)("background-color",p),L=N?(0,a.__experimentalGetGradientClass)(m):void 0,Z=i()(0===_?"no-border-radius":void 0,A,I),F=i()(Z,k?"has-text-color":void 0,P,f||b?"has-background":void 0,M,B),D=i()(Z,R,L),O=!R&&h?h:d,z=!M&&v?v:g,U=()=>i()(e,"wp-block-jetpack-subscriptions__supports-newline",c?"wp-block-jetpack-subscriptions__use-newline":void 0,l?"wp-block-jetpack-subscriptions__show-subs":void 0);let $=o,V=u;return"check-text-defaults"===n&&($=o===s.Z.subscribePlaceholder.default?"Enter your email address":o,V=u===s.Z.submitButtonText.default?"Sign Up":u),(0,r.createElement)("div",{className:U()},(0,r.createElement)(r.RawHTML,null,`\n\t\t\t[jetpack_subscription_form\n\t\t\t\tsubscribe_placeholder="${$}"\n\t\t\t\tshow_subscribers_total="${l}"\n\t\t\t\tbutton_on_newline="${c}"\n\t\t\t\tsubmit_button_text="${V}"\n\t\t\t\tcustom_background_emailfield_color="${O}"\n\t\t\t\tcustom_background_button_color="${z}"\n\t\t\t\tcustom_text_button_color="${y}"\n\t\t\t\tcustom_font_size="${w||16}"\n\t\t\t\tcustom_border_radius="${_||0}"\n\t\t\t\tcustom_border_weight="${C||1}"\n\t\t\t\tcustom_border_color="${S}"\n\t\t\t\tcustom_padding="${x||15}"\n\t\t\t\tcustom_spacing="${T||10}"\n\t\t\t\tsubmit_button_classes="${F}"\n\t\t\t\temail_field_classes="${D}"\n\t\t\t\tshow_only_email_and_button="true"\n\t\t\t]`))}},28897:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n)}}},73300:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n,"check-text-defaults")}}},56286:function(e,t,n){"use strict";var r=n(80929),a=n(14556);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:a.ZP}},14556:function(e,t,n){"use strict";n.d(t,{ZP:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(80929);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:N}=n,P=!!a.__experimentalGetGradientClass,A=(0,a.getColorClassName)("color",y),I=(0,a.getFontSizeClass)(w),M=(0,a.getColorClassName)("border-color",S),B=(0,a.getColorClassName)("background-color",g),R=P?(0,a.__experimentalGetGradientClass)(v):void 0,L=(0,a.getColorClassName)("background-color",d),Z=P?(0,a.__experimentalGetGradientClass)(h):void 0,F=i()(0===C?"no-border-radius":void 0,I,M),D=i()(F,y?"has-text-color":void 0,A,g||v?"has-background":void 0,B,R),O=i()(F,L,Z),z=!L&&f?f:m,U=!B&&k?k:b,$={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:z,custom_background_button_color:U,custom_text_button_color:E,custom_font_size:_||16,custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_padding:T||15,custom_spacing:N||10,submit_button_classes:D,email_field_classes:O,show_only_email_and_button:!0},V=(0,s.reduce)($,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${V}]`))}},61798:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},16949:function(e,t,n){"use strict";var r=n(61798),a=n(75799);t.Z={attributes:r.Z,save:a.Z}},75799:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(61798);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:N,buttonWidth:P}=n,A=!!a.__experimentalGetGradientClass,I=(0,a.getColorClassName)("color",y),M=(0,a.getFontSizeClass)(w),B=(0,a.getColorClassName)("border-color",S),R=(0,a.getColorClassName)("background-color",g),L=A?(0,a.__experimentalGetGradientClass)(v):void 0,Z=(0,a.getColorClassName)("background-color",d),F=A?(0,a.__experimentalGetGradientClass)(h):void 0,D=i()(0===C?"no-border-radius":void 0,M,B),O=i()(D,y?"has-text-color":void 0,I,g||v?"has-background":void 0,R,L),z=i()(D,Z,F),U=!Z&&f?f:m,$=!R&&k?k:b,V=P||void 0,G={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:U,custom_background_button_color:$,custom_text_button_color:E,custom_font_size:_||"16px",custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_button_width:V,custom_padding:T||15,custom_spacing:N||10,submit_button_classes:O,email_field_classes:z,show_only_email_and_button:!0},q=(0,s.reduce)(G,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${q}]`))}},73228:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(86989),l=n.n(s),c=n(65736),u=n(55609),p=n(52175),d=n(94333),m=n(79885),h=n(14087),f=n(87138),g=n(45643);const __=c.__,_n=c._n,{getComputedStyle:b}=window,v=!!p.__experimentalUseGradient,k=(0,u.withFallbackStyles)(((e,t)=>{const{buttonBackgroundColor:n,textColor:r}=t,a=n&&n.color,o=r&&r.color,i=e.querySelector(".wp-block-jetpack-subscriptions__button");return{fallbackButtonBackgroundColor:a||!e?void 0:i&&b(i).backgroundColor,fallbackTextColor:o||!e?void 0:i&&b(i).color}}));t.Z=(0,d.compose)([(0,p.withColors)({emailFieldBackgroundColor:"backgroundColor"},{buttonBackgroundColor:"backgroundColor"},{textColor:"color"},"borderColor"),(0,p.withFontSizes)("fontSize"),k])((function(e){const{className:t,attributes:n,setAttributes:a,emailFieldBackgroundColor:s,buttonBackgroundColor:d,setButtonBackgroundColor:b,fallbackButtonBackgroundColor:k,textColor:y,fallbackTextColor:E,setTextColor:w,borderColor:_,fontSize:C}=e,j=(0,h.S)(m.Z,n);(0,i.isEqual)(j,n)||a(j);const{borderRadius:S,borderWeight:x,buttonWidth:T,padding:N,spacing:P,submitButtonText:A,subscribePlaceholder:I,showSubscribersTotal:M,buttonOnNewLine:B,successMessage:R}=j,[L,Z]=(0,r.useState)(""),[F,D]=(0,r.useState)(""),O=v?(0,p.__experimentalUseGradient)({gradientAttribute:"emailFieldGradient",customGradientAttribute:"customEmailFieldGradient"}):{},z=v?(0,p.__experimentalUseGradient)({gradientAttribute:"buttonGradient",customGradientAttribute:"customButtonGradient"}):{},U={"no-border-radius":0===S,[C.class]:C.class,"has-text-color":y.color,[y.class]:y.class},$={...U,"has-background":s.color||O.gradientValue,[s.class]:!O.gradientValue&&s.class,[O.gradientClass]:O.gradientClass},V={...U,"has-background":d.color||z.gradientValue,[d.class]:!z.gradientValue&&d.class,[z.gradientClass]:z.gradientClass},G=e=>e||f.FP,q={color:y.color,borderColor:_.color,borderRadius:S?S+"px":f.S9+"px",borderWidth:x?x+"px":f.XJ+"px",fontSize:C.size?C.size:f.tm,padding:(e=>{const t=e||f.HE;return t+"px "+Math.round(1.5*t)+"px "+t+"px "+Math.round(1.5*t)+"px"})(N)},H={...q,...!s.color&&O.gradientValue?{background:O.gradientValue}:{backgroundColor:s.color}},W={...q,...!d.color&&z.gradientValue?{background:z.gradientValue}:{backgroundColor:d.color},...B?{marginTop:G(P)+"px"}:{marginLeft:G(P)+"px"},width:T};return(0,r.useEffect)((()=>{l()({path:"/wpcom/v2/subscribers/count"}).then((e=>{e.hasOwnProperty("count")?(Z((0,c.sprintf)(
+/* translators: Placeholder is a number of subscribers. */
+_n("Join %s other subscriber","Join %s other subscribers",e.count,"jetpack"),e.count)),D(e.count)):(Z(__("Subscriber count unavailable","jetpack")),D(0))}))}),[]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(p.InspectorControls,null,(0,r.createElement)(g.Z,{buttonBackgroundColor:d,borderColor:_,buttonGradient:z,borderRadius:S,borderWeight:x,buttonOnNewLine:B,emailFieldBackgroundColor:s,fallbackButtonBackgroundColor:k,fallbackTextColor:E,fontSize:C,isGradientAvailable:v,padding:N,setAttributes:a,setButtonBackgroundColor:b,setTextColor:w,showSubscribersTotal:M,spacing:P,subscriberCount:F,textColor:y,buttonWidth:T,successMessage:R})),(0,r.createElement)("div",{className:o()(t,"wp-block-jetpack-subscriptions__supports-newline",B?"wp-block-jetpack-subscriptions__use-newline":void 0,M?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)("div",{className:"wp-block-jetpack-subscriptions__form",role:"form"},(0,r.createElement)(u.TextControl,{placeholder:I,disabled:!0,className:o()($,"wp-block-jetpack-subscriptions__textfield"),style:H}),(0,r.createElement)(p.RichText,{className:o()(V,"wp-block-jetpack-subscriptions__button","wp-block-button__link"),onChange:e=>a({submitButtonText:e}),style:W,value:A,withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic","core/strikethrough"]})),M&&(0,r.createElement)("p",{className:"wp-block-jetpack-subscriptions__subscount"},L)))}))},57211:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(79885),l=n(58363),c=n(73228),u=n(5321),p=n(57535);const __=a.__,_x=a._x,d="subscriptions",m=(0,r.createElement)(o.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.Rect,{x:"4.75",y:"6.75",width:"14.5",height:"10.5",rx:"1.25",stroke:(0,p.m)(),strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(o.Path,{d:"M19 7L13.3609 12.2363C12.5935 12.9489 11.4065 12.9489 10.6391 12.2363L5 7",stroke:(0,p.m)(),strokeWidth:"1.5",strokeLinejoin:"bevel",fill:"none"})),h={title:__("Subscription Form","jetpack"),description:(0,r.createElement)("p",null,__("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:{src:m,foreground:(0,p.m)()},category:"grow",keywords:[_x("subscribe","block search term","jetpack"),_x("join","block search term","jetpack"),_x("follow","block search term","jetpack")],attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"blog_subscription"===t},transform:e=>{let{instance:t}=e;return(0,i.createBlock)("jetpack/subscriptions",{showSubscribersTotal:t.raw.show_subscribers_total,submitButtonText:t.raw.subscribe_button,subscribePlaceholder:t.raw.subscribe_placeholder,successMessage:t.raw.success_message})}}]},example:{attributes:{}},deprecated:l.Z}},5321:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(79885),c=n(87138);function u(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:u,buttonOnNewLine:p,submitButtonText:d,emailFieldBackgroundColor:m,customEmailFieldBackgroundColor:h,emailFieldGradient:f,customEmailFieldGradient:g,buttonBackgroundColor:b,customButtonBackgroundColor:v,buttonGradient:k,customButtonGradient:y,textColor:E,customTextColor:w,fontSize:_,customFontSize:C,borderRadius:j,borderWeight:S,borderColor:x,customBorderColor:T,padding:N,spacing:P,buttonWidth:A,successMessage:I}=n,M=!!a.__experimentalGetGradientClass,B=(0,a.getColorClassName)("color",E),R=(0,a.getFontSizeClass)(_),L=(0,a.getColorClassName)("border-color",x),Z=(0,a.getColorClassName)("background-color",b),F=M?(0,a.__experimentalGetGradientClass)(k):void 0,D=(0,a.getColorClassName)("background-color",m),O=M?(0,a.__experimentalGetGradientClass)(f):void 0,z=i()(0===j?"no-border-radius":void 0,R,L),U=i()(z,E?"has-text-color":void 0,B,b||k?"has-background":void 0,Z,F),$=i()(z,D,O),V=!D&&g?g:h,G=!Z&&y?y:v,q=A||void 0,H={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:u,button_on_newline:p,submit_button_text:d!==l.Z.submitButtonText.default?d:void 0,custom_background_emailfield_color:V,custom_background_button_color:G,custom_text_button_color:w,custom_font_size:C||c.tm,custom_border_radius:j||c.S9,custom_border_weight:S||c.XJ,custom_border_color:T,custom_button_width:q,custom_padding:N||c.HE,custom_spacing:P||c.FP,submit_button_classes:U,email_field_classes:$,show_only_email_and_button:!0,success_message:I},W=(0,s.reduce)(H,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",p?"wp-block-jetpack-subscriptions__use-newline":void 0,u?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${W}]`))}},28526:function(e,t,n){"use strict";n.d(t,{RA:function(){return r},q3:function(){return a},hI:function(){return o},Z5:function(){return i},GP:function(){return s},xJ:function(){return l},sw:function(){return c},EU:function(){return u},yw:function(){return p},P0:function(){return d}});const r=["image"],a=4,o=20,i=20,s=2e3,l="circle",c="columns",u="rectangular",p="square",d=[{isDefault:!0,name:u},{name:l},{name:p},{name:c}]},70132:function(e,t,n){"use strict";var r=n(25689),a=n(47330),o=n(35660);t.Z=[o,a,r]},66105:function(e,t,n){"use strict";n.d(t,{q3:function(){return r},hI:function(){return a},GP:function(){return o},EU:function(){return i},P0:function(){return s}});const r=4,a=20,o=2e3,i="rectangular",s=[{isDefault:!0,name:i},{name:"circle"},{name:"square"},{name:"columns"}]},2589:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(11313);function o(e){const{"aria-label":t,alt:n,height:o,id:i,link:s,linkTo:l,origUrl:c,url:u,width:p}=e;if((0,a.isBlobURL)(c))return null;let d;switch(l){case"media":d=u;break;case"attachment":d=s}const m=(0,r.createElement)("img",{alt:n,"aria-label":t,"data-height":o,"data-id":i,"data-link":s,"data-url":c,"data-width":p,src:u});return(0,r.createElement)("figure",{className:"tiled-gallery__item"},d?(0,r.createElement)("a",{href:d},m):m)}},25689:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return r.Z},attributes:function(){return a},support:function(){return o}});var r=n(19092);const a={align:{default:"center",type:"string"},className:{default:`is-style-${n(66105).EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},o={align:["center","wide","full"],customClassName:!1,html:!1}},43064:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},7696:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},17357:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(40278),o=n(65736),i=n(82827),s=n(11313),l=n(2589),c=n(1077),u=n(47536),p=n(66105);const __=o.__;class d extends r.Component{photonize(e){let{height:t,width:n,url:r}=e;if(!r)return;if((0,s.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;const o=r.split("?",1)[0],l=function(e){const{host:t}=(0,i.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}(r)?h:a.Z,{layoutStyle:c}=this.props;if(m(c)&&n&&t){const e=Math.min(p.GP,n,t);return l(o,{resize:`${e},${e}`})}return l(o)}renderImage(e,t){const{images:n,linkTo:a,selectedImage:i}=this.props,s=(0,o.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,n.length);return(0,r.createElement)(l.Z,{alt:e.alt,"aria-label":s,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:i}=this.props,s=m(i)?u.Z:c.Z,l=this.props.images.map(this.renderImage,this);return(0,r.createElement)("div",{className:n},(0,r.createElement)(s,{align:e,columns:a,images:o,layoutStyle:i,renderedImages:l}),t)}}function m(e){return["circle","square"].includes(e)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:a,port:o,query:s,search:l,...c}=(0,i.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,i.WU)(c)}},1077:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(43064),l=n(7696),c=n(8292),u=n(37335),p=n(54794);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t;(0,u.W)(n).forEach((t=>(0,u.i)(t,e)))}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,i=(0,p.h9)(n),u="columns"===r?(0,p.sv)(i,t):(0,p.T9)(i,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},u.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(s.Z,{key:t},n)}))))))}}},54794:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([P,P,A,P,P]),c=N([P,P,P,A,P,P,P]),u=T([3,1,3],5),p=N([A,P,P,A]),d=T([1,2,1],5),m=N([A,P,P,P]),h=T([1,3],3),f=N([P,P,P,A]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function P(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},37335:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(66105);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){!function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);!function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},8292:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},47536:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8292),i=n(43064),s=n(7696),l=n(66105);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},19092:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(17357),o=n(98085),i=n(66105);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{images:n}=t;if(!n.length)return null;const{align:l,className:c,columns:u=s(t),linkTo:p}=t;return(0,r.createElement)(a.Z,{align:l,className:c,columns:u,images:n,layoutStyle:(0,o.t)(i.P0,c),linkTo:p})}},96470:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},72285:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},47330:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i}});var r=n(96470),a=n(96659);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1}},71410:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},86159:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},15515:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(72285),l=n(56556),c=n(14916),u=n(92805),p=n(96470);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,linkTo:l,layoutStyle:c,selectedImage:p}=this.props,d=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:m,srcSet:h}=(0,u.z)(e,{layoutStyle:c});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":d,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:p===t,key:t,link:e.link,linkTo:l,origUrl:e.url,showMovers:i.length>1,srcSet:h,url:m,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d}=this.props,m=(0,u.v)(s)?c.Z:l.Z,h=this.props.images.map(this.renderImage,this),f=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${f}`]:f>0})},(0,r.createElement)(m,{align:e,columns:a,images:o,layoutStyle:s,renderedImages:h}),t)}}},56556:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(71410),s=n(86159),l=n(8955),c=n(9972);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,u=(0,c.h9)(n),p="columns"===r?(0,c.sv)(u,t):(0,c.T9)(u,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},p.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(i.Z,{key:t},n)}))))))}}},9972:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([P,P,A,P,P]),c=N([P,P,P,A,P,P,P]),u=T([3,1,3],5),p=N([A,P,P,A]),d=T([1,2,1],5),m=N([A,P,P,P]),h=T([1,3],3),f=N([P,P,P,A]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function P(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},8955:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},14916:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8955),i=n(71410),s=n(86159),l=n(96470);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},96659:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(15515),o=n(98085),i=n(96470);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m})}},92805:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(96470);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},30154:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},7214:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},35660:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i},migrate:function(){return s}});var r=n(30154),a=n(2387);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1},s=e=>{const t=Math.pow(10,5);return{...e,columnWidths:e.columnWidths.map((e=>e.map((e=>Math.round(e*t)/t))))}}},62940:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=Math.pow(10,12),o=Math.round(n*a)/a,i=n?{flexBasis:`${o}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:i},t)}},68742:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},62108:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(7214),l=n(34506),c=n(85185),u=n(60185),p=n(30154);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:l,linkTo:c,layoutStyle:p,onMoveBackward:d,onMoveForward:m,onRemoveImage:h,onSelectImage:f,selectedImage:g,setImageAttributes:b}=this.props,v=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:k,srcSet:y}=(0,u.z)(e,{layoutStyle:p});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":v,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:g===t,key:t,link:e.link,linkTo:c,onMoveBackward:l?void 0:d(t),onMoveForward:l?void 0:m(t),onRemove:l?void 0:h(t),onSelect:l?void 0:f(t),origUrl:e.url,setAttributes:l?void 0:b(t),showMovers:i.length>1,srcSet:y,url:k,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,u.v)(s)?c.Z:l.Z,b=this.props.images.map(this.renderImage,this),v=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},34506:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(62940),s=n(68742),l=n(7930),c=n(58174);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:u}=this.props,p=(0,c.h9)(n),d="columns"===r?(0,c.sv)(p,t):(0,c.T9)(p,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(i.Z,{key:n,width:u?.[t]?.[n]},r)}))))))}}},58174:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([P,P,A,P,P]),c=N([P,P,P,A,P,P,P]),u=T([3,1,3],5),p=N([A,P,P,A]),d=T([1,2,1],5),m=N([A,P,P,P]),h=T([1,3],3),f=N([P,P,P,A]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function P(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},7930:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},85185:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(7930),i=n(62940),s=n(68742),l=n(30154);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},2387:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(62108),o=n(98085),i=n(30154);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},60185:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(30154);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},86655:function(e,t,n){"use strict";n.d(t,{F:function(){return v}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(52175),c=n(12238),u=n(55609),p=n(41451),d=n(6624),m=n(28526),h=n(98085),f=n(80349),g=n(58703);const __=i.__,b=[{value:"attachment",label:__("Attachment Page","jetpack")},{value:"media",label:__("Media File","jetpack")},{value:"none",label:__("None","jetpack")}];function v(e){return Math.min(3,e.images.length)}const k=e=>{const t=(0,s.pick)(e,[["alt"],["id"],["link"]]);return t.url=(0,s.get)(e,["sizes","large","url"])||(0,s.get)(e,["media_details","sizes","large","source_url"])||e.url,t};class y extends o.Component{constructor(){super(...arguments),a()(this,"state",{selectedImage:null,changed:void 0===this.props.attributes.columnWidths||0===this.props.attributes.columnWidths?.length}),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],{noticeOperations:n}=this.props;(0,c.mediaUpload)({allowedTypes:m.RA,filesList:e,onFileChange:e=>{const n=e.map((e=>k(e)));this.setAttributes({images:t.concat(n)})},onError:n.createErrorNotice}),this.setState({changed:!0})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,s.filter)(this.props.attributes.images,((t,n)=>e!==n)),{columns:n}=this.props.attributes;this.setState({selectedImage:null,changed:!0}),this.setAttributes({images:t,columns:n?Math.min(t.length,n):n})})),a()(this,"onSelectImage",(e=>()=>{this.state.selectedImage!==e&&this.setState({selectedImage:e})})),a()(this,"onSelectImages",(e=>{const{columns:t}=this.props.attributes;this.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((e=>k(e)))}),this.setState({changed:!0})})),a()(this,"onMove",((e,t)=>{const n=[...this.props.attributes.images];n.splice(t,1,this.props.attributes.images[e]),n.splice(e,1,this.props.attributes.images[t]),this.setState({selectedImage:t,changed:!0}),this.setAttributes({images:n})})),a()(this,"onMoveForward",(e=>()=>{e!==this.props.attributes.images.length-1&&this.onMove(e,e+1)})),a()(this,"onMoveBackward",(e=>()=>{0!==e&&this.onMove(e,e-1)})),a()(this,"onResize",(e=>{this.state.changed&&this.setAttributes({columnWidths:e})})),a()(this,"setColumnsNumber",(e=>this.setAttributes({columns:e}))),a()(this,"setRoundedCorners",(e=>this.setAttributes({roundedCorners:e}))),a()(this,"setImageAttributes",(e=>t=>{const{attributes:{images:n}}=this.props;n[e]&&this.setAttributes({images:[...n.slice(0,e),{...n[e],...t},...n.slice(e+1)]})})),a()(this,"setLinkTo",(e=>this.setAttributes({linkTo:e}))),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files)))}static getDerivedStateFromProps(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}render(){const{selectedImage:e}=this.state,{attributes:t,isSelected:n,className:r,noticeOperations:a,noticeUI:i,setAttributes:s}=this.props,{align:c,columns:k=v(t),imageFilter:y,images:E,linkTo:w,roundedCorners:_}=t,C=(0,o.createElement)(u.DropZone,{onFilesDrop:this.addFiles}),j=(0,o.createElement)(l.BlockControls,null,!!E.length&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.ToolbarGroup,null,(0,o.createElement)(u.ToolbarItem,null,(()=>(0,o.createElement)(l.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:m.RA,multiple:!0,gallery:!0,value:E.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,o.createElement)(g.Z,{label:__("Edit Gallery","jetpack"),onClick:t})}})))),(0,o.createElement)(p.Z,{value:y,onChange:e=>{s({imageFilter:e}),this.setState({selectedImage:null})}})));if(0===E.length)return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.MediaPlaceholder,{icon:(0,o.createElement)(l.BlockIcon,{icon:f.qv}),className:r,labels:{title:__("Tiled Gallery","jetpack"),name:__("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:m.RA,multiple:!0,notices:i,onError:a.createErrorNotice}));const S=(0,h.t)(m.P0,t.className);return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(u.PanelBody,{title:__("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(S)&&E.length>1&&(0,o.createElement)(u.RangeControl,{label:__("Columns","jetpack"),value:k,onChange:this.setColumnsNumber,min:1,max:Math.min(m.hI,E.length)}),S!==m.xJ&&(0,o.createElement)(u.RangeControl,{label:__("Rounded corners","jetpack"),value:_,onChange:this.setRoundedCorners,min:0,max:m.Z5}),(0,o.createElement)(u.SelectControl,{label:__("Link To","jetpack"),value:w,onChange:this.setLinkTo,options:b}))),i,(0,o.createElement)(d.Z,{align:c,className:r,columns:k,imageFilter:y,images:E,layoutStyle:S,linkTo:w,onMoveBackward:this.onMoveBackward,onMoveForward:this.onMoveForward,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,onResize:this.onResize,roundedCorners:_,selectedImage:n?e:null,setImageAttributes:this.setImageAttributes},C,n&&(0,o.createElement)("div",{className:"tiled-gallery__add-item"},(0,o.createElement)(u.FormFileUpload,{multiple:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack")))))}}t.ZP=(0,u.withNotices)(y)},41451:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_x=a._x,i=[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Original","image style","jetpack"),value:void 0},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Black and White","image style","jetpack"),value:"black-and-white"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:_x("Sepia","image style","jetpack"),value:"sepia"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Clarendon","image style","jetpack"),value:"clarendon"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:_x("Gingham","image style","jetpack"),value:"gingham"}],s=__("Pick an image filter","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:s,tooltip:s,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},i.map((e=>{let{icon:i,title:s,value:l}=e;return(0,r.createElement)(o.MenuItem,{className:t===l?"is-active":void 0,icon:i,isSelected:t===l,key:l||"original",onClick:(c=l,()=>{n(t===c?void 0:c),a()}),role:"menuitemcheckbox"},s);var c})))}})}},79906:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(39630),u=n(55609),p=n(11313),d=n(9818),m=n(9512);const __=l.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"img",(0,o.createRef)()),a()(this,"onImageClick",(()=>{this.props.isSelected||this.props.onSelect()})),a()(this,"onImageKeyDown",(e=>{this.img.current===document.activeElement&&this.props.isSelected&&[c.BACKSPACE,c.DELETE].includes(e.keyCode)&&this.props.onRemove()}))}componentDidUpdate(){const{alt:e,height:t,image:n,link:r,url:a,width:o}=this.props;if(n){const i={};!e&&n.alt_text&&(i.alt=n.alt_text),!t&&n.media_details&&n.media_details.height&&(i.height=+n.media_details.height),!r&&n.link&&(i.link=n.link),!a&&n.source_url&&(i.url=n.source_url),!o&&n.media_details&&n.media_details.width&&(i.width=+n.media_details.width),Object.keys(i).length&&this.props.setAttributes(i)}}render(){const{"aria-label":e,alt:t,columns:n,height:r,id:a,imageFilter:i,isFirstItem:l,isLastItem:c,isSelected:d,link:h,linkTo:f,onMoveBackward:g,onMoveForward:b,onRemove:v,origUrl:k,showMovers:y,srcSet:E,url:w,width:_}=this.props;let C;switch(f){case"media":C=w;break;case"attachment":C=h}const j=(0,p.isBlobURL)(k),S=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("img",{alt:t,"aria-label":e,"data-height":r,"data-id":a,"data-link":h,"data-url":k,"data-width":_,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:w,srcSet:j?void 0:E,tabIndex:"0",style:j?{backgroundImage:`url(${k})`}:void 0}),j&&(0,o.createElement)(u.Spinner,null));return(0,o.createElement)("figure",{className:s()("tiled-gallery__item",{"is-selected":d,"is-transient":j,[`filter__${i}`]:!!i})},y&&(0,o.createElement)("div",{className:"tiled-gallery__item__move-menu"},(0,o.createElement)(u.Button,{icon:1===n?m.WO:m.KT,onClick:l?void 0:g,className:"tiled-gallery__item__move-backward",label:__("Move image backward","jetpack"),"aria-disabled":l,disabled:!d}),(0,o.createElement)(u.Button,{icon:1===n?m.xf:m.zz,onClick:c?void 0:b,className:"tiled-gallery__item__move-forward",label:__("Move image forward","jetpack"),"aria-disabled":c,disabled:!d})),(0,o.createElement)("div",{className:"tiled-gallery__item__inline-menu"},(0,o.createElement)(u.Button,{icon:m.xv,onClick:v,className:"tiled-gallery__item__remove",label:__("Remove image","jetpack"),disabled:!d})),C?(0,o.createElement)("a",null,S):S)}}t.Z=(0,d.withSelect)(((e,t)=>{const{getMedia:n}=e("core"),{id:r}=t;return{image:r?n(r):null}}))(h)},97671:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p,"data-amp-layout":"responsive"});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},9512:function(e,t,n){"use strict";n.d(t,{KT:function(){return o},zz:function(){return i},xf:function(){return s},WO:function(){return l},xv:function(){return c}});var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M5 8.70002L10.6 14.4L12 12.9L7.8 8.70002L12 4.50002L10.6 3.00002L5 8.70002Z"})),i=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M13 8.7L7.4 3L6 4.5L10.2 8.7L6 12.9L7.4 14.4L13 8.7Z"})),s=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"})),l=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"})),c=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"-2 -2 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z"}))},80349:function(e,t,n){"use strict";n.d(t,{u2:function(){return S},qv:function(){return x},Xd:function(){return T}});var r=n(69307),a=n(65736),o=n(4981),i=n(92819),s=n(55609),l=n(86655),c=n(57713),u=n(28526),p=n(58014),d=n(57535),m=n(20510),h=n(70132),f=n(96606),g=n(85472),b=n(79009),v=n(10742),k=n(52642),y=n(41145);const __=a.__,_x=a._x,E={[u.EU]:_x("Tiled mosaic","Tiled gallery layout","jetpack"),[u.xJ]:_x("Circles","Tiled gallery layout","jetpack"),[u.sw]:_x("Tiled columns","Tiled gallery layout","jetpack"),[u.yw]:_x("Square tiles","Tiled gallery layout","jetpack")},w=u.P0.map((e=>({...e,label:E[e.name]})));function _(e){return(0,i.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const C={align:{default:"center",type:"string"},className:{default:`is-style-${u.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},j={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:f,width:160,height:95},{alt:"",link:"",url:g,width:160,height:107},{alt:"",link:"",url:b,width:304,height:203},{alt:"",link:"",url:v,width:312,height:207},{alt:"",link:"",url:k,width:152,height:101},{alt:"",link:"",url:y,width:152,height:105}],linkTo:"none"},S="tiled-gallery",x=(0,r.createElement)(s.SVG,{viewBox:"0 0 24 24",width:24,height:24},(0,r.createElement)(s.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),T={attributes:C,category:(0,m.Z)("media","layout"),description:__("Display multiple images in an elegantly organized tiled layout.","jetpack")+((0,p.Wp)()?"":" "+__("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:{src:x,foreground:(0,d.m)()},keywords:[_x("columns","block search term","jetpack"),_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("square","block search term","jetpack"),_x("circle","block search term","jetpack"),_x("mosaic","block search term","jetpack")],styles:w,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:__("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>_(e).length>0,transform:e=>{const t=_(e);return(0,o.createBlock)(`jetpack/${S}`,{images:t.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:e=>{let{images:t}=e;const n=_(t);return n.length>0?(0,o.createBlock)(`jetpack/${S}`,{images:n.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,o.createBlock)(`jetpack/${S}`)}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n,columns:r,linkTo:a}=e;return(0,o.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:e=>{let{align:t,images:n}=e;return n.length>0?n.map((e=>{let{id:n,url:r,alt:a}=e;return(0,o.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):(0,o.createBlock)("core/image")}}]},edit:l.ZP,save:c.Z,deprecated:h.Z,example:{attributes:j}}},64597:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=n?{flexBasis:`${n}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:a},t)}},31766:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},6624:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(79906),l=n(97671),c=n(83958),u=n(92870),p=n(5968),d=n(28526);const __=a.__;class m extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:c,linkTo:u,layoutStyle:d,onMoveBackward:m,onMoveForward:h,onRemoveImage:f,onSelectImage:g,selectedImage:b,setImageAttributes:v}=this.props,k=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),y=c?l.Z:s.Z,{src:E,srcSet:w}=(0,p.z)(e,{layoutStyle:d});return(0,r.createElement)(y,{alt:e.alt,"aria-label":k,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:b===t,key:t,link:e.link,linkTo:u,onMoveBackward:c?void 0:m(t),onMoveForward:c?void 0:h(t),onRemove:c?void 0:f(t),onSelect:c?void 0:g(t),origUrl:e.url,setAttributes:c?void 0:v(t),showMovers:i.length>1,srcSet:w,url:E,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:l,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,p.v)(s)?u.Z:c.Z,b=this.props.images.map(this.renderImage,this),v=s!==d.xJ?Math.min(l,d.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},83958:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(64597),l=n(31766),c=n(92212),u=n(17265),p=n(58731);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t,r=[];(0,u.W)(n).forEach((t=>{r.push((0,u.i)(t,e))})),void 0!==this.props.onResize&&this.props.onResize(r)}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:i}=this.props,u=(0,p.h9)(n),d="columns"===r?(0,p.sv)(u,t):(0,p.T9)(u,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(s.Z,{key:n,width:i?.[t]?.[n]},r)}))))))}}},58731:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([P,P,A,P,P]),c=N([P,P,P,A,P,P,P]),u=T([3,1,3],5),p=N([A,P,P,A]),d=T([1,2,1],5),m=N([A,P,P,P]),h=T([1,3],3),f=N([P,P,P,A]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function P(e){return e>=1&&e<2}function A(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},17265:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(28526);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){return function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);return function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}));return d.map((e=>parseFloat(e/o*100).toFixed(5)))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},92212:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},92870:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(92212),i=n(64597),s=n(31766),l=n(28526);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},57713:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(6624),o=n(86655),i=n(98085),s=n(28526);function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=(0,o.F)(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,i.t)(s.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},5968:function(e,t,n){"use strict";n.d(t,{v:function(){return u},z:function(){return p}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(28526),l=n(58014),c=n(47077);function u(e){return["circle","square"].includes(e)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.width)return e.url?{src:e.url}:{};if((0,c.Z)())return{src:e.url};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url)||(0,l.Ug)()&&(0,l.M6)())return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:p}=e,{layoutStyle:f}=t,g=m(n)||!0===d()?h:r.Z;let b;if(u(f)&&p&&a){const e=Math.min(s.GP,p,a);b=g(n,{resize:`${e},${e}`})}else b=g(n);const v=300,k=600;let y;if(u(f)){const e=Math.min(k,p,a),t=Math.min(s.GP,p,a);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(k,p),t=Math.min(s.GP,p);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:b},y&&{srcSet:y})}function d(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function m(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},96816:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});const r=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}]},71486:function(e,t,n){"use strict";var r=n(70124);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:r.Z,isDeprecation:!0}},70124:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{caption:n,guid:o}=t;if(!o)return null;const i=`https://videopress.com/v/${o}`;return(0,r.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${i}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},4207:function(e,t,n){"use strict";var r=n(30663),a=n(7332);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"},videoPressClassNames:{type:"string"},align:{type:"wide"}},support:{reusable:!1},isEligible:e=>{let{videoPressClassNames:t,guid:n}=e;return n&&void 0===t},migrate:e=>{const{className:t,videoPressClassNames:n}=e;return{...e,...(0,a.a)(t,n)}},save:r.Z,isDeprecation:!0}},30663:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(10198);function i(e){const{attributes:{autoplay:t,caption:n,controls:i,guid:s,loop:l,muted:c,poster:u,preload:p,videoPressClassNames:d}={}}=e;if(!s)return null;const m=(0,o.p)(s,{autoplay:t,controls:i,loop:l,muted:c,poster:u,preload:p});return(0,r.createElement)("figure",{className:d},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${m}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},10198:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,poster:s,preload:l}=t;if(!e)return null;const c={...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{posterUrl:s},..."none"!==l&&{preloadContent:l}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,c)}},7332:function(e,t,n){"use strict";n.d(t,{a:function(){return l}});var r=n(81326),a=n.n(r),o=n(29512),i=n.n(o);const s=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}],l=(e,t)=>{const n=s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1}),r=a()(e,{...n,"wp-block-embed":!1,"is-type-video":!1,"is-provider-videopress":!1}),o=new(i())(r);let l=a()(e,t);return o.forEach((e=>{l=l.replace(e,"")})),{className:r,videoPressClassNames:l.trim()}}},3082:function(e,t,n){"use strict";var r=n(38225);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},videoPressClassNames:{type:"string"}},support:{reusable:!1},isEligible:e=>e.guid,save:r.Z,isDeprecation:!0}},38225:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(14842);function l(e){const{attributes:{autoplay:t,caption:n,controls:o,guid:l,loop:c,muted:u,playsinline:p,poster:d,preload:m,videoPressClassNames:h,className:f,align:g,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k}={}}=e,y=a.useBlockProps.save({className:i()("wp-block-video",f,h,{[`align${g}`]:g})}),E=(0,s.p)(l,{autoplay:t,controls:o,loop:c,muted:u,playsinline:p,poster:d,preload:m,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k});return(0,r.createElement)("figure",y,(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${E}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},14842:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d}=t;if(!e)return null;const m={resizeToParent:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,m)}},6976:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(11313),p=n(55609),d=n(94333),m=n(9818),h=n(52175),f=n(65736),g=n(22607),b=n(41221),v=n(89105),k=n.n(v),y=n(92819),E=n(38341),w=n(45151),_=n(43501),C=n(72905),j=n(9360);const __=f.__,_x=f._x,S=["image"],x=e=>{const{html:t,scripts:n,interactive:r,caption:a,isSelected:o,hideOverlay:i,attributes:l,setAttributes:c}=e,{align:u,className:d,videoPressClassNames:m,maxWidth:f}=l,g=(0,h.useBlockProps)({className:k()("wp-block-video",d,m,{[`align${u}`]:u})});return(0,s.createElement)("figure",g,(0,s.createElement)("div",{className:"wp-block-embed__wrapper"},(0,s.createElement)(p.ResizableBox,{enable:{top:!1,bottom:!1,left:!0,right:!0},maxWidth:"100%",size:{width:f},style:{margin:"auto"},onResizeStop:(e,t,n)=>{let r=getComputedStyle(n).width;if(null!==n.parentElement){r===getComputedStyle(n.parentElement).width&&(r="100%")}c({maxWidth:r})}},(0,s.createElement)(p.SandBox,{html:t,scripts:n,type:m}))),!r&&(0,s.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:i}),(!h.RichText.isEmpty(a)||o)&&(0,s.createElement)(h.RichText,{tagName:"figcaption",placeholder:__("Write caption…","jetpack"),value:a,onChange:e=>c({caption:e}),inlineToolbar:!0}))};t.Z=(0,d.createHigherOrderComponent)((0,d.compose)([(0,m.withSelect)(((e,t)=>{const{autoplay:n,controls:r,guid:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,src:h,useAverageColor:f}=t.attributes,{getEmbedPreview:g,isRequestingEmbedPreview:b}=e("core"),v=(0,w.p)(a,{autoplay:n,controls:r,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,useAverageColor:f}),k=!!v&&g(v);return{isFetchingPreview:!!v&&b(v),isUploading:(0,u.isBlobURL)(h),preview:k,url:v}})),(0,m.withDispatch)((e=>({invalidateCachedEmbedPreview:t=>{e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}))),d.withInstanceId,e=>class extends s.Component{constructor(){super(...arguments),i()(this,"hideOverlay",(()=>{this.setState({interactive:!0})})),i()(this,"setRatingAndAllowDownload",(async()=>{const e=(0,y.get)(this.props,"attributes.id"),t=await this.requestMedia(e);let n=(0,y.get)(t,"jetpack_videopress.rating");const r=(0,y.get)(t,"media_details.videopress.allow_download");n&&("X-18"===n&&(n="R-17"),this.setState({rating:n})),void 0!==r&&this.setState({allowDownload:!!r})})),i()(this,"schedulePreviewCacheReload",(()=>{const{invalidateCachedEmbedPreview:e,url:t}=this.props;null===this.previewCacheReloadTimer&&this.previewFailuresCount<5&&(this.previewFailuresCount++,this.previewCacheReloadTimer=setTimeout((()=>{e(t),this.previewCacheReloadTimer=null}),2e3*this.previewFailuresCount))})),i()(this,"fallbackToCore",(()=>{this.props.setAttributes({guid:void 0}),this.setState({fallback:!0})})),i()(this,"setGuid",(async()=>{const{attributes:e,setAttributes:t}=this.props,{id:n}=e;if(n)try{const e=await this.requestMedia(n);if(null===e)return;const r=(0,y.get)(e,"jetpack_videopress.guid");r?(t({guid:r}),this.setTracks(r)):this.fallbackToCore()}catch(e){this.setState({isFetchingMedia:!1}),this.fallbackToCore()}else t({guid:void 0})})),i()(this,"requestMedia",(async e=>{if(!e)return null;if(null!==this.state.media&&this.state.lastRequestedMediaId===e)return this.state.media;this.setState({isFetchingMedia:!0});const t=await c()({path:`/wp/v2/media/${e}`}).catch((()=>(this.setState({fallback:!0}),null))).finally((()=>{this.setState({isFetchingMedia:!1})})),{id:n}=this.props.attributes;return e!==n?null:(this.setState({media:t,lastRequestedMediaId:e}),t)})),i()(this,"setTracks",(e=>{const{setAttributes:t}=this.props;e&&c()({url:`https://public-api.wordpress.com/rest/v1.1/videos/${e}`,credentials:"omit",global:!0}).then((e=>{const n=[];Object.keys(e.tracks).forEach((t=>{for(const r in e.tracks[t]){const a=e.tracks[t][r];n.push({src:a.src,kind:t,srcLang:r,label:a.label})}})),t({videoPressTracks:n})}))})),i()(this,"switchToEditing",(()=>{this.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),i()(this,"onSelectPoster",(e=>{const{setAttributes:t}=this.props;t({poster:e.url})})),i()(this,"onRemovePoster",(()=>{const{setAttributes:e}=this.props;e({poster:""}),this.posterImageButton.current.focus()})),i()(this,"toggleAttribute",(e=>t=>{this.props.setAttributes({[e]:t})})),i()(this,"getAutoplayHelp",(e=>e?__("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null)),i()(this,"onChangeRating",(e=>{const t=this.state.rating;"X-18"===e&&(e="R-17"),-1!==(0,y.indexOf)(["G","PG-13","R-17"],e)&&this.updateMetaApiCall({rating:e},(()=>this.setState({isUpdatingRating:!0,rating:e})),(()=>this.setState({rating:t})),(()=>this.setState({isUpdatingRating:!1})))})),i()(this,"onChangeAllowDownload",(e=>{const t=this.state.allowDownload;this.updateMetaApiCall({allow_download:e?1:0},(()=>this.setState({isUpdatingAllowDownload:!0,allowDownload:e})),(()=>this.setState({allowDownload:t})),(()=>this.setState({isUpdatingAllowDownload:!1})))})),i()(this,"updateMetaApiCall",((e,t,n,r)=>{const{invalidateCachedEmbedPreview:a,url:o}=this.props,{id:i}=this.props.attributes;if(!i)return;t();const s={id:i};Object.assign(s,e),c()({path:"/wpcom/v2/videopress/meta",method:"POST",data:s}).then((e=>{status in e&&200!==e.status&&n()})).catch((()=>n())).finally((()=>{r(),a(o)}))})),this.state={media:null,isFetchingMedia:!1,fallback:!1,interactive:!1,rating:null,lastRequestedMediaId:null,isUpdatingRating:!1,allowDownload:null,isUpdatingAllowDownload:!1},this.posterImageButton=(0,s.createRef)(),this.previewCacheReloadTimer=null,this.previewFailuresCount=0}static getDerivedStateFromProps(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}async componentDidMount(){const{guid:e}=this.props.attributes;e?this.setTracks(e):await this.setGuid(),this.setRatingAndAllowDownload()}async componentDidUpdate(e){const{attributes:t,invalidateCachedEmbedPreview:n,preview:r,setAttributes:a,url:o,isFetchingPreview:i}=this.props;t.id!==e.attributes.id&&(await this.setGuid(),this.setRatingAndAllowDownload());let s=!1;if(o&&o!==e.url&&(n(o),s=!0),r){const e=(0,_.f)(r.html,k()("wp-block-embed","is-type-video","is-provider-videopress"),!1);this.previewFailuresCount=0,a({videoPressClassNames:e})}else i||s||!this.props.attributes.guid||this.schedulePreviewCacheReload()}getPreloadHelp(){const{attributes:e}=this.props;return"auto"===e.preload?__("Note: Automatically downloading videos may cause issues if there are many videos displayed on the same page.","jetpack"):null}renderControlLabelWithTooltip(e,t){return(0,s.createElement)(p.Tooltip,{text:t,position:"top"},(0,s.createElement)("span",null,e))}render(){const{attributes:t,instanceId:n,isFetchingPreview:r,isUploading:o,preview:i,setAttributes:l}=this.props,{fallback:c,isFetchingMedia:u,isUpdatingRating:d,interactive:m,rating:v,allowDownload:k,isUpdatingAllowDownload:y}=this.state,{autoplay:w,caption:_,controls:T,guid:N,loop:P,muted:A,playsinline:I,poster:M,preload:B,useAverageColor:R,videoPressTracks:L,isVideoPressExample:Z,src:F}=t;if(Z&&F)return(0,s.createElement)("img",{src:F,alt:_});const D=`video-block__poster-image-description-${n}`,O=(0,s.createElement)(s.Fragment,null,(0,s.createElement)(h.BlockControls,{group:"block"},(0,s.createElement)(j.Z,{tracks:L,onChange:e=>{l({videoPressTracks:e})},guid:N})),(0,s.createElement)(h.BlockControls,null,(0,s.createElement)(p.ToolbarGroup,null,(0,s.createElement)(p.ToolbarButton,{className:"components-icon-button components-toolbar__control",label:__("Edit video","jetpack"),onClick:this.switchToEditing,icon:(0,s.createElement)(g.Z,{icon:b.Z})}))),(0,s.createElement)(h.InspectorControls,null,(0,s.createElement)(p.PanelBody,{title:__("Video Settings","jetpack")},(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Autoplay","jetpack"),
+/* translators: Tooltip describing the "autoplay" option for the VideoPress player */
+__("Start playing the video as soon as the page loads","jetpack")),onChange:this.toggleAttribute("autoplay"),checked:w,help:this.getAutoplayHelp}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Loop","jetpack"),
+/* translators: Tooltip describing the "loop" option for the VideoPress player */
+__("Restarts the video when it reaches the end","jetpack")),onChange:this.toggleAttribute("loop"),checked:P}),(0,s.createElement)(p.ToggleControl,{label:__("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:A}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Playback Controls","jetpack"),
+/* translators: Tooltip describing the "controls" option for the VideoPress player */
+__("Display the video playback controls","jetpack")),onChange:this.toggleAttribute("controls"),checked:T}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Play Inline","jetpack"),
+/* translators: Tooltip describing the "playsinline" option for the VideoPress player */
+__("Play the video inline instead of full-screen on mobile devices","jetpack")),onChange:this.toggleAttribute("playsinline"),checked:I}),(0,s.createElement)(p.SelectControl,{label:this.renderControlLabelWithTooltip(__("Preload","jetpack"),
+/* translators: Tooltip describing the "preload" option for the VideoPress player */
+__("Content to dowload before the video is played","jetpack")),value:B,onChange:e=>l({preload:e}),options:[{value:"auto",label:_x("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:_x("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:_x("None","VideoPress preload setting","jetpack")}],help:this.getPreloadHelp()}),(0,s.createElement)(h.MediaUploadCheck,null,(0,s.createElement)(p.BaseControl,{className:"editor-video-poster-control",label:__("Poster Image","jetpack")},(0,s.createElement)(h.MediaUpload,{title:__("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:S,render:e=>{let{open:t}=e;return(0,s.createElement)(p.Button,{isDefault:!0,onClick:t,ref:this.posterImageButton,"aria-describedby":D},M?__("Replace image","jetpack",0):__("Select Poster Image","jetpack"))}}),(0,s.createElement)("p",{id:D,hidden:!0},M?(0,f.sprintf)(
+/* translators: Placeholder is an image URL. */
+__("The current poster image url is %s","jetpack"),M):__("There is no poster image currently selected","jetpack")),!!M&&(0,s.createElement)(p.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},__("Remove Poster Image","jetpack"))))),(0,s.createElement)(C.Z,{attributes:t,setAttributes:l,useAverageColor:R,toggleAttribute:this.toggleAttribute}),(0,s.createElement)(p.PanelBody,{title:__("Video File Settings","jetpack")},(0,s.createElement)(p.SelectControl,{label:_x("Rating","The age rating for this video.","jetpack"),value:v,disabled:u||d,options:[{label:_x("G",'Video rating for "General Audiences".',"jetpack"),value:"G"},{label:_x("PG-13",'Video rating for "Parental Guidance", unsuitable for children under 13.',"jetpack"),value:"PG-13"},{label:_x("R",'Video rating for "Restricted", not recommended for children under 17.',"jetpack"),value:"R-17"}],onChange:this.onChangeRating}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Allow download","jetpack"),
+/* translators: Tooltip describing the "allow download" option for the VideoPress player */
+__("Display download option and allow viewers to download this video","jetpack")),onChange:this.onChangeAllowDownload,checked:k,disabled:u||y})))),z=u||r,U=c||o||!N,$=U&&!o&&!z;if(U)return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",{className:o||z?"":"videopress-block-hide"},(0,s.createElement)(E.Z,{text:o?__("Uploading…","jetpack"):__("Generating preview…","jetpack",0)})),(0,s.createElement)("div",{className:$?"":"videopress-block-hide"},(0,s.createElement)(e,this.props)));const{html:V,scripts:G}=i||{html:null,scripts:null},q=z||!i;return(0,s.createElement)(s.Fragment,null,O,q&&(0,s.createElement)(E.Z,{text:__("Generating preview…","jetpack")}),!q&&(0,s.createElement)(x,a()({},this.props,{hideOverlay:this.hideOverlay,html:V,scripts:G,interactive:m,caption:_})))}}]),"withVideoPressEdit")},38341:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{text:t}=e;return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(a.Spinner,null),(0,r.createElement)("p",null,t))}},64089:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(89105),s=n.n(i),l=n(45151);t.Z=(0,a.createHigherOrderComponent)((e=>t=>{const{attributes:{autoplay:n,caption:a,controls:i,guid:c,loop:u,muted:p,playsinline:d,poster:m,preload:h,videoPressClassNames:f,className:g,align:b,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E,maxWidth:w}={}}=t,_=o.useBlockProps.save({className:s()("wp-block-video",g,f,{[`align${b}`]:b})});if(!c)return e(t);const C=(0,l.p)(c,{autoplay:n,controls:i,loop:u,muted:p,playsinline:d,poster:m,preload:h,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E});let j={};return w&&w.length>0&&"100%"!==w&&(j={maxWidth:w,margin:"auto"}),(0,r.createElement)("figure",_,(0,r.createElement)("div",{className:"wp-block-embed__wrapper",style:j},`\n${C}\n`),!o.RichText.isEmpty(a)&&(0,r.createElement)(o.RichText.Content,{tagName:"figcaption",value:a}))}),"withVideoPressSave")},72905:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=(n(99196),n(55609)),s=n(52175),l=n(65736);const __=l.__;class c extends o.Component{constructor(){super(...arguments),a()(this,"handleChangeSeekbarColor",(e=>{this.setState({seekbarColor:e})})),a()(this,"handleChangeSeekbarLoadingColor",(e=>{this.setState({seekbarLoadingColor:e})})),a()(this,"handleChangeSeekbarPlayedColor",(e=>{this.setState({seekbarPlayedColor:e})})),a()(this,"saveColors",(()=>{const{seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n}=this.state,{setAttributes:r}=this.props;r({seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n})}));const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.props.attributes;this.state={seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}}render(){const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.state,{toggleAttribute:r,useAverageColor:a}=this.props,l=!0;return(0,o.createElement)(i.PanelBody,{className:"seekbar-color-settings__panel",title:__("Progress Bar Colors","jetpack"),initialOpen:!1},(0,o.createElement)(i.ToggleControl,{label:__("Match video","jetpack"),help:__("Colors adapt to the video as it plays","jetpack"),onChange:r("useAverageColor"),checked:a}),(0,o.createElement)(s.PanelColorSettings,{opened:!a,showTitle:!1,colorSettings:[{value:e,onChange:this.handleChangeSeekbarColor,label:__("Main","jetpack"),showTitle:l},{value:n,onChange:this.handleChangeSeekbarLoadingColor,label:__("Loaded","jetpack"),showTitle:l},{value:t,onChange:this.handleChangeSeekbarPlayedColor,label:__("Progress","jetpack"),showTitle:l}]},(0,o.createElement)(i.Button,{variant:"secondary",onClick:this.saveColors},__("Save colors","jetpack"))))}}t.Z=c},9360:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(69307),a=n(86989),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31266),u=n(9818);const __=i.__,p="subtitles",d=".vtt,text/vtt",m=[{label:__("Subtitles","jetpack"),value:"subtitles"},{label:__("Captions","jetpack"),value:"captions"},{label:__("Descriptions","jetpack"),value:"descriptions"},{label:__("Chapters","jetpack"),value:"chapters"},{label:__("Metadata","jetpack"),value:"metadata"}],h=(0,r.createElement)(s.SVG,{width:"18",height:"14",viewBox:"0 0 18 14",role:"img",fill:"none"},(0,r.createElement)(s.Rect,{x:"0.75",y:"0.75",width:"16.5",height:"12.5",rx:"1.25",stroke:"black",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(s.Path,{d:"M3 7H15",stroke:"black",strokeWidth:"1.5"}),(0,r.createElement)(s.Path,{d:"M3 10L15 10",stroke:"black",strokeWidth:"1.5"})),f=()=>"videoPressUploadTrack"in window;function g(e){let{tracks:t,onChange:n,guid:a}=e;const[l=-1,c]=(0,r.useState)(),u=e=>{const r=t[e];c(e),((e,t)=>{if(f())return window.videoPressDeleteTrack(t,e.kind,e.srcLang);const n={method:"POST",path:`/videos/${t}/tracks/delete`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang]]};return o()(n)})(r,a).finally((()=>{n(t.filter(((t,n)=>n!==e))),c(-1)}))};let p;return p=0===t.length?(0,r.createElement)("p",{className:"videopress-block-tracks-editor__tracks-informative-message"},__("Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.","jetpack")):t.map(((e,t)=>(0,r.createElement)("div",{key:t,className:"videopress-block-tracks-editor__track-list-track"},(0,r.createElement)("span",null,e.label),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__track-list-track-delete"},(0,r.createElement)(s.Button,{isLink:!0,isDestructive:!0,onClick:()=>{u(t)},"aria-label":(0,i.sprintf)(
+/* translators: %s: Label of the video text track e.g: "French subtitles" */
+__("Delete %s","jetpack"),e.label),disabled:l===t},l===t?__("Deleting","jetpack"):__("Delete","jetpack",0)))))),(0,r.createElement)(s.MenuGroup,{label:__("Text tracks","jetpack"),className:"videopress-block-tracks-editor__track-list"},p)}function b(e){let{track:t,guid:n,onChange:a,onClose:c,onCancel:h,trackExists:g}=e;const[b,v]=(0,r.useState)(),[k=!1,y]=(0,r.useState)(),{label:E="",srcLang:w="",kind:_=p}=t,C=t.tmpFile?t.tmpFile.name:"";if(!(0,u.useSelect)((e=>e(l.store).getSettings().mediaUpload),[]))return null;return(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor"},(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-label"},__("Edit track","jetpack")),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file"},(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label"},(0,r.createElement)("span",null,__("File","jetpack"),":"),""!==C&&(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label-name"},(0,r.createElement)("strong",null,C)),(0,r.createElement)(l.MediaUploadCheck,null,(0,r.createElement)(s.FormFileUpload,{onChange:e=>{const n=e.target.files;!n.length>0||(t.tmpFile=n[0],a(t))},accept:d,render:e=>{let{openFileDialog:t}=e;return(0,r.createElement)(s.Button,{isLink:!0,onClick:()=>{t()}},""===C?__("Select track","jetpack"):__("Change track","jetpack",0))},disabled:k}))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-help"},
+/* translators: %s: The allowed file types to be uploaded as a video text track." */
+(0,i.sprintf)(__("Allowed formats: %s","jetpack"),d))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-label-language"},(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,label:e}),label:__("Label","jetpack"),value:E,help:__("Title of track","jetpack"),disabled:k}),(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,srcLang:e}),label:__("Source language","jetpack"),value:w,help:__("Language tag (en, fr, etc.)","jetpack"),disabled:k})),(0,r.createElement)(s.SelectControl,{className:"videopress-block-tracks-editor__single-track-editor-kind-select",options:m,value:_,label:
+/* translators: %s: The kind of video text track e.g: "Subtitles, Captions" */
+__("Kind","jetpack"),onChange:e=>{a({...t,kind:e})},disabled:k}),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-buttons-container"},k?(0,r.createElement)(s.Spinner,null):(0,r.createElement)(s.Button,{isSecondary:!0,disabled:!t.tmpFile,onClick:()=>{v(null),""===E&&(t.label=__("English","jetpack")),""===w&&(t.srcLang="en"),void 0===t.kind&&(t.kind=p),g(t)?v(__("A track already exists for that language and kind.","jetpack")):(y(!0),((e,t)=>{if(f())return window.videoPressUploadTrack(t,e.kind,e.srcLang,e.label,e.tmpFile);const n={method:"POST",path:`/videos/${t}/tracks`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang],["label",e.label],["vtt",e.tmpFile]]};return o()(n)})(t,n).then((()=>{a(t),v(null),c()})).catch((e=>{e.message&&v(e.message)})).finally((()=>{y(!1)})))}},__("Save","jetpack")),(0,r.createElement)(s.Button,{isLink:!0,onClick:h},__("Close","jetpack"))),b&&(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-error"},
+/* translators: %s: An error message returned after a failed video track file upload." */
+(0,i.sprintf)(__("Error: %s","jetpack"),b))))}function v(e){let{tracks:t=[],onChange:n,guid:a}=e;const[o,i]=(0,r.useState)(null);return(0,r.createElement)(s.Dropdown,{contentClassName:"videopress-block-tracks-editor",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return(0,r.createElement)(s.ToolbarButton,{label:__("Text tracks","jetpack"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:n,icon:h})},renderContent:()=>null!==o?(0,r.createElement)(b,{track:t[o],guid:a,onChange:e=>{const r=[...t];r[o]=e,n(r)},onClose:()=>i(null),onCancel:()=>{n(t.filter(((e,t)=>t!==o))),i(null)},trackExists:e=>-1!==t.filter(((e,t)=>t!==o)).findIndex((t=>t.kind===e.kind&&t.srcLang===e.srcLang))}):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)(g,{tracks:t,onChange:n,guid:a}),(0,r.createElement)(s.MenuGroup,{className:"videopress-block-tracks-editor__add-tracks-container",label:__("Add tracks","jetpack")},(0,r.createElement)(s.MenuItem,{icon:c.Z,onClick:()=>{(()=>{const e=t.length,r=[...t];r[e]||(r[e]={}),r[e]={...t[e]},n(r),i(e)})()}},__("Upload track","jetpack")))))})}},45151:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d,useAverageColor:m}=t;if(!e)return null;const h={resizeToParent:!0,cover:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d},...m&&{useAverageColor:!0}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,h)}},43501:function(e,t,n){"use strict";n.d(t,{f:function(){return s}});var r=n(96816),a=n(89105),o=n.n(a);const i=e=>{const t=r.s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1});return o()(e,t)};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return i(t);const a=document.implementation.createHTMLDocument("");a.body.innerHTML=e;const s=a.body.querySelector("iframe");if(s&&s.height&&s.width){const e=(s.width/s.height).toFixed(2);for(let n=0;n<r.s.length;n++){const a=r.s[n];if(e>=a.ratio)return o()(i(t),a.className,"wp-has-aspect-ratio")}}return t}},33144:function(e,t,n){"use strict";n.d(t,{U:function(){return i},m:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i="mrec",s=[{height:250,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:__("Rectangle 300x250","jetpack"),tag:i,width:300,editorPadding:30},{height:90,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:__("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:__("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),(0,r.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:__("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}]},67907:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(21762);const __=i.__,l=e=>{let{value:t,onChange:n}=e;return(0,r.createElement)(o.PanelBody,{title:__("Visibility","jetpack")},(0,r.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:!!t,label:__("Hide on mobile","jetpack"),help:__("Hides this block for site visitors on mobile devices.","jetpack"),onChange:n}))};t.Z=e=>{let{attributes:{format:t,hideMobile:n},setAttributes:o}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(s.Z,{value:t,onChange:e=>o({format:e})})),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(l,{value:n,onChange:e=>o({hideMobile:!!e})})))}},7299:function(e,t,n){"use strict";var r=n(69307),a=n(67907),o=n(33144),i=n(72473),s=n(52203),l=n(38511),c=n(80405);t.Z=e=>{let{attributes:t,setAttributes:n}=e;const{format:u}=t,p=o.m.find((e=>{let{tag:t}=e;return t===u}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Z,{attributes:t,setAttributes:n}),(0,r.createElement)("div",{className:`wp-block-jetpack-wordads jetpack-wordads-${u}`},(0,r.createElement)("div",{className:"jetpack-wordads__ad",style:{width:p.width,height:p.height,backgroundImage:`url( ${(e=>{switch(e){case"leaderboard":return s;case"mobile_leaderboard":return l;case"wideskyscraper":return c;default:return i}})(u)} )`,backgroundSize:"cover"}})))}},21762:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(33144);const s=(0,a.__)("Pick an ad format","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.ToolbarGroup,{controls:[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:s,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},i.m.map((e=>{let{tag:i,name:s,icon:l}=e;return(0,r.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:l,isSelected:i===t,key:i,onClick:()=>{n(i),a()},role:"menuitemcheckbox"},s)})))}})}},62086:function(e,t,n){"use strict";n.d(t,{u2:function(){return c},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(7299),s=n(33144),l=n(57535);const __=a.__,_x=a._x,c="wordads",u=__("Ad","jetpack"),p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),d={title:u,description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Earn income by adding high quality ads to your post","jetpack")),(0,r.createElement)(o.ExternalLink,{href:"https://wordads.co/"},__("Learn all about WordAds","jetpack"))),icon:{src:p,foreground:(0,l.m)()},attributes:{align:{type:"string",default:"center"},format:{type:"string",default:s.U},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"earn",keywords:[_x("ads","block search term","jetpack"),"WordAds",_x("advertisement","block search term","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:i.Z,save:()=>null}},81921:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535);const __=a.__,_x=a._x,i={name:"facebook",title:"Facebook",icon:{src:"facebook",foreground:(0,o.m)()},keywords:[_x("social","block search term","jetpack")],description:__("Embed a Facebook post.","jetpack"),patterns:[/^https?:\/\/www\.facebook.com\/.+/i],attributes:{providerNameSlug:"facebook",previewable:!1,responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateFacebookEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations)return e;const n=e.variations.filter((e=>e.name!==i.name));return e.variations=[...n,i],e}))},17269:function(e,t,n){"use strict";n(81921),n(82122),n(19775),n(34034)},82122:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535),i=n(28938);const __=a.__,_x=a._x,s={name:"instagram",title:"Instagram",icon:{src:"instagram",foreground:(0,o.m)()},keywords:[_x("image","block search term","jetpack"),_x("social","block search term","jetpack")],description:__("Embed an Instagram post.","jetpack"),patterns:[/^https?:\/\/(www\.)?instagr(\.am|am\.com)\/.+/i],attributes:{providerNameSlug:"instagram",responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateInstagramEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations||!(0,i.Z)())return e;const n=e.variations.filter((e=>e.name!==s.name));return e.variations=[...n,s],e}))},19775:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"loom",title:"Loom",icon:o.zf,keywords:[__("video","jetpack")],description:__("Embed a Loom video.","jetpack"),patterns:[/^https?:\/\/(www\.)?loom\.com\/share\/.+/i],attributes:{providerNameSlug:"loom",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},34034:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"smartframe",title:"SmartFrame",icon:o.Ae,keywords:[__("smartframe","jetpack")],description:__("Embed a SmartFrame Image.","jetpack"),patterns:[/^https?:\/\/(.*?).smartframe.(io|net)\/.*/i],attributes:{providerNameSlug:"smartframe",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},56771:function(e,t,n){"use strict";var r=n(92694),a=n(4981),o=n(33722);const i={from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"jetpack_widget_social_icons"===t},transform:e=>{let{instance:t}=e,n=[];return t.raw.icons.forEach((e=>{const t=new URL(e.url.includes(":")?e.url:"https://"+e.url),r=t.hostname?t.hostname:t.protocol,i=o.Z.find((e=>r.includes(e.url)||e.url.includes(r))),s=(0,a.createBlock)("core/social-link",{service:i?i.name:"chain",url:e.url});n=[...n,s]})),(0,a.createBlock)("core/social-links",{},n)}}]};(0,r.addFilter)("blocks.registerBlockType","addTransformToSocialLinksWidget",(function(e,t){return"core/social-links"!==t||(e.transforms=i),e}))},33722:function(e,t){"use strict";t.Z=[{name:"wordpress",url:["wordpress."]},{name:"fivehundredpx",url:["500px.com"]},{name:"amazon",url:["amazon."]},{name:"bandcamp",url:["bandcamp.com"]},{name:"behance",url:["behance.net"]},{name:"codepen",url:["codepen.io"]},{name:"deviantart",url:["deviantart.com"]},{name:"dribbble",url:["dribbble.com"]},{name:"dropbox",url:["dropbox.com"]},{name:"etsy",url:["etsy.com"]},{name:"facebook",url:["facebook.com"]},{name:"flickr",url:["flickr.com"]},{name:"foursquare",url:["foursquare.com"]},{name:"goodreads",url:["goodreads.com"]},{name:"google",url:["google."]},{name:"github",url:["github.com"]},{name:"instagram",url:["instagram.com"]},{name:"lastfm",url:["last.fm"]},{name:"linkedin",url:["linkedin.com"]},{name:"mail",url:["mailto:"]},{name:"linkedin",url:["linkedin.com"]},{name:"mastodon",url:["mastodon.social"]},{name:"meetup",url:["meetup.com"]},{name:"medium",url:["medium.com"]},{name:"patreon",url:["patreon.com"]},{name:"pinterest",url:["pinterest."]},{name:"pocket",url:["getpocket.com"]},{name:"reddit",url:["reddit.com"]},{name:"skype",url:["skype.com","skype:"]},{name:"snapchat",url:["snapchat.com"]},{name:"soundcloud",url:["soundcloud.com"]},{name:"spotify",url:["spotify.com"]},{name:"telegram",url:["telegram.me","t.me"]},{name:"tiktok",url:["tiktok.com"]},{name:"tumblr",url:["tumblr.com"]},{name:"twitch",url:["twitch.tv"]},{name:"twitter",url:["twitter.com"]},{name:"vimeo",url:["vimeo.com"]},{name:"vk",url:["vk.com"]},{name:"yelp",url:["yelp.com"]},{name:"youtube",url:["youtube.com"]}]},32630:function(e,t,n){"use strict";n.d(t,{x:function(){return a},L:function(){return o}});var r=n(69307);const a=(0,r.createContext)(),o=e=>{let{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o,children:i}=e;return(0,r.createElement)(a.Provider,{value:{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o},children:i})}},58721:function(e,t,n){"use strict";var r=n(92819),a=n(47701),o=n.n(a),i=n(92694),s=n(65736),l=n(81475),c=n(44298),u=n(32220),p=n(94239),d=n(99199);const __=s.__,m=[];(0,i.addFilter)("blocks.registerBlockType","jetpack/paid-block",((e,t)=>((0,c.X1)(t)&&(m.includes(t)||m.push(t),e.keywords=(0,r.uniq)([...e.keywords,"premium",__("premium","jetpack")]),(0,c.HD)(t)||(e.icon=(0,u.Z)(e.icon)),e.attributes.shouldDisplayFrontendBanner||(e.attributes.shouldDisplayFrontendBanner={type:"boolean",default:!0})),e))),(0,i.addFilter)("editor.BlockListBlock","jetpack/paid-block-with-warning",l.Z),(0,i.addFilter)("editor.MediaPlaceholder","jetpack/paid-block-media-placeholder",p.Z),(0,i.addFilter)("editor.MediaReplaceFlow","jetpack/paid-block-media-placeholder",d.Z),o()((function(){(0,c.FK)()&&document.body.classList.add("jetpack-enable-upgrade-nudge")}))},94239:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n);if(!r?.mediaPlaceholder||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:s}=r,{onError:p}=t,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x),m=(0,o.useCallback)((e=>d(e?.length&&(0,l.Qu)(e[0],s))),[s,d]),h=(0,o.useCallback)((e=>{const t=e?.[0]?.props?.children;return(0,l.Qu)(t,s)?m([t]):p(e)}),[m,s,p]);return(0,o.createElement)("div",{className:"paid-block-media-placeholder"},(0,o.createElement)(e,a()({},t,{onFilesPreUpload:m,onError:h})))}),"withMediaPlaceholderUpgradable")},99199:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n),s=(0,o.useRef)();if(!r?.mediaReplaceFlow||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:p}=r,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x);return(0,o.createElement)(e,a()({},t,{onFilesUpload:e=>{s.current=e?.length?e[0]:null,d(e?.length&&(0,l.Qu)(e[0],p))},createNotice:(e,n,r)=>{if((0,l.Qu)(s.current,p))return s.current=null,null;t.createNotice(e,n,r)}}))}),"withMediaReplaceFlowUpgradable")},25122:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{cx:t=23,cy:n=3,r:o=4,fill:i="#e34c84",stroke:s="#ffffff",strokeWidth:l="2"}=e;return(0,r.createElement)(a.Circle,{className:"jetpack-paid-block-symbol",cx:t,cy:n,r:o,fill:i,stroke:s,strokeWidth:l})}},32220:function(e,t,n){"use strict";n.d(t,{p:function(){return s}});var r=n(69307),a=n(25122),o=n(44298);const i=e=>(e?.src?e={...e,src:(0,r.cloneElement)(e.src,{children:[e.src.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})}:e?.props?.children&&(e=(0,r.cloneElement)(e,{children:[e.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})),e);function s(e,t){return(0,o.X1)(e)?i(t):t}t.Z=i},53283:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(18733),i=n(19356);const __=a.__,s=__("Premium Block","jetpack"),l=__("Upgrade your plan to use this premium block","jetpack"),c=__("Upgrade","jetpack");t.ZP=e=>{let{onRedirect:t,align:n,className:a,title:u=s,description:p=l,buttonText:d=c,visible:m=!0,requiredPlan:h,context:f}=e;const[g,b,v]=(0,o.Z)(h,t);return(0,r.createElement)(i.p,{align:n,buttonText:d,checkoutUrl:g,className:a,context:f,description:p,goToCheckoutPage:b,isRedirecting:v,title:u,visible:m})}},63627:function(e,t,n){"use strict";n.d(t,{v:function(){return a},W:function(){return o}});var r=n(11973);const a=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:t,block:n,context:a})},o=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_banner_impression",{plan:t,block:n,context:a})}},81475:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(94333),c=n(9818),u=n(44298),p=n(53283),d=n(32630),m=n(63627);t.Z=(0,l.createHigherOrderComponent)((e=>t=>{const{name:n,className:r,clientId:i,isSelected:l,attributes:h,setAttributes:f}=t||{},{onChildBannerVisibilityChange:g,hasParentBanner:b}=(0,o.useContext)(d.x)||{},v=(0,u.Rl)(n);if(!v)return(0,o.createElement)(e,t);const k=(0,u.HD)(n),y=(0,u.m3)(n),[E,w]=(0,o.useState)(!k),[_,C]=(0,o.useState)(!1),[j,S]=(0,o.useState)(!1),x="editor-canvas",T=(0,c.useSelect)((e=>e("core/block-editor").hasSelectedInnerBlock(i,!0)),[]),N=(l||T)&&E&&!j,P=(0,o.useMemo)((()=>({plan:v,blockName:n,context:x})),[v,n,x]);(0,o.useEffect)((()=>{N&&C(!0)}),[N,C]),(0,o.useEffect)((()=>{!_&&N&&(0,m.W)(P)}),[_,P,N]),(0,o.useEffect)((()=>w(!k)),[h,w,k]),(0,o.useEffect)((()=>{f({shouldDisplayFrontendBanner:!b})}),[f,b]),(0,o.useEffect)((()=>{g&&g(N||j)}),[N,j,g]);const A=s()(r,{"is-upgradable":N});return(0,o.createElement)(d.L,{onBannerVisibilityChange:w,onChildBannerVisibilityChange:S,hasParentBanner:!0},(0,o.createElement)(p.ZP,{className:`is-${t.name.replace(/\//,"-")}-paid-block`,title:null,align:t?.attributes?.align,visible:N,description:y?.description,requiredPlan:v,context:x,onRedirect:()=>(0,m.v)(P)}),(0,o.createElement)(e,a()({},t,{className:A})))}),"withUpgradeBanner")},5587:function(e,t,n){"use strict";var r=n(69307),a=n(11268),o=n.n(a),i=n(51591);const s=e=>{const{id:t,serviceName:n,label:a,profilePicture:o}=e;return(0,r.createElement)("label",{htmlFor:t,className:"jetpack-publicize-connection-label"},(0,r.createElement)("div",{className:o?"components-connection-icon__picture":""},o&&(0,r.createElement)("img",{src:o,alt:a}),(0,r.createElement)(i.av,{serviceName:n,className:"jetpack-publicize-gutenberg-social-icon"})),(0,r.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a))};s.propTypes={id:o().string.isRequired,serviceName:o().string,label:o().string,profilePicture:o().string},t.Z=s},90342:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(11268),s=n.n(i),l=n(55609),c=n(5587);const u=e=>{const{className:t,checked:n,id:a,disabled:i,onChange:s,serviceName:u,label:p,profilePicture:d}=e,m=o()("components-connection-toggle",{"is-not-checked":!n,"is-disabled":i});return(0,r.createElement)("div",{className:m},(0,r.createElement)(c.Z,{id:a,serviceName:u,label:p,profilePicture:d}),(0,r.createElement)(l.FormToggle,{id:a,className:t,checked:n,onChange:s,disabled:i}))};u.propTypes={className:s().string,checked:s().bool,id:s().string.isRequired,disabled:s().bool,onChange:s().func,serviceName:s().string,label:s().string,profilePicture:s().string},t.Z=u},9580:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(94333),c=n(9818);const __=i.__;class u extends o.Component{constructor(){super(...arguments),a()(this,"refreshConnectionClick",(e=>{const{href:t,title:n}=e.target;e.preventDefault();const r=window.open(t,n,""),a=window.setInterval((()=>{!1!==r.closed&&(window.clearInterval(a),this.props.refreshConnections())}),500)}))}componentDidMount(){this.props.refreshConnections()}renderRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>e.can_refresh));return t.length?(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((e=>(0,o.createElement)(s.Button,{href:e.refresh_url,isSmall:!0,key:e.id,onClick:this.refreshConnectionClick,title:e.refresh_text},e.refresh_text)))):null}renderNonRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>!e.can_refresh));return t.length?t.map((e=>(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,e.test_message)))):null}render(){return(0,o.createElement)(o.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}t.Z=(0,l.compose)([(0,c.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections()}))),(0,c.withDispatch)((e=>({refreshConnections:e("jetpack/publicize").refreshConnectionTestResults})))])(u)},65459:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(9818),c=n(92819),u=n(4235),p=n(90342);const __=i.__;class d extends o.Component{constructor(){super(...arguments),a()(this,"maybeDisplayLinkedInNotice",(()=>this.connectionNeedsReauth()&&(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),(0,o.createElement)(s.ExternalLink,{href:`https://wordpress.com/marketing/connections/${(0,u.Z)()}`},__("Go to Sharing settings","jetpack"))))),a()(this,"connectionNeedsReauth",(()=>(0,c.includes)(this.props.mustReauthConnections,this.props.name))),a()(this,"onConnectionChange",(()=>{const{id:e}=this.props;this.props.toggleConnection(e)}))}connectionIsFailing(){const{failedConnections:e,name:t}=this.props;return e.some((e=>e.service_name===t))}render(){const{disabled:e,enabled:t,id:n,label:r,name:a,profilePicture:i}=this.props,l="connection-"+a+"-"+n,c=a.replace("_","-");let u=(0,o.createElement)(p.Z,{id:l,className:"jetpack-publicize-connection-toggle",checked:t,onChange:this.onConnectionChange,disabled:e,serviceName:c,label:r,profilePicture:i});return(e||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=(0,o.createElement)(s.Disabled,null,u)),(0,o.createElement)("li",null,this.maybeDisplayLinkedInNotice(),(0,o.createElement)("div",{className:"publicize-jetpack-connection-container"},u))}}t.Z=(0,l.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()})))(d)},94552:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65459),i=n(97527),s=n(11230),l=n(69423),c=n(47959);function u(e){let{isPublicizeEnabled:t,isRePublicizeFeatureEnabled:n,isPublicizeDisabledBySitePlan:u}=e;const{connections:p,toggleById:d,hasConnections:m}=(0,l.Z)(),{message:h,updateMessage:f,maxLength:g}=(0,c.Z)();const b=u?a.Disabled:r.Fragment;return(0,r.createElement)(b,null,m&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("ul",{className:"jetpack-publicize__connections-list"},p.map((e=>{let{display_name:a,enabled:i,id:s,service_name:l,toggleable:c,profile_picture:p}=e;return(0,r.createElement)(o.Z,{disabled:n?!t:!c,enabled:i&&!u,key:s,id:s,label:a,name:l,toggleConnection:d,profilePicture:p})})))),!u&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,null),p.some((e=>e.enabled))&&(0,r.createElement)(s.Z,{disabled:!n&&p.every((e=>!e.toggleable)),maxLength:g,onChange:f,message:h})))}},11230:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_n=a._n;function i(e){let{message:t="",onChange:n,disabled:i,maxLength:s}=e;const l=s-t.length;return(0,r.createElement)(o.TextareaControl,{value:t,onChange:n,disabled:i,maxLength:s,placeholder:__("Write a message for your audience here.","jetpack"),rows:4,help:(0,a.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d character remaining","%d characters remaining",l,"jetpack"),l)})}},8425:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(12238),s=n(9818),l=n(9580),c=n(94552),u=n(58933),p=n(69423),d=n(20265),m=n(23731),h=n(99490),f=n(96609);const __=a.__;t.Z=e=>{let{prePublish:t}=e;const{refresh:n,hasConnections:a,hasEnabledConnections:g}=(0,p.Z)(),b=(0,s.useSelect)((e=>e(i.store).isCurrentPostPublished()),[]),{isRePublicizeFeatureEnabled:v,isPublicizeEnabled:k,togglePublicizeFeature:y,isPublicizeDisabledBySitePlan:E,hideRePublicizeFeature:w}=(0,m.Z)(),_=k&&!E;(0,d.M)((function(){g&&n()}),[g,n]);const C=E?o.Disabled:o.PanelRow,j=t?r.Fragment:o.PanelBody,S=t?{}:{title:__("Share this post","jetpack"),className:E?"jetpack-publicize-disabled":""};return(0,r.createElement)(j,S,(0,r.createElement)(f.Z,{isPostPublished:b}),!w&&(0,r.createElement)(r.Fragment,null,v&&!b&&(0,r.createElement)(C,null,(0,r.createElement)(o.ToggleControl,{className:"jetpack-publicize-toggle",label:_&&!E?__("Share when publishing","jetpack"):__("Sharing is disabled","jetpack",0),onChange:y,checked:_,disabled:!a})),(0,r.createElement)(l.Z,null),(0,r.createElement)(c.Z,{isPublicizeEnabled:_,isRePublicizeFeatureEnabled:v,isPublicizeDisabledBySitePlan:E}),!E&&(0,r.createElement)(u.Z,{prePublish:t}),(0,r.createElement)(h.o,null)))}},97527:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(92819),o=n(75031),i=n(65736),s=n(55609),l=n(4235),c=n(69423);const __=i.__;function u(){const{refresh:e}=(0,c.Z)(),t=(0,l.Z)(),n=(0,a.debounce)((function(t){t&&e()}),2e3),i=t?`https://wordpress.com/marketing/connections/${t}`:"options-general.php?page=sharing&publicize_popup=true";return(0,r.createElement)(o.Z,{onChange:n},(0,r.createElement)("div",{className:"jetpack-publicize-add-connection-wrapper"},(0,r.createElement)(s.ExternalLink,{href:i,target:"_blank"},__("Connect an account","jetpack"))))}},99490:function(e,t,n){"use strict";n.d(t,{o:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(53961),l=n(12238),c=n(90732),u=n(69423),p=n(23731);const __=a.__;function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:__("Unable to share the Post","jetpack");const{createErrorNotice:t}=(0,i.dispatch)(s.store);t(e,{id:"publicize-post-share-message"})}function m(){const{hasEnabledConnections:e}=(0,u.Z)(),{isPublicizeEnabled:t}=(0,p.Z)(),{isFetching:n,isError:a,isSuccess:m,doPublicize:h}=(0,c.Z)(),f=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);(0,r.useEffect)((()=>{if(!n)return a?d():void(m&&function(){const{createSuccessNotice:e}=(0,i.dispatch)(s.store);e(__("Post shared","jetpack"),{id:"publicize-post-share-message",type:"snackbar"})}())}),[n,a,m]);const g=!t||!e||!f||n;return(0,r.createElement)(o.Button,{isSecondary:!0,onClick:function(){if(!f)return d(__("You must publish your post before you can share it.","jetpack"));(0,i.dispatch)(s.store).removeNotice("publicize-post-share-message"),h()},disabled:g,isBusy:n},__("Share post","jetpack"))}function h(){const{isRePublicizeFeatureEnabled:e,isRePublicizeUpgradableViaUpsell:t}=(0,p.Z)(),n=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);return e&&n?t?null:(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(m,null)):null}},41093:function(e,t,n){"use strict";n.d(t,{nE:function(){return l},H8:function(){return c}});var r=n(69307),a=n(94333),o=n(9818),i=n(92694),s=n(54802);const l={"core/gallery":{contentAttributes:["images"]},"core/heading":{contentAttributes:["content"]},"core/image":{contentAttributes:["alt","url"]},"core/list":{contentAttributes:["values"]},"core/paragraph":{contentAttributes:["content"]},"core/quote":{contentAttributes:["value","citation"]},"core/separator":{contentAttributes:[]},"core/spacer":{contentAttributes:[]},"core/verse":{contentAttributes:["content"]},"core/video":{contentAttributes:["src"]},"core/embed":{contentAttributes:["url"]},"jetpack/gif":{contentAttributes:["giphyUrl"]}},c=["core/column","core/columns","core/group"];(0,i.addFilter)("blocks.registerBlockType","jetpack/publishing-tweetstorms",(e=>{const{edit:t}=e;return{...e,edit:e=>(0,r.createElement)(s.Z,{ChildEdit:t,childProps:e})}}));t.ZP=(0,a.compose)([(0,o.withSelect)((e=>({isTweetStorm:e("jetpack/publicize").isTweetStorm(),isTyping:e("core/block-editor").isTyping()})))])((e=>{let{isTweetStorm:t,isTyping:n}=e;return t?document.body.classList.add("jetpack-tweetstorm"):document.body.classList.remove("jetpack-tweetstorm"),t&&n?document.body.classList.add("jetpack-tweetstorm-is-typing"):document.body.classList.remove("jetpack-tweetstorm-is-typing"),null}))},58933:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(9818);n(42998);const __=a.__;t.Z=(0,i.compose)([(0,s.withSelect)((e=>{const{isTweetStorm:t,getTweetStorm:n}=e("jetpack/publicize");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),isTweetStorm:t(),tweetStormLength:n().length}})),(0,s.withDispatch)((e=>({setTweetstorm:t=>{e("core/editor").editPost({meta:{jetpack_is_tweetstorm:t}}),t?e("jetpack/publicize").refreshTweets():(e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm"),e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm-line-break"))}})))])((e=>{let{connections:t,isTweetStorm:n,tweetStormLength:a,setTweetstorm:i,prePublish:s}=e;if(!t?.some((e=>"twitter"===e.service_name&&e.enabled)))return null;const l=(e,t)=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,e),(0,r.createElement)("br",null),t),c=[];return a>=102?c.push({id:"jetpack-publicize-twitter-tweetstorm-too-long",status:"error",content:__("Only the first 100 tweets of this post will be published in the Twitter thread.","jetpack"),isDismissible:!1}):a>=22?c.push({id:"jetpack-publicize-twitter-tweetstorm-a-bit-long",status:"warning",content:__("This post will create a Twitter thread more than 20 tweets long.","jetpack"),isDismissible:!1}):s&&a<=2&&c.push({id:"jetpack-publicize-twitter-tweetstorm-too-short",status:"warning",content:__("None of the content in this post could be transformed into tweets, it may be better to share as a single tweet.","jetpack"),isDismissible:!1}),(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(o.RadioControl,{label:__("Twitter settings","jetpack"),selected:n?"tweetstorm":"single",options:[{label:l(__("Single Tweet","jetpack"),__("Share a link to this post to Twitter.","jetpack")),value:"single"},{label:l(__("Twitter Thread","jetpack"),__("Share the content of this post as a Twitter thread.","jetpack")),value:"tweetstorm"}],onChange:e=>{i("tweetstorm"===e)}}),n&&(0,r.createElement)(o.NoticeList,{className:"jetpack-publicize-twitter-options__notices",notices:c}))}))},54802:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(55609),i=n(94333),s=n(9818),l=(n(42998),n(51591));class c extends r.Component{componentDidMount(){const{isTweetStorm:e,updateTweets:t}=this.props;e&&t()}componentDidUpdate(e){const{boundaries:t,childProps:n,currentAnnotations:r,isTweetStorm:o,updateAnnotations:i,updateTweets:s,supportedBlockType:l,contentAttributesChanged:c}=this.props;o&&l&&(c(e.childProps,n)&&s(),r.length===t.filter((e=>["normal","line-break"].includes(e.type))).length&&(0,a.isEqual)(e.boundaries,t)||i())}render(){const{ChildEdit:e,childProps:t,isTweetStorm:n,isSelectedTweetBoundary:a,boundaryStylesSelectors:i,popoverWarnings:s}=this.props;return n?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(e,t),a&&(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider"},(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider-icon"},(0,r.createElement)(l.av,{serviceName:"twitter"})),s.length>0&&(0,r.createElement)(o.Popover,{className:"jetpack-publicize-twitter__tweet-divider-popover",focusOnMount:!1,position:"bottom center"},(0,r.createElement)("ol",null,s.map(((e,t)=>(0,r.createElement)("li",{key:`jetpack-publicize-twitter__tweet-divider-popover-warning-${t}`},e)))))),i&&(0,r.createElement)("style",{type:"text/css"},i.map((e=>`${e}::after {\n\t\t\t\t\t\t\t\tcontent: "";\n\t\t\t\t\t\t\t\tbackground: #0009;\n\t\t\t\t\t\t\t\twidth: 3px;\n\t\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\t\tmargin: 0 1px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.is-dark-theme ${e}::after {\n\t\t\t\t\t\t\t\tbackground: #fff9;\n\t\t\t\t\t\t\t}`)))):(0,r.createElement)(e,t)}}t.Z=(0,i.compose)([(0,s.withSelect)(((e,t)=>{let{childProps:n}=t;const{isTweetStorm:r,getPopoverWarnings:a,getBoundariesForBlock:o,getBoundaryStyleSelectors:i,isSelectedTweetBoundary:s,getSupportedBlockType:l,contentAttributesChanged:c}=e("jetpack/publicize"),u=e("core/annotations").__experimentalGetAllAnnotationsForBlock(n.clientId);return{isTweetStorm:r(),isSelectedTweetBoundary:s(n),boundaries:o(n.clientId),boundaryStylesSelectors:i(n.clientId),popoverWarnings:a(n),currentAnnotations:u,supportedBlockType:l(n.name),contentAttributesChanged:c}})),(0,s.withDispatch)(((e,t,n)=>{let{childProps:r}=t,{select:a}=n;return{updateTweets:()=>e("jetpack/publicize").refreshTweets(),updateAnnotations:()=>{const{contentAttributesChanged:t,getTweetsForBlock:n}=a("jetpack/publicize"),o=n(r.clientId);if(!o||0===o.length)return;if(t(o.reduce(((e,t)=>e||t.blocks.find((e=>e.clientId===r.clientId))),!1),r))return;a("core/annotations").__experimentalGetAllAnnotationsForBlock(r.clientId).forEach((t=>{["jetpack-tweetstorm","jetpack-tweetstorm-line-break"].includes(t.source)&&e("core/annotations").__experimentalRemoveAnnotation(t.id)}));o.filter((e=>e.boundary)).map((e=>e.boundary)).forEach((t=>{const{container:n,type:a,start:o,end:i}=t;"normal"===a?e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm",richTextIdentifier:n,range:{start:o,end:i}}):"line-break"===a&&e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm-line-break",richTextIdentifier:n,range:{start:o,end:i}})}))}}}))])(c)},96609:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(84675),c=n(44298),u=n(18733),p=n(23731),d=n(58014),m=n(69423);const __=i.__;function h(e){let{isPostPublished:t}=e;const{isRePublicizeFeatureEnabled:n,isRePublicizeUpgradableViaUpsell:a,isRePublicizeFeatureAvailable:h,isPublicizeEnabled:f}=(0,p.Z)(),g=(0,c.Rl)("republicize"),[b,v,k,y]=(0,u.Z)(g),{hasConnections:E,hasEnabledConnections:w}=(0,m.Z)(),_=f&&!(a&&n);if(!t||!n||t&&h)return(0,r.createElement)("div",null,function(e,t,n,r,a){const o=__("Start sharing your posts by connecting your social media accounts.","jetpack"),i=__("This post will be shared on all your enabled social media accounts the moment you publish the post.","jetpack");return t?r?n&&a?n&&a&&!e?i:__("Share this post on all your enabled social media accounts by clicking on the share post button.","jetpack"):__("Use this tool to share your post on all your social media accounts.","jetpack"):o:e?o:i}(t,n,_,E,w));const C=y?.product_name||__("paid","jetpack"),j=!(0,d.Ug)()&&!(0,d.Wp)(),S=j?__("Re-sharing your content","jetpack"):__("Share Your Content Again","jetpack",0),x=j?"https://jetpack.com/support/publicize/#re-sharing-your-content":"https://wordpress.com/support/publicize/#share-your-content-again",T=__("Upgrade now","jetpack");return h||a?(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("div",{className:"jetpack-publicize__upsell-description"},(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("To re-share a post, you need to upgrade to the %s plan","jetpack"),C)),(0,r.createElement)(s.Button,{href:k?null:b,onClick:v,target:"_top",icon:l.Z,className:o()("jetpack-publicize__upsell-button is-primary",{"jetpack-upgrade-plan__hidden":!b}),isBusy:k},k?__("Redirecting…","jetpack"):T)):(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("strong",null,S),(0,r.createElement)("br",null),(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("This feature is for sites with a %s plan.","jetpack"),C),(0,r.createElement)("br",null),(0,r.createElement)(s.ExternalLink,{href:x},__("More information.","jetpack")))}},23731:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(9818),a=n(12238),o=n(21409),i=n(44298);const s="republicize";function l(){const{togglePublicizeFeature:e}=(0,r.useDispatch)("jetpack/publicize"),{available:t}=(0,o.Z)(s),n=(0,r.useSelect)((e=>e(a.store).isCurrentPostPublished()),[]),l=(0,r.useSelect)((e=>e("jetpack/publicize").getFeatureEnableState()),[]),c=!!window?.Jetpack_Editor_Initial_State.jetpack?.republicize_enabled,u=(0,i.X1)(s);return{isPublicizeEnabledMeta:l,isRePublicizeFeatureEnabled:c,isPublicizeEnabled:n&&!(u&&c)||l,togglePublicizeFeature:e,isPublicizeDisabledBySitePlan:c&&n&&u,isRePublicizeFeatureAvailable:t,isRePublicizeUpgradableViaUpsell:u,hideRePublicizeFeature:n&&!t&&!u&&c}}},20265:function(e,t,n){"use strict";n.d(t,{M:function(){return s}});var r=n(94333),a=n(12238),o=n(9818),i=n(69307);function s(e,t){const n=(0,o.useSelect)((e=>e(a.store).isPublishingPost()),[]),s=(0,r.usePrevious)(n);(0,i.useEffect)((()=>{s&&!n&&e()}),[n,s,e,t])}},90732:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(86989),a=n.n(r),o=n(9818),i=n(12238),s=n(69307),l=n(65736),c=n(47959),u=n(69423);const __=l.__;function p(e){const t=e?.code,n=e?.errors?.length;if(!t&&!n)return!1;let r="";return t&&(r=__("Unable to share the Post","jetpack")),n&&(r=__("Unable to share the Post","jetpack")),{message:r,result:e}}function d(e){const{message:t}=(0,c.Z)(),{skippedConnections:n}=(0,u.Z)(),r=(0,o.useSelect)((e=>e(i.store).getCurrentPostId()),[]);e=e||r;const[l,d]=(0,s.useState)({data:[],error:{}}),m=(0,s.useCallback)((function(){const r={isFetching:!1,isError:!1,isSuccess:!1,data:[],error:{},postId:e};if(!l.isFetching)return d({...r,isFetching:!0}),a()({path:`/wpcom/v2/posts/${e}/publicize`,method:"POST",data:{message:t,skipped_connections:n}}).then((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=p(e);if(t)return d((e=>({...e,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:t})));d((t=>({...t,isFetching:!1,isSuccess:!0,isError:!1,data:e?.results,error:{}})))})).catch((e=>{d((t=>({...t,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:p(e)})))})),function(){d(r)}}),[e,t,n,l.isFetching]);return{...l,doPublicize:m}}},69423:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(9818);function a(){const{refreshConnectionTestResults:e,toggleConnectionById:t}=(0,r.useDispatch)("jetpack/publicize"),n=(0,r.useSelect)((e=>e("jetpack/publicize").getConnections()),[]),a=n.filter((e=>!e.enabled)).map((e=>e.id));return{connections:n,hasConnections:n.length>0,hasEnabledConnections:n&&n.some((e=>e.enabled)),skippedConnections:a,toggleById:t,refresh:e}}},47959:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(9818),a=n(12238);function o(){const{editPost:e}=(0,r.useDispatch)(a.store),{message:t,maxLength:n}=(0,r.useSelect)((e=>({message:e("jetpack/publicize").getShareMessage(),maxLength:e("jetpack/publicize").getShareMessageMaxLength()})),[]);return{message:t,maxLength:n,updateMessage:function(t){e({meta:{jetpack_publicize_message:t}})}}}},72228:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(72067),i=n(12238),s=(n(64967),n(41093)),l=n(32673),c=n(8425);const __=a.__,u="publicize",p={render:()=>(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"publicize"},(0,r.createElement)(s.ZP,null),(0,r.createElement)(l.Z,null,(0,r.createElement)(c.Z,null)),(0,r.createElement)(o.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:(0,r.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},__("Share this post","jetpack"))},(0,r.createElement)(c.Z,{prePublish:!0})))}},59213:function(e,t,n){"use strict";n.r(t),n.d(t,{refreshConnectionTestResults:function(){return a},toggleConnectionById:function(){return o},togglePublicizeFeature:function(){return i},fetchFromAPI:function(){return s},refreshTweets:function(){return l},setTweets:function(){return c},getTwitterCards:function(){return u},setTwitterCards:function(){return p}});var r=n(9818);function a(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function o(e){return{type:"TOGGLE_CONNECTION_BY_ID",connectionId:e}}function i(){return{type:"TOGGLE_PUBLICIZE_FEATURE"}}function s(e){return{type:"FETCH_FROM_API",path:e}}function l(){return{type:"REFRESH_TWEETS"}}function c(e){return{type:"SET_TWEETS",tweets:e}}function u(e){const{twitterCardIsCached:t}=(0,r.select)("jetpack/publicize");return{type:"GET_TWITTER_CARDS",urls:e.filter((e=>!t(e)))}}function p(e){return{type:"SET_TWITTER_CARDS",cards:e}}},39808:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z={FETCH_FROM_API:e=>{let{path:t}=e;return a()({path:t})}}},94663:function(e,t,n){"use strict";var r=n(92819),a=n(86989),o=n.n(a),i=n(4981),s=n(9818),l=n(12238),c=n(41093);const u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{getSupportedBlockType:t}=(0,s.select)("jetpack/publicize");return(0,r.flatMap)(e,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(e.name)||e.name.startsWith("core-embed/")?e:c.H8.includes(e.name)?u(e.innerBlocks):[]}))};const p=(0,r.throttle)((async function(){const e=(0,s.select)("core/editor").getBlocks(),t=u(e);try{const e=await o()({path:"/wpcom/v2/tweetstorm/parse",data:{blocks:t.map((e=>({attributes:e.attributes,block:(0,i.serialize)(e),clientId:e.clientId})))},method:"POST"}),n=(0,r.flatMap)(e,(e=>e.urls));return(0,s.dispatch)("jetpack/publicize").getTwitterCards(n),(0,s.dispatch)("jetpack/publicize").setTweets(e)}catch(e){}}),2e3,{leading:!0,trailing:!0});t.ZP={REFRESH_CONNECTION_TEST_RESULTS:async function(){try{const e=await o()({path:"/wpcom/v2/publicize/connection-test-results"}),t=(0,s.select)("jetpack/publicize").getConnections(),n=e,r=[],a={done:!1,enabled:!0,toggleable:!0};for(const e of n){const n=t.find((t=>t.id===e.id)),{done:o,enabled:i,toggleable:s}=null!=n?n:a,l={display_name:e.display_name,service_name:e.service_name,id:e.id,profile_picture:e.profile_picture,done:o,enabled:i,toggleable:s};r.push(l)}return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:r})}catch(e){}},TOGGLE_CONNECTION_BY_ID:async function(e){let{connectionId:t}=e;const n=(0,s.select)("jetpack/publicize").getConnections().map((e=>({...e,enabled:e.id===t?!e.enabled:e.enabled})));return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:n})},TOGGLE_PUBLICIZE_FEATURE:async function(){const e=(0,s.select)("jetpack/publicize").getFeatureEnableState();return(0,s.dispatch)(l.store).editPost({meta:{jetpack_publicize_feature_enabled:!e}})},REFRESH_TWEETS:p,GET_TWITTER_CARDS:async function(e){if(0===e.urls.length)return(0,s.dispatch)("jetpack/publicize").setTwitterCards([]);try{const t=await o()({path:"/wpcom/v2/tweetstorm/generate-cards",data:{urls:e.urls},method:"POST"});return(0,s.dispatch)("jetpack/publicize").setTwitterCards(t)}catch(e){}}}},64967:function(e,t,n){"use strict";var r=n(9818),a=n(59213),o=n(62016),i=n(49591),s=n(39808),l=n(44391);const c=(0,r.registerStore)("jetpack/publicize",{actions:a,controls:s.Z,reducer:l.Z,selectors:o});(0,i.Z)(c)},49591:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(94663);function s(e){const t=[a()(i.ZP)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},44391:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r={tweets:[],twitterCards:[]};function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REFRESH_CONNECTION_TEST_RESULTS":case"TOGGLE_CONNECTION_BY_ID":case"TOGGLE_PUBLICIZE_FEATURE":return e;case"SET_TWEETS":return{...e,tweets:t.tweets};case"GET_TWITTER_CARDS":{const n={};return t.urls.forEach((e=>n[e]={error:"loading"})),{...e,twitterCards:{...e.twitterCards,...n}}}case"SET_TWITTER_CARDS":return{...e,twitterCards:{...e.twitterCards,...t.cards}}}return e}},62016:function(e,t,n){"use strict";n.r(t),n.d(t,{getFailedConnections:function(){return u},getMustReauthConnections:function(){return p},getTweetTemplate:function(){return d},getTweetStorm:function(){return m},getFirstTweet:function(){return h},getLastTweet:function(){return f},getSupportedBlockType:function(){return g},getTweetsForBlock:function(){return b},getTwitterCardForURLs:function(){return v},twitterCardIsCached:function(){return k},getShareMessage:function(){return y},getShareMessageMaxLength:function(){return E},isTweetStorm:function(){return w},getBoundariesForBlock:function(){return _},getBoundaryStyleSelectors:function(){return j},checkForTagsInContentAttributes:function(){return S},getPopoverWarnings:function(){return x},isSelectedTweetBoundary:function(){return T},contentAttributesChanged:function(){return N},getConnections:function(){return P},getFeatureEnableState:function(){return A}});var r=n(92819),a=n(19551),o=n(9818),i=n(65736),s=n(12238),l=n(41093);const __=i.__,c="\n\n"+__("A thread ⬇️","jetpack");function u(){return P().filter((e=>!1===e.test_success))}function p(){return P().filter((e=>"must_reauth"===e.test_success)).map((e=>e.service_name))}function d(e){const t=(e.connections||P())?.find((e=>"twitter"===e.service_name));return{date:Date.now(),name:t?.profile_display_name||__("Account Name","jetpack"),profileImage:t?.profile_picture||"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:t?.display_name||""}}function m(e){const t=d(e),n=[h(e),...e.tweets.slice(0,100).map((n=>({...t,text:n.text,media:n.media,tweet:n.tweet,urls:n.urls,card:v(e,n.urls)})))];return n.length>1&&n.push(f(e)),n}function h(e){if(!(0,o.select)("core"))return;const t=d(e),{getMedia:n}=(0,o.select)("core"),{getEditedPostAttribute:r}=(0,o.select)("core/editor"),a=r("featured_media"),i=r("link"),s=a&&n(a),l=s?.media_details?.sizes?.large?.source_url||s?.source_url;return{...t,text:y()+` ${i}`,urls:[i],card:{title:r("title"),description:r("meta")?.advanced_seo_description||r("excerpt")||r("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:i,image:l,type:l?"summary_large_image":"summary"}}}function f(e){if(!(0,o.select)("core/editor"))return;const{getEditedPostAttribute:t}=(0,o.select)("core/editor"),n=t("link"),r=e.tweets.length>100?__("The rest of this thread can be read here:","jetpack"):__("This thread can be read here:","jetpack");return{...h(e),text:`${r} ${n}`}}function g(e,t){if(l.nE[t])return l.nE[t]}const b=(0,a.Z)(((e,t)=>e.tweets.filter((e=>!!e.blocks.find((e=>e.clientId===t))))),(e=>[e.tweets]));function v(e,t){if(t)return t.reduce(((t,n)=>t||(e.twitterCards[n]&&!e.twitterCards[n].error?{url:n,...e.twitterCards[n]}:void 0)),void 0)}function k(e,t){return!!e.twitterCards[t]}function y(){const{getEditedPostAttribute:e}=(0,o.select)("core/editor"),t=e("meta"),n=e("title"),a=(0,r.get)(t,["jetpack_publicize_message"],"");return a?a.substr(0,E()):w()&&n?n.substr(0,E())+c:""}function E(){return w()?255-c.length:255}function w(){return!!(0,o.select)("core/editor").getEditedPostAttribute("meta")?.jetpack_is_tweetstorm}const _=(0,a.Z)(((e,t)=>{if(!w())return[];const n=b(e,t);return n&&0!==n.length?n.filter((e=>e.boundary)).map((e=>e.boundary)):[]}),(e=>[e.tweets]));function C(e,t){if(`block-${t}`===e.id)return`#block-${t}`;const n=e.parentNode,r=Array.prototype.indexOf.call(n.children,e);return C(n,t)+` > :nth-child( ${r+1} )`}const j=(0,a.Z)(((e,t)=>{const n=_(e,t),r=document.getElementById(`block-${t}`);return n.filter((e=>"end-of-line"===e.type)).map((e=>{if(!r)return!1;const n=r.getElementsByTagName("li").item(e.line);return!!n&&C(n,t)})).filter((e=>!!e))}),(e=>[e.tweets]));function S(e,t,n){if(0===n.length)return!1;if(!g(0,t.name)?.contentAttributes)return!1;const r=new RegExp(`<(${n.join("|")})( |>|/>)`,"gi");return g(0,t.name).contentAttributes.reduce(((e,n)=>!!e||r.test(t.attributes[n])),!1)}const x=(0,a.Z)(((e,t)=>{const{isTyping:n,isDraggingBlocks:r,isMultiSelecting:a,hasMultiSelection:i,isCaretWithinFormattedText:s}=(0,o.select)("core/block-editor");if(!w())return[];if(n()||r()||a()||i()||s())return[];const c=[];return g(0,t.name)||l.H8[t.name]?("core/gallery"===t.name&&t.attributes.images.length>4&&c.push(__("Twitter displays the first four images.","jetpack")),S(0,t,["strong","bold","em","i","sup","sub","span","s"])&&c.push(__("Twitter removes all text formatting.","jetpack")),S(0,t,["a"])&&c.push(__("Links will be posted seperately.","jetpack"))):c.push(__("This block is not exportable to Twitter","jetpack")),c}),(e=>[e.tweets]));function T(e,t){const{isBlockSelected:n}=(0,o.select)("core/block-editor");if(!w())return!1;const r=g(0,t.name),a=b(e,t.clientId);if(!a||0===a.length)return!1;const i=a[a.length-1];return n(t.clientId)&&!r||i.blocks[i.blocks.length-1].clientId===t.clientId&&a.some((e=>e.blocks.some((e=>n(e.clientId)))))}function N(e,t,n){const a=g(0,n.name);if(!a)return!1;const o=a.contentAttributes;return!(0,r.isEqual)(o.map((e=>({attribute:e,content:t.attributes[e]}))),o.map((e=>({attribute:e,content:n.attributes[e]}))))}function P(){return(0,o.select)(s.store).getEditedPostAttribute("jetpack_publicize_connections")||[]}function A(){const{getEditedPostAttribute:e}=(0,o.select)(s.store),t=e("meta");return(0,r.get)(t,["jetpack_publicize_feature_enabled"],!0)}},60756:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65736),i=n(12238),s=n(9818),l=n(23539);const __=o.__;function c(e){let{checked:t,onChange:n}=e;return(0,r.createElement)(a.CheckboxControl,{label:__("Show sharing buttons.","jetpack"),checked:t,onChange:e=>{n({jetpack_sharing_enabled:e})}})}function u(){const e=(0,s.useSelect)((e=>e(i.store).getEditedPostAttribute("jetpack_sharing_enabled")),[]),{editPost:t}=(0,s.useDispatch)(i.store);return(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},(0,r.createElement)(l.Z,null,(0,r.createElement)(c,{checked:e,onChange:t})))}},91994:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(60756);const a="sharing",o={render:r.Z}},71420:function(e,t,n){"use strict";n.d(t,{K:function(){return a}});var r=n(55609);const a=(0,r.withFallbackStyles)(((e,t)=>{const{textColor:n,backgroundColor:r}=t,a=r&&r.color,o=n&&n.color;return{fallbackBackgroundColor:a||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:o||!e?void 0:getComputedStyle(e).color}}))},6757:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(51591),s=n(58014);const __=o.__;(0,s.Wp)()||(0,s.Ug)()||(0,a.registerBlockCollection)("jetpack",{title:"Jetpack",icon:(0,r.createElement)(i.IM,null)}),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"earn"!==t})),{slug:"earn",title:__("Earn","jetpack"),icon:(0,r.createElement)(i.IM,null)}]),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"grow"!==t})),{slug:"grow",title:__("Grow","jetpack"),icon:(0,r.createElement)(i.IM,null)}])},87929:function(e,t,n){"use strict";function r(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}function a(e){const{currentWindow:t}=r(e);return"editor-canvas"===t.name&&t.self!==t.top}function o(e){try{return!!e?.parent?.location.href}catch(e){return!1}}function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];if(!t||!e&&!e.length||!a(t))return i;const{currentDoc:s,currentWindow:l}=r(t);if(!o(l))return i;const c=l?.parent?.document;return s&&c?(i=e.filter((e=>{const t=c.querySelector(e),r=!!s.querySelector(e);return!(!t||r)&&(s.head.appendChild(t.cloneNode()),n&&t.remove(),!0)})),i):void 0}function s(e,t,n){const a=`${window.Jetpack_Block_Assets_Base_Url.url}editor-assets`,{currentDoc:o}=r(n),i=o.getElementsByTagName("head")[0];e.forEach((e=>{const[n,r]=e.file.split("/").pop().split(".");if("css"===r){if(o.getElementById(e.id))return;const t=o.createElement("link");t.id=e.id,t.rel="stylesheet",t.href=`${a}/${n}-${e.version}.${r}`,i.appendChild(t)}if("js"===r){const s=t[e.id]?t[e.id]:null;if(o.getElementById(e.id))return s();const l=o.createElement("script");l.id=e.id,l.type="text/javascript",l.src=`${a}/${n}-${e.version}.${r}`,l.onload=s,i.appendChild(l)}}))}function l(e,t){return new Promise((n=>{const r=()=>{e[t]?n(e[t]):e.requestAnimationFrame(r)};r()}))}n.d(t,{bL:function(){return r},DT:function(){return i},Pp:function(){return s},Dz:function(){return l}})},57535:function(e,t,n){"use strict";n.d(t,{m:function(){return i}});var r=n(27655),a=n(58014);const o=r.O["Jetpack Green 40"];function i(){return(0,a.Ug)()||(0,a.Wp)()?null:o}},98085:function(e,t,n){"use strict";n.d(t,{t:function(){return i}});var r=n(29512),a=n.n(r),o=n(92819);function i(e,t){const n=function(e,t){for(const n of new(a())(t).values()){if(-1===n.indexOf("is-style-"))continue;const t=n.substring(9),r=(0,o.find)(e,{name:t});if(r)return r}return(0,o.find)(e,"isDefault")}(e,t);return n?n.name:null}},70609:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609);const __=i.__,_x=i._x;class l extends o.Component{constructor(){super(...arguments),a()(this,"state",{hasCopied:!1}),a()(this,"onCopy",(()=>this.setState({hasCopied:!0}))),a()(this,"onFinishCopy",(()=>this.setState({hasCopied:!1}))),a()(this,"onFocus",(e=>e.target.select()))}render(){const{link:e}=this.props,{hasCopied:t}=this.state;return e?(0,o.createElement)("div",{className:"jetpack-clipboard-input"},(0,o.createElement)(s.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),(0,o.createElement)(s.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?__("Copied!","jetpack"):_x("Copy","verb","jetpack"))):null}}t.Z=l},68039:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r=/^#?[A-Fa-f0-9]{6}$/;function a(e){return r.test(e)}},92924:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(25158),s=n(15111);const __=o.__,l="undefined"!=typeof _wpmejsSettings?_wpmejsSettings:{};function c(e,t,n){const r=document.createElement("div");r.className=e;const a=document.createElement("button");return a.innerText=t,a.addEventListener("click",n),a.setAttribute("aria-label",t),a.setAttribute("title",t),r.appendChild(a),r}t.Z=function(e){let{trackSource:t,onPlay:n,onPause:o,onError:u,onTimeChange:p,onSkipForward:d,onJumpBack:m,currentTime:h,playStatus:f=s._5,onMetadataLoaded:g,loadWhenReady:b=!1,preload:v="metadata"}=e;const k=(0,r.useRef)(),y=()=>{k.current.play().catch((()=>{}))},E=()=>{k.current.pause(),(0,i.speak)(__("Paused","jetpack"),"assertive")};return(0,r.useEffect)((()=>{MediaElementPlayer.prototype._setResponsiveMode||(MediaElementPlayer.prototype._setResponsiveMode=MediaElementPlayer.prototype.setResponsiveMode,MediaElementPlayer.prototype.setResponsiveMode=function(){const e=this;e.getElement(e.container).parentNode&&e._setResponsiveMode()})}),[]),(0,r.useEffect)((()=>{const e=k.current;e.preload=v;const t=new MediaElementPlayer(e,{...l,success:()=>b&&e?.load()});if(m||d){const e=`${t.options.classPrefix}button ${t.options.classPrefix}jump-button`;if(m){const n=`${e} ${t.options.classPrefix}jump-backward-button`;t.addControlElement(c(n,__("Jump Back","jetpack"),m),"jumpBackwardButton")}if(d){const n=`${e} ${t.options.classPrefix}skip-forward-button`;t.addControlElement(c(n,__("Skip Forward","jetpack"),d),"skipForwardButton")}}return n&&e.addEventListener("play",n),o&&e.addEventListener("pause",o),u&&e.addEventListener("error",u),g&&e.addEventListener("loadedmetadata",g),()=>{t.remove(),n&&e.removeEventListener("play",n),o&&e.removeEventListener("pause",o),u&&e.removeEventListener("error",u),g&&e.removeEventListener("loadedmetadata",g)}}),[n,o,u,m,d,g,b,v]),(0,r.useEffect)((()=>{const[e,t]=!1===k.current?.paused?[s.Wp,E]:[s._5,y],n=(0,a.debounce)(t,100);return s.Vy!==f&&e!==f&&n(),()=>{n.cancel()}}),[k,f,t]),(0,r.useEffect)((()=>{if(!p)return;const e=k.current,t=(0,a.throttle)((e=>p(e)),1e3,{leading:!0,trailing:!1}),n=e=>t(e.target.currentTime);return p&&e?.addEventListener("timeupdate",n),()=>{t.cancel(),e?.removeEventListener("timeupdate",n)}}),[k,p]),(0,r.useEffect)((()=>{const e=k.current;h&&e&&Math.abs(Math.floor(h-e.currentTime))>1&&(e.currentTime=h)}),[k,h]),(0,r.createElement)("div",{className:"jetpack-audio-player"},(0,r.createElement)("audio",{src:t,ref:k}))}},62475:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(52175),l=n(37930);function c(e){let{blockName:t,buttonLabel:n,href:a,icon:c,onClick:u,subtitle:p,title:d,className:m}=e;const{autosaveAndRedirect:h}=(0,l.Z)(a);return(0,r.createElement)(s.Warning,{actions:a&&[(0,r.createElement)(i.Button,{href:a,onClick:e=>{e.preventDefault(),u(t),h(e)},target:"_top",isSecondary:!0,isLarge:!0},n)],className:o()(m,"jetpack-block-nudge wp-block")},(0,r.createElement)("span",{className:"jetpack-block-nudge__info"},c,(0,r.createElement)("span",{className:"jetpack-block-nudge__text-container"},(0,r.createElement)("span",{className:"jetpack-block-nudge__title"},d),p&&(0,r.createElement)("span",{className:"jetpack-block-nudge__message"},p))))}},72566:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(4981),l=n(52175),c=n(55609),u=n(9818),p=n(39630),d=n(65736);const __=d.__,m=e=>{let{attributes:t,styleOption:n,viewportWidth:a,blockName:o}=e;const i=(0,s.getBlockType)(o);return(0,r.createElement)(l.BlockPreview,{viewportWidth:a,blocks:(c=i.example?(0,s.getBlockFromExample)(o,{attributes:{...i.example.attributes,style:n.value},innerBlocks:i.example.innerBlocks}):(0,s.createBlock)(o,t),{...c,attributes:{...c.attributes,__isBlockPreview:!0}})});var c},h=r.memo?(0,r.memo)(m,((e,t)=>(0,i.isEqual)(e,t))):m;function f(e){let t,{attributes:n,clientId:a,styleOptions:i,onSelectStyle:s,activeStyle:d,viewportWidth:m,title:f}=e;return u.useSelect&&(t=(0,u.useSelect)((e=>{const{getBlock:t}=e("core/block-editor");return t(a)}))),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(l.BlockControls,null,(0,r.createElement)(c.ToolbarGroup,{isCollapsed:!0,icon:"admin-appearance",label:__("Style","jetpack"),controls:i.map((e=>({title:e.label,isActive:e.value===d,onClick:()=>s({style:e.value})}))),popoverProps:{className:"jetpack-block-styles-selector-toolbar"}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.PanelBody,{title:f||__("Styles","jetpack")},(0,r.createElement)("div",{className:"block-editor-block-styles jetpack-block-styles-selector"},i.map((e=>{const a={...n,style:e.value};return(0,r.createElement)("div",{key:e.value,className:o()("block-editor-block-styles__item",{"is-active":e.value===d}),onClick:()=>{s({style:e.value})},onKeyDown:t=>{p.ENTER!==t.keyCode&&p.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},(0,r.createElement)("div",{className:"block-editor-block-styles__item-preview"},e.preview?e.preview:u.useSelect&&t&&(0,r.createElement)(h,{blockName:t.name,styleOption:e,attributes:a,viewportWidth:m})),(0,r.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))}))))))}},37837:function(e,t,n){"use strict";n.d(t,{m:function(){return m}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(9818),l=n(65736),c=n(51591),u=n(15111),p=n(98017);const __=l.__;function d(e){let{skipForwardTime:t=5,jumpBackTime:n=5,playIcon:a="controls-play",pauseIcon:l="controls-pause",jumpBackIcon:d=c.Qv,skipForwardIcon:m=c._z,currenTimeDisplay:h=!0,onTimestampClick:f}=e;const{playerState:g,mediaCurrentTime:b,defaultMediaSource:v,mediaDomReference:k}=(0,s.useSelect)((e=>{const{getMediaSourceCurrentTime:t,getMediaPlayerState:n,getDefaultMediaSource:r,getMediaSourceDuration:a,getMediaSourceDomReference:o}=e(u.tT);return{playerState:n(),mediaCurrentTime:t(),mediaDuration:a(),defaultMediaSource:r(),mediaDomReference:o()}}),[]),y=(0,p.H)(b),E=!v,{toggleMediaSource:w,setMediaSourceCurrentTime:_}=(0,s.useDispatch)(u.tT);function C(e){!function(e){k&&(k.currentTime=e),_(v.id,e)}(e),k&&(k.currentTime=e)}return(0,r.createElement)(r.Fragment,null,!1!==n&&(0,r.createElement)(i.ToolbarButton,{icon:d,isDisabled:E,onClick:()=>C(b-n),label:__("Jump back","jetpack")}),(0,r.createElement)(i.ToolbarButton,{icon:g===u._5?a:l,isDisabled:E,onClick:function(){w(v.id)},label:__("Play","jetpack")}),t&&(0,r.createElement)(i.ToolbarButton,{icon:m,isDisabled:E,onClick:()=>C(b+t),label:__("Skip forward","jetpack")}),h&&(0,r.createElement)(i.ToolbarButton,{className:o()("media-player-control__current-time",{"is-disabled":E}),label:__("Set timestamp","jetpack"),onClick:()=>f(b)},y))}function m(e){return(0,r.createElement)(i.ToolbarGroup,{className:"media-player-control__toolbar"},(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(d,e))))}},98017:function(e,t,n){"use strict";n.d(t,{H:function(){return r},i:function(){return a}});const r=mejs.Utils.secondsToTimeCode,a=mejs.Utils.timeCodeToSeconds},38205:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609);const s=i.NumberControl||i.__experimentalNumberControl||function(e){return(0,o.createElement)(i.TextControl,a()({type:"number",inputMode:"numeric"},e))};t.Z=s},43393:function(e,t,n){"use strict";var r=n(69307),a=n(35381),o=n.n(a),i=n(65736),s=n(11973),l=n(62475),c=n(2368);const __=i.__,u=e=>{let{blockName:t,url:n}=e;return(0,r.createElement)(l.Z,{className:"jetpack-stripe-nudge__banner",buttonLabel:__("Connect","jetpack"),icon:(0,r.createElement)(o(),{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:n,onClick:()=>{s.Z.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:t})},title:__("Connect to Stripe to use this block on your site","jetpack"),subtitle:__("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})};t.Z=e=>{let{blockName:t,postId:n,stripeConnectUrl:a}=e;const o=(0,c.Z)(n,a);return o?(0,r.createElement)(u,{blockName:t,url:o}):null}},19356:function(e,t,n){"use strict";n.d(t,{p:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=e=>{let{align:t,className:n,title:a,description:s,buttonText:l,visible:c=!0,context:u,checkoutUrl:p,goToCheckoutPage:d,isRedirecting:m=!1}=e;const h=o()(n,"jetpack-upgrade-plan-banner",{"wp-block":"editor-canvas"===u,"block-editor-block-list__block":"editor-canvas"===u,"jetpack-upgrade-plan__hidden":!c}),f=__("Redirecting…","jetpack");return(0,r.createElement)("div",{className:h,"data-align":t},(0,r.createElement)("div",{className:"jetpack-upgrade-plan-banner__wrapper"},a&&(0,r.createElement)("strong",{className:o()("banner-title",{[`${n}__title`]:n})},a),s&&(0,r.createElement)("span",{className:`${n}__description banner-description`},s),(0,r.createElement)(i.Button,{href:m?null:p,onClick:d,target:"_top",className:o()("is-primary",{"jetpack-upgrade-plan__hidden":!p}),isBusy:m},m?f:l)))}},13180:function(e,t,n){"use strict";var r=n(9818);const a={setPlans:e=>({type:"SET_PLANS",plans:e}),fetchFromAPI:e=>({type:"FETCH_FROM_API",url:e})};(0,r.registerStore)("wordpress-com/plans",{reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return"SET_PLANS"===t.type?t.plans:e},actions:a,selectors:{getPlan:(e,t)=>e.find((e=>e.product_slug===t))},controls:{FETCH_FROM_API(e){let{url:t}=e;return fetch(t).then((e=>e.json()))}},resolvers:{*getPlan(){const e=yield a.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");return a.setPlans(e)}}})},41362:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return void 0!==r.createBlocksFromInnerBlocksTemplate?(0,r.createBlocksFromInnerBlocksTemplate)(e):e.map((e=>{const t=Array.isArray(e)?e:[e.name,e.attributes,e.innerBlocks],[n,o,i=[]]=t;return(0,r.createBlock)(n,o,a(i))}))}},17882:function(e,t,n){"use strict";n.d(t,{ck:function(){return o},Xy:function(){return i},hj:function(){return s},vs:function(){return l},Vm:function(){return c}});var r=n(75139),a=n(92819);const o={USD:.5,AUD:.5,BRL:.5,CAD:.5,CHF:.5,DKK:2.5,EUR:.5,GBP:.3,HKD:4,INR:.5,JPY:50,MXN:10,NOK:3,NZD:.5,PLN:2,SEK:3,SGD:.5},i=Object.keys(o).map((e=>{const{symbol:t}=(0,r.X)(e);return{value:e,label:t===e?e:`${e} ${(0,a.trimEnd)(t,".")}`}}));function s(e){return o[e]}function l(e,t){return!isNaN(t)&&t>=s(e)}function c(e,t){return e?"number"==typeof e?e:(e=parseFloat(e.replace(new RegExp("\\"+r.M[t].grouping,"g"),"").replace(new RegExp("\\"+r.M[t].decimal,"g"),".")),isNaN(e)?null:e):null}},58703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{label:t,onClick:n}=e;return(0,r.createElement)(a.Button,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},99418:function(e,t,n){"use strict";n.d(t,{iT:function(){return i},wk:function(){return s},oI:function(){return l},Tu:function(){return c},OG:function(){return u},tY:function(){return p},h9:function(){return d},CY:function(){return m},Wm:function(){return h},Qh:function(){return f},Bb:function(){return g},En:function(){return b},yD:function(){return v},QU:function(){return k},zs:function(){return y},l5:function(){return E}});var r=n(65736),a=n(69771),o=n(92819);const __=r.__,i="google_photos",s="pexels",l="recent",c="/",u=[{value:l,label:__("Photos","jetpack")},{value:c,label:__("Albums","jetpack")}],p=[{value:"",
+/* translators: category of images */
+label:__("All categories","jetpack")},{value:"animals",
+/* translators: category of images */
+label:__("Animals","jetpack")},{value:"arts",
+/* translators: category of images */
+label:__("Arts","jetpack")},{value:"birthdays",
+/* translators: category of images */
+label:__("Birthdays","jetpack")},{value:"cityscapes",
+/* translators: category of images */
+label:__("Cityscapes","jetpack")},{value:"crafts",
+/* translators: category of images */
+label:__("Crafts","jetpack")},{value:"fashion",
+/* translators: category of images */
+label:__("Fashion","jetpack")},{value:"food",
+/* translators: category of images */
+label:__("Food","jetpack")},{value:"flowers",
+/* translators: category of images */
+label:__("Flowers","jetpack")},{value:"gardens",
+/* translators: category of images */
+label:__("Gardens","jetpack")},{value:"holidays",
+/* translators: category of images */
+label:__("Holidays","jetpack")},{value:"houses",
+/* translators: category of images */
+label:__("Houses","jetpack")},{value:"landmarks",
+/* translators: category of images */
+label:__("Landmarks","jetpack")},{value:"landscapes",
+/* translators: category of images */
+label:__("Landscapes","jetpack")},{value:"night",
+/* translators: category of images */
+label:__("Night","jetpack")},{value:"people",
+/* translators: category of images */
+label:__("People","jetpack")},{value:"pets",
+/* translators: category of images */
+label:__("Pets","jetpack")},{value:"selfies",
+/* translators: category of images */
+label:__("Selfies","jetpack")},{value:"sport",
+/* translators: category of images */
+label:__("Sport","jetpack")},{value:"travel",
+/* translators: category of images */
+label:__("Travel","jetpack")},{value:"weddings",
+/* translators: category of images */
+label:__("Weddings","jetpack")}],d=["mountain","ocean","river","clouds","pattern","abstract","sky"],m="ANY",h="LAST_7_DAYS",f="LAST_30_DAYS",g="LAST_6_MONTHS",b="LAST_12_MONTHS",v="CUSTOM",k=[{value:m,label:__("Any time","jetpack")},{value:h,label:__("Last 7 days","jetpack")},{value:f,label:__("Last 30 days","jetpack")},{value:g,label:__("Last 6 months","jetpack")},{value:b,label:__("Last 12 months","jetpack")},{value:v,label:__("Specific Month/Year","jetpack")}],y=(new Date).getFullYear(),E=[{label:__("Any Month","jetpack"),value:-1},...(0,o.map)((0,o.range)(0,12),(e=>({label:(0,a.dateI18n)("F",new Date(0,e)),value:e})))]},26634:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(92694),s=n(52175),l=n(63729),c=n(97294),u=n(34724);if((0,l.Z)()&&"function"==typeof s.useBlockEditContext){const e=e=>e.unstableFeaturedImageFlow||e.modalClass&&e.modalClass.indexOf("featured-image")>-1,t=(e,t)=>["core/cover","core/image","core/gallery","core/media-text","jetpack/image-compare","jetpack/slideshow","jetpack/story","jetpack/tiled-gallery"].indexOf(e)>-1&&-1===t.toString().indexOf("coblocks");(0,i.addFilter)("editor.MediaUpload","external-media/replace-media-upload",(n=>r=>{const{name:i}=(0,s.useBlockEditContext)();let{render:l}=r;if(t(i,l)||e(r)){const{allowedTypes:e,gallery:t=!1,value:n=[]}=r;e.indexOf("image")>-1&&!(t&&n.length>0)&&(l=e=>(0,o.createElement)(c.Z,a()({},e,{mediaProps:r})))}return(0,o.createElement)(n,a()({},r,{render:l}))}),100),(0,i.addFilter)("blocks.registerBlockType","external-media/individual-blocks",(function(e,t){return"core/image"!==t?e:{...e,keywords:[...e.keywords,...u.Dv.map((e=>e.keyword))]}}))}},6966:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(55609),l=n(65736),c=n(39630),u=n(25432),p=n(9236);const __=l.__,d=(0,r.memo)((()=>(0,r.createElement)("div",{className:"jetpack-external-media-browser__empty"},(0,r.createElement)("p",null,__("Sorry, but nothing matched your search criteria.","jetpack")))));t.Z=function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,className:m,multiple:h,setPath:f,nextPage:g,onCopy:b}=e,[v,k]=(0,r.useState)([]),[y,E]=(0,r.useState)(-1),w=(0,r.useRef)(-1),_=(0,r.useRef)(null),C=(0,r.useCallback)((e=>{let t=[e];"folder"===e.type?f(e.ID):h?(t=v.slice(0,9).concat(e),v.find((t=>e.ID===t.ID))&&(t=v.filter((t=>t.ID!==e.ID)))):1===v.length&&e.ID===v[0].ID&&(t=[]),k(t)}),[v,h,f]),j=(0,r.useCallback)((()=>{b(v)}),[v,b]),S=t.filter((e=>"folder"!==e.type)).length>0,x=o()({"jetpack-external-media-browser__media":!0,"jetpack-external-media-browser__media__loading":a}),T=o()({"jetpack-external-media-browser":!0,[m]:!0}),N=()=>{let e=1;const t=_.current.children;if(t.length>0){const n=t[0].offsetTop;for(;e<t.length&&t[e].offsetTop===n;)++e}w.current=e},P=(0,i.debounce)(N,400);(0,r.useEffect)((()=>(window.addEventListener("resize",P),()=>{window.removeEventListener("resize",P)})),[]),(0,r.useEffect)((()=>{t.length&&-1===w.current&&N()}),[t]);const A=(e,t)=>{let{item:n}=t;C(n)},I=(e,n)=>{let{item:r,index:a}=n;[c.LEFT,c.RIGHT,c.UP,c.DOWN].includes(e.keyCode)?((e,n)=>{switch(e){case c.LEFT:n>=1&&E(n-1);break;case c.RIGHT:n<t.length&&E(n+1);break;case c.UP:n>=w.current&&E(n-w.current);break;case c.DOWN:n<t.length-w.current&&E(n+w.current)}})(e.keyCode,a):c.SPACE===e.keyCode?(C(r),e.preventDefault()):c.ENTER===e.keyCode&&C(r),[c.LEFT,c.RIGHT,c.UP,c.DOWN,c.SPACE,c.ENTER].includes(e.keyCode)&&e.stopPropagation()};return(0,r.createElement)("div",{className:T},(0,r.createElement)("ul",{ref:_,className:x},t.map(((e,t)=>(0,r.createElement)(p.Z,{item:e,index:t,key:e.ID,onClick:A,onKeyDown:I,focus:t===y,isSelected:v.find((t=>t.ID===e.ID)),isCopying:n}))),0===t.length&&!a&&(0,r.createElement)(d,null),a&&(0,r.createElement)(u.Z,null),l&&!a&&(0,r.createElement)(s.Button,{isSecondary:!0,className:"jetpack-external-media-browser__loadmore",disabled:a||n,onClick:()=>{t.length&&E(t.length),g()}},__("Load More","jetpack"))),S&&(0,r.createElement)((()=>{const e=0===v.length||n,t=n?__("Inserting…","jetpack"):__("Select","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__toolbar"},(0,r.createElement)(s.Button,{isPrimary:!0,isBusy:n,disabled:e,onClick:j},t))}),null))}},9236:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__;t.Z=function(e){const{item:t,focus:n,isSelected:a,isCopying:s=!1}=e,{thumbnails:l,caption:c,name:u,title:p,type:d,children:m=0}=t,{medium:h=null,fmt_hd:f=null}=l,g=p||c||u,b=o()({"jetpack-external-media-browser__media__item":!0,"jetpack-external-media-browser__media__item__selected":a,"jetpack-external-media-browser__media__folder":"folder"===d,"is-transient":s}),v=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n&&v.current.focus()}),[n]),(0,r.createElement)("li",{ref:v,className:b,onClick:s?void 0:t=>{const{item:n,index:r}=e;e.onClick&&e.onClick(t,{item:n,index:r})},onKeyDown:s?void 0:t=>{const{item:n,index:r}=e;e.onKeyDown&&e.onKeyDown(t,{item:n,index:r})},role:"checkbox",tabIndex:"0","aria-checked":!!a,"aria-disabled":!!s},a&&s&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator"},(0,r.createElement)(i.Spinner,null),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator__label"},__("Inserting Image…","jetpack"))),(0,r.createElement)("img",{src:h||f,alt:g}),"folder"===d&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__info"},(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__name"},u),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__count"},m)))}},25432:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.memo)((function(){const e="jetpack-external-media-browser__media__item jetpack-external-media-browser__media__placeholder";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}))}))},97294:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(34724),s=n(60133);const l=e=>e.unstableFeaturedImageFlow||e.modalClass&&-1!==e.modalClass.indexOf("featured-image"),c=e=>void 0===e.multiple&&!l(e);t.Z=function(e){const{mediaProps:t}=e,[n,r]=(0,o.useState)(null),u=(0,i.ZR)(n);return(0,o.createElement)("div",{onClick:e=>e.stopPropagation()},(0,o.createElement)(s.Z,a()({},e,{setSelectedSource:r,isReplace:c(t),isFeatured:l(t),hasImage:t.value>0})),u&&(0,o.createElement)(u,a()({onClose:e=>{e&&(e.stopPropagation(),e.target.closest(".jetpack-external-media-header__dropdown"))||r(null)}},t)))}},60133:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(35127),s=n(2562);const __=o.__;t.Z=function(e){const{mediaProps:t,open:n,setSelectedSource:o,isFeatured:l,isReplace:c,hasImage:u}=e,p=t.render;let d=l,m=!1,h=!l;if(c)return(0,r.createElement)(s.Z,{originalButton:p,open:n,setSource:o});let f=__("Select Image","jetpack");return t.multiple&&(f=__("Select Images","jetpack")),t.allowedTypes.length>1&&(f=__("Select Media","jetpack")),l&&(f=__("Replace Image","jetpack"),d=!1,h=!1,m=!0),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Dropdown,{position:"bottom right",contentClassName:"jetpack-external-media-button-menu__options",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;const o=p&&p({open:n});return l&&u||o&&"string"!=typeof o.props.children?o:(0,r.createElement)(a.Button,{isPrimary:d,isSecondary:m,isTertiary:h,className:"jetpack-external-media-button-menu","aria-haspopup":"true","aria-expanded":t,onClick:n},f)},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(a.NavigableMenu,{"aria-label":f},(0,r.createElement)(a.MenuGroup,null,(0,r.createElement)(a.MenuItem,{icon:i.Z,onClick:()=>{t(),n()}},__("Media Library","jetpack")),(0,r.createElement)(s.Z,{open:n,setSource:o,onClick:t})))}}))}},2562:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(34724);t.Z=function(e){let{originalButton:t=null,onClick:n=(()=>{}),open:i,setSource:s}=e;return(0,r.createElement)(r.Fragment,null,t&&t({open:i}),o.Dv.map((e=>{let{icon:t,id:o,label:i}=e;return(0,r.createElement)(a.MenuItem,{icon:t,key:o,onClick:()=>{n(),s(o)}},i)})))}},67236:function(e,t,n){"use strict";n.d(t,{k:function(){return o}});var r=n(96483);const a={list:"/wpcom/v2/external-media/list/",copy:(0,n(58014).Wp)()?"/rest/v1.1/external-media-upload?service=":"/wpcom/v2/external-media/copy/",connection:"/wpcom/v2/external-media/connection/"};function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a[e]?(0,r.addQueryArgs)(a[e]+t,n):null}},97416:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(51591);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.JO,null),(0,r.createElement)("p",null,__("To get started, connect your site to your Google Photos library.","jetpack")),(0,r.createElement)("p",null,__("You can remove the connection in either of these places:","jetpack")),(0,r.createElement)("ul",null,(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://myaccount.google.com/security"},__("Google Security page","jetpack"))),(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/connections/"},__("WordPress.com Connections","jetpack")))))}))},75039:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)("p",null,__("Awaiting authorization","jetpack"))}))},72475:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418);const __=a.__;t.Z=(0,r.memo)((function(e){let{path:t,setPath:n}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Button,{isTertiary:!0,onClick:()=>n(i.Tu)},__("Albums","jetpack")),"→   ",t.name)}))},10365:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(38205);const __=a.__;function c(e){let{value:t,updateFilter:n}=e;return(0,r.createElement)(o.SelectControl,{label:__("Category","jetpack"),value:t,options:s.tY,onChange:n})}function u(e){let{value:t,updateFilter:n}=e;const a=t?.range||s.CY,[i,c]=(0,r.useState)(-1),[u,p]=(0,r.useState)(s.zs);return(0,r.createElement)("div",{className:"jetpack-external-media-date-filter"},(0,r.createElement)(o.SelectControl,{label:__("Filter by time period","jetpack"),value:a,options:s.QU,onChange:e=>n({range:e})}),a===s.yD&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Month","jetpack"),value:i,options:s.l5,onChange:c}),(0,r.createElement)(l.Z,{className:"components-base-control",label:__("Year","jetpack"),value:u,min:1970,onChange:p}),(0,r.createElement)(o.Button,{isSecondary:!0,disabled:t?.month===i&&t?.year===u,onClick:()=>{n({range:a,month:i,year:u})}},__("Apply","jetpack"))))}function p(){return(0,r.createElement)("span",null,__("Favorites","jetpack"))}function d(e){let{value:t,updateFilter:n}=e;const a=[{label:__("All","jetpack"),value:""},{label:__("Images","jetpack"),value:"photo"},{label:__("Videos","jetpack"),value:"video"}];return(0,r.createElement)(o.SelectControl,{label:__("Type","jetpack"),value:t,options:a,onChange:n})}function m(e){let{children:t,removeFilter:n,isRemovable:a=!1}=e;return(0,r.createElement)("div",{className:"jetpack-external-media-googlephotos-filter"},t,!!a&&(0,r.createElement)(o.Button,{onClick:n,isSmall:!0},__("Remove Filter","jetpack")))}t.Z=function(e){let{filters:t,setFilters:n,canChangeMedia:a}=e;const o=Object.keys(t).filter((e=>a||"mediaType"!==e)).map((e=>{return(0,r.createElement)(m,{key:e,removeFilter:()=>n((0,i.omit)(t,e))},(a=e,o=t[e],s=r=>n(function(e,t,n){const r={...e,[t]:n};return"mediaType"===t&&"video"===n?delete r.category:"category"===t&&"video"===r.mediaType&&delete r.mediaType,r}(t,e,r)),"category"===a?(0,r.createElement)(c,{value:o,updateFilter:s}):"date"===a?(0,r.createElement)(u,{value:o,updateFilter:s}):"favorite"===a?(0,r.createElement)(p,{value:o}):"mediaType"===a?(0,r.createElement)(d,{value:o,updateFilter:s}):null));var a,o,s}));return 0===o.length?null:o}},50254:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(76292),a=n.n(r),o=n(99418);const i=a()();function s(e){const{mediaType:t,category:n,favorite:r,date:s}=e,l=[];if(t&&l.push("mediaType="+t),n&&"video"!==t&&l.push("categoryInclude="+n),void 0!==r&&l.push("feature=favorite"),s){let e=null,t=null;switch(s.range){case o.Wm:e=a()(i).subtract(7,"days"),t=i;break;case o.Qh:e=a()(i).subtract(30,"days"),t=i;break;case o.Bb:e=a()(i).subtract(6,"months"),t=i;break;case o.En:e=a()(i).subtract(1,"year"),t=i;break;case o.yD:const n=parseInt(s.month),r=parseInt(s.year);isNaN(n)||isNaN(r)||(-1===n?(e=a()([r,0]),t=a()(e).endOf("year")):(e=a()([r,n]),t=a()(e).endOf("month")))}const n=e?e.format("YYYY-MM-DD"):"0000-00-00",r=t?t.format("YYYY-MM-DD"):"0000-00-00";l.push(`dateRange=${n}:${r}`)}return l.length>0?l:null}},48389:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i=[{label:__("Category","jetpack"),value:"category"},{label:__("Date","jetpack"),value:"date"},{label:__("Favorites","jetpack"),value:"favorite"},{label:__("Media Type","jetpack"),value:"mediaType"}];function s(e){return i.filter((t=>void 0===e[t.value]))}function l(e){const t=s(e);return t.length>0?t[0].value:""}t.Z=function(e){const[t,n]=(0,r.useState)(l([])),{isLoading:a,isCopying:i,filters:c,canChangeMedia:u}=e,p=function(e,t){return t?e:e.filter((e=>"mediaType"!==e.value))}(s(c),u);return 0===p.length?null:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Filters","jetpack"),value:t,disabled:a||i,options:p,onChange:n}),(0,r.createElement)(o.Button,{disabled:a||i,isSecondary:!0,isSmall:!0,onClick:()=>{const r=(a=c,o=t,{...a,[o]:"favorite"===o||""});var a,o;e.setFilters(r),n(l(r))}},__("Add Filter","jetpack")))}},72461:function(e,t,n){"use strict";var r=n(69307),a=n(3308);t.Z=e=>{let{account:t,setAuthenticated:n}=e;const{image:o,name:i}=t||{};return(0,r.createElement)("div",{className:"jetpack-external-media-header__account"},(0,r.createElement)("div",{className:"jetpack-external-media-header__account-info"},o&&(0,r.createElement)("img",{className:"jetpack-external-media-header__account-image",src:o,alt:"",height:"18",width:"18"}),i&&(0,r.createElement)("div",{className:"jetpack-external-media-header__account-name"},i)),(0,r.createElement)(a.Z,{setAuthenticated:n}))}},17482:function(e,t,n){"use strict";var r=n(69307),a=n(39151),o=n(86989),i=n.n(o),s=n(65736),l=n(55609),c=n(99418),u=n(67236),p=n(97416),d=n(75039);const __=s.__;t.Z=function(e){const{setAuthenticated:t}=e,[n,o]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{o(!0),i()({path:(0,u.k)("connection",c.iT)}).then((e=>{if(e.error)throw e.message;(0,a.Z)(e.connect_URL,(()=>{o(!1),t(!0)}))})).catch((()=>{o(!1)}))}),[t]);return(0,r.createElement)("div",{className:"jetpack-external-media-auth"},n?(0,r.createElement)(d.Z,null):(0,r.createElement)(p.Z,null),(0,r.createElement)(l.Button,{isPrimary:!0,disabled:n,onClick:s},__("Connect to Google Photos","jetpack")))}},3308:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(67236),c=n(99418);const __=s.__;t.Z=e=>{let{setAuthenticated:t}=e;const[n,a]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{a(!0),o()({method:"DELETE",path:(0,l.k)("connection",c.iT)}).then((()=>t(!1))).catch((()=>a(!1)))}),[t]);return(0,r.createElement)(i.Button,{isSecondary:!0,className:"jetpack-external-media-browser__disconnect",onClick:s,disabled:n,isBusy:n},__("Disconnect from Google Photos","jetpack"))}},8910:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418),s=n(6966),l=n(67236),c=n(10365),u=n(48389),p=n(72461),d=n(72475),m=n(50254);const __=a.__;t.Z=function(e){const{account:t,allowedTypes:n,copyMedia:a,getMedia:h,isCopying:f,isLoading:g,media:b,multiple:v,onChangePath:k,pageHandle:y,path:E,setAuthenticated:w,showAdditionalFilters:_=!1}=e,C=(j=n)&&1===j.length&&"image"===j[0];var j;const[S,x]=(0,r.useState)(C?{mediaType:"photo",date:{range:i.CY}}:{date:{range:i.CY}}),T=(0,r.useRef)(""),N=(0,r.useRef)(""),P=E.ID===i.oI?(0,m.Z)(S):null,A={number:20,path:E.ID};P&&(A.filter=P);const I=(0,l.k)("list",i.iT,A),M=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h(I,t)}),[h,I]),B=(0,r.useCallback)((e=>{const t=b.find((t=>t.ID===e));N.current=E,k(t||{ID:e})}),[b,k,N,E]),R=(0,r.useCallback)((e=>{a(e,(0,l.k)("copy",i.iT),i.iT)}),[a]);return(0,r.useEffect)((()=>{T!==I&&(T.current=I,M({},E!==N.current))}),[T,I,M,E]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__google"},(0,r.createElement)("div",{className:"jetpack-external-media-header__view"},(0,r.createElement)(o.SelectControl,{className:"jetpack-external-media-header__select",label:__("View","jetpack"),value:E.ID!==i.oI?i.Tu:i.oI,disabled:g||f,options:i.OG,onChange:B}),_&&E.ID===i.oI&&(0,r.createElement)(u.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),(0,r.createElement)("div",{className:"jetpack-external-media-header__filter"},E.ID===i.oI&&(0,r.createElement)(c.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),E.ID!==i.oI&&E.ID!==i.Tu&&(0,r.createElement)(d.Z,{path:E,setPath:B})),(!g||b.length>0)&&(0,r.createElement)(p.Z,{account:t,setAuthenticated:w})),(0,r.createElement)(s.Z,{className:"jetpack-external-media-browser__google",key:I,media:b,isCopying:f,isLoading:g,nextPage:M,onCopy:R,pageHandle:y,multiple:v,setPath:B}))}},5465:function(e,t,n){"use strict";var r=n(69307),a=n(37603),o=n(17482),i=n(8910);t.Z=(0,a.Z)()((function(e){return e.isAuthenticated?(0,r.createElement)(i.Z,e):(0,r.createElement)(o.Z,e)}))},34724:function(e,t,n){"use strict";n.d(t,{Dv:function(){return c},ZR:function(){return u}});var r=n(69307),a=n(65736),o=n(51591),i=n(5465),s=n(7500),l=n(99418);const __=a.__,c=[{id:l.iT,label:__("Google Photos","jetpack"),icon:(0,r.createElement)(o.He,{className:"components-menu-items__item-icon"}),keyword:"google photos"},{id:l.wk,label:__("Pexels Free Photos","jetpack"),icon:(0,r.createElement)(o.yk,{className:"components-menu-items__item-icon"}),keyword:"pexels"}];function u(e){return e===l.wk?s.Z:e===l.iT?i.Z:null}},7500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(37603),c=n(6966),u=n(67236);const __=a.__;t.Z=(0,l.Z)()((function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,multiple:p,copyMedia:d,getMedia:m}=e,[h,f]=(0,r.useState)((0,i.sample)(s.h9)),[g,b]=(0,r.useState)(""),v=(0,r.useCallback)((e=>{d(e,(0,u.k)("copy",s.wk),s.wk)}),[d]),k=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h&&m((0,u.k)("list",s.wk,{number:20,path:"recent",search:h}),t)}),[m,h]),y=(0,r.useRef)(),E=(0,r.useCallback)((e=>{e.preventDefault(),b(h),k(e,!0),y.current=h}),[k,h]);(0,r.useEffect)(k,[]);const w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!w.current)return;const e=Array.from(w.current.elements).find((e=>"search"===e.type));e&&(e.focus(),e.select())}),[]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__pexels"},(0,r.createElement)("form",{ref:w,className:"jetpack-external-media-header__pexels",onSubmit:E},(0,r.createElement)(o.TextControl,{"aria-label":__("Search","jetpack"),type:"search",value:h,onChange:f,disabled:!!n}),(0,r.createElement)(o.Button,{isPrimary:!0,onClick:E,type:"submit",disabled:!h.length||h===y.current||n},__("Search","jetpack"))),(0,r.createElement)(c.Z,{key:g,className:"jetpack-external-media-browser__pexels",media:t,isCopying:n,isLoading:a,nextPage:k,onCopy:v,pageHandle:l,multiple:p}))}))},37603:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(27538),a=n.n(r),o=n(69307),i=n(92819),s=n(89105),l=n.n(s),c=n(86989),u=n.n(c),p=n(94333),d=n(55609),m=n(65736),h=n(39630),f=n(9818),g=n(99418);const __=m.__;function b(){return(0,p.createHigherOrderComponent)((e=>{class t extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"contentRef",(e=>{e?(this.contentElement=e,this.modalElement=e.closest(".jetpack-external-media-browser"),this.modalElement&&this.modalElement.addEventListener("keydown",this.stopArrowKeysPropagation)):this.modalElement&&(this.modalElement.removeEventListener("keydown",this.stopArrowKeysPropagation),this.modalElement=null,this.contentElement=null)})),a()(this,"stopArrowKeysPropagation",(e=>{[h.UP,h.DOWN,h.LEFT,h.RIGHT].includes(e.keyCode)&&!e.target.classList.contains("jetpack-external-media-browser__media__item")&&e.stopPropagation()})),a()(this,"setAuthenticated",(e=>this.setState({isAuthenticated:e}))),a()(this,"getMedia",(function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.state.isLoading||(n&&t.props.noticeOperations.removeAllNotices(),t.setState({account:n?t.defaultAccount:t.state.account,isLoading:!0,media:n?[]:t.state.media,nextHandle:!n&&t.state.nextHandle},(()=>t.getMediaRequest(e))))})),a()(this,"handleApiError",(e=>{if("authorization_required"===e.code)return void this.setState({isAuthenticated:!1,isLoading:!1,isCopying:!1});e.errors?.length&&(e={code:e.errors[0].error,message:e.errors[0].message});const{noticeOperations:t}=this.props;t.createErrorNotice("internal_server_error"===e.code?"Internal server error":e.message),this.setState({isLoading:!1,isCopying:!1})})),a()(this,"getMediaRequest",(e=>{const{nextHandle:t,media:n}=this.state;if(!1===t&&n.length>0)return void this.setState({isLoading:!1});const r=this.getRequestUrl(e);this.setAuthenticated(!0),u()({path:r,method:"GET",parse:void 0===window.wpcomFetch}).then((e=>{this.setState({account:e.meta.account,media:this.mergeMedia(n,e.media),nextHandle:e.meta.next_page,isLoading:!1})})).catch(this.handleApiError)})),a()(this,"copyMedia",((e,t,n)=>{var r;this.setState({isCopying:e}),this.props.noticeOperations.removeAllNotices(),this.modalElement&&this.modalElement.focus(),u()({path:t,method:"POST",data:{external_ids:e.map((e=>e.guid)),media:e.map((e=>({guid:e.guid,caption:e.caption,title:e.title}))),service:n,post_id:null!==(r=this.props.postId)&&void 0!==r?r:0}}).then((e=>{e.media&&(e=e.media.map((e=>({alt:e.alt,caption:e.caption,id:e.ID,type:"image",url:e.URL}))));const{value:t,addToGallery:n,multiple:r}=this.props,a=r?e:e[0],o=e.find((e=>e.errors));if(o){const{errors:e}=o,t=Object.keys(e)[0];this.handleApiError({code:t,message:e[t]})}else this.props.onClose(),this.props.onSelect(n?t.concat(e):a)})).catch(this.handleApiError)})),a()(this,"onChangePath",((e,t)=>{this.setState({path:e},t)})),this.defaultAccount={image:"",name:""},this.state={account:this.defaultAccount,media:[],nextHandle:!1,isLoading:!1,isCopying:null,isAuthenticated:!0,path:{ID:g.oI}}}mergeMedia(e,t){return(0,i.uniqBy)(e.concat(t),"ID")}getRequestUrl(e){const{nextHandle:t}=this.state;return t?e+"&page_handle="+encodeURIComponent(t):e}render(){const{account:t,isAuthenticated:n,isCopying:r,isLoading:a,media:i,nextHandle:s,path:c}=this.state,{allowedTypes:u,multiple:p=!1,noticeUI:m,onClose:h}=this.props,f=r?__("Inserting media","jetpack"):__("Select media","jetpack",0),g=r?__("When the media is finished copying and inserting, you will be returned to the editor.","jetpack"):__("Select the media you would like to insert into the editor.","jetpack",0),b="jetpack-external-media-browser__description",v=l()({"jetpack-external-media-browser":!0,"jetpack-external-media-browser--is-copying":r});return(0,o.createElement)(d.Modal,{onRequestClose:h,title:f,aria:{describedby:b},className:v},(0,o.createElement)("div",{ref:this.contentRef},m,(0,o.createElement)("p",{id:b,className:"jetpack-external-media-browser--visually-hidden"},g),(0,o.createElement)(e,{account:t,getMedia:this.getMedia,copyMedia:this.copyMedia,isCopying:r,isLoading:a,media:i,pageHandle:s,allowedTypes:u,isAuthenticated:n,setAuthenticated:this.setAuthenticated,multiple:p,path:c,onChangePath:this.onChangePath})))}}return(0,f.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()})))((0,d.withNotices)(t))}))}},36745:function(e,t,n){"use strict";n.d(t,{Qu:function(){return i}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["allowedMimeTypes"],[])}function i(e,t){if(!e||!t)return!1;if(!o())return!1;const n=(a=t)?(0,r.pickBy)(o(),(e=>(0,r.startsWith)(e,`${a}/`))):{};var a;const i=(s=n)?(0,r.flatten)((0,r.map)((0,r.keys)(s),(e=>e.split("|")))):[];var s;if("string"==typeof e){const t=e.split(".").pop();return t&&i.includes(t)}return"object"==typeof e&&(e.type&&(0,r.values)(n).includes(e.type))}},20510:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){const e=(0,r.getCategories)();for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(const t of n)if(e.some((e=>{let{slug:n}=e;return n===t})))return t;throw new Error(`Could not find a category from the provided list: ${n.join(",")}`)}},2368:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(96483);function a(e,t){if(!(0,r.isURL)(t))return null;let n=t;try{const a=(0,r.getQueryArg)(t,"state"),o=JSON.parse(atob(a));if(e)o.from_editor_post_id=e;else{const e=new URLSearchParams(window.location.search);o.from_site_editor_post_id=e.get("postId"),o.from_site_editor_post_type=e.get("postType")}n=(0,r.addQueryArgs)(t,{state:btoa(JSON.stringify(o))})}catch(e){0}return n}},47583:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);function a(){return(0,r.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null)}},21409:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(e){const t=(0,a.Z)(),n=(0,r.get)(t,["available_blocks",e,"available"],!1),o=(0,r.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),i=(0,r.get)(t,["available_blocks",e,"details"],[]);return{available:n,...!n&&{details:i,unavailableReason:o}}}},4235:function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,{Z:function(){return r}})},14087:function(e,t,n){"use strict";n.d(t,{S:function(){return a}});var r=n(92819);const a=(e,t)=>(0,r.reduce)(t,((t,n,r)=>{if(void 0===e[r])return t;const{type:a,validator:o,validValues:i,default:s}=e[r];return t[r]="boolean"===a?"false"!==n&&!!n:o?o(n)?n:s:i?i.includes(n)?n:s:n,t}),{})},22985:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(20651),c=n.n(l);t.Z=e=>{let{children:t=null,isError:n=!1,...r}=e;const i=s()("help-message",{"help-message-is-error":n});return t&&(0,o.createElement)("div",a()({className:i},r),n&&(0,o.createElement)(c(),{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),(0,o.createElement)("span",null,t))}},51591:function(e,t,n){"use strict";n.d(t,{He:function(){return d},yk:function(){return m},JO:function(){return h},IM:function(){return f},zf:function(){return E},Ae:function(){return w},K9:function(){return _},Xu:function(){return C},VV:function(){return j},_z:function(){return S},Qv:function(){return x},av:function(){return T},Pw:function(){return N}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(89105),l=n.n(s),c=n(27655),u=n(57535);const p=c.O["Jetpack Green 40"],d=e=>(0,o.createElement)(i.SVG,a()({height:"24",width:"24",viewBox:"1.2 10.8 169.6 169.6",xmlns:"http://www.w3.org/2000/svg"},e),(0,o.createElement)(i.Path,{d:"m43.6 49.4c23.4 0 42.4 19 42.4 42.4v3.9h-80.9c-2.1 0-3.8-1.7-3.9-3.9 0-23.4 19-42.4 42.4-42.4z",fill:"#f6bc04"}),(0,o.createElement)(i.Path,{d:"m132.2 53.2c0 23.4-19 42.4-42.4 42.4h-3.8v-80.9c0-2.1 1.7-3.9 3.8-3.9 23.5 0 42.4 19 42.4 42.4z",fill:"#ea4335"}),(0,o.createElement)(i.Path,{d:"m128.4 141.9c-23.4 0-42.4-19-42.4-42.4v-3.9h80.9c2.1 0 3.9 1.7 3.9 3.8 0 23.5-19 42.5-42.4 42.5z",fill:"#4285f4"}),(0,o.createElement)(i.Path,{d:"m39.8 138c0-23.4 19-42.4 42.4-42.4h3.8v80.9c0 2.1-1.7 3.8-3.9 3.9-23.4 0-42.3-19-42.3-42.4z",fill:"#34a853"})),m=e=>(0,o.createElement)(i.SVG,a()({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},e),(0,o.createElement)(i.Path,{d:"M14 7H9v10h3.9v-3.8H14c1.7 0 3.1-1.4 3.1-3.1C17.2 8.4 15.8 7 14 7z"}),(0,o.createElement)(i.Path,{d:"M20.5 2h-17C2.7 2 2 2.7 2 3.5v17c0 .8.7 1.5 1.5 1.5h17c.8 0 1.5-.7 1.5-1.5v-17c0-.8-.7-1.5-1.5-1.5zm-5.6 13.2V19H7V5h7c2.8 0 5.1 2.3 5.1 5.1.1 2.5-1.8 4.7-4.2 5.1z"})),h=()=>{const e="#757575";return(0,o.createElement)(i.SVG,{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/SVG",x:"0px",y:"0px",viewBox:"0 0 1292 448",style:{enableBackground:"new 0 0 1292 448"}},(0,o.createElement)(i.G,{id:"Icon"},(0,o.createElement)(i.Path,{class:"st0",fill:"#F6B704",d:"M171.6,177.4c23.4,0,42.4,19,42.4,42.4v3.9h-80.9c-2.1,0-3.8-1.7-3.9-3.9C129.2,196.4,148.2,177.4,171.6,177.4 C171.6,177.4,171.6,177.4,171.6,177.4z"}),(0,o.createElement)(i.Path,{class:"st1",fill:"#E54335",d:"M260.2,181.2c0,23.4-19,42.4-42.4,42.4H214v-80.9c0-2.1,1.7-3.9,3.8-3.9h0 C241.3,138.8,260.2,157.8,260.2,181.2C260.2,181.2,260.2,181.2,260.2,181.2z"}),(0,o.createElement)(i.Path,{class:"st2",fill:"#4280EF",d:"M256.4,269.9c-23.4,0-42.4-19-42.4-42.4v-3.9h80.9c2.1,0,3.9,1.7,3.9,3.8v0 C298.8,250.9,279.8,269.9,256.4,269.9C256.4,269.9,256.4,269.9,256.4,269.9z"}),(0,o.createElement)(i.Path,{class:"st3",fill:"#34A353",d:"M167.8,266c0-23.4,19-42.4,42.4-42.4c0,0,0,0,0,0h3.9v80.9c0,2.1-1.7,3.8-3.9,3.9 C186.7,308.4,167.8,289.4,167.8,266z"})),(0,o.createElement)(i.G,{id:"Photos"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M796,272v-91.6h31.2c15.2,0,28.7,11.3,28.7,27.3s-13.4,27.3-28.7,27.3h-19.4V272H796z M827.5,223.6 c8.8,0,16-7.2,16-16s-7.2-16-16-16h-19.7v32H827.5z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M875.8,209.3l-0.5,8.7h0.5c3.3-5.8,11.3-10.8,19.8-10.8c16,0,23.9,10.9,23.9,26.4V272h-11.8v-36.6 c0-13-6.5-17.4-15.5-17.4c-10.2,0-16.5,9.7-16.5,19.3V272H864v-91.6h11.8V209.3z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M993.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4S993.8,221.6,993.8,240.6z M982,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S982,255,982,240.6L982,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1008,252.9V220h-11v-10.7h11v-19.2h11.8v19.2h15.3V220h-15.3v32c0,7,2.9,10.2,8.4,10.2c1.8,0.1,3.7-0.3,5.4-1 l4.1,10.1c-3,1.2-6.2,1.8-9.5,1.7C1015,273,1008,265.7,1008,252.9z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1105.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4 S1105.8,221.6,1105.8,240.6z M1094,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S1094,255,1094,240.6 L1094,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1111,256.1l10.5-4.4c3.3,7.9,9.5,11.8,17,11.8c7.3,0,12.5-3.6,12.5-8.8c0-3.2-1.9-6.6-8.6-8.3l-12.7-3.1 c-5.8-1.4-16.8-6.4-16.8-17.4c0-11.4,11.8-18.7,24.8-18.7c10.9,0,20.3,5,24.2,14.6l-10.2,4.2c-2.4-5.9-8.2-8.3-14.3-8.3 c-6.7,0-12.4,3-12.4,8.1c0,4,3.3,6.1,8.3,7.3l12.4,2.9c12.4,2.9,17.3,10.6,17.3,18.3c0,11.1-10,19.7-24.7,19.7 C1123.2,274,1114.7,265.1,1111,256.1z"})),(0,o.createElement)(i.G,{id:"Google"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M348.7,221.6c0-28.9,24.3-52.5,53.2-52.5c13.5-0.2,26.4,5,36,14.5l-10.1,10.1c-6.9-6.7-16.2-10.4-25.9-10.2 c-21.1,0-37.6,17-37.6,38.2s16.5,38.1,37.6,38.1c13.7,0,21.5-5.5,26.5-10.5c4.1-4.1,6.8-10,7.8-18H402v-14.4h48.3 c0.5,3,0.8,6,0.8,9c0,10.8-2.9,24.1-12.4,33.5c-9.2,9.6-21,14.7-36.6,14.7C373,274,348.7,250.5,348.7,221.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M490,206.5c-18.7,0-33.9,14.2-33.9,33.8S471.3,274,490,274s33.9-14.3,33.9-33.8S508.7,206.5,490,206.5z M490,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S500.2,260.7,490,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M564,206.5c-18.7,0-33.9,14.2-33.9,33.8S545.3,274,564,274s33.9-14.3,33.9-33.8S582.7,206.5,564,206.5z M564,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S574.2,260.7,564,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M654.8,208.5v5.5h-0.5c-3.3-4-9.7-7.6-17.8-7.6c-16.9,0-32.4,14.9-32.4,33.9s15.5,33.7,32.4,33.7 c8.1,0,14.5-3.6,17.8-7.7h0.5v4.9c0,12.9-6.9,19.8-18,19.8c-9.1,0-14.7-6.5-17-12l-12.9,5.4c5,12.1,16.8,20.1,30,20 c17.4,0,32.1-10.2,32.1-35.2v-60.7H654.8z M637.8,260.7c-10.2,0-18.8-8.6-18.8-20.4s8.6-20.6,18.8-20.6s18,8.7,18,20.6 S647.9,260.7,637.8,260.7L637.8,260.7z"}),(0,o.createElement)(i.Rect,{x:"679.2",y:"172.7",class:"st4",fill:e,width:"14.8",height:"99.3"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M734.7,260.7c-7.6,0-12.9-3.5-16.4-10.2l45.2-18.7L762,228c-2.8-7.6-11.4-21.5-28.9-21.5s-31.9,13.7-31.9,33.8 c0,19,14.3,33.8,33.5,33.8c11.3,0.1,21.9-5.6,28.2-15l-11.5-7.7C747.5,257,742.3,260.7,734.7,260.7z M733.6,219.5 c5.9,0,10.9,2.9,12.5,7.2l-30.2,12.5C715.5,226.2,726,219.5,733.6,219.5L733.6,219.5z"})))},f=e=>{let{size:t=24,className:n}=e;return(0,o.createElement)(i.SVG,{className:l()("jetpack-logo",n),width:t,height:t,viewBox:"0 0 32 32"},(0,o.createElement)(i.Path,{className:"jetpack-logo__icon-circle",fill:p,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))},g=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"}))),b=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19,3H5C3.895,3,3,3.895,3,5v14c0,1.105,0.895,2,2,2h14c1.105,0,2-0.895,2-2V5C21,3.895,20.105,3,19,3z M16.466,9.71 c0.004,0.099,0.007,0.198,0.007,0.298c0,3.045-2.318,6.556-6.556,6.556c-1.301,0-2.512-0.381-3.532-1.035 c0.18,0.021,0.364,0.032,0.55,0.032c1.079,0,2.073-0.368,2.862-0.986c-1.008-0.019-1.859-0.685-2.152-1.6 c0.141,0.027,0.285,0.041,0.433,0.041c0.21,0,0.414-0.028,0.607-0.081c-1.054-0.212-1.848-1.143-1.848-2.259 c0-0.01,0-0.019,0-0.029c0.311,0.173,0.666,0.276,1.044,0.288c-0.618-0.413-1.025-1.118-1.025-1.918 c0-0.422,0.114-0.818,0.312-1.158c1.136,1.394,2.834,2.311,4.749,2.407c-0.039-0.169-0.06-0.344-0.06-0.525 c0-1.272,1.032-2.304,2.304-2.304c0.663,0,1.261,0.28,1.682,0.728c0.525-0.103,1.018-0.295,1.463-0.559 c-0.172,0.538-0.537,0.99-1.013,1.275c0.466-0.056,0.91-0.18,1.323-0.363C17.306,8.979,16.916,9.385,16.466,9.71z"}))),v=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),k=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),y=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.05h-9.36z"}))),E={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 100 100"},(0,o.createElement)(i.Path,{d:"M100,44H72.4l23.9-13.8l-6-10.4L66.4,33.6L80.2,9.7l-10.4-6L56,27.59V0H44v27.6L30.2,3.7l-10.4,6l13.8,23.9 L9.7,19.8l-6,10.4L27.6,44H0V56h27.6L3.7,69.8l6,10.4l23.9-13.8L19.8,90.3l10.4,6L44,72.4V100H56V72.41l13.8,23.9l10.4-6L66.4,66.4 l23.9,13.8l6-10.4L72.4,56H100V44z M50,65.23c-8.41,0-15.23-6.82-15.23-15.23c0-8.41,6.82-15.23,15.23-15.23S65.23,41.59,65.23,50 C65.23,58.41,58.41,65.23,50,65.23z"}))},w={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20.7 17",xmlSpace:"preserve"},(0,o.createElement)(i.Path,{d:"m20.7 12.9-.9-11c0-.5-.2-.9-.5-1.3-.3-.3-.8-.5-1.3-.5L1.9 0h-.1c-.2 0-.5 0-.7.1C.9.2.7.4.5.5.4.7.2.9.1 1.1c-.1.2-.1.5-.1.7v.1l.9 13.4c0 .5.2.9.5 1.3.3.2.8.4 1.3.4H3l16.1-2c.4 0 .9-.3 1.1-.6.3-.3.5-.8.5-1.2v-.3zm-3.1.8L4.2 15.3H4c-.4 0-.8-.1-1-.4-.3-.3-.4-.6-.5-1L1.7 3.2v-.1c0-.4.2-.8.5-1 .3-.3.7-.4 1-.4h.1l13.5.1c.4 0 .8.1 1 .4.3.3.4.6.5 1L19 12v.3c0 .4-.2.7-.4 1-.3.2-.6.4-1 .4z"}))},_={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})))},C=((0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M15.9216 2H2.98533C2.43803 2 1.99023 2.45 1.99023 3V17L5.97062 13H15.9216C16.4689 13 16.9167 12.55 16.9167 12V3C16.9167 2.45 16.4689 2 15.9216 2ZM14.9265 4V11H5.14469L3.98043 12.17V4H14.9265ZM18.9069 6H20.8971C21.4444 6 21.8922 6.45 21.8922 7V22L17.9118 18H6.96572C6.41842 18 5.97062 17.55 5.97062 17V15H18.9069V6Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M3.98042 2H19.9019C20.9965 2 21.8921 2.9 21.8921 4V16C21.8921 17.1 20.9965 18 19.9019 18H5.97061L1.99023 22V4C1.99023 2.9 2.88582 2 3.98042 2ZM5.97061 16H19.9019V4H3.98042V18L5.97061 16Z"}))),{foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M11.1114 8H20.0002M11.1113 15H20.0002",stroke:(0,u.m)(),strokeWidth:"1.5"}),(0,o.createElement)(i.Path,{d:"M4 10V6L8 8L4 10Z",fill:(0,u.m)()}),(0,o.createElement)(i.Path,{d:"M4 17V13L8 15L4 17Z",fill:(0,u.m)()})))}),j={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M4 12V4L11 8L4 12Z"}),(0,o.createElement)(i.Path,{d:"M4 14.5H20V16H4V14.5Z"}),(0,o.createElement)(i.Path,{d:"M4 18.5H13V20H4V18.5Z"})))},S=((0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M2.5 7.5V4.5H15.5V7.5H10.5V19.5H7.5V7.5H2.5ZM12.5 9.5H21.5V12.5H18.5V19.5H15.5V12.5H12.5V9.5Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M12.7049 2V6C8.30658 6 4.74414 9.58 4.74414 14C4.74414 18.42 8.30658 22 12.7049 22C17.1032 22 20.6656 18.42 20.6656 14H18.6755C18.6755 17.31 15.9987 20 12.7049 20C9.41113 20 6.73433 17.31 6.73433 14C6.73433 10.69 9.41113 8 12.7049 8V12L17.6804 7L12.7049 2ZM11.6501 12.73L11.4013 14.9L12.068 15.06C12.0753 15.0526 12.0827 15.0447 12.0901 15.0366C12.1131 15.0116 12.1375 14.9851 12.1675 14.97C12.1874 14.96 12.2073 14.9475 12.2272 14.935C12.2471 14.9225 12.2671 14.91 12.287 14.9C12.3268 14.88 12.3865 14.86 12.4362 14.85C12.486 14.84 12.5556 14.83 12.6352 14.83C12.7447 14.83 12.8542 14.85 12.9338 14.88C13.0134 14.91 13.083 14.96 13.1427 15.03C13.2024 15.1 13.2422 15.17 13.2721 15.27C13.302 15.37 13.3119 15.47 13.3119 15.58V15.58C13.3119 15.69 13.3119 15.79 13.2821 15.89C13.2522 15.99 13.2124 16.07 13.1726 16.14C13.1328 16.21 13.0631 16.27 12.9935 16.31C12.9238 16.35 12.8343 16.37 12.7248 16.37C12.5556 16.37 12.4163 16.31 12.3069 16.22C12.1974 16.13 12.1377 15.99 12.1178 15.81H11.2819C11.2819 16.01 11.3317 16.19 11.4113 16.34C11.4909 16.49 11.5904 16.63 11.7297 16.73C11.869 16.83 12.0183 16.92 12.1874 16.97C12.3566 17.02 12.5357 17.05 12.7148 17.05C12.9636 17.05 13.1726 17 13.3517 16.93C13.5308 16.86 13.6801 16.75 13.7995 16.62C13.9189 16.49 14.0085 16.34 14.0682 16.17C14.1279 16 14.1577 15.82 14.1577 15.63C14.1577 15.41 14.1179 15.21 14.0682 15.03C14.0184 14.85 13.9289 14.7 13.8194 14.58C13.7099 14.46 13.5706 14.37 13.4114 14.3C13.2522 14.23 13.0731 14.2 12.8641 14.2C12.7945 14.2 12.7248 14.21 12.6651 14.22C12.6352 14.225 12.6054 14.2325 12.5755 14.24C12.5457 14.2475 12.5158 14.255 12.486 14.26C12.4263 14.27 12.3765 14.29 12.3367 14.31C12.3201 14.3183 12.3035 14.325 12.2876 14.3313C12.2654 14.3401 12.2446 14.3483 12.2272 14.36L12.3367 13.44H14.0284V12.73H11.6501Z"}))),x=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M11.9412 2V6C16.3395 6 19.902 9.58 19.902 14C19.902 18.42 16.3395 22 11.9412 22C7.54291 22 3.98047 18.42 3.98047 14H5.97066C5.97066 17.31 8.64746 20 11.9412 20C15.235 20 17.9118 17.31 17.9118 14C17.9118 10.69 15.235 8 11.9412 8V12L6.96575 7L11.9412 2ZM10.8864 12.73L10.6376 14.9L11.3044 15.06C11.3117 15.0526 11.319 15.0447 11.3264 15.0366C11.3494 15.0116 11.3738 14.9851 11.4039 14.97C11.4238 14.96 11.4437 14.9475 11.4636 14.935C11.4835 14.9225 11.5034 14.91 11.5233 14.9C11.5631 14.88 11.6228 14.86 11.6725 14.85C11.7223 14.84 11.792 14.83 11.8716 14.83C11.981 14.83 12.0905 14.85 12.1701 14.88C12.2497 14.91 12.3194 14.96 12.3791 15.03C12.4388 15.1 12.4786 15.17 12.5084 15.27C12.5383 15.37 12.5482 15.47 12.5482 15.58V15.58C12.5482 15.69 12.5482 15.79 12.5184 15.89C12.4885 15.99 12.4487 16.07 12.4089 16.14C12.3691 16.21 12.2995 16.27 12.2298 16.31C12.1601 16.35 12.0706 16.37 11.9611 16.37C11.792 16.37 11.6526 16.31 11.5432 16.22C11.4337 16.13 11.374 15.99 11.3541 15.81H10.5182C10.5182 16.01 10.568 16.19 10.6476 16.34C10.7272 16.49 10.8267 16.63 10.966 16.73C11.1053 16.83 11.2546 16.92 11.4238 16.97C11.5929 17.02 11.7721 17.05 11.9512 17.05C12.1999 17.05 12.4089 17 12.588 16.93C12.7672 16.86 12.9164 16.75 13.0358 16.62C13.1552 16.49 13.2448 16.34 13.3045 16.17C13.3642 16 13.3941 15.82 13.3941 15.63C13.3941 15.41 13.3543 15.21 13.3045 15.03C13.2547 14.85 13.1652 14.7 13.0557 14.58C12.9463 14.46 12.807 14.37 12.6477 14.3C12.4885 14.23 12.3094 14.2 12.1004 14.2C12.0308 14.2 11.9611 14.21 11.9014 14.22C11.8716 14.225 11.8417 14.2325 11.8119 14.24C11.782 14.2475 11.7522 14.255 11.7223 14.26C11.6626 14.27 11.6128 14.29 11.573 14.31C11.5564 14.3183 11.5398 14.325 11.5239 14.3313C11.5017 14.3401 11.481 14.3483 11.4636 14.36L11.573 13.44H13.2647V12.73H10.8864Z"})),T=e=>{let{serviceName:t,className:n}=e;const r={className:l()("jetpack-gutenberg-social-icon",`is-${t}`,n),size:24};switch(t){case"facebook":return(0,o.createElement)(i.Icon,a()({icon:g},r));case"twitter":return(0,o.createElement)(i.Icon,a()({icon:b},r));case"linkedin":return(0,o.createElement)(i.Icon,a()({icon:v},r));case"tumblr":return(0,o.createElement)(i.Icon,a()({icon:k},r));case"google":return(0,o.createElement)(i.Icon,a()({icon:y},r))}return null},N=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M0 0h24v24H0z",fill:"none"}),(0,o.createElement)(i.Path,{d:"M7 2v11h3v9l7-12h-4l4-8z",fill:"currentColor"}))},28938:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_active"],!1)}},63729:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_current_user_connected"],!1)}},47077:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_offline_mode"],!1)}},23539:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(98817),s=n(32673);const __=a.__,{Fill:l,Slot:c}=(0,o.createSlotFill)("JetpackLikesAndSharingPanel");(0,i.registerPlugin)("jetpack-likes-and-sharing-panel",{render:()=>(0,r.createElement)(c,null,(e=>e.length?(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Likes and Sharing","jetpack")},e)):null))})},32673:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(55609),o=n(72067),i=n(98817),s=n(9818),l=n(96483),c=n(47701),u=n.n(c),p=n(51591);const{Fill:d,Slot:m}=(0,a.createSlotFill)("JetpackPluginSidebar");u()((function(){"true"===(0,l.getQueryArg)(window.location.search,"jetpackSidebarIsOpen")&&(0,s.dispatch)("core/interface").enableComplementaryArea("core/edit-post","jetpack-sidebar/jetpack")})),(0,i.registerPlugin)("jetpack-sidebar",{render:()=>(0,r.createElement)(m,null,(e=>e.length?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PluginSidebarMoreMenuItem,{target:"jetpack",icon:(0,r.createElement)(p.IM,null)},"Jetpack"),(0,r.createElement)(o.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:(0,r.createElement)(p.IM,null)},e)):null))})},7616:function(e,t,n){"use strict";var r=n(86989),a=n.n(r),o=n(9818),i=n(65736),s=(n(53961),n(82827),n(4235)),l=n(58014);const __=i.__;function c(){const e=(0,s.Z)();return void 0!==typeof window&&window.location&&e?(0,l.Wp)()||(0,l.Ug)()?`https://wordpress.com/plans/my-plan/${e}`:`${window.location.protocol}//${e.replace("::","/")}/wp-admin/admin.php?page=jetpack#/my-plan`:null}(async()=>{if(void 0!==typeof window&&window.location){if(new URLSearchParams(window.location.search).get("plan_upgraded")){let e=null;e:try{if((0,l.Wp)())break e;const t=await a()({path:"/jetpack/v4/site"});e=JSON.parse(t.data).plan.product_name}finally{const t=c();(0,o.dispatch)("core/notices").createNotice("success",e?(0,i.sprintf)(
+/* translators: %s is the plan name, such as Jetpack Premium. */
+__("Congratulations! Your site is now on the %s plan.","jetpack"),e):__("Congratulations! Your site is now on a paid plan.","jetpack"),{isDismissible:!0,...t&&{actions:[{url:c(),label:__("View my plan","jetpack")}]}})}}}})()},44298:function(e,t,n){"use strict";n.d(t,{Qq:function(){return p},X1:function(){return d},Rl:function(){return m},FK:function(){return f},HD:function(){return g},m3:function(){return b}});var r=n(92819),a=n(96483),o=n(65736),i=n(47583),s=n(58014),l=n(4235),c=n(21409),u=n(28069);const __=o.__;function p(e){let{planSlug:t,plan:n,postId:o,postType:i}=e;const c=(0,r.startsWith)(t,"jetpack_")?t:(0,r.get)(n,["path_slug"]),u=(void 0===i?()=>{const e=new URLSearchParams(window.location.search);return(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/admin.php`,{page:"gutenberg-edit-site",postId:e.get("postId"),postType:e.get("postType"),plan_upgraded:1})}:()=>{const e=["page","post"].includes(i)?"":"edit";return(0,s.Wp)()?(0,a.addQueryArgs)("/"+(0,r.compact)([e,i,(0,l.Z)(),o]).join("/"),{plan_upgraded:1}):(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/post.php`,{action:"edit",post:o,plan_upgraded:1})})();return(0,s.Ug)()?(0,a.addQueryArgs)(`https://wordpress.com/plans/${(0,l.Z)()}`,{redirect_to:u,customerType:"business"}):c&&(0,a.addQueryArgs)(`https://wordpress.com/checkout/${(0,l.Z)()}/${c}`,{redirect_to:u})}function d(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{available:n,unavailableReason:r}=(0,c.Z)(t);return!n&&"missing_plan"===r}function m(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{details:n,unavailableReason:r}=(0,c.Z)(t);return(0,u._)(r,n)}const h=[{name:"core/cover",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"video",description:__("Upgrade your plan to use video covers","jetpack")},{name:"core/audio",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"audio",description:__("Upgrade your plan to upload audio","jetpack")}];function f(){return(0,r.get)((0,i.Z)(),"jetpack.enable_upgrade_nudge",!1)}const g=e=>(0,r.map)(h,"name").includes(e),b=e=>(0,r.head)((0,r.filter)(h,(t=>{let{name:n}=t;return n===e})))},99230:function(e,t,n){"use strict";n.d(t,{uM:function(){return i},yX:function(){return s},bu:function(){return l}});var r=n(86989),a=n.n(r),o=n(58014);async function i(){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins"})}catch(e){return Promise.reject(e.message)}}async function s(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins",method:"POST",data:{slug:e,status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}async function l(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:`/jetpack/v4/plugins/${e}`,method:"POST",data:{status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},28069:function(e,t,n){"use strict";n.d(t,{_:function(){return p},Z:function(){return h}});var r=n(65736),a=n(92694),o=n(4981),i=n(1949),s=n(21409),l=n(28137);const __=r.__,c={paid:(0,r._x)("paid","Short label appearing near a block requiring a paid plan","jetpack"),beta:__("beta","jetpack")},u=i.Kc||[];function p(e,t){return"missing_plan"===e&&t.required_plan}function d(e){const t=[];return u.includes(e)&&t.push(c.beta),t}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.length?`${e} (${t.join(", ")})`:e}function h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const{available:i,details:c,unavailableReason:u}=(0,s.Z)(e),h=p(u,c),f=r?"jetpack/":"";if(!i&&!h)return!1;const g=(0,o.registerBlockType)(f+e,{...t,title:m(t.title,d(e))});return h&&(0,a.addFilter)("editor.BlockListBlock",`${f+e}-with-has-warning-is-interactive-class-names`,(0,l.Z)(f+e)),n.forEach((e=>(0,o.registerBlockType)(f+e.name,e.settings))),g}},52291:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98817),a=n(21409);function o(e,t){const{available:n,unavailableReason:o}=(0,a.Z)(e);return!!n&&(0,r.registerPlugin)(`jetpack-${e}`,t)}},41632:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:24,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0 0 24 24";return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,viewBox:o},(0,r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},55637:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=(e,t,n,o,i)=>{const{isSelected:s}=t,l=t.attributes[e];return(0,r.createElement)("div",{className:s?`jetpack-${e}-block is-selected`:`jetpack-${e}-block`},!s&&""!==l&&o(t),(s||""===l)&&(0,r.createElement)(a.PlainText,{value:l,placeholder:n,"aria-label":n,onChange:i}))}},58014:function(e,t,n){"use strict";n.d(t,{Wp:function(){return i},Ug:function(){return s},M6:function(){return l}});var r=n(92819),a=n(47583);function o(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function i(){return"simple"===o()}function s(){return"atomic"===o()}function l(){return(0,r.get)((0,a.Z)(),["jetpack","is_private_site"],!1)}},92919:function(e,t,n){"use strict";var r=n(9818),a=n(65736),o=(n(53961),n(82827));const __=a.__;if(void 0!==typeof window&&window.location){const{query:e}=(0,o.Qc)(window.location.href,!0);e.stripe_connect_success?(0,r.dispatch)("core/notices").createNotice("success",__("Congrats! Your site is now connected to Stripe. You can now start accepting funds!","jetpack")):e.stripe_connect_cancelled&&(0,r.dispatch)("core/notices").createNotice("error",__("You cancelled connecting your site to Stripe.","jetpack"))}},87072:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(86989),o=n.n(a);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;return t(!0),new Promise(((n,r)=>{o()({path:`/wpcom/v2/resolve-redirect/?url=${encodeURIComponent(e)}`}).then((a=>{t(!1);const o=a.status?parseInt(a.status,10):null;o&&o>=400?r():n(a.url||e)}),(()=>{t(!1),r()}))}))}},37930:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),a=n(9818),o=n(69307);function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t&&t(e),n?window.open(e,"_blank"):window.top.location.href=e}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const[n,s]=(0,o.useState)(!1),{isAutosaveablePost:l,isDirtyPost:c,currentPost:u}=(0,a.useSelect)((e=>{const t=e("core/editor");return{isAutosaveablePost:t.isEditedPostAutosaveable(),isDirtyPost:t.isEditedPostDirty(),currentPost:t.getCurrentPost()}}),[]),p=Object.keys(u).length>0,d=(0,a.useSelect)((e=>!!window.wp.customize||!!e("core/edit-widgets"))),m=(0,a.dispatch)("core/editor").savePost,h=(0,a.useSelect)((e=>e("core").__experimentalGetDirtyEntityRecords())),f=async()=>{for(let e=0;e<h.length;e++)await(0,a.dispatch)("core").saveEditedEntityRecord(h[e].kind,h[e].name,h[e].key)},g=async e=>{e.preventDefault(),p?c&&l&&await m(e):await f(e)},b=async r=>{r.preventDefault(),n||(s(!0),g(r).then((()=>{i(e,t,d)})))};return{autosave:g,autosaveAndRedirect:b,isRedirecting:n}}},18733:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(92819),a=n(9818),o=n(92694),i=(n(13180),n(44298)),s=n(37930);const l="a8c.wpcom-block-editor.openCheckoutModal";function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const{checkoutUrl:n,planData:c}=(0,a.useSelect)((t=>{const n=t("core/editor"),r=t("wordpress-com/plans"),{id:a,type:o}=n.getCurrentPost(),s=r&&r.getPlan(e);return{checkoutUrl:(0,i.Qq)({plan:s,planSlug:e,postId:a,postType:o}),planData:s}}),[]),{autosave:u,autosaveAndRedirect:p,isRedirecting:d}=(0,s.Z)(n,t),m=async e=>{if(e.preventDefault(),(0,o.hasAction)(l))return e.preventDefault(),u(e),void(0,o.doAction)(l,{products:[c]});p(e)};return[n,m,d,c]}},33690:function(e,t,n){"use strict";n.d(t,{U:function(){return a}});var r=n(9818);const a=async()=>new Promise((e=>{const t=(0,r.subscribe)((()=>{(0,r.select)("core/editor").isCleanNewPost()&&(t(),e());(0,r.select)("core/editor").getBlocks().length>0&&(t(),e())}))}))},28137:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333);t.Z=e=>(0,i.createHigherOrderComponent)((t=>n=>(0,o.createElement)(t,a()({},n,{className:n.name===e?"has-warning is-interactive":n.className}))),"withHasWarningIsInteractiveClassNames")},15111:function(e,t,n){"use strict";n.d(t,{tT:function(){return r},Wp:function(){return a},Vy:function(){return o},_5:function(){return i}});const r="jetpack/media-source",a="is-playing",o="is-error",i="is-paused"},73617:function(e,t,n){"use strict";var r=n(9818),a=n(46169),o=n(15111);if(void 0!==r.createReduxStore){const e=(0,r.createReduxStore)(o.tT,a.Z);(0,r.register)(e)}else(0,r.registerStore)(o.tT,a.Z)},46169:function(e,t,n){"use strict";var r=n(15111);const a={sources:{},default:null},o={getDefaultMediaSource(e){let t=null;const n=Object.keys(e.sources);if(e.default?t=e.default:n?.length&&(t=e.sources[n[0]].id),t)return e.sources[t]},getMediaPlayerState:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.state,getMediaSourceCurrentTime:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.currentTime,getMediaSourceDuration(e,t){if(!t){return o.getDefaultMediaSource(e)?.duration}return e.sources?.[t]?.duration},getMediaSourceDomReference(e,t){const n=t?e.sources?.[t]:o.getDefaultMediaSource(e);if(!n)return;const r=n?.domId;return r?document.getElementById(r):void 0}},i={reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;const n=t.id||e.default||Object.keys(e.sources)?.[0];switch(t.type){case"REGISTER_MEDIA_SOURCE":return{...e,sources:{...e.sources,[t.id]:{id:t.id,...t.mediaSourceState}}};case"UPDATE_MEDIA_SOURCE_DATA":return{...e,sources:{...e.sources,[t.id]:{...e.sources[t.id],...t.data}}};case"UNREGISTER_MEDIA_SOURCE":{const n=Object.assign({},e);return n.sources[t.id]&&delete n.sources[t.id],t.id===e.default&&(n.default=Object.keys(e.sources)?.[0]),n}case"SET_DEFAULT_MEDIA_SOURCE":return{...e,default:t.id};case"SET_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:t.state}}};case"TOGGLE_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:e.sources[n].state===r.Wp?r._5:r.Wp}}};case"SET_MEDIA_PLAYER_CURRENT_TIME":return{...e,sources:{...e.sources,[n]:{...e.sources[n],currentTime:t.currentTime}}}}return e},actions:{registerMediaSource:(e,t)=>({type:"REGISTER_MEDIA_SOURCE",id:e,mediaSourceState:t}),updateMediaSourceData:(e,t)=>({type:"UPDATE_MEDIA_SOURCE_DATA",id:e,data:t}),unregisterMediaSource:e=>({type:"UNREGISTER_MEDIA_SOURCE",id:e}),setDefaultMediaSource:e=>({type:"SET_DEFAULT_MEDIA_SOURCE",id:e}),playMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Wp}),toggleMediaSource:e=>({type:"TOGGLE_MEDIA_PLAYER_STATE",id:e}),pauseMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r._5}),errorMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Vy}),setMediaSourceCurrentTime:(e,t)=>({type:"SET_MEDIA_PLAYER_CURRENT_TIME",id:e,currentTime:t})},selectors:o};t.Z=i},75139:function(e,t,n){"use strict";n.d(t,{M:function(){return r},X:function(){return a}});var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(e,t,n){"use strict";n.d(t,{ZP:function(){return i}});var r=n(52141),a=n(63807),o=n(75139);function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,o.X)(t);if(!i||isNaN(e))return null;var s=(0,r.Z)({},i,n),l=s.decimal,c=s.grouping,u=s.precision,p=s.symbol,d=e<0?"-":"",m=(0,a.Y4)(Math.abs(e),{decimals:u,thousandsSep:c,decPoint:l});return"".concat(d).concat(p).concat(m)}},94481:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99196),a=n(32365);function o(e,t){let n,a,i=[];for(let r=0;r<e.length;r++){const o=e[r];if("string"!==o.type){if(void 0===t[o.value])throw new Error(`Invalid interpolation, missing component node: \`${o.value}\``);if("object"!=typeof t[o.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${o.value}\``);if("componentClose"===o.type)throw new Error(`Missing opening component token: \`${o.value}\``);if("componentOpen"===o.type){n=t[o.value],a=r;break}i.push(t[o.value])}else i.push(o.value)}if(n){const s=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(a,e),l=o(e.slice(a+1,s),t),c=(0,r.cloneElement)(n,{},l);if(i.push(c),s<e.length-1){const n=o(e.slice(s+1),t);i=i.concat(n)}}return i=i.filter(Boolean),0===i.length?null:1===i.length?i[0]:(0,r.createElement)(r.Fragment,null,...i)}function i(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const i=(0,a.Z)(t);try{return o(i,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},32365:function(e,t,n){"use strict";function r(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function a(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(t,{Z:function(){return a}})},47236:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(2571);function o(e){(0,r.assign)(e,a.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},59177:function(e,t,n){"use strict";function r(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}(0,n(47236).Z)(r.prototype),r.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},r.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},r.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(e){}return!t},r.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},r.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t},t.Z=r},39151:function(e,t,n){"use strict";var r=n(59177);t.Z=function(e,t){var n,a=new r.Z;a.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+a.getScreenCenterSpecs(780,700)),a.once("close",(function(){var e={};n&&n.keyring_id&&(e.keyring_id=Number(n.keyring_id),e.id_token=n.id_token,e.user=n.user),t(e)})),a.on("message",(function(e){return n=e}))}},52489:function(e,t,n){"use strict";var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(11268),l=n.n(s),c=n(99196),u=n.n(c),p=n(92819),d=n(13639),m=(n(99889),function(e){return e&&e.replace(/^[^/]+[/]*/,"").replace(/\/.*$/,"")}),h=(0,d.SL)((0,d.hs)(80),(0,d.KB)(80)),f=(0,d.SL)((0,d.hs)(200),(0,d.KB)(200)),g=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.type,r=e.title,a=e.description,o=e.image,i=e.author;return u().createElement("div",{className:"facebook-preview facebook-preview__".concat(n)},u().createElement("div",{className:"facebook-preview__content"},u().createElement("div",{className:"facebook-preview__image"},o&&u().createElement("img",{alt:"Facebook Preview Thumbnail",src:o})),u().createElement("div",{className:"facebook-preview__body"},u().createElement("div",{className:"facebook-preview__url"},(0,p.compact)([m(t),i]).join(" | ")),u().createElement("div",{className:"facebook-preview__title"},h(r||"")),u().createElement("div",{className:"facebook-preview__description"},f((0,d.ju)(a))))))}}]),n}(c.PureComponent);g.propTypes={url:l().string,type:l().string,title:l().string,description:l().string,image:l().string,author:l().string},t.Z=g},13639:function(e,t,n){"use strict";n.d(t,{hs:function(){return a},I$:function(){return o},KB:function(){return i},SL:function(){return s},ju:function(){return l}});var r=n(92819),a=function(e){return function(t){return t.length<=e&&t}},o=function(e,t){return function(n){var r=n.slice(0,t),a=r.lastIndexOf(" ");return a>e&&a<t&&r.slice(0,a).concat("…")}},i=function(e){return function(t){return t.slice(0,e).concat("…")}},s=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return(0,r.find)(t,(function(t){return!1!==t(e)}))(e)}},l=function(e){return e?e.replace(/(<([^>]+)>)/gi,""):""}},80505:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(13639),l=(n(93474),160),c=(0,s.SL)((0,s.hs)(63),(0,s.I$)(23,73),(0,s.KB)(63)),u=(0,s.SL)((0,s.hs)(l),(0,s.I$)(80,170),(0,s.KB)(l));function p(e){var t=e.description,n=e.title,r=e.url;return i().createElement("div",{className:"search-preview"},i().createElement("div",{className:"search-preview__display"},i().createElement("div",{className:"search-preview__url"},function(e){var t=e.replace(/^[^/]+[/]*/,"").split("/").join(" › ");return(0,s.SL)((0,s.hs)(68),(0,s.KB)(68))(t)}(r)," ▾"),i().createElement("div",{className:"search-preview__title"},c(n)),i().createElement("div",{className:"search-preview__description"},u((0,s.ju)(t)))))}p.propTypes={title:a().string,url:a().string,description:a().string},p.defaultProps={title:"",url:"",description:""}},79465:function(e,t,n){"use strict";var r=n(40988),a=n(49058),o=n(45086),i=n(57275),s=n(45814),l=n(15746),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(82943),h=(n(33285),function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"render",value:function(){var e=this.props.tweets||[{text:"",media:[],card:(0,a.Z)((0,a.Z)({},this.props),{},{type:"large_image_summary"===this.props.type?"summary_large_image":this.props.type}),date:Date.now(),name:"Account Name",profileImage:"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:"@account"}];return d().createElement("div",{className:"twitter-preview"},e&&e.map((function(t,n){return d().createElement(m.t,(0,r.Z)({key:"twitter-preview__tweet-".concat(n),isLast:n+1===e.length},t))})))}}]),n}(p.PureComponent));h.propTypes={tweets:u().array},t.Z=h},82943:function(e,t,n){"use strict";n.d(t,{t:function(){return k}});var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(89105),l=n.n(s),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(76292),h=n.n(m),f=n(65736),g=n(55609),b=n(13639);n(33285);var __=f.__,v=(0,b.SL)((0,b.hs)(200),(0,b.KB)(200)),k=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"renderSidebar",value:function(e,t){return d().createElement("div",{className:"twitter-preview__sidebar"},d().createElement("div",{className:"twitter-preview__profile-image"},d().createElement("img",{alt:__("Twitter profile image","jetpack"),src:e})),!t&&d().createElement("div",{className:"twitter-preview__connector"}))}},{key:"renderHeader",value:function(e,t,n){return d().createElement("div",{className:"twitter-preview__header"},d().createElement("span",{className:"twitter-preview__name"},e),d().createElement("span",{className:"twitter-preview__screen-name"},t),d().createElement("span",{className:"twitter-preview__date"},h()(n).format("MMM D")))}},{key:"renderText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.url||"",a=e.endsWith(r)?e.substr(0,e.lastIndexOf(r)):e,o=t.reduce((function(e,t){return e.replace(new RegExp("\\("+t+"\\)","g"),'(<a href="'.concat(t,'">').concat(t,"</a>)"))}),(0,b.ju)(a).replace(new RegExp("\\n","g"),"<br/>"));return d().createElement("div",{className:"twitter-preview__text",dangerouslySetInnerHTML:{__html:o}})}},{key:"renderMedia",value:function(e){if(e){var t=e.filter((function(e){return e.type.startsWith("image/")||e.type.startsWith("video/")})).filter((function(e,t,n){return 0===t||!n[0].type.startsWith("video/")&&"image/gif"!==n[0].type&&(!e.type.startsWith("video/")&&"image/gif"!==e.type)})).slice(0,4),n=t.length>0&&t[0].type.startsWith("video/"),r=l()(["twitter-preview__media","twitter-preview__media-children-"+t.length]);if(0!==t.length)return d().createElement("div",{className:r},n&&t.map((function(e,t){return d().createElement("video",{key:"twitter-preview__media-item-".concat(t),controls:!0},d().createElement("source",{src:e.url,type:e.type})," ")})),!n&&t.map((function(e,t){return d().createElement("img",{key:"twitter-preview__media-item-".concat(t),alt:e.alt,src:e.url})})))}}},{key:"renderQuoteTweet",value:function(e){if(e)return d().createElement("div",{className:"twitter-preview__quote-tweet"},d().createElement(g.SandBox,{html:'<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><a href="'.concat(e,'"></a></blockquote>'),scripts:["https://platform.twitter.com/widgets.js"],title:"Embedded tweet",onFocus:this.hideOverlay}),d().createElement("div",{className:"twitter-preview__quote-tweet-overlay"}))}},{key:"renderCard",value:function(e){if(e){var t=e.description,n=e.image,r=e.title,a=e.type,o=e.url,i=l()("twitter-preview__card-".concat(a),{"twitter-preview__card-has-image":!!n});return d().createElement("div",{className:"twitter-preview__card"},d().createElement("div",{className:i},n&&d().createElement("img",{className:"twitter-preview__card-image",src:n,alt:""}),d().createElement("div",{className:"twitter-preview__card-body"},d().createElement("div",{className:"twitter-preview__card-title"},r),d().createElement("div",{className:"twitter-preview__card-description"},v((0,b.ju)(t))),d().createElement("div",{className:"twitter-preview__card-url"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("g",null,d().createElement("path",{d:"M11.96 14.945c-.067 0-.136-.01-.203-.027-1.13-.318-2.097-.986-2.795-1.932-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608c2.322-1.716 5.61-1.224 7.33 1.1.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094c-.333.246-.804.175-1.05-.158-.246-.334-.176-.804.158-1.05l1.48-1.095c.803-.592 1.327-1.463 1.476-2.45.148-.988-.098-1.975-.69-2.778-1.225-1.656-3.572-2.01-5.23-.784l-3.53 2.608c-.802.593-1.326 1.464-1.475 2.45-.15.99.097 1.975.69 2.778.498.675 1.187 1.15 1.992 1.377.4.114.633.528.52.928-.092.33-.394.547-.722.547z"}),d().createElement("path",{d:"M7.27 22.054c-1.61 0-3.197-.735-4.225-2.125-.832-1.127-1.176-2.51-.968-3.894s.943-2.605 2.07-3.438l1.478-1.094c.334-.245.805-.175 1.05.158s.177.804-.157 1.05l-1.48 1.095c-.803.593-1.326 1.464-1.475 2.45-.148.99.097 1.975.69 2.778 1.225 1.657 3.57 2.01 5.23.785l3.528-2.608c1.658-1.225 2.01-3.57.785-5.23-.498-.674-1.187-1.15-1.992-1.376-.4-.113-.633-.527-.52-.927.112-.4.528-.63.926-.522 1.13.318 2.096.986 2.794 1.932 1.717 2.324 1.224 5.612-1.1 7.33l-3.53 2.608c-.933.693-2.023 1.026-3.105 1.026z"}))),function(e){return e.replace(/^[^/]+[/]*(www\.)?/,"").replace(/\/.*$/,"")}(o||"")))))}}},{key:"renderFooter",value:function(){return d().createElement("div",{className:"twitter-preview__footer"},d().createElement("span",{className:"twitter-preview__icon-replies"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828c0 .108.044.286.12.403.142.225.384.347.632.347.138 0 .277-.038.402-.118.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67c0-.414-.335-.75-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"}))),d().createElement("span",{className:"twitter-preview__icon-retweets"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M23.77 15.67c-.292-.293-.767-.293-1.06 0l-2.22 2.22V7.65c0-2.068-1.683-3.75-3.75-3.75h-5.85c-.414 0-.75.336-.75.75s.336.75.75.75h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22c-.293-.293-.768-.293-1.06 0s-.294.768 0 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5c.294-.292.294-.767 0-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22c.148.147.34.22.532.22s.384-.073.53-.22c.293-.293.293-.768 0-1.06l-3.5-3.5c-.293-.294-.768-.294-1.06 0l-3.5 3.5c-.294.292-.294.767 0 1.06s.767.293 1.06 0l2.22-2.22V16.7c0 2.068 1.683 3.75 3.75 3.75h5.85c.414 0 .75-.336.75-.75s-.337-.75-.75-.75z"}))),d().createElement("span",{className:"twitter-preview__icon-likes"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"}))),d().createElement("span",{className:"twitter-preview__icon-share"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M17.53 7.47l-5-5c-.293-.293-.768-.293-1.06 0l-5 5c-.294.293-.294.768 0 1.06s.767.294 1.06 0l3.72-3.72V15c0 .414.336.75.75.75s.75-.336.75-.75V4.81l3.72 3.72c.146.147.338.22.53.22s.384-.072.53-.22c.293-.293.293-.767 0-1.06z"}),d().createElement("path",{d:"M19.708 21.944H4.292C3.028 21.944 2 20.916 2 19.652V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 .437.355.792.792.792h15.416c.437 0 .792-.355.792-.792V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 1.264-1.028 2.292-2.292 2.292z"}))))}},{key:"render",value:function(){var e=this.props,t=e.isLast,n=e.profileImage,r=e.name,a=e.screenName,o=e.date,i=e.text,s=e.media,l=e.tweet,c=e.urls,u=e.card;return d().createElement("div",{className:"twitter-preview__container"},this.renderSidebar(n,t),d().createElement("div",{className:"twitter-preview__main"},this.renderHeader(r,a,o),d().createElement("div",{className:"twitter-preview__content"},this.renderText(i,c,u),this.renderMedia(s),this.renderQuoteTweet(l),this.renderCard(u)),this.renderFooter()))}}]),n}(p.PureComponent);k.propTypes={tweets:u().array,isLast:u().bool,profileImage:u().string,name:u().string,screenName:u().string,date:u().number,text:u().string,media:u().array,tweet:u().string,urls:u().array,card:u().object}},48468:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(83712)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},83712:function(e,t,n){e.exports=function(e){function t(e){let n,a=null;function o(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!o.enabled)return;const i=o,s=Number(new Date),l=s-(n||s);i.diff=l,i.prev=n,i.curr=s,n=s,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(i,t),r.splice(c,1),c--}return e})),t.formatArgs.call(i,r);const u=i.log||t.log;u.apply(i,r)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===a?t.enabled(e):a,set:e=>{a=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},90922:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(31967)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){e.exports=function(e){function t(e){let n,a,o,i=null;function s(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!s.enabled)return;const o=s,i=Number(new Date),l=i-(n||i);o.diff=l,o.prev=n,o.curr=i,n=i,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(o,t),r.splice(c,1),c--}return e})),t.formatArgs.call(o,r);const u=o.log||t.log;u.apply(o,r)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(a!==t.namespaces&&(a=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},48735:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.size,n=void 0===t?24:t,a=e.onClick,o=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-fullscreen",o,!1,!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:l,height:n,width:n,onClick:a},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M21 3v6h-2V6.41l-3.29 3.3-1.42-1.42L17.59 5H15V3zM3 3v6h2V6.41l3.29 3.3 1.42-1.42L6.41 5H9V3zm18 18v-6h-2v2.59l-3.29-3.29-1.41 1.41L17.59 19H15v2zM9 21v-2H6.41l3.29-3.29-1.41-1.42L5 17.59V15H3v6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},20651:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-notice-outline",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},35381:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-star",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.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"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},7104:function(e,t,n){var r;e=n.nmd(e),function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof window&&window;o.global!==o&&o.window!==o&&o.self;var i,s=2147483647,l=36,c=/^xn--/,u=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,h=String.fromCharCode;function f(e){throw RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(p,".")).split("."),t).join(".")}function v(e){for(var t,n,r=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function k(e){return g(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function E(e,t,n){var r=0;for(e=n?m(e/700):e>>1,e+=m(e/t);e>455;r+=l)e=m(e/35);return m(r+36*e/(e+38))}function w(e){var t,n,r,a,o,i,c,u,p,d,h,g=[],b=e.length,v=0,y=128,w=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&f("not-basic"),g.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(o=v,i=1,c=l;a>=b&&f("invalid-input"),((u=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||u>m((s-v)/i))&&f("overflow"),v+=u*i,!(u<(p=c<=w?1:c>=w+26?26:c-w));c+=l)i>m(s/(d=l-p))&&f("overflow"),i*=d;w=E(v-o,t=g.length+1,0==o),m(v/t)>s-y&&f("overflow"),y+=m(v/t),v%=t,g.splice(v++,0,y)}return k(g)}function _(e){var t,n,r,a,o,i,c,u,p,d,g,b,k,w,_,C=[];for(b=(e=v(e)).length,t=128,n=0,o=72,i=0;i<b;++i)(g=e[i])<128&&C.push(h(g));for(r=a=C.length,a&&C.push("-");r<b;){for(c=s,i=0;i<b;++i)(g=e[i])>=t&&g<c&&(c=g);for(c-t>m((s-n)/(k=r+1))&&f("overflow"),n+=(c-t)*k,t=c,i=0;i<b;++i)if((g=e[i])<t&&++n>s&&f("overflow"),g==t){for(u=n,p=l;!(u<(d=p<=o?1:p>=o+26?26:p-o));p+=l)_=u-d,w=l-d,C.push(h(y(d+_%w,0))),u=m(_/w);C.push(h(y(u,0))),o=E(n,k,r==a),n=0,++r}++n,++t}return C.join("")}i={version:"1.3.2",ucs2:{decode:v,encode:k},decode:w,encode:_,toASCII:function(e){return b(e,(function(e){return u.test(e)?"xn--"+_(e):e}))},toUnicode:function(e){return b(e,(function(e){return c.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},15661:function(e,t,n){"use strict";n.r(t),n.d(t,{ucs2decode:function(){return m},ucs2encode:function(){return h},decode:function(){return b},encode:function(){return v},toASCII:function(){return y},toUnicode:function(){return k}});const r=2147483647,a=36,o=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function p(e){throw new RangeError(l[e])}function d(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){const t=[];let n=0;const r=e.length;for(;n<r;){const a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&a)<<10)+(1023&r)+65536):(t.push(a),n--)}else t.push(a)}return t}const h=e=>String.fromCodePoint(...e),f=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){let r=0;for(e=n?c(e/700):e>>1,e+=c(e/t);e>455;r+=a)e=c(e/35);return c(r+36*e/(e+38))},b=function(e){const t=[],n=e.length;let o=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let n=0;n<l;++n)e.charCodeAt(n)>=128&&p("not-basic"),t.push(e.charCodeAt(n));for(let d=l>0?l+1:0;d<n;){let l=o;for(let t=1,i=a;;i+=a){d>=n&&p("invalid-input");const l=(u=e.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:a;(l>=a||l>c((r-o)/t))&&p("overflow"),o+=l*t;const m=i<=s?1:i>=s+26?26:i-s;if(l<m)break;const h=a-m;t>c(r/h)&&p("overflow"),t*=h}const m=t.length+1;s=g(o-l,m,0==l),c(o/m)>r-i&&p("overflow"),i+=c(o/m),o%=m,t.splice(o++,0,i)}var u;return String.fromCodePoint(...t)},v=function(e){const t=[];let n=(e=m(e)).length,o=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let l=t.length,d=l;for(l&&t.push("-");d<n;){let n=r;for(const t of e)t>=o&&t<n&&(n=t);const m=d+1;n-o>c((r-i)/m)&&p("overflow"),i+=(n-o)*m,o=n;for(const n of e)if(n<o&&++i>r&&p("overflow"),n==o){let e=i;for(let n=a;;n+=a){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const o=e-r,i=a-r;t.push(u(f(r+o%i,0))),e=c(o/i)}t.push(u(f(e,0))),s=g(i,m,d==l),i=0,++d}++i,++o}return t.join("")},k=function(e){return d(e,(function(e){return o.test(e)?b(e.slice(4).toLowerCase()):e}))},y=function(e){return d(e,(function(e){return i.test(e)?"xn--"+v(e):e}))},E={version:"2.1.0",ucs2:{decode:m,encode:h},decode:b,encode:v,toASCII:y,toUnicode:k};t.default=E},5157:function(e,t,n){"use strict";const r=n(55778),a=n(97115),o=n(63851),i=n(95946);function s(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?a(e):e}function u(e){return Array.isArray(e)?e.sort():"object"==typeof e?u(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function p(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=p(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function m(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const a="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!a&&c(n,e).includes(e.arrayFormatSeparator);n=o?c(n,e):n;const i=a||o?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const a=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!a)return void(r[t]=n?c(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const a of e.split("&")){if(""===a)continue;let[e,i]=o(t.decode?a.replace(/\+/g," "):a,"=");i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:c(i,t),n(c(e,t),i,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=m(n[e],t);else r[e]=m(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=u(n):e[t]=n,e}),Object.create(null))}t.extract=d,t.parse=h,t.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const a=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",a,"]"].join("")]:[...n,[l(t,e),"[",l(a,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,a)=>void 0===a||e.skipNull&&null===a||e.skipEmptyString&&""===a?r:(a=null===a?"":a,0===r.length?[[l(n,e),t,l(a,e)].join("")]:[[r,l(a,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),a={};for(const t of Object.keys(e))n(t)||(a[t]=e[t]);const o=Object.keys(a);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const a=e[n];return void 0===a?"":null===a?l(n,t):Array.isArray(a)?0===a.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":a.reduce(r(n),[]).join("&"):l(n,t)+"="+l(a,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:h(d(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0},n);const r=p(e.url).split("?")[0]||"",a=t.extract(e.url),o=t.parse(a,{sort:!1}),i=Object.assign(o,e.query);let s=t.stringify(i,n);s&&(s=`?${s}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${l(e.fragmentIdentifier,n)}`),`${r}${s}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0},r);const{url:a,query:o,fragmentIdentifier:s}=t.parseUrl(e,r);return t.stringifyUrl({url:a,query:i(o,n),fragmentIdentifier:s},r)},t.exclude=(e,n,r)=>{const a=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,a,r)}},63851:function(e){"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},55778:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},84080:function(e){e.exports=/[\0-\x1F\x7F-\x9F]/},75423:function(e){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},87696:function(e){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},76202:function(e){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},39126:function(e,t,n){"use strict";t.Any=n(26285),t.Cc=n(84080),t.Cf=n(75423),t.P=n(87696),t.Z=n(76202)},26285:function(e){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},86841:function(){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set&&"function"==typeof t.prototype.entries}catch(e){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var o=e[r];if("[object Array]"!==Object.prototype.toString.call(o)&&2===o.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(o[0],o[1])}else for(var i in e)e.hasOwnProperty(i)&&this.append(i,e[i])}},o=a.prototype;o.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},o.delete=function(e){delete this._entries[e]},o.get=function(e){return e in this._entries?this._entries[e][0]:null},o.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},o.has=function(e){return e in this._entries},o.set=function(e,t){this._entries[e]=[String(t)]},o.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},o.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},o.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},o.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(o[Symbol.iterator]=o.entries),o.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var o=e.URLSearchParams.prototype;"function"!=typeof o.sort&&(o.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof o._fromString&&Object.defineProperty(o,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,o=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<o.length;n++)r=o[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c d","http://a/c%20d"===t.href&&t.searchParams}catch(e){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t)),n&&"string"!=typeof n&&(n=String(n));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){n=n.toLowerCase(),(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(e){throw new Error("URL unable to set base "+n+" due to "+e)}}var o=a.createElement("a");o.href=t,r&&(a.body.appendChild(o),o.href=o.href);var i=a.createElement("input");if(i.type="url",i.value=t,":"===o.protocol||!/:/.test(o.href)||!i.checkValidity()&&!n)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:o});var s=new e.URLSearchParams(this.search),l=!0,c=!0,u=this;["append","delete","set"].forEach((function(e){var t=s[e];s[e]=function(){t.apply(s,arguments),l&&(c=!1,u.search=s.toString(),c=!0)}})),Object.defineProperty(this,"searchParams",{value:s,enumerable:!0});var p=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==p&&(p=this.search,c&&(l=!1,this.searchParams._fromString(this.search),l=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},82827:function(e,t,n){"use strict";var r=n(7104),a=n(68070);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.Qc=k,t.WU=function(e){a.isString(e)&&(e=k(e));return e instanceof o?e.format():o.prototype.format.call(e)};var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(76250);function k(e,t,n){if(e&&a.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var k=e=c.join(s);if(k=k.trim(),!n&&1===e.split("#").length){var y=l.exec(k);if(y)return this.path=k,this.href=k,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var E=i.exec(k);if(E){var w=(E=E[0]).toLowerCase();this.protocol=w,k=k.substr(E.length)}if(n||E||k.match(/^\/\/[^@\/]+@[^@\/]+/)){var _="//"===k.substr(0,2);!_||E&&g[E]||(k=k.substr(2),this.slashes=!0)}if(!g[E]&&(_||E&&!b[E])){for(var C,j,S=-1,x=0;x<d.length;x++){-1!==(T=k.indexOf(d[x]))&&(-1===S||T<S)&&(S=T)}-1!==(j=-1===S?k.lastIndexOf("@"):k.lastIndexOf("@",S))&&(C=k.slice(0,j),k=k.slice(j+1),this.auth=decodeURIComponent(C)),S=-1;for(x=0;x<p.length;x++){var T;-1!==(T=k.indexOf(p[x]))&&(-1===S||T<S)&&(S=T)}-1===S&&(S=k.length),this.host=k.slice(0,S),k=k.slice(S),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var P=this.hostname.split(/\./),A=(x=0,P.length);x<A;x++){var I=P[x];if(I&&!I.match(m)){for(var M="",B=0,R=I.length;B<R;B++)I.charCodeAt(B)>127?M+="x":M+=I[B];if(!M.match(m)){var L=P.slice(0,x),Z=P.slice(x+1),F=I.match(h);F&&(L.push(F[1]),Z.unshift(F[2])),Z.length&&(k="/"+Z.join(".")+k),this.hostname=L.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=r.toASCII(this.hostname));var D=this.port?":"+this.port:"",O=this.hostname||"";this.host=O+D,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==k[0]&&(k="/"+k))}if(!f[w])for(x=0,A=u.length;x<A;x++){var z=u[x];if(-1!==k.indexOf(z)){var U=encodeURIComponent(z);U===z&&(U=escape(z)),k=k.split(z).join(U)}}var $=k.indexOf("#");-1!==$&&(this.hash=k.substr($),k=k.slice(0,$));var V=k.indexOf("?");if(-1!==V?(this.search=k.substr(V),this.query=k.substr(V+1),t&&(this.query=v.parse(this.query)),k=k.slice(0,V)):t&&(this.search="",this.query={}),k&&(this.pathname=k),b[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){D=this.pathname||"";var G=this.search||"";this.path=D+G}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(i=v.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||b[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},o.prototype.resolve=function(e){return this.resolveObject(k(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(a.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(n[u]=e[u])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!b[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var m=p[d];n[m]=e[m]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),n.pathname=h.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var k=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=y||k||n.host&&e.pathname,w=E,_=n.pathname&&n.pathname.split("/")||[],C=(h=e.pathname&&e.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),E=E&&(""===h[0]||""===_[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,_=h;else if(h.length)_||(_=[]),_.pop(),_=_.concat(h),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(C)n.hostname=n.host=_.shift(),(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var j=_.slice(-1)[0],S=(n.host||e.host||_.length>1)&&("."===j||".."===j)||""===j,x=0,T=_.length;T>=0;T--)"."===(j=_[T])?_.splice(T,1):".."===j?(_.splice(T,1),x++):x&&(_.splice(T,1),x--);if(!E&&!w)for(;x--;x)_.unshift("..");!E||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),S&&"/"!==_.join("/").substr(-1)&&_.push("");var N,P=""===_[0]||_[0]&&"/"===_[0].charAt(0);C&&(n.hostname=n.host=P?"":_.length?_.shift():"",(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift()));return(E=E||n.host&&_.length)&&!P&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},68070:function(e){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},11043:function(e,t,n){"use strict";var r=n(1625),a=n(99196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,o=a.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=o[0];var i=o[1];return o=e.value,e.getCurrentValue===t&&e.subscribe===n||(o=t(),i({getCurrentValue:t,subscribe:n,value:o})),a.useDebugValue(o),a.useEffect((function(){function e(){if(!a){var e=t();i((function(a){return a.getCurrentValue!==t||a.subscribe!==n||a.value===e?a:r({},a,{value:e})}))}}var a=!1,o=n(e);return e(),function(){a=!0,o()}}),[t,n]),o}},20036:function(e,t,n){"use strict";e.exports=n(11043)},61521:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},22199:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,a=arguments.length;n<a;n++)t.push(arguments[n]);return t}function a(e,t,n){var r=t===e.head?new s(n,null,t,e):new s(n,t,t.next,e);return null===r.next&&(e.tail=r),null===r.prev&&(e.head=r),e.length++,r}function o(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function i(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,n,r){if(!(this instanceof s))return new s(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}e.exports=r,r.Node=s,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},r.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},r.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},r.prototype.forEach=function(e,t){t=t||this;for(var n=this.head,r=0;null!==n;r++)e.call(t,n.value,r,this),n=n.next},r.prototype.forEachReverse=function(e,t){t=t||this;for(var n=this.tail,r=this.length-1;null!==n;r--)e.call(t,n.value,r,this),n=n.prev},r.prototype.get=function(e){for(var t=0,n=this.head;null!==n&&t<e;t++)n=n.next;if(t===e&&null!==n)return n.value},r.prototype.getReverse=function(e){for(var t=0,n=this.tail;null!==n&&t<e;t++)n=n.prev;if(t===e&&null!==n)return n.value},r.prototype.map=function(e,t){t=t||this;for(var n=new r,a=this.head;null!==a;)n.push(e.call(t,a.value,this)),a=a.next;return n},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r,a=this.tail;null!==a;)n.push(e.call(t,a.value,this)),a=a.prev;return n},r.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var a=0;null!==r;a++)n=e(n,r.value,a),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var a=this.length-1;null!==r;a--)n=e(n,r.value,a),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=0,o=this.head;null!==o&&a<e;a++)o=o.next;for(;null!==o&&a<t;a++,o=o.next)n.push(o.value);return n},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=this.length,o=this.tail;null!==o&&a>t;a--)o=o.prev;for(;null!==o&&a>e;a--,o=o.prev)n.push(o.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,o=this.head;null!==o&&r<e;r++)o=o.next;var i=[];for(r=0;o&&r<t;r++)i.push(o.value),o=this.removeNode(o);null===o&&(o=this.tail),o!==this.head&&o!==this.tail&&(o=o.prev);for(r=0;r<n.length;r++)o=a(this,o,n[r]);return i},r.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;null!==n;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};try{n(61521)(r)}catch(e){}},8964:function(e,t,n){"use strict";e.exports=n.p+"images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png"},90767:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-after-d6db862c442c24ad1c63.png"},58632:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-before-4592b4656108c1429614.png"},96406:function(e,t,n){"use strict";e.exports=n.p+"images/map-preview-97bda80ebb6981457630.jpg"},45107:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg"},56932:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_default-b53ccdf170e5ac873ff0.jpg"},65765:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_satellite-cc50c608e244f90d18dc.jpg"},34140:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_terrain-ac291441b3461820747d.jpg"},23879:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-2x-3d5d36867a0f3728cc3a.png"},22323:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-5ecd2d5421d74f39e027.png"},60206:function(e,t,n){"use strict";e.exports=n.p+"images/simple-payments_example-1-0273eeccd8d120df4984.jpg"},65784:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-1-07a3f164621235df0419.jpg"},6425:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-2-2ee401e47066229bdac5.jpg"},85983:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-3-0682afca66c485f17ff6.jpg"},37447:function(e,t,n){"use strict";e.exports=n.p+"images/upgrade-illustration-5b3059f7101ac37f4339.svg"},15915:function(e,t,n){"use strict";e.exports=n.p+"images/story_example-1-716db2e4f5a074d302f7.png"},96606:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg"},85472:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg"},79009:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-3-07a3f164621235df0419.jpg"},10742:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg"},52642:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg"},41145:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg"},41194:function(e,t,n){"use strict";e.exports=n.p+"images/videopress-block-example-image-da9ef73787adca8896f2.jpg"},80405:function(e,t,n){"use strict";e.exports=n.p+"images/example_160x600-ccbc594f54431dafa70d.png"},72473:function(e,t,n){"use strict";e.exports=n.p+"images/example_300x250-5b93e8174f02d48c40b7.png"},38511:function(e,t,n){"use strict";e.exports=n.p+"images/example_320x50-7110edf045141630a222.png"},52203:function(e,t,n){"use strict";e.exports=n.p+"images/example_728x90-d9de384932330b92e1c3.png"},99196:function(e){"use strict";e.exports=window.React},92819:function(e){"use strict";e.exports=window.lodash},76292:function(e){"use strict";e.exports=window.moment},25158:function(e){"use strict";e.exports=window.wp.a11y},42998:function(e){"use strict";e.exports=window.wp.annotations},86989:function(e){"use strict";e.exports=window.wp.apiFetch},11313:function(e){"use strict";e.exports=window.wp.blob},52175:function(e){"use strict";e.exports=window.wp.blockEditor},4981:function(e){"use strict";e.exports=window.wp.blocks},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69771:function(e){"use strict";e.exports=window.wp.date},47701:function(e){"use strict";e.exports=window.wp.domReady},72067:function(e){"use strict";e.exports=window.wp.editPost},12238:function(e){"use strict";e.exports=window.wp.editor},69307:function(e){"use strict";e.exports=window.wp.element},81975:function(e){"use strict";e.exports=window.wp.escapeHtml},92694:function(e){"use strict";e.exports=window.wp.hooks},65736:function(e){"use strict";e.exports=window.wp.i18n},39630:function(e){"use strict";e.exports=window.wp.keycodes},53961:function(e){"use strict";e.exports=window.wp.notices},98817:function(e){"use strict";e.exports=window.wp.plugins},70444:function(e){"use strict";e.exports=window.wp.primitives},72629:function(e){"use strict";e.exports=window.wp.richText},29512:function(e){"use strict";e.exports=window.wp.tokenList},96483:function(e){"use strict";e.exports=window.wp.url},90162:function(e){"use strict";e.exports=window.wp.viewport},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},45086:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},57275:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},15746:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(6336),a=n(77363),o=n(2102);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},12472:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},6336:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},45814:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(99112);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},77363:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},49058:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(12472);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},2102:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31344),a=n(25303);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},31344:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},8134:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},14316:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97024:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e){if(Array.isArray(e))return(0,r.Z)(e)}},55200:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},71687:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},93772:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(72406),a=n(58189),o=n(34621);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},98086:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},95672:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},72406:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},82104:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(43051);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},58189:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},40613:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},20120:function(e,t,n){"use strict";function r(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],_n=!0,i=!1;try{for(n=n.call(e);!(_n=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,a=e}finally{try{_n||null==n.return||n.return()}finally{if(i)throw a}}return o}}n.d(t,{Z:function(){return r}})},41722:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},56083:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},52141:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(98086);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&a.push.apply(a,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach((function(t){(0,r.Z)(e,t,n[t])}))}return e}},59591:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98086);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},34621:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(29504),a=n(55200);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},43051:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},50572:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(14316),a=n(20120),o=n(33611),i=n(41722);function s(e,t){return(0,r.Z)(e)||(0,a.Z)(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},59128:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(97024),a=n(40613),o=n(33611),i=n(56083);function s(e){return(0,r.Z)(e)||(0,a.Z)(e)||(0,o.Z)(e)||(0,i.Z)()}},29504:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},33611:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},27655:function(e){"use strict";e.exports=JSON.parse('{"O":{"White":"#fff","Black":"#000","Gray":"#646970","Gray 0":"#f6f7f7","Gray 5":"#dcdcde","Gray 10":"#c3c4c7","Gray 20":"#a7aaad","Gray 30":"#8c8f94","Gray 40":"#787c82","Gray 50":"#646970","Gray 60":"#50575e","Gray 70":"#3c434a","Gray 80":"#2c3338","Gray 90":"#1d2327","Gray 100":"#101517","Blue":"#0675c4","Blue 0":"#e9f0f5","Blue 5":"#bbe0fa","Blue 10":"#91caf2","Blue 20":"#68b3e8","Blue 30":"#399ce3","Blue 40":"#1689db","Blue 50":"#0675c4","Blue 60":"#055d9c","Blue 70":"#044b7a","Blue 80":"#02395c","Blue 90":"#01283d","Blue 100":"#001621","Purple":"#984a9c","Purple 0":"#f2e9ed","Purple 5":"#ebcee0","Purple 10":"#e3afd5","Purple 20":"#d48fc8","Purple 30":"#c475bd","Purple 40":"#b35eb1","Purple 50":"#984a9c","Purple 60":"#7c3982","Purple 70":"#662c6e","Purple 80":"#4d2054","Purple 90":"#35163b","Purple 100":"#1e0c21","Pink":"#c9356e","Pink 0":"#f5e9ed","Pink 5":"#f2ceda","Pink 10":"#f7a8c3","Pink 20":"#f283aa","Pink 30":"#eb6594","Pink 40":"#e34c84","Pink 50":"#c9356e","Pink 60":"#ab235a","Pink 70":"#8c1749","Pink 80":"#700f3b","Pink 90":"#4f092a","Pink 100":"#260415","Red":"#d63638","Red 0":"#f7ebec","Red 5":"#facfd2","Red 10":"#ffabaf","Red 20":"#ff8085","Red 30":"#f86368","Red 40":"#e65054","Red 50":"#d63638","Red 60":"#b32d2e","Red 70":"#8a2424","Red 80":"#691c1c","Red 90":"#451313","Red 100":"#240a0a","Orange":"#b26200","Orange 0":"#f5ece6","Orange 5":"#f7dcc6","Orange 10":"#ffbf86","Orange 20":"#faa754","Orange 30":"#e68b28","Orange 40":"#d67709","Orange 50":"#b26200","Orange 60":"#8a4d00","Orange 70":"#704000","Orange 80":"#543100","Orange 90":"#361f00","Orange 100":"#1f1200","Yellow":"#9d6e00","Yellow 0":"#f5f1e1","Yellow 5":"#f5e6b3","Yellow 10":"#f2d76b","Yellow 20":"#f0c930","Yellow 30":"#deb100","Yellow 40":"#c08c00","Yellow 50":"#9d6e00","Yellow 60":"#7d5600","Yellow 70":"#674600","Yellow 80":"#4f3500","Yellow 90":"#320","Yellow 100":"#1c1300","Green":"#008a20","Green 0":"#e6f2e8","Green 5":"#b8e6bf","Green 10":"#68de86","Green 20":"#1ed15a","Green 30":"#00ba37","Green 40":"#00a32a","Green 50":"#008a20","Green 60":"#007017","Green 70":"#005c12","Green 80":"#00450c","Green 90":"#003008","Green 100":"#001c05","Celadon":"#008763","Celadon 0":"#e4f2ed","Celadon 5":"#a7e8d3","Celadon 10":"#66deb9","Celadon 20":"#31cc9f","Celadon 30":"#09b585","Celadon 40":"#009e73","Celadon 50":"#008763","Celadon 60":"#007053","Celadon 70":"#005c44","Celadon 80":"#004533","Celadon 90":"#003024","Celadon 100":"#001c15","WordPress Blue":"#006088","WordPress Blue 0":"#e6f1f5","WordPress Blue 5":"#bedae6","WordPress Blue 10":"#98c6d9","WordPress Blue 20":"#6ab3d0","WordPress Blue 30":"#3895ba","WordPress Blue 40":"#187aa2","WordPress Blue 50":"#006088","WordPress Blue 60":"#004e6e","WordPress Blue 70":"#003c56","WordPress Blue 80":"#002c40","WordPress Blue 90":"#001d2d","WordPress Blue 100":"#00101c","Simplenote Blue":"#3361cc","Simplenote Blue 0":"#e9ecf5","Simplenote Blue 5":"#ced9f2","Simplenote Blue 10":"#abc1f5","Simplenote Blue 20":"#84a4f0","Simplenote Blue 30":"#618df2","Simplenote Blue 40":"#4678eb","Simplenote Blue 50":"#3361cc","Simplenote Blue 60":"#1d4fc4","Simplenote Blue 70":"#113ead","Simplenote Blue 80":"#0d2f85","Simplenote Blue 90":"#09205c","Simplenote Blue 100":"#05102e","WooCommerce Purple":"#7f54b3","WooCommerce Purple 0":"#f7edf7","WooCommerce Purple 5":"#e5cfe8","WooCommerce Purple 10":"#d6b4e0","WooCommerce Purple 20":"#c792e0","WooCommerce Purple 30":"#af7dd1","WooCommerce Purple 40":"#9a69c7","WooCommerce Purple 50":"#7f54b3","WooCommerce Purple 60":"#674399","WooCommerce Purple 70":"#533582","WooCommerce Purple 80":"#3c2861","WooCommerce Purple 90":"#271b3d","WooCommerce Purple 100":"#140e1f","Jetpack Green":"#069e08","Jetpack Green 0":"#f0f2eb","Jetpack Green 5":"#d0e6b8","Jetpack Green 10":"#9dd977","Jetpack Green 20":"#64ca43","Jetpack Green 30":"#2fb41f","Jetpack Green 40":"#069e08","Jetpack Green 50":"#008710","Jetpack Green 60":"#007117","Jetpack Green 70":"#005b18","Jetpack Green 80":"#004515","Jetpack Green 90":"#003010","Jetpack Green 100":"#001c09"}}')},60231:function(e){"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},90059:function(e){"use strict";e.exports=JSON.parse('{"p":[{"slug":"participant-0","label":"Speaker 1"},{"slug":"participant-1","label":"Speaker 2"},{"slug":"participant-2","label":"Speaker 3"}]}')},45388:function(e){"use strict";e.exports=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]')},1949:function(e){"use strict";e.exports={Kc:["amazon"]}}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=i,l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);l.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return n[e]}}));return o.default=function(){return n},l.d(a,o),a},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce((function(t,n){return l.f[n](e,t),t}),[]))},l.u=function(e){return(390===e?"swiper":e)+".js?minify=false&ver="+{390:"87699145e1e11e92e952",860:"d8d32efbe3dcb1077f70"}[e]},l.miniCssF=function(e){return"swiper.css?minify=false&ver=4f0a26962ac03729a198"},function(){if(!l.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;l.miniCssF=(e=l.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="Jetpack:",l.l=function(e,t,a,o){if(n[e])n[e].push(t);else{var i,s;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var p=c[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==r+a){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",r+a),i.src=e),n[e]=[t];var d=function(t,r){i.onerror=i.onload=null,clearTimeout(m);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((function(e){return e(r)})),t)return t(r)},m=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),s&&document.head.appendChild(i)}},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e}(),a=function(e){return new Promise((function(t,n){var r=l.miniCssF(e),a=l.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var a=(i=n[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(a===e||a===t))return i}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var i;if((a=(i=o[r]).getAttribute("data-href"))===e||a===t)return i}}(r,a))return t();!function(e,t,n,r){var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=function(o){if(a.onerror=a.onload=null,"load"===o.type)n();else{var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=i,l.request=s,a.parentNode.removeChild(a),r(l)}},a.href=t,document.head.appendChild(a)}(e,a,t,n)}))},o={161:0,189:0,486:0},l.f.miniCss=function(e,t){o[e]?t.push(o[e]):0!==o[e]&&{390:1}[e]&&t.push(o[e]=a(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))},function(){var e={161:0,189:0,486:0};l.f.j=function(t,n){var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(390!=t){var a=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=a);var o=l.p+l.u(t),i=new Error;l.l(o,(function(n){if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,r[1](i)}}),"chunk-"+t,t)}else e[t]=0};var t=function(t,n){var r,a,o=n[0],i=n[1],s=n[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(s)s(l)}for(t&&t(n);c<o.length;c++)a=o[c],l.o(e,a)&&e[a]&&e[a][0](),e[o[c]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";l(57836),l(6757),l(7616),l(92919),l(26634),l(17269),l(56771),l(58721),l(73617);var e=l(11973);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){const{userid:t,username:n}=window.Jetpack_Editor_Initial_State.tracksUserData;e.Z.initialize(t,n,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}}(),function(){"use strict";var e=l(28069),t=l(8042);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32278);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(79884);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(75494);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(20195);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(63445);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(45166);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(92694),n=l(52175),r=l(55609),a=l(65736),o=l(47271);const __=a.__,i=t=>{if(t.isDeprecation)return t;if("core/embed"!==t.name)return t;const{edit:a}=t;return{...t,edit:(0,r.withNotices)((t=>{const{noticeOperations:i,noticeUI:s,onReplace:l}=t,{url:c}=t.attributes,{isGatheringStorm:u,unleashStorm:p}=(0,o.Z)({onReplace:l});return"twitter"!==t.attributes.providerNameSlug?(0,e.createElement)(a,t):(0,e.createElement)(e.Fragment,null,s,(0,e.createElement)(n.BlockControls,null,(0,e.createElement)(r.ToolbarGroup,{className:"gathering-tweetstorms__embed-toolbar"},(0,e.createElement)(r.ToolbarButton,{className:"gathering-tweetstorms__embed-toolbar-button",onClick:()=>p(c,i),label:__("Import the entire Twitter thread directly into this post.","jetpack"),showTooltip:!0,disabled:u||!c},__("Unroll","jetpack")),u&&(0,e.createElement)(r.ToolbarItem,{as:r.Spinner}))),(0,e.createElement)(a,t))}))}};(0,t.addFilter)("blocks.registerBlockType","jetpack/gathering-tweetstorms",i)}(),function(){"use strict";var e=l(28069),t=l(31072);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(13984);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(1624);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(77007);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(66916);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(19916);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(92828);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(7882);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(5458);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(18161);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(58495);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(72228);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(84807);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(82163);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32051);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57368);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(8223);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(93636),n=l(59770);(0,e.Z)(t.u2,t.Xd,[{name:n.u2,settings:n.Xd}])}(),function(){"use strict";var e=l(96594);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(91994);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(71730);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(35289);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(94120);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(98817),n=l(42366),r=l(21409),a=l(58014);(0,l(52291).Z)(n.u2,n.Xd);const o=(0,r.Z)("social-previews")?.available;!o&&(0,a.Wp)()&&(0,t.registerPlugin)(`jetpack-${n.u2}-upgrade-nudge`,{render:()=>(0,e.createElement)(n.w6,{showUpgradeNudge:!0})})}(),function(){"use strict";var e=l(28069),t=l(20222);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57211);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(80349);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(29183),t=l.n(e),n=l(69307),r=l(55609),a=l(11313),o=l(4981),i=l(12238),s=l(52175),c=l(92694),u=l(94333),p=l(65736),d=l(92819),m=l(6976),h=l(64089),f=l(21409),g=l(71486),b=l(4207),v=l(3082),k=l(58014),y=l(28137),E=l(41194);const __=p.__,w=(0,u.createHigherOrderComponent)((e=>a=>{const{name:o}=(0,s.useBlockEditContext)();return"core/video"!==o?(0,n.createElement)(e,a):(0,n.createElement)(e,t()({},a,{disableDropZone:!0,className:"no-videopress-media-placeholder"}),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Media Library","jetpack")),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Upload","jetpack")))}),"videoPressNoPlanMediaPlaceholder"),_=(e,t,n)=>("core/video"!==t.name||!n.guid||n.className?.indexOf("wp-block-video")>=0||n.videoPressClassNames||(e.className=e.className.replace("wp-block-video","").trim()),e);(0,c.addFilter)("blocks.registerBlockType","jetpack/videopress",((e,t)=>{if("core/embed"===t)return(e=>{if(!("variations"in e)||"object"!=typeof e.variations)return;const{available:t}=(0,f.Z)("videopress");e.variations.some((e=>"videopress"===e.name&&(t&&(e.scope=[]),e.patterns.push(/^https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?$/i),!0)))})(e),e;if("core/video"!==t||e.isDeprecation)return e;const{deprecated:n,edit:r,save:s,supports:l,transforms:u}=e,{available:p,unavailableReason:C}=(0,f.Z)("videopress");if(((0,k.Wp)()||(0,k.Ug)())&&["missing_plan","unknown"].includes(C)?((0,c.addFilter)("editor.MediaPlaceholder","jetpack/videopress",w),(0,c.addFilter)("editor.BlockListBlock","jetpack/videopress-with-has-warning-is-interactive-class-names",(0,y.Z)("core/video"))):p&&(e.description=__("Embed a video from your media library or upload a new one with VideoPress.","jetpack"),e.example.attributes={caption:"",isVideoPressExample:!0,src:E}),(0,c.addFilter)("blocks.getSaveContent.extraProps","jetpack/videopress",_,20),p||["missing_plan","missing_module","unknown"].includes(C)){const t={autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},maxWidth:{type:"string",default:"100%"},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},isVideoPressExample:{type:"boolean",default:!1},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},useAverageColor:{type:"boolean"},videoPressTracks:{type:"array",items:{type:"object"},default:[]},videoPressClassNames:{type:"string"}},c=/https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?/i;return{...e,attributes:t,transforms:{...u,from:[{type:"files",isMatch:e=>(0,d.every)(e,(e=>0===e.type.indexOf("video/"))),priority:9,transform:(e,t)=>{const n=[];return e.forEach((e=>{const r=(0,o.createBlock)("core/video",{src:(0,a.createBlobURL)(e)});(0,i.mediaUpload)({filesList:[e],onFileChange:e=>{let[{id:n,url:a}]=e;t(r.clientId,{id:n,src:a})},allowedTypes:["video"]}),n.push(r)})),n}},{type:"raw",isMatch:e=>"P"===e.nodeName&&c.test(e.innerHTML),transform:e=>{const t=c.exec(e.innerHTML);return(0,o.createBlock)("core/embed",{url:"https://videopress.com/v/"+t[1].trim()})}}]},supports:{...l,reusable:!1},edit:(0,m.Z)(r),save:(0,h.Z)(s),deprecated:[...n||[],v.Z,{attributes:t,isEligible:e=>!e.guid,save:s,supports:l,isDeprecation:!0},b.Z,g.Z]}}return e}),5)}(),function(){"use strict";var e=l(28069),t=l(62086);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(92819),n=l(99196),r=l(9818),a=l(72067),o=l(22607),i=l(84675),s=l(65736),c=l(98817),u=l(55609),p=(l(53961),l(33690)),d=l(22874),m=l(11973);const __=s.__;async function h(e){await(0,p.U)();const{insertBlocks:t}=(0,r.dispatch)("core/block-editor");let n;switch(e.tpl){case"spotifyBadge":n=(0,d.F)(e);break;case"basicEpisode":n=(0,d.J)(e)}n?.length&&t(n,0,void 0,!1)}const f=()=>{(0,n.useEffect)((()=>{m.Z.tracks.recordEvent("jetpack_editor_block_anchor_fm_post_publish_impression")}),[]);const t=(0,n.useCallback)((()=>m.Z.tracks.recordEvent("jetpack_editor_block_anchor_fm_post_publish_click")),[]);return(0,e.createElement)(a.PluginPostPublishPanel,{className:"anchor-post-publish-outbound-link"},(0,e.createElement)("p",{className:"post-publish-panel__postpublish-subheader"},(0,e.createElement)("strong",null,__("Convert to audio","jetpack"))),(0,e.createElement)("p",null,__("Seamlessly turn this post into a podcast episode with Anchor - and let readers listen to your post.","jetpack")),(0,e.createElement)("div",{role:"link",className:"post-publish-panel__postpublish-buttons",tabIndex:0,onClick:t,onKeyDown:t},(0,e.createElement)(u.Button,{isPrimary:!0,href:"https://anchor.fm/wordpressdotcom",target:"_top"},__("Create a podcast episode","jetpack")," ",(0,e.createElement)(o.Z,{icon:i.Z,className:"anchor-post-publish-outbound-link__external_icon"}))))};!function(){const e=window.Jetpack_AnchorFm;"object"==typeof e&&e.actions.forEach((e=>{const[n,a]=(0,t.castArray)(e);switch(n){case"insert-spotify-badge":h({...a,tpl:"spotifyBadge"});break;case"insert-episode-template":h({...a,tpl:"basicEpisode"});break;case"show-post-publish-outbound-link":(0,c.registerPlugin)("anchor-post-publish-outbound-link",{render:f});break;case"set-episode-title":!async function(e){let{title:t}=e;t&&(await(0,p.U)(),(0,r.dispatch)("core/editor").editPost({title:t}))}(a);break;case"create-episode-error-notice":o=a,(0,r.dispatch)("core/notices").createNotice("error",__("We couldn't find that episode in your feed. If you just published the episode, please try creating the post again in a few minutes.","jetpack"),{id:"episode-error-notice",actions:[{onClick(){window.location.href=o.retry_url},onKeyDown(){window.location.href=o.retry_url},label:__("Retry","jetpack")}]})}var o}))}()}(),function(){"use strict";var e=l(28069),t=l(98034),n=l(76883),r=l(24720),a=l(46157),o=l(37436);(0,e.Z)(t.u,t.X,[{name:n.u,settings:n.X},{name:r.u,settings:r.X},{name:a.u,settings:a.X},{name:o.u,settings:o.X}],!1)}(),function(){"use strict";var e=l(28069),t=l(36384);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(98956);(0,e.Z)(t.u2,t.Xd)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-experimental.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/editor-experimental.js.LICENSE.txt
new file mode 100644
index 00000000..f4234c69
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-experimental.js.LICENSE.txt
@@ -0,0 +1,30 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*! https://mths.be/punycode v1.3.2 by @mathias */
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/blocks/editor-experimental.rtl.css b/plugins/jetpack/_inc/blocks/editor-experimental.rtl.css
index b5503efe..36bf65d1 100644
--- a/plugins/jetpack/_inc/blocks/editor-experimental.rtl.css
+++ b/plugins/jetpack/_inc/blocks/editor-experimental.rtl.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:right;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 14px 2px 32px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;right:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-left:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;right:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-right:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:left}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:right}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-right:0;margin-left:0;padding-right:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 4px 0 0;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:right;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-right:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-left:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-right:0;margin-left:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;right:0;position:absolute;left:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 5% 0 0;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-right:-10px;margin-left:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);right:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 6px 0 0}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;right:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-left:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;left:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;right:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;left:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;right:50%;margin-top:-9px;margin-right:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-right:4px;padding-left:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 2px 2px 0;position:absolute;left:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;right:50%;margin:0;transform:translate(50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);-o-object-fit:contain;object-fit:contain;position:absolute;right:8px;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;right:0;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:right;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;padding:20px 0;position:fixed;position:sticky;right:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-left:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-left:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-right:1px solid #ccc;margin-right:16px;padding-right:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-left:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 0 9px 1px}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-left:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;left:0;margin-top:-48px;padding:0;position:absolute;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-left:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-right:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-left:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-left:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-left:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-left:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-left:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right;margin:3px 0 0 5px}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:right;margin:0 0 0 5px}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-right:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-right:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-right:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-left:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-right:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:right}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-left:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;position:absolute;right:0;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;margin:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-left:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:right}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{right:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-left:12px}.components-placeholder.is-large .image-compare__image-after{padding-right:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-right:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-right:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto -3px auto auto;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}div.jx-arrow.jx-right{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;right:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;left:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{right:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{left:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{right:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;left:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{right:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:100%;right:0}div.jx-image.jx-left img{right:0}div.jx-image.jx-right{background-position:0;left:0}div.jx-image.jx-right img{bottom:0;left:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:right;right:0}div.jx-image.jx-right div.jx-label{float:left;left:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;right:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:right .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-right:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);right:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);left:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(-90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-left:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;margin-right:-16px;margin-top:-19px;position:absolute;right:50%;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:left;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:right;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-left:0;margin-right:0;padding-right:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 4px 0 0;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:right}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:0;right:auto}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:right}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{left:auto;margin-right:2rem;max-width:840px}.wp-block-jetpack-opentable.is-style-wide.alignright{max-width:840px;right:calc(100% - 840px - 2rem)}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:18px;padding-right:15px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-left:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 22px 10px 24px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-right:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-right:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 0 0 2px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-right:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-left:5px}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-left:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 8px 0 0}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-right:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-right:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);position:absolute;right:-10px;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-right:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 8px 0 24px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-left:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;right:calc(50% - 12px);top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-left:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 56px 8px 16px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-right:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-right:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-left:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 0 0 5px}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-right:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-right:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-left:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;left:0;padding:0 4px;pointer-events:none;position:absolute;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;left:10px;margin-top:0;position:absolute;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;left:auto;padding-top:0;position:relative}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-left:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-left:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-right:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-right:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:right;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 0 -4px 2px;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-left:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-right:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";position:absolute;right:-20px}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-left:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-right:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-left:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;position:absolute;right:3px;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-left-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;left:0;margin:15px;padding:5px 3px;position:absolute;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{margin:auto;right:-84px}.wp-story-container .wp-story-next-slide{left:-84px;margin:auto}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-next-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(-180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 0 0 16px;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 0 0 12px;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-right:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{right:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{left:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-right:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-left:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:100%;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-left:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;left:0;margin:0;position:absolute}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{right:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-left:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 12px 4px 0;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-left:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-right:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px}.anchor-post-publish-outbound-link .anchor-post-publish-outbound-link__external_icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-premium-content-container .premium-content-tabs{align-items:center;background:#fff;border:1px solid #1e1e1e;border-radius:2px;color:#757575;display:flex;flex-wrap:wrap;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;margin:0 -1px 0 0;padding:8px 14px;position:relative}.wp-block-premium-content-container--tab{align-items:center;background:transparent;border:none;display:flex;flex-direction:row;margin-left:5px;padding:5px;text-decoration:none}.premium-content-tabs>button.edit{margin-right:auto}.premium-content-wrapper{margin:0}.premium-content-block-nudge .editor-warning{margin-bottom:0}.premium-content-block-nudge .editor-warning__message{margin:13px 0}.premium-content-block-nudge .editor-warning__actions{line-height:1}.premium-content-block-nudge .premium-content-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.premium-content-block-nudge .premium-content-block-nudge__text-container{display:flex;flex-direction:column;padding-right:10px}.premium-content-block-nudge .premium-content-block-nudge__title{font-size:14px}.premium-content-block-nudge__message{color:#646970}.editor-styles-wrapper a.premium-content-block-nudge__button{color:#0075af;text-decoration:none}.membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-interval .components-base-control,.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-name .components-base-control{width:100%}.wp-block-premium-content-container---settings-add_plan .components-panel__row.plan-price .components-base-control{margin:0;width:45%}.wp-block-premium-content-container---settings-add_plan .components-panel__row:last-child{margin-top:25px}.wp-block-premium-content-container---settings-add_plan .components-base-control:last-child{margin:0}.wp-block-premium-content-container---link-to-earn{display:block;margin:16px}.premium-content-toolbar-button .components-dropdown-menu__toggle:after{border-color:transparent transparent currentcolor currentcolor;border-style:solid;border-width:4px;bottom:1px;content:"";display:block;left:0;position:absolute}.connect-stripe.has-icon.has-text svg{margin-left:0}.connect-stripe.has-icon.has-text{font-weight:400}.wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"]{display:inline-block;margin:0 0 0 .5em}.editor-styles-wrapper .wp-block-buttons .wp-block[data-type="jetpack/recurring-payments"] .wp-block-button:not(.alignleft):not(.alignright){margin:0}.wp-block-premium-content-container .jetpack-block-nudge{display:none}.wp-block-premium-content-login-button{display:inline-block}.wp-block[data-align=center]>.wp-block-premium-content-login-button{align-items:center;display:flex;justify-content:center}.wp-block-jetpack-conversation__participant{display:flex;height:30px;line-height:30px}.wp-block-jetpack-conversation__participant-label{flex-grow:2}.wp-block-jetpack-conversation__placeholder,.wp-block-jetpack-dialogue__timestamp-controls{display:flex}.wp-block-jetpack-dialogue__timestamp-controls .components-number-control{min-width:60px}.wp-block-jetpack-dialogue__timestamp-button{margin-right:6px}.wp-block-jetpack-dialogue__timestamp-control__hour,.wp-block-jetpack-dialogue__timestamp-control__minute{margin-left:5px}.wp-block-jetpack-dialogue__timestamp-control__play-button{align-self:flex-end;margin-right:10px}.wp-block-jetpack-dialogue__timestamp-content .wp-block-jetpack-dialogue__timestamp-container{min-width:290px}.wp-block-jetpack-dialogue__timestamp-range-control{margin-left:16px;margin-top:8px}.wp-block-jetpack-dialogue__timestamp-dropdown{min-width:90px}.wp-block-jetpack-dialogue__participant.is-participant-adding,.wp-block-jetpack-dialogue__participant.is-participant-editing{opacity:.7}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta.has-not-media-source>div{width:100%}.wp-block-jetpack-conversation:not(.is-style-column) .wp-block-jetpack-dialogue__meta .wp-block-jetpack-dialogue__participant{min-width:50px}.media-player-control__current-time{align-items:center;display:flex;font-size:14px;min-width:55px;padding:0 5px 0 12px}.media-player-control__current-time.is-disabled{color:#757575;cursor:default}.wp-block-jetpack-dialogue__timestamp-player{display:flex;flex-wrap:wrap;justify-content:center;margin-top:10px}.wp-block-jetpack-dialogue__timestamp-player button{padding:0}.media-player-control__toolbar .components-toolbar-button .dashicons{margin:0}.wp-block-jetpack-dialogue{margin-bottom:20px;margin-top:20px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{align-items:center;display:flex;flex-direction:row;min-height:38px}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{color:inherit;font-size:inherit;line-height:17px;line-height:var(--global--line-height-body);overflow-wrap:anywhere;padding:0}.wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-label{color:inherit;font-size:16px;margin-left:0;margin-right:5px;padding:6px 12px;text-align:left;white-space:nowrap}.wp-block-jetpack-dialogue__participant{height:auto;line-height:1.2;padding:3px 0}.wp-block-jetpack-dialogue__participant.has-bold-style{font-weight:700}.wp-block-jetpack-dialogue__participant.has-italic-style{font-style:italic}.wp-block-jetpack-dialogue__participant.has-uppercase-style{text-transform:uppercase}.block-editor-block-list__block .wp-block-jetpack-dialogue__content{margin:0 0 1em}@media(min-width:600px){.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue{display:flex}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__meta{display:block;flex:0 0 25%;text-align:left}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__participant{margin-left:12px}.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .components-dropdown,.wp-block-jetpack-conversation.is-style-column .wp-block-jetpack-dialogue .wp-block-jetpack-dialogue__timestamp-dropdown{display:block}}body.no-media-source .wp-block-jetpack-dialogue__timestamp-label{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-no-post-editor.asset.php b/plugins/jetpack/_inc/blocks/editor-no-post-editor.asset.php
new file mode 100644
index 00000000..ca0a672d
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-no-post-editor.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-dom-ready', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-token-list', 'wp-url', 'wp-viewport'), 'version' => '0359f48824ac9d54c24d0ce7316b3060'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-no-post-editor.css b/plugins/jetpack/_inc/blocks/editor-no-post-editor.css
new file mode 100644
index 00000000..00c42c3d
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-no-post-editor.css
@@ -0,0 +1 @@
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);left:8px;-o-object-fit:contain;object-fit:contain;position:absolute;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:left;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;left:0;padding:20px 0;position:fixed;position:sticky;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-right:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-right:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-left:1px solid #ccc;margin-left:16px;padding-left:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-right:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 1px 9px 0}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-right:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;margin-top:-48px;padding:0;position:absolute;right:0;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-right:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-left:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-right:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-right:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-right:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-right:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-right:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left;margin:3px 5px 0 0}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:left;margin:0 5px 0 0}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-left:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-left:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-left:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-left:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:left}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-right:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:left}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-right:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;left:50%;margin-left:-16px;margin-top:-19px;position:absolute;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:right;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:left;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 0 0 4px;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:1em;padding-right:0}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:left}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:auto;right:0}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:left}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{margin-left:2rem;max-width:840px;right:auto}.wp-block-jetpack-opentable.is-style-wide.alignright{left:calc(100% - 840px - 2rem);max-width:840px}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 24px 0 8px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-right:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{left:calc(50% - 12px);position:absolute;top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-right:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;right:0;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;padding-top:0;position:relative;right:auto}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;margin:0;position:absolute;right:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{left:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-right:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 0 4px 12px;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-right:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-left:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-no-post-editor.js b/plugins/jetpack/_inc/blocks/editor-no-post-editor.js
new file mode 100644
index 00000000..cf417e0e
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-no-post-editor.js
@@ -0,0 +1,121 @@
+/*! For license information please see editor-no-post-editor.js.LICENSE.txt */
+!function(){var e,t,n,r,a,o,i={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31354),a=n(64803);function o(e){var t=(0,r.Z)(e);return function(e){return(0,a.Z)(t,e)}}},64803:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function a(e,t){var n,a,o,i,s,l,c=[];for(n=0;n<e.length;n++){if(s=e[n],i=r[s]){for(a=i.length,o=Array(a);a--;)o[a]=c.pop();try{l=i.apply(null,o)}catch(e){return e}}else l=t.hasOwnProperty(s)?t[s]:+s;c.push(l)}return c[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8172);function a(e){var t=(0,r.Z)(e);return function(e){return+t({n:e})}}},31354:function(e,t,n){"use strict";var r,a,o,i;function s(e){for(var t,n,s,l,c=[],u=[];t=e.match(i);){for(n=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(o[n]){if(o[n][0]===l){n=o[n][1]||n;break}}else if(a.indexOf(l)>=0||r[l]<r[n]){u.push(l);break}c.push(l)}o[n]||u.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&c.push(e),c.concat(u.reverse())}n.d(t,{Z:function(){return s}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},a=["(","?"],o={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function a(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(r,(function(){var e,r,a,o,i;return e=arguments[3],r=arguments[5],"%"===(o=arguments[9])?"%":("*"===(a=arguments[7])&&(a=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(i=t[0][r]):(void 0===e&&(e=n),n++,i=t[e-1]),"f"===o?i=parseFloat(i)||0:"d"===o&&(i=parseInt(i)||0),void 0!==a&&("f"===o?i=i.toFixed(a):"s"===o&&(i=i.substr(0,a))),null!=i?i:"")}))}},22607:function(e,t,n){"use strict";var r=n(69307);t.Z=function(e){let{icon:t,size:n=24,...a}=e;return(0,r.cloneElement)(t,{width:n,height:n,...a})}},35127:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"}));t.Z=o},41221:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"}));t.Z=o},31266:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"}));t.Z=o},81326:function(e,t){var n;!function(){"use strict";var r=function(){function e(){}function t(e,t){for(var n=t.length,r=0;r<n;++r)a(e,t[r])}e.prototype=Object.create(null);var n={}.hasOwnProperty;var r=/\s+/;function a(e,a){if(a){var o=typeof a;"string"===o?function(e,t){for(var n=t.split(r),a=n.length,o=0;o<a;++o)e[n[o]]=!0}(e,a):Array.isArray(a)?t(e,a):"object"===o?function(e,t){if(t.toString===Object.prototype.toString)for(var r in t)n.call(t,r)&&(e[r]=!!t[r]);else e[t.toString()]=!0}(e,a):"number"===o&&function(e,t){e[t]=!0}(e,a)}}return function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var o=new e;t(o,r);var i=[];for(var s in o)o[s]&&i.push(s);return i.join(" ")}}();e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},92213:function(e){!function(){"use strict";var t=[],n=3988292384;function r(e){var t,r,a,o,i=-1;for(t=0,a=e.length;t<a;t+=1){for(o=255&(i^e[t]),r=0;r<8;r+=1)1==(1&o)?o=o>>>1^n:o>>>=1;i=i>>>8^o}return-1^i}function a(e,n){var r,o,i;if(void 0!==a.crc&&n&&e||(a.crc=-1,e)){for(r=a.crc,o=0,i=e.length;o<i;o+=1)r=r>>>8^t[255&(r^e[o])];return a.crc=r,-1^r}}!function(){var e,r,a;for(r=0;r<256;r+=1){for(e=r,a=0;a<8;a+=1)1&e?e=n^e>>>1:e>>>=1;t[r]=e>>>0}}(),e.exports=function(e,t){var n;e="string"==typeof e?(n=e,Array.prototype.map.call(n,(function(e){return e.charCodeAt(0)}))):e;return((t?r(e):a(e))>>>0).toString(16)},e.exports.direct=r,e.exports.table=a}()},97115:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp(t,"gi"),r=new RegExp("("+t+")+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],a(n),a(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n),r=1;r<t.length;r++)t=(e=a(t,r).join("")).match(n);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=r.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var a=o(n[0]);a!==n[0]&&(t[n[0]]=a)}n=r.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),s=0;s<i.length;s++){var l=i[s];e=e.replace(new RegExp(l,"g"),t[l])}return e}(e)}}},89453:function(e,t){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},2571:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function a(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",a),n([].slice.call(arguments))}f(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&f(e,"error",t,n)}(e,a,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var i=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var a,o,i,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),i=o[t]),void 0===i)i=o[t]=n,++e._eventsCount;else if("function"==typeof i?i=o[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(a=l(e))>0&&i.length>a&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=u.bind(r);return a.listener=n,r.wrapFn=a,a}function d(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):h(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function a(o){r.once&&e.removeEventListener(t,a),n(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var a="error"===e,o=this._events;if(void 0!==o)a=a&&void 0===o.error;else if(!a)return!1;if(a){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,a,o,i;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){i=n[o].listener,a=o;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(a=o[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},95946:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),a=Array.isArray(t),o=0;o<r.length;o++){var i=r[o],s=e[i];(a?-1!==t.indexOf(i):t(i,s,e))&&(n[i]=s)}return n}},95949:function(e,t,n){"use strict";var r=n(53566),a=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,o=8;o<this.padLength;o++)r[a++]=0;return r}},69016:function(e,t,n){"use strict";var r=n(53566),a=n(95949),o=n(47574),i=r.rotl32,s=r.sum32,l=r.sum32_5,c=o.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],o=this.h[1],u=this.h[2],d=this.h[3],m=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),f=l(i(a,5),c(h,o,u,d),m,n[r],p[h]);m=d,d=u,u=i(o,30),o=a,a=f}this.h[0]=s(this.h[0],a),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],u),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],m)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function a(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?i(t,n,r):2===e?o(t,n,r):void 0},t.ch32=a,t.maj32=o,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),a=n(59503);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var i=e.charCodeAt(a);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):o(e,a)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++a)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=i(a)),n+=l(a.toString(16))}return n},t.zero2=s,t.zero8=l,t.join32=function(e,t,n,a){var o=n-t;r(o%4==0);for(var i=new Array(o/4),s=0,l=t;s<i.length;s++,l+=4){var c;c="big"===a?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[s]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var o=e[r];"big"===t?(n[a]=o>>>24,n[a+1]=o>>>16&255,n[a+2]=o>>>8&255,n[a+3]=255&o):(n[a+3]=o>>>24,n[a+2]=o>>>16&255,n[a+1]=o>>>8&255,n[a]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],o=r+e[t+1]>>>0,i=(o<r?1:0)+n+a;e[t]=i>>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,o,i,s){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+o>>>0)<o?1:0,e+n+a+i+(l+=(c=c+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,o,i,s){return t+r+o+s>>>0},t.sum64_5_hi=function(e,t,n,r,a,o,i,s,l,c){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+o>>>0)<o?1:0,u+=(p=p+s>>>0)<s?1:0,e+n+a+i+l+(u+=(p=p+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,o,i,s,l,c){return t+r+o+s+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},88617:function(e,t,n){"use strict";var r=n(59128),a=n(98086),o=n(90922),i=n.n(o),s=n(94481),l=n(88090),c=n(75565),u=n.n(c),p=n(69016),d=n.n(p),m=n(2571),h=n(702),f=n(92846),g=i()("i18n-calypso"),b="number_format_decimals",k="number_format_thousands_sep",v="messages",y=[function(e){return e}],E={};function w(){S.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function _(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&w("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",_(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&w("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",_(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function x(e,t){return e.dcnpgettext(v,t.context,t.original,t.plural,t.count)}function j(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t)),a=r.context?r.context+""+r.original:r.original;if(e.state.locale[a])return x(e.state.tannin,r)}return null}function S(){if(!(this instanceof S))return new S;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:u()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new m.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}S.throwErrors=!1,S.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},S.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},S.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},S.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,f.Z)(e,n,r,a)},S.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},S.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var o=e[""]["key-hash"],i=function(e,t){var n=!1===t?"":String(t);if(void 0!==E[n+e])return E[n+e];var r=d()().update(e).digest("hex");return E[n+e]=t?r.substr(0,t):r},s=function(e){return function(t){return t.context?(t.original=i(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=i(t.original,e),t}};if("sha1"===o.substr(0,4))if(4===o.length)y.push(s(!1));else{var c=o.substr(5).indexOf("-");if(c<0){var u=Number(o.substr(5));y.push(s(u))}else for(var p=Number(o.substr(5,c)),m=Number(o.substr(6+c)),h=p;h<=m;h++)y.push(s(h))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new l.Z((0,a.Z)({},v,this.state.locale)),this.state.numberFormatSettings.decimal_point=x(this.state.tannin,C([b])),this.state.numberFormatSettings.thousands_sep=x(this.state.tannin,C([k])),this.state.numberFormatSettings.decimal_point===b&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===k&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},S.prototype.getLocale=function(){return this.state.locale},S.prototype.getLocaleSlug=function(){return this.state.localeSlug},S.prototype.isRtl=function(){return"rtl"===this.state.textDirection},S.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},S.prototype.hasTranslation=function(){return!!j(this,C(arguments))},S.prototype.translate=function(){var e=C(arguments),t=j(this,e);if(t||(t=x(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=h.Z.apply(void 0,(0,r.Z)(n))}catch(e){if(!window||!window.console)return;var a=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[a](e):window.console[a]("i18n sprintf error:",n)}}return e.components&&(t=(0,s.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},S.prototype.reRenderTranslations=function(){g("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},S.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},S.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=S},63807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return l}});var r=n(88617),a=n(42928),o=n(80975),i=n(24531),s=new r.Z,l=s.numberFormat.bind(s),c=(s.translate.bind(s),s.configure.bind(s),s.setLocale.bind(s),s.getLocale.bind(s),s.getLocaleSlug.bind(s),s.addTranslations.bind(s),s.reRenderTranslations.bind(s),s.registerComponentUpdateHook.bind(s),s.registerTranslateHook.bind(s),s.state,s.stateObserver,s.on.bind(s),s.off.bind(s),s.emit.bind(s),(0,a.Z)(s),(0,o.Z)(s),(0,i.Z)(s));c.useRtl,c.withRtl},42928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(59591),a=n(71687),o=n(93772),i=n(55200),s=n(82104),l=n(9057),c=n(98086),u=n(99196),p=n.n(u);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var u,d,m=n.displayName||n.name||"";return d=u=function(u){(0,s.Z)(m,u);var d=(0,l.Z)(m);function m(){var e;(0,a.Z)(this,m);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e=d.call.apply(d,[this].concat(n)),(0,c.Z)((0,i.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,i.Z)(e))),e}return(0,o.Z)(m,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var a=(0,r.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,a)}}]),m}(p().Component),(0,c.Z)(u,"displayName","Localized("+m+")"),d}}},92846:function(e,t,n){"use strict";function r(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,o=isFinite(+t)?Math.abs(t):0,i=void 0===r?",":r,s=void 0===n?".":n,l="";return l=(o?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,o):""+Math.round(a)).split("."),l[0].length>3&&(l[0]=l[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,i)),(l[1]||"").length<o&&(l[1]=l[1]||"",l[1]+=new Array(o-l[1].length+1).join("0")),l.join(s)}n.d(t,{Z:function(){return r}})},24531:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(95672),a=n(99196),o=n.n(a),i=n(20036),s=n(94333);function l(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,i.useSubscription)(t)}var l=(0,s.createHigherOrderComponent)((function(e){return(0,a.forwardRef)((function(t,a){var i=n();return o().createElement(e,(0,r.Z)({},t,{isRtl:i,ref:a}))}))}),"WithRTL");return{useRtl:n,withRtl:l}}},80975:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(50572),a=n(99196),o=n.n(a);function i(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=o().useState(t),a=(0,r.Z)(n,2),i=a[0],s=a[1];return o().useEffect((function(){var n=function(){return s(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),i}}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},30045:function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function o(e){return"[object Function]"===a(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var s={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var l={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(49872)(e.__opts__),r=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(s(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(s(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(s(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(s(t.tpl_host_fuzzy_test),"i");var l=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?o(n.validate)?r.validate=n.validate:c(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(o(n.normalize)?r.normalize=n.normalize:n.normalize?c(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?c(t,n):l.push(t)}})),l.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function m(e,t){if(!(this instanceof m))return new m(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||s.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},s,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},l,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},u(this)}m.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},m.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},m.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,o,i,s,l;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(a=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=n.index+n[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,i=r.index+r[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},m.prototype.pretest=function(e){return this.re.pretest.test(e)},m.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},m.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},m.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},m.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},m.prototype.onCompile=function(){},e.exports=m},49872:function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(26285).source,t.src_Cc=n(84080).source,t.src_Z=n(76202).source,t.src_P=n(87696).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+"[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},47595:function(e,t,n){"use strict";const r=n(22199),a=Symbol("max"),o=Symbol("length"),i=Symbol("lengthCalculator"),s=Symbol("allowStale"),l=Symbol("maxAge"),c=Symbol("dispose"),u=Symbol("noDisposeOnSet"),p=Symbol("lruList"),d=Symbol("cache"),m=Symbol("updateAgeOnGet"),h=()=>1;const f=(e,t,n)=>{const r=e[d].get(t);if(r){const t=r.value;if(g(e,t)){if(k(e,r),!e[s])return}else n&&(e[m]&&(r.value.now=Date.now()),e[p].unshiftNode(r));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[o]>e[a])for(let t=e[p].tail;e[o]>e[a]&&null!==t;){const n=t.prev;k(e,t),t=n}},k=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[o]-=n.length,e[d].delete(n.key),e[p].removeNode(t)}};class v{constructor(e,t,n,r,a){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=a||0}}const y=(e,t,n,r)=>{let a=n.value;g(e,a)&&(k(e,n),e[s]||(a=void 0)),a&&t.call(r,a.value,a.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[a]=e.max||1/0;const t=e.length||h;if(this[i]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[m]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[a]=e||1/0,b(this)}get max(){return this[a]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[i]&&(this[i]=e,this[o]=0,this[p].forEach((e=>{e.length=this[i](e.value,e.key),this[o]+=e.length}))),b(this)}get lengthCalculator(){return this[i]}get length(){return this[o]}get itemCount(){return this[p].length}rforEach(e,t){t=t||this;for(let n=this[p].tail;null!==n;){const r=n.prev;y(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[p].head;null!==n;){const r=n.next;y(this,e,n,t),n=r}}keys(){return this[p].toArray().map((e=>e.key))}values(){return this[p].toArray().map((e=>e.value))}reset(){this[c]&&this[p]&&this[p].length&&this[p].forEach((e=>this[c](e.key,e.value))),this[d]=new Map,this[p]=new r,this[o]=0}dump(){return this[p].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[p]}set(e,t,n){if((n=n||this[l])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[i](t,e);if(this[d].has(e)){if(s>this[a])return k(this,this[d].get(e)),!1;const i=this[d].get(e).value;return this[c]&&(this[u]||this[c](e,i.value)),i.now=r,i.maxAge=n,i.value=t,this[o]+=s-i.length,i.length=s,this.get(e),b(this),!0}const m=new v(e,t,s,r,n);return m.length>this[a]?(this[c]&&this[c](e,t),!1):(this[o]+=m.length,this[p].unshift(m),this[d].set(e,this[p].head),b(this),!0)}has(e){if(!this[d].has(e))return!1;const t=this[d].get(e).value;return!g(this,t)}get(e){return f(this,e,!0)}peek(e){return f(this,e,!1)}pop(){const e=this[p].tail;return e?(k(this,e),e.value):null}del(e){k(this,this[d].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],a=r.e||0;if(0===a)this.set(r.k,r.v);else{const e=a-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[d].forEach(((e,t)=>f(this,t,!1)))}}},75565:function(e,t,n){var r=n(2571),a=n(59503);function o(e){if(!(this instanceof o))return new o(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=o,a(o,r.EventEmitter),Object.defineProperty(o.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),o.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},o.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},o.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},o.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},o.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},o.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},o.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},o.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},69472:function(e,t,n){"use strict";e.exports=n(98092)},95926:function(e,t,n){"use strict";e.exports=n(60231)},4692:function(e){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},75501:function(e){"use strict";var t="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",r=new RegExp("^(?:"+t+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),a=new RegExp("^(?:"+t+"|"+n+")");e.exports.n=r,e.exports.q=a},58201:function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function o(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function i(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(95926);var p=/[&<>"]/,d=/[&<>"]/g,m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return m[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var g=n(87696);t.lib={},t.lib.mdurl=n(36664),t.lib.ucmicro=n(39126),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?i(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=i,t.escapeHtml=function(e){return p.test(e)?e.replace(d,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},69486:function(e,t,n){"use strict";t.parseLinkLabel=n(53020),t.parseLinkDestination=n(80113),t.parseLinkTitle=n(7266)},80113:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(a=e.charCodeAt(t)))return s;if(60===a)return s;if(62===a)return s.pos=t+1,s.str=r(e.slice(i+1,t)),s.ok=!0,s;92===a&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(a=e.charCodeAt(t))&&!(a<32||127===a);)if(92===a&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===a&&++o>32)return s;if(41===a){if(0===o)break;o--}t++}return i===t||0!==o||(s.str=r(e.slice(i,t)),s.lines=0,s.pos=t,s.ok=!0),s}},53020:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,r=1;e.pos<l;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)r++;else if(n)return e.pos=c,-1}return a&&(s=e.pos),e.pos=c,s}},7266:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=0,s=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(o=e.charCodeAt(t))&&39!==o&&40!==o)return l;for(t++,40===o&&(o=41);t<n;){if((a=e.charCodeAt(t))===o)return l.pos=t+1,l.lines=i,l.str=r(e.slice(s+1,t)),l.ok=!0,l;if(40===a&&41===o)return l;10===a?i++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&i++),t++}return l}},98092:function(e,t,n){"use strict";var r=n(58201),a=n(69486),o=n(54065),i=n(36020),s=n(63435),l=n(92241),c=n(30045),u=n(36664),p=n(15661),d={default:n(36101),zero:n(67545),commonmark:n(45815)},m=/^(vbscript|javascript|file|data):/,h=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!m.test(t)||!!h.test(t)}var g=["http:","https:","mailto:"];function b(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(e){}return u.encode(u.format(t))}function k(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(e){}return u.decode(u.format(t),u.decode.defaultChars+"%")}function v(e,t){if(!(this instanceof v))return new v(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new i,this.renderer=new o,this.linkify=new c,this.validateLink=f,this.normalizeLink=b,this.normalizeLinkText=k,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}v.prototype.set=function(e){return r.assign(this.options,e),this},v.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},v.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},v.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},v.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},v.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},v.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},v.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},v.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=v},63435:function(e,t,n){"use strict";var r=n(21473),a=[["table",n(33168),["paragraph","reference"]],["code",n(63390)],["fence",n(7477),["paragraph","reference","blockquote","list"]],["blockquote",n(61264),["paragraph","reference","blockquote","list"]],["hr",n(94438),["paragraph","reference","blockquote","list"]],["list",n(90185),["paragraph","reference","blockquote"]],["reference",n(48707)],["heading",n(66926),["paragraph","reference","blockquote"]],["lheading",n(22288)],["html_block",n(77476),["paragraph","reference","blockquote"]],["paragraph",n(13958)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}o.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),o=a.length,i=t,s=!1,l=e.md.options.maxNesting;i<n&&(e.line=i=e.skipEmptyLines(i),!(i>=n))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=l){e.line=n;break}for(r=0;r<o&&!a[r](e,i,n,!1);r++);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(i=e.line)<n&&e.isEmpty(i)&&(s=!0,i++,e.line=i)}},o.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},o.prototype.State=n(62389),e.exports=o},36020:function(e,t,n){"use strict";var r=n(21473),a=[["normalize",n(75615)],["block",n(37262)],["inline",n(50127)],["linkify",n(65644)],["replacements",n(652)],["smartquotes",n(34335)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}o.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},o.prototype.State=n(53706),e.exports=o},92241:function(e,t,n){"use strict";var r=n(21473),a=[["text",n(96733)],["newline",n(22051)],["escape",n(52960)],["backticks",n(61191)],["strikethrough",n(30832).w],["emphasis",n(98052).w],["link",n(68839)],["image",n(39590)],["autolink",n(84145)],["html_inline",n(20354)],["entity",n(44659)]],o=[["balance_pairs",n(93296)],["strikethrough",n(30832).g],["emphasis",n(98052).g],["text_collapse",n(72300)]];function i(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<o.length;e++)this.ruler2.push(o[e][0],o[e][1])}i.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),o=a.length,i=e.md.options.maxNesting,s=e.cache;if(void 0===s[r]){if(e.level<i)for(n=0;n<o&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,s[r]=e.pos}else e.pos=s[r]},i.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,n,r){var a,o,i,s=new this.State(e,t,n,r);for(this.tokenize(s),i=(o=this.ruler2.getRules("")).length,a=0;a<i;a++)o[a](s)},i.prototype.State=n(4160),e.exports=i},45815:function(e){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},36101:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},67545:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},54065:function(e,t,n){"use strict";var r=n(58201).assign,a=n(58201).unescapeAll,o=n(58201).escapeHtml,i={};function s(){this.rules=r({},i)}i.code_inline=function(e,t,n,r,a){var i=e[t];return"<code"+a.renderAttrs(i)+">"+o(e[t].content)+"</code>"},i.code_block=function(e,t,n,r,a){var i=e[t];return"<pre"+a.renderAttrs(i)+"><code>"+o(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,n,r,i){var s,l,c,u,p,d=e[t],m=d.info?a(d.info).trim():"",h="",f="";return m&&(h=(c=m.split(/(\s+)/g))[0],f=c.slice(2).join("")),0===(s=n.highlight&&n.highlight(d.content,h,f)||o(d.content)).indexOf("<pre")?s+"\n":m?(l=d.attrIndex("class"),u=d.attrs?d.attrs.slice():[],l<0?u.push(["class",n.langPrefix+h]):(u[l]=u[l].slice(),u[l][1]+=" "+n.langPrefix+h),p={attrs:u},"<pre><code"+i.renderAttrs(p)+">"+s+"</code></pre>\n"):"<pre><code"+i.renderAttrs(d)+">"+s+"</code></pre>\n"},i.image=function(e,t,n,r,a){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=a.renderInlineAsText(o.children,n,r),a.renderToken(e,t,n)},i.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return o(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+o(e.attrs[t][0])+'="'+o(e.attrs[t][1])+'"';return r},s.prototype.renderToken=function(e,t,n){var r,a="",o=!1,i=e[t];return i.hidden?"":(i.block&&-1!==i.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===i.nesting?"</":"<")+i.tag,a+=this.renderAttrs(i),0===i.nesting&&n.xhtmlOut&&(a+=" /"),i.block&&(o=!0,1===i.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden||-1===r.nesting&&r.tag===i.tag)&&(o=!1)),a+=o?">\n":">")},s.prototype.renderInline=function(e,t,n){for(var r,a="",o=this.rules,i=0,s=e.length;i<s;i++)void 0!==o[r=e[i].type]?a+=o[r](e,i,t,n,this):a+=this.renderToken(e,i,t);return a},s.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,o=e.length;a<o;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},s.prototype.render=function(e,t,n){var r,a,o,i="",s=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(o=e[r].type)?i+=this.renderInline(e[r].children,t,n):void 0!==s[o]?i+=s[e[r].type](e,r,t,n,this):i+=this.renderToken(e,r,t,n);return i},e.exports=s},21473:function(e){"use strict";function t(){this.__rules__=[],this.__cache__=null}t.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},t.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},t.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},t.prototype.before=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.after=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},t.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},t.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},t.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},t.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=t},61264:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c,u,p,d,m,h,f,g,b,k,v,y,E,w,_,C,x=e.lineMax,j=e.bMarks[t]+e.tShift[t],S=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(j++))return!1;if(a)return!0;for(l=m=e.sCount[t]+1,32===e.src.charCodeAt(j)?(j++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(j)?(y=!0,(e.bsCount[t]+m)%4==3?(j++,l++,m++,o=!1):o=!0):y=!1,h=[e.bMarks[t]],e.bMarks[t]=j;j<S&&(i=e.src.charCodeAt(j),r(i));)9===i?m+=4-(m+e.bsCount[t]+(o?1:0))%4:m++,j++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=j>=S,k=[e.sCount[t]],e.sCount[t]=m-l,v=[e.tShift[t]],e.tShift[t]=j-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",d=t+1;d<n&&(C=e.sCount[d]<e.blkIndent,!((j=e.bMarks[d]+e.tShift[d])>=(S=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(j++)||C){if(u)break;for(E=!1,s=0,c=w.length;s<c;s++)if(w[s](e,d,n,!0)){E=!0;break}if(E){e.lineMax=d,0!==e.blkIndent&&(h.push(e.bMarks[d]),f.push(e.bsCount[d]),v.push(e.tShift[d]),k.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}h.push(e.bMarks[d]),f.push(e.bsCount[d]),v.push(e.tShift[d]),k.push(e.sCount[d]),e.sCount[d]=-1}else{for(l=m=e.sCount[d]+1,32===e.src.charCodeAt(j)?(j++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(j)?(y=!0,(e.bsCount[d]+m)%4==3?(j++,l++,m++,o=!1):o=!0):y=!1,h.push(e.bMarks[d]),e.bMarks[d]=j;j<S&&(i=e.src.charCodeAt(j),r(i));)9===i?m+=4-(m+e.bsCount[d]+(o?1:0))%4:m++,j++;u=j>=S,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),k.push(e.sCount[d]),e.sCount[d]=m-l,v.push(e.tShift[d]),e.tShift[d]=j-e.bMarks[d]}for(g=e.blkIndent,e.blkIndent=0,(_=e.push("blockquote_open","blockquote",1)).markup=">",_.map=p=[t,0],e.md.block.tokenize(e,t,d),(_=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=x,e.parentType=b,p[1]=e.line,s=0;s<v.length;s++)e.bMarks[s+t]=h[s],e.tShift[s+t]=v[s],e.sCount[s+t]=k[s],e.bsCount[s+t]=f[s];return e.blkIndent=g,!0}},63390:function(e){"use strict";e.exports=function(e,t,n){var r,a,o;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(o=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),o.map=[t,e.line],!0}},7477:function(e){"use strict";e.exports=function(e,t,n,r){var a,o,i,s,l,c,u,p=!1,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>m)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(l=d,(o=(d=e.skipChars(d,a))-l)<3)return!1;if(u=e.src.slice(l,d),i=e.src.slice(d,m),96===a&&i.indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((d=l=e.bMarks[s]+e.tShift[s])<(m=e.eMarks[s])&&e.sCount[s]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[s]-e.blkIndent>=4||(d=e.skipChars(d,a))-l<o||(d=e.skipSpaces(d))<m)){p=!0;break}return o=e.sCount[t],e.line=s+(p?1:0),(c=e.push("fence","code",0)).info=i,c.content=e.getLines(t+1,s,o,!0),c.markup=u,c.map=[t,e.line],!0}},66926:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(o=e.src.charCodeAt(c))||c>=u)return!1;for(i=1,o=e.src.charCodeAt(++c);35===o&&c<u&&i<=6;)i++,o=e.src.charCodeAt(++c);return!(i>6||c<u&&!r(o))&&(a||(u=e.skipSpacesBack(u,c),(s=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(l=e.push("heading_open","h"+String(i),1)).markup="########".slice(0,i),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(i),-1)).markup="########".slice(0,i)),!0)}},94438:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(o=e.src.charCodeAt(c++))&&45!==o&&95!==o)return!1;for(i=1;c<u;){if((s=e.src.charCodeAt(c++))!==o&&!r(s))return!1;s===o&&i++}return!(i<3)&&(a||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(i+1).join(String.fromCharCode(o))),!0)}},77476:function(e,t,n){"use strict";var r=n(4692),a=n(75501).q,o=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),a=0;a<o.length&&!o[a][0].test(l);a++);if(a===o.length)return!1;if(r)return o[a][2];if(i=t+1,!o[a][1].test(l))for(;i<n&&!(e.sCount[i]<e.blkIndent);i++)if(c=e.bMarks[i]+e.tShift[i],u=e.eMarks[i],l=e.src.slice(c,u),o[a][1].test(l)){0!==l.length&&i++;break}return e.line=i,(s=e.push("html_block","",0)).map=[t,i],s.content=e.getLines(t,i,e.blkIndent,!0),!0}},22288:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s,l,c,u,p,d,m=t+1,h=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";m<n&&!e.isEmpty(m);m++)if(!(e.sCount[m]-e.blkIndent>3)){if(e.sCount[m]>=e.blkIndent&&(l=e.bMarks[m]+e.tShift[m])<(c=e.eMarks[m])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[m]<0)){for(a=!1,o=0,i=h.length;o<i;o++)if(h[o](e,m,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,m,e.blkIndent,!1).trim(),e.line=m+1,(s=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),s.map=[t,e.line],(s=e.push("inline","",0)).content=r,s.map=[t,e.line-1],s.children=[],(s=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},90185:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n,a,o,i;return a=e.bMarks[t]+e.tShift[t],o=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n||a<o&&(i=e.src.charCodeAt(a),!r(i))?-1:a}function o(e,t){var n,a=e.bMarks[t]+e.tShift[t],o=a,i=e.eMarks[t];if(o+1>=i)return-1;if((n=e.src.charCodeAt(o++))<48||n>57)return-1;for(;;){if(o>=i)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-a>=10)return-1}return o<i&&(n=e.src.charCodeAt(o),!r(n))?-1:o}e.exports=function(e,t,n,r){var i,s,l,c,u,p,d,m,h,f,g,b,k,v,y,E,w,_,C,x,j,S,A,N,T,P,M,I,R=!1,L=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(R=!0),(A=o(e,t))>=0){if(d=!0,T=e.bMarks[t]+e.tShift[t],k=Number(e.src.substr(T,A-T-1)),R&&1!==k)return!1}else{if(!((A=a(e,t))>=0))return!1;d=!1}if(R&&e.skipSpaces(A)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(A-1),r)return!0;for(g=e.tokens.length,d?(I=e.push("ordered_list_open","ol",1),1!==k&&(I.attrs=[["start",k]])):I=e.push("bullet_list_open","ul",1),I.map=f=[t,0],I.markup=String.fromCharCode(b),y=t,N=!1,M=e.md.block.ruler.getRules("list"),_=e.parentType,e.parentType="list";y<n;){for(S=A,v=e.eMarks[y],p=E=e.sCount[y]+A-(e.bMarks[t]+e.tShift[t]);S<v;){if(9===(i=e.src.charCodeAt(S)))E+=4-(E+e.bsCount[y])%4;else{if(32!==i)break;E++}S++}if((u=(s=S)>=v?1:E-p)>4&&(u=1),c=p+u,(I=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),I.map=m=[t,0],j=e.tight,x=e.tShift[t],C=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=E,s>=v&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!N||(L=!1),N=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=x,e.sCount[t]=C,e.tight=j,(I=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),y=t=e.line,m[1]=y,s=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;if(e.sCount[t]-e.blkIndent>=4)break;for(P=!1,l=0,h=M.length;l<h;l++)if(M[l](e,y,n,!0)){P=!0;break}if(P)break;if(d){if((A=o(e,y))<0)break}else if((A=a(e,y))<0)break;if(b!==e.src.charCodeAt(A-1))break}return(I=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),f[1]=y,e.line=y,e.parentType=_,L&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,g),!0}},13958:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(s=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if(!(e.sCount[l]-e.blkIndent>3||e.sCount[l]<0)){for(r=!1,a=0,o=c.length;a<o;a++)if(c[a](e,l,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(i=e.push("paragraph_open","p",1)).map=[t,e.line],(i=e.push("inline","",0)).content=n,i.map=[t,e.line],i.children=[],i=e.push("paragraph_close","p",-1),e.parentType=s,!0}},48707:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t,n,o){var i,s,l,c,u,p,d,m,h,f,g,b,k,v,y,E,w=0,_=e.bMarks[t]+e.tShift[t],C=e.eMarks[t],x=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(_))return!1;for(;++_<C;)if(93===e.src.charCodeAt(_)&&92!==e.src.charCodeAt(_-1)){if(_+1===C)return!1;if(58!==e.src.charCodeAt(_+1))return!1;break}for(c=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";x<c&&!e.isEmpty(x);x++)if(!(e.sCount[x]-e.blkIndent>3||e.sCount[x]<0)){for(v=!1,p=0,d=y.length;p<d;p++)if(y[p](e,x,c,!0)){v=!0;break}if(v)break}for(C=(k=e.getLines(t,x,e.blkIndent,!1).trim()).length,_=1;_<C;_++){if(91===(i=k.charCodeAt(_)))return!1;if(93===i){h=_;break}(10===i||92===i&&++_<C&&10===k.charCodeAt(_))&&w++}if(h<0||58!==k.charCodeAt(h+1))return!1;for(_=h+2;_<C;_++)if(10===(i=k.charCodeAt(_)))w++;else if(!a(i))break;if(!(g=e.md.helpers.parseLinkDestination(k,_,C)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(s=_=g.pos,l=w+=g.lines,b=_;_<C;_++)if(10===(i=k.charCodeAt(_)))w++;else if(!a(i))break;for(g=e.md.helpers.parseLinkTitle(k,_,C),_<C&&b!==_&&g.ok?(E=g.str,_=g.pos,w+=g.lines):(E="",_=s,w=l);_<C&&(i=k.charCodeAt(_),a(i));)_++;if(_<C&&10!==k.charCodeAt(_)&&E)for(E="",_=s,w=l;_<C&&(i=k.charCodeAt(_),a(i));)_++;return!(_<C&&10!==k.charCodeAt(_))&&(!!(m=r(k.slice(1,h)))&&(o||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[m]&&(e.env.references[m]={title:E,href:u}),e.parentType=f,e.line=t+w+1),!0))}},62389:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isSpace;function o(e,t,n,r){var o,i,s,l,c,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,s=l=u=p=0,c=(i=this.src).length;l<c;l++){if(o=i.charCodeAt(l),!d){if(a(o)){u++,9===o?p+=4-p%4:p++;continue}d=!0}10!==o&&l!==c-1||(10!==o&&l++,this.bMarks.push(s),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,s=l+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}o.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},o.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},o.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},o.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,i,s,l,c,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),o=0;d<t;d++,o++){for(i=0,p=l=this.bMarks[d],c=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];l<c&&i<n;){if(s=this.src.charCodeAt(l),a(s))9===s?i+=4-(i+this.bsCount[d])%4:i++;else{if(!(l-p<this.tShift[d]))break;i++}l++}u[o]=i>n?new Array(i-n+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},o.prototype.Token=r,e.exports=o},33168:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,a=e.length,o=!1,i=0,s="";for(t=e.charCodeAt(r);r<a;)124===t&&(o?(s+=e.substring(i,r-1),i=r):(n.push(s+e.substring(i,r)),s="",i=r+1)),o=92===t,r++,t=e.charCodeAt(r);return n.push(s+e.substring(i)),n}e.exports=function(e,t,n,i){var s,l,c,u,p,d,m,h,f,g,b,k,v,y,E,w;if(t+2>n)return!1;if(d=t+1,e.sCount[d]<e.blkIndent)return!1;if(e.sCount[d]-e.blkIndent>=4)return!1;if((c=e.bMarks[d]+e.tShift[d])>=e.eMarks[d])return!1;if(124!==(s=e.src.charCodeAt(c++))&&45!==s&&58!==s)return!1;for(;c<e.eMarks[d];){if(124!==(s=e.src.charCodeAt(c))&&45!==s&&58!==s&&!r(s))return!1;c++}for(m=(l=a(e,t+1)).split("|"),g=[],u=0;u<m.length;u++){if(!(b=m[u].trim())){if(0===u||u===m.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),0===(h=m.length)||h!==g.length)return!1;if(i)return!0;for(y=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),(f=e.push("table_open","table",1)).map=k=[t,0],(f=e.push("thead_open","thead",1)).map=[t,t+1],(f=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<m.length;u++)f=e.push("th_open","th",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u].trim(),f.children=[],f=e.push("th_close","th",-1);for(f=e.push("tr_close","tr",-1),f=e.push("thead_close","thead",-1),d=t+2;d<n&&!(e.sCount[d]<e.blkIndent);d++){for(E=!1,u=0,p=w.length;u<p;u++)if(w[u](e,d,n,!0)){E=!0;break}if(E)break;if(!(l=a(e,d).trim()))break;if(e.sCount[d]-e.blkIndent>=4)break;for((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),d===t+2&&((f=e.push("tbody_open","tbody",1)).map=v=[t+2,0]),(f=e.push("tr_open","tr",1)).map=[d,d+1],u=0;u<h;u++)f=e.push("td_open","td",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u]?m[u].trim():"",f.children=[],f=e.push("td_close","td",-1);f=e.push("tr_close","tr",-1)}return v&&(f=e.push("tbody_close","tbody",-1),v[1]=d),f=e.push("table_close","table",-1),k[1]=d,e.parentType=y,e.line=d,!0}},37262:function(e){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},50127:function(e){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},65644:function(e,t,n){"use strict";var r=n(58201).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,o,i,s,l,c,u,p,d,m,h,f,g,b,k,v,y,E=e.tokens;if(e.md.options.linkify)for(n=0,o=E.length;n<o;n++)if("inline"===E[n].type&&e.md.linkify.pretest(E[n].content))for(f=0,t=(i=E[n].children).length-1;t>=0;t--)if("link_close"!==(l=i[t]).type){if("html_inline"===l.type&&(y=l.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(l.content)&&f++),!(f>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,v=e.md.linkify.match(p),c=[],h=l.level,m=0,u=0;u<v.length;u++)g=v[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(k=v[u].text,k=v[u].schema?"mailto:"!==v[u].schema||/^mailto:/i.test(k)?e.md.normalizeLinkText(k):e.md.normalizeLinkText("mailto:"+k).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+k).replace(/^http:\/\//,""),(d=v[u].index)>m&&((s=new e.Token("text","",0)).content=p.slice(m,d),s.level=h,c.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",b]],s.level=h++,s.markup="linkify",s.info="auto",c.push(s),(s=new e.Token("text","",0)).content=k,s.level=h,c.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",c.push(s),m=v[u].lastIndex);m<p.length&&((s=new e.Token("text","",0)).content=p.slice(m),s.level=h,c.push(s)),E[n].children=i=r(i,t,c)}}else for(t--;i[t].level!==l.level&&"link_open"!==i[t].type;)t--}},75615:function(e){"use strict";var t=/\r\n?|\n/g,n=/\0/g;e.exports=function(e){var r;r=(r=e.src.replace(t,"\n")).replace(n,"�"),e.src=r}},652:function(e){"use strict";var t=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,r=/\((c|tm|r|p)\)/gi,a={c:"©",r:"®",p:"§",tm:"™"};function o(e,t){return a[t.toLowerCase()]}function i(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||(n.content=n.content.replace(r,o)),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}function s(e){var n,r,a=0;for(n=e.length-1;n>=0;n--)"text"!==(r=e[n]).type||a||t.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&a--,"link_close"===r.type&&"auto"===r.info&&a++}e.exports=function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&(n.test(e.tokens[r].content)&&i(e.tokens[r].children),t.test(e.tokens[r].content)&&s(e.tokens[r].children))}},34335:function(e,t,n){"use strict";var r=n(58201).isWhiteSpace,a=n(58201).isPunctChar,o=n(58201).isMdAsciiPunct,i=/['"]/,s=/['"]/g;function l(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,i,c,u,p,d,m,h,f,g,b,k,v,y,E,w,_,C,x,j,S;for(x=[],n=0;n<e.length;n++){for(i=e[n],m=e[n].level,_=x.length-1;_>=0&&!(x[_].level<=m);_--);if(x.length=_+1,"text"===i.type){p=0,d=(c=i.content).length;e:for(;p<d&&(s.lastIndex=p,u=s.exec(c));){if(E=w=!0,p=u.index+1,C="'"===u[0],f=32,u.index-1>=0)f=c.charCodeAt(u.index-1);else for(_=n-1;_>=0&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_--)if(e[_].content){f=e[_].content.charCodeAt(e[_].content.length-1);break}if(g=32,p<d)g=c.charCodeAt(p);else for(_=n+1;_<e.length&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_++)if(e[_].content){g=e[_].content.charCodeAt(0);break}if(b=o(f)||a(String.fromCharCode(f)),k=o(g)||a(String.fromCharCode(g)),v=r(f),(y=r(g))?E=!1:k&&(v||b||(E=!1)),v?w=!1:b&&(y||k||(w=!1)),34===g&&'"'===u[0]&&f>=48&&f<=57&&(w=E=!1),E&&w&&(E=b,w=k),E||w){if(w)for(_=x.length-1;_>=0&&(h=x[_],!(x[_].level<m));_--)if(h.single===C&&x[_].level===m){h=x[_],C?(j=t.md.options.quotes[2],S=t.md.options.quotes[3]):(j=t.md.options.quotes[0],S=t.md.options.quotes[1]),i.content=l(i.content,u.index,S),e[h.token].content=l(e[h.token].content,h.pos,j),p+=S.length-1,h.token===n&&(p+=j.length-1),d=(c=i.content).length,x.length=_;continue e}E?x.push({token:n,pos:u.index,single:C,level:m}):w&&C&&(i.content=l(i.content,u.index,"’"))}else C&&(i.content=l(i.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},53706:function(e,t,n){"use strict";var r=n(82069);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},84145:function(e){"use strict";var t=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;e.exports=function(e,r){var a,o,i,s,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(s=e.src.charCodeAt(u)))return!1;if(62===s)break}return a=e.src.slice(l+1,u),n.test(a)?(o=e.md.normalizeLink(a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0)):!!t.test(a)&&(o=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0))}},61191:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(n=u,u++,r=e.posMax;u<r&&96===e.src.charCodeAt(u);)u++;if(l=(a=e.src.slice(n,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=n)return t||(e.pending+=a),e.pos+=l,!0;for(i=s=u;-1!==(i=e.src.indexOf("`",s));){for(s=i+1;s<r&&96===e.src.charCodeAt(s);)s++;if((c=s-i)===l)return t||((o=e.push("code_inline","code",0)).markup=a,o.content=e.src.slice(u,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=s,!0;e.backticks[c]=i}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=l,!0}},93296:function(e){"use strict";function t(e,t){var n,r,a,o,i,s,l,c,u={},p=t.length;for(n=0;n<p;n++)if((a=t[n]).length=a.length||0,a.close){for(u.hasOwnProperty(a.marker)||(u[a.marker]=[-1,-1,-1]),i=u[a.marker][a.length%3],(r=n-a.jump-1)<-1&&(r=-1),s=r;r>i;r-=o.jump+1)if((o=t[r]).marker===a.marker&&o.open&&o.end<0&&(l=!1,(o.close||a.open)&&(o.length+a.length)%3==0&&(o.length%3==0&&a.length%3==0||(l=!0)),!l)){c=r>0&&!t[r-1].open?t[r-1].jump+1:0,a.jump=n-r+c,a.open=!1,o.end=n,o.jump=c,o.close=!1,s=-1;break}-1!==s&&(u[a.marker][(a.length||0)%3]=s)}}e.exports=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(0,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(0,r[n].delimiters)}},98052:function(e){"use strict";function t(e,t){var n,r,a,o,i,s;for(n=t.length-1;n>=0;n--)95!==(r=t[n]).marker&&42!==r.marker||-1!==r.end&&(a=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].token===r.token-1&&t[r.end+1].token===a.token+1&&t[n-1].marker===r.marker,i=String.fromCharCode(r.marker),(o=e.tokens[r.token]).type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?i+i:i,o.content="",(o=e.tokens[a.token]).type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?i+i:i,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.w=function(e,t){var n,r,a=e.pos,o=e.src.charCodeAt(a);if(t)return!1;if(95!==o&&42!==o)return!1;for(r=e.scanDelims(e.pos,42===o),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:r.length,jump:n,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},44659:function(e,t,n){"use strict";var r=n(95926),a=n(58201).has,o=n(58201).isValidEntityCode,i=n(58201).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=o(n)?i(n):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(l))&&a(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},52960:function(e,t,n){"use strict";for(var r=n(58201).isSpace,a=[],o=0;o<256;o++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==a[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),o++;o<i&&(n=e.src.charCodeAt(o),r(n));)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},20354:function(e,t,n){"use strict";var r=n(75501).n;e.exports=function(e,t){var n,a,o,i=e.pos;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(i)||i+2>=o)&&(!(33!==(n=e.src.charCodeAt(i+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(i).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(i,i+a[0].length)),e.pos+=a[0].length,!0))))}},39590:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d,m,h,f,g,b="",k=e.pos,v=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<v&&40===e.src.charCodeAt(u)){for(u++;u<v&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(u>=v)return!1;for(g=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(d.str),e.md.validateLink(b)?u=d.pos:b=""),g=u;u<v&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<v&&g!==u&&d.ok)for(m=d.str,u=d.pos;u<v&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);else m="";if(u>=v||41!==e.src.charCodeAt(u))return e.pos=k,!1;u++}else{if(void 0===e.env.references)return!1;if(u<v&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?s=e.src.slice(g,u++):u=l+1):u=l+1,s||(s=e.src.slice(c,l)),!(p=e.env.references[r(s)]))return e.pos=k,!1;b=p.href,m=p.title}return t||(i=e.src.slice(c,l),e.md.inline.parse(i,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=n=[["src",b],["alt",""]],h.children=f,h.content=i,m&&n.push(["title",m])),e.pos=u,e.posMax=v,!0}},68839:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d="",m="",h=e.pos,f=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(s=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=s+1)<f&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(c>=f)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(d=e.md.normalizeLink(u.str),e.md.validateLink(d)?c=u.pos:d="",g=c;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<f&&g!==c&&u.ok)for(m=u.str,c=u.pos;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);}(c>=f||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if(void 0===e.env.references)return!1;if(c<f&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?i=e.src.slice(g,c++):c=s+1):c=s+1,i||(i=e.src.slice(l,s)),!(p=e.env.references[r(i)]))return e.pos=h,!1;d=p.href,m=p.title}return t||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",d]],m&&n.push(["title",m]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=f,!0}},22051:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t){var n,a,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o<a&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}},4160:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isWhiteSpace,o=n(58201).isPunctChar,i=n(58201).isMdAsciiPunct;function s(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}s.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},s.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),a.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(a),this.tokens_meta.push(o),a},s.prototype.scanDelims=function(e,t){var n,r,s,l,c,u,p,d,m,h=e,f=!0,g=!0,b=this.posMax,k=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;h<b&&this.src.charCodeAt(h)===k;)h++;return s=h-e,r=h<b?this.src.charCodeAt(h):32,p=i(n)||o(String.fromCharCode(n)),m=i(r)||o(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:m&&(u||p||(f=!1)),u?g=!1:p&&(d||m||(g=!1)),t?(l=f,c=g):(l=f&&(!g||p),c=g&&(!f||m)),{can_open:l,can_close:c,length:s}},s.prototype.Token=r,e.exports=s},30832:function(e){"use strict";function t(e,t){var n,r,a,o,i,s=[],l=t.length;for(n=0;n<l;n++)126===(a=t[n]).marker&&-1!==a.end&&(o=t[a.end],(i=e.tokens[a.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[o.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[o.token-1].type&&"~"===e.tokens[o.token-1].content&&s.push(o.token-1));for(;s.length;){for(r=(n=s.pop())+1;r<e.tokens.length&&"s_close"===e.tokens[r].type;)r++;n!==--r&&(i=e.tokens[r],e.tokens[r]=e.tokens[n],e.tokens[n]=i)}}e.exports.w=function(e,t){var n,r,a,o,i=e.pos,s=e.src.charCodeAt(i);if(t)return!1;if(126!==s)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(s),a<2)return!1;for(a%2&&(e.push("text","",0).content=o,a--),n=0;n<a;n+=2)e.push("text","",0).content=o+o,e.delimiters.push({marker:s,length:0,jump:n/2,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},96733:function(e){"use strict";function t(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,n){for(var r=e.pos;r<e.posMax&&!t(e.src.charCodeAt(r));)r++;return r!==e.pos&&(n||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}},72300:function(e){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,o=e.tokens.length;for(t=n=0;t<o;t++)a[t].nesting<0&&r--,a[t].level=r,a[t].nesting>0&&r++,"text"===a[t].type&&t+1<o&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},82069:function(e){"use strict";function t(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}t.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},t.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},t.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},t.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},t.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=t},62098:function(e){"use strict";var t={};function n(e,r){var a;return"string"!=typeof r&&(r=n.defaultChars),a=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),a.push(r);for(n=0;n<e.length;n++)a[r=e.charCodeAt(n)]="%"+("0"+r.toString(16).toUpperCase()).slice(-2);return a}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,n,r,o,i,s,l,c="";for(t=0,n=e.length;t<n;t+=3)(r=parseInt(e.slice(t+1,t+3),16))<128?c+=a[r]:192==(224&r)&&t+3<n&&128==(192&(o=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=r<<6&1984|63&o)<128?"��":String.fromCharCode(l),t+=3):224==(240&r)&&t+6<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),128==(192&o)&&128==(192&i))?(c+=(l=r<<12&61440|o<<6&4032|63&i)<2048||l>=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240==(248&r)&&t+9<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),s=parseInt(e.slice(t+10,t+12),16),128==(192&o)&&128==(192&i)&&128==(192&s))?((l=r<<18&1835008|o<<12&258048|i<<6&4032|63&s)<65536||l>1114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",e.exports=n},9401:function(e){"use strict";var t={};function n(e,r,a){var o,i,s,l,c,u="";for("string"!=typeof r&&(a=r,r=n.defaultChars),void 0===a&&(a=!0),c=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),/^[0-9a-z]$/i.test(r)?a.push(r):a.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));for(n=0;n<e.length;n++)a[e.charCodeAt(n)]=e[n];return a}(r),o=0,i=e.length;o<i;o++)if(s=e.charCodeAt(o),a&&37===s&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(s<128)u+=c[s];else if(s>=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1<i&&(l=e.charCodeAt(o+1))>=56320&&l<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",e.exports=n},56558:function(e){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},36664:function(e,t,n){"use strict";e.exports.encode=n(9401),e.exports.decode=n(62098),e.exports.format=n(56558),e.exports.parse=n(5)},5:function(e){"use strict";function t(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,r=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),i=["'"].concat(o),s=["%","/","?",";","#"].concat(i),l=["/","?","#"],c=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};t.prototype.parse=function(e,t){var r,o,i,m,h,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var g=a.exec(f);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(f);if(b&&(i=(b=b[0]).toLowerCase(),this.protocol=b,f=f.substr(b.length)),(t||b||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(h="//"===f.substr(0,2))||b&&p[b]||(f=f.substr(2),this.slashes=!0)),!p[b]&&(h||b&&!d[b])){var k,v,y=-1;for(r=0;r<l.length;r++)-1!==(m=f.indexOf(l[r]))&&(-1===y||m<y)&&(y=m);for(-1!==(v=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(k=f.slice(0,v),f=f.slice(v+1),this.auth=k),y=-1,r=0;r<s.length;r++)-1!==(m=f.indexOf(s[r]))&&(-1===y||m<y)&&(y=m);-1===y&&(y=f.length),":"===f[y-1]&&y--;var E=f.slice(0,y);f=f.slice(y),this.parseHost(E),this.hostname=this.hostname||"";var w="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!w){var _=this.hostname.split(/\./);for(r=0,o=_.length;r<o;r++){var C=_[r];if(C&&!C.match(c)){for(var x="",j=0,S=C.length;j<S;j++)C.charCodeAt(j)>127?x+="x":x+=C[j];if(!x.match(c)){var A=_.slice(0,r),N=_.slice(r+1),T=C.match(u);T&&(A.push(T[1]),N.unshift(T[2])),N.length&&(f=N.join(".")+f),this.hostname=A.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var P=f.indexOf("#");-1!==P&&(this.hash=f.substr(P),f=f.slice(0,P));var M=f.indexOf("?");return-1!==M&&(this.search=f.substr(M),f=f.slice(0,M)),f&&(this.pathname=f),d[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},t.prototype.parseHost=function(e){var t=r.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,n){if(e&&e instanceof t)return e;var r=new t;return r.parse(e,n),r}},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},32002:function(e){var t=1e3,n=60*t,r=60*n,a=24*r,o=7*a,i=365.25*a;function s(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,l){l=l||{};var c=typeof e;if("string"===c&&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 l=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*a;case"hours":case"hour":case"hrs":case"hr":case"h":return l*r;case"minutes":case"minute":case"mins":case"min":case"m":return l*n;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"===c&&isFinite(e))return l.long?function(e){var o=Math.abs(e);if(o>=a)return s(e,o,a,"day");if(o>=r)return s(e,o,r,"hour");if(o>=n)return s(e,o,n,"minute");if(o>=t)return s(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=a)return Math.round(e/a)+"d";if(o>=r)return Math.round(e/r)+"h";if(o>=n)return Math.round(e/n)+"m";if(o>=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))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(l[u]=i[u]);if(t){s=t(i);for(var p=0;p<s.length;p++)r.call(i,s[p])&&(l[s[p]]=i[s[p]])}}return l}},40278:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(92213),a=n.n(r),o=n(68211),i=n.n(o),s=n(48468),l=n.n(s)()("photon"),c={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},u="__domain__.invalid",p="http://".concat(u);function d(e,t){var n;try{n=new URL(e,p)}catch(e){return null}var r,o,s,d,m,h="https:"===n.protocol,f=new URL("https://i0.wp.com");if(m=n.host,/^i[0-2]\.wp\.com$/.test(m))f.pathname=n.pathname,f.hostname=n.hostname;else{if(n.search)return null;var g=n.href.replace("".concat(n.protocol,"/"),"");"blob:"===n.protocol&&(g=n.pathname.replace("://","//")),n.hostname===u&&(g=n.pathname),f.pathname=g,f.hostname=(r=g,o=a()(r),s=i()(o),d="i"+Math.floor(3*s()),l('determined server "%s" to use with "%s"',d,r),d+".wp.com"),h&&f.searchParams.set("ssl",1)}if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?f.searchParams.set(c[b]||b,t[b]):f.protocol="http:":f.hostname=t[b];return l("generated Photon URL: %s",f.href),f.href}},10753:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,a){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var i=/\+/g;e=e.split(n);var s=1e3;a&&"number"==typeof a.maxKeys&&(s=a.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,p,d,m,h=e[c].replace(i,"%20"),f=h.indexOf(r);f>=0?(u=h.substr(0,f),p=h.substr(f+1)):(u=h,p=""),d=decodeURIComponent(u),m=decodeURIComponent(p),t(o,d)?Array.isArray(o[d])?o[d].push(m):o[d]=[o[d],m]:o[d]=m}return o}},68527:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,a){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var o=encodeURIComponent(t(a))+r;return Array.isArray(e[a])?e[a].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[a]))})).join(n):a?encodeURIComponent(t(a))+r+encodeURIComponent(t(e)):""}},76250:function(e,t,n){"use strict";t.decode=t.parse=n(10753),t.encode=t.stringify=n(68527)},54166:function(e,t){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var i=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&l()}function s(){o(i)}function l(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(s,t);a=e}return l}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;i.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},p=b(0,0,0,0);function d(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function h(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],o=e["padding-"+a];t[a]=d(o)}return t}(r),o=a.left+a.right,i=a.top+a.bottom,s=d(r.width),l=d(r.height);if("border-box"===r.boxSizing&&(Math.round(s+o)!==t&&(s-=m(r,"left","right")+o),Math.round(l+i)!==n&&(l-=m(r,"top","bottom")+i)),!function(e){return e===u(e).document.documentElement}(e)){var c=Math.round(s+o)-t,h=Math.round(l+i)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(h)&&(l-=h)}return b(a.left,a.top,s,l)}var f="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return r?f(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):h(e):p}function b(e,t,n,r){return{x:e,y:t,width:n,height:r}}var k=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),v=function(e,t){var n,r,a,o,i,s,l,u=(r=(n=t).x,a=n.y,o=n.width,i=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(s.prototype),c(l,{x:r,y:a,width:o,height:i,top:a,right:r+o,bottom:i+a,left:r}),l);c(this,{target:e,contentRect:u})},y=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new k(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new v(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),E="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new y(t,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=E.get(this))[e].apply(t,arguments)}}));var _=void 0!==a.ResizeObserver?a.ResizeObserver:w;t.Z=_},68211:function(e){"use strict";var t=256,n=[],r=window,a=Math.pow(t,6),o=Math.pow(2,52),i=2*o,s=255,l=Math.random;function c(e){var n,r=e.length,a=this,o=0,i=a.i=a.j=0,l=a.S=[];for(r||(e=[r++]);o<t;)l[o]=o++;for(o=0;o<t;o++)l[o]=l[i=s&i+e[o%r]+(n=l[o])],l[i]=n;(a.g=function(e){for(var n,r=0,o=a.i,i=a.j,l=a.S;e--;)n=l[o=s&o+1],r=r*t+l[s&(l[o]=l[i=s&i+n])+(l[i]=n)];return a.i=o,a.j=i,r})(t)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(e){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[s&a]=s&(n^=19*t[s&a])+r.charCodeAt(a++);return m(t)}function d(e){try{return r.crypto.getRandomValues(e=new Uint8Array(t)),m(e)}catch(e){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,m(n)]}}function m(e){return String.fromCharCode.apply(0,e)}e.exports=function(r,s){if(s&&!0===s.global)return s.global=!1,Math.random=e.exports(r,s),s.global=!0,Math.random;var l=s&&s.entropy||!1,h=[],f=(p(u(l?[r,m(n)]:0 in arguments?r:d(),3),h),new c(h));return p(m(f.S),n),function(){for(var e=f.g(6),n=a,r=0;e<o;)e=(e+r)*t,n*=t,r=f.g(1);for(;e>=i;)e/=2,n/=2,r>>>=1;return(e+r)/n}},e.exports.resetGlobal=function(){Math.random=l},p(Math.random(),n)},45702:function(e,t,n){const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=o(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}c("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new p(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new p(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=l(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=l(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||o&&i||s||c}}e.exports=a;const o=n(75265),{re:i,t:s}=n(75698),l=n(48937),c=n(72840),u=n(88208),p=n(55062)},55062:function(e,t,n){class r{constructor(e,t){if(t=o(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&f(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=a.get(t);if(n)return n;const r=this.options.loose,o=r?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(o,S(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(c[u.COMPARATORTRIM],p),s("comparator trim",e,c[u.COMPARATORTRIM]),e=(e=(e=e.replace(c[u.TILDETRIM],d)).replace(c[u.CARETTRIM],m)).split(/\s+/).join(" ");const l=r?c[u.COMPARATORLOOSE]:c[u.COMPARATOR],f=e.split(" ").map((e=>b(e,this.options))).join(" ").split(/\s+/).map((e=>j(e,this.options))).filter(this.options.loose?e=>!!e.match(l):()=>!0).map((e=>new i(e,this.options))),g=(f.length,new Map);for(const e of f){if(h(e))return[e];g.set(e.value,e)}g.size>1&&g.has("")&&g.delete("");const k=[...g.values()];return a.set(t,k),k}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>g(n,t)&&e.set.some((e=>g(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(A(this.set[t],e,this.options))return!0;return!1}}e.exports=r;const a=new(n(47595))({max:1e3}),o=n(75265),i=n(45702),s=n(72840),l=n(88208),{re:c,t:u,comparatorTrimReplace:p,tildeTrimReplace:d,caretTrimReplace:m}=n(75698),h=e=>"<0.0.0-0"===e.value,f=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every((e=>a.intersects(e,t))),a=r.pop();return n},b=(e,t)=>(s("comp",e,t),e=E(e,t),s("caret",e),e=v(e,t),s("tildes",e),e=_(e,t),s("xrange",e),e=x(e,t),s("stars",e),e),k=e=>!e||"x"===e.toLowerCase()||"*"===e,v=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" "),y=(e,t)=>{const n=t.loose?c[u.TILDELOOSE]:c[u.TILDE];return e.replace(n,((t,n,r,a,o)=>{let i;return s("tilde",e,t,n,r,a,o),k(n)?i="":k(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:k(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:o?(s("replaceTilde pr",o),i=`>=${n}.${r}.${a}-${o} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,s("tilde return",i),i}))},E=(e,t)=>e.trim().split(/\s+/).map((e=>w(e,t))).join(" "),w=(e,t)=>{s("caret",e,t);const n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,a,o,i)=>{let l;return s("caret",e,t,n,a,o,i),k(n)?l="":k(a)?l=`>=${n}.0.0${r} <${+n+1}.0.0-0`:k(o)?l="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(s("replaceCaret pr",i),l="0"===n?"0"===a?`>=${n}.${a}.${o}-${i} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o}-${i} <${+n+1}.0.0-0`):(s("no pr"),l="0"===n?"0"===a?`>=${n}.${a}.${o}${r} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o} <${+n+1}.0.0-0`),s("caret return",l),l}))},_=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>C(e,t))).join(" ")),C=(e,t)=>{e=e.trim();const n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,((n,r,a,o,i,l)=>{s("xRange",e,n,r,a,o,i,l);const c=k(a),u=c||k(o),p=u||k(i),d=p;return"="===r&&d&&(r=""),l=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&d?(u&&(o=0),i=0,">"===r?(r=">=",u?(a=+a+1,o=0,i=0):(o=+o+1,i=0)):"<="===r&&(r="<",u?a=+a+1:o=+o+1),"<"===r&&(l="-0"),n=`${r+a}.${o}.${i}${l}`):u?n=`>=${a}.0.0${l} <${+a+1}.0.0-0`:p&&(n=`>=${a}.${o}.0${l} <${a}.${+o+1}.0-0`),s("xRange return",n),n}))},x=(e,t)=>(s("replaceStars",e,t),e.trim().replace(c[u.STAR],"")),j=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),S=e=>(t,n,r,a,o,i,s,l,c,u,p,d,m)=>`${n=k(r)?"":k(a)?`>=${r}.0.0${e?"-0":""}`:k(o)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=k(c)?"":k(u)?`<${+c+1}.0.0-0`:k(p)?`<${c}.${+u+1}.0-0`:d?`<=${c}.${u}.${p}-${d}`:e?`<${c}.${u}.${+p+1}-0`:`<=${l}`}`.trim(),A=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(s(e[n].semver),e[n].semver!==i.ANY&&e[n].semver.prerelease.length>0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},88208:function(e,t,n){const r=n(72840),{MAX_LENGTH:a,MAX_SAFE_INTEGER:o}=n(29609),{re:i,t:s}=n(75698),l=n(75265),{compareIdentifiers:c}=n(15322);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e})):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(r("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"==typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const n=this.prerelease[t],a=e.prerelease[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const n=this.build[t],a=e.build[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},52045:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},48937:function(e,t,n){const r=n(42969),a=n(74619),o=n(74765),i=n(71767),s=n(63590),l=n(94638);e.exports=(e,t,n,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return a(e,n,c);case">":return o(e,n,c);case">=":return i(e,n,c);case"<":return s(e,n,c);case"<=":return l(e,n,c);default:throw new TypeError(`Invalid operator: ${t}`)}}},12977:function(e,t,n){const r=n(88208),a=n(38675),{re:o,t:i}=n(75698);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=o[i.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),o[i.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[i.COERCERTL].lastIndex=-1}else n=e.match(o[i.COERCE]);return null===n?null:a(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},58230:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>{const a=new r(e,n),o=new r(t,n);return a.compare(o)||a.compareBuild(o)}},25112:function(e,t,n){const r=n(50192);e.exports=(e,t)=>r(e,t,!0)},50192:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},13751:function(e,t,n){const r=n(38675),a=n(42969);e.exports=(e,t)=>{if(a(e,t))return null;{const n=r(e),a=r(t),o=n.prerelease.length||a.prerelease.length,i=o?"pre":"",s=o?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==a[e])return i+e;return s}}},42969:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0===r(e,t,n)},74765:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>0},71767:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>=0},20177:function(e,t,n){const r=n(88208);e.exports=(e,t,n,a)=>{"string"==typeof n&&(a=n,n=void 0);try{return new r(e,n).inc(t,a).version}catch(e){return null}}},63590:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<0},94638:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<=0},51847:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).major},87989:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).minor},74619:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0!==r(e,t,n)},38675:function(e,t,n){const{MAX_LENGTH:r}=n(29609),{re:a,t:o}=n(75698),i=n(88208),s=n(75265);e.exports=(e,t)=>{if(t=s(t),e instanceof i)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?a[o.LOOSE]:a[o.FULL]).test(e))return null;try{return new i(e,t)}catch(e){return null}}},8906:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).patch},85676:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},82576:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(t,e,n)},25709:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},53907:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},21978:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},55641:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},53377:function(e,t,n){const r=n(75698);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(29609).SEMVER_SPEC_VERSION,SemVer:n(88208),compareIdentifiers:n(15322).compareIdentifiers,rcompareIdentifiers:n(15322).rcompareIdentifiers,parse:n(38675),valid:n(55641),clean:n(52045),inc:n(20177),diff:n(13751),major:n(51847),minor:n(87989),patch:n(8906),prerelease:n(85676),compare:n(50192),rcompare:n(82576),compareLoose:n(25112),compareBuild:n(58230),sort:n(21978),rsort:n(25709),gt:n(74765),lt:n(63590),eq:n(42969),neq:n(74619),gte:n(71767),lte:n(94638),cmp:n(48937),coerce:n(12977),Comparator:n(45702),Range:n(55062),satisfies:n(53907),toComparators:n(76055),maxSatisfying:n(33422),minSatisfying:n(17212),minVersion:n(9077),validRange:n(53140),outside:n(44494),gtr:n(2824),ltr:n(34370),intersects:n(30723),simplifyRange:n(23589),subset:n(34992)}},29609:function(e){const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},72840:function(e){const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},15322:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:e<n?-1:1};e.exports={compareIdentifiers:n,rcompareIdentifiers:(e,t)=>n(t,e)}},75265:function(e){const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},75698:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r}=n(29609),a=n(72840),o=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let l=0;const c=(e,t,n)=>{const r=l++;a(r,t),s[e]=r,i[r]=t,o[r]=new RegExp(t,n?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),c("FULL",`^${i[s.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),c("LOOSE",`^${i[s.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),c("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),c("COERCERTL",i[s.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},2824:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,">",n)},30723:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},34370:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,"<",n)},33422:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&-1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},17212:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},9077:function(e,t,n){const r=n(88208),a=n(55062),o=n(74765);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t<e.set.length;++t){const a=e.set[t];let i=null;a.forEach((e=>{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!o(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||n&&!o(n,i)||(n=i)}return n&&e.test(n)?n:null}},44494:function(e,t,n){const r=n(88208),a=n(45702),{ANY:o}=a,i=n(55062),s=n(53907),l=n(74765),c=n(63590),u=n(94638),p=n(71767);e.exports=(e,t,n,d)=>{let m,h,f,g,b;switch(e=new r(e,d),t=new i(t,d),n){case">":m=l,h=u,f=c,g=">",b=">=";break;case"<":m=c,h=p,f=l,g="<",b="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,d))return!1;for(let n=0;n<t.set.length;++n){const r=t.set[n];let i=null,s=null;if(r.forEach((e=>{e.semver===o&&(e=new a(">=0.0.0")),i=i||e,s=s||e,m(e.semver,i.semver,d)?i=e:f(e.semver,s.semver,d)&&(s=e)})),i.operator===g||i.operator===b)return!1;if((!s.operator||s.operator===g)&&h(e,s.semver))return!1;if(s.operator===b&&f(e,s.semver))return!1}return!0}},23589:function(e,t,n){const r=n(53907),a=n(50192);e.exports=(e,t,n)=>{const o=[];let i=null,s=null;const l=e.sort(((e,t)=>a(e,t,n)));for(const e of l){r(e,t,n)?(s=e,i||(i=e)):(s&&o.push([i,s]),s=null,i=null)}i&&o.push([i,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==l[0]?t?e===l[0]?c.push(`<=${t}`):c.push(`${e} - ${t}`):c.push(`>=${e}`):c.push("*");const u=c.join(" || "),p="string"==typeof t.raw?t.raw:String(t);return u.length<p.length?u:t}},34992:function(e,t,n){const r=n(55062),a=n(45702),{ANY:o}=a,i=n(53907),s=n(50192),l=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===o){if(1===t.length&&t[0].semver===o)return!0;e=n.includePrerelease?[new a(">=0.0.0-0")]:[new a(">=0.0.0")]}if(1===t.length&&t[0].semver===o){if(n.includePrerelease)return!0;t=[new a(">=0.0.0")]}const r=new Set;let l,p,d,m,h,f,g;for(const t of e)">"===t.operator||">="===t.operator?l=c(l,t,n):"<"===t.operator||"<="===t.operator?p=u(p,t,n):r.add(t.semver);if(r.size>1)return null;if(l&&p){if(d=s(l.semver,p.semver,n),d>0)return null;if(0===d&&(">="!==l.operator||"<="!==p.operator))return null}for(const e of r){if(l&&!i(e,String(l),n))return null;if(p&&!i(e,String(p),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let b=!(!p||n.includePrerelease||!p.semver.prerelease.length)&&p.semver,k=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver;b&&1===b.prerelease.length&&"<"===p.operator&&0===b.prerelease[0]&&(b=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,l)if(k&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===k.major&&e.semver.minor===k.minor&&e.semver.patch===k.patch&&(k=!1),">"===e.operator||">="===e.operator){if(m=c(l,e,n),m===e&&m!==l)return!1}else if(">="===l.operator&&!i(l.semver,String(e),n))return!1;if(p)if(b&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===b.major&&e.semver.minor===b.minor&&e.semver.patch===b.patch&&(b=!1),"<"===e.operator||"<="===e.operator){if(h=u(p,e,n),h===e&&h!==p)return!1}else if("<="===p.operator&&!i(p.semver,String(e),n))return!1;if(!e.operator&&(p||l)&&0!==d)return!1}return!(l&&f&&!p&&0!==d)&&(!(p&&g&&!l&&0!==d)&&(!k&&!b))},c=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=l(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},76055:function(e,t,n){const r=n(55062);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},53140:function(e,t,n){const r=n(55062);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},88090:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7478),a={contextDelimiter:"",onMissingKey:null};function o(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},a)this.options[n]=void 0!==t&&n in t?t[n]:a[n]}o.prototype.getPluralForm=function(e,t){var n,a,o,i=this.pluralForms[e];return i||("function"!=typeof(o=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(a=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),o=(0,r.Z)(a)),i=this.pluralForms[e]=o),i(t)},o.prototype.dcnpgettext=function(e,t,n,r,a){var o,i,s;return o=void 0===a?0:this.getPluralForm(e,a),i=n,t&&(i=t+this.options.contextDelimiter+n),(s=this.data[e][i])&&s[o]?s[o]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===o?n:r)}},80816:function(e,t,n){"use strict";var r=n(90922),a=n.n(r),o=n(92819);const i=a()("dops:analytics");let s,l;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const c={initialize:function(e,t,n){c.setUser(e,t),c.setSuperProps(n),c.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]: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){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){c.tracks.recordPageView(e),c.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,o,i){c.ga.recordPurchase(e,t,n,r,a,o,i)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(i("- Super Props: %o",s),t=(0,o.assign)(t,s)),i('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):i('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};c.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){c.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){i("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};c.ga.initialized||(l&&(e={userId:"u-"+l.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),c.ga.initialized=!0)},recordPageView:function(e,t){c.ga.initialize(),i("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,n,r){c.ga.initialize();let a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),i(a),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,o,i){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:i}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:o}),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"])}};t.Z=c},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},11973:function(e,t,n){"use strict";var r=n(9481),a=n(80816);a.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),a.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=a.Z},63533:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819);const __=l.__,p="09:00",d="17:00";class m extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,{opening:r,closing:a}=e;return(0,o.createElement)(o.Fragment,{key:t},(0,o.createElement)("div",{className:"business-hours__row"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")},0===t&&this.renderDayToggle()),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.TextControl,{type:"time",label:__("Opening","jetpack"),value:r,className:"business-hours__open",placeholder:p,onChange:e=>{this.setHour(e,"opening",t)}}),(0,o.createElement)(c.TextControl,{type:"time",label:__("Closing","jetpack"),value:a,className:"business-hours__close",placeholder:d,onChange:e=>{this.setHour(e,"closing",t)}})),(0,o.createElement)("div",{className:"business-hours__remove"},n.hours.length>1&&(0,o.createElement)(c.Button,{isSmall:!0,isLink:!0,icon:"trash",label:__("Remove Hours","jetpack"),onClick:()=>{this.removeInterval(t)}}))),t===n.hours.length-1&&(0,o.createElement)("div",{className:"business-hours__row business-hours-row__add"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")}," "),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.Button,{isLink:!0,label:__("Add Hours","jetpack"),onClick:this.addInterval},__("Add Hours","jetpack"))),(0,o.createElement)("div",{className:"business-hours__remove"}," ")))})),a()(this,"setHour",((e,t,n)=>{const{day:r,attributes:a,setAttributes:o}=this.props,{days:i}=a;o({days:i.map((a=>a.name===r.name?{...a,hours:a.hours.map(((r,a)=>a===n?{...r,[t]:e}:r))}:a))})})),a()(this,"toggleClosed",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>{if(n.name===t.name){const t=e?[{opening:p,closing:d}]:[];return{...n,hours:t}}return n}))})})),a()(this,"addInterval",(()=>{const{day:e,attributes:t,setAttributes:n}=this.props,{days:r}=t;e.hours.push({opening:"",closing:""}),n({days:r.map((t=>t.name===e.name?{...t,hours:e.hours}:t))})})),a()(this,"removeInterval",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>t.name===n.name?{...n,hours:n.hours.filter(((t,n)=>e!==n))}:n))})}))}isClosed(){const{day:e}=this.props;return(0,u.isEmpty)(e.hours)}renderDayToggle(){const{day:e,localization:t}=this.props;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"business-hours__day-name"},t.days[e.name]),(0,o.createElement)(c.ToggleControl,{label:this.isClosed()?__("Closed","jetpack"):__("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}renderClosed(){const{day:e}=this.props;return(0,o.createElement)("div",{className:"business-hours__row business-hours-row__closed"},(0,o.createElement)("div",{className:s()(e.name,"business-hours__day")},this.renderDayToggle()),(0,o.createElement)("div",{className:s()(e.name,"closed","business-hours__hours")}," "),(0,o.createElement)("div",{className:"business-hours__remove"}," "))}render(){const{day:e}=this.props;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}t.Z=m},20920:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(69771),l=n(92819);const _x=i._x;class c extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,r=n.hours;return(0,o.createElement)("span",{key:t},(0,i.sprintf)("%1$s - %2$s",this.formatTime(e.opening),this.formatTime(e.closing)),r.length>1+t&&(0,o.createElement)("span",null,", "))}))}formatTime(e){const{timeFormat:t}=this.props,[n,r]=e.split(":"),a=new Date;return!(!n||!r)&&(a.setHours(n),a.setMinutes(r),(0,s.date)(t,a))}render(){const{day:e,localization:t}=this.props,n=e.hours.filter((e=>this.formatTime(e.opening)&&this.formatTime(e.closing)));return(0,o.createElement)("div",{className:"jetpack-business-hours__item"},(0,o.createElement)("dt",{className:e.name},t.days[e.name]),(0,o.createElement)("dd",null,(0,l.isEmpty)(n)?_x("Closed","business is closed on a full day","jetpack"):n.map(this.renderInterval),(0,o.createElement)("br",null)))}}t.Z=c},85932:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(89105),p=n.n(u),d=n(65736),m=n(69771),h=n(52175),f=n(55609),g=n(63533),b=n(20920),k=n(8042);const __=d.__,v={days:{Sun:__("Sunday","jetpack"),Mon:__("Monday","jetpack"),Tue:__("Tuesday","jetpack"),Wed:__("Wednesday","jetpack"),Thu:__("Thursday","jetpack"),Fri:__("Friday","jetpack"),Sat:__("Saturday","jetpack")},startOfWeek:0};class y extends s.Component{constructor(){super(...arguments),i()(this,"state",{localization:v,hasFetched:!1})}componentDidMount(){this.apiFetch()}apiFetch(){this.setState({data:v},(()=>{c()({path:"/wpcom/v2/business-hours/localized-week"}).then((e=>{this.setState({localization:e,hasFetched:!0})}),(()=>{this.setState({localization:v,hasFetched:!0})}))}))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{days:r}=e,{localization:o,hasFetched:i}=this.state,{startOfWeek:l}=o,c=r.concat(r.slice(0,l)).slice(l);if(!i)return(0,s.createElement)(f.Placeholder,{icon:(0,s.createElement)(h.BlockIcon,{icon:k.qv}),label:__("Loading business hours","jetpack")});if(!n){const e=(0,m.__experimentalGetSettings)(),{formats:{time:n}}=e;return(0,s.createElement)("dl",{className:p()(t,"jetpack-business-hours")},c.map(((e,t)=>(0,s.createElement)(b.Z,{key:t,day:e,localization:o,timeFormat:n}))))}return(0,s.createElement)("div",{className:p()(t,"is-edit")},c.map(((e,t)=>(0,s.createElement)(g.Z,a()({key:t,day:e,localization:o},this.props)))))}}t.Z=y},8042:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(85932),s=n(41632),l=n(57535);const __=a.__,_x=a._x,c=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],u="business-hours",p=(0,s.Z)((0,r.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),d={title:__("Business Hours","jetpack"),description:__("Display opening hours for your business.","jetpack"),icon:{src:p,foreground:(0,l.m)()},category:"grow",supports:{html:!0},keywords:[_x("opening hours","block search term","jetpack"),_x("closing time","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("working day","block search term","jetpack")],attributes:{days:{type:"array",default:c}},edit:e=>(0,r.createElement)(i.Z,e),save:()=>null,example:{attributes:{days:c}}}},83487:function(e,t,n){"use strict";var r=n(92819),a=n(55609);const o=(0,a.withFallbackStyles)(((e,t)=>{const{backgroundColor:n,textColor:a}=t,o=(0,r.get)(n,"color"),i=!(0,r.get)(a,"color")&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:o||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:a||!i?void 0:getComputedStyle(i).color}}));t.Z=o},70443:function(e,t,n){"use strict";var r=n(68039);t.Z={element:{type:"string",enum:["a","button","input"]},saveInPostContent:{type:"boolean",default:!1},uniqueId:{type:"string"},passthroughAttributes:{type:"object"},text:{type:"string"},placeholder:{type:"string"},url:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string",validator:r.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:r.Z},gradient:{type:"string"},customGradient:{type:"string"},borderRadius:{type:"number"},width:{type:"string"}}},24429:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(77012);const __=o.__;function s(e){let{borderRadius:t="",setAttributes:n}=e;const o=(0,r.useCallback)((e=>n({borderRadius:e})),[n]);return(0,r.createElement)(a.PanelBody,{title:__("Border Settings","jetpack")},(0,r.createElement)(a.RangeControl,{allowReset:!0,initialPosition:i.pg,label:__("Border radius","jetpack"),max:i.Gp,min:i.G0,onChange:o,value:t}))}},63020:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(65736);const __=o.__;function i(e){let{isGradientAvailable:t,backgroundColor:n,fallbackBackgroundColor:o,fallbackTextColor:i,gradientValue:s,setBackgroundColor:l,setGradient:c,setTextColor:u,textColor:p}=e;const d=(0,r.createElement)(a.ContrastChecker,{backgroundColor:n.color,fallbackBackgroundColor:o,fallbackTextColor:i,isLargeText:!1,textColor:p.color});return t?(0,r.createElement)(a.__experimentalPanelColorGradientSettings,{settings:[{colorValue:p.color,label:__("Text Color","jetpack"),onColorChange:u},{colorValue:n.color,gradientValue:s,label:__("Background","jetpack"),onColorChange:l,onGradientChange:c}],title:__("Background & Text Color","jetpack")},d):(0,r.createElement)(a.PanelColorSettings,{colorSettings:[{value:p.color,onChange:u,label:__("Text Color","jetpack")},{value:n.color,onChange:l,label:__("Background","jetpack")}],title:__("Background & Text Color","jetpack")},d)}},80790:function(e,t,n){"use strict";n.d(t,{Z:function(){return p},h:function(){return d}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=[{value:"px",label:"px",default:150},{value:"%",label:"%",default:100},{value:"em",label:"em",default:10}],c=[{value:"px",label:"px",default:150},{value:"em",label:"em",default:10}],u=["25%","50%","75%","100%"];function p(e){return(0,r.createElement)(i.PanelBody,{title:__("Width settings","jetpack")},(0,r.createElement)(d,e))}function d(e){let{align:t,width:n,onChange:a}=e;const[s,p]=(0,r.useState)(null);(0,r.useEffect)((()=>{void 0===n&&p("px")}),[n]);const d="left"===t||"right"===t;return(0,r.createElement)(i.BaseControl,{label:__("Button width","jetpack")},(0,r.createElement)("div",{className:o()("jetpack-button__width-settings",{"is-aligned":d})},!d&&(0,r.createElement)(i.ButtonGroup,{"aria-label":__("Percentage Width","jetpack")},u.map((e=>(0,r.createElement)(i.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>function(e){const t=n===e?void 0:e;p("%"),a(t)}(e)},e)))),(0,r.createElement)(i.__experimentalUnitControl,{className:"jetpack-button__custom-width",isResetValueOnUnitChange:!0,max:"%"===s||n?.includes("%")?100:void 0,min:0,onChange:e=>a(e),onUnitChange:e=>p(e),size:"small",units:d?c:l,value:n,unit:s})))}},77012:function(e,t,n){"use strict";n.d(t,{DA:function(){return a},pg:function(){return o},Gp:function(){return i},G0:function(){return s}});var r=n(52175);const a=!!r.__experimentalUseGradient,o=5,i=50,s=0},78593:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(24429),o=n(63020),i=n(80790);function s(e){let{attributes:t,backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,setAttributes:c,setBackgroundColor:u,setTextColor:p,textColor:d,gradientValue:m,setGradient:h,isGradientAvailable:f}=e;const{align:g,borderRadius:b,width:k}=t;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Z,{backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,gradientValue:m,setBackgroundColor:u,setGradient:h,setTextColor:p,textColor:d,isGradientAvailable:f}),(0,r.createElement)(a.Z,{borderRadius:b,setAttributes:c}),(0,r.createElement)(i.Z,{align:g,width:k,onChange:e=>c({width:e})}))}},16867:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(52175),c=n(94333),u=n(65736),p=n(83487),d=n(78593),m=n(77012),h=n(31123);const __=u.__;t.Z=(0,c.compose)((0,l.withColors)({backgroundColor:"background-color"},{textColor:"color"}),p.Z)((function(e){const{attributes:t,backgroundColor:n,className:r,clientId:i,setAttributes:c,textColor:u}=e,{align:p,borderRadius:f,element:g,placeholder:b,text:k,width:v}=t,y=(e=>{const t=(0,o.useRef)();return(0,o.useEffect)((()=>{t.current=e}),[e]),t.current})(p);(0,h.Z)({attributes:t,clientId:i,setAttributes:c}),(0,o.useEffect)((()=>{y!==p&&("left"===p||"right"===p)&&v?.includes("%")&&c({width:void 0})}),[p,y,c,v]);const{gradientClass:E,gradientValue:w,setGradient:_}=m.DA?(0,l.__experimentalUseGradient)({gradientAttribute:"gradient",customGradientAttribute:"customGradient"}):{},C=s()("wp-block-button",r),x=s()("wp-block-button__link",{"has-background":n.color||w,[n.class]:!w&&n.class,"has-text-color":u.color,[u.class]:u.class,[E]:E,"no-border-radius":0===f,"has-custom-width":!!v}),j={...!n.color&&w?{background:w}:{backgroundColor:n.color},color:u.color,borderRadius:f?f+"px":void 0,width:v};return(0,o.createElement)("div",{className:C},(0,o.createElement)(l.RichText,{allowedFormats:"input"===g?[]:void 0,className:x,disableLineBreaks:"input"===g,onChange:e=>{const t="input"===g?e.replace(/<br>/gim," "):e;c({text:t})},placeholder:b||__("Add text…","jetpack"),style:j,value:k,withoutInteractiveFormatting:!0}),(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(d.Z,a()({gradientValue:w,setGradient:_,isGradientAvailable:m.DA},e))))}))},51245:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 13h8v-1.5H8V13z"}))},32278:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(70443),o=n(16867),i=n(51245),s=n(41328),l=n(20510);const __=r.__,c="button",u={title:__("Button","jetpack"),icon:i.Z,category:(0,l.Z)("design","layout"),keywords:[],supports:{html:!1,inserter:!1,align:["left","center","right"]},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],attributes:a.Z,edit:o.Z,save:s.Z}},41328:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(77012);function l(e){let{attributes:t,blockName:n,uniqueId:a}=e;const{backgroundColor:l,borderRadius:c,className:u,customBackgroundColor:p,customGradient:d,customTextColor:m,gradient:h,saveInPostContent:f,text:g,textColor:b,url:k,width:v}=t;if(!f)return null;const y=(0,i.getColorClassName)("background-color",l),E=s.DA?(0,i.__experimentalGetGradientClass)(h):void 0,w=(0,i.getColorClassName)("color",b),_=o()("wp-block-button","jetpack-submit-button",u,{[`wp-block-jetpack-${n}`]:n}),C=o()("wp-block-button__link",{"has-text-color":b||m,[w]:w,"has-background":l||h||p||d,[y]:y,[E]:E,"no-border-radius":0===c,"has-custom-width":!!v}),x={background:d||void 0,backgroundColor:y||d||h?void 0:p,color:w?void 0:m,borderRadius:c?c+"px":void 0,width:v};return(0,r.createElement)("div",{className:_},(0,r.createElement)(i.RichText.Content,{className:C,"data-id-attr":a||"placeholder",href:k,id:a,rel:"noopener noreferrer",role:"button",style:x,tagName:"a",target:"_blank",value:g}))}},31123:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(9818),o=n(69307);function i(e){let{attributes:t,clientId:n,setAttributes:i}=e;const{passthroughAttributes:s}=t,{attributesToSync:l}=(0,a.useSelect)((e=>{const{getBlockAttributes:a,getBlockRootClientId:o}=e("core/block-editor"),i=a(o(n))||{},l=(0,r.mapValues)(s,(e=>i[e]));return{attributesToSync:(0,r.pickBy)(l,((e,n)=>e!==t[n]))}}));(0,o.useEffect)((()=>{(0,r.isEmpty)(l)||i(l)}),[l,i])}},35932:function(e,t,n){"use strict";var r=n(68039);t.Z={backgroundColor:{type:"string",default:"ffffff",validator:r.Z},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:r.Z},textColor:{type:"string",default:"4D5055",validator:r.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")}}},16485:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(72566);const __=i.__,_x=i._x,l=e=>{let{onEditClick:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{onClick:()=>t(!0)},__("Edit","jetpack")))},c=e=>{const{attributes:{hideEventTypeDetails:t,url:n},defaultClassName:a,embedCode:i,parseEmbedCode:s,setAttributes:l,setEmbedCode:c}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{PanelBody:!0,title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:s,className:`${a}-embed-form-sidebar`},(0,r.createElement)("input",{type:"text",id:"embedCode",onChange:e=>c(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:i||"",className:"components-placeholder__input"}),(0,r.createElement)("div",null,(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)(o.ToggleControl,{label:__("Hide event type details","jetpack"),checked:t,onChange:()=>l({hideEventTypeDetails:!t})})),n&&(0,r.createElement)(o.Notice,{className:`${a}-color-notice`,isDismissible:!1},(0,r.createElement)(o.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},__("Follow these instructions to change the colors in this block.","jetpack"))))};t.ZP=e=>{const{attributes:t,clientId:n,isEditingUrl:o,setAttributes:i,setIsEditingUrl:u}=e,{style:p,url:d}=t,m=[{value:"inline",label:__("Inline","jetpack")},{value:"link",label:__("Link","jetpack")}];return(0,r.createElement)(r.Fragment,null,d&&!o&&(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(l,{onEditClick:u})),d&&(0,r.createElement)(s.Z,{clientId:n,styleOptions:m,onSelectStyle:i,activeStyle:p,attributes:t,viewportWidth:500}),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(c,e)))}},77017:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(68039);const __=o.__;t.Z={attributes:{backgroundColor:{type:"string",default:"ffffff",validator:i.Z},submitButtonText:{type:"string",default:__("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:i.Z},textColor:{type:"string",default:"4D5055",validator:i.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:i.Z},customTextButtonColor:{type:"string",validator:i.Z}},migrate:e=>{const{submitButtonText:t,submitButtonTextColor:n,submitButtonBackgroundColor:r,submitButtonClasses:o,backgroundButtonColor:i,textButtonColor:s,customBackgroundButtonColor:l,customTextButtonColor:c,...u}=e,p={text:(d=e).submitButtonText||__("Schedule time with me","jetpack"),textColor:d.submitButtonTextColor||d.textButtonColor,customTextColor:d.customTextButtonColor,backgroundColor:d.submitButtonBackgroundColor||d.backgroundButtonColor,customBackgroundColor:d.customBackgroundButtonColor,url:d.url};var d;return[u,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"calendly-widget-id",...p})]]},save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)}}},96537:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=(n(86841),n(92819)),s=n(5157),l=n(52175),c=n(55609),u=n(65736),p=n(4981),d=n(9818),m=n(59040),h=n(35932),f=n(14087),g=n(79042),b=n(79884),k=n(87072),v=n(16485);const __=u.__,_x=u._x;t.Z=(0,c.withNotices)((function(e){const{attributes:t,className:n,clientId:r,name:u,noticeOperations:y,noticeUI:E,setAttributes:w}=e,_=(0,p.getBlockDefaultClassName)(u),C=(0,f.S)(h.Z,t);(0,i.isEqual)(C,t)||w(C);const{backgroundColor:x,hideEventTypeDetails:j,primaryColor:S,textColor:A,style:N,url:T}=C,[P,M]=(0,o.useState)(T),[I,R]=(0,o.useState)(!1),[L,B]=(0,o.useState)(!1),[F,Z]=(0,o.useState)({}),D=()=>{y.removeAllNotices(),y.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack"))};(0,o.useEffect)((()=>{T&&b.lR!==T&&"link"!==N&&(0,k.Z)(T,B).catch((()=>{w({url:void 0}),D()}))}),[]);const O=e=>{if(!e)return void D();e.preventDefault();const t=(0,g.CC)(P);if(t){if(t.buttonAttributes&&"link"===t.style){const e=(0,d.select)("core/editor").getBlocksByClientId(r);e.length&&e[0].innerBlocks.forEach((e=>{(0,d.dispatch)("core/editor").updateBlockAttributes(e.clientId,t.buttonAttributes)})),Z(t.buttonAttributes)}(0,k.Z)(t.url,B).then((()=>{const e=(0,f.S)(h.Z,t);w(e),R(!1),y.removeAllNotices()})).catch((()=>{w({url:void 0}),D()}))}else D()},z=(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(c.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack"))),$=(0,o.createElement)(c.Placeholder,{label:__("Calendly","jetpack"),instructions:__("Enter your Calendly web address or embed code below.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:m.Z}),notices:E},(0,o.createElement)("form",{onSubmit:O},(0,o.createElement)("input",{type:"text",id:"embedCode",onChange:e=>M(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:P||"",className:"components-placeholder__input"}),(0,o.createElement)("div",null,(0,o.createElement)(c.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,o.createElement)("div",{className:`${_}-learn-more`},(0,o.createElement)(c.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},__("Need help finding your embed code?","jetpack")))),U=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:`${_}-overlay`}),(0,o.createElement)("iframe",{src:(()=>{const e=s.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:j?1:0,background_color:x,primary_color:S,text_color:A});return`${T}?${e}`})(),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",title:"Calendly"})),V=(0,o.createElement)(l.InnerBlocks,{template:[[b.Ss.name,{...b.Ss.attributes,...F,passthroughAttributes:{url:"url"}}]],templateLock:"all"});if(L)return z;let q=n;return T&&!I&&(q+=` calendly-style-${N}`),(0,o.createElement)("div",{className:q},(0,o.createElement)(v.ZP,a()({},e,{defaultClassName:_,embedCode:P,isEditingUrl:I,parseEmbedCode:O,setEmbedCode:M,setIsEditingUrl:R})),T&&!I?"inline"===N?U:V:$)}))},59040:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19,1h-2.3v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H8.6v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H4C1.8,1,0,2.8,0,5 v15c0,2.2,1.8,4,4,4h15c2.2,0,4-1.8,4-4V5C23,2.8,21.2,1,19,1z M21,20c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h2.6 v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3h6.1v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3H19c1.1,0,2,0.9,2,2V20z M13.9,14.8l1.4,1.4 c-0.9,0.9-2.1,1.3-3.5,1.3c-2.4,0-4.5-2.1-4.5-4.7s2.1-4.7,4.5-4.7c1.4,0,2.5,0.4,3.4,1.1L14,10.9c-0.5-0.4-1.2-0.6-2.1-0.6 c-1.2,0-2.5,1.1-2.5,2.7c0,1.6,1.3,2.7,2.5,2.7C12.7,15.5,13.4,15.3,13.9,14.8z"}))},79884:function(e,t,n){"use strict";n.d(t,{lR:function(){return d},Ss:function(){return m},u2:function(){return h},Xd:function(){return f}});var r=n(65736),a=n(4981),o=n(35932),i=n(77017),s=n(96537),l=n(59040),c=n(56610),u=n(79042),p=n(57535);const __=r.__,_x=r._x,d="https://calendly.com/wpcom/jetpack-block-example",m={name:"jetpack/button",attributes:{element:"a",text:__("Schedule time with me","jetpack"),uniqueId:"calendly-widget-id",url:d}},h="calendly",f={title:__("Calendly","jetpack"),description:__("Embed a calendar for customers to schedule appointments","jetpack"),icon:{src:l.Z,foreground:(0,p.m)()},category:"grow",keywords:[_x("calendar","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack"),_x("events","block search term","jetpack"),_x("dates","block search term","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:s.Z,save:c.Z,attributes:o.Z,example:{attributes:{hideEventTypeDetails:!1,style:"inline",url:d},innerBlocks:[m]},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&u.mL.test(e.textContent),transform:e=>{const t=(0,u.CC)(e.textContent);return(0,a.createBlock)("jetpack/calendly",t)}}]},deprecated:[i.Z]}},56610:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null))}},79042:function(e,t,n){"use strict";n.d(t,{mL:function(){return r},CC:function(){return a}});const r=/(^|\/\/)(calendly\.com[^"']*)/i,a=e=>{if(!e)return;const t=(e=>{const t=e.match(r);if(t)return"https://"+t[2]})(e);if(!t)return;const n=(e=>{const t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;const r=new URLSearchParams(n.search),a=r.get("background_color"),o=r.get("primary_color"),i=r.get("text_color"),s=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(s)&&(t.backgroundColor=a),o&&o.match(s)&&(t.primaryColor=o),i&&i.match(s)&&(t.textColor=i),t})(t),a=(e=>e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0)(e);if(a&&(n.style=a),"link"===a){n.buttonAttributes={};const t=(e=>{let t=e.match(/false;">([^<]+)<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/),t?t[1]:void 0)})(e);t&&(n.buttonAttributes.text=t);const r=(e=>{const t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]})(e);r&&(n.buttonAttributes.textColor=void 0,n.buttonAttributes.customTextColor=r);const a=(e=>{const t=e.match(/color: '([^']*?)'/);if(t)return t[1]})(e);a&&(n.buttonAttributes.backgroundColor=void 0,n.buttonAttributes.customBackgroundColor=a)}return n}},89534:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subject:{type:"string"},to:{type:"string"},customThankyou:{type:"string",default:""},customThankyouHeading:{type:"string",default:__("Message Sent","jetpack")},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},jetpackCRM:{type:"boolean",default:!0}}},60689:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__('The CRM Jetpack Form extension failed to activate. The error message was "<error />".',"jetpack"),{error:(0,r.createElement)("span",null,t)}))}},81316:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(60689);const __=s.__,c=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:s,crmData:c,setCRMData:u}=e;const p=((e,t,n,r)=>()=>{t(void 0),e(!0),o()({path:"/jetpack/v4/jetpack_crm",method:"POST",data:{extension:"jetpackforms"}}).then((e=>{if("success"!==e.code)throw new Error(e.code);const t=Object.assign({},n);t.jp_form_ext_enabled=!0,r(t)})).catch((e=>{t(e.message)})).finally((()=>{e(!1)}))})(n,s,c,u);return t?(0,r.createElement)(i.Spinner,null):a?(0,r.createElement)(l.Z,{error:a}):(0,r.createElement)(i.Button,{isSecondary:!0,onClick:p},__("Enable Jetpack Forms Extension","jetpack"))},u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("A site administrator must enable the CRM Jetpack Forms extension.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You can integrate this contact form with Jetpack CRM by enabling Jetpack CRM's Jetpack Forms extension.","jetpack"));t.Z=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s}=e;return i.can_activate_extension?(0,r.createElement)("div",null,(0,r.createElement)(p,null),(0,r.createElement)("br",null),(0,r.createElement)(c,{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s})):(0,r.createElement)(u,null)}},36080:function(e,t,n){"use strict";var r=n(69307),a=n(53377),o=n.n(a),i=n(55609),s=n(65736),l=n(81316);const __=s.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Jetpack CRM is installed but has an invalid version.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Zero BS CRM plugin is now Jetpack CRM. Update to the latest version to integrate your contact form with your CRM.","jetpack")),d=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},(0,r.createInterpolateElement)(__("You can save contacts from Jetpack contact forms in Jetpack CRM. Learn more at <a>jetpackcrm.com</a>","jetpack"),{a:(0,r.createElement)(i.ExternalLink,{href:"https://jetpackcrm.com"})})),m=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You already have the Jetpack CRM plugin installed, but it's not activated. Activate the Jetpack CRM plugin to save contacts from this contact form in your Jetpack CRM.","jetpack")),h=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:s}=e;const[c,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)(!1);return t.jp_form_ext_enabled?o().satisfies(o().coerce(t.crm_version),"3.0.19 - 4.0.0")?(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("Contacts from this form will be stored in Jetpack CRM.","jetpack")):(0,r.createElement)(i.ToggleControl,{className:"jetpack-contact-form__crm_toggle",label:__("Jetpack CRM","jetpack"),checked:a,onChange:e=>s({jetpackCRM:e}),help:__("Store contact form submissions in your CRM.","jetpack")}):(0,r.createElement)(l.Z,{isActivatingExt:c,setIsActivatingExt:u,extActivationError:p,setExtActivationError:d,crmData:t,setCRMData:n})};t.Z=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}=e;const s=o().coerce(t.crm_version);if(t.crm_installed&&!s)return(0,r.createElement)(u,null);if(t.crm_installed&&o().lt(s,"3.0.19"))return(0,r.createElement)(p,null);let l=c.NOT_INSTALLED;return t.crm_active?l=c.ACTIVE:t.crm_installed&&(l=c.INSTALLED),(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===l&&(0,r.createElement)(h,{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}),c.INSTALLED===l&&(0,r.createElement)(m,null),c.NOT_INSTALLED===l&&(0,r.createElement)(d,null))}},6361:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(36080);const __=s.__,c=e=>{let{isFetchingCRMData:t,hasCRMDataError:n,crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c}=e;return t?(0,r.createElement)(i.Spinner,null):n?null:(0,r.createElement)(l.Z,{crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c})};t.Z=e=>{let{jetpackCRM:t,setAttributes:n}=e;const[a,s]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)();return(0,r.useEffect)((()=>{o()({path:"/jetpack/v4/jetpack_crm"}).then((e=>{if(e.error)throw e.message;u(!1),d(e)})).catch((()=>u(!0))).finally((()=>s(!1)))}),[]),(0,r.createElement)(i.PanelBody,{title:__("CRM Integration","jetpack"),initialOpen:!1},(0,r.createElement)(i.BaseControl,null,(0,r.createElement)(c,{isFetchingCRMData:a,hasCRMDataError:l,crmData:p,setCRMData:d,jetpackCRM:t,setAttributes:n})))}},69802:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(8523);const __=a.__;t.Z=(0,s.withInstanceId)((function(e){const{id:t,instanceId:n,required:a,label:s,setAttributes:u,width:p,defaultValue:d}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-checkbox-${n}`,className:"jetpack-field jetpack-field-checkbox",label:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:d}),(0,r.createElement)(l.Z,{required:a,label:s,setAttributes:u}),(0,r.createElement)(c.Z,{id:t,required:a,width:p,setAttributes:u}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Checkbox Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Checked by default","jetpack"),checked:d,onChange:e=>u({defaultValue:e?"true":""})}))))})}))},57324:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(84803),u=n(10745);const __=a.__;t.Z=(0,s.withInstanceId)((e=>{var t;let{id:n,instanceId:s,width:p,consentType:d,implicitConsentMessage:m,explicitConsentMessage:h,setAttributes:f}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-consent-${s}`,className:"jetpack-field jetpack-field-consent",label:(0,r.createElement)(r.Fragment,null,"explicit"===d&&(0,r.createElement)("input",{className:"jetpack-field-consent__checkbox",type:"checkbox",disabled:!0}),(0,r.createElement)(l.Z,{required:!1,label:null!==(t={implicit:m,explicit:h}[d])&&void 0!==t?t:"",setAttributes:f,labelFieldName:`${d}ConsentMessage`,placeholder:(0,a.sprintf)(
+/* translators: placeholder is a type of consent: implicit or explicit */
+__("Add %s consent message…","jetpack"),d)}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(c.Z,{setAttributes:f,width:p}))),(0,r.createElement)(i.InspectorAdvancedControls,null,(0,r.createElement)(u.Z,{setAttributes:f,id:n})),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Consent Settings","jetpack")},(0,r.createElement)(o.BaseControl,null,(0,r.createElement)(o.SelectControl,{label:__("Permission to email","jetpack"),value:d,options:[{label:__("Mention that you can email","jetpack"),value:"implicit"},{label:__("Add a privacy checkbox","jetpack"),value:"explicit"}],onChange:e=>f({consentType:e})})))))})}))},8523:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(41632),l=n(84803),c=n(10745);const __=a.__;t.Z=e=>{let{setAttributes:t,width:n,id:a,required:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarButton,{title:__("Required","jetpack"),icon:(0,s.Z)((0,r.createElement)(i.Path,{d:"M8.23118 8L16 16M8 16L15.7688 8 M6.5054 11.893L17.6567 11.9415M12.0585 17.6563L12 6.5",stroke:"currentColor"})),onClick:()=>{t({required:!u})},className:u?"is-pressed":void 0}))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Field is required","jetpack"),className:"jetpack-field-label__required",checked:u,onChange:e=>t({required:e}),help:__("Does this field have to be completed for the form to be submitted?","jetpack")}),(0,r.createElement)(l.Z,{setAttributes:t,width:n}))),(0,r.createElement)(o.InspectorAdvancedControls,null,(0,r.createElement)(c.Z,{setAttributes:t,id:a})))}},10745:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,id:n}=e;return(0,r.createElement)(o.TextControl,{label:__("Unique CSS ID","jetpack"),value:n,onChange:e=>t({id:e}),help:__("A unique ID that can be used in CSS or as an anchor.","jetpack")})}},80500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175);const __=a.__;t.Z=e=>{let{setAttributes:t,label:n,labelFieldName:a,placeholder:i,resetFocus:s,required:l}=e;return(0,r.createElement)("div",{className:"jetpack-field-label"},(0,r.createElement)(o.RichText,{tagName:"label",value:n,className:"jetpack-field-label__input",onChange:e=>{s&&s(),t(a?{[a]:e}:{label:e})},placeholder:null!=i?i:__("Add label…","jetpack"),withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic"]}),l&&(0,r.createElement)("span",{className:"required"},__("(required)","jetpack")))}},56764:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(80500),l=n(29110),c=n(8523);const __=a.__;t.Z=(0,i.withInstanceId)((function(e){const{id:t,type:n,instanceId:a,required:i,label:u,setAttributes:p,isSelected:d,width:m,options:h}=e,[f,g]=(0,r.useState)(null),b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=h.slice(0);null===t?(n.splice(e,1),e>0&&g(e-1)):(n.splice(e,1,t),g(e)),p({options:n})},k=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=h.slice(0);let n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),g(n),p({options:t})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{id:`jetpack-field-multiple-${a}`,className:"jetpack-field jetpack-field-multiple",label:(0,r.createElement)(s.Z,{required:i,label:u,setAttributes:p,isSelected:d,resetFocus:()=>g(null)})},(0,r.createElement)("ol",{className:"jetpack-field-multiple__list",id:`jetpack-field-multiple-${a}`},h.map(((e,t)=>(0,r.createElement)(l.Z,{type:n,key:t,option:e,index:t,onChangeOption:b,onAddOption:k,isInFocus:t===f&&d,isSelected:d})))),d&&(0,r.createElement)(o.Button,{className:"jetpack-field-multiple__add-option",icon:"insert",label:__("Insert option","jetpack"),onClick:k},__("Add option","jetpack"))),(0,r.createElement)(c.Z,{id:t,required:i,setAttributes:p,width:m}))}))},7640:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(80500),s=n(8523);const __=a.__;function l(e){const{id:t,required:n,label:a,setAttributes:l,placeholder:c,width:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"jetpack-field"},(0,r.createElement)(i.Z,{required:n,label:a,setAttributes:l}),(0,r.createElement)(o.Disabled,null,(0,r.createElement)(o.TextareaControl,{placeholder:c,value:c,onChange:e=>l({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,r.createElement)(s.Z,{id:t,required:n,setAttributes:l,width:u}))}},84803:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,width:n}=e;return(0,r.createElement)(o.BaseControl,{label:__("Field Width","jetpack"),help:__("Adjust the width of the field to include multiple fields on a single line.","jetpack"),className:"jetpack-field-label__width"},(0,r.createElement)(o.ButtonGroup,{"aria-label":__("Field Width","jetpack")},[25,50,75,100].map((e=>(0,r.createElement)(o.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>t({width:e})},e,"%")))))}},36755:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(55609),c=n(92694),u=n(80500),p=n(8523);const __=i.__;function d(e){const{id:t,type:n,required:r,label:a,setAttributes:i,placeholder:s,width:c}=e;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"jetpack-field"},(0,o.createElement)(u.Z,{required:r,label:a,setAttributes:i}),(0,o.createElement)(l.Disabled,null,(0,o.createElement)(l.TextControl,{type:n,placeholder:s,value:s,onChange:e=>i({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,o.createElement)(p.Z,{id:t,required:r,width:c,setAttributes:i}))}const m=(0,s.createHigherOrderComponent)((e=>t=>{if(t.name.indexOf("jetpack/field")>-1){const n=t.attributes.width?"jetpack-field__width-"+t.attributes.width:"";return(0,o.createElement)(e,a()({},t,{className:n}))}return(0,o.createElement)(e,t)}),"withCustomClassName");(0,c.addFilter)("editor.BlockListBlock","jetpack/contact-form",m)},32605:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(9818),s=n(4981);const __=o.__,l=()=>{const{insertConsentBlock:e}=(()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]),{insertBlock:t}=(0,i.useDispatch)("core/block-editor");return{insertConsentBlock:(0,r.useCallback)((async()=>{var n;let r=(null!==(n=e.innerBlocks)&&void 0!==n?n:[]).findIndex((e=>{let{name:t}=e;return"jetpack/button"===t}));var a;-1===r&&(r=(null!==(a=e.innerBlocks)&&void 0!==a?a:[]).length);const o=await(0,s.createBlock)("jetpack/field-consent");await t(o,r,e.clientId,!1)}),[t,e.clientId,e.innerBlocks])}})();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("You’re already collecting email contacts. Why not make sure you have permission to email them too?","jetpack")),(0,r.createElement)(a.Button,{isSecondary:!0,onClick:e,style:{marginBottom:"1em"}},__("Add email permission request","jetpack")),(0,r.createElement)("br",null))};t.Z=()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]);return(0,r.useMemo)((()=>(e=>{const t=e.some((e=>{let{name:t}=e;return"jetpack/field-email"===t})),n=e.some((e=>{let{name:t}=e;return"jetpack/field-consent"===t}));return!!t&&!n})(e.innerBlocks)),[e.innerBlocks])?(0,r.createElement)(l,null):null}},95363:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=(n(65736),n(92819)),i=n(99230),s=n(56994),l=n(58505);const c="creative-mail-by-constant-contact/creative-mail-plugin.php",u=e=>{let{pluginState:t,setPluginState:n}=e;const[a,o]=(0,r.useState)(),[i,c]=(0,r.useState)(!1),u=((e,t,n)=>(0,r.useCallback)(((r,a)=>{e(void 0),t(!0),r(a).then((()=>{n(l.Q.ACTIVE)})).catch((t=>{e(t)})).finally((()=>t(!1)))}),[t,e,n]))(o,c,n);return a?(0,r.createElement)(s.Z,{error:a}):(0,r.createElement)(l.Z,{pluginState:t,onCreativeMailPluginClick:u,isInstalling:i})},p=e=>{let{isFetchingPlugins:t,hasError:n,pluginState:o,setPluginState:i}=e;return t?(0,r.createElement)(a.Spinner,null):n?null:(0,r.createElement)(u,{pluginState:o,setPluginState:i})};t.Z=()=>{const[e,t]=(0,r.useState)(!0),[n,a]=(0,r.useState)(!1),[s,u]=(0,r.useState)(l.Q.NOT_INSTALLED);return(0,r.useEffect)((()=>{(0,i.uM)().then((e=>{a(!1),(0,o.get)(e,c)&&((0,o.get)(e,[c,"active"])?u(l.Q.ACTIVE):u(l.Q.INSTALLED))})).catch((()=>a(!0))).finally((()=>t(!1)))}),[u,t,a]),(0,r.createElement)(p,{isFetchingPlugins:e,hasError:n,pluginState:s,setPluginState:u})}},56994:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__("The plugin failed to install. <b /> Please check the <a>plugin information</a> for detailed requirements.","jetpack"),{a:(0,r.createElement)(a.ExternalLink,{href:"https://wordpress.org/plugins/creative-mail-by-constant-contact"}),b:(0,r.createElement)("span",null,t)}))}},58505:function(e,t,n){"use strict";n.d(t,{Q:function(){return c}});var r=n(69307),a=n(55609),o=n(65736),i=n(99230),s=n(47583),l=n(92819);const __=o.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=e=>{let{isActivating:t}=e;const n=t?__("Activating…","jetpack"):__("Installing…","jetpack",0);return(0,r.createElement)(a.Button,{isSecondary:!0,icon:(0,r.createElement)(a.Icon,{style:{animation:"rotation 2s infinite linear"},icon:"update"}),disabled:!0,"aria-label":n},n)},p=e=>{let{installAndActivateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",{style:{color:"rgba(38, 46, 57, 0.7)"}},__("To start sending email campaigns, install the Creative Mail plugin for WordPress.","jetpack"),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,null),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Install Creative Mail plugin","jetpack"))))},d=e=>{let{activateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("To start sending email campaigns, activate the Creative Mail plugin for WordPress.","jetpack")),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,{isActivating:!0}),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Activate Creative Mail Plugin","jetpack")))},m=()=>(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("You’re all setup for email marketing with Creative Mail.","jetpack"),(0,r.createElement)("br",null),(0,r.createElement)(a.ExternalLink,{href:`${(0,l.get)((0,s.Z)(),"adminUrl",!1)}admin.php?page=creativemail`},__("Open Creative Mail settings","jetpack"))));t.Z=e=>{let{pluginState:t,onCreativeMailPluginClick:n,isInstalling:a}=e;return(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===t&&(0,r.createElement)(m,null),c.INSTALLED===t&&(0,r.createElement)(d,{activateCreativeMailPlugin:()=>n(i.bu,"creative-mail-by-constant-contact/creative-mail-plugin"),isInstalling:a}),c.NOT_INSTALLED===t&&(0,r.createElement)(p,{installAndActivateCreativeMailPlugin:()=>n(i.yX,"creative-mail-by-constant-contact"),isInstalling:a}))}},31186:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(32605),s=n(95363);const __=o.__;t.Z=()=>(0,r.createElement)(a.PanelBody,{title:__("Newsletter Integration","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,null,(0,r.createElement)(i.Z,null),(0,r.createElement)(s.Z,null)))},29110:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;class i extends r.Component{constructor(){super(...arguments),this.onChangeOption=this.onChangeOption.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onDeleteOption=this.onDeleteOption.bind(this),this.textInput=(0,r.createRef)()}componentDidMount(){this.props.isInFocus&&this.textInput.current.focus()}componentDidUpdate(){this.props.isInFocus&&this.textInput.current.focus()}onChangeOption(e){this.props.onChangeOption(this.props.index,e.target.value)}onKeyPress(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}onDeleteOption(){this.props.onChangeOption(this.props.index)}render(){const{isSelected:e,option:t,type:n}=this.props;return(0,r.createElement)("li",{className:"jetpack-option"},n&&"select"!==n&&(0,r.createElement)("input",{className:"jetpack-option__type",type:n,disabled:!0}),(0,r.createElement)("input",{type:"text",className:"jetpack-option__input",value:t,placeholder:__("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),e&&(0,r.createElement)(o.Button,{className:"jetpack-option__remove",icon:"trash",label:__("Remove option","jetpack"),onClick:this.onDeleteOption}))}}t.Z=i},89998:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(4981),l=n(89534);const __=o.__,c=["submit_button_text","has_form_settings_set","submitButtonText","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor","submitButtonClasses","hasFormSettingsSet"];t.Z=[{attributes:{submit_button_text:{type:"string",default:__("Submit","jetpack")},has_form_settings_set:{type:"string",default:null},submitButtonText:{type:"string",default:__("Submit","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},...l.Z},migrate:(e,t)=>{const n=(0,a.omit)(e,c),r={text:e.submitButtonText||e.submit_button_text||__("Submit","jetpack"),backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,customBackgroundColor:e.customBackgroundButtonColor,customTextColor:e.customTextButtonColor};return[n,t.concat((0,s.createBlock)("jetpack/button",{element:"button",...r}))]},isEligible:e=>!(!e.has_form_settings_set&&!e.hasFormSettingsSet),save:()=>(0,r.createElement)(i.InnerBlocks.Content,null)}]},31970:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(89105),i=n.n(o),s=n(89453),l=n(65736),c=n(94333),u=n(4981),p=n(9818),d=n(39630),m=n(52175),h=n(55609),f=n(22985),g=n(12289),b=n(6361),k=n(31186),v=n(58014);const __=l.__,y=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"];t.Z=(0,c.compose)([(0,p.withSelect)(((e,t)=>{const{getBlockType:n,getBlockVariations:r,getDefaultBlockVariation:o}=e("core/blocks"),{getBlocks:i}=e("core/block-editor"),{getEditedPostAttribute:s}=e("core/editor"),{getSite:l,getUser:c}=e("core"),u=i(t.clientId),p=s("author"),d=p&&c(p)&&c(p).email,m=s("title");return{blockType:n&&n(t.name),defaultVariation:o&&o(t.name,"block"),variations:r&&r(t.name,"block"),innerBlocks:u,hasInnerBlocks:u.length>0,siteTitle:(0,a.get)(l&&l(),["title"]),postTitle:m,postAuthorEmail:d}})),(0,p.withDispatch)((e=>{const{replaceInnerBlocks:t,selectBlock:n}=e("core/block-editor");return{replaceInnerBlocks:t,selectBlock:n}})),c.withInstanceId])((function(e){let{attributes:t,setAttributes:n,siteTitle:o,postTitle:c,postAuthorEmail:p,hasInnerBlocks:E,replaceInnerBlocks:w,selectBlock:_,clientId:C,instanceId:x,className:j,blockType:S,variations:A,defaultVariation:N}=e;const{to:T,subject:P,customThankyou:M,customThankyouHeading:I,customThankyouMessage:R,customThankyouRedirect:L,jetpackCRM:B}=t,[F,Z]=(0,r.useState)(!1),D=i()(j,"jetpack-contact-form"),O=e=>(0,a.map)(e,(e=>{let[t,n,r=[]]=e;return(0,u.createBlock)(t,n,O(r))})),z=e=>{e.attributes&&n(e.attributes),e.innerBlocks&&w(C,O(e.innerBlocks)),_(C)};(0,r.useEffect)((()=>{E||u.registerBlockVariation||z(g.Z[0])})),(0,r.useEffect)((()=>{if(void 0===T&&p&&n({to:p}),void 0===P&&void 0!==o&&void 0!==c){n({subject:"["+o+"] "+c})}}),[T,p,P,o,c,n]);const $=e=>0!==(e=e.trim()).length&&(!s.validate(e)&&{email:e}),U=e=>{if(0===e.target.value.length)return Z(!1),void n({to:p});const t=e.target.value.split(",").map($).filter(Boolean);t&&t.length&&Z(t)},V=e=>{Z(!1),n({to:e.trim()})},q=()=>{const e=void 0!==T?T:"",t=void 0!==P?P:"";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(h.TextControl,{"aria-describedby":`contact-form-${x}-email-${F&&F.length>0?"error":"help"}`,label:__("Email address to send to","jetpack"),placeholder:__("name@example.com","jetpack"),onKeyDown:e=>{"Enter"===event.key&&(e.preventDefault(),e.stopPropagation())},value:e,onBlur:U,onChange:V,help:__("You can enter multiple email addresses separated by commas.","jetpack")}),(0,r.createElement)(f.Z,{isError:!0,id:`contact-form-${x}-email-error`},(()=>{if(F){if(1===F.length)return F[0]&&F[0].email?(0,l.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),F[0].email):F[0];if(2===F.length)return(0,l.sprintf)(
+/* translators: placeholders are email addresses. */
+__("%1$s and %2$s are not a valid email address.","jetpack"),F[0].email,F[1].email);const e=F.map((e=>e.email));return(0,l.sprintf)(
+/* translators: placeholder is a list of email addresses. */
+__("%s are not a valid email address.","jetpack"),e.join(", "))}return null})()),(0,r.createElement)(h.TextControl,{label:__("Email subject line","jetpack"),value:t,placeholder:__("Enter a subject","jetpack"),onChange:e=>n({subject:e}),help:__("Choose a subject line that you recognize as an email from your website.","jetpack")}),(0,r.createElement)(h.SelectControl,{label:__("On Submission","jetpack"),value:M,options:[{label:__("Show a summary of submitted fields","jetpack"),value:""},{label:__("Show a custom text message","jetpack"),value:"message"},{label:__("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:e=>n({customThankyou:e})}),"redirect"!==M&&(0,r.createElement)(h.TextControl,{label:__("Message Heading","jetpack"),value:I,placeholder:__("Message Sent","jetpack"),onChange:e=>n({customThankyouHeading:e})}),"message"===M&&(0,r.createElement)(h.TextareaControl,{label:__("Message Text","jetpack"),value:R,placeholder:__("Thank you for your submission!","jetpack"),onChange:e=>n({customThankyouMessage:e})}),"redirect"===M&&(0,r.createElement)(h.BaseControl,{label:__("Redirect Address","jetpack"),id:`contact-form-${x}-thankyou-url`},(0,r.createElement)(m.URLInput,{id:`contact-form-${x}-thankyou-url`,value:L,className:"jetpack-contact-form__thankyou-redirect-url",onChange:e=>n({customThankyouRedirect:e})})))};return!E&&u.registerBlockVariation?(0,r.createElement)("div",{className:D},(0,r.createElement)(m.__experimentalBlockVariationPicker,{icon:(0,a.get)(S,["icon","src"]),label:(0,a.get)(S,["title"]),instructions:__("Please select which type of form you'd like to add, or create your own using the skip option.","jetpack"),variations:A,allowSkip:!0,onSelect:function(){z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:N)}})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m.BlockControls,null,(0,r.createElement)(h.ToolbarGroup,null,(0,r.createElement)(h.ToolbarItem,null,(()=>(0,r.createElement)(h.Dropdown,{position:"bottom right",className:"jetpack-contact-form-settings-selector",contentClassName:"jetpack-contact-form__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(h.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("Edit Form Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==d.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,r.createElement)(h.Icon,{icon:"edit"})}))(t,n)},renderContent:()=>q()}))))),(0,r.createElement)(m.InspectorControls,null,(0,r.createElement)(h.PanelBody,{title:__("Form Settings","jetpack")},q()),!(0,v.Wp)()&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(b.Z,{jetpackCRM:B,setAttributes:n}),(0,r.createElement)(k.Z,null))),(0,r.createElement)("div",{className:D},(0,r.createElement)(m.InnerBlocks,{allowedBlocks:y,templateInsertUpdatesSelection:!1})))}))},75494:function(e,t,n){"use strict";n.d(t,{u2:function(){return y},Xd:function(){return w},Nk:function(){return S}});var r=n(69307),a=n(65736),o=n(4981),i=n(55609),s=n(52175),l=n(31970),c=n(89534),u=n(12289),p=n(89998),d=n(54789),m=n(36755),h=n(7640),f=n(69802),g=n(56764),b=n(41632),k=n(57535),v=n(57324);const __=a.__,_x=a._x,y="contact-form",E=(0,b.Z)((0,r.createElement)(i.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),w={title:__("Form","jetpack"),description:__("A simple way to get feedback from folks visiting your site.","jetpack"),icon:{src:E,foreground:(0,k.m)()},keywords:[_x("email","block search term","jetpack"),_x("feedback","block search term","jetpack"),_x("contact form","block search term","jetpack")],supports:{html:!1},attributes:c.Z,edit:l.Z,save:()=>(0,r.createElement)(s.InnerBlocks.Content,null),variations:u.Z,category:"grow",transforms:d.Z,deprecated:p.Z},_={category:"grow",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""},width:{type:"number",default:100}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-text",e)},{type:"block",blocks:["jetpack/field-name"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-name",e)},{type:"block",blocks:["jetpack/field-email"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-email",e)},{type:"block",blocks:["jetpack/field-url"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-url",e)},{type:"block",blocks:["jetpack/field-date"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-date",e)},{type:"block",blocks:["jetpack/field-telephone"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-telephone",e)},{type:"block",blocks:["jetpack/field-textarea"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-textarea",e)},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-checkbox-multiple",e)},{type:"block",blocks:["jetpack/field-radio"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-radio",e)},{type:"block",blocks:["jetpack/field-select"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-select",e)},{type:"block",blocks:["jetpack/field-consent"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-consent",e)}]},save:()=>null,example:{}},C=e=>{let{attributes:t,name:n}=e;return null===t.label?(0,o.getBlockType)(n).title:t.label},x=e=>t=>(0,r.createElement)(m.Z,{type:e,label:C(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id,width:t.attributes.width}),j=e=>t=>(0,r.createElement)(g.Z,{label:C(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id,width:t.attributes.width}),S=[{name:"field-text",settings:{..._,title:__("Text","jetpack"),description:__("When you need just a small amount of text, add a text input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:x("text")}},{name:"field-name",settings:{..._,title:__("Name","jetpack"),description:__("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:x("text")}},{name:"field-email",settings:{..._,title:__("Email","jetpack"),keywords:[__("e-mail","jetpack"),__("mail","jetpack"),"email"],description:__("Want to reply to folks? Add an email address input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:x("email")}},{name:"field-url",settings:{..._,title:__("Website","jetpack"),keywords:["url",__("internet page","jetpack"),"link"],description:__("Add an address input for a website.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:x("url")}},{name:"field-date",settings:{..._,title:__("Date Picker","jetpack"),keywords:[__("Calendar","jetpack"),_x("day month year","block search term","jetpack")],description:__("The best way to set a date. Add a date picker.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:x("text")}},{name:"field-telephone",settings:{..._,title:__("Phone Number","jetpack"),keywords:[__("Phone","jetpack"),__("Cellular phone","jetpack"),__("Mobile","jetpack")],description:__("Add a phone number input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:x("tel")}},{name:"field-textarea",settings:{..._,title:__("Message","jetpack"),keywords:[__("Textarea","jetpack"),"textarea",__("Multiline text","jetpack")],description:__("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:e=>(0,r.createElement)(h.Z,{label:C(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id,width:e.attributes.width})}},{name:"field-checkbox",settings:{..._,title:__("Checkbox","jetpack"),keywords:[__("Confirm","jetpack"),__("Accept","jetpack")],description:__("Add a single checkbox.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:e=>(0,r.createElement)(f.Z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id,width:e.attributes.width}),attributes:{..._.attributes,label:{type:"string",default:""}}}},{name:"field-consent",settings:{..._,title:__("Consent","jetpack"),keywords:[__("Consent","jetpack")],description:__("Ask for consent","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"m81 370h142v40h-142zm0-39h142v-40h-142zm0-79h245v-40h-245zm378 260h-40c0-40.253906-32.746094-73-73-73s-73 32.746094-73 73h-40c0-42.085938 23.128906-78.867188 57.34375-98.3125-11.40625-13.023438-18.34375-30.054688-18.34375-48.6875 0-40.804688 33.195312-74 74-74s74 33.195312 74 74c0 18.632812-6.9375 35.664062-18.34375 48.6875 34.214844 19.445312 57.34375 56.226562 57.34375 98.3125zm-113-113c18.746094 0 34-15.253906 34-34s-15.253906-34-34-34-34 15.253906-34 34 15.253906 34 34 34zm-286 73h138.316406c-3.460937 12.757812-5.316406 26.164062-5.316406 40h-133c-33.085938 0-60-26.914062-60-60v-392c0-33.085938 26.914062-60 60-60h203.757812l142.132813 142.855469v125.210937c-12.042969-7.476562-25.453125-12.765625-39.890625-15.324218v-81.632813h-71.109375c-33.085937 0-60-26.914063-60-60v-71.109375h-174.890625c-11.027344 0-20 8.972656-20 20v392c0 11.027344 8.972656 20 20 20zm234.890625-340.890625h42.972656l-62.972656-63.234375v43.234375c0 11.03125 8.96875 20 20 20zm0 0"}),24,25,"-26 0 512 512"),attributes:{..._.attributes,label:{type:"string",default:__("Consent","jetpack")},consentType:{type:"string",default:"implicit"},implicitConsentMessage:{type:"string",default:__("By submitting your information, you're giving us permission to email you. You may unsubscribe at any time.","jetpack")},explicitConsentMessage:{type:"string",default:__("Can we send you an email from time to time?","jetpack")}},edit:e=>{let{attributes:t,isSelected:n,setAttributes:a}=e;const{id:o,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c}=t;return(0,r.createElement)(v.Z,{id:o,isSelected:n,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c,setAttributes:a})}}},{name:"field-checkbox-multiple",settings:{..._,title:__("Checkbox Group","jetpack"),keywords:[__("Choose Multiple","jetpack"),__("Option","jetpack")],description:__("People love options. Add several checkbox items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:j("checkbox"),attributes:{..._.attributes,label:{type:"string",default:"Choose several"}}}},{name:"field-radio",settings:{..._,title:__("Radio","jetpack"),keywords:[__("Choose","jetpack"),__("Select","jetpack"),__("Option","jetpack")],description:__("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,r.createElement)(i.Circle,{cx:"12",cy:"12",r:"5"}))),edit:j("radio"),attributes:{..._.attributes,label:{type:"string",default:"Choose one"}}}},{name:"field-select",settings:{..._,title:__("Select","jetpack"),keywords:[__("Choose","jetpack"),__("Dropdown","jetpack"),__("Option","jetpack")],description:__("Compact, but powerful. Add a select box with several items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,k.m)(),d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:j("select"),attributes:{..._.attributes,label:{type:"string",default:"Select one"}}}}]},54789:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=(e,t,n)=>{const r=n.match(new RegExp(`\\[${e}[^\\]]* ${t}="([^"]*)"`,"im"));if(r&&r.length)return r[1];const a=n.match(new RegExp(`\\[${e}[^\\]]* ${t}='([^']*)'`,"im"));if(a&&a.length)return a[1];const o=n.match(new RegExp(`\\[${e}[^\\]]* ${t}=([^\\s]*)\\s`,"im"));return!(!o||!o.length)&&o[1]},s={root:{},innerBlocks:[]};t.Z={from:[{type:"raw",priority:1,isMatch:e=>!("P"!==e.nodeName||!(/\[contact-form(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[contact-field(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[\/contact-form]/g.test(e.textContent))),transform:e=>{const t=e.textContent.replace("<br>","");if(t.includes("[contact-form")&&(s.root={},s.innerBlocks=[],s.root=(e=>{const t={to:i("contact-form","to",e),subject:i("contact-form","subject",e),submitButtonText:i("contact-form","submit_button_text",e)};return{blockName:"jetpack/contact-form",attrs:(0,r.pickBy)(t,r.identity)}})(t)),t.includes("[contact-field")){const e=t.match(/(\[contact-field[\s\S]*?\/?])/g);e&&e.length>0&&e.forEach((e=>{s.innerBlocks.push((e=>{const t={label:i("contact-field","label",e),placeholder:i("contact-field","placeholder",e),required:i("contact-field","required",e),options:i("contact-field","options",e)},n=(e=>{const t={text:"jetpack/field-text",url:"jetpack/field-text",textarea:"jetpack/field-textarea",radio:"jetpack/field-radio",checkbox:"jetpack/field-checkbox","checkbox-multiple":"jetpack/field-checkbox-multiple",select:"jetpack/field-select",email:"jetpack/field-email",name:"jetpack/field-name",default:"jetpack/field-text"};return t[e]?t[e]:t.default})(i("contact-field","type",e));return t.options&&(t.options=t.options.split(",")),(0,a.createBlock)(n,(0,r.pickBy)(t,r.identity))})(e))}))}if(t.includes("[/contact-form]")){s.innerBlocks.push((0,a.createBlock)("jetpack/button",{element:"button",text:s.root.attrs.submitButtonText||__("Contact Us","jetpack")}));return(0,a.createBlock)(s.root.blockName,s.root.attrs,s.innerBlocks)}return!1}}]}},12289:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(55609),s=n(58014),l=n(41632),c=n(57535);const __=o.__,u=(0,a.compact)([{name:"contact-form",title:__("Contact Form","jetpack"),description:__("Add a contact form to your page.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M21.99 8c0-.72-.37-1.35-.94-1.7l-8.04-4.71c-.62-.37-1.4-.37-2.02 0L2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-11.05 4.34l-7.2-4.5 7.25-4.25c.62-.37 1.4-.37 2.02 0l7.25 4.25-7.2 4.5c-.65.4-1.47.4-2.12 0z"}),48,48,"-4 -4 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-textarea",{}],["jetpack/button",{text:__("Contact Us","jetpack"),element:"button"}]]},!(0,s.Wp)()&&{name:"newsletter-form",title:__("Newsletter Sign-up","jetpack"),description:__("A simple way to collect information from folks visiting your site.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M37.9999 7.59998C49.3999 7.59998 68.3999 26.6 68.3999 26.6V68.4H7.59985V26.6C7.59985 26.6 26.5999 7.59998 37.9999 7.59998ZM64.5999 63.536L50.4259 52.44L64.5999 41.8L62.9659 40.394L54.3779 45.334L55.2899 28.956L21.9639 26.98L20.2159 44.232L12.6539 40.622L11.3999 41.8L25.5739 52.44L12.5019 63.27L14.0219 64.904L37.9999 49.4L62.8139 65.17L64.5999 63.536Z"}),48,48,"-6 -6 92 92"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-consent",{}],["jetpack/button",{text:__("Subscribe","jetpack"),element:"button"}]]},{name:"rsvp-form",title:__("RSVP Form","jetpack"),description:__("Add an RSVP form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M10 9V7.41c0-.89-1.08-1.34-1.71-.71L3.7 11.29c-.39.39-.39 1.02 0 1.41l4.59 4.59c.63.63 1.71.19 1.71-.7V14.9c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Attending?","jetpack"),required:!0,options:[__("Yes","jetpack"),__("No","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send RSVP","jetpack"),element:"button"}]],attributes:{subject:__("A new RSVP from your website","jetpack")}},{name:"registration-form",title:__("Registration Form","jetpack"),description:__("Add a Registration form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.34 15.02c.39.39 1.02.39 1.41 0l6.36-6.36c.39-.39.39-1.02 0-1.41L14.16 2.3c-.38-.4-1.01-.4-1.4-.01L6.39 8.66c-.39.39-.39 1.02 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95zm6.95 11l-2.12-2.12c-.18-.18-.44-.29-.7-.29h-.27l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2h-.42c-.27 0-.52.11-.71.29l-2.12 2.12c-.37.38-.58.89-.58 1.42V20c0 1.1.9 2 2 2h14c1.1 0 2-.89 2-2v-3.17c0-.53-.21-1.04-.59-1.42z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{label:__("Phone Number","jetpack")}],["jetpack/field-select",{label:__("How did you hear about us?","jetpack"),options:[__("Search Engine","jetpack"),__("Social Media","jetpack"),__("TV","jetpack"),__("Radio","jetpack"),__("Friend or Family","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send","jetpack"),element:"button"}]],attributes:{subject:__("A new registration from your website","jetpack")}},{name:"appointment-form",title:__("Appointment Form","jetpack"),description:__("Add an Appointment booking form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V8c0-.55-.45-1-1-1s-1 .45-1 1v2H2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H6zm9 4c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{required:!0}],["jetpack/field-date",{label:__("Date","jetpack"),required:!0}],["jetpack/field-radio",{label:__("Time","jetpack"),required:!0,options:[__("Morning","jetpack"),__("Afternoon","jetpack")]}],["jetpack/field-textarea",{label:__("Notes","jetpack")}],["jetpack/button",{text:__("Book Appointment","jetpack"),element:"button"}]],attributes:{subject:__("A new appointment booked from your website","jetpack")}},{name:"feedback-form",title:__("Feedback Form","jetpack"),description:__("Add a Feedback form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.03 0 3.8-1.11 4.75-2.75.19-.33-.05-.75-.44-.75H7.69c-.38 0-.63.42-.44.75.95 1.64 2.72 2.75 4.75 2.75z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Please rate our website","jetpack"),required:!0,options:[__("1 - Very Bad","jetpack"),__("2 - Poor","jetpack"),__("3 - Average","jetpack"),__("4 - Good","jetpack"),__("5 - Excellent","jetpack")]}],["jetpack/field-textarea",{label:__("How could we improve?","jetpack")}],["jetpack/button",{text:__("Send Feedback","jetpack"),element:"button"}]],attributes:{subject:__("New feedback received from your website","jetpack")}}]);t.Z=u},4352:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(55609),c=n(29756);const __=i.__;class u extends r.Component{constructor(){super(...arguments),this.preventEnterKey=this.preventEnterKey.bind(this)}preventEnterKey(e){"Enter"!==e.key||e.preventDefault()}render(){const{attributes:{address:e,addressLine2:t,addressLine3:n,city:a,region:i,postal:u,country:p,linkToGoogleMaps:d},isSelected:m,setAttributes:h}=this.props,f=[e,t,n,a,i,u,p].some((e=>""!==e)),g=o()({"jetpack-address-block":!0,"is-selected":m}),b=(0,r.createElement)(l.ToggleControl,{label:__("Link address to Google Maps","jetpack"),checked:d,onChange:e=>h({linkToGoogleMaps:e})});return(0,r.createElement)("div",{className:g},!m&&f&&(0,c.Z)(this.props),(m||!f)&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.PlainText,{value:e,placeholder:__("Street Address","jetpack"),"aria-label":__("Street Address","jetpack"),onChange:e=>h({address:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:t,placeholder:__("Address Line 2","jetpack"),"aria-label":__("Address Line 2","jetpack"),onChange:e=>h({addressLine2:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:n,placeholder:__("Address Line 3","jetpack"),"aria-label":__("Address Line 3","jetpack"),onChange:e=>h({addressLine3:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:a,placeholder:__("City","jetpack"),"aria-label":__("City","jetpack"),onChange:e=>h({city:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:i,placeholder:__("State/Province/Region","jetpack"),"aria-label":__("State/Province/Region","jetpack"),onChange:e=>h({region:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:u,placeholder:__("Postal/Zip Code","jetpack"),"aria-label":__("Postal/Zip Code","jetpack"),onChange:e=>h({postal:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:p,placeholder:__("Country","jetpack"),"aria-label":__("Country","jetpack"),onChange:e=>h({country:e}),onKeyDown:this.preventEnterKey}),b))}}t.Z=u},47559:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(4352),s=n(29756),l=n(41632);const __=a.__,_x=a._x,c="address",u={title:__("Address","jetpack"),description:__("Lets you add a physical address with Schema markup.","jetpack"),keywords:[_x("location","block search term","jetpack"),_x("direction","block search term","jetpack"),_x("place","block search term","jetpack")],icon:(0,l.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),(0,r.createElement)(o.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"grow",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:i.Z,save:s.Z}},29756:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:a,city:o,region:i,postal:s,country:l}}=e;return(0,r.createElement)(r.Fragment,null,t&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},t),n&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},n),a&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},a),o&&!(i||s)&&(0,r.createElement)("div",{className:"jetpack-address__city"},o),o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__city"},o),", ",(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&(0,r.createElement)("div",{className:"jetpack-address__country"},l))},i=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}}=e;let l=o?`+${o},`:"";l=i?`${l}+${i}`:l;return`https://www.google.com/maps/search/${t?`${t},`:""}${n?`${n},`:""}${r?`${r},`:""}${a?`+${a},`:""}${l}${s?`+${s}`:""}`.replace(" ","+")};t.Z=e=>(e=>{let{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}=e;return[t,n,r,a,o,i,s].some((e=>""!==e))})(e.attributes)&&(0,r.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&(0,r.createElement)("a",{href:i(e),target:"_blank",rel:"noopener noreferrer",title:__("Open address in Google Maps","jetpack")},(0,r.createElement)(o,e)),!e.attributes.linkToGoogleMaps&&(0,r.createElement)(o,e))},18680:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(89105),i=n.n(o);const s=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],l=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]];t.Z=e=>{const{isSelected:t}=e;return(0,r.createElement)("div",{className:i()({"jetpack-contact-info-block":!0,"is-selected":t})},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:s,templateLock:!1,template:l}))}},63015:function(e,t,n){"use strict";var r=n(59861),a=n(55637),o=n(65736);const __=o.__;t.Z=e=>{const{setAttributes:t}=e;return(0,a.Z)("email",e,__("Email","jetpack"),r.Z,(e=>t({email:e})))}},52413:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(63015),s=n(41632),l=n(59861);const __=a.__,_x=a._x,c="email",u={title:__("Email Address","jetpack"),description:__("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",_x("message","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"grow",attributes:{email:{type:"string",default:""}},edit:i.Z,save:l.Z,parent:["jetpack/contact-info"]}},59861:function(e,t,n){"use strict";var r=n(69307),a=n(89453);t.Z=e=>{let{attributes:{email:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},t.split(/(\s+)/).map(((e,t)=>{const n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&a.validate(n)?e===n?(0,r.createElement)("a",{href:`mailto:${e}`,key:t},e):(0,r.createElement)(r.Fragment,{key:t},(0,r.createElement)("a",{href:`mailto:${e}`,key:t},n),(0,r.createElement)(r.Fragment,null,e.slice(-(e.length-n.length)))):(0,r.createElement)(r.Fragment,{key:t},e)})))}},20195:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return g},Nk:function(){return b}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(4981),l=n(18680),c=n(41632),u=n(47559),p=n(52413),d=n(51592),m=n(57535);const __=a.__,_x=a._x,h="contact-info",f=(0,c.Z)((0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),g={title:__("Contact Info","jetpack"),description:__("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[_x("email","block search term","jetpack"),_x("phone","block search term","jetpack"),_x("address","block search term","jetpack")],icon:{src:f,foreground:(0,m.m)()},category:"grow",supports:{align:["wide","full"],html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"widget_contact_info"===t},transform:e=>{let{instance:t}=e,n=[(0,s.createBlock)("core/heading",{content:t.raw.title}),(0,s.createBlock)("jetpack/email",{email:t.raw.email}),(0,s.createBlock)("jetpack/phone",{phone:t.raw.phone}),(0,s.createBlock)("jetpack/address",{address:t.raw.address})];return t.raw.hours&&(n=[...n,(0,s.createBlock)("core/paragraph",{content:t.raw.hours})]),t.raw.showmap&&t.raw.address&&(n=[...n,(0,s.createBlock)("jetpack/map",{address:t.raw.address})]),(0,s.createBlock)("jetpack/contact-info",{},n)}}]},attributes:{},edit:l.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},b=[{name:u.u,settings:u.X},{name:p.u,settings:p.X},{name:d.u,settings:d.X}]},51633:function(e,t,n){"use strict";var r=n(65736),a=n(18690),o=n(55637);const __=r.__;t.Z=e=>{const{setAttributes:t}=e;return(0,o.Z)("phone",e,__("Phone number","jetpack"),a.Z,(e=>t({phone:e})))}},51592:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(51633),s=n(41632),l=n(18690);const __=a.__,_x=a._x,c="phone",u={title:__("Phone Number","jetpack"),description:__("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[_x("mobile","block search term","jetpack"),_x("telephone","block search term","jetpack"),_x("cell","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"grow",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:i.Z,save:l.Z}},18690:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{let{attributes:{phone:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},function(e){const t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;const n=e.indexOf(t[0]);let a=n?e.substring(n-1):e,o=n?e.substring(0,n):"",i=a.replace(/\D/g,"");return/[0-9/+/(]/.test(a[0])?(o=o.slice(0,-1),"+"===a[0]&&(i="+"+i)):a=a.substring(1),[o.trim()?(0,r.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},o):null,(0,r.createElement)("a",{key:"phoneNumber",href:`tel:${i}`},a)]}(t))}},48387:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(89105),s=n.n(i),l=n(52175),c=n(17882);t.Z=e=>{let{className:t=null,currency:n=null,defaultValue:i=null,disabled:u=!1,label:p="",onChange:d=null,value:m=""}=e;const[h,f]=(0,r.useState)((0,a.ZP)(m,n,{symbol:""})),[g,b]=(0,r.useState)(!1),[k,v]=(0,r.useState)(!1),y=(0,r.useRef)(null),E=(0,r.useCallback)((e=>{if(f(e),!d)return;const t=(0,c.Vm)(e,n);t&&t>=(0,c.hj)(n)?(d(t),v(!1)):e&&v(!0)}),[n,d]),w=()=>{y.current&&(y.current.focus(),b(!0))};return(0,r.useEffect)((()=>{y.current&&y.current.addEventListener("blur",(()=>b(!1)))}),[y]),(0,r.useEffect)((()=>{g||h||E((0,a.ZP)(i,n,{symbol:""}))}),[n,i,h,g,E]),(0,r.useEffect)((()=>{g||k||f((0,a.ZP)(m,n,{symbol:""}))}),[n,g,k,E,m]),(0,r.createElement)("div",{className:s()("donations__amount",t,{"has-focus":g,"has-error":k}),role:"button",tabIndex:0,onClick:w,onKeyDown:w},o.M[n].symbol,u?(0,r.createElement)("div",{className:"donations__amount-value"},(0,a.ZP)(m||i,n,{symbol:""})):(0,r.createElement)(l.RichText,{allowedFormats:[],"aria-label":p,keepPlaceholderOnFocus:!0,multiline:!1,onChange:e=>E(e),placeholder:(0,a.ZP)(i,n,{symbol:""}),ref:y,value:h,withoutInteractiveFormatting:!0}))}},46928:function(e,t,n){"use strict";var r=n(69307),a=n(75139),o=n(52175),i=n(55609),s=n(65736),l=n(39630),c=n(17882),u=n(4235);const __=s.__;t.Z=e=>{const{attributes:t,setAttributes:n}=e,{currency:s,monthlyDonation:p,annualDonation:d,showCustomAmount:m}=t,h=(e,r)=>{const a={"1 month":"monthlyDonation","1 year":"annualDonation"}[e],o=t[a];n({[a]:{...o,show:r}})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(i.Dropdown,{contentClassName:"jetpack-donations__currency-popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(i.Button,{className:"jetpack-donations__currency-toggle",icon:(0,r.createElement)(r.Fragment,null,a.M[s].symbol+" - "+s,(0,r.createElement)(i.Dashicon,{icon:"arrow-down"})),label:__("Change currency","jetpack"),onClick:t,onKeyDown:e=>{n||e.keyCode!==l.DOWN||(e.preventDefault(),e.stopPropagation(),t())}})},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(i.MenuGroup,null,Object.keys(c.ck).map((e=>(0,r.createElement)(i.MenuItem,{isSelected:e===s,onClick:()=>{n({currency:e}),t()},key:`jetpack-donations-currency-${e}`},a.M[e].symbol+" - "+e))))}}))))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{checked:p.show,onChange:e=>h("1 month",e),label:__("Show monthly donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:d.show,onChange:e=>h("1 year",e),label:__("Show annual donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:m,onChange:e=>n({showCustomAmount:e}),label:__("Show custom amount option","jetpack")}),(0,r.createElement)(i.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,u.Z)()}`},__("View donation earnings","jetpack")))))}},92202:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(52175),s=n(65736),l=n(17882);const __=s.__;t.Z={attributes:{currency:{type:"string",default:"USD"},oneTimeDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a one-time donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate","jetpack")}},monthlyDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a monthly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate monthly","jetpack")}},annualDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a yearly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate yearly","jetpack")}},showCustomAmount:{type:"boolean",default:!0},chooseAmountText:{type:"string",default:__("Choose an amount","jetpack")},customAmountText:{type:"string",default:__("Or enter a custom amount","jetpack")}},supports:{html:!1},save:e=>{let{attributes:t}=e;const{currency:n,oneTimeDonation:s,monthlyDonation:c,annualDonation:u,showCustomAmount:p,chooseAmountText:d,customAmountText:m}=t;if(!s||!s.show||-1===s.planId)return null;const h={"one-time":{title:__("One-Time","jetpack")},...c.show&&{"1 month":{title:__("Monthly","jetpack")}},...u.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"donations__container"},Object.keys(h).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(h).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:"donations__nav-item",key:`jetpack-donations-nav-item-${t} `,"data-interval":t},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__one-time-item",value:s.heading}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__monthly-item",value:c.heading}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__annual-item",value:u.heading}),(0,r.createElement)(i.RichText.Content,{tagName:"p",value:d}),(0,r.createElement)("div",{className:"donations__amounts donations__one-time-item"},s.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),c.show&&(0,r.createElement)("div",{className:"donations__amounts donations__monthly-item"},c.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),u.show&&(0,r.createElement)("div",{className:"donations__amounts donations__annual-item"},u.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),p&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.RichText.Content,{tagName:"p",value:m}),(0,r.createElement)("div",{className:"donations__amount donations__custom-amount"},o.M[n].symbol,(0,r.createElement)("div",{className:"donations__amount-value","data-currency":n,"data-empty-text":(0,a.ZP)(100*(0,l.hj)(n),n,{symbol:""})}))),(0,r.createElement)("div",{className:"donations__separator"},"——"),(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__one-time-item",value:s.extraText}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__monthly-item",value:c.extraText}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__annual-item",value:u.extraText}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__one-time-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__one-time-item",value:s.buttonText})),c.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__monthly-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__monthly-item",value:c.buttonText})),u.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__annual-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__annual-item",value:u.buttonText}))))))}}},53104:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(9818),s=n(65736),l=n(53823),c=n(82116),u=n(83040),p=n(10756);const __=s.__;t.Z=e=>{const{attributes:t,className:n,setAttributes:r}=e,{currency:s}=t,[d,m]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[g,b]=(0,o.useState)(!1),[k,v]=(0,o.useState)([]),y=(0,i.useSelect)((e=>e("core/editor").getCurrentPost()),[]);(0,o.useEffect)((()=>{r({fallbackLinkUrl:y.link})}),[y.link,r]);const E=e=>{m(e)},w=e=>e.reduce(((e,t)=>{let{id:n,currency:r,type:a,interval:o}=t;return r===s&&"donation"===a&&(e[o]=n),e}),{}),_=e=>{if(!e&&"object"!=typeof e||e.errors)return void m(__("Could not load data from WordPress.com.","jetpack"));f(e.should_upgrade_to_access_memberships),b(e.connect_url);const t=w(e.products);(e=>{const t=Object.keys(e);return t.includes("one-time")&&t.includes("1 month")&&t.includes("1 year")})(t)?v(t):e.should_upgrade_to_access_memberships||e.connect_url?v({"one-time":-1,"1 month":-1,"1 year":-1}):(0,u.Z)(s).then((e=>v(w(e))),E)};return(0,o.useEffect)((()=>{(0,p.Z)("donation").then(_,E)}),[s]),d?(0,o.createElement)(c.Z,{className:n,error:d}):(0,o.createElement)(l.Z,a()({},e,{products:k,shouldUpgrade:h,stripeConnectUrl:g}))}},83040:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z=async e=>{try{return await a()({path:"/wpcom/v2/memberships/products",method:"POST",data:{type:"donation",currency:e}})}catch(e){return Promise.reject(e.message)}}},10756:function(e,t,n){"use strict";var r=n(82827),a=n(86989),o=n.n(a),i=n(96483);t.Z=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const{query:t}=(0,r.Qc)(window.location.href,!0),n=(0,i.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t.origin?"gutenberg-wpcom":"gutenberg",...e&&{type:e}});try{return await o()({path:n,method:"GET"})}catch(e){return Promise.reject(e.message)}}},63445:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return c}});var r=n(65736),a=n(53104),o=n(56734),i=n(92202),s=n(51591);const __=r.__,l="donations",c={title:__("Donations","jetpack"),description:__("Collect one-time, monthly, or annually recurring donations.","jetpack"),icon:s.K9,category:"earn",keywords:[__("Donations","jetpack")],supports:{html:!1},edit:a.Z,save:o.Z,example:{},deprecated:[i.Z]}},82116:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=e=>{let{className:t,error:n}=e;return(0,r.createElement)(o.Placeholder,{icon:"lock",label:__("Donations","jetpack"),instructions:n,className:t})}},56734:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t}=e;const{fallbackLinkUrl:n,oneTimeDonation:o,monthlyDonation:i,annualDonation:s}=t;return o&&o.show&&o.planId&&-1!==o.planId?(0,r.createElement)("div",null,(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:o.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:o.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:o.buttonText}),i.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:i.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:i.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:i.buttonText})),s.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:s.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:s.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:s.buttonText}))):null}},75242:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(9818),i=n(65736),s=n(48387),l=n(17882);const __=i.__;t.Z=e=>{let{activeTab:t,attributes:n,setAttributes:c}=e;const{currency:u,oneTimeDonation:p,monthlyDonation:d,annualDonation:m,showCustomAmount:h,chooseAmountText:f,customAmountText:g}=n,b={"one-time":"oneTimeDonation","1 month":"monthlyDonation","1 year":"annualDonation"},k=e=>n[b[t]][e],v=(e,r)=>{const a=b[t],o=n[a];c({[a]:{...o,[e]:r}})},[y,E]=(0,r.useState)(u),w=(0,l.hj)(u),_=(0,r.useMemo)((()=>[10*w,30*w,200*w]),[w]);(0,r.useEffect)((()=>{y!==u&&(E(u),c({oneTimeDonation:{...p,amounts:_},monthlyDonation:{...d,amounts:_},annualDonation:{...m,amounts:_}}))}),[u,y,_,p,d,m,c]);const C=k("amounts"),x=(0,o.useSelect)((e=>e("core/rich-text").getFormatTypes()),[]).map((e=>e.name)).filter((e=>"core/link"!==e));return(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(a.RichText,{tagName:"h4",placeholder:__("Write a message…","jetpack"),value:k("heading"),onChange:e=>v("heading",e)}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:f,onChange:e=>c({chooseAmountText:e})}),(0,r.createElement)("div",{className:"donations__amounts"},C.map(((e,t)=>(0,r.createElement)(s.Z,{currency:u,defaultValue:_[t],label:(0,i.sprintf)(// translators: %d: Tier level e.g: "1", "2", "3"
+__("Tier %d","jetpack"),t+1),key:`jetpack-donations-amount-${t}`,onChange:e=>((e,t)=>{const n=[...C];n[t]=e,v("amounts",n)})(e,t),value:e})))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:g,onChange:e=>c({customAmountText:e})}),(0,r.createElement)(s.Z,{currency:u,label:__("Custom amount","jetpack"),defaultValue:100*(0,l.hj)(u),className:"donations__custom-amount",disabled:!0})),(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:k("extraText"),onChange:e=>v("extraText",e)}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper"},(0,r.createElement)(a.RichText,{className:"wp-block-button__link donations__donate-button",placeholder:__("Write a message…","jetpack"),value:k("buttonText"),onChange:e=>{return t=e,void c({oneTimeDonation:{...p,buttonText:t},monthlyDonation:{...d,buttonText:t},annualDonation:{...m,buttonText:t}});var t},allowedFormats:x})))}},53823:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(65736),l=n(46928),c=n(75242),u=n(43393);const __=s.__;t.Z=e=>{const{attributes:t,className:n,products:a,setAttributes:s,shouldUpgrade:p,stripeConnectUrl:d}=e,{oneTimeDonation:m,monthlyDonation:h,annualDonation:f}=t,[g,b]=(0,r.useState)("one-time"),k=(0,i.useSelect)((e=>e("core/editor").getCurrentPostId()),[]),v=(0,r.useCallback)((e=>g===e),[g]),y={"one-time":{title:__("One-Time","jetpack")},...h.show&&{"1 month":{title:__("Monthly","jetpack")}},...f.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.useEffect)((()=>{m.planId===a["one-time"]&&h.planId===a["1 month"]&&f.planId===a["1 year"]||s({oneTimeDonation:{...m,planId:a["one-time"]},monthlyDonation:{...h,planId:a["1 month"]},annualDonation:{...f,planId:a["1 year"]}})}),[m,h,f,s,a]),(0,r.useEffect)((()=>{!h.show&&v("1 month")&&b("one-time"),!f.show&&v("1 year")&&b("one-time")}),[h,f,b,v]),(0,r.createElement)("div",{className:n},!p&&d&&(0,r.createElement)(u.Z,{blockName:"donations",postId:k,stripeConnectUrl:d}),(0,r.createElement)("div",{className:"donations__container"},Object.keys(y).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(y).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:o()("donations__nav-item",{"is-active":v(t)}),onClick:()=>b(t),onKeyDown:()=>b(t),key:`jetpack-donations-nav-item-${t} `},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)(c.Z,{activeTab:g,attributes:t,setAttributes:s}))),(0,r.createElement)(l.Z,e))}},28559:function(e,t){"use strict";t.Z={url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},style:{type:"string",default:"inline"}}},77019:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__,i=e=>{let{setEditingUrl:t}=e;return(0,r.createElement)(a.ToolbarGroup,null,(0,r.createElement)(a.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},48631:function(e,t,n){"use strict";var r=n(61652);t.Z=[r.Z]},61652:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(92819),l=n(4981),c=n(65736);const _x=c._x,u=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius"];t.Z={attributes:{url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},useModal:{type:"boolean"},style:{type:"string"},text:{type:"string",default:_x("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},migrate:e=>{const{className:t,style:n}=e;let r=n;r||(r=e.useModal?"modal":"inline");const a={...(0,s.omit)(e,["useModal",...u]),className:t&&t.replace("is-style-outline",""),style:r},o=(0,s.pick)(e,u);return[a,[(0,l.createBlock)("jetpack/button",{element:"a",text:o.text||_x("Register","verb: e.g. register for an event.","jetpack"),...o,uniqueId:"eventbrite-widget-id",className:t&&-1!==t.indexOf("is-style-outline")?"is-style-outline":""})]]},save:function(e){let{attributes:t}=e;const{eventId:n,useModal:a,url:s,style:l}=t;if(n)return a||"modal"===l?function(e){const{backgroundColor:t,borderRadius:n,customBackgroundColor:a,customTextColor:s,eventId:l,text:c,textColor:u,url:p}=e,d=(0,i.getColorClassName)("color",u),m=(0,i.getColorClassName)("background-color",t),h=o()("wp-block-button__link",{"has-text-color":u||s,[d]:d,"has-background":t||a,[m]:m,"no-border-radius":0===n}),f={backgroundColor:m?void 0:a,color:d?void 0:s,borderRadius:n?n+"px":void 0};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{className:h,href:p,id:`eventbrite-widget-${l}`,rel:"noopener noreferrer",role:"button",style:f,tagName:"a",target:"_blank",value:c}))}(t):s&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:s},s)},isEligible:(e,t)=>("modal"===e.style||e.useModal)&&((0,s.isEmpty)(t)||(0,s.some)((0,s.pick)(e,u),Boolean))}},62337:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(45166),u=n(28559),p=n(62194),d=n(14087),m=n(58014),h=n(8964),f=n(72566),g=n(87072),b=n(77019);const __=i.__,_x=i._x;class k extends o.Component{constructor(){super(...arguments),a()(this,"state",{editedUrl:this.props.attributes.url||"",editingUrl:!1,isResolvingUrl:!1}),a()(this,"setUrl",(e=>{const{attributes:t,noticeOperations:n,setAttributes:r}=this.props,{style:a}=t;if(!e||c.Q7===e||"modal"===a)return;const o=(0,p.Ve)(e);if(o){const t={eventId:o,url:e};(0,g.Z)(t.url,this.setIsResolvingUrl).then((e=>{const a=(0,d.S)(u.Z,{...t,url:e});r(a),this.setState({editedUrl:e}),n.removeAllNotices()})).catch((()=>{r({eventId:void 0,url:void 0}),this.setErrorNotice()}))}else this.setErrorNotice()})),a()(this,"setIsResolvingUrl",(e=>this.setState({isResolvingUrl:e}))),a()(this,"setEditingUrl",(e=>this.setState({editingUrl:e}))),a()(this,"setErrorNotice",(()=>{const{noticeOperations:e,onReplace:t}=this.props,{editedUrl:n}=this.state;e.removeAllNotices(),e.createErrorNotice((0,o.createElement)(o.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,o.createElement)(s.Button,{isLink:!0,onClick:()=>(0,p.N3)(n,t)},_x("Convert block to link","button label","jetpack"))))})),a()(this,"submitForm",(e=>{e&&e.preventDefault(),this.setUrl((0,p.qq)(this.state.editedUrl)),this.setState({editingUrl:!1})})),a()(this,"cannotEmbed",(()=>{const{url:e}=this.props.attributes,{isResolvingUrl:t}=this.state;return!t&&e&&!c.Wh.test(e)}))}componentDidMount(){const{url:e}=this.props.attributes;this.setUrl(e)}renderLoading(){return(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(s.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack")))}renderInspectorControls(){const{style:e}=this.props.attributes,{attributes:t,clientId:n,setAttributes:r}=this.props,a=[{value:"inline",label:__("In-page Embed","jetpack"),preview:(0,o.createElement)("div",{className:"block-editor-block-preview__container"},(0,o.createElement)("img",{src:h,alt:__("In page Eventbrite checkout example","jetpack")}))},{value:"modal",label:__("Button & Modal","jetpack")}];return(0,o.createElement)(f.Z,{title:_x("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack"),clientId:n,styleOptions:a,onSelectStyle:r,activeStyle:e,attributes:t,viewportWidth:130})}renderEditEmbed(){const{className:e,noticeUI:t}=this.props,{editedUrl:n}=this.state,r=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.Placeholder,{label:__("Eventbrite Checkout","jetpack"),instructions:__("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:c.qv}),notices:t},(0,o.createElement)("form",{onSubmit:this.submitForm},(0,o.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":__("Eventbrite URL","jetpack"),placeholder:__("Enter an event URL to embed here…","jetpack"),onChange:e=>this.setState({editedUrl:e.target.value})}),(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},_x("Embed","submit button label","jetpack"))),(0,o.createElement)("div",{className:"components-placeholder__learn-more"},(0,o.createElement)(s.ExternalLink,{href:r},__("Learn more about Eventbrite embeds","jetpack")))))}renderInlinePreview(){const{className:e}=this.props,{eventId:t}=this.props.attributes;if(!t)return;const n=`eventbrite-widget-${t}`,r=`\n\t\t\t<script src="https://www.eventbrite.com/static/widgets/eb_widgets.js"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ${t},\n\t\t\t\t\tiframeContainerId: '${n}',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id="${n}"></div>\n\t\t`;return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.SandBox,{html:r}),(0,o.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}render(){const{attributes:e}=this.props,{url:t,style:n}=e,{editingUrl:r,isResolvingUrl:a}=this.state;return a?this.renderLoading():r||!t||this.cannotEmbed()?this.renderEditEmbed():(0,o.createElement)(o.Fragment,null,this.renderInspectorControls(),(0,o.createElement)(l.BlockControls,null,(0,o.createElement)(b.J,{setEditingUrl:this.setEditingUrl})),"modal"===n?(0,o.createElement)(l.InnerBlocks,{template:[[c.Ss.name,c.Ss.attributes]],templateLock:"all"}):this.renderInlinePreview())}}t.Z=(0,s.withNotices)(k)},45166:function(e,t,n){"use strict";n.d(t,{Ss:function(){return d},Wh:function(){return m},Q7:function(){return f},u2:function(){return g},qv:function(){return k},Xd:function(){return v}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(28559),l=n(48631),c=n(62337),u=n(74318),p=n(57535);const __=a.__,_x=a._x,d={name:"jetpack/button",attributes:{element:"a",text:_x("Register","verb: e.g. register for an event.","jetpack"),uniqueId:"eventbrite-widget-id"}},m=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,h=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,f="https://www.eventbrite.com/e/test-event-tickets-123456789",g="eventbrite",b=__("Eventbrite Checkout","jetpack"),k=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,{id:"eventbrite-icon"},(0,r.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),v={title:b,description:__("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:{src:k,foreground:(0,p.m)()},category:"embed",keywords:[_x("events","block search term","jetpack"),_x("tickets","block search term","jetpack")],supports:{html:!1,align:!0},attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&(m.test(e.textContent)||h.test(e.textContent)),transform:e=>(0,i.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}]},example:{attributes:{url:f,eventId:123456789,style:"modal"},innerBlocks:[d]},deprecated:l.Z}},74318:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{eventId:n,style:o,url:i}=t;if(n)return"modal"===o?(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null)):i&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:i},i)}},62194:function(e,t,n){"use strict";n.d(t,{N3:function(){return o},Ve:function(){return i},qq:function(){return s}});var r=n(69307),a=n(4981);function o(e,t){const n=(0,r.createElement)("a",{href:e},e);t((0,a.createBlock)("core/paragraph",{content:(0,r.renderToString)(n)}))}function i(e){if(!e)return null;const t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e&&"string"==typeof e?e.trim():null}},72966:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=(0,r.forwardRef)((function(e,t){let{onSubmit:n,onChange:a,value:i=""}=e;return(0,r.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:n},(0,r.createElement)("input",{type:"text",className:"wp-block-jetpack-gif_input components-placeholder__input",placeholder:__("Enter search terms, e.g. cat…","jetpack"),value:i,onChange:a,ref:t,"aria-labelledby":"wp-block-jetpack-gif_search-button"}),(0,r.createElement)(o.Button,{id:"wp-block-jetpack-gif_search-button",isSecondary:!0,type:"submit"},__("Search","jetpack")))}))},32882:function(e,t,n){"use strict";n.d(t,{U:function(){return r}});const r="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW"},68055:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(52175);function i(){return(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(a.PanelBody,{className:"components-panel__body-gif-branding"},(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},(0,r.createElement)(a.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),(0,r.createElement)(a.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"}))))}},61796:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31072),u=n(80917),p=n(72966),d=n(68055),m=n(21835);const __=i.__;t.Z=function(e){let{attributes:t,setAttributes:n,className:a,isSelected:i}=e;const{align:h,caption:f,giphyUrl:g,searchText:b,paddingTop:k}=t,v=o()(a,`align${h}`),[y,E]=(0,r.useState)(!1),w=(0,r.createRef)(),{isFetching:_,giphyData:C,fetchGiphyData:x}=(0,m.Z)(),j=()=>{w.current.focus(),E(!1)};(0,r.useEffect)((()=>{C&&C[0]&&n((0,u.ix)(C[0]))}),[C,n]);const S=e=>{e.preventDefault(),t.searchText&&!_&&x((0,u.Gr)(t.searchText))},A=e=>n({searchText:e.target.value});return(0,r.createElement)("div",{className:v},(0,r.createElement)(d.Z,null),g?(0,r.createElement)("figure",null,i&&(0,r.createElement)(p.Z,{onSubmit:S,onChange:A,value:b,ref:w}),i&&C&&C.length>1&&(0,r.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},C.map((e=>{const t={backgroundImage:`url(${e.images.downsized_still.url})`};return(0,r.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:e.id,onClick:t=>{t.preventDefault(),(e=>{n((0,u.ix)(e))})(e)},style:t})}))),(0,r.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:{paddingTop:k}},(0,r.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:j,onKeyDown:j,role:"button",tabIndex:"0"}),(0,r.createElement)("iframe",{src:g,title:b})),(!l.RichText.isEmpty(f)||i)&&!!g&&(0,r.createElement)(l.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:y,unstableOnFocus:()=>E(!1),onChange:e=>n({caption:e}),placeholder:__("Write caption…","jetpack"),tagName:"figcaption",value:f})):(0,r.createElement)(s.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:c.qv,label:c.TN,instructions:__("Search for a term or paste a Giphy URL","jetpack")},(0,r.createElement)(p.Z,{onSubmit:S,onChange:A,value:b,ref:w})))}},21835:function(e,t,n){"use strict";var r=n(69307);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[t,n]=(0,r.useState)(!1),[a,o]=(0,r.useState)(e),[i,s]=(0,r.useState)("");return(0,r.useEffect)((()=>{if(!i)return;(async()=>{n(!0);const e=await fetch(i).then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json(),n=void 0!==t.data.images?[t.data]:t.data;n[0].images&&o(n)}n(!1)})()}),[i]),{isFetching:t,giphyData:a,fetchGiphyData:s}}},31072:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},TN:function(){return c},qv:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(61796),s=n(57535);const __=a.__,_x=a._x,l="gif",c=__("GIF","jetpack"),u=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),p={title:c,icon:{src:u,foreground:(0,s.m)()},category:"embed",keywords:[_x("animated","block search term","jetpack"),_x("giphy","block search term","jetpack"),_x("image","block search term","jetpack")],description:__("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:i.Z,save:()=>null,example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}}},80917:function(e,t,n){"use strict";n.d(t,{Gr:function(){return s},ix:function(){return u}});var r=n(32882);const a=e=>`https://api.giphy.com/v1/gifs/search?q=${encodeURIComponent(e)}&api_key=${encodeURIComponent(r.U)}&limit=10`,o=e=>`https://api.giphy.com/v1/gifs/${encodeURIComponent(e)}?api_key=${encodeURIComponent(r.U)}`,i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;const n=e.split(t);return n[n.length-1]},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=null;e=e.trim();const n=/^https?:\/\/(media\.|i\.)?giphy\.com\/(embed|gifs|media)?\/?([-\w]*)(\/giphy)?(\.gif)?$/,r=e.match(n);return r&&r[3]&&(t=i(r[3],"-")),t?o(t):a(e)},l=e=>`${Math.floor(e.images.original.height/e.images.original.width*100)}%`,c=e=>e?.embed_url,u=e=>({giphyUrl:c(e),paddingTop:l(e)})},76280:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__,_x=o._x;t.Z=e=>{const{className:t,embedValue:n,onChange:o,onSubmit:i}=e;return(0,r.createElement)(a.PanelBody,{title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:i,className:t},(0,r.createElement)("textarea",{type:"text",value:n,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:o}),(0,r.createElement)(a.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack"))))}},53997:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(52175),l=n(90162),c=n(4981),u=n(76280),p=n(54286),d=n(3030),m=n(58014);const __=a.__,_x=a._x;t.Z=(0,i.compose)(o.withNotices,(0,l.withViewportMatch)({isMobile:"< small"}))((function(e){const{attributes:{url:t,height:n},className:a,isMobile:i,isSelected:l,name:h,noticeOperations:f,noticeUI:g,setAttributes:b}=e,[k,v]=(0,r.useState)(t||""),[y,E]=(0,r.useState)(!1),[w,_]=(0,r.useState)(!1);(0,r.useEffect)((()=>{!l&&w&&_(!1)}),[l,w]);const C=()=>{_(!0)},x=e=>{e&&e.preventDefault();const t=(0,d.L7)(k.trim());if(!d.Wh.test(t.url))return f.removeAllNotices(),void f.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or Embed Code. Please note, you need to use the 'Public URL' or 'Embed Code', the 'Shareable Link' will not work.","jetpack"));b(t),E(!1),f.removeAllNotices()},j=(0,c.getBlockDefaultClassName)(h),S=`<iframe src="${t}" style="border:0" scrolling="no" frameborder="0" height="${i?"300":n}"></iframe>`,A=(0,r.createElement)(o.ExternalLink,{href:"https://en.support.wordpress.com/google-calendar/"},__("Enable Permissions for the calendar you want to share","jetpack")),N=(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Z,{className:`${j}-embed-form-sidebar`,embedValue:k,onChange:e=>v(e.target.value),onSubmit:x}));if(y||!t){const e=(0,m.Wp)()||(0,m.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/google-calendar/":"https://jetpack.com/support/jetpack-blocks/google-calendar/";return(0,r.createElement)("div",{className:a},N,(0,r.createElement)(o.Placeholder,{className:a,label:__("Google Calendar","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:(0,r.createElement)("ol",{className:`${j}-placeholder-instructions`},(0,r.createElement)("li",null,A),(0,r.createElement)("li",null,__("Paste the embed code you copied from your Google Calendar below","jetpack"))),notices:g},(T=`${j}-embed-form-editor`,(0,r.createElement)("form",{onSubmit:x,className:T},(0,r.createElement)("textarea",{type:"text",value:k,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:e=>v(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)("div",{className:`${j}-placeholder-links`},(0,r.createElement)(o.ExternalLink,{href:e},__("Learn more","jetpack")))))}var T;return(0,r.createElement)("div",{className:a},N,(0,r.createElement)("div",null,(0,r.createElement)(o.SandBox,{html:S,onFocus:C}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:C})))}))},54286:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"23",viewBox:"0 0 24 23",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19.5,23h-15c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h15c2.2,0,4,1.8,4,4v15C23.5,21.2,21.7,23,19.5,23z M4.5,2 c-1.1,0-2,0.9-2,2v15c0,1.1,0.9,2,2,2h15c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2H4.5z M6.9,3.9L6.9,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0C6.5,5.9,6.1,5.5,6.1,5V4.7C6.1,4.3,6.5,3.9,6.9,3.9z M17,3.9L17,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0c-0.5,0-0.9-0.4-0.9-0.9V4.7C16.2,4.3,16.5,3.9,17,3.9z M8.8,17.6c1.8,0,3.2-1,3.2-2.4 c0-1.1-0.7-1.8-1.8-1.9v-0.1c0.9-0.2,1.5-0.9,1.5-1.8c0-1.3-1.2-2.2-2.9-2.2c-1.8,0-2.9,1-3,2.5h1.6c0-0.7,0.6-1.1,1.4-1.1 c0.8,0,1.3,0.4,1.3,1.1c0,0.7-0.5,1.1-1.3,1.1h-1v1.3h1c0.9,0,1.5,0.4,1.5,1.1c0,0.7-0.6,1.2-1.4,1.2c-0.9,0-1.4-0.4-1.5-1.1H5.7 C5.8,16.6,7,17.6,8.8,17.6z M17.6,17.4V9.3h-1.7l-2.1,1.4v1.6l2-1.4h0.1v6.4H17.6z"}))},13984:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(4981),i=n(53997),s=n(3030),l=n(54286),c=n(57535);const __=a.__,_x=a._x,u="google-calendar",p={title:__("Google Calendar","jetpack"),description:__("Embed a Google Calendar","jetpack"),keywords:[_x("events","block search term","jetpack"),_x("dates","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack")],icon:{src:l.Z,foreground:(0,c.m)()},category:"embed",supports:{align:!0,alignWide:!0,html:!1},attributes:{url:{type:"string"},height:{type:"integer",default:600}},edit:i.Z,save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)},transforms:{from:[{type:"shortcode",tag:"googleapps",isMatch:function(e){return"calendar"===e.named.domain},attributes:{url:{type:"string",shortcode:e=>{let{named:{domain:t,dir:n,query:r}}=e;return`https://${t}.google.com/${n}?${r}`}}}},{type:"raw",isMatch:e=>"P"===e.nodeName&&s.Wh.test(e.textContent),transform:e=>(0,o.createBlock)("jetpack/google-calendar",{url:e.textContent.trim()})},{type:"raw",isMatch:e=>"FIGURE"===e.nodeName&&s.E6.test(e.innerHTML),transform:e=>{const{url:t,height:n}=(0,s.jj)(e.innerHTML.trim());return(0,o.createBlock)("jetpack/google-calendar",{url:t,height:n})}}]},example:{attributes:{url:"https://calendar.google.com/calendar/embed?src=jb4bu80jirp0u11a6niie21pp4%40group.calendar.google.com&ctz=America/New_York"}}}},3030:function(e,t,n){"use strict";n.d(t,{Wh:function(){return a},E6:function(){return o},jj:function(){return c},L7:function(){return u}});const r="s*https?://calendar.google.com/calendar",a=new RegExp(`^${r}`,"i"),o=new RegExp(`<iframe((?:\\s+\\w+=(['"]).*?\\2)*)\\s+src=(["'])(${r}.*?)\\3((?:\\s+\\w+=(['"]).*?\\6)*)`,"i"),i=new RegExp(`${r}\\?cid=([-A-Za-z0-9+/]+={0,3})`,"i"),s=/\s+(\w+)=(["'])(.*?)\2/gi;function l(e){const t=i.exec(e);if(t)return"https://calendar.google.com/calendar/embed?src="+encodeURIComponent(atob(t[1]))}function c(e){const t=o.exec(e);if(!t)return;const n={};return t.forEach(((e,t)=>{if(0===t)return;if(a.test(e))return void(n.url=e);let r;for(;null!==(r=s.exec(e));)n[r[1]]=r[3]})),{url:n.url,width:n.width,height:n.height}}function u(e){return o.test(e)?c(e):i.test(e)?{url:l(e)}:{url:e}}},18776:function(e,t){"use strict";t.Z={accessToken:{type:"string"},instagramUser:{type:"string"},columns:{type:"number",default:3,min:1,max:6},count:{type:"number",default:9,min:1,max:30},spacing:{type:"number",default:10,min:0,max:50},isStackedOnMobile:{type:"boolean",default:!0}}},14937:function(e,t,n){"use strict";n.d(t,{u:function(){return r},D:function(){return a}});const r=30,a="jetpack-new-instagram-connection"},3802:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(14937);const __=o.__,_n=o._n;function s(e){let{accountImageTotal:t,attributes:n,currentUserConnected:s,disconnectFromService:l,shouldRenderSidebarNotice:c,setAttributes:u}=e;const{accessToken:p,columns:d,count:m,instagramUser:h,isStackedOnMobile:f,spacing:g}=n;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.PanelBody,{title:__("Account Settings","jetpack")},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("span",null,__("Account","jetpack")),(0,r.createElement)(a.ExternalLink,{href:`https://www.instagram.com/${h}/`},"@",h)),s&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isDestructive:!0,isLink:!0,onClick:()=>l(p)},__("Disconnect your account","jetpack")))),(0,r.createElement)(a.PanelBody,{title:__("Display Settings","jetpack")},c?(()=>{const e=t?(0,o.sprintf)(
+/* translators: placeholder is a number. */
+_n("There is currently only %s post in your Instagram account.","There are currently only %s posts in your Instagram account.",t,"jetpack"),t):__("There are currently no posts in your Instagram account.","jetpack");return(0,r.createElement)("div",{className:"wp-block-jetpack-instagram-gallery__count-notice"},(0,r.createElement)(a.Notice,{isDismissible:!1,status:"info"},e))})():null,(0,r.createElement)(a.RangeControl,{label:__("Number of Posts","jetpack"),value:m,onChange:e=>u({count:e}),min:1,max:i.u}),(0,r.createElement)(a.RangeControl,{label:__("Number of Columns","jetpack"),value:d,onChange:e=>u({columns:e}),min:1,max:6}),(0,r.createElement)(a.RangeControl,{label:__("Image Spacing (px)","jetpack"),value:g,onChange:e=>u({spacing:e}),min:0,max:50}),(0,r.createElement)(a.ToggleControl,{label:__("Stack on mobile","jetpack"),checked:f,onChange:()=>u({isStackedOnMobile:!f})})))}},66137:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(18776),p=n(14937),d=n(14087),m=n(10273),h=n(2992),f=n(44420),g=n(76853),b=n(63729),k=n(3802);const __=c.__;t.Z=(0,l.withNotices)((e=>{const{attributes:t,className:n,isSelected:a,noticeOperations:c,noticeUI:v,setAttributes:y}=e,{accessToken:E,align:w,columns:_,count:C,isStackedOnMobile:x,spacing:j}=t;(0,r.useEffect)((()=>{const e=(0,d.S)(u.Z,t);(0,i.isEqual)(e,t)||y(e)}),[t,y]);const[S,A]=(0,r.useState)(E),{isRequestingWpcomConnectUrl:N,wpcomConnectUrl:T}=(0,h.Z)(),{images:P,isLoadingGallery:M,setImages:I}=(0,f.Z)({accessToken:E,noticeOperations:c,setAttributes:y,setSelectedAccount:A}),{connectToService:R,disconnectFromService:L,isConnecting:B,isRequestingUserConnections:F,userConnections:Z}=(0,m.Z)({accessToken:E,noticeOperations:c,selectedAccount:S,setAttributes:y,setImages:I,setSelectedAccount:A}),D=(0,b.Z)(),O=C>P.length?P.length:C,z=!M&&(!E||(0,i.isEmpty)(P)),$=!z,U=E&&M&&(0,i.isEmpty)(P),V=!z&&!U,q=o()(n,{[`align${w}`]:w}),G=o()("wp-block-jetpack-instagram-gallery__grid",`wp-block-jetpack-instagram-gallery__grid-columns-${_}`,{"is-stacked-on-mobile":x}),H={gridGap:j,"--latest-instagram-posts-spacing":j?`${j}px`:void 0},W={padding:j},K=()=>{S&&p.D!==S?y({accessToken:S,instagramUser:(0,i.find)(Z,{token:S}).username}):R()};return(0,r.createElement)("div",{className:q},z&&(0,r.createElement)(l.Placeholder,{icon:"instagram",instructions:D?F||Z.length?void 0:__("Connect to Instagram to start sharing your images.","jetpack"):__("First, you'll need to connect your WordPress.com account.","jetpack"),label:__("Latest Instagram Posts","jetpack"),notices:v},D?(()=>{const e=Z.length>0,t=[...(0,i.map)(Z,(e=>({label:`@${e.username}`,value:e.token}))),{label:__("Add a new account","jetpack"),value:p.D}],n=B||F||e&&!S;return(0,r.createElement)("div",null,e&&(0,r.createElement)(l.RadioControl,{label:__("Select your Instagram account:","jetpack"),onChange:e=>A(e),options:t,selected:S}),p.D===S&&(0,r.createElement)("p",{className:"wp-block-jetpack-instagram-gallery__new-account-instructions"},__("If you are currently logged in to Instagram on this device, you might need to log out of it first.","jetpack")),(0,r.createElement)(l.Button,{disabled:n,isPrimary:!0,onClick:K},B&&__("Connecting…","jetpack"),F&&__("Loading your connections…","jetpack"),!B&&!F&&__("Connect to Instagram","jetpack")))})():(0,r.createElement)(l.Button,{disabled:N||!T,href:T,isSecondary:!0},__("Connect to WordPress.com","jetpack"))),U&&(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(l.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack"))),V&&(0,r.createElement)("div",{className:G,style:H},(0,i.times)(a?C:O,(e=>(0,r.createElement)("span",{className:o()("wp-block-jetpack-instagram-gallery__grid-post"),key:e,style:W},(e=>{if(P[e]){const n=P[e];return(0,r.createElement)(g.Z,{alt:n.title||n.url,src:n.url,attributes:t,spacing:j})}return(0,r.createElement)("img",{alt:__("Latest Instagram Posts placeholder","jetpack"),src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNMyc2tBwAEOgG/c94mJwAAAABJRU5ErkJggg=="})})(e))))),$&&(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(k.Z,{accountImageTotal:P.length,attributes:t,currentUserConnected:D,disconnectFromService:L,shouldRenderSidebarNotice:$&&!U&&P.length<C,setAttributes:y})))}))},76853:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{src:t,alt:n,spacing:a}=e;const[i,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)("auto"),u=(0,r.useRef)(),p=()=>{s(!0),c("auto")};(0,r.useEffect)((()=>{const e=t;if(e){const t=new window.Image;t.src=e,t.onload=p}u.current&&c(u.current.parentNode.getBoundingClientRect().width)}),[t]);const d=-1*a,m=o()("wp-block-jetpack-instagram-gallery__placeholder",{"is-loaded":i}),h=i?{margin:d}:{margin:d,height:l},f=o()({"is-loaded":i});return(0,r.createElement)("span",{style:h,className:m},(0,r.createElement)("img",{alt:n,className:f,ref:u,src:t}))}},77007:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(4981),i=n(18776),s=n(66137),l=n(57535);const __=a.__,_x=a._x,c="instagram-gallery",u={title:__("Latest Instagram Posts","jetpack"),description:__("Display an automatically updating list of the latest posts from your Instagram feed.","jetpack"),icon:{src:"instagram",foreground:(0,l.m)()},category:"embed",keywords:[_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack")],supports:{align:!0,html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"wpcom_instagram_widget"===t},transform:e=>{let{instance:t}=e;return(0,o.createBlock)("jetpack/instagram-gallery",{columns:t.raw.columns,count:t.raw.count,accessToken:t.raw.token_id})}}]},attributes:i.Z,edit:s.Z,save:e=>{let{attributes:{instagramUser:t}}=e;return t&&(0,r.createElement)("div",null,(0,r.createElement)("a",{href:`https://www.instagram.com/${t}/`,rel:"noopener noreferrer",target:"_blank"},`https://www.instagram.com/${t}/`))}}},10273:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(59177),a=n(92819),o=n(86989),i=n.n(o),s=n(69307),l=n(65736),c=n(14937),u=n(63729);const __=l.__;function p(e){let{accessToken:t,noticeOperations:n,selectedAccount:o,setAttributes:l,setImages:p,setSelectedAccount:d}=e;const[m,h]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),[b,k]=(0,s.useState)([]),v=(0,u.Z)();(0,s.useEffect)((()=>{!t&&v&&(g(!0),i()({path:"/wpcom/v2/instagram-gallery/connections"}).then((e=>{g(!1),k(e)})).catch((()=>{g(!1),k([])})))}),[t,v]),(0,s.useEffect)((()=>{c.D===o||(0,a.find)(b,{token:o})||d(void 0)}),[o,d,b]);return{connectToService:()=>{n.removeAllNotices(),h(!0),i()({path:"/wpcom/v2/instagram-gallery/connect-url"}).then((e=>{const t=new r.Z;t.open(e,"connect-to-instagram-popup","toolbar=0,location=0,menubar=0,"+t.getScreenCenterSpecs(700,700)),t.on("message",(e=>{let{keyring_id:t}=e;if(h(!1),t){const e=t.toString();l({accessToken:e}),d(e)}})),t.on("close",(e=>{"connect-to-instagram-popup"===e&&h(!1)}))})).catch((()=>{n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),h(!1)}))},disconnectFromService:()=>{n.removeAllNotices(),l({accessToken:void 0,instagramUser:void 0}),p([])},isConnecting:m,isRequestingUserConnections:f,userConnections:b}}},2992:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(86989),a=n.n(r),o=n(9818),i=n(69307),s=n(96483),l=n(63729);function c(){const{isAutoDraft:e}=(0,o.useSelect)((e=>{const{status:t}=e("core/editor").getCurrentPost();return{isAutoDraft:"auto-draft"===t}})),{savePost:t}=(0,o.useDispatch)("core/editor"),[n,r]=(0,i.useState)(),[c,u]=(0,i.useState)(!1),p=(0,l.Z)();return(0,i.useEffect)((()=>{p||n||c||(e?t():(u(!0),a()({path:(0,s.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((e=>{r(e),u(!1)}))))}),[p,e,c,t,n]),{isRequestingWpcomConnectUrl:c,wpcomConnectUrl:n}}},44420:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(14937);const __=s.__;function u(e){let{accessToken:t,noticeOperations:n,setAttributes:a,setSelectedAccount:s}=e;const[u,p]=(0,i.useState)([]),[d,m]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{t&&(n.removeAllNotices(),m(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/instagram-gallery/gallery",{access_token:t,count:c.u})}).then((e=>{let{external_name:t,images:o}=e;if(m(!1),!o||!(0,r.isArray)(o))return n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),p([]),a({accessToken:void 0,instagramUser:void 0}),void s(void 0);(0,r.isEmpty)(o)&&n.createErrorNotice(__("No images were found in your Instagram account.","jetpack")),a({instagramUser:t}),p(o)})).catch((()=>{m(!1),p([]),a({accessToken:void 0,instagramUser:void 0}),s(void 0)})))}),[t,a,s]),{images:u,isLoadingGallery:d,setImages:p}}},25887:function(e,t,n){"use strict";n.d(t,{N3:function(){return r},sf:function(){return a},Cw:function(){return o}});const r="processing",a="success",o="error"},50013:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(18417),s=n(25887);const __=a.__;function l(e){let{auditionNotification:t,clearAudition:n,setAttributes:a,emailPlaceholder:l,processingLabel:c,successLabel:u,errorLabel:p,interests:d,signupFieldTag:m,signupFieldValue:h,connectURL:f}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Text Elements","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Email Placeholder","jetpack"),value:l,onChange:e=>{a({emailPlaceholder:e}),n()}})),(0,r.createElement)(o.PanelBody,{title:__("Notifications","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Processing text","jetpack"),value:c,onChange:e=>{a({processingLabel:e}),t(s.N3)}}),(0,r.createElement)(o.TextControl,{label:__("Success text","jetpack"),value:u,onChange:e=>{a({successLabel:e}),t(s.sf)}}),(0,r.createElement)(o.TextControl,{label:__("Error text","jetpack"),value:p,onChange:e=>{a({errorLabel:e}),t(s.Cw)}})),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Groups","jetpack")},(0,r.createElement)(i.Z,{interests:d,onChange:(e,t)=>{const n=[...new Set([...d,e])].filter((n=>!(n===e&&!t)&&n));a({interests:n})}}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},__("Learn about groups","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Signup Location Tracking","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Signup Field Tag","jetpack"),placeholder:__("SIGNUP","jetpack"),value:m,onChange:e=>a({signupFieldTag:e})}),(0,r.createElement)(o.TextControl,{label:__("Signup Field Value","jetpack"),placeholder:__("website","jetpack"),value:h,onChange:e=>a({signupFieldValue:e})}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},__("Learn about signup location tracking","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Connection","jetpack")},(0,r.createElement)(o.ExternalLink,{href:f},__("Manage Connection","jetpack"))))}},58791:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=["submitButtonText","backgroundButtonColor","textButtonColor","submitButtonClasses","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},submitButtonText:{type:"string",default:__("Join my email list","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},submitButtonClasses:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},migrate:e=>{const t=(0,r.omit)(e,i),n={text:(o=e).submitButtonText||__("Join my email list","jetpack"),textColor:o.textButtonColor,customTextColor:o.customTextButtonColor,backgroundColor:o.backgroundButtonColor,customBackgroundColor:o.customBackgroundButtonColor};var o;return[t,[(0,a.createBlock)("jetpack/button",{element:"button",uniqueId:"mailchimp-widget-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,i),Boolean),save:()=>null}},87539:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(89105),c=n.n(l),u=n(65736),p=n(96483),d=n(55609),m=n(52175),h=n(19916),f=n(50013),g=n(63729),b=n(25887);const __=u.__;class k extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e=(0,g.Z)();if(e){const t={path:"/wpcom/v2/mailchimp",method:"GET"};s()(t).then((t=>{const n=t.connect_url,r="connected"===t.code?1:2;this.setState({currentUserConnected:e,connected:r,connectURL:n})}),(t=>{this.setState({currentUserConnected:e,connected:2,connectURL:null}),this.onError(t.message)}))}else s()({path:(0,p.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((t=>{const n=t;this.setState({currentUserConnected:e,connected:2,connectURL:n})}))})),a()(this,"auditionNotification",(e=>{this.setState({audition:e}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.clearAudition,3e3)})),a()(this,"clearAudition",(()=>{this.setState({audition:null})})),a()(this,"labelForAuditionType",(e=>{const{attributes:t}=this.props,{processingLabel:n,successLabel:r,errorLabel:a}=t;return e===b.N3?n:e===b.sf?r:e===b.Cw?a:null})),a()(this,"roleForAuditionType",(e=>e===b.Cw?"alert":"status")),a()(this,"render",(()=>{const{attributes:e,className:t,notices:n,noticeUI:r,setAttributes:a}=this.props,{audition:i,connected:s,connectURL:l,currentUserConnected:u}=this.state,{emailPlaceholder:p,consentText:g,interests:b,processingLabel:k,successLabel:v,errorLabel:y,preview:E,signupFieldTag:w,signupFieldValue:_}=e,C="wp-block-jetpack-mailchimp",x=(0,o.createElement)(d.Placeholder,{icon:h.qv,notices:n},(0,o.createElement)(d.Spinner,null)),j=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("You need to connect your Mailchimp account and choose an audience in order to start collecting Email subscribers.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l,target:"_blank"},__("Set up Mailchimp form","jetpack")),(0,o.createElement)("div",{className:`${C}-recheck`},(0,o.createElement)(d.Button,{isLink:!0,onClick:this.apiCall},__("Re-check Connection","jetpack")))),S=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("First, you'll need to connect your WordPress.com account.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l},__("Connect to WordPress.com","jetpack"))),A=(0,o.createElement)(m.InspectorControls,null,(0,o.createElement)(f.Q,{auditionNotification:this.auditionNotification,clearAudition:this.clearAudition,emailPlaceholder:p,processingLabel:k,successLabel:v,errorLabel:y,interests:b,setAttributes:this.props.setAttributes,signupFieldTag:w,signupFieldValue:_,connectURL:l})),N=c()(t,{[`${C}_notication-audition`]:i}),T=(0,o.createElement)("div",{className:N},(0,o.createElement)(d.TextControl,{"aria-label":p,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:()=>!1,placeholder:p,title:__("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),(0,o.createElement)(m.InnerBlocks,{template:[[h.Ss.name,h.Ss.attributes]],templateLock:"all"}),(0,o.createElement)(m.RichText,{tagName:"p",placeholder:__("Write consent text","jetpack"),value:g,onChange:e=>a({consentText:e}),inlineToolbar:!0}),i&&(0,o.createElement)("div",{className:`${C}_notification ${C}_${i}`,role:this.roleForAuditionType(i)},this.labelForAuditionType(i))),P=T;return(0,o.createElement)(o.Fragment,null,r,E&&P,!E&&0===s&&x,!E&&2===s&&u&&j,!E&&2===s&&!u&&S,!E&&1===s&&A,!E&&1===s&&T)})),this.state={audition:null,connected:0,connectURL:null,currentUserConnected:null},this.timeout=null}}t.Z=(0,d.withNotices)(k)},19916:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Ss:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(58791),l=n(87539),c=n(57535);const __=a.__,_x=a._x,u="mailchimp",p=(0,r.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(i.G,{transform:"translate(-45.478101,-100.73059)"},(0,r.createElement)(i.G,{transform:"matrix(0.26458333,0,0,0.26458333,15.6741,59.72)"},(0,r.createElement)(i.Path,{d:"m 176.433,197.529 c 0.657,-0.078 1.286,-0.082 1.865,0 0.335,-0.768 0.392,-2.091 0.091,-3.532 -0.447,-2.142 -1.053,-3.438 -2.305,-3.236 -1.252,0.202 -1.298,1.754 -0.85,3.895 0.252,1.205 0.7,2.235 1.199,2.873"}),(0,r.createElement)(i.Path,{d:"m 165.688,199.224 c 0.895,0.393 1.446,0.654 1.661,0.426 0.139,-0.142 0.097,-0.413 -0.117,-0.762 -0.442,-0.721 -1.351,-1.453 -2.316,-1.864 -1.972,-0.849 -4.325,-0.567 -6.14,0.737 -0.599,0.439 -1.167,1.047 -1.086,1.416 0.026,0.119 0.116,0.209 0.326,0.239 0.494,0.056 2.22,-0.816 4.209,-0.938 1.403,-0.086 2.566,0.353 3.462,0.746"}),(0,r.createElement)(i.Path,{d:"m 163.887,200.252 c -1.167,0.184 -1.81,0.569 -2.223,0.926 -0.352,0.308 -0.57,0.649 -0.568,0.888 0.001,0.114 0.05,0.18 0.089,0.213 0.053,0.047 0.116,0.073 0.192,0.073 0.263,0 0.854,-0.237 0.854,-0.237 1.623,-0.581 2.694,-0.51 3.755,-0.39 0.586,0.066 0.864,0.102 0.992,-0.099 0.038,-0.058 0.084,-0.183 -0.033,-0.373 -0.273,-0.443 -1.451,-1.192 -3.057,-1.001"}),(0,r.createElement)(i.Path,{d:"m 172.805,204.025 c 0.792,0.389 1.664,0.236 1.948,-0.341 0.284,-0.577 -0.128,-1.361 -0.92,-1.75 -0.792,-0.389 -1.664,-0.236 -1.948,0.341 -0.284,0.578 0.128,1.361 0.92,1.75"}),(0,r.createElement)(i.Path,{d:"m 177.896,199.576 c -0.643,-0.011 -1.177,0.695 -1.192,1.578 -0.015,0.883 0.495,1.606 1.138,1.617 0.643,0.011 1.177,-0.695 1.192,-1.578 0.015,-0.882 -0.495,-1.606 -1.138,-1.617"}),(0,r.createElement)(i.Path,{d:"m 134.683,215.485 c -0.16,-0.201 -0.423,-0.14 -0.678,-0.08 -0.178,0.042 -0.379,0.088 -0.6,0.085 -0.473,-0.009 -0.874,-0.211 -1.099,-0.557 -0.293,-0.45 -0.276,-1.121 0.047,-1.889 l 0.151,-0.344 c 0.516,-1.158 1.379,-3.095 0.41,-4.941 -0.73,-1.39 -1.92,-2.255 -3.351,-2.437 -1.374,-0.174 -2.788,0.335 -3.69,1.33 -1.423,1.57 -1.646,3.707 -1.371,4.462 0.101,0.276 0.259,0.353 0.373,0.369 0.242,0.032 0.6,-0.144 0.824,-0.747 l 0.064,-0.196 c 0.1,-0.319 0.286,-0.913 0.591,-1.389 0.368,-0.574 0.94,-0.969 1.612,-1.114 0.684,-0.147 1.384,-0.016 1.97,0.368 0.997,0.652 1.381,1.874 0.955,3.039 -0.22,0.603 -0.578,1.756 -0.499,2.703 0.16,1.917 1.339,2.687 2.398,2.769 1.03,0.039 1.75,-0.54 1.932,-0.962 0.107,-0.25 0.017,-0.402 -0.042,-0.467"}),(0,r.createElement)(i.Path,{d:"m 144.475,180.275 c 3.36,-3.882 7.495,-7.257 11.2,-9.152 0.128,-0.066 0.264,0.073 0.195,0.199 -0.294,0.533 -0.861,1.674 -1.04,2.539 -0.028,0.135 0.119,0.236 0.233,0.159 2.305,-1.571 6.314,-3.255 9.831,-3.471 0.151,-0.009 0.224,0.184 0.104,0.277 -0.535,0.41 -1.12,0.978 -1.547,1.552 -0.073,0.098 -0.004,0.238 0.118,0.239 2.469,0.018 5.95,0.882 8.219,2.155 0.153,0.086 0.044,0.383 -0.128,0.344 -3.433,-0.787 -9.052,-1.384 -14.89,0.04 -5.211,1.271 -9.189,3.234 -12.09,5.344 -0.147,0.107 -0.323,-0.087 -0.204,-0.224 z m 16.732,37.612 0.001,0.002 0.002,0.004 z m 13.854,1.635 c 0.1,-0.042 0.168,-0.155 0.157,-0.268 -0.014,-0.139 -0.138,-0.24 -0.277,-0.226 0,0 -7.169,1.061 -13.942,-1.418 0.738,-2.398 2.699,-1.532 5.664,-1.293 5.344,0.319 10.134,-0.462 13.674,-1.478 3.067,-0.88 7.096,-2.616 10.225,-5.086 1.055,2.318 1.428,4.87 1.428,4.87 0,0 0.817,-0.146 1.5,0.274 0.645,0.397 1.118,1.222 0.795,3.356 -0.658,3.986 -2.352,7.222 -5.2,10.199 -1.734,1.866 -3.838,3.488 -6.246,4.668 -1.279,0.672 -2.64,1.253 -4.079,1.722 -10.736,3.507 -21.726,-0.348 -25.268,-8.626 -0.283,-0.622 -0.522,-1.274 -0.71,-1.955 -1.509,-5.455 -0.228,-12 3.778,-16.12 v -0.002 c 0.247,-0.262 0.499,-0.571 0.499,-0.96 0,-0.325 -0.207,-0.668 -0.386,-0.912 -1.402,-2.033 -6.257,-5.497 -5.282,-12.201 0.7,-4.816 4.912,-8.208 8.839,-8.007 l 0.995,0.057 c 1.702,0.101 3.186,0.319 4.587,0.378 2.345,0.102 4.453,-0.239 6.951,-2.32 0.842,-0.702 1.518,-1.311 2.661,-1.504 0.12,-0.021 0.419,-0.128 1.016,-0.1 0.61,0.033 1.19,0.2 1.711,0.547 2.002,1.332 2.286,4.559 2.39,6.919 0.059,1.347 0.222,4.607 0.278,5.543 0.127,2.14 0.69,2.441 1.828,2.816 0.64,0.211 1.234,0.368 2.11,0.614 2.65,0.744 4.221,1.499 5.212,2.469 0.591,0.606 0.866,1.25 0.951,1.864 0.312,2.28 -1.77,5.096 -7.283,7.655 -6.026,2.797 -13.337,3.505 -18.388,2.942 l -1.77,-0.2 c -4.04,-0.544 -6.345,4.677 -3.92,8.255 1.563,2.306 5.82,3.806 10.079,3.807 9.765,0.001 17.271,-4.169 20.063,-7.77 l 0.223,-0.318 c 0.138,-0.207 0.024,-0.321 -0.147,-0.204 -2.281,1.561 -12.413,7.758 -23.251,5.893 0,0 -1.317,-0.217 -2.519,-0.684 -0.955,-0.372 -2.955,-1.292 -3.198,-3.343 8.746,2.705 14.253,0.148 14.253,0.148 z m -48.039,-20.785 c -3.042,0.591 -5.723,2.315 -7.362,4.697 -0.98,-0.817 -2.805,-2.399 -3.128,-3.016 -2.617,-4.97 2.856,-14.632 6.68,-20.089 9.45,-13.485 24.25,-23.692 31.101,-21.84 1.114,0.315 4.803,4.592 4.803,4.592 0,0 -6.849,3.8 -13.2,9.097 -8.558,6.589 -15.022,16.166 -18.895,26.559 z m 5.111,22.805 c -0.46,0.079 -0.93,0.11 -1.404,0.098 -4.577,-0.123 -9.52,-4.243 -10.011,-9.129 -0.543,-5.401 2.217,-9.557 7.103,-10.543 0.584,-0.118 1.29,-0.186 2.051,-0.146 2.738,0.15 6.772,2.252 7.693,8.216 0.816,5.282 -0.48,10.659 -5.432,11.503 z m 61.996,-9.564 c -0.039,-0.139 -0.295,-1.072 -0.646,-2.197 -0.351,-1.126 -0.714,-1.917 -0.714,-1.917 1.408,-2.107 1.433,-3.992 1.245,-5.059 -0.2,-1.323 -0.751,-2.45 -1.861,-3.616 -1.11,-1.165 -3.381,-2.359 -6.572,-3.255 l -1.674,-0.465 c -0.008,-0.069 -0.088,-3.947 -0.16,-5.612 -0.053,-1.204 -0.156,-3.083 -0.739,-4.933 -0.695,-2.505 -1.905,-4.697 -3.416,-6.099 4.17,-4.322 6.773,-9.084 6.766,-13.168 -0.012,-7.855 -9.659,-10.232 -21.548,-5.309 l -2.519,1.069 c -0.011,-0.011 -4.554,-4.468 -4.622,-4.528 -13.555,-11.823 -55.935,35.284 -42.386,46.725 l 2.961,2.509 c -0.768,1.99 -1.07,4.27 -0.823,6.721 0.316,3.149 1.94,6.167 4.573,8.499 2.499,2.214 5.785,3.616 8.973,3.613 5.273,12.151 17.321,19.605 31.447,20.025 15.153,0.45 27.873,-6.66 33.203,-19.432 0.349,-0.896 1.828,-4.935 1.828,-8.501 0,-3.583 -2.026,-5.068 -3.316,-5.068"})))),d={name:"jetpack/button",attributes:{element:"button",text:__("Join my Mailchimp audience","jetpack"),uniqueId:"mailchimp-widget-id"}},m={title:__("Mailchimp","jetpack"),icon:{src:p,foreground:(0,c.m)()},description:__("A form enabling readers to join a Mailchimp audience.","jetpack"),category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:l.Z,save:()=>(0,r.createElement)(o.InnerBlocks.Content,null),example:{attributes:{preview:!0},innerBlocks:[d]},deprecated:[s.Z]}},18417:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(55609);class c extends o.Component{constructor(){super(...arguments),a()(this,"state",{interest_categories:[]}),a()(this,"retrieveGroups",(()=>{s()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((e=>{const{interest_categories:t}=e;this.setState({interest_categories:t})}))})),a()(this,"render",(()=>{const{interest_categories:e}=this.state,{interests:t,onChange:n}=this.props;return(0,o.createElement)(o.Fragment,null,e&&(e||[]).map((e=>e.interests.map((e=>(0,o.createElement)(l.CheckboxControl,{label:e.name,value:e.id,checked:t.includes(e.id),onChange:t=>n(e.id,t),key:e.id}))))))}))}componentDidMount(){this.retrieveGroups()}}t.Z=c,c.defaultProps={interests:[],onChange:()=>null}},36710:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(1595);const __=a.__;class s extends r.Component{render(){const{onClose:e,onAddPoint:t,onError:n,apiKey:a}=this.props;return(0,r.createElement)(o.Button,{className:"component__add-point"},__("Add marker","jetpack"),(0,r.createElement)(o.Popover,{className:"component__add-point__popover",position:"bottom center"},(0,r.createElement)(o.Button,{className:"component__add-point__close",onClick:e},(0,r.createElement)(o.Dashicon,{icon:"no"})),(0,r.createElement)(i.Z,{onAddPoint:t,label:__("Add a location","jetpack"),apiKey:a,onError:n})))}}s.defaultProps={onAddPoint:()=>{},onClose:()=>{},onError:()=>{}},t.Z=s},79267:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(55609),c=n(81041),u=n(77714),p=n(73242),d=n(87929),m=n(45388);const __=i.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),a()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),a()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),a()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:n}=this.state,{index:r}=n.props,a=t.slice(0);(0,s.assign)(a[r],e),this.props.onSetPoints(a)})),a()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:n}=t.props,r=e.slice(0);r.splice(n,1),this.props.onSetPoints(r),this.setState({activeMarker:null})})),a()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,n=this.mapRef.current;if(e)n.style.height=e+"px";else{const e=n.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,r=Math.min(e*(3/4),t);n.style.height=r+"px"}t.resize(),this.setBoundsByMarkers()})),a()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),a()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:n,points:r,zoom:a}=this.props,{map:o,activeMarker:i,mapboxgl:s,zoomControl:l,boundsSetProgrammatically:c}=this.state;if(!o)return;if(r.length&&e?o.dragPan.disable():o.dragPan.enable(),!r.length)return;if(i)return;const u=new s.LngLatBounds;if(r.forEach((e=>{u.extend([e.coordinates.longitude,e.coordinates.latitude])})),t(u.getCenter()),r.length>1){o.fitBounds(u,{padding:{top:80,bottom:80,left:40,right:40}}),this.setState({boundsSetProgrammatically:!0});try{o.removeControl(l)}catch(e){}}else{if(o.setCenter(u.getCenter()),c){const e=12;o.setZoom(e),n(e)}else o.setZoom(parseInt(a,10));o.addControl(l),this.setState({boundsSetProgrammatically:!1})}})),a()(this,"scriptsLoaded",(()=>{const{mapCenter:e,points:t}=this.props;this.setState({loaded:!0}),t.length,this.initMap(e)})),a()(this,"googlePoint2Mapbox",(e=>e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0})),this.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},this.mapRef=(0,o.createRef)(),this.debouncedSizeMap=(0,s.debounce)(this.sizeMap,250)}render(){const{points:e,admin:t,children:n,markerColor:r}=this.props,{map:a,activeMarker:i,mapboxgl:p}=this.state,{onMarkerClick:d,deleteActiveMarker:m,updateActiveMarker:h}=this,f=(0,s.get)(i,"props.point")||{},{title:g,caption:b}=f,k=o.Children.map(n,(e=>{if("AddPoint"===(0,s.get)(e,"props.tagName"))return e})),v=a&&p&&e.map(((e,t)=>(0,o.createElement)(c.Z,{mapRef:this.mapRef,key:t,point:e,index:t,map:a,mapboxgl:p,markerColor:r,onClick:d}))),y=p&&(0,o.createElement)(u.Z,{activeMarker:i,map:a,mapboxgl:p,unsetActiveMarker:()=>this.setState({activeMarker:null})},i&&t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.TextControl,{label:__("Marker Title","jetpack"),value:g,onChange:e=>h({title:e})}),(0,o.createElement)(l.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:__("Marker Caption","jetpack"),value:b,rows:"2",tag:"textarea",onChange:e=>h({caption:e})}),(0,o.createElement)(l.Button,{onClick:m,className:"wp-block-jetpack-map__delete-btn"},(0,o.createElement)(l.Dashicon,{icon:"trash",size:"15"})," ",__("Delete Marker","jetpack"))),i&&!t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h3",null,g),(0,o.createElement)("p",null,b)));return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},v),y,k)}componentDidMount(){const{apiKey:e}=this.props;e&&this.loadMapLibraries()}componentWillUnmount(){this.debouncedSizeMap.cancel(),window.removeEventListener("resize",this.debouncedSizeMap)}componentDidUpdate(e){const{admin:t,apiKey:n,children:r,points:a,mapStyle:o,mapDetails:i,scrollToZoom:s,showFullscreenButton:l}=this.props,{map:c,fullscreenControl:u}=this.state;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),o===e.mapStyle&&i===e.mapDetails||c.setStyle(this.getMapStyle()),s!==e.scrollToZoom&&(s?c.scrollZoom.enable():c.scrollZoom.disable()),l!==e.showFullscreenButton&&(l?(c.addControl(u),t&&u._fullscreenButton&&(u._fullscreenButton.disabled=!0)):c.removeControl(u))}getMapStyle(){const{mapStyle:e,mapDetails:t}=this.props;return(0,p.h)(e,t)}getMapType(){const{mapStyle:e}=this.props;switch(e){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";default:return"ROADMAP"}}loadMapLibraries(){const{apiKey:e}=this.props,{currentWindow:t}=(0,d.bL)(this.mapRef.current),n={"mapbox-gl-js":()=>{(0,d.Dz)(t,"mapboxgl").then((t=>{t.accessToken=e,this.setState({mapboxgl:t},this.scriptsLoaded)}))}};(0,d.Pp)(m,n,this.mapRef.current)}initMap(e){const{mapboxgl:t}=this.state,{zoom:n,onMapLoaded:r,onError:a,scrollToZoom:o,showFullscreenButton:i,admin:s}=this.props;let l=null;try{l=new t.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(n,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(e){return void a("mapbox_error",e.message)}o||l.scrollZoom.disable();const c=new t.FullscreenControl;l.on("error",(e=>{a("mapbox_error",e.error.message)}));const u=new t.NavigationControl({showCompass:!1,showZoom:!0});l.on("zoomend",(()=>{this.props.onSetZoom(l.getZoom())})),l.on("moveend",(()=>{const{onSetMapCenter:e,points:t}=this.props;t.length<1&&e(l.getCenter())})),l.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:l,zoomControl:u,fullscreenControl:c},(()=>{this.debouncedSizeMap(),l.addControl(u),i&&(l.addControl(c),s&&c._fullscreenButton&&(c._fullscreenButton.disabled=!0)),this.mapRef.current.addEventListener("alignmentChanged",this.debouncedSizeMap),l.resize(),r(),this.setState({loaded:!0}),window.addEventListener("resize",this.debouncedSizeMap)}))}}h.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:()=>{},onSetMapCenter:()=>{},onMapLoaded:()=>{},onMarkerClick:()=>{},onError:()=>{},markerColor:"red",apiKey:null,mapCenter:{}},t.Z=h},20522:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(41626),l=n(17885);const __=a.__;t.Z=e=>{let{attributes:t,setAttributes:n,state:a,setState:c,context:u,mapRef:p,instanceId:d,minHeight:m,removeAPIKey:h,updateAPIKey:f,setPointVisibility:g}=e;const b=e=>{n({align:e}),setTimeout(p.current.sizeMap,0)};return"toolbar"===u?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockAlignmentToolbar,{value:t.align,onChange:b,controls:["center","wide","full"]}),(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:l.X.markerIcon,label:__("Add a marker","jetpack"),onClick:g}))):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.PanelColorSettings,{title:__("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:t.markerColor,onChange:e=>n({markerColor:e}),label:__("Marker Color","jetpack")}]}),(0,r.createElement)(o.PanelBody,{title:__("Map Settings","jetpack")},(0,r.createElement)(o.BaseControl,{label:__("Height in pixels","jetpack"),id:`block-jetpack-map-height-input-${d}`},(0,r.createElement)("input",{type:"number",id:`block-jetpack-map-height-input-${d}`,className:"wp-block-jetpack-map__height_input",onChange:e=>{n({mapHeight:e.target.value}),e.target!==document.activeElement&&setTimeout(p.current.sizeMap,0)},onBlur:e=>{const{mapHeight:r}=t;let a=parseInt(e.target.value,10);isNaN(a)?a=null:null==r?a=p.current.mapRef.current.offsetHeight:a<m&&(a=m),n({mapHeight:a}),setTimeout(p.current.sizeMap,0)},value:t.mapHeight||"",min:m,step:"10"})),(0,r.createElement)(o.RangeControl,{label:__("Zoom level","jetpack"),help:t.points.length>1&&__("The default zoom level cannot be changed when there are two or more markers on the map.","jetpack"),disabled:t.points.length>1,value:t.zoom,onChange:e=>{n({zoom:e}),setTimeout(p.current.updateZoom,0)},min:0,max:22}),(0,r.createElement)(o.ToggleControl,{label:__("Show street names","jetpack"),checked:t.mapDetails,onChange:e=>n({mapDetails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Scroll to zoom","jetpack"),help:__("Allow the map to capture scrolling, and zoom in or out.","jetpack"),checked:t.scrollToZoom,onChange:e=>n({scrollToZoom:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Show Fullscreen Button","jetpack"),help:__("Allow your visitors to display the map in fullscreen.","jetpack"),checked:t.showFullscreenButton,onChange:e=>n({showFullscreenButton:e})})),t.points.length?(0,r.createElement)(o.PanelBody,{title:__("Markers","jetpack"),initialOpen:!1},(0,r.createElement)(s.Z,{points:t.points,onChange:e=>{n({points:e})}})):null,(0,r.createElement)(o.PanelBody,{title:__("Mapbox Access Token","jetpack"),initialOpen:!1},(0,r.createElement)(o.TextControl,{help:"wpcom"===a.apiKeySource&&(0,r.createElement)(r.Fragment,null,__("You can optionally enter your own access token.","jetpack")," ",(0,r.createElement)(o.ExternalLink,{href:"https://account.mapbox.com/access-tokens/"},__("Find it on Mapbox","jetpack"))),label:__("Mapbox Access Token","jetpack"),value:a.apiKeyControl,onChange:e=>c({apiKeyControl:e})}),(0,r.createElement)(o.ButtonGroup,null,(0,r.createElement)(o.Button,{type:"button",onClick:f,disabled:!a.apiKeyControl||a.apiKeyControl===a.apiKey},__("Update Token","jetpack")),(0,r.createElement)(o.Button,{type:"button",onClick:h,disabled:"wpcom"===a.apiKeySource,isSecondary:!0},__("Remove Token","jetpack")))))}},86124:function(e,t,n){"use strict";var r=n(98372);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,showFullscreenButton:!0,className:t}},save:r.Z}},98372:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u}=e,p=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),d=t?`align${t}`:null;return(0,r.createElement)("div",{className:d,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null},o.length>0&&(0,r.createElement)("ul",null,p))}}t.Z=a},91576:function(e,t,n){"use strict";var r=n(51694);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,className:t}},save:r.Z}},51694:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u,showFullscreenButton:p}=e,d=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),m=t?`align${t}`:null;return(0,r.createElement)("div",{className:m,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null,"data-show-fullscreen-button":p||null},o.length>0&&(0,r.createElement)("ul",null,d))}}t.Z=a},70312:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(65736),c=n(55609),u=n(52175),p=n(36710),d=n(79267),m=n(20522),h=n(17885),f=n(96406),g=n(94333),b=n(9818),k=n(98085),v=n(14499);const __=l.__,y={top:!1,right:!1,bottom:!0,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1};class E extends o.Component{constructor(){super(...arguments),a()(this,"geoCodeAddress",((e,t)=>{t&&(0,v.P)(e,t).then((e=>{if(e.features?.length){const t=e.features[0],n=[{title:t.text,placeTitle:t.text,caption:t.place_name,id:t.id,coordinates:{latitude:t.center[1],longitude:t.center[0]}}];this.props.setAttributes({points:n})}else this.onError(null,__("Could not find the coordinates of the provided address. Displaying default location. Feel free to add the location manually.","jetpack"))})).catch((e=>this.onError(null,e.message)))})),a()(this,"componentDidUpdate",(e=>{const t=this.props.attributes?.address,n=e.attributes?.address;t&&n!==t&&this.geoCodeAddress(t,this.state.apiKey)})),a()(this,"addPoint",(e=>{const{attributes:t,setAttributes:n}=this.props,{points:r}=t,a=r.slice(0);let o=!1;r.map((t=>{t.id===e.id&&(o=!0)})),o||(a.push(e),n({points:a}),this.setState({addPointVisibility:!1}))})),a()(this,"setPointVisibility",(()=>{this.setState({addPointVisibility:!0})})),a()(this,"updateAPIKeyControl",(e=>{this.setState({apiKeyControl:e.target.value})})),a()(this,"updateAPIKey",(()=>{const{noticeOperations:e}=this.props,{apiKeyControl:t}=this.state;e.removeAllNotices(),t&&this.apiCall(t,"POST")})),a()(this,"removeAPIKey",(()=>{this.apiCall(null,"DELETE")})),a()(this,"onError",((e,t)=>{const{noticeOperations:n}=this.props;n.removeAllNotices(),n.createErrorNotice(t)})),a()(this,"onMapResize",((e,t,n,r)=>{const{onResizeStop:a,setAttributes:o}=this.props;a();o({mapHeight:parseInt(this.mapRef.current.mapRef.current.offsetHeight+r.height,10)}),setTimeout(this.mapRef.current.sizeMap,0)})),this.state={addPointVisibility:!1,apiState:0},this.mapRef=(0,o.createRef)()}apiCall(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";return new Promise(((n,r)=>{const{noticeOperations:a}=this.props,o="/wpcom/v2/service-api-keys/mapbox",i=e?{path:o,method:t,data:{service_api_key:e}}:{path:o,method:t};this.setState({apiRequestOutstanding:!0},(()=>{s()(i).then((e=>{let{service_api_key:t,service_api_key_source:r}=e;a.removeAllNotices();const o=t?2:1,i="wpcom"===r?"":t;this.setState({apiState:o,apiKey:t,apiKeyControl:i,apiKeySource:r,apiRequestOutstanding:!1}),n()}),(e=>{let{message:t}=e;this.onError(null,t),this.setState({apiState:1,apiRequestOutstanding:!1}),r()}))}))}))}componentDidMount(){this.apiCall().then((()=>{this.props.attributes?.address&&this.geoCodeAddress(this.props.attributes?.address,this.state.apiKey)}))}render(){const{className:e,setAttributes:t,attributes:n,noticeUI:r,notices:a,isSelected:i,instanceId:s,onResizeStart:l}=this.props,{mapDetails:g,points:b,zoom:v,mapCenter:E,markerColor:w,preview:_,mapHeight:C,showFullscreenButton:x}=n,{addPointVisibility:j,apiKey:S,apiKeyControl:A,apiState:N,apiRequestOutstanding:T}=this.state,P=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.BlockControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setPointVisibility:this.setPointVisibility,context:"toolbar",mapRef:this.mapRef})),(0,o.createElement)(u.InspectorControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setState:this.setState,mapRef:this.mapRef,instanceId:s,minHeight:400,removeAPIKey:this.removeAPIKey,updateAPIKey:this.updateAPIKey}))),M=(0,o.createElement)(c.Placeholder,{icon:h.X.icon},(0,o.createElement)(c.Spinner,null)),I=(0,o.createElement)(o.Fragment,null,__("To use the map block, you need an Access Token.","jetpack"),(0,o.createElement)("br",null),(0,o.createElement)(c.ExternalLink,{href:"https://www.mapbox.com"},__("Create an account or log in to Mapbox.","jetpack")),(0,o.createElement)("br",null),__("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),R=(0,o.createElement)(c.Placeholder,{icon:h.X.icon,label:__("Map","jetpack"),notices:a,instructions:I},(0,o.createElement)(o.Fragment,null,(0,o.createElement)("form",null,(0,o.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:T,placeholder:__("Paste Token Here","jetpack"),value:A,onChange:this.updateAPIKeyControl}),(0,o.createElement)(c.Button,{isSecondary:!0,disabled:T||!A||A.length<1,onClick:this.updateAPIKey},__("Set Token","jetpack"))))),L=i&&b.length<=1,B=(0,k.t)(h.X.styles,n.className),F=(0,o.createElement)(o.Fragment,null,P,(0,o.createElement)("div",{className:e},(0,o.createElement)(c.ResizableBox,{size:{height:C||"auto",width:"100%"},grid:[10,10],showHandle:i,minHeight:400,enable:y,onResizeStart:l,onResizeStop:this.onMapResize},(0,o.createElement)("div",{className:"wp-block-jetpack-map__map_wrapper"},(0,o.createElement)(d.Z,{ref:this.mapRef,scrollToZoom:L,showFullscreenButton:x,mapStyle:B||"default",mapDetails:g,mapHeight:C,points:b,zoom:v,mapCenter:E,markerColor:w,onSetZoom:e=>{t({zoom:e})},admin:!0,apiKey:S,onSetPoints:e=>t({points:e}),onSetMapCenter:e=>t({mapCenter:e}),onMapLoaded:()=>this.setState({addPointVisibility:!b.length}),onMarkerClick:()=>this.setState({addPointVisibility:!1}),onError:this.onError},i&&j&&(0,o.createElement)(p.Z,{onAddPoint:this.addPoint,onClose:()=>this.setState({addPointVisibility:!1}),apiKey:S,onError:this.onError,tagName:"AddPoint"})))))),Z=h.X.styles.find((e=>e.name===B)),D=(0,o.createElement)("div",null,(0,o.createElement)("img",{alt:__("Map Preview","jetpack"),src:Z?Z.preview:f}));return(0,o.createElement)(o.Fragment,null,r,_&&D,!_&&0===N&&M,!_&&1===N&&R,!_&&2===N&&F)}}t.Z=(0,g.compose)([c.withNotices,(0,b.withDispatch)((e=>{const{toggleSelection:t}=e("core/block-editor");return{onResizeStart:()=>t(!1),onResizeStop:()=>t(!0)}}))])(E)},14499:function(e,t,n){"use strict";function r(e,t){return fetch(`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(e)}.json?access_token=${encodeURIComponent(t)}`).then((e=>e.json()))}n.d(t,{P:function(){return r}})},92828:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(17885),a=n(70312),o=n(18156),i=n(86124),s=n(91576),l=n(57535);const{name:c}=r.X,u={title:r.X.title,icon:{src:r.X.icon,foreground:(0,l.m)()},category:r.X.category,keywords:r.X.keywords,description:r.X.description,attributes:r.X.attributes,supports:r.X.supports,styles:r.X.styles,getEditWrapperProps(e){const{align:t}=e;if(-1!==r.X.validAlignments.indexOf(t))return{"data-align":t}},edit:a.Z,save:o.Z,example:r.X.example,deprecated:[s.Z,i.Z]}},77714:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307);class i extends o.Component{constructor(){super(...arguments),a()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,o.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}i.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null},t.Z=i},1595:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(95319);const c=(0,i.__)("Add a marker…","jetpack");class u extends o.Component{constructor(){super(...arguments),a()(this,"getOptionCompletion",(e=>{const{value:t}=e,n={placeTitle:t.text,title:t.text,caption:t.place_name,id:t.id,coordinates:{longitude:t.geometry.coordinates[0],latitude:t.geometry.coordinates[1]}};return this.props.onAddPoint(n),t.text})),a()(this,"search",(e=>{const{apiKey:t,onError:n}=this.props,r="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(e)+".json?access_token="+t;return new Promise((function(e,t){const a=new XMLHttpRequest;a.open("GET",r),a.onload=function(){if(200===a.status){const t=JSON.parse(a.responseText);e(t.features)}else{const e=JSON.parse(a.responseText);n(e.statusText,e.responseJSON.message),t(new Error("Mapbox Places Error"))}},a.send()}))})),a()(this,"onReset",(()=>{this.textRef.current.value=null})),this.textRef=(0,o.createRef)(),this.containerRef=(0,o.createRef)(),this.state={isEmpty:!0},this.autocompleter={name:"placeSearch",options:this.search,isDebounced:!0,getOptionLabel:e=>(0,o.createElement)("span",null,e.place_name),getOptionKeywords:e=>[e.place_name],getOptionCompletion:this.getOptionCompletion}}componentDidMount(){setTimeout((()=>{this.containerRef.current.querySelector("input").focus()}),50)}render(){const{label:e}=this.props;return(0,o.createElement)("div",{ref:this.containerRef},(0,o.createElement)(s.BaseControl,{label:e,className:"components-location-search"},(0,o.createElement)(l.Z,{completer:this.autocompleter,onReset:this.onReset},(e=>{let{isExpanded:t,listBoxId:n,activeId:r,onChange:a,onKeyDown:i}=e;return(0,o.createElement)(s.TextControl,{placeholder:c,ref:this.textRef,onChange:a,"aria-expanded":t,"aria-owns":n,"aria-activedescendant":r,onKeyDown:i})}))))}}u.defaultProps={onError:()=>{}},t.Z=u},41626:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(55609);class s extends o.Component{constructor(){super(...arguments),a()(this,"onDeletePoint",(e=>{const t=parseInt(e.target.getAttribute("data-id")),{points:n,onChange:r}=this.props,a=n.slice(0);a.splice(t,1),r(a)})),this.state={selectedCell:null}}setMarkerField(e,t,n){const{points:r,onChange:a}=this.props,o=r.slice(0);o[n][e]=t,a(o)}render(){const{points:e}=this.props,t=e.map(((e,t)=>(0,o.createElement)(i.PanelBody,{title:e.placeTitle,key:e.id,initialOpen:!1},(0,o.createElement)(i.TextControl,{label:"Marker Title",value:e.title,onChange:e=>this.setMarkerField("title",e,t)}),(0,o.createElement)(i.TextareaControl,{label:"Marker Caption",value:e.caption,rows:"3",onChange:e=>this.setMarkerField("caption",e,t)}),(0,o.createElement)(i.Button,{"data-id":t,onClick:this.onDeletePoint,className:"component__locations__delete-btn"},(0,o.createElement)(i.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))));return(0,o.createElement)("div",{className:"component__locations"},(0,o.createElement)(i.Panel,{className:"component__locations__panel"},t))}}s.defaultProps={points:Object.freeze([]),onChange:()=>{}},t.Z=s},95319:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819),p=n(39630),d=n(94333);const __=l.__,_n=l._n;function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;const n=[];for(let r=0;r<e.length;r++){const a=e[r];let{keywords:o=[]}=a;if("string"==typeof a.label&&(o=[...o,a.label]),n.push(a),n.length===t)break}return n}class h extends o.Component{static getInitialState(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}constructor(){super(...arguments),a()(this,"select",(e=>{const{completer:t}=this.props;(t.getOptionCompletion||{})(e),this.reset()})),a()(this,"reset",(()=>{this.setState(this.constructor.getInitialState())})),a()(this,"onChange",(e=>{const{completer:t}=this.props,{options:n}=this.state;if(!e)return void this.reset();t&&(t.isDebounced?this.debouncedLoadOptions(t,e):this.loadOptions(t,e));const r=t?m(n):[];t&&this.setState({selectedIndex:0,filteredOptions:r,query:e})})),a()(this,"onKeyDown",(e=>{const{isOpen:t,selectedIndex:n,filteredOptions:r}=this.state;if(!t)return;let a;switch(e.keyCode){case p.UP:a=(0===n?r.length:n)-1,this.setState({selectedIndex:a});break;case p.DOWN:a=(n+1)%r.length,this.setState({selectedIndex:a});break;case p.ENTER:this.select(r[n]);break;case p.LEFT:case p.RIGHT:case p.ESCAPE:return void this.reset();default:return}e.preventDefault(),e.stopPropagation()})),this.debouncedLoadOptions=(0,u.debounce)(this.loadOptions,250),this.state=this.constructor.getInitialState()}componentWillUnmount(){this.debouncedLoadOptions.cancel()}handleFocusOutside(){this.reset()}loadOptions(e,t){const{options:n}=e,r=this.activePromise=Promise.resolve("function"==typeof n?n(t):n).then((t=>{if(r!==this.activePromise)return;const n=t.map(((t,n)=>({key:`${n}`,value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}))),a=m(n),o=a.length===this.state.filteredOptions.length?this.state.selectedIndex:0;this.setState({options:n,filteredOptions:a,selectedIndex:o,isOpen:a.length>0}),this.announce(a)}))}announce(e){const{debouncedSpeak:t}=this.props;t&&(e.length?t((0,l.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(__("No results.","jetpack"),"assertive"))}render(){const{onChange:e,onKeyDown:t}=this,{children:n,instanceId:r,completer:a}=this.props,{selectedIndex:i,filteredOptions:l}=this.state,{key:p=""}=l[i]||{},{className:d}=a,m=l.length>0,h=m?`components-autocomplete-listbox-${r}`:null,f=m?`components-autocomplete-item-${r}-${p}`:null;return(0,o.createElement)("div",{className:"components-autocomplete"},n({isExpanded:m,listBoxId:h,activeId:f,onChange:e,onKeyDown:t}),m&&(0,o.createElement)(c.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},(0,o.createElement)("div",{id:h,role:"listbox",className:"components-autocomplete__results"},(0,u.map)(l,((e,t)=>(0,o.createElement)(c.Button,{key:e.key,id:`components-autocomplete-item-${r}-${e.key}`,role:"option","aria-selected":t===i,disabled:e.isDisabled,className:s()("components-autocomplete__result",d,{"is-selected":t===i}),onClick:()=>this.select(e)},e.label))))))}}t.Z=(0,d.compose)([c.withSpokenMessages,d.withInstanceId,c.withFocusOutside])(h)},81041:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(87929);class s extends o.Component{constructor(){super(...arguments),a()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),a()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:n,markerColor:r,mapRef:a}=this.props,{handleClick:o}=this,s=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:l}=(0,i.bL)(a.current),c=this.marker?this.marker.getElement():l.createElement("div");this.marker?this.marker.setLngLat(s):(c.className="wp-block-jetpack-map-marker",this.marker=new n.Marker(c).setLngLat(s).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",o)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+r+'" mask="url(#c)"/></g></svg>'}render(){return null}}s.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}},t.Z=s},73242:function(e,t,n){"use strict";function r(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}n.d(t,{h:function(){return r}})},18156:function(e,t,n){"use strict";var r=n(69307),a=n(17885),o=n(98085);class i extends r.Component{render(){const{attributes:e}=this.props,{align:t,className:n,mapDetails:i,points:s,zoom:l,mapCenter:c,markerColor:u,scrollToZoom:p,mapHeight:d,showFullscreenButton:m}=e,h=(0,o.t)(a.X.styles,n),f=s.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),g=t?`align${t}`:null;return(0,r.createElement)("div",{className:g,"data-map-style":h,"data-map-details":i,"data-points":JSON.stringify(s),"data-zoom":l,"data-map-center":JSON.stringify(c),"data-marker-color":u,"data-scroll-to-zoom":p||null,"data-map-height":d||null,"data-show-fullscreen-button":m||null},s.length>0&&(0,r.createElement)("ul",null,f))}}t.Z=i},17885:function(e,t,n){"use strict";n.d(t,{X:function(){return c}});var r=n(69307),a=n(65736),o=n(56932),i=n(45107),s=n(65765),l=n(34140);const __=a.__,_x=a._x,c={name:"map",prefix:"jetpack",title:__("Map","jetpack"),icon:(0,r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},(0,r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"embed",keywords:[_x("maps","block search term","jetpack"),_x("location","block search term","jetpack"),_x("navigation","block search term","jetpack")],description:__("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},address:{type:"string",default:""},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},supports:{defaultStylePicker:!1,html:!1},styles:[{name:"default",label:__("Basic","jetpack"),preview:o,isDefault:!0},{name:"black_and_white",label:__("Black and white","jetpack"),preview:i},{name:"satellite",label:__("Satellite","jetpack"),preview:s},{name:"terrain",label:__("Terrain","jetpack"),preview:l}],validAlignments:["center","wide","full"],markerIcon:(0,r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},(0,r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},(0,r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),(0,r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},81092:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(52175),u=n(94333),p=n(9818),d=n(4822);const __=l.__,m="editor",h="preview";class f extends o.Component{constructor(){super(...arguments),a()(this,"input",null),a()(this,"state",{activePanel:m}),a()(this,"bindInput",(e=>{this.input=e})),a()(this,"updateSource",(e=>this.props.setAttributes({source:e}))),a()(this,"handleKeyDown",(e=>{const{attributes:t,removeBlock:n}=this.props,{source:r}=t;8===e.keyCode&&""===r&&(n(),e.preventDefault())})),a()(this,"toggleMode",(e=>()=>this.setState({activePanel:e})))}componentDidUpdate(e){e.isSelected&&!this.props.isSelected&&this.state.activePanel===h&&this.toggleMode(m)(),!e.isSelected&&this.props.isSelected&&this.state.activePanel===m&&this.input&&this.input.focus()}isEmpty(){const e=this.props.attributes.source;return!e||""===e.trim()}renderToolbarButton(e,t){const{activePanel:n}=this.state,{className:r}=this.props,a=s()(r,"components-button components-tab-button",{"is-pressed":n===e});return(0,o.createElement)("button",{className:a,onClick:this.toggleMode(e)},(0,o.createElement)("span",null,t))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{source:r}=e,{activePanel:a}=this.state;return!n&&this.isEmpty()?(0,o.createElement)("p",{className:`${t}__placeholder`},__("Write your _Markdown_ **here**…","jetpack")):(0,o.createElement)("div",{className:t},(0,o.createElement)(c.BlockControls,null,(0,o.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton(m,__("Markdown","jetpack")),this.renderToolbarButton(h,__("Preview","jetpack")))),a!==h&&n?(0,o.createElement)(c.PlainText,{className:`${t}__editor`,onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":__("Markdown","jetpack"),innerRef:this.bindInput,value:r}):(0,o.createElement)(d.Z,{className:`${t}__preview`,source:r}))}}t.Z=(0,u.compose)([(0,p.withSelect)((e=>({currentBlockId:e("core/block-editor").getSelectedBlockClientId()}))),(0,p.withDispatch)(((e,t)=>{let{currentBlockId:n}=t;return{removeBlock:()=>e("core/block-editor").removeBlocks(n)}}))])(f)},7882:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(58014),s=n(81092),l=n(27279),c=n(57535),u=n(20510);const __=a.__,_x=a._x,p="markdown",d=__("Try Markdown","jetpack"),m=__("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},(0,r.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),(0,r.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),f=(0,i.Wp)()||(0,i.Ug)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",g={title:__("Markdown","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Use regular characters and punctuation to style text, links, and lists.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:f},__("Support reference","jetpack"))),icon:{src:h,foreground:(0,c.m)()},category:(0,u.Z)("text","formatting"),keywords:[_x("formatting","block search term","jetpack"),_x("syntax","block search term","jetpack"),_x("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:s.Z,save:l.Z,example:{attributes:{source:`## ## ${d}\n\n${m}`}}}},4822:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(69472),i=n.n(o);const __=a.__,s=new(i()),l=e=>{if("A"===e.target.nodeName){window.confirm(__("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault()}};t.Z=e=>{let{className:t,source:n=""}=e;return(0,r.createElement)(r.RawHTML,{className:t,onClick:l},n.length?s.render(n):"")}},27279:function(e,t,n){"use strict";var r=n(69307),a=n(4822);t.Z=e=>{let{attributes:t,className:n}=e;return(0,r.createElement)(a.Z,{className:n,source:t.source})}},11868:function(e,t,n){"use strict";n.d(t,{V1:function(){return i},vW:function(){return s},jn:function(){return l},Eo:function(){return c},fL:function(){return u},ez:function(){return m}});var r=n(65736),a=n(9818),o=n(92819);const __=r.__,i=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],s=i.map((e=>e.value));const l={name:"button",label:__("Button (210 x 113 pixels)","jetpack")},c=e=>(0,o.compact)([{name:"standard",label:__("Standard (224 x 301 pixels)","jetpack"),isDefault:!0},{name:"tall",label:__("Tall (288 x 490 pixels)","jetpack")},{name:"wide",label:__("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&l]),u=e=>c(e).map((e=>e.name)),{siteLocale:p}=(0,a.select)("core/block-editor").getSettings(),d=!(0,o.isEmpty)(p)&&s.includes(p)?p:"en-US",m={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:u()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:d,type:"string",validValues:s},newtab:{default:!1,type:"boolean"},negativeMargin:{default:!1,type:"boolean"}}},65618:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,supports:{align:!0,html:!1},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)(r.Fragment,null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},77583:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,migrate:e=>{const{style:t,className:n}=e,r="standard"===t?"":`is-style-${t}`;return{...e,className:n?`${n} ${r}`:r}},isEligible:e=>{let{style:t,className:n}=e;return!(!t||"standard"===t)&&(!n||-1===n.indexOf("is-style-"))},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},97372:function(e,t,n){"use strict";var r=n(69307),a=(n(86841),n(89105)),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(4981),p=n(12087),d=n(58014),m=n(70718),h=n(18746),f=n(11868),g=n(14087),b=n(98085),k=n(88707);const __=c.__;t.Z=(0,l.withNotices)((function(e){let{attributes:t,className:n,clientId:a,isSelected:v,name:y,noticeOperations:E,noticeUI:w,setAttributes:_}=e;const C=(0,u.getBlockDefaultClassName)(y),x=(0,g.S)(f.ez,t);(0,i.isEqual)(x,t)||_(x);const{align:j,rid:S,iframe:A,domain:N,lang:T,newtab:P,negativeMargin:M}=t,I=(0,i.isEmpty)(S),R=(0,b.t)((0,f.Eo)(),t.className),L=(0,b.t)((0,f.Eo)(S),t.className),B=(0,h.Z)(L),F=(0,i.isEqual)(S,["1"]);(0,r.useEffect)((()=>{if(E.removeAllNotices(),!I&&!F&&"wide"===L&&"wide"!==j&&"full"!==j){const e=(0,r.createElement)(r.Fragment,null,__('With the OpenTable block you may encounter display issues if you use its "wide" style with anything other than "wide" or "full" alignment. The wide display style may also not work well on smaller screens.',"jetpack"));E.createNotice({status:"warning",content:e})}}),[F,j,I,S,L]),(0,r.useEffect)((()=>{"button"===R&&Array.isArray(S)&&S.length>1&&_({className:"",style:""})}),[S,R,_]),(0,r.useEffect)((()=>{v&&(Array.isArray(S)&&S.length>1?(0,u.unregisterBlockStyle)("jetpack/opentable",["button"]):(0,u.registerBlockStyle)("jetpack/opentable",f.jn))}),[v,S]),(0,r.useEffect)((()=>{"wide"===B&&"wide"===j&&_({align:""}),"wide"===L&&B&&L!==B&&_({align:"wide"}),_({style:L})}),[L]);const Z=(0,f.fL)(S),D=e=>S.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e],O=e=>{Array.isArray(e)?_({rid:e,style:e.length>1&&"button"===L?"standard":L}):(e=>{const t=(0,k.CC)(e);t||(E.removeAllNotices(),E.createErrorNotice((0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,__("We ran into an issue","jetpack")),(0,r.createElement)("br",null),__("Please ensure this embed matches the one from your OpenTable account","jetpack"))));const n=(0,g.S)(f.ez,t);_(n),E.removeAllNotices()})(e)},z=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.InspectorAdvancedControls,null,(0,r.createElement)(l.ToggleControl,{label:__("Load the widget in an iFrame (Recommended)","jetpack"),checked:A,onChange:()=>_({iframe:!A}),className:"is-opentable"}),"button"===L&&(0,r.createElement)(l.ToggleControl,{label:__("Remove button margin","jetpack"),checked:M,onChange:()=>_({negativeMargin:!M})})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(l.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(m.Z,{rids:S,onChange:O}),(0,r.createElement)(l.SelectControl,{label:__("Language","jetpack"),value:T,onChange:e=>_({lang:e}),options:f.V1}),(0,r.createElement)(l.ToggleControl,{label:__("Open in a new window","jetpack"),checked:P,onChange:()=>_({newtab:!P})})))),$=(0,d.Wp)()||(0,d.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",U=(0,r.createElement)(l.Placeholder,{label:__("OpenTable Reservation","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:__("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:w},(0,r.createElement)(m.Z,{rids:S,onSubmit:O}),(0,r.createElement)("div",{className:`${C}-placeholder-links`},(0,r.createElement)(l.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},__("Sign up for OpenTable","jetpack")),(0,r.createElement)(l.ExternalLink,{href:$},__("Learn more","jetpack")))),V=o()(n,{[`is-style-${L}`]:!I&&Z.includes(L)&&-1===n.indexOf("is-style"),"is-placeholder":I,"is-multi":"multi"===D(L)[0],[`align${j}`]:j,"has-no-margin":M});return(0,r.createElement)(r.Fragment,null,w,(0,r.createElement)("div",{className:V},!I&&z,I?U:(e=>{const[t,n]=D(e||L);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${C}-overlay`}),(0,r.createElement)("iframe",{title:(0,c.sprintf)(
+/* translators: Placeholder is a unique ID. */
+__("Open Table Preview %s","jetpack"),a),scrolling:"no",src:`https://www.opentable.com/widget/reservation/canvas?rid=${(0,i.join)(S,"%2C")}&type=${t}&theme=${n}&overlay=false&domain=${N}&lang=${T&&f.vW.includes(T)?T:"en-US"}&newtab=${P}&disablega=true`}))})()))}))},12087:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},(0,r.createElement)(a.Path,{d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))},5458:function(e,t,n){"use strict";n.d(t,{u2:function(){return m},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(4981),i=n(11868),s=n(65618),l=n(77583),c=n(97372),u=n(12087),p=n(88707),d=n(57535);n(6757);const __=a.__,_x=a._x,m="opentable",h={title:__("OpenTable","jetpack"),description:__("Allow visitors to book a reservation with OpenTable","jetpack"),icon:{src:u.Z,foreground:(0,d.m)()},category:"earn",keywords:[_x("booking","block search term","jetpack"),_x("reservation","block search term","jetpack"),_x("restaurant","block search term","jetpack")],supports:{align:!0,html:!1},edit:c.Z,save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map(((e,t)=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`,key:`${e}-${t}`},`https://www.opentable.com/restref/client/?rid=${e}`))))},attributes:i.ez,styles:(0,i.Eo)(),example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1,negativeMargin:!1}},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&0===e.textContent.indexOf("http")&&(p.pU.test(e.textContent)||p.tC.test(e.textContent)),transform:e=>{const t=(0,p.CC)(e.textContent);return(0,o.createBlock)("jetpack/opentable",t)}}]},deprecated:[s.Z,l.Z]}},70718:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(92819),s=n(55609),l=n(65736),c=n(74701);const __=l.__,_n=l._n;function u(e){const[t,n]=(0,o.useState)(""),r=(0,c.Z)(t,20),[l,u]=(0,o.useState)(e.rids||[]),p=/^(\d+)$|\(\#(\d+)\)$/,d=r.filter((e=>l.indexOf(e.rid.toString())<0)).map((e=>e.name+` (#${e.rid})`)),m=(0,o.createElement)(s.FormTokenField,a()({value:l,suggestions:d,saveTransform:e=>c.$.test(e)?"":e.trim(),onInputChange:n,maxSuggestions:20,label:_n("Restaurant","Restaurants",l.length,"jetpack")},e,{onChange:t=>{const n=t.map((e=>{const t=p.exec(e);return t[1]||t[2]}));u(n),e.onChange&&e.onChange(n)}}));return(0,o.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?(0,o.createElement)("form",{onSubmit:n=>{n.preventDefault(),e.onSubmit((0,i.isEmpty)(l)?t:l)}},m,(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},__("Embed","jetpack"))):m)}},18746:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)();return(0,r.useEffect)((()=>{t.current=e}),[e]),t.current}},74701:function(e,t,n){"use strict";n.d(t,{$:function(){return o},Z:function(){return i}});var r=n(92819),a=n(69307);const o=/^\s*(http[s]?:\/\/|\<script)/;function i(e,t){const[n,i]=(0,a.useState)([]),s=(0,a.useCallback)((0,r.throttle)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((e=>e.json())).then((e=>i((0,r.unionBy)(n,e.items,"rid"))))}),500),[n]);return(0,a.useEffect)((()=>{(0,r.isEmpty)(e)||o.test(e)||s(e)}),[e]),n}},88707:function(e,t,n){"use strict";n.d(t,{tC:function(){return a},pU:function(){return o},CC:function(){return i}});const r=/<\s*script[^>]*src\s*=\s*["']?([^"']*)/i,a=/restref=([0-9]+)&/,o=/rid=([0-9]+)&/,i=e=>{if(e)return(e=>{if(!e)return;let t="";if(t=0===e.indexOf("http")?new URL(e):new URL("http:"+e),!t.host||-1===t.host.indexOf("opentable")||!t.search)return;const n=new URLSearchParams(t.search);let r=n.get("theme");"button"===n.get("type")&&(r=n.get("type"));let a=n.getAll("rid");if(a&&0!==a.length||(a=n.getAll("restref")),!a||0===a.length)return;const o={};a&&(o.rid=a);const i=n.get("domain");i&&(o.domain=i);const s=n.get("iframe");s&&(o.iframe=s);const l=n.get("lang");l&&(o.lang=l);const c=n.get("newtab");return c&&(o.newtab=c),r&&(o.style=r),o})((e=>{const t=e.match(r);return t&&t[1]?t[1]:a.test(e)||o.test(e)?e:void 0})(e))}},79509:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(18161);const __=a.__,_x=a._x;function l(e){let{className:t,onSubmit:n,noticeUI:a,url:l,setUrl:c}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.Placeholder,{label:__("Pinterest","jetpack"),icon:(0,r.createElement)(i.BlockIcon,{icon:s.qv}),notices:a},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),n()}},(0,r.createElement)("input",{type:"url",value:l,className:"components-placeholder__input","aria-label":__("Pinterest URL","jetpack"),placeholder:__("Enter URL to embed here…","jetpack"),onChange:e=>c(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))))}},49362:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981);const __=a.__,_x=a._x;function s(e){let{fallbackUrl:t,onClick:n}=e;return(0,r.createElement)(r.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,r.createElement)(o.Button,{isLink:!0,onClick:()=>{const e=(0,r.createElement)("a",{href:t},t);n((0,i.createBlock)("core/paragraph",{content:(0,r.renderToString)(e)}))}},_x("Convert block to link","button label","jetpack")))}},61989:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(){return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(o.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack")))}},4052:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setEditingState:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},41659:function(e,t,n){"use strict";var r=n(69307),a=n(94991);t.Z={attributes:{url:{type:"string"}},supports:{align:!1,html:!1},save:e=>{let{attributes:t,className:n}=e;const{url:o}=t;return(0,a.t)(o)?(0,r.createElement)("div",{className:n},(0,r.createElement)("a",{"data-pin-do":(0,a.t)(o),href:o})):null}}},81253:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(52175),i=n(94991),s=n(4052),l=n(61989),c=n(79509),u=n(49362),p=n(79474);t.Z=(0,a.withNotices)((function(e){let{attributes:t,isSelected:n,className:d,noticeOperations:m,noticeUI:h,setAttributes:f,onReplace:g}=e;const{url:b}=t,{isFetching:k,pinterestUrl:v,testUrl:y,hasTestUrlError:E}=(0,p.Z)(),[w,_]=(0,r.useState)(!1),[C,x]=(0,r.useState)(""),[j,S]=(0,r.useState)(!1),A=(0,r.useCallback)((()=>(0,r.createElement)(u.Z,{fallbackUrl:C,onClick:g})),[E]),N=()=>{k||(y(C),S(!1))},T=()=>{_(!0)};if((0,r.useEffect)((()=>{b&&y(b)}),[]),(0,r.useEffect)((()=>{!n&&w&&_(!1)}),[n,w]),(0,r.useEffect)((()=>{f({url:v}),m.removeAllNotices(),v&&x(v),E&&m.createErrorNotice(A())}),[v,E,f,A]),k)return(0,r.createElement)(l.Z,null);const P=(0,i.t)(b);if(j||!b||b&&!P)return(0,r.createElement)(c.Z,{className:d,onSubmit:N,noticeUI:h,url:C,setUrl:x});const M=`<a data-pin-do='${P}' href='${b}'></a>`;return(0,r.createElement)("div",{className:d},(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.C,{setEditingState:S})),(0,r.createElement)("div",null,(0,r.createElement)(a.SandBox,{html:M,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:T}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:T})))}))},79474:function(e,t,n){"use strict";var r=n(69307),a=n(87072),o=n(18161);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n]=(0,r.useState)(!1),[i,s]=(0,r.useState)(e),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i&&i!==o.a0&&(n(!0),(0,a.Z)(i).then((e=>{n(!1),s(e),c(!1)})).catch((()=>{n(!1),s(i||void 0),c(!0)})))}),[i]),{isFetching:t,pinterestUrl:i,hasTestUrlError:l,testUrl:s}}},18161:function(e,t,n){"use strict";n.d(t,{Wh:function(){return p},a0:function(){return d},u2:function(){return m},qv:function(){return f},Xd:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(81253),l=n(26981),c=n(57535),u=n(41659);const __=a.__,_x=a._x,p=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,d="https://pinterest.com/anapinskywalker/",m="pinterest",h=__("Pinterest","jetpack"),f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,null,(0,r.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),g={title:h,description:__("Embed a Pinterest pin, board, or user.","jetpack"),icon:{src:f,foreground:(0,c.m)()},category:"embed",keywords:[_x("social","block search term","jetpack"),_x("pinboard","block search term","jetpack"),_x("pins","block search term","jetpack")],supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:s.Z,save:l.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&p.test(e.textContent),transform:e=>(0,i.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}]},example:{attributes:{url:d}},deprecated:[u.Z]}},26981:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;return(0,r.createElement)("a",{href:n},n)}},94991:function(e,t,n){"use strict";n.d(t,{t:function(){return o}});var r=n(96483),a=n(18161);function o(e){if(!a.Wh.test(e))return"";const t=(0,r.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}},96440:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(55609),l=n(39630);const __=o.__,c=e=>{let{id:t,setRating:n,children:a}=e;return(0,r.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(o=t,e=>{let{keyCode:t}=e;return t===l.ENTER?n(o):null}),onClick:(e=>()=>n(e))(t)},a);var o};t.Z=e=>function(t){let{className:n,setAttributes:o,attributes:{align:l,color:u,rating:p,maxRating:d}}=t;const m=e=>{e===p?Math.ceil(p)===p&&(e-=.5):.5===p&&1===e&&(e=0),o({rating:e})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockControls,null,(0,r.createElement)(i.AlignmentToolbar,{value:l,onChange:e=>o({align:e})})),(0,r.createElement)("div",{className:n,style:{textAlign:l}},(0,a.range)(1,d+1).map((t=>(0,r.createElement)(c,{key:t,id:t,setRating:m},(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t-.5?null:"is-rating-unfilled",color:u})),(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t?null:"is-rating-unfilled",color:u})))))),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(s.RangeControl,{label:__("Highest rating","jetpack"),value:d,onChange:e=>o({maxRating:e}),min:2,max:10}),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:u,onChange:e=>o({color:e}),label:__("Color","jetpack")}]}))))}},9615:function(e,t,n){"use strict";n.d(t,{d:function(){return o},r:function(){return i}});var r=n(69307),a=n(55609);const o=()=>(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"})),i=e=>{const t=(e=>e&&e.color?e.color:"currentColor")(e),n=(e=>e&&e.className?e.className:"")(e);return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},(0,r.createElement)(a.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))}},84807:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(65736),a=n(96440),o=n(2027),i=n(9615),s=n(57535);const __=r.__,_x=r._x,l="rating-star",c={title:__("Star Rating","jetpack"),description:__("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:{src:i.d,foreground:(0,s.m)()},keywords:[_x("star","block search term","jetpack"),_x("rating","block search term","jetpack"),_x("review","block search term","jetpack")],category:"widgets",example:{},styles:[{name:"filled",label:_x("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:_x("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:(0,a.Z)(i.r),save:(0,o.Z)("★")}},2027:function(e,t,n){"use strict";var r=n(69307),a=n(92819);t.Z=e=>function(t){let{className:n,attributes:{align:o,rating:i,color:s}}=t;return(0,r.createElement)("figure",{className:n,style:{textAlign:o}},(0,a.range)(1,i+1).map((t=>(0,r.createElement)("span",{key:t,style:{color:s}},e))))}},79642:function(e,t,n){"use strict";n.d(t,{G:function(){return u},J:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(51591),s=n(48721),l=n(4235),c=n(37930);const __=a.__;function u(e){let{attributes:{planId:t},products:n,setMembershipAmount:a}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Payment plan","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Payment plan","jetpack"),value:t,onChange:e=>a(e),options:n.map((e=>({label:(0,s.C)(e),value:e.id,key:e.id})))})),(0,r.createElement)(o.PanelBody,{title:__("Management","jetpack")},(0,r.createElement)(o.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,l.Z)()}`},__("See your earnings, subscriber list, and payment plans.","jetpack"))))}function p(e){let{connected:t,connectURL:n,hasUpgradeNudge:a,shouldUpgrade:s}=e;const{autosaveAndRedirect:l}=(0,c.Z)(n);return(0,r.createElement)(r.Fragment,null,!a&&!s&&!t&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:i.Pw,onClick:l,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))))}},2235:function(e,t,n){"use strict";var r=n(92819),a=n(4981);const o=["submitButtonText","submitButtonClasses","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},submitButtonClasses:{type:"string"},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},migrate:e=>{const t=(0,r.omit)(e,o),n={text:(i=e).submitButtonText,textColor:i.textButtonColor,customTextColor:i.customTextButtonColor,backgroundColor:i.backgroundButtonColor,customBackgroundColor:i.customBackgroundButtonColor};var i;return[t,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"recurring-payments-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,o),Boolean),save:()=>null}},39035:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(86989),c=n.n(l),u=n(65736),p=n(78850),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(92694),b=n(21409),k=n(17882),v=n(2368),y=n(82163),E=n(79642),w=n(48721);const __=u.__;class _ extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e={path:"/wpcom/v2/memberships/status",method:"GET"};c()(e).then((e=>{if(e.errors&&Object.values(e.errors)&&Object.values(e.errors)[0][0])return this.setState({connected:null,connectURL:2}),void this.onError(Object.values(e.errors)[0][0]);const{connect_url:t,products:n,should_upgrade_to_access_memberships:r,upgrade_url:a}=e,o=e.connected_account_id?1:2;this.setState({connected:o,connectURL:t,shouldUpgrade:r,upgradeURL:a,products:(0,y.ME)(n)})}),(e=>{this.setState({connected:2,connectURL:null}),this.onError(e.message)}))})),a()(this,"handleCurrencyChange",(e=>{let t=this.state.editedProductPrice;(0,k.vs)(e,t)||(t=(0,w.w)((0,k.hj)(e),e)),this.setState({editedProductCurrency:e,editedProductPrice:t,editedProductPriceValid:!0})})),a()(this,"handleRenewIntervalChange",(e=>this.setState({editedProductRenewInterval:e}))),a()(this,"handlePriceChange",(e=>{const t=parseFloat(e),n=(0,k.vs)(this.state.editedProductCurrency,t);this.setState({editedProductPrice:t,editedProductPriceValid:n})})),a()(this,"handleTitleChange",(e=>this.setState({editedProductTitle:e,editedProductTitleValid:e.length>0}))),a()(this,"saveProduct",(()=>{if(!this.state.editedProductTitle||0===this.state.editedProductTitle.length)return void this.setState({editedProductTitleValid:!1});if(!this.state.editedProductPrice||!(0,k.vs)(this.state.editedProductCurrency,this.state.editedProductPrice))return void this.setState({editedProductPriceValid:!1});this.setState({addingMembershipAmount:2});const e={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:this.state.editedProductCurrency,price:this.state.editedProductPrice,title:this.state.editedProductTitle,interval:this.state.editedProductRenewInterval}};c()(e).then((e=>{this.setState({addingMembershipAmount:0,products:this.state.products.concat([{id:e.id,title:e.title,interval:e.interval,price:e.price,currency:e.currency}])}),this.setMembershipAmount(e.id)}),(e=>{this.setState({addingMembershipAmount:1}),this.onError(e.message)}))})),a()(this,"renderAddMembershipAmount",(e=>{if(0===this.state.addingMembershipAmount&&!e)return(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,onClick:()=>this.setState({addingMembershipAmount:1})},__("Add a payment plan","jetpack"));if(2===this.state.addingMembershipAmount)return;const t=(0,p.ZP)((0,k.hj)(this.state.editedProductCurrency),this.state.editedProductCurrency),n=(0,u.sprintf)(
+/* translators: placeholder is a price. */
+__("Minimum allowed price is %s.","jetpack"),t);return(0,o.createElement)("div",null,(0,o.createElement)("div",{className:"membership-button__price-container"},(0,o.createElement)(h.SelectControl,{className:"membership-button__field membership-button__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:k.Xy,value:this.state.editedProductCurrency}),(0,o.createElement)("div",{className:"membership-membership-button__field membership-button__field-price"},(0,o.createElement)(h.TextControl,{label:__("Price","jetpack"),className:s()({"membership-button__field-error":!this.state.editedProductPriceValid}),onChange:this.handlePriceChange,placeholder:t,required:!0,min:"0",step:"1",type:"number",value:this.state.editedProductPrice||""}),(0,o.createElement)("p",null,n))),(0,o.createElement)(h.TextControl,{className:s()({"membership-button__field":!0,"membership-button__field-error":!this.state.editedProductTitleValid}),label:__("Describe your subscription in a few words","jetpack"),onChange:this.handleTitleChange,placeholder:__("Subscription description","jetpack"),value:this.state.editedProductTitle}),(0,o.createElement)(h.SelectControl,{label:__("Renew interval","jetpack"),onChange:this.handleRenewIntervalChange,options:[{label:__("Monthly","jetpack"),value:"1 month"},{label:__("Yearly","jetpack"),value:"1 year"},{label:__("One-Time Payment","jetpack"),value:"one-time"}],value:this.state.editedProductRenewInterval}),(0,o.createElement)("div",null,(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:this.saveProduct},__("Add this payment plan","jetpack")),(0,o.createElement)(h.Button,{isLarge:!0,className:"membership-button__field-button",onClick:()=>this.setState({addingMembershipAmount:0})},__("Cancel","jetpack"))))})),a()(this,"getFormattedPriceByProductId",(e=>{const t=this.state.products.filter((t=>parseInt(t.id)===parseInt(e))).pop();return(0,p.ZP)(parseFloat(t.price),t.currency)})),a()(this,"setMembershipAmount",(e=>{const{innerButtons:t,updateBlockAttributes:n,setAttributes:r}=this.props,a=this.props.attributes.planId,o=(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(e)),i=a?(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(a)):void 0;return t&&t.length&&t[0].innerBlocks.forEach((e=>{const t=e.attributes.text,r=t===i?o:t;n(e.clientId,{text:r})})),r({planId:parseInt(e)})})),a()(this,"renderMembershipAmounts",(()=>(0,o.createElement)("div",null,this.state.products.map((e=>(0,o.createElement)(h.Button,{className:"membership-button__field-button",isLarge:!0,isSecondary:!0,key:e.id,onClick:()=>this.setMembershipAmount(e.id)},(0,w.C)(e))))))),a()(this,"renderDisclaimer",(()=>(0,o.createElement)("div",{className:"membership-button__disclaimer"},(0,o.createElement)(h.ExternalLink,{href:"https://wordpress.com/support/wordpress-editor/blocks/payments/#related-fees"},__("Read more about Payments and related fees.","jetpack"))))),a()(this,"renderUpgradeNudges",(()=>{const{notices:e}=this.props;return(0,o.createElement)(o.Fragment,null,!this.hasUpgradeNudge&&this.state.shouldUpgrade&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e,instructions:__("You'll need to upgrade your plan to use the Payments block.","jetpack")},(0,o.createElement)(h.Button,{isSecondary:!0,isLarge:!0,href:this.state.upgradeURL,target:"_blank"},__("Upgrade your plan","jetpack")),this.renderDisclaimer())))})),a()(this,"renderPlanNotices",(()=>{const{notices:e}=this.props,{connected:t,products:n}=this.state;return(0,o.createElement)(o.Fragment,null,(0===t||2===this.state.addingMembershipAmount)&&!this.props.attributes.planId&&(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),notices:e},(0,o.createElement)(h.Spinner,null)),!this.state.shouldUpgrade&&!this.props.attributes.planId&&1===t&&0===n.length&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, first add at least one payment plan.","jetpack")),this.renderAddMembershipAmount(!0),this.renderDisclaimer()))),!this.state.shouldUpgrade&&!this.props.attributes.planId&&2!==this.state.addingMembershipAmount&&1===t&&n.length>0&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, select a previously created payment plan.","jetpack")),this.renderMembershipAmounts(),(0,o.createElement)("p",null,__("Or a new one.","jetpack")),this.renderAddMembershipAmount(!1),this.renderDisclaimer()))))})),a()(this,"render",(()=>{const{connected:e,connectURL:t,products:n}=this.state,r=(0,g.applyFilters)("jetpack.RecurringPayments.showControls",n.length>0,this.props.clientId),a=(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{attributes:this.props.attributes,products:n,setMembershipAmount:this.setMembershipAmount})),i=(0,o.createElement)(f.BlockControls,null,(0,o.createElement)(E.J,{connected:2!==e,connectURL:(0,v.Z)(this.props.postId,t),hasUpgradeNudge:this.hasUpgradeNudge,shouldUpgrade:this.state.shouldUpgrade}));return(0,o.createElement)(o.Fragment,null,this.props.noticeUI,!this.isPremiumContentChild&&this.renderUpgradeNudges(),!this.isPremiumContentChild&&this.renderPlanNotices(),r&&a,i,(0,o.createElement)(f.InnerBlocks,{template:[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id"}]],templateLock:"all",__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))})),this.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],editedProductCurrency:"USD",editedProductPrice:(0,w.w)((0,k.hj)("USD"),"USD"),editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},this.timeout=null;const e=(0,b.Z)("recurring-payments");this.hasUpgradeNudge=!e.available&&"missing_plan"===e.unavailableReason,this.isPremiumContentChild=this.props.context.isPremiumContentChild||!1}}t.Z=(0,d.compose)([(0,m.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()}))),(0,m.withDispatch)((e=>{const{updateBlockAttributes:t}=e("core/editor");return{updateBlockAttributes:t,autosaveAndRedirect:async(t,n)=>{t.preventDefault(),await e("core/editor").savePost(),window.top.location.href=n}}})),h.withNotices])(_)},82163:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m},ME:function(){return h}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(57535),l=n(2235),c=n(39035),u=n(17882);const __=i.__,_x=i._x,p="recurring-payments",d=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},(0,r.createElement)(a.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"}))),m={title:__("Payments","jetpack"),icon:{src:d,foreground:(0,s.m)()},description:__("Button allowing you to sell products and subscriptions.","jetpack"),category:"earn",keywords:[_x("sell","block search term","jetpack"),_x("subscriptions","block search term","jetpack"),_x("product","block search term","jetpack"),"stripe",_x("memberships","block search term","jetpack")],usesContext:["isPremiumContentChild"],attributes:{planId:{type:"integer"},align:{type:"string"}},edit:c.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},supports:{html:!1,align:!0},deprecated:[l.Z]};function h(e){return e.filter((e=>(0,u.vs)(e.currency,e.price)))}},48721:function(e,t,n){"use strict";n.d(t,{w:function(){return o},C:function(){return i}});var r=n(65736),a=n(78850);const __=r.__,o=(e,t)=>(0,a.ZP)(e,t,{decimal:".",symbol:""}),i=e=>{const t=(0,a.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,r.sprintf)(
+/* translators: %1$s is a price, %2$s is a period (1 year for example) */
+__("%1$s / %2$s","jetpack"),t,e.interval)}},14823:function(e,t,n){"use strict";n.d(t,{Hj:function(){return i},AP:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{attributes:t,setAttributes:n}=e;const{displayContext:a,displayDate:i,displayThumbnails:s,postsToShow:l}=t;return(0,r.createElement)(o.PanelBody,{title:__("Related Posts Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Display thumbnails","jetpack"),checked:s,onChange:e=>n({displayThumbnails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display date","jetpack"),checked:i,onChange:e=>n({displayDate:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display context (category or tag)","jetpack"),checked:a,onChange:e=>n({displayContext:e})}),(0,r.createElement)(o.RangeControl,{label:__("Number of posts","jetpack"),value:l,onChange:e=>n({postsToShow:Math.min(e,6)}),min:1,max:6}))}function s(e){let{attributes:t,setAttributes:n}=e;const{postLayout:a}=t,i=[{icon:"grid-view",title:__("Grid View","jetpack"),onClick:()=>n({postLayout:"grid"}),isActive:"grid"===a},{icon:"list-view",title:__("List View","jetpack"),onClick:()=>n({postLayout:"list"}),isActive:"list"===a}];return(0,r.createElement)(o.ToolbarGroup,{controls:i})}},31759:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(92819),l=n(9818),c=n(94333),u=n(14823);const __=a.__;function p(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},e.isInSiteEditor?__("Preview unavailable in site editor.","jetpack"):__("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&(0,r.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":__("Placeholder image","jetpack")},(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},(0,r.createElement)("title",null,__("Grey square","jetpack")),(0,r.createElement)(i.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)("title",null,__("Icon for image","jetpack")),(0,r.createElement)(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},__("August 3, 2018","jetpack")),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},__("In “Uncategorized”","jetpack")))}function d(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&(0,r.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},(0,r.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function m(e){const t="jp-related-posts-i2__row";let n=0;const a=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:n=2;break;default:n=3}return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(0,n).length},e.posts.slice(0,n)),a&&(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(n).length},e.posts.slice(n)))}class h extends r.Component{render(){const{attributes:e,className:t,posts:n,setAttributes:a,instanceId:i,isInSiteEditor:s}=this.props,{displayContext:l,displayDate:c,displayThumbnails:h,postLayout:f,postsToShow:g}=e,b="jp-relatedposts-i2",k=[];for(let e=0;e<g;e++)n[e]?k.push((0,r.createElement)(d,{id:`related-posts-${i}-post-${e}`,key:b+"-"+e,post:n[e],displayThumbnails:h,displayDate:c,displayContext:l})):k.push((0,r.createElement)(p,{id:`related-posts-${i}-post-${e}`,key:"related-post-placeholder-"+e,displayThumbnails:h,displayDate:c,displayContext:l,isInSiteEditor:s}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(u.Hj,{attributes:e,setAttributes:a})),(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(u.AP,{attributes:e,setAttributes:a})),(0,r.createElement)("div",{className:t,id:`related-posts-${i}`},(0,r.createElement)("div",{className:b,"data-layout":f},(0,r.createElement)(m,{posts:k}))))}}t.ZP=(0,c.compose)(c.withInstanceId,(0,l.withSelect)((e=>{const{getCurrentPost:t}=e("core/editor"),n=t();return{posts:(0,s.get)(n,"jetpack-related-posts",[]),isInSiteEditor:(0,s.isEmpty)(n)}})))(h)},32051:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(31759),s=n(57535);const __=a.__,_x=a._x,l="related-posts",c=(0,r.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},(0,r.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),u={title:__("Related Posts","jetpack"),icon:{src:c,foreground:(0,s.m)()},category:"embed",keywords:[_x("similar content","block search term","jetpack"),_x("linked","block search term","jetpack"),_x("connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:i.ZP,save:()=>null,example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}}},35978:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(9818),u=n(89105),p=n.n(u),d=n(46314),m=n(57368);const __=i.__,_n=i._n,h=[{value:d.FV,label:__("Show after threshold","jetpack")},{value:d.Am,label:__("Show before threshold","jetpack")}];class f extends o.Component{constructor(){super(...arguments),a()(this,"state",{isThresholdValid:!0}),a()(this,"setCriteria",(e=>this.props.setAttributes({criteria:e}))),a()(this,"setThreshold",(e=>{if(/^\d+$/.test(e)&&+e>0)return this.props.setAttributes({threshold:+e}),void this.setState({isThresholdValid:!0});this.setState({isThresholdValid:!1})}))}getNoticeLabel(){return this.props.attributes.criteria===d.FV?1===this.props.attributes.threshold?__("This block will only appear to people who have visited this page more than once.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who have visited this page more than %d time.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):1===this.props.attributes.threshold?__("This block will only appear to people who are visiting this page for the first time.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who are visiting this page for %d time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}render(){return(0,o.createElement)("div",{className:p()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},(0,o.createElement)(s.Placeholder,{icon:m.qv,label:__("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},(0,o.createElement)(s.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":__("Please enter a valid number.","jetpack"),label:__("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),(0,o.createElement)(s.RadioControl,{label:__("Visibility","jetpack"),selected:this.props.attributes.criteria,options:h,onChange:this.setCriteria})),(0,o.createElement)(s.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),(0,o.createElement)(l.InnerBlocks,null))}}t.Z=(0,c.withSelect)(((e,t)=>{const{isBlockSelected:n,hasSelectedInnerBlock:r}=e("core/block-editor");return{isSelected:n(t.clientId)||r(t.clientId)}}))(f)},42860:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks.Content,null))}},46314:function(e,t,n){"use strict";n.d(t,{FV:function(){return r},Am:function(){return a},Kv:function(){return o}});const r="after-visits",a="before-visits",o=3},57368:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(41632),s=n(35978),l=n(42860),c=n(46314),u=n(57535);const __=a.__,_x=a._x,p="repeat-visitor",d=(0,i.Z)((0,r.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"})),m={attributes:{criteria:{type:"string",default:c.FV},threshold:{type:"number",default:c.Kv}},category:"widgets",description:__("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:{src:d,foreground:(0,u.m)()},keywords:[_x("return","block search term","jetpack"),_x("visitors","block search term","jetpack"),_x("visibility","block search term","jetpack")],supports:{html:!1},title:__("Repeat Visitor","jetpack"),edit:s.Z,save:l.Z,example:{attributes:{criteria:c.FV,threshold:c.Kv},innerBlocks:[{name:"core/paragraph",attributes:{content:__("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}}},92826:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={revueUsername:{type:"string"},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0}}},26246:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(4981),i=n(65736);const _x=i._x,__=i.__,s=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius","gradient","customGradient"];t.Z={attributes:{revueUsername:{type:"string"},text:{type:"string",default:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"},gradient:{type:"string"},customGradient:{type:"string"}},migrate:e=>{const t=(0,a.omit)(e,s),n=(0,a.pick)(e,s);return[t,[(0,o.createBlock)("jetpack/button",{element:"button",text:n.text||"Subscribe",...n})]]},isEligible:(e,t)=>(0,a.isEmpty)(t)||(0,a.some)((0,a.pick)(e,s),Boolean),save:e=>{let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)("a",{href:n},n))}}},55380:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(92819),o=n(52175),i=n(55609),s=n(65736),l=n(8223),c=n(92826),u=n(80500),p=n(93641),d=n(14087),m=n(58014);const __=s.__;function h(e){let{attributes:t,className:n,setAttributes:s}=e;(0,r.useEffect)((()=>{const e=(0,d.S)(c.Z,t);(0,a.isEqual)(e,t)||s(e)}),[t,s]);const{revueUsername:h,emailLabel:f,emailPlaceholder:g,firstNameLabel:b,firstNamePlaceholder:k,firstNameShow:v,lastNameLabel:y,lastNamePlaceholder:E,lastNameShow:w}=t,[_,C]=(0,r.useState)("");(0,r.useEffect)((()=>{!_&&h&&C(h)}),[]);const x=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/revue-block/":"https://jetpack.com/support/jetpack-blocks/revue-block/";return(0,r.createElement)("div",{className:n},!h&&(0,r.createElement)(i.Placeholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:p.Z}),instructions:__("Enter your Revue username.","jetpack"),label:__("Revue","jetpack")},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),s({revueUsername:_.trim()})}},(0,r.createElement)("input",{className:"components-placeholder__input",onChange:e=>C(e.target.value.trim()),placeholder:__("Enter your Revue username here…","jetpack"),type:"text",value:_}),(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{disabled:!_,isDefault:!0,isLarge:!0,isSecondary:!0,type:"submit"},__("Add Form","jetpack")))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(i.ExternalLink,{href:x},__("Need help finding your Revue username?","jetpack")))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Show first name field.","jetpack"),checked:v,onChange:()=>s({firstNameShow:!v})}),(0,r.createElement)(i.ToggleControl,{label:__("Show last name field.","jetpack"),checked:w,onChange:()=>s({lastNameShow:!w})}),(0,r.createElement)(i.TextControl,{label:__("Revue Username","jetpack"),onChange:e=>{C(e.trim()),s({revueUsername:e.trim()})},value:h}))),(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:f,labelFieldName:"emailLabel",required:!0,setAttributes:s}),onChange:e=>s({emailPlaceholder:e}),placeholder:g,value:g}),v&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:b,labelFieldName:"firstNameLabel",setAttributes:s}),onChange:e=>s({firstNamePlaceholder:e}),placeholder:k,value:k}),w&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:y,labelFieldName:"lastNameLabel",setAttributes:s}),onChange:e=>s({lastNamePlaceholder:e}),placeholder:E,value:E}),(0,r.createElement)(o.InnerBlocks,{template:[[l.Ss.name,l.Ss.attributes]],templateLock:"all"})))}},93641:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,{fillRule:"nonzero"},(0,r.createElement)(a.Path,{d:"M16.8452322,23.2301186 C13.9471277,22.2565366 12.0226052,20.2188069 10.6188359,16.5961763 C10.2565728,15.6225943 9.87166831,14.4905223 9.80374399,14.1056178 C9.66789534,13.4037331 9.6452539,13.3810917 8.96601067,13.6075061 C7.8792215,13.9697691 7.76601429,14.1282592 7.35846835,15.758443 C6.724508,18.2490015 6.45281071,18.7244718 5.56979451,18.8829619 C5.09432424,18.9735276 4.5735711,18.9282447 4.27923236,18.7697547 C3.84904498,18.5433402 3.8037621,18.3848502 3.93961075,17.501834 C4.00753507,16.9584394 4.41508101,15.3056142 4.82262695,13.8339205 C5.8414918,10.2792143 6.11318909,8.98865211 6.29432062,7.1094125 C6.43016927,5.63771883 6.47545215,5.50187018 7.08677106,5.20753145 C7.92450438,4.79998551 8.80752058,5.09432424 9.19242508,5.88677468 C9.44148093,6.38488639 9.39619805,6.90563953 8.96601067,8.98865211 C8.67167193,10.3924215 8.51318185,11.5244935 8.62638905,11.5244935 C9.12450076,11.5244935 11.2754377,10.2565728 12.0452467,9.50940525 C13.8339205,7.83393861 14.2641079,5.77356748 13.2905259,3.82640354 C12.5886412,2.4226342 11.6150593,1.94716393 9.78110255,2.08301258 C6.97356385,2.28678555 4.43772245,4.25659092 3.01131166,7.35846835 C2.21886123,9.05657643 2.19621978,9.07921787 1.49433511,8.94336923 C-1.74339096,8.28676744 0.63396035,3.39621616 5.29809721,1.19999638 C8.39997464,-0.294338734 11.5018521,-0.362263057 14.0829764,0.950940525 C17.0716466,2.51319996 18.0225871,5.93205756 16.2791961,8.96601067 C15.5999529,10.1433656 14.2641079,11.3886449 12.9509043,12.0678881 C12.5433584,12.2716611 12.2037367,12.5207169 12.2037367,12.6339241 C12.2037367,12.9509043 13.2678845,15.9395745 13.6301475,16.6641006 C14.3093908,17.9773042 16.2339133,19.8112609 17.4565511,20.377297 C18.8829619,21.0112573 21.4640861,21.0791816 23.0263456,20.5131456 L23.9772861,20.1508826 L23.9772861,20.7169186 C23.9772861,21.5320105 23.3433258,22.3471023 22.3018195,22.8904969 C21.147106,23.4791744 18.1584357,23.6603059 16.8452322,23.2301186 Z"})))},8223:function(e,t,n){"use strict";n.d(t,{Ss:function(){return u},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(92826),o=n(26246),i=n(55380),s=n(93641),l=n(57535),c=n(12628);const __=r.__,_x=r._x,u={name:"jetpack/button",attributes:{element:"button",text:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")}},p="revue",d={title:__("Revue","jetpack"),description:__("Add a subscription form for your Revue newsletter.","jetpack"),icon:{src:s.Z,foreground:(0,l.m)()},category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack"),_x("mailing list","block search term","jetpack")],supports:{html:!1},attributes:a.Z,edit:i.Z,save:c.Z,example:{attributes:{revueUsername:"example"},innerBlocks:[u]},deprecated:[o.Z]}},12628:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null),(0,r.createElement)("a",{className:"wp-block-jetpack-revue__fallback",href:n},n))}},47175:function(e,t,n){"use strict";n.d(t,{LC:function(){return r},a7:function(){return a},Rh:function(){return o}});const r="jp_pay_product",a="USD",o=[a,"EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"]},81255:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{setAttributes:t,postLinkText:n}=e;return(0,r.createElement)(a.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,r.createElement)(a.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>t({postLinkText:e}),value:n})))}},56511:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},save:e=>{let{attributes:t}=e;const{productId:n}=t;return n?(0,r.createElement)(r.RawHTML,null,`[simple-payment id="${n}"]`):null}}},75050:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),k=n(8565),v=n(37299),y=n(47175);const __=p.__,_n=p._n;class E extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,v.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(h.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,o.createElement)(h.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,o.createElement)(h.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>this.props.setAttributes({postLinkText:e}),value:this.props.attributes.postLinkText}))))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r}=this.props,{productId:a}=e;!a&&t&&this.saveProduct();const o=n&&n!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&r({...o&&{postLinkUrl:n},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:x}=r,j=C&&(0,c.isEmpty)(u);if(!i&&j)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&x&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,v.w)(_,d),multiple:w,title:x});const S=j?h.Disabled:"div";return(0,o.createElement)(S,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(k.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:x}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,v.w)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const w=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u.link}}));t.Z=(0,d.compose)(w,d.withInstanceId)(E)},19372:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(75050),u=n(63290);const __=a.__,_x=a._x,p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),d=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",m={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:d},__("Support reference","jetpack"))),icon:{src:p,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};t.Z=m},63290:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.w)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},81666:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),k=n(8565),v=n(37299),y=n(47175),E=n(81255);const __=p.__,_n=p._n;class w extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,v.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{postLinkText:this.props.attributes.postLinkText,setAttributes:this.props.setAttributes}))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r,isPostEditor:a}=this.props,{productId:o}=e;(!o&&t||!a)&&this.saveProduct();const i=n&&n!==this.props.attributes.postLinkUrl,s=!this.props.attributes.postLinkText;(i||s)&&r({...i&&{postLinkUrl:n},...s&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:x}=r,j=C&&(0,c.isEmpty)(u);if(!i&&j)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&x&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,v.T4)(_,d),multiple:w,title:x});const S=j?h.Disabled:"div";return(0,o.createElement)(S,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(k.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:x}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),"aria-label":__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,v.T4)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const _=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u?.link,isPostEditor:Object.keys(o()).length>0}}));t.Z=(0,d.compose)(_,d.withInstanceId)(w)},8565:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(92819),s=n(55609),l=n(58703);const __=a.__,c=e=>t=>e({featuredMediaId:(0,i.get)(t,"id",0),featuredMediaUrl:(0,i.get)(t,"url",null),featuredMediaTitle:(0,i.get)(t,"title",null)});t.Z=e=>{let{featuredMediaId:t,featuredMediaUrl:n,featuredMediaTitle:a,setAttributes:i}=e;return t?(0,r.createElement)("div",null,(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarItem,null,(()=>(0,r.createElement)(o.MediaUpload,{onSelect:c(i),allowedTypes:["image"],value:t,render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Image","jetpack"),onClick:t})}}))),(0,r.createElement)(s.ToolbarButton,{icon:"trash",title:__("Remove Image","jetpack"),onClick:()=>i({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}))),(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:n,alt:a})))):(0,r.createElement)(o.MediaPlaceholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:"format-image"}),labels:{title:__("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:c(i)})}},35289:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(81666),u=n(73e3),p=n(56511),d=n(19372),m=n(60206);const __=a.__,_x=a._x,h="simple-payments",f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),g=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",b={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:g},__("Support reference","jetpack"))),icon:{src:f,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,example:{attributes:{price:25,title:__("Jetpack t-shirt","jetpack"),content:__("Take flight in ultimate comfort with this stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:m}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},deprecated:[p.Z,d.Z]}},87079:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(22323),i=n(23879);const __=a.__;t.Z=e=>{let{title:t="",content:n="",formattedPrice:a="",multiple:s=!1,featuredMediaUrl:l=null,featuredMediaTitle:c=null}=e;return(0,r.createElement)("div",{className:"jetpack-simple-payments-wrapper"},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},l&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("figure",{className:"jetpack-simple-payments-image"},(0,r.createElement)("img",{src:l,alt:c}))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},t&&(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,t)),n&&(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),a&&(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,a)),(0,r.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},s&&(0,r.createElement)("div",{className:"jetpack-simple-payments-items"},(0,r.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),(0,r.createElement)("div",{className:"jetpack-simple-payments-button"},(0,r.createElement)("img",{alt:__("Pay with PayPal","jetpack"),src:o,srcSet:`${i} 2x`}))))))}},73e3:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.T4)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},37299:function(e,t,n){"use strict";n.d(t,{N3:function(){return i},w:function(){return l},T4:function(){return c}});var r=n(75139),a=n(92819),o=n(9818);n(47175);const i=e=>{const t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},s=function(){var e,t,n;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en-US";const a=window?.window?.navigator;return a?.languages?.length?a.languages[0]:null!==(e=null!==(t=null!==(n=a?.userLanguage)&&void 0!==n?n:a?.language)&&void 0!==t?t:a?.browserLanguage)&&void 0!==e?e:r},l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const{precision:o,symbol:i}=(0,r.X)(t),s=e.toFixed(o);return n?`${s} ${(0,a.trimEnd)(i,".")}`:s},c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!window.Intl||"function"!=typeof Intl.NumberFormat)return l(e,t,n);const{siteLocale:r}=(0,o.select)("core/block-editor").getSettings(),a=[r,s(),"en-US"];let i,c={};for(i of(n&&(c={style:"currency",currency:t}),a))try{return Intl.NumberFormat(i,c).format(e)}catch{continue}return l(e,t,n)}},98972:function(e,t,n){"use strict";n.d(t,{G:function(){return c},J:function(){return u}});var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(92819),l=n(58703);const __=i.__,_x=i._x;function c(e){let{attributes:{autoplay:t,delay:n,effect:a,images:i,sizeSlug:l},imageSizeOptions:c,onChangeImageSize:u,setAttributes:p}=e;const d="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,m=[{label:_x("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:_x("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Autoplay","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Autoplay","jetpack"),help:__("Autoplay between slides","jetpack"),checked:t,onChange:e=>{p({autoplay:e})}}),t&&(0,r.createElement)(o.RangeControl,{label:__("Delay between transitions (in seconds)","jetpack"),value:n,onChange:e=>{p({delay:e})},min:1,max:5}),t&&d&&(0,r.createElement)("span",null,__("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Effects","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Transition effect","jetpack"),value:a,onChange:e=>{p({effect:e})},options:m})),!(0,s.isEmpty)(i)&&!(0,s.isEmpty)(c)&&(0,r.createElement)(o.PanelBody,{title:__("Image Settings","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Image Size","jetpack"),value:l,options:c,onChange:e=>u(e)})))}function u(e){let{allowedMediaTypes:t,attributes:{images:n},onSelectImages:i}=e;return(0,r.createElement)(r.Fragment,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{onSelect:i,allowedTypes:t,multiple:!0,gallery:!0,value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Slideshow","jetpack"),onClick:t})}})))))}},44890:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);async function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".swiper-container",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicks:!1,preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,threshold:5,touchStartPreventDefault:!1,on:(0,r.mapValues)(a,(e=>function(){e(this)}))},[{default:i}]=await Promise.all([Promise.all([n.e(860),n.e(390)]).then(n.t.bind(n,16402,23)),Promise.all([n.e(860),n.e(390)]).then(n.bind(n,78858))]);return new i(e,(0,r.merge)({},o,t))}},67448:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(11313),u=n(9818),p=n(52175),d=n(12238),m=n(55609),h=n(94120),f=n(98972),g=n(712);const __=i.__,b=["image"],k=(e,t)=>{const n=(0,l.pick)(e,["alt","id","link","caption"]);return n.url=(0,l.get)(e,["sizes",t,"url"])||(0,l.get)(e,["media_details","sizes",t,"source_url"])||e.url,n};class v extends o.Component{constructor(){super(...arguments),a()(this,"onSelectImages",(e=>{const{sizeSlug:t}=this.props.attributes,n=e.map((e=>k(e,t)));this.setAttributes({images:n})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,l.filter)(this.props.attributes.images,((t,n)=>e!==n));this.setState({selectedImage:null}),this.setAttributes({images:t})})),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],n=this.props.attributes.sizeSlug,{lockPostSaving:r,unlockPostSaving:a,noticeOperations:o}=this.props,i="slideshowBlockLock";r(i),(0,d.mediaUpload)({allowedTypes:b,filesList:e,onFileChange:e=>{const r=e.map((e=>k(e,n)));this.setAttributes({images:[...t,...r]}),r.every((e=>(0,c.isBlobURL)(e.url)))||a(i)},onError:o.createErrorNotice})})),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files))),a()(this,"updateImagesSize",(e=>{const{images:t}=this.props.attributes,{resizedImages:n}=this.props,r=t.map((t=>{const r=n.find((e=>{let{id:n}=e;return parseInt(n,10)===parseInt(t.id,10)})),a=(0,l.get)(r,["sizes",e,"source_url"]);return{...t,...a&&{url:a}}}));this.setAttributes({images:r,sizeSlug:e})})),this.state={selectedImage:null}}componentDidMount(){const{ids:e,sizeSlug:t}=this.props.attributes;t||this.setAttributes({sizeSlug:e.length?"full":"large"})}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}getImageSizeOptions(){const{imageSizes:e}=this.props;return(0,l.map)(e,(e=>{let{name:t,slug:n}=e;return{value:n,label:t}}))}render(){const{attributes:e,className:t,isSelected:n,noticeOperations:r,noticeUI:a}=this.props,{align:i,autoplay:s,delay:l,effect:c,images:u}=e,d=this.getImageSizeOptions(),k=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.InspectorControls,null,(0,o.createElement)(f.G,{attributes:e,imageSizeOptions:d,onChangeImageSize:this.updateImagesSize,setAttributes:e=>this.setAttributes(e)})),(0,o.createElement)(p.BlockControls,null,(0,o.createElement)(f.J,{allowedMediaTypes:b,attributes:e,onSelectImages:this.onSelectImages})));return 0===u.length?(0,o.createElement)(o.Fragment,null,k,(0,o.createElement)(p.MediaPlaceholder,{icon:(0,o.createElement)(p.BlockIcon,{icon:h.qv}),className:t,labels:{title:__("Slideshow","jetpack"),instructions:__("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:b,multiple:!0,notices:a,onError:r.createErrorNotice})):(0,o.createElement)(o.Fragment,null,k,a,(0,o.createElement)(g.Z,{align:i,autoplay:s,className:t,delay:l,effect:c,images:u,onError:r.createErrorNotice}),(0,o.createElement)(m.DropZone,{onFilesDrop:this.addFiles}),n&&(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},(0,o.createElement)(m.FormFileUpload,{multiple:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack"))))}}t.ZP=(0,s.compose)((0,u.withSelect)(((e,t)=>({imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce(((t,n)=>{const r=e("core").getMedia(n);return[...t,{id:n,sizes:(0,l.get)(r,["media_details","sizes"])}]}),[])}))),(0,u.withDispatch)((e=>{const{lockPostSaving:t,unlockPostSaving:n}=e("core/editor");return{lockPostSaving:t,unlockPostSaving:n}})),m.withNotices)(v)},94120:function(e,t,n){"use strict";n.d(t,{qv:function(){return h},u2:function(){return g},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(67448),s=n(91957),l=n(4830),c=n(57535),u=n(20510),p=n(65784),d=n(6425),m=n(85983);const __=a.__,_x=a._x,h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none"},(0,r.createElement)(o.Path,{d:"M21 8V19C21 20.1046 20.1057 21 19.0011 21C15.8975 21 9.87435 21 6 21",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Rect,{x:"3.75",y:"3.75",width:"13.5",height:"13.5",rx:"0.875",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Path,{d:"M9 14L12 11L9 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})),f={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:p},{alt:"",caption:"",id:23,url:d},{alt:"",caption:"",id:23,url:m}],effect:"slide"},g="slideshow",b={title:__("Slideshow","jetpack"),category:(0,u.Z)("media","layout"),keywords:[_x("image","block search term","jetpack"),_x("gallery","block search term","jetpack"),_x("slider","block search term","jetpack")],description:__("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:{src:h,foreground:(0,c.m)()},edit:i.ZP,save:s.Z,transforms:l.Z,example:{attributes:f}}},91957:function(e,t,n){"use strict";var r=n(69307),a=n(712);t.Z=e=>{let{attributes:{align:t,autoplay:n,delay:o,effect:i,images:s},className:l}=e;return(0,r.createElement)(a.Z,{align:t,autoplay:n,className:l,delay:o,effect:i,images:s})}},712:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(54166),c=n(65736),u=n(11313),p=n(92819),d=n(52175),m=n(55609),h=n(44890),f=n(10099);const __=c.__;class g extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"pendingRequestAnimationFrame",null),a()(this,"resizeObserver",null),a()(this,"initializeResizeObserver",(e=>{this.clearResizeObserver(),this.resizeObserver=new l.Z((()=>{this.clearPendingRequestAnimationFrame(),this.pendingRequestAnimationFrame=requestAnimationFrame((()=>{(0,f.$m)(e),e.update()}))})),this.resizeObserver.observe(e.el)})),a()(this,"clearPendingRequestAnimationFrame",(()=>{this.pendingRequestAnimationFrame&&(cancelAnimationFrame(this.pendingRequestAnimationFrame),this.pendingRequestAnimationFrame=null)})),a()(this,"clearResizeObserver",(()=>{this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)})),a()(this,"prefersReducedMotion",(()=>"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)),a()(this,"buildSwiper",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(0,h.Z)(t.slideshowRef.current,{autoplay:!(!t.props.autoplay||t.prefersReducedMotion())&&{delay:1e3*t.props.delay,disableOnInteraction:!1},effect:t.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:t.btnNextRef.current,prevEl:t.btnPrevRef.current},pagination:{clickable:!0,el:t.paginationRef.current,type:"bullets"}},{init:f.UA,imagesReady:f.$m,paginationRender:f.Wj,transitionEnd:f.HV})})),this.slideshowRef=(0,o.createRef)(),this.btnNextRef=(0,o.createRef)(),this.btnPrevRef=(0,o.createRef)(),this.paginationRef=(0,o.createRef)()}componentDidMount(){const{onError:e}=this.props;this.buildSwiper().then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{e(__("The Swiper library could not be loaded.","jetpack"))}))}componentWillUnmount(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}componentDidUpdate(e){const{align:t,autoplay:n,delay:r,effect:a,images:o,onError:i}=this.props;if(t===e.align&&(0,p.isEqual)(o,e.images)||this.swiperInstance&&this.swiperInstance.update(),a!==e.effect||n!==e.autoplay||r!==e.delay||o!==e.images){let t;t=this.swiperIndex?o.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{i(__("The Swiper library could not be loaded.","jetpack"))}))}}render(){if(!this.props?.images?.length)return null;const{autoplay:e,className:t,delay:n,effect:r,images:a}=this.props;return(0,o.createElement)("div",{className:t,"data-autoplay":e||null,"data-delay":e?n:null,"data-effect":r},(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},(0,o.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},a.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return(0,o.createElement)("li",{className:s()("wp-block-jetpack-slideshow_slide","swiper-slide",(0,u.isBlobURL)(a)&&"is-transient"),key:r||a},(0,o.createElement)("figure",null,(0,o.createElement)("img",{alt:t,className:`wp-block-jetpack-slideshow_image wp-image-${r}`,"data-id":r,src:a}),(0,u.isBlobURL)(a)&&(0,o.createElement)(m.Spinner,null),n&&(0,o.createElement)(d.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),(0,o.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}a()(g,"defaultProps",{effect:"slide"}),t.Z=g},10099:function(e,t,n){"use strict";n.d(t,{HV:function(){return l},UA:function(){return i},Wj:function(){return c},$m:function(){return s}});var r=n(81975),a=n(92819);const o="wp-block-jetpack-slideshow_autoplay-paused";function i(e){s(e),l(e);document.querySelector("body").dispatchEvent(new Event("jetpack-lazy-images-load")),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function s(e){if(!e||!e.el)return;const t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(!t)return;const n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,1.7777777777777777),1),a="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,a),i=`${Math.floor(o)}px`,s=`${Math.floor(o/2)}px`;e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=i,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=s}function l(e){(0,a.forEach)(e.slides,((t,n)=>{t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){const t=e.slides[e.activeIndex];if(!t)return;const n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:(0,r.escapeHTML)(a.alt))}(e)}function c(e){(0,a.forEach)(e.pagination.bullets,(t=>{t.addEventListener("click",(()=>{const t=e.slides[e.realIndex];setTimeout((()=>{t.focus()}),500)}))}))}},4830:function(e,t,n){"use strict";var r=n(4981),a=n(92819);function o(e){return(0,a.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const i={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>o(e).length>0,transform:e=>{const t=o(e);return(0,r.createBlock)("jetpack/slideshow",{images:t.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:e=>{let{images:t}=e;const n=o(t);return n.length>0?(0,r.createBlock)("jetpack/slideshow",{images:n.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,r.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n}=e;return(0,r.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:e=>{let{images:t}=e;return t.length>0?t.map((e=>{let{id:t,url:n,alt:a,caption:o}=e;return(0,r.createBlock)("core/image",{id:t,url:n,alt:a,caption:o})})):(0,r.createBlock)("core/image")}}]};t.Z=i},79885:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"},successMessage:{type:"string",default:__("Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.","jetpack")}}},87138:function(e,t,n){"use strict";n.d(t,{G0:function(){return r},Gp:function(){return a},S9:function(){return o},VF:function(){return i},K3:function(){return s},XJ:function(){return l},xV:function(){return c},bK:function(){return u},HE:function(){return p},Tr:function(){return d},pC:function(){return m},FP:function(){return h},tm:function(){return f}});const r=0,a=50,o=0,i=0,s=15,l=1,c=5,u=50,p=15,d=0,m=50,h=10,f="16px"},45643:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(80790),l=n(87138);const __=a.__;function c(e){let{buttonBackgroundColor:t,borderColor:n,buttonGradient:a,borderRadius:c,borderWeight:u,buttonOnNewLine:p,emailFieldBackgroundColor:d,fallbackButtonBackgroundColor:m,fallbackTextColor:h,fontSize:f,isGradientAvailable:g,padding:b,setAttributes:k,setButtonBackgroundColor:v,setTextColor:y,showSubscribersTotal:E,spacing:w,subscriberCount:_,textColor:C,buttonWidth:x,successMessage:j}=e;return(0,r.createElement)(r.Fragment,null,g&&(0,r.createElement)(i.__experimentalPanelColorGradientSettings,{title:__("Color Settings","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",settings:[{colorValue:t.color,onColorChange:v,gradientValue:a.gradientValue,onGradientChange:a.setGradient,label:__("Button Background Color","jetpack")},{colorValue:C.color,onColorChange:y,label:__("Button Text Color","jetpack")},{colorValue:n.color,onColorChange:e=>{k({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!0},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),!g&&(0,r.createElement)(i.PanelColorSettings,{title:__("Background Colors","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",colorSettings:[{value:t.color,onChange:v,label:__("Button Background Color","jetpack")},{value:C.color,onChange:y,label:__("Button Text Color","jetpack")},{value:n.color,onColorChange:e=>{k({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!1},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),(0,r.createElement)(o.PanelBody,{title:__("Text Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__textpanel"},(0,r.createElement)(i.FontSizePicker,{withSlider:!0,value:f.size,onChange:e=>{const t=e||l.tm;k({fontSize:t,customFontSize:t})}})),(0,r.createElement)(o.PanelBody,{title:__("Border Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__borderpanel"},(0,r.createElement)(o.RangeControl,{value:c,label:__("Border Radius","jetpack"),min:l.G0,max:l.Gp,initialPosition:l.S9,allowReset:!0,onChange:e=>k({borderRadius:e})}),(0,r.createElement)(o.RangeControl,{value:u,label:__("Border Weight","jetpack"),min:l.VF,max:l.K3,initialPosition:l.XJ,allowReset:!0,onChange:e=>k({borderWeight:e})})),(0,r.createElement)(o.PanelBody,{title:__("Spacing Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__spacingpanel"},(0,r.createElement)(o.RangeControl,{value:b,label:__("Space Inside","jetpack"),min:l.xV,max:l.bK,initialPosition:l.HE,allowReset:!0,onChange:e=>k({padding:e})}),(0,r.createElement)(o.RangeControl,{value:w,label:__("Space Between","jetpack"),min:l.Tr,max:l.pC,initialPosition:l.FP,allowReset:!0,onChange:e=>k({spacing:e})}),(0,r.createElement)(s.h,{width:x,onChange:e=>k({buttonWidth:e})})),(0,r.createElement)(o.PanelBody,{title:__("Display Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__displaypanel"},(0,r.createElement)(o.ToggleControl,{label:__("Show subscriber count","jetpack"),checked:E,onChange:()=>{k({showSubscribersTotal:!E})},help:()=>{if(!_||_<1)return __("This will remain hidden on your website until you have at least one subscriber.","jetpack")}}),(0,r.createElement)(o.ToggleControl,{label:__("Place button on new line","jetpack"),checked:p,onChange:()=>{k({buttonOnNewLine:!p})}})),(0,r.createElement)(o.PanelBody,{title:__("Success Message Text","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__successpanel"},(0,r.createElement)(o.TextareaControl,{value:j,label:__("Success Message Text","jetpack"),hideLabelFromVision:!0,help:__("Save your custom message to display when a user subscribes your website.","jetpack"),onChange:e=>k({successMessage:e})})))}},58363:function(e,t,n){"use strict";var r=n(26233),a=n(80960),o=n(28897),i=n(73300),s=n(56286),l=n(16949);t.Z=[l.Z,s.Z,i.Z,o.Z,a.Z,r.Z]},26233:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(92819);const __=a.__;t.Z={attributes:{subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:e=>({submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal}),isEligible:e=>!(!e.hasOwnProperty("subscribeButton")||!(0,o.isEmpty)(e.subscribeButton)),save:function(e){let{attributes:t}=e;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_subscribers_total="${t.showSubscribersTotal}" show_only_email_and_button="true"]`)}}},80960:function(e,t,n){"use strict";var r=n(65736),a=n(51268);const __=r.__;t.Z={attributes:{subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},migrate:e=>({subscribePlaceholder:e.subscribePlaceholder,showSubscribersTotal:e.showSubscribersTotal,buttonOnNewLine:!0,submitButtonText:e.submitButtonText,buttonBackgroundColor:e.backgroundButtonColor?e.backgroundButtonColor:"primary",customButtonBackgroundColor:e.customBackgroundButtonColor,textColor:e.textButtonColor?e.textButtonColor:"background",customTextColor:e.customTextButtonColor}),save:a.Z}},51268:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{showSubscribersTotal:n,submitButtonClasses:a,customBackgroundButtonColor:o,customTextButtonColor:i,submitButtonText:s}=t;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="${o}" custom_text_button_color="${i}" submit_button_text="${s}" submit_button_classes="${a}" show_subscribers_total="${n}" ]`)}},80929:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Enter your email address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Sign Up","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"number"},customFontSize:{type:"number"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},69283:function(e,t,n){"use strict";n.d(t,{ZP:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(80929);function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const{subscribePlaceholder:o,showSubscribersTotal:l,buttonOnNewLine:c,submitButtonText:u,emailFieldBackgroundColor:p,customEmailFieldBackgroundColor:d,emailFieldGradient:m,customEmailFieldGradient:h,buttonBackgroundColor:f,customButtonBackgroundColor:g,buttonGradient:b,customButtonGradient:k,textColor:v,customTextColor:y,fontSize:E,customFontSize:w,borderRadius:_,borderWeight:C,borderColor:x,customBorderColor:j,padding:S,spacing:A}=t,N=!!a.__experimentalGetGradientClass,T=(0,a.getColorClassName)("color",v),P=(0,a.getFontSizeClass)(E),M=(0,a.getColorClassName)("border-color",x),I=(0,a.getColorClassName)("background-color",f),R=N?(0,a.__experimentalGetGradientClass)(b):void 0,L=(0,a.getColorClassName)("background-color",p),B=N?(0,a.__experimentalGetGradientClass)(m):void 0,F=i()(0===_?"no-border-radius":void 0,P,M),Z=i()(F,v?"has-text-color":void 0,T,f||b?"has-background":void 0,I,R),D=i()(F,L,B),O=!L&&h?h:d,z=!I&&k?k:g,$=()=>i()(e,"wp-block-jetpack-subscriptions__supports-newline",c?"wp-block-jetpack-subscriptions__use-newline":void 0,l?"wp-block-jetpack-subscriptions__show-subs":void 0);let U=o,V=u;return"check-text-defaults"===n&&(U=o===s.Z.subscribePlaceholder.default?"Enter your email address":o,V=u===s.Z.submitButtonText.default?"Sign Up":u),(0,r.createElement)("div",{className:$()},(0,r.createElement)(r.RawHTML,null,`\n\t\t\t[jetpack_subscription_form\n\t\t\t\tsubscribe_placeholder="${U}"\n\t\t\t\tshow_subscribers_total="${l}"\n\t\t\t\tbutton_on_newline="${c}"\n\t\t\t\tsubmit_button_text="${V}"\n\t\t\t\tcustom_background_emailfield_color="${O}"\n\t\t\t\tcustom_background_button_color="${z}"\n\t\t\t\tcustom_text_button_color="${y}"\n\t\t\t\tcustom_font_size="${w||16}"\n\t\t\t\tcustom_border_radius="${_||0}"\n\t\t\t\tcustom_border_weight="${C||1}"\n\t\t\t\tcustom_border_color="${j}"\n\t\t\t\tcustom_padding="${S||15}"\n\t\t\t\tcustom_spacing="${A||10}"\n\t\t\t\tsubmit_button_classes="${Z}"\n\t\t\t\temail_field_classes="${D}"\n\t\t\t\tshow_only_email_and_button="true"\n\t\t\t]`))}},28897:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n)}}},73300:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n,"check-text-defaults")}}},56286:function(e,t,n){"use strict";var r=n(80929),a=n(14556);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:a.ZP}},14556:function(e,t,n){"use strict";n.d(t,{ZP:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(80929);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:k,customButtonGradient:v,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:x,borderColor:j,customBorderColor:S,padding:A,spacing:N}=n,T=!!a.__experimentalGetGradientClass,P=(0,a.getColorClassName)("color",y),M=(0,a.getFontSizeClass)(w),I=(0,a.getColorClassName)("border-color",j),R=(0,a.getColorClassName)("background-color",g),L=T?(0,a.__experimentalGetGradientClass)(k):void 0,B=(0,a.getColorClassName)("background-color",d),F=T?(0,a.__experimentalGetGradientClass)(h):void 0,Z=i()(0===C?"no-border-radius":void 0,M,I),D=i()(Z,y?"has-text-color":void 0,P,g||k?"has-background":void 0,R,L),O=i()(Z,B,F),z=!B&&f?f:m,$=!R&&v?v:b,U={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:z,custom_background_button_color:$,custom_text_button_color:E,custom_font_size:_||16,custom_border_radius:C||0,custom_border_weight:x||1,custom_border_color:S,custom_padding:A||15,custom_spacing:N||10,submit_button_classes:D,email_field_classes:O,show_only_email_and_button:!0},V=(0,s.reduce)(U,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${V}]`))}},61798:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},16949:function(e,t,n){"use strict";var r=n(61798),a=n(75799);t.Z={attributes:r.Z,save:a.Z}},75799:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(61798);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:k,customButtonGradient:v,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:x,borderColor:j,customBorderColor:S,padding:A,spacing:N,buttonWidth:T}=n,P=!!a.__experimentalGetGradientClass,M=(0,a.getColorClassName)("color",y),I=(0,a.getFontSizeClass)(w),R=(0,a.getColorClassName)("border-color",j),L=(0,a.getColorClassName)("background-color",g),B=P?(0,a.__experimentalGetGradientClass)(k):void 0,F=(0,a.getColorClassName)("background-color",d),Z=P?(0,a.__experimentalGetGradientClass)(h):void 0,D=i()(0===C?"no-border-radius":void 0,I,R),O=i()(D,y?"has-text-color":void 0,M,g||k?"has-background":void 0,L,B),z=i()(D,F,Z),$=!F&&f?f:m,U=!L&&v?v:b,V=T||void 0,q={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:$,custom_background_button_color:U,custom_text_button_color:E,custom_font_size:_||"16px",custom_border_radius:C||0,custom_border_weight:x||1,custom_border_color:S,custom_button_width:V,custom_padding:A||15,custom_spacing:N||10,submit_button_classes:O,email_field_classes:z,show_only_email_and_button:!0},G=(0,s.reduce)(q,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${G}]`))}},73228:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(86989),l=n.n(s),c=n(65736),u=n(55609),p=n(52175),d=n(94333),m=n(79885),h=n(14087),f=n(87138),g=n(45643);const __=c.__,_n=c._n,{getComputedStyle:b}=window,k=!!p.__experimentalUseGradient,v=(0,u.withFallbackStyles)(((e,t)=>{const{buttonBackgroundColor:n,textColor:r}=t,a=n&&n.color,o=r&&r.color,i=e.querySelector(".wp-block-jetpack-subscriptions__button");return{fallbackButtonBackgroundColor:a||!e?void 0:i&&b(i).backgroundColor,fallbackTextColor:o||!e?void 0:i&&b(i).color}}));t.Z=(0,d.compose)([(0,p.withColors)({emailFieldBackgroundColor:"backgroundColor"},{buttonBackgroundColor:"backgroundColor"},{textColor:"color"},"borderColor"),(0,p.withFontSizes)("fontSize"),v])((function(e){const{className:t,attributes:n,setAttributes:a,emailFieldBackgroundColor:s,buttonBackgroundColor:d,setButtonBackgroundColor:b,fallbackButtonBackgroundColor:v,textColor:y,fallbackTextColor:E,setTextColor:w,borderColor:_,fontSize:C}=e,x=(0,h.S)(m.Z,n);(0,i.isEqual)(x,n)||a(x);const{borderRadius:j,borderWeight:S,buttonWidth:A,padding:N,spacing:T,submitButtonText:P,subscribePlaceholder:M,showSubscribersTotal:I,buttonOnNewLine:R,successMessage:L}=x,[B,F]=(0,r.useState)(""),[Z,D]=(0,r.useState)(""),O=k?(0,p.__experimentalUseGradient)({gradientAttribute:"emailFieldGradient",customGradientAttribute:"customEmailFieldGradient"}):{},z=k?(0,p.__experimentalUseGradient)({gradientAttribute:"buttonGradient",customGradientAttribute:"customButtonGradient"}):{},$={"no-border-radius":0===j,[C.class]:C.class,"has-text-color":y.color,[y.class]:y.class},U={...$,"has-background":s.color||O.gradientValue,[s.class]:!O.gradientValue&&s.class,[O.gradientClass]:O.gradientClass},V={...$,"has-background":d.color||z.gradientValue,[d.class]:!z.gradientValue&&d.class,[z.gradientClass]:z.gradientClass},q=e=>e||f.FP,G={color:y.color,borderColor:_.color,borderRadius:j?j+"px":f.S9+"px",borderWidth:S?S+"px":f.XJ+"px",fontSize:C.size?C.size:f.tm,padding:(e=>{const t=e||f.HE;return t+"px "+Math.round(1.5*t)+"px "+t+"px "+Math.round(1.5*t)+"px"})(N)},H={...G,...!s.color&&O.gradientValue?{background:O.gradientValue}:{backgroundColor:s.color}},W={...G,...!d.color&&z.gradientValue?{background:z.gradientValue}:{backgroundColor:d.color},...R?{marginTop:q(T)+"px"}:{marginLeft:q(T)+"px"},width:A};return(0,r.useEffect)((()=>{l()({path:"/wpcom/v2/subscribers/count"}).then((e=>{e.hasOwnProperty("count")?(F((0,c.sprintf)(
+/* translators: Placeholder is a number of subscribers. */
+_n("Join %s other subscriber","Join %s other subscribers",e.count,"jetpack"),e.count)),D(e.count)):(F(__("Subscriber count unavailable","jetpack")),D(0))}))}),[]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(p.InspectorControls,null,(0,r.createElement)(g.Z,{buttonBackgroundColor:d,borderColor:_,buttonGradient:z,borderRadius:j,borderWeight:S,buttonOnNewLine:R,emailFieldBackgroundColor:s,fallbackButtonBackgroundColor:v,fallbackTextColor:E,fontSize:C,isGradientAvailable:k,padding:N,setAttributes:a,setButtonBackgroundColor:b,setTextColor:w,showSubscribersTotal:I,spacing:T,subscriberCount:Z,textColor:y,buttonWidth:A,successMessage:L})),(0,r.createElement)("div",{className:o()(t,"wp-block-jetpack-subscriptions__supports-newline",R?"wp-block-jetpack-subscriptions__use-newline":void 0,I?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)("div",{className:"wp-block-jetpack-subscriptions__form",role:"form"},(0,r.createElement)(u.TextControl,{placeholder:M,disabled:!0,className:o()(U,"wp-block-jetpack-subscriptions__textfield"),style:H}),(0,r.createElement)(p.RichText,{className:o()(V,"wp-block-jetpack-subscriptions__button","wp-block-button__link"),onChange:e=>a({submitButtonText:e}),style:W,value:P,withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic","core/strikethrough"]})),I&&(0,r.createElement)("p",{className:"wp-block-jetpack-subscriptions__subscount"},B)))}))},57211:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(79885),l=n(58363),c=n(73228),u=n(5321),p=n(57535);const __=a.__,_x=a._x,d="subscriptions",m=(0,r.createElement)(o.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.Rect,{x:"4.75",y:"6.75",width:"14.5",height:"10.5",rx:"1.25",stroke:(0,p.m)(),strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(o.Path,{d:"M19 7L13.3609 12.2363C12.5935 12.9489 11.4065 12.9489 10.6391 12.2363L5 7",stroke:(0,p.m)(),strokeWidth:"1.5",strokeLinejoin:"bevel",fill:"none"})),h={title:__("Subscription Form","jetpack"),description:(0,r.createElement)("p",null,__("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:{src:m,foreground:(0,p.m)()},category:"grow",keywords:[_x("subscribe","block search term","jetpack"),_x("join","block search term","jetpack"),_x("follow","block search term","jetpack")],attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"blog_subscription"===t},transform:e=>{let{instance:t}=e;return(0,i.createBlock)("jetpack/subscriptions",{showSubscribersTotal:t.raw.show_subscribers_total,submitButtonText:t.raw.subscribe_button,subscribePlaceholder:t.raw.subscribe_placeholder,successMessage:t.raw.success_message})}}]},example:{attributes:{}},deprecated:l.Z}},5321:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(79885),c=n(87138);function u(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:u,buttonOnNewLine:p,submitButtonText:d,emailFieldBackgroundColor:m,customEmailFieldBackgroundColor:h,emailFieldGradient:f,customEmailFieldGradient:g,buttonBackgroundColor:b,customButtonBackgroundColor:k,buttonGradient:v,customButtonGradient:y,textColor:E,customTextColor:w,fontSize:_,customFontSize:C,borderRadius:x,borderWeight:j,borderColor:S,customBorderColor:A,padding:N,spacing:T,buttonWidth:P,successMessage:M}=n,I=!!a.__experimentalGetGradientClass,R=(0,a.getColorClassName)("color",E),L=(0,a.getFontSizeClass)(_),B=(0,a.getColorClassName)("border-color",S),F=(0,a.getColorClassName)("background-color",b),Z=I?(0,a.__experimentalGetGradientClass)(v):void 0,D=(0,a.getColorClassName)("background-color",m),O=I?(0,a.__experimentalGetGradientClass)(f):void 0,z=i()(0===x?"no-border-radius":void 0,L,B),$=i()(z,E?"has-text-color":void 0,R,b||v?"has-background":void 0,F,Z),U=i()(z,D,O),V=!D&&g?g:h,q=!F&&y?y:k,G=P||void 0,H={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:u,button_on_newline:p,submit_button_text:d!==l.Z.submitButtonText.default?d:void 0,custom_background_emailfield_color:V,custom_background_button_color:q,custom_text_button_color:w,custom_font_size:C||c.tm,custom_border_radius:x||c.S9,custom_border_weight:j||c.XJ,custom_border_color:A,custom_button_width:G,custom_padding:N||c.HE,custom_spacing:T||c.FP,submit_button_classes:$,email_field_classes:U,show_only_email_and_button:!0,success_message:M},W=(0,s.reduce)(H,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",p?"wp-block-jetpack-subscriptions__use-newline":void 0,u?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${W}]`))}},28526:function(e,t,n){"use strict";n.d(t,{RA:function(){return r},q3:function(){return a},hI:function(){return o},Z5:function(){return i},GP:function(){return s},xJ:function(){return l},sw:function(){return c},EU:function(){return u},yw:function(){return p},P0:function(){return d}});const r=["image"],a=4,o=20,i=20,s=2e3,l="circle",c="columns",u="rectangular",p="square",d=[{isDefault:!0,name:u},{name:l},{name:p},{name:c}]},70132:function(e,t,n){"use strict";var r=n(25689),a=n(47330),o=n(35660);t.Z=[o,a,r]},66105:function(e,t,n){"use strict";n.d(t,{q3:function(){return r},hI:function(){return a},GP:function(){return o},EU:function(){return i},P0:function(){return s}});const r=4,a=20,o=2e3,i="rectangular",s=[{isDefault:!0,name:i},{name:"circle"},{name:"square"},{name:"columns"}]},2589:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(11313);function o(e){const{"aria-label":t,alt:n,height:o,id:i,link:s,linkTo:l,origUrl:c,url:u,width:p}=e;if((0,a.isBlobURL)(c))return null;let d;switch(l){case"media":d=u;break;case"attachment":d=s}const m=(0,r.createElement)("img",{alt:n,"aria-label":t,"data-height":o,"data-id":i,"data-link":s,"data-url":c,"data-width":p,src:u});return(0,r.createElement)("figure",{className:"tiled-gallery__item"},d?(0,r.createElement)("a",{href:d},m):m)}},25689:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return r.Z},attributes:function(){return a},support:function(){return o}});var r=n(19092);const a={align:{default:"center",type:"string"},className:{default:`is-style-${n(66105).EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},o={align:["center","wide","full"],customClassName:!1,html:!1}},43064:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},7696:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},17357:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(40278),o=n(65736),i=n(82827),s=n(11313),l=n(2589),c=n(1077),u=n(47536),p=n(66105);const __=o.__;class d extends r.Component{photonize(e){let{height:t,width:n,url:r}=e;if(!r)return;if((0,s.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;const o=r.split("?",1)[0],l=function(e){const{host:t}=(0,i.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}(r)?h:a.Z,{layoutStyle:c}=this.props;if(m(c)&&n&&t){const e=Math.min(p.GP,n,t);return l(o,{resize:`${e},${e}`})}return l(o)}renderImage(e,t){const{images:n,linkTo:a,selectedImage:i}=this.props,s=(0,o.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,n.length);return(0,r.createElement)(l.Z,{alt:e.alt,"aria-label":s,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:i}=this.props,s=m(i)?u.Z:c.Z,l=this.props.images.map(this.renderImage,this);return(0,r.createElement)("div",{className:n},(0,r.createElement)(s,{align:e,columns:a,images:o,layoutStyle:i,renderedImages:l}),t)}}function m(e){return["circle","square"].includes(e)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:a,port:o,query:s,search:l,...c}=(0,i.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,i.WU)(c)}},1077:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(43064),l=n(7696),c=n(8292),u=n(37335),p=n(54794);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t;(0,u.W)(n).forEach((t=>(0,u.i)(t,e)))}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,i=(0,p.h9)(n),u="columns"===r?(0,p.sv)(i,t):(0,p.T9)(i,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},u.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(s.Z,{key:t},n)}))))))}}},54794:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return x}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=A([2,1,2],5),l=N([T,T,P,T,T]),c=N([T,T,T,P,T,T,T]),u=A([3,1,3],5),p=N([P,T,T,P]),d=A([1,2,1],5),m=N([P,T,T,T]),h=A([1,3],3),f=N([T,T,T,P]),g=A([3,1],3),b=N([I(1.6),(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2))]),k=A([1,2],3),v=A([1,1,1,1,1],1),y=A([1,1,1,1],1),E=A([1,1,1],3),w=N([(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2)),I(1.6)]),_=A([2,1],3),C=N([function(e){return e>=2}]);function x(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&k(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&v(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:S(e,a)?[1,1,1,1]:j(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function j(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function S(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function A(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function T(e){return e>=1&&e<2}function P(e){return e<1}function M(e){return t=>t>=e}function I(e){return t=>t<e}},37335:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(66105);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){!function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);!function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},8292:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},47536:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8292),i=n(43064),s=n(7696),l=n(66105);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},19092:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(17357),o=n(98085),i=n(66105);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{images:n}=t;if(!n.length)return null;const{align:l,className:c,columns:u=s(t),linkTo:p}=t;return(0,r.createElement)(a.Z,{align:l,className:c,columns:u,images:n,layoutStyle:(0,o.t)(i.P0,c),linkTo:p})}},96470:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},72285:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},47330:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i}});var r=n(96470),a=n(96659);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1}},71410:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},86159:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},15515:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(72285),l=n(56556),c=n(14916),u=n(92805),p=n(96470);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,linkTo:l,layoutStyle:c,selectedImage:p}=this.props,d=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:m,srcSet:h}=(0,u.z)(e,{layoutStyle:c});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":d,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:p===t,key:t,link:e.link,linkTo:l,origUrl:e.url,showMovers:i.length>1,srcSet:h,url:m,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d}=this.props,m=(0,u.v)(s)?c.Z:l.Z,h=this.props.images.map(this.renderImage,this),f=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${f}`]:f>0})},(0,r.createElement)(m,{align:e,columns:a,images:o,layoutStyle:s,renderedImages:h}),t)}}},56556:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(71410),s=n(86159),l=n(8955),c=n(9972);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,u=(0,c.h9)(n),p="columns"===r?(0,c.sv)(u,t):(0,c.T9)(u,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},p.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(i.Z,{key:t},n)}))))))}}},9972:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return x}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=A([2,1,2],5),l=N([T,T,P,T,T]),c=N([T,T,T,P,T,T,T]),u=A([3,1,3],5),p=N([P,T,T,P]),d=A([1,2,1],5),m=N([P,T,T,T]),h=A([1,3],3),f=N([T,T,T,P]),g=A([3,1],3),b=N([I(1.6),(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2))]),k=A([1,2],3),v=A([1,1,1,1,1],1),y=A([1,1,1,1],1),E=A([1,1,1],3),w=N([(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2)),I(1.6)]),_=A([2,1],3),C=N([function(e){return e>=2}]);function x(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&k(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&v(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:S(e,a)?[1,1,1,1]:j(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function j(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function S(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function A(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function T(e){return e>=1&&e<2}function P(e){return e<1}function M(e){return t=>t>=e}function I(e){return t=>t<e}},8955:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},14916:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8955),i=n(71410),s=n(86159),l=n(96470);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},96659:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(15515),o=n(98085),i=n(96470);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m})}},92805:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(96470);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let k;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);k=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);k=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},k&&{srcSet:k})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},30154:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},7214:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},35660:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i},migrate:function(){return s}});var r=n(30154),a=n(2387);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1},s=e=>{const t=Math.pow(10,5);return{...e,columnWidths:e.columnWidths.map((e=>e.map((e=>Math.round(e*t)/t))))}}},62940:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=Math.pow(10,12),o=Math.round(n*a)/a,i=n?{flexBasis:`${o}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:i},t)}},68742:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},62108:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(7214),l=n(34506),c=n(85185),u=n(60185),p=n(30154);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:l,linkTo:c,layoutStyle:p,onMoveBackward:d,onMoveForward:m,onRemoveImage:h,onSelectImage:f,selectedImage:g,setImageAttributes:b}=this.props,k=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:v,srcSet:y}=(0,u.z)(e,{layoutStyle:p});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":k,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:g===t,key:t,link:e.link,linkTo:c,onMoveBackward:l?void 0:d(t),onMoveForward:l?void 0:m(t),onRemove:l?void 0:h(t),onSelect:l?void 0:f(t),origUrl:e.url,setAttributes:l?void 0:b(t),showMovers:i.length>1,srcSet:y,url:v,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,u.v)(s)?c.Z:l.Z,b=this.props.images.map(this.renderImage,this),k=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${k}`]:k>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},34506:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(62940),s=n(68742),l=n(7930),c=n(58174);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:u}=this.props,p=(0,c.h9)(n),d="columns"===r?(0,c.sv)(p,t):(0,c.T9)(p,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(i.Z,{key:n,width:u?.[t]?.[n]},r)}))))))}}},58174:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return x}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=A([2,1,2],5),l=N([T,T,P,T,T]),c=N([T,T,T,P,T,T,T]),u=A([3,1,3],5),p=N([P,T,T,P]),d=A([1,2,1],5),m=N([P,T,T,T]),h=A([1,3],3),f=N([T,T,T,P]),g=A([3,1],3),b=N([I(1.6),(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2))]),k=A([1,2],3),v=A([1,1,1,1,1],1),y=A([1,1,1,1],1),E=A([1,1,1],3),w=N([(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2)),I(1.6)]),_=A([2,1],3),C=N([function(e){return e>=2}]);function x(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&k(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&v(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:S(e,a)?[1,1,1,1]:j(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function j(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function S(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function A(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function T(e){return e>=1&&e<2}function P(e){return e<1}function M(e){return t=>t>=e}function I(e){return t=>t<e}},7930:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},85185:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(7930),i=n(62940),s=n(68742),l=n(30154);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},2387:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(62108),o=n(98085),i=n(30154);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},60185:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(30154);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let k;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);k=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);k=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},k&&{srcSet:k})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},86655:function(e,t,n){"use strict";n.d(t,{F:function(){return k}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(52175),c=n(12238),u=n(55609),p=n(41451),d=n(6624),m=n(28526),h=n(98085),f=n(80349),g=n(58703);const __=i.__,b=[{value:"attachment",label:__("Attachment Page","jetpack")},{value:"media",label:__("Media File","jetpack")},{value:"none",label:__("None","jetpack")}];function k(e){return Math.min(3,e.images.length)}const v=e=>{const t=(0,s.pick)(e,[["alt"],["id"],["link"]]);return t.url=(0,s.get)(e,["sizes","large","url"])||(0,s.get)(e,["media_details","sizes","large","source_url"])||e.url,t};class y extends o.Component{constructor(){super(...arguments),a()(this,"state",{selectedImage:null,changed:void 0===this.props.attributes.columnWidths||0===this.props.attributes.columnWidths?.length}),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],{noticeOperations:n}=this.props;(0,c.mediaUpload)({allowedTypes:m.RA,filesList:e,onFileChange:e=>{const n=e.map((e=>v(e)));this.setAttributes({images:t.concat(n)})},onError:n.createErrorNotice}),this.setState({changed:!0})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,s.filter)(this.props.attributes.images,((t,n)=>e!==n)),{columns:n}=this.props.attributes;this.setState({selectedImage:null,changed:!0}),this.setAttributes({images:t,columns:n?Math.min(t.length,n):n})})),a()(this,"onSelectImage",(e=>()=>{this.state.selectedImage!==e&&this.setState({selectedImage:e})})),a()(this,"onSelectImages",(e=>{const{columns:t}=this.props.attributes;this.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((e=>v(e)))}),this.setState({changed:!0})})),a()(this,"onMove",((e,t)=>{const n=[...this.props.attributes.images];n.splice(t,1,this.props.attributes.images[e]),n.splice(e,1,this.props.attributes.images[t]),this.setState({selectedImage:t,changed:!0}),this.setAttributes({images:n})})),a()(this,"onMoveForward",(e=>()=>{e!==this.props.attributes.images.length-1&&this.onMove(e,e+1)})),a()(this,"onMoveBackward",(e=>()=>{0!==e&&this.onMove(e,e-1)})),a()(this,"onResize",(e=>{this.state.changed&&this.setAttributes({columnWidths:e})})),a()(this,"setColumnsNumber",(e=>this.setAttributes({columns:e}))),a()(this,"setRoundedCorners",(e=>this.setAttributes({roundedCorners:e}))),a()(this,"setImageAttributes",(e=>t=>{const{attributes:{images:n}}=this.props;n[e]&&this.setAttributes({images:[...n.slice(0,e),{...n[e],...t},...n.slice(e+1)]})})),a()(this,"setLinkTo",(e=>this.setAttributes({linkTo:e}))),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files)))}static getDerivedStateFromProps(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}render(){const{selectedImage:e}=this.state,{attributes:t,isSelected:n,className:r,noticeOperations:a,noticeUI:i,setAttributes:s}=this.props,{align:c,columns:v=k(t),imageFilter:y,images:E,linkTo:w,roundedCorners:_}=t,C=(0,o.createElement)(u.DropZone,{onFilesDrop:this.addFiles}),x=(0,o.createElement)(l.BlockControls,null,!!E.length&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.ToolbarGroup,null,(0,o.createElement)(u.ToolbarItem,null,(()=>(0,o.createElement)(l.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:m.RA,multiple:!0,gallery:!0,value:E.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,o.createElement)(g.Z,{label:__("Edit Gallery","jetpack"),onClick:t})}})))),(0,o.createElement)(p.Z,{value:y,onChange:e=>{s({imageFilter:e}),this.setState({selectedImage:null})}})));if(0===E.length)return(0,o.createElement)(o.Fragment,null,x,(0,o.createElement)(l.MediaPlaceholder,{icon:(0,o.createElement)(l.BlockIcon,{icon:f.qv}),className:r,labels:{title:__("Tiled Gallery","jetpack"),name:__("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:m.RA,multiple:!0,notices:i,onError:a.createErrorNotice}));const j=(0,h.t)(m.P0,t.className);return(0,o.createElement)(o.Fragment,null,x,(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(u.PanelBody,{title:__("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(j)&&E.length>1&&(0,o.createElement)(u.RangeControl,{label:__("Columns","jetpack"),value:v,onChange:this.setColumnsNumber,min:1,max:Math.min(m.hI,E.length)}),j!==m.xJ&&(0,o.createElement)(u.RangeControl,{label:__("Rounded corners","jetpack"),value:_,onChange:this.setRoundedCorners,min:0,max:m.Z5}),(0,o.createElement)(u.SelectControl,{label:__("Link To","jetpack"),value:w,onChange:this.setLinkTo,options:b}))),i,(0,o.createElement)(d.Z,{align:c,className:r,columns:v,imageFilter:y,images:E,layoutStyle:j,linkTo:w,onMoveBackward:this.onMoveBackward,onMoveForward:this.onMoveForward,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,onResize:this.onResize,roundedCorners:_,selectedImage:n?e:null,setImageAttributes:this.setImageAttributes},C,n&&(0,o.createElement)("div",{className:"tiled-gallery__add-item"},(0,o.createElement)(u.FormFileUpload,{multiple:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack")))))}}t.ZP=(0,u.withNotices)(y)},41451:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_x=a._x,i=[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Original","image style","jetpack"),value:void 0},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Black and White","image style","jetpack"),value:"black-and-white"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:_x("Sepia","image style","jetpack"),value:"sepia"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Clarendon","image style","jetpack"),value:"clarendon"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:_x("Gingham","image style","jetpack"),value:"gingham"}],s=__("Pick an image filter","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:s,tooltip:s,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},i.map((e=>{let{icon:i,title:s,value:l}=e;return(0,r.createElement)(o.MenuItem,{className:t===l?"is-active":void 0,icon:i,isSelected:t===l,key:l||"original",onClick:(c=l,()=>{n(t===c?void 0:c),a()}),role:"menuitemcheckbox"},s);var c})))}})}},79906:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(39630),u=n(55609),p=n(11313),d=n(9818),m=n(9512);const __=l.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"img",(0,o.createRef)()),a()(this,"onImageClick",(()=>{this.props.isSelected||this.props.onSelect()})),a()(this,"onImageKeyDown",(e=>{this.img.current===document.activeElement&&this.props.isSelected&&[c.BACKSPACE,c.DELETE].includes(e.keyCode)&&this.props.onRemove()}))}componentDidUpdate(){const{alt:e,height:t,image:n,link:r,url:a,width:o}=this.props;if(n){const i={};!e&&n.alt_text&&(i.alt=n.alt_text),!t&&n.media_details&&n.media_details.height&&(i.height=+n.media_details.height),!r&&n.link&&(i.link=n.link),!a&&n.source_url&&(i.url=n.source_url),!o&&n.media_details&&n.media_details.width&&(i.width=+n.media_details.width),Object.keys(i).length&&this.props.setAttributes(i)}}render(){const{"aria-label":e,alt:t,columns:n,height:r,id:a,imageFilter:i,isFirstItem:l,isLastItem:c,isSelected:d,link:h,linkTo:f,onMoveBackward:g,onMoveForward:b,onRemove:k,origUrl:v,showMovers:y,srcSet:E,url:w,width:_}=this.props;let C;switch(f){case"media":C=w;break;case"attachment":C=h}const x=(0,p.isBlobURL)(v),j=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("img",{alt:t,"aria-label":e,"data-height":r,"data-id":a,"data-link":h,"data-url":v,"data-width":_,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:x?void 0:w,srcSet:x?void 0:E,tabIndex:"0",style:x?{backgroundImage:`url(${v})`}:void 0}),x&&(0,o.createElement)(u.Spinner,null));return(0,o.createElement)("figure",{className:s()("tiled-gallery__item",{"is-selected":d,"is-transient":x,[`filter__${i}`]:!!i})},y&&(0,o.createElement)("div",{className:"tiled-gallery__item__move-menu"},(0,o.createElement)(u.Button,{icon:1===n?m.WO:m.KT,onClick:l?void 0:g,className:"tiled-gallery__item__move-backward",label:__("Move image backward","jetpack"),"aria-disabled":l,disabled:!d}),(0,o.createElement)(u.Button,{icon:1===n?m.xf:m.zz,onClick:c?void 0:b,className:"tiled-gallery__item__move-forward",label:__("Move image forward","jetpack"),"aria-disabled":c,disabled:!d})),(0,o.createElement)("div",{className:"tiled-gallery__item__inline-menu"},(0,o.createElement)(u.Button,{icon:m.xv,onClick:k,className:"tiled-gallery__item__remove",label:__("Remove image","jetpack"),disabled:!d})),C?(0,o.createElement)("a",null,j):j)}}t.Z=(0,d.withSelect)(((e,t)=>{const{getMedia:n}=e("core"),{id:r}=t;return{image:r?n(r):null}}))(h)},97671:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p,"data-amp-layout":"responsive"});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},9512:function(e,t,n){"use strict";n.d(t,{KT:function(){return o},zz:function(){return i},xf:function(){return s},WO:function(){return l},xv:function(){return c}});var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M5 8.70002L10.6 14.4L12 12.9L7.8 8.70002L12 4.50002L10.6 3.00002L5 8.70002Z"})),i=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M13 8.7L7.4 3L6 4.5L10.2 8.7L6 12.9L7.4 14.4L13 8.7Z"})),s=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"})),l=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"})),c=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"-2 -2 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z"}))},80349:function(e,t,n){"use strict";n.d(t,{u2:function(){return j},qv:function(){return S},Xd:function(){return A}});var r=n(69307),a=n(65736),o=n(4981),i=n(92819),s=n(55609),l=n(86655),c=n(57713),u=n(28526),p=n(58014),d=n(57535),m=n(20510),h=n(70132),f=n(96606),g=n(85472),b=n(79009),k=n(10742),v=n(52642),y=n(41145);const __=a.__,_x=a._x,E={[u.EU]:_x("Tiled mosaic","Tiled gallery layout","jetpack"),[u.xJ]:_x("Circles","Tiled gallery layout","jetpack"),[u.sw]:_x("Tiled columns","Tiled gallery layout","jetpack"),[u.yw]:_x("Square tiles","Tiled gallery layout","jetpack")},w=u.P0.map((e=>({...e,label:E[e.name]})));function _(e){return(0,i.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const C={align:{default:"center",type:"string"},className:{default:`is-style-${u.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},x={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:f,width:160,height:95},{alt:"",link:"",url:g,width:160,height:107},{alt:"",link:"",url:b,width:304,height:203},{alt:"",link:"",url:k,width:312,height:207},{alt:"",link:"",url:v,width:152,height:101},{alt:"",link:"",url:y,width:152,height:105}],linkTo:"none"},j="tiled-gallery",S=(0,r.createElement)(s.SVG,{viewBox:"0 0 24 24",width:24,height:24},(0,r.createElement)(s.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),A={attributes:C,category:(0,m.Z)("media","layout"),description:__("Display multiple images in an elegantly organized tiled layout.","jetpack")+((0,p.Wp)()?"":" "+__("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:{src:S,foreground:(0,d.m)()},keywords:[_x("columns","block search term","jetpack"),_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("square","block search term","jetpack"),_x("circle","block search term","jetpack"),_x("mosaic","block search term","jetpack")],styles:w,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:__("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>_(e).length>0,transform:e=>{const t=_(e);return(0,o.createBlock)(`jetpack/${j}`,{images:t.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:e=>{let{images:t}=e;const n=_(t);return n.length>0?(0,o.createBlock)(`jetpack/${j}`,{images:n.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,o.createBlock)(`jetpack/${j}`)}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n,columns:r,linkTo:a}=e;return(0,o.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:e=>{let{align:t,images:n}=e;return n.length>0?n.map((e=>{let{id:n,url:r,alt:a}=e;return(0,o.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):(0,o.createBlock)("core/image")}}]},edit:l.ZP,save:c.Z,deprecated:h.Z,example:{attributes:x}}},64597:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=n?{flexBasis:`${n}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:a},t)}},31766:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},6624:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(79906),l=n(97671),c=n(83958),u=n(92870),p=n(5968),d=n(28526);const __=a.__;class m extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:c,linkTo:u,layoutStyle:d,onMoveBackward:m,onMoveForward:h,onRemoveImage:f,onSelectImage:g,selectedImage:b,setImageAttributes:k}=this.props,v=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),y=c?l.Z:s.Z,{src:E,srcSet:w}=(0,p.z)(e,{layoutStyle:d});return(0,r.createElement)(y,{alt:e.alt,"aria-label":v,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:b===t,key:t,link:e.link,linkTo:u,onMoveBackward:c?void 0:m(t),onMoveForward:c?void 0:h(t),onRemove:c?void 0:f(t),onSelect:c?void 0:g(t),origUrl:e.url,setAttributes:c?void 0:k(t),showMovers:i.length>1,srcSet:w,url:E,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:l,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,p.v)(s)?u.Z:c.Z,b=this.props.images.map(this.renderImage,this),k=s!==d.xJ?Math.min(l,d.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${k}`]:k>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},83958:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(64597),l=n(31766),c=n(92212),u=n(17265),p=n(58731);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t,r=[];(0,u.W)(n).forEach((t=>{r.push((0,u.i)(t,e))})),void 0!==this.props.onResize&&this.props.onResize(r)}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:i}=this.props,u=(0,p.h9)(n),d="columns"===r?(0,p.sv)(u,t):(0,p.T9)(u,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(s.Z,{key:n,width:i?.[t]?.[n]},r)}))))))}}},58731:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return x}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=A([2,1,2],5),l=N([T,T,P,T,T]),c=N([T,T,T,P,T,T,T]),u=A([3,1,3],5),p=N([P,T,T,P]),d=A([1,2,1],5),m=N([P,T,T,T]),h=A([1,3],3),f=N([T,T,T,P]),g=A([3,1],3),b=N([I(1.6),(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2))]),k=A([1,2],3),v=A([1,1,1,1,1],1),y=A([1,1,1,1],1),E=A([1,1,1],3),w=N([(0,r.overEvery)(M(.9),I(2)),(0,r.overEvery)(M(.9),I(2)),I(1.6)]),_=A([2,1],3),C=N([function(e){return e>=2}]);function x(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&k(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&v(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:S(e,a)?[1,1,1,1]:j(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function j(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function S(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function A(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function T(e){return e>=1&&e<2}function P(e){return e<1}function M(e){return t=>t>=e}function I(e){return t=>t<e}},17265:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(28526);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){return function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);return function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}));return d.map((e=>parseFloat(e/o*100).toFixed(5)))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},92212:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},92870:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(92212),i=n(64597),s=n(31766),l=n(28526);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},57713:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(6624),o=n(86655),i=n(98085),s=n(28526);function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=(0,o.F)(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,i.t)(s.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},5968:function(e,t,n){"use strict";n.d(t,{v:function(){return u},z:function(){return p}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(28526),l=n(58014),c=n(47077);function u(e){return["circle","square"].includes(e)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.width)return e.url?{src:e.url}:{};if((0,c.Z)())return{src:e.url};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url)||(0,l.Ug)()&&(0,l.M6)())return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:p}=e,{layoutStyle:f}=t,g=m(n)||!0===d()?h:r.Z;let b;if(u(f)&&p&&a){const e=Math.min(s.GP,p,a);b=g(n,{resize:`${e},${e}`})}else b=g(n);const k=300,v=600;let y;if(u(f)){const e=Math.min(v,p,a),t=Math.min(s.GP,p,a);y=(0,i.range)(e,t,k).map((e=>{const t=g(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(v,p),t=Math.min(s.GP,p);y=(0,i.range)(e,t,k).map((e=>{const t=g(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:b},y&&{srcSet:y})}function d(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function m(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},96816:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});const r=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}]},71486:function(e,t,n){"use strict";var r=n(70124);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:r.Z,isDeprecation:!0}},70124:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{caption:n,guid:o}=t;if(!o)return null;const i=`https://videopress.com/v/${o}`;return(0,r.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${i}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},4207:function(e,t,n){"use strict";var r=n(30663),a=n(7332);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"},videoPressClassNames:{type:"string"},align:{type:"wide"}},support:{reusable:!1},isEligible:e=>{let{videoPressClassNames:t,guid:n}=e;return n&&void 0===t},migrate:e=>{const{className:t,videoPressClassNames:n}=e;return{...e,...(0,a.a)(t,n)}},save:r.Z,isDeprecation:!0}},30663:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(10198);function i(e){const{attributes:{autoplay:t,caption:n,controls:i,guid:s,loop:l,muted:c,poster:u,preload:p,videoPressClassNames:d}={}}=e;if(!s)return null;const m=(0,o.p)(s,{autoplay:t,controls:i,loop:l,muted:c,poster:u,preload:p});return(0,r.createElement)("figure",{className:d},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${m}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},10198:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,poster:s,preload:l}=t;if(!e)return null;const c={...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{posterUrl:s},..."none"!==l&&{preloadContent:l}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,c)}},7332:function(e,t,n){"use strict";n.d(t,{a:function(){return l}});var r=n(81326),a=n.n(r),o=n(29512),i=n.n(o);const s=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}],l=(e,t)=>{const n=s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1}),r=a()(e,{...n,"wp-block-embed":!1,"is-type-video":!1,"is-provider-videopress":!1}),o=new(i())(r);let l=a()(e,t);return o.forEach((e=>{l=l.replace(e,"")})),{className:r,videoPressClassNames:l.trim()}}},3082:function(e,t,n){"use strict";var r=n(38225);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},videoPressClassNames:{type:"string"}},support:{reusable:!1},isEligible:e=>e.guid,save:r.Z,isDeprecation:!0}},38225:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(14842);function l(e){const{attributes:{autoplay:t,caption:n,controls:o,guid:l,loop:c,muted:u,playsinline:p,poster:d,preload:m,videoPressClassNames:h,className:f,align:g,seekbarColor:b,seekbarPlayedColor:k,seekbarLoadingColor:v}={}}=e,y=a.useBlockProps.save({className:i()("wp-block-video",f,h,{[`align${g}`]:g})}),E=(0,s.p)(l,{autoplay:t,controls:o,loop:c,muted:u,playsinline:p,poster:d,preload:m,seekbarColor:b,seekbarPlayedColor:k,seekbarLoadingColor:v});return(0,r.createElement)("figure",y,(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${E}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},14842:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d}=t;if(!e)return null;const m={resizeToParent:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,m)}},6976:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(11313),p=n(55609),d=n(94333),m=n(9818),h=n(52175),f=n(65736),g=n(22607),b=n(41221),k=n(89105),v=n.n(k),y=n(92819),E=n(38341),w=n(45151),_=n(43501),C=n(72905),x=n(9360);const __=f.__,_x=f._x,j=["image"],S=e=>{const{html:t,scripts:n,interactive:r,caption:a,isSelected:o,hideOverlay:i,attributes:l,setAttributes:c}=e,{align:u,className:d,videoPressClassNames:m,maxWidth:f}=l,g=(0,h.useBlockProps)({className:v()("wp-block-video",d,m,{[`align${u}`]:u})});return(0,s.createElement)("figure",g,(0,s.createElement)("div",{className:"wp-block-embed__wrapper"},(0,s.createElement)(p.ResizableBox,{enable:{top:!1,bottom:!1,left:!0,right:!0},maxWidth:"100%",size:{width:f},style:{margin:"auto"},onResizeStop:(e,t,n)=>{let r=getComputedStyle(n).width;if(null!==n.parentElement){r===getComputedStyle(n.parentElement).width&&(r="100%")}c({maxWidth:r})}},(0,s.createElement)(p.SandBox,{html:t,scripts:n,type:m}))),!r&&(0,s.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:i}),(!h.RichText.isEmpty(a)||o)&&(0,s.createElement)(h.RichText,{tagName:"figcaption",placeholder:__("Write caption…","jetpack"),value:a,onChange:e=>c({caption:e}),inlineToolbar:!0}))};t.Z=(0,d.createHigherOrderComponent)((0,d.compose)([(0,m.withSelect)(((e,t)=>{const{autoplay:n,controls:r,guid:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,src:h,useAverageColor:f}=t.attributes,{getEmbedPreview:g,isRequestingEmbedPreview:b}=e("core"),k=(0,w.p)(a,{autoplay:n,controls:r,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,useAverageColor:f}),v=!!k&&g(k);return{isFetchingPreview:!!k&&b(k),isUploading:(0,u.isBlobURL)(h),preview:v,url:k}})),(0,m.withDispatch)((e=>({invalidateCachedEmbedPreview:t=>{e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}))),d.withInstanceId,e=>class extends s.Component{constructor(){super(...arguments),i()(this,"hideOverlay",(()=>{this.setState({interactive:!0})})),i()(this,"setRatingAndAllowDownload",(async()=>{const e=(0,y.get)(this.props,"attributes.id"),t=await this.requestMedia(e);let n=(0,y.get)(t,"jetpack_videopress.rating");const r=(0,y.get)(t,"media_details.videopress.allow_download");n&&("X-18"===n&&(n="R-17"),this.setState({rating:n})),void 0!==r&&this.setState({allowDownload:!!r})})),i()(this,"schedulePreviewCacheReload",(()=>{const{invalidateCachedEmbedPreview:e,url:t}=this.props;null===this.previewCacheReloadTimer&&this.previewFailuresCount<5&&(this.previewFailuresCount++,this.previewCacheReloadTimer=setTimeout((()=>{e(t),this.previewCacheReloadTimer=null}),2e3*this.previewFailuresCount))})),i()(this,"fallbackToCore",(()=>{this.props.setAttributes({guid:void 0}),this.setState({fallback:!0})})),i()(this,"setGuid",(async()=>{const{attributes:e,setAttributes:t}=this.props,{id:n}=e;if(n)try{const e=await this.requestMedia(n);if(null===e)return;const r=(0,y.get)(e,"jetpack_videopress.guid");r?(t({guid:r}),this.setTracks(r)):this.fallbackToCore()}catch(e){this.setState({isFetchingMedia:!1}),this.fallbackToCore()}else t({guid:void 0})})),i()(this,"requestMedia",(async e=>{if(!e)return null;if(null!==this.state.media&&this.state.lastRequestedMediaId===e)return this.state.media;this.setState({isFetchingMedia:!0});const t=await c()({path:`/wp/v2/media/${e}`}).catch((()=>(this.setState({fallback:!0}),null))).finally((()=>{this.setState({isFetchingMedia:!1})})),{id:n}=this.props.attributes;return e!==n?null:(this.setState({media:t,lastRequestedMediaId:e}),t)})),i()(this,"setTracks",(e=>{const{setAttributes:t}=this.props;e&&c()({url:`https://public-api.wordpress.com/rest/v1.1/videos/${e}`,credentials:"omit",global:!0}).then((e=>{const n=[];Object.keys(e.tracks).forEach((t=>{for(const r in e.tracks[t]){const a=e.tracks[t][r];n.push({src:a.src,kind:t,srcLang:r,label:a.label})}})),t({videoPressTracks:n})}))})),i()(this,"switchToEditing",(()=>{this.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),i()(this,"onSelectPoster",(e=>{const{setAttributes:t}=this.props;t({poster:e.url})})),i()(this,"onRemovePoster",(()=>{const{setAttributes:e}=this.props;e({poster:""}),this.posterImageButton.current.focus()})),i()(this,"toggleAttribute",(e=>t=>{this.props.setAttributes({[e]:t})})),i()(this,"getAutoplayHelp",(e=>e?__("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null)),i()(this,"onChangeRating",(e=>{const t=this.state.rating;"X-18"===e&&(e="R-17"),-1!==(0,y.indexOf)(["G","PG-13","R-17"],e)&&this.updateMetaApiCall({rating:e},(()=>this.setState({isUpdatingRating:!0,rating:e})),(()=>this.setState({rating:t})),(()=>this.setState({isUpdatingRating:!1})))})),i()(this,"onChangeAllowDownload",(e=>{const t=this.state.allowDownload;this.updateMetaApiCall({allow_download:e?1:0},(()=>this.setState({isUpdatingAllowDownload:!0,allowDownload:e})),(()=>this.setState({allowDownload:t})),(()=>this.setState({isUpdatingAllowDownload:!1})))})),i()(this,"updateMetaApiCall",((e,t,n,r)=>{const{invalidateCachedEmbedPreview:a,url:o}=this.props,{id:i}=this.props.attributes;if(!i)return;t();const s={id:i};Object.assign(s,e),c()({path:"/wpcom/v2/videopress/meta",method:"POST",data:s}).then((e=>{status in e&&200!==e.status&&n()})).catch((()=>n())).finally((()=>{r(),a(o)}))})),this.state={media:null,isFetchingMedia:!1,fallback:!1,interactive:!1,rating:null,lastRequestedMediaId:null,isUpdatingRating:!1,allowDownload:null,isUpdatingAllowDownload:!1},this.posterImageButton=(0,s.createRef)(),this.previewCacheReloadTimer=null,this.previewFailuresCount=0}static getDerivedStateFromProps(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}async componentDidMount(){const{guid:e}=this.props.attributes;e?this.setTracks(e):await this.setGuid(),this.setRatingAndAllowDownload()}async componentDidUpdate(e){const{attributes:t,invalidateCachedEmbedPreview:n,preview:r,setAttributes:a,url:o,isFetchingPreview:i}=this.props;t.id!==e.attributes.id&&(await this.setGuid(),this.setRatingAndAllowDownload());let s=!1;if(o&&o!==e.url&&(n(o),s=!0),r){const e=(0,_.f)(r.html,v()("wp-block-embed","is-type-video","is-provider-videopress"),!1);this.previewFailuresCount=0,a({videoPressClassNames:e})}else i||s||!this.props.attributes.guid||this.schedulePreviewCacheReload()}getPreloadHelp(){const{attributes:e}=this.props;return"auto"===e.preload?__("Note: Automatically downloading videos may cause issues if there are many videos displayed on the same page.","jetpack"):null}renderControlLabelWithTooltip(e,t){return(0,s.createElement)(p.Tooltip,{text:t,position:"top"},(0,s.createElement)("span",null,e))}render(){const{attributes:t,instanceId:n,isFetchingPreview:r,isUploading:o,preview:i,setAttributes:l}=this.props,{fallback:c,isFetchingMedia:u,isUpdatingRating:d,interactive:m,rating:k,allowDownload:v,isUpdatingAllowDownload:y}=this.state,{autoplay:w,caption:_,controls:A,guid:N,loop:T,muted:P,playsinline:M,poster:I,preload:R,useAverageColor:L,videoPressTracks:B,isVideoPressExample:F,src:Z}=t;if(F&&Z)return(0,s.createElement)("img",{src:Z,alt:_});const D=`video-block__poster-image-description-${n}`,O=(0,s.createElement)(s.Fragment,null,(0,s.createElement)(h.BlockControls,{group:"block"},(0,s.createElement)(x.Z,{tracks:B,onChange:e=>{l({videoPressTracks:e})},guid:N})),(0,s.createElement)(h.BlockControls,null,(0,s.createElement)(p.ToolbarGroup,null,(0,s.createElement)(p.ToolbarButton,{className:"components-icon-button components-toolbar__control",label:__("Edit video","jetpack"),onClick:this.switchToEditing,icon:(0,s.createElement)(g.Z,{icon:b.Z})}))),(0,s.createElement)(h.InspectorControls,null,(0,s.createElement)(p.PanelBody,{title:__("Video Settings","jetpack")},(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Autoplay","jetpack"),
+/* translators: Tooltip describing the "autoplay" option for the VideoPress player */
+__("Start playing the video as soon as the page loads","jetpack")),onChange:this.toggleAttribute("autoplay"),checked:w,help:this.getAutoplayHelp}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Loop","jetpack"),
+/* translators: Tooltip describing the "loop" option for the VideoPress player */
+__("Restarts the video when it reaches the end","jetpack")),onChange:this.toggleAttribute("loop"),checked:T}),(0,s.createElement)(p.ToggleControl,{label:__("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:P}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Playback Controls","jetpack"),
+/* translators: Tooltip describing the "controls" option for the VideoPress player */
+__("Display the video playback controls","jetpack")),onChange:this.toggleAttribute("controls"),checked:A}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Play Inline","jetpack"),
+/* translators: Tooltip describing the "playsinline" option for the VideoPress player */
+__("Play the video inline instead of full-screen on mobile devices","jetpack")),onChange:this.toggleAttribute("playsinline"),checked:M}),(0,s.createElement)(p.SelectControl,{label:this.renderControlLabelWithTooltip(__("Preload","jetpack"),
+/* translators: Tooltip describing the "preload" option for the VideoPress player */
+__("Content to dowload before the video is played","jetpack")),value:R,onChange:e=>l({preload:e}),options:[{value:"auto",label:_x("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:_x("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:_x("None","VideoPress preload setting","jetpack")}],help:this.getPreloadHelp()}),(0,s.createElement)(h.MediaUploadCheck,null,(0,s.createElement)(p.BaseControl,{className:"editor-video-poster-control",label:__("Poster Image","jetpack")},(0,s.createElement)(h.MediaUpload,{title:__("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:j,render:e=>{let{open:t}=e;return(0,s.createElement)(p.Button,{isDefault:!0,onClick:t,ref:this.posterImageButton,"aria-describedby":D},I?__("Replace image","jetpack",0):__("Select Poster Image","jetpack"))}}),(0,s.createElement)("p",{id:D,hidden:!0},I?(0,f.sprintf)(
+/* translators: Placeholder is an image URL. */
+__("The current poster image url is %s","jetpack"),I):__("There is no poster image currently selected","jetpack")),!!I&&(0,s.createElement)(p.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},__("Remove Poster Image","jetpack"))))),(0,s.createElement)(C.Z,{attributes:t,setAttributes:l,useAverageColor:L,toggleAttribute:this.toggleAttribute}),(0,s.createElement)(p.PanelBody,{title:__("Video File Settings","jetpack")},(0,s.createElement)(p.SelectControl,{label:_x("Rating","The age rating for this video.","jetpack"),value:k,disabled:u||d,options:[{label:_x("G",'Video rating for "General Audiences".',"jetpack"),value:"G"},{label:_x("PG-13",'Video rating for "Parental Guidance", unsuitable for children under 13.',"jetpack"),value:"PG-13"},{label:_x("R",'Video rating for "Restricted", not recommended for children under 17.',"jetpack"),value:"R-17"}],onChange:this.onChangeRating}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Allow download","jetpack"),
+/* translators: Tooltip describing the "allow download" option for the VideoPress player */
+__("Display download option and allow viewers to download this video","jetpack")),onChange:this.onChangeAllowDownload,checked:v,disabled:u||y})))),z=u||r,$=c||o||!N,U=$&&!o&&!z;if($)return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",{className:o||z?"":"videopress-block-hide"},(0,s.createElement)(E.Z,{text:o?__("Uploading…","jetpack"):__("Generating preview…","jetpack",0)})),(0,s.createElement)("div",{className:U?"":"videopress-block-hide"},(0,s.createElement)(e,this.props)));const{html:V,scripts:q}=i||{html:null,scripts:null},G=z||!i;return(0,s.createElement)(s.Fragment,null,O,G&&(0,s.createElement)(E.Z,{text:__("Generating preview…","jetpack")}),!G&&(0,s.createElement)(S,a()({},this.props,{hideOverlay:this.hideOverlay,html:V,scripts:q,interactive:m,caption:_})))}}]),"withVideoPressEdit")},38341:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{text:t}=e;return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(a.Spinner,null),(0,r.createElement)("p",null,t))}},64089:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(89105),s=n.n(i),l=n(45151);t.Z=(0,a.createHigherOrderComponent)((e=>t=>{const{attributes:{autoplay:n,caption:a,controls:i,guid:c,loop:u,muted:p,playsinline:d,poster:m,preload:h,videoPressClassNames:f,className:g,align:b,seekbarColor:k,seekbarPlayedColor:v,seekbarLoadingColor:y,useAverageColor:E,maxWidth:w}={}}=t,_=o.useBlockProps.save({className:s()("wp-block-video",g,f,{[`align${b}`]:b})});if(!c)return e(t);const C=(0,l.p)(c,{autoplay:n,controls:i,loop:u,muted:p,playsinline:d,poster:m,preload:h,seekbarColor:k,seekbarPlayedColor:v,seekbarLoadingColor:y,useAverageColor:E});let x={};return w&&w.length>0&&"100%"!==w&&(x={maxWidth:w,margin:"auto"}),(0,r.createElement)("figure",_,(0,r.createElement)("div",{className:"wp-block-embed__wrapper",style:x},`\n${C}\n`),!o.RichText.isEmpty(a)&&(0,r.createElement)(o.RichText.Content,{tagName:"figcaption",value:a}))}),"withVideoPressSave")},72905:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=(n(99196),n(55609)),s=n(52175),l=n(65736);const __=l.__;class c extends o.Component{constructor(){super(...arguments),a()(this,"handleChangeSeekbarColor",(e=>{this.setState({seekbarColor:e})})),a()(this,"handleChangeSeekbarLoadingColor",(e=>{this.setState({seekbarLoadingColor:e})})),a()(this,"handleChangeSeekbarPlayedColor",(e=>{this.setState({seekbarPlayedColor:e})})),a()(this,"saveColors",(()=>{const{seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n}=this.state,{setAttributes:r}=this.props;r({seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n})}));const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.props.attributes;this.state={seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}}render(){const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.state,{toggleAttribute:r,useAverageColor:a}=this.props,l=!0;return(0,o.createElement)(i.PanelBody,{className:"seekbar-color-settings__panel",title:__("Progress Bar Colors","jetpack"),initialOpen:!1},(0,o.createElement)(i.ToggleControl,{label:__("Match video","jetpack"),help:__("Colors adapt to the video as it plays","jetpack"),onChange:r("useAverageColor"),checked:a}),(0,o.createElement)(s.PanelColorSettings,{opened:!a,showTitle:!1,colorSettings:[{value:e,onChange:this.handleChangeSeekbarColor,label:__("Main","jetpack"),showTitle:l},{value:n,onChange:this.handleChangeSeekbarLoadingColor,label:__("Loaded","jetpack"),showTitle:l},{value:t,onChange:this.handleChangeSeekbarPlayedColor,label:__("Progress","jetpack"),showTitle:l}]},(0,o.createElement)(i.Button,{variant:"secondary",onClick:this.saveColors},__("Save colors","jetpack"))))}}t.Z=c},9360:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var r=n(69307),a=n(86989),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31266),u=n(9818);const __=i.__,p="subtitles",d=".vtt,text/vtt",m=[{label:__("Subtitles","jetpack"),value:"subtitles"},{label:__("Captions","jetpack"),value:"captions"},{label:__("Descriptions","jetpack"),value:"descriptions"},{label:__("Chapters","jetpack"),value:"chapters"},{label:__("Metadata","jetpack"),value:"metadata"}],h=(0,r.createElement)(s.SVG,{width:"18",height:"14",viewBox:"0 0 18 14",role:"img",fill:"none"},(0,r.createElement)(s.Rect,{x:"0.75",y:"0.75",width:"16.5",height:"12.5",rx:"1.25",stroke:"black",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(s.Path,{d:"M3 7H15",stroke:"black",strokeWidth:"1.5"}),(0,r.createElement)(s.Path,{d:"M3 10L15 10",stroke:"black",strokeWidth:"1.5"})),f=()=>"videoPressUploadTrack"in window;function g(e){let{tracks:t,onChange:n,guid:a}=e;const[l=-1,c]=(0,r.useState)(),u=e=>{const r=t[e];c(e),((e,t)=>{if(f())return window.videoPressDeleteTrack(t,e.kind,e.srcLang);const n={method:"POST",path:`/videos/${t}/tracks/delete`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang]]};return o()(n)})(r,a).finally((()=>{n(t.filter(((t,n)=>n!==e))),c(-1)}))};let p;return p=0===t.length?(0,r.createElement)("p",{className:"videopress-block-tracks-editor__tracks-informative-message"},__("Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.","jetpack")):t.map(((e,t)=>(0,r.createElement)("div",{key:t,className:"videopress-block-tracks-editor__track-list-track"},(0,r.createElement)("span",null,e.label),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__track-list-track-delete"},(0,r.createElement)(s.Button,{isLink:!0,isDestructive:!0,onClick:()=>{u(t)},"aria-label":(0,i.sprintf)(
+/* translators: %s: Label of the video text track e.g: "French subtitles" */
+__("Delete %s","jetpack"),e.label),disabled:l===t},l===t?__("Deleting","jetpack"):__("Delete","jetpack",0)))))),(0,r.createElement)(s.MenuGroup,{label:__("Text tracks","jetpack"),className:"videopress-block-tracks-editor__track-list"},p)}function b(e){let{track:t,guid:n,onChange:a,onClose:c,onCancel:h,trackExists:g}=e;const[b,k]=(0,r.useState)(),[v=!1,y]=(0,r.useState)(),{label:E="",srcLang:w="",kind:_=p}=t,C=t.tmpFile?t.tmpFile.name:"";if(!(0,u.useSelect)((e=>e(l.store).getSettings().mediaUpload),[]))return null;return(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor"},(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-label"},__("Edit track","jetpack")),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file"},(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label"},(0,r.createElement)("span",null,__("File","jetpack"),":"),""!==C&&(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label-name"},(0,r.createElement)("strong",null,C)),(0,r.createElement)(l.MediaUploadCheck,null,(0,r.createElement)(s.FormFileUpload,{onChange:e=>{const n=e.target.files;!n.length>0||(t.tmpFile=n[0],a(t))},accept:d,render:e=>{let{openFileDialog:t}=e;return(0,r.createElement)(s.Button,{isLink:!0,onClick:()=>{t()}},""===C?__("Select track","jetpack"):__("Change track","jetpack",0))},disabled:v}))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-help"},
+/* translators: %s: The allowed file types to be uploaded as a video text track." */
+(0,i.sprintf)(__("Allowed formats: %s","jetpack"),d))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-label-language"},(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,label:e}),label:__("Label","jetpack"),value:E,help:__("Title of track","jetpack"),disabled:v}),(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,srcLang:e}),label:__("Source language","jetpack"),value:w,help:__("Language tag (en, fr, etc.)","jetpack"),disabled:v})),(0,r.createElement)(s.SelectControl,{className:"videopress-block-tracks-editor__single-track-editor-kind-select",options:m,value:_,label:
+/* translators: %s: The kind of video text track e.g: "Subtitles, Captions" */
+__("Kind","jetpack"),onChange:e=>{a({...t,kind:e})},disabled:v}),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-buttons-container"},v?(0,r.createElement)(s.Spinner,null):(0,r.createElement)(s.Button,{isSecondary:!0,disabled:!t.tmpFile,onClick:()=>{k(null),""===E&&(t.label=__("English","jetpack")),""===w&&(t.srcLang="en"),void 0===t.kind&&(t.kind=p),g(t)?k(__("A track already exists for that language and kind.","jetpack")):(y(!0),((e,t)=>{if(f())return window.videoPressUploadTrack(t,e.kind,e.srcLang,e.label,e.tmpFile);const n={method:"POST",path:`/videos/${t}/tracks`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang],["label",e.label],["vtt",e.tmpFile]]};return o()(n)})(t,n).then((()=>{a(t),k(null),c()})).catch((e=>{e.message&&k(e.message)})).finally((()=>{y(!1)})))}},__("Save","jetpack")),(0,r.createElement)(s.Button,{isLink:!0,onClick:h},__("Close","jetpack"))),b&&(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-error"},
+/* translators: %s: An error message returned after a failed video track file upload." */
+(0,i.sprintf)(__("Error: %s","jetpack"),b))))}function k(e){let{tracks:t=[],onChange:n,guid:a}=e;const[o,i]=(0,r.useState)(null);return(0,r.createElement)(s.Dropdown,{contentClassName:"videopress-block-tracks-editor",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return(0,r.createElement)(s.ToolbarButton,{label:__("Text tracks","jetpack"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:n,icon:h})},renderContent:()=>null!==o?(0,r.createElement)(b,{track:t[o],guid:a,onChange:e=>{const r=[...t];r[o]=e,n(r)},onClose:()=>i(null),onCancel:()=>{n(t.filter(((e,t)=>t!==o))),i(null)},trackExists:e=>-1!==t.filter(((e,t)=>t!==o)).findIndex((t=>t.kind===e.kind&&t.srcLang===e.srcLang))}):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)(g,{tracks:t,onChange:n,guid:a}),(0,r.createElement)(s.MenuGroup,{className:"videopress-block-tracks-editor__add-tracks-container",label:__("Add tracks","jetpack")},(0,r.createElement)(s.MenuItem,{icon:c.Z,onClick:()=>{(()=>{const e=t.length,r=[...t];r[e]||(r[e]={}),r[e]={...t[e]},n(r),i(e)})()}},__("Upload track","jetpack")))))})}},45151:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d,useAverageColor:m}=t;if(!e)return null;const h={resizeToParent:!0,cover:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d},...m&&{useAverageColor:!0}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,h)}},43501:function(e,t,n){"use strict";n.d(t,{f:function(){return s}});var r=n(96816),a=n(89105),o=n.n(a);const i=e=>{const t=r.s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1});return o()(e,t)};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return i(t);const a=document.implementation.createHTMLDocument("");a.body.innerHTML=e;const s=a.body.querySelector("iframe");if(s&&s.height&&s.width){const e=(s.width/s.height).toFixed(2);for(let n=0;n<r.s.length;n++){const a=r.s[n];if(e>=a.ratio)return o()(i(t),a.className,"wp-has-aspect-ratio")}}return t}},33144:function(e,t,n){"use strict";n.d(t,{U:function(){return i},m:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i="mrec",s=[{height:250,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:__("Rectangle 300x250","jetpack"),tag:i,width:300,editorPadding:30},{height:90,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:__("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:__("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),(0,r.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:__("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}]},67907:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(21762);const __=i.__,l=e=>{let{value:t,onChange:n}=e;return(0,r.createElement)(o.PanelBody,{title:__("Visibility","jetpack")},(0,r.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:!!t,label:__("Hide on mobile","jetpack"),help:__("Hides this block for site visitors on mobile devices.","jetpack"),onChange:n}))};t.Z=e=>{let{attributes:{format:t,hideMobile:n},setAttributes:o}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(s.Z,{value:t,onChange:e=>o({format:e})})),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(l,{value:n,onChange:e=>o({hideMobile:!!e})})))}},7299:function(e,t,n){"use strict";var r=n(69307),a=n(67907),o=n(33144),i=n(72473),s=n(52203),l=n(38511),c=n(80405);t.Z=e=>{let{attributes:t,setAttributes:n}=e;const{format:u}=t,p=o.m.find((e=>{let{tag:t}=e;return t===u}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Z,{attributes:t,setAttributes:n}),(0,r.createElement)("div",{className:`wp-block-jetpack-wordads jetpack-wordads-${u}`},(0,r.createElement)("div",{className:"jetpack-wordads__ad",style:{width:p.width,height:p.height,backgroundImage:`url( ${(e=>{switch(e){case"leaderboard":return s;case"mobile_leaderboard":return l;case"wideskyscraper":return c;default:return i}})(u)} )`,backgroundSize:"cover"}})))}},21762:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(33144);const s=(0,a.__)("Pick an ad format","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.ToolbarGroup,{controls:[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:s,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},i.m.map((e=>{let{tag:i,name:s,icon:l}=e;return(0,r.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:l,isSelected:i===t,key:i,onClick:()=>{n(i),a()},role:"menuitemcheckbox"},s)})))}})}},62086:function(e,t,n){"use strict";n.d(t,{u2:function(){return c},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(7299),s=n(33144),l=n(57535);const __=a.__,_x=a._x,c="wordads",u=__("Ad","jetpack"),p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),d={title:u,description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Earn income by adding high quality ads to your post","jetpack")),(0,r.createElement)(o.ExternalLink,{href:"https://wordads.co/"},__("Learn all about WordAds","jetpack"))),icon:{src:p,foreground:(0,l.m)()},attributes:{align:{type:"string",default:"center"},format:{type:"string",default:s.U},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"earn",keywords:[_x("ads","block search term","jetpack"),"WordAds",_x("advertisement","block search term","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:i.Z,save:()=>null}},81921:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535);const __=a.__,_x=a._x,i={name:"facebook",title:"Facebook",icon:{src:"facebook",foreground:(0,o.m)()},keywords:[_x("social","block search term","jetpack")],description:__("Embed a Facebook post.","jetpack"),patterns:[/^https?:\/\/www\.facebook.com\/.+/i],attributes:{providerNameSlug:"facebook",previewable:!1,responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateFacebookEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations)return e;const n=e.variations.filter((e=>e.name!==i.name));return e.variations=[...n,i],e}))},17269:function(e,t,n){"use strict";n(81921),n(82122),n(19775),n(34034)},82122:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535),i=n(28938);const __=a.__,_x=a._x,s={name:"instagram",title:"Instagram",icon:{src:"instagram",foreground:(0,o.m)()},keywords:[_x("image","block search term","jetpack"),_x("social","block search term","jetpack")],description:__("Embed an Instagram post.","jetpack"),patterns:[/^https?:\/\/(www\.)?instagr(\.am|am\.com)\/.+/i],attributes:{providerNameSlug:"instagram",responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateInstagramEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations||!(0,i.Z)())return e;const n=e.variations.filter((e=>e.name!==s.name));return e.variations=[...n,s],e}))},19775:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"loom",title:"Loom",icon:o.zf,keywords:[__("video","jetpack")],description:__("Embed a Loom video.","jetpack"),patterns:[/^https?:\/\/(www\.)?loom\.com\/share\/.+/i],attributes:{providerNameSlug:"loom",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},34034:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"smartframe",title:"SmartFrame",icon:o.Ae,keywords:[__("smartframe","jetpack")],description:__("Embed a SmartFrame Image.","jetpack"),patterns:[/^https?:\/\/(.*?).smartframe.(io|net)\/.*/i],attributes:{providerNameSlug:"smartframe",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},56771:function(e,t,n){"use strict";var r=n(92694),a=n(4981),o=n(33722);const i={from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"jetpack_widget_social_icons"===t},transform:e=>{let{instance:t}=e,n=[];return t.raw.icons.forEach((e=>{const t=new URL(e.url.includes(":")?e.url:"https://"+e.url),r=t.hostname?t.hostname:t.protocol,i=o.Z.find((e=>r.includes(e.url)||e.url.includes(r))),s=(0,a.createBlock)("core/social-link",{service:i?i.name:"chain",url:e.url});n=[...n,s]})),(0,a.createBlock)("core/social-links",{},n)}}]};(0,r.addFilter)("blocks.registerBlockType","addTransformToSocialLinksWidget",(function(e,t){return"core/social-links"!==t||(e.transforms=i),e}))},33722:function(e,t){"use strict";t.Z=[{name:"wordpress",url:["wordpress."]},{name:"fivehundredpx",url:["500px.com"]},{name:"amazon",url:["amazon."]},{name:"bandcamp",url:["bandcamp.com"]},{name:"behance",url:["behance.net"]},{name:"codepen",url:["codepen.io"]},{name:"deviantart",url:["deviantart.com"]},{name:"dribbble",url:["dribbble.com"]},{name:"dropbox",url:["dropbox.com"]},{name:"etsy",url:["etsy.com"]},{name:"facebook",url:["facebook.com"]},{name:"flickr",url:["flickr.com"]},{name:"foursquare",url:["foursquare.com"]},{name:"goodreads",url:["goodreads.com"]},{name:"google",url:["google."]},{name:"github",url:["github.com"]},{name:"instagram",url:["instagram.com"]},{name:"lastfm",url:["last.fm"]},{name:"linkedin",url:["linkedin.com"]},{name:"mail",url:["mailto:"]},{name:"linkedin",url:["linkedin.com"]},{name:"mastodon",url:["mastodon.social"]},{name:"meetup",url:["meetup.com"]},{name:"medium",url:["medium.com"]},{name:"patreon",url:["patreon.com"]},{name:"pinterest",url:["pinterest."]},{name:"pocket",url:["getpocket.com"]},{name:"reddit",url:["reddit.com"]},{name:"skype",url:["skype.com","skype:"]},{name:"snapchat",url:["snapchat.com"]},{name:"soundcloud",url:["soundcloud.com"]},{name:"spotify",url:["spotify.com"]},{name:"telegram",url:["telegram.me","t.me"]},{name:"tiktok",url:["tiktok.com"]},{name:"tumblr",url:["tumblr.com"]},{name:"twitch",url:["twitch.tv"]},{name:"twitter",url:["twitter.com"]},{name:"vimeo",url:["vimeo.com"]},{name:"vk",url:["vk.com"]},{name:"yelp",url:["yelp.com"]},{name:"youtube",url:["youtube.com"]}]},32630:function(e,t,n){"use strict";n.d(t,{x:function(){return a},L:function(){return o}});var r=n(69307);const a=(0,r.createContext)(),o=e=>{let{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o,children:i}=e;return(0,r.createElement)(a.Provider,{value:{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o},children:i})}},58721:function(e,t,n){"use strict";var r=n(92819),a=n(47701),o=n.n(a),i=n(92694),s=n(65736),l=n(81475),c=n(44298),u=n(32220),p=n(94239),d=n(99199);const __=s.__,m=[];(0,i.addFilter)("blocks.registerBlockType","jetpack/paid-block",((e,t)=>((0,c.X1)(t)&&(m.includes(t)||m.push(t),e.keywords=(0,r.uniq)([...e.keywords,"premium",__("premium","jetpack")]),(0,c.HD)(t)||(e.icon=(0,u.Z)(e.icon)),e.attributes.shouldDisplayFrontendBanner||(e.attributes.shouldDisplayFrontendBanner={type:"boolean",default:!0})),e))),(0,i.addFilter)("editor.BlockListBlock","jetpack/paid-block-with-warning",l.Z),(0,i.addFilter)("editor.MediaPlaceholder","jetpack/paid-block-media-placeholder",p.Z),(0,i.addFilter)("editor.MediaReplaceFlow","jetpack/paid-block-media-placeholder",d.Z),o()((function(){(0,c.FK)()&&document.body.classList.add("jetpack-enable-upgrade-nudge")}))},94239:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n);if(!r?.mediaPlaceholder||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:s}=r,{onError:p}=t,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x),m=(0,o.useCallback)((e=>d(e?.length&&(0,l.Qu)(e[0],s))),[s,d]),h=(0,o.useCallback)((e=>{const t=e?.[0]?.props?.children;return(0,l.Qu)(t,s)?m([t]):p(e)}),[m,s,p]);return(0,o.createElement)("div",{className:"paid-block-media-placeholder"},(0,o.createElement)(e,a()({},t,{onFilesPreUpload:m,onError:h})))}),"withMediaPlaceholderUpgradable")},99199:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n),s=(0,o.useRef)();if(!r?.mediaReplaceFlow||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:p}=r,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x);return(0,o.createElement)(e,a()({},t,{onFilesUpload:e=>{s.current=e?.length?e[0]:null,d(e?.length&&(0,l.Qu)(e[0],p))},createNotice:(e,n,r)=>{if((0,l.Qu)(s.current,p))return s.current=null,null;t.createNotice(e,n,r)}}))}),"withMediaReplaceFlowUpgradable")},25122:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{cx:t=23,cy:n=3,r:o=4,fill:i="#e34c84",stroke:s="#ffffff",strokeWidth:l="2"}=e;return(0,r.createElement)(a.Circle,{className:"jetpack-paid-block-symbol",cx:t,cy:n,r:o,fill:i,stroke:s,strokeWidth:l})}},32220:function(e,t,n){"use strict";var r=n(69307),a=n(25122);n(44298);const o=e=>(e?.src?e={...e,src:(0,r.cloneElement)(e.src,{children:[e.src.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})}:e?.props?.children&&(e=(0,r.cloneElement)(e,{children:[e.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})),e);t.Z=o},53283:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(18733),i=n(19356);const __=a.__,s=__("Premium Block","jetpack"),l=__("Upgrade your plan to use this premium block","jetpack"),c=__("Upgrade","jetpack");t.ZP=e=>{let{onRedirect:t,align:n,className:a,title:u=s,description:p=l,buttonText:d=c,visible:m=!0,requiredPlan:h,context:f}=e;const[g,b,k]=(0,o.Z)(h,t);return(0,r.createElement)(i.p,{align:n,buttonText:d,checkoutUrl:g,className:a,context:f,description:p,goToCheckoutPage:b,isRedirecting:k,title:u,visible:m})}},63627:function(e,t,n){"use strict";n.d(t,{v:function(){return a},W:function(){return o}});var r=n(11973);const a=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:t,block:n,context:a})},o=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_banner_impression",{plan:t,block:n,context:a})}},81475:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(94333),c=n(9818),u=n(44298),p=n(53283),d=n(32630),m=n(63627);t.Z=(0,l.createHigherOrderComponent)((e=>t=>{const{name:n,className:r,clientId:i,isSelected:l,attributes:h,setAttributes:f}=t||{},{onChildBannerVisibilityChange:g,hasParentBanner:b}=(0,o.useContext)(d.x)||{},k=(0,u.Rl)(n);if(!k)return(0,o.createElement)(e,t);const v=(0,u.HD)(n),y=(0,u.m3)(n),[E,w]=(0,o.useState)(!v),[_,C]=(0,o.useState)(!1),[x,j]=(0,o.useState)(!1),S="editor-canvas",A=(0,c.useSelect)((e=>e("core/block-editor").hasSelectedInnerBlock(i,!0)),[]),N=(l||A)&&E&&!x,T=(0,o.useMemo)((()=>({plan:k,blockName:n,context:S})),[k,n,S]);(0,o.useEffect)((()=>{N&&C(!0)}),[N,C]),(0,o.useEffect)((()=>{!_&&N&&(0,m.W)(T)}),[_,T,N]),(0,o.useEffect)((()=>w(!v)),[h,w,v]),(0,o.useEffect)((()=>{f({shouldDisplayFrontendBanner:!b})}),[f,b]),(0,o.useEffect)((()=>{g&&g(N||x)}),[N,x,g]);const P=s()(r,{"is-upgradable":N});return(0,o.createElement)(d.L,{onBannerVisibilityChange:w,onChildBannerVisibilityChange:j,hasParentBanner:!0},(0,o.createElement)(p.ZP,{className:`is-${t.name.replace(/\//,"-")}-paid-block`,title:null,align:t?.attributes?.align,visible:N,description:y?.description,requiredPlan:k,context:S,onRedirect:()=>(0,m.v)(T)}),(0,o.createElement)(e,a()({},t,{className:P})))}),"withUpgradeBanner")},6757:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(51591),s=n(58014);const __=o.__;(0,s.Wp)()||(0,s.Ug)()||(0,a.registerBlockCollection)("jetpack",{title:"Jetpack",icon:(0,r.createElement)(i.IM,null)}),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"earn"!==t})),{slug:"earn",title:__("Earn","jetpack"),icon:(0,r.createElement)(i.IM,null)}]),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"grow"!==t})),{slug:"grow",title:__("Grow","jetpack"),icon:(0,r.createElement)(i.IM,null)}])},87929:function(e,t,n){"use strict";function r(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}function a(e,t,n){const a=`${window.Jetpack_Block_Assets_Base_Url.url}editor-assets`,{currentDoc:o}=r(n),i=o.getElementsByTagName("head")[0];e.forEach((e=>{const[n,r]=e.file.split("/").pop().split(".");if("css"===r){if(o.getElementById(e.id))return;const t=o.createElement("link");t.id=e.id,t.rel="stylesheet",t.href=`${a}/${n}-${e.version}.${r}`,i.appendChild(t)}if("js"===r){const s=t[e.id]?t[e.id]:null;if(o.getElementById(e.id))return s();const l=o.createElement("script");l.id=e.id,l.type="text/javascript",l.src=`${a}/${n}-${e.version}.${r}`,l.onload=s,i.appendChild(l)}}))}function o(e,t){return new Promise((n=>{const r=()=>{e[t]?n(e[t]):e.requestAnimationFrame(r)};r()}))}n.d(t,{bL:function(){return r},Pp:function(){return a},Dz:function(){return o}})},57535:function(e,t,n){"use strict";n.d(t,{m:function(){return i}});var r=n(27655),a=n(58014);const o=r.O["Jetpack Green 40"];function i(){return(0,a.Ug)()||(0,a.Wp)()?null:o}},98085:function(e,t,n){"use strict";n.d(t,{t:function(){return i}});var r=n(29512),a=n.n(r),o=n(92819);function i(e,t){const n=function(e,t){for(const n of new(a())(t).values()){if(-1===n.indexOf("is-style-"))continue;const t=n.substring(9),r=(0,o.find)(e,{name:t});if(r)return r}return(0,o.find)(e,"isDefault")}(e,t);return n?n.name:null}},68039:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r=/^#?[A-Fa-f0-9]{6}$/;function a(e){return r.test(e)}},62475:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(52175),l=n(37930);function c(e){let{blockName:t,buttonLabel:n,href:a,icon:c,onClick:u,subtitle:p,title:d,className:m}=e;const{autosaveAndRedirect:h}=(0,l.Z)(a);return(0,r.createElement)(s.Warning,{actions:a&&[(0,r.createElement)(i.Button,{href:a,onClick:e=>{e.preventDefault(),u(t),h(e)},target:"_top",isSecondary:!0,isLarge:!0},n)],className:o()(m,"jetpack-block-nudge wp-block")},(0,r.createElement)("span",{className:"jetpack-block-nudge__info"},c,(0,r.createElement)("span",{className:"jetpack-block-nudge__text-container"},(0,r.createElement)("span",{className:"jetpack-block-nudge__title"},d),p&&(0,r.createElement)("span",{className:"jetpack-block-nudge__message"},p))))}},72566:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(4981),l=n(52175),c=n(55609),u=n(9818),p=n(39630),d=n(65736);const __=d.__,m=e=>{let{attributes:t,styleOption:n,viewportWidth:a,blockName:o}=e;const i=(0,s.getBlockType)(o);return(0,r.createElement)(l.BlockPreview,{viewportWidth:a,blocks:(c=i.example?(0,s.getBlockFromExample)(o,{attributes:{...i.example.attributes,style:n.value},innerBlocks:i.example.innerBlocks}):(0,s.createBlock)(o,t),{...c,attributes:{...c.attributes,__isBlockPreview:!0}})});var c},h=r.memo?(0,r.memo)(m,((e,t)=>(0,i.isEqual)(e,t))):m;function f(e){let t,{attributes:n,clientId:a,styleOptions:i,onSelectStyle:s,activeStyle:d,viewportWidth:m,title:f}=e;return u.useSelect&&(t=(0,u.useSelect)((e=>{const{getBlock:t}=e("core/block-editor");return t(a)}))),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(l.BlockControls,null,(0,r.createElement)(c.ToolbarGroup,{isCollapsed:!0,icon:"admin-appearance",label:__("Style","jetpack"),controls:i.map((e=>({title:e.label,isActive:e.value===d,onClick:()=>s({style:e.value})}))),popoverProps:{className:"jetpack-block-styles-selector-toolbar"}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.PanelBody,{title:f||__("Styles","jetpack")},(0,r.createElement)("div",{className:"block-editor-block-styles jetpack-block-styles-selector"},i.map((e=>{const a={...n,style:e.value};return(0,r.createElement)("div",{key:e.value,className:o()("block-editor-block-styles__item",{"is-active":e.value===d}),onClick:()=>{s({style:e.value})},onKeyDown:t=>{p.ENTER!==t.keyCode&&p.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},(0,r.createElement)("div",{className:"block-editor-block-styles__item-preview"},e.preview?e.preview:u.useSelect&&t&&(0,r.createElement)(h,{blockName:t.name,styleOption:e,attributes:a,viewportWidth:m})),(0,r.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))}))))))}},38205:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609);const s=i.NumberControl||i.__experimentalNumberControl||function(e){return(0,o.createElement)(i.TextControl,a()({type:"number",inputMode:"numeric"},e))};t.Z=s},43393:function(e,t,n){"use strict";var r=n(69307),a=n(35381),o=n.n(a),i=n(65736),s=n(11973),l=n(62475),c=n(2368);const __=i.__,u=e=>{let{blockName:t,url:n}=e;return(0,r.createElement)(l.Z,{className:"jetpack-stripe-nudge__banner",buttonLabel:__("Connect","jetpack"),icon:(0,r.createElement)(o(),{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:n,onClick:()=>{s.Z.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:t})},title:__("Connect to Stripe to use this block on your site","jetpack"),subtitle:__("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})};t.Z=e=>{let{blockName:t,postId:n,stripeConnectUrl:a}=e;const o=(0,c.Z)(n,a);return o?(0,r.createElement)(u,{blockName:t,url:o}):null}},19356:function(e,t,n){"use strict";n.d(t,{p:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=e=>{let{align:t,className:n,title:a,description:s,buttonText:l,visible:c=!0,context:u,checkoutUrl:p,goToCheckoutPage:d,isRedirecting:m=!1}=e;const h=o()(n,"jetpack-upgrade-plan-banner",{"wp-block":"editor-canvas"===u,"block-editor-block-list__block":"editor-canvas"===u,"jetpack-upgrade-plan__hidden":!c}),f=__("Redirecting…","jetpack");return(0,r.createElement)("div",{className:h,"data-align":t},(0,r.createElement)("div",{className:"jetpack-upgrade-plan-banner__wrapper"},a&&(0,r.createElement)("strong",{className:o()("banner-title",{[`${n}__title`]:n})},a),s&&(0,r.createElement)("span",{className:`${n}__description banner-description`},s),(0,r.createElement)(i.Button,{href:m?null:p,onClick:d,target:"_top",className:o()("is-primary",{"jetpack-upgrade-plan__hidden":!p}),isBusy:m},m?f:l)))}},13180:function(e,t,n){"use strict";var r=n(9818);const a={setPlans:e=>({type:"SET_PLANS",plans:e}),fetchFromAPI:e=>({type:"FETCH_FROM_API",url:e})};(0,r.registerStore)("wordpress-com/plans",{reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return"SET_PLANS"===t.type?t.plans:e},actions:a,selectors:{getPlan:(e,t)=>e.find((e=>e.product_slug===t))},controls:{FETCH_FROM_API(e){let{url:t}=e;return fetch(t).then((e=>e.json()))}},resolvers:{*getPlan(){const e=yield a.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");return a.setPlans(e)}}})},17882:function(e,t,n){"use strict";n.d(t,{ck:function(){return o},Xy:function(){return i},hj:function(){return s},vs:function(){return l},Vm:function(){return c}});var r=n(75139),a=n(92819);const o={USD:.5,AUD:.5,BRL:.5,CAD:.5,CHF:.5,DKK:2.5,EUR:.5,GBP:.3,HKD:4,INR:.5,JPY:50,MXN:10,NOK:3,NZD:.5,PLN:2,SEK:3,SGD:.5},i=Object.keys(o).map((e=>{const{symbol:t}=(0,r.X)(e);return{value:e,label:t===e?e:`${e} ${(0,a.trimEnd)(t,".")}`}}));function s(e){return o[e]}function l(e,t){return!isNaN(t)&&t>=s(e)}function c(e,t){return e?"number"==typeof e?e:(e=parseFloat(e.replace(new RegExp("\\"+r.M[t].grouping,"g"),"").replace(new RegExp("\\"+r.M[t].decimal,"g"),".")),isNaN(e)?null:e):null}},58703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{label:t,onClick:n}=e;return(0,r.createElement)(a.Button,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},99418:function(e,t,n){"use strict";n.d(t,{iT:function(){return i},wk:function(){return s},oI:function(){return l},Tu:function(){return c},OG:function(){return u},tY:function(){return p},h9:function(){return d},CY:function(){return m},Wm:function(){return h},Qh:function(){return f},Bb:function(){return g},En:function(){return b},yD:function(){return k},QU:function(){return v},zs:function(){return y},l5:function(){return E}});var r=n(65736),a=n(69771),o=n(92819);const __=r.__,i="google_photos",s="pexels",l="recent",c="/",u=[{value:l,label:__("Photos","jetpack")},{value:c,label:__("Albums","jetpack")}],p=[{value:"",
+/* translators: category of images */
+label:__("All categories","jetpack")},{value:"animals",
+/* translators: category of images */
+label:__("Animals","jetpack")},{value:"arts",
+/* translators: category of images */
+label:__("Arts","jetpack")},{value:"birthdays",
+/* translators: category of images */
+label:__("Birthdays","jetpack")},{value:"cityscapes",
+/* translators: category of images */
+label:__("Cityscapes","jetpack")},{value:"crafts",
+/* translators: category of images */
+label:__("Crafts","jetpack")},{value:"fashion",
+/* translators: category of images */
+label:__("Fashion","jetpack")},{value:"food",
+/* translators: category of images */
+label:__("Food","jetpack")},{value:"flowers",
+/* translators: category of images */
+label:__("Flowers","jetpack")},{value:"gardens",
+/* translators: category of images */
+label:__("Gardens","jetpack")},{value:"holidays",
+/* translators: category of images */
+label:__("Holidays","jetpack")},{value:"houses",
+/* translators: category of images */
+label:__("Houses","jetpack")},{value:"landmarks",
+/* translators: category of images */
+label:__("Landmarks","jetpack")},{value:"landscapes",
+/* translators: category of images */
+label:__("Landscapes","jetpack")},{value:"night",
+/* translators: category of images */
+label:__("Night","jetpack")},{value:"people",
+/* translators: category of images */
+label:__("People","jetpack")},{value:"pets",
+/* translators: category of images */
+label:__("Pets","jetpack")},{value:"selfies",
+/* translators: category of images */
+label:__("Selfies","jetpack")},{value:"sport",
+/* translators: category of images */
+label:__("Sport","jetpack")},{value:"travel",
+/* translators: category of images */
+label:__("Travel","jetpack")},{value:"weddings",
+/* translators: category of images */
+label:__("Weddings","jetpack")}],d=["mountain","ocean","river","clouds","pattern","abstract","sky"],m="ANY",h="LAST_7_DAYS",f="LAST_30_DAYS",g="LAST_6_MONTHS",b="LAST_12_MONTHS",k="CUSTOM",v=[{value:m,label:__("Any time","jetpack")},{value:h,label:__("Last 7 days","jetpack")},{value:f,label:__("Last 30 days","jetpack")},{value:g,label:__("Last 6 months","jetpack")},{value:b,label:__("Last 12 months","jetpack")},{value:k,label:__("Specific Month/Year","jetpack")}],y=(new Date).getFullYear(),E=[{label:__("Any Month","jetpack"),value:-1},...(0,o.map)((0,o.range)(0,12),(e=>({label:(0,a.dateI18n)("F",new Date(0,e)),value:e})))]},26634:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(92694),s=n(52175),l=n(63729),c=n(97294),u=n(34724);if((0,l.Z)()&&"function"==typeof s.useBlockEditContext){const e=e=>e.unstableFeaturedImageFlow||e.modalClass&&e.modalClass.indexOf("featured-image")>-1,t=(e,t)=>["core/cover","core/image","core/gallery","core/media-text","jetpack/image-compare","jetpack/slideshow","jetpack/story","jetpack/tiled-gallery"].indexOf(e)>-1&&-1===t.toString().indexOf("coblocks");(0,i.addFilter)("editor.MediaUpload","external-media/replace-media-upload",(n=>r=>{const{name:i}=(0,s.useBlockEditContext)();let{render:l}=r;if(t(i,l)||e(r)){const{allowedTypes:e,gallery:t=!1,value:n=[]}=r;e.indexOf("image")>-1&&!(t&&n.length>0)&&(l=e=>(0,o.createElement)(c.Z,a()({},e,{mediaProps:r})))}return(0,o.createElement)(n,a()({},r,{render:l}))}),100),(0,i.addFilter)("blocks.registerBlockType","external-media/individual-blocks",(function(e,t){return"core/image"!==t?e:{...e,keywords:[...e.keywords,...u.Dv.map((e=>e.keyword))]}}))}},6966:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(55609),l=n(65736),c=n(39630),u=n(25432),p=n(9236);const __=l.__,d=(0,r.memo)((()=>(0,r.createElement)("div",{className:"jetpack-external-media-browser__empty"},(0,r.createElement)("p",null,__("Sorry, but nothing matched your search criteria.","jetpack")))));t.Z=function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,className:m,multiple:h,setPath:f,nextPage:g,onCopy:b}=e,[k,v]=(0,r.useState)([]),[y,E]=(0,r.useState)(-1),w=(0,r.useRef)(-1),_=(0,r.useRef)(null),C=(0,r.useCallback)((e=>{let t=[e];"folder"===e.type?f(e.ID):h?(t=k.slice(0,9).concat(e),k.find((t=>e.ID===t.ID))&&(t=k.filter((t=>t.ID!==e.ID)))):1===k.length&&e.ID===k[0].ID&&(t=[]),v(t)}),[k,h,f]),x=(0,r.useCallback)((()=>{b(k)}),[k,b]),j=t.filter((e=>"folder"!==e.type)).length>0,S=o()({"jetpack-external-media-browser__media":!0,"jetpack-external-media-browser__media__loading":a}),A=o()({"jetpack-external-media-browser":!0,[m]:!0}),N=()=>{let e=1;const t=_.current.children;if(t.length>0){const n=t[0].offsetTop;for(;e<t.length&&t[e].offsetTop===n;)++e}w.current=e},T=(0,i.debounce)(N,400);(0,r.useEffect)((()=>(window.addEventListener("resize",T),()=>{window.removeEventListener("resize",T)})),[]),(0,r.useEffect)((()=>{t.length&&-1===w.current&&N()}),[t]);const P=(e,t)=>{let{item:n}=t;C(n)},M=(e,n)=>{let{item:r,index:a}=n;[c.LEFT,c.RIGHT,c.UP,c.DOWN].includes(e.keyCode)?((e,n)=>{switch(e){case c.LEFT:n>=1&&E(n-1);break;case c.RIGHT:n<t.length&&E(n+1);break;case c.UP:n>=w.current&&E(n-w.current);break;case c.DOWN:n<t.length-w.current&&E(n+w.current)}})(e.keyCode,a):c.SPACE===e.keyCode?(C(r),e.preventDefault()):c.ENTER===e.keyCode&&C(r),[c.LEFT,c.RIGHT,c.UP,c.DOWN,c.SPACE,c.ENTER].includes(e.keyCode)&&e.stopPropagation()};return(0,r.createElement)("div",{className:A},(0,r.createElement)("ul",{ref:_,className:S},t.map(((e,t)=>(0,r.createElement)(p.Z,{item:e,index:t,key:e.ID,onClick:P,onKeyDown:M,focus:t===y,isSelected:k.find((t=>t.ID===e.ID)),isCopying:n}))),0===t.length&&!a&&(0,r.createElement)(d,null),a&&(0,r.createElement)(u.Z,null),l&&!a&&(0,r.createElement)(s.Button,{isSecondary:!0,className:"jetpack-external-media-browser__loadmore",disabled:a||n,onClick:()=>{t.length&&E(t.length),g()}},__("Load More","jetpack"))),j&&(0,r.createElement)((()=>{const e=0===k.length||n,t=n?__("Inserting…","jetpack"):__("Select","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__toolbar"},(0,r.createElement)(s.Button,{isPrimary:!0,isBusy:n,disabled:e,onClick:x},t))}),null))}},9236:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__;t.Z=function(e){const{item:t,focus:n,isSelected:a,isCopying:s=!1}=e,{thumbnails:l,caption:c,name:u,title:p,type:d,children:m=0}=t,{medium:h=null,fmt_hd:f=null}=l,g=p||c||u,b=o()({"jetpack-external-media-browser__media__item":!0,"jetpack-external-media-browser__media__item__selected":a,"jetpack-external-media-browser__media__folder":"folder"===d,"is-transient":s}),k=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n&&k.current.focus()}),[n]),(0,r.createElement)("li",{ref:k,className:b,onClick:s?void 0:t=>{const{item:n,index:r}=e;e.onClick&&e.onClick(t,{item:n,index:r})},onKeyDown:s?void 0:t=>{const{item:n,index:r}=e;e.onKeyDown&&e.onKeyDown(t,{item:n,index:r})},role:"checkbox",tabIndex:"0","aria-checked":!!a,"aria-disabled":!!s},a&&s&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator"},(0,r.createElement)(i.Spinner,null),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator__label"},__("Inserting Image…","jetpack"))),(0,r.createElement)("img",{src:h||f,alt:g}),"folder"===d&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__info"},(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__name"},u),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__count"},m)))}},25432:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.memo)((function(){const e="jetpack-external-media-browser__media__item jetpack-external-media-browser__media__placeholder";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}))}))},97294:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(34724),s=n(60133);const l=e=>e.unstableFeaturedImageFlow||e.modalClass&&-1!==e.modalClass.indexOf("featured-image"),c=e=>void 0===e.multiple&&!l(e);t.Z=function(e){const{mediaProps:t}=e,[n,r]=(0,o.useState)(null),u=(0,i.ZR)(n);return(0,o.createElement)("div",{onClick:e=>e.stopPropagation()},(0,o.createElement)(s.Z,a()({},e,{setSelectedSource:r,isReplace:c(t),isFeatured:l(t),hasImage:t.value>0})),u&&(0,o.createElement)(u,a()({onClose:e=>{e&&(e.stopPropagation(),e.target.closest(".jetpack-external-media-header__dropdown"))||r(null)}},t)))}},60133:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(35127),s=n(2562);const __=o.__;t.Z=function(e){const{mediaProps:t,open:n,setSelectedSource:o,isFeatured:l,isReplace:c,hasImage:u}=e,p=t.render;let d=l,m=!1,h=!l;if(c)return(0,r.createElement)(s.Z,{originalButton:p,open:n,setSource:o});let f=__("Select Image","jetpack");return t.multiple&&(f=__("Select Images","jetpack")),t.allowedTypes.length>1&&(f=__("Select Media","jetpack")),l&&(f=__("Replace Image","jetpack"),d=!1,h=!1,m=!0),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Dropdown,{position:"bottom right",contentClassName:"jetpack-external-media-button-menu__options",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;const o=p&&p({open:n});return l&&u||o&&"string"!=typeof o.props.children?o:(0,r.createElement)(a.Button,{isPrimary:d,isSecondary:m,isTertiary:h,className:"jetpack-external-media-button-menu","aria-haspopup":"true","aria-expanded":t,onClick:n},f)},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(a.NavigableMenu,{"aria-label":f},(0,r.createElement)(a.MenuGroup,null,(0,r.createElement)(a.MenuItem,{icon:i.Z,onClick:()=>{t(),n()}},__("Media Library","jetpack")),(0,r.createElement)(s.Z,{open:n,setSource:o,onClick:t})))}}))}},2562:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(34724);t.Z=function(e){let{originalButton:t=null,onClick:n=(()=>{}),open:i,setSource:s}=e;return(0,r.createElement)(r.Fragment,null,t&&t({open:i}),o.Dv.map((e=>{let{icon:t,id:o,label:i}=e;return(0,r.createElement)(a.MenuItem,{icon:t,key:o,onClick:()=>{n(),s(o)}},i)})))}},67236:function(e,t,n){"use strict";n.d(t,{k:function(){return o}});var r=n(96483);const a={list:"/wpcom/v2/external-media/list/",copy:(0,n(58014).Wp)()?"/rest/v1.1/external-media-upload?service=":"/wpcom/v2/external-media/copy/",connection:"/wpcom/v2/external-media/connection/"};function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a[e]?(0,r.addQueryArgs)(a[e]+t,n):null}},97416:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(51591);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.JO,null),(0,r.createElement)("p",null,__("To get started, connect your site to your Google Photos library.","jetpack")),(0,r.createElement)("p",null,__("You can remove the connection in either of these places:","jetpack")),(0,r.createElement)("ul",null,(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://myaccount.google.com/security"},__("Google Security page","jetpack"))),(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/connections/"},__("WordPress.com Connections","jetpack")))))}))},75039:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)("p",null,__("Awaiting authorization","jetpack"))}))},72475:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418);const __=a.__;t.Z=(0,r.memo)((function(e){let{path:t,setPath:n}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Button,{isTertiary:!0,onClick:()=>n(i.Tu)},__("Albums","jetpack")),"→   ",t.name)}))},10365:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(38205);const __=a.__;function c(e){let{value:t,updateFilter:n}=e;return(0,r.createElement)(o.SelectControl,{label:__("Category","jetpack"),value:t,options:s.tY,onChange:n})}function u(e){let{value:t,updateFilter:n}=e;const a=t?.range||s.CY,[i,c]=(0,r.useState)(-1),[u,p]=(0,r.useState)(s.zs);return(0,r.createElement)("div",{className:"jetpack-external-media-date-filter"},(0,r.createElement)(o.SelectControl,{label:__("Filter by time period","jetpack"),value:a,options:s.QU,onChange:e=>n({range:e})}),a===s.yD&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Month","jetpack"),value:i,options:s.l5,onChange:c}),(0,r.createElement)(l.Z,{className:"components-base-control",label:__("Year","jetpack"),value:u,min:1970,onChange:p}),(0,r.createElement)(o.Button,{isSecondary:!0,disabled:t?.month===i&&t?.year===u,onClick:()=>{n({range:a,month:i,year:u})}},__("Apply","jetpack"))))}function p(){return(0,r.createElement)("span",null,__("Favorites","jetpack"))}function d(e){let{value:t,updateFilter:n}=e;const a=[{label:__("All","jetpack"),value:""},{label:__("Images","jetpack"),value:"photo"},{label:__("Videos","jetpack"),value:"video"}];return(0,r.createElement)(o.SelectControl,{label:__("Type","jetpack"),value:t,options:a,onChange:n})}function m(e){let{children:t,removeFilter:n,isRemovable:a=!1}=e;return(0,r.createElement)("div",{className:"jetpack-external-media-googlephotos-filter"},t,!!a&&(0,r.createElement)(o.Button,{onClick:n,isSmall:!0},__("Remove Filter","jetpack")))}t.Z=function(e){let{filters:t,setFilters:n,canChangeMedia:a}=e;const o=Object.keys(t).filter((e=>a||"mediaType"!==e)).map((e=>{return(0,r.createElement)(m,{key:e,removeFilter:()=>n((0,i.omit)(t,e))},(a=e,o=t[e],s=r=>n(function(e,t,n){const r={...e,[t]:n};return"mediaType"===t&&"video"===n?delete r.category:"category"===t&&"video"===r.mediaType&&delete r.mediaType,r}(t,e,r)),"category"===a?(0,r.createElement)(c,{value:o,updateFilter:s}):"date"===a?(0,r.createElement)(u,{value:o,updateFilter:s}):"favorite"===a?(0,r.createElement)(p,{value:o}):"mediaType"===a?(0,r.createElement)(d,{value:o,updateFilter:s}):null));var a,o,s}));return 0===o.length?null:o}},50254:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(76292),a=n.n(r),o=n(99418);const i=a()();function s(e){const{mediaType:t,category:n,favorite:r,date:s}=e,l=[];if(t&&l.push("mediaType="+t),n&&"video"!==t&&l.push("categoryInclude="+n),void 0!==r&&l.push("feature=favorite"),s){let e=null,t=null;switch(s.range){case o.Wm:e=a()(i).subtract(7,"days"),t=i;break;case o.Qh:e=a()(i).subtract(30,"days"),t=i;break;case o.Bb:e=a()(i).subtract(6,"months"),t=i;break;case o.En:e=a()(i).subtract(1,"year"),t=i;break;case o.yD:const n=parseInt(s.month),r=parseInt(s.year);isNaN(n)||isNaN(r)||(-1===n?(e=a()([r,0]),t=a()(e).endOf("year")):(e=a()([r,n]),t=a()(e).endOf("month")))}const n=e?e.format("YYYY-MM-DD"):"0000-00-00",r=t?t.format("YYYY-MM-DD"):"0000-00-00";l.push(`dateRange=${n}:${r}`)}return l.length>0?l:null}},48389:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i=[{label:__("Category","jetpack"),value:"category"},{label:__("Date","jetpack"),value:"date"},{label:__("Favorites","jetpack"),value:"favorite"},{label:__("Media Type","jetpack"),value:"mediaType"}];function s(e){return i.filter((t=>void 0===e[t.value]))}function l(e){const t=s(e);return t.length>0?t[0].value:""}t.Z=function(e){const[t,n]=(0,r.useState)(l([])),{isLoading:a,isCopying:i,filters:c,canChangeMedia:u}=e,p=function(e,t){return t?e:e.filter((e=>"mediaType"!==e.value))}(s(c),u);return 0===p.length?null:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Filters","jetpack"),value:t,disabled:a||i,options:p,onChange:n}),(0,r.createElement)(o.Button,{disabled:a||i,isSecondary:!0,isSmall:!0,onClick:()=>{const r=(a=c,o=t,{...a,[o]:"favorite"===o||""});var a,o;e.setFilters(r),n(l(r))}},__("Add Filter","jetpack")))}},72461:function(e,t,n){"use strict";var r=n(69307),a=n(3308);t.Z=e=>{let{account:t,setAuthenticated:n}=e;const{image:o,name:i}=t||{};return(0,r.createElement)("div",{className:"jetpack-external-media-header__account"},(0,r.createElement)("div",{className:"jetpack-external-media-header__account-info"},o&&(0,r.createElement)("img",{className:"jetpack-external-media-header__account-image",src:o,alt:"",height:"18",width:"18"}),i&&(0,r.createElement)("div",{className:"jetpack-external-media-header__account-name"},i)),(0,r.createElement)(a.Z,{setAuthenticated:n}))}},17482:function(e,t,n){"use strict";var r=n(69307),a=n(39151),o=n(86989),i=n.n(o),s=n(65736),l=n(55609),c=n(99418),u=n(67236),p=n(97416),d=n(75039);const __=s.__;t.Z=function(e){const{setAuthenticated:t}=e,[n,o]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{o(!0),i()({path:(0,u.k)("connection",c.iT)}).then((e=>{if(e.error)throw e.message;(0,a.Z)(e.connect_URL,(()=>{o(!1),t(!0)}))})).catch((()=>{o(!1)}))}),[t]);return(0,r.createElement)("div",{className:"jetpack-external-media-auth"},n?(0,r.createElement)(d.Z,null):(0,r.createElement)(p.Z,null),(0,r.createElement)(l.Button,{isPrimary:!0,disabled:n,onClick:s},__("Connect to Google Photos","jetpack")))}},3308:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(67236),c=n(99418);const __=s.__;t.Z=e=>{let{setAuthenticated:t}=e;const[n,a]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{a(!0),o()({method:"DELETE",path:(0,l.k)("connection",c.iT)}).then((()=>t(!1))).catch((()=>a(!1)))}),[t]);return(0,r.createElement)(i.Button,{isSecondary:!0,className:"jetpack-external-media-browser__disconnect",onClick:s,disabled:n,isBusy:n},__("Disconnect from Google Photos","jetpack"))}},8910:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418),s=n(6966),l=n(67236),c=n(10365),u=n(48389),p=n(72461),d=n(72475),m=n(50254);const __=a.__;t.Z=function(e){const{account:t,allowedTypes:n,copyMedia:a,getMedia:h,isCopying:f,isLoading:g,media:b,multiple:k,onChangePath:v,pageHandle:y,path:E,setAuthenticated:w,showAdditionalFilters:_=!1}=e,C=(x=n)&&1===x.length&&"image"===x[0];var x;const[j,S]=(0,r.useState)(C?{mediaType:"photo",date:{range:i.CY}}:{date:{range:i.CY}}),A=(0,r.useRef)(""),N=(0,r.useRef)(""),T=E.ID===i.oI?(0,m.Z)(j):null,P={number:20,path:E.ID};T&&(P.filter=T);const M=(0,l.k)("list",i.iT,P),I=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h(M,t)}),[h,M]),R=(0,r.useCallback)((e=>{const t=b.find((t=>t.ID===e));N.current=E,v(t||{ID:e})}),[b,v,N,E]),L=(0,r.useCallback)((e=>{a(e,(0,l.k)("copy",i.iT),i.iT)}),[a]);return(0,r.useEffect)((()=>{A!==M&&(A.current=M,I({},E!==N.current))}),[A,M,I,E]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__google"},(0,r.createElement)("div",{className:"jetpack-external-media-header__view"},(0,r.createElement)(o.SelectControl,{className:"jetpack-external-media-header__select",label:__("View","jetpack"),value:E.ID!==i.oI?i.Tu:i.oI,disabled:g||f,options:i.OG,onChange:R}),_&&E.ID===i.oI&&(0,r.createElement)(u.Z,{filters:j,isLoading:g,setFilters:S,canChangeMedia:!C}),(0,r.createElement)("div",{className:"jetpack-external-media-header__filter"},E.ID===i.oI&&(0,r.createElement)(c.Z,{filters:j,isLoading:g,setFilters:S,canChangeMedia:!C}),E.ID!==i.oI&&E.ID!==i.Tu&&(0,r.createElement)(d.Z,{path:E,setPath:R})),(!g||b.length>0)&&(0,r.createElement)(p.Z,{account:t,setAuthenticated:w})),(0,r.createElement)(s.Z,{className:"jetpack-external-media-browser__google",key:M,media:b,isCopying:f,isLoading:g,nextPage:I,onCopy:L,pageHandle:y,multiple:k,setPath:R}))}},5465:function(e,t,n){"use strict";var r=n(69307),a=n(37603),o=n(17482),i=n(8910);t.Z=(0,a.Z)()((function(e){return e.isAuthenticated?(0,r.createElement)(i.Z,e):(0,r.createElement)(o.Z,e)}))},34724:function(e,t,n){"use strict";n.d(t,{Dv:function(){return c},ZR:function(){return u}});var r=n(69307),a=n(65736),o=n(51591),i=n(5465),s=n(7500),l=n(99418);const __=a.__,c=[{id:l.iT,label:__("Google Photos","jetpack"),icon:(0,r.createElement)(o.He,{className:"components-menu-items__item-icon"}),keyword:"google photos"},{id:l.wk,label:__("Pexels Free Photos","jetpack"),icon:(0,r.createElement)(o.yk,{className:"components-menu-items__item-icon"}),keyword:"pexels"}];function u(e){return e===l.wk?s.Z:e===l.iT?i.Z:null}},7500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(37603),c=n(6966),u=n(67236);const __=a.__;t.Z=(0,l.Z)()((function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,multiple:p,copyMedia:d,getMedia:m}=e,[h,f]=(0,r.useState)((0,i.sample)(s.h9)),[g,b]=(0,r.useState)(""),k=(0,r.useCallback)((e=>{d(e,(0,u.k)("copy",s.wk),s.wk)}),[d]),v=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h&&m((0,u.k)("list",s.wk,{number:20,path:"recent",search:h}),t)}),[m,h]),y=(0,r.useRef)(),E=(0,r.useCallback)((e=>{e.preventDefault(),b(h),v(e,!0),y.current=h}),[v,h]);(0,r.useEffect)(v,[]);const w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!w.current)return;const e=Array.from(w.current.elements).find((e=>"search"===e.type));e&&(e.focus(),e.select())}),[]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__pexels"},(0,r.createElement)("form",{ref:w,className:"jetpack-external-media-header__pexels",onSubmit:E},(0,r.createElement)(o.TextControl,{"aria-label":__("Search","jetpack"),type:"search",value:h,onChange:f,disabled:!!n}),(0,r.createElement)(o.Button,{isPrimary:!0,onClick:E,type:"submit",disabled:!h.length||h===y.current||n},__("Search","jetpack"))),(0,r.createElement)(c.Z,{key:g,className:"jetpack-external-media-browser__pexels",media:t,isCopying:n,isLoading:a,nextPage:v,onCopy:k,pageHandle:l,multiple:p}))}))},37603:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(27538),a=n.n(r),o=n(69307),i=n(92819),s=n(89105),l=n.n(s),c=n(86989),u=n.n(c),p=n(94333),d=n(55609),m=n(65736),h=n(39630),f=n(9818),g=n(99418);const __=m.__;function b(){return(0,p.createHigherOrderComponent)((e=>{class t extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"contentRef",(e=>{e?(this.contentElement=e,this.modalElement=e.closest(".jetpack-external-media-browser"),this.modalElement&&this.modalElement.addEventListener("keydown",this.stopArrowKeysPropagation)):this.modalElement&&(this.modalElement.removeEventListener("keydown",this.stopArrowKeysPropagation),this.modalElement=null,this.contentElement=null)})),a()(this,"stopArrowKeysPropagation",(e=>{[h.UP,h.DOWN,h.LEFT,h.RIGHT].includes(e.keyCode)&&!e.target.classList.contains("jetpack-external-media-browser__media__item")&&e.stopPropagation()})),a()(this,"setAuthenticated",(e=>this.setState({isAuthenticated:e}))),a()(this,"getMedia",(function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.state.isLoading||(n&&t.props.noticeOperations.removeAllNotices(),t.setState({account:n?t.defaultAccount:t.state.account,isLoading:!0,media:n?[]:t.state.media,nextHandle:!n&&t.state.nextHandle},(()=>t.getMediaRequest(e))))})),a()(this,"handleApiError",(e=>{if("authorization_required"===e.code)return void this.setState({isAuthenticated:!1,isLoading:!1,isCopying:!1});e.errors?.length&&(e={code:e.errors[0].error,message:e.errors[0].message});const{noticeOperations:t}=this.props;t.createErrorNotice("internal_server_error"===e.code?"Internal server error":e.message),this.setState({isLoading:!1,isCopying:!1})})),a()(this,"getMediaRequest",(e=>{const{nextHandle:t,media:n}=this.state;if(!1===t&&n.length>0)return void this.setState({isLoading:!1});const r=this.getRequestUrl(e);this.setAuthenticated(!0),u()({path:r,method:"GET",parse:void 0===window.wpcomFetch}).then((e=>{this.setState({account:e.meta.account,media:this.mergeMedia(n,e.media),nextHandle:e.meta.next_page,isLoading:!1})})).catch(this.handleApiError)})),a()(this,"copyMedia",((e,t,n)=>{var r;this.setState({isCopying:e}),this.props.noticeOperations.removeAllNotices(),this.modalElement&&this.modalElement.focus(),u()({path:t,method:"POST",data:{external_ids:e.map((e=>e.guid)),media:e.map((e=>({guid:e.guid,caption:e.caption,title:e.title}))),service:n,post_id:null!==(r=this.props.postId)&&void 0!==r?r:0}}).then((e=>{e.media&&(e=e.media.map((e=>({alt:e.alt,caption:e.caption,id:e.ID,type:"image",url:e.URL}))));const{value:t,addToGallery:n,multiple:r}=this.props,a=r?e:e[0],o=e.find((e=>e.errors));if(o){const{errors:e}=o,t=Object.keys(e)[0];this.handleApiError({code:t,message:e[t]})}else this.props.onClose(),this.props.onSelect(n?t.concat(e):a)})).catch(this.handleApiError)})),a()(this,"onChangePath",((e,t)=>{this.setState({path:e},t)})),this.defaultAccount={image:"",name:""},this.state={account:this.defaultAccount,media:[],nextHandle:!1,isLoading:!1,isCopying:null,isAuthenticated:!0,path:{ID:g.oI}}}mergeMedia(e,t){return(0,i.uniqBy)(e.concat(t),"ID")}getRequestUrl(e){const{nextHandle:t}=this.state;return t?e+"&page_handle="+encodeURIComponent(t):e}render(){const{account:t,isAuthenticated:n,isCopying:r,isLoading:a,media:i,nextHandle:s,path:c}=this.state,{allowedTypes:u,multiple:p=!1,noticeUI:m,onClose:h}=this.props,f=r?__("Inserting media","jetpack"):__("Select media","jetpack",0),g=r?__("When the media is finished copying and inserting, you will be returned to the editor.","jetpack"):__("Select the media you would like to insert into the editor.","jetpack",0),b="jetpack-external-media-browser__description",k=l()({"jetpack-external-media-browser":!0,"jetpack-external-media-browser--is-copying":r});return(0,o.createElement)(d.Modal,{onRequestClose:h,title:f,aria:{describedby:b},className:k},(0,o.createElement)("div",{ref:this.contentRef},m,(0,o.createElement)("p",{id:b,className:"jetpack-external-media-browser--visually-hidden"},g),(0,o.createElement)(e,{account:t,getMedia:this.getMedia,copyMedia:this.copyMedia,isCopying:r,isLoading:a,media:i,pageHandle:s,allowedTypes:u,isAuthenticated:n,setAuthenticated:this.setAuthenticated,multiple:p,path:c,onChangePath:this.onChangePath})))}}return(0,f.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()})))((0,d.withNotices)(t))}))}},36745:function(e,t,n){"use strict";n.d(t,{Qu:function(){return i}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["allowedMimeTypes"],[])}function i(e,t){if(!e||!t)return!1;if(!o())return!1;const n=(a=t)?(0,r.pickBy)(o(),(e=>(0,r.startsWith)(e,`${a}/`))):{};var a;const i=(s=n)?(0,r.flatten)((0,r.map)((0,r.keys)(s),(e=>e.split("|")))):[];var s;if("string"==typeof e){const t=e.split(".").pop();return t&&i.includes(t)}return"object"==typeof e&&(e.type&&(0,r.values)(n).includes(e.type))}},20510:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){const e=(0,r.getCategories)();for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(const t of n)if(e.some((e=>{let{slug:n}=e;return n===t})))return t;throw new Error(`Could not find a category from the provided list: ${n.join(",")}`)}},2368:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(96483);function a(e,t){if(!(0,r.isURL)(t))return null;let n=t;try{const a=(0,r.getQueryArg)(t,"state"),o=JSON.parse(atob(a));if(e)o.from_editor_post_id=e;else{const e=new URLSearchParams(window.location.search);o.from_site_editor_post_id=e.get("postId"),o.from_site_editor_post_type=e.get("postType")}n=(0,r.addQueryArgs)(t,{state:btoa(JSON.stringify(o))})}catch(e){0}return n}},47583:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);function a(){return(0,r.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null)}},21409:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(e){const t=(0,a.Z)(),n=(0,r.get)(t,["available_blocks",e,"available"],!1),o=(0,r.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),i=(0,r.get)(t,["available_blocks",e,"details"],[]);return{available:n,...!n&&{details:i,unavailableReason:o}}}},4235:function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,{Z:function(){return r}})},14087:function(e,t,n){"use strict";n.d(t,{S:function(){return a}});var r=n(92819);const a=(e,t)=>(0,r.reduce)(t,((t,n,r)=>{if(void 0===e[r])return t;const{type:a,validator:o,validValues:i,default:s}=e[r];return t[r]="boolean"===a?"false"!==n&&!!n:o?o(n)?n:s:i?i.includes(n)?n:s:n,t}),{})},22985:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(20651),c=n.n(l);t.Z=e=>{let{children:t=null,isError:n=!1,...r}=e;const i=s()("help-message",{"help-message-is-error":n});return t&&(0,o.createElement)("div",a()({className:i},r),n&&(0,o.createElement)(c(),{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),(0,o.createElement)("span",null,t))}},51591:function(e,t,n){"use strict";n.d(t,{He:function(){return d},yk:function(){return m},JO:function(){return h},IM:function(){return f},zf:function(){return g},Ae:function(){return b},K9:function(){return k},Pw:function(){return v}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(89105),l=n.n(s),c=n(27655),u=n(57535);const p=c.O["Jetpack Green 40"],d=e=>(0,o.createElement)(i.SVG,a()({height:"24",width:"24",viewBox:"1.2 10.8 169.6 169.6",xmlns:"http://www.w3.org/2000/svg"},e),(0,o.createElement)(i.Path,{d:"m43.6 49.4c23.4 0 42.4 19 42.4 42.4v3.9h-80.9c-2.1 0-3.8-1.7-3.9-3.9 0-23.4 19-42.4 42.4-42.4z",fill:"#f6bc04"}),(0,o.createElement)(i.Path,{d:"m132.2 53.2c0 23.4-19 42.4-42.4 42.4h-3.8v-80.9c0-2.1 1.7-3.9 3.8-3.9 23.5 0 42.4 19 42.4 42.4z",fill:"#ea4335"}),(0,o.createElement)(i.Path,{d:"m128.4 141.9c-23.4 0-42.4-19-42.4-42.4v-3.9h80.9c2.1 0 3.9 1.7 3.9 3.8 0 23.5-19 42.5-42.4 42.5z",fill:"#4285f4"}),(0,o.createElement)(i.Path,{d:"m39.8 138c0-23.4 19-42.4 42.4-42.4h3.8v80.9c0 2.1-1.7 3.8-3.9 3.9-23.4 0-42.3-19-42.3-42.4z",fill:"#34a853"})),m=e=>(0,o.createElement)(i.SVG,a()({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},e),(0,o.createElement)(i.Path,{d:"M14 7H9v10h3.9v-3.8H14c1.7 0 3.1-1.4 3.1-3.1C17.2 8.4 15.8 7 14 7z"}),(0,o.createElement)(i.Path,{d:"M20.5 2h-17C2.7 2 2 2.7 2 3.5v17c0 .8.7 1.5 1.5 1.5h17c.8 0 1.5-.7 1.5-1.5v-17c0-.8-.7-1.5-1.5-1.5zm-5.6 13.2V19H7V5h7c2.8 0 5.1 2.3 5.1 5.1.1 2.5-1.8 4.7-4.2 5.1z"})),h=()=>{const e="#757575";return(0,o.createElement)(i.SVG,{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/SVG",x:"0px",y:"0px",viewBox:"0 0 1292 448",style:{enableBackground:"new 0 0 1292 448"}},(0,o.createElement)(i.G,{id:"Icon"},(0,o.createElement)(i.Path,{class:"st0",fill:"#F6B704",d:"M171.6,177.4c23.4,0,42.4,19,42.4,42.4v3.9h-80.9c-2.1,0-3.8-1.7-3.9-3.9C129.2,196.4,148.2,177.4,171.6,177.4 C171.6,177.4,171.6,177.4,171.6,177.4z"}),(0,o.createElement)(i.Path,{class:"st1",fill:"#E54335",d:"M260.2,181.2c0,23.4-19,42.4-42.4,42.4H214v-80.9c0-2.1,1.7-3.9,3.8-3.9h0 C241.3,138.8,260.2,157.8,260.2,181.2C260.2,181.2,260.2,181.2,260.2,181.2z"}),(0,o.createElement)(i.Path,{class:"st2",fill:"#4280EF",d:"M256.4,269.9c-23.4,0-42.4-19-42.4-42.4v-3.9h80.9c2.1,0,3.9,1.7,3.9,3.8v0 C298.8,250.9,279.8,269.9,256.4,269.9C256.4,269.9,256.4,269.9,256.4,269.9z"}),(0,o.createElement)(i.Path,{class:"st3",fill:"#34A353",d:"M167.8,266c0-23.4,19-42.4,42.4-42.4c0,0,0,0,0,0h3.9v80.9c0,2.1-1.7,3.8-3.9,3.9 C186.7,308.4,167.8,289.4,167.8,266z"})),(0,o.createElement)(i.G,{id:"Photos"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M796,272v-91.6h31.2c15.2,0,28.7,11.3,28.7,27.3s-13.4,27.3-28.7,27.3h-19.4V272H796z M827.5,223.6 c8.8,0,16-7.2,16-16s-7.2-16-16-16h-19.7v32H827.5z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M875.8,209.3l-0.5,8.7h0.5c3.3-5.8,11.3-10.8,19.8-10.8c16,0,23.9,10.9,23.9,26.4V272h-11.8v-36.6 c0-13-6.5-17.4-15.5-17.4c-10.2,0-16.5,9.7-16.5,19.3V272H864v-91.6h11.8V209.3z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M993.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4S993.8,221.6,993.8,240.6z M982,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S982,255,982,240.6L982,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1008,252.9V220h-11v-10.7h11v-19.2h11.8v19.2h15.3V220h-15.3v32c0,7,2.9,10.2,8.4,10.2c1.8,0.1,3.7-0.3,5.4-1 l4.1,10.1c-3,1.2-6.2,1.8-9.5,1.7C1015,273,1008,265.7,1008,252.9z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1105.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4 S1105.8,221.6,1105.8,240.6z M1094,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S1094,255,1094,240.6 L1094,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1111,256.1l10.5-4.4c3.3,7.9,9.5,11.8,17,11.8c7.3,0,12.5-3.6,12.5-8.8c0-3.2-1.9-6.6-8.6-8.3l-12.7-3.1 c-5.8-1.4-16.8-6.4-16.8-17.4c0-11.4,11.8-18.7,24.8-18.7c10.9,0,20.3,5,24.2,14.6l-10.2,4.2c-2.4-5.9-8.2-8.3-14.3-8.3 c-6.7,0-12.4,3-12.4,8.1c0,4,3.3,6.1,8.3,7.3l12.4,2.9c12.4,2.9,17.3,10.6,17.3,18.3c0,11.1-10,19.7-24.7,19.7 C1123.2,274,1114.7,265.1,1111,256.1z"})),(0,o.createElement)(i.G,{id:"Google"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M348.7,221.6c0-28.9,24.3-52.5,53.2-52.5c13.5-0.2,26.4,5,36,14.5l-10.1,10.1c-6.9-6.7-16.2-10.4-25.9-10.2 c-21.1,0-37.6,17-37.6,38.2s16.5,38.1,37.6,38.1c13.7,0,21.5-5.5,26.5-10.5c4.1-4.1,6.8-10,7.8-18H402v-14.4h48.3 c0.5,3,0.8,6,0.8,9c0,10.8-2.9,24.1-12.4,33.5c-9.2,9.6-21,14.7-36.6,14.7C373,274,348.7,250.5,348.7,221.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M490,206.5c-18.7,0-33.9,14.2-33.9,33.8S471.3,274,490,274s33.9-14.3,33.9-33.8S508.7,206.5,490,206.5z M490,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S500.2,260.7,490,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M564,206.5c-18.7,0-33.9,14.2-33.9,33.8S545.3,274,564,274s33.9-14.3,33.9-33.8S582.7,206.5,564,206.5z M564,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S574.2,260.7,564,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M654.8,208.5v5.5h-0.5c-3.3-4-9.7-7.6-17.8-7.6c-16.9,0-32.4,14.9-32.4,33.9s15.5,33.7,32.4,33.7 c8.1,0,14.5-3.6,17.8-7.7h0.5v4.9c0,12.9-6.9,19.8-18,19.8c-9.1,0-14.7-6.5-17-12l-12.9,5.4c5,12.1,16.8,20.1,30,20 c17.4,0,32.1-10.2,32.1-35.2v-60.7H654.8z M637.8,260.7c-10.2,0-18.8-8.6-18.8-20.4s8.6-20.6,18.8-20.6s18,8.7,18,20.6 S647.9,260.7,637.8,260.7L637.8,260.7z"}),(0,o.createElement)(i.Rect,{x:"679.2",y:"172.7",class:"st4",fill:e,width:"14.8",height:"99.3"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M734.7,260.7c-7.6,0-12.9-3.5-16.4-10.2l45.2-18.7L762,228c-2.8-7.6-11.4-21.5-28.9-21.5s-31.9,13.7-31.9,33.8 c0,19,14.3,33.8,33.5,33.8c11.3,0.1,21.9-5.6,28.2-15l-11.5-7.7C747.5,257,742.3,260.7,734.7,260.7z M733.6,219.5 c5.9,0,10.9,2.9,12.5,7.2l-30.2,12.5C715.5,226.2,726,219.5,733.6,219.5L733.6,219.5z"})))},f=e=>{let{size:t=24,className:n}=e;return(0,o.createElement)(i.SVG,{className:l()("jetpack-logo",n),width:t,height:t,viewBox:"0 0 32 32"},(0,o.createElement)(i.Path,{className:"jetpack-logo__icon-circle",fill:p,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))},g=((0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19,3H5C3.895,3,3,3.895,3,5v14c0,1.105,0.895,2,2,2h14c1.105,0,2-0.895,2-2V5C21,3.895,20.105,3,19,3z M16.466,9.71 c0.004,0.099,0.007,0.198,0.007,0.298c0,3.045-2.318,6.556-6.556,6.556c-1.301,0-2.512-0.381-3.532-1.035 c0.18,0.021,0.364,0.032,0.55,0.032c1.079,0,2.073-0.368,2.862-0.986c-1.008-0.019-1.859-0.685-2.152-1.6 c0.141,0.027,0.285,0.041,0.433,0.041c0.21,0,0.414-0.028,0.607-0.081c-1.054-0.212-1.848-1.143-1.848-2.259 c0-0.01,0-0.019,0-0.029c0.311,0.173,0.666,0.276,1.044,0.288c-0.618-0.413-1.025-1.118-1.025-1.918 c0-0.422,0.114-0.818,0.312-1.158c1.136,1.394,2.834,2.311,4.749,2.407c-0.039-0.169-0.06-0.344-0.06-0.525 c0-1.272,1.032-2.304,2.304-2.304c0.663,0,1.261,0.28,1.682,0.728c0.525-0.103,1.018-0.295,1.463-0.559 c-0.172,0.538-0.537,0.99-1.013,1.275c0.466-0.056,0.91-0.18,1.323-0.363C17.306,8.979,16.916,9.385,16.466,9.71z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.05h-9.36z"}))),{foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 100 100"},(0,o.createElement)(i.Path,{d:"M100,44H72.4l23.9-13.8l-6-10.4L66.4,33.6L80.2,9.7l-10.4-6L56,27.59V0H44v27.6L30.2,3.7l-10.4,6l13.8,23.9 L9.7,19.8l-6,10.4L27.6,44H0V56h27.6L3.7,69.8l6,10.4l23.9-13.8L19.8,90.3l10.4,6L44,72.4V100H56V72.41l13.8,23.9l10.4-6L66.4,66.4 l23.9,13.8l6-10.4L72.4,56H100V44z M50,65.23c-8.41,0-15.23-6.82-15.23-15.23c0-8.41,6.82-15.23,15.23-15.23S65.23,41.59,65.23,50 C65.23,58.41,58.41,65.23,50,65.23z"}))}),b={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20.7 17",xmlSpace:"preserve"},(0,o.createElement)(i.Path,{d:"m20.7 12.9-.9-11c0-.5-.2-.9-.5-1.3-.3-.3-.8-.5-1.3-.5L1.9 0h-.1c-.2 0-.5 0-.7.1C.9.2.7.4.5.5.4.7.2.9.1 1.1c-.1.2-.1.5-.1.7v.1l.9 13.4c0 .5.2.9.5 1.3.3.2.8.4 1.3.4H3l16.1-2c.4 0 .9-.3 1.1-.6.3-.3.5-.8.5-1.2v-.3zm-3.1.8L4.2 15.3H4c-.4 0-.8-.1-1-.4-.3-.3-.4-.6-.5-1L1.7 3.2v-.1c0-.4.2-.8.5-1 .3-.3.7-.4 1-.4h.1l13.5.1c.4 0 .8.1 1 .4.3.3.4.6.5 1L19 12v.3c0 .4-.2.7-.4 1-.3.2-.6.4-1 .4z"}))},k={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})))},v=((0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M15.9216 2H2.98533C2.43803 2 1.99023 2.45 1.99023 3V17L5.97062 13H15.9216C16.4689 13 16.9167 12.55 16.9167 12V3C16.9167 2.45 16.4689 2 15.9216 2ZM14.9265 4V11H5.14469L3.98043 12.17V4H14.9265ZM18.9069 6H20.8971C21.4444 6 21.8922 6.45 21.8922 7V22L17.9118 18H6.96572C6.41842 18 5.97062 17.55 5.97062 17V15H18.9069V6Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M3.98042 2H19.9019C20.9965 2 21.8921 2.9 21.8921 4V16C21.8921 17.1 20.9965 18 19.9019 18H5.97061L1.99023 22V4C1.99023 2.9 2.88582 2 3.98042 2ZM5.97061 16H19.9019V4H3.98042V18L5.97061 16Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M11.1114 8H20.0002M11.1113 15H20.0002",stroke:(0,u.m)(),strokeWidth:"1.5"}),(0,o.createElement)(i.Path,{d:"M4 10V6L8 8L4 10Z",fill:(0,u.m)()}),(0,o.createElement)(i.Path,{d:"M4 17V13L8 15L4 17Z",fill:(0,u.m)()}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M4 12V4L11 8L4 12Z"}),(0,o.createElement)(i.Path,{d:"M4 14.5H20V16H4V14.5Z"}),(0,o.createElement)(i.Path,{d:"M4 18.5H13V20H4V18.5Z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M2.5 7.5V4.5H15.5V7.5H10.5V19.5H7.5V7.5H2.5ZM12.5 9.5H21.5V12.5H18.5V19.5H15.5V12.5H12.5V9.5Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M12.7049 2V6C8.30658 6 4.74414 9.58 4.74414 14C4.74414 18.42 8.30658 22 12.7049 22C17.1032 22 20.6656 18.42 20.6656 14H18.6755C18.6755 17.31 15.9987 20 12.7049 20C9.41113 20 6.73433 17.31 6.73433 14C6.73433 10.69 9.41113 8 12.7049 8V12L17.6804 7L12.7049 2ZM11.6501 12.73L11.4013 14.9L12.068 15.06C12.0753 15.0526 12.0827 15.0447 12.0901 15.0366C12.1131 15.0116 12.1375 14.9851 12.1675 14.97C12.1874 14.96 12.2073 14.9475 12.2272 14.935C12.2471 14.9225 12.2671 14.91 12.287 14.9C12.3268 14.88 12.3865 14.86 12.4362 14.85C12.486 14.84 12.5556 14.83 12.6352 14.83C12.7447 14.83 12.8542 14.85 12.9338 14.88C13.0134 14.91 13.083 14.96 13.1427 15.03C13.2024 15.1 13.2422 15.17 13.2721 15.27C13.302 15.37 13.3119 15.47 13.3119 15.58V15.58C13.3119 15.69 13.3119 15.79 13.2821 15.89C13.2522 15.99 13.2124 16.07 13.1726 16.14C13.1328 16.21 13.0631 16.27 12.9935 16.31C12.9238 16.35 12.8343 16.37 12.7248 16.37C12.5556 16.37 12.4163 16.31 12.3069 16.22C12.1974 16.13 12.1377 15.99 12.1178 15.81H11.2819C11.2819 16.01 11.3317 16.19 11.4113 16.34C11.4909 16.49 11.5904 16.63 11.7297 16.73C11.869 16.83 12.0183 16.92 12.1874 16.97C12.3566 17.02 12.5357 17.05 12.7148 17.05C12.9636 17.05 13.1726 17 13.3517 16.93C13.5308 16.86 13.6801 16.75 13.7995 16.62C13.9189 16.49 14.0085 16.34 14.0682 16.17C14.1279 16 14.1577 15.82 14.1577 15.63C14.1577 15.41 14.1179 15.21 14.0682 15.03C14.0184 14.85 13.9289 14.7 13.8194 14.58C13.7099 14.46 13.5706 14.37 13.4114 14.3C13.2522 14.23 13.0731 14.2 12.8641 14.2C12.7945 14.2 12.7248 14.21 12.6651 14.22C12.6352 14.225 12.6054 14.2325 12.5755 14.24C12.5457 14.2475 12.5158 14.255 12.486 14.26C12.4263 14.27 12.3765 14.29 12.3367 14.31C12.3201 14.3183 12.3035 14.325 12.2876 14.3313C12.2654 14.3401 12.2446 14.3483 12.2272 14.36L12.3367 13.44H14.0284V12.73H11.6501Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M11.9412 2V6C16.3395 6 19.902 9.58 19.902 14C19.902 18.42 16.3395 22 11.9412 22C7.54291 22 3.98047 18.42 3.98047 14H5.97066C5.97066 17.31 8.64746 20 11.9412 20C15.235 20 17.9118 17.31 17.9118 14C17.9118 10.69 15.235 8 11.9412 8V12L6.96575 7L11.9412 2ZM10.8864 12.73L10.6376 14.9L11.3044 15.06C11.3117 15.0526 11.319 15.0447 11.3264 15.0366C11.3494 15.0116 11.3738 14.9851 11.4039 14.97C11.4238 14.96 11.4437 14.9475 11.4636 14.935C11.4835 14.9225 11.5034 14.91 11.5233 14.9C11.5631 14.88 11.6228 14.86 11.6725 14.85C11.7223 14.84 11.792 14.83 11.8716 14.83C11.981 14.83 12.0905 14.85 12.1701 14.88C12.2497 14.91 12.3194 14.96 12.3791 15.03C12.4388 15.1 12.4786 15.17 12.5084 15.27C12.5383 15.37 12.5482 15.47 12.5482 15.58V15.58C12.5482 15.69 12.5482 15.79 12.5184 15.89C12.4885 15.99 12.4487 16.07 12.4089 16.14C12.3691 16.21 12.2995 16.27 12.2298 16.31C12.1601 16.35 12.0706 16.37 11.9611 16.37C11.792 16.37 11.6526 16.31 11.5432 16.22C11.4337 16.13 11.374 15.99 11.3541 15.81H10.5182C10.5182 16.01 10.568 16.19 10.6476 16.34C10.7272 16.49 10.8267 16.63 10.966 16.73C11.1053 16.83 11.2546 16.92 11.4238 16.97C11.5929 17.02 11.7721 17.05 11.9512 17.05C12.1999 17.05 12.4089 17 12.588 16.93C12.7672 16.86 12.9164 16.75 13.0358 16.62C13.1552 16.49 13.2448 16.34 13.3045 16.17C13.3642 16 13.3941 15.82 13.3941 15.63C13.3941 15.41 13.3543 15.21 13.3045 15.03C13.2547 14.85 13.1652 14.7 13.0557 14.58C12.9463 14.46 12.807 14.37 12.6477 14.3C12.4885 14.23 12.3094 14.2 12.1004 14.2C12.0308 14.2 11.9611 14.21 11.9014 14.22C11.8716 14.225 11.8417 14.2325 11.8119 14.24C11.782 14.2475 11.7522 14.255 11.7223 14.26C11.6626 14.27 11.6128 14.29 11.573 14.31C11.5564 14.3183 11.5398 14.325 11.5239 14.3313C11.5017 14.3401 11.481 14.3483 11.4636 14.36L11.573 13.44H13.2647V12.73H10.8864Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M0 0h24v24H0z",fill:"none"}),(0,o.createElement)(i.Path,{d:"M7 2v11h3v9l7-12h-4l4-8z",fill:"currentColor"})))},28938:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_active"],!1)}},63729:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_current_user_connected"],!1)}},47077:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_offline_mode"],!1)}},7616:function(e,t,n){"use strict";var r=n(86989),a=n.n(r),o=n(9818),i=n(65736),s=(n(53961),n(82827),n(4235)),l=n(58014);const __=i.__;function c(){const e=(0,s.Z)();return void 0!==typeof window&&window.location&&e?(0,l.Wp)()||(0,l.Ug)()?`https://wordpress.com/plans/my-plan/${e}`:`${window.location.protocol}//${e.replace("::","/")}/wp-admin/admin.php?page=jetpack#/my-plan`:null}(async()=>{if(void 0!==typeof window&&window.location){if(new URLSearchParams(window.location.search).get("plan_upgraded")){let e=null;e:try{if((0,l.Wp)())break e;const t=await a()({path:"/jetpack/v4/site"});e=JSON.parse(t.data).plan.product_name}finally{const t=c();(0,o.dispatch)("core/notices").createNotice("success",e?(0,i.sprintf)(
+/* translators: %s is the plan name, such as Jetpack Premium. */
+__("Congratulations! Your site is now on the %s plan.","jetpack"),e):__("Congratulations! Your site is now on a paid plan.","jetpack"),{isDismissible:!0,...t&&{actions:[{url:c(),label:__("View my plan","jetpack")}]}})}}}})()},44298:function(e,t,n){"use strict";n.d(t,{Qq:function(){return p},X1:function(){return d},Rl:function(){return m},FK:function(){return f},HD:function(){return g},m3:function(){return b}});var r=n(92819),a=n(96483),o=n(65736),i=n(47583),s=n(58014),l=n(4235),c=n(21409),u=n(28069);const __=o.__;function p(e){let{planSlug:t,plan:n,postId:o,postType:i}=e;const c=(0,r.startsWith)(t,"jetpack_")?t:(0,r.get)(n,["path_slug"]),u=(void 0===i?()=>{const e=new URLSearchParams(window.location.search);return(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/admin.php`,{page:"gutenberg-edit-site",postId:e.get("postId"),postType:e.get("postType"),plan_upgraded:1})}:()=>{const e=["page","post"].includes(i)?"":"edit";return(0,s.Wp)()?(0,a.addQueryArgs)("/"+(0,r.compact)([e,i,(0,l.Z)(),o]).join("/"),{plan_upgraded:1}):(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/post.php`,{action:"edit",post:o,plan_upgraded:1})})();return(0,s.Ug)()?(0,a.addQueryArgs)(`https://wordpress.com/plans/${(0,l.Z)()}`,{redirect_to:u,customerType:"business"}):c&&(0,a.addQueryArgs)(`https://wordpress.com/checkout/${(0,l.Z)()}/${c}`,{redirect_to:u})}function d(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{available:n,unavailableReason:r}=(0,c.Z)(t);return!n&&"missing_plan"===r}function m(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{details:n,unavailableReason:r}=(0,c.Z)(t);return(0,u._)(r,n)}const h=[{name:"core/cover",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"video",description:__("Upgrade your plan to use video covers","jetpack")},{name:"core/audio",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"audio",description:__("Upgrade your plan to upload audio","jetpack")}];function f(){return(0,r.get)((0,i.Z)(),"jetpack.enable_upgrade_nudge",!1)}const g=e=>(0,r.map)(h,"name").includes(e),b=e=>(0,r.head)((0,r.filter)(h,(t=>{let{name:n}=t;return n===e})))},99230:function(e,t,n){"use strict";n.d(t,{uM:function(){return i},yX:function(){return s},bu:function(){return l}});var r=n(86989),a=n.n(r),o=n(58014);async function i(){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins"})}catch(e){return Promise.reject(e.message)}}async function s(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins",method:"POST",data:{slug:e,status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}async function l(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:`/jetpack/v4/plugins/${e}`,method:"POST",data:{status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},28069:function(e,t,n){"use strict";n.d(t,{_:function(){return p},Z:function(){return h}});var r=n(65736),a=n(92694),o=n(4981),i=n(1949),s=n(21409),l=n(28137);const __=r.__,c={paid:(0,r._x)("paid","Short label appearing near a block requiring a paid plan","jetpack"),beta:__("beta","jetpack")},u=i.Kc||[];function p(e,t){return"missing_plan"===e&&t.required_plan}function d(e){const t=[];return u.includes(e)&&t.push(c.beta),t}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.length?`${e} (${t.join(", ")})`:e}function h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const{available:i,details:c,unavailableReason:u}=(0,s.Z)(e),h=p(u,c),f=r?"jetpack/":"";if(!i&&!h)return!1;const g=(0,o.registerBlockType)(f+e,{...t,title:m(t.title,d(e))});return h&&(0,a.addFilter)("editor.BlockListBlock",`${f+e}-with-has-warning-is-interactive-class-names`,(0,l.Z)(f+e)),n.forEach((e=>(0,o.registerBlockType)(f+e.name,e.settings))),g}},41632:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:24,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0 0 24 24";return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,viewBox:o},(0,r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},55637:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=(e,t,n,o,i)=>{const{isSelected:s}=t,l=t.attributes[e];return(0,r.createElement)("div",{className:s?`jetpack-${e}-block is-selected`:`jetpack-${e}-block`},!s&&""!==l&&o(t),(s||""===l)&&(0,r.createElement)(a.PlainText,{value:l,placeholder:n,"aria-label":n,onChange:i}))}},58014:function(e,t,n){"use strict";n.d(t,{Wp:function(){return i},Ug:function(){return s},M6:function(){return l}});var r=n(92819),a=n(47583);function o(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function i(){return"simple"===o()}function s(){return"atomic"===o()}function l(){return(0,r.get)((0,a.Z)(),["jetpack","is_private_site"],!1)}},92919:function(e,t,n){"use strict";var r=n(9818),a=n(65736),o=(n(53961),n(82827));const __=a.__;if(void 0!==typeof window&&window.location){const{query:e}=(0,o.Qc)(window.location.href,!0);e.stripe_connect_success?(0,r.dispatch)("core/notices").createNotice("success",__("Congrats! Your site is now connected to Stripe. You can now start accepting funds!","jetpack")):e.stripe_connect_cancelled&&(0,r.dispatch)("core/notices").createNotice("error",__("You cancelled connecting your site to Stripe.","jetpack"))}},87072:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(86989),o=n.n(a);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;return t(!0),new Promise(((n,r)=>{o()({path:`/wpcom/v2/resolve-redirect/?url=${encodeURIComponent(e)}`}).then((a=>{t(!1);const o=a.status?parseInt(a.status,10):null;o&&o>=400?r():n(a.url||e)}),(()=>{t(!1),r()}))}))}},37930:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),a=n(9818),o=n(69307);function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t&&t(e),n?window.open(e,"_blank"):window.top.location.href=e}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const[n,s]=(0,o.useState)(!1),{isAutosaveablePost:l,isDirtyPost:c,currentPost:u}=(0,a.useSelect)((e=>{const t=e("core/editor");return{isAutosaveablePost:t.isEditedPostAutosaveable(),isDirtyPost:t.isEditedPostDirty(),currentPost:t.getCurrentPost()}}),[]),p=Object.keys(u).length>0,d=(0,a.useSelect)((e=>!!window.wp.customize||!!e("core/edit-widgets"))),m=(0,a.dispatch)("core/editor").savePost,h=(0,a.useSelect)((e=>e("core").__experimentalGetDirtyEntityRecords())),f=async()=>{for(let e=0;e<h.length;e++)await(0,a.dispatch)("core").saveEditedEntityRecord(h[e].kind,h[e].name,h[e].key)},g=async e=>{e.preventDefault(),p?c&&l&&await m(e):await f(e)},b=async r=>{r.preventDefault(),n||(s(!0),g(r).then((()=>{i(e,t,d)})))};return{autosave:g,autosaveAndRedirect:b,isRedirecting:n}}},18733:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(92819),a=n(9818),o=n(92694),i=(n(13180),n(44298)),s=n(37930);const l="a8c.wpcom-block-editor.openCheckoutModal";function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const{checkoutUrl:n,planData:c}=(0,a.useSelect)((t=>{const n=t("core/editor"),r=t("wordpress-com/plans"),{id:a,type:o}=n.getCurrentPost(),s=r&&r.getPlan(e);return{checkoutUrl:(0,i.Qq)({plan:s,planSlug:e,postId:a,postType:o}),planData:s}}),[]),{autosave:u,autosaveAndRedirect:p,isRedirecting:d}=(0,s.Z)(n,t),m=async e=>{if(e.preventDefault(),(0,o.hasAction)(l))return e.preventDefault(),u(e),void(0,o.doAction)(l,{products:[c]});p(e)};return[n,m,d,c]}},28137:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333);t.Z=e=>(0,i.createHigherOrderComponent)((t=>n=>(0,o.createElement)(t,a()({},n,{className:n.name===e?"has-warning is-interactive":n.className}))),"withHasWarningIsInteractiveClassNames")},15111:function(e,t,n){"use strict";n.d(t,{tT:function(){return r},Wp:function(){return a},Vy:function(){return o},_5:function(){return i}});const r="jetpack/media-source",a="is-playing",o="is-error",i="is-paused"},73617:function(e,t,n){"use strict";var r=n(9818),a=n(46169),o=n(15111);if(void 0!==r.createReduxStore){const e=(0,r.createReduxStore)(o.tT,a.Z);(0,r.register)(e)}else(0,r.registerStore)(o.tT,a.Z)},46169:function(e,t,n){"use strict";var r=n(15111);const a={sources:{},default:null},o={getDefaultMediaSource(e){let t=null;const n=Object.keys(e.sources);if(e.default?t=e.default:n?.length&&(t=e.sources[n[0]].id),t)return e.sources[t]},getMediaPlayerState:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.state,getMediaSourceCurrentTime:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.currentTime,getMediaSourceDuration(e,t){if(!t){return o.getDefaultMediaSource(e)?.duration}return e.sources?.[t]?.duration},getMediaSourceDomReference(e,t){const n=t?e.sources?.[t]:o.getDefaultMediaSource(e);if(!n)return;const r=n?.domId;return r?document.getElementById(r):void 0}},i={reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;const n=t.id||e.default||Object.keys(e.sources)?.[0];switch(t.type){case"REGISTER_MEDIA_SOURCE":return{...e,sources:{...e.sources,[t.id]:{id:t.id,...t.mediaSourceState}}};case"UPDATE_MEDIA_SOURCE_DATA":return{...e,sources:{...e.sources,[t.id]:{...e.sources[t.id],...t.data}}};case"UNREGISTER_MEDIA_SOURCE":{const n=Object.assign({},e);return n.sources[t.id]&&delete n.sources[t.id],t.id===e.default&&(n.default=Object.keys(e.sources)?.[0]),n}case"SET_DEFAULT_MEDIA_SOURCE":return{...e,default:t.id};case"SET_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:t.state}}};case"TOGGLE_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:e.sources[n].state===r.Wp?r._5:r.Wp}}};case"SET_MEDIA_PLAYER_CURRENT_TIME":return{...e,sources:{...e.sources,[n]:{...e.sources[n],currentTime:t.currentTime}}}}return e},actions:{registerMediaSource:(e,t)=>({type:"REGISTER_MEDIA_SOURCE",id:e,mediaSourceState:t}),updateMediaSourceData:(e,t)=>({type:"UPDATE_MEDIA_SOURCE_DATA",id:e,data:t}),unregisterMediaSource:e=>({type:"UNREGISTER_MEDIA_SOURCE",id:e}),setDefaultMediaSource:e=>({type:"SET_DEFAULT_MEDIA_SOURCE",id:e}),playMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Wp}),toggleMediaSource:e=>({type:"TOGGLE_MEDIA_PLAYER_STATE",id:e}),pauseMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r._5}),errorMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Vy}),setMediaSourceCurrentTime:(e,t)=>({type:"SET_MEDIA_PLAYER_CURRENT_TIME",id:e,currentTime:t})},selectors:o};t.Z=i},75139:function(e,t,n){"use strict";n.d(t,{M:function(){return r},X:function(){return a}});var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(e,t,n){"use strict";n.d(t,{ZP:function(){return i}});var r=n(52141),a=n(63807),o=n(75139);function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,o.X)(t);if(!i||isNaN(e))return null;var s=(0,r.Z)({},i,n),l=s.decimal,c=s.grouping,u=s.precision,p=s.symbol,d=e<0?"-":"",m=(0,a.Y4)(Math.abs(e),{decimals:u,thousandsSep:c,decPoint:l});return"".concat(d).concat(p).concat(m)}},94481:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99196),a=n(32365);function o(e,t){let n,a,i=[];for(let r=0;r<e.length;r++){const o=e[r];if("string"!==o.type){if(void 0===t[o.value])throw new Error(`Invalid interpolation, missing component node: \`${o.value}\``);if("object"!=typeof t[o.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${o.value}\``);if("componentClose"===o.type)throw new Error(`Missing opening component token: \`${o.value}\``);if("componentOpen"===o.type){n=t[o.value],a=r;break}i.push(t[o.value])}else i.push(o.value)}if(n){const s=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(a,e),l=o(e.slice(a+1,s),t),c=(0,r.cloneElement)(n,{},l);if(i.push(c),s<e.length-1){const n=o(e.slice(s+1),t);i=i.concat(n)}}return i=i.filter(Boolean),0===i.length?null:1===i.length?i[0]:(0,r.createElement)(r.Fragment,null,...i)}function i(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const i=(0,a.Z)(t);try{return o(i,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},32365:function(e,t,n){"use strict";function r(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function a(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(t,{Z:function(){return a}})},47236:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(2571);function o(e){(0,r.assign)(e,a.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},59177:function(e,t,n){"use strict";function r(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}(0,n(47236).Z)(r.prototype),r.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},r.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},r.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(e){}return!t},r.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},r.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t},t.Z=r},39151:function(e,t,n){"use strict";var r=n(59177);t.Z=function(e,t){var n,a=new r.Z;a.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+a.getScreenCenterSpecs(780,700)),a.once("close",(function(){var e={};n&&n.keyring_id&&(e.keyring_id=Number(n.keyring_id),e.id_token=n.id_token,e.user=n.user),t(e)})),a.on("message",(function(e){return n=e}))}},48468:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(83712)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},83712:function(e,t,n){e.exports=function(e){function t(e){let n,a=null;function o(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!o.enabled)return;const i=o,s=Number(new Date),l=s-(n||s);i.diff=l,i.prev=n,i.curr=s,n=s,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(i,t),r.splice(c,1),c--}return e})),t.formatArgs.call(i,r);const u=i.log||t.log;u.apply(i,r)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===a?t.enabled(e):a,set:e=>{a=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},90922:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(31967)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){e.exports=function(e){function t(e){let n,a,o,i=null;function s(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!s.enabled)return;const o=s,i=Number(new Date),l=i-(n||i);o.diff=l,o.prev=n,o.curr=i,n=i,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(o,t),r.splice(c,1),c--}return e})),t.formatArgs.call(o,r);const u=o.log||t.log;u.apply(o,r)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(a!==t.namespaces&&(a=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},20651:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-notice-outline",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},35381:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-star",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.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"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},7104:function(e,t,n){var r;e=n.nmd(e),function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof window&&window;o.global!==o&&o.window!==o&&o.self;var i,s=2147483647,l=36,c=/^xn--/,u=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,h=String.fromCharCode;function f(e){throw RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(p,".")).split("."),t).join(".")}function k(e){for(var t,n,r=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function v(e){return g(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function E(e,t,n){var r=0;for(e=n?m(e/700):e>>1,e+=m(e/t);e>455;r+=l)e=m(e/35);return m(r+36*e/(e+38))}function w(e){var t,n,r,a,o,i,c,u,p,d,h,g=[],b=e.length,k=0,y=128,w=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&f("not-basic"),g.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(o=k,i=1,c=l;a>=b&&f("invalid-input"),((u=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||u>m((s-k)/i))&&f("overflow"),k+=u*i,!(u<(p=c<=w?1:c>=w+26?26:c-w));c+=l)i>m(s/(d=l-p))&&f("overflow"),i*=d;w=E(k-o,t=g.length+1,0==o),m(k/t)>s-y&&f("overflow"),y+=m(k/t),k%=t,g.splice(k++,0,y)}return v(g)}function _(e){var t,n,r,a,o,i,c,u,p,d,g,b,v,w,_,C=[];for(b=(e=k(e)).length,t=128,n=0,o=72,i=0;i<b;++i)(g=e[i])<128&&C.push(h(g));for(r=a=C.length,a&&C.push("-");r<b;){for(c=s,i=0;i<b;++i)(g=e[i])>=t&&g<c&&(c=g);for(c-t>m((s-n)/(v=r+1))&&f("overflow"),n+=(c-t)*v,t=c,i=0;i<b;++i)if((g=e[i])<t&&++n>s&&f("overflow"),g==t){for(u=n,p=l;!(u<(d=p<=o?1:p>=o+26?26:p-o));p+=l)_=u-d,w=l-d,C.push(h(y(d+_%w,0))),u=m(_/w);C.push(h(y(u,0))),o=E(n,v,r==a),n=0,++r}++n,++t}return C.join("")}i={version:"1.3.2",ucs2:{decode:k,encode:v},decode:w,encode:_,toASCII:function(e){return b(e,(function(e){return u.test(e)?"xn--"+_(e):e}))},toUnicode:function(e){return b(e,(function(e){return c.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},15661:function(e,t,n){"use strict";n.r(t),n.d(t,{ucs2decode:function(){return m},ucs2encode:function(){return h},decode:function(){return b},encode:function(){return k},toASCII:function(){return y},toUnicode:function(){return v}});const r=2147483647,a=36,o=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function p(e){throw new RangeError(l[e])}function d(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){const t=[];let n=0;const r=e.length;for(;n<r;){const a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&a)<<10)+(1023&r)+65536):(t.push(a),n--)}else t.push(a)}return t}const h=e=>String.fromCodePoint(...e),f=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){let r=0;for(e=n?c(e/700):e>>1,e+=c(e/t);e>455;r+=a)e=c(e/35);return c(r+36*e/(e+38))},b=function(e){const t=[],n=e.length;let o=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let n=0;n<l;++n)e.charCodeAt(n)>=128&&p("not-basic"),t.push(e.charCodeAt(n));for(let d=l>0?l+1:0;d<n;){let l=o;for(let t=1,i=a;;i+=a){d>=n&&p("invalid-input");const l=(u=e.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:a;(l>=a||l>c((r-o)/t))&&p("overflow"),o+=l*t;const m=i<=s?1:i>=s+26?26:i-s;if(l<m)break;const h=a-m;t>c(r/h)&&p("overflow"),t*=h}const m=t.length+1;s=g(o-l,m,0==l),c(o/m)>r-i&&p("overflow"),i+=c(o/m),o%=m,t.splice(o++,0,i)}var u;return String.fromCodePoint(...t)},k=function(e){const t=[];let n=(e=m(e)).length,o=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let l=t.length,d=l;for(l&&t.push("-");d<n;){let n=r;for(const t of e)t>=o&&t<n&&(n=t);const m=d+1;n-o>c((r-i)/m)&&p("overflow"),i+=(n-o)*m,o=n;for(const n of e)if(n<o&&++i>r&&p("overflow"),n==o){let e=i;for(let n=a;;n+=a){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const o=e-r,i=a-r;t.push(u(f(r+o%i,0))),e=c(o/i)}t.push(u(f(e,0))),s=g(i,m,d==l),i=0,++d}++i,++o}return t.join("")},v=function(e){return d(e,(function(e){return o.test(e)?b(e.slice(4).toLowerCase()):e}))},y=function(e){return d(e,(function(e){return i.test(e)?"xn--"+k(e):e}))},E={version:"2.1.0",ucs2:{decode:m,encode:h},decode:b,encode:k,toASCII:y,toUnicode:v};t.default=E},5157:function(e,t,n){"use strict";const r=n(55778),a=n(97115),o=n(63851),i=n(95946);function s(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?a(e):e}function u(e){return Array.isArray(e)?e.sort():"object"==typeof e?u(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function p(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=p(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function m(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const a="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!a&&c(n,e).includes(e.arrayFormatSeparator);n=o?c(n,e):n;const i=a||o?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const a=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!a)return void(r[t]=n?c(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const a of e.split("&")){if(""===a)continue;let[e,i]=o(t.decode?a.replace(/\+/g," "):a,"=");i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:c(i,t),n(c(e,t),i,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=m(n[e],t);else r[e]=m(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=u(n):e[t]=n,e}),Object.create(null))}t.extract=d,t.parse=h,t.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const a=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",a,"]"].join("")]:[...n,[l(t,e),"[",l(a,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,a)=>void 0===a||e.skipNull&&null===a||e.skipEmptyString&&""===a?r:(a=null===a?"":a,0===r.length?[[l(n,e),t,l(a,e)].join("")]:[[r,l(a,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),a={};for(const t of Object.keys(e))n(t)||(a[t]=e[t]);const o=Object.keys(a);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const a=e[n];return void 0===a?"":null===a?l(n,t):Array.isArray(a)?0===a.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":a.reduce(r(n),[]).join("&"):l(n,t)+"="+l(a,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:h(d(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0},n);const r=p(e.url).split("?")[0]||"",a=t.extract(e.url),o=t.parse(a,{sort:!1}),i=Object.assign(o,e.query);let s=t.stringify(i,n);s&&(s=`?${s}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${l(e.fragmentIdentifier,n)}`),`${r}${s}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0},r);const{url:a,query:o,fragmentIdentifier:s}=t.parseUrl(e,r);return t.stringifyUrl({url:a,query:i(o,n),fragmentIdentifier:s},r)},t.exclude=(e,n,r)=>{const a=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,a,r)}},63851:function(e){"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},55778:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},84080:function(e){e.exports=/[\0-\x1F\x7F-\x9F]/},75423:function(e){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},87696:function(e){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},76202:function(e){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},39126:function(e,t,n){"use strict";t.Any=n(26285),t.Cc=n(84080),t.Cf=n(75423),t.P=n(87696),t.Z=n(76202)},26285:function(e){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},86841:function(){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set&&"function"==typeof t.prototype.entries}catch(e){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var o=e[r];if("[object Array]"!==Object.prototype.toString.call(o)&&2===o.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(o[0],o[1])}else for(var i in e)e.hasOwnProperty(i)&&this.append(i,e[i])}},o=a.prototype;o.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},o.delete=function(e){delete this._entries[e]},o.get=function(e){return e in this._entries?this._entries[e][0]:null},o.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},o.has=function(e){return e in this._entries},o.set=function(e,t){this._entries[e]=[String(t)]},o.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},o.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},o.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},o.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(o[Symbol.iterator]=o.entries),o.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var o=e.URLSearchParams.prototype;"function"!=typeof o.sort&&(o.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof o._fromString&&Object.defineProperty(o,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,o=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<o.length;n++)r=o[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c d","http://a/c%20d"===t.href&&t.searchParams}catch(e){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t)),n&&"string"!=typeof n&&(n=String(n));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){n=n.toLowerCase(),(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(e){throw new Error("URL unable to set base "+n+" due to "+e)}}var o=a.createElement("a");o.href=t,r&&(a.body.appendChild(o),o.href=o.href);var i=a.createElement("input");if(i.type="url",i.value=t,":"===o.protocol||!/:/.test(o.href)||!i.checkValidity()&&!n)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:o});var s=new e.URLSearchParams(this.search),l=!0,c=!0,u=this;["append","delete","set"].forEach((function(e){var t=s[e];s[e]=function(){t.apply(s,arguments),l&&(c=!1,u.search=s.toString(),c=!0)}})),Object.defineProperty(this,"searchParams",{value:s,enumerable:!0});var p=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==p&&(p=this.search,c&&(l=!1,this.searchParams._fromString(this.search),l=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},82827:function(e,t,n){"use strict";var r=n(7104),a=n(68070);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.Qc=v,t.WU=function(e){a.isString(e)&&(e=v(e));return e instanceof o?e.format():o.prototype.format.call(e)};var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},k=n(76250);function v(e,t,n){if(e&&a.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var v=e=c.join(s);if(v=v.trim(),!n&&1===e.split("#").length){var y=l.exec(v);if(y)return this.path=v,this.href=v,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?k.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var E=i.exec(v);if(E){var w=(E=E[0]).toLowerCase();this.protocol=w,v=v.substr(E.length)}if(n||E||v.match(/^\/\/[^@\/]+@[^@\/]+/)){var _="//"===v.substr(0,2);!_||E&&g[E]||(v=v.substr(2),this.slashes=!0)}if(!g[E]&&(_||E&&!b[E])){for(var C,x,j=-1,S=0;S<d.length;S++){-1!==(A=v.indexOf(d[S]))&&(-1===j||A<j)&&(j=A)}-1!==(x=-1===j?v.lastIndexOf("@"):v.lastIndexOf("@",j))&&(C=v.slice(0,x),v=v.slice(x+1),this.auth=decodeURIComponent(C)),j=-1;for(S=0;S<p.length;S++){var A;-1!==(A=v.indexOf(p[S]))&&(-1===j||A<j)&&(j=A)}-1===j&&(j=v.length),this.host=v.slice(0,j),v=v.slice(j),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var T=this.hostname.split(/\./),P=(S=0,T.length);S<P;S++){var M=T[S];if(M&&!M.match(m)){for(var I="",R=0,L=M.length;R<L;R++)M.charCodeAt(R)>127?I+="x":I+=M[R];if(!I.match(m)){var B=T.slice(0,S),F=T.slice(S+1),Z=M.match(h);Z&&(B.push(Z[1]),F.unshift(Z[2])),F.length&&(v="/"+F.join(".")+v),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=r.toASCII(this.hostname));var D=this.port?":"+this.port:"",O=this.hostname||"";this.host=O+D,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!f[w])for(S=0,P=u.length;S<P;S++){var z=u[S];if(-1!==v.indexOf(z)){var $=encodeURIComponent(z);$===z&&($=escape(z)),v=v.split(z).join($)}}var U=v.indexOf("#");-1!==U&&(this.hash=v.substr(U),v=v.slice(0,U));var V=v.indexOf("?");if(-1!==V?(this.search=v.substr(V),this.query=v.substr(V+1),t&&(this.query=k.parse(this.query)),v=v.slice(0,V)):t&&(this.search="",this.query={}),v&&(this.pathname=v),b[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){D=this.pathname||"";var q=this.search||"";this.path=D+q}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(i=k.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||b[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},o.prototype.resolve=function(e){return this.resolveObject(v(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(a.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(n[u]=e[u])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!b[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var m=p[d];n[m]=e[m]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),n.pathname=h.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",k=n.search||"";n.path=f+k}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var v=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=y||v||n.host&&e.pathname,w=E,_=n.pathname&&n.pathname.split("/")||[],C=(h=e.pathname&&e.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),E=E&&(""===h[0]||""===_[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,_=h;else if(h.length)_||(_=[]),_.pop(),_=_.concat(h),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(C)n.hostname=n.host=_.shift(),(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var x=_.slice(-1)[0],j=(n.host||e.host||_.length>1)&&("."===x||".."===x)||""===x,S=0,A=_.length;A>=0;A--)"."===(x=_[A])?_.splice(A,1):".."===x?(_.splice(A,1),S++):S&&(_.splice(A,1),S--);if(!E&&!w)for(;S--;S)_.unshift("..");!E||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),j&&"/"!==_.join("/").substr(-1)&&_.push("");var N,T=""===_[0]||_[0]&&"/"===_[0].charAt(0);C&&(n.hostname=n.host=T?"":_.length?_.shift():"",(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift()));return(E=E||n.host&&_.length)&&!T&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},68070:function(e){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},11043:function(e,t,n){"use strict";var r=n(1625),a=n(99196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,o=a.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=o[0];var i=o[1];return o=e.value,e.getCurrentValue===t&&e.subscribe===n||(o=t(),i({getCurrentValue:t,subscribe:n,value:o})),a.useDebugValue(o),a.useEffect((function(){function e(){if(!a){var e=t();i((function(a){return a.getCurrentValue!==t||a.subscribe!==n||a.value===e?a:r({},a,{value:e})}))}}var a=!1,o=n(e);return e(),function(){a=!0,o()}}),[t,n]),o}},20036:function(e,t,n){"use strict";e.exports=n(11043)},61521:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},22199:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,a=arguments.length;n<a;n++)t.push(arguments[n]);return t}function a(e,t,n){var r=t===e.head?new s(n,null,t,e):new s(n,t,t.next,e);return null===r.next&&(e.tail=r),null===r.prev&&(e.head=r),e.length++,r}function o(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function i(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,n,r){if(!(this instanceof s))return new s(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}e.exports=r,r.Node=s,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},r.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},r.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},r.prototype.forEach=function(e,t){t=t||this;for(var n=this.head,r=0;null!==n;r++)e.call(t,n.value,r,this),n=n.next},r.prototype.forEachReverse=function(e,t){t=t||this;for(var n=this.tail,r=this.length-1;null!==n;r--)e.call(t,n.value,r,this),n=n.prev},r.prototype.get=function(e){for(var t=0,n=this.head;null!==n&&t<e;t++)n=n.next;if(t===e&&null!==n)return n.value},r.prototype.getReverse=function(e){for(var t=0,n=this.tail;null!==n&&t<e;t++)n=n.prev;if(t===e&&null!==n)return n.value},r.prototype.map=function(e,t){t=t||this;for(var n=new r,a=this.head;null!==a;)n.push(e.call(t,a.value,this)),a=a.next;return n},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r,a=this.tail;null!==a;)n.push(e.call(t,a.value,this)),a=a.prev;return n},r.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var a=0;null!==r;a++)n=e(n,r.value,a),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var a=this.length-1;null!==r;a--)n=e(n,r.value,a),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=0,o=this.head;null!==o&&a<e;a++)o=o.next;for(;null!==o&&a<t;a++,o=o.next)n.push(o.value);return n},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=this.length,o=this.tail;null!==o&&a>t;a--)o=o.prev;for(;null!==o&&a>e;a--,o=o.prev)n.push(o.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,o=this.head;null!==o&&r<e;r++)o=o.next;var i=[];for(r=0;o&&r<t;r++)i.push(o.value),o=this.removeNode(o);null===o&&(o=this.tail),o!==this.head&&o!==this.tail&&(o=o.prev);for(r=0;r<n.length;r++)o=a(this,o,n[r]);return i},r.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;null!==n;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};try{n(61521)(r)}catch(e){}},8964:function(e,t,n){"use strict";e.exports=n.p+"images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png"},96406:function(e,t,n){"use strict";e.exports=n.p+"images/map-preview-97bda80ebb6981457630.jpg"},45107:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg"},56932:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_default-b53ccdf170e5ac873ff0.jpg"},65765:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_satellite-cc50c608e244f90d18dc.jpg"},34140:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_terrain-ac291441b3461820747d.jpg"},23879:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-2x-3d5d36867a0f3728cc3a.png"},22323:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-5ecd2d5421d74f39e027.png"},60206:function(e,t,n){"use strict";e.exports=n.p+"images/simple-payments_example-1-0273eeccd8d120df4984.jpg"},65784:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-1-07a3f164621235df0419.jpg"},6425:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-2-2ee401e47066229bdac5.jpg"},85983:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-3-0682afca66c485f17ff6.jpg"},96606:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg"},85472:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg"},79009:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-3-07a3f164621235df0419.jpg"},10742:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg"},52642:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg"},41145:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg"},41194:function(e,t,n){"use strict";e.exports=n.p+"images/videopress-block-example-image-da9ef73787adca8896f2.jpg"},80405:function(e,t,n){"use strict";e.exports=n.p+"images/example_160x600-ccbc594f54431dafa70d.png"},72473:function(e,t,n){"use strict";e.exports=n.p+"images/example_300x250-5b93e8174f02d48c40b7.png"},38511:function(e,t,n){"use strict";e.exports=n.p+"images/example_320x50-7110edf045141630a222.png"},52203:function(e,t,n){"use strict";e.exports=n.p+"images/example_728x90-d9de384932330b92e1c3.png"},99196:function(e){"use strict";e.exports=window.React},92819:function(e){"use strict";e.exports=window.lodash},76292:function(e){"use strict";e.exports=window.moment},86989:function(e){"use strict";e.exports=window.wp.apiFetch},11313:function(e){"use strict";e.exports=window.wp.blob},52175:function(e){"use strict";e.exports=window.wp.blockEditor},4981:function(e){"use strict";e.exports=window.wp.blocks},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69771:function(e){"use strict";e.exports=window.wp.date},47701:function(e){"use strict";e.exports=window.wp.domReady},12238:function(e){"use strict";e.exports=window.wp.editor},69307:function(e){"use strict";e.exports=window.wp.element},81975:function(e){"use strict";e.exports=window.wp.escapeHtml},92694:function(e){"use strict";e.exports=window.wp.hooks},65736:function(e){"use strict";e.exports=window.wp.i18n},39630:function(e){"use strict";e.exports=window.wp.keycodes},53961:function(e){"use strict";e.exports=window.wp.notices},70444:function(e){"use strict";e.exports=window.wp.primitives},29512:function(e){"use strict";e.exports=window.wp.tokenList},96483:function(e){"use strict";e.exports=window.wp.url},90162:function(e){"use strict";e.exports=window.wp.viewport},8134:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},14316:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97024:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e){if(Array.isArray(e))return(0,r.Z)(e)}},55200:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},71687:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},93772:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(72406),a=n(58189),o=n(34621);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},98086:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},95672:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},72406:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},82104:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(43051);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},58189:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},40613:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},20120:function(e,t,n){"use strict";function r(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],_n=!0,i=!1;try{for(n=n.call(e);!(_n=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,a=e}finally{try{_n||null==n.return||n.return()}finally{if(i)throw a}}return o}}n.d(t,{Z:function(){return r}})},41722:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},56083:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},52141:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(98086);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&a.push.apply(a,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach((function(t){(0,r.Z)(e,t,n[t])}))}return e}},59591:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98086);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},34621:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(29504),a=n(55200);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},43051:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},50572:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(14316),a=n(20120),o=n(33611),i=n(41722);function s(e,t){return(0,r.Z)(e)||(0,a.Z)(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},59128:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(97024),a=n(40613),o=n(33611),i=n(56083);function s(e){return(0,r.Z)(e)||(0,a.Z)(e)||(0,o.Z)(e)||(0,i.Z)()}},29504:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},33611:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},27655:function(e){"use strict";e.exports=JSON.parse('{"O":{"White":"#fff","Black":"#000","Gray":"#646970","Gray 0":"#f6f7f7","Gray 5":"#dcdcde","Gray 10":"#c3c4c7","Gray 20":"#a7aaad","Gray 30":"#8c8f94","Gray 40":"#787c82","Gray 50":"#646970","Gray 60":"#50575e","Gray 70":"#3c434a","Gray 80":"#2c3338","Gray 90":"#1d2327","Gray 100":"#101517","Blue":"#0675c4","Blue 0":"#e9f0f5","Blue 5":"#bbe0fa","Blue 10":"#91caf2","Blue 20":"#68b3e8","Blue 30":"#399ce3","Blue 40":"#1689db","Blue 50":"#0675c4","Blue 60":"#055d9c","Blue 70":"#044b7a","Blue 80":"#02395c","Blue 90":"#01283d","Blue 100":"#001621","Purple":"#984a9c","Purple 0":"#f2e9ed","Purple 5":"#ebcee0","Purple 10":"#e3afd5","Purple 20":"#d48fc8","Purple 30":"#c475bd","Purple 40":"#b35eb1","Purple 50":"#984a9c","Purple 60":"#7c3982","Purple 70":"#662c6e","Purple 80":"#4d2054","Purple 90":"#35163b","Purple 100":"#1e0c21","Pink":"#c9356e","Pink 0":"#f5e9ed","Pink 5":"#f2ceda","Pink 10":"#f7a8c3","Pink 20":"#f283aa","Pink 30":"#eb6594","Pink 40":"#e34c84","Pink 50":"#c9356e","Pink 60":"#ab235a","Pink 70":"#8c1749","Pink 80":"#700f3b","Pink 90":"#4f092a","Pink 100":"#260415","Red":"#d63638","Red 0":"#f7ebec","Red 5":"#facfd2","Red 10":"#ffabaf","Red 20":"#ff8085","Red 30":"#f86368","Red 40":"#e65054","Red 50":"#d63638","Red 60":"#b32d2e","Red 70":"#8a2424","Red 80":"#691c1c","Red 90":"#451313","Red 100":"#240a0a","Orange":"#b26200","Orange 0":"#f5ece6","Orange 5":"#f7dcc6","Orange 10":"#ffbf86","Orange 20":"#faa754","Orange 30":"#e68b28","Orange 40":"#d67709","Orange 50":"#b26200","Orange 60":"#8a4d00","Orange 70":"#704000","Orange 80":"#543100","Orange 90":"#361f00","Orange 100":"#1f1200","Yellow":"#9d6e00","Yellow 0":"#f5f1e1","Yellow 5":"#f5e6b3","Yellow 10":"#f2d76b","Yellow 20":"#f0c930","Yellow 30":"#deb100","Yellow 40":"#c08c00","Yellow 50":"#9d6e00","Yellow 60":"#7d5600","Yellow 70":"#674600","Yellow 80":"#4f3500","Yellow 90":"#320","Yellow 100":"#1c1300","Green":"#008a20","Green 0":"#e6f2e8","Green 5":"#b8e6bf","Green 10":"#68de86","Green 20":"#1ed15a","Green 30":"#00ba37","Green 40":"#00a32a","Green 50":"#008a20","Green 60":"#007017","Green 70":"#005c12","Green 80":"#00450c","Green 90":"#003008","Green 100":"#001c05","Celadon":"#008763","Celadon 0":"#e4f2ed","Celadon 5":"#a7e8d3","Celadon 10":"#66deb9","Celadon 20":"#31cc9f","Celadon 30":"#09b585","Celadon 40":"#009e73","Celadon 50":"#008763","Celadon 60":"#007053","Celadon 70":"#005c44","Celadon 80":"#004533","Celadon 90":"#003024","Celadon 100":"#001c15","WordPress Blue":"#006088","WordPress Blue 0":"#e6f1f5","WordPress Blue 5":"#bedae6","WordPress Blue 10":"#98c6d9","WordPress Blue 20":"#6ab3d0","WordPress Blue 30":"#3895ba","WordPress Blue 40":"#187aa2","WordPress Blue 50":"#006088","WordPress Blue 60":"#004e6e","WordPress Blue 70":"#003c56","WordPress Blue 80":"#002c40","WordPress Blue 90":"#001d2d","WordPress Blue 100":"#00101c","Simplenote Blue":"#3361cc","Simplenote Blue 0":"#e9ecf5","Simplenote Blue 5":"#ced9f2","Simplenote Blue 10":"#abc1f5","Simplenote Blue 20":"#84a4f0","Simplenote Blue 30":"#618df2","Simplenote Blue 40":"#4678eb","Simplenote Blue 50":"#3361cc","Simplenote Blue 60":"#1d4fc4","Simplenote Blue 70":"#113ead","Simplenote Blue 80":"#0d2f85","Simplenote Blue 90":"#09205c","Simplenote Blue 100":"#05102e","WooCommerce Purple":"#7f54b3","WooCommerce Purple 0":"#f7edf7","WooCommerce Purple 5":"#e5cfe8","WooCommerce Purple 10":"#d6b4e0","WooCommerce Purple 20":"#c792e0","WooCommerce Purple 30":"#af7dd1","WooCommerce Purple 40":"#9a69c7","WooCommerce Purple 50":"#7f54b3","WooCommerce Purple 60":"#674399","WooCommerce Purple 70":"#533582","WooCommerce Purple 80":"#3c2861","WooCommerce Purple 90":"#271b3d","WooCommerce Purple 100":"#140e1f","Jetpack Green":"#069e08","Jetpack Green 0":"#f0f2eb","Jetpack Green 5":"#d0e6b8","Jetpack Green 10":"#9dd977","Jetpack Green 20":"#64ca43","Jetpack Green 30":"#2fb41f","Jetpack Green 40":"#069e08","Jetpack Green 50":"#008710","Jetpack Green 60":"#007117","Jetpack Green 70":"#005b18","Jetpack Green 80":"#004515","Jetpack Green 90":"#003010","Jetpack Green 100":"#001c09"}}')},60231:function(e){"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},45388:function(e){"use strict";e.exports=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]')},1949:function(e){"use strict";e.exports={Kc:["amazon"]}}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=i,l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);l.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return n[e]}}));return o.default=function(){return n},l.d(a,o),a},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce((function(t,n){return l.f[n](e,t),t}),[]))},l.u=function(e){return(390===e?"swiper":e)+".js?minify=false&ver="+{390:"87699145e1e11e92e952",860:"d8d32efbe3dcb1077f70"}[e]},l.miniCssF=function(e){return"swiper.css?minify=false&ver=4f0a26962ac03729a198"},function(){if(!l.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;l.miniCssF=(e=l.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="Jetpack:",l.l=function(e,t,a,o){if(n[e])n[e].push(t);else{var i,s;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var p=c[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==r+a){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",r+a),i.src=e),n[e]=[t];var d=function(t,r){i.onerror=i.onload=null,clearTimeout(m);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((function(e){return e(r)})),t)return t(r)},m=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),s&&document.head.appendChild(i)}},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e}(),a=function(e){return new Promise((function(t,n){var r=l.miniCssF(e),a=l.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var a=(i=n[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(a===e||a===t))return i}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var i;if((a=(i=o[r]).getAttribute("data-href"))===e||a===t)return i}}(r,a))return t();!function(e,t,n,r){var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=function(o){if(a.onerror=a.onload=null,"load"===o.type)n();else{var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=i,l.request=s,a.parentNode.removeChild(a),r(l)}},a.href=t,document.head.appendChild(a)}(e,a,t,n)}))},o={486:0},l.f.miniCss=function(e,t){o[e]?t.push(o[e]):0!==o[e]&&{390:1}[e]&&t.push(o[e]=a(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))},function(){var e={486:0};l.f.j=function(t,n){var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(390!=t){var a=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=a);var o=l.p+l.u(t),i=new Error;l.l(o,(function(n){if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,r[1](i)}}),"chunk-"+t,t)}else e[t]=0};var t=function(t,n){var r,a,o=n[0],i=n[1],s=n[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(s)s(l)}for(t&&t(n);c<o.length;c++)a=o[c],l.o(e,a)&&e[a]&&e[a][0](),e[o[c]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";l(57836),l(6757),l(7616),l(92919),l(26634),l(17269),l(56771),l(58721),l(73617);var e=l(11973);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){const{userid:t,username:n}=window.Jetpack_Editor_Initial_State.tracksUserData;e.Z.initialize(t,n,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}}(),function(){"use strict";var e=l(28069),t=l(8042);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32278);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(79884);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(75494);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(20195);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(63445);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(45166);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(31072);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(13984);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(77007);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(19916);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(92828);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(7882);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(5458);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(18161);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(84807);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(82163);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32051);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57368);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(8223);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(35289);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(94120);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57211);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(80349);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(29183),t=l.n(e),n=l(69307),r=l(55609),a=l(11313),o=l(4981),i=l(12238),s=l(52175),c=l(92694),u=l(94333),p=l(65736),d=l(92819),m=l(6976),h=l(64089),f=l(21409),g=l(71486),b=l(4207),k=l(3082),v=l(58014),y=l(28137),E=l(41194);const __=p.__,w=(0,u.createHigherOrderComponent)((e=>a=>{const{name:o}=(0,s.useBlockEditContext)();return"core/video"!==o?(0,n.createElement)(e,a):(0,n.createElement)(e,t()({},a,{disableDropZone:!0,className:"no-videopress-media-placeholder"}),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Media Library","jetpack")),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Upload","jetpack")))}),"videoPressNoPlanMediaPlaceholder"),_=(e,t,n)=>("core/video"!==t.name||!n.guid||n.className?.indexOf("wp-block-video")>=0||n.videoPressClassNames||(e.className=e.className.replace("wp-block-video","").trim()),e);(0,c.addFilter)("blocks.registerBlockType","jetpack/videopress",((e,t)=>{if("core/embed"===t)return(e=>{if(!("variations"in e)||"object"!=typeof e.variations)return;const{available:t}=(0,f.Z)("videopress");e.variations.some((e=>"videopress"===e.name&&(t&&(e.scope=[]),e.patterns.push(/^https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?$/i),!0)))})(e),e;if("core/video"!==t||e.isDeprecation)return e;const{deprecated:n,edit:r,save:s,supports:l,transforms:u}=e,{available:p,unavailableReason:C}=(0,f.Z)("videopress");if(((0,v.Wp)()||(0,v.Ug)())&&["missing_plan","unknown"].includes(C)?((0,c.addFilter)("editor.MediaPlaceholder","jetpack/videopress",w),(0,c.addFilter)("editor.BlockListBlock","jetpack/videopress-with-has-warning-is-interactive-class-names",(0,y.Z)("core/video"))):p&&(e.description=__("Embed a video from your media library or upload a new one with VideoPress.","jetpack"),e.example.attributes={caption:"",isVideoPressExample:!0,src:E}),(0,c.addFilter)("blocks.getSaveContent.extraProps","jetpack/videopress",_,20),p||["missing_plan","missing_module","unknown"].includes(C)){const t={autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},maxWidth:{type:"string",default:"100%"},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},isVideoPressExample:{type:"boolean",default:!1},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},useAverageColor:{type:"boolean"},videoPressTracks:{type:"array",items:{type:"object"},default:[]},videoPressClassNames:{type:"string"}},c=/https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?/i;return{...e,attributes:t,transforms:{...u,from:[{type:"files",isMatch:e=>(0,d.every)(e,(e=>0===e.type.indexOf("video/"))),priority:9,transform:(e,t)=>{const n=[];return e.forEach((e=>{const r=(0,o.createBlock)("core/video",{src:(0,a.createBlobURL)(e)});(0,i.mediaUpload)({filesList:[e],onFileChange:e=>{let[{id:n,url:a}]=e;t(r.clientId,{id:n,src:a})},allowedTypes:["video"]}),n.push(r)})),n}},{type:"raw",isMatch:e=>"P"===e.nodeName&&c.test(e.innerHTML),transform:e=>{const t=c.exec(e.innerHTML);return(0,o.createBlock)("core/embed",{url:"https://videopress.com/v/"+t[1].trim()})}}]},supports:{...l,reusable:!1},edit:(0,m.Z)(r),save:(0,h.Z)(s),deprecated:[...n||[],k.Z,{attributes:t,isEligible:e=>!e.guid,save:s,supports:l,isDeprecation:!0},b.Z,g.Z]}}return e}),5)}(),function(){"use strict";var e=l(28069),t=l(62086);(0,e.Z)(t.u2,t.Xd)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor-no-post-editor.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/editor-no-post-editor.js.LICENSE.txt
new file mode 100644
index 00000000..f4234c69
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-no-post-editor.js.LICENSE.txt
@@ -0,0 +1,30 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*! https://mths.be/punycode v1.3.2 by @mathias */
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/blocks/editor-no-post-editor.rtl.css b/plugins/jetpack/_inc/blocks/editor-no-post-editor.rtl.css
new file mode 100644
index 00000000..a4a1a7b1
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor-no-post-editor.rtl.css
@@ -0,0 +1 @@
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);-o-object-fit:contain;object-fit:contain;position:absolute;right:8px;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;right:0;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:right;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;padding:20px 0;position:fixed;position:sticky;right:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-left:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-left:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-right:1px solid #ccc;margin-right:16px;padding-right:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-left:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 0 9px 1px}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-left:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;left:0;margin-top:-48px;padding:0;position:absolute;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-left:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-right:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-left:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-left:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-left:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-left:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-left:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right;margin:3px 0 0 5px}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:right;margin:0 0 0 5px}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-right:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-right:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-right:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-left:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-right:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:right}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;position:absolute;right:0;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;margin:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-left:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:right}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-left:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;margin-right:-16px;margin-top:-19px;position:absolute;right:50%;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:left;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:right;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-left:0;margin-right:0;padding-right:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 4px 0 0;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:right}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:0;right:auto}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:right}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{left:auto;margin-right:2rem;max-width:840px}.wp-block-jetpack-opentable.is-style-wide.alignright{max-width:840px;right:calc(100% - 840px - 2rem)}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 8px 0 24px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-left:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;right:calc(50% - 12px);top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-left:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;left:0;padding:0 4px;pointer-events:none;position:absolute;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;left:10px;margin-top:0;position:absolute;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;left:auto;padding-top:0;position:relative}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;left:0;margin:0;position:absolute}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{right:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-left:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 12px 4px 0;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-left:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-right:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor.asset.php b/plugins/jetpack/_inc/blocks/editor.asset.php
index ceeb2817..612719f2 100644
--- a/plugins/jetpack/_inc/blocks/editor.asset.php
+++ b/plugins/jetpack/_inc/blocks/editor.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-token-list', 'wp-url'), 'version' => 'ca75bfa5584bc5343456a53a5d00d452'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'moment', 'react', 'wp-a11y', 'wp-annotations', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-dom-ready', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-token-list', 'wp-url', 'wp-viewport'), 'version' => 'baf23a3318354fca47fdcfb3e7a40a2a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor.css b/plugins/jetpack/_inc/blocks/editor.css
index 0bbd46a1..9a3e585b 100644
--- a/plugins/jetpack/_inc/blocks/editor.css
+++ b/plugins/jetpack/_inc/blocks/editor.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:left;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 32px 2px 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat right 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;left:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-right:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;left:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-left:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:right}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:left}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 0 0 4px;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-right:0;padding-left:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:left;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-left:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-right:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-left:0;margin-right:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-right:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;left:0;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 0 0 5%;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-left:-10px;margin-right:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);left:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 0 0 6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-right:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;left:50%;margin-top:-9px;margin-left:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 0 2px 2px;position:absolute;right:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;left:50%;margin:0;transform:translate(-50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);left:8px;-o-object-fit:contain;object-fit:contain;position:absolute;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:left;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;left:0;padding:20px 0;position:fixed;position:sticky;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-right:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-right:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-left:1px solid #ccc;margin-left:16px;padding-left:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-right:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 1px 9px 0}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-right:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;margin-top:-48px;padding:0;position:absolute;right:0;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-right:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-right:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-left:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-right:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-right:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-right:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-right:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-right:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-right:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-right:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-right:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:left}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 8px 0 16px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-right:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:left;margin:3px 5px 0 0}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:left;margin:0 5px 0 0}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-left:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-left:-6px;padding:4px 8px 4px 4px}.jetpack-field-multiple__add-option svg{margin-right:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-left:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-right:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-right:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-left:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-left:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-right:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-left:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:left}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-right:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;left:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px 0 2px -2px;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-right:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:left}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{left:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-right:12px}.components-placeholder.is-large .image-compare__image-after{padding-left:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-left:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-left:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto auto auto -3px;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}div.jx-arrow.jx-right{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;left:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;right:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{left:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{right:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{left:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;right:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{left:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:0;left:0}div.jx-image.jx-left img{left:0}div.jx-image.jx-right{background-position:100%;right:0}div.jx-image.jx-right img{bottom:0;right:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:left;left:0}div.jx-image.jx-right div.jx-label{float:right;right:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;left:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:left .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-left:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);left:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);right:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-right:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-right:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-right:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;left:50%;margin-left:-16px;margin-top:-19px;position:absolute;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:right;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-right:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-right:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:left;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-right:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-right:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 10px 5px 9px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-left:4px solid #000;margin-left:0;margin-right:0;padding-left:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-left:1.3em;padding-left:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 0 0 4px;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 1em .25em 0}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:1em;padding-right:0}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:left}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:auto;right:0}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:left}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{margin-left:2rem;max-width:840px;right:auto}.wp-block-jetpack-opentable.is-style-wide.alignright{left:calc(100% - 840px - 2rem);max-width:840px}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:15px;padding-right:18px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-right:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 24px 10px 22px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-left:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-left:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 2px 0 0;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-left:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-right:5px}.jetpack-publicize-connection-label{flex:1;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-right:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(-45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 0 0 8px}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-left:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-left:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);left:-10px;position:absolute;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-left:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:left}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 24px 0 8px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-right:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-right:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{left:calc(50% - 12px);position:absolute;top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:left}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-right:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-right:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-left:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-right:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 16px 8px 56px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-left:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-left:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-right:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 5px 0 0}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-left:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-left:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;left:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-right:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-left:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-right:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;padding:0 4px;pointer-events:none;position:absolute;right:0;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;padding-top:0;position:relative;right:auto}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-right:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-right:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-left:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-left:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:left;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 2px -4px 0;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-right:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-left:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";left:-20px;position:absolute}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-right:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-left:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-right:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;left:3px;position:absolute;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-right-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;margin:15px;padding:5px 3px;position:absolute;right:0;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{left:-84px;margin:auto}.wp-story-container .wp-story-next-slide{margin:auto;right:-84px}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-next-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 16px 0 0;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 12px 0 0;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-left:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{left:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{right:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-left:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-right:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:0;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-right:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;margin:0;position:absolute;right:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{left:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-right:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 0 4px 12px;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-right:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-left:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor.js b/plugins/jetpack/_inc/blocks/editor.js
index ec6bedaf..43af6f34 100644
--- a/plugins/jetpack/_inc/blocks/editor.js
+++ b/plugins/jetpack/_inc/blocks/editor.js
@@ -1,2 +1,148 @@
-/*! For license information please see editor.js.LICENSE */
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(t){for(var n,r,i=t[0],o=t[1],c=0,s=[];c<i.length;c++)r=i[c],Object.prototype.hasOwnProperty.call(a,r)&&a[r]&&s.push(a[r][0]),a[r]=0;for(n in o)Object.prototype.hasOwnProperty.call(o,n)&&(e[n]=o[n]);for(l&&l(t);s.length;)s.shift()()}var n={},r={3:0,5:0},a={3:0,5:0};function i(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.e=function(e){var t=[];r[e]?t.push(r[e]):0!==r[e]&&{16:1,17:1}[e]&&t.push(r[e]=new Promise((function(t,n){for(var a="rtl"===document.dir?({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".rtl.css":({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".css",o=i.p+a,c=document.getElementsByTagName("link"),s=0;s<c.length;s++){var l=(p=c[s]).getAttribute("data-href")||p.getAttribute("href");if("stylesheet"===p.rel&&(l===a||l===o))return t()}var u=document.getElementsByTagName("style");for(s=0;s<u.length;s++){var p;if((l=(p=u[s]).getAttribute("data-href"))===a||l===o)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.setAttribute("data-webpack",!0),d.onload=t,d.onerror=function(t){var a=t&&t.target&&t.target.src||o,i=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=a,delete r[e],d.parentNode.removeChild(d),n(i)},d.href=o,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){r[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var o=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=o);var c,s=document.createElement("script");s.charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.src=function(e){return i.p+""+({16:"vendors~map/mapbox-gl",17:"vendors~swiper"}[e]||e)+"."+{16:"04e03ac043566852ef07",17:"23fd414831f3de8536b3"}[e]+".js"}(e);var l=new Error;c=function(t){s.onerror=s.onload=null,clearTimeout(u);var n=a[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),i=t&&t.target&&t.target.src;l.message="Loading chunk "+e+" failed.\n("+r+": "+i+")",l.name="ChunkLoadError",l.type=r,l.request=i,n[1](l)}a[e]=void 0}};var u=setTimeout((function(){c({type:"timeout",target:s})}),12e4);s.onerror=s.onload=c,document.head.appendChild(s)}return Promise.all(t)},i.m=e,i.c=n,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i.oe=function(e){throw console.error(e),e};var o=window.webpackJsonp=window.webpackJsonp||[],c=o.push.bind(o);o.push=t,o=o.slice();for(var s=0;s<o.length;s++)t(o[s]);var l=c;return i(i.s=268)}([function(e,t){!function(){e.exports=this.wp.element}()},function(e,t){!function(){e.exports=this.wp.i18n}()},function(e,t){!function(){e.exports=this.wp.components}()},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){!function(){e.exports=this.lodash}()},function(e,t){!function(){e.exports=this.wp.blockEditor}()},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(127),a=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t,n){var r=n(128);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var i=typeof r;if("string"===i||"number"===i)e.push(r);else if(Array.isArray(r)&&r.length){var o=a.apply(null,r);o&&e.push(o)}else if("object"===i)for(var c in r)n.call(r,c)&&r[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(r=function(){return a}.apply(t,[]))||(e.exports=r)}()},function(e,t){!function(){e.exports=this.wp.data}()},function(e,t){!function(){e.exports=this.wp.compose}()},function(e,t,n){var r=n(3);function a(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},function(e,t){!function(){e.exports=this.wp.blocks}()},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(55),o=n(16),c=n(94),s=n(40),l=n(30),u=n.n(l),p=n(0),d=n(14),h=(n(143),function(e){return Object(d.createHigherOrderComponent)((function(t){return function(n){return Object(p.createElement)(t,u()({},n,{className:n.name===e?"has-warning is-interactive":""}))}}),"withHasWarningIsInteractiveClassNames")}),m=n(56),f=n.n(m),b=n(1),g=n(31),v=n(5),j=n(13),y=n(50),_=n(57),k=n(35),O=n(24),w={setPlans:function(e){return{type:"SET_PLANS",plans:e}},fetchFromAPI:function(e){return{type:"FETCH_FROM_API",url:e}}};Object(j.registerStore)("wordpress-com/plans",{reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PLANS":return t.plans}return e},actions:w,selectors:{getPlan:function(e,t){return e.find((function(e){return e.product_slug===t}))}},controls:{FETCH_FROM_API:function(e){var t=e.url;return fetch(t).then((function(e){return e.json()}))}},resolvers:{getPlan:regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return"https://public-api.wordpress.com/rest/v1.5/plans",e.next=3,w.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");case 3:return t=e.sent,e.abrupt("return",w.setPlans(t));case 5:case"end":return e.stop()}}),e)}))}});n(145);var E=Object(d.compose)([Object(j.withSelect)((function(e,t){var n=t.plan,r=e("wordpress-com/plans").getPlan(n),a=Object(v.startsWith)(n,"jetpack_")?n.substr("jetpack_".length):Object(v.get)(r,["path_slug"]),i=e("core/editor").getCurrentPostId(),o=e("core/editor").getCurrentPostType(),c=["page","post"].includes(o)?"":"edit",s=Object(O.b)()?Object(g.addQueryArgs)("/"+Object(v.compact)([c,o,Object(k.a)(),i]).join("/"),{plan_upgraded:1}):Object(g.addQueryArgs)(window.location.protocol+"//".concat(Object(k.a)().replace("::","/"),"/wp-admin/post.php"),{action:"edit",post:i,plan_upgraded:1}),l=a&&Object(g.addQueryArgs)("https://wordpress.com/checkout/".concat(Object(k.a)(),"/").concat(a),{redirect_to:s});return{trackEvent:function(e){y.a.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:r,block:e})},planName:Object(v.get)(r,["product_name"]),upgradeUrl:l}}))])((function(e){var t=e.planName,n=e.trackEvent,r=e.upgradeUrl;return Object(p.createElement)(_.a,{buttonLabel:Object(b.__)("Upgrade","jetpack"),icon:Object(p.createElement)(f.a,{className:"jetpack-upgrade-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:r,onClick:n,title:t?Object(b.sprintf)(Object(b.__)("Upgrade to %(planName)s to use this block on your site.","jetpack"),{planName:t}):Object(b.__)("Upgrade to a paid plan to use this block on your site.","jetpack"),subtitle:Object(b.__)("You can try it out before upgrading, but only you will see it. It will be hidden from your visitors until you upgrade.","jetpack")})})),C=function(e){var t=e.requiredPlan;return Object(d.createHigherOrderComponent)((function(e){return function(n){return Object(p.createElement)(p.Fragment,null,Object(p.createElement)(E,{plan:t,blockName:n.name}),Object(p.createElement)(e,n))}}),"wrapPaidBlock")};n.d(t,"a",(function(){return A}));var x=c.beta||[];function S(e,t){return"missing_plan"===e&&t.required_plan}function A(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=Object(s.a)(e),c=r.available,l=r.details,u=r.unavailableReason,p=S(u,l);if(!c&&!p)return!1;var d=Object(o.registerBlockType)("jetpack/".concat(e),a()({},t,{title:x.includes(e)?"".concat(t.title," (beta)"):t.title,edit:p?C({requiredPlan:p})(t.edit):t.edit,example:p?void 0:t.example}));return p&&Object(i.addFilter)("editor.BlockListBlock","jetpack/".concat(e,"-with-has-warning-is-interactive-class-names"),h("jetpack/".concat(e))),n.forEach((function(e){return Object(o.registerBlockType)("jetpack/".concat(e.name),e.settings)})),d}},function(e,t,n){var r=n(65),a=n(66),i=n(67);e.exports=function(e,t){return r(e)||a(e,t)||i()}},function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function i(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function o(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var c=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,s=new RegExp(c.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),l=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(81);var p=/[&<>"]/,d=/[&<>"]/g,h={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function m(e){return h[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var b=n(68);t.lib={},t.lib.mdurl=n(82),t.lib.ucmicro=n(168),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(c,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(s,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&l.test(t)&&i(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?o(n):e}(e,n)}))},t.isValidEntityCode=i,t.fromCodePoint=o,t.escapeHtml=function(e){return p.test(e)?e.replace(d,m):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return b.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e.trim().replace(/\s+/g," ").toUpperCase()}},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){return Object(r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},function(e,t,n){var r=n(123),a=n(124),i=n(125);e.exports=function(e){return r(e)||a(e)||i()}},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"h",(function(){return i})),n.d(t,"i",(function(){return o})),n.d(t,"c",(function(){return c})),n.d(t,"d",(function(){return s})),n.d(t,"e",(function(){return l})),n.d(t,"f",(function(){return u})),n.d(t,"g",(function(){return p}));var r=["image"],a=4,i=20,o=2e3,c="circle",s="columns",l="rectangular",u="square",p=[{isDefault:!0,name:l},{name:c},{name:u},{name:s}]},function(e,t){!function(){e.exports=this.wp.apiFetch}()},function(e,t,n){"use strict";function r(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function a(){return"simple"===r()}function i(){return"atomic"===r()}n.d(t,"b",(function(){return a})),n.d(t,"a",(function(){return i}))},function(e,t){!function(){e.exports=this.wp.blob}()},function(e,t){!function(){e.exports=this.wp.keycodes}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(0),a=n(1),i={name:"map",prefix:"jetpack",title:Object(a.__)("Map","jetpack"),icon:Object(r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},Object(r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Object(r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"jetpack",keywords:[Object(a._x)("map","block search term","jetpack"),Object(a._x)("location","block search term","jetpack"),Object(a._x)("navigation","block search term","jetpack")],description:Object(a.__)("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},mapStyle:{type:"string",default:"default"},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1}},supports:{html:!1},mapStyleOptions:[{value:"default",label:Object(a.__)("Basic","jetpack")},{value:"black_and_white",label:Object(a.__)("Black and white","jetpack")},{value:"satellite",label:Object(a.__)("Satellite","jetpack")},{value:"terrain",label:Object(a.__)("Terrain","jetpack")}],validAlignments:["center","wide","full"],markerIcon:Object(r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},Object(r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},Object(r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},Object(r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),Object(r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},function(e,t){!function(){e.exports=this.wp.editor}()},function(e,t,n){"use strict";var r=n(136),a=n(138);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=j,t.resolve=function(e,t){return j(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?j(e,!1,!0).resolveObject(t):t},t.format=function(e){a.isString(e)&&(e=j(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var o=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(139);function j(e,t,n){if(e&&a.isObject(e)&&e instanceof i)return e;var r=new i;return r.parse(e,t,n),r}i.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),c=-1!==i&&i<e.indexOf("#")?"?":"#",l=e.split(c);l[0]=l[0].replace(/\\/g,"/");var j=e=l.join(c);if(j=j.trim(),!n&&1===e.split("#").length){var y=s.exec(j);if(y)return this.path=j,this.href=j,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=o.exec(j);if(_){var k=(_=_[0]).toLowerCase();this.protocol=k,j=j.substr(_.length)}if(n||_||j.match(/^\/\/[^@\/]+@[^@\/]+/)){var O="//"===j.substr(0,2);!O||_&&b[_]||(j=j.substr(2),this.slashes=!0)}if(!b[_]&&(O||_&&!g[_])){for(var w,E,C=-1,x=0;x<d.length;x++){-1!==(S=j.indexOf(d[x]))&&(-1===C||S<C)&&(C=S)}-1!==(E=-1===C?j.lastIndexOf("@"):j.lastIndexOf("@",C))&&(w=j.slice(0,E),j=j.slice(E+1),this.auth=decodeURIComponent(w)),C=-1;for(x=0;x<p.length;x++){var S;-1!==(S=j.indexOf(p[x]))&&(-1===C||S<C)&&(C=S)}-1===C&&(C=j.length),this.host=j.slice(0,C),j=j.slice(C),this.parseHost(),this.hostname=this.hostname||"";var A="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!A)for(var F=this.hostname.split(/\./),P=(x=0,F.length);x<P;x++){var T=F[x];if(T&&!T.match(h)){for(var M="",N=0,R=T.length;N<R;N++)T.charCodeAt(N)>127?M+="x":M+=T[N];if(!M.match(h)){var D=F.slice(0,x),z=F.slice(x+1),I=T.match(m);I&&(D.push(I[1]),z.unshift(I[2])),z.length&&(j="/"+z.join(".")+j),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),A||(this.hostname=r.toASCII(this.hostname));var L=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+L,this.href+=this.host,A&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==j[0]&&(j="/"+j))}if(!f[k])for(x=0,P=u.length;x<P;x++){var q=u[x];if(-1!==j.indexOf(q)){var U=encodeURIComponent(q);U===q&&(U=escape(q)),j=j.split(q).join(U)}}var V=j.indexOf("#");-1!==V&&(this.hash=j.substr(V),j=j.slice(0,V));var H=j.indexOf("?");if(-1!==H?(this.search=j.substr(H),this.query=j.substr(H+1),t&&(this.query=v.parse(this.query)),j=j.slice(0,H)):t&&(this.search="",this.query={}),j&&(this.pathname=j),g[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){L=this.pathname||"";var G=this.search||"";this.path=L+G}return this.href=this.format(),this},i.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",i=!1,o="";this.host?i=e+this.host:this.hostname&&(i=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(i+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(o=v.stringify(this.query));var c=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||g[t])&&!1!==i?(i="//"+(i||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):i||(i=""),r&&"#"!==r.charAt(0)&&(r="#"+r),c&&"?"!==c.charAt(0)&&(c="?"+c),t+i+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(c=c.replace("#","%23"))+r},i.prototype.resolve=function(e){return this.resolveObject(j(e,!1,!0)).format()},i.prototype.resolveObject=function(e){if(a.isString(e)){var t=new i;t.parse(e,!1,!0),e=t}for(var n=new i,r=Object.keys(this),o=0;o<r.length;o++){var c=r[o];n[c]=this[c]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var s=Object.keys(e),l=0;l<s.length;l++){var u=s[l];"protocol"!==u&&(n[u]=e[u])}return g[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!g[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var h=p[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||b[e.protocol])n.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),n.pathname=m.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var j=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),_=y||j||n.host&&e.pathname,k=_,O=n.pathname&&n.pathname.split("/")||[],w=(m=e.pathname&&e.pathname.split("/")||[],n.protocol&&!g[n.protocol]);if(w&&(n.hostname="",n.port=null,n.host&&(""===O[0]?O[0]=n.host:O.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),_=_&&(""===m[0]||""===O[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,O=m;else if(m.length)O||(O=[]),O.pop(),O=O.concat(m),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(w)n.hostname=n.host=O.shift(),(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!O.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var E=O.slice(-1)[0],C=(n.host||e.host||O.length>1)&&("."===E||".."===E)||""===E,x=0,S=O.length;S>=0;S--)"."===(E=O[S])?O.splice(S,1):".."===E?(O.splice(S,1),x++):x&&(O.splice(S,1),x--);if(!_&&!k)for(;x--;x)O.unshift("..");!_||""===O[0]||O[0]&&"/"===O[0].charAt(0)||O.unshift(""),C&&"/"!==O.join("/").substr(-1)&&O.push("");var A,F=""===O[0]||O[0]&&"/"===O[0].charAt(0);w&&(n.hostname=n.host=F?"":O.length?O.shift():"",(A=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=A.shift(),n.host=n.hostname=A.shift()));return(_=_||n.host&&O.length)&&!F&&O.unshift(""),O.length?n.pathname=O.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=c.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t){!function(){e.exports=this.wp.url}()},function(e,t,n){"use strict";var r=n(3),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(10),m=n.n(h),f=n(0),b=n(1),g=n(12),v=n.n(g),j=n(14),y=n(2),_=n(6),k=n(5),O=window.getComputedStyle,w=Object(y.withFallbackStyles)((function(e,t){var n,r,a,i,o=t.textButtonColor,c=t.backgroundButtonColor,s=c&&c.color,l=o&&o.color;return!l&&e&&(n=e.querySelector('[contenteditable="true"]')),r=e.querySelector(".wp-block-button__link")?e.querySelector(".wp-block-button__link"):e,e&&(a=O(r).backgroundColor),n&&(i=O(n).color),{fallbackBackgroundColor:s||a,fallbackTextColor:l||i}})),E=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return m()(t,e),s()(t,[{key:"componentDidUpdate",value:function(e){if(!Object(k.isEqual)(this.props.textButtonColor,e.textButtonColor)||!Object(k.isEqual)(this.props.backgroundButtonColor,e.backgroundButtonColor)){var t=this.getButtonClasses();this.props.setAttributes({submitButtonClasses:t})}}},{key:"getButtonClasses",value:function(){var e,t=this.props,n=t.textButtonColor,r=t.backgroundButtonColor,i=Object(k.get)(n,"class"),o=Object(k.get)(r,"class");return v()("wp-block-button__link",(e={"has-text-color":n},a()(e,i,i),a()(e,"has-background",r),a()(e,o,o),e))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.fallbackBackgroundColor,r=e.fallbackTextColor,a=e.setAttributes,i=e.setBackgroundButtonColor,o=e.setTextButtonColor,c=t.customBackgroundButtonColor||n,s=t.customTextButtonColor||r,l={border:"none",backgroundColor:c,color:s},u=this.getButtonClasses();return Object(f.createElement)(f.Fragment,null,Object(f.createElement)("div",{className:"wp-block-button jetpack-submit-button"},Object(f.createElement)(_.RichText,{placeholder:Object(b.__)("Add text…","jetpack"),value:t.submitButtonText,onChange:function(e){return a({submitButtonText:e})},className:u,style:l,keepPlaceholderOnFocus:!0,allowedFormats:[]})),Object(f.createElement)(_.InspectorControls,null,Object(f.createElement)(_.PanelColorSettings,{title:Object(b.__)("Button Color Settings","jetpack"),colorSettings:[{value:c,onChange:function(e){i(e),a({customBackgroundButtonColor:e})},label:Object(b.__)("Background Color","jetpack")},{value:s,onChange:function(e){o(e),a({customTextButtonColor:e})},label:Object(b.__)("Text Color","jetpack")}]}),Object(f.createElement)(_.ContrastChecker,{textColor:s,backgroundColor:c})))}}]),t}(f.Component);t.a=Object(j.compose)([Object(_.withColors)("backgroundButtonColor",{textButtonColor:"color"}),w])(E)},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return a})),n.d(t,"d",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"e",(function(){return c}));var r="after-visits",a="before-visits",i=3,o="jp-visit-counter",c=15552e3},function(e,t){!function(){e.exports=this.React}()},function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,"a",(function(){return r}))},function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(47),a=n(40);function i(e,t){var n=Object(a.a)(e),i=n.available;n.unavailableReason;return!!i&&Object(r.registerPlugin)("jetpack-".concat(e),t)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return l})),n.d(t,"d",(function(){return c}));var r=n(74),a=n(5),i="wp-block-jetpack-slideshow_autoplay-paused";function o(e){c(e),s(e),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(i)?(e.el.classList.remove(i),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(i),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function c(e){if(e&&e.el){var t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(t){var n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,16/9),1),a="undefined"!=typeof window?.8*window.innerHeight:600,i=Math.min(e.width/r,a),o="".concat(Math.floor(i),"px"),c="".concat(Math.floor(i/2),"px");e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=o,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=c,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=c}}}function s(e){Object(a.forEach)(e.slides,(function(t,n){t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){var t=e.slides[e.activeIndex];if(t){var n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:Object(r.escapeHTML)(a.alt))}}(e)}function l(e){Object(a.forEach)(e.pagination.bullets,(function(t){t.addEventListener("click",(function(){var t=e.slides[e.realIndex];setTimeout((function(){t.focus()}),500)}))}))}},function(e,t,n){"use strict";var r=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return(function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}())}(),a="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,i="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var c=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&s()}function c(){o(i)}function s(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(c,t);a=e}return s}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){a&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){a&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;c.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},p=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||i},d=v(0,0,0,0);function h(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+h(e["border-"+n+"-width"])}),0)}function f(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=p(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],i=e["padding-"+a];t[a]=h(i)}return t}(r),i=a.left+a.right,o=a.top+a.bottom,c=h(r.width),s=h(r.height);if("border-box"===r.boxSizing&&(Math.round(c+i)!==t&&(c-=m(r,"left","right")+i),Math.round(s+o)!==n&&(s-=m(r,"top","bottom")+o)),!function(e){return e===p(e).document.documentElement}(e)){var l=Math.round(c+i)-t,u=Math.round(s+o)-n;1!==Math.abs(l)&&(c-=l),1!==Math.abs(u)&&(s-=u)}return v(a.left,a.top,c,s)}var b="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof p(e).SVGGraphicsElement}:function(e){return e instanceof p(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return a?b(e)?function(e){var t=e.getBBox();return v(0,0,t.width,t.height)}(e):f(e):d}function v(e,t,n,r){return{x:e,y:t,width:n,height:r}}var j=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=v(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,r,a,i,o,c,s,l=(r=(n=t).x,a=n.y,i=n.width,o=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,s=Object.create(c.prototype),u(s,{x:r,y:a,width:i,height:o,top:a,right:r+i,bottom:o+a,left:r}),s);u(this,{target:e,contentRect:l})},_=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new j(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof p(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new y(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),k="undefined"!=typeof WeakMap?new WeakMap:new r,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new _(t,n,this);k.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=k.get(this))[e].apply(t,arguments)}}));var w=void 0!==i.ResizeObserver?i.ResizeObserver:O;t.a=w},function(e,t,n){"use strict";var r=n(15),a=n.n(r),i=n(5);function o(e){var t=Object(i.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null),n=Object(i.get)(t,["available_blocks",e,"available"],!1),r=Object(i.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),o=Object(i.get)(t,["available_blocks",e,"details"],[]);return a()({available:n},!n&&{details:o,unavailableReason:r})}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";var r=n(30),a=n.n(r),i=n(46),o=n.n(i),c=n(0),s=n(12),l=n.n(s),u=n(96),p=n.n(u);n(151);t.a=function(e){var t=e.children,n=void 0===t?null:t,r=e.isError,i=void 0!==r&&r,s=o()(e,["children","isError"]),u=l()("help-message",{"help-message-is-error":i});return n&&Object(c.createElement)("div",a()({className:u},s),i&&Object(c.createElement)(p.a,{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),Object(c.createElement)("span",null,n))}},,function(e,t,n){"use strict";var r=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!r.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(2),i=n(52),o=n(47),c=(n(155),n(53)),s=Object(a.createSlotFill)("JetpackPluginSidebar"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-sidebar",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(r.Fragment,null,Object(r.createElement)(i.PluginSidebarMoreMenuItem,{target:"jetpack",icon:Object(r.createElement)(c.a,null)},"Jetpack"),Object(r.createElement)(i.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:Object(r.createElement)(c.a,null)},e)):null}))}})},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},function(e,t,n){var r=n(150);e.exports=function(e,t){if(null==e)return{};var n,a,i=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a<o.length;a++)n=o[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t){!function(){e.exports=this.wp.plugins}()},function(e,t,n){"use strict";var r=n(0),a=n(2);t.a=function(e){var t=e.label,n=e.onClick;return Object(r.createElement)(a.IconButton,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},function(e,t,n){"use strict";var r=n(54),a=n.n(r),i=n(102),o=n.n(i),c=n(103),s=n.n(c),l=n(63),u=n.n(l),p=n(104),d=n.n(p),h=n(77),m=n.n(h),f=n(105),b=n.n(f),g=n(72);function v(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,i=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,c=void 0===n?".":n,s="";return(s=(i?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,i):""+Math.round(a)).split("."))[0].length>3&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(s[1]||"").length<i&&(s[1]=s[1]||"",s[1]+=new Array(i-s[1].length+1).join("0")),s.join(c)}var j=o()("i18n-calypso"),y=[function(e){return e}],_={};function k(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function O(e){return Array.prototype.slice.call(e)}function w(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&k("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",O(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&k("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",O(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function E(e,t){var n="gettext";t.context&&(n="p"+n),"string"==typeof t.original&&"string"==typeof t.plural&&(n="n"+n);var r=function(e,t){switch(e){case"gettext":return[t.original];case"ngettext":return[t.original,t.plural,t.count];case"npgettext":return[t.context,t.original,t.plural,t.count];case"pgettext":return[t.context,t.original]}return[]}(n,t);return e[n].apply(e,r)}function C(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t));if(e.state.locale[r.original])return E(e.state.jed,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.state={numberFormatSettings:{},jed:void 0,locale:void 0,localeSlug:void 0,translations:d()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new g.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.moment=m.a,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return v(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){if(e&&e[""]&&e[""]["key-hash"]){var t=e[""]["key-hash"],n=function(e,t){var n=!1===t?"":String(t);if(void 0!==_[n+e])return _[n+e];var r=b()().update(e).digest("hex");return _[n+e]=t?r.substr(0,t):r},r=function(e){return function(t){return t.context?(t.original=n(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=n(t.original,e),t}};if("sha1"===t.substr(0,4))if(4===t.length)y.push(r(!1));else{var a=t.substr(5).indexOf("-");if(a<0){var i=Number(t.substr(5));y.push(r(i))}else for(var o=Number(t.substr(5,a)),c=Number(t.substr(6+a)),s=o;s<=c;s++)y.push(r(s))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.jed=new u.a({locale_data:{messages:this.state.locale}}),m.a.locale(this.state.localeSlug),this.state.numberFormatSettings.decimal_point=E(this.state.jed,w(["number_format_decimals"])),this.state.numberFormatSettings.thousands_sep=E(this.state.jed,w(["number_format_thousands_sep"])),"number_format_decimals"===this.state.numberFormatSettings.decimal_point&&(this.state.numberFormatSettings.decimal_point="."),"number_format_thousands_sep"===this.state.numberFormatSettings.thousands_sep&&(this.state.numberFormatSettings.thousands_sep=","),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.jed.options.locale_data.messages[t]=e[t]);this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!C(this,w(arguments))},x.prototype.translate=function(){var e,t=w(arguments),n=!t.components;if(n){try{e=JSON.stringify(t)}catch(c){n=!1}if(e){var r=this.state.translations.get(e);if(r)return r}}var a=C(this,t);if(a||(a=E(this.state.jed,t)),t.args){var i=Array.isArray(t.args)?t.args.slice(0):[t.args];i.unshift(a);try{a=u.a.sprintf.apply(u.a,i)}catch(l){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof l?window.console[o](l):window.console[o]("i18n sprintf error:",i)}}return t.components&&(a=s()({mixedString:a,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(e){a=e(a,t)})),n&&this.state.translations.set(e,a),a},x.prototype.reRenderTranslations=function(){j("Re-rendering all translations due to external request"),this.state.translations.clear(),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var S,A,F=x,P=n(7),T=n.n(P),M=n(11),N=n.n(M),R=n(8),D=n.n(R),z=n(9),I=n.n(z),L=n(4),B=n.n(L),q=n(10),U=n.n(q),V=n(3),H=n.n(V),G=n(34),$=n.n(G),W=n(18),K=n.n(W),Z=new F,J=(Z.moment,Z.numberFormat.bind(Z)),Y=(Z.translate.bind(Z),Z.configure.bind(Z),Z.setLocale.bind(Z),Z.getLocale.bind(Z),Z.getLocaleSlug.bind(Z),Z.addTranslations.bind(Z),Z.reRenderTranslations.bind(Z),Z.registerComponentUpdateHook.bind(Z),Z.registerTranslateHook.bind(Z),Z.state,Z.stateObserver,Z.on.bind(Z),Z.off.bind(Z),Z.emit.bind(Z),A={moment:(S=Z).moment,numberFormat:S.numberFormat.bind(S),translate:S.translate.bind(S)},function(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}}(Z),n(45));function Q(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=Object(Y.a)(t);if(!r||isNaN(e))return null;var i=a()({},r,n),o=i.decimal,c=i.grouping,s=i.precision,l=i.symbol,u=e<0?"-":"",p=J(Math.abs(e),{decimals:s,thousandsSep:c,decPoint:o});return"".concat(u).concat(l).concat(p)}n.d(t,"a",(function(){return Q}))},function(e,t,n){"use strict";var r=n(93),a=n.n(r),i=n(5),o={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};var c,s,l=function(e){if(e in o)return o[e];throw new Error("config key `"+e+"` does not exist")},u=a()("dops:analytics");window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;var p={initialize:function(e,t,n){p.setUser(e,t),p.setSuperProps(n),p.identifyUser()},setUser:function(e,t){s={ID:e,username:t}},setSuperProps:function(e){c=e},mc:{bumpStat:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&x_"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);u("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),u('Built stat "%s" in group "%s"',t,e);return n}(e,t);l("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){p.tracks.recordPageView(e),p.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,i,o){p.ga.recordPurchase(e,t,n,r,a,i,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(c&&(u("- Super Props: %o",c),t=Object(i.assign)(t,c)),u('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):u('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){var t="object"==typeof e?e:{target:e};p.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){p.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){u("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){var e={};p.ga.initialized||(s&&(e={userId:"u-"+s.ID}),window.ga("create",l("google_analytics_key"),"auto",e),p.ga.initialized=!0)},recordPageView:function(e,t){p.ga.initialize(),u("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),l("google_analytics_enabled")&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,n,r){p.ga.initialize();var a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),u(a),l("google_analytics_enabled")&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,i,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:i}),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"])}};t.a=p},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(5),a=function(e,t){return Object(r.reduce)(t,(function(t,n,r){var a=e[r],i=a.type,o=a.validator,c=a.validValues,s=a.default;return t[r]="boolean"===i?!!n:o?o(n)?n:s:c?c.includes(n)?n:s:n,t}),{})}},function(e,t){!function(){e.exports=this.wp.editPost}()},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(12),o=n.n(i);t.a=function(e){var t=e.size,n=void 0===t?24:t,i=e.className;return Object(r.createElement)(a.SVG,{className:o()("jetpack-logo",i),width:n,height:n,viewBox:"0 0 32 32"},Object(r.createElement)(a.Path,{className:"jetpack-logo__icon-circle",fill:"#00be28",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),Object(r.createElement)(a.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))}},function(e,t,n){var r=n(3);e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),a.forEach((function(t){r(e,t,n[t])}))}return e}},function(e,t){!function(){e.exports=this.wp.hooks}()},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-star",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.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"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){"use strict";var r=n(0),a=n(2),i=n(14),o=n(13),c=n(6);n(144);t.a=Object(i.compose)([Object(o.withDispatch)((function(e,t){var n=t.blockName,r=t.href,a=t.onClick;return{autosaveAndRedirect:function(t){return regeneratorRuntime.async((function(i){for(;;)switch(i.prev=i.next){case 0:return t.preventDefault(),a(n),i.next=4,regeneratorRuntime.awrap(e("core/editor").autosave());case 4:window.top.location.href=r;case 5:case"end":return i.stop()}}))}}}))])((function(e){var t=e.autosaveAndRedirect,n=e.buttonLabel,i=e.href,o=e.icon,s=e.subtitle,l=e.title;return Object(r.createElement)(c.Warning,{actions:i&&[Object(r.createElement)(a.Button,{href:i,onClick:t,target:"_top",isDefault:!0},n)],className:"jetpack-block-nudge"},Object(r.createElement)("span",{className:"jetpack-block-nudge__info"},o,Object(r.createElement)("span",{className:"jetpack-block-nudge__text-container"},Object(r.createElement)("span",{className:"jetpack-block-nudge__title"},l),Object(r.createElement)("span",{className:"jetpack-block-nudge__message"},s))))}))},function(e,t){!function(){e.exports=this.wp.date}()},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var r=n(15),a=n.n(r),i=n(0),o=n(12),c=n.n(o),s=n(5),l=n(16),u=n(6),p=n(13),d=n(26),h=function(e){var t=e.attributes,n=e.styleOption,r=e.viewportWidth,o=e.blockName,c=Object(l.getBlockType)(o);return Object(i.createElement)("div",{className:"block-editor-block-styles__item-preview"},Object(i.createElement)(u.BlockPreview,{viewportWidth:r,blocks:c.example?Object(l.getBlockFromExample)(o,{attributes:a()({},c.example.attributes,{style:n.value}),innerBlocks:c.example.innerBlocks}):Object(l.createBlock)(c,t)}))},m=i.memo?Object(i.memo)(h,(function(e,t){return Object(s.isEqual)(e,t)})):h;function f(e){var t,n=e.attributes,r=e.clientId,o=e.styleOptions,s=e.onSelectStyle,l=e.activeStyle,u=e.viewportWidth;return p.useSelect&&(t=Object(p.useSelect)((function(e){return(0,e("core/block-editor").getBlock)(r)}))),Object(i.createElement)("div",{className:"block-editor-block-styles"},o.map((function(e){var r=a()({},n,{style:e.value});return Object(i.createElement)("div",{key:e.value,className:c()("block-editor-block-styles__item",{"is-active":e.value===l}),onClick:function(){s({style:e.value})},onKeyDown:function(t){d.ENTER!==t.keyCode&&d.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},p.useSelect&&t&&Object(i.createElement)(m,{blockName:t.name,styleOption:e,attributes:r,viewportWidth:u}),Object(i.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))})))}},function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(0),a=n(1),i=n(2),o=n(47),c=n(44),s=Object(i.createSlotFill)("JetpackLikesAndSharingPanel"),l=s.Fill,u=s.Slot;Object(o.registerPlugin)("jetpack-likes-and-sharing-panel",{render:function(){return Object(r.createElement)(u,null,(function(e){return e.length?Object(r.createElement)(c.a,null,Object(r.createElement)(i.PanelBody,{title:Object(a.__)("Likes and Sharing","jetpack")},e)):null}))}})},function(e,t,n){"use strict";var r=n(233);Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=a.default.parse(e,!0,!0),r="https:"===n.protocol;delete n.protocol,delete n.auth,delete n.port;var l={slashes:!0,protocol:"https:",query:{}};if(f=n.host,/^i[0-2]\.wp\.com$/.test(f))l.pathname=n.pathname,l.hostname=n.hostname;else{if(n.search)return null;var u=a.default.format(n);l.pathname=0===u.indexOf("//")?u.substring(1):u,l.hostname=(p=l.pathname,d=(0,i.default)(p),h=(0,o.default)(d),m="i"+Math.floor(3*h()),c('determined server "%s" to use with "%s"',m,p),m+".wp.com"),r&&(l.query.ssl=1)}var p,d,h,m;var f;if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?l.query[s[b]||b]=t[b]:l.protocol="http:":l.hostname=t[b];var g=a.default.format(l);return c("generated Photon URL: %s",g),g};var a=r(n(29)),i=r(n(234)),o=r(n(235)),c=(0,r(n(236)).default)("photon"),s={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return s}));var r=n(18),a=n.n(r),i=n(22);function o(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function c(e,t){!function(e,t,n){var r=a()(t,2),c=r[0],s=r[1],h=1/c*(n-i.b*(e.childElementCount-1)-s);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=l(e),c=a.map((function(e){return(n-i.b*(e.childElementCount-1))*p(e)[0]})),s=o(c,r);a.forEach((function(e,t){var r=c[t],a=s[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=o(u(e).map((function(e){return a/d(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-i.b*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:h,rowWidth:n-i.b*(e.childElementCount-1)})}(e,function(e){return l(e).map(p).reduce((function(e,t){var n=a()(e,2),r=n[0],i=n[1],o=a()(t,2);return[r+o[0],i+o[1]]}),[0,0])}(e),t)}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function u(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function p(e){var t=u(e),n=t.length,r=1/t.map(d).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function d(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},function(e,t,n){!function(n,r){var a=Array.prototype,i=Object.prototype,o=a.slice,c=i.hasOwnProperty,s=a.forEach,l={},u={forEach:function(e,t,n){var r,a,i;if(null!==e)if(s&&e.forEach===s)e.forEach(t,n);else if(e.length===+e.length){for(r=0,a=e.length;r<a;r++)if(r in e&&t.call(n,e[r],r,e)===l)return}else for(i in e)if(c.call(e,i)&&t.call(n,e[i],i,e)===l)return},extend:function(e){return this.forEach(o.call(arguments,1),(function(t){for(var n in t)e[n]=t[n]})),e}},p=function(e){if(this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages",debug:!1},this.options=u.extend({},this.defaults,e),this.textdomain(this.options.domain),e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};function d(e){return p.PF.compile(e||"nplurals=2; plural=(n != 1);")}function h(e,t){this._key=e,this._i18n=t}p.context_delimiter=String.fromCharCode(4),u.extend(h.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return"[object Array]"!={}.toString.call(e)&&(e=[].slice.call(arguments,0)),(e&&e.length?p.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),u.extend(p.prototype,{translate:function(e){return new h(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,void 0,void 0,e)},dgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},dcgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},ngettext:function(e,t,n){return this.dcnpgettext.call(this,void 0,void 0,e,t,n)},dngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},dcngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},pgettext:function(e,t){return this.dcnpgettext.call(this,void 0,e,t)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,t,n,r){return this.dcnpgettext.call(this,void 0,e,t,n,r)},dnpgettext:function(e,t,n,r,a){return this.dcnpgettext.call(this,e,t,n,r,a)},dcnpgettext:function(e,t,n,r,a){var i;if(r=r||n,e=e||this._textdomain,!this.options)return(i=new p).dcnpgettext.call(i,void 0,void 0,n,r,a);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");var o,c,s,l=t?t+p.context_delimiter+n:n,u=this.options.locale_data,h=u[e],m=(u.messages||this.defaults.locale_data.messages)[""],f=h[""].plural_forms||h[""]["Plural-Forms"]||h[""]["plural-forms"]||m.plural_forms||m["Plural-Forms"]||m["plural-forms"];if(void 0===a)s=0;else{if("number"!=typeof a&&(a=parseInt(a,10),isNaN(a)))throw new Error("The number that was passed in is not a number.");s=d(f)(a)}if(!h)throw new Error("No domain named `"+e+"` could be found.");return!(o=h[l])||s>o.length?(this.options.missing_key_callback&&this.options.missing_key_callback(l,e),c=[n,r],!0===this.options.debug&&console.log(c[d(f)(a)]),c[d()(a)]):(c=o[s])||(c=[n,r])[d()(a)]}});var m,f,b=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var a,i,o,c,s,l,u,p=1,d=n.length,h="",m=[];for(i=0;i<d;i++)if("string"===(h=e(n[i])))m.push(n[i]);else if("array"===h){if((c=n[i])[2])for(a=r[p],o=0;o<c[2].length;o++){if(!a.hasOwnProperty(c[2][o]))throw b('[sprintf] property "%s" does not exist',c[2][o]);a=a[c[2][o]]}else a=c[1]?r[c[1]]:r[p++];if(/[^s]/.test(c[8])&&"number"!=e(a))throw b("[sprintf] expecting number but found %s",e(a));switch(null==a&&(a=""),c[8]){case"b":a=a.toString(2);break;case"c":a=String.fromCharCode(a);break;case"d":a=parseInt(a,10);break;case"e":a=c[7]?a.toExponential(c[7]):a.toExponential();break;case"f":a=c[7]?parseFloat(a).toFixed(c[7]):parseFloat(a);break;case"o":a=a.toString(8);break;case"s":a=(a=String(a))&&c[7]?a.substring(0,c[7]):a;break;case"u":a=Math.abs(a);break;case"x":a=a.toString(16);break;case"X":a=a.toString(16).toUpperCase()}a=/[def]/.test(c[8])&&c[3]&&a>=0?"+"+a:a,l=c[4]?"0"==c[4]?"0":c[4].charAt(1):" ",u=c[6]-String(a).length,s=c[6]?t(l,u):"",m.push(c[5]?a+s:s+a)}return m.join("")},n.cache={},n.parse=function(e){for(var t=e,n=[],r=[],a=0;t;){if(null!==(n=/^[^\x25]+/.exec(t)))r.push(n[0]);else if(null!==(n=/^\x25{2}/.exec(t)))r.push("%");else{if(null===(n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t)))throw"[sprintf] huh?";if(n[2]){a|=1;var i=[],o=n[2],c=[];if(null===(c=/^([a-z_][a-z_\d]*)/i.exec(o)))throw"[sprintf] huh?";for(i.push(c[1]);""!==(o=o.substring(c[0].length));)if(null!==(c=/^\.([a-z_][a-z_\d]*)/i.exec(o)))i.push(c[1]);else{if(null===(c=/^\[(\d+)\]/.exec(o)))throw"[sprintf] huh?";i.push(c[1])}n[2]=i}else a|=2;if(3===a)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),g=function(e,t){return t.unshift(e),b.apply(null,t)};p.parse_plural=function(e,t){return e=e.replace(/n/g,t),p.parse_expression(e)},p.sprintf=function(e,t){return"[object Array]"=={}.toString.call(t)?g(e,[].slice.call(t)):b.apply(this,[].slice.call(arguments))},p.prototype.sprintf=function(){return p.sprintf.apply(this,arguments)},(p.PF={}).parse=function(e){var t=p.PF.extractPluralExpr(e);return p.PF.parser.parse.call(p.PF.parser,t)},p.PF.compile=function(e){var t=p.PF.parse(e);return function(e){return!0===(n=p.PF.interpreter(t)(e))?1:n||0;var n}},p.PF.interpreter=function(e){return function(t){switch(e.type){case"GROUP":return p.PF.interpreter(e.expr)(t);case"TERNARY":return p.PF.interpreter(e.expr)(t)?p.PF.interpreter(e.truthy)(t):p.PF.interpreter(e.falsey)(t);case"OR":return p.PF.interpreter(e.left)(t)||p.PF.interpreter(e.right)(t);case"AND":return p.PF.interpreter(e.left)(t)&&p.PF.interpreter(e.right)(t);case"LT":return p.PF.interpreter(e.left)(t)<p.PF.interpreter(e.right)(t);case"GT":return p.PF.interpreter(e.left)(t)>p.PF.interpreter(e.right)(t);case"LTE":return p.PF.interpreter(e.left)(t)<=p.PF.interpreter(e.right)(t);case"GTE":return p.PF.interpreter(e.left)(t)>=p.PF.interpreter(e.right)(t);case"EQ":return p.PF.interpreter(e.left)(t)==p.PF.interpreter(e.right)(t);case"NEQ":return p.PF.interpreter(e.left)(t)!=p.PF.interpreter(e.right)(t);case"MOD":return p.PF.interpreter(e.left)(t)%p.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},p.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t,n=/nplurals\=(\d+);/,r=e.match(n);if(!(r.length>1))throw new Error("nplurals not found in plural_forms string: "+e);if(r[1],!((t=(e=e.replace(n,"")).match(/plural\=(.*);/))&&t.length>1))throw new Error("`plural` expression not found: "+e);return t[1]},p.PF.parser=(m={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(e,t,n,r,a,i,o){var c=i.length-1;switch(a){case 1:return{type:"GROUP",expr:i[c-1]};case 2:this.$={type:"TERNARY",expr:i[c-4],truthy:i[c-2],falsey:i[c]};break;case 3:this.$={type:"OR",left:i[c-2],right:i[c]};break;case 4:this.$={type:"AND",left:i[c-2],right:i[c]};break;case 5:this.$={type:"LT",left:i[c-2],right:i[c]};break;case 6:this.$={type:"LTE",left:i[c-2],right:i[c]};break;case 7:this.$={type:"GT",left:i[c-2],right:i[c]};break;case 8:this.$={type:"GTE",left:i[c-2],right:i[c]};break;case 9:this.$={type:"NEQ",left:i[c-2],right:i[c]};break;case 10:this.$={type:"EQ",left:i[c-2],right:i[c]};break;case 11:this.$={type:"MOD",left:i[c-2],right:i[c]};break;case 12:this.$={type:"GROUP",expr:i[c-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(e)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(e,t){throw new Error(e)},parse:function(e){var t=this,n=[0],r=[null],a=[],i=this.table,o="",c=0,s=0,l=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;function p(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}a.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var d,h,m,f,b,g,v,j,y,_,k={};;){if(m=n[n.length-1],this.defaultActions[m]?f=this.defaultActions[m]:(null==d&&(d=p()),f=i[m]&&i[m][d]),void 0===f||!f.length||!f[0]){if(!l){for(g in y=[],i[m])this.terminals_[g]&&g>2&&y.push("'"+this.terminals_[g]+"'");var O="";O=this.lexer.showPosition?"Parse error on line "+(c+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+y.join(", ")+", got '"+this.terminals_[d]+"'":"Parse error on line "+(c+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(O,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:y})}if(3==l){if(1==d)throw new Error(O||"Parsing halted.");s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,d=p()}for(;!(2..toString()in i[m]);){if(0==m)throw new Error(O||"Parsing halted.");_=1,n.length=n.length-2*_,r.length=r.length-_,a.length=a.length-_,m=n[n.length-1]}h=d,d=2,f=i[m=n[n.length-1]]&&i[m][2],l=3}if(f[0]instanceof Array&&f.length>1)throw new Error("Parse Error: multiple actions possible at state: "+m+", token: "+d);switch(f[0]){case 1:n.push(d),r.push(this.lexer.yytext),a.push(this.lexer.yylloc),n.push(f[1]),d=null,h?(d=h,h=null):(s=this.lexer.yyleng,o=this.lexer.yytext,c=this.lexer.yylineno,u=this.lexer.yylloc,l>0&&l--);break;case 2:if(v=this.productions_[f[1]][1],k.$=r[r.length-v],k._$={first_line:a[a.length-(v||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(v||1)].first_column,last_column:a[a.length-1].last_column},void 0!==(b=this.performAction.call(k,o,s,c,this.yy,f[1],r,a)))return b;v&&(n=n.slice(0,-1*v*2),r=r.slice(0,-1*v),a=a.slice(0,-1*v)),n.push(this.productions_[f[1]][0]),r.push(k.$),a.push(k._$),j=i[n[n.length-2]][n[n.length-1]],n.push(j);break;case 3:return!0}}return!0}},f=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;var e,t;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if(e=this._input.match(this.rules[n[r]]))return(t=e[0].match(/\n.*/g))&&(this.yylineno+=t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:t?t[t.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],this.performAction.call(this,this.yy,this,n[r],this.conditionStack[this.conditionStack.length-1])||void 0;if(""===this._input)return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},rules:[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return e}(),m.lexer=f,m),e.exports&&(t=e.exports=p),t.Jed=p}()},function(e,t){var n=1e3,r=6e4,a=36e5,i=24*a;function o(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,t){t=t||{};var c=typeof e;if("string"===c&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\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(!t)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return 6048e5*o;case"days":case"day":case"d":return o*i;case"hours":case"hour":case"hrs":case"hr":case"h":return o*a;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===c&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=i)return o(e,t,i,"day");if(t>=a)return o(e,t,a,"hour");if(t>=r)return o(e,t,r,"minute");if(t>=n)return o(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=i)return Math.round(e/i)+"d";if(t>=a)return Math.round(e/a)+"h";if(t>=r)return Math.round(e/r)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){var n=[],r=!0,a=!1,i=void 0;try{for(var o,c=e[Symbol.iterator]();!(r=(o=c.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(s){a=!0,i=s}finally{try{r||null==c.return||c.return()}finally{if(a)throw i}}return n}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},function(e,t,n){"use strict";function r(){this.__rules__=[],this.__cache__=null}r.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},r.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},r.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},r.prototype.before=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.after=function(e,t,n,r){var a=this.__find__(e),i=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:i.alt||[]}),this.__cache__=null},r.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},r.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},r.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},r.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},r.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}r.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},r.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},r.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},r.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},r.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=r},function(e,t,n){"use strict";var r=n(92),a=n(91);function i(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function c(e){return 1===e.length?"0"+e:e}function s(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var o=e.charCodeAt(a);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):i(e,a)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++a)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=c(e[n].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=o(a)),n+=s(a.toString(16))}return n},t.zero2=c,t.zero8=s,t.join32=function(e,t,n,a){var i=n-t;r(i%4==0);for(var o=new Array(i/4),c=0,s=t;c<o.length;c++,s+=4){var l;l="big"===a?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],o[c]=l>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var i=e[r];"big"===t?(n[a]=i>>>24,n[a+1]=i>>>16&255,n[a+2]=i>>>8&255,n[a+3]=255&i):(n[a+3]=i>>>24,n[a+2]=i>>>16&255,n[a+1]=i>>>8&255,n[a]=255&i)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],i=r+e[t+1]>>>0,o=(i<r?1:0)+n+a;e[t]=o>>>0,e[t+1]=i},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,i,o,c){var s=0,l=t;return s+=(l=l+r>>>0)<t?1:0,s+=(l=l+i>>>0)<i?1:0,e+n+a+o+(s+=(l=l+c>>>0)<c?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,i,o,c){return t+r+i+c>>>0},t.sum64_5_hi=function(e,t,n,r,a,i,o,c,s,l){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+i>>>0)<i?1:0,u+=(p=p+c>>>0)<c?1:0,e+n+a+o+s+(u+=(p=p+l>>>0)<l?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,i,o,c,s,l){return t+r+i+c+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){"use strict";var r,a="object"==typeof Reflect?Reflect:null,i=a&&"function"==typeof a.apply?a.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=a&&"function"==typeof a.ownKeys?a.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var s=10;function l(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var a,i,o,c;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(i=e._events)?(i=e._events=Object.create(null),e._eventsCount=0):(void 0!==i.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),i=e._events),o=i[t]),void 0===o)o=i[t]=n,++e._eventsCount;else if("function"==typeof o?o=i[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(a=l(e))>0&&o.length>a&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,c=s,console&&console.warn&&console.warn(c)}return e}function p(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,i(this.listener,this.target,e))}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=p.bind(r);return a.listener=n,r.wrapFn=a,a}function h(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):f(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function f(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return l(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,a=this._events;if(void 0!==a)r=r&&void 0===a.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var c=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw c.context=o,c}var s=a[e];if(void 0===s)return!1;if("function"==typeof s)i(s,this,t);else{var l=s.length,u=f(s,l);for(n=0;n<l;++n)i(u[n],this,t)}return!0},c.prototype.addListener=function(e,t){return u(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return u(this,e,t,!0)},c.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,d(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,d(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,a,i,o;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,i=n.length-1;i>=0;i--)if(n[i]===t||n[i].listener===t){o=n[i].listener,a=i;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,i=Object.keys(n);for(r=0;r<i.length;++r)"removeListener"!==(a=i[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return h(this,e,!0)},c.prototype.rawListeners=function(e){return h(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},c.prototype.listenerCount=m,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(18),a=n.n(r),i=n(5);n(135);function o(){var e,t,r,o,c,s,l,u=arguments;return regeneratorRuntime.async((function(p){for(;;)switch(p.prev=p.next){case 0:return e=u.length>0&&void 0!==u[0]?u[0]:".swiper-container",t=u.length>1&&void 0!==u[1]?u[1]:{},r=u.length>2&&void 0!==u[2]?u[2]:{},o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,touchStartPreventDefault:!1,on:Object(i.mapValues)(r,(function(e){return function(){e(this)}}))},p.next=6,regeneratorRuntime.awrap(Promise.all([n.e(17).then(n.t.bind(null,266,7)),n.e(17).then(n.t.bind(null,267,7))]));case 6:return c=p.sent,s=a()(c,1),l=s[0].default,p.abrupt("return",new l(e,Object(i.merge)({},o,t)));case 10:case"end":return p.stop()}}))}},function(e,t){!function(){e.exports=this.wp.escapeHtml}()},,function(e,t,n){"use strict";var r=n(18),a=n.n(r),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(1),_=n(5),k=n(2),O=(n(131),function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"handleClick",(function(){(0,n.props.onClick)(m()(n))})),v()(m()(n),"getPoint",(function(){var e=n.props.point;return[e.coordinates.longitude,e.coordinates.latitude]})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){this.renderMarker()}},{key:"componentWillUnmount",value:function(){this.marker&&this.marker.remove()}},{key:"componentDidUpdate",value:function(){this.renderMarker()}},{key:"renderMarker",value:function(){var e=this.props,t=e.map,n=e.point,r=e.mapboxgl,a=e.markerColor,i=this.handleClick,o=[n.coordinates.longitude,n.coordinates.latitude],c=this.marker?this.marker.getElement():document.createElement("div");this.marker?this.marker.setLngLat(o):(c.className="wp-block-jetpack-map-marker",this.marker=new r.Marker(c).setLngLat(o).setOffset([0,-19]).addTo(t),this.marker.getElement().addEventListener("click",i)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+a+'" mask="url(#c)"/></g></svg>'}},{key:"render",value:function(){return null}}]),t}(j.Component));O.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:function(){}};var w=O,E=function(e){function t(){var e,n;o()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=u()(this,(e=d()(t)).call.apply(e,[this].concat(a))),v()(m()(n),"closeClick",(function(){n.props.unsetActiveMarker()})),n}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this.props.mapboxgl;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}},{key:"componentDidUpdate",value:function(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}},{key:"render",value:function(){return this.el?Object(j.createPortal)(this.props.children,this.el):null}},{key:"openWindow",value:function(){var e=this.props,t=e.map,n=e.activeMarker;this.infowindow.setLngLat(n.getPoint()).addTo(t)}},{key:"closeWindow",value:function(){this.infowindow.remove()}}]),t}(j.Component);E.defaultProps={unsetActiveMarker:function(){},activeMarker:null,map:null,mapboxgl:null};var C=E;var x=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onMarkerClick",(function(t){var n=e.props.onMarkerClick;e.setState({activeMarker:t}),n()})),v()(m()(e),"onMapClick",(function(){e.setState({activeMarker:null})})),v()(m()(e),"clearCurrentMarker",(function(){e.setState({activeMarker:null})})),v()(m()(e),"updateActiveMarker",(function(t){var n=e.props.points,r=e.state.activeMarker.props.index,a=n.slice(0);Object(_.assign)(a[r],t),e.props.onSetPoints(a)})),v()(m()(e),"deleteActiveMarker",(function(){var t=e.props.points,n=e.state.activeMarker.props.index,r=t.slice(0);r.splice(n,1),e.props.onSetPoints(r),e.setState({activeMarker:null})})),v()(m()(e),"sizeMap",(function(){var t=e.state.map,n=e.mapRef.current,r=n.offsetWidth,a=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,i=Math.min(.75*r,a);n.style.height=i+"px",t.resize(),e.setBoundsByMarkers()})),v()(m()(e),"setBoundsByMarkers",(function(){var t=e.props,n=t.admin,r=t.onSetMapCenter,a=t.onSetZoom,i=t.points,o=t.zoom,c=e.state,s=c.map,l=c.activeMarker,u=c.mapboxgl,p=c.zoomControl,d=c.boundsSetProgrammatically;if(s&&(i.length&&n?s.dragPan.disable():s.dragPan.enable(),i.length&&!l)){var h=new u.LngLatBounds;if(i.forEach((function(e){h.extend([e.coordinates.longitude,e.coordinates.latitude])})),r(h.getCenter()),i.length>1){s.fitBounds(h,{padding:{top:40,bottom:40,left:20,right:20}}),e.setState({boundsSetProgrammatically:!0});try{s.removeControl(p)}catch(m){}}else{if(s.setCenter(h.getCenter()),d){s.setZoom(12),a(12)}else s.setZoom(parseInt(o,10));s.addControl(p),e.setState({boundsSetProgrammatically:!1})}}})),v()(m()(e),"scriptsLoaded",(function(){var t=e.props,n=t.mapCenter,r=t.points;e.setState({loaded:!0}),r.length,e.initMap(n)})),v()(m()(e),"googlePoint2Mapbox",(function(e){return e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0}})),e.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},e.mapRef=Object(j.createRef)(),e.debouncedSizeMap=Object(_.debounce)(e.sizeMap,250),e}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.points,r=t.admin,a=t.children,i=t.markerColor,o=this.state,c=o.map,s=o.activeMarker,l=o.mapboxgl,u=this.onMarkerClick,p=this.deleteActiveMarker,d=this.updateActiveMarker,h=Object(_.get)(s,"props.point")||{},m=h.title,f=h.caption,b=j.Children.map(a,(function(e){if("AddPoint"===Object(_.get)(e,"props.tagName"))return e})),g=c&&l&&n.map((function(e,t){return Object(j.createElement)(w,{key:t,point:e,index:t,map:c,mapboxgl:l,markerColor:i,onClick:u})})),v=l&&Object(j.createElement)(C,{activeMarker:s,map:c,mapboxgl:l,unsetActiveMarker:function(){return e.setState({activeMarker:null})}},s&&r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)(k.TextControl,{label:Object(y.__)("Marker Title","jetpack"),value:m,onChange:function(e){return d({title:e})}}),Object(j.createElement)(k.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:Object(y.__)("Marker Caption","jetpack"),value:f,rows:"2",tag:"textarea",onChange:function(e){return d({caption:e})}}),Object(j.createElement)(k.Button,{onClick:p,className:"wp-block-jetpack-map__delete-btn"},Object(j.createElement)(k.Dashicon,{icon:"trash",size:"15"})," ",Object(y.__)("Delete Marker","jetpack"))),s&&!r&&Object(j.createElement)(j.Fragment,null,Object(j.createElement)("h3",null,m),Object(j.createElement)("p",null,f)));return Object(j.createElement)(j.Fragment,null,Object(j.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},g),v,b)}},{key:"componentDidMount",value:function(){this.props.apiKey&&this.loadMapLibraries()}},{key:"componentWillUnmount",value:function(){this.debouncedSizeMap.cancel()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.apiKey,r=t.children,a=t.points,i=t.mapStyle,o=t.mapDetails,c=this.state.map;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),i===e.mapStyle&&o===e.mapDetails||c.setStyle(this.getMapStyle())}},{key:"getMapStyle",value:function(){var e=this.props;return function(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}(e.mapStyle,e.mapDetails)}},{key:"getMapType",value:function(){switch(this.props.mapStyle){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";case"black_and_white":default:return"ROADMAP"}}},{key:"loadMapLibraries",value:function(){var e=this,t=this.props.apiKey;Promise.all([n.e(16).then(n.t.bind(null,306,7)),n.e(16).then(n.t.bind(null,307,7))]).then((function(n){var r=a()(n,1)[0].default;r.accessToken=t,e.setState({mapboxgl:r},e.scriptsLoaded)}))}},{key:"initMap",value:function(e){var t=this,n=this.state.mapboxgl,r=this.props,a=r.zoom,i=r.onMapLoaded,o=r.onError,c=r.admin,s=null;try{s=new n.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(a,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(u){return void o("mapbox_error",u.message)}s.on("error",(function(e){o("mapbox_error",e.error.message)}));var l=new n.NavigationControl({showCompass:!1,showZoom:!0});s.on("zoomend",(function(){t.props.onSetZoom(s.getZoom())})),s.on("moveend",(function(){var e=t.props,n=e.onSetMapCenter;e.points.length<1&&n(s.getCenter())})),s.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:s,zoomControl:l},(function(){t.debouncedSizeMap(),s.addControl(l),c||s.addControl(new n.FullscreenControl),t.mapRef.current.addEventListener("alignmentChanged",t.debouncedSizeMap),s.resize(),i(),t.setState({loaded:!0}),window.addEventListener("resize",t.debouncedSizeMap)}))}}]),t}(j.Component);x.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:function(){},onSetMapCenter:function(){},onMapLoaded:function(){},onMarkerClick:function(){},onError:function(){},markerColor:"red",apiKey:null,mapCenter:{}};t.a=x},function(e,t){!function(){e.exports=this.moment}()},function(e,t){!function(){e.exports=this.wp.notices}()},function(e,t){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set}catch(n){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var i=e[r];if("[object Array]"!==Object.prototype.toString.call(i)&&2===i.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(i[0],i[1])}else for(var o in e)e.hasOwnProperty(o)&&this.append(o,e[o])}},i=a.prototype;i.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},i.delete=function(e){delete this._entries[e]},i.get=function(e){return e in this._entries?this._entries[e][0]:null},i.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},i.has=function(e){return e in this._entries},i.set=function(e,t){this._entries[e]=[String(t)]},i.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},i.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},i.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},i.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(i[Symbol.iterator]=i.entries),i.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var i=e.URLSearchParams.prototype;"function"!=typeof i.sort&&(i.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof i._fromString&&Object.defineProperty(i,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,i=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<i.length;n++)r=i[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c%20d","http://a/c%20d"===t.href&&t.searchParams}catch(n){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(p){throw new Error("URL unable to set base "+n+" due to "+p)}}var i=a.createElement("a");if(i.href=t,r&&(a.body.appendChild(i),i.href=i.href),":"===i.protocol||!/:/.test(i.href))throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:i});var o=new e.URLSearchParams(this.search),c=!0,s=!0,l=this;["append","delete","set"].forEach((function(e){var t=o[e];o[e]=function(){t.apply(o,arguments),c&&(s=!1,l.search=o.toString(),s=!0)}})),Object.defineProperty(this,"searchParams",{value:o,enumerable:!0});var u=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==u&&(u=this.search,s&&(c=!1,this.searchParams._fromString(this.search),c=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window?window:"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},function(e,t,n){},function(e,t,n){"use strict";e.exports=n(163)},function(e,t,n){"use strict";e.exports.encode=n(164),e.exports.decode=n(165),e.exports.format=n(166),e.exports.parse=n(167)},function(e,t){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},function(e,t){e.exports=/[\0-\x1F\x7F-\x9F]/},function(e,t){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},function(e,t,n){"use strict";var r="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",a="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",i=new RegExp("^(?:"+r+"|"+a+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?].*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),o=new RegExp("^(?:"+r+"|"+a+")");e.exports.HTML_TAG_RE=i,e.exports.HTML_OPEN_CLOSE_TAG_RE=o},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a,i,o=e.pos,c=e.src.charCodeAt(o);if(t)return!1;if(126!==c)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,i=String.fromCharCode(c),a<2)return!1;for(a%2&&(e.push("text","",0).content=i,a--),n=0;n<a;n+=2)e.push("text","",0).content=i+i,e.delimiters.push({marker:c,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o=[],c=e.delimiters,s=e.delimiters.length;for(t=0;t<s;t++)126===(r=c[t]).marker&&-1!==r.end&&(a=c[r.end],(i=e.tokens[r.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[a.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[a.token-1].type&&"~"===e.tokens[a.token-1].content&&o.push(a.token-1));for(;o.length;){for(n=(t=o.pop())+1;n<e.tokens.length&&"s_close"===e.tokens[n].type;)n++;t!==--n&&(i=e.tokens[n],e.tokens[n]=e.tokens[t],e.tokens[t]=i)}}},function(e,t,n){"use strict";e.exports.tokenize=function(e,t){var n,r,a=e.pos,i=e.src.charCodeAt(a);if(t)return!1;if(95!==i&&42!==i)return!1;for(r=e.scanDelims(e.pos,42===i),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(i),e.delimiters.push({marker:i,length:r.length,jump:n,token:e.tokens.length-1,level:e.level,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.postProcess=function(e){var t,n,r,a,i,o,c=e.delimiters;for(t=e.delimiters.length-1;t>=0;t--)95!==(n=c[t]).marker&&42!==n.marker||-1!==n.end&&(r=c[n.end],o=t>0&&c[t-1].end===n.end+1&&c[t-1].token===n.token-1&&c[n.end+1].token===r.token+1&&c[t-1].marker===n.marker,i=String.fromCharCode(n.marker),(a=e.tokens[n.token]).type=o?"strong_open":"em_open",a.tag=o?"strong":"em",a.nesting=1,a.markup=o?i+i:i,a.content="",(a=e.tokens[r.token]).type=o?"strong_close":"em_close",a.tag=o?"strong":"em",a.nesting=-1,a.markup=o?i+i:i,a.content="",o&&(e.tokens[c[t-1].token].content="",e.tokens[c[n.end+1].token].content="",t--))}},function(e,t,n){},function(e,t,n){"use strict";function r(e){return function(){return e}}var a=function(){};a.thatReturns=r,a.thatReturnsFalse=r(!1),a.thatReturnsTrue=r(!0),a.thatReturnsNull=r(null),a.thatReturnsThis=function(){return this},a.thatReturnsArgument=function(e){return e},e.exports=a},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},function(e,t,n){t.log=function(){var e;return"object"==typeof console&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(142)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e){e.exports=JSON.parse('{"production":["business-hours","calendly","contact-form","contact-info","eventbrite","gif","likes","mailchimp","map","markdown","opentable","pinterest","publicize","rating-star","recurring-payments","related-posts","repeat-visitor","sharing","shortlinks","simple-payments","slideshow","subscriptions","tiled-gallery","videopress","wordads"],"beta":["amazon","seo"]}')},function(e,t,n){"use strict";var r=n(147),a=n(148);function i(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=a({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),a=t.shift(),i=t.length>0?t.join("="):void 0;i=void 0===i?null:decodeURIComponent(i),n(decodeURIComponent(a),i,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[i(t,e),"[",r,"]"].join(""):[i(t,e),"[",i(r,e),"]=",i(n,e)].join("")};case"bracket":return function(t,n){return null===n?i(t,e):[i(t,e),"[]=",i(n,e)].join("")};default:return function(t,n){return null===n?i(t,e):[i(t,e),"=",i(n,e)].join("")}}}(t=a({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var a=e[r];if(void 0===a)return"";if(null===a)return i(r,t);if(Array.isArray(a)){var o=[];return a.slice().forEach((function(e){void 0!==e&&o.push(n(r,e,o.length))})),o.join("&")}return i(r,t)+"="+i(a,t)})).filter((function(e){return e.length>0})).join("&"):""}},function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,i=e.onClick,c=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-notice-outline",c,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return o.default.createElement("svg",r({className:l,height:a,width:a,onClick:i},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),o.default.createElement("g",null,o.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,i=n(34),o=(a=i)&&a.__esModule?a:{default:a};e.exports=t.default},function(e,t,n){e.exports=n.p+"images/eventbrite-in-page-example-e7ade5e253cebf23789d136227b66aa4.png"},function(e,t,n){e.exports=n.p+"images/eventbrite-modal-example-38b56f85505164d217370e285a7207a9.png"},function(e,t,n){e.exports=n.p+"images/map-preview-1744c8f7587de6d8857dbbe7d7cf5cb8.jpg"},function(e,t,n){"use strict";e.exports=n(162)},function(e,t,n){"use strict";e.exports=function(e){var t,n={};return function e(t,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)e(t,n[r]);else for(r in n)t[r]=(t[r]||[]).concat(n[r])}(n,e),(t=function(e){return function(t){return function(r){var a,i,o=n[r.type],c=t(r);if(o)for(a=0;a<o.length;a++)(i=o[a](r,e))&&e.dispatch(i);return c}}}).effects=n,t}},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(219)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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},a=c(n(34)),i=c(n(220)),o=c(n(223));function c(e){return e&&e.__esModule?e:{default:e}}var s=void 0;function l(e,t){var n,o,c,u,p,d,h,m,f=[],b={};for(d=0;d<e.length;d++)if("string"!==(p=e[d]).type){if(!t.hasOwnProperty(p.value)||void 0===t[p.value])throw new Error("Invalid interpolation, missing component node: `"+p.value+"`");if("object"!==r(t[p.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+p.value+"`","\n> "+s);if("componentClose"===p.type)throw new Error("Missing opening component token: `"+p.value+"`");if("componentOpen"===p.type){n=t[p.value],c=d;break}f.push(t[p.value])}else f.push(p.value);return n&&(u=function(e,t){var n,r,a=t[e],i=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===a.value){if("componentOpen"===n.type){i++;continue}if("componentClose"===n.type){if(0===i)return r;i--}}throw new Error("Missing closing component token `"+a.value+"`")}(c,e),h=l(e.slice(c+1,u),t),o=a.default.cloneElement(n,{},h),f.push(o),u<e.length-1&&(m=l(e.slice(u+1),t),f=f.concat(m))),1===f.length?f[0]:(f.forEach((function(e,t){e&&(b["interpolation-child-"+t]=e)})),(0,i.default)(b))}t.default=function(e){var t=e.mixedString,n=e.components,a=e.throwErrors;if(s=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var i=(0,o.default)(t);try{return l(i,n)}catch(c){if(a)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+c.message+"`");return t}}},function(e,t,n){var r=n(72),a=n(91);function i(e){if(!(this instanceof i))return new i(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=i,a(i,r.EventEmitter),Object.defineProperty(i.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),i.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},i.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},i.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},i.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},i.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},i.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},i.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},i.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},function(e,t,n){"use strict";var r=n(71),a=n(224),i=n(225),o=r.rotl32,c=r.sum32,s=r.sum32_5,l=i.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],i=this.h[1],u=this.h[2],d=this.h[3],h=this.h[4];for(r=0;r<n.length;r++){var m=~~(r/20),f=s(o(a,5),l(m,i,u,d),h,n[r],p[m]);h=d,d=u,u=o(i,30),i=a,a=f}this.h[0]=c(this.h[0],a),this.h[1]=c(this.h[1],i),this.h[2]=c(this.h[2],u),this.h[3]=c(this.h[3],d),this.h[4]=c(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){e.exports=n.p+"images/paypal-button-1e53882e702881f8dfd958c141e65383.png"},function(e,t,n){e.exports=n.p+"images/paypal-button-2x-fe4d34770a47484f401cecbb892f8456.png"},function(e,t,n){e.exports=n.p+"images/simple-payments_example-1-f3666e40d28c564ecf04f814e9a9f236.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-1-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-2-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/slideshow_example-3-75cfaba94fc18a9c4b2bc164bd070c08.jpg"},function(e,t){!function(){e.exports=this.wp.tokenList}()},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-1-e124e79c7cd0291640efe8f28aa9a6cd.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-2-ee687d7366c359324b23a9681fb2cf92.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-3-4d22ce5ab8c84b87d307458fa7975fea.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-4-2c82eb59aaea53932f5e718e17284db7.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-5-3fafa6df43363f274a371ed90dbce254.jpg"},function(e,t,n){e.exports=n.p+"images/tiled-gallery_example-6-797246061ba8a7039b660584e9dc8946.jpg"},function(e,t,n){e.exports=n.p+"images/example_300x250-212e56e8c2ac91bdcbbd742cd7591e17.png"},function(e,t,n){e.exports=n.p+"images/example_728x90-a5e5ae2b8f307e343aea049530c1742d.png"},function(e,t,n){e.exports=n.p+"images/example_320x50-a1b9b09ff673b75f41d0b32162387f89.png"},function(e,t,n){e.exports=n.p+"images/example_160x600-a12cea65e6d4ce4b6f41d8c4f3184ded.png"},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t,n){},function(e,t){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})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){(function(e){var r;!function(a){t&&t.nodeType,e&&e.nodeType;var i="object"==typeof window&&window;i.global!==i&&i.window!==i&&i.self;var o,c=2147483647,s=/^xn--/,l=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,h=String.fromCharCode;function m(e){throw RangeError(p[e])}function f(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+f((e=e.replace(u,".")).split("."),t).join(".")}function g(e){for(var t,n,r=[],a=0,i=e.length;a<i;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<i?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function v(e){return f(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function y(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=36)e=d(e/35);return d(r+36*e/(e+38))}function _(e){var t,n,r,a,i,o,s,l,u,p,h,f=[],b=e.length,g=0,j=128,_=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&m("not-basic"),f.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(i=g,o=1,s=36;a>=b&&m("invalid-input"),((l=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||l>d((c-g)/o))&&m("overflow"),g+=l*o,!(l<(u=s<=_?1:s>=_+26?26:s-_));s+=36)o>d(c/(p=36-u))&&m("overflow"),o*=p;_=y(g-i,t=f.length+1,0==i),d(g/t)>c-j&&m("overflow"),j+=d(g/t),g%=t,f.splice(g++,0,j)}return v(f)}function k(e){var t,n,r,a,i,o,s,l,u,p,f,b,v,_,k,O=[];for(b=(e=g(e)).length,t=128,n=0,i=72,o=0;o<b;++o)(f=e[o])<128&&O.push(h(f));for(r=a=O.length,a&&O.push("-");r<b;){for(s=c,o=0;o<b;++o)(f=e[o])>=t&&f<s&&(s=f);for(s-t>d((c-n)/(v=r+1))&&m("overflow"),n+=(s-t)*v,t=s,o=0;o<b;++o)if((f=e[o])<t&&++n>c&&m("overflow"),f==t){for(l=n,u=36;!(l<(p=u<=i?1:u>=i+26?26:u-i));u+=36)k=l-p,_=36-p,O.push(h(j(p+k%_,0))),l=d(k/_);O.push(h(j(l,0))),i=y(n,v,r==a),n=0,++r}++n,++t}return O.join("")}o={version:"1.3.2",ucs2:{decode:g,encode:v},decode:_,encode:k,toASCII:function(e){return b(e,(function(e){return l.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return b(e,(function(e){return s.test(e)?_(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()}).call(this,n(137)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(140),t.encode=t.stringify=n(141)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,a){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;var o=/\+/g;e=e.split(t);var c=1e3;a&&"number"==typeof a.maxKeys&&(c=a.maxKeys);var s=e.length;c>0&&s>c&&(s=c);for(var l=0;l<s;++l){var u,p,d,h,m=e[l].replace(o,"%20"),f=m.indexOf(n);f>=0?(u=m.substr(0,f),p=m.substr(f+1)):(u=m,p=""),d=decodeURIComponent(u),h=decodeURIComponent(p),r(i,d)?Array.isArray(i[d])?i[d].push(h):i[d]=[i[d],h]:i[d]=h}return i}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,a){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var i=encodeURIComponent(r(a))+n;return Array.isArray(e[a])?e[a].map((function(e){return i+encodeURIComponent(r(e))})).join(t):i+encodeURIComponent(r(e[a]))})).join(t):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(e)):""}},function(e,t,n){var r=n(21);e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return a.colors[Math.abs(t)%a.colors.length]}function a(e){var n;function r(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if(r.enabled){var o=r,c=Number(new Date),s=c-(n||c);o.diff=s,o.prev=n,o.curr=c,n=c,t[0]=a.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var r=a.formatters[n];if("function"==typeof r){var i=t[l];e=r.call(o,i),t.splice(l,1),l--}return e})),a.formatArgs.call(o,t);var u=o.log||a.log;u.apply(o,t)}}return r.namespace=e,r.enabled=a.enabled(e),r.useColors=a.useColors(),r.color=t(e),r.destroy=i,r.extend=o,"function"==typeof a.init&&a.init(r),a.instances.push(r),r}function i(){var e=a.instances.indexOf(this);return-1!==e&&(a.instances.splice(e,1),!0)}function o(e,t){var n=a(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function c(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},a.disable=function(){var e=[].concat(r(a.names.map(c)),r(a.skips.map(c).map((function(e){return"-"+e})))).join(",");return a.enable(""),e},a.enable=function(e){var t;a.save(e),a.names=[],a.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length;for(t=0;t<r;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?a.skips.push(new RegExp("^"+e.substr(1)+"$")):a.names.push(new RegExp("^"+e+"$")));for(t=0;t<a.instances.length;t++){var i=a.instances[t];i.enabled=a.enabled(i.namespace)}},a.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=a.skips.length;t<n;t++)if(a.skips[t].test(e))return!1;for(t=0,n=a.names.length;t<n;t++)if(a.names[t].test(e))return!0;return!1},a.humanize=n(64),Object.keys(e).forEach((function(t){a[t]=e[t]})),a.instances=[],a.names=[],a.skips=[],a.formatters={},a.selectColor=t,a.enable(a.load()),a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,t){for(var n,c,s=o(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))a.call(n,u)&&(s[u]=n[u]);if(r){c=r(n);for(var p=0;p<c.length;p++)i.call(n,c[p])&&(s[c[p]]=n[c[p]])}}return s}},function(e,t,n){},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var r=n(19),a=n(170),i=n(174),o=n(175),c=n(183),s=n(197),l=n(210),u=n(82),p=n(212),d={default:n(213),zero:n(214),commonmark:n(215)},h=/^(vbscript|javascript|file|data):/,m=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!h.test(t)||!!m.test(t)}var b=["http:","https:","mailto:"];function g(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(n){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||b.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(n){}return u.decode(u.format(t))}function j(e,t){if(!(this instanceof j))return new j(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new s,this.block=new c,this.core=new o,this.renderer=new i,this.linkify=new l,this.validateLink=f,this.normalizeLink=g,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}j.prototype.set=function(e){return r.assign(this.options,e),this},j.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},j.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},j.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},j.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},j.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},j.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},j.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},j.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=j},function(e){e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},function(e,t,n){"use strict";var r={};function a(e,t,n){var i,o,c,s,l,u="";for("string"!=typeof t&&(n=t,t=a.defaultChars),void 0===n&&(n=!0),l=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),/^[0-9a-z]$/i.test(n)?a.push(n):a.push("%"+("0"+t.toString(16).toUpperCase()).slice(-2));for(t=0;t<e.length;t++)a[e.charCodeAt(t)]=e[t];return a}(t),i=0,o=e.length;i<o;i++)if(c=e.charCodeAt(i),n&&37===c&&i+2<o&&/^[0-9a-f]{2}$/i.test(e.slice(i+1,i+3)))u+=e.slice(i,i+3),i+=2;else if(c<128)u+=l[c];else if(c>=55296&&c<=57343){if(c>=55296&&c<=56319&&i+1<o&&(s=e.charCodeAt(i+1))>=56320&&s<=57343){u+=encodeURIComponent(e[i]+e[i+1]),i++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[i]);return u}a.defaultChars=";/?:@&=+$,-_.!~*'()#",a.componentChars="-_.!~*'()",e.exports=a},function(e,t,n){"use strict";var r={};function a(e,t){var n;return"string"!=typeof t&&(t=a.defaultChars),n=function(e){var t,n,a=r[e];if(a)return a;for(a=r[e]=[],t=0;t<128;t++)n=String.fromCharCode(t),a.push(n);for(t=0;t<e.length;t++)a[n=e.charCodeAt(t)]="%"+("0"+n.toString(16).toUpperCase()).slice(-2);return a}(t),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,r,a,i,o,c,s,l="";for(t=0,r=e.length;t<r;t+=3)(a=parseInt(e.slice(t+1,t+3),16))<128?l+=n[a]:192==(224&a)&&t+3<r&&128==(192&(i=parseInt(e.slice(t+4,t+6),16)))?(l+=(s=a<<6&1984|63&i)<128?"��":String.fromCharCode(s),t+=3):224==(240&a)&&t+6<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),128==(192&i)&&128==(192&o))?(l+=(s=a<<12&61440|i<<6&4032|63&o)<2048||s>=55296&&s<=57343?"���":String.fromCharCode(s),t+=6):240==(248&a)&&t+9<r&&(i=parseInt(e.slice(t+4,t+6),16),o=parseInt(e.slice(t+7,t+9),16),c=parseInt(e.slice(t+10,t+12),16),128==(192&i)&&128==(192&o)&&128==(192&c))?((s=a<<18&1835008|i<<12&258048|o<<6&4032|63&c)<65536||s>1114111?l+="����":(s-=65536,l+=String.fromCharCode(55296+(s>>10),56320+(1023&s))),t+=9):l+="�";return l}))}a.defaultChars=";/?:@&=+$,#",a.componentChars="",e.exports=a},function(e,t,n){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},function(e,t,n){"use strict";function r(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var a=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,o=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),s=["'"].concat(c),l=["%","/","?",";","#"].concat(s),u=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},m={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};r.prototype.parse=function(e,t){var n,r,i,c,s,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var b=o.exec(f);if(b)return this.pathname=b[1],b[2]&&(this.search=b[2]),this}var g=a.exec(f);if(g&&(i=(g=g[0]).toLowerCase(),this.protocol=g,f=f.substr(g.length)),(t||g||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(s="//"===f.substr(0,2))||g&&h[g]||(f=f.substr(2),this.slashes=!0)),!h[g]&&(s||g&&!m[g])){var v,j,y=-1;for(n=0;n<u.length;n++)-1!==(c=f.indexOf(u[n]))&&(-1===y||c<y)&&(y=c);for(-1!==(j=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,j),f=f.slice(j+1),this.auth=v),y=-1,n=0;n<l.length;n++)-1!==(c=f.indexOf(l[n]))&&(-1===y||c<y)&&(y=c);-1===y&&(y=f.length),":"===f[y-1]&&y--;var _=f.slice(0,y);f=f.slice(y),this.parseHost(_),this.hostname=this.hostname||"";var k="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!k){var O=this.hostname.split(/\./);for(n=0,r=O.length;n<r;n++){var w=O[n];if(w&&!w.match(p)){for(var E="",C=0,x=w.length;C<x;C++)w.charCodeAt(C)>127?E+="x":E+=w[C];if(!E.match(p)){var S=O.slice(0,n),A=O.slice(n+1),F=w.match(d);F&&(S.push(F[1]),A.unshift(F[2])),A.length&&(f=A.join(".")+f),this.hostname=S.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),k&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var P=f.indexOf("#");-1!==P&&(this.hash=f.substr(P),f=f.slice(0,P));var T=f.indexOf("?");return-1!==T&&(this.search=f.substr(T),f=f.slice(0,T)),f&&(this.pathname=f),m[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},r.prototype.parseHost=function(e){var t=i.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,t){if(e&&e instanceof r)return e;var n=new r;return n.parse(e,t),n}},function(e,t,n){"use strict";t.Any=n(83),t.Cc=n(84),t.Cf=n(169),t.P=n(68),t.Z=n(85)},function(e,t){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},function(e,t,n){"use strict";t.parseLinkLabel=n(171),t.parseLinkDestination=n(172),t.parseLinkTitle=n(173)},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c=-1,s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos<s;){if(93===(i=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(o=e.pos,e.md.inline.skipToken(e),91===i)if(o===e.pos-1)r++;else if(n)return e.pos=l,-1}return a&&(c=e.pos),e.pos=l,c}},function(e,t,n){"use strict";var r=n(19).isSpace,a=n(19).unescapeAll;e.exports=function(e,t,n){var i,o,c=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(i=e.charCodeAt(t))||r(i))return s;if(62===i)return s.pos=t+1,s.str=a(e.slice(c+1,t)),s.ok=!0,s;92===i&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(i=e.charCodeAt(t))&&!(i<32||127===i);)if(92===i&&t+1<n)t+=2;else{if(40===i&&o++,41===i){if(0===o)break;o--}t++}return c===t?s:0!==o?s:(s.str=a(e.slice(c,t)),s.lines=0,s.pos=t,s.ok=!0,s)}},function(e,t,n){"use strict";var r=n(19).unescapeAll;e.exports=function(e,t,n){var a,i,o=0,c=t,s={ok:!1,pos:0,lines:0,str:""};if(t>=n)return s;if(34!==(i=e.charCodeAt(t))&&39!==i&&40!==i)return s;for(t++,40===i&&(i=41);t<n;){if((a=e.charCodeAt(t))===i)return s.pos=t+1,s.lines=o,s.str=r(e.slice(c+1,t)),s.ok=!0,s;10===a?o++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&o++),t++}return s}},function(e,t,n){"use strict";var r=n(19).assign,a=n(19).unescapeAll,i=n(19).escapeHtml,o={};function c(){this.rules=r({},o)}o.code_inline=function(e,t,n,r,a){var o=e[t];return"<code"+a.renderAttrs(o)+">"+i(e[t].content)+"</code>"},o.code_block=function(e,t,n,r,a){var o=e[t];return"<pre"+a.renderAttrs(o)+"><code>"+i(e[t].content)+"</code></pre>\n"},o.fence=function(e,t,n,r,o){var c,s,l,u,p=e[t],d=p.info?a(p.info).trim():"",h="";return d&&(h=d.split(/\s+/g)[0]),0===(c=n.highlight&&n.highlight(p.content,h)||i(p.content)).indexOf("<pre")?c+"\n":d?(s=p.attrIndex("class"),l=p.attrs?p.attrs.slice():[],s<0?l.push(["class",n.langPrefix+h]):l[s][1]+=" "+n.langPrefix+h,u={attrs:l},"<pre><code"+o.renderAttrs(u)+">"+c+"</code></pre>\n"):"<pre><code"+o.renderAttrs(p)+">"+c+"</code></pre>\n"},o.image=function(e,t,n,r,a){var i=e[t];return i.attrs[i.attrIndex("alt")][1]=a.renderInlineAsText(i.children,n,r),a.renderToken(e,t,n)},o.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},o.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},o.text=function(e,t){return i(e[t].content)},o.html_block=function(e,t){return e[t].content},o.html_inline=function(e,t){return e[t].content},c.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+i(e.attrs[t][0])+'="'+i(e.attrs[t][1])+'"';return r},c.prototype.renderToken=function(e,t,n){var r,a="",i=!1,o=e[t];return o.hidden?"":(o.block&&-1!==o.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===o.nesting?"</":"<")+o.tag,a+=this.renderAttrs(o),0===o.nesting&&n.xhtmlOut&&(a+=" /"),o.block&&(i=!0,1===o.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden?i=!1:-1===r.nesting&&r.tag===o.tag&&(i=!1))),a+=i?">\n":">")},c.prototype.renderInline=function(e,t,n){for(var r,a="",i=this.rules,o=0,c=e.length;o<c;o++)void 0!==i[r=e[o].type]?a+=i[r](e,o,t,n,this):a+=this.renderToken(e,o,t);return a},c.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,i=e.length;a<i;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},c.prototype.render=function(e,t,n){var r,a,i,o="",c=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(i=e[r].type)?o+=this.renderInline(e[r].children,t,n):void 0!==c[i]?o+=c[e[r].type](e,r,t,n,this):o+=this.renderToken(e,r,t,n);return o},e.exports=c},function(e,t,n){"use strict";var r=n(69),a=[["normalize",n(176)],["block",n(177)],["inline",n(178)],["linkify",n(179)],["replacements",n(180)],["smartquotes",n(181)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}i.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},i.prototype.State=n(182),e.exports=i},function(e,t,n){"use strict";var r=/\r[\n\u0085]?|[\u2424\u2028\u0085]/g,a=/\u0000/g;e.exports=function(e){var t;t=(t=e.src.replace(r,"\n")).replace(a,"�"),e.src=t}},function(e,t,n){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},function(e,t,n){"use strict";var r=n(19).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_=e.tokens;if(e.md.options.linkify)for(n=0,i=_.length;n<i;n++)if("inline"===_[n].type&&e.md.linkify.pretest(_[n].content))for(f=0,t=(o=_[n].children).length-1;t>=0;t--)if("link_close"!==(s=o[t]).type){if("html_inline"===s.type&&(y=s.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(s.content)&&f++),!(f>0)&&"text"===s.type&&e.md.linkify.test(s.content)){for(p=s.content,j=e.md.linkify.match(p),l=[],m=s.level,h=0,u=0;u<j.length;u++)b=j[u].url,g=e.md.normalizeLink(b),e.md.validateLink(g)&&(v=j[u].text,v=j[u].schema?"mailto:"!==j[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=j[u].index)>h&&((c=new e.Token("text","",0)).content=p.slice(h,d),c.level=m,l.push(c)),(c=new e.Token("link_open","a",1)).attrs=[["href",g]],c.level=m++,c.markup="linkify",c.info="auto",l.push(c),(c=new e.Token("text","",0)).content=v,c.level=m,l.push(c),(c=new e.Token("link_close","a",-1)).level=--m,c.markup="linkify",c.info="auto",l.push(c),h=j[u].lastIndex);h<p.length&&((c=new e.Token("text","",0)).content=p.slice(h),c.level=m,l.push(c)),_[n].children=o=r(o,t,l)}}else for(t--;o[t].level!==s.level&&"link_open"!==o[t].type;)t--}},function(e,t,n){"use strict";var r=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,a=/\((c|tm|r|p)\)/i,i=/\((c|tm|r|p)\)/gi,o={c:"©",r:"®",p:"§",tm:"™"};function c(e,t){return o[t.toLowerCase()]}function s(e){var t,n,r=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||r||(n.content=n.content.replace(i,c)),"link_open"===n.type&&"auto"===n.info&&r--,"link_close"===n.type&&"auto"===n.info&&r++}function l(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||r.test(n.content)&&(n.content=n.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---([^-]|$)/gm,"$1—$2").replace(/(^|\s)--(\s|$)/gm,"$1–$2").replace(/(^|[^-\s])--([^-\s]|$)/gm,"$1–$2")),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(a.test(e.tokens[t].content)&&s(e.tokens[t].children),r.test(e.tokens[t].content)&&l(e.tokens[t].children))}},function(e,t,n){"use strict";var r=n(19).isWhiteSpace,a=n(19).isPunctChar,i=n(19).isMdAsciiPunct,o=/['"]/,c=/['"]/g;function s(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function l(e,t){var n,o,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x;for(E=[],n=0;n<e.length;n++){for(o=e[n],h=e[n].level,O=E.length-1;O>=0&&!(E[O].level<=h);O--);if(E.length=O+1,"text"===o.type){p=0,d=(l=o.content).length;e:for(;p<d&&(c.lastIndex=p,u=c.exec(l));){if(_=k=!0,p=u.index+1,w="'"===u[0],f=32,u.index-1>=0)f=l.charCodeAt(u.index-1);else for(O=n-1;O>=0&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O--)if("text"===e[O].type){f=e[O].content.charCodeAt(e[O].content.length-1);break}if(b=32,p<d)b=l.charCodeAt(p);else for(O=n+1;O<e.length&&("softbreak"!==e[O].type&&"hardbreak"!==e[O].type);O++)if("text"===e[O].type){b=e[O].content.charCodeAt(0);break}if(g=i(f)||a(String.fromCharCode(f)),v=i(b)||a(String.fromCharCode(b)),j=r(f),(y=r(b))?_=!1:v&&(j||g||(_=!1)),j?k=!1:g&&(y||v||(k=!1)),34===b&&'"'===u[0]&&f>=48&&f<=57&&(k=_=!1),_&&k&&(_=!1,k=v),_||k){if(k)for(O=E.length-1;O>=0&&(m=E[O],!(E[O].level<h));O--)if(m.single===w&&E[O].level===h){m=E[O],w?(C=t.md.options.quotes[2],x=t.md.options.quotes[3]):(C=t.md.options.quotes[0],x=t.md.options.quotes[1]),o.content=s(o.content,u.index,x),e[m.token].content=s(e[m.token].content,m.pos,C),p+=x.length-1,m.token===n&&(p+=C.length-1),d=(l=o.content).length,E.length=O;continue e}_?E.push({token:n,pos:u.index,single:w,level:h}):k&&w&&(o.content=s(o.content,u.index,"’"))}else w&&(o.content=s(o.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&o.test(e.tokens[t].content)&&l(e.tokens[t].children,e)}},function(e,t,n){"use strict";var r=n(70);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},function(e,t,n){"use strict";var r=n(69),a=[["table",n(184),["paragraph","reference"]],["code",n(185)],["fence",n(186),["paragraph","reference","blockquote","list"]],["blockquote",n(187),["paragraph","reference","blockquote","list"]],["hr",n(188),["paragraph","reference","blockquote","list"]],["list",n(189),["paragraph","reference","blockquote"]],["reference",n(190)],["heading",n(191),["paragraph","reference","blockquote"]],["lheading",n(192)],["html_block",n(193),["paragraph","reference","blockquote"]],["paragraph",n(195)]];function i(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}i.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),i=a.length,o=t,c=!1,s=e.md.options.maxNesting;o<n&&(e.line=o=e.skipEmptyLines(o),!(o>=n))&&!(e.sCount[o]<e.blkIndent);){if(e.level>=s){e.line=n;break}for(r=0;r<i&&!a[r](e,o,n,!1);r++);e.tight=!c,e.isEmpty(e.line-1)&&(c=!0),(o=e.line)<n&&e.isEmpty(o)&&(c=!0,o++,e.line=o)}},i.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},i.prototype.State=n(196),e.exports=i},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n=e.bMarks[t]+e.blkIndent,r=e.eMarks[t];return e.src.substr(n,r-n)}function i(e){var t,n=[],r=0,a=e.length,i=0,o=0,c=!1,s=0;for(t=e.charCodeAt(r);r<a;)96===t?c?(c=!1,s=r):i%2==0&&(c=!0,s=r):124!==t||i%2!=0||c||(n.push(e.substring(o,r)),o=r+1),92===t?i++:i=0,++r===a&&c&&(c=!1,r=s+1),t=e.charCodeAt(r);return n.push(e.substring(o)),n}e.exports=function(e,t,n,o){var c,s,l,u,p,d,h,m,f,b,g,v;if(t+2>n)return!1;if(p=t+1,e.sCount[p]<e.blkIndent)return!1;if(e.sCount[p]-e.blkIndent>=4)return!1;if((l=e.bMarks[p]+e.tShift[p])>=e.eMarks[p])return!1;if(124!==(c=e.src.charCodeAt(l++))&&45!==c&&58!==c)return!1;for(;l<e.eMarks[p];){if(124!==(c=e.src.charCodeAt(l))&&45!==c&&58!==c&&!r(c))return!1;l++}for(d=(s=a(e,t+1)).split("|"),f=[],u=0;u<d.length;u++){if(!(b=d[u].trim())){if(0===u||u===d.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?f.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?f.push("left"):f.push("")}if(-1===(s=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((h=(d=i(s.replace(/^\||\|$/g,""))).length)>f.length)return!1;if(o)return!0;for((m=e.push("table_open","table",1)).map=g=[t,0],(m=e.push("thead_open","thead",1)).map=[t,t+1],(m=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<d.length;u++)(m=e.push("th_open","th",1)).map=[t,t+1],f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u].trim(),m.map=[t,t+1],m.children=[],m=e.push("th_close","th",-1);for(m=e.push("tr_close","tr",-1),m=e.push("thead_close","thead",-1),(m=e.push("tbody_open","tbody",1)).map=v=[t+2,0],p=t+2;p<n&&!(e.sCount[p]<e.blkIndent)&&-1!==(s=a(e,p).trim()).indexOf("|")&&!(e.sCount[p]-e.blkIndent>=4);p++){for(d=i(s.replace(/^\||\|$/g,"")),m=e.push("tr_open","tr",1),u=0;u<h;u++)m=e.push("td_open","td",1),f[u]&&(m.attrs=[["style","text-align:"+f[u]]]),(m=e.push("inline","",0)).content=d[u]?d[u].trim():"",m.children=[],m=e.push("td_close","td",-1);m=e.push("tr_close","tr",-1)}return m=e.push("tbody_close","tbody",-1),m=e.push("table_close","table",-1),g[1]=v[1]=p,e.line=p,!0}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(i=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),i.map=[t,e.line],!0}},function(e,t,n){"use strict";e.exports=function(e,t,n,r){var a,i,o,c,s,l,u,p=!1,d=e.bMarks[t]+e.tShift[t],h=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>h)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(s=d,(i=(d=e.skipChars(d,a))-s)<3)return!1;if(u=e.src.slice(s,d),(o=e.src.slice(d,h)).indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(c=t;!(++c>=n)&&!((d=s=e.bMarks[c]+e.tShift[c])<(h=e.eMarks[c])&&e.sCount[c]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[c]-e.blkIndent>=4||(d=e.skipChars(d,a))-s<i||(d=e.skipSpaces(d))<h)){p=!0;break}return i=e.sCount[t],e.line=c+(p?1:0),(l=e.push("fence","code",0)).info=o,l.content=e.getLines(t+1,c,i,!0),l.markup=u,l.map=[t,e.line],!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E=e.lineMax,C=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(C++))return!1;if(a)return!0;for(s=h=e.sCount[t]+C-(e.bMarks[t]+e.tShift[t]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[t]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m=[e.bMarks[t]],e.bMarks[t]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[t]+(i?1:0))%4:h++,C++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=C>=x,v=[e.sCount[t]],e.sCount[t]=h-s,j=[e.tShift[t]],e.tShift[t]=C-e.bMarks[t],k=e.md.block.ruler.getRules("blockquote"),g=e.parentType,e.parentType="blockquote",w=!1,d=t+1;d<n&&(e.sCount[d]<e.blkIndent&&(w=!0),!((C=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(C++)||w){if(u)break;for(_=!1,c=0,l=k.length;c<l;c++)if(k[c](e,d,n,!0)){_=!0;break}if(_){e.lineMax=d,0!==e.blkIndent&&(m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}m.push(e.bMarks[d]),f.push(e.bsCount[d]),j.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(s=h=e.sCount[d]+C-(e.bMarks[d]+e.tShift[d]),32===e.src.charCodeAt(C)?(C++,s++,h++,i=!1,y=!0):9===e.src.charCodeAt(C)?(y=!0,(e.bsCount[d]+h)%4==3?(C++,s++,h++,i=!1):i=!0):y=!1,m.push(e.bMarks[d]),e.bMarks[d]=C;C<x&&(o=e.src.charCodeAt(C),r(o));)9===o?h+=4-(h+e.bsCount[d]+(i?1:0))%4:h++,C++;u=C>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=h-s,j.push(e.tShift[d]),e.tShift[d]=C-e.bMarks[d]}for(b=e.blkIndent,e.blkIndent=0,(O=e.push("blockquote_open","blockquote",1)).markup=">",O.map=p=[t,0],e.md.block.tokenize(e,t,d),(O=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=E,e.parentType=g,p[1]=e.line,c=0;c<j.length;c++)e.bMarks[c+t]=m[c],e.tShift[c+t]=j[c],e.sCount[c+t]=v[c],e.bsCount[c+t]=f[c];return e.blkIndent=b,!0}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(i=e.src.charCodeAt(l++))&&45!==i&&95!==i)return!1;for(o=1;l<u;){if((c=e.src.charCodeAt(l++))!==i&&!r(c))return!1;c===i&&o++}return!(o<3)&&(!!a||(e.line=t+1,(s=e.push("hr","hr",0)).map=[t,e.line],s.markup=Array(o+1).join(String.fromCharCode(i)),!0))}},function(e,t,n){"use strict";var r=n(19).isSpace;function a(e,t){var n,a,i,o;return a=e.bMarks[t]+e.tShift[t],i=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n?-1:a<i&&(o=e.src.charCodeAt(a),!r(o))?-1:a}function i(e,t){var n,a=e.bMarks[t]+e.tShift[t],i=a,o=e.eMarks[t];if(i+1>=o)return-1;if((n=e.src.charCodeAt(i++))<48||n>57)return-1;for(;;){if(i>=o)return-1;if(!((n=e.src.charCodeAt(i++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(i-a>=10)return-1}return i<o&&(n=e.src.charCodeAt(i),!r(n))?-1:i}e.exports=function(e,t,n,r){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k,O,w,E,C,x,S,A,F,P,T,M,N=!1,R=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(N=!0),(S=i(e,t))>=0){if(d=!0,F=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(F,S-F-1)),N&&1!==v)return!1}else{if(!((S=a(e,t))>=0))return!1;d=!1}if(N&&e.skipSpaces(S)>=e.eMarks[t])return!1;if(g=e.src.charCodeAt(S-1),r)return!0;for(b=e.tokens.length,d?(M=e.push("ordered_list_open","ol",1),1!==v&&(M.attrs=[["start",v]])):M=e.push("bullet_list_open","ul",1),M.map=f=[t,0],M.markup=String.fromCharCode(g),y=t,A=!1,T=e.md.block.ruler.getRules("list"),w=e.parentType,e.parentType="list";y<n;){for(x=S,j=e.eMarks[y],p=_=e.sCount[y]+S-(e.bMarks[t]+e.tShift[t]);x<j;){if(9===(o=e.src.charCodeAt(x)))_+=4-(_+e.bsCount[y])%4;else{if(32!==o)break;_++}x++}if((u=(c=x)>=j?1:_-p)>4&&(u=1),l=p+u,(M=e.push("list_item_open","li",1)).markup=String.fromCharCode(g),M.map=h=[t,0],k=e.blkIndent,C=e.tight,E=e.tShift[t],O=e.sCount[t],e.blkIndent=l,e.tight=!0,e.tShift[t]=c-e.bMarks[t],e.sCount[t]=_,c>=j&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!A||(R=!1),A=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=k,e.tShift[t]=E,e.sCount[t]=O,e.tight=C,(M=e.push("list_item_close","li",-1)).markup=String.fromCharCode(g),y=t=e.line,h[1]=y,c=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;for(P=!1,s=0,m=T.length;s<m;s++)if(T[s](e,y,n,!0)){P=!0;break}if(P)break;if(d){if((S=i(e,y))<0)break}else if((S=a(e,y))<0)break;if(g!==e.src.charCodeAt(S-1))break}return(M=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(g),f[1]=y,e.line=y,e.parentType=w,R&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,b),!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t,n,i){var o,c,s,l,u,p,d,h,m,f,b,g,v,j,y,_,k=0,O=e.bMarks[t]+e.tShift[t],w=e.eMarks[t],E=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(O))return!1;for(;++O<w;)if(93===e.src.charCodeAt(O)&&92!==e.src.charCodeAt(O-1)){if(O+1===w)return!1;if(58!==e.src.charCodeAt(O+1))return!1;break}for(l=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";E<l&&!e.isEmpty(E);E++)if(!(e.sCount[E]-e.blkIndent>3||e.sCount[E]<0)){for(j=!1,p=0,d=y.length;p<d;p++)if(y[p](e,E,l,!0)){j=!0;break}if(j)break}for(w=(v=e.getLines(t,E,e.blkIndent,!1).trim()).length,O=1;O<w;O++){if(91===(o=v.charCodeAt(O)))return!1;if(93===o){m=O;break}10===o?k++:92===o&&++O<w&&10===v.charCodeAt(O)&&k++}if(m<0||58!==v.charCodeAt(m+1))return!1;for(O=m+2;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;if(!(b=e.md.helpers.parseLinkDestination(v,O,w)).ok)return!1;if(u=e.md.normalizeLink(b.str),!e.md.validateLink(u))return!1;for(c=O=b.pos,s=k+=b.lines,g=O;O<w;O++)if(10===(o=v.charCodeAt(O)))k++;else if(!a(o))break;for(b=e.md.helpers.parseLinkTitle(v,O,w),O<w&&g!==O&&b.ok?(_=b.str,O=b.pos,k+=b.lines):(_="",O=c,k=s);O<w&&(o=v.charCodeAt(O),a(o));)O++;if(O<w&&10!==v.charCodeAt(O)&&_)for(_="",O=c,k=s;O<w&&(o=v.charCodeAt(O),a(o));)O++;return!(O<w&&10!==v.charCodeAt(O))&&(!!(h=r(v.slice(1,m)))&&(!!i||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[h]&&(e.env.references[h]={title:_,href:u}),e.parentType=f,e.line=t+k+1,!0)))}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t,n,a){var i,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(i=e.src.charCodeAt(l))||l>=u)return!1;for(o=1,i=e.src.charCodeAt(++l);35===i&&l<u&&o<=6;)o++,i=e.src.charCodeAt(++l);return!(o>6||l<u&&!r(i))&&(!!a||(u=e.skipSpacesBack(u,l),(c=e.skipCharsBack(u,35,l))>l&&r(e.src.charCodeAt(c-1))&&(u=c),e.line=t+1,(s=e.push("heading_open","h"+String(o),1)).markup="########".slice(0,o),s.map=[t,e.line],(s=e.push("inline","",0)).content=e.src.slice(l,u).trim(),s.map=[t,e.line],s.children=[],(s=e.push("heading_close","h"+String(o),-1)).markup="########".slice(0,o),!0))}},function(e,t,n){"use strict";e.exports=function(e,t,n){var r,a,i,o,c,s,l,u,p,d,h=t+1,m=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";h<n&&!e.isEmpty(h);h++)if(!(e.sCount[h]-e.blkIndent>3)){if(e.sCount[h]>=e.blkIndent&&(s=e.bMarks[h]+e.tShift[h])<(l=e.eMarks[h])&&(45===(p=e.src.charCodeAt(s))||61===p)&&(s=e.skipChars(s,p),(s=e.skipSpaces(s))>=l)){u=61===p?1:2;break}if(!(e.sCount[h]<0)){for(a=!1,i=0,o=m.length;i<o;i++)if(m[i](e,h,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,h,e.blkIndent,!1).trim(),e.line=h+1,(c=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),c.map=[t,e.line],(c=e.push("inline","",0)).content=r,c.map=[t,e.line-1],c.children=[],(c=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},function(e,t,n){"use strict";var r=n(194),a=n(86).HTML_OPEN_CLOSE_TAG_RE,i=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,o,c,s,l=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(l))return!1;for(s=e.src.slice(l,u),a=0;a<i.length&&!i[a][0].test(s);a++);if(a===i.length)return!1;if(r)return i[a][2];if(o=t+1,!i[a][1].test(s))for(;o<n&&!(e.sCount[o]<e.blkIndent);o++)if(l=e.bMarks[o]+e.tShift[o],u=e.eMarks[o],s=e.src.slice(l,u),i[a][1].test(s)){0!==s.length&&o++;break}return e.line=o,(c=e.push("html_block","",0)).map=[t,o],c.content=e.getLines(t,o,e.blkIndent,!0),!0}},function(e,t,n){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","meta","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=t+1,l=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(c=e.parentType,e.parentType="paragraph";s<u&&!e.isEmpty(s);s++)if(!(e.sCount[s]-e.blkIndent>3||e.sCount[s]<0)){for(r=!1,a=0,i=l.length;a<i;a++)if(l[a](e,s,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,s,e.blkIndent,!1).trim(),e.line=s,(o=e.push("paragraph_open","p",1)).map=[t,e.line],(o=e.push("inline","",0)).content=n,o.map=[t,e.line],o.children=[],o=e.push("paragraph_close","p",-1),e.parentType=c,!0}},function(e,t,n){"use strict";var r=n(70),a=n(19).isSpace;function i(e,t,n,r){var i,o,c,s,l,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,c=s=u=p=0,l=(o=this.src).length;s<l;s++){if(i=o.charCodeAt(s),!d){if(a(i)){u++,9===i?p+=4-p%4:p++;continue}d=!0}10!==i&&s!==l-1||(10!==i&&s++,this.bMarks.push(c),this.eMarks.push(s),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,c=s+1)}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}i.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},i.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},i.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},i.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},i.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},i.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},i.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},i.prototype.getLines=function(e,t,n,r){var i,o,c,s,l,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),i=0;d<t;d++,i++){for(o=0,p=s=this.bMarks[d],l=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];s<l&&o<n;){if(c=this.src.charCodeAt(s),a(c))9===c?o+=4-(o+this.bsCount[d])%4:o++;else{if(!(s-p<this.tShift[d]))break;o++}s++}u[i]=o>n?new Array(o-n+1).join(" ")+this.src.slice(s,l):this.src.slice(s,l)}return u.join("")},i.prototype.Token=r,e.exports=i},function(e,t,n){"use strict";var r=n(69),a=[["text",n(198)],["newline",n(199)],["escape",n(200)],["backticks",n(201)],["strikethrough",n(87).tokenize],["emphasis",n(88).tokenize],["link",n(202)],["image",n(203)],["autolink",n(204)],["html_inline",n(205)],["entity",n(206)]],i=[["balance_pairs",n(207)],["strikethrough",n(87).postProcess],["emphasis",n(88).postProcess],["text_collapse",n(208)]];function o(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<i.length;e++)this.ruler2.push(i[e][0],i[e][1])}o.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),i=a.length,o=e.md.options.maxNesting,c=e.cache;if(void 0===c[r]){if(e.level<o)for(n=0;n<i&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,c[r]=e.pos}else e.pos=c[r]},o.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,i=e.posMax,o=e.md.options.maxNesting;e.pos<i;){if(e.level<o)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=i)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},o.prototype.parse=function(e,t,n,r){var a,i,o,c=new this.State(e,t,n,r);for(this.tokenize(c),o=(i=this.ruler2.getRules("")).length,a=0;a<o;a++)i[a](c)},o.prototype.State=n(209),e.exports=o},function(e,t,n){"use strict";function r(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,t){for(var n=e.pos;n<e.posMax&&!r(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,!0)}},function(e,t,n){"use strict";var r=n(19).isSpace;e.exports=function(e,t){var n,a,i=e.pos;if(10!==e.src.charCodeAt(i))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),i++;i<a&&r(e.src.charCodeAt(i));)i++;return e.pos=i,!0}},function(e,t,n){"use strict";for(var r=n(19).isSpace,a=[],i=0;i<256;i++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,i=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(i))return!1;if(++i<o){if((n=e.src.charCodeAt(i))<256&&0!==a[n])return t||(e.pending+=e.src[i]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),i++;i<o&&(n=e.src.charCodeAt(i),r(n));)i++;return e.pos=i,!0}}return t||(e.pending+="\\"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e,t){var n,r,a,i,o,c,s=e.pos;if(96!==e.src.charCodeAt(s))return!1;for(n=s,s++,r=e.posMax;s<r&&96===e.src.charCodeAt(s);)s++;for(a=e.src.slice(n,s),i=o=s;-1!==(i=e.src.indexOf("`",o));){for(o=i+1;o<r&&96===e.src.charCodeAt(o);)o++;if(o-i===a.length)return t||((c=e.push("code_inline","code",0)).markup=a,c.content=e.src.slice(s,i).replace(/[ \n]+/g," ").trim()),e.pos=o,!0}return t||(e.pending+=a),e.pos+=a.length,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h="",m=e.pos,f=e.posMax,b=e.pos,g=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(s=e.pos+1,(c=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((l=c+1)<f&&40===e.src.charCodeAt(l)){for(g=!1,l++;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(l>=f)return!1;for(b=l,(u=e.md.helpers.parseLinkDestination(e.src,l,e.posMax)).ok&&(h=e.md.normalizeLink(u.str),e.md.validateLink(h)?l=u.pos:h=""),b=l;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);if(u=e.md.helpers.parseLinkTitle(e.src,l,e.posMax),l<f&&b!==l&&u.ok)for(d=u.str,l=u.pos;l<f&&(i=e.src.charCodeAt(l),a(i)||10===i);l++);else d="";(l>=f||41!==e.src.charCodeAt(l))&&(g=!0),l++}if(g){if(void 0===e.env.references)return!1;if(l<f&&91===e.src.charCodeAt(l)?(b=l+1,(l=e.md.helpers.parseLinkLabel(e,l))>=0?o=e.src.slice(b,l++):l=c+1):l=c+1,o||(o=e.src.slice(s,c)),!(p=e.env.references[r(o)]))return e.pos=m,!1;h=p.href,d=p.title}return t||(e.pos=s,e.posMax=c,e.push("link_open","a",1).attrs=n=[["href",h]],d&&n.push(["title",d]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=l,e.posMax=f,!0}},function(e,t,n){"use strict";var r=n(19).normalizeReference,a=n(19).isSpace;e.exports=function(e,t){var n,i,o,c,s,l,u,p,d,h,m,f,b,g="",v=e.pos,j=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(l=e.pos+2,(s=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=s+1)<j&&40===e.src.charCodeAt(u)){for(u++;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(u>=j)return!1;for(b=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(g=e.md.normalizeLink(d.str),e.md.validateLink(g)?u=d.pos:g=""),b=u;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<j&&b!==u&&d.ok)for(h=d.str,u=d.pos;u<j&&(i=e.src.charCodeAt(u),a(i)||10===i);u++);else h="";if(u>=j||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<j&&91===e.src.charCodeAt(u)?(b=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?c=e.src.slice(b,u++):u=s+1):u=s+1,c||(c=e.src.slice(l,s)),!(p=e.env.references[r(c)]))return e.pos=v,!1;g=p.href,h=p.title}return t||(o=e.src.slice(l,s),e.md.inline.parse(o,e.md,e.env,f=[]),(m=e.push("image","img",0)).attrs=n=[["src",g],["alt",""]],m.children=f,m.content=o,h&&n.push(["title",h])),e.pos=u,e.posMax=j,!0}},function(e,t,n){"use strict";var r=/^<([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,a=/^<([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)>/;e.exports=function(e,t){var n,i,o,c,s,l,u=e.pos;return 60===e.src.charCodeAt(u)&&(!((n=e.src.slice(u)).indexOf(">")<0)&&(a.test(n)?(c=(i=n.match(a))[0].slice(1,-1),s=e.md.normalizeLink(c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=i[0].length,!0)):!!r.test(n)&&(c=(o=n.match(r))[0].slice(1,-1),s=e.md.normalizeLink("mailto:"+c),!!e.md.validateLink(s)&&(t||((l=e.push("link_open","a",1)).attrs=[["href",s]],l.markup="autolink",l.info="auto",(l=e.push("text","",0)).content=e.md.normalizeLinkText(c),(l=e.push("link_close","a",-1)).markup="autolink",l.info="auto"),e.pos+=o[0].length,!0))))}},function(e,t,n){"use strict";var r=n(86).HTML_TAG_RE;e.exports=function(e,t){var n,a,i,o=e.pos;return!!e.md.options.html&&(i=e.posMax,!(60!==e.src.charCodeAt(o)||o+2>=i)&&(!(33!==(n=e.src.charCodeAt(o+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(o).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(o,o+a[0].length)),e.pos+=a[0].length,!0))))}},function(e,t,n){"use strict";var r=n(81),a=n(19).has,i=n(19).isValidEntityCode,o=n(19).fromCodePoint,c=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,s=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,l,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(l=e.src.slice(u).match(c))return t||(n="x"===l[1][0].toLowerCase()?parseInt(l[1].slice(1),16):parseInt(l[1],10),e.pending+=i(n)?o(n):o(65533)),e.pos+=l[0].length,!0}else if((l=e.src.slice(u).match(s))&&a(r,l[1]))return t||(e.pending+=r[l[1]]),e.pos+=l[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r,a,i=e.delimiters,o=e.delimiters.length;for(t=0;t<o;t++)if((r=i[t]).close)for(n=t-r.jump-1;n>=0;){if((a=i[n]).open&&a.marker===r.marker&&a.end<0&&a.level===r.level)if(!((a.close||r.open)&&void 0!==a.length&&void 0!==r.length&&(a.length+r.length)%3==0)){r.jump=t-n,r.open=!1,a.end=t,a.jump=0;break}n-=a.jump+1}}},function(e,t,n){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,i=e.tokens.length;for(t=n=0;t<i;t++)r+=a[t].nesting,a[t].level=r,"text"===a[t].type&&t+1<i&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},function(e,t,n){"use strict";var r=n(70),a=n(19).isWhiteSpace,i=n(19).isPunctChar,o=n(19).isMdAsciiPunct;function c(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[]}c.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},c.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n);return n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.pendingLevel=this.level,this.tokens.push(a),a},c.prototype.scanDelims=function(e,t){var n,r,c,s,l,u,p,d,h,m=e,f=!0,b=!0,g=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;m<g&&this.src.charCodeAt(m)===v;)m++;return c=m-e,r=m<g?this.src.charCodeAt(m):32,p=o(n)||i(String.fromCharCode(n)),h=o(r)||i(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:h&&(u||p||(f=!1)),u?b=!1:p&&(d||h||(b=!1)),t?(s=f,l=b):(s=f&&(!b||p),l=b&&(!f||h)),{can_open:s,can_close:l,length:c}},c.prototype.Token=r,e.exports=c},function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function i(e){return"[object Function]"===a(e)}function o(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var c={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var s={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]?0:t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},l="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(211)(e.__opts__),r=e.__tlds__.slice();function c(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(c(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(c(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(c(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(c(t.tpl_host_fuzzy_test),"i");var s=[];function l(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?i(n.validate)?r.validate=n.validate:l(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(i(n.normalize)?r.normalize=n.normalize:n.normalize?l(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?l(t,n):s.push(t)}})),s.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(o).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function h(e,t){if(!(this instanceof h))return new h(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||c.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},c,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},s,e),this.__compiled__={},this.__tlds__=l,this.__tlds_replaced__=!1,this.re={},u(this)}h.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},h.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},h.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,i,o,c,s;if(this.re.schema_test.test(e))for((c=this.re.schema_search).lastIndex=0;null!==(t=c.exec(e));)if(a=this.testSchemaAt(e,t[2],c.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(s=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||s<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(i=n.index+n[1].length,(this.__index__<0||i<this.__index__)&&(this.__schema__="",this.__index__=i,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(i=r.index+r[1].length,o=r.index+r[0].length,(this.__index__<0||i<this.__index__||i===this.__index__&&o>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=i,this.__last_index__=o)),this.__index__>=0},h.prototype.pretest=function(e){return this.re.pretest.test(e)},h.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},h.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},h.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},h.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},h.prototype.onCompile=function(){},e.exports=h},function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(83).source,t.src_Cc=n(84).source,t.src_Z=n(85).source,t.src_P=n(68).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+"\\,(?!"+t.src_ZCc+").|\\!(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},function(e,t,n){"use strict";n.r(t),n.d(t,"ucs2decode",(function(){return m})),n.d(t,"ucs2encode",(function(){return f})),n.d(t,"decode",(function(){return v})),n.d(t,"encode",(function(){return j})),n.d(t,"toASCII",(function(){return _})),n.d(t,"toUnicode",(function(){return y}));var r=n(21),a=n.n(r),i=2147483647,o=/^xn--/,c=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},u=Math.floor,p=String.fromCharCode;function d(e){throw new RangeError(l[e])}function h(e,t){var n=e.split("@"),r="";n.length>1&&(r=n[0]+"@",e=n[1]);var a=function(e,t){for(var n=[],r=e.length;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){for(var t=[],n=0,r=e.length;n<r;){var a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){var i=e.charCodeAt(n++);56320==(64512&i)?t.push(((1023&a)<<10)+(1023&i)+65536):(t.push(a),n--)}else t.push(a)}return t}var f=function(e){return String.fromCodePoint.apply(String,a()(e))},b=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){var r=0;for(e=n?u(e/700):e>>1,e+=u(e/t);e>455;r+=36)e=u(e/35);return u(r+36*e/(e+38))},v=function(e){var t,n=[],r=e.length,a=0,o=128,c=72,s=e.lastIndexOf("-");s<0&&(s=0);for(var l=0;l<s;++l)e.charCodeAt(l)>=128&&d("not-basic"),n.push(e.charCodeAt(l));for(var p=s>0?s+1:0;p<r;){for(var h=a,m=1,f=36;;f+=36){p>=r&&d("invalid-input");var b=(t=e.charCodeAt(p++))-48<10?t-22:t-65<26?t-65:t-97<26?t-97:36;(b>=36||b>u((i-a)/m))&&d("overflow"),a+=b*m;var v=f<=c?1:f>=c+26?26:f-c;if(b<v)break;var j=36-v;m>u(i/j)&&d("overflow"),m*=j}var y=n.length+1;c=g(a-h,y,0==h),u(a/y)>i-o&&d("overflow"),o+=u(a/y),a%=y,n.splice(a++,0,o)}return String.fromCodePoint.apply(String,n)},j=function(e){var t=[],n=(e=m(e)).length,r=128,a=0,o=72,c=!0,s=!1,l=void 0;try{for(var h,f=e[Symbol.iterator]();!(c=(h=f.next()).done);c=!0){var v=h.value;v<128&&t.push(p(v))}}catch(B){s=!0,l=B}finally{try{c||null==f.return||f.return()}finally{if(s)throw l}}var j=t.length,y=j;for(j&&t.push("-");y<n;){var _=i,k=!0,O=!1,w=void 0;try{for(var E,C=e[Symbol.iterator]();!(k=(E=C.next()).done);k=!0){var x=E.value;x>=r&&x<_&&(_=x)}}catch(B){O=!0,w=B}finally{try{k||null==C.return||C.return()}finally{if(O)throw w}}var S=y+1;_-r>u((i-a)/S)&&d("overflow"),a+=(_-r)*S,r=_;var A=!0,F=!1,P=void 0;try{for(var T,M=e[Symbol.iterator]();!(A=(T=M.next()).done);A=!0){var N=T.value;if(N<r&&++a>i&&d("overflow"),N==r){for(var R=a,D=36;;D+=36){var z=D<=o?1:D>=o+26?26:D-o;if(R<z)break;var I=R-z,L=36-z;t.push(p(b(z+I%L,0))),R=u(I/L)}t.push(p(b(R,0))),o=g(a,S,y==j),a=0,++y}}}catch(B){F=!0,P=B}finally{try{A||null==M.return||M.return()}finally{if(F)throw P}}++a,++r}return t.join("")},y=function(e){return h(e,(function(e){return o.test(e)?v(e.slice(4).toLowerCase()):e}))},_=function(e){return h(e,(function(e){return c.test(e)?"xn--"+j(e):e}))},k={version:"2.1.0",ucs2:{decode:m,encode:f},decode:v,encode:j,toASCII:_,toUnicode:y};t.default=k},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},function(e,t,n){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},function(e,t,n){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){"use strict";var r=n(34),a="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,i=n(90),o=n(221),c=n(222),s="function"==typeof Symbol&&Symbol.iterator;function l(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function u(e,t,n,r){var i,c=typeof e;if("undefined"!==c&&"boolean"!==c||(e=null),null===e||"string"===c||"number"===c||"object"===c&&e.$$typeof===a)return n(r,e,""===t?"."+l(e,0):t),1;var p=0,d=""===t?".":t+":";if(Array.isArray(e))for(var h=0;h<e.length;h++)p+=u(i=e[h],d+l(i,h),n,r);else{var m=function(e){var t=e&&(s&&e[s]||e["@@iterator"]);if("function"==typeof t)return t}(e);if(m){0;for(var f,b=m.call(e),g=0;!(f=b.next()).done;)p+=u(i=f.value,d+l(i,g++),n,r)}else if("object"===c){0;var v=""+e;o(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===v?"object with keys {"+Object.keys(e).join(", ")+"}":v,"")}}return p}var p=/\/+/g;function d(e){return(""+e).replace(p,"$&/")}var h,m,f=b,b=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)},g=function(e){o(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)};function v(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function j(e,t,n){var a,o,c=e.result,s=e.keyPrefix,l=e.func,u=e.context,p=l.call(u,t,e.count++);Array.isArray(p)?y(p,c,n,i.thatReturnsArgument):null!=p&&(r.isValidElement(p)&&(a=p,o=s+(!p.key||t&&t.key===p.key?"":d(p.key)+"/")+n,p=r.cloneElement(a,{key:o},void 0!==a.props?a.props.children:void 0)),c.push(p))}function y(e,t,n,r,a){var i="";null!=n&&(i=d(n)+"/");var o=v.getPooled(t,i,r,a);!function(e,t,n){null==e||u(e,"",t,n)}(e,j,o),v.release(o)}v.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h=function(e,t,n,r){if(this.instancePool.length){var a=this.instancePool.pop();return this.call(a,e,t,n,r),a}return new this(e,t,n,r)},(m=v).instancePool=[],m.getPooled=h||f,m.poolSize||(m.poolSize=10),m.release=g;e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return c(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return c(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;o(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)y(e[n],t,n,i.thatReturnsArgument);return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,a,i,o,c){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,a,i,o,c],u=0;(s=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},function(e,t,n){"use strict";var r=n(90);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t,n){"use strict";var r=n(71),a=n(92);function i(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=i,i.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},i.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},i.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var i=8;i<this.padLength;i++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,i=8;i<this.padLength;i++)r[a++]=0;return r}},function(e,t,n){"use strict";var r=n(71).rotr32;function a(e,t,n){return e&t^~e&n}function i(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?o(t,n,r):2===e?i(t,n,r):void 0},t.ch32=a,t.maj32=i,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t){!function(){"use strict";var t=[];function n(e){var t,n,r,a,i=-1;for(t=0,r=e.length;t<r;t+=1){for(a=255&(i^e[t]),n=0;n<8;n+=1)1==(1&a)?a=a>>>1^3988292384:a>>>=1;i=i>>>8^a}return-1^i}function r(e,n){var a,i,o;if(void 0!==r.crc&&n&&e||(r.crc=-1,e)){for(a=r.crc,i=0,o=e.length;i<o;i+=1)a=a>>>8^t[255&(a^e[i])];return r.crc=a,-1^a}}!function(){var e,n,r;for(n=0;n<256;n+=1){for(e=n,r=0;r<8;r+=1)1&e?e=3988292384^e>>>1:e>>>=1;t[n]=e>>>0}}(),e.exports=function(e,t){var a;e="string"==typeof e?(a=e,Array.prototype.map.call(a,(function(e){return e.charCodeAt(0)}))):e;return((t?n(e):r(e))>>>0).toString(16)},e.exports.direct=n,e.exports.table=r}()},function(e,t,n){"use strict";var r=[],a=window,i=Math.pow(256,6),o=Math.pow(2,52),c=2*o,s=Math.random;function l(e){var t,n=e.length,r=this,a=0,i=r.i=r.j=0,o=r.S=[];for(n||(e=[n++]);a<256;)o[a]=a++;for(a=0;a<256;a++)o[a]=o[i=255&i+e[a%n]+(t=o[a])],o[i]=t;(r.g=function(e){for(var t,n=0,a=r.i,i=r.j,o=r.S;e--;)t=o[a=255&a+1],n=256*n+o[255&(o[a]=o[i=255&i+t])+(o[i]=t)];return r.i=a,r.j=i,n})(256)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(i){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[255&a]=255&(n^=19*t[255&a])+r.charCodeAt(a++);return h(t)}function d(e){try{return a.crypto.getRandomValues(e=new Uint8Array(256)),h(e)}catch(t){return[+new Date,a,a.navigator&&a.navigator.plugins,a.screen,h(r)]}}function h(e){return String.fromCharCode.apply(0,e)}e.exports=function(t,n){if(n&&!0===n.global)return n.global=!1,Math.random=e.exports(t,n),n.global=!0,Math.random;var a=n&&n.entropy||!1,s=[],m=(p(u(a?[t,h(r)]:0 in arguments?t:d(),3),s),new l(s));return p(h(m.S),r),function(){for(var e=m.g(6),t=i,n=0;e<o;)e=256*(e+n),t*=256,n=m.g(1);for(;e>=c;)e/=2,t/=2,n>>>=1;return(e+n)/t}},e.exports.resetGlobal=function(){Math.random=s},p(Math.random(),r)},function(e,t,n){"use strict";function r(e){return(r="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":r(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!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.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"],e.exports=n(237)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];var i=o,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var a=r.formatters[n];if("function"==typeof a){var o=t[l];e=a.call(i,o),t.splice(l,1),l--}return e})),r.formatArgs.call(i,t);var u=i.log||r.log;u.apply(i,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=a,o.extend=i,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function a(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function i(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),a=n.length;for(t=0;t<a;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var i=r.instances[t];i.enabled=r.enabled(i.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(64),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"save",(function(){return Nt})),n.d(r,"attributes",(function(){return Dt})),n.d(r,"support",(function(){return zt}));var a=n(17),i=n(15),o=n.n(i),c=n(3),s=n.n(c),l=n(0),u=n(1),p=n(16),d=n(5),h=n(2),m=n(21),f=n.n(m),b=n(7),g=n.n(b),v=n(11),j=n.n(v),y=n(8),_=n.n(y),k=n(9),O=n.n(k),w=n(4),E=n.n(w),C=n(10),x=n.n(C),S=n(6),A=n(28),F=[{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Original","image style","jetpack"),value:void 0},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Black and White","image style","jetpack"),value:"black-and-white"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:Object(u._x)("Sepia","image style","jetpack"),value:"sepia"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:Object(u._x)("Clarendon","image style","jetpack"),value:"clarendon"},{icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0z"}),Object(l.createElement)(h.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:Object(u._x)("Gingham","image style","jetpack"),value:"gingham"}],P=Object(u.__)("Pick an image filter","jetpack");function T(e){var t=e.value,n=e.onChange;return Object(l.createElement)(h.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(l.createElement)(h.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:P,tooltip:P,icon:Object(l.createElement)(h.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(l.createElement)(h.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(l.createElement)(h.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:function(e){var r=e.onClose;return Object(l.createElement)(h.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},F.map((function(e){var a,i=e.icon,o=e.title,c=e.value;return Object(l.createElement)(h.MenuItem,{className:t===c?"is-active":void 0,icon:i,isSelected:t===c,key:c||"original",onClick:(a=c,function(){n(t===a?void 0:a),r()}),role:"menuitemcheckbox"},o)})))}})}var M=n(12),N=n.n(M),R=n(26),D=n(25),z=n(13),I=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"img",Object(l.createRef)()),s()(E()(n),"onImageClick",(function(){n.props.isSelected||n.props.onSelect()})),s()(E()(n),"onImageKeyDown",(function(e){n.img.current===document.activeElement&&n.props.isSelected&&[R.BACKSPACE,R.DELETE].includes(e.keyCode)&&n.props.onRemove()})),n}return x()(t,e),j()(t,[{key:"componentDidUpdate",value:function(){var e=this.props,t=e.alt,n=e.height,r=e.image,a=e.link,i=e.url,o=e.width;if(r){var c={};!t&&r.alt_text&&(c.alt=r.alt_text),!n&&r.media_details&&r.media_details.height&&(c.height=+r.media_details.height),!a&&r.link&&(c.link=r.link),!i&&r.source_url&&(c.url=r.source_url),!o&&r.media_details&&r.media_details.width&&(c.width=+r.media_details.width),Object.keys(c).length&&this.props.setAttributes(c)}}},{key:"render",value:function(){var e,t=this.props,n=t["aria-label"],r=t.alt,a=t.height,i=t.id,o=t.imageFilter,c=t.isSelected,p=t.link,d=t.linkTo,m=t.onRemove,f=t.origUrl,b=t.srcSet,g=t.url,v=t.width;switch(d){case"media":e=g;break;case"attachment":e=p}var j=Object(D.isBlobURL)(f),y=Object(l.createElement)(l.Fragment,null,Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":p,"data-url":f,"data-width":v,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:g,srcSet:j?void 0:b,tabIndex:"0",style:j?{backgroundImage:"url(".concat(f,")")}:void 0}),j&&Object(l.createElement)(h.Spinner,null));return Object(l.createElement)("figure",{className:N()("tiled-gallery__item",s()({"is-selected":c,"is-transient":j},"filter__".concat(o),!!o))},c&&Object(l.createElement)("div",{className:"tiled-gallery__item__inline-menu"},Object(l.createElement)(h.IconButton,{icon:"no-alt",onClick:m,className:"tiled-gallery__item__remove",label:Object(u.__)("Remove Image","jetpack")})),e?Object(l.createElement)("a",null,y):y)}}]),t}(l.Component),L=Object(z.withSelect)((function(e,t){var n=e("core").getMedia,r=t.id;return{image:r?n(r):null}}))(I);function B(e){var t,n=e.alt,r=e.imageFilter,a=e.height,i=e.id,o=e.link,c=e.linkTo,u=e.origUrl,p=e.url,d=e.width;if(Object(D.isBlobURL)(u))return null;switch(c){case"media":t=p;break;case"attachment":t=o}var h=Object(l.createElement)("img",{alt:n,"data-height":a,"data-id":i,"data-link":o,"data-url":u,"data-width":d,src:p});return Object(l.createElement)("figure",{className:N()("tiled-gallery__item",s()({},"filter__".concat(r),!!r))},t?Object(l.createElement)("a",{href:t},h):h)}var q=n(39);function U(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function V(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function H(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:N()("tiled-gallery__row",n)},t)}var G=n(62);function $(e){var t=e.height,n=e.width;return t&&n?n/t:1}var W=he([2,1,2],5),K=me([fe,fe,be,fe,fe]),Z=me([fe,fe,fe,be,fe,fe,fe]),J=he([3,1,3],5),Y=me([be,fe,fe,be]),Q=he([1,2,1],5),X=me([be,fe,fe,fe]),ee=he([1,3],3),te=me([fe,fe,fe,be]),ne=he([3,1],3),re=me([ve(1.6),Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2))]),ae=he([1,2],3),ie=he([1,1,1,1,1],1),oe=he([1,1,1,1],1),ce=he([1,1,1],3),se=me([Object(d.overEvery)(ge(.9),ve(2)),Object(d.overEvery)(ge(.9),ve(2)),ve(1.6)]),le=he([2,1],3),ue=me([function(e){return e>=2}]);function pe(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&ce(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function de(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return oe(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function he(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function me(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function fe(e){return e>=1&&e<2}function be(e){return e<1}function ge(e){return function(t){return t>=e}}function ve(e){return function(t){return t<e}}var je=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Object(G.a)(n).forEach((function(e){return Object(G.b)(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,$)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&K(r)&&W(t)?[2,1,2]:r.length>15&&Z(r)&&J(t)?[3,1,3]:5!==r.length&&Y(r)&&Q(t)?[1,2,1]:X(r)&&ee(t)?[1,3]:te(r)&&ne(t)?[3,1]:re(r)&&ae(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ie(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:de(t,r)?[1,1,1,1]:pe(t,r,n)?[1,1,1]:se(r)&&le(t)?[2,1]:ue(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(V,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(H,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(U,{key:t},n)})))})))}}]),t}(l.Component),ye=n(22);function _e(e){var t=e.columns,n=e.renderedImages,r=Math.min(ye.h,t),a=n.length%r;return Object(l.createElement)(V,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(H,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(U,{key:t},e)})))})))}var ke=n(46),Oe=n.n(ke),we=n(61),Ee=n.n(we),Ce=n(29);function xe(e){return["circle","square"].includes(e)}function Se(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function Ae(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}function Fe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}var Pe=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"renderImage",value:function(e,t){var n=this.props,r=n.imageFilter,a=n.images,i=n.isSave,o=n.linkTo,c=n.layoutStyle,s=n.onRemoveImage,p=n.onSelectImage,h=n.selectedImage,m=n.setImageAttributes,f=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,a.length),b=i?B:L,g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if(Object(D.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};var n,r=e.url.split("?",1)[0],a=e.height,i=e.width,o=t.layoutStyle,c=Ae(r)||!0===Se()?Fe:Ee.a;if(xe(o)&&i&&a){var s=Math.min(ye.i,i,a);n=c(r,{resize:"".concat(s,",").concat(s)})}else n=c(r);var l,u=300,p=600;if(xe(o)){var h=Math.min(p,i,a),m=Math.min(ye.i,i,a);l=Object(d.range)(h,m,u).map((function(e){var t=c(r,{resize:"".concat(e,",").concat(e),strip:"info"});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}else{var f=Math.min(p,i),b=Math.min(ye.i,i);l=Object(d.range)(f,b,u).map((function(e){var t=c(r,{strip:"info",width:e});return t?"".concat(t," ").concat(e,"w"):null})).filter(Boolean).join(",")}return Object.assign({src:n},l&&{srcSet:l})}(e,{layoutStyle:c}),v=g.src,j=g.srcSet;return Object(l.createElement)(b,{alt:e.alt,"aria-label":f,height:e.height,id:e.id,imageFilter:r,isSelected:h===t,key:t,link:e.link,linkTo:o,onRemove:i?void 0:s(t),onSelect:i?void 0:p(t),origUrl:e.url,setAttributes:i?void 0:m(t),srcSet:j,url:v,width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=xe(o)?_e:je,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component),Te=n(112),Me=n.n(Te);function Ne(e,t){var n=function(e,t){var n=!0,r=!1,a=void 0;try{for(var i,o=new Me.a(t).values()[Symbol.iterator]();!(n=(i=o.next()).done);n=!0){var c=i.value;if(-1!==c.indexOf("is-style-")){var s=c.substring(9),l=Object(d.find)(e,{name:s});if(l)return l}}}catch(u){r=!0,a=u}finally{try{n||null==o.return||o.return()}finally{if(r)throw a}}return Object(d.find)(e,"isDefault")}(e,t);return n?n.name:null}var Re=n(48),De=[{value:"attachment",label:Object(u.__)("Attachment Page","jetpack")},{value:"media",label:Object(u.__)("Media File","jetpack")},{value:"none",label:Object(u.__)("None","jetpack")}];function ze(e){return Math.min(3,e.images.length)}var Ie=function(e){var t=Object(d.pick)(e,[["alt"],["id"],["link"]]);return t.url=Object(d.get)(e,["sizes","large","url"])||Object(d.get)(e,["media_details","sizes","large","source_url"])||e.url,t},Le=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"state",{selectedImage:null}),s()(E()(n),"addFiles",(function(e){var t=n.props.attributes.images||[],r=n.props.noticeOperations;Object(A.mediaUpload)({allowedTypes:ye.a,filesList:e,onFileChange:function(e){var r=e.map((function(e){return Ie(e)}));n.setAttributes({images:t.concat(r)})},onError:r.createErrorNotice})})),s()(E()(n),"onRemoveImage",(function(e){return function(){var t=Object(d.filter)(n.props.attributes.images,(function(t,n){return e!==n})),r=n.props.attributes.columns;n.setState({selectedImage:null}),n.setAttributes({images:t,columns:r?Math.min(t.length,r):r})}})),s()(E()(n),"onSelectImage",(function(e){return function(){n.state.selectedImage!==e&&n.setState({selectedImage:e})}})),s()(E()(n),"onSelectImages",(function(e){var t=n.props.attributes.columns;n.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((function(e){return Ie(e)}))})})),s()(E()(n),"setColumnsNumber",(function(e){return n.setAttributes({columns:e})})),s()(E()(n),"setImageAttributes",(function(e){return function(t){var r=n.props.attributes.images;r[e]&&n.setAttributes({images:[].concat(f()(r.slice(0,e)),[o()({},r[e],{},t)],f()(r.slice(e+1)))})}})),s()(E()(n),"setLinkTo",(function(e){return n.setAttributes({linkTo:e})})),s()(E()(n),"uploadFromFiles",(function(e){return n.addFiles(e.target.files)})),n}return x()(t,e),j()(t,[{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=o()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"render",value:function(){var e=this,t=this.state.selectedImage,n=this.props,r=n.attributes,a=n.isSelected,i=n.className,o=n.noticeOperations,c=n.noticeUI,s=n.setAttributes,p=r.align,d=r.columns,m=void 0===d?ze(r):d,f=r.imageFilter,b=r.images,g=r.linkTo,v=Object(l.createElement)(h.DropZone,{onFilesDrop:this.addFiles}),j=Object(l.createElement)(S.BlockControls,null,!!b.length&&Object(l.createElement)(l.Fragment,null,Object(l.createElement)(h.Toolbar,null,Object(l.createElement)(S.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:ye.a,multiple:!0,gallery:!0,value:b.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(l.createElement)(Re.a,{label:Object(u.__)("Edit Gallery","jetpack"),onClick:t})}})),Object(l.createElement)(T,{value:f,onChange:function(t){s({imageFilter:t}),e.setState({selectedImage:null})}})));if(0===b.length)return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.MediaPlaceholder,{icon:Object(l.createElement)(S.BlockIcon,{icon:tn}),className:i,labels:{title:Object(u.__)("Tiled Gallery","jetpack"),name:Object(u.__)("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:ye.a,multiple:!0,notices:c,onError:o.createErrorNotice}));var y=Ne(ye.g,r.className);return Object(l.createElement)(l.Fragment,null,j,Object(l.createElement)(S.InspectorControls,null,Object(l.createElement)(h.PanelBody,{title:Object(u.__)("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(y)&&b.length>1&&Object(l.createElement)(h.RangeControl,{label:Object(u.__)("Columns","jetpack"),value:m,onChange:this.setColumnsNumber,min:1,max:Math.min(ye.h,b.length)}),Object(l.createElement)(h.SelectControl,{label:Object(u.__)("Link To","jetpack"),value:g,onChange:this.setLinkTo,options:De}))),c,Object(l.createElement)(Pe,{align:p,className:i,columns:m,imageFilter:f,images:b,layoutStyle:y,linkTo:g,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,selectedImage:a?t:null,setImageAttributes:this.setImageAttributes},v,a&&Object(l.createElement)("div",{className:"tiled-gallery__add-item"},Object(l.createElement)(h.FormFileUpload,{multiple:!0,isLarge:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(u.__)("Upload an image","jetpack")))))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}}]),t}(l.Component),Be=Object(h.withNotices)(Le);var qe=n(24);n(238);function Ue(e){var t,n=e["aria-label"],r=e.alt,a=e.height,i=e.id,o=e.link,c=e.linkTo,s=e.origUrl,u=e.url,p=e.width;if(Object(D.isBlobURL)(s))return null;switch(c){case"media":t=u;break;case"attachment":t=o}var d=Object(l.createElement)("img",{alt:r,"aria-label":n,"data-height":a,"data-id":i,"data-link":o,"data-url":s,"data-width":p,src:u});return Object(l.createElement)("figure",{className:"tiled-gallery__item"},t?Object(l.createElement)("a",{href:t},d):d)}function Ve(e){var t=e.children;return Object(l.createElement)("div",{className:"tiled-gallery__col"},t)}function He(e){var t=e.children,n=e.galleryRef;return Object(l.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}function Ge(e){var t=e.children,n=e.className;return Object(l.createElement)("div",{className:N()("tiled-gallery__row",n)},t)}var $e=n(18),We=n.n($e),Ke=[{isDefault:!0,name:"rectangular"},{name:"circle"},{name:"square"},{name:"columns"}];function Ze(e,t){var n=(t-e.reduce((function(e,t){return e+t}),0))/e.length;return e.map((function(e){return e+n}))}function Je(e,t){!function(e,t,n){var r=We()(t,2),a=r[0],i=r[1],o=1/a*(n-4*(e.childElementCount-1)-i);!function(e,t){var n=t.rawHeight,r=t.rowWidth,a=Qe(e),i=a.map((function(e){return(n-4*(e.childElementCount-1))*et(e)[0]})),o=Ze(i,r);a.forEach((function(e,t){var r=i[t],a=o[t];!function(e,t){var n=t.colHeight,r=t.width,a=t.rawWidth,i=Ze(Xe(e).map((function(e){return a/tt(e)})),n);Array.from(e.children).forEach((function(e,t){var n=i[t];e.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(e,{colHeight:n-4*(e.childElementCount-1),width:a,rawWidth:r})}))}(e,{rawHeight:o,rowWidth:n-4*(e.childElementCount-1)})}(e,function(e){return Qe(e).map(et).reduce((function(e,t){var n=We()(e,2),r=n[0],a=n[1],i=We()(t,2);return[r+i[0],a+i[1]]}),[0,0])}(e),t)}function Ye(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function Qe(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function Xe(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function et(e){var t=Xe(e),n=t.length,r=1/t.map(tt).reduce((function(e,t){return e+1/t}),0);return[r,r*n||1]}function tt(e){var t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}function nt(e){var t=e.height,n=e.width;return t&&n?n/t:1}var rt=Ot([2,1,2],5),at=wt([Et,Et,Ct,Et,Et]),it=wt([Et,Et,Et,Ct,Et,Et,Et]),ot=Ot([3,1,3],5),ct=wt([Ct,Et,Et,Ct]),st=Ot([1,2,1],5),lt=wt([Ct,Et,Et,Et]),ut=Ot([1,3],3),pt=wt([Et,Et,Et,Ct]),dt=Ot([3,1],3),ht=wt([St(1.6),Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2))]),mt=Ot([1,2],3),ft=Ot([1,1,1,1,1],1),bt=Ot([1,1,1,1],1),gt=Ot([1,1,1],3),vt=wt([Object(d.overEvery)(xt(.9),St(2)),Object(d.overEvery)(xt(.9),St(2)),St(1.6)]),jt=Ot([2,1],3),yt=wt([function(e){return e>=2}]);function _t(e,t,n){var r=Object(d.sum)(Object(d.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&gt(e)&&(r<2.5||r<5&&t.length>=3&&t[0]===t[2]||n)}function kt(e,t){var n=Object(d.sum)(Object(d.take)(t,4));return bt(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function Ot(e,t){return function(n){return!Object(d.some)(Object(d.takeRight)(n,t),(function(t){return Object(d.isEqual)(t,e)}))}}function wt(e){return function(t){return t.length>=e.length&&Object(d.every)(Object(d.zipWith)(e,t.slice(0,e.length),(function(e,t){return e(t)})))}}function Et(e){return e>=1&&e<2}function Ct(e){return e<1}function xt(e){return function(t){return t>=e}}function St(e){return function(t){return t<e}}var At=function(e){function t(){var e,n;g()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=_()(this,(e=O()(t)).call.apply(e,[this].concat(a))),s()(E()(n),"gallery",Object(l.createRef)()),s()(E()(n),"pendingRaf",null),s()(E()(n),"ro",null),s()(E()(n),"handleGalleryResize",(function(e){n.pendingRaf&&(cancelAnimationFrame(n.pendingRaf),n.pendingRaf=null),n.pendingRaf=requestAnimationFrame((function(){var t=!0,n=!1,r=void 0;try{for(var a,i=function(){var e=a.value,t=e.contentRect,n=e.target,r=t.width;Ye(n).forEach((function(e){return Je(e,r)}))},o=e[Symbol.iterator]();!(t=(a=o.next()).done);t=!0)i()}catch(c){n=!0,r=c}finally{try{t||null==o.return||o.return()}finally{if(n)throw r}}}))})),n}return x()(t,e),j()(t,[{key:"componentDidMount",value:function(){this.observeResize()}},{key:"componentWillUnmount",value:function(){this.unobserveResize()}},{key:"componentDidUpdate",value:function(e){e.images!==this.props.images||e.align!==this.props.align?this.triggerResize():"columns"===this.props.layoutStyle&&e.columns!==this.props.columns&&this.triggerResize()}},{key:"triggerResize",value:function(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}},{key:"observeResize",value:function(){this.triggerResize(),this.ro=new q.a(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}},{key:"unobserveResize",value:function(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.columns,r=e.images,a=e.layoutStyle,i=e.renderedImages,o=function(e){return Object(d.map)(e,nt)}(r),c="columns"===a?function(e,t){if(e.length<=t)return[Array(e.length).fill(1)];for(var n=Object(d.sum)(e)/t,r=[],a=e,i=0,o=function(e){var t=Object(d.takeWhile)(a,(function(t){var r=i<=(e+1)*n;return r&&(i+=t),r})).length;r.push(t),a=Object(d.drop)(a,t)},c=0;c<t-1;c++)o(c);return r.push(a.length),[r]}(o,n):function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isWide,r=function e(t,r){if(!r.length)return t;var a;a=r.length>15&&at(r)&&rt(t)?[2,1,2]:r.length>15&&it(r)&&ot(t)?[3,1,3]:5!==r.length&&ct(r)&&st(t)?[1,2,1]:lt(r)&&ut(t)?[1,3]:pt(r)&&dt(t)?[3,1]:ht(r)&&mt(t)?[1,2]:n&&(5===r.length||10!==r.length&&r.length>6)&&ft(t)&&Object(d.sum)(Object(d.take)(r,5))<5?[1,1,1,1,1]:kt(t,r)?[1,1,1,1]:_t(t,r,n)?[1,1,1]:vt(r)&&jt(t)?[2,1]:yt(r)?[1]:r.length>3?[1,1]:Array(r.length).fill(1);var i=t.concat([a]),o=Object(d.sum)(a);return e(i,r.slice(o))};return r([],e)}(o,{isWide:["full","wide"].includes(t)}),s=0;return Object(l.createElement)(He,{galleryRef:this.gallery},c.map((function(e,t){return Object(l.createElement)(Ge,{key:t},e.map((function(e,t){var n=i.slice(s,s+e);return s+=e,Object(l.createElement)(Ve,{key:t},n)})))})))}}]),t}(l.Component);function Ft(e){var t=e.columns,n=e.renderedImages,r=Math.min(20,t),a=n.length%r;return Object(l.createElement)(He,null,[].concat(f()(a?[Object(d.take)(n,a)]:[]),f()(Object(d.chunk)(Object(d.drop)(n,a),r))).map((function(e,t){return Object(l.createElement)(Ge,{key:t,className:"columns-".concat(e.length)},e.map((function(e,t){return Object(l.createElement)(Ve,{key:t},e)})))})))}var Pt=function(e){function t(){return g()(this,t),_()(this,O()(t).apply(this,arguments))}return x()(t,e),j()(t,[{key:"photonize",value:function(e){var t=e.height,n=e.width,r=e.url;if(r){if(Object(D.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;var a=r.split("?",1)[0],i=function(e){var t=Object(Ce.parse)(e).host;return/\.files\.wordpress\.com$/.test(t)}(r)?Mt:Ee.a;if(Tt(this.props.layoutStyle)&&n&&t){var o=Math.min(2e3,n,t);return i(a,{resize:"".concat(o,",").concat(o)})}return i(a)}}},{key:"renderImage",value:function(e,t){var n=this.props,r=n.images,a=n.linkTo,i=n.selectedImage,o=Object(u.sprintf)(Object(u.__)("image %1$d of %2$d in gallery","jetpack"),t+1,r.length);return Object(l.createElement)(Ue,{alt:e.alt,"aria-label":o,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}},{key:"render",value:function(){var e=this.props,t=e.align,n=e.children,r=e.className,a=e.columns,i=e.images,o=e.layoutStyle,c=Tt(o)?Ft:At,s=this.props.images.map(this.renderImage,this);return Object(l.createElement)("div",{className:r},Object(l.createElement)(c,{align:t,columns:a,images:i,layoutStyle:o,renderedImages:s}),n)}}]),t}(l.Component);function Tt(e){return["circle","square"].includes(e)}function Mt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},r=Object(Ce.parse)(e),a=(r.auth,r.hash,r.port,r.query,r.search,Oe()(r,["auth","hash","port","query","search"]));return a.query=Object.keys(t).reduce((function(e,r){return Object.assign(e,s()({},n.hasOwnProperty(r)?n[r]:r,t[r]))}),{}),Object(Ce.format)(a)}function Nt(e){var t=e.attributes,n=t.images;if(!n.length)return null;var r=t.align,a=t.className,i=t.columns,o=void 0===i?function(e){return Math.min(3,e.images.length)}(t):i,c=t.linkTo;return Object(l.createElement)(Pt,{align:r,className:a,columns:o,images:n,layoutStyle:Ne(Ke,a),linkTo:c})}var Rt,Dt={align:{default:"center",type:"string"},className:{default:"is-style-".concat("rectangular"),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},zt={align:["center","wide","full"],customClassName:!1,html:!1},It=n(113),Lt=n.n(It),Bt=n(114),qt=n.n(Bt),Ut=n(115),Vt=n.n(Ut),Ht=n(116),Gt=n.n(Ht),$t=n(117),Wt=n.n($t),Kt=n(118),Zt=n.n(Kt),Jt=(Rt={},s()(Rt,ye.e,Object(u._x)("Tiled mosaic","Tiled gallery layout","jetpack")),s()(Rt,ye.c,Object(u._x)("Circles","Tiled gallery layout","jetpack")),s()(Rt,ye.d,Object(u._x)("Tiled columns","Tiled gallery layout","jetpack")),s()(Rt,ye.f,Object(u._x)("Square tiles","Tiled gallery layout","jetpack")),Rt),Yt=ye.g.map((function(e){return o()({},e,{label:Jt[e.name]})}));function Qt(e){return Object(d.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var Xt={align:{default:"center",type:"string"},className:{default:"is-style-".concat(ye.e),type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},en={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:Lt.a,width:160,height:95},{alt:"",link:"",url:qt.a,width:160,height:107},{alt:"",link:"",url:Vt.a,width:304,height:203},{alt:"",link:"",url:Gt.a,width:312,height:207},{alt:"",link:"",url:Wt.a,width:152,height:101},{alt:"",link:"",url:Zt.a,width:152,height:105}],linkTo:"none"},tn=Object(l.createElement)(h.SVG,{viewBox:"0 0 24 24",width:24,height:24},Object(l.createElement)(h.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),nn={attributes:Xt,category:"jetpack",description:Object(u.__)("Display multiple images in an elegantly organized tiled layout.","jetpack")+(Object(qe.b)()?"":" "+Object(u.__)("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:tn,keywords:[Object(u._x)("images","block search term","jetpack"),Object(u._x)("photos","block search term","jetpack"),Object(u._x)("pictures","block search term","jetpack")],styles:Yt,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:Object(u.__)("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return Qt(e).length>0},transform:function(e){var t=Qt(e);return Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:function(e){var t=Qt(e.images);return t.length>0?Object(p.createBlock)("jetpack/".concat("tiled-gallery"),{images:t.map((function(e){return{id:e.id,url:e.url,alt:e.alt}})),ids:t.map((function(e){return e.id}))}):Object(p.createBlock)("jetpack/".concat("tiled-gallery"))}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids,r=e.columns,a=e.linkTo;return Object(p.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.align,n=e.images;return n.length>0?n.map((function(e){var n=e.id,r=e.url,a=e.alt;return Object(p.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):Object(p.createBlock)("core/image")}}]},edit:Be,save:function(e){var t=e.attributes,n=t.imageFilter,r=t.images;if(!r.length)return null;var a=t.align,i=t.className,o=t.columns,c=void 0===o?ze(t):o,s=t.linkTo;return Object(l.createElement)(Pe,{align:a,className:i,columns:c,imageFilter:n,images:r,isSave:!0,layoutStyle:Ne(ye.g,i),linkTo:s})},deprecated:[r],example:{attributes:en}};Object(a.a)("tiled-gallery",nn)},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"setConnectionTestResults",(function(){return p})),n.d(r,"refreshConnectionTestResults",(function(){return d})),n.d(r,"fetchFromAPI",(function(){return h}));var a={};n.r(a),n.d(a,"getFailedConnections",(function(){return m})),n.d(a,"getMustReauthConnections",(function(){return f}));var i=n(0),o=n(1),c=n(2),s=n(52),l=n(28),u=(n(216),n(13));function p(e){return{type:"SET_CONNECTION_TEST_RESULTS",results:e}}function d(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function h(e){return{type:"FETCH_FROM_API",path:e}}function m(e){return e.filter((function(e){return!1===e.test_success}))}function f(e){return e.filter((function(e){return"must_reauth"===e.test_success})).map((function(e){return e.service_name}))}var b=n(21),g=n.n(b),v=n(101),j=n.n(v),y=n(5),_=n(23),k=n.n(_);var O={REFRESH_CONNECTION_TEST_RESULTS:function(e,t){var n,r;return regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.dispatch,e.prev=1,e.next=4,regeneratorRuntime.awrap(k()({path:"/wpcom/v2/publicize/connection-test-results"}));case 4:return r=e.sent,e.abrupt("return",n(p(r)));case 8:e.prev=8,e.t0=e.catch(1);case 10:case"end":return e.stop()}}),null,null,[[1,8]])}};var w,E,C,x,S,A={FETCH_FROM_API:function(e){var t=e.path;return k()({path:t})}},F=Object(u.registerStore)("jetpack/publicize",{actions:r,controls:A,reducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_CONNECTION_TEST_RESULTS":return t.results;case"REFRESH_CONNECTION_TEST_RESULTS":return[]}return e},selectors:a});w=F,C=[j()(O)],x=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},S={getState:w.getState,dispatch:function(){return x.apply(void 0,arguments)}},E=C.map((function(e){return e(S)})),x=y.flowRight.apply(void 0,g()(E))(w.dispatch),w.dispatch=x;var P=n(44),T=n(14),M=n(7),N=n.n(M),R=n(11),D=n.n(R),z=n(8),I=n.n(z),L=n(9),B=n.n(L),q=n(4),U=n.n(q),V=n(10),H=n.n(V),G=n(3),$=n.n(G),W=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"refreshConnectionClick",(function(e){var t=e.target,r=t.href,a=t.title;e.preventDefault();var i=window.open(r,a,""),o=window.setInterval((function(){!1!==i.closed&&(window.clearInterval(o),n.props.refreshConnections())}),500)})),n}return H()(t,e),D()(t,[{key:"componentDidMount",value:function(){this.props.refreshConnections()}},{key:"renderRefreshableConnections",value:function(){var e=this,t=this.props.failedConnections.filter((function(e){return e.can_refresh}));return t.length?Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((function(t){return Object(i.createElement)(c.Button,{href:t.refresh_url,isSmall:!0,key:t.id,onClick:e.refreshConnectionClick,title:t.refresh_text},t.refresh_text)}))):null}},{key:"renderNonRefreshableConnections",value:function(){var e=this.props.failedConnections.filter((function(e){return!e.can_refresh}));return e.length?e.map((function(e){return Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,e.test_message))})):null}},{key:"render",value:function(){return Object(i.createElement)(i.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}]),t}(i.Component),K=Object(T.compose)([Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections()}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("jetpack/publicize").refreshConnectionTestResults}}))])(W),Z=n(15),J=n.n(Z),Y=n(12),Q=n.n(Y),X=n(30),ee=n.n(X),te=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M20.007 3H3.993C3.445 3 3 3.445 3 3.993v16.013c0 .55.445.994.993.994h8.62v-6.97H10.27V11.31h2.346V9.31c0-2.325 1.42-3.59 3.494-3.59.993 0 1.847.073 2.096.106v2.43h-1.438c-1.128 0-1.346.537-1.346 1.324v1.734h2.69l-.35 2.717h-2.34V21h4.587c.548 0 .993-.445.993-.993V3.993c0-.548-.445-.993-.993-.993z"}))),ne=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z"}))),re=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),ae=Object(i.createElement)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(i.createElement)(c.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(i.createElement)(c.G,null,Object(i.createElement)(c.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),ie=function(e){var t=e.serviceName,n={className:"jetpack-publicize-gutenberg-social-icon is-".concat(t),size:24};switch(t){case"facebook":return Object(i.createElement)(c.Icon,ee()({icon:te},n));case"twitter":return Object(i.createElement)(c.Icon,ee()({icon:ne},n));case"linkedin":return Object(i.createElement)(c.Icon,ee()({icon:re},n));case"tumblr":return Object(i.createElement)(c.Icon,ee()({icon:ae},n))}return null},oe=n(35),ce=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),s=0;s<r;s++)a[s]=arguments[s];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"maybeDisplayLinkedInNotice",(function(){return n.connectionNeedsReauth()&&Object(i.createElement)(c.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},Object(i.createElement)("p",null,Object(o.__)("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),Object(i.createElement)(c.ExternalLink,{href:"https://wordpress.com/marketing/connections/".concat(Object(oe.a)())},Object(o.__)("Go to Sharing settings","jetpack")))})),$()(U()(n),"connectionNeedsReauth",(function(){return Object(y.includes)(n.props.mustReauthConnections,n.props.name)})),$()(U()(n),"onConnectionChange",(function(){var e=n.props.id;n.props.toggleConnection(e)})),n}return H()(t,e),D()(t,[{key:"connectionIsFailing",value:function(){var e=this.props,t=e.failedConnections,n=e.name;return t.some((function(e){return e.service_name===n}))}},{key:"render",value:function(){var e=this.props,t=e.disabled,n=e.enabled,r=e.id,a=e.label,o=e.name,s="connection-"+o+"-"+r,l=o.replace("_","-"),u=Object(i.createElement)(c.FormToggle,{id:s,className:"jetpack-publicize-connection-toggle",checked:n,onChange:this.onConnectionChange});return(t||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=Object(i.createElement)(c.Disabled,null,u)),Object(i.createElement)("li",null,this.maybeDisplayLinkedInNotice(),Object(i.createElement)("div",{className:"publicize-jetpack-connection-container"},Object(i.createElement)("label",{htmlFor:s,className:"jetpack-publicize-connection-label"},Object(i.createElement)(ie,{serviceName:l}),Object(i.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a)),u))}}]),t}(i.Component),se=Object(u.withSelect)((function(e){return{failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()}}))(ce),le=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"settingsClick",(function(e){var t=n.getButtonLink(),r=n.props.refreshCallback;e.preventDefault();var a=window.open(t,"",""),i=window.setInterval((function(){!1!==a.closed&&(window.clearInterval(i),r())}),500)})),n}return H()(t,e),D()(t,[{key:"getButtonLink",value:function(){var e=Object(oe.a)();return e?"https://wordpress.com/marketing/connections/".concat(e):"options-general.php?page=sharing&publicize_popup=true"}},{key:"render",value:function(){var e=Q()("jetpack-publicize-add-connection-container",this.props.className);return Object(i.createElement)("div",{className:e},Object(i.createElement)(c.ExternalLink,{onClick:this.settingsClick},Object(o.__)("Connect an account","jetpack")))}}]),t}(i.Component),ue=function(e){function t(){var e,n;N()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=I()(this,(e=B()(t)).call.apply(e,[this].concat(a))),$()(U()(n),"state",{hasEditedShareMessage:!1}),$()(U()(n),"fieldId",Object(y.uniqueId)("jetpack-publicize-message-field-")),$()(U()(n),"onMessageChange",(function(e){var t=n.props.messageChange;n.setState({hasEditedShareMessage:!0}),t(e)})),n}return H()(t,e),D()(t,[{key:"isDisabled",value:function(){return this.props.connections.every((function(e){return!e.toggleable}))}},{key:"getShareMessage",value:function(){var e=this.props,t=e.shareMessage,n=e.defaultShareMessage;return this.state.hasEditedShareMessage||""!==t?t:n}},{key:"render",value:function(){var e=this.props,t=e.connections,n=e.toggleConnection,r=e.refreshCallback,a=this.getShareMessage(),c=256-a.length,s=Q()("jetpack-publicize-character-count",{"wpas-twitter-length-limit":c<=0});return Object(i.createElement)("div",{id:"publicize-form"},Object(i.createElement)("ul",{className:"jetpack-publicize__connections-list"},t.map((function(e){var t=e.display_name,r=e.enabled,a=e.id,o=e.service_name,c=e.toggleable;return Object(i.createElement)(se,{disabled:!c,enabled:r,key:a,id:a,label:t,name:o,toggleConnection:n})}))),Object(i.createElement)(le,{refreshCallback:r}),t.some((function(e){return e.enabled}))&&Object(i.createElement)(i.Fragment,null,Object(i.createElement)("label",{className:"jetpack-publicize-message-note",htmlFor:this.fieldId},Object(o.__)("Customize your message","jetpack")),Object(i.createElement)("div",{className:"jetpack-publicize-message-box"},Object(i.createElement)("textarea",{id:this.fieldId,value:a,onChange:this.onMessageChange,disabled:this.isDisabled(),maxLength:256,placeholder:Object(o.__)("Write a message for your audience here. If you leave this blank, we'll use the post title as the message.","jetpack"),rows:4}),Object(i.createElement)("div",{className:s},Object(o.sprintf)(Object(o._n)("%d character remaining","%d characters remaining",c,"jetpack"),c)))))}}]),t}(i.Component),pe=Object(T.compose)([Object(u.withSelect)((function(e){var t=e("core/editor").getEditedPostAttribute("meta"),n=e("core/editor").getEditedPostAttribute("title"),r=Object(y.get)(t,["jetpack_publicize_message"],"");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),defaultShareMessage:n.substr(0,256),shareMessage:r.substr(0,256)}})),Object(u.withDispatch)((function(e,t){var n=t.connections;return{toggleConnection:function(t){var r=n.map((function(e){return J()({},e,{enabled:e.id===t?!e.enabled:e.enabled})}));e("core/editor").editPost({jetpack_publicize_connections:r})},messageChange:function(t){e("core/editor").editPost({meta:{jetpack_publicize_message:t.target.value}})}}}))])(ue),de=Object(T.compose)([Object(u.withSelect)((function(e){return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")}})),Object(u.withDispatch)((function(e){return{refreshConnections:e("core/editor").refreshPost}}))])((function(e){var t=e.connections,n=e.refreshConnections;return Object(i.createElement)(i.Fragment,null,t&&t.some((function(e){return e.enabled}))&&Object(i.createElement)(K,null),Object(i.createElement)("div",null,Object(o.__)("Connect and select the accounts where you'd like to share your post.","jetpack")),t&&t.length>0&&Object(i.createElement)(pe,{refreshCallback:n}),t&&0===t.length&&Object(i.createElement)(le,{className:"jetpack-publicize-add-connection-wrapper",refreshCallback:n}))})),he={render:function(){return Object(i.createElement)(l.PostTypeSupportCheck,{supportKeys:"publicize"},Object(i.createElement)(P.a,null,Object(i.createElement)(c.PanelBody,{title:Object(o.__)("Share this post","jetpack")},Object(i.createElement)(de,null))),Object(i.createElement)(s.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:Object(i.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},Object(o.__)("Share this post","jetpack"))},Object(i.createElement)(de,null)))}},me=n(37);Object(me.a)("publicize",he)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(6),c=n(2),s=n(12),l=n.n(s),u=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],p=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]],d=function(e){var t=e.isSelected;return Object(a.createElement)("div",{className:l()({"jetpack-contact-info-block":!0,"is-selected":t})},Object(a.createElement)(o.InnerBlocks,{allowedBlocks:u,templateLock:!1,template:p}))},h=n(20),m=(n(152),n(129),n(7)),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,i=t.addressLine3,o=t.city,c=t.region,s=t.postal,l=t.country;return Object(a.createElement)(a.Fragment,null,n&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},n),r&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},r),i&&Object(a.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},i),o&&!(c||s)&&Object(a.createElement)("div",{className:"jetpack-address__city"},o),o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__city"},o),", ",Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(c||s)&&Object(a.createElement)("div",null,[Object(a.createElement)("span",{className:"jetpack-address__region"},c)," ",Object(a.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&Object(a.createElement)("div",{className:"jetpack-address__country"},l))},x=function(e){var t=e.attributes,n=t.address,r=t.addressLine2,a=t.addressLine3,i=t.city,o=t.region,c=t.postal,s=t.country,l=n?"".concat(n,","):"",u=r?"".concat(r,","):"",p=a?"".concat(a,","):"",d=i?"+".concat(i,","):"",h=o?"+".concat(o,","):"";h=c?"".concat(h,"+").concat(c):h;var m=s?"+".concat(s):"";return"https://www.google.com/maps/search/".concat(l).concat(u).concat(p).concat(d).concat(h).concat(m).replace(" ","+")},S=function(e){return[(t=e.attributes).address,t.addressLine2,t.addressLine3,t.city,t.region,t.postal,t.country].some((function(e){return""!==e}))&&Object(a.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&Object(a.createElement)("a",{href:x(e),target:"_blank",rel:"noopener noreferrer",title:Object(i.__)("Open address in Google Maps","jetpack")},Object(a.createElement)(C,e)),!e.attributes.linkToGoogleMaps&&Object(a.createElement)(C,e));var t},A=function(e){function t(){var e,n;f()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=j()(this,(e=_()(t)).call.apply(e,[this].concat(a)))).preventEnterKey=n.preventEnterKey.bind(O()(n)),n}return E()(t,e),g()(t,[{key:"preventEnterKey",value:function(e){"Enter"!==e.key||e.preventDefault()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=t.address,r=t.addressLine2,s=t.addressLine3,u=t.city,p=t.region,d=t.postal,h=t.country,m=t.linkToGoogleMaps,f=e.isSelected,b=e.setAttributes,g=[n,r,s,u,p,d,h].some((function(e){return""!==e})),v=l()({"jetpack-address-block":!0,"is-selected":f}),j=Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Link address to Google Maps","jetpack"),checked:m,onChange:function(e){return b({linkToGoogleMaps:e})}});return Object(a.createElement)("div",{className:v},!f&&g&&S(this.props),(f||!g)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(o.PlainText,{value:n,placeholder:Object(i.__)("Street Address","jetpack"),"aria-label":Object(i.__)("Street Address","jetpack"),onChange:function(e){return b({address:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:r,placeholder:Object(i.__)("Address Line 2","jetpack"),"aria-label":Object(i.__)("Address Line 2","jetpack"),onChange:function(e){return b({addressLine2:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:s,placeholder:Object(i.__)("Address Line 3","jetpack"),"aria-label":Object(i.__)("Address Line 3","jetpack"),onChange:function(e){return b({addressLine3:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:u,placeholder:Object(i.__)("City","jetpack"),"aria-label":Object(i.__)("City","jetpack"),onChange:function(e){return b({city:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:p,placeholder:Object(i.__)("State/Province/Region","jetpack"),"aria-label":Object(i.__)("State/Province/Region","jetpack"),onChange:function(e){return b({region:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:d,placeholder:Object(i.__)("Postal/Zip Code","jetpack"),"aria-label":Object(i.__)("Postal/Zip Code","jetpack"),onChange:function(e){return b({postal:e})},onKeyDown:this.preventEnterKey}),Object(a.createElement)(o.PlainText,{value:h,placeholder:Object(i.__)("Country","jetpack"),"aria-label":Object(i.__)("Country","jetpack"),onChange:function(e){return b({country:e})},onKeyDown:this.preventEnterKey}),j))}}]),t}(a.Component),F={title:Object(i.__)("Address","jetpack"),description:Object(i.__)("Lets you add a physical address with Schema markup.","jetpack"),keywords:[Object(i._x)("location","block search term","jetpack"),Object(i._x)("direction","block search term","jetpack"),Object(i._x)("place","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(a.Fragment,null,Object(a.createElement)(c.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),Object(a.createElement)(c.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"jetpack",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:A,save:S},P=n(43),T=n.n(P),M=function(e){var t=e.attributes.email,n=e.className;return t&&Object(a.createElement)("div",{className:n},t.split(/(\s+)/).map((function(e,t){var n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&T.a.validate(n)?e===n?Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},e):Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("a",{href:"mailto:".concat(e),key:t},n),Object(a.createElement)(a.Fragment,null,e.slice(-(e.length-n.length)))):Object(a.createElement)(a.Fragment,{key:t},e)})))},N=function(e,t,n,r,i){var c=t.isSelected,s=t.attributes[e];return Object(a.createElement)("div",{className:"jetpack-".concat(e,c?"-block is-selected":"-block")},!c&&""!==s&&r(t),(c||""===s)&&Object(a.createElement)(o.PlainText,{value:s,placeholder:n,"aria-label":n,onChange:i}))},R=function(e){var t=e.setAttributes;return N("email",e,Object(i.__)("Email","jetpack"),M,(function(e){return t({email:e})}))},D={title:Object(i.__)("Email Address","jetpack"),description:Object(i.__)("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",Object(i._x)("message","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"jetpack",attributes:{email:{type:"string",default:""}},edit:R,save:M,parent:["jetpack/contact-info"]};var z=function(e){var t=e.attributes.phone,n=e.className;return t&&Object(a.createElement)("div",{className:n},function(e){var t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;var n=e.indexOf(t[0]),r=n?e.substring(n-1):e,i=n?e.substring(0,n):"",o=r.replace(/\D/g,"");return/[0-9/+/(]/.test(r[0])?(i=i.slice(0,-1),"+"===r[0]&&(o="+"+o)):r=r.substring(1),[i.trim()?Object(a.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},i):null,Object(a.createElement)("a",{key:"phoneNumber",href:"tel:".concat(o)},r)]}(t))},I=function(e){var t=e.setAttributes;return N("phone",e,Object(i.__)("Phone number","jetpack"),z,(function(e){return t({phone:e})}))},L={title:Object(i.__)("Phone Number","jetpack"),description:Object(i.__)("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[Object(i._x)("mobile","block search term","jetpack"),Object(i._x)("telephone","block search term","jetpack"),Object(i._x)("cell","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"jetpack",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:I,save:z},B={title:Object(i.__)("Contact Info","jetpack"),description:Object(i.__)("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("phone","block search term","jetpack"),Object(i._x)("address","block search term","jetpack")],icon:Object(h.a)(Object(a.createElement)(c.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),category:"jetpack",supports:{align:["wide","full"],html:!1},attributes:{},edit:d,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},q=[{name:"address",settings:F},{name:"email",settings:D},{name:"phone",settings:L}];Object(r.a)("contact-info",B,q)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(27),i=n(7),o=n.n(i),c=n(11),s=n.n(c),l=n(8),u=n.n(l),p=n(9),d=n.n(p),h=n(4),m=n.n(h),f=n(10),b=n.n(f),g=n(3),v=n.n(g),j=n(0),y=n(23),_=n.n(y),k=n(1),O=n(2),w=n(6),E=(n(157),n(21)),C=n.n(E),x=n(12),S=n.n(x),A=n(5),F=n(26),P=n(14);function T(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10,n=[],r=0;r<e.length;r++){var a=e[r],i=a.keywords,o=void 0===i?[]:i;if("string"==typeof a.label&&(o=[].concat(C()(o),[a.label])),n.push(a),n.length===t)break}return n}var M=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"select",(function(t){(e.props.completer.getOptionCompletion||{})(t),e.reset()})),v()(m()(e),"reset",(function(){e.setState(e.constructor.getInitialState())})),v()(m()(e),"onChange",(function(t){var n=e.props.completer,r=e.state.options;if(t){n&&(n.isDebounced?e.debouncedLoadOptions(n,t):e.loadOptions(n,t));var a=n?T(r):[];n&&e.setState({selectedIndex:0,filteredOptions:a,query:t})}else e.reset()})),v()(m()(e),"onKeyDown",(function(t){var n=e.state,r=n.isOpen,a=n.selectedIndex,i=n.filteredOptions;if(r){var o;switch(t.keyCode){case F.UP:o=(0===a?i.length:a)-1,e.setState({selectedIndex:o});break;case F.DOWN:o=(a+1)%i.length,e.setState({selectedIndex:o});break;case F.ENTER:e.select(i[a]);break;case F.LEFT:case F.RIGHT:case F.ESCAPE:return void e.reset();default:return}t.preventDefault(),t.stopPropagation()}})),e.debouncedLoadOptions=Object(A.debounce)(e.loadOptions,250),e.state=e.constructor.getInitialState(),e}return b()(t,e),s()(t,null,[{key:"getInitialState",value:function(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}}]),s()(t,[{key:"componentWillUnmount",value:function(){this.debouncedLoadOptions.cancel()}},{key:"handleFocusOutside",value:function(){this.reset()}},{key:"loadOptions",value:function(e,t){var n=this,r=e.options,a=this.activePromise=Promise.resolve("function"==typeof r?r(t):r).then((function(t){var r;if(a===n.activePromise){var i=t.map((function(t,n){return{key:"".concat(n),value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}})),o=T(i),c=o.length===n.state.filteredOptions.length?n.state.selectedIndex:0;n.setState((r={},v()(r,"options",i),v()(r,"filteredOptions",o),v()(r,"selectedIndex",c),v()(r,"isOpen",o.length>0),r)),n.announce(o)}}))}},{key:"announce",value:function(e){var t=this.props.debouncedSpeak;t&&(e.length?t(Object(k.sprintf)(Object(k._n)("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(Object(k.__)("No results.","jetpack"),"assertive"))}},{key:"render",value:function(){var e=this,t=this.onChange,n=this.onKeyDown,r=this.props,a=r.children,i=r.instanceId,o=r.completer,c=this.state,s=c.selectedIndex,l=c.filteredOptions,u=(l[s]||{}).key,p=void 0===u?"":u,d=o.className,h=l.length>0,m=h?"components-autocomplete-listbox-".concat(i):null,f=h?"components-autocomplete-item-".concat(i,"-").concat(p):null;return Object(j.createElement)("div",{className:"components-autocomplete"},a({isExpanded:h,listBoxId:m,activeId:f,onChange:t,onKeyDown:n}),h&&Object(j.createElement)(O.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},Object(j.createElement)("div",{id:m,role:"listbox",className:"components-autocomplete__results"},Object(A.map)(l,(function(t,n){return Object(j.createElement)(O.Button,{key:t.key,id:"components-autocomplete-item-".concat(i,"-").concat(t.key),role:"option","aria-selected":n===s,disabled:t.isDisabled,className:S()("components-autocomplete__result",d,{"is-selected":n===s}),onClick:function(){return e.select(t)}},t.label)})))))}}]),t}(j.Component),N=Object(P.compose)([O.withSpokenMessages,P.withInstanceId,O.withFocusOutside])(M),R=Object(k.__)("Add a marker…","jetpack"),D=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"getOptionCompletion",(function(t){var n=t.value,r={placeTitle:n.text,title:n.text,caption:n.place_name,id:n.id,coordinates:{longitude:n.geometry.coordinates[0],latitude:n.geometry.coordinates[1]}};return e.props.onAddPoint(r),n.text})),v()(m()(e),"search",(function(t){var n=e.props,r=n.apiKey,a=n.onError,i="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(t)+".json?access_token="+r;return new Promise((function(e,t){var n=new XMLHttpRequest;n.open("GET",i),n.onload=function(){if(200===n.status){var r=JSON.parse(n.responseText);e(r.features)}else{var i=JSON.parse(n.responseText);a(i.statusText,i.responseJSON.message),t(new Error("Mapbox Places Error"))}},n.send()}))})),v()(m()(e),"onReset",(function(){e.textRef.current.value=null})),e.textRef=Object(j.createRef)(),e.containerRef=Object(j.createRef)(),e.state={isEmpty:!0},e.autocompleter={name:"placeSearch",options:e.search,isDebounced:!0,getOptionLabel:function(e){return Object(j.createElement)("span",null,e.place_name)},getOptionKeywords:function(e){return[e.place_name]},getOptionCompletion:e.getOptionCompletion},e}return b()(t,e),s()(t,[{key:"componentDidMount",value:function(){var e=this;setTimeout((function(){e.containerRef.current.querySelector("input").focus()}),50)}},{key:"render",value:function(){var e=this,t=this.props.label;return Object(j.createElement)("div",{ref:this.containerRef},Object(j.createElement)(O.BaseControl,{label:t,className:"components-location-search"},Object(j.createElement)(N,{completer:this.autocompleter,onReset:this.onReset},(function(t){var n=t.isExpanded,r=t.listBoxId,a=t.activeId,i=t.onChange,o=t.onKeyDown;return Object(j.createElement)(O.TextControl,{placeholder:R,ref:e.textRef,onChange:i,"aria-expanded":n,"aria-owns":r,"aria-activedescendant":a,onKeyDown:o})}))))}}]),t}(j.Component);D.defaultProps={onError:function(){}};var z=D,I=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.onClose,n=e.onAddPoint,r=e.onError,a=e.apiKey;return Object(j.createElement)(O.Button,{className:"component__add-point"},Object(k.__)("Add marker","jetpack"),Object(j.createElement)(O.Popover,{className:"component__add-point__popover"},Object(j.createElement)(O.Button,{className:"component__add-point__close",onClick:t},Object(j.createElement)(O.Dashicon,{icon:"no"})),Object(j.createElement)(z,{onAddPoint:n,label:Object(k.__)("Add a location","jetpack"),apiKey:a,onError:r})))}}]),t}(j.Component);I.defaultProps={onAddPoint:function(){},onClose:function(){},onError:function(){}};var L=I,B=(n(158),function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"onDeletePoint",(function(t){var n=parseInt(t.target.getAttribute("data-id")),r=e.props,a=r.points,i=r.onChange,o=a.slice(0);o.splice(n,1),i(o)})),e.state={selectedCell:null},e}return b()(t,e),s()(t,[{key:"setMarkerField",value:function(e,t,n){var r=this.props,a=r.points,i=r.onChange,o=a.slice(0);o[n][e]=t,i(o)}},{key:"render",value:function(){var e=this,t=this.props.points.map((function(t,n){return Object(j.createElement)(O.PanelBody,{title:t.placeTitle,key:t.id,initialOpen:!1},Object(j.createElement)(O.TextControl,{label:"Marker Title",value:t.title,onChange:function(t){return e.setMarkerField("title",t,n)}}),Object(j.createElement)(O.TextareaControl,{label:"Marker Caption",value:t.caption,rows:"3",onChange:function(t){return e.setMarkerField("caption",t,n)}}),Object(j.createElement)(O.Button,{"data-id":n,onClick:e.onDeletePoint,className:"component__locations__delete-btn"},Object(j.createElement)(O.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))}));return Object(j.createElement)("div",{className:"component__locations"},Object(j.createElement)(O.Panel,{className:"component__locations__panel"},t))}}]),t}(j.Component));B.defaultProps={points:Object.freeze([]),onChange:function(){}};var q=B,U=n(76),V=(n(159),function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props,t=e.options,n=e.value,r=e.onChange,a=e.label,i=t.map((function(e,t){var a=S()("component__map-theme-picker__button","is-theme-"+e.value,e.value===n?"is-selected":"");return Object(j.createElement)(O.Button,{className:a,title:e.label,key:t,onClick:function(){return r(e.value)}},e.label)}));return Object(j.createElement)("div",{className:"component__map-theme-picker components-base-control"},Object(j.createElement)("label",{className:"components-base-control__label"},a),Object(j.createElement)(O.ButtonGroup,null,i))}}]),t}(j.Component));V.defaultProps={label:"",options:[],value:null,onChange:function(){}};var H=V,G=n(99),$=n.n(G),W=function(e){function t(){var e;return o()(this,t),e=u()(this,d()(t).apply(this,arguments)),v()(m()(e),"addPoint",(function(t){var n=e.props,r=n.attributes,a=n.setAttributes,i=r.points,o=i.slice(0),c=!1;i.map((function(e){e.id===t.id&&(c=!0)})),c||(o.push(t),a({points:o}),e.setState({addPointVisibility:!1}))})),v()(m()(e),"updateAlignment",(function(t){e.props.setAttributes({align:t}),setTimeout(e.mapRef.current.sizeMap,0)})),v()(m()(e),"updateAPIKeyControl",(function(t){e.setState({apiKeyControl:t.target.value})})),v()(m()(e),"updateAPIKey",(function(){var t=e.props.noticeOperations,n=e.state.apiKeyControl;t.removeAllNotices(),n&&e.apiCall(n,"POST")})),v()(m()(e),"removeAPIKey",(function(){e.apiCall(null,"DELETE")})),v()(m()(e),"onError",(function(t,n){var r=e.props.noticeOperations;r.removeAllNotices(),r.createErrorNotice(n)})),e.state={addPointVisibility:!1,apiState:0},e.mapRef=Object(j.createRef)(),e}return b()(t,e),s()(t,[{key:"apiCall",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET",r=this.props.noticeOperations,a="/wpcom/v2/service-api-keys/mapbox",i=t?{path:a,method:n,data:{service_api_key:t}}:{path:a,method:n};this.setState({apiRequestOutstanding:!0},(function(){_()(i).then((function(t){var n=t.service_api_key,a=t.service_api_key_source;r.removeAllNotices();var i=n?2:1,o="wpcom"===a?"":n;e.setState({apiState:i,apiKey:n,apiKeyControl:o,apiKeySource:a,apiRequestOutstanding:!1})}),(function(t){var n=t.message;e.onError(null,n),e.setState({apiState:1,apiRequestOutstanding:!1})}))}))}},{key:"componentDidMount",value:function(){this.apiCall()}},{key:"render",value:function(){var e=this,t=this.props,n=t.className,r=t.setAttributes,i=t.attributes,o=t.noticeUI,c=t.notices,s=t.isSelected,l=i.mapStyle,u=i.mapDetails,p=i.points,d=i.zoom,h=i.mapCenter,m=i.markerColor,f=i.align,b=i.preview,g=this.state,v=g.addPointVisibility,y=g.apiKey,_=g.apiKeyControl,E=g.apiKeySource,C=g.apiState,x=g.apiRequestOutstanding,S=Object(j.createElement)(j.Fragment,null,Object(j.createElement)(w.BlockControls,null,Object(j.createElement)(w.BlockAlignmentToolbar,{value:f,onChange:this.updateAlignment,controls:["center","wide","full"]}),Object(j.createElement)(O.Toolbar,null,Object(j.createElement)(O.IconButton,{icon:a.a.markerIcon,label:"Add a marker",onClick:function(){return e.setState({addPointVisibility:!0})}}))),Object(j.createElement)(w.InspectorControls,null,Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Map Theme","jetpack")},Object(j.createElement)(H,{value:l,onChange:function(e){return r({mapStyle:e})},options:a.a.mapStyleOptions}),Object(j.createElement)(O.ToggleControl,{label:Object(k.__)("Show street names","jetpack"),checked:u,onChange:function(e){return r({mapDetails:e})}})),Object(j.createElement)(w.PanelColorSettings,{title:Object(k.__)("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:m,onChange:function(e){return r({markerColor:e})},label:"Marker Color"}]}),p.length?Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Markers","jetpack"),initialOpen:!1},Object(j.createElement)(q,{points:p,onChange:function(e){r({points:e})}})):null,"wpcom"!==E&&Object(j.createElement)(O.PanelBody,{title:Object(k.__)("Mapbox Access Token","jetpack"),initialOpen:!1},Object(j.createElement)(O.TextControl,{label:Object(k.__)("Mapbox Access Token","jetpack"),value:_,onChange:function(t){return e.setState({apiKeyControl:t})}}),Object(j.createElement)(O.ButtonGroup,null,Object(j.createElement)(O.Button,{type:"button",onClick:this.updateAPIKey,isDefault:!0},Object(k.__)("Update Token","jetpack")),Object(j.createElement)(O.Button,{type:"button",onClick:this.removeAPIKey,isDefault:!0},Object(k.__)("Remove Token","jetpack")))))),A=Object(j.createElement)(O.Placeholder,{icon:a.a.icon},Object(j.createElement)(O.Spinner,null)),F=Object(j.createElement)(j.Fragment,null,Object(k.__)("To use the map block, you need an Access Token.","jetpack"),Object(j.createElement)("br",null),Object(j.createElement)(O.ExternalLink,{href:"https://www.mapbox.com"},Object(k.__)("Create an account or log in to Mapbox.","jetpack")),Object(j.createElement)("br",null),Object(k.__)("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),P=Object(j.createElement)(O.Placeholder,{icon:a.a.icon,label:Object(k.__)("Map","jetpack"),notices:c,instructions:F},Object(j.createElement)(j.Fragment,null,Object(j.createElement)("form",null,Object(j.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:x,placeholder:Object(k.__)("Paste Token Here","jetpack"),value:_,onChange:this.updateAPIKeyControl}),Object(j.createElement)(O.Button,{isLarge:!0,isSecondary:!0,disabled:x||!_||_.length<1,onClick:this.updateAPIKey},Object(k.__)("Set Token","jetpack"))))),T=Object(j.createElement)(j.Fragment,null,S,Object(j.createElement)("div",{className:n},Object(j.createElement)(U.a,{ref:this.mapRef,mapStyle:l,mapDetails:u,points:p,zoom:d,mapCenter:h,markerColor:m,onSetZoom:function(e){r({zoom:e})},admin:!0,apiKey:y,onSetPoints:function(e){return r({points:e})},onSetMapCenter:function(e){return r({mapCenter:e})},onMapLoaded:function(){return e.setState({addPointVisibility:!0})},onMarkerClick:function(){return e.setState({addPointVisibility:!1})},onError:this.onError},s&&v&&Object(j.createElement)(L,{onAddPoint:this.addPoint,onClose:function(){return e.setState({addPointVisibility:!1})},apiKey:y,onError:this.onError,tagName:"AddPoint"})))),M=Object(j.createElement)("div",null,Object(j.createElement)("img",{alt:Object(k.__)("Map Preview","jetpack"),src:$.a}));return Object(j.createElement)(j.Fragment,null,o,b&&M,!b&&0===C&&A,!b&&1===C&&P,!b&&2===C&&T)}}]),t}(j.Component),K=Object(O.withNotices)(W),Z=function(e){function t(){return o()(this,t),u()(this,d()(t).apply(this,arguments))}return b()(t,e),s()(t,[{key:"render",value:function(){var e=this.props.attributes,t=e.align,n=e.mapStyle,r=e.mapDetails,a=e.points,i=e.zoom,o=e.mapCenter,c=e.markerColor,s=a.map((function(e,t){var n=e.coordinates,r=n.longitude,a="https://www.google.com/maps/search/?api=1&query="+n.latitude+","+r;return Object(j.createElement)("li",{key:t},Object(j.createElement)("a",{href:a},e.title))})),l=t?"align".concat(t):null;return Object(j.createElement)("div",{className:l,"data-map-style":n,"data-map-details":r,"data-points":JSON.stringify(a),"data-zoom":i,"data-map-center":JSON.stringify(o),"data-marker-color":c},a.length>0&&Object(j.createElement)("ul",null,s))}}]),t}(j.Component),J=(n(132),n(160),a.a.name),Y={title:a.a.title,icon:a.a.icon,category:a.a.category,keywords:a.a.keywords,description:a.a.description,attributes:a.a.attributes,supports:a.a.supports,getEditWrapperProps:function(e){var t=e.align;if(-1!==a.a.validAlignments.indexOf(t))return{"data-align":t}},edit:K,save:Z,example:a.a.example};Object(r.a)(J,Y)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(15),i=n.n(a),o=n(0),c=n(1),s=n(16),l=n(2),u=n(6),p=(n(149),n(7)),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(41),A=n(20),F=n(32),P=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"],T=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeSubject=n.onChangeSubject.bind(y()(n)),n.onBlurTo=n.onBlurTo.bind(y()(n)),n.onChangeTo=n.onChangeTo.bind(y()(n)),n.onChangeSubmit=n.onChangeSubmit.bind(y()(n)),n.onFormSettingsSet=n.onFormSettingsSet.bind(y()(n)),n.getToValidationError=n.getToValidationError.bind(y()(n)),n.renderToAndSubjectFields=n.renderToAndSubjectFields.bind(y()(n)),n.preventEnterSubmittion=n.preventEnterSubmittion.bind(y()(n)),n.hasEmailError=n.hasEmailError.bind(y()(n));var o=a[0].attributes.to?a[0].attributes.to:"",c=o.split(",").map(n.getToValidationError).filter(Boolean);return n.state={toError:c&&c.length?c:null},n}return k()(t,e),m()(t,[{key:"getEmailHelpMessage",value:function(){return Object(c.__)("You can enter multiple email addresses separated by commas.","jetpack")}},{key:"onChangeSubject",value:function(e){this.props.setAttributes({subject:e})}},{key:"getToValidationError",value:function(e){return 0!==(e=e.trim()).length&&(!C.a.validate(e)&&{email:e})}},{key:"onBlurTo",value:function(e){var t=e.target.value.split(",").map(this.getToValidationError).filter(Boolean);t&&t.length&&this.setState({toError:t})}},{key:"onChangeTo",value:function(e){if(0===e.trim().length)return this.setState({toError:null}),void this.props.setAttributes({to:e});this.setState({toError:null}),this.props.setAttributes({to:e})}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}},{key:"onFormSettingsSet",value:function(e){e.preventDefault(),this.state.toError||this.props.setAttributes({hasFormSettingsSet:"yes"})}},{key:"getfieldEmailError",value:function(e){if(e){if(1===e.length)return e[0]&&e[0].email?Object(c.sprintf)(Object(c.__)("%s is not a valid email address.","jetpack"),e[0].email):e[0];if(2===e.length)return Object(c.sprintf)(Object(c.__)("%s and %s are not a valid email address.","jetpack"),e[0].email,e[1].email);var t=e.map((function(e){return e.email}));return Object(c.sprintf)(Object(c.__)("%s are not a valid email address.","jetpack"),t.join(", "))}return null}},{key:"preventEnterSubmittion",value:function(e){"Enter"===e.key&&(e.preventDefault(),e.stopPropagation())}},{key:"renderToAndSubjectFields",value:function(){var e=this.state.toError,t=this.props,n=t.instanceId,r=t.attributes,a=r.subject,i=r.to;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.TextControl,{"aria-describedby":"contact-form-".concat(n,"-email-").concat(this.hasEmailError()?"error":"help"),label:Object(c.__)("Email address","jetpack"),placeholder:Object(c.__)("name@example.com","jetpack"),onKeyDown:this.preventEnterSubmittion,value:i,onBlur:this.onBlurTo,onChange:this.onChangeTo}),Object(o.createElement)(S.a,{isError:!0,id:"contact-form-".concat(n,"-email-error")},this.getfieldEmailError(e)),Object(o.createElement)(S.a,{id:"contact-form-".concat(n,"-email-help")},this.getEmailHelpMessage()),Object(o.createElement)(l.TextControl,{label:Object(c.__)("Email subject line","jetpack"),value:a,placeholder:Object(c.__)("Let's work together","jetpack"),onChange:this.onChangeSubject}))}},{key:"renderConfirmationMessageFields",value:function(){var e=this,t=this.props.instanceId,n=this.props.attributes,r=n.customThankyou,a=n.customThankyouMessage,i=n.customThankyouRedirect;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.SelectControl,{label:Object(c.__)("On Submission","jetpack"),value:r,options:[{label:Object(c.__)("Show a summary of submitted fields","jetpack"),value:""},{label:Object(c.__)("Show a custom text message","jetpack"),value:"message"},{label:Object(c.__)("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:function(t){return e.props.setAttributes({customThankyou:t})}}),"message"===r&&Object(o.createElement)(l.TextareaControl,{label:Object(c.__)("Message Text","jetpack"),value:a,placeholder:Object(c.__)("Thank you for your submission!","jetpack"),onChange:function(t){return e.props.setAttributes({customThankyouMessage:t})}}),"redirect"===r&&Object(o.createElement)(l.BaseControl,{label:Object(c.__)("Redirect Address","jetpack"),id:"contact-form-".concat(t,"-thankyou-url")},Object(o.createElement)(u.URLInput,{id:"contact-form-".concat(t,"-thankyou-url"),value:i,className:"jetpack-contact-form__thankyou-redirect-url",onChange:function(t){return e.props.setAttributes({customThankyouRedirect:t})}})))}},{key:"hasEmailError",value:function(){var e=this.state.toError;return e&&e.length>0}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.attributes.hasFormSettingsSet,r=w()(t,"jetpack-contact-form",{"has-intro":!n});return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Email Feedback Settings","jetpack")},this.renderToAndSubjectFields()),Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Confirmation Message","jetpack")},this.renderConfirmationMessageFields())),Object(o.createElement)("div",{className:r},!n&&Object(o.createElement)(l.Placeholder,{label:Object(c.__)("Form","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),instructions:Object(c.__)("You’ll receive an email notification each time someone fills out the form. Where should it go, and what should the subject line be?","jetpack")},Object(o.createElement)("form",{onSubmit:this.onFormSettingsSet},this.renderToAndSubjectFields(),Object(o.createElement)("div",{class:"components-placeholder__instructions"},Object(c.__)("(If you leave these blank, notifications will go to the author with the post or page title as the subject line.)","jetpack")),Object(o.createElement)("div",{className:"jetpack-contact-form__create"},Object(o.createElement)(l.Button,{isDefault:!0,type:"submit",disabled:this.hasEmailError()},Object(c.__)("Add form","jetpack"))))),n&&Object(o.createElement)(u.InnerBlocks,{allowedBlocks:P,templateLock:!1,template:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-url",{}],["jetpack/field-textarea",{}]]}),n&&Object(o.createElement)(F.a,this.props)))}}]),t}(o.Component),M=Object(x.compose)([x.withInstanceId])(T),N=function(e){var t=e.setAttributes,n=e.label,r=e.resetFocus,a=e.isSelected,i=e.required;return Object(o.createElement)("div",{className:"jetpack-field-label"},Object(o.createElement)(u.PlainText,{value:n,className:"jetpack-field-label__input",onChange:function(e){r&&r(),t({label:e})},placeholder:Object(c.__)("Write label…","jetpack")}),a&&Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Required","jetpack"),className:"jetpack-field-label__required",checked:i,onChange:function(e){return t({required:e})}}),!a&&i&&Object(o.createElement)("span",{className:"required"},Object(c.__)("(required)","jetpack")))};var R=function(e){var t=e.isSelected,n=e.type,r=e.required,a=e.label,i=e.setAttributes,s=e.defaultValue,p=e.placeholder,d=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:w()("jetpack-field",{"is-selected":t})},Object(o.createElement)(l.TextControl,{type:n,label:Object(o.createElement)(N,{required:r,label:a,setAttributes:i,isSelected:t}),placeholder:p,value:p,onChange:function(e){return i({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:s,onChange:function(e){return i({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return i({id:e})}}))))};var D=function(e){var t=e.required,n=e.label,r=e.setAttributes,a=e.isSelected,i=e.defaultValue,s=e.placeholder,p=e.id;return Object(o.createElement)(o.Fragment,null,Object(o.createElement)("div",{className:"jetpack-field"},Object(o.createElement)(l.TextareaControl,{label:Object(o.createElement)(N,{required:t,label:n,setAttributes:r,isSelected:a}),placeholder:s,value:s,onChange:function(e){return r({placeholder:e})},title:Object(c.__)("Set the placeholder text","jetpack")})),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("Default Value","jetpack"),value:i,onChange:function(e){return r({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return r({id:e})}}))))},z=Object(x.withInstanceId)((function(e){var t=e.instanceId,n=e.required,r=e.label,a=e.setAttributes,i=e.isSelected,s=e.defaultValue,p=e.id;return Object(o.createElement)(l.BaseControl,{id:"jetpack-field-checkbox-".concat(t),className:"jetpack-field jetpack-field-checkbox",label:Object(o.createElement)(o.Fragment,null,Object(o.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:s}),Object(o.createElement)(N,{required:n,label:r,setAttributes:a,isSelected:i}),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.ToggleControl,{label:Object(c.__)("Default Checked State","jetpack"),checked:s,onChange:function(e){return a({defaultValue:e})}}),Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:p,onChange:function(e){return a({id:e})}}))))})})),I=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.onKeyPress=n.onKeyPress.bind(y()(n)),n.onDeleteOption=n.onDeleteOption.bind(y()(n)),n.textInput=Object(o.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"componentDidUpdate",value:function(){this.props.isInFocus&&this.textInput.current.focus()}},{key:"onChangeOption",value:function(e){this.props.onChangeOption(this.props.index,e.target.value)}},{key:"onKeyPress",value:function(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}},{key:"onDeleteOption",value:function(){this.props.onChangeOption(this.props.index)}},{key:"render",value:function(){var e=this.props,t=e.isSelected,n=e.option,r=e.type;return Object(o.createElement)("li",{className:"jetpack-option"},r&&"select"!==r&&Object(o.createElement)("input",{className:"jetpack-option__type",type:r,disabled:!0}),Object(o.createElement)("input",{type:"text",className:"jetpack-option__input",value:n,placeholder:Object(c.__)("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),t&&Object(o.createElement)(l.IconButton,{className:"jetpack-option__remove",icon:"trash",label:Object(c.__)("Remove option","jetpack"),onClick:this.onDeleteOption}))}}]),t}(o.Component),L=function(e){function t(){var e,n;d()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return(n=b()(this,(e=v()(t)).call.apply(e,[this].concat(a)))).onChangeOption=n.onChangeOption.bind(y()(n)),n.addNewOption=n.addNewOption.bind(y()(n)),n.state={inFocus:null},n}return k()(t,e),m()(t,[{key:"onChangeOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=this.props.options.slice(0);null===t?(n.splice(e,1),e>0&&this.setState({inFocus:e-1})):(n.splice(e,1,t),this.setState({inFocus:e})),this.props.setAttributes({options:n})}},{key:"addNewOption",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=this.props.options.slice(0),n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),this.setState({inFocus:n}),this.props.setAttributes({options:t})}},{key:"render",value:function(){var e=this,t=this.props,n=t.type,r=t.instanceId,a=t.required,i=t.label,s=t.setAttributes,p=t.isSelected,d=t.id,h=this.props.options,m=this.state.inFocus;return h.length||(h=[""],m=0),Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.BaseControl,{id:"jetpack-field-multiple-".concat(r),className:"jetpack-field jetpack-field-multiple",label:Object(o.createElement)(N,{required:a,label:i,setAttributes:s,isSelected:p,resetFocus:function(){return e.setState({inFocus:null})}})},Object(o.createElement)("ol",{className:"jetpack-field-multiple__list",id:"jetpack-field-multiple-".concat(r)},h.map((function(t,r){return Object(o.createElement)(I,{type:n,key:r,option:t,index:r,onChangeOption:e.onChangeOption,onAddOption:e.addNewOption,isInFocus:r===m&&p,isSelected:p})}))),p&&Object(o.createElement)(l.IconButton,{className:"jetpack-field-multiple__add-option",icon:"insert",label:Object(c.__)("Insert option","jetpack"),onClick:this.addNewOption},Object(c.__)("Add option","jetpack"))),Object(o.createElement)(u.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(c.__)("Field Settings","jetpack")},Object(o.createElement)(l.TextControl,{label:Object(c.__)("ID","jetpack"),value:d,onChange:function(e){return s({id:e})}}))))}}]),t}(o.Component),B=Object(x.withInstanceId)(L),q={title:Object(c.__)("Form","jetpack"),description:Object(c.__)("A simple way to get feedback from folks visiting your site.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),keywords:[Object(c._x)("email","block search term","jetpack"),Object(c._x)("feedback","block search term","jetpack"),Object(c._x)("contact form","block search term","jetpack")],category:"jetpack",supports:{html:!1},attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submitButtonText:{type:"string",default:Object(c.__)("Submit","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},hasFormSettingsSet:{type:"string",default:null},customThankyou:{type:"string",default:""},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},has_form_settings_set:{type:"string",default:null},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")}},edit:M,save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)},example:{attributes:{hasFormSettingsSet:!0,submitButtonText:Object(c.__)("Submit","jetpack")},innerBlocks:[{name:"jetpack/field-name",attributes:{label:Object(c.__)("Name","jetpack"),required:!0}},{name:"jetpack/field-email",attributes:{label:Object(c.__)("Email","jetpack"),required:!0}},{name:"jetpack/field-url",attributes:{label:Object(c.__)("Website","jetpack")}},{name:"jetpack/field-textarea",attributes:{label:Object(c.__)("Message","jetpack")}}]},deprecated:[{attributes:{subject:{type:"string",default:""},to:{type:"string",default:""},submit_button_text:{type:"string",default:Object(c.__)("Submit","jetpack")},has_form_settings_set:{type:"string",default:null}},migrate:function(e){return{submitButtonText:e.submit_button_text,hasFormSettingsSet:e.has_form_settings_set,to:e.to,subject:e.subject}},isEligible:function(e){return!!(e.has_form_settings_set||e.submit_button_text&&"Submit"!==e.submit_button_text)},save:function(){return Object(o.createElement)(u.InnerBlocks.Content,null)}}]},U={category:"jetpack",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-text",e)}},{type:"block",blocks:["jetpack/field-name"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-name",e)}},{type:"block",blocks:["jetpack/field-email"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-email",e)}},{type:"block",blocks:["jetpack/field-url"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-url",e)}},{type:"block",blocks:["jetpack/field-date"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-date",e)}},{type:"block",blocks:["jetpack/field-telephone"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-telephone",e)}},{type:"block",blocks:["jetpack/field-textarea"],isMatch:function(e){return!e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-textarea",e)}},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-checkbox-multiple",e)}},{type:"block",blocks:["jetpack/field-radio"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-radio",e)}},{type:"block",blocks:["jetpack/field-select"],isMatch:function(e){return 1<=e.options.length},transform:function(e){return Object(s.createBlock)("jetpack/field-select",e)}}]},save:function(){return null}},V=function(e){var t=e.attributes,n=e.name;return null===t.label?Object(s.getBlockType)(n).title:t.label},H=function(e){return function(t){return Object(o.createElement)(R,{type:e,label:V(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id})}},G=function(e){return function(t){return Object(o.createElement)(B,{label:V(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id})}},$=[{name:"field-text",settings:i()({},U,{title:Object(c.__)("Text","jetpack"),description:Object(c.__)("When you need just a small amount of text, add a text input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:H("text")})},{name:"field-name",settings:i()({},U,{title:Object(c.__)("Name","jetpack"),description:Object(c.__)("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:H("text")})},{name:"field-email",settings:i()({},U,{title:Object(c.__)("Email","jetpack"),keywords:[Object(c.__)("e-mail","jetpack"),Object(c.__)("mail","jetpack"),"email"],description:Object(c.__)("Want to reply to folks? Add an email address input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:H("email")})},{name:"field-url",settings:i()({},U,{title:Object(c.__)("Website","jetpack"),keywords:["url",Object(c.__)("internet page","jetpack"),"link"],description:Object(c.__)("Add an address input for a website.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:H("url")})},{name:"field-date",settings:i()({},U,{title:Object(c.__)("Date Picker","jetpack"),keywords:[Object(c.__)("Calendar","jetpack"),Object(c.__)("day month year","block search term","jetpack")],description:Object(c.__)("The best way to set a date. Add a date picker.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:H("text")})},{name:"field-telephone",settings:i()({},U,{title:Object(c.__)("Telephone","jetpack"),keywords:[Object(c.__)("Phone","jetpack"),Object(c.__)("Cellular phone","jetpack"),Object(c.__)("Mobile","jetpack")],description:Object(c.__)("Add a phone number input.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:H("tel")})},{name:"field-textarea",settings:i()({},U,{title:Object(c.__)("Message","jetpack"),keywords:[Object(c.__)("Textarea","jetpack"),"textarea",Object(c.__)("Multiline text","jetpack")],description:Object(c.__)("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:function(e){return Object(o.createElement)(D,{label:V(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id})}})},{name:"field-checkbox",settings:i()({},U,{title:Object(c.__)("Checkbox","jetpack"),keywords:[Object(c.__)("Confirm","jetpack"),Object(c.__)("Accept","jetpack")],description:Object(c.__)("Add a single checkbox.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:function(e){return Object(o.createElement)(z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id})},attributes:i()({},U.attributes,{label:{type:"string",default:""}})})},{name:"field-checkbox-multiple",settings:i()({},U,{title:Object(c.__)("Checkbox Group","jetpack"),keywords:[Object(c.__)("Choose Multiple","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("People love options. Add several checkbox items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:G("checkbox"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose several"}})})},{name:"field-radio",settings:i()({},U,{title:Object(c.__)("Radio","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Select","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(o.Fragment,null,Object(o.createElement)(l.Path,{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),Object(o.createElement)(l.Circle,{cx:"12",cy:"12",r:"5"}))),edit:G("radio"),attributes:i()({},U.attributes,{label:{type:"string",default:"Choose one"}})})},{name:"field-select",settings:i()({},U,{title:Object(c.__)("Select","jetpack"),keywords:[Object(c.__)("Choose","jetpack"),Object(c.__)("Dropdown","jetpack"),Object(c.__)("Option","jetpack")],description:Object(c.__)("Compact, but powerful. Add a select box with several items.","jetpack"),icon:Object(A.a)(Object(o.createElement)(l.Path,{d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:G("select"),attributes:i()({},U.attributes,{label:{type:"string",default:"Select one"}})})}];Object(r.a)("contact-form",q,$)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=["USD","EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"],s=n(24),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(12),w=n.n(O),E=n(43),C=n.n(E),x=n(14),S=n(13),A=n(5),F=n(45),P=n(41),T=(n(230),n(106)),M=n.n(T),N=n(107),R=n.n(N),D=function(e){var t=e.title,n=void 0===t?"":t,r=e.content,o=void 0===r?"":r,c=e.formattedPrice,s=void 0===c?"":c,l=e.multiple,u=void 0!==l&&l,p=e.featuredMediaUrl,d=void 0===p?null:p,h=e.featuredMediaTitle,m=void 0===h?null:h;return Object(a.createElement)("div",{className:"jetpack-simple-payments-wrapper"},Object(a.createElement)("div",{className:"jetpack-simple-payments-product"},d&&Object(a.createElement)("div",{className:"jetpack-simple-payments-product-image"},Object(a.createElement)("figure",{className:"jetpack-simple-payments-image"},Object(a.createElement)("img",{src:d,alt:m}))),Object(a.createElement)("div",{className:"jetpack-simple-payments-details"},n&&Object(a.createElement)("div",{className:"jetpack-simple-payments-title"},Object(a.createElement)("p",null,n)),o&&Object(a.createElement)("div",{className:"jetpack-simple-payments-description"},Object(a.createElement)("p",null,o)),s&&Object(a.createElement)("div",{className:"jetpack-simple-payments-price"},Object(a.createElement)("p",null,s)),Object(a.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},u&&Object(a.createElement)("div",{className:"jetpack-simple-payments-items"},Object(a.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),Object(a.createElement)("div",{className:"jetpack-simple-payments-button"},Object(a.createElement)("img",{alt:Object(i.__)("Pay with PayPal","jetpack"),src:M.a,srcSet:"".concat(R.a," 2x")}))))))},z=n(6),I=n(48),L=function(e){return function(t){return e({featuredMediaId:Object(A.get)(t,"id",0),featuredMediaUrl:Object(A.get)(t,"url",null),featuredMediaTitle:Object(A.get)(t,"title",null)})}},B=function(e){var t=e.featuredMediaId,n=e.featuredMediaUrl,r=e.featuredMediaTitle,c=e.setAttributes;return t?Object(a.createElement)("div",null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(z.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(z.MediaUpload,{onSelect:L(c),allowedTypes:["image"],value:t,render:function(e){var t=e.open;return Object(a.createElement)(I.a,{label:Object(i.__)("Edit Image","jetpack"),onClick:t})}}),Object(a.createElement)(o.ToolbarButton,{icon:"trash",title:Object(i.__)("Remove Image","jetpack"),onClick:function(){return c({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}}))),Object(a.createElement)("figure",null,Object(a.createElement)("img",{src:n,alt:r})))):Object(a.createElement)(z.MediaPlaceholder,{icon:"format-image",labels:{title:Object(i.__)("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:L(c)})},q=function(e){var t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},U=function(e,t){var n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=Object(F.a)(t),a=r.precision,i=r.symbol,o=e.toFixed(a);return n?"".concat(o," ").concat(Object(A.trimEnd)(i,".")):o},V=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),o=0;o<r;o++)a[o]=arguments[o];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),k()(v()(n),"shouldInjectPaymentAttributes",!!n.props.attributes.productId),k()(v()(n),"validateAttributes",(function(){var e=n.validatePrice(),t=n.validateTitle(),r=n.validateEmail(),a=n.validateCurrency();return e&&t&&r&&a})),k()(v()(n),"validateCurrency",(function(){var e=n.props.attributes.currency;return c.includes(e)})),k()(v()(n),"validatePrice",(function(){var e=n.props.attributes,t=e.currency,r=e.price,a=Object(F.a)(t).precision;return r&&0!==parseFloat(r)?Number.isNaN(parseFloat(r))?(n.setState({fieldPriceError:Object(i.__)("Invalid price","jetpack")}),!1):parseFloat(r)<0?(n.setState({fieldPriceError:Object(i.__)("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):q(r)>a?0===a?(n.setState({fieldPriceError:Object(i.__)("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(n.setState({fieldPriceError:Object(i.sprintf)(Object(i._n)("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",a,"jetpack"),a)}),!1):(n.state.fieldPriceError&&n.setState({fieldPriceError:null}),!0):(n.setState({fieldPriceError:Object(i.__)("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),k()(v()(n),"validateEmail",(function(){var e=n.props.attributes.email;return e?C.a.validate(e)?(n.state.fieldEmailError&&n.setState({fieldEmailError:null}),!0):(n.setState({fieldEmailError:Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),e)}),!1):(n.setState({fieldEmailError:Object(i.__)("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),k()(v()(n),"validateTitle",(function(){return n.props.attributes.title?(n.state.fieldTitleError&&n.setState({fieldTitleError:null}),!0):(n.setState({fieldTitleError:Object(i.__)("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),k()(v()(n),"handleEmailChange",(function(e){n.props.setAttributes({email:e}),n.setState({fieldEmailError:null})})),k()(v()(n),"handleFeaturedMediaSelect",(function(e){n.props.setAttributes({featuredMediaId:Object(A.get)(e,"id",0)})})),k()(v()(n),"handleContentChange",(function(e){n.props.setAttributes({content:e})})),k()(v()(n),"handlePriceChange",(function(e){e=parseFloat(e),isNaN(e)?n.props.setAttributes({price:void 0}):n.props.setAttributes({price:e}),n.setState({fieldPriceError:null})})),k()(v()(n),"handleCurrencyChange",(function(e){n.props.setAttributes({currency:e})})),k()(v()(n),"handleMultipleChange",(function(e){n.props.setAttributes({multiple:!!e})})),k()(v()(n),"handleTitleChange",(function(e){n.props.setAttributes({title:e}),n.setState({fieldTitleError:null})})),k()(v()(n),"getCurrencyList",c.map((function(e){var t=Object(F.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(A.trimEnd)(t,"."))}}))),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.injectPaymentAttributes();var e=this.props,t=e.attributes,n=e.hasPublishAction;!t.productId&&n&&this.saveProduct()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.hasPublishAction,r=t.isSelected;Object(A.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&n&&this.validateAttributes()?this.saveProduct():e.isSelected&&!r&&this.validateAttributes()}},{key:"injectPaymentAttributes",value:function(){var e=this.props.simplePayment;if(this.shouldInjectPaymentAttributes&&!Object(A.isEmpty)(e)){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.content,i=n.currency,o=n.email,c=n.featuredMediaId,s=n.multiple,l=n.price,u=n.title;r({content:Object(A.get)(e,["content","raw"],a),currency:Object(A.get)(e,["meta","spay_currency"],i),email:Object(A.get)(e,["meta","spay_email"],o),featuredMediaId:Object(A.get)(e,["featured_media"],c),multiple:Boolean(Object(A.get)(e,["meta","spay_multiple"],Boolean(s))),price:Object(A.get)(e,["meta","spay_price"],l||void 0),title:Object(A.get)(e,["title","raw"],u)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}}},{key:"toApi",value:function(){var e=this.props.attributes,t=e.content,n=e.currency,r=e.email,a=e.featuredMediaId,i=e.multiple,o=e.price,c=e.productId;return{id:c,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:i,spay_price:o},status:c?"publish":"draft",title:e.title}}},{key:"saveProduct",value:function(){var e=this;if(!this.state.isSavingProduct){var t=this.props,n=t.attributes,r=t.setAttributes,a=n.email,o=Object(S.dispatch)("core").saveEntityRecord;this.setState({isSavingProduct:!0},(function(){o("postType","jp_pay_product",e.toApi()).then((function(e){return e&&r({productId:e.id}),e})).catch((function(t){if(t&&t.data){var n=t.data.key;e.setState({fieldEmailError:"spay_email"===n?Object(i.sprintf)(Object(i.__)("%s is not a valid email address.","jetpack"),a):null,fieldPriceError:"spay_price"===n?Object(i.__)("Invalid price.","jetpack"):null})}})).finally((function(){e.setState({isSavingProduct:!1})}))}))}}},{key:"render",value:function(){var e=this.state,t=e.fieldEmailError,n=e.fieldPriceError,r=e.fieldTitleError,c=this.props,s=c.attributes,l=c.featuredMedia,u=c.instanceId,p=c.isSelected,d=c.setAttributes,h=c.simplePayment,m=s.content,f=s.currency,b=s.email,g=s.featuredMediaId,v=s.featuredMediaUrl,j=s.featuredMediaTitle,y=s.multiple,_=s.price,k=s.productId,O=s.title,E=v||l&&l.source_url,C=j||l&&l.alt_text,x=k&&Object(A.isEmpty)(h);if(!p&&x)return Object(a.createElement)("div",{className:"simple-payments__loading"},Object(a.createElement)(D,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!p&&b&&_&&O&&!t&&!n&&!r)return Object(a.createElement)(D,{"aria-busy":"false",content:m,featuredMediaUrl:E,featuredMediaTitle:C,formattedPrice:U(_,f),multiple:y,title:O});var S=x?o.Disabled:"div";return Object(a.createElement)(S,{className:"wp-block-jetpack-simple-payments"},Object(a.createElement)(B,{featuredMediaId:g,featuredMediaUrl:E,featuredMediaTitle:C,setAttributes:d}),Object(a.createElement)("div",null,Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-title-error"),className:w()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":r}),label:Object(i.__)("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:Object(i.__)("Item name","jetpack"),required:!0,type:"text",value:O}),Object(a.createElement)(P.a,{id:"".concat(u,"-title-error"),isError:!0},r),Object(a.createElement)(o.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:Object(i.__)("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:Object(i.__)("Describe your item in a few words","jetpack"),value:m}),Object(a.createElement)("div",{className:"simple-payments__price-container"},Object(a.createElement)(o.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:Object(i.__)("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:f}),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-price-error"),className:w()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":n}),label:Object(i.__)("Price","jetpack"),onChange:this.handlePriceChange,placeholder:U(0,f,!1),required:!0,step:"1",type:"number",value:_||""}),Object(a.createElement)(P.a,{id:"".concat(u,"-price-error"),isError:!0},n)),Object(a.createElement)("div",{className:"simple-payments__field-multiple"},Object(a.createElement)(o.ToggleControl,{checked:Boolean(y),label:Object(i.__)("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),Object(a.createElement)(o.TextControl,{"aria-describedby":"".concat(u,"-email-").concat(t?"error":"help"),className:w()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":t}),label:Object(i.__)("Email","jetpack"),onChange:this.handleEmailChange,placeholder:Object(i.__)("Email","jetpack"),required:!0,type:"email",value:b}),Object(a.createElement)(P.a,{id:"".concat(u,"-email-error"),isError:!0},t),Object(a.createElement)(P.a,{id:"".concat(u,"-email-help")},Object(i.__)("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",Object(a.createElement)(o.ExternalLink,{href:"https://www.paypal.com/"},Object(i.__)("Create one on PayPal","jetpack")))))}}]),t}(a.Component),H=Object(S.withSelect)((function(e,t){var n=e("core"),r=n.getEntityRecord,a=n.getMedia,i=e("core/editor"),o=i.isSavingPost,c=i.getCurrentPost,s=t.attributes,l=s.productId,u=s.featuredMediaId,p=l?Object(A.pick)(r("postType","jp_pay_product",l),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0;return{hasPublishAction:!!Object(A.get)(c(),["_links","wp:action-publish"]),isSaving:!!o(),simplePayment:p,featuredMedia:u?a(u):null}})),G=Object(x.compose)(H,x.withInstanceId)(V);var $=n(108),W=n.n($),K=(n(231),Object(s.b)()||Object(s.a)()?"https://support.wordpress.com/simple-payments/":"https://jetpack.com/support/jetpack-blocks/simple-payments-block/"),Z={title:Object(i.__)("Simple Payments button","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),Object(a.createElement)("p",null,Object(i.__)("Good for collecting donations or payments for products and services.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:K},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),category:"jetpack",keywords:[Object(i._x)("shop","block search term","jetpack"),Object(i._x)("sell","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:function(e){var t=e.named.id;if(t){var n=parseInt(t,10);return n||void 0}}}}}]},edit:G,save:function(e){var t=e.attributes.productId;return t?Object(a.createElement)(a.RawHTML,null,'[simple-payment id="'.concat(t,'"]')):null},example:{attributes:{price:25,title:Object(i.__)("Jetpack t-shirt","jetpack"),content:Object(i.__)("Take flight in ultimate comfort with ths stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:W.a}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};Object(r.a)("simple-payments",Z)},function(e,t,n){"use strict";n.r(t);var r=n(21),a=n.n(r),i=n(18),o=n.n(i),c=n(15),s=n.n(c),l=n(25),u=n(16),p=n(28),d=n(55),h=n(5),m=n(7),f=n.n(m),b=n(11),g=n.n(b),v=n(8),j=n.n(v),y=n(9),_=n.n(y),k=n(4),O=n.n(k),w=n(10),E=n.n(w),C=n(3),x=n.n(C),S=n(0),A=n(23),F=n.n(A),P=n(2),T=n(14),M=n(13),N=n(6),R=n(1),D=n(12),z=n.n(D),I=function(e){var t=e.text;return Object(S.createElement)("div",{className:"wp-block-embed is-loading"},Object(S.createElement)(P.Spinner,null),Object(S.createElement)("p",null,t))},L=n(31),B=function(e,t){var n=t.autoplay,r=t.controls,a=t.loop,i=t.muted,o=t.poster,c=t.preload;if(!e)return null;var l=s()({},n&&{autoPlay:!0},{},!r&&{controls:!1},{},a&&{loop:!0},{},i&&{muted:!0,persistVolume:!1},{},o&&{posterUrl:o},{},"none"!==c&&{preloadContent:c});return Object(L.addQueryArgs)("https://videopress.com/v/".concat(e),l)},q=["image"],U=Object(T.createHigherOrderComponent)(Object(T.compose)([Object(M.withSelect)((function(e,t){var n=t.attributes,r=n.autoplay,a=n.controls,i=n.guid,o=n.loop,c=n.muted,s=n.poster,u=n.preload,p=n.src,d=e("core"),h=d.getEmbedPreview,m=d.isRequestingEmbedPreview,f=B(i,{autoplay:r,controls:a,loop:o,muted:c,poster:s,preload:u}),b=!!f&&h(f);return{isFetchingPreview:!!f&&m(f),isUploading:Object(l.isBlobURL)(p),preview:b,url:f}})),Object(M.withDispatch)((function(e){return{invalidateCachedEmbedPreview:function(t){e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}})),T.withInstanceId,function(e){return function(t){function n(){var e;return f()(this,n),e=j()(this,_()(n).apply(this,arguments)),x()(O()(e),"fallbackToCore",(function(){e.props.setAttributes({guid:void 0}),e.setState({fallback:!0})})),x()(O()(e),"setGuid",(function(){var t,n,r,a,i,o,c;return regeneratorRuntime.async((function(s){for(;;)switch(s.prev=s.next){case 0:if(t=e.props,n=t.attributes,r=t.setAttributes,a=n.id){s.next=5;break}return r({guid:void 0}),s.abrupt("return");case 5:return s.prev=5,e.setState({isFetchingMedia:!0}),s.next=9,regeneratorRuntime.awrap(F()({path:"/wp/v2/media/".concat(a)}));case 9:if(i=s.sent,e.setState({isFetchingMedia:!1}),o=e.props.attributes.id,a===o){s.next=14;break}return s.abrupt("return");case 14:e.setState({media:i}),(c=Object(h.get)(i,"jetpack_videopress_guid"))?r({guid:c}):e.fallbackToCore(),s.next=23;break;case 19:s.prev=19,s.t0=s.catch(5),e.setState({isFetchingMedia:!1}),e.fallbackToCore();case 23:case"end":return s.stop()}}),null,null,[[5,19]])})),x()(O()(e),"switchToEditing",(function(){e.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),x()(O()(e),"onSelectPoster",(function(t){(0,e.props.setAttributes)({poster:t.url})})),x()(O()(e),"onRemovePoster",(function(){(0,e.props.setAttributes)({poster:""}),e.posterImageButton.current.focus()})),x()(O()(e),"toggleAttribute",(function(t){return function(n){e.props.setAttributes(x()({},t,n))}})),x()(O()(e),"getAutoplayHelp",(function(e){return e?Object(R.__)("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null})),e.state={media:null,isFetchingMedia:!1,fallback:!1},e.posterImageButton=Object(S.createRef)(),e}return E()(n,t),g()(n,[{key:"componentDidMount",value:function(){this.props.attributes.guid||this.setGuid()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.attributes,r=t.invalidateCachedEmbedPreview,a=t.url;n.id!==e.attributes.id&&this.setGuid(),a&&a!==e.url&&r(a)}},{key:"render",value:function(){var t=this,n=this.props,r=n.attributes,a=n.className,i=n.instanceId,o=n.isFetchingPreview,c=n.isSelected,s=n.isUploading,l=n.preview,u=n.setAttributes,p=this.state,d=p.fallback,h=p.isFetchingMedia,m=r.autoplay,f=r.caption,b=r.controls,g=r.loop,v=r.muted,j=r.poster,y=r.preload,_="video-block__poster-image-description-".concat(i),k=Object(S.createElement)(S.Fragment,null,Object(S.createElement)(N.BlockControls,null,Object(S.createElement)(P.Toolbar,null,Object(S.createElement)(P.IconButton,{className:"components-icon-button components-toolbar__control",label:Object(R.__)("Edit video","jetpack"),onClick:this.switchToEditing,icon:"edit"}))),Object(S.createElement)(N.InspectorControls,null,Object(S.createElement)(P.PanelBody,{title:Object(R.__)("Video Settings","jetpack")},Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Autoplay","jetpack"),onChange:this.toggleAttribute("autoplay"),checked:m,help:this.getAutoplayHelp}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Loop","jetpack"),onChange:this.toggleAttribute("loop"),checked:g}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:v}),Object(S.createElement)(P.ToggleControl,{label:Object(R.__)("Playback Controls","jetpack"),onChange:this.toggleAttribute("controls"),checked:b}),Object(S.createElement)(P.SelectControl,{label:Object(R.__)("Preload","jetpack"),value:y,onChange:function(e){return u({preload:e})},options:[{value:"auto",label:Object(R._x)("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:Object(R._x)("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:Object(R._x)("None","VideoPress preload setting","jetpack")}]}),Object(S.createElement)(N.MediaUploadCheck,null,Object(S.createElement)(P.BaseControl,{className:"editor-video-poster-control",label:Object(R.__)("Poster Image","jetpack")},Object(S.createElement)(N.MediaUpload,{title:Object(R.__)("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:q,render:function(e){var n=e.open;return Object(S.createElement)(P.Button,{isDefault:!0,onClick:n,ref:t.posterImageButton,"aria-describedby":_},j?Object(R.__)("Replace image","jetpack"):Object(R.__)("Select Poster Image","jetpack"))}}),Object(S.createElement)("p",{id:_,hidden:!0},j?Object(R.sprintf)(Object(R.__)("The current poster image url is %s","jetpack"),j):Object(R.__)("There is no poster image currently selected","jetpack")),!!j&&Object(S.createElement)(P.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},Object(R.__)("Remove Poster Image")))))));if(s)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Uploading…","jetpack")}));if(h||o)return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)(I,{text:Object(R.__)("Generating preview…","jetpack")}));if(d||!l)return Object(S.createElement)(e,this.props);var O=l.html,w=l.scripts;return Object(S.createElement)(S.Fragment,null,k,Object(S.createElement)("figure",{className:z()(a,"wp-block-embed","is-type-video")},Object(S.createElement)(P.Disabled,null,Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},Object(S.createElement)(P.SandBox,{html:O,scripts:w}))),(!N.RichText.isEmpty(f)||c)&&Object(S.createElement)(N.RichText,{tagName:"figcaption",placeholder:Object(R.__)("Write caption…","jetpack"),value:f,onChange:function(e){return u({caption:e})},inlineToolbar:!0})))}}]),n}(S.Component)}]),"withVideoPressEdit"),V=Object(T.createHigherOrderComponent)((function(e){return function(t){var n=t.attributes,r=(n=void 0===n?{}:n).autoplay,a=n.caption,i=n.controls,o=n.guid,c=n.loop,s=n.muted,l=n.poster,u=n.preload;if(!o)return e(t);var p=B(o,{autoplay:r,controls:i,loop:c,muted:s,poster:l,preload:u});return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(p,"\n")),!N.RichText.isEmpty(a)&&Object(S.createElement)(N.RichText.Content,{tagName:"figcaption",value:a}))}}),"withVideoPressSave"),H=n(40);var G={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:function(e){var t=e.attributes,n=t.caption,r=t.guid;if(!r)return null;var a="https://videopress.com/v/".concat(r);return Object(S.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},Object(S.createElement)("div",{className:"wp-block-embed__wrapper"},"\n".concat(a,"\n")),!N.RichText.isEmpty(n)&&Object(S.createElement)(N.RichText.Content,{tagName:"figcaption",value:n}))},isDeprecation:!0};Object(d.addFilter)("blocks.registerBlockType","jetpack/videopress",(function(e,t){if("core/video"!==t||e.isDeprecation)return e;var n=e.attributes,r=e.deprecated,i=e.edit,c=e.save,d=e.supports,m=e.transforms,f=Object(H.a)("videopress"),b=f.available,g=f.unavailableReason;return b||["missing_plan","missing_module"].includes(g)?s()({},e,{attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},transforms:s()({},m,{from:[{type:"files",isMatch:function(e){return Object(h.every)(e,(function(e){return 0===e.type.indexOf("video/")}))},priority:9,transform:function(e,t){var n=[];return e.forEach((function(e){var r=Object(u.createBlock)("core/video",{src:Object(l.createBlobURL)(e)});Object(p.mediaUpload)({filesList:[e],onFileChange:function(e){var n=o()(e,1)[0],a=n.id,i=n.url;t(r.clientId,{id:a,src:i})},allowedTypes:["video"]}),n.push(r)})),n}}]}),supports:s()({},d,{reusable:!1}),edit:U(i),save:V(c),deprecated:[].concat(a()(r||[]),[{attributes:n,isEligible:function(e){return!e.guid},save:c,supports:d,isDeprecation:!0},G])}):e}))},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(15),s=n.n(c),l=n(21),u=n.n(l),p=n(7),d=n.n(p),h=n(11),m=n.n(h),f=n(8),b=n.n(f),g=n(9),v=n.n(g),j=n(4),y=n.n(j),_=n(10),k=n.n(_),O=n(3),w=n.n(O),E=n(14),C=n(5),x=n(25),S=n(13),A=n(6),F=n(28),P=n(48),T=function(e){var t=e.allowedMediaTypes,n=e.attributes,r=n.autoplay,c=n.delay,s=n.effect,l=n.images,u=n.sizeSlug,p=e.imageSizeOptions,d=e.onChangeImageSize,h=e.onSelectImages,m=e.setAttributes,f="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,b=[{label:Object(i._x)("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:Object(i._x)("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(A.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Autoplay","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Autoplay","jetpack"),help:Object(i.__)("Autoplay between slides","jetpack"),checked:r,onChange:function(e){m({autoplay:e})}}),r&&Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Delay between transitions (in seconds)","jetpack"),value:c,onChange:function(e){m({delay:e})},min:1,max:5}),r&&f&&Object(a.createElement)("span",null,Object(i.__)("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Effects","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Transition effect","jetpack"),value:s,onChange:function(e){m({effect:e})},options:b})),!Object(C.isEmpty)(l)&&!Object(C.isEmpty)(p)&&Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Image Settings","jetpack")},Object(a.createElement)(o.SelectControl,{label:Object(i.__)("Image Size","jetpack"),value:u,options:p,onChange:d}))),Object(a.createElement)(A.BlockControls,null,!!l.length&&Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(A.MediaUpload,{onSelect:h,allowedTypes:t,multiple:!0,gallery:!0,value:l.map((function(e){return e.id})),render:function(e){var t=e.open;return Object(a.createElement)(P.a,{label:Object(i.__)("Edit Slideshow","jetpack"),onClick:t})}}))))},M=n(12),N=n.n(M),R=n(39),D=n(73),z=n(38),I=function(e){function t(e){var n;return d()(this,t),n=b()(this,v()(t).call(this,e)),w()(y()(n),"pendingRequestAnimationFrame",null),w()(y()(n),"resizeObserver",null),w()(y()(n),"initializeResizeObserver",(function(e){n.clearResizeObserver(),n.resizeObserver=new R.a((function(){n.clearPendingRequestAnimationFrame(),n.pendingRequestAnimationFrame=requestAnimationFrame((function(){Object(z.d)(e),e.update()}))})),n.resizeObserver.observe(e.el)})),w()(y()(n),"clearPendingRequestAnimationFrame",(function(){n.pendingRequestAnimationFrame&&(cancelAnimationFrame(n.pendingRequestAnimationFrame),n.pendingRequestAnimationFrame=null)})),w()(y()(n),"clearResizeObserver",(function(){n.resizeObserver&&(n.resizeObserver.disconnect(),n.resizeObserver=null)})),w()(y()(n),"prefersReducedMotion",(function(){return"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches})),w()(y()(n),"buildSwiper",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(Object(D.a)(n.slideshowRef.current,{autoplay:!(!n.props.autoplay||n.prefersReducedMotion())&&{delay:1e3*n.props.delay,disableOnInteraction:!1},effect:n.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:n.btnNextRef.current,prevEl:n.btnPrevRef.current},pagination:{clickable:!0,el:n.paginationRef.current,type:"bullets"}},{init:z.b,imagesReady:z.d,paginationRender:z.c,transitionEnd:z.a}))})),n.slideshowRef=Object(a.createRef)(),n.btnNextRef=Object(a.createRef)(),n.btnPrevRef=Object(a.createRef)(),n.paginationRef=Object(a.createRef)(),n}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.onError;this.buildSwiper().then((function(t){e.swiperInstance=t,e.initializeResizeObserver(t)})).catch((function(){t(Object(i.__)("The Swiper library could not be loaded.","jetpack"))}))}},{key:"componentWillUnmount",value:function(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}},{key:"componentDidUpdate",value:function(e){var t,n=this,r=this.props,a=r.align,o=r.autoplay,c=r.delay,s=r.effect,l=r.images,u=r.onError;(a===e.align&&Object(C.isEqual)(l,e.images)||this.swiperInstance&&this.swiperInstance.update(),s!==e.effect||o!==e.autoplay||c!==e.delay||l!==e.images)&&(t=this.swiperIndex?l.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((function(e){n.swiperInstance=e,n.initializeResizeObserver(e)})).catch((function(){u(Object(i.__)("The Swiper library could not be loaded.","jetpack"))})))}},{key:"render",value:function(){var e=this.props,t=e.autoplay,n=e.className,r=e.delay,i=e.effect,c=e.images;return Object(a.createElement)("div",{className:n,"data-autoplay":t||null,"data-delay":t?r:null,"data-effect":i},Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},Object(a.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},c.map((function(e){var t=e.alt,n=e.caption,r=e.id,i=e.url;return Object(a.createElement)("li",{className:N()("wp-block-jetpack-slideshow_slide","swiper-slide",Object(x.isBlobURL)(i)&&"is-transient"),key:r},Object(a.createElement)("figure",null,Object(a.createElement)("img",{alt:t,className:"wp-block-jetpack-slideshow_image wp-image-".concat(r),"data-id":r,src:i}),Object(x.isBlobURL)(i)&&Object(a.createElement)(o.Spinner,null),n&&Object(a.createElement)(A.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),Object(a.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),Object(a.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}]),t}(a.Component);w()(I,"defaultProps",{effect:"slide"});var L=I,B=(n(232),["image"]),q=function(e,t){var n=Object(C.pick)(e,["alt","id","link","caption"]);return n.url=Object(C.get)(e,["sizes",t,"url"])||Object(C.get)(e,["media_details","sizes",t,"source_url"])||e.url,n},U=function(e){function t(){var e;return d()(this,t),e=b()(this,v()(t).apply(this,arguments)),w()(y()(e),"onSelectImages",(function(t){var n=e.props.attributes.sizeSlug,r=t.map((function(e){return q(e,n)}));e.setAttributes({images:r})})),w()(y()(e),"onRemoveImage",(function(t){return function(){var n=Object(C.filter)(e.props.attributes.images,(function(e,n){return t!==n}));e.setState({selectedImage:null}),e.setAttributes({images:n})}})),w()(y()(e),"addFiles",(function(t){var n=e.props.attributes.images||[],r=e.props.attributes.sizeSlug,a=e.props,i=a.lockPostSaving,o=a.unlockPostSaving,c=a.noticeOperations;i("slideshowBlockLock"),Object(F.mediaUpload)({allowedTypes:B,filesList:t,onFileChange:function(t){var a=t.map((function(e){return q(e,r)}));e.setAttributes({images:[].concat(u()(n),u()(a))}),a.every((function(e){return Object(x.isBlobURL)(e.url)}))||o("slideshowBlockLock")},onError:c.createErrorNotice})})),w()(y()(e),"uploadFromFiles",(function(t){return e.addFiles(t.target.files)})),w()(y()(e),"updateImagesSize",(function(t){var n=e.props.attributes.images,r=e.props.resizedImages,a=n.map((function(e){var n=r.find((function(t){var n=t.id;return parseInt(n,10)===parseInt(e.id,10)})),a=Object(C.get)(n,["sizes",t,"source_url"]);return s()({},e,{},a&&{url:a})}));e.setAttributes({images:a,sizeSlug:t})})),e.state={selectedImage:null},e}return k()(t,e),m()(t,[{key:"componentDidMount",value:function(){var e=this.props.attributes,t=e.ids;e.sizeSlug||this.setAttributes({sizeSlug:t.length?"full":"large"})}},{key:"setAttributes",value:function(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e=s()({},e,{ids:e.images.map((function(e){var t=e.id;return parseInt(t,10)}))})),this.props.setAttributes(e)}},{key:"getImageSizeOptions",value:function(){var e=this.props.imageSizes;return Object(C.map)(e,(function(e){var t=e.name;return{value:e.slug,label:t}}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.noticeOperations,l=t.noticeUI,u=n.align,p=n.autoplay,d=n.delay,h=n.effect,m=n.images,f=this.getImageSizeOptions(),b=Object(a.createElement)(T,{allowedMediaTypes:B,attributes:n,imageSizeOptions:f,onChangeImageSize:this.updateImagesSize,onSelectImages:this.onSelectImages,setAttributes:function(t){return e.setAttributes(t)}});return 0===m.length?Object(a.createElement)(a.Fragment,null,b,Object(a.createElement)(A.MediaPlaceholder,{icon:Object(a.createElement)(A.BlockIcon,{icon:X}),className:r,labels:{title:Object(i.__)("Slideshow","jetpack"),instructions:Object(i.__)("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:B,multiple:!0,notices:l,onError:s.createErrorNotice})):Object(a.createElement)(a.Fragment,null,b,l,Object(a.createElement)(L,{align:u,autoplay:p,className:r,delay:d,effect:h,images:m,onError:s.createErrorNotice}),Object(a.createElement)(o.DropZone,{onFilesDrop:this.addFiles}),c&&Object(a.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},Object(a.createElement)(o.FormFileUpload,{multiple:!0,isLarge:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},Object(i.__)("Upload an image","jetpack"))))}}]),t}(a.Component),V=Object(E.compose)(Object(S.withSelect)((function(e,t){return{imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce((function(t,n){var r=e("core").getMedia(n),a=Object(C.get)(r,["media_details","sizes"]);return[].concat(u()(t),[{id:n,sizes:a}])}),[])}})),Object(S.withDispatch)((function(e){var t=e("core/editor");return{lockPostSaving:t.lockPostSaving,unlockPostSaving:t.unlockPostSaving}})),o.withNotices)(U),H=n(16);function G(e){return Object(C.filter)(e,(function(e){var t=e.id,n=e.url;return t&&n}))}var $={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:function(e){return G(e).length>0},transform:function(e){var t=G(e);return Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:function(e){var t=G(e.images);return t.length>0?Object(H.createBlock)("jetpack/slideshow",{images:t.map((function(e){return{alt:e.alt,caption:e.caption,id:e.id,url:e.url}})),ids:t.map((function(e){return e.id}))}):Object(H.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:function(e){var t=e.images,n=e.ids;return Object(H.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:function(e){var t=e.images;return t.length>0?t.map((function(e){var t=e.id,n=e.url,r=e.alt,a=e.caption;return Object(H.createBlock)("core/image",{id:t,url:n,alt:r,caption:a})})):Object(H.createBlock)("core/image")}}]},W=n(109),K=n.n(W),Z=n(110),J=n.n(Z),Y=n(111),Q=n.n(Y),X=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{d:"M0 0h24v24H0z",fill:"none"}),Object(a.createElement)(o.Path,{d:"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z"})),ee={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:K.a},{alt:"",caption:"",id:23,url:J.a},{alt:"",caption:"",id:23,url:Q.a}],effect:"slide"},te={title:Object(i.__)("Slideshow","jetpack"),category:"jetpack",keywords:[Object(i._x)("image","block search term","jetpack"),Object(i._x)("gallery","block search term","jetpack"),Object(i._x)("slider","block search term","jetpack")],description:Object(i.__)("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:X,edit:V,save:function(e){var t=e.attributes,n=t.align,r=t.autoplay,i=t.delay,o=t.effect,c=t.images,s=e.className;return Object(a.createElement)(L,{align:n,autoplay:r,className:s,delay:i,effect:o,images:c})},transforms:$,example:{attributes:ee}};Object(r.a)("slideshow",te)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(13),c=n(5),s=function(e){return e.map((function(e){return e.value}))},l=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],u=s(l),p=function(e){return Object(c.compact)([{value:"standard",label:Object(i.__)("Standard (224 x 301 pixels)","jetpack")},{value:"tall",label:Object(i.__)("Tall (288 x 490 pixels)","jetpack")},{value:"wide",label:Object(i.__)("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&{value:"button",label:Object(i.__)("Button (210 x 113 pixels)","jetpack")}])},d=function(e){return s(p(e))},h=Object(o.select)("core/block-editor").getSettings().siteLocale,m=!Object(c.isEmpty)(h)&&u.includes(h)?h:"en-US",f={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:d()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:m,type:"string",validValues:u},newtab:{default:!1,type:"boolean"}},b=n(3),g=n.n(b),v=n(18),j=n.n(v),y=(n(79),n(12)),_=n.n(y),k=n(6),O=n(2),w=(n(89),Object(a.createElement)(O.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},Object(a.createElement)(O.Path,{fill:"#555d66",d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))),E=n(24),C=n(30),x=n.n(C);var S=/<script type=\'text\/javascript\' src=\'\/\/www.opentable\.(\w{2,3}\.)?\w+\/widget\/reservation\/loader\?[^']+\'><\/script>/;function A(e){var t=Object(a.useState)(""),n=j()(t,2),r=n[0],o=n[1],s=function(e,t){var n=Object(a.useState)([]),r=j()(n,2),i=r[0],o=r[1],s=Object(a.useCallback)(Object(c.throttle)((function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((function(e){return e.json()})).then((function(e){return o(Object(c.unionBy)(i,e.items,"rid"))}))}),500),[i]);return Object(a.useEffect)((function(){Object(c.isEmpty)(e)||e.startsWith("<script")||s(e)}),[e]),i}(r,20),l=Object(a.useState)(e.rids||[]),u=j()(l,2),p=u[0],d=u[1],h=/^(\d+)$|\(\#(\d+)\)$/,m=s.filter((function(e){return p.indexOf(e.rid.toString())})).map((function(e){return e.name+" (#".concat(e.rid,")")})),f=Object(a.createElement)(O.FormTokenField,x()({value:p,suggestions:m,onInputChange:o,maxSuggestions:20,label:Object(i._n)("Restaurant","Restaurants",p.length,"jetpack")},e,{onChange:function(t){var n=t.map((function(e){var t=h.exec(e);return t[1]||t[2]}));d(n),e.onChange&&e.onChange(n)}}));return Object(a.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?Object(a.createElement)("form",{onSubmit:function(t){t.preventDefault(),e.onSubmit(Object(c.isEmpty)(p)&&S.test(r)?r:p)}},f,Object(a.createElement)(O.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i.__)("Embed","jetpack"))):f)}var F=n(59),P=n(51);n(133);var T={title:Object(i.__)("OpenTable","jetpack"),description:Object(i.__)("Allow visitors to book a reservation with OpenTable","jetpack"),icon:w,category:"jetpack",keywords:[Object(i.__)("opentable","jetpack"),Object(i.__)("reservation","jetpack"),Object(i.__)("restaurant","jetpack")],supports:{align:!0,html:!1},edit:function(e){var t,n=e.attributes,r=e.setAttributes,o=e.className,s=e.clientId,h=Object(P.a)(f,n);Object(c.isEqual)(h,n)||r(h);var m,b,v,y,C,x=n.align,S=n.rid,T=n.style,M=n.iframe,N=n.domain,R=n.lang,D=n.newtab,z=Object(a.useState)(),I=j()(z,2),L=I[0],B=I[1],q=function(){return B(Object(a.createElement)(a.Fragment,null,Object(a.createElement)("strong",null,Object(i.__)("We ran into an issue","jetpack")),Object(a.createElement)("br",null),Object(i.__)("Please ensure this embed matches the one from your OpenTable account","jetpack")))},U=p(S),V=d(S),H=function(e){return S.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e]},G=Object(a.createElement)(k.BlockControls,null,!Object(c.isEmpty)(S)&&Object(a.createElement)(O.Toolbar,{popoverProps:{className:"is-opentable"},isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:U.map((function(e){return{title:e.label,isActive:e.value===T,onClick:function(){return t=e.value,r({style:t}),"wide"===T&&"wide"===x&&r({align:""}),void("wide"===t&&r({align:"wide"}));var t}}}))})),$=function(e){Array.isArray(e)?r({rid:e,style:e.length>1&&"button"===T?"standard":T}):function(e){if(e){var t=e.match(/< *script[^>]*src *= *["']?([^"']*)/i);if(t&&t[1]){var n="";if((n=0===t[1].indexOf("http")?new URL(t[1]):new URL("http:"+t[1])).search){var a=new URLSearchParams(n.search),i=a.get("theme");"button"===a.get("type")&&(i=a.get("type"));var o={rid:a.getAll("rid"),iframe:Boolean(a.get("iframe")),domain:a.get("domain"),lang:a.get("lang"),newtab:Boolean(a.get("newtab")),style:i},c=Object(P.a)(f,o);r(c)}else q()}else q()}else q()}(e)},W=Object(E.b)()||Object(E.a)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",K=Object(a.createElement)(O.Placeholder,{label:Object(i.__)("OpenTable Reservation","jetpack"),icon:Object(a.createElement)(k.BlockIcon,{icon:w}),instructions:Object(i.__)("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:L&&Object(a.createElement)(O.Notice,{status:"error",isDismissible:!1},L)},Object(a.createElement)(A,{rids:S,onSubmit:$}),Object(a.createElement)("div",{className:"".concat(o,"-placeholder-links")},Object(a.createElement)(O.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},Object(i.__)("Sign up for OpenTable","jetpack")),Object(a.createElement)(O.ExternalLink,{href:W},Object(i.__)("Learn more","jetpack")))),Z=_()(o,(t={},g()(t,"".concat(o,"-theme-").concat(T),!Object(c.isEmpty)(S)&&V.includes(T)),g()(t,"is-multi","multi"===H(T)[0]),t));return Object(a.createElement)("div",{className:Z},!Object(c.isEmpty)(S)&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(a.Fragment,null,Object(a.createElement)(k.InspectorAdvancedControls,null,Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Load the widget in an iFrame (Recommended)","jetpack"),checked:M,onChange:function(){return r({iframe:!M})},className:"is-opentable"})),Object(a.createElement)(k.InspectorControls,null,Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(F.a,{clientId:s,styleOptions:U,onSelectStyle:r,activeStyle:T,attributes:n,viewportWidth:150})),Object(a.createElement)(O.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(a.createElement)(A,{rids:S,onChange:$}),Object(a.createElement)(O.SelectControl,{label:Object(i.__)("Language","jetpack"),value:R,onChange:function(e){return r({lang:e})},options:l}),Object(a.createElement)(O.ToggleControl,{label:Object(i.__)("Open in a new window","jetpack"),checked:D,onChange:function(){return r({newtab:!D})}})))),G),Object(c.isEmpty)(S)?K:(b=H(m||T),v=j()(b,2),y=v[0],C=v[1],Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(o,"-overlay")}),Object(a.createElement)("iframe",{title:Object(i.sprintf)(Object(i.__)("Open Table Preview %s","jetpack"),s),scrolling:"no",src:"https://www.opentable.com/widget/reservation/canvas?rid=".concat(Object(c.join)(S,"%2C"),"&type=").concat(y,"&theme=").concat(C,"&overlay=false&domain=").concat(N,"&lang=").concat(R&&u.includes(R)?R:"en-US","&newtab=").concat(D,"&disablega=true")}))))},save:function(e){var t=e.attributes.rid;return Object(a.createElement)(a.Fragment,null,t.map((function(e){return Object(a.createElement)("a",{href:"https://www.opentable.com/restref/client/?rid=".concat(e)},"https://www.opentable.com/restref/client/?rid=".concat(e))})))},attributes:f,example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1}}};Object(r.a)("opentable",T)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(12),O=n.n(k),w=n(6),E=n(13),C=n(28),x=n(23),S=n.n(x),A=n(26);function F(e){if(!e)return null;var t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}var P=n(24),T=n(14),M=window.getComputedStyle,N=Object(o.withFallbackStyles)((function(e,t){var n=t.textColor,r=t.backgroundColor,a=r&&r.color,i=n&&n.color,o=!i&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:a||!e?void 0:M(e).backgroundColor,fallbackTextColor:i||!o?void 0:M(o).color}}));function R(e){var t=e.borderRadius,n=void 0===t?"":t,r=e.setAttributes,c=Object(a.useCallback)((function(e){r({borderRadius:e})}),[r]);return Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Border Settings","jetpack")},Object(a.createElement)(o.RangeControl,{value:n,label:Object(i.__)("Border Radius","jetpack"),min:0,max:50,initialPosition:5,allowReset:!0,onChange:c}))}var D=function(e){function t(){var e;return l()(this,t),(e=h()(this,f()(t).apply(this,arguments))).nodeRef=null,e.bindRef=e.bindRef.bind(g()(e)),e}return j()(t,e),p()(t,[{key:"bindRef",value:function(e){e&&(this.nodeRef=e)}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.backgroundColor,o=t.textColor,c=t.setBackgroundColor,s=t.setTextColor,l=t.fallbackBackgroundColor,u=t.fallbackTextColor,p=t.setAttributes,d=t.className,h=n.borderRadius,m=n.placeholder,f=n.text,b=n.title;return Object(a.createElement)("div",{className:O()(d,"wp-block-button is-modal-button"),title:b,ref:this.bindRef},Object(a.createElement)(w.RichText,{placeholder:m||Object(i.__)("Add text…","jetpack"),value:f,keepPlaceholderOnFocus:!0,onChange:function(e){return p({text:e})},withoutInteractiveFormatting:!0,className:O()("wp-block-button__link",(e={"has-background":r.color},_()(e,r.class,r.class),_()(e,"has-text-color",o.color),_()(e,o.class,o.class),_()(e,"no-border-radius",0===h),e)),style:{backgroundColor:r.color,color:o.color,borderRadius:h?h+"px":void 0}}),Object(a.createElement)(w.InspectorControls,null,Object(a.createElement)(w.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),colorSettings:[{value:r.color,onChange:c,label:Object(i.__)("Background Color","jetpack")},{value:o.color,onChange:s,label:Object(i.__)("Text Color","jetpack")}]},Object(a.createElement)(w.ContrastChecker,{isLargeText:!1,textColor:o.color,backgroundColor:r.color,fallbackBackgroundColor:l,fallbackTextColor:u})),Object(a.createElement)(R,{borderRadius:h,setAttributes:p})))}}]),t}(a.Component),z=Object(T.compose)([Object(w.withColors)("backgroundColor",{textColor:"color"}),N])(D),I=n(97),L=n.n(I),B=n(98),q=n.n(B),U=(n(153),[{name:"fill",label:Object(i.__)("Fill","jetpack"),isDefault:!0},{name:"outline",label:Object(i.__)("Outline","jetpack")}]),V=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{editedUrl:n.props.attributes.url||"",editingUrl:!1,resolvingUrl:n.props.attributes.url&&!n.props.attributes.eventId,resolvedStatusCode:null}),_()(g()(n),"resolveUrl",(function(){var e=n.props.attributes.url;n.setState({resolvedStatusCode:null}),n.fetchRequest=S()({path:"/wpcom/v2/resolve-redirect/".concat(e)}),n.fetchRequest.then((function(t){n.fetchRequest=null;var r=t.url||e,a=t.status?parseInt(t.status,10):null;n.props.setAttributes({eventId:F(r),url:r}),n.setState({resolvingUrl:!1,resolvedStatusCode:a,editedUrl:r})}),(function(e){"abort"!==e.statusText&&(n.fetchRequest=null,n.setState({resolvingUrl:!1,editingUrl:!0}))}))})),_()(g()(n),"setUrl",(function(e){e&&e.preventDefault();var t=n.state.editedUrl;t&&(n.props.setAttributes({eventId:F(t),url:t}),n.setState({editingUrl:!1,resolvingUrl:!0}))})),_()(g()(n),"cannotEmbed",(function(){var e=n.props.attributes.url,t=n.state.resolvedStatusCode;return e&&!G.test(e)||t&&t>=400})),_()(g()(n),"setEmbedType",(function(e){(0,n.props.setAttributes)({useModal:"modal"===e})})),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingUrl&&this.resolveUrl()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingUrl&&this.state.resolvingUrl&&this.resolveUrl()}},{key:"renderLoading",value:function(){return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…","jetpack")))}},{key:"renderInspectorControls",value:function(){var e=this.props.attributes.useModal,t=[{value:"inline",isActive:!e,label:Object(i.__)("In-page Embed","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:L.a,alt:Object(i.__)("In page Eventbrite checkout example","jetpack")}))},{value:"modal",isActive:e,label:Object(i.__)(" Button & Modal","jetpack"),preview:Object(a.createElement)("div",{className:"block-editor-block-preview__container"},Object(a.createElement)("img",{src:q.a,alt:Object(i.__)("Modal Eventbrite checkout example","jetpack")}))}];return Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"jetpack-eventbrite-block__embed-type-controls",title:Object(i._x)("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack")},Object(a.createElement)("div",{className:"block-editor-block-styles"},t.map(this.renderEmbedTypeItem.bind(this)))))}},{key:"renderEmbedTypeItem",value:function(e){var t=this,n=e.label,r=e.isActive,i=e.value,o=e.preview;return Object(a.createElement)("div",{key:i,className:O()("block-editor-block-styles__item",{"is-active":r}),onClick:function(){return t.setEmbedType(i)},onKeyDown:function(e){A.ENTER!==e.keyCode&&A.SPACE!==e.keyCode||e.preventDefault()},role:"button",tabIndex:"0","aria-label":n},Object(a.createElement)("div",{className:"block-editor-block-styles__item-preview"},o),Object(a.createElement)("div",{className:"block-editor-block-styles__item-label"},n))}},{key:"renderBlockControls",value:function(){var e=this;return Object(a.createElement)(w.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})))}},{key:"renderEditEmbed",value:function(){var e=this,t=this.props.className,n=this.state.editedUrl,r=Object(P.b)()||Object(P.a)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return Object(a.createElement)("div",{className:t},Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Eventbrite Checkout","jetpack"),instructions:Object(i.__)("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:Object(a.createElement)(w.BlockIcon,{icon:K})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":Object(i.__)("Eventbrite URL","jetpack"),placeholder:Object(i.__)("Enter an event URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isDefault:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","submit button label","jetpack")),this.cannotEmbed()&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return t=n,r=e.props.onReplace,i=Object(a.createElement)("a",{href:t},t),void r(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(i)}));var t,r,i}},Object(i._x)("Convert block to link","button label","jetpack")))),Object(a.createElement)("div",{className:"components-placeholder__learn-more"},Object(a.createElement)(o.ExternalLink,{href:r},Object(i.__)("Learn more about Eventbrite embeds","jetpack")))))}},{key:"renderInlinePreview",value:function(){var e=this.props.className,t=this.props.attributes.eventId;if(t){var n="eventbrite-widget-".concat(t),r="\n\t\t\t<script src=\"https://www.eventbrite.com/static/widgets/eb_widgets.js\"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ".concat(t,",\n\t\t\t\t\tiframeContainerId: '").concat(n,"',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id=\"").concat(n,'"></div>\n\t\t');return Object(a.createElement)("div",{className:e},Object(a.createElement)(o.SandBox,{html:r}),Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}}},{key:"render",value:function(){var e,t=this.props,n=t.attributes,r=t.addModalButtonStyles,i=t.removeModalButtonStyles,o=n.url,c=n.useModal,s=this.state,l=s.editingUrl;return s.resolvingUrl?(i(),e=this.renderLoading()):l||!o||this.cannotEmbed()?(i(),e=this.renderEditEmbed()):(c?r():i(),e=Object(a.createElement)(a.Fragment,null,this.renderBlockControls(),c?Object(a.createElement)(z,this.props):this.renderInlinePreview())),Object(a.createElement)(a.Fragment,null,this.renderInspectorControls(),e)}}]),t}(a.Component),H=Object(E.withDispatch)((function(e,t,n){var r=t.name,a=(0,(0,n.select)("core/blocks").getBlockStyles)(r);return{addModalButtonStyles:function(){a.length<1&&e("core/blocks").addBlockStyles(r,U)},removeModalButtonStyles:function(){a.length>0&&e("core/blocks").removeBlockStyles(r,U.map((function(e){return e.name})))}}}))(V);var G=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,$=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,W=Object(i.__)("Eventbrite Checkout","jetpack"),K={src:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,{id:"eventbrite-icon"},Object(a.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),foreground:"#555d66"},Z={title:W,description:Object(i.__)("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:K,category:"jetpack",keywords:[Object(i.__)("events","jetpack"),Object(i.__)("tickets","jetpack")],supports:{html:!1},attributes:{url:{type:"string"},eventId:{type:"number"},useModal:{type:"boolean"},text:{type:"string",default:Object(i._x)("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},edit:H,save:function(e){var t=e.attributes,n=t.eventId,r=t.useModal,i=t.url;if(n)return r?function(e){var t,n=e.backgroundColor,r=e.borderRadius,i=e.customBackgroundColor,o=e.customTextColor,c=e.eventId,s=e.text,l=e.textColor,u=e.url,p=Object(w.getColorClassName)("color",l),d=Object(w.getColorClassName)("background-color",n),h=O()("wp-block-button__link",(t={"has-text-color":l||o},_()(t,p,p),_()(t,"has-background",n||i),_()(t,d,d),_()(t,"no-border-radius",0===r),t)),m={backgroundColor:d?void 0:i,color:p?void 0:o,borderRadius:r?r+"px":void 0};return Object(a.createElement)("div",{className:"wp-block-button"},Object(a.createElement)(w.RichText.Content,{className:h,href:u,id:"eventbrite-widget-".concat(c),rel:"noopener noreferrer",role:"button",style:m,tagName:"a",target:"_blank",value:s}))}(t):i&&Object(a.createElement)("a",{className:"eventbrite__direct-link",href:i},i)},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&(G.test(e.textContent)||$.test(e.textContent))},transform:function(e){return Object(c.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://www.eventbrite.com/e/test-event-tickets-123456789",eventId:123456789,useModal:!0}}};Object(r.a)("eventbrite",Z)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(16),c=/^#?[A-Fa-f0-9]{6}$/,s=function(e){return c.test(e)},l={backgroundColor:{type:"string",default:"ffffff",validator:s},submitButtonText:{type:"string",default:Object(i.__)("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:s},textColor:{type:"string",default:"4D5055",validator:s},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:function(e){return!e||e.startsWith("https://calendly.com/")}},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:s},customTextButtonColor:{type:"string",validator:s}},u=n(18),p=n.n(u),d=(n(79),n(5)),h=n(95),m=n.n(h),f=n(6),b=n(2),g=(n(80),Object(a.createElement)(b.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(b.G,{fill:"none",fillRule:"evenodd"},Object(a.createElement)(b.Rect,{height:"20.956522",rx:"3",stroke:"#656a74",strokeWidth:"2",width:"20.956522",x:"1",y:"2.043478"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"6.565217"}),Object(a.createElement)(b.Rect,{fill:"#656a74",height:"4.869565",rx:"1",width:"2",x:"14.652174"}),Object(a.createElement)(b.Path,{d:"m14.6086957 10.0869565c-.6956522-.57971012-1.6231885-.8695652-2.7826087-.8695652-1.7391305 0-3.47826091 1.5652174-3.47826091 3.6521739s1.73913041 3.6521739 3.47826091 3.6521739c1.1594202 0 2.0869565-.3478261 2.7826087-1.0434782",stroke:"#656a74"})))),v=n(51),j=n(32),y=/(^|\/\/)(calendly\.com[^"']*)/i,_=function(e){if(e){var t=function(e){var t=e.match(y);if(t)return"https://"+t[2]}(e);if(t){var n=function(e){var t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;var r=new URLSearchParams(n.search),a=r.get("background_color"),i=r.get("primary_color"),o=r.get("text_color"),c=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(c)&&(t.backgroundColor=a),i&&i.match(c)&&(t.primaryColor=i),o&&o.match(c)&&(t.textColor=o),t}(t),r=function(e){return e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0}(e);r&&(n.style=r);var a=function(e){var t=e.match(/false;"\>([^<]+)\<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/))?t[1]:void 0}(e);a&&(n.submitButtonText=a);var i=function(e){var t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]}(e);i&&(n.customTextButtonColor=i);var o=function(e){var t=e.match(/color: '([^']*?)'/);if(t)return t[1]}(e);return o&&(n.customBackgroundButtonColor=o),n}}},k=n(59);var O={title:Object(i.__)("Calendly","jetpack"),description:Object(i.__)("Embed a calendar for customers to schedule appointments","jetpack"),icon:g,category:"jetpack",keywords:[Object(i.__)("calendar","jetpack"),Object(i.__)("schedule","jetpack"),Object(i.__)("appointments","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:function(e){var t=e.attributes,n=e.className,r=e.clientId,o=e.setAttributes,c=Object(v.a)(l,t);Object(d.isEqual)(c,t)||o(c);var s,u,h=c.backgroundColor,y=c.submitButtonText,O=c.hideEventTypeDetails,w=c.primaryColor,E=c.textColor,C=c.style,x=c.url,S=Object(a.useState)(""),A=p()(S,2),F=A[0],P=A[1],T=Object(a.useState)(),M=p()(T,2),N=M[0],R=M[1],D=function(){return R(Object(a.createElement)(a.Fragment,null,Object(i.__)("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack")))},z=function(e){if(e){e.preventDefault();var t=_(F);if(t){var n=Object(v.a)(l,t);o(n)}else D()}else D()},I=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("form",{onSubmit:z},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)("div",{className:"".concat(n,"-learn-more")},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},Object(i.__)("Need help finding your embed code?","jetpack")))),L=Object(a.createElement)(b.Placeholder,{label:Object(i.__)("Calendly","jetpack"),instructions:Object(i.__)("Enter your Calendly web address or embed code below.","jetpack"),icon:Object(a.createElement)(f.BlockIcon,{icon:g}),notices:N&&Object(a.createElement)(b.Notice,{status:"error",isDismissible:!1},N)},I),B=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("div",{className:"".concat(n,"-overlay")}),Object(a.createElement)("iframe",{src:(s=m.a.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:O?1:0,background_color:h,primary_color:w,text_color:E}),"".concat(x,"?").concat(s)),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",style:{minWidth:"320px",height:"630px",width:"100%"},title:"Calendly"})),q=Object(a.createElement)(j.a,{submitButtonText:y,attributes:t,setAttributes:o}),U=Object(a.createElement)(a.Fragment,null,Object(a.createElement)("a",{style:{alignSelf:"flex-start",border:"none"},className:"wp-block-button__link"},y)),V=[{value:"inline",label:Object(i.__)("Inline","jetpack")},{value:"link",label:Object(i.__)("Link","jetpack")}],H=Object(a.createElement)(f.BlockControls,null,x&&Object(a.createElement)(b.Toolbar,{isCollapsed:!0,icon:"admin-appearance",label:Object(i.__)("Style","jetpack"),controls:V.map((function(e){return{title:e.label,isActive:e.value===C,onClick:function(){return o({style:e.value})}}})),popoverProps:{className:"is-calendly"}})),G=Object(a.createElement)(f.InspectorControls,null,x&&Object(a.createElement)(a.Fragment,null,Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Styles","jetpack")},Object(a.createElement)(k.a,{clientId:r,styleOptions:V,onSelectStyle:o,activeStyle:C,attributes:t,viewportWidth:500}))),Object(a.createElement)(b.PanelBody,{title:Object(i.__)("Calendar Settings","jetpack"),initialOpen:!1},Object(a.createElement)("form",{onSubmit:z,className:"".concat(n,"-embed-form-sidebar")},Object(a.createElement)("input",{type:"text",id:"embedCode",onChange:function(e){return P(e.target.value)},placeholder:Object(i.__)("Calendly web address or embed code…","jetpack"),value:F,className:"components-placeholder__input"}),Object(a.createElement)("div",null,Object(a.createElement)(b.Button,{isSecondary:!0,isLarge:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")))),Object(a.createElement)(b.ToggleControl,{label:Object(i.__)("Hide Event Type Details","jetpack"),checked:O,onChange:function(){return o({hideEventTypeDetails:!O})}})),x&&Object(a.createElement)(b.Notice,{className:"".concat(n,"-color-notice"),isDismissible:!1},Object(a.createElement)(b.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},Object(i.__)("Follow these instructions to change the colors in this block.","jetpack"))));return Object(a.createElement)("div",{className:n},G,H,x?"inline"===C?B:u?U:q:L)},save:function(e){var t=e.attributes.url;return Object(a.createElement)("a",{href:t},t)},attributes:l,example:{attributes:{submitButtonText:Object(i.__)("Schedule time with me","jetpack"),hideEventTypeDetails:!1,style:"inline",url:"https://calendly.com/wordpresscom/jetpack-block-example"}},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&y.test(e.textContent)},transform:function(e){var t=_(e.textContent);return Object(o.createBlock)("jetpack/calendly",t)}}]}};Object(r.a)("calendly",O)},function(e,t,n){"use strict";n.r(t);var r,a=n(17),i=n(1),o=n(0),c=n(5),s=n(6),l=n(2),u=n(26),p=function(e){var t,n=e.id,r=e.setRating,a=e.children;return Object(o.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(t=n,function(e){return e.keyCode===u.ENTER?r(t):null}),onClick:function(e){return function(){return r(e)}}(n)},a)},d=(n(217),n(134),{title:Object(i.__)("Star Rating","jetpack"),description:Object(i.__)("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:function(){return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(o.createElement)(l.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}))},keywords:[Object(i._x)("star","block search term","jetpack"),Object(i._x)("rating","block search term","jetpack"),Object(i._x)("review","block search term","jetpack")],category:"jetpack",example:{},styles:[{name:"filled",label:Object(i._x)("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:Object(i._x)("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:function(e){return function(t){var n=t.className,r=t.setAttributes,a=t.attributes,u=a.align,d=a.color,h=a.rating,m=a.maxRating,f=function(e){e===h&&Math.ceil(h)===h&&(e-=.5),r({rating:e})};return Object(o.createElement)(o.Fragment,null,Object(o.createElement)(s.BlockControls,null,Object(o.createElement)(s.AlignmentToolbar,{value:u,onChange:function(e){return r({align:e})}})),Object(o.createElement)("div",{className:n,style:{textAlign:u}},Object(c.range)(1,m+1).map((function(t){return Object(o.createElement)(p,{key:t,id:t,setRating:f},Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t-.5?null:"is-rating-unfilled",color:d})),Object(o.createElement)("span",null,Object(o.createElement)(e,{className:h>=t?null:"is-rating-unfilled",color:d})))}))),Object(o.createElement)(s.InspectorControls,null,Object(o.createElement)(l.PanelBody,{title:Object(i.__)("Settings","jetpack")},Object(o.createElement)(l.RangeControl,{label:Object(i.__)("Highest rating","jetpack"),value:m,onChange:function(e){return r({maxRating:e})},min:2,max:10}),Object(o.createElement)(s.PanelColorSettings,{title:Object(i.__)("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:d,onChange:function(e){return r({color:e})},label:Object(i.__)("Color","jetpack")}]}))))}}((function(e){var t=function(e){return e&&e.color?e.color:"currentColor"}(e),n=function(e){return e&&e.className?e.className:""}(e);return Object(o.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},Object(o.createElement)(l.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))})),save:(r="★",function(e){var t=e.className,n=e.attributes,a=n.align,i=n.rating,s=n.color;return Object(o.createElement)("figure",{className:t,style:{textAlign:a}},Object(c.range)(1,i+1).map((function(e){return Object(o.createElement)("span",{key:e,style:{color:s}},r)})))})});Object(a.a)("rating-star",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(161),n(24)),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(14),w=n(13),E=n(100),C=new(n.n(E).a),x=function(e){"A"===e.target.nodeName&&(window.confirm(Object(i.__)("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault())},S=function(e){var t=e.className,n=e.source,r=void 0===n?"":n;return Object(a.createElement)(a.RawHTML,{className:t,onClick:x},r.length?C.render(r):"")},A=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"input",null),_()(g()(n),"state",{activePanel:"editor"}),_()(g()(n),"bindInput",(function(e){n.input=e})),_()(g()(n),"updateSource",(function(e){return n.props.setAttributes({source:e})})),_()(g()(n),"handleKeyDown",(function(e){var t=n.props,r=t.attributes,a=t.removeBlock,i=r.source;8===e.keyCode&&""===i&&(a(),e.preventDefault())})),_()(g()(n),"toggleMode",(function(e){return function(){return n.setState({activePanel:e})}})),n}return j()(t,e),p()(t,[{key:"componentDidUpdate",value:function(e){e.isSelected&&!this.props.isSelected&&"preview"===this.state.activePanel&&this.toggleMode("editor")(),!e.isSelected&&this.props.isSelected&&"editor"===this.state.activePanel&&this.input&&this.input.focus()}},{key:"isEmpty",value:function(){var e=this.props.attributes.source;return!e||""===e.trim()}},{key:"renderToolbarButton",value:function(e,t){var n=this.state.activePanel;return Object(a.createElement)("button",{className:"components-tab-button ".concat(n===e?"is-active":""),onClick:this.toggleMode(e)},Object(a.createElement)("span",null,t))}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=t.source,c=this.state.activePanel;return!r&&this.isEmpty()?Object(a.createElement)("p",{className:"".concat(n,"__placeholder")},Object(i.__)("Write your _Markdown_ **here**…","jetpack")):Object(a.createElement)("div",{className:n},Object(a.createElement)(k.BlockControls,null,Object(a.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton("editor",Object(i.__)("Markdown","jetpack")),this.renderToolbarButton("preview",Object(i.__)("Preview","jetpack")))),"preview"!==c&&r?Object(a.createElement)(k.PlainText,{className:"".concat(n,"__editor"),onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":Object(i.__)("Markdown","jetpack"),innerRef:this.bindInput,value:o}):Object(a.createElement)(S,{className:"".concat(n,"__preview"),source:o}))}}]),t}(a.Component),F=Object(O.compose)([Object(w.withSelect)((function(e){return{currentBlockId:e("core/block-editor").getSelectedBlockClientId()}})),Object(w.withDispatch)((function(e,t){var n=t.currentBlockId;return{removeBlock:function(){return e("core/block-editor").removeBlocks(n)}}}))])(A),P=Object(i.__)("Try Markdown","jetpack"),T=Object(i.__)("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),M=Object(c.b)()||Object(c.a)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",N={title:Object(i.__)("Markdown","jetpack"),description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Use regular characters and punctuation to style text, links, and lists.","jetpack")),Object(a.createElement)(o.ExternalLink,{href:M},Object(i.__)("Support reference","jetpack"))),icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},Object(a.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),Object(a.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),category:"jetpack",keywords:[Object(i._x)("formatting","block search term","jetpack"),Object(i._x)("syntax","block search term","jetpack"),Object(i._x)("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:F,save:function(e){var t=e.attributes,n=e.className;return Object(a.createElement)(S,{className:n,source:t.source})},example:{attributes:{source:"## ## ".concat(P,"\n\n").concat(T)}}};Object(r.a)("markdown",N)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(6),k=[{height:250,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:Object(i.__)("Rectangle 300x250","jetpack"),tag:"mrec",width:300,editorPadding:30},{height:90,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:Object(i.__)("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:Object(i.__)("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),Object(a.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:Object(i.__)("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}],O=Object(i.__)("Pick an ad format","jetpack");function w(e){var t=e.value,n=e.onChange;return Object(a.createElement)(o.Dropdown,{position:"bottom right",renderToggle:function(e){var t=e.onToggle,n=e.isOpen;return Object(a.createElement)(o.Toolbar,{controls:[{icon:Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:O,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:function(e){var r=e.onClose;return Object(a.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},k.map((function(e){var i=e.tag,c=e.name,s=e.icon;return Object(a.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:s,isSelected:i===t,key:i,onClick:function(){n(i),r()},role:"menuitemcheckbox"},c)})))}})}n(239);var E=n(119),C=n.n(E),x=n(120),S=n.n(x),A=n(121),F=n.n(A),P=n(122),T=n.n(P),M=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(a))),y()(b()(n),"handleHideMobileChange",(function(e){n.props.setAttributes({hideMobile:!!e})})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.setAttributes,r=e.isSelected,c=t.format,s=t.hideMobile,l=k.filter((function(e){return e.tag===c}))[0],u=Object(a.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:Boolean(s),label:Object(i.__)("Hide ad on mobile views","jetpack"),onChange:this.handleHideMobileChange});return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(_.BlockControls,null,Object(a.createElement)(w,{value:c,onChange:function(e){return n({format:e})}})),Object(a.createElement)("div",{className:"wp-block-jetpack-wordads jetpack-wordads-".concat(c)},Object(a.createElement)("div",{className:"jetpack-wordads__ad",style:{width:l.width,height:l.height,backgroundImage:"url( ".concat(function(e){switch(e){case"leaderboard":return S.a;case"mobile_leaderboard":return F.a;case"wideskyscraper":return T.a;default:return C.a}}(c)," )"),backgroundSize:"cover"}}),r&&u))}}]),t}(a.Component),N=Object(i.__)("Ad","jetpack"),R=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),D={title:N,description:Object(a.createElement)(a.Fragment,null,Object(a.createElement)("p",null,Object(i.__)("Earn income by adding high quality ads to your post","jetpack")),Object(a.createElement)(o.ExternalLink,{href:"https://wordads.co/"},Object(i.__)("Learn all about WordAds","jetpack"))),icon:R,attributes:{align:{type:"string",default:"center"},format:{type:"string",default:"mrec"},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"jetpack",keywords:[Object(i.__)("ads","jetpack"),"WordAds",Object(i.__)("Advertisement","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:M,save:function(){return null}};Object(r.a)("wordads",D)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=(n(146),n(126),n(30)),s=n.n(c),l=n(7),u=n.n(l),p=n(11),d=n.n(p),h=n(8),m=n.n(h),f=n(9),b=n.n(f),g=n(4),v=n.n(g),j=n(10),y=n.n(j),_=n(3),k=n.n(_),O=n(23),w=n.n(O),E=n(12),C=n.n(E),x=n(58),S=n(6),A=n(15),F=n.n(A),P=n(5),T=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,c=new Array(r),s=0;s<r;s++)c[s]=arguments[s];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(c))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day,c=e.opening,s=e.closing;return Object(a.createElement)(a.Fragment,{key:t},Object(a.createElement)("div",{className:"business-hours__row"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")},0===t&&n.renderDayToggle()),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Opening","jetpack"),value:c,className:"business-hours__open",placeholder:"09:00",onChange:function(e){n.setHour(e,"opening",t)}}),Object(a.createElement)(o.TextControl,{type:"time",label:Object(i.__)("Closing","jetpack"),value:s,className:"business-hours__close",placeholder:"17:00",onChange:function(e){n.setHour(e,"closing",t)}})),Object(a.createElement)("div",{className:"business-hours__remove"},r.hours.length>1&&Object(a.createElement)(o.IconButton,{isSmall:!0,isLink:!0,icon:"trash",onClick:function(){n.removeInterval(t)}}))),t===r.hours.length-1&&Object(a.createElement)("div",{className:"business-hours__row business-hours-row__add"},Object(a.createElement)("div",{className:C()(r.name,"business-hours__day")}," "),Object(a.createElement)("div",{className:C()(r.name,"business-hours__hours")},Object(a.createElement)(o.IconButton,{isLink:!0,label:Object(i.__)("Add Hours","jetpack"),onClick:n.addInterval},Object(i.__)("Add Hours","jetpack"))),Object(a.createElement)("div",{className:"business-hours__remove"}," ")))})),k()(v()(n),"setHour",(function(e,t,r){var a=n.props,i=a.day,o=a.attributes;(0,a.setAttributes)({days:o.days.map((function(n){return n.name===i.name?F()({},n,{hours:n.hours.map((function(n,a){return a===r?F()({},n,k()({},t,e)):n}))}):n}))})})),k()(v()(n),"toggleClosed",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){if(t.name===r.name){var n=e?[{opening:"09:00",closing:"17:00"}]:[];return F()({},t,{hours:n})}return t}))})})),k()(v()(n),"addInterval",(function(){var e=n.props,t=e.day,r=e.attributes,a=e.setAttributes,i=r.days;t.hours.push({opening:"",closing:""}),a({days:i.map((function(e){return e.name===t.name?F()({},e,{hours:t.hours}):e}))})})),k()(v()(n),"removeInterval",(function(e){var t=n.props,r=t.day,a=t.attributes;(0,t.setAttributes)({days:a.days.map((function(t){return r.name===t.name?F()({},t,{hours:t.hours.filter((function(t,n){return e!==n}))}):t}))})})),n}return y()(t,e),d()(t,[{key:"isClosed",value:function(){var e=this.props.day;return Object(P.isEmpty)(e.hours)}},{key:"renderDayToggle",value:function(){var e=this.props,t=e.day,n=e.localization;return Object(a.createElement)(a.Fragment,null,Object(a.createElement)("span",{className:"business-hours__day-name"},n.days[t.name]),Object(a.createElement)(o.ToggleControl,{label:this.isClosed()?Object(i.__)("Closed","jetpack"):Object(i.__)("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}},{key:"renderClosed",value:function(){var e=this.props.day;return Object(a.createElement)("div",{className:"business-hours__row business-hours-row__closed"},Object(a.createElement)("div",{className:C()(e.name,"business-hours__day")},this.renderDayToggle()),Object(a.createElement)("div",{className:C()(e.name,"closed","business-hours__hours")}," "),Object(a.createElement)("div",{className:"business-hours__remove"}," "))}},{key:"render",value:function(){var e=this.props.day;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}]),t}(a.Component),M=n(18),N=n.n(M),R=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,o=new Array(r),c=0;c<r;c++)o[c]=arguments[c];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(o))),k()(v()(n),"renderInterval",(function(e,t){var r=n.props.day.hours;return Object(a.createElement)("span",{key:t},Object(i.sprintf)("%s - %s",n.formatTime(e.opening),n.formatTime(e.closing)),r.length>1+t&&Object(a.createElement)("span",null,", "))})),n}return y()(t,e),d()(t,[{key:"formatTime",value:function(e){var t=this.props.timeFormat,n=e.split(":"),r=N()(n,2),a=r[0],i=r[1],o=new Date;return!(!a||!i)&&(o.setHours(a),o.setMinutes(i),Object(x.date)(t,o))}},{key:"render",value:function(){var e=this,t=this.props,n=t.day,r=t.localization,o=n.hours.filter((function(t){return e.formatTime(t.opening)&&e.formatTime(t.closing)}));return Object(a.createElement)("div",{className:"jetpack-business-hours__item"},Object(a.createElement)("dt",{className:n.name},r.days[n.name]),Object(a.createElement)("dd",null,Object(P.isEmpty)(o)?Object(i._x)("Closed","business is closed on a full day","jetpack"):o.map(this.renderInterval),Object(a.createElement)("br",null)))}}]),t}(a.Component),D={days:{Sun:Object(i.__)("Sunday","jetpack"),Mon:Object(i.__)("Monday","jetpack"),Tue:Object(i.__)("Tuesday","jetpack"),Wed:Object(i.__)("Wednesday","jetpack"),Thu:Object(i.__)("Thursday","jetpack"),Fri:Object(i.__)("Friday","jetpack"),Sat:Object(i.__)("Saturday","jetpack")},startOfWeek:0},z=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=m()(this,(e=b()(t)).call.apply(e,[this].concat(a))),k()(v()(n),"state",{localization:D,hasFetched:!1}),n}return y()(t,e),d()(t,[{key:"componentDidMount",value:function(){this.apiFetch()}},{key:"apiFetch",value:function(){var e=this;this.setState({data:D},(function(){w()({path:"/wpcom/v2/business-hours/localized-week"}).then((function(t){e.setState({localization:t,hasFetched:!0})}),(function(){e.setState({localization:D,hasFetched:!0})}))}))}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,l=n.days,u=this.state,p=u.localization,d=u.hasFetched,h=p.startOfWeek,m=l.concat(l.slice(0,h)).slice(h);if(!d)return Object(a.createElement)(o.Placeholder,{icon:Object(a.createElement)(S.BlockIcon,{icon:B}),label:Object(i.__)("Loading business hours","jetpack")});if(!c){var f=Object(x.__experimentalGetSettings)().formats.time;return Object(a.createElement)("dl",{className:C()(r,"jetpack-business-hours")},m.map((function(e,t){return Object(a.createElement)(R,{key:t,day:e,localization:p,timeFormat:f})})))}return Object(a.createElement)("div",{className:C()(r,"is-edit")},m.map((function(t,n){return Object(a.createElement)(T,s()({key:n,day:t,localization:p},e.props))})))}}]),t}(a.Component),I=n(20),L=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],B=Object(I.a)(Object(a.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),q={title:Object(i.__)("Business Hours","jetpack"),description:Object(i.__)("Display opening hours for your business.","jetpack"),icon:B,category:"jetpack",supports:{html:!0},keywords:[Object(i._x)("opening hours","block search term","jetpack"),Object(i._x)("closing time","block search term","jetpack"),Object(i._x)("schedule","block search term","jetpack")],attributes:{days:{type:"array",default:L}},edit:function(e){return Object(a.createElement)(z,e)},save:function(){return null},example:{attributes:{days:L}}};Object(r.a)("business-hours",q)},function(e,t,n){"use strict";n.r(t);n(36);var r=n(21),a=n.n(r),i=n(0),o=n(16),c=n(53);Object(o.setCategories)([].concat(a()(Object(o.getCategories)().filter((function(e){return"jetpack"!==e.slug}))),[{slug:"jetpack",title:"Jetpack",icon:Object(i.createElement)(c.a,null)}]));var s,l,u,p,d=n(15),h=n.n(d),m=n(23),f=n.n(m),b=n(13),g=n(1),v=(n(78),n(29)),j=n(35),y=n(24);function _(){var e=Object(j.a)();return void 0!==typeof window&&window.location&&e?Object(y.b)()||Object(y.a)()?"https://wordpress.com/plans/my-plan/".concat(e):"".concat(window.location.protocol,"//").concat(e.replace("::","/"),"/wp-admin/admin.php?page=jetpack#/my-plan"):null}if(regeneratorRuntime.async((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0===typeof window||!window.location){e.next=16;break}if(!Object(v.parse)(window.location.href,!0).query.plan_upgraded){e.next=16;break}if(s=null,e.prev=4,!Object(y.b)()){e.next=7;break}return e.abrupt("break",16);case 7:return e.next=9,regeneratorRuntime.awrap(f()({path:"/jetpack/v4/site"}));case 9:l=e.sent,u=JSON.parse(l.data),s=u.plan.product_name;case 12:return e.prev=12,p=_(),Object(b.dispatch)("core/notices").createNotice("success",s?Object(g.sprintf)(Object(g.__)("Congratulations! Your site is now on the %s plan.","jetpack"),s):Object(g.__)("Congratulations! Your site is now on a paid plan.","jetpack"),h()({isDismissible:!0},p&&{actions:[{url:_(),label:Object(g.__)("View my plan","jetpack")}]})),e.finish(12);case 16:case"end":return e.stop()}}),null,null,[[4,,12,16]]),void 0!==typeof window&&window.location){var k=Object(v.parse)(window.location.href,!0).query;k.stripe_connect_success?Object(b.dispatch)("core/notices").createNotice("success",Object(g.__)("Congrats! Your site is now connected to Stripe. You can start making money by adding your first subscription!","jetpack")):k.stripe_connect_cancelled&&Object(b.dispatch)("core/notices").createNotice("error",Object(g.__)("You cancelled connecting your site to Stripe.","jetpack"))}var O=n(50);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){var w=window.Jetpack_Editor_Initial_State.tracksUserData,E=w.userid,C=w.username;O.a.initialize(E,C,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(16),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(5),O=n(6),w=n(23),E=n.n(w),C=n(31);function x(e){if(!F.test(e))return"";var t=Object(C.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}var S=/^\s*https?:\/\/pin\.it\//i,A=function(e){function t(){var e;return l()(this,t),e=h()(this,f()(t).apply(this,arguments)),_()(g()(e),"resolveRedirect",(function(){var t=e.props.attributes.url;e.fetchRequest=E()({path:"/wpcom/v2/resolve-redirect/".concat(t)}),e.fetchRequest.then((function(t){e.fetchRequest=null,e.props.setAttributes({url:t.url}),e.setState({resolvingRedirect:!1,editedUrl:t.url})}),(function(t){"abort"!==t.statusText&&(e.fetchRequest=null,e.setState({resolvingRedirect:!1,editingUrl:!0}))}))})),_()(g()(e),"hideOverlay",(function(){e.setState({interactive:!0})})),_()(g()(e),"setUrl",(function(t){t&&t.preventDefault();var n=e.state.editedUrl;e.props.setAttributes({url:n}),e.setState({editingUrl:!1}),S.test(n)&&e.setState({resolvingRedirect:!0})})),e.state={editedUrl:e.props.attributes.url||"",editingUrl:!1,resolvingRedirect:S.test(e.props.attributes.url),interactive:!1},e}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentDidUpdate",value:function(e,t){!t.resolvingRedirect&&this.state.resolvingRedirect&&this.resolveRedirect()}},{key:"componentWillUnmount",value:function(){Object(k.invoke)(this.fetchRequest,["abort"])}},{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,s=n.url,l=this.state,u=l.editedUrl,p=l.interactive,d=l.editingUrl;if(l.resolvingRedirect)return Object(a.createElement)("div",{className:"wp-block-embed is-loading"},Object(a.createElement)(o.Spinner,null),Object(a.createElement)("p",null,Object(i.__)("Embedding…")));var h=x(s),m="<a data-pin-do='".concat(h,"' href='").concat(s,"'></a>"),f=s&&!h,b=Object(a.createElement)(O.BlockControls,null,Object(a.createElement)(o.Toolbar,null,Object(a.createElement)(o.IconButton,{className:"components-toolbar__control",label:Object(i.__)("Edit URL","jetpack"),icon:"edit",onClick:function(){return e.setState({editingUrl:!0})}})));return d||!s||f?Object(a.createElement)("div",{className:r},b,Object(a.createElement)(o.Placeholder,{label:Object(i.__)("Pinterest","jetpack"),icon:Object(a.createElement)(O.BlockIcon,{icon:T})},Object(a.createElement)("form",{onSubmit:this.setUrl},Object(a.createElement)("input",{type:"url",value:u,className:"components-placeholder__input","aria-label":Object(i.__)("Pinterest URL","jetpack"),placeholder:Object(i.__)("Enter URL to embed here…","jetpack"),onChange:function(t){return e.setState({editedUrl:t.target.value})}}),Object(a.createElement)(o.Button,{isLarge:!0,isSecondary:!0,type:"submit"},Object(i._x)("Embed","button label","jetpack")),f&&Object(a.createElement)("p",{className:"components-placeholder__error"},Object(i.__)("Sorry, this content could not be embedded.","jetpack"),Object(a.createElement)("br",null),Object(a.createElement)(o.Button,{isLarge:!0,onClick:function(){return function(e,t){var n=Object(a.createElement)("a",{href:e},e);t(Object(c.createBlock)("core/paragraph",{content:Object(a.renderToString)(n)}))}(u,e.props.onReplace)}},Object(i._x)("Convert block to link","button label","jetpack")))))):Object(a.createElement)("div",{className:r},b,Object(a.createElement)("div",null,Object(a.createElement)(o.SandBox,{html:m,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:this.hideOverlay}),!p&&Object(a.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:this.hideOverlay})))}}],[{key:"getDerivedStateFromProps",value:function(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}}]),t}(a.Component),F=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,P=Object(i.__)("Pinterest","jetpack"),T=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Object(a.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(o.G,null,Object(a.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),M={title:P,description:Object(i.__)("Embed a Pinterest pin, board, or user.","jetpack"),icon:T,category:"jetpack",supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:A,save:function(e){var t=e.attributes,n=e.className,r=t.url;return x(r)?Object(a.createElement)("div",{className:n},Object(a.createElement)("a",{"data-pin-do":x(r),href:r})):null},transforms:{from:[{type:"raw",isMatch:function(e){return"P"===e.nodeName&&F.test(e.textContent)},transform:function(e){return Object(c.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}}]},example:{attributes:{url:"https://pinterest.com/anapinskywalker/"}}};Object(r.a)("pinterest",M)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(20),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(6),O=n(13),w=n(12),E=n.n(w),C=n(33),x=[{value:C.b,label:Object(i.__)("Show after threshold","jetpack")},{value:C.c,label:Object(i.__)("Show before threshold","jetpack")}],S=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{isThresholdValid:!0}),_()(g()(n),"setCriteria",(function(e){return n.props.setAttributes({criteria:e})})),_()(g()(n),"setThreshold",(function(e){if(/^\d+$/.test(e)&&+e>0)return n.props.setAttributes({threshold:+e}),void n.setState({isThresholdValid:!0});n.setState({isThresholdValid:!1})})),n}return j()(t,e),p()(t,[{key:"getNoticeLabel",value:function(){return this.props.attributes.criteria===C.b?Object(i.sprintf)(Object(i._n)("This block will only appear to people who have visited this page more than once.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):Object(i.sprintf)(Object(i._n)("This block will only appear to people who are visiting this page for the first time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}},{key:"render",value:function(){return Object(a.createElement)("div",{className:E()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},Object(a.createElement)(o.Placeholder,{icon:F,label:Object(i.__)("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":Object(i.__)("Please enter a valid number.","jetpack"),label:Object(i.__)("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),Object(a.createElement)(o.RadioControl,{label:Object(i.__)("Visibility","jetpack"),selected:this.props.attributes.criteria,options:x,onChange:this.setCriteria})),Object(a.createElement)(o.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),Object(a.createElement)(k.InnerBlocks,null))}}]),t}(a.Component),A=Object(O.withSelect)((function(e,t){var n=e("core/block-editor"),r=n.isBlockSelected,a=n.hasSelectedInnerBlock;return{isSelected:r(t.clientId)||a(t.clientId)}}))(S),F=(n(228),Object(c.a)(Object(a.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"}))),P={attributes:{criteria:{type:"string",default:C.b},threshold:{type:"number",default:C.d}},category:"jetpack",description:Object(i.__)("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:F,keywords:[Object(i._x)("return","block search term","jetpack"),Object(i._x)("visitors","block search term","jetpack"),Object(i._x)("visibility","block search term","jetpack")],supports:{html:!1},title:Object(i.__)("Repeat Visitor","jetpack"),edit:A,save:function(e){var t=e.className;return Object(a.createElement)("div",{className:t},Object(a.createElement)(k.InnerBlocks.Content,null))},example:{attributes:{criteria:C.b,threshold:C.d},innerBlocks:[{name:"core/paragraph",attributes:{content:Object(i.__)("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}};Object(r.a)("repeat-visitor",P)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(21),s=n.n(c),l=n(7),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(23),k=n.n(_),O=n(12),w=n.n(O),E=n(32),C=n(6),x=n(11),S=n.n(x),A=function(e){function t(){var e,n;u()(this,t);for(var r=arguments.length,i=new Array(r),c=0;c<r;c++)i[c]=arguments[c];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"state",{interest_categories:[]}),y()(b()(n),"retrieveGroups",(function(){k()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((function(e){var t=e.interest_categories;n.setState({interest_categories:t})}))})),y()(b()(n),"render",(function(){var e=n.state.interest_categories,t=n.props,r=t.interests,i=t.onChange;return Object(a.createElement)(a.Fragment,null,e&&(e||[]).map((function(e){return e.interests.map((function(e){return Object(a.createElement)(o.CheckboxControl,{label:e.name,value:e.id,checked:r.includes(e.id),onChange:function(t){return i(e.id,t)},key:e.id})}))})))})),n}return v()(t,e),S()(t,[{key:"componentDidMount",value:function(){this.retrieveGroups()}}]),t}(a.Component),F=A;A.defaultProps={interests:[],onChange:function(){return null}};var P=function(e){function t(){var e;return u()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/mailchimp",method:"GET"};k()(t).then((function(t){var n=t.connect_url,r="connected"===t.code?1:2;e.setState({connected:r,connectURL:n})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"auditionNotification",(function(t){e.setState({audition:t}),e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(e.clearAudition,3e3)})),y()(b()(e),"clearAudition",(function(){e.setState({audition:null})})),y()(b()(e),"updateProcessingText",(function(t){(0,e.props.setAttributes)({processingLabel:t}),e.auditionNotification("processing")})),y()(b()(e),"updateSuccessText",(function(t){(0,e.props.setAttributes)({successLabel:t}),e.auditionNotification("success")})),y()(b()(e),"updateErrorText",(function(t){(0,e.props.setAttributes)({errorLabel:t}),e.auditionNotification("error")})),y()(b()(e),"updateEmailPlaceholder",(function(t){(0,e.props.setAttributes)({emailPlaceholder:t}),e.clearAudition()})),y()(b()(e),"labelForAuditionType",(function(t){var n=e.props.attributes,r=n.processingLabel,a=n.successLabel,i=n.errorLabel;return"processing"===t?r:"success"===t?a:"error"===t?i:null})),y()(b()(e),"roleForAuditionType",(function(e){return"error"===e?"alert":"status"})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,l=t.noticeUI,u=t.setAttributes,p=e.state,d=p.audition,h=p.connected,m=p.connectURL,f=n.emailPlaceholder,b=n.consentText,g=n.interests,v=n.processingLabel,j=n.successLabel,_=n.errorLabel,k=n.preview,O=n.signupFieldTag,x=n.signupFieldValue,S="wp-block-jetpack-mailchimp_",A=Object(a.createElement)(o.Placeholder,{icon:M,notices:c},Object(a.createElement)(o.Spinner,null)),P=Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:M,label:Object(i.__)("Mailchimp","jetpack"),notices:c,instructions:Object(i.__)("You need to connect your Mailchimp account and choose a list in order to start collecting Email subscribers.","jetpack")},Object(a.createElement)("div",null,Object(a.createElement)(o.Button,{isDefault:!0,isLarge:!0,href:m,target:"_blank"},Object(i.__)("Set up Mailchimp form","jetpack"))),Object(a.createElement)(o.Button,{isLink:!0,onClick:e.apiCall},Object(i.__)("Re-check Connection","jetpack"))),T=Object(a.createElement)(C.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Text Elements","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Email Placeholder","jetpack"),value:f,onChange:e.updateEmailPlaceholder})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Notifications","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Processing text","jetpack"),value:v,onChange:e.updateProcessingText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Success text","jetpack"),value:j,onChange:e.updateSuccessText}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Error text","jetpack"),value:_,onChange:e.updateErrorText})),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Groups","jetpack")},Object(a.createElement)(F,{interests:g,onChange:function(e,t){var n=s()(new Set([].concat(s()(g),[e]))).filter((function(n){return!(n===e&&!t)&&n}));u({interests:n})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},Object(i.__)("Learn about groups","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Signup Location Tracking","jetpack")},Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Tag","jetpack"),placeholder:Object(i.__)("SIGNUP"),value:O,onChange:function(e){return u({signupFieldTag:e})}}),Object(a.createElement)(o.TextControl,{label:Object(i.__)("Signup Field Value","jetpack"),placeholder:Object(i.__)("website"),value:x,onChange:function(e){return u({signupFieldValue:e})}}),Object(a.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},Object(i.__)("Learn about signup location tracking","jetpack"))),Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Mailchimp Connection","jetpack")},Object(a.createElement)(o.ExternalLink,{href:m},Object(i.__)("Manage Connection","jetpack")))),N=w()(r,y()({},"".concat(S,"notication-audition"),d)),R=Object(a.createElement)("div",{className:N},Object(a.createElement)(o.TextControl,{"aria-label":f,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:function(){return!1},placeholder:f,title:Object(i.__)("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),Object(a.createElement)(E.a,e.props),Object(a.createElement)(C.RichText,{tagName:"p",placeholder:Object(i.__)("Write consent text","jetpack"),value:b,onChange:function(e){return u({consentText:e})},inlineToolbar:!0}),d&&Object(a.createElement)("div",{className:"".concat(S,"notification ").concat(S).concat(d),role:e.roleForAuditionType(d)},e.labelForAuditionType(d))),D=R;return Object(a.createElement)(a.Fragment,null,l,k&&D,!k&&0===h&&A,!k&&2===h&&P,!k&&1===h&&T,!k&&1===h&&R)})),e.state={audition:null,connected:0,connectURL:null},e.timeout=null,e}return v()(t,e),t}(a.Component),T=Object(o.withNotices)(P),M=(n(156),Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"}))),N={title:Object(i.__)("Mailchimp","jetpack"),icon:M,description:Object(i.__)("A form enabling readers to join a Mailchimp list.","jetpack"),category:"jetpack",keywords:[Object(i._x)("email","block search term","jetpack"),Object(i._x)("subscription","block search term","jetpack"),Object(i._x)("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:Object(i.__)("Enter your email","jetpack")},submitButtonText:{type:"string",default:Object(i.__)("Join my email list","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:Object(i.__)("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:Object(i.__)("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:Object(i.__)("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:Object(i.__)("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:T,save:function(){return null},example:{attributes:{preview:!0}}};Object(r.a)("mailchimp",N)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(2),o=n(1),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(32),w=n(23),E=n.n(w),C=n(5),x=n(45),S=n(49),A=n(31),F=n(14),P=n(13),T=n(6),M=n(40),N=n(56),R=n.n(N),D=n(50),z=n(57),I=(n(218),function(e){var t=e.stripeConnectUrl;return Object(a.createElement)(z.a,{buttonLabel:Object(o.__)("Connect","jetpack"),icon:Object(a.createElement)(R.a,{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:t,onClick:function(e){D.a.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:e})},title:Object(o.__)("Connect to Stripe to use this block on your site","jetpack"),subtitle:Object(o.__)("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})}),L=function(e){function t(){var e;s()(this,t),e=d()(this,m()(t).apply(this,arguments)),y()(b()(e),"componentDidMount",(function(){e.apiCall()})),y()(b()(e),"onError",(function(t){var n=e.props.noticeOperations;n.removeAllNotices(),n.createErrorNotice(t)})),y()(b()(e),"apiCall",(function(){var t={path:"/wpcom/v2/memberships/status",method:"GET"};E()(t).then((function(t){if(t.errors&&Object.values(t.errors)&&Object.values(t.errors)[0][0])return e.setState({connected:null,connectURL:2}),void e.onError(Object.values(t.errors)[0][0]);var n=t.connect_url,r=t.products,a=t.should_upgrade_to_access_memberships,i=t.upgrade_url,o=t.site_slug,c=t.connected_account_id?1:2;e.setState({connected:c,connectURL:n,products:r,shouldUpgrade:a,upgradeURL:i,siteSlug:o})}),(function(t){e.setState({connected:2,connectURL:null}),e.onError(t.message)}))})),y()(b()(e),"getCurrencyList",V.map((function(e){var t=Object(x.a)(e).symbol;return{value:e,label:t===e?e:"".concat(e," ").concat(Object(C.trimEnd)(t,"."))}}))),y()(b()(e),"handleCurrencyChange",(function(t){return e.setState({editedProductCurrency:t})})),y()(b()(e),"handleRenewIntervalChange",(function(t){return e.setState({editedProductRenewInterval:t})})),y()(b()(e),"handlePriceChange",(function(t){t=parseFloat(t),e.setState({editedProductPrice:t,editedProductPriceValid:!isNaN(t)&&t>=5})})),y()(b()(e),"handleTitleChange",(function(t){return e.setState({editedProductTitle:t,editedProductTitleValid:t.length>0})})),y()(b()(e),"saveProduct",(function(){if(e.state.editedProductTitle&&0!==e.state.editedProductTitle.length)if(!e.state.editedProductPrice||isNaN(e.state.editedProductPrice)||e.state.editedProductPrice<5)e.setState({editedProductPriceValid:!1});else{e.setState({addingMembershipAmount:2});var t={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:e.state.editedProductCurrency,price:e.state.editedProductPrice,title:e.state.editedProductTitle,interval:e.state.editedProductRenewInterval}};E()(t).then((function(t){e.setState({addingMembershipAmount:0,products:e.state.products.concat([{id:t.id,title:t.title,interval:t.interval,price:t.price,currency:t.currency}])}),e.setMembershipAmount(t.id)}),(function(t){e.setState({addingMembershipAmount:1}),e.onError(t.message)}))}else e.setState({editedProductTitleValid:!1})})),y()(b()(e),"renderAmount",(function(e){var t=Object(S.a)(parseFloat(e.price),e.currency);return"1 month"===e.interval?Object(o.sprintf)(Object(o.__)("%s / month","jetpack"),t):"1 year"===e.interval?Object(o.sprintf)(Object(o.__)("%s / year","jetpack"),t):"one-time"===e.interval?t:Object(o.sprintf)(Object(o.__)("%s / %s","jetpack"),t,e.interval)})),y()(b()(e),"renderAddMembershipAmount",(function(t){return 0!==e.state.addingMembershipAmount||t?2!==e.state.addingMembershipAmount?Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"membership-button__price-container"},Object(a.createElement)(i.SelectControl,{className:"membership-button__field membership-button__field-currency",label:Object(o.__)("Currency","jetpack"),onChange:e.handleCurrencyChange,options:e.getCurrencyList,value:e.state.editedProductCurrency}),Object(a.createElement)(i.TextControl,{label:Object(o.__)("Price","jetpack"),className:k()({"membership-membership-button__field":!0,"membership-button__field-price":!0,"membership-button__field-error":!e.state.editedProductPriceValid}),onChange:e.handlePriceChange,placeholder:Object(S.a)(0,e.state.editedProductCurrency),required:!0,min:"5.00",step:"1",type:"number",value:e.state.editedProductPrice||""})),Object(a.createElement)(i.TextControl,{className:k()({"membership-button__field":!0,"membership-button__field-error":!e.state.editedProductTitleValid}),label:Object(o.__)("Describe your subscription in a few words","jetpack"),onChange:e.handleTitleChange,placeholder:Object(o.__)("Subscription description","jetpack"),value:e.state.editedProductTitle}),Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Renew interval","jetpack"),onChange:e.handleRenewIntervalChange,options:[{label:Object(o.__)("Monthly","jetpack"),value:"1 month"},{label:Object(o.__)("Yearly","jetpack"),value:"1 year"}],value:e.state.editedProductRenewInterval}),Object(a.createElement)("div",null,Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:e.saveProduct},Object(o.__)("Add this plan","jetpack")),Object(a.createElement)(i.Button,{isLarge:!0,className:"membership-button__field-button",onClick:function(){return e.setState({addingMembershipAmount:0})}},Object(o.__)("Cancel","jetpack")))):void 0:Object(a.createElement)(i.Button,{isPrimary:!0,isLarge:!0,onClick:function(){return e.setState({addingMembershipAmount:1})}},Object(o.__)("Add a plan","jetpack"))})),y()(b()(e),"getFormattedPriceByProductId",(function(t){var n=e.state.products.filter((function(e){return parseInt(e.id)===parseInt(t)})).pop();return Object(S.a)(parseFloat(n.price),n.currency)})),y()(b()(e),"setMembershipAmount",(function(t){return e.props.setAttributes({planId:t,submitButtonText:e.getFormattedPriceByProductId(t)+Object(o.__)(" Contribution","jetpack")})})),y()(b()(e),"renderMembershipAmounts",(function(){return Object(a.createElement)("div",null,e.state.products.map((function(t){return Object(a.createElement)(i.Button,{className:"membership-button__field-button",isLarge:!0,key:t.id,onClick:function(){return e.setMembershipAmount(t.id)}},e.renderAmount(t))})))})),y()(b()(e),"renderDisclaimer",(function(){return Object(a.createElement)("div",{className:"membership-button__disclaimer"},Object(a.createElement)(i.ExternalLink,{href:"https://en.support.wordpress.com/recurring-payments-button/#related-fees"},Object(o.__)("Read more about Recurring Payments and related fees.","jetpack")))})),y()(b()(e),"render",(function(){var t=e.props,n=t.attributes,r=t.className,c=t.notices,s=e.state,l=s.connected,u=s.products,p=n.align,d=e.getConnectUrl(),h=Object(a.createElement)(T.InspectorControls,null,Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Product","jetpack")},Object(a.createElement)(i.SelectControl,{label:Object(o.__)("Payment plan","jetpack"),value:e.props.attributes.planId,onChange:e.setMembershipAmount,options:e.state.products.map((function(t){return{label:e.renderAmount(t),value:t.id,key:t.id}}))})),Object(a.createElement)(i.PanelBody,{title:Object(o.__)("Management","jetpack")},Object(a.createElement)(i.ExternalLink,{href:"https://wordpress.com/earn/payments/".concat(e.state.siteSlug)},Object(o.__)("See your earnings, subscriber list, and products.","jetpack")))),m=k()(r,["wp-block-button__link","components-button","is-primary","is-button","align".concat(p)]),f=Object(a.createElement)(O.a,{className:m,submitButtonText:e.props.attributes.submitButtonText,attributes:e.props.attributes,setAttributes:e.props.setAttributes});return Object(a.createElement)(a.Fragment,null,e.props.noticeUI,!e.hasUpgradeNudge&&!e.state.shouldUpgrade&&2===l&&Object(a.createElement)(I,{blockName:"recurring-payments",stripeConnectUrl:d}),!e.hasUpgradeNudge&&e.state.shouldUpgrade&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c,instructions:Object(o.__)("You'll need to upgrade your plan to use the Recurring Payments button.","jetpack")},Object(a.createElement)(i.Button,{isSecondary:!0,isLarge:!0,href:e.state.upgradeURL,target:"_blank"},Object(o.__)("Upgrade Your Plan","jetpack")),e.renderDisclaimer())),(0===l||2===e.state.addingMembershipAmount)&&!e.props.attributes.planId&&Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),notices:c},Object(a.createElement)(i.Spinner,null)),!e.state.shouldUpgrade&&!e.props.attributes.planId&&1===l&&0===u.length&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, first add at least one payment plan.","jetpack")),e.renderAddMembershipAmount(!0),e.renderDisclaimer()))),!e.state.shouldUpgrade&&!e.props.attributes.planId&&2!==e.state.addingMembershipAmount&&1===l&&u.length>0&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},Object(a.createElement)(i.Placeholder,{icon:Object(a.createElement)(T.BlockIcon,{icon:q}),label:Object(o.__)("Recurring Payments","jetpack"),notices:c},Object(a.createElement)("div",{className:"components-placeholder__instructions"},Object(a.createElement)("p",null,Object(o.__)("To use this block, select a previously created payment plan.","jetpack")),e.renderMembershipAmounts(),Object(a.createElement)("p",null,Object(o.__)("Or a new one.","jetpack")),e.renderAddMembershipAmount(!1),e.renderDisclaimer()))),e.state.products&&h,((e.hasUpgradeNudge||!e.state.shouldUpgrade)&&0!==l||e.props.attributes.planId)&&f,e.hasUpgradeNudge&&2===l&&Object(a.createElement)("div",{className:"wp-block-jetpack-recurring-payments disclaimer-only"},e.renderDisclaimer()))})),e.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],siteSlug:"",editedProductCurrency:"USD",editedProductPrice:5,editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},e.timeout=null;var n=Object(M.a)("recurring-payments");return e.hasUpgradeNudge=!n.available&&"missing_plan"===n.unavailableReason,e}return v()(t,e),u()(t,[{key:"getConnectUrl",value:function(){var e,t=this.props.postId,n=this.state.connectURL;if(!Object(A.isURL)(n))return null;if(!t)return n;try{var r=Object(A.getQueryArg)(n,"state");e=JSON.parse(atob(r))}catch(a){return n}return e.from_editor_post_id=t,Object(A.addQueryArgs)(n,{state:btoa(JSON.stringify(e))})}}]),t}(a.Component),B=Object(F.compose)([Object(P.withSelect)((function(e){return{postId:e("core/editor").getCurrentPostId()}})),i.withNotices])(L),q=(n(226),Object(a.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},Object(a.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),Object(a.createElement)(i.G,null,Object(a.createElement)(i.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})))),U={title:Object(o.__)("Recurring Payments button","jetpack"),icon:q,description:Object(o.__)("Button allowing you to sell subscription products.","jetpack"),category:"jetpack",keywords:[Object(o._x)("sell","block search term","jetpack"),Object(o._x)("subscription","block search term","jetpack"),"stripe"],attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},edit:B,save:function(){return null},supports:{html:!1,align:!0}},V=["USD","AUD","BRL","CAD","CHF","DKK","EUR","GBP","HKD","JPY","MXN","NOK","NZD","SEK","SGD"];Object(r.a)("recurring-payments",U)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(5),c=n(2),s=n(7),l=n.n(s),u=n(11),p=n.n(u),d=n(8),h=n.n(d),m=n(9),f=n.n(m),b=n(4),g=n.n(b),v=n(10),j=n.n(v),y=n(3),_=n.n(y),k=n(23),O=n.n(k),w=n(32),E=function(e){function t(){var e,n;l()(this,t);for(var r=arguments.length,a=new Array(r),i=0;i<r;i++)a[i]=arguments[i];return n=h()(this,(e=f()(t)).call.apply(e,[this].concat(a))),_()(g()(n),"state",{subscriberCountString:""}),n}return j()(t,e),p()(t,[{key:"componentDidMount",value:function(){this.get_subscriber_count()}},{key:"render",value:function(){var e=this.props,t=e.attributes,n=e.className,r=e.isSelected,o=e.setAttributes,s=t.subscribePlaceholder,l=t.showSubscribersTotal;return r?Object(a.createElement)("div",{className:n,role:"form"},Object(a.createElement)(c.ToggleControl,{label:Object(i.__)("Show total subscribers","jetpack"),checked:l,onChange:function(){o({showSubscribersTotal:!l})}}),Object(a.createElement)(c.TextControl,{placeholder:s,disabled:!0,onChange:function(){}}),Object(a.createElement)(w.a,this.props)):Object(a.createElement)("div",{className:n,role:"form"},l&&Object(a.createElement)("p",{role:"heading"},this.state.subscriberCountString),Object(a.createElement)(c.TextControl,{placeholder:s}),Object(a.createElement)(w.a,this.props))}},{key:"get_subscriber_count",value:function(){var e=this;O()({path:"/wpcom/v2/subscribers/count"}).then((function(t){t.hasOwnProperty("count")?e.setState({subscriberCountString:Object(i.sprintf)(Object(i._n)("Join %s other subscriber","Join %s other subscribers",t.count,"jetpack"),t.count)}):e.setState({subscriberCountString:Object(i.__)("Subscriber count unavailable","jetpack")})}))}},{key:"onChangeSubmit",value:function(e){this.props.setAttributes({submitButtonText:e})}}]),t}(a.Component);var C=n(20),x={title:Object(i.__)("Subscription Form","jetpack"),description:Object(a.createElement)("p",null,Object(i.__)("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:Object(C.a)(Object(a.createElement)(c.Path,{d:"M23 16v2h-3v3h-2v-3h-3v-2h3v-3h2v3h3zM20 2v9h-4v3h-3v4H4c-1.1 0-2-.9-2-2V2h18zM8 13v-1H4v1h4zm3-3H4v1h7v-1zm0-2H4v1h7V8zm7-4H4v2h14V4z"})),category:"jetpack",keywords:[Object(i._x)("subscribe","block search term","jetpack"),Object(i._x)("join","block search term","jetpack"),Object(i._x)("follow","block search term","jetpack")],attributes:{subscribePlaceholder:{type:"string",default:Object(i.__)("Email Address","jetpack")},subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:Object(i.__)("Subscribe","jetpack")},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},edit:E,save:function(e){var t=e.attributes,n=t.showSubscribersTotal,r=t.submitButtonClasses,i=t.customBackgroundButtonColor,o=t.customTextButtonColor,c=t.submitButtonText;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="'.concat(i,'" custom_text_button_color="').concat(o,'" submit_button_text="').concat(c,'" submit_button_classes="').concat(r,'" show_subscribers_total="').concat(n,'" ]'))},example:{attributes:{}},deprecated:[{attributes:{subscribeButton:{type:"string",default:Object(i.__)("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:function(e){return{subscribeButton:"",submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal,customBackgroundButtonColor:"",customTextButtonColor:"",submitButtonClasses:""}},isEligible:function(e){return!!Object(o.isEmpty)(e.subscribeButton)},save:function(e){var t=e.attributes;return Object(a.createElement)(a.RawHTML,null,'[jetpack_subscription_form show_subscribers_total="'.concat(t.showSubscribersTotal,'" show_only_email_and_button="true"]'))}}]};Object(r.a)("subscriptions",x)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{areLikesEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_likes_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.areLikesEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show likes.","jetpack"),checked:t,onChange:function(e){n({jetpack_likes_enabled:e})}})))}))},h=n(37);Object(h.a)("likes",d)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(10),b=n.n(f),g=n(6),v=n(5),j=n(13),y=n(14);function _(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},Object(i.__)("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&Object(a.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":Object(i.__)("Placeholder image","jetpack")},Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},Object(a.createElement)("title",null,Object(i.__)("Grey square","jetpack")),Object(a.createElement)(o.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),Object(a.createElement)(o.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)("title",null,Object(i.__)("Icon for image","jetpack")),Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},Object(i.__)("August 3, 2018","jetpack")),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},Object(i.__)("In “Uncategorized”","jetpack")))}function k(e){return Object(a.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},Object(a.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&Object(a.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},Object(a.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&Object(a.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function O(e){var t=0,n=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:t=2;break;default:t=3}return Object(a.createElement)("div",null,Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(0,t).length},e.posts.slice(0,t)),n&&Object(a.createElement)("div",{className:"jp-related-posts-i2__row","data-post-count":e.posts.slice(t).length},e.posts.slice(t)))}var w=function(e){function t(){return s()(this,t),d()(this,m()(t).apply(this,arguments))}return b()(t,e),u()(t,[{key:"render",value:function(){for(var e=this.props,t=e.attributes,n=e.className,r=e.posts,c=e.setAttributes,s=e.instanceId,l=t.displayContext,u=t.displayDate,p=t.displayThumbnails,d=t.postLayout,h=t.postsToShow,m=[{icon:"grid-view",title:Object(i.__)("Grid View","jetpack"),onClick:function(){return c({postLayout:"grid"})},isActive:"grid"===d},{icon:"list-view",title:Object(i.__)("List View","jetpack"),onClick:function(){return c({postLayout:"list"})},isActive:"list"===d}],f=[],b=0;b<h;b++)r[b]?f.push(Object(a.createElement)(k,{id:"related-posts-".concat(s,"-post-").concat(b),key:"jp-relatedposts-i2-"+b,post:r[b],displayThumbnails:p,displayDate:u,displayContext:l})):f.push(Object(a.createElement)(_,{id:"related-posts-".concat(s,"-post-").concat(b),key:"related-post-placeholder-"+b,displayThumbnails:p,displayDate:u,displayContext:l}));return Object(a.createElement)(a.Fragment,null,Object(a.createElement)(g.InspectorControls,null,Object(a.createElement)(o.PanelBody,{title:Object(i.__)("Related Posts Settings","jetpack")},Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display thumbnails","jetpack"),checked:p,onChange:function(e){return c({displayThumbnails:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display date","jetpack"),checked:u,onChange:function(e){return c({displayDate:e})}}),Object(a.createElement)(o.ToggleControl,{label:Object(i.__)("Display context (category or tag)","jetpack"),checked:l,onChange:function(e){return c({displayContext:e})}}),Object(a.createElement)(o.RangeControl,{label:Object(i.__)("Number of posts","jetpack"),value:h,onChange:function(e){return c({postsToShow:Math.min(e,6)})},min:1,max:6}))),Object(a.createElement)(g.BlockControls,null,Object(a.createElement)(o.Toolbar,{controls:m})),Object(a.createElement)("div",{className:n,id:"related-posts-".concat(s)},Object(a.createElement)("div",{className:"jp-relatedposts-i2","data-layout":d},Object(a.createElement)(O,{posts:f}))))}}]),t}(a.Component),E=Object(y.compose)(y.withInstanceId,Object(j.withSelect)((function(e){var t=e("core/editor").getCurrentPost;return{posts:Object(v.get)(t(),"jetpack-related-posts",[])}})))(w),C=(n(227),{title:Object(i.__)("Related Posts","jetpack"),icon:Object(a.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},Object(a.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},Object(a.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),category:"jetpack",keywords:[Object(i._x)("Similar content","block search term","jetpack"),Object(i._x)("Linked","block search term","jetpack"),Object(i._x)("Connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:E,save:function(){return null},example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}});Object(r.a)("related-posts",C)},function(e,t,n){"use strict";n.r(t);var r=n(17),a=n(0),i=n(1),o=n(2),c=n(7),s=n.n(c),l=n(11),u=n.n(l),p=n(8),d=n.n(p),h=n(9),m=n.n(h),f=n(4),b=n.n(f),g=n(10),v=n.n(g),j=n(3),y=n.n(j),_=n(12),k=n.n(_),O=n(6),w="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW",E=Object(i.__)("Search for a term or paste a Giphy URL","jetpack"),C=function(e){function t(){var e,n;s()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=d()(this,(e=m()(t)).call.apply(e,[this].concat(i))),y()(b()(n),"textControlRef",Object(a.createRef)()),y()(b()(n),"state",{captionFocus:!1,results:null}),y()(b()(n),"onFormSubmit",(function(e){e.preventDefault(),n.onSubmit()})),y()(b()(n),"onSubmit",(function(){var e=n.props.attributes.searchText;n.parseSearch(e)})),y()(b()(n),"parseSearch",(function(e){var t=null;-1!==e.indexOf("//giphy.com/gifs")&&(t=n.splitAndLast(n.splitAndLast(e,"/"),"-")),-1!==e.indexOf("//i.giphy.com")&&(t=n.splitAndLast(e,"/").replace(".gif",""));var r=e.match(/http[s]?:\/\/media.giphy.com\/media\/([A-Za-z0-9\-.]+)\/giphy.gif/);return r&&(t=r[1]),t?n.fetch(n.urlForId(t)):n.fetch(n.urlForSearch(e))})),y()(b()(n),"urlForSearch",(function(e){return"https://api.giphy.com/v1/gifs/search?q=".concat(encodeURIComponent(e),"&api_key=").concat(encodeURIComponent(w),"&limit=10")})),y()(b()(n),"urlForId",(function(e){return"https://api.giphy.com/v1/gifs/".concat(encodeURIComponent(e),"?api_key=").concat(encodeURIComponent(w))})),y()(b()(n),"splitAndLast",(function(e,t){var n=e.split(t);return n[n.length-1]})),y()(b()(n),"fetch",(function(e){var t=new XMLHttpRequest;t.open("GET",e),t.onload=function(){if(200===t.status){var e=JSON.parse(t.responseText),r=void 0!==e.data.images?[e.data]:e.data,a=r[0];if(!a.images)return;n.setState({results:r},(function(){n.selectGiphy(a)}))}},t.send()})),y()(b()(n),"selectGiphy",(function(e){var t=n.props.setAttributes,r=Math.floor(e.images.original.height/e.images.original.width*100),a="".concat(r,"%");t({giphyUrl:e.embed_url,paddingTop:a})})),y()(b()(n),"setFocus",(function(){n.textControlRef.current.querySelector("input").focus(),n.setState({captionFocus:!1})})),y()(b()(n),"hasSearchText",(function(){var e=n.props.attributes.searchText;return e&&e.length>0})),y()(b()(n),"thumbnailClicked",(function(e){n.selectGiphy(e)})),n}return v()(t,e),u()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.attributes,r=t.className,c=t.isSelected,s=t.setAttributes,l=n.align,u=n.caption,p=n.giphyUrl,d=n.searchText,h=n.paddingTop,m=this.state,f=m.captionFocus,b=m.results,g={paddingTop:h},v=k()(r,"align".concat(l)),j=Object(a.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:this.onFormSubmit,ref:this.textControlRef},Object(a.createElement)(o.TextControl,{className:"wp-block-jetpack-gif_input",label:E,placeholder:E,onChange:function(e){return s({searchText:e})},value:d}),Object(a.createElement)(o.Button,{isDefault:!0,onClick:this.onSubmit},Object(i.__)("Search","jetpack")));return Object(a.createElement)("div",{className:v},Object(a.createElement)(O.InspectorControls,null,Object(a.createElement)(o.PanelBody,{className:"components-panel__body-gif-branding"},Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},Object(a.createElement)(o.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),Object(a.createElement)(o.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"})))),p?Object(a.createElement)("figure",null,c&&j,c&&b&&b.length>1&&Object(a.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},b.map((function(t){var n={backgroundImage:"url(".concat(t.images.downsized_still.url,")")};return Object(a.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:t.id,onClick:function(){e.thumbnailClicked(t)},style:n})}))),Object(a.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:g},Object(a.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:this.setFocus,onKeyDown:this.setFocus,role:"button",tabIndex:"0"}),Object(a.createElement)("iframe",{src:p,title:d})),(!O.RichText.isEmpty(u)||c)&&!!p&&Object(a.createElement)(O.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:f,unstableOnFocus:function(){e.setState({captionFocus:!0})},onChange:function(e){return s({caption:e})},placeholder:Object(i.__)("Write caption…","jetpack"),tagName:"figcaption",value:u})):Object(a.createElement)(o.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:S,label:x},j))}}]),t}(a.Component),x=(n(130),n(154),Object(i.__)("GIF","jetpack")),S=Object(a.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},Object(a.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),Object(a.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),A={title:x,icon:S,category:"jetpack",keywords:[Object(i._x)("animated","block search term","jetpack"),Object(i._x)("giphy","block search term","jetpack"),Object(i._x)("image","block search term","jetpack")],description:Object(i.__)("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:C,save:function(){return null},example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}};Object(r.a)("gif",A)},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n(1),i=n(2),o=n(14),c=n(28),s=n(13),l=n(60),u=Object(s.withSelect)((function(e){return{isSharingEnabled:(0,e("core/editor").getEditedPostAttribute)("jetpack_sharing_enabled")}})),p=Object(s.withDispatch)((function(e){return{editPost:e("core/editor").editPost}})),d={render:Object(o.compose)([u,p])((function(e){var t=e.isSharingEnabled,n=e.editPost;return Object(r.createElement)(c.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},Object(r.createElement)(l.a,null,Object(r.createElement)(i.CheckboxControl,{label:Object(a.__)("Show sharing buttons.","jetpack"),checked:t,onChange:function(e){n({jetpack_sharing_enabled:e})}})))}))},h=n(37);Object(h.a)("sharing",d)},function(e,t,n){"use strict";n.r(t);var r=n(7),a=n.n(r),i=n(11),o=n.n(i),c=n(8),s=n.n(c),l=n(9),u=n.n(l),p=n(10),d=n.n(p),h=n(0),m=n(1),f=n(5),b=n(2),g=n(13),v=n(4),j=n.n(v),y=n(3),_=n.n(y),k=(n(229),function(e){function t(){var e,n;a()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=s()(this,(e=u()(t)).call.apply(e,[this].concat(i))),_()(j()(n),"state",{hasCopied:!1}),_()(j()(n),"onCopy",(function(){return n.setState({hasCopied:!0})})),_()(j()(n),"onFinishCopy",(function(){return n.setState({hasCopied:!1})})),_()(j()(n),"onFocus",(function(e){return e.target.select()})),n}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.link,t=this.state.hasCopied;return e?Object(h.createElement)("div",{className:"jetpack-clipboard-input"},Object(h.createElement)(b.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),Object(h.createElement)(b.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?Object(m.__)("Copied!","jetpack"):Object(m._x)("Copy","verb","jetpack"))):null}}]),t}(h.Component)),O=n(44),w={render:function(){return Object(h.createElement)(C,null)}},E=function(e){function t(){return a()(this,t),s()(this,u()(t).apply(this,arguments))}return d()(t,e),o()(t,[{key:"render",value:function(){var e=this.props.shortlink;return e?Object(h.createElement)(O.a,null,Object(h.createElement)(b.PanelBody,{title:Object(m.__)("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},Object(h.createElement)(k,{link:e}))):null}}]),t}(h.Component),C=Object(g.withSelect)((function(e){var t=e("core/editor").getCurrentPost();return{shortlink:Object(f.get)(t,"jetpack_shortlink","")}}))(E),x=n(37);Object(x.a)("shortlinks",w)},,,function(e,t,n){n(255),n(254),n(250),n(244),n(242),n(249),n(263),n(261),n(258),n(243),n(252),n(248),n(256),n(241),n(251),n(259),n(262),n(257),n(264),n(265),n(245),n(247),n(260),n(240),n(246),e.exports=n(253)}])); \ No newline at end of file
+/*! For license information please see editor.js.LICENSE.txt */
+!function(){var e,t,n,r,a,o,i={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31354),a=n(64803);function o(e){var t=(0,r.Z)(e);return function(e){return(0,a.Z)(t,e)}}},64803:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function a(e,t){var n,a,o,i,s,l,c=[];for(n=0;n<e.length;n++){if(s=e[n],i=r[s]){for(a=i.length,o=Array(a);a--;)o[a]=c.pop();try{l=i.apply(null,o)}catch(e){return e}}else l=t.hasOwnProperty(s)?t[s]:+s;c.push(l)}return c[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8172);function a(e){var t=(0,r.Z)(e);return function(e){return+t({n:e})}}},31354:function(e,t,n){"use strict";var r,a,o,i;function s(e){for(var t,n,s,l,c=[],u=[];t=e.match(i);){for(n=t[0],(s=e.substr(0,t.index).trim())&&c.push(s);l=u.pop();){if(o[n]){if(o[n][0]===l){n=o[n][1]||n;break}}else if(a.indexOf(l)>=0||r[l]<r[n]){u.push(l);break}c.push(l)}o[n]||u.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&c.push(e),c.concat(u.reverse())}n.d(t,{Z:function(){return s}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},a=["(","?"],o={")":["("],":":["?","?:"]},i=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function a(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(r,(function(){var e,r,a,o,i;return e=arguments[3],r=arguments[5],"%"===(o=arguments[9])?"%":("*"===(a=arguments[7])&&(a=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(i=t[0][r]):(void 0===e&&(e=n),n++,i=t[e-1]),"f"===o?i=parseFloat(i)||0:"d"===o&&(i=parseInt(i)||0),void 0!==a&&("f"===o?i=i.toFixed(a):"s"===o&&(i=i.substr(0,a))),null!=i?i:"")}))}},22607:function(e,t,n){"use strict";var r=n(69307);t.Z=function(e){let{icon:t,size:n=24,...a}=e;return(0,r.cloneElement)(t,{width:n,height:n,...a})}},84675:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z"}));t.Z=o},35127:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.7 3H5.3C4 3 3 4 3 5.3v13.4C3 20 4 21 5.3 21h13.4c1.3 0 2.3-1 2.3-2.3V5.3C21 4 20 3 18.7 3zm.8 15.7c0 .4-.4.8-.8.8H5.3c-.4 0-.8-.4-.8-.8V5.3c0-.4.4-.8.8-.8h13.4c.4 0 .8.4.8.8v13.4zM10 15l5-3-5-3v6z"}));t.Z=o},41221:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M20.1 5.1L16.9 2 6.2 12.7l-1.3 4.4 4.5-1.3L20.1 5.1zM4 20.8h8v-1.5H4v1.5z"}));t.Z=o},31266:function(e,t,n){"use strict";var r=n(69307),a=n(70444);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"}));t.Z=o},81326:function(e,t){var n;!function(){"use strict";var r=function(){function e(){}function t(e,t){for(var n=t.length,r=0;r<n;++r)a(e,t[r])}e.prototype=Object.create(null);var n={}.hasOwnProperty;var r=/\s+/;function a(e,a){if(a){var o=typeof a;"string"===o?function(e,t){for(var n=t.split(r),a=n.length,o=0;o<a;++o)e[n[o]]=!0}(e,a):Array.isArray(a)?t(e,a):"object"===o?function(e,t){if(t.toString===Object.prototype.toString)for(var r in t)n.call(t,r)&&(e[r]=!!t[r]);else e[t.toString()]=!0}(e,a):"number"===o&&function(e,t){e[t]=!0}(e,a)}}return function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var o=new e;t(o,r);var i=[];for(var s in o)o[s]&&i.push(s);return i.join(" ")}}();e.exports?(r.default=r,e.exports=r):void 0===(n=function(){return r}.apply(t,[]))||(e.exports=n)}()},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var i=a.apply(null,n);i&&e.push(i)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var s in n)r.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},92213:function(e){!function(){"use strict";var t=[],n=3988292384;function r(e){var t,r,a,o,i=-1;for(t=0,a=e.length;t<a;t+=1){for(o=255&(i^e[t]),r=0;r<8;r+=1)1==(1&o)?o=o>>>1^n:o>>>=1;i=i>>>8^o}return-1^i}function a(e,n){var r,o,i;if(void 0!==a.crc&&n&&e||(a.crc=-1,e)){for(r=a.crc,o=0,i=e.length;o<i;o+=1)r=r>>>8^t[255&(r^e[o])];return a.crc=r,-1^r}}!function(){var e,r,a;for(r=0;r<256;r+=1){for(e=r,a=0;a<8;a+=1)1&e?e=n^e>>>1:e>>>=1;t[r]=e>>>0}}(),e.exports=function(e,t){var n;e="string"==typeof e?(n=e,Array.prototype.map.call(n,(function(e){return e.charCodeAt(0)}))):e;return((t?r(e):a(e))>>>0).toString(16)},e.exports.direct=r,e.exports.table=a}()},97115:function(e){"use strict";var t="%[a-f0-9]{2}",n=new RegExp(t,"gi"),r=new RegExp("("+t+")+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],a(n),a(r))}function o(e){try{return decodeURIComponent(e)}catch(o){for(var t=e.match(n),r=1;r<t.length;r++)t=(e=a(t,r).join("")).match(n);return e}}e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},n=r.exec(e);n;){try{t[n[0]]=decodeURIComponent(n[0])}catch(e){var a=o(n[0]);a!==n[0]&&(t[n[0]]=a)}n=r.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),s=0;s<i.length;s++){var l=i[s];e=e.replace(new RegExp(l,"g"),t[l])}return e}(e)}}},89453:function(e,t){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},2571:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,r=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function o(){o.init.call(this)}e.exports=o,e.exports.once=function(e,t){return new Promise((function(n,r){function a(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",a),n([].slice.call(arguments))}f(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&f(e,"error",t,n)}(e,a,{once:!0})}))},o.EventEmitter=o,o.prototype._events=void 0,o.prototype._eventsCount=0,o.prototype._maxListeners=void 0;var i=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function l(e){return void 0===e._maxListeners?o.defaultMaxListeners:e._maxListeners}function c(e,t,n,r){var a,o,i,c;if(s(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),i=o[t]),void 0===i)i=o[t]=n,++e._eventsCount;else if("function"==typeof i?i=o[t]=r?[n,i]:[i,n]:r?i.unshift(n):i.push(n),(a=l(e))>0&&i.length>a&&!i.warned){i.warned=!0;var u=new Error("Possible EventEmitter memory leak detected. "+i.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");u.name="MaxListenersExceededWarning",u.emitter=e,u.type=t,u.count=i.length,c=u,console&&console.warn&&console.warn(c)}return e}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},a=u.bind(r);return a.listener=n,r.wrapFn=a,a}function d(e,t,n){var r=e._events;if(void 0===r)return[];var a=r[t];return void 0===a?[]:"function"==typeof a?n?[a.listener||a]:[a]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(a):h(a,a.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function h(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function f(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function a(o){r.once&&e.removeEventListener(t,a),n(o)}))}}Object.defineProperty(o,"defaultMaxListeners",{enumerable:!0,get:function(){return i},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");i=e}}),o.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},o.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},o.prototype.getMaxListeners=function(){return l(this)},o.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var a="error"===e,o=this._events;if(void 0!==o)a=a&&void 0===o.error;else if(!a)return!1;if(a){var i;if(t.length>0&&(i=t[0]),i instanceof Error)throw i;var s=new Error("Unhandled error."+(i?" ("+i.message+")":""));throw s.context=i,s}var l=o[e];if(void 0===l)return!1;if("function"==typeof l)r(l,this,t);else{var c=l.length,u=h(l,c);for(n=0;n<c;++n)r(u[n],this,t)}return!0},o.prototype.addListener=function(e,t){return c(this,e,t,!1)},o.prototype.on=o.prototype.addListener,o.prototype.prependListener=function(e,t){return c(this,e,t,!0)},o.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},o.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},o.prototype.removeListener=function(e,t){var n,r,a,o,i;if(s(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){i=n[o].listener,a=o;break}if(a<0)return this;0===a?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,a),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,i||t)}return this},o.prototype.off=o.prototype.removeListener,o.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var a,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(a=o[r])&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},o.prototype.listeners=function(e){return d(this,e,!0)},o.prototype.rawListeners=function(e){return d(this,e,!1)},o.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},o.prototype.listenerCount=m,o.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},95946:function(e){"use strict";e.exports=function(e,t){for(var n={},r=Object.keys(e),a=Array.isArray(t),o=0;o<r.length;o++){var i=r[o],s=e[i];(a?-1!==t.indexOf(i):t(i,s,e))&&(n[i]=s)}return n}},95949:function(e,t,n){"use strict";var r=n(53566),a=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var a=0;a<e.length;a+=this._delta32)this._update(e,a,a+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),a(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var a=1;a<n;a++)r[a]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[a++]=0;r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=e>>>24&255,r[a++]=e>>>16&255,r[a++]=e>>>8&255,r[a++]=255&e}else for(r[a++]=255&e,r[a++]=e>>>8&255,r[a++]=e>>>16&255,r[a++]=e>>>24&255,r[a++]=0,r[a++]=0,r[a++]=0,r[a++]=0,o=8;o<this.padLength;o++)r[a++]=0;return r}},69016:function(e,t,n){"use strict";var r=n(53566),a=n(95949),o=n(47574),i=r.rotl32,s=r.sum32,l=r.sum32_5,c=o.ft_1,u=a.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=i(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var a=this.h[0],o=this.h[1],u=this.h[2],d=this.h[3],m=this.h[4];for(r=0;r<n.length;r++){var h=~~(r/20),f=l(i(a,5),c(h,o,u,d),m,n[r],p[h]);m=d,d=u,u=i(o,30),o=a,a=f}this.h[0]=s(this.h[0],a),this.h[1]=s(this.h[1],o),this.h[2]=s(this.h[2],u),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],m)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function a(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function i(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?a(t,n,r):1===e||3===e?i(t,n,r):2===e?o(t,n,r):void 0},t.ch32=a,t.maj32=o,t.p32=i,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),a=n(59503);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function i(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function l(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=a,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),a=0;a<e.length;a+=2)n.push(parseInt(e[a]+e[a+1],16))}else for(var r=0,a=0;a<e.length;a++){var i=e.charCodeAt(a);i<128?n[r++]=i:i<2048?(n[r++]=i>>6|192,n[r++]=63&i|128):o(e,a)?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++a)),n[r++]=i>>18|240,n[r++]=i>>12&63|128,n[r++]=i>>6&63|128,n[r++]=63&i|128):(n[r++]=i>>12|224,n[r++]=i>>6&63|128,n[r++]=63&i|128)}else for(a=0;a<e.length;a++)n[a]=0|e[a];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=i,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var a=e[r];"little"===t&&(a=i(a)),n+=l(a.toString(16))}return n},t.zero2=s,t.zero8=l,t.join32=function(e,t,n,a){var o=n-t;r(o%4==0);for(var i=new Array(o/4),s=0,l=t;s<i.length;s++,l+=4){var c;c="big"===a?e[l]<<24|e[l+1]<<16|e[l+2]<<8|e[l+3]:e[l+3]<<24|e[l+2]<<16|e[l+1]<<8|e[l],i[s]=c>>>0}return i},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,a=0;r<e.length;r++,a+=4){var o=e[r];"big"===t?(n[a]=o>>>24,n[a+1]=o>>>16&255,n[a+2]=o>>>8&255,n[a+3]=255&o):(n[a+3]=o>>>24,n[a+2]=o>>>16&255,n[a+1]=o>>>8&255,n[a]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,a){return e+t+n+r+a>>>0},t.sum64=function(e,t,n,r){var a=e[t],o=r+e[t+1]>>>0,i=(o<r?1:0)+n+a;e[t]=i>>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,a,o,i,s){var l=0,c=t;return l+=(c=c+r>>>0)<t?1:0,l+=(c=c+o>>>0)<o?1:0,e+n+a+i+(l+=(c=c+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,a,o,i,s){return t+r+o+s>>>0},t.sum64_5_hi=function(e,t,n,r,a,o,i,s,l,c){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+o>>>0)<o?1:0,u+=(p=p+s>>>0)<s?1:0,e+n+a+i+l+(u+=(p=p+c>>>0)<c?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,a,o,i,s,l,c){return t+r+o+s+c>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},88617:function(e,t,n){"use strict";var r=n(59128),a=n(98086),o=n(90922),i=n.n(o),s=n(94481),l=n(88090),c=n(75565),u=n.n(c),p=n(69016),d=n.n(p),m=n(2571),h=n(702),f=n(92846),g=i()("i18n-calypso"),b="number_format_decimals",v="number_format_thousands_sep",k="messages",y=[function(e){return e}],E={};function w(){x.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function _(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&w("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",_(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&w("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",_(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function j(e,t){return e.dcnpgettext(k,t.context,t.original,t.plural,t.count)}function S(e,t){for(var n=y.length-1;n>=0;n--){var r=y[n](Object.assign({},t)),a=r.context?r.context+""+r.original:r.original;if(e.state.locale[a])return j(e.state.tannin,r)}return null}function x(){if(!(this instanceof x))return new x;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:u()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new m.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}x.throwErrors=!1,x.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},x.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},x.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},x.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",a=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,f.Z)(e,n,r,a)},x.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},x.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var o=e[""]["key-hash"],i=function(e,t){var n=!1===t?"":String(t);if(void 0!==E[n+e])return E[n+e];var r=d()().update(e).digest("hex");return E[n+e]=t?r.substr(0,t):r},s=function(e){return function(t){return t.context?(t.original=i(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=i(t.original,e),t}};if("sha1"===o.substr(0,4))if(4===o.length)y.push(s(!1));else{var c=o.substr(5).indexOf("-");if(c<0){var u=Number(o.substr(5));y.push(s(u))}else for(var p=Number(o.substr(5,c)),m=Number(o.substr(6+c)),h=p;h<=m;h++)y.push(s(h))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new l.Z((0,a.Z)({},k,this.state.locale)),this.state.numberFormatSettings.decimal_point=j(this.state.tannin,C([b])),this.state.numberFormatSettings.thousands_sep=j(this.state.tannin,C([v])),this.state.numberFormatSettings.decimal_point===b&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===v&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},x.prototype.getLocale=function(){return this.state.locale},x.prototype.getLocaleSlug=function(){return this.state.localeSlug},x.prototype.isRtl=function(){return"rtl"===this.state.textDirection},x.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},x.prototype.hasTranslation=function(){return!!S(this,C(arguments))},x.prototype.translate=function(){var e=C(arguments),t=S(this,e);if(t||(t=j(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=h.Z.apply(void 0,(0,r.Z)(n))}catch(e){if(!window||!window.console)return;var a=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[a](e):window.console[a]("i18n sprintf error:",n)}}return e.components&&(t=(0,s.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},x.prototype.reRenderTranslations=function(){g("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},x.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},x.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=x},63807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return l}});var r=n(88617),a=n(42928),o=n(80975),i=n(24531),s=new r.Z,l=s.numberFormat.bind(s),c=(s.translate.bind(s),s.configure.bind(s),s.setLocale.bind(s),s.getLocale.bind(s),s.getLocaleSlug.bind(s),s.addTranslations.bind(s),s.reRenderTranslations.bind(s),s.registerComponentUpdateHook.bind(s),s.registerTranslateHook.bind(s),s.state,s.stateObserver,s.on.bind(s),s.off.bind(s),s.emit.bind(s),(0,a.Z)(s),(0,o.Z)(s),(0,i.Z)(s));c.useRtl,c.withRtl},42928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(59591),a=n(71687),o=n(93772),i=n(55200),s=n(82104),l=n(9057),c=n(98086),u=n(99196),p=n.n(u);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var u,d,m=n.displayName||n.name||"";return d=u=function(u){(0,s.Z)(m,u);var d=(0,l.Z)(m);function m(){var e;(0,a.Z)(this,m);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e=d.call.apply(d,[this].concat(n)),(0,c.Z)((0,i.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,i.Z)(e))),e}return(0,o.Z)(m,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var a=(0,r.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,a)}}]),m}(p().Component),(0,c.Z)(u,"displayName","Localized("+m+")"),d}}},92846:function(e,t,n){"use strict";function r(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var a=isFinite(+e)?+e:0,o=isFinite(+t)?Math.abs(t):0,i=void 0===r?",":r,s=void 0===n?".":n,l="";return l=(o?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(a,o):""+Math.round(a)).split("."),l[0].length>3&&(l[0]=l[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,i)),(l[1]||"").length<o&&(l[1]=l[1]||"",l[1]+=new Array(o-l[1].length+1).join("0")),l.join(s)}n.d(t,{Z:function(){return r}})},24531:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(95672),a=n(99196),o=n.n(a),i=n(20036),s=n(94333);function l(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,i.useSubscription)(t)}var l=(0,s.createHigherOrderComponent)((function(e){return(0,a.forwardRef)((function(t,a){var i=n();return o().createElement(e,(0,r.Z)({},t,{isRtl:i,ref:a}))}))}),"WithRTL");return{useRtl:n,withRtl:l}}},80975:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(50572),a=n(99196),o=n.n(a);function i(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=o().useState(t),a=(0,r.Z)(n,2),i=a[0],s=a[1];return o().useEffect((function(){var n=function(){return s(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),i}}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},30045:function(e,t,n){"use strict";function r(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){t&&Object.keys(t).forEach((function(n){e[n]=t[n]}))})),e}function a(e){return Object.prototype.toString.call(e)}function o(e){return"[object Function]"===a(e)}function i(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}var s={fuzzyLink:!0,fuzzyEmail:!0,fuzzyIP:!1};var l={"http:":{validate:function(e,t,n){var r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){var r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){var r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},c="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function u(e){var t=e.re=n(49872)(e.__opts__),r=e.__tlds__.slice();function s(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||r.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),r.push(t.src_xn),t.src_tlds=r.join("|"),t.email_fuzzy=RegExp(s(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(s(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(s(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(s(t.tpl_host_fuzzy_test),"i");var l=[];function c(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach((function(t){var n=e.__schemas__[t];if(null!==n){var r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===a(n))return!function(e){return"[object RegExp]"===a(e)}(n.validate)?o(n.validate)?r.validate=n.validate:c(t,n):r.validate=function(e){return function(t,n){var r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(o(n.normalize)?r.normalize=n.normalize:n.normalize?c(t,n):r.normalize=function(e,t){t.normalize(e)});!function(e){return"[object String]"===a(e)}(n)?c(t,n):l.push(t)}})),l.forEach((function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize)})),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e)}};var u=Object.keys(e.__compiled__).filter((function(t){return t.length>0&&e.__compiled__[t]})).map(i).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+u+")","ig"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__=""}(e)}function p(e,t){var n=e.__index__,r=e.__last_index__,a=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=a,this.text=a,this.url=a}function d(e,t){var n=new p(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function m(e,t){if(!(this instanceof m))return new m(e,t);var n;t||(n=e,Object.keys(n||{}).reduce((function(e,t){return e||s.hasOwnProperty(t)}),!1)&&(t=e,e={})),this.__opts__=r({},s,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=r({},l,e),this.__compiled__={},this.__tlds__=c,this.__tlds_replaced__=!1,this.re={},u(this)}m.prototype.add=function(e,t){return this.__schemas__[e]=t,u(this),this},m.prototype.set=function(e){return this.__opts__=r(this.__opts__,e),this},m.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return!1;var t,n,r,a,o,i,s,l;if(this.re.schema_test.test(e))for((s=this.re.schema_search).lastIndex=0;null!==(t=s.exec(e));)if(a=this.testSchemaAt(e,t[2],s.lastIndex)){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+a;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test))>=0&&(this.__index__<0||l<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(o=n.index+n[1].length,(this.__index__<0||o<this.__index__)&&(this.__schema__="",this.__index__=o,this.__last_index__=n.index+n[0].length)),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&e.indexOf("@")>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(o=r.index+r[1].length,i=r.index+r[0].length,(this.__index__<0||o<this.__index__||o===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=o,this.__last_index__=i)),this.__index__>=0},m.prototype.pretest=function(e){return this.re.pretest.test(e)},m.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},m.prototype.match=function(e){var t=0,n=[];this.__index__>=0&&this.__text_cache__===e&&(n.push(d(this,t)),t=this.__last_index__);for(var r=t?e.slice(t):e;this.test(r);)n.push(d(this,t)),r=r.slice(this.__last_index__),t+=this.__last_index__;return n.length?n:null},m.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter((function(e,t,n){return e!==n[t-1]})).reverse(),u(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=!0,u(this),this)},m.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url)},m.prototype.onCompile=function(){},e.exports=m},49872:function(e,t,n){"use strict";e.exports=function(e){var t={};t.src_Any=n(26285).source,t.src_Cc=n(84080).source,t.src_Z=n(76202).source,t.src_P=n(87696).source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!-|_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+"[><|]|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-]).|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]).|"+(e&&e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+").|;(?!"+t.src_ZCc+").|\\!+(?!"+t.src_ZCc+"|[!]).|\\?(?!"+t.src_ZCc+"|[?]).)+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}},47595:function(e,t,n){"use strict";const r=n(22199),a=Symbol("max"),o=Symbol("length"),i=Symbol("lengthCalculator"),s=Symbol("allowStale"),l=Symbol("maxAge"),c=Symbol("dispose"),u=Symbol("noDisposeOnSet"),p=Symbol("lruList"),d=Symbol("cache"),m=Symbol("updateAgeOnGet"),h=()=>1;const f=(e,t,n)=>{const r=e[d].get(t);if(r){const t=r.value;if(g(e,t)){if(v(e,r),!e[s])return}else n&&(e[m]&&(r.value.now=Date.now()),e[p].unshiftNode(r));return t.value}},g=(e,t)=>{if(!t||!t.maxAge&&!e[l])return!1;const n=Date.now()-t.now;return t.maxAge?n>t.maxAge:e[l]&&n>e[l]},b=e=>{if(e[o]>e[a])for(let t=e[p].tail;e[o]>e[a]&&null!==t;){const n=t.prev;v(e,t),t=n}},v=(e,t)=>{if(t){const n=t.value;e[c]&&e[c](n.key,n.value),e[o]-=n.length,e[d].delete(n.key),e[p].removeNode(t)}};class k{constructor(e,t,n,r,a){this.key=e,this.value=t,this.length=n,this.now=r,this.maxAge=a||0}}const y=(e,t,n,r)=>{let a=n.value;g(e,a)&&(v(e,n),e[s]||(a=void 0)),a&&t.call(r,a.value,a.key,e)};e.exports=class{constructor(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[a]=e.max||1/0;const t=e.length||h;if(this[i]="function"!=typeof t?h:t,this[s]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[l]=e.maxAge||0,this[c]=e.dispose,this[u]=e.noDisposeOnSet||!1,this[m]=e.updateAgeOnGet||!1,this.reset()}set max(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[a]=e||1/0,b(this)}get max(){return this[a]}set allowStale(e){this[s]=!!e}get allowStale(){return this[s]}set maxAge(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[l]=e,b(this)}get maxAge(){return this[l]}set lengthCalculator(e){"function"!=typeof e&&(e=h),e!==this[i]&&(this[i]=e,this[o]=0,this[p].forEach((e=>{e.length=this[i](e.value,e.key),this[o]+=e.length}))),b(this)}get lengthCalculator(){return this[i]}get length(){return this[o]}get itemCount(){return this[p].length}rforEach(e,t){t=t||this;for(let n=this[p].tail;null!==n;){const r=n.prev;y(this,e,n,t),n=r}}forEach(e,t){t=t||this;for(let n=this[p].head;null!==n;){const r=n.next;y(this,e,n,t),n=r}}keys(){return this[p].toArray().map((e=>e.key))}values(){return this[p].toArray().map((e=>e.value))}reset(){this[c]&&this[p]&&this[p].length&&this[p].forEach((e=>this[c](e.key,e.value))),this[d]=new Map,this[p]=new r,this[o]=0}dump(){return this[p].map((e=>!g(this,e)&&{k:e.key,v:e.value,e:e.now+(e.maxAge||0)})).toArray().filter((e=>e))}dumpLru(){return this[p]}set(e,t,n){if((n=n||this[l])&&"number"!=typeof n)throw new TypeError("maxAge must be a number");const r=n?Date.now():0,s=this[i](t,e);if(this[d].has(e)){if(s>this[a])return v(this,this[d].get(e)),!1;const i=this[d].get(e).value;return this[c]&&(this[u]||this[c](e,i.value)),i.now=r,i.maxAge=n,i.value=t,this[o]+=s-i.length,i.length=s,this.get(e),b(this),!0}const m=new k(e,t,s,r,n);return m.length>this[a]?(this[c]&&this[c](e,t),!1):(this[o]+=m.length,this[p].unshift(m),this[d].set(e,this[p].head),b(this),!0)}has(e){if(!this[d].has(e))return!1;const t=this[d].get(e).value;return!g(this,t)}get(e){return f(this,e,!0)}peek(e){return f(this,e,!1)}pop(){const e=this[p].tail;return e?(v(this,e),e.value):null}del(e){v(this,this[d].get(e))}load(e){this.reset();const t=Date.now();for(let n=e.length-1;n>=0;n--){const r=e[n],a=r.e||0;if(0===a)this.set(r.k,r.v);else{const e=a-t;e>0&&this.set(r.k,r.v,e)}}}prune(){this[d].forEach(((e,t)=>f(this,t,!1)))}}},75565:function(e,t,n){var r=n(2571),a=n(59503);function o(e){if(!(this instanceof o))return new o(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=o,a(o,r.EventEmitter),Object.defineProperty(o.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),o.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},o.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},o.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},o.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},o.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},o.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},o.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},o.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},69472:function(e,t,n){"use strict";e.exports=n(98092)},95926:function(e,t,n){"use strict";e.exports=n(60231)},4692:function(e){"use strict";e.exports=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"]},75501:function(e){"use strict";var t="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",n="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",r=new RegExp("^(?:"+t+"|"+n+"|\x3c!----\x3e|\x3c!--(?:-?[^>-])(?:-?[^-])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Z]+\\s+[^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),a=new RegExp("^(?:"+t+"|"+n+")");e.exports.n=r,e.exports.q=a},58201:function(e,t,n){"use strict";var r=Object.prototype.hasOwnProperty;function a(e,t){return r.call(e,t)}function o(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function i(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}var s=/\\([!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~])/g,l=new RegExp(s.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),c=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i,u=n(95926);var p=/[&<>"]/,d=/[&<>"]/g,m={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function h(e){return m[e]}var f=/[.?*+^$[\]\\(){}|-]/g;var g=n(87696);t.lib={},t.lib.mdurl=n(36664),t.lib.ucmicro=n(39126),t.assign=function(e){var t=Array.prototype.slice.call(arguments,1);return t.forEach((function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach((function(n){e[n]=t[n]}))}})),e},t.isString=function(e){return"[object String]"===function(e){return Object.prototype.toString.call(e)}(e)},t.has=a,t.unescapeMd=function(e){return e.indexOf("\\")<0?e:e.replace(s,"$1")},t.unescapeAll=function(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(l,(function(e,t,n){return t||function(e,t){var n=0;return a(u,t)?u[t]:35===t.charCodeAt(0)&&c.test(t)&&o(n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?i(n):e}(e,n)}))},t.isValidEntityCode=o,t.fromCodePoint=i,t.escapeHtml=function(e){return p.test(e)?e.replace(d,h):e},t.arrayReplaceAt=function(e,t,n){return[].concat(e.slice(0,t),n,e.slice(t+1))},t.isSpace=function(e){switch(e){case 9:case 32:return!0}return!1},t.isWhiteSpace=function(e){if(e>=8192&&e<=8202)return!0;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return!0}return!1},t.isMdAsciiPunct=function(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return!0;default:return!1}},t.isPunctChar=function(e){return g.test(e)},t.escapeRE=function(e){return e.replace(f,"\\$&")},t.normalizeReference=function(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}},69486:function(e,t,n){"use strict";t.parseLinkLabel=n(53020),t.parseLinkDestination=n(80113),t.parseLinkTitle=n(7266)},80113:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=t,s={ok:!1,pos:0,lines:0,str:""};if(60===e.charCodeAt(t)){for(t++;t<n;){if(10===(a=e.charCodeAt(t)))return s;if(60===a)return s;if(62===a)return s.pos=t+1,s.str=r(e.slice(i+1,t)),s.ok=!0,s;92===a&&t+1<n?t+=2:t++}return s}for(o=0;t<n&&32!==(a=e.charCodeAt(t))&&!(a<32||127===a);)if(92===a&&t+1<n){if(32===e.charCodeAt(t+1))break;t+=2}else{if(40===a&&++o>32)return s;if(41===a){if(0===o)break;o--}t++}return i===t||0!==o||(s.str=r(e.slice(i,t)),s.lines=0,s.pos=t,s.ok=!0),s}},53020:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s=-1,l=e.posMax,c=e.pos;for(e.pos=t+1,r=1;e.pos<l;){if(93===(o=e.src.charCodeAt(e.pos))&&0===--r){a=!0;break}if(i=e.pos,e.md.inline.skipToken(e),91===o)if(i===e.pos-1)r++;else if(n)return e.pos=c,-1}return a&&(s=e.pos),e.pos=c,s}},7266:function(e,t,n){"use strict";var r=n(58201).unescapeAll;e.exports=function(e,t,n){var a,o,i=0,s=t,l={ok:!1,pos:0,lines:0,str:""};if(t>=n)return l;if(34!==(o=e.charCodeAt(t))&&39!==o&&40!==o)return l;for(t++,40===o&&(o=41);t<n;){if((a=e.charCodeAt(t))===o)return l.pos=t+1,l.lines=i,l.str=r(e.slice(s+1,t)),l.ok=!0,l;if(40===a&&41===o)return l;10===a?i++:92===a&&t+1<n&&(t++,10===e.charCodeAt(t)&&i++),t++}return l}},98092:function(e,t,n){"use strict";var r=n(58201),a=n(69486),o=n(54065),i=n(36020),s=n(63435),l=n(92241),c=n(30045),u=n(36664),p=n(15661),d={default:n(36101),zero:n(67545),commonmark:n(45815)},m=/^(vbscript|javascript|file|data):/,h=/^data:image\/(gif|png|jpeg|webp);/;function f(e){var t=e.trim().toLowerCase();return!m.test(t)||!!h.test(t)}var g=["http:","https:","mailto:"];function b(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toASCII(t.hostname)}catch(e){}return u.encode(u.format(t))}function v(e){var t=u.parse(e,!0);if(t.hostname&&(!t.protocol||g.indexOf(t.protocol)>=0))try{t.hostname=p.toUnicode(t.hostname)}catch(e){}return u.decode(u.format(t),u.decode.defaultChars+"%")}function k(e,t){if(!(this instanceof k))return new k(e,t);t||r.isString(e)||(t=e||{},e="default"),this.inline=new l,this.block=new s,this.core=new i,this.renderer=new o,this.linkify=new c,this.validateLink=f,this.normalizeLink=b,this.normalizeLinkText=v,this.utils=r,this.helpers=r.assign({},a),this.options={},this.configure(e),t&&this.set(t)}k.prototype.set=function(e){return r.assign(this.options,e),this},k.prototype.configure=function(e){var t,n=this;if(r.isString(e)&&!(e=d[t=e]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name');if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&n.set(e.options),e.components&&Object.keys(e.components).forEach((function(t){e.components[t].rules&&n[t].ruler.enableOnly(e.components[t].rules),e.components[t].rules2&&n[t].ruler2.enableOnly(e.components[t].rules2)})),this},k.prototype.enable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.enable(e,!0))}),this),n=n.concat(this.inline.ruler2.enable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},k.prototype.disable=function(e,t){var n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach((function(t){n=n.concat(this[t].ruler.disable(e,!0))}),this),n=n.concat(this.inline.ruler2.disable(e,!0));var r=e.filter((function(e){return n.indexOf(e)<0}));if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},k.prototype.use=function(e){var t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},k.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");var n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},k.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},k.prototype.parseInline=function(e,t){var n=new this.core.State(e,this,t);return n.inlineMode=!0,this.core.process(n),n.tokens},k.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)},e.exports=k},63435:function(e,t,n){"use strict";var r=n(21473),a=[["table",n(33168),["paragraph","reference"]],["code",n(63390)],["fence",n(7477),["paragraph","reference","blockquote","list"]],["blockquote",n(61264),["paragraph","reference","blockquote","list"]],["hr",n(94438),["paragraph","reference","blockquote","list"]],["list",n(90185),["paragraph","reference","blockquote"]],["reference",n(48707)],["heading",n(66926),["paragraph","reference","blockquote"]],["lheading",n(22288)],["html_block",n(77476),["paragraph","reference","blockquote"]],["paragraph",n(13958)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1],{alt:(a[e][2]||[]).slice()})}o.prototype.tokenize=function(e,t,n){for(var r,a=this.ruler.getRules(""),o=a.length,i=t,s=!1,l=e.md.options.maxNesting;i<n&&(e.line=i=e.skipEmptyLines(i),!(i>=n))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=l){e.line=n;break}for(r=0;r<o&&!a[r](e,i,n,!1);r++);e.tight=!s,e.isEmpty(e.line-1)&&(s=!0),(i=e.line)<n&&e.isEmpty(i)&&(s=!0,i++,e.line=i)}},o.prototype.parse=function(e,t,n,r){var a;e&&(a=new this.State(e,t,n,r),this.tokenize(a,a.line,a.lineMax))},o.prototype.State=n(62389),e.exports=o},36020:function(e,t,n){"use strict";var r=n(21473),a=[["normalize",n(75615)],["block",n(37262)],["inline",n(50127)],["linkify",n(65644)],["replacements",n(652)],["smartquotes",n(34335)]];function o(){this.ruler=new r;for(var e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1])}o.prototype.process=function(e){var t,n,r;for(t=0,n=(r=this.ruler.getRules("")).length;t<n;t++)r[t](e)},o.prototype.State=n(53706),e.exports=o},92241:function(e,t,n){"use strict";var r=n(21473),a=[["text",n(96733)],["newline",n(22051)],["escape",n(52960)],["backticks",n(61191)],["strikethrough",n(30832).w],["emphasis",n(98052).w],["link",n(68839)],["image",n(39590)],["autolink",n(84145)],["html_inline",n(20354)],["entity",n(44659)]],o=[["balance_pairs",n(93296)],["strikethrough",n(30832).g],["emphasis",n(98052).g],["text_collapse",n(72300)]];function i(){var e;for(this.ruler=new r,e=0;e<a.length;e++)this.ruler.push(a[e][0],a[e][1]);for(this.ruler2=new r,e=0;e<o.length;e++)this.ruler2.push(o[e][0],o[e][1])}i.prototype.skipToken=function(e){var t,n,r=e.pos,a=this.ruler.getRules(""),o=a.length,i=e.md.options.maxNesting,s=e.cache;if(void 0===s[r]){if(e.level<i)for(n=0;n<o&&(e.level++,t=a[n](e,!0),e.level--,!t);n++);else e.pos=e.posMax;t||e.pos++,s[r]=e.pos}else e.pos=s[r]},i.prototype.tokenize=function(e){for(var t,n,r=this.ruler.getRules(""),a=r.length,o=e.posMax,i=e.md.options.maxNesting;e.pos<o;){if(e.level<i)for(n=0;n<a&&!(t=r[n](e,!1));n++);if(t){if(e.pos>=o)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},i.prototype.parse=function(e,t,n,r){var a,o,i,s=new this.State(e,t,n,r);for(this.tokenize(s),i=(o=this.ruler2.getRules("")).length,a=0;a<i;a++)o[a](s)},i.prototype.State=n(4160),e.exports=i},45815:function(e){"use strict";e.exports={options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","text_collapse"]}}}},36101:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}}},67545:function(e){"use strict";e.exports={options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:"language-",linkify:!1,typographer:!1,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","text_collapse"]}}}},54065:function(e,t,n){"use strict";var r=n(58201).assign,a=n(58201).unescapeAll,o=n(58201).escapeHtml,i={};function s(){this.rules=r({},i)}i.code_inline=function(e,t,n,r,a){var i=e[t];return"<code"+a.renderAttrs(i)+">"+o(e[t].content)+"</code>"},i.code_block=function(e,t,n,r,a){var i=e[t];return"<pre"+a.renderAttrs(i)+"><code>"+o(e[t].content)+"</code></pre>\n"},i.fence=function(e,t,n,r,i){var s,l,c,u,p,d=e[t],m=d.info?a(d.info).trim():"",h="",f="";return m&&(h=(c=m.split(/(\s+)/g))[0],f=c.slice(2).join("")),0===(s=n.highlight&&n.highlight(d.content,h,f)||o(d.content)).indexOf("<pre")?s+"\n":m?(l=d.attrIndex("class"),u=d.attrs?d.attrs.slice():[],l<0?u.push(["class",n.langPrefix+h]):(u[l]=u[l].slice(),u[l][1]+=" "+n.langPrefix+h),p={attrs:u},"<pre><code"+i.renderAttrs(p)+">"+s+"</code></pre>\n"):"<pre><code"+i.renderAttrs(d)+">"+s+"</code></pre>\n"},i.image=function(e,t,n,r,a){var o=e[t];return o.attrs[o.attrIndex("alt")][1]=a.renderInlineAsText(o.children,n,r),a.renderToken(e,t,n)},i.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},i.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},i.text=function(e,t){return o(e[t].content)},i.html_block=function(e,t){return e[t].content},i.html_inline=function(e,t){return e[t].content},s.prototype.renderAttrs=function(e){var t,n,r;if(!e.attrs)return"";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+o(e.attrs[t][0])+'="'+o(e.attrs[t][1])+'"';return r},s.prototype.renderToken=function(e,t,n){var r,a="",o=!1,i=e[t];return i.hidden?"":(i.block&&-1!==i.nesting&&t&&e[t-1].hidden&&(a+="\n"),a+=(-1===i.nesting?"</":"<")+i.tag,a+=this.renderAttrs(i),0===i.nesting&&n.xhtmlOut&&(a+=" /"),i.block&&(o=!0,1===i.nesting&&t+1<e.length&&("inline"===(r=e[t+1]).type||r.hidden||-1===r.nesting&&r.tag===i.tag)&&(o=!1)),a+=o?">\n":">")},s.prototype.renderInline=function(e,t,n){for(var r,a="",o=this.rules,i=0,s=e.length;i<s;i++)void 0!==o[r=e[i].type]?a+=o[r](e,i,t,n,this):a+=this.renderToken(e,i,t);return a},s.prototype.renderInlineAsText=function(e,t,n){for(var r="",a=0,o=e.length;a<o;a++)"text"===e[a].type?r+=e[a].content:"image"===e[a].type&&(r+=this.renderInlineAsText(e[a].children,t,n));return r},s.prototype.render=function(e,t,n){var r,a,o,i="",s=this.rules;for(r=0,a=e.length;r<a;r++)"inline"===(o=e[r].type)?i+=this.renderInline(e[r].children,t,n):void 0!==s[o]?i+=s[e[r].type](e,r,t,n,this):i+=this.renderToken(e,r,t,n);return i},e.exports=s},21473:function(e){"use strict";function t(){this.__rules__=[],this.__cache__=null}t.prototype.__find__=function(e){for(var t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return-1},t.prototype.__compile__=function(){var e=this,t=[""];e.__rules__.forEach((function(e){e.enabled&&e.alt.forEach((function(e){t.indexOf(e)<0&&t.push(e)}))})),e.__cache__={},t.forEach((function(t){e.__cache__[t]=[],e.__rules__.forEach((function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn))}))}))},t.prototype.at=function(e,t,n){var r=this.__find__(e),a=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=a.alt||[],this.__cache__=null},t.prototype.before=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.after=function(e,t,n,r){var a=this.__find__(e),o=r||{};if(-1===a)throw new Error("Parser rule not found: "+e);this.__rules__.splice(a+1,0,{name:t,enabled:!0,fn:n,alt:o.alt||[]}),this.__cache__=null},t.prototype.push=function(e,t,n){var r=n||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:r.alt||[]}),this.__cache__=null},t.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!0,n.push(e)}),this),this.__cache__=null,n},t.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach((function(e){e.enabled=!1})),this.enable(e,t)},t.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);var n=[];return e.forEach((function(e){var r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=!1,n.push(e)}),this),this.__cache__=null,n},t.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},e.exports=t},61264:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j=e.lineMax,S=e.bMarks[t]+e.tShift[t],x=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(62!==e.src.charCodeAt(S++))return!1;if(a)return!0;for(l=m=e.sCount[t]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[t]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h=[e.bMarks[t]],e.bMarks[t]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[t]+(o?1:0))%4:m++,S++;for(f=[e.bsCount[t]],e.bsCount[t]=e.sCount[t]+1+(y?1:0),u=S>=x,v=[e.sCount[t]],e.sCount[t]=m-l,k=[e.tShift[t]],e.tShift[t]=S-e.bMarks[t],w=e.md.block.ruler.getRules("blockquote"),b=e.parentType,e.parentType="blockquote",d=t+1;d<n&&(C=e.sCount[d]<e.blkIndent,!((S=e.bMarks[d]+e.tShift[d])>=(x=e.eMarks[d])));d++)if(62!==e.src.charCodeAt(S++)||C){if(u)break;for(E=!1,s=0,c=w.length;s<c;s++)if(w[s](e,d,n,!0)){E=!0;break}if(E){e.lineMax=d,0!==e.blkIndent&&(h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]-=e.blkIndent);break}h.push(e.bMarks[d]),f.push(e.bsCount[d]),k.push(e.tShift[d]),v.push(e.sCount[d]),e.sCount[d]=-1}else{for(l=m=e.sCount[d]+1,32===e.src.charCodeAt(S)?(S++,l++,m++,o=!1,y=!0):9===e.src.charCodeAt(S)?(y=!0,(e.bsCount[d]+m)%4==3?(S++,l++,m++,o=!1):o=!0):y=!1,h.push(e.bMarks[d]),e.bMarks[d]=S;S<x&&(i=e.src.charCodeAt(S),r(i));)9===i?m+=4-(m+e.bsCount[d]+(o?1:0))%4:m++,S++;u=S>=x,f.push(e.bsCount[d]),e.bsCount[d]=e.sCount[d]+1+(y?1:0),v.push(e.sCount[d]),e.sCount[d]=m-l,k.push(e.tShift[d]),e.tShift[d]=S-e.bMarks[d]}for(g=e.blkIndent,e.blkIndent=0,(_=e.push("blockquote_open","blockquote",1)).markup=">",_.map=p=[t,0],e.md.block.tokenize(e,t,d),(_=e.push("blockquote_close","blockquote",-1)).markup=">",e.lineMax=j,e.parentType=b,p[1]=e.line,s=0;s<k.length;s++)e.bMarks[s+t]=h[s],e.tShift[s+t]=k[s],e.sCount[s+t]=v[s],e.bsCount[s+t]=f[s];return e.blkIndent=g,!0}},63390:function(e){"use strict";e.exports=function(e,t,n){var r,a,o;if(e.sCount[t]-e.blkIndent<4)return!1;for(a=r=t+1;r<n;)if(e.isEmpty(r))r++;else{if(!(e.sCount[r]-e.blkIndent>=4))break;a=++r}return e.line=a,(o=e.push("code_block","code",0)).content=e.getLines(t,a,4+e.blkIndent,!0),o.map=[t,e.line],!0}},7477:function(e){"use strict";e.exports=function(e,t,n,r){var a,o,i,s,l,c,u,p=!1,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(d+3>m)return!1;if(126!==(a=e.src.charCodeAt(d))&&96!==a)return!1;if(l=d,(o=(d=e.skipChars(d,a))-l)<3)return!1;if(u=e.src.slice(l,d),i=e.src.slice(d,m),96===a&&i.indexOf(String.fromCharCode(a))>=0)return!1;if(r)return!0;for(s=t;!(++s>=n)&&!((d=l=e.bMarks[s]+e.tShift[s])<(m=e.eMarks[s])&&e.sCount[s]<e.blkIndent);)if(e.src.charCodeAt(d)===a&&!(e.sCount[s]-e.blkIndent>=4||(d=e.skipChars(d,a))-l<o||(d=e.skipSpaces(d))<m)){p=!0;break}return o=e.sCount[t],e.line=s+(p?1:0),(c=e.push("fence","code",0)).info=i,c.content=e.getLines(t+1,s,o,!0),c.markup=u,c.map=[t,e.line],!0}},66926:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(35!==(o=e.src.charCodeAt(c))||c>=u)return!1;for(i=1,o=e.src.charCodeAt(++c);35===o&&c<u&&i<=6;)i++,o=e.src.charCodeAt(++c);return!(i>6||c<u&&!r(o))&&(a||(u=e.skipSpacesBack(u,c),(s=e.skipCharsBack(u,35,c))>c&&r(e.src.charCodeAt(s-1))&&(u=s),e.line=t+1,(l=e.push("heading_open","h"+String(i),1)).markup="########".slice(0,i),l.map=[t,e.line],(l=e.push("inline","",0)).content=e.src.slice(c,u).trim(),l.map=[t,e.line],l.children=[],(l=e.push("heading_close","h"+String(i),-1)).markup="########".slice(0,i)),!0)}},94438:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t,n,a){var o,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(42!==(o=e.src.charCodeAt(c++))&&45!==o&&95!==o)return!1;for(i=1;c<u;){if((s=e.src.charCodeAt(c++))!==o&&!r(s))return!1;s===o&&i++}return!(i<3)&&(a||(e.line=t+1,(l=e.push("hr","hr",0)).map=[t,e.line],l.markup=Array(i+1).join(String.fromCharCode(o))),!0)}},77476:function(e,t,n){"use strict";var r=n(4692),a=n(75501).q,o=[[/^<(script|pre|style)(?=(\s|>|$))/i,/<\/(script|pre|style)>/i,!0],[/^<!--/,/-->/,!0],[/^<\?/,/\?>/,!0],[/^<![A-Z]/,/>/,!0],[/^<!\[CDATA\[/,/\]\]>/,!0],[new RegExp("^</?("+r.join("|")+")(?=(\\s|/?>|$))","i"),/^$/,!0],[new RegExp(a.source+"\\s*$"),/^$/,!1]];e.exports=function(e,t,n,r){var a,i,s,l,c=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return!1;if(!e.md.options.html)return!1;if(60!==e.src.charCodeAt(c))return!1;for(l=e.src.slice(c,u),a=0;a<o.length&&!o[a][0].test(l);a++);if(a===o.length)return!1;if(r)return o[a][2];if(i=t+1,!o[a][1].test(l))for(;i<n&&!(e.sCount[i]<e.blkIndent);i++)if(c=e.bMarks[i]+e.tShift[i],u=e.eMarks[i],l=e.src.slice(c,u),o[a][1].test(l)){0!==l.length&&i++;break}return e.line=i,(s=e.push("html_block","",0)).map=[t,i],s.content=e.getLines(t,i,e.blkIndent,!0),!0}},22288:function(e){"use strict";e.exports=function(e,t,n){var r,a,o,i,s,l,c,u,p,d,m=t+1,h=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return!1;for(d=e.parentType,e.parentType="paragraph";m<n&&!e.isEmpty(m);m++)if(!(e.sCount[m]-e.blkIndent>3)){if(e.sCount[m]>=e.blkIndent&&(l=e.bMarks[m]+e.tShift[m])<(c=e.eMarks[m])&&(45===(p=e.src.charCodeAt(l))||61===p)&&(l=e.skipChars(l,p),(l=e.skipSpaces(l))>=c)){u=61===p?1:2;break}if(!(e.sCount[m]<0)){for(a=!1,o=0,i=h.length;o<i;o++)if(h[o](e,m,n,!0)){a=!0;break}if(a)break}}return!!u&&(r=e.getLines(t,m,e.blkIndent,!1).trim(),e.line=m+1,(s=e.push("heading_open","h"+String(u),1)).markup=String.fromCharCode(p),s.map=[t,e.line],(s=e.push("inline","",0)).content=r,s.map=[t,e.line-1],s.children=[],(s=e.push("heading_close","h"+String(u),-1)).markup=String.fromCharCode(p),e.parentType=d,!0)}},90185:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n,a,o,i;return a=e.bMarks[t]+e.tShift[t],o=e.eMarks[t],42!==(n=e.src.charCodeAt(a++))&&45!==n&&43!==n||a<o&&(i=e.src.charCodeAt(a),!r(i))?-1:a}function o(e,t){var n,a=e.bMarks[t]+e.tShift[t],o=a,i=e.eMarks[t];if(o+1>=i)return-1;if((n=e.src.charCodeAt(o++))<48||n>57)return-1;for(;;){if(o>=i)return-1;if(!((n=e.src.charCodeAt(o++))>=48&&n<=57)){if(41===n||46===n)break;return-1}if(o-a>=10)return-1}return o<i&&(n=e.src.charCodeAt(o),!r(n))?-1:o}e.exports=function(e,t,n,r){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x,T,N,A,P,I,M,R=!1,L=!0;if(e.sCount[t]-e.blkIndent>=4)return!1;if(e.listIndent>=0&&e.sCount[t]-e.listIndent>=4&&e.sCount[t]<e.blkIndent)return!1;if(r&&"paragraph"===e.parentType&&e.tShift[t]>=e.blkIndent&&(R=!0),(T=o(e,t))>=0){if(d=!0,A=e.bMarks[t]+e.tShift[t],v=Number(e.src.substr(A,T-A-1)),R&&1!==v)return!1}else{if(!((T=a(e,t))>=0))return!1;d=!1}if(R&&e.skipSpaces(T)>=e.eMarks[t])return!1;if(b=e.src.charCodeAt(T-1),r)return!0;for(g=e.tokens.length,d?(M=e.push("ordered_list_open","ol",1),1!==v&&(M.attrs=[["start",v]])):M=e.push("bullet_list_open","ul",1),M.map=f=[t,0],M.markup=String.fromCharCode(b),y=t,N=!1,I=e.md.block.ruler.getRules("list"),_=e.parentType,e.parentType="list";y<n;){for(x=T,k=e.eMarks[y],p=E=e.sCount[y]+T-(e.bMarks[t]+e.tShift[t]);x<k;){if(9===(i=e.src.charCodeAt(x)))E+=4-(E+e.bsCount[y])%4;else{if(32!==i)break;E++}x++}if((u=(s=x)>=k?1:E-p)>4&&(u=1),c=p+u,(M=e.push("list_item_open","li",1)).markup=String.fromCharCode(b),M.map=m=[t,0],S=e.tight,j=e.tShift[t],C=e.sCount[t],w=e.listIndent,e.listIndent=e.blkIndent,e.blkIndent=c,e.tight=!0,e.tShift[t]=s-e.bMarks[t],e.sCount[t]=E,s>=k&&e.isEmpty(t+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,t,n,!0),e.tight&&!N||(L=!1),N=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[t]=j,e.sCount[t]=C,e.tight=S,(M=e.push("list_item_close","li",-1)).markup=String.fromCharCode(b),y=t=e.line,m[1]=y,s=e.bMarks[t],y>=n)break;if(e.sCount[y]<e.blkIndent)break;if(e.sCount[t]-e.blkIndent>=4)break;for(P=!1,l=0,h=I.length;l<h;l++)if(I[l](e,y,n,!0)){P=!0;break}if(P)break;if(d){if((T=o(e,y))<0)break}else if((T=a(e,y))<0)break;if(b!==e.src.charCodeAt(T-1))break}return(M=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1)).markup=String.fromCharCode(b),f[1]=y,e.line=y,e.parentType=_,L&&function(e,t){var n,r,a=e.level+2;for(n=t+2,r=e.tokens.length-2;n<r;n++)e.tokens[n].level===a&&"paragraph_open"===e.tokens[n].type&&(e.tokens[n+2].hidden=!0,e.tokens[n].hidden=!0,n+=2)}(e,g),!0}},13958:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l=t+1,c=e.md.block.ruler.getRules("paragraph"),u=e.lineMax;for(s=e.parentType,e.parentType="paragraph";l<u&&!e.isEmpty(l);l++)if(!(e.sCount[l]-e.blkIndent>3||e.sCount[l]<0)){for(r=!1,a=0,o=c.length;a<o;a++)if(c[a](e,l,u,!0)){r=!0;break}if(r)break}return n=e.getLines(t,l,e.blkIndent,!1).trim(),e.line=l,(i=e.push("paragraph_open","p",1)).map=[t,e.line],(i=e.push("inline","",0)).content=n,i.map=[t,e.line],i.children=[],i=e.push("paragraph_close","p",-1),e.parentType=s,!0}},48707:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t,n,o){var i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w=0,_=e.bMarks[t]+e.tShift[t],C=e.eMarks[t],j=t+1;if(e.sCount[t]-e.blkIndent>=4)return!1;if(91!==e.src.charCodeAt(_))return!1;for(;++_<C;)if(93===e.src.charCodeAt(_)&&92!==e.src.charCodeAt(_-1)){if(_+1===C)return!1;if(58!==e.src.charCodeAt(_+1))return!1;break}for(c=e.lineMax,y=e.md.block.ruler.getRules("reference"),f=e.parentType,e.parentType="reference";j<c&&!e.isEmpty(j);j++)if(!(e.sCount[j]-e.blkIndent>3||e.sCount[j]<0)){for(k=!1,p=0,d=y.length;p<d;p++)if(y[p](e,j,c,!0)){k=!0;break}if(k)break}for(C=(v=e.getLines(t,j,e.blkIndent,!1).trim()).length,_=1;_<C;_++){if(91===(i=v.charCodeAt(_)))return!1;if(93===i){h=_;break}(10===i||92===i&&++_<C&&10===v.charCodeAt(_))&&w++}if(h<0||58!==v.charCodeAt(h+1))return!1;for(_=h+2;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;if(!(g=e.md.helpers.parseLinkDestination(v,_,C)).ok)return!1;if(u=e.md.normalizeLink(g.str),!e.md.validateLink(u))return!1;for(s=_=g.pos,l=w+=g.lines,b=_;_<C;_++)if(10===(i=v.charCodeAt(_)))w++;else if(!a(i))break;for(g=e.md.helpers.parseLinkTitle(v,_,C),_<C&&b!==_&&g.ok?(E=g.str,_=g.pos,w+=g.lines):(E="",_=s,w=l);_<C&&(i=v.charCodeAt(_),a(i));)_++;if(_<C&&10!==v.charCodeAt(_)&&E)for(E="",_=s,w=l;_<C&&(i=v.charCodeAt(_),a(i));)_++;return!(_<C&&10!==v.charCodeAt(_))&&(!!(m=r(v.slice(1,h)))&&(o||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[m]&&(e.env.references[m]={title:E,href:u}),e.parentType=f,e.line=t+w+1),!0))}},62389:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isSpace;function o(e,t,n,r){var o,i,s,l,c,u,p,d;for(this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0,this.result="",d=!1,s=l=u=p=0,c=(i=this.src).length;l<c;l++){if(o=i.charCodeAt(l),!d){if(a(o)){u++,9===o?p+=4-p%4:p++;continue}d=!0}10!==o&&l!==c-1||(10!==o&&l++,this.bMarks.push(s),this.eMarks.push(l),this.tShift.push(u),this.sCount.push(p),this.bsCount.push(0),d=!1,u=0,p=0,s=l+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1}o.prototype.push=function(e,t,n){var a=new r(e,t,n);return a.block=!0,n<0&&this.level--,a.level=this.level,n>0&&this.level++,this.tokens.push(a),a},o.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},o.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},o.prototype.skipSpaces=function(e){for(var t,n=this.src.length;e<n&&(t=this.src.charCodeAt(e),a(t));e++);return e},o.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!a(this.src.charCodeAt(--e)))return e+1;return e},o.prototype.skipChars=function(e,t){for(var n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},o.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},o.prototype.getLines=function(e,t,n,r){var o,i,s,l,c,u,p,d=e;if(e>=t)return"";for(u=new Array(t-e),o=0;d<t;d++,o++){for(i=0,p=l=this.bMarks[d],c=d+1<t||r?this.eMarks[d]+1:this.eMarks[d];l<c&&i<n;){if(s=this.src.charCodeAt(l),a(s))9===s?i+=4-(i+this.bsCount[d])%4:i++;else{if(!(l-p<this.tShift[d]))break;i++}l++}u[o]=i>n?new Array(i-n+1).join(" ")+this.src.slice(l,c):this.src.slice(l,c)}return u.join("")},o.prototype.Token=r,e.exports=o},33168:function(e,t,n){"use strict";var r=n(58201).isSpace;function a(e,t){var n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.substr(n,r-n)}function o(e){var t,n=[],r=0,a=e.length,o=!1,i=0,s="";for(t=e.charCodeAt(r);r<a;)124===t&&(o?(s+=e.substring(i,r-1),i=r):(n.push(s+e.substring(i,r)),s="",i=r+1)),o=92===t,r++,t=e.charCodeAt(r);return n.push(s+e.substring(i)),n}e.exports=function(e,t,n,i){var s,l,c,u,p,d,m,h,f,g,b,v,k,y,E,w;if(t+2>n)return!1;if(d=t+1,e.sCount[d]<e.blkIndent)return!1;if(e.sCount[d]-e.blkIndent>=4)return!1;if((c=e.bMarks[d]+e.tShift[d])>=e.eMarks[d])return!1;if(124!==(s=e.src.charCodeAt(c++))&&45!==s&&58!==s)return!1;for(;c<e.eMarks[d];){if(124!==(s=e.src.charCodeAt(c))&&45!==s&&58!==s&&!r(s))return!1;c++}for(m=(l=a(e,t+1)).split("|"),g=[],u=0;u<m.length;u++){if(!(b=m[u].trim())){if(0===u||u===m.length-1)continue;return!1}if(!/^:?-+:?$/.test(b))return!1;58===b.charCodeAt(b.length-1)?g.push(58===b.charCodeAt(0)?"center":"right"):58===b.charCodeAt(0)?g.push("left"):g.push("")}if(-1===(l=a(e,t).trim()).indexOf("|"))return!1;if(e.sCount[t]-e.blkIndent>=4)return!1;if((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),0===(h=m.length)||h!==g.length)return!1;if(i)return!0;for(y=e.parentType,e.parentType="table",w=e.md.block.ruler.getRules("blockquote"),(f=e.push("table_open","table",1)).map=v=[t,0],(f=e.push("thead_open","thead",1)).map=[t,t+1],(f=e.push("tr_open","tr",1)).map=[t,t+1],u=0;u<m.length;u++)f=e.push("th_open","th",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u].trim(),f.children=[],f=e.push("th_close","th",-1);for(f=e.push("tr_close","tr",-1),f=e.push("thead_close","thead",-1),d=t+2;d<n&&!(e.sCount[d]<e.blkIndent);d++){for(E=!1,u=0,p=w.length;u<p;u++)if(w[u](e,d,n,!0)){E=!0;break}if(E)break;if(!(l=a(e,d).trim()))break;if(e.sCount[d]-e.blkIndent>=4)break;for((m=o(l)).length&&""===m[0]&&m.shift(),m.length&&""===m[m.length-1]&&m.pop(),d===t+2&&((f=e.push("tbody_open","tbody",1)).map=k=[t+2,0]),(f=e.push("tr_open","tr",1)).map=[d,d+1],u=0;u<h;u++)f=e.push("td_open","td",1),g[u]&&(f.attrs=[["style","text-align:"+g[u]]]),(f=e.push("inline","",0)).content=m[u]?m[u].trim():"",f.children=[],f=e.push("td_close","td",-1);f=e.push("tr_close","tr",-1)}return k&&(f=e.push("tbody_close","tbody",-1),k[1]=d),f=e.push("table_close","table",-1),v[1]=d,e.parentType=y,e.line=d,!0}},37262:function(e){"use strict";e.exports=function(e){var t;e.inlineMode?((t=new e.Token("inline","",0)).content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens)}},50127:function(e){"use strict";e.exports=function(e){var t,n,r,a=e.tokens;for(n=0,r=a.length;n<r;n++)"inline"===(t=a[n]).type&&e.md.inline.parse(t.content,e.md,e.env,t.children)}},65644:function(e,t,n){"use strict";var r=n(58201).arrayReplaceAt;function a(e){return/^<\/a\s*>/i.test(e)}e.exports=function(e){var t,n,o,i,s,l,c,u,p,d,m,h,f,g,b,v,k,y,E=e.tokens;if(e.md.options.linkify)for(n=0,o=E.length;n<o;n++)if("inline"===E[n].type&&e.md.linkify.pretest(E[n].content))for(f=0,t=(i=E[n].children).length-1;t>=0;t--)if("link_close"!==(l=i[t]).type){if("html_inline"===l.type&&(y=l.content,/^<a[>\s]/i.test(y)&&f>0&&f--,a(l.content)&&f++),!(f>0)&&"text"===l.type&&e.md.linkify.test(l.content)){for(p=l.content,k=e.md.linkify.match(p),c=[],h=l.level,m=0,u=0;u<k.length;u++)g=k[u].url,b=e.md.normalizeLink(g),e.md.validateLink(b)&&(v=k[u].text,v=k[u].schema?"mailto:"!==k[u].schema||/^mailto:/i.test(v)?e.md.normalizeLinkText(v):e.md.normalizeLinkText("mailto:"+v).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+v).replace(/^http:\/\//,""),(d=k[u].index)>m&&((s=new e.Token("text","",0)).content=p.slice(m,d),s.level=h,c.push(s)),(s=new e.Token("link_open","a",1)).attrs=[["href",b]],s.level=h++,s.markup="linkify",s.info="auto",c.push(s),(s=new e.Token("text","",0)).content=v,s.level=h,c.push(s),(s=new e.Token("link_close","a",-1)).level=--h,s.markup="linkify",s.info="auto",c.push(s),m=k[u].lastIndex);m<p.length&&((s=new e.Token("text","",0)).content=p.slice(m),s.level=h,c.push(s)),E[n].children=i=r(i,t,c)}}else for(t--;i[t].level!==l.level&&"link_open"!==i[t].type;)t--}},75615:function(e){"use strict";var t=/\r\n?|\n/g,n=/\0/g;e.exports=function(e){var r;r=(r=e.src.replace(t,"\n")).replace(n,"�"),e.src=r}},652:function(e){"use strict";var t=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,n=/\((c|tm|r|p)\)/i,r=/\((c|tm|r|p)\)/gi,a={c:"©",r:"®",p:"§",tm:"™"};function o(e,t){return a[t.toLowerCase()]}function i(e){var t,n,a=0;for(t=e.length-1;t>=0;t--)"text"!==(n=e[t]).type||a||(n.content=n.content.replace(r,o)),"link_open"===n.type&&"auto"===n.info&&a--,"link_close"===n.type&&"auto"===n.info&&a++}function s(e){var n,r,a=0;for(n=e.length-1;n>=0;n--)"text"!==(r=e[n]).type||a||t.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&a--,"link_close"===r.type&&"auto"===r.info&&a++}e.exports=function(e){var r;if(e.md.options.typographer)for(r=e.tokens.length-1;r>=0;r--)"inline"===e.tokens[r].type&&(n.test(e.tokens[r].content)&&i(e.tokens[r].children),t.test(e.tokens[r].content)&&s(e.tokens[r].children))}},34335:function(e,t,n){"use strict";var r=n(58201).isWhiteSpace,a=n(58201).isPunctChar,o=n(58201).isMdAsciiPunct,i=/['"]/,s=/['"]/g;function l(e,t,n){return e.substr(0,t)+n+e.substr(t+1)}function c(e,t){var n,i,c,u,p,d,m,h,f,g,b,v,k,y,E,w,_,C,j,S,x;for(j=[],n=0;n<e.length;n++){for(i=e[n],m=e[n].level,_=j.length-1;_>=0&&!(j[_].level<=m);_--);if(j.length=_+1,"text"===i.type){p=0,d=(c=i.content).length;e:for(;p<d&&(s.lastIndex=p,u=s.exec(c));){if(E=w=!0,p=u.index+1,C="'"===u[0],f=32,u.index-1>=0)f=c.charCodeAt(u.index-1);else for(_=n-1;_>=0&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_--)if(e[_].content){f=e[_].content.charCodeAt(e[_].content.length-1);break}if(g=32,p<d)g=c.charCodeAt(p);else for(_=n+1;_<e.length&&("softbreak"!==e[_].type&&"hardbreak"!==e[_].type);_++)if(e[_].content){g=e[_].content.charCodeAt(0);break}if(b=o(f)||a(String.fromCharCode(f)),v=o(g)||a(String.fromCharCode(g)),k=r(f),(y=r(g))?E=!1:v&&(k||b||(E=!1)),k?w=!1:b&&(y||v||(w=!1)),34===g&&'"'===u[0]&&f>=48&&f<=57&&(w=E=!1),E&&w&&(E=b,w=v),E||w){if(w)for(_=j.length-1;_>=0&&(h=j[_],!(j[_].level<m));_--)if(h.single===C&&j[_].level===m){h=j[_],C?(S=t.md.options.quotes[2],x=t.md.options.quotes[3]):(S=t.md.options.quotes[0],x=t.md.options.quotes[1]),i.content=l(i.content,u.index,x),e[h.token].content=l(e[h.token].content,h.pos,S),p+=x.length-1,h.token===n&&(p+=S.length-1),d=(c=i.content).length,j.length=_;continue e}E?j.push({token:n,pos:u.index,single:C,level:m}):w&&C&&(i.content=l(i.content,u.index,"’"))}else C&&(i.content=l(i.content,u.index,"’"))}}}}e.exports=function(e){var t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&i.test(e.tokens[t].content)&&c(e.tokens[t].children,e)}},53706:function(e,t,n){"use strict";var r=n(82069);function a(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=!1,this.md=t}a.prototype.Token=r,e.exports=a},84145:function(e){"use strict";var t=/^([a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,n=/^([a-zA-Z][a-zA-Z0-9+.\-]{1,31}):([^<>\x00-\x20]*)$/;e.exports=function(e,r){var a,o,i,s,l,c,u=e.pos;if(60!==e.src.charCodeAt(u))return!1;for(l=e.pos,c=e.posMax;;){if(++u>=c)return!1;if(60===(s=e.src.charCodeAt(u)))return!1;if(62===s)break}return a=e.src.slice(l+1,u),n.test(a)?(o=e.md.normalizeLink(a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0)):!!t.test(a)&&(o=e.md.normalizeLink("mailto:"+a),!!e.md.validateLink(o)&&(r||((i=e.push("link_open","a",1)).attrs=[["href",o]],i.markup="autolink",i.info="auto",(i=e.push("text","",0)).content=e.md.normalizeLinkText(a),(i=e.push("link_close","a",-1)).markup="autolink",i.info="auto"),e.pos+=a.length+2,!0))}},61191:function(e){"use strict";e.exports=function(e,t){var n,r,a,o,i,s,l,c,u=e.pos;if(96!==e.src.charCodeAt(u))return!1;for(n=u,u++,r=e.posMax;u<r&&96===e.src.charCodeAt(u);)u++;if(l=(a=e.src.slice(n,u)).length,e.backticksScanned&&(e.backticks[l]||0)<=n)return t||(e.pending+=a),e.pos+=l,!0;for(i=s=u;-1!==(i=e.src.indexOf("`",s));){for(s=i+1;s<r&&96===e.src.charCodeAt(s);)s++;if((c=s-i)===l)return t||((o=e.push("code_inline","code",0)).markup=a,o.content=e.src.slice(u,i).replace(/\n/g," ").replace(/^ (.+) $/,"$1")),e.pos=s,!0;e.backticks[c]=i}return e.backticksScanned=!0,t||(e.pending+=a),e.pos+=l,!0}},93296:function(e){"use strict";function t(e,t){var n,r,a,o,i,s,l,c,u={},p=t.length;for(n=0;n<p;n++)if((a=t[n]).length=a.length||0,a.close){for(u.hasOwnProperty(a.marker)||(u[a.marker]=[-1,-1,-1]),i=u[a.marker][a.length%3],(r=n-a.jump-1)<-1&&(r=-1),s=r;r>i;r-=o.jump+1)if((o=t[r]).marker===a.marker&&o.open&&o.end<0&&(l=!1,(o.close||a.open)&&(o.length+a.length)%3==0&&(o.length%3==0&&a.length%3==0||(l=!0)),!l)){c=r>0&&!t[r-1].open?t[r-1].jump+1:0,a.jump=n-r+c,a.open=!1,o.end=n,o.jump=c,o.close=!1,s=-1;break}-1!==s&&(u[a.marker][(a.length||0)%3]=s)}}e.exports=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(0,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(0,r[n].delimiters)}},98052:function(e){"use strict";function t(e,t){var n,r,a,o,i,s;for(n=t.length-1;n>=0;n--)95!==(r=t[n]).marker&&42!==r.marker||-1!==r.end&&(a=t[r.end],s=n>0&&t[n-1].end===r.end+1&&t[n-1].token===r.token-1&&t[r.end+1].token===a.token+1&&t[n-1].marker===r.marker,i=String.fromCharCode(r.marker),(o=e.tokens[r.token]).type=s?"strong_open":"em_open",o.tag=s?"strong":"em",o.nesting=1,o.markup=s?i+i:i,o.content="",(o=e.tokens[a.token]).type=s?"strong_close":"em_close",o.tag=s?"strong":"em",o.nesting=-1,o.markup=s?i+i:i,o.content="",s&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--))}e.exports.w=function(e,t){var n,r,a=e.pos,o=e.src.charCodeAt(a);if(t)return!1;if(95!==o&&42!==o)return!1;for(r=e.scanDelims(e.pos,42===o),n=0;n<r.length;n++)e.push("text","",0).content=String.fromCharCode(o),e.delimiters.push({marker:o,length:r.length,jump:n,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},44659:function(e,t,n){"use strict";var r=n(95926),a=n(58201).has,o=n(58201).isValidEntityCode,i=n(58201).fromCodePoint,s=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,l=/^&([a-z][a-z0-9]{1,31});/i;e.exports=function(e,t){var n,c,u=e.pos,p=e.posMax;if(38!==e.src.charCodeAt(u))return!1;if(u+1<p)if(35===e.src.charCodeAt(u+1)){if(c=e.src.slice(u).match(s))return t||(n="x"===c[1][0].toLowerCase()?parseInt(c[1].slice(1),16):parseInt(c[1],10),e.pending+=o(n)?i(n):i(65533)),e.pos+=c[0].length,!0}else if((c=e.src.slice(u).match(l))&&a(r,c[1]))return t||(e.pending+=r[c[1]]),e.pos+=c[0].length,!0;return t||(e.pending+="&"),e.pos++,!0}},52960:function(e,t,n){"use strict";for(var r=n(58201).isSpace,a=[],o=0;o<256;o++)a.push(0);"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach((function(e){a[e.charCodeAt(0)]=1})),e.exports=function(e,t){var n,o=e.pos,i=e.posMax;if(92!==e.src.charCodeAt(o))return!1;if(++o<i){if((n=e.src.charCodeAt(o))<256&&0!==a[n])return t||(e.pending+=e.src[o]),e.pos+=2,!0;if(10===n){for(t||e.push("hardbreak","br",0),o++;o<i&&(n=e.src.charCodeAt(o),r(n));)o++;return e.pos=o,!0}}return t||(e.pending+="\\"),e.pos++,!0}},20354:function(e,t,n){"use strict";var r=n(75501).n;e.exports=function(e,t){var n,a,o,i=e.pos;return!!e.md.options.html&&(o=e.posMax,!(60!==e.src.charCodeAt(i)||i+2>=o)&&(!(33!==(n=e.src.charCodeAt(i+1))&&63!==n&&47!==n&&!function(e){var t=32|e;return t>=97&&t<=122}(n))&&(!!(a=e.src.slice(i).match(r))&&(t||(e.push("html_inline","",0).content=e.src.slice(i,i+a[0].length)),e.pos+=a[0].length,!0))))}},39590:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d,m,h,f,g,b="",v=e.pos,k=e.posMax;if(33!==e.src.charCodeAt(e.pos))return!1;if(91!==e.src.charCodeAt(e.pos+1))return!1;if(c=e.pos+2,(l=e.md.helpers.parseLinkLabel(e,e.pos+1,!1))<0)return!1;if((u=l+1)<k&&40===e.src.charCodeAt(u)){for(u++;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(u>=k)return!1;for(g=u,(d=e.md.helpers.parseLinkDestination(e.src,u,e.posMax)).ok&&(b=e.md.normalizeLink(d.str),e.md.validateLink(b)?u=d.pos:b=""),g=u;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);if(d=e.md.helpers.parseLinkTitle(e.src,u,e.posMax),u<k&&g!==u&&d.ok)for(m=d.str,u=d.pos;u<k&&(o=e.src.charCodeAt(u),a(o)||10===o);u++);else m="";if(u>=k||41!==e.src.charCodeAt(u))return e.pos=v,!1;u++}else{if(void 0===e.env.references)return!1;if(u<k&&91===e.src.charCodeAt(u)?(g=u+1,(u=e.md.helpers.parseLinkLabel(e,u))>=0?s=e.src.slice(g,u++):u=l+1):u=l+1,s||(s=e.src.slice(c,l)),!(p=e.env.references[r(s)]))return e.pos=v,!1;b=p.href,m=p.title}return t||(i=e.src.slice(c,l),e.md.inline.parse(i,e.md,e.env,f=[]),(h=e.push("image","img",0)).attrs=n=[["src",b],["alt",""]],h.children=f,h.content=i,m&&n.push(["title",m])),e.pos=u,e.posMax=k,!0}},68839:function(e,t,n){"use strict";var r=n(58201).normalizeReference,a=n(58201).isSpace;e.exports=function(e,t){var n,o,i,s,l,c,u,p,d="",m="",h=e.pos,f=e.posMax,g=e.pos,b=!0;if(91!==e.src.charCodeAt(e.pos))return!1;if(l=e.pos+1,(s=e.md.helpers.parseLinkLabel(e,e.pos,!0))<0)return!1;if((c=s+1)<f&&40===e.src.charCodeAt(c)){for(b=!1,c++;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(c>=f)return!1;if(g=c,(u=e.md.helpers.parseLinkDestination(e.src,c,e.posMax)).ok){for(d=e.md.normalizeLink(u.str),e.md.validateLink(d)?c=u.pos:d="",g=c;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);if(u=e.md.helpers.parseLinkTitle(e.src,c,e.posMax),c<f&&g!==c&&u.ok)for(m=u.str,c=u.pos;c<f&&(o=e.src.charCodeAt(c),a(o)||10===o);c++);}(c>=f||41!==e.src.charCodeAt(c))&&(b=!0),c++}if(b){if(void 0===e.env.references)return!1;if(c<f&&91===e.src.charCodeAt(c)?(g=c+1,(c=e.md.helpers.parseLinkLabel(e,c))>=0?i=e.src.slice(g,c++):c=s+1):c=s+1,i||(i=e.src.slice(l,s)),!(p=e.env.references[r(i)]))return e.pos=h,!1;d=p.href,m=p.title}return t||(e.pos=l,e.posMax=s,e.push("link_open","a",1).attrs=n=[["href",d]],m&&n.push(["title",m]),e.md.inline.tokenize(e),e.push("link_close","a",-1)),e.pos=c,e.posMax=f,!0}},22051:function(e,t,n){"use strict";var r=n(58201).isSpace;e.exports=function(e,t){var n,a,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;for(n=e.pending.length-1,a=e.posMax,t||(n>=0&&32===e.pending.charCodeAt(n)?n>=1&&32===e.pending.charCodeAt(n-1)?(e.pending=e.pending.replace(/ +$/,""),e.push("hardbreak","br",0)):(e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0)):e.push("softbreak","br",0)),o++;o<a&&r(e.src.charCodeAt(o));)o++;return e.pos=o,!0}},4160:function(e,t,n){"use strict";var r=n(82069),a=n(58201).isWhiteSpace,o=n(58201).isPunctChar,i=n(58201).isMdAsciiPunct;function s(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=!1}s.prototype.pushPending=function(){var e=new r("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},s.prototype.push=function(e,t,n){this.pending&&this.pushPending();var a=new r(e,t,n),o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),a.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(a),this.tokens_meta.push(o),a},s.prototype.scanDelims=function(e,t){var n,r,s,l,c,u,p,d,m,h=e,f=!0,g=!0,b=this.posMax,v=this.src.charCodeAt(e);for(n=e>0?this.src.charCodeAt(e-1):32;h<b&&this.src.charCodeAt(h)===v;)h++;return s=h-e,r=h<b?this.src.charCodeAt(h):32,p=i(n)||o(String.fromCharCode(n)),m=i(r)||o(String.fromCharCode(r)),u=a(n),(d=a(r))?f=!1:m&&(u||p||(f=!1)),u?g=!1:p&&(d||m||(g=!1)),t?(l=f,c=g):(l=f&&(!g||p),c=g&&(!f||m)),{can_open:l,can_close:c,length:s}},s.prototype.Token=r,e.exports=s},30832:function(e){"use strict";function t(e,t){var n,r,a,o,i,s=[],l=t.length;for(n=0;n<l;n++)126===(a=t[n]).marker&&-1!==a.end&&(o=t[a.end],(i=e.tokens[a.token]).type="s_open",i.tag="s",i.nesting=1,i.markup="~~",i.content="",(i=e.tokens[o.token]).type="s_close",i.tag="s",i.nesting=-1,i.markup="~~",i.content="","text"===e.tokens[o.token-1].type&&"~"===e.tokens[o.token-1].content&&s.push(o.token-1));for(;s.length;){for(r=(n=s.pop())+1;r<e.tokens.length&&"s_close"===e.tokens[r].type;)r++;n!==--r&&(i=e.tokens[r],e.tokens[r]=e.tokens[n],e.tokens[n]=i)}}e.exports.w=function(e,t){var n,r,a,o,i=e.pos,s=e.src.charCodeAt(i);if(t)return!1;if(126!==s)return!1;if(a=(r=e.scanDelims(e.pos,!0)).length,o=String.fromCharCode(s),a<2)return!1;for(a%2&&(e.push("text","",0).content=o,a--),n=0;n<a;n+=2)e.push("text","",0).content=o+o,e.delimiters.push({marker:s,length:0,jump:n/2,token:e.tokens.length-1,end:-1,open:r.can_open,close:r.can_close});return e.pos+=r.length,!0},e.exports.g=function(e){var n,r=e.tokens_meta,a=e.tokens_meta.length;for(t(e,e.delimiters),n=0;n<a;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters)}},96733:function(e){"use strict";function t(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return!0;default:return!1}}e.exports=function(e,n){for(var r=e.pos;r<e.posMax&&!t(e.src.charCodeAt(r));)r++;return r!==e.pos&&(n||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}},72300:function(e){"use strict";e.exports=function(e){var t,n,r=0,a=e.tokens,o=e.tokens.length;for(t=n=0;t<o;t++)a[t].nesting<0&&r--,a[t].level=r,a[t].nesting>0&&r++,"text"===a[t].type&&t+1<o&&"text"===a[t+1].type?a[t+1].content=a[t].content+a[t+1].content:(t!==n&&(a[n]=a[t]),n++);t!==n&&(a.length=n)}},82069:function(e){"use strict";function t(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=!1,this.hidden=!1}t.prototype.attrIndex=function(e){var t,n,r;if(!this.attrs)return-1;for(n=0,r=(t=this.attrs).length;n<r;n++)if(t[n][0]===e)return n;return-1},t.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e]},t.prototype.attrSet=function(e,t){var n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r},t.prototype.attrGet=function(e){var t=this.attrIndex(e),n=null;return t>=0&&(n=this.attrs[t][1]),n},t.prototype.attrJoin=function(e,t){var n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t},e.exports=t},62098:function(e){"use strict";var t={};function n(e,r){var a;return"string"!=typeof r&&(r=n.defaultChars),a=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),a.push(r);for(n=0;n<e.length;n++)a[r=e.charCodeAt(n)]="%"+("0"+r.toString(16).toUpperCase()).slice(-2);return a}(r),e.replace(/(%[a-f0-9]{2})+/gi,(function(e){var t,n,r,o,i,s,l,c="";for(t=0,n=e.length;t<n;t+=3)(r=parseInt(e.slice(t+1,t+3),16))<128?c+=a[r]:192==(224&r)&&t+3<n&&128==(192&(o=parseInt(e.slice(t+4,t+6),16)))?(c+=(l=r<<6&1984|63&o)<128?"��":String.fromCharCode(l),t+=3):224==(240&r)&&t+6<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),128==(192&o)&&128==(192&i))?(c+=(l=r<<12&61440|o<<6&4032|63&i)<2048||l>=55296&&l<=57343?"���":String.fromCharCode(l),t+=6):240==(248&r)&&t+9<n&&(o=parseInt(e.slice(t+4,t+6),16),i=parseInt(e.slice(t+7,t+9),16),s=parseInt(e.slice(t+10,t+12),16),128==(192&o)&&128==(192&i)&&128==(192&s))?((l=r<<18&1835008|o<<12&258048|i<<6&4032|63&s)<65536||l>1114111?c+="����":(l-=65536,c+=String.fromCharCode(55296+(l>>10),56320+(1023&l))),t+=9):c+="�";return c}))}n.defaultChars=";/?:@&=+$,#",n.componentChars="",e.exports=n},9401:function(e){"use strict";var t={};function n(e,r,a){var o,i,s,l,c,u="";for("string"!=typeof r&&(a=r,r=n.defaultChars),void 0===a&&(a=!0),c=function(e){var n,r,a=t[e];if(a)return a;for(a=t[e]=[],n=0;n<128;n++)r=String.fromCharCode(n),/^[0-9a-z]$/i.test(r)?a.push(r):a.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));for(n=0;n<e.length;n++)a[e.charCodeAt(n)]=e[n];return a}(r),o=0,i=e.length;o<i;o++)if(s=e.charCodeAt(o),a&&37===s&&o+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(o+1,o+3)))u+=e.slice(o,o+3),o+=2;else if(s<128)u+=c[s];else if(s>=55296&&s<=57343){if(s>=55296&&s<=56319&&o+1<i&&(l=e.charCodeAt(o+1))>=56320&&l<=57343){u+=encodeURIComponent(e[o]+e[o+1]),o++;continue}u+="%EF%BF%BD"}else u+=encodeURIComponent(e[o]);return u}n.defaultChars=";/?:@&=+$,-_.!~*'()#",n.componentChars="-_.!~*'()",e.exports=n},56558:function(e){"use strict";e.exports=function(e){var t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||""}},36664:function(e,t,n){"use strict";e.exports.encode=n(9401),e.exports.decode=n(62098),e.exports.format=n(56558),e.exports.parse=n(5)},5:function(e){"use strict";function t(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null}var n=/^([a-z0-9.+-]+:)/i,r=/:[0-9]*$/,a=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,o=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),i=["'"].concat(o),s=["%","/","?",";","#"].concat(i),l=["/","?","#"],c=/^[+a-z0-9A-Z_-]{0,63}$/,u=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,p={javascript:!0,"javascript:":!0},d={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};t.prototype.parse=function(e,t){var r,o,i,m,h,f=e;if(f=f.trim(),!t&&1===e.split("#").length){var g=a.exec(f);if(g)return this.pathname=g[1],g[2]&&(this.search=g[2]),this}var b=n.exec(f);if(b&&(i=(b=b[0]).toLowerCase(),this.protocol=b,f=f.substr(b.length)),(t||b||f.match(/^\/\/[^@\/]+@[^@\/]+/))&&(!(h="//"===f.substr(0,2))||b&&p[b]||(f=f.substr(2),this.slashes=!0)),!p[b]&&(h||b&&!d[b])){var v,k,y=-1;for(r=0;r<l.length;r++)-1!==(m=f.indexOf(l[r]))&&(-1===y||m<y)&&(y=m);for(-1!==(k=-1===y?f.lastIndexOf("@"):f.lastIndexOf("@",y))&&(v=f.slice(0,k),f=f.slice(k+1),this.auth=v),y=-1,r=0;r<s.length;r++)-1!==(m=f.indexOf(s[r]))&&(-1===y||m<y)&&(y=m);-1===y&&(y=f.length),":"===f[y-1]&&y--;var E=f.slice(0,y);f=f.slice(y),this.parseHost(E),this.hostname=this.hostname||"";var w="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!w){var _=this.hostname.split(/\./);for(r=0,o=_.length;r<o;r++){var C=_[r];if(C&&!C.match(c)){for(var j="",S=0,x=C.length;S<x;S++)C.charCodeAt(S)>127?j+="x":j+=C[S];if(!j.match(c)){var T=_.slice(0,r),N=_.slice(r+1),A=C.match(u);A&&(T.push(A[1]),N.unshift(A[2])),N.length&&(f=N.join(".")+f),this.hostname=T.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),w&&(this.hostname=this.hostname.substr(1,this.hostname.length-2))}var P=f.indexOf("#");-1!==P&&(this.hash=f.substr(P),f=f.slice(0,P));var I=f.indexOf("?");return-1!==I&&(this.search=f.substr(I),f=f.slice(0,I)),f&&(this.pathname=f),d[i]&&this.hostname&&!this.pathname&&(this.pathname=""),this},t.prototype.parseHost=function(e){var t=r.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)},e.exports=function(e,n){if(e&&e instanceof t)return e;var r=new t;return r.parse(e,n),r}},99889:function(){},93474:function(){},33285:function(){},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},32002:function(e){var t=1e3,n=60*t,r=60*n,a=24*r,o=7*a,i=365.25*a;function s(e,t,n,r){var a=t>=1.5*n;return Math.round(e/n)+" "+r+(a?"s":"")}e.exports=function(e,l){l=l||{};var c=typeof e;if("string"===c&&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 l=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*i;case"weeks":case"week":case"w":return l*o;case"days":case"day":case"d":return l*a;case"hours":case"hour":case"hrs":case"hr":case"h":return l*r;case"minutes":case"minute":case"mins":case"min":case"m":return l*n;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"===c&&isFinite(e))return l.long?function(e){var o=Math.abs(e);if(o>=a)return s(e,o,a,"day");if(o>=r)return s(e,o,r,"hour");if(o>=n)return s(e,o,n,"minute");if(o>=t)return s(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=a)return Math.round(e/a)+"d";if(o>=r)return Math.round(e/r)+"h";if(o>=n)return Math.round(e/n)+"m";if(o>=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))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var i,s,l=a(e),c=1;c<arguments.length;c++){for(var u in i=Object(arguments[c]))n.call(i,u)&&(l[u]=i[u]);if(t){s=t(i);for(var p=0;p<s.length;p++)r.call(i,s[p])&&(l[s[p]]=i[s[p]])}}return l}},40278:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(92213),a=n.n(r),o=n(68211),i=n.n(o),s=n(48468),l=n.n(s)()("photon"),c={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},u="__domain__.invalid",p="http://".concat(u);function d(e,t){var n;try{n=new URL(e,p)}catch(e){return null}var r,o,s,d,m,h="https:"===n.protocol,f=new URL("https://i0.wp.com");if(m=n.host,/^i[0-2]\.wp\.com$/.test(m))f.pathname=n.pathname,f.hostname=n.hostname;else{if(n.search)return null;var g=n.href.replace("".concat(n.protocol,"/"),"");"blob:"===n.protocol&&(g=n.pathname.replace("://","//")),n.hostname===u&&(g=n.pathname),f.pathname=g,f.hostname=(r=g,o=a()(r),s=i()(o),d="i"+Math.floor(3*s()),l('determined server "%s" to use with "%s"',d,r),d+".wp.com"),h&&f.searchParams.set("ssl",1)}if(t)for(var b in t)"host"!==b&&"hostname"!==b?"secure"!==b||t[b]?f.searchParams.set(c[b]||b,t[b]):f.protocol="http:":f.hostname=t[b];return l("generated Photon URL: %s",f.href),f.href}},9587:function(e,t,n){"use strict";var r=n(45843);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){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 n={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:o,resetWarningCache:a};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},10753:function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,a){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var i=/\+/g;e=e.split(n);var s=1e3;a&&"number"==typeof a.maxKeys&&(s=a.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,p,d,m,h=e[c].replace(i,"%20"),f=h.indexOf(r);f>=0?(u=h.substr(0,f),p=h.substr(f+1)):(u=h,p=""),d=decodeURIComponent(u),m=decodeURIComponent(p),t(o,d)?Array.isArray(o[d])?o[d].push(m):o[d]=[o[d],m]:o[d]=m}return o}},68527:function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,a){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(a){var o=encodeURIComponent(t(a))+r;return Array.isArray(e[a])?e[a].map((function(e){return o+encodeURIComponent(t(e))})).join(n):o+encodeURIComponent(t(e[a]))})).join(n):a?encodeURIComponent(t(a))+r+encodeURIComponent(t(e)):""}},76250:function(e,t,n){"use strict";t.decode=t.parse=n(10753),t.encode=t.stringify=n(68527)},97765:function(e,t,n){"use strict";var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(63130),l=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function c(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var u=function(e){function t(e){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var n=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={isSupported:s.Gb&&s.WD},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),l(t,[{key:"componentDidMount",value:function(){this.state.isSupported&&(this.handleVisibilityChange=this.handleVisibilityChange.bind(this),document.addEventListener(s.WD.event,this.handleVisibilityChange))}},{key:"componentWillUnmount",value:function(){this.state.isSupported&&document.removeEventListener(s.WD.event,this.handleVisibilityChange)}},{key:"handleVisibilityChange",value:function(){var e;"function"==typeof this.props.onChange&&(e=this.props).onChange.apply(e,c((0,s.XO)()));"function"==typeof this.props.children&&this.forceUpdate()}},{key:"render",value:function(){return this.props.children?"function"==typeof this.props.children?this.state.isSupported?(e=this.props).children.apply(e,c((0,s.XO)())):this.props.children():i().Children.only(this.props.children):null;var e}}]),t}(i().Component);u.displayName="PageVisibility",u.propTypes={onChange:a().func,children:a().oneOfType([a().node,a().func])},t.Z=u},75031:function(e,t,n){"use strict";var r=n(97765);t.Z=r.Z},63130:function(e,t,n){"use strict";n.d(t,{Gb:function(){return o},WD:function(){return i},XO:function(){return s}});var r="undefined"!=typeof document,a=[{hidden:"hidden",event:"visibilitychange",state:"visibilityState"},{hidden:"webkitHidden",event:"webkitvisibilitychange",state:"webkitVisibilityState"},{hidden:"mozHidden",event:"mozvisibilitychange",state:"mozVisibilityState"},{hidden:"msHidden",event:"msvisibilitychange",state:"msVisibilityState"},{hidden:"oHidden",event:"ovisibilitychange",state:"oVisibilityState"}],o=r&&Boolean(document.addEventListener),i=function(){if(!o)return null;var e=!0,t=!1,n=void 0;try{for(var r,i=a[Symbol.iterator]();!(e=(r=i.next()).done);e=!0){var s=r.value;if(s.hidden in document)return s}}catch(e){t=!0,n=e}finally{try{!e&&i.return&&i.return()}finally{if(t)throw n}}return null}(),s=function(){if(!i)return[!0,"visible"];var e=i.hidden,t=i.state;return[!document[e],document[t]]}},2601:function(e){"use strict";function t(e,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)t(e,n[r]);else for(r in n)e[r]=(e[r]||[]).concat(n[r])}e.exports=function(e){var n,r={};return t(r,e),(n=function(e){return function(t){return function(n){var a,o,i=r[n.type],s=t(n);if(i)for(a=0;a<i.length;a++)(o=i[a](n,e))&&e.dispatch(o);return s}}}).effects=r,n}},19551:function(e,t,n){"use strict";var r,a;function o(e){return[e]}function i(){var e={clear:function(){e.head=null}};return e}function s(e,t,n){var r;if(e.length!==t.length)return!1;for(r=n;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function l(e,t){var n,l;function c(){n=a?new WeakMap:i()}function u(){var n,r,a,o,i,c=arguments.length;for(o=new Array(c),a=0;a<c;a++)o[a]=arguments[a];for(i=t.apply(null,o),(n=l(i)).isUniqueByDependants||(n.lastDependants&&!s(i,n.lastDependants,0)&&n.clear(),n.lastDependants=i),r=n.head;r;){if(s(r.args,o,1))return r!==n.head&&(r.prev.next=r.next,r.next&&(r.next.prev=r.prev),r.next=n.head,r.prev=null,n.head.prev=r,n.head=r),r.val;r=r.next}return r={val:e.apply(null,o)},o[0]=null,r.args=o,n.head&&(n.head.prev=r,r.next=n.head),n.head=r,r.val}return t||(t=o),l=a?function(e){var t,a,o,s,l,c=n,u=!0;for(t=0;t<e.length;t++){if(a=e[t],!(l=a)||"object"!=typeof l){u=!1;break}c.has(a)?c=c.get(a):(o=new WeakMap,c.set(a,o),c=o)}return c.has(r)||((s=i()).isUniqueByDependants=u,c.set(r,s)),c.get(r)}:function(){return n},u.getDependants=t,u.clear=c,c(),u}n.d(t,{Z:function(){return l}}),r={},a="undefined"!=typeof WeakMap},54166:function(e,t){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var a=r[n];e.call(t,a[1],a[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,a="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(a):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var i=["top","right","bottom","left","width","height","size","weight"],s="undefined"!=typeof MutationObserver,l=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,a=0;function i(){n&&(n=!1,e()),r&&l()}function s(){o(i)}function l(){var e=Date.now();if(n){if(e-a<2)return;r=!0}else n=!0,r=!1,setTimeout(s,t);a=e}return l}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),s?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;i.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),c=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var a=r[n];Object.defineProperty(e,a,{value:t[a],enumerable:!1,writable:!1,configurable:!0})}return e},u=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||a},p=b(0,0,0,0);function d(e){return parseFloat(e)||0}function m(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function h(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return p;var r=u(e).getComputedStyle(e),a=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var a=r[n],o=e["padding-"+a];t[a]=d(o)}return t}(r),o=a.left+a.right,i=a.top+a.bottom,s=d(r.width),l=d(r.height);if("border-box"===r.boxSizing&&(Math.round(s+o)!==t&&(s-=m(r,"left","right")+o),Math.round(l+i)!==n&&(l-=m(r,"top","bottom")+i)),!function(e){return e===u(e).document.documentElement}(e)){var c=Math.round(s+o)-t,h=Math.round(l+i)-n;1!==Math.abs(c)&&(s-=c),1!==Math.abs(h)&&(l-=h)}return b(a.left,a.top,s,l)}var f="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof u(e).SVGGraphicsElement}:function(e){return e instanceof u(e).SVGElement&&"function"==typeof e.getBBox};function g(e){return r?f(e)?function(e){var t=e.getBBox();return b(0,0,t.width,t.height)}(e):h(e):p}function b(e,t,n,r){return{x:e,y:t,width:n,height:r}}var v=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=g(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),k=function(e,t){var n,r,a,o,i,s,l,u=(r=(n=t).x,a=n.y,o=n.width,i=n.height,s="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,l=Object.create(s.prototype),c(l,{x:r,y:a,width:o,height:i,top:a,right:r+o,bottom:i+a,left:r}),l);c(this,{target:e,contentRect:u})},y=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new v(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof u(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new k(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),E="undefined"!=typeof WeakMap?new WeakMap:new n,w=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=l.getInstance(),r=new y(t,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){w.prototype[e]=function(){var t;return(t=E.get(this))[e].apply(t,arguments)}}));var _=void 0!==a.ResizeObserver?a.ResizeObserver:w;t.Z=_},68211:function(e){"use strict";var t=256,n=[],r=window,a=Math.pow(t,6),o=Math.pow(2,52),i=2*o,s=255,l=Math.random;function c(e){var n,r=e.length,a=this,o=0,i=a.i=a.j=0,l=a.S=[];for(r||(e=[r++]);o<t;)l[o]=o++;for(o=0;o<t;o++)l[o]=l[i=s&i+e[o%r]+(n=l[o])],l[i]=n;(a.g=function(e){for(var n,r=0,o=a.i,i=a.j,l=a.S;e--;)n=l[o=s&o+1],r=r*t+l[s&(l[o]=l[i=s&i+n])+(l[i]=n)];return a.i=o,a.j=i,r})(t)}function u(e,t){var n,r=[],a=(typeof e)[0];if(t&&"o"==a)for(n in e)try{r.push(u(e[n],t-1))}catch(e){}return r.length?r:"s"==a?e:e+"\0"}function p(e,t){for(var n,r=e+"",a=0;a<r.length;)t[s&a]=s&(n^=19*t[s&a])+r.charCodeAt(a++);return m(t)}function d(e){try{return r.crypto.getRandomValues(e=new Uint8Array(t)),m(e)}catch(e){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,m(n)]}}function m(e){return String.fromCharCode.apply(0,e)}e.exports=function(r,s){if(s&&!0===s.global)return s.global=!1,Math.random=e.exports(r,s),s.global=!0,Math.random;var l=s&&s.entropy||!1,h=[],f=(p(u(l?[r,m(n)]:0 in arguments?r:d(),3),h),new c(h));return p(m(f.S),n),function(){for(var e=f.g(6),n=a,r=0;e<o;)e=(e+r)*t,n*=t,r=f.g(1);for(;e>=i;)e/=2,n/=2,r>>>=1;return(e+r)/n}},e.exports.resetGlobal=function(){Math.random=l},p(Math.random(),n)},45702:function(e,t,n){const r=Symbol("SemVer ANY");class a{static get ANY(){return r}constructor(e,t){if(t=o(t),e instanceof a){if(e.loose===!!t.loose)return e;e=e.value}c("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===r?this.value="":this.value=this.operator+this.semver.version,c("comp",this)}parse(e){const t=this.options.loose?i[s.COMPARATORLOOSE]:i[s.COMPARATOR],n=e.match(t);if(!n)throw new TypeError(`Invalid comparator: ${e}`);this.operator=void 0!==n[1]?n[1]:"","="===this.operator&&(this.operator=""),n[2]?this.semver=new u(n[2],this.options.loose):this.semver=r}toString(){return this.value}test(e){if(c("Comparator.test",e,this.options.loose),this.semver===r||e===r)return!0;if("string"==typeof e)try{e=new u(e,this.options)}catch(e){return!1}return l(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof a))throw new TypeError("a Comparator is required");if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||new p(e.value,t).test(this.value);if(""===e.operator)return""===e.value||new p(this.value,t).test(e.semver);const n=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),r=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),o=this.semver.version===e.semver.version,i=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),s=l(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),c=l(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return n||r||o&&i||s||c}}e.exports=a;const o=n(75265),{re:i,t:s}=n(75698),l=n(48937),c=n(72840),u=n(88208),p=n(55062)},55062:function(e,t,n){class r{constructor(e,t){if(t=o(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof i)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){const e=this.set[0];if(this.set=this.set.filter((e=>!h(e[0]))),0===this.set.length)this.set=[e];else if(this.set.length>1)for(const e of this.set)if(1===e.length&&f(e[0])){this.set=[e];break}}this.format()}format(){return this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();const t=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=a.get(t);if(n)return n;const r=this.options.loose,o=r?c[u.HYPHENRANGELOOSE]:c[u.HYPHENRANGE];e=e.replace(o,x(this.options.includePrerelease)),s("hyphen replace",e),e=e.replace(c[u.COMPARATORTRIM],p),s("comparator trim",e,c[u.COMPARATORTRIM]),e=(e=(e=e.replace(c[u.TILDETRIM],d)).replace(c[u.CARETTRIM],m)).split(/\s+/).join(" ");const l=r?c[u.COMPARATORLOOSE]:c[u.COMPARATOR],f=e.split(" ").map((e=>b(e,this.options))).join(" ").split(/\s+/).map((e=>S(e,this.options))).filter(this.options.loose?e=>!!e.match(l):()=>!0).map((e=>new i(e,this.options))),g=(f.length,new Map);for(const e of f){if(h(e))return[e];g.set(e.value,e)}g.size>1&&g.has("")&&g.delete("");const v=[...g.values()];return a.set(t,v),v}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some((n=>g(n,t)&&e.set.some((e=>g(e,t)&&n.every((n=>e.every((e=>n.intersects(e,t)))))))))}test(e){if(!e)return!1;if("string"==typeof e)try{e=new l(e,this.options)}catch(e){return!1}for(let t=0;t<this.set.length;t++)if(T(this.set[t],e,this.options))return!0;return!1}}e.exports=r;const a=new(n(47595))({max:1e3}),o=n(75265),i=n(45702),s=n(72840),l=n(88208),{re:c,t:u,comparatorTrimReplace:p,tildeTrimReplace:d,caretTrimReplace:m}=n(75698),h=e=>"<0.0.0-0"===e.value,f=e=>""===e.value,g=(e,t)=>{let n=!0;const r=e.slice();let a=r.pop();for(;n&&r.length;)n=r.every((e=>a.intersects(e,t))),a=r.pop();return n},b=(e,t)=>(s("comp",e,t),e=E(e,t),s("caret",e),e=k(e,t),s("tildes",e),e=_(e,t),s("xrange",e),e=j(e,t),s("stars",e),e),v=e=>!e||"x"===e.toLowerCase()||"*"===e,k=(e,t)=>e.trim().split(/\s+/).map((e=>y(e,t))).join(" "),y=(e,t)=>{const n=t.loose?c[u.TILDELOOSE]:c[u.TILDE];return e.replace(n,((t,n,r,a,o)=>{let i;return s("tilde",e,t,n,r,a,o),v(n)?i="":v(r)?i=`>=${n}.0.0 <${+n+1}.0.0-0`:v(a)?i=`>=${n}.${r}.0 <${n}.${+r+1}.0-0`:o?(s("replaceTilde pr",o),i=`>=${n}.${r}.${a}-${o} <${n}.${+r+1}.0-0`):i=`>=${n}.${r}.${a} <${n}.${+r+1}.0-0`,s("tilde return",i),i}))},E=(e,t)=>e.trim().split(/\s+/).map((e=>w(e,t))).join(" "),w=(e,t)=>{s("caret",e,t);const n=t.loose?c[u.CARETLOOSE]:c[u.CARET],r=t.includePrerelease?"-0":"";return e.replace(n,((t,n,a,o,i)=>{let l;return s("caret",e,t,n,a,o,i),v(n)?l="":v(a)?l=`>=${n}.0.0${r} <${+n+1}.0.0-0`:v(o)?l="0"===n?`>=${n}.${a}.0${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.0${r} <${+n+1}.0.0-0`:i?(s("replaceCaret pr",i),l="0"===n?"0"===a?`>=${n}.${a}.${o}-${i} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}-${i} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o}-${i} <${+n+1}.0.0-0`):(s("no pr"),l="0"===n?"0"===a?`>=${n}.${a}.${o}${r} <${n}.${a}.${+o+1}-0`:`>=${n}.${a}.${o}${r} <${n}.${+a+1}.0-0`:`>=${n}.${a}.${o} <${+n+1}.0.0-0`),s("caret return",l),l}))},_=(e,t)=>(s("replaceXRanges",e,t),e.split(/\s+/).map((e=>C(e,t))).join(" ")),C=(e,t)=>{e=e.trim();const n=t.loose?c[u.XRANGELOOSE]:c[u.XRANGE];return e.replace(n,((n,r,a,o,i,l)=>{s("xRange",e,n,r,a,o,i,l);const c=v(a),u=c||v(o),p=u||v(i),d=p;return"="===r&&d&&(r=""),l=t.includePrerelease?"-0":"",c?n=">"===r||"<"===r?"<0.0.0-0":"*":r&&d?(u&&(o=0),i=0,">"===r?(r=">=",u?(a=+a+1,o=0,i=0):(o=+o+1,i=0)):"<="===r&&(r="<",u?a=+a+1:o=+o+1),"<"===r&&(l="-0"),n=`${r+a}.${o}.${i}${l}`):u?n=`>=${a}.0.0${l} <${+a+1}.0.0-0`:p&&(n=`>=${a}.${o}.0${l} <${a}.${+o+1}.0-0`),s("xRange return",n),n}))},j=(e,t)=>(s("replaceStars",e,t),e.trim().replace(c[u.STAR],"")),S=(e,t)=>(s("replaceGTE0",e,t),e.trim().replace(c[t.includePrerelease?u.GTE0PRE:u.GTE0],"")),x=e=>(t,n,r,a,o,i,s,l,c,u,p,d,m)=>`${n=v(r)?"":v(a)?`>=${r}.0.0${e?"-0":""}`:v(o)?`>=${r}.${a}.0${e?"-0":""}`:i?`>=${n}`:`>=${n}${e?"-0":""}`} ${l=v(c)?"":v(u)?`<${+c+1}.0.0-0`:v(p)?`<${c}.${+u+1}.0-0`:d?`<=${c}.${u}.${p}-${d}`:e?`<${c}.${u}.${+p+1}-0`:`<=${l}`}`.trim(),T=(e,t,n)=>{for(let n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!n.includePrerelease){for(let n=0;n<e.length;n++)if(s(e[n].semver),e[n].semver!==i.ANY&&e[n].semver.prerelease.length>0){const r=e[n].semver;if(r.major===t.major&&r.minor===t.minor&&r.patch===t.patch)return!0}return!1}return!0}},88208:function(e,t,n){const r=n(72840),{MAX_LENGTH:a,MAX_SAFE_INTEGER:o}=n(29609),{re:i,t:s}=n(75698),l=n(75265),{compareIdentifiers:c}=n(15322);class u{constructor(e,t){if(t=l(t),e instanceof u){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if("string"!=typeof e)throw new TypeError(`Invalid Version: ${e}`);if(e.length>a)throw new TypeError(`version is longer than ${a} characters`);r("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;const n=e.trim().match(t.loose?i[s.LOOSE]:i[s.FULL]);if(!n)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>o||this.major<0)throw new TypeError("Invalid major version");if(this.minor>o||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>o||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const t=+e;if(t>=0&&t<o)return t}return e})):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(r("SemVer.compare",this.version,this.options,e),!(e instanceof u)){if("string"==typeof e&&e===this.version)return 0;e=new u(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof u||(e=new u(e,this.options)),c(this.major,e.major)||c(this.minor,e.minor)||c(this.patch,e.patch)}comparePre(e){if(e instanceof u||(e=new u(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{const n=this.prerelease[t],a=e.prerelease[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}compareBuild(e){e instanceof u||(e=new u(e,this.options));let t=0;do{const n=this.build[t],a=e.build[t];if(r("prerelease compare",t,n,a),void 0===n&&void 0===a)return 0;if(void 0===a)return 1;if(void 0===n)return-1;if(n!==a)return c(n,a)}while(++t)}inc(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let e=this.prerelease.length;for(;--e>=0;)"number"==typeof this.prerelease[e]&&(this.prerelease[e]++,e=-2);-1===e&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}}e.exports=u},52045:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null}},48937:function(e,t,n){const r=n(42969),a=n(74619),o=n(74765),i=n(71767),s=n(63590),l=n(94638);e.exports=(e,t,n,c)=>{switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e===n;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof n&&(n=n.version),e!==n;case"":case"=":case"==":return r(e,n,c);case"!=":return a(e,n,c);case">":return o(e,n,c);case">=":return i(e,n,c);case"<":return s(e,n,c);case"<=":return l(e,n,c);default:throw new TypeError(`Invalid operator: ${t}`)}}},12977:function(e,t,n){const r=n(88208),a=n(38675),{re:o,t:i}=n(75698);e.exports=(e,t)=>{if(e instanceof r)return e;if("number"==typeof e&&(e=String(e)),"string"!=typeof e)return null;let n=null;if((t=t||{}).rtl){let t;for(;(t=o[i.COERCERTL].exec(e))&&(!n||n.index+n[0].length!==e.length);)n&&t.index+t[0].length===n.index+n[0].length||(n=t),o[i.COERCERTL].lastIndex=t.index+t[1].length+t[2].length;o[i.COERCERTL].lastIndex=-1}else n=e.match(o[i.COERCE]);return null===n?null:a(`${n[2]}.${n[3]||"0"}.${n[4]||"0"}`,t)}},58230:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>{const a=new r(e,n),o=new r(t,n);return a.compare(o)||a.compareBuild(o)}},25112:function(e,t,n){const r=n(50192);e.exports=(e,t)=>r(e,t,!0)},50192:function(e,t,n){const r=n(88208);e.exports=(e,t,n)=>new r(e,n).compare(new r(t,n))},13751:function(e,t,n){const r=n(38675),a=n(42969);e.exports=(e,t)=>{if(a(e,t))return null;{const n=r(e),a=r(t),o=n.prerelease.length||a.prerelease.length,i=o?"pre":"",s=o?"prerelease":"";for(const e in n)if(("major"===e||"minor"===e||"patch"===e)&&n[e]!==a[e])return i+e;return s}}},42969:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0===r(e,t,n)},74765:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>0},71767:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)>=0},20177:function(e,t,n){const r=n(88208);e.exports=(e,t,n,a)=>{"string"==typeof n&&(a=n,n=void 0);try{return new r(e,n).inc(t,a).version}catch(e){return null}}},63590:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<0},94638:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(e,t,n)<=0},51847:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).major},87989:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).minor},74619:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>0!==r(e,t,n)},38675:function(e,t,n){const{MAX_LENGTH:r}=n(29609),{re:a,t:o}=n(75698),i=n(88208),s=n(75265);e.exports=(e,t)=>{if(t=s(t),e instanceof i)return e;if("string"!=typeof e)return null;if(e.length>r)return null;if(!(t.loose?a[o.LOOSE]:a[o.FULL]).test(e))return null;try{return new i(e,t)}catch(e){return null}}},8906:function(e,t,n){const r=n(88208);e.exports=(e,t)=>new r(e,t).patch},85676:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n&&n.prerelease.length?n.prerelease:null}},82576:function(e,t,n){const r=n(50192);e.exports=(e,t,n)=>r(t,e,n)},25709:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(n,e,t)))},53907:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>{try{t=new r(t,n)}catch(e){return!1}return t.test(e)}},21978:function(e,t,n){const r=n(58230);e.exports=(e,t)=>e.sort(((e,n)=>r(e,n,t)))},55641:function(e,t,n){const r=n(38675);e.exports=(e,t)=>{const n=r(e,t);return n?n.version:null}},53377:function(e,t,n){const r=n(75698);e.exports={re:r.re,src:r.src,tokens:r.t,SEMVER_SPEC_VERSION:n(29609).SEMVER_SPEC_VERSION,SemVer:n(88208),compareIdentifiers:n(15322).compareIdentifiers,rcompareIdentifiers:n(15322).rcompareIdentifiers,parse:n(38675),valid:n(55641),clean:n(52045),inc:n(20177),diff:n(13751),major:n(51847),minor:n(87989),patch:n(8906),prerelease:n(85676),compare:n(50192),rcompare:n(82576),compareLoose:n(25112),compareBuild:n(58230),sort:n(21978),rsort:n(25709),gt:n(74765),lt:n(63590),eq:n(42969),neq:n(74619),gte:n(71767),lte:n(94638),cmp:n(48937),coerce:n(12977),Comparator:n(45702),Range:n(55062),satisfies:n(53907),toComparators:n(76055),maxSatisfying:n(33422),minSatisfying:n(17212),minVersion:n(9077),validRange:n(53140),outside:n(44494),gtr:n(2824),ltr:n(34370),intersects:n(30723),simplifyRange:n(23589),subset:n(34992)}},29609:function(e){const t=Number.MAX_SAFE_INTEGER||9007199254740991;e.exports={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:t,MAX_SAFE_COMPONENT_LENGTH:16}},72840:function(e){const t="object"==typeof process&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=t},15322:function(e){const t=/^[0-9]+$/,n=(e,n)=>{const r=t.test(e),a=t.test(n);return r&&a&&(e=+e,n=+n),e===n?0:r&&!a?-1:a&&!r?1:e<n?-1:1};e.exports={compareIdentifiers:n,rcompareIdentifiers:(e,t)=>n(t,e)}},75265:function(e){const t=["includePrerelease","loose","rtl"];e.exports=e=>e?"object"!=typeof e?{loose:!0}:t.filter((t=>e[t])).reduce(((e,t)=>(e[t]=!0,e)),{}):{}},75698:function(e,t,n){const{MAX_SAFE_COMPONENT_LENGTH:r}=n(29609),a=n(72840),o=(t=e.exports={}).re=[],i=t.src=[],s=t.t={};let l=0;const c=(e,t,n)=>{const r=l++;a(r,t),s[e]=r,i[r]=t,o[r]=new RegExp(t,n?"g":void 0)};c("NUMERICIDENTIFIER","0|[1-9]\\d*"),c("NUMERICIDENTIFIERLOOSE","[0-9]+"),c("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),c("MAINVERSION",`(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})\\.(${i[s.NUMERICIDENTIFIER]})`),c("MAINVERSIONLOOSE",`(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})\\.(${i[s.NUMERICIDENTIFIERLOOSE]})`),c("PRERELEASEIDENTIFIER",`(?:${i[s.NUMERICIDENTIFIER]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASEIDENTIFIERLOOSE",`(?:${i[s.NUMERICIDENTIFIERLOOSE]}|${i[s.NONNUMERICIDENTIFIER]})`),c("PRERELEASE",`(?:-(${i[s.PRERELEASEIDENTIFIER]}(?:\\.${i[s.PRERELEASEIDENTIFIER]})*))`),c("PRERELEASELOOSE",`(?:-?(${i[s.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[s.PRERELEASEIDENTIFIERLOOSE]})*))`),c("BUILDIDENTIFIER","[0-9A-Za-z-]+"),c("BUILD",`(?:\\+(${i[s.BUILDIDENTIFIER]}(?:\\.${i[s.BUILDIDENTIFIER]})*))`),c("FULLPLAIN",`v?${i[s.MAINVERSION]}${i[s.PRERELEASE]}?${i[s.BUILD]}?`),c("FULL",`^${i[s.FULLPLAIN]}$`),c("LOOSEPLAIN",`[v=\\s]*${i[s.MAINVERSIONLOOSE]}${i[s.PRERELEASELOOSE]}?${i[s.BUILD]}?`),c("LOOSE",`^${i[s.LOOSEPLAIN]}$`),c("GTLT","((?:<|>)?=?)"),c("XRANGEIDENTIFIERLOOSE",`${i[s.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),c("XRANGEIDENTIFIER",`${i[s.NUMERICIDENTIFIER]}|x|X|\\*`),c("XRANGEPLAIN",`[v=\\s]*(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:\\.(${i[s.XRANGEIDENTIFIER]})(?:${i[s.PRERELEASE]})?${i[s.BUILD]}?)?)?`),c("XRANGEPLAINLOOSE",`[v=\\s]*(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:\\.(${i[s.XRANGEIDENTIFIERLOOSE]})(?:${i[s.PRERELEASELOOSE]})?${i[s.BUILD]}?)?)?`),c("XRANGE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAIN]}$`),c("XRANGELOOSE",`^${i[s.GTLT]}\\s*${i[s.XRANGEPLAINLOOSE]}$`),c("COERCE",`(^|[^\\d])(\\d{1,${r}})(?:\\.(\\d{1,${r}}))?(?:\\.(\\d{1,${r}}))?(?:$|[^\\d])`),c("COERCERTL",i[s.COERCE],!0),c("LONETILDE","(?:~>?)"),c("TILDETRIM",`(\\s*)${i[s.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",c("TILDE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAIN]}$`),c("TILDELOOSE",`^${i[s.LONETILDE]}${i[s.XRANGEPLAINLOOSE]}$`),c("LONECARET","(?:\\^)"),c("CARETTRIM",`(\\s*)${i[s.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",c("CARET",`^${i[s.LONECARET]}${i[s.XRANGEPLAIN]}$`),c("CARETLOOSE",`^${i[s.LONECARET]}${i[s.XRANGEPLAINLOOSE]}$`),c("COMPARATORLOOSE",`^${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]})$|^$`),c("COMPARATOR",`^${i[s.GTLT]}\\s*(${i[s.FULLPLAIN]})$|^$`),c("COMPARATORTRIM",`(\\s*)${i[s.GTLT]}\\s*(${i[s.LOOSEPLAIN]}|${i[s.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",c("HYPHENRANGE",`^\\s*(${i[s.XRANGEPLAIN]})\\s+-\\s+(${i[s.XRANGEPLAIN]})\\s*$`),c("HYPHENRANGELOOSE",`^\\s*(${i[s.XRANGEPLAINLOOSE]})\\s+-\\s+(${i[s.XRANGEPLAINLOOSE]})\\s*$`),c("STAR","(<|>)?=?\\s*\\*"),c("GTE0","^\\s*>=\\s*0.0.0\\s*$"),c("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},2824:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,">",n)},30723:function(e,t,n){const r=n(55062);e.exports=(e,t,n)=>(e=new r(e,n),t=new r(t,n),e.intersects(t))},34370:function(e,t,n){const r=n(44494);e.exports=(e,t,n)=>r(e,t,"<",n)},33422:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&-1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},17212:function(e,t,n){const r=n(88208),a=n(55062);e.exports=(e,t,n)=>{let o=null,i=null,s=null;try{s=new a(t,n)}catch(e){return null}return e.forEach((e=>{s.test(e)&&(o&&1!==i.compare(e)||(o=e,i=new r(o,n)))})),o}},9077:function(e,t,n){const r=n(88208),a=n(55062),o=n(74765);e.exports=(e,t)=>{e=new a(e,t);let n=new r("0.0.0");if(e.test(n))return n;if(n=new r("0.0.0-0"),e.test(n))return n;n=null;for(let t=0;t<e.set.length;++t){const a=e.set[t];let i=null;a.forEach((e=>{const t=new r(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":i&&!o(t,i)||(i=t);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}})),!i||n&&!o(n,i)||(n=i)}return n&&e.test(n)?n:null}},44494:function(e,t,n){const r=n(88208),a=n(45702),{ANY:o}=a,i=n(55062),s=n(53907),l=n(74765),c=n(63590),u=n(94638),p=n(71767);e.exports=(e,t,n,d)=>{let m,h,f,g,b;switch(e=new r(e,d),t=new i(t,d),n){case">":m=l,h=u,f=c,g=">",b=">=";break;case"<":m=c,h=p,f=l,g="<",b="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(s(e,t,d))return!1;for(let n=0;n<t.set.length;++n){const r=t.set[n];let i=null,s=null;if(r.forEach((e=>{e.semver===o&&(e=new a(">=0.0.0")),i=i||e,s=s||e,m(e.semver,i.semver,d)?i=e:f(e.semver,s.semver,d)&&(s=e)})),i.operator===g||i.operator===b)return!1;if((!s.operator||s.operator===g)&&h(e,s.semver))return!1;if(s.operator===b&&f(e,s.semver))return!1}return!0}},23589:function(e,t,n){const r=n(53907),a=n(50192);e.exports=(e,t,n)=>{const o=[];let i=null,s=null;const l=e.sort(((e,t)=>a(e,t,n)));for(const e of l){r(e,t,n)?(s=e,i||(i=e)):(s&&o.push([i,s]),s=null,i=null)}i&&o.push([i,null]);const c=[];for(const[e,t]of o)e===t?c.push(e):t||e!==l[0]?t?e===l[0]?c.push(`<=${t}`):c.push(`${e} - ${t}`):c.push(`>=${e}`):c.push("*");const u=c.join(" || "),p="string"==typeof t.raw?t.raw:String(t);return u.length<p.length?u:t}},34992:function(e,t,n){const r=n(55062),a=n(45702),{ANY:o}=a,i=n(53907),s=n(50192),l=(e,t,n)=>{if(e===t)return!0;if(1===e.length&&e[0].semver===o){if(1===t.length&&t[0].semver===o)return!0;e=n.includePrerelease?[new a(">=0.0.0-0")]:[new a(">=0.0.0")]}if(1===t.length&&t[0].semver===o){if(n.includePrerelease)return!0;t=[new a(">=0.0.0")]}const r=new Set;let l,p,d,m,h,f,g;for(const t of e)">"===t.operator||">="===t.operator?l=c(l,t,n):"<"===t.operator||"<="===t.operator?p=u(p,t,n):r.add(t.semver);if(r.size>1)return null;if(l&&p){if(d=s(l.semver,p.semver,n),d>0)return null;if(0===d&&(">="!==l.operator||"<="!==p.operator))return null}for(const e of r){if(l&&!i(e,String(l),n))return null;if(p&&!i(e,String(p),n))return null;for(const r of t)if(!i(e,String(r),n))return!1;return!0}let b=!(!p||n.includePrerelease||!p.semver.prerelease.length)&&p.semver,v=!(!l||n.includePrerelease||!l.semver.prerelease.length)&&l.semver;b&&1===b.prerelease.length&&"<"===p.operator&&0===b.prerelease[0]&&(b=!1);for(const e of t){if(g=g||">"===e.operator||">="===e.operator,f=f||"<"===e.operator||"<="===e.operator,l)if(v&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===v.major&&e.semver.minor===v.minor&&e.semver.patch===v.patch&&(v=!1),">"===e.operator||">="===e.operator){if(m=c(l,e,n),m===e&&m!==l)return!1}else if(">="===l.operator&&!i(l.semver,String(e),n))return!1;if(p)if(b&&e.semver.prerelease&&e.semver.prerelease.length&&e.semver.major===b.major&&e.semver.minor===b.minor&&e.semver.patch===b.patch&&(b=!1),"<"===e.operator||"<="===e.operator){if(h=u(p,e,n),h===e&&h!==p)return!1}else if("<="===p.operator&&!i(p.semver,String(e),n))return!1;if(!e.operator&&(p||l)&&0!==d)return!1}return!(l&&f&&!p&&0!==d)&&(!(p&&g&&!l&&0!==d)&&(!v&&!b))},c=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r>0?e:r<0||">"===t.operator&&">="===e.operator?t:e},u=(e,t,n)=>{if(!e)return t;const r=s(e.semver,t.semver,n);return r<0?e:r>0||"<"===t.operator&&"<="===e.operator?t:e};e.exports=(e,t,n={})=>{if(e===t)return!0;e=new r(e,n),t=new r(t,n);let a=!1;e:for(const r of e.set){for(const e of t.set){const t=l(r,e,n);if(a=a||null!==t,t)continue e}if(a)return!1}return!0}},76055:function(e,t,n){const r=n(55062);e.exports=(e,t)=>new r(e,t).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")))},53140:function(e,t,n){const r=n(55062);e.exports=(e,t)=>{try{return new r(e,t).range||"*"}catch(e){return null}}},88090:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(7478),a={contextDelimiter:"",onMissingKey:null};function o(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},a)this.options[n]=void 0!==t&&n in t?t[n]:a[n]}o.prototype.getPluralForm=function(e,t){var n,a,o,i=this.pluralForms[e];return i||("function"!=typeof(o=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(a=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),o=(0,r.Z)(a)),i=this.pluralForms[e]=o),i(t)},o.prototype.dcnpgettext=function(e,t,n,r,a){var o,i,s;return o=void 0===a?0:this.getPluralForm(e,a),i=n,t&&(i=t+this.options.contextDelimiter+n),(s=this.data[e][i])&&s[o]?s[o]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===o?n:r)}},80816:function(e,t,n){"use strict";var r=n(90922),a=n.n(r),o=n(92819);const i=a()("dops:analytics");let s,l;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const c={initialize:function(e,t,n){c.setUser(e,t),c.setSuperProps(n),c.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]: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){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);i("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),i('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){c.tracks.recordPageView(e),c.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,a,o,i){c.ga.recordPurchase(e,t,n,r,a,o,i)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(i("- Super Props: %o",s),t=(0,o.assign)(t,s)),i('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):i('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};c.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){c.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){i("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};c.ga.initialized||(l&&(e={userId:"u-"+l.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),c.ga.initialized=!0)},recordPageView:function(e,t){c.ga.initialize(),i("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,n,r){c.ga.initialize();let a="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(a+=" [Option Label: "+n+"]"),void 0!==r&&(a+=" [Option Value: "+r+"]"),i(a),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,a,o,i){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:i}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:a,quantity:o}),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"])}};t.Z=c},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},11973:function(e,t,n){"use strict";var r=n(9481),a=n(80816);a.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),a.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=a.Z},63533:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819);const __=l.__,p="09:00",d="17:00";class m extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,{opening:r,closing:a}=e;return(0,o.createElement)(o.Fragment,{key:t},(0,o.createElement)("div",{className:"business-hours__row"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")},0===t&&this.renderDayToggle()),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.TextControl,{type:"time",label:__("Opening","jetpack"),value:r,className:"business-hours__open",placeholder:p,onChange:e=>{this.setHour(e,"opening",t)}}),(0,o.createElement)(c.TextControl,{type:"time",label:__("Closing","jetpack"),value:a,className:"business-hours__close",placeholder:d,onChange:e=>{this.setHour(e,"closing",t)}})),(0,o.createElement)("div",{className:"business-hours__remove"},n.hours.length>1&&(0,o.createElement)(c.Button,{isSmall:!0,isLink:!0,icon:"trash",label:__("Remove Hours","jetpack"),onClick:()=>{this.removeInterval(t)}}))),t===n.hours.length-1&&(0,o.createElement)("div",{className:"business-hours__row business-hours-row__add"},(0,o.createElement)("div",{className:s()(n.name,"business-hours__day")}," "),(0,o.createElement)("div",{className:s()(n.name,"business-hours__hours")},(0,o.createElement)(c.Button,{isLink:!0,label:__("Add Hours","jetpack"),onClick:this.addInterval},__("Add Hours","jetpack"))),(0,o.createElement)("div",{className:"business-hours__remove"}," ")))})),a()(this,"setHour",((e,t,n)=>{const{day:r,attributes:a,setAttributes:o}=this.props,{days:i}=a;o({days:i.map((a=>a.name===r.name?{...a,hours:a.hours.map(((r,a)=>a===n?{...r,[t]:e}:r))}:a))})})),a()(this,"toggleClosed",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>{if(n.name===t.name){const t=e?[{opening:p,closing:d}]:[];return{...n,hours:t}}return n}))})})),a()(this,"addInterval",(()=>{const{day:e,attributes:t,setAttributes:n}=this.props,{days:r}=t;e.hours.push({opening:"",closing:""}),n({days:r.map((t=>t.name===e.name?{...t,hours:e.hours}:t))})})),a()(this,"removeInterval",(e=>{const{day:t,attributes:n,setAttributes:r}=this.props,{days:a}=n;r({days:a.map((n=>t.name===n.name?{...n,hours:n.hours.filter(((t,n)=>e!==n))}:n))})}))}isClosed(){const{day:e}=this.props;return(0,u.isEmpty)(e.hours)}renderDayToggle(){const{day:e,localization:t}=this.props;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("span",{className:"business-hours__day-name"},t.days[e.name]),(0,o.createElement)(c.ToggleControl,{label:this.isClosed()?__("Closed","jetpack"):__("Open","jetpack"),checked:!this.isClosed(),onChange:this.toggleClosed}))}renderClosed(){const{day:e}=this.props;return(0,o.createElement)("div",{className:"business-hours__row business-hours-row__closed"},(0,o.createElement)("div",{className:s()(e.name,"business-hours__day")},this.renderDayToggle()),(0,o.createElement)("div",{className:s()(e.name,"closed","business-hours__hours")}," "),(0,o.createElement)("div",{className:"business-hours__remove"}," "))}render(){const{day:e}=this.props;return this.isClosed()?this.renderClosed():e.hours.map(this.renderInterval)}}t.Z=m},20920:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(69771),l=n(92819);const _x=i._x;class c extends o.Component{constructor(){super(...arguments),a()(this,"renderInterval",((e,t)=>{const{day:n}=this.props,r=n.hours;return(0,o.createElement)("span",{key:t},(0,i.sprintf)("%1$s - %2$s",this.formatTime(e.opening),this.formatTime(e.closing)),r.length>1+t&&(0,o.createElement)("span",null,", "))}))}formatTime(e){const{timeFormat:t}=this.props,[n,r]=e.split(":"),a=new Date;return!(!n||!r)&&(a.setHours(n),a.setMinutes(r),(0,s.date)(t,a))}render(){const{day:e,localization:t}=this.props,n=e.hours.filter((e=>this.formatTime(e.opening)&&this.formatTime(e.closing)));return(0,o.createElement)("div",{className:"jetpack-business-hours__item"},(0,o.createElement)("dt",{className:e.name},t.days[e.name]),(0,o.createElement)("dd",null,(0,l.isEmpty)(n)?_x("Closed","business is closed on a full day","jetpack"):n.map(this.renderInterval),(0,o.createElement)("br",null)))}}t.Z=c},85932:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(89105),p=n.n(u),d=n(65736),m=n(69771),h=n(52175),f=n(55609),g=n(63533),b=n(20920),v=n(8042);const __=d.__,k={days:{Sun:__("Sunday","jetpack"),Mon:__("Monday","jetpack"),Tue:__("Tuesday","jetpack"),Wed:__("Wednesday","jetpack"),Thu:__("Thursday","jetpack"),Fri:__("Friday","jetpack"),Sat:__("Saturday","jetpack")},startOfWeek:0};class y extends s.Component{constructor(){super(...arguments),i()(this,"state",{localization:k,hasFetched:!1})}componentDidMount(){this.apiFetch()}apiFetch(){this.setState({data:k},(()=>{c()({path:"/wpcom/v2/business-hours/localized-week"}).then((e=>{this.setState({localization:e,hasFetched:!0})}),(()=>{this.setState({localization:k,hasFetched:!0})}))}))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{days:r}=e,{localization:o,hasFetched:i}=this.state,{startOfWeek:l}=o,c=r.concat(r.slice(0,l)).slice(l);if(!i)return(0,s.createElement)(f.Placeholder,{icon:(0,s.createElement)(h.BlockIcon,{icon:v.qv}),label:__("Loading business hours","jetpack")});if(!n){const e=(0,m.__experimentalGetSettings)(),{formats:{time:n}}=e;return(0,s.createElement)("dl",{className:p()(t,"jetpack-business-hours")},c.map(((e,t)=>(0,s.createElement)(b.Z,{key:t,day:e,localization:o,timeFormat:n}))))}return(0,s.createElement)("div",{className:p()(t,"is-edit")},c.map(((e,t)=>(0,s.createElement)(g.Z,a()({key:t,day:e,localization:o},this.props)))))}}t.Z=y},8042:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(85932),s=n(41632),l=n(57535);const __=a.__,_x=a._x,c=[{name:"Sun",hours:[]},{name:"Mon",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Tue",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Wed",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Thu",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Fri",hours:[{opening:"09:00",closing:"17:00"}]},{name:"Sat",hours:[]}],u="business-hours",p=(0,s.Z)((0,r.createElement)(o.Path,{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"})),d={title:__("Business Hours","jetpack"),description:__("Display opening hours for your business.","jetpack"),icon:{src:p,foreground:(0,l.m)()},category:"grow",supports:{html:!0},keywords:[_x("opening hours","block search term","jetpack"),_x("closing time","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("working day","block search term","jetpack")],attributes:{days:{type:"array",default:c}},edit:e=>(0,r.createElement)(i.Z,e),save:()=>null,example:{attributes:{days:c}}}},83487:function(e,t,n){"use strict";var r=n(92819),a=n(55609);const o=(0,a.withFallbackStyles)(((e,t)=>{const{backgroundColor:n,textColor:a}=t,o=(0,r.get)(n,"color"),i=!(0,r.get)(a,"color")&&e?e.querySelector('[contenteditable="true"]'):null;return{fallbackBackgroundColor:o||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:a||!i?void 0:getComputedStyle(i).color}}));t.Z=o},70443:function(e,t,n){"use strict";var r=n(68039);t.Z={element:{type:"string",enum:["a","button","input"]},saveInPostContent:{type:"boolean",default:!1},uniqueId:{type:"string"},passthroughAttributes:{type:"object"},text:{type:"string"},placeholder:{type:"string"},url:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string",validator:r.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:r.Z},gradient:{type:"string"},customGradient:{type:"string"},borderRadius:{type:"number"},width:{type:"string"}}},24429:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(77012);const __=o.__;function s(e){let{borderRadius:t="",setAttributes:n}=e;const o=(0,r.useCallback)((e=>n({borderRadius:e})),[n]);return(0,r.createElement)(a.PanelBody,{title:__("Border Settings","jetpack")},(0,r.createElement)(a.RangeControl,{allowReset:!0,initialPosition:i.pg,label:__("Border radius","jetpack"),max:i.Gp,min:i.G0,onChange:o,value:t}))}},63020:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(65736);const __=o.__;function i(e){let{isGradientAvailable:t,backgroundColor:n,fallbackBackgroundColor:o,fallbackTextColor:i,gradientValue:s,setBackgroundColor:l,setGradient:c,setTextColor:u,textColor:p}=e;const d=(0,r.createElement)(a.ContrastChecker,{backgroundColor:n.color,fallbackBackgroundColor:o,fallbackTextColor:i,isLargeText:!1,textColor:p.color});return t?(0,r.createElement)(a.__experimentalPanelColorGradientSettings,{settings:[{colorValue:p.color,label:__("Text Color","jetpack"),onColorChange:u},{colorValue:n.color,gradientValue:s,label:__("Background","jetpack"),onColorChange:l,onGradientChange:c}],title:__("Background & Text Color","jetpack")},d):(0,r.createElement)(a.PanelColorSettings,{colorSettings:[{value:p.color,onChange:u,label:__("Text Color","jetpack")},{value:n.color,onChange:l,label:__("Background","jetpack")}],title:__("Background & Text Color","jetpack")},d)}},80790:function(e,t,n){"use strict";n.d(t,{Z:function(){return p},h:function(){return d}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=[{value:"px",label:"px",default:150},{value:"%",label:"%",default:100},{value:"em",label:"em",default:10}],c=[{value:"px",label:"px",default:150},{value:"em",label:"em",default:10}],u=["25%","50%","75%","100%"];function p(e){return(0,r.createElement)(i.PanelBody,{title:__("Width settings","jetpack")},(0,r.createElement)(d,e))}function d(e){let{align:t,width:n,onChange:a}=e;const[s,p]=(0,r.useState)(null);(0,r.useEffect)((()=>{void 0===n&&p("px")}),[n]);const d="left"===t||"right"===t;return(0,r.createElement)(i.BaseControl,{label:__("Button width","jetpack")},(0,r.createElement)("div",{className:o()("jetpack-button__width-settings",{"is-aligned":d})},!d&&(0,r.createElement)(i.ButtonGroup,{"aria-label":__("Percentage Width","jetpack")},u.map((e=>(0,r.createElement)(i.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>function(e){const t=n===e?void 0:e;p("%"),a(t)}(e)},e)))),(0,r.createElement)(i.__experimentalUnitControl,{className:"jetpack-button__custom-width",isResetValueOnUnitChange:!0,max:"%"===s||n?.includes("%")?100:void 0,min:0,onChange:e=>a(e),onUnitChange:e=>p(e),size:"small",units:d?c:l,value:n,unit:s})))}},77012:function(e,t,n){"use strict";n.d(t,{DA:function(){return a},pg:function(){return o},Gp:function(){return i},G0:function(){return s}});var r=n(52175);const a=!!r.__experimentalUseGradient,o=5,i=50,s=0},78593:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(24429),o=n(63020),i=n(80790);function s(e){let{attributes:t,backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,setAttributes:c,setBackgroundColor:u,setTextColor:p,textColor:d,gradientValue:m,setGradient:h,isGradientAvailable:f}=e;const{align:g,borderRadius:b,width:v}=t;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Z,{backgroundColor:n,fallbackBackgroundColor:s,fallbackTextColor:l,gradientValue:m,setBackgroundColor:u,setGradient:h,setTextColor:p,textColor:d,isGradientAvailable:f}),(0,r.createElement)(a.Z,{borderRadius:b,setAttributes:c}),(0,r.createElement)(i.Z,{align:g,width:v,onChange:e=>c({width:e})}))}},16867:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(52175),c=n(94333),u=n(65736),p=n(83487),d=n(78593),m=n(77012),h=n(31123);const __=u.__;t.Z=(0,c.compose)((0,l.withColors)({backgroundColor:"background-color"},{textColor:"color"}),p.Z)((function(e){const{attributes:t,backgroundColor:n,className:r,clientId:i,setAttributes:c,textColor:u}=e,{align:p,borderRadius:f,element:g,placeholder:b,text:v,width:k}=t,y=(e=>{const t=(0,o.useRef)();return(0,o.useEffect)((()=>{t.current=e}),[e]),t.current})(p);(0,h.Z)({attributes:t,clientId:i,setAttributes:c}),(0,o.useEffect)((()=>{y!==p&&("left"===p||"right"===p)&&k?.includes("%")&&c({width:void 0})}),[p,y,c,k]);const{gradientClass:E,gradientValue:w,setGradient:_}=m.DA?(0,l.__experimentalUseGradient)({gradientAttribute:"gradient",customGradientAttribute:"customGradient"}):{},C=s()("wp-block-button",r),j=s()("wp-block-button__link",{"has-background":n.color||w,[n.class]:!w&&n.class,"has-text-color":u.color,[u.class]:u.class,[E]:E,"no-border-radius":0===f,"has-custom-width":!!k}),S={...!n.color&&w?{background:w}:{backgroundColor:n.color},color:u.color,borderRadius:f?f+"px":void 0,width:k};return(0,o.createElement)("div",{className:C},(0,o.createElement)(l.RichText,{allowedFormats:"input"===g?[]:void 0,className:j,disableLineBreaks:"input"===g,onChange:e=>{const t="input"===g?e.replace(/<br>/gim," "):e;c({text:t})},placeholder:b||__("Add text…","jetpack"),style:S,value:v,withoutInteractiveFormatting:!0}),(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(d.Z,a()({gradientValue:w,setGradient:_,isGradientAvailable:m.DA},e))))}))},51245:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19 6.5H5c-1.1 0-2 .9-2 2v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7c0-1.1-.9-2-2-2zm.5 9c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-7c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v7zM8 13h8v-1.5H8V13z"}))},32278:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(65736),a=n(70443),o=n(16867),i=n(51245),s=n(41328),l=n(20510);const __=r.__,c="button",u={title:__("Button","jetpack"),icon:i.Z,category:(0,l.Z)("design","layout"),keywords:[],supports:{html:!1,inserter:!1,align:["left","center","right"]},styles:[{name:"fill",label:__("Fill","jetpack"),isDefault:!0},{name:"outline",label:__("Outline","jetpack")}],attributes:a.Z,edit:o.Z,save:s.Z}},41328:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(77012);function l(e){let{attributes:t,blockName:n,uniqueId:a}=e;const{backgroundColor:l,borderRadius:c,className:u,customBackgroundColor:p,customGradient:d,customTextColor:m,gradient:h,saveInPostContent:f,text:g,textColor:b,url:v,width:k}=t;if(!f)return null;const y=(0,i.getColorClassName)("background-color",l),E=s.DA?(0,i.__experimentalGetGradientClass)(h):void 0,w=(0,i.getColorClassName)("color",b),_=o()("wp-block-button","jetpack-submit-button",u,{[`wp-block-jetpack-${n}`]:n}),C=o()("wp-block-button__link",{"has-text-color":b||m,[w]:w,"has-background":l||h||p||d,[y]:y,[E]:E,"no-border-radius":0===c,"has-custom-width":!!k}),j={background:d||void 0,backgroundColor:y||d||h?void 0:p,color:w?void 0:m,borderRadius:c?c+"px":void 0,width:k};return(0,r.createElement)("div",{className:_},(0,r.createElement)(i.RichText.Content,{className:C,"data-id-attr":a||"placeholder",href:v,id:a,rel:"noopener noreferrer",role:"button",style:j,tagName:"a",target:"_blank",value:g}))}},31123:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(9818),o=n(69307);function i(e){let{attributes:t,clientId:n,setAttributes:i}=e;const{passthroughAttributes:s}=t,{attributesToSync:l}=(0,a.useSelect)((e=>{const{getBlockAttributes:a,getBlockRootClientId:o}=e("core/block-editor"),i=a(o(n))||{},l=(0,r.mapValues)(s,(e=>i[e]));return{attributesToSync:(0,r.pickBy)(l,((e,n)=>e!==t[n]))}}));(0,o.useEffect)((()=>{(0,r.isEmpty)(l)||i(l)}),[l,i])}},35932:function(e,t,n){"use strict";var r=n(68039);t.Z={backgroundColor:{type:"string",default:"ffffff",validator:r.Z},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:r.Z},textColor:{type:"string",default:"4D5055",validator:r.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")}}},16485:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(72566);const __=i.__,_x=i._x,l=e=>{let{onEditClick:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{onClick:()=>t(!0)},__("Edit","jetpack")))},c=e=>{const{attributes:{hideEventTypeDetails:t,url:n},defaultClassName:a,embedCode:i,parseEmbedCode:s,setAttributes:l,setEmbedCode:c}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{PanelBody:!0,title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:s,className:`${a}-embed-form-sidebar`},(0,r.createElement)("input",{type:"text",id:"embedCode",onChange:e=>c(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:i||"",className:"components-placeholder__input"}),(0,r.createElement)("div",null,(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)(o.ToggleControl,{label:__("Hide event type details","jetpack"),checked:t,onChange:()=>l({hideEventTypeDetails:!t})})),n&&(0,r.createElement)(o.Notice,{className:`${a}-color-notice`,isDismissible:!1},(0,r.createElement)(o.ExternalLink,{href:"https://help.calendly.com/hc/en-us/community/posts/360033166114-Embed-Widget-Color-Customization-Available-Now-"},__("Follow these instructions to change the colors in this block.","jetpack"))))};t.ZP=e=>{const{attributes:t,clientId:n,isEditingUrl:o,setAttributes:i,setIsEditingUrl:u}=e,{style:p,url:d}=t,m=[{value:"inline",label:__("Inline","jetpack")},{value:"link",label:__("Link","jetpack")}];return(0,r.createElement)(r.Fragment,null,d&&!o&&(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(l,{onEditClick:u})),d&&(0,r.createElement)(s.Z,{clientId:n,styleOptions:m,onSelectStyle:i,activeStyle:p,attributes:t,viewportWidth:500}),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(c,e)))}},77017:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(68039);const __=o.__;t.Z={attributes:{backgroundColor:{type:"string",default:"ffffff",validator:i.Z},submitButtonText:{type:"string",default:__("Schedule time with me","jetpack")},submitButtonTextColor:{type:"string"},submitButtonBackgroundColor:{type:"string"},submitButtonClasses:{type:"string"},hideEventTypeDetails:{type:"boolean",default:!1},primaryColor:{type:"string",default:"00A2FF",validator:i.Z},textColor:{type:"string",default:"4D5055",validator:i.Z},style:{type:"string",default:"inline",validValues:["inline","link"]},url:{type:"string",validator:e=>!e||e.startsWith("https://calendly.com/")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string",validator:i.Z},customTextButtonColor:{type:"string",validator:i.Z}},migrate:e=>{const{submitButtonText:t,submitButtonTextColor:n,submitButtonBackgroundColor:r,submitButtonClasses:o,backgroundButtonColor:i,textButtonColor:s,customBackgroundButtonColor:l,customTextButtonColor:c,...u}=e,p={text:(d=e).submitButtonText||__("Schedule time with me","jetpack"),textColor:d.submitButtonTextColor||d.textButtonColor,customTextColor:d.customTextButtonColor,backgroundColor:d.submitButtonBackgroundColor||d.backgroundButtonColor,customBackgroundColor:d.customBackgroundButtonColor,url:d.url};var d;return[u,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"calendly-widget-id",...p})]]},save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)}}},96537:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=(n(86841),n(92819)),s=n(5157),l=n(52175),c=n(55609),u=n(65736),p=n(4981),d=n(9818),m=n(59040),h=n(35932),f=n(14087),g=n(79042),b=n(79884),v=n(87072),k=n(16485);const __=u.__,_x=u._x;t.Z=(0,c.withNotices)((function(e){const{attributes:t,className:n,clientId:r,name:u,noticeOperations:y,noticeUI:E,setAttributes:w}=e,_=(0,p.getBlockDefaultClassName)(u),C=(0,f.S)(h.Z,t);(0,i.isEqual)(C,t)||w(C);const{backgroundColor:j,hideEventTypeDetails:S,primaryColor:x,textColor:T,style:N,url:A}=C,[P,I]=(0,o.useState)(A),[M,R]=(0,o.useState)(!1),[L,B]=(0,o.useState)(!1),[Z,F]=(0,o.useState)({}),D=()=>{y.removeAllNotices(),y.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or code.","jetpack"))};(0,o.useEffect)((()=>{A&&b.lR!==A&&"link"!==N&&(0,v.Z)(A,B).catch((()=>{w({url:void 0}),D()}))}),[]);const O=e=>{if(!e)return void D();e.preventDefault();const t=(0,g.CC)(P);if(t){if(t.buttonAttributes&&"link"===t.style){const e=(0,d.select)("core/editor").getBlocksByClientId(r);e.length&&e[0].innerBlocks.forEach((e=>{(0,d.dispatch)("core/editor").updateBlockAttributes(e.clientId,t.buttonAttributes)})),F(t.buttonAttributes)}(0,v.Z)(t.url,B).then((()=>{const e=(0,f.S)(h.Z,t);w(e),R(!1),y.removeAllNotices()})).catch((()=>{w({url:void 0}),D()}))}else D()},z=(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(c.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack"))),U=(0,o.createElement)(c.Placeholder,{label:__("Calendly","jetpack"),instructions:__("Enter your Calendly web address or embed code below.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:m.Z}),notices:E},(0,o.createElement)("form",{onSubmit:O},(0,o.createElement)("input",{type:"text",id:"embedCode",onChange:e=>I(e.target.value),placeholder:__("Calendly web address or embed code…","jetpack"),value:P||"",className:"components-placeholder__input"}),(0,o.createElement)("div",null,(0,o.createElement)(c.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,o.createElement)("div",{className:`${_}-learn-more`},(0,o.createElement)(c.ExternalLink,{href:"https://help.calendly.com/hc/en-us/articles/223147027-Embed-options-overview"},__("Need help finding your embed code?","jetpack")))),$=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:`${_}-overlay`}),(0,o.createElement)("iframe",{src:(()=>{const e=s.stringify({embed_domain:"wordpress.com",embed_type:"Inline",hide_event_type_details:S?1:0,background_color:j,primary_color:x,text_color:T});return`${A}?${e}`})(),width:"100%",height:"100%",frameBorder:"0","data-origwidth":"100%","data-origheight":"100%",title:"Calendly"})),V=(0,o.createElement)(l.InnerBlocks,{template:[[b.Ss.name,{...b.Ss.attributes,...Z,passthroughAttributes:{url:"url"}}]],templateLock:"all"});if(L)return z;let G=n;return A&&!M&&(G+=` calendly-style-${N}`),(0,o.createElement)("div",{className:G},(0,o.createElement)(k.ZP,a()({},e,{defaultClassName:_,embedCode:P,isEditingUrl:M,parseEmbedCode:O,setEmbedCode:I,setIsEditingUrl:R})),A&&!M?"inline"===N?$:V:U)}))},59040:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 23 24",width:"23",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19,1h-2.3v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H8.6v0c0-0.6-0.4-1-1-1c-0.6,0-1,0.4-1,1v0H4C1.8,1,0,2.8,0,5 v15c0,2.2,1.8,4,4,4h15c2.2,0,4-1.8,4-4V5C23,2.8,21.2,1,19,1z M21,20c0,1.1-0.9,2-2,2H4c-1.1,0-2-0.9-2-2V5c0-1.1,0.9-2,2-2h2.6 v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3h6.1v0.8c0,0.6,0.4,1,1,1c0.6,0,1-0.4,1-1V3H19c1.1,0,2,0.9,2,2V20z M13.9,14.8l1.4,1.4 c-0.9,0.9-2.1,1.3-3.5,1.3c-2.4,0-4.5-2.1-4.5-4.7s2.1-4.7,4.5-4.7c1.4,0,2.5,0.4,3.4,1.1L14,10.9c-0.5-0.4-1.2-0.6-2.1-0.6 c-1.2,0-2.5,1.1-2.5,2.7c0,1.6,1.3,2.7,2.5,2.7C12.7,15.5,13.4,15.3,13.9,14.8z"}))},79884:function(e,t,n){"use strict";n.d(t,{lR:function(){return d},Ss:function(){return m},u2:function(){return h},Xd:function(){return f}});var r=n(65736),a=n(4981),o=n(35932),i=n(77017),s=n(96537),l=n(59040),c=n(56610),u=n(79042),p=n(57535);const __=r.__,_x=r._x,d="https://calendly.com/wpcom/jetpack-block-example",m={name:"jetpack/button",attributes:{element:"a",text:__("Schedule time with me","jetpack"),uniqueId:"calendly-widget-id",url:d}},h="calendly",f={title:__("Calendly","jetpack"),description:__("Embed a calendar for customers to schedule appointments","jetpack"),icon:{src:l.Z,foreground:(0,p.m)()},category:"grow",keywords:[_x("calendar","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack"),_x("events","block search term","jetpack"),_x("dates","block search term","jetpack")],supports:{align:!0,alignWide:!1,html:!1},edit:s.Z,save:c.Z,attributes:o.Z,example:{attributes:{hideEventTypeDetails:!1,style:"inline",url:d},innerBlocks:[m]},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&u.mL.test(e.textContent),transform:e=>{const t=(0,u.CC)(e.textContent);return(0,a.createBlock)("jetpack/calendly",t)}}]},deprecated:[i.Z]}},56610:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(){return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null))}},79042:function(e,t,n){"use strict";n.d(t,{mL:function(){return r},CC:function(){return a}});const r=/(^|\/\/)(calendly\.com[^"']*)/i,a=e=>{if(!e)return;const t=(e=>{const t=e.match(r);if(t)return"https://"+t[2]})(e);if(!t)return;const n=(e=>{const t={},n=new URL(e);if(t.url=n.origin+n.pathname,!n.search)return t;const r=new URLSearchParams(n.search),a=r.get("background_color"),o=r.get("primary_color"),i=r.get("text_color"),s=/^[A-Za-z0-9]{6}$/;return r.get("hide_event_type_details")&&(t.hideEventTypeDetails=r.get("hide_event_type_details")),a&&a.match(s)&&(t.backgroundColor=a),o&&o.match(s)&&(t.primaryColor=o),i&&i.match(s)&&(t.textColor=i),t})(t),a=(e=>e.indexOf("data-url")>0?"inline":e.indexOf("initPopupWidget")>0||e.indexOf("initBadgeWidget")>0?"link":void 0)(e);if(a&&(n.style=a),"link"===a){n.buttonAttributes={};const t=(e=>{let t=e.match(/false;">([^<]+)<\//);return t?t[1]:(t=e.match(/text: '([^']*?)'/),t?t[1]:void 0)})(e);t&&(n.buttonAttributes.text=t);const r=(e=>{const t=e.match(/textColor: '([^']*?)'/);if(t)return t[1]})(e);r&&(n.buttonAttributes.textColor=void 0,n.buttonAttributes.customTextColor=r);const a=(e=>{const t=e.match(/color: '([^']*?)'/);if(t)return t[1]})(e);a&&(n.buttonAttributes.backgroundColor=void 0,n.buttonAttributes.customBackgroundColor=a)}return n}},89534:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subject:{type:"string"},to:{type:"string"},customThankyou:{type:"string",default:""},customThankyouHeading:{type:"string",default:__("Message Sent","jetpack")},customThankyouMessage:{type:"string",default:""},customThankyouRedirect:{type:"string",default:""},jetpackCRM:{type:"boolean",default:!0}}},60689:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__('The CRM Jetpack Form extension failed to activate. The error message was "<error />".',"jetpack"),{error:(0,r.createElement)("span",null,t)}))}},81316:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(60689);const __=s.__,c=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:s,crmData:c,setCRMData:u}=e;const p=((e,t,n,r)=>()=>{t(void 0),e(!0),o()({path:"/jetpack/v4/jetpack_crm",method:"POST",data:{extension:"jetpackforms"}}).then((e=>{if("success"!==e.code)throw new Error(e.code);const t=Object.assign({},n);t.jp_form_ext_enabled=!0,r(t)})).catch((e=>{t(e.message)})).finally((()=>{e(!1)}))})(n,s,c,u);return t?(0,r.createElement)(i.Spinner,null):a?(0,r.createElement)(l.Z,{error:a}):(0,r.createElement)(i.Button,{isSecondary:!0,onClick:p},__("Enable Jetpack Forms Extension","jetpack"))},u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("A site administrator must enable the CRM Jetpack Forms extension.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You can integrate this contact form with Jetpack CRM by enabling Jetpack CRM's Jetpack Forms extension.","jetpack"));t.Z=e=>{let{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s}=e;return i.can_activate_extension?(0,r.createElement)("div",null,(0,r.createElement)(p,null),(0,r.createElement)("br",null),(0,r.createElement)(c,{isActivatingExt:t,setIsActivatingExt:n,extActivationError:a,setExtActivationError:o,crmData:i,setCRMData:s})):(0,r.createElement)(u,null)}},36080:function(e,t,n){"use strict";var r=n(69307),a=n(53377),o=n.n(a),i=n(55609),s=n(65736),l=n(81316);const __=s.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Jetpack CRM is installed but has an invalid version.","jetpack")),p=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("The Zero BS CRM plugin is now Jetpack CRM. Update to the latest version to integrate your contact form with your CRM.","jetpack")),d=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},(0,r.createInterpolateElement)(__("You can save contacts from Jetpack contact forms in Jetpack CRM. Learn more at <a>jetpackcrm.com</a>","jetpack"),{a:(0,r.createElement)(i.ExternalLink,{href:"https://jetpackcrm.com"})})),m=()=>(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("You already have the Jetpack CRM plugin installed, but it's not activated. Activate the Jetpack CRM plugin to save contacts from this contact form in your Jetpack CRM.","jetpack")),h=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:s}=e;const[c,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)(!1);return t.jp_form_ext_enabled?o().satisfies(o().coerce(t.crm_version),"3.0.19 - 4.0.0")?(0,r.createElement)("p",{className:"jetpack-contact-form__crm_text"},__("Contacts from this form will be stored in Jetpack CRM.","jetpack")):(0,r.createElement)(i.ToggleControl,{className:"jetpack-contact-form__crm_toggle",label:__("Jetpack CRM","jetpack"),checked:a,onChange:e=>s({jetpackCRM:e}),help:__("Store contact form submissions in your CRM.","jetpack")}):(0,r.createElement)(l.Z,{isActivatingExt:c,setIsActivatingExt:u,extActivationError:p,setExtActivationError:d,crmData:t,setCRMData:n})};t.Z=e=>{let{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}=e;const s=o().coerce(t.crm_version);if(t.crm_installed&&!s)return(0,r.createElement)(u,null);if(t.crm_installed&&o().lt(s,"3.0.19"))return(0,r.createElement)(p,null);let l=c.NOT_INSTALLED;return t.crm_active?l=c.ACTIVE:t.crm_installed&&(l=c.INSTALLED),(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===l&&(0,r.createElement)(h,{crmData:t,setCRMData:n,jetpackCRM:a,setAttributes:i}),c.INSTALLED===l&&(0,r.createElement)(m,null),c.NOT_INSTALLED===l&&(0,r.createElement)(d,null))}},6361:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(36080);const __=s.__,c=e=>{let{isFetchingCRMData:t,hasCRMDataError:n,crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c}=e;return t?(0,r.createElement)(i.Spinner,null):n?null:(0,r.createElement)(l.Z,{crmData:a,setCRMData:o,jetpackCRM:s,setAttributes:c})};t.Z=e=>{let{jetpackCRM:t,setAttributes:n}=e;const[a,s]=(0,r.useState)(!0),[l,u]=(0,r.useState)(!1),[p,d]=(0,r.useState)();return(0,r.useEffect)((()=>{o()({path:"/jetpack/v4/jetpack_crm"}).then((e=>{if(e.error)throw e.message;u(!1),d(e)})).catch((()=>u(!0))).finally((()=>s(!1)))}),[]),(0,r.createElement)(i.PanelBody,{title:__("CRM Integration","jetpack"),initialOpen:!1},(0,r.createElement)(i.BaseControl,null,(0,r.createElement)(c,{isFetchingCRMData:a,hasCRMDataError:l,crmData:p,setCRMData:d,jetpackCRM:t,setAttributes:n})))}},69802:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(8523);const __=a.__;t.Z=(0,s.withInstanceId)((function(e){const{id:t,instanceId:n,required:a,label:s,setAttributes:u,width:p,defaultValue:d}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-checkbox-${n}`,className:"jetpack-field jetpack-field-checkbox",label:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("input",{className:"jetpack-field-checkbox__checkbox",type:"checkbox",disabled:!0,checked:d}),(0,r.createElement)(l.Z,{required:a,label:s,setAttributes:u}),(0,r.createElement)(c.Z,{id:t,required:a,width:p,setAttributes:u}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Checkbox Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Checked by default","jetpack"),checked:d,onChange:e=>u({defaultValue:e?"true":""})}))))})}))},57324:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(94333),l=n(80500),c=n(84803),u=n(10745);const __=a.__;t.Z=(0,s.withInstanceId)((e=>{var t;let{id:n,instanceId:s,width:p,consentType:d,implicitConsentMessage:m,explicitConsentMessage:h,setAttributes:f}=e;return(0,r.createElement)(o.BaseControl,{id:`jetpack-field-consent-${s}`,className:"jetpack-field jetpack-field-consent",label:(0,r.createElement)(r.Fragment,null,"explicit"===d&&(0,r.createElement)("input",{className:"jetpack-field-consent__checkbox",type:"checkbox",disabled:!0}),(0,r.createElement)(l.Z,{required:!1,label:null!==(t={implicit:m,explicit:h}[d])&&void 0!==t?t:"",setAttributes:f,labelFieldName:`${d}ConsentMessage`,placeholder:(0,a.sprintf)(
+/* translators: placeholder is a type of consent: implicit or explicit */
+__("Add %s consent message…","jetpack"),d)}),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(c.Z,{setAttributes:f,width:p}))),(0,r.createElement)(i.InspectorAdvancedControls,null,(0,r.createElement)(u.Z,{setAttributes:f,id:n})),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(o.PanelBody,{title:__("Consent Settings","jetpack")},(0,r.createElement)(o.BaseControl,null,(0,r.createElement)(o.SelectControl,{label:__("Permission to email","jetpack"),value:d,options:[{label:__("Mention that you can email","jetpack"),value:"implicit"},{label:__("Add a privacy checkbox","jetpack"),value:"explicit"}],onChange:e=>f({consentType:e})})))))})}))},8523:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(41632),l=n(84803),c=n(10745);const __=a.__;t.Z=e=>{let{setAttributes:t,width:n,id:a,required:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarButton,{title:__("Required","jetpack"),icon:(0,s.Z)((0,r.createElement)(i.Path,{d:"M8.23118 8L16 16M8 16L15.7688 8 M6.5054 11.893L17.6567 11.9415M12.0585 17.6563L12 6.5",stroke:"currentColor"})),onClick:()=>{t({required:!u})},className:u?"is-pressed":void 0}))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Field Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Field is required","jetpack"),className:"jetpack-field-label__required",checked:u,onChange:e=>t({required:e}),help:__("Does this field have to be completed for the form to be submitted?","jetpack")}),(0,r.createElement)(l.Z,{setAttributes:t,width:n}))),(0,r.createElement)(o.InspectorAdvancedControls,null,(0,r.createElement)(c.Z,{setAttributes:t,id:a})))}},10745:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,id:n}=e;return(0,r.createElement)(o.TextControl,{label:__("Unique CSS ID","jetpack"),value:n,onChange:e=>t({id:e}),help:__("A unique ID that can be used in CSS or as an anchor.","jetpack")})}},80500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175);const __=a.__;t.Z=e=>{let{setAttributes:t,label:n,labelFieldName:a,placeholder:i,resetFocus:s,required:l}=e;return(0,r.createElement)("div",{className:"jetpack-field-label"},(0,r.createElement)(o.RichText,{tagName:"label",value:n,className:"jetpack-field-label__input",onChange:e=>{s&&s(),t(a?{[a]:e}:{label:e})},placeholder:null!=i?i:__("Add label…","jetpack"),withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic"]}),l&&(0,r.createElement)("span",{className:"required"},__("(required)","jetpack")))}},56764:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(80500),l=n(29110),c=n(8523);const __=a.__;t.Z=(0,i.withInstanceId)((function(e){const{id:t,type:n,instanceId:a,required:i,label:u,setAttributes:p,isSelected:d,width:m,options:h}=e,[f,g]=(0,r.useState)(null),b=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const n=h.slice(0);null===t?(n.splice(e,1),e>0&&g(e-1)):(n.splice(e,1,t),g(e)),p({options:n})},v=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const t=h.slice(0);let n=0;"object"==typeof e?(t.push(""),n=t.length-1):(t.splice(e+1,0,""),n=e+1),g(n),p({options:t})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{id:`jetpack-field-multiple-${a}`,className:"jetpack-field jetpack-field-multiple",label:(0,r.createElement)(s.Z,{required:i,label:u,setAttributes:p,isSelected:d,resetFocus:()=>g(null)})},(0,r.createElement)("ol",{className:"jetpack-field-multiple__list",id:`jetpack-field-multiple-${a}`},h.map(((e,t)=>(0,r.createElement)(l.Z,{type:n,key:t,option:e,index:t,onChangeOption:b,onAddOption:v,isInFocus:t===f&&d,isSelected:d})))),d&&(0,r.createElement)(o.Button,{className:"jetpack-field-multiple__add-option",icon:"insert",label:__("Insert option","jetpack"),onClick:v},__("Add option","jetpack"))),(0,r.createElement)(c.Z,{id:t,required:i,setAttributes:p,width:m}))}))},7640:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(80500),s=n(8523);const __=a.__;function l(e){const{id:t,required:n,label:a,setAttributes:l,placeholder:c,width:u}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:"jetpack-field"},(0,r.createElement)(i.Z,{required:n,label:a,setAttributes:l}),(0,r.createElement)(o.Disabled,null,(0,r.createElement)(o.TextareaControl,{placeholder:c,value:c,onChange:e=>l({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,r.createElement)(s.Z,{id:t,required:n,setAttributes:l,width:u}))}},84803:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setAttributes:t,width:n}=e;return(0,r.createElement)(o.BaseControl,{label:__("Field Width","jetpack"),help:__("Adjust the width of the field to include multiple fields on a single line.","jetpack"),className:"jetpack-field-label__width"},(0,r.createElement)(o.ButtonGroup,{"aria-label":__("Field Width","jetpack")},[25,50,75,100].map((e=>(0,r.createElement)(o.Button,{key:e,isSmall:!0,isPrimary:e===n,onClick:()=>t({width:e})},e,"%")))))}},36755:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(55609),c=n(92694),u=n(80500),p=n(8523);const __=i.__;function d(e){const{id:t,type:n,required:r,label:a,setAttributes:i,placeholder:s,width:c}=e;return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"jetpack-field"},(0,o.createElement)(u.Z,{required:r,label:a,setAttributes:i}),(0,o.createElement)(l.Disabled,null,(0,o.createElement)(l.TextControl,{type:n,placeholder:s,value:s,onChange:e=>i({placeholder:e}),title:__("Set the placeholder text","jetpack")}))),(0,o.createElement)(p.Z,{id:t,required:r,width:c,setAttributes:i}))}const m=(0,s.createHigherOrderComponent)((e=>t=>{if(t.name.indexOf("jetpack/field")>-1){const n=t.attributes.width?"jetpack-field__width-"+t.attributes.width:"";return(0,o.createElement)(e,a()({},t,{className:n}))}return(0,o.createElement)(e,t)}),"withCustomClassName");(0,c.addFilter)("editor.BlockListBlock","jetpack/contact-form",m)},32605:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(9818),s=n(4981);const __=o.__,l=()=>{const{insertConsentBlock:e}=(()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]),{insertBlock:t}=(0,i.useDispatch)("core/block-editor");return{insertConsentBlock:(0,r.useCallback)((async()=>{var n;let r=(null!==(n=e.innerBlocks)&&void 0!==n?n:[]).findIndex((e=>{let{name:t}=e;return"jetpack/button"===t}));var a;-1===r&&(r=(null!==(a=e.innerBlocks)&&void 0!==a?a:[]).length);const o=await(0,s.createBlock)("jetpack/field-consent");await t(o,r,e.clientId,!1)}),[t,e.clientId,e.innerBlocks])}})();return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("You’re already collecting email contacts. Why not make sure you have permission to email them too?","jetpack")),(0,r.createElement)(a.Button,{isSecondary:!0,onClick:e,style:{marginBottom:"1em"}},__("Add email permission request","jetpack")),(0,r.createElement)("br",null))};t.Z=()=>{const e=(0,i.useSelect)((e=>e("core/block-editor").getSelectedBlock()),[]);return(0,r.useMemo)((()=>(e=>{const t=e.some((e=>{let{name:t}=e;return"jetpack/field-email"===t})),n=e.some((e=>{let{name:t}=e;return"jetpack/field-consent"===t}));return!!t&&!n})(e.innerBlocks)),[e.innerBlocks])?(0,r.createElement)(l,null):null}},95363:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=(n(65736),n(92819)),i=n(99230),s=n(56994),l=n(58505);const c="creative-mail-by-constant-contact/creative-mail-plugin.php",u=e=>{let{pluginState:t,setPluginState:n}=e;const[a,o]=(0,r.useState)(),[i,c]=(0,r.useState)(!1),u=((e,t,n)=>(0,r.useCallback)(((r,a)=>{e(void 0),t(!0),r(a).then((()=>{n(l.Q.ACTIVE)})).catch((t=>{e(t)})).finally((()=>t(!1)))}),[t,e,n]))(o,c,n);return a?(0,r.createElement)(s.Z,{error:a}):(0,r.createElement)(l.Z,{pluginState:t,onCreativeMailPluginClick:u,isInstalling:i})},p=e=>{let{isFetchingPlugins:t,hasError:n,pluginState:o,setPluginState:i}=e;return t?(0,r.createElement)(a.Spinner,null):n?null:(0,r.createElement)(u,{pluginState:o,setPluginState:i})};t.Z=()=>{const[e,t]=(0,r.useState)(!0),[n,a]=(0,r.useState)(!1),[s,u]=(0,r.useState)(l.Q.NOT_INSTALLED);return(0,r.useEffect)((()=>{(0,i.uM)().then((e=>{a(!1),(0,o.get)(e,c)&&((0,o.get)(e,[c,"active"])?u(l.Q.ACTIVE):u(l.Q.INSTALLED))})).catch((()=>a(!0))).finally((()=>t(!1)))}),[u,t,a]),(0,r.createElement)(p,{isFetchingPlugins:e,hasError:n,pluginState:s,setPluginState:u})}},56994:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__;t.Z=e=>{let{error:t}=e;return(0,r.createElement)(a.Notice,{isDismissible:!1,status:"error"},(0,r.createInterpolateElement)(__("The plugin failed to install. <b /> Please check the <a>plugin information</a> for detailed requirements.","jetpack"),{a:(0,r.createElement)(a.ExternalLink,{href:"https://wordpress.org/plugins/creative-mail-by-constant-contact"}),b:(0,r.createElement)("span",null,t)}))}},58505:function(e,t,n){"use strict";n.d(t,{Q:function(){return c}});var r=n(69307),a=n(55609),o=n(65736),i=n(99230),s=n(47583),l=n(92819);const __=o.__,c=Object.freeze({ACTIVE:1,INSTALLED:2,NOT_INSTALLED:3}),u=e=>{let{isActivating:t}=e;const n=t?__("Activating…","jetpack"):__("Installing…","jetpack",0);return(0,r.createElement)(a.Button,{isSecondary:!0,icon:(0,r.createElement)(a.Icon,{style:{animation:"rotation 2s infinite linear"},icon:"update"}),disabled:!0,"aria-label":n},n)},p=e=>{let{installAndActivateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",{style:{color:"rgba(38, 46, 57, 0.7)"}},__("To start sending email campaigns, install the Creative Mail plugin for WordPress.","jetpack"),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,null),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Install Creative Mail plugin","jetpack"))))},d=e=>{let{activateCreativeMailPlugin:t,isInstalling:n}=e;return(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("To start sending email campaigns, activate the Creative Mail plugin for WordPress.","jetpack")),(0,r.createElement)("br",null),n&&(0,r.createElement)(u,{isActivating:!0}),!n&&(0,r.createElement)(a.Button,{isSecondary:!0,onClick:t},__("Activate Creative Mail Plugin","jetpack")))},m=()=>(0,r.createElement)("p",null,(0,r.createElement)("em",null,__("You’re all setup for email marketing with Creative Mail.","jetpack"),(0,r.createElement)("br",null),(0,r.createElement)(a.ExternalLink,{href:`${(0,l.get)((0,s.Z)(),"adminUrl",!1)}admin.php?page=creativemail`},__("Open Creative Mail settings","jetpack"))));t.Z=e=>{let{pluginState:t,onCreativeMailPluginClick:n,isInstalling:a}=e;return(0,r.createElement)("div",{"aria-live":"polite"},c.ACTIVE===t&&(0,r.createElement)(m,null),c.INSTALLED===t&&(0,r.createElement)(d,{activateCreativeMailPlugin:()=>n(i.bu,"creative-mail-by-constant-contact/creative-mail-plugin"),isInstalling:a}),c.NOT_INSTALLED===t&&(0,r.createElement)(p,{installAndActivateCreativeMailPlugin:()=>n(i.yX,"creative-mail-by-constant-contact"),isInstalling:a}))}},31186:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(32605),s=n(95363);const __=o.__;t.Z=()=>(0,r.createElement)(a.PanelBody,{title:__("Newsletter Integration","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,null,(0,r.createElement)(i.Z,null),(0,r.createElement)(s.Z,null)))},29110:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;class i extends r.Component{constructor(){super(...arguments),this.onChangeOption=this.onChangeOption.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onDeleteOption=this.onDeleteOption.bind(this),this.textInput=(0,r.createRef)()}componentDidMount(){this.props.isInFocus&&this.textInput.current.focus()}componentDidUpdate(){this.props.isInFocus&&this.textInput.current.focus()}onChangeOption(e){this.props.onChangeOption(this.props.index,e.target.value)}onKeyPress(e){return"Enter"===e.key?(this.props.onAddOption(this.props.index),void e.preventDefault()):"Backspace"===e.key&&""===e.target.value?(this.props.onChangeOption(this.props.index),void e.preventDefault()):void 0}onDeleteOption(){this.props.onChangeOption(this.props.index)}render(){const{isSelected:e,option:t,type:n}=this.props;return(0,r.createElement)("li",{className:"jetpack-option"},n&&"select"!==n&&(0,r.createElement)("input",{className:"jetpack-option__type",type:n,disabled:!0}),(0,r.createElement)("input",{type:"text",className:"jetpack-option__input",value:t,placeholder:__("Write option…","jetpack"),onChange:this.onChangeOption,onKeyDown:this.onKeyPress,ref:this.textInput}),e&&(0,r.createElement)(o.Button,{className:"jetpack-option__remove",icon:"trash",label:__("Remove option","jetpack"),onClick:this.onDeleteOption}))}}t.Z=i},89998:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(4981),l=n(89534);const __=o.__,c=["submit_button_text","has_form_settings_set","submitButtonText","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor","submitButtonClasses","hasFormSettingsSet"];t.Z=[{attributes:{submit_button_text:{type:"string",default:__("Submit","jetpack")},has_form_settings_set:{type:"string",default:null},submitButtonText:{type:"string",default:__("Submit","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"},...l.Z},migrate:(e,t)=>{const n=(0,a.omit)(e,c),r={text:e.submitButtonText||e.submit_button_text||__("Submit","jetpack"),backgroundColor:e.backgroundButtonColor,textColor:e.textButtonColor,customBackgroundColor:e.customBackgroundButtonColor,customTextColor:e.customTextButtonColor};return[n,t.concat((0,s.createBlock)("jetpack/button",{element:"button",...r}))]},isEligible:e=>!(!e.has_form_settings_set&&!e.hasFormSettingsSet),save:()=>(0,r.createElement)(i.InnerBlocks.Content,null)}]},31970:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(89105),i=n.n(o),s=n(89453),l=n(65736),c=n(94333),u=n(4981),p=n(9818),d=n(39630),m=n(52175),h=n(55609),f=n(22985),g=n(12289),b=n(6361),v=n(31186),k=n(58014);const __=l.__,y=["jetpack/markdown","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/file","core/html","core/separator","core/spacer","core/subhead","core/table","core/verse","core/video"];t.Z=(0,c.compose)([(0,p.withSelect)(((e,t)=>{const{getBlockType:n,getBlockVariations:r,getDefaultBlockVariation:o}=e("core/blocks"),{getBlocks:i}=e("core/block-editor"),{getEditedPostAttribute:s}=e("core/editor"),{getSite:l,getUser:c}=e("core"),u=i(t.clientId),p=s("author"),d=p&&c(p)&&c(p).email,m=s("title");return{blockType:n&&n(t.name),defaultVariation:o&&o(t.name,"block"),variations:r&&r(t.name,"block"),innerBlocks:u,hasInnerBlocks:u.length>0,siteTitle:(0,a.get)(l&&l(),["title"]),postTitle:m,postAuthorEmail:d}})),(0,p.withDispatch)((e=>{const{replaceInnerBlocks:t,selectBlock:n}=e("core/block-editor");return{replaceInnerBlocks:t,selectBlock:n}})),c.withInstanceId])((function(e){let{attributes:t,setAttributes:n,siteTitle:o,postTitle:c,postAuthorEmail:p,hasInnerBlocks:E,replaceInnerBlocks:w,selectBlock:_,clientId:C,instanceId:j,className:S,blockType:x,variations:T,defaultVariation:N}=e;const{to:A,subject:P,customThankyou:I,customThankyouHeading:M,customThankyouMessage:R,customThankyouRedirect:L,jetpackCRM:B}=t,[Z,F]=(0,r.useState)(!1),D=i()(S,"jetpack-contact-form"),O=e=>(0,a.map)(e,(e=>{let[t,n,r=[]]=e;return(0,u.createBlock)(t,n,O(r))})),z=e=>{e.attributes&&n(e.attributes),e.innerBlocks&&w(C,O(e.innerBlocks)),_(C)};(0,r.useEffect)((()=>{E||u.registerBlockVariation||z(g.Z[0])})),(0,r.useEffect)((()=>{if(void 0===A&&p&&n({to:p}),void 0===P&&void 0!==o&&void 0!==c){n({subject:"["+o+"] "+c})}}),[A,p,P,o,c,n]);const U=e=>0!==(e=e.trim()).length&&(!s.validate(e)&&{email:e}),$=e=>{if(0===e.target.value.length)return F(!1),void n({to:p});const t=e.target.value.split(",").map(U).filter(Boolean);t&&t.length&&F(t)},V=e=>{F(!1),n({to:e.trim()})},G=()=>{const e=void 0!==A?A:"",t=void 0!==P?P:"";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(h.TextControl,{"aria-describedby":`contact-form-${j}-email-${Z&&Z.length>0?"error":"help"}`,label:__("Email address to send to","jetpack"),placeholder:__("name@example.com","jetpack"),onKeyDown:e=>{"Enter"===event.key&&(e.preventDefault(),e.stopPropagation())},value:e,onBlur:$,onChange:V,help:__("You can enter multiple email addresses separated by commas.","jetpack")}),(0,r.createElement)(f.Z,{isError:!0,id:`contact-form-${j}-email-error`},(()=>{if(Z){if(1===Z.length)return Z[0]&&Z[0].email?(0,l.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),Z[0].email):Z[0];if(2===Z.length)return(0,l.sprintf)(
+/* translators: placeholders are email addresses. */
+__("%1$s and %2$s are not a valid email address.","jetpack"),Z[0].email,Z[1].email);const e=Z.map((e=>e.email));return(0,l.sprintf)(
+/* translators: placeholder is a list of email addresses. */
+__("%s are not a valid email address.","jetpack"),e.join(", "))}return null})()),(0,r.createElement)(h.TextControl,{label:__("Email subject line","jetpack"),value:t,placeholder:__("Enter a subject","jetpack"),onChange:e=>n({subject:e}),help:__("Choose a subject line that you recognize as an email from your website.","jetpack")}),(0,r.createElement)(h.SelectControl,{label:__("On Submission","jetpack"),value:I,options:[{label:__("Show a summary of submitted fields","jetpack"),value:""},{label:__("Show a custom text message","jetpack"),value:"message"},{label:__("Redirect to another webpage","jetpack"),value:"redirect"}],onChange:e=>n({customThankyou:e})}),"redirect"!==I&&(0,r.createElement)(h.TextControl,{label:__("Message Heading","jetpack"),value:M,placeholder:__("Message Sent","jetpack"),onChange:e=>n({customThankyouHeading:e})}),"message"===I&&(0,r.createElement)(h.TextareaControl,{label:__("Message Text","jetpack"),value:R,placeholder:__("Thank you for your submission!","jetpack"),onChange:e=>n({customThankyouMessage:e})}),"redirect"===I&&(0,r.createElement)(h.BaseControl,{label:__("Redirect Address","jetpack"),id:`contact-form-${j}-thankyou-url`},(0,r.createElement)(m.URLInput,{id:`contact-form-${j}-thankyou-url`,value:L,className:"jetpack-contact-form__thankyou-redirect-url",onChange:e=>n({customThankyouRedirect:e})})))};return!E&&u.registerBlockVariation?(0,r.createElement)("div",{className:D},(0,r.createElement)(m.__experimentalBlockVariationPicker,{icon:(0,a.get)(x,["icon","src"]),label:(0,a.get)(x,["title"]),instructions:__("Please select which type of form you'd like to add, or create your own using the skip option.","jetpack"),variations:T,allowSkip:!0,onSelect:function(){z(arguments.length>0&&void 0!==arguments[0]?arguments[0]:N)}})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(m.BlockControls,null,(0,r.createElement)(h.ToolbarGroup,null,(0,r.createElement)(h.ToolbarItem,null,(()=>(0,r.createElement)(h.Dropdown,{position:"bottom right",className:"jetpack-contact-form-settings-selector",contentClassName:"jetpack-contact-form__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(h.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("Edit Form Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==d.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,r.createElement)(h.Icon,{icon:"edit"})}))(t,n)},renderContent:()=>G()}))))),(0,r.createElement)(m.InspectorControls,null,(0,r.createElement)(h.PanelBody,{title:__("Form Settings","jetpack")},G()),!(0,k.Wp)()&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(b.Z,{jetpackCRM:B,setAttributes:n}),(0,r.createElement)(v.Z,null))),(0,r.createElement)("div",{className:D},(0,r.createElement)(m.InnerBlocks,{allowedBlocks:y,templateInsertUpdatesSelection:!1})))}))},75494:function(e,t,n){"use strict";n.d(t,{u2:function(){return y},Xd:function(){return w},Nk:function(){return x}});var r=n(69307),a=n(65736),o=n(4981),i=n(55609),s=n(52175),l=n(31970),c=n(89534),u=n(12289),p=n(89998),d=n(54789),m=n(36755),h=n(7640),f=n(69802),g=n(56764),b=n(41632),v=n(57535),k=n(57324);const __=a.__,_x=a._x,y="contact-form",E=(0,b.Z)((0,r.createElement)(i.Path,{d:"M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"})),w={title:__("Form","jetpack"),description:__("A simple way to get feedback from folks visiting your site.","jetpack"),icon:{src:E,foreground:(0,v.m)()},keywords:[_x("email","block search term","jetpack"),_x("feedback","block search term","jetpack"),_x("contact form","block search term","jetpack")],supports:{html:!1},attributes:c.Z,edit:l.Z,save:()=>(0,r.createElement)(s.InnerBlocks.Content,null),variations:u.Z,category:"grow",transforms:d.Z,deprecated:p.Z},_={category:"grow",parent:["jetpack/contact-form"],supports:{reusable:!1,html:!1},attributes:{label:{type:"string",default:null},required:{type:"boolean",default:!1},options:{type:"array",default:[]},defaultValue:{type:"string",default:""},placeholder:{type:"string",default:""},id:{type:"string",default:""},width:{type:"number",default:100}},transforms:{to:[{type:"block",blocks:["jetpack/field-text"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-text",e)},{type:"block",blocks:["jetpack/field-name"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-name",e)},{type:"block",blocks:["jetpack/field-email"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-email",e)},{type:"block",blocks:["jetpack/field-url"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-url",e)},{type:"block",blocks:["jetpack/field-date"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-date",e)},{type:"block",blocks:["jetpack/field-telephone"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-telephone",e)},{type:"block",blocks:["jetpack/field-textarea"],isMatch:e=>{let{options:t}=e;return!t.length},transform:e=>(0,o.createBlock)("jetpack/field-textarea",e)},{type:"block",blocks:["jetpack/field-checkbox-multiple"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-checkbox-multiple",e)},{type:"block",blocks:["jetpack/field-radio"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-radio",e)},{type:"block",blocks:["jetpack/field-select"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-select",e)},{type:"block",blocks:["jetpack/field-consent"],isMatch:e=>{let{options:t}=e;return 1<=t.length},transform:e=>(0,o.createBlock)("jetpack/field-consent",e)}]},save:()=>null,example:{}},C=e=>{let{attributes:t,name:n}=e;return null===t.label?(0,o.getBlockType)(n).title:t.label},j=e=>t=>(0,r.createElement)(m.Z,{type:e,label:C(t),required:t.attributes.required,setAttributes:t.setAttributes,isSelected:t.isSelected,defaultValue:t.attributes.defaultValue,placeholder:t.attributes.placeholder,id:t.attributes.id,width:t.attributes.width}),S=e=>t=>(0,r.createElement)(g.Z,{label:C(t),required:t.attributes.required,options:t.attributes.options,setAttributes:t.setAttributes,type:e,isSelected:t.isSelected,id:t.attributes.id,width:t.attributes.width}),x=[{name:"field-text",settings:{..._,title:__("Text","jetpack"),description:__("When you need just a small amount of text, add a text input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M4 9h16v2H4V9zm0 4h10v2H4v-2z"})),edit:j("text")}},{name:"field-name",settings:{..._,title:__("Name","jetpack"),description:__("Introductions are important. Add an input for folks to add their name.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"})),edit:j("text")}},{name:"field-email",settings:{..._,title:__("Email","jetpack"),keywords:[__("e-mail","jetpack"),__("mail","jetpack"),"email"],description:__("Want to reply to folks? Add an email address input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),edit:j("email")}},{name:"field-url",settings:{..._,title:__("Website","jetpack"),keywords:["url",__("internet page","jetpack"),"link"],description:__("Add an address input for a website.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"})),edit:j("url")}},{name:"field-date",settings:{..._,title:__("Date Picker","jetpack"),keywords:[__("Calendar","jetpack"),_x("day month year","block search term","jetpack")],description:__("The best way to set a date. Add a date picker.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V9h14v10zm0-12H5V5h14v2zM7 11h5v5H7z"})),edit:j("text")}},{name:"field-telephone",settings:{..._,title:__("Phone Number","jetpack"),keywords:[__("Phone","jetpack"),__("Cellular phone","jetpack"),__("Mobile","jetpack")],description:__("Add a phone number input.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),edit:j("tel")}},{name:"field-textarea",settings:{..._,title:__("Message","jetpack"),keywords:[__("Textarea","jetpack"),"textarea",__("Multiline text","jetpack")],description:__("Let folks speak their mind. This text box is great for longer responses.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M21 11.01L3 11v2h18zM3 16h12v2H3zM21 6H3v2.01L21 8z"})),edit:e=>(0,r.createElement)(h.Z,{label:C(e),required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,placeholder:e.attributes.placeholder,id:e.attributes.id,width:e.attributes.width})}},{name:"field-checkbox",settings:{..._,title:__("Checkbox","jetpack"),keywords:[__("Confirm","jetpack"),__("Accept","jetpack")],description:__("Add a single checkbox.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z"})),edit:e=>(0,r.createElement)(f.Z,{label:e.attributes.label,required:e.attributes.required,setAttributes:e.setAttributes,isSelected:e.isSelected,defaultValue:e.attributes.defaultValue,id:e.attributes.id,width:e.attributes.width}),attributes:{..._.attributes,label:{type:"string",default:""}}}},{name:"field-consent",settings:{..._,title:__("Consent","jetpack"),keywords:[__("Consent","jetpack")],description:__("Ask for consent","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"m81 370h142v40h-142zm0-39h142v-40h-142zm0-79h245v-40h-245zm378 260h-40c0-40.253906-32.746094-73-73-73s-73 32.746094-73 73h-40c0-42.085938 23.128906-78.867188 57.34375-98.3125-11.40625-13.023438-18.34375-30.054688-18.34375-48.6875 0-40.804688 33.195312-74 74-74s74 33.195312 74 74c0 18.632812-6.9375 35.664062-18.34375 48.6875 34.214844 19.445312 57.34375 56.226562 57.34375 98.3125zm-113-113c18.746094 0 34-15.253906 34-34s-15.253906-34-34-34-34 15.253906-34 34 15.253906 34 34 34zm-286 73h138.316406c-3.460937 12.757812-5.316406 26.164062-5.316406 40h-133c-33.085938 0-60-26.914062-60-60v-392c0-33.085938 26.914062-60 60-60h203.757812l142.132813 142.855469v125.210937c-12.042969-7.476562-25.453125-12.765625-39.890625-15.324218v-81.632813h-71.109375c-33.085937 0-60-26.914063-60-60v-71.109375h-174.890625c-11.027344 0-20 8.972656-20 20v392c0 11.027344 8.972656 20 20 20zm234.890625-340.890625h42.972656l-62.972656-63.234375v43.234375c0 11.03125 8.96875 20 20 20zm0 0"}),24,25,"-26 0 512 512"),attributes:{..._.attributes,label:{type:"string",default:__("Consent","jetpack")},consentType:{type:"string",default:"implicit"},implicitConsentMessage:{type:"string",default:__("By submitting your information, you're giving us permission to email you. You may unsubscribe at any time.","jetpack")},explicitConsentMessage:{type:"string",default:__("Can we send you an email from time to time?","jetpack")}},edit:e=>{let{attributes:t,isSelected:n,setAttributes:a}=e;const{id:o,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c}=t;return(0,r.createElement)(k.Z,{id:o,isSelected:n,width:i,consentType:s,implicitConsentMessage:l,explicitConsentMessage:c,setAttributes:a})}}},{name:"field-checkbox-multiple",settings:{..._,title:__("Checkbox Group","jetpack"),keywords:[__("Choose Multiple","jetpack"),__("Option","jetpack")],description:__("People love options. Add several checkbox items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z"})),edit:S("checkbox"),attributes:{..._.attributes,label:{type:"string",default:"Choose several"}}}},{name:"field-radio",settings:{..._,title:__("Radio","jetpack"),keywords:[__("Choose","jetpack"),__("Select","jetpack"),__("Option","jetpack")],description:__("Inspired by radios, only one radio item can be selected at a time. Add several radio button items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,r.createElement)(i.Circle,{cx:"12",cy:"12",r:"5"}))),edit:S("radio"),attributes:{..._.attributes,label:{type:"string",default:"Choose one"}}}},{name:"field-select",settings:{..._,title:__("Select","jetpack"),keywords:[__("Choose","jetpack"),__("Dropdown","jetpack"),__("Option","jetpack")],description:__("Compact, but powerful. Add a select box with several items.","jetpack"),icon:(0,b.Z)((0,r.createElement)(i.Path,{fill:(0,v.m)(),d:"M3 17h18v2H3zm16-5v1H5v-1h14m2-2H3v5h18v-5zM3 6h18v2H3z"})),edit:S("select"),attributes:{..._.attributes,label:{type:"string",default:"Select one"}}}}]},54789:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=(e,t,n)=>{const r=n.match(new RegExp(`\\[${e}[^\\]]* ${t}="([^"]*)"`,"im"));if(r&&r.length)return r[1];const a=n.match(new RegExp(`\\[${e}[^\\]]* ${t}='([^']*)'`,"im"));if(a&&a.length)return a[1];const o=n.match(new RegExp(`\\[${e}[^\\]]* ${t}=([^\\s]*)\\s`,"im"));return!(!o||!o.length)&&o[1]},s={root:{},innerBlocks:[]};t.Z={from:[{type:"raw",priority:1,isMatch:e=>!("P"!==e.nodeName||!(/\[contact-form(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[contact-field(\s.*?)?\](?:([^\[]+)?)?/g.test(e.textContent)||/\[\/contact-form]/g.test(e.textContent))),transform:e=>{const t=e.textContent.replace("<br>","");if(t.includes("[contact-form")&&(s.root={},s.innerBlocks=[],s.root=(e=>{const t={to:i("contact-form","to",e),subject:i("contact-form","subject",e),submitButtonText:i("contact-form","submit_button_text",e)};return{blockName:"jetpack/contact-form",attrs:(0,r.pickBy)(t,r.identity)}})(t)),t.includes("[contact-field")){const e=t.match(/(\[contact-field[\s\S]*?\/?])/g);e&&e.length>0&&e.forEach((e=>{s.innerBlocks.push((e=>{const t={label:i("contact-field","label",e),placeholder:i("contact-field","placeholder",e),required:i("contact-field","required",e),options:i("contact-field","options",e)},n=(e=>{const t={text:"jetpack/field-text",url:"jetpack/field-text",textarea:"jetpack/field-textarea",radio:"jetpack/field-radio",checkbox:"jetpack/field-checkbox","checkbox-multiple":"jetpack/field-checkbox-multiple",select:"jetpack/field-select",email:"jetpack/field-email",name:"jetpack/field-name",default:"jetpack/field-text"};return t[e]?t[e]:t.default})(i("contact-field","type",e));return t.options&&(t.options=t.options.split(",")),(0,a.createBlock)(n,(0,r.pickBy)(t,r.identity))})(e))}))}if(t.includes("[/contact-form]")){s.innerBlocks.push((0,a.createBlock)("jetpack/button",{element:"button",text:s.root.attrs.submitButtonText||__("Contact Us","jetpack")}));return(0,a.createBlock)(s.root.blockName,s.root.attrs,s.innerBlocks)}return!1}}]}},12289:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(55609),s=n(58014),l=n(41632),c=n(57535);const __=o.__,u=(0,a.compact)([{name:"contact-form",title:__("Contact Form","jetpack"),description:__("Add a contact form to your page.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M21.99 8c0-.72-.37-1.35-.94-1.7l-8.04-4.71c-.62-.37-1.4-.37-2.02 0L2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zm-11.05 4.34l-7.2-4.5 7.25-4.25c.62-.37 1.4-.37 2.02 0l7.25 4.25-7.2 4.5c-.65.4-1.47.4-2.12 0z"}),48,48,"-4 -4 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-textarea",{}],["jetpack/button",{text:__("Contact Us","jetpack"),element:"button"}]]},!(0,s.Wp)()&&{name:"newsletter-form",title:__("Newsletter Sign-up","jetpack"),description:__("A simple way to collect information from folks visiting your site.","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M37.9999 7.59998C49.3999 7.59998 68.3999 26.6 68.3999 26.6V68.4H7.59985V26.6C7.59985 26.6 26.5999 7.59998 37.9999 7.59998ZM64.5999 63.536L50.4259 52.44L64.5999 41.8L62.9659 40.394L54.3779 45.334L55.2899 28.956L21.9639 26.98L20.2159 44.232L12.6539 40.622L11.3999 41.8L25.5739 52.44L12.5019 63.27L14.0219 64.904L37.9999 49.4L62.8139 65.17L64.5999 63.536Z"}),48,48,"-6 -6 92 92"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-consent",{}],["jetpack/button",{text:__("Subscribe","jetpack"),element:"button"}]]},{name:"rsvp-form",title:__("RSVP Form","jetpack"),description:__("Add an RSVP form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M10 9V7.41c0-.89-1.08-1.34-1.71-.71L3.7 11.29c-.39.39-.39 1.02 0 1.41l4.59 4.59c.63.63 1.71.19 1.71-.7V14.9c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Attending?","jetpack"),required:!0,options:[__("Yes","jetpack"),__("No","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send RSVP","jetpack"),element:"button"}]],attributes:{subject:__("A new RSVP from your website","jetpack")}},{name:"registration-form",title:__("Registration Form","jetpack"),description:__("Add a Registration form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.34 15.02c.39.39 1.02.39 1.41 0l6.36-6.36c.39-.39.39-1.02 0-1.41L14.16 2.3c-.38-.4-1.01-.4-1.4-.01L6.39 8.66c-.39.39-.39 1.02 0 1.41l4.95 4.95zm2.12-10.61L17 7.95l-4.95 4.95-3.54-3.54 4.95-4.95zm6.95 11l-2.12-2.12c-.18-.18-.44-.29-.7-.29h-.27l-2 2h1.91L19 17H5l1.78-2h2.05l-2-2h-.42c-.27 0-.52.11-.71.29l-2.12 2.12c-.37.38-.58.89-.58 1.42V20c0 1.1.9 2 2 2h14c1.1 0 2-.89 2-2v-3.17c0-.53-.21-1.04-.59-1.42z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{label:__("Phone Number","jetpack")}],["jetpack/field-select",{label:__("How did you hear about us?","jetpack"),options:[__("Search Engine","jetpack"),__("Social Media","jetpack"),__("TV","jetpack"),__("Radio","jetpack"),__("Friend or Family","jetpack")]}],["jetpack/field-textarea",{label:__("Other Details","jetpack")}],["jetpack/button",{text:__("Send","jetpack"),element:"button"}]],attributes:{subject:__("A new registration from your website","jetpack")}},{name:"appointment-form",title:__("Appointment Form","jetpack"),description:__("Add an Appointment booking form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V8c0-.55-.45-1-1-1s-1 .45-1 1v2H2c-.55 0-1 .45-1 1s.45 1 1 1h2v2c0 .55.45 1 1 1s1-.45 1-1v-2h2c.55 0 1-.45 1-1s-.45-1-1-1H6zm9 4c-2.67 0-8 1.34-8 4v1c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-1c0-2.66-5.33-4-8-4z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-telephone",{required:!0}],["jetpack/field-date",{label:__("Date","jetpack"),required:!0}],["jetpack/field-radio",{label:__("Time","jetpack"),required:!0,options:[__("Morning","jetpack"),__("Afternoon","jetpack")]}],["jetpack/field-textarea",{label:__("Notes","jetpack")}],["jetpack/button",{text:__("Book Appointment","jetpack"),element:"button"}]],attributes:{subject:__("A new appointment booked from your website","jetpack")}},{name:"feedback-form",title:__("Feedback Form","jetpack"),description:__("Add a Feedback form to your page","jetpack"),icon:(0,l.Z)((0,r.createElement)(i.Path,{fill:(0,c.m)(),d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.03 0 3.8-1.11 4.75-2.75.19-.33-.05-.75-.44-.75H7.69c-.38 0-.63.42-.44.75.95 1.64 2.72 2.75 4.75 2.75z"}),48,48,"-4 -3 32 32"),innerBlocks:[["jetpack/field-name",{required:!0}],["jetpack/field-email",{required:!0}],["jetpack/field-radio",{label:__("Please rate our website","jetpack"),required:!0,options:[__("1 - Very Bad","jetpack"),__("2 - Poor","jetpack"),__("3 - Average","jetpack"),__("4 - Good","jetpack"),__("5 - Excellent","jetpack")]}],["jetpack/field-textarea",{label:__("How could we improve?","jetpack")}],["jetpack/button",{text:__("Send Feedback","jetpack"),element:"button"}]],attributes:{subject:__("New feedback received from your website","jetpack")}}]);t.Z=u},4352:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(52175),l=n(55609),c=n(29756);const __=i.__;class u extends r.Component{constructor(){super(...arguments),this.preventEnterKey=this.preventEnterKey.bind(this)}preventEnterKey(e){"Enter"!==e.key||e.preventDefault()}render(){const{attributes:{address:e,addressLine2:t,addressLine3:n,city:a,region:i,postal:u,country:p,linkToGoogleMaps:d},isSelected:m,setAttributes:h}=this.props,f=[e,t,n,a,i,u,p].some((e=>""!==e)),g=o()({"jetpack-address-block":!0,"is-selected":m}),b=(0,r.createElement)(l.ToggleControl,{label:__("Link address to Google Maps","jetpack"),checked:d,onChange:e=>h({linkToGoogleMaps:e})});return(0,r.createElement)("div",{className:g},!m&&f&&(0,c.Z)(this.props),(m||!f)&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.PlainText,{value:e,placeholder:__("Street Address","jetpack"),"aria-label":__("Street Address","jetpack"),onChange:e=>h({address:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:t,placeholder:__("Address Line 2","jetpack"),"aria-label":__("Address Line 2","jetpack"),onChange:e=>h({addressLine2:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:n,placeholder:__("Address Line 3","jetpack"),"aria-label":__("Address Line 3","jetpack"),onChange:e=>h({addressLine3:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:a,placeholder:__("City","jetpack"),"aria-label":__("City","jetpack"),onChange:e=>h({city:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:i,placeholder:__("State/Province/Region","jetpack"),"aria-label":__("State/Province/Region","jetpack"),onChange:e=>h({region:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:u,placeholder:__("Postal/Zip Code","jetpack"),"aria-label":__("Postal/Zip Code","jetpack"),onChange:e=>h({postal:e}),onKeyDown:this.preventEnterKey}),(0,r.createElement)(s.PlainText,{value:p,placeholder:__("Country","jetpack"),"aria-label":__("Country","jetpack"),onChange:e=>h({country:e}),onKeyDown:this.preventEnterKey}),b))}}t.Z=u},47559:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(4352),s=n(29756),l=n(41632);const __=a.__,_x=a._x,c="address",u={title:__("Address","jetpack"),description:__("Lets you add a physical address with Schema markup.","jetpack"),keywords:[_x("location","block search term","jetpack"),_x("direction","block search term","jetpack"),_x("place","block search term","jetpack")],icon:(0,l.Z)((0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Path,{d:"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"}),(0,r.createElement)(o.Circle,{cx:"12",cy:"9",r:"2.5"}))),category:"grow",attributes:{address:{type:"string",default:""},addressLine2:{type:"string",default:""},addressLine3:{type:"string",default:""},city:{type:"string",default:""},region:{type:"string",default:""},postal:{type:"string",default:""},country:{type:"string",default:""},linkToGoogleMaps:{type:"boolean",default:!1}},parent:["jetpack/contact-info"],edit:i.Z,save:s.Z}},29756:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:a,city:o,region:i,postal:s,country:l}}=e;return(0,r.createElement)(r.Fragment,null,t&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address1"},t),n&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address2"},n),a&&(0,r.createElement)("div",{className:"jetpack-address__address jetpack-address__address3"},a),o&&!(i||s)&&(0,r.createElement)("div",{className:"jetpack-address__city"},o),o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__city"},o),", ",(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),!o&&(i||s)&&(0,r.createElement)("div",null,[(0,r.createElement)("span",{className:"jetpack-address__region"},i)," ",(0,r.createElement)("span",{className:"jetpack-address__postal"},s)]),l&&(0,r.createElement)("div",{className:"jetpack-address__country"},l))},i=e=>{let{attributes:{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}}=e;let l=o?`+${o},`:"";l=i?`${l}+${i}`:l;return`https://www.google.com/maps/search/${t?`${t},`:""}${n?`${n},`:""}${r?`${r},`:""}${a?`+${a},`:""}${l}${s?`+${s}`:""}`.replace(" ","+")};t.Z=e=>(e=>{let{address:t,addressLine2:n,addressLine3:r,city:a,region:o,postal:i,country:s}=e;return[t,n,r,a,o,i,s].some((e=>""!==e))})(e.attributes)&&(0,r.createElement)("div",{className:e.className},e.attributes.linkToGoogleMaps&&(0,r.createElement)("a",{href:i(e),target:"_blank",rel:"noopener noreferrer",title:__("Open address in Google Maps","jetpack")},(0,r.createElement)(o,e)),!e.attributes.linkToGoogleMaps&&(0,r.createElement)(o,e))},18680:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(89105),i=n.n(o);const s=["jetpack/markdown","jetpack/address","jetpack/email","jetpack/phone","jetpack/map","jetpack/business-hours","core/paragraph","core/image","core/heading","core/gallery","core/list","core/quote","core/shortcode","core/audio","core/code","core/cover","core/html","core/separator","core/spacer","core/subhead","core/video"],l=[["jetpack/email"],["jetpack/phone"],["jetpack/address"]];t.Z=e=>{const{isSelected:t}=e;return(0,r.createElement)("div",{className:i()({"jetpack-contact-info-block":!0,"is-selected":t})},(0,r.createElement)(a.InnerBlocks,{allowedBlocks:s,templateLock:!1,template:l}))}},63015:function(e,t,n){"use strict";var r=n(59861),a=n(55637),o=n(65736);const __=o.__;t.Z=e=>{const{setAttributes:t}=e;return(0,a.Z)("email",e,__("Email","jetpack"),r.Z,(e=>t({email:e})))}},52413:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(63015),s=n(41632),l=n(59861);const __=a.__,_x=a._x,c="email",u={title:__("Email Address","jetpack"),description:__("Lets you add an email address with an automatically generated click-to-email link.","jetpack"),keywords:["e-mail","email",_x("message","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6zm-2 0l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"})),category:"grow",attributes:{email:{type:"string",default:""}},edit:i.Z,save:l.Z,parent:["jetpack/contact-info"]}},59861:function(e,t,n){"use strict";var r=n(69307),a=n(89453);t.Z=e=>{let{attributes:{email:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},t.split(/(\s+)/).map(((e,t)=>{const n=e.replace(/([.,/#!$%^&*;:{}=\-_`~()\][])+$/g,"");return e.indexOf("@")&&a.validate(n)?e===n?(0,r.createElement)("a",{href:`mailto:${e}`,key:t},e):(0,r.createElement)(r.Fragment,{key:t},(0,r.createElement)("a",{href:`mailto:${e}`,key:t},n),(0,r.createElement)(r.Fragment,null,e.slice(-(e.length-n.length)))):(0,r.createElement)(r.Fragment,{key:t},e)})))}},20195:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return g},Nk:function(){return b}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(4981),l=n(18680),c=n(41632),u=n(47559),p=n(52413),d=n(51592),m=n(57535);const __=a.__,_x=a._x,h="contact-info",f=(0,c.Z)((0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 9c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm6 10H6v-1.53c0-2.5 3.97-3.58 6-3.58s6 1.08 6 3.58V18zm-9.69-2h7.38c-.69-.56-2.38-1.12-3.69-1.12s-3.01.56-3.69 1.12z"})),g={title:__("Contact Info","jetpack"),description:__("Lets you add an email address, phone number, and physical address with improved markup for better SEO results.","jetpack"),keywords:[_x("email","block search term","jetpack"),_x("phone","block search term","jetpack"),_x("address","block search term","jetpack")],icon:{src:f,foreground:(0,m.m)()},category:"grow",supports:{align:["wide","full"],html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"widget_contact_info"===t},transform:e=>{let{instance:t}=e,n=[(0,s.createBlock)("core/heading",{content:t.raw.title}),(0,s.createBlock)("jetpack/email",{email:t.raw.email}),(0,s.createBlock)("jetpack/phone",{phone:t.raw.phone}),(0,s.createBlock)("jetpack/address",{address:t.raw.address})];return t.raw.hours&&(n=[...n,(0,s.createBlock)("core/paragraph",{content:t.raw.hours})]),t.raw.showmap&&t.raw.address&&(n=[...n,(0,s.createBlock)("jetpack/map",{address:t.raw.address})]),(0,s.createBlock)("jetpack/contact-info",{},n)}}]},attributes:{},edit:l.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},example:{attributes:{},innerBlocks:[{name:"jetpack/email",attributes:{email:"hello@yourjetpack.blog"}},{name:"jetpack/phone",attributes:{phone:"123-456-7890"}},{name:"jetpack/address",attributes:{address:"987 Photon Drive",city:"Speedyville",region:"CA",postal:"12345",country:"USA"}}]}},b=[{name:u.u,settings:u.X},{name:p.u,settings:p.X},{name:d.u,settings:d.X}]},51633:function(e,t,n){"use strict";var r=n(65736),a=n(18690),o=n(55637);const __=r.__;t.Z=e=>{const{setAttributes:t}=e;return(0,o.Z)("phone",e,__("Phone number","jetpack"),a.Z,(e=>t({phone:e})))}},51592:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(51633),s=n(41632),l=n(18690);const __=a.__,_x=a._x,c="phone",u={title:__("Phone Number","jetpack"),description:__("Lets you add a phone number with an automatically generated click-to-call link.","jetpack"),keywords:[_x("mobile","block search term","jetpack"),_x("telephone","block search term","jetpack"),_x("cell","block search term","jetpack")],icon:(0,s.Z)((0,r.createElement)(o.Path,{d:"M6.54 5c.06.89.21 1.76.45 2.59l-1.2 1.2c-.41-1.2-.67-2.47-.76-3.79h1.51m9.86 12.02c.85.24 1.72.39 2.6.45v1.49c-1.32-.09-2.59-.35-3.8-.75l1.2-1.19M7.5 3H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.49c0-.55-.45-1-1-1-1.24 0-2.45-.2-3.57-.57-.1-.04-.21-.05-.31-.05-.26 0-.51.1-.71.29l-2.2 2.2c-2.83-1.45-5.15-3.76-6.59-6.59l2.2-2.2c.28-.28.36-.67.25-1.02C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1z"})),category:"grow",attributes:{phone:{type:"string",default:""}},parent:["jetpack/contact-info"],edit:i.Z,save:l.Z}},18690:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{let{attributes:{phone:t},className:n}=e;return t&&(0,r.createElement)("div",{className:n},function(e){const t=e.match(/\d+\.\d+|\d+\b|\d+(?=\w)/g);if(!t)return e;const n=e.indexOf(t[0]);let a=n?e.substring(n-1):e,o=n?e.substring(0,n):"",i=a.replace(/\D/g,"");return/[0-9/+/(]/.test(a[0])?(o=o.slice(0,-1),"+"===a[0]&&(i="+"+i)):a=a.substring(1),[o.trim()?(0,r.createElement)("span",{key:"phonePrefix",className:"phone-prefix"},o):null,(0,r.createElement)("a",{key:"phoneNumber",href:`tel:${i}`},a)]}(t))}},48387:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(89105),s=n.n(i),l=n(52175),c=n(17882);t.Z=e=>{let{className:t=null,currency:n=null,defaultValue:i=null,disabled:u=!1,label:p="",onChange:d=null,value:m=""}=e;const[h,f]=(0,r.useState)((0,a.ZP)(m,n,{symbol:""})),[g,b]=(0,r.useState)(!1),[v,k]=(0,r.useState)(!1),y=(0,r.useRef)(null),E=(0,r.useCallback)((e=>{if(f(e),!d)return;const t=(0,c.Vm)(e,n);t&&t>=(0,c.hj)(n)?(d(t),k(!1)):e&&k(!0)}),[n,d]),w=()=>{y.current&&(y.current.focus(),b(!0))};return(0,r.useEffect)((()=>{y.current&&y.current.addEventListener("blur",(()=>b(!1)))}),[y]),(0,r.useEffect)((()=>{g||h||E((0,a.ZP)(i,n,{symbol:""}))}),[n,i,h,g,E]),(0,r.useEffect)((()=>{g||v||f((0,a.ZP)(m,n,{symbol:""}))}),[n,g,v,E,m]),(0,r.createElement)("div",{className:s()("donations__amount",t,{"has-focus":g,"has-error":v}),role:"button",tabIndex:0,onClick:w,onKeyDown:w},o.M[n].symbol,u?(0,r.createElement)("div",{className:"donations__amount-value"},(0,a.ZP)(m||i,n,{symbol:""})):(0,r.createElement)(l.RichText,{allowedFormats:[],"aria-label":p,keepPlaceholderOnFocus:!0,multiline:!1,onChange:e=>E(e),placeholder:(0,a.ZP)(i,n,{symbol:""}),ref:y,value:h,withoutInteractiveFormatting:!0}))}},46928:function(e,t,n){"use strict";var r=n(69307),a=n(75139),o=n(52175),i=n(55609),s=n(65736),l=n(39630),c=n(17882),u=n(4235);const __=s.__;t.Z=e=>{const{attributes:t,setAttributes:n}=e,{currency:s,monthlyDonation:p,annualDonation:d,showCustomAmount:m}=t,h=(e,r)=>{const a={"1 month":"monthlyDonation","1 year":"annualDonation"}[e],o=t[a];n({[a]:{...o,show:r}})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(i.ToolbarGroup,null,(0,r.createElement)(i.ToolbarItem,null,(()=>(0,r.createElement)(i.Dropdown,{contentClassName:"jetpack-donations__currency-popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(i.Button,{className:"jetpack-donations__currency-toggle",icon:(0,r.createElement)(r.Fragment,null,a.M[s].symbol+" - "+s,(0,r.createElement)(i.Dashicon,{icon:"arrow-down"})),label:__("Change currency","jetpack"),onClick:t,onKeyDown:e=>{n||e.keyCode!==l.DOWN||(e.preventDefault(),e.stopPropagation(),t())}})},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(i.MenuGroup,null,Object.keys(c.ck).map((e=>(0,r.createElement)(i.MenuItem,{isSelected:e===s,onClick:()=>{n({currency:e}),t()},key:`jetpack-donations-currency-${e}`},a.M[e].symbol+" - "+e))))}}))))),(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{checked:p.show,onChange:e=>h("1 month",e),label:__("Show monthly donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:d.show,onChange:e=>h("1 year",e),label:__("Show annual donations","jetpack")}),(0,r.createElement)(i.ToggleControl,{checked:m,onChange:e=>n({showCustomAmount:e}),label:__("Show custom amount option","jetpack")}),(0,r.createElement)(i.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,u.Z)()}`},__("View donation earnings","jetpack")))))}},92202:function(e,t,n){"use strict";var r=n(69307),a=n(78850),o=n(75139),i=n(52175),s=n(65736),l=n(17882);const __=s.__;t.Z={attributes:{currency:{type:"string",default:"USD"},oneTimeDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a one-time donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate","jetpack")}},monthlyDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a monthly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate monthly","jetpack")}},annualDonation:{type:"object",default:{show:!0,planId:null,amounts:[5,15,100],heading:__("Make a yearly donation","jetpack"),extraText:__("Your contribution is appreciated.","jetpack"),buttonText:__("Donate yearly","jetpack")}},showCustomAmount:{type:"boolean",default:!0},chooseAmountText:{type:"string",default:__("Choose an amount","jetpack")},customAmountText:{type:"string",default:__("Or enter a custom amount","jetpack")}},supports:{html:!1},save:e=>{let{attributes:t}=e;const{currency:n,oneTimeDonation:s,monthlyDonation:c,annualDonation:u,showCustomAmount:p,chooseAmountText:d,customAmountText:m}=t;if(!s||!s.show||-1===s.planId)return null;const h={"one-time":{title:__("One-Time","jetpack")},...c.show&&{"1 month":{title:__("Monthly","jetpack")}},...u.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"donations__container"},Object.keys(h).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(h).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:"donations__nav-item",key:`jetpack-donations-nav-item-${t} `,"data-interval":t},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__one-time-item",value:s.heading}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__monthly-item",value:c.heading}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"h4",className:"donations__annual-item",value:u.heading}),(0,r.createElement)(i.RichText.Content,{tagName:"p",value:d}),(0,r.createElement)("div",{className:"donations__amounts donations__one-time-item"},s.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),c.show&&(0,r.createElement)("div",{className:"donations__amounts donations__monthly-item"},c.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),u.show&&(0,r.createElement)("div",{className:"donations__amounts donations__annual-item"},u.amounts.map((e=>(0,r.createElement)("div",{className:"donations__amount","data-amount":e},(0,a.ZP)(e,n))))),p&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.RichText.Content,{tagName:"p",value:m}),(0,r.createElement)("div",{className:"donations__amount donations__custom-amount"},o.M[n].symbol,(0,r.createElement)("div",{className:"donations__amount-value","data-currency":n,"data-empty-text":(0,a.ZP)(100*(0,l.hj)(n),n,{symbol:""})}))),(0,r.createElement)("div",{className:"donations__separator"},"——"),(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__one-time-item",value:s.extraText}),c.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__monthly-item",value:c.extraText}),u.show&&(0,r.createElement)(i.RichText.Content,{tagName:"p",className:"donations__annual-item",value:u.extraText}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__one-time-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__one-time-item",value:s.buttonText})),c.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__monthly-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__monthly-item",value:c.buttonText})),u.show&&(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper donations__annual-item"},(0,r.createElement)(i.RichText.Content,{tagName:"a",className:"wp-block-button__link donations__donate-button donations__annual-item",value:u.buttonText}))))))}}},53104:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(9818),s=n(65736),l=n(53823),c=n(82116),u=n(83040),p=n(10756);const __=s.__;t.Z=e=>{const{attributes:t,className:n,setAttributes:r}=e,{currency:s}=t,[d,m]=(0,o.useState)(""),[h,f]=(0,o.useState)(!1),[g,b]=(0,o.useState)(!1),[v,k]=(0,o.useState)([]),y=(0,i.useSelect)((e=>e("core/editor").getCurrentPost()),[]);(0,o.useEffect)((()=>{r({fallbackLinkUrl:y.link})}),[y.link,r]);const E=e=>{m(e)},w=e=>e.reduce(((e,t)=>{let{id:n,currency:r,type:a,interval:o}=t;return r===s&&"donation"===a&&(e[o]=n),e}),{}),_=e=>{if(!e&&"object"!=typeof e||e.errors)return void m(__("Could not load data from WordPress.com.","jetpack"));f(e.should_upgrade_to_access_memberships),b(e.connect_url);const t=w(e.products);(e=>{const t=Object.keys(e);return t.includes("one-time")&&t.includes("1 month")&&t.includes("1 year")})(t)?k(t):e.should_upgrade_to_access_memberships||e.connect_url?k({"one-time":-1,"1 month":-1,"1 year":-1}):(0,u.Z)(s).then((e=>k(w(e))),E)};return(0,o.useEffect)((()=>{(0,p.Z)("donation").then(_,E)}),[s]),d?(0,o.createElement)(c.Z,{className:n,error:d}):(0,o.createElement)(l.Z,a()({},e,{products:v,shouldUpgrade:h,stripeConnectUrl:g}))}},83040:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z=async e=>{try{return await a()({path:"/wpcom/v2/memberships/products",method:"POST",data:{type:"donation",currency:e}})}catch(e){return Promise.reject(e.message)}}},10756:function(e,t,n){"use strict";var r=n(82827),a=n(86989),o=n.n(a),i=n(96483);t.Z=async function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;const{query:t}=(0,r.Qc)(window.location.href,!0),n=(0,i.addQueryArgs)("/wpcom/v2/memberships/status",{source:"https://wordpress.com"===t.origin?"gutenberg-wpcom":"gutenberg",...e&&{type:e}});try{return await o()({path:n,method:"GET"})}catch(e){return Promise.reject(e.message)}}},63445:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return c}});var r=n(65736),a=n(53104),o=n(56734),i=n(92202),s=n(51591);const __=r.__,l="donations",c={title:__("Donations","jetpack"),description:__("Collect one-time, monthly, or annually recurring donations.","jetpack"),icon:s.K9,category:"earn",keywords:[__("Donations","jetpack")],supports:{html:!1},edit:a.Z,save:o.Z,example:{},deprecated:[i.Z]}},82116:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=e=>{let{className:t,error:n}=e;return(0,r.createElement)(o.Placeholder,{icon:"lock",label:__("Donations","jetpack"),instructions:n,className:t})}},56734:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t}=e;const{fallbackLinkUrl:n,oneTimeDonation:o,monthlyDonation:i,annualDonation:s}=t;return o&&o.show&&o.planId&&-1!==o.planId?(0,r.createElement)("div",null,(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:o.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:o.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:o.buttonText}),i.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:i.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:i.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:i.buttonText})),s.show&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText.Content,{tagName:"h4",value:s.heading}),(0,r.createElement)(a.RichText.Content,{tagName:"p",value:s.extraText}),(0,r.createElement)(a.RichText.Content,{tagName:"a",className:"jetpack-donations-fallback-link",href:n,rel:"noopener noreferrer noamphtml",target:"_blank",value:s.buttonText}))):null}},75242:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(9818),i=n(65736),s=n(48387),l=n(17882);const __=i.__;t.Z=e=>{let{activeTab:t,attributes:n,setAttributes:c}=e;const{currency:u,oneTimeDonation:p,monthlyDonation:d,annualDonation:m,showCustomAmount:h,chooseAmountText:f,customAmountText:g}=n,b={"one-time":"oneTimeDonation","1 month":"monthlyDonation","1 year":"annualDonation"},v=e=>n[b[t]][e],k=(e,r)=>{const a=b[t],o=n[a];c({[a]:{...o,[e]:r}})},[y,E]=(0,r.useState)(u),w=(0,l.hj)(u),_=(0,r.useMemo)((()=>[10*w,30*w,200*w]),[w]);(0,r.useEffect)((()=>{y!==u&&(E(u),c({oneTimeDonation:{...p,amounts:_},monthlyDonation:{...d,amounts:_},annualDonation:{...m,amounts:_}}))}),[u,y,_,p,d,m,c]);const C=v("amounts"),j=(0,o.useSelect)((e=>e("core/rich-text").getFormatTypes()),[]).map((e=>e.name)).filter((e=>"core/link"!==e));return(0,r.createElement)("div",{className:"donations__tab"},(0,r.createElement)(a.RichText,{tagName:"h4",placeholder:__("Write a message…","jetpack"),value:v("heading"),onChange:e=>k("heading",e)}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:f,onChange:e=>c({chooseAmountText:e})}),(0,r.createElement)("div",{className:"donations__amounts"},C.map(((e,t)=>(0,r.createElement)(s.Z,{currency:u,defaultValue:_[t],label:(0,i.sprintf)(// translators: %d: Tier level e.g: "1", "2", "3"
+__("Tier %d","jetpack"),t+1),key:`jetpack-donations-amount-${t}`,onChange:e=>((e,t)=>{const n=[...C];n[t]=e,k("amounts",n)})(e,t),value:e})))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:g,onChange:e=>c({customAmountText:e})}),(0,r.createElement)(s.Z,{currency:u,label:__("Custom amount","jetpack"),defaultValue:100*(0,l.hj)(u),className:"donations__custom-amount",disabled:!0})),(0,r.createElement)("hr",{className:"donations__separator"}),(0,r.createElement)(a.RichText,{tagName:"p",placeholder:__("Write a message…","jetpack"),value:v("extraText"),onChange:e=>k("extraText",e)}),(0,r.createElement)("div",{className:"wp-block-button donations__donate-button-wrapper"},(0,r.createElement)(a.RichText,{className:"wp-block-button__link donations__donate-button",placeholder:__("Write a message…","jetpack"),value:v("buttonText"),onChange:e=>{return t=e,void c({oneTimeDonation:{...p,buttonText:t},monthlyDonation:{...d,buttonText:t},annualDonation:{...m,buttonText:t}});var t},allowedFormats:j})))}},53823:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(65736),l=n(46928),c=n(75242),u=n(43393);const __=s.__;t.Z=e=>{const{attributes:t,className:n,products:a,setAttributes:s,shouldUpgrade:p,stripeConnectUrl:d}=e,{oneTimeDonation:m,monthlyDonation:h,annualDonation:f}=t,[g,b]=(0,r.useState)("one-time"),v=(0,i.useSelect)((e=>e("core/editor").getCurrentPostId()),[]),k=(0,r.useCallback)((e=>g===e),[g]),y={"one-time":{title:__("One-Time","jetpack")},...h.show&&{"1 month":{title:__("Monthly","jetpack")}},...f.show&&{"1 year":{title:__("Yearly","jetpack")}}};return(0,r.useEffect)((()=>{m.planId===a["one-time"]&&h.planId===a["1 month"]&&f.planId===a["1 year"]||s({oneTimeDonation:{...m,planId:a["one-time"]},monthlyDonation:{...h,planId:a["1 month"]},annualDonation:{...f,planId:a["1 year"]}})}),[m,h,f,s,a]),(0,r.useEffect)((()=>{!h.show&&k("1 month")&&b("one-time"),!f.show&&k("1 year")&&b("one-time")}),[h,f,b,k]),(0,r.createElement)("div",{className:n},!p&&d&&(0,r.createElement)(u.Z,{blockName:"donations",postId:v,stripeConnectUrl:d}),(0,r.createElement)("div",{className:"donations__container"},Object.keys(y).length>1&&(0,r.createElement)("div",{className:"donations__nav"},Object.entries(y).map((e=>{let[t,{title:n}]=e;return(0,r.createElement)("div",{role:"button",tabIndex:0,className:o()("donations__nav-item",{"is-active":k(t)}),onClick:()=>b(t),onKeyDown:()=>b(t),key:`jetpack-donations-nav-item-${t} `},n)}))),(0,r.createElement)("div",{className:"donations__content"},(0,r.createElement)(c.Z,{activeTab:g,attributes:t,setAttributes:s}))),(0,r.createElement)(l.Z,e))}},28559:function(e,t){"use strict";t.Z={url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},style:{type:"string",default:"inline"}}},77019:function(e,t,n){"use strict";n.d(t,{J:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__,i=e=>{let{setEditingUrl:t}=e;return(0,r.createElement)(a.ToolbarGroup,null,(0,r.createElement)(a.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},48631:function(e,t,n){"use strict";var r=n(61652);t.Z=[r.Z]},61652:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(92819),l=n(4981),c=n(65736);const _x=c._x,u=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius"];t.Z={attributes:{url:{type:"string",validator:e=>!e||e.startsWith("http")},eventId:{type:"number"},useModal:{type:"boolean"},style:{type:"string"},text:{type:"string",default:_x("Register","verb: e.g. register for an event.","jetpack")},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"}},migrate:e=>{const{className:t,style:n}=e;let r=n;r||(r=e.useModal?"modal":"inline");const a={...(0,s.omit)(e,["useModal",...u]),className:t&&t.replace("is-style-outline",""),style:r},o=(0,s.pick)(e,u);return[a,[(0,l.createBlock)("jetpack/button",{element:"a",text:o.text||_x("Register","verb: e.g. register for an event.","jetpack"),...o,uniqueId:"eventbrite-widget-id",className:t&&-1!==t.indexOf("is-style-outline")?"is-style-outline":""})]]},save:function(e){let{attributes:t}=e;const{eventId:n,useModal:a,url:s,style:l}=t;if(n)return a||"modal"===l?function(e){const{backgroundColor:t,borderRadius:n,customBackgroundColor:a,customTextColor:s,eventId:l,text:c,textColor:u,url:p}=e,d=(0,i.getColorClassName)("color",u),m=(0,i.getColorClassName)("background-color",t),h=o()("wp-block-button__link",{"has-text-color":u||s,[d]:d,"has-background":t||a,[m]:m,"no-border-radius":0===n}),f={backgroundColor:m?void 0:a,color:d?void 0:s,borderRadius:n?n+"px":void 0};return(0,r.createElement)("div",{className:"wp-block-button"},(0,r.createElement)(i.RichText.Content,{className:h,href:p,id:`eventbrite-widget-${l}`,rel:"noopener noreferrer",role:"button",style:f,tagName:"a",target:"_blank",value:c}))}(t):s&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:s},s)},isEligible:(e,t)=>("modal"===e.style||e.useModal)&&((0,s.isEmpty)(t)||(0,s.some)((0,s.pick)(e,u),Boolean))}},62337:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(45166),u=n(28559),p=n(62194),d=n(14087),m=n(58014),h=n(8964),f=n(72566),g=n(87072),b=n(77019);const __=i.__,_x=i._x;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{editedUrl:this.props.attributes.url||"",editingUrl:!1,isResolvingUrl:!1}),a()(this,"setUrl",(e=>{const{attributes:t,noticeOperations:n,setAttributes:r}=this.props,{style:a}=t;if(!e||c.Q7===e||"modal"===a)return;const o=(0,p.Ve)(e);if(o){const t={eventId:o,url:e};(0,g.Z)(t.url,this.setIsResolvingUrl).then((e=>{const a=(0,d.S)(u.Z,{...t,url:e});r(a),this.setState({editedUrl:e}),n.removeAllNotices()})).catch((()=>{r({eventId:void 0,url:void 0}),this.setErrorNotice()}))}else this.setErrorNotice()})),a()(this,"setIsResolvingUrl",(e=>this.setState({isResolvingUrl:e}))),a()(this,"setEditingUrl",(e=>this.setState({editingUrl:e}))),a()(this,"setErrorNotice",(()=>{const{noticeOperations:e,onReplace:t}=this.props,{editedUrl:n}=this.state;e.removeAllNotices(),e.createErrorNotice((0,o.createElement)(o.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,o.createElement)(s.Button,{isLink:!0,onClick:()=>(0,p.N3)(n,t)},_x("Convert block to link","button label","jetpack"))))})),a()(this,"submitForm",(e=>{e&&e.preventDefault(),this.setUrl((0,p.qq)(this.state.editedUrl)),this.setState({editingUrl:!1})})),a()(this,"cannotEmbed",(()=>{const{url:e}=this.props.attributes,{isResolvingUrl:t}=this.state;return!t&&e&&!c.Wh.test(e)}))}componentDidMount(){const{url:e}=this.props.attributes;this.setUrl(e)}renderLoading(){return(0,o.createElement)("div",{className:"wp-block-embed is-loading"},(0,o.createElement)(s.Spinner,null),(0,o.createElement)("p",null,__("Embedding…","jetpack")))}renderInspectorControls(){const{style:e}=this.props.attributes,{attributes:t,clientId:n,setAttributes:r}=this.props,a=[{value:"inline",label:__("In-page Embed","jetpack"),preview:(0,o.createElement)("div",{className:"block-editor-block-preview__container"},(0,o.createElement)("img",{src:h,alt:__("In page Eventbrite checkout example","jetpack")}))},{value:"modal",label:__("Button & Modal","jetpack")}];return(0,o.createElement)(f.Z,{title:_x("Embed Type","option for how the embed displays on a page, e.g. inline or as a modal","jetpack"),clientId:n,styleOptions:a,onSelectStyle:r,activeStyle:e,attributes:t,viewportWidth:130})}renderEditEmbed(){const{className:e,noticeUI:t}=this.props,{editedUrl:n}=this.state,r=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/eventbrite-block/":"https://jetpack.com/support/jetpack-blocks/eventbrite-block/";return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.Placeholder,{label:__("Eventbrite Checkout","jetpack"),instructions:__("Paste a link to an Eventbrite event to embed ticket checkout.","jetpack"),icon:(0,o.createElement)(l.BlockIcon,{icon:c.qv}),notices:t},(0,o.createElement)("form",{onSubmit:this.submitForm},(0,o.createElement)("input",{type:"url",value:n,className:"components-placeholder__input","aria-label":__("Eventbrite URL","jetpack"),placeholder:__("Enter an event URL to embed here…","jetpack"),onChange:e=>this.setState({editedUrl:e.target.value})}),(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},_x("Embed","submit button label","jetpack"))),(0,o.createElement)("div",{className:"components-placeholder__learn-more"},(0,o.createElement)(s.ExternalLink,{href:r},__("Learn more about Eventbrite embeds","jetpack")))))}renderInlinePreview(){const{className:e}=this.props,{eventId:t}=this.props.attributes;if(!t)return;const n=`eventbrite-widget-${t}`,r=`\n\t\t\t<script src="https://www.eventbrite.com/static/widgets/eb_widgets.js"><\/script>\n\t\t\t<style>\n\t\t\t\t/* Prevent scrollbar on the embed preview */\n\t\t\t\tbody {\n\t\t\t\t\toverflow: hidden;\n\t\t\t\t}\n\t\t\t\t/* Eventbrite embeds have a CSS height transition on loading, which causes <Sandbox>\n\t\t\t\tto not recognise the resizing. We need to disable that transition. */\n\t\t\t\t* {\n\t\t\t\t\ttransition: none !important;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<script>\n\t\t\t\twindow.EBWidgets.createWidget({\n\t\t\t\t\twidgetType: 'checkout',\n\t\t\t\t\teventId: ${t},\n\t\t\t\t\tiframeContainerId: '${n}',\n\t\t\t\t});\n\t\t\t<\/script>\n\t\t\t<div id="${n}"></div>\n\t\t`;return(0,o.createElement)("div",{className:e},(0,o.createElement)(s.SandBox,{html:r}),(0,o.createElement)("div",{className:"block-library-embed__interactive-overlay"}))}render(){const{attributes:e}=this.props,{url:t,style:n}=e,{editingUrl:r,isResolvingUrl:a}=this.state;return a?this.renderLoading():r||!t||this.cannotEmbed()?this.renderEditEmbed():(0,o.createElement)(o.Fragment,null,this.renderInspectorControls(),(0,o.createElement)(l.BlockControls,null,(0,o.createElement)(b.J,{setEditingUrl:this.setEditingUrl})),"modal"===n?(0,o.createElement)(l.InnerBlocks,{template:[[c.Ss.name,c.Ss.attributes]],templateLock:"all"}):this.renderInlinePreview())}}t.Z=(0,s.withNotices)(v)},45166:function(e,t,n){"use strict";n.d(t,{Ss:function(){return d},Wh:function(){return m},Q7:function(){return f},u2:function(){return g},qv:function(){return v},Xd:function(){return k}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(28559),l=n(48631),c=n(62337),u=n(74318),p=n(57535);const __=a.__,_x=a._x,d={name:"jetpack/button",attributes:{element:"a",text:_x("Register","verb: e.g. register for an event.","jetpack"),uniqueId:"eventbrite-widget-id"}},m=/^\s*https?:\/\/(?:www\.)?(?:eventbrite\.[a-z.]+)\/e\/[^\/]*?(\d+)\/?(?:\?[^\/]*)?\s*$/i,h=/^\s*https?:\/\/(?:.+\.)?(?:eventbrite\.[a-z.]+)\/?(?:\?[^\/]*)?\s*$/i,f="https://www.eventbrite.com/e/test-event-tickets-123456789",g="eventbrite",b=__("Eventbrite Checkout","jetpack"),v=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,{id:"eventbrite-icon"},(0,r.createElement)(o.Path,{d:"M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"}))),k={title:b,description:__("Embed Eventbrite event details and ticket checkout.","jetpack"),icon:{src:v,foreground:(0,p.m)()},category:"embed",keywords:[_x("events","block search term","jetpack"),_x("tickets","block search term","jetpack")],supports:{html:!1,align:!0},attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&(m.test(e.textContent)||h.test(e.textContent)),transform:e=>(0,i.createBlock)("jetpack/eventbrite",{url:e.textContent.trim()})}]},example:{attributes:{url:f,eventId:123456789,style:"modal"},innerBlocks:[d]},deprecated:l.Z}},74318:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{eventId:n,style:o,url:i}=t;if(n)return"modal"===o?(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null)):i&&(0,r.createElement)("a",{className:"eventbrite__direct-link",href:i},i)}},62194:function(e,t,n){"use strict";n.d(t,{N3:function(){return o},Ve:function(){return i},qq:function(){return s}});var r=n(69307),a=n(4981);function o(e,t){const n=(0,r.createElement)("a",{href:e},e);t((0,a.createBlock)("core/paragraph",{content:(0,r.renderToString)(n)}))}function i(e){if(!e)return null;const t=e.match(/(\d+)\/?(?:\?[^\/]*)?\s*$/);return t&&t[1]?parseInt(t[1],10):null}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e&&"string"==typeof e?e.trim():null}},47271:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(4981),u=n(9818);const __=s.__;function p(e){let{onReplace:t}=e;const[n,a]=(0,i.useState)(!1),s=(0,u.useSelect)((e=>e("core/editor").getEditedPostAttribute("jetpack_publicize_connections")));return{isGatheringStorm:n,unleashStorm:(e,n)=>{if((0,r.isEmpty)(e))return;const i=e.match(/^https?:\/\/(?:www\.)?twitter\.com\/([^/]+)\/status\/\d+/);if((0,r.isEmpty)(i))return;const p=i[1];n.removeAllNotices(),a(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/tweetstorm/gather",{url:e})}).then((e=>{if(a(!1),!(0,r.isArray)(e))return void n.createErrorNotice(__("An error occurred. Please try again later.","jetpack"));if((0,r.isEmpty)(e))return void n.createErrorNotice(__("We were unable to get any content from this tweet.","jetpack"));t(e.map((e=>{switch(e.type){case"paragraph":return(0,c.createBlock)("core/paragraph",{content:e.content});case"gallery":return(0,c.createBlock)("core/gallery",{images:e.images});case"image":return(0,c.createBlock)("core/image",{url:e.url,alt:e.alt});case"video":return(0,c.createBlock)("core/video",{src:e.url,caption:e.alt});case"embed":return(0,c.createBlock)("core/embed",{url:e.url})}})));(0,r.some)(s,(e=>"twitter"===e.service_name&&`@${p}`===e.display_name))||(0,u.dispatch)("core/notices").createWarningNotice(__("We were unable to verify that this Twitter thread was published on a Twitter account belonging to you. Please ensure you have permission to reproduce it before publishing.","jetpack")),(0,u.dispatch)("core/notices").createSuccessNotice(__("Twitter thread successfully imported","jetpack"),{type:"snackbar"})})).catch((e=>{a(!1),n.createErrorNotice(e.message)}))}}}},72966:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__;t.Z=(0,r.forwardRef)((function(e,t){let{onSubmit:n,onChange:a,value:i=""}=e;return(0,r.createElement)("form",{className:"wp-block-jetpack-gif_input-container",onSubmit:n},(0,r.createElement)("input",{type:"text",className:"wp-block-jetpack-gif_input components-placeholder__input",placeholder:__("Enter search terms, e.g. cat…","jetpack"),value:i,onChange:a,ref:t,"aria-labelledby":"wp-block-jetpack-gif_search-button"}),(0,r.createElement)(o.Button,{id:"wp-block-jetpack-gif_search-button",isSecondary:!0,type:"submit"},__("Search","jetpack")))}))},32882:function(e,t,n){"use strict";n.d(t,{U:function(){return r}});const r="t1PkR1Vq0mzHueIFBvZSZErgFs9NBmYW"},68055:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(52175);function i(){return(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(a.PanelBody,{className:"components-panel__body-gif-branding"},(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 202 22"},(0,r.createElement)(a.Path,{d:"M4.6 5.9H0v10h1.6v-3.1h3c4.8 0 4.8-6.9 0-6.9zm0 5.4h-3v-4h3c2.6.1 2.6 4 0 4zM51.2 12.3c2-.3 2.7-1.7 2.7-3.1 0-1.7-1.2-3.3-3.5-3.3h-4.6v10h1.6v-3.4h2.1l3 3.4h1.9l-.2-.3-3-3.3zM47.4 11V7.4h3c1.3 0 1.9.9 1.9 1.8s-.6 1.8-1.9 1.8h-3zM30.6 13.6L28 5.9h-1.1l-2.5 7.7-2.6-7.7H20l3.7 10H25l1.4-3.5L27.5 9l1.1 3.4 1.3 3.5h1.4l3.5-10h-1.7z"}),(0,r.createElement)(a.Path,{d:"M14.4 5.7c-3 0-5.1 2.2-5.1 5.2 0 2.6 1.6 5.1 5.1 5.1 3.5 0 5.1-2.5 5.1-5.2-.1-2.6-1.7-5.1-5.1-5.1zm-.1 8.9c-2.5 0-3.5-1.9-3.5-3.7 0-2.2 1.2-3.8 3.5-3.8 2.4 0 3.5 2 3.5 3.8.1 2-1 3.7-3.5 3.7zM57.7 11.6h5.5v-1.5h-5.5V7.4h5.7V5.9h-7.3v10h7.3v-1.6h-5.7zM38 14.3v-2.7h5.5v-1.5H38V7.4h5.7V5.9h-7.3v10h7.3v-1.6zM93 10.3l-2.7-4.4h-1.9V6l3.8 5.8v4.1h1.6v-4.1l4-5.8v-.1h-2zM69.3 5.9h-3.8v10h3.8c3.5 0 5.1-2.5 5-5.1-.1-2.5-1.6-4.9-5-4.9zm0 8.4h-2.2V7.4h2.2c2.3 0 3.4 1.7 3.4 3.4s-1 3.5-3.4 3.5zM86.3 10.7c.9-.4 1.4-1.1 1.4-2 0-2-1.5-2.8-3.4-2.8h-4.6v10h4.6c2 0 3.7-.7 3.7-2.8 0-.8-.5-2-1.7-2.4zm-5-3.4h3c1.2 0 1.8.7 1.8 1.4 0 .8-.6 1.3-1.8 1.3h-3V7.3zm3 7.1h-3v-2.9h3c.9 0 2.1.5 2.1 1.6 0 1-1.2 1.3-2.1 1.3zM113.9 13.3h5.3V16c-1.2.9-2.9 1.1-4 1.1-4.2 0-5.6-3.3-5.6-6 0-4.1 2.2-6.1 5.6-6.1 1.4 0 3.2.4 4.8 1.8l3.4-3.4C120.7.6 118.1 0 115.2 0c-7.8 0-11.4 5.6-11.4 11s3.1 10.9 11.4 10.9c4 0 7.6-1.4 8.9-4.1V8.6h-10.2v4.7zM171.9 8.5h-7.4V.6h-5.9v20.8h5.9v-7.8h7.4v7.8h5.9V.6h-5.9zM195.1.6l-4.5 7.1-4.3-7.1h-6.6v.2l7.9 12.3v8.3h5.9v-8.3L201.8.9V.6zM127.4.6h5.9v20.8h-5.9zM147.6.6h-10.1v20.8h5.9v-5.6h4.2c5.6-.1 8.3-3.4 8.3-7.6.1-4.1-2.7-7.6-8.3-7.6zm0 10.2h-4.2V5.6h4.2c1.6 0 2.5 1.2 2.5 2.6 0 1.4-.9 2.6-2.5 2.6z"}))))}},61796:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31072),u=n(80917),p=n(72966),d=n(68055),m=n(21835);const __=i.__;t.Z=function(e){let{attributes:t,setAttributes:n,className:a,isSelected:i}=e;const{align:h,caption:f,giphyUrl:g,searchText:b,paddingTop:v}=t,k=o()(a,`align${h}`),[y,E]=(0,r.useState)(!1),w=(0,r.createRef)(),{isFetching:_,giphyData:C,fetchGiphyData:j}=(0,m.Z)(),S=()=>{w.current.focus(),E(!1)};(0,r.useEffect)((()=>{C&&C[0]&&n((0,u.ix)(C[0]))}),[C,n]);const x=e=>{e.preventDefault(),t.searchText&&!_&&j((0,u.Gr)(t.searchText))},T=e=>n({searchText:e.target.value});return(0,r.createElement)("div",{className:k},(0,r.createElement)(d.Z,null),g?(0,r.createElement)("figure",null,i&&(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w}),i&&C&&C.length>1&&(0,r.createElement)("div",{className:"wp-block-jetpack-gif_thumbnails-container"},C.map((e=>{const t={backgroundImage:`url(${e.images.downsized_still.url})`};return(0,r.createElement)("button",{className:"wp-block-jetpack-gif_thumbnail-container",key:e.id,onClick:t=>{t.preventDefault(),(e=>{n((0,u.ix)(e))})(e)},style:t})}))),(0,r.createElement)("div",{className:"wp-block-jetpack-gif-wrapper",style:{paddingTop:v}},(0,r.createElement)("div",{className:"wp-block-jetpack-gif_cover",onClick:S,onKeyDown:S,role:"button",tabIndex:"0"}),(0,r.createElement)("iframe",{src:g,title:b})),(!l.RichText.isEmpty(f)||i)&&!!g&&(0,r.createElement)(l.RichText,{className:"wp-block-jetpack-gif-caption gallery-caption",inlineToolbar:!0,isSelected:y,unstableOnFocus:()=>E(!1),onChange:e=>n({caption:e}),placeholder:__("Write caption…","jetpack"),tagName:"figcaption",value:f})):(0,r.createElement)(s.Placeholder,{className:"wp-block-jetpack-gif_placeholder",icon:c.qv,label:c.TN,instructions:__("Search for a term or paste a Giphy URL","jetpack")},(0,r.createElement)(p.Z,{onSubmit:x,onChange:T,value:b,ref:w})))}},21835:function(e,t,n){"use strict";var r=n(69307);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const[t,n]=(0,r.useState)(!1),[a,o]=(0,r.useState)(e),[i,s]=(0,r.useState)("");return(0,r.useEffect)((()=>{if(!i)return;(async()=>{n(!0);const e=await fetch(i).then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json(),n=void 0!==t.data.images?[t.data]:t.data;n[0].images&&o(n)}n(!1)})()}),[i]),{isFetching:t,giphyData:a,fetchGiphyData:s}}},31072:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},TN:function(){return c},qv:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(61796),s=n(57535);const __=a.__,_x=a._x,l="gif",c=__("GIF","jetpack"),u=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M18 13v7H4V6h5.02c.05-.71.22-1.38.48-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5l-2-2zm-1.5 5h-11l2.75-3.53 1.96 2.36 2.75-3.54L16.5 18zm2.8-9.11c.44-.7.7-1.51.7-2.39C20 4.01 17.99 2 15.5 2S11 4.01 11 6.5s2.01 4.5 4.49 4.5c.88 0 1.7-.26 2.39-.7L21 13.42 22.42 12 19.3 8.89zM15.5 9C14.12 9 13 7.88 13 6.5S14.12 4 15.5 4 18 5.12 18 6.5 16.88 9 15.5 9z"})),p={title:c,icon:{src:u,foreground:(0,s.m)()},category:"embed",keywords:[_x("animated","block search term","jetpack"),_x("giphy","block search term","jetpack"),_x("image","block search term","jetpack")],description:__("Search for and insert an animated image.","jetpack"),attributes:{align:{type:"string",default:"center"},caption:{type:"string"},giphyUrl:{type:"string"},searchText:{type:"string"},paddingTop:{type:"string",default:"56.2%"}},supports:{html:!1,align:!0},edit:i.Z,save:()=>null,example:{attributes:{align:"center",giphyUrl:"https://giphy.com/embed/fxKWgoOG9hzPPkE1oc",paddingTop:"100%",searchText:"WordPress"}}}},80917:function(e,t,n){"use strict";n.d(t,{Gr:function(){return s},ix:function(){return u}});var r=n(32882);const a=e=>`https://api.giphy.com/v1/gifs/search?q=${encodeURIComponent(e)}&api_key=${encodeURIComponent(r.U)}&limit=10`,o=e=>`https://api.giphy.com/v1/gifs/${encodeURIComponent(e)}?api_key=${encodeURIComponent(r.U)}`,i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;const n=e.split(t);return n[n.length-1]},s=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=null;e=e.trim();const n=/^https?:\/\/(media\.|i\.)?giphy\.com\/(embed|gifs|media)?\/?([-\w]*)(\/giphy)?(\.gif)?$/,r=e.match(n);return r&&r[3]&&(t=i(r[3],"-")),t?o(t):a(e)},l=e=>`${Math.floor(e.images.original.height/e.images.original.width*100)}%`,c=e=>e?.embed_url,u=e=>({giphyUrl:c(e),paddingTop:l(e)})},76280:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736);const __=o.__,_x=o._x;t.Z=e=>{const{className:t,embedValue:n,onChange:o,onSubmit:i}=e;return(0,r.createElement)(a.PanelBody,{title:__("Calendar settings","jetpack"),initialOpen:!1},(0,r.createElement)("form",{onSubmit:i,className:t},(0,r.createElement)("textarea",{type:"text",value:n,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:o}),(0,r.createElement)(a.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack"))))}},53997:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(52175),l=n(90162),c=n(4981),u=n(76280),p=n(54286),d=n(3030),m=n(58014);const __=a.__,_x=a._x;t.Z=(0,i.compose)(o.withNotices,(0,l.withViewportMatch)({isMobile:"< small"}))((function(e){const{attributes:{url:t,height:n},className:a,isMobile:i,isSelected:l,name:h,noticeOperations:f,noticeUI:g,setAttributes:b}=e,[v,k]=(0,r.useState)(t||""),[y,E]=(0,r.useState)(!1),[w,_]=(0,r.useState)(!1);(0,r.useEffect)((()=>{!l&&w&&_(!1)}),[l,w]);const C=()=>{_(!0)},j=e=>{e&&e.preventDefault();const t=(0,d.L7)(v.trim());if(!d.Wh.test(t.url))return f.removeAllNotices(),void f.createErrorNotice(__("Your calendar couldn't be embedded. Please double check your URL or Embed Code. Please note, you need to use the 'Public URL' or 'Embed Code', the 'Shareable Link' will not work.","jetpack"));b(t),E(!1),f.removeAllNotices()},S=(0,c.getBlockDefaultClassName)(h),x=`<iframe src="${t}" style="border:0" scrolling="no" frameborder="0" height="${i?"300":n}"></iframe>`,T=(0,r.createElement)(o.ExternalLink,{href:"https://en.support.wordpress.com/google-calendar/"},__("Enable Permissions for the calendar you want to share","jetpack")),N=(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(u.Z,{className:`${S}-embed-form-sidebar`,embedValue:v,onChange:e=>k(e.target.value),onSubmit:j}));if(y||!t){const e=(0,m.Wp)()||(0,m.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/google-calendar/":"https://jetpack.com/support/jetpack-blocks/google-calendar/";return(0,r.createElement)("div",{className:a},N,(0,r.createElement)(o.Placeholder,{className:a,label:__("Google Calendar","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:(0,r.createElement)("ol",{className:`${S}-placeholder-instructions`},(0,r.createElement)("li",null,T),(0,r.createElement)("li",null,__("Paste the embed code you copied from your Google Calendar below","jetpack"))),notices:g},(A=`${S}-embed-form-editor`,(0,r.createElement)("form",{onSubmit:j,className:A},(0,r.createElement)("textarea",{type:"text",value:v,className:"components-placeholder__input","aria-label":__("Google Calendar URL or iframe","jetpack"),placeholder:__("Enter URL or iframe to embed here…","jetpack"),onChange:e=>k(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))),(0,r.createElement)("div",{className:`${S}-placeholder-links`},(0,r.createElement)(o.ExternalLink,{href:e},__("Learn more","jetpack")))))}var A;return(0,r.createElement)("div",{className:a},N,(0,r.createElement)("div",null,(0,r.createElement)(o.SandBox,{html:x,onFocus:C}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:C})))}))},54286:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"23",viewBox:"0 0 24 23",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M19.5,23h-15c-2.2,0-4-1.8-4-4V4c0-2.2,1.8-4,4-4h15c2.2,0,4,1.8,4,4v15C23.5,21.2,21.7,23,19.5,23z M4.5,2 c-1.1,0-2,0.9-2,2v15c0,1.1,0.9,2,2,2h15c1.1,0,2-0.9,2-2V4c0-1.1-0.9-2-2-2H4.5z M6.9,3.9L6.9,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0C6.5,5.9,6.1,5.5,6.1,5V4.7C6.1,4.3,6.5,3.9,6.9,3.9z M17,3.9L17,3.9c0.5,0,0.9,0.4,0.9,0.9V5 c0,0.5-0.4,0.9-0.9,0.9l0,0c-0.5,0-0.9-0.4-0.9-0.9V4.7C16.2,4.3,16.5,3.9,17,3.9z M8.8,17.6c1.8,0,3.2-1,3.2-2.4 c0-1.1-0.7-1.8-1.8-1.9v-0.1c0.9-0.2,1.5-0.9,1.5-1.8c0-1.3-1.2-2.2-2.9-2.2c-1.8,0-2.9,1-3,2.5h1.6c0-0.7,0.6-1.1,1.4-1.1 c0.8,0,1.3,0.4,1.3,1.1c0,0.7-0.5,1.1-1.3,1.1h-1v1.3h1c0.9,0,1.5,0.4,1.5,1.1c0,0.7-0.6,1.2-1.4,1.2c-0.9,0-1.4-0.4-1.5-1.1H5.7 C5.8,16.6,7,17.6,8.8,17.6z M17.6,17.4V9.3h-1.7l-2.1,1.4v1.6l2-1.4h0.1v6.4H17.6z"}))},13984:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(69307),a=n(65736),o=n(4981),i=n(53997),s=n(3030),l=n(54286),c=n(57535);const __=a.__,_x=a._x,u="google-calendar",p={title:__("Google Calendar","jetpack"),description:__("Embed a Google Calendar","jetpack"),keywords:[_x("events","block search term","jetpack"),_x("dates","block search term","jetpack"),_x("schedule","block search term","jetpack"),_x("appointments","block search term","jetpack")],icon:{src:l.Z,foreground:(0,c.m)()},category:"embed",supports:{align:!0,alignWide:!0,html:!1},attributes:{url:{type:"string"},height:{type:"integer",default:600}},edit:i.Z,save:e=>{let{attributes:{url:t}}=e;return(0,r.createElement)("a",{href:t},t)},transforms:{from:[{type:"shortcode",tag:"googleapps",isMatch:function(e){return"calendar"===e.named.domain},attributes:{url:{type:"string",shortcode:e=>{let{named:{domain:t,dir:n,query:r}}=e;return`https://${t}.google.com/${n}?${r}`}}}},{type:"raw",isMatch:e=>"P"===e.nodeName&&s.Wh.test(e.textContent),transform:e=>(0,o.createBlock)("jetpack/google-calendar",{url:e.textContent.trim()})},{type:"raw",isMatch:e=>"FIGURE"===e.nodeName&&s.E6.test(e.innerHTML),transform:e=>{const{url:t,height:n}=(0,s.jj)(e.innerHTML.trim());return(0,o.createBlock)("jetpack/google-calendar",{url:t,height:n})}}]},example:{attributes:{url:"https://calendar.google.com/calendar/embed?src=jb4bu80jirp0u11a6niie21pp4%40group.calendar.google.com&ctz=America/New_York"}}}},3030:function(e,t,n){"use strict";n.d(t,{Wh:function(){return a},E6:function(){return o},jj:function(){return c},L7:function(){return u}});const r="s*https?://calendar.google.com/calendar",a=new RegExp(`^${r}`,"i"),o=new RegExp(`<iframe((?:\\s+\\w+=(['"]).*?\\2)*)\\s+src=(["'])(${r}.*?)\\3((?:\\s+\\w+=(['"]).*?\\6)*)`,"i"),i=new RegExp(`${r}\\?cid=([-A-Za-z0-9+/]+={0,3})`,"i"),s=/\s+(\w+)=(["'])(.*?)\2/gi;function l(e){const t=i.exec(e);if(t)return"https://calendar.google.com/calendar/embed?src="+encodeURIComponent(atob(t[1]))}function c(e){const t=o.exec(e);if(!t)return;const n={};return t.forEach(((e,t)=>{if(0===t)return;if(a.test(e))return void(n.url=e);let r;for(;null!==(r=s.exec(e));)n[r[1]]=r[3]})),{url:n.url,width:n.width,height:n.height}}function u(e){return o.test(e)?c(e):i.test(e)?{url:l(e)}:{url:e}}},74956:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{attributes:t,setAttributes:n}=e;const{orientation:o}=t;return(0,r.createElement)(a.PanelBody,{title:__("Orientation","jetpack")},(0,r.createElement)(a.RadioControl,{selected:o||"horizontal",options:[{label:__("Side by side","jetpack"),value:"horizontal"},{label:__("Above and below","jetpack"),value:"vertical"}],onChange:e=>n({orientation:e})}))}},38544:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(94333),s=n(65736),l=n(5968),c=n(74956),u=n(91667),p=n(12379);n(728);const __=s.__;t.Z=e=>{let{attributes:t,className:n,clientId:s,isSelected:d,setAttributes:m}=e;const{imageBefore:h,imageAfter:f,caption:g,orientation:b}=t;let v=null,k=null;const y=(0,r.useRef)();i.useResizeObserver&&([v,k]=(0,i.useResizeObserver)(),(0,p.Z)((e=>{e>0&&"undefined"!=typeof juxtapose&&juxtapose.sliders&&juxtapose.sliders.forEach((t=>{t.wrapper.parentElement.id===s&&t.optimizeWrapper(e)}))}),200,k.width));const E=h&&h.url&&f&&f.url?"image-compare__comparison juxtapose":"image-compare__placeholder";return(0,r.useLayoutEffect)((()=>{h.url&&f.url&&"undefined"!=typeof juxtapose&&juxtapose.makeSlider(y?.current)}),[h,f,b]),(0,r.createElement)("figure",{className:n,id:s},v,(0,r.createElement)(a.InspectorControls,{key:"controls"},(0,r.createElement)(c.Z,{attributes:t,setAttributes:m})),(0,r.createElement)("div",{ref:y,className:E,"data-mode":b||"horizontal"},(0,r.createElement)(o.Placeholder,{label:null},(0,r.createElement)("div",{className:"image-compare__image-before"},(0,r.createElement)(u.Z,{image:{id:h.id,url:h.url,alt:h.alt},placeHolderLabel:__("Image before","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageBefore:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})),(0,r.createElement)("div",{className:"image-compare__image-after"},(0,r.createElement)(u.Z,{image:{id:f.id,url:f.url,alt:f.alt},placeHolderLabel:__("Image after","jetpack"),onChange:e=>{if("image"===e.media_type||"image"===e.type){var t,n;const{src:r}=(0,l.z)(e),{alt:a,id:o,media_details:i}=e,s=null!==(t=i?.width)&&void 0!==t?t:e.width,c=null!==(n=i?.height)&&void 0!==n?n:e.height;m({imageAfter:{id:o,url:r||e.url,alt:a,width:s,height:c}})}}})))),(!a.RichText.isEmpty(g)||d&&h.url&&f.url)&&(0,r.createElement)(a.RichText,{tagName:"figcaption",placeholder:__("Write caption","jetpack"),value:g,onChange:e=>m({caption:e}),inlineToolbar:!0}))}},94703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M21 4h-6v1.5h6c.3 0 .5.2.5.5v.4l-3.6 3.5L15 8.1v1.8l2.6 1.7c.1.1.3.1.4.1.2 0 .4-.1.5-.2l3-2.9V18c0 .3-.2.5-.5.5h-6V20h6c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM1 6v12c0 1.1.9 2 2 2h10.5V4H3c-1.1 0-2 .9-2 2zm11 12.5H3c-.3 0-.5-.2-.5-.5v-1.4L5 14.7l1.5-1.1.1-.1 3 1.9c.1.1.3.1.4.1.2 0 .4-.1.5-.2L12 14v4.5zm0-6.6l-2.1 2L7 12c-.1-.1-.3-.1-.4-.1h-.1c-.1 0-.3.1-.4.1l-1.1.9-2.5 1.8V6c0-.3.2-.5.5-.5h9v6.4z"}))},91667:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(55609);t.Z=(0,a.compose)([i.withNotices])((e=>{const{image:t,noticeOperations:n,noticeUI:a,onChange:i,placeHolderLabel:s}=e,l=(0,r.createElement)("img",{id:t.id,src:t.url,alt:t.alt}),c=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.MediaPlaceholder,{labels:{title:s},accept:"image/*",allowedTypes:["image"],onSelect:i,onError:e=>n.createErrorNotice(e),notices:a}));return t&&t.url?l:c}))},1624:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return d}});var r=n(65736),a=n(38544),o=n(94703),i=n(31105),s=n(90767),l=n(58632),c=n(20510),u=n(57535);const __=r.__,_x=r._x,p="image-compare",d={title:__("Image Compare","jetpack"),description:__("Compare two images with a slider. Works best with images of the same size.","jetpack"),icon:{src:o.Z,foreground:(0,u.m)()},category:(0,c.Z)("media","layout"),keywords:[_x("juxtapose","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("side by side","block search term","jetpack"),_x("slider","block search term","jetpack")],attributes:{imageBefore:{type:"object",default:{}},imageAfter:{type:"object",default:{}},caption:{type:"string"},orientation:{type:"string",default:"horizontal"}},example:{attributes:{imageBefore:{id:1,url:l,alt:__("Before","jetpack")},imageAfter:{id:2,url:s,alt:__("After","jetpack")},caption:__("Example image","jetpack")}},edit:a.Z,save:i.Z}},31105:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{attributes:t,className:n}=e;const{imageBefore:o,imageAfter:i,caption:s,orientation:l}=t;return(0,r.createElement)("figure",{className:n},(0,r.createElement)("div",{className:"juxtapose","data-mode":l||"horizontal"},(0,r.createElement)("img",{id:o.id,src:o.url,alt:o.alt,width:o.width,height:o.height,className:"image-compare__image-before"}),(0,r.createElement)("img",{id:i.id,src:i.url,alt:i.alt,width:i.width,height:i.height,className:"image-compare__image-after"})),!a.RichText.isEmpty(s)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:s}))}},12379:function(e,t,n){"use strict";var r=n(69307);t.Z=(e,t,n)=>{(0,r.useEffect)((()=>{const r=setTimeout((()=>e(n)),t);return()=>clearTimeout(r)}),[n])}},728:function(e,t,n){"use strict";var r=n(47701);n.n(r)()((function(){const e={sliders:[],OPTIMIZATION_ACCEPTED:1,OPTIMIZATION_WAS_CONSTRAINED:2};function t(e,t){const n=this;this.image=new Image,this.loaded=!1,this.image.onload=function(){n.loaded=!0,t._onLoaded()},this.image.src=e.src,this.image.alt=e.alt||"",this.label=e.label||!1}function n(e,t){e&&e.classList.add(t)}function r(e,t){e&&e.classList.remove(t)}function a(e){return{width:parseInt(window.getComputedStyle(e).width,10),height:parseInt(window.getComputedStyle(e).height,10)}}function o(e,t){let n;if("string"==typeof t||"number"==typeof t)n=parseInt(t,10);else{const r=e.getBoundingClientRect(),a={top:r.top+document.body.scrollTop+document.documentElement.scrollTop,left:r.left+document.body.scrollLeft+document.documentElement.scrollLeft},o=e.offsetWidth;n=(function(e){let t;return t=e.pageX?e.pageX:e.touches?e.touches[0].pageX:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,t}(t)-a.left)/o*100}return n}function i(e,t,n){let r;if("string"==typeof t||"number"==typeof t)r=parseInt(t,10);else{const a=e.getBoundingClientRect(),o={top:a.top+n.body.scrollTop+n.documentElement.scrollTop,left:a.left+n.body.scrollLeft+n.documentElement.scrollLeft},i=e.offsetHeight;r=(function(e){let t;return t=e.pageY?e.pageY:e.touches?e.touches[0].pageY:e.clientY+document.body.scrollTop+document.documentElement.scrollTop,t}(t)-o.top)/i*100}return r}const s={animate:!0,showLabels:!0,makeResponsive:!0};function l(e,n,r){let a;for(a in this.element=e,this.options={animate:!0,showLabels:!0,makeResponsive:!0,startingPosition:"50%",mode:"horizontal",callback:null},this.options)a in r&&(this.options[a]=a in s?"string"!=typeof(o=r[a])?Boolean(o):!("false"===o||""===o):r[a]);var o;2===n.length&&(this.imgBefore=new t(n[0],this),this.imgAfter=new t(n[1],this))}l.prototype={updateSlider:function(e,t){let a;a="vertical"===this.options.mode?i(this.slider,e,this.sliderParentDocument):o(this.slider,e),a=a.toFixed(2)+"%";const s=parseFloat(a),l=100-s+"%";s>0&&s<100&&(r(this.handle,"transition"),r(this.rightImage,"transition"),r(this.leftImage,"transition"),this.options.animate&&t&&(n(this.handle,"transition"),n(this.leftImage,"transition"),n(this.rightImage,"transition")),"vertical"===this.options.mode?(this.handle.style.top=a,this.leftImage.style.height=a,this.rightImage.style.height=l):(this.handle.style.left=a,this.leftImage.style.width=a,this.rightImage.style.width=l),this.sliderPosition=a)},getPosition:function(){return this.sliderPosition},displayLabel:function(e,t){const n=document.createElement("div");n.className="jx-label",n.setAttribute("tabindex",0),function(e,t){document.body.textContent?e.textContent=t:e.innerText=t}(n,t),e.appendChild(n)},setStartingPosition:function(e){this.options.startingPosition=e},calculateDims:function(e,t){const n=(r=this.imgBefore.image,{width:r.naturalWidth,height:r.naturalHeight,aspect:function(){return this.width/this.height}}).aspect();var r;return e?t=e/n:t&&(e=t*n),{width:e,height:t,ratio:n}},responsivizeIframe:function(e){return e.height<window.innerHeight?e.ratio>=1&&(this.wrapper.style.paddingTop=parseInt((window.innerHeight-e.height)/2)+"px"):e.height>window.innerHeight&&(e=this.calculateDims(0,window.innerHeight),this.wrapper.style.paddingLeft=parseInt((window.innerWidth-e.width)/2)+"px"),e},setWrapperDimensions:function(){const e=a(this.wrapper.parentNode).width,t=a(this.wrapper.parentNode).height;let n=this.calculateDims(e,t);window.location===window.parent.location||this.options.makeResponsive||(n=this.responsivizeIframe(n)),this.wrapper.style.height=parseInt(n.height)+"px",this.wrapper.style.width=parseInt(n.width)+"px"},optimizeWrapper:function(t){let n=e.OPTIMIZATION_ACCEPTED;return this.imgBefore.image.naturalWidth>=t&&this.imgAfter.image.naturalWidth>=t?(this.wrapper.style.width=t+"px",n=e.OPTIMIZATION_WAS_CONSTRAINED):this.imgAfter.image.naturalWidth<t?this.wrapper.style.width=this.imgAfter.image.naturalWidth+"px":this.wrapper.style.width=this.imgBefore.image.naturalWidth+"px",this.setWrapperDimensions(),n},_onLoaded:function(){if(this.imgBefore&&!0===this.imgBefore.loaded&&this.imgAfter&&!0===this.imgAfter.loaded){if(this.wrapper=this.element,!this.wrapper||this.wrapper.querySelector(".jx-slider"))return;n(this.wrapper,"juxtapose"),this.wrapper.style.width=this.imgBefore.image.naturalWidth,this.setWrapperDimensions(),this.slider=document.createElement("div"),this.slider.className="jx-slider",this.wrapper.appendChild(this.slider),this.sliderParentDocument=this.wrapper.ownerDocument,"horizontal"!==this.options.mode&&n(this.slider,this.options.mode),this.handle=document.createElement("div"),this.handle.className="jx-handle",this.rightImage=document.createElement("div"),this.rightImage.className="jx-image jx-right",this.rightImage.appendChild(this.imgAfter.image),this.leftImage=document.createElement("div"),this.leftImage.className="jx-image jx-left",this.leftImage.appendChild(this.imgBefore.image),this.slider.appendChild(this.handle),this.slider.appendChild(this.leftImage),this.slider.appendChild(this.rightImage),this.leftArrow=document.createElement("div"),this.rightArrow=document.createElement("div"),this.control=document.createElement("div"),this.controller=document.createElement("div"),this.leftArrow.className="jx-arrow jx-left",this.rightArrow.className="jx-arrow jx-right",this.control.className="jx-control",this.controller.className="jx-controller",this.controller.setAttribute("tabindex",0),this.controller.setAttribute("role","slider"),this.controller.setAttribute("aria-valuenow",50),this.controller.setAttribute("aria-valuemin",0),this.controller.setAttribute("aria-valuemax",100),this.controller.setAttribute("aria-label",window.imageCompareHandle?.msg||"Slide to compare images"),this.handle.appendChild(this.leftArrow),this.handle.appendChild(this.control),this.handle.appendChild(this.rightArrow),this.control.appendChild(this.controller),this._init()}},_init:function(){this.updateSlider(this.options.startingPosition,!1),!0===this.options.showLabels&&(this.imgBefore.label&&this.displayLabel(this.leftImage,this.imgBefore.label),this.imgAfter.label&&this.displayLabel(this.rightImage,this.imgAfter.label));const t=this;window.addEventListener("resize",(function(){t.setWrapperDimensions()})),this.slider.addEventListener("mousedown",(function(e){e.preventDefault(),t.updateSlider(e,!0);let n=!0;this.addEventListener("mousemove",(function(e){e.preventDefault(),n&&t.updateSlider(e,!1)})),this.addEventListener("mouseup",(function(e){e.preventDefault(),e.stopPropagation(),n=!1}))})),this.slider.addEventListener("touchstart",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!0),this.addEventListener("touchmove",(function(e){e.preventDefault(),e.stopPropagation(),t.updateSlider(e,!1)}))})),this.handle.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;let r=parseFloat(this.style.left);if(37===n){r-=1;const e=parseFloat(this.style.left)-1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}if(39===n){r+=1;const e=parseFloat(this.style.left)+1;t.updateSlider(e,!1),t.controller.setAttribute("aria-valuenow",r)}})),this.leftImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("90%",!0),t.controller.setAttribute("aria-valuenow",91))})),this.rightImage.addEventListener("keydown",(function(e){const n=e.which||e.keyCode;13!==n&&32!==n||(t.updateSlider("10%",!0),t.controller.setAttribute("aria-valuenow",10))})),e.sliders.push(this),this.options.callback&&"function"==typeof this.options.callback&&this.options.callback(this)}},e.makeSlider=function(t,r){void 0===r&&(r=e.sliders.length);const a=t,o=a.querySelectorAll("img");if(o.length<2)return;const i={};a.getAttribute("data-animate")&&(i.animate=a.getAttribute("data-animate")),a.getAttribute("data-showlabels")&&(i.showLabels=a.getAttribute("data-showlabels")),a.getAttribute("data-startingposition")&&(i.startingPosition=a.getAttribute("data-startingposition")),a.getAttribute("data-mode")&&(i.mode=a.getAttribute("data-mode")),a.getAttribute("data-makeresponsive")&&(i.mode=a.getAttribute("data-makeresponsive"));return n(t,"juxtapose-"+r),a.innerHTML?a.innerHTML="":a.innerText="",new e.JXSlider(t,[{src:o[0].src,label:o[0].getAttribute("data-label"),alt:o[0].alt},{src:o[1].src,label:o[1].getAttribute("data-label"),alt:o[1].alt}],i)},e.scanPage=function(){const t=document.querySelectorAll(".juxtapose");for(let n=0;n<t.length;n++)e.makeSlider(t[n],n)},e.JXSlider=l,window.juxtapose=e,e.scanPage()}))},18776:function(e,t){"use strict";t.Z={accessToken:{type:"string"},instagramUser:{type:"string"},columns:{type:"number",default:3,min:1,max:6},count:{type:"number",default:9,min:1,max:30},spacing:{type:"number",default:10,min:0,max:50},isStackedOnMobile:{type:"boolean",default:!0}}},14937:function(e,t,n){"use strict";n.d(t,{u:function(){return r},D:function(){return a}});const r=30,a="jetpack-new-instagram-connection"},3802:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(55609),o=n(65736),i=n(14937);const __=o.__,_n=o._n;function s(e){let{accountImageTotal:t,attributes:n,currentUserConnected:s,disconnectFromService:l,shouldRenderSidebarNotice:c,setAttributes:u}=e;const{accessToken:p,columns:d,count:m,instagramUser:h,isStackedOnMobile:f,spacing:g}=n;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.PanelBody,{title:__("Account Settings","jetpack")},(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("span",null,__("Account","jetpack")),(0,r.createElement)(a.ExternalLink,{href:`https://www.instagram.com/${h}/`},"@",h)),s&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)(a.Button,{isDestructive:!0,isLink:!0,onClick:()=>l(p)},__("Disconnect your account","jetpack")))),(0,r.createElement)(a.PanelBody,{title:__("Display Settings","jetpack")},c?(()=>{const e=t?(0,o.sprintf)(
+/* translators: placeholder is a number. */
+_n("There is currently only %s post in your Instagram account.","There are currently only %s posts in your Instagram account.",t,"jetpack"),t):__("There are currently no posts in your Instagram account.","jetpack");return(0,r.createElement)("div",{className:"wp-block-jetpack-instagram-gallery__count-notice"},(0,r.createElement)(a.Notice,{isDismissible:!1,status:"info"},e))})():null,(0,r.createElement)(a.RangeControl,{label:__("Number of Posts","jetpack"),value:m,onChange:e=>u({count:e}),min:1,max:i.u}),(0,r.createElement)(a.RangeControl,{label:__("Number of Columns","jetpack"),value:d,onChange:e=>u({columns:e}),min:1,max:6}),(0,r.createElement)(a.RangeControl,{label:__("Image Spacing (px)","jetpack"),value:g,onChange:e=>u({spacing:e}),min:0,max:50}),(0,r.createElement)(a.ToggleControl,{label:__("Stack on mobile","jetpack"),checked:f,onChange:()=>u({isStackedOnMobile:!f})})))}},66137:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(18776),p=n(14937),d=n(14087),m=n(10273),h=n(2992),f=n(44420),g=n(76853),b=n(63729),v=n(3802);const __=c.__;t.Z=(0,l.withNotices)((e=>{const{attributes:t,className:n,isSelected:a,noticeOperations:c,noticeUI:k,setAttributes:y}=e,{accessToken:E,align:w,columns:_,count:C,isStackedOnMobile:j,spacing:S}=t;(0,r.useEffect)((()=>{const e=(0,d.S)(u.Z,t);(0,i.isEqual)(e,t)||y(e)}),[t,y]);const[x,T]=(0,r.useState)(E),{isRequestingWpcomConnectUrl:N,wpcomConnectUrl:A}=(0,h.Z)(),{images:P,isLoadingGallery:I,setImages:M}=(0,f.Z)({accessToken:E,noticeOperations:c,setAttributes:y,setSelectedAccount:T}),{connectToService:R,disconnectFromService:L,isConnecting:B,isRequestingUserConnections:Z,userConnections:F}=(0,m.Z)({accessToken:E,noticeOperations:c,selectedAccount:x,setAttributes:y,setImages:M,setSelectedAccount:T}),D=(0,b.Z)(),O=C>P.length?P.length:C,z=!I&&(!E||(0,i.isEmpty)(P)),U=!z,$=E&&I&&(0,i.isEmpty)(P),V=!z&&!$,G=o()(n,{[`align${w}`]:w}),q=o()("wp-block-jetpack-instagram-gallery__grid",`wp-block-jetpack-instagram-gallery__grid-columns-${_}`,{"is-stacked-on-mobile":j}),H={gridGap:S,"--latest-instagram-posts-spacing":S?`${S}px`:void 0},W={padding:S},K=()=>{x&&p.D!==x?y({accessToken:x,instagramUser:(0,i.find)(F,{token:x}).username}):R()};return(0,r.createElement)("div",{className:G},z&&(0,r.createElement)(l.Placeholder,{icon:"instagram",instructions:D?Z||F.length?void 0:__("Connect to Instagram to start sharing your images.","jetpack"):__("First, you'll need to connect your WordPress.com account.","jetpack"),label:__("Latest Instagram Posts","jetpack"),notices:k},D?(()=>{const e=F.length>0,t=[...(0,i.map)(F,(e=>({label:`@${e.username}`,value:e.token}))),{label:__("Add a new account","jetpack"),value:p.D}],n=B||Z||e&&!x;return(0,r.createElement)("div",null,e&&(0,r.createElement)(l.RadioControl,{label:__("Select your Instagram account:","jetpack"),onChange:e=>T(e),options:t,selected:x}),p.D===x&&(0,r.createElement)("p",{className:"wp-block-jetpack-instagram-gallery__new-account-instructions"},__("If you are currently logged in to Instagram on this device, you might need to log out of it first.","jetpack")),(0,r.createElement)(l.Button,{disabled:n,isPrimary:!0,onClick:K},B&&__("Connecting…","jetpack"),Z&&__("Loading your connections…","jetpack"),!B&&!Z&&__("Connect to Instagram","jetpack")))})():(0,r.createElement)(l.Button,{disabled:N||!A,href:A,isSecondary:!0},__("Connect to WordPress.com","jetpack"))),$&&(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(l.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack"))),V&&(0,r.createElement)("div",{className:q,style:H},(0,i.times)(a?C:O,(e=>(0,r.createElement)("span",{className:o()("wp-block-jetpack-instagram-gallery__grid-post"),key:e,style:W},(e=>{if(P[e]){const n=P[e];return(0,r.createElement)(g.Z,{alt:n.title||n.url,src:n.url,attributes:t,spacing:S})}return(0,r.createElement)("img",{alt:__("Latest Instagram Posts placeholder","jetpack"),src:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNMyc2tBwAEOgG/c94mJwAAAABJRU5ErkJggg=="})})(e))))),U&&(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(v.Z,{accountImageTotal:P.length,attributes:t,currentUserConnected:D,disconnectFromService:L,shouldRenderSidebarNotice:U&&!$&&P.length<C,setAttributes:y})))}))},76853:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{src:t,alt:n,spacing:a}=e;const[i,s]=(0,r.useState)(!1),[l,c]=(0,r.useState)("auto"),u=(0,r.useRef)(),p=()=>{s(!0),c("auto")};(0,r.useEffect)((()=>{const e=t;if(e){const t=new window.Image;t.src=e,t.onload=p}u.current&&c(u.current.parentNode.getBoundingClientRect().width)}),[t]);const d=-1*a,m=o()("wp-block-jetpack-instagram-gallery__placeholder",{"is-loaded":i}),h=i?{margin:d}:{margin:d,height:l},f=o()({"is-loaded":i});return(0,r.createElement)("span",{style:h,className:m},(0,r.createElement)("img",{alt:n,className:f,ref:u,src:t}))}},77007:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(4981),i=n(18776),s=n(66137),l=n(57535);const __=a.__,_x=a._x,c="instagram-gallery",u={title:__("Latest Instagram Posts","jetpack"),description:__("Display an automatically updating list of the latest posts from your Instagram feed.","jetpack"),icon:{src:"instagram",foreground:(0,l.m)()},category:"embed",keywords:[_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack")],supports:{align:!0,html:!1},transforms:{from:[{type:"block",blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"wpcom_instagram_widget"===t},transform:e=>{let{instance:t}=e;return(0,o.createBlock)("jetpack/instagram-gallery",{columns:t.raw.columns,count:t.raw.count,accessToken:t.raw.token_id})}}]},attributes:i.Z,edit:s.Z,save:e=>{let{attributes:{instagramUser:t}}=e;return t&&(0,r.createElement)("div",null,(0,r.createElement)("a",{href:`https://www.instagram.com/${t}/`,rel:"noopener noreferrer",target:"_blank"},`https://www.instagram.com/${t}/`))}}},10273:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(59177),a=n(92819),o=n(86989),i=n.n(o),s=n(69307),l=n(65736),c=n(14937),u=n(63729);const __=l.__;function p(e){let{accessToken:t,noticeOperations:n,selectedAccount:o,setAttributes:l,setImages:p,setSelectedAccount:d}=e;const[m,h]=(0,s.useState)(!1),[f,g]=(0,s.useState)(!1),[b,v]=(0,s.useState)([]),k=(0,u.Z)();(0,s.useEffect)((()=>{!t&&k&&(g(!0),i()({path:"/wpcom/v2/instagram-gallery/connections"}).then((e=>{g(!1),v(e)})).catch((()=>{g(!1),v([])})))}),[t,k]),(0,s.useEffect)((()=>{c.D===o||(0,a.find)(b,{token:o})||d(void 0)}),[o,d,b]);return{connectToService:()=>{n.removeAllNotices(),h(!0),i()({path:"/wpcom/v2/instagram-gallery/connect-url"}).then((e=>{const t=new r.Z;t.open(e,"connect-to-instagram-popup","toolbar=0,location=0,menubar=0,"+t.getScreenCenterSpecs(700,700)),t.on("message",(e=>{let{keyring_id:t}=e;if(h(!1),t){const e=t.toString();l({accessToken:e}),d(e)}})),t.on("close",(e=>{"connect-to-instagram-popup"===e&&h(!1)}))})).catch((()=>{n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),h(!1)}))},disconnectFromService:()=>{n.removeAllNotices(),l({accessToken:void 0,instagramUser:void 0}),p([])},isConnecting:m,isRequestingUserConnections:f,userConnections:b}}},2992:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(86989),a=n.n(r),o=n(9818),i=n(69307),s=n(96483),l=n(63729);function c(){const{isAutoDraft:e}=(0,o.useSelect)((e=>{const{status:t}=e("core/editor").getCurrentPost();return{isAutoDraft:"auto-draft"===t}})),{savePost:t}=(0,o.useDispatch)("core/editor"),[n,r]=(0,i.useState)(),[c,u]=(0,i.useState)(!1),p=(0,l.Z)();return(0,i.useEffect)((()=>{p||n||c||(e?t():(u(!0),a()({path:(0,s.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((e=>{r(e),u(!1)}))))}),[p,e,c,t,n]),{isRequestingWpcomConnectUrl:c,wpcomConnectUrl:n}}},44420:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(92819),a=n(86989),o=n.n(a),i=n(69307),s=n(65736),l=n(96483),c=n(14937);const __=s.__;function u(e){let{accessToken:t,noticeOperations:n,setAttributes:a,setSelectedAccount:s}=e;const[u,p]=(0,i.useState)([]),[d,m]=(0,i.useState)(!1);return(0,i.useEffect)((()=>{t&&(n.removeAllNotices(),m(!0),o()({path:(0,l.addQueryArgs)("/wpcom/v2/instagram-gallery/gallery",{access_token:t,count:c.u})}).then((e=>{let{external_name:t,images:o}=e;if(m(!1),!o||!(0,r.isArray)(o))return n.createErrorNotice(__("An error occurred. Please try again later.","jetpack")),p([]),a({accessToken:void 0,instagramUser:void 0}),void s(void 0);(0,r.isEmpty)(o)&&n.createErrorNotice(__("No images were found in your Instagram account.","jetpack")),a({instagramUser:t}),p(o)})).catch((()=>{m(!1),p([]),a({accessToken:void 0,instagramUser:void 0}),s(void 0)})))}),[t,a,s]),{images:u,isLoadingGallery:d,setImages:p}}},66916:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(48355);const a="likes",o={render:r.Z}},48355:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(12238),l=n(9818),c=n(23539);const __=a.__,u=(0,l.withSelect)((e=>{const{getEditedPostAttribute:t}=e("core/editor");return{areLikesEnabled:t("jetpack_likes_enabled")}})),p=(0,l.withDispatch)((e=>{const{editPost:t}=e("core/editor");return{editPost:t}}));t.Z=(0,i.compose)([u,p])((e=>{let{areLikesEnabled:t,editPost:n}=e;return(0,r.createElement)(s.PostTypeSupportCheck,{supportKeys:"jetpack-post-likes"},(0,r.createElement)(c.Z,null,(0,r.createElement)(o.CheckboxControl,{label:__("Show likes.","jetpack"),checked:t,onChange:e=>{n({jetpack_likes_enabled:e})}})))}))},25887:function(e,t,n){"use strict";n.d(t,{N3:function(){return r},sf:function(){return a},Cw:function(){return o}});const r="processing",a="success",o="error"},50013:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(18417),s=n(25887);const __=a.__;function l(e){let{auditionNotification:t,clearAudition:n,setAttributes:a,emailPlaceholder:l,processingLabel:c,successLabel:u,errorLabel:p,interests:d,signupFieldTag:m,signupFieldValue:h,connectURL:f}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Text Elements","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Email Placeholder","jetpack"),value:l,onChange:e=>{a({emailPlaceholder:e}),n()}})),(0,r.createElement)(o.PanelBody,{title:__("Notifications","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Processing text","jetpack"),value:c,onChange:e=>{a({processingLabel:e}),t(s.N3)}}),(0,r.createElement)(o.TextControl,{label:__("Success text","jetpack"),value:u,onChange:e=>{a({successLabel:e}),t(s.sf)}}),(0,r.createElement)(o.TextControl,{label:__("Error text","jetpack"),value:p,onChange:e=>{a({errorLabel:e}),t(s.Cw)}})),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Groups","jetpack")},(0,r.createElement)(i.Z,{interests:d,onChange:(e,t)=>{const n=[...new Set([...d,e])].filter((n=>!(n===e&&!t)&&n));a({interests:n})}}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/send-groups-audience/"},__("Learn about groups","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Signup Location Tracking","jetpack")},(0,r.createElement)(o.TextControl,{label:__("Signup Field Tag","jetpack"),placeholder:__("SIGNUP","jetpack"),value:m,onChange:e=>a({signupFieldTag:e})}),(0,r.createElement)(o.TextControl,{label:__("Signup Field Value","jetpack"),placeholder:__("website","jetpack"),value:h,onChange:e=>a({signupFieldValue:e})}),(0,r.createElement)(o.ExternalLink,{href:"https://mailchimp.com/help/determine-webpage-signup-location/"},__("Learn about signup location tracking","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Mailchimp Connection","jetpack")},(0,r.createElement)(o.ExternalLink,{href:f},__("Manage Connection","jetpack"))))}},58791:function(e,t,n){"use strict";var r=n(92819),a=n(4981),o=n(65736);const __=o.__,i=["submitButtonText","backgroundButtonColor","textButtonColor","submitButtonClasses","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},submitButtonText:{type:"string",default:__("Join my email list","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},submitButtonClasses:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},migrate:e=>{const t=(0,r.omit)(e,i),n={text:(o=e).submitButtonText||__("Join my email list","jetpack"),textColor:o.textButtonColor,customTextColor:o.customTextButtonColor,backgroundColor:o.backgroundButtonColor,customBackgroundColor:o.customBackgroundButtonColor};var o;return[t,[(0,a.createBlock)("jetpack/button",{element:"button",uniqueId:"mailchimp-widget-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,i),Boolean),save:()=>null}},87539:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(89105),c=n.n(l),u=n(65736),p=n(96483),d=n(55609),m=n(52175),h=n(19916),f=n(50013),g=n(63729),b=n(25887);const __=u.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e=(0,g.Z)();if(e){const t={path:"/wpcom/v2/mailchimp",method:"GET"};s()(t).then((t=>{const n=t.connect_url,r="connected"===t.code?1:2;this.setState({currentUserConnected:e,connected:r,connectURL:n})}),(t=>{this.setState({currentUserConnected:e,connected:2,connectURL:null}),this.onError(t.message)}))}else s()({path:(0,p.addQueryArgs)("/jetpack/v4/connection/url",{from:"jetpack-block-editor",redirect:window.location.href})}).then((t=>{const n=t;this.setState({currentUserConnected:e,connected:2,connectURL:n})}))})),a()(this,"auditionNotification",(e=>{this.setState({audition:e}),this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(this.clearAudition,3e3)})),a()(this,"clearAudition",(()=>{this.setState({audition:null})})),a()(this,"labelForAuditionType",(e=>{const{attributes:t}=this.props,{processingLabel:n,successLabel:r,errorLabel:a}=t;return e===b.N3?n:e===b.sf?r:e===b.Cw?a:null})),a()(this,"roleForAuditionType",(e=>e===b.Cw?"alert":"status")),a()(this,"render",(()=>{const{attributes:e,className:t,notices:n,noticeUI:r,setAttributes:a}=this.props,{audition:i,connected:s,connectURL:l,currentUserConnected:u}=this.state,{emailPlaceholder:p,consentText:g,interests:b,processingLabel:v,successLabel:k,errorLabel:y,preview:E,signupFieldTag:w,signupFieldValue:_}=e,C="wp-block-jetpack-mailchimp",j=(0,o.createElement)(d.Placeholder,{icon:h.qv,notices:n},(0,o.createElement)(d.Spinner,null)),S=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("You need to connect your Mailchimp account and choose an audience in order to start collecting Email subscribers.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l,target:"_blank"},__("Set up Mailchimp form","jetpack")),(0,o.createElement)("div",{className:`${C}-recheck`},(0,o.createElement)(d.Button,{isLink:!0,onClick:this.apiCall},__("Re-check Connection","jetpack")))),x=(0,o.createElement)(d.Placeholder,{className:"wp-block-jetpack-mailchimp",icon:h.qv,label:__("Mailchimp","jetpack"),notices:n,instructions:__("First, you'll need to connect your WordPress.com account.","jetpack")},(0,o.createElement)(d.Button,{isSecondary:!0,isLarge:!0,href:l},__("Connect to WordPress.com","jetpack"))),T=(0,o.createElement)(m.InspectorControls,null,(0,o.createElement)(f.Q,{auditionNotification:this.auditionNotification,clearAudition:this.clearAudition,emailPlaceholder:p,processingLabel:v,successLabel:k,errorLabel:y,interests:b,setAttributes:this.props.setAttributes,signupFieldTag:w,signupFieldValue:_,connectURL:l})),N=c()(t,{[`${C}_notication-audition`]:i}),A=(0,o.createElement)("div",{className:N},(0,o.createElement)(d.TextControl,{"aria-label":p,className:"wp-block-jetpack-mailchimp_text-input",disabled:!0,onChange:()=>!1,placeholder:p,title:__("You can edit the email placeholder in the sidebar.","jetpack"),type:"email"}),(0,o.createElement)(m.InnerBlocks,{template:[[h.Ss.name,h.Ss.attributes]],templateLock:"all"}),(0,o.createElement)(m.RichText,{tagName:"p",placeholder:__("Write consent text","jetpack"),value:g,onChange:e=>a({consentText:e}),inlineToolbar:!0}),i&&(0,o.createElement)("div",{className:`${C}_notification ${C}_${i}`,role:this.roleForAuditionType(i)},this.labelForAuditionType(i))),P=A;return(0,o.createElement)(o.Fragment,null,r,E&&P,!E&&0===s&&j,!E&&2===s&&u&&S,!E&&2===s&&!u&&x,!E&&1===s&&T,!E&&1===s&&A)})),this.state={audition:null,connected:0,connectURL:null,currentUserConnected:null},this.timeout=null}}t.Z=(0,d.withNotices)(v)},19916:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},qv:function(){return p},Ss:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(58791),l=n(87539),c=n(57535);const __=a.__,_x=a._x,u="mailchimp",p=(0,r.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(i.G,{transform:"translate(-45.478101,-100.73059)"},(0,r.createElement)(i.G,{transform:"matrix(0.26458333,0,0,0.26458333,15.6741,59.72)"},(0,r.createElement)(i.Path,{d:"m 176.433,197.529 c 0.657,-0.078 1.286,-0.082 1.865,0 0.335,-0.768 0.392,-2.091 0.091,-3.532 -0.447,-2.142 -1.053,-3.438 -2.305,-3.236 -1.252,0.202 -1.298,1.754 -0.85,3.895 0.252,1.205 0.7,2.235 1.199,2.873"}),(0,r.createElement)(i.Path,{d:"m 165.688,199.224 c 0.895,0.393 1.446,0.654 1.661,0.426 0.139,-0.142 0.097,-0.413 -0.117,-0.762 -0.442,-0.721 -1.351,-1.453 -2.316,-1.864 -1.972,-0.849 -4.325,-0.567 -6.14,0.737 -0.599,0.439 -1.167,1.047 -1.086,1.416 0.026,0.119 0.116,0.209 0.326,0.239 0.494,0.056 2.22,-0.816 4.209,-0.938 1.403,-0.086 2.566,0.353 3.462,0.746"}),(0,r.createElement)(i.Path,{d:"m 163.887,200.252 c -1.167,0.184 -1.81,0.569 -2.223,0.926 -0.352,0.308 -0.57,0.649 -0.568,0.888 0.001,0.114 0.05,0.18 0.089,0.213 0.053,0.047 0.116,0.073 0.192,0.073 0.263,0 0.854,-0.237 0.854,-0.237 1.623,-0.581 2.694,-0.51 3.755,-0.39 0.586,0.066 0.864,0.102 0.992,-0.099 0.038,-0.058 0.084,-0.183 -0.033,-0.373 -0.273,-0.443 -1.451,-1.192 -3.057,-1.001"}),(0,r.createElement)(i.Path,{d:"m 172.805,204.025 c 0.792,0.389 1.664,0.236 1.948,-0.341 0.284,-0.577 -0.128,-1.361 -0.92,-1.75 -0.792,-0.389 -1.664,-0.236 -1.948,0.341 -0.284,0.578 0.128,1.361 0.92,1.75"}),(0,r.createElement)(i.Path,{d:"m 177.896,199.576 c -0.643,-0.011 -1.177,0.695 -1.192,1.578 -0.015,0.883 0.495,1.606 1.138,1.617 0.643,0.011 1.177,-0.695 1.192,-1.578 0.015,-0.882 -0.495,-1.606 -1.138,-1.617"}),(0,r.createElement)(i.Path,{d:"m 134.683,215.485 c -0.16,-0.201 -0.423,-0.14 -0.678,-0.08 -0.178,0.042 -0.379,0.088 -0.6,0.085 -0.473,-0.009 -0.874,-0.211 -1.099,-0.557 -0.293,-0.45 -0.276,-1.121 0.047,-1.889 l 0.151,-0.344 c 0.516,-1.158 1.379,-3.095 0.41,-4.941 -0.73,-1.39 -1.92,-2.255 -3.351,-2.437 -1.374,-0.174 -2.788,0.335 -3.69,1.33 -1.423,1.57 -1.646,3.707 -1.371,4.462 0.101,0.276 0.259,0.353 0.373,0.369 0.242,0.032 0.6,-0.144 0.824,-0.747 l 0.064,-0.196 c 0.1,-0.319 0.286,-0.913 0.591,-1.389 0.368,-0.574 0.94,-0.969 1.612,-1.114 0.684,-0.147 1.384,-0.016 1.97,0.368 0.997,0.652 1.381,1.874 0.955,3.039 -0.22,0.603 -0.578,1.756 -0.499,2.703 0.16,1.917 1.339,2.687 2.398,2.769 1.03,0.039 1.75,-0.54 1.932,-0.962 0.107,-0.25 0.017,-0.402 -0.042,-0.467"}),(0,r.createElement)(i.Path,{d:"m 144.475,180.275 c 3.36,-3.882 7.495,-7.257 11.2,-9.152 0.128,-0.066 0.264,0.073 0.195,0.199 -0.294,0.533 -0.861,1.674 -1.04,2.539 -0.028,0.135 0.119,0.236 0.233,0.159 2.305,-1.571 6.314,-3.255 9.831,-3.471 0.151,-0.009 0.224,0.184 0.104,0.277 -0.535,0.41 -1.12,0.978 -1.547,1.552 -0.073,0.098 -0.004,0.238 0.118,0.239 2.469,0.018 5.95,0.882 8.219,2.155 0.153,0.086 0.044,0.383 -0.128,0.344 -3.433,-0.787 -9.052,-1.384 -14.89,0.04 -5.211,1.271 -9.189,3.234 -12.09,5.344 -0.147,0.107 -0.323,-0.087 -0.204,-0.224 z m 16.732,37.612 0.001,0.002 0.002,0.004 z m 13.854,1.635 c 0.1,-0.042 0.168,-0.155 0.157,-0.268 -0.014,-0.139 -0.138,-0.24 -0.277,-0.226 0,0 -7.169,1.061 -13.942,-1.418 0.738,-2.398 2.699,-1.532 5.664,-1.293 5.344,0.319 10.134,-0.462 13.674,-1.478 3.067,-0.88 7.096,-2.616 10.225,-5.086 1.055,2.318 1.428,4.87 1.428,4.87 0,0 0.817,-0.146 1.5,0.274 0.645,0.397 1.118,1.222 0.795,3.356 -0.658,3.986 -2.352,7.222 -5.2,10.199 -1.734,1.866 -3.838,3.488 -6.246,4.668 -1.279,0.672 -2.64,1.253 -4.079,1.722 -10.736,3.507 -21.726,-0.348 -25.268,-8.626 -0.283,-0.622 -0.522,-1.274 -0.71,-1.955 -1.509,-5.455 -0.228,-12 3.778,-16.12 v -0.002 c 0.247,-0.262 0.499,-0.571 0.499,-0.96 0,-0.325 -0.207,-0.668 -0.386,-0.912 -1.402,-2.033 -6.257,-5.497 -5.282,-12.201 0.7,-4.816 4.912,-8.208 8.839,-8.007 l 0.995,0.057 c 1.702,0.101 3.186,0.319 4.587,0.378 2.345,0.102 4.453,-0.239 6.951,-2.32 0.842,-0.702 1.518,-1.311 2.661,-1.504 0.12,-0.021 0.419,-0.128 1.016,-0.1 0.61,0.033 1.19,0.2 1.711,0.547 2.002,1.332 2.286,4.559 2.39,6.919 0.059,1.347 0.222,4.607 0.278,5.543 0.127,2.14 0.69,2.441 1.828,2.816 0.64,0.211 1.234,0.368 2.11,0.614 2.65,0.744 4.221,1.499 5.212,2.469 0.591,0.606 0.866,1.25 0.951,1.864 0.312,2.28 -1.77,5.096 -7.283,7.655 -6.026,2.797 -13.337,3.505 -18.388,2.942 l -1.77,-0.2 c -4.04,-0.544 -6.345,4.677 -3.92,8.255 1.563,2.306 5.82,3.806 10.079,3.807 9.765,0.001 17.271,-4.169 20.063,-7.77 l 0.223,-0.318 c 0.138,-0.207 0.024,-0.321 -0.147,-0.204 -2.281,1.561 -12.413,7.758 -23.251,5.893 0,0 -1.317,-0.217 -2.519,-0.684 -0.955,-0.372 -2.955,-1.292 -3.198,-3.343 8.746,2.705 14.253,0.148 14.253,0.148 z m -48.039,-20.785 c -3.042,0.591 -5.723,2.315 -7.362,4.697 -0.98,-0.817 -2.805,-2.399 -3.128,-3.016 -2.617,-4.97 2.856,-14.632 6.68,-20.089 9.45,-13.485 24.25,-23.692 31.101,-21.84 1.114,0.315 4.803,4.592 4.803,4.592 0,0 -6.849,3.8 -13.2,9.097 -8.558,6.589 -15.022,16.166 -18.895,26.559 z m 5.111,22.805 c -0.46,0.079 -0.93,0.11 -1.404,0.098 -4.577,-0.123 -9.52,-4.243 -10.011,-9.129 -0.543,-5.401 2.217,-9.557 7.103,-10.543 0.584,-0.118 1.29,-0.186 2.051,-0.146 2.738,0.15 6.772,2.252 7.693,8.216 0.816,5.282 -0.48,10.659 -5.432,11.503 z m 61.996,-9.564 c -0.039,-0.139 -0.295,-1.072 -0.646,-2.197 -0.351,-1.126 -0.714,-1.917 -0.714,-1.917 1.408,-2.107 1.433,-3.992 1.245,-5.059 -0.2,-1.323 -0.751,-2.45 -1.861,-3.616 -1.11,-1.165 -3.381,-2.359 -6.572,-3.255 l -1.674,-0.465 c -0.008,-0.069 -0.088,-3.947 -0.16,-5.612 -0.053,-1.204 -0.156,-3.083 -0.739,-4.933 -0.695,-2.505 -1.905,-4.697 -3.416,-6.099 4.17,-4.322 6.773,-9.084 6.766,-13.168 -0.012,-7.855 -9.659,-10.232 -21.548,-5.309 l -2.519,1.069 c -0.011,-0.011 -4.554,-4.468 -4.622,-4.528 -13.555,-11.823 -55.935,35.284 -42.386,46.725 l 2.961,2.509 c -0.768,1.99 -1.07,4.27 -0.823,6.721 0.316,3.149 1.94,6.167 4.573,8.499 2.499,2.214 5.785,3.616 8.973,3.613 5.273,12.151 17.321,19.605 31.447,20.025 15.153,0.45 27.873,-6.66 33.203,-19.432 0.349,-0.896 1.828,-4.935 1.828,-8.501 0,-3.583 -2.026,-5.068 -3.316,-5.068"})))),d={name:"jetpack/button",attributes:{element:"button",text:__("Join my Mailchimp audience","jetpack"),uniqueId:"mailchimp-widget-id"}},m={title:__("Mailchimp","jetpack"),icon:{src:p,foreground:(0,c.m)()},description:__("A form enabling readers to join a Mailchimp audience.","jetpack"),category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack")],attributes:{emailPlaceholder:{type:"string",default:__("Enter your email","jetpack")},consentText:{type:"string",default:__("By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.","jetpack")},interests:{type:"array",default:[]},processingLabel:{type:"string",default:__("Processing…","jetpack")},signupFieldTag:{type:"string"},signupFieldValue:{type:"string"},successLabel:{type:"string",default:__("Success! You're on the list.","jetpack")},errorLabel:{type:"string",default:__("Whoops! There was an error and we couldn't process your subscription. Please reload the page and try again.","jetpack")},preview:{type:"boolean",default:!1}},edit:l.Z,save:()=>(0,r.createElement)(o.InnerBlocks.Content,null),example:{attributes:{preview:!0},innerBlocks:[d]},deprecated:[s.Z]}},18417:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(55609);class c extends o.Component{constructor(){super(...arguments),a()(this,"state",{interest_categories:[]}),a()(this,"retrieveGroups",(()=>{s()({method:"GET",path:"/wpcom/v2/mailchimp/groups"}).then((e=>{const{interest_categories:t}=e;this.setState({interest_categories:t})}))})),a()(this,"render",(()=>{const{interest_categories:e}=this.state,{interests:t,onChange:n}=this.props;return(0,o.createElement)(o.Fragment,null,e&&(e||[]).map((e=>e.interests.map((e=>(0,o.createElement)(l.CheckboxControl,{label:e.name,value:e.id,checked:t.includes(e.id),onChange:t=>n(e.id,t),key:e.id}))))))}))}componentDidMount(){this.retrieveGroups()}}t.Z=c,c.defaultProps={interests:[],onChange:()=>null}},36710:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(1595);const __=a.__;class s extends r.Component{render(){const{onClose:e,onAddPoint:t,onError:n,apiKey:a}=this.props;return(0,r.createElement)(o.Button,{className:"component__add-point"},__("Add marker","jetpack"),(0,r.createElement)(o.Popover,{className:"component__add-point__popover",position:"bottom center"},(0,r.createElement)(o.Button,{className:"component__add-point__close",onClick:e},(0,r.createElement)(o.Dashicon,{icon:"no"})),(0,r.createElement)(i.Z,{onAddPoint:t,label:__("Add a location","jetpack"),apiKey:a,onError:n})))}}s.defaultProps={onAddPoint:()=>{},onClose:()=>{},onError:()=>{}},t.Z=s},79267:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(55609),c=n(81041),u=n(77714),p=n(73242),d=n(87929),m=n(45388);const __=i.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),a()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),a()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),a()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:n}=this.state,{index:r}=n.props,a=t.slice(0);(0,s.assign)(a[r],e),this.props.onSetPoints(a)})),a()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:n}=t.props,r=e.slice(0);r.splice(n,1),this.props.onSetPoints(r),this.setState({activeMarker:null})})),a()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,n=this.mapRef.current;if(e)n.style.height=e+"px";else{const e=n.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,r=Math.min(e*(3/4),t);n.style.height=r+"px"}t.resize(),this.setBoundsByMarkers()})),a()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),a()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:n,points:r,zoom:a}=this.props,{map:o,activeMarker:i,mapboxgl:s,zoomControl:l,boundsSetProgrammatically:c}=this.state;if(!o)return;if(r.length&&e?o.dragPan.disable():o.dragPan.enable(),!r.length)return;if(i)return;const u=new s.LngLatBounds;if(r.forEach((e=>{u.extend([e.coordinates.longitude,e.coordinates.latitude])})),t(u.getCenter()),r.length>1){o.fitBounds(u,{padding:{top:80,bottom:80,left:40,right:40}}),this.setState({boundsSetProgrammatically:!0});try{o.removeControl(l)}catch(e){}}else{if(o.setCenter(u.getCenter()),c){const e=12;o.setZoom(e),n(e)}else o.setZoom(parseInt(a,10));o.addControl(l),this.setState({boundsSetProgrammatically:!1})}})),a()(this,"scriptsLoaded",(()=>{const{mapCenter:e,points:t}=this.props;this.setState({loaded:!0}),t.length,this.initMap(e)})),a()(this,"googlePoint2Mapbox",(e=>e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0})),this.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},this.mapRef=(0,o.createRef)(),this.debouncedSizeMap=(0,s.debounce)(this.sizeMap,250)}render(){const{points:e,admin:t,children:n,markerColor:r}=this.props,{map:a,activeMarker:i,mapboxgl:p}=this.state,{onMarkerClick:d,deleteActiveMarker:m,updateActiveMarker:h}=this,f=(0,s.get)(i,"props.point")||{},{title:g,caption:b}=f,v=o.Children.map(n,(e=>{if("AddPoint"===(0,s.get)(e,"props.tagName"))return e})),k=a&&p&&e.map(((e,t)=>(0,o.createElement)(c.Z,{mapRef:this.mapRef,key:t,point:e,index:t,map:a,mapboxgl:p,markerColor:r,onClick:d}))),y=p&&(0,o.createElement)(u.Z,{activeMarker:i,map:a,mapboxgl:p,unsetActiveMarker:()=>this.setState({activeMarker:null})},i&&t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(l.TextControl,{label:__("Marker Title","jetpack"),value:g,onChange:e=>h({title:e})}),(0,o.createElement)(l.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:__("Marker Caption","jetpack"),value:b,rows:"2",tag:"textarea",onChange:e=>h({caption:e})}),(0,o.createElement)(l.Button,{onClick:m,className:"wp-block-jetpack-map__delete-btn"},(0,o.createElement)(l.Dashicon,{icon:"trash",size:"15"})," ",__("Delete Marker","jetpack"))),i&&!t&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h3",null,g),(0,o.createElement)("p",null,b)));return(0,o.createElement)(o.Fragment,null,(0,o.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},k),y,v)}componentDidMount(){const{apiKey:e}=this.props;e&&this.loadMapLibraries()}componentWillUnmount(){this.debouncedSizeMap.cancel(),window.removeEventListener("resize",this.debouncedSizeMap)}componentDidUpdate(e){const{admin:t,apiKey:n,children:r,points:a,mapStyle:o,mapDetails:i,scrollToZoom:s,showFullscreenButton:l}=this.props,{map:c,fullscreenControl:u}=this.state;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),a!==e.points&&this.setBoundsByMarkers(),a.length!==e.points.length&&this.clearCurrentMarker(),o===e.mapStyle&&i===e.mapDetails||c.setStyle(this.getMapStyle()),s!==e.scrollToZoom&&(s?c.scrollZoom.enable():c.scrollZoom.disable()),l!==e.showFullscreenButton&&(l?(c.addControl(u),t&&u._fullscreenButton&&(u._fullscreenButton.disabled=!0)):c.removeControl(u))}getMapStyle(){const{mapStyle:e,mapDetails:t}=this.props;return(0,p.h)(e,t)}getMapType(){const{mapStyle:e}=this.props;switch(e){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";default:return"ROADMAP"}}loadMapLibraries(){const{apiKey:e}=this.props,{currentWindow:t}=(0,d.bL)(this.mapRef.current),n={"mapbox-gl-js":()=>{(0,d.Dz)(t,"mapboxgl").then((t=>{t.accessToken=e,this.setState({mapboxgl:t},this.scriptsLoaded)}))}};(0,d.Pp)(m,n,this.mapRef.current)}initMap(e){const{mapboxgl:t}=this.state,{zoom:n,onMapLoaded:r,onError:a,scrollToZoom:o,showFullscreenButton:i,admin:s}=this.props;let l=null;try{l=new t.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(n,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(e){return void a("mapbox_error",e.message)}o||l.scrollZoom.disable();const c=new t.FullscreenControl;l.on("error",(e=>{a("mapbox_error",e.error.message)}));const u=new t.NavigationControl({showCompass:!1,showZoom:!0});l.on("zoomend",(()=>{this.props.onSetZoom(l.getZoom())})),l.on("moveend",(()=>{const{onSetMapCenter:e,points:t}=this.props;t.length<1&&e(l.getCenter())})),l.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:l,zoomControl:u,fullscreenControl:c},(()=>{this.debouncedSizeMap(),l.addControl(u),i&&(l.addControl(c),s&&c._fullscreenButton&&(c._fullscreenButton.disabled=!0)),this.mapRef.current.addEventListener("alignmentChanged",this.debouncedSizeMap),l.resize(),r(),this.setState({loaded:!0}),window.addEventListener("resize",this.debouncedSizeMap)}))}}h.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:()=>{},onSetMapCenter:()=>{},onMapLoaded:()=>{},onMarkerClick:()=>{},onError:()=>{},markerColor:"red",apiKey:null,mapCenter:{}},t.Z=h},20522:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(41626),l=n(17885);const __=a.__;t.Z=e=>{let{attributes:t,setAttributes:n,state:a,setState:c,context:u,mapRef:p,instanceId:d,minHeight:m,removeAPIKey:h,updateAPIKey:f,setPointVisibility:g}=e;const b=e=>{n({align:e}),setTimeout(p.current.sizeMap,0)};return"toolbar"===u?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockAlignmentToolbar,{value:t.align,onChange:b,controls:["center","wide","full"]}),(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:l.X.markerIcon,label:__("Add a marker","jetpack"),onClick:g}))):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.PanelColorSettings,{title:__("Colors","jetpack"),initialOpen:!0,colorSettings:[{value:t.markerColor,onChange:e=>n({markerColor:e}),label:__("Marker Color","jetpack")}]}),(0,r.createElement)(o.PanelBody,{title:__("Map Settings","jetpack")},(0,r.createElement)(o.BaseControl,{label:__("Height in pixels","jetpack"),id:`block-jetpack-map-height-input-${d}`},(0,r.createElement)("input",{type:"number",id:`block-jetpack-map-height-input-${d}`,className:"wp-block-jetpack-map__height_input",onChange:e=>{n({mapHeight:e.target.value}),e.target!==document.activeElement&&setTimeout(p.current.sizeMap,0)},onBlur:e=>{const{mapHeight:r}=t;let a=parseInt(e.target.value,10);isNaN(a)?a=null:null==r?a=p.current.mapRef.current.offsetHeight:a<m&&(a=m),n({mapHeight:a}),setTimeout(p.current.sizeMap,0)},value:t.mapHeight||"",min:m,step:"10"})),(0,r.createElement)(o.RangeControl,{label:__("Zoom level","jetpack"),help:t.points.length>1&&__("The default zoom level cannot be changed when there are two or more markers on the map.","jetpack"),disabled:t.points.length>1,value:t.zoom,onChange:e=>{n({zoom:e}),setTimeout(p.current.updateZoom,0)},min:0,max:22}),(0,r.createElement)(o.ToggleControl,{label:__("Show street names","jetpack"),checked:t.mapDetails,onChange:e=>n({mapDetails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Scroll to zoom","jetpack"),help:__("Allow the map to capture scrolling, and zoom in or out.","jetpack"),checked:t.scrollToZoom,onChange:e=>n({scrollToZoom:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Show Fullscreen Button","jetpack"),help:__("Allow your visitors to display the map in fullscreen.","jetpack"),checked:t.showFullscreenButton,onChange:e=>n({showFullscreenButton:e})})),t.points.length?(0,r.createElement)(o.PanelBody,{title:__("Markers","jetpack"),initialOpen:!1},(0,r.createElement)(s.Z,{points:t.points,onChange:e=>{n({points:e})}})):null,(0,r.createElement)(o.PanelBody,{title:__("Mapbox Access Token","jetpack"),initialOpen:!1},(0,r.createElement)(o.TextControl,{help:"wpcom"===a.apiKeySource&&(0,r.createElement)(r.Fragment,null,__("You can optionally enter your own access token.","jetpack")," ",(0,r.createElement)(o.ExternalLink,{href:"https://account.mapbox.com/access-tokens/"},__("Find it on Mapbox","jetpack"))),label:__("Mapbox Access Token","jetpack"),value:a.apiKeyControl,onChange:e=>c({apiKeyControl:e})}),(0,r.createElement)(o.ButtonGroup,null,(0,r.createElement)(o.Button,{type:"button",onClick:f,disabled:!a.apiKeyControl||a.apiKeyControl===a.apiKey},__("Update Token","jetpack")),(0,r.createElement)(o.Button,{type:"button",onClick:h,disabled:"wpcom"===a.apiKeySource,isSecondary:!0},__("Remove Token","jetpack")))))}},86124:function(e,t,n){"use strict";var r=n(98372);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,showFullscreenButton:!0,className:t}},save:r.Z}},98372:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u}=e,p=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),d=t?`align${t}`:null;return(0,r.createElement)("div",{className:d,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null},o.length>0&&(0,r.createElement)("ul",null,p))}}t.Z=a},91576:function(e,t,n){"use strict";var r=n(51694);t.Z={attributes:{align:{type:"string"},points:{type:"array",default:[]},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},mapStyle:{type:"string",default:"default"},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},migrate:e=>{const t=((e.className||"").replace(/is-style-[^ ]+/,"")+` is-style-${e.mapStyle}`).replace(/\s+/g," ").trim(),{mapStyle:n,...r}=e;return{...r,className:t}},save:r.Z}},51694:function(e,t,n){"use strict";var r=n(69307);class a extends r.Component{render(){const{attributes:e}=this.props,{align:t,mapStyle:n,mapDetails:a,points:o,zoom:i,mapCenter:s,markerColor:l,scrollToZoom:c,mapHeight:u,showFullscreenButton:p}=e,d=o.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),m=t?`align${t}`:null;return(0,r.createElement)("div",{className:m,"data-map-style":n,"data-map-details":a,"data-points":JSON.stringify(o),"data-zoom":i,"data-map-center":JSON.stringify(s),"data-marker-color":l,"data-scroll-to-zoom":c||null,"data-map-height":u||null,"data-show-fullscreen-button":p||null},o.length>0&&(0,r.createElement)("ul",null,d))}}t.Z=a},70312:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(86989),s=n.n(i),l=n(65736),c=n(55609),u=n(52175),p=n(36710),d=n(79267),m=n(20522),h=n(17885),f=n(96406),g=n(94333),b=n(9818),v=n(98085),k=n(14499);const __=l.__,y={top:!1,right:!1,bottom:!0,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1};class E extends o.Component{constructor(){super(...arguments),a()(this,"geoCodeAddress",((e,t)=>{t&&(0,k.P)(e,t).then((e=>{if(e.features?.length){const t=e.features[0],n=[{title:t.text,placeTitle:t.text,caption:t.place_name,id:t.id,coordinates:{latitude:t.center[1],longitude:t.center[0]}}];this.props.setAttributes({points:n})}else this.onError(null,__("Could not find the coordinates of the provided address. Displaying default location. Feel free to add the location manually.","jetpack"))})).catch((e=>this.onError(null,e.message)))})),a()(this,"componentDidUpdate",(e=>{const t=this.props.attributes?.address,n=e.attributes?.address;t&&n!==t&&this.geoCodeAddress(t,this.state.apiKey)})),a()(this,"addPoint",(e=>{const{attributes:t,setAttributes:n}=this.props,{points:r}=t,a=r.slice(0);let o=!1;r.map((t=>{t.id===e.id&&(o=!0)})),o||(a.push(e),n({points:a}),this.setState({addPointVisibility:!1}))})),a()(this,"setPointVisibility",(()=>{this.setState({addPointVisibility:!0})})),a()(this,"updateAPIKeyControl",(e=>{this.setState({apiKeyControl:e.target.value})})),a()(this,"updateAPIKey",(()=>{const{noticeOperations:e}=this.props,{apiKeyControl:t}=this.state;e.removeAllNotices(),t&&this.apiCall(t,"POST")})),a()(this,"removeAPIKey",(()=>{this.apiCall(null,"DELETE")})),a()(this,"onError",((e,t)=>{const{noticeOperations:n}=this.props;n.removeAllNotices(),n.createErrorNotice(t)})),a()(this,"onMapResize",((e,t,n,r)=>{const{onResizeStop:a,setAttributes:o}=this.props;a();o({mapHeight:parseInt(this.mapRef.current.mapRef.current.offsetHeight+r.height,10)}),setTimeout(this.mapRef.current.sizeMap,0)})),this.state={addPointVisibility:!1,apiState:0},this.mapRef=(0,o.createRef)()}apiCall(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"GET";return new Promise(((n,r)=>{const{noticeOperations:a}=this.props,o="/wpcom/v2/service-api-keys/mapbox",i=e?{path:o,method:t,data:{service_api_key:e}}:{path:o,method:t};this.setState({apiRequestOutstanding:!0},(()=>{s()(i).then((e=>{let{service_api_key:t,service_api_key_source:r}=e;a.removeAllNotices();const o=t?2:1,i="wpcom"===r?"":t;this.setState({apiState:o,apiKey:t,apiKeyControl:i,apiKeySource:r,apiRequestOutstanding:!1}),n()}),(e=>{let{message:t}=e;this.onError(null,t),this.setState({apiState:1,apiRequestOutstanding:!1}),r()}))}))}))}componentDidMount(){this.apiCall().then((()=>{this.props.attributes?.address&&this.geoCodeAddress(this.props.attributes?.address,this.state.apiKey)}))}render(){const{className:e,setAttributes:t,attributes:n,noticeUI:r,notices:a,isSelected:i,instanceId:s,onResizeStart:l}=this.props,{mapDetails:g,points:b,zoom:k,mapCenter:E,markerColor:w,preview:_,mapHeight:C,showFullscreenButton:j}=n,{addPointVisibility:S,apiKey:x,apiKeyControl:T,apiState:N,apiRequestOutstanding:A}=this.state,P=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.BlockControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setPointVisibility:this.setPointVisibility,context:"toolbar",mapRef:this.mapRef})),(0,o.createElement)(u.InspectorControls,null,(0,o.createElement)(m.Z,{attributes:n,setAttributes:t,state:this.state,setState:this.setState,mapRef:this.mapRef,instanceId:s,minHeight:400,removeAPIKey:this.removeAPIKey,updateAPIKey:this.updateAPIKey}))),I=(0,o.createElement)(c.Placeholder,{icon:h.X.icon},(0,o.createElement)(c.Spinner,null)),M=(0,o.createElement)(o.Fragment,null,__("To use the map block, you need an Access Token.","jetpack"),(0,o.createElement)("br",null),(0,o.createElement)(c.ExternalLink,{href:"https://www.mapbox.com"},__("Create an account or log in to Mapbox.","jetpack")),(0,o.createElement)("br",null),__("Locate and copy the default access token. Then, paste it into the field below.","jetpack")),R=(0,o.createElement)(c.Placeholder,{icon:h.X.icon,label:__("Map","jetpack"),notices:a,instructions:M},(0,o.createElement)(o.Fragment,null,(0,o.createElement)("form",null,(0,o.createElement)("input",{type:"text",className:"components-placeholder__input",disabled:A,placeholder:__("Paste Token Here","jetpack"),value:T,onChange:this.updateAPIKeyControl}),(0,o.createElement)(c.Button,{isSecondary:!0,disabled:A||!T||T.length<1,onClick:this.updateAPIKey},__("Set Token","jetpack"))))),L=i&&b.length<=1,B=(0,v.t)(h.X.styles,n.className),Z=(0,o.createElement)(o.Fragment,null,P,(0,o.createElement)("div",{className:e},(0,o.createElement)(c.ResizableBox,{size:{height:C||"auto",width:"100%"},grid:[10,10],showHandle:i,minHeight:400,enable:y,onResizeStart:l,onResizeStop:this.onMapResize},(0,o.createElement)("div",{className:"wp-block-jetpack-map__map_wrapper"},(0,o.createElement)(d.Z,{ref:this.mapRef,scrollToZoom:L,showFullscreenButton:j,mapStyle:B||"default",mapDetails:g,mapHeight:C,points:b,zoom:k,mapCenter:E,markerColor:w,onSetZoom:e=>{t({zoom:e})},admin:!0,apiKey:x,onSetPoints:e=>t({points:e}),onSetMapCenter:e=>t({mapCenter:e}),onMapLoaded:()=>this.setState({addPointVisibility:!b.length}),onMarkerClick:()=>this.setState({addPointVisibility:!1}),onError:this.onError},i&&S&&(0,o.createElement)(p.Z,{onAddPoint:this.addPoint,onClose:()=>this.setState({addPointVisibility:!1}),apiKey:x,onError:this.onError,tagName:"AddPoint"})))))),F=h.X.styles.find((e=>e.name===B)),D=(0,o.createElement)("div",null,(0,o.createElement)("img",{alt:__("Map Preview","jetpack"),src:F?F.preview:f}));return(0,o.createElement)(o.Fragment,null,r,_&&D,!_&&0===N&&I,!_&&1===N&&R,!_&&2===N&&Z)}}t.Z=(0,g.compose)([c.withNotices,(0,b.withDispatch)((e=>{const{toggleSelection:t}=e("core/block-editor");return{onResizeStart:()=>t(!1),onResizeStop:()=>t(!0)}}))])(E)},14499:function(e,t,n){"use strict";function r(e,t){return fetch(`https://api.mapbox.com/geocoding/v5/mapbox.places/${encodeURIComponent(e)}.json?access_token=${encodeURIComponent(t)}`).then((e=>e.json()))}n.d(t,{P:function(){return r}})},92828:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(17885),a=n(70312),o=n(18156),i=n(86124),s=n(91576),l=n(57535);const{name:c}=r.X,u={title:r.X.title,icon:{src:r.X.icon,foreground:(0,l.m)()},category:r.X.category,keywords:r.X.keywords,description:r.X.description,attributes:r.X.attributes,supports:r.X.supports,styles:r.X.styles,getEditWrapperProps(e){const{align:t}=e;if(-1!==r.X.validAlignments.indexOf(t))return{"data-align":t}},edit:a.Z,save:o.Z,example:r.X.example,deprecated:[s.Z,i.Z]}},77714:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307);class i extends o.Component{constructor(){super(...arguments),a()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,o.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}i.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null},t.Z=i},1595:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(95319);const c=(0,i.__)("Add a marker…","jetpack");class u extends o.Component{constructor(){super(...arguments),a()(this,"getOptionCompletion",(e=>{const{value:t}=e,n={placeTitle:t.text,title:t.text,caption:t.place_name,id:t.id,coordinates:{longitude:t.geometry.coordinates[0],latitude:t.geometry.coordinates[1]}};return this.props.onAddPoint(n),t.text})),a()(this,"search",(e=>{const{apiKey:t,onError:n}=this.props,r="https://api.mapbox.com/geocoding/v5/mapbox.places/"+encodeURI(e)+".json?access_token="+t;return new Promise((function(e,t){const a=new XMLHttpRequest;a.open("GET",r),a.onload=function(){if(200===a.status){const t=JSON.parse(a.responseText);e(t.features)}else{const e=JSON.parse(a.responseText);n(e.statusText,e.responseJSON.message),t(new Error("Mapbox Places Error"))}},a.send()}))})),a()(this,"onReset",(()=>{this.textRef.current.value=null})),this.textRef=(0,o.createRef)(),this.containerRef=(0,o.createRef)(),this.state={isEmpty:!0},this.autocompleter={name:"placeSearch",options:this.search,isDebounced:!0,getOptionLabel:e=>(0,o.createElement)("span",null,e.place_name),getOptionKeywords:e=>[e.place_name],getOptionCompletion:this.getOptionCompletion}}componentDidMount(){setTimeout((()=>{this.containerRef.current.querySelector("input").focus()}),50)}render(){const{label:e}=this.props;return(0,o.createElement)("div",{ref:this.containerRef},(0,o.createElement)(s.BaseControl,{label:e,className:"components-location-search"},(0,o.createElement)(l.Z,{completer:this.autocompleter,onReset:this.onReset},(e=>{let{isExpanded:t,listBoxId:n,activeId:r,onChange:a,onKeyDown:i}=e;return(0,o.createElement)(s.TextControl,{placeholder:c,ref:this.textRef,onChange:a,"aria-expanded":t,"aria-owns":n,"aria-activedescendant":r,onKeyDown:i})}))))}}u.defaultProps={onError:()=>{}},t.Z=u},41626:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(55609);class s extends o.Component{constructor(){super(...arguments),a()(this,"onDeletePoint",(e=>{const t=parseInt(e.target.getAttribute("data-id")),{points:n,onChange:r}=this.props,a=n.slice(0);a.splice(t,1),r(a)})),this.state={selectedCell:null}}setMarkerField(e,t,n){const{points:r,onChange:a}=this.props,o=r.slice(0);o[n][e]=t,a(o)}render(){const{points:e}=this.props,t=e.map(((e,t)=>(0,o.createElement)(i.PanelBody,{title:e.placeTitle,key:e.id,initialOpen:!1},(0,o.createElement)(i.TextControl,{label:"Marker Title",value:e.title,onChange:e=>this.setMarkerField("title",e,t)}),(0,o.createElement)(i.TextareaControl,{label:"Marker Caption",value:e.caption,rows:"3",onChange:e=>this.setMarkerField("caption",e,t)}),(0,o.createElement)(i.Button,{"data-id":t,onClick:this.onDeletePoint,className:"component__locations__delete-btn"},(0,o.createElement)(i.Dashicon,{icon:"trash",size:"15"})," Delete Marker"))));return(0,o.createElement)("div",{className:"component__locations"},(0,o.createElement)(i.Panel,{className:"component__locations__panel"},t))}}s.defaultProps={points:Object.freeze([]),onChange:()=>{}},t.Z=s},95319:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(55609),u=n(92819),p=n(39630),d=n(94333);const __=l.__,_n=l._n;function m(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;const n=[];for(let r=0;r<e.length;r++){const a=e[r];let{keywords:o=[]}=a;if("string"==typeof a.label&&(o=[...o,a.label]),n.push(a),n.length===t)break}return n}class h extends o.Component{static getInitialState(){return{selectedIndex:0,query:void 0,filteredOptions:[],isOpen:!1}}constructor(){super(...arguments),a()(this,"select",(e=>{const{completer:t}=this.props;(t.getOptionCompletion||{})(e),this.reset()})),a()(this,"reset",(()=>{this.setState(this.constructor.getInitialState())})),a()(this,"onChange",(e=>{const{completer:t}=this.props,{options:n}=this.state;if(!e)return void this.reset();t&&(t.isDebounced?this.debouncedLoadOptions(t,e):this.loadOptions(t,e));const r=t?m(n):[];t&&this.setState({selectedIndex:0,filteredOptions:r,query:e})})),a()(this,"onKeyDown",(e=>{const{isOpen:t,selectedIndex:n,filteredOptions:r}=this.state;if(!t)return;let a;switch(e.keyCode){case p.UP:a=(0===n?r.length:n)-1,this.setState({selectedIndex:a});break;case p.DOWN:a=(n+1)%r.length,this.setState({selectedIndex:a});break;case p.ENTER:this.select(r[n]);break;case p.LEFT:case p.RIGHT:case p.ESCAPE:return void this.reset();default:return}e.preventDefault(),e.stopPropagation()})),this.debouncedLoadOptions=(0,u.debounce)(this.loadOptions,250),this.state=this.constructor.getInitialState()}componentWillUnmount(){this.debouncedLoadOptions.cancel()}handleFocusOutside(){this.reset()}loadOptions(e,t){const{options:n}=e,r=this.activePromise=Promise.resolve("function"==typeof n?n(t):n).then((t=>{if(r!==this.activePromise)return;const n=t.map(((t,n)=>({key:`${n}`,value:t,label:e.getOptionLabel(t),keywords:e.getOptionKeywords?e.getOptionKeywords(t):[]}))),a=m(n),o=a.length===this.state.filteredOptions.length?this.state.selectedIndex:0;this.setState({options:n,filteredOptions:a,selectedIndex:o,isOpen:a.length>0}),this.announce(a)}))}announce(e){const{debouncedSpeak:t}=this.props;t&&(e.length?t((0,l.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d result found, use up and down arrow keys to navigate.","%d results found, use up and down arrow keys to navigate.",e.length,"jetpack","jetpack"),e.length),"assertive"):t(__("No results.","jetpack"),"assertive"))}render(){const{onChange:e,onKeyDown:t}=this,{children:n,instanceId:r,completer:a}=this.props,{selectedIndex:i,filteredOptions:l}=this.state,{key:p=""}=l[i]||{},{className:d}=a,m=l.length>0,h=m?`components-autocomplete-listbox-${r}`:null,f=m?`components-autocomplete-item-${r}-${p}`:null;return(0,o.createElement)("div",{className:"components-autocomplete"},n({isExpanded:m,listBoxId:h,activeId:f,onChange:e,onKeyDown:t}),m&&(0,o.createElement)(c.Popover,{focusOnMount:!1,onClose:this.reset,position:"top center",className:"components-autocomplete__popover",noArrow:!0},(0,o.createElement)("div",{id:h,role:"listbox",className:"components-autocomplete__results"},(0,u.map)(l,((e,t)=>(0,o.createElement)(c.Button,{key:e.key,id:`components-autocomplete-item-${r}-${e.key}`,role:"option","aria-selected":t===i,disabled:e.isDisabled,className:s()("components-autocomplete__result",d,{"is-selected":t===i}),onClick:()=>this.select(e)},e.label))))))}}t.Z=(0,d.compose)([c.withSpokenMessages,d.withInstanceId,c.withFocusOutside])(h)},81041:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(87929);class s extends o.Component{constructor(){super(...arguments),a()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),a()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:n,markerColor:r,mapRef:a}=this.props,{handleClick:o}=this,s=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:l}=(0,i.bL)(a.current),c=this.marker?this.marker.getElement():l.createElement("div");this.marker?this.marker.setLngLat(s):(c.className="wp-block-jetpack-map-marker",this.marker=new n.Marker(c).setLngLat(s).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",o)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+r+'" mask="url(#c)"/></g></svg>'}render(){return null}}s.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}},t.Z=s},73242:function(e,t,n){"use strict";function r(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}n.d(t,{h:function(){return r}})},18156:function(e,t,n){"use strict";var r=n(69307),a=n(17885),o=n(98085);class i extends r.Component{render(){const{attributes:e}=this.props,{align:t,className:n,mapDetails:i,points:s,zoom:l,mapCenter:c,markerColor:u,scrollToZoom:p,mapHeight:d,showFullscreenButton:m}=e,h=(0,o.t)(a.X.styles,n),f=s.map(((e,t)=>{const{longitude:n,latitude:a}=e.coordinates,o="https://www.google.com/maps/search/?api=1&query="+a+","+n;return(0,r.createElement)("li",{key:t},(0,r.createElement)("a",{href:o},e.title))})),g=t?`align${t}`:null;return(0,r.createElement)("div",{className:g,"data-map-style":h,"data-map-details":i,"data-points":JSON.stringify(s),"data-zoom":l,"data-map-center":JSON.stringify(c),"data-marker-color":u,"data-scroll-to-zoom":p||null,"data-map-height":d||null,"data-show-fullscreen-button":m||null},s.length>0&&(0,r.createElement)("ul",null,f))}}t.Z=i},17885:function(e,t,n){"use strict";n.d(t,{X:function(){return c}});var r=n(69307),a=n(65736),o=n(56932),i=n(45107),s=n(65765),l=n(34140);const __=a.__,_x=a._x,c={name:"map",prefix:"jetpack",title:__("Map","jetpack"),icon:(0,r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},(0,r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"embed",keywords:[_x("maps","block search term","jetpack"),_x("location","block search term","jetpack"),_x("navigation","block search term","jetpack")],description:__("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},address:{type:"string",default:""},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},supports:{defaultStylePicker:!1,html:!1},styles:[{name:"default",label:__("Basic","jetpack"),preview:o,isDefault:!0},{name:"black_and_white",label:__("Black and white","jetpack"),preview:i},{name:"satellite",label:__("Satellite","jetpack"),preview:s},{name:"terrain",label:__("Terrain","jetpack"),preview:l}],validAlignments:["center","wide","full"],markerIcon:(0,r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},(0,r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},(0,r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),(0,r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},81092:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(52175),u=n(94333),p=n(9818),d=n(4822);const __=l.__,m="editor",h="preview";class f extends o.Component{constructor(){super(...arguments),a()(this,"input",null),a()(this,"state",{activePanel:m}),a()(this,"bindInput",(e=>{this.input=e})),a()(this,"updateSource",(e=>this.props.setAttributes({source:e}))),a()(this,"handleKeyDown",(e=>{const{attributes:t,removeBlock:n}=this.props,{source:r}=t;8===e.keyCode&&""===r&&(n(),e.preventDefault())})),a()(this,"toggleMode",(e=>()=>this.setState({activePanel:e})))}componentDidUpdate(e){e.isSelected&&!this.props.isSelected&&this.state.activePanel===h&&this.toggleMode(m)(),!e.isSelected&&this.props.isSelected&&this.state.activePanel===m&&this.input&&this.input.focus()}isEmpty(){const e=this.props.attributes.source;return!e||""===e.trim()}renderToolbarButton(e,t){const{activePanel:n}=this.state,{className:r}=this.props,a=s()(r,"components-button components-tab-button",{"is-pressed":n===e});return(0,o.createElement)("button",{className:a,onClick:this.toggleMode(e)},(0,o.createElement)("span",null,t))}render(){const{attributes:e,className:t,isSelected:n}=this.props,{source:r}=e,{activePanel:a}=this.state;return!n&&this.isEmpty()?(0,o.createElement)("p",{className:`${t}__placeholder`},__("Write your _Markdown_ **here**…","jetpack")):(0,o.createElement)("div",{className:t},(0,o.createElement)(c.BlockControls,null,(0,o.createElement)("div",{className:"components-toolbar"},this.renderToolbarButton(m,__("Markdown","jetpack")),this.renderToolbarButton(h,__("Preview","jetpack")))),a!==h&&n?(0,o.createElement)(c.PlainText,{className:`${t}__editor`,onChange:this.updateSource,onKeyDown:this.handleKeyDown,"aria-label":__("Markdown","jetpack"),innerRef:this.bindInput,value:r}):(0,o.createElement)(d.Z,{className:`${t}__preview`,source:r}))}}t.Z=(0,u.compose)([(0,p.withSelect)((e=>({currentBlockId:e("core/block-editor").getSelectedBlockClientId()}))),(0,p.withDispatch)(((e,t)=>{let{currentBlockId:n}=t;return{removeBlock:()=>e("core/block-editor").removeBlocks(n)}}))])(f)},7882:function(e,t,n){"use strict";n.d(t,{u:function(){return p},X:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(58014),s=n(81092),l=n(27279),c=n(57535),u=n(20510);const __=a.__,_x=a._x,p="markdown",d=__("Try Markdown","jetpack"),m=__("Markdown is a text formatting syntax that is converted into HTML. You can _emphasize_ text or **make it strong** with just a few characters.","jetpack"),h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 208 128"},(0,r.createElement)(o.Rect,{width:"198",height:"118",x:"5",y:"5",ry:"10",stroke:"currentColor",strokeWidth:"10",fill:"none"}),(0,r.createElement)(o.Path,{d:"M30 98v-68h20l20 25 20-25h20v68h-20v-39l-20 25-20-25v39zM155 98l-30-33h20v-35h20v35h20z"})),f=(0,i.Wp)()||(0,i.Ug)()?"https://en.support.wordpress.com/markdown-quick-reference/":"https://jetpack.com/support/jetpack-blocks/markdown-block/",g={title:__("Markdown","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Use regular characters and punctuation to style text, links, and lists.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:f},__("Support reference","jetpack"))),icon:{src:h,foreground:(0,c.m)()},category:(0,u.Z)("text","formatting"),keywords:[_x("formatting","block search term","jetpack"),_x("syntax","block search term","jetpack"),_x("markup","block search term","jetpack")],attributes:{source:{type:"string"}},supports:{html:!1},edit:s.Z,save:l.Z,example:{attributes:{source:`## ## ${d}\n\n${m}`}}}},4822:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(69472),i=n.n(o);const __=a.__,s=new(i()),l=e=>{if("A"===e.target.nodeName){window.confirm(__("Are you sure you wish to leave this page?","jetpack"))||e.preventDefault()}};t.Z=e=>{let{className:t,source:n=""}=e;return(0,r.createElement)(r.RawHTML,{className:t,onClick:l},n.length?s.render(n):"")}},27279:function(e,t,n){"use strict";var r=n(69307),a=n(4822);t.Z=e=>{let{attributes:t,className:n}=e;return(0,r.createElement)(a.Z,{className:n,source:t.source})}},11868:function(e,t,n){"use strict";n.d(t,{V1:function(){return i},vW:function(){return s},jn:function(){return l},Eo:function(){return c},fL:function(){return u},ez:function(){return m}});var r=n(65736),a=n(9818),o=n(92819);const __=r.__,i=[{value:"en-US",label:"English"},{value:"fr-CA",label:"Français"},{value:"de-DE",label:"Deutsch"},{value:"es-MX",label:"Español"},{value:"ja-JP",label:"日本語"},{value:"nl-NL",label:"Nederlands"},{value:"it-IT",label:"Italiano"}],s=i.map((e=>e.value));const l={name:"button",label:__("Button (210 x 113 pixels)","jetpack")},c=e=>(0,o.compact)([{name:"standard",label:__("Standard (224 x 301 pixels)","jetpack"),isDefault:!0},{name:"tall",label:__("Tall (288 x 490 pixels)","jetpack")},{name:"wide",label:__("Wide (840 x 150 pixels)","jetpack")},(!e||1===e.length)&&l]),u=e=>c(e).map((e=>e.name)),{siteLocale:p}=(0,a.select)("core/block-editor").getSettings(),d=!(0,o.isEmpty)(p)&&s.includes(p)?p:"en-US",m={rid:{default:[],type:"array"},style:{default:"standard",type:"string",validValues:u()},iframe:{default:!0,type:"boolean"},domain:{default:"com",type:"string"},lang:{default:d,type:"string",validValues:s},newtab:{default:!1,type:"boolean"},negativeMargin:{default:!1,type:"boolean"}}},65618:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,supports:{align:!0,html:!1},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)(r.Fragment,null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},77583:function(e,t,n){"use strict";var r=n(69307),a=n(11868);t.Z={attributes:a.ez,migrate:e=>{const{style:t,className:n}=e,r="standard"===t?"":`is-style-${t}`;return{...e,className:n?`${n} ${r}`:r}},isEligible:e=>{let{style:t,className:n}=e;return!(!t||"standard"===t)&&(!n||-1===n.indexOf("is-style-"))},save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map((e=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`},`https://www.opentable.com/restref/client/?rid=${e}`))))}}},97372:function(e,t,n){"use strict";var r=n(69307),a=(n(86841),n(89105)),o=n.n(a),i=n(92819),s=n(52175),l=n(55609),c=n(65736),u=n(4981),p=n(12087),d=n(58014),m=n(70718),h=n(18746),f=n(11868),g=n(14087),b=n(98085),v=n(88707);const __=c.__;t.Z=(0,l.withNotices)((function(e){let{attributes:t,className:n,clientId:a,isSelected:k,name:y,noticeOperations:E,noticeUI:w,setAttributes:_}=e;const C=(0,u.getBlockDefaultClassName)(y),j=(0,g.S)(f.ez,t);(0,i.isEqual)(j,t)||_(j);const{align:S,rid:x,iframe:T,domain:N,lang:A,newtab:P,negativeMargin:I}=t,M=(0,i.isEmpty)(x),R=(0,b.t)((0,f.Eo)(),t.className),L=(0,b.t)((0,f.Eo)(x),t.className),B=(0,h.Z)(L),Z=(0,i.isEqual)(x,["1"]);(0,r.useEffect)((()=>{if(E.removeAllNotices(),!M&&!Z&&"wide"===L&&"wide"!==S&&"full"!==S){const e=(0,r.createElement)(r.Fragment,null,__('With the OpenTable block you may encounter display issues if you use its "wide" style with anything other than "wide" or "full" alignment. The wide display style may also not work well on smaller screens.',"jetpack"));E.createNotice({status:"warning",content:e})}}),[Z,S,M,x,L]),(0,r.useEffect)((()=>{"button"===R&&Array.isArray(x)&&x.length>1&&_({className:"",style:""})}),[x,R,_]),(0,r.useEffect)((()=>{k&&(Array.isArray(x)&&x.length>1?(0,u.unregisterBlockStyle)("jetpack/opentable",["button"]):(0,u.registerBlockStyle)("jetpack/opentable",f.jn))}),[k,x]),(0,r.useEffect)((()=>{"wide"===B&&"wide"===S&&_({align:""}),"wide"===L&&B&&L!==B&&_({align:"wide"}),_({style:L})}),[L]);const F=(0,f.fL)(x),D=e=>x.length>1?["multi","button"!==e?e:"standard"]:["button"===e?"button":"standard","button"===e?"standard":e],O=e=>{Array.isArray(e)?_({rid:e,style:e.length>1&&"button"===L?"standard":L}):(e=>{const t=(0,v.CC)(e);t||(E.removeAllNotices(),E.createErrorNotice((0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,__("We ran into an issue","jetpack")),(0,r.createElement)("br",null),__("Please ensure this embed matches the one from your OpenTable account","jetpack"))));const n=(0,g.S)(f.ez,t);_(n),E.removeAllNotices()})(e)},z=(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.InspectorAdvancedControls,null,(0,r.createElement)(l.ToggleControl,{label:__("Load the widget in an iFrame (Recommended)","jetpack"),checked:T,onChange:()=>_({iframe:!T}),className:"is-opentable"}),"button"===L&&(0,r.createElement)(l.ToggleControl,{label:__("Remove button margin","jetpack"),checked:I,onChange:()=>_({negativeMargin:!I})})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(l.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(m.Z,{rids:x,onChange:O}),(0,r.createElement)(l.SelectControl,{label:__("Language","jetpack"),value:A,onChange:e=>_({lang:e}),options:f.V1}),(0,r.createElement)(l.ToggleControl,{label:__("Open in a new window","jetpack"),checked:P,onChange:()=>_({newtab:!P})})))),U=(0,d.Wp)()||(0,d.Ug)()?"https://en.support.wordpress.com/wordpress-editor/blocks/opentable-block/":"https://jetpack.com/support/jetpack-blocks/opentable-block/",$=(0,r.createElement)(l.Placeholder,{label:__("OpenTable Reservation","jetpack"),icon:(0,r.createElement)(s.BlockIcon,{icon:p.Z}),instructions:__("Enter your restaurant name, or paste an OpenTable Reservation Widget embed code.","jetpack"),notices:w},(0,r.createElement)(m.Z,{rids:x,onSubmit:O}),(0,r.createElement)("div",{className:`${C}-placeholder-links`},(0,r.createElement)(l.ExternalLink,{href:"https://restaurant.opentable.com/get-started/"},__("Sign up for OpenTable","jetpack")),(0,r.createElement)(l.ExternalLink,{href:U},__("Learn more","jetpack")))),V=o()(n,{[`is-style-${L}`]:!M&&F.includes(L)&&-1===n.indexOf("is-style"),"is-placeholder":M,"is-multi":"multi"===D(L)[0],[`align${S}`]:S,"has-no-margin":I});return(0,r.createElement)(r.Fragment,null,w,(0,r.createElement)("div",{className:V},!M&&z,M?$:(e=>{const[t,n]=D(e||L);return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:`${C}-overlay`}),(0,r.createElement)("iframe",{title:(0,c.sprintf)(
+/* translators: Placeholder is a unique ID. */
+__("Open Table Preview %s","jetpack"),a),scrolling:"no",src:`https://www.opentable.com/widget/reservation/canvas?rid=${(0,i.join)(x,"%2C")}&type=${t}&theme=${n}&overlay=false&domain=${N}&lang=${A&&f.vW.includes(A)?A:"en-US"}&newtab=${P}&disablega=true`}))})()))}))},12087:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 22 16",fill:"none",height:"16",width:"22"},(0,r.createElement)(a.Path,{d:"m1.997 5.982c-.39457-.00039-.7804.11622-1.108699.33511-.328295.21888-.584312.5302-.735674.89459-.15136174.36439-.1912714.76548-.1146819 1.15254.0765899.38707.2662379.74274.5449639 1.02202.278726.27929.634011.46965 1.020921.54702.38692.07732.78809.03826 1.15278-.11238.36469-.15063.67652-.40602.89606-.73387.21954-.32786.33693-.71345.33733-1.10803v-.002c.001-1.1-.89-1.994-1.992-1.995zm12.006 3.988c-.3946.0004-.7805-.11625-1.1088-.33517-.3283-.21893-.5843-.53031-.7357-.89476-.1513-.36444-.1912-.76558-.1145-1.15268s.2664-.74276.5453-1.022c.2788-.27925.6342-.46953 1.0211-.54679.387-.07725.7882-.038 1.1529.11278.3647.15079.6764.40634.8959.73432.2194.32799.3366.71369.3368 1.1083v.003c.0003.52814-.2092 1.03477-.5824 1.4085s-.8795.58397-1.4076.5845zm0-9.96999843c-1.5777-.0009886-3.1203.46588743-4.43262 1.34158843-1.31236.8757-2.33558 2.1209-2.94025 3.57813-.60467 1.45722-.76365 3.06103-.45683 4.60861.30683 1.54757 1.06567 2.96947 2.18058 4.08577 1.1149 1.1163 2.53582 1.8769 4.08302 2.1856 1.5472.3088 3.1512.1518 4.6091-.451 1.458-.6028 2.7045-1.6245 3.5819-2.9358.8773-1.3112 1.3461-2.8532 1.3471-4.4309v-.005c.0008-2.11466-.8384-4.14304-2.3331-5.63899-1.4946-1.495952-3.5222-2.3369478-5.6369-2.33800843z"}))},5458:function(e,t,n){"use strict";n.d(t,{u2:function(){return m},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(4981),i=n(11868),s=n(65618),l=n(77583),c=n(97372),u=n(12087),p=n(88707),d=n(57535);n(6757);const __=a.__,_x=a._x,m="opentable",h={title:__("OpenTable","jetpack"),description:__("Allow visitors to book a reservation with OpenTable","jetpack"),icon:{src:u.Z,foreground:(0,d.m)()},category:"earn",keywords:[_x("booking","block search term","jetpack"),_x("reservation","block search term","jetpack"),_x("restaurant","block search term","jetpack")],supports:{align:!0,html:!1},edit:c.Z,save:e=>{let{attributes:{rid:t}}=e;return(0,r.createElement)("div",null,t.map(((e,t)=>(0,r.createElement)("a",{href:`https://www.opentable.com/restref/client/?rid=${e}`,key:`${e}-${t}`},`https://www.opentable.com/restref/client/?rid=${e}`))))},attributes:i.ez,styles:(0,i.Eo)(),example:{attributes:{rid:["1"],style:"standard",iframe:!0,domain:"com",lang:"en-US",newtab:!1,negativeMargin:!1}},transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&0===e.textContent.indexOf("http")&&(p.pU.test(e.textContent)||p.tC.test(e.textContent)),transform:e=>{const t=(0,p.CC)(e.textContent);return(0,o.createBlock)("jetpack/opentable",t)}}]},deprecated:[s.Z,l.Z]}},70718:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(92819),s=n(55609),l=n(65736),c=n(74701);const __=l.__,_n=l._n;function u(e){const[t,n]=(0,o.useState)(""),r=(0,c.Z)(t,20),[l,u]=(0,o.useState)(e.rids||[]),p=/^(\d+)$|\(\#(\d+)\)$/,d=r.filter((e=>l.indexOf(e.rid.toString())<0)).map((e=>e.name+` (#${e.rid})`)),m=(0,o.createElement)(s.FormTokenField,a()({value:l,suggestions:d,saveTransform:e=>c.$.test(e)?"":e.trim(),onInputChange:n,maxSuggestions:20,label:_n("Restaurant","Restaurants",l.length,"jetpack")},e,{onChange:t=>{const n=t.map((e=>{const t=p.exec(e);return t[1]||t[2]}));u(n),e.onChange&&e.onChange(n)}}));return(0,o.createElement)("div",{className:"wp-block-jetpack-opentable-restaurant-picker"},e.onSubmit?(0,o.createElement)("form",{onSubmit:n=>{n.preventDefault(),e.onSubmit((0,i.isEmpty)(l)?t:l)}},m,(0,o.createElement)(s.Button,{isSecondary:!0,type:"submit"},__("Embed","jetpack"))):m)}},18746:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)();return(0,r.useEffect)((()=>{t.current=e}),[e]),t.current}},74701:function(e,t,n){"use strict";n.d(t,{$:function(){return o},Z:function(){return i}});var r=n(92819),a=n(69307);const o=/^\s*(http[s]?:\/\/|\<script)/;function i(e,t){const[n,i]=(0,a.useState)([]),s=(0,a.useCallback)((0,r.throttle)((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";fetch("https://www.opentable.com/widget/reservation/restaurant-search?pageSize="+t+"&query="+encodeURIComponent(e)).then((e=>e.json())).then((e=>i((0,r.unionBy)(n,e.items,"rid"))))}),500),[n]);return(0,a.useEffect)((()=>{(0,r.isEmpty)(e)||o.test(e)||s(e)}),[e]),n}},88707:function(e,t,n){"use strict";n.d(t,{tC:function(){return a},pU:function(){return o},CC:function(){return i}});const r=/<\s*script[^>]*src\s*=\s*["']?([^"']*)/i,a=/restref=([0-9]+)&/,o=/rid=([0-9]+)&/,i=e=>{if(e)return(e=>{if(!e)return;let t="";if(t=0===e.indexOf("http")?new URL(e):new URL("http:"+e),!t.host||-1===t.host.indexOf("opentable")||!t.search)return;const n=new URLSearchParams(t.search);let r=n.get("theme");"button"===n.get("type")&&(r=n.get("type"));let a=n.getAll("rid");if(a&&0!==a.length||(a=n.getAll("restref")),!a||0===a.length)return;const o={};a&&(o.rid=a);const i=n.get("domain");i&&(o.domain=i);const s=n.get("iframe");s&&(o.iframe=s);const l=n.get("lang");l&&(o.lang=l);const c=n.get("newtab");return c&&(o.newtab=c),r&&(o.style=r),o})((e=>{const t=e.match(r);return t&&t[1]?t[1]:a.test(e)||o.test(e)?e:void 0})(e))}},79509:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(18161);const __=a.__,_x=a._x;function l(e){let{className:t,onSubmit:n,noticeUI:a,url:l,setUrl:c}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.Placeholder,{label:__("Pinterest","jetpack"),icon:(0,r.createElement)(i.BlockIcon,{icon:s.qv}),notices:a},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),n()}},(0,r.createElement)("input",{type:"url",value:l,className:"components-placeholder__input","aria-label":__("Pinterest URL","jetpack"),placeholder:__("Enter URL to embed here…","jetpack"),onChange:e=>c(e.target.value)}),(0,r.createElement)(o.Button,{isSecondary:!0,type:"submit"},_x("Embed","button label","jetpack")))))}},49362:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981);const __=a.__,_x=a._x;function s(e){let{fallbackUrl:t,onClick:n}=e;return(0,r.createElement)(r.Fragment,null,__("Sorry, this content could not be embedded.","jetpack")," ",(0,r.createElement)(o.Button,{isLink:!0,onClick:()=>{const e=(0,r.createElement)("a",{href:t},t);n((0,i.createBlock)("core/paragraph",{content:(0,r.renderToString)(e)}))}},_x("Convert block to link","button label","jetpack")))}},61989:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(){return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(o.Spinner,null),(0,r.createElement)("p",null,__("Embedding…","jetpack")))}},4052:function(e,t,n){"use strict";n.d(t,{C:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{setEditingState:t}=e;return(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{className:"components-toolbar__control",label:__("Edit URL","jetpack"),icon:"edit",onClick:()=>t(!0)}))}},41659:function(e,t,n){"use strict";var r=n(69307),a=n(94991);t.Z={attributes:{url:{type:"string"}},supports:{align:!1,html:!1},save:e=>{let{attributes:t,className:n}=e;const{url:o}=t;return(0,a.t)(o)?(0,r.createElement)("div",{className:n},(0,r.createElement)("a",{"data-pin-do":(0,a.t)(o),href:o})):null}}},81253:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(52175),i=n(94991),s=n(4052),l=n(61989),c=n(79509),u=n(49362),p=n(79474);t.Z=(0,a.withNotices)((function(e){let{attributes:t,isSelected:n,className:d,noticeOperations:m,noticeUI:h,setAttributes:f,onReplace:g}=e;const{url:b}=t,{isFetching:v,pinterestUrl:k,testUrl:y,hasTestUrlError:E}=(0,p.Z)(),[w,_]=(0,r.useState)(!1),[C,j]=(0,r.useState)(""),[S,x]=(0,r.useState)(!1),T=(0,r.useCallback)((()=>(0,r.createElement)(u.Z,{fallbackUrl:C,onClick:g})),[E]),N=()=>{v||(y(C),x(!1))},A=()=>{_(!0)};if((0,r.useEffect)((()=>{b&&y(b)}),[]),(0,r.useEffect)((()=>{!n&&w&&_(!1)}),[n,w]),(0,r.useEffect)((()=>{f({url:k}),m.removeAllNotices(),k&&j(k),E&&m.createErrorNotice(T())}),[k,E,f,T]),v)return(0,r.createElement)(l.Z,null);const P=(0,i.t)(b);if(S||!b||b&&!P)return(0,r.createElement)(c.Z,{className:d,onSubmit:N,noticeUI:h,url:C,setUrl:j});const I=`<a data-pin-do='${P}' href='${b}'></a>`;return(0,r.createElement)("div",{className:d},(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.C,{setEditingState:x})),(0,r.createElement)("div",null,(0,r.createElement)(a.SandBox,{html:I,scripts:["https://assets.pinterest.com/js/pinit.js"],onFocus:A}),!w&&(0,r.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:A})))}))},79474:function(e,t,n){"use strict";var r=n(69307),a=n(87072),o=n(18161);t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";const[t,n]=(0,r.useState)(!1),[i,s]=(0,r.useState)(e),[l,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i&&i!==o.a0&&(n(!0),(0,a.Z)(i).then((e=>{n(!1),s(e),c(!1)})).catch((()=>{n(!1),s(i||void 0),c(!0)})))}),[i]),{isFetching:t,pinterestUrl:i,hasTestUrlError:l,testUrl:s}}},18161:function(e,t,n){"use strict";n.d(t,{Wh:function(){return p},a0:function(){return d},u2:function(){return m},qv:function(){return f},Xd:function(){return g}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(81253),l=n(26981),c=n(57535),u=n(41659);const __=a.__,_x=a._x,p=/^\s*https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^/]+)(\/[^/]+)?/i,d="https://pinterest.com/anapinskywalker/",m="pinterest",h=__("Pinterest","jetpack"),f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(o.G,null,(0,r.createElement)(o.Path,{d:"M12,2C6.477,2,2,6.477,2,12c0,4.236,2.636,7.855,6.356,9.312c-0.087-0.791-0.166-2.005,0.035-2.869c0.182-0.78,1.173-4.971,1.173-4.971s-0.299-0.599-0.299-1.484c0-1.39,0.806-2.429,1.809-2.429c0.853,0,1.265,0.641,1.265,1.409c0,0.858-0.546,2.141-0.828,3.329c-0.236,0.996,0.499,1.807,1.481,1.807c1.777,0,3.144-1.874,3.144-4.579c0-2.394-1.72-4.068-4.177-4.068c-2.845,0-4.515,2.134-4.515,4.34c0,0.859,0.331,1.781,0.744,2.282c0.082,0.099,0.094,0.186,0.069,0.287C8.18,14.682,8.011,15.361,7.978,15.5c-0.044,0.183-0.145,0.222-0.334,0.134c-1.249-0.581-2.03-2.407-2.03-3.874c0-3.154,2.292-6.051,6.607-6.051c3.469,0,6.165,2.472,6.165,5.775c0,3.446-2.173,6.22-5.189,6.22c-1.013,0-1.966-0.526-2.292-1.148c0,0-0.501,1.909-0.623,2.377c-0.226,0.869-0.835,1.957-1.243,2.622C9.975,21.844,10.969,22,12,22c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2z"}))),g={title:h,description:__("Embed a Pinterest pin, board, or user.","jetpack"),icon:{src:f,foreground:(0,c.m)()},category:"embed",keywords:[_x("social","block search term","jetpack"),_x("pinboard","block search term","jetpack"),_x("pins","block search term","jetpack")],supports:{align:!1,html:!1},attributes:{url:{type:"string"}},edit:s.Z,save:l.Z,transforms:{from:[{type:"raw",isMatch:e=>"P"===e.nodeName&&p.test(e.textContent),transform:e=>(0,i.createBlock)("jetpack/pinterest",{url:e.textContent.trim()})}]},example:{attributes:{url:d}},deprecated:[u.Z]}},26981:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;return(0,r.createElement)("a",{href:n},n)}},94991:function(e,t,n){"use strict";n.d(t,{t:function(){return o}});var r=n(96483),a=n(18161);function o(e){if(!a.Wh.test(e))return"";const t=(0,r.getPath)(e);return t?t.startsWith("pin/")?"embedPin":t.match(/^([^/]+)\/?$/)?"embedUser":t.match(/^([^/]+)\/([^/]+)\/?$/)?"embedBoard":"":""}},45452:function(e,t,n){"use strict";n.d(t,{G:function(){return s},q:function(){return l}});var r=n(12761),a=n(86989),o=n.n(a),i=n(96483);const s=async()=>await o()({path:"/wpcom/v2/podcast-player/track-quantity"}),l=async e=>{let t,n,a,{url:s,guids:l=[],fetchEpisodeOptions:c=!1}=e;try{t=await o()({path:(0,i.addQueryArgs)("/wpcom/v2/podcast-player",{url:s,guids:l,"episode-options":c})})}catch(e){n=e}if(t)return{type:r.u,data:t};try{a=await o()({path:(0,i.addQueryArgs)("/oembed/1.0/proxy",{url:s})})}catch(e){}const u='<a href="'+s+'">'+s+"</a>";if(a&&a.html!==u)return{type:r.b};throw n}},23600:function(e,t,n){"use strict";var r=n(96483),a=n(68039);t.Z={url:{type:"string",validator:r.isUrl},selectedEpisodes:{type:"array",default:[]},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeTitle:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}}},98006:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(76814);const s=(0,r.memo)((e=>{let{playerId:t,title:n,cover:a,link:o,track:i,children:s,showEpisodeTitle:c,showCoverArt:u,showEpisodeDescription:p,colors:d}=e;return u||c||p?(0,r.createElement)("div",{className:"jetpack-podcast-player__header"},(0,r.createElement)("div",{className:"jetpack-podcast-player__current-track-info"},u&&a&&(0,r.createElement)("div",{className:"jetpack-podcast-player__cover"},(0,r.createElement)("img",{className:"jetpack-podcast-player__cover-image",src:a,alt:""})),c&&!!(n||i&&i.title)&&(0,r.createElement)(l,{playerId:t,title:n,link:o,track:i,colors:d})),!!(p&&i&&i.description)&&(0,r.createElement)("p",{id:`${t}__track-description`,className:"jetpack-podcast-player__track-description"},i.description),s):s})),l=(0,r.memo)((e=>{let{playerId:t,title:n,link:a,track:s,colors:l={primary:{name:null,custom:null,classes:""}}}=e;return(0,r.createElement)("h2",{id:`${t}__title`,className:"jetpack-podcast-player__title"},!(!s||!s.title)&&(0,r.createElement)("span",{className:o()("jetpack-podcast-player__current-track-title",l.primary.classes),style:{color:l.primary.custom}},s.title,(0,r.createElement)("a",{className:"jetpack-podcast-player__track-title-link",href:s.link||s.src,target:"_blank",rel:"noopener noreferrer nofollow"},i.Z)),!!(s&&s.title&&n)&&(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"}," - "),!!n&&(0,r.createElement)(c,{title:n,link:a,colors:l}))})),c=(0,r.memo)((e=>{let{title:t,link:n}=e;return(0,r.createElement)("span",{className:"jetpack-podcast-player__podcast-title"},n?(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:n,target:"_blank",rel:"noopener noreferrer nofollow"},t):{title:t})}));t.Z=s},66530:function(e,t,n){"use strict";var r=n(69307),a=n(15111),o=n(15020);const i=(0,r.memo)((e=>{let{playerId:t,tracks:n,selectTrack:i,currentTrack:s,playerState:l,colors:c}=e;return(0,r.createElement)("ol",{className:"jetpack-podcast-player__tracks","aria-labelledby":`jetpack-podcast-player__tracklist-title--${t}`,"aria-describedby":`jetpack-podcast-player__tracklist-description--${t}`},n.map(((e,t)=>{const n=s===t;return(0,r.createElement)(o.Z,{key:e.id,index:t,track:e,selectTrack:i,isActive:n,isPlaying:n&&l===a.Wp,isError:n&&l===a.Vy,colors:c})})))}));t.Z=i},58627:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(25158),u=n(94333),p=n(9818),d=n(15111),m=n(92924),h=n(66530),f=n(98006),g=n(74693),b=n(56551);const __=l.__;class v extends o.Component{constructor(){super(...arguments),a()(this,"state",{currentTrack:0,hasUserInteraction:!1}),a()(this,"recordUserInteraction",(()=>{this.state.hasUserInteraction||this.setState({hasUserInteraction:!0})})),a()(this,"selectTrack",(e=>{const{currentTrack:t}=this.state;if(t===e)return this.recordUserInteraction(),void this.props.toggleMediaSource(this.props.playerId);-1!==t&&this.props.pauseMediaSource(this.props.playerId),this.loadAndPlay(e)})),a()(this,"loadTrack",(e=>{const t=this.getTrack(e);if(!t)return!1;this.state.currentTrack!==e&&this.setState({currentTrack:e});const{title:n,link:r,description:a}=t;return this.props.updateMediaSourceData(this.props.playerId,{title:n,link:r}),(0,c.speak)(
+/* translators: %s is the track title. It describes the current state of the track as "Loading: [track title]". */
+`${(0,l.sprintf)(__("Loading: %s","jetpack"),n)} ${a}`,"assertive"),!0})),a()(this,"loadAndPlay",(e=>{this.recordUserInteraction(),this.loadTrack(e)&&this.props.playMediaSource(this.props.playerId)})),a()(this,"getTrack",(e=>this.props.tracks[e])),a()(this,"handleError",(e=>{if(!this.state.hasUserInteraction){const t=window.navigator.userAgent.match(/Trident\/7\./)?"IE11: Playing sounds in webpages setting is not checked":e;this.setState((()=>{throw new Error(t)}))}this.props.errorMediaSource(this.props.playerId),(0,c.speak)(`${__("Error: Episode unavailable - Open in a new tab","jetpack")}`,"assertive")})),a()(this,"handlePlay",(()=>{this.props.playMediaSource(this.props.playerId),this.setState({hasUserInteraction:!0})})),a()(this,"handlePause",(()=>{this.props.pauseMediaSource(this.props.playerId),this.props.playerState!==d.Vy&&this.props.pauseMediaSource(this.props.playerId)})),a()(this,"handleTimeChange",(e=>{this.props.setMediaSourceCurrentTime(this.props.playerId,e)})),a()(this,"handleJump",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime-5)})),a()(this,"handleSkip",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime+30)})),a()(this,"updateMediaData",(e=>{this.props.updateMediaSourceData(this.props.playerId,{duration:e.target?.duration,domId:e.target?.id})}))}registerPlayer(){const e=this.getTrack(this.state.currentTrack)||{},{playerId:t}=this.props;this.props.registerMediaSource(t,{title:e.title,link:e.link,state:d._5}),this.props.setDefaultMediaSource(t)}componentDidMount(){this.props.playerId&&this.registerPlayer()}componentWillUnmount(){this.props.playerId&&this.props.unregisterMediaSource(this.props.playerId)}componentDidUpdate(e){const t=e=>e?.length?e.map((e=>e.guid)):[],n=t(this.props.tracks),r=new Set(t(e.tracks));n.length===r.size&&n.every((e=>r.has(e)))||this.loadTrack(0)}static getDerivedStateFromProps(e,t){return e.tracks.length<=t.currentTrack?{...t,currentTrack:0}:null}render(){const{playerId:e,title:t,link:n,cover:r,tracks:a,attributes:i,currentTime:c,playerState:u}=this.props,{itemsToShow:p,primaryColor:d,customPrimaryColor:b,hexPrimaryColor:v,secondaryColor:k,customSecondaryColor:y,hexSecondaryColor:E,backgroundColor:w,customBackgroundColor:_,hexBackgroundColor:C,showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x}=i,{currentTrack:T}=this.state,N=a.slice(0,p),A=this.getTrack(T),P=(0,g.Aq)({primaryColor:d,customPrimaryColor:b,secondaryColor:k,customSecondaryColor:y,backgroundColor:w,customBackgroundColor:_}),I={color:y,backgroundColor:_,"--jetpack-podcast-player-primary":v,"--jetpack-podcast-player-secondary":E,"--jetpack-podcast-player-background":C},M=s()("jetpack-podcast-player",u,P.secondary.classes,P.background.classes);return(0,o.createElement)("section",{className:M,style:I,"aria-labelledby":t||A&&A.title?`${e}__title`:void 0,"aria-describedby":A&&A.description?`${e}__track-description`:void 0,"data-jetpack-iframe-ignore":!0},(0,o.createElement)(f.Z,{playerId:e,title:t,link:n,cover:r,track:this.getTrack(T),showCoverArt:j,showEpisodeTitle:S,showEpisodeDescription:x,colors:P},(0,o.createElement)(m.Z,{onJumpBack:this.handleJump,onSkipForward:this.handleSkip,trackSource:this.getTrack(T).src,onPlay:this.handlePlay,onPause:this.handlePause,onError:this.handleError,playStatus:u,currentTime:c,onTimeChange:this.handleTimeChange,onMetadataLoaded:this.updateMediaData})),N.length>1&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h4",{id:`jetpack-podcast-player__tracklist-title--${e}`,className:"jetpack-podcast-player--visually-hidden"},(0,l.sprintf)(// translators: %s is the track title.
+__("Playlist: %s","jetpack"),t)),(0,o.createElement)("p",{id:`jetpack-podcast-player__tracklist-description--${e}`,className:"jetpack-podcast-player--visually-hidden"},__("Select an episode to play it in the audio player.","jetpack")),(0,o.createElement)(h.Z,{playerId:e,playerState:u,currentTrack:T,tracks:N,selectTrack:this.selectTrack,colors:P})))}}v.defaultProps={title:"",cover:"",link:"",attributes:{url:null,itemsToShow:5,showCoverArt:!0,showEpisodeTitle:!0,showEpisodeDescription:!0},tracks:[]},t.Z=(0,u.compose)([b.Z,(0,p.withSelect)(((e,t)=>{const{playerId:n}=t,{getMediaSourceCurrentTime:r,getMediaPlayerState:a}=e(d.tT);return{currentTime:r(n),playerState:a(n)}})),(0,p.withDispatch)((e=>{const{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}=e(d.tT);return{registerMediaSource:t,updateMediaSourceData:n,unregisterMediaSource:r,setDefaultMediaSource:a,playMediaSource:o,pauseMediaSource:i,toggleMediaSource:s,errorMediaSource:l,setMediaSourceCurrentTime:c}}))])(v)},86852:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__,o=(0,r.memo)((e=>{let{link:t,title:n,colors:o}=e;return(0,r.createElement)("div",{className:"jetpack-podcast-player__track-error"},__("Episode unavailable. ","jetpack"),t&&(0,r.createElement)("span",{className:o.secondary.classes,style:{color:o.secondary.custom}},(0,r.createElement)("a",{className:"jetpack-podcast-player__link",href:t,rel:"noopener noreferrer nofollow",target:"_blank"},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${(0,a.sprintf)(
+/* translators: %s is the title of the track. This text is visually hidden from the screen, but available to screen readers. */
+__("%s:","jetpack"),n)} `),__("Open in a new tab","jetpack"))))}));t.Z=o},71938:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(72086);const __=a.__,i=(0,r.memo)((e=>{let t,n,{isPlaying:a,isError:i,className:s}=e;i?(n="error",
+/* translators: This is text to describe the current state. This will go
+ before the track title, such as "Error: [The title of the track]". */
+t=__("Error:","jetpack")):a&&(n="playing",
+/* translators: Text to describe the current state. This will go before the
+ track title, such as "Playing: [The title of the track]". */
+t=__("Playing:","jetpack"));const l=o[n];return l?(0,r.createElement)("span",{className:`${s} ${s}--${n}`},(0,r.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${t} `),l):(0,r.createElement)("span",{className:s})}));t.Z=i},15020:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(71938),l=n(86852),c=n(74693);const __=i.__,u=(0,r.memo)((e=>{let{track:t,isActive:n,isPlaying:a,isError:i,selectTrack:u,index:p,colors:d={primary:{},secondary:{}}}=e;const m=(0,c.Gd)("color",d.primary.name),h=(0,c.Gd)("color",d.secondary.name),f=o()("jetpack-podcast-player__track",{"is-active":n,"has-primary":n&&(d.primary.name||d.primary.custom),[m]:n&&!!m,"has-secondary":!n&&(d.secondary.name||d.secondary.custom),[h]:!n&&!!h}),g={};n&&d.primary.custom&&!m?g.color=d.primary.custom:n||!d.secondary.custom||h||(g.color=d.secondary.custom);const
+/* translators: This needs to be a single word with no spaces. It describes
+ the current item in the group. A screen reader will announce it as "[title],
+ current track". */
+b=n?__("track","jetpack"):void 0;return(0,r.createElement)("li",{className:f,style:Object.keys(g).length?g:null},(0,r.createElement)("a",{className:"jetpack-podcast-player__link jetpack-podcast-player__track-link",href:t.link||t.src,role:"button","aria-current":b,onClick:e=>{e.shiftKey||e.metaKey||e.altKey||(e.preventDefault(),u(p))},onKeyDown:e=>{" "===event.key&&(e.preventDefault(),u(p))}},(0,r.createElement)(s.Z,{className:"jetpack-podcast-player__track-status-icon",isPlaying:a,isError:i}),(0,r.createElement)("span",{className:"jetpack-podcast-player__track-title"},t.title),t.duration&&(0,r.createElement)("time",{className:"jetpack-podcast-player__track-duration",dateTime:t.duration},t.duration)),n&&i&&(0,r.createElement)(l.Z,{link:t.link,title:t.title,colors:d}))}));t.Z=u},56551:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736);const __=i.__;function s(e){class t extends o.Component{constructor(){super(...arguments),a()(this,"state",{didError:!1,isIE11AudioIssue:!1}),a()(this,"componentDidCatch",((e,t)=>{this.props.onError(e,t)}))}render(){const{didError:t,isIE11AudioIssue:n}=this.state;return t?(0,o.createElement)("section",{className:"jetpack-podcast-player"},(0,o.createElement)("p",{className:"jetpack-podcast-player__error"},n?__('The podcast player cannot be displayed as your browser settings do not allow for sounds to be played in webpages. This can be changed in your browser’s "Internet options" settings. In the "Advanced" tab you will have to check the box next to "Play sounds in webpages" in the "Multimedia" section. Once you have confirmed that the box is checked, please press "Apply" and then reload this page.',"jetpack"):__("An unexpected error occured within the Podcast Player. Reloading this page might fix the problem.","jetpack",0))):(0,o.createElement)(e,this.props)}}return a()(t,"getDerivedStateFromError",(e=>({didError:!0,isIE11AudioIssue:!!e.message.match(/IE11/)}))),t.defaultProps={onError:()=>{}},t}},12761:function(e,t,n){"use strict";n.d(t,{u:function(){return r},b:function(){return a}});const r="podcast-feed",a="embed-block"},90307:function(e,t,n){"use strict";var r=n(96483),a=n(68039);const o={url:{type:"string",validator:r.isUrl},itemsToShow:{type:"integer",default:5},showCoverArt:{type:"boolean",default:!0},showEpisodeDescription:{type:"boolean",default:!0},primaryColor:{type:"string"},customPrimaryColor:{type:"string",validator:a.Z},hexPrimaryColor:{type:"string",validator:a.Z},secondaryColor:{type:"string"},customSecondaryColor:{type:"string",validator:a.Z},hexSecondaryColor:{type:"string",validator:a.Z},backgroundColor:{type:"string"},customBackgroundColor:{type:"string",validator:a.Z},hexBackgroundColor:{type:"string",validator:a.Z},exampleFeedData:{type:"object"}};t.Z={attributes:o,supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},save:()=>null}},87315:function(e,t,n){"use strict";var r=n(69307),a=n(90922),o=n.n(a),i=n(92819),s=n(55609),l=n(94333),c=n(65736),u=n(52175),p=n(9818),d=n(4981),m=n(96483),h=n(14087),f=n(41820),g=n(58014),b=n(23600),v=n(58627),k=n(74693),y=n(45452),E=n(91763),w=n(71420),_=n(12761),C=n(87929);const __=c.__,j=o()("jetpack:podcast-player:edit"),S=(0,g.Wp)()||(0,g.Ug)()?"http://en.support.wordpress.com/wordpress-editor/blocks/podcast-player-block/":"https://jetpack.com/support/jetpack-blocks/podcast-player-block/";t.Z=(0,l.compose)([(0,p.withDispatch)(((e,t)=>{let{clientId:n,attributes:r}=t;return{replaceWithEmbedBlock(){e("core/block-editor").replaceBlock(n,(0,d.createBlock)("core/embed",{url:r.url}))}}})),(0,u.withColors)("backgroundColor",{primaryColor:"color"},{secondaryColor:"color"}),s.withNotices,l.withInstanceId,w.K])((e=>{let{instanceId:t,className:n,attributes:a,setAttributes:o,noticeOperations:{createErrorNotice:l,removeAllNotices:c},noticeUI:p,primaryColor:d,setPrimaryColor:g,secondaryColor:w,setSecondaryColor:x,fallbackTextColor:T,backgroundColor:N,setBackgroundColor:A,fallbackBackgroundColor:P,isSelected:I,replaceWithEmbedBlock:M}=e;const R=(0,h.S)(b.Z,a),{url:L,selectedEpisodes:B,itemsToShow:Z,showCoverArt:F,showEpisodeTitle:D,showEpisodeDescription:O,exampleFeedData:z}=R,U=`jetpack-podcast-player-block-${t}`,[$,V]=(0,r.useState)(!1),[G,q]=(0,r.useState)(10),H=(0,r.useRef)(),[{selectedGuid:W,checkUrl:K,...X},J]=(0,r.useReducer)(E.J,{editedUrl:L||"",isEditing:!L&&!z,isLoading:!1,feedData:z||{},isInteractive:!1,selectedGuid:B?.[0]?.guid,checkUrl:L||""}),Y=(0,r.useMemo)((()=>(0,i.debounce)((e=>{J({type:E.N.START_FETCH}),H.current?.cancel(),H.current=(0,k.W4)((0,y.q)({...e,fetchEpisodeOptions:!0})),H.current.promise.then((t=>{if(c(),t?.isCanceled)j("Block was unmounted during fetch",t);else switch(t?.type){case _.u:return o({url:e.url,selectedEpisodes:e.guids.map((e=>({guid:e})))}),J({type:E.N.FEED_RECEIVED,payload:t.data});case _.b:return M()}}),(e=>{e?.isCanceled?j("Block was unmounted during fetch",e):(j("feed error",e),c(),l(e.message||__("Your podcast couldn't be embedded. Please double check your URL.","jetpack")),J({type:E.N.START_EDITING}))}))}),300)),[M,o,l,c]);(0,r.useEffect)((()=>()=>{H?.current?.cancel?.()}),[]);const Q=(0,r.useCallback)((e=>{null===e||$||((0,C.DT)(["link#mediaelement-css","link#wp-mediaelement-css"],e),V(!0))}),[$]);(0,r.useEffect)((()=>{if(""!==K)return Y({url:K,guids:W?[W]:[]}),()=>H?.current?.cancel?.()}),[Y,K,W]),(0,r.useEffect)((()=>{(0,y.G)().then((e=>{q(e)}))}),[]),(0,r.useEffect)((()=>{W&&1!==Z&&o({itemsToShow:1})}),[W,Z,o]),(0,r.useEffect)((()=>{!I&&X.isInteractive&&J({type:E.N.PREVENT_INTERACTIONS})}),[I,X.isInteractive]);const ee=e=>{if(e.preventDefault(),""===X.editedUrl)return;const t=(0,m.prependHTTP)(X.editedUrl);(0,m.isURL)(t)?(t===K?(J({type:E.N.CLEAR_FEED}),Y({url:K,guids:B[0]?.guid?[B[0].guid]:[]})):J({type:E.N.CHECK_URL,payload:t}),J({type:E.N.FINISH_EDITING,payload:t})):l(__("Your podcast couldn't be embedded. Please double check your URL.","jetpack"))};if(X.isEditing)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Enter your podcast RSS feed URL.","jetpack"),className:"jetpack-podcast-player__placeholder"},(0,r.createElement)("form",{onSubmit:ee},p,(0,r.createElement)(s.TextControl,{type:"text",inputMode:"url",placeholder:__("Enter URL here…","jetpack"),value:X.editedUrl,className:"components-placeholder__input",onChange:e=>J({type:E.N.EDIT_URL,payload:e})}),(0,r.createElement)(s.Button,{isPrimary:!0,type:"submit"},__("Embed","jetpack"))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(s.ExternalLink,{href:S},__("Learn more about embeds","jetpack"))));if(!X.feedData.tracks?.length)return(0,r.createElement)(s.Placeholder,{icon:(0,r.createElement)(u.BlockIcon,{icon:f.E}),label:__("Podcast Player","jetpack"),instructions:__("Loading podcast feed…","jetpack")},(0,r.createElement)(s.Spinner,null));const te=(e,t)=>n=>{o({[e]:n}),t(n)};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(u.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarButton,{"aria-label":__("Edit Podcast Feed URL","jetpack"),onClick:()=>J({type:E.N.START_EDITING})},__("Replace","jetpack")))),(0,r.createElement)(u.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Podcast settings","jetpack")},(s.ComboboxControl||0===B.length)&&(0,r.createElement)(s.RangeControl,{label:__("Number of items","jetpack"),value:Z,onChange:e=>o({itemsToShow:W?1:e}),min:1,max:G,required:!0,disabled:!!W}),s.ComboboxControl&&(0,r.createElement)(s.ComboboxControl,{className:"jetpack-podcast-player__episode-selector",value:W,onChange:e=>J({type:E.N.SELECT_EPISODE,payload:e}),options:X.feedData.options||[],label:__("Episode","jetpack"),onFilterValueChange:i.noop}),(0,r.createElement)(s.ToggleControl,{label:__("Show Cover Art","jetpack"),checked:F,onChange:e=>o({showCoverArt:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Title","jetpack"),checked:D,onChange:e=>o({showEpisodeTitle:e})}),(0,r.createElement)(s.ToggleControl,{label:__("Show Episode Description","jetpack"),checked:O,onChange:e=>o({showEpisodeDescription:e})})),(0,r.createElement)(u.PanelColorSettings,{title:__("Color Settings","jetpack"),colorSettings:[{value:d.color,onChange:te("hexPrimaryColor",g),label:__("Primary Color","jetpack")},{value:w.color,onChange:te("hexSecondaryColor",x),label:__("Secondary Color","jetpack")},{value:N.color,onChange:te("hexBackgroundColor",A),label:__("Background Color","jetpack")}]},(0,r.createElement)(u.ContrastChecker,{isLargeText:!1,textColor:w.color,backgroundColor:N.color,fallbackBackgroundColor:P,fallbackTextColor:T}))),(0,r.createElement)("div",{id:U,className:n,ref:Q},(0,r.createElement)(v.Z,{playerId:U,attributes:R,tracks:X.feedData.tracks,cover:X.feedData.cover,title:X.feedData.title,link:X.feedData.link}),!X.isInteractive&&!X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__interactive-overlay",onMouseUp:()=>J({type:E.N.MAKE_INTERACTIVE})}),X.isLoading&&(0,r.createElement)("div",{className:"jetpack-podcast-player__loading-overlay"},(0,r.createElement)(s.Spinner,null))))}))},41820:function(e,t,n){"use strict";n.d(t,{E:function(){return r.Z}});var r=n(95506)},76814:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"}));t.Z=o},95506:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,null,(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"}),(0,r.createElement)(a.Rect,{fill:"none",height:"24",width:"24"})),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,null),(0,r.createElement)(a.G,null,(0,r.createElement)(a.G,{transform:"matrix(1 0 0 1 144 120)"},(0,r.createElement)(a.Path,{d:"M-122-114h-5v8.18c-0.31-0.11-0.65-0.18-1-0.18c-1.66,0-3,1.34-3,3s1.34,3,3,3s3-1.34,3-3v-9h3V-114 L-122-114z M-129-114h-12v2h12V-114L-129-114z M-129-110h-12v2h12V-110L-129-110z M-133-106h-8v2h8V-106L-133-106z M-129-103 c0-0.55,0.45-1,1-1c0.55,0,1,0.45,1,1s-0.45,1-1,1C-128.55-102-129-102.45-129-103z"})))))},72086:function(e,t,n){"use strict";n.r(t),n.d(t,{playing:function(){return i},error:function(){return s}});var r=n(69307),a=n(55609);const o={height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},i=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm7-.17v6.34L7.83 13H5v-2h2.83L10 8.83zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77 0-4.28-2.99-7.86-7-8.77z"})),s=(0,r.createElement)(a.SVG,o,(0,r.createElement)(a.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,r.createElement)(a.Path,{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}))},58495:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p}});var r=n(65736),a=n(23600),o=n(90307),i=n(87315),s=n(99944),l=n(41820),c=n(57535);const __=r.__,_x=r._x,u="podcast-player",p={title:__("Podcast Player","jetpack"),description:__("Select and play episodes from a single podcast.","jetpack"),icon:{src:l.E,foreground:(0,c.m)()},category:"embed",keywords:[_x("audio","block search term","jetpack"),_x("embed","block search term","jetpack")],supports:{align:!1,alignWide:!0,anchor:!1,customClassName:!0,className:!0,html:!1,multiple:!0,reusable:!0},edit:i.Z,save:s.Z,attributes:a.Z,example:{attributes:{customPrimaryColor:(0,c.m)(),hexPrimaryColor:(0,c.m)(),exampleFeedData:{title:__("Jetpack Example Podcast","jetpack"),link:"https://jetpack.com",cover:"https://jetpackme.files.wordpress.com/2020/05/jetpack-example-podcast-cover.png?w=160",tracks:[{id:"3",title:__("3. Our third episode","jetpack"),duration:"14:58"},{id:"2",title:__("2. Interview with a special guest","jetpack"),duration:"19:17"},{id:"1",title:__("1. Welcome to Example Podcast","jetpack"),duration:"11:25"}]}}},deprecated:[o.Z]}},99944:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{url:n}=t;if(n&&""!==n)return(0,r.createElement)("a",{className:"jetpack-podcast-player__direct-link",href:n},n)}},91763:function(e,t,n){"use strict";n.d(t,{N:function(){return r},J:function(){return a}});const r={EDIT_URL:"EDIT_URL",FINISH_EDITING:"FINISH_EDITING",START_EDITING:"START_EDITING",SELECT_EPISODE:"SELECT_EPISODE",FEED_RECEIVED:"FEED_RECEIVED",CLEAR_FEED:"CLEAR_FEED",MAKE_INTERACTIVE:"MAKE_INTERACTIVE",PREVENT_INTERACTIONS:"PREVENT_INTERACTIONS",START_FETCH:"START_FETCH",CHECK_URL:"CHECK_URL"},a=(e,t)=>{switch(t.type){case r.EDIT_URL:return{...e,editedUrl:t.payload};case r.START_EDITING:return{...e,isEditing:!0,isLoading:!1};case r.FINISH_EDITING:return{...e,editedUrl:t.payload,isEditing:!1};case r.FEED_RECEIVED:return{...e,isLoading:!1,feedData:t.payload};case r.CLEAR_FEED:return{...e,feedData:{}};case r.MAKE_INTERACTIVE:return{...e,isInteractive:!0};case r.PREVENT_INTERACTIONS:return{...e,isInteractive:!1};case r.START_FETCH:return{...e,isLoading:!0};case r.SELECT_EPISODE:return{...e,selectedGuid:t.payload};case r.CHECK_URL:return{...e,selectedGuid:null,feedData:{},checkUrl:t.payload};default:return{...e}}}},74693:function(e,t,n){"use strict";n.d(t,{Gd:function(){return i},W4:function(){return s},Aq:function(){return l}});var r=n(89105),a=n.n(r),o=n(92819);function i(e,t){if(e&&t)return`has-${t}-${e}`}function s(e){let t=!1;return{promise:new Promise(((n,r)=>{e.then((e=>t?r({isCanceled:!0}):n(e)),(e=>r(t?{isCanceled:!0}:e)))})),cancel(){t=!0}}}const l=(0,o.memoize)((e=>{let{primaryColor:t,customPrimaryColor:n,secondaryColor:r,customSecondaryColor:o,backgroundColor:s,customBackgroundColor:l}=e;const c=i("color",t),u=i("color",r),p=i("background-color",s);return{primary:{name:t,custom:n,classes:a()({"has-primary":c||n,[c]:c})},secondary:{name:r,custom:o,classes:a()({"has-secondary":u||o,[u]:u})},background:{name:s,custom:l,classes:a()({"has-background":p||l,[p]:p})}}}),(e=>Object.values(e).join()))},96440:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(52175),s=n(55609),l=n(39630);const __=o.__,c=e=>{let{id:t,setRating:n,children:a}=e;return(0,r.createElement)("span",{className:"jetpack-ratings-button",tabIndex:0,role:"button",onKeyDown:(o=t,e=>{let{keyCode:t}=e;return t===l.ENTER?n(o):null}),onClick:(e=>()=>n(e))(t)},a);var o};t.Z=e=>function(t){let{className:n,setAttributes:o,attributes:{align:l,color:u,rating:p,maxRating:d}}=t;const m=e=>{e===p?Math.ceil(p)===p&&(e-=.5):.5===p&&1===e&&(e=0),o({rating:e})};return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.BlockControls,null,(0,r.createElement)(i.AlignmentToolbar,{value:l,onChange:e=>o({align:e})})),(0,r.createElement)("div",{className:n,style:{textAlign:l}},(0,a.range)(1,d+1).map((t=>(0,r.createElement)(c,{key:t,id:t,setRating:m},(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t-.5?null:"is-rating-unfilled",color:u})),(0,r.createElement)("span",null,(0,r.createElement)(e,{className:p>=t?null:"is-rating-unfilled",color:u})))))),(0,r.createElement)(i.InspectorControls,null,(0,r.createElement)(s.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(s.RangeControl,{label:__("Highest rating","jetpack"),value:d,onChange:e=>o({maxRating:e}),min:2,max:10}),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!0,colorSettings:[{value:u,onChange:e=>o({color:e}),label:__("Color","jetpack")}]}))))}},9615:function(e,t,n){"use strict";n.d(t,{d:function(){return o},r:function(){return i}});var r=n(69307),a=n(55609);const o=()=>(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(a.Path,{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4V6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"})),i=e=>{const t=(e=>e&&e.color?e.color:"currentColor")(e),n=(e=>e&&e.className?e.className:"")(e);return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",color:t},(0,r.createElement)(a.Path,{className:n,fill:t,stroke:t,d:"M12,17.3l6.2,3.7l-1.6-7L22,9.2l-7.2-0.6L12,2L9.2,8.6L2,9.2L7.5,14l-1.6,7L12,17.3z"}))}},84807:function(e,t,n){"use strict";n.d(t,{u:function(){return l},X:function(){return c}});var r=n(65736),a=n(96440),o=n(2027),i=n(9615),s=n(57535);const __=r.__,_x=r._x,l="rating-star",c={title:__("Star Rating","jetpack"),description:__("Rate movies, books, songs, recipes — anything you can put a number on.","jetpack"),icon:{src:i.d,foreground:(0,s.m)()},keywords:[_x("star","block search term","jetpack"),_x("rating","block search term","jetpack"),_x("review","block search term","jetpack")],category:"widgets",example:{},styles:[{name:"filled",label:_x("Filled","block style","jetpack"),isDefault:!0},{name:"outlined",label:_x("Outlined","block style","jetpack")}],attributes:{rating:{type:"number",default:1},maxRating:{type:"number",default:5},color:{type:"string"},align:{type:"string",default:"left"}},edit:(0,a.Z)(i.r),save:(0,o.Z)("★")}},2027:function(e,t,n){"use strict";var r=n(69307),a=n(92819);t.Z=e=>function(t){let{className:n,attributes:{align:o,rating:i,color:s}}=t;return(0,r.createElement)("figure",{className:n,style:{textAlign:o}},(0,a.range)(1,i+1).map((t=>(0,r.createElement)("span",{key:t,style:{color:s}},e))))}},79642:function(e,t,n){"use strict";n.d(t,{G:function(){return u},J:function(){return p}});var r=n(69307),a=n(65736),o=n(55609),i=n(51591),s=n(48721),l=n(4235),c=n(37930);const __=a.__;function u(e){let{attributes:{planId:t},products:n,setMembershipAmount:a}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Payment plan","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Payment plan","jetpack"),value:t,onChange:e=>a(e),options:n.map((e=>({label:(0,s.C)(e),value:e.id,key:e.id})))})),(0,r.createElement)(o.PanelBody,{title:__("Management","jetpack")},(0,r.createElement)(o.ExternalLink,{href:`https://wordpress.com/earn/payments/${(0,l.Z)()}`},__("See your earnings, subscriber list, and payment plans.","jetpack"))))}function p(e){let{connected:t,connectURL:n,hasUpgradeNudge:a,shouldUpgrade:s}=e;const{autosaveAndRedirect:l}=(0,c.Z)(n);return(0,r.createElement)(r.Fragment,null,!a&&!s&&!t&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarButton,{icon:i.Pw,onClick:l,className:"connect-stripe components-tab-button"},__("Connect Stripe","jetpack"))))}},2235:function(e,t,n){"use strict";var r=n(92819),a=n(4981);const o=["submitButtonText","submitButtonClasses","backgroundButtonColor","textButtonColor","customBackgroundButtonColor","customTextButtonColor"];t.Z={attributes:{planId:{type:"integer"},submitButtonText:{type:"string"},submitButtonClasses:{type:"string"},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},align:{type:"string"}},migrate:e=>{const t=(0,r.omit)(e,o),n={text:(i=e).submitButtonText,textColor:i.textButtonColor,customTextColor:i.customTextButtonColor,backgroundColor:i.backgroundButtonColor,customBackgroundColor:i.customBackgroundButtonColor};var i;return[t,[(0,a.createBlock)("jetpack/button",{element:"a",uniqueId:"recurring-payments-id",...n})]]},isEligible:(e,t)=>(0,r.isEmpty)(t)||(0,r.some)((0,r.pick)(e,o),Boolean),save:()=>null}},39035:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(86989),c=n.n(l),u=n(65736),p=n(78850),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(92694),b=n(21409),v=n(17882),k=n(2368),y=n(82163),E=n(79642),w=n(48721);const __=u.__;class _ extends o.Component{constructor(){super(...arguments),a()(this,"componentDidMount",(()=>{this.apiCall()})),a()(this,"onError",(e=>{const{noticeOperations:t}=this.props;t.removeAllNotices(),t.createErrorNotice(e)})),a()(this,"apiCall",(()=>{const e={path:"/wpcom/v2/memberships/status",method:"GET"};c()(e).then((e=>{if(e.errors&&Object.values(e.errors)&&Object.values(e.errors)[0][0])return this.setState({connected:null,connectURL:2}),void this.onError(Object.values(e.errors)[0][0]);const{connect_url:t,products:n,should_upgrade_to_access_memberships:r,upgrade_url:a}=e,o=e.connected_account_id?1:2;this.setState({connected:o,connectURL:t,shouldUpgrade:r,upgradeURL:a,products:(0,y.ME)(n)})}),(e=>{this.setState({connected:2,connectURL:null}),this.onError(e.message)}))})),a()(this,"handleCurrencyChange",(e=>{let t=this.state.editedProductPrice;(0,v.vs)(e,t)||(t=(0,w.w)((0,v.hj)(e),e)),this.setState({editedProductCurrency:e,editedProductPrice:t,editedProductPriceValid:!0})})),a()(this,"handleRenewIntervalChange",(e=>this.setState({editedProductRenewInterval:e}))),a()(this,"handlePriceChange",(e=>{const t=parseFloat(e),n=(0,v.vs)(this.state.editedProductCurrency,t);this.setState({editedProductPrice:t,editedProductPriceValid:n})})),a()(this,"handleTitleChange",(e=>this.setState({editedProductTitle:e,editedProductTitleValid:e.length>0}))),a()(this,"saveProduct",(()=>{if(!this.state.editedProductTitle||0===this.state.editedProductTitle.length)return void this.setState({editedProductTitleValid:!1});if(!this.state.editedProductPrice||!(0,v.vs)(this.state.editedProductCurrency,this.state.editedProductPrice))return void this.setState({editedProductPriceValid:!1});this.setState({addingMembershipAmount:2});const e={path:"/wpcom/v2/memberships/product",method:"POST",data:{currency:this.state.editedProductCurrency,price:this.state.editedProductPrice,title:this.state.editedProductTitle,interval:this.state.editedProductRenewInterval}};c()(e).then((e=>{this.setState({addingMembershipAmount:0,products:this.state.products.concat([{id:e.id,title:e.title,interval:e.interval,price:e.price,currency:e.currency}])}),this.setMembershipAmount(e.id)}),(e=>{this.setState({addingMembershipAmount:1}),this.onError(e.message)}))})),a()(this,"renderAddMembershipAmount",(e=>{if(0===this.state.addingMembershipAmount&&!e)return(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,onClick:()=>this.setState({addingMembershipAmount:1})},__("Add a payment plan","jetpack"));if(2===this.state.addingMembershipAmount)return;const t=(0,p.ZP)((0,v.hj)(this.state.editedProductCurrency),this.state.editedProductCurrency),n=(0,u.sprintf)(
+/* translators: placeholder is a price. */
+__("Minimum allowed price is %s.","jetpack"),t);return(0,o.createElement)("div",null,(0,o.createElement)("div",{className:"membership-button__price-container"},(0,o.createElement)(h.SelectControl,{className:"membership-button__field membership-button__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:v.Xy,value:this.state.editedProductCurrency}),(0,o.createElement)("div",{className:"membership-membership-button__field membership-button__field-price"},(0,o.createElement)(h.TextControl,{label:__("Price","jetpack"),className:s()({"membership-button__field-error":!this.state.editedProductPriceValid}),onChange:this.handlePriceChange,placeholder:t,required:!0,min:"0",step:"1",type:"number",value:this.state.editedProductPrice||""}),(0,o.createElement)("p",null,n))),(0,o.createElement)(h.TextControl,{className:s()({"membership-button__field":!0,"membership-button__field-error":!this.state.editedProductTitleValid}),label:__("Describe your subscription in a few words","jetpack"),onChange:this.handleTitleChange,placeholder:__("Subscription description","jetpack"),value:this.state.editedProductTitle}),(0,o.createElement)(h.SelectControl,{label:__("Renew interval","jetpack"),onChange:this.handleRenewIntervalChange,options:[{label:__("Monthly","jetpack"),value:"1 month"},{label:__("Yearly","jetpack"),value:"1 year"},{label:__("One-Time Payment","jetpack"),value:"one-time"}],value:this.state.editedProductRenewInterval}),(0,o.createElement)("div",null,(0,o.createElement)(h.Button,{isPrimary:!0,isLarge:!0,className:"membership-button__field-button membership-button__add-amount",onClick:this.saveProduct},__("Add this payment plan","jetpack")),(0,o.createElement)(h.Button,{isLarge:!0,className:"membership-button__field-button",onClick:()=>this.setState({addingMembershipAmount:0})},__("Cancel","jetpack"))))})),a()(this,"getFormattedPriceByProductId",(e=>{const t=this.state.products.filter((t=>parseInt(t.id)===parseInt(e))).pop();return(0,p.ZP)(parseFloat(t.price),t.currency)})),a()(this,"setMembershipAmount",(e=>{const{innerButtons:t,updateBlockAttributes:n,setAttributes:r}=this.props,a=this.props.attributes.planId,o=(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(e)),i=a?(0,u.sprintf)(
+/* translators: placeholder is an amount of money. */
+__("%s contribution","jetpack"),this.getFormattedPriceByProductId(a)):void 0;return t&&t.length&&t[0].innerBlocks.forEach((e=>{const t=e.attributes.text,r=t===i?o:t;n(e.clientId,{text:r})})),r({planId:parseInt(e)})})),a()(this,"renderMembershipAmounts",(()=>(0,o.createElement)("div",null,this.state.products.map((e=>(0,o.createElement)(h.Button,{className:"membership-button__field-button",isLarge:!0,isSecondary:!0,key:e.id,onClick:()=>this.setMembershipAmount(e.id)},(0,w.C)(e))))))),a()(this,"renderDisclaimer",(()=>(0,o.createElement)("div",{className:"membership-button__disclaimer"},(0,o.createElement)(h.ExternalLink,{href:"https://wordpress.com/support/wordpress-editor/blocks/payments/#related-fees"},__("Read more about Payments and related fees.","jetpack"))))),a()(this,"renderUpgradeNudges",(()=>{const{notices:e}=this.props;return(0,o.createElement)(o.Fragment,null,!this.hasUpgradeNudge&&this.state.shouldUpgrade&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e,instructions:__("You'll need to upgrade your plan to use the Payments block.","jetpack")},(0,o.createElement)(h.Button,{isSecondary:!0,isLarge:!0,href:this.state.upgradeURL,target:"_blank"},__("Upgrade your plan","jetpack")),this.renderDisclaimer())))})),a()(this,"renderPlanNotices",(()=>{const{notices:e}=this.props,{connected:t,products:n}=this.state;return(0,o.createElement)(o.Fragment,null,(0===t||2===this.state.addingMembershipAmount)&&!this.props.attributes.planId&&(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),notices:e},(0,o.createElement)(h.Spinner,null)),!this.state.shouldUpgrade&&!this.props.attributes.planId&&1===t&&0===n.length&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, first add at least one payment plan.","jetpack")),this.renderAddMembershipAmount(!0),this.renderDisclaimer()))),!this.state.shouldUpgrade&&!this.props.attributes.planId&&2!==this.state.addingMembershipAmount&&1===t&&n.length>0&&(0,o.createElement)("div",{className:"wp-block-jetpack-recurring-payments"},(0,o.createElement)(h.Placeholder,{icon:(0,o.createElement)(f.BlockIcon,{icon:y.qv}),label:__("Payments","jetpack"),notices:e},(0,o.createElement)("div",{className:"components-placeholder__instructions"},(0,o.createElement)("p",null,__("To use this block, select a previously created payment plan.","jetpack")),this.renderMembershipAmounts(),(0,o.createElement)("p",null,__("Or a new one.","jetpack")),this.renderAddMembershipAmount(!1),this.renderDisclaimer()))))})),a()(this,"render",(()=>{const{connected:e,connectURL:t,products:n}=this.state,r=(0,g.applyFilters)("jetpack.RecurringPayments.showControls",n.length>0,this.props.clientId),a=(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{attributes:this.props.attributes,products:n,setMembershipAmount:this.setMembershipAmount})),i=(0,o.createElement)(f.BlockControls,null,(0,o.createElement)(E.J,{connected:2!==e,connectURL:(0,k.Z)(this.props.postId,t),hasUpgradeNudge:this.hasUpgradeNudge,shouldUpgrade:this.state.shouldUpgrade}));return(0,o.createElement)(o.Fragment,null,this.props.noticeUI,!this.isPremiumContentChild&&this.renderUpgradeNudges(),!this.isPremiumContentChild&&this.renderPlanNotices(),r&&a,i,(0,o.createElement)(f.InnerBlocks,{template:[["jetpack/button",{element:"a",uniqueId:"recurring-payments-id"}]],templateLock:"all",__experimentalCaptureToolbars:!0,templateInsertUpdatesSelection:!1}))})),this.state={connected:0,connectURL:null,addingMembershipAmount:0,shouldUpgrade:!1,upgradeURL:"",products:[],editedProductCurrency:"USD",editedProductPrice:(0,w.w)((0,v.hj)("USD"),"USD"),editedProductPriceValid:!0,editedProductTitle:"",editedProductTitleValid:!0,editedProductRenewInterval:"1 month"},this.timeout=null;const e=(0,b.Z)("recurring-payments");this.hasUpgradeNudge=!e.available&&"missing_plan"===e.unavailableReason,this.isPremiumContentChild=this.props.context.isPremiumContentChild||!1}}t.Z=(0,d.compose)([(0,m.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()}))),(0,m.withDispatch)((e=>{const{updateBlockAttributes:t}=e("core/editor");return{updateBlockAttributes:t,autosaveAndRedirect:async(t,n)=>{t.preventDefault(),await e("core/editor").savePost(),window.top.location.href=n}}})),h.withNotices])(_)},82163:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m},ME:function(){return h}});var r=n(69307),a=n(55609),o=n(52175),i=n(65736),s=n(57535),l=n(2235),c=n(39035),u=n(17882);const __=i.__,_x=i._x,p="recurring-payments",d=(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24"},(0,r.createElement)(a.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"}))),m={title:__("Payments","jetpack"),icon:{src:d,foreground:(0,s.m)()},description:__("Button allowing you to sell products and subscriptions.","jetpack"),category:"earn",keywords:[_x("sell","block search term","jetpack"),_x("subscriptions","block search term","jetpack"),_x("product","block search term","jetpack"),"stripe",_x("memberships","block search term","jetpack")],usesContext:["isPremiumContentChild"],attributes:{planId:{type:"integer"},align:{type:"string"}},edit:c.Z,save:e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(o.InnerBlocks.Content,null))},supports:{html:!1,align:!0},deprecated:[l.Z]};function h(e){return e.filter((e=>(0,u.vs)(e.currency,e.price)))}},48721:function(e,t,n){"use strict";n.d(t,{w:function(){return o},C:function(){return i}});var r=n(65736),a=n(78850);const __=r.__,o=(e,t)=>(0,a.ZP)(e,t,{decimal:".",symbol:""}),i=e=>{const t=(0,a.ZP)(parseFloat(e.price),e.currency);return"1 month"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / month","jetpack"),t):"1 year"===e.interval?(0,r.sprintf)(
+/* translators: placeholder is a price. */
+__("%s / year","jetpack"),t):"one-time"===e.interval?t:(0,r.sprintf)(
+/* translators: %1$s is a price, %2$s is a period (1 year for example) */
+__("%1$s / %2$s","jetpack"),t,e.interval)}},14823:function(e,t,n){"use strict";n.d(t,{Hj:function(){return i},AP:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__;function i(e){let{attributes:t,setAttributes:n}=e;const{displayContext:a,displayDate:i,displayThumbnails:s,postsToShow:l}=t;return(0,r.createElement)(o.PanelBody,{title:__("Related Posts Settings","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Display thumbnails","jetpack"),checked:s,onChange:e=>n({displayThumbnails:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display date","jetpack"),checked:i,onChange:e=>n({displayDate:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Display context (category or tag)","jetpack"),checked:a,onChange:e=>n({displayContext:e})}),(0,r.createElement)(o.RangeControl,{label:__("Number of posts","jetpack"),value:l,onChange:e=>n({postsToShow:Math.min(e,6)}),min:1,max:6}))}function s(e){let{attributes:t,setAttributes:n}=e;const{postLayout:a}=t,i=[{icon:"grid-view",title:__("Grid View","jetpack"),onClick:()=>n({postLayout:"grid"}),isActive:"grid"===a},{icon:"list-view",title:__("List View","jetpack"),onClick:()=>n({postLayout:"list"}),isActive:"list"===a}];return(0,r.createElement)(o.ToolbarGroup,{controls:i})}},31759:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(92819),l=n(9818),c=n(94333),u=n(14823);const __=a.__;function p(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("strong",{id:e.id+"-heading",className:"jp-related-posts-i2__post-link"},e.isInSiteEditor?__("Preview unavailable in site editor.","jetpack"):__("Preview unavailable: you haven't published enough posts with similar content.","jetpack")),e.displayThumbnails&&(0,r.createElement)("figure",{className:"jp-related-posts-i2__post-image-placeholder","aria-label":__("Placeholder image","jetpack")},(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-square",xmlns:"http://www.w3.org/2000/svg",width:"100%",height:"100%",viewBox:"0 0 350 200"},(0,r.createElement)("title",null,__("Grey square","jetpack")),(0,r.createElement)(i.Path,{d:"M0 0h350v200H0z",fill:"#8B8B96","fill-opacity":".1"})),(0,r.createElement)(i.SVG,{className:"jp-related-posts-i2__post-image-placeholder-icon",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)("title",null,__("Icon for image","jetpack")),(0,r.createElement)(i.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(i.Path,{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4.86 8.86l-3 3.87L9 13.14 6 17h12l-3.86-5.14z"}))),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},__("August 3, 2018","jetpack")),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},__("In “Uncategorized”","jetpack")))}function d(e){return(0,r.createElement)("div",{className:"jp-related-posts-i2__post",id:e.id,"aria-labelledby":e.id+"-heading"},(0,r.createElement)("a",{className:"jp-related-posts-i2__post-link",id:e.id+"-heading",href:e.post.url,rel:"nofollow noopener noreferrer",target:"_blank"},e.post.title),e.displayThumbnails&&e.post.img&&e.post.img.src&&(0,r.createElement)("a",{className:"jp-related-posts-i2__post-img-link",href:e.post.url},(0,r.createElement)("img",{className:"jp-related-posts-i2__post-img",src:e.post.img.src,alt:e.post.title,rel:"nofollow noopener noreferrer",target:"_blank"})),e.displayDate&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-date has-small-font-size"},e.post.date),e.displayContext&&(0,r.createElement)("div",{className:"jp-related-posts-i2__post-context has-small-font-size"},e.post.context))}function m(e){const t="jp-related-posts-i2__row";let n=0;const a=e.posts.length>3;switch(e.posts.length){case 2:case 4:case 5:n=2;break;default:n=3}return(0,r.createElement)("div",null,(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(0,n).length},e.posts.slice(0,n)),a&&(0,r.createElement)("div",{className:t,"data-post-count":e.posts.slice(n).length},e.posts.slice(n)))}class h extends r.Component{render(){const{attributes:e,className:t,posts:n,setAttributes:a,instanceId:i,isInSiteEditor:s}=this.props,{displayContext:l,displayDate:c,displayThumbnails:h,postLayout:f,postsToShow:g}=e,b="jp-relatedposts-i2",v=[];for(let e=0;e<g;e++)n[e]?v.push((0,r.createElement)(d,{id:`related-posts-${i}-post-${e}`,key:b+"-"+e,post:n[e],displayThumbnails:h,displayDate:c,displayContext:l})):v.push((0,r.createElement)(p,{id:`related-posts-${i}-post-${e}`,key:"related-post-placeholder-"+e,displayThumbnails:h,displayDate:c,displayContext:l,isInSiteEditor:s}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(u.Hj,{attributes:e,setAttributes:a})),(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(u.AP,{attributes:e,setAttributes:a})),(0,r.createElement)("div",{className:t,id:`related-posts-${i}`},(0,r.createElement)("div",{className:b,"data-layout":f},(0,r.createElement)(m,{posts:v}))))}}t.ZP=(0,c.compose)(c.withInstanceId,(0,l.withSelect)((e=>{const{getCurrentPost:t}=e("core/editor"),n=t();return{posts:(0,s.get)(n,"jetpack-related-posts",[]),isInSiteEditor:(0,s.isEmpty)(n)}})))(h)},32051:function(e,t,n){"use strict";n.d(t,{u2:function(){return l},Xd:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(31759),s=n(57535);const __=a.__,_x=a._x,l="related-posts",c=(0,r.createElement)(o.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.G,{stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"},(0,r.createElement)(o.Path,{d:"M4,4 L4,19 M4,4 L19,4 M4,9 L19,9 M4,14 L19,14 M4,19 L19,19 M9,4 L9,19 M19,4 L19,19"}))),u={title:__("Related Posts","jetpack"),icon:{src:c,foreground:(0,s.m)()},category:"embed",keywords:[_x("similar content","block search term","jetpack"),_x("linked","block search term","jetpack"),_x("connected","block search term","jetpack")],attributes:{postLayout:{type:"string",default:"grid"},displayDate:{type:"boolean",default:!0},displayThumbnails:{type:"boolean",default:!1},displayContext:{type:"boolean",default:!1},postsToShow:{type:"number",default:3}},supports:{html:!1,multiple:!1,reusable:!1},transforms:{from:[{type:"shortcode",tag:"jetpack-related-posts"}]},edit:i.ZP,save:()=>null,example:{attributes:{postLayout:"grid",displayDate:!0,displayThumbnails:!0,displayContext:!1,postsToShow:2}}}},35978:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(52175),c=n(9818),u=n(89105),p=n.n(u),d=n(46314),m=n(57368);const __=i.__,_n=i._n,h=[{value:d.FV,label:__("Show after threshold","jetpack")},{value:d.Am,label:__("Show before threshold","jetpack")}];class f extends o.Component{constructor(){super(...arguments),a()(this,"state",{isThresholdValid:!0}),a()(this,"setCriteria",(e=>this.props.setAttributes({criteria:e}))),a()(this,"setThreshold",(e=>{if(/^\d+$/.test(e)&&+e>0)return this.props.setAttributes({threshold:+e}),void this.setState({isThresholdValid:!0});this.setState({isThresholdValid:!1})}))}getNoticeLabel(){return this.props.attributes.criteria===d.FV?1===this.props.attributes.threshold?__("This block will only appear to people who have visited this page more than once.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who have visited this page more than %d time.","This block will only appear to people who have visited this page more than %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold):1===this.props.attributes.threshold?__("This block will only appear to people who are visiting this page for the first time.","jetpack"):(0,i.sprintf)(
+/* translators: placeholder is a number. */
+_n("This block will only appear to people who are visiting this page for %d time.","This block will only appear to people who have visited this page at most %d times.",+this.props.attributes.threshold,"jetpack"),this.props.attributes.threshold)}render(){return(0,o.createElement)("div",{className:p()(this.props.className,{"wp-block-jetpack-repeat-visitor--is-unselected":!this.props.isSelected})},(0,o.createElement)(s.Placeholder,{icon:m.qv,label:__("Repeat Visitor","jetpack"),className:"wp-block-jetpack-repeat-visitor-placeholder"},(0,o.createElement)(s.TextControl,{className:"wp-block-jetpack-repeat-visitor-threshold",defaultValue:this.props.attributes.threshold,help:this.state.isThresholdValid?"":__("Please enter a valid number.","jetpack"),label:__("Visit count threshold","jetpack"),min:"1",onChange:this.setThreshold,pattern:"[0-9]",type:"number"}),(0,o.createElement)(s.RadioControl,{label:__("Visibility","jetpack"),selected:this.props.attributes.criteria,options:h,onChange:this.setCriteria})),(0,o.createElement)(s.Notice,{status:"info",isDismissible:!1},this.getNoticeLabel()),(0,o.createElement)(l.InnerBlocks,null))}}t.Z=(0,c.withSelect)(((e,t)=>{const{isBlockSelected:n,hasSelectedInnerBlock:r}=e("core/block-editor");return{isSelected:n(t.clientId)||r(t.clientId)}}))(f)},42860:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks.Content,null))}},46314:function(e,t,n){"use strict";n.d(t,{FV:function(){return r},Am:function(){return a},Kv:function(){return o}});const r="after-visits",a="before-visits",o=3},57368:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},qv:function(){return d},Xd:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(41632),s=n(35978),l=n(42860),c=n(46314),u=n(57535);const __=a.__,_x=a._x,p="repeat-visitor",d=(0,i.Z)((0,r.createElement)(o.Path,{d:"M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"})),m={attributes:{criteria:{type:"string",default:c.FV},threshold:{type:"number",default:c.Kv}},category:"widgets",description:__("Control block visibility based on how often a visitor has viewed the page.","jetpack"),icon:{src:d,foreground:(0,u.m)()},keywords:[_x("return","block search term","jetpack"),_x("visitors","block search term","jetpack"),_x("visibility","block search term","jetpack")],supports:{html:!1},title:__("Repeat Visitor","jetpack"),edit:s.Z,save:l.Z,example:{attributes:{criteria:c.FV,threshold:c.Kv},innerBlocks:[{name:"core/paragraph",attributes:{content:__("This block will only appear to a visitor who visited the page three or more times.","jetpack")}}]}}},92826:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={revueUsername:{type:"string"},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0}}},26246:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(4981),i=n(65736);const _x=i._x,__=i.__,s=["text","backgroundColor","textColor","customBackgroundColor","customTextColor","borderRadius","gradient","customGradient"];t.Z={attributes:{revueUsername:{type:"string"},text:{type:"string",default:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")},emailLabel:{type:"string",default:__("Email address","jetpack")},emailPlaceholder:{type:"string",default:__("Enter your email address","jetpack")},firstNameLabel:{type:"string",default:__("First name","jetpack")},firstNamePlaceholder:{type:"string",default:__("Enter your first name","jetpack")},firstNameShow:{type:"boolean",default:!0},lastNameLabel:{type:"string",default:__("Last name","jetpack")},lastNamePlaceholder:{type:"string",default:__("Enter your last name","jetpack")},lastNameShow:{type:"boolean",default:!0},backgroundColor:{type:"string"},textColor:{type:"string"},customBackgroundColor:{type:"string"},customTextColor:{type:"string"},borderRadius:{type:"number"},gradient:{type:"string"},customGradient:{type:"string"}},migrate:e=>{const t=(0,a.omit)(e,s),n=(0,a.pick)(e,s);return[t,[(0,o.createBlock)("jetpack/button",{element:"button",text:n.text||"Subscribe",...n})]]},isEligible:(e,t)=>(0,a.isEmpty)(t)||(0,a.some)((0,a.pick)(e,s),Boolean),save:e=>{let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)("a",{href:n},n))}}},55380:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(92819),o=n(52175),i=n(55609),s=n(65736),l=n(8223),c=n(92826),u=n(80500),p=n(93641),d=n(14087),m=n(58014);const __=s.__;function h(e){let{attributes:t,className:n,setAttributes:s}=e;(0,r.useEffect)((()=>{const e=(0,d.S)(c.Z,t);(0,a.isEqual)(e,t)||s(e)}),[t,s]);const{revueUsername:h,emailLabel:f,emailPlaceholder:g,firstNameLabel:b,firstNamePlaceholder:v,firstNameShow:k,lastNameLabel:y,lastNamePlaceholder:E,lastNameShow:w}=t,[_,C]=(0,r.useState)("");(0,r.useEffect)((()=>{!_&&h&&C(h)}),[]);const j=(0,m.Wp)()||(0,m.Ug)()?"http://support.wordpress.com/wordpress-editor/blocks/revue-block/":"https://jetpack.com/support/jetpack-blocks/revue-block/";return(0,r.createElement)("div",{className:n},!h&&(0,r.createElement)(i.Placeholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:p.Z}),instructions:__("Enter your Revue username.","jetpack"),label:__("Revue","jetpack")},(0,r.createElement)("form",{onSubmit:e=>{e.preventDefault(),s({revueUsername:_.trim()})}},(0,r.createElement)("input",{className:"components-placeholder__input",onChange:e=>C(e.target.value.trim()),placeholder:__("Enter your Revue username here…","jetpack"),type:"text",value:_}),(0,r.createElement)("div",null,(0,r.createElement)(i.Button,{disabled:!_,isDefault:!0,isLarge:!0,isSecondary:!0,type:"submit"},__("Add Form","jetpack")))),(0,r.createElement)("div",{className:"components-placeholder__learn-more"},(0,r.createElement)(i.ExternalLink,{href:j},__("Need help finding your Revue username?","jetpack")))),h&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.InspectorControls,null,(0,r.createElement)(i.PanelBody,{title:__("Settings","jetpack")},(0,r.createElement)(i.ToggleControl,{label:__("Show first name field.","jetpack"),checked:k,onChange:()=>s({firstNameShow:!k})}),(0,r.createElement)(i.ToggleControl,{label:__("Show last name field.","jetpack"),checked:w,onChange:()=>s({lastNameShow:!w})}),(0,r.createElement)(i.TextControl,{label:__("Revue Username","jetpack"),onChange:e=>{C(e.trim()),s({revueUsername:e.trim()})},value:h}))),(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:f,labelFieldName:"emailLabel",required:!0,setAttributes:s}),onChange:e=>s({emailPlaceholder:e}),placeholder:g,value:g}),k&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:b,labelFieldName:"firstNameLabel",setAttributes:s}),onChange:e=>s({firstNamePlaceholder:e}),placeholder:v,value:v}),w&&(0,r.createElement)(i.TextControl,{label:(0,r.createElement)(u.Z,{label:y,labelFieldName:"lastNameLabel",setAttributes:s}),onChange:e=>s({lastNamePlaceholder:e}),placeholder:E,value:E}),(0,r.createElement)(o.InnerBlocks,{template:[[l.Ss.name,l.Ss.attributes]],templateLock:"all"})))}},93641:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=(0,r.createElement)(a.SVG,{width:"24px",height:"24px",viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.G,{fillRule:"nonzero"},(0,r.createElement)(a.Path,{d:"M16.8452322,23.2301186 C13.9471277,22.2565366 12.0226052,20.2188069 10.6188359,16.5961763 C10.2565728,15.6225943 9.87166831,14.4905223 9.80374399,14.1056178 C9.66789534,13.4037331 9.6452539,13.3810917 8.96601067,13.6075061 C7.8792215,13.9697691 7.76601429,14.1282592 7.35846835,15.758443 C6.724508,18.2490015 6.45281071,18.7244718 5.56979451,18.8829619 C5.09432424,18.9735276 4.5735711,18.9282447 4.27923236,18.7697547 C3.84904498,18.5433402 3.8037621,18.3848502 3.93961075,17.501834 C4.00753507,16.9584394 4.41508101,15.3056142 4.82262695,13.8339205 C5.8414918,10.2792143 6.11318909,8.98865211 6.29432062,7.1094125 C6.43016927,5.63771883 6.47545215,5.50187018 7.08677106,5.20753145 C7.92450438,4.79998551 8.80752058,5.09432424 9.19242508,5.88677468 C9.44148093,6.38488639 9.39619805,6.90563953 8.96601067,8.98865211 C8.67167193,10.3924215 8.51318185,11.5244935 8.62638905,11.5244935 C9.12450076,11.5244935 11.2754377,10.2565728 12.0452467,9.50940525 C13.8339205,7.83393861 14.2641079,5.77356748 13.2905259,3.82640354 C12.5886412,2.4226342 11.6150593,1.94716393 9.78110255,2.08301258 C6.97356385,2.28678555 4.43772245,4.25659092 3.01131166,7.35846835 C2.21886123,9.05657643 2.19621978,9.07921787 1.49433511,8.94336923 C-1.74339096,8.28676744 0.63396035,3.39621616 5.29809721,1.19999638 C8.39997464,-0.294338734 11.5018521,-0.362263057 14.0829764,0.950940525 C17.0716466,2.51319996 18.0225871,5.93205756 16.2791961,8.96601067 C15.5999529,10.1433656 14.2641079,11.3886449 12.9509043,12.0678881 C12.5433584,12.2716611 12.2037367,12.5207169 12.2037367,12.6339241 C12.2037367,12.9509043 13.2678845,15.9395745 13.6301475,16.6641006 C14.3093908,17.9773042 16.2339133,19.8112609 17.4565511,20.377297 C18.8829619,21.0112573 21.4640861,21.0791816 23.0263456,20.5131456 L23.9772861,20.1508826 L23.9772861,20.7169186 C23.9772861,21.5320105 23.3433258,22.3471023 22.3018195,22.8904969 C21.147106,23.4791744 18.1584357,23.6603059 16.8452322,23.2301186 Z"})))},8223:function(e,t,n){"use strict";n.d(t,{Ss:function(){return u},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(92826),o=n(26246),i=n(55380),s=n(93641),l=n(57535),c=n(12628);const __=r.__,_x=r._x,u={name:"jetpack/button",attributes:{element:"button",text:_x("Subscribe","verb: e.g. subscribe to a newsletter.","jetpack")}},p="revue",d={title:__("Revue","jetpack"),description:__("Add a subscription form for your Revue newsletter.","jetpack"),icon:{src:s.Z,foreground:(0,l.m)()},category:"grow",keywords:[_x("email","block search term","jetpack"),_x("subscription","block search term","jetpack"),_x("newsletter","block search term","jetpack"),_x("mailing list","block search term","jetpack")],supports:{html:!1},attributes:a.Z,edit:i.Z,save:c.Z,example:{attributes:{revueUsername:"example"},innerBlocks:[u]},deprecated:[o.Z]}},12628:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:{revueUsername:t}}=e;const n=`https://www.getrevue.co/profile/${t}`;return(0,r.createElement)("div",null,(0,r.createElement)(a.InnerBlocks.Content,null),(0,r.createElement)("a",{className:"wp-block-jetpack-revue__fallback",href:n},n))}},37161:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{className:t}=e;return(0,r.createElement)("div",{className:t},(0,r.createElement)(a.InnerBlocks,{template:[["jetpack/whatsapp-button",{}]],allowedBlocks:["jetpack/whatsapp-button"]}))}},93636:function(e,t,n){"use strict";n.d(t,{u2:function(){return p},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(52175),i=n(55609),s=n(37161),l=n(1720),c=n(41632),u=n(57535);const __=a.__,_x=a._x,p="send-a-message",d={title:__("Send A Message","jetpack"),description:__("Let your visitors send you messages with the tap of a button.","jetpack"),icon:{src:(0,c.Z)((0,r.createElement)(i.Path,{d:"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"})),foreground:(0,u.m)()},category:"grow",keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1},attributes:{},edit:s.Z,save:e=>(0,r.createElement)("div",{className:e.className},(0,r.createElement)(o.InnerBlocks.Content,null)),variations:l.Z,example:{}}},64566:function(e,t,n){"use strict";n.d(t,{n:function(){return r}});const r=[{code:"US",label:"🇺🇸 +1",value:"1US"},{code:"CA",label:"🇨🇦 +1",value:"1CA"},{code:"BS",label:"🇧🇸 +1242",value:"1242BS"},{code:"BB",label:"🇧🇧 +1246",value:"1246BB"},{code:"AI",label:"🇦🇮 +1264",value:"1264AI"},{code:"AG",label:"🇦🇬 +1268",value:"1268AG"},{code:"VG",label:"🇻🇬 +1284",value:"1284VG"},{code:"VI",label:"🇻🇮 +1340",value:"1340VI"},{code:"BM",label:"🇧🇲 +1441",value:"1441BM"},{code:"GD",label:"🇬🇩 +1473",value:"1473GD"},{code:"TC",label:"🇹🇨 +1649",value:"1649TC"},{code:"MS",label:"🇲🇸 +1664",value:"1664MS"},{code:"MP",label:"🇲🇵 +1670",value:"1670MP"},{code:"GU",label:"🇬🇺 +1671",value:"1671GU"},{code:"AS",label:"🇦🇸 +1684",value:"1684AS"},{code:"LC",label:"🇱🇨 +1758",value:"1758LC"},{code:"DM",label:"🇩🇲 +1767",value:"1767DM"},{code:"VC",label:"🇻🇨 +1784",value:"1784VC"},{code:"DO",label:"🇩🇴 +1849",value:"1849DO"},{code:"TT",label:"🇹🇹 +1868",value:"1868TT"},{code:"KN",label:"🇰🇳 +1869",value:"1869KN"},{code:"JM",label:"🇯🇲 +1876",value:"1876JM"},{code:"PR",label:"🇵🇷 +1939",value:"1939PR"},{code:"EG",label:"🇪🇬 +20",value:"20EG"},{code:"MA",label:"🇲🇦 +212",value:"212MA"},{code:"DZ",label:"🇩🇿 +213",value:"213DZ"},{code:"TN",label:"🇹🇳 +216",value:"216TN"},{code:"LY",label:"🇱🇾 +218",value:"218LY"},{code:"GM",label:"🇬🇲 +220",value:"220GM"},{code:"SN",label:"🇸🇳 +221",value:"221SN"},{code:"MR",label:"🇲🇷 +222",value:"222MR"},{code:"ML",label:"🇲🇱 +223",value:"223ML"},{code:"GN",label:"🇬🇳 +224",value:"224GN"},{code:"CI",label:"🇨🇮 +225",value:"225CI"},{code:"BF",label:"🇧🇫 +226",value:"226BF"},{code:"NE",label:"🇳🇪 +227",value:"227NE"},{code:"TG",label:"🇹🇬 +228",value:"228TG"},{code:"BJ",label:"🇧🇯 +229",value:"229BJ"},{code:"MU",label:"🇲🇺 +230",value:"230MU"},{code:"LR",label:"🇱🇷 +231",value:"231LR"},{code:"SL",label:"🇸🇱 +232",value:"232SL"},{code:"GH",label:"🇬🇭 +233",value:"233GH"},{code:"NG",label:"🇳🇬 +234",value:"234NG"},{code:"TD",label:"🇹🇩 +235",value:"235TD"},{code:"CF",label:"🇨🇫 +236",value:"236CF"},{code:"CM",label:"🇨🇲 +237",value:"237CM"},{code:"CV",label:"🇨🇻 +238",value:"238CV"},{code:"ST",label:"🇸🇹 +239",value:"239ST"},{code:"GQ",label:"🇬🇶 +240",value:"240GQ"},{code:"GA",label:"🇬🇦 +241",value:"241GA"},{code:"CG",label:"🇨🇬 +242",value:"242CG"},{code:"CD",label:"🇨🇩 +243",value:"243CD"},{code:"AO",label:"🇦🇴 +244",value:"244AO"},{code:"GW",label:"🇬🇼 +245",value:"245GW"},{code:"IO",label:"🇮🇴 +246",value:"246IO"},{code:"SC",label:"🇸🇨 +248",value:"248SC"},{code:"SD",label:"🇸🇩 +249",value:"249SD"},{code:"RW",label:"🇷🇼 +250",value:"250RW"},{code:"ET",label:"🇪🇹 +251",value:"251ET"},{code:"SO",label:"🇸🇴 +252",value:"252SO"},{code:"DJ",label:"🇩🇯 +253",value:"253DJ"},{code:"KE",label:"🇰🇪 +254",value:"254KE"},{code:"TZ",label:"🇹🇿 +255",value:"255TZ"},{code:"UG",label:"🇺🇬 +256",value:"256UG"},{code:"BI",label:"🇧🇮 +257",value:"257BI"},{code:"MZ",label:"🇲🇿 +258",value:"258MZ"},{code:"ZM",label:"🇿🇲 +260",value:"260ZM"},{code:"MG",label:"🇲🇬 +261",value:"261MG"},{code:"YT",label:"🇾🇹 +262",value:"262YT"},{code:"RE",label:"🇷🇪 +262",value:"262RE"},{code:"ZW",label:"🇿🇼 +263",value:"263ZW"},{code:"NA",label:"🇳🇦 +264",value:"264NA"},{code:"MW",label:"🇲🇼 +265",value:"265MW"},{code:"LS",label:"🇱🇸 +266",value:"266LS"},{code:"BW",label:"🇧🇼 +267",value:"267BW"},{code:"SZ",label:"🇸🇿 +268",value:"268SZ"},{code:"KM",label:"🇰🇲 +269",value:"269KM"},{code:"ZA",label:"🇿🇦 +27",value:"27ZA"},{code:"SH",label:"🇸🇭 +290",value:"290SH"},{code:"ER",label:"🇪🇷 +291",value:"291ER"},{code:"AW",label:"🇦🇼 +297",value:"297AW"},{code:"FO",label:"🇫🇴 +298",value:"298FO"},{code:"GL",label:"🇬🇱 +299",value:"299GL"},{code:"GR",label:"🇬🇷 +30",value:"30GR"},{code:"NL",label:"🇳🇱 +31",value:"31NL"},{code:"BE",label:"🇧🇪 +32",value:"32BE"},{code:"FR",label:"🇫🇷 +33",value:"33FR"},{code:"ES",label:"🇪🇸 +34",value:"34ES"},{code:"KY",label:"🇰🇾 +345",value:"345KY"},{code:"GI",label:"🇬🇮 +350",value:"350GI"},{code:"PT",label:"🇵🇹 +351",value:"351PT"},{code:"LU",label:"🇱🇺 +352",value:"352LU"},{code:"IE",label:"🇮🇪 +353",value:"353IE"},{code:"IS",label:"🇮🇸 +354",value:"354IS"},{code:"AL",label:"🇦🇱 +355",value:"355AL"},{code:"MT",label:"🇲🇹 +356",value:"356MT"},{code:"CY",label:"🇨🇾 +357",value:"357CY"},{code:"FI",label:"🇫🇮 +358",value:"358FI"},{code:"BG",label:"🇧🇬 +359",value:"359BG"},{code:"HU",label:"🇭🇺 +36",value:"36HU"},{code:"LT",label:"🇱🇹 +370",value:"370LT"},{code:"LV",label:"🇱🇻 +371",value:"371LV"},{code:"EE",label:"🇪🇪 +372",value:"372EE"},{code:"MD",label:"🇲🇩 +373",value:"373MD"},{code:"AM",label:"🇦🇲 +374",value:"374AM"},{code:"BY",label:"🇧🇾 +375",value:"375BY"},{code:"AD",label:"🇦🇩 +376",value:"376AD"},{code:"MC",label:"🇲🇨 +377",value:"377MC"},{code:"SM",label:"🇸🇲 +378",value:"378SM"},{code:"VA",label:"🇻🇦 +379",value:"379VA"},{code:"UA",label:"🇺🇦 +380",value:"380UA"},{code:"RS",label:"🇷🇸 +381",value:"381RS"},{code:"ME",label:"🇲🇪 +382",value:"382ME"},{code:"XK",label:"🇽🇰 +383",value:"383XK"},{code:"HR",label:"🇭🇷 +385",value:"385HR"},{code:"SI",label:"🇸🇮 +386",value:"386SI"},{code:"BA",label:"🇧🇦 +387",value:"387BA"},{code:"MK",label:"🇲🇰 +389",value:"389MK"},{code:"IT",label:"🇮🇹 +39",value:"39IT"},{code:"RO",label:"🇷🇴 +40",value:"40RO"},{code:"CH",label:"🇨🇭 +41",value:"41CH"},{code:"CZ",label:"🇨🇿 +420",value:"420CZ"},{code:"SK",label:"🇸🇰 +421",value:"421SK"},{code:"LI",label:"🇱🇮 +423",value:"423LI"},{code:"AT",label:"🇦🇹 +43",value:"43AT"},{code:"IM",label:"🇮🇲 +44",value:"44IM"},{code:"GG",label:"🇬🇬 +44",value:"44GG"},{code:"JE",label:"🇯🇪 +44",value:"44JE"},{code:"GB",label:"🇬🇧 +44",value:"44GB"},{code:"DK",label:"🇩🇰 +45",value:"45DK"},{code:"SE",label:"🇸🇪 +46",value:"46SE"},{code:"NO",label:"🇳🇴 +47",value:"47NO"},{code:"SJ",label:"🇸🇯 +47",value:"47SJ"},{code:"PL",label:"🇵🇱 +48",value:"48PL"},{code:"DE",label:"🇩🇪 +49",value:"49DE"},{code:"FK",label:"🇫🇰 +500",value:"500FK"},{code:"GS",label:"🇬🇸 +500",value:"500GS"},{code:"BZ",label:"🇧🇿 +501",value:"501BZ"},{code:"GT",label:"🇬🇹 +502",value:"502GT"},{code:"SV",label:"🇸🇻 +503",value:"503SV"},{code:"HN",label:"🇭🇳 +504",value:"504HN"},{code:"NI",label:"🇳🇮 +505",value:"505NI"},{code:"CR",label:"🇨🇷 +506",value:"506CR"},{code:"PA",label:"🇵🇦 +507",value:"507PA"},{code:"PM",label:"🇵🇲 +508",value:"508PM"},{code:"HT",label:"🇭🇹 +509",value:"509HT"},{code:"PE",label:"🇵🇪 +51",value:"51PE"},{code:"MX",label:"🇲🇽 +52",value:"52MX"},{code:"CU",label:"🇨🇺 +53",value:"53CU"},{code:"AR",label:"🇦🇷 +54",value:"54AR"},{code:"BR",label:"🇧🇷 +55",value:"55BR"},{code:"CL",label:"🇨🇱 +56",value:"56CL"},{code:"CO",label:"🇨🇴 +57",value:"57CO"},{code:"VE",label:"🇻🇪 +58",value:"58VE"},{code:"BL",label:"🇧🇱 +590",value:"590BL"},{code:"MF",label:"🇲🇫 +590",value:"590MF"},{code:"GP",label:"🇬🇵 +590",value:"590GP"},{code:"BO",label:"🇧🇴 +591",value:"591BO"},{code:"GY",label:"🇬🇾 +592",value:"592GY"},{code:"EC",label:"🇪🇨 +593",value:"593EC"},{code:"GF",label:"🇬🇫 +594",value:"594GF"},{code:"PY",label:"🇵🇾 +595",value:"595PY"},{code:"MQ",label:"🇲🇶 +596",value:"596MQ"},{code:"SR",label:"🇸🇷 +597",value:"597SR"},{code:"UY",label:"🇺🇾 +598",value:"598UY"},{code:"MY",label:"🇲🇾 +60",value:"60MY"},{code:"CC",label:"🇨🇨 +61",value:"61CC"},{code:"AU",label:"🇦🇺 +61",value:"61AU"},{code:"CX",label:"🇨🇽 +61",value:"61CX"},{code:"ID",label:"🇮🇩 +62",value:"62ID"},{code:"PH",label:"🇵🇭 +63",value:"63PH"},{code:"NZ",label:"🇳🇿 +64",value:"64NZ"},{code:"SG",label:"🇸🇬 +65",value:"65SG"},{code:"TH",label:"🇹🇭 +66",value:"66TH"},{code:"TL",label:"🇹🇱 +670",value:"670TL"},{code:"NF",label:"🇳🇫 +672",value:"672NF"},{code:"BN",label:"🇧🇳 +673",value:"673BN"},{code:"NR",label:"🇳🇷 +674",value:"674NR"},{code:"PG",label:"🇵🇬 +675",value:"675PG"},{code:"TO",label:"🇹🇴 +676",value:"676TO"},{code:"SB",label:"🇸🇧 +677",value:"677SB"},{code:"VU",label:"🇻🇺 +678",value:"678VU"},{code:"FJ",label:"🇫🇯 +679",value:"679FJ"},{code:"PW",label:"🇵🇼 +680",value:"680PW"},{code:"WF",label:"🇼🇫 +681",value:"681WF"},{code:"CK",label:"🇨🇰 +682",value:"682CK"},{code:"NU",label:"🇳🇺 +683",value:"683NU"},{code:"WS",label:"🇼🇸 +685",value:"685WS"},{code:"KI",label:"🇰🇮 +686",value:"686KI"},{code:"NC",label:"🇳🇨 +687",value:"687NC"},{code:"TV",label:"🇹🇻 +688",value:"688TV"},{code:"PF",label:"🇵🇫 +689",value:"689PF"},{code:"TK",label:"🇹🇰 +690",value:"690TK"},{code:"FM",label:"🇫🇲 +691",value:"691FM"},{code:"MH",label:"🇲🇭 +692",value:"692MH"},{code:"RU",label:"🇷🇺 +7",value:"7RU"},{code:"KZ",label:"🇰🇿 +77",value:"77KZ"},{code:"JP",label:"🇯🇵 +81",value:"81JP"},{code:"KR",label:"🇰🇷 +82",value:"82KR"},{code:"VN",label:"🇻🇳 +84",value:"84VN"},{code:"KP",label:"🇰🇵 +850",value:"850KP"},{code:"HK",label:"🇭🇰 +852",value:"852HK"},{code:"MO",label:"🇲🇴 +853",value:"853MO"},{code:"KH",label:"🇰🇭 +855",value:"855KH"},{code:"LA",label:"🇱🇦 +856",value:"856LA"},{code:"CN",label:"🇨🇳 +86",value:"86CN"},{code:"PN",label:"🇵🇳 +872",value:"872PN"},{code:"BD",label:"🇧🇩 +880",value:"880BD"},{code:"TW",label:"🇹🇼 +886",value:"886TW"},{code:"TR",label:"🇹🇷 +90",value:"90TR"},{code:"IN",label:"🇮🇳 +91",value:"91IN"},{code:"PK",label:"🇵🇰 +92",value:"92PK"},{code:"AF",label:"🇦🇫 +93",value:"93AF"},{code:"LK",label:"🇱🇰 +94",value:"94LK"},{code:"MM",label:"🇲🇲 +95",value:"95MM"},{code:"MV",label:"🇲🇻 +960",value:"960MV"},{code:"LB",label:"🇱🇧 +961",value:"961LB"},{code:"JO",label:"🇯🇴 +962",value:"962JO"},{code:"SY",label:"🇸🇾 +963",value:"963SY"},{code:"IQ",label:"🇮🇶 +964",value:"964IQ"},{code:"KW",label:"🇰🇼 +965",value:"965KW"},{code:"SA",label:"🇸🇦 +966",value:"966SA"},{code:"YE",label:"🇾🇪 +967",value:"967YE"},{code:"OM",label:"🇴🇲 +968",value:"968OM"},{code:"PS",label:"🇵🇸 +970",value:"970PS"},{code:"AE",label:"🇦🇪 +971",value:"971AE"},{code:"IL",label:"🇮🇱 +972",value:"972IL"},{code:"BH",label:"🇧🇭 +973",value:"973BH"},{code:"QA",label:"🇶🇦 +974",value:"974QA"},{code:"BT",label:"🇧🇹 +975",value:"975BT"},{code:"MN",label:"🇲🇳 +976",value:"976MN"},{code:"NP",label:"🇳🇵 +977",value:"977NP"},{code:"IR",label:"🇮🇷 +98",value:"98IR"},{code:"TJ",label:"🇹🇯 +992",value:"992TJ"},{code:"TM",label:"🇹🇲 +993",value:"993TM"},{code:"AZ",label:"🇦🇿 +994",value:"994AZ"},{code:"GE",label:"🇬🇪 +995",value:"995GE"},{code:"KG",label:"🇰🇬 +996",value:"996KG"},{code:"UZ",label:"🇺🇿 +998",value:"998UZ"}]},1720:function(e,t,n){"use strict";var r=n(65736),a=n(22823),o=n(32220);const __=r.__,i=[{isDefault:!0,name:"whatsapp-button",title:__("WhatsApp Button","jetpack"),description:__("Let your visitors send you messages on WhatsApp with the tap of a button.","jetpack"),icon:(0,o.p)("send-a-message",a.Z),innerBlocks:[["jetpack/whatsapp-button",{}]]}];t.Z=i},87165:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={countryCode:{type:"string"},phoneNumber:{type:"string"},firstMessage:{type:"string",default:__("Hi, I got your WhatsApp information from your website.","jetpack")},buttonText:{type:"array",source:"children",selector:"a.whatsapp-block__button",default:__("Chat on WhatsApp","jetpack")},backgroundColor:{type:"string",default:"#25D366"},colorClass:{type:"string",default:"dark"},openInNewTab:{type:"boolean",default:!1}}},93374:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(39630),l=n(64566),c=n(41632),u=n(22985);const __=a.__,_x=a._x,p="#25D366",d="#465B64";function m(e){let{attributes:t,setAttributes:n,context:a}=e;const{countryCode:m,phoneNumber:h,firstMessage:f,openInNewTab:g,backgroundColor:b}=t,[v,k]=(0,r.useState)(!0),y=()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BaseControl,{label:__("Phone Number","jetpack"),help:__("Enter the phone number you use for WhatsApp and would like to be contacted on.","jetpack"),className:"jetpack-whatsapp-button__phonenumber"},(0,r.createElement)(o.SelectControl,{label:__("Country code","jetpack"),value:m,onChange:e=>n({countryCode:e}),options:l.n,hideLabelFromVision:!0}),(0,r.createElement)(o.TextControl,{placeholder:__("Your phone number…","jetpack"),onChange:e=>{n({phoneNumber:e}),0===e.length&&k(!0),e.length>2&&k((e=>{const t=RegExp(/^[+]?[\s./0-9]*[(]?[0-9]{1,4}[)]?[-\s./0-9]*$/,"g");return!(void 0===e||e.length<1)&&t.test(m.replace(/\D/g,"")+e)})(e))},value:h}),!v&&(0,r.createElement)(u.Z,{isError:!0,className:"jetpack-whatsapp-error"},__("Please enter a valid phone number.","jetpack"))),"inspector"===a&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.TextareaControl,{label:__("Default First Message","jetpack"),help:__("The default first message that will be sent by visitors when using this button.","jetpack"),value:f,onChange:e=>n({firstMessage:e})}),(0,r.createElement)(o.ToggleControl,{label:__("Open in new tab","jetpack"),checked:g,onChange:e=>n({openInNewTab:e}),help:__("When the button is tapped, should a new tab be opened if the visitor does not have WhatsApp installed?","jetpack")})));return"toolbar"===a?(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"jetpack-whatsapp-button-settings-selector",contentClassName:"jetpack-whatsapp-button__popover",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return((e,t)=>(0,r.createElement)(o.Button,{className:"components-toolbar__control jetpack-contact-form__toggle",label:__("WhatsApp Button Settings","jetpack"),onClick:t,onKeyDown:n=>{e||n.keyCode!==s.DOWN||(n.preventDefault(),n.stopPropagation(),t())},icon:(0,c.Z)((0,r.createElement)(o.Path,{d:"M10.82 12.49c.02-.16.04-.32.04-.49 0-.17-.02-.33-.04-.49l1.08-.82c.1-.07.12-.21.06-.32l-1.03-1.73c-.06-.11-.2-.15-.31-.11l-1.28.5c-.27-.2-.56-.36-.87-.49l-.2-1.33c0-.12-.11-.21-.24-.21H5.98c-.13 0-.24.09-.26.21l-.2 1.32c-.31.12-.6.3-.87.49l-1.28-.5c-.12-.05-.25 0-.31.11l-1.03 1.73c-.06.12-.03.25.07.33l1.08.82c-.02.16-.03.33-.03.49 0 .17.02.33.04.49l-1.09.83c-.1.07-.12.21-.06.32l1.03 1.73c.06.11.2.15.31.11l1.28-.5c.27.2.56.36.87.49l.2 1.32c.01.12.12.21.25.21h2.06c.13 0 .24-.09.25-.21l.2-1.32c.31-.12.6-.3.87-.49l1.28.5c.12.05.25 0 .31-.11l1.03-1.73c.06-.11.04-.24-.06-.32l-1.1-.83zM7 13.75c-.99 0-1.8-.78-1.8-1.75s.81-1.75 1.8-1.75 1.8.78 1.8 1.75S8 13.75 7 13.75zM18 1.01L8 1c-1.1 0-2 .9-2 2v3h2V5h10v14H8v-1H6v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z"}))}))(t,n)},renderContent:y})):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("WhatsApp Button Settings","jetpack"),initialOpen:!0},y()),(0,r.createElement)(i.PanelColorSettings,{title:__("Color Settings","jetpack"),initialOpen:!1,colorSettings:[{value:b,onChange:e=>(e=>{if(n({backgroundColor:e}),void 0===e||e===p||e===d)return n({colorClass:"dark"});n({colorClass:"light"})})(e),label:__("Background Color","jetpack"),disableCustomColors:!0,colors:[{name:_x("WhatsApp Green","background color name","jetpack"),slug:"whatsapp-green",color:p},{name:_x("WhatsApp Dark","background color name","jetpack"),slug:"whatsapp-dark",color:d},{name:_x("WhatsApp Light","background color name","jetpack"),slug:"whatsapp-light",color:"#F4F4F4"},{name:_x("White","background color name","jetpack"),slug:"whatsapp-white",color:"#FFFFFF"}]}]}))}},11026:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770),l=n(87165);t.Z={attributes:l.Z,supports:{html:!1,reusable:!1},save:function(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,colorClass:u,buttonText:p,backgroundColor:d,openInNewTab:m}=t,h=m?"_blank":"_self",f=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",g=o()(n,u?"is-color-"+u:void 0,p.length?void 0:"has-no-text");return(0,r.createElement)("div",{className:g},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+f;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:d},target:h,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:p})))}}},60249:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(9818),s=n(52175),l=n(64566),c=n(93374);function u(e){let{attributes:t,setAttributes:n,className:a,clientId:u}=e;const{countryCode:p,buttonText:d,colorClass:m,backgroundColor:h}=t,{selectBlock:f}=(0,i.useDispatch)("core/block-editor"),g=(0,r.useCallback)((async()=>{n({countryCode:"1"});const e=await fetch("https://public-api.wordpress.com/geo/").then((e=>!!e.ok&&e)).catch((()=>!1));if(e){const t=await e.json();l.n.forEach((e=>{e.code===t.country_short&&n({countryCode:e.value})}))}}),[n]);(0,r.useEffect)((()=>{void 0===p&&(g(),f(u))}),[u,p,g,f]);return(0,r.createElement)("div",{className:o()(a,m?"is-color-"+m:void 0)},(0,r.createElement)(s.BlockControls,null,(0,r.createElement)(c.Z,{context:"toolbar",setAttributes:n,attributes:t})),(0,r.createElement)(s.InspectorControls,null,(0,r.createElement)(c.Z,{context:"inspector",setAttributes:n,attributes:t})),(0,r.createElement)(s.RichText,{placeholder:d.default,value:d,onChange:e=>n({buttonText:e}),withoutInteractiveFormatting:!0,allowedFormats:[],className:"whatsapp-block__button",tagName:"a",preserveWhiteSpace:!1,style:{backgroundColor:h,color:"dark"===m?"#fff":"#465B64"}}))}},22823:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(57535);t.Z=(0,r.createElement)(a.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",version:"1.1"},(0,r.createElement)(a.Path,{fill:(0,o.m)(),d:"M24,11.6909333 C24,18.1477333 18.7256,23.3818667 12.2181333,23.3818667 C10.1522667,23.3818667 8.21146667,22.8538667 6.52293333,21.9272 L0,24 L2.12666667,17.7274667 C1.05386667,15.9658667 0.436,13.8997333 0.436,11.6909333 C0.436,5.23413333 5.71093333,0 12.2181333,0 C18.7261333,0 24,5.23413333 24,11.6909333 Z M12.2181333,1.86186667 C6.75573333,1.86186667 2.31253333,6.2712 2.31253333,11.6909333 C2.31253333,13.8416 3.0136,15.8333333 4.19946667,17.4536 L2.96186667,21.104 L6.76853333,19.8941333 C8.33253333,20.9210667 10.2061333,21.52 12.2184,21.52 C17.68,21.52 22.124,17.1112 22.124,11.6914667 C22.124,6.27173333 17.6802667,1.86186667 12.2181333,1.86186667 Z M18.1677333,14.3834667 C18.0949333,14.2642667 17.9026667,14.1922667 17.6141333,14.0490667 C17.3250667,13.9058667 15.9048,13.2122667 15.6408,13.1170667 C15.376,13.0216 15.1829333,12.9736 14.9906667,13.2602667 C14.7984,13.5472 14.2448,14.1922667 14.076,14.3834667 C13.9074667,14.5752 13.7392,14.5992 13.4501333,14.4557333 C13.1616,14.3125333 12.2312,14.0096 11.128,13.0336 C10.2696,12.2741333 9.68986667,11.3365333 9.52133333,11.0493333 C9.35306667,10.7626667 9.50373333,10.6077333 9.648,10.4650667 C9.77813333,10.3365333 9.93706667,10.1304 10.0813333,9.9632 C10.2261333,9.79573333 10.2741333,9.67653333 10.3698667,9.48506667 C10.4666667,9.29386667 10.4184,9.12666667 10.3458667,8.98293333 C10.2738667,8.83973333 9.69573333,7.4296 9.4552,6.85573333 C9.21466667,6.2824 8.9744,6.37786667 8.8056,6.37786667 C8.63733333,6.37786667 8.44453333,6.35386667 8.252,6.35386667 C8.05946667,6.35386667 7.7464,6.4256 7.4816,6.71226667 C7.21706667,6.9992 6.4712,7.69253333 6.4712,9.1024 C6.4712,10.5125333 7.5056,11.8749333 7.6504,12.0658667 C7.79466667,12.2568 9.64773333,15.2445333 12.5837333,16.392 C15.52,17.5389333 15.52,17.1562667 16.0496,17.1082667 C16.5786667,17.0605333 17.7578667,16.4152 17.9994667,15.7464 C18.2394667,15.0765333 18.2394667,14.5029333 18.1677333,14.3834667 Z"}))},59770:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},pf:function(){return d},Xd:function(){return m}});var r=n(65736),a=n(57535),o=n(87165),i=n(60249),s=n(4114),l=n(11026),c=n(22823);const __=r.__,_x=r._x,u="whatsapp-button",p=__("WhatsApp Button","jetpack"),d="https://api.whatsapp.com/send?phone=",m=(__("Chat on WhatsApp","jetpack"),__("Hi, I got your WhatsApp information from your website.","jetpack"),{title:p,description:__("Let your visitors send you a message on WhatsApp with the tap of a button.","jetpack"),icon:{src:c.Z,foreground:(0,a.m)()},category:"grow",parent:["jetpack/send-a-message"],keywords:[_x("whatsapp","keyword","jetpack"),_x("messenger","keyword","jetpack"),_x("contact","keyword","jetpack"),_x("support","keyword","jetpack")],supports:{html:!1,reusable:!1,align:["left","center","right"]},attributes:o.Z,edit:i.Z,save:s.Z,example:{attributes:{countryCode:"1",phoneNumber:"555-123-4567"}},deprecated:[l.Z]})},4114:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(52175),s=n(59770);function l(e){let{attributes:t,className:n}=e;const{countryCode:a,phoneNumber:l,firstMessage:c,buttonText:u,backgroundColor:p,colorClass:d,openInNewTab:m}=t,h=a&&l?a.replace(/\D+/g,"")+l.replace(/\D+/g,""):"",f=o()(n,d?"is-color-"+d:void 0,u.length?void 0:"has-no-text"),g=m?"_blank":"_self";return(0,r.createElement)("div",{className:f},(0,r.createElement)("a",{className:"whatsapp-block__button",href:(()=>{let e=s.pf+h;return""!==c&&(e+="&text="+encodeURIComponent(c)),e})(),style:{backgroundColor:p,color:"dark"===d?"#fff":"#465B64"},target:g,rel:"noopener noreferrer"},(0,r.createElement)(i.RichText.Content,{value:u})))}},96594:function(e,t,n){"use strict";n.d(t,{u:function(){return c},X:function(){return u}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(20489);const __=a.__,c="seo",u={render:()=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("SEO Description","jetpack")},(0,r.createElement)(l.Z,null))),(0,r.createElement)(i.PluginPrePublishPanel,{initialOpen:!0,id:"seo-title",title:(0,r.createElement)("span",{id:"seo-defaults",key:"seo-title-span"},__("SEO Description","jetpack"))},(0,r.createElement)(l.Z,null)))}},20489:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(9818);const __=i.__,_n=i._n;class u extends o.Component{constructor(){super(...arguments),a()(this,"onMessageChange",(e=>{this.props.updateSeoDescription(e.target.value)}))}render(){const{seoDescription:e}=this.props;return(0,o.createElement)("div",{className:"jetpack-seo-message-box"},(0,o.createElement)("textarea",{value:e,onChange:this.onMessageChange,placeholder:__("Write a description…","jetpack"),rows:4}),(0,o.createElement)("div",{className:"jetpack-seo-character-count"},(0,i.sprintf)(
+/* translators: Placeholder is a number of characters in a sentence. */
+_n("%d character","%d characters",e.length,"jetpack"),e.length)))}}t.Z=(0,s.compose)([(0,c.withSelect)((e=>({seoDescription:(0,l.get)(e("core/editor").getEditedPostAttribute("meta"),["advanced_seo_description"],"")}))),(0,c.withDispatch)((e=>({updateSeoDescription(t){e("core/editor").editPost({meta:{advanced_seo_description:t}})}})))])(u)},71730:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(92819),i=n(55609),s=n(9818),l=n(70609),c=n(32673);const __=a.__,u="shortlinks",p={render:()=>(0,r.createElement)(m,null)};class d extends r.Component{render(){const{shortlink:e}=this.props;return e?(0,r.createElement)(c.Z,null,(0,r.createElement)(i.PanelBody,{title:__("Shortlink","jetpack"),className:"jetpack-shortlinks__panel"},(0,r.createElement)(l.Z,{link:e}))):null}}const m=(0,s.withSelect)((e=>{const t=e("core/editor").getCurrentPost();return{shortlink:(0,o.get)(t,"jetpack_shortlink","")}}))(d)},47175:function(e,t,n){"use strict";n.d(t,{LC:function(){return r},a7:function(){return a},Rh:function(){return o}});const r="jp_pay_product",a="USD",o=[a,"EUR","AUD","BRL","CAD","CZK","DKK","HKD","HUF","ILS","JPY","MYR","MXN","TWD","NZD","NOK","PHP","PLN","GBP","RUB","SGD","SEK","CHF","THB"]},81255:function(e,t,n){"use strict";n.d(t,{G:function(){return i}});var r=n(69307),a=n(55609),o=n(65736);const __=o.__;function i(e){let{setAttributes:t,postLinkText:n}=e;return(0,r.createElement)(a.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,r.createElement)(a.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,r.createElement)(a.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>t({postLinkText:e}),value:n})))}},56511:function(e,t,n){"use strict";var r=n(69307);t.Z={attributes:{currency:{type:"string",default:"USD"},content:{type:"string",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",default:null},featuredMediaTitle:{type:"string",default:null},multiple:{type:"boolean",default:!1},price:{type:"number"},productId:{type:"number"},title:{type:"string",default:""}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},save:e=>{let{attributes:t}=e;const{productId:n}=t;return n?(0,r.createElement)(r.RawHTML,null,`[simple-payment id="${n}"]`):null}}},75050:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175);const __=p.__,_n=p._n;class E extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(h.PanelBody,{title:__("Settings","jetpack"),initialOpen:!1},(0,o.createElement)(h.BaseControl,{label:__("Purchase link text","jetpack"),help:__("Enter the text you want to display on a purchase link used as fallback when the PayPal button cannot be used (e.g. emails, AMP, etc.)","jetpack"),className:"jetpack-simple-payments__purchase-link-text"},(0,o.createElement)(h.TextControl,{placeholder:__("Click here to purchase","jetpack"),onChange:e=>this.props.setAttributes({postLinkText:e}),value:this.props.attributes.postLinkText}))))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r}=this.props,{productId:a}=e;!a&&t&&this.saveProduct();const o=n&&n!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&r({...o&&{postLinkUrl:n},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.w)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.w)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const w=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u.link}}));t.Z=(0,d.compose)(w,d.withInstanceId)(E)},19372:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(75050),u=n(63290);const __=a.__,_x=a._x,p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),d=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",m={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:d},__("Support reference","jetpack"))),icon:{src:p,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,supports:{className:!1,customClassName:!1,html:!1,reusable:!1}};t.Z=m},63290:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.w)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},81666:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(89453),c=n(92819),u=n(75139),p=n(65736),d=n(94333),m=n(9818),h=n(55609),f=n(52175),g=n(22985),b=n(87079),v=n(8565),k=n(37299),y=n(47175),E=n(81255);const __=p.__,_n=p._n;class w extends o.Component{constructor(){super(...arguments),a()(this,"state",{fieldEmailError:null,fieldPriceError:null,fieldTitleError:null,isSavingProduct:!1}),a()(this,"shouldInjectPaymentAttributes",!!this.props.attributes.productId),a()(this,"validateAttributes",(()=>{const e=this.validatePrice(),t=this.validateTitle(),n=this.validateEmail(),r=this.validateCurrency();return e&&t&&n&&r})),a()(this,"validateCurrency",(()=>{const{currency:e}=this.props.attributes;return y.Rh.includes(e)})),a()(this,"validatePrice",(()=>{const{currency:e,price:t}=this.props.attributes,{precision:n}=(0,u.X)(e);return t&&0!==parseFloat(t)?Number.isNaN(parseFloat(t))?(this.setState({fieldPriceError:__("Invalid price","jetpack")}),!1):parseFloat(t)<0?(this.setState({fieldPriceError:__("Your price is negative — enter a positive number so people can pay the right amount.","jetpack")}),!1):(0,k.N3)(t)>n?0===n?(this.setState({fieldPriceError:__("We know every penny counts, but prices in this currency can’t contain decimal values.","jetpack")}),!1):(this.setState({fieldPriceError:(0,p.sprintf)(
+/* translators: Placeholder is a number of decimals in a number. */
+_n("The price cannot have more than %d decimal place.","The price cannot have more than %d decimal places.",n,"jetpack"),n)}),!1):(this.state.fieldPriceError&&this.setState({fieldPriceError:null}),!0):(this.setState({fieldPriceError:__("If you’re selling something, you need a price tag. Add yours here.","jetpack")}),!1)})),a()(this,"validateEmail",(()=>{const{email:e}=this.props.attributes;return e?l.validate(e)?(this.state.fieldEmailError&&this.setState({fieldEmailError:null}),!0):(this.setState({fieldEmailError:(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),e)}),!1):(this.setState({fieldEmailError:__("We want to make sure payments reach you, so please add an email address.","jetpack")}),!1)})),a()(this,"validateTitle",(()=>{const{title:e}=this.props.attributes;return e?(this.state.fieldTitleError&&this.setState({fieldTitleError:null}),!0):(this.setState({fieldTitleError:__("Please add a brief title so that people know what they’re paying for.","jetpack")}),!1)})),a()(this,"handleEmailChange",(e=>{this.props.setAttributes({email:e}),this.setState({fieldEmailError:null})})),a()(this,"handleContentChange",(e=>{this.props.setAttributes({content:e})})),a()(this,"handlePriceChange",(e=>{e=parseFloat(e),isNaN(e)?this.props.setAttributes({price:void 0}):this.props.setAttributes({price:e}),this.setState({fieldPriceError:null})})),a()(this,"handleCurrencyChange",(e=>{this.props.setAttributes({currency:e})})),a()(this,"handleMultipleChange",(e=>{this.props.setAttributes({multiple:!!e})})),a()(this,"handleTitleChange",(e=>{this.props.setAttributes({title:e}),this.setState({fieldTitleError:null})})),a()(this,"getCurrencyList",y.Rh.map((e=>{const{symbol:t}=(0,u.X)(e);return{value:e,label:t===e?e:`${e} ${(0,c.trimEnd)(t,".")}`}}))),a()(this,"renderSettings",(()=>(0,o.createElement)(f.InspectorControls,null,(0,o.createElement)(E.G,{postLinkText:this.props.attributes.postLinkText,setAttributes:this.props.setAttributes}))))}componentDidMount(){this.injectPaymentAttributes();const{attributes:e,hasPublishAction:t,postLinkUrl:n,setAttributes:r,isPostEditor:a}=this.props,{productId:o}=e;(!o&&t||!a)&&this.saveProduct();const i=n&&n!==this.props.attributes.postLinkUrl,s=!this.props.attributes.postLinkText;(i||s)&&r({...i&&{postLinkUrl:n},...s&&{postLinkText:__("Click here to purchase.","jetpack")}})}componentDidUpdate(e){const{hasPublishAction:t,isSelected:n,postLinkUrl:r,setAttributes:a}=this.props;(0,c.isEqual)(e.simplePayment,this.props.simplePayment)||this.injectPaymentAttributes(),!e.isSaving&&this.props.isSaving&&t&&this.validateAttributes()?this.saveProduct():e.isSelected&&!n&&this.validateAttributes();const o=r&&r!==this.props.attributes.postLinkUrl,i=!this.props.attributes.postLinkText;(o||i)&&a({...o&&{postLinkUrl:r},...i&&{postLinkText:__("Click here to purchase.","jetpack")}})}injectPaymentAttributes(){const{simplePayment:e,featuredMedia:t}=this.props;if(!this.shouldInjectPaymentAttributes||(0,c.isEmpty)(e))return;const{attributes:n,setAttributes:r}=this.props,{content:a,currency:o,email:i,featuredMediaId:s,featuredMediaUrl:l,featuredMediaTitle:u,multiple:p,price:d,title:m}=n;r({content:(0,c.get)(e,["content","raw"],a),currency:(0,c.get)(e,["meta","spay_currency"],o),email:(0,c.get)(e,["meta","spay_email"],i),featuredMediaId:(0,c.get)(e,["featured_media"],s),featuredMediaUrl:(0,c.get)(t,"url",l),featuredMediaTitle:(0,c.get)(t,"title",u),multiple:Boolean((0,c.get)(e,["meta","spay_multiple"],Boolean(p))),price:(0,c.get)(e,["meta","spay_price"],d||void 0),title:(0,c.get)(e,["title","raw"],m)}),this.shouldInjectPaymentAttributes=!this.shouldInjectPaymentAttributes}toApi(){const{attributes:e}=this.props,{content:t,currency:n,email:r,featuredMediaId:a,multiple:o,price:i,productId:s,title:l}=e;return{id:s,content:t,featured_media:a,meta:{spay_currency:n,spay_email:r,spay_multiple:o,spay_price:i},status:s?"publish":"draft",title:l}}saveProduct(){if(this.state.isSavingProduct)return;const{attributes:e,setAttributes:t}=this.props,{email:n}=e,{saveEntityRecord:r}=(0,m.dispatch)("core");this.setState({isSavingProduct:!0},(()=>{r("postType",y.LC,this.toApi()).then((e=>(e&&t({productId:e.id}),e))).catch((e=>{if(!e||!e.data)return;const{data:{key:t}}=e;this.setState({fieldEmailError:"spay_email"===t?(0,p.sprintf)(
+/* translators: Placeholder is an email address. */
+__("%s is not a valid email address.","jetpack"),n):null,fieldPriceError:"spay_price"===t?__("Invalid price.","jetpack"):null})})).finally((()=>{this.setState({isSavingProduct:!1})}))}))}render(){const{fieldEmailError:e,fieldPriceError:t,fieldTitleError:n}=this.state,{attributes:r,instanceId:a,isSelected:i,setAttributes:l,simplePayment:u}=this.props,{content:p,currency:d,email:m,featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,multiple:w,price:_,productId:C,title:j}=r,S=C&&(0,c.isEmpty)(u);if(!i&&S)return(0,o.createElement)("div",{className:"simple-payments__loading"},(0,o.createElement)(b.Z,{"aria-busy":"true",content:"█████",formattedPrice:"█████",title:"█████"}));if(!i&&m&&_&&j&&!e&&!t&&!n)return(0,o.createElement)(b.Z,{"aria-busy":"false",content:p,featuredMediaUrl:y,featuredMediaTitle:E,formattedPrice:(0,k.T4)(_,d),multiple:w,title:j});const x=S?h.Disabled:"div";return(0,o.createElement)(x,{className:"wp-block-jetpack-simple-payments"},this.renderSettings(),(0,o.createElement)(v.Z,{featuredMediaId:f,featuredMediaUrl:y,featuredMediaTitle:E,setAttributes:l}),(0,o.createElement)("div",null,(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-title-error`,className:s()("simple-payments__field","simple-payments__field-title",{"simple-payments__field-has-error":n}),label:__("Item name","jetpack"),onChange:this.handleTitleChange,placeholder:__("Item name","jetpack"),required:!0,type:"text",value:j}),(0,o.createElement)(g.Z,{id:`${a}-title-error`,isError:!0},n),(0,o.createElement)(h.TextareaControl,{className:"simple-payments__field simple-payments__field-content",label:__("Describe your item in a few words","jetpack"),onChange:this.handleContentChange,placeholder:__("Describe your item in a few words","jetpack"),"aria-label":__("Describe your item in a few words","jetpack"),value:p}),(0,o.createElement)("div",{className:"simple-payments__price-container"},(0,o.createElement)(h.SelectControl,{className:"simple-payments__field simple-payments__field-currency",label:__("Currency","jetpack"),onChange:this.handleCurrencyChange,options:this.getCurrencyList,value:d}),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-price-error`,className:s()("simple-payments__field","simple-payments__field-price",{"simple-payments__field-has-error":t}),label:__("Price","jetpack"),onChange:this.handlePriceChange,placeholder:(0,k.T4)(0,d,!1),required:!0,step:"1",type:"number",value:_||""}),(0,o.createElement)(g.Z,{id:`${a}-price-error`,isError:!0},t)),(0,o.createElement)("div",{className:"simple-payments__field-multiple"},(0,o.createElement)(h.ToggleControl,{checked:Boolean(w),label:__("Allow people to buy more than one item at a time","jetpack"),onChange:this.handleMultipleChange})),(0,o.createElement)(h.TextControl,{"aria-describedby":`${a}-email-${e?"error":"help"}`,className:s()("simple-payments__field","simple-payments__field-email",{"simple-payments__field-has-error":e}),label:__("Email","jetpack"),onChange:this.handleEmailChange,placeholder:__("Email","jetpack"),required:!0,type:"text",value:m}),(0,o.createElement)(g.Z,{id:`${a}-email-error`,isError:!0},e),(0,o.createElement)(g.Z,{id:`${a}-email-help`},__("Enter the email address associated with your PayPal account. Don’t have an account?","jetpack")+" ",(0,o.createElement)(h.ExternalLink,{href:"https://www.paypal.com/"},__("Create one on PayPal","jetpack")))))}}const _=(0,m.withSelect)(((e,t)=>{const{getEntityRecord:n,getMedia:r}=e("core"),{isSavingPost:a,getCurrentPost:o}=e("core/editor"),{productId:i,featuredMediaId:s}=t.attributes,l=i?(0,c.pick)(n("postType",y.LC,i),[["content"],["meta","spay_currency"],["meta","spay_email"],["meta","spay_multiple"],["meta","spay_price"],["title","raw"],["featured_media"]]):void 0,u=o();return{hasPublishAction:!!(0,c.get)(u,["_links","wp:action-publish"]),isSaving:!!a(),simplePayment:l,featuredMedia:s?r(s):null,postLinkUrl:u?.link,isPostEditor:Object.keys(o()).length>0}}));t.Z=(0,d.compose)(_,d.withInstanceId)(w)},8565:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(52175),i=n(92819),s=n(55609),l=n(58703);const __=a.__,c=e=>t=>e({featuredMediaId:(0,i.get)(t,"id",0),featuredMediaUrl:(0,i.get)(t,"url",null),featuredMediaTitle:(0,i.get)(t,"title",null)});t.Z=e=>{let{featuredMediaId:t,featuredMediaUrl:n,featuredMediaTitle:a,setAttributes:i}=e;return t?(0,r.createElement)("div",null,(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.BlockControls,null,(0,r.createElement)(s.ToolbarGroup,null,(0,r.createElement)(s.ToolbarItem,null,(()=>(0,r.createElement)(o.MediaUpload,{onSelect:c(i),allowedTypes:["image"],value:t,render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Image","jetpack"),onClick:t})}}))),(0,r.createElement)(s.ToolbarButton,{icon:"trash",title:__("Remove Image","jetpack"),onClick:()=>i({featuredMediaId:null,featuredMediaUrl:null,featuredMediaTitle:null})}))),(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:n,alt:a})))):(0,r.createElement)(o.MediaPlaceholder,{icon:(0,r.createElement)(o.BlockIcon,{icon:"format-image"}),labels:{title:__("Product Image","jetpack")},accept:"image/*",allowedTypes:["image"],onSelect:c(i)})}},35289:function(e,t,n){"use strict";n.d(t,{u2:function(){return h},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(47175),s=n(58014),l=n(57535),c=n(81666),u=n(73e3),p=n(56511),d=n(19372),m=n(60206);const __=a.__,_x=a._x,h="simple-payments",f=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z"})),g=(0,s.Wp)()||(0,s.Ug)()?"https://wordpress.com/support/pay-with-paypal/":"https://jetpack.com/support/jetpack-blocks/pay-with-paypal/",b={title:__("Pay with PayPal","jetpack"),description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Lets you add credit and debit card payment buttons with minimal setup.","jetpack")),(0,r.createElement)("p",null,__("Good for collecting donations or payments for products and services.","jetpack")),(0,r.createElement)(o.ExternalLink,{href:g},__("Support reference","jetpack"))),icon:{src:f,foreground:(0,l.m)()},category:"earn",keywords:[_x("buy","block search term","jetpack"),_x("commerce","block search term","jetpack"),_x("products","block search term","jetpack"),_x("purchase","block search term","jetpack"),_x("sell","block search term","jetpack"),_x("shop","block search term","jetpack"),_x("simple","block search term","jetpack"),_x("payments","block search term","jetpack"),"PayPal"],attributes:{currency:{type:"string",default:i.a7},content:{type:"string",source:"html",selector:".jetpack-simple-payments-description p",default:""},email:{type:"string",default:""},featuredMediaId:{type:"number",default:0},featuredMediaUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"src",default:null},featuredMediaTitle:{type:"string",source:"attribute",selector:".jetpack-simple-payments-image img",attribute:"alt",default:null},multiple:{type:"boolean",default:!1},postLinkUrl:{type:"string",source:"attribute",selector:".jetpack-simple-payments-purchase",attribute:"href"},postLinkText:{type:"string",source:"html",selector:".jetpack-simple-payments-purchase",default:__("Click here to purchase.","jetpack")},price:{type:"number"},productId:{type:"number"},title:{type:"string",source:"html",selector:".jetpack-simple-payments-title p",default:""}},transforms:{from:[{type:"shortcode",tag:"simple-payment",attributes:{productId:{type:"number",shortcode:e=>{let{named:{id:t}}=e;if(!t)return;const n=parseInt(t,10);return n||void 0}}}}]},edit:c.Z,save:u.Z,example:{attributes:{price:25,title:__("Jetpack t-shirt","jetpack"),content:__("Take flight in ultimate comfort with this stylish t-shirt featuring the Jetpack logo.","jetpack"),email:"jetpack@jetpack.com",featuredMediaUrl:m}},supports:{className:!1,customClassName:!1,html:!1,reusable:!1},deprecated:[p.Z,d.Z]}},87079:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(22323),i=n(23879);const __=a.__;t.Z=e=>{let{title:t="",content:n="",formattedPrice:a="",multiple:s=!1,featuredMediaUrl:l=null,featuredMediaTitle:c=null}=e;return(0,r.createElement)("div",{className:"jetpack-simple-payments-wrapper"},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},l&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("figure",{className:"jetpack-simple-payments-image"},(0,r.createElement)("img",{src:l,alt:c}))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},t&&(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,t)),n&&(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),a&&(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,a)),(0,r.createElement)("div",{className:"jetpack-simple-payments-purchase-box"},s&&(0,r.createElement)("div",{className:"jetpack-simple-payments-items"},(0,r.createElement)("input",{className:"jetpack-simple-payments-items-number",readOnly:!0,type:"number",value:"1"})),(0,r.createElement)("div",{className:"jetpack-simple-payments-button"},(0,r.createElement)("img",{alt:__("Pay with PayPal","jetpack"),src:o,srcSet:`${i} 2x`}))))))}},73e3:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(37299);function o(e){let{attributes:t}=e;const{content:n,currency:o,featuredMediaUrl:i,featuredMediaTitle:s,postLinkUrl:l,postLinkText:c,price:u,productId:p,title:d}=t;return p?(0,r.createElement)("div",{className:`jetpack-simple-payments-wrapper jetpack-simple-payments-${p}`},(0,r.createElement)("div",{className:"jetpack-simple-payments-product"},i&&(0,r.createElement)("div",{className:"jetpack-simple-payments-product-image"},(0,r.createElement)("div",{className:"jetpack-simple-payments-image"},(0,r.createElement)("figure",null,(0,r.createElement)("img",{src:i,alt:s})))),(0,r.createElement)("div",{className:"jetpack-simple-payments-details"},(0,r.createElement)("div",{className:"jetpack-simple-payments-title"},(0,r.createElement)("p",null,d)),(0,r.createElement)("div",{className:"jetpack-simple-payments-description"},(0,r.createElement)("p",null,n)),(0,r.createElement)("div",{className:"jetpack-simple-payments-price"},(0,r.createElement)("p",null,(0,a.T4)(u,o))),(0,r.createElement)("a",{className:"jetpack-simple-payments-purchase",href:l,target:"_blank",rel:"noopener noreferrer"},c)))):null}},37299:function(e,t,n){"use strict";n.d(t,{N3:function(){return i},w:function(){return l},T4:function(){return c}});var r=n(75139),a=n(92819),o=n(9818);n(47175);const i=e=>{const t=(""+e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0},s=function(){var e,t,n;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"en-US";const a=window?.window?.navigator;return a?.languages?.length?a.languages[0]:null!==(e=null!==(t=null!==(n=a?.userLanguage)&&void 0!==n?n:a?.language)&&void 0!==t?t:a?.browserLanguage)&&void 0!==e?e:r},l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const{precision:o,symbol:i}=(0,r.X)(t),s=e.toFixed(o);return n?`${s} ${(0,a.trimEnd)(i,".")}`:s},c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!window.Intl||"function"!=typeof Intl.NumberFormat)return l(e,t,n);const{siteLocale:r}=(0,o.select)("core/block-editor").getSettings(),a=[r,s(),"en-US"];let i,c={};for(i of(n&&(c={style:"currency",currency:t}),a))try{return Intl.NumberFormat(i,c).format(e)}catch{continue}return l(e,t,n)}},98972:function(e,t,n){"use strict";n.d(t,{G:function(){return c},J:function(){return u}});var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(92819),l=n(58703);const __=i.__,_x=i._x;function c(e){let{attributes:{autoplay:t,delay:n,effect:a,images:i,sizeSlug:l},imageSizeOptions:c,onChangeImageSize:u,setAttributes:p}=e;const d="undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,m=[{label:_x("Slide","Slideshow transition effect","jetpack"),value:"slide"},{label:_x("Fade","Slideshow transition effect","jetpack"),value:"fade"}];return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PanelBody,{title:__("Autoplay","jetpack")},(0,r.createElement)(o.ToggleControl,{label:__("Autoplay","jetpack"),help:__("Autoplay between slides","jetpack"),checked:t,onChange:e=>{p({autoplay:e})}}),t&&(0,r.createElement)(o.RangeControl,{label:__("Delay between transitions (in seconds)","jetpack"),value:n,onChange:e=>{p({delay:e})},min:1,max:5}),t&&d&&(0,r.createElement)("span",null,__("The Reduce Motion accessibility option is selected, therefore autoplay will be disabled in this browser.","jetpack"))),(0,r.createElement)(o.PanelBody,{title:__("Effects","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Transition effect","jetpack"),value:a,onChange:e=>{p({effect:e})},options:m})),!(0,s.isEmpty)(i)&&!(0,s.isEmpty)(c)&&(0,r.createElement)(o.PanelBody,{title:__("Image Settings","jetpack")},(0,r.createElement)(o.SelectControl,{label:__("Image Size","jetpack"),value:l,options:c,onChange:e=>u(e)})))}function u(e){let{allowedMediaTypes:t,attributes:{images:n},onSelectImages:i}=e;return(0,r.createElement)(r.Fragment,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{onSelect:i,allowedTypes:t,multiple:!0,gallery:!0,value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(l.Z,{label:__("Edit Slideshow","jetpack"),onClick:t})}})))))}},44890:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);async function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".swiper-container",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicks:!1,preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,threshold:5,touchStartPreventDefault:!1,on:(0,r.mapValues)(a,(e=>function(){e(this)}))},[{default:i}]=await Promise.all([Promise.all([n.e(860),n.e(390)]).then(n.t.bind(n,16402,23)),Promise.all([n.e(860),n.e(390)]).then(n.bind(n,78858))]);return new i(e,(0,r.merge)({},o,t))}},67448:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(94333),l=n(92819),c=n(11313),u=n(9818),p=n(52175),d=n(12238),m=n(55609),h=n(94120),f=n(98972),g=n(712);const __=i.__,b=["image"],v=(e,t)=>{const n=(0,l.pick)(e,["alt","id","link","caption"]);return n.url=(0,l.get)(e,["sizes",t,"url"])||(0,l.get)(e,["media_details","sizes",t,"source_url"])||e.url,n};class k extends o.Component{constructor(){super(...arguments),a()(this,"onSelectImages",(e=>{const{sizeSlug:t}=this.props.attributes,n=e.map((e=>v(e,t)));this.setAttributes({images:n})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,l.filter)(this.props.attributes.images,((t,n)=>e!==n));this.setState({selectedImage:null}),this.setAttributes({images:t})})),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],n=this.props.attributes.sizeSlug,{lockPostSaving:r,unlockPostSaving:a,noticeOperations:o}=this.props,i="slideshowBlockLock";r(i),(0,d.mediaUpload)({allowedTypes:b,filesList:e,onFileChange:e=>{const r=e.map((e=>v(e,n)));this.setAttributes({images:[...t,...r]}),r.every((e=>(0,c.isBlobURL)(e.url)))||a(i)},onError:o.createErrorNotice})})),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files))),a()(this,"updateImagesSize",(e=>{const{images:t}=this.props.attributes,{resizedImages:n}=this.props,r=t.map((t=>{const r=n.find((e=>{let{id:n}=e;return parseInt(n,10)===parseInt(t.id,10)})),a=(0,l.get)(r,["sizes",e,"source_url"]);return{...t,...a&&{url:a}}}));this.setAttributes({images:r,sizeSlug:e})})),this.state={selectedImage:null}}componentDidMount(){const{ids:e,sizeSlug:t}=this.props.attributes;t||this.setAttributes({sizeSlug:e.length?"full":"large"})}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}getImageSizeOptions(){const{imageSizes:e}=this.props;return(0,l.map)(e,(e=>{let{name:t,slug:n}=e;return{value:n,label:t}}))}render(){const{attributes:e,className:t,isSelected:n,noticeOperations:r,noticeUI:a}=this.props,{align:i,autoplay:s,delay:l,effect:c,images:u}=e,d=this.getImageSizeOptions(),v=(0,o.createElement)(o.Fragment,null,(0,o.createElement)(p.InspectorControls,null,(0,o.createElement)(f.G,{attributes:e,imageSizeOptions:d,onChangeImageSize:this.updateImagesSize,setAttributes:e=>this.setAttributes(e)})),(0,o.createElement)(p.BlockControls,null,(0,o.createElement)(f.J,{allowedMediaTypes:b,attributes:e,onSelectImages:this.onSelectImages})));return 0===u.length?(0,o.createElement)(o.Fragment,null,v,(0,o.createElement)(p.MediaPlaceholder,{icon:(0,o.createElement)(p.BlockIcon,{icon:h.qv}),className:t,labels:{title:__("Slideshow","jetpack"),instructions:__("Drag images, upload new ones or select files from your library.","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:b,multiple:!0,notices:a,onError:r.createErrorNotice})):(0,o.createElement)(o.Fragment,null,v,a,(0,o.createElement)(g.Z,{align:i,autoplay:s,className:t,delay:l,effect:c,images:u,onError:r.createErrorNotice}),(0,o.createElement)(m.DropZone,{onFilesDrop:this.addFiles}),n&&(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow__add-item"},(0,o.createElement)(m.FormFileUpload,{multiple:!0,className:"wp-block-jetpack-slideshow__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack"))))}}t.ZP=(0,s.compose)((0,u.withSelect)(((e,t)=>({imageSizes:e("core/editor").getEditorSettings().imageSizes,resizedImages:t.attributes.ids.reduce(((t,n)=>{const r=e("core").getMedia(n);return[...t,{id:n,sizes:(0,l.get)(r,["media_details","sizes"])}]}),[])}))),(0,u.withDispatch)((e=>{const{lockPostSaving:t,unlockPostSaving:n}=e("core/editor");return{lockPostSaving:t,unlockPostSaving:n}})),m.withNotices)(k)},94120:function(e,t,n){"use strict";n.d(t,{qv:function(){return h},u2:function(){return g},Xd:function(){return b}});var r=n(69307),a=n(65736),o=n(55609),i=n(67448),s=n(91957),l=n(4830),c=n(57535),u=n(20510),p=n(65784),d=n(6425),m=n(85983);const __=a.__,_x=a._x,h=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none"},(0,r.createElement)(o.Path,{d:"M21 8V19C21 20.1046 20.1057 21 19.0011 21C15.8975 21 9.87435 21 6 21",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Rect,{x:"3.75",y:"3.75",width:"13.5",height:"13.5",rx:"0.875",fill:"none",stroke:"currentColor",strokeWidth:"1.5"}),(0,r.createElement)(o.Path,{d:"M9 14L12 11L9 8",fill:"none",stroke:"currentColor",strokeWidth:"1.5"})),f={align:"center",autoplay:!0,ids:[22,23],images:[{alt:"",caption:"",id:22,url:p},{alt:"",caption:"",id:23,url:d},{alt:"",caption:"",id:23,url:m}],effect:"slide"},g="slideshow",b={title:__("Slideshow","jetpack"),category:(0,u.Z)("media","layout"),keywords:[_x("image","block search term","jetpack"),_x("gallery","block search term","jetpack"),_x("slider","block search term","jetpack")],description:__("Add an interactive slideshow.","jetpack"),attributes:{align:{default:"center",type:"string"},autoplay:{type:"boolean",default:!1},delay:{type:"number",default:3},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".swiper-slide",query:{alt:{source:"attribute",selector:"img",attribute:"alt",default:""},caption:{type:"string",source:"html",selector:"figcaption"},id:{source:"attribute",selector:"img",attribute:"data-id"},url:{source:"attribute",selector:"img",attribute:"src"}}},effect:{type:"string",default:"slide"},sizeSlug:{type:"string"}},supports:{align:["center","wide","full"],html:!1},icon:{src:h,foreground:(0,c.m)()},edit:i.ZP,save:s.Z,transforms:l.Z,example:{attributes:f}}},91957:function(e,t,n){"use strict";var r=n(69307),a=n(712);t.Z=e=>{let{attributes:{align:t,autoplay:n,delay:o,effect:i,images:s},className:l}=e;return(0,r.createElement)(a.Z,{align:t,autoplay:n,className:l,delay:o,effect:i,images:s})}},712:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(54166),c=n(65736),u=n(11313),p=n(92819),d=n(52175),m=n(55609),h=n(44890),f=n(10099);const __=c.__;class g extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"pendingRequestAnimationFrame",null),a()(this,"resizeObserver",null),a()(this,"initializeResizeObserver",(e=>{this.clearResizeObserver(),this.resizeObserver=new l.Z((()=>{this.clearPendingRequestAnimationFrame(),this.pendingRequestAnimationFrame=requestAnimationFrame((()=>{(0,f.$m)(e),e.update()}))})),this.resizeObserver.observe(e.el)})),a()(this,"clearPendingRequestAnimationFrame",(()=>{this.pendingRequestAnimationFrame&&(cancelAnimationFrame(this.pendingRequestAnimationFrame),this.pendingRequestAnimationFrame=null)})),a()(this,"clearResizeObserver",(()=>{this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)})),a()(this,"prefersReducedMotion",(()=>"undefined"!=typeof window&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)),a()(this,"buildSwiper",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return(0,h.Z)(t.slideshowRef.current,{autoplay:!(!t.props.autoplay||t.prefersReducedMotion())&&{delay:1e3*t.props.delay,disableOnInteraction:!1},effect:t.props.effect,loop:!0,initialSlide:e,navigation:{nextEl:t.btnNextRef.current,prevEl:t.btnPrevRef.current},pagination:{clickable:!0,el:t.paginationRef.current,type:"bullets"}},{init:f.UA,imagesReady:f.$m,paginationRender:f.Wj,transitionEnd:f.HV})})),this.slideshowRef=(0,o.createRef)(),this.btnNextRef=(0,o.createRef)(),this.btnPrevRef=(0,o.createRef)(),this.paginationRef=(0,o.createRef)()}componentDidMount(){const{onError:e}=this.props;this.buildSwiper().then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{e(__("The Swiper library could not be loaded.","jetpack"))}))}componentWillUnmount(){this.clearResizeObserver(),this.clearPendingRequestAnimationFrame()}componentDidUpdate(e){const{align:t,autoplay:n,delay:r,effect:a,images:o,onError:i}=this.props;if(t===e.align&&(0,p.isEqual)(o,e.images)||this.swiperInstance&&this.swiperInstance.update(),a!==e.effect||n!==e.autoplay||r!==e.delay||o!==e.images){let t;t=this.swiperIndex?o.length===e.images.length?this.swiperInstance.realIndex:e.images.length:0,this.swiperInstance&&this.swiperInstance.destroy(!0,!0),this.buildSwiper(t).then((e=>{this.swiperInstance=e,this.initializeResizeObserver(e)})).catch((()=>{i(__("The Swiper library could not be loaded.","jetpack"))}))}}render(){if(!this.props?.images?.length)return null;const{autoplay:e,className:t,delay:n,effect:r,images:a}=this.props;return(0,o.createElement)("div",{className:t,"data-autoplay":e||null,"data-delay":e?n:null,"data-effect":r},(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_container swiper-container",ref:this.slideshowRef},(0,o.createElement)("ul",{className:"wp-block-jetpack-slideshow_swiper-wrapper swiper-wrapper"},a.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return(0,o.createElement)("li",{className:s()("wp-block-jetpack-slideshow_slide","swiper-slide",(0,u.isBlobURL)(a)&&"is-transient"),key:r||a},(0,o.createElement)("figure",null,(0,o.createElement)("img",{alt:t,className:`wp-block-jetpack-slideshow_image wp-image-${r}`,"data-id":r,src:a}),(0,u.isBlobURL)(a)&&(0,o.createElement)(m.Spinner,null),n&&(0,o.createElement)(d.RichText.Content,{className:"wp-block-jetpack-slideshow_caption gallery-caption",tagName:"figcaption",value:n})))}))),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-prev swiper-button-prev swiper-button-white",ref:this.btnPrevRef,role:"button"}),(0,o.createElement)("a",{className:"wp-block-jetpack-slideshow_button-next swiper-button-next swiper-button-white",ref:this.btnNextRef,role:"button"}),(0,o.createElement)("a",{"aria-label":"Pause Slideshow",className:"wp-block-jetpack-slideshow_button-pause",role:"button"}),(0,o.createElement)("div",{className:"wp-block-jetpack-slideshow_pagination swiper-pagination swiper-pagination-white",ref:this.paginationRef})))}}a()(g,"defaultProps",{effect:"slide"}),t.Z=g},10099:function(e,t,n){"use strict";n.d(t,{HV:function(){return l},UA:function(){return i},Wj:function(){return c},$m:function(){return s}});var r=n(81975),a=n(92819);const o="wp-block-jetpack-slideshow_autoplay-paused";function i(e){s(e),l(e);document.querySelector("body").dispatchEvent(new Event("jetpack-lazy-images-load")),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function s(e){if(!e||!e.el)return;const t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(!t)return;const n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,1.7777777777777777),1),a="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,a),i=`${Math.floor(o)}px`,s=`${Math.floor(o/2)}px`;e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=i,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=s}function l(e){(0,a.forEach)(e.slides,((t,n)=>{t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){const t=e.slides[e.activeIndex];if(!t)return;const n=t.getElementsByTagName("FIGCAPTION")[0],a=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:(0,r.escapeHTML)(a.alt))}(e)}function c(e){(0,a.forEach)(e.pagination.bullets,(t=>{t.addEventListener("click",(()=>{const t=e.slides[e.realIndex];setTimeout((()=>{t.focus()}),500)}))}))}},4830:function(e,t,n){"use strict";var r=n(4981),a=n(92819);function o(e){return(0,a.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const i={from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>o(e).length>0,transform:e=>{const t=o(e);return(0,r.createBlock)("jetpack/slideshow",{images:t.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/tiled-gallery"],transform:e=>{let{images:t}=e;const n=o(t);return n.length>0?(0,r.createBlock)("jetpack/slideshow",{images:n.map((e=>{let{alt:t,caption:n,id:r,url:a}=e;return{alt:t,caption:n,id:r,url:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,r.createBlock)("jetpack/slideshow")}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n}=e;return(0,r.createBlock)("core/gallery",{images:t,ids:n})}},{type:"block",blocks:["core/image"],transform:e=>{let{images:t}=e;return t.length>0?t.map((e=>{let{id:t,url:n,alt:a,caption:o}=e;return(0,r.createBlock)("core/image",{id:t,url:n,alt:a,caption:o})})):(0,r.createBlock)("core/image")}}]};t.Z=i},23133:function(e,t,n){"use strict";n.d(t,{z:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(65736),s=n(80505),l=n(52489),c=n(79465);const __=i.__,u=[{title:__("Google Search","jetpack"),icon:"google",name:"google",preview:s.Z},{title:__("Facebook","jetpack"),icon:"facebook",name:"facebook",preview:e=>(0,o.createElement)(l.Z,a()({type:"article"},e))},{title:__("Twitter","jetpack"),icon:"twitter",name:"twitter",preview:e=>(0,o.createElement)(c.Z,e)}]},42366:function(e,t,n){"use strict";n.d(t,{u2:function(){return u},Xd:function(){return p},w6:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(72067),s=n(32673),l=n(8277),c=n(6538);const __=a.__,u="social-previews",p={render:()=>(0,r.createElement)(d,null)},d=function(e){let{showUpgradeNudge:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.createElement)(r.Fragment,null,n&&(0,r.createElement)(c.Z,{showUpgradeNudge:t,onClose:()=>a(!1)}),(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t}))),(0,r.createElement)(i.PluginPrePublishPanel,{title:__("Social Previews","jetpack")},(0,r.createElement)(l.Z,{openModal:()=>a(!0),showUpgradeNudge:t})))}},6538:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(28723),l=n(23133),c=n(51591),u=n(479);const __=a.__;t.Z=(0,i.withSelect)(((e,t)=>{if(t.showUpgradeNudge)return{};const{getMedia:n,getUser:r}=e("core"),{getCurrentPost:a,getEditedPostAttribute:o}=e("core/editor"),{getTweetTemplate:i,getTweetStorm:s,getShareMessage:l,isTweetStorm:c}=e("jetpack/publicize"),p=o("featured_media"),d=o("author"),m=d&&r(d),h={post:a(),title:o("title"),description:o("meta")?.advanced_seo_description||o("excerpt")||o("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:o("link"),author:m?.name,image:!!p&&(0,u.i)(n(p))};let f=[];return c()?f=s():f.push({...i(),text:l(),card:{...h,type:h.image?"summary_large_image":"summary"}}),{...h,tweets:f,isTweetStorm:c()}}))((function(e){let{onClose:t,showUpgradeNudge:n,image:a,title:i,description:u,url:p,author:d,isTweetStorm:m,tweets:h}=e;const f=l.z.map((e=>({...e,title:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(c.av,{serviceName:e.icon}),e.title)})));return(0,r.createElement)(o.Modal,{onRequestClose:t,title:__("Social Previews","jetpack"),className:"jetpack-social-previews__modal"},n?(0,r.createElement)(s.Z,null):(0,r.createElement)(o.TabPanel,{className:"jetpack-social-previews__modal-previews",tabs:f,initialTabName:m?"twitter":null,orientation:"vertical"},(e=>(0,r.createElement)("div",null,(0,r.createElement)(e.preview,{title:i,description:u,url:p,author:d,image:a,isTweetStorm:m,tweets:h})))))}))},8277:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(23133),s=n(51591);const __=a.__;t.Z=function(e){let{openModal:t,showUpgradeNudge:n}=e;const a=n?__("Learn more","jetpack"):__("Preview","jetpack",0),l=n?__("Learn more about paid plans","jetpack"):__("Open Social Previews","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__panel"},(0,r.createElement)("p",null,__("Preview what this will look like on social networks and Google search.","jetpack")),n&&(0,r.createElement)("p",null,__("Business or eCommerce plan required.","jetpack")),(0,r.createElement)("div",{className:"jetpack-gutenberg-social-icons"},i.z.map((e=>(0,r.createElement)(s.av,{key:e.icon,serviceName:e.icon,className:"jetpack-social-previews__icon"})))),(0,r.createElement)(o.Button,{isSecondary:!0,onClick:t,label:l},a))}},28723:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(69307),a=n(55609),o=n(65736),i=n(11973),s=n(37447),l=n(18733),c=n(21409),u=n(42366);const __=o.__;function p(){const e=(0,c.Z)(u.u2)?.details?.required_plan,[t,n,o]=(0,l.Z)(e,(()=>{i.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:e,block:u.u2})})),p=o?__("Redirecting…","jetpack"):__("Upgrade","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-social-previews__modal-upgrade"},(0,r.createElement)("img",{className:"jetpack-social-previews__upgrade-illustration",src:s,width:"351",height:"264",alt:""}),(0,r.createElement)("div",{className:"jetpack-social-previews__upgrade-description"},(0,r.createElement)("h2",{className:"jetpack-social-previews__upgrade-heading"},__("Upgrade to a Business plan to unlock the power of our SEO tools","jetpack")),(0,r.createElement)("ul",{className:"jetpack-social-previews__upgrade-feature-list"},(0,r.createElement)("li",null,__("Preview your site’s content as it will appear on Facebook, Twitter, and the WordPress.com Reader.","jetpack")),(0,r.createElement)("li",null,__("Control how page titles will appear on Google search results and social networks.","jetpack")),(0,r.createElement)("li",null,__("Customize your front page metadata to change how your site appears to search engines.","jetpack"))),(0,r.createElement)(a.Button,{href:t,isPrimary:!0,label:__("Purchase a Business plan to access social previews","jetpack"),onClick:n,target:"_top",isBusy:o},p)))}},479:function(e,t,n){"use strict";function r(e){return e?e.media_details?.sizes?.large?.source_url||e.source_url:null}n.d(t,{i:function(){return r}})},22547:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(58703);const __=i.__;t.Z=e=>{let{allowedMediaTypes:t,attributes:{mediaFiles:n},onSelectMedia:i}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,!!n.length&&(0,r.createElement)(o.ToolbarGroup,null,(0,r.createElement)(o.ToolbarItem,null,(()=>(0,r.createElement)(a.MediaUpload,{title:__("Edit Story","jetpack"),onSelect:i,allowedTypes:t,addToGallery:!0,multiple:"add",value:n.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,r.createElement)(s.Z,{label:__("Edit Story","jetpack"),onClick:t})}}))))))}},68329:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(65736),l=n(11313),c=n(9818),u=n(52175),p=n(55609),d=n(20222),m=n(22547),h=n(4045);const __=s.__,f=["image","video"],g=e=>{const t=(0,i.pick)(e,["alt","title","id","link","type","mime","caption","width","height"]);return t.url=(0,i.get)(e,["media_details","original","url"])||(0,i.get)(e,["media_details","videopress","original"])||(0,i.get)(e,["media_details","sizes","large","source_url"])||(0,i.get)(e,["sizes","large","url"])||e.url,t.type=e.media_type||e.type,t.mime=e.mime_type||e.mime,t.title=t.title?.rendered||t.title,t.width=t.width||e.media_details?.width,t.height=t.height||e.media_details?.height,t};t.Z=(0,p.withNotices)((function(e){let{attributes:t,className:n,isSelected:a,noticeOperations:i,noticeUI:s,setAttributes:p}=e;const{mediaFiles:b}=t,{lockPostSaving:v,unlockPostSaving:k}=(0,c.useDispatch)("core/editor"),y="storyBlockLock",E=e=>{const t=e.map((e=>{if(!isNaN(e)){return b.find((t=>t.id===e))||{id:e}}return e})).map(g),n=t.filter((e=>!(0,l.isBlobURL)(e.url)));t.length!==n.length?v(y):k(y),p({mediaFiles:t})},w=(0,r.createElement)(m.Z,{allowedMediaTypes:f,attributes:t,onSelectMedia:E}),_=!!b.length,C=(0,r.createElement)(u.MediaPlaceholder,{addToGallery:_,isAppender:_,className:n,disableMediaButtons:_&&!a,icon:!_&&(0,r.createElement)(u.BlockIcon,{icon:d.qv}),labels:{title:!_&&__("Story","jetpack"),instructions:!_&&__("Drag images and videos, upload new ones, or select files from your library.","jetpack")},onSelect:E,accept:f.map((e=>e+"/*")).join(","),allowedTypes:f,multiple:"add",value:b,notices:_?void 0:s,onError:i.createErrorNotice});return _?(0,r.createElement)(r.Fragment,null,w,s,(0,r.createElement)("div",{className:o()("wp-block-jetpack-story","wp-story",n)},(0,r.createElement)(h.Z,{slides:b,disabled:!a,showSlideCount:a,shadowDOM:{enabled:!1},playInFullscreen:!1,tapToPlayPause:!1,playOnNextSlide:!1})),a&&C):(0,r.createElement)(r.Fragment,null,w,C)}))},96178:function(e,t,n){"use strict";var r=n(69307),a=n(55609);const o=(0,n(41632).Z)((0,r.createElement)(a.G,null,(0,r.createElement)(a.Path,{d:"M17 5a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2h9z"}),(0,r.createElement)(a.Path,{d:"M13 4H5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2z"}),(0,r.createElement)(a.Path,{d:"M7 16h8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"})));t.Z=o},20222:function(e,t,n){"use strict";n.d(t,{qv:function(){return i.Z},u2:function(){return p},Xd:function(){return d}});var r=n(65736),a=n(68329),o=n(1436),i=n(96178),s=n(20510),l=n(57535),c=n(15915);const __=r.__,_x=r._x,u={mediaFiles:[{alt:"",caption:"",mime:"image/jpg",type:"image",id:22,url:c}]},p="story",d={title:__("Story","jetpack"),category:(0,s.Z)("media","layout"),keywords:[_x("story","block search term","jetpack"),_x("image","block search term","jetpack"),_x("video","block search term","jetpack"),_x("gallery","block search term","jetpack")],description:__("Add an interactive story.","jetpack"),attributes:{settings:{type:"object"},mediaFiles:{type:"array",default:[]}},supports:{html:!1},icon:{src:i.Z,foreground:(0,l.m)()},edit:a.Z,save:o.Z,example:{attributes:u}}},18754:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(55609);function o(e){let{currentMedia:t}=e;const n=t&&"image"===t.type?t.url:null;return(0,r.createElement)("div",{className:"wp-story-background"},(0,r.createElement)("div",{className:"wp-story-background-image",style:{backgroundImage:n?`url("${n}")`:"none"}}),(0,r.createElement)("div",{className:"wp-story-background-blur"}),(0,r.createElement)(a.SVG,{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"0",height:"0"},(0,r.createElement)("filter",{id:"gaussian-blur-18"},(0,r.createElement)("feGaussianBlur",{stdDeviation:"18"}))))}},85974:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609);const __=i.__;function l(e){let{isEllipsis:t,disabled:n,index:a,isSelected:l,progress:c,onClick:u}=e;const p=n||t;let d=null;return t||(d=l?(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Slide %d, currently selected","jetpack"),a+1):(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Go to slide %d","jetpack"),a+1)),(0,r.createElement)(s.Button,{role:p?"presentation":"tab",key:a,className:o()("wp-story-pagination-bullet",{"wp-story-pagination-ellipsis":t}),"aria-label":d,"aria-disabled":p||l,onClick:p||l?void 0:u,disabled:p},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar"},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar-progress",style:{width:`${c}%`}})))}},9610:function(e,t,n){"use strict";n.d(t,{b:function(){return l},r:function(){return c}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{className:t,size:n,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button","circle-icon","outlined","bordered",t),style:{width:`${n}px`,height:`${n}px`}},l))},c=e=>{let{className:t,size:n=24,label:r,isPressed:i,...l}=e;return(0,o.createElement)("button",a()({type:"button","aria-label":r,"aria-pressed":i,className:s()("jetpack-mdc-icon-button",t),style:{width:`${n}px`,height:`${n}px`}},l))}},1019:function(e,t,n){"use strict";var r=n(69307);t.Z=()=>(0,r.createElement)("div",{className:"wp-story-loading-spinner"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__outer"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__inner"})))},50281:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const _x=a._x;function s(e){let{playing:t,muted:n,onPlayPressed:a,onMutePressed:s,showMute:l}=e;return(0,r.createElement)("div",{className:"wp-story-controls"},(0,r.createElement)(o.r,{isPressed:t,label:t?_x("pause","Button tooltip text","jetpack"):_x("play","Button tooltip text","jetpack",0),onClick:a},t?(0,r.createElement)(i.fp,null):(0,r.createElement)(i.o1,null)),l&&(0,r.createElement)(o.r,{isPressed:n,label:n?_x("unmute","Button tooltip text","jetpack"):_x("mute","Button tooltip text","jetpack",0),onClick:s},n?(0,r.createElement)(i.xb,null):(0,r.createElement)(i.MC,null)))}},40220:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(65736),o=n(9610),i=n(29089);const __=a.__;function s(e){let{fullscreen:t,onExitFullscreen:n,siteIconUrl:a,storyTitle:s}=e;return t?(0,r.createElement)("div",{className:"wp-story-meta"},(0,r.createElement)("div",{className:"wp-story-icon"},(0,r.createElement)("img",{alt:__("Site icon","jetpack"),src:a,width:"40",height:"40"})),(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"wp-story-title"},s)),(0,r.createElement)(o.r,{className:"wp-story-exit-fullscreen",label:__("Exit Fullscreen","jetpack"),onClick:n},(0,r.createElement)(i.Tw,null))):null}},29089:function(e,t,n){"use strict";n.d(t,{o1:function(){return s},fp:function(){return l},Tw:function(){return c},MC:function(){return u},xb:function(){return p},JM:function(){return d},Vq:function(){return m}});var r=n(69307),a=n(55609),o=n(41632);const i=e=>{let{children:t,size:n}=e;return(0,o.Z)(t,n,n)},s=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M8 5v14l11-7z"}))},l=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}))},c=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}))},u=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}))},p=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"}))},d=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}))},m=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(a.Path,{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}))}},27870:function(e,t,n){"use strict";n.d(t,{gT:function(){return r.Z},ZX:function(){return a.Z},h4:function(){return o.Z},aV:function(){return i.Z},Aq:function(){return s.Z},WB:function(){return l.Z},pU:function(){return c.pU}});var r=n(85974),a=n(50281),o=n(40220),i=n(46531),s=n(18754),l=n(1019),c=n(64816);n(9610)},64816:function(e,t,n){"use strict";n.d(t,{pU:function(){return u}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i);const l=e=>{let{title:t,alt:n,className:r,id:a,mediaRef:i,mime:l,sizes:c,srcset:u,url:p}=e;return(0,o.createElement)("img",{ref:i,"data-id":a,"data-mime":l,title:t,alt:n,src:p,className:s()("wp-story-image",`wp-image-${a}`,r),srcSet:u,sizes:c})},c=e=>{let{title:t,className:n,id:r,mediaRef:a,mime:i,url:l,poster:c}=e;return(0,o.createElement)("video",{className:s()("wp-story-video","intrinsic-ignore",`wp-video-${r}`,n),ref:a,"data-id":r,title:t,type:i,src:l,poster:c,tabIndex:-1,preload:"auto",playsInline:!0})},u=e=>{let{targetAspectRatio:t,cropUpTo:n,type:r,width:i,height:s,...u}=e,p=null;if(i&&s){const e=i/s;if(e>=t){e>t/(1-n)||(p="wp-story-crop-wide")}else{e<t*(1-n)||(p="wp-story-crop-narrow")}}const d="video"===r||(u.mime||"").startsWith("video/");return(0,o.createElement)("figure",null,d?(0,o.createElement)(c,a()({},u,{className:p})):(0,o.createElement)(l,a()({},u,{className:p})))}},46531:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(48735),o=n.n(a),i=n(65736),s=n(9610),l=n(29089);const __=i.__;function c(e){let{ended:t,hasPrevious:n,onNextSlide:a,onPreviousSlide:c,icon:u,slideCount:p,showSlideCount:d}=e;const m=(0,r.useCallback)((e=>{t||(e.stopPropagation(),c())}),[c,t]),h=(0,r.useCallback)((e=>{t||(e.stopPropagation(),a())}),[a,t]);return(0,r.createElement)("div",{className:"wp-story-overlay"},d&&(0,r.createElement)("div",{className:"wp-story-embed-icon"},u,(0,r.createElement)("span",null,p)),!d&&(0,r.createElement)("div",{className:"wp-story-embed-icon-expand"},(0,r.createElement)(o(),{role:"img"})),n&&(0,r.createElement)("div",{className:"wp-story-prev-slide",onClick:m},(0,r.createElement)(s.b,{size:44,label:__("Previous Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.Vq,{size:24}):(0,r.createElement)(l.JM,{size:24}))),(0,r.createElement)("div",{className:"wp-story-next-slide",onClick:h},(0,r.createElement)(s.b,{size:44,label:__("Next Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(l.JM,{size:24}):(0,r.createElement)(l.Vq,{size:24}))))}},58871:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(89105),o=n.n(a),i=n(31158),s=n(29891),l=n(72096);const c=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);function u(e){let{className:t,fullscreenClassName:n,bodyFullscreenClassName:a,fullscreen:u,shadowDOM:p,onKeyDown:d,onExitFullscreen:m,playerQuerySelector:h,children:f}=e;const g=(0,r.useRef)(),b=(0,r.useRef)(),[v,k]=(0,r.useState)(null),y=c&&s.am(),E=u&&!y,w=u&&y;return(0,r.useLayoutEffect)((()=>{if(y)u?g.current&&s.uP(g.current,m):s.bG()&&s.JF();else if(u){if(k([document.documentElement.scrollLeft,document.documentElement.scrollTop]),document.body.classList.add(a),document.getElementsByTagName("html")[0].classList.add(a),b.current){const e=b.current.querySelector(h);e&&e.focus()}}else if(document.body.classList.remove(a),document.getElementsByTagName("html")[0].classList.remove(a),v){window.scrollTo(...v);const e=g.current.querySelector(h);e&&e.focus()}}),[u]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,p,(0,r.createElement)("div",{ref:g,className:o()(t,{[n]:w}),onKeyDown:d},!E&&f)),(0,r.createElement)(l.Z,{className:o()(t,{[n]:E}),isOpened:E,onRequestClose:m,shadowDOM:p,onKeyDown:E&&d,focusOnMount:!1,modalRef:b},E&&f))}},4045:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(9818),o=n(39630),i=(n(66930),n(54616)),s=n(58871);function l(e){let{id:t,slides:n,metadata:l,disabled:c,...u}=e;const p=(0,r.useMemo)((()=>t||Math.random().toString(36)),[t]),{init:d,setEnded:m,setPlaying:h,setFullscreen:f,showSlide:g}=(0,a.useDispatch)("jetpack/story/player"),{playing:b,currentSlideIndex:v,fullscreen:k,isReady:y,playerSettings:E}=(0,a.useSelect)((e=>{const{getCurrentSlideIndex:t,getSettings:n,isFullscreen:r,isPlayerReady:a,isPlaying:o}=e("jetpack/story/player");return a(p)?{playing:o(p),currentSlideIndex:t(p),isReady:!0,fullscreen:r(p),playerSettings:n(p)}:{isReady:!1}}),[p]);(0,r.useEffect)((()=>{y||d(p,{slideCount:n.length,...u})}),[y,p]);const w=(0,r.useCallback)((e=>{switch(e.keyCode){case o.ENTER:if(k)break;case o.SPACE:h(p,!b);break;case o.LEFT:v>0&&g(p,v-1);break;case o.RIGHT:v<n.length-1?g(p,v+1):m(p)}}),[p,v,k,b]),_=(0,r.useCallback)((()=>{f(p,!1)}),[p]);return y?(0,r.createElement)(s.Z,{shadowDOM:E.shadowDOM,className:"wp-story-app",fullscreenClassName:"wp-story-fullscreen",bodyFullscreenClassName:"wp-story-in-fullscreen",playerQuerySelector:".wp-story-container",fullscreen:k,onExitFullscreen:_,onKeyDown:w},(0,r.createElement)(i.Z,{id:p,slides:n,metadata:l,disabled:c})):null}},29891:function(e,t,n){"use strict";n.d(t,{am:function(){return r},bG:function(){return a},uP:function(){return o},JF:function(){return i}});const r=()=>document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled,a=()=>document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullScreenElement,o=(e,t)=>{if((e.requestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen).call(e),t){const e=()=>{document.fullscreenElement||(document.removeEventListener("fullscreenchange",e),t())};document.addEventListener("fullscreenchange",e)}},i=()=>(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen).call(document)},31158:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307);const a=window&&window.Element&&window.Element.prototype.hasOwnProperty("attachShadow");function o(e){let{enabled:t,delegatesFocus:n=!1,mode:o="open",globalStyleElements:s=[],adoptedStyleSheets:l=null,mountOnElement:c=null,children:u}=e;const[p,d]=(0,r.useState)(null),m=c||p,[h,f]=(0,r.useState)(null),g="string"==typeof s?[...document.querySelectorAll(s)]:s,b=a&&t&&g.length>0,v=(0,r.useCallback)((e=>{null!==e&&d(e.parentNode)}),[]);if((0,r.useEffect)((()=>{if(!m)return;if(m.shadowRoot)return void f(m.shadowRoot);const e=m.attachShadow({delegatesFocus:n,mode:o});l&&(e.adoptedStyleSheets=l),f(e)}),[m]),b&&!h)return c?null:(0,r.createElement)("span",{ref:v});const k=(0,r.createElement)(r.Fragment,null,b&&(0,r.createElement)(i,{globalStyleElements:g}),u);return b?(0,r.createPortal)(k,h):k}function i(e){let{globalStyleElements:t}=e;return(0,r.createElement)(r.Fragment,null,t.map(((e,t)=>{let{id:n,tagName:a,attributes:o,innerHTML:i}=e;return"LINK"===a?(0,r.createElement)("link",{key:n||t,id:n,rel:o.rel.value,href:o.href.value}):"STYLE"===a?(0,r.createElement)("style",{key:n||t,id:n},i):void 0})))}},94292:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{const t=(0,r.useRef)(),n=(0,r.useRef)(),a=(0,r.useRef)(e),o=(0,r.useCallback)((e=>{e.touches&&1===e.touches.length&&e.preventDefault()}),[]);return(0,r.useEffect)((()=>{a.current=e}),[e]),{onTouchStart:(0,r.useCallback)((e=>{e.target&&(e.target.addEventListener("touchend",o,{passive:!1}),n.current=e.target),t.current=setTimeout((()=>{a.current&&a.current(!0),t.current=null}),200)}),[]),onTouchEnd:(0,r.useCallback)((e=>{t.current?clearTimeout(t.current):(a.current&&a.current(!1),e.stopPropagation()),n.current&&n.current.removeEventListener("touchend",o)}),[])}}},21531:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){const t=(0,r.useRef)(null),n=(0,r.useRef)(!1),a=(0,r.useRef)(e),o=(0,r.useRef)(e);return o.current=e,(0,r.useLayoutEffect)((()=>{e.forEach(((e,r)=>{const o=a.current[r];"function"==typeof e&&e!==o&&!1===n.current&&(o(null),e(t.current))})),a.current=e}),e),(0,r.useLayoutEffect)((()=>{n.current=!1})),(0,r.useCallback)((e=>{t.current=e,n.current=!0;(e?o.current:a.current).forEach((t=>{"function"==typeof t?t(e):t&&t.hasOwnProperty("current")&&(t.current=e)}))}),[])}},97524:function(e,t,n){"use strict";async function r(e){const t=e.tagName.toLowerCase();if("img"===t){if(e.complete)return;await new Promise((t=>{e.addEventListener("load",t,{once:!0})}))}else if("video"===t||"audio"===t){if(e.HAVE_ENOUGH_DATA===e.readyState)return;await new Promise((t=>{e.addEventListener("canplaythrough",t,{once:!0}),e.addEventListener("load",t,{once:!0}),e.HAVE_NOTHING===e.readyState&&e.networkState!==e.NETWORK_LOADING&&e.load()}))}}n.d(t,{Z:function(){return r}})},82295:function(e,t,n){"use strict";n.d(t,{BM:function(){return s},i1:function(){return l}});var r=n(92819);const a=new Set(["alert","status","log","marquee","timer"]);let o=[],i=!1;function s(e){if(i)return;const t=document.body.children;(0,r.forEach)(t,(t=>{t!==e&&function(e){const t=e.getAttribute("role");return!("SCRIPT"===e.tagName||e.hasAttribute("aria-hidden")||e.hasAttribute("aria-live")||a.has(t))}(t)&&(t.setAttribute("aria-hidden","true"),o.push(t))})),i=!0}function l(){i&&((0,r.forEach)(o,(e=>{e.removeAttribute("aria-hidden")})),o=[],i=!1)}},97790:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(39630),o=n(94333),i=n(21531);function s(e){let{overlayClassName:t,children:n,className:s,focusOnMount:l,shouldCloseOnEsc:c=!0,onRequestClose:u,onKeyDown:p,modalRef:d}=e;const m=(0,o.useFocusOnMount)(l),h=(0,o.useConstrainedTabbing)(),f=(0,o.useFocusReturn)();return(0,r.createElement)("div",{className:t,onKeyDown:function(e){c&&e.keyCode===a.ESCAPE&&(e.stopPropagation(),u&&u(e)),e.target&&"button"===e.target.tagName.toLowerCase()&&e.keyCode===a.SPACE||p&&p(e)}},(0,r.createElement)("div",{className:s,ref:(0,i.Z)([h,f,m,d])},n))}},72096:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333),s=n(31158),l=n(97790),c=n(82295);let u,p=0;const d=()=>{};class m extends o.Component{constructor(e){super(e),this.prepareDOM()}componentDidMount(){p++,1===p&&this.openFirstModal()}componentWillUnmount(){p--,0===p&&this.closeLastModal(),this.cleanDOM()}prepareDOM(){u||(u=document.createElement("div"),document.body.appendChild(u)),this.node=document.createElement("div"),u.appendChild(this.node),this.node.ontouchstart=d,this.node.ontouchend=d}cleanDOM(){u.removeChild(this.node)}openFirstModal(){c.BM(u)}closeLastModal(){c.i1()}render(){const{children:e,isOpened:t,shadowDOM:n,...r}=this.props;return(0,o.createElement)(s.Z,a()({},n,{mountOnElement:this.node}),t&&(0,o.createElement)(l.Z,r,e))}}m.defaultProps={shouldCloseOnEsc:!0,isOpened:!1,focusOnMount:!0},t.Z=(0,i.withInstanceId)(m)},54616:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(92819),c=n(11313),u=n(94333),p=n(65736),d=n(9818),m=n(12378),h=n(96178),f=n(16019),g=n(27870),b=n(94292);const __=p.__;function v(e){let{id:t,slides:n,metadata:r,disabled:i}=e;const{setFullscreen:p,setEnded:v,setPlaying:k,setMuted:y,showSlide:E}=(0,d.useDispatch)("jetpack/story/player"),{playing:w,muted:_,currentSlideIndex:C,currentSlideEnded:j,ended:S,fullscreen:x,settings:T}=(0,d.useSelect)((e=>{const{getCurrentSlideIndex:n,getSettings:r,hasCurrentSlideEnded:a,hasEnded:o,isFullscreen:i,isMuted:s,isPlaying:l}=e("jetpack/story/player");return{playing:l(t),muted:s(t),currentSlideIndex:n(t),currentSlideEnded:a(t),ended:o(t),fullscreen:i(t),settings:r(t)}}),[t]),N=(0,o.useRef)(),[A,P]=(0,o.useState)(null),[I,{width:M,height:R}]=(0,u.useResizeObserver)(),[L,B]=(0,o.useState)(T.defaultAspectRatio),Z=(0,l.some)(n,(e=>(0,c.isBlobURL)(e.url))),F=e=>{E(t,e)},D=(0,o.useCallback)((()=>{i||x||T.playInFullscreen&&!w&&k(t,!0)}),[w,i,x]),{onTouchStart:O,onTouchEnd:z}=(0,b.Z)((e=>{k(t,!e)}),[]),U=(0,o.useCallback)((()=>{C>0&&F(C-1)}),[C]),$=(0,o.useCallback)((()=>{C<n.length-1?F(C+1):v(t)}),[C,n]),V=(0,o.useCallback)((()=>{p(t,!1)}),[]);let G,q;return(0,o.useEffect)((()=>{i&&w&&k(t,!1)}),[i,w]),(0,o.useEffect)((()=>{w&&j&&$()}),[w,j]),(0,o.useLayoutEffect)((()=>{if(!N.current)return;let e=Math.round(T.defaultAspectRatio*N.current.offsetHeight);x&&(e=Math.abs(1-e/M)<T.cropUpTo?M:e),P(e)}),[M,R,x]),(0,o.useLayoutEffect)((()=>{A&&N.current&&N.current.offsetHeight>0&&B(A/N.current.offsetHeight)}),[A]),G=x?[__("You are currently playing a story.","jetpack"),w?__("Press space to pause.","jetpack"):__("Press space to play.","jetpack",0),__("Press escape to exit.","jetpack")].join(" "):__("Play story","jetpack"),q=i?"presentation":x?"dialog":"button",(0,o.createElement)("div",{className:"wp-story-display-contents"},I,(0,o.createElement)("div",{role:q,"aria-label":G,tabIndex:x?-1:0,className:s()("wp-story-container",{"wp-story-with-controls":!i&&!x&&!T.playInFullscreen,"wp-story-fullscreen":x,"wp-story-ended":S,"wp-story-disabled":i,"wp-story-clickable":!i&&!x}),style:{maxWidth:`${A}px`},onClick:D,onTouchStart:O,onTouchEnd:z},(0,o.createElement)(g.h4,a()({},r,{fullscreen:x,onExitFullscreen:V})),(0,o.createElement)("div",{ref:N,className:"wp-story-wrapper"},n.map(((e,n)=>(0,o.createElement)(m.Z,{playerId:t,key:n,media:e,index:n,playing:!i&&w,uploading:Z,settings:T,targetAspectRatio:L})))),(0,o.createElement)(g.aV,{icon:h.Z,slideCount:n.length,showSlideCount:T.showSlideCount,ended:S,hasPrevious:C>0,onPreviousSlide:U,onNextSlide:$}),T.showProgressBar&&(0,o.createElement)(f.ZP,{playerId:t,slides:n,disabled:!x,onSlideSeek:F,maxBullets:x?T.maxBulletsFullscreen:T.maxBullets}),(0,o.createElement)(g.ZX,{playing:w,muted:_,onPlayPressed:()=>k(t,!w),onMutePressed:()=>y(t,!_),showMute:(e=>{const t=e<n.length?n[e]:null;return!!t&&("video"===t.type||(t.mime||"").startsWith("video/"))})(C)})),x&&(0,o.createElement)(g.Aq,{currentMedia:T.blurredBackground&&n.length>C&&n[C]}))}},16019:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(27870),i=n(9818);const s=e=>{let{key:t,playerId:n,index:a,disabled:s,isSelected:l,onClick:c}=e;const u=(0,i.useSelect)((e=>e("jetpack/story/player").getCurrentSlideProgressPercentage(n)),[]);return(0,r.createElement)(o.gT,{key:t,index:a,progress:u,disabled:s,isSelected:l,onClick:c})};t.ZP=e=>{let{playerId:t,slides:n,disabled:l,onSlideSeek:c,maxBullets:u}=e;const{currentSlideIndex:p}=(0,i.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t)})),[]),d=Math.min(n.length,u),m=Math.floor(d/2);let h,f=0,g=n.length-1;return n.length<=u||p<m?(h=p,g=d-1):p>=n.length-m?(h=p-n.length+d,f=n.length-d):(h=m,f=p-m,g=p+m),(0,r.createElement)("div",{className:"wp-story-pagination wp-story-pagination-bullets",role:"tablist"},f>0&&(0,r.createElement)(o.gT,{key:"bullet-0",index:f-1,progress:100,isEllipsis:!0}),(0,a.range)(1,d+1).map(((e,n)=>{const a=n+f;let i=null;if(a<p)i=100;else{if(!(a>p))return(0,r.createElement)(s,{playerId:t,key:`bullet-${n}`,index:a,disabled:l,isSelected:h===n,onClick:()=>c(a)});i=0}return(0,r.createElement)(o.gT,{key:`bullet-${n}`,index:a,progress:i,disabled:l,isSelected:h===n,onClick:()=>c(a)})})),g<n.length-1&&(0,r.createElement)(o.gT,{key:`bullet-${d+1}`,index:g+1,progress:0,isEllipsis:!0}))}},12378:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(97524),s=n(89105),l=n.n(s),c=n(9818),u=n(27870);t.Z=e=>{let{playerId:t,media:n,index:r,playing:s,uploading:p,settings:d,targetAspectRatio:m}=e;const{currentSlideIndex:h,buffering:f}=(0,c.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t),buffering:e("jetpack/story/player").isBuffering(t)})),[]),{slideReady:g}=(0,c.useDispatch)("jetpack/story/player"),b=r===h,v=(0,o.useRef)(null),[k,y]=(0,o.useState)(!1),[E,w]=(0,o.useState)(!0);return(0,o.useEffect)((()=>{if(b&&!E){const e=v.current&&v.current.src&&"video"===v.current.tagName.toLowerCase()?v.current:null;g(t,v.current,e?e.duration:d.imageTime)}}),[b,E]),(0,o.useEffect)((()=>{r<=h+(s?1:0)&&y(!0)}),[s,h]),(0,o.useLayoutEffect)((()=>{v.current&&(0,i.Z)(v.current).then((()=>{w(!1)}))}),[k,p]),(0,o.createElement)(o.Fragment,null,b&&(E||p||f)&&(0,o.createElement)("div",{className:l()("wp-story-slide","is-loading",{transparent:s&&f,"semi-transparent":p||!s&&f})},(0,o.createElement)(u.WB,null)),(0,o.createElement)("div",{role:"figure",className:"wp-story-slide",style:{display:b&&!E?"block":"none"},tabIndex:b?0:-1},k&&(0,o.createElement)(u.pU,a()({},n,{targetAspectRatio:m,cropUpTo:d.cropUpTo,index:r,mediaRef:v}))))}},46192:function(e,t,n){"use strict";function r(e,t){return{type:"SET_MUTED",value:t,playerId:e}}function a(e,t){return{type:"SET_PLAYING",value:t,playerId:e}}function o(e,t){return{type:"SHOW_SLIDE",index:t,playerId:e}}function i(e,t,n){return{type:"SLIDE_READY",mediaElement:t,duration:n,playerId:e}}function s(e,t){return{type:"SET_CURRENT_SLIDE_PROGRESS",value:t,playerId:e}}function l(e){return{type:"RESET_CURRENT_SLIDE_PROGRESS",playerId:e}}function c(e){return{type:"SET_CURRENT_SLIDE_ENDED",playerId:e}}function u(e,t){return{type:"SET_FULLSCREEN",playerId:e,fullscreen:t}}function p(e){return{type:"ENDED",playerId:e}}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:"INIT",playerId:e,settings:t}}function m(e,t){return{type:"SET_BUFFERING",value:t,playerId:e}}n.r(t),n.d(t,{setMuted:function(){return r},setPlaying:function(){return a},showSlide:function(){return o},slideReady:function(){return i},setCurrentSlideProgress:function(){return s},resetCurrentSlideProgress:function(){return l},setCurrentSlideEnded:function(){return c},setFullscreen:function(){return u},setEnded:function(){return p},init:function(){return d},setBuffering:function(){return m}})},58571:function(e,t,n){"use strict";n.d(t,{XO:function(){return r},Qz:function(){return a},H2:function(){return o}});const r={currentTime:0,duration:null,timeout:null,lastUpdate:null},a={progress:r,index:0,mediaElement:null,duration:null,ended:!1,ready:!1},o={slideCount:0,currentSlide:a,previousSlide:null,muted:!1,playing:!1,ended:!1,buffering:!1,fullscreen:!1,settings:{imageTime:5,startMuted:!1,playInFullscreen:!0,playOnNextSlide:!0,playOnLoad:!1,exitFullscreenOnEnd:!0,loadInFullscreen:!1,blurredBackground:!0,showSlideCount:!1,showProgressBar:!0,shadowDOM:{enabled:!0,mode:"open",globalStyleElements:'#jetpack-block-story-css, link[href*="jetpack/_inc/blocks/story/view.css"]'},defaultAspectRatio:.5625,cropUpTo:.2,volume:.8,maxBullets:7,maxBulletsFullscreen:14}}},83566:function(e,t,n){"use strict";var r=n(46192),a=n(96494);const o=e=>e&&e.src&&"video"===e.tagName.toLowerCase();function i(e,t){const{getState:n}=t,r=e.playerId,i=(0,a.isMuted)(n(),r),s=(0,a.isPlaying)(n(),r),l=(0,a.getCurrentMediaElement)(n(),r),c=(0,a.getPreviousSlideMediaElement)(n(),r),u=(0,a.getSettings)(n(),r);o(c)&&(c.currentTime=0,c.onwaiting=null,c.onplaying=null,c.pause()),o(l)&&(i!==l.muted&&(l.muted=i,i||(l.volume=u.volume)),s?l.play():l.pause())}function s(e,t){const{getState:n,dispatch:i}=t,l=e.playerId,c=(0,a.isCurrentSlideReady)(n(),l),u=(0,a.isPlaying)(n(),l),p=(0,a.getCurrentSlideProgress)(n(),l);if(clearTimeout(p.timeout),!u||!c)return void(p.lastUpdate&&i((0,r.setCurrentSlideProgress)(l,{...p,lastUpdate:null})));const d=(0,a.getCurrentMediaElement)(n(),l),m=(0,a.getCurrentMediaDuration)(n(),l),h=p.lastUpdate?Date.now()-p.lastUpdate:100,f=o(d)?d.currentTime:p.currentTime+h/1e3;if(f>=m){i((0,r.setCurrentSlideEnded)(l));const e=(0,a.getSlideCount)(n(),l);(0,a.getCurrentSlideIndex)(n(),l)===e-1&&i((0,r.setEnded)(l))}else i((0,r.setCurrentSlideProgress)(l,{timeout:setTimeout((()=>s(e,t)),100),lastUpdate:Date.now(),duration:m,currentTime:f}))}t.Z={SET_PLAYING:[s,i],SLIDE_READY:[function(e,t){const{getState:n,dispatch:i}=t,s=e.playerId,l=(0,a.getCurrentMediaElement)(n(),s);if(!o(l))return;const c=(0,a.getCurrentSlideProgress)(n(),s);0===l.currentTime&&c.currentTime>0&&(l.currentTime=c.currentTime),l.onwaiting=()=>i((0,r.setBuffering)(s,!0)),l.onplaying=()=>i((0,r.setBuffering)(s,!1))},s,i],SET_MUTED:i,SHOW_SLIDE:i}},66930:function(e,t,n){"use strict";var r=n(9818),a=n(46192),o=n(96494),i=n(36978),s=n(2814);const l=(0,r.registerStore)("jetpack/story/player",{actions:a,reducer:s.Z,selectors:o});(0,i.Z)(l)},36978:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(83566);function s(e){const t=[a()(i.Z)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},2814:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(58571);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a.H2,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SHOW_SLIDE":{const n=e.currentSlide===t.index+1;return{...e,currentSlide:{...a.Qz,index:t.index},previousSlide:e.currentSlide,playing:n?e.settings.playOnNextSlide:e.playing}}case"SLIDE_READY":return{...e,buffering:!1,currentSlide:{...e.currentSlide,mediaElement:t.mediaElement,duration:t.duration,ready:!0},previousSlide:null};case"SET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:t.value}};case"SET_CURRENT_SLIDE_ENDED":return{...e,currentSlide:{...e.currentSlide,ended:!0}};case"RESET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:{...a.XO}}};case"SET_MUTED":return{...e,muted:t.value};case"SET_PLAYING":{const n=t.value&&e.ended;return{...e,playing:t.value,buffering:!!t.value&&e.buffering,fullscreen:!e.playing&&t.value?e.settings.playInFullscreen:e.fullscreen,ended:!n&&e.ended,currentSlide:n?{...a.Qz,index:0}:e.currentSlide,previousSlide:n?null:e.previousSlide}}case"SET_BUFFERING":return{...e,buffering:t.value};case"SET_FULLSCREEN":return{...e,fullscreen:t.fullscreen,playing:!(e.fullscreen&&!t.fullscreen&&e.settings.playInFullscreen)&&e.playing};case"INIT":{const n=(0,r.merge)({},e.settings,t.settings);return{...e,settings:n,playing:n.playOnLoad,fullscreen:n.loadInFullscreen}}case"ENDED":return{...e,currentSlide:{...a.Qz,index:e.settings.slideCount-1,progress:{...a.XO,currentTime:100,duration:100}},ended:!0,playing:!1,fullscreen:!e.settings.exitFullscreenOnEnd}}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.playerId?{...e,[t.playerId]:o(e[t.playerId],t)}:e}},96494:function(e,t,n){"use strict";function r(e,t){return!!e[t]}function a(e,t){return e[t].currentSlide.index}function o(e,t){return e[t].currentSlide.progress}function i(e,t){const n=e[t].currentSlide.progress.currentTime,r=e[t].currentSlide.progress.duration,a=Math.round(100*n/r);return a>=100?100:a}function s(e,t){return e[t].playing}function l(e,t){return e[t].muted}function c(e,t){return e[t].buffering}function u(e,t){return e[t].currentSlide.mediaElement}function p(e,t){return e[t].currentSlide.duration}function d(e,t){return e[t].currentSlide.ended}function m(e,t){return e[t].currentSlide.ready}function h(e,t){return e[t].previousSlide?.mediaElement}function f(e,t){return e[t].fullscreen}function g(e,t){return e[t].ended}function b(e,t){return e[t].settings}function v(e,t){return e[t].settings.slideCount}n.r(t),n.d(t,{isPlayerReady:function(){return r},getCurrentSlideIndex:function(){return a},getCurrentSlideProgress:function(){return o},getCurrentSlideProgressPercentage:function(){return i},isPlaying:function(){return s},isMuted:function(){return l},isBuffering:function(){return c},getCurrentMediaElement:function(){return u},getCurrentMediaDuration:function(){return p},hasCurrentSlideEnded:function(){return d},isCurrentSlideReady:function(){return m},getPreviousSlideMediaElement:function(){return h},isFullscreen:function(){return f},hasEnded:function(){return g},getSettings:function(){return b},getSlideCount:function(){return v}})},1436:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a);t.Z=e=>{let{className:t}=e;return(0,r.createElement)("div",{className:o()("wp-story",t)})}},79885:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"},successMessage:{type:"string",default:__("Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.","jetpack")}}},87138:function(e,t,n){"use strict";n.d(t,{G0:function(){return r},Gp:function(){return a},S9:function(){return o},VF:function(){return i},K3:function(){return s},XJ:function(){return l},xV:function(){return c},bK:function(){return u},HE:function(){return p},Tr:function(){return d},pC:function(){return m},FP:function(){return h},tm:function(){return f}});const r=0,a=50,o=0,i=0,s=15,l=1,c=5,u=50,p=15,d=0,m=50,h=10,f="16px"},45643:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(65736),o=n(55609),i=n(52175),s=n(80790),l=n(87138);const __=a.__;function c(e){let{buttonBackgroundColor:t,borderColor:n,buttonGradient:a,borderRadius:c,borderWeight:u,buttonOnNewLine:p,emailFieldBackgroundColor:d,fallbackButtonBackgroundColor:m,fallbackTextColor:h,fontSize:f,isGradientAvailable:g,padding:b,setAttributes:v,setButtonBackgroundColor:k,setTextColor:y,showSubscribersTotal:E,spacing:w,subscriberCount:_,textColor:C,buttonWidth:j,successMessage:S}=e;return(0,r.createElement)(r.Fragment,null,g&&(0,r.createElement)(i.__experimentalPanelColorGradientSettings,{title:__("Color Settings","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",settings:[{colorValue:t.color,onColorChange:k,gradientValue:a.gradientValue,onGradientChange:a.setGradient,label:__("Button Background Color","jetpack")},{colorValue:C.color,onColorChange:y,label:__("Button Text Color","jetpack")},{colorValue:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!0},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),!g&&(0,r.createElement)(i.PanelColorSettings,{title:__("Background Colors","jetpack"),className:"wp-block-jetpack-subscriptions__backgroundpanel",colorSettings:[{value:t.color,onChange:k,label:__("Button Background Color","jetpack")},{value:C.color,onChange:y,label:__("Button Text Color","jetpack")},{value:n.color,onColorChange:e=>{v({borderColor:e,customBorderColor:e})},label:__("Border Color","jetpack")}],initialOpen:!1},(0,r.createElement)(i.ContrastChecker,{fontSize:f.size,textColor:C.color,backgroundColor:d.color,fallbackButtonBackgroundColor:m,fallbackTextColor:h})),(0,r.createElement)(o.PanelBody,{title:__("Text Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__textpanel"},(0,r.createElement)(i.FontSizePicker,{withSlider:!0,value:f.size,onChange:e=>{const t=e||l.tm;v({fontSize:t,customFontSize:t})}})),(0,r.createElement)(o.PanelBody,{title:__("Border Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__borderpanel"},(0,r.createElement)(o.RangeControl,{value:c,label:__("Border Radius","jetpack"),min:l.G0,max:l.Gp,initialPosition:l.S9,allowReset:!0,onChange:e=>v({borderRadius:e})}),(0,r.createElement)(o.RangeControl,{value:u,label:__("Border Weight","jetpack"),min:l.VF,max:l.K3,initialPosition:l.XJ,allowReset:!0,onChange:e=>v({borderWeight:e})})),(0,r.createElement)(o.PanelBody,{title:__("Spacing Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__spacingpanel"},(0,r.createElement)(o.RangeControl,{value:b,label:__("Space Inside","jetpack"),min:l.xV,max:l.bK,initialPosition:l.HE,allowReset:!0,onChange:e=>v({padding:e})}),(0,r.createElement)(o.RangeControl,{value:w,label:__("Space Between","jetpack"),min:l.Tr,max:l.pC,initialPosition:l.FP,allowReset:!0,onChange:e=>v({spacing:e})}),(0,r.createElement)(s.h,{width:j,onChange:e=>v({buttonWidth:e})})),(0,r.createElement)(o.PanelBody,{title:__("Display Settings","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__displaypanel"},(0,r.createElement)(o.ToggleControl,{label:__("Show subscriber count","jetpack"),checked:E,onChange:()=>{v({showSubscribersTotal:!E})},help:()=>{if(!_||_<1)return __("This will remain hidden on your website until you have at least one subscriber.","jetpack")}}),(0,r.createElement)(o.ToggleControl,{label:__("Place button on new line","jetpack"),checked:p,onChange:()=>{v({buttonOnNewLine:!p})}})),(0,r.createElement)(o.PanelBody,{title:__("Success Message Text","jetpack"),initialOpen:!1,className:"wp-block-jetpack-subscriptions__successpanel"},(0,r.createElement)(o.TextareaControl,{value:S,label:__("Success Message Text","jetpack"),hideLabelFromVision:!0,help:__("Save your custom message to display when a user subscribes your website.","jetpack"),onChange:e=>v({successMessage:e})})))}},58363:function(e,t,n){"use strict";var r=n(26233),a=n(80960),o=n(28897),i=n(73300),s=n(56286),l=n(16949);t.Z=[l.Z,s.Z,i.Z,o.Z,a.Z,r.Z]},26233:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(92819);const __=a.__;t.Z={attributes:{subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1}},migrate:e=>({submitButtonText:e.subscribeButton,showSubscribersTotal:e.showSubscribersTotal}),isEligible:e=>!(!e.hasOwnProperty("subscribeButton")||!(0,o.isEmpty)(e.subscribeButton)),save:function(e){let{attributes:t}=e;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_subscribers_total="${t.showSubscribersTotal}" show_only_email_and_button="true"]`)}}},80960:function(e,t,n){"use strict";var r=n(65736),a=n(51268);const __=r.__;t.Z={attributes:{subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},subscribeButton:{type:"string",default:__("Subscribe","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},backgroundButtonColor:{type:"string"},textButtonColor:{type:"string"},customBackgroundButtonColor:{type:"string"},customTextButtonColor:{type:"string"},submitButtonClasses:{type:"string"}},migrate:e=>({subscribePlaceholder:e.subscribePlaceholder,showSubscribersTotal:e.showSubscribersTotal,buttonOnNewLine:!0,submitButtonText:e.submitButtonText,buttonBackgroundColor:e.backgroundButtonColor?e.backgroundButtonColor:"primary",customButtonBackgroundColor:e.customBackgroundButtonColor,textColor:e.textButtonColor?e.textButtonColor:"background",customTextColor:e.customTextButtonColor}),save:a.Z}},51268:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{attributes:t}=e;const{showSubscribersTotal:n,submitButtonClasses:a,customBackgroundButtonColor:o,customTextButtonColor:i,submitButtonText:s}=t;return(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form show_only_email_and_button="true" custom_background_button_color="${o}" custom_text_button_color="${i}" submit_button_text="${s}" submit_button_classes="${a}" show_subscribers_total="${n}" ]`)}},80929:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Enter your email address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},submitButtonText:{type:"string",default:__("Sign Up","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"number"},customFontSize:{type:"number"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},69283:function(e,t,n){"use strict";n.d(t,{ZP:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(80929);function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;const{subscribePlaceholder:o,showSubscribersTotal:l,buttonOnNewLine:c,submitButtonText:u,emailFieldBackgroundColor:p,customEmailFieldBackgroundColor:d,emailFieldGradient:m,customEmailFieldGradient:h,buttonBackgroundColor:f,customButtonBackgroundColor:g,buttonGradient:b,customButtonGradient:v,textColor:k,customTextColor:y,fontSize:E,customFontSize:w,borderRadius:_,borderWeight:C,borderColor:j,customBorderColor:S,padding:x,spacing:T}=t,N=!!a.__experimentalGetGradientClass,A=(0,a.getColorClassName)("color",k),P=(0,a.getFontSizeClass)(E),I=(0,a.getColorClassName)("border-color",j),M=(0,a.getColorClassName)("background-color",f),R=N?(0,a.__experimentalGetGradientClass)(b):void 0,L=(0,a.getColorClassName)("background-color",p),B=N?(0,a.__experimentalGetGradientClass)(m):void 0,Z=i()(0===_?"no-border-radius":void 0,P,I),F=i()(Z,k?"has-text-color":void 0,A,f||b?"has-background":void 0,M,R),D=i()(Z,L,B),O=!L&&h?h:d,z=!M&&v?v:g,U=()=>i()(e,"wp-block-jetpack-subscriptions__supports-newline",c?"wp-block-jetpack-subscriptions__use-newline":void 0,l?"wp-block-jetpack-subscriptions__show-subs":void 0);let $=o,V=u;return"check-text-defaults"===n&&($=o===s.Z.subscribePlaceholder.default?"Enter your email address":o,V=u===s.Z.submitButtonText.default?"Sign Up":u),(0,r.createElement)("div",{className:U()},(0,r.createElement)(r.RawHTML,null,`\n\t\t\t[jetpack_subscription_form\n\t\t\t\tsubscribe_placeholder="${$}"\n\t\t\t\tshow_subscribers_total="${l}"\n\t\t\t\tbutton_on_newline="${c}"\n\t\t\t\tsubmit_button_text="${V}"\n\t\t\t\tcustom_background_emailfield_color="${O}"\n\t\t\t\tcustom_background_button_color="${z}"\n\t\t\t\tcustom_text_button_color="${y}"\n\t\t\t\tcustom_font_size="${w||16}"\n\t\t\t\tcustom_border_radius="${_||0}"\n\t\t\t\tcustom_border_weight="${C||1}"\n\t\t\t\tcustom_border_color="${S}"\n\t\t\t\tcustom_padding="${x||15}"\n\t\t\t\tcustom_spacing="${T||10}"\n\t\t\t\tsubmit_button_classes="${F}"\n\t\t\t\temail_field_classes="${D}"\n\t\t\t\tshow_only_email_and_button="true"\n\t\t\t]`))}},28897:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n)}}},73300:function(e,t,n){"use strict";var r=n(80929),a=n(69283);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:e=>{let{className:t,attributes:n}=e;return(0,a.ZP)(t,n,"check-text-defaults")}}},56286:function(e,t,n){"use strict";var r=n(80929),a=n(14556);t.Z={attributes:r.Z,migrate:e=>{const{fontSize:t,customFontSize:n}=e;return{...e,fontSize:t?`${t}px`:void 0,customFontSize:n?`${n}px`:void 0}},save:a.ZP}},14556:function(e,t,n){"use strict";n.d(t,{ZP:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(80929);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:N}=n,A=!!a.__experimentalGetGradientClass,P=(0,a.getColorClassName)("color",y),I=(0,a.getFontSizeClass)(w),M=(0,a.getColorClassName)("border-color",S),R=(0,a.getColorClassName)("background-color",g),L=A?(0,a.__experimentalGetGradientClass)(v):void 0,B=(0,a.getColorClassName)("background-color",d),Z=A?(0,a.__experimentalGetGradientClass)(h):void 0,F=i()(0===C?"no-border-radius":void 0,I,M),D=i()(F,y?"has-text-color":void 0,P,g||v?"has-background":void 0,R,L),O=i()(F,B,Z),z=!B&&f?f:m,U=!R&&k?k:b,$={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:z,custom_background_button_color:U,custom_text_button_color:E,custom_font_size:_||16,custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_padding:T||15,custom_spacing:N||10,submit_button_classes:D,email_field_classes:O,show_only_email_and_button:!0},V=(0,s.reduce)($,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${V}]`))}},61798:function(e,t,n){"use strict";var r=n(65736);const __=r.__;t.Z={subscribePlaceholder:{type:"string",default:__("Email Address","jetpack")},showSubscribersTotal:{type:"boolean",default:!1},buttonOnNewLine:{type:"boolean",default:!1},buttonWidth:{type:"string"},submitButtonText:{type:"string",default:__("Subscribe","jetpack")},emailFieldBackgroundColor:{type:"string"},customEmailFieldBackgroundColor:{type:"string"},emailFieldGradient:{type:"string"},customEmailFieldGradient:{type:"string"},buttonBackgroundColor:{type:"string"},customButtonBackgroundColor:{type:"string"},buttonGradient:{type:"string"},customButtonGradient:{type:"string"},textColor:{type:"string"},customTextColor:{type:"string"},fontSize:{type:"string"},customFontSize:{type:"string"},borderRadius:{type:"number"},borderWeight:{type:"number"},borderColor:{type:"string"},customBorderColor:{type:"string"},padding:{type:"number"},spacing:{type:"number"}}},16949:function(e,t,n){"use strict";var r=n(61798),a=n(75799);t.Z={attributes:r.Z,save:a.Z}},75799:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(61798);function c(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:c,buttonOnNewLine:u,submitButtonText:p,emailFieldBackgroundColor:d,customEmailFieldBackgroundColor:m,emailFieldGradient:h,customEmailFieldGradient:f,buttonBackgroundColor:g,customButtonBackgroundColor:b,buttonGradient:v,customButtonGradient:k,textColor:y,customTextColor:E,fontSize:w,customFontSize:_,borderRadius:C,borderWeight:j,borderColor:S,customBorderColor:x,padding:T,spacing:N,buttonWidth:A}=n,P=!!a.__experimentalGetGradientClass,I=(0,a.getColorClassName)("color",y),M=(0,a.getFontSizeClass)(w),R=(0,a.getColorClassName)("border-color",S),L=(0,a.getColorClassName)("background-color",g),B=P?(0,a.__experimentalGetGradientClass)(v):void 0,Z=(0,a.getColorClassName)("background-color",d),F=P?(0,a.__experimentalGetGradientClass)(h):void 0,D=i()(0===C?"no-border-radius":void 0,M,R),O=i()(D,y?"has-text-color":void 0,I,g||v?"has-background":void 0,L,B),z=i()(D,Z,F),U=!Z&&f?f:m,$=!L&&k?k:b,V=A||void 0,G={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:c,button_on_newline:u,submit_button_text:p!==l.Z.submitButtonText.default?p:void 0,custom_background_emailfield_color:U,custom_background_button_color:$,custom_text_button_color:E,custom_font_size:_||"16px",custom_border_radius:C||0,custom_border_weight:j||1,custom_border_color:x,custom_button_width:V,custom_padding:T||15,custom_spacing:N||10,submit_button_classes:O,email_field_classes:z,show_only_email_and_button:!0},q=(0,s.reduce)(G,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",u?"wp-block-jetpack-subscriptions__use-newline":void 0,c?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${q}]`))}},73228:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(86989),l=n.n(s),c=n(65736),u=n(55609),p=n(52175),d=n(94333),m=n(79885),h=n(14087),f=n(87138),g=n(45643);const __=c.__,_n=c._n,{getComputedStyle:b}=window,v=!!p.__experimentalUseGradient,k=(0,u.withFallbackStyles)(((e,t)=>{const{buttonBackgroundColor:n,textColor:r}=t,a=n&&n.color,o=r&&r.color,i=e.querySelector(".wp-block-jetpack-subscriptions__button");return{fallbackButtonBackgroundColor:a||!e?void 0:i&&b(i).backgroundColor,fallbackTextColor:o||!e?void 0:i&&b(i).color}}));t.Z=(0,d.compose)([(0,p.withColors)({emailFieldBackgroundColor:"backgroundColor"},{buttonBackgroundColor:"backgroundColor"},{textColor:"color"},"borderColor"),(0,p.withFontSizes)("fontSize"),k])((function(e){const{className:t,attributes:n,setAttributes:a,emailFieldBackgroundColor:s,buttonBackgroundColor:d,setButtonBackgroundColor:b,fallbackButtonBackgroundColor:k,textColor:y,fallbackTextColor:E,setTextColor:w,borderColor:_,fontSize:C}=e,j=(0,h.S)(m.Z,n);(0,i.isEqual)(j,n)||a(j);const{borderRadius:S,borderWeight:x,buttonWidth:T,padding:N,spacing:A,submitButtonText:P,subscribePlaceholder:I,showSubscribersTotal:M,buttonOnNewLine:R,successMessage:L}=j,[B,Z]=(0,r.useState)(""),[F,D]=(0,r.useState)(""),O=v?(0,p.__experimentalUseGradient)({gradientAttribute:"emailFieldGradient",customGradientAttribute:"customEmailFieldGradient"}):{},z=v?(0,p.__experimentalUseGradient)({gradientAttribute:"buttonGradient",customGradientAttribute:"customButtonGradient"}):{},U={"no-border-radius":0===S,[C.class]:C.class,"has-text-color":y.color,[y.class]:y.class},$={...U,"has-background":s.color||O.gradientValue,[s.class]:!O.gradientValue&&s.class,[O.gradientClass]:O.gradientClass},V={...U,"has-background":d.color||z.gradientValue,[d.class]:!z.gradientValue&&d.class,[z.gradientClass]:z.gradientClass},G=e=>e||f.FP,q={color:y.color,borderColor:_.color,borderRadius:S?S+"px":f.S9+"px",borderWidth:x?x+"px":f.XJ+"px",fontSize:C.size?C.size:f.tm,padding:(e=>{const t=e||f.HE;return t+"px "+Math.round(1.5*t)+"px "+t+"px "+Math.round(1.5*t)+"px"})(N)},H={...q,...!s.color&&O.gradientValue?{background:O.gradientValue}:{backgroundColor:s.color}},W={...q,...!d.color&&z.gradientValue?{background:z.gradientValue}:{backgroundColor:d.color},...R?{marginTop:G(A)+"px"}:{marginLeft:G(A)+"px"},width:T};return(0,r.useEffect)((()=>{l()({path:"/wpcom/v2/subscribers/count"}).then((e=>{e.hasOwnProperty("count")?(Z((0,c.sprintf)(
+/* translators: Placeholder is a number of subscribers. */
+_n("Join %s other subscriber","Join %s other subscribers",e.count,"jetpack"),e.count)),D(e.count)):(Z(__("Subscriber count unavailable","jetpack")),D(0))}))}),[]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(p.InspectorControls,null,(0,r.createElement)(g.Z,{buttonBackgroundColor:d,borderColor:_,buttonGradient:z,borderRadius:S,borderWeight:x,buttonOnNewLine:R,emailFieldBackgroundColor:s,fallbackButtonBackgroundColor:k,fallbackTextColor:E,fontSize:C,isGradientAvailable:v,padding:N,setAttributes:a,setButtonBackgroundColor:b,setTextColor:w,showSubscribersTotal:M,spacing:A,subscriberCount:F,textColor:y,buttonWidth:T,successMessage:L})),(0,r.createElement)("div",{className:o()(t,"wp-block-jetpack-subscriptions__supports-newline",R?"wp-block-jetpack-subscriptions__use-newline":void 0,M?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)("div",{className:"wp-block-jetpack-subscriptions__form",role:"form"},(0,r.createElement)(u.TextControl,{placeholder:I,disabled:!0,className:o()($,"wp-block-jetpack-subscriptions__textfield"),style:H}),(0,r.createElement)(p.RichText,{className:o()(V,"wp-block-jetpack-subscriptions__button","wp-block-button__link"),onChange:e=>a({submitButtonText:e}),style:W,value:P,withoutInteractiveFormatting:!0,allowedFormats:["core/bold","core/italic","core/strikethrough"]})),M&&(0,r.createElement)("p",{className:"wp-block-jetpack-subscriptions__subscount"},B)))}))},57211:function(e,t,n){"use strict";n.d(t,{u2:function(){return d},Xd:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(4981),s=n(79885),l=n(58363),c=n(73228),u=n(5321),p=n(57535);const __=a.__,_x=a._x,d="subscriptions",m=(0,r.createElement)(o.SVG,{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(o.Rect,{x:"4.75",y:"6.75",width:"14.5",height:"10.5",rx:"1.25",stroke:(0,p.m)(),strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(o.Path,{d:"M19 7L13.3609 12.2363C12.5935 12.9489 11.4065 12.9489 10.6391 12.2363L5 7",stroke:(0,p.m)(),strokeWidth:"1.5",strokeLinejoin:"bevel",fill:"none"})),h={title:__("Subscription Form","jetpack"),description:(0,r.createElement)("p",null,__("A form enabling readers to get notifications when new posts are published from this site.","jetpack")),icon:{src:m,foreground:(0,p.m)()},category:"grow",keywords:[_x("subscribe","block search term","jetpack"),_x("join","block search term","jetpack"),_x("follow","block search term","jetpack")],attributes:s.Z,edit:c.Z,save:u.Z,transforms:{from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"blog_subscription"===t},transform:e=>{let{instance:t}=e;return(0,i.createBlock)("jetpack/subscriptions",{showSubscribersTotal:t.raw.show_subscribers_total,submitButtonText:t.raw.subscribe_button,subscribePlaceholder:t.raw.subscribe_placeholder,successMessage:t.raw.success_message})}}]},example:{attributes:{}},deprecated:l.Z}},5321:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(92819),l=n(79885),c=n(87138);function u(e){let{className:t,attributes:n}=e;const{subscribePlaceholder:o,showSubscribersTotal:u,buttonOnNewLine:p,submitButtonText:d,emailFieldBackgroundColor:m,customEmailFieldBackgroundColor:h,emailFieldGradient:f,customEmailFieldGradient:g,buttonBackgroundColor:b,customButtonBackgroundColor:v,buttonGradient:k,customButtonGradient:y,textColor:E,customTextColor:w,fontSize:_,customFontSize:C,borderRadius:j,borderWeight:S,borderColor:x,customBorderColor:T,padding:N,spacing:A,buttonWidth:P,successMessage:I}=n,M=!!a.__experimentalGetGradientClass,R=(0,a.getColorClassName)("color",E),L=(0,a.getFontSizeClass)(_),B=(0,a.getColorClassName)("border-color",x),Z=(0,a.getColorClassName)("background-color",b),F=M?(0,a.__experimentalGetGradientClass)(k):void 0,D=(0,a.getColorClassName)("background-color",m),O=M?(0,a.__experimentalGetGradientClass)(f):void 0,z=i()(0===j?"no-border-radius":void 0,L,B),U=i()(z,E?"has-text-color":void 0,R,b||k?"has-background":void 0,Z,F),$=i()(z,D,O),V=!D&&g?g:h,G=!Z&&y?y:v,q=P||void 0,H={subscribe_placeholder:o!==l.Z.subscribePlaceholder.default?o:void 0,show_subscribers_total:u,button_on_newline:p,submit_button_text:d!==l.Z.submitButtonText.default?d:void 0,custom_background_emailfield_color:V,custom_background_button_color:G,custom_text_button_color:w,custom_font_size:C||c.tm,custom_border_radius:j||c.S9,custom_border_weight:S||c.XJ,custom_border_color:T,custom_button_width:q,custom_padding:N||c.HE,custom_spacing:A||c.FP,submit_button_classes:U,email_field_classes:$,show_only_email_and_button:!0,success_message:I},W=(0,s.reduce)(H,((e,t,n)=>void 0===t?e:e+` ${n}="${t}"`),"");return(0,r.createElement)("div",{className:i()(t,"wp-block-jetpack-subscriptions__supports-newline",p?"wp-block-jetpack-subscriptions__use-newline":void 0,u?"wp-block-jetpack-subscriptions__show-subs":void 0)},(0,r.createElement)(r.RawHTML,null,`[jetpack_subscription_form${W}]`))}},28526:function(e,t,n){"use strict";n.d(t,{RA:function(){return r},q3:function(){return a},hI:function(){return o},Z5:function(){return i},GP:function(){return s},xJ:function(){return l},sw:function(){return c},EU:function(){return u},yw:function(){return p},P0:function(){return d}});const r=["image"],a=4,o=20,i=20,s=2e3,l="circle",c="columns",u="rectangular",p="square",d=[{isDefault:!0,name:u},{name:l},{name:p},{name:c}]},70132:function(e,t,n){"use strict";var r=n(25689),a=n(47330),o=n(35660);t.Z=[o,a,r]},66105:function(e,t,n){"use strict";n.d(t,{q3:function(){return r},hI:function(){return a},GP:function(){return o},EU:function(){return i},P0:function(){return s}});const r=4,a=20,o=2e3,i="rectangular",s=[{isDefault:!0,name:i},{name:"circle"},{name:"square"},{name:"columns"}]},2589:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(11313);function o(e){const{"aria-label":t,alt:n,height:o,id:i,link:s,linkTo:l,origUrl:c,url:u,width:p}=e;if((0,a.isBlobURL)(c))return null;let d;switch(l){case"media":d=u;break;case"attachment":d=s}const m=(0,r.createElement)("img",{alt:n,"aria-label":t,"data-height":o,"data-id":i,"data-link":s,"data-url":c,"data-width":p,src:u});return(0,r.createElement)("figure",{className:"tiled-gallery__item"},d?(0,r.createElement)("a",{href:d},m):m)}},25689:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return r.Z},attributes:function(){return a},support:function(){return o}});var r=n(19092);const a={align:{default:"center",type:"string"},className:{default:`is-style-${n(66105).EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},caption:{selector:"figcaption",source:"html",type:"string"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"}},o={align:["center","wide","full"],customClassName:!1,html:!1}},43064:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},7696:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},17357:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(40278),o=n(65736),i=n(82827),s=n(11313),l=n(2589),c=n(1077),u=n(47536),p=n(66105);const __=o.__;class d extends r.Component{photonize(e){let{height:t,width:n,url:r}=e;if(!r)return;if((0,s.isBlobURL)(r)||/^https?:\/\/localhost/.test(r))return r;const o=r.split("?",1)[0],l=function(e){const{host:t}=(0,i.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}(r)?h:a.Z,{layoutStyle:c}=this.props;if(m(c)&&n&&t){const e=Math.min(p.GP,n,t);return l(o,{resize:`${e},${e}`})}return l(o)}renderImage(e,t){const{images:n,linkTo:a,selectedImage:i}=this.props,s=(0,o.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,n.length);return(0,r.createElement)(l.Z,{alt:e.alt,"aria-label":s,height:e.height,id:e.id,origUrl:e.url,isSelected:i===t,key:t,link:e.link,linkTo:a,url:this.photonize(e),width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:i}=this.props,s=m(i)?u.Z:c.Z,l=this.props.images.map(this.renderImage,this);return(0,r.createElement)("div",{className:n},(0,r.createElement)(s,{align:e,columns:a,images:o,layoutStyle:i,renderedImages:l}),t)}}function m(e){return["circle","square"].includes(e)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:a,port:o,query:s,search:l,...c}=(0,i.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,i.WU)(c)}},1077:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(43064),l=n(7696),c=n(8292),u=n(37335),p=n(54794);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t;(0,u.W)(n).forEach((t=>(0,u.i)(t,e)))}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,i=(0,p.h9)(n),u="columns"===r?(0,p.sv)(i,t):(0,p.T9)(i,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},u.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(s.Z,{key:t},n)}))))))}}},54794:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([A,A,P,A,A]),c=N([A,A,A,P,A,A,A]),u=T([3,1,3],5),p=N([P,A,A,P]),d=T([1,2,1],5),m=N([P,A,A,A]),h=T([1,3],3),f=N([A,A,A,P]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function A(e){return e>=1&&e<2}function P(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},37335:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(66105);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){!function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);!function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},8292:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},47536:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8292),i=n(43064),s=n(7696),l=n(66105);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},19092:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(17357),o=n(98085),i=n(66105);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{images:n}=t;if(!n.length)return null;const{align:l,className:c,columns:u=s(t),linkTo:p}=t;return(0,r.createElement)(a.Z,{align:l,className:c,columns:u,images:n,layoutStyle:(0,o.t)(i.P0,c),linkTo:p})}},96470:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},72285:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},47330:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i}});var r=n(96470),a=n(96659);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1}},71410:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t}=e;return(0,r.createElement)("div",{className:"tiled-gallery__col"},t)}},86159:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},15515:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(72285),l=n(56556),c=n(14916),u=n(92805),p=n(96470);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,linkTo:l,layoutStyle:c,selectedImage:p}=this.props,d=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:m,srcSet:h}=(0,u.z)(e,{layoutStyle:c});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":d,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:p===t,key:t,link:e.link,linkTo:l,origUrl:e.url,showMovers:i.length>1,srcSet:h,url:m,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d}=this.props,m=(0,u.v)(s)?c.Z:l.Z,h=this.props.images.map(this.renderImage,this),f=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${f}`]:f>0})},(0,r.createElement)(m,{align:e,columns:a,images:o,layoutStyle:s,renderedImages:h}),t)}}},56556:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(71410),s=n(86159),l=n(8955),c=n(9972);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a}=this.props,u=(0,c.h9)(n),p="columns"===r?(0,c.sv)(u,t):(0,c.T9)(u,{isWide:["full","wide"].includes(e)});let d=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},p.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,t)=>{const n=a.slice(d,d+e);return d+=e,(0,o.createElement)(i.Z,{key:t},n)}))))))}}},9972:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([A,A,P,A,A]),c=N([A,A,A,P,A,A,A]),u=T([3,1,3],5),p=N([P,A,A,P]),d=T([1,2,1],5),m=N([P,A,A,A]),h=T([1,3],3),f=N([A,A,A,P]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function A(e){return e>=1&&e<2}function P(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},8955:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},14916:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(8955),i=n(71410),s=n(86159),l=n(96470);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},96659:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(15515),o=n(98085),i=n(96470);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m})}},92805:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(96470);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},30154:function(e,t,n){"use strict";n.d(t,{hI:function(){return r},Z5:function(){return a},GP:function(){return o},xJ:function(){return i},EU:function(){return s},P0:function(){return l}});const r=20,a=20,o=2e3,i="circle",s="rectangular",l=[{isDefault:!0,name:s},{name:i},{name:"square"},{name:"columns"}]},7214:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},35660:function(e,t,n){"use strict";n.r(t),n.d(t,{save:function(){return a.Z},attributes:function(){return o},supports:function(){return i},migrate:function(){return s}});var r=n(30154),a=n(2387);const o={align:{default:"center",type:"string"},className:{default:`is-style-${r.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},i={align:["center","wide","full"],customClassName:!1,html:!1},s=e=>{const t=Math.pow(10,5);return{...e,columnWidths:e.columnWidths.map((e=>e.map((e=>Math.round(e*t)/t))))}}},62940:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=Math.pow(10,12),o=Math.round(n*a)/a,i=n?{flexBasis:`${o}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:i},t)}},68742:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},62108:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(7214),l=n(34506),c=n(85185),u=n(60185),p=n(30154);const __=a.__;class d extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:l,linkTo:c,layoutStyle:p,onMoveBackward:d,onMoveForward:m,onRemoveImage:h,onSelectImage:f,selectedImage:g,setImageAttributes:b}=this.props,v=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),{src:k,srcSet:y}=(0,u.z)(e,{layoutStyle:p});return(0,r.createElement)(s.Z,{alt:e.alt,"aria-label":v,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:g===t,key:t,link:e.link,linkTo:c,onMoveBackward:l?void 0:d(t),onMoveForward:l?void 0:m(t),onRemove:l?void 0:h(t),onSelect:l?void 0:f(t),origUrl:e.url,setAttributes:l?void 0:b(t),showMovers:i.length>1,srcSet:y,url:k,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:d,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,u.v)(s)?c.Z:l.Z,b=this.props.images.map(this.renderImage,this),v=s!==p.xJ?Math.min(d,p.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},34506:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),a=n.n(r),o=n(69307),i=n(62940),s=n(68742),l=n(7930),c=n(58174);class u extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:u}=this.props,p=(0,c.h9)(n),d="columns"===r?(0,c.sv)(p,t):(0,c.T9)(p,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(s.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(l.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(i.Z,{key:n,width:u?.[t]?.[n]},r)}))))))}}},58174:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([A,A,P,A,A]),c=N([A,A,A,P,A,A,A]),u=T([3,1,3],5),p=N([P,A,A,P]),d=T([1,2,1],5),m=N([P,A,A,A]),h=T([1,3],3),f=N([A,A,A,P]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function A(e){return e>=1&&e<2}function P(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},7930:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},85185:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(7930),i=n(62940),s=n(68742),l=n(30154);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},2387:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(62108),o=n(98085),i=n(30154);function s(e){return Math.min(3,e.images.length)}function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=s(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,o.t)(i.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},60185:function(e,t,n){"use strict";n.d(t,{v:function(){return l},z:function(){return c}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(30154);function l(e){return["circle","square"].includes(e)}function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.url||!e.width)return{};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url))return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:c}=e,{layoutStyle:m}=t,h=p(n)||!0===u()?d:r.Z;let f;if(l(m)&&c&&a){const e=Math.min(s.GP,c,a);f=h(n,{resize:`${e},${e}`})}else f=h(n);const g=300,b=600;let v;if(l(m)){const e=Math.min(b,c,a),t=Math.min(s.GP,c,a);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(b,c),t=Math.min(s.GP,c);v=(0,i.range)(e,t,g).map((e=>{const t=h(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:f},v&&{srcSet:v})}function u(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function p(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},86655:function(e,t,n){"use strict";n.d(t,{F:function(){return v}});var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(92819),l=n(52175),c=n(12238),u=n(55609),p=n(41451),d=n(6624),m=n(28526),h=n(98085),f=n(80349),g=n(58703);const __=i.__,b=[{value:"attachment",label:__("Attachment Page","jetpack")},{value:"media",label:__("Media File","jetpack")},{value:"none",label:__("None","jetpack")}];function v(e){return Math.min(3,e.images.length)}const k=e=>{const t=(0,s.pick)(e,[["alt"],["id"],["link"]]);return t.url=(0,s.get)(e,["sizes","large","url"])||(0,s.get)(e,["media_details","sizes","large","source_url"])||e.url,t};class y extends o.Component{constructor(){super(...arguments),a()(this,"state",{selectedImage:null,changed:void 0===this.props.attributes.columnWidths||0===this.props.attributes.columnWidths?.length}),a()(this,"addFiles",(e=>{const t=this.props.attributes.images||[],{noticeOperations:n}=this.props;(0,c.mediaUpload)({allowedTypes:m.RA,filesList:e,onFileChange:e=>{const n=e.map((e=>k(e)));this.setAttributes({images:t.concat(n)})},onError:n.createErrorNotice}),this.setState({changed:!0})})),a()(this,"onRemoveImage",(e=>()=>{const t=(0,s.filter)(this.props.attributes.images,((t,n)=>e!==n)),{columns:n}=this.props.attributes;this.setState({selectedImage:null,changed:!0}),this.setAttributes({images:t,columns:n?Math.min(t.length,n):n})})),a()(this,"onSelectImage",(e=>()=>{this.state.selectedImage!==e&&this.setState({selectedImage:e})})),a()(this,"onSelectImages",(e=>{const{columns:t}=this.props.attributes;this.setAttributes({columns:t?Math.min(e.length,t):t,images:e.map((e=>k(e)))}),this.setState({changed:!0})})),a()(this,"onMove",((e,t)=>{const n=[...this.props.attributes.images];n.splice(t,1,this.props.attributes.images[e]),n.splice(e,1,this.props.attributes.images[t]),this.setState({selectedImage:t,changed:!0}),this.setAttributes({images:n})})),a()(this,"onMoveForward",(e=>()=>{e!==this.props.attributes.images.length-1&&this.onMove(e,e+1)})),a()(this,"onMoveBackward",(e=>()=>{0!==e&&this.onMove(e,e-1)})),a()(this,"onResize",(e=>{this.state.changed&&this.setAttributes({columnWidths:e})})),a()(this,"setColumnsNumber",(e=>this.setAttributes({columns:e}))),a()(this,"setRoundedCorners",(e=>this.setAttributes({roundedCorners:e}))),a()(this,"setImageAttributes",(e=>t=>{const{attributes:{images:n}}=this.props;n[e]&&this.setAttributes({images:[...n.slice(0,e),{...n[e],...t},...n.slice(e+1)]})})),a()(this,"setLinkTo",(e=>this.setAttributes({linkTo:e}))),a()(this,"uploadFromFiles",(e=>this.addFiles(e.target.files)))}static getDerivedStateFromProps(e,t){return e.isSelected||null===t.selectedImage?null:{selectedImage:null}}setAttributes(e){if(e.ids)throw new Error('The "ids" attribute should not be changed directly. It is managed automatically when "images" attribute changes');e.images&&(e={...e,ids:e.images.map((e=>{let{id:t}=e;return parseInt(t,10)}))}),this.props.setAttributes(e)}render(){const{selectedImage:e}=this.state,{attributes:t,isSelected:n,className:r,noticeOperations:a,noticeUI:i,setAttributes:s}=this.props,{align:c,columns:k=v(t),imageFilter:y,images:E,linkTo:w,roundedCorners:_}=t,C=(0,o.createElement)(u.DropZone,{onFilesDrop:this.addFiles}),j=(0,o.createElement)(l.BlockControls,null,!!E.length&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)(u.ToolbarGroup,null,(0,o.createElement)(u.ToolbarItem,null,(()=>(0,o.createElement)(l.MediaUpload,{onSelect:this.onSelectImages,allowedTypes:m.RA,multiple:!0,gallery:!0,value:E.map((e=>e.id)),render:e=>{let{open:t}=e;return(0,o.createElement)(g.Z,{label:__("Edit Gallery","jetpack"),onClick:t})}})))),(0,o.createElement)(p.Z,{value:y,onChange:e=>{s({imageFilter:e}),this.setState({selectedImage:null})}})));if(0===E.length)return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.MediaPlaceholder,{icon:(0,o.createElement)(l.BlockIcon,{icon:f.qv}),className:r,labels:{title:__("Tiled Gallery","jetpack"),name:__("images","jetpack")},onSelect:this.onSelectImages,accept:"image/*",allowedTypes:m.RA,multiple:!0,notices:i,onError:a.createErrorNotice}));const S=(0,h.t)(m.P0,t.className);return(0,o.createElement)(o.Fragment,null,j,(0,o.createElement)(l.InspectorControls,null,(0,o.createElement)(u.PanelBody,{title:__("Tiled Gallery settings","jetpack")},["columns","circle","square"].includes(S)&&E.length>1&&(0,o.createElement)(u.RangeControl,{label:__("Columns","jetpack"),value:k,onChange:this.setColumnsNumber,min:1,max:Math.min(m.hI,E.length)}),S!==m.xJ&&(0,o.createElement)(u.RangeControl,{label:__("Rounded corners","jetpack"),value:_,onChange:this.setRoundedCorners,min:0,max:m.Z5}),(0,o.createElement)(u.SelectControl,{label:__("Link To","jetpack"),value:w,onChange:this.setLinkTo,options:b}))),i,(0,o.createElement)(d.Z,{align:c,className:r,columns:k,imageFilter:y,images:E,layoutStyle:S,linkTo:w,onMoveBackward:this.onMoveBackward,onMoveForward:this.onMoveForward,onRemoveImage:this.onRemoveImage,onSelectImage:this.onSelectImage,onResize:this.onResize,roundedCorners:_,selectedImage:n?e:null,setImageAttributes:this.setImageAttributes},C,n&&(0,o.createElement)("div",{className:"tiled-gallery__add-item"},(0,o.createElement)(u.FormFileUpload,{multiple:!0,className:"tiled-gallery__add-item-button",onChange:this.uploadFromFiles,accept:"image/*",icon:"insert"},__("Upload an image","jetpack")))))}}t.ZP=(0,u.withNotices)(y)},41451:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_x=a._x,i=[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Original","image style","jetpack"),value:void 0},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Black and White","image style","jetpack"),value:"black-and-white"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V7c0-1.11-.9-2-2-2h-4v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),title:_x("Sepia","image style","jetpack"),value:"sepia"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7c0-1.11-.9-2-2-2h-4v2h4v2h-2v2h2v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:"1977",value:"1977"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z"})),title:_x("Clarendon","image style","jetpack"),value:"clarendon"},{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0z"}),(0,r.createElement)(o.Path,{d:"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2c0-1.11-.9-2-2-2h-2V7h4V5h-6v6h4v2h-4v2h4c1.1 0 2-.89 2-2z"})),title:_x("Gingham","image style","jetpack"),value:"gingham"}],s=__("Pick an image filter","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",className:"editor-block-switcher",contentClassName:"editor-block-switcher__popover",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.Toolbar,{controls:[{onClick:t,extraProps:{"aria-haspopup":"true","aria-expanded":n},title:s,tooltip:s,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 10v9H4.98V5h9V3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zm-2.94-2.06L17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7zM12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12l-2.75-1.25z"}))}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"tiled-gallery__filter-picker-menu"},i.map((e=>{let{icon:i,title:s,value:l}=e;return(0,r.createElement)(o.MenuItem,{className:t===l?"is-active":void 0,icon:i,isSelected:t===l,key:l||"original",onClick:(c=l,()=>{n(t===c?void 0:c),a()}),role:"menuitemcheckbox"},s);var c})))}})}},79906:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(65736),c=n(39630),u=n(55609),p=n(11313),d=n(9818),m=n(9512);const __=l.__;class h extends o.Component{constructor(){super(...arguments),a()(this,"img",(0,o.createRef)()),a()(this,"onImageClick",(()=>{this.props.isSelected||this.props.onSelect()})),a()(this,"onImageKeyDown",(e=>{this.img.current===document.activeElement&&this.props.isSelected&&[c.BACKSPACE,c.DELETE].includes(e.keyCode)&&this.props.onRemove()}))}componentDidUpdate(){const{alt:e,height:t,image:n,link:r,url:a,width:o}=this.props;if(n){const i={};!e&&n.alt_text&&(i.alt=n.alt_text),!t&&n.media_details&&n.media_details.height&&(i.height=+n.media_details.height),!r&&n.link&&(i.link=n.link),!a&&n.source_url&&(i.url=n.source_url),!o&&n.media_details&&n.media_details.width&&(i.width=+n.media_details.width),Object.keys(i).length&&this.props.setAttributes(i)}}render(){const{"aria-label":e,alt:t,columns:n,height:r,id:a,imageFilter:i,isFirstItem:l,isLastItem:c,isSelected:d,link:h,linkTo:f,onMoveBackward:g,onMoveForward:b,onRemove:v,origUrl:k,showMovers:y,srcSet:E,url:w,width:_}=this.props;let C;switch(f){case"media":C=w;break;case"attachment":C=h}const j=(0,p.isBlobURL)(k),S=(0,o.createElement)(o.Fragment,null,(0,o.createElement)("img",{alt:t,"aria-label":e,"data-height":r,"data-id":a,"data-link":h,"data-url":k,"data-width":_,onClick:this.onImageClick,onKeyDown:this.onImageKeyDown,ref:this.img,src:j?void 0:w,srcSet:j?void 0:E,tabIndex:"0",style:j?{backgroundImage:`url(${k})`}:void 0}),j&&(0,o.createElement)(u.Spinner,null));return(0,o.createElement)("figure",{className:s()("tiled-gallery__item",{"is-selected":d,"is-transient":j,[`filter__${i}`]:!!i})},y&&(0,o.createElement)("div",{className:"tiled-gallery__item__move-menu"},(0,o.createElement)(u.Button,{icon:1===n?m.WO:m.KT,onClick:l?void 0:g,className:"tiled-gallery__item__move-backward",label:__("Move image backward","jetpack"),"aria-disabled":l,disabled:!d}),(0,o.createElement)(u.Button,{icon:1===n?m.xf:m.zz,onClick:c?void 0:b,className:"tiled-gallery__item__move-forward",label:__("Move image forward","jetpack"),"aria-disabled":c,disabled:!d})),(0,o.createElement)("div",{className:"tiled-gallery__item__inline-menu"},(0,o.createElement)(u.Button,{icon:m.xv,onClick:v,className:"tiled-gallery__item__remove",label:__("Remove image","jetpack"),disabled:!d})),C?(0,o.createElement)("a",null,S):S)}}t.Z=(0,d.withSelect)(((e,t)=>{const{getMedia:n}=e("core"),{id:r}=t;return{image:r?n(r):null}}))(h)},97671:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),a=n(89105),o=n.n(a),i=n(11313);function s(e){const{alt:t,imageFilter:n,height:a,id:s,link:l,linkTo:c,origUrl:u,url:p,width:d}=e;if((0,i.isBlobURL)(u))return null;let m;switch(c){case"media":m=p;break;case"attachment":m=l}const h=(0,r.createElement)("img",{alt:t,"data-height":a,"data-id":s,"data-link":l,"data-url":u,"data-width":d,src:p,"data-amp-layout":"responsive"});return(0,r.createElement)("figure",{className:o()("tiled-gallery__item",{[`filter__${n}`]:!!n})},m?(0,r.createElement)("a",{href:m},h):h)}},9512:function(e,t,n){"use strict";n.d(t,{KT:function(){return o},zz:function(){return i},xf:function(){return s},WO:function(){return l},xv:function(){return c}});var r=n(69307),a=n(55609);const o=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M5 8.70002L10.6 14.4L12 12.9L7.8 8.70002L12 4.50002L10.6 3.00002L5 8.70002Z"})),i=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"0 0 18 18",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M13 8.7L7.4 3L6 4.5L10.2 8.7L6 12.9L7.4 14.4L13 8.7Z"})),s=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M7.41,8.59L12,13.17l4.59-4.58L18,10l-6,6l-6-6L7.41,8.59z"})),l=(0,r.createElement)(a.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M12,8l-6,6l1.41,1.41L12,10.83l4.59,4.58L18,14L12,8z"})),c=(0,r.createElement)(a.SVG,{width:"18",height:"18",viewBox:"-2 -2 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,r.createElement)(a.Path,{d:"M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z"}))},80349:function(e,t,n){"use strict";n.d(t,{u2:function(){return S},qv:function(){return x},Xd:function(){return T}});var r=n(69307),a=n(65736),o=n(4981),i=n(92819),s=n(55609),l=n(86655),c=n(57713),u=n(28526),p=n(58014),d=n(57535),m=n(20510),h=n(70132),f=n(96606),g=n(85472),b=n(79009),v=n(10742),k=n(52642),y=n(41145);const __=a.__,_x=a._x,E={[u.EU]:_x("Tiled mosaic","Tiled gallery layout","jetpack"),[u.xJ]:_x("Circles","Tiled gallery layout","jetpack"),[u.sw]:_x("Tiled columns","Tiled gallery layout","jetpack"),[u.yw]:_x("Square tiles","Tiled gallery layout","jetpack")},w=u.P0.map((e=>({...e,label:E[e.name]})));function _(e){return(0,i.filter)(e,(e=>{let{id:t,url:n}=e;return t&&n}))}const C={align:{default:"center",type:"string"},className:{default:`is-style-${u.EU}`,type:"string"},columns:{type:"number"},columnWidths:{default:[],type:"array"},ids:{default:[],type:"array"},imageFilter:{type:"string"},images:{type:"array",default:[],source:"query",selector:".tiled-gallery__item",query:{alt:{attribute:"alt",default:"",selector:"img",source:"attribute"},height:{attribute:"data-height",selector:"img",source:"attribute",type:"number"},id:{attribute:"data-id",selector:"img",source:"attribute"},link:{attribute:"data-link",selector:"img",source:"attribute"},url:{attribute:"data-url",selector:"img",source:"attribute"},width:{attribute:"data-width",selector:"img",source:"attribute",type:"number"}}},linkTo:{default:"none",type:"string"},roundedCorners:{type:"integer",default:0}},j={align:"center",className:"is-style-rectangular",images:[{alt:"",link:"",url:f,width:160,height:95},{alt:"",link:"",url:g,width:160,height:107},{alt:"",link:"",url:b,width:304,height:203},{alt:"",link:"",url:v,width:312,height:207},{alt:"",link:"",url:k,width:152,height:101},{alt:"",link:"",url:y,width:152,height:105}],linkTo:"none"},S="tiled-gallery",x=(0,r.createElement)(s.SVG,{viewBox:"0 0 24 24",width:24,height:24},(0,r.createElement)(s.Path,{fill:"currentColor",d:"M19 5v2h-4V5h4M9 5v6H5V5h4m10 8v6h-4v-6h4M9 17v2H5v-2h4M21 3h-8v6h8V3zM11 3H3v10h8V3zm10 8h-8v10h8V11zm-10 4H3v6h8v-6z"})),T={attributes:C,category:(0,m.Z)("media","layout"),description:__("Display multiple images in an elegantly organized tiled layout.","jetpack")+((0,p.Wp)()?"":" "+__("Serves images using Jetpack's fast global network of servers.","jetpack")),icon:{src:x,foreground:(0,d.m)()},keywords:[_x("columns","block search term","jetpack"),_x("images","block search term","jetpack"),_x("photos","block search term","jetpack"),_x("pictures","block search term","jetpack"),_x("square","block search term","jetpack"),_x("circle","block search term","jetpack"),_x("mosaic","block search term","jetpack")],styles:w,supports:{align:["center","wide","full"],customClassName:!1,html:!1},title:__("Tiled Gallery","jetpack"),transforms:{from:[{type:"block",isMultiBlock:!0,blocks:["core/image"],isMatch:e=>_(e).length>0,transform:e=>{const t=_(e);return(0,o.createBlock)(`jetpack/${S}`,{images:t.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:t.map((e=>{let{id:t}=e;return t}))})}},{type:"block",blocks:["core/gallery","jetpack/slideshow"],transform:e=>{let{images:t}=e;const n=_(t);return n.length>0?(0,o.createBlock)(`jetpack/${S}`,{images:n.map((e=>{let{id:t,url:n,link:r,alt:a}=e;return{id:t,url:n,link:r,alt:a}})),ids:n.map((e=>{let{id:t}=e;return t}))}):(0,o.createBlock)(`jetpack/${S}`)}}],to:[{type:"block",blocks:["core/gallery"],transform:e=>{let{images:t,ids:n,columns:r,linkTo:a}=e;return(0,o.createBlock)("core/gallery",{images:t,ids:n,columns:r,imageCrop:!0,linkTo:a})}},{type:"block",blocks:["core/image"],transform:e=>{let{align:t,images:n}=e;return n.length>0?n.map((e=>{let{id:n,url:r,alt:a}=e;return(0,o.createBlock)("core/image",{align:t,id:n,url:r,alt:a})})):(0,o.createBlock)("core/image")}}]},edit:l.ZP,save:c.Z,deprecated:h.Z,example:{attributes:j}}},64597:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,width:n}=e;const a=n?{flexBasis:`${n}%`}:void 0;return(0,r.createElement)("div",{className:"tiled-gallery__col",style:a},t)}},31766:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307);function a(e){let{children:t,galleryRef:n}=e;return(0,r.createElement)("div",{className:"tiled-gallery__gallery",ref:n},t)}},6624:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(69307),a=n(65736),o=n(89105),i=n.n(o),s=n(79906),l=n(97671),c=n(83958),u=n(92870),p=n(5968),d=n(28526);const __=a.__;class m extends r.Component{renderImage(e,t){const{columns:n,imageFilter:o,images:i,isSave:c,linkTo:u,layoutStyle:d,onMoveBackward:m,onMoveForward:h,onRemoveImage:f,onSelectImage:g,selectedImage:b,setImageAttributes:v}=this.props,k=(0,a.sprintf)(
+/* translators: %1$d is the order number of the image, %2$d is the total number of images. */
+__("image %1$d of %2$d in gallery","jetpack"),t+1,i.length),y=c?l.Z:s.Z,{src:E,srcSet:w}=(0,p.z)(e,{layoutStyle:d});return(0,r.createElement)(y,{alt:e.alt,"aria-label":k,columns:n,height:e.height,id:e.id,imageFilter:o,isFirstItem:0===t,isLastItem:t+1===i.length,isSelected:b===t,key:t,link:e.link,linkTo:u,onMoveBackward:c?void 0:m(t),onMoveForward:c?void 0:h(t),onRemove:c?void 0:f(t),onSelect:c?void 0:g(t),origUrl:e.url,setAttributes:c?void 0:v(t),showMovers:i.length>1,srcSet:w,url:E,width:e.width})}render(){const{align:e,children:t,className:n,columns:a,images:o,layoutStyle:s,roundedCorners:l,onResize:m,isSave:h,columnWidths:f}=this.props,g=(0,p.v)(s)?u.Z:c.Z,b=this.props.images.map(this.renderImage,this),v=s!==d.xJ?Math.min(l,d.Z5):0;return(0,r.createElement)("div",{className:i()(n,{[`has-rounded-corners-${v}`]:v>0})},(0,r.createElement)(g,{align:e,columns:a,columnWidths:h?f:void 0,images:o,layoutStyle:s,renderedImages:b,onResize:h?void 0:m}),t)}}},83958:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),a=n.n(r),o=n(69307),i=n(54166),s=n(64597),l=n(31766),c=n(92212),u=n(17265),p=n(58731);class d extends o.Component{constructor(){super(...arguments),a()(this,"gallery",(0,o.createRef)()),a()(this,"pendingRaf",null),a()(this,"ro",null),a()(this,"handleGalleryResize",(e=>{this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null),this.pendingRaf=requestAnimationFrame((()=>{for(const{contentRect:t,target:n}of e){const{width:e}=t,r=[];(0,u.W)(n).forEach((t=>{r.push((0,u.i)(t,e))})),void 0!==this.props.onResize&&this.props.onResize(r)}}))}))}componentDidMount(){this.observeResize()}componentWillUnmount(){this.unobserveResize()}componentDidUpdate(e){(e.images!==this.props.images||e.align!==this.props.align||"columns"===this.props.layoutStyle&&e.columns!==this.props.columns)&&this.triggerResize()}triggerResize(){this.gallery.current&&this.handleGalleryResize([{target:this.gallery.current,contentRect:{width:this.gallery.current.clientWidth}}])}observeResize(){this.triggerResize(),this.ro=new i.Z(this.handleGalleryResize),this.gallery.current&&this.ro.observe(this.gallery.current)}unobserveResize(){this.ro&&(this.ro.disconnect(),this.ro=null),this.pendingRaf&&(cancelAnimationFrame(this.pendingRaf),this.pendingRaf=null)}render(){const{align:e,columns:t,images:n,layoutStyle:r,renderedImages:a,columnWidths:i}=this.props,u=(0,p.h9)(n),d="columns"===r?(0,p.sv)(u,t):(0,p.T9)(u,{isWide:["full","wide"].includes(e)});let m=0;return(0,o.createElement)(l.Z,{galleryRef:this.gallery},d.map(((e,t)=>(0,o.createElement)(c.Z,{key:t},e.map(((e,n)=>{const r=a.slice(m,m+e);return m+=e,(0,o.createElement)(s.Z,{key:n,width:i?.[t]?.[n]},r)}))))))}}},58731:function(e,t,n){"use strict";n.d(t,{h9:function(){return a},sv:function(){return i},T9:function(){return j}});var r=n(92819);function a(e){return(0,r.map)(e,o)}function o(e){let{height:t,width:n}=e;return t&&n?n/t:1}function i(e,t){if(e.length<=t)return[Array(e.length).fill(1)];const n=(0,r.sum)(e)/t,a=[];let o=e,i=0;for(let e=0;e<t-1;e++){const t=(0,r.takeWhile)(o,(t=>{const r=i<=(e+1)*n;return r&&(i+=t),r})).length;a.push(t),o=(0,r.drop)(o,t)}return a.push(o.length),[a]}const s=T([2,1,2],5),l=N([A,A,P,A,A]),c=N([A,A,A,P,A,A,A]),u=T([3,1,3],5),p=N([P,A,A,P]),d=T([1,2,1],5),m=N([P,A,A,A]),h=T([1,3],3),f=N([A,A,A,P]),g=T([3,1],3),b=N([M(1.6),(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2))]),v=T([1,2],3),k=T([1,1,1,1,1],1),y=T([1,1,1,1],1),E=T([1,1,1],3),w=N([(0,r.overEvery)(I(.9),M(2)),(0,r.overEvery)(I(.9),M(2)),M(1.6)]),_=T([2,1],3),C=N([function(e){return e>=2}]);function j(e){let{isWide:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n=(e,a)=>{if(!a.length)return e;let o;o=a.length>15&&l(a)&&s(e)?[2,1,2]:a.length>15&&c(a)&&u(e)?[3,1,3]:5!==a.length&&p(a)&&d(e)?[1,2,1]:m(a)&&h(e)?[1,3]:f(a)&&g(e)?[3,1]:b(a)&&v(e)?[1,2]:t&&(5===a.length||10!==a.length&&a.length>6)&&k(e)&&(0,r.sum)((0,r.take)(a,5))<5?[1,1,1,1,1]:x(e,a)?[1,1,1,1]:S(e,a,t)?[1,1,1]:w(a)&&_(e)?[2,1]:C(a)?[1]:a.length>3?[1,1]:Array(a.length).fill(1);const i=e.concat([o]),y=(0,r.sum)(o),E=a.slice(y);return n(i,E)};return n([],e)}function S(e,t,n){const a=(0,r.sum)((0,r.take)(t,3));return t.length>=3&&4!==t.length&&6!==t.length&&E(e)&&(a<2.5||a<5&&t.length>=3&&t[0]===t[2]||n)}function x(e,t){const n=(0,r.sum)((0,r.take)(t,4));return y(e)&&n<3.5&&t.length>5||n<7&&4===t.length}function T(e,t){return n=>!(0,r.some)((0,r.takeRight)(n,t),(t=>(0,r.isEqual)(t,e)))}function N(e){return t=>t.length>=e.length&&(0,r.every)((0,r.zipWith)(e,t.slice(0,e.length),((e,t)=>e(t))))}function A(e){return e>=1&&e<2}function P(e){return e<1}function I(e){return t=>t>=e}function M(e){return t=>t<e}},17265:function(e,t,n){"use strict";n.d(t,{i:function(){return o},W:function(){return i}});var r=n(28526);function a(e,t){const n=(t-e.reduce(((e,t)=>e+t),0))/e.length;return e.map((e=>e+n))}function o(e,t){return function(e,t,n){let[o,i]=t;const p=1/o*(n-r.q3*(e.childElementCount-1)-i);return function(e,t){let{rawHeight:n,rowWidth:o}=t;const i=s(e),p=i.map((e=>(n-r.q3*(e.childElementCount-1))*c(e)[0])),d=a(p,o);i.forEach(((e,t)=>{const o=p[t],i=d[t];!function(e,t){let{colHeight:n,width:r,rawWidth:o}=t;const i=a(l(e).map((e=>o/u(e))),n);Array.from(e.children).forEach(((e,t)=>{const n=i[t];e.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(e,{colHeight:n-r.q3*(e.childElementCount-1),width:i,rawWidth:o})}));return d.map((e=>parseFloat(e/o*100).toFixed(5)))}(e,{rawHeight:p,rowWidth:n-r.q3*(e.childElementCount-1)})}(e,function(e){return s(e).map(c).reduce(((e,t)=>{let[n,r]=e,[a,o]=t;return[n+a,r+o]}),[0,0])}(e),t)}function i(e){return Array.from(e.querySelectorAll(".tiled-gallery__row"))}function s(e){return Array.from(e.querySelectorAll(".tiled-gallery__col"))}function l(e){return Array.from(e.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function c(e){const t=l(e),n=t.length,r=1/t.map(u).reduce(((e,t)=>e+1/t),0);return[r,r*n||1]}function u(e){const t=parseInt(e.dataset.width,10),n=parseInt(e.dataset.height,10);return t&&!Number.isNaN(t)&&n&&!Number.isNaN(n)?t/n:1}},92212:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(89105),o=n.n(a);function i(e){let{children:t,className:n}=e;return(0,r.createElement)("div",{className:o()("tiled-gallery__row",n)},t)}},92870:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(92819),o=n(92212),i=n(64597),s=n(31766),l=n(28526);function c(e){let{columns:t,renderedImages:n}=e;const c=Math.min(l.hI,t),u=n.length%c;return(0,r.createElement)(s.Z,null,[...u?[(0,a.take)(n,u)]:[],...(0,a.chunk)((0,a.drop)(n,u),c)].map(((e,t)=>(0,r.createElement)(o.Z,{key:t,className:`columns-${e.length}`},e.map(((e,t)=>(0,r.createElement)(i.Z,{key:t},e)))))))}},57713:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(6624),o=n(86655),i=n(98085),s=n(28526);function l(e){let{attributes:t}=e;const{imageFilter:n,images:l}=t;if(!l.length)return null;const{align:c,className:u,columns:p=(0,o.F)(t),linkTo:d,roundedCorners:m,columnWidths:h}=t;return(0,r.createElement)(a.Z,{align:c,className:u,columns:p,imageFilter:n,images:l,isSave:!0,layoutStyle:(0,i.t)(s.P0,u),linkTo:d,roundedCorners:m,columnWidths:h})}},5968:function(e,t,n){"use strict";n.d(t,{v:function(){return u},z:function(){return p}});var r=n(40278),a=n(82827),o=n(11313),i=n(92819),s=n(28526),l=n(58014),c=n(47077);function u(e){return["circle","square"].includes(e)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e.height||!e.width)return e.url?{src:e.url}:{};if((0,c.Z)())return{src:e.url};if((0,o.isBlobURL)(e.url)||/^https?:\/\/localhost/.test(e.url)||/^https?:\/\/.*\.local\//.test(e.url)||(0,l.Ug)()&&(0,l.M6)())return{src:e.url};const n=e.url.split("?",1)[0],{height:a,width:p}=e,{layoutStyle:f}=t,g=m(n)||!0===d()?h:r.Z;let b;if(u(f)&&p&&a){const e=Math.min(s.GP,p,a);b=g(n,{resize:`${e},${e}`})}else b=g(n);const v=300,k=600;let y;if(u(f)){const e=Math.min(k,p,a),t=Math.min(s.GP,p,a);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{resize:`${e},${e}`,strip:"info"});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}else{const e=Math.min(k,p),t=Math.min(s.GP,p);y=(0,i.range)(e,t,v).map((e=>{const t=g(n,{strip:"info",width:e});return t?`${t} ${e}w`:null})).filter(Boolean).join(",")}return Object.assign({src:b},y&&{srcSet:y})}function d(){if("undefined"!=typeof jetpack_plan&&"vip"===jetpack_plan.data)return!0}function m(e){const{host:t}=(0,a.Qc)(e);return/\.files\.wordpress\.com$/.test(t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},{auth:r,hash:o,port:i,query:s,search:l,...c}=(0,a.Qc)(e);return c.query=Object.keys(t).reduce(((e,r)=>Object.assign(e,{[n.hasOwnProperty(r)?n[r]:r]:t[r]})),{}),(0,a.WU)(c)}},96816:function(e,t,n){"use strict";n.d(t,{s:function(){return r}});const r=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}]},71486:function(e,t,n){"use strict";var r=n(70124);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"}},support:{reusable:!1},save:r.Z,isDeprecation:!0}},70124:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),a=n(52175);function o(e){let{attributes:t}=e;const{caption:n,guid:o}=t;if(!o)return null;const i=`https://videopress.com/v/${o}`;return(0,r.createElement)("figure",{className:"wp-block-embed is-type-video is-provider-videopress"},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${i}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},4207:function(e,t,n){"use strict";var r=n(30663),a=n(7332);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsInline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},src:{type:"string"},videoPressClassNames:{type:"string"},align:{type:"wide"}},support:{reusable:!1},isEligible:e=>{let{videoPressClassNames:t,guid:n}=e;return n&&void 0===t},migrate:e=>{const{className:t,videoPressClassNames:n}=e;return{...e,...(0,a.a)(t,n)}},save:r.Z,isDeprecation:!0}},30663:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(52175),o=n(10198);function i(e){const{attributes:{autoplay:t,caption:n,controls:i,guid:s,loop:l,muted:c,poster:u,preload:p,videoPressClassNames:d}={}}=e;if(!s)return null;const m=(0,o.p)(s,{autoplay:t,controls:i,loop:l,muted:c,poster:u,preload:p});return(0,r.createElement)("figure",{className:d},(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${m}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},10198:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,poster:s,preload:l}=t;if(!e)return null;const c={...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{posterUrl:s},..."none"!==l&&{preloadContent:l}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,c)}},7332:function(e,t,n){"use strict";n.d(t,{a:function(){return l}});var r=n(81326),a=n.n(r),o=n(29512),i=n.n(o);const s=[{ratio:"2.33",className:"wp-embed-aspect-21-9"},{ratio:"2.00",className:"wp-embed-aspect-18-9"},{ratio:"1.77",className:"wp-embed-aspect-16-9"},{ratio:"1.33",className:"wp-embed-aspect-4-3"},{ratio:"1.00",className:"wp-embed-aspect-1-1"},{ratio:"0.56",className:"wp-embed-aspect-9-16"},{ratio:"0.50",className:"wp-embed-aspect-1-2"}],l=(e,t)=>{const n=s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1}),r=a()(e,{...n,"wp-block-embed":!1,"is-type-video":!1,"is-provider-videopress":!1}),o=new(i())(r);let l=a()(e,t);return o.forEach((e=>{l=l.replace(e,"")})),{className:r,videoPressClassNames:l.trim()}}},3082:function(e,t,n){"use strict";var r=n(38225);t.Z={attributes:{autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},videoPressClassNames:{type:"string"}},support:{reusable:!1},isEligible:e=>e.guid,save:r.Z,isDeprecation:!0}},38225:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(52175),o=n(89105),i=n.n(o),s=n(14842);function l(e){const{attributes:{autoplay:t,caption:n,controls:o,guid:l,loop:c,muted:u,playsinline:p,poster:d,preload:m,videoPressClassNames:h,className:f,align:g,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k}={}}=e,y=a.useBlockProps.save({className:i()("wp-block-video",f,h,{[`align${g}`]:g})}),E=(0,s.p)(l,{autoplay:t,controls:o,loop:c,muted:u,playsinline:p,poster:d,preload:m,seekbarColor:b,seekbarPlayedColor:v,seekbarLoadingColor:k});return(0,r.createElement)("figure",y,(0,r.createElement)("div",{className:"wp-block-embed__wrapper"},`\n${E}\n`),!a.RichText.isEmpty(n)&&(0,r.createElement)(a.RichText.Content,{tagName:"figcaption",value:n}))}},14842:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d}=t;if(!e)return null;const m={resizeToParent:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,m)}},6976:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(27538),i=n.n(o),s=n(69307),l=n(86989),c=n.n(l),u=n(11313),p=n(55609),d=n(94333),m=n(9818),h=n(52175),f=n(65736),g=n(22607),b=n(41221),v=n(89105),k=n.n(v),y=n(92819),E=n(38341),w=n(45151),_=n(43501),C=n(72905),j=n(9360);const __=f.__,_x=f._x,S=["image"],x=e=>{const{html:t,scripts:n,interactive:r,caption:a,isSelected:o,hideOverlay:i,attributes:l,setAttributes:c}=e,{align:u,className:d,videoPressClassNames:m,maxWidth:f}=l,g=(0,h.useBlockProps)({className:k()("wp-block-video",d,m,{[`align${u}`]:u})});return(0,s.createElement)("figure",g,(0,s.createElement)("div",{className:"wp-block-embed__wrapper"},(0,s.createElement)(p.ResizableBox,{enable:{top:!1,bottom:!1,left:!0,right:!0},maxWidth:"100%",size:{width:f},style:{margin:"auto"},onResizeStop:(e,t,n)=>{let r=getComputedStyle(n).width;if(null!==n.parentElement){r===getComputedStyle(n.parentElement).width&&(r="100%")}c({maxWidth:r})}},(0,s.createElement)(p.SandBox,{html:t,scripts:n,type:m}))),!r&&(0,s.createElement)("div",{className:"block-library-embed__interactive-overlay",onMouseUp:i}),(!h.RichText.isEmpty(a)||o)&&(0,s.createElement)(h.RichText,{tagName:"figcaption",placeholder:__("Write caption…","jetpack"),value:a,onChange:e=>c({caption:e}),inlineToolbar:!0}))};t.Z=(0,d.createHigherOrderComponent)((0,d.compose)([(0,m.withSelect)(((e,t)=>{const{autoplay:n,controls:r,guid:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,src:h,useAverageColor:f}=t.attributes,{getEmbedPreview:g,isRequestingEmbedPreview:b}=e("core"),v=(0,w.p)(a,{autoplay:n,controls:r,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:p,seekbarLoadingColor:d,seekbarPlayedColor:m,useAverageColor:f}),k=!!v&&g(v);return{isFetchingPreview:!!v&&b(v),isUploading:(0,u.isBlobURL)(h),preview:k,url:v}})),(0,m.withDispatch)((e=>({invalidateCachedEmbedPreview:t=>{e("core/data").invalidateResolution("core","getEmbedPreview",[t])}}))),d.withInstanceId,e=>class extends s.Component{constructor(){super(...arguments),i()(this,"hideOverlay",(()=>{this.setState({interactive:!0})})),i()(this,"setRatingAndAllowDownload",(async()=>{const e=(0,y.get)(this.props,"attributes.id"),t=await this.requestMedia(e);let n=(0,y.get)(t,"jetpack_videopress.rating");const r=(0,y.get)(t,"media_details.videopress.allow_download");n&&("X-18"===n&&(n="R-17"),this.setState({rating:n})),void 0!==r&&this.setState({allowDownload:!!r})})),i()(this,"schedulePreviewCacheReload",(()=>{const{invalidateCachedEmbedPreview:e,url:t}=this.props;null===this.previewCacheReloadTimer&&this.previewFailuresCount<5&&(this.previewFailuresCount++,this.previewCacheReloadTimer=setTimeout((()=>{e(t),this.previewCacheReloadTimer=null}),2e3*this.previewFailuresCount))})),i()(this,"fallbackToCore",(()=>{this.props.setAttributes({guid:void 0}),this.setState({fallback:!0})})),i()(this,"setGuid",(async()=>{const{attributes:e,setAttributes:t}=this.props,{id:n}=e;if(n)try{const e=await this.requestMedia(n);if(null===e)return;const r=(0,y.get)(e,"jetpack_videopress.guid");r?(t({guid:r}),this.setTracks(r)):this.fallbackToCore()}catch(e){this.setState({isFetchingMedia:!1}),this.fallbackToCore()}else t({guid:void 0})})),i()(this,"requestMedia",(async e=>{if(!e)return null;if(null!==this.state.media&&this.state.lastRequestedMediaId===e)return this.state.media;this.setState({isFetchingMedia:!0});const t=await c()({path:`/wp/v2/media/${e}`}).catch((()=>(this.setState({fallback:!0}),null))).finally((()=>{this.setState({isFetchingMedia:!1})})),{id:n}=this.props.attributes;return e!==n?null:(this.setState({media:t,lastRequestedMediaId:e}),t)})),i()(this,"setTracks",(e=>{const{setAttributes:t}=this.props;e&&c()({url:`https://public-api.wordpress.com/rest/v1.1/videos/${e}`,credentials:"omit",global:!0}).then((e=>{const n=[];Object.keys(e.tracks).forEach((t=>{for(const r in e.tracks[t]){const a=e.tracks[t][r];n.push({src:a.src,kind:t,srcLang:r,label:a.label})}})),t({videoPressTracks:n})}))})),i()(this,"switchToEditing",(()=>{this.props.setAttributes({id:void 0,guid:void 0,src:void 0})})),i()(this,"onSelectPoster",(e=>{const{setAttributes:t}=this.props;t({poster:e.url})})),i()(this,"onRemovePoster",(()=>{const{setAttributes:e}=this.props;e({poster:""}),this.posterImageButton.current.focus()})),i()(this,"toggleAttribute",(e=>t=>{this.props.setAttributes({[e]:t})})),i()(this,"getAutoplayHelp",(e=>e?__("Note: Autoplaying videos may cause usability issues for some visitors.","jetpack"):null)),i()(this,"onChangeRating",(e=>{const t=this.state.rating;"X-18"===e&&(e="R-17"),-1!==(0,y.indexOf)(["G","PG-13","R-17"],e)&&this.updateMetaApiCall({rating:e},(()=>this.setState({isUpdatingRating:!0,rating:e})),(()=>this.setState({rating:t})),(()=>this.setState({isUpdatingRating:!1})))})),i()(this,"onChangeAllowDownload",(e=>{const t=this.state.allowDownload;this.updateMetaApiCall({allow_download:e?1:0},(()=>this.setState({isUpdatingAllowDownload:!0,allowDownload:e})),(()=>this.setState({allowDownload:t})),(()=>this.setState({isUpdatingAllowDownload:!1})))})),i()(this,"updateMetaApiCall",((e,t,n,r)=>{const{invalidateCachedEmbedPreview:a,url:o}=this.props,{id:i}=this.props.attributes;if(!i)return;t();const s={id:i};Object.assign(s,e),c()({path:"/wpcom/v2/videopress/meta",method:"POST",data:s}).then((e=>{status in e&&200!==e.status&&n()})).catch((()=>n())).finally((()=>{r(),a(o)}))})),this.state={media:null,isFetchingMedia:!1,fallback:!1,interactive:!1,rating:null,lastRequestedMediaId:null,isUpdatingRating:!1,allowDownload:null,isUpdatingAllowDownload:!1},this.posterImageButton=(0,s.createRef)(),this.previewCacheReloadTimer=null,this.previewFailuresCount=0}static getDerivedStateFromProps(e,t){return!e.isSelected&&t.interactive?{interactive:!1}:null}async componentDidMount(){const{guid:e}=this.props.attributes;e?this.setTracks(e):await this.setGuid(),this.setRatingAndAllowDownload()}async componentDidUpdate(e){const{attributes:t,invalidateCachedEmbedPreview:n,preview:r,setAttributes:a,url:o,isFetchingPreview:i}=this.props;t.id!==e.attributes.id&&(await this.setGuid(),this.setRatingAndAllowDownload());let s=!1;if(o&&o!==e.url&&(n(o),s=!0),r){const e=(0,_.f)(r.html,k()("wp-block-embed","is-type-video","is-provider-videopress"),!1);this.previewFailuresCount=0,a({videoPressClassNames:e})}else i||s||!this.props.attributes.guid||this.schedulePreviewCacheReload()}getPreloadHelp(){const{attributes:e}=this.props;return"auto"===e.preload?__("Note: Automatically downloading videos may cause issues if there are many videos displayed on the same page.","jetpack"):null}renderControlLabelWithTooltip(e,t){return(0,s.createElement)(p.Tooltip,{text:t,position:"top"},(0,s.createElement)("span",null,e))}render(){const{attributes:t,instanceId:n,isFetchingPreview:r,isUploading:o,preview:i,setAttributes:l}=this.props,{fallback:c,isFetchingMedia:u,isUpdatingRating:d,interactive:m,rating:v,allowDownload:k,isUpdatingAllowDownload:y}=this.state,{autoplay:w,caption:_,controls:T,guid:N,loop:A,muted:P,playsinline:I,poster:M,preload:R,useAverageColor:L,videoPressTracks:B,isVideoPressExample:Z,src:F}=t;if(Z&&F)return(0,s.createElement)("img",{src:F,alt:_});const D=`video-block__poster-image-description-${n}`,O=(0,s.createElement)(s.Fragment,null,(0,s.createElement)(h.BlockControls,{group:"block"},(0,s.createElement)(j.Z,{tracks:B,onChange:e=>{l({videoPressTracks:e})},guid:N})),(0,s.createElement)(h.BlockControls,null,(0,s.createElement)(p.ToolbarGroup,null,(0,s.createElement)(p.ToolbarButton,{className:"components-icon-button components-toolbar__control",label:__("Edit video","jetpack"),onClick:this.switchToEditing,icon:(0,s.createElement)(g.Z,{icon:b.Z})}))),(0,s.createElement)(h.InspectorControls,null,(0,s.createElement)(p.PanelBody,{title:__("Video Settings","jetpack")},(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Autoplay","jetpack"),
+/* translators: Tooltip describing the "autoplay" option for the VideoPress player */
+__("Start playing the video as soon as the page loads","jetpack")),onChange:this.toggleAttribute("autoplay"),checked:w,help:this.getAutoplayHelp}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Loop","jetpack"),
+/* translators: Tooltip describing the "loop" option for the VideoPress player */
+__("Restarts the video when it reaches the end","jetpack")),onChange:this.toggleAttribute("loop"),checked:A}),(0,s.createElement)(p.ToggleControl,{label:__("Muted","jetpack"),onChange:this.toggleAttribute("muted"),checked:P}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Playback Controls","jetpack"),
+/* translators: Tooltip describing the "controls" option for the VideoPress player */
+__("Display the video playback controls","jetpack")),onChange:this.toggleAttribute("controls"),checked:T}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Play Inline","jetpack"),
+/* translators: Tooltip describing the "playsinline" option for the VideoPress player */
+__("Play the video inline instead of full-screen on mobile devices","jetpack")),onChange:this.toggleAttribute("playsinline"),checked:I}),(0,s.createElement)(p.SelectControl,{label:this.renderControlLabelWithTooltip(__("Preload","jetpack"),
+/* translators: Tooltip describing the "preload" option for the VideoPress player */
+__("Content to dowload before the video is played","jetpack")),value:R,onChange:e=>l({preload:e}),options:[{value:"auto",label:_x("Auto","VideoPress preload setting","jetpack")},{value:"metadata",label:_x("Metadata","VideoPress preload setting","jetpack")},{value:"none",label:_x("None","VideoPress preload setting","jetpack")}],help:this.getPreloadHelp()}),(0,s.createElement)(h.MediaUploadCheck,null,(0,s.createElement)(p.BaseControl,{className:"editor-video-poster-control",label:__("Poster Image","jetpack")},(0,s.createElement)(h.MediaUpload,{title:__("Select Poster Image","jetpack"),onSelect:this.onSelectPoster,allowedTypes:S,render:e=>{let{open:t}=e;return(0,s.createElement)(p.Button,{isDefault:!0,onClick:t,ref:this.posterImageButton,"aria-describedby":D},M?__("Replace image","jetpack",0):__("Select Poster Image","jetpack"))}}),(0,s.createElement)("p",{id:D,hidden:!0},M?(0,f.sprintf)(
+/* translators: Placeholder is an image URL. */
+__("The current poster image url is %s","jetpack"),M):__("There is no poster image currently selected","jetpack")),!!M&&(0,s.createElement)(p.Button,{onClick:this.onRemovePoster,isLink:!0,isDestructive:!0},__("Remove Poster Image","jetpack"))))),(0,s.createElement)(C.Z,{attributes:t,setAttributes:l,useAverageColor:L,toggleAttribute:this.toggleAttribute}),(0,s.createElement)(p.PanelBody,{title:__("Video File Settings","jetpack")},(0,s.createElement)(p.SelectControl,{label:_x("Rating","The age rating for this video.","jetpack"),value:v,disabled:u||d,options:[{label:_x("G",'Video rating for "General Audiences".',"jetpack"),value:"G"},{label:_x("PG-13",'Video rating for "Parental Guidance", unsuitable for children under 13.',"jetpack"),value:"PG-13"},{label:_x("R",'Video rating for "Restricted", not recommended for children under 17.',"jetpack"),value:"R-17"}],onChange:this.onChangeRating}),(0,s.createElement)(p.ToggleControl,{label:this.renderControlLabelWithTooltip(__("Allow download","jetpack"),
+/* translators: Tooltip describing the "allow download" option for the VideoPress player */
+__("Display download option and allow viewers to download this video","jetpack")),onChange:this.onChangeAllowDownload,checked:k,disabled:u||y})))),z=u||r,U=c||o||!N,$=U&&!o&&!z;if(U)return(0,s.createElement)(s.Fragment,null,(0,s.createElement)("div",{className:o||z?"":"videopress-block-hide"},(0,s.createElement)(E.Z,{text:o?__("Uploading…","jetpack"):__("Generating preview…","jetpack",0)})),(0,s.createElement)("div",{className:$?"":"videopress-block-hide"},(0,s.createElement)(e,this.props)));const{html:V,scripts:G}=i||{html:null,scripts:null},q=z||!i;return(0,s.createElement)(s.Fragment,null,O,q&&(0,s.createElement)(E.Z,{text:__("Generating preview…","jetpack")}),!q&&(0,s.createElement)(x,a()({},this.props,{hideOverlay:this.hideOverlay,html:V,scripts:G,interactive:m,caption:_})))}}]),"withVideoPressEdit")},38341:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{text:t}=e;return(0,r.createElement)("div",{className:"wp-block-embed is-loading"},(0,r.createElement)(a.Spinner,null),(0,r.createElement)("p",null,t))}},64089:function(e,t,n){"use strict";var r=n(69307),a=n(94333),o=n(52175),i=n(89105),s=n.n(i),l=n(45151);t.Z=(0,a.createHigherOrderComponent)((e=>t=>{const{attributes:{autoplay:n,caption:a,controls:i,guid:c,loop:u,muted:p,playsinline:d,poster:m,preload:h,videoPressClassNames:f,className:g,align:b,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E,maxWidth:w}={}}=t,_=o.useBlockProps.save({className:s()("wp-block-video",g,f,{[`align${b}`]:b})});if(!c)return e(t);const C=(0,l.p)(c,{autoplay:n,controls:i,loop:u,muted:p,playsinline:d,poster:m,preload:h,seekbarColor:v,seekbarPlayedColor:k,seekbarLoadingColor:y,useAverageColor:E});let j={};return w&&w.length>0&&"100%"!==w&&(j={maxWidth:w,margin:"auto"}),(0,r.createElement)("figure",_,(0,r.createElement)("div",{className:"wp-block-embed__wrapper",style:j},`\n${C}\n`),!o.RichText.isEmpty(a)&&(0,r.createElement)(o.RichText.Content,{tagName:"figcaption",value:a}))}),"withVideoPressSave")},72905:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=(n(99196),n(55609)),s=n(52175),l=n(65736);const __=l.__;class c extends o.Component{constructor(){super(...arguments),a()(this,"handleChangeSeekbarColor",(e=>{this.setState({seekbarColor:e})})),a()(this,"handleChangeSeekbarLoadingColor",(e=>{this.setState({seekbarLoadingColor:e})})),a()(this,"handleChangeSeekbarPlayedColor",(e=>{this.setState({seekbarPlayedColor:e})})),a()(this,"saveColors",(()=>{const{seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n}=this.state,{setAttributes:r}=this.props;r({seekbarColor:e,seekbarLoadingColor:t,seekbarPlayedColor:n})}));const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.props.attributes;this.state={seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}}render(){const{seekbarColor:e,seekbarPlayedColor:t,seekbarLoadingColor:n}=this.state,{toggleAttribute:r,useAverageColor:a}=this.props,l=!0;return(0,o.createElement)(i.PanelBody,{className:"seekbar-color-settings__panel",title:__("Progress Bar Colors","jetpack"),initialOpen:!1},(0,o.createElement)(i.ToggleControl,{label:__("Match video","jetpack"),help:__("Colors adapt to the video as it plays","jetpack"),onChange:r("useAverageColor"),checked:a}),(0,o.createElement)(s.PanelColorSettings,{opened:!a,showTitle:!1,colorSettings:[{value:e,onChange:this.handleChangeSeekbarColor,label:__("Main","jetpack"),showTitle:l},{value:n,onChange:this.handleChangeSeekbarLoadingColor,label:__("Loaded","jetpack"),showTitle:l},{value:t,onChange:this.handleChangeSeekbarPlayedColor,label:__("Progress","jetpack"),showTitle:l}]},(0,o.createElement)(i.Button,{variant:"secondary",onClick:this.saveColors},__("Save colors","jetpack"))))}}t.Z=c},9360:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(69307),a=n(86989),o=n.n(a),i=n(65736),s=n(55609),l=n(52175),c=n(31266),u=n(9818);const __=i.__,p="subtitles",d=".vtt,text/vtt",m=[{label:__("Subtitles","jetpack"),value:"subtitles"},{label:__("Captions","jetpack"),value:"captions"},{label:__("Descriptions","jetpack"),value:"descriptions"},{label:__("Chapters","jetpack"),value:"chapters"},{label:__("Metadata","jetpack"),value:"metadata"}],h=(0,r.createElement)(s.SVG,{width:"18",height:"14",viewBox:"0 0 18 14",role:"img",fill:"none"},(0,r.createElement)(s.Rect,{x:"0.75",y:"0.75",width:"16.5",height:"12.5",rx:"1.25",stroke:"black",strokeWidth:"1.5",fill:"none"}),(0,r.createElement)(s.Path,{d:"M3 7H15",stroke:"black",strokeWidth:"1.5"}),(0,r.createElement)(s.Path,{d:"M3 10L15 10",stroke:"black",strokeWidth:"1.5"})),f=()=>"videoPressUploadTrack"in window;function g(e){let{tracks:t,onChange:n,guid:a}=e;const[l=-1,c]=(0,r.useState)(),u=e=>{const r=t[e];c(e),((e,t)=>{if(f())return window.videoPressDeleteTrack(t,e.kind,e.srcLang);const n={method:"POST",path:`/videos/${t}/tracks/delete`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang]]};return o()(n)})(r,a).finally((()=>{n(t.filter(((t,n)=>n!==e))),c(-1)}))};let p;return p=0===t.length?(0,r.createElement)("p",{className:"videopress-block-tracks-editor__tracks-informative-message"},__("Tracks can be subtitles, captions, chapters, or descriptions. They help make your content more accessible to a wider range of users.","jetpack")):t.map(((e,t)=>(0,r.createElement)("div",{key:t,className:"videopress-block-tracks-editor__track-list-track"},(0,r.createElement)("span",null,e.label),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__track-list-track-delete"},(0,r.createElement)(s.Button,{isLink:!0,isDestructive:!0,onClick:()=>{u(t)},"aria-label":(0,i.sprintf)(
+/* translators: %s: Label of the video text track e.g: "French subtitles" */
+__("Delete %s","jetpack"),e.label),disabled:l===t},l===t?__("Deleting","jetpack"):__("Delete","jetpack",0)))))),(0,r.createElement)(s.MenuGroup,{label:__("Text tracks","jetpack"),className:"videopress-block-tracks-editor__track-list"},p)}function b(e){let{track:t,guid:n,onChange:a,onClose:c,onCancel:h,trackExists:g}=e;const[b,v]=(0,r.useState)(),[k=!1,y]=(0,r.useState)(),{label:E="",srcLang:w="",kind:_=p}=t,C=t.tmpFile?t.tmpFile.name:"";if(!(0,u.useSelect)((e=>e(l.store).getSettings().mediaUpload),[]))return null;return(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor"},(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-label"},__("Edit track","jetpack")),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file"},(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label"},(0,r.createElement)("span",null,__("File","jetpack"),":"),""!==C&&(0,r.createElement)("span",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-label-name"},(0,r.createElement)("strong",null,C)),(0,r.createElement)(l.MediaUploadCheck,null,(0,r.createElement)(s.FormFileUpload,{onChange:e=>{const n=e.target.files;!n.length>0||(t.tmpFile=n[0],a(t))},accept:d,render:e=>{let{openFileDialog:t}=e;return(0,r.createElement)(s.Button,{isLink:!0,onClick:()=>{t()}},""===C?__("Select track","jetpack"):__("Change track","jetpack",0))},disabled:k}))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-upload-file-help"},
+/* translators: %s: The allowed file types to be uploaded as a video text track." */
+(0,i.sprintf)(__("Allowed formats: %s","jetpack"),d))),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-label-language"},(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,label:e}),label:__("Label","jetpack"),value:E,help:__("Title of track","jetpack"),disabled:k}),(0,r.createElement)(s.TextControl,{onChange:e=>a({...t,srcLang:e}),label:__("Source language","jetpack"),value:w,help:__("Language tag (en, fr, etc.)","jetpack"),disabled:k})),(0,r.createElement)(s.SelectControl,{className:"videopress-block-tracks-editor__single-track-editor-kind-select",options:m,value:_,label:
+/* translators: %s: The kind of video text track e.g: "Subtitles, Captions" */
+__("Kind","jetpack"),onChange:e=>{a({...t,kind:e})},disabled:k}),(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-buttons-container"},k?(0,r.createElement)(s.Spinner,null):(0,r.createElement)(s.Button,{isSecondary:!0,disabled:!t.tmpFile,onClick:()=>{v(null),""===E&&(t.label=__("English","jetpack")),""===w&&(t.srcLang="en"),void 0===t.kind&&(t.kind=p),g(t)?v(__("A track already exists for that language and kind.","jetpack")):(y(!0),((e,t)=>{if(f())return window.videoPressUploadTrack(t,e.kind,e.srcLang,e.label,e.tmpFile);const n={method:"POST",path:`/videos/${t}/tracks`,apiNamespace:"rest/v1.1",global:!0,parse:!1,formData:[["kind",e.kind],["srclang",e.srcLang],["label",e.label],["vtt",e.tmpFile]]};return o()(n)})(t,n).then((()=>{a(t),v(null),c()})).catch((e=>{e.message&&v(e.message)})).finally((()=>{y(!1)})))}},__("Save","jetpack")),(0,r.createElement)(s.Button,{isLink:!0,onClick:h},__("Close","jetpack"))),b&&(0,r.createElement)("div",{className:"videopress-block-tracks-editor__single-track-editor-error"},
+/* translators: %s: An error message returned after a failed video track file upload." */
+(0,i.sprintf)(__("Error: %s","jetpack"),b))))}function v(e){let{tracks:t=[],onChange:n,guid:a}=e;const[o,i]=(0,r.useState)(null);return(0,r.createElement)(s.Dropdown,{contentClassName:"videopress-block-tracks-editor",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;return(0,r.createElement)(s.ToolbarButton,{label:__("Text tracks","jetpack"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:n,icon:h})},renderContent:()=>null!==o?(0,r.createElement)(b,{track:t[o],guid:a,onChange:e=>{const r=[...t];r[o]=e,n(r)},onClose:()=>i(null),onCancel:()=>{n(t.filter(((e,t)=>t!==o))),i(null)},trackExists:e=>-1!==t.filter(((e,t)=>t!==o)).findIndex((t=>t.kind===e.kind&&t.srcLang===e.srcLang))}):(0,r.createElement)(r.Fragment,null,(0,r.createElement)(s.NavigableMenu,null,(0,r.createElement)(g,{tracks:t,onChange:n,guid:a}),(0,r.createElement)(s.MenuGroup,{className:"videopress-block-tracks-editor__add-tracks-container",label:__("Add tracks","jetpack")},(0,r.createElement)(s.MenuItem,{icon:c.Z,onClick:()=>{(()=>{const e=t.length,r=[...t];r[e]||(r[e]={}),r[e]={...t[e]},n(r),i(e)})()}},__("Upload track","jetpack")))))})}},45151:function(e,t,n){"use strict";n.d(t,{p:function(){return a}});var r=n(96483);const a=(e,t)=>{let{autoplay:n,controls:a,loop:o,muted:i,playsinline:s,poster:l,preload:c,seekbarColor:u,seekbarPlayedColor:p,seekbarLoadingColor:d,useAverageColor:m}=t;if(!e)return null;const h={resizeToParent:!0,cover:!0,...n&&{autoPlay:!0},...!a&&{controls:!1},...o&&{loop:!0},...i&&{muted:!0,persistVolume:!1},...s&&{playsinline:!0},...l&&{posterUrl:l},..."none"!==c&&{preloadContent:c},...""!==u&&{sbc:u},...""!==p&&{sbpc:p},...""!==d&&{sblc:d},...m&&{useAverageColor:!0}};return(0,r.addQueryArgs)(`https://videopress.com/v/${e}`,h)}},43501:function(e,t,n){"use strict";n.d(t,{f:function(){return s}});var r=n(96816),a=n(89105),o=n.n(a);const i=e=>{const t=r.s.reduce(((e,t)=>{let{className:n}=t;return e[n]=!1,e}),{"wp-has-aspect-ratio":!1});return o()(e,t)};function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!n)return i(t);const a=document.implementation.createHTMLDocument("");a.body.innerHTML=e;const s=a.body.querySelector("iframe");if(s&&s.height&&s.width){const e=(s.width/s.height).toFixed(2);for(let n=0;n<r.s.length;n++){const a=r.s[n];if(e>=a.ratio)return o()(i(t),a.className,"wp-has-aspect-ratio")}}return t}},33144:function(e,t,n){"use strict";n.d(t,{U:function(){return i},m:function(){return s}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i="mrec",s=[{height:250,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-7-2h2V7h-4v2h2z"})),name:__("Rectangle 300x250","jetpack"),tag:i,width:300,editorPadding:30},{height:90,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4h-4v-2h2c1.1 0 2-.89 2-2V9c0-1.11-.9-2-2-2H9v2h4v2h-2c-1.1 0-2 .89-2 2v4h6v-2z"})),name:__("Leaderboard 728x90","jetpack"),tag:"leaderboard",width:728,editorPadding:60},{height:50,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-4-4v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V9c0-1.11-.9-2-2-2H9v2h4v2h-2v2h2v2H9v2h4c1.1 0 2-.89 2-2z"})),name:__("Mobile Leaderboard 320x50","jetpack"),tag:"mobile_leaderboard",width:320,editorPadding:100},{height:600,icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M.04 0h24v24h-24V0z"}),(0,r.createElement)(o.Path,{d:"M19.04 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-14V5h14v14zm-6-2h2V7h-2v4h-2V7h-2v6h4z"})),name:__("Wide Skyscraper 160x600","jetpack"),tag:"wideskyscraper",width:160,editorPadding:30}]},67907:function(e,t,n){"use strict";var r=n(69307),a=n(52175),o=n(55609),i=n(65736),s=n(21762);const __=i.__,l=e=>{let{value:t,onChange:n}=e;return(0,r.createElement)(o.PanelBody,{title:__("Visibility","jetpack")},(0,r.createElement)(o.ToggleControl,{className:"jetpack-wordads__mobile-visibility",checked:!!t,label:__("Hide on mobile","jetpack"),help:__("Hides this block for site visitors on mobile devices.","jetpack"),onChange:n}))};t.Z=e=>{let{attributes:{format:t,hideMobile:n},setAttributes:o}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.BlockControls,null,(0,r.createElement)(s.Z,{value:t,onChange:e=>o({format:e})})),(0,r.createElement)(a.InspectorControls,null,(0,r.createElement)(l,{value:n,onChange:e=>o({hideMobile:!!e})})))}},7299:function(e,t,n){"use strict";var r=n(69307),a=n(67907),o=n(33144),i=n(72473),s=n(52203),l=n(38511),c=n(80405);t.Z=e=>{let{attributes:t,setAttributes:n}=e;const{format:u}=t,p=o.m.find((e=>{let{tag:t}=e;return t===u}));return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Z,{attributes:t,setAttributes:n}),(0,r.createElement)("div",{className:`wp-block-jetpack-wordads jetpack-wordads-${u}`},(0,r.createElement)("div",{className:"jetpack-wordads__ad",style:{width:p.width,height:p.height,backgroundImage:`url( ${(e=>{switch(e){case"leaderboard":return s;case"mobile_leaderboard":return l;case"wideskyscraper":return c;default:return i}})(u)} )`,backgroundSize:"cover"}})))}},21762:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(33144);const s=(0,a.__)("Pick an ad format","jetpack");function l(e){let{value:t,onChange:n}=e;return(0,r.createElement)(o.Dropdown,{position:"bottom right",renderToggle:e=>{let{onToggle:t,isOpen:n}=e;return(0,r.createElement)(o.ToolbarGroup,{controls:[{icon:(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{d:"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z"})),title:s,onClick:t,extraProps:{"aria-expanded":n},className:"wp-block-jetpack-wordads__format-picker-icon"}]})},renderContent:e=>{let{onClose:a}=e;return(0,r.createElement)(o.NavigableMenu,{className:"wp-block-jetpack-wordads__format-picker"},i.m.map((e=>{let{tag:i,name:s,icon:l}=e;return(0,r.createElement)(o.MenuItem,{className:i===t?"is-active":void 0,icon:l,isSelected:i===t,key:i,onClick:()=>{n(i),a()},role:"menuitemcheckbox"},s)})))}})}},62086:function(e,t,n){"use strict";n.d(t,{u2:function(){return c},Xd:function(){return d}});var r=n(69307),a=n(65736),o=n(55609),i=n(7299),s=n(33144),l=n(57535);const __=a.__,_x=a._x,c="wordads",u=__("Ad","jetpack"),p=(0,r.createElement)(o.SVG,{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},(0,r.createElement)(o.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),(0,r.createElement)(o.Path,{fill:"currentColor",d:"M12,8H4A2,2 0 0,0 2,10V14A2,2 0 0,0 4,16H5V20A1,1 0 0,0 6,21H8A1,1 0 0,0 9,20V16H12L17,20V4L12,8M15,15.6L13,14H4V10H13L15,8.4V15.6M21.5,12C21.5,13.71 20.54,15.26 19,16V8C20.53,8.75 21.5,10.3 21.5,12Z"})),d={title:u,description:(0,r.createElement)(r.Fragment,null,(0,r.createElement)("p",null,__("Earn income by adding high quality ads to your post","jetpack")),(0,r.createElement)(o.ExternalLink,{href:"https://wordads.co/"},__("Learn all about WordAds","jetpack"))),icon:{src:p,foreground:(0,l.m)()},attributes:{align:{type:"string",default:"center"},format:{type:"string",default:s.U},hideMobile:{type:"boolean",default:!1}},example:{attributes:{}},category:"earn",keywords:[_x("ads","block search term","jetpack"),"WordAds",_x("advertisement","block search term","jetpack")],supports:{align:["left","center","right"],alignWide:!1,className:!1,customClassName:!1,html:!1,reusable:!1},edit:i.Z,save:()=>null}},81921:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535);const __=a.__,_x=a._x,i={name:"facebook",title:"Facebook",icon:{src:"facebook",foreground:(0,o.m)()},keywords:[_x("social","block search term","jetpack")],description:__("Embed a Facebook post.","jetpack"),patterns:[/^https?:\/\/www\.facebook.com\/.+/i],attributes:{providerNameSlug:"facebook",previewable:!1,responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateFacebookEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations)return e;const n=e.variations.filter((e=>e.name!==i.name));return e.variations=[...n,i],e}))},17269:function(e,t,n){"use strict";n(81921),n(82122),n(19775),n(34034)},82122:function(e,t,n){"use strict";var r=n(92694),a=n(65736),o=n(57535),i=n(28938);const __=a.__,_x=a._x,s={name:"instagram",title:"Instagram",icon:{src:"instagram",foreground:(0,o.m)()},keywords:[_x("image","block search term","jetpack"),_x("social","block search term","jetpack")],description:__("Embed an Instagram post.","jetpack"),patterns:[/^https?:\/\/(www\.)?instagr(\.am|am\.com)\/.+/i],attributes:{providerNameSlug:"instagram",responsive:!0}};(0,r.addFilter)("blocks.registerBlockType","reactivateInstagramEmbedBlockVariation",(function(e,t){if("core/embed"!==t||!e.variations||!(0,i.Z)())return e;const n=e.variations.filter((e=>e.name!==s.name));return e.variations=[...n,s],e}))},19775:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"loom",title:"Loom",icon:o.zf,keywords:[__("video","jetpack")],description:__("Embed a Loom video.","jetpack"),patterns:[/^https?:\/\/(www\.)?loom\.com\/share\/.+/i],attributes:{providerNameSlug:"loom",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},34034:function(e,t,n){"use strict";var r=n(4981),a=n(65736),o=n(51591);const __=a.__,i={name:"smartframe",title:"SmartFrame",icon:o.Ae,keywords:[__("smartframe","jetpack")],description:__("Embed a SmartFrame Image.","jetpack"),patterns:[/^https?:\/\/(.*?).smartframe.(io|net)\/.*/i],attributes:{providerNameSlug:"smartframe",responsive:!0}};(0,r.registerBlockVariation)("core/embed",i)},56771:function(e,t,n){"use strict";var r=n(92694),a=n(4981),o=n(33722);const i={from:[{type:"block",isMultiBlock:!1,blocks:["core/legacy-widget"],isMatch:e=>{let{idBase:t,instance:n}=e;return!!n?.raw&&"jetpack_widget_social_icons"===t},transform:e=>{let{instance:t}=e,n=[];return t.raw.icons.forEach((e=>{const t=new URL(e.url.includes(":")?e.url:"https://"+e.url),r=t.hostname?t.hostname:t.protocol,i=o.Z.find((e=>r.includes(e.url)||e.url.includes(r))),s=(0,a.createBlock)("core/social-link",{service:i?i.name:"chain",url:e.url});n=[...n,s]})),(0,a.createBlock)("core/social-links",{},n)}}]};(0,r.addFilter)("blocks.registerBlockType","addTransformToSocialLinksWidget",(function(e,t){return"core/social-links"!==t||(e.transforms=i),e}))},33722:function(e,t){"use strict";t.Z=[{name:"wordpress",url:["wordpress."]},{name:"fivehundredpx",url:["500px.com"]},{name:"amazon",url:["amazon."]},{name:"bandcamp",url:["bandcamp.com"]},{name:"behance",url:["behance.net"]},{name:"codepen",url:["codepen.io"]},{name:"deviantart",url:["deviantart.com"]},{name:"dribbble",url:["dribbble.com"]},{name:"dropbox",url:["dropbox.com"]},{name:"etsy",url:["etsy.com"]},{name:"facebook",url:["facebook.com"]},{name:"flickr",url:["flickr.com"]},{name:"foursquare",url:["foursquare.com"]},{name:"goodreads",url:["goodreads.com"]},{name:"google",url:["google."]},{name:"github",url:["github.com"]},{name:"instagram",url:["instagram.com"]},{name:"lastfm",url:["last.fm"]},{name:"linkedin",url:["linkedin.com"]},{name:"mail",url:["mailto:"]},{name:"linkedin",url:["linkedin.com"]},{name:"mastodon",url:["mastodon.social"]},{name:"meetup",url:["meetup.com"]},{name:"medium",url:["medium.com"]},{name:"patreon",url:["patreon.com"]},{name:"pinterest",url:["pinterest."]},{name:"pocket",url:["getpocket.com"]},{name:"reddit",url:["reddit.com"]},{name:"skype",url:["skype.com","skype:"]},{name:"snapchat",url:["snapchat.com"]},{name:"soundcloud",url:["soundcloud.com"]},{name:"spotify",url:["spotify.com"]},{name:"telegram",url:["telegram.me","t.me"]},{name:"tiktok",url:["tiktok.com"]},{name:"tumblr",url:["tumblr.com"]},{name:"twitch",url:["twitch.tv"]},{name:"twitter",url:["twitter.com"]},{name:"vimeo",url:["vimeo.com"]},{name:"vk",url:["vk.com"]},{name:"yelp",url:["yelp.com"]},{name:"youtube",url:["youtube.com"]}]},32630:function(e,t,n){"use strict";n.d(t,{x:function(){return a},L:function(){return o}});var r=n(69307);const a=(0,r.createContext)(),o=e=>{let{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o,children:i}=e;return(0,r.createElement)(a.Provider,{value:{onBannerVisibilityChange:t,onChildBannerVisibilityChange:n,hasParentBanner:o},children:i})}},58721:function(e,t,n){"use strict";var r=n(92819),a=n(47701),o=n.n(a),i=n(92694),s=n(65736),l=n(81475),c=n(44298),u=n(32220),p=n(94239),d=n(99199);const __=s.__,m=[];(0,i.addFilter)("blocks.registerBlockType","jetpack/paid-block",((e,t)=>((0,c.X1)(t)&&(m.includes(t)||m.push(t),e.keywords=(0,r.uniq)([...e.keywords,"premium",__("premium","jetpack")]),(0,c.HD)(t)||(e.icon=(0,u.Z)(e.icon)),e.attributes.shouldDisplayFrontendBanner||(e.attributes.shouldDisplayFrontendBanner={type:"boolean",default:!0})),e))),(0,i.addFilter)("editor.BlockListBlock","jetpack/paid-block-with-warning",l.Z),(0,i.addFilter)("editor.MediaPlaceholder","jetpack/paid-block-media-placeholder",p.Z),(0,i.addFilter)("editor.MediaReplaceFlow","jetpack/paid-block-media-placeholder",d.Z),o()((function(){(0,c.FK)()&&document.body.classList.add("jetpack-enable-upgrade-nudge")}))},94239:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n);if(!r?.mediaPlaceholder||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:s}=r,{onError:p}=t,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x),m=(0,o.useCallback)((e=>d(e?.length&&(0,l.Qu)(e[0],s))),[s,d]),h=(0,o.useCallback)((e=>{const t=e?.[0]?.props?.children;return(0,l.Qu)(t,s)?m([t]):p(e)}),[m,s,p]);return(0,o.createElement)("div",{className:"paid-block-media-placeholder"},(0,o.createElement)(e,a()({},t,{onFilesPreUpload:m,onError:h})))}),"withMediaPlaceholderUpgradable")},99199:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(52175),s=n(94333),l=n(36745),c=n(44298),u=n(32630);t.Z=(0,s.createHigherOrderComponent)((e=>t=>{const{name:n}=(0,i.useBlockEditContext)(),r=(0,c.m3)(n),s=(0,o.useRef)();if(!r?.mediaReplaceFlow||!(0,c.X1)(n))return(0,o.createElement)(e,t);const{fileType:p}=r,{onBannerVisibilityChange:d}=(0,o.useContext)(u.x);return(0,o.createElement)(e,a()({},t,{onFilesUpload:e=>{s.current=e?.length?e[0]:null,d(e?.length&&(0,l.Qu)(e[0],p))},createNotice:(e,n,r)=>{if((0,l.Qu)(s.current,p))return s.current=null,null;t.createNotice(e,n,r)}}))}),"withMediaReplaceFlowUpgradable")},25122:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{cx:t=23,cy:n=3,r:o=4,fill:i="#e34c84",stroke:s="#ffffff",strokeWidth:l="2"}=e;return(0,r.createElement)(a.Circle,{className:"jetpack-paid-block-symbol",cx:t,cy:n,r:o,fill:i,stroke:s,strokeWidth:l})}},32220:function(e,t,n){"use strict";n.d(t,{p:function(){return s}});var r=n(69307),a=n(25122),o=n(44298);const i=e=>(e?.src?e={...e,src:(0,r.cloneElement)(e.src,{children:[e.src.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})}:e?.props?.children&&(e=(0,r.cloneElement)(e,{children:[e.props.children,(0,r.createElement)(a.Z,{key:"paid-symbol"})]})),e);function s(e,t){return(0,o.X1)(e)?i(t):t}t.Z=i},53283:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(18733),i=n(19356);const __=a.__,s=__("Premium Block","jetpack"),l=__("Upgrade your plan to use this premium block","jetpack"),c=__("Upgrade","jetpack");t.ZP=e=>{let{onRedirect:t,align:n,className:a,title:u=s,description:p=l,buttonText:d=c,visible:m=!0,requiredPlan:h,context:f}=e;const[g,b,v]=(0,o.Z)(h,t);return(0,r.createElement)(i.p,{align:n,buttonText:d,checkoutUrl:g,className:a,context:f,description:p,goToCheckoutPage:b,isRedirecting:v,title:u,visible:m})}},63627:function(e,t,n){"use strict";n.d(t,{v:function(){return a},W:function(){return o}});var r=n(11973);const a=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_click",{plan:t,block:n,context:a})},o=e=>{let{plan:t,blockName:n,context:a}=e;r.Z.tracks.recordEvent("jetpack_editor_block_upgrade_banner_impression",{plan:t,block:n,context:a})}},81475:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(94333),c=n(9818),u=n(44298),p=n(53283),d=n(32630),m=n(63627);t.Z=(0,l.createHigherOrderComponent)((e=>t=>{const{name:n,className:r,clientId:i,isSelected:l,attributes:h,setAttributes:f}=t||{},{onChildBannerVisibilityChange:g,hasParentBanner:b}=(0,o.useContext)(d.x)||{},v=(0,u.Rl)(n);if(!v)return(0,o.createElement)(e,t);const k=(0,u.HD)(n),y=(0,u.m3)(n),[E,w]=(0,o.useState)(!k),[_,C]=(0,o.useState)(!1),[j,S]=(0,o.useState)(!1),x="editor-canvas",T=(0,c.useSelect)((e=>e("core/block-editor").hasSelectedInnerBlock(i,!0)),[]),N=(l||T)&&E&&!j,A=(0,o.useMemo)((()=>({plan:v,blockName:n,context:x})),[v,n,x]);(0,o.useEffect)((()=>{N&&C(!0)}),[N,C]),(0,o.useEffect)((()=>{!_&&N&&(0,m.W)(A)}),[_,A,N]),(0,o.useEffect)((()=>w(!k)),[h,w,k]),(0,o.useEffect)((()=>{f({shouldDisplayFrontendBanner:!b})}),[f,b]),(0,o.useEffect)((()=>{g&&g(N||j)}),[N,j,g]);const P=s()(r,{"is-upgradable":N});return(0,o.createElement)(d.L,{onBannerVisibilityChange:w,onChildBannerVisibilityChange:S,hasParentBanner:!0},(0,o.createElement)(p.ZP,{className:`is-${t.name.replace(/\//,"-")}-paid-block`,title:null,align:t?.attributes?.align,visible:N,description:y?.description,requiredPlan:v,context:x,onRedirect:()=>(0,m.v)(A)}),(0,o.createElement)(e,a()({},t,{className:P})))}),"withUpgradeBanner")},5587:function(e,t,n){"use strict";var r=n(69307),a=n(11268),o=n.n(a),i=n(51591);const s=e=>{const{id:t,serviceName:n,label:a,profilePicture:o}=e;return(0,r.createElement)("label",{htmlFor:t,className:"jetpack-publicize-connection-label"},(0,r.createElement)("div",{className:o?"components-connection-icon__picture":""},o&&(0,r.createElement)("img",{src:o,alt:a}),(0,r.createElement)(i.av,{serviceName:n,className:"jetpack-publicize-gutenberg-social-icon"})),(0,r.createElement)("span",{className:"jetpack-publicize-connection-label-copy"},a))};s.propTypes={id:o().string.isRequired,serviceName:o().string,label:o().string,profilePicture:o().string},t.Z=s},90342:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(11268),s=n.n(i),l=n(55609),c=n(5587);const u=e=>{const{className:t,checked:n,id:a,disabled:i,onChange:s,serviceName:u,label:p,profilePicture:d}=e,m=o()("components-connection-toggle",{"is-not-checked":!n,"is-disabled":i});return(0,r.createElement)("div",{className:m},(0,r.createElement)(c.Z,{id:a,serviceName:u,label:p,profilePicture:d}),(0,r.createElement)(l.FormToggle,{id:a,className:t,checked:n,onChange:s,disabled:i}))};u.propTypes={className:s().string,checked:s().bool,id:s().string.isRequired,disabled:s().bool,onChange:s().func,serviceName:s().string,label:s().string,profilePicture:s().string},t.Z=u},9580:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(94333),c=n(9818);const __=i.__;class u extends o.Component{constructor(){super(...arguments),a()(this,"refreshConnectionClick",(e=>{const{href:t,title:n}=e.target;e.preventDefault();const r=window.open(t,n,""),a=window.setInterval((()=>{!1!==r.closed&&(window.clearInterval(a),this.props.refreshConnections())}),500)}))}componentDidMount(){this.props.refreshConnections()}renderRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>e.can_refresh));return t.length?(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:","jetpack")),t.map((e=>(0,o.createElement)(s.Button,{href:e.refresh_url,isSmall:!0,key:e.id,onClick:this.refreshConnectionClick,title:e.refresh_text},e.refresh_text)))):null}renderNonRefreshableConnections(){const{failedConnections:e}=this.props,t=e.filter((e=>!e.can_refresh));return t.length?t.map((e=>(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,e.test_message)))):null}render(){return(0,o.createElement)(o.Fragment,null,this.renderRefreshableConnections(),this.renderNonRefreshableConnections())}}t.Z=(0,l.compose)([(0,c.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections()}))),(0,c.withDispatch)((e=>({refreshConnections:e("jetpack/publicize").refreshConnectionTestResults})))])(u)},65459:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609),l=n(9818),c=n(92819),u=n(4235),p=n(90342);const __=i.__;class d extends o.Component{constructor(){super(...arguments),a()(this,"maybeDisplayLinkedInNotice",(()=>this.connectionNeedsReauth()&&(0,o.createElement)(s.Notice,{className:"jetpack-publicize-notice",isDismissible:!1,status:"error"},(0,o.createElement)("p",null,__("Your LinkedIn connection needs to be reauthenticated to continue working – head to Sharing to take care of it.","jetpack")),(0,o.createElement)(s.ExternalLink,{href:`https://wordpress.com/marketing/connections/${(0,u.Z)()}`},__("Go to Sharing settings","jetpack"))))),a()(this,"connectionNeedsReauth",(()=>(0,c.includes)(this.props.mustReauthConnections,this.props.name))),a()(this,"onConnectionChange",(()=>{const{id:e}=this.props;this.props.toggleConnection(e)}))}connectionIsFailing(){const{failedConnections:e,name:t}=this.props;return e.some((e=>e.service_name===t))}render(){const{disabled:e,enabled:t,id:n,label:r,name:a,profilePicture:i}=this.props,l="connection-"+a+"-"+n,c=a.replace("_","-");let u=(0,o.createElement)(p.Z,{id:l,className:"jetpack-publicize-connection-toggle",checked:t,onChange:this.onConnectionChange,disabled:e,serviceName:c,label:r,profilePicture:i});return(e||this.connectionIsFailing()||this.connectionNeedsReauth())&&(u=(0,o.createElement)(s.Disabled,null,u)),(0,o.createElement)("li",null,this.maybeDisplayLinkedInNotice(),(0,o.createElement)("div",{className:"publicize-jetpack-connection-container"},u))}}t.Z=(0,l.withSelect)((e=>({failedConnections:e("jetpack/publicize").getFailedConnections(),mustReauthConnections:e("jetpack/publicize").getMustReauthConnections()})))(d)},94552:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65459),i=n(97527),s=n(11230),l=n(69423),c=n(47959);function u(e){let{isPublicizeEnabled:t,isRePublicizeFeatureEnabled:n,isPublicizeDisabledBySitePlan:u}=e;const{connections:p,toggleById:d,hasConnections:m}=(0,l.Z)(),{message:h,updateMessage:f,maxLength:g}=(0,c.Z)();const b=u?a.Disabled:r.Fragment;return(0,r.createElement)(b,null,m&&(0,r.createElement)(a.PanelRow,null,(0,r.createElement)("ul",{className:"jetpack-publicize__connections-list"},p.map((e=>{let{display_name:a,enabled:i,id:s,service_name:l,toggleable:c,profile_picture:p}=e;return(0,r.createElement)(o.Z,{disabled:n?!t:!c,enabled:i&&!u,key:s,id:s,label:a,name:l,toggleConnection:d,profilePicture:p})})))),!u&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,null),p.some((e=>e.enabled))&&(0,r.createElement)(s.Z,{disabled:!n&&p.every((e=>!e.toggleable)),maxLength:g,onChange:f,message:h})))}},11230:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(69307),a=n(65736),o=n(55609);const __=a.__,_n=a._n;function i(e){let{message:t="",onChange:n,disabled:i,maxLength:s}=e;const l=s-t.length;return(0,r.createElement)(o.TextareaControl,{value:t,onChange:n,disabled:i,maxLength:s,placeholder:__("Write a message for your audience here.","jetpack"),rows:4,help:(0,a.sprintf)(
+/* translators: placeholder is a number. */
+_n("%d character remaining","%d characters remaining",l,"jetpack"),l)})}},8425:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(12238),s=n(9818),l=n(9580),c=n(94552),u=n(58933),p=n(69423),d=n(20265),m=n(23731),h=n(99490),f=n(96609);const __=a.__;t.Z=e=>{let{prePublish:t}=e;const{refresh:n,hasConnections:a,hasEnabledConnections:g}=(0,p.Z)(),b=(0,s.useSelect)((e=>e(i.store).isCurrentPostPublished()),[]),{isRePublicizeFeatureEnabled:v,isPublicizeEnabled:k,togglePublicizeFeature:y,isPublicizeDisabledBySitePlan:E,hideRePublicizeFeature:w}=(0,m.Z)(),_=k&&!E;(0,d.M)((function(){g&&n()}),[g,n]);const C=E?o.Disabled:o.PanelRow,j=t?r.Fragment:o.PanelBody,S=t?{}:{title:__("Share this post","jetpack"),className:E?"jetpack-publicize-disabled":""};return(0,r.createElement)(j,S,(0,r.createElement)(f.Z,{isPostPublished:b}),!w&&(0,r.createElement)(r.Fragment,null,v&&!b&&(0,r.createElement)(C,null,(0,r.createElement)(o.ToggleControl,{className:"jetpack-publicize-toggle",label:_&&!E?__("Share when publishing","jetpack"):__("Sharing is disabled","jetpack",0),onChange:y,checked:_,disabled:!a})),(0,r.createElement)(l.Z,null),(0,r.createElement)(c.Z,{isPublicizeEnabled:_,isRePublicizeFeatureEnabled:v,isPublicizeDisabledBySitePlan:E}),!E&&(0,r.createElement)(u.Z,{prePublish:t}),(0,r.createElement)(h.o,null)))}},97527:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(92819),o=n(75031),i=n(65736),s=n(55609),l=n(4235),c=n(69423);const __=i.__;function u(){const{refresh:e}=(0,c.Z)(),t=(0,l.Z)(),n=(0,a.debounce)((function(t){t&&e()}),2e3),i=t?`https://wordpress.com/marketing/connections/${t}`:"options-general.php?page=sharing&publicize_popup=true";return(0,r.createElement)(o.Z,{onChange:n},(0,r.createElement)("div",{className:"jetpack-publicize-add-connection-wrapper"},(0,r.createElement)(s.ExternalLink,{href:i,target:"_blank"},__("Connect an account","jetpack"))))}},99490:function(e,t,n){"use strict";n.d(t,{o:function(){return h}});var r=n(69307),a=n(65736),o=n(55609),i=n(9818),s=n(53961),l=n(12238),c=n(90732),u=n(69423),p=n(23731);const __=a.__;function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:__("Unable to share the Post","jetpack");const{createErrorNotice:t}=(0,i.dispatch)(s.store);t(e,{id:"publicize-post-share-message"})}function m(){const{hasEnabledConnections:e}=(0,u.Z)(),{isPublicizeEnabled:t}=(0,p.Z)(),{isFetching:n,isError:a,isSuccess:m,doPublicize:h}=(0,c.Z)(),f=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);(0,r.useEffect)((()=>{if(!n)return a?d():void(m&&function(){const{createSuccessNotice:e}=(0,i.dispatch)(s.store);e(__("Post shared","jetpack"),{id:"publicize-post-share-message",type:"snackbar"})}())}),[n,a,m]);const g=!t||!e||!f||n;return(0,r.createElement)(o.Button,{isSecondary:!0,onClick:function(){if(!f)return d(__("You must publish your post before you can share it.","jetpack"));(0,i.dispatch)(s.store).removeNotice("publicize-post-share-message"),h()},disabled:g,isBusy:n},__("Share post","jetpack"))}function h(){const{isRePublicizeFeatureEnabled:e,isRePublicizeUpgradableViaUpsell:t}=(0,p.Z)(),n=(0,i.useSelect)((e=>e(l.store).isCurrentPostPublished()),[]);return e&&n?t?null:(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(m,null)):null}},41093:function(e,t,n){"use strict";n.d(t,{nE:function(){return l},H8:function(){return c}});var r=n(69307),a=n(94333),o=n(9818),i=n(92694),s=n(54802);const l={"core/gallery":{contentAttributes:["images"]},"core/heading":{contentAttributes:["content"]},"core/image":{contentAttributes:["alt","url"]},"core/list":{contentAttributes:["values"]},"core/paragraph":{contentAttributes:["content"]},"core/quote":{contentAttributes:["value","citation"]},"core/separator":{contentAttributes:[]},"core/spacer":{contentAttributes:[]},"core/verse":{contentAttributes:["content"]},"core/video":{contentAttributes:["src"]},"core/embed":{contentAttributes:["url"]},"jetpack/gif":{contentAttributes:["giphyUrl"]}},c=["core/column","core/columns","core/group"];(0,i.addFilter)("blocks.registerBlockType","jetpack/publishing-tweetstorms",(e=>{const{edit:t}=e;return{...e,edit:e=>(0,r.createElement)(s.Z,{ChildEdit:t,childProps:e})}}));t.ZP=(0,a.compose)([(0,o.withSelect)((e=>({isTweetStorm:e("jetpack/publicize").isTweetStorm(),isTyping:e("core/block-editor").isTyping()})))])((e=>{let{isTweetStorm:t,isTyping:n}=e;return t?document.body.classList.add("jetpack-tweetstorm"):document.body.classList.remove("jetpack-tweetstorm"),t&&n?document.body.classList.add("jetpack-tweetstorm-is-typing"):document.body.classList.remove("jetpack-tweetstorm-is-typing"),null}))},58933:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(94333),s=n(9818);n(42998);const __=a.__;t.Z=(0,i.compose)([(0,s.withSelect)((e=>{const{isTweetStorm:t,getTweetStorm:n}=e("jetpack/publicize");return{connections:e("core/editor").getEditedPostAttribute("jetpack_publicize_connections"),isTweetStorm:t(),tweetStormLength:n().length}})),(0,s.withDispatch)((e=>({setTweetstorm:t=>{e("core/editor").editPost({meta:{jetpack_is_tweetstorm:t}}),t?e("jetpack/publicize").refreshTweets():(e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm"),e("core/annotations").__experimentalRemoveAnnotationsBySource("jetpack-tweetstorm-line-break"))}})))])((e=>{let{connections:t,isTweetStorm:n,tweetStormLength:a,setTweetstorm:i,prePublish:s}=e;if(!t?.some((e=>"twitter"===e.service_name&&e.enabled)))return null;const l=(e,t)=>(0,r.createElement)(r.Fragment,null,(0,r.createElement)("strong",null,e),(0,r.createElement)("br",null),t),c=[];return a>=102?c.push({id:"jetpack-publicize-twitter-tweetstorm-too-long",status:"error",content:__("Only the first 100 tweets of this post will be published in the Twitter thread.","jetpack"),isDismissible:!1}):a>=22?c.push({id:"jetpack-publicize-twitter-tweetstorm-a-bit-long",status:"warning",content:__("This post will create a Twitter thread more than 20 tweets long.","jetpack"),isDismissible:!1}):s&&a<=2&&c.push({id:"jetpack-publicize-twitter-tweetstorm-too-short",status:"warning",content:__("None of the content in this post could be transformed into tweets, it may be better to share as a single tweet.","jetpack"),isDismissible:!1}),(0,r.createElement)(o.PanelRow,null,(0,r.createElement)(o.RadioControl,{label:__("Twitter settings","jetpack"),selected:n?"tweetstorm":"single",options:[{label:l(__("Single Tweet","jetpack"),__("Share a link to this post to Twitter.","jetpack")),value:"single"},{label:l(__("Twitter Thread","jetpack"),__("Share the content of this post as a Twitter thread.","jetpack")),value:"tweetstorm"}],onChange:e=>{i("tweetstorm"===e)}}),n&&(0,r.createElement)(o.NoticeList,{className:"jetpack-publicize-twitter-options__notices",notices:c}))}))},54802:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(55609),i=n(94333),s=n(9818),l=(n(42998),n(51591));class c extends r.Component{componentDidMount(){const{isTweetStorm:e,updateTweets:t}=this.props;e&&t()}componentDidUpdate(e){const{boundaries:t,childProps:n,currentAnnotations:r,isTweetStorm:o,updateAnnotations:i,updateTweets:s,supportedBlockType:l,contentAttributesChanged:c}=this.props;o&&l&&(c(e.childProps,n)&&s(),r.length===t.filter((e=>["normal","line-break"].includes(e.type))).length&&(0,a.isEqual)(e.boundaries,t)||i())}render(){const{ChildEdit:e,childProps:t,isTweetStorm:n,isSelectedTweetBoundary:a,boundaryStylesSelectors:i,popoverWarnings:s}=this.props;return n?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(e,t),a&&(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider"},(0,r.createElement)("div",{className:"jetpack-publicize-twitter__tweet-divider-icon"},(0,r.createElement)(l.av,{serviceName:"twitter"})),s.length>0&&(0,r.createElement)(o.Popover,{className:"jetpack-publicize-twitter__tweet-divider-popover",focusOnMount:!1,position:"bottom center"},(0,r.createElement)("ol",null,s.map(((e,t)=>(0,r.createElement)("li",{key:`jetpack-publicize-twitter__tweet-divider-popover-warning-${t}`},e)))))),i&&(0,r.createElement)("style",{type:"text/css"},i.map((e=>`${e}::after {\n\t\t\t\t\t\t\t\tcontent: "";\n\t\t\t\t\t\t\t\tbackground: #0009;\n\t\t\t\t\t\t\t\twidth: 3px;\n\t\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\t\tmargin: 0 1px;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t.is-dark-theme ${e}::after {\n\t\t\t\t\t\t\t\tbackground: #fff9;\n\t\t\t\t\t\t\t}`)))):(0,r.createElement)(e,t)}}t.Z=(0,i.compose)([(0,s.withSelect)(((e,t)=>{let{childProps:n}=t;const{isTweetStorm:r,getPopoverWarnings:a,getBoundariesForBlock:o,getBoundaryStyleSelectors:i,isSelectedTweetBoundary:s,getSupportedBlockType:l,contentAttributesChanged:c}=e("jetpack/publicize"),u=e("core/annotations").__experimentalGetAllAnnotationsForBlock(n.clientId);return{isTweetStorm:r(),isSelectedTweetBoundary:s(n),boundaries:o(n.clientId),boundaryStylesSelectors:i(n.clientId),popoverWarnings:a(n),currentAnnotations:u,supportedBlockType:l(n.name),contentAttributesChanged:c}})),(0,s.withDispatch)(((e,t,n)=>{let{childProps:r}=t,{select:a}=n;return{updateTweets:()=>e("jetpack/publicize").refreshTweets(),updateAnnotations:()=>{const{contentAttributesChanged:t,getTweetsForBlock:n}=a("jetpack/publicize"),o=n(r.clientId);if(!o||0===o.length)return;if(t(o.reduce(((e,t)=>e||t.blocks.find((e=>e.clientId===r.clientId))),!1),r))return;a("core/annotations").__experimentalGetAllAnnotationsForBlock(r.clientId).forEach((t=>{["jetpack-tweetstorm","jetpack-tweetstorm-line-break"].includes(t.source)&&e("core/annotations").__experimentalRemoveAnnotation(t.id)}));o.filter((e=>e.boundary)).map((e=>e.boundary)).forEach((t=>{const{container:n,type:a,start:o,end:i}=t;"normal"===a?e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm",richTextIdentifier:n,range:{start:o,end:i}}):"line-break"===a&&e("core/annotations").__experimentalAddAnnotation({blockClientId:r.clientId,source:"jetpack-tweetstorm-line-break",richTextIdentifier:n,range:{start:o,end:i}})}))}}}))])(c)},96609:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(69307),a=n(89105),o=n.n(a),i=n(65736),s=n(55609),l=n(84675),c=n(44298),u=n(18733),p=n(23731),d=n(58014),m=n(69423);const __=i.__;function h(e){let{isPostPublished:t}=e;const{isRePublicizeFeatureEnabled:n,isRePublicizeUpgradableViaUpsell:a,isRePublicizeFeatureAvailable:h,isPublicizeEnabled:f}=(0,p.Z)(),g=(0,c.Rl)("republicize"),[b,v,k,y]=(0,u.Z)(g),{hasConnections:E,hasEnabledConnections:w}=(0,m.Z)(),_=f&&!(a&&n);if(!t||!n||t&&h)return(0,r.createElement)("div",null,function(e,t,n,r,a){const o=__("Start sharing your posts by connecting your social media accounts.","jetpack"),i=__("This post will be shared on all your enabled social media accounts the moment you publish the post.","jetpack");return t?r?n&&a?n&&a&&!e?i:__("Share this post on all your enabled social media accounts by clicking on the share post button.","jetpack"):__("Use this tool to share your post on all your social media accounts.","jetpack"):o:e?o:i}(t,n,_,E,w));const C=y?.product_name||__("paid","jetpack"),j=!(0,d.Ug)()&&!(0,d.Wp)(),S=j?__("Re-sharing your content","jetpack"):__("Share Your Content Again","jetpack",0),x=j?"https://jetpack.com/support/publicize/#re-sharing-your-content":"https://wordpress.com/support/publicize/#share-your-content-again",T=__("Upgrade now","jetpack");return h||a?(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("div",{className:"jetpack-publicize__upsell-description"},(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("To re-share a post, you need to upgrade to the %s plan","jetpack"),C)),(0,r.createElement)(s.Button,{href:k?null:b,onClick:v,target:"_top",icon:l.Z,className:o()("jetpack-publicize__upsell-button is-primary",{"jetpack-upgrade-plan__hidden":!b}),isBusy:k},k?__("Redirecting…","jetpack"):T)):(0,r.createElement)("div",{className:"jetpack-publicize__upsell"},(0,r.createElement)("strong",null,S),(0,r.createElement)("br",null),(0,i.sprintf)(
+/* translators: placeholder is the product name of the plan. */
+__("This feature is for sites with a %s plan.","jetpack"),C),(0,r.createElement)("br",null),(0,r.createElement)(s.ExternalLink,{href:x},__("More information.","jetpack")))}},23731:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(9818),a=n(12238),o=n(21409),i=n(44298);const s="republicize";function l(){const{togglePublicizeFeature:e}=(0,r.useDispatch)("jetpack/publicize"),{available:t}=(0,o.Z)(s),n=(0,r.useSelect)((e=>e(a.store).isCurrentPostPublished()),[]),l=(0,r.useSelect)((e=>e("jetpack/publicize").getFeatureEnableState()),[]),c=!!window?.Jetpack_Editor_Initial_State.jetpack?.republicize_enabled,u=(0,i.X1)(s);return{isPublicizeEnabledMeta:l,isRePublicizeFeatureEnabled:c,isPublicizeEnabled:n&&!(u&&c)||l,togglePublicizeFeature:e,isPublicizeDisabledBySitePlan:c&&n&&u,isRePublicizeFeatureAvailable:t,isRePublicizeUpgradableViaUpsell:u,hideRePublicizeFeature:n&&!t&&!u&&c}}},20265:function(e,t,n){"use strict";n.d(t,{M:function(){return s}});var r=n(94333),a=n(12238),o=n(9818),i=n(69307);function s(e,t){const n=(0,o.useSelect)((e=>e(a.store).isPublishingPost()),[]),s=(0,r.usePrevious)(n);(0,i.useEffect)((()=>{s&&!n&&e()}),[n,s,e,t])}},90732:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(86989),a=n.n(r),o=n(9818),i=n(12238),s=n(69307),l=n(65736),c=n(47959),u=n(69423);const __=l.__;function p(e){const t=e?.code,n=e?.errors?.length;if(!t&&!n)return!1;let r="";return t&&(r=__("Unable to share the Post","jetpack")),n&&(r=__("Unable to share the Post","jetpack")),{message:r,result:e}}function d(e){const{message:t}=(0,c.Z)(),{skippedConnections:n}=(0,u.Z)(),r=(0,o.useSelect)((e=>e(i.store).getCurrentPostId()),[]);e=e||r;const[l,d]=(0,s.useState)({data:[],error:{}}),m=(0,s.useCallback)((function(){const r={isFetching:!1,isError:!1,isSuccess:!1,data:[],error:{},postId:e};if(!l.isFetching)return d({...r,isFetching:!0}),a()({path:`/wpcom/v2/posts/${e}/publicize`,method:"POST",data:{message:t,skipped_connections:n}}).then((function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=p(e);if(t)return d((e=>({...e,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:t})));d((t=>({...t,isFetching:!1,isSuccess:!0,isError:!1,data:e?.results,error:{}})))})).catch((e=>{d((t=>({...t,isFetching:!1,isSuccess:!1,isError:!0,data:[],error:p(e)})))})),function(){d(r)}}),[e,t,n,l.isFetching]);return{...l,doPublicize:m}}},69423:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(9818);function a(){const{refreshConnectionTestResults:e,toggleConnectionById:t}=(0,r.useDispatch)("jetpack/publicize"),n=(0,r.useSelect)((e=>e("jetpack/publicize").getConnections()),[]),a=n.filter((e=>!e.enabled)).map((e=>e.id));return{connections:n,hasConnections:n.length>0,hasEnabledConnections:n&&n.some((e=>e.enabled)),skippedConnections:a,toggleById:t,refresh:e}}},47959:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(9818),a=n(12238);function o(){const{editPost:e}=(0,r.useDispatch)(a.store),{message:t,maxLength:n}=(0,r.useSelect)((e=>({message:e("jetpack/publicize").getShareMessage(),maxLength:e("jetpack/publicize").getShareMessageMaxLength()})),[]);return{message:t,maxLength:n,updateMessage:function(t){e({meta:{jetpack_publicize_message:t}})}}}},72228:function(e,t,n){"use strict";n.d(t,{u:function(){return u},X:function(){return p}});var r=n(69307),a=n(65736),o=n(72067),i=n(12238),s=(n(64967),n(41093)),l=n(32673),c=n(8425);const __=a.__,u="publicize",p={render:()=>(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"publicize"},(0,r.createElement)(s.ZP,null),(0,r.createElement)(l.Z,null,(0,r.createElement)(c.Z,null)),(0,r.createElement)(o.PluginPrePublishPanel,{initialOpen:!0,id:"publicize-title",title:(0,r.createElement)("span",{id:"publicize-defaults",key:"publicize-title-span"},__("Share this post","jetpack"))},(0,r.createElement)(c.Z,{prePublish:!0})))}},59213:function(e,t,n){"use strict";n.r(t),n.d(t,{refreshConnectionTestResults:function(){return a},toggleConnectionById:function(){return o},togglePublicizeFeature:function(){return i},fetchFromAPI:function(){return s},refreshTweets:function(){return l},setTweets:function(){return c},getTwitterCards:function(){return u},setTwitterCards:function(){return p}});var r=n(9818);function a(){return{type:"REFRESH_CONNECTION_TEST_RESULTS"}}function o(e){return{type:"TOGGLE_CONNECTION_BY_ID",connectionId:e}}function i(){return{type:"TOGGLE_PUBLICIZE_FEATURE"}}function s(e){return{type:"FETCH_FROM_API",path:e}}function l(){return{type:"REFRESH_TWEETS"}}function c(e){return{type:"SET_TWEETS",tweets:e}}function u(e){const{twitterCardIsCached:t}=(0,r.select)("jetpack/publicize");return{type:"GET_TWITTER_CARDS",urls:e.filter((e=>!t(e)))}}function p(e){return{type:"SET_TWITTER_CARDS",cards:e}}},39808:function(e,t,n){"use strict";var r=n(86989),a=n.n(r);t.Z={FETCH_FROM_API:e=>{let{path:t}=e;return a()({path:t})}}},94663:function(e,t,n){"use strict";var r=n(92819),a=n(86989),o=n.n(a),i=n(4981),s=n(9818),l=n(12238),c=n(41093);const u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const{getSupportedBlockType:t}=(0,s.select)("jetpack/publicize");return(0,r.flatMap)(e,(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(e.name)||e.name.startsWith("core-embed/")?e:c.H8.includes(e.name)?u(e.innerBlocks):[]}))};const p=(0,r.throttle)((async function(){const e=(0,s.select)("core/editor").getBlocks(),t=u(e);try{const e=await o()({path:"/wpcom/v2/tweetstorm/parse",data:{blocks:t.map((e=>({attributes:e.attributes,block:(0,i.serialize)(e),clientId:e.clientId})))},method:"POST"}),n=(0,r.flatMap)(e,(e=>e.urls));return(0,s.dispatch)("jetpack/publicize").getTwitterCards(n),(0,s.dispatch)("jetpack/publicize").setTweets(e)}catch(e){}}),2e3,{leading:!0,trailing:!0});t.ZP={REFRESH_CONNECTION_TEST_RESULTS:async function(){try{const e=await o()({path:"/wpcom/v2/publicize/connection-test-results"}),t=(0,s.select)("jetpack/publicize").getConnections(),n=e,r=[],a={done:!1,enabled:!0,toggleable:!0};for(const e of n){const n=t.find((t=>t.id===e.id)),{done:o,enabled:i,toggleable:s}=null!=n?n:a,l={display_name:e.display_name,service_name:e.service_name,id:e.id,profile_picture:e.profile_picture,done:o,enabled:i,toggleable:s};r.push(l)}return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:r})}catch(e){}},TOGGLE_CONNECTION_BY_ID:async function(e){let{connectionId:t}=e;const n=(0,s.select)("jetpack/publicize").getConnections().map((e=>({...e,enabled:e.id===t?!e.enabled:e.enabled})));return(0,s.dispatch)(l.store).editPost({jetpack_publicize_connections:n})},TOGGLE_PUBLICIZE_FEATURE:async function(){const e=(0,s.select)("jetpack/publicize").getFeatureEnableState();return(0,s.dispatch)(l.store).editPost({meta:{jetpack_publicize_feature_enabled:!e}})},REFRESH_TWEETS:p,GET_TWITTER_CARDS:async function(e){if(0===e.urls.length)return(0,s.dispatch)("jetpack/publicize").setTwitterCards([]);try{const t=await o()({path:"/wpcom/v2/tweetstorm/generate-cards",data:{urls:e.urls},method:"POST"});return(0,s.dispatch)("jetpack/publicize").setTwitterCards(t)}catch(e){}}}},64967:function(e,t,n){"use strict";var r=n(9818),a=n(59213),o=n(62016),i=n(49591),s=n(39808),l=n(44391);const c=(0,r.registerStore)("jetpack/publicize",{actions:a,controls:s.Z,reducer:l.Z,selectors:o});(0,i.Z)(c)},49591:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(2601),a=n.n(r),o=n(92819),i=n(94663);function s(e){const t=[a()(i.ZP)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const s={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(s))),n=(0,o.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},44391:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r={tweets:[],twitterCards:[]};function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:r,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REFRESH_CONNECTION_TEST_RESULTS":case"TOGGLE_CONNECTION_BY_ID":case"TOGGLE_PUBLICIZE_FEATURE":return e;case"SET_TWEETS":return{...e,tweets:t.tweets};case"GET_TWITTER_CARDS":{const n={};return t.urls.forEach((e=>n[e]={error:"loading"})),{...e,twitterCards:{...e.twitterCards,...n}}}case"SET_TWITTER_CARDS":return{...e,twitterCards:{...e.twitterCards,...t.cards}}}return e}},62016:function(e,t,n){"use strict";n.r(t),n.d(t,{getFailedConnections:function(){return u},getMustReauthConnections:function(){return p},getTweetTemplate:function(){return d},getTweetStorm:function(){return m},getFirstTweet:function(){return h},getLastTweet:function(){return f},getSupportedBlockType:function(){return g},getTweetsForBlock:function(){return b},getTwitterCardForURLs:function(){return v},twitterCardIsCached:function(){return k},getShareMessage:function(){return y},getShareMessageMaxLength:function(){return E},isTweetStorm:function(){return w},getBoundariesForBlock:function(){return _},getBoundaryStyleSelectors:function(){return j},checkForTagsInContentAttributes:function(){return S},getPopoverWarnings:function(){return x},isSelectedTweetBoundary:function(){return T},contentAttributesChanged:function(){return N},getConnections:function(){return A},getFeatureEnableState:function(){return P}});var r=n(92819),a=n(19551),o=n(9818),i=n(65736),s=n(12238),l=n(41093);const __=i.__,c="\n\n"+__("A thread ⬇️","jetpack");function u(){return A().filter((e=>!1===e.test_success))}function p(){return A().filter((e=>"must_reauth"===e.test_success)).map((e=>e.service_name))}function d(e){const t=(e.connections||A())?.find((e=>"twitter"===e.service_name));return{date:Date.now(),name:t?.profile_display_name||__("Account Name","jetpack"),profileImage:t?.profile_picture||"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:t?.display_name||""}}function m(e){const t=d(e),n=[h(e),...e.tweets.slice(0,100).map((n=>({...t,text:n.text,media:n.media,tweet:n.tweet,urls:n.urls,card:v(e,n.urls)})))];return n.length>1&&n.push(f(e)),n}function h(e){if(!(0,o.select)("core"))return;const t=d(e),{getMedia:n}=(0,o.select)("core"),{getEditedPostAttribute:r}=(0,o.select)("core/editor"),a=r("featured_media"),i=r("link"),s=a&&n(a),l=s?.media_details?.sizes?.large?.source_url||s?.source_url;return{...t,text:y()+` ${i}`,urls:[i],card:{title:r("title"),description:r("meta")?.advanced_seo_description||r("excerpt")||r("content").split("\x3c!--more")[0]||__("Visit the post for more.","jetpack"),url:i,image:l,type:l?"summary_large_image":"summary"}}}function f(e){if(!(0,o.select)("core/editor"))return;const{getEditedPostAttribute:t}=(0,o.select)("core/editor"),n=t("link"),r=e.tweets.length>100?__("The rest of this thread can be read here:","jetpack"):__("This thread can be read here:","jetpack");return{...h(e),text:`${r} ${n}`}}function g(e,t){if(l.nE[t])return l.nE[t]}const b=(0,a.Z)(((e,t)=>e.tweets.filter((e=>!!e.blocks.find((e=>e.clientId===t))))),(e=>[e.tweets]));function v(e,t){if(t)return t.reduce(((t,n)=>t||(e.twitterCards[n]&&!e.twitterCards[n].error?{url:n,...e.twitterCards[n]}:void 0)),void 0)}function k(e,t){return!!e.twitterCards[t]}function y(){const{getEditedPostAttribute:e}=(0,o.select)("core/editor"),t=e("meta"),n=e("title"),a=(0,r.get)(t,["jetpack_publicize_message"],"");return a?a.substr(0,E()):w()&&n?n.substr(0,E())+c:""}function E(){return w()?255-c.length:255}function w(){return!!(0,o.select)("core/editor").getEditedPostAttribute("meta")?.jetpack_is_tweetstorm}const _=(0,a.Z)(((e,t)=>{if(!w())return[];const n=b(e,t);return n&&0!==n.length?n.filter((e=>e.boundary)).map((e=>e.boundary)):[]}),(e=>[e.tweets]));function C(e,t){if(`block-${t}`===e.id)return`#block-${t}`;const n=e.parentNode,r=Array.prototype.indexOf.call(n.children,e);return C(n,t)+` > :nth-child( ${r+1} )`}const j=(0,a.Z)(((e,t)=>{const n=_(e,t),r=document.getElementById(`block-${t}`);return n.filter((e=>"end-of-line"===e.type)).map((e=>{if(!r)return!1;const n=r.getElementsByTagName("li").item(e.line);return!!n&&C(n,t)})).filter((e=>!!e))}),(e=>[e.tweets]));function S(e,t,n){if(0===n.length)return!1;if(!g(0,t.name)?.contentAttributes)return!1;const r=new RegExp(`<(${n.join("|")})( |>|/>)`,"gi");return g(0,t.name).contentAttributes.reduce(((e,n)=>!!e||r.test(t.attributes[n])),!1)}const x=(0,a.Z)(((e,t)=>{const{isTyping:n,isDraggingBlocks:r,isMultiSelecting:a,hasMultiSelection:i,isCaretWithinFormattedText:s}=(0,o.select)("core/block-editor");if(!w())return[];if(n()||r()||a()||i()||s())return[];const c=[];return g(0,t.name)||l.H8[t.name]?("core/gallery"===t.name&&t.attributes.images.length>4&&c.push(__("Twitter displays the first four images.","jetpack")),S(0,t,["strong","bold","em","i","sup","sub","span","s"])&&c.push(__("Twitter removes all text formatting.","jetpack")),S(0,t,["a"])&&c.push(__("Links will be posted seperately.","jetpack"))):c.push(__("This block is not exportable to Twitter","jetpack")),c}),(e=>[e.tweets]));function T(e,t){const{isBlockSelected:n}=(0,o.select)("core/block-editor");if(!w())return!1;const r=g(0,t.name),a=b(e,t.clientId);if(!a||0===a.length)return!1;const i=a[a.length-1];return n(t.clientId)&&!r||i.blocks[i.blocks.length-1].clientId===t.clientId&&a.some((e=>e.blocks.some((e=>n(e.clientId)))))}function N(e,t,n){const a=g(0,n.name);if(!a)return!1;const o=a.contentAttributes;return!(0,r.isEqual)(o.map((e=>({attribute:e,content:t.attributes[e]}))),o.map((e=>({attribute:e,content:n.attributes[e]}))))}function A(){return(0,o.select)(s.store).getEditedPostAttribute("jetpack_publicize_connections")||[]}function P(){const{getEditedPostAttribute:e}=(0,o.select)(s.store),t=e("meta");return(0,r.get)(t,["jetpack_publicize_feature_enabled"],!0)}},60756:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),a=n(55609),o=n(65736),i=n(12238),s=n(9818),l=n(23539);const __=o.__;function c(e){let{checked:t,onChange:n}=e;return(0,r.createElement)(a.CheckboxControl,{label:__("Show sharing buttons.","jetpack"),checked:t,onChange:e=>{n({jetpack_sharing_enabled:e})}})}function u(){const e=(0,s.useSelect)((e=>e(i.store).getEditedPostAttribute("jetpack_sharing_enabled")),[]),{editPost:t}=(0,s.useDispatch)(i.store);return(0,r.createElement)(i.PostTypeSupportCheck,{supportKeys:"jetpack-sharing-buttons"},(0,r.createElement)(l.Z,null,(0,r.createElement)(c,{checked:e,onChange:t})))}},91994:function(e,t,n){"use strict";n.d(t,{u:function(){return a},X:function(){return o}});var r=n(60756);const a="sharing",o={render:r.Z}},71420:function(e,t,n){"use strict";n.d(t,{K:function(){return a}});var r=n(55609);const a=(0,r.withFallbackStyles)(((e,t)=>{const{textColor:n,backgroundColor:r}=t,a=r&&r.color,o=n&&n.color;return{fallbackBackgroundColor:a||!e?void 0:getComputedStyle(e).backgroundColor,fallbackTextColor:o||!e?void 0:getComputedStyle(e).color}}))},6757:function(e,t,n){"use strict";var r=n(69307),a=n(4981),o=n(65736),i=n(51591),s=n(58014);const __=o.__;(0,s.Wp)()||(0,s.Ug)()||(0,a.registerBlockCollection)("jetpack",{title:"Jetpack",icon:(0,r.createElement)(i.IM,null)}),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"earn"!==t})),{slug:"earn",title:__("Earn","jetpack"),icon:(0,r.createElement)(i.IM,null)}]),(0,a.setCategories)([...(0,a.getCategories)().filter((e=>{let{slug:t}=e;return"grow"!==t})),{slug:"grow",title:__("Grow","jetpack"),icon:(0,r.createElement)(i.IM,null)}])},87929:function(e,t,n){"use strict";function r(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}function a(e){const{currentWindow:t}=r(e);return"editor-canvas"===t.name&&t.self!==t.top}function o(e){try{return!!e?.parent?.location.href}catch(e){return!1}}function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=[];if(!t||!e&&!e.length||!a(t))return i;const{currentDoc:s,currentWindow:l}=r(t);if(!o(l))return i;const c=l?.parent?.document;return s&&c?(i=e.filter((e=>{const t=c.querySelector(e),r=!!s.querySelector(e);return!(!t||r)&&(s.head.appendChild(t.cloneNode()),n&&t.remove(),!0)})),i):void 0}function s(e,t,n){const a=`${window.Jetpack_Block_Assets_Base_Url.url}editor-assets`,{currentDoc:o}=r(n),i=o.getElementsByTagName("head")[0];e.forEach((e=>{const[n,r]=e.file.split("/").pop().split(".");if("css"===r){if(o.getElementById(e.id))return;const t=o.createElement("link");t.id=e.id,t.rel="stylesheet",t.href=`${a}/${n}-${e.version}.${r}`,i.appendChild(t)}if("js"===r){const s=t[e.id]?t[e.id]:null;if(o.getElementById(e.id))return s();const l=o.createElement("script");l.id=e.id,l.type="text/javascript",l.src=`${a}/${n}-${e.version}.${r}`,l.onload=s,i.appendChild(l)}}))}function l(e,t){return new Promise((n=>{const r=()=>{e[t]?n(e[t]):e.requestAnimationFrame(r)};r()}))}n.d(t,{bL:function(){return r},DT:function(){return i},Pp:function(){return s},Dz:function(){return l}})},57535:function(e,t,n){"use strict";n.d(t,{m:function(){return i}});var r=n(27655),a=n(58014);const o=r.O["Jetpack Green 40"];function i(){return(0,a.Ug)()||(0,a.Wp)()?null:o}},98085:function(e,t,n){"use strict";n.d(t,{t:function(){return i}});var r=n(29512),a=n.n(r),o=n(92819);function i(e,t){const n=function(e,t){for(const n of new(a())(t).values()){if(-1===n.indexOf("is-style-"))continue;const t=n.substring(9),r=(0,o.find)(e,{name:t});if(r)return r}return(0,o.find)(e,"isDefault")}(e,t);return n?n.name:null}},70609:function(e,t,n){"use strict";var r=n(27538),a=n.n(r),o=n(69307),i=n(65736),s=n(55609);const __=i.__,_x=i._x;class l extends o.Component{constructor(){super(...arguments),a()(this,"state",{hasCopied:!1}),a()(this,"onCopy",(()=>this.setState({hasCopied:!0}))),a()(this,"onFinishCopy",(()=>this.setState({hasCopied:!1}))),a()(this,"onFocus",(e=>e.target.select()))}render(){const{link:e}=this.props,{hasCopied:t}=this.state;return e?(0,o.createElement)("div",{className:"jetpack-clipboard-input"},(0,o.createElement)(s.TextControl,{readOnly:!0,onFocus:this.onFocus,value:e}),(0,o.createElement)(s.ClipboardButton,{isDefault:!0,onCopy:this.onCopy,onFinishCopy:this.onFinishCopy,text:e},t?__("Copied!","jetpack"):_x("Copy","verb","jetpack"))):null}}t.Z=l},68039:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const r=/^#?[A-Fa-f0-9]{6}$/;function a(e){return r.test(e)}},92924:function(e,t,n){"use strict";var r=n(69307),a=n(92819),o=n(65736),i=n(25158),s=n(15111);const __=o.__,l="undefined"!=typeof _wpmejsSettings?_wpmejsSettings:{};function c(e,t,n){const r=document.createElement("div");r.className=e;const a=document.createElement("button");return a.innerText=t,a.addEventListener("click",n),a.setAttribute("aria-label",t),a.setAttribute("title",t),r.appendChild(a),r}t.Z=function(e){let{trackSource:t,onPlay:n,onPause:o,onError:u,onTimeChange:p,onSkipForward:d,onJumpBack:m,currentTime:h,playStatus:f=s._5,onMetadataLoaded:g,loadWhenReady:b=!1,preload:v="metadata"}=e;const k=(0,r.useRef)(),y=()=>{k.current.play().catch((()=>{}))},E=()=>{k.current.pause(),(0,i.speak)(__("Paused","jetpack"),"assertive")};return(0,r.useEffect)((()=>{MediaElementPlayer.prototype._setResponsiveMode||(MediaElementPlayer.prototype._setResponsiveMode=MediaElementPlayer.prototype.setResponsiveMode,MediaElementPlayer.prototype.setResponsiveMode=function(){const e=this;e.getElement(e.container).parentNode&&e._setResponsiveMode()})}),[]),(0,r.useEffect)((()=>{const e=k.current;e.preload=v;const t=new MediaElementPlayer(e,{...l,success:()=>b&&e?.load()});if(m||d){const e=`${t.options.classPrefix}button ${t.options.classPrefix}jump-button`;if(m){const n=`${e} ${t.options.classPrefix}jump-backward-button`;t.addControlElement(c(n,__("Jump Back","jetpack"),m),"jumpBackwardButton")}if(d){const n=`${e} ${t.options.classPrefix}skip-forward-button`;t.addControlElement(c(n,__("Skip Forward","jetpack"),d),"skipForwardButton")}}return n&&e.addEventListener("play",n),o&&e.addEventListener("pause",o),u&&e.addEventListener("error",u),g&&e.addEventListener("loadedmetadata",g),()=>{t.remove(),n&&e.removeEventListener("play",n),o&&e.removeEventListener("pause",o),u&&e.removeEventListener("error",u),g&&e.removeEventListener("loadedmetadata",g)}}),[n,o,u,m,d,g,b,v]),(0,r.useEffect)((()=>{const[e,t]=!1===k.current?.paused?[s.Wp,E]:[s._5,y],n=(0,a.debounce)(t,100);return s.Vy!==f&&e!==f&&n(),()=>{n.cancel()}}),[k,f,t]),(0,r.useEffect)((()=>{if(!p)return;const e=k.current,t=(0,a.throttle)((e=>p(e)),1e3,{leading:!0,trailing:!1}),n=e=>t(e.target.currentTime);return p&&e?.addEventListener("timeupdate",n),()=>{t.cancel(),e?.removeEventListener("timeupdate",n)}}),[k,p]),(0,r.useEffect)((()=>{const e=k.current;h&&e&&Math.abs(Math.floor(h-e.currentTime))>1&&(e.currentTime=h)}),[k,h]),(0,r.createElement)("div",{className:"jetpack-audio-player"},(0,r.createElement)("audio",{src:t,ref:k}))}},62475:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(52175),l=n(37930);function c(e){let{blockName:t,buttonLabel:n,href:a,icon:c,onClick:u,subtitle:p,title:d,className:m}=e;const{autosaveAndRedirect:h}=(0,l.Z)(a);return(0,r.createElement)(s.Warning,{actions:a&&[(0,r.createElement)(i.Button,{href:a,onClick:e=>{e.preventDefault(),u(t),h(e)},target:"_top",isSecondary:!0,isLarge:!0},n)],className:o()(m,"jetpack-block-nudge wp-block")},(0,r.createElement)("span",{className:"jetpack-block-nudge__info"},c,(0,r.createElement)("span",{className:"jetpack-block-nudge__text-container"},(0,r.createElement)("span",{className:"jetpack-block-nudge__title"},d),p&&(0,r.createElement)("span",{className:"jetpack-block-nudge__message"},p))))}},72566:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(4981),l=n(52175),c=n(55609),u=n(9818),p=n(39630),d=n(65736);const __=d.__,m=e=>{let{attributes:t,styleOption:n,viewportWidth:a,blockName:o}=e;const i=(0,s.getBlockType)(o);return(0,r.createElement)(l.BlockPreview,{viewportWidth:a,blocks:(c=i.example?(0,s.getBlockFromExample)(o,{attributes:{...i.example.attributes,style:n.value},innerBlocks:i.example.innerBlocks}):(0,s.createBlock)(o,t),{...c,attributes:{...c.attributes,__isBlockPreview:!0}})});var c},h=r.memo?(0,r.memo)(m,((e,t)=>(0,i.isEqual)(e,t))):m;function f(e){let t,{attributes:n,clientId:a,styleOptions:i,onSelectStyle:s,activeStyle:d,viewportWidth:m,title:f}=e;return u.useSelect&&(t=(0,u.useSelect)((e=>{const{getBlock:t}=e("core/block-editor");return t(a)}))),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(l.BlockControls,null,(0,r.createElement)(c.ToolbarGroup,{isCollapsed:!0,icon:"admin-appearance",label:__("Style","jetpack"),controls:i.map((e=>({title:e.label,isActive:e.value===d,onClick:()=>s({style:e.value})}))),popoverProps:{className:"jetpack-block-styles-selector-toolbar"}})),(0,r.createElement)(l.InspectorControls,null,(0,r.createElement)(c.PanelBody,{title:f||__("Styles","jetpack")},(0,r.createElement)("div",{className:"block-editor-block-styles jetpack-block-styles-selector"},i.map((e=>{const a={...n,style:e.value};return(0,r.createElement)("div",{key:e.value,className:o()("block-editor-block-styles__item",{"is-active":e.value===d}),onClick:()=>{s({style:e.value})},onKeyDown:t=>{p.ENTER!==t.keyCode&&p.SPACE!==t.keyCode||(t.preventDefault(),s({style:e.value}))},role:"button",tabIndex:"0","aria-label":e.label},(0,r.createElement)("div",{className:"block-editor-block-styles__item-preview"},e.preview?e.preview:u.useSelect&&t&&(0,r.createElement)(h,{blockName:t.name,styleOption:e,attributes:a,viewportWidth:m})),(0,r.createElement)("div",{className:"block-editor-block-styles__item-label"},e.label))}))))))}},38205:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(55609);const s=i.NumberControl||i.__experimentalNumberControl||function(e){return(0,o.createElement)(i.TextControl,a()({type:"number",inputMode:"numeric"},e))};t.Z=s},43393:function(e,t,n){"use strict";var r=n(69307),a=n(35381),o=n.n(a),i=n(65736),s=n(11973),l=n(62475),c=n(2368);const __=i.__,u=e=>{let{blockName:t,url:n}=e;return(0,r.createElement)(l.Z,{className:"jetpack-stripe-nudge__banner",buttonLabel:__("Connect","jetpack"),icon:(0,r.createElement)(o(),{className:"jetpack-stripe-nudge__icon",size:18,"aria-hidden":"true",role:"img",focusable:"false"}),href:n,onClick:()=>{s.Z.tracks.recordEvent("jetpack_editor_block_stripe_connect_click",{block:t})},title:__("Connect to Stripe to use this block on your site","jetpack"),subtitle:__("This block will be hidden from your visitors until you connect to Stripe.","jetpack")})};t.Z=e=>{let{blockName:t,postId:n,stripeConnectUrl:a}=e;const o=(0,c.Z)(n,a);return o?(0,r.createElement)(u,{blockName:t,url:o}):null}},19356:function(e,t,n){"use strict";n.d(t,{p:function(){return l}});var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__,l=e=>{let{align:t,className:n,title:a,description:s,buttonText:l,visible:c=!0,context:u,checkoutUrl:p,goToCheckoutPage:d,isRedirecting:m=!1}=e;const h=o()(n,"jetpack-upgrade-plan-banner",{"wp-block":"editor-canvas"===u,"block-editor-block-list__block":"editor-canvas"===u,"jetpack-upgrade-plan__hidden":!c}),f=__("Redirecting…","jetpack");return(0,r.createElement)("div",{className:h,"data-align":t},(0,r.createElement)("div",{className:"jetpack-upgrade-plan-banner__wrapper"},a&&(0,r.createElement)("strong",{className:o()("banner-title",{[`${n}__title`]:n})},a),s&&(0,r.createElement)("span",{className:`${n}__description banner-description`},s),(0,r.createElement)(i.Button,{href:m?null:p,onClick:d,target:"_top",className:o()("is-primary",{"jetpack-upgrade-plan__hidden":!p}),isBusy:m},m?f:l)))}},13180:function(e,t,n){"use strict";var r=n(9818);const a={setPlans:e=>({type:"SET_PLANS",plans:e}),fetchFromAPI:e=>({type:"FETCH_FROM_API",url:e})};(0,r.registerStore)("wordpress-com/plans",{reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return"SET_PLANS"===t.type?t.plans:e},actions:a,selectors:{getPlan:(e,t)=>e.find((e=>e.product_slug===t))},controls:{FETCH_FROM_API(e){let{url:t}=e;return fetch(t).then((e=>e.json()))}},resolvers:{*getPlan(){const e=yield a.fetchFromAPI("https://public-api.wordpress.com/rest/v1.5/plans");return a.setPlans(e)}}})},17882:function(e,t,n){"use strict";n.d(t,{ck:function(){return o},Xy:function(){return i},hj:function(){return s},vs:function(){return l},Vm:function(){return c}});var r=n(75139),a=n(92819);const o={USD:.5,AUD:.5,BRL:.5,CAD:.5,CHF:.5,DKK:2.5,EUR:.5,GBP:.3,HKD:4,INR:.5,JPY:50,MXN:10,NOK:3,NZD:.5,PLN:2,SEK:3,SGD:.5},i=Object.keys(o).map((e=>{const{symbol:t}=(0,r.X)(e);return{value:e,label:t===e?e:`${e} ${(0,a.trimEnd)(t,".")}`}}));function s(e){return o[e]}function l(e,t){return!isNaN(t)&&t>=s(e)}function c(e,t){return e?"number"==typeof e?e:(e=parseFloat(e.replace(new RegExp("\\"+r.M[t].grouping,"g"),"").replace(new RegExp("\\"+r.M[t].decimal,"g"),".")),isNaN(e)?null:e):null}},58703:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=e=>{let{label:t,onClick:n}=e;return(0,r.createElement)(a.Button,{className:"components-toolbar__control",label:t,icon:"edit",onClick:n})}},99418:function(e,t,n){"use strict";n.d(t,{iT:function(){return i},wk:function(){return s},oI:function(){return l},Tu:function(){return c},OG:function(){return u},tY:function(){return p},h9:function(){return d},CY:function(){return m},Wm:function(){return h},Qh:function(){return f},Bb:function(){return g},En:function(){return b},yD:function(){return v},QU:function(){return k},zs:function(){return y},l5:function(){return E}});var r=n(65736),a=n(69771),o=n(92819);const __=r.__,i="google_photos",s="pexels",l="recent",c="/",u=[{value:l,label:__("Photos","jetpack")},{value:c,label:__("Albums","jetpack")}],p=[{value:"",
+/* translators: category of images */
+label:__("All categories","jetpack")},{value:"animals",
+/* translators: category of images */
+label:__("Animals","jetpack")},{value:"arts",
+/* translators: category of images */
+label:__("Arts","jetpack")},{value:"birthdays",
+/* translators: category of images */
+label:__("Birthdays","jetpack")},{value:"cityscapes",
+/* translators: category of images */
+label:__("Cityscapes","jetpack")},{value:"crafts",
+/* translators: category of images */
+label:__("Crafts","jetpack")},{value:"fashion",
+/* translators: category of images */
+label:__("Fashion","jetpack")},{value:"food",
+/* translators: category of images */
+label:__("Food","jetpack")},{value:"flowers",
+/* translators: category of images */
+label:__("Flowers","jetpack")},{value:"gardens",
+/* translators: category of images */
+label:__("Gardens","jetpack")},{value:"holidays",
+/* translators: category of images */
+label:__("Holidays","jetpack")},{value:"houses",
+/* translators: category of images */
+label:__("Houses","jetpack")},{value:"landmarks",
+/* translators: category of images */
+label:__("Landmarks","jetpack")},{value:"landscapes",
+/* translators: category of images */
+label:__("Landscapes","jetpack")},{value:"night",
+/* translators: category of images */
+label:__("Night","jetpack")},{value:"people",
+/* translators: category of images */
+label:__("People","jetpack")},{value:"pets",
+/* translators: category of images */
+label:__("Pets","jetpack")},{value:"selfies",
+/* translators: category of images */
+label:__("Selfies","jetpack")},{value:"sport",
+/* translators: category of images */
+label:__("Sport","jetpack")},{value:"travel",
+/* translators: category of images */
+label:__("Travel","jetpack")},{value:"weddings",
+/* translators: category of images */
+label:__("Weddings","jetpack")}],d=["mountain","ocean","river","clouds","pattern","abstract","sky"],m="ANY",h="LAST_7_DAYS",f="LAST_30_DAYS",g="LAST_6_MONTHS",b="LAST_12_MONTHS",v="CUSTOM",k=[{value:m,label:__("Any time","jetpack")},{value:h,label:__("Last 7 days","jetpack")},{value:f,label:__("Last 30 days","jetpack")},{value:g,label:__("Last 6 months","jetpack")},{value:b,label:__("Last 12 months","jetpack")},{value:v,label:__("Specific Month/Year","jetpack")}],y=(new Date).getFullYear(),E=[{label:__("Any Month","jetpack"),value:-1},...(0,o.map)((0,o.range)(0,12),(e=>({label:(0,a.dateI18n)("F",new Date(0,e)),value:e})))]},26634:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(92694),s=n(52175),l=n(63729),c=n(97294),u=n(34724);if((0,l.Z)()&&"function"==typeof s.useBlockEditContext){const e=e=>e.unstableFeaturedImageFlow||e.modalClass&&e.modalClass.indexOf("featured-image")>-1,t=(e,t)=>["core/cover","core/image","core/gallery","core/media-text","jetpack/image-compare","jetpack/slideshow","jetpack/story","jetpack/tiled-gallery"].indexOf(e)>-1&&-1===t.toString().indexOf("coblocks");(0,i.addFilter)("editor.MediaUpload","external-media/replace-media-upload",(n=>r=>{const{name:i}=(0,s.useBlockEditContext)();let{render:l}=r;if(t(i,l)||e(r)){const{allowedTypes:e,gallery:t=!1,value:n=[]}=r;e.indexOf("image")>-1&&!(t&&n.length>0)&&(l=e=>(0,o.createElement)(c.Z,a()({},e,{mediaProps:r})))}return(0,o.createElement)(n,a()({},r,{render:l}))}),100),(0,i.addFilter)("blocks.registerBlockType","external-media/individual-blocks",(function(e,t){return"core/image"!==t?e:{...e,keywords:[...e.keywords,...u.Dv.map((e=>e.keyword))]}}))}},6966:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(92819),s=n(55609),l=n(65736),c=n(39630),u=n(25432),p=n(9236);const __=l.__,d=(0,r.memo)((()=>(0,r.createElement)("div",{className:"jetpack-external-media-browser__empty"},(0,r.createElement)("p",null,__("Sorry, but nothing matched your search criteria.","jetpack")))));t.Z=function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,className:m,multiple:h,setPath:f,nextPage:g,onCopy:b}=e,[v,k]=(0,r.useState)([]),[y,E]=(0,r.useState)(-1),w=(0,r.useRef)(-1),_=(0,r.useRef)(null),C=(0,r.useCallback)((e=>{let t=[e];"folder"===e.type?f(e.ID):h?(t=v.slice(0,9).concat(e),v.find((t=>e.ID===t.ID))&&(t=v.filter((t=>t.ID!==e.ID)))):1===v.length&&e.ID===v[0].ID&&(t=[]),k(t)}),[v,h,f]),j=(0,r.useCallback)((()=>{b(v)}),[v,b]),S=t.filter((e=>"folder"!==e.type)).length>0,x=o()({"jetpack-external-media-browser__media":!0,"jetpack-external-media-browser__media__loading":a}),T=o()({"jetpack-external-media-browser":!0,[m]:!0}),N=()=>{let e=1;const t=_.current.children;if(t.length>0){const n=t[0].offsetTop;for(;e<t.length&&t[e].offsetTop===n;)++e}w.current=e},A=(0,i.debounce)(N,400);(0,r.useEffect)((()=>(window.addEventListener("resize",A),()=>{window.removeEventListener("resize",A)})),[]),(0,r.useEffect)((()=>{t.length&&-1===w.current&&N()}),[t]);const P=(e,t)=>{let{item:n}=t;C(n)},I=(e,n)=>{let{item:r,index:a}=n;[c.LEFT,c.RIGHT,c.UP,c.DOWN].includes(e.keyCode)?((e,n)=>{switch(e){case c.LEFT:n>=1&&E(n-1);break;case c.RIGHT:n<t.length&&E(n+1);break;case c.UP:n>=w.current&&E(n-w.current);break;case c.DOWN:n<t.length-w.current&&E(n+w.current)}})(e.keyCode,a):c.SPACE===e.keyCode?(C(r),e.preventDefault()):c.ENTER===e.keyCode&&C(r),[c.LEFT,c.RIGHT,c.UP,c.DOWN,c.SPACE,c.ENTER].includes(e.keyCode)&&e.stopPropagation()};return(0,r.createElement)("div",{className:T},(0,r.createElement)("ul",{ref:_,className:x},t.map(((e,t)=>(0,r.createElement)(p.Z,{item:e,index:t,key:e.ID,onClick:P,onKeyDown:I,focus:t===y,isSelected:v.find((t=>t.ID===e.ID)),isCopying:n}))),0===t.length&&!a&&(0,r.createElement)(d,null),a&&(0,r.createElement)(u.Z,null),l&&!a&&(0,r.createElement)(s.Button,{isSecondary:!0,className:"jetpack-external-media-browser__loadmore",disabled:a||n,onClick:()=>{t.length&&E(t.length),g()}},__("Load More","jetpack"))),S&&(0,r.createElement)((()=>{const e=0===v.length||n,t=n?__("Inserting…","jetpack"):__("Select","jetpack",0);return(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__toolbar"},(0,r.createElement)(s.Button,{isPrimary:!0,isBusy:n,disabled:e,onClick:j},t))}),null))}},9236:function(e,t,n){"use strict";var r=n(69307),a=n(89105),o=n.n(a),i=n(55609),s=n(65736);const __=s.__;t.Z=function(e){const{item:t,focus:n,isSelected:a,isCopying:s=!1}=e,{thumbnails:l,caption:c,name:u,title:p,type:d,children:m=0}=t,{medium:h=null,fmt_hd:f=null}=l,g=p||c||u,b=o()({"jetpack-external-media-browser__media__item":!0,"jetpack-external-media-browser__media__item__selected":a,"jetpack-external-media-browser__media__folder":"folder"===d,"is-transient":s}),v=(0,r.useRef)(null);return(0,r.useEffect)((()=>{n&&v.current.focus()}),[n]),(0,r.createElement)("li",{ref:v,className:b,onClick:s?void 0:t=>{const{item:n,index:r}=e;e.onClick&&e.onClick(t,{item:n,index:r})},onKeyDown:s?void 0:t=>{const{item:n,index:r}=e;e.onKeyDown&&e.onKeyDown(t,{item:n,index:r})},role:"checkbox",tabIndex:"0","aria-checked":!!a,"aria-disabled":!!s},a&&s&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator"},(0,r.createElement)(i.Spinner,null),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__copying_indicator__label"},__("Inserting Image…","jetpack"))),(0,r.createElement)("img",{src:h||f,alt:g}),"folder"===d&&(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__info"},(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__name"},u),(0,r.createElement)("div",{className:"jetpack-external-media-browser__media__count"},m)))}},25432:function(e,t,n){"use strict";var r=n(69307);t.Z=(0,r.memo)((function(){const e="jetpack-external-media-browser__media__item jetpack-external-media-browser__media__placeholder";return(0,r.createElement)(r.Fragment,null,(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}),(0,r.createElement)("div",{className:e}))}))},97294:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(34724),s=n(60133);const l=e=>e.unstableFeaturedImageFlow||e.modalClass&&-1!==e.modalClass.indexOf("featured-image"),c=e=>void 0===e.multiple&&!l(e);t.Z=function(e){const{mediaProps:t}=e,[n,r]=(0,o.useState)(null),u=(0,i.ZR)(n);return(0,o.createElement)("div",{onClick:e=>e.stopPropagation()},(0,o.createElement)(s.Z,a()({},e,{setSelectedSource:r,isReplace:c(t),isFeatured:l(t),hasImage:t.value>0})),u&&(0,o.createElement)(u,a()({onClose:e=>{e&&(e.stopPropagation(),e.target.closest(".jetpack-external-media-header__dropdown"))||r(null)}},t)))}},60133:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(65736),i=n(35127),s=n(2562);const __=o.__;t.Z=function(e){const{mediaProps:t,open:n,setSelectedSource:o,isFeatured:l,isReplace:c,hasImage:u}=e,p=t.render;let d=l,m=!1,h=!l;if(c)return(0,r.createElement)(s.Z,{originalButton:p,open:n,setSource:o});let f=__("Select Image","jetpack");return t.multiple&&(f=__("Select Images","jetpack")),t.allowedTypes.length>1&&(f=__("Select Media","jetpack")),l&&(f=__("Replace Image","jetpack"),d=!1,h=!1,m=!0),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(a.Dropdown,{position:"bottom right",contentClassName:"jetpack-external-media-button-menu__options",renderToggle:e=>{let{isOpen:t,onToggle:n}=e;const o=p&&p({open:n});return l&&u||o&&"string"!=typeof o.props.children?o:(0,r.createElement)(a.Button,{isPrimary:d,isSecondary:m,isTertiary:h,className:"jetpack-external-media-button-menu","aria-haspopup":"true","aria-expanded":t,onClick:n},f)},renderContent:e=>{let{onClose:t}=e;return(0,r.createElement)(a.NavigableMenu,{"aria-label":f},(0,r.createElement)(a.MenuGroup,null,(0,r.createElement)(a.MenuItem,{icon:i.Z,onClick:()=>{t(),n()}},__("Media Library","jetpack")),(0,r.createElement)(s.Z,{open:n,setSource:o,onClick:t})))}}))}},2562:function(e,t,n){"use strict";var r=n(69307),a=n(55609),o=n(34724);t.Z=function(e){let{originalButton:t=null,onClick:n=(()=>{}),open:i,setSource:s}=e;return(0,r.createElement)(r.Fragment,null,t&&t({open:i}),o.Dv.map((e=>{let{icon:t,id:o,label:i}=e;return(0,r.createElement)(a.MenuItem,{icon:t,key:o,onClick:()=>{n(),s(o)}},i)})))}},67236:function(e,t,n){"use strict";n.d(t,{k:function(){return o}});var r=n(96483);const a={list:"/wpcom/v2/external-media/list/",copy:(0,n(58014).Wp)()?"/rest/v1.1/external-media-upload?service=":"/wpcom/v2/external-media/copy/",connection:"/wpcom/v2/external-media/connection/"};function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return a[e]?(0,r.addQueryArgs)(a[e]+t,n):null}},97416:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(51591);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.JO,null),(0,r.createElement)("p",null,__("To get started, connect your site to your Google Photos library.","jetpack")),(0,r.createElement)("p",null,__("You can remove the connection in either of these places:","jetpack")),(0,r.createElement)("ul",null,(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://myaccount.google.com/security"},__("Google Security page","jetpack"))),(0,r.createElement)("li",null,(0,r.createElement)("a",{target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/connections/"},__("WordPress.com Connections","jetpack")))))}))},75039:function(e,t,n){"use strict";var r=n(69307),a=n(65736);const __=a.__;t.Z=(0,r.memo)((function(){return(0,r.createElement)("p",null,__("Awaiting authorization","jetpack"))}))},72475:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418);const __=a.__;t.Z=(0,r.memo)((function(e){let{path:t,setPath:n}=e;return(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.Button,{isTertiary:!0,onClick:()=>n(i.Tu)},__("Albums","jetpack")),"→   ",t.name)}))},10365:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(38205);const __=a.__;function c(e){let{value:t,updateFilter:n}=e;return(0,r.createElement)(o.SelectControl,{label:__("Category","jetpack"),value:t,options:s.tY,onChange:n})}function u(e){let{value:t,updateFilter:n}=e;const a=t?.range||s.CY,[i,c]=(0,r.useState)(-1),[u,p]=(0,r.useState)(s.zs);return(0,r.createElement)("div",{className:"jetpack-external-media-date-filter"},(0,r.createElement)(o.SelectControl,{label:__("Filter by time period","jetpack"),value:a,options:s.QU,onChange:e=>n({range:e})}),a===s.yD&&(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Month","jetpack"),value:i,options:s.l5,onChange:c}),(0,r.createElement)(l.Z,{className:"components-base-control",label:__("Year","jetpack"),value:u,min:1970,onChange:p}),(0,r.createElement)(o.Button,{isSecondary:!0,disabled:t?.month===i&&t?.year===u,onClick:()=>{n({range:a,month:i,year:u})}},__("Apply","jetpack"))))}function p(){return(0,r.createElement)("span",null,__("Favorites","jetpack"))}function d(e){let{value:t,updateFilter:n}=e;const a=[{label:__("All","jetpack"),value:""},{label:__("Images","jetpack"),value:"photo"},{label:__("Videos","jetpack"),value:"video"}];return(0,r.createElement)(o.SelectControl,{label:__("Type","jetpack"),value:t,options:a,onChange:n})}function m(e){let{children:t,removeFilter:n,isRemovable:a=!1}=e;return(0,r.createElement)("div",{className:"jetpack-external-media-googlephotos-filter"},t,!!a&&(0,r.createElement)(o.Button,{onClick:n,isSmall:!0},__("Remove Filter","jetpack")))}t.Z=function(e){let{filters:t,setFilters:n,canChangeMedia:a}=e;const o=Object.keys(t).filter((e=>a||"mediaType"!==e)).map((e=>{return(0,r.createElement)(m,{key:e,removeFilter:()=>n((0,i.omit)(t,e))},(a=e,o=t[e],s=r=>n(function(e,t,n){const r={...e,[t]:n};return"mediaType"===t&&"video"===n?delete r.category:"category"===t&&"video"===r.mediaType&&delete r.mediaType,r}(t,e,r)),"category"===a?(0,r.createElement)(c,{value:o,updateFilter:s}):"date"===a?(0,r.createElement)(u,{value:o,updateFilter:s}):"favorite"===a?(0,r.createElement)(p,{value:o}):"mediaType"===a?(0,r.createElement)(d,{value:o,updateFilter:s}):null));var a,o,s}));return 0===o.length?null:o}},50254:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(76292),a=n.n(r),o=n(99418);const i=a()();function s(e){const{mediaType:t,category:n,favorite:r,date:s}=e,l=[];if(t&&l.push("mediaType="+t),n&&"video"!==t&&l.push("categoryInclude="+n),void 0!==r&&l.push("feature=favorite"),s){let e=null,t=null;switch(s.range){case o.Wm:e=a()(i).subtract(7,"days"),t=i;break;case o.Qh:e=a()(i).subtract(30,"days"),t=i;break;case o.Bb:e=a()(i).subtract(6,"months"),t=i;break;case o.En:e=a()(i).subtract(1,"year"),t=i;break;case o.yD:const n=parseInt(s.month),r=parseInt(s.year);isNaN(n)||isNaN(r)||(-1===n?(e=a()([r,0]),t=a()(e).endOf("year")):(e=a()([r,n]),t=a()(e).endOf("month")))}const n=e?e.format("YYYY-MM-DD"):"0000-00-00",r=t?t.format("YYYY-MM-DD"):"0000-00-00";l.push(`dateRange=${n}:${r}`)}return l.length>0?l:null}},48389:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609);const __=a.__,i=[{label:__("Category","jetpack"),value:"category"},{label:__("Date","jetpack"),value:"date"},{label:__("Favorites","jetpack"),value:"favorite"},{label:__("Media Type","jetpack"),value:"mediaType"}];function s(e){return i.filter((t=>void 0===e[t.value]))}function l(e){const t=s(e);return t.length>0?t[0].value:""}t.Z=function(e){const[t,n]=(0,r.useState)(l([])),{isLoading:a,isCopying:i,filters:c,canChangeMedia:u}=e,p=function(e,t){return t?e:e.filter((e=>"mediaType"!==e.value))}(s(c),u);return 0===p.length?null:(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.SelectControl,{label:__("Filters","jetpack"),value:t,disabled:a||i,options:p,onChange:n}),(0,r.createElement)(o.Button,{disabled:a||i,isSecondary:!0,isSmall:!0,onClick:()=>{const r=(a=c,o=t,{...a,[o]:"favorite"===o||""});var a,o;e.setFilters(r),n(l(r))}},__("Add Filter","jetpack")))}},72461:function(e,t,n){"use strict";var r=n(69307),a=n(3308);t.Z=e=>{let{account:t,setAuthenticated:n}=e;const{image:o,name:i}=t||{};return(0,r.createElement)("div",{className:"jetpack-external-media-header__account"},(0,r.createElement)("div",{className:"jetpack-external-media-header__account-info"},o&&(0,r.createElement)("img",{className:"jetpack-external-media-header__account-image",src:o,alt:"",height:"18",width:"18"}),i&&(0,r.createElement)("div",{className:"jetpack-external-media-header__account-name"},i)),(0,r.createElement)(a.Z,{setAuthenticated:n}))}},17482:function(e,t,n){"use strict";var r=n(69307),a=n(39151),o=n(86989),i=n.n(o),s=n(65736),l=n(55609),c=n(99418),u=n(67236),p=n(97416),d=n(75039);const __=s.__;t.Z=function(e){const{setAuthenticated:t}=e,[n,o]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{o(!0),i()({path:(0,u.k)("connection",c.iT)}).then((e=>{if(e.error)throw e.message;(0,a.Z)(e.connect_URL,(()=>{o(!1),t(!0)}))})).catch((()=>{o(!1)}))}),[t]);return(0,r.createElement)("div",{className:"jetpack-external-media-auth"},n?(0,r.createElement)(d.Z,null):(0,r.createElement)(p.Z,null),(0,r.createElement)(l.Button,{isPrimary:!0,disabled:n,onClick:s},__("Connect to Google Photos","jetpack")))}},3308:function(e,t,n){"use strict";var r=n(69307),a=n(86989),o=n.n(a),i=n(55609),s=n(65736),l=n(67236),c=n(99418);const __=s.__;t.Z=e=>{let{setAuthenticated:t}=e;const[n,a]=(0,r.useState)(!1),s=(0,r.useCallback)((()=>{a(!0),o()({method:"DELETE",path:(0,l.k)("connection",c.iT)}).then((()=>t(!1))).catch((()=>a(!1)))}),[t]);return(0,r.createElement)(i.Button,{isSecondary:!0,className:"jetpack-external-media-browser__disconnect",onClick:s,disabled:n,isBusy:n},__("Disconnect from Google Photos","jetpack"))}},8910:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(99418),s=n(6966),l=n(67236),c=n(10365),u=n(48389),p=n(72461),d=n(72475),m=n(50254);const __=a.__;t.Z=function(e){const{account:t,allowedTypes:n,copyMedia:a,getMedia:h,isCopying:f,isLoading:g,media:b,multiple:v,onChangePath:k,pageHandle:y,path:E,setAuthenticated:w,showAdditionalFilters:_=!1}=e,C=(j=n)&&1===j.length&&"image"===j[0];var j;const[S,x]=(0,r.useState)(C?{mediaType:"photo",date:{range:i.CY}}:{date:{range:i.CY}}),T=(0,r.useRef)(""),N=(0,r.useRef)(""),A=E.ID===i.oI?(0,m.Z)(S):null,P={number:20,path:E.ID};A&&(P.filter=A);const I=(0,l.k)("list",i.iT,P),M=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h(I,t)}),[h,I]),R=(0,r.useCallback)((e=>{const t=b.find((t=>t.ID===e));N.current=E,k(t||{ID:e})}),[b,k,N,E]),L=(0,r.useCallback)((e=>{a(e,(0,l.k)("copy",i.iT),i.iT)}),[a]);return(0,r.useEffect)((()=>{T!==I&&(T.current=I,M({},E!==N.current))}),[T,I,M,E]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__google"},(0,r.createElement)("div",{className:"jetpack-external-media-header__view"},(0,r.createElement)(o.SelectControl,{className:"jetpack-external-media-header__select",label:__("View","jetpack"),value:E.ID!==i.oI?i.Tu:i.oI,disabled:g||f,options:i.OG,onChange:R}),_&&E.ID===i.oI&&(0,r.createElement)(u.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),(0,r.createElement)("div",{className:"jetpack-external-media-header__filter"},E.ID===i.oI&&(0,r.createElement)(c.Z,{filters:S,isLoading:g,setFilters:x,canChangeMedia:!C}),E.ID!==i.oI&&E.ID!==i.Tu&&(0,r.createElement)(d.Z,{path:E,setPath:R})),(!g||b.length>0)&&(0,r.createElement)(p.Z,{account:t,setAuthenticated:w})),(0,r.createElement)(s.Z,{className:"jetpack-external-media-browser__google",key:I,media:b,isCopying:f,isLoading:g,nextPage:M,onCopy:L,pageHandle:y,multiple:v,setPath:R}))}},5465:function(e,t,n){"use strict";var r=n(69307),a=n(37603),o=n(17482),i=n(8910);t.Z=(0,a.Z)()((function(e){return e.isAuthenticated?(0,r.createElement)(i.Z,e):(0,r.createElement)(o.Z,e)}))},34724:function(e,t,n){"use strict";n.d(t,{Dv:function(){return c},ZR:function(){return u}});var r=n(69307),a=n(65736),o=n(51591),i=n(5465),s=n(7500),l=n(99418);const __=a.__,c=[{id:l.iT,label:__("Google Photos","jetpack"),icon:(0,r.createElement)(o.He,{className:"components-menu-items__item-icon"}),keyword:"google photos"},{id:l.wk,label:__("Pexels Free Photos","jetpack"),icon:(0,r.createElement)(o.yk,{className:"components-menu-items__item-icon"}),keyword:"pexels"}];function u(e){return e===l.wk?s.Z:e===l.iT?i.Z:null}},7500:function(e,t,n){"use strict";var r=n(69307),a=n(65736),o=n(55609),i=n(92819),s=n(99418),l=n(37603),c=n(6966),u=n(67236);const __=a.__;t.Z=(0,l.Z)()((function(e){const{media:t,isCopying:n,isLoading:a,pageHandle:l,multiple:p,copyMedia:d,getMedia:m}=e,[h,f]=(0,r.useState)((0,i.sample)(s.h9)),[g,b]=(0,r.useState)(""),v=(0,r.useCallback)((e=>{d(e,(0,u.k)("copy",s.wk),s.wk)}),[d]),k=(0,r.useCallback)((function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];h&&m((0,u.k)("list",s.wk,{number:20,path:"recent",search:h}),t)}),[m,h]),y=(0,r.useRef)(),E=(0,r.useCallback)((e=>{e.preventDefault(),b(h),k(e,!0),y.current=h}),[k,h]);(0,r.useEffect)(k,[]);const w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!w.current)return;const e=Array.from(w.current.elements).find((e=>"search"===e.type));e&&(e.focus(),e.select())}),[]),(0,r.createElement)("div",{className:"jetpack-external-media-wrapper__pexels"},(0,r.createElement)("form",{ref:w,className:"jetpack-external-media-header__pexels",onSubmit:E},(0,r.createElement)(o.TextControl,{"aria-label":__("Search","jetpack"),type:"search",value:h,onChange:f,disabled:!!n}),(0,r.createElement)(o.Button,{isPrimary:!0,onClick:E,type:"submit",disabled:!h.length||h===y.current||n},__("Search","jetpack"))),(0,r.createElement)(c.Z,{key:g,className:"jetpack-external-media-browser__pexels",media:t,isCopying:n,isLoading:a,nextPage:k,onCopy:v,pageHandle:l,multiple:p}))}))},37603:function(e,t,n){"use strict";n.d(t,{Z:function(){return b}});var r=n(27538),a=n.n(r),o=n(69307),i=n(92819),s=n(89105),l=n.n(s),c=n(86989),u=n.n(c),p=n(94333),d=n(55609),m=n(65736),h=n(39630),f=n(9818),g=n(99418);const __=m.__;function b(){return(0,p.createHigherOrderComponent)((e=>{class t extends o.Component{constructor(e){var t;super(e),t=this,a()(this,"contentRef",(e=>{e?(this.contentElement=e,this.modalElement=e.closest(".jetpack-external-media-browser"),this.modalElement&&this.modalElement.addEventListener("keydown",this.stopArrowKeysPropagation)):this.modalElement&&(this.modalElement.removeEventListener("keydown",this.stopArrowKeysPropagation),this.modalElement=null,this.contentElement=null)})),a()(this,"stopArrowKeysPropagation",(e=>{[h.UP,h.DOWN,h.LEFT,h.RIGHT].includes(e.keyCode)&&!e.target.classList.contains("jetpack-external-media-browser__media__item")&&e.stopPropagation()})),a()(this,"setAuthenticated",(e=>this.setState({isAuthenticated:e}))),a()(this,"getMedia",(function(e){let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];t.state.isLoading||(n&&t.props.noticeOperations.removeAllNotices(),t.setState({account:n?t.defaultAccount:t.state.account,isLoading:!0,media:n?[]:t.state.media,nextHandle:!n&&t.state.nextHandle},(()=>t.getMediaRequest(e))))})),a()(this,"handleApiError",(e=>{if("authorization_required"===e.code)return void this.setState({isAuthenticated:!1,isLoading:!1,isCopying:!1});e.errors?.length&&(e={code:e.errors[0].error,message:e.errors[0].message});const{noticeOperations:t}=this.props;t.createErrorNotice("internal_server_error"===e.code?"Internal server error":e.message),this.setState({isLoading:!1,isCopying:!1})})),a()(this,"getMediaRequest",(e=>{const{nextHandle:t,media:n}=this.state;if(!1===t&&n.length>0)return void this.setState({isLoading:!1});const r=this.getRequestUrl(e);this.setAuthenticated(!0),u()({path:r,method:"GET",parse:void 0===window.wpcomFetch}).then((e=>{this.setState({account:e.meta.account,media:this.mergeMedia(n,e.media),nextHandle:e.meta.next_page,isLoading:!1})})).catch(this.handleApiError)})),a()(this,"copyMedia",((e,t,n)=>{var r;this.setState({isCopying:e}),this.props.noticeOperations.removeAllNotices(),this.modalElement&&this.modalElement.focus(),u()({path:t,method:"POST",data:{external_ids:e.map((e=>e.guid)),media:e.map((e=>({guid:e.guid,caption:e.caption,title:e.title}))),service:n,post_id:null!==(r=this.props.postId)&&void 0!==r?r:0}}).then((e=>{e.media&&(e=e.media.map((e=>({alt:e.alt,caption:e.caption,id:e.ID,type:"image",url:e.URL}))));const{value:t,addToGallery:n,multiple:r}=this.props,a=r?e:e[0],o=e.find((e=>e.errors));if(o){const{errors:e}=o,t=Object.keys(e)[0];this.handleApiError({code:t,message:e[t]})}else this.props.onClose(),this.props.onSelect(n?t.concat(e):a)})).catch(this.handleApiError)})),a()(this,"onChangePath",((e,t)=>{this.setState({path:e},t)})),this.defaultAccount={image:"",name:""},this.state={account:this.defaultAccount,media:[],nextHandle:!1,isLoading:!1,isCopying:null,isAuthenticated:!0,path:{ID:g.oI}}}mergeMedia(e,t){return(0,i.uniqBy)(e.concat(t),"ID")}getRequestUrl(e){const{nextHandle:t}=this.state;return t?e+"&page_handle="+encodeURIComponent(t):e}render(){const{account:t,isAuthenticated:n,isCopying:r,isLoading:a,media:i,nextHandle:s,path:c}=this.state,{allowedTypes:u,multiple:p=!1,noticeUI:m,onClose:h}=this.props,f=r?__("Inserting media","jetpack"):__("Select media","jetpack",0),g=r?__("When the media is finished copying and inserting, you will be returned to the editor.","jetpack"):__("Select the media you would like to insert into the editor.","jetpack",0),b="jetpack-external-media-browser__description",v=l()({"jetpack-external-media-browser":!0,"jetpack-external-media-browser--is-copying":r});return(0,o.createElement)(d.Modal,{onRequestClose:h,title:f,aria:{describedby:b},className:v},(0,o.createElement)("div",{ref:this.contentRef},m,(0,o.createElement)("p",{id:b,className:"jetpack-external-media-browser--visually-hidden"},g),(0,o.createElement)(e,{account:t,getMedia:this.getMedia,copyMedia:this.copyMedia,isCopying:r,isLoading:a,media:i,pageHandle:s,allowedTypes:u,isAuthenticated:n,setAuthenticated:this.setAuthenticated,multiple:p,path:c,onChangePath:this.onChangePath})))}}return(0,f.withSelect)((e=>({postId:e("core/editor").getCurrentPostId()})))((0,d.withNotices)(t))}))}},36745:function(e,t,n){"use strict";n.d(t,{Qu:function(){return i}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["allowedMimeTypes"],[])}function i(e,t){if(!e||!t)return!1;if(!o())return!1;const n=(a=t)?(0,r.pickBy)(o(),(e=>(0,r.startsWith)(e,`${a}/`))):{};var a;const i=(s=n)?(0,r.flatten)((0,r.map)((0,r.keys)(s),(e=>e.split("|")))):[];var s;if("string"==typeof e){const t=e.split(".").pop();return t&&i.includes(t)}return"object"==typeof e&&(e.type&&(0,r.values)(n).includes(e.type))}},20510:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(4981);function a(){const e=(0,r.getCategories)();for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];for(const t of n)if(e.some((e=>{let{slug:n}=e;return n===t})))return t;throw new Error(`Could not find a category from the provided list: ${n.join(",")}`)}},2368:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(96483);function a(e,t){if(!(0,r.isURL)(t))return null;let n=t;try{const a=(0,r.getQueryArg)(t,"state"),o=JSON.parse(atob(a));if(e)o.from_editor_post_id=e;else{const e=new URLSearchParams(window.location.search);o.from_site_editor_post_id=e.get("postId"),o.from_site_editor_post_type=e.get("postType")}n=(0,r.addQueryArgs)(t,{state:btoa(JSON.stringify(o))})}catch(e){0}return n}},47583:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(92819);function a(){return(0,r.get)("object"==typeof window?window:null,["Jetpack_Editor_Initial_State"],null)}},21409:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(e){const t=(0,a.Z)(),n=(0,r.get)(t,["available_blocks",e,"available"],!1),o=(0,r.get)(t,["available_blocks",e,"unavailable_reason"],"unknown"),i=(0,r.get)(t,["available_blocks",e,"details"],[]);return{available:n,...!n&&{details:i,unavailableReason:o}}}},4235:function(e,t,n){"use strict";function r(){return window&&window.Jetpack_Editor_Initial_State&&window.Jetpack_Editor_Initial_State.siteFragment?window.Jetpack_Editor_Initial_State.siteFragment:null}n.d(t,{Z:function(){return r}})},14087:function(e,t,n){"use strict";n.d(t,{S:function(){return a}});var r=n(92819);const a=(e,t)=>(0,r.reduce)(t,((t,n,r)=>{if(void 0===e[r])return t;const{type:a,validator:o,validValues:i,default:s}=e[r];return t[r]="boolean"===a?"false"!==n&&!!n:o?o(n)?n:s:i?i.includes(n)?n:s:n,t}),{})},22985:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(89105),s=n.n(i),l=n(20651),c=n.n(l);t.Z=e=>{let{children:t=null,isError:n=!1,...r}=e;const i=s()("help-message",{"help-message-is-error":n});return t&&(0,o.createElement)("div",a()({className:i},r),n&&(0,o.createElement)(c(),{size:"24","aria-hidden":"true",role:"img",focusable:"false"}),(0,o.createElement)("span",null,t))}},51591:function(e,t,n){"use strict";n.d(t,{He:function(){return d},yk:function(){return m},JO:function(){return h},IM:function(){return f},zf:function(){return E},Ae:function(){return w},K9:function(){return _},av:function(){return C},Pw:function(){return j}});var r=n(29183),a=n.n(r),o=n(69307),i=n(55609),s=n(89105),l=n.n(s),c=n(27655),u=n(57535);const p=c.O["Jetpack Green 40"],d=e=>(0,o.createElement)(i.SVG,a()({height:"24",width:"24",viewBox:"1.2 10.8 169.6 169.6",xmlns:"http://www.w3.org/2000/svg"},e),(0,o.createElement)(i.Path,{d:"m43.6 49.4c23.4 0 42.4 19 42.4 42.4v3.9h-80.9c-2.1 0-3.8-1.7-3.9-3.9 0-23.4 19-42.4 42.4-42.4z",fill:"#f6bc04"}),(0,o.createElement)(i.Path,{d:"m132.2 53.2c0 23.4-19 42.4-42.4 42.4h-3.8v-80.9c0-2.1 1.7-3.9 3.8-3.9 23.5 0 42.4 19 42.4 42.4z",fill:"#ea4335"}),(0,o.createElement)(i.Path,{d:"m128.4 141.9c-23.4 0-42.4-19-42.4-42.4v-3.9h80.9c2.1 0 3.9 1.7 3.9 3.8 0 23.5-19 42.5-42.4 42.5z",fill:"#4285f4"}),(0,o.createElement)(i.Path,{d:"m39.8 138c0-23.4 19-42.4 42.4-42.4h3.8v80.9c0 2.1-1.7 3.8-3.9 3.9-23.4 0-42.3-19-42.3-42.4z",fill:"#34a853"})),m=e=>(0,o.createElement)(i.SVG,a()({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},e),(0,o.createElement)(i.Path,{d:"M14 7H9v10h3.9v-3.8H14c1.7 0 3.1-1.4 3.1-3.1C17.2 8.4 15.8 7 14 7z"}),(0,o.createElement)(i.Path,{d:"M20.5 2h-17C2.7 2 2 2.7 2 3.5v17c0 .8.7 1.5 1.5 1.5h17c.8 0 1.5-.7 1.5-1.5v-17c0-.8-.7-1.5-1.5-1.5zm-5.6 13.2V19H7V5h7c2.8 0 5.1 2.3 5.1 5.1.1 2.5-1.8 4.7-4.2 5.1z"})),h=()=>{const e="#757575";return(0,o.createElement)(i.SVG,{version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/SVG",x:"0px",y:"0px",viewBox:"0 0 1292 448",style:{enableBackground:"new 0 0 1292 448"}},(0,o.createElement)(i.G,{id:"Icon"},(0,o.createElement)(i.Path,{class:"st0",fill:"#F6B704",d:"M171.6,177.4c23.4,0,42.4,19,42.4,42.4v3.9h-80.9c-2.1,0-3.8-1.7-3.9-3.9C129.2,196.4,148.2,177.4,171.6,177.4 C171.6,177.4,171.6,177.4,171.6,177.4z"}),(0,o.createElement)(i.Path,{class:"st1",fill:"#E54335",d:"M260.2,181.2c0,23.4-19,42.4-42.4,42.4H214v-80.9c0-2.1,1.7-3.9,3.8-3.9h0 C241.3,138.8,260.2,157.8,260.2,181.2C260.2,181.2,260.2,181.2,260.2,181.2z"}),(0,o.createElement)(i.Path,{class:"st2",fill:"#4280EF",d:"M256.4,269.9c-23.4,0-42.4-19-42.4-42.4v-3.9h80.9c2.1,0,3.9,1.7,3.9,3.8v0 C298.8,250.9,279.8,269.9,256.4,269.9C256.4,269.9,256.4,269.9,256.4,269.9z"}),(0,o.createElement)(i.Path,{class:"st3",fill:"#34A353",d:"M167.8,266c0-23.4,19-42.4,42.4-42.4c0,0,0,0,0,0h3.9v80.9c0,2.1-1.7,3.8-3.9,3.9 C186.7,308.4,167.8,289.4,167.8,266z"})),(0,o.createElement)(i.G,{id:"Photos"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M796,272v-91.6h31.2c15.2,0,28.7,11.3,28.7,27.3s-13.4,27.3-28.7,27.3h-19.4V272H796z M827.5,223.6 c8.8,0,16-7.2,16-16s-7.2-16-16-16h-19.7v32H827.5z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M875.8,209.3l-0.5,8.7h0.5c3.3-5.8,11.3-10.8,19.8-10.8c16,0,23.9,10.9,23.9,26.4V272h-11.8v-36.6 c0-13-6.5-17.4-15.5-17.4c-10.2,0-16.5,9.7-16.5,19.3V272H864v-91.6h11.8V209.3z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M993.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4S993.8,221.6,993.8,240.6z M982,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S982,255,982,240.6L982,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1008,252.9V220h-11v-10.7h11v-19.2h11.8v19.2h15.3V220h-15.3v32c0,7,2.9,10.2,8.4,10.2c1.8,0.1,3.7-0.3,5.4-1 l4.1,10.1c-3,1.2-6.2,1.8-9.5,1.7C1015,273,1008,265.7,1008,252.9z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1105.8,240.6c0,19.1-13.4,33.4-32.2,33.4s-32.2-14.3-32.2-33.4s13.4-33.4,32.2-33.4 S1105.8,221.6,1105.8,240.6z M1094,240.6c0-14.3-10-22.6-20.5-22.6s-20.5,8.3-20.5,22.6s10,22.7,20.5,22.7S1094,255,1094,240.6 L1094,240.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M1111,256.1l10.5-4.4c3.3,7.9,9.5,11.8,17,11.8c7.3,0,12.5-3.6,12.5-8.8c0-3.2-1.9-6.6-8.6-8.3l-12.7-3.1 c-5.8-1.4-16.8-6.4-16.8-17.4c0-11.4,11.8-18.7,24.8-18.7c10.9,0,20.3,5,24.2,14.6l-10.2,4.2c-2.4-5.9-8.2-8.3-14.3-8.3 c-6.7,0-12.4,3-12.4,8.1c0,4,3.3,6.1,8.3,7.3l12.4,2.9c12.4,2.9,17.3,10.6,17.3,18.3c0,11.1-10,19.7-24.7,19.7 C1123.2,274,1114.7,265.1,1111,256.1z"})),(0,o.createElement)(i.G,{id:"Google"},(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M348.7,221.6c0-28.9,24.3-52.5,53.2-52.5c13.5-0.2,26.4,5,36,14.5l-10.1,10.1c-6.9-6.7-16.2-10.4-25.9-10.2 c-21.1,0-37.6,17-37.6,38.2s16.5,38.1,37.6,38.1c13.7,0,21.5-5.5,26.5-10.5c4.1-4.1,6.8-10,7.8-18H402v-14.4h48.3 c0.5,3,0.8,6,0.8,9c0,10.8-2.9,24.1-12.4,33.5c-9.2,9.6-21,14.7-36.6,14.7C373,274,348.7,250.5,348.7,221.6z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M490,206.5c-18.7,0-33.9,14.2-33.9,33.8S471.3,274,490,274s33.9-14.3,33.9-33.8S508.7,206.5,490,206.5z M490,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S500.2,260.7,490,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M564,206.5c-18.7,0-33.9,14.2-33.9,33.8S545.3,274,564,274s33.9-14.3,33.9-33.8S582.7,206.5,564,206.5z M564,260.7c-10.2,0-19.1-8.4-19.1-20.5s8.8-20.5,19.1-20.5s19.1,8.3,19.1,20.5S574.2,260.7,564,260.7z"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M654.8,208.5v5.5h-0.5c-3.3-4-9.7-7.6-17.8-7.6c-16.9,0-32.4,14.9-32.4,33.9s15.5,33.7,32.4,33.7 c8.1,0,14.5-3.6,17.8-7.7h0.5v4.9c0,12.9-6.9,19.8-18,19.8c-9.1,0-14.7-6.5-17-12l-12.9,5.4c5,12.1,16.8,20.1,30,20 c17.4,0,32.1-10.2,32.1-35.2v-60.7H654.8z M637.8,260.7c-10.2,0-18.8-8.6-18.8-20.4s8.6-20.6,18.8-20.6s18,8.7,18,20.6 S647.9,260.7,637.8,260.7L637.8,260.7z"}),(0,o.createElement)(i.Rect,{x:"679.2",y:"172.7",class:"st4",fill:e,width:"14.8",height:"99.3"}),(0,o.createElement)(i.Path,{class:"st4",fill:e,d:"M734.7,260.7c-7.6,0-12.9-3.5-16.4-10.2l45.2-18.7L762,228c-2.8-7.6-11.4-21.5-28.9-21.5s-31.9,13.7-31.9,33.8 c0,19,14.3,33.8,33.5,33.8c11.3,0.1,21.9-5.6,28.2-15l-11.5-7.7C747.5,257,742.3,260.7,734.7,260.7z M733.6,219.5 c5.9,0,10.9,2.9,12.5,7.2l-30.2,12.5C715.5,226.2,726,219.5,733.6,219.5L733.6,219.5z"})))},f=e=>{let{size:t=24,className:n}=e;return(0,o.createElement)(i.SVG,{className:l()("jetpack-logo",n),width:t,height:t,viewBox:"0 0 32 32"},(0,o.createElement)(i.Path,{className:"jetpack-logo__icon-circle",fill:p,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"15,19 7,19 15,3 "}),(0,o.createElement)(i.Polygon,{className:"jetpack-logo__icon-triangle",fill:"#fff",points:"17,29 17,13 25,13 "}))},g=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"}))),b=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19,3H5C3.895,3,3,3.895,3,5v14c0,1.105,0.895,2,2,2h14c1.105,0,2-0.895,2-2V5C21,3.895,20.105,3,19,3z M16.466,9.71 c0.004,0.099,0.007,0.198,0.007,0.298c0,3.045-2.318,6.556-6.556,6.556c-1.301,0-2.512-0.381-3.532-1.035 c0.18,0.021,0.364,0.032,0.55,0.032c1.079,0,2.073-0.368,2.862-0.986c-1.008-0.019-1.859-0.685-2.152-1.6 c0.141,0.027,0.285,0.041,0.433,0.041c0.21,0,0.414-0.028,0.607-0.081c-1.054-0.212-1.848-1.143-1.848-2.259 c0-0.01,0-0.019,0-0.029c0.311,0.173,0.666,0.276,1.044,0.288c-0.618-0.413-1.025-1.118-1.025-1.918 c0-0.422,0.114-0.818,0.312-1.158c1.136,1.394,2.834,2.311,4.749,2.407c-0.039-0.169-0.06-0.344-0.06-0.525 c0-1.272,1.032-2.304,2.304-2.304c0.663,0,1.261,0.28,1.682,0.728c0.525-0.103,1.018-0.295,1.463-0.559 c-0.172,0.538-0.537,0.99-1.013,1.275c0.466-0.056,0.91-0.18,1.323-0.363C17.306,8.979,16.916,9.385,16.466,9.71z"}))),v=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19.7 3H4.3C3.582 3 3 3.582 3 4.3v15.4c0 .718.582 1.3 1.3 1.3h15.4c.718 0 1.3-.582 1.3-1.3V4.3c0-.718-.582-1.3-1.3-1.3zM8.34 18.338H5.666v-8.59H8.34v8.59zM7.003 8.574c-.857 0-1.55-.694-1.55-1.548 0-.855.692-1.548 1.55-1.548.854 0 1.547.694 1.547 1.548 0 .855-.692 1.548-1.546 1.548zm11.335 9.764h-2.67V14.16c0-.995-.017-2.277-1.387-2.277-1.39 0-1.6 1.086-1.6 2.206v4.248h-2.668v-8.59h2.56v1.174h.036c.357-.675 1.228-1.387 2.527-1.387 2.703 0 3.203 1.78 3.203 4.092v4.71z"}))),k=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z"}))),y=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.G,null,(0,o.createElement)(i.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.05h-9.36z"}))),E={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 100 100"},(0,o.createElement)(i.Path,{d:"M100,44H72.4l23.9-13.8l-6-10.4L66.4,33.6L80.2,9.7l-10.4-6L56,27.59V0H44v27.6L30.2,3.7l-10.4,6l13.8,23.9 L9.7,19.8l-6,10.4L27.6,44H0V56h27.6L3.7,69.8l6,10.4l23.9-13.8L19.8,90.3l10.4,6L44,72.4V100H56V72.41l13.8,23.9l10.4-6L66.4,66.4 l23.9,13.8l6-10.4L72.4,56H100V44z M50,65.23c-8.41,0-15.23-6.82-15.23-15.23c0-8.41,6.82-15.23,15.23-15.23S65.23,41.59,65.23,50 C65.23,58.41,58.41,65.23,50,65.23z"}))},w={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20.7 17",xmlSpace:"preserve"},(0,o.createElement)(i.Path,{d:"m20.7 12.9-.9-11c0-.5-.2-.9-.5-1.3-.3-.3-.8-.5-1.3-.5L1.9 0h-.1c-.2 0-.5 0-.7.1C.9.2.7.4.5.5.4.7.2.9.1 1.1c-.1.2-.1.5-.1.7v.1l.9 13.4c0 .5.2.9.5 1.3.3.2.8.4 1.3.4H3l16.1-2c.4 0 .9-.3 1.1-.6.3-.3.5-.8.5-1.2v-.3zm-3.1.8L4.2 15.3H4c-.4 0-.8-.1-1-.4-.3-.3-.4-.6-.5-1L1.7 3.2v-.1c0-.4.2-.8.5-1 .3-.3.7-.4 1-.4h.1l13.5.1c.4 0 .8.1 1 .4.3.3.4.6.5 1L19 12v.3c0 .4-.2.7-.4 1-.3.2-.6.4-1 .4z"}))},_={foreground:(0,u.m)(),src:(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})))},C=((0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M15.9216 2H2.98533C2.43803 2 1.99023 2.45 1.99023 3V17L5.97062 13H15.9216C16.4689 13 16.9167 12.55 16.9167 12V3C16.9167 2.45 16.4689 2 15.9216 2ZM14.9265 4V11H5.14469L3.98043 12.17V4H14.9265ZM18.9069 6H20.8971C21.4444 6 21.8922 6.45 21.8922 7V22L17.9118 18H6.96572C6.41842 18 5.97062 17.55 5.97062 17V15H18.9069V6Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M3.98042 2H19.9019C20.9965 2 21.8921 2.9 21.8921 4V16C21.8921 17.1 20.9965 18 19.9019 18H5.97061L1.99023 22V4C1.99023 2.9 2.88582 2 3.98042 2ZM5.97061 16H19.9019V4H3.98042V18L5.97061 16Z"}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M11.1114 8H20.0002M11.1113 15H20.0002",stroke:(0,u.m)(),strokeWidth:"1.5"}),(0,o.createElement)(i.Path,{d:"M4 10V6L8 8L4 10Z",fill:(0,u.m)()}),(0,o.createElement)(i.Path,{d:"M4 17V13L8 15L4 17Z",fill:(0,u.m)()}))),(0,u.m)(),(0,o.createElement)(i.SVG,{viewBox:"0 0 24 24"},(0,o.createElement)(i.Rect,{x:"0",fill:"none",width:"24",height:"24"}),(0,o.createElement)(i.G,null,(0,o.createElement)(i.Path,{d:"M4 12V4L11 8L4 12Z"}),(0,o.createElement)(i.Path,{d:"M4 14.5H20V16H4V14.5Z"}),(0,o.createElement)(i.Path,{d:"M4 18.5H13V20H4V18.5Z"}))),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M2.5 7.5V4.5H15.5V7.5H10.5V19.5H7.5V7.5H2.5ZM12.5 9.5H21.5V12.5H18.5V19.5H15.5V12.5H12.5V9.5Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M12.7049 2V6C8.30658 6 4.74414 9.58 4.74414 14C4.74414 18.42 8.30658 22 12.7049 22C17.1032 22 20.6656 18.42 20.6656 14H18.6755C18.6755 17.31 15.9987 20 12.7049 20C9.41113 20 6.73433 17.31 6.73433 14C6.73433 10.69 9.41113 8 12.7049 8V12L17.6804 7L12.7049 2ZM11.6501 12.73L11.4013 14.9L12.068 15.06C12.0753 15.0526 12.0827 15.0447 12.0901 15.0366C12.1131 15.0116 12.1375 14.9851 12.1675 14.97C12.1874 14.96 12.2073 14.9475 12.2272 14.935C12.2471 14.9225 12.2671 14.91 12.287 14.9C12.3268 14.88 12.3865 14.86 12.4362 14.85C12.486 14.84 12.5556 14.83 12.6352 14.83C12.7447 14.83 12.8542 14.85 12.9338 14.88C13.0134 14.91 13.083 14.96 13.1427 15.03C13.2024 15.1 13.2422 15.17 13.2721 15.27C13.302 15.37 13.3119 15.47 13.3119 15.58V15.58C13.3119 15.69 13.3119 15.79 13.2821 15.89C13.2522 15.99 13.2124 16.07 13.1726 16.14C13.1328 16.21 13.0631 16.27 12.9935 16.31C12.9238 16.35 12.8343 16.37 12.7248 16.37C12.5556 16.37 12.4163 16.31 12.3069 16.22C12.1974 16.13 12.1377 15.99 12.1178 15.81H11.2819C11.2819 16.01 11.3317 16.19 11.4113 16.34C11.4909 16.49 11.5904 16.63 11.7297 16.73C11.869 16.83 12.0183 16.92 12.1874 16.97C12.3566 17.02 12.5357 17.05 12.7148 17.05C12.9636 17.05 13.1726 17 13.3517 16.93C13.5308 16.86 13.6801 16.75 13.7995 16.62C13.9189 16.49 14.0085 16.34 14.0682 16.17C14.1279 16 14.1577 15.82 14.1577 15.63C14.1577 15.41 14.1179 15.21 14.0682 15.03C14.0184 14.85 13.9289 14.7 13.8194 14.58C13.7099 14.46 13.5706 14.37 13.4114 14.3C13.2522 14.23 13.0731 14.2 12.8641 14.2C12.7945 14.2 12.7248 14.21 12.6651 14.22C12.6352 14.225 12.6054 14.2325 12.5755 14.24C12.5457 14.2475 12.5158 14.255 12.486 14.26C12.4263 14.27 12.3765 14.29 12.3367 14.31C12.3201 14.3183 12.3035 14.325 12.2876 14.3313C12.2654 14.3401 12.2446 14.3483 12.2272 14.36L12.3367 13.44H14.0284V12.73H11.6501Z"})),(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M11.9412 2V6C16.3395 6 19.902 9.58 19.902 14C19.902 18.42 16.3395 22 11.9412 22C7.54291 22 3.98047 18.42 3.98047 14H5.97066C5.97066 17.31 8.64746 20 11.9412 20C15.235 20 17.9118 17.31 17.9118 14C17.9118 10.69 15.235 8 11.9412 8V12L6.96575 7L11.9412 2ZM10.8864 12.73L10.6376 14.9L11.3044 15.06C11.3117 15.0526 11.319 15.0447 11.3264 15.0366C11.3494 15.0116 11.3738 14.9851 11.4039 14.97C11.4238 14.96 11.4437 14.9475 11.4636 14.935C11.4835 14.9225 11.5034 14.91 11.5233 14.9C11.5631 14.88 11.6228 14.86 11.6725 14.85C11.7223 14.84 11.792 14.83 11.8716 14.83C11.981 14.83 12.0905 14.85 12.1701 14.88C12.2497 14.91 12.3194 14.96 12.3791 15.03C12.4388 15.1 12.4786 15.17 12.5084 15.27C12.5383 15.37 12.5482 15.47 12.5482 15.58V15.58C12.5482 15.69 12.5482 15.79 12.5184 15.89C12.4885 15.99 12.4487 16.07 12.4089 16.14C12.3691 16.21 12.2995 16.27 12.2298 16.31C12.1601 16.35 12.0706 16.37 11.9611 16.37C11.792 16.37 11.6526 16.31 11.5432 16.22C11.4337 16.13 11.374 15.99 11.3541 15.81H10.5182C10.5182 16.01 10.568 16.19 10.6476 16.34C10.7272 16.49 10.8267 16.63 10.966 16.73C11.1053 16.83 11.2546 16.92 11.4238 16.97C11.5929 17.02 11.7721 17.05 11.9512 17.05C12.1999 17.05 12.4089 17 12.588 16.93C12.7672 16.86 12.9164 16.75 13.0358 16.62C13.1552 16.49 13.2448 16.34 13.3045 16.17C13.3642 16 13.3941 15.82 13.3941 15.63C13.3941 15.41 13.3543 15.21 13.3045 15.03C13.2547 14.85 13.1652 14.7 13.0557 14.58C12.9463 14.46 12.807 14.37 12.6477 14.3C12.4885 14.23 12.3094 14.2 12.1004 14.2C12.0308 14.2 11.9611 14.21 11.9014 14.22C11.8716 14.225 11.8417 14.2325 11.8119 14.24C11.782 14.2475 11.7522 14.255 11.7223 14.26C11.6626 14.27 11.6128 14.29 11.573 14.31C11.5564 14.3183 11.5398 14.325 11.5239 14.3313C11.5017 14.3401 11.481 14.3483 11.4636 14.36L11.573 13.44H13.2647V12.73H10.8864Z"})),e=>{let{serviceName:t,className:n}=e;const r={className:l()("jetpack-gutenberg-social-icon",`is-${t}`,n),size:24};switch(t){case"facebook":return(0,o.createElement)(i.Icon,a()({icon:g},r));case"twitter":return(0,o.createElement)(i.Icon,a()({icon:b},r));case"linkedin":return(0,o.createElement)(i.Icon,a()({icon:v},r));case"tumblr":return(0,o.createElement)(i.Icon,a()({icon:k},r));case"google":return(0,o.createElement)(i.Icon,a()({icon:y},r))}return null}),j=(0,o.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,o.createElement)(i.Path,{d:"M0 0h24v24H0z",fill:"none"}),(0,o.createElement)(i.Path,{d:"M7 2v11h3v9l7-12h-4l4-8z",fill:"currentColor"}))},28938:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_active"],!1)}},63729:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_current_user_connected"],!1)}},47077:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(47583);function o(){return(0,r.get)((0,a.Z)(),["jetpack","is_offline_mode"],!1)}},23539:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307),a=n(65736),o=n(55609),i=n(98817),s=n(32673);const __=a.__,{Fill:l,Slot:c}=(0,o.createSlotFill)("JetpackLikesAndSharingPanel");(0,i.registerPlugin)("jetpack-likes-and-sharing-panel",{render:()=>(0,r.createElement)(c,null,(e=>e.length?(0,r.createElement)(s.Z,null,(0,r.createElement)(o.PanelBody,{title:__("Likes and Sharing","jetpack")},e)):null))})},32673:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(69307),a=n(55609),o=n(72067),i=n(98817),s=n(9818),l=n(96483),c=n(47701),u=n.n(c),p=n(51591);const{Fill:d,Slot:m}=(0,a.createSlotFill)("JetpackPluginSidebar");u()((function(){"true"===(0,l.getQueryArg)(window.location.search,"jetpackSidebarIsOpen")&&(0,s.dispatch)("core/interface").enableComplementaryArea("core/edit-post","jetpack-sidebar/jetpack")})),(0,i.registerPlugin)("jetpack-sidebar",{render:()=>(0,r.createElement)(m,null,(e=>e.length?(0,r.createElement)(r.Fragment,null,(0,r.createElement)(o.PluginSidebarMoreMenuItem,{target:"jetpack",icon:(0,r.createElement)(p.IM,null)},"Jetpack"),(0,r.createElement)(o.PluginSidebar,{name:"jetpack",title:"Jetpack",icon:(0,r.createElement)(p.IM,null)},e)):null))})},7616:function(e,t,n){"use strict";var r=n(86989),a=n.n(r),o=n(9818),i=n(65736),s=(n(53961),n(82827),n(4235)),l=n(58014);const __=i.__;function c(){const e=(0,s.Z)();return void 0!==typeof window&&window.location&&e?(0,l.Wp)()||(0,l.Ug)()?`https://wordpress.com/plans/my-plan/${e}`:`${window.location.protocol}//${e.replace("::","/")}/wp-admin/admin.php?page=jetpack#/my-plan`:null}(async()=>{if(void 0!==typeof window&&window.location){if(new URLSearchParams(window.location.search).get("plan_upgraded")){let e=null;e:try{if((0,l.Wp)())break e;const t=await a()({path:"/jetpack/v4/site"});e=JSON.parse(t.data).plan.product_name}finally{const t=c();(0,o.dispatch)("core/notices").createNotice("success",e?(0,i.sprintf)(
+/* translators: %s is the plan name, such as Jetpack Premium. */
+__("Congratulations! Your site is now on the %s plan.","jetpack"),e):__("Congratulations! Your site is now on a paid plan.","jetpack"),{isDismissible:!0,...t&&{actions:[{url:c(),label:__("View my plan","jetpack")}]}})}}}})()},44298:function(e,t,n){"use strict";n.d(t,{Qq:function(){return p},X1:function(){return d},Rl:function(){return m},FK:function(){return f},HD:function(){return g},m3:function(){return b}});var r=n(92819),a=n(96483),o=n(65736),i=n(47583),s=n(58014),l=n(4235),c=n(21409),u=n(28069);const __=o.__;function p(e){let{planSlug:t,plan:n,postId:o,postType:i}=e;const c=(0,r.startsWith)(t,"jetpack_")?t:(0,r.get)(n,["path_slug"]),u=(void 0===i?()=>{const e=new URLSearchParams(window.location.search);return(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/admin.php`,{page:"gutenberg-edit-site",postId:e.get("postId"),postType:e.get("postType"),plan_upgraded:1})}:()=>{const e=["page","post"].includes(i)?"":"edit";return(0,s.Wp)()?(0,a.addQueryArgs)("/"+(0,r.compact)([e,i,(0,l.Z)(),o]).join("/"),{plan_upgraded:1}):(0,a.addQueryArgs)(window.location.protocol+`//${(0,l.Z)().replace("::","/")}/wp-admin/post.php`,{action:"edit",post:o,plan_upgraded:1})})();return(0,s.Ug)()?(0,a.addQueryArgs)(`https://wordpress.com/plans/${(0,l.Z)()}`,{redirect_to:u,customerType:"business"}):c&&(0,a.addQueryArgs)(`https://wordpress.com/checkout/${(0,l.Z)()}/${c}`,{redirect_to:u})}function d(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{available:n,unavailableReason:r}=(0,c.Z)(t);return!n&&"missing_plan"===r}function m(e){if(!e)return!1;const t=/^jetpack\//.test(e)?e.substr(8,e.length):e,{details:n,unavailableReason:r}=(0,c.Z)(t);return(0,u._)(r,n)}const h=[{name:"core/cover",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"video",description:__("Upgrade your plan to use video covers","jetpack")},{name:"core/audio",mediaPlaceholder:!0,mediaReplaceFlow:!0,fileType:"audio",description:__("Upgrade your plan to upload audio","jetpack")}];function f(){return(0,r.get)((0,i.Z)(),"jetpack.enable_upgrade_nudge",!1)}const g=e=>(0,r.map)(h,"name").includes(e),b=e=>(0,r.head)((0,r.filter)(h,(t=>{let{name:n}=t;return n===e})))},99230:function(e,t,n){"use strict";n.d(t,{uM:function(){return i},yX:function(){return s},bu:function(){return l}});var r=n(86989),a=n.n(r),o=n(58014);async function i(){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins"})}catch(e){return Promise.reject(e.message)}}async function s(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:"/jetpack/v4/plugins",method:"POST",data:{slug:e,status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}async function l(e){if((0,o.Wp)())return Promise.reject();try{return await a()({path:`/jetpack/v4/plugins/${e}`,method:"POST",data:{status:"active",source:"block-editor"}})}catch(e){return Promise.reject(e.message)}}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},28069:function(e,t,n){"use strict";n.d(t,{_:function(){return p},Z:function(){return h}});var r=n(65736),a=n(92694),o=n(4981),i=n(1949),s=n(21409),l=n(28137);const __=r.__,c={paid:(0,r._x)("paid","Short label appearing near a block requiring a paid plan","jetpack"),beta:__("beta","jetpack")},u=i.Kc||[];function p(e,t){return"missing_plan"===e&&t.required_plan}function d(e){const t=[];return u.includes(e)&&t.push(c.beta),t}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.length?`${e} (${t.join(", ")})`:e}function h(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const{available:i,details:c,unavailableReason:u}=(0,s.Z)(e),h=p(u,c),f=r?"jetpack/":"";if(!i&&!h)return!1;const g=(0,o.registerBlockType)(f+e,{...t,title:m(t.title,d(e))});return h&&(0,a.addFilter)("editor.BlockListBlock",`${f+e}-with-has-warning-is-interactive-class-names`,(0,l.Z)(f+e)),n.forEach((e=>(0,o.registerBlockType)(f+e.name,e.settings))),g}},52291:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98817),a=n(21409);function o(e,t){const{available:n,unavailableReason:o}=(0,a.Z)(e);return!!n&&(0,r.registerPlugin)(`jetpack-${e}`,t)}},41632:function(e,t,n){"use strict";var r=n(69307),a=n(55609);t.Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:24,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0 0 24 24";return(0,r.createElement)(a.SVG,{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,viewBox:o},(0,r.createElement)(a.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},55637:function(e,t,n){"use strict";var r=n(69307),a=n(52175);t.Z=(e,t,n,o,i)=>{const{isSelected:s}=t,l=t.attributes[e];return(0,r.createElement)("div",{className:s?`jetpack-${e}-block is-selected`:`jetpack-${e}-block`},!s&&""!==l&&o(t),(s||""===l)&&(0,r.createElement)(a.PlainText,{value:l,placeholder:n,"aria-label":n,onChange:i}))}},58014:function(e,t,n){"use strict";n.d(t,{Wp:function(){return i},Ug:function(){return s},M6:function(){return l}});var r=n(92819),a=n(47583);function o(){return"object"==typeof window&&"string"==typeof window._currentSiteType?window._currentSiteType:null}function i(){return"simple"===o()}function s(){return"atomic"===o()}function l(){return(0,r.get)((0,a.Z)(),["jetpack","is_private_site"],!1)}},92919:function(e,t,n){"use strict";var r=n(9818),a=n(65736),o=(n(53961),n(82827));const __=a.__;if(void 0!==typeof window&&window.location){const{query:e}=(0,o.Qc)(window.location.href,!0);e.stripe_connect_success?(0,r.dispatch)("core/notices").createNotice("success",__("Congrats! Your site is now connected to Stripe. You can now start accepting funds!","jetpack")):e.stripe_connect_cancelled&&(0,r.dispatch)("core/notices").createNotice("error",__("You cancelled connecting your site to Stripe.","jetpack"))}},87072:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),a=n(86989),o=n.n(a);function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;return t(!0),new Promise(((n,r)=>{o()({path:`/wpcom/v2/resolve-redirect/?url=${encodeURIComponent(e)}`}).then((a=>{t(!1);const o=a.status?parseInt(a.status,10):null;o&&o>=400?r():n(a.url||e)}),(()=>{t(!1),r()}))}))}},37930:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),a=n(9818),o=n(69307);function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return t&&t(e),n?window.open(e,"_blank"):window.top.location.href=e}function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const[n,s]=(0,o.useState)(!1),{isAutosaveablePost:l,isDirtyPost:c,currentPost:u}=(0,a.useSelect)((e=>{const t=e("core/editor");return{isAutosaveablePost:t.isEditedPostAutosaveable(),isDirtyPost:t.isEditedPostDirty(),currentPost:t.getCurrentPost()}}),[]),p=Object.keys(u).length>0,d=(0,a.useSelect)((e=>!!window.wp.customize||!!e("core/edit-widgets"))),m=(0,a.dispatch)("core/editor").savePost,h=(0,a.useSelect)((e=>e("core").__experimentalGetDirtyEntityRecords())),f=async()=>{for(let e=0;e<h.length;e++)await(0,a.dispatch)("core").saveEditedEntityRecord(h[e].kind,h[e].name,h[e].key)},g=async e=>{e.preventDefault(),p?c&&l&&await m(e):await f(e)},b=async r=>{r.preventDefault(),n||(s(!0),g(r).then((()=>{i(e,t,d)})))};return{autosave:g,autosaveAndRedirect:b,isRedirecting:n}}},18733:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(92819),a=n(9818),o=n(92694),i=(n(13180),n(44298)),s=n(37930);const l="a8c.wpcom-block-editor.openCheckoutModal";function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r.noop;const{checkoutUrl:n,planData:c}=(0,a.useSelect)((t=>{const n=t("core/editor"),r=t("wordpress-com/plans"),{id:a,type:o}=n.getCurrentPost(),s=r&&r.getPlan(e);return{checkoutUrl:(0,i.Qq)({plan:s,planSlug:e,postId:a,postType:o}),planData:s}}),[]),{autosave:u,autosaveAndRedirect:p,isRedirecting:d}=(0,s.Z)(n,t),m=async e=>{if(e.preventDefault(),(0,o.hasAction)(l))return e.preventDefault(),u(e),void(0,o.doAction)(l,{products:[c]});p(e)};return[n,m,d,c]}},28137:function(e,t,n){"use strict";var r=n(29183),a=n.n(r),o=n(69307),i=n(94333);t.Z=e=>(0,i.createHigherOrderComponent)((t=>n=>(0,o.createElement)(t,a()({},n,{className:n.name===e?"has-warning is-interactive":n.className}))),"withHasWarningIsInteractiveClassNames")},15111:function(e,t,n){"use strict";n.d(t,{tT:function(){return r},Wp:function(){return a},Vy:function(){return o},_5:function(){return i}});const r="jetpack/media-source",a="is-playing",o="is-error",i="is-paused"},73617:function(e,t,n){"use strict";var r=n(9818),a=n(46169),o=n(15111);if(void 0!==r.createReduxStore){const e=(0,r.createReduxStore)(o.tT,a.Z);(0,r.register)(e)}else(0,r.registerStore)(o.tT,a.Z)},46169:function(e,t,n){"use strict";var r=n(15111);const a={sources:{},default:null},o={getDefaultMediaSource(e){let t=null;const n=Object.keys(e.sources);if(e.default?t=e.default:n?.length&&(t=e.sources[n[0]].id),t)return e.sources[t]},getMediaPlayerState:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.state,getMediaSourceCurrentTime:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.currentTime,getMediaSourceDuration(e,t){if(!t){return o.getDefaultMediaSource(e)?.duration}return e.sources?.[t]?.duration},getMediaSourceDomReference(e,t){const n=t?e.sources?.[t]:o.getDefaultMediaSource(e);if(!n)return;const r=n?.domId;return r?document.getElementById(r):void 0}},i={reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;const n=t.id||e.default||Object.keys(e.sources)?.[0];switch(t.type){case"REGISTER_MEDIA_SOURCE":return{...e,sources:{...e.sources,[t.id]:{id:t.id,...t.mediaSourceState}}};case"UPDATE_MEDIA_SOURCE_DATA":return{...e,sources:{...e.sources,[t.id]:{...e.sources[t.id],...t.data}}};case"UNREGISTER_MEDIA_SOURCE":{const n=Object.assign({},e);return n.sources[t.id]&&delete n.sources[t.id],t.id===e.default&&(n.default=Object.keys(e.sources)?.[0]),n}case"SET_DEFAULT_MEDIA_SOURCE":return{...e,default:t.id};case"SET_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:t.state}}};case"TOGGLE_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[n]:{...e.sources[n],state:e.sources[n].state===r.Wp?r._5:r.Wp}}};case"SET_MEDIA_PLAYER_CURRENT_TIME":return{...e,sources:{...e.sources,[n]:{...e.sources[n],currentTime:t.currentTime}}}}return e},actions:{registerMediaSource:(e,t)=>({type:"REGISTER_MEDIA_SOURCE",id:e,mediaSourceState:t}),updateMediaSourceData:(e,t)=>({type:"UPDATE_MEDIA_SOURCE_DATA",id:e,data:t}),unregisterMediaSource:e=>({type:"UNREGISTER_MEDIA_SOURCE",id:e}),setDefaultMediaSource:e=>({type:"SET_DEFAULT_MEDIA_SOURCE",id:e}),playMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Wp}),toggleMediaSource:e=>({type:"TOGGLE_MEDIA_PLAYER_STATE",id:e}),pauseMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r._5}),errorMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:r.Vy}),setMediaSourceCurrentTime:(e,t)=>({type:"SET_MEDIA_PLAYER_CURRENT_TIME",id:e,currentTime:t})},selectors:o};t.Z=i},75139:function(e,t,n){"use strict";n.d(t,{M:function(){return r},X:function(){return a}});var r={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 a(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(e,t,n){"use strict";n.d(t,{ZP:function(){return i}});var r=n(52141),a=n(63807),o=n(75139);function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=(0,o.X)(t);if(!i||isNaN(e))return null;var s=(0,r.Z)({},i,n),l=s.decimal,c=s.grouping,u=s.precision,p=s.symbol,d=e<0?"-":"",m=(0,a.Y4)(Math.abs(e),{decimals:u,thousandsSep:c,decPoint:l});return"".concat(d).concat(p).concat(m)}},94481:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99196),a=n(32365);function o(e,t){let n,a,i=[];for(let r=0;r<e.length;r++){const o=e[r];if("string"!==o.type){if(void 0===t[o.value])throw new Error(`Invalid interpolation, missing component node: \`${o.value}\``);if("object"!=typeof t[o.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${o.value}\``);if("componentClose"===o.type)throw new Error(`Missing opening component token: \`${o.value}\``);if("componentOpen"===o.type){n=t[o.value],a=r;break}i.push(t[o.value])}else i.push(o.value)}if(n){const s=function(e,t){const n=t[e];let r=0;for(let a=e+1;a<t.length;a++){const e=t[a];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return a;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(a,e),l=o(e.slice(a+1,s),t),c=(0,r.cloneElement)(n,{},l);if(i.push(c),s<e.length-1){const n=o(e.slice(s+1),t);i=i.concat(n)}}return i=i.filter(Boolean),0===i.length?null:1===i.length?i[0]:(0,r.createElement)(r.Fragment,null,...i)}function i(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const i=(0,a.Z)(t);try{return o(i,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},32365:function(e,t,n){"use strict";function r(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function a(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(t,{Z:function(){return a}})},47236:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(92819),a=n(2571);function o(e){(0,r.assign)(e,a.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},59177:function(e,t,n){"use strict";function r(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}(0,n(47236).Z)(r.prototype),r.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},r.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},r.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(e){}return!t},r.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},r.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t},t.Z=r},39151:function(e,t,n){"use strict";var r=n(59177);t.Z=function(e,t){var n,a=new r.Z;a.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+a.getScreenCenterSpecs(780,700)),a.once("close",(function(){var e={};n&&n.keyring_id&&(e.keyring_id=Number(n.keyring_id),e.id_token=n.id_token,e.user=n.user),t(e)})),a.on("message",(function(e){return n=e}))}},52489:function(e,t,n){"use strict";var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(11268),l=n.n(s),c=n(99196),u=n.n(c),p=n(92819),d=n(13639),m=(n(99889),function(e){return e&&e.replace(/^[^/]+[/]*/,"").replace(/\/.*$/,"")}),h=(0,d.SL)((0,d.hs)(80),(0,d.KB)(80)),f=(0,d.SL)((0,d.hs)(200),(0,d.KB)(200)),g=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.type,r=e.title,a=e.description,o=e.image,i=e.author;return u().createElement("div",{className:"facebook-preview facebook-preview__".concat(n)},u().createElement("div",{className:"facebook-preview__content"},u().createElement("div",{className:"facebook-preview__image"},o&&u().createElement("img",{alt:"Facebook Preview Thumbnail",src:o})),u().createElement("div",{className:"facebook-preview__body"},u().createElement("div",{className:"facebook-preview__url"},(0,p.compact)([m(t),i]).join(" | ")),u().createElement("div",{className:"facebook-preview__title"},h(r||"")),u().createElement("div",{className:"facebook-preview__description"},f((0,d.ju)(a))))))}}]),n}(c.PureComponent);g.propTypes={url:l().string,type:l().string,title:l().string,description:l().string,image:l().string,author:l().string},t.Z=g},13639:function(e,t,n){"use strict";n.d(t,{hs:function(){return a},I$:function(){return o},KB:function(){return i},SL:function(){return s},ju:function(){return l}});var r=n(92819),a=function(e){return function(t){return t.length<=e&&t}},o=function(e,t){return function(n){var r=n.slice(0,t),a=r.lastIndexOf(" ");return a>e&&a<t&&r.slice(0,a).concat("…")}},i=function(e){return function(t){return t.slice(0,e).concat("…")}},s=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return(0,r.find)(t,(function(t){return!1!==t(e)}))(e)}},l=function(e){return e?e.replace(/(<([^>]+)>)/gi,""):""}},80505:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(11268),a=n.n(r),o=n(99196),i=n.n(o),s=n(13639),l=(n(93474),160),c=(0,s.SL)((0,s.hs)(63),(0,s.I$)(23,73),(0,s.KB)(63)),u=(0,s.SL)((0,s.hs)(l),(0,s.I$)(80,170),(0,s.KB)(l));function p(e){var t=e.description,n=e.title,r=e.url;return i().createElement("div",{className:"search-preview"},i().createElement("div",{className:"search-preview__display"},i().createElement("div",{className:"search-preview__url"},function(e){var t=e.replace(/^[^/]+[/]*/,"").split("/").join(" › ");return(0,s.SL)((0,s.hs)(68),(0,s.KB)(68))(t)}(r)," ▾"),i().createElement("div",{className:"search-preview__title"},c(n)),i().createElement("div",{className:"search-preview__description"},u((0,s.ju)(t)))))}p.propTypes={title:a().string,url:a().string,description:a().string},p.defaultProps={title:"",url:"",description:""}},79465:function(e,t,n){"use strict";var r=n(40988),a=n(49058),o=n(45086),i=n(57275),s=n(45814),l=n(15746),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(82943),h=(n(33285),function(e){(0,s.Z)(n,e);var t=(0,l.Z)(n);function n(){return(0,o.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"render",value:function(){var e=this.props.tweets||[{text:"",media:[],card:(0,a.Z)((0,a.Z)({},this.props),{},{type:"large_image_summary"===this.props.type?"summary_large_image":this.props.type}),date:Date.now(),name:"Account Name",profileImage:"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:"@account"}];return d().createElement("div",{className:"twitter-preview"},e&&e.map((function(t,n){return d().createElement(m.t,(0,r.Z)({key:"twitter-preview__tweet-".concat(n),isLast:n+1===e.length},t))})))}}]),n}(p.PureComponent));h.propTypes={tweets:u().array},t.Z=h},82943:function(e,t,n){"use strict";n.d(t,{t:function(){return k}});var r=n(45086),a=n(57275),o=n(45814),i=n(15746),s=n(89105),l=n.n(s),c=n(11268),u=n.n(c),p=n(99196),d=n.n(p),m=n(76292),h=n.n(m),f=n(65736),g=n(55609),b=n(13639);n(33285);var __=f.__,v=(0,b.SL)((0,b.hs)(200),(0,b.KB)(200)),k=function(e){(0,o.Z)(n,e);var t=(0,i.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,a.Z)(n,[{key:"renderSidebar",value:function(e,t){return d().createElement("div",{className:"twitter-preview__sidebar"},d().createElement("div",{className:"twitter-preview__profile-image"},d().createElement("img",{alt:__("Twitter profile image","jetpack"),src:e})),!t&&d().createElement("div",{className:"twitter-preview__connector"}))}},{key:"renderHeader",value:function(e,t,n){return d().createElement("div",{className:"twitter-preview__header"},d().createElement("span",{className:"twitter-preview__name"},e),d().createElement("span",{className:"twitter-preview__screen-name"},t),d().createElement("span",{className:"twitter-preview__date"},h()(n).format("MMM D")))}},{key:"renderText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.url||"",a=e.endsWith(r)?e.substr(0,e.lastIndexOf(r)):e,o=t.reduce((function(e,t){return e.replace(new RegExp("\\("+t+"\\)","g"),'(<a href="'.concat(t,'">').concat(t,"</a>)"))}),(0,b.ju)(a).replace(new RegExp("\\n","g"),"<br/>"));return d().createElement("div",{className:"twitter-preview__text",dangerouslySetInnerHTML:{__html:o}})}},{key:"renderMedia",value:function(e){if(e){var t=e.filter((function(e){return e.type.startsWith("image/")||e.type.startsWith("video/")})).filter((function(e,t,n){return 0===t||!n[0].type.startsWith("video/")&&"image/gif"!==n[0].type&&(!e.type.startsWith("video/")&&"image/gif"!==e.type)})).slice(0,4),n=t.length>0&&t[0].type.startsWith("video/"),r=l()(["twitter-preview__media","twitter-preview__media-children-"+t.length]);if(0!==t.length)return d().createElement("div",{className:r},n&&t.map((function(e,t){return d().createElement("video",{key:"twitter-preview__media-item-".concat(t),controls:!0},d().createElement("source",{src:e.url,type:e.type})," ")})),!n&&t.map((function(e,t){return d().createElement("img",{key:"twitter-preview__media-item-".concat(t),alt:e.alt,src:e.url})})))}}},{key:"renderQuoteTweet",value:function(e){if(e)return d().createElement("div",{className:"twitter-preview__quote-tweet"},d().createElement(g.SandBox,{html:'<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><a href="'.concat(e,'"></a></blockquote>'),scripts:["https://platform.twitter.com/widgets.js"],title:"Embedded tweet",onFocus:this.hideOverlay}),d().createElement("div",{className:"twitter-preview__quote-tweet-overlay"}))}},{key:"renderCard",value:function(e){if(e){var t=e.description,n=e.image,r=e.title,a=e.type,o=e.url,i=l()("twitter-preview__card-".concat(a),{"twitter-preview__card-has-image":!!n});return d().createElement("div",{className:"twitter-preview__card"},d().createElement("div",{className:i},n&&d().createElement("img",{className:"twitter-preview__card-image",src:n,alt:""}),d().createElement("div",{className:"twitter-preview__card-body"},d().createElement("div",{className:"twitter-preview__card-title"},r),d().createElement("div",{className:"twitter-preview__card-description"},v((0,b.ju)(t))),d().createElement("div",{className:"twitter-preview__card-url"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("g",null,d().createElement("path",{d:"M11.96 14.945c-.067 0-.136-.01-.203-.027-1.13-.318-2.097-.986-2.795-1.932-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608c2.322-1.716 5.61-1.224 7.33 1.1.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094c-.333.246-.804.175-1.05-.158-.246-.334-.176-.804.158-1.05l1.48-1.095c.803-.592 1.327-1.463 1.476-2.45.148-.988-.098-1.975-.69-2.778-1.225-1.656-3.572-2.01-5.23-.784l-3.53 2.608c-.802.593-1.326 1.464-1.475 2.45-.15.99.097 1.975.69 2.778.498.675 1.187 1.15 1.992 1.377.4.114.633.528.52.928-.092.33-.394.547-.722.547z"}),d().createElement("path",{d:"M7.27 22.054c-1.61 0-3.197-.735-4.225-2.125-.832-1.127-1.176-2.51-.968-3.894s.943-2.605 2.07-3.438l1.478-1.094c.334-.245.805-.175 1.05.158s.177.804-.157 1.05l-1.48 1.095c-.803.593-1.326 1.464-1.475 2.45-.148.99.097 1.975.69 2.778 1.225 1.657 3.57 2.01 5.23.785l3.528-2.608c1.658-1.225 2.01-3.57.785-5.23-.498-.674-1.187-1.15-1.992-1.376-.4-.113-.633-.527-.52-.927.112-.4.528-.63.926-.522 1.13.318 2.096.986 2.794 1.932 1.717 2.324 1.224 5.612-1.1 7.33l-3.53 2.608c-.933.693-2.023 1.026-3.105 1.026z"}))),function(e){return e.replace(/^[^/]+[/]*(www\.)?/,"").replace(/\/.*$/,"")}(o||"")))))}}},{key:"renderFooter",value:function(){return d().createElement("div",{className:"twitter-preview__footer"},d().createElement("span",{className:"twitter-preview__icon-replies"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828c0 .108.044.286.12.403.142.225.384.347.632.347.138 0 .277-.038.402-.118.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67c0-.414-.335-.75-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"}))),d().createElement("span",{className:"twitter-preview__icon-retweets"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M23.77 15.67c-.292-.293-.767-.293-1.06 0l-2.22 2.22V7.65c0-2.068-1.683-3.75-3.75-3.75h-5.85c-.414 0-.75.336-.75.75s.336.75.75.75h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22c-.293-.293-.768-.293-1.06 0s-.294.768 0 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5c.294-.292.294-.767 0-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22c.148.147.34.22.532.22s.384-.073.53-.22c.293-.293.293-.768 0-1.06l-3.5-3.5c-.293-.294-.768-.294-1.06 0l-3.5 3.5c-.294.292-.294.767 0 1.06s.767.293 1.06 0l2.22-2.22V16.7c0 2.068 1.683 3.75 3.75 3.75h5.85c.414 0 .75-.336.75-.75s-.337-.75-.75-.75z"}))),d().createElement("span",{className:"twitter-preview__icon-likes"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"}))),d().createElement("span",{className:"twitter-preview__icon-share"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M17.53 7.47l-5-5c-.293-.293-.768-.293-1.06 0l-5 5c-.294.293-.294.768 0 1.06s.767.294 1.06 0l3.72-3.72V15c0 .414.336.75.75.75s.75-.336.75-.75V4.81l3.72 3.72c.146.147.338.22.53.22s.384-.072.53-.22c.293-.293.293-.767 0-1.06z"}),d().createElement("path",{d:"M19.708 21.944H4.292C3.028 21.944 2 20.916 2 19.652V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 .437.355.792.792.792h15.416c.437 0 .792-.355.792-.792V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 1.264-1.028 2.292-2.292 2.292z"}))))}},{key:"render",value:function(){var e=this.props,t=e.isLast,n=e.profileImage,r=e.name,a=e.screenName,o=e.date,i=e.text,s=e.media,l=e.tweet,c=e.urls,u=e.card;return d().createElement("div",{className:"twitter-preview__container"},this.renderSidebar(n,t),d().createElement("div",{className:"twitter-preview__main"},this.renderHeader(r,a,o),d().createElement("div",{className:"twitter-preview__content"},this.renderText(i,c,u),this.renderMedia(s),this.renderQuoteTweet(l),this.renderCard(u)),this.renderFooter()))}}]),n}(p.PureComponent);k.propTypes={tweets:u().array,isLast:u().bool,profileImage:u().string,name:u().string,screenName:u().string,date:u().number,text:u().string,media:u().array,tweet:u().string,urls:u().array,card:u().object}},48468:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(83712)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},83712:function(e,t,n){e.exports=function(e){function t(e){let n,a=null;function o(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!o.enabled)return;const i=o,s=Number(new Date),l=s-(n||s);i.diff=l,i.prev=n,i.curr=s,n=s,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(i,t),r.splice(c,1),c--}return e})),t.formatArgs.call(i,r);const u=i.log||t.log;u.apply(i,r)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=r,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===a?t.enabled(e):a,set:e=>{a=e}}),"function"==typeof t.init&&t.init(o),o}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},90922:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,a=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(a=r))})),t.splice(a,0,n)},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=n(31967)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){e.exports=function(e){function t(e){let n,a,o,i=null;function s(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];if(!s.enabled)return;const o=s,i=Number(new Date),l=i-(n||i);o.diff=l,o.prev=n,o.curr=i,n=i,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";c++;const a=t.formatters[n];if("function"==typeof a){const t=r[c];e=a.call(o,t),r.splice(c,1),c--}return e})),t.formatArgs.call(o,r);const u=o.log||t.log;u.apply(o,r)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=r,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(a!==t.namespaces&&(a=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function a(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(a),...t.skips.map(a).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),a=r.length;for(n=0;n<a;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},48735:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.size,n=void 0===t?24:t,a=e.onClick,o=(e.icon,e.className),s=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),l=["gridicon","gridicons-fullscreen",o,!1,!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:l,height:n,width:n,onClick:a},s,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M21 3v6h-2V6.41l-3.29 3.3-1.42-1.42L17.59 5H15V3zM3 3v6h2V6.41l3.29 3.3 1.42-1.42L6.41 5H9V3zm18 18v-6h-2v2.59l-3.29-3.29-1.41 1.41L17.59 19H15v2zM9 21v-2H6.41l3.29-3.29-1.41-1.42L5 17.59V15H3v6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},20651:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-notice-outline",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},35381:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t,n=e.size,a=void 0===n?24:n,o=e.onClick,s=(e.icon,e.className),l=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),c=["gridicon","gridicons-star",s,(t=a,!(0!=t%18)&&"needs-offset"),!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:c,height:a,width:a,onClick:o},l,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.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"})))};var a,o=n(99196),i=(a=o)&&a.__esModule?a:{default:a};e.exports=t.default},7104:function(e,t,n){var r;e=n.nmd(e),function(a){t&&t.nodeType,e&&e.nodeType;var o="object"==typeof window&&window;o.global!==o&&o.window!==o&&o.self;var i,s=2147483647,l=36,c=/^xn--/,u=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},m=Math.floor,h=String.fromCharCode;function f(e){throw RangeError(d[e])}function g(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function b(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+g((e=e.replace(p,".")).split("."),t).join(".")}function v(e){for(var t,n,r=[],a=0,o=e.length;a<o;)(t=e.charCodeAt(a++))>=55296&&t<=56319&&a<o?56320==(64512&(n=e.charCodeAt(a++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),a--):r.push(t);return r}function k(e){return g(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function E(e,t,n){var r=0;for(e=n?m(e/700):e>>1,e+=m(e/t);e>455;r+=l)e=m(e/35);return m(r+36*e/(e+38))}function w(e){var t,n,r,a,o,i,c,u,p,d,h,g=[],b=e.length,v=0,y=128,w=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&f("not-basic"),g.push(e.charCodeAt(r));for(a=n>0?n+1:0;a<b;){for(o=v,i=1,c=l;a>=b&&f("invalid-input"),((u=(h=e.charCodeAt(a++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:l)>=l||u>m((s-v)/i))&&f("overflow"),v+=u*i,!(u<(p=c<=w?1:c>=w+26?26:c-w));c+=l)i>m(s/(d=l-p))&&f("overflow"),i*=d;w=E(v-o,t=g.length+1,0==o),m(v/t)>s-y&&f("overflow"),y+=m(v/t),v%=t,g.splice(v++,0,y)}return k(g)}function _(e){var t,n,r,a,o,i,c,u,p,d,g,b,k,w,_,C=[];for(b=(e=v(e)).length,t=128,n=0,o=72,i=0;i<b;++i)(g=e[i])<128&&C.push(h(g));for(r=a=C.length,a&&C.push("-");r<b;){for(c=s,i=0;i<b;++i)(g=e[i])>=t&&g<c&&(c=g);for(c-t>m((s-n)/(k=r+1))&&f("overflow"),n+=(c-t)*k,t=c,i=0;i<b;++i)if((g=e[i])<t&&++n>s&&f("overflow"),g==t){for(u=n,p=l;!(u<(d=p<=o?1:p>=o+26?26:p-o));p+=l)_=u-d,w=l-d,C.push(h(y(d+_%w,0))),u=m(_/w);C.push(h(y(u,0))),o=E(n,k,r==a),n=0,++r}++n,++t}return C.join("")}i={version:"1.3.2",ucs2:{decode:v,encode:k},decode:w,encode:_,toASCII:function(e){return b(e,(function(e){return u.test(e)?"xn--"+_(e):e}))},toUnicode:function(e){return b(e,(function(e){return c.test(e)?w(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},15661:function(e,t,n){"use strict";n.r(t),n.d(t,{ucs2decode:function(){return m},ucs2encode:function(){return h},decode:function(){return b},encode:function(){return v},toASCII:function(){return y},toUnicode:function(){return k}});const r=2147483647,a=36,o=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function p(e){throw new RangeError(l[e])}function d(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const a=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(s,".")).split("."),t).join(".");return r+a}function m(e){const t=[];let n=0;const r=e.length;for(;n<r;){const a=e.charCodeAt(n++);if(a>=55296&&a<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&a)<<10)+(1023&r)+65536):(t.push(a),n--)}else t.push(a)}return t}const h=e=>String.fromCodePoint(...e),f=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},g=function(e,t,n){let r=0;for(e=n?c(e/700):e>>1,e+=c(e/t);e>455;r+=a)e=c(e/35);return c(r+36*e/(e+38))},b=function(e){const t=[],n=e.length;let o=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let n=0;n<l;++n)e.charCodeAt(n)>=128&&p("not-basic"),t.push(e.charCodeAt(n));for(let d=l>0?l+1:0;d<n;){let l=o;for(let t=1,i=a;;i+=a){d>=n&&p("invalid-input");const l=(u=e.charCodeAt(d++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:a;(l>=a||l>c((r-o)/t))&&p("overflow"),o+=l*t;const m=i<=s?1:i>=s+26?26:i-s;if(l<m)break;const h=a-m;t>c(r/h)&&p("overflow"),t*=h}const m=t.length+1;s=g(o-l,m,0==l),c(o/m)>r-i&&p("overflow"),i+=c(o/m),o%=m,t.splice(o++,0,i)}var u;return String.fromCodePoint(...t)},v=function(e){const t=[];let n=(e=m(e)).length,o=128,i=0,s=72;for(const n of e)n<128&&t.push(u(n));let l=t.length,d=l;for(l&&t.push("-");d<n;){let n=r;for(const t of e)t>=o&&t<n&&(n=t);const m=d+1;n-o>c((r-i)/m)&&p("overflow"),i+=(n-o)*m,o=n;for(const n of e)if(n<o&&++i>r&&p("overflow"),n==o){let e=i;for(let n=a;;n+=a){const r=n<=s?1:n>=s+26?26:n-s;if(e<r)break;const o=e-r,i=a-r;t.push(u(f(r+o%i,0))),e=c(o/i)}t.push(u(f(e,0))),s=g(i,m,d==l),i=0,++d}++i,++o}return t.join("")},k=function(e){return d(e,(function(e){return o.test(e)?b(e.slice(4).toLowerCase()):e}))},y=function(e){return d(e,(function(e){return i.test(e)?"xn--"+v(e):e}))},E={version:"2.1.0",ucs2:{decode:m,encode:h},decode:b,encode:v,toASCII:y,toUnicode:k};t.default=E},5157:function(e,t,n){"use strict";const r=n(55778),a=n(97115),o=n(63851),i=n(95946);function s(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function l(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}function c(e,t){return t.decode?a(e):e}function u(e){return Array.isArray(e)?e.sort():"object"==typeof e?u(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function p(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=p(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function m(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const a="string"==typeof n&&n.includes(e.arrayFormatSeparator),o="string"==typeof n&&!a&&c(n,e).includes(e.arrayFormatSeparator);n=o?c(n,e):n;const i=a||o?n.split(e.arrayFormatSeparator).map((t=>c(t,e))):null===n?n:c(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const a=/(\[\])$/.test(t);if(t=t.replace(/\[\]$/,""),!a)return void(r[t]=n?c(n,e):n);const o=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>c(t,e)));void 0!==r[t]?r[t]=[].concat(r[t],o):r[t]=o};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const a of e.split("&")){if(""===a)continue;let[e,i]=o(t.decode?a.replace(/\+/g," "):a,"=");i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:c(i,t),n(c(e,t),i,r)}for(const e of Object.keys(r)){const n=r[e];if("object"==typeof n&&null!==n)for(const e of Object.keys(n))n[e]=m(n[e],t);else r[e]=m(n,t)}return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=u(n):e[t]=n,e}),Object.create(null))}t.extract=d,t.parse=h,t.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const n=n=>t.skipNull&&null==e[n]||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const a=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[",a,"]"].join("")]:[...n,[l(t,e),"[",l(a,e),"]=",l(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[l(t,e),"[]"].join("")]:[...n,[l(t,e),"[]=",l(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,a)=>void 0===a||e.skipNull&&null===a||e.skipEmptyString&&""===a?r:(a=null===a?"":a,0===r.length?[[l(n,e),t,l(a,e)].join("")]:[[r,l(a,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,l(t,e)]:[...n,[l(t,e),"=",l(r,e)].join("")]}}(t),a={};for(const t of Object.keys(e))n(t)||(a[t]=e[t]);const o=Object.keys(a);return!1!==t.sort&&o.sort(t.sort),o.map((n=>{const a=e[n];return void 0===a?"":null===a?l(n,t):Array.isArray(a)?0===a.length&&"bracket-separator"===t.arrayFormat?l(n,t)+"[]":a.reduce(r(n),[]).join("&"):l(n,t)+"="+l(a,t)})).filter((e=>e.length>0)).join("&")},t.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[n,r]=o(e,"#");return Object.assign({url:n.split("?")[0]||"",query:h(d(e),t)},t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:c(r,t)}:{})},t.stringifyUrl=(e,n)=>{n=Object.assign({encode:!0,strict:!0},n);const r=p(e.url).split("?")[0]||"",a=t.extract(e.url),o=t.parse(a,{sort:!1}),i=Object.assign(o,e.query);let s=t.stringify(i,n);s&&(s=`?${s}`);let c=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);return e.fragmentIdentifier&&(c=`#${l(e.fragmentIdentifier,n)}`),`${r}${s}${c}`},t.pick=(e,n,r)=>{r=Object.assign({parseFragmentIdentifier:!0},r);const{url:a,query:o,fragmentIdentifier:s}=t.parseUrl(e,r);return t.stringifyUrl({url:a,query:i(o,n),fragmentIdentifier:s},r)},t.exclude=(e,n,r)=>{const a=Array.isArray(n)?e=>!n.includes(e):(e,t)=>!n(e,t);return t.pick(e,a,r)}},63851:function(e){"use strict";e.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const n=e.indexOf(t);return-1===n?[e]:[e.slice(0,n),e.slice(n+t.length)]}},55778:function(e){"use strict";e.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},84080:function(e){e.exports=/[\0-\x1F\x7F-\x9F]/},75423:function(e){e.exports=/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},87696:function(e){e.exports=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4E\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/},76202:function(e){e.exports=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/},39126:function(e,t,n){"use strict";t.Any=n(26285),t.Cc=n(84080),t.Cf=n(75423),t.P=n(87696),t.Z=n(76202)},26285:function(e){e.exports=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},86841:function(){!function(e){var t=function(){try{return!!Symbol.iterator}catch(e){return!1}}(),n=function(e){var n={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return t&&(n[Symbol.iterator]=function(){return n}),n},r=function(e){return encodeURIComponent(e).replace(/%20/g,"+")},a=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};(function(){try{var t=e.URLSearchParams;return"a=1"===new t("?a=1").toString()&&"function"==typeof t.prototype.set&&"function"==typeof t.prototype.entries}catch(e){return!1}})()||function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var t=typeof e;if("undefined"===t);else if("string"===t)""!==e&&this._fromString(e);else if(e instanceof a){var n=this;e.forEach((function(e,t){n.append(t,e)}))}else{if(null===e||"object"!==t)throw new TypeError("Unsupported input's type for URLSearchParams");if("[object Array]"===Object.prototype.toString.call(e))for(var r=0;r<e.length;r++){var o=e[r];if("[object Array]"!==Object.prototype.toString.call(o)&&2===o.length)throw new TypeError("Expected [string, any] as entry at index "+r+" of URLSearchParams's input");this.append(o[0],o[1])}else for(var i in e)e.hasOwnProperty(i)&&this.append(i,e[i])}},o=a.prototype;o.append=function(e,t){e in this._entries?this._entries[e].push(String(t)):this._entries[e]=[String(t)]},o.delete=function(e){delete this._entries[e]},o.get=function(e){return e in this._entries?this._entries[e][0]:null},o.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]},o.has=function(e){return e in this._entries},o.set=function(e,t){this._entries[e]=[String(t)]},o.forEach=function(e,t){var n;for(var r in this._entries)if(this._entries.hasOwnProperty(r)){n=this._entries[r];for(var a=0;a<n.length;a++)e.call(t,n[a],r,this)}},o.keys=function(){var e=[];return this.forEach((function(t,n){e.push(n)})),n(e)},o.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),n(e)},o.entries=function(){var e=[];return this.forEach((function(t,n){e.push([n,t])})),n(e)},t&&(o[Symbol.iterator]=o.entries),o.toString=function(){var e=[];return this.forEach((function(t,n){e.push(r(n)+"="+r(t))})),e.join("&")},e.URLSearchParams=a}();var o=e.URLSearchParams.prototype;"function"!=typeof o.sort&&(o.sort=function(){var e=this,t=[];this.forEach((function(n,r){t.push([r,n]),e._entries||e.delete(r)})),t.sort((function(e,t){return e[0]<t[0]?-1:e[0]>t[0]?1:0})),e._entries&&(e._entries={});for(var n=0;n<t.length;n++)this.append(t[n][0],t[n][1])}),"function"!=typeof o._fromString&&Object.defineProperty(o,"_fromString",{enumerable:!1,configurable:!1,writable:!1,value:function(e){if(this._entries)this._entries={};else{var t=[];this.forEach((function(e,n){t.push(n)}));for(var n=0;n<t.length;n++)this.delete(t[n])}var r,o=(e=e.replace(/^\?/,"")).split("&");for(n=0;n<o.length;n++)r=o[n].split("="),this.append(a(r[0]),r.length>1?a(r[1]):"")}})}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this),function(e){if(function(){try{var t=new e.URL("b","http://a");return t.pathname="c d","http://a/c%20d"===t.href&&t.searchParams}catch(e){return!1}}()||function(){var t=e.URL,n=function(t,n){"string"!=typeof t&&(t=String(t)),n&&"string"!=typeof n&&(n=String(n));var r,a=document;if(n&&(void 0===e.location||n!==e.location.href)){n=n.toLowerCase(),(r=(a=document.implementation.createHTMLDocument("")).createElement("base")).href=n,a.head.appendChild(r);try{if(0!==r.href.indexOf(n))throw new Error(r.href)}catch(e){throw new Error("URL unable to set base "+n+" due to "+e)}}var o=a.createElement("a");o.href=t,r&&(a.body.appendChild(o),o.href=o.href);var i=a.createElement("input");if(i.type="url",i.value=t,":"===o.protocol||!/:/.test(o.href)||!i.checkValidity()&&!n)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:o});var s=new e.URLSearchParams(this.search),l=!0,c=!0,u=this;["append","delete","set"].forEach((function(e){var t=s[e];s[e]=function(){t.apply(s,arguments),l&&(c=!1,u.search=s.toString(),c=!0)}})),Object.defineProperty(this,"searchParams",{value:s,enumerable:!0});var p=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==p&&(p=this.search,c&&(l=!1,this.searchParams._fromString(this.search),l=!0))}})},r=n.prototype;["hash","host","hostname","port","protocol"].forEach((function(e){!function(e){Object.defineProperty(r,e,{get:function(){return this._anchorElement[e]},set:function(t){this._anchorElement[e]=t},enumerable:!0})}(e)})),Object.defineProperty(r,"search",{get:function(){return this._anchorElement.search},set:function(e){this._anchorElement.search=e,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:!0},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],t=this._anchorElement.port!=e&&""!==this._anchorElement.port;return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(e){},enumerable:!0},username:{get:function(){return""},set:function(e){},enumerable:!0}}),n.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)},n.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)},e.URL=n}(),void 0!==e.location&&!("origin"in e.location)){var t=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:t,enumerable:!0})}catch(n){setInterval((function(){e.location.origin=t()}),100)}}}("undefined"!=typeof window||"undefined"!=typeof window?window:"undefined"!=typeof self?self:this)},82827:function(e,t,n){"use strict";var r=n(7104),a=n(68070);function o(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.Qc=k,t.WU=function(e){a.isString(e)&&(e=k(e));return e instanceof o?e.format():o.prototype.format.call(e)};var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],m=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},b={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},v=n(76250);function k(e,t,n){if(e&&a.isObject(e)&&e instanceof o)return e;var r=new o;return r.parse(e,t,n),r}o.prototype.parse=function(e,t,n){if(!a.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var o=e.indexOf("?"),s=-1!==o&&o<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var k=e=c.join(s);if(k=k.trim(),!n&&1===e.split("#").length){var y=l.exec(k);if(y)return this.path=k,this.href=k,this.pathname=y[1],y[2]?(this.search=y[2],this.query=t?v.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var E=i.exec(k);if(E){var w=(E=E[0]).toLowerCase();this.protocol=w,k=k.substr(E.length)}if(n||E||k.match(/^\/\/[^@\/]+@[^@\/]+/)){var _="//"===k.substr(0,2);!_||E&&g[E]||(k=k.substr(2),this.slashes=!0)}if(!g[E]&&(_||E&&!b[E])){for(var C,j,S=-1,x=0;x<d.length;x++){-1!==(T=k.indexOf(d[x]))&&(-1===S||T<S)&&(S=T)}-1!==(j=-1===S?k.lastIndexOf("@"):k.lastIndexOf("@",S))&&(C=k.slice(0,j),k=k.slice(j+1),this.auth=decodeURIComponent(C)),S=-1;for(x=0;x<p.length;x++){var T;-1!==(T=k.indexOf(p[x]))&&(-1===S||T<S)&&(S=T)}-1===S&&(S=k.length),this.host=k.slice(0,S),k=k.slice(S),this.parseHost(),this.hostname=this.hostname||"";var N="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!N)for(var A=this.hostname.split(/\./),P=(x=0,A.length);x<P;x++){var I=A[x];if(I&&!I.match(m)){for(var M="",R=0,L=I.length;R<L;R++)I.charCodeAt(R)>127?M+="x":M+=I[R];if(!M.match(m)){var B=A.slice(0,x),Z=A.slice(x+1),F=I.match(h);F&&(B.push(F[1]),Z.unshift(F[2])),Z.length&&(k="/"+Z.join(".")+k),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),N||(this.hostname=r.toASCII(this.hostname));var D=this.port?":"+this.port:"",O=this.hostname||"";this.host=O+D,this.href+=this.host,N&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==k[0]&&(k="/"+k))}if(!f[w])for(x=0,P=u.length;x<P;x++){var z=u[x];if(-1!==k.indexOf(z)){var U=encodeURIComponent(z);U===z&&(U=escape(z)),k=k.split(z).join(U)}}var $=k.indexOf("#");-1!==$&&(this.hash=k.substr($),k=k.slice(0,$));var V=k.indexOf("?");if(-1!==V?(this.search=k.substr(V),this.query=k.substr(V+1),t&&(this.query=v.parse(this.query)),k=k.slice(0,V)):t&&(this.search="",this.query={}),k&&(this.pathname=k),b[w]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){D=this.pathname||"";var G=this.search||"";this.path=D+G}return this.href=this.format(),this},o.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",o=!1,i="";this.host?o=e+this.host:this.hostname&&(o=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&a.isObject(this.query)&&Object.keys(this.query).length&&(i=v.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||b[t])&&!1!==o?(o="//"+(o||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):o||(o=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+o+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},o.prototype.resolve=function(e){return this.resolveObject(k(e,!1,!0)).format()},o.prototype.resolveObject=function(e){if(a.isString(e)){var t=new o;t.parse(e,!1,!0),e=t}for(var n=new o,r=Object.keys(this),i=0;i<r.length;i++){var s=r[i];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(n[u]=e[u])}return b[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!b[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var m=p[d];n[m]=e[m]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var h=(e.pathname||"").split("/");h.length&&!(e.host=h.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==h[0]&&h.unshift(""),h.length<2&&h.unshift(""),n.pathname=h.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var f=n.pathname||"",v=n.search||"";n.path=f+v}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var k=n.pathname&&"/"===n.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),E=y||k||n.host&&e.pathname,w=E,_=n.pathname&&n.pathname.split("/")||[],C=(h=e.pathname&&e.pathname.split("/")||[],n.protocol&&!b[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===_[0]?_[0]=n.host:_.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===h[0]?h[0]=e.host:h.unshift(e.host)),e.host=null),E=E&&(""===h[0]||""===_[0])),y)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,_=h;else if(h.length)_||(_=[]),_.pop(),_=_.concat(h),n.search=e.search,n.query=e.query;else if(!a.isNullOrUndefined(e.search)){if(C)n.hostname=n.host=_.shift(),(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift());return n.search=e.search,n.query=e.query,a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!_.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var j=_.slice(-1)[0],S=(n.host||e.host||_.length>1)&&("."===j||".."===j)||""===j,x=0,T=_.length;T>=0;T--)"."===(j=_[T])?_.splice(T,1):".."===j?(_.splice(T,1),x++):x&&(_.splice(T,1),x--);if(!E&&!w)for(;x--;x)_.unshift("..");!E||""===_[0]||_[0]&&"/"===_[0].charAt(0)||_.unshift(""),S&&"/"!==_.join("/").substr(-1)&&_.push("");var N,A=""===_[0]||_[0]&&"/"===_[0].charAt(0);C&&(n.hostname=n.host=A?"":_.length?_.shift():"",(N=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=N.shift(),n.host=n.hostname=N.shift()));return(E=E||n.host&&_.length)&&!A&&_.unshift(""),_.length?n.pathname=_.join("/"):(n.pathname=null,n.path=null),a.isNull(n.pathname)&&a.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},o.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},68070:function(e){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},11043:function(e,t,n){"use strict";var r=n(1625),a=n(99196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,o=a.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=o[0];var i=o[1];return o=e.value,e.getCurrentValue===t&&e.subscribe===n||(o=t(),i({getCurrentValue:t,subscribe:n,value:o})),a.useDebugValue(o),a.useEffect((function(){function e(){if(!a){var e=t();i((function(a){return a.getCurrentValue!==t||a.subscribe!==n||a.value===e?a:r({},a,{value:e})}))}}var a=!1,o=n(e);return e(),function(){a=!0,o()}}),[t,n]),o}},20036:function(e,t,n){"use strict";e.exports=n(11043)},61521:function(e){"use strict";e.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}},22199:function(e,t,n){"use strict";function r(e){var t=this;if(t instanceof r||(t=new r),t.tail=null,t.head=null,t.length=0,e&&"function"==typeof e.forEach)e.forEach((function(e){t.push(e)}));else if(arguments.length>0)for(var n=0,a=arguments.length;n<a;n++)t.push(arguments[n]);return t}function a(e,t,n){var r=t===e.head?new s(n,null,t,e):new s(n,t,t.next,e);return null===r.next&&(e.tail=r),null===r.prev&&(e.head=r),e.length++,r}function o(e,t){e.tail=new s(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function i(e,t){e.head=new s(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function s(e,t,n,r){if(!(this instanceof s))return new s(e,t,n,r);this.list=r,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,n?(n.prev=this,this.next=n):this.next=null}e.exports=r,r.Node=s,r.create=r,r.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,n=e.prev;return t&&(t.prev=n),n&&(n.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=n),e.list.length--,e.next=null,e.prev=null,e.list=null,t},r.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},r.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},r.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)o(this,arguments[e]);return this.length},r.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)i(this,arguments[e]);return this.length},r.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},r.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},r.prototype.forEach=function(e,t){t=t||this;for(var n=this.head,r=0;null!==n;r++)e.call(t,n.value,r,this),n=n.next},r.prototype.forEachReverse=function(e,t){t=t||this;for(var n=this.tail,r=this.length-1;null!==n;r--)e.call(t,n.value,r,this),n=n.prev},r.prototype.get=function(e){for(var t=0,n=this.head;null!==n&&t<e;t++)n=n.next;if(t===e&&null!==n)return n.value},r.prototype.getReverse=function(e){for(var t=0,n=this.tail;null!==n&&t<e;t++)n=n.prev;if(t===e&&null!==n)return n.value},r.prototype.map=function(e,t){t=t||this;for(var n=new r,a=this.head;null!==a;)n.push(e.call(t,a.value,this)),a=a.next;return n},r.prototype.mapReverse=function(e,t){t=t||this;for(var n=new r,a=this.tail;null!==a;)n.push(e.call(t,a.value,this)),a=a.prev;return n},r.prototype.reduce=function(e,t){var n,r=this.head;if(arguments.length>1)n=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");r=this.head.next,n=this.head.value}for(var a=0;null!==r;a++)n=e(n,r.value,a),r=r.next;return n},r.prototype.reduceReverse=function(e,t){var n,r=this.tail;if(arguments.length>1)n=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");r=this.tail.prev,n=this.tail.value}for(var a=this.length-1;null!==r;a--)n=e(n,r.value,a),r=r.prev;return n},r.prototype.toArray=function(){for(var e=new Array(this.length),t=0,n=this.head;null!==n;t++)e[t]=n.value,n=n.next;return e},r.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,n=this.tail;null!==n;t++)e[t]=n.value,n=n.prev;return e},r.prototype.slice=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=0,o=this.head;null!==o&&a<e;a++)o=o.next;for(;null!==o&&a<t;a++,o=o.next)n.push(o.value);return n},r.prototype.sliceReverse=function(e,t){(t=t||this.length)<0&&(t+=this.length),(e=e||0)<0&&(e+=this.length);var n=new r;if(t<e||t<0)return n;e<0&&(e=0),t>this.length&&(t=this.length);for(var a=this.length,o=this.tail;null!==o&&a>t;a--)o=o.prev;for(;null!==o&&a>e;a--,o=o.prev)n.push(o.value);return n},r.prototype.splice=function(e,t,...n){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var r=0,o=this.head;null!==o&&r<e;r++)o=o.next;var i=[];for(r=0;o&&r<t;r++)i.push(o.value),o=this.removeNode(o);null===o&&(o=this.tail),o!==this.head&&o!==this.tail&&(o=o.prev);for(r=0;r<n.length;r++)o=a(this,o,n[r]);return i},r.prototype.reverse=function(){for(var e=this.head,t=this.tail,n=e;null!==n;n=n.prev){var r=n.prev;n.prev=n.next,n.next=r}return this.head=t,this.tail=e,this};try{n(61521)(r)}catch(e){}},8964:function(e,t,n){"use strict";e.exports=n.p+"images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png"},90767:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-after-d6db862c442c24ad1c63.png"},58632:function(e,t,n){"use strict";e.exports=n.p+"images/img-example-before-4592b4656108c1429614.png"},96406:function(e,t,n){"use strict";e.exports=n.p+"images/map-preview-97bda80ebb6981457630.jpg"},45107:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg"},56932:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_default-b53ccdf170e5ac873ff0.jpg"},65765:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_satellite-cc50c608e244f90d18dc.jpg"},34140:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_terrain-ac291441b3461820747d.jpg"},23879:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-2x-3d5d36867a0f3728cc3a.png"},22323:function(e,t,n){"use strict";e.exports=n.p+"images/paypal-button-5ecd2d5421d74f39e027.png"},60206:function(e,t,n){"use strict";e.exports=n.p+"images/simple-payments_example-1-0273eeccd8d120df4984.jpg"},65784:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-1-07a3f164621235df0419.jpg"},6425:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-2-2ee401e47066229bdac5.jpg"},85983:function(e,t,n){"use strict";e.exports=n.p+"images/slideshow_example-3-0682afca66c485f17ff6.jpg"},37447:function(e,t,n){"use strict";e.exports=n.p+"images/upgrade-illustration-5b3059f7101ac37f4339.svg"},15915:function(e,t,n){"use strict";e.exports=n.p+"images/story_example-1-716db2e4f5a074d302f7.png"},96606:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg"},85472:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg"},79009:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-3-07a3f164621235df0419.jpg"},10742:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg"},52642:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg"},41145:function(e,t,n){"use strict";e.exports=n.p+"images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg"},41194:function(e,t,n){"use strict";e.exports=n.p+"images/videopress-block-example-image-da9ef73787adca8896f2.jpg"},80405:function(e,t,n){"use strict";e.exports=n.p+"images/example_160x600-ccbc594f54431dafa70d.png"},72473:function(e,t,n){"use strict";e.exports=n.p+"images/example_300x250-5b93e8174f02d48c40b7.png"},38511:function(e,t,n){"use strict";e.exports=n.p+"images/example_320x50-7110edf045141630a222.png"},52203:function(e,t,n){"use strict";e.exports=n.p+"images/example_728x90-d9de384932330b92e1c3.png"},99196:function(e){"use strict";e.exports=window.React},92819:function(e){"use strict";e.exports=window.lodash},76292:function(e){"use strict";e.exports=window.moment},25158:function(e){"use strict";e.exports=window.wp.a11y},42998:function(e){"use strict";e.exports=window.wp.annotations},86989:function(e){"use strict";e.exports=window.wp.apiFetch},11313:function(e){"use strict";e.exports=window.wp.blob},52175:function(e){"use strict";e.exports=window.wp.blockEditor},4981:function(e){"use strict";e.exports=window.wp.blocks},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69771:function(e){"use strict";e.exports=window.wp.date},47701:function(e){"use strict";e.exports=window.wp.domReady},72067:function(e){"use strict";e.exports=window.wp.editPost},12238:function(e){"use strict";e.exports=window.wp.editor},69307:function(e){"use strict";e.exports=window.wp.element},81975:function(e){"use strict";e.exports=window.wp.escapeHtml},92694:function(e){"use strict";e.exports=window.wp.hooks},65736:function(e){"use strict";e.exports=window.wp.i18n},39630:function(e){"use strict";e.exports=window.wp.keycodes},53961:function(e){"use strict";e.exports=window.wp.notices},98817:function(e){"use strict";e.exports=window.wp.plugins},70444:function(e){"use strict";e.exports=window.wp.primitives},29512:function(e){"use strict";e.exports=window.wp.tokenList},96483:function(e){"use strict";e.exports=window.wp.url},90162:function(e){"use strict";e.exports=window.wp.viewport},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},45086:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},57275:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},15746:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(6336),a=n(77363),o=n(2102);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},12472:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},6336:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},45814:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(99112);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},77363:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},49058:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(12472);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},2102:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(31344),a=n(25303);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},31344:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},8134:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},14316:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97024:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e){if(Array.isArray(e))return(0,r.Z)(e)}},55200:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},71687:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},93772:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function a(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return a}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(72406),a=n(58189),o=n(34621);function i(e){var t=(0,a.Z)();return function(){var n,a=(0,r.Z)(e);if(t){var i=(0,r.Z)(this).constructor;n=Reflect.construct(a,arguments,i)}else n=a.apply(this,arguments);return(0,o.Z)(this,n)}}},98086:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},95672:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},72406:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},82104:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(43051);function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},58189:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},40613:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},20120:function(e,t,n){"use strict";function r(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,a,o=[],_n=!0,i=!1;try{for(n=n.call(e);!(_n=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);_n=!0);}catch(e){i=!0,a=e}finally{try{_n||null==n.return||n.return()}finally{if(i)throw a}}return o}}n.d(t,{Z:function(){return r}})},41722:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},56083:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},52141:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(98086);function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&a.push.apply(a,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach((function(t){(0,r.Z)(e,t,n[t])}))}return e}},59591:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(98086);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},34621:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(29504),a=n(55200);function o(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,a.Z)(e)}},43051:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},50572:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(14316),a=n(20120),o=n(33611),i=n(41722);function s(e,t){return(0,r.Z)(e)||(0,a.Z)(e,t)||(0,o.Z)(e,t)||(0,i.Z)()}},59128:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(97024),a=n(40613),o=n(33611),i=n(56083);function s(e){return(0,r.Z)(e)||(0,a.Z)(e)||(0,o.Z)(e)||(0,i.Z)()}},29504:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},33611:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(8134);function a(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},27655:function(e){"use strict";e.exports=JSON.parse('{"O":{"White":"#fff","Black":"#000","Gray":"#646970","Gray 0":"#f6f7f7","Gray 5":"#dcdcde","Gray 10":"#c3c4c7","Gray 20":"#a7aaad","Gray 30":"#8c8f94","Gray 40":"#787c82","Gray 50":"#646970","Gray 60":"#50575e","Gray 70":"#3c434a","Gray 80":"#2c3338","Gray 90":"#1d2327","Gray 100":"#101517","Blue":"#0675c4","Blue 0":"#e9f0f5","Blue 5":"#bbe0fa","Blue 10":"#91caf2","Blue 20":"#68b3e8","Blue 30":"#399ce3","Blue 40":"#1689db","Blue 50":"#0675c4","Blue 60":"#055d9c","Blue 70":"#044b7a","Blue 80":"#02395c","Blue 90":"#01283d","Blue 100":"#001621","Purple":"#984a9c","Purple 0":"#f2e9ed","Purple 5":"#ebcee0","Purple 10":"#e3afd5","Purple 20":"#d48fc8","Purple 30":"#c475bd","Purple 40":"#b35eb1","Purple 50":"#984a9c","Purple 60":"#7c3982","Purple 70":"#662c6e","Purple 80":"#4d2054","Purple 90":"#35163b","Purple 100":"#1e0c21","Pink":"#c9356e","Pink 0":"#f5e9ed","Pink 5":"#f2ceda","Pink 10":"#f7a8c3","Pink 20":"#f283aa","Pink 30":"#eb6594","Pink 40":"#e34c84","Pink 50":"#c9356e","Pink 60":"#ab235a","Pink 70":"#8c1749","Pink 80":"#700f3b","Pink 90":"#4f092a","Pink 100":"#260415","Red":"#d63638","Red 0":"#f7ebec","Red 5":"#facfd2","Red 10":"#ffabaf","Red 20":"#ff8085","Red 30":"#f86368","Red 40":"#e65054","Red 50":"#d63638","Red 60":"#b32d2e","Red 70":"#8a2424","Red 80":"#691c1c","Red 90":"#451313","Red 100":"#240a0a","Orange":"#b26200","Orange 0":"#f5ece6","Orange 5":"#f7dcc6","Orange 10":"#ffbf86","Orange 20":"#faa754","Orange 30":"#e68b28","Orange 40":"#d67709","Orange 50":"#b26200","Orange 60":"#8a4d00","Orange 70":"#704000","Orange 80":"#543100","Orange 90":"#361f00","Orange 100":"#1f1200","Yellow":"#9d6e00","Yellow 0":"#f5f1e1","Yellow 5":"#f5e6b3","Yellow 10":"#f2d76b","Yellow 20":"#f0c930","Yellow 30":"#deb100","Yellow 40":"#c08c00","Yellow 50":"#9d6e00","Yellow 60":"#7d5600","Yellow 70":"#674600","Yellow 80":"#4f3500","Yellow 90":"#320","Yellow 100":"#1c1300","Green":"#008a20","Green 0":"#e6f2e8","Green 5":"#b8e6bf","Green 10":"#68de86","Green 20":"#1ed15a","Green 30":"#00ba37","Green 40":"#00a32a","Green 50":"#008a20","Green 60":"#007017","Green 70":"#005c12","Green 80":"#00450c","Green 90":"#003008","Green 100":"#001c05","Celadon":"#008763","Celadon 0":"#e4f2ed","Celadon 5":"#a7e8d3","Celadon 10":"#66deb9","Celadon 20":"#31cc9f","Celadon 30":"#09b585","Celadon 40":"#009e73","Celadon 50":"#008763","Celadon 60":"#007053","Celadon 70":"#005c44","Celadon 80":"#004533","Celadon 90":"#003024","Celadon 100":"#001c15","WordPress Blue":"#006088","WordPress Blue 0":"#e6f1f5","WordPress Blue 5":"#bedae6","WordPress Blue 10":"#98c6d9","WordPress Blue 20":"#6ab3d0","WordPress Blue 30":"#3895ba","WordPress Blue 40":"#187aa2","WordPress Blue 50":"#006088","WordPress Blue 60":"#004e6e","WordPress Blue 70":"#003c56","WordPress Blue 80":"#002c40","WordPress Blue 90":"#001d2d","WordPress Blue 100":"#00101c","Simplenote Blue":"#3361cc","Simplenote Blue 0":"#e9ecf5","Simplenote Blue 5":"#ced9f2","Simplenote Blue 10":"#abc1f5","Simplenote Blue 20":"#84a4f0","Simplenote Blue 30":"#618df2","Simplenote Blue 40":"#4678eb","Simplenote Blue 50":"#3361cc","Simplenote Blue 60":"#1d4fc4","Simplenote Blue 70":"#113ead","Simplenote Blue 80":"#0d2f85","Simplenote Blue 90":"#09205c","Simplenote Blue 100":"#05102e","WooCommerce Purple":"#7f54b3","WooCommerce Purple 0":"#f7edf7","WooCommerce Purple 5":"#e5cfe8","WooCommerce Purple 10":"#d6b4e0","WooCommerce Purple 20":"#c792e0","WooCommerce Purple 30":"#af7dd1","WooCommerce Purple 40":"#9a69c7","WooCommerce Purple 50":"#7f54b3","WooCommerce Purple 60":"#674399","WooCommerce Purple 70":"#533582","WooCommerce Purple 80":"#3c2861","WooCommerce Purple 90":"#271b3d","WooCommerce Purple 100":"#140e1f","Jetpack Green":"#069e08","Jetpack Green 0":"#f0f2eb","Jetpack Green 5":"#d0e6b8","Jetpack Green 10":"#9dd977","Jetpack Green 20":"#64ca43","Jetpack Green 30":"#2fb41f","Jetpack Green 40":"#069e08","Jetpack Green 50":"#008710","Jetpack Green 60":"#007117","Jetpack Green 70":"#005b18","Jetpack Green 80":"#004515","Jetpack Green 90":"#003010","Jetpack Green 100":"#001c09"}}')},60231:function(e){"use strict";e.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},45388:function(e){"use strict";e.exports=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]')},1949:function(e){"use strict";e.exports={Kc:["amazon"]}}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=i,l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},l.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var a=Object.create(null);l.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){o[e]=function(){return n[e]}}));return o.default=function(){return n},l.d(a,o),a},l.d=function(e,t){for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=function(e){return Promise.all(Object.keys(l.f).reduce((function(t,n){return l.f[n](e,t),t}),[]))},l.u=function(e){return(390===e?"swiper":e)+".js?minify=false&ver="+{390:"87699145e1e11e92e952",860:"d8d32efbe3dcb1077f70"}[e]},l.miniCssF=function(e){return"swiper.css?minify=false&ver=4f0a26962ac03729a198"},function(){if(!l.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;l.miniCssF=(e=l.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="Jetpack:",l.l=function(e,t,a,o){if(n[e])n[e].push(t);else{var i,s;if(void 0!==a)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var p=c[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==r+a){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,l.nc&&i.setAttribute("nonce",l.nc),i.setAttribute("data-webpack",r+a),i.src=e),n[e]=[t];var d=function(t,r){i.onerror=i.onload=null,clearTimeout(m);var a=n[e];if(delete n[e],i.parentNode&&i.parentNode.removeChild(i),a&&a.forEach((function(e){return e(r)})),t)return t(r)},m=setTimeout(d.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=d.bind(null,i.onerror),i.onload=d.bind(null,i.onload),s&&document.head.appendChild(i)}},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;l.g.importScripts&&(e=l.g.location+"");var t=l.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),l.p=e}(),a=function(e){return new Promise((function(t,n){var r=l.miniCssF(e),a=l.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var a=(i=n[r]).getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(a===e||a===t))return i}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var i;if((a=(i=o[r]).getAttribute("data-href"))===e||a===t)return i}}(r,a))return t();!function(e,t,n,r){var a=document.createElement("link");a.rel="stylesheet",a.type="text/css",a.onerror=a.onload=function(o){if(a.onerror=a.onload=null,"load"===o.type)n();else{var i=o&&("load"===o.type?"missing":o.type),s=o&&o.target&&o.target.href||t,l=new Error("Loading CSS chunk "+e+" failed.\n("+s+")");l.code="CSS_CHUNK_LOAD_FAILED",l.type=i,l.request=s,a.parentNode.removeChild(a),r(l)}},a.href=t,document.head.appendChild(a)}(e,a,t,n)}))},o={189:0,486:0},l.f.miniCss=function(e,t){o[e]?t.push(o[e]):0!==o[e]&&{390:1}[e]&&t.push(o[e]=a(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))},function(){var e={189:0,486:0};l.f.j=function(t,n){var r=l.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(390!=t){var a=new Promise((function(n,a){r=e[t]=[n,a]}));n.push(r[2]=a);var o=l.p+l.u(t),i=new Error;l.l(o,(function(n){if(l.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var a=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;i.message="Loading chunk "+t+" failed.\n("+a+": "+o+")",i.name="ChunkLoadError",i.type=a,i.request=o,r[1](i)}}),"chunk-"+t,t)}else e[t]=0};var t=function(t,n){var r,a,o=n[0],i=n[1],s=n[2],c=0;if(o.some((function(t){return 0!==e[t]}))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);if(s)s(l)}for(t&&t(n);c<o.length;c++)a=o[c],l.o(e,a)&&e[a]&&e[a][0](),e[o[c]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";l(57836),l(6757),l(7616),l(92919),l(26634),l(17269),l(56771),l(58721),l(73617);var e=l(11973);if("object"==typeof window&&"object"==typeof window.Jetpack_Editor_Initial_State&&"object"==typeof window.Jetpack_Editor_Initial_State.tracksUserData&&void 0!==window.Jetpack_Editor_Initial_State.wpcomBlogId){const{userid:t,username:n}=window.Jetpack_Editor_Initial_State.tracksUserData;e.Z.initialize(t,n,{blog_id:window.Jetpack_Editor_Initial_State.wpcomBlogId})}}(),function(){"use strict";var e=l(28069),t=l(8042);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32278);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(79884);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(75494);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(20195);(0,e.Z)(t.u2,t.Xd,t.Nk)}(),function(){"use strict";var e=l(28069),t=l(63445);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(45166);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(92694),n=l(52175),r=l(55609),a=l(65736),o=l(47271);const __=a.__,i=t=>{if(t.isDeprecation)return t;if("core/embed"!==t.name)return t;const{edit:a}=t;return{...t,edit:(0,r.withNotices)((t=>{const{noticeOperations:i,noticeUI:s,onReplace:l}=t,{url:c}=t.attributes,{isGatheringStorm:u,unleashStorm:p}=(0,o.Z)({onReplace:l});return"twitter"!==t.attributes.providerNameSlug?(0,e.createElement)(a,t):(0,e.createElement)(e.Fragment,null,s,(0,e.createElement)(n.BlockControls,null,(0,e.createElement)(r.ToolbarGroup,{className:"gathering-tweetstorms__embed-toolbar"},(0,e.createElement)(r.ToolbarButton,{className:"gathering-tweetstorms__embed-toolbar-button",onClick:()=>p(c,i),label:__("Import the entire Twitter thread directly into this post.","jetpack"),showTooltip:!0,disabled:u||!c},__("Unroll","jetpack")),u&&(0,e.createElement)(r.ToolbarItem,{as:r.Spinner}))),(0,e.createElement)(a,t))}))}};(0,t.addFilter)("blocks.registerBlockType","jetpack/gathering-tweetstorms",i)}(),function(){"use strict";var e=l(28069),t=l(31072);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(13984);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(1624);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(77007);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(66916);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(19916);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(92828);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(7882);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(5458);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(18161);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(58495);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(72228);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(84807);(0,e.Z)(t.u,t.X)}(),function(){"use strict";var e=l(28069),t=l(82163);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(32051);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57368);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(8223);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(93636),n=l(59770);(0,e.Z)(t.u2,t.Xd,[{name:n.u2,settings:n.Xd}])}(),function(){"use strict";var e=l(96594);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(91994);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(71730);(0,l(52291).Z)(e.u,e.X)}(),function(){"use strict";var e=l(28069),t=l(35289);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(94120);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(69307),t=l(98817),n=l(42366),r=l(21409),a=l(58014);(0,l(52291).Z)(n.u2,n.Xd);const o=(0,r.Z)("social-previews")?.available;!o&&(0,a.Wp)()&&(0,t.registerPlugin)(`jetpack-${n.u2}-upgrade-nudge`,{render:()=>(0,e.createElement)(n.w6,{showUpgradeNudge:!0})})}(),function(){"use strict";var e=l(28069),t=l(20222);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(57211);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(28069),t=l(80349);(0,e.Z)(t.u2,t.Xd)}(),function(){"use strict";var e=l(29183),t=l.n(e),n=l(69307),r=l(55609),a=l(11313),o=l(4981),i=l(12238),s=l(52175),c=l(92694),u=l(94333),p=l(65736),d=l(92819),m=l(6976),h=l(64089),f=l(21409),g=l(71486),b=l(4207),v=l(3082),k=l(58014),y=l(28137),E=l(41194);const __=p.__,w=(0,u.createHigherOrderComponent)((e=>a=>{const{name:o}=(0,s.useBlockEditContext)();return"core/video"!==o?(0,n.createElement)(e,a):(0,n.createElement)(e,t()({},a,{disableDropZone:!0,className:"no-videopress-media-placeholder"}),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Media Library","jetpack")),(0,n.createElement)(r.Button,{disabled:!0,className:"components-button no-videopress-disabled-button",isSecondary:!0},__("Upload","jetpack")))}),"videoPressNoPlanMediaPlaceholder"),_=(e,t,n)=>("core/video"!==t.name||!n.guid||n.className?.indexOf("wp-block-video")>=0||n.videoPressClassNames||(e.className=e.className.replace("wp-block-video","").trim()),e);(0,c.addFilter)("blocks.registerBlockType","jetpack/videopress",((e,t)=>{if("core/embed"===t)return(e=>{if(!("variations"in e)||"object"!=typeof e.variations)return;const{available:t}=(0,f.Z)("videopress");e.variations.some((e=>"videopress"===e.name&&(t&&(e.scope=[]),e.patterns.push(/^https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?$/i),!0)))})(e),e;if("core/video"!==t||e.isDeprecation)return e;const{deprecated:n,edit:r,save:s,supports:l,transforms:u}=e,{available:p,unavailableReason:C}=(0,f.Z)("videopress");if(((0,k.Wp)()||(0,k.Ug)())&&["missing_plan","unknown"].includes(C)?((0,c.addFilter)("editor.MediaPlaceholder","jetpack/videopress",w),(0,c.addFilter)("editor.BlockListBlock","jetpack/videopress-with-has-warning-is-interactive-class-names",(0,y.Z)("core/video"))):p&&(e.description=__("Embed a video from your media library or upload a new one with VideoPress.","jetpack"),e.example.attributes={caption:"",isVideoPressExample:!0,src:E}),(0,c.addFilter)("blocks.getSaveContent.extraProps","jetpack/videopress",_,20),p||["missing_plan","missing_module","unknown"].includes(C)){const t={autoplay:{type:"boolean"},caption:{type:"string",source:"html",selector:"figcaption"},controls:{type:"boolean",default:!0},maxWidth:{type:"string",default:"100%"},guid:{type:"string"},id:{type:"number"},loop:{type:"boolean"},isVideoPressExample:{type:"boolean",default:!1},muted:{type:"boolean"},playsinline:{type:"boolean"},poster:{type:"string"},preload:{type:"string",default:"metadata"},seekbarPlayedColor:{type:"string",default:""},seekbarLoadingColor:{type:"string",default:""},seekbarColor:{type:"string",default:""},src:{type:"string"},useAverageColor:{type:"boolean"},videoPressTracks:{type:"array",items:{type:"object"},default:[]},videoPressClassNames:{type:"string"}},c=/https?:\/\/v\.wordpress\.com\/([a-zA-Z\d]{8})(.+)?/i;return{...e,attributes:t,transforms:{...u,from:[{type:"files",isMatch:e=>(0,d.every)(e,(e=>0===e.type.indexOf("video/"))),priority:9,transform:(e,t)=>{const n=[];return e.forEach((e=>{const r=(0,o.createBlock)("core/video",{src:(0,a.createBlobURL)(e)});(0,i.mediaUpload)({filesList:[e],onFileChange:e=>{let[{id:n,url:a}]=e;t(r.clientId,{id:n,src:a})},allowedTypes:["video"]}),n.push(r)})),n}},{type:"raw",isMatch:e=>"P"===e.nodeName&&c.test(e.innerHTML),transform:e=>{const t=c.exec(e.innerHTML);return(0,o.createBlock)("core/embed",{url:"https://videopress.com/v/"+t[1].trim()})}}]},supports:{...l,reusable:!1},edit:(0,m.Z)(r),save:(0,h.Z)(s),deprecated:[...n||[],v.Z,{attributes:t,isEligible:e=>!e.guid,save:s,supports:l,isDeprecation:!0},b.Z,g.Z]}}return e}),5)}(),function(){"use strict";var e=l(28069),t=l(62086);(0,e.Z)(t.u2,t.Xd)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/editor.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/editor.js.LICENSE.txt
new file mode 100644
index 00000000..f4234c69
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/editor.js.LICENSE.txt
@@ -0,0 +1,30 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*! https://mths.be/punycode v1.3.2 by @mathias */
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/blocks/editor.rtl.css b/plugins/jetpack/_inc/blocks/editor.rtl.css
index b5503efe..3af39aaf 100644
--- a/plugins/jetpack/_inc/blocks/editor.rtl.css
+++ b/plugins/jetpack/_inc/blocks/editor.rtl.css
@@ -1 +1 @@
-.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit>*{pointer-events:auto;-webkit-user-select:auto;-ms-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive .block-editor-block-list__block-edit:after{content:none}.jetpack-block-nudge.editor-warning{margin-bottom:0}.jetpack-block-nudge .editor-warning__message{margin:13px 0}.jetpack-block-nudge .editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{font-size:13px;display:flex;flex-direction:row;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#636d75}.jetpack-upgrade-nudge__icon{align-self:center;background:#d6b02c;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-business-hours{overflow:hidden}@media (min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media (min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:44%;display:flex;align-items:baseline}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{width:60%;font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:44%;margin:0;display:flex;align-items:center;flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media (max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media (max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media (min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media (min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-calendly-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}.is-calendly .is-active{font-weight:700}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{width:100%;outline-width:0;outline-style:none;line-height:16px}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{color:#8d96a0;width:100%;margin:0 0 1em}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{display:flex;flex-direction:row}.jetpack-field-label .components-base-control{margin-top:-1px;margin-bottom:-3px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .required{color:#eb0001;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{flex-grow:1;min-height:unset;padding:0}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input{border-color:#fff;border-radius:0;font-weight:600;margin:0 0 2px;padding:0;width:auto;background:transparent}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:hover{border-color:#357cb5}.jetpack-field-label__input.jetpack-field-label__input.jetpack-field-label__input:focus{border:1px solid #e3e5e8;padding:2px 4px;box-shadow:none;background:#fff}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field .components-text-control__input,.jetpack-field .components-textarea-control__input{color:#72777c;padding:10px 8px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid #8d96a0;border-radius:4px;padding:4px}.jetpack-option{display:flex;align-items:center;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{border-color:transparent;background:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label{display:flex;align-items:center}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}@media (min-width:481px){.jetpack-contact-form-shortcode-preview{padding:24px}}.jetpack-contact-form-shortcode-preview{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.4em;display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.jetpack-contact-form-shortcode-preview:after{content:".";display:block;height:0;clear:both;visibility:hidden}.jetpack-contact-form-shortcode-preview>div{margin-top:24px}.jetpack-contact-form-shortcode-preview>div:first-child{margin-top:0}.jetpack-contact-form-shortcode-preview label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}.jetpack-contact-form-shortcode-preview input[type=email],.jetpack-contact-form-shortcode-preview input[type=tel],.jetpack-contact-form-shortcode-preview input[type=text],.jetpack-contact-form-shortcode-preview input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview input[type=email]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview input[type=email]:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:hover,.jetpack-contact-form-shortcode-preview input[type=text]:hover,.jetpack-contact-form-shortcode-preview input[type=url]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:focus,.jetpack-contact-form-shortcode-preview input[type=tel]:focus,.jetpack-contact-form-shortcode-preview input[type=text]:focus,.jetpack-contact-form-shortcode-preview input[type=url]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=email]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=tel]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=text]:focus::-ms-clear,.jetpack-contact-form-shortcode-preview input[type=url]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=email]:disabled,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled,.jetpack-contact-form-shortcode-preview input[type=text]:disabled,.jetpack-contact-form-shortcode-preview input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:hover,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=email]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled:-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::-ms-input-placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=email]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=tel]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=text]:disabled::placeholder,.jetpack-contact-form-shortcode-preview input[type=url]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.jetpack-contact-form-shortcode-preview textarea:-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::-ms-input-placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea::placeholder{color:#87a6bc}.jetpack-contact-form-shortcode-preview textarea:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview textarea:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview textarea:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview textarea:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.jetpack-contact-form-shortcode-preview input[type=checkbox]:checked:before{content:"\f147";font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:checked:before{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=checkbox]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.jetpack-contact-form-shortcode-preview input[type=checkbox]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}.jetpack-contact-form-shortcode-preview input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.jetpack-contact-form-shortcode-preview input[type=radio]:hover{border-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.jetpack-contact-form-shortcode-preview input[type=radio]:focus::-ms-clear{display:none}.jetpack-contact-form-shortcode-preview input[type=radio]:checked:before{float:right;display:inline-block;content:"\2022";margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:hover{cursor:default}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled::placeholder{color:#a8bece}.jetpack-contact-form-shortcode-preview input[type=radio]:disabled:checked:before{background:#e9eff3}.jetpack-contact-form-shortcode-preview input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}to{transform:scale(1)}}.jetpack-contact-form-shortcode-preview select{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI0M4RDdFMSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center;border-radius:4px;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:2px 14px 2px 32px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:sans-serif}.jetpack-contact-form-shortcode-preview select:hover{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2E4YmVjZSIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.jetpack-contact-form-shortcode-preview select:focus{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iIzJlNDQ1MyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}.jetpack-contact-form-shortcode-preview select:disabled,.jetpack-contact-form-shortcode-preview select:hover:disabled{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjUgNkwxNyA3LjVsLTYuNzUgNi43NUwzLjUgNy41IDUgNmw1LjI1IDUuMjVMMTUuNSA2eiIgZmlsbD0iI2U5ZWZmMyIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+) no-repeat left 10px center}.jetpack-contact-form-shortcode-preview select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}.jetpack-contact-form-shortcode-preview label+select,.jetpack-contact-form-shortcode-preview label select{display:block;min-width:200px}.jetpack-contact-form-shortcode-preview label+select.is-compact,.jetpack-contact-form-shortcode-preview label select.is-compact{display:inline-block;min-width:0}.jetpack-contact-form-shortcode-preview select::-ms-expand{display:none}.jetpack-contact-form-shortcode-preview select::-ms-value{background:none;color:#2e4453}.jetpack-contact-form-shortcode-preview select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]{vertical-align:baseline;background:#fff;border:solid #c8d7e1;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.jetpack-contact-form-shortcode-preview input[type=submit]:hover{border-color:#a8bece;color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:active{border-width:2px 1px 1px}.jetpack-contact-form-shortcode-preview input[type=submit]:visited{color:#2e4453}.jetpack-contact-form-shortcode-preview input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#eb0001}.help-message.help-message-is-error svg{fill:#eb0001}.jetpack-contact-info-block .editor-plain-text.editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .editor-plain-text{flex-grow:1;min-height:unset;padding:0;box-shadow:none;font-family:inherit;font-size:inherit;color:inherit;line-height:inherit;border:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-eventbrite.is-modal-button{display:inline-block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link{display:block}.wp-block-jetpack-eventbrite.is-modal-button .wp-block-button__link:focus span[data-rich-text-placeholder]:after{opacity:.3}.block-editor-block-preview__content [data-type="jetpack/eventbrite"][data-block],.block-editor-block-preview__content [data-type="jetpack/eventbrite"] [data-block]{display:table}.jetpack-eventbrite-block__embed-type-controls .block-editor-block-styles__item-preview{align-items:center;height:auto;justify-content:center}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;right:0;height:100%;position:absolute;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;right:0;margin:0;padding:0;position:absolute;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-text-control__input{height:36px}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container .components-base-control__label{position:absolute;top:-1000em}.wp-block-jetpack-gif .wp-block-jetpack-gif_input{flex-grow:1;margin-left:.5em}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-size:cover;background-repeat:no-repeat;background-position:50% 50%;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #555d66}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px #00a0d2;outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#8d96a0}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{width:20px;height:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#00be28!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.component__add-point{position:absolute;right:50%;top:50%;width:32px;height:38px;margin-top:-19px;margin-right:-16px;background-image:url(images/oval-3cc7669d571aef4e12f34b349e42d390.svg);background-repeat:no-repeat;text-indent:-9999px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{box-shadow:none;background-color:transparent}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{margin:.4rem 0 0;padding:0;border:none;box-shadow:none;float:left}.component__add-point__close path{color:#8d96a0}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{max-width:100%;margin:0}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9}.block-editor-block-inspector .component__map-theme-picker__button,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button{border:1px solid #e2e4e7;border-radius:100%;width:56px;height:56px;margin:2px;text-indent:-9999px;background-color:#e2e4e7;background-position:50%;background-repeat:no-repeat;background-size:contain;transform:scale(1);transition:transform .2s ease}.block-editor-block-inspector .component__map-theme-picker__button:hover,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button:hover{transform:scale(1.1)}.block-editor-block-inspector .component__map-theme-picker__button.is-selected,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-selected{border-color:#000}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-default,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-default{background-image:url(images/map-theme_default-2ceb449b599dbcbe2a90fead5a5f3824.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-black_and_white,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-black_and_white{background-image:url(images/map-theme_black_and_white-1ead5946ca104d83676d6e3410e1d733.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-satellite,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-satellite{background-image:url(images/map-theme_satellite-c74dc129bda9502fb0fb362bb627577e.jpg)}.block-editor-block-inspector .component__map-theme-picker__button.is-theme-terrain,.edit-post-settings-sidebar__panel-block .component__map-theme-picker__button.is-theme-terrain{background-image:url(images/map-theme_terrain-2b6e6c1c8d09cbdc58a4c0653be1a6e3.jpg)}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:right}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.editor-block-list__block .wp-block-jetpack-markdown__preview{min-height:1.8em;line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-top:32px;margin-bottom:32px}.editor-block-list__block .wp-block-jetpack-markdown__preview h1,.editor-block-list__block .wp-block-jetpack-markdown__preview h2,.editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #8f98a1;margin:2em auto;max-width:100px}.editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-right:0;margin-left:0;padding-right:1em}.editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.editor-block-list__block .wp-block-jetpack-markdown__preview ol,.editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.editor-block-list__block .wp-block-jetpack-markdown__preview code,.editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#23282d;font-family:Menlo,Consolas,monaco,monospace}.editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f3f4f5;border-radius:2px;font-size:inherit;padding:2px}.editor-block-list__block .wp-block-jetpack-markdown__preview pre{border-radius:4px;border:1px solid #e2e4e7;font-size:14px;padding:.8em 1em}.editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.editor-block-list__block .wp-block-jetpack-markdown__preview table{overflow-x:auto;border-collapse:collapse;width:100%}.editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.editor-block-list__block .wp-block-jetpack-markdown__preview thead{width:100%;min-width:240px}.editor-block-list__block .wp-block-jetpack-markdown__preview td,.editor-block-list__block .wp-block-jetpack-markdown__preview th{padding:.5em;border:1px solid}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:14px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:327px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{padding:0 8px;height:36px;align-items:center;line-height:normal}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-button.is-large{margin:1px 4px 0 0;position:relative}}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{position:absolute;width:100%;height:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;text-align:right;padding:0;margin:0}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.block-editor-block-preview__content [data-type="jetpack/opentable"][data-block],.block-editor-block-preview__content [data-type="jetpack/opentable"] [data-block]{display:table}.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.jetpack-publicize-message-box{background-color:#edeff0;border-radius:4px}.jetpack-publicize-message-box textarea{width:100%}.jetpack-publicize-character-count{padding-bottom:5px;padding-right:5px}.jetpack-publicize__connections-list{list-style-type:none;margin:13px 0}.publicize-jetpack-connection-container{display:flex}.jetpack-publicize-gutenberg-social-icon{fill:#555d66;margin-left:5px}.jetpack-publicize-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-publicize-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-publicize-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-publicize-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-right:0;margin-left:0;margin-bottom:13px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-message-note{display:inline-block;margin-bottom:4px;margin-top:13px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize-add-connection-container{display:flex}.jetpack-publicize-add-connection-container a{cursor:pointer}.jetpack-publicize-add-connection-container span{vertical-align:middle}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-stripe-nudge__icon{align-self:center;background:#016087;border-radius:50%;box-sizing:content-box;color:#fff;fill:#fff;flex-shrink:0;margin-left:16px;padding:6px}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;right:0;position:absolute;left:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:0 0 20px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:#b0b5b8;flex-basis:100%;margin:0;font-style:italic}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:#7c848b;line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-currency{width:30%}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #eb0001}.wp-block-jetpack-recurring-payments .membership-button__field-price{margin:0 5% 0 0;width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments.disclaimer-only{box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px);background:rgba(139,139,150,.1)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.15)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{margin-right:-10px;margin-left:-10px;display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em;margin:.2em 0}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;position:relative;margin:0 auto;max-width:350px}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;top:calc(50% - 12px);right:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:1rem 0 0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{max-width:350px;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:#000}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{margin:.5em 0;font-size:1em}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button{margin:2px 6px 0 0}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;right:50%;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;display:grid;grid-template-columns:200px auto;grid-column-gap:10px}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__label{display:none}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#eb0001}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field{margin-left:10px}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__field-price .components-text-control__input{max-width:90px}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;left:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;right:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;left:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-slideshow_slide .components-spinner{position:absolute;top:50%;right:50%;margin-top:-9px;margin-right:-9px}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f6f6}50%{background-color:hsla(0,0%,96.5%,.5)}to{background-color:#f6f6f6}}.wp-block-jetpack-tiled-gallery{padding-right:4px;padding-left:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{outline:4px solid #0085ba;filter:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%;height:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{display:flex;flex-direction:column;justify-content:center;box-shadow:none;border:none;border-radius:0;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #555d66}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{background-color:#0085ba;display:inline-flex;padding:0 2px 2px 0;position:absolute;left:0;top:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button:hover{color:#fff}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{position:absolute;top:50%;right:50%;margin:0;transform:translate(50%,-50%)}.editor-block-preview__content .wp-block-jetpack-tiled-gallery .editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;overflow:hidden;flex-direction:column;max-width:100%}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{color:#191e23;box-shadow:0 0 0 2px #555d66!important}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
+.jetpack-gutenberg-social-icon{fill:#757575}.jetpack-gutenberg-social-icon.is-facebook{fill:#39579a}.jetpack-gutenberg-social-icon.is-twitter{fill:#55acee}.jetpack-gutenberg-social-icon.is-linkedin{fill:#0976b4}.jetpack-gutenberg-social-icon.is-tumblr{fill:#35465c}.jetpack-gutenberg-social-icon.is-google{fill:var(--color-gplus)}@keyframes jetpack-external-media-loading-fade{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}.jetpack-external-media-browser--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.modal-open .jetpack-external-media-button-menu__options{display:none}.jetpack-external-media-browser .is-error{margin-bottom:1em;margin-left:0;margin-right:0}.jetpack-external-media-browser .components-placeholder{background-color:transparent}.jetpack-external-media-browser .components-modal__content{overflow:auto;padding-bottom:0;width:100%}@media(min-width:600px){.jetpack-external-media-browser .components-modal__content{height:90vh;width:90vw}}.jetpack-external-media-browser--is-copying{pointer-events:none}.jetpack-external-media-browser{align-items:flex-start;background:#fff;display:flex;flex-direction:column}.jetpack-external-media-browser .jetpack-external-media-browser__media{width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{background:transparent;border:0;display:inline-flex;height:0;padding-top:50%;position:relative;width:50%}.jetpack-external-media-browser .jetpack-external-media-browser__media__item img{display:block;height:calc(100% - 16px);-o-object-fit:contain;object-fit:contain;position:absolute;right:8px;top:8px;width:calc(100% - 16px)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item.is-transient img{opacity:.3}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;position:absolute;right:0;text-align:center;top:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator .components-spinner{margin-bottom:8px}.jetpack-external-media-browser .jetpack-external-media-browser__media__copying_indicator__label{font-size:12px}.jetpack-external-media-browser .jetpack-external-media-browser__media__folder{align-content:flex-start;align-items:center;display:flex;flex-wrap:wrap;float:right;justify-content:space-between;margin-bottom:36px}.jetpack-external-media-browser .jetpack-external-media-browser__media__info{display:flex;font-size:12px;font-weight:700;justify-content:space-between;padding:3px;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__media__count{background-color:#dcdcde;border-radius:8px;margin-bottom:auto;padding:3px 4px}.jetpack-external-media-browser .jetpack-external-media-browser__media__item{border:8px solid transparent}.jetpack-external-media-browser .jetpack-external-media-browser__media__item:focus{border-radius:10px;box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color);outline:none}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected{border-radius:10px;box-shadow:inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__item__selected:focus{box-shadow:inset 0 0 0 2px var(--wp-admin-theme-color),inset 0 0 0 3px #fff,inset 0 0 0 6px var(--wp-admin-theme-color)}.jetpack-external-media-browser .jetpack-external-media-browser__media__placeholder{animation:jetpack-external-media-loading-fade 1.6s ease-in-out infinite;background-color:#ccc;border:0;height:100px;margin:16px;width:100px}.jetpack-external-media-browser .jetpack-external-media-browser__media__toolbar{background:#fff;bottom:0;display:flex;justify-content:flex-end;padding:20px 0;position:fixed;position:sticky;right:0;width:100%}.jetpack-external-media-browser .jetpack-external-media-browser__loadmore{clear:both;display:block;margin:24px auto 48px}@media only screen and (min-width:600px){.jetpack-external-media-browser .jetpack-external-media-browser__media__item{padding-top:20%;width:20%}}.jetpack-external-media-header__view{align-items:flex-start;display:flex;flex-direction:column;justify-content:flex-start;margin-bottom:48px}@media only screen and (min-width:600px){.jetpack-external-media-header__view{align-items:center;flex-direction:row}}.jetpack-external-media-header__view select{max-width:200px!important}.jetpack-external-media-header__view .components-base-control__field{display:flex;flex-direction:column}.jetpack-external-media-header__filter label,.jetpack-external-media-header__view label{margin-left:10px}.jetpack-external-media-header__filter .components-base-control,.jetpack-external-media-header__view .components-base-control{margin-bottom:0;padding-left:8px}.jetpack-external-media-header__filter{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap;justify-content:flex-start}@media only screen and (min-width:600px){.jetpack-external-media-header__filter{border-right:1px solid #ccc;margin-right:16px;padding-right:16px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter{display:flex;flex-wrap:wrap}.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:40px;margin-top:27px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter button{height:30px}}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__label{margin-bottom:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__backdrop{border-color:#e0e0e0;border-radius:3px}.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:40px;width:70px}@media only screen and (min-width:783px){.jetpack-external-media-header__filter .jetpack-external-media-date-filter .components-base-control .components-input-control__input{height:30px}}.jetpack-external-media-header__account{display:flex;flex-direction:column}.jetpack-external-media-header__account .jetpack-external-media-header__account-info{display:flex;margin-bottom:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-image{margin-left:8px}.jetpack-external-media-header__account .jetpack-external-media-header__account-name{height:18px;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:40px;margin:1px 0 9px 1px}@media only screen and (min-width:783px){.jetpack-external-media-header__account .jetpack-external-media-browser__disconnect{height:30px}}.jetpack-external-media-header__pexels{display:flex;margin-bottom:48px}.jetpack-external-media-header__pexels .components-base-control{flex:1;margin-left:12px}.jetpack-external-media-header__pexels .components-base-control__field{margin-bottom:0}.jetpack-external-media-header__pexels .components-base-control__field,.jetpack-external-media-header__pexels .components-text-control__input{height:100%}.jetpack-external-media-placeholder__open-modal{align-items:center;display:flex;justify-content:center;left:0;margin-top:-48px;padding:0;position:absolute;z-index:1}.jetpack-external-media-placeholder__open-modal .components-button{background:none;margin:0;padding:12px}.jetpack-external-media-placeholder__open-modal .components-button:before{content:none}.jetpack-external-media-placeholder__open-modal .components-button svg{fill:currentColor;display:block}.jetpack-external-media-browsing>div.components-placeholder:not(.jetpack-external-media-replacedholder){display:none}.jetpack-external-media-browser__empty{padding-top:2em;text-align:center;width:100%}.jetpack-external-media-auth{margin:0 auto;max-width:340px;padding-bottom:80px;text-align:center}.jetpack-external-media-auth p{margin:2em 0}.jetpack-external-media-filters{display:flex;justify-content:space-between}.components-placeholder__fieldset .components-dropdown .jetpack-external-media-button-menu,.editor-post-featured-image .components-dropdown .jetpack-external-media-button-menu{margin-bottom:1em;margin-left:8px}.editor-post-featured-image .components-dropdown{display:initial}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive>*{pointer-events:auto;-webkit-user-select:auto;user-select:auto}.block-editor-block-list__layout .block-editor-block-list__block.has-warning.is-interactive:after{content:none}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:580px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper{align-items:center;background:#000;border-radius:2px;box-shadow:inset 0 0 1px #fff;display:flex;font-size:14px;height:48px;justify-content:space-between;padding:0 20px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .banner-title{color:#fff;margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__description,.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .jetpack-upgrade-plan-banner__title{margin-left:10px}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button{flex-shrink:0;height:28px;line-height:1;margin-right:auto}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary{background:#e34c84;color:#fff}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary:hover{background:#eb6594}.jetpack-upgrade-plan-banner .jetpack-upgrade-plan-banner__wrapper .components-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-upgrade-plan-banner.block-editor-block-list__block{margin-bottom:0;margin-top:0}.jetpack-upgrade-plan-banner.wp-block[data-align=left],.jetpack-upgrade-plan-banner.wp-block[data-align=right]{height:48px}.jetpack-upgrade-plan-banner.wp-block[data-align=left] .jetpack-upgrade-plan-banner__wrapper,.jetpack-upgrade-plan-banner.wp-block[data-align=right] .jetpack-upgrade-plan-banner__wrapper{max-width:840px;width:100%}.jetpack-upgrade-plan__hidden{display:none}.block-editor-block-list__block.is-upgradable,.editor-styles-wrapper [data-block].is-upgradable{margin-top:0;padding-top:48px}.block-editor-block-list__layout .jetpack-upgrade-plan-banner{position:relative;top:42px;z-index:10}.block-editor-block-inspector .jetpack-upgrade-plan-banner{border-radius:0;margin:0 20px 20px}.jetpack-paid-block-symbol{display:none}.jetpack-enable-upgrade-nudge .block-editor-block-icon>svg{overflow:visible}.jetpack-enable-upgrade-nudge .jetpack-paid-block-symbol{display:block}.jetpack-enable-upgrade-nudge .components-placeholder__label .jetpack-paid-block-symbol{display:none}.paid-block-media-placeholder{width:100%}.wp-block-cover .paid-block-media-placeholder:not(:only-child){bottom:0;left:0;position:absolute;right:0;top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder{background-color:transparent;padding-top:0}.block-editor-block-list__block.is-upgradable.is-selected.is-placeholder .paid-block-media-placeholder{margin-top:48px}.block-editor-block-list__layout .block-editor-block-list__block.is-upgradable:focus:after{box-shadow:none}.interface-interface-skeleton__editor{max-width:100%}.components-external-link__icon{fill:currentColor;height:1.4em;margin:-.2em .1em 0;vertical-align:middle;width:1.4em}.wp-block-jetpack-business-hours{overflow:hidden}@media(min-width:480px){.wp-block-jetpack-business-hours dd,.wp-block-jetpack-business-hours dt{display:inline-block}}.wp-block-jetpack-business-hours dt{min-width:30%;vertical-align:top}.wp-block-jetpack-business-hours dd{margin:0}@media(min-width:480px){.wp-block-jetpack-business-hours dd{max-width:calc(70% - .5em)}}.wp-block-jetpack-business-hours .components-base-control__label,.wp-block-jetpack-business-hours .components-toggle-control__label{font-size:13px}.wp-block-jetpack-business-hours .components-base-control__field{margin-bottom:0}.wp-block-jetpack-business-hours .jetpack-business-hours__item{margin-bottom:.5em}.wp-block-jetpack-business-hours .business-hours__row{display:flex;line-height:normal;margin-bottom:4px}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__closed{margin-bottom:20px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{align-items:start;display:flex;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .business-hours__day-name{font-weight:700;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:60%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day .components-form-toggle{margin-left:4px;margin-top:4px}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{align-items:center;display:flex;flex-wrap:wrap;margin:0;width:44%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-button{padding:0}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control{display:inline-block;margin-bottom:0;width:48%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control.business-hours__open{margin-left:4%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours .components-base-control .components-base-control__label{margin-bottom:0}.wp-block-jetpack-business-hours .business-hours__remove{align-self:flex-end;margin-bottom:8px;text-align:center;width:10%}.wp-block-jetpack-business-hours .business-hours-row__add button:hover{box-shadow:none!important}.wp-block-jetpack-business-hours .business-hours__remove button{display:block;margin:0 auto}.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours-row__add .components-button.is-default:hover,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:active,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:focus,.wp-block-jetpack-business-hours .business-hours__remove .components-button.is-default:hover{background:none;box-shadow:none}@media(max-width:1080px){.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.is-sidebar-opened .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}@media(max-width:600px){.wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row{flex-wrap:wrap}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__day,.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row.business-hours-row__add .business-hours__remove{display:none}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__day{width:100%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__hours{width:78%}.wp-block-columns .wp-block-jetpack-business-hours .business-hours__row .business-hours__remove{width:18%}@media(min-width:480px){.jetpack-business-hours dd,.jetpack-business-hours dt{display:inline-block}}.jetpack-business-hours dt{font-weight:700;margin-left:.5em;min-width:30%;vertical-align:top}.jetpack-business-hours dd{margin:0}@media(min-width:480px){.jetpack-business-hours dd{max-width:calc(70% - .5em)}}.jetpack-business-hours__item{margin-bottom:.5em}.wp-block[data-type="jetpack/button"]{display:inline-block;margin:0 auto}.wp-block[data-align=center] .wp-block-jetpack-button{display:flex;justify-content:center}.wp-block[data-align=right] .wp-block-jetpack-button{display:flex;justify-content:flex-end}div[data-type="jetpack/button"]:not([data-align=left]):not([data-align=right]){width:100%}div[data-type="jetpack/button"][data-align]{width:100%;z-index:1}div[data-type="jetpack/button"][data-align] .wp-block>div{max-width:100%}.jetpack-button__width-settings{align-items:center;display:flex}.jetpack-button__width-settings .components-button-group{display:flex;margin-left:1em}.jetpack-button__width-settings:not(.is-aligned) .components-unit-control-wrapper{flex:1}.wp-block-button__link.has-custom-width,.wp-block-jetpack-button{max-width:100%}.wp-block-jetpack-calendly{position:relative}.wp-block-jetpack-calendly-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-calendly-link-editable{cursor:text}.wp-block-jetpack-calendly-embed-form-sidebar{display:flex;margin-bottom:1em}.wp-block-jetpack-calendly-learn-more{margin-top:1em}.wp-block-jetpack-calendly-color-notice{margin:0}div[data-align=center]>.wp-block-jetpack-calendly{text-align:center}.wp-block-jetpack-calendly .components-placeholder__fieldset input{flex:1}.admin-bar .calendly-overlay .calendly-popup-close{top:47px}.wp-block-jetpack-calendly.calendly-style-inline{height:630px;position:relative}.wp-block-jetpack-calendly .calendly-spinner{top:50px}.wp-block-jetpack-calendly.aligncenter{text-align:center}.wp-block-jetpack-calendly .wp-block-jetpack-button{color:#fff}.jetpack-block-styles-selector .editor-styles-wrapper .block-editor-block-list__block{margin:0}.jetpack-block-styles-selector-toolbar .is-active{font-weight:700}.wp-block-jetpack-contact-form{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li{margin:0;max-width:none;width:84px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation{margin-left:0;padding:17px}.wp-block-jetpack-contact-form .block-editor-block-variation-picker__variations>li .block-editor-block-variation-picker__variation-label{margin-left:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block{border-bottom:15px solid transparent;border-left:15px solid transparent;flex:0 0 100%;margin:0}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50,.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{box-sizing:border-box}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25{flex:0 0 25%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-25 .jetpack-option__input.jetpack-option__input.jetpack-option__input{width:70px}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-50{flex:0 0 50%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block.jetpack-field__width-75{flex:0 0 75%}.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-checkbox"],.wp-block-jetpack-contact-form .block-editor-block-list__layout .wp-block[data-type="jetpack/field-consent"]{align-self:center}.wp-block-jetpack-contact-form .block-list-appender{flex:0 0 100%}.jetpack-contact-form .components-placeholder{padding:24px}.jetpack-contact-form .components-placeholder input[type=text]{line-height:16px;outline-style:none;outline-width:0;width:100%}.jetpack-contact-form .components-placeholder .components-placeholder__label svg{margin-left:1ch}.jetpack-contact-form .components-placeholder .components-placeholder__fieldset,.jetpack-contact-form .components-placeholder .help-message{text-align:right}.jetpack-contact-form .components-placeholder .help-message{margin:0 0 1em;width:100%}.jetpack-contact-form .components-placeholder .components-base-control{width:100%}.jetpack-contact-form__intro-message{margin:0 0 16px}.jetpack-contact-form__create,.jetpack-contact-form__thankyou-redirect-url input[type=text]{width:100%}.jetpack-contact-form__thankyou-redirect-url__suggestions{width:260px}.jetpack-field-label{align-items:baseline;display:flex;flex-direction:row;justify-content:flex-start}.jetpack-field-label .components-base-control{margin-bottom:-3px;margin-top:-1px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-form-toggle{margin:2px 16px 0 8px}.jetpack-field-label .components-base-control.jetpack-field-label__required .components-toggle-control__label{word-break:normal}.jetpack-field-label .rich-text.jetpack-field-label__input{cursor:text;padding-left:8px}.jetpack-field-label .required{color:unset;font-size:15px;opacity:.45;word-break:normal}.jetpack-field-label .components-toggle-control .components-base-control__field{margin-bottom:0}.jetpack-field-label__input{min-height:unset;padding:0}input.components-text-control__input{line-height:16px}.jetpack-field .components-text-control__input.components-text-control__input{width:100%}.jetpack-field input.components-text-control__input,.jetpack-field textarea.components-textarea-control__input{box-shadow:unset;color:#787c82;padding:12px 8px;width:100%}.jetpack-field textarea.components-textarea-control__input{min-height:150px}.jetpack-field-label__width .components-button-group{display:block}.jetpack-field-label__width .components-base-control__field{margin-bottom:12px}.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox.jetpack-field-checkbox__checkbox{float:right;margin:3px 0 0 5px}.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox.jetpack-field-consent__checkbox{float:right;margin:0 0 0 5px}.jetpack-field-multiple__list.jetpack-field-multiple__list{list-style-type:none;margin:0;padding-right:0}.jetpack-field-multiple__list.jetpack-field-multiple__list:empty{display:none}[data-type="jetpack/field-select"] .jetpack-field-multiple__list.jetpack-field-multiple__list{border:1px solid rgba(0,0,0,.4);border-radius:4px;padding:4px}.jetpack-option{align-items:center;display:flex;margin:0}.jetpack-option__type.jetpack-option__type{margin-top:0}.jetpack-option__input.jetpack-option__input.jetpack-option__input{background:transparent;border-color:transparent;border-radius:0;flex-grow:1}.jetpack-option__input.jetpack-option__input.jetpack-option__input:hover{border-color:#357cb5}.jetpack-option__input.jetpack-option__input.jetpack-option__input:focus{background:#fff;border-color:#e3e5e8;box-shadow:none}.jetpack-option__remove.jetpack-option__remove{padding:6px;vertical-align:bottom}.jetpack-field-multiple__add-option{margin-right:-6px;padding:4px 4px 4px 8px}.jetpack-field-multiple__add-option svg{margin-left:12px}.jetpack-field .components-base-control__label{display:block}.jetpack-field-checkbox .components-base-control__label,.jetpack-field-consent .components-base-control__label{align-items:center;display:flex}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label,.jetpack-field-consent .components-base-control__label .jetpack-field-label{flex-grow:1}.jetpack-field-checkbox .components-base-control__label .jetpack-field-label__input,.jetpack-field-consent .components-base-control__label .jetpack-field-label__input{font-size:13px;font-weight:400;padding-right:10px}.block-editor-inserter__preview .jetpack-contact-form{padding:16px}.block-editor-inserter__preview .jetpack-contact-form>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.jetpack-contact-form__popover .components-popover__content{min-width:260px;padding:12px}.jetpack-contact-form__crm_text,.jetpack-contact-form__crm_toggle p{margin-bottom:0}.help-message{display:flex;font-size:13px;line-height:1.4em;margin-bottom:1em;margin-top:-.5em}.help-message svg{margin-left:5px;min-width:24px}.help-message>span{margin-top:2px}.help-message.help-message-is-error{color:#d63638}.help-message.help-message-is-error svg{fill:#d63638}.jetpack-contact-info-block .block-editor-plain-text.block-editor-plain-text:focus{box-shadow:none}.jetpack-contact-info-block .block-editor-plain-text{border:none;border-radius:4px;box-shadow:none;color:inherit;display:block;flex-grow:1;font-family:inherit;font-size:inherit;line-height:inherit;margin:.5em 0;min-height:unset;padding:0;resize:none}.block-editor-inserter__preview .jetpack-contact-info-block{padding:16px}.block-editor-inserter__preview .jetpack-contact-info-block>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-contact-info{margin-bottom:1.5em}.jetpack-block-nudge.block-editor-warning{margin-bottom:12px}.jetpack-block-nudge .block-editor-warning__message{margin:13px 0}.jetpack-block-nudge .block-editor-warning__actions{line-height:1}.jetpack-block-nudge .jetpack-block-nudge__info{display:flex;flex-direction:row;font-size:13px;line-height:1.4}.jetpack-block-nudge .jetpack-block-nudge__text-container{display:flex;flex-direction:column}.jetpack-block-nudge .jetpack-block-nudge__title{font-size:14px}.jetpack-block-nudge .jetpack-block-nudge__message{color:#646970}.jetpack-stripe-nudge__banner .block-editor-warning__contents{align-items:center}.jetpack-stripe-nudge__icon{fill:#fff;align-self:center;background:#2271b1;border-radius:50%;box-sizing:content-box;color:#fff;flex-shrink:0;margin-left:16px;padding:6px}.wp-block-jetpack-donations .donations__container{border:1px solid #ccc}.wp-block-jetpack-donations .donations__nav{border-bottom:1px solid #ccc;display:flex}.wp-block-jetpack-donations .donations__nav-item{background:#fff;border-right:1px solid #ccc;color:#1e1e1e;cursor:pointer;display:inline-block;flex:1;font-size:16px;font-weight:700;padding:12px;text-align:center}@media(min-width:600px){.wp-block-jetpack-donations .donations__nav-item{padding:16px 24px}}.wp-block-jetpack-donations .donations__nav-item:first-child{border-right:none}.wp-block-jetpack-donations .donations__nav-item.is-active{background:var(--wp-admin-theme-color);color:#fff;cursor:default}.wp-block-jetpack-donations .donations__content{padding:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content{padding:32px}}.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__content h4,.wp-block-jetpack-donations .donations__content p{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amounts{display:flex;flex-wrap:wrap;margin-bottom:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__amounts{margin:0 0 24px}}.wp-block-jetpack-donations .donations__amount{background-color:#fff;border:1px solid #ccc;color:#1e1e1e;display:inline-block;font-size:16px;font-weight:600;margin-bottom:8px;margin-left:8px;padding:16px 24px;white-space:nowrap}.wp-block-jetpack-donations .donations__amount.has-error{box-shadow:0 0 0 1px #fff,0 0 0 3px #cc1818;outline:2px solid transparent;outline-offset:-2px}.wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{display:inline-block;margin-right:4px;min-width:60px}.wp-block-jetpack-donations .donations__separator{margin-bottom:16px;margin-top:16px}@media(min-width:600px){.wp-block-jetpack-donations .donations__separator{margin-bottom:32px;margin-top:32px}}.wp-block-jetpack-donations .donations__donate-button,.wp-block-jetpack-donations .donations__donate-button-wrapper{margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount{cursor:text}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount.has-focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount{cursor:default}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable{display:inline-block;text-align:right}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount .block-editor-rich-text__editable:focus{box-shadow:none;outline:none;outline-offset:0}.editor-styles-wrapper .wp-block-jetpack-donations .donations__amount [data-rich-text-placeholder]:after{color:#ccc;opacity:1}.editor-styles-wrapper .wp-block-jetpack-donations .donations__custom-amount .donations__amount-value{color:#ccc}.editor-styles-wrapper .wp-block-jetpack-donations .donations__donate-button-wrapper:not(.alignleft):not(.alignright){margin:0}.editor-styles-wrapper .wp-block-jetpack-donations .jetpack-block-nudge{max-width:none}.jetpack-donations__currency-toggle{font-weight:700;line-height:100%;width:max-content}.jetpack-donations__currency-popover .components-popover__content{min-width:130px}.wp-block-jetpack-eventbrite{position:relative}.wp-block-jetpack-eventbrite .components-placeholder__learn-more{margin-top:1em}[data-type="jetpack/eventbrite"][data-align=center]{text-align:center}.gathering-tweetstorms__embed-toolbar{align-items:center;justify-content:center}.gathering-tweetstorms__embed-toolbar .components-spinner{margin:0;position:absolute}.gathering-tweetstorms__embed-import-notice{align-items:center;display:flex}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-message{padding-left:20px}.gathering-tweetstorms__embed-import-notice .gathering-tweetstorms__embed-import-button{flex-shrink:0}.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;position:absolute;right:0;top:0;width:100%}.wp-block-jetpack-gif figure{transition:padding-top 125ms ease-in-out}.wp-block-jetpack-gif .components-base-control__field{text-align:center}.wp-block-jetpack-gif .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover{background:none;border:none;height:100%;margin:0;padding:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_cover:focus{outline:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_input-container{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;margin-bottom:10px;max-width:400px;width:100%;z-index:1}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container{display:flex;margin:-2px -2px 2px 0;overflow-x:auto;width:calc(100% + 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnails-container::-webkit-scrollbar{display:none}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container{align-items:center;background-position:50% 50%;background-repeat:no-repeat;background-size:cover;border:none;border-radius:3px;cursor:pointer;display:flex;justify-content:center;margin:2px;padding:0 0 calc(10% - 4px);width:calc(10% - 4px)}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:hover{box-shadow:0 0 0 1px #949494}.wp-block-jetpack-gif .wp-block-jetpack-gif_thumbnail-container:focus{box-shadow:0 0 0 2px var(--wp-admin-theme-color);outline:0}.components-panel__body-gif-branding svg{display:block;margin:0 auto;max-width:200px}.components-panel__body-gif-branding svg path{fill:#e0e0e0}.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-block-jetpack-google-calendar-embed-form-sidebar textarea{height:75px;width:100%}.wp-block-jetpack-google-calendar-embed-form-sidebar button{display:block;margin-top:8px}.wp-block-jetpack-google-calendar-embed-form-editor{margin:0}.wp-block-jetpack-google-calendar-embed-form-editor textarea{flex:1;font-family:inherit;font-size:inherit;height:36px;margin-left:1px;padding-top:9px}.wp-block-jetpack-google-calendar-placeholder-links{margin-top:19px}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions{font-family:inherit;list-style-position:inside;margin:0;padding:0}.wp-block-jetpack-google-calendar ol.wp-block-jetpack-google-calendar-placeholder-instructions li{margin-bottom:19px;text-align:right}.wp-block-jetpack-google-calendar .components-placeholder__label{margin-bottom:19px}.wp-block-jetpack-google-calendar .components-placeholder p{margin:0 0 19px}.wp-block-jetpack-image-compare{margin-left:0;margin-right:0}.wp-block-jetpack-image-compare img{max-width:100%}.jx-slider.jx-slider{right:1px;top:1px;width:calc(100% - 2px)}.image-compare__placeholder>.components-placeholder{align-items:center;flex-direction:row}.image-compare__placeholder>.components-placeholder>.components-placeholder__label{display:none}.image-compare__placeholder>.components-placeholder .components-placeholder{background:none}.image-compare__image-after,.image-compare__image-before{display:flex;flex:1;flex-direction:column;position:relative}.image-compare__image-after .components-placeholder.components-placeholder,.image-compare__image-before .components-placeholder.components-placeholder{box-shadow:none;min-height:0;padding:0}.image-compare__image-after .components-placeholder.components-placeholder .components-placeholder__instructions,.image-compare__image-before .components-placeholder.components-placeholder .components-placeholder__instructions{display:none}.components-placeholder.is-large .image-compare__image-before{padding-left:12px}.components-placeholder.is-large .image-compare__image-after{padding-right:12px}.components-placeholder.is-medium .image-compare__image-before{margin-bottom:24px}[data-type="jetpack/image-compare"]:not(.is-selected) .image-compare__comparison{pointer-events:none}.juxtapose .components-placeholder{border:none;box-shadow:none;padding:0}.juxtapose .components-placeholder .components-placeholder__label{display:none}.juxtapose .components-placeholder .image-compare__image-after,.juxtapose .components-placeholder .image-compare__image-before{flex:none;padding:0;width:100%}.juxtapose .components-placeholder:before{background:#fff;content:"";display:block;height:4px;position:absolute;width:100%;z-index:2}.juxtapose .components-placeholder .image-compare__image-after{height:50%;overflow:hidden;position:absolute;width:100%}.juxtapose .components-placeholder .image-compare__image-after img{align-self:flex-end;display:flex;height:200%;max-width:none;width:100%}div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-right:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-right:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto -3px auto auto;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}div.jx-arrow.jx-right{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;right:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;left:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{right:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{left:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{right:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;left:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{right:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:100%;right:0}div.jx-image.jx-left img{right:0}div.jx-image.jx-right{background-position:0;left:0}div.jx-image.jx-right img{bottom:0;left:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:right;right:0}div.jx-image.jx-right div.jx-label{float:left;left:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;right:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:right .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-right:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);right:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);left:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(-90deg)}.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control{margin-bottom:28px}.wp-block-jetpack-instagram-gallery .components-placeholder .components-radio-control label{font-weight:400}.wp-block-jetpack-instagram-gallery .components-placeholder .wp-block-jetpack-instagram-gallery__new-account-instructions{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice{margin:0 0 15px}.wp-block-jetpack-instagram-gallery__count-notice .components-notice__content{line-height:inherit;margin:0;padding-left:0}.wp-block-jetpack-instagram-gallery__disconnection-warning{font-style:italic;margin-bottom:0}.wp-block-jetpack-instagram-gallery__placeholder{animation-delay:0ms,.3s;animation-duration:.3s,1.6s;animation-iteration-count:1,infinite;animation-name:fadeIn,pulse;animation-timing-function:ease-out,ease-out;background-color:#a7a79f;display:flex;opacity:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{animation:none;height:auto}.wp-block-jetpack-instagram-gallery__placeholder img{opacity:0;transition:opacity .5s ease-in-out}.wp-block-jetpack-instagram-gallery__placeholder img.is-loaded{opacity:1}@keyframes fadeIn{0%{opacity:0}50%{opacity:.5}to{opacity:1}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__placeholder.is-loaded{display:flex;flex-direction:column;flex-grow:1}.wp-block-jetpack-instagram-gallery__placeholder.is-loaded img{flex-grow:1;height:auto;-o-object-fit:cover;object-fit:cover}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{display:flex;flex-direction:column}@supports(display:grid){@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__placeholder{margin:0!important}}}.edit-post-more-menu__content .components-icon-button .jetpack-logo,.edit-post-pinned-plugins .components-icon-button .jetpack-logo{height:20px;width:20px}.edit-post-more-menu__content .components-icon-button .jetpack-logo{margin-left:4px}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{stroke:none!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-circle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-circle{fill:#2fb41f!important}.edit-post-pinned-plugins .components-button.has-icon.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-button.has-icon:not(.is-toggled) .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button.is-toggled:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:hover .jetpack-logo__icon-triangle,.edit-post-pinned-plugins .components-icon-button:not(.is-toggled) .jetpack-logo__icon-triangle{fill:#fff!important}.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none}.wp-block-jetpack-mailchimp .components-placeholder__label svg{margin-left:1ch}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:block}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-mailchimp .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-mailchimp-recheck{margin-top:1em}.wp-block-jetpack-mailchimp.wp-block-jetpack-mailchimp_notication-audition>:not(.wp-block-jetpack-mailchimp_notification){display:none}.wp-block-jetpack-mailchimp .jetpack-submit-button,.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_text-input{margin-bottom:1.5rem}.wp-block-jetpack-mailchimp .wp-block-button .wp-block-button__link{margin-top:0}.wp-block-jetpack-mailchimp .components-placeholder__fieldset{display:block;flex-direction:unset;flex-wrap:unset}.wp-block-jetpack-mailchimp .components-placeholder__fieldset .components-button{margin-bottom:0}.component__add-point{background-image:url(images/oval-5f1d889983a8747472c7.svg);background-repeat:no-repeat;height:38px;margin-right:-16px;margin-top:-19px;position:absolute;right:50%;text-indent:-9999px;top:50%;width:32px}.component__add-point,.component__add-point.components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point:active,.component__add-point:focus{background-color:transparent}.component__add-point__popover .components-button:not(:disabled):not([aria-disabled=true]):focus{background-color:transparent;box-shadow:none}.component__add-point__popover .components-popover__content{padding:.1rem}.component__add-point__popover .components-location-search{margin:.5rem}.component__add-point__close{border:none;box-shadow:none;float:left;margin:.4rem 0 0;padding:0}.component__add-point__close path{color:#e0e0e0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px}.edit-post-settings-sidebar__panel-block .component__locations__panel{margin-bottom:1em}.edit-post-settings-sidebar__panel-block .component__locations__panel:empty{display:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child{border-top:none}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:first-child,.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body:last-child{margin:0;max-width:100%}.edit-post-settings-sidebar__panel-block .component__locations__panel .components-panel__body button{padding-left:40px}.component__locations__delete-btn{padding:0}.component__locations__delete-btn svg{margin-left:.4em}.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:right;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map__delete-btn{padding:0}.wp-block-jetpack-map__delete-btn svg{margin-left:.4em}.wp-block[data-type="jetpack/map"] .components-placeholder__label svg{fill:currentColor;margin-left:1ch}.wp-block[data-type="jetpack/map"] .components-placeholder__instructions .components-external-link{display:inline-block;margin:1em auto}.wp-block-jetpack-map .mapboxgl-popup-close-button{font-size:21px;padding:0 9px 5px 10px}.wp-block-jetpack-map .wp-block-jetpack-map__map_wrapper{background-color:#e4e2de;overflow:hidden}.wp-block-jetpack-map__height_input{display:block}.component__add-point__popover .components-popover__content{width:250px}.component__add-point__popover .components-popover__content .component__add-point__close{margin-top:-.55em;padding:.3em}.wp-block-jetpack-markdown__placeholder{opacity:.62;pointer-events:none}.block-editor-block-list__block .wp-block-jetpack-markdown__preview{line-height:1.8;min-height:1.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview>*{margin-bottom:32px;margin-top:32px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2,.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{line-height:1.4}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h1{font-size:2.44em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h2{font-size:1.95em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h3{font-size:1.56em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h4{font-size:1.25em;line-height:1.5}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h5{font-size:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview h6{font-size:.8em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview hr{border:none;border-bottom:2px solid #f0f0f0;margin:2em auto;max-width:100px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview p{line-height:1.8}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote{border-right:4px solid #000;margin-left:0;margin-right:0;padding-right:1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview blockquote p{line-height:1.5;margin:1em 0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview ol,.block-editor-block-list__block .wp-block-jetpack-markdown__preview ul{margin-right:1.3em;padding-right:1.3em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview li p{margin:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code,.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{color:#1e1e1e;font-family:Menlo,Consolas,monaco,monospace}.block-editor-block-list__block .wp-block-jetpack-markdown__preview code{background:#f0f0f0;border-radius:2px;font-size:inherit;padding:2px}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre{border:1px solid #e0e0e0;border-radius:4px;font-size:15px;padding:.8em 1em}.block-editor-block-list__block .wp-block-jetpack-markdown__preview pre code{background:transparent;padding:0}.block-editor-block-list__block .wp-block-jetpack-markdown__preview table{border-collapse:collapse;overflow-x:auto;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview tbody,.block-editor-block-list__block .wp-block-jetpack-markdown__preview tfoot,.block-editor-block-list__block .wp-block-jetpack-markdown__preview thead{min-width:240px;width:100%}.block-editor-block-list__block .wp-block-jetpack-markdown__preview td,.block-editor-block-list__block .wp-block-jetpack-markdown__preview th{border:1px solid;padding:.5em}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor{font-family:Menlo,Consolas,monaco,monospace;font-size:15px}.wp-block-jetpack-markdown .wp-block-jetpack-markdown__editor:focus{border-color:transparent;box-shadow:0 0 0 transparent}.wp-block-jetpack-opentable{display:inline-block}.wp-block-jetpack-opentable.is-placeholder,.wp-block-jetpack-opentable.is-style-wide{display:block}.wp-block-jetpack-opentable .components-base-control{width:100%}.wp-block-jetpack-opentable .components-placeholder__fieldset p{font-size:13px;margin:0 0 1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form{flex-direction:row}@media screen and (max-width:479px){.wp-block-jetpack-opentable .components-placeholder__fieldset form{display:block}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__label{display:none}.wp-block-jetpack-opentable .components-placeholder__fieldset form p{margin-top:1em}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container{width:100%}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__input-container input[type=text].components-form-token-field__input{min-height:32px}}.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{align-items:center;height:42px;line-height:normal;padding:0 8px}@media screen and (min-width:480px){.wp-block-jetpack-opentable .components-placeholder__fieldset form>.components-button{margin:0 4px 0 0;position:relative}}.wp-block-jetpack-opentable .components-placeholder__fieldset form .components-form-token-field__remove-token{padding:2px 6px}.wp-block-jetpack-opentable iframe{height:100%;width:100%}.wp-block-jetpack-opentable-overlay{height:100%;position:absolute;width:100%;z-index:10}.wp-block-jetpack-opentable-restaurant-picker{margin-bottom:1em;position:relative;width:100%}.wp-block-jetpack-opentable-restaurant-picker .components-form-token-field__token-text{align-items:center;display:inline-flex}.wp-block-jetpack-opentable-placeholder-links{display:flex;flex-direction:column}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links{display:block}}.wp-block-jetpack-opentable-placeholder-links a{padding:.25em 0 .25em 1em}@media screen and (min-width:480px){.wp-block-jetpack-opentable-placeholder-links a form>button{height:50px}}.wp-block-jetpack-opentable-placeholder-links a:last-child{padding-left:0;padding-right:1em}.wp-block-jetpack-opentable.is-style-button.has-no-margin iframe{margin:-14px}.editor-styles-wrapper .wp-block-jetpack-opentable .components-form-token-field__suggestions-list{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;padding:0;text-align:right}.wp-block>.wp-block-jetpack-opentable.is-style-wide.alignright{left:0;right:auto}.wp-block[data-type="jetpack/opentable"] .components-notice__content{text-align:right}.components-toggle-control.is-opentable{padding-top:6px}.is-opentable button.is-active{font-weight:700}.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{left:auto;margin-right:2rem;max-width:840px}.wp-block-jetpack-opentable.is-style-wide.alignright{max-width:840px;right:calc(100% - 840px - 2rem)}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none}.block-editor-block-contextual-toolbar[data-type="jetpack/podcast-player"] .components-toolbar__control,[data-type="jetpack/podcast-player"] .block-editor-block-contextual-toolbar .components-toolbar__control{padding:0 1em;width:auto}.jetpack-podcast-player__interactive-overlay,.jetpack-podcast-player__loading-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.jetpack-podcast-player__loading-overlay{align-items:center;background:hsla(0,0%,100%,.7);display:flex;justify-content:center}.jetpack-podcast-player__placeholder .components-base-control,.jetpack-podcast-player__placeholder .components-base-control__field{display:flex;flex-grow:1}.jetpack-podcast-player__placeholder .components-base-control__field{margin-bottom:0}.jetpack-podcast-player__placeholder .components-placeholder__learn-more{margin-top:1em}.block-editor-block-inspector .components-base-control.jetpack-podcast-player__episode-selector{margin-bottom:24px}.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:18px;padding-right:15px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-left:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 22px 10px 24px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-right:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-right:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 0 0 2px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-right:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none}.jetpack-publicize__connections-list{list-style-type:none;margin:0;width:100%}.jetpack-publicize__connections-list .components-notice{margin:5px 0 10px}.publicize-jetpack-connection-container{display:flex}.publicize-jetpack-connection-container .components-disabled{width:100%}.jetpack-publicize-gutenberg-social-icon{margin-left:5px}.jetpack-publicize-connection-label{flex:1;margin-left:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jetpack-publicize-connection-label .jetpack-publicize-connection-label-copy,.jetpack-publicize-connection-label .jetpack-publicize-gutenberg-social-icon{display:inline-block;vertical-align:middle}.jetpack-publicize-connection-toggle{margin-top:3px}.jetpack-publicize-notice.components-notice{margin-bottom:13px;margin-left:0;margin-right:0}.jetpack-publicize-notice .components-button{height:auto;line-height:normal;padding-bottom:6px;padding-top:6px}.jetpack-publicize-notice .components-button+.components-button{margin-top:5px}.jetpack-publicize-add-connection-wrapper{margin:15px 0}.jetpack-publicize__upsell{margin-bottom:13px}.jetpack-publicize__upsell-description{font-weight:600;margin-bottom:10px}.jetpack-publicize__upsell-button.is-primary{background:#e34c84;color:#fff;padding-left:10px}.jetpack-publicize__upsell-button.is-primary:hover{background:#eb6594}.jetpack-publicize__upsell-button.is-primary.is-busy{background-image:linear-gradient(45deg,#e34c84 28%,#ab235a 0,#ab235a 72%,#e34c84 0);background-size:100px 100%}.jetpack-publicize-disabled .jetpack-publicize-toggle,.jetpack-publicize-disabled .jetpack-publicize__connections-list{opacity:.5}.jetpack-publicize-twitter-options__notices .components-notice{margin-left:0;margin-right:0;padding:0 8px 0 0}.jetpack-publicize-twitter-options__notices .components-notice .components-notice__content{margin-bottom:8px;margin-top:8px}.jetpack-publicize-twitter__tweet-divider{margin-top:-28px;position:absolute;width:100%}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon{background:#0009;border-radius:12px;display:block;height:24px;margin:0 auto;width:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#0009;content:"";display:block;height:1px;margin-top:12px;position:absolute;width:80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{margin-right:-80px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after{margin-right:24px}.jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon>svg{fill:#fff;height:16px;margin:4px;position:absolute;width:16px}.jetpack-publicize-twitter__tweet-divider-popover{border-radius:4px;box-shadow:0 2px 10px #0009}.jetpack-publicize-twitter__tweet-divider-popover .components-popover__content{color:#0009;padding:8px}.modal-open .jetpack-publicize-twitter__tweet-divider-popover{display:none}.jetpack-tweetstorm .block-editor-block-list__insertion-point-inserter{justify-content:right;padding:0 8px}.annotation-text-jetpack-tweetstorm{background:#0009;display:inline-block;margin:1px;width:3px}.annotation-text-jetpack-tweetstorm-line-break{background:#0009;margin:1px;padding:0 2.5px}.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before{background:#0009;content:"";height:calc(100% + 16px);position:absolute;right:-10px;top:-8px;width:4px}.is-dark-theme .annotation-text-jetpack-tweetstorm,.is-dark-theme .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:after,.is-dark-theme .jetpack-publicize-twitter__tweet-divider .jetpack-publicize-twitter__tweet-divider-icon:before{background:#fff9}.annotation-text-jetpack-tweetstorm,.block-editor-block-list__block li:after,.blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-publicize-twitter__tweet-divider{opacity:1;transition:opacity .5s}.jetpack-tweetstorm-is-typing .annotation-text-jetpack-tweetstorm,.jetpack-tweetstorm-is-typing .block-editor-block-list__block li:after,.jetpack-tweetstorm-is-typing .blocks-gallery-grid .blocks-gallery-item:nth-child(5) figure:before,.jetpack-tweetstorm-is-typing .jetpack-publicize-twitter__tweet-divider{opacity:.2;transition:opacity .5s}.jetpack-publicize-connection-label{align-items:center;display:flex}.jetpack-publicize-connection-label .components-connection-icon__picture{display:grid}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder,.jetpack-publicize-connection-label .components-connection-icon__picture img{border-radius:2px;grid-area:1/1/2/2;height:24px;width:24px}.jetpack-publicize-connection-label .components-connection-icon__picture .placeholder{background-color:#a8bece;display:block}.jetpack-publicize-connection-label .components-connection-icon__picture svg{background-color:#fff;border-radius:2px;grid-area:1/1/2/2;height:15px;margin-right:14px;margin-top:14px;width:15px}.jetpack-publicize-connection-label .components-connection-icon__picture svg.is-facebook{border-radius:50%}.components-connection-toggle{align-items:center;display:flex;position:relative;width:100%}.components-connection-toggle.is-not-checked .jetpack-gutenberg-social-icon{fill:#ddd}.components-connection-toggle.is-disabled,.components-disabled .components-connection-toggle{opacity:.5}.jetpack-ratings-button{cursor:pointer}.jetpack-ratings-button:focus{border:none;outline:none}.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em}.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff}.wp-block-jetpack-recurring-payments{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;width:100%}.wp-block-jetpack-recurring-payments .components-base-control__label{text-align:right}.wp-block-jetpack-recurring-payments .components-placeholder{min-height:150px;padding:24px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset{max-width:500px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p{font-size:13px;margin:20px 0 10px}.wp-block-jetpack-recurring-payments .components-placeholder__fieldset p:first-child{margin-top:0}.wp-block-jetpack-recurring-payments .components-placeholder__instructions .components-select-control__input{padding:0 8px 0 24px}.wp-block-jetpack-recurring-payments .components-placeholder .components-placeholder__instructions{display:block}.wp-block-jetpack-recurring-payments .components-placeholder label{font-size:13px}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar{pointer-events:none}.wp-block-jetpack-recurring-payments .editor-rich-text__inline-toolbar .components-toolbar{pointer-events:all}.wp-block-jetpack-recurring-payments .membership-button__add-amount{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__disclaimer{color:var(--color-gray-200);flex-basis:100%;font-style:italic;margin:0}.wp-block-jetpack-recurring-payments .membership-button__disclaimer a{color:var(--color-gray-400);line-height:36px}.wp-block-jetpack-recurring-payments .membership-button__field-button{margin-left:4px}.wp-block-jetpack-recurring-payments .membership-button__field-error .components-text-control__input{border:1px solid #d63638}.wp-block-jetpack-recurring-payments .membership-button__field-price{width:65%}.wp-block-jetpack-recurring-payments .membership-button__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-recurring-payments .membership-button__price-container .components-input-control__container{top:4px}.wp-block-jetpack-recurring-payments .membership-button__price-container div.membership-button__field-currency{border-left:10px solid transparent}.wp-block-jetpack-recurring-payments .membership-button__price-container p{margin-top:0}.wp-block-jetpack-recurring-payments.disclaimer-only{background:rgba(30,30,30,.62);box-sizing:content-box;font-size:13px;margin:0 -14px;padding:14px;text-align:center;transform:translateY(14px)}.is-dark-theme .wp-block-jetpack-recurring-payments.disclaimer-only{background:hsla(0,0%,100%,.65)}.wp-block-jetpack-recurring-payments .wp-block-jetpack-membership-button_notification{display:block}.jp-related-posts-i2__row{display:flex;margin-left:-10px;margin-right:-10px;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post{display:flex;flex-basis:0;flex-direction:column;flex-grow:1;margin:0 10px}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row}.jp-related-posts-i2__post-image-placeholder,.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-heading{font-size:1rem;line-height:1.2em;margin:.5rem 0}.jp-related-posts-i2__post-link{display:block;line-height:1.2em;margin:.2em 0;width:100%}.jp-related-posts-i2__post-img{width:100%}.jp-related-posts-i2__post-image-placeholder{display:block;margin:0 auto;max-width:350px;position:relative}.jp-related-posts-i2__post-image-placeholder-icon{position:absolute;right:calc(50% - 12px);top:calc(50% - 12px)}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{display:block;margin:0}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{margin:1rem 0 0;max-width:none}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-image-placeholder{margin:0;max-width:350px}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post-img-link{margin-top:1rem}.wp-block-jetpack-repeat-visitor .components-notice{margin:1em 0 0}.wp-block-jetpack-repeat-visitor .components-notice__content{color:var(--color-black)}.wp-block-jetpack-repeat-visitor .components-radio-control__option{text-align:right}.wp-block-jetpack-repeat-visitor .components-notice__content{font-size:1em;margin:.5em 0}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control{display:inline-block;max-width:8em;vertical-align:middle}.wp-block-jetpack-repeat-visitor .components-notice__content .components-base-control .components-base-control__field{margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder{min-height:inherit}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__label svg{margin-left:.5ch}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset{flex-wrap:nowrap}.wp-block-jetpack-repeat-visitor-placeholder .components-placeholder__fieldset .components-base-control{flex-basis:100%;margin-bottom:0}.wp-block-jetpack-repeat-visitor-placeholder .components-base-control__help{color:var(--muriel-hot-red-500);font-size:13px}.wp-block-jetpack-repeat-visitor--is-unselected .wp-block-jetpack-repeat-visitor-placeholder{display:none}.wp-block-jetpack-repeat-visitor-threshold{margin-left:20px}.wp-block-jetpack-repeat-visitor-threshold .components-text-control__input{margin-right:12px;text-align:center;width:5em}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor{padding:16px}.block-editor-inserter__preview .wp-block-jetpack-repeat-visitor>.block-editor-inner-blocks>.block-editor-block-list__layout{margin:0}.wp-block-jetpack-revue .components-base-control{margin-bottom:16px}.wp-block-jetpack-revue .components-base-control__label{display:block}.wp-block-jetpack-revue .components-placeholder__learn-more{margin-top:1em}.wp-block-jetpack-revue .components-text-control__input{color:#787c82}.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none}.wp-block-jetpack-send-a-message .block-editor-block-list__layout .wp-block{margin:0}.wp-block-jetpack-send-a-message .block-editor-inserter,.wp-block-jetpack-send-a-message .block-list-appender{display:none}div.wp-block-jetpack-whatsapp-button{display:flex;margin-left:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 56px 8px 16px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-right:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px}.jetpack-whatsapp-button__phonenumber .components-base-control{margin-bottom:0}.jetpack-whatsapp-button__phonenumber input.components-text-control__input{margin-bottom:5px}.jetpack-whatsapp-button__phonenumber select.components-select-control__input{min-height:30px;padding-right:10px;width:105px}.jetpack-whatsapp-button__phonenumber .components-placeholder__label svg{margin-left:6px}.jetpack-whatsapp-error{display:inline-flex;margin-bottom:10px}.jetpack-whatsapp-error span,.jetpack-whatsapp-error svg{fill:red;color:red;vertical-align:middle}.jetpack-whatsapp-error svg{margin:-3px 0 0 5px}.jetpack-whatsapp-button__popover .components-popover__content{min-width:260px;padding:12px}.wp-block[data-align=center] .wp-block-jetpack-whatsapp-button{justify-content:center}.jetpack-seo-message-box{background-color:#e0e0e0;border-radius:4px}.jetpack-seo-message-box textarea{width:100%}.jetpack-seo-character-count{padding-bottom:5px;padding-right:5px}.jetpack-clipboard-input{display:flex}.jetpack-clipboard-input .components-clipboard-button,.jetpack-clipboard-input .components-text-control__input{min-height:36px}.jetpack-clipboard-input .components-clipboard-button{margin-right:6px}.simple-payments__loading{animation:simple-payments-loading 1.6s ease-in-out infinite}@keyframes simple-payments-loading{0%{opacity:.5}50%{opacity:.7}to{opacity:.5}}.jetpack-simple-payments-wrapper{margin-bottom:1.5em}body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p{margin:0 0 1.5em;padding:0}.jetpack-simple-payments-description{white-space:pre-wrap}.jetpack-simple-payments-product{display:flex;flex-direction:column}.jetpack-simple-payments-product-image{flex:0 0 30%;margin-bottom:1.5em}.jetpack-simple-payments-image{box-sizing:border-box;min-width:70px;padding-top:100%;position:relative}.jetpack-simple-payments-image img{border:0;border-radius:0;height:auto;margin:0;max-height:100%;max-width:100%;padding:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:auto}.jetpack-simple-payments-price p,.jetpack-simple-payments-title p{font-weight:700}.jetpack-simple-payments-purchase-box{align-items:flex-start;display:flex}.jetpack-simple-payments-items{flex:0 0 auto;margin-left:10px}input[type=number].jetpack-simple-payments-items-number{background:#fff;font-size:16px;line-height:1;max-width:60px;padding:4px 8px}@media screen and (min-width:400px){.jetpack-simple-payments-product{flex-direction:row}.jetpack-simple-payments-product-image+.jetpack-simple-payments-details{flex-basis:70%;padding-right:1em}}.wp-block-jetpack-simple-payments{grid-column-gap:10px;display:grid;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;grid-template-columns:200px auto}.wp-block-jetpack-simple-payments .simple-payments__field .components-base-control__field{margin-bottom:1em}.wp-block-jetpack-simple-payments .simple-payments__field textarea{display:block}.wp-block-jetpack-simple-payments .simple-payments__field input,.wp-block-jetpack-simple-payments .simple-payments__field textarea{font:inherit}.wp-block-jetpack-simple-payments img{max-width:100%}.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-content .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-email .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__field.simple-payments__field-title .components-base-control__label{clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-text-control__input,.wp-block-jetpack-simple-payments .simple-payments__field-has-error .components-textarea-control__input{border-color:#d63638}.wp-block-jetpack-simple-payments .simple-payments__price-container{display:flex;flex-wrap:wrap}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-base-control__label,.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__label{display:block;font-weight:400;margin:0 0 4px}.wp-block-jetpack-simple-payments .simple-payments__price-container select.components-select-control__input{-webkit-appearance:none;-moz-appearance:none;height:auto;max-width:none;padding:3px 8px 1px}.wp-block-jetpack-simple-payments .simple-payments__price-container div.components-input-control__container{position:relative}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency{margin-left:5px}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-currency .components-input-control__container{width:calc(100% - 5px)}.wp-block-jetpack-simple-payments .simple-payments__price-container .simple-payments__field-price .components-base-control__field{display:flex;flex-direction:column}.wp-block-jetpack-simple-payments .simple-payments__price-container .help-message{flex:1 1 100%;margin-top:0}.wp-block-jetpack-simple-payments .simple-payments__price-container .components-input-control__suffix>div{align-items:center;bottom:0;box-sizing:border-box;display:flex;left:0;padding:0 4px;pointer-events:none;position:absolute;top:0}.wp-block-jetpack-simple-payments .simple-payments__field-email .components-text-control__input{max-width:400px}.wp-block-jetpack-simple-payments .simple-payments__field-multiple .components-toggle-control__label{line-height:1.4em}.wp-block-jetpack-simple-payments .simple-payments__field-content .components-textarea-control__input{min-height:32px;padding:8px;width:100%}.jetpack-simple-payments__purchase-link-text .components-base-control{margin-bottom:0}.jetpack-simple-payments__purchase-link-text input.components-text-control__input{margin-bottom:5px}.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;left:10px;margin-top:0;position:absolute;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;left:auto;padding-top:0;position:relative}.wp-block-jetpack-slideshow__add-item{margin-top:4px;width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button,.wp-block-jetpack-slideshow__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:focus,.wp-block-jetpack-slideshow__add-item .components-button.wp-block-jetpack-slideshow__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-slideshow_slide .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-jetpack-slideshow_slide.is-transient img{opacity:.3}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-left:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-left:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-right:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-right:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:right;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 0 -4px 2px;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.jetpack-social-previews__modal .components-modal__header{margin:0}.jetpack-social-previews__modal .components-modal__content{padding:0}.jetpack-social-previews__modal-previews{display:flex;flex-direction:column;height:100%}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{display:flex;flex-direction:row;justify-content:center;max-width:none;padding:12px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:0;margin:3px 0;outline:0;white-space:nowrap}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button svg{fill:currentColor;display:block}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button.is-active,.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):not(.is-primary):not(.is-tertiary):not(.is-link):hover{box-shadow:0 0 0 2px var(--wp-admin-theme-color)}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{background-color:#fff;flex:1;padding:10px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content>div{display:flex;justify-content:center}.jetpack-social-previews__modal-previews .twitter-preview__summary{max-width:100%}@media(min-width:600px){.jetpack-social-previews__modal-previews{width:calc(100vw - 40px)}}@media(min-width:960px){.jetpack-social-previews__modal-previews{flex-direction:row;min-height:500px;width:920px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs{flex-direction:column;justify-content:flex-start;padding:24px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button{font-size:13px}.jetpack-social-previews__modal-previews .components-tab-panel__tabs .components-button>svg{margin-left:8px}.jetpack-social-previews__modal-previews .components-tab-panel__tab-content{padding:40px}}.jetpack-social-previews__modal-upgrade{padding:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{height:auto;max-width:351px;width:100%}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{margin-bottom:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{font-size:2em;line-height:1.15}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{font-size:1.1em;line-height:1.4;list-style:none;margin-bottom:2em;padding-right:1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li{margin-bottom:12px;position:relative}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list li:before{color:#4ab866;content:"✓";position:absolute;right:-20px}@media(min-width:600px){.jetpack-social-previews__modal-upgrade{grid-gap:3em;display:grid;grid-template-columns:1fr 1fr;max-width:870px;padding-top:4em;width:80vw}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-illustration{grid-column:2;grid-row:1;max-width:100%;padding-left:2em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{grid-column:1;grid-row:1;margin-bottom:0;padding:0 1em 1em}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-heading{margin-top:0}.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-feature-list{padding-right:0}}@media(min-width:782px){.jetpack-social-previews__modal-upgrade .jetpack-social-previews__upgrade-description{padding:0 2em 2em}}.jetpack-gutenberg-social-icons{margin-bottom:1em}.jetpack-gutenberg-social-icons .jetpack-gutenberg-social-icon.jetpack-social-previews__icon{fill:currentColor;margin-left:5px}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%}.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;position:absolute;right:3px;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-left-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;left:0;margin:15px;padding:5px 3px;position:absolute;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{margin:auto;right:-84px}.wp-story-container .wp-story-next-slide{left:-84px;margin:auto}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-next-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(-180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 0 0 16px;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 0 0 12px;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-right:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{right:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{left:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-right:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-left:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:100%;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-left:15px;position:fixed;width:100%}.wp-block-jetpack-story__add-item{margin-top:4px;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button,.wp-block-jetpack-story__add-item .components-form-file-upload{height:100%;width:100%}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:focus,.wp-block-jetpack-story__add-item .components-button.wp-block-jetpack-story__add-item-button:hover{border:1px solid #949494}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{background-color:transparent;border:1px solid #50575e;color:#50575e;height:36px!important;outline:0;width:36px!important}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{background-color:transparent;border:1px solid #50575e}.wp-story-container .wp-story-next-slide button:hover i,.wp-story-container .wp-story-prev-slide button:hover i{color:#3381b8}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;left:0;margin:0;position:absolute}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{right:0}.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block}@keyframes tiled-gallery-img-placeholder{0%{background-color:#f6f7f7}50%{background-color:hsla(180,6%,97%,.5)}to{background-color:#f6f7f7}}.wp-block-jetpack-tiled-gallery{padding-left:4px;padding-right:4px}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item.is-transient img,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__item.is-transient img{margin-bottom:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img:focus{outline:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item>img{animation:tiled-gallery-img-placeholder 1.6s ease-in-out infinite}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected{filter:none;outline:4px solid #0085ba}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:after,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected:before{content:none}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient{height:100%;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-transient img{background-position:50%;background-size:cover;height:100%;opacity:.3;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{background:#fff;border:1px solid rgba(30,30,30,.62);border-radius:2px;transition:box-shadow .2s ease-out}@media(prefers-reduced-motion:reduce){.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu{transition-delay:0s;transition-duration:0s}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu:hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu:hover{box-shadow:0 2px 6px rgba(0,0,0,.05)}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{color:rgba(30,30,30,.62);height:24px;padding:2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:not(:disabled):not([aria-disabled=true]):not(.is-secondary):hover{box-shadow:none}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button{height:inherit;padding:0;width:inherit}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__inline-menu .components-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__item.is-selected .tiled-gallery__item__move-menu .components-button:focus{color:inherit}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item{margin-top:4px;width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-form-file-upload{width:100%}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;min-height:100px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button .dashicon{margin-top:10px}.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:focus,.wp-block-jetpack-tiled-gallery .tiled-gallery__add-item .components-button.tiled-gallery__add-item-button:hover{border:1px solid #949494}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{display:inline-flex;margin:8px;z-index:20}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu .components-button,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu .components-button{color:transparent}@media(min-width:600px){.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-7 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu,.columns-8 .wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{padding:2px}}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__inline-menu{left:-2px;position:absolute;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-menu{position:absolute;right:-2px;top:-2px}.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-backward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__move-forward,.wp-block-jetpack-tiled-gallery .tiled-gallery__item__remove{padding:0}.wp-block-jetpack-tiled-gallery .tiled-gallery__item .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.block-editor-block-preview__content .wp-block-jetpack-tiled-gallery .block-editor-media-placeholder{display:none}.tiled-gallery__filter-picker-menu{padding:7px}.tiled-gallery__filter-picker-menu .components-menu-item__button+.components-menu-item__button{margin-top:2px}.tiled-gallery__filter-picker-menu .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.no-videopress-media-placeholder .components-placeholder__fieldset{align-items:flex-start;flex-direction:row-reverse;justify-content:flex-end}.no-videopress-media-placeholder .components-placeholder__fieldset button{display:none}.no-videopress-media-placeholder .components-placeholder__fieldset .block-editor-media-placeholder__url-input-container button,.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button{display:inline-flex}.no-videopress-media-placeholder .components-placeholder__fieldset .no-videopress-disabled-button:last-child{margin-left:12px}.videopress-block-hide{display:none}.seekbar-color-settings__panel .components-panel__body.is-opened{padding:0}.seekbar-color-settings__panel .components-panel__body{border-top:none}.videopress-block-tracks-editor>.components-popover__content{width:360px}.videopress-block-tracks-editor__track-list-track{align-items:center;display:flex;min-height:23px;padding:4px 12px 4px 0;place-content:space-between}.videopress-block-tracks-editor__track-list-track-delete{align-items:center;display:flex}.videopress-block-tracks-editor__single-track-editor-label-language{display:flex;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control{width:50%}.videopress-block-tracks-editor__single-track-editor-label-language>.components-base-control:first-child{margin-left:16px}.videopress-block-tracks-editor__single-track-editor-kind-select{max-width:240px}.videopress-block-tracks-editor__single-track-editor-buttons-container{display:flex;margin-top:32px;min-height:36px;place-content:space-between}.videopress-block-tracks-editor__single-track-editor-upload-file-help{color:#757575;font-size:12px;margin-top:12px}.videopress-block-tracks-editor__single-track-editor-label{color:#757575;display:block;font-size:11px;font-weight:500;margin-bottom:12px;margin-top:4px;text-transform:uppercase}.videopress-block-tracks-editor>.components-popover__content>div,.videopress-block-tracks-editor__add-tracks-container .components-menu-group__label,.videopress-block-tracks-editor__track-list .components-menu-group__label{padding:0}.videopress-block-tracks-editor__add-tracks-container,.videopress-block-tracks-editor__single-track-editor,.videopress-block-tracks-editor__track-list{padding:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-base-control__field{margin-bottom:12px}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-text-control__input{margin-right:0}.videopress-block-tracks-editor__single-track-editor .components-base-control .components-input-control__label{margin-bottom:4px}.videopress-block-tracks-editor__single-track-editor-upload-file-label{display:flex}.videopress-block-tracks-editor__single-track-editor-upload-file-label .components-form-file-upload,.videopress-block-tracks-editor__single-track-editor-upload-file-label .videopress-block-tracks-editor__single-track-editor-upload-file-label-name{margin-inline-start:8px}.videopress-block-tracks-editor__single-track-editor-error{color:#cc1818;padding:12px 0}[data-type="jetpack/wordads"][data-align=center] .jetpack-wordads__ad{margin:0 auto}.jetpack-wordads__ad{display:flex;flex-direction:column;max-width:100%;overflow:hidden}.jetpack-wordads__ad .components-placeholder{flex-grow:2}.jetpack-wordads__ad .components-toggle-control__label{line-height:1.4em}.jetpack-wordads__ad .components-base-control__field,.wp-block-jetpack-wordads__format-picker{padding:7px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button+.components-menu-item__button{margin-top:2px}.wp-block-jetpack-wordads__format-picker .components-menu-item__button.is-active{box-shadow:0 0 0 2px #949494!important;color:#1e1e1e}.jetpack-wordads__mobile-visibility{margin-top:20px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/eventbrite/view.asset.php b/plugins/jetpack/_inc/blocks/eventbrite/view.asset.php
index 8a7f7499..ac6ea0ad 100644
--- a/plugins/jetpack/_inc/blocks/eventbrite/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/eventbrite/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '3eb7e95418f32c9216026839c9a56f7a'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'c8e72e2eaa54a7d11f6f9519709d54d6'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/eventbrite/view.css b/plugins/jetpack/_inc/blocks/eventbrite/view.css
index b418dbe5..58335864 100644
--- a/plugins/jetpack/_inc/blocks/eventbrite/view.css
+++ b/plugins/jetpack/_inc/blocks/eventbrite/view.css
@@ -1 +1 @@
-.eventbrite__direct-link{display:none}.eventbrite__in-page-checkout{height:auto!important}.eventbrite__in-page-checkout iframe{height:425px} \ No newline at end of file
+.eventbrite__direct-link:not(:only-child){display:none}.wp-block-jetpack-eventbrite--embed{height:auto!important}.wp-block-jetpack-eventbrite--embed iframe{height:425px}.wp-block-jetpack-eventbrite--embed.aligncenter{text-align:center}.eventbrite__lightbox{background:rgba(57,54,79,.8)}.eventbrite__lighbox-inside{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;width:100%}@media(max-width:660px){.eventbrite__lighbox-iframe-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}}@media(min-width:661px){.eventbrite__lighbox-iframe-wrapper{height:95%;margin:auto;max-height:720px;max-width:1080px;position:relative;width:95%}}.eventbrite__lighbox-iframe{margin:0}.eventbrite__lighbox-close{height:40px;position:absolute;right:0;top:0;width:40px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/eventbrite/view.js b/plugins/jetpack/_inc/blocks/eventbrite/view.js
index 17799557..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/eventbrite/view.js
+++ b/plugins/jetpack/_inc/blocks/eventbrite/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=280)}({280:function(e,t,n){n(42),e.exports=n(281)},281:function(e,t,n){"use strict";n.r(t);n(282)},282:function(e,t,n){},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/eventbrite/view.rtl.css b/plugins/jetpack/_inc/blocks/eventbrite/view.rtl.css
index b418dbe5..54894080 100644
--- a/plugins/jetpack/_inc/blocks/eventbrite/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/eventbrite/view.rtl.css
@@ -1 +1 @@
-.eventbrite__direct-link{display:none}.eventbrite__in-page-checkout{height:auto!important}.eventbrite__in-page-checkout iframe{height:425px} \ No newline at end of file
+.eventbrite__direct-link:not(:only-child){display:none}.wp-block-jetpack-eventbrite--embed{height:auto!important}.wp-block-jetpack-eventbrite--embed iframe{height:425px}.wp-block-jetpack-eventbrite--embed.aligncenter{text-align:center}.eventbrite__lightbox{background:rgba(57,54,79,.8)}.eventbrite__lighbox-inside{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;width:100%}@media(max-width:660px){.eventbrite__lighbox-iframe-wrapper{bottom:0;left:0;position:absolute;right:0;top:0}}@media(min-width:661px){.eventbrite__lighbox-iframe-wrapper{height:95%;margin:auto;max-height:720px;max-width:1080px;position:relative;width:95%}}.eventbrite__lighbox-iframe{margin:0}.eventbrite__lighbox-close{height:40px;left:0;position:absolute;top:0;width:40px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/frontend-nudge.html b/plugins/jetpack/_inc/blocks/frontend-nudge.html
new file mode 100644
index 00000000..1b0a61a3
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/frontend-nudge.html
@@ -0,0 +1 @@
+<div class="jetpack-upgrade-plan-banner"><div class="jetpack-upgrade-plan-banner__wrapper"><span class="undefined__description banner-description">#description#</span><a href="#checkoutUrl#" target="_top" class="components-button is-primary">#buttonText#</a></div></div> \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/gif/view.asset.php b/plugins/jetpack/_inc/blocks/gif/view.asset.php
index eb93d1f1..79511a75 100644
--- a/plugins/jetpack/_inc/blocks/gif/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/gif/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '1727ed26eba1a620ef43c66f967b78e7'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '9c6a6f49c054a0059b17410e982d4f78'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/gif/view.css b/plugins/jetpack/_inc/blocks/gif/view.css
index 18a8d7ea..89ff2cd7 100644
--- a/plugins/jetpack/_inc/blocks/gif/view.css
+++ b/plugins/jetpack/_inc/blocks/gif/view.css
@@ -1 +1 @@
-.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;left:0;height:100%;position:absolute;top:0;width:100%} \ No newline at end of file
+.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/gif/view.js b/plugins/jetpack/_inc/blocks/gif/view.js
index 46edd049..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/gif/view.js
+++ b/plugins/jetpack/_inc/blocks/gif/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=283)}({130:function(e,t,n){},283:function(e,t,n){n(42),e.exports=n(284)},284:function(e,t,n){"use strict";n.r(t);n(130)},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/gif/view.rtl.css b/plugins/jetpack/_inc/blocks/gif/view.rtl.css
index a5c6a983..fb8e41af 100644
--- a/plugins/jetpack/_inc/blocks/gif/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/gif/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{margin-top:.5em;margin-bottom:1em;color:#555d66;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;right:0;height:100%;position:absolute;top:0;width:100%} \ No newline at end of file
+.wp-block-jetpack-gif{clear:both;margin:0 0 20px}.wp-block-jetpack-gif figure{margin:0;position:relative;width:100%}.wp-block-jetpack-gif.aligncenter{text-align:center}.wp-block-jetpack-gif.alignleft,.wp-block-jetpack-gif.alignright{min-width:300px}.wp-block-jetpack-gif .wp-block-jetpack-gif-caption{color:#949494;margin-bottom:1em;margin-top:.5em;text-align:center}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper{height:0;margin:0;padding:calc(56.2% + 12px) 0 0;position:relative;width:100%}.wp-block-jetpack-gif .wp-block-jetpack-gif-wrapper iframe{border:0;height:100%;position:absolute;right:0;top:0;width:100%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/google-calendar/view.asset.php b/plugins/jetpack/_inc/blocks/google-calendar/view.asset.php
new file mode 100644
index 00000000..c48d51c9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/google-calendar/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'bfe061739c38b6ac93c4389180a3d515'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/google-calendar/view.css b/plugins/jetpack/_inc/blocks/google-calendar/view.css
new file mode 100644
index 00000000..6563b451
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/google-calendar/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/google-calendar/view.js b/plugins/jetpack/_inc/blocks/google-calendar/view.js
new file mode 100644
index 00000000..ec1b31b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/google-calendar/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/google-calendar/view.rtl.css b/plugins/jetpack/_inc/blocks/google-calendar/view.rtl.css
new file mode 100644
index 00000000..6563b451
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/google-calendar/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-google-calendar{min-width:420px}.wp-block-jetpack-google-calendar iframe{border:none;width:100%}.wp-block-jetpack-google-calendar>amp-iframe>[placeholder]{line-height:1}.wp-block-jetpack-google-calendar>amp-iframe>noscript{display:inline-block!important}.wp-block-jetpack-google-calendar>amp-iframe>noscript>iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%;z-index:1} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/image-compare/view.asset.php b/plugins/jetpack/_inc/blocks/image-compare/view.asset.php
new file mode 100644
index 00000000..1203ae4f
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/image-compare/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => '225c793355c4520e80b860082c56c095'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/image-compare/view.css b/plugins/jetpack/_inc/blocks/image-compare/view.css
new file mode 100644
index 00000000..94be48ed
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/image-compare/view.css
@@ -0,0 +1 @@
+div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-left:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-left:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto auto auto -3px;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}div.jx-arrow.jx-right{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;left:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;right:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{left:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{right:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{left:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;right:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{left:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:0;left:0}div.jx-image.jx-left img{left:0}div.jx-image.jx-right{background-position:100%;right:0}div.jx-image.jx-right img{bottom:0;right:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:left;left:0}div.jx-image.jx-right div.jx-label{float:right;right:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;left:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:left .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-left:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);left:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);right:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(90deg)} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/image-compare/view.js b/plugins/jetpack/_inc/blocks/image-compare/view.js
new file mode 100644
index 00000000..2bdf1c7f
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/image-compare/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,e,i){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(i.p=window.Jetpack_Block_Assets_Base_Url.url)},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var o=e[n]={exports:{}};return t[n](o,o.exports,i),o.exports}i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,{a:e}),e},i.d=function(t,e){for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;i.g.importScripts&&(t=i.g.location+"");var e=i.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t+"../"}(),function(){"use strict";i(57836)}(),function(){"use strict";var t=i(47701);i.n(t)()((function(){const t={sliders:[],OPTIMIZATION_ACCEPTED:1,OPTIMIZATION_WAS_CONSTRAINED:2};function e(t,e){const i=this;this.image=new Image,this.loaded=!1,this.image.onload=function(){i.loaded=!0,e._onLoaded()},this.image.src=t.src,this.image.alt=t.alt||"",this.label=t.label||!1}function i(t,e){t&&t.classList.add(e)}function n(t,e){t&&t.classList.remove(e)}function s(t){return{width:parseInt(window.getComputedStyle(t).width,10),height:parseInt(window.getComputedStyle(t).height,10)}}function o(t,e){let i;if("string"==typeof e||"number"==typeof e)i=parseInt(e,10);else{const n=t.getBoundingClientRect(),s={top:n.top+document.body.scrollTop+document.documentElement.scrollTop,left:n.left+document.body.scrollLeft+document.documentElement.scrollLeft},o=t.offsetWidth;i=(function(t){let e;return e=t.pageX?t.pageX:t.touches?t.touches[0].pageX:t.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,e}(e)-s.left)/o*100}return i}function r(t,e,i){let n;if("string"==typeof e||"number"==typeof e)n=parseInt(e,10);else{const s=t.getBoundingClientRect(),o={top:s.top+i.body.scrollTop+i.documentElement.scrollTop,left:s.left+i.body.scrollLeft+i.documentElement.scrollLeft},r=t.offsetHeight;n=(function(t){let e;return e=t.pageY?t.pageY:t.touches?t.touches[0].pageY:t.clientY+document.body.scrollTop+document.documentElement.scrollTop,e}(e)-o.top)/r*100}return n}const a={animate:!0,showLabels:!0,makeResponsive:!0};function l(t,i,n){let s;for(s in this.element=t,this.options={animate:!0,showLabels:!0,makeResponsive:!0,startingPosition:"50%",mode:"horizontal",callback:null},this.options)s in n&&(this.options[s]=s in a?"string"!=typeof(o=n[s])?Boolean(o):!("false"===o||""===o):n[s]);var o;2===i.length&&(this.imgBefore=new e(i[0],this),this.imgAfter=new e(i[1],this))}l.prototype={updateSlider:function(t,e){let s;s="vertical"===this.options.mode?r(this.slider,t,this.sliderParentDocument):o(this.slider,t),s=s.toFixed(2)+"%";const a=parseFloat(s),l=100-a+"%";a>0&&a<100&&(n(this.handle,"transition"),n(this.rightImage,"transition"),n(this.leftImage,"transition"),this.options.animate&&e&&(i(this.handle,"transition"),i(this.leftImage,"transition"),i(this.rightImage,"transition")),"vertical"===this.options.mode?(this.handle.style.top=s,this.leftImage.style.height=s,this.rightImage.style.height=l):(this.handle.style.left=s,this.leftImage.style.width=s,this.rightImage.style.width=l),this.sliderPosition=s)},getPosition:function(){return this.sliderPosition},displayLabel:function(t,e){const i=document.createElement("div");i.className="jx-label",i.setAttribute("tabindex",0),function(t,e){document.body.textContent?t.textContent=e:t.innerText=e}(i,e),t.appendChild(i)},setStartingPosition:function(t){this.options.startingPosition=t},calculateDims:function(t,e){const i=(n=this.imgBefore.image,{width:n.naturalWidth,height:n.naturalHeight,aspect:function(){return this.width/this.height}}).aspect();var n;return t?e=t/i:e&&(t=e*i),{width:t,height:e,ratio:i}},responsivizeIframe:function(t){return t.height<window.innerHeight?t.ratio>=1&&(this.wrapper.style.paddingTop=parseInt((window.innerHeight-t.height)/2)+"px"):t.height>window.innerHeight&&(t=this.calculateDims(0,window.innerHeight),this.wrapper.style.paddingLeft=parseInt((window.innerWidth-t.width)/2)+"px"),t},setWrapperDimensions:function(){const t=s(this.wrapper.parentNode).width,e=s(this.wrapper.parentNode).height;let i=this.calculateDims(t,e);window.location===window.parent.location||this.options.makeResponsive||(i=this.responsivizeIframe(i)),this.wrapper.style.height=parseInt(i.height)+"px",this.wrapper.style.width=parseInt(i.width)+"px"},optimizeWrapper:function(e){let i=t.OPTIMIZATION_ACCEPTED;return this.imgBefore.image.naturalWidth>=e&&this.imgAfter.image.naturalWidth>=e?(this.wrapper.style.width=e+"px",i=t.OPTIMIZATION_WAS_CONSTRAINED):this.imgAfter.image.naturalWidth<e?this.wrapper.style.width=this.imgAfter.image.naturalWidth+"px":this.wrapper.style.width=this.imgBefore.image.naturalWidth+"px",this.setWrapperDimensions(),i},_onLoaded:function(){if(this.imgBefore&&!0===this.imgBefore.loaded&&this.imgAfter&&!0===this.imgAfter.loaded){if(this.wrapper=this.element,!this.wrapper||this.wrapper.querySelector(".jx-slider"))return;i(this.wrapper,"juxtapose"),this.wrapper.style.width=this.imgBefore.image.naturalWidth,this.setWrapperDimensions(),this.slider=document.createElement("div"),this.slider.className="jx-slider",this.wrapper.appendChild(this.slider),this.sliderParentDocument=this.wrapper.ownerDocument,"horizontal"!==this.options.mode&&i(this.slider,this.options.mode),this.handle=document.createElement("div"),this.handle.className="jx-handle",this.rightImage=document.createElement("div"),this.rightImage.className="jx-image jx-right",this.rightImage.appendChild(this.imgAfter.image),this.leftImage=document.createElement("div"),this.leftImage.className="jx-image jx-left",this.leftImage.appendChild(this.imgBefore.image),this.slider.appendChild(this.handle),this.slider.appendChild(this.leftImage),this.slider.appendChild(this.rightImage),this.leftArrow=document.createElement("div"),this.rightArrow=document.createElement("div"),this.control=document.createElement("div"),this.controller=document.createElement("div"),this.leftArrow.className="jx-arrow jx-left",this.rightArrow.className="jx-arrow jx-right",this.control.className="jx-control",this.controller.className="jx-controller",this.controller.setAttribute("tabindex",0),this.controller.setAttribute("role","slider"),this.controller.setAttribute("aria-valuenow",50),this.controller.setAttribute("aria-valuemin",0),this.controller.setAttribute("aria-valuemax",100),this.controller.setAttribute("aria-label",window.imageCompareHandle?.msg||"Slide to compare images"),this.handle.appendChild(this.leftArrow),this.handle.appendChild(this.control),this.handle.appendChild(this.rightArrow),this.control.appendChild(this.controller),this._init()}},_init:function(){this.updateSlider(this.options.startingPosition,!1),!0===this.options.showLabels&&(this.imgBefore.label&&this.displayLabel(this.leftImage,this.imgBefore.label),this.imgAfter.label&&this.displayLabel(this.rightImage,this.imgAfter.label));const e=this;window.addEventListener("resize",(function(){e.setWrapperDimensions()})),this.slider.addEventListener("mousedown",(function(t){t.preventDefault(),e.updateSlider(t,!0);let i=!0;this.addEventListener("mousemove",(function(t){t.preventDefault(),i&&e.updateSlider(t,!1)})),this.addEventListener("mouseup",(function(t){t.preventDefault(),t.stopPropagation(),i=!1}))})),this.slider.addEventListener("touchstart",(function(t){t.preventDefault(),t.stopPropagation(),e.updateSlider(t,!0),this.addEventListener("touchmove",(function(t){t.preventDefault(),t.stopPropagation(),e.updateSlider(t,!1)}))})),this.handle.addEventListener("keydown",(function(t){const i=t.which||t.keyCode;let n=parseFloat(this.style.left);if(37===i){n-=1;const t=parseFloat(this.style.left)-1;e.updateSlider(t,!1),e.controller.setAttribute("aria-valuenow",n)}if(39===i){n+=1;const t=parseFloat(this.style.left)+1;e.updateSlider(t,!1),e.controller.setAttribute("aria-valuenow",n)}})),this.leftImage.addEventListener("keydown",(function(t){const i=t.which||t.keyCode;13!==i&&32!==i||(e.updateSlider("90%",!0),e.controller.setAttribute("aria-valuenow",91))})),this.rightImage.addEventListener("keydown",(function(t){const i=t.which||t.keyCode;13!==i&&32!==i||(e.updateSlider("10%",!0),e.controller.setAttribute("aria-valuenow",10))})),t.sliders.push(this),this.options.callback&&"function"==typeof this.options.callback&&this.options.callback(this)}},t.makeSlider=function(e,n){void 0===n&&(n=t.sliders.length);const s=e,o=s.querySelectorAll("img");if(o.length<2)return;const r={};s.getAttribute("data-animate")&&(r.animate=s.getAttribute("data-animate")),s.getAttribute("data-showlabels")&&(r.showLabels=s.getAttribute("data-showlabels")),s.getAttribute("data-startingposition")&&(r.startingPosition=s.getAttribute("data-startingposition")),s.getAttribute("data-mode")&&(r.mode=s.getAttribute("data-mode")),s.getAttribute("data-makeresponsive")&&(r.mode=s.getAttribute("data-makeresponsive"));return i(e,"juxtapose-"+n),s.innerHTML?s.innerHTML="":s.innerText="",new t.JXSlider(e,[{src:o[0].src,label:o[0].getAttribute("data-label"),alt:o[0].alt},{src:o[1].src,label:o[1].getAttribute("data-label"),alt:o[1].alt}],r)},t.scanPage=function(){const e=document.querySelectorAll(".juxtapose");for(let i=0;i<e.length;i++)t.makeSlider(e[i],i)},t.JXSlider=l,window.juxtapose=t,t.scanPage()}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/image-compare/view.rtl.css b/plugins/jetpack/_inc/blocks/image-compare/view.rtl.css
new file mode 100644
index 00000000..3ebf5ac1
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/image-compare/view.rtl.css
@@ -0,0 +1 @@
+div.juxtapose{font-family:Helvetica,Arial,sans-serif;width:100%}div.jx-slider{color:#f3f3f3;cursor:pointer;height:100%;overflow:hidden;position:relative;width:100%}div.jx-handle{cursor:col-resize;height:100%;margin-right:-20px;position:absolute;width:40px;z-index:15}.vertical div.jx-handle{cursor:row-resize;height:40px;margin-right:0;margin-top:-20px;width:100%}div.jx-control{background-color:currentColor;height:100%;margin-left:auto;margin-right:auto;width:3px}.vertical div.jx-control{background-color:currentColor;height:3px;position:relative;top:50%;transform:translateY(-50%);width:100%}div.jx-controller{background-color:currentColor;bottom:0;height:60px;margin:auto -3px auto auto;position:absolute;top:0;width:9px}.vertical div.jx-controller{height:9px;margin-left:auto;margin-right:auto;position:relative;top:-3px;width:100px}div.jx-arrow{bottom:0;margin:auto;top:0}.vertical div.jx-arrow,div.jx-arrow{height:0;position:absolute;transition:all .2s ease;width:0}.vertical div.jx-arrow{left:0;margin:0 auto;right:0}div.jx-arrow.jx-left{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:8px 0 8px 8px;right:2px}div.jx-arrow.jx-right{border-color:transparent currentcolor transparent transparent;border-style:solid;border-width:8px 8px 8px 0;left:2px}.vertical div.jx-arrow.jx-left{border-color:transparent transparent currentcolor;border-style:solid;border-width:0 8px 8px;right:0;top:2px}.vertical div.jx-arrow.jx-right{border-color:currentcolor transparent transparent;border-style:solid;border-width:8px 8px 0;bottom:2px;left:0;top:auto}div.jx-handle:active div.jx-arrow.jx-left,div.jx-handle:hover div.jx-arrow.jx-left{right:-1px}div.jx-handle:active div.jx-arrow.jx-right,div.jx-handle:hover div.jx-arrow.jx-right{left:-1px}.vertical div.jx-handle:active div.jx-arrow.jx-left,.vertical div.jx-handle:hover div.jx-arrow.jx-left{right:0;top:0}.vertical div.jx-handle:active div.jx-arrow.jx-right,.vertical div.jx-handle:hover div.jx-arrow.jx-right{bottom:0;left:0}div.jx-image{display:inline-block;height:100%;overflow:hidden;position:absolute;top:0}.vertical div.jx-image{right:0;top:auto;width:100%}div.jx-slider div.jx-image img{height:100%!important;margin-bottom:0;max-height:none!important;max-width:none!important;position:absolute;width:auto!important;z-index:5}div.jx-slider.vertical div.jx-image img{height:auto!important;width:100%!important}div.jx-image.jx-left{background-position:100%;right:0}div.jx-image.jx-left img{right:0}div.jx-image.jx-right{background-position:0;left:0}div.jx-image.jx-right img{bottom:0;left:0}.veritcal div.jx-image.jx-left{background-position:top;top:0}.veritcal div.jx-image.jx-left img{top:0}.vertical div.jx-image.jx-right{background-position:bottom;bottom:0}.veritcal div.jx-image.jx-right img{bottom:0}div.jx-image div.jx-label{background-color:#000;background-color:rgba(0,0,0,.7);color:#fff;display:inline-block;font-size:1em;line-height:18px;padding:.25em .75em;position:relative;top:0;vertical-align:middle;white-space:nowrap;z-index:10}div.jx-image.jx-left div.jx-label{float:right;right:0}div.jx-image.jx-right div.jx-label{float:left;left:0}.vertical div.jx-image div.jx-label{display:table;position:absolute}.vertical div.jx-image.jx-right div.jx-label{bottom:0;right:0;top:auto}div.jx-image.transition{transition:width .5s ease}div.jx-handle.transition{transition:right .5s ease}.vertical div.jx-image.transition{transition:height .5s ease}.vertical div.jx-handle.transition{transition:top .5s ease}div.jx-controller:focus,div.jx-image.jx-left div.jx-label:focus,div.jx-image.jx-right div.jx-label:focus,figure.wp-block-jetpack-image-compare figcaption{font-size:85%;text-align:center}div.jx-control{color:#fff}.vertical div.jx-controller,div.jx-controller{border-radius:50%;height:48px;width:48px}div.jx-controller{margin-right:-22.5px}.vertical div.jx-controller{transform:translateY(-19.5px)}.vertical div.jx-arrow.jx-left,.vertical div.jx-arrow.jx-right,div.jx-arrow.jx-left,div.jx-arrow.jx-right{background-repeat:no-repeat;border:none;height:24px;width:24px;will-change:transform;z-index:1}div.jx-arrow.jx-left{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEzLjQgMTggOCAxMmw1LjQtNiAxLjIgMS00LjYgNSA0LjYgNXoiLz48L3N2Zz4=);right:0}div.jx-arrow.jx-right{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEwLjYgNiA5LjQgN2w0LjYgNS00LjYgNSAxLjIgMSA1LjQtNnoiLz48L3N2Zz4=);left:0}div.vertical div.jx-arrow.jx-left,div.vertical div.jx-arrow.jx-right{transform:rotate(-90deg)} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png b/plugins/jetpack/_inc/blocks/images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png
new file mode 100644
index 00000000..bb291bcc
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/eventbrite-in-page-example-c351ec80e4dd5d39433d.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/example_160x600-ccbc594f54431dafa70d.png b/plugins/jetpack/_inc/blocks/images/example_160x600-ccbc594f54431dafa70d.png
new file mode 100644
index 00000000..629d9397
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/example_160x600-ccbc594f54431dafa70d.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/example_300x250-5b93e8174f02d48c40b7.png b/plugins/jetpack/_inc/blocks/images/example_300x250-5b93e8174f02d48c40b7.png
new file mode 100644
index 00000000..bc6e1432
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/example_300x250-5b93e8174f02d48c40b7.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/example_320x50-7110edf045141630a222.png b/plugins/jetpack/_inc/blocks/images/example_320x50-7110edf045141630a222.png
new file mode 100644
index 00000000..ea31a52f
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/example_320x50-7110edf045141630a222.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/example_728x90-d9de384932330b92e1c3.png b/plugins/jetpack/_inc/blocks/images/example_728x90-d9de384932330b92e1c3.png
new file mode 100644
index 00000000..958a024a
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/example_728x90-d9de384932330b92e1c3.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/img-example-after-d6db862c442c24ad1c63.png b/plugins/jetpack/_inc/blocks/images/img-example-after-d6db862c442c24ad1c63.png
new file mode 100644
index 00000000..0249ac04
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/img-example-after-d6db862c442c24ad1c63.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/img-example-before-4592b4656108c1429614.png b/plugins/jetpack/_inc/blocks/images/img-example-before-4592b4656108c1429614.png
new file mode 100644
index 00000000..f1e88ebe
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/img-example-before-4592b4656108c1429614.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/map-preview-97bda80ebb6981457630.jpg b/plugins/jetpack/_inc/blocks/images/map-preview-97bda80ebb6981457630.jpg
new file mode 100644
index 00000000..d9a55eb9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/map-preview-97bda80ebb6981457630.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg b/plugins/jetpack/_inc/blocks/images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg
new file mode 100644
index 00000000..34cc1412
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/map-theme_default-b53ccdf170e5ac873ff0.jpg b/plugins/jetpack/_inc/blocks/images/map-theme_default-b53ccdf170e5ac873ff0.jpg
new file mode 100644
index 00000000..35505eb1
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/map-theme_default-b53ccdf170e5ac873ff0.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/map-theme_satellite-cc50c608e244f90d18dc.jpg b/plugins/jetpack/_inc/blocks/images/map-theme_satellite-cc50c608e244f90d18dc.jpg
new file mode 100644
index 00000000..ef6ae417
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/map-theme_satellite-cc50c608e244f90d18dc.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/map-theme_terrain-ac291441b3461820747d.jpg b/plugins/jetpack/_inc/blocks/images/map-theme_terrain-ac291441b3461820747d.jpg
new file mode 100644
index 00000000..eee1a2da
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/map-theme_terrain-ac291441b3461820747d.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/oval-5f1d889983a8747472c7.svg b/plugins/jetpack/_inc/blocks/images/oval-5f1d889983a8747472c7.svg
new file mode 100644
index 00000000..cb149ec4
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/oval-5f1d889983a8747472c7.svg
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="32px" height="38px" viewBox="0 0 32 38" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 52.1 (67048) - http://www.bohemiancoding.com/sketch -->
+ <title>Oval Copy</title>
+ <desc>Created with Sketch.</desc>
+ <defs>
+ <path d="M119,136 C119,136 135,124.692424 135,114 C135,103.307576 127.836556,98 119,98 C110.163444,98 103,103.307576 103,114 C103,124.692424 119,136 119,136 Z" id="path-1"></path>
+ <mask id="mask-2" maskContentUnits="userSpaceOnUse" maskUnits="objectBoundingBox" x="0" y="0" width="32" height="38" fill="white">
+ <use xlink:href="#path-1"></use>
+ </mask>
+ </defs>
+ <g id="Map-Block" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-dasharray="4">
+ <g id="Revised-01-Placeholder-Copy" transform="translate(-496.000000, -376.000000)" stroke="#444444" stroke-width="4">
+ <g id="Group" transform="translate(393.000000, 278.000000)">
+ <use id="Oval-Copy" mask="url(#mask-2)" xlink:href="#path-1"></use>
+ </g>
+ </g>
+ </g>
+</svg> \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/images/paypal-button-2x-3d5d36867a0f3728cc3a.png b/plugins/jetpack/_inc/blocks/images/paypal-button-2x-3d5d36867a0f3728cc3a.png
new file mode 100644
index 00000000..ceea141d
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/paypal-button-2x-3d5d36867a0f3728cc3a.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/paypal-button-5ecd2d5421d74f39e027.png b/plugins/jetpack/_inc/blocks/images/paypal-button-5ecd2d5421d74f39e027.png
new file mode 100644
index 00000000..13bbad02
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/paypal-button-5ecd2d5421d74f39e027.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/simple-payments_example-1-0273eeccd8d120df4984.jpg b/plugins/jetpack/_inc/blocks/images/simple-payments_example-1-0273eeccd8d120df4984.jpg
new file mode 100644
index 00000000..38df0814
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/simple-payments_example-1-0273eeccd8d120df4984.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/slideshow_example-1-07a3f164621235df0419.jpg b/plugins/jetpack/_inc/blocks/images/slideshow_example-1-07a3f164621235df0419.jpg
new file mode 100644
index 00000000..27f5f777
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/slideshow_example-1-07a3f164621235df0419.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/slideshow_example-2-2ee401e47066229bdac5.jpg b/plugins/jetpack/_inc/blocks/images/slideshow_example-2-2ee401e47066229bdac5.jpg
new file mode 100644
index 00000000..028ec1c6
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/slideshow_example-2-2ee401e47066229bdac5.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/slideshow_example-3-0682afca66c485f17ff6.jpg b/plugins/jetpack/_inc/blocks/images/slideshow_example-3-0682afca66c485f17ff6.jpg
new file mode 100644
index 00000000..8449a6be
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/slideshow_example-3-0682afca66c485f17ff6.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/story_example-1-716db2e4f5a074d302f7.png b/plugins/jetpack/_inc/blocks/images/story_example-1-716db2e4f5a074d302f7.png
new file mode 100644
index 00000000..74291967
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/story_example-1-716db2e4f5a074d302f7.png
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg
new file mode 100644
index 00000000..d46bb739
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-1-d2817eb0e669267ab3eb.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg
new file mode 100644
index 00000000..6b863fe8
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-2-7d8f0cf8e262f0112691.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-3-07a3f164621235df0419.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-3-07a3f164621235df0419.jpg
new file mode 100644
index 00000000..27f5f777
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-3-07a3f164621235df0419.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg
new file mode 100644
index 00000000..028ec1c6
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-4-2ee401e47066229bdac5.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg
new file mode 100644
index 00000000..e1c4d96a
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-5-a1935fd9cf1181168d90.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg
new file mode 100644
index 00000000..6788e2c2
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/tiled-gallery_example-6-9f9d39c6af0fb4b0d99c.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/images/upgrade-illustration-5b3059f7101ac37f4339.svg b/plugins/jetpack/_inc/blocks/images/upgrade-illustration-5b3059f7101ac37f4339.svg
new file mode 100644
index 00000000..eccd28db
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/upgrade-illustration-5b3059f7101ac37f4339.svg
@@ -0,0 +1,37 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="351" height="264" fill="none">
+ <path fill="#fff" stroke="#DCDCDE" d="M.5.5h350V263H.5z"/>
+ <path fill="#fff" stroke="#DCDCDE" d="M47.6.5H.5V263h47z"/>
+ <mask id="a" width="18" height="18" x="15" y="18" maskUnits="userSpaceOnUse">
+ <path fill="#fff" fill-rule="evenodd" d="M23.9 18.8a8.6 8.6 0 100 17.2 8.6 8.6 0 000-17.2zm-7.3 8.6c0-1 .2-2 .6-3l3.5 9.5a7.3 7.3 0 01-4-6.5zm5.2 7a7.3 7.3 0 004.5-.1v-.1L24 28l-2.2 6.4zM25 24l.8-.1c.4 0 .4-.6 0-.6l-2 .1-1.9-.1c-.4 0-.4.6 0 .6h.7l1.2 3.2-1.6 4.8-2.7-8h.9c.4 0 .3-.6 0-.6l-2 .1h-.5a7.3 7.3 0 0111-1.4c-.8 0-1.3.6-1.3 1.3 0 .6.3 1 .6 1.6l.1.1c.3.5.6 1.1.6 2 0 .6-.2 1.3-.5 2.2v.2l-.8 2.4L25 24zm4.9 3.3l-2.2 6.4a7.3 7.3 0 002.7-9.8v.7c0 .8-.1 1.6-.5 2.7z" clip-rule="evenodd"/>
+ </mask>
+ <g mask="url(#a)">
+ <path fill="#101517" d="M15.3 18.8h17.1v17.1H15.3z"/>
+ </g>
+ <g clip-path="url(#clip0)">
+ <path fill="#1877F2" d="M32.5 90a8.6 8.6 0 10-10 8.5v-6h-2.1V90h2.2v-1.9c0-2.1 1.2-3.3 3.2-3.3l2 .1V87h-1.2c-1 0-1.4.7-1.4 1.4V90h2.4l-.4 2.5h-2v6a8.6 8.6 0 007.3-8.5z"/>
+ <path fill="#fff" d="M27.2 92.5l.4-2.5h-2.4v-1.6c0-.7.4-1.4 1.4-1.4h1.1v-2l-2-.2c-1.9 0-3.1 1.2-3.1 3.3V90h-2.2v2.5h2.2v6a8.6 8.6 0 002.6 0v-6h2z"/>
+ </g>
+ <g clip-path="url(#clip1)">
+ <path fill="#1DA1F2" d="M20.4 126.2c6 0 9.4-5 9.4-9.4v-.4c.6-.5 1.1-1 1.6-1.7l-1.9.5c.7-.4 1.2-1 1.4-1.8-.6.4-1.3.6-2 .8a3.3 3.3 0 00-5.7 3 9.4 9.4 0 01-6.8-3.5 3.3 3.3 0 001 4.4c-.5 0-1-.1-1.4-.4a3.3 3.3 0 002.6 3.3c-.5.1-1 .2-1.5 0a3.3 3.3 0 003.1 2.3 6.6 6.6 0 01-4.9 1.4c1.5 1 3.3 1.5 5 1.5"/>
+ </g>
+ <g clip-path="url(#clip2)">
+ <path fill="#4285F4" d="M33 58.7l-.1-1.7h-8.2v3.2h4.7a4 4 0 01-1.8 2.6V65h2.8a8.2 8.2 0 002.6-6.2z"/>
+ <path fill="#34A853" d="M24.7 67c2.3 0 4.3-.8 5.7-2l-2.8-2.2c-.8.5-1.8.8-3 .8a5.2 5.2 0 01-4.8-3.5h-2.9v2.2a8.7 8.7 0 007.8 4.7z"/>
+ <path fill="#FBBC04" d="M19.8 60.1a5 5 0 010-3.2v-2.2h-2.9a8.4 8.4 0 000 7.6l2.9-2.2z"/>
+ <path fill="#EA4335" d="M24.7 53.4c1.2 0 2.4.4 3.3 1.2l2.5-2.4a8.7 8.7 0 00-13.6 2.5l2.9 2.2c.7-2 2.6-3.5 4.9-3.5z"/>
+ </g>
+ <path fill="#1d2327" fill-opacity=".8" d="M87.2 160.1H128v11.2H87.2z"/>
+ <path fill="#D7D8DA" d="M86.9 175.8h210.2v7.2H86.9zM86.9 187.9h198.2v7.2H86.9zM86.9 206.5H136v7.1H86.9zM71.2 21.1h256.2v123.2H71.2z"/>
+ <path stroke="#DCDCDE" d="M71.7 21.6h255.2V226H71.7z"/>
+ <defs>
+ <clipPath id="clip0">
+ <path fill="#fff" d="M0 0h17.1v17.1H0z" transform="translate(15.3 81.4)"/>
+ </clipPath>
+ <clipPath id="clip1">
+ <path fill="#fff" d="M0 0h17.1v17.1H0z" transform="translate(15.3 109.3)"/>
+ </clipPath>
+ <clipPath id="clip2">
+ <path fill="#fff" d="M0 0h17v17H0z" transform="translate(16 50)"/>
+ </clipPath>
+ </defs>
+</svg>
diff --git a/plugins/jetpack/_inc/blocks/images/videopress-block-example-image-da9ef73787adca8896f2.jpg b/plugins/jetpack/_inc/blocks/images/videopress-block-example-image-da9ef73787adca8896f2.jpg
new file mode 100644
index 00000000..07778237
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/images/videopress-block-example-image-da9ef73787adca8896f2.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/blocks/index.json b/plugins/jetpack/_inc/blocks/index.json
index 6bd6cf48..14b01afb 100644
--- a/plugins/jetpack/_inc/blocks/index.json
+++ b/plugins/jetpack/_inc/blocks/index.json
@@ -1,30 +1,79 @@
{
"production": [
"business-hours",
+ "button",
"calendly",
"contact-form",
"contact-info",
+ "donations",
"eventbrite",
+ "gathering-tweetstorms",
"gif",
+ "google-calendar",
+ "image-compare",
+ "instagram-gallery",
"likes",
"mailchimp",
"map",
"markdown",
"opentable",
"pinterest",
+ "podcast-player",
"publicize",
"rating-star",
"recurring-payments",
"related-posts",
"repeat-visitor",
+ "revue",
+ "send-a-message",
+ "whatsapp-button",
+ "seo",
"sharing",
"shortlinks",
"simple-payments",
"slideshow",
+ "social-previews",
+ "story",
"subscriptions",
"tiled-gallery",
"videopress",
"wordads"
],
- "beta": [ "amazon", "seo" ]
+ "beta": [
+ "amazon"
+ ],
+ "experimental": [
+ "anchor-fm",
+ "premium-content",
+ "conversation",
+ "dialogue"
+ ],
+ "no-post-editor": [
+ "business-hours",
+ "button",
+ "calendly",
+ "contact-form",
+ "contact-info",
+ "donations",
+ "eventbrite",
+ "gif",
+ "google-calendar",
+ "instagram-gallery",
+ "mailchimp",
+ "map",
+ "markdown",
+ "opentable",
+ "pinterest",
+ "rating-star",
+ "recurring-payments",
+ "related-posts",
+ "repeat-visitor",
+ "revue",
+ "simple-payments",
+ "slideshow",
+ "subscriptions",
+ "tiled-gallery",
+ "videopress",
+ "wordads"
+ ]
}
diff --git a/plugins/jetpack/_inc/blocks/instagram-gallery/view.asset.php b/plugins/jetpack/_inc/blocks/instagram-gallery/view.asset.php
new file mode 100644
index 00000000..e2c7d1ce
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/instagram-gallery/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'a5a9923d729ed5cb4dc2be8fbc8a73dc'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/instagram-gallery/view.css b/plugins/jetpack/_inc/blocks/instagram-gallery/view.css
new file mode 100644
index 00000000..8cc0ade8
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/instagram-gallery/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/instagram-gallery/view.js b/plugins/jetpack/_inc/blocks/instagram-gallery/view.js
new file mode 100644
index 00000000..ec1b31b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/instagram-gallery/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/instagram-gallery/view.rtl.css b/plugins/jetpack/_inc/blocks/instagram-gallery/view.rtl.css
new file mode 100644
index 00000000..8cc0ade8
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/instagram-gallery/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-instagram-gallery__grid{align-content:stretch;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{box-sizing:border-box;display:block;line-height:0;position:relative}.wp-block-jetpack-instagram-gallery__grid img{height:auto;width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-1 .wp-block-jetpack-instagram-gallery__grid-post{width:100%}.wp-block-jetpack-instagram-gallery__grid-columns-2 .wp-block-jetpack-instagram-gallery__grid-post{width:50%}.wp-block-jetpack-instagram-gallery__grid-columns-3 .wp-block-jetpack-instagram-gallery__grid-post{width:33.33333%}.wp-block-jetpack-instagram-gallery__grid-columns-4 .wp-block-jetpack-instagram-gallery__grid-post{width:25%}.wp-block-jetpack-instagram-gallery__grid-columns-5 .wp-block-jetpack-instagram-gallery__grid-post{width:20%}.wp-block-jetpack-instagram-gallery__grid-columns-6 .wp-block-jetpack-instagram-gallery__grid-post{width:16.66667%}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{width:100%}}@supports(display:grid){.wp-block-jetpack-instagram-gallery__grid{grid-gap:10px;display:grid;grid-auto-columns:1fr}@media(max-width:600px){.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile{display:block}.wp-block-jetpack-instagram-gallery__grid.is-stacked-on-mobile .wp-block-jetpack-instagram-gallery__grid-post{padding:var(--latest-instagram-posts-spacing)}}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post{width:auto}.wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}.wp-block-jetpack-instagram-gallery__grid-columns-1{grid-template-columns:repeat(1,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-2{grid-template-columns:repeat(2,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-3{grid-template-columns:repeat(3,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-4{grid-template-columns:repeat(4,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-5{grid-template-columns:repeat(5,1fr)}.wp-block-jetpack-instagram-gallery__grid-columns-6{grid-template-columns:repeat(6,1fr)}}@supports((-o-object-fit:cover) or (object-fit:cover)){.wp-block-jetpack-instagram-gallery__grid-post img{height:100%;-o-object-fit:cover;object-fit:cover}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/mailchimp/view.asset.php b/plugins/jetpack/_inc/blocks/mailchimp/view.asset.php
index 03f60272..c003755b 100644
--- a/plugins/jetpack/_inc/blocks/mailchimp/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/mailchimp/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => 'be8893a82cbab72f63e0ded7201093fd'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => '5ab74b1e6a224e42efeecf001ab84639'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/mailchimp/view.css b/plugins/jetpack/_inc/blocks/mailchimp/view.css
index f501324b..5bbf83e2 100644
--- a/plugins/jetpack/_inc/blocks/mailchimp/view.css
+++ b/plugins/jetpack/_inc/blocks/mailchimp/view.css
@@ -1 +1 @@
-.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none} \ No newline at end of file
+.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/mailchimp/view.js b/plugins/jetpack/_inc/blocks/mailchimp/view.js
index ea4b6a40..5a1a3190 100644
--- a/plugins/jetpack/_inc/blocks/mailchimp/view.js
+++ b/plugins/jetpack/_inc/blocks/mailchimp/view.js
@@ -1 +1 @@
-!function(e,t){for(var r in t)e[r]=t[r]}(window,function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=285)}({15:function(e,t,r){var n=r(3);function o(e,t){var r=Object.keys(e);return Object.getOwnPropertySymbols&&r.push.apply(r,Object.getOwnPropertySymbols(e)),t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r}e.exports=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(r,!0).forEach((function(t){n(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}},285:function(e,t,r){r(42),e.exports=r(286)},286:function(e,t,r){"use strict";r.r(t);var n=r(3),o=r.n(n),i=r(15),s=r.n(i),c=r(75),u=r.n(c),a=r(43),l=r.n(a),f=(r(287),"wp-block-jetpack-mailchimp");function p(e,t){var r=e.querySelector("form"),n=e.querySelector("."+f+"_processing"),i=e.querySelector("."+f+"_error"),c=e.querySelector("."+f+"_success");r.addEventListener("submit",(function(u){u.preventDefault();var a=r.querySelector("input[name=email]"),f=[].slice.call(r.querySelectorAll("input[type=hidden].mc-submit-param")).reduce((function(e,t){return s()({},e,o()({},t.name,t.value))}),{});a.classList.remove("error");var p=a.value;l.a.validate(p)?(e.classList.add("is-processing"),n.classList.add("is-visible"),function(e,t,r){var n="https://public-api.wordpress.com/rest/v1.1/sites/"+encodeURIComponent(e)+"/email_follow/subscribe?email="+encodeURIComponent(t);for(var o in r)n+="&"+encodeURIComponent(o)+"="+encodeURIComponent(r[o]);return new Promise((function(e,t){var r=new XMLHttpRequest;r.open("GET",n),r.onload=function(){if(200===r.status){var n=JSON.parse(r.responseText);e(n)}else{var o=JSON.parse(r.responseText);t(o)}},r.send()}))}(t,p,f).then((function(e){n.classList.remove("is-visible"),e.error&&"member_exists"!==e.error?i.classList.add("is-visible"):c.classList.add("is-visible")}),(function(){n.classList.remove("is-visible"),i.classList.add("is-visible")}))):a.classList.add("error")}))}"undefined"!=typeof window&&u()((function(){Array.from(document.querySelectorAll("."+f)).forEach((function(e){var t=e.getAttribute("data-blog-id");try{p(e,t)}catch(r){0}}))}))},287:function(e,t,r){},3:function(e,t){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},36:function(e,t,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(r.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,r){"use strict";r.r(t);r(36)},43:function(e,t,r){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;t.validate=function(e){if(!e)return!1;if(e.length>254)return!1;if(!n.test(e))return!1;var t=e.split("@");return!(t[0].length>64)&&!t[1].split(".").some((function(e){return e.length>63}))}},75:function(e,t){!function(){e.exports=this.wp.domReady}()}})); \ No newline at end of file
+!function(){var t={89453:function(t,e){"use strict";var n=/^[-!#$%&'*+\/0-9=?A-Z^_a-z{|}~](\.?[-!#$%&'*+\/0-9=?A-Z^_a-z`{|}~])*@[a-zA-Z0-9](-*\.?[a-zA-Z0-9])*\.[a-zA-Z](-?[a-zA-Z0-9])+$/;e.validate=function(t){if(!t)return!1;if(t.length>254)return!1;if(!n.test(t))return!1;var e=t.split("@");return!(e[0].length>64)&&!e[1].split(".").some((function(t){return t.length>63}))}},32596:function(t,e,n){var r=n(92373).Symbol;t.exports=r},80563:function(t,e,n){var r=n(32596),o=n(38703),i=n(50888),c=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?o(t):i(t)}},91367:function(t,e,n){var r=n(40949),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},2117:function(t){var e="object"==typeof window&&window&&window.Object===Object&&window;t.exports=e},38703:function(t,e,n){var r=n(32596),o=Object.prototype,i=o.hasOwnProperty,c=o.toString,s=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,s),n=t[s];try{t[s]=void 0;var r=!0}catch(t){}var o=c.call(t);return r&&(e?t[s]=n:delete t[s]),o}},50888:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},92373:function(t,e,n){var r=n(2117),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},40949:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},45034:function(t,e,n){var r=n(17709),o=n(16987),i=n(65812),c=Math.max,s=Math.min;t.exports=function(t,e,n){var u,a,l,f,p,d,v=0,m=!1,b=!1,y=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function w(e){var n=u,r=a;return u=a=void 0,v=e,f=t.apply(r,n)}function g(t){return v=t,p=setTimeout(x,e),m?w(t):f}function h(t){var n=t-d;return void 0===d||n>=e||n<0||b&&t-v>=l}function x(){var t=o();if(h(t))return j(t);p=setTimeout(x,function(t){var n=e-(t-d);return b?s(n,l-(t-v)):n}(t))}function j(t){return p=void 0,y&&u?w(t):(u=a=void 0,f)}function _(){var t=o(),n=h(t);if(u=arguments,a=this,d=t,n){if(void 0===p)return g(d);if(b)return clearTimeout(p),p=setTimeout(x,e),w(d)}return void 0===p&&(p=setTimeout(x,e)),f}return e=i(e)||0,r(n)&&(m=!!n.leading,l=(b="maxWait"in n)?c(i(n.maxWait)||0,e):l,y="trailing"in n?!!n.trailing:y),_.cancel=function(){void 0!==p&&clearTimeout(p),v=0,u=d=a=p=void 0},_.flush=function(){return void 0===p?f:j(o())},_}},17709:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},73474:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},21995:function(t,e,n){var r=n(80563),o=n(73474);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},16987:function(t,e,n){var r=n(92373);t.exports=function(){return r.Date.now()}},65812:function(t,e,n){var r=n(91367),o=n(17709),i=n(21995),c=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,u=/^0o[0-7]+$/i,a=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=s.test(t);return n||u.test(t)?a(t.slice(2),n?2:8):c.test(t)?NaN:+t}},57836:function(t,e,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function n(r){var o=e[r];if(void 0!==o)return o.exports;var i=e[r]={exports:{}};return t[r](i,i.exports,n),i.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");r.length&&(t=r[r.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";var t=n(47701),e=n.n(t),r=n(45034),o=n.n(r),i=n(89453);const c="wp-block-jetpack-mailchimp";function s(t,e){const n=e.value,r="error";return e.classList.remove(r),!!i.validate(n)||(e.classList.add(r),"function"==typeof document.createElement("input").reportValidity&&t.reportValidity(),!1)}const u=(t,e)=>o()((()=>{s(t,e)}),1e3);function a(t,e){const n=t.querySelector("form"),r=t.querySelector("input[name=email]"),o=t.querySelector("."+c+"_processing"),i=t.querySelector("."+c+"_error"),a=t.querySelector("."+c+"_success");r.addEventListener("input",u(n,r)),n.addEventListener("submit",(c=>{c.preventDefault();const l=r.value,f=[].slice.call(n.querySelectorAll("input[type=hidden].mc-submit-param")).reduce(((t,e)=>({...t,[e.name]:e.value})),{});s(n,r)&&(t.classList.add("is-processing"),r.removeEventListener("input",u(n,r)),o.classList.add("is-visible"),function(t,e,n){let r="https://public-api.wordpress.com/rest/v1.1/sites/"+encodeURIComponent(t)+"/email_follow/subscribe?email="+encodeURIComponent(e);for(const t in n)r+="&"+encodeURIComponent(t)+"="+encodeURIComponent(n[t]);return new Promise((function(t,e){const n=new XMLHttpRequest;n.open("GET",r),n.onload=function(){if(200===n.status){const e=JSON.parse(n.responseText);t(e)}else{const t=JSON.parse(n.responseText);e(t)}},n.send()}))}(e,l,f).then((t=>{o.classList.remove("is-visible"),t.error&&"member_exists"!==t.error?i.classList.add("is-visible"):a.classList.add("is-visible")}),(()=>{o.classList.remove("is-visible"),i.classList.add("is-visible")})))}))}const l=()=>{Array.from(document.querySelectorAll("."+c)).forEach((t=>{if("true"===t.getAttribute("data-jetpack-block-initialized"))return;const e=t.getAttribute("data-blog-id");try{a(t,e)}catch(t){0}t.setAttribute("data-jetpack-block-initialized","true")}))};"undefined"!=typeof window&&e()(l)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/mailchimp/view.rtl.css b/plugins/jetpack/_inc/blocks/mailchimp/view.rtl.css
index f501324b..5bbf83e2 100644
--- a/plugins/jetpack/_inc/blocks/mailchimp/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/mailchimp/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#eb0001;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a00;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none} \ No newline at end of file
+.wp-block-jetpack-mailchimp.is-processing form{display:none}.wp-block-jetpack-mailchimp .wp-block-jetpack-button,.wp-block-jetpack-mailchimp p{margin-bottom:1em}.wp-block-jetpack-mailchimp input{box-sizing:border-box;width:100%}.wp-block-jetpack-mailchimp .error,.wp-block-jetpack-mailchimp .error:focus{outline:1px;outline-color:#d63638;outline-offset:-2px;outline-style:auto}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification{display:none;margin-bottom:1.5em;padding:.75em}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.is-visible{display:block}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_error{background-color:#d63638;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_processing{background-color:rgba(0,0,0,.025)}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp_success{background-color:#008a20;color:#fff}.wp-block-jetpack-mailchimp .wp-block-jetpack-mailchimp_notification.wp-block-jetpack-mailchimp__is-amp{display:block}.wp-block-jetpack-mailchimp form.amp-form-submit-error>p,.wp-block-jetpack-mailchimp form.amp-form-submit-success>p,.wp-block-jetpack-mailchimp form.amp-form-submitting>p{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/map/view.asset.php b/plugins/jetpack/_inc/blocks/map/view.asset.php
index 28b15024..39bbf71d 100644
--- a/plugins/jetpack/_inc/blocks/map/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/map/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'e3e2802884c3dd4f2ef1ee0378aeaedf'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'wp-components', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-token-list'), 'version' => '95fd3ce9c838f330006cad4232ddc2ff'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/map/view.css b/plugins/jetpack/_inc/blocks/map/view.css
index a8910e29..848e57ba 100644
--- a/plugins/jetpack/_inc/blocks/map/view.css
+++ b/plugins/jetpack/_inc/blocks/map/view.css
@@ -1 +1 @@
-.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:left}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9} \ No newline at end of file
+.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:left;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/map/view.js b/plugins/jetpack/_inc/blocks/map/view.js
index c06163ca..8207ab97 100644
--- a/plugins/jetpack/_inc/blocks/map/view.js
+++ b/plugins/jetpack/_inc/blocks/map/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(t){for(var n,r,a=t[0],i=t[1],l=0,c=[];l<a.length;l++)r=a[l],Object.prototype.hasOwnProperty.call(o,r)&&o[r]&&c.push(o[r][0]),o[r]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n]);for(s&&s(t);c.length;)c.shift()()}var n={},r={9:0},o={9:0};function a(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.e=function(e){var t=[];r[e]?t.push(r[e]):0!==r[e]&&{16:1}[e]&&t.push(r[e]=new Promise((function(t,n){for(var o="rtl"===document.dir?({16:"vendors~map/mapbox-gl"}[e]||e)+"."+{16:"04e03ac043566852ef07"}[e]+".rtl.css":({16:"vendors~map/mapbox-gl"}[e]||e)+"."+{16:"04e03ac043566852ef07"}[e]+".css",i=a.p+o,l=document.getElementsByTagName("link"),c=0;c<l.length;c++){var s=(p=l[c]).getAttribute("data-href")||p.getAttribute("href");if("stylesheet"===p.rel&&(s===o||s===i))return t()}var u=document.getElementsByTagName("style");for(c=0;c<u.length;c++){var p;if((s=(p=u[c]).getAttribute("data-href"))===o||s===i)return t()}var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",f.setAttribute("data-webpack",!0),f.onload=t,f.onerror=function(t){var o=t&&t.target&&t.target.src||i,a=new Error("Loading CSS chunk "+e+" failed.\n("+o+")");a.code="CSS_CHUNK_LOAD_FAILED",a.request=o,delete r[e],f.parentNode.removeChild(f),n(a)},f.href=i,document.getElementsByTagName("head")[0].appendChild(f)})).then((function(){r[e]=0})));var n=o[e];if(0!==n)if(n)t.push(n[2]);else{var i=new Promise((function(t,r){n=o[e]=[t,r]}));t.push(n[2]=i);var l,c=document.createElement("script");c.charset="utf-8",c.timeout=120,a.nc&&c.setAttribute("nonce",a.nc),c.src=function(e){return a.p+""+({16:"vendors~map/mapbox-gl"}[e]||e)+"."+{16:"04e03ac043566852ef07"}[e]+".js"}(e);var s=new Error;l=function(t){c.onerror=c.onload=null,clearTimeout(u);var n=o[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;s.message="Loading chunk "+e+" failed.\n("+r+": "+a+")",s.name="ChunkLoadError",s.type=r,s.request=a,n[1](s)}o[e]=void 0}};var u=setTimeout((function(){l({type:"timeout",target:c})}),12e4);c.onerror=c.onload=l,document.head.appendChild(c)}return Promise.all(t)},a.m=e,a.c=n,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},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,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)a.d(n,r,function(t){return e[t]}.bind(null,r));return n},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.oe=function(e){throw console.error(e),e};var i=window.webpackJsonp=window.webpackJsonp||[],l=i.push.bind(i);i.push=t,i=i.slice();for(var c=0;c<i.length;c++)t(i[c]);var s=l;return a(a.s=288)}({0:function(e,t){!function(){e.exports=this.wp.element}()},1:function(e,t){!function(){e.exports=this.wp.i18n}()},10:function(e,t,n){var r=n(128);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},11:function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},123:function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},124:function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},125:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},127:function(e,t){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})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},128:function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},131:function(e,t,n){},132:function(e,t,n){},15:function(e,t,n){var r=n(3);function o(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},18:function(e,t,n){var r=n(65),o=n(66),a=n(67);e.exports=function(e,t){return r(e)||o(e,t)||a()}},2:function(e,t){!function(){e.exports=this.wp.components}()},21:function(e,t,n){var r=n(123),o=n(124),a=n(125);e.exports=function(e){return r(e)||o(e)||a()}},27:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),o=n(1),a={name:"map",prefix:"jetpack",title:Object(o.__)("Map","jetpack"),icon:Object(r.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},Object(r.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),Object(r.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"jetpack",keywords:[Object(o._x)("map","block search term","jetpack"),Object(o._x)("location","block search term","jetpack"),Object(o._x)("navigation","block search term","jetpack")],description:Object(o.__)("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},mapStyle:{type:"string",default:"default"},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1}},supports:{html:!1},mapStyleOptions:[{value:"default",label:Object(o.__)("Basic","jetpack")},{value:"black_and_white",label:Object(o.__)("Black and white","jetpack")},{value:"satellite",label:Object(o.__)("Satellite","jetpack")},{value:"terrain",label:Object(o.__)("Terrain","jetpack")}],validAlignments:["center","wide","full"],markerIcon:Object(r.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},Object(r.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},Object(r.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},Object(r.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),Object(r.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},288:function(e,t,n){n(42),e.exports=n(305)},3:function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},305:function(e,t,n){"use strict";n.r(t);var r=n(15),o=n.n(r),a=(n(132),n(76)),i=n(27),l=n(21),c=n.n(l),s=n(7),u=n.n(s),p=n(11),f=n.n(p),d=n(5),m=n(0),h=function(){function e(){u()(this,e)}return f()(e,[{key:"blockIterator",value:function(e,t){var n=this;t.forEach((function(t){n.initializeFrontendReactBlocks(t.component,t.options,e)}))}},{key:"initializeFrontendReactBlocks",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t.settings,o=r.attributes,a=r.name,i=r.prefix,l=t.selector,c=i&&i.length?"".concat(i,"/").concat(a):a,s=".wp-block-".concat(c.replace("/","-")),u=n.querySelectorAll(s),p=!0,f=!1,h=void 0;try{for(var b,v=u[Symbol.iterator]();!(p=(b=v.next()).done);p=!0){var y=b.value,g=this.extractAttributesFromContainer(y,o);Object(d.assign)(g,t.props);var k=this.extractChildrenFromContainer(y),w=Object(m.createElement)(e,g,k);Object(m.render)(w,l?y.querySelector(l):y)}}catch(j){f=!0,h=j}finally{try{p||null==v.return||v.return()}finally{if(f)throw h}}}},{key:"extractAttributesFromContainer",value:function(e,t){var n={};for(var r in t){var o=t[r],a="data-"+Object(d.kebabCase)(r);if(n[r]=e.getAttribute(a),"boolean"===o.type&&(n[r]="false"!==n[r]&&!!n[r]),"array"===o.type||"object"===o.type)try{n[r]=JSON.parse(n[r])}catch(i){n[r]=null}}return n}},{key:"extractChildrenFromContainer",value:function(e){return c()(e.childNodes).map((function(e){for(var t={},n=0;n<e.attributes.length;n++){var r=e.attributes[n];t[r.nodeName]=r.nodeValue}return t.dangerouslySetInnerHTML={__html:e.innerHTML},Object(m.createElement)(e.tagName.toLowerCase(),t)}))}}]),e}();"undefined"!=typeof window&&window.addEventListener("load",(function(){(new h).blockIterator(document,[{component:a.a,options:{settings:o()({},i.a,{attributes:o()({},i.a.attributes,{apiKey:{type:"string",default:""}})})}}])}))},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},4:function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},42:function(e,t,n){"use strict";n.r(t);n(36)},5:function(e,t){!function(){e.exports=this.lodash}()},65:function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},66:function(e,t){e.exports=function(e,t){var n=[],r=!0,o=!1,a=void 0;try{for(var i,l=e[Symbol.iterator]();!(r=(i=l.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(c){o=!0,a=c}finally{try{r||null==l.return||l.return()}finally{if(o)throw a}}return n}},67:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},7:function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},76:function(e,t,n){"use strict";var r=n(18),o=n.n(r),a=n(7),i=n.n(a),l=n(11),c=n.n(l),s=n(8),u=n.n(s),p=n(9),f=n.n(p),d=n(4),m=n.n(d),h=n(10),b=n.n(h),v=n(3),y=n.n(v),g=n(0),k=n(1),w=n(5),j=n(2),x=(n(131),function(e){function t(){var e,n;i()(this,t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=u()(this,(e=f()(t)).call.apply(e,[this].concat(o))),y()(m()(n),"handleClick",(function(){(0,n.props.onClick)(m()(n))})),y()(m()(n),"getPoint",(function(){var e=n.props.point;return[e.coordinates.longitude,e.coordinates.latitude]})),n}return b()(t,e),c()(t,[{key:"componentDidMount",value:function(){this.renderMarker()}},{key:"componentWillUnmount",value:function(){this.marker&&this.marker.remove()}},{key:"componentDidUpdate",value:function(){this.renderMarker()}},{key:"renderMarker",value:function(){var e=this.props,t=e.map,n=e.point,r=e.mapboxgl,o=e.markerColor,a=this.handleClick,i=[n.coordinates.longitude,n.coordinates.latitude],l=this.marker?this.marker.getElement():document.createElement("div");this.marker?this.marker.setLngLat(i):(l.className="wp-block-jetpack-map-marker",this.marker=new r.Marker(l).setLngLat(i).setOffset([0,-19]).addTo(t),this.marker.getElement().addEventListener("click",a)),l.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+o+'" mask="url(#c)"/></g></svg>'}},{key:"render",value:function(){return null}}]),t}(g.Component));x.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:function(){}};var O=x,M=function(e){function t(){var e,n;i()(this,t);for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];return n=u()(this,(e=f()(t)).call.apply(e,[this].concat(o))),y()(m()(n),"closeClick",(function(){n.props.unsetActiveMarker()})),n}return b()(t,e),c()(t,[{key:"componentDidMount",value:function(){var e=this.props.mapboxgl;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}},{key:"componentDidUpdate",value:function(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}},{key:"render",value:function(){return this.el?Object(g.createPortal)(this.props.children,this.el):null}},{key:"openWindow",value:function(){var e=this.props,t=e.map,n=e.activeMarker;this.infowindow.setLngLat(n.getPoint()).addTo(t)}},{key:"closeWindow",value:function(){this.infowindow.remove()}}]),t}(g.Component);M.defaultProps={unsetActiveMarker:function(){},activeMarker:null,map:null,mapboxgl:null};var C=M;var S=function(e){function t(){var e;return i()(this,t),e=u()(this,f()(t).apply(this,arguments)),y()(m()(e),"onMarkerClick",(function(t){var n=e.props.onMarkerClick;e.setState({activeMarker:t}),n()})),y()(m()(e),"onMapClick",(function(){e.setState({activeMarker:null})})),y()(m()(e),"clearCurrentMarker",(function(){e.setState({activeMarker:null})})),y()(m()(e),"updateActiveMarker",(function(t){var n=e.props.points,r=e.state.activeMarker.props.index,o=n.slice(0);Object(w.assign)(o[r],t),e.props.onSetPoints(o)})),y()(m()(e),"deleteActiveMarker",(function(){var t=e.props.points,n=e.state.activeMarker.props.index,r=t.slice(0);r.splice(n,1),e.props.onSetPoints(r),e.setState({activeMarker:null})})),y()(m()(e),"sizeMap",(function(){var t=e.state.map,n=e.mapRef.current,r=n.offsetWidth,o=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,a=Math.min(.75*r,o);n.style.height=a+"px",t.resize(),e.setBoundsByMarkers()})),y()(m()(e),"setBoundsByMarkers",(function(){var t=e.props,n=t.admin,r=t.onSetMapCenter,o=t.onSetZoom,a=t.points,i=t.zoom,l=e.state,c=l.map,s=l.activeMarker,u=l.mapboxgl,p=l.zoomControl,f=l.boundsSetProgrammatically;if(c&&(a.length&&n?c.dragPan.disable():c.dragPan.enable(),a.length&&!s)){var d=new u.LngLatBounds;if(a.forEach((function(e){d.extend([e.coordinates.longitude,e.coordinates.latitude])})),r(d.getCenter()),a.length>1){c.fitBounds(d,{padding:{top:40,bottom:40,left:20,right:20}}),e.setState({boundsSetProgrammatically:!0});try{c.removeControl(p)}catch(m){}}else{if(c.setCenter(d.getCenter()),f){c.setZoom(12),o(12)}else c.setZoom(parseInt(i,10));c.addControl(p),e.setState({boundsSetProgrammatically:!1})}}})),y()(m()(e),"scriptsLoaded",(function(){var t=e.props,n=t.mapCenter,r=t.points;e.setState({loaded:!0}),r.length,e.initMap(n)})),y()(m()(e),"googlePoint2Mapbox",(function(e){return e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0}})),e.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},e.mapRef=Object(g.createRef)(),e.debouncedSizeMap=Object(w.debounce)(e.sizeMap,250),e}return b()(t,e),c()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.points,r=t.admin,o=t.children,a=t.markerColor,i=this.state,l=i.map,c=i.activeMarker,s=i.mapboxgl,u=this.onMarkerClick,p=this.deleteActiveMarker,f=this.updateActiveMarker,d=Object(w.get)(c,"props.point")||{},m=d.title,h=d.caption,b=g.Children.map(o,(function(e){if("AddPoint"===Object(w.get)(e,"props.tagName"))return e})),v=l&&s&&n.map((function(e,t){return Object(g.createElement)(O,{key:t,point:e,index:t,map:l,mapboxgl:s,markerColor:a,onClick:u})})),y=s&&Object(g.createElement)(C,{activeMarker:c,map:l,mapboxgl:s,unsetActiveMarker:function(){return e.setState({activeMarker:null})}},c&&r&&Object(g.createElement)(g.Fragment,null,Object(g.createElement)(j.TextControl,{label:Object(k.__)("Marker Title","jetpack"),value:m,onChange:function(e){return f({title:e})}}),Object(g.createElement)(j.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:Object(k.__)("Marker Caption","jetpack"),value:h,rows:"2",tag:"textarea",onChange:function(e){return f({caption:e})}}),Object(g.createElement)(j.Button,{onClick:p,className:"wp-block-jetpack-map__delete-btn"},Object(g.createElement)(j.Dashicon,{icon:"trash",size:"15"})," ",Object(k.__)("Delete Marker","jetpack"))),c&&!r&&Object(g.createElement)(g.Fragment,null,Object(g.createElement)("h3",null,m),Object(g.createElement)("p",null,h)));return Object(g.createElement)(g.Fragment,null,Object(g.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},v),y,b)}},{key:"componentDidMount",value:function(){this.props.apiKey&&this.loadMapLibraries()}},{key:"componentWillUnmount",value:function(){this.debouncedSizeMap.cancel()}},{key:"componentDidUpdate",value:function(e){var t=this.props,n=t.apiKey,r=t.children,o=t.points,a=t.mapStyle,i=t.mapDetails,l=this.state.map;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),r!==e.children&&!1!==r&&this.clearCurrentMarker(),o!==e.points&&this.setBoundsByMarkers(),o.length!==e.points.length&&this.clearCurrentMarker(),a===e.mapStyle&&i===e.mapDetails||l.setStyle(this.getMapStyle())}},{key:"getMapStyle",value:function(){var e=this.props;return function(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}(e.mapStyle,e.mapDetails)}},{key:"getMapType",value:function(){switch(this.props.mapStyle){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";case"black_and_white":default:return"ROADMAP"}}},{key:"loadMapLibraries",value:function(){var e=this,t=this.props.apiKey;Promise.all([n.e(16).then(n.t.bind(null,306,7)),n.e(16).then(n.t.bind(null,307,7))]).then((function(n){var r=o()(n,1)[0].default;r.accessToken=t,e.setState({mapboxgl:r},e.scriptsLoaded)}))}},{key:"initMap",value:function(e){var t=this,n=this.state.mapboxgl,r=this.props,o=r.zoom,a=r.onMapLoaded,i=r.onError,l=r.admin,c=null;try{c=new n.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(o,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(u){return void i("mapbox_error",u.message)}c.on("error",(function(e){i("mapbox_error",e.error.message)}));var s=new n.NavigationControl({showCompass:!1,showZoom:!0});c.on("zoomend",(function(){t.props.onSetZoom(c.getZoom())})),c.on("moveend",(function(){var e=t.props,n=e.onSetMapCenter;e.points.length<1&&n(c.getCenter())})),c.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:c,zoomControl:s},(function(){t.debouncedSizeMap(),c.addControl(s),l||c.addControl(new n.FullscreenControl),t.mapRef.current.addEventListener("alignmentChanged",t.debouncedSizeMap),c.resize(),a(),t.setState({loaded:!0}),window.addEventListener("resize",t.debouncedSizeMap)}))}}]),t}(g.Component);S.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:function(){},onSetMapCenter:function(){},onMapLoaded:function(){},onMarkerClick:function(){},onError:function(){},markerColor:"red",apiKey:null,mapCenter:{}};t.a=S},8:function(e,t,n){var r=n(127),o=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?o(e):t}},9:function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n}})); \ No newline at end of file
+!function(){var e={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},79267:function(e,t,n){"use strict";var o=n(27538),r=n.n(o),i=n(69307),a=n(65736),s=n(92819),l=n(55609),c=n(81041),p=n(77714),d=n(73242),u=n(87929),m=n(45388);const __=a.__;class h extends i.Component{constructor(){super(...arguments),r()(this,"onMarkerClick",(e=>{const{onMarkerClick:t}=this.props;this.setState({activeMarker:e}),t()})),r()(this,"onMapClick",(()=>{this.setState({activeMarker:null})})),r()(this,"clearCurrentMarker",(()=>{this.setState({activeMarker:null})})),r()(this,"updateActiveMarker",(e=>{const{points:t}=this.props,{activeMarker:n}=this.state,{index:o}=n.props,r=t.slice(0);(0,s.assign)(r[o],e),this.props.onSetPoints(r)})),r()(this,"deleteActiveMarker",(()=>{const{points:e}=this.props,{activeMarker:t}=this.state,{index:n}=t.props,o=e.slice(0);o.splice(n,1),this.props.onSetPoints(o),this.setState({activeMarker:null})})),r()(this,"sizeMap",(()=>{const{mapHeight:e}=this.props,{map:t}=this.state,n=this.mapRef.current;if(e)n.style.height=e+"px";else{const e=n.offsetWidth,t=window.location.search.indexOf("map-block-counter")>-1?window.innerHeight:.8*window.innerHeight,o=Math.min(e*(3/4),t);n.style.height=o+"px"}t.resize(),this.setBoundsByMarkers()})),r()(this,"updateZoom",(()=>{const{zoom:e}=this.props,{map:t}=this.state;t.setZoom(e),t.updateZoom(e)})),r()(this,"setBoundsByMarkers",(()=>{const{admin:e,onSetMapCenter:t,onSetZoom:n,points:o,zoom:r}=this.props,{map:i,activeMarker:a,mapboxgl:s,zoomControl:l,boundsSetProgrammatically:c}=this.state;if(!i)return;if(o.length&&e?i.dragPan.disable():i.dragPan.enable(),!o.length)return;if(a)return;const p=new s.LngLatBounds;if(o.forEach((e=>{p.extend([e.coordinates.longitude,e.coordinates.latitude])})),t(p.getCenter()),o.length>1){i.fitBounds(p,{padding:{top:80,bottom:80,left:40,right:40}}),this.setState({boundsSetProgrammatically:!0});try{i.removeControl(l)}catch(e){}}else{if(i.setCenter(p.getCenter()),c){const e=12;i.setZoom(e),n(e)}else i.setZoom(parseInt(r,10));i.addControl(l),this.setState({boundsSetProgrammatically:!1})}})),r()(this,"scriptsLoaded",(()=>{const{mapCenter:e,points:t}=this.props;this.setState({loaded:!0}),t.length,this.initMap(e)})),r()(this,"googlePoint2Mapbox",(e=>e.hasOwnProperty("lat")&&e.hasOwnProperty("lng")?e:{lat:e.latitude||0,lng:e.longitude||0})),this.state={map:null,fit_to_bounds:!1,loaded:!1,mapboxgl:null},this.mapRef=(0,i.createRef)(),this.debouncedSizeMap=(0,s.debounce)(this.sizeMap,250)}render(){const{points:e,admin:t,children:n,markerColor:o}=this.props,{map:r,activeMarker:a,mapboxgl:d}=this.state,{onMarkerClick:u,deleteActiveMarker:m,updateActiveMarker:h}=this,f=(0,s.get)(a,"props.point")||{},{title:g,caption:k}=f,b=i.Children.map(n,(e=>{if("AddPoint"===(0,s.get)(e,"props.tagName"))return e})),w=r&&d&&e.map(((e,t)=>(0,i.createElement)(c.Z,{mapRef:this.mapRef,key:t,point:e,index:t,map:r,mapboxgl:d,markerColor:o,onClick:u}))),v=d&&(0,i.createElement)(p.Z,{activeMarker:a,map:r,mapboxgl:d,unsetActiveMarker:()=>this.setState({activeMarker:null})},a&&t&&(0,i.createElement)(i.Fragment,null,(0,i.createElement)(l.TextControl,{label:__("Marker Title","jetpack"),value:g,onChange:e=>h({title:e})}),(0,i.createElement)(l.TextareaControl,{className:"wp-block-jetpack-map__marker-caption",label:__("Marker Caption","jetpack"),value:k,rows:"2",tag:"textarea",onChange:e=>h({caption:e})}),(0,i.createElement)(l.Button,{onClick:m,className:"wp-block-jetpack-map__delete-btn"},(0,i.createElement)(l.Dashicon,{icon:"trash",size:"15"})," ",__("Delete Marker","jetpack"))),a&&!t&&(0,i.createElement)(i.Fragment,null,(0,i.createElement)("h3",null,g),(0,i.createElement)("p",null,k)));return(0,i.createElement)(i.Fragment,null,(0,i.createElement)("div",{className:"wp-block-jetpack-map__gm-container",ref:this.mapRef},w),v,b)}componentDidMount(){const{apiKey:e}=this.props;e&&this.loadMapLibraries()}componentWillUnmount(){this.debouncedSizeMap.cancel(),window.removeEventListener("resize",this.debouncedSizeMap)}componentDidUpdate(e){const{admin:t,apiKey:n,children:o,points:r,mapStyle:i,mapDetails:a,scrollToZoom:s,showFullscreenButton:l}=this.props,{map:c,fullscreenControl:p}=this.state;n&&n.length>0&&n!==e.apiKey&&this.loadMapLibraries(),o!==e.children&&!1!==o&&this.clearCurrentMarker(),r!==e.points&&this.setBoundsByMarkers(),r.length!==e.points.length&&this.clearCurrentMarker(),i===e.mapStyle&&a===e.mapDetails||c.setStyle(this.getMapStyle()),s!==e.scrollToZoom&&(s?c.scrollZoom.enable():c.scrollZoom.disable()),l!==e.showFullscreenButton&&(l?(c.addControl(p),t&&p._fullscreenButton&&(p._fullscreenButton.disabled=!0)):c.removeControl(p))}getMapStyle(){const{mapStyle:e,mapDetails:t}=this.props;return(0,d.h)(e,t)}getMapType(){const{mapStyle:e}=this.props;switch(e){case"satellite":return"HYBRID";case"terrain":return"TERRAIN";default:return"ROADMAP"}}loadMapLibraries(){const{apiKey:e}=this.props,{currentWindow:t}=(0,u.bL)(this.mapRef.current),n={"mapbox-gl-js":()=>{(0,u.Dz)(t,"mapboxgl").then((t=>{t.accessToken=e,this.setState({mapboxgl:t},this.scriptsLoaded)}))}};(0,u.Pp)(m,n,this.mapRef.current)}initMap(e){const{mapboxgl:t}=this.state,{zoom:n,onMapLoaded:o,onError:r,scrollToZoom:i,showFullscreenButton:a,admin:s}=this.props;let l=null;try{l=new t.Map({container:this.mapRef.current,style:this.getMapStyle(),center:this.googlePoint2Mapbox(e),zoom:parseInt(n,10),pitchWithRotate:!1,attributionControl:!1,dragRotate:!1})}catch(e){return void r("mapbox_error",e.message)}i||l.scrollZoom.disable();const c=new t.FullscreenControl;l.on("error",(e=>{r("mapbox_error",e.error.message)}));const p=new t.NavigationControl({showCompass:!1,showZoom:!0});l.on("zoomend",(()=>{this.props.onSetZoom(l.getZoom())})),l.on("moveend",(()=>{const{onSetMapCenter:e,points:t}=this.props;t.length<1&&e(l.getCenter())})),l.getCanvas().addEventListener("click",this.onMapClick),this.setState({map:l,zoomControl:p,fullscreenControl:c},(()=>{this.debouncedSizeMap(),l.addControl(p),a&&(l.addControl(c),s&&c._fullscreenButton&&(c._fullscreenButton.disabled=!0)),this.mapRef.current.addEventListener("alignmentChanged",this.debouncedSizeMap),l.resize(),o(),this.setState({loaded:!0}),window.addEventListener("resize",this.debouncedSizeMap)}))}}h.defaultProps={points:[],mapStyle:"default",zoom:13,onSetZoom:()=>{},onSetMapCenter:()=>{},onMapLoaded:()=>{},onMarkerClick:()=>{},onError:()=>{},markerColor:"red",apiKey:null,mapCenter:{}},t.Z=h},77714:function(e,t,n){"use strict";var o=n(27538),r=n.n(o),i=n(69307);class a extends i.Component{constructor(){super(...arguments),r()(this,"closeClick",(()=>{this.props.unsetActiveMarker()}))}componentDidMount(){const{mapboxgl:e}=this.props;this.el=document.createElement("DIV"),this.infowindow=new e.Popup({closeButton:!0,closeOnClick:!1,offset:{left:[0,0],top:[0,5],right:[0,0],bottom:[0,-40]}}),this.infowindow.setDOMContent(this.el),this.infowindow.on("close",this.closeClick)}componentDidUpdate(e){this.props.activeMarker!==e.activeMarker&&(this.props.activeMarker?this.openWindow():this.closeWindow())}render(){return this.el?(0,i.createPortal)(this.props.children,this.el):null}openWindow(){const{map:e,activeMarker:t}=this.props;this.infowindow.setLngLat(t.getPoint()).addTo(e)}closeWindow(){this.infowindow.remove()}}a.defaultProps={unsetActiveMarker:()=>{},activeMarker:null,map:null,mapboxgl:null},t.Z=a},81041:function(e,t,n){"use strict";var o=n(27538),r=n.n(o),i=n(69307),a=n(87929);class s extends i.Component{constructor(){super(...arguments),r()(this,"handleClick",(()=>{const{onClick:e}=this.props;e(this)})),r()(this,"getPoint",(()=>{const{point:e}=this.props;return[e.coordinates.longitude,e.coordinates.latitude]}))}componentDidMount(){this.renderMarker()}componentWillUnmount(){this.marker&&this.marker.remove()}componentDidUpdate(){this.renderMarker()}renderMarker(){const{map:e,point:t,mapboxgl:n,markerColor:o,mapRef:r}=this.props,{handleClick:i}=this,s=[t.coordinates.longitude,t.coordinates.latitude],{currentDoc:l}=(0,a.bL)(r.current),c=this.marker?this.marker.getElement():l.createElement("div");this.marker?this.marker.setLngLat(s):(c.className="wp-block-jetpack-map-marker",this.marker=new n.Marker(c).setLngLat(s).setOffset([0,-19]).addTo(e),this.marker.getElement().addEventListener("click",i)),c.innerHTML='<?xml version="1.0" encoding="UTF-8"?><svg version="1.1" viewBox="0 0 32 38" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g fill-rule="evenodd"><path id="d" d="m16 38s16-11.308 16-22-7.1634-16-16-16-16 5.3076-16 16 16 22 16 22z" fill="'+o+'" mask="url(#c)"/></g></svg>'}render(){return null}}s.defaultProps={point:{},map:null,markerColor:"#000000",mapboxgl:null,onClick:()=>{}},t.Z=s},73242:function(e,t,n){"use strict";function o(e,t){return{default:{details:"mapbox://styles/automattic/cjolkhmez0qdd2ro82dwog1in",no_details:"mapbox://styles/automattic/cjolkci3905d82soef4zlmkdo"},black_and_white:{details:"mapbox://styles/automattic/cjolkixvv0ty42spgt2k4j434",no_details:"mapbox://styles/automattic/cjolkgc540tvj2spgzzoq37k4"},satellite:{details:"mapbox://styles/mapbox/satellite-streets-v10",no_details:"mapbox://styles/mapbox/satellite-v9"},terrain:{details:"mapbox://styles/automattic/cjolkf8p405fh2soet2rdt96b",no_details:"mapbox://styles/automattic/cjolke6fz12ys2rpbpvgl12ha"}}[e][t?"details":"no_details"]}n.d(t,{h:function(){return o}})},17885:function(e,t,n){"use strict";n.d(t,{X:function(){return c}});var o=n(69307),r=n(65736),i=n(56932),a=n(45107),s=n(65765),l=n(34140);const __=r.__,_x=r._x,c={name:"map",prefix:"jetpack",title:__("Map","jetpack"),icon:(0,o.createElement)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",role:"img","aria-hidden":"true",focusable:"false"},(0,o.createElement)("path",{fill:"none",d:"M0 0h24v24H0V0z"}),(0,o.createElement)("path",{d:"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99l3-1.01v11.7l-3 1.16V6.46zm14 11.08l-3 1.01V6.86l3-1.16v11.84z"})),category:"embed",keywords:[_x("maps","block search term","jetpack"),_x("location","block search term","jetpack"),_x("navigation","block search term","jetpack")],description:__("Add an interactive map showing one or more locations.","jetpack"),attributes:{align:{type:"string"},points:{type:"array",default:[]},address:{type:"string",default:""},mapDetails:{type:"boolean",default:!0},zoom:{type:"integer",default:13},mapCenter:{type:"object",default:{longitude:-122.41941550000001,latitude:37.7749295}},markerColor:{type:"string",default:"red"},preview:{type:"boolean",default:!1},scrollToZoom:{type:"boolean",default:!1},mapHeight:{type:"integer"},showFullscreenButton:{type:"boolean",default:!0}},supports:{defaultStylePicker:!1,html:!1},styles:[{name:"default",label:__("Basic","jetpack"),preview:i,isDefault:!0},{name:"black_and_white",label:__("Black and white","jetpack"),preview:a},{name:"satellite",label:__("Satellite","jetpack"),preview:s},{name:"terrain",label:__("Terrain","jetpack"),preview:l}],validAlignments:["center","wide","full"],markerIcon:(0,o.createElement)("svg",{width:"14",height:"20",viewBox:"0 0 14 20",xmlns:"http://www.w3.org/2000/svg"},(0,o.createElement)("g",{id:"Page-1",fill:"none",fillRule:"evenodd"},(0,o.createElement)("g",{id:"outline-add_location-24px",transform:"translate(-5 -2)"},(0,o.createElement)("polygon",{id:"Shape",points:"0 0 24 0 24 24 0 24"}),(0,o.createElement)("path",{d:"M12,2 C8.14,2 5,5.14 5,9 C5,14.25 12,22 12,22 C12,22 19,14.25 19,9 C19,5.14 15.86,2 12,2 Z M7,9 C7,6.24 9.24,4 12,4 C14.76,4 17,6.24 17,9 C17,11.88 14.12,16.19 12,18.88 C9.92,16.21 7,11.85 7,9 Z M13,6 L11,6 L11,8 L9,8 L9,10 L11,10 L11,12 L13,12 L13,10 L15,10 L15,8 L13,8 L13,6 Z",id:"Shape",fill:"#000",fillRule:"nonzero"})))),example:{attributes:{preview:!0}}}},87929:function(e,t,n){"use strict";function o(e){const t=e.ownerDocument;return{currentDoc:t,currentWindow:t.defaultView||t.parentWindow}}function r(e,t,n){const r=`${window.Jetpack_Block_Assets_Base_Url.url}editor-assets`,{currentDoc:i}=o(n),a=i.getElementsByTagName("head")[0];e.forEach((e=>{const[n,o]=e.file.split("/").pop().split(".");if("css"===o){if(i.getElementById(e.id))return;const t=i.createElement("link");t.id=e.id,t.rel="stylesheet",t.href=`${r}/${n}-${e.version}.${o}`,a.appendChild(t)}if("js"===o){const s=t[e.id]?t[e.id]:null;if(i.getElementById(e.id))return s();const l=i.createElement("script");l.id=e.id,l.type="text/javascript",l.src=`${r}/${n}-${e.version}.${o}`,l.onload=s,a.appendChild(l)}}))}function i(e,t){return new Promise((n=>{const o=()=>{e[t]?n(e[t]):e.requestAnimationFrame(o)};o()}))}n.d(t,{bL:function(){return o},Pp:function(){return r},Dz:function(){return i}})},98085:function(e,t,n){"use strict";n.d(t,{t:function(){return a}});var o=n(29512),r=n.n(o),i=n(92819);function a(e,t){const n=function(e,t){for(const n of new(r())(t).values()){if(-1===n.indexOf("is-style-"))continue;const t=n.substring(9),o=(0,i.find)(e,{name:t});if(o)return o}return(0,i.find)(e,"isDefault")}(e,t);return n?n.name:null}},71875:function(e,t,n){"use strict";var o=n(92819),r=n(69307);t.Z=class{blockIterator(e,t){t.forEach((t=>{this.initializeFrontendReactBlocks(t.component,t.options,e)}))}initializeFrontendReactBlocks(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const{attributes:i,name:a,prefix:s}=t.settings,{selector:l}=t,c=`.wp-block-${(s&&s.length?`${s}/${a}`:a).replace("/","-")}`,p=n.querySelectorAll(c);for(const n of p){if("true"===n.getAttribute("data-jetpack-block-initialized"))continue;const a=this.extractAttributesFromContainer(n,i);(0,o.assign)(a,t.props);const s=this.extractChildrenFromContainer(n),c=(0,r.createElement)(e,a,s);(0,r.render)(c,l?n.querySelector(l):n),n.setAttribute("data-jetpack-block-initialized",!0)}}extractAttributesFromContainer(e,t){const n={};for(const r in t){const i=t[r],a="data-"+(0,o.kebabCase)(r);if(n[r]=e.getAttribute(a),"boolean"===i.type&&(n[r]="false"!==n[r]&&!!n[r]),"array"===i.type||"object"===i.type)try{n[r]=JSON.parse(n[r])}catch(e){n[r]=null}}return n}extractChildrenFromContainer(e){return[...e.childNodes].map((e=>{const t={};for(let n=0;n<e.attributes.length;n++){const o=e.attributes[n];t[o.nodeName]=o.nodeValue}return t.dangerouslySetInnerHTML={__html:e.innerHTML},(0,r.createElement)(e.tagName.toLowerCase(),t)}))}}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},45107:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_black_and_white-b6ad81a7dd09d09fb34d.jpg"},56932:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_default-b53ccdf170e5ac873ff0.jpg"},65765:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_satellite-cc50c608e244f90d18dc.jpg"},34140:function(e,t,n){"use strict";e.exports=n.p+"images/map-theme_terrain-ac291441b3461820747d.jpg"},92819:function(e){"use strict";e.exports=window.lodash},55609:function(e){"use strict";e.exports=window.wp.components},47701:function(e){"use strict";e.exports=window.wp.domReady},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n},29512:function(e){"use strict";e.exports=window.wp.tokenList},45388:function(e){"use strict";e.exports=JSON.parse('[{"id":"mapbox-gl-js","file":"node_modules/mapbox-gl/dist/mapbox-gl.js","version":"1.13.0"},{"id":"mapbox-gl-css","file":"node_modules/mapbox-gl/dist/mapbox-gl.css","version":"1.13.0"}]')}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var o=t.getElementsByTagName("script");o.length&&(e=o[o.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";var e=n(47701),t=n.n(e),o=n(79267),r=n(17885),i=n(71875),a=n(98085);t()((function(){(new i.Z).blockIterator(document,[{component:o.Z,options:{settings:{...r.X,attributes:{...r.X.attributes,mapStyle:(0,a.t)(r.X.styles,r.X.className),apiKey:{type:"string",default:""}}}}}])}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/map/view.rtl.css b/plugins/jetpack/_inc/blocks/map/view.rtl.css
index 1c185ffd..056d1385 100644
--- a/plugins/jetpack/_inc/blocks/map/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/map/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{width:100%;overflow:hidden;background:#e2e4e7;min-height:400px;text-align:right}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map-marker{width:32px;height:38px;opacity:.9} \ No newline at end of file
+.wp-block-jetpack-map .wp-block-jetpack-map__gm-container{background:#e0e0e0;min-height:400px;overflow:hidden;text-align:right;width:100%}.wp-block-jetpack-map .mapboxgl-popup{max-width:300px}.wp-block-jetpack-map .mapboxgl-popup h3{font-size:1.3125em;font-weight:400;margin-bottom:.5rem}.wp-block-jetpack-map .mapboxgl-popup p{margin-bottom:0}.wp-block-jetpack-map .mapboxgl-ctrl-group button{background-color:transparent!important;border-radius:0}.wp-block-jetpack-map-marker{height:38px;opacity:.9;width:32px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/opentable/view.asset.php b/plugins/jetpack/_inc/blocks/opentable/view.asset.php
index f3515fac..27e7edb1 100644
--- a/plugins/jetpack/_inc/blocks/opentable/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/opentable/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '8fe4ef64a2860c2b0716f80dbfff469a'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '143fa20bc57651de6beb98e618d17d9b'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/opentable/view.css b/plugins/jetpack/_inc/blocks/opentable/view.css
index 083edbc8..e535915e 100644
--- a/plugins/jetpack/_inc/blocks/opentable/view.css
+++ b/plugins/jetpack/_inc/blocks/opentable/view.css
@@ -1 +1 @@
-.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none} \ No newline at end of file
+.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{margin-left:2rem;max-width:840px;right:auto}.wp-block-jetpack-opentable.is-style-wide.alignright{left:calc(100% - 840px - 2rem);max-width:840px}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/opentable/view.js b/plugins/jetpack/_inc/blocks/opentable/view.js
index 2a49f03d..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/opentable/view.js
+++ b/plugins/jetpack/_inc/blocks/opentable/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=289)}({133:function(e,t,n){},289:function(e,t,n){n(42),e.exports=n(290)},290:function(e,t,n){"use strict";n.r(t);n(133)},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/opentable/view.rtl.css b/plugins/jetpack/_inc/blocks/opentable/view.rtl.css
index 083edbc8..4b9ed0c6 100644
--- a/plugins/jetpack/_inc/blocks/opentable/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/opentable/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-opentable-theme-standard{height:301px}.wp-block-jetpack-opentable-theme-standard.is-multi{height:361px}.wp-block-jetpack-opentable-theme-tall{height:490px}.wp-block-jetpack-opentable-theme-tall.is-multi{height:550px}.wp-block-jetpack-opentable-theme-wide{height:150px}.wp-block-jetpack-opentable-theme-button{height:113px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{text-transform:none;padding:0}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none} \ No newline at end of file
+.wp-block-jetpack-opentable{position:relative}.wp-block-jetpack-opentable>iframe{background:transparent;margin:0}.wp-block-jetpack-opentable.aligncenter iframe{margin:0 auto}.wp-block-jetpack-opentable.is-style-standard,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile{height:301px}.wp-block-jetpack-opentable.is-style-standard.is-multi,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.is-multi{height:361px}.wp-block-jetpack-opentable.is-style-standard.aligncenter iframe,.wp-block-jetpack-opentable.is-style-wide.is-style-mobile.aligncenter iframe{width:224px!important}.wp-block-jetpack-opentable.is-style-tall{height:490px}.wp-block-jetpack-opentable.is-style-tall.is-multi{height:550px}.wp-block-jetpack-opentable.is-style-tall.aligncenter iframe{width:288px!important}.wp-block-jetpack-opentable.is-style-wide{height:150px}.wp-block-jetpack-opentable.is-style-wide iframe{width:840px!important}.wp-block-jetpack-opentable.is-style-wide.alignleft{left:auto;margin-right:2rem;max-width:840px}.wp-block-jetpack-opentable.is-style-wide.alignright{max-width:840px;right:calc(100% - 840px - 2rem)}.wp-block-jetpack-opentable.is-style-button{height:113px}.wp-block-jetpack-opentable.is-style-button.aligncenter iframe{width:210px!important}.wp-block-jetpack-opentable.is-style-button.has-no-margin>div[id^=ot-widget-container]{margin:-14px}.wp-block-jetpack-opentable .ot-dtp-picker{box-sizing:content-box}.wp-block-jetpack-opentable .ot-dtp-picker .ot-title{margin:4px auto 12px}.wp-block-jetpack-opentable .ot-dtp-picker .ot-dtp-picker-selector-link{text-decoration:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]{padding:0;text-transform:none}.wp-block-jetpack-opentable .ot-dtp-picker input[type=submit]:hover{text-decoration:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/podcast-player/view.asset.php b/plugins/jetpack/_inc/blocks/podcast-player/view.asset.php
new file mode 100644
index 00000000..ddd50eb1
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/podcast-player/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'wp-a11y', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6ac699396cb54247af8e3f52bbe2bd5a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/podcast-player/view.css b/plugins/jetpack/_inc/blocks/podcast-player/view.css
new file mode 100644
index 00000000..7b4d2609
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/podcast-player/view.css
@@ -0,0 +1 @@
+.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:15px;padding-right:18px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-right:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 24px 10px 22px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-left:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-left:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 2px 0 0;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-left:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/podcast-player/view.js b/plugins/jetpack/_inc/blocks/podcast-player/view.js
new file mode 100644
index 00000000..e86645bd
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/podcast-player/view.js
@@ -0,0 +1,17 @@
+/*! For license information please see view.js.LICENSE.txt */
+!function(){var e={27538:function(e){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.default=e.exports,e.exports.__esModule=!0},89105:function(e,t){var r;!function(){"use strict";var a={}.hasOwnProperty;function s(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var n=s.apply(null,r);n&&e.push(n)}}else if("object"===o)if(r.toString===Object.prototype.toString)for(var c in r)a.call(r,c)&&r[c]&&e.push(c);else e.push(r.toString())}}return e.join(" ")}e.exports?(s.default=s,e.exports=s):void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},32002:function(e){var t=1e3,r=60*t,a=60*r,s=24*a,o=7*s,n=365.25*s;function c(e,t,r,a){var s=t>=1.5*r;return Math.round(e/r)+" "+a+(s?"s":"")}e.exports=function(e,i){i=i||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var c=/^(-?(?:\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(!c)return;var i=parseFloat(c[1]);switch((c[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return i*n;case"weeks":case"week":case"w":return i*o;case"days":case"day":case"d":return i*s;case"hours":case"hour":case"hrs":case"hr":case"h":return i*a;case"minutes":case"minute":case"mins":case"min":case"m":return i*r;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"===l&&isFinite(e))return i.long?function(e){var o=Math.abs(e);if(o>=s)return c(e,o,s,"day");if(o>=a)return c(e,o,a,"hour");if(o>=r)return c(e,o,r,"minute");if(o>=t)return c(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=s)return Math.round(e/s)+"d";if(o>=a)return Math.round(e/a)+"h";if(o>=r)return Math.round(e/r)+"m";if(o>=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))}},98006:function(e,t,r){"use strict";var a=r(69307),s=r(89105),o=r.n(s),n=r(76814);const c=(0,a.memo)((e=>{let{playerId:t,title:r,cover:s,link:o,track:n,children:c,showEpisodeTitle:l,showCoverArt:u,showEpisodeDescription:d,colors:p}=e;return u||l||d?(0,a.createElement)("div",{className:"jetpack-podcast-player__header"},(0,a.createElement)("div",{className:"jetpack-podcast-player__current-track-info"},u&&s&&(0,a.createElement)("div",{className:"jetpack-podcast-player__cover"},(0,a.createElement)("img",{className:"jetpack-podcast-player__cover-image",src:s,alt:""})),l&&!!(r||n&&n.title)&&(0,a.createElement)(i,{playerId:t,title:r,link:o,track:n,colors:p})),!!(d&&n&&n.description)&&(0,a.createElement)("p",{id:`${t}__track-description`,className:"jetpack-podcast-player__track-description"},n.description),c):c})),i=(0,a.memo)((e=>{let{playerId:t,title:r,link:s,track:c,colors:i={primary:{name:null,custom:null,classes:""}}}=e;return(0,a.createElement)("h2",{id:`${t}__title`,className:"jetpack-podcast-player__title"},!(!c||!c.title)&&(0,a.createElement)("span",{className:o()("jetpack-podcast-player__current-track-title",i.primary.classes),style:{color:i.primary.custom}},c.title,(0,a.createElement)("a",{className:"jetpack-podcast-player__track-title-link",href:c.link||c.src,target:"_blank",rel:"noopener noreferrer nofollow"},n.Z)),!!(c&&c.title&&r)&&(0,a.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"}," - "),!!r&&(0,a.createElement)(l,{title:r,link:s,colors:i}))})),l=(0,a.memo)((e=>{let{title:t,link:r}=e;return(0,a.createElement)("span",{className:"jetpack-podcast-player__podcast-title"},r?(0,a.createElement)("a",{className:"jetpack-podcast-player__link",href:r,target:"_blank",rel:"noopener noreferrer nofollow"},t):{title:t})}));t.Z=c},66530:function(e,t,r){"use strict";var a=r(69307),s=r(15111),o=r(15020);const n=(0,a.memo)((e=>{let{playerId:t,tracks:r,selectTrack:n,currentTrack:c,playerState:i,colors:l}=e;return(0,a.createElement)("ol",{className:"jetpack-podcast-player__tracks","aria-labelledby":`jetpack-podcast-player__tracklist-title--${t}`,"aria-describedby":`jetpack-podcast-player__tracklist-description--${t}`},r.map(((e,t)=>{const r=c===t;return(0,a.createElement)(o.Z,{key:e.id,index:t,track:e,selectTrack:n,isActive:r,isPlaying:r&&i===s.Wp,isError:r&&i===s.Vy,colors:l})})))}));t.Z=n},58627:function(e,t,r){"use strict";var a=r(27538),s=r.n(a),o=r(69307),n=r(89105),c=r.n(n),i=r(65736),l=r(25158),u=r(94333),d=r(9818),p=r(15111),m=r(92924),h=r(66530),y=r(98006),f=r(74693),g=r(56551);const __=i.__;class k extends o.Component{constructor(){super(...arguments),s()(this,"state",{currentTrack:0,hasUserInteraction:!1}),s()(this,"recordUserInteraction",(()=>{this.state.hasUserInteraction||this.setState({hasUserInteraction:!0})})),s()(this,"selectTrack",(e=>{const{currentTrack:t}=this.state;if(t===e)return this.recordUserInteraction(),void this.props.toggleMediaSource(this.props.playerId);-1!==t&&this.props.pauseMediaSource(this.props.playerId),this.loadAndPlay(e)})),s()(this,"loadTrack",(e=>{const t=this.getTrack(e);if(!t)return!1;this.state.currentTrack!==e&&this.setState({currentTrack:e});const{title:r,link:a,description:s}=t;return this.props.updateMediaSourceData(this.props.playerId,{title:r,link:a}),(0,l.speak)(
+/* translators: %s is the track title. It describes the current state of the track as "Loading: [track title]". */
+`${(0,i.sprintf)(__("Loading: %s","jetpack"),r)} ${s}`,"assertive"),!0})),s()(this,"loadAndPlay",(e=>{this.recordUserInteraction(),this.loadTrack(e)&&this.props.playMediaSource(this.props.playerId)})),s()(this,"getTrack",(e=>this.props.tracks[e])),s()(this,"handleError",(e=>{if(!this.state.hasUserInteraction){const t=window.navigator.userAgent.match(/Trident\/7\./)?"IE11: Playing sounds in webpages setting is not checked":e;this.setState((()=>{throw new Error(t)}))}this.props.errorMediaSource(this.props.playerId),(0,l.speak)(`${__("Error: Episode unavailable - Open in a new tab","jetpack")}`,"assertive")})),s()(this,"handlePlay",(()=>{this.props.playMediaSource(this.props.playerId),this.setState({hasUserInteraction:!0})})),s()(this,"handlePause",(()=>{this.props.pauseMediaSource(this.props.playerId),this.props.playerState!==p.Vy&&this.props.pauseMediaSource(this.props.playerId)})),s()(this,"handleTimeChange",(e=>{this.props.setMediaSourceCurrentTime(this.props.playerId,e)})),s()(this,"handleJump",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime-5)})),s()(this,"handleSkip",(()=>{this.props.setMediaSourceCurrentTime(this.props.playerId,this.props.currentTime+30)})),s()(this,"updateMediaData",(e=>{this.props.updateMediaSourceData(this.props.playerId,{duration:e.target?.duration,domId:e.target?.id})}))}registerPlayer(){const e=this.getTrack(this.state.currentTrack)||{},{playerId:t}=this.props;this.props.registerMediaSource(t,{title:e.title,link:e.link,state:p._5}),this.props.setDefaultMediaSource(t)}componentDidMount(){this.props.playerId&&this.registerPlayer()}componentWillUnmount(){this.props.playerId&&this.props.unregisterMediaSource(this.props.playerId)}componentDidUpdate(e){const t=e=>e?.length?e.map((e=>e.guid)):[],r=t(this.props.tracks),a=new Set(t(e.tracks));r.length===a.size&&r.every((e=>a.has(e)))||this.loadTrack(0)}static getDerivedStateFromProps(e,t){return e.tracks.length<=t.currentTrack?{...t,currentTrack:0}:null}render(){const{playerId:e,title:t,link:r,cover:a,tracks:s,attributes:n,currentTime:l,playerState:u}=this.props,{itemsToShow:d,primaryColor:p,customPrimaryColor:g,hexPrimaryColor:k,secondaryColor:E,customSecondaryColor:C,hexSecondaryColor:v,backgroundColor:_,customBackgroundColor:S,hexBackgroundColor:w,showCoverArt:b,showEpisodeTitle:M,showEpisodeDescription:T}=n,{currentTrack:j}=this.state,F=s.slice(0,d),A=this.getTrack(j),I=(0,f.Aq)({primaryColor:p,customPrimaryColor:g,secondaryColor:E,customSecondaryColor:C,backgroundColor:_,customBackgroundColor:S}),P={color:C,backgroundColor:S,"--jetpack-podcast-player-primary":k,"--jetpack-podcast-player-secondary":v,"--jetpack-podcast-player-background":w},x=c()("jetpack-podcast-player",u,I.secondary.classes,I.background.classes);return(0,o.createElement)("section",{className:x,style:P,"aria-labelledby":t||A&&A.title?`${e}__title`:void 0,"aria-describedby":A&&A.description?`${e}__track-description`:void 0,"data-jetpack-iframe-ignore":!0},(0,o.createElement)(y.Z,{playerId:e,title:t,link:r,cover:a,track:this.getTrack(j),showCoverArt:b,showEpisodeTitle:M,showEpisodeDescription:T,colors:I},(0,o.createElement)(m.Z,{onJumpBack:this.handleJump,onSkipForward:this.handleSkip,trackSource:this.getTrack(j).src,onPlay:this.handlePlay,onPause:this.handlePause,onError:this.handleError,playStatus:u,currentTime:l,onTimeChange:this.handleTimeChange,onMetadataLoaded:this.updateMediaData})),F.length>1&&(0,o.createElement)(o.Fragment,null,(0,o.createElement)("h4",{id:`jetpack-podcast-player__tracklist-title--${e}`,className:"jetpack-podcast-player--visually-hidden"},(0,i.sprintf)(// translators: %s is the track title.
+__("Playlist: %s","jetpack"),t)),(0,o.createElement)("p",{id:`jetpack-podcast-player__tracklist-description--${e}`,className:"jetpack-podcast-player--visually-hidden"},__("Select an episode to play it in the audio player.","jetpack")),(0,o.createElement)(h.Z,{playerId:e,playerState:u,currentTrack:j,tracks:F,selectTrack:this.selectTrack,colors:I})))}}k.defaultProps={title:"",cover:"",link:"",attributes:{url:null,itemsToShow:5,showCoverArt:!0,showEpisodeTitle:!0,showEpisodeDescription:!0},tracks:[]},t.Z=(0,u.compose)([g.Z,(0,d.withSelect)(((e,t)=>{const{playerId:r}=t,{getMediaSourceCurrentTime:a,getMediaPlayerState:s}=e(p.tT);return{currentTime:a(r),playerState:s(r)}})),(0,d.withDispatch)((e=>{const{registerMediaSource:t,updateMediaSourceData:r,unregisterMediaSource:a,setDefaultMediaSource:s,playMediaSource:o,pauseMediaSource:n,toggleMediaSource:c,errorMediaSource:i,setMediaSourceCurrentTime:l}=e(p.tT);return{registerMediaSource:t,updateMediaSourceData:r,unregisterMediaSource:a,setDefaultMediaSource:s,playMediaSource:o,pauseMediaSource:n,toggleMediaSource:c,errorMediaSource:i,setMediaSourceCurrentTime:l}}))])(k)},86852:function(e,t,r){"use strict";var a=r(69307),s=r(65736);const __=s.__,o=(0,a.memo)((e=>{let{link:t,title:r,colors:o}=e;return(0,a.createElement)("div",{className:"jetpack-podcast-player__track-error"},__("Episode unavailable. ","jetpack"),t&&(0,a.createElement)("span",{className:o.secondary.classes,style:{color:o.secondary.custom}},(0,a.createElement)("a",{className:"jetpack-podcast-player__link",href:t,rel:"noopener noreferrer nofollow",target:"_blank"},(0,a.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${(0,s.sprintf)(
+/* translators: %s is the title of the track. This text is visually hidden from the screen, but available to screen readers. */
+__("%s:","jetpack"),r)} `),__("Open in a new tab","jetpack"))))}));t.Z=o},71938:function(e,t,r){"use strict";var a=r(69307),s=r(65736),o=r(72086);const __=s.__,n=(0,a.memo)((e=>{let t,r,{isPlaying:s,isError:n,className:c}=e;n?(r="error",
+/* translators: This is text to describe the current state. This will go
+ before the track title, such as "Error: [The title of the track]". */
+t=__("Error:","jetpack")):s&&(r="playing",
+/* translators: Text to describe the current state. This will go before the
+ track title, such as "Playing: [The title of the track]". */
+t=__("Playing:","jetpack"));const i=o[r];return i?(0,a.createElement)("span",{className:`${c} ${c}--${r}`},(0,a.createElement)("span",{className:"jetpack-podcast-player--visually-hidden"},`${t} `),i):(0,a.createElement)("span",{className:c})}));t.Z=n},15020:function(e,t,r){"use strict";var a=r(69307),s=r(89105),o=r.n(s),n=r(65736),c=r(71938),i=r(86852),l=r(74693);const __=n.__,u=(0,a.memo)((e=>{let{track:t,isActive:r,isPlaying:s,isError:n,selectTrack:u,index:d,colors:p={primary:{},secondary:{}}}=e;const m=(0,l.Gd)("color",p.primary.name),h=(0,l.Gd)("color",p.secondary.name),y=o()("jetpack-podcast-player__track",{"is-active":r,"has-primary":r&&(p.primary.name||p.primary.custom),[m]:r&&!!m,"has-secondary":!r&&(p.secondary.name||p.secondary.custom),[h]:!r&&!!h}),f={};r&&p.primary.custom&&!m?f.color=p.primary.custom:r||!p.secondary.custom||h||(f.color=p.secondary.custom);const
+/* translators: This needs to be a single word with no spaces. It describes
+ the current item in the group. A screen reader will announce it as "[title],
+ current track". */
+g=r?__("track","jetpack"):void 0;return(0,a.createElement)("li",{className:y,style:Object.keys(f).length?f:null},(0,a.createElement)("a",{className:"jetpack-podcast-player__link jetpack-podcast-player__track-link",href:t.link||t.src,role:"button","aria-current":g,onClick:e=>{e.shiftKey||e.metaKey||e.altKey||(e.preventDefault(),u(d))},onKeyDown:e=>{" "===event.key&&(e.preventDefault(),u(d))}},(0,a.createElement)(c.Z,{className:"jetpack-podcast-player__track-status-icon",isPlaying:s,isError:n}),(0,a.createElement)("span",{className:"jetpack-podcast-player__track-title"},t.title),t.duration&&(0,a.createElement)("time",{className:"jetpack-podcast-player__track-duration",dateTime:t.duration},t.duration)),r&&n&&(0,a.createElement)(i.Z,{link:t.link,title:t.title,colors:p}))}));t.Z=u},56551:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var a=r(27538),s=r.n(a),o=r(69307),n=r(65736);const __=n.__;function c(e){class t extends o.Component{constructor(){super(...arguments),s()(this,"state",{didError:!1,isIE11AudioIssue:!1}),s()(this,"componentDidCatch",((e,t)=>{this.props.onError(e,t)}))}render(){const{didError:t,isIE11AudioIssue:r}=this.state;return t?(0,o.createElement)("section",{className:"jetpack-podcast-player"},(0,o.createElement)("p",{className:"jetpack-podcast-player__error"},r?__('The podcast player cannot be displayed as your browser settings do not allow for sounds to be played in webpages. This can be changed in your browser’s "Internet options" settings. In the "Advanced" tab you will have to check the box next to "Play sounds in webpages" in the "Multimedia" section. Once you have confirmed that the box is checked, please press "Apply" and then reload this page.',"jetpack"):__("An unexpected error occured within the Podcast Player. Reloading this page might fix the problem.","jetpack",0))):(0,o.createElement)(e,this.props)}}return s()(t,"getDerivedStateFromError",(e=>({didError:!0,isIE11AudioIssue:!!e.message.match(/IE11/)}))),t.defaultProps={onError:()=>{}},t}},76814:function(e,t,r){"use strict";var a=r(69307),s=r(55609);const o=(0,a.createElement)(s.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,a.createElement)(s.Path,{d:"M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"}));t.Z=o},72086:function(e,t,r){"use strict";r.r(t),r.d(t,{playing:function(){return n},error:function(){return c}});var a=r(69307),s=r(55609);const o={height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg"},n=(0,a.createElement)(s.SVG,o,(0,a.createElement)(s.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,a.createElement)(s.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm7-.17v6.34L7.83 13H5v-2h2.83L10 8.83zM16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77 0-4.28-2.99-7.86-7-8.77z"})),c=(0,a.createElement)(s.SVG,o,(0,a.createElement)(s.Path,{d:"M0 0h24v24H0V0z",fill:"none"}),(0,a.createElement)(s.Path,{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}))},74693:function(e,t,r){"use strict";r.d(t,{Gd:function(){return n},Aq:function(){return c}});var a=r(89105),s=r.n(a),o=r(92819);function n(e,t){if(e&&t)return`has-${t}-${e}`}const c=(0,o.memoize)((e=>{let{primaryColor:t,customPrimaryColor:r,secondaryColor:a,customSecondaryColor:o,backgroundColor:c,customBackgroundColor:i}=e;const l=n("color",t),u=n("color",a),d=n("background-color",c);return{primary:{name:t,custom:r,classes:s()({"has-primary":l||r,[l]:l})},secondary:{name:a,custom:o,classes:s()({"has-secondary":u||o,[u]:u})},background:{name:c,custom:i,classes:s()({"has-background":d||i,[d]:d})}}}),(e=>Object.values(e).join()))},92924:function(e,t,r){"use strict";var a=r(69307),s=r(92819),o=r(65736),n=r(25158),c=r(15111);const __=o.__,i="undefined"!=typeof _wpmejsSettings?_wpmejsSettings:{};function l(e,t,r){const a=document.createElement("div");a.className=e;const s=document.createElement("button");return s.innerText=t,s.addEventListener("click",r),s.setAttribute("aria-label",t),s.setAttribute("title",t),a.appendChild(s),a}t.Z=function(e){let{trackSource:t,onPlay:r,onPause:o,onError:u,onTimeChange:d,onSkipForward:p,onJumpBack:m,currentTime:h,playStatus:y=c._5,onMetadataLoaded:f,loadWhenReady:g=!1,preload:k="metadata"}=e;const E=(0,a.useRef)(),C=()=>{E.current.play().catch((()=>{}))},v=()=>{E.current.pause(),(0,n.speak)(__("Paused","jetpack"),"assertive")};return(0,a.useEffect)((()=>{MediaElementPlayer.prototype._setResponsiveMode||(MediaElementPlayer.prototype._setResponsiveMode=MediaElementPlayer.prototype.setResponsiveMode,MediaElementPlayer.prototype.setResponsiveMode=function(){const e=this;e.getElement(e.container).parentNode&&e._setResponsiveMode()})}),[]),(0,a.useEffect)((()=>{const e=E.current;e.preload=k;const t=new MediaElementPlayer(e,{...i,success:()=>g&&e?.load()});if(m||p){const e=`${t.options.classPrefix}button ${t.options.classPrefix}jump-button`;if(m){const r=`${e} ${t.options.classPrefix}jump-backward-button`;t.addControlElement(l(r,__("Jump Back","jetpack"),m),"jumpBackwardButton")}if(p){const r=`${e} ${t.options.classPrefix}skip-forward-button`;t.addControlElement(l(r,__("Skip Forward","jetpack"),p),"skipForwardButton")}}return r&&e.addEventListener("play",r),o&&e.addEventListener("pause",o),u&&e.addEventListener("error",u),f&&e.addEventListener("loadedmetadata",f),()=>{t.remove(),r&&e.removeEventListener("play",r),o&&e.removeEventListener("pause",o),u&&e.removeEventListener("error",u),f&&e.removeEventListener("loadedmetadata",f)}}),[r,o,u,m,p,f,g,k]),(0,a.useEffect)((()=>{const[e,t]=!1===E.current?.paused?[c.Wp,v]:[c._5,C],r=(0,s.debounce)(t,100);return c.Vy!==y&&e!==y&&r(),()=>{r.cancel()}}),[E,y,t]),(0,a.useEffect)((()=>{if(!d)return;const e=E.current,t=(0,s.throttle)((e=>d(e)),1e3,{leading:!0,trailing:!1}),r=e=>t(e.target.currentTime);return d&&e?.addEventListener("timeupdate",r),()=>{t.cancel(),e?.removeEventListener("timeupdate",r)}}),[E,d]),(0,a.useEffect)((()=>{const e=E.current;h&&e&&Math.abs(Math.floor(h-e.currentTime))>1&&(e.currentTime=h)}),[E,h]),(0,a.createElement)("div",{className:"jetpack-audio-player"},(0,a.createElement)("audio",{src:t,ref:E}))}},57836:function(e,t,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(r.p=window.Jetpack_Block_Assets_Base_Url.url)},15111:function(e,t,r){"use strict";r.d(t,{tT:function(){return a},Wp:function(){return s},Vy:function(){return o},_5:function(){return n}});const a="jetpack/media-source",s="is-playing",o="is-error",n="is-paused"},73617:function(e,t,r){"use strict";var a=r(9818),s=r(46169),o=r(15111);if(void 0!==a.createReduxStore){const e=(0,a.createReduxStore)(o.tT,s.Z);(0,a.register)(e)}else(0,a.registerStore)(o.tT,s.Z)},46169:function(e,t,r){"use strict";var a=r(15111);const s={sources:{},default:null},o={getDefaultMediaSource(e){let t=null;const r=Object.keys(e.sources);if(e.default?t=e.default:r?.length&&(t=e.sources[r[0]].id),t)return e.sources[t]},getMediaPlayerState:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.state,getMediaSourceCurrentTime:(e,t)=>(t?e.sources?.[t]:o.getDefaultMediaSource(e))?.currentTime,getMediaSourceDuration(e,t){if(!t){return o.getDefaultMediaSource(e)?.duration}return e.sources?.[t]?.duration},getMediaSourceDomReference(e,t){const r=t?e.sources?.[t]:o.getDefaultMediaSource(e);if(!r)return;const a=r?.domId;return a?document.getElementById(a):void 0}},n={reducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;const r=t.id||e.default||Object.keys(e.sources)?.[0];switch(t.type){case"REGISTER_MEDIA_SOURCE":return{...e,sources:{...e.sources,[t.id]:{id:t.id,...t.mediaSourceState}}};case"UPDATE_MEDIA_SOURCE_DATA":return{...e,sources:{...e.sources,[t.id]:{...e.sources[t.id],...t.data}}};case"UNREGISTER_MEDIA_SOURCE":{const r=Object.assign({},e);return r.sources[t.id]&&delete r.sources[t.id],t.id===e.default&&(r.default=Object.keys(e.sources)?.[0]),r}case"SET_DEFAULT_MEDIA_SOURCE":return{...e,default:t.id};case"SET_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[r]:{...e.sources[r],state:t.state}}};case"TOGGLE_MEDIA_PLAYER_STATE":return{...e,sources:{...e.sources,[r]:{...e.sources[r],state:e.sources[r].state===a.Wp?a._5:a.Wp}}};case"SET_MEDIA_PLAYER_CURRENT_TIME":return{...e,sources:{...e.sources,[r]:{...e.sources[r],currentTime:t.currentTime}}}}return e},actions:{registerMediaSource:(e,t)=>({type:"REGISTER_MEDIA_SOURCE",id:e,mediaSourceState:t}),updateMediaSourceData:(e,t)=>({type:"UPDATE_MEDIA_SOURCE_DATA",id:e,data:t}),unregisterMediaSource:e=>({type:"UNREGISTER_MEDIA_SOURCE",id:e}),setDefaultMediaSource:e=>({type:"SET_DEFAULT_MEDIA_SOURCE",id:e}),playMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:a.Wp}),toggleMediaSource:e=>({type:"TOGGLE_MEDIA_PLAYER_STATE",id:e}),pauseMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:a._5}),errorMediaSource:e=>({type:"SET_MEDIA_PLAYER_STATE",id:e,state:a.Vy}),setMediaSourceCurrentTime:(e,t)=>({type:"SET_MEDIA_PLAYER_CURRENT_TIME",id:e,currentTime:t})},selectors:o};t.Z=n},90922:function(e,t,r){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 r="color: "+this.color;t.splice(1,0,r,"color: inherit");let a=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(a++,"%c"===e&&(s=a))})),t.splice(s,0,r)},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=r(31967)(t);const{formatters:a}=e.exports;a.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,r){e.exports=function(e){function t(e){let r,s,o,n=null;function c(){for(var e=arguments.length,a=new Array(e),s=0;s<e;s++)a[s]=arguments[s];if(!c.enabled)return;const o=c,n=Number(new Date),i=n-(r||n);o.diff=i,o.prev=r,o.curr=n,r=n,a[0]=t.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let l=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,((e,r)=>{if("%%"===e)return"%";l++;const s=t.formatters[r];if("function"==typeof s){const t=a[l];e=s.call(o,t),a.splice(l,1),l--}return e})),t.formatArgs.call(o,a);const u=o.log||t.log;u.apply(o,a)}return c.namespace=e,c.useColors=t.useColors(),c.color=t.selectColor(e),c.extend=a,c.destroy=t.destroy,Object.defineProperty(c,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==n?n:(s!==t.namespaces&&(s=t.namespaces,o=t.enabled(e)),o),set:e=>{n=e}}),"function"==typeof t.init&&t.init(c),c}function a(e,r){const a=t(this.namespace+(void 0===r?":":r)+e);return a.log=this.log,a}function s(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(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const a=("string"==typeof e?e:"").split(/[\s,]+/),s=a.length;for(r=0;r<s;r++)a[r]&&("-"===(e=a[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let r,a;for(r=0,a=t.skips.length;r<a;r++)if(t.skips[r].test(e))return!1;for(r=0,a=t.names.length;r<a;r++)if(t.names[r].test(e))return!0;return!1},t.humanize=r(32002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((r=>{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t}},92819:function(e){"use strict";e.exports=window.lodash},25158:function(e){"use strict";e.exports=window.wp.a11y},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n}},t={};function r(a){var s=t[a];if(void 0!==s)return s.exports;var o=t[a]={exports:{}};return e[a](o,o.exports,r),o.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var a in t)r.o(t,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var a=t.getElementsByTagName("script");a.length&&(e=a[a.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e+"../"}(),function(){"use strict";r(57836)}(),function(){"use strict";var e=r(90922),t=r.n(e),a=r(69307),s=(r(73617),r(58627));const o=t()("jetpack:podcast-player"),n={},c=function(e){e.classList.add("is-default"),e.setAttribute("data-jetpack-block-initialized","true")};document.addEventListener("DOMContentLoaded",(()=>{document.querySelectorAll(".wp-block-jetpack-podcast-player:not([data-jetpack-block-initialized])").forEach((e=>{e.classList.remove("is-default"),function(e){const t=document.getElementById(e);if(o("initializing",e,t),!t)return;if("true"===t.getAttribute("data-jetpack-block-initialized"))return;const r=t.querySelector('script[type="application/json"]');if(!r)return void c(t);let i;try{i=JSON.parse(r.text)}catch(e){return o("error parsing json",e),void c(t)}r.remove();const l=t.innerHTML;if(!i||!i.tracks.length)return o("no tracks found"),void c(t);try{const r=(0,a.createElement)(s.Z,{...i,onError:function(){(0,a.unmountComponentAtNode)(t),t.innerHTML=l,c(t)}});n[e]=(0,a.render)(r,t)}catch(e){o("unable to render",e),c(t)}t.setAttribute("data-jetpack-block-initialized","true")}(e.id)}))}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/podcast-player/view.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/podcast-player/view.js.LICENSE.txt
new file mode 100644
index 00000000..0c20a875
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/podcast-player/view.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
diff --git a/plugins/jetpack/_inc/blocks/podcast-player/view.rtl.css b/plugins/jetpack/_inc/blocks/podcast-player/view.rtl.css
new file mode 100644
index 00000000..9287369f
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/podcast-player/view.rtl.css
@@ -0,0 +1 @@
+.jetpack-audio-player-loading{background:#ccc;background:var(--jetpack-audio-player-secondary);height:10px;margin:15px 24px}.jetpack-audio-player{--jetpack-audio-player-primary:var( --jetpack-podcast-player-primary,#000 );--jetpack-audio-player-secondary:var( --jetpack-podcast-player-secondary,#ccc );--jetpack-audio-player-background:var( --jetpack-podcast-player-background,#fff );height:40px}.jetpack-audio-player .mejs-container,.jetpack-audio-player .mejs-container .mejs-controls,.jetpack-audio-player .mejs-embed,.jetpack-audio-player .mejs-embed body,.jetpack-audio-player .mejs-mediaelement{background-color:transparent}.jetpack-audio-player .mejs-container:focus{box-shadow:none;outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-controls{padding:0;position:static}.jetpack-podcast-player__header .jetpack-audio-player .mejs-controls{padding-left:18px;padding-right:15px}.jetpack-audio-player .mejs-time{color:#ccc;color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-time-float{background:#000;background:var(--jetpack-audio-player-primary);border-color:#000;border-color:var(--jetpack-audio-player-primary);color:#fff;color:var(--jetpack-audio-player-background)}.jetpack-audio-player .mejs-time-float-corner{border-top-color:#000;border-top-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-total{background-color:#ccc;background-color:var(--jetpack-audio-player-secondary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{opacity:.5}.jetpack-audio-player .mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-current,.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-loaded{background-color:#000;background-color:var(--jetpack-audio-player-primary)}.jetpack-audio-player .mejs-controls .mejs-time-rail .mejs-time-slider:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-button>button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23000;width:16px;height:16px}.st1{fill:none;stroke:%23000;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm47.2.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' fill='none' stroke='%23000'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zm22.4 1h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' fill='%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' opacity='.75' fill='none' stroke='%23000' stroke-width='5'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' fill='none' stroke='%23000' stroke-width='5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' opacity='.4'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' opacity='.6'/%3E%3Ccircle cx='170.1' cy='79' r='7' opacity='.8'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' opacity='.9'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' opacity='.3'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' opacity='.5'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' opacity='.7'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zm14-12.7c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E")}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E');background-size:60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button{background-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button{background-position:-9px -6px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.jetpack-audio-player .mejs-button>button{background-image:none}.jetpack-audio-player .mejs-button>button:before{background-color:var(--jetpack-audio-player-primary);background-image:none;content:"";display:block;height:100%;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='120'%3E%3Cstyle%3E.st0{fill:%23fff;width:16px;height:16px}.st1{fill:none;stroke:%23fff;stroke-width:1.5;stroke-linecap:round}%3C/style%3E%3Cpath class='st0' d='M16.5 8.5c.3.1.4.5.2.8-.1.1-.1.2-.2.2l-11.4 7c-.5.3-.8.1-.8-.5V2c0-.5.4-.8.8-.5l11.4 7zM24 1h2.2c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1H24c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zm9.8 0H36c.6 0 1 .4 1 1v14c0 .6-.4 1-1 1h-2.2c-.6 0-1-.4-1-1V2c0-.5.4-1 1-1zM81 1.4c0-.6.4-1 1-1h5.4c.6 0 .7.3.3.7l-6 6c-.4.4-.7.3-.7-.3V1.4zm0 15.8c0 .6.4 1 1 1h5.4c.6 0 .7-.3.3-.7l-6-6c-.4-.4-.7-.3-.7.3v5.4zM98.8 1.4c0-.6-.4-1-1-1h-5.4c-.6 0-.7.3-.3.7l6 6c.4.4.7.3.7-.3V1.4zm0 15.8c0 .6-.4 1-1 1h-5.4c-.6 0-.7-.3-.3-.7l6-6c.4-.4.7-.3.7.3v5.4zM112.7 5c0 .6.4 1 1 1h4.1c.6 0 .7-.3.3-.7L113.4.6c-.4-.4-.7-.3-.7.3V5zm-7.1 1c.6 0 1-.4 1-1V.9c0-.6-.3-.7-.7-.3l-4.7 4.7c-.4.4-.3.7.3.7h4.1zm1 7.1c0-.6-.4-1-1-1h-4.1c-.6 0-.7.3-.3.7l4.7 4.7c.4.4.7.3.7-.3v-4.1zm7.1-1c-.6 0-1 .4-1 1v4.1c0 .5.3.7.7.3l4.7-4.7c.4-.4.3-.7-.3-.7h-4.1zM67 5.8c-.5.4-1.2.6-1.8.6H62c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L67 5.8z'/%3E%3Cpath class='st1' d='M73.9 2.5s3.9-.8 3.9 7.7-3.9 7.8-3.9 7.8'/%3E%3Cpath class='st1' d='M72.6 6.4s2.6-.4 2.6 3.8-2.6 3.9-2.6 3.9'/%3E%3Cpath class='st0' d='M47 5.8c-.5.4-1.2.6-1.8.6H42c-.6 0-1 .4-1 1v5.7c0 .6.4 1 1 1h4.2c.3.2.5.4.8.6l3.5 2.6c.4.3.8.1.8-.4V3.5c0-.5-.4-.7-.8-.4L47 5.8z'/%3E%3Cpath d='m52.8 7 5.4 5.4m-5.4 0L58.2 7' style='fill:none;stroke:%23fff;stroke-width:2;stroke-linecap:round'/%3E%3Cpath d='M128.7 8.6c-6.2-4.2-6.5 7.8 0 3.9m6.5-3.9c-6.2-4.2-6.5 7.8 0 3.9' style='fill:none;stroke:%23fff'/%3E%3Cpath class='st0' d='M122.2 3.4h15.7v13.1h-15.7V3.4zM120.8 2v15.7h18.3V2h-18.3zM143.2 3h14c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2h-14c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2z'/%3E%3Cpath d='M146.4 13.8c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.6.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.7.5-1.6.7-2.5.8zm7.5 0c-.8 0-1.6-.4-2.1-1-1.1-1.4-1-3.4.1-4.8.5-.6 2-1.7 4.6.2l-.5.8c-1.4-1-2.6-1.1-3.3-.3-.8 1-.8 2.4-.1 3.5.7.9 1.9.8 3.4-.1l.5.9c-.8.5-1.7.7-2.6.8z' style='fill:%23231f20'/%3E%3Cpath class='st0' d='M60.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L30 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L60.3 77z'/%3E%3Cpath d='M2.5 79c0-20.7 16.8-37.5 37.5-37.5S77.5 58.3 77.5 79 60.7 116.5 40 116.5 2.5 99.7 2.5 79z' style='opacity:.75;fill:none;stroke:%23fff;stroke-width:5;enable-background:new'/%3E%3Cpath class='st0' d='M140.3 77c.6.2.8.8.6 1.4-.1.3-.3.5-.6.6L110 96.5c-1 .6-1.7.1-1.7-1v-35c0-1.1.8-1.5 1.7-1L140.3 77z'/%3E%3Cpath d='M82.5 79c0-20.7 16.8-37.5 37.5-37.5s37.5 16.8 37.5 37.5-16.8 37.5-37.5 37.5S82.5 99.7 82.5 79z' style='fill:none;stroke:%23fff;stroke-width:5'/%3E%3Ccircle class='st0' cx='201.9' cy='47.1' r='8.1'/%3E%3Ccircle cx='233.9' cy='79' r='5' style='opacity:.4;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='201.9' cy='110.9' r='6' style='opacity:.6;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='170.1' cy='79' r='7' style='opacity:.8;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='56.3' r='7.5' style='opacity:.9;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='226.3' cy='56.1' r='4.5' style='opacity:.3;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='225.8' cy='102.8' r='5.5' style='opacity:.5;fill:%23fff;enable-background:new'/%3E%3Ccircle cx='178.2' cy='102.8' r='6.5' style='opacity:.7;fill:%23fff;enable-background:new'/%3E%3Cpath class='st0' d='M178 9.4c0 .4-.4.7-.9.7-.1 0-.2 0-.2-.1L172 8.2c-.5-.2-.6-.6-.1-.8l6.2-3.6c.5-.3.8-.1.7.5l-.8 5.1z'/%3E%3Cpath class='st0' d='M169.4 15.9c-1 0-2-.2-2.9-.7-2-1-3.2-3-3.2-5.2.1-3.4 2.9-6 6.3-6 2.5.1 4.8 1.7 5.6 4.1l.1-.1 2.1 1.1c-.6-4.4-4.7-7.5-9.1-6.9-3.9.6-6.9 3.9-7 7.9 0 2.9 1.7 5.6 4.3 7 1.2.6 2.5.9 3.8 1 2.6 0 5-1.2 6.6-3.3l-1.8-.9c-1.2 1.2-3 2-4.8 2zM183.4 3.2c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5zm-5.1 5c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c0-.9.7-1.5 1.5-1.5zm5.1 0h8.5c.9 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5h-8.5c-.9 0-1.5-.7-1.5-1.5-.1-.9.6-1.5 1.5-1.5z'/%3E%3C/svg%3E");width:100%}.jetpack-audio-player .mejs-button.mejs-jump-button>button{background-image:none}.jetpack-audio-player .mejs-button.mejs-jump-button>button:before{background-image:none;-webkit-mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px;mask:url('data:image/svg+xml;utf8,%3Csvg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60.78 35.3"%3E%3Cdefs%3E%3Cstyle%3E.cls-1{fill-rule:evenodd;}%3C/style%3E%3C/defs%3E%3Ctitle%3Etestsprite%3C/title%3E%3Cg id="layer1"%3E%3Cg id="mask0"%3E%3Cpath id="path44" class="cls-1" d="M42.49,6.27v3.87a7.72,7.72,0,1,1-7.68,7.72h1.92a5.77,5.77,0,1,0,5.76-5.79v3.86l-4.8-4.83Zm-1,10.36-.24,2.1.65.15,0,0a.46.46,0,0,1,.07-.07s0,0,.06,0l.06,0,.14-.05.19,0a.79.79,0,0,1,.29.05.48.48,0,0,1,.2.14.65.65,0,0,1,.13.23,1,1,0,0,1,0,.3h0a1,1,0,0,1,0,.3.9.9,0,0,1-.11.24.46.46,0,0,1-.17.17.5.5,0,0,1-.26.06.6.6,0,0,1-.4-.15.56.56,0,0,1-.19-.39h-.8a1.2,1.2,0,0,0,.12.51,1.12,1.12,0,0,0,.31.37,1.45,1.45,0,0,0,.44.24,2.24,2.24,0,0,0,.51.07,1.91,1.91,0,0,0,.62-.11,1.33,1.33,0,0,0,.43-.3,1.39,1.39,0,0,0,.26-.44,1.46,1.46,0,0,0,.08-.52,2.14,2.14,0,0,0-.08-.58,1.05,1.05,0,0,0-.64-.7,1.21,1.21,0,0,0-.52-.1l-.2,0-.08,0-.09,0a.38.38,0,0,0-.14.05l0,0s0,0-.06,0l.11-.89h1.63v-.69Z"/%3E%3C/g%3E%3Cg id="g34"%3E%3Cg id="g32"%3E%3Cpath id="path26" d="M23.81,17.58a6,6,0,1,1-6-6v4l5-5-5-5v4a8,8,0,1,0,8,8Z"/%3E%3Cpath id="path28" d="M15.87,20a.57.57,0,0,1-.62-.54H14.4a1.3,1.3,0,0,0,1.45,1.23c.87,0,1.51-.46,1.51-1.25a1,1,0,0,0-.71-1,1.06,1.06,0,0,0,.65-.92c0-.21-.05-1.22-1.44-1.22a1.27,1.27,0,0,0-1.4,1.16h.85a.58.58,0,0,1,1.15.06.56.56,0,0,1-.63.59h-.46v.66h.45c.65,0,.7.42.7.64A.58.58,0,0,1,15.87,20Z"/%3E%3Cpath id="path30" d="M19.66,16.26c-.14,0-1.44-.08-1.44,1.82v.74c0,1.9,1.31,1.82,1.44,1.82s1.44.09,1.44-1.82v-.74C21.11,16.17,19.8,16.26,19.66,16.26Zm.6,2.67c0,.77-.21,1-.59,1s-.6-.26-.6-1V18c0-.75.22-1,.59-1s.6.26.6,1Z"/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E') 0 0/60.78px 35.296px}.jetpack-audio-player .mejs-button.mejs-jump-backward-button>button:before{-webkit-mask-position:-32px -6px;mask-position:-32px -6px}.jetpack-audio-player .mejs-button.mejs-skip-forward-button>button:before{-webkit-mask-position:-9px -6px;mask-position:-9px -6px}.jetpack-audio-player .mejs-button>button:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-audio-player-secondary);outline-offset:2px}.jetpack-audio-player .mejs-play>button:before{-webkit-mask-position:0 0;mask-position:0 0}.jetpack-audio-player .mejs-pause>button:before{-webkit-mask-position:-20px 0;mask-position:-20px 0}.jetpack-audio-player .mejs-replay>button:before{-webkit-mask-position:-160px 0;mask-position:-160px 0}.jetpack-audio-player .mejs-mute>button:before{-webkit-mask-position:-60px 0;mask-position:-60px 0}.jetpack-audio-player .mejs-unmute>button:before{-webkit-mask-position:-40px 0;mask-position:-40px 0}}.jetpack-podcast-player--visually-hidden{clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.wp-block-jetpack-podcast-player{overflow:hidden}.wp-block-jetpack-podcast-player audio{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player{--jetpack-podcast-player-primary:#000;--jetpack-podcast-player-secondary:#ccc;--jetpack-podcast-player-background:#fff;background-color:var(--jetpack-podcast-player-background);color:var(--jetpack-podcast-player-secondary);padding-bottom:0;padding-top:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player:not(.has-background){background-color:#fff}.wp-block-jetpack-podcast-player .jetpack-podcast-player a,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:hover,.wp-block-jetpack-podcast-player .jetpack-podcast-player a:visited{border:none;box-shadow:none;text-decoration:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player a:focus{outline:1px solid;outline-color:#ccc;outline-color:var(--jetpack-podcast-player-secondary);outline-offset:2px}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:visited{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player a.jetpack-podcast-player__link:hover{color:inherit;color:var(--jetpack-podcast-player-primary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__header{display:flex;flex-direction:column}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-info{display:flex;padding:24px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover{flex-shrink:0;margin-left:24px;width:80px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__cover-image{border:0;height:80px;max-width:100%;padding:0;width:80px}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title{color:inherit;display:flex;flex-direction:column;letter-spacing:0;margin:0;padding:0;width:100%}.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:after,.wp-block-jetpack-podcast-player h2.jetpack-podcast-player__title:before{display:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title{color:var(--jetpack-podcast-player-primary);font-size:24px;margin:0 0 10px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__current-track-title:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__podcast-title{color:inherit;font-size:16px;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__tracks{display:flex;flex-direction:column;list-style-type:none;margin:24px 0 0;padding:0 0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track{color:var(--jetpack-podcast-player-secondary);font-size:16px;line-height:1.8;margin:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track:not(.is-active):not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active{color:var(--jetpack-podcast-player-primary);font-weight:700}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.is-active:not(.has-primary){color:#000}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-link{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:10px 22px 10px 24px;transition:none}.wp-block-jetpack-podcast-player .is-error .jetpack-podcast-player__track.is-active .jetpack-podcast-player__track-link{padding-bottom:0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon{fill:currentColor;flex:22px 0 0}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon svg{fill:inherit;display:block;height:22px;margin-top:3.4px;width:22px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--error{fill:#cc1818}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-status-icon--error{fill:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title{flex-grow:1;padding:0 15px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link{display:inline-block;height:27px;margin-right:5px;vertical-align:top}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:active,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:visited{color:currentColor}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:focus,.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link:hover{color:inherit;color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-title-link svg{fill:currentColor;display:block;height:27px;width:27px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-duration{word-break:normal}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{color:inherit;font-size:16px;line-height:1.8;margin:0 0 24px;max-height:7.2em;order:99;overflow:hidden;padding:0 24px}@supports(display:-webkit-box){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-description{-webkit-box-orient:vertical;-webkit-line-clamp:4;display:-webkit-box;max-height:none}}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error{color:#cc1818;display:block;font-size:.8em;font-weight:400;margin-bottom:10px;margin-right:59px}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span{color:var(--jetpack-podcast-player-secondary)}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-error>span:not(.has-secondary){color:#ccc}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track.has-primary .jetpack-podcast-player__track-error{color:inherit}.wp-block-jetpack-podcast-player .jetpack-podcast-player__error{color:#cc1818;font-size:.8em;font-weight:400;margin:0;padding:24px}@supports((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing{background-image:none}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing:before{background-color:var(--jetpack-podcast-player-primary);background-image:none;content:"";display:block;height:100%;margin:4px 0 0 2px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");mask:url("data:image/svg+xml;charset=utf-8,%3Csvg width='18' height='18' viewBox='0 0 4.763 4.763' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath class='st0' d='M1.65 1.204a.793.793 0 0 1-.476.159H.327c-.159 0-.264.106-.264.264v1.508c0 .16.105.265.264.265h1.111c.08.053.133.106.212.159l.926.688c.106.079.212.026.212-.106V.595c0-.132-.106-.185-.212-.105z'/%3E%3Cpath class='st1' d='M3.48.33S4.512.118 4.512 2.367 3.48 4.431 3.48 4.431' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3Cpath class='st1' d='M3.13 1.362s.688-.106.688 1.005S3.13 3.4 3.13 3.4' fill='none' stroke='%23000' stroke-linecap='round' stroke-width='.397'/%3E%3C/svg%3E");-webkit-mask-position:0 0;mask-position:0 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;max-height:22px;max-width:20px;width:100%}.wp-block-jetpack-podcast-player .jetpack-podcast-player__track-status-icon--playing svg{display:none}}.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-title{padding-right:0}.wp-block-jetpack-podcast-player.is-default .jetpack-audio-player,.wp-block-jetpack-podcast-player.is-default .jetpack-podcast-player__track-status-icon{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/premium-content/view.asset.php b/plugins/jetpack/_inc/blocks/premium-content/view.asset.php
new file mode 100644
index 00000000..a83291f6
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/premium-content/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '459d69f1e48d569018a1d7765db92528'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/premium-content/view.css b/plugins/jetpack/_inc/blocks/premium-content/view.css
new file mode 100644
index 00000000..ca5116fd
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/premium-content/view.css
@@ -0,0 +1 @@
+.wp-block-premium-content-container .components-notice-list .components-notice__content{margin:0}.wp-block-premium-content-logged-out-view .wp-block-jetpack-recurring-payments{display:inline-block;margin-right:.5em}.wp-block-premium-content-login-button.aligncenter{align-items:center;display:flex;justify-content:center}.wp-block-premium-content-login-button.alignright{float:right}.wp-block-premium-content-logged-out-view__buttons{display:flex;margin-top:20px}.wp-block-premium-content-logged-out-view__buttons .wp-block-button__link{margin-right:20px}@media(min-width:660px){.wp-block-premium-content-logged-out-view__buttons .wp-block-button__link{min-width:200px}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/premium-content/view.js b/plugins/jetpack/_inc/blocks/premium-content/view.js
new file mode 100644
index 00000000..d37af8a6
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/premium-content/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,e,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var o=e.getElementsByTagName("script");o.length&&(t=o[o.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";document.addEventListener("DOMContentLoaded",(function(){let t="";"undefined"!=typeof window&&window.addEventListener("message",(function(e){if("https://subscribe.wordpress.com"===e.origin&&e.data){const n=JSON.parse(e.data);if(n&&n.result&&n.result.jwt_token){t=n.result.jwt_token;const e=new Date;e.setTime(e.getTime()+31536e6),document.cookie="jp-premium-content-session="+t+"; expires="+e.toGMTString()+"; path=/"}n&&"close"===n.action&&t&&(document.location.href=function(t,e,n){const o=new RegExp("([?&])"+e+"=.*?(&|$)","i"),r=-1!==t.indexOf("?")?"&":"?";return t.match(o)?t.replace(o,"$1"+e+"="+n+"$2"):t+r+e+"="+n}(document.location.href,"token",t))}}),!1)}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/premium-content/view.rtl.css b/plugins/jetpack/_inc/blocks/premium-content/view.rtl.css
new file mode 100644
index 00000000..af5b9a13
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/premium-content/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-premium-content-container .components-notice-list .components-notice__content{margin:0}.wp-block-premium-content-logged-out-view .wp-block-jetpack-recurring-payments{display:inline-block;margin-left:.5em}.wp-block-premium-content-login-button.aligncenter{align-items:center;display:flex;justify-content:center}.wp-block-premium-content-login-button.alignright{float:left}.wp-block-premium-content-logged-out-view__buttons{display:flex;margin-top:20px}.wp-block-premium-content-logged-out-view__buttons .wp-block-button__link{margin-left:20px}@media(min-width:660px){.wp-block-premium-content-logged-out-view__buttons .wp-block-button__link{min-width:200px}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/rating-star/view.asset.php b/plugins/jetpack/_inc/blocks/rating-star/view.asset.php
index 642b20f8..1e8cf66c 100644
--- a/plugins/jetpack/_inc/blocks/rating-star/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/rating-star/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '91c631084b207b72759e67bfa97dac34'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'c9e729e7b7b56e8e5774cbe74f754557'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/rating-star/view.css b/plugins/jetpack/_inc/blocks/rating-star/view.css
index 30938a56..663fe5ff 100644
--- a/plugins/jetpack/_inc/blocks/rating-star/view.css
+++ b/plugins/jetpack/_inc/blocks/rating-star/view.css
@@ -1 +1 @@
-.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em} \ No newline at end of file
+.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-right:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-right:.3em} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/rating-star/view.js b/plugins/jetpack/_inc/blocks/rating-star/view.js
index dbd1bbcc..ec1b31b9 100644
--- a/plugins/jetpack/_inc/blocks/rating-star/view.js
+++ b/plugins/jetpack/_inc/blocks/rating-star/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=291)}({134:function(e,t,n){},291:function(e,t,n){n(42),e.exports=n(292)},292:function(e,t,n){"use strict";n.r(t);n(134)},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)}})); \ No newline at end of file
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/rating-star/view.rtl.css b/plugins/jetpack/_inc/blocks/rating-star/view.rtl.css
index 4406b01a..762cc01d 100644
--- a/plugins/jetpack/_inc/blocks/rating-star/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/rating-star/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-rating-star{margin-bottom:1.5em;line-height:0;stroke-width:0}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{display:inline-flex;border-radius:4px}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{flex-shrink:0;width:12px;overflow:hidden;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em} \ No newline at end of file
+.wp-block-jetpack-rating-star{stroke-width:0;line-height:0;margin-bottom:1.5em}.wp-block-jetpack-rating-star .is-rating-unfilled{fill-opacity:.33}.wp-block-jetpack-rating-star .jetpack-ratings-button{border-radius:2px;display:inline-flex}.wp-block-jetpack-rating-star .jetpack-ratings-button:focus{box-shadow:0 0 0 1px currentColor;outline:2px solid transparent}.wp-block-jetpack-rating-star>p{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-jetpack-rating-star>span{display:inline-flex!important;margin-left:.3em}.wp-block-jetpack-rating-star .jetpack-ratings-button span,.wp-block-jetpack-rating-star>span span{display:inline-flex;flex-shrink:0;overflow:hidden;width:12px}.wp-block-jetpack-rating-star .jetpack-ratings-button span svg,.wp-block-jetpack-rating-star>span span svg{flex-shrink:0}.wp-block-jetpack-rating-star .jetpack-ratings-button span:nth-child(2n),.wp-block-jetpack-rating-star>span span:nth-child(2n){justify-content:flex-end}.wp-block-jetpack-rating-star svg{display:inline-block!important;max-width:none!important}.wp-block-jetpack-rating-star.is-style-outlined{stroke-width:2px}.wp-block-jetpack-rating-star.is-style-outlined .is-rating-unfilled{fill:transparent}.wp-block-jetpack-rating-star .jetpack-ratings-button{margin-left:.3em} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/recurring-payments/view.asset.php b/plugins/jetpack/_inc/blocks/recurring-payments/view.asset.php
index b8b2d5a8..b64460f0 100644
--- a/plugins/jetpack/_inc/blocks/recurring-payments/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/recurring-payments/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => 'ca7788fc29fb45d180e0091690180fb6'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => '0e1dabd01c485e28498b92e59d0f07c5'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/recurring-payments/view.css b/plugins/jetpack/_inc/blocks/recurring-payments/view.css
index f1a9a53d..7d3c790d 100644
--- a/plugins/jetpack/_inc/blocks/recurring-payments/view.css
+++ b/plugins/jetpack/_inc/blocks/recurring-payments/view.css
@@ -1 +1 @@
-.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;left:0;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden} \ No newline at end of file
+.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/recurring-payments/view.js b/plugins/jetpack/_inc/blocks/recurring-payments/view.js
index 00bf4e25..4d133c98 100644
--- a/plugins/jetpack/_inc/blocks/recurring-payments/view.js
+++ b/plugins/jetpack/_inc/blocks/recurring-payments/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=293)}({293:function(e,t,n){n(42),e.exports=n(294)},294:function(e,t,n){"use strict";n.r(t);var r=n(75),o=n.n(r);n(295);function i(e){if("https://subscribe.wordpress.com"===e.origin&&e.data){var t=JSON.parse(e.data);t&&"close"===t.action&&(window.removeEventListener("message",i),tb_remove())}}"undefined"!=typeof window&&o()((function(){Array.prototype.slice.call(document.querySelectorAll(".wp-block-jetpack-recurring-payments")).forEach((function(e){var t=e.getAttribute("data-blog-id"),n=e.getAttribute("data-plan-id"),r=e.getAttribute("data-lang");try{!function(e,t,n,r){e.addEventListener("click",(function(){window.scrollTo(0,0),tb_show(null,"https://subscribe.wordpress.com/memberships/?blog="+t+"&plan="+n+"&lang="+r+"&display=alternateTB_iframe=true",null),window.addEventListener("message",i,!1),document.querySelector("#TB_window").classList.add("jetpack-memberships-modal")}))}(e,t,n,r)}catch(o){console.error("Problem activating Recurring Payments "+n,o)}}))}))},295:function(e,t,n){},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,n){"use strict";n.r(t);n(36)},75:function(e,t){!function(){e.exports=this.wp.domReady}()}})); \ No newline at end of file
+!function(){var t={53857:function(t,e,r){"use strict";function n(t){if("https://subscribe.wordpress.com"===t.origin&&t.data){const e=JSON.parse(t.data);e&&"close"===e.action&&(window.removeEventListener("message",n),tb_remove())}}r.d(e,{f:function(){return o}});const o=t=>{Array.prototype.slice.call(document.querySelectorAll(t)).forEach((t=>{if("true"!==t.getAttribute("data-jetpack-memberships-button-initialized")){try{!function(t){t.addEventListener("click",(e=>{e.preventDefault();const r=t.getAttribute("href");window.scrollTo(0,0),tb_show(null,r+"&display=alternate&TB_iframe=true",null),window.addEventListener("message",n,!1),document.querySelector("#TB_window").classList.add("jetpack-memberships-modal"),window.scrollTo(0,0)}))}(t)}catch(t){console.error("Problem setting up Thickbox",t)}t.setAttribute("data-jetpack-memberships-button-initialized","true")}}))}},57836:function(t,e,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(r.p=window.Jetpack_Block_Assets_Base_Url.url)},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t+"../"}(),function(){"use strict";r(57836)}(),function(){"use strict";var t=r(47701),e=r.n(t),n=r(53857);"undefined"!=typeof window&&e()((()=>(0,n.f)(".wp-block-jetpack-recurring-payments a")))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/recurring-payments/view.rtl.css b/plugins/jetpack/_inc/blocks/recurring-payments/view.rtl.css
index 60bb265b..7d3c790d 100644
--- a/plugins/jetpack/_inc/blocks/recurring-payments/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/recurring-payments/view.rtl.css
@@ -1 +1 @@
-.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-size:50px;background-repeat:no-repeat;background-position:center 150px;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;border:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{margin:0!important;bottom:0;right:0;position:absolute;left:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden} \ No newline at end of file
+.jetpack-memberships-modal #TB_title{display:none}#TB_window.jetpack-memberships-modal{background-color:transparent;background-image:url(https://s0.wp.com/i/loading/dark-200.gif);background-position:center 150px;background-repeat:no-repeat;background-size:50px;border:none;box-shadow:none;-webkit-box-shadow:none;-moz-box-shadow:none;height:100%}#TB_window.jetpack-memberships-modal,.jetpack-memberships-modal #TB_iframeContent{bottom:0;left:0;margin:0!important;position:absolute;right:0;top:0;width:100%!important}.jetpack-memberships-modal #TB_iframeContent{height:100%!important}BODY.modal-open{overflow:hidden}.wp-block-jetpack-recurring-payments.aligncenter .wp-block-jetpack-button{text-align:center}.wp-block-jetpack-recurring-payments .wp-block-jetpack-button{color:#fff} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/repeat-visitor/view.asset.php b/plugins/jetpack/_inc/blocks/repeat-visitor/view.asset.php
index c4b2cbb4..81093837 100644
--- a/plugins/jetpack/_inc/blocks/repeat-visitor/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/repeat-visitor/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-polyfill'), 'version' => '9bda2aba30cac18a8f81e511964000c6'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'adfbc576e996e68af0273a2451cc6389'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/repeat-visitor/view.js b/plugins/jetpack/_inc/blocks/repeat-visitor/view.js
index 298a1b3a..15960ed4 100644
--- a/plugins/jetpack/_inc/blocks/repeat-visitor/view.js
+++ b/plugins/jetpack/_inc/blocks/repeat-visitor/view.js
@@ -1,2 +1,2 @@
-/*! For license information please see view.js.LICENSE */
-!function(e,t){for(var r in t)e[r]=t[r]}(window,function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=296)}({269:function(e,t,r){"use strict";t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var r={},i=t||{},a=e.split(o),s=i.decode||n,c=0;c<a.length;c++){var f=a[c],p=f.indexOf("=");if(!(p<0)){var l=f.substr(0,p).trim(),d=f.substr(++p,f.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),null==r[l]&&(r[l]=u(d,s))}}return r},t.serialize=function(e,t,r){var n=r||{},o=n.encode||i;if("function"!=typeof o)throw new TypeError("option encode is invalid");if(!a.test(e))throw new TypeError("argument name is invalid");var u=o(t);if(u&&!a.test(u))throw new TypeError("argument val is invalid");var s=e+"="+u;if(null!=n.maxAge){var c=n.maxAge-0;if(isNaN(c))throw new Error("maxAge should be a Number");s+="; Max-Age="+Math.floor(c)}if(n.domain){if(!a.test(n.domain))throw new TypeError("option domain is invalid");s+="; Domain="+n.domain}if(n.path){if(!a.test(n.path))throw new TypeError("option path is invalid");s+="; Path="+n.path}if(n.expires){if("function"!=typeof n.expires.toUTCString)throw new TypeError("option expires is invalid");s+="; Expires="+n.expires.toUTCString()}n.httpOnly&&(s+="; HttpOnly");n.secure&&(s+="; Secure");if(n.sameSite){switch("string"==typeof n.sameSite?n.sameSite.toLowerCase():n.sameSite){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s};var n=decodeURIComponent,i=encodeURIComponent,o=/; */,a=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function u(e,t){try{return t(e)}catch(r){return e}}},296:function(e,t,r){r(42),e.exports=r(297)},297:function(e,t,r){"use strict";r.r(t);var n=r(269),i=r.n(n),o=r(33);window&&window.addEventListener("load",(function(){var e;0!==Array.from(document.querySelectorAll(".wp-block-jetpack-repeat-visitor")).length&&(e=+(i.a.parse(document.cookie)[o.a]||0)+1,document.cookie=i.a.serialize(o.a,e,{path:window.location.pathname,maxAge:o.e}))}))},33:function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"c",(function(){return i})),r.d(t,"d",(function(){return o})),r.d(t,"a",(function(){return a})),r.d(t,"e",(function(){return u}));var n="after-visits",i="before-visits",o=3,a="jp-visit-counter",u=15552e3},36:function(e,t,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(r.p=window.Jetpack_Block_Assets_Base_Url)},42:function(e,t,r){"use strict";r.r(t);r(36)}})); \ No newline at end of file
+/*! For license information please see view.js.LICENSE.txt */
+!function(){var e={8174:function(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={},o=t||{},s=e.split(i),c=o.decode||r,u=0;u<s.length;u++){var p=s[u],f=p.indexOf("=");if(!(f<0)){var l=p.substr(0,f).trim(),d=p.substr(++f,p.length).trim();'"'==d[0]&&(d=d.slice(1,-1)),null==n[l]&&(n[l]=a(d,c))}}return n},t.serialize=function(e,t,r){var i=r||{},a=i.encode||n;if("function"!=typeof a)throw new TypeError("option encode is invalid");if(!o.test(e))throw new TypeError("argument name is invalid");var s=a(t);if(s&&!o.test(s))throw new TypeError("argument val is invalid");var c=e+"="+s;if(null!=i.maxAge){var u=i.maxAge-0;if(isNaN(u)||!isFinite(u))throw new TypeError("option maxAge is invalid");c+="; Max-Age="+Math.floor(u)}if(i.domain){if(!o.test(i.domain))throw new TypeError("option domain is invalid");c+="; Domain="+i.domain}if(i.path){if(!o.test(i.path))throw new TypeError("option path is invalid");c+="; Path="+i.path}if(i.expires){if("function"!=typeof i.expires.toUTCString)throw new TypeError("option expires is invalid");c+="; Expires="+i.expires.toUTCString()}i.httpOnly&&(c+="; HttpOnly");i.secure&&(c+="; Secure");if(i.sameSite){switch("string"==typeof i.sameSite?i.sameSite.toLowerCase():i.sameSite){case!0:case"strict":c+="; SameSite=Strict";break;case"lax":c+="; SameSite=Lax";break;case"none":c+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return c};var r=decodeURIComponent,n=encodeURIComponent,i=/; */,o=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function a(e,t){try{return t(e)}catch(t){return e}}},46314:function(e,t,r){"use strict";r.d(t,{B$:function(){return n},fh:function(){return i}});const n="jp-visit-counter",i=15552e3},57836:function(e,t,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(r.p=window.Jetpack_Block_Assets_Base_Url.url)}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e+"../"}(),function(){"use strict";r(57836)}(),function(){"use strict";var e=r(8174),t=r(46314);window&&window.addEventListener("load",(function(){var r;0!==Array.from(document.querySelectorAll(".wp-block-jetpack-repeat-visitor")).length&&(r=+(e.parse(document.cookie)[t.B$]||0)+1,document.cookie=e.serialize(t.B$,r,{path:window.location.pathname,maxAge:t.fh}))}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/repeat-visitor/view.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/repeat-visitor/view.js.LICENSE.txt
new file mode 100644
index 00000000..8d392d0d
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/repeat-visitor/view.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/plugins/jetpack/_inc/blocks/revue/view.asset.php b/plugins/jetpack/_inc/blocks/revue/view.asset.php
new file mode 100644
index 00000000..2411d05e
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/revue/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => '727cec6ec87b96b40ac2384ead410e11'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/revue/view.css b/plugins/jetpack/_inc/blocks/revue/view.css
new file mode 100644
index 00000000..fb970a21
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/revue/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/revue/view.js b/plugins/jetpack/_inc/blocks/revue/view.js
new file mode 100644
index 00000000..fe7c383b
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/revue/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,e,r){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(r.p=window.Jetpack_Block_Assets_Base_Url.url)},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,{a:e}),e},r.d=function(t,e){for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;r.g.importScripts&&(t=r.g.location+"");var e=r.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var n=e.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=t+"../"}(),function(){"use strict";r(57836)}(),function(){"use strict";var t=r(47701),e=r.n(t);"undefined"!=typeof window&&window.jQuery&&e()((function(){document.querySelectorAll(".wp-block-jetpack-revue").forEach((t=>{if("true"===t.getAttribute("data-jetpack-block-initialized"))return;const e=t.querySelector(".wp-block-jetpack-revue__form");if(!e)return;const r=t.querySelector(".wp-block-jetpack-revue__message");e.addEventListener("submit",(()=>{e.classList.remove("is-visible"),r.classList.add("is-visible")})),t.setAttribute("data-jetpack-block-initialized","true")}))}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/revue/view.rtl.css b/plugins/jetpack/_inc/blocks/revue/view.rtl.css
new file mode 100644
index 00000000..fb970a21
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/revue/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-revue__form{display:none}.wp-block-jetpack-revue__form.is-visible{display:block}.wp-block-jetpack-revue__form>div{margin-bottom:.75em}.wp-block-jetpack-revue .wp-block-button{margin-top:0}.wp-block-jetpack-revue input{display:block;margin-top:.25em;width:100%}@media screen and (min-width:600px){.wp-block-jetpack-revue input{max-width:300px}}.wp-block-jetpack-revue label{display:block;font-weight:700}.wp-block-jetpack-revue .required{color:#a7aaad;font-weight:400}.wp-block-jetpack-revue__message{display:none}.wp-block-jetpack-revue__message.is-visible{display:block}.wp-block-jetpack-revue__fallback{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/send-a-message/view.asset.php b/plugins/jetpack/_inc/blocks/send-a-message/view.asset.php
new file mode 100644
index 00000000..239ef4ac
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/send-a-message/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => '9ed86aecb5110524402906eea20c3fdb'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/send-a-message/view.css b/plugins/jetpack/_inc/blocks/send-a-message/view.css
new file mode 100644
index 00000000..58b7a733
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/send-a-message/view.css
@@ -0,0 +1 @@
+div.wp-block-jetpack-whatsapp-button{display:flex;margin-right:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 16px 8px 56px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-left:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/send-a-message/view.js b/plugins/jetpack/_inc/blocks/send-a-message/view.js
new file mode 100644
index 00000000..ec1b31b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/send-a-message/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/send-a-message/view.rtl.css b/plugins/jetpack/_inc/blocks/send-a-message/view.rtl.css
new file mode 100644
index 00000000..74452e62
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/send-a-message/view.rtl.css
@@ -0,0 +1 @@
+div.wp-block-jetpack-whatsapp-button{display:flex;margin-left:5px}div.wp-block-jetpack-whatsapp-button a.whatsapp-block__button{background:#25d366;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px;border:none;border-radius:8px;box-sizing:border-box;color:#fff;display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:20px;font-weight:500;line-height:36px;min-height:50px;padding:8px 56px 8px 16px;text-decoration:none;white-space:nowrap}div.wp-block-jetpack-whatsapp-button.is-color-light a.whatsapp-block__button{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%2523465B64' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");color:#465b64}div.wp-block-jetpack-whatsapp-button.alignleft{float:none;justify-content:flex-start}div.wp-block-jetpack-whatsapp-button.aligncenter{justify-content:center}div.wp-block-jetpack-whatsapp-button.alignright{float:none;justify-content:flex-end}div.wp-block-jetpack-whatsapp-button.has-no-text a.whatsapp-block__button{padding-right:48px}div.wp-block-jetpack-whatsapp-button:hover{opacity:.9}div.wp-block-jetpack-send-a-message>div.wp-block-jetpack-whatsapp-button>a.whatsapp-block__button:focus{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath fill='%23fff' d='M24 11.69c0 6.458-5.274 11.692-11.782 11.692-2.066 0-4.007-.528-5.695-1.455L0 24l2.127-6.273a11.568 11.568 0 0 1-1.691-6.036C.436 5.234 5.711 0 12.218 0 18.726 0 24 5.234 24 11.69ZM12.218 1.863c-5.462 0-9.905 4.41-9.905 9.829 0 2.15.7 4.142 1.886 5.763l-1.237 3.65 3.807-1.21a9.9 9.9 0 0 0 5.45 1.626c5.461 0 9.905-4.409 9.905-9.829 0-5.42-4.444-9.83-9.906-9.83Zm5.95 12.521c-.073-.119-.265-.19-.554-.334-.289-.143-1.71-.837-1.973-.932-.265-.095-.458-.143-.65.143-.193.287-.746.932-.915 1.123-.169.192-.337.216-.626.073-.288-.143-1.219-.446-2.322-1.422-.858-.76-1.438-1.697-1.607-1.985-.168-.286-.017-.441.127-.584.13-.128.29-.335.433-.502.145-.167.193-.286.289-.478.097-.191.048-.358-.024-.502-.072-.143-.65-1.553-.89-2.127-.241-.574-.482-.478-.65-.478-.169 0-.361-.024-.554-.024-.193 0-.506.072-.77.358-.265.287-1.01.98-1.01 2.39 0 1.41 1.034 2.773 1.178 2.964.145.19 1.998 3.179 4.934 4.326 2.936 1.147 2.936.764 3.466.716.529-.047 1.708-.693 1.95-1.362.24-.67.24-1.243.168-1.363Z'/%3E%3C/svg%3E");background-position:16px;background-repeat:no-repeat;background-size:32px 32px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/slideshow/view.asset.php b/plugins/jetpack/_inc/blocks/slideshow/view.asset.php
index de7fec46..0441519f 100644
--- a/plugins/jetpack/_inc/blocks/slideshow/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/slideshow/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'wp-dom-ready', 'wp-escape-html', 'wp-polyfill'), 'version' => 'e4716285b153f458ef8fe28c01691abe'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'wp-dom-ready', 'wp-escape-html', 'wp-polyfill'), 'version' => 'cfd28516d2b755a43cbb884ce973141e'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/slideshow/view.css b/plugins/jetpack/_inc/blocks/slideshow/view.css
index b701beea..6d2f1624 100644
--- a/plugins/jetpack/_inc/blocks/slideshow/view.css
+++ b/plugins/jetpack/_inc/blocks/slideshow/view.css
@@ -1 +1 @@
-.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}} \ No newline at end of file
+.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;right:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;padding-top:0;position:relative;right:auto} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/slideshow/view.js b/plugins/jetpack/_inc/blocks/slideshow/view.js
index cd8a414e..39644e6d 100644
--- a/plugins/jetpack/_inc/blocks/slideshow/view.js
+++ b/plugins/jetpack/_inc/blocks/slideshow/view.js
@@ -1 +1 @@
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){function t(t){for(var n,r,o=t[0],s=t[1],a=0,c=[];a<o.length;a++)r=o[a],Object.prototype.hasOwnProperty.call(i,r)&&i[r]&&c.push(i[r][0]),i[r]=0;for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n]);for(u&&u(t);c.length;)c.shift()()}var n={},r={14:0},i={14:0};function o(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.e=function(e){var t=[];r[e]?t.push(r[e]):0!==r[e]&&{17:1}[e]&&t.push(r[e]=new Promise((function(t,n){for(var i="rtl"===document.dir?({17:"vendors~swiper"}[e]||e)+"."+{17:"23fd414831f3de8536b3"}[e]+".rtl.css":({17:"vendors~swiper"}[e]||e)+"."+{17:"23fd414831f3de8536b3"}[e]+".css",s=o.p+i,a=document.getElementsByTagName("link"),c=0;c<a.length;c++){var u=(l=a[c]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(u===i||u===s))return t()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){var l;if((u=(l=f[c]).getAttribute("data-href"))===i||u===s)return t()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.setAttribute("data-webpack",!0),d.onload=t,d.onerror=function(t){var i=t&&t.target&&t.target.src||s,o=new Error("Loading CSS chunk "+e+" failed.\n("+i+")");o.code="CSS_CHUNK_LOAD_FAILED",o.request=i,delete r[e],d.parentNode.removeChild(d),n(o)},d.href=s,document.getElementsByTagName("head")[0].appendChild(d)})).then((function(){r[e]=0})));var n=i[e];if(0!==n)if(n)t.push(n[2]);else{var s=new Promise((function(t,r){n=i[e]=[t,r]}));t.push(n[2]=s);var a,c=document.createElement("script");c.charset="utf-8",c.timeout=120,o.nc&&c.setAttribute("nonce",o.nc),c.src=function(e){return o.p+""+({17:"vendors~swiper"}[e]||e)+"."+{17:"23fd414831f3de8536b3"}[e]+".js"}(e);var u=new Error;a=function(t){c.onerror=c.onload=null,clearTimeout(f);var n=i[e];if(0!==n){if(n){var r=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;u.message="Loading chunk "+e+" failed.\n("+r+": "+o+")",u.name="ChunkLoadError",u.type=r,u.request=o,n[1](u)}i[e]=void 0}};var f=setTimeout((function(){a({type:"timeout",target:c})}),12e4);c.onerror=c.onload=a,document.head.appendChild(c)}return Promise.all(t)},o.m=e,o.c=n,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o.oe=function(e){throw console.error(e),e};var s=window.webpackJsonp=window.webpackJsonp||[],a=s.push.bind(s);s.push=t,s=s.slice();for(var c=0;c<s.length;c++)t(s[c]);var u=a;return o(o.s=298)}({135:function(e,t,n){},18:function(e,t,n){var r=n(65),i=n(66),o=n(67);e.exports=function(e,t){return r(e)||i(e,t)||o()}},298:function(e,t,n){n(42),e.exports=n(299)},299:function(e,t,n){"use strict";n.r(t);var r=n(5),i=n(75),o=n.n(i),s=n(39),a=n(73),c=n(38);"undefined"!=typeof window&&o()((function(){var e=document.getElementsByClassName("wp-block-jetpack-slideshow");Object(r.forEach)(e,(function(e){var t=e.dataset,n=t.autoplay,r=t.delay,i=t.effect,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,u=n&&!o,f=e.getElementsByClassName("swiper-container")[0],l=null;Object(a.a)(f,{autoplay:!!u&&{delay:1e3*r,disableOnInteraction:!1},effect:i,init:!0,initialSlide:0,loop:!0,keyboard:{enabled:!0,onlyInViewport:!0}},{init:c.b,imagesReady:c.d,paginationRender:c.c,transitionEnd:c.a}).then((function(e){new s.a((function(){l&&(cancelAnimationFrame(l),l=null),l=requestAnimationFrame((function(){Object(c.d)(e),e.update()}))})).observe(e.el)})).catch((function(){e.querySelector(".wp-block-jetpack-slideshow_container").classList.add("wp-swiper-initialized")}))}))}))},36:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},38:function(e,t,n){"use strict";n.d(t,"a",(function(){return c})),n.d(t,"b",(function(){return s})),n.d(t,"c",(function(){return u})),n.d(t,"d",(function(){return a}));var r=n(74),i=n(5),o="wp-block-jetpack-slideshow_autoplay-paused";function s(e){a(e),c(e),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function a(e){if(e&&e.el){var t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(t){var n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,16/9),1),i="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,i),s="".concat(Math.floor(o),"px"),a="".concat(Math.floor(o/2),"px");e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=a,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=a}}}function c(e){Object(i.forEach)(e.slides,(function(t,n){t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){var t=e.slides[e.activeIndex];if(t){var n=t.getElementsByTagName("FIGCAPTION")[0],i=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:Object(r.escapeHTML)(i.alt))}}(e)}function u(e){Object(i.forEach)(e.pagination.bullets,(function(t){t.addEventListener("click",(function(){var t=e.slides[e.realIndex];setTimeout((function(){t.focus()}),500)}))}))}},39:function(e,t,n){"use strict";var r=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return(function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];e.call(t,i[1],i[0])}},t}())}(),i="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,o="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),s="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(o):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var a=["top","right","bottom","left","width","height","size","weight"],c="undefined"!=typeof MutationObserver,u=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,i=0;function o(){n&&(n=!1,e()),r&&c()}function a(){s(o)}function c(){var e=Date.now();if(n){if(e-i<2)return;r=!0}else n=!0,r=!1,setTimeout(a,t);i=e}return c}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){i&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){i&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),f=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Object.defineProperty(e,i,{value:t[i],enumerable:!1,writable:!1,configurable:!0})}return e},l=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||o},d=w(0,0,0,0);function h(e){return parseFloat(e)||0}function p(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+h(e["border-"+n+"-width"])}),0)}function v(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return d;var r=l(e).getComputedStyle(e),i=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var i=r[n],o=e["padding-"+i];t[i]=h(o)}return t}(r),o=i.left+i.right,s=i.top+i.bottom,a=h(r.width),c=h(r.height);if("border-box"===r.boxSizing&&(Math.round(a+o)!==t&&(a-=p(r,"left","right")+o),Math.round(c+s)!==n&&(c-=p(r,"top","bottom")+s)),!function(e){return e===l(e).document.documentElement}(e)){var u=Math.round(a+o)-t,f=Math.round(c+s)-n;1!==Math.abs(u)&&(a-=u),1!==Math.abs(f)&&(c-=f)}return w(i.left,i.top,a,c)}var b="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof l(e).SVGGraphicsElement}:function(e){return e instanceof l(e).SVGElement&&"function"==typeof e.getBBox};function m(e){return i?b(e)?function(e){var t=e.getBBox();return w(0,0,t.width,t.height)}(e):v(e):d}function w(e,t,n,r){return{x:e,y:t,width:n,height:r}}var y=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=w(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=m(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),_=function(e,t){var n,r,i,o,s,a,c,u=(r=(n=t).x,i=n.y,o=n.width,s=n.height,a="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,c=Object.create(a.prototype),f(c,{x:r,y:i,width:o,height:s,top:i,right:r+o,bottom:s+i,left:r}),c);f(this,{target:e,contentRect:u})},g=function(){function e(e,t,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=n}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof l(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new y(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof l(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new _(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),E="undefined"!=typeof WeakMap?new WeakMap:new r,O=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=u.getInstance(),r=new g(t,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){O.prototype[e]=function(){var t;return(t=E.get(this))[e].apply(t,arguments)}}));var x=void 0!==o.ResizeObserver?o.ResizeObserver:O;t.a=x},42:function(e,t,n){"use strict";n.r(t);n(36)},5:function(e,t){!function(){e.exports=this.lodash}()},65:function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},66:function(e,t){e.exports=function(e,t){var n=[],r=!0,i=!1,o=void 0;try{for(var s,a=e[Symbol.iterator]();!(r=(s=a.next()).done)&&(n.push(s.value),!t||n.length!==t);r=!0);}catch(c){i=!0,o=c}finally{try{r||null==a.return||a.return()}finally{if(i)throw o}}return n}},67:function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},73:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(18),i=n.n(r),o=n(5);n(135);function s(){var e,t,r,s,a,c,u,f=arguments;return regeneratorRuntime.async((function(l){for(;;)switch(l.prev=l.next){case 0:return e=f.length>0&&void 0!==f[0]?f[0]:".swiper-container",t=f.length>1&&void 0!==f[1]?f[1]:{},r=f.length>2&&void 0!==f[2]?f[2]:{},s={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,touchStartPreventDefault:!1,on:Object(o.mapValues)(r,(function(e){return function(){e(this)}}))},l.next=6,regeneratorRuntime.awrap(Promise.all([n.e(17).then(n.t.bind(null,266,7)),n.e(17).then(n.t.bind(null,267,7))]));case 6:return a=l.sent,c=i()(a,1),u=c[0].default,l.abrupt("return",new u(e,Object(o.merge)({},s,t)));case 10:case"end":return l.stop()}}))}},74:function(e,t){!function(){e.exports=this.wp.escapeHtml}()},75:function(e,t){!function(){e.exports=this.wp.domReady}()}})); \ No newline at end of file
+!function(){var e,t,n,r,i,o,s={54166:function(e,t){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function e(e,t){var n=-1;return e.some((function(e,r){return e[0]===t&&(n=r,!0)})),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(t){var n=e(this.__entries__,t),r=this.__entries__[n];return r&&r[1]},t.prototype.set=function(t,n){var r=e(this.__entries__,t);~r?this.__entries__[r][1]=n:this.__entries__.push([t,n])},t.prototype.delete=function(t){var n=this.__entries__,r=e(n,t);~r&&n.splice(r,1)},t.prototype.has=function(t){return!!~e(this.__entries__,t)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(e,t){void 0===t&&(t=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];e.call(t,i[1],i[0])}},t}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,i="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(e){return setTimeout((function(){return e(Date.now())}),1e3/60)};var s=["top","right","bottom","left","width","height","size","weight"],a="undefined"!=typeof MutationObserver,c=function(){function e(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(e,t){var n=!1,r=!1,i=0;function s(){n&&(n=!1,e()),r&&c()}function a(){o(s)}function c(){var e=Date.now();if(n){if(e-i<2)return;r=!0}else n=!0,r=!1,setTimeout(a,t);i=e}return c}(this.refresh.bind(this),20)}return e.prototype.addObserver=function(e){~this.observers_.indexOf(e)||this.observers_.push(e),this.connected_||this.connect_()},e.prototype.removeObserver=function(e){var t=this.observers_,n=t.indexOf(e);~n&&t.splice(n,1),!t.length&&this.connected_&&this.disconnect_()},e.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},e.prototype.updateObservers_=function(){var e=this.observers_.filter((function(e){return e.gatherActive(),e.hasActive()}));return e.forEach((function(e){return e.broadcastActive()})),e.length>0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),a?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;s.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),u=function(e,t){for(var n=0,r=Object.keys(t);n<r.length;n++){var i=r[n];Object.defineProperty(e,i,{value:t[i],enumerable:!1,writable:!1,configurable:!0})}return e},l=function(e){return e&&e.ownerDocument&&e.ownerDocument.defaultView||i},f=m(0,0,0,0);function d(e){return parseFloat(e)||0}function h(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return t.reduce((function(t,n){return t+d(e["border-"+n+"-width"])}),0)}function p(e){var t=e.clientWidth,n=e.clientHeight;if(!t&&!n)return f;var r=l(e).getComputedStyle(e),i=function(e){for(var t={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var i=r[n],o=e["padding-"+i];t[i]=d(o)}return t}(r),o=i.left+i.right,s=i.top+i.bottom,a=d(r.width),c=d(r.height);if("border-box"===r.boxSizing&&(Math.round(a+o)!==t&&(a-=h(r,"left","right")+o),Math.round(c+s)!==n&&(c-=h(r,"top","bottom")+s)),!function(e){return e===l(e).document.documentElement}(e)){var u=Math.round(a+o)-t,p=Math.round(c+s)-n;1!==Math.abs(u)&&(a-=u),1!==Math.abs(p)&&(c-=p)}return m(i.left,i.top,a,c)}var v="undefined"!=typeof SVGGraphicsElement?function(e){return e instanceof l(e).SVGGraphicsElement}:function(e){return e instanceof l(e).SVGElement&&"function"==typeof e.getBBox};function b(e){return r?v(e)?function(e){var t=e.getBBox();return m(0,0,t.width,t.height)}(e):p(e):f}function m(e,t,n,r){return{x:e,y:t,width:n,height:r}}var w=function(){function e(e){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=m(0,0,0,0),this.target=e}return e.prototype.isActive=function(){var e=b(this.target);return this.contentRect_=e,e.width!==this.broadcastWidth||e.height!==this.broadcastHeight},e.prototype.broadcastRect=function(){var e=this.contentRect_;return this.broadcastWidth=e.width,this.broadcastHeight=e.height,e},e}(),y=function(e,t){var n,r,i,o,s,a,c,l=(r=(n=t).x,i=n.y,o=n.width,s=n.height,a="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,c=Object.create(a.prototype),u(c,{x:r,y:i,width:o,height:s,top:i,right:r+o,bottom:s+i,left:r}),c);u(this,{target:e,contentRect:l})},_=function(){function e(e,t,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof e)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=e,this.controller_=t,this.callbackCtx_=r}return e.prototype.observe=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof l(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new w(e)),this.controller_.addObserver(this),this.controller_.refresh())}},e.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(e instanceof l(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},e.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},e.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach((function(t){t.isActive()&&e.activeObservations_.push(t)}))},e.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map((function(e){return new y(e.target,e.broadcastRect())}));this.callback_.call(e,t,e),this.clearActive()}},e.prototype.clearActive=function(){this.activeObservations_.splice(0)},e.prototype.hasActive=function(){return this.activeObservations_.length>0},e}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,E=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),r=new _(t,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){E.prototype[e]=function(){var t;return(t=g.get(this))[e].apply(t,arguments)}}));var O=void 0!==i.ResizeObserver?i.ResizeObserver:E;t.Z=O},44890:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819);async function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".swiper-container",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={effect:"slide",grabCursor:!0,init:!0,initialSlide:0,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{bulletElement:"button",clickable:!0,el:".swiper-pagination",type:"bullets"},preventClicks:!1,preventClicksPropagation:!1,releaseFormElements:!1,setWrapperSize:!0,threshold:5,touchStartPreventDefault:!1,on:(0,r.mapValues)(i,(e=>function(){e(this)}))},[{default:s}]=await Promise.all([Promise.all([n.e(860),n.e(390)]).then(n.t.bind(n,16402,23)),Promise.all([n.e(860),n.e(390)]).then(n.bind(n,78858))]);return new s(e,(0,r.merge)({},o,t))}},10099:function(e,t,n){"use strict";n.d(t,{HV:function(){return c},UA:function(){return s},Wj:function(){return u},$m:function(){return a}});var r=n(81975),i=n(92819);const o="wp-block-jetpack-slideshow_autoplay-paused";function s(e){a(e),c(e);document.querySelector("body").dispatchEvent(new Event("jetpack-lazy-images-load")),e.el.querySelector(".wp-block-jetpack-slideshow_button-pause").addEventListener("click",(function(){e.el&&(e.el.classList.contains(o)?(e.el.classList.remove(o),e.autoplay.start(),this.setAttribute("aria-label","Pause Slideshow")):(e.el.classList.add(o),e.autoplay.stop(),this.setAttribute("aria-label","Play Slideshow")))}))}function a(e){if(!e||!e.el)return;const t=e.el.querySelector('.swiper-slide[data-swiper-slide-index="0"] img');if(!t)return;const n=t.clientWidth/t.clientHeight,r=Math.max(Math.min(n,1.7777777777777777),1),i="undefined"!=typeof window?.8*window.innerHeight:600,o=Math.min(e.width/r,i),s=`${Math.floor(o)}px`,a=`${Math.floor(o/2)}px`;e.el.classList.add("wp-swiper-initialized"),e.wrapperEl.style.height=s,e.el.querySelector(".wp-block-jetpack-slideshow_button-prev").style.top=a,e.el.querySelector(".wp-block-jetpack-slideshow_button-next").style.top=a}function c(e){(0,i.forEach)(e.slides,((t,n)=>{t.setAttribute("aria-hidden",n===e.activeIndex?"false":"true"),n===e.activeIndex?t.setAttribute("tabindex","-1"):t.removeAttribute("tabindex")})),function(e){const t=e.slides[e.activeIndex];if(!t)return;const n=t.getElementsByTagName("FIGCAPTION")[0],i=t.getElementsByTagName("IMG")[0];e.a11y.liveRegion&&(e.a11y.liveRegion[0].innerHTML=n?n.innerHTML:(0,r.escapeHTML)(i.alt))}(e)}function u(e){(0,i.forEach)(e.pagination.bullets,(t=>{t.addEventListener("click",(()=>{const t=e.slides[e.realIndex];setTimeout((()=>{t.focus()}),500)}))}))}},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},92819:function(e){"use strict";e.exports=window.lodash},47701:function(e){"use strict";e.exports=window.wp.domReady},81975:function(e){"use strict";e.exports=window.wp.escapeHtml}},a={};function c(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return s[e].call(n.exports,n,n.exports,c),n.exports}c.m=s,c.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return c.d(t,{a:t}),t},t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},c.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var i=Object.create(null);c.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&r&&n;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((function(e){o[e]=function(){return n[e]}}));return o.default=function(){return n},c.d(i,o),i},c.d=function(e,t){for(var n in t)c.o(t,n)&&!c.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},c.f={},c.e=function(e){return Promise.all(Object.keys(c.f).reduce((function(t,n){return c.f[n](e,t),t}),[]))},c.u=function(e){return(390===e?"swiper":e)+".js?minify=false&ver="+{390:"87699145e1e11e92e952",860:"d8d32efbe3dcb1077f70"}[e]},c.miniCssF=function(e){return"swiper.css?minify=false&ver=4f0a26962ac03729a198"},function(){if(!c.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;c.miniCssF=(e=c.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n={},r="Jetpack:",c.l=function(e,t,i,o){if(n[e])n[e].push(t);else{var s,a;if(void 0!==i)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var f=u[l];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==r+i){s=f;break}}s||(a=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,c.nc&&s.setAttribute("nonce",c.nc),s.setAttribute("data-webpack",r+i),s.src=e),n[e]=[t];var d=function(t,r){s.onerror=s.onload=null,clearTimeout(h);var i=n[e];if(delete n[e],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((function(e){return e(r)})),t)return t(r)},h=setTimeout(d.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=d.bind(null,s.onerror),s.onload=d.bind(null,s.onload),a&&document.head.appendChild(s)}},c.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;c.g.importScripts&&(e=c.g.location+"");var t=c.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),c.p=e+"../"}(),i=function(e){return new Promise((function(t,n){var r=c.miniCssF(e),i=c.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var i=(s=n[r]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(i===e||i===t))return s}var o=document.getElementsByTagName("style");for(r=0;r<o.length;r++){var s;if((i=(s=o[r]).getAttribute("data-href"))===e||i===t)return s}}(r,i))return t();!function(e,t,n,r){var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=function(o){if(i.onerror=i.onload=null,"load"===o.type)n();else{var s=o&&("load"===o.type?"missing":o.type),a=o&&o.target&&o.target.href||t,c=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");c.code="CSS_CHUNK_LOAD_FAILED",c.type=s,c.request=a,i.parentNode.removeChild(i),r(c)}},i.href=t,document.head.appendChild(i)}(e,i,t,n)}))},o={72:0},c.f.miniCss=function(e,t){o[e]?t.push(o[e]):0!==o[e]&&{390:1}[e]&&t.push(o[e]=i(e).then((function(){o[e]=0}),(function(t){throw delete o[e],t})))},function(){var e={72:0};c.f.j=function(t,n){var r=c.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else if(390!=t){var i=new Promise((function(n,i){r=e[t]=[n,i]}));n.push(r[2]=i);var o=c.p+c.u(t),s=new Error;c.l(o,(function(n){if(c.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var i=n&&("load"===n.type?"missing":n.type),o=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+i+": "+o+")",s.name="ChunkLoadError",s.type=i,s.request=o,r[1](s)}}),"chunk-"+t,t)}else e[t]=0};var t=function(t,n){var r,i,o=n[0],s=n[1],a=n[2],u=0;if(o.some((function(t){return 0!==e[t]}))){for(r in s)c.o(s,r)&&(c.m[r]=s[r]);if(a)a(c)}for(t&&t(n);u<o.length;u++)i=o[u],c.o(e,i)&&e[i]&&e[i][0](),e[o[u]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";c(57836)}(),function(){"use strict";var e=c(92819),t=c(47701),n=c.n(t),r=c(54166),i=c(44890),o=c(10099);"undefined"!=typeof window&&n()((function(){const t=document.getElementsByClassName("wp-block-jetpack-slideshow");(0,e.forEach)(t,(e=>{if("true"===e.getAttribute("data-jetpack-block-initialized"))return;const{autoplay:t,delay:n,effect:s}=e.dataset,a=window.matchMedia("(prefers-reduced-motion: reduce)").matches,c=t&&!a,u=e.getElementsByClassName("swiper-container")[0];let l=null;(0,i.Z)(u,{autoplay:!!c&&{delay:1e3*n,disableOnInteraction:!1},effect:s,init:!0,initialSlide:0,loop:!0,keyboard:{enabled:!0,onlyInViewport:!0}},{init:o.UA,imagesReady:o.$m,paginationRender:o.Wj,transitionEnd:o.HV}).then((e=>{new r.Z((()=>{l&&(cancelAnimationFrame(l),l=null),l=requestAnimationFrame((()=>{(0,o.$m)(e),e.update()}))})).observe(e.el)})).catch((()=>{e.querySelector(".wp-block-jetpack-slideshow_container").classList.add("wp-swiper-initialized")})),e.setAttribute("data-jetpack-block-initialized","true")}))}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/slideshow/view.rtl.css b/plugins/jetpack/_inc/blocks/slideshow/view.rtl.css
index 7c00b7e2..1d608c66 100644
--- a/plugins/jetpack/_inc/blocks/slideshow/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/slideshow/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{width:100%;overflow:hidden;opacity:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{padding:0;margin:0;line-height:normal}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{background:rgba(0,0,0,.1);display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide{background:#f6f6f6}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;width:auto;-o-object-fit:contain;object-fit:contain}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12L13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12L10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;margin-top:0;position:absolute;left:10px;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);box-sizing:border-box;bottom:0;color:#fff;cursor:text;right:0;margin:0!important;max-height:100%;padding:.75em;position:absolute;left:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{margin:0 4px;border-radius:100%;display:inline-block;padding:0;border:0}@media (min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}} \ No newline at end of file
+.wp-block-jetpack-slideshow{margin-bottom:1.5em;position:relative}.wp-block-jetpack-slideshow [tabindex="-1"]:focus{outline:0}.wp-block-jetpack-slideshow.wp-amp-block>.wp-block-jetpack-slideshow_container{opacity:1}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay .wp-block-jetpack-slideshow_button-play{display:block}.wp-block-jetpack-slideshow.wp-amp-block.wp-block-jetpack-slideshow__autoplay.wp-block-jetpack-slideshow__autoplay-playing .wp-block-jetpack-slideshow_button-play{display:none}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{opacity:0;overflow:hidden;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container.wp-swiper-initialized{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_slide,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container .wp-block-jetpack-slideshow_swiper-wrapper{line-height:normal;margin:0;padding:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper{display:flex}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:flex;height:100%;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;position:relative;width:100%}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure .wp-block-jetpack-slideshow_image{pointer-events:none;-webkit-user-select:none;user-select:none}.wp-block-jetpack-slideshow .swiper-container-fade .wp-block-jetpack-slideshow_slide:not(.swiper-slide-active){opacity:0!important}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_image{display:block;height:auto;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:auto}.wp-block-jetpack-slideshow .amp-carousel-button,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-color:rgba(0,0,0,.5);background-position:50%;background-repeat:no-repeat;background-size:24px;border:0;border-radius:4px;box-shadow:none;height:48px;margin:-24px 0 0;padding:0;transition:background-color .25s;width:48px}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .amp-carousel-button:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:hover,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:hover{background-color:rgba(0,0,0,.75)}.wp-block-jetpack-slideshow .amp-carousel-button:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev:focus{outline:thin dotted #fff;outline-offset:-4px}.wp-block-jetpack-slideshow .amp-carousel-button{margin:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:none}.wp-block-jetpack-slideshow .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-button-prev:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-next:after,.wp-block-jetpack-slideshow .swiper-container-rtl .swiper-button-prev:after{content:""}.wp-block-jetpack-slideshow .amp-carousel-button-next,.wp-block-jetpack-slideshow .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-prev,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M5.88 4.12 13.76 12l-7.88 7.88L8 22l10-10L8 2z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .amp-carousel-button-prev,.wp-block-jetpack-slideshow .swiper-button-prev.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .swiper-button-next.swiper-button-white,.wp-block-jetpack-slideshow.swiper-container-rtl .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M18 4.12 10.12 12 18 19.88 15.88 22l-10-10 10-10z' fill='%23fff'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");display:none;left:10px;margin-top:0;position:absolute;top:10px;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_autoplay-paused .wp-block-jetpack-slideshow_button-pause,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-play{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M8 5v14l11-7z' fill='%23fff'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E")}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_button-pause{display:block}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:rgba(0,0,0,.5);bottom:0;box-sizing:border-box;color:#fff;cursor:text;left:0;margin:0!important;max-height:100%;opacity:1;padding:.75em;position:absolute;right:0;text-align:initial;z-index:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption a{color:inherit}.wp-block-jetpack-slideshow[data-autoplay=true] .wp-block-jetpack-slideshow_caption.gallery-caption{max-height:calc(100% - 68px)}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets{bottom:0;line-height:24px;padding:10px 0 2px;position:relative}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet{background:currentColor;color:currentColor;height:16px;opacity:.5;transform:scale(.75);transition:opacity .25s,transform .25s;vertical-align:top;width:16px}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:hover{opacity:1}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet:focus{outline:thin dotted;outline-offset:0}.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet-active,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_pagination.swiper-pagination-bullets .swiper-pagination-bullet[selected]{background-color:currentColor;opacity:1;transform:scale(1)}.wp-block-jetpack-slideshow_pagination.amp-pagination{text-align:center}.wp-block-jetpack-slideshow_pagination.amp-pagination .swiper-pagination-bullet{border:0;border-radius:100%;display:inline-block;margin:0 4px;padding:0}@media(min-width:600px){.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-next,.wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_button-prev{display:block}}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container{height:auto;opacity:1;overflow:visible;width:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide figure{display:block;margin-bottom:12px}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_container ul.wp-block-jetpack-slideshow_swiper-wrapper,.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{list-style:none;margin-left:auto;margin-right:auto}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_slide{display:inline-block;height:auto;margin-left:2%!important;margin-right:2%!important;vertical-align:top;width:42%}.is-email .wp-block-jetpack-slideshow .wp-block-jetpack-slideshow_caption.gallery-caption{background-color:transparent;bottom:auto;color:inherit;left:auto;padding-top:0;position:relative} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/story/view.asset.php b/plugins/jetpack/_inc/blocks/story/view.asset.php
new file mode 100644
index 00000000..c3bfa525
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/story/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'wp-blob', 'wp-components', 'wp-compose', 'wp-data', 'wp-dom-ready', 'wp-element', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => '4a990077f882507ba4f67a32fb7048f4'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/story/view.css b/plugins/jetpack/_inc/blocks/story/view.css
new file mode 100644
index 00000000..c7e1bfff
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/story/view.css
@@ -0,0 +1 @@
+.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;left:3px;position:absolute;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-right-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;margin:15px;padding:5px 3px;position:absolute;right:0;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{left:-84px;margin:auto}.wp-story-container .wp-story-next-slide{margin:auto;right:-84px}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-next-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 16px 0 0;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 12px 0 0;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-left:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{left:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{right:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-left:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-right:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:0;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-right:15px;position:fixed;width:100%}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/story/view.js b/plugins/jetpack/_inc/blocks/story/view.js
new file mode 100644
index 00000000..4088c6c2
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/story/view.js
@@ -0,0 +1,6 @@
+/*! For license information please see view.js.LICENSE.txt */
+!function(){var e={29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function l(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var s=typeof n;if("string"===s||"number"===s)e.push(n);else if(Array.isArray(n)){if(n.length){var i=l.apply(null,n);i&&e.push(i)}}else if("object"===s)if(n.toString===Object.prototype.toString)for(var u in n)r.call(n,u)&&n[u]&&e.push(u);else e.push(n.toString())}}return e.join(" ")}e.exports?(l.default=l,e.exports=l):void 0===(n=function(){return l}.apply(t,[]))||(e.exports=n)}()},2601:function(e){"use strict";function t(e,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)t(e,n[r]);else for(r in n)e[r]=(e[r]||[]).concat(n[r])}e.exports=function(e){var n,r={};return t(r,e),(n=function(e){return function(t){return function(n){var l,s,i=r[n.type],u=t(n);if(i)for(l=0;l<i.length;l++)(s=i[l](n,e))&&e.dispatch(s);return u}}}).effects=r,n}},96178:function(e,t,n){"use strict";var r=n(69307),l=n(55609);const s=(0,n(41632).Z)((0,r.createElement)(l.G,null,(0,r.createElement)(l.Path,{d:"M17 5a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2h-7a2 2 0 0 1-2-2h9z"}),(0,r.createElement)(l.Path,{d:"M13 4H5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2z"}),(0,r.createElement)(l.Path,{d:"M7 16h8a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z"})));t.Z=s},18754:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307),l=n(55609);function s(e){let{currentMedia:t}=e;const n=t&&"image"===t.type?t.url:null;return(0,r.createElement)("div",{className:"wp-story-background"},(0,r.createElement)("div",{className:"wp-story-background-image",style:{backgroundImage:n?`url("${n}")`:"none"}}),(0,r.createElement)("div",{className:"wp-story-background-blur"}),(0,r.createElement)(l.SVG,{version:"1.1",xmlns:"http://www.w3.org/2000/svg",width:"0",height:"0"},(0,r.createElement)("filter",{id:"gaussian-blur-18"},(0,r.createElement)("feGaussianBlur",{stdDeviation:"18"}))))}},85974:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),l=n(89105),s=n.n(l),i=n(65736),u=n(55609);const __=i.__;function o(e){let{isEllipsis:t,disabled:n,index:l,isSelected:o,progress:c,onClick:a}=e;const d=n||t;let p=null;return t||(p=o?(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Slide %d, currently selected","jetpack"),l+1):(0,i.sprintf)(
+/* translators: %d: Slide number. */
+__("Go to slide %d","jetpack"),l+1)),(0,r.createElement)(u.Button,{role:d?"presentation":"tab",key:l,className:s()("wp-story-pagination-bullet",{"wp-story-pagination-ellipsis":t}),"aria-label":p,"aria-disabled":d||o,onClick:d||o?void 0:a,disabled:d},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar"},(0,r.createElement)("div",{className:"wp-story-pagination-bullet-bar-progress",style:{width:`${c}%`}})))}},9610:function(e,t,n){"use strict";n.d(t,{b:function(){return o},r:function(){return c}});var r=n(29183),l=n.n(r),s=n(69307),i=n(89105),u=n.n(i);const o=e=>{let{className:t,size:n,label:r,isPressed:i,...o}=e;return(0,s.createElement)("button",l()({type:"button","aria-label":r,"aria-pressed":i,className:u()("jetpack-mdc-icon-button","circle-icon","outlined","bordered",t),style:{width:`${n}px`,height:`${n}px`}},o))},c=e=>{let{className:t,size:n=24,label:r,isPressed:i,...o}=e;return(0,s.createElement)("button",l()({type:"button","aria-label":r,"aria-pressed":i,className:u()("jetpack-mdc-icon-button",t),style:{width:`${n}px`,height:`${n}px`}},o))}},1019:function(e,t,n){"use strict";var r=n(69307);t.Z=()=>(0,r.createElement)("div",{className:"wp-story-loading-spinner"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__outer"},(0,r.createElement)("div",{className:"wp-story-loading-spinner__inner"})))},50281:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),l=n(65736),s=n(9610),i=n(29089);const _x=l._x;function u(e){let{playing:t,muted:n,onPlayPressed:l,onMutePressed:u,showMute:o}=e;return(0,r.createElement)("div",{className:"wp-story-controls"},(0,r.createElement)(s.r,{isPressed:t,label:t?_x("pause","Button tooltip text","jetpack"):_x("play","Button tooltip text","jetpack",0),onClick:l},t?(0,r.createElement)(i.fp,null):(0,r.createElement)(i.o1,null)),o&&(0,r.createElement)(s.r,{isPressed:n,label:n?_x("unmute","Button tooltip text","jetpack"):_x("mute","Button tooltip text","jetpack",0),onClick:u},n?(0,r.createElement)(i.xb,null):(0,r.createElement)(i.MC,null)))}},40220:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),l=n(65736),s=n(9610),i=n(29089);const __=l.__;function u(e){let{fullscreen:t,onExitFullscreen:n,siteIconUrl:l,storyTitle:u}=e;return t?(0,r.createElement)("div",{className:"wp-story-meta"},(0,r.createElement)("div",{className:"wp-story-icon"},(0,r.createElement)("img",{alt:__("Site icon","jetpack"),src:l,width:"40",height:"40"})),(0,r.createElement)("div",null,(0,r.createElement)("div",{className:"wp-story-title"},u)),(0,r.createElement)(s.r,{className:"wp-story-exit-fullscreen",label:__("Exit Fullscreen","jetpack"),onClick:n},(0,r.createElement)(i.Tw,null))):null}},29089:function(e,t,n){"use strict";n.d(t,{o1:function(){return u},fp:function(){return o},Tw:function(){return c},MC:function(){return a},xb:function(){return d},JM:function(){return p},Vq:function(){return f}});var r=n(69307),l=n(55609),s=n(41632);const i=e=>{let{children:t,size:n}=e;return(0,s.Z)(t,n,n)},u=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M8 5v14l11-7z"}))},o=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}))},c=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}))},a=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"}))},d=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"}))},p=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}))},f=e=>{let{size:t}=e;return(0,r.createElement)(i,{size:t},(0,r.createElement)(l.Path,{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}))}},27870:function(e,t,n){"use strict";n.d(t,{gT:function(){return r.Z},ZX:function(){return l.Z},h4:function(){return s.Z},aV:function(){return i.Z},Aq:function(){return u.Z},WB:function(){return o.Z},pU:function(){return c.pU}});var r=n(85974),l=n(50281),s=n(40220),i=n(46531),u=n(18754),o=n(1019),c=n(64816);n(9610)},64816:function(e,t,n){"use strict";n.d(t,{pU:function(){return a}});var r=n(29183),l=n.n(r),s=n(69307),i=n(89105),u=n.n(i);const o=e=>{let{title:t,alt:n,className:r,id:l,mediaRef:i,mime:o,sizes:c,srcset:a,url:d}=e;return(0,s.createElement)("img",{ref:i,"data-id":l,"data-mime":o,title:t,alt:n,src:d,className:u()("wp-story-image",`wp-image-${l}`,r),srcSet:a,sizes:c})},c=e=>{let{title:t,className:n,id:r,mediaRef:l,mime:i,url:o,poster:c}=e;return(0,s.createElement)("video",{className:u()("wp-story-video","intrinsic-ignore",`wp-video-${r}`,n),ref:l,"data-id":r,title:t,type:i,src:o,poster:c,tabIndex:-1,preload:"auto",playsInline:!0})},a=e=>{let{targetAspectRatio:t,cropUpTo:n,type:r,width:i,height:u,...a}=e,d=null;if(i&&u){const e=i/u;if(e>=t){e>t/(1-n)||(d="wp-story-crop-wide")}else{e<t*(1-n)||(d="wp-story-crop-narrow")}}const p="video"===r||(a.mime||"").startsWith("video/");return(0,s.createElement)("figure",null,p?(0,s.createElement)(c,l()({},a,{className:d})):(0,s.createElement)(o,l()({},a,{className:d})))}},46531:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(69307),l=n(48735),s=n.n(l),i=n(65736),u=n(9610),o=n(29089);const __=i.__;function c(e){let{ended:t,hasPrevious:n,onNextSlide:l,onPreviousSlide:c,icon:a,slideCount:d,showSlideCount:p}=e;const f=(0,r.useCallback)((e=>{t||(e.stopPropagation(),c())}),[c,t]),m=(0,r.useCallback)((e=>{t||(e.stopPropagation(),l())}),[l,t]);return(0,r.createElement)("div",{className:"wp-story-overlay"},p&&(0,r.createElement)("div",{className:"wp-story-embed-icon"},a,(0,r.createElement)("span",null,d)),!p&&(0,r.createElement)("div",{className:"wp-story-embed-icon-expand"},(0,r.createElement)(s(),{role:"img"})),n&&(0,r.createElement)("div",{className:"wp-story-prev-slide",onClick:f},(0,r.createElement)(u.b,{size:44,label:__("Previous Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(o.Vq,{size:24}):(0,r.createElement)(o.JM,{size:24}))),(0,r.createElement)("div",{className:"wp-story-next-slide",onClick:m},(0,r.createElement)(u.b,{size:44,label:__("Next Slide","jetpack"),className:"outlined-w"},(0,i.isRTL)()?(0,r.createElement)(o.JM,{size:24}):(0,r.createElement)(o.Vq,{size:24}))))}},58871:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(69307),l=n(89105),s=n.n(l),i=n(31158),u=n(29891),o=n(72096);const c=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent);function a(e){let{className:t,fullscreenClassName:n,bodyFullscreenClassName:l,fullscreen:a,shadowDOM:d,onKeyDown:p,onExitFullscreen:f,playerQuerySelector:m,children:g}=e;const y=(0,r.useRef)(),E=(0,r.useRef)(),[h,S]=(0,r.useState)(null),w=c&&u.am(),v=a&&!w,b=a&&w;return(0,r.useLayoutEffect)((()=>{if(w)a?y.current&&u.uP(y.current,f):u.bG()&&u.JF();else if(a){if(S([document.documentElement.scrollLeft,document.documentElement.scrollTop]),document.body.classList.add(l),document.getElementsByTagName("html")[0].classList.add(l),E.current){const e=E.current.querySelector(m);e&&e.focus()}}else if(document.body.classList.remove(l),document.getElementsByTagName("html")[0].classList.remove(l),h){window.scrollTo(...h);const e=y.current.querySelector(m);e&&e.focus()}}),[a]),(0,r.createElement)(r.Fragment,null,(0,r.createElement)(i.Z,d,(0,r.createElement)("div",{ref:y,className:s()(t,{[n]:b}),onKeyDown:p},!v&&g)),(0,r.createElement)(o.Z,{className:s()(t,{[n]:v}),isOpened:v,onRequestClose:f,shadowDOM:d,onKeyDown:v&&p,focusOnMount:!1,modalRef:E},v&&g))}},4045:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(69307),l=n(9818),s=n(39630),i=(n(66930),n(54616)),u=n(58871);function o(e){let{id:t,slides:n,metadata:o,disabled:c,...a}=e;const d=(0,r.useMemo)((()=>t||Math.random().toString(36)),[t]),{init:p,setEnded:f,setPlaying:m,setFullscreen:g,showSlide:y}=(0,l.useDispatch)("jetpack/story/player"),{playing:E,currentSlideIndex:h,fullscreen:S,isReady:w,playerSettings:v}=(0,l.useSelect)((e=>{const{getCurrentSlideIndex:t,getSettings:n,isFullscreen:r,isPlayerReady:l,isPlaying:s}=e("jetpack/story/player");return l(d)?{playing:s(d),currentSlideIndex:t(d),isReady:!0,fullscreen:r(d),playerSettings:n(d)}:{isReady:!1}}),[d]);(0,r.useEffect)((()=>{w||p(d,{slideCount:n.length,...a})}),[w,d]);const b=(0,r.useCallback)((e=>{switch(e.keyCode){case s.ENTER:if(S)break;case s.SPACE:m(d,!E);break;case s.LEFT:h>0&&y(d,h-1);break;case s.RIGHT:h<n.length-1?y(d,h+1):f(d)}}),[d,h,S,E]),x=(0,r.useCallback)((()=>{g(d,!1)}),[d]);return w?(0,r.createElement)(u.Z,{shadowDOM:v.shadowDOM,className:"wp-story-app",fullscreenClassName:"wp-story-fullscreen",bodyFullscreenClassName:"wp-story-in-fullscreen",playerQuerySelector:".wp-story-container",fullscreen:S,onExitFullscreen:x,onKeyDown:b},(0,r.createElement)(i.Z,{id:d,slides:n,metadata:o,disabled:c})):null}},29891:function(e,t,n){"use strict";n.d(t,{am:function(){return r},bG:function(){return l},uP:function(){return s},JF:function(){return i}});const r=()=>document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled,l=()=>document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullScreenElement,s=(e,t)=>{if((e.requestFullscreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen).call(e),t){const e=()=>{document.fullscreenElement||(document.removeEventListener("fullscreenchange",e),t())};document.addEventListener("fullscreenchange",e)}},i=()=>(document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen).call(document)},31158:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(69307);const l=window&&window.Element&&window.Element.prototype.hasOwnProperty("attachShadow");function s(e){let{enabled:t,delegatesFocus:n=!1,mode:s="open",globalStyleElements:u=[],adoptedStyleSheets:o=null,mountOnElement:c=null,children:a}=e;const[d,p]=(0,r.useState)(null),f=c||d,[m,g]=(0,r.useState)(null),y="string"==typeof u?[...document.querySelectorAll(u)]:u,E=l&&t&&y.length>0,h=(0,r.useCallback)((e=>{null!==e&&p(e.parentNode)}),[]);if((0,r.useEffect)((()=>{if(!f)return;if(f.shadowRoot)return void g(f.shadowRoot);const e=f.attachShadow({delegatesFocus:n,mode:s});o&&(e.adoptedStyleSheets=o),g(e)}),[f]),E&&!m)return c?null:(0,r.createElement)("span",{ref:h});const S=(0,r.createElement)(r.Fragment,null,E&&(0,r.createElement)(i,{globalStyleElements:y}),a);return E?(0,r.createPortal)(S,m):S}function i(e){let{globalStyleElements:t}=e;return(0,r.createElement)(r.Fragment,null,t.map(((e,t)=>{let{id:n,tagName:l,attributes:s,innerHTML:i}=e;return"LINK"===l?(0,r.createElement)("link",{key:n||t,id:n,rel:s.rel.value,href:s.href.value}):"STYLE"===l?(0,r.createElement)("style",{key:n||t,id:n},i):void 0})))}},94292:function(e,t,n){"use strict";var r=n(69307);t.Z=e=>{const t=(0,r.useRef)(),n=(0,r.useRef)(),l=(0,r.useRef)(e),s=(0,r.useCallback)((e=>{e.touches&&1===e.touches.length&&e.preventDefault()}),[]);return(0,r.useEffect)((()=>{l.current=e}),[e]),{onTouchStart:(0,r.useCallback)((e=>{e.target&&(e.target.addEventListener("touchend",s,{passive:!1}),n.current=e.target),t.current=setTimeout((()=>{l.current&&l.current(!0),t.current=null}),200)}),[]),onTouchEnd:(0,r.useCallback)((e=>{t.current?clearTimeout(t.current):(l.current&&l.current(!1),e.stopPropagation()),n.current&&n.current.removeEventListener("touchend",s)}),[])}}},21531:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(69307);function l(e){const t=(0,r.useRef)(null),n=(0,r.useRef)(!1),l=(0,r.useRef)(e),s=(0,r.useRef)(e);return s.current=e,(0,r.useLayoutEffect)((()=>{e.forEach(((e,r)=>{const s=l.current[r];"function"==typeof e&&e!==s&&!1===n.current&&(s(null),e(t.current))})),l.current=e}),e),(0,r.useLayoutEffect)((()=>{n.current=!1})),(0,r.useCallback)((e=>{t.current=e,n.current=!0;(e?s.current:l.current).forEach((t=>{"function"==typeof t?t(e):t&&t.hasOwnProperty("current")&&(t.current=e)}))}),[])}},97524:function(e,t,n){"use strict";async function r(e){const t=e.tagName.toLowerCase();if("img"===t){if(e.complete)return;await new Promise((t=>{e.addEventListener("load",t,{once:!0})}))}else if("video"===t||"audio"===t){if(e.HAVE_ENOUGH_DATA===e.readyState)return;await new Promise((t=>{e.addEventListener("canplaythrough",t,{once:!0}),e.addEventListener("load",t,{once:!0}),e.HAVE_NOTHING===e.readyState&&e.networkState!==e.NETWORK_LOADING&&e.load()}))}}n.d(t,{Z:function(){return r}})},82295:function(e,t,n){"use strict";n.d(t,{BM:function(){return u},i1:function(){return o}});var r=n(92819);const l=new Set(["alert","status","log","marquee","timer"]);let s=[],i=!1;function u(e){if(i)return;const t=document.body.children;(0,r.forEach)(t,(t=>{t!==e&&function(e){const t=e.getAttribute("role");return!("SCRIPT"===e.tagName||e.hasAttribute("aria-hidden")||e.hasAttribute("aria-live")||l.has(t))}(t)&&(t.setAttribute("aria-hidden","true"),s.push(t))})),i=!0}function o(){i&&((0,r.forEach)(s,(e=>{e.removeAttribute("aria-hidden")})),s=[],i=!1)}},97790:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(69307),l=n(39630),s=n(94333),i=n(21531);function u(e){let{overlayClassName:t,children:n,className:u,focusOnMount:o,shouldCloseOnEsc:c=!0,onRequestClose:a,onKeyDown:d,modalRef:p}=e;const f=(0,s.useFocusOnMount)(o),m=(0,s.useConstrainedTabbing)(),g=(0,s.useFocusReturn)();return(0,r.createElement)("div",{className:t,onKeyDown:function(e){c&&e.keyCode===l.ESCAPE&&(e.stopPropagation(),a&&a(e)),e.target&&"button"===e.target.tagName.toLowerCase()&&e.keyCode===l.SPACE||d&&d(e)}},(0,r.createElement)("div",{className:u,ref:(0,i.Z)([m,g,f,p])},n))}},72096:function(e,t,n){"use strict";var r=n(29183),l=n.n(r),s=n(69307),i=n(94333),u=n(31158),o=n(97790),c=n(82295);let a,d=0;const p=()=>{};class f extends s.Component{constructor(e){super(e),this.prepareDOM()}componentDidMount(){d++,1===d&&this.openFirstModal()}componentWillUnmount(){d--,0===d&&this.closeLastModal(),this.cleanDOM()}prepareDOM(){a||(a=document.createElement("div"),document.body.appendChild(a)),this.node=document.createElement("div"),a.appendChild(this.node),this.node.ontouchstart=p,this.node.ontouchend=p}cleanDOM(){a.removeChild(this.node)}openFirstModal(){c.BM(a)}closeLastModal(){c.i1()}render(){const{children:e,isOpened:t,shadowDOM:n,...r}=this.props;return(0,s.createElement)(u.Z,l()({},n,{mountOnElement:this.node}),t&&(0,s.createElement)(o.Z,r,e))}}f.defaultProps={shouldCloseOnEsc:!0,isOpened:!1,focusOnMount:!0},t.Z=(0,i.withInstanceId)(f)},54616:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(29183),l=n.n(r),s=n(69307),i=n(89105),u=n.n(i),o=n(92819),c=n(11313),a=n(94333),d=n(65736),p=n(9818),f=n(12378),m=n(96178),g=n(16019),y=n(27870),E=n(94292);const __=d.__;function h(e){let{id:t,slides:n,metadata:r,disabled:i}=e;const{setFullscreen:d,setEnded:h,setPlaying:S,setMuted:w,showSlide:v}=(0,p.useDispatch)("jetpack/story/player"),{playing:b,muted:x,currentSlideIndex:C,currentSlideEnded:k,ended:N,fullscreen:P,settings:T}=(0,p.useSelect)((e=>{const{getCurrentSlideIndex:n,getSettings:r,hasCurrentSlideEnded:l,hasEnded:s,isFullscreen:i,isMuted:u,isPlaying:o}=e("jetpack/story/player");return{playing:o(t),muted:u(t),currentSlideIndex:n(t),currentSlideEnded:l(t),ended:s(t),fullscreen:i(t),settings:r(t)}}),[t]),M=(0,s.useRef)(),[R,I]=(0,s.useState)(null),[_,{width:L,height:O}]=(0,a.useResizeObserver)(),[z,F]=(0,s.useState)(T.defaultAspectRatio),D=(0,o.some)(n,(e=>(0,c.isBlobURL)(e.url))),A=e=>{v(t,e)},Z=(0,s.useCallback)((()=>{i||P||T.playInFullscreen&&!b&&S(t,!0)}),[b,i,P]),{onTouchStart:j,onTouchEnd:B}=(0,E.Z)((e=>{S(t,!e)}),[]),U=(0,s.useCallback)((()=>{C>0&&A(C-1)}),[C]),H=(0,s.useCallback)((()=>{C<n.length-1?A(C+1):h(t)}),[C,n]),q=(0,s.useCallback)((()=>{d(t,!1)}),[]);let G,V;return(0,s.useEffect)((()=>{i&&b&&S(t,!1)}),[i,b]),(0,s.useEffect)((()=>{b&&k&&H()}),[b,k]),(0,s.useLayoutEffect)((()=>{if(!M.current)return;let e=Math.round(T.defaultAspectRatio*M.current.offsetHeight);P&&(e=Math.abs(1-e/L)<T.cropUpTo?L:e),I(e)}),[L,O,P]),(0,s.useLayoutEffect)((()=>{R&&M.current&&M.current.offsetHeight>0&&F(R/M.current.offsetHeight)}),[R]),G=P?[__("You are currently playing a story.","jetpack"),b?__("Press space to pause.","jetpack"):__("Press space to play.","jetpack",0),__("Press escape to exit.","jetpack")].join(" "):__("Play story","jetpack"),V=i?"presentation":P?"dialog":"button",(0,s.createElement)("div",{className:"wp-story-display-contents"},_,(0,s.createElement)("div",{role:V,"aria-label":G,tabIndex:P?-1:0,className:u()("wp-story-container",{"wp-story-with-controls":!i&&!P&&!T.playInFullscreen,"wp-story-fullscreen":P,"wp-story-ended":N,"wp-story-disabled":i,"wp-story-clickable":!i&&!P}),style:{maxWidth:`${R}px`},onClick:Z,onTouchStart:j,onTouchEnd:B},(0,s.createElement)(y.h4,l()({},r,{fullscreen:P,onExitFullscreen:q})),(0,s.createElement)("div",{ref:M,className:"wp-story-wrapper"},n.map(((e,n)=>(0,s.createElement)(f.Z,{playerId:t,key:n,media:e,index:n,playing:!i&&b,uploading:D,settings:T,targetAspectRatio:z})))),(0,s.createElement)(y.aV,{icon:m.Z,slideCount:n.length,showSlideCount:T.showSlideCount,ended:N,hasPrevious:C>0,onPreviousSlide:U,onNextSlide:H}),T.showProgressBar&&(0,s.createElement)(g.ZP,{playerId:t,slides:n,disabled:!P,onSlideSeek:A,maxBullets:P?T.maxBulletsFullscreen:T.maxBullets}),(0,s.createElement)(y.ZX,{playing:b,muted:x,onPlayPressed:()=>S(t,!b),onMutePressed:()=>w(t,!x),showMute:(e=>{const t=e<n.length?n[e]:null;return!!t&&("video"===t.type||(t.mime||"").startsWith("video/"))})(C)})),P&&(0,s.createElement)(y.Aq,{currentMedia:T.blurredBackground&&n.length>C&&n[C]}))}},16019:function(e,t,n){"use strict";var r=n(69307),l=n(92819),s=n(27870),i=n(9818);const u=e=>{let{key:t,playerId:n,index:l,disabled:u,isSelected:o,onClick:c}=e;const a=(0,i.useSelect)((e=>e("jetpack/story/player").getCurrentSlideProgressPercentage(n)),[]);return(0,r.createElement)(s.gT,{key:t,index:l,progress:a,disabled:u,isSelected:o,onClick:c})};t.ZP=e=>{let{playerId:t,slides:n,disabled:o,onSlideSeek:c,maxBullets:a}=e;const{currentSlideIndex:d}=(0,i.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t)})),[]),p=Math.min(n.length,a),f=Math.floor(p/2);let m,g=0,y=n.length-1;return n.length<=a||d<f?(m=d,y=p-1):d>=n.length-f?(m=d-n.length+p,g=n.length-p):(m=f,g=d-f,y=d+f),(0,r.createElement)("div",{className:"wp-story-pagination wp-story-pagination-bullets",role:"tablist"},g>0&&(0,r.createElement)(s.gT,{key:"bullet-0",index:g-1,progress:100,isEllipsis:!0}),(0,l.range)(1,p+1).map(((e,n)=>{const l=n+g;let i=null;if(l<d)i=100;else{if(!(l>d))return(0,r.createElement)(u,{playerId:t,key:`bullet-${n}`,index:l,disabled:o,isSelected:m===n,onClick:()=>c(l)});i=0}return(0,r.createElement)(s.gT,{key:`bullet-${n}`,index:l,progress:i,disabled:o,isSelected:m===n,onClick:()=>c(l)})})),y<n.length-1&&(0,r.createElement)(s.gT,{key:`bullet-${p+1}`,index:y+1,progress:0,isEllipsis:!0}))}},12378:function(e,t,n){"use strict";var r=n(29183),l=n.n(r),s=n(69307),i=n(97524),u=n(89105),o=n.n(u),c=n(9818),a=n(27870);t.Z=e=>{let{playerId:t,media:n,index:r,playing:u,uploading:d,settings:p,targetAspectRatio:f}=e;const{currentSlideIndex:m,buffering:g}=(0,c.useSelect)((e=>({currentSlideIndex:e("jetpack/story/player").getCurrentSlideIndex(t),buffering:e("jetpack/story/player").isBuffering(t)})),[]),{slideReady:y}=(0,c.useDispatch)("jetpack/story/player"),E=r===m,h=(0,s.useRef)(null),[S,w]=(0,s.useState)(!1),[v,b]=(0,s.useState)(!0);return(0,s.useEffect)((()=>{if(E&&!v){const e=h.current&&h.current.src&&"video"===h.current.tagName.toLowerCase()?h.current:null;y(t,h.current,e?e.duration:p.imageTime)}}),[E,v]),(0,s.useEffect)((()=>{r<=m+(u?1:0)&&w(!0)}),[u,m]),(0,s.useLayoutEffect)((()=>{h.current&&(0,i.Z)(h.current).then((()=>{b(!1)}))}),[S,d]),(0,s.createElement)(s.Fragment,null,E&&(v||d||g)&&(0,s.createElement)("div",{className:o()("wp-story-slide","is-loading",{transparent:u&&g,"semi-transparent":d||!u&&g})},(0,s.createElement)(a.WB,null)),(0,s.createElement)("div",{role:"figure",className:"wp-story-slide",style:{display:E&&!v?"block":"none"},tabIndex:E?0:-1},S&&(0,s.createElement)(a.pU,l()({},n,{targetAspectRatio:f,cropUpTo:p.cropUpTo,index:r,mediaRef:h}))))}},46192:function(e,t,n){"use strict";function r(e,t){return{type:"SET_MUTED",value:t,playerId:e}}function l(e,t){return{type:"SET_PLAYING",value:t,playerId:e}}function s(e,t){return{type:"SHOW_SLIDE",index:t,playerId:e}}function i(e,t,n){return{type:"SLIDE_READY",mediaElement:t,duration:n,playerId:e}}function u(e,t){return{type:"SET_CURRENT_SLIDE_PROGRESS",value:t,playerId:e}}function o(e){return{type:"RESET_CURRENT_SLIDE_PROGRESS",playerId:e}}function c(e){return{type:"SET_CURRENT_SLIDE_ENDED",playerId:e}}function a(e,t){return{type:"SET_FULLSCREEN",playerId:e,fullscreen:t}}function d(e){return{type:"ENDED",playerId:e}}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{type:"INIT",playerId:e,settings:t}}function f(e,t){return{type:"SET_BUFFERING",value:t,playerId:e}}n.r(t),n.d(t,{setMuted:function(){return r},setPlaying:function(){return l},showSlide:function(){return s},slideReady:function(){return i},setCurrentSlideProgress:function(){return u},resetCurrentSlideProgress:function(){return o},setCurrentSlideEnded:function(){return c},setFullscreen:function(){return a},setEnded:function(){return d},init:function(){return p},setBuffering:function(){return f}})},58571:function(e,t,n){"use strict";n.d(t,{XO:function(){return r},Qz:function(){return l},H2:function(){return s}});const r={currentTime:0,duration:null,timeout:null,lastUpdate:null},l={progress:r,index:0,mediaElement:null,duration:null,ended:!1,ready:!1},s={slideCount:0,currentSlide:l,previousSlide:null,muted:!1,playing:!1,ended:!1,buffering:!1,fullscreen:!1,settings:{imageTime:5,startMuted:!1,playInFullscreen:!0,playOnNextSlide:!0,playOnLoad:!1,exitFullscreenOnEnd:!0,loadInFullscreen:!1,blurredBackground:!0,showSlideCount:!1,showProgressBar:!0,shadowDOM:{enabled:!0,mode:"open",globalStyleElements:'#jetpack-block-story-css, link[href*="jetpack/_inc/blocks/story/view.css"]'},defaultAspectRatio:.5625,cropUpTo:.2,volume:.8,maxBullets:7,maxBulletsFullscreen:14}}},83566:function(e,t,n){"use strict";var r=n(46192),l=n(96494);const s=e=>e&&e.src&&"video"===e.tagName.toLowerCase();function i(e,t){const{getState:n}=t,r=e.playerId,i=(0,l.isMuted)(n(),r),u=(0,l.isPlaying)(n(),r),o=(0,l.getCurrentMediaElement)(n(),r),c=(0,l.getPreviousSlideMediaElement)(n(),r),a=(0,l.getSettings)(n(),r);s(c)&&(c.currentTime=0,c.onwaiting=null,c.onplaying=null,c.pause()),s(o)&&(i!==o.muted&&(o.muted=i,i||(o.volume=a.volume)),u?o.play():o.pause())}function u(e,t){const{getState:n,dispatch:i}=t,o=e.playerId,c=(0,l.isCurrentSlideReady)(n(),o),a=(0,l.isPlaying)(n(),o),d=(0,l.getCurrentSlideProgress)(n(),o);if(clearTimeout(d.timeout),!a||!c)return void(d.lastUpdate&&i((0,r.setCurrentSlideProgress)(o,{...d,lastUpdate:null})));const p=(0,l.getCurrentMediaElement)(n(),o),f=(0,l.getCurrentMediaDuration)(n(),o),m=d.lastUpdate?Date.now()-d.lastUpdate:100,g=s(p)?p.currentTime:d.currentTime+m/1e3;if(g>=f){i((0,r.setCurrentSlideEnded)(o));const e=(0,l.getSlideCount)(n(),o);(0,l.getCurrentSlideIndex)(n(),o)===e-1&&i((0,r.setEnded)(o))}else i((0,r.setCurrentSlideProgress)(o,{timeout:setTimeout((()=>u(e,t)),100),lastUpdate:Date.now(),duration:f,currentTime:g}))}t.Z={SET_PLAYING:[u,i],SLIDE_READY:[function(e,t){const{getState:n,dispatch:i}=t,u=e.playerId,o=(0,l.getCurrentMediaElement)(n(),u);if(!s(o))return;const c=(0,l.getCurrentSlideProgress)(n(),u);0===o.currentTime&&c.currentTime>0&&(o.currentTime=c.currentTime),o.onwaiting=()=>i((0,r.setBuffering)(u,!0)),o.onplaying=()=>i((0,r.setBuffering)(u,!1))},u,i],SET_MUTED:i,SHOW_SLIDE:i}},66930:function(e,t,n){"use strict";var r=n(9818),l=n(46192),s=n(96494),i=n(36978),u=n(2814);const o=(0,r.registerStore)("jetpack/story/player",{actions:l,reducer:u.Z,selectors:s});(0,i.Z)(o)},36978:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(2601),l=n.n(r),s=n(92819),i=n(83566);function u(e){const t=[l()(i.Z)];let n=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},r=[];const u={getState:e.getState,dispatch:function(){return n(...arguments)}};return r=t.map((e=>e(u))),n=(0,s.flowRight)(...r)(e.dispatch),e.dispatch=n,e}},2814:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(92819),l=n(58571);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:l.H2,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SHOW_SLIDE":{const n=e.currentSlide===t.index+1;return{...e,currentSlide:{...l.Qz,index:t.index},previousSlide:e.currentSlide,playing:n?e.settings.playOnNextSlide:e.playing}}case"SLIDE_READY":return{...e,buffering:!1,currentSlide:{...e.currentSlide,mediaElement:t.mediaElement,duration:t.duration,ready:!0},previousSlide:null};case"SET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:t.value}};case"SET_CURRENT_SLIDE_ENDED":return{...e,currentSlide:{...e.currentSlide,ended:!0}};case"RESET_CURRENT_SLIDE_PROGRESS":return{...e,currentSlide:{...e.currentSlide,progress:{...l.XO}}};case"SET_MUTED":return{...e,muted:t.value};case"SET_PLAYING":{const n=t.value&&e.ended;return{...e,playing:t.value,buffering:!!t.value&&e.buffering,fullscreen:!e.playing&&t.value?e.settings.playInFullscreen:e.fullscreen,ended:!n&&e.ended,currentSlide:n?{...l.Qz,index:0}:e.currentSlide,previousSlide:n?null:e.previousSlide}}case"SET_BUFFERING":return{...e,buffering:t.value};case"SET_FULLSCREEN":return{...e,fullscreen:t.fullscreen,playing:!(e.fullscreen&&!t.fullscreen&&e.settings.playInFullscreen)&&e.playing};case"INIT":{const n=(0,r.merge)({},e.settings,t.settings);return{...e,settings:n,playing:n.playOnLoad,fullscreen:n.loadInFullscreen}}case"ENDED":return{...e,currentSlide:{...l.Qz,index:e.settings.slideCount-1,progress:{...l.XO,currentTime:100,duration:100}},ended:!0,playing:!1,fullscreen:!e.settings.exitFullscreenOnEnd}}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.playerId?{...e,[t.playerId]:s(e[t.playerId],t)}:e}},96494:function(e,t,n){"use strict";function r(e,t){return!!e[t]}function l(e,t){return e[t].currentSlide.index}function s(e,t){return e[t].currentSlide.progress}function i(e,t){const n=e[t].currentSlide.progress.currentTime,r=e[t].currentSlide.progress.duration,l=Math.round(100*n/r);return l>=100?100:l}function u(e,t){return e[t].playing}function o(e,t){return e[t].muted}function c(e,t){return e[t].buffering}function a(e,t){return e[t].currentSlide.mediaElement}function d(e,t){return e[t].currentSlide.duration}function p(e,t){return e[t].currentSlide.ended}function f(e,t){return e[t].currentSlide.ready}function m(e,t){return e[t].previousSlide?.mediaElement}function g(e,t){return e[t].fullscreen}function y(e,t){return e[t].ended}function E(e,t){return e[t].settings}function h(e,t){return e[t].settings.slideCount}n.r(t),n.d(t,{isPlayerReady:function(){return r},getCurrentSlideIndex:function(){return l},getCurrentSlideProgress:function(){return s},getCurrentSlideProgressPercentage:function(){return i},isPlaying:function(){return u},isMuted:function(){return o},isBuffering:function(){return c},getCurrentMediaElement:function(){return a},getCurrentMediaDuration:function(){return d},hasCurrentSlideEnded:function(){return p},isCurrentSlideReady:function(){return f},getPreviousSlideMediaElement:function(){return m},isFullscreen:function(){return g},hasEnded:function(){return y},getSettings:function(){return E},getSlideCount:function(){return h}})},57836:function(e,t,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},41632:function(e,t,n){"use strict";var r=n(69307),l=n(55609);t.Z=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:24,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"0 0 24 24";return(0,r.createElement)(l.SVG,{xmlns:"http://www.w3.org/2000/svg",width:t,height:n,viewBox:s},(0,r.createElement)(l.Path,{fill:"none",d:"M0 0h24v24H0V0z"}),e)}},48735:function(e,t,n){"use strict";var r=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=e.size,n=void 0===t?24:t,l=e.onClick,s=(e.icon,e.className),u=function(e,t){var n={};for(var r in e)0<=t.indexOf(r)||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["size","onClick","icon","className"]),o=["gridicon","gridicons-fullscreen",s,!1,!1,!1].filter(Boolean).join(" ");return i.default.createElement("svg",r({className:o,height:n,width:n,onClick:l},u,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),i.default.createElement("g",null,i.default.createElement("path",{d:"M21 3v6h-2V6.41l-3.29 3.3-1.42-1.42L17.59 5H15V3zM3 3v6h2V6.41l3.29 3.3 1.42-1.42L6.41 5H9V3zm18 18v-6h-2v2.59l-3.29-3.29-1.41 1.41L17.59 19H15v2zM9 21v-2H6.41l3.29-3.29-1.41-1.42L5 17.59V15H3v6z"})))};var l,s=n(99196),i=(l=s)&&l.__esModule?l:{default:l};e.exports=t.default},99196:function(e){"use strict";e.exports=window.React},92819:function(e){"use strict";e.exports=window.lodash},11313:function(e){"use strict";e.exports=window.wp.blob},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},47701:function(e){"use strict";e.exports=window.wp.domReady},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n},39630:function(e){"use strict";e.exports=window.wp.keycodes}},t={};function n(r){var l=t[r];if(void 0!==l)return l.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(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.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";var e=n(29183),t=n.n(e),r=n(69307),l=n(47701),s=n.n(l),i=n(4045);if("undefined"!=typeof window){const e=Array.from(new URLSearchParams(window.location.search).entries()).filter((e=>e[0].startsWith("wp-story-"))).reduce(((e,t)=>{const n=t[0].replace(/^wp-story-/,"").replace(/-([a-z])/g,(e=>e[1].toUpperCase()));try{e[n]=JSON.parse(t[1])}catch(r){e[n]=JSON.parse(`"${t[1]}"`)}return e}),{});s()((function(){const n=[...document.querySelectorAll(":not(#debug-bar-wp-query) .wp-story")];n.forEach((l=>{if("true"===l.getAttribute("data-block-initialized"))return;let s=null;1===n.length&&(s={...e});const u=l.getAttribute("data-settings");if(u)try{s={...s,...JSON.parse(u)}}catch(e){}!function(e,n){"string"==typeof e&&(e=document.querySelectorAll(e));const l=e.querySelector(".wp-story-wrapper"),s=e.querySelector(".wp-story-meta");let u=[];l&&l.children.length>0&&(u=function(e){return[...e.querySelectorAll("li > figure > :first-child")].map((e=>({alt:e.getAttribute("alt")||e.getAttribute("title"),mime:e.getAttribute("data-mime")||e.getAttribute("type"),url:e.getAttribute("src"),id:e.getAttribute("data-id"),type:"img"===e.tagName.toLowerCase()?"image":"video",srcset:e.getAttribute("srcset"),sizes:e.getAttribute("sizes")})))}(l));let o={};s&&s.children.length>0&&(o=function(e){const t=e.querySelector("div:first-child > img"),n=e.querySelector(".wp-story-title"),r=t&&t.src;return{storyTitle:n&&n.innerText,siteIconUrl:r}}(s));const c=function(e){return e.getAttribute("data-id")}(e);(0,r.render)((0,r.createElement)(i.Z,t()({id:c,slides:u,metadata:o,disabled:!1},n)),e)}(l,s)}))}))}}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/story/view.js.LICENSE.txt b/plugins/jetpack/_inc/blocks/story/view.js.LICENSE.txt
new file mode 100644
index 00000000..0c20a875
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/story/view.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
diff --git a/plugins/jetpack/_inc/blocks/story/view.rtl.css b/plugins/jetpack/_inc/blocks/story/view.rtl.css
new file mode 100644
index 00000000..a3d0f1c6
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/story/view.rtl.css
@@ -0,0 +1 @@
+.components-spinner{background-color:#7e8993;border-radius:100%;display:inline-block;height:18px;margin:5px 11px 0;opacity:.7;position:relative;width:18px}.components-spinner:before{animation:components-spinner__animation 1s linear infinite;background-color:#fff;border-radius:100%;content:"";height:4px;position:absolute;right:3px;top:3px;transform-origin:6px 6px;width:4px}@keyframes components-spinner__animation{0%{transform:rotate(0deg)}to{transform:rotate(-1turn)}}.wp-story-display-contents{display:contents}.wp-story-app{padding:10px}.wp-story-container{-webkit-tap-highlight-color:transparent;border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);break-inside:avoid;display:block;height:320px;list-style:none;margin-bottom:24px;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;page-break-inside:avoid;position:relative;transition:box-shadow .3s ease-in-out,transform .3s cubic-bezier(.18,.14,.25,1);width:180px;z-index:1}.wp-story-container figure{transition:transform .3s cubic-bezier(.18,.14,.25,1)}.wp-story-container:hover{box-shadow:0 4px 12px rgba(0,0,0,.3);transform:scale3d(1.03,1.03,1)}.wp-story-container:hover figure{transform:scale3d(1.07,1.07,1)}.wp-story-container button{background-color:transparent;border:0;box-shadow:none;cursor:pointer;outline-width:0;text-shadow:none}.wp-story-container.wp-story-initialized{opacity:1}.wp-story-container.wp-story-clickable{cursor:pointer}.wp-story-container .wp-story-slide,.wp-story-container .wp-story-wrapper{line-height:normal;list-style-type:none;margin:0;padding:0}.wp-story-container .wp-story-wrapper{background-color:#0e1112;border-radius:15px;bottom:0;display:block;height:100%;left:0;position:absolute;right:0;top:0;z-index:-1}.wp-story-container .wp-story-slide{display:flex;height:100%;width:100%}.wp-story-container .wp-story-slide figure{align-items:center;display:flex;height:100%;justify-content:center;margin:0;-o-object-fit:contain;object-fit:contain;overflow:hidden;position:relative;width:100%}.wp-story-container .wp-story-slide.is-loading{align-items:center;background-color:#484542;justify-content:center;position:absolute;z-index:1}.wp-story-container .wp-story-slide.is-loading.semi-transparent{background-color:#4845427f}.wp-story-container .wp-story-slide.is-loading.transparent{background-color:transparent}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner{align-items:center;display:flex}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner,.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__outer{border-top-color:#fff;font-size:40px;height:40px;width:40px}.wp-story-container .wp-story-slide.is-loading .wp-story-loading-spinner__inner{border-left-color:#c4c4c4;border-top-color:#c4c4c4;height:100%;opacity:.4;width:100%}.wp-story-container .wp-story-image,.wp-story-container .wp-story-video{border:0;display:block;height:auto;margin:0;max-height:100%;max-width:100%;width:auto}.wp-story-container .wp-story-image.wp-story-crop-wide,.wp-story-container .wp-story-video.wp-story-crop-wide{max-width:revert}.wp-story-container .wp-story-image.wp-story-crop-narrow,.wp-story-container .wp-story-video.wp-story-crop-narrow{max-height:revert}.wp-story-container .wp-story-controls,.wp-story-container .wp-story-meta{display:none}.wp-story-container .wp-story-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;width:100%;z-index:1}.wp-story-container .wp-story-overlay .wp-story-button-play,.wp-story-container .wp-story-overlay .wp-story-button-replay{cursor:pointer}.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{align-items:center;background-color:rgba(0,0,0,.5);border-radius:5px;color:#fff;display:flex;left:0;margin:15px;padding:5px 3px;position:absolute;top:0}.wp-story-container .wp-story-overlay .wp-story-embed-icon *,.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand *{margin:0 2px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg,.wp-story-container .wp-story-overlay .wp-story-embed-icon svg{fill:#fff;height:20px;width:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand span,.wp-story-container .wp-story-overlay .wp-story-embed-icon span{color:#fff;font-family:sans-serif;font-size:16px;font-weight:600;line-height:20px}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{background-color:transparent}.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand svg{filter:drop-shadow(0 0 2px rgba(0,0,0,.6))}.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-container.wp-story-ended .wp-story-overlay{background-color:hsla(0,0%,100%,.4)}.wp-story-container .wp-story-next-slide,.wp-story-container .wp-story-prev-slide{display:none;position:absolute}.wp-story-container .wp-story-next-slide button,.wp-story-container .wp-story-prev-slide button{border-width:0}.wp-story-container .wp-story-next-slide button:hover,.wp-story-container .wp-story-prev-slide button:hover{border-width:2px}.wp-story-container .wp-story-prev-slide{margin:auto;right:-84px}.wp-story-container .wp-story-next-slide{left:-84px;margin:auto}.wp-story-container .wp-story-pagination{position:absolute;text-align:center;z-index:2}.wp-story-container .wp-story-pagination-bullets{bottom:0;display:flex;left:0;margin:7px 10px;overflow:hidden;position:absolute;right:0;top:auto;transition:flex-basis 1s ease-in-out}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{flex:1;justify-content:space-between;margin:0 2px;opacity:1;padding:6px 0;vertical-align:top}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar{background:hsla(0,0%,100%,.6);height:4px;min-width:12px;width:100%}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet .wp-story-pagination-bullet-bar-progress{background-color:#fff;height:4px;opacity:1;transition:width .1s ease;width:0}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis{flex:0 0 4px}.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-ellipsis .wp-story-pagination-bullet-bar{min-width:6px}.wp-story-container .wp-story-controls{bottom:30px;display:none;flex-direction:row;justify-content:space-between;margin:0 10px;position:absolute;width:64px;z-index:3}@media(max-width:782px){.wp-story-container .wp-story-controls{bottom:50px;margin:0 16px}}.wp-story-container.wp-story-with-controls{border-radius:0;box-shadow:none!important;overflow:visible;transition:none!important}.wp-story-container.wp-story-with-controls .wp-story-wrapper{border-radius:15px;box-shadow:0 2px 12px rgba(0,0,0,.25);overflow:hidden}.wp-story-container.wp-story-with-controls figure{transform:none!important;transition:none!important}.wp-story-container.wp-story-with-controls:hover{box-shadow:none!important;transform:none!important}.wp-story-container.wp-story-with-controls:hover figure{transform:none}.wp-story-container.wp-story-with-controls .wp-story-next-slide,.wp-story-container.wp-story-with-controls .wp-story-prev-slide{display:block}.wp-story-container.wp-story-with-controls .wp-story-prev-slide{margin:auto;right:-48px}.wp-story-container.wp-story-with-controls .wp-story-next-slide{left:-48px;margin:auto}.wp-story-container.wp-story-with-controls .wp-story-controls{display:flex}@media(max-width:782px){.wp-story-container.wp-story-with-controls .wp-story-controls{bottom:30px;margin:0 10px}}.wp-story-fullscreen.wp-story-app{-webkit-touch-callout:none;bottom:0;height:100%;left:0;margin:0;max-width:100%!important;padding:0;position:fixed;right:0;top:0;transform:translateZ(0);-webkit-user-select:none;user-select:none;width:100%!important;z-index:9999999999}.wp-story-fullscreen.wp-story-container{border-radius:0;box-shadow:none;height:100%;margin:auto;max-height:100%;max-width:100%;overflow:initial;width:100%}.wp-story-fullscreen.wp-story-container,.wp-story-fullscreen.wp-story-container figure{transform:none;transition:none!important}.wp-story-fullscreen.wp-story-container:focus{outline:none}.wp-story-fullscreen.wp-story-container:before{box-shadow:none}.wp-story-fullscreen.wp-story-container:before:hover{opacity:0;transition:none!important}.wp-story-fullscreen.wp-story-container .wp-story-wrapper{border-radius:0;height:auto;margin-bottom:84px;margin-top:84px;overflow:initial}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-wrapper{margin-bottom:0;margin-top:0}}.wp-story-fullscreen.wp-story-container .wp-story-slide{height:100%;width:auto}.wp-story-fullscreen.wp-story-container .wp-story-slide.is-loading{width:100%}.wp-story-fullscreen.wp-story-container .wp-story-meta{align-items:center;color:#fff;display:flex;flex-direction:row;font-family:sans-serif;line-height:20px;padding:20px 0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta{background:#000;background:linear-gradient(-180deg,rgba(0,0,0,.63),transparent);padding:16px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{background-color:#fff;border:2px solid #fff;border-radius:4px;flex-shrink:0;height:40px;margin:0 0 0 16px;width:40px}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon img{height:100%;text-align:center;width:100%}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-icon{height:24px;margin:0 0 0 12px;width:24px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-title{font-size:12px}}.wp-story-fullscreen.wp-story-container .wp-story-meta .wp-story-exit-fullscreen{margin-right:auto;min-height:24px;min-width:24px;order:3}.wp-story-fullscreen.wp-story-container .wp-story-overlay{margin-bottom:84px;margin-top:84px}.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon,.wp-story-fullscreen.wp-story-container .wp-story-overlay .wp-story-embed-icon-expand{display:none}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-overlay{bottom:76px;margin-bottom:0;margin-top:0;top:76px}.wp-story-fullscreen.wp-story-container.wp-story-disabled .wp-story-overlay,.wp-story-fullscreen.wp-story-container.wp-story-ended .wp-story-overlay{bottom:0;top:0}}.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{display:block}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-next-slide,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{bottom:0;display:block;height:100%;position:absolute;top:0}.wp-story-fullscreen.wp-story-container .wp-story-next-slide button,.wp-story-fullscreen.wp-story-container .wp-story-prev-slide button{display:none}.wp-story-fullscreen.wp-story-container .wp-story-prev-slide{right:0;width:33.33%}.wp-story-fullscreen.wp-story-container .wp-story-next-slide{left:0;width:66.66%}}.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:20px;display:flex;flex-direction:row;justify-content:space-between;margin:0;position:absolute;width:88px}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-controls{bottom:36px;margin:0 16px}}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:42px;display:flex;margin:0;padding:14px 0;position:absolute;top:auto}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet{justify-content:space-between}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:first-child{margin-right:0}.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets .wp-story-pagination-bullet:last-child{margin-left:0}@media(max-width:782px){.wp-story-fullscreen.wp-story-container .wp-story-pagination-bullets{bottom:0;padding:10px 16px}}.wp-story-background{background-color:#0e1112;bottom:0;display:block;left:0;position:absolute;right:0;top:0;z-index:-2}.wp-story-background svg{height:0;width:0}.wp-story-background img{height:100%;width:100%}.wp-story-background .wp-story-background-dark{bottom:0;left:0;opacity:.12;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-dark{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}.wp-story-background .wp-story-background-image{background-position:100%;background-repeat:no-repeat;background-size:100% auto;display:none;height:100%;width:100%}@supports not ((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-image{filter:blur(18px);filter:url(#gaussian-blur-18);filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius="18")}}.wp-story-background .wp-story-background-blur{background-color:#0e1112e0;bottom:0;left:0;position:absolute;right:0;top:0}@supports((-webkit-backdrop-filter:none) or (backdrop-filter:none)){.wp-story-background .wp-story-background-blur{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}}html.wp-story-in-fullscreen{overflow:hidden;scroll-behavior:auto}body.wp-story-in-fullscreen{height:100%;overflow:hidden;padding-left:15px;position:fixed;width:100%}.jetpack-mdc-icon-button{fill:currentColor;align-items:center;-webkit-appearance:none;appearance:none;background-color:transparent;border:0;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;justify-content:center;overflow:hidden;padding:0;position:relative;text-decoration:none!important;-webkit-user-select:none;user-select:none}.jetpack-mdc-icon-button.outlined{background-color:rgba(0,0,0,.5)}.jetpack-mdc-icon-button.outlined:hover{background-color:rgba(0,0,0,.3)}.jetpack-mdc-icon-button.outlined-w{background-color:hsla(0,0%,100%,.2)}.jetpack-mdc-icon-button.outlined-w:hover{background-color:hsla(0,0%,100%,.3)}.jetpack-mdc-icon-button.bordered{border:2px solid #fff}.jetpack-mdc-icon-button.circle-icon{border-radius:50%} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/subscriptions/view.asset.php b/plugins/jetpack/_inc/blocks/subscriptions/view.asset.php
new file mode 100644
index 00000000..e87b5f87
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/subscriptions/view.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'c8cabf70914f8099702ad24a85f687dd'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/subscriptions/view.css b/plugins/jetpack/_inc/blocks/subscriptions/view.css
new file mode 100644
index 00000000..6acf6064
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/subscriptions/view.css
@@ -0,0 +1 @@
+.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;margin:0;position:absolute;right:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{left:0} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/subscriptions/view.js b/plugins/jetpack/_inc/blocks/subscriptions/view.js
new file mode 100644
index 00000000..ec1b31b9
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/subscriptions/view.js
@@ -0,0 +1 @@
+!function(){var t={57836:function(t,r,e){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(e.p=window.Jetpack_Block_Assets_Base_Url.url)}},r={};function e(n){var o=r[n];if(void 0!==o)return o.exports;var c=r[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,{a:r}),r},e.d=function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),e.o=function(t,r){return Object.prototype.hasOwnProperty.call(t,r)},function(){var t;e.g.importScripts&&(t=e.g.location+"");var r=e.g.document;if(!t&&r&&(r.currentScript&&(t=r.currentScript.src),!t)){var n=r.getElementsByTagName("script");n.length&&(t=n[n.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=t+"../"}(),function(){"use strict";e(57836)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/subscriptions/view.rtl.css b/plugins/jetpack/_inc/blocks/subscriptions/view.rtl.css
new file mode 100644
index 00000000..6b3b01ce
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/subscriptions/view.rtl.css
@@ -0,0 +1 @@
+.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline{position:relative}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form{align-items:flex-start;display:flex}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form input[type=email]{line-height:normal}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form button{border-color:transparent;border-style:solid}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email{background:transparent;flex-grow:1}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form .wp-block-jetpack-subscriptions__textfield input[type=email],.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-base-control__field,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email .components-text-control__input,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email input[type=email]{margin:0;width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline .wp-block-jetpack-subscriptions__form p#subscribe-submit,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-email,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline form p#subscribe-submit{margin:0}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs{padding-bottom:32px}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__show-subs .wp-block-jetpack-subscriptions__subscount{bottom:0;font-size:16px;left:0;margin:0;position:absolute}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__form,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline form{display:block}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__button,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline button{display:inline-block;max-width:100%}.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .jetpack-subscribe-count p,.wp-block-jetpack-subscriptions.wp-block-jetpack-subscriptions__supports-newline.wp-block-jetpack-subscriptions__use-newline .wp-block-jetpack-subscriptions__subscount{right:0} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/swiper.css b/plugins/jetpack/_inc/blocks/swiper.css
new file mode 100644
index 00000000..7fd953ea
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/swiper.css
@@ -0,0 +1 @@
+@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff")}.swiper-container{list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:content-box;display:flex;height:100%;position:relative;transition-property:transform;width:100%;z-index:1}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-container-pointer-events{touch-action:pan-y}.swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-theme-color);cursor:pointer;display:flex;height:44px;justify-content:center;margin-top:-22px;position:absolute;top:50%;width:27px;z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:44px;font-variant:normal;letter-spacing:0;line-height:1;text-transform:none!important;text-transform:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{left:auto;right:10px}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:"next"}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#fff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:#000;border-radius:50%;display:inline-block;height:8px;opacity:.2;width:8px}button.swiper-pagination-bullet{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{background:var(--swiper-theme-color);opacity:1}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:6px 0}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-theme-color);height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:4px;left:0;top:0;width:100%}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:4px}.swiper-pagination-white{--swiper-pagination-color:#fff}.swiper-pagination-black{--swiper-pagination-color:#000}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:rgba(0,0,0,.1);border-radius:10px;position:relative;-ms-touch-action:none}.swiper-container-horizontal>.swiper-scrollbar{bottom:3px;height:5px;left:1%;position:absolute;width:98%;z-index:50}.swiper-container-vertical>.swiper-scrollbar{height:98%;position:absolute;right:3px;top:1%;width:5px;z-index:50}.swiper-scrollbar-drag{background:rgba(0,0,0,.5);border-radius:10px;height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{-webkit-animation:swiper-preloader-spin 1s linear infinite;animation:swiper-preloader-spin 1s linear infinite;border:4px solid var(--swiper-theme-color);border-radius:50%;border-top:4px solid transparent;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@-webkit-keyframes swiper-preloader-spin{to{transform:rotate(1turn)}}@keyframes swiper-preloader-spin{to{transform:rotate(1turn)}}.swiper-container .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:0}.swiper-container-cube .swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0}.swiper-container-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:0} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/swiper.rtl.css b/plugins/jetpack/_inc/blocks/swiper.rtl.css
new file mode 100644
index 00000000..68ded72a
--- /dev/null
+++ b/plugins/jetpack/_inc/blocks/swiper.rtl.css
@@ -0,0 +1 @@
+@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff")}.swiper-container{list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:content-box;display:flex;height:100%;position:relative;transition-property:transform;width:100%;z-index:1}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-container-pointer-events{touch-action:pan-y}.swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-container-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-theme-color);cursor:pointer;display:flex;height:44px;justify-content:center;margin-top:-22px;position:absolute;top:50%;width:27px;z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:44px;font-variant:normal;letter-spacing:0;line-height:1;text-transform:none!important;text-transform:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:auto;right:10px}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{left:10px;right:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:"next"}.swiper-button-next.swiper-button-white,.swiper-button-prev.swiper-button-white{--swiper-navigation-color:#fff}.swiper-button-next.swiper-button-black,.swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;right:0;width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:#000;border-radius:50%;display:inline-block;height:8px;opacity:.2;width:8px}button.swiper-pagination-bullet{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{background:var(--swiper-theme-color);opacity:1}.swiper-container-vertical>.swiper-pagination-bullets{left:10px;top:50%;transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:6px 0}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{right:50%;transform:translateX(50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-theme-color);height:100%;position:absolute;right:0;top:0;transform:scale(0);transform-origin:right top;width:100%}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:left top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:4px;right:0;top:0;width:100%}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{height:100%;right:0;top:0;width:4px}.swiper-pagination-white{--swiper-pagination-color:#fff}.swiper-pagination-black{--swiper-pagination-color:#000}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:rgba(0,0,0,.1);border-radius:10px;position:relative;-ms-touch-action:none}.swiper-container-horizontal>.swiper-scrollbar{bottom:3px;height:5px;position:absolute;right:1%;width:98%;z-index:50}.swiper-container-vertical>.swiper-scrollbar{height:98%;left:3px;position:absolute;top:1%;width:5px;z-index:50}.swiper-scrollbar-drag{background:rgba(0,0,0,.5);border-radius:10px;height:100%;position:relative;right:0;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{-webkit-animation:swiper-preloader-spin 1s linear infinite;animation:swiper-preloader-spin 1s linear infinite;border:4px solid var(--swiper-theme-color);border-radius:50%;border-top:4px solid transparent;box-sizing:border-box;height:42px;margin-right:-21px;margin-top:-21px;position:absolute;right:50%;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@-webkit-keyframes swiper-preloader-spin{to{transform:rotate(-1turn)}}@keyframes swiper-preloader-spin{to{transform:rotate(-1turn)}}.swiper-container .swiper-notification{opacity:0;pointer-events:none;position:absolute;right:0;top:0;z-index:-1000}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:100% 0;visibility:hidden;width:100%;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:0 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:0}.swiper-container-cube .swiper-cube-shadow{bottom:0;height:100%;opacity:.6;position:absolute;right:0;width:100%;z-index:0}.swiper-container-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:0} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/tiled-gallery/view.asset.php b/plugins/jetpack/_inc/blocks/tiled-gallery/view.asset.php
index b9cf8377..fa954769 100644
--- a/plugins/jetpack/_inc/blocks/tiled-gallery/view.asset.php
+++ b/plugins/jetpack/_inc/blocks/tiled-gallery/view.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => 'af838f9c85bb1582f2f4a3d9f67e9721'); \ No newline at end of file
+<?php return array('dependencies' => array('wp-dom-ready', 'wp-polyfill'), 'version' => 'b57019a1383ed0a1cb3559cbec5ac4db'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/tiled-gallery/view.css b/plugins/jetpack/_inc/blocks/tiled-gallery/view.css
index 343fb0a4..24437c79 100644
--- a/plugins/jetpack/_inc/blocks/tiled-gallery/view.css
+++ b/plugins/jetpack/_inc/blocks/tiled-gallery/view.css
@@ -1 +1 @@
-.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;left:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%} \ No newline at end of file
+.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-left:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/tiled-gallery/view.js b/plugins/jetpack/_inc/blocks/tiled-gallery/view.js
index 7eeeaff4..85cca950 100644
--- a/plugins/jetpack/_inc/blocks/tiled-gallery/view.js
+++ b/plugins/jetpack/_inc/blocks/tiled-gallery/view.js
@@ -1 +1 @@
-!function(t,e){for(var n in e)t[n]=e[n]}(window,function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=300)}({18:function(t,e,n){var r=n(65),i=n(66),o=n(67);t.exports=function(t,e){return r(t)||i(t,e)||o()}},22:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return i})),n.d(e,"h",(function(){return o})),n.d(e,"i",(function(){return c})),n.d(e,"c",(function(){return u})),n.d(e,"d",(function(){return a})),n.d(e,"e",(function(){return s})),n.d(e,"f",(function(){return f})),n.d(e,"g",(function(){return h}));var r=["image"],i=4,o=20,c=2e3,u="circle",a="columns",s="rectangular",f="square",h=[{isDefault:!0,name:s},{name:u},{name:f},{name:a}]},300:function(t,e,n){n(42),t.exports=n(301)},301:function(t,e,n){"use strict";n.r(e);var r=n(75),i=n.n(r),o=(n(302),n(39)),c=n(62);function u(t){u.pendingRaf&&cancelAnimationFrame(u.pendingRaf),u.pendingRaf=requestAnimationFrame((function(){u.pendingRaf=null;var e=!0,n=!1,r=void 0;try{for(var i,o=function(){var t=i.value,e=t.contentRect.width;Array.from(t.target.querySelectorAll(".tiled-gallery__row")).forEach((function(t){return Object(c.b)(t,e)}))},a=t[Symbol.iterator]();!(e=(i=a.next()).done);e=!0)o()}catch(s){n=!0,r=s}finally{try{e||null==a.return||a.return()}finally{if(n)throw r}}}))}"undefined"!=typeof window&&i()((function(){var t=Array.from(document.querySelectorAll(".wp-block-jetpack-tiled-gallery.is-style-rectangular > .tiled-gallery__gallery,.wp-block-jetpack-tiled-gallery.is-style-columns > .tiled-gallery__gallery"));if(0!==t.length){var e=new o.a(u);t.forEach((function(t){return e.observe(t)}))}}))},302:function(t,e,n){},36:function(t,e,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&(n.p=window.Jetpack_Block_Assets_Base_Url)},39:function(t,e,n){"use strict";var r=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some((function(t,r){return t[0]===e&&(n=r,!0)})),n}return(function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];t.call(e,i[1],i[0])}},e}())}(),i="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,o="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),c="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(o):function(t){return setTimeout((function(){return t(Date.now())}),1e3/60)};var u=["top","right","bottom","left","width","height","size","weight"],a="undefined"!=typeof MutationObserver,s=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(t,e){var n=!1,r=!1,i=0;function o(){n&&(n=!1,t()),r&&a()}function u(){c(o)}function a(){var t=Date.now();if(n){if(t-i<2)return;r=!0}else n=!0,r=!1,setTimeout(u,e);i=t}return a}(this.refresh.bind(this),20)}return t.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},t.prototype.removeObserver=function(t){var e=this.observers_,n=e.indexOf(t);~n&&e.splice(n,1),!e.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},t.prototype.updateObservers_=function(){var t=this.observers_.filter((function(t){return t.gatherActive(),t.hasActive()}));return t.forEach((function(t){return t.broadcastActive()})),t.length>0},t.prototype.connect_=function(){i&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),a?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){i&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;u.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),f=function(t,e){for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n];Object.defineProperty(t,i,{value:e[i],enumerable:!1,writable:!1,configurable:!0})}return t},h=function(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView||o},d=y(0,0,0,0);function l(t){return parseFloat(t)||0}function p(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce((function(e,n){return e+l(t["border-"+n+"-width"])}),0)}function v(t){var e=t.clientWidth,n=t.clientHeight;if(!e&&!n)return d;var r=h(t).getComputedStyle(t),i=function(t){for(var e={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var i=r[n],o=t["padding-"+i];e[i]=l(o)}return e}(r),o=i.left+i.right,c=i.top+i.bottom,u=l(r.width),a=l(r.height);if("border-box"===r.boxSizing&&(Math.round(u+o)!==e&&(u-=p(r,"left","right")+o),Math.round(a+c)!==n&&(a-=p(r,"top","bottom")+c)),!function(t){return t===h(t).document.documentElement}(t)){var s=Math.round(u+o)-e,f=Math.round(a+c)-n;1!==Math.abs(s)&&(u-=s),1!==Math.abs(f)&&(a-=f)}return y(i.left,i.top,u,a)}var _="undefined"!=typeof SVGGraphicsElement?function(t){return t instanceof h(t).SVGGraphicsElement}:function(t){return t instanceof h(t).SVGElement&&"function"==typeof t.getBBox};function b(t){return i?_(t)?function(t){var e=t.getBBox();return y(0,0,e.width,e.height)}(t):v(t):d}function y(t,e,n,r){return{x:t,y:e,width:n,height:r}}var m=function(){function t(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=y(0,0,0,0),this.target=t}return t.prototype.isActive=function(){var t=b(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},t}(),w=function(t,e){var n,r,i,o,c,u,a,s=(r=(n=e).x,i=n.y,o=n.width,c=n.height,u="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(u.prototype),f(a,{x:r,y:i,width:o,height:c,top:i,right:r+o,bottom:c+i,left:r}),a);f(this,{target:t,contentRect:s})},g=function(){function t(t,e,n){if(this.activeObservations_=[],this.observations_=new r,"function"!=typeof t)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=e,this.callbackCtx_=n}return t.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof h(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new m(t)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof h(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)&&(e.delete(t),e.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach((function(e){e.isActive()&&t.activeObservations_.push(e)}))},t.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map((function(t){return new w(t.target,t.broadcastRect())}));this.callback_.call(t,e,t),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),E="undefined"!=typeof WeakMap?new WeakMap:new r,O=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=s.getInstance(),r=new g(e,n,this);E.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){O.prototype[t]=function(){var e;return(e=E.get(this))[t].apply(e,arguments)}}));var A=void 0!==o.ResizeObserver?o.ResizeObserver:O;e.a=A},42:function(t,e,n){"use strict";n.r(e);n(36)},62:function(t,e,n){"use strict";n.d(e,"b",(function(){return u})),n.d(e,"a",(function(){return a}));var r=n(18),i=n.n(r),o=n(22);function c(t,e){var n=(e-t.reduce((function(t,e){return t+e}),0))/t.length;return t.map((function(t){return t+n}))}function u(t,e){!function(t,e,n){var r=i()(e,2),u=r[0],a=r[1],l=1/u*(n-o.b*(t.childElementCount-1)-a);!function(t,e){var n=e.rawHeight,r=e.rowWidth,i=s(t),u=i.map((function(t){return(n-o.b*(t.childElementCount-1))*h(t)[0]})),a=c(u,r);i.forEach((function(t,e){var r=u[e],i=a[e];!function(t,e){var n=e.colHeight,r=e.width,i=e.rawWidth,o=c(f(t).map((function(t){return i/d(t)})),n);Array.from(t.children).forEach((function(t,e){var n=o[e];t.setAttribute("style","height:".concat(n,"px;width:").concat(r,"px;"))}))}(t,{colHeight:n-o.b*(t.childElementCount-1),width:i,rawWidth:r})}))}(t,{rawHeight:l,rowWidth:n-o.b*(t.childElementCount-1)})}(t,function(t){return s(t).map(h).reduce((function(t,e){var n=i()(t,2),r=n[0],o=n[1],c=i()(e,2);return[r+c[0],o+c[1]]}),[0,0])}(t),e)}function a(t){return Array.from(t.querySelectorAll(".tiled-gallery__row"))}function s(t){return Array.from(t.querySelectorAll(".tiled-gallery__col"))}function f(t){return Array.from(t.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function h(t){var e=f(t),n=e.length,r=1/e.map(d).reduce((function(t,e){return t+1/e}),0);return[r,r*n||1]}function d(t){var e=parseInt(t.dataset.width,10),n=parseInt(t.dataset.height,10);return e&&!Number.isNaN(e)&&n&&!Number.isNaN(n)?e/n:1}},65:function(t,e){t.exports=function(t){if(Array.isArray(t))return t}},66:function(t,e){t.exports=function(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var c,u=t[Symbol.iterator]();!(r=(c=u.next()).done)&&(n.push(c.value),!e||n.length!==e);r=!0);}catch(a){i=!0,o=a}finally{try{r||null==u.return||u.return()}finally{if(i)throw o}}return n}},67:function(t,e){t.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},75:function(t,e){!function(){t.exports=this.wp.domReady}()}})); \ No newline at end of file
+!function(){var t={54166:function(t,e){"use strict";var n=function(){if("undefined"!=typeof Map)return Map;function t(t,e){var n=-1;return t.some((function(t,r){return t[0]===e&&(n=r,!0)})),n}return function(){function e(){this.__entries__=[]}return Object.defineProperty(e.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),e.prototype.get=function(e){var n=t(this.__entries__,e),r=this.__entries__[n];return r&&r[1]},e.prototype.set=function(e,n){var r=t(this.__entries__,e);~r?this.__entries__[r][1]=n:this.__entries__.push([e,n])},e.prototype.delete=function(e){var n=this.__entries__,r=t(n,e);~r&&n.splice(r,1)},e.prototype.has=function(e){return!!~t(this.__entries__,e)},e.prototype.clear=function(){this.__entries__.splice(0)},e.prototype.forEach=function(t,e){void 0===e&&(e=null);for(var n=0,r=this.__entries__;n<r.length;n++){var i=r[n];t.call(e,i[1],i[0])}},e}()}(),r="undefined"!=typeof window&&"undefined"!=typeof document&&window.document===document,i="undefined"!=typeof window&&window.Math===Math?window:"undefined"!=typeof self&&self.Math===Math?self:"undefined"!=typeof window&&window.Math===Math?window:Function("return this")(),o="function"==typeof requestAnimationFrame?requestAnimationFrame.bind(i):function(t){return setTimeout((function(){return t(Date.now())}),1e3/60)};var s=["top","right","bottom","left","width","height","size","weight"],c="undefined"!=typeof MutationObserver,a=function(){function t(){this.connected_=!1,this.mutationEventsAdded_=!1,this.mutationsObserver_=null,this.observers_=[],this.onTransitionEnd_=this.onTransitionEnd_.bind(this),this.refresh=function(t,e){var n=!1,r=!1,i=0;function s(){n&&(n=!1,t()),r&&a()}function c(){o(s)}function a(){var t=Date.now();if(n){if(t-i<2)return;r=!0}else n=!0,r=!1,setTimeout(c,e);i=t}return a}(this.refresh.bind(this),20)}return t.prototype.addObserver=function(t){~this.observers_.indexOf(t)||this.observers_.push(t),this.connected_||this.connect_()},t.prototype.removeObserver=function(t){var e=this.observers_,n=e.indexOf(t);~n&&e.splice(n,1),!e.length&&this.connected_&&this.disconnect_()},t.prototype.refresh=function(){this.updateObservers_()&&this.refresh()},t.prototype.updateObservers_=function(){var t=this.observers_.filter((function(t){return t.gatherActive(),t.hasActive()}));return t.forEach((function(t){return t.broadcastActive()})),t.length>0},t.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),c?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},t.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},t.prototype.onTransitionEnd_=function(t){var e=t.propertyName,n=void 0===e?"":e;s.some((function(t){return!!~n.indexOf(t)}))&&this.refresh()},t.getInstance=function(){return this.instance_||(this.instance_=new t),this.instance_},t.instance_=null,t}(),u=function(t,e){for(var n=0,r=Object.keys(e);n<r.length;n++){var i=r[n];Object.defineProperty(t,i,{value:e[i],enumerable:!1,writable:!1,configurable:!0})}return t},h=function(t){return t&&t.ownerDocument&&t.ownerDocument.defaultView||i},f=b(0,0,0,0);function d(t){return parseFloat(t)||0}function l(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return e.reduce((function(e,n){return e+d(t["border-"+n+"-width"])}),0)}function p(t){var e=t.clientWidth,n=t.clientHeight;if(!e&&!n)return f;var r=h(t).getComputedStyle(t),i=function(t){for(var e={},n=0,r=["top","right","bottom","left"];n<r.length;n++){var i=r[n],o=t["padding-"+i];e[i]=d(o)}return e}(r),o=i.left+i.right,s=i.top+i.bottom,c=d(r.width),a=d(r.height);if("border-box"===r.boxSizing&&(Math.round(c+o)!==e&&(c-=l(r,"left","right")+o),Math.round(a+s)!==n&&(a-=l(r,"top","bottom")+s)),!function(t){return t===h(t).document.documentElement}(t)){var u=Math.round(c+o)-e,p=Math.round(a+s)-n;1!==Math.abs(u)&&(c-=u),1!==Math.abs(p)&&(a-=p)}return b(i.left,i.top,c,a)}var _="undefined"!=typeof SVGGraphicsElement?function(t){return t instanceof h(t).SVGGraphicsElement}:function(t){return t instanceof h(t).SVGElement&&"function"==typeof t.getBBox};function v(t){return r?_(t)?function(t){var e=t.getBBox();return b(0,0,e.width,e.height)}(t):p(t):f}function b(t,e,n,r){return{x:t,y:e,width:n,height:r}}var m=function(){function t(t){this.broadcastWidth=0,this.broadcastHeight=0,this.contentRect_=b(0,0,0,0),this.target=t}return t.prototype.isActive=function(){var t=v(this.target);return this.contentRect_=t,t.width!==this.broadcastWidth||t.height!==this.broadcastHeight},t.prototype.broadcastRect=function(){var t=this.contentRect_;return this.broadcastWidth=t.width,this.broadcastHeight=t.height,t},t}(),w=function(t,e){var n,r,i,o,s,c,a,h=(r=(n=e).x,i=n.y,o=n.width,s=n.height,c="undefined"!=typeof DOMRectReadOnly?DOMRectReadOnly:Object,a=Object.create(c.prototype),u(a,{x:r,y:i,width:o,height:s,top:i,right:r+o,bottom:s+i,left:r}),a);u(this,{target:t,contentRect:h})},y=function(){function t(t,e,r){if(this.activeObservations_=[],this.observations_=new n,"function"!=typeof t)throw new TypeError("The callback provided as parameter 1 is not a function.");this.callback_=t,this.controller_=e,this.callbackCtx_=r}return t.prototype.observe=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof h(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)||(e.set(t,new m(t)),this.controller_.addObserver(this),this.controller_.refresh())}},t.prototype.unobserve=function(t){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if("undefined"!=typeof Element&&Element instanceof Object){if(!(t instanceof h(t).Element))throw new TypeError('parameter 1 is not of type "Element".');var e=this.observations_;e.has(t)&&(e.delete(t),e.size||this.controller_.removeObserver(this))}},t.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},t.prototype.gatherActive=function(){var t=this;this.clearActive(),this.observations_.forEach((function(e){e.isActive()&&t.activeObservations_.push(e)}))},t.prototype.broadcastActive=function(){if(this.hasActive()){var t=this.callbackCtx_,e=this.activeObservations_.map((function(t){return new w(t.target,t.broadcastRect())}));this.callback_.call(t,e,t),this.clearActive()}},t.prototype.clearActive=function(){this.activeObservations_.splice(0)},t.prototype.hasActive=function(){return this.activeObservations_.length>0},t}(),g="undefined"!=typeof WeakMap?new WeakMap:new n,E=function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=a.getInstance(),r=new y(e,n,this);g.set(this,r)};["observe","unobserve","disconnect"].forEach((function(t){E.prototype[t]=function(){var e;return(e=g.get(this))[t].apply(e,arguments)}}));var O=void 0!==i.ResizeObserver?i.ResizeObserver:E;e.Z=O},28526:function(t,e,n){"use strict";n.d(e,{q3:function(){return r}});const r=4},17265:function(t,e,n){"use strict";n.d(e,{i:function(){return o}});var r=n(28526);function i(t,e){const n=(e-t.reduce(((t,e)=>t+e),0))/t.length;return t.map((t=>t+n))}function o(t,e){return function(t,e,n){let[o,h]=e;const f=1/o*(n-r.q3*(t.childElementCount-1)-h);return function(t,e){let{rawHeight:n,rowWidth:o}=e;const h=s(t),f=h.map((t=>(n-r.q3*(t.childElementCount-1))*a(t)[0])),d=i(f,o);h.forEach(((t,e)=>{const o=f[e],s=d[e];!function(t,e){let{colHeight:n,width:r,rawWidth:o}=e;const s=i(c(t).map((t=>o/u(t))),n);Array.from(t.children).forEach(((t,e)=>{const n=s[e];t.setAttribute("style",`height:${n}px;width:${r}px;`)}))}(t,{colHeight:n-r.q3*(t.childElementCount-1),width:s,rawWidth:o})}));return d.map((t=>parseFloat(t/o*100).toFixed(5)))}(t,{rawHeight:f,rowWidth:n-r.q3*(t.childElementCount-1)})}(t,function(t){return s(t).map(a).reduce(((t,e)=>{let[n,r]=t,[i,o]=e;return[n+i,r+o]}),[0,0])}(t),e)}function s(t){return Array.from(t.querySelectorAll(".tiled-gallery__col"))}function c(t){return Array.from(t.querySelectorAll(".tiled-gallery__item > img, .tiled-gallery__item > a > img"))}function a(t){const e=c(t),n=e.length,r=1/e.map(u).reduce(((t,e)=>t+1/e),0);return[r,r*n||1]}function u(t){const e=parseInt(t.dataset.width,10),n=parseInt(t.dataset.height,10);return e&&!Number.isNaN(e)&&n&&!Number.isNaN(n)?e/n:1}},57836:function(t,e,n){"object"==typeof window&&window.Jetpack_Block_Assets_Base_Url&&window.Jetpack_Block_Assets_Base_Url.url&&(n.p=window.Jetpack_Block_Assets_Base_Url.url)},47701:function(t){"use strict";t.exports=window.wp.domReady}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},function(){var t;n.g.importScripts&&(t=n.g.location+"");var e=n.g.document;if(!t&&e&&(e.currentScript&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");r.length&&(t=r[r.length-1].src)}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=t+"../"}(),function(){"use strict";n(57836)}(),function(){"use strict";var t=n(47701),e=n.n(t),r=n(54166),i=n(17265);function o(t){o.pendingRaf&&cancelAnimationFrame(o.pendingRaf),o.pendingRaf=requestAnimationFrame((()=>{o.pendingRaf=null;for(const e of t){const{width:t}=e.contentRect;Array.from(e.target.querySelectorAll(".tiled-gallery__row")).forEach((e=>(0,i.i)(e,t)))}}))}const s=()=>{const t=Array.from(document.querySelectorAll(".wp-block-jetpack-tiled-gallery.is-style-rectangular > .tiled-gallery__gallery,.wp-block-jetpack-tiled-gallery.is-style-columns > .tiled-gallery__gallery"));if(0===t.length)return;const e=new r.Z(o);t.forEach((t=>{"true"!==t.getAttribute("data-jetpack-block-initialized")&&(e.observe(t),t.setAttribute("data-jetpack-block-initialized","true"))}))};"undefined"!=typeof window&&e()(s)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/tiled-gallery/view.rtl.css b/plugins/jetpack/_inc/blocks/tiled-gallery/view.rtl.css
index cd338bec..acc36a96 100644
--- a/plugins/jetpack/_inc/blocks/tiled-gallery/view.rtl.css
+++ b/plugins/jetpack/_inc/blocks/tiled-gallery/view.rtl.css
@@ -1 +1 @@
-.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc((100% - 4px)/2)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc((100% - 8px)/3)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc((100% - 12px)/4)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc((100% - 16px)/5)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc((100% - 20px)/6)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc((100% - 24px)/7)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc((100% - 28px)/8)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc((100% - 32px)/9)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc((100% - 36px)/10)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc((100% - 40px)/11)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc((100% - 44px)/12)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc((100% - 48px)/13)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc((100% - 52px)/14)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc((100% - 56px)/15)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc((100% - 60px)/16)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc((100% - 64px)/17)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc((100% - 68px)/18)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc((100% - 72px)/19)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc((100% - 76px)/20)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.tiled-gallery__gallery{width:100%;display:flex;padding:0;flex-wrap:wrap}.tiled-gallery__row{width:100%;display:flex;flex-direction:row;justify-content:center;margin:0}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{position:relative;filter:contrast(1.1) brightness(1.1) saturate(1.3)}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__1977:after{z-index:3;background:rgba(243,106,188,.3);mix-blend-mode:screen}.tiled-gallery__item.filter__clarendon{position:relative;filter:contrast(1.2) saturate(1.35)}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{position:relative;filter:brightness(1.05) hue-rotate(-10deg)}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;width:100%;top:0;right:0;position:absolute;pointer-events:none}.tiled-gallery__item.filter__gingham:after{z-index:3;background:#e6e6fa;mix-blend-mode:soft-light}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%} \ No newline at end of file
+.wp-block-jetpack-tiled-gallery{margin:0 auto 1.5em}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__item img{border-radius:50%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row{flex-grow:1;width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-1 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-1 .tiled-gallery__col{width:100%}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-2 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-2 .tiled-gallery__col{width:calc(50% - 2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-3 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-3 .tiled-gallery__col{width:calc(33.33333% - 2.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-4 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-4 .tiled-gallery__col{width:calc(25% - 3px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-5 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-5 .tiled-gallery__col{width:calc(20% - 3.2px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-6 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-6 .tiled-gallery__col{width:calc(16.66667% - 3.33333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-7 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-7 .tiled-gallery__col{width:calc(14.28571% - 3.42857px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-8 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-8 .tiled-gallery__col{width:calc(12.5% - 3.5px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-9 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-9 .tiled-gallery__col{width:calc(11.11111% - 3.55556px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-10 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-10 .tiled-gallery__col{width:calc(10% - 3.6px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-11 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-11 .tiled-gallery__col{width:calc(9.09091% - 3.63636px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-12 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-12 .tiled-gallery__col{width:calc(8.33333% - 3.66667px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-13 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-13 .tiled-gallery__col{width:calc(7.69231% - 3.69231px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-14 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-14 .tiled-gallery__col{width:calc(7.14286% - 3.71429px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-15 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-15 .tiled-gallery__col{width:calc(6.66667% - 3.73333px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-16 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-16 .tiled-gallery__col{width:calc(6.25% - 3.75px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-17 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-17 .tiled-gallery__col{width:calc(5.88235% - 3.76471px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-18 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-18 .tiled-gallery__col{width:calc(5.55556% - 3.77778px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-19 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-19 .tiled-gallery__col{width:calc(5.26316% - 3.78947px)}.wp-block-jetpack-tiled-gallery.is-style-circle .tiled-gallery__row.columns-20 .tiled-gallery__col,.wp-block-jetpack-tiled-gallery.is-style-square .tiled-gallery__row.columns-20 .tiled-gallery__col{width:calc(5% - 3.8px)}.wp-block-jetpack-tiled-gallery.is-style-columns .tiled-gallery__item,.wp-block-jetpack-tiled-gallery.is-style-rectangular .tiled-gallery__item{display:flex}.wp-block-jetpack-tiled-gallery.has-rounded-corners-1 .tiled-gallery__item img{border-radius:1px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-2 .tiled-gallery__item img{border-radius:2px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-3 .tiled-gallery__item img{border-radius:3px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-4 .tiled-gallery__item img{border-radius:4px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-5 .tiled-gallery__item img{border-radius:5px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-6 .tiled-gallery__item img{border-radius:6px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-7 .tiled-gallery__item img{border-radius:7px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-8 .tiled-gallery__item img{border-radius:8px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-9 .tiled-gallery__item img{border-radius:9px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-10 .tiled-gallery__item img{border-radius:10px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-11 .tiled-gallery__item img{border-radius:11px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-12 .tiled-gallery__item img{border-radius:12px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-13 .tiled-gallery__item img{border-radius:13px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-14 .tiled-gallery__item img{border-radius:14px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-15 .tiled-gallery__item img{border-radius:15px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-16 .tiled-gallery__item img{border-radius:16px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-17 .tiled-gallery__item img{border-radius:17px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-18 .tiled-gallery__item img{border-radius:18px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-19 .tiled-gallery__item img{border-radius:19px}.wp-block-jetpack-tiled-gallery.has-rounded-corners-20 .tiled-gallery__item img{border-radius:20px}.tiled-gallery__gallery{display:flex;flex-wrap:wrap;padding:0;width:100%}.tiled-gallery__row{display:flex;flex-direction:row;justify-content:center;margin:0;width:100%}.tiled-gallery__row+.tiled-gallery__row{margin-top:4px}.tiled-gallery__col{display:flex;flex-direction:column;justify-content:center;margin:0}.tiled-gallery__col+.tiled-gallery__col{margin-right:4px}.tiled-gallery__item{flex-grow:1;justify-content:center;margin:0;overflow:hidden;padding:0;position:relative}.tiled-gallery__item.filter__black-and-white{filter:grayscale(100%)}.tiled-gallery__item.filter__sepia{filter:sepia(100%)}.tiled-gallery__item.filter__1977{filter:contrast(1.1) brightness(1.1) saturate(1.3);position:relative}.tiled-gallery__item.filter__1977 img{width:100%;z-index:1}.tiled-gallery__item.filter__1977:before{z-index:2}.tiled-gallery__item.filter__1977:after,.tiled-gallery__item.filter__1977:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__1977:after{background:rgba(243,106,188,.3);mix-blend-mode:screen;z-index:3}.tiled-gallery__item.filter__clarendon{filter:contrast(1.2) saturate(1.35);position:relative}.tiled-gallery__item.filter__clarendon img{width:100%;z-index:1}.tiled-gallery__item.filter__clarendon:before{z-index:2}.tiled-gallery__item.filter__clarendon:after,.tiled-gallery__item.filter__clarendon:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__clarendon:after{z-index:3}.tiled-gallery__item.filter__clarendon:before{background:rgba(127,187,227,.2);mix-blend-mode:overlay}.tiled-gallery__item.filter__gingham{filter:brightness(1.05) hue-rotate(-10deg);position:relative}.tiled-gallery__item.filter__gingham img{width:100%;z-index:1}.tiled-gallery__item.filter__gingham:before{z-index:2}.tiled-gallery__item.filter__gingham:after,.tiled-gallery__item.filter__gingham:before{content:"";display:block;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:100%}.tiled-gallery__item.filter__gingham:after{background:#e6e6fa;mix-blend-mode:soft-light;z-index:3}.tiled-gallery__item+.tiled-gallery__item{margin-top:4px}.tiled-gallery__item>img{background-color:rgba(0,0,0,.1)}.tiled-gallery__item>a,.tiled-gallery__item>a>img,.tiled-gallery__item>img{display:block;height:auto;margin:0;max-width:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;padding:0;width:100%}.is-email .tiled-gallery__gallery{display:block} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/blocks/upgrade-nudge.html b/plugins/jetpack/_inc/blocks/upgrade-nudge.html
index 2f69e1bd..71b084c2 100644
--- a/plugins/jetpack/_inc/blocks/upgrade-nudge.html
+++ b/plugins/jetpack/_inc/blocks/upgrade-nudge.html
@@ -1 +1 @@
-<div class="jetpack-block-nudge editor-warning block-editor-warning"><div class="editor-warning__contents block-editor-warning__contents"><p class="editor-warning__message block-editor-warning__message"><span class="jetpack-block-nudge__info"><svg class="gridicon gridicons-star jetpack-upgrade-nudge__icon needs-offset" height="18" width="18" aria-hidden="true" role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><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"></path></g></svg><span class="jetpack-block-nudge__text-container"><span class="jetpack-block-nudge__title"><span><?php esc_html_e( 'Upgrade to %(planName)s to use this block on your site.', 'jetpack' ) ?></span></span><span class="jetpack-block-nudge__message"><span><?php esc_html_e( 'You can try it out before upgrading, but only you will see it. It will be hidden from your visitors until you upgrade.', 'jetpack' ) ?></span></span></span></span></p><div class="editor-warning__actions block-editor-warning__actions"><span class="editor-warning__action block-editor-warning__action"><a href="#upgradeUrl#" target="_top" class="components-button is-button is-default"><span><?php esc_html_e( 'Upgrade', 'jetpack' ) ?></span></a></span></div></div></div> \ No newline at end of file
+<div class="jetpack-upgrade-plan-banner"><div class="jetpack-upgrade-plan-banner__wrapper"><span class="undefined__description banner-description"><span><?php esc_html_e( 'Upgrade your plan to use this premium block', 'jetpack' ) ?></span></span><a href="#checkoutUrl#" target="_top" class="components-button is-primary"><span><?php esc_html_e( 'Upgrade', 'jetpack' ) ?></span></a></div></div> \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/accessible-focus.min.asset.php b/plugins/jetpack/_inc/build/accessible-focus.min.asset.php
new file mode 100644
index 00000000..e3d6fccf
--- /dev/null
+++ b/plugins/jetpack/_inc/build/accessible-focus.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '4df1bc550cbde9d82e20a5d4459b0fb2'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/accessible-focus.min.js b/plugins/jetpack/_inc/build/accessible-focus.min.js
index 0c394f6a..c9ac75c3 100644
--- a/plugins/jetpack/_inc/build/accessible-focus.min.js
+++ b/plugins/jetpack/_inc/build/accessible-focus.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-var keyboardNavigation=!1,keyboardNavigationKeycodes=[9,32,37,38,39,40];document.addEventListener("keydown",function(e){keyboardNavigation||-1!==keyboardNavigationKeycodes.indexOf(e.keyCode)&&(keyboardNavigation=!0,document.documentElement.classList.add("accessible-focus"))}),document.addEventListener("mouseup",function(){keyboardNavigation&&(keyboardNavigation=!1,document.documentElement.classList.remove("accessible-focus"))}); \ No newline at end of file
+!function(){var e=!1,n=[9,32,37,38,39,40];document.addEventListener("keydown",(function(c){e||-1!==n.indexOf(c.keyCode)&&(e=!0,document.documentElement.classList.add("accessible-focus"))})),document.addEventListener("mouseup",(function(){e&&(e=!1,document.documentElement.classList.remove("accessible-focus"))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/admin.asset.php b/plugins/jetpack/_inc/build/admin.asset.php
index 9d8ef2bd..89fb0125 100644
--- a/plugins/jetpack/_inc/build/admin.asset.php
+++ b/plugins/jetpack/_inc/build/admin.asset.php
@@ -1 +1 @@
-<?php return array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-polyfill'), 'version' => '50e8aa89ff2319d194b161484696a56a'); \ No newline at end of file
+<?php return array('dependencies' => array('lodash', 'moment', 'react', 'react-dom', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '28d4a28b19d5e48a0e0a8ce660ef3aa3'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/admin.css b/plugins/jetpack/_inc/build/admin.css
index 3bff5f6a..ce881e1e 100644
--- a/plugins/jetpack/_inc/build/admin.css
+++ b/plugins/jetpack/_inc/build/admin.css
@@ -1 +1 @@
-.dops-button{background:#f3f5f6;border:1px solid #0071a1;color:#0071a1;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:13px;border-radius:3px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dops-button:hover{background:#f1f1f1;border-color:#016087;color:#016087}.dops-button:disabled,.dops-button[disabled]{color:#eee;background:#fff;border-color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#0071a1;box-shadow:0 0 0 1px #0071a1}.dops-button.is-compact{padding:0 10px;line-height:2}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{top:4px;margin-top:-8px}.dops-button.is-compact .gridicons-plus-small{margin-left:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-left:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-left:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}.dops-button.is-primary{background:#007cba;border-color:#007cba;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{border-color:#0071a1;background:#0071a1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0071a1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{color:#66c6e4!important;background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;text-shadow:none!important;cursor:default}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{color:#f4cdcd;border-color:#eee}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-left:0;padding-right:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{width:24px;height:24px;top:6px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{color:#eee;background:#fff;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{width:18px;height:18px;top:5px}.dops-button-group .dops-button{border-left-width:0;border-radius:0}.dops-button-group .dops-button:focus{position:relative;z-index:z-index("button-group-parent",".button-group .button:focus")}.dops-button-group .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0071a1}.dops-button-group .dops-button.is-scary:focus{box-shadow:inset 1px 0 0 #d94f4f,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-primary.is-scary:focus{box-shadow:inset 1px 0 0 #761919,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-scary:first-child:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button-group .dops-button:first-child{border-left-width:1px;border-top-left-radius:4px;border-bottom-left-radius:4px}.dops-button-group .dops-button:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.dops-section-header .dops-button-group .dops-button{margin-right:0}.dops-count{display:inline-block;padding:.0625rem .375rem;border:1px solid #a2a2a2;border-radius:.75rem;font-size:.6875rem;font-weight:600;line-height:.875rem;color:#a2a2a2;text-align:center}.dops-select-dropdown{height:43px}.dops-select-dropdown.is-compact{height:28px}.dops-select-dropdown.is-disabled .dops-select-dropdown__header{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-select-dropdown__container{position:relative;overflow:hidden;display:inline-block;width:auto;max-width:100%}.dops-select-dropdown.is-open .dops-select-dropdown__container{z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container,.dops-accessible-focus .dops-select-dropdown__container:focus{z-index:170;box-shadow:0 0 0 2px #78dcfa}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container .select-dropdown__header,.dops-accessible-focus .dops-select-dropdown__container:focus .select-dropdown__header{border-color:#0087be}.dops-accessible-focus .dops-select-dropdown__container:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;border-radius:4px}.dops-select-dropdown__header{padding:11px 44px 11px 16px;border:solid #d5d5d5;border-width:1px 1px 2px;border-radius:4px;background-color:#fff;font-size:14px;font-weight:600;line-height:18px;height:18px;color:#414141;transition:background-color .2s ease;cursor:pointer}.dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons;content:"\f347";position:absolute;right:13px;top:12px;display:block;line-height:18px;color:hsla(0,0%,63.5%,.5)}.is-compact .dops-select-dropdown__header:after{right:4px;top:4px}.is-compact .dops-select-dropdown__header{padding:7px;color:#888;font-size:11px;line-height:1;text-transform:uppercase}.is-compact .dops-select-dropdown__header .dops-count{border-width:0;margin-left:0;line-height:1}.dops-select-dropdown.is-open .dops-select-dropdown__header{border-radius:4px 4px 0 0;box-shadow:none;background-color:#f6f6f6}.dops-select-dropdown.is-open .dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons;content:"\f343"}.dops-select-dropdown__header .dops-count{margin-left:8px}.dops-select-dropdown__header-text{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dops-select-dropdown__options{visibility:hidden;height:0;box-sizing:border-box;padding:0;list-style:none;margin:-2px 0 0;background-color:#fff;border:1px solid #d5d5d5;border-radius:0 0 4px 4px}.dops-accessible-focus .dops-select-dropdown__options{border:1px solid #0087be;border-top-color:#d5d5d5}.dops-select-dropdown.is-open .dops-select-dropdown__options{visibility:visible;height:auto}.dops-select-dropdown__option:last-child .dops-select-dropdown__item{border-radius:0 0 4px 4px}.dops-select-dropdown__item,.dops-select-dropdown__item-text{padding:11px 44px 11px 16px}.dops-select-dropdown__item{display:block;position:relative;font-size:14px;font-weight:400;line-height:18px;color:#414141;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer}.dops-select-dropdown__item:before{content:attr(data-bold-text);font-weight:700;opacity:0}.dops-select-dropdown__item:visited{color:#414141}.dops-select-dropdown__item.is-selected{background-color:#007cba;color:#fff}.dops-select-dropdown__item.is-disabled{background-color:#fff;color:#a2a2a2;cursor:default;opacity:.5}.notouch .dops-select-dropdown__item:hover{color:#007cba}.notouch .dops-select-dropdown__item.is-selected:hover{color:#fff}.dops-select-dropdown__item-text{padding-right:16px;box-sizing:border-box;position:absolute;top:0;left:0;width:100%;white-space:nowrap;text-overflow:ellipsis;color:inherit;display:flex;flex-flow:row wrap;justify-content:space-between}.dops-select-dropdown__item-text .dops-count{color:inherit;border-color:inherit}.dops-select-dropdown__separator{border-top:1px solid #d5d5d5;display:block;margin:8px 0}.dops-select-dropdown__label{display:block;color:#bbb;margin-top:5px;line-height:20px}.dops-select-dropdown__label label{font-size:12px;text-transform:uppercase;padding:0 16px}@keyframes rotate-spinner__right{0%{transform:rotate(0deg)}25%{transform:rotate(180deg)}50%{transform:rotate(180deg)}75%{transform:rotate(1turn)}to{transform:rotate(1turn)}}@keyframes rotate-spinner__left{0%{transform:rotate(0deg)}25%{transform:rotate(0deg)}50%{transform:rotate(180deg)}75%{transform:rotate(180deg)}to{transform:rotate(1turn)}}.dops-spinner.is-fallback{position:relative;border-radius:100%;background-color:#d5d5d5}.dops-spinner.is-fallback:after,.dops-spinner.is-fallback:before{content:"";position:absolute;background-color:#fff;border-radius:50%}.dops-spinner.is-fallback:before{width:90%;height:90%;top:5%;left:5%}.dops-spinner.is-fallback:after{width:70%;height:70%;top:15%;left:15%}.dops-spinner__image{display:block}.dops-spinner__border{fill:#d5d5d5}.dops-spinner__progress{animation:3s linear infinite;transform-origin:50px 50px;fill:#007cba}.dops-spinner.is-fallback .dops-spinner__progress{position:absolute;overflow:hidden;width:50%;height:100%;animation:none}.dops-spinner.is-fallback .dops-spinner__progress:before{content:"";position:absolute;width:100%;height:100%;animation:3s linear infinite;border-radius:9999px;background-color:#007cba;fill:none}.dops-spinner.is-fallback .dops-spinner__progress.is-left{left:0}.dops-spinner.is-fallback .dops-spinner__progress.is-left:before{left:100%;border-top-left-radius:0;border-bottom-left-radius:0;transform-origin:0 50%}.dops-spinner.is-fallback .dops-spinner__progress.is-right{left:50%}.dops-spinner.is-fallback .dops-spinner__progress.is-right:before{left:-100%;border-top-right-radius:0;border-bottom-right-radius:0;transform-origin:100% 50%}.dops-spinner.is-fallback .dops-spinner__progress.is-left:before,.dops-spinner__progress.is-left{animation-name:rotate-spinner__left}.dops-spinner.is-fallback .dops-spinner__progress.is-right:before,.dops-spinner__progress.is-right{animation-name:rotate-spinner__right}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(1px,1px)}.gridicon.needs-offset-x g{transform:translate(1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-search{display:flex;flex:1 1 auto;margin-bottom:24px;width:60px;height:51px;position:relative;align-items:center;z-index:22;transition:all .15s ease-in-out}.dops-search .dops-search__icon-navigation{flex:0 0 auto;display:flex;align-items:center;background-color:#fff;border-radius:inherit;height:100%}.dops-search .dops-search__close-icon,.dops-search .dops-search__open-icon{flex:0 0 auto;width:50px;z-index:20;color:#0087be;cursor:pointer}.accessible-focus .dops-search .dops-search__close-icon:focus,.accessible-focus .dops-search .dops-search__open-icon:focus{outline:1px dotted #0087be}.dops-search .dops-search__open-icon:hover{color:#555}.dops-search .dops-search__close-icon{color:#555;opacity:0;transition:opacity .2s ease-in}.accessible-focus .dops-search.has-focus{box-shadow:0 0 0 1px #0087be,0 0 0 4px #78dcfa}.dops-search.is-expanded-to-container{margin-bottom:0;position:absolute;display:flex;height:100%;width:50px;top:0;right:0;overflow:hidden}.dops-search.is-expanded-to-container .dops-search__input-fade{position:relative;flex:1 1 auto;display:flex}.dops-search.is-expanded-to-container .dops-search__input[type=search]{flex:1 1 auto;display:flex;margin:0;box-shadow:none}.dops-search__input[type=search]{flex:1 1 auto;display:none;z-index:10;top:0;border:none;border-radius:inherit;height:100%;background:#fff;-moz-appearance:none;appearance:none;box-sizing:border-box;padding:0;-webkit-appearance:none}.dops-search__input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.dops-search__input[type=search]:focus{box-shadow:none;border:none}.dops-search.is-open{width:100%}.dops-search.is-open .dops-search__open-icon{color:#555}.dops-search.is-open .dops-search__close-icon{display:inline-block}.dops-search.is-open .dops-search__close-icon,.dops-search.is-open .dops-search__input{opacity:1}.dops-search.is-open .dops-search__input{display:block}.dops-search.is-open .dops-search__input-fade{flex:1 1 auto;height:100%;position:relative;font-size:16px;border-radius:inherit}.dops-search.is-open .dops-search__input-fade.ltr:before,.dops-search.is-open .dops-search__input-fade:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;z-index:12;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;right:0;left:auto;width:32px;height:auto;border-radius:inherit}.dops-search__input-fade .dops-search__text-overlay{color:transparent;position:absolute;pointer-events:none;white-space:nowrap;display:flex;align-items:center;flex:1 1 auto;overflow:hidden;font:inherit;width:100%;height:100%;top:0;left:0;z-index:11}.dops-search .dops-spinner,.dops-search.is-searching .dops-search__open-icon{display:none}.dops-search.is-searching .dops-spinner{flex:0 0 auto;display:flex;align-items:center;height:100%;z-index:20}.dops-search.is-searching .dops-spinner .dops-spinner__image{width:50px}.animating.dops-search-opening .dops-search input{opacity:1}.dops-section-nav{position:relative;width:100%;padding:0;margin:0 0 17px;background:#fff;box-sizing:border-box;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04)}.dops-section-nav.is-empty .dops-section-nav__panel{visibility:hidden}@media (max-width:480px){.dops-section-nav.is-open{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}}@media (min-width:481px){.dops-section-nav.has-pinned-items{padding-right:60px}}@media (min-width:481px) and (max-width:660px){.dops-section-nav.has-pinned-items{padding-right:50px}}@media (max-width:660px){.dops-section-nav{margin-bottom:9px}}.dops-section-nav__mobile-header{display:flex;padding:15px;font-size:14px;line-height:16px;color:#414141;font-weight:600;cursor:pointer}.dops-section-nav__mobile-header:after{content:"\f347";line-height:16px;color:hsla(0,0%,63.5%,.5)}.dops-section-nav.is-open .dops-section-nav__mobile-header:after,.dops-section-nav__mobile-header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons}.dops-section-nav.is-open .dops-section-nav__mobile-header:after{content:"\f343"}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header{padding-right:50px}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header:after{margin-left:8px}@media (min-width:481px){.dops-section-nav__mobile-header{display:none}}.dops-section-nav__mobile-header-text{width:0;flex:1 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dops-section-nav__mobile-header-text small{margin-left:5px;font-size:11px;color:#a2a2a2;font-weight:600;text-transform:uppercase}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header-text{width:auto;flex:0 1 auto}.dops-section-nav__panel{box-sizing:border-box;width:100%}@media (max-width:480px){.dops-section-nav.is-open .dops-section-nav__panel{padding-bottom:15px;border-top:1px solid #d5d5d5;background:linear-gradient(180deg,#f6f6f6 0,#fff 4px)}}@media (min-width:481px){.dops-section-nav__panel{display:flex;align-items:center}.dops-section-nav__panel:first-child{width:0;flex:1 0 auto}}.dops-section-nav-group{position:relative;margin-top:16px;padding-top:16px;border-top:1px solid #d5d5d5}.dops-section-nav-group:first-child{padding-top:0;border-top:none}@media (max-width:480px){.dops-section-nav-group{display:none}.dops-section-nav.is-open .dops-section-nav-group{display:block}}@media (min-width:481px){.dops-section-nav-group{margin-top:0;padding-top:0;border-top:none}.dops-section-nav-group:first-child{display:flex;width:0;flex:1 0 auto}}.dops-section-nav__button{width:100%;margin-top:24px}.dops-section-nav__hr{background:#eee}.dops-section-nav-group__label{display:none;margin-bottom:8px;padding:0 15px;font-size:11px;color:#a2a2a2;font-weight:600;text-transform:uppercase;line-height:12px}@media (max-width:480px){.has-siblings .dops-section-nav-group__label{display:block}}.dops-section-nav-group__label-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dops-section-nav-tab .count{margin-left:8px}@media (min-width:481px){.dops-section-nav-tabs{width:0;flex:1 0 auto}.dops-section-nav-tabs.is-dropdown{position:relative;width:auto;flex:0 1 auto;margin:8px}}.dops-section-nav-tabs__list{margin:0;list-style:none}@media (min-width:481px){.dops-section-nav-tabs__list{display:flex;width:100%;overflow:hidden}.is-dropdown .dops-section-nav-tabs__list{display:none}}.dops-section-nav-tab{margin-bottom:0}@media (min-width:481px){.dops-section-nav-tab{width:auto;flex:none;border-bottom:2px solid transparent;border-top:none;text-align:center}.dops-section-nav-tab.is-selected{border-bottom-color:#414141}}.dops-section-nav-tab__link,.dops-section-nav-tab__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dops-section-nav-tab__link{display:flex;align-items:center;box-sizing:border-box;padding:15px;width:100%;font-size:14px;font-weight:600;line-height:18px;color:#414141;cursor:pointer}.dops-section-nav-tab__link:visited{color:#414141}.dops-section-nav-tab__link[disabled],.notouch .dops-section-nav-tab__link[disabled]:hover{color:#eee;cursor:default}.is-selected .dops-section-nav-tab__link{color:#fff;background-color:#0071a1}.dops-section-nav-tab__link:focus{outline:none;box-shadow:none}.dops-accessible-focus .dops-section-nav-tab__link:focus{outline:1px solid #a2a2a2}.is-external .dops-section-nav-tab__link:after{font-size:18px;padding-left:2px}.dops-section-nav-tab__link:hover{color:#016087}.notouch .dops-section-nav-tab__link:hover{color:#0071a1}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#fff}@media (min-width:481px){.dops-section-nav-tab__link{display:block;width:auto;padding:16px 16px 14px;color:#0071a1;font-weight:400}.dops-section-nav-tab__link:visited{color:#0071a1}.is-selected .dops-section-nav-tab__link{color:#414141;background-color:transparent}.is-selected .dops-section-nav-tab__link:after{display:none}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#414141}}.dops-section-nav-tab__text{display:block;flex:1 0 auto;width:0;color:inherit}@media (min-width:481px){.dops-section-nav-tab__text{display:inline;flex:none;width:auto}}.dops-section-nav-tabs__dropdown{position:relative;z-index:3;width:100%}.dops-section-nav-tabs__dropdown.is-open{z-index:4}.dops-section-nav-tabs__dropdown .dops-select-dropdown__container{position:static}.dops-section-nav__segmented .dops-segmented-control{margin:0 15px}.dops-section-nav__segmented .dops-segmented-control__link{padding:3px 16px 5px}@media (max-width:480px){.dops-section-nav .dops-search.is-pinned{height:46px}}.dops-card{display:block;position:relative;margin:0 auto 10px;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04)}.dops-card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media (min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-right:48px}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;position:absolute;top:0;right:16px}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#007cba,20%)}.dops-text-input.dops-text-input{box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#414141;font-size:16px;line-height:1.5;border:1px solid #d5d5d5;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.dops-text-input.dops-text-input:-ms-input-placeholder{color:#a2a2a2}.dops-text-input.dops-text-input::-ms-input-placeholder{color:#a2a2a2}.dops-text-input.dops-text-input::placeholder{color:#a2a2a2}.dops-text-input.dops-text-input:hover{border-color:#bbb}.dops-text-input.dops-text-input:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.dops-text-input.dops-text-input:focus::-ms-clear{display:none}.dops-text-input.dops-text-input:disabled{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-text-input.dops-text-input:disabled:hover{cursor:default}.dops-text-input.dops-text-input:disabled:-ms-input-placeholder{color:#bbb}.dops-text-input.dops-text-input:disabled::-ms-input-placeholder{color:#bbb}.dops-text-input.dops-text-input:disabled::placeholder{color:#bbb}.dops-text-input.dops-text-input{-webkit-appearance:none}.dops-text-input.dops-text-input.is-valid{border-color:#4ab866}.dops-text-input.dops-text-input.is-valid:hover{border-color:#3a9551}.dops-text-input.dops-text-input.is-error{border-color:#d94f4f}.dops-text-input.dops-text-input.is-error:hover{border-color:#c92c2c}.dops-text-input.dops-text-input:focus.is-valid{box-shadow:0 0 0 2px #caead2}.dops-text-input.dops-text-input:focus.is-valid:hover{box-shadow:0 0 0 2px #a6dcb3}.dops-text-input.dops-text-input:focus.is-error{box-shadow:0 0 0 2px #f9e2e2}.dops-text-input.dops-text-input:focus.is-error:hover{box-shadow:0 0 0 2px #f0b8b8}.dops-popover{font-size:11px;z-index:1000;position:absolute;top:0;left:0;right:auto}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);text-align:center;position:relative}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{bottom:0;left:50%;margin-left:-10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{bottom:2px;content:" ";position:absolute;left:50%;margin-left:-10px;border:10px solid transparent;border-top-color:#fff;border-bottom:none}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{top:0;left:50%;margin-left:-10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{top:2px;content:" ";position:absolute;left:50%;margin-left:-10px;border:10px solid transparent;border-top:none;border-bottom:10px solid #fff}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{right:0;top:50%;margin-top:-10px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{right:2px;content:" ";position:absolute;top:50%;margin-top:-10px;border:10px solid transparent;border-right:none;border-left:10px solid #fff}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{left:0;top:50%;margin-top:-10px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{left:2px;content:" ";position:absolute;top:50%;margin-top:-10px;border:10px solid transparent;border-right-color:#fff;border-left:none}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-right:0;padding-left:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;right:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{position:relative;background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;text-align:left;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#007cba;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-left:42px}.dops-popover__menu-item .gridicon{color:#bbb;vertical-align:bottom;margin-right:8px}.dops-popover__hr{margin:8px 0;background:#eee}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{flex:none;position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;outline:0;cursor:pointer;transition:all .4s ease,box-shadow 0s}.form-toggle__switch:after,.form-toggle__switch:before{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{left:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #007cba}.form-toggle__label{display:flex;cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-left:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #007cba}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#007cba}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#007cba}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px}.dops-section-header.dops-card{display:flex;flex-wrap:wrap;max-width:100%;padding-top:.6875rem;padding-bottom:.6875rem;position:relative}.dops-section-header.dops-card:after{content:""}.dops-section-header__label{display:flex;align-items:center;flex-grow:1;min-width:0;line-height:1.75rem;position:relative;color:#414141;font-size:.875rem}.dops-section-header__label .dops-count{margin-left:.5rem}.dops-section-header__label-text{position:relative;margin-right:.5rem;white-space:nowrap;overflow:hidden;width:100%;padding-right:.5rem;min-width:0}.dops-section-header__label-text:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;right:0;left:auto;width:8px;height:auto}.has-card-badge .dops-section-header__label-text{width:auto}.dops-section-header__actions{flex-grow:0;position:relative}.dops-section-header__actions:after{content:".";display:block;height:0;clear:both;visibility:hidden}.section-header__actions .button{float:left;margin-right:.5rem}.section-header__actions .button:last-child{margin-right:0}.dops-notice{display:flex;position:relative;width:100%;margin-bottom:24px;box-sizing:border-box;animation:appear .3s ease-in-out;background:#414141;color:#fff;border-radius:3px;line-height:1.5}.dops-notice.is-success .dops-notice__icon-wrapper{background:#4ab866}.dops-notice.is-warning .dops-notice__icon-wrapper{background:#f0b849}.dops-notice.is-error .dops-notice__icon-wrapper{background:#d94f4f}.dops-notice.is-info .dops-notice__icon-wrapper{background:#007cba}.dops-notice .dops-notice__dismiss,.dops-notice.is-error .dops-notice__dismiss,.dops-notice.is-info .dops-notice__dismiss,.dops-notice.is-success .dops-notice__dismiss,.dops-notice.is-warning .dops-notice__dismiss{overflow:hidden}.dops-notice__icon-wrapper{background:#747474;color:#fff;display:flex;align-items:baseline;width:47px;justify-content:center;border-radius:3px 0 0 3px;flex-shrink:0;align-self:stretch}.dops-notice__icon-wrapper .gridicon{margin-top:10px}@media (min-width:481px){.dops-notice__icon-wrapper .gridicon{margin-top:12px}}.dops-notice__content{padding:13px;font-size:12px;flex-grow:1}@media (min-width:481px){.dops-notice__content{font-size:14px}}.dops-notice__text a.dops-notice__text-no-underline{text-decoration:none}.dops-notice__text a,.dops-notice__text a:visited{text-decoration:underline;color:#fff}.dops-notice__text a:hover,.dops-notice__text a:visited:hover{color:#fff;text-decoration:none}.dops-notice__text ul{margin-bottom:0;margin-left:0}.dops-notice__text li{margin-left:2em;margin-top:.5em}.dops-notice__text p{margin-bottom:0;margin-top:.5em}.dops-notice__text p:first-child{margin-top:0}.dops-notice__button{cursor:pointer;margin-left:.428em}.dops-notice__dismiss{flex-shrink:0;cursor:pointer;padding:12px 12px 0}.dops-notice__dismiss .gridicon{width:18px;height:18px}@media (min-width:481px){.dops-notice__dismiss{padding:11px 11px 0}.dops-notice__dismiss .gridicon{width:24px;height:24px}}.dops-notice .dops-notice__dismiss{color:#bbb}.dops-notice .dops-notice__dismiss:focus,.dops-notice .dops-notice__dismiss:hover{color:#fff}a.dops-notice__action{cursor:pointer;font-size:12px;font-weight:400;text-decoration:none;white-space:nowrap;color:#bbb;padding:13px;display:flex;align-items:center}@media (min-width:481px){a.dops-notice__action{flex-shrink:1;flex-grow:0;align-items:center;border-radius:0;font-size:14px;margin:0 0 0 auto;padding:13px 16px}a.dops-notice__action .gridicon{width:24px;height:24px}}a.dops-notice__action:visited{color:#bbb}a.dops-notice__action:hover{color:#fff}a.dops-notice__action .gridicon{margin-left:8px;opacity:.7;width:18px;height:18px}.dops-notice.is-compact{display:inline-flex;flex-wrap:nowrap;flex-direction:row;width:auto;border-radius:3px;min-height:20px;margin:0;padding:0;text-decoration:none;text-transform:none;vertical-align:middle;line-height:1.5}.dops-notice.is-compact .dops-notice__content{font-size:12px;padding:6px 10px}.dops-notice.is-compact .dops-notice__icon-wrapper{width:28px}.dops-notice.is-compact .dops-notice__icon-wrapper .dops-notice__icon{width:18px;height:18px;margin:0}.dops-notice.is-compact .dops-notice__icon-wrapper .gridicon{margin-top:6px}.dops-notice.is-compact .dops-notice__dismiss{position:relative;align-self:center;flex:none;margin:0 8px 0 0;padding:0}.dops-notice.is-compact .dops-notice__dismiss .gridicon{width:18px;height:18px}.dops-notice.is-compact a.dops-notice__action{background:transparent;display:inline-block;font-size:12px;align-self:center;margin:0 0 0 16px;padding:0 10px}.dops-notice.is-compact a.dops-notice__action:active,.dops-notice.is-compact a.dops-notice__action:focus,.dops-notice.is-compact a.dops-notice__action:hover{background:transparent}.dops-notice.is-compact a.dops-notice__action .gridicon{margin-left:8px;width:14px;height:14px;vertical-align:sub;opacity:1}.dops-plan-icon{width:inherit;height:inherit;background-repeat:no-repeat}.dops-plan-icon__free .dops-plan-icon__free-0{fill:#78dcfa}.dops-plan-icon__free .dops-plan-icon__free-1{fill:#fff}.dops-plan-icon__free .dops-plan-icon__free-2{fill:#006a95}.dops-plan-icon__free .dops-plan-icon__free-3{fill:#0087be}.dops-plan-icon__free .dops-plan-icon__free-4{fill:#00a4e7}.dops-plan-icon__personal .dops-plan-icon__personal-0{fill:#f0b849}.dops-plan-icon__personal .dops-plan-icon__personal-1{fill:#a2a2a2}.dops-plan-icon__personal .dops-plan-icon__personal-2{fill:#d5d5d5}.dops-plan-icon__personal .dops-plan-icon__personal-3{fill:#fff}.dops-plan-icon__personal .dops-plan-icon__personal-4{fill:#888}.dops-plan-icon__personal .dops-plan-icon__personal-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-0{fill:#4ab866}.dops-plan-icon__premium .dops-plan-icon__premium-1{fill:#a2a2a2}.dops-plan-icon__premium .dops-plan-icon__premium-2{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-3{fill:#fff}.dops-plan-icon__premium .dops-plan-icon__premium-4{fill:#d5d5d5}.dops-plan-icon__premium .dops-plan-icon__premium-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-6{fill:#555}.dops-plan-icon__business .dops-plan-icon__business-0{fill:#855da6}.dops-plan-icon__business .dops-plan-icon__business-1{fill:#fff}.dops-plan-icon__business .dops-plan-icon__business-2{fill:#eee}.dops-plan-icon__business .dops-plan-icon__business-3{fill:#0087be}.dops-plan-icon__business .dops-plan-icon__business-4{fill:#005082}.dops-banner.dops-card{display:flex;padding:12px 6px 12px 12px;position:relative;z-index:2;border-left:3px solid #0087be}.dops-banner.dops-card.is-card-link{padding:12px 48px 12px 16px}.dops-banner.dops-card.is-dismissible{padding-right:48px}.dops-banner.dops-card .dops-banner__icon{color:#0087be}.dops-banner.dops-card .dops-banner__icon-circle{background-color:#0087be}.dops-banner.dops-card.is-jetpack-info{border-left-color:#00be28}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon{color:#00be28}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon-circle{background-color:#00be28}.dops-banner.dops-card.is-upgrade-personal{border-left-color:#f0b849}.dops-banner.dops-card.is-upgrade-personal .dops-banner__icon{color:#f0b849}.dops-banner.dops-card.is-upgrade-personal .dops-banner__icon-circle{background-color:#f0b849}.dops-banner.dops-card.is-upgrade-premium{border-left-color:#4ab866}.dops-banner.dops-card.is-upgrade-premium .dops-banner__icon{color:#4ab866}.dops-banner.dops-card.is-upgrade-premium .dops-banner__icon-circle{background-color:#4ab866}.dops-banner.dops-card.is-upgrade-business{border-left-color:#855da6}.dops-banner.dops-card.is-upgrade-business .dops-banner__icon{color:#855da6}.dops-banner.dops-card.is-upgrade-business .dops-banner__icon-circle{background-color:#855da6}.dops-banner.dops-card .dops-card__link-indicator{align-items:center;color:#0087be;display:flex}.dops-banner.dops-card:hover{transition:all .1s ease-in-out}.dops-banner.dops-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.dops-banner.dops-card:hover .dops-card__link-indicator{color:#005082}@media (min-width:481px){.dops-banner.dops-card{padding:12px 16px}.dops-banner.dops-card.is-dismissible{padding-right:16px}}.dops-banner__icons{display:flex}.dops-banner__icons .dops-banner__icon,.dops-banner__icons .dops-banner__icon-circle{border-radius:50%;flex-shrink:0;height:24px;margin-right:16px;margin-top:-2px;text-align:center;top:4px;width:24px}.dops-banner__icons .dops-banner__icon{align-self:center;color:#fff;display:block}.dops-banner__icons .dops-banner__icon-circle{color:#fff;display:none;padding:3px 4px 4px 3px}.dops-banner__icons .dops-banner__icon-circle .gridicon{margin-bottom:-7px}@media (min-width:481px){.dops-banner__icons{align-items:center}.dops-banner__icons .dops-banner__icon{display:none}.dops-banner__icons .dops-banner__icon-circle{display:block}}.dops-banner__icon-plan{display:flex;margin-right:16px}.dops-banner__icon-plan .dops-plan-icon{height:32px;width:32px}@media (min-width:481px){.dops-banner__icon-plan{align-items:center}}.dops-banner__content{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}@media (min-width:481px){.dops-banner__content{flex-wrap:nowrap}}.dops-banner__info{flex-grow:1;line-height:1.4;width:100%}.dops-banner__info .dops-banner__description,.dops-banner__info .dops-banner__list,.dops-banner__info .dops-banner__title{color:#414141}.dops-banner__info .dops-banner__title{font-size:14px;font-weight:500}.dops-banner__info .dops-banner__description{font-size:12px;margin-top:3px}.dops-banner__info .dops-banner__list{font-size:12px;list-style:none;margin:0}.dops-banner__info .dops-banner__list li{margin:6px 0}.dops-banner__info .dops-banner__list li .gridicon{color:#a2a2a2;display:none}@media (min-width:481px){.dops-banner__info{width:auto}.dops-banner__info .dops-banner__list li .gridicon{display:inline;margin-right:12px;vertical-align:bottom}}.dops-banner__action{align-self:center;font-size:12px;margin:8px 0 0;text-align:left;width:100%}.dops-banner__action .dops-banner__prices{display:flex;justify-content:flex-start}.dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:0}.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted,.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:8px}@media (min-width:481px){.dops-banner__action{margin:0 4px 0 8px;text-align:center;width:auto}.is-dismissible .dops-banner__action{margin-top:40px}.dops-banner__action .dops-banner__prices{justify-content:flex-end;text-align:right}}.module-overridden-banner.dops-banner.is-compact{margin-bottom:0}.module-overridden-banner.dops-banner .dops-banner__description a{text-decoration:underline}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{cursor:pointer;color:#c8c8c8}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:left}.dops-external-link .gridicons-external{color:currentColor;margin-left:.5rem;top:.125rem;position:relative}.jp-support-info{position:absolute;top:1.6875rem;right:1.5625rem;z-index:1}@media (max-width:480px){.jp-support-info{top:1.25rem;right:1rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{display:block;margin-top:.875rem;padding-top:.75rem;border-top:1px solid hsla(0,0%,63.5%,.5)}.jp-form-settings-group .jp-toggle-set{position:relative}.jp-form-settings-group .jp-toggle-set .jp-support-info{right:-1.25rem;top:.3125rem}@media (max-width:480px){.jp-form-settings-group .jp-toggle-set .jp-support-info{right:-2rem;top:.3125rem}}.dops-foldable-card.dops-card{position:relative;transition:margin .15s linear;padding:0}.dops-foldable-card.dops-card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-foldable-card.dops-card.is-expanded{margin-bottom:8px}.dops-foldable-card.dops-card .is-clickable{cursor:pointer}.dops-foldable-card__header{min-height:64px;width:100%;padding:16px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;position:relative}.dops-foldable-card__header.has-border .dops-foldable-card__summary,.dops-foldable-card__header.has-border .dops-foldable-card__summary_expanded{margin-right:48px}.dops-foldable-card__header.has-border .dops-foldable-card__expand{border-left:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card__header{padding:8px 16px;min-height:40px}.dops-foldable-card.is-expanded .dops-foldable-card__header{margin-bottom:0;height:inherit;min-height:64px}.dops-foldable-card.is-expanded.is-compact .dops-foldable-card__header{min-height:40px}.dops-foldable-card.is-disabled .dops-foldable-card__header{opacity:.2}.dops-foldable-card__action{position:absolute;top:0;right:0;height:100%;background:none;border:0}.dops-foldable-card.is-expanded .dops-foldable-card__action{height:100%}.dops-foldable-card.is-disabled .dops-foldable-card__action{cursor:default}.dops-accessible-focus .dops-foldable-card__action:focus{outline:thin dotted}button.dops-foldable-card__action{cursor:pointer;outline:0}.dops-foldable-card__main{max-width:calc(100% - 36px);display:block;align-items:center;width:100%;margin-right:5px}@media (max-width:480px){.dops-foldable-card__main{flex:1 1}}.dops-foldable-card__secondary{display:flex;align-items:center;flex:1 1;justify-content:flex-end}.dops-foldable-card__expand{width:48px}.dops-foldable-card__expand .gridicon{fill:#a2a2a2;display:flex;align-items:center;width:100%;vertical-align:middle;transition:transform .15s cubic-bezier(.175,.885,.32,1.275),color .2s ease-in}.dops-foldable-card.is-expanded .dops-foldable-card__expand .gridicon{transform:rotate(180deg)}.dops-foldable-card__expand .gridicon:hover{fill:#a2a2a2}.dops-foldable-card__expand:focus .gridicon,.dops-foldable-card__expand:hover .gridicon{fill:#007cba}.dops-foldable-card__header-text{font-size:1.125rem;width:100%}.dops-foldable-card__subheader{margin-top:.125rem;margin-bottom:.125rem;font-size:.875rem;color:#6f6f6f}.dops-foldable-card__content{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__content{display:block;padding:16px;border-top:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card.is-expanded .dops-foldable-card__content{padding:8px}.dops-foldable-card.is-expanded .dops-foldable-card__content p:first-child{margin-top:0}.dops-foldable-card.is-expanded .dops-foldable-card__content p:last-child{margin-bottom:0}.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{margin-right:40px;color:#a2a2a2;font-size:12px;transition:opacity .2s linear;display:inline-block}.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{transition:none;flex:2;text-align:right}@media (max-width:480px){.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{display:none}}.dops-foldable-card__summary{opacity:1;display:inline-block}.dops-foldable-card.is-expanded .dops-foldable-card__summary,.dops-foldable-card__summary_expanded,.has-expanded-summary .dops-foldable-card.is-expanded .dops-foldable-card__summary{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__summary_expanded{display:inline-block}.form-input-validation{color:#4ab866;position:relative;padding:6px 24px 11px 34px;border-radius:1px;box-sizing:border-box;font-size:14px;animation:appear .3s ease-in-out}.form-input-validation.is-error{color:#d94f4f}.form-input-validation.is-warning{color:#f0b849}.form-input-validation .gridicon{float:left;margin-left:-34px}.dops-textarea{box-sizing:border-box;margin:0;padding:.4375rem .875rem;min-height:5.75rem;width:100%;color:#414141;font-size:1rem;line-height:1.5;border:1px solid #d5d5d5;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.dops-textarea:-ms-input-placeholder{color:#a2a2a2}.dops-textarea::-ms-input-placeholder{color:#a2a2a2}.dops-textarea::placeholder{color:#a2a2a2}.dops-textarea:hover{border-color:#bbb}.dops-textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.dops-textarea:focus::-ms-clear{display:none}.dops-textarea:disabled{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-textarea:disabled:hover{cursor:default}.dops-textarea:disabled:-ms-input-placeholder{color:#bbb}.dops-textarea:disabled::-ms-input-placeholder{color:#bbb}.dops-textarea:disabled::placeholder{color:#bbb}.dops-clipboard-button-input{position:relative;display:block}.dops-clipboard-button-input .dops-clipboard-button{position:absolute;top:50%;right:4px;transform:translateY(-50%);overflow:visible}.dops-clipboard-button-input .dops-clipboard-button:not(:disabled):before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;right:0;left:auto;width:16px;height:auto;right:calc(100% + 1px)}.dops-clipboard-button-input .dops-clipboard-button:focus:before{right:calc(100% + 3px)}.dops-tooltip.dops-popover .dops-popover__arrow{border-width:6px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow{border-bottom-color:#555;top:4px;right:10px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-bottom-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-error .dops-popover__arrow{border-bottom-color:#d94f4f}.dops-tooltip.dops-popover.is-bottom-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-warning .dops-popover__arrow{border-bottom-color:#f0b849}.dops-tooltip.dops-popover.is-bottom-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-success .dops-popover__arrow{border-bottom-color:#4ab866}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{border-top-color:#555;bottom:4px;right:10px}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-top-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-error .dops-popover__arrow{border-top-color:#d94f4f}.dops-tooltip.dops-popover.is-top-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-warning .dops-popover__arrow{border-top-color:#f0b849}.dops-tooltip.dops-popover.is-top-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-success .dops-popover__arrow{border-top-color:#4ab866}.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{margin-left:-6px}.dops-tooltip.dops-popover.is-left,.dops-tooltip.dops-popover.is-right{padding-top:0}.dops-tooltip.dops-popover.is-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-top:-6px}.dops-tooltip.dops-popover.is-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-right .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-error .dops-popover__arrow{border-right-color:#d94f4f}.dops-tooltip.dops-popover.is-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-warning .dops-popover__arrow{border-right-color:#f0b849}.dops-tooltip.dops-popover.is-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-success .dops-popover__arrow{border-right-color:#4ab866}.dops-tooltip.dops-popover.is-left .dops-popover__arrow{margin-right:4px;border-left-color:#555}.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-left:4px;border-right-color:#555}.dops-tooltip.dops-popover .dops-popover__inner{border:0;box-shadow:none;border-radius:2px;color:#fff;background:#555;font-size:12px;padding:6px 10px;text-align:left}.dops-tooltip.dops-popover.is-error .dops-popover__inner{background:#d94f4f}.dops-tooltip.dops-popover.is-warning .dops-popover__inner{background:#f0b849}.dops-tooltip.dops-popover.is-success .dops-popover__inner{background:#4ab866}.dops-tooltip.dops-popover ul{list-style:none;margin:0;padding:0}.dops-tooltip.dops-popover ul li{font-size:11px;font-weight:100;border:0}.dops-tooltip__hr{margin:8px 0;background:#a2a2a2}.dops-chart{position:relative;box-sizing:border-box;background-color:#fff;padding:8px 0 8px 20px}.dops-chart .dops-chart__y-axis-markers{position:absolute;top:8px;left:0;right:0;height:200px}.dops-chart .dops-chart__y-axis-marker{position:absolute;top:0;width:100%;height:1px;border-top:1px solid #eee}.dops-chart__bar-marker{z-index:1;position:absolute;top:0;width:100%;height:1px;border-top:1px solid hsla(0,0%,93.3%,.1)}.dops-chart .dops-chart__y-axis-marker.is-fifty,.dops-chart__bar-marker.is-fifty,.dops-chart__y-axis-label.is-fifty{top:50%}.dops-chart .dops-chart__y-axis-marker.is-zero,.dops-chart__bar-marker.is-zero,.dops-chart__y-axis-label.is-zero{top:100%}.dops-chart__y-axis{position:relative;float:right;height:200px;padding:0 20px 0 10px;font-size:11px;color:#888;margin-bottom:30px}.dops-chart__y-axis-label{position:absolute;top:0;right:20px;text-align:right}.dops-chart__y-axis-width-fix{color:hsla(0,0%,100%,0)}.dops-chart__x-axis{position:relative;font-size:0;padding:5px 0;min-height:18px;color:#555}.dops-chart__x-axis-label{position:absolute;display:inline-block;vertical-align:top;font-size:11px;text-align:center}.dops-chart__x-axis-label:before{content:"";display:block;position:absolute;top:-4px;left:50%;margin-left:-.5px;width:1px;height:5px;background:#f6f6f6;background-image:linear-gradient(180deg,#f6f6f6 0,#d5d5d5)}.dops-chart__bars{font-size:0;overflow:hidden;display:-ms-flex;display:flex}.dops-chart__bar,.dops-chart__bars{position:relative;height:200px;text-align:center}.dops-chart__bar{display:inline-block;-ms-flex-grow:1;flex-grow:1;-ms-flex-shrink:1;flex-shrink:1}.dops-chart__bar.is-weekend{background-color:hsla(0,0%,93.3%,.5)}.dops-chart__bar:hover{cursor:pointer;background-color:hsla(0,0%,93.3%,.3)}.dops-chart__bar.is-selected{cursor:default;background-color:rgba(240,130,30,.1)}.dops-chart__bar-section{display:inline-block;background-color:#0087be;position:absolute;top:0;right:16%;bottom:0;left:16%;z-index:2}.dops-chart__bar:hover .dops-chart__bar-section.is-bar{background-color:#007cba}.dops-chart__bar.is-selected .dops-chart__bar-section.is-bar{background-color:#f0821e}.dops-chart__bar-section.is-spacer{z-index:0;background-color:hsla(0,0%,100%,0)}.dops-chart__bar-section.is-ghost:after{content:"";display:block;position:absolute;top:160px;bottom:0;left:0;z-index:1;width:100%;height:40px;background-image:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,93.3%,.5))}.dops-chart__bar:hover .dops-chart__bar-section.is-ghost:after{display:none}.dops-chart__bar-section-inner{background:#004069;position:absolute;right:23.33%;bottom:0;left:23.33%}.dops-chart__bar.is-selected .dops-chart__bar-section-inner{background-color:#d54e21}.dops-chart__legend{margin-bottom:-8px}.dops-chart__legend:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-chart__legend .dops-chart__legend-options{float:right;color:#747474;list-style-type:none;margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.1em}@media (max-width:480px){.dops-chart__legend .dops-chart__legend-options{width:100%}}.dops-chart__legend-option{display:inline;text-align:left}@media (max-width:480px){.dops-chart__legend-option{width:50%;display:inline-block}}.dops-chart__legend-label{display:inline-block;padding:12px 19px 10px 20px}.dops-chart__legend-label.is-selectable{cursor:pointer}.dops-chart__legend-label.is-selectable:focus,.dops-chart__legend-label.is-selectable:hover{color:tint(#007cba,20%)}@media (max-width:480px){.dops-chart__legend-label{display:block}}.dops-chart__legend-option .dops-chart__legend-color{width:10px;height:10px;background:#0087be;display:inline-block;border-radius:1px;vertical-align:top;margin:3px 5px 3px 8px}@media (max-width:480px){.dops-chart__legend-option:first-child .dops-chart__legend-color{margin-left:2px}}.dops-chart__legend-color.is-dark-blue{background:#004069}.dops-chart__legend-option .dops-chart__legend-checkbox{margin:0;float:none;vertical-align:top}.dops-chart__empty{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;font-size:14px;line-height:24px;clear:both;z-index:1}.dops-chart__empty_notice{position:relative;top:97px;padding:11px 24px;margin-bottom:24px;border-radius:1px;background:#fff;box-sizing:border-box;font-size:14px;line-height:1.4285;animation:appear .3s ease-in-out;box-shadow:0 0 0 1px hsla(0,0%,83.5%,.5),0 1px 2px #eee}@media (min-width:661px){.dops-chart__empty_notice{padding:13px 48px;font-size:inherit}.dops-chart__empty_notice:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Noticons;content:"\f456";position:absolute;top:23px;left:20px;margin:-12px 0 0 -8px;font-size:24px;line-height:1}}.dops-chart__tooltip .dops-popover__inner{width:230px;text-align:left}.dops-chart__tooltip .dops-popover__inner ul{list-style:none;margin:0;padding:0}.dops-chart__tooltip .dops-popover__inner ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-chart__tooltip .dops-popover__inner ul li{font-size:11px;text-transform:uppercase;font-weight:100;height:24px;letter-spacing:.1em;border:0;margin-bottom:0}.dops-chart__tooltip .dops-popover__inner ul li .dops-wrapper{display:block;line-height:inherit;line-height:24px;clear:both}.dops-chart__tooltip .dops-popover__inner ul li .value{text-align:right;float:right;min-width:22px;color:#d5d5d5}.dops-chart__tooltip .dops-popover__inner ul li .label{display:block;overflow:hidden;word-break:break-all;vertical-align:baseline}.dops-chart__tooltip .dops-popover__inner ul li .gridicon{vertical-align:middle;margin-right:6px;margin-top:-3px}.dops-chart__tooltip.is-streak{margin-top:-5px;height:35px}.dops-chart__tooltip.is-streak .dops-popover__arrow:before{left:85px;top:30px}.dops-chart__tooltip.is-streak .dops-popover__inner{width:160px;position:relative;top:-10px}.dops-chart__tooltip.is-streak .dops-popover__inner li{height:14px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label{width:100%;float:left;text-align:center}.rtl .dops-chart__tooltip.is-streak .dops-popover__inner li .label{font-size:11px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label .post-count{font-weight:700}.dops-chart__tooltip.is-streak .dops-popover__inner li .value{float:none}.dops-chart__tooltip .dops-module-content-list-item.is-date-label{font-size:11px;margin-bottom:2px;text-transform:uppercase;font-weight:700;border-bottom:1px solid #5d5d5d;padding-bottom:2px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item{height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .label{text-transform:none;color:#d5d5d5;overflow:hidden;letter-spacing:0;height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value{width:0;min-width:0}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value:before{content:"";position:relative;background-image:linear-gradient(90deg,rgba(61,89,109,0) 0,rgba(61,89,109,.5),#3d596d);left:-30px;width:30px;height:24px;display:block}.jetpack-termination-dialog .dops-card{margin:0}.jetpack-termination-dialog__spinner{display:flex;justify-content:center;padding:25px}.jetpack-termination-dialog__header{display:flex;flex-direction:row;align-content:center;justify-content:space-between}.jetpack-termination-dialog__header h2{margin:0;font-size:28px;line-height:24px}.jetpack-termination-dialog__info{font-size:16px;line-height:24px;margin-top:0}.jetpack-termination-dialog__generic-info ul{list-style:inside;font-size:16px;line-height:24px}.jetpack-termination-dialog__features-list{position:relative;left:-1em;display:flex;flex-wrap:wrap;width:calc(100% + 2em)}.jetpack-termination-dialog__features-list .jetpack-termination-dialog__feature{width:calc(100% - 2em)}@media (min-width:661px){.jetpack-termination-dialog__features-list .jetpack-termination-dialog__feature{width:calc(50% - 2em)}}.jetpack-termination-dialog__features-list-single-column{position:relative;left:-1em;display:flex;flex-wrap:wrap;width:calc(100% + 2em)}.jetpack-termination-dialog__features-list-single-column .jetpack-termination-dialog__feature{width:calc(100% - 2em)}.jetpack-termination-dialog__feature{background:#fff;border:1px solid hsla(0,0%,83.5%,.5);box-sizing:border-box;box-shadow:0 1px 2px #f6f6f6;margin:1em}.jetpack-termination-dialog__feature-header{text-transform:uppercase;font-size:12px;line-height:12px;background:#f6f6f6;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:0 13px}.jetpack-termination-dialog__feature-header .gridicon{color:#00be28}.jetpack-termination-dialog__feature-body{padding:0 13px}.jetpack-termination-dialog__feature-body .jetpack-termination-dialog__feature-body-amount{font-weight:700;font-size:24px;line-height:26px;margin-top:12px;margin-bottom:12px}.jetpack-termination-dialog__get-help{font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:29px}@media (min-width:481px){.jetpack-termination-dialog__get-help{margin-top:37px}}.jetpack-termination-dialog__button-row{display:flex;flex-direction:column;justify-content:space-between}.jetpack-termination-dialog__button-row p{text-align:center;margin-top:0}@media (min-width:661px){.jetpack-termination-dialog__button-row{flex-direction:row}.jetpack-termination-dialog__button-row p{text-align:auto;margin-top:auto}}.jetpack-termination-dialog__button-row-buttons{display:flex;flex-direction:column;justify-content:space-between}.jetpack-termination-dialog__button-row-buttons .dops-button{margin-bottom:18px;margin-left:0;width:100%}@media (min-width:661px){.jetpack-termination-dialog__button-row-buttons{flex-direction:row}.jetpack-termination-dialog__button-row-buttons .dops-button{margin-bottom:0;margin-left:18px;width:auto}}.jetpack-termination-dialog__close-icon{color:#a2a2a2;cursor:pointer}a.jetpack-termination-dialog__link{font-style:normal!important;text-decoration:underline!important}#jp-plugin-container{min-height:100vh}body.dops-modal-showing{overflow:hidden}.dops-modal-wrapper{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:block;overflow-x:hidden;overflow-y:auto;text-align:center;-webkit-overflow-scrolling:touch;outline:0;transition:opacity .15s linear;background-color:rgba(0,0,0,.5);cursor:pointer}.dops-modal-wrapper:before{content:"";display:inline-block;height:100%;vertical-align:middle}.dops-modal-wrapper .dops-modal{position:relative;display:inline-block;margin:0;width:100%;max-width:550px;vertical-align:middle;text-align:left;background-color:#fff;transition:all .5s;z-index:100;clear:both;cursor:default}@media (min-width:481px){.dops-modal-wrapper .dops-modal{margin:0 auto;height:auto;border-radius:5px;box-shadow:0 4px 20px rgba(0,0,0,.2)}}@media (min-width:961px){.my-plan-card{display:flex;flex-flow:row nowrap;justify-content:space-between}}.my-plan-card__primary{display:flex;flex-flow:row nowrap;flex-grow:1}.my-plan-card__header{flex:1}.my-plan-card__title{font-size:20px;font-weight:600;line-height:29px;margin:6px 0;color:#414141}.my-plan-card__tag-line{font-size:14px;font-weight:400;line-height:17px;margin:0 0 24px}@media (min-width:961px){.my-plan-card__tag-line{margin-bottom:8px}}.my-plan-card__icon{flex:0 0 auto;width:64px;height:64px;margin:8px 20px 16px 0}@media (max-width:660px){.my-plan-card__icon{display:none}}.my-plan-card__icon img{width:100%;height:100%}.my-plan-card__secondary{position:relative;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between;padding:8px 0 0}@media (min-width:961px){.my-plan-card__secondary{flex-flow:column nowrap;justify-content:center;align-items:flex-end;padding:0 0 0 24px}}.my-plan-card__secondary:before{content:"";position:absolute;top:0;left:-16px;right:-16px;border-top:1px solid #ccd0d4}@media (min-width:481px){.my-plan-card__secondary:before{left:-24px;right:-24px}}@media (min-width:961px){.my-plan-card__secondary:before{content:none}}.has-action-only .my-plan-card__secondary{padding-top:0;justify-content:center}.has-action-only .my-plan-card__secondary:before{content:none}.my-plan-card__details{padding-top:8px;white-space:nowrap;color:#888}@media (min-width:961px){.my-plan-card__details{padding-top:0}}.my-plan-card__details.is-error{color:#d94f4f}.my-plan-card__action{padding-top:8px;white-space:nowrap}.has-action-only .my-plan-card__action{padding-top:0}.plan-price{margin:0;font-size:14px;font-weight:400;color:#414141}.plan-price.is-inline{display:inline-block}.plan-price.is-original{color:#747474}.plan-price.is-discounted{color:#414141}.plan-price.is-discounted,.plan-price.is-original{position:relative;align-items:stretch;margin-right:.25em}.plan-price.is-original+.plan-price.is-discounted{margin-left:.25em}.plan-price.is-original:before{position:absolute;content:"";left:0;top:50%;right:0;border-top:2px solid #007cba;transform:rotate(-16deg);opacity:.9}.plan-price__currency-symbol,.plan-price__fraction{font-size:14px;vertical-align:baseline}.plan-price.is-discounted .plan-price__currency-symbol{color:#414141}.plan-price__currency-symbol{color:#747474}.plan-price__integer{margin:0 1px}.product-card__header{margin:-16px -16px 16px;border-bottom:2px solid #007cba}@media (min-width:481px){.product-card__header{margin:-24px -24px 24px}}@media (min-width:661px){.product-card__header{display:flex;flex-flow:row wrap;align-items:baseline}}.product-card__header-primary,.product-card__header-secondary{padding-left:40px;padding-right:40px}@media (min-width:661px){.product-card__header-primary,.product-card__header-secondary{padding-left:16px;padding-right:16px}}.product-card__header-primary{display:flex;padding-top:16px;padding-bottom:2px}@media (min-width:481px){.product-card__header-primary{padding-top:24px}}@media (min-width:661px){.product-card__header-primary{flex-grow:1;padding-top:16px}}.product-card__header-primary .gridicon{align-self:center;margin:0 8px 0 -26px}@media (min-width:661px){.product-card__header-primary .gridicon{width:16px;height:16px;margin-left:0}}.product-card__header-secondary{position:relative;padding-bottom:14px}@media (min-width:481px){.product-card__header-secondary{padding-bottom:24px}}@media (min-width:661px){.product-card__header-secondary{padding-bottom:16px}}@media (min-width:661px){.is-purchased .product-card__header-secondary{padding-left:40px}}.product-card__title{font-size:20px;line-height:24px;margin:0;font-weight:400}@media (min-width:961px){.product-card__title{font-size:22px}}.product-card__title em,.product-card__title span,.product-card__title strong{font-weight:600;font-style:italic}.product-card:not(.is-purchased) .product-card__title{color:#23282d}@media (min-width:661px){.product-card:not(.is-purchased) .product-card__title{font-weight:600}}.product-card__subtitle{font-size:12px;line-height:20px;font-style:italic;color:#646970}.product-card__price-group{display:flex;flex-flow:row wrap;align-items:baseline}.product-card{max-width:512px}.product-card .plan-price{margin-right:.333em}@media (min-width:661px){.product-card .plan-price,.product-card .plan-price *{font-size:14px;vertical-align:baseline}}.product-card__billing-timeframe{font-size:13px;font-weight:400;line-height:13px;color:#646970}@media (max-width:660px){.product-card__billing-timeframe{font-style:italic}}@media (min-width:961px){.product-card__billing-timeframe{font-size:12px}}@media (min-width:661px){.is-discounted .product-card__billing-timeframe{color:#008a20}}@media (min-width:661px){.product-card__header .plan-price,.product-card__header .plan-price *{font-weight:600}}.product-card__header .product-card__billing-timeframe{width:100%}@media (min-width:661px){.product-card__header .product-card__billing-timeframe{width:auto;font-size:12px;font-weight:600}}.product-card__option .plan-price,.product-card__option .plan-price *{font-size:16px;font-weight:400;vertical-align:baseline}@media (min-width:961px){.product-card__option .plan-price,.product-card__option .plan-price *{font-size:14px}}.product-card__option .is-discounted .product-card__billing-timeframe{color:#008a20}@media (min-width:961px){.product-card__option .is-discounted .product-card__billing-timeframe,.product-card__option .plan-price.is-discounted,.product-card__option .plan-price.is-discounted *{color:#646970}}.product-card__description{font-size:14px;line-height:20px;color:#646970}.product-card__description p{text-align:center}.product-card__description p:last-child{margin:0}.product-card__options{padding:10px 0 0}@media (min-width:961px){.product-card__options{display:flex;flex-flow:row wrap;justify-content:space-around;justify-content:space-evenly}}.product-card__options-label{margin:8px 0;padding:6px 0;font-size:14px;color:#646970;border-bottom:1px solid #dcdcde}@media (min-width:961px){.product-card__options-label{flex:0 0 100%}}.product-card__option,.product-card__option-description{display:flex;align-items:center}.product-card__option.form-label{margin:16px 0 0;padding:8px 0}@media (min-width:961px){.product-card__option.form-label{flex:0 0 40%;align-items:flex-start}}.product-card__option-description{margin-left:8px;flex-grow:1;flex-wrap:wrap}.product-card__option-name{flex-grow:1;font-size:16px;font-weight:700}@media (min-width:961px){.product-card__option-name{margin-bottom:2px;flex:0 0 100%;font-size:14px;line-height:20px}}.product-card__action{margin:16px auto;text-align:center}.product-card__action-intro{margin-bottom:12px;font-size:14px;font-weight:600;color:#1d2327}.product-card__action-button{width:100%;max-width:320px}.product-card.is-placeholder .product-card__price-group:before{animation:loading-fade 1.6s ease-in-out infinite;background-color:#eee;color:transparent;content:"\00a0";display:inline-block;width:150px;height:32px;margin:0 0 4px}.product-card.is-placeholder .product-card__price-group:before:after{content:"\00a0"}@media (min-width:661px){.product-card.is-placeholder .product-card__price-group:before{height:18px}}@media (min-width:661px){.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe{display:none}}.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe:before{animation:loading-fade 1.6s ease-in-out infinite;background-color:#eee;color:transparent;content:"\00a0";display:inline-block;width:100px;height:11px}.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe:before:after{content:"\00a0"}.product-card.is-placeholder .product-card__option .product-card__price-group:before{width:125px;height:16px;margin:0}@media (min-width:661px){.product-card.is-placeholder .product-card__option .product-card__price-group:before{margin:5px 0 0}}.product-card.is-placeholder .product-card__option .product-card__billing-timeframe{display:none}.plan-radio-button{display:flex}.plan-radio-button+.plan-radio-button{margin-top:16px}@media (min-width:661px){.plan-radio-button+.plan-radio-button{margin-top:0}}.plan-radio-button__label{display:flex;flex-flow:row wrap;align-items:center;width:100%;margin-left:8px}@media (min-width:661px){.plan-radio-button__label{flex-flow:column nowrap;align-items:flex-start}}input[type=radio].plan-radio-button__input{flex:0 0 auto;margin-top:2px}.plan-radio-button__title{font-weight:600;flex:1}.single-product-backup__header-title{margin:5px 20px 5px 0;text-align:center;font-size:17px;line-height:24px;font-weight:700}.single-product-backup__price-group{display:flex;flex-flow:row wrap;align-items:baseline}.single-product-backup__options-header{padding-bottom:8px;font-size:14px;font-weight:400;color:#747474;text-align:center;margin-top:30px}.plans-section__header{margin:32px auto 8px;text-align:center;font-weight:400;font-size:22px}.plans-section__subheader{margin:8px auto 32px;color:#747474;text-align:center;font-weight:400;font-size:14px}.plans-section__single-product{display:flex;justify-content:center;margin:24px auto 40px}.plans-section__single-product-skeleton{width:100%;max-width:518px;height:328px}.single-product-backup__radio-buttons-container{display:flex;flex-flow:column nowrap;margin-bottom:21px}@media (min-width:661px){.single-product-backup__radio-buttons-container{flex-flow:row wrap;justify-content:space-around;justify-content:space-evenly;position:relative}.single-product-backup__radio-buttons-container:before{display:block;border-left:1px solid #ccd0d4;position:absolute;content:"";height:100%;width:0;order:2}}.single-product-backup__upgrade-button-container{text-align:center;margin-top:24px;margin-bottom:8px}.single-product-backup__upgrade-button-container .plan-price,.single-product-backup__upgrade-button-container .plan-price__currency-symbol{color:#fff}.single-product-backup__accented-card{max-width:518px;width:100%;font-size:14px}.single-product-backup__accented-card-header{padding:8px 16px;margin:-16px -16px 16px;border-bottom:2px solid #4ab866}@media (min-width:481px){.single-product-backup__accented-card-header{padding:8px 24px;margin:-24px -24px 24px}}.single-product-backup__accented-card-body p{margin-top:14px;font-size:14px;color:#747474;text-align:center}.single-product-backup__promo{background-color:#f6f6f6;border-radius:16px;position:relative;padding:7px 0;margin-top:24px}.single-product-backup__promo-star{position:absolute;left:-1rem;top:-1.5rem;transform:rotate(-10deg);background-image:url(images/green-star-b0ac6af62d4c43bd4d04ca6abb9c2e83.svg);padding:35px 20px;color:#fff;font-weight:700;text-align:center;line-height:17px;width:105px;height:105px;box-sizing:border-box}.single-product-backup__promo-header{font-weight:400;font-size:12px;text-transform:uppercase;color:#747474;margin:0 0 0 100px}.single-product-backup__promo-header strong{font-size:14px;color:#23282d;display:block;text-transform:none}.single-product-backup__savings{font-style:italic}.single-product-backup__annual-savings,.single-product-backup__annual-savings .plan-price__integer{color:#747474}.notices-list{overflow:hidden}.notices-list.is-pinned{width:calc(100% - 336px);z-index:z-index("root",".notices-list.is-pinned");position:fixed;top:79px}.notices-list.is-pinned .notice{z-index:z-index("root",".notices-list.is-pinned .notice")}.notices-list__whitespace{height:71px;width:100%;display:block}@keyframes appear{0%{opacity:0}to{opacity:1}}.global-notices{text-align:right;pointer-events:none;z-index:179;position:fixed;top:auto;right:0;bottom:0;left:0}@media (min-width:661px){.global-notices{top:63px;right:16px;bottom:auto;left:auto;max-width:calc(100% - 32px)}}@media (min-width:961px){.global-notices{top:71px;right:24px;max-width:calc(100% - 48px)}}@media (min-width:1041px){.global-notices{right:32px;max-width:calc(100% - 64px)}}.global-notices .dops-notice{flex-wrap:nowrap;margin-bottom:0;text-align:left;pointer-events:auto;border-radius:0;box-shadow:0 2px 5px rgba(0,0,0,.2),0 0 56px rgba(0,0,0,.15)}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0}@media (min-width:661px){.global-notices .dops-notice{display:flex;overflow:hidden;margin-bottom:24px;border-radius:3px}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:3px 0 0 3px}}@media (min-width:661px){.global-notices .dops-notice a.dops-notice__action{font-size:14px;padding:13px 16px}}.global-notices .dops-notice__dismiss{flex-shrink:0}@media (min-width:661px){.global-notices .dops-notice__dismiss{padding:13px 16px 0}} \ No newline at end of file
+.jetpack-partner-coupon-redeem .components-button{border-radius:4px;font-size:14px;font-weight:600;height:40px;justify-content:center}.jetpack-partner-coupon-redeem--connected .jp-connection__connect-screen__tos{display:none!important}.jp-connection__connect-screen__loading{display:none}.jp-connection__connect-screen__tos{margin-top:28px;max-width:360px}.jp-connection__connect-screen .jp-action-button{margin-top:40px}.jp-connection__connect-screen .jp-action-button button{max-width:100%}.jp-connection__connect-screen .jp-action-button button:disabled{color:hsla(0,0%,100%,.4)}@media(max-width:782px){.jp-connection__connect-screen .jp-action-button button{max-width:none;width:100%}}.jp-connection__connect-screen-layout{background:#fff;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08)}.jp-connection__connect-screen-layout__loading{display:none}.jp-connection__connect-screen-layout__left,.jp-connection__connect-screen-layout__right{box-sizing:border-box}.jp-connection__connect-screen-layout__left{padding:25px}@media(min-width:600px){.jp-connection__connect-screen-layout__left{padding:64px 96px}}.jp-connection__connect-screen-layout__left .jetpack-logo{margin-bottom:24px}.jp-connection__connect-screen-layout__left h2{color:#000;font-size:36px;font-style:normal;font-weight:700;line-height:40px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left h3{color:#000;font-size:24px;font-style:normal;font-weight:500;line-height:32px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left li,.jp-connection__connect-screen-layout__left p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.jp-connection__connect-screen-layout__left p{color:#101517;margin:16px 0}.jp-connection__connect-screen-layout__left a{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__connect-screen-layout__left a:hover{color:#000;text-decoration-thickness:2px}.jp-connection__connect-screen-layout__left a:focus{box-shadow:none!important;color:#000}.jp-connection__connect-screen-layout__left ul{list-style-type:none;padding:0}.jp-connection__connect-screen-layout__left ul li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:#000;margin-bottom:9px;padding-left:30px}.jp-connection__connect-screen-layout__right{padding:64px 0}.jp-connection__connect-screen-layout__right img{max-width:100%}.jp-connection__connect-screen-layout__two-columns{display:flex;flex-wrap:wrap}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:100%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:52%}}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{background:#f9f9f6;display:none;flex-basis:47%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{display:block}}.jp-action-button--button{background:#000}.jp-action-button--button,.jp-action-button--button.components-button{border-radius:4px;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-style:normal;font-weight:600;height:40px;line-height:18px;min-width:264px;text-align:center}.jp-action-button__error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 0 0;color:var(--jp-red)!important;line-height:25px!important;padding-left:25px}@-webkit-keyframes rotate-spinner{to{transform:rotate(1turn)}}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{-webkit-animation:3s linear infinite;animation:3s linear infinite;-webkit-animation-name:rotate-spinner;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%}.dops-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:3px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:.875rem;margin:0;outline:0;overflow:hidden;padding:7px 14px 9px;text-decoration:none;text-overflow:ellipsis;vertical-align:top}.dops-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.dops-button:disabled,.dops-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.dops-button.is-compact{line-height:2;padding:0 10px}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{margin-top:-8px;top:4px}.dops-button.is-compact .gridicons-plus-small{margin-left:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-left:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-left:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{height:18px;margin-top:-2px;position:relative;top:4px;width:18px}.dops-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:none!important}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{border-color:#eee;color:#f4cdcd}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-left:0;padding-right:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{height:24px;top:6px;width:24px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{background:#fff;color:#eee;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{height:18px;top:5px;width:18px}.dops-button-group .dops-button{border-left-width:0;border-radius:0}.dops-button-group .dops-button:focus{position:relative;z-index:z-index("button-group-parent",".button-group .button:focus")}.dops-button-group .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button-group .dops-button.is-scary:focus{box-shadow:inset 1px 0 0 #d94f4f,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-primary.is-scary:focus{box-shadow:inset 1px 0 0 #761919,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-scary:first-child:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button-group .dops-button:first-child{border-bottom-left-radius:4px;border-left-width:1px;border-top-left-radius:4px}.dops-button-group .dops-button:last-child{border-bottom-right-radius:4px;border-top-right-radius:4px}.dops-section-header .dops-button-group .dops-button{margin-right:0}.dops-count{border:1px solid #a2a2a2;border-radius:.75rem;color:#a2a2a2;display:inline-block;font-size:.6875rem;font-weight:600;line-height:.875rem;padding:.0625rem .375rem;text-align:center}.dops-select-dropdown{height:43px}.dops-select-dropdown.is-compact{height:28px}.dops-select-dropdown.is-disabled .dops-select-dropdown__header{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-select-dropdown__container{display:inline-block;max-width:100%;overflow:hidden;position:relative;width:auto}.dops-select-dropdown.is-open .dops-select-dropdown__container{z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container,.dops-accessible-focus .dops-select-dropdown__container:focus{box-shadow:0 0 0 2px #78dcfa;z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container .select-dropdown__header,.dops-accessible-focus .dops-select-dropdown__container:focus .select-dropdown__header{border-color:#0087be}.dops-accessible-focus .dops-select-dropdown__container:focus{border-color:#00aadc;border-radius:4px;box-shadow:0 0 0 2px #78dcfa;outline:0}.dops-select-dropdown__header{background-color:#fff;border:solid #d5d5d5;border-radius:4px;border-width:1px 1px 2px;box-sizing:content-box;color:#414141;cursor:pointer;font-size:14px;font-weight:600;height:18px;line-height:18px;padding:11px 44px 11px 16px;transition:background-color .2s ease}.dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:hsla(0,0%,64%,.5);content:"";display:inline-block;display:block;font:normal 16px/1 Dashicons;line-height:18px;position:absolute;right:13px;top:12px;vertical-align:middle}.is-compact .dops-select-dropdown__header:after{right:4px;top:4px}.is-compact .dops-select-dropdown__header{color:#888;font-size:11px;line-height:1;padding:7px;text-transform:uppercase}.is-compact .dops-select-dropdown__header .dops-count{border-width:0;line-height:1;margin-left:0}.dops-select-dropdown.is-open .dops-select-dropdown__header{background-color:#f6f6f6;border-radius:4px 4px 0 0;box-shadow:none}.dops-select-dropdown.is-open .dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;font:normal 16px/1 Dashicons;vertical-align:middle}.dops-select-dropdown__header .dops-count{margin-left:8px}.dops-select-dropdown__header-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-select-dropdown__options{background-color:#fff;border:1px solid #d5d5d5;border-radius:0 0 4px 4px;box-sizing:border-box;height:0;list-style:none;margin:-2px 0 0;padding:0;visibility:hidden}.dops-accessible-focus .dops-select-dropdown__options{border:1px solid #0087be;border-top-color:#d5d5d5}.dops-select-dropdown.is-open .dops-select-dropdown__options{height:auto;visibility:visible}.dops-select-dropdown__option:last-child .dops-select-dropdown__item{border-radius:0 0 4px 4px}.dops-select-dropdown__item,.dops-select-dropdown__item-text{padding:11px 44px 11px 16px}.dops-select-dropdown__item{color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;line-height:18px;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.dops-select-dropdown__item:before{content:attr(data-bold-text);font-weight:700;opacity:0}.dops-select-dropdown__item:visited{color:#414141}.dops-select-dropdown__item.is-selected{background-color:#3582c4;color:#fff}.dops-select-dropdown__item.is-disabled{background-color:#fff;color:#a2a2a2;cursor:default;opacity:.5}.notouch .dops-select-dropdown__item:hover{color:#3582c4}.notouch .dops-select-dropdown__item.is-selected:hover{color:#fff}.dops-select-dropdown__item-text{box-sizing:border-box;color:inherit;display:flex;flex-flow:row wrap;justify-content:space-between;left:0;padding-right:16px;position:absolute;text-overflow:ellipsis;top:0;white-space:nowrap;width:100%}.dops-select-dropdown__item-text .dops-count{border-color:inherit;color:inherit}.dops-select-dropdown__separator{border-top:1px solid #d5d5d5;display:block;margin:8px 0}.dops-select-dropdown__label{color:#bbb;display:block;line-height:20px;margin-top:5px}.dops-select-dropdown__label label{font-size:12px;padding:0 16px;text-transform:uppercase}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(1px,1px)}.gridicon.needs-offset-x g{transform:translate(1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-search{align-items:center;display:flex;flex:1 1 auto;height:51px;margin-bottom:24px;position:relative;transition:all .15s ease-in-out;width:60px;z-index:22}.dops-search .dops-search__icon-navigation{align-items:center;background-color:#fff;border-radius:inherit;display:flex;flex:0 0 auto;height:100%}.dops-search .dops-search__close-icon,.dops-search .dops-search__open-icon{color:#0087be;cursor:pointer;flex:0 0 auto;width:50px;z-index:20}.accessible-focus .dops-search .dops-search__close-icon:focus,.accessible-focus .dops-search .dops-search__open-icon:focus{outline:1px dotted #0087be}.dops-search .dops-search__open-icon:hover{color:#555}.dops-search .dops-search__close-icon{color:#555;opacity:0;transition:opacity .2s ease-in}.accessible-focus .dops-search.has-focus{box-shadow:0 0 0 1px #0087be,0 0 0 4px #78dcfa}.dops-search.is-expanded-to-container{display:flex;height:100%;margin-bottom:0;overflow:hidden;position:absolute;right:0;top:0;width:50px}.dops-search.is-expanded-to-container .dops-search__input-fade{display:flex;flex:1 1 auto;position:relative}.dops-search.is-expanded-to-container .dops-search__input[type=search]{box-shadow:none;display:flex;flex:1 1 auto;margin:0}.dops-search__input[type=search]{appearance:none;-webkit-appearance:none;background:#fff;border:none;border-radius:inherit;box-sizing:border-box;display:none;flex:1 1 auto;height:100%;padding:0;top:0;z-index:10}.dops-search__input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.dops-search__input[type=search]:focus{border:none;box-shadow:none}.dops-search.is-open{width:100%}.dops-search.is-open .dops-search__open-icon{color:#555}.dops-search.is-open .dops-search__close-icon{display:inline-block}.dops-search.is-open .dops-search__close-icon,.dops-search.is-open .dops-search__input{opacity:1}.dops-search.is-open .dops-search__input{display:block}.dops-search.is-open .dops-search__input-fade{border-radius:inherit;flex:1 1 auto;font-size:16px;height:100%;position:relative}.dops-search.is-open .dops-search__input-fade.ltr:before,.dops-search.is-open .dops-search__input-fade:before{-webkit-touch-callout:none;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);border-radius:inherit;bottom:0;content:"";display:block;height:auto;left:auto;pointer-events:none;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none;width:32px;z-index:12}.dops-search__input-fade .dops-search__text-overlay{align-items:center;color:transparent;display:flex;flex:1 1 auto;font:inherit;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;white-space:nowrap;width:100%;z-index:11}.dops-search.is-searching .dops-search__open-icon{display:none}.animating.dops-search-opening .dops-search input{opacity:1}.dops-section-nav{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;margin:0 0 17px;padding:0;position:relative;width:100%}.dops-section-nav.is-empty .dops-section-nav__panel{visibility:hidden}@media(max-width:480px){.dops-section-nav.is-open{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}}@media(min-width:481px){.dops-section-nav.has-pinned-items{padding-right:60px}}@media(min-width:481px)and (max-width:660px){.dops-section-nav.has-pinned-items{padding-right:50px}}@media(max-width:660px){.dops-section-nav{margin-bottom:9px}}.dops-section-nav__mobile-header{color:#414141;cursor:pointer;display:flex;font-size:14px;font-weight:600;line-height:16px;padding:15px}.dops-section-nav__mobile-header:after{color:hsla(0,0%,64%,.5);content:"";line-height:16px}.dops-section-nav.is-open .dops-section-nav__mobile-header:after,.dops-section-nav__mobile-header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal 16px/1 Dashicons;vertical-align:middle}.dops-section-nav.is-open .dops-section-nav__mobile-header:after{content:""}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header{padding-right:50px}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header:after{margin-left:8px}@media(min-width:481px){.dops-section-nav__mobile-header{display:none}}.dops-section-nav__mobile-header-text{flex:1 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:0}.dops-section-nav__mobile-header-text small{color:#a2a2a2;font-size:11px;font-weight:600;margin-left:5px;text-transform:uppercase}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header-text{flex:0 1 auto;width:auto}.dops-section-nav__panel{box-sizing:border-box;width:100%}@media(max-width:480px){.dops-section-nav.is-open .dops-section-nav__panel{background:linear-gradient(180deg,#f6f6f6 0,#fff 4px);border-top:1px solid #d5d5d5;padding-bottom:15px}}@media(min-width:481px){.dops-section-nav__panel{align-items:center;display:flex}.dops-section-nav__panel:first-child{flex:1 0 auto;width:0}}.dops-section-nav-group{border-top:1px solid #d5d5d5;margin-top:16px;padding-top:16px;position:relative}.dops-section-nav-group:first-child{border-top:none;padding-top:0}@media(max-width:480px){.dops-section-nav-group{display:none}.dops-section-nav.is-open .dops-section-nav-group{display:block}}@media(min-width:481px){.dops-section-nav-group{border-top:none;margin-top:0;padding-top:0}.dops-section-nav-group:first-child{display:flex;flex:1 0 auto;width:0}}.dops-section-nav__button{margin-top:24px;width:100%}.dops-section-nav__hr{background:#eee}.dops-section-nav-group__label{color:#a2a2a2;display:none;font-size:11px;font-weight:600;line-height:12px;margin-bottom:8px;padding:0 15px;text-transform:uppercase}@media(max-width:480px){.has-siblings .dops-section-nav-group__label{display:block}}.dops-section-nav-group__label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-section-nav-tab .count{margin-left:8px}@media(min-width:481px){.dops-section-nav-tabs{flex:1 0 auto;width:0}.dops-section-nav-tabs.is-dropdown{flex:0 1 auto;margin:8px;position:relative;width:auto}}.dops-section-nav-tabs__list{list-style:none;margin:0}@media(min-width:481px){.dops-section-nav-tabs__list{display:flex;overflow:hidden;width:100%}.is-dropdown .dops-section-nav-tabs__list{display:none}}.dops-section-nav-tab{margin-bottom:0}@media(min-width:481px){.dops-section-nav-tab{border-bottom:2px solid transparent;border-top:none;flex:none;text-align:center;width:auto}.dops-section-nav-tab.is-selected{border-bottom-color:#414141}}.dops-section-nav-tab__link,.dops-section-nav-tab__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-section-nav-tab__link{align-items:center;box-sizing:border-box;color:#414141;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;line-height:18px;padding:15px;width:100%}.dops-section-nav-tab__link:visited{color:#414141}.dops-section-nav-tab__link[disabled],.notouch .dops-section-nav-tab__link[disabled]:hover{color:#eee;cursor:default}.is-selected .dops-section-nav-tab__link{background-color:#2271b1;color:#fff}.dops-section-nav-tab__link:focus{box-shadow:none;outline:none}.dops-accessible-focus .dops-section-nav-tab__link:focus{outline:1px solid #a2a2a2}.is-external .dops-section-nav-tab__link:after{font-size:18px;padding-left:2px}.dops-section-nav-tab__link:hover{color:#0a4b78}.notouch .dops-section-nav-tab__link:hover{color:#2271b1}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#fff}@media(min-width:481px){.dops-section-nav-tab__link{color:#2271b1;display:block;font-weight:400;padding:16px 16px 14px;width:auto}.dops-section-nav-tab__link:visited{color:#2271b1}.is-selected .dops-section-nav-tab__link{background-color:transparent;color:#414141}.is-selected .dops-section-nav-tab__link:after{display:none}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#414141}}.dops-section-nav-tab__text{color:inherit;display:block;flex:1 0 auto;width:0}@media(min-width:481px){.dops-section-nav-tab__text{display:inline;flex:none;width:auto}}.dops-section-nav-tabs__dropdown{position:relative;width:100%;z-index:3}.dops-section-nav-tabs__dropdown.is-open{z-index:4}.dops-section-nav-tabs__dropdown .dops-select-dropdown__container{position:static}.dops-section-nav__segmented .dops-segmented-control{margin:0 15px}.dops-section-nav__segmented .dops-segmented-control__link{padding:3px 16px 5px}@media(max-width:480px){.dops-section-nav .dops-search.is-pinned{height:46px}}.dops-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;display:block;margin:0 auto 10px;padding:16px;position:relative}.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media(min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-right:48px}h2.dops-card-title{font-size:rem(20px)}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;position:absolute;right:16px;top:0}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#3582c4,20%)}.dops-popover{font-size:11px;left:0;position:absolute;right:auto;top:0;z-index:1000}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);position:relative;text-align:center}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{border-bottom:none;border-left-color:transparent;border-right-color:transparent;border-top-style:solid;bottom:0;left:50%;margin-left:-10px}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{border:10px solid transparent;border-bottom:none;border-top-color:#fff;bottom:2px;content:" ";left:50%;margin-left:-10px;position:absolute}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{border-bottom-style:solid;border-left-color:transparent;border-right-color:transparent;border-top:none;left:50%;margin-left:-10px;top:0}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{border:10px solid transparent;border-bottom:10px solid #fff;border-top:none;content:" ";left:50%;margin-left:-10px;position:absolute;top:2px}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{border-bottom-color:transparent;border-left-style:solid;border-right:none;border-top-color:transparent;margin-top:-10px;right:0;top:50%}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{border:10px solid transparent;border-left:10px solid #fff;border-right:none;content:" ";margin-top:-10px;position:absolute;right:2px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{border-bottom-color:transparent;border-left:none;border-right-style:solid;border-top-color:transparent;left:0;margin-top:-10px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{border:10px solid transparent;border-left:none;border-right-color:#fff;content:" ";left:2px;margin-top:-10px;position:absolute;top:50%}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-left:0;padding-right:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;right:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;position:relative;text-align:left;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#3582c4;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-left:42px}.dops-popover__menu-item .gridicon{color:#bbb;margin-right:8px;vertical-align:bottom}.dops-popover__hr{background:#eee;margin:8px 0}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-block;flex:none;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:40px}.form-toggle__switch:after,.form-toggle__switch:before{content:"";display:block;height:20px;position:relative;width:20px}.form-toggle__switch:after{background:#fff;border-radius:50%;left:0;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle__label{cursor:pointer;display:flex}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-left:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #3582c4}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{cursor:default;opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;height:16px;width:24px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px}.dops-section-header.dops-card{display:flex;flex-wrap:wrap;max-width:100%;padding-bottom:.6875rem;padding-top:.6875rem;position:relative}.dops-section-header.dops-card:after{content:""}.dops-section-header__label{align-items:center;color:#414141;display:flex;flex-grow:1;font-size:.875rem;line-height:1.75rem;min-width:0;position:relative}.dops-section-header__label .dops-count{margin-left:.5rem}.dops-section-header__label-text{margin-right:.5rem;min-width:0;overflow:hidden;padding-right:.5rem;position:relative;white-space:nowrap;width:100%}.dops-section-header__label-text:before{-webkit-touch-callout:none;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);bottom:0;content:"";display:block;height:auto;left:auto;pointer-events:none;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none;width:8px}.has-card-badge .dops-section-header__label-text{width:auto}.dops-section-header__actions{flex-grow:0;position:relative}.dops-section-header__actions:after{clear:both;content:".";display:block;height:0;visibility:hidden}.section-header__actions .button{float:left;margin-right:.5rem}.section-header__actions .button:last-child{margin-right:0}.dops-notice{animation:appear .3s ease-in-out;background:#414141;border-radius:3px;box-sizing:border-box;color:#fff;display:flex;line-height:1.5;margin-bottom:24px;position:relative;width:100%}.dops-notice.is-success .dops-notice__icon-wrapper{background:#4ab866}.dops-notice.is-warning .dops-notice__icon-wrapper{background:#f0b849}.dops-notice.is-error .dops-notice__icon-wrapper{background:#d94f4f}.dops-notice.is-info .dops-notice__icon-wrapper{background:#3582c4}.dops-notice .dops-notice__dismiss,.dops-notice.is-error .dops-notice__dismiss,.dops-notice.is-info .dops-notice__dismiss,.dops-notice.is-success .dops-notice__dismiss,.dops-notice.is-warning .dops-notice__dismiss{overflow:hidden}.dops-notice__icon-wrapper{align-items:baseline;align-self:stretch;background:#747474;border-radius:3px 0 0 3px;color:#fff;display:flex;flex-shrink:0;justify-content:center;width:47px}.dops-notice__icon-wrapper .gridicon{margin-top:10px}@media(min-width:481px){.dops-notice__icon-wrapper .gridicon{margin-top:12px}}.dops-notice__content.dops-notice__content{flex-grow:1;font-size:12px;padding:13px}@media(min-width:481px){.dops-notice__content.dops-notice__content{font-size:14px}}.dops-notice__content.dops-notice__content a{color:#fff;text-decoration:underline}.dops-notice__content.dops-notice__content a:hover,.dops-notice__text a.dops-notice__text-no-underline{text-decoration:none}.dops-notice__text a,.dops-notice__text a:visited{color:#fff;text-decoration:underline}.dops-notice__text a:hover,.dops-notice__text a:visited:hover{color:#fff;text-decoration:none}.dops-notice__text ul{margin-bottom:0;margin-left:0}.dops-notice__text li{margin-left:2em;margin-top:.5em}.dops-notice__text p{margin-bottom:0;margin-top:.5em}.dops-notice__text p:first-child{margin-top:0}.dops-notice__button{cursor:pointer;margin-left:.428em}.dops-notice__dismiss{cursor:pointer;flex-shrink:0;padding:12px 12px 0}.dops-notice__dismiss .gridicon{height:18px;width:18px}@media(min-width:481px){.dops-notice__dismiss{padding:11px 11px 0}.dops-notice__dismiss .gridicon{height:24px;width:24px}}.dops-notice .dops-notice__dismiss{color:#bbb}.dops-notice .dops-notice__dismiss:focus,.dops-notice .dops-notice__dismiss:hover{color:#fff}a.dops-notice__action{align-items:center;color:#bbb;cursor:pointer;display:flex;font-size:12px;font-weight:400;padding:13px;text-decoration:none;white-space:nowrap}@media(min-width:481px){a.dops-notice__action{align-items:center;border-radius:0;flex-grow:0;flex-shrink:1;font-size:14px;margin:0 0 0 auto;padding:13px 16px}a.dops-notice__action .gridicon{height:24px;width:24px}}a.dops-notice__action:visited{color:#bbb}a.dops-notice__action:hover{color:#fff}a.dops-notice__action .gridicon{height:18px;margin-left:8px;opacity:.7;width:18px}.dops-notice.is-compact{border-radius:3px;display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:1.5;margin:0;min-height:20px;padding:0;text-decoration:none;text-transform:none;vertical-align:middle;width:auto}.dops-notice.is-compact .dops-notice__content{font-size:12px;padding:6px 10px}.dops-notice.is-compact .dops-notice__icon-wrapper{width:28px}.dops-notice.is-compact .dops-notice__icon-wrapper .dops-notice__icon{height:18px;margin:0;width:18px}.dops-notice.is-compact .dops-notice__icon-wrapper .gridicon{margin-top:6px}.dops-notice.is-compact .dops-notice__dismiss{align-self:center;flex:none;margin:0 8px 0 0;padding:0;position:relative}.dops-notice.is-compact .dops-notice__dismiss .gridicon{height:18px;width:18px}.dops-notice.is-compact a.dops-notice__action{align-self:center;background:transparent;display:inline-block;font-size:12px;margin:0 0 0 16px;padding:0 10px}.dops-notice.is-compact a.dops-notice__action:active,.dops-notice.is-compact a.dops-notice__action:focus,.dops-notice.is-compact a.dops-notice__action:hover{background:transparent}.dops-notice.is-compact a.dops-notice__action .gridicon{height:14px;margin-left:8px;opacity:1;vertical-align:sub;width:14px}.dops-plan-icon{background-repeat:no-repeat;height:inherit;width:inherit}.dops-plan-icon__free .dops-plan-icon__free-0{fill:#78dcfa}.dops-plan-icon__free .dops-plan-icon__free-1{fill:#fff}.dops-plan-icon__free .dops-plan-icon__free-2{fill:#006a95}.dops-plan-icon__free .dops-plan-icon__free-3{fill:#0087be}.dops-plan-icon__free .dops-plan-icon__free-4{fill:#00a4e7}.dops-plan-icon__personal .dops-plan-icon__personal-0{fill:#f0b849}.dops-plan-icon__personal .dops-plan-icon__personal-1{fill:#a2a2a2}.dops-plan-icon__personal .dops-plan-icon__personal-2{fill:#d5d5d5}.dops-plan-icon__personal .dops-plan-icon__personal-3{fill:#fff}.dops-plan-icon__personal .dops-plan-icon__personal-4{fill:#888}.dops-plan-icon__personal .dops-plan-icon__personal-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-0{fill:#4ab866}.dops-plan-icon__premium .dops-plan-icon__premium-1{fill:#a2a2a2}.dops-plan-icon__premium .dops-plan-icon__premium-2{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-3{fill:#fff}.dops-plan-icon__premium .dops-plan-icon__premium-4{fill:#d5d5d5}.dops-plan-icon__premium .dops-plan-icon__premium-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-6{fill:#555}.dops-plan-icon__business .dops-plan-icon__business-0{fill:#855da6}.dops-plan-icon__business .dops-plan-icon__business-1{fill:#fff}.dops-plan-icon__business .dops-plan-icon__business-2{fill:#eee}.dops-plan-icon__business .dops-plan-icon__business-3{fill:#0087be}.dops-plan-icon__business .dops-plan-icon__business-4{fill:#005082}.dops-banner.dops-card{border-left:3px solid #0087be;display:flex;padding:12px 6px 12px 12px;position:relative;z-index:2}.dops-banner.dops-card.is-card-link{padding:12px 48px 12px 16px}.dops-banner.dops-card.is-dismissible{padding-right:48px}.dops-banner.dops-card .dops-banner__icon{color:#0087be}.dops-banner.dops-card .dops-banner__icon-circle{background-color:#0087be}.dops-banner.dops-card.is-jetpack-info{border-left-color:#069e08}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon{color:#069e08}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon-circle{background-color:#069e08}.dops-banner.dops-card.is-product{border-left-color:#3895ba}.dops-banner.dops-card.is-product .dops-banner__icon{color:#3895ba}.dops-banner.dops-card.is-product .dops-banner__icon-circle{background-color:#3895ba}.dops-banner.dops-card.is-plan{border-left-color:#069e08}.dops-banner.dops-card.is-plan .dops-banner__icon{color:#069e08}.dops-banner.dops-card.is-plan .dops-banner__icon-circle{background-color:#069e08}.dops-banner.dops-card.is-plan.is-upgrade-personal{border-left-color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-personal .dops-banner__icon{color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-personal .dops-banner__icon-circle{background-color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-premium{border-left-color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-premium .dops-banner__icon{color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-premium .dops-banner__icon-circle{background-color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-business{border-left-color:#855da6}.dops-banner.dops-card.is-plan.is-upgrade-business .dops-banner__icon{color:#855da6}.dops-banner.dops-card.is-plan.is-upgrade-business .dops-banner__icon-circle{background-color:#855da6}.dops-banner.dops-card.is-plan.is-bundle{border-left-color:#984a9c}.dops-banner.dops-card.is-plan.is-bundle .dops-banner__icon{color:#984a9c}.dops-banner.dops-card.is-plan.is-bundle .dops-banner__icon-circle{background-color:#984a9c}.dops-banner.dops-card .dops-card__link-indicator{align-items:center;color:#0087be;display:flex}.dops-banner.dops-card:hover{transition:all .1s ease-in-out}.dops-banner.dops-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.dops-banner.dops-card:hover .dops-card__link-indicator{color:#005082}@media(min-width:481px){.dops-banner.dops-card{padding:12px 16px}.dops-banner.dops-card.is-dismissible{padding-right:16px}}.dops-banner__icons{display:flex}.dops-banner__icons .dops-banner__icon,.dops-banner__icons .dops-banner__icon-circle{border-radius:50%;flex-shrink:0;height:24px;margin-right:16px;margin-top:-2px;text-align:center;top:4px;width:24px}.dops-banner__icons .dops-banner__icon{align-self:center;color:#fff;display:block}.dops-banner__icons .dops-banner__icon-circle{color:#fff;display:none;padding:3px 4px 4px 3px}.dops-banner__icons .dops-banner__icon-circle-svg{transform:translate(1px,1px)}@media(min-width:481px){.dops-banner__icons{align-items:center}.dops-banner__icons .dops-banner__icon{display:none}.dops-banner__icons .dops-banner__icon-circle{display:block}}.dops-banner__icon-plan{display:flex;margin-right:16px}.dops-banner__icon-plan .dops-plan-icon{height:32px;width:32px}@media(min-width:481px){.dops-banner__icon-plan{align-items:center}}.dops-banner__content{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}@media(min-width:481px){.dops-banner__content{flex-wrap:nowrap}}.dops-banner__info{flex-grow:1;line-height:1.4;width:100%}.dops-banner__info .dops-banner__description,.dops-banner__info .dops-banner__list,.dops-banner__info .dops-banner__title{color:#414141}.dops-banner__info .dops-banner__title{font-size:.875rem;font-weight:500}.dops-banner__info .dops-banner__description{font-size:.75rem;margin-top:3px}.dops-banner__info .dops-banner__list{font-size:.75rem;list-style:none;margin:0}.dops-banner__info .dops-banner__list li{margin:6px 0}.dops-banner__info .dops-banner__list li .gridicon{color:#a2a2a2;display:none}@media(min-width:481px){.dops-banner__info{width:auto}.dops-banner__info .dops-banner__list li .gridicon{display:inline;margin-right:12px;vertical-align:bottom}}.dops-banner__action{align-self:center;font-size:.75rem;margin:8px 0 0;text-align:left;width:100%}.dops-banner__action .dops-banner__prices{display:flex;justify-content:flex-start}.dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:0}.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted,.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:8px}@media(min-width:481px){.dops-banner__action{margin:0 4px 0 8px;text-align:center;width:auto}.is-dismissible .dops-banner__action{margin-top:40px}.dops-banner__action .dops-banner__prices{justify-content:flex-end;text-align:right}}.module-overridden-banner.dops-banner.is-compact{margin-bottom:0}.module-overridden-banner.dops-banner .dops-banner__description a{text-decoration:underline}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{color:#c8c8c8;cursor:pointer}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:left}.dops-external-link .gridicons-external{color:currentColor;margin-left:.5rem;position:relative;top:.125rem}.jp-support-info{position:absolute;right:1.5625rem;top:1.6875rem;z-index:1}@media(max-width:480px){.jp-support-info{right:1rem;top:1.25rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{border-top:1px solid hsla(0,0%,64%,.5);display:block;margin-top:.875rem;padding-top:.75rem}.dops-text-input.dops-text-input{background-color:#fff;border:1px solid #d5d5d5;box-shadow:none;box-sizing:border-box;color:#414141;font-size:16px;line-height:1.5;margin:0;padding:7px 14px;transition:all .15s ease-in-out;width:100%}.dops-text-input.dops-text-input::placeholder{color:#a2a2a2}.dops-text-input.dops-text-input:hover{border-color:#bbb}.dops-text-input.dops-text-input:focus{border-color:#0087be;box-shadow:0 0 0 2px #78dcfa;outline:none}.dops-text-input.dops-text-input:focus::-ms-clear{display:none}.dops-text-input.dops-text-input:disabled{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-text-input.dops-text-input:disabled:hover{cursor:default}.dops-text-input.dops-text-input:disabled::placeholder{color:#bbb}.dops-text-input.dops-text-input{-webkit-appearance:none}.dops-text-input.dops-text-input.is-valid{border-color:#4ab866}.dops-text-input.dops-text-input.is-valid:hover{border-color:#3a9551}.dops-text-input.dops-text-input.is-error{border-color:#d94f4f}.dops-text-input.dops-text-input.is-error:hover{border-color:#c92c2c}.dops-text-input.dops-text-input:focus.is-valid{box-shadow:0 0 0 2px #caead2}.dops-text-input.dops-text-input:focus.is-valid:hover{box-shadow:0 0 0 2px #a6dcb3}.dops-text-input.dops-text-input:focus.is-error{box-shadow:0 0 0 2px #f9e2e2}.dops-text-input.dops-text-input:focus.is-error:hover{box-shadow:0 0 0 2px #f0b8b8}.jp-form-settings-group .jp-toggle-set{position:relative}.jp-form-settings-group .jp-toggle-set .jp-support-info{right:-1.25rem;top:.3125rem}@media(max-width:480px){.jp-form-settings-group .jp-toggle-set .jp-support-info{right:-2rem;top:.3125rem}}.jetpack-benefits__general-benefits-section{margin:0 auto;max-width:800px;width:100%}.jetpack-benefits__general-benefits-list{font-size:1rem;list-style:disc;padding-left:1.25rem;text-align:left;width:100%}.jp-connection__disconnect-card{background-color:#fff;border:none;border-radius:3px;box-shadow:0 0 15px #e2e2df;margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:left;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-right:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:right}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-right:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:1rem;margin-right:0}}.jp-connection__disconnect-dialog h1{font-size:24px;font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:24px;font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:16px;margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:#000;text-decoration-thickness:2px}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:#000}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:#f9f9f6;border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:#fff;border-top:1px solid #dcdcde;bottom:0;padding:2rem 0;position:-webkit-sticky;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(180deg,transparent,#f9f9f6);bottom:calc(100% + 1px);content:"";display:block;height:80px;left:0;position:absolute;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:#000!important;margin-right:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:#d63639!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:#000!important}.jp-connection__disconnect-dialog__button-wrap{text-align:left}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:#d63639}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:36px}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-left:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px #dcdcde;display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:#dcdcde;background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;left:24px;position:absolute;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:#d63639;border-radius:50px;height:80px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px #e2e2df;margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:left;width:800px}.jp-connect__disconnect-survey-card--selected{background:#e2e2df;border-color:#000}.jp-connect__disconnect-survey-card:after{border-right:2px solid #000;border-top:2px solid #000;content:"";display:block;height:5px;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%) rotate(45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:#2c3338}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:#2c3338;flex-grow:1;max-width:calc(100% - 40px);padding-right:40px}.jp-connect-user-bar__card{align-items:center;background:#f3f5f6;border-top:1px solid #ccd0d4;display:flex;justify-content:space-between;padding:8px 24px}.jp-connect-user-bar__card .jp-connect-user-bar__text{color:#414141;font-size:13px;font-weight:500;height:16px;line-height:16px}.jp-connect-user-bar__card .jp-connect-user-bar__button{order:3}.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled]{background:#f3f5f6;border:1px solid #0071a1;border-radius:3px;box-sizing:border-box;color:#0071a1;float:right;font-size:13px;font-weight:600;line-height:16px;text-align:center;white-space:nowrap}.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled[disabled],.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled],.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled]:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled][disabled]{background:#f3f5f6!important;color:#0071a1!important}.progress-bar{background-color:#c3c4c7;border-radius:4.5px;display:inline-block;height:9px;position:relative;width:100%}.progress-bar.is-compact{height:4px}.progress-bar__progress{background-color:#2271b1;border-radius:4.5px;display:inline-block;height:100%;left:0;position:absolute;top:0;transition:width .2s}@media(prefers-reduced-motion:reduce){.progress-bar__progress{transition:none}}.progress-bar.is-pulsing .progress-bar__progress{-webkit-animation:progress-bar-animation 3.3s linear infinite;animation:progress-bar-animation 3.3s linear infinite;background-image:linear-gradient(-45deg,#2271b1 28%,#5198d9 0,#5198d9 72%,#2271b1 0);background-size:50px 100%}@media(prefers-reduced-motion:reduce){.progress-bar.is-pulsing .progress-bar__progress{-webkit-animation:none;animation:none}}@-webkit-keyframes progress-bar-animation{0%{background-position:100px 0}}@keyframes progress-bar-animation{0%{background-position:100px 0}}.percentage-bar{border-radius:0;height:8px;width:150px}.percentage-bar .progress-bar__progress{border-radius:0}.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important}.screen-reader-text:active,.screen-reader-text:focus,.screen-reader-text:hover{clip:auto!important;background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:z-index("screen-reader-text-parent",".screen-reader-text:focus")}.dops-foldable-card.dops-card{padding:0;position:relative;transition:margin .15s linear}.dops-foldable-card.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-foldable-card.dops-card.is-expanded{margin-bottom:8px}.dops-foldable-card.dops-card .is-clickable{cursor:pointer}.dops-foldable-card__header{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;min-height:64px;padding:16px;position:relative;width:100%}.dops-foldable-card__header.has-border .dops-foldable-card__summary,.dops-foldable-card__header.has-border .dops-foldable-card__summary_expanded{margin-right:48px}.dops-foldable-card__header.has-border .dops-foldable-card__expand{border-left:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card__header{min-height:40px;padding:8px 16px}.dops-foldable-card.is-expanded .dops-foldable-card__header{height:inherit;margin-bottom:0;min-height:64px}.dops-foldable-card.is-expanded.is-compact .dops-foldable-card__header{min-height:40px}.dops-foldable-card.is-disabled .dops-foldable-card__header{opacity:.2}.dops-foldable-card__action{background:none;border:0;height:100%;position:absolute;right:0;top:0}.dops-foldable-card.is-expanded .dops-foldable-card__action{height:100%}.dops-foldable-card.is-disabled .dops-foldable-card__action{cursor:default}.dops-accessible-focus .dops-foldable-card__action:focus{outline:thin dotted}button.dops-foldable-card__action{cursor:pointer;outline:0}.dops-foldable-card__main{align-items:center;display:block;margin-right:5px;max-width:calc(100% - 36px);width:100%}@media(max-width:480px){.dops-foldable-card__main{flex:1 1}}.dops-foldable-card__secondary{align-items:center;display:flex;flex:1 1;justify-content:flex-end}.dops-foldable-card__expand{width:48px}.dops-foldable-card__expand .gridicon{fill:#a2a2a2;align-items:center;display:flex;transition:transform .15s cubic-bezier(.175,.885,.32,1.275),color .2s ease-in;vertical-align:middle;width:100%}.dops-foldable-card.is-expanded .dops-foldable-card__expand .gridicon{transform:rotate(180deg)}.dops-foldable-card__expand .gridicon:hover{fill:#a2a2a2}.dops-foldable-card__expand:focus .gridicon,.dops-foldable-card__expand:hover .gridicon{fill:#3582c4}.dops-foldable-card__header-text{font-size:1.125rem;width:100%}.dops-foldable-card__subheader{color:#6f6f6f;font-size:.875rem;margin-bottom:.125rem;margin-top:.125rem}.dops-foldable-card__content{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__content{border-top:1px solid #f6f6f6;display:block;padding:16px}.dops-foldable-card.is-compact .dops-foldable-card.is-expanded .dops-foldable-card__content{padding:8px}.dops-foldable-card.is-expanded .dops-foldable-card__content p:first-child{margin-top:0}.dops-foldable-card.is-expanded .dops-foldable-card__content p:last-child{margin-bottom:0}.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{color:#a2a2a2;display:inline-block;font-size:12px;margin-right:40px;transition:opacity .2s linear}.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{flex:2;text-align:right;transition:none}@media(max-width:480px){.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{display:none}}.dops-foldable-card__summary{display:inline-block;opacity:1}.dops-foldable-card.is-expanded .dops-foldable-card__summary,.dops-foldable-card__summary_expanded,.has-expanded-summary .dops-foldable-card.is-expanded .dops-foldable-card__summary{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__summary_expanded{display:inline-block}.form-input-validation{animation:appear .3s ease-in-out;border-radius:1px;box-sizing:border-box;color:#4ab866;font-size:14px;padding:6px 24px 11px 34px;position:relative}.form-input-validation.is-error{color:#d94f4f}.form-input-validation.is-warning{color:#f0b849}.form-input-validation .gridicon{float:left;margin-left:-34px}.dops-textarea{background-color:#fff;border:1px solid #d5d5d5;box-shadow:none;box-sizing:border-box;color:#414141;font-size:1rem;line-height:1.5;margin:0;min-height:5.75rem;padding:.4375rem .875rem;transition:all .15s ease-in-out;width:100%}.dops-textarea::placeholder{color:#a2a2a2}.dops-textarea:hover{border-color:#bbb}.dops-textarea:focus{border-color:#0087be;box-shadow:0 0 0 2px #78dcfa;outline:none}.dops-textarea:focus::-ms-clear{display:none}.dops-textarea:disabled{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-textarea:disabled:hover{cursor:default}.dops-textarea:disabled::placeholder{color:#bbb}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-right:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-right:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-left:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-left:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:left;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 2px -4px 0;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.dops-clipboard-button-input{display:block;position:relative}.dops-clipboard-button-input .dops-clipboard-button{overflow:visible;position:absolute;right:4px;top:50%;transform:translateY(-50%)}.dops-clipboard-button-input .dops-clipboard-button:not(:disabled):before{-webkit-touch-callout:none;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff 90%);bottom:0;content:"";display:block;height:auto;left:auto;pointer-events:none;position:absolute;right:0;right:calc(100% + 1px);top:0;-webkit-user-select:none;user-select:none;width:16px}.dops-clipboard-button-input .dops-clipboard-button:focus:before{right:calc(100% + 3px)}.jp-recommendations-question__content{display:flex;flex-direction:column}@media(min-width:661px){.jp-recommendations-question__main--with-illustration .jp-recommendations-question__content{padding-right:48px}}.jp-recommendations-question__progress-bar{margin:32px 32px 0}.jp-recommendations-question__progress-bar .progress-bar{width:70px}@media(max-width:480px){.jp-recommendations-question__progress-bar{margin:16px 16px 32px}}.jp-recommendations-question__question{font-size:1.5rem;margin:32px 32px 0}@media(max-width:480px){.jp-recommendations-question__question{margin:0 16px 32px}}.jp-recommendations-question__description{font-size:16px;margin:32px 32px 24px}@media(max-width:480px){.jp-recommendations-question__description{margin:0 16px 16px}}.jp-recommendations-question__description .gridicons-external{margin-left:.25rem}.jp-recommendations-question__description a{white-space:nowrap}.jp-recommendations-question__main--with-illustration .jp-recommendations-question__description{margin-right:0}@media(max-width:660px){.jp-recommendations-question__main--with-illustration .jp-recommendations-question__description{margin-right:32px}}.jp-recommendations-question__answer{display:flex;flex-direction:column;height:100%}.jp-recommendations-question__illustration-container{position:relative;width:100%}.jp-recommendations-question__illustration-container img{bottom:0;position:absolute;right:0}@media(max-width:660px){.jp-recommendations-question__illustration-container{display:none}}.jp-recommendations-question__illustration-background{width:100%}.jp-recommendations-question__illustration-foreground{margin:10%;width:75%}.jp-recommendations-question__install-section{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:flex-end}.jp-recommendations-question__install-section button{margin-bottom:16px;margin-top:auto;min-width:172px}.jp-recommendations-question__install-section a{margin-bottom:32px}.jp-recommendations-question__install-section a.dops-button{margin-bottom:16px;text-align:center}@media(max-width:480px){.jp-recommendations-question__install-section a.dops-button{width:100%}.jp-recommendations-question__install-section{padding:64px 16px 0}}.jp-loading-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.jp-recommendations-product-suggestion-item{border:1px solid #dcdcde;border-radius:8px;padding:24px}.jp-recommendations-product-suggestion-item__content{display:flex;flex-direction:column}@media(min-width:481px){.jp-recommendations-product-suggestion-item__content{align-self:start;display:grid;grid-template-columns:1fr auto}}.jp-recommendations-product-suggestion-item__title{font-size:1.5rem;line-height:1.2;margin-bottom:16px;margin-top:0}@media(min-width:481px){.jp-recommendations-product-suggestion-item__title{grid-column:1}}.jp-recommendations-product-suggestion-item__description{font-size:.875rem;line-height:1.5;margin-bottom:16px;margin-top:0;max-width:370px}@media(min-width:481px){.jp-recommendations-product-suggestion-item__description{grid-column:1}}@media(min-width:961px){.jp-recommendations-product-suggestion-item__description{max-width:280px}}.jp-recommendations-product-suggestion-item__actions{display:flex;flex-direction:column}@media(min-width:481px){.jp-recommendations-product-suggestion-item__actions{grid-column:1}}.jp-recommendations-product-suggestion-item__checkout-button{align-self:flex-start;font-size:1rem;margin-bottom:16px;margin-top:0;text-align:center}.jp-recommendations-product-suggestion-item__external-link{align-self:flex-start;font-size:1rem;line-height:1.5}.jp-recommendations-product-suggestion-item__price{display:flex;flex-direction:row;margin-bottom:16px}@media(min-width:481px){.jp-recommendations-product-suggestion-item__price{flex-direction:column;grid-column:2;grid-row:1/4;margin-left:auto;padding-left:16px}}.jp-recommendations-product-suggestion-item__raw-price{display:flex;margin:0}@media(min-width:481px){.jp-recommendations-product-suggestion-item__raw-price{margin-left:auto}}.jp-recommendations-product-suggestion-item__currency-symbol{font-size:1.25rem;line-height:1.4;padding-right:1px}.jp-recommendations-product-suggestion-item__price-integer{font-size:2.5rem;font-weight:700;line-height:1}.jp-recommendations-product-suggestion-item__price-fraction{font-size:.875rem;font-weight:700;line-height:1.5;padding-left:1px}.jp-recommendations-product-suggestion-item__billing-time-frame{color:#787c82;font-size:.8125rem;margin-left:10px;text-align:center}@media(min-width:481px){.jp-recommendations-product-suggestion-item__billing-time-frame{margin-left:0;margin-top:8px}}.jetpack-money-back-guarantee{align-items:center;color:#1d2327;display:flex;font-size:.875rem;justify-content:center;line-height:1.5}.jetpack-money-back-guarantee__icon svg{display:block;height:23px;width:23px}.jetpack-money-back-guarantee__text{margin-left:8px}.jp-recommendations-product-suggestion__container{margin-bottom:32px;text-align:center}.jp-recommendations-product-suggestion__items{display:flex;flex-direction:column;margin:8px 16px 24px;max-width:660px;text-align:left}@media(min-width:961px){.jp-recommendations-product-suggestion__items{display:grid;gap:16px;grid-template-columns:1fr 1fr;grid-template-rows:auto;max-width:none}}@media(min-width:481px){.jp-recommendations-product-suggestion__items{margin-left:32px;margin-right:32px}}@media(max-width:960px){.jp-recommendations-product-suggestion__item{margin-bottom:16px}.jp-recommendations-product-suggestion__item:last-of-type{margin-bottom:0}}.jp-recommendations-product-suggestion__introductory-pricing{color:#1d2327;font-size:.875rem;letter-spacing:.1px;line-height:1.5;margin-bottom:10px}.jp-recommendations-product-suggestion__money-back-guarantee{margin-bottom:24px}.jp-recommendations-product-suggestion__skip{display:inline-block;font-size:1rem;line-height:1.5}.jp-recommendations-product-purchased{display:flex;flex-direction:column;height:100%;margin:0 16px 32px}@media(min-width:481px){.jp-recommendations-product-purchased{margin-left:32px;margin-right:32px}}.jp-recommendations-product-purchased__features{margin:0 0 32px}.jp-recommendations-product-purchased__feature{align-items:center;display:flex}.jp-recommendations-product-purchased svg{fill:#069e08;margin-right:10px}.jp-recommendations-product-purchased__next{align-self:center}@media(min-width:481px){.jp-recommendations-product-purchased__next{margin-top:auto}}.jp-checkbox-answer__container{background:#fff;border:1px solid #d5d5d5;border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex}.jp-checkbox-answer__container.checked{background:#f8fbff;border:1px solid #3582c4}@media(max-width:480px){.jp-checkbox-answer__container{margin-bottom:8px}}.jp-checkbox-answer__title{align-items:center;display:flex;padding:15px 0;width:100%}.jp-checkbox-answer__checkbox{margin:18px 8px 14px 16px}.jp-checkbox-answer__info{padding:16px 16px 16px 0}.jp-recommendations-question__site-type-checkboxes{margin-bottom:16px;text-align:left}@media(min-width:481px){.jp-recommendations-question__site-type-checkboxes{display:grid;gap:16px;grid-template-columns:auto auto;grid-template-rows:auto auto}}@media(max-width:480px){.jp-recommendations-question__site-type-checkboxes{display:flex;flex-direction:column}}.jp-recommendations-question__site-type-answer-container{margin:0 0 32px 32px;text-align:center}@media(max-width:660px){.jp-recommendations-question__site-type-answer-container{margin:0 32px 32px}}@media(max-width:480px){.jp-recommendations-question__site-type-answer-container{margin:0 16px 16px}.jp-recommendations-question__site-type-answer-container .dops-button{width:100%}}.jp-recommendations-site-type-question__continue-description{color:#646970;margin:24px auto 0;max-width:300px}@media(max-width:480px){.jp-recommendations-site-type-question__continue-description{display:none}}.jp-recommendations-site-type__illustration{height:200px;padding:65px}.jp-install-button__spinner-container{display:flex;justify-content:center}.jp-recommendations-feature-summary{border-bottom:1px solid #e1e1e1;display:grid;grid-template-columns:auto 120px;min-width:275px}.jp-recommendations-feature-summary.is-feature-enabled{grid-template-columns:30px auto 120px}.jp-recommendations-feature-summary .gridicons-checkmark-circle{fill:#069e08}.jp-recommendations-feature-summary:last-child{border-bottom:none}.jp-recommendations-feature-summary__checkmark{align-content:center;align-items:center;display:flex}.jp-recommendations-feature-summary__display-name{align-items:center;display:flex;padding-left:12px}.jp-recommendations-feature-summary__cta button{width:100%}.jp-recommendations-feature-summary__cta a{text-align:center;width:100%}.jp-recommendations-feature-summary__actions{padding:8px}.jp-recommendations-sidebar-card{background:linear-gradient(180deg,#c5d9ed 115px,#fff 0);border-radius:8px;width:100%}.jp-recommendations-sidebar-card .dops-button{background:#069e08;border-color:#069e08;text-align:center;width:100%}.jp-recommendations-sidebar-card__illustration-container{text-align:center}.jp-recommendations-sidebar-card__illustration{background:#fff;border-radius:3px;box-shadow:0 0 24px rgba(0,0,0,.16);display:inline-flex;height:115px;justify-content:center;margin-top:24px;padding:8px;width:220px}.jp-recommendations-sidebar-card__content{padding:0 24px 24px}.jp-recommendations-sidebar-card__features{margin:32px 0 8px}.jp-recommendations-sidebar-card__features li{align-items:center;display:flex}.jp-recommendations-sidebar-card__features .gridicons-checkmark-circle{fill:#069e08;margin-right:8px}.jp-recommendations-one-click-restores h2{margin-top:32px}.jp-recommendations-one-click-restores p{margin:16px 0}.jp-recommendations-one-click-restores .jp-recommendations-one-click-restores__cta{margin-top:32px;text-align:center}.apps-badge{display:flex;margin:0;max-height:40px;max-width:135px;overflow:hidden}.apps-badge:first-child{margin-right:8px}.apps-badge img{-ms-interpolation-mode:nearest-neighbor;image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;max-width:100%}.apps-badge.android-app-badge img{transform:scale(1.13) translate(-7px,-5.1px);transform-origin:left}.jp-recommendations-sidebar-card__apps-badge{display:flex;margin-top:32px}.jp-recommendations-sidebar-card__apps-badge .apps-badge{width:50%}.jp-recommendations-product-card-upsell-no-price{background:#fff;border-radius:8px}.jp-recommendations-product-card-upsell-no-price img{margin-right:8px}.jp-recommendations-product-card-upsell-no-price h2{margin:0 0 24px}.jp-recommendations-product-card-upsell-no-price ul{margin:16px 0}.jp-recommendations-product-card-upsell-no-price li{align-items:center;display:flex}.jp-recommendations-product-card-upsell-no-price p{margin:0}.jp-recommendations-product-card-upsell-no-price .gridicons-checkmark-circle{fill:#069e08;margin-right:8px}.jp-recommendations-product-card-upsell-no-price .dops-button{background:#069e08;border-color:#069e08;margin:32px 0 0;text-align:center;width:100%}.jp-recommendations-product-card-upsell-no-price__padding{padding:24px}.jp-recommendations-product-card-upsell-no-price__header-chrome{background:#3582c4;border-top-left-radius:inherit;border-top-right-radius:inherit;color:#fff;padding:8px}.jp-recommendations-product-card-upsell{background:#fff;border-radius:8px}.jp-recommendations-product-card-upsell img{margin-right:8px}.jp-recommendations-product-card-upsell h1{margin-bottom:16px;margin-top:0}.jp-recommendations-product-card-upsell p{margin-bottom:32px;margin-top:16px}.jp-recommendations-product-card-upsell .dops-button{background:#069e08;border-color:#069e08;margin:32px 0 0;text-align:center;width:100%}.jp-recommendations-product-card-upsell .dops-button:hover{background:#007117;border-color:#007117}.jp-recommendations-product-card-upsell__padding{padding:24px}.jp-recommendations-product-card-upsell__header-chrome{background:#3582c4;border-top-left-radius:inherit;border-top-right-radius:inherit;color:#fff;display:flex;padding:8px}.jp-recommendations-product-card-upsell__price{align-items:center;display:flex}.jp-recommendations-product-card-upsell__raw-price h2{display:flex;margin:0}.jp-recommendations-product-card-upsell__currency-symbol{font-size:1.5rem;margin-top:-.25rem}.jp-recommendations-product-card-upsell__price-integer{font-size:3.375rem;font-weight:700;line-height:.7}.jp-recommendations-product-card-upsell__price-fraction{font-size:.75rem;margin-top:-.25rem}.jp-recommendations-product-card-upsell__billing-time-frame{margin-left:12px}.jp-recommendations-product-card-upsell__cta-button .gridicons-external{margin-left:.25rem}.jp-recommendations-summary{background:#e9eff5;border:1px solid #d5d5d5;box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);display:grid;grid-template-columns:57% 43%}@media(max-width:660px){.jp-recommendations-summary{display:flex;flex-direction:column}}.jp-recommendations-summary__content{background:#fff}.jp-recommendations-summary__content.isLoading{align-items:center;display:flex;justify-content:center;min-height:730px}.jp-recommendations-summary__configuration{margin:48px 48px 32px}@media(max-width:480px){.jp-recommendations-summary__configuration{margin:16px 16px 0}}.jp-recommendations-summary__configuration h2{margin:32px 0 16px}.jp-recommendations-summary__sidebar{border-left:1px solid #d5d5d5;padding:24px}@media(max-width:660px){.jp-recommendations-summary__sidebar{padding:0}}.jp-recommendations-summary__sidebar.isLoading{align-items:center;display:flex;justify-content:center;min-height:430px}.jp-recommendations-summary__more-features{align-items:flex-start;border-top:1px solid #dcdcde;display:flex;padding:40px 48px}@media(max-width:480px){.jp-recommendations-summary__more-features{padding:40px 16px}}.jp-recommendations-summary__more-features .gridicons-info-outline{fill:#787c82;flex:0 0 24px;margin-right:18px}.jp-recommendations-summary__more-features .gridicons-external{margin-left:.25rem}.jp-recommendations-summary__more-features>p{margin:1px 0 0}.jp-product-card{background:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);box-sizing:border-box;padding:30px 24px 45px;position:relative;width:100%}@media(min-width:661px){.jp-product-card{padding:40px 48px 60px}}@media(min-width:961px){.jp-product-card{padding-top:60px}}.jp-product-card__inner{display:flex;flex-direction:column;height:100%;max-width:400px}.jp-product-card__icon{display:none;height:16px;margin-bottom:24px}@media(min-width:961px){.jp-product-card__icon{display:block}}.jp-product-card__icon svg{height:100%;width:auto}.jp-product-card__title{color:#000;font-size:2rem;font-weight:700;margin:0 0 18px}.jp-product-card__description{color:#000;font-size:.9375rem;line-height:1.5;margin:0 0 22px}.jp-product-card__features{margin:0 0 30px}.jp-product-card__feature{align-items:center;color:#000;display:flex;margin-bottom:8px}.jp-product-card__feature svg{fill:#069e08;margin-right:10px}.jp-product-card__price{color:#000;display:flex;flex-direction:row;flex-wrap:wrap;margin-top:auto}.jp-product-card__raw-price{display:flex;font-size:3rem;margin:0 22px 0 0}.jp-product-card__raw-price--is-old-price{color:#a7aaad;position:relative}.jp-product-card__raw-price--is-old-price:after{background:#c9356e;border-radius:5px;content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.jp-product-card__currency-symbol{font-size:.5em;line-height:1.4;padding-right:1px}.jp-product-card__price-integer{font-size:inherit;font-weight:700;line-height:1}.jp-product-card__price-fraction{font-size:.35em;font-weight:700;line-height:1.7;padding-left:1px}.jp-product-card__price-description{color:#787c82;display:block;font-size:.875rem;letter-spacing:.2px;margin-bottom:32px}.jp-product-card__checkout{align-self:flex-start;font-size:1rem;padding-left:60px;padding-right:60px;text-align:center}.jp-product-card__checkout--primary,.jp-product-card__checkout--primary:focus,.jp-product-card__checkout--primary:hover{background:#000;border-color:#000;color:#fff}.jp-product-card__checkout--primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #000}.jp-product-card__checkout--secondary{background:transparent;border:2px solid #000;color:#000;transition:all .15s ease-in-out}.jp-product-card__checkout--secondary:focus,.jp-product-card__checkout--secondary:hover{background:#000;border-color:#000;color:#fff}.jp-product-card__checkout--secondary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #000}.jp-product-card__cta{align-items:center;background:#000;border-top-left-radius:4px;border-top-right-radius:4px;color:#fff;display:flex;font-size:.8125rem;font-weight:600;left:0;letter-spacing:.3px;padding:9px 10px;position:absolute;right:0;top:0}.jp-product-card__cta .gridicon{height:16px;margin-right:5px;width:16px}.jp-product-card--has-cta{padding-top:60px}.jp-product-card__media{align-self:center;display:none;height:auto;margin-top:36px;max-width:100%;width:auto}@media(min-width:481px){.jp-product-card__media{display:block}}@media(min-width:661px){.jp-product-card__media{min-width:240px}}@media(min-width:961px){.jp-product-card__media{margin-top:0}}@media(min-width:481px){.jp-product-card--has-media{display:block}}@media(min-width:961px){.jp-product-card--has-media{column-gap:26px;display:grid;grid-template-columns:55% 45%}}@media(min-width:1041px){.jp-product-card--has-media{grid-template-columns:auto auto}}.jp-product-card--has-media .jp-product-card__price{margin-top:0}.jp-product-description>*{margin-bottom:26px}@media(min-width:961px){.jp-product-description--split{column-gap:26px;display:grid;grid-template-columns:50% 50%}}@media(min-width:1041px){.jp-product-description--split{grid-template-columns:auto 410px}}.jp-product-description__introductory-pricing{color:#000;font-size:.875rem;letter-spacing:.1px;line-height:1.5;margin-bottom:10px;text-align:center}.jp-product-description__money-back-guarantee{text-align:center}.jp-product-description .jp-product-card__icon .vertical{height:150%}@media(max-width:960px){.jp-product-description{margin-left:auto;margin-right:auto;max-width:550px}}.jp-product-descriptions__loading{padding-top:48px}.plugin-dash-item p{font-size:var(--font-body-small)}.plugin-dash-item .dops-banner,.plugin-dash-item .plugin-dash-item__content,.plugin-dash-item .plugin-dash-item__section-header{margin-bottom:0;width:100%}.plugin-dash-item .dops-banner.dops-card{border-left-color:#3895ba;height:100%}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle{background-color:#3895ba;height:32px;width:32px}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle .gridicon{margin-bottom:0}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle .gridicon g{transform:none}@media(max-width:480px){.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon{display:none}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle{display:block}}.plugin-dash-item .plugin-dash-item__content{align-items:center;display:flex;flex-direction:row;height:100%}.plugin-dash-item .plugin-dash-item__content .components-spinner{margin-top:0}.dops-tooltip.dops-popover .dops-popover__arrow{border-width:6px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow{border-bottom-color:#555;right:10px;top:4px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-bottom-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-error .dops-popover__arrow{border-bottom-color:#d94f4f}.dops-tooltip.dops-popover.is-bottom-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-warning .dops-popover__arrow{border-bottom-color:#f0b849}.dops-tooltip.dops-popover.is-bottom-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-success .dops-popover__arrow{border-bottom-color:#4ab866}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{border-top-color:#555;bottom:4px;right:10px}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-top-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-error .dops-popover__arrow{border-top-color:#d94f4f}.dops-tooltip.dops-popover.is-top-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-warning .dops-popover__arrow{border-top-color:#f0b849}.dops-tooltip.dops-popover.is-top-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-success .dops-popover__arrow{border-top-color:#4ab866}.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{margin-left:-6px}.dops-tooltip.dops-popover.is-left,.dops-tooltip.dops-popover.is-right{padding-top:0}.dops-tooltip.dops-popover.is-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-top:-6px}.dops-tooltip.dops-popover.is-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-right .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-error .dops-popover__arrow{border-right-color:#d94f4f}.dops-tooltip.dops-popover.is-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-warning .dops-popover__arrow{border-right-color:#f0b849}.dops-tooltip.dops-popover.is-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-success .dops-popover__arrow{border-right-color:#4ab866}.dops-tooltip.dops-popover.is-left .dops-popover__arrow{border-left-color:#555;margin-right:4px}.dops-tooltip.dops-popover.is-right .dops-popover__arrow{border-right-color:#555;margin-left:4px}.dops-tooltip.dops-popover .dops-popover__inner{background:#555;border:0;border-radius:2px;box-shadow:none;color:#fff;font-size:12px;padding:6px 10px;text-align:left}.dops-tooltip.dops-popover.is-error .dops-popover__inner{background:#d94f4f}.dops-tooltip.dops-popover.is-warning .dops-popover__inner{background:#f0b849}.dops-tooltip.dops-popover.is-success .dops-popover__inner{background:#4ab866}.dops-tooltip.dops-popover ul{list-style:none;margin:0;padding:0}.dops-tooltip.dops-popover ul li{border:0;font-size:11px;font-weight:100}.dops-tooltip__hr{background:#a2a2a2;margin:8px 0}.dops-chart{background-color:#fff;box-sizing:border-box;padding:8px 0 8px 20px;position:relative}.dops-chart .dops-chart__y-axis-markers{height:200px;left:0;position:absolute;right:0;top:8px}.dops-chart .dops-chart__y-axis-marker{border-top:1px solid #eee;height:1px;position:absolute;top:0;width:100%}.dops-chart__bar-marker{border-top:1px solid hsla(0,0%,93%,.1);height:1px;position:absolute;top:0;width:100%;z-index:1}.dops-chart .dops-chart__y-axis-marker.is-fifty,.dops-chart__bar-marker.is-fifty,.dops-chart__y-axis-label.is-fifty{top:50%}.dops-chart .dops-chart__y-axis-marker.is-zero,.dops-chart__bar-marker.is-zero,.dops-chart__y-axis-label.is-zero{top:100%}.dops-chart__y-axis{color:#888;float:right;font-size:11px;height:200px;margin-bottom:30px;padding:0 20px 0 10px;position:relative}.dops-chart__y-axis-label{position:absolute;right:20px;text-align:right;top:0}.dops-chart__y-axis-width-fix{color:hsla(0,0%,100%,0)}.dops-chart__x-axis{color:#555;font-size:0;min-height:18px;padding:5px 0;position:relative}.dops-chart__x-axis-label{display:inline-block;font-size:11px;position:absolute;text-align:center;vertical-align:top}.dops-chart__x-axis-label:before{background:#f6f6f6;background-image:linear-gradient(180deg,#f6f6f6 0,#d5d5d5);content:"";display:block;height:5px;left:50%;margin-left:-.5px;position:absolute;top:-4px;width:1px}.dops-chart__bars{display:-ms-flex;display:flex;font-size:0;overflow:hidden}.dops-chart__bar,.dops-chart__bars{height:200px;position:relative;text-align:center}.dops-chart__bar{display:inline-block;-ms-flex-grow:1;flex-grow:1;-ms-flex-shrink:1;flex-shrink:1}.dops-chart__bar.is-weekend{background-color:hsla(0,0%,93%,.5)}.dops-chart__bar:focus{background-color:rgba(240,130,30,.1)}.dops-chart__bar:hover{background-color:hsla(0,0%,93%,.3);cursor:pointer}.dops-chart__bar.is-selected{background-color:rgba(240,130,30,.1);cursor:default}.dops-chart__bar-section{background-color:#0087be;bottom:0;display:inline-block;left:16%;position:absolute;right:16%;top:0;z-index:2}.dops-chart__bar:hover .dops-chart__bar-section.is-bar{background-color:#3582c4}.dops-chart__bar.is-selected .dops-chart__bar-section.is-bar{background-color:#f0821e}.dops-chart__bar-section.is-spacer{background-color:hsla(0,0%,100%,0);z-index:0}.dops-chart__bar-section.is-ghost:after{background-image:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,93%,.5));bottom:0;content:"";display:block;height:40px;left:0;position:absolute;top:160px;width:100%;z-index:1}.dops-chart__bar:hover .dops-chart__bar-section.is-ghost:after{display:none}.dops-chart__bar-section-inner{background:#004069;bottom:0;left:23.33%;position:absolute;right:23.33%}.dops-chart__bar.is-selected .dops-chart__bar-section-inner{background-color:#d63638}.dops-chart__legend{margin-bottom:-8px}.dops-chart__legend:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-chart__legend .dops-chart__legend-options{color:#747474;float:right;font-size:11px;letter-spacing:.1em;list-style-type:none;margin:0;text-transform:uppercase}@media(max-width:480px){.dops-chart__legend .dops-chart__legend-options{width:100%}}.dops-chart__legend-option{display:inline;text-align:left}@media(max-width:480px){.dops-chart__legend-option{display:inline-block;width:50%}}.dops-chart__legend-label{display:inline-block;padding:12px 19px 10px 20px}.dops-chart__legend-label.is-selectable{cursor:pointer}.dops-chart__legend-label.is-selectable:focus,.dops-chart__legend-label.is-selectable:hover{color:tint(#3582c4,20%)}@media(max-width:480px){.dops-chart__legend-label{display:block}}.dops-chart__legend-option .dops-chart__legend-color{background:#0087be;border-radius:1px;display:inline-block;height:10px;margin:3px 5px 3px 8px;vertical-align:top;width:10px}@media(max-width:480px){.dops-chart__legend-option:first-child .dops-chart__legend-color{margin-left:2px}}.dops-chart__legend-color.is-dark-blue{background:#004069}.dops-chart__legend-option .dops-chart__legend-checkbox{float:none;margin:0;vertical-align:top}.dops-chart__empty{bottom:0;clear:both;font-size:14px;left:0;line-height:24px;position:absolute;right:0;text-align:center;top:0;z-index:1}.dops-chart__empty_notice{animation:appear .3s ease-in-out;background:#fff;border-radius:1px;box-shadow:0 0 0 1px hsla(0,0%,84%,.5),0 1px 2px #eee;box-sizing:border-box;font-size:14px;line-height:1.4285;margin-bottom:24px;padding:11px 24px;position:relative;top:97px}@media(min-width:661px){.dops-chart__empty_notice{font-size:inherit;padding:13px 48px}.dops-chart__empty_notice:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;font:normal 16px/1 Noticons;font-size:24px;left:20px;line-height:1;margin:-12px 0 0 -8px;position:absolute;top:23px;vertical-align:middle}}.dops-chart__tooltip .dops-popover__inner{text-align:left;width:230px}.dops-chart__tooltip .dops-popover__inner ul{list-style:none;margin:0;padding:0}.dops-chart__tooltip .dops-popover__inner ul:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-chart__tooltip .dops-popover__inner ul li{border:0;font-size:11px;font-weight:100;height:24px;letter-spacing:.1em;margin-bottom:0;text-transform:uppercase}.dops-chart__tooltip .dops-popover__inner ul li .dops-wrapper{clear:both;display:block;line-height:inherit;line-height:24px}.dops-chart__tooltip .dops-popover__inner ul li .value{color:#d5d5d5;float:right;min-width:22px;text-align:right}.dops-chart__tooltip .dops-popover__inner ul li .label{display:block;overflow:hidden;vertical-align:baseline;word-break:break-all}.dops-chart__tooltip .dops-popover__inner ul li .gridicon{margin-right:6px;margin-top:-3px;vertical-align:middle}.dops-chart__tooltip.is-streak{height:35px;margin-top:-5px}.dops-chart__tooltip.is-streak .dops-popover__arrow:before{left:85px;top:30px}.dops-chart__tooltip.is-streak .dops-popover__inner{position:relative;top:-10px;width:160px}.dops-chart__tooltip.is-streak .dops-popover__inner li{height:14px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label{float:left;text-align:center;width:100%}.rtl .dops-chart__tooltip.is-streak .dops-popover__inner li .label{font-size:11px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label .post-count{font-weight:700}.dops-chart__tooltip.is-streak .dops-popover__inner li .value{float:none}.dops-chart__tooltip .dops-module-content-list-item.is-date-label{border-bottom:1px solid #5d5d5d;font-size:11px;font-weight:700;margin-bottom:2px;padding-bottom:2px;text-transform:uppercase}.dops-chart__tooltip .dops-module-content-list-item.is-published-item{height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .label{color:#d5d5d5;height:19px;letter-spacing:0;overflow:hidden;text-transform:none}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value{min-width:0;width:0}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value:before{background-image:linear-gradient(90deg,rgba(61,89,109,0) 0,rgba(61,89,109,.5),#3d596d);content:"";display:block;height:24px;left:-30px;position:relative;width:30px}.dash-security-bundle{display:flex;flex-direction:column;padding:32px}@media(min-width:661px){.dash-security-bundle{flex-direction:row}}.dash-security-bundle .dash-security-bundle--icon{align-items:flex-start;display:flex;margin-bottom:16px;margin-right:0;margin-top:16px}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--icon{align-items:center;margin-bottom:0;margin-right:32px;margin-top:0}}.dash-security-bundle .dash-security-bundle--content{display:flex;flex:1;flex-direction:column;justify-content:space-between}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--content{flex-direction:row}}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info{display:flex;flex-direction:column}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info h3{font-size:22px;font-weight:700;margin-bottom:0}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info p{font-size:14px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features,.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature{display:flex;flex-direction:row}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature img{width:24px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature p{font-weight:700}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature:not(:last-child){margin-right:16px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-cta{align-items:center;display:flex;flex-direction:row;margin-left:0;margin-top:16px}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-cta{margin-left:16px;margin-top:0}}#jp-plugin-container{min-height:100vh}body.dops-modal-showing{overflow:hidden}.dops-modal-wrapper{-webkit-overflow-scrolling:touch;background-color:rgba(0,0,0,.5);bottom:0;cursor:pointer;display:block;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;text-align:center;top:0;transition:opacity .15s linear;z-index:1050}.dops-modal-wrapper:before{content:"";display:inline-block;height:100%;vertical-align:middle}.dops-modal-wrapper .dops-modal{background-color:#fff;clear:both;cursor:default;display:inline-block;margin:0;max-width:550px;position:relative;text-align:left;transition:all .5s;vertical-align:middle;width:100%;z-index:100}@media(min-width:481px){.dops-modal-wrapper .dops-modal{border-radius:5px;box-shadow:0 4px 20px rgba(0,0,0,.2);height:auto;margin:0 auto}}.jp-product-activated-label{color:#069e08;display:flex;font-weight:600;padding:0 0 8px}@media(min-width:961px){.jp-product-activated-label{justify-content:flex-end}}.jp-product-activated-label .gridicons-checkmark{margin-right:8px}@media(min-width:961px){.my-plan-card{display:flex;flex-flow:row nowrap;justify-content:space-between}}.my-plan-card__primary{display:flex;flex-flow:row nowrap;flex-grow:1}.my-plan-card__header{flex:1}.my-plan-card__title{color:#414141;font-size:1.25rem;font-weight:600;line-height:30px;margin:6px 0}.my-plan-card__tag-line{font-weight:400;line-height:18px;margin:0 0 24px}@media(min-width:961px){.my-plan-card__tag-line{margin-bottom:8px}}.my-plan-card__icon{flex:0 0 auto;height:64px;margin:8px 20px 16px 0;width:64px}@media(max-width:660px){.my-plan-card__icon{display:none}}.my-plan-card__icon img{height:100%;width:100%}.my-plan-card__secondary{align-items:center;display:flex;flex-flow:row wrap;justify-content:space-between;padding:8px 0 0;position:relative}@media(min-width:961px){.my-plan-card__secondary{align-items:flex-end;flex-flow:column nowrap;justify-content:center;padding:0 0 0 24px}}.my-plan-card__secondary:before{border-top:1px solid #c3c4c7;content:"";left:-16px;position:absolute;right:-16px;top:0}@media(min-width:481px){.my-plan-card__secondary:before{left:-24px;right:-24px}}@media(min-width:961px){.my-plan-card__secondary:before{content:none}}.has-action-only .my-plan-card__secondary{justify-content:center;padding-top:0}.has-action-only .my-plan-card__secondary:before{content:none}.my-plan-card__details{color:#888;padding-top:8px}@media(min-width:481px){.my-plan-card__details{white-space:nowrap}}@media(min-width:961px){.my-plan-card__details{padding-top:0}}.my-plan-card__details.is-error{color:#d94f4f}.my-plan-card__action{padding-top:8px;white-space:nowrap}.has-action-only .my-plan-card__action{padding-top:0}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-left:5px}.notices-list{overflow:hidden}.notices-list.is-pinned{position:fixed;top:79px;width:calc(100% - 336px);z-index:z-index("root",".notices-list.is-pinned")}.notices-list.is-pinned .notice{z-index:z-index("root",".notices-list.is-pinned .notice")}.notices-list__whitespace{display:block;height:71px;width:100%}@keyframes appear{0%{opacity:0}to{opacity:1}}.global-notices{bottom:0;left:0;pointer-events:none;position:fixed;right:0;text-align:right;top:auto;z-index:179}@media(min-width:661px){.global-notices{bottom:auto;left:auto;max-width:calc(100% - 68px);right:16px;top:63px}}@media(min-width:961px){.global-notices{max-width:calc(100% - 208px);right:24px;top:71px}}@media(min-width:1041px){.global-notices{max-width:calc(100% - 224px);right:32px}}.global-notices .dops-notice{border-radius:0;box-shadow:0 2px 5px rgba(0,0,0,.2),0 0 56px rgba(0,0,0,.15);flex-wrap:nowrap;margin-bottom:0;pointer-events:auto;text-align:left}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0}@media(min-width:661px){.global-notices .dops-notice{border-radius:3px;display:flex;margin-bottom:24px;overflow:hidden}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:3px 0 0 3px}.global-notices .dops-notice a.dops-notice__action{font-size:14px;padding:13px 16px}}.global-notices .dops-notice__dismiss{flex-shrink:0}@media(min-width:661px){.global-notices .dops-notice__dismiss{padding:13px 16px 0}}.reconnect__modal__body{color:#2e4453;font-size:rem(14px);margin:0;padding:rem(24px) rem(32px);text-align:center}.reconnect__modal__body h2{color:#2e4453;font-size:rem(32px);font-weight:300;margin:rem(32px) 0 rem(24px)}.reconnect__modal__body h4{color:#668eaa;font-size:rem(16px);font-weight:400;line-height:1.5em;margin:rem(16px) rem(24px) 0}.reconnect__modal-actions{margin:2rem 0}.reconnect__modal-actions .reconnect__modal-cancel{margin-right:1em}.jp-license-activation-screen-controls{background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-controls h1{font-size:44px;font-weight:700}.jp-license-activation-screen-controls p{font-size:16px}.jp-license-activation-screen-controls label{font-size:16px;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-with-error label,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field label{font-size:16px;font-weight:600}.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 input.components-text-control__input{border-radius:4px;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 #787c82}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input{border:1px solid #d63639}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error{align-items:start;color:#d63639;display:flex;flex-direction:row}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error svg{fill:#d63639;margin-right:4px;min-width:24px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error span{font-size:16px}.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:#000;border-radius:4px;color:#fff;display:flex;font-size:16px;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:#2c3338;color:#fff}.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:#2c3338;border:1px solid #fff;color:#fff}.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:#dcdcde;color:#a7aaad}.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%}.jp-license-activation-screen-illustration{align-items:center;background:#f9f9f6;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}.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}.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:#000;border-radius:4px;color:#fff;font-size:16px;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:#2c3338;color:#fff}.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:#2c3338;border:1px solid #fff;color:#fff}.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:#dcdcde;color:#a7aaad}.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{background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-success-info h1{font-size:44px;font-weight:700}.jp-license-activation-screen-success-info p{font-size:16px}.jp-license-activation-screen-success-info label{font-size:16px;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}}.jp-license-activation-screen{border-radius:4px;box-shadow:0 4px 24px 0 #00000026;display:flex;flex-direction:column;min-height:540px;overflow:hidden}@media screen and (min-width:780px){.jp-license-activation-screen{flex-direction:row}}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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 #069e08;border-radius:4px;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:2px}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(8px)}.jp-cut:after{color:#069e08;content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-contextualized-connection{background:#fff;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08);display:flex;flex-direction:column}.jp-contextualized-connection__content{align-items:center;display:flex;flex-direction:column;margin:auto;max-width:860px;padding:2rem;text-align:center;width:100%}@media(min-width:782px){.jp-contextualized-connection__content{padding:4rem}}.jp-contextualized-connection__content h2{font-size:36px;margin-bottom:1.5rem}.jp-contextualized-connection__content p{font-size:16px;margin-bottom:2rem}.jp-contextualized-connection__logo img{max-width:100%}.jp-contextualized-connection__tos{color:#787c82;font-size:14px;margin-top:2rem;max-width:400px}.jp-contextualized-connection__tos a{color:#787c82;font-weight:700;text-decoration:underline}.jp-contextualized-connection .jp-action-button--button.is-primary,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary{background-color:#000;justify-content:center}.jp-contextualized-connection .jp-action-button--button.is-primary:active:not(:disabled),.jp-contextualized-connection .jp-action-button--button.is-primary:hover:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:active:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:hover:not(:disabled){background:#2c3338;color:#fff}.jp-contextualized-connection .jp-action-button--button.is-primary:focus:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px #fff,0 0 0 2px #000}.jp-contextualized-connection .jp-action-button--button.is-primary.disabled,.jp-contextualized-connection .jp-action-button--button.is-primary:disabled,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary.disabled,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:disabled{background:#dcdcde;pointer-events:none}.jp-contextualized-connection__footer{background-color:#f9f9f6;font-size:16px;padding:4rem;width:100%}.jp-contextualized-connection__footer-row{grid-gap:4rem;display:grid;grid-template-columns:auto}@media(min-width:782px){.jp-contextualized-connection__footer-row{grid-gap:3rem;grid-template-columns:repeat(3,1fr)}}.jp-contextualized-connection__footer-column h3{margin-top:0}.jp-contextualized-connection__footer-bottom-title{color:#000;font-size:20px;margin-top:4rem;text-align:center}.jp-contextualized-connection__feature-list{list-style-type:none;padding:0}.jp-contextualized-connection__feature-list li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:#000;margin-bottom:9px;padding-left:30px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/admin.js b/plugins/jetpack/_inc/build/admin.js
index 224c77c0..21374b3b 100644
--- a/plugins/jetpack/_inc/build/admin.js
+++ b/plugins/jetpack/_inc/build/admin.js
@@ -1,2 +1,138 @@
-/*! For license information please see admin.js.LICENSE */
-!function(e,t){for(var n in t)e[n]=t[n]}(window,function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=379)}([function(e,t){!function(){e.exports=this.React}()},function(e,t,n){e.exports=n(181)()},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t){!function(){e.exports=this.lodash}()},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){function n(t){return e.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(t)}e.exports=n},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(198),i=n(4);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?i(e):t}},function(e,t,n){var r=n(80);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},function(e,t){function n(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,t,r){return t&&n(e.prototype,t),r&&n(e,r),e}},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n.apply(this,arguments)}e.exports=n},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var a=typeof r;if("string"===a||"number"===a)e.push(r);else if(Array.isArray(r)&&r.length){var o=i.apply(null,r);o&&e.push(o)}else if("object"===a)for(var s in r)n.call(r,s)&&r[s]&&e.push(s)}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(r=function(){return i}.apply(t,[]))||(e.exports=r)}()},function(e,t){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},function(e,t,n){var r=n(19),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,i,a,o,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,a,o,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";var r=n(0),i=n(185);if(void 0===r)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var a=(new r.Component).updater;e.exports=i(r.Component,r.isValidElement,a)},function(e,t){!function(){e.exports=this.ReactDOM}()},function(e,t,n){var r=n(2);function i(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(n,!0).forEach((function(t){r(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},function(e,t,n){(function(e){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function a(e,t,n){if(a.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var o;"object"==typeof e?e.exports=a:t.BN=a,a.BN=a,a.wordSize=26;try{o=n(308).Buffer}catch(C){}function s(e,t,n){for(var r=0,i=Math.min(e.length,n),a=t;a<i;a++){var o=e.charCodeAt(a)-48;r<<=4,r|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return r}function c(e,t,n,r){for(var i=0,a=Math.min(e.length,n),o=t;o<a;o++){var s=e.charCodeAt(o)-48;i*=r,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}a.isBN=function(e){return e instanceof a||null!==e&&"object"==typeof e&&e.constructor.wordSize===a.wordSize&&Array.isArray(e.words)},a.max=function(e,t){return e.cmp(t)>0?e:t},a.min=function(e,t){return e.cmp(t)<0?e:t},a.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&i++,16===t?this._parseHex(e,i):this._parseBase(e,t,i),"-"===e[0]&&(this.negative=1),this.strip(),"le"===n&&this._initArray(this.toArray(),t,n)},a.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},a.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===n)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===n)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},a.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i,a=0;for(n=e.length-6,r=0;n>=t;n-=6)i=s(e,n,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303,(a+=24)>=26&&(a-=26,r++);n+6!==t&&(i=s(e,t,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303),this.strip()},a.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,l=0,u=n;u<s;u+=r)l=c(e,u,u+r,t),this.imuln(i),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l);if(0!==o){var p=1;for(l=c(e,u,e.length,t),u=0;u<o;u++)p*=t;this.imuln(p),this.words[0]+l<67108864?this.words[0]+=l:this._iaddn(l)}},a.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},a.prototype.clone=function(){var e=new a(null);return this.copy(e),e},a.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},a.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},a.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},a.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],u=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,c=o/67108864|0;n.words[0]=s;for(var l=1;l<r;l++){for(var u=c>>>26,p=67108863&c,d=Math.min(l,t.length-1),h=Math.max(0,l-e.length+1);h<=d;h++){var f=l-h|0;u+=(o=(i=0|e.words[f])*(a=0|t.words[h])+p)/67108864|0,p=67108863&o}n.words[l]=0|p,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n.strip()}a.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],c=(16777215&(s<<i|a)).toString(16);n=0!==(a=s>>>24-i&16777215)||o!==this.length-1?l[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,o--)}for(0!==a&&(n=a.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var d=u[e],h=p[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(h).toString(e);n=(f=f.idivn(h)).isZero()?m+n:l[d-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},a.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},a.prototype.toJSON=function(){return this.toString(16)},a.prototype.toBuffer=function(e,t){return r(void 0!==o),this.toArrayLike(o,e,t)},a.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},a.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),a=n||Math.max(1,i);r(i<=a,"byte array longer than desired length"),r(a>0,"Requested array length <= 0"),this.strip();var o,s,c="le"===t,l=new e(a),u=this.clone();if(c){for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),l[s]=o;for(;s<a;s++)l[s]=0}else{for(s=0;s<a-i;s++)l[s]=0;for(s=0;!u.isZero();s++)o=u.andln(255),u.iushrn(8),l[a-s-1]=o}return l},Math.clz32?a.prototype._countBits=function(e){return 32-Math.clz32(e)}:a.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},a.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},a.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},a.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},a.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},a.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},a.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},a.prototype.isNeg=function(){return 0!==this.negative},a.prototype.neg=function(){return this.clone().ineg()},a.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},a.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},a.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},a.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},a.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},a.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this.strip()},a.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},a.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},a.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},a.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this.strip()},a.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},a.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},a.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},a.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},a.prototype.notn=function(e){return this.clone().inotn(e)},a.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this.strip()},a.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},a.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},a.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this.strip()},a.prototype.sub=function(e){return this.clone().isub(e)};var h=function(e,t,n){var r,i,a,o=e.words,s=t.words,c=n.words,l=0,u=0|o[0],p=8191&u,d=u>>>13,h=0|o[1],f=8191&h,m=h>>>13,g=0|o[2],v=8191&g,b=g>>>13,y=0|o[3],w=8191&y,_=y>>>13,k=0|o[4],E=8191&k,C=k>>>13,S=0|o[5],M=8191&S,x=S>>>13,A=0|o[6],j=8191&A,O=A>>>13,N=0|o[7],T=8191&N,P=N>>>13,I=0|o[8],D=8191&I,R=I>>>13,U=0|o[9],F=8191&U,L=U>>>13,z=0|s[0],B=8191&z,V=z>>>13,H=0|s[1],q=8191&H,K=H>>>13,J=0|s[2],W=8191&J,G=J>>>13,Y=0|s[3],$=8191&Y,X=Y>>>13,Q=0|s[4],Z=8191&Q,ee=Q>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ce=8191&se,le=se>>>13,ue=0|s[8],pe=8191&ue,de=ue>>>13,he=0|s[9],fe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(l+(r=Math.imul(p,B))|0)+((8191&(i=(i=Math.imul(p,V))+Math.imul(d,B)|0))<<13)|0;l=((a=Math.imul(d,V))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(f,B),i=(i=Math.imul(f,V))+Math.imul(m,B)|0,a=Math.imul(m,V);var ve=(l+(r=r+Math.imul(p,q)|0)|0)+((8191&(i=(i=i+Math.imul(p,K)|0)+Math.imul(d,q)|0))<<13)|0;l=((a=a+Math.imul(d,K)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(v,B),i=(i=Math.imul(v,V))+Math.imul(b,B)|0,a=Math.imul(b,V),r=r+Math.imul(f,q)|0,i=(i=i+Math.imul(f,K)|0)+Math.imul(m,q)|0,a=a+Math.imul(m,K)|0;var be=(l+(r=r+Math.imul(p,W)|0)|0)+((8191&(i=(i=i+Math.imul(p,G)|0)+Math.imul(d,W)|0))<<13)|0;l=((a=a+Math.imul(d,G)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(w,B),i=(i=Math.imul(w,V))+Math.imul(_,B)|0,a=Math.imul(_,V),r=r+Math.imul(v,q)|0,i=(i=i+Math.imul(v,K)|0)+Math.imul(b,q)|0,a=a+Math.imul(b,K)|0,r=r+Math.imul(f,W)|0,i=(i=i+Math.imul(f,G)|0)+Math.imul(m,W)|0,a=a+Math.imul(m,G)|0;var ye=(l+(r=r+Math.imul(p,$)|0)|0)+((8191&(i=(i=i+Math.imul(p,X)|0)+Math.imul(d,$)|0))<<13)|0;l=((a=a+Math.imul(d,X)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,B),i=(i=Math.imul(E,V))+Math.imul(C,B)|0,a=Math.imul(C,V),r=r+Math.imul(w,q)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,q)|0,a=a+Math.imul(_,K)|0,r=r+Math.imul(v,W)|0,i=(i=i+Math.imul(v,G)|0)+Math.imul(b,W)|0,a=a+Math.imul(b,G)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,X)|0)+Math.imul(m,$)|0,a=a+Math.imul(m,X)|0;var we=(l+(r=r+Math.imul(p,Z)|0)|0)+((8191&(i=(i=i+Math.imul(p,ee)|0)+Math.imul(d,Z)|0))<<13)|0;l=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(M,B),i=(i=Math.imul(M,V))+Math.imul(x,B)|0,a=Math.imul(x,V),r=r+Math.imul(E,q)|0,i=(i=i+Math.imul(E,K)|0)+Math.imul(C,q)|0,a=a+Math.imul(C,K)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,G)|0)+Math.imul(_,W)|0,a=a+Math.imul(_,G)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,X)|0)+Math.imul(b,$)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(f,Z)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var _e=(l+(r=r+Math.imul(p,ne)|0)|0)+((8191&(i=(i=i+Math.imul(p,re)|0)+Math.imul(d,ne)|0))<<13)|0;l=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(j,B),i=(i=Math.imul(j,V))+Math.imul(O,B)|0,a=Math.imul(O,V),r=r+Math.imul(M,q)|0,i=(i=i+Math.imul(M,K)|0)+Math.imul(x,q)|0,a=a+Math.imul(x,K)|0,r=r+Math.imul(E,W)|0,i=(i=i+Math.imul(E,G)|0)+Math.imul(C,W)|0,a=a+Math.imul(C,G)|0,r=r+Math.imul(w,$)|0,i=(i=i+Math.imul(w,X)|0)+Math.imul(_,$)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(v,Z)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var ke=(l+(r=r+Math.imul(p,ae)|0)|0)+((8191&(i=(i=i+Math.imul(p,oe)|0)+Math.imul(d,ae)|0))<<13)|0;l=((a=a+Math.imul(d,oe)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(T,B),i=(i=Math.imul(T,V))+Math.imul(P,B)|0,a=Math.imul(P,V),r=r+Math.imul(j,q)|0,i=(i=i+Math.imul(j,K)|0)+Math.imul(O,q)|0,a=a+Math.imul(O,K)|0,r=r+Math.imul(M,W)|0,i=(i=i+Math.imul(M,G)|0)+Math.imul(x,W)|0,a=a+Math.imul(x,G)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(C,$)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(v,ne)|0,i=(i=i+Math.imul(v,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(f,ae)|0,i=(i=i+Math.imul(f,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ee=(l+(r=r+Math.imul(p,ce)|0)|0)+((8191&(i=(i=i+Math.imul(p,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((a=a+Math.imul(d,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(D,B),i=(i=Math.imul(D,V))+Math.imul(R,B)|0,a=Math.imul(R,V),r=r+Math.imul(T,q)|0,i=(i=i+Math.imul(T,K)|0)+Math.imul(P,q)|0,a=a+Math.imul(P,K)|0,r=r+Math.imul(j,W)|0,i=(i=i+Math.imul(j,G)|0)+Math.imul(O,W)|0,a=a+Math.imul(O,G)|0,r=r+Math.imul(M,$)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(x,$)|0,a=a+Math.imul(x,X)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(v,ae)|0,i=(i=i+Math.imul(v,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(f,ce)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ce)|0,a=a+Math.imul(m,le)|0;var Ce=(l+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,de)|0)+Math.imul(d,pe)|0))<<13)|0;l=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(F,B),i=(i=Math.imul(F,V))+Math.imul(L,B)|0,a=Math.imul(L,V),r=r+Math.imul(D,q)|0,i=(i=i+Math.imul(D,K)|0)+Math.imul(R,q)|0,a=a+Math.imul(R,K)|0,r=r+Math.imul(T,W)|0,i=(i=i+Math.imul(T,G)|0)+Math.imul(P,W)|0,a=a+Math.imul(P,G)|0,r=r+Math.imul(j,$)|0,i=(i=i+Math.imul(j,X)|0)+Math.imul(O,$)|0,a=a+Math.imul(O,X)|0,r=r+Math.imul(M,Z)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(x,Z)|0,a=a+Math.imul(x,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(w,ae)|0,i=(i=i+Math.imul(w,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(v,ce)|0,i=(i=i+Math.imul(v,le)|0)+Math.imul(b,ce)|0,a=a+Math.imul(b,le)|0,r=r+Math.imul(f,pe)|0,i=(i=i+Math.imul(f,de)|0)+Math.imul(m,pe)|0,a=a+Math.imul(m,de)|0;var Se=(l+(r=r+Math.imul(p,fe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(d,fe)|0))<<13)|0;l=((a=a+Math.imul(d,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(F,q),i=(i=Math.imul(F,K))+Math.imul(L,q)|0,a=Math.imul(L,K),r=r+Math.imul(D,W)|0,i=(i=i+Math.imul(D,G)|0)+Math.imul(R,W)|0,a=a+Math.imul(R,G)|0,r=r+Math.imul(T,$)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(P,$)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(j,Z)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(O,Z)|0,a=a+Math.imul(O,ee)|0,r=r+Math.imul(M,ne)|0,i=(i=i+Math.imul(M,re)|0)+Math.imul(x,ne)|0,a=a+Math.imul(x,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(_,ce)|0,a=a+Math.imul(_,le)|0,r=r+Math.imul(v,pe)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(b,pe)|0,a=a+Math.imul(b,de)|0;var Me=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(F,W),i=(i=Math.imul(F,G))+Math.imul(L,W)|0,a=Math.imul(L,G),r=r+Math.imul(D,$)|0,i=(i=i+Math.imul(D,X)|0)+Math.imul(R,$)|0,a=a+Math.imul(R,X)|0,r=r+Math.imul(T,Z)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(j,ne)|0,i=(i=i+Math.imul(j,re)|0)+Math.imul(O,ne)|0,a=a+Math.imul(O,re)|0,r=r+Math.imul(M,ae)|0,i=(i=i+Math.imul(M,oe)|0)+Math.imul(x,ae)|0,a=a+Math.imul(x,oe)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(C,ce)|0,a=a+Math.imul(C,le)|0,r=r+Math.imul(w,pe)|0,i=(i=i+Math.imul(w,de)|0)+Math.imul(_,pe)|0,a=a+Math.imul(_,de)|0;var xe=(l+(r=r+Math.imul(v,fe)|0)|0)+((8191&(i=(i=i+Math.imul(v,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(F,$),i=(i=Math.imul(F,X))+Math.imul(L,$)|0,a=Math.imul(L,X),r=r+Math.imul(D,Z)|0,i=(i=i+Math.imul(D,ee)|0)+Math.imul(R,Z)|0,a=a+Math.imul(R,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(j,ae)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(O,ae)|0,a=a+Math.imul(O,oe)|0,r=r+Math.imul(M,ce)|0,i=(i=i+Math.imul(M,le)|0)+Math.imul(x,ce)|0,a=a+Math.imul(x,le)|0,r=r+Math.imul(E,pe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(C,pe)|0,a=a+Math.imul(C,de)|0;var Ae=(l+(r=r+Math.imul(w,fe)|0)|0)+((8191&(i=(i=i+Math.imul(w,me)|0)+Math.imul(_,fe)|0))<<13)|0;l=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(F,Z),i=(i=Math.imul(F,ee))+Math.imul(L,Z)|0,a=Math.imul(L,ee),r=r+Math.imul(D,ne)|0,i=(i=i+Math.imul(D,re)|0)+Math.imul(R,ne)|0,a=a+Math.imul(R,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(j,ce)|0,i=(i=i+Math.imul(j,le)|0)+Math.imul(O,ce)|0,a=a+Math.imul(O,le)|0,r=r+Math.imul(M,pe)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(x,pe)|0,a=a+Math.imul(x,de)|0;var je=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,r=Math.imul(F,ne),i=(i=Math.imul(F,re))+Math.imul(L,ne)|0,a=Math.imul(L,re),r=r+Math.imul(D,ae)|0,i=(i=i+Math.imul(D,oe)|0)+Math.imul(R,ae)|0,a=a+Math.imul(R,oe)|0,r=r+Math.imul(T,ce)|0,i=(i=i+Math.imul(T,le)|0)+Math.imul(P,ce)|0,a=a+Math.imul(P,le)|0,r=r+Math.imul(j,pe)|0,i=(i=i+Math.imul(j,de)|0)+Math.imul(O,pe)|0,a=a+Math.imul(O,de)|0;var Oe=(l+(r=r+Math.imul(M,fe)|0)|0)+((8191&(i=(i=i+Math.imul(M,me)|0)+Math.imul(x,fe)|0))<<13)|0;l=((a=a+Math.imul(x,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(F,ae),i=(i=Math.imul(F,oe))+Math.imul(L,ae)|0,a=Math.imul(L,oe),r=r+Math.imul(D,ce)|0,i=(i=i+Math.imul(D,le)|0)+Math.imul(R,ce)|0,a=a+Math.imul(R,le)|0,r=r+Math.imul(T,pe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(P,pe)|0,a=a+Math.imul(P,de)|0;var Ne=(l+(r=r+Math.imul(j,fe)|0)|0)+((8191&(i=(i=i+Math.imul(j,me)|0)+Math.imul(O,fe)|0))<<13)|0;l=((a=a+Math.imul(O,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(F,ce),i=(i=Math.imul(F,le))+Math.imul(L,ce)|0,a=Math.imul(L,le),r=r+Math.imul(D,pe)|0,i=(i=i+Math.imul(D,de)|0)+Math.imul(R,pe)|0,a=a+Math.imul(R,de)|0;var Te=(l+(r=r+Math.imul(T,fe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(F,pe),i=(i=Math.imul(F,de))+Math.imul(L,pe)|0,a=Math.imul(L,de);var Pe=(l+(r=r+Math.imul(D,fe)|0)|0)+((8191&(i=(i=i+Math.imul(D,me)|0)+Math.imul(R,fe)|0))<<13)|0;l=((a=a+Math.imul(R,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Ie=(l+(r=Math.imul(F,fe))|0)+((8191&(i=(i=Math.imul(F,me))+Math.imul(L,fe)|0))<<13)|0;return l=((a=Math.imul(L,me))+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,c[0]=ge,c[1]=ve,c[2]=be,c[3]=ye,c[4]=we,c[5]=_e,c[6]=ke,c[7]=Ee,c[8]=Ce,c[9]=Se,c[10]=Me,c[11]=xe,c[12]=Ae,c[13]=je,c[14]=Oe,c[15]=Ne,c[16]=Te,c[17]=Pe,c[18]=Ie,0!==l&&(c[19]=l,n.length++),n};function f(e,t,n){return(new m).mulp(e,t,n)}function m(e,t){this.x=e,this.y=t}Math.imul||(h=d),a.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?h(this,e,t):n<63?d(this,e,t):n<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,c=Math.min(a,t.length-1),l=Math.max(0,a-e.length+1);l<=c;l++){var u=a-l,p=(0|e.words[u])*(0|t.words[l]),d=67108863&p;s=67108863&(d=d+s|0),i+=(o=(o=o+(p/67108864|0)|0)+(d>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,e,t):f(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),n=a.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},m.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},m.prototype.permute=function(e,t,n,r,i,a){for(var o=0;o<a;o++)r[o]=t[e[o]],i[o]=n[e[o]]},m.prototype.transform=function(e,t,n,r,i,a){this.permute(a,e,t,n,r,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,c=Math.cos(2*Math.PI/s),l=Math.sin(2*Math.PI/s),u=0;u<i;u+=s)for(var p=c,d=l,h=0;h<o;h++){var f=n[u+h],m=r[u+h],g=n[u+h+o],v=r[u+h+o],b=p*g-d*v;v=p*v+d*g,g=b,n[u+h]=f+g,r[u+h]=m+v,n[u+h+o]=f-g,r[u+h+o]=m-v,h!==s&&(b=c*p-l*d,d=c*d+l*p,p=b)}},m.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},m.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},m.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},m.prototype.convert13b=function(e,t,n,i){for(var a=0,o=0;o<t;o++)a+=0|e[o],n[2*o]=8191&a,a>>>=13,n[2*o+1]=8191&a,a>>>=13;for(o=2*t;o<i;++o)n[o]=0;r(0===a),r(0==(-8192&a))},m.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},m.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),a=this.stub(r),o=new Array(r),s=new Array(r),c=new Array(r),l=new Array(r),u=new Array(r),p=new Array(r),d=n.words;d.length=r,this.convert13b(e.words,e.length,o,r),this.convert13b(t.words,t.length,l,r),this.transform(o,a,s,c,r,i),this.transform(l,a,u,p,r,i);for(var h=0;h<r;h++){var f=s[h]*u[h]-c[h]*p[h];c[h]=s[h]*p[h]+c[h]*u[h],s[h]=f}return this.conjugate(s,c,r),this.transform(s,c,d,a,r,i),this.conjugate(d,a,r),this.normalize13b(d,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n.strip()},a.prototype.mul=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},a.prototype.mulf=function(e){var t=new a(null);return t.words=new Array(this.length+e.length),f(this,e,t)},a.prototype.imul=function(e){return this.clone().mulTo(e,this)},a.prototype.imuln=function(e){r("number"==typeof e),r(e<67108864);for(var t=0,n=0;n<this.length;n++){var i=(0|this.words[n])*e,a=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=a>>>26,this.words[n]=67108863&a}return 0!==t&&(this.words[n]=t,this.length++),this},a.prototype.muln=function(e){return this.clone().imuln(e)},a.prototype.sqr=function(){return this.mul(this)},a.prototype.isqr=function(){return this.imul(this.clone())},a.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=(e.words[r]&1<<i)>>>i}return t}(e);if(0===t.length)return new a(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},a.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,c=(0|this.words[t])-s<<n;this.words[t]=c|o,o=s>>>26-n}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this.strip()},a.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},a.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,c=n;if(i-=o,i=Math.max(0,i),c){for(var l=0;l<o;l++)c.words[l]=this.words[l];c.length=o}if(0===o);else if(this.length>o)for(this.length-=o,l=0;l<this.length;l++)this.words[l]=this.words[l+o];else this.words[0]=0,this.length=1;var u=0;for(l=this.length-1;l>=0&&(0!==u||l>=i);l--){var p=0|this.words[l];this.words[l]=u<<26-a|p>>>a,u=p&s}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},a.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},a.prototype.shln=function(e){return this.clone().ishln(e)},a.prototype.ushln=function(e){return this.clone().iushln(e)},a.prototype.shrn=function(e){return this.clone().ishrn(e)},a.prototype.ushrn=function(e){return this.clone().iushrn(e)},a.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<<t;return!(this.length<=n)&&!!(this.words[n]&i)},a.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()},a.prototype.maskn=function(e){return this.clone().imaskn(e)},a.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},a.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},a.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},a.prototype.addn=function(e){return this.clone().iaddn(e)},a.prototype.subn=function(e){return this.clone().isubn(e)},a.prototype.iabs=function(){return this.negative=0,this},a.prototype.abs=function(){return this.clone().iabs()},a.prototype._ishlnsubmul=function(e,t,n){var i,a,o=e.length+n;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+n])+s;var c=(0|e.words[i])*t;s=((a-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&a}for(;i<this.length-n;i++)s=(a=(0|this.words[i+n])+s)>>26,this.words[i+n]=67108863&a;if(0===s)return this.strip();for(r(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this.strip()},a.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,o=0|i.words[i.length-1];0!==(n=26-this._countBits(o))&&(i=i.ushln(n),r.iushln(n),o=0|i.words[i.length-1]);var s,c=r.length-i.length;if("mod"!==t){(s=new a(null)).length=c+1,s.words=new Array(s.length);for(var l=0;l<s.length;l++)s.words[l]=0}var u=r.clone()._ishlnsubmul(i,1,c);0===u.negative&&(r=u,s&&(s.words[c]=1));for(var p=c-1;p>=0;p--){var d=67108864*(0|r.words[i.length+p])+(0|r.words[i.length+p-1]);for(d=Math.min(d/o|0,67108863),r._ishlnsubmul(i,d,p);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,p),r.isZero()||(r.negative^=1);s&&(s.words[p]=d)}return s&&s.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},a.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new a(0),mod:new a(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(i=s.div.neg()),"div"!==t&&(o=s.mod.neg(),n&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(i=s.div.neg()),{div:i,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),n&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new a(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new a(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new a(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,o,s},a.prototype.div=function(e){return this.divmod(e,"div",!1).div},a.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},a.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},a.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},a.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},a.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},a.prototype.divn=function(e){return this.clone().idivn(e)},a.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new a(1),o=new a(0),s=new a(0),c=new a(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),p=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(p)),i.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(u),c.isub(p)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(s),o.isub(c)):(n.isub(t),s.isub(i),c.isub(o))}return{a:s,b:c,gcd:n.iushln(l)}},a.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new a(1),s=new a(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var p=0,d=1;0==(n.words[0]&d)&&p<26;++p,d<<=1);if(p>0)for(n.iushrn(p);p-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(s)):(n.isub(t),s.isub(o))}return(i=0===t.cmpn(1)?o:s).cmpn(0)<0&&i.iadd(e),i},a.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},a.prototype.invm=function(e){return this.egcd(e).a.umod(e)},a.prototype.isEven=function(){return 0==(1&this.words[0])},a.prototype.isOdd=function(){return 1==(1&this.words[0])},a.prototype.andln=function(e){return this.words[0]&e},a.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var a=i,o=n;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},a.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},a.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},a.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},a.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},a.prototype.gtn=function(e){return 1===this.cmpn(e)},a.prototype.gt=function(e){return 1===this.cmp(e)},a.prototype.gten=function(e){return this.cmpn(e)>=0},a.prototype.gte=function(e){return this.cmp(e)>=0},a.prototype.ltn=function(e){return-1===this.cmpn(e)},a.prototype.lt=function(e){return-1===this.cmp(e)},a.prototype.lten=function(e){return this.cmpn(e)<=0},a.prototype.lte=function(e){return this.cmp(e)<=0},a.prototype.eqn=function(e){return 0===this.cmpn(e)},a.prototype.eq=function(e){return 0===this.cmp(e)},a.red=function(e){return new k(e)},a.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},a.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},a.prototype._forceRed=function(e){return this.red=e,this},a.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},a.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},a.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},a.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},a.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},a.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},a.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},a.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},a.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},a.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},a.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},a.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},a.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},a.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var g={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new a(t,16),this.n=this.p.bitLength(),this.k=new a(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function b(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function y(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function k(e){if("string"==typeof e){var t=a._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){k.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new a(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new a(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):n.strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},i(b,v),b.prototype.split=function(e,t){for(var n=Math.min(e.length,9),r=0;r<n;r++)t.words[r]=e.words[r];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var i=e.words[9];for(t.words[t.length++]=4194303&i,r=10;r<e.length;r++){var a=0|e.words[r];e.words[r-10]=(4194303&a)<<4|i>>>22,i=a}i>>>=22,e.words[r-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},b.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(y,v),i(w,v),i(_,v),_.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},a._prime=function(e){if(g[e])return g[e];var t;if("k256"===e)t=new b;else if("p224"===e)t=new y;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return g[e]=t,t},k.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},k.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},k.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},k.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},k.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},k.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},k.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},k.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},k.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},k.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},k.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},k.prototype.isqr=function(e){return this.imul(e,e.clone())},k.prototype.sqr=function(e){return this.mul(e,e)},k.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new a(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var s=new a(1).toRed(this),c=s.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new a(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var p=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),f=o;0!==h.cmp(s);){for(var m=h,g=0;0!==m.cmp(s);g++)m=m.redSqr();r(g<f);var v=this.pow(p,new a(1).iushln(f-g-1));d=d.redMul(v),p=v.redSqr(),h=h.redMul(p),f=g}return d},k.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},k.prototype.pow=function(e,t){if(t.isZero())return new a(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new a(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],o=0,s=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],u=c-1;u>=0;u--){var p=l>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==p||0!==o?(o<<=1,o|=p,(4===++s||0===r&&0===u)&&(i=this.mul(i,n[o]),s=0,o=0)):s=0}c=26}return i},k.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},k.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},a.mont=function(e){return new E(e)},i(E,k),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new a(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,this)}).call(this,n(122)(e))},function(e,t,n){"use strict";var r=n(269),i=n(270),a=n(138);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return p(this,e)}return l(this,e,t,n)}function l(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|f(t,n),i=(e=s(e,r)).write(t,n);i!==r&&(e=e.slice(0,i));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|h(t.length);return 0===(e=s(e,n)).length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):d(e,t);if("Buffer"===t.type&&a(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function u(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function p(e,t){if(u(t),e=s(e,t<0?0:0|h(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|h(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function f(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return B(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function m(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,n);case"utf8":case"utf-8":return M(this,t,n);case"ascii":return x(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return S(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return O(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var a,o=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var u=-1;for(a=n;a<s;a++)if(l(e,a)===l(t,-1===u?0:a-u)){if(-1===u&&(u=a),a-u+1===c)return u*o}else-1!==u&&(a-=a-u),u=-1}else for(n+c>s&&(n=s-c),a=n;a>=0;a--){for(var p=!0,d=0;d<c;d++)if(l(e,a+d)!==l(t,d)){p=!1;break}if(p)return a}return-1}function y(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function w(e,t,n,r){return V(z(t,e.length-n),e,n,r)}function _(e,t,n,r){return V(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function k(e,t,n,r){return _(e,t,n,r)}function E(e,t,n,r){return V(B(t),e,n,r)}function C(e,t,n,r){return V(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function S(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function M(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,c,l=e[i],u=null,p=l>239?4:l>223?3:l>191?2:1;if(i+p<=n)switch(p){case 1:l<128&&(u=l);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&l)<<6|63&a)>127&&(u=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&l)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&l)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,p=1):u>65535&&(u-=65536,r.push(u>>>10&1023|55296),u=56320|1023&u),r.push(u),i+=p}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=4096));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==window.TYPED_ARRAY_SUPPORT?window.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(t){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return l(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return u(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return p(null,e)},c.allocUnsafeSlow=function(e){return p(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},c.byteLength=f,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?M(this,0,e):m.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;for(var a=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0),s=Math.min(a,o),l=this.slice(r,i),u=e.slice(t,n),p=0;p<s;++p)if(l[p]!==u[p]){a=l[p],o=u[p];break}return a<o?-1:o<a?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return y(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return _(this,e,t,n);case"latin1":case"binary":return k(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function x(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function A(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function j(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=L(e[a]);return i}function O(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function N(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function T(e,t,n,r,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function P(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function I(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function D(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function R(e,t,n,r,a){return a||D(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function U(e,t,n,r,a){return a||D(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var i=t-e;n=new c(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||N(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||N(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||N(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||N(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||N(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||N(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return t||N(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||N(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||N(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||N(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||N(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||N(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||N(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||T(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||T(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):I(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);T(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);T(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):P(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):P(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):I(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):I(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return R(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return U(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return U(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=c.isBuffer(e)?e:z(new c(e,r).toString()),s=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var F=/[^+\/0-9A-Za-z-_]/g;function L(e){return e<16?"0"+e.toString(16):e.toString(16)}function z(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function B(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(F,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}},function(e,t){var n,r,i=e.exports={};function a(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var c,l=[],u=!1,p=-1;function d(){u&&c&&(u=!1,c.length?l=c.concat(l):p=-1,l.length&&h())}function h(){if(!u){var e=s(d);u=!0;for(var t=l.length;t;){for(c=l,l=[];++p<t;)c&&c[p].run();p=-1,t=l.length}c=null,u=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new f(e,t)),1!==l.length||u||s(h)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=n,n.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},function(e,t,n){"use strict";var r=t,i=n(18),a=n(21),o=n(160);r.assert=a,r.toArray=o.toArray,r.zero2=o.zero2,r.toHex=o.toHex,r.encode=o.encode,r.getNAF=function(e,t){for(var n=[],r=1<<t+1,i=e.clone();i.cmpn(1)>=0;){var a;if(i.isOdd()){var o=i.andln(r-1);a=o>(r>>1)-1?(r>>1)-o:o,i.isubn(a)}else a=0;n.push(a);for(var s=0!==i.cmpn(0)&&0===i.andln(r-1)?t+1:1,c=1;c<s;c++)n.push(0);i.iushrn(s)}return n},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r=0,i=0;e.cmpn(-r)>0||t.cmpn(-i)>0;){var a,o,s,c=e.andln(3)+r&3,l=t.andln(3)+i&3;if(3===c&&(c=-1),3===l&&(l=-1),0==(1&c))a=0;else a=3!==(s=e.andln(7)+r&7)&&5!==s||2!==l?c:-c;if(n[0].push(a),0==(1&l))o=0;else o=3!==(s=t.andln(7)+i&7)&&5!==s||2!==c?l:-l;n[1].push(o),2*r===a+1&&(r=1-r),2*i===o+1&&(i=1-i),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},function(e,t,n){(function(r){t.log=function(){var e;return"object"==typeof console&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(i=r))})),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!e&&void 0!==r&&"env"in r&&(e=r.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.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"],e.exports=n(211)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}).call(this,n(20))},function(e,t,n){"use strict";var r=n(21),i=n(12);function a(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):a(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=o(i)),n+=c(i.toString(16))}return n},t.zero2=s,t.zero8=c,t.join32=function(e,t,n,i){var a=n-t;r(a%4==0);for(var o=new Array(a/4),s=0,c=t;s<o.length;s++,c+=4){var l;l="big"===i?e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],o[s]=l>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,a,o,s){var c=0,l=t;return c+=(l=l+r>>>0)<t?1:0,c+=(l=l+a>>>0)<a?1:0,e+n+i+o+(c+=(l=l+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},t.sum64_5_hi=function(e,t,n,r,i,a,o,s,c,l){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+a>>>0)<a?1:0,u+=(p=p+s>>>0)<s?1:0,e+n+i+o+c+(u+=(p=p+l>>>0)<l?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,i,a,o,s,c,l){return t+r+a+s+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){"use strict";var r,i="object"==typeof Reflect?Reflect:null,a=i&&"function"==typeof i.apply?i.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=i&&"function"==typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function u(e,t,n,r){var i,a,o,s;if("function"!=typeof n)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n);if(void 0===(a=e._events)?(a=e._events=Object.create(null),e._eventsCount=0):(void 0!==a.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),o=a[t]),void 0===o)o=a[t]=n,++e._eventsCount;else if("function"==typeof o?o=a[t]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),(i=l(e))>0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,s=c,console&&console.warn&&console.warn(s)}return e}function p(){for(var e=[],t=0;t<arguments.length;t++)e.push(arguments[t]);this.fired||(this.target.removeListener(this.type,this.wrapFn),this.fired=!0,a(this.listener,this.target,e))}function d(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=p.bind(r);return i.listener=n,r.wrapFn=i,i}function h(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):m(i,i.length)}function f(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return l(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)a(c,this,t);else{var l=c.length,u=m(c,l);for(n=0;n<l;++n)a(u[n],this,t)}return!0},s.prototype.addListener=function(e,t){return u(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return u(this,e,t,!0)},s.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.on(e,d(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);return this.prependListener(e,d(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t);if(void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,a=Object.keys(n);for(r=0;r<a.length;++r)"removeListener"!==(i=a[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):f.call(e,t)},s.prototype.listenerCount=f,s.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},function(e,t,n){var r=n(129)("wks"),i=n(89),a=n(30).Symbol,o="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=o&&a[e]||(o?a:i)("Symbol."+e))}).store=r},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){var r=n(205),i=n(206),a=n(207);e.exports=function(e,t){return r(e)||i(e,t)||a()}},function(e,t,n){"use strict";t.__esModule=!0,t.createPath=t.parsePath=t.getQueryStringValueFromPath=t.stripQueryStringValueFromPath=t.addQueryStringValueToPath=void 0;var r,i=n(27);(r=i)&&r.__esModule;t.addQueryStringValueToPath=function(e,t,n){var r=a(e),i=r.pathname,s=r.search,c=r.hash;return o({pathname:i,search:s+(-1===s.indexOf("?")?"?":"&")+t+"="+n,hash:c})},t.stripQueryStringValueFromPath=function(e,t){var n=a(e),r=n.pathname,i=n.search,s=n.hash;return o({pathname:r,search:i.replace(new RegExp("([?&])"+t+"=[a-zA-Z0-9]+(&?)"),(function(e,t,n){return"?"===t?t:n})),hash:s})},t.getQueryStringValueFromPath=function(e,t){var n=a(e).search.match(new RegExp("[?&]"+t+"=([a-zA-Z0-9]+)"));return n&&n[1]};var a=t.parsePath=function(e){var t,n,r=null==(n=(t=e).match(/^(https?:)?\/\/[^\/]*/))?t:t.substring(n[0].length),i="",a="",o=r.indexOf("#");-1!==o&&(a=r.substring(o),r=r.substring(0,o));var s=r.indexOf("?");return-1!==s&&(i=r.substring(s),r=r.substring(0,s)),""===r&&(r="/"),{pathname:r,search:i,hash:a}},o=t.createPath=function(e){if(null==e||"string"==typeof e)return e;var t=e.basename,n=e.pathname,r=e.search,i=e.hash,a=(t||"")+n;return r&&"?"!==r&&(a+=r),i&&(a+=i),a}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(13).Buffer,i=n(92).Transform,a=n(96).StringDecoder;function o(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(12)(o,i),o.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(i){r=i}finally{n(r)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(n){t=n}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=o},function(e,t,n){var r=n(208);e.exports=function(e,t){if(null==e)return{};var n,i,a=r(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(212),a=(r=i)&&r.__esModule?r:{default:r};t.default={shouldComponentUpdate:a.default},e.exports=t.default},function(e,t,n){!function(n,r){var i=Array.prototype,a=Object.prototype,o=i.slice,s=a.hasOwnProperty,c=i.forEach,l={},u={forEach:function(e,t,n){var r,i,a;if(null!==e)if(c&&e.forEach===c)e.forEach(t,n);else if(e.length===+e.length){for(r=0,i=e.length;r<i;r++)if(r in e&&t.call(n,e[r],r,e)===l)return}else for(a in e)if(s.call(e,a)&&t.call(n,e[a],a,e)===l)return},extend:function(e){return this.forEach(o.call(arguments,1),(function(t){for(var n in t)e[n]=t[n]})),e}},p=function(e){if(this.defaults={locale_data:{messages:{"":{domain:"messages",lang:"en",plural_forms:"nplurals=2; plural=(n != 1);"}}},domain:"messages",debug:!1},this.options=u.extend({},this.defaults,e),this.textdomain(this.options.domain),e.domain&&!this.options.locale_data[this.options.domain])throw new Error("Text domain set to non-existent domain: `"+e.domain+"`")};function d(e){return p.PF.compile(e||"nplurals=2; plural=(n != 1);")}function h(e,t){this._key=e,this._i18n=t}p.context_delimiter=String.fromCharCode(4),u.extend(h.prototype,{onDomain:function(e){return this._domain=e,this},withContext:function(e){return this._context=e,this},ifPlural:function(e,t){return this._val=e,this._pkey=t,this},fetch:function(e){return"[object Array]"!={}.toString.call(e)&&(e=[].slice.call(arguments,0)),(e&&e.length?p.sprintf:function(e){return e})(this._i18n.dcnpgettext(this._domain,this._context,this._key,this._pkey,this._val),e)}}),u.extend(p.prototype,{translate:function(e){return new h(e,this)},textdomain:function(e){if(!e)return this._textdomain;this._textdomain=e},gettext:function(e){return this.dcnpgettext.call(this,void 0,void 0,e)},dgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},dcgettext:function(e,t){return this.dcnpgettext.call(this,e,void 0,t)},ngettext:function(e,t,n){return this.dcnpgettext.call(this,void 0,void 0,e,t,n)},dngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},dcngettext:function(e,t,n,r){return this.dcnpgettext.call(this,e,void 0,t,n,r)},pgettext:function(e,t){return this.dcnpgettext.call(this,void 0,e,t)},dpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},dcpgettext:function(e,t,n){return this.dcnpgettext.call(this,e,t,n)},npgettext:function(e,t,n,r){return this.dcnpgettext.call(this,void 0,e,t,n,r)},dnpgettext:function(e,t,n,r,i){return this.dcnpgettext.call(this,e,t,n,r,i)},dcnpgettext:function(e,t,n,r,i){var a;if(r=r||n,e=e||this._textdomain,!this.options)return(a=new p).dcnpgettext.call(a,void 0,void 0,n,r,i);if(!this.options.locale_data)throw new Error("No locale data provided.");if(!this.options.locale_data[e])throw new Error("Domain `"+e+"` was not found.");if(!this.options.locale_data[e][""])throw new Error("No locale meta information provided.");if(!n)throw new Error("No translation key found.");var o,s,c,l=t?t+p.context_delimiter+n:n,u=this.options.locale_data,h=u[e],f=(u.messages||this.defaults.locale_data.messages)[""],m=h[""].plural_forms||h[""]["Plural-Forms"]||h[""]["plural-forms"]||f.plural_forms||f["Plural-Forms"]||f["plural-forms"];if(void 0===i)c=0;else{if("number"!=typeof i&&(i=parseInt(i,10),isNaN(i)))throw new Error("The number that was passed in is not a number.");c=d(m)(i)}if(!h)throw new Error("No domain named `"+e+"` could be found.");return!(o=h[l])||c>o.length?(this.options.missing_key_callback&&this.options.missing_key_callback(l,e),s=[n,r],!0===this.options.debug&&console.log(s[d(m)(i)]),s[d()(i)]):(s=o[c])||(s=[n,r])[d()(i)]}});var f,m,g=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var n=[];t>0;n[--t]=e);return n.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.format=function(n,r){var i,a,o,s,c,l,u,p=1,d=n.length,h="",f=[];for(a=0;a<d;a++)if("string"===(h=e(n[a])))f.push(n[a]);else if("array"===h){if((s=n[a])[2])for(i=r[p],o=0;o<s[2].length;o++){if(!i.hasOwnProperty(s[2][o]))throw g('[sprintf] property "%s" does not exist',s[2][o]);i=i[s[2][o]]}else i=s[1]?r[s[1]]:r[p++];if(/[^s]/.test(s[8])&&"number"!=e(i))throw g("[sprintf] expecting number but found %s",e(i));switch(null==i&&(i=""),s[8]){case"b":i=i.toString(2);break;case"c":i=String.fromCharCode(i);break;case"d":i=parseInt(i,10);break;case"e":i=s[7]?i.toExponential(s[7]):i.toExponential();break;case"f":i=s[7]?parseFloat(i).toFixed(s[7]):parseFloat(i);break;case"o":i=i.toString(8);break;case"s":i=(i=String(i))&&s[7]?i.substring(0,s[7]):i;break;case"u":i=Math.abs(i);break;case"x":i=i.toString(16);break;case"X":i=i.toString(16).toUpperCase()}i=/[def]/.test(s[8])&&s[3]&&i>=0?"+"+i:i,l=s[4]?"0"==s[4]?"0":s[4].charAt(1):" ",u=s[6]-String(i).length,c=s[6]?t(l,u):"",f.push(s[5]?i+c:c+i)}return f.join("")},n.cache={},n.parse=function(e){for(var t=e,n=[],r=[],i=0;t;){if(null!==(n=/^[^\x25]+/.exec(t)))r.push(n[0]);else if(null!==(n=/^\x25{2}/.exec(t)))r.push("%");else{if(null===(n=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t)))throw"[sprintf] huh?";if(n[2]){i|=1;var a=[],o=n[2],s=[];if(null===(s=/^([a-z_][a-z_\d]*)/i.exec(o)))throw"[sprintf] huh?";for(a.push(s[1]);""!==(o=o.substring(s[0].length));)if(null!==(s=/^\.([a-z_][a-z_\d]*)/i.exec(o)))a.push(s[1]);else{if(null===(s=/^\[(\d+)\]/.exec(o)))throw"[sprintf] huh?";a.push(s[1])}n[2]=a}else i|=2;if(3===i)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(n)}t=t.substring(n[0].length)}return r},n}(),v=function(e,t){return t.unshift(e),g.apply(null,t)};p.parse_plural=function(e,t){return e=e.replace(/n/g,t),p.parse_expression(e)},p.sprintf=function(e,t){return"[object Array]"=={}.toString.call(t)?v(e,[].slice.call(t)):g.apply(this,[].slice.call(arguments))},p.prototype.sprintf=function(){return p.sprintf.apply(this,arguments)},(p.PF={}).parse=function(e){var t=p.PF.extractPluralExpr(e);return p.PF.parser.parse.call(p.PF.parser,t)},p.PF.compile=function(e){var t=p.PF.parse(e);return function(e){return!0===(n=p.PF.interpreter(t)(e))?1:n||0;var n}},p.PF.interpreter=function(e){return function(t){switch(e.type){case"GROUP":return p.PF.interpreter(e.expr)(t);case"TERNARY":return p.PF.interpreter(e.expr)(t)?p.PF.interpreter(e.truthy)(t):p.PF.interpreter(e.falsey)(t);case"OR":return p.PF.interpreter(e.left)(t)||p.PF.interpreter(e.right)(t);case"AND":return p.PF.interpreter(e.left)(t)&&p.PF.interpreter(e.right)(t);case"LT":return p.PF.interpreter(e.left)(t)<p.PF.interpreter(e.right)(t);case"GT":return p.PF.interpreter(e.left)(t)>p.PF.interpreter(e.right)(t);case"LTE":return p.PF.interpreter(e.left)(t)<=p.PF.interpreter(e.right)(t);case"GTE":return p.PF.interpreter(e.left)(t)>=p.PF.interpreter(e.right)(t);case"EQ":return p.PF.interpreter(e.left)(t)==p.PF.interpreter(e.right)(t);case"NEQ":return p.PF.interpreter(e.left)(t)!=p.PF.interpreter(e.right)(t);case"MOD":return p.PF.interpreter(e.left)(t)%p.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw new Error("Invalid Token found.")}}},p.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t,n=/nplurals\=(\d+);/,r=e.match(n);if(!(r.length>1))throw new Error("nplurals not found in plural_forms string: "+e);if(r[1],!((t=(e=e.replace(n,"")).match(/plural\=(.*);/))&&t.length>1))throw new Error("`plural` expression not found: "+e);return t[1]},p.PF.parser=(f={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 1:return{type:"GROUP",expr:a[s-1]};case 2:this.$={type:"TERNARY",expr:a[s-4],truthy:a[s-2],falsey:a[s]};break;case 3:this.$={type:"OR",left:a[s-2],right:a[s]};break;case 4:this.$={type:"AND",left:a[s-2],right:a[s]};break;case 5:this.$={type:"LT",left:a[s-2],right:a[s]};break;case 6:this.$={type:"LTE",left:a[s-2],right:a[s]};break;case 7:this.$={type:"GT",left:a[s-2],right:a[s]};break;case 8:this.$={type:"GTE",left:a[s-2],right:a[s]};break;case 9:this.$={type:"NEQ",left:a[s-2],right:a[s]};break;case 10:this.$={type:"EQ",left:a[s-2],right:a[s]};break;case 11:this.$={type:"MOD",left:a[s-2],right:a[s]};break;case 12:this.$={type:"GROUP",expr:a[s-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(e)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(e,t){throw new Error(e)},parse:function(e){var t=this,n=[0],r=[null],i=[],a=this.table,o="",s=0,c=0,l=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;function p(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}i.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var d,h,f,m,g,v,b,y,w,_,k={};;){if(f=n[n.length-1],this.defaultActions[f]?m=this.defaultActions[f]:(null==d&&(d=p()),m=a[f]&&a[f][d]),void 0===m||!m.length||!m[0]){if(!l){for(v in w=[],a[f])this.terminals_[v]&&v>2&&w.push("'"+this.terminals_[v]+"'");var E="";E=this.lexer.showPosition?"Parse error on line "+(s+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+this.terminals_[d]+"'":"Parse error on line "+(s+1)+": Unexpected "+(1==d?"end of input":"'"+(this.terminals_[d]||d)+"'"),this.parseError(E,{text:this.lexer.match,token:this.terminals_[d]||d,line:this.lexer.yylineno,loc:u,expected:w})}if(3==l){if(1==d)throw new Error(E||"Parsing halted.");c=this.lexer.yyleng,o=this.lexer.yytext,s=this.lexer.yylineno,u=this.lexer.yylloc,d=p()}for(;!(2..toString()in a[f]);){if(0==f)throw new Error(E||"Parsing halted.");_=1,n.length=n.length-2*_,r.length=r.length-_,i.length=i.length-_,f=n[n.length-1]}h=d,d=2,m=a[f=n[n.length-1]]&&a[f][2],l=3}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+f+", token: "+d);switch(m[0]){case 1:n.push(d),r.push(this.lexer.yytext),i.push(this.lexer.yylloc),n.push(m[1]),d=null,h?(d=h,h=null):(c=this.lexer.yyleng,o=this.lexer.yytext,s=this.lexer.yylineno,u=this.lexer.yylloc,l>0&&l--);break;case 2:if(b=this.productions_[m[1]][1],k.$=r[r.length-b],k._$={first_line:i[i.length-(b||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(b||1)].first_column,last_column:i[i.length-1].last_column},void 0!==(g=this.performAction.call(k,o,c,s,this.yy,m[1],r,i)))return g;b&&(n=n.slice(0,-1*b*2),r=r.slice(0,-1*b),i=i.slice(0,-1*b)),n.push(this.productions_[m[1]][0]),r.push(k.$),i.push(k._$),y=a[n[n.length-2]][n[n.length-1]],n.push(y);break;case 3:return!0}}return!0}},m=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parseError)throw new Error(e);this.yy.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;var e,t;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var n=this._currentRules(),r=0;r<n.length;r++)if(e=this._input.match(this.rules[n[r]]))return(t=e[0].match(/\n.*/g))&&(this.yylineno+=t.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:t?t[t.length-1].length-1:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this._more=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],this.performAction.call(this,this.yy,this,n[r],this.conditionStack[this.conditionStack.length-1])||void 0;if(""===this._input)return this.EOF;this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return void 0!==e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 20;case 2:return 19;case 3:return 8;case 4:return 9;case 5:return 6;case 6:return 7;case 7:return 11;case 8:return 13;case 9:return 10;case 10:return 12;case 11:return 14;case 12:return 15;case 13:return 16;case 14:return 17;case 15:return 18;case 16:return 5;case 17:return"INVALID"}},rules:[/^\s+/,/^[0-9]+(\.[0-9]+)?\b/,/^n\b/,/^\|\|/,/^&&/,/^\?/,/^:/,/^<=/,/^>=/,/^</,/^>/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}}};return e}(),f.lexer=m,f),e.exports&&(t=e.exports=p),t.Jed=p}()},function(e,t,n){"use strict";t.__esModule=!0,t.locationsAreEqual=t.statesAreEqual=t.createLocation=t.createQuery=void 0;var r="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},i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=c(n(14)),o=(c(n(27)),n(29)),s=n(43);function c(e){return e&&e.__esModule?e:{default:e}}t.createQuery=function(e){return i(Object.create(null),e)},t.createLocation=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:s.POP,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r="string"==typeof e?(0,o.parsePath)(e):e,i=r.pathname||"/",a=r.search||"",c=r.hash||"",l=r.state;return{pathname:i,search:a,hash:c,state:l,action:t,key:n}};var l=function(e){return"[object Date]"===Object.prototype.toString.call(e)},u=t.statesAreEqual=function e(t,n){if(t===n)return!0;var i=void 0===t?"undefined":r(t);if(i!==(void 0===n?"undefined":r(n)))return!1;if("function"===i&&(0,a.default)(!1),"object"===i){if(l(t)&&l(n)&&(0,a.default)(!1),!Array.isArray(t)){var o=Object.keys(t),s=Object.keys(n);return o.length===s.length&&o.every((function(r){return e(t[r],n[r])}))}return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}))}return!1};t.locationsAreEqual=function(e,t){return e.key===t.key&&e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&u(e.state,t.state)}},function(e,t,n){var r=n(37),i=n(126);e.exports=n(39)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(52),i=n(234),a=n(235),o=Object.defineProperty;t.f=n(39)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),i)try{return o(e,t,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(67)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(69),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=p;var a=n(56);a.inherits=n(12);var o=n(140),s=n(95);a.inherits(p,o);for(var c=i(s.prototype),l=0;l<c.length;l++){var u=c[l];p.prototype[u]||(p.prototype[u]=s.prototype[u])}function p(e){if(!(this instanceof p))return new p(e);o.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",d)}function d(){this.allowHalfOpen||this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(p.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),p.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";(function(t){var r=n(13).Buffer,i=window.crypto||window.msCrypto;i&&i.getRandomValues?e.exports=function(e,n){if(e>4294967295)throw new RangeError("requested too many random bytes");var a=r.allocUnsafe(e);if(e>0)if(e>65536)for(var o=0;o<e;o+=65536)i.getRandomValues(a.slice(o,o+65536));else i.getRandomValues(a);if("function"==typeof n)return t.nextTick((function(){n(null,a)}));return a}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,n(20))},function(e,t,n){var r=n(13).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,a=e.length,o=this._len,s=0;s<a;){for(var c=o%i,l=Math.min(a-s,i-c),u=0;u<l;u++)n[c+u]=e[s+u];s+=l,(o+=l)%i==0&&this._update(n)}return this._len+=a,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,n){"use strict";t.__esModule=!0;t.PUSH="PUSH",t.REPLACE="REPLACE",t.POP="POP"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.routerMiddleware=t.routerActions=t.goForward=t.goBack=t.go=t.replace=t.push=t.CALL_HISTORY_METHOD=t.routerReducer=t.LOCATION_CHANGE=t.syncHistoryWithStore=void 0;var r=n(118);Object.defineProperty(t,"LOCATION_CHANGE",{enumerable:!0,get:function(){return r.LOCATION_CHANGE}}),Object.defineProperty(t,"routerReducer",{enumerable:!0,get:function(){return r.routerReducer}});var i=n(119);Object.defineProperty(t,"CALL_HISTORY_METHOD",{enumerable:!0,get:function(){return i.CALL_HISTORY_METHOD}}),Object.defineProperty(t,"push",{enumerable:!0,get:function(){return i.push}}),Object.defineProperty(t,"replace",{enumerable:!0,get:function(){return i.replace}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return i.go}}),Object.defineProperty(t,"goBack",{enumerable:!0,get:function(){return i.goBack}}),Object.defineProperty(t,"goForward",{enumerable:!0,get:function(){return i.goForward}}),Object.defineProperty(t,"routerActions",{enumerable:!0,get:function(){return i.routerActions}});var a=s(n(192)),o=s(n(193));function s(e){return e&&e.__esModule?e:{default:e}}t.syncHistoryWithStore=a.default,t.routerMiddleware=o.default},function(e,t,n){var r=n(195),i=n(196),a=n(197);e.exports=function(e){return r(e)||i(e)||a()}},function(e,t){!function(){e.exports=this.moment}()},function(e,t,n){"use strict";t.__esModule=!0;t.addEventListener=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},t.removeEventListener=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},t.supportsHistory=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},t.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},t.supportsPopstateOnHashchange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},t.isExtraneousPopstateEvent=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},function(e,t,n){"use strict";var r=n(24),i=n(21);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},a.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},a.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r}},function(e,t,n){var r=n(30),i=n(50),a=n(51),o=n(36),s=n(53),c=function(e,t,n){var l,u,p,d=e&c.F,h=e&c.G,f=e&c.S,m=e&c.P,g=e&c.B,v=e&c.W,b=h?i:i[t]||(i[t]={}),y=b.prototype,w=h?r:f?r[t]:(r[t]||{}).prototype;for(l in h&&(n=t),n)(u=!d&&w&&void 0!==w[l])&&s(b,l)||(p=u?w[l]:n[l],b[l]=h&&"function"!=typeof w[l]?n[l]:g&&u?a(p,r):v&&w[l]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(p):m&&"function"==typeof p?a(Function.call,p):p,m&&((b.virtual||(b.virtual={}))[l]=p,e&c.R&&y&&!y[l]&&o(y,l,p)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t){var n=e.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(124);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(38);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports={}},function(e,t,n){"use strict";var r=n(12),i=n(91),a=n(97),o=n(98),s=n(31);function c(e){s.call(this,"digest"),this._hash=e}r(c,s),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new a:new c(o(e))}},function(e,t,n){(function(e){function n(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===n(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===n(e)},t.isObject=function(e){return"object"==typeof e&&null!==e},t.isDate=function(e){return"[object Date]"===n(e)},t.isError=function(e){return"[object Error]"===n(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(19).Buffer)},function(e,t,n){(function(t){e.exports=function(e,n){for(var r=Math.min(e.length,n.length),i=new t(r),a=0;a<r;++a)i[a]=e[a]^n[a];return i}}).call(this,n(19).Buffer)},function(e,t,n){var r=t;r.bignum=n(18),r.define=n(332).define,r.base=n(59),r.constants=n(165),r.decoders=n(337),r.encoders=n(339)},function(e,t,n){var r=t;r.Reporter=n(334).Reporter,r.DecoderBuffer=n(164).DecoderBuffer,r.EncoderBuffer=n(164).EncoderBuffer,r.Node=n(335)},function(e,t,n){"use strict";e.exports=n(183)},function(e,t,n){"use strict";t.__esModule=!0;var r,i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(187),o=n(77),s=(r=o)&&r.__esModule?r:{default:r},c=n(35),l=n(29);var u=function(e){return(0,a.stringify)(e).replace(/%20/g,"+")},p=a.parse;t.default=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e(t),r=t.stringifyQuery,a=t.parseQueryString;"function"!=typeof r&&(r=u),"function"!=typeof a&&(a=p);var o=function(e){return e?(null==e.query&&(e.query=a(e.search.substring(1))),e):e},d=function(e,t){if(null==t)return e;var n="string"==typeof e?(0,l.parsePath)(e):e,a=r(t);return i({},n,{search:a?"?"+a:""})},h=function(){return o(n.getCurrentLocation())},f=function(e){return n.listenBefore((function(t,n){return(0,s.default)(e,o(t),n)}))},m=function(e){return n.listen((function(t){return e(o(t))}))},g=function(e){return n.push(d(e,e.query))},v=function(e){return n.replace(d(e,e.query))},b=function(e){return n.createPath(d(e,e.query))},y=function(e){return n.createHref(d(e,e.query))},w=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];var a=n.createLocation.apply(n,[d(e,e.query)].concat(r));return e.query&&(a.query=(0,c.createQuery)(e.query)),o(a)};return i({},n,{getCurrentLocation:h,listenBefore:f,listen:m,push:g,replace:v,createPath:b,createHref:y,createLocation:w})}}},function(e,t,n){"use strict";t.__esModule=!0;var r,i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(77),o=(r=a)&&r.__esModule?r:{default:r},s=n(29);t.default=function(e){return function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e(t),r=t.basename,a=function(e){return e?(r&&null==e.basename&&(0===e.pathname.toLowerCase().indexOf(r.toLowerCase())?(e.pathname=e.pathname.substring(r.length),e.basename=r,""===e.pathname&&(e.pathname="/")):e.basename=""),e):e},c=function(e){if(!r)return e;var t="string"==typeof e?(0,s.parsePath)(e):e,n=t.pathname,a="/"===r.slice(-1)?r:r+"/",o="/"===n.charAt(0)?n.slice(1):n;return i({},t,{pathname:a+o})},l=function(){return a(n.getCurrentLocation())},u=function(e){return n.listenBefore((function(t,n){return(0,o.default)(e,a(t),n)}))},p=function(e){return n.listen((function(t){return e(a(t))}))},d=function(e){return n.push(c(e))},h=function(e){return n.replace(c(e))},f=function(e){return n.createPath(c(e))},m=function(e){return n.createHref(c(e))},g=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];return a(n.createLocation.apply(n,[c(e)].concat(r)))};return i({},n,{getCurrentLocation:l,listenBefore:u,listen:p,push:d,replace:h,createPath:f,createHref:m,createLocation:g})}}},function(e,t,n){"use strict";var r=n(24),i=n(48),a=n(121),o=r.rotl32,s=r.sum32,c=r.sum32_5,l=a.ft_1,u=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],u=this.h[2],d=this.h[3],h=this.h[4];for(r=0;r<n.length;r++){var f=~~(r/20),m=c(o(i,5),l(f,a,u,d),h,n[r],p[f]);h=d,d=u,u=o(a,30),a=i,i=m}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],u),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){var r=n(2);e.exports=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),i.forEach((function(t){r(e,t,n[t])}))}return e}},function(e,t,n){var r=n(350);e.exports=function(e){var t=null,n=r(e);if(3===e.nodeType){var i=n.createRange();i.selectNodeContents(e),e=i}if("function"==typeof e.getBoundingClientRect&&(t=e.getBoundingClientRect(),e.startContainer&&0===t.left&&0===t.top)){var a=n.createElement("span");a.appendChild(n.createTextNode("​")),e.insertNode(a),t=a.getBoundingClientRect();var o=a.parentNode;o.removeChild(a),o.normalize()}return t}},function(e,t,n){"use strict";t.__esModule=!0;t.canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){var r=n(51),i=n(250),a=n(251),o=n(52),s=n(87),c=n(252),l={},u={};(t=e.exports=function(e,t,n,p,d){var h,f,m,g,v=d?function(){return e}:c(e),b=r(n,p,t?2:1),y=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(a(v)){for(h=s(e.length);h>y;y++)if((g=t?b(o(f=e[y])[0],f[1]):b(e[y]))===l||g===u)return g}else for(m=v.call(e);!(f=m.next()).done;)if((g=i(m,b,f.value,t))===l||g===u)return g}).BREAK=l,t.RETURN=u},function(e,t,n){"use strict";(function(t){void 0===t||!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick((function(){e.call(null,n)}));case 3:return t.nextTick((function(){e.call(null,n,r)}));case 4:return t.nextTick((function(){e.call(null,n,r,i)}));default:for(a=new Array(s-1),o=0;o<a.length;)a[o++]=arguments[o];return t.nextTick((function(){e.apply(null,a)}))}}}:e.exports=t}).call(this,n(20))},function(e,t,n){var r=n(13).Buffer;function i(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),i=0;i<t;i++)n[i]=e.readUInt32BE(4*i);return n}function a(e){for(;0<e.length;e++)e[0]=0}function o(e,t,n,r,i){for(var a,o,s,c,l=n[0],u=n[1],p=n[2],d=n[3],h=e[0]^t[0],f=e[1]^t[1],m=e[2]^t[2],g=e[3]^t[3],v=4,b=1;b<i;b++)a=l[h>>>24]^u[f>>>16&255]^p[m>>>8&255]^d[255&g]^t[v++],o=l[f>>>24]^u[m>>>16&255]^p[g>>>8&255]^d[255&h]^t[v++],s=l[m>>>24]^u[g>>>16&255]^p[h>>>8&255]^d[255&f]^t[v++],c=l[g>>>24]^u[h>>>16&255]^p[f>>>8&255]^d[255&m]^t[v++],h=a,f=o,m=s,g=c;return a=(r[h>>>24]<<24|r[f>>>16&255]<<16|r[m>>>8&255]<<8|r[255&g])^t[v++],o=(r[f>>>24]<<24|r[m>>>16&255]<<16|r[g>>>8&255]<<8|r[255&h])^t[v++],s=(r[m>>>24]<<24|r[g>>>16&255]<<16|r[h>>>8&255]<<8|r[255&f])^t[v++],c=(r[g>>>24]<<24|r[h>>>16&255]<<16|r[f>>>8&255]<<8|r[255&m])^t[v++],[a>>>=0,o>>>=0,s>>>=0,c>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],a=[[],[],[],[]],o=0,s=0,c=0;c<256;++c){var l=s^s<<1^s<<2^s<<3^s<<4;l=l>>>8^255&l^99,n[o]=l,r[l]=o;var u=e[o],p=e[u],d=e[p],h=257*e[l]^16843008*l;i[0][o]=h<<24|h>>>8,i[1][o]=h<<16|h>>>16,i[2][o]=h<<8|h>>>24,i[3][o]=h,h=16843009*d^65537*p^257*u^16843008*o,a[0][l]=h<<24|h>>>8,a[1][l]=h<<16|h>>>16,a[2][l]=h<<8|h>>>24,a[3][l]=h,0===o?o=s=1:(o=u^e[e[e[d^u]]],s^=e[e[s]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:a}}();function l(e){this._key=i(e),this._reset()}l.blockSize=16,l.keySize=32,l.prototype.blockSize=l.blockSize,l.prototype.keySize=l.keySize,l.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],a=0;a<t;a++)i[a]=e[a];for(a=t;a<r;a++){var o=i[a-1];a%t==0?(o=o<<8|o>>>24,o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o],o^=s[a/t|0]<<24):t>6&&a%t==4&&(o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o]),i[a]=i[a-t]^o}for(var l=[],u=0;u<r;u++){var p=r-u,d=i[p-(u%4?0:4)];l[u]=u<4||p<=4?d:c.INV_SUB_MIX[0][c.SBOX[d>>>24]]^c.INV_SUB_MIX[1][c.SBOX[d>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[d>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=l},l.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},l.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},l.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=o(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},l.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=l},function(e,t,n){var r=n(13).Buffer,i=n(91);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=n/8,s=r.alloc(o),c=r.alloc(a||0),l=r.alloc(0);o>0||a>0;){var u=new i;u.update(l),u.update(e),t&&u.update(t),l=u.digest();var p=0;if(o>0){var d=s.length-o;p=Math.min(o,l.length),l.copy(s,d,0,p),o-=p}if(p<l.length&&a>0){var h=c.length-a,f=Math.min(a,l.length-p);l.copy(c,h,p,p+f),a-=f}}return l.fill(0),{key:s,iv:c}}},function(e,t,n){"use strict";var r=n(18),i=n(22),a=i.getNAF,o=i.getJSF,s=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4);var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){s(e.precomputed);var n=e._getDoubles(),r=a(t,1),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;for(var o=[],c=0;c<r.length;c+=n.step){var l=0;for(t=c+n.step-1;t>=c;t--)l=(l<<1)+r[t];o.push(l)}for(var u=this.jpoint(null,null,null),p=this.jpoint(null,null,null),d=i;d>0;d--){for(c=0;c<o.length;c++){(l=o[c])===d?p=p.mixedAdd(n.points[c]):l===-d&&(p=p.mixedAdd(n.points[c].neg()))}u=u.add(p)}return u.toP()},c.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,o=a(t,n),c=this.jpoint(null,null,null),l=o.length-1;l>=0;l--){for(t=0;l>=0&&0===o[l];l--)t++;if(l>=0&&t++,c=c.dblp(t),l<0)break;var u=o[l];s(0!==u),c="affine"===e.type?u>0?c.mixedAdd(i[u-1>>1]):c.mixedAdd(i[-u-1>>1].neg()):u>0?c.add(i[u-1>>1]):c.add(i[-u-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){for(var s=this._wnafT1,c=this._wnafT2,l=this._wnafT3,u=0,p=0;p<r;p++){var d=(S=t[p])._getNAFPoints(e);s[p]=d.wnd,c[p]=d.points}for(p=r-1;p>=1;p-=2){var h=p-1,f=p;if(1===s[h]&&1===s[f]){var m=[t[h],null,null,t[f]];0===t[h].y.cmp(t[f].y)?(m[1]=t[h].add(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg())):0===t[h].y.cmp(t[f].y.redNeg())?(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].add(t[f].neg())):(m[1]=t[h].toJ().mixedAdd(t[f]),m[2]=t[h].toJ().mixedAdd(t[f].neg()));var g=[-3,-1,-5,-7,0,7,5,1,3],v=o(n[h],n[f]);u=Math.max(v[0].length,u),l[h]=new Array(u),l[f]=new Array(u);for(var b=0;b<u;b++){var y=0|v[0][b],w=0|v[1][b];l[h][b]=g[3*(y+1)+(w+1)],l[f][b]=0,c[h]=m}}else l[h]=a(n[h],s[h]),l[f]=a(n[f],s[f]),u=Math.max(l[h].length,u),u=Math.max(l[f].length,u)}var _=this.jpoint(null,null,null),k=this._wnafT4;for(p=u;p>=0;p--){for(var E=0;p>=0;){var C=!0;for(b=0;b<r;b++)k[b]=0|l[b][p],0!==k[b]&&(C=!1);if(!C)break;E++,p--}if(p>=0&&E++,_=_.dblp(E),p<0)break;for(b=0;b<r;b++){var S,M=k[b];0!==M&&(M>0?S=c[b][M-1>>1]:M<0&&(S=c[b][-M-1>>1].neg()),_="affine"===S.type?_.mixedAdd(S):_.add(S))}}for(p=0;p<r;p++)c[p]=null;return i?_:_.toP()},c.BasePoint=l,l.prototype.eq=function(){throw new Error("Not implemented")},l.prototype.validate=function(){return this.curve.validate(this)},c.prototype.decodePoint=function(e,t){e=i.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?s(e[e.length-1]%2==0):7===e[0]&&s(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},l.prototype.encodeCompressed=function(e){return this.encode(e,!0)},l.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},l.prototype.encode=function(e,t){return i.encode(this._encode(t),e)},l.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},l.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},l.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},l.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},l.prototype._getBeta=function(){return null},l.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t}},function(e,t,n){var r=n(331),i=n(342),a=n(343),o=n(100),s=n(149),c=n(13).Buffer;function l(e){var t;"object"!=typeof e||c.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=c.from(e));var n,l,u=a(e,t),p=u.tag,d=u.data;switch(p){case"CERTIFICATE":l=r.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(l||(l=r.PublicKey.decode(d,"der")),n=l.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(l.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return l.subjectPrivateKey=l.subjectPublicKey,{type:"ec",data:l};case"1.2.840.10040.4.1":return l.algorithm.params.pub_key=r.DSAparam.decode(l.subjectPublicKey.data,"der"),{type:"dsa",data:l.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+p);case"ENCRYPTED PRIVATE KEY":d=function(e,t){var n=e.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),a=i[e.algorithm.decrypt.cipher.algo.join(".")],l=e.algorithm.decrypt.cipher.iv,u=e.subjectPrivateKey,p=parseInt(a.split("-")[1],10)/8,d=s.pbkdf2Sync(t,n,r,p,"sha1"),h=o.createDecipheriv(a,d,l),f=[];return f.push(h.update(u)),f.push(h.final()),c.concat(f)}(d=r.EncryptedPrivateKey.decode(d,"der"),t);case"PRIVATE KEY":switch(n=(l=r.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(l.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:l.algorithm.curve,privateKey:r.ECPrivateKey.decode(l.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return l.algorithm.params.priv_key=r.DSAparam.decode(l.subjectPrivateKey,"der"),{type:"dsa",params:l.algorithm.params};default:throw new Error("unknown key id "+n)}throw new Error("unknown key type "+p);case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=r.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+p)}}e.exports=l,l.signature=r.signature},function(e,t,n){"use strict";t.__esModule=!0,t.locationsAreEqual=t.Actions=t.useQueries=t.useBeforeUnload=t.useBasename=t.createMemoryHistory=t.createHashHistory=t.createHistory=void 0;var r=n(35);Object.defineProperty(t,"locationsAreEqual",{enumerable:!0,get:function(){return r.locationsAreEqual}});var i=p(n(108)),a=p(n(109)),o=p(n(107)),s=p(n(62)),c=p(n(194)),l=p(n(61)),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(43));function p(e){return e&&e.__esModule?e:{default:e}}t.createHistory=i.default,t.createHashHistory=a.default,t.createMemoryHistory=o.default,t.useBasename=s.default,t.useBeforeUnload=c.default,t.useQueries=l.default,t.Actions=u},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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},i=s(n(0)),a=s(n(202)),o=s(n(204));function s(e){return e&&e.__esModule?e:{default:e}}var c=void 0;function l(e,t){var n,o,s,u,p,d,h,f,m=[],g={};for(d=0;d<e.length;d++)if("string"!==(p=e[d]).type){if(!t.hasOwnProperty(p.value)||void 0===t[p.value])throw new Error("Invalid interpolation, missing component node: `"+p.value+"`");if("object"!==r(t[p.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+p.value+"`","\n> "+c);if("componentClose"===p.type)throw new Error("Missing opening component token: `"+p.value+"`");if("componentOpen"===p.type){n=t[p.value],s=d;break}m.push(t[p.value])}else m.push(p.value);return n&&(u=function(e,t){var n,r,i=t[e],a=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===i.value){if("componentOpen"===n.type){a++;continue}if("componentClose"===n.type){if(0===a)return r;a--}}throw new Error("Missing closing component token `"+i.value+"`")}(s,e),h=l(e.slice(s+1,u),t),o=i.default.cloneElement(n,{},h),m.push(o),u<e.length-1&&(f=l(e.slice(u+1),t),m=m.concat(f))),1===m.length?m[0]:(m.forEach((function(e,t){e&&(g["interpolation-child-"+t]=e)})),(0,a.default)(g))}t.default=function(e){var t=e.mixedString,n=e.components,i=e.throwErrors;if(c=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(i)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var a=(0,o.default)(t);try{return l(a,n)}catch(s){if(i)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+s.message+"`");return t}}},function(e,t,n){var r=n(25),i=n(12);function a(e){if(!(this instanceof a))return new a(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=a,i(a,r.EventEmitter),Object.defineProperty(a.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),a.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},a.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},a.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},a.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},a.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},a.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},a.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},a.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(27);(r=i)&&r.__esModule;t.default=function(e,t,n){var r=e(t,n);e.length<2&&n(r)}},function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(189),a=n(29),o=n(77),s=(r=o)&&r.__esModule?r:{default:r},c=n(43),l=n(35);t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.getCurrentLocation,n=e.getUserConfirmation,r=e.pushLocation,o=e.replaceLocation,u=e.go,p=e.keyLength,d=void 0,h=void 0,f=[],m=[],g=[],v=function(){return h&&h.action===c.POP?g.indexOf(h.key):d?g.indexOf(d.key):-1},b=function(e){var t=v();(d=e).action===c.PUSH?g=[].concat(g.slice(0,t+1),[d.key]):d.action===c.REPLACE&&(g[t]=d.key),m.forEach((function(e){return e(d)}))},y=function(e){return f.push(e),function(){return f=f.filter((function(t){return t!==e}))}},w=function(e){return m.push(e),function(){return m=m.filter((function(t){return t!==e}))}},_=function(e,t){(0,i.loopAsync)(f.length,(function(t,n,r){(0,s.default)(f[t],e,(function(e){return null!=e?r(e):n()}))}),(function(e){n&&"string"==typeof e?n(e,(function(e){return t(!1!==e)})):t(!1!==e)}))},k=function(e){d&&(0,l.locationsAreEqual)(d,e)||h&&(0,l.locationsAreEqual)(h,e)||(h=e,_(e,(function(t){if(h===e)if(h=null,t){if(e.action===c.PUSH){var n=(0,a.createPath)(d);(0,a.createPath)(e)===n&&(0,l.statesAreEqual)(d.state,e.state)&&(e.action=c.REPLACE)}e.action===c.POP?b(e):e.action===c.PUSH?!1!==r(e)&&b(e):e.action===c.REPLACE&&!1!==o(e)&&b(e)}else if(d&&e.action===c.POP){var i=g.indexOf(d.key),s=g.indexOf(e.key);-1!==i&&-1!==s&&u(i-s)}})))},E=function(e){return k(j(e,c.PUSH))},C=function(e){return k(j(e,c.REPLACE))},S=function(){return u(-1)},M=function(){return u(1)},x=function(){return Math.random().toString(36).substr(2,p||6)},A=function(e){return(0,a.createPath)(e)},j=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:x();return(0,l.createLocation)(e,t,n)};return{getCurrentLocation:t,listenBefore:y,listen:w,transitionTo:k,push:E,replace:C,go:u,goBack:S,goForward:M,createKey:x,createPath:a.createPath,createHref:A,createLocation:j}}},function(e,t,n){"use strict";t.__esModule=!0,t.go=t.replaceLocation=t.pushLocation=t.startListener=t.getUserConfirmation=t.getCurrentLocation=void 0;var r=n(35),i=n(47),a=n(117),o=n(29),s=n(66),c=s.canUseDOM&&!(0,i.supportsPopstateOnHashchange)(),l=function(e){var t=e&&e.key;return(0,r.createLocation)({pathname:window.location.pathname,search:window.location.search,hash:window.location.hash,state:t?(0,a.readState)(t):void 0},void 0,t)},u=t.getCurrentLocation=function(){var e=void 0;try{e=window.history.state||{}}catch(t){e={}}return l(e)},p=(t.getUserConfirmation=function(e,t){return t(window.confirm(e))},t.startListener=function(e){var t=function(t){(0,i.isExtraneousPopstateEvent)(t)||e(l(t.state))};(0,i.addEventListener)(window,"popstate",t);var n=function(){return e(u())};return c&&(0,i.addEventListener)(window,"hashchange",n),function(){(0,i.removeEventListener)(window,"popstate",t),c&&(0,i.removeEventListener)(window,"hashchange",n)}},function(e,t){var n=e.state,r=e.key;void 0!==n&&(0,a.saveState)(r,n),t({key:r},(0,o.createPath)(e))});t.pushLocation=function(e){return p(e,(function(e,t){return window.history.pushState(e,null,t)}))},t.replaceLocation=function(e){return p(e,(function(e,t){return window.history.replaceState(e,null,t)}))},t.go=function(e){e&&window.history.go(e)}},function(e,t){function n(t,r){return e.exports=n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(t,r)}e.exports=n},function(e,t){var n=1e3,r=6e4,i=36e5,a=24*i;function o(e,t,n,r){var i=t>=1.5*n;return Math.round(e/n)+" "+r+(i?"s":"")}e.exports=function(e,t){t=t||{};var s=typeof e;if("string"===s&&e.length>0)return function(e){if((e=String(e)).length>100)return;var t=/^(-?(?:\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(!t)return;var o=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*o;case"weeks":case"week":case"w":return 6048e5*o;case"days":case"day":case"d":return o*a;case"hours":case"hour":case"hrs":case"hr":case"h":return o*i;case"minutes":case"minute":case"mins":case"min":case"m":return o*r;case"seconds":case"second":case"secs":case"sec":case"s":return o*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:return}}(e);if("number"===s&&isFinite(e))return t.long?function(e){var t=Math.abs(e);if(t>=a)return o(e,t,a,"day");if(t>=i)return o(e,t,i,"hour");if(t>=r)return o(e,t,r,"minute");if(t>=n)return o(e,t,n,"second");return e+" ms"}(e):function(e){var t=Math.abs(e);if(t>=a)return Math.round(e/a)+"d";if(t>=i)return Math.round(e/i)+"h";if(t>=r)return Math.round(e/r)+"m";if(t>=n)return Math.round(e/n)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(123),i=n(49),a=n(236),o=n(36),s=n(54),c=n(237),l=n(90),u=n(244),p=n(26)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,n,f,m,g,v){c(n,t,f);var b,y,w,_=function(e){if(!d&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",E="values"==m,C=!1,S=e.prototype,M=S[p]||S["@@iterator"]||m&&S[m],x=M||_(m),A=m?E?_("entries"):x:void 0,j="Array"==t&&S.entries||M;if(j&&(w=u(j.call(new e)))!==Object.prototype&&w.next&&(l(w,k,!0),r||"function"==typeof w[p]||o(w,p,h)),E&&M&&"values"!==M.name&&(C=!0,x=function(){return M.call(this)}),r&&!v||!d&&!C&&S[p]||o(S,p,x),s[t]=x,s[k]=h,m)if(b={values:E?x:_("values"),keys:g?x:_("keys"),entries:A},v)for(y in b)y in S||a(S,y,b[y]);else i(i.P+i.F*(d||C),t,b);return b}},function(e,t,n){var r=n(128),i=n(83);e.exports=function(e){return r(i(e))}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(82),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){var r=n(129)("keys"),i=n(89);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(37).f,i=n(53),a=n(26)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=n(12),i=n(139),a=n(13).Buffer,o=new Array(16);function s(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<<t|e>>>32-t}function l(e,t,n,r,i,a,o){return c(e+(t&n|~t&r)+i+a|0,o)+t|0}function u(e,t,n,r,i,a,o){return c(e+(t&r|n&~r)+i+a|0,o)+t|0}function p(e,t,n,r,i,a,o){return c(e+(t^n^r)+i+a|0,o)+t|0}function d(e,t,n,r,i,a,o){return c(e+(n^(t|~r))+i+a|0,o)+t|0}r(s,i),s.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,a=this._d;n=l(n,r,i,a,e[0],3614090360,7),a=l(a,n,r,i,e[1],3905402710,12),i=l(i,a,n,r,e[2],606105819,17),r=l(r,i,a,n,e[3],3250441966,22),n=l(n,r,i,a,e[4],4118548399,7),a=l(a,n,r,i,e[5],1200080426,12),i=l(i,a,n,r,e[6],2821735955,17),r=l(r,i,a,n,e[7],4249261313,22),n=l(n,r,i,a,e[8],1770035416,7),a=l(a,n,r,i,e[9],2336552879,12),i=l(i,a,n,r,e[10],4294925233,17),r=l(r,i,a,n,e[11],2304563134,22),n=l(n,r,i,a,e[12],1804603682,7),a=l(a,n,r,i,e[13],4254626195,12),i=l(i,a,n,r,e[14],2792965006,17),n=u(n,r=l(r,i,a,n,e[15],1236535329,22),i,a,e[1],4129170786,5),a=u(a,n,r,i,e[6],3225465664,9),i=u(i,a,n,r,e[11],643717713,14),r=u(r,i,a,n,e[0],3921069994,20),n=u(n,r,i,a,e[5],3593408605,5),a=u(a,n,r,i,e[10],38016083,9),i=u(i,a,n,r,e[15],3634488961,14),r=u(r,i,a,n,e[4],3889429448,20),n=u(n,r,i,a,e[9],568446438,5),a=u(a,n,r,i,e[14],3275163606,9),i=u(i,a,n,r,e[3],4107603335,14),r=u(r,i,a,n,e[8],1163531501,20),n=u(n,r,i,a,e[13],2850285829,5),a=u(a,n,r,i,e[2],4243563512,9),i=u(i,a,n,r,e[7],1735328473,14),n=p(n,r=u(r,i,a,n,e[12],2368359562,20),i,a,e[5],4294588738,4),a=p(a,n,r,i,e[8],2272392833,11),i=p(i,a,n,r,e[11],1839030562,16),r=p(r,i,a,n,e[14],4259657740,23),n=p(n,r,i,a,e[1],2763975236,4),a=p(a,n,r,i,e[4],1272893353,11),i=p(i,a,n,r,e[7],4139469664,16),r=p(r,i,a,n,e[10],3200236656,23),n=p(n,r,i,a,e[13],681279174,4),a=p(a,n,r,i,e[0],3936430074,11),i=p(i,a,n,r,e[3],3572445317,16),r=p(r,i,a,n,e[6],76029189,23),n=p(n,r,i,a,e[9],3654602809,4),a=p(a,n,r,i,e[12],3873151461,11),i=p(i,a,n,r,e[15],530742520,16),n=d(n,r=p(r,i,a,n,e[2],3299628645,23),i,a,e[0],4096336452,6),a=d(a,n,r,i,e[7],1126891415,10),i=d(i,a,n,r,e[14],2878612391,15),r=d(r,i,a,n,e[5],4237533241,21),n=d(n,r,i,a,e[12],1700485571,6),a=d(a,n,r,i,e[3],2399980690,10),i=d(i,a,n,r,e[10],4293915773,15),r=d(r,i,a,n,e[1],2240044497,21),n=d(n,r,i,a,e[8],1873313359,6),a=d(a,n,r,i,e[15],4264355552,10),i=d(i,a,n,r,e[6],2734768916,15),r=d(r,i,a,n,e[13],1309151649,21),n=d(n,r,i,a,e[4],4149444226,6),a=d(a,n,r,i,e[11],3174756917,10),i=d(i,a,n,r,e[2],718787259,15),r=d(r,i,a,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+a|0},s.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=a.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=s},function(e,t,n){e.exports=i;var r=n(25).EventEmitter;function i(){r.call(this)}n(12)(i,r),i.Readable=n(93),i.Writable=n(279),i.Duplex=n(280),i.Transform=n(281),i.PassThrough=n(282),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",s),n.on("close",c));var o=!1;function s(){o||(o=!0,e.end())}function c(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(u(),0===r.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",i),e.removeListener("drain",a),n.removeListener("end",s),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",l),e.on("error",l),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},function(e,t,n){(t=e.exports=n(140)).Stream=t,t.Readable=t,t.Writable=n(95),t.Duplex=n(40),t.Transform=n(143),t.PassThrough=n(278)},function(e,t,n){var r=n(19),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";(function(t,r){var i=n(69);function a(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var o,s=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:i.nextTick;v.WritableState=g;var c=n(56);c.inherits=n(12);var l={deprecate:n(276)},u=n(141),p=n(94).Buffer,d=window.Uint8Array||function(){};var h,f=n(142);function m(){}function g(e,t){o=o||n(40),e=e||{};var r=t instanceof o;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var c=e.highWaterMark,l=e.writableHighWaterMark,u=this.objectMode?16:16384;this.highWaterMark=c||0===c?c:r&&(l||0===l)?l:u,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var p=!1===e.decodeStrings;this.decodeStrings=!p,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,a=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,a){--t.pendingcb,n?(i.nextTick(a,r),i.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(a(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,a);else{var o=_(n);o||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?s(y,e,n,o,a):y(e,n,o,a)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new a(this)}function v(e){if(o=o||n(40),!(h.call(v,this)||this instanceof o))return new v(e);this._writableState=new g(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),u.call(this)}function b(e,t,n,r,i,a,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function y(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),o=t.corkedRequestsFree;o.entry=n;for(var s=0,c=!0;n;)i[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;i.allBuffers=c,b(e,t,!0,t.length,i,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new a(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,u=n.encoding,p=n.callback;if(b(e,t,!1,t.objectMode?1:l.length,l,u,p),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function _(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function k(e,t){e._final((function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)}))}function E(e,t){var n=_(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,i.nextTick(k,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}c.inherits(v,u),g.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(g.prototype,"buffer",{get:l.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(h=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!h.call(this,e)||this===v&&(e&&e._writableState instanceof g)}})):h=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,n){var r,a=this._writableState,o=!1,s=!a.objectMode&&(r=e,p.isBuffer(r)||r instanceof d);return s&&!p.isBuffer(e)&&(e=function(e){return p.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof n&&(n=m),a.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),i.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var a=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),i.nextTick(r,o),a=!1),a}(this,a,e,n))&&(a.pendingcb++,o=function(e,t,n,r,i,a){if(!n){var o=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=p.from(t,n));return t}(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var l=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:a,next:null},l?l.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else b(e,t,!1,s,r,i,a);return c}(this,a,s,e,t,n)),o},v.prototype.cork=function(){this._writableState.corked++},v.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},v.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(v.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),v.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=f.destroy,v.prototype._undestroy=f.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(20),n(274).setImmediate)},function(e,t,n){"use strict";var r=n(277).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=u,this.end=p,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},a.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},a.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=o(t[r]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";var r=n(19).Buffer,i=n(12),a=n(139),o=new Array(16),s=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(){a.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function f(e,t){return e<<t|e>>>32-t}function m(e,t,n,r,i,a,o,s){return f(e+(t^n^r)+a+o|0,s)+i|0}function g(e,t,n,r,i,a,o,s){return f(e+(t&n|~t&r)+a+o|0,s)+i|0}function v(e,t,n,r,i,a,o,s){return f(e+((t|~n)^r)+a+o|0,s)+i|0}function b(e,t,n,r,i,a,o,s){return f(e+(t&r|n&~r)+a+o|0,s)+i|0}function y(e,t,n,r,i,a,o,s){return f(e+(t^(n|~r))+a+o|0,s)+i|0}i(h,a),h.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,a=0|this._d,h=0|this._e,w=0|this._a,_=0|this._b,k=0|this._c,E=0|this._d,C=0|this._e,S=0;S<80;S+=1){var M,x;S<16?(M=m(n,r,i,a,h,e[s[S]],p[0],l[S]),x=y(w,_,k,E,C,e[c[S]],d[0],u[S])):S<32?(M=g(n,r,i,a,h,e[s[S]],p[1],l[S]),x=b(w,_,k,E,C,e[c[S]],d[1],u[S])):S<48?(M=v(n,r,i,a,h,e[s[S]],p[2],l[S]),x=v(w,_,k,E,C,e[c[S]],d[2],u[S])):S<64?(M=b(n,r,i,a,h,e[s[S]],p[3],l[S]),x=g(w,_,k,E,C,e[c[S]],d[3],u[S])):(M=y(n,r,i,a,h,e[s[S]],p[4],l[S]),x=m(w,_,k,E,C,e[c[S]],d[4],u[S])),n=h,h=a,a=f(i,10),i=r,r=M,w=C,C=E,E=f(k,10),k=_,_=x}var A=this._b+i+E|0;this._b=this._c+a+C|0,this._c=this._d+h+w|0,this._d=this._e+n+_|0,this._e=this._a+r+k|0,this._a=A},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},function(e,t,n){(t=e.exports=function(e){e=e.toLowerCase();var n=t[e];if(!n)throw new Error(e+" is not supported (we accept pull requests)");return new n}).sha=n(283),t.sha1=n(284),t.sha224=n(285),t.sha256=n(144),t.sha384=n(286),t.sha512=n(145)},function(e,t,n){"use strict";t.utils=n(292),t.Cipher=n(293),t.DES=n(294),t.CBC=n(295),t.EDE=n(296)},function(e,t,n){var r=n(297),i=n(305),a=n(155);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},function(e,t,n){var r={ECB:n(298),CBC:n(299),CFB:n(300),CFB8:n(301),CFB1:n(302),OFB:n(303),CTR:n(153),GCM:n(153)},i=n(155);for(var a in i)i[a].module=r[i[a].mode];e.exports=i},function(e,t,n){var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n<t.length;n++)t[n]=this.rand.getByte();return t},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var a=n(309);if("function"!=typeof a.randomBytes)throw new Error("Not supported");i.prototype._rand=function(e){return a.randomBytes(e)}}catch(o){}},function(e,t,n){(function(t){var r=n(18),i=n(41);function a(e,n){var i=function(e){var t=o(e);return{blinder:t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(n),a=n.modulus.byteLength(),s=(r.mont(n.modulus),new r(e).mul(i.blinder).umod(n.modulus)),c=s.toRed(r.mont(n.prime1)),l=s.toRed(r.mont(n.prime2)),u=n.coefficient,p=n.prime1,d=n.prime2,h=c.redPow(n.exponent1),f=l.redPow(n.exponent2);h=h.fromRed(),f=f.fromRed();var m=h.isub(f).imul(u).umod(p);return m.imul(d),f.iadd(m),new t(f.imul(i.unblinder).umod(n.modulus).toArray(!1,a))}function o(e){for(var t=e.modulus.byteLength(),n=new r(i(t));n.cmp(e.modulus)>=0||!n.umod(e.prime1)||!n.umod(e.prime2);)n=new r(i(t));return n}e.exports=a,a.getr=o}).call(this,n(19).Buffer)},function(e,t,n){"use strict";var r=t;r.version=n(314).version,r.utils=n(22),r.rand=n(102),r.curve=n(161),r.curves=n(105),r.ec=n(324),r.eddsa=n(328)},function(e,t,n){"use strict";var r,i=t,a=n(106),o=n(161),s=n(22).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,s(this.g.validate(),"Invalid curve"),s(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function l(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:a.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:a.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:a.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:a.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:a.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:a.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(323)}catch(u){r=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:a.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},function(e,t,n){var r=t;r.utils=n(24),r.common=n(48),r.sha=n(318),r.ripemd=n(321),r.hmac=n(322),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=(l(n(27)),l(n(14))),a=n(35),o=n(29),s=l(n(78)),c=n(43);function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){return e.filter((function(e){return e.state})).reduce((function(e,t){return e[t.key]=t.state,e}),{})};t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Array.isArray(e)?e={entries:e}:"string"==typeof e&&(e={entries:[e]});var t=function(){var e=m[g],t=(0,o.createPath)(e),n=void 0,i=void 0;e.key&&(n=e.key,i=y(n));var s=(0,o.parsePath)(t);return(0,a.createLocation)(r({},s,{state:i}),void 0,n)},n=function(e){var t=g+e;return t>=0&&t<m.length},l=function(e){if(e&&n(e)){g+=e;var i=t();h.transitionTo(r({},i,{action:c.POP}))}},p=function(e){(g+=1)<m.length&&m.splice(g),m.push(e),b(e.key,e.state)},d=function(e){m[g]=e,b(e.key,e.state)},h=(0,s.default)(r({},e,{getCurrentLocation:t,pushLocation:p,replaceLocation:d,go:l})),f=e,m=f.entries,g=f.current;"string"==typeof m?m=[m]:Array.isArray(m)||(m=["/"]),m=m.map((function(e){return(0,a.createLocation)(e)})),null==g?g=m.length-1:g>=0&&g<m.length||(0,i.default)(!1);var v=u(m),b=function(e,t){return v[e]=t},y=function(e){return v[e]};return r({},h,{canGo:n})}},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=p(n(14)),a=n(66),o=u(n(79)),s=u(n(190)),c=n(47),l=p(n(78));function u(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function p(e){return e&&e.__esModule?e:{default:e}}t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.canUseDOM||(0,i.default)(!1);var t=e.forceRefresh||!(0,c.supportsHistory)(),n=t?s:o,u=n.getUserConfirmation,p=n.getCurrentLocation,d=n.pushLocation,h=n.replaceLocation,f=n.go,m=(0,l.default)(r({getUserConfirmation:u},e,{getCurrentLocation:p,pushLocation:d,replaceLocation:h,go:f})),g=0,v=void 0,b=function(e,t){1==++g&&(v=o.startListener(m.transitionTo));var n=t?m.listenBefore(e):m.listen(e);return function(){n(),0==--g&&v()}},y=function(e){return b(e,!0)},w=function(e){return b(e,!1)};return r({},m,{listenBefore:y,listen:w})}},function(e,t,n){"use strict";t.__esModule=!0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=(l(n(27)),l(n(14))),a=n(66),o=n(47),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}(n(191)),c=l(n(78));function l(e){return e&&e.__esModule?e:{default:e}}var u=function(e){return"/"===e.charAt(0)?e:"/"+e},p={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!"+e},decodePath:function(e){return"!"===e.charAt(0)?e.substring(1):e}},noslash:{encodePath:function(e){return"/"===e.charAt(0)?e.substring(1):e},decodePath:u},slash:{encodePath:u,decodePath:u}};t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a.canUseDOM||(0,i.default)(!1);var t=e.queryKey,n=e.hashType;"string"!=typeof t&&(t="_k"),null==n&&(n="slash"),n in p||(n="slash");var l=p[n],u=s.getUserConfirmation,d=function(){return s.getCurrentLocation(l,t)},h=function(e){return s.pushLocation(e,l,t)},f=function(e){return s.replaceLocation(e,l,t)},m=(0,c.default)(r({getUserConfirmation:u},e,{getCurrentLocation:d,pushLocation:h,replaceLocation:f,go:s.go})),g=0,v=void 0,b=function(e,n){1==++g&&(v=s.startListener(m.transitionTo,l,t));var r=n?m.listenBefore(e):m.listen(e);return function(){r(),0==--g&&v()}},y=function(e){return b(e,!0)},w=function(e){return b(e,!1)},_=((0,o.supportsGoWithoutReloadUsingHash)(),function(e){m.go(e)}),k=function(e){return"#"+l.encodePath(m.createHref(e))};return r({},m,{listenBefore:y,listen:w,go:_,createHref:k})}},function(e,t,n){"use strict";var r=n(60),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function c(e){return r.isMemo(e)?o:s[e.$$typeof]||i}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0};var l=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var i=h(n);i&&i!==f&&e(t,i,r)}var o=u(n);p&&(o=o.concat(p(n)));for(var s=c(t),m=c(n),g=0;g<o.length;++g){var v=o[g];if(!(a[v]||r&&r[v]||m&&m[v]||s&&s[v])){var b=d(n,v);try{l(t,v,b)}catch(y){}}}return t}return t}},function(e,t,n){"use strict";(function(e){var r,i=n(173);r="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof window?window:e;var a=Object(i.a)(r);t.a=a}).call(this,n(184)(e))},function(e,t,n){"use strict";(function(t){var r=n(220);e.exports=d;var i,a,o="undefined"!=typeof document&&document.ontouchstart?"touchstart":"click",s="undefined"!=typeof window&&(window.history.location||window.location),c=!0,l=!0,u="",p=!1;function d(e,t){if("function"==typeof e)return d("*",e);if("function"==typeof t)for(var n=new m(e),r=1;r<arguments.length;++r)d.callbacks.push(n.middleware(arguments[r]));else"string"==typeof e?d["string"==typeof t?"redirect":"show"](e,t):d.start(e)}function h(e){return"string"!=typeof e?e:l?decodeURIComponent(e.replace(/\+/g," ")):e}function f(e,t){"/"===e[0]&&0!==e.indexOf(u)&&(e=u+(p?"#!":"")+e);var n=e.indexOf("?");if(this.canonicalPath=e,this.path=e.replace(u,"")||"/",p&&(this.path=this.path.replace("#!","")||"/"),this.title=document.title,this.state=t||{},this.state.path=e,this.querystring=~n?h(e.slice(n+1)):"",this.pathname=h(~n?e.slice(0,n):e),this.params={},this.hash="",!p){if(!~this.path.indexOf("#"))return;var r=this.path.split("#");this.path=r[0],this.hash=h(r[1])||"",this.querystring=this.querystring.split("#")[0]}}function m(e,t){t=t||{},this.path="*"===e?"(.*)":e,this.method="GET",this.regexp=r(this.path,this.keys=[],t)}d.callbacks=[],d.exits=[],d.current="",d.len=0,d.base=function(e){if(0===arguments.length)return u;u=e},d.start=function(e){if(e=e||{},!i&&(i=!0,!1===e.dispatch&&(c=!1),!1===e.decodeURLComponents&&(l=!1),!1!==e.popstate&&window.addEventListener("popstate",g,!1),!1!==e.click&&document.addEventListener(o,v,!1),!0===e.hashbang&&(p=!0),c)){var t=p&&~s.hash.indexOf("#!")?s.hash.substr(2)+s.search:s.pathname+s.search+s.hash;d.replace(t,null,!0,c)}},d.stop=function(){i&&(d.current="",d.len=0,i=!1,document.removeEventListener(o,v,!1),window.removeEventListener("popstate",g,!1))},d.show=function(e,t,n,r){var i=new f(e,t);return d.current=i.path,!1!==n&&d.dispatch(i),!1!==i.handled&&!1!==r&&i.pushState(),i},d.back=function(e,t){d.len>0?(history.back(),d.len--):e?setTimeout((function(){d.show(e,t)})):setTimeout((function(){d.show(u,t)}))},d.redirect=function(e,t){"string"==typeof e&&"string"==typeof t&&d(e,(function(e){setTimeout((function(){d.replace(t)}),0)})),"string"==typeof e&&void 0===t&&setTimeout((function(){d.replace(e)}),0)},d.replace=function(e,t,n,r){var i=new f(e,t);return d.current=i.path,i.init=n,i.save(),!1!==r&&d.dispatch(i),i},d.dispatch=function(e){var t=a,n=0,r=0;function i(){var t=d.callbacks[n++];if(e.path===d.current)return t?void t(e,i):function(e){if(e.handled)return;var t;t=p?u+s.hash.replace("#!",""):s.pathname+s.search;if(t===e.canonicalPath)return;d.stop(),e.handled=!1,s.href=e.canonicalPath}(e);e.handled=!1}a=e,t?function e(){var n=d.exits[r++];if(!n)return i();n(t,e)}():i()},d.exit=function(e,t){if("function"==typeof e)return d.exit("*",e);for(var n=new m(e),r=1;r<arguments.length;++r)d.exits.push(n.middleware(arguments[r]))},d.Context=f,f.prototype.pushState=function(){d.len++,history.pushState(this.state,this.title,p&&"/"!==this.path?"#!"+this.path:this.canonicalPath)},f.prototype.save=function(){history.replaceState(this.state,this.title,p&&"/"!==this.path?"#!"+this.path:this.canonicalPath)},d.Route=m,m.prototype.middleware=function(e){var t=this;return function(n,r){if(t.match(n.path,n.params))return e(n,r);r()}},m.prototype.match=function(e,t){var n=this.keys,r=e.indexOf("?"),i=~r?e.slice(0,r):e,a=this.regexp.exec(decodeURIComponent(i));if(!a)return!1;for(var o=1,s=a.length;o<s;++o){var c=n[o-1],l=h(a[o]);void 0===l&&hasOwnProperty.call(t,c.name)||(t[c.name]=l)}return!0};var g=function(){var e=!1;if("undefined"!=typeof window)return"complete"===document.readyState?e=!0:window.addEventListener("load",(function(){setTimeout((function(){e=!0}),0)})),function(t){if(e)if(t.state){var n=t.state.path;d.replace(n,t.state)}else d.show(s.pathname+s.hash,void 0,void 0,!1)}}();function v(e){if(1===function(e){return null===(e=e||window.event).which?e.button:e.which}(e)&&!(e.metaKey||e.ctrlKey||e.shiftKey||e.defaultPrevented)){for(var n=e.path?e.path[0]:e.target;n&&"A"!==n.nodeName;)n=n.parentNode;if(n&&"A"===n.nodeName&&!n.hasAttribute("download")&&"external"!==n.getAttribute("rel")){var r=n.getAttribute("href");if((p||n.pathname!==s.pathname||!n.hash&&"#"!==r)&&!(r&&r.indexOf("mailto:")>-1)&&!n.target&&b(n.href)){var i=n.pathname+n.search+(n.hash||"");void 0!==t&&i.match(/^\/[a-zA-Z]:\//)&&(i=i.replace(/^\/[a-zA-Z]:\//,"/"));var a=i;0===i.indexOf(u)&&(i=i.substr(u.length)),p&&(i=i.replace("#!","")),u&&a===i||(e.preventDefault(),d.show(a))}}}}function b(e){var t=s.protocol+"//"+s.hostname;return s.port&&(t+=":"+s.port),e&&0===e.indexOf(t)}d.sameOrigin=b}).call(this,n(20))},function(e,t,n){"use strict";var r=n(222),i=n(223);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){i.isString(e)&&(e=y(e));return e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var o=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),p=["%","/","?",";","#"].concat(u),d=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,f=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,m={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(224);function y(e,t,n){if(e&&i.isObject(e)&&e instanceof a)return e;var r=new a;return r.parse(e,t,n),r}a.prototype.parse=function(e,t,n){if(!i.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var y=e=l.join(s);if(y=y.trim(),!n&&1===e.split("#").length){var w=c.exec(y);if(w)return this.path=y,this.href=y,this.pathname=w[1],w[2]?(this.search=w[2],this.query=t?b.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var _=o.exec(y);if(_){var k=(_=_[0]).toLowerCase();this.protocol=k,y=y.substr(_.length)}if(n||_||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var E="//"===y.substr(0,2);!E||_&&g[_]||(y=y.substr(2),this.slashes=!0)}if(!g[_]&&(E||_&&!v[_])){for(var C,S,M=-1,x=0;x<d.length;x++){-1!==(A=y.indexOf(d[x]))&&(-1===M||A<M)&&(M=A)}-1!==(S=-1===M?y.lastIndexOf("@"):y.lastIndexOf("@",M))&&(C=y.slice(0,S),y=y.slice(S+1),this.auth=decodeURIComponent(C)),M=-1;for(x=0;x<p.length;x++){var A;-1!==(A=y.indexOf(p[x]))&&(-1===M||A<M)&&(M=A)}-1===M&&(M=y.length),this.host=y.slice(0,M),y=y.slice(M),this.parseHost(),this.hostname=this.hostname||"";var j="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!j)for(var O=this.hostname.split(/\./),N=(x=0,O.length);x<N;x++){var T=O[x];if(T&&!T.match(h)){for(var P="",I=0,D=T.length;I<D;I++)T.charCodeAt(I)>127?P+="x":P+=T[I];if(!P.match(h)){var R=O.slice(0,x),U=O.slice(x+1),F=T.match(f);F&&(R.push(F[1]),U.unshift(F[2])),U.length&&(y="/"+U.join(".")+y),this.hostname=R.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=r.toASCII(this.hostname));var L=this.port?":"+this.port:"",z=this.hostname||"";this.host=z+L,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!m[k])for(x=0,N=u.length;x<N;x++){var B=u[x];if(-1!==y.indexOf(B)){var V=encodeURIComponent(B);V===B&&(V=escape(B)),y=y.split(B).join(V)}}var H=y.indexOf("#");-1!==H&&(this.hash=y.substr(H),y=y.slice(0,H));var q=y.indexOf("?");if(-1!==q?(this.search=y.substr(q),this.query=y.substr(q+1),t&&(this.query=b.parse(this.query)),y=y.slice(0,q)):t&&(this.search="",this.query={}),y&&(this.pathname=y),v[k]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){L=this.pathname||"";var K=this.search||"";this.path=L+K}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",n=this.pathname||"",r=this.hash||"",a=!1,o="";this.host?a=e+this.host:this.hostname&&(a=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(a+=":"+this.port)),this.query&&i.isObject(this.query)&&Object.keys(this.query).length&&(o=b.stringify(this.query));var s=this.search||o&&"?"+o||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||v[t])&&!1!==a?(a="//"+(a||""),n&&"/"!==n.charAt(0)&&(n="/"+n)):a||(a=""),r&&"#"!==r.charAt(0)&&(r="#"+r),s&&"?"!==s.charAt(0)&&(s="?"+s),t+a+(n=n.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+r},a.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(i.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var n=new a,r=Object.keys(this),o=0;o<r.length;o++){var s=r[o];n[s]=this[s]}if(n.hash=e.hash,""===e.href)return n.href=n.format(),n;if(e.slashes&&!e.protocol){for(var c=Object.keys(e),l=0;l<c.length;l++){var u=c[l];"protocol"!==u&&(n[u]=e[u])}return v[n.protocol]&&n.hostname&&!n.pathname&&(n.path=n.pathname="/"),n.href=n.format(),n}if(e.protocol&&e.protocol!==n.protocol){if(!v[e.protocol]){for(var p=Object.keys(e),d=0;d<p.length;d++){var h=p[d];n[h]=e[h]}return n.href=n.format(),n}if(n.protocol=e.protocol,e.host||g[e.protocol])n.pathname=e.pathname;else{for(var f=(e.pathname||"").split("/");f.length&&!(e.host=f.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==f[0]&&f.unshift(""),f.length<2&&f.unshift(""),n.pathname=f.join("/")}if(n.search=e.search,n.query=e.query,n.host=e.host||"",n.auth=e.auth,n.hostname=e.hostname||e.host,n.port=e.port,n.pathname||n.search){var m=n.pathname||"",b=n.search||"";n.path=m+b}return n.slashes=n.slashes||e.slashes,n.href=n.format(),n}var y=n.pathname&&"/"===n.pathname.charAt(0),w=e.host||e.pathname&&"/"===e.pathname.charAt(0),_=w||y||n.host&&e.pathname,k=_,E=n.pathname&&n.pathname.split("/")||[],C=(f=e.pathname&&e.pathname.split("/")||[],n.protocol&&!v[n.protocol]);if(C&&(n.hostname="",n.port=null,n.host&&(""===E[0]?E[0]=n.host:E.unshift(n.host)),n.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===f[0]?f[0]=e.host:f.unshift(e.host)),e.host=null),_=_&&(""===f[0]||""===E[0])),w)n.host=e.host||""===e.host?e.host:n.host,n.hostname=e.hostname||""===e.hostname?e.hostname:n.hostname,n.search=e.search,n.query=e.query,E=f;else if(f.length)E||(E=[]),E.pop(),E=E.concat(f),n.search=e.search,n.query=e.query;else if(!i.isNullOrUndefined(e.search)){if(C)n.hostname=n.host=E.shift(),(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift());return n.search=e.search,n.query=e.query,i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!E.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var S=E.slice(-1)[0],M=(n.host||e.host||E.length>1)&&("."===S||".."===S)||""===S,x=0,A=E.length;A>=0;A--)"."===(S=E[A])?E.splice(A,1):".."===S?(E.splice(A,1),x++):x&&(E.splice(A,1),x--);if(!_&&!k)for(;x--;x)E.unshift("..");!_||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),M&&"/"!==E.join("/").substr(-1)&&E.push("");var j,O=""===E[0]||E[0]&&"/"===E[0].charAt(0);C&&(n.hostname=n.host=O?"":E.length?E.shift():"",(j=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=j.shift(),n.host=n.hostname=j.shift()));return(_=_||n.host&&E.length)&&!O&&E.unshift(""),E.length?n.pathname=E.join("/"):(n.pathname=null,n.path=null),i.isNull(n.pathname)&&i.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){var r,i,a=n(368),o=n(369),s=(i=[],{activateTrap:function(e){if(i.length>0){var t=i[i.length-1];t!==e&&t.pause()}var n=i.indexOf(e);-1===n?i.push(e):(i.splice(n,1),i.push(e))},deactivateTrap:function(e){var t=i.indexOf(e);-1!==t&&i.splice(t,1),i.length>0&&i[i.length-1].unpause()}});function c(e){return setTimeout(e,0)}e.exports=function(e,t){var n=document,i="string"==typeof e?n.querySelector(e):e,l=o({returnFocusOnDeactivate:!0,escapeDeactivates:!0},t),u={firstTabbableNode:null,lastTabbableNode:null,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1},p={activate:function(e){if(u.active)return;_(),u.active=!0,u.paused=!1,u.nodeFocusedBeforeActivation=n.activeElement;var t=e&&e.onActivate?e.onActivate:l.onActivate;t&&t();return h(),p},deactivate:d,pause:function(){if(u.paused||!u.active)return;u.paused=!0,f()},unpause:function(){if(!u.paused||!u.active)return;u.paused=!1,_(),h()}};return p;function d(e){if(u.active){clearTimeout(r),f(),u.active=!1,u.paused=!1,s.deactivateTrap(p);var t=e&&void 0!==e.onDeactivate?e.onDeactivate:l.onDeactivate;return t&&t(),(e&&void 0!==e.returnFocus?e.returnFocus:l.returnFocusOnDeactivate)&&c((function(){var e;k((e=u.nodeFocusedBeforeActivation,m("setReturnFocus")||e))})),p}}function h(){if(u.active)return s.activateTrap(p),r=c((function(){k(g())})),n.addEventListener("focusin",b,!0),n.addEventListener("mousedown",v,{capture:!0,passive:!1}),n.addEventListener("touchstart",v,{capture:!0,passive:!1}),n.addEventListener("click",w,{capture:!0,passive:!1}),n.addEventListener("keydown",y,{capture:!0,passive:!1}),p}function f(){if(u.active)return n.removeEventListener("focusin",b,!0),n.removeEventListener("mousedown",v,!0),n.removeEventListener("touchstart",v,!0),n.removeEventListener("click",w,!0),n.removeEventListener("keydown",y,!0),p}function m(e){var t=l[e],r=t;if(!t)return null;if("string"==typeof t&&!(r=n.querySelector(t)))throw new Error("`"+e+"` refers to no known node");if("function"==typeof t&&!(r=t()))throw new Error("`"+e+"` did not return a node");return r}function g(){var e;if(!(e=null!==m("initialFocus")?m("initialFocus"):i.contains(n.activeElement)?n.activeElement:u.firstTabbableNode||m("fallbackFocus")))throw new Error("Your focus-trap needs to have at least one focusable element");return e}function v(e){i.contains(e.target)||(l.clickOutsideDeactivates?d({returnFocus:!a.isFocusable(e.target)}):l.allowOutsideClick&&l.allowOutsideClick(e)||e.preventDefault())}function b(e){i.contains(e.target)||e.target instanceof Document||(e.stopImmediatePropagation(),k(u.mostRecentlyFocusedNode||g()))}function y(e){if(!1!==l.escapeDeactivates&&function(e){return"Escape"===e.key||"Esc"===e.key||27===e.keyCode}(e))return e.preventDefault(),void d();(function(e){return"Tab"===e.key||9===e.keyCode})(e)&&function(e){if(_(),e.shiftKey&&e.target===u.firstTabbableNode)return e.preventDefault(),void k(u.lastTabbableNode);if(!e.shiftKey&&e.target===u.lastTabbableNode)e.preventDefault(),k(u.firstTabbableNode)}(e)}function w(e){l.clickOutsideDeactivates||i.contains(e.target)||l.allowOutsideClick&&l.allowOutsideClick(e)||(e.preventDefault(),e.stopImmediatePropagation())}function _(){var e=a(i);u.firstTabbableNode=e[0]||g(),u.lastTabbableNode=e[e.length-1]||g()}function k(e){e!==n.activeElement&&(e&&e.focus?(e.focus(),u.mostRecentlyFocusedNode=e,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(e)&&e.select()):k(g()))}}},function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(i){return!1}}()?Object.assign:function(e,t){for(var n,s,c=o(e),l=1;l<arguments.length;l++){for(var u in n=Object(arguments[l]))i.call(n,u)&&(c[u]=n[u]);if(r){s=r(n);for(var p=0;p<s.length;p++)a.call(n,s[p])&&(c[s[p]]=n[s[p]])}}return c}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,i,a,o,s){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,a,o,s],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";t.__esModule=!0,t.readState=t.saveState=void 0;var r,i=n(27);(r=i)&&r.__esModule;var a={QuotaExceededError:!0,QUOTA_EXCEEDED_ERR:!0},o={SecurityError:!0},s=function(e){return"@@History/"+e};t.saveState=function(e,t){if(window.sessionStorage)try{null==t?window.sessionStorage.removeItem(s(e)):window.sessionStorage.setItem(s(e),JSON.stringify(t))}catch(n){if(o[n.name])return;if(a[n.name]&&0===window.sessionStorage.length)return;throw n}},t.readState=function(e){var t=void 0;try{t=window.sessionStorage.getItem(s(e))}catch(n){if(o[n.name])return}if(t)try{return JSON.parse(t)}catch(n){}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.routerReducer=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.type,o=t.payload;if(n===i)return r({},e,{locationBeforeTransitions:o});return e};var i=t.LOCATION_CHANGE="@@router/LOCATION_CHANGE",a={locationBeforeTransitions:null}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=t.CALL_HISTORY_METHOD="@@router/CALL_HISTORY_METHOD";function i(e){return function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return{type:r,payload:{method:e,args:n}}}}var a=t.push=i("push"),o=t.replace=i("replace"),s=t.go=i("go"),c=t.goBack=i("goBack"),l=t.goForward=i("goForward");t.routerActions={push:a,replace:o,go:s,goBack:c,goForward:l}},function(e,t,n){"use strict";function r(e){return function(){return e}}var i=function(){};i.thatReturns=r,i.thatReturnsFalse=r(!1),i.thatReturnsTrue=r(!0),i.thatReturnsNull=r(null),i.thatReturnsThis=function(){return this},i.thatReturnsArgument=function(e){return e},e.exports=i},function(e,t,n){"use strict";var r=n(24).rotr32;function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?o(t,n,r):2===e?a(t,n,r):void 0},t.ch32=i,t.maj32=a,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){e.exports=!0},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(38),i=n(30).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(52),i=n(238),a=n(130),o=n(88)("IE_PROTO"),s=function(){},c=function(){var e,t=n(125)("iframe"),r=a.length;for(t.style.display="none",n(243).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;r--;)delete c.prototype[a[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[o]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(86);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(50),i=n(30),a=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return a[e]||(a[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(123)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(83);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){var r=n(36);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},function(e,t){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){var r=n(86),i=n(26)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(n){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){var r=n(89)("meta"),i=n(38),a=n(53),o=n(37).f,s=0,c=Object.isExtensible||function(){return!0},l=!n(67)((function(){return c(Object.preventExtensions({}))})),u=function(e){o(e,r,{value:{i:"O"+ ++s,w:{}}})},p=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!a(e,r)){if(!c(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!a(e,r)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return l&&p.NEED&&c(e)&&!a(e,r)&&u(e),e}}},function(e,t,n){var r=n(38);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";var r=n(13).Buffer,i=n(92).Transform;function a(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(12)(a,i),a.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(i){r=i}n(r)},a.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(n){t=n}e(t)},a.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var a=this._blockOffset;a<this._blockSize;)n[a++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)n[this._blockOffset++]=e[i++];for(var o=0,s=8*e.length;s>0;++o)this._length[o]+=s,(s=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*s);return this},a.prototype._update=function(){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=a},function(e,t,n){"use strict";(function(t){var r=n(69);e.exports=b;var i,a=n(138);b.ReadableState=v;n(25).EventEmitter;var o=function(e,t){return e.listeners(t).length},s=n(141),c=n(94).Buffer,l=window.Uint8Array||function(){};var u=n(56);u.inherits=n(12);var p=n(271),d=void 0;d=p&&p.debuglog?p.debuglog("stream"):function(){};var h,f=n(272),m=n(142);u.inherits(b,s);var g=["error","close","destroy","pause","resume"];function v(e,t){e=e||{};var r=t instanceof(i=i||n(40));this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var a=e.highWaterMark,o=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=a||0===a?a:r&&(o||0===o)?o:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new f,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(96).StringDecoder),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function b(e){if(i=i||n(40),!(this instanceof b))return new b(e);this._readableState=new v(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function y(e,t,n,r,i){var a,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,k(e)}(e,o)):(i||(a=function(e,t){var n;r=t,c.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(o,t)),a?e.emit("error",a):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===c.prototype||(t=function(e){return c.from(e)}(t)),r?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?w(e,o,t,!1):C(e,o)):w(e,o,t,!1))):r||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(o)}function w(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&k(e)),C(e,t)}Object.defineProperty(b.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),b.prototype.destroy=m.destroy,b.prototype._undestroy=m.undestroy,b.prototype._destroy=function(e,t){this.push(null),t(e)},b.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=c.from(e,t),t=""),n=!0),y(this,e,t,!1,n)},b.prototype.unshift=function(e){return y(this,e,null,!0,!1)},b.prototype.isPaused=function(){return!1===this._readableState.flowing},b.prototype.setEncoding=function(e){return h||(h=n(96).StringDecoder),this._readableState.decoder=new h(e),this._readableState.encoding=e,this};function _(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=8388608?e=8388608:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function k(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(d("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?r.nextTick(E,e):E(e))}function E(e){d("emit readable"),e.emit("readable"),A(e)}function C(e,t){t.readingMore||(t.readingMore=!0,r.nextTick(S,e,t))}function S(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(d("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function M(e){d("readable nexttick read 0"),e.read(0)}function x(e,t){t.reading||(d("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),A(e),t.flowing&&!t.reading&&e.read(0)}function A(e){var t=e._readableState;for(d("flow",t.flowing);t.flowing&&null!==e.read(););}function j(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,i=n.data;e-=i.length;for(;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),0===(e-=o)){o===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=c.allocUnsafe(e),r=t.head,i=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,o),0===(e-=o)){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function O(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,r.nextTick(N,t,e))}function N(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function T(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}b.prototype.read=function(e){d("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return d("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?O(this):k(this),null;if(0===(e=_(e,t))&&t.ended)return 0===t.length&&O(this),null;var r,i=t.needReadable;return d("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&d("length less than watermark",i=!0),t.ended||t.reading?d("reading or ended",i=!1):i&&(d("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=_(n,t))),null===(r=e>0?j(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&O(this)),null!==r&&this.emit("data",r),r},b.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},b.prototype.pipe=function(e,n){var i=this,s=this._readableState;switch(s.pipesCount){case 0:s.pipes=e;break;case 1:s.pipes=[s.pipes,e];break;default:s.pipes.push(e)}s.pipesCount+=1,d("pipe count=%d opts=%j",s.pipesCount,n);var c=(!n||!1!==n.end)&&e!==t.stdout&&e!==t.stderr?u:y;function l(t,n){d("onunpipe"),t===i&&n&&!1===n.hasUnpiped&&(n.hasUnpiped=!0,d("cleanup"),e.removeListener("close",v),e.removeListener("finish",b),e.removeListener("drain",p),e.removeListener("error",g),e.removeListener("unpipe",l),i.removeListener("end",u),i.removeListener("end",y),i.removeListener("data",m),h=!0,!s.awaitDrain||e._writableState&&!e._writableState.needDrain||p())}function u(){d("onend"),e.end()}s.endEmitted?r.nextTick(c):i.once("end",c),e.on("unpipe",l);var p=function(e){return function(){var t=e._readableState;d("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,A(e))}}(i);e.on("drain",p);var h=!1;var f=!1;function m(t){d("ondata"),f=!1,!1!==e.write(t)||f||((1===s.pipesCount&&s.pipes===e||s.pipesCount>1&&-1!==T(s.pipes,e))&&!h&&(d("false write response, pause",i._readableState.awaitDrain),i._readableState.awaitDrain++,f=!0),i.pause())}function g(t){d("onerror",t),y(),e.removeListener("error",g),0===o(e,"error")&&e.emit("error",t)}function v(){e.removeListener("finish",b),y()}function b(){d("onfinish"),e.removeListener("close",v),y()}function y(){d("unpipe"),i.unpipe(e)}return i.on("data",m),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?a(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",g),e.once("close",v),e.once("finish",b),e.emit("pipe",i),s.flowing||(d("pipe resume"),i.resume()),e},b.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<i;a++)r[a].emit("unpipe",this,n);return this}var o=T(t.pipes,e);return-1===o?this:(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},b.prototype.on=function(e,t){var n=s.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var i=this._readableState;i.endEmitted||i.readableListening||(i.readableListening=i.needReadable=!0,i.emittedReadable=!1,i.reading?i.length&&k(this):r.nextTick(M,this))}return n},b.prototype.addListener=b.prototype.on,b.prototype.resume=function(){var e=this._readableState;return e.flowing||(d("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,r.nextTick(x,e,t))}(this,e)),this},b.prototype.pause=function(){return d("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(d("pause"),this._readableState.flowing=!1,this.emit("pause")),this},b.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(d("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(d("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a<g.length;a++)e.on(g[a],this.emit.bind(this,g[a]));return this._read=function(t){d("wrapped _read",t),r&&(r=!1,e.resume())},this},Object.defineProperty(b.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),b._fromList=j}).call(this,n(20))},function(e,t,n){e.exports=n(25).EventEmitter},function(e,t,n){"use strict";var r=n(69);function i(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(i,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?(r.nextTick(i,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";e.exports=o;var r=n(40),i=n(56);function a(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function o(e){if(!(this instanceof o))return new o(e);r.call(this,e),this._transformState={afterTransform:a.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",s)}function s(){var e=this;"function"==typeof this._flush?this._flush((function(t,n){c(e,t,n)})):c(this,null,null)}function c(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}i.inherits=n(12),i.inherits(o,r),o.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},o.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},o.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},o.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},o.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,(function(e){t(e),n.emit("close")}))}},function(e,t,n){var r=n(12),i=n(42),a=n(13).Buffer,o=[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],s=new Array(64);function c(){this.init(),this._w=s,i.call(this,64,56)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function p(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,c=0|this._e,f=0|this._f,m=0|this._g,g=0|this._h,v=0;v<16;++v)n[v]=e.readInt32BE(4*v);for(;v<64;++v)n[v]=0|(((t=n[v-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[v-7]+h(n[v-15])+n[v-16];for(var b=0;b<64;++b){var y=g+d(c)+l(c,f,m)+o[b]+n[b]|0,w=p(r)+u(r,i,a)|0;g=m,m=f,f=c,c=s+y|0,s=a,a=i,i=r,r=y+w|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=c+this._e|0,this._f=f+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},c.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},function(e,t,n){var r=n(12),i=n(42),a=n(13).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function c(){this.init(),this._w=s,i.call(this,128,112)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function p(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function v(e,t){return e>>>0<t>>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,a=0|this._dh,s=0|this._eh,c=0|this._fh,b=0|this._gh,y=0|this._hh,w=0|this._al,_=0|this._bl,k=0|this._cl,E=0|this._dl,C=0|this._el,S=0|this._fl,M=0|this._gl,x=0|this._hl,A=0;A<32;A+=2)t[A]=e.readInt32BE(4*A),t[A+1]=e.readInt32BE(4*A+4);for(;A<160;A+=2){var j=t[A-30],O=t[A-30+1],N=h(j,O),T=f(O,j),P=m(j=t[A-4],O=t[A-4+1]),I=g(O,j),D=t[A-14],R=t[A-14+1],U=t[A-32],F=t[A-32+1],L=T+R|0,z=N+D+v(L,T)|0;z=(z=z+P+v(L=L+I|0,I)|0)+U+v(L=L+F|0,F)|0,t[A]=z,t[A+1]=L}for(var B=0;B<160;B+=2){z=t[B],L=t[B+1];var V=u(n,r,i),H=u(w,_,k),q=p(n,w),K=p(w,n),J=d(s,C),W=d(C,s),G=o[B],Y=o[B+1],$=l(s,c,b),X=l(C,S,M),Q=x+W|0,Z=y+J+v(Q,x)|0;Z=(Z=(Z=Z+$+v(Q=Q+X|0,X)|0)+G+v(Q=Q+Y|0,Y)|0)+z+v(Q=Q+L|0,L)|0;var ee=K+H|0,te=q+V+v(ee,K)|0;y=b,x=M,b=c,M=S,c=s,S=C,s=a+Z+v(C=E+Q|0,E)|0,a=i,E=k,i=r,k=_,r=n,_=w,n=Z+te+v(w=Q+ee|0,Q)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+k|0,this._dl=this._dl+E|0,this._el=this._el+C|0,this._fl=this._fl+S|0,this._gl=this._gl+M|0,this._hl=this._hl+x|0,this._ah=this._ah+n+v(this._al,w)|0,this._bh=this._bh+r+v(this._bl,_)|0,this._ch=this._ch+i+v(this._cl,k)|0,this._dh=this._dh+a+v(this._dl,E)|0,this._eh=this._eh+s+v(this._el,C)|0,this._fh=this._fh+c+v(this._fl,S)|0,this._gh=this._gh+b+v(this._gl,M)|0,this._hh=this._hh+y+v(this._hl,x)|0},c.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},function(e,t,n){"use strict";var r=n(12),i=n(287),a=n(31),o=n(13).Buffer,s=n(147),c=n(97),l=n(98),u=o.alloc(128);function p(e,t){a.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var n="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>n)?t=("rmd160"===e?new c:l(e)).update(t).digest():t.length<n&&(t=o.concat([t,u],n));for(var r=this._ipad=o.allocUnsafe(n),i=this._opad=o.allocUnsafe(n),s=0;s<n;s++)r[s]=54^t[s],i[s]=92^t[s];this._hash="rmd160"===e?new c:l(e),this._hash.update(r)}r(p,a),p.prototype._update=function(e){this._hash.update(e)},p.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new c:l(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new p("rmd160",t):"md5"===e?new i(s,t):new p(e,t)}},function(e,t,n){var r=n(91);e.exports=function(e){return(new r).update(e).digest()}},function(e){e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},function(e,t,n){t.pbkdf2=n(289),t.pbkdf2Sync=n(152)},function(e,t,n){(function(t){var n=Math.pow(2,30)-1;function r(e,n){if("string"!=typeof e&&!t.isBuffer(e))throw new TypeError(n+" must be a buffer or string")}e.exports=function(e,t,i,a){if(r(e,"Password"),r(t,"Salt"),"number"!=typeof i)throw new TypeError("Iterations not a number");if(i<0)throw new TypeError("Bad iterations");if("number"!=typeof a)throw new TypeError("Key length not a number");if(a<0||a>n||a!=a)throw new TypeError("Bad key length")}}).call(this,n(19).Buffer)},function(e,t,n){(function(t){var n;t.browser?n="utf-8":n=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=n}).call(this,n(20))},function(e,t,n){var r=n(147),i=n(97),a=n(98),o=n(150),s=n(151),c=n(13).Buffer,l=c.alloc(128),u={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function p(e,t,n){var o=function(e){function t(t){return a(e).update(t).digest()}return"rmd160"===e||"ripemd160"===e?function(e){return(new i).update(e).digest()}:"md5"===e?r:t}(e),s="sha512"===e||"sha384"===e?128:64;t.length>s?t=o(t):t.length<s&&(t=c.concat([t,l],s));for(var p=c.allocUnsafe(s+u[e]),d=c.allocUnsafe(s+u[e]),h=0;h<s;h++)p[h]=54^t[h],d[h]=92^t[h];var f=c.allocUnsafe(s+n+4);p.copy(f,0,0,s),this.ipad1=f,this.ipad2=p,this.opad=d,this.alg=e,this.blocksize=s,this.hash=o,this.size=u[e]}p.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,n,r,i){o(e,t,n,r),c.isBuffer(e)||(e=c.from(e,s)),c.isBuffer(t)||(t=c.from(t,s));var a=new p(i=i||"sha1",e,t.length),l=c.allocUnsafe(r),d=c.allocUnsafe(t.length+4);t.copy(d,0,0,t.length);for(var h=0,f=u[i],m=Math.ceil(r/f),g=1;g<=m;g++){d.writeUInt32BE(g,t.length);for(var v=a.run(d,a.ipad1),b=v,y=1;y<n;y++){b=a.run(b,a.ipad2);for(var w=0;w<f;w++)v[w]^=b[w]}v.copy(l,h),h+=f}return l}},function(e,t,n){var r=n(57),i=n(13).Buffer,a=n(154);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var s=0;s<n;s++){var c=o(e),l=a+16*s;e._cache.writeUInt32BE(c[0],l+0),e._cache.writeUInt32BE(c[1],l+4),e._cache.writeUInt32BE(c[2],l+8),e._cache.writeUInt32BE(c[3],l+12)}var u=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,u)}},function(e,t){e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},function(e){e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},function(e,t,n){var r=n(70),i=n(13).Buffer,a=n(31),o=n(12),s=n(304),c=n(57),l=n(154);function u(e,t,n,o){a.call(this);var c=i.alloc(4,0);this._cipher=new r.AES(t);var u=this._cipher.encryptBlock(c);this._ghash=new s(u),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new s(n),a=t.length,o=a%16;r.update(t),o&&(o=16-o,r.update(i.alloc(o,0))),r.update(i.alloc(8,0));var c=8*a,u=i.alloc(8);u.writeUIntBE(c,0,8),r.update(u),e._finID=r.state;var p=i.from(e._finID);return l(p),p}(this,n,u),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}o(u,a),u.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;i<r;++i)n+=e[i]^t[i];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},u.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},u.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=u},function(e,t,n){var r=n(70),i=n(13).Buffer,a=n(31);function o(e,t,n,o){a.call(this),this._cipher=new r.AES(t),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._mode=e}n(12)(o,a),o.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},e.exports=o},function(e,t,n){var r=n(41);e.exports=b,b.simpleSieve=g,b.fermatTest=v;var i=n(18),a=new i(24),o=new(n(159)),s=new i(1),c=new i(2),l=new i(5),u=(new i(16),new i(8),new i(10)),p=new i(3),d=(new i(7),new i(11)),h=new i(4),f=(new i(12),null);function m(){if(null!==f)return f;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;i<t&&e[i]<=r&&n%e[i]!=0;i++);t!==i&&e[i]<=r||(e[t++]=n)}return f=e,e}function g(e){for(var t=m(),n=0;n<t.length;n++)if(0===e.modn(t[n]))return 0===e.cmpn(t[n]);return!0}function v(e){var t=i.mont(e);return 0===c.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function b(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var n,f;for(t=new i(t);;){for(n=new i(r(Math.ceil(e/8)));n.bitLength()>e;)n.ishrn(1);if(n.isEven()&&n.iadd(s),n.testn(1)||n.iadd(c),t.cmp(c)){if(!t.cmp(l))for(;n.mod(u).cmp(p);)n.iadd(h)}else for(;n.mod(a).cmp(d);)n.iadd(h);if(g(f=n.shrn(1))&&g(n)&&v(f)&&v(n)&&o.test(f)&&o.test(n))return n}}},function(e,t,n){var r=n(18),i=n(102);function a(e){this.rand=e||new i.Rand}e.exports=a,a.create=function(e){return new a(e)},a.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},a.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},a.prototype.test=function(e,t,n){var i=e.bitLength(),a=r.mont(e),o=new r(1).toRed(a);t||(t=Math.max(1,i/48|0));for(var s=e.subn(1),c=0;!s.testn(c);c++);for(var l=e.shrn(c),u=s.toRed(a);t>0;t--){var p=this._randrange(new r(2),s);n&&n(p);var d=p.toRed(a).redPow(l);if(0!==d.cmp(o)&&0!==d.cmp(u)){for(var h=1;h<c;h++){if(0===(d=d.redSqr()).cmp(o))return!1;if(0===d.cmp(u))break}if(h===c)return!1}}return!0},a.prototype.getDivisor=function(e,t){var n=e.bitLength(),i=r.mont(e),a=new r(1).toRed(i);t||(t=Math.max(1,n/48|0));for(var o=e.subn(1),s=0;!o.testn(s);s++);for(var c=e.shrn(s),l=o.toRed(i);t>0;t--){var u=this._randrange(new r(2),o),p=e.gcd(u);if(0!==p.cmpn(1))return p;var d=u.toRed(i).redPow(c);if(0!==d.cmp(a)&&0!==d.cmp(l)){for(var h=1;h<s;h++){if(0===(d=d.redSqr()).cmp(a))return d.fromRed().subn(1).gcd(e);if(0===d.cmp(l))break}if(h===s)return(d=d.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},function(e,t,n){"use strict";var r=t;function i(e){return 1===e.length?"0"+e:e}function a(e){for(var t="",n=0;n<e.length;n++)t+=i(e[n].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},r.zero2=i,r.toHex=a,r.encode=function(e,t){return"hex"===t?a(e):e}},function(e,t,n){"use strict";var r=t;r.base=n(72),r.short=n(315),r.mont=n(316),r.edwards=n(317)},function(e,t,n){"use strict";var r=n(24),i=n(48),a=n(121),o=n(21),s=r.sum32,c=r.sum32_4,l=r.sum32_5,u=a.ch32,p=a.maj32,d=a.s0_256,h=a.s1_256,f=a.g0_256,m=a.g1_256,g=i.BlockHash,v=[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];function b(){if(!(this instanceof b))return new b;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}r.inherits(b,g),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=c(m(n[r-2]),n[r-7],f(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],g=this.h[2],v=this.h[3],b=this.h[4],y=this.h[5],w=this.h[6],_=this.h[7];for(o(this.k.length===n.length),r=0;r<n.length;r++){var k=l(_,h(b),u(b,y,w),this.k[r],n[r]),E=s(d(i),p(i,a,g));_=w,w=y,y=b,b=s(v,k),v=g,g=a,a=i,i=s(k,E)}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],g),this.h[3]=s(this.h[3],v),this.h[4]=s(this.h[4],b),this.h[5]=s(this.h[5],y),this.h[6]=s(this.h[6],w),this.h[7]=s(this.h[7],_)},b.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){"use strict";var r=n(24),i=n(48),a=n(21),o=r.rotr64_hi,s=r.rotr64_lo,c=r.shr64_hi,l=r.shr64_lo,u=r.sum64,p=r.sum64_hi,d=r.sum64_lo,h=r.sum64_4_hi,f=r.sum64_4_lo,m=r.sum64_5_hi,g=r.sum64_5_lo,v=i.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function w(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function _(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function k(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function E(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function C(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function S(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function M(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function x(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function A(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function j(e,t){var n=s(e,t,1)^s(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function N(e,t){var n=s(e,t,19)^s(t,e,29)^l(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,v),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=O(n[r-4],n[r-3]),a=N(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],c=A(n[r-30],n[r-29]),l=j(n[r-30],n[r-29]),u=n[r-32],p=n[r-31];n[r]=h(i,a,o,s,c,l,u,p),n[r+1]=f(i,a,o,s,c,l,u,p)}},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],c=this.h[4],l=this.h[5],h=this.h[6],f=this.h[7],v=this.h[8],b=this.h[9],y=this.h[10],A=this.h[11],j=this.h[12],O=this.h[13],N=this.h[14],T=this.h[15];a(this.k.length===n.length);for(var P=0;P<n.length;P+=2){var I=N,D=T,R=M(v,b),U=x(v,b),F=w(v,b,y,A,j),L=_(v,b,y,A,j,O),z=this.k[P],B=this.k[P+1],V=n[P],H=n[P+1],q=m(I,D,R,U,F,L,z,B,V,H),K=g(I,D,R,U,F,L,z,B,V,H);I=C(r,i),D=S(r,i),R=k(r,i,o,s,c),U=E(r,i,o,s,c,l);var J=p(I,D,R,U),W=d(I,D,R,U);N=j,T=O,j=y,O=A,y=v,A=b,v=p(h,f,q,K),b=d(f,f,q,K),h=c,f=l,c=o,l=s,o=r,s=i,r=p(q,K,J,W),i=d(q,K,J,W)}u(this.h,0,r,i),u(this.h,2,o,s),u(this.h,4,c,l),u(this.h,6,h,f),u(this.h,8,v,b),u(this.h,10,y,A),u(this.h,12,j,O),u(this.h,14,N,T)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){var r=n(12),i=n(59).Reporter,a=n(19).Buffer;function o(e,t){i.call(this,t),a.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function s(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return e instanceof s||(e=new s(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=a.byteLength(e);else{if(!a.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}r(o,i),t.DecoderBuffer=o,o.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},o.prototype.restore=function(e){var t=new o(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,i.prototype.restore.call(this,e.reporter),t},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},o.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");var n=new o(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+e,this.offset+=e,n},o.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.EncoderBuffer=s,s.prototype.join=function(e,t){return e||(e=new a(this.length)),t||(t=0),0===this.length?e:(Array.isArray(this.value)?this.value.forEach((function(n){n.join(e,t),t+=n.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):a.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length),e)}},function(e,t,n){var r=t;r._reverse=function(e){var t={};return Object.keys(e).forEach((function(n){(0|n)==n&&(n|=0);var r=e[n];t[r]=n})),t},r.der=n(336)},function(e,t,n){var r=n(12),i=n(58),a=i.base,o=i.bignum,s=i.constants.der;function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new l,this.tree._init(e.body)}function l(e){a.Node.call(this,"der",e)}function u(e,t){var n=e.readUInt8(t);if(e.isError(n))return n;var r=s.tagClass[n>>6],i=0==(32&n);if(31==(31&n)){var a=n;for(n=0;128==(128&a);){if(a=e.readUInt8(t),e.isError(a))return a;n<<=7,n|=127&a}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:s.tag[n]}}function p(e,t,n){var r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(0==(128&r))return r;var i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(var a=0;a<i;a++){r<<=8;var o=e.readUInt8(n);if(e.isError(o))return o;r|=o}return r}e.exports=c,c.prototype.decode=function(e,t){return e instanceof a.DecoderBuffer||(e=new a.DecoderBuffer(e,t)),this.tree._decode(e,t)},r(l,a.Node),l.prototype._peekTag=function(e,t,n){if(e.isEmpty())return!1;var r=e.save(),i=u(e,'Failed to peek tag: "'+t+'"');return e.isError(i)?i:(e.restore(r),i.tag===t||i.tagStr===t||i.tagStr+"of"===t||n)},l.prototype._decodeTag=function(e,t,n){var r=u(e,'Failed to decode tag of "'+t+'"');if(e.isError(r))return r;var i=p(e,r.primitive,'Failed to get length of "'+t+'"');if(e.isError(i))return i;if(!n&&r.tag!==t&&r.tagStr!==t&&r.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(r.primitive||null!==i)return e.skip(i,'Failed to match body of: "'+t+'"');var a=e.save(),o=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(o)?o:(i=e.offset-a.offset,e.restore(a),e.skip(i,'Failed to match body of: "'+t+'"'))},l.prototype._skipUntilEnd=function(e,t){for(;;){var n=u(e,t);if(e.isError(n))return n;var r,i=p(e,n.primitive,t);if(e.isError(i))return i;if(r=n.primitive||null!==i?e.skip(i):this._skipUntilEnd(e,t),e.isError(r))return r;if("end"===n.tagStr)break}},l.prototype._decodeList=function(e,t,n,r){for(var i=[];!e.isEmpty();){var a=this._peekTag(e,"end");if(e.isError(a))return a;var o=n.decode(e,"der",r);if(e.isError(o)&&a)break;i.push(o)}return i},l.prototype._decodeStr=function(e,t){if("bitstr"===t){var n=e.readUInt8();return e.isError(n)?n:{unused:n,data:e.raw()}}if("bmpstr"===t){var r=e.raw();if(r.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");for(var i="",a=0;a<r.length/2;a++)i+=String.fromCharCode(r.readUInt16BE(2*a));return i}if("numstr"===t){var o=e.raw().toString("ascii");return this._isNumstr(o)?o:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){var s=e.raw().toString("ascii");return this._isPrintstr(s)?s:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},l.prototype._decodeObjid=function(e,t,n){for(var r,i=[],a=0;!e.isEmpty();){var o=e.readUInt8();a<<=7,a|=127&o,0==(128&o)&&(i.push(a),a=0)}128&o&&i.push(a);var s=i[0]/40|0,c=i[0]%40;if(r=n?i:[s,c].concat(i.slice(1)),t){var l=t[r.join(" ")];void 0===l&&(l=t[r.join(".")]),void 0!==l&&(r=l)}return r},l.prototype._decodeTime=function(e,t){var n=e.raw().toString();if("gentime"===t)var r=0|n.slice(0,4),i=0|n.slice(4,6),a=0|n.slice(6,8),o=0|n.slice(8,10),s=0|n.slice(10,12),c=0|n.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");r=0|n.slice(0,2),i=0|n.slice(2,4),a=0|n.slice(4,6),o=0|n.slice(6,8),s=0|n.slice(8,10),c=0|n.slice(10,12);r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,a,o,s,c,0)},l.prototype._decodeNull=function(e){return null},l.prototype._decodeBool=function(e){var t=e.readUInt8();return e.isError(t)?t:0!==t},l.prototype._decodeInt=function(e,t){var n=e.raw(),r=new o(n);return t&&(r=t[r.toString(10)]||r),r},l.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},function(e,t,n){var r=n(12),i=n(19).Buffer,a=n(58),o=a.base,s=a.constants.der;function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new l,this.tree._init(e.body)}function l(e){o.Node.call(this,"der",e)}function u(e){return e<10?"0"+e:e}e.exports=c,c.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(l,o.Node),l.prototype._encodeComposite=function(e,t,n,r){var a,o=function(e,t,n,r){var i;"seqof"===e?e="seq":"setof"===e&&(e="set");if(s.tagByName.hasOwnProperty(e))i=s.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}if(i>=31)return r.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=s.tagClassByName[n||"universal"]<<6}(e,t,n,this.reporter);if(r.length<128)return(a=new i(2))[0]=o,a[1]=r.length,this._createEncoderBuffer([a,r]);for(var c=1,l=r.length;l>=256;l>>=8)c++;(a=new i(2+c))[0]=o,a[1]=128|c;l=1+c;for(var u=r.length;u>0;l--,u>>=8)a[l]=255&u;return this._createEncoderBuffer([a,r])},l.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var n=new i(2*e.length),r=0;r<e.length;r++)n.writeUInt16BE(e.charCodeAt(r),2*r);return this._createEncoderBuffer(n)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)?this._createEncoderBuffer(e):"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},l.prototype._encodeObjid=function(e,t,n){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s\.]+/g);for(var r=0;r<e.length;r++)e[r]|=0}else if(Array.isArray(e)){e=e.slice();for(r=0;r<e.length;r++)e[r]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!n){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var a=0;for(r=0;r<e.length;r++){var o=e[r];for(a++;o>=128;o>>=7)a++}var s=new i(a),c=s.length-1;for(r=e.length-1;r>=0;r--){o=e[r];for(s[c--]=127&o;(o>>=7)>0;)s[c--]=128|127&o}return this._createEncoderBuffer(s)},l.prototype._encodeTime=function(e,t){var n,r=new Date(e);return"gentime"===t?n=[u(r.getFullYear()),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[u(r.getFullYear()%100),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},l.prototype._encodeNull=function(){return this._createEncoderBuffer("")},l.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new i(n)}if(i.isBuffer(e)){var r=e.length;0===e.length&&r++;var a=new i(r);return e.copy(a),0===e.length&&(a[0]=0),this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);r=1;for(var o=e;o>=256;o>>=8)r++;for(o=(a=new Array(r)).length-1;o>=0;o--)a[o]=255&e,e>>=8;return 128&a[0]&&a.unshift(0),this._createEncoderBuffer(new i(a))},l.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},l.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},l.prototype._skipDefault=function(e,t,n){var r,i=this._baseState;if(null===i.default)return!1;var a=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,n).join()),a.length!==i.defaultBuffer.length)return!1;for(r=0;r<a.length;r++)if(a[r]!==i.defaultBuffer[r])return!1;return!0}},function(e){e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},function(e,t,n){var r=n(55),i=n(13).Buffer;function a(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var n,o=i.alloc(0),s=0;o.length<t;)n=a(s++),o=i.concat([o,r("sha1").update(e).update(n).digest()]);return o.slice(0,t)}},function(e,t){e.exports=function(e,t){for(var n=e.length,r=-1;++r<n;)e[r]^=t[r];return e}},function(e,t,n){var r=n(18),i=n(13).Buffer;e.exports=function(e,t){return i.from(e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed().toArray())}},function(e,t,n){},function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a=Object.defineProperty,o=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,c=Object.getOwnPropertyDescriptor,l=Object.getPrototypeOf,u=l&&l(Object);e.exports=function e(t,n,p){if("string"!=typeof n){if(u){var d=l(n);d&&d!==u&&e(t,d,p)}var h=o(n);s&&(h=h.concat(s(n)));for(var f=0;f<h.length;++f){var m=h[f];if(!(r[m]||i[m]||p&&p[m])){var g=c(n,m);try{a(t,m,g)}catch(v){}}}return t}return t}},function(e,t,n){var r=n(5),i=n(80),a=n(199),o=n(200);function s(t){var n="function"==typeof Map?new Map:void 0;return e.exports=s=function(e){if(null===e||!a(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return o(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),i(t,e)},s(t)}e.exports=s},function(e,t,n){"use strict";(function(r){function i(e){return(i="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":i(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(i=r))})),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!e&&void 0!==r&&"env"in r&&(e=r.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.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"],e.exports=n(201)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}).call(this,n(20))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(229));t.default=c;var i=o(n(266)),a=o(n(267));function o(e){return e&&e.__esModule?e:{default:e}}var s=new r.default;function c(e,t){return s.set(e,t),function(){s.delete(e)}}function l(e){s.forEach((function(t,n){(0,a.default)(n,e.target)||t.call(n,e)}))}function u(e){e||(e=document),i.default.bind(e,"click",l)}c.globalClick=l,c.install=u,"undefined"!=typeof document&&u(document),e.exports=t.default},function(e,t,n){function r(e){var t,n;for(t=[],n=0;n<e.length;n++)t.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_"[e[n]%64]);return t.join("")}e.exports=function(e){if("undefined"!=typeof window){if(void 0!==window.crypto)return r(window.crypto.getRandomValues(new Uint8Array(e)));for(var t=new Array(e),i=0;i<e;i++)t[i]=Math.floor(256*Math.random());return r(t)}var a=n(268);try{return r(a.randomBytes(e))}catch(o){return r(a.pseudoRandomBytes(e))}}},function(e,t,n){var r;r=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var r="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},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=c(n(1)),o=c(n(3)),s=c(n(4));function c(e){return e&&e.__esModule?e:{default:e}}var l=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.resolveOptions(n),r.listenClick(e),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),i(t,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===r(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=(0,s.default)(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return u("action",e)}},{key:"defaultTarget",value:function(e){var t=u("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return u("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach((function(e){n=n&&!!document.queryCommandSupported(e)})),n}}]),t}(o.default);function u(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}e.exports=l},function(e,t,n){"use strict";var r,i="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},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(2),s=(r=o)&&r.__esModule?r:{default:r},c=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return a(e,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,s.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,s.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":i(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}();e.exports=c},function(e,t){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(e),r.removeAllRanges(),r.addRange(i),t=r.toString()}return t}},function(e,t){function n(){}n.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function i(){r.off(e,i),t.apply(n,arguments)}return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],i=[];if(r&&t)for(var a=0,o=r.length;a<o;a++)r[a].fn!==t&&r[a].fn._!==t&&i.push(r[a]);return i.length?n[e]=i:delete n[e],this}},e.exports=n},function(e,t,n){var r=n(5),i=n(6);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,n)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,n)}))}}}(e,t,n);if(r.string(e))return function(e,t,n){return i(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},function(e,t,n){var r=n(7);function i(e,t,n,r,i){var o=a.apply(this,arguments);return e.addEventListener(n,o,i),{destroy:function(){e.removeEventListener(n,o,i)}}}function a(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}e.exports=function(e,t,n,r,a){return"function"==typeof e.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return i(e,t,n,r,a)})))}},function(e,t){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}}])},e.exports=r()},function(e,t,n){"use strict";(function(r){function i(e){return(i="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})(e)}t.log=function(){var e;return"object"===("undefined"==typeof console?"undefined":i(console))&&console.log&&(e=console).log.apply(e,arguments)},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;var n="color: "+this.color;t.splice(1,0,n,"color: inherit");var r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(function(e){"%%"!==e&&(r++,"%c"===e&&(i=r))})),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(n){}},t.load=function(){var e;try{e=t.storage.getItem("debug")}catch(n){}!e&&void 0!==r&&"env"in r&&(e=r.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.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"],e.exports=n(374)(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}}).call(this,n(20))},function(e,t,n){"use strict";var r=n(182);function i(){}function a(){}a.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,a,o){if(o!==r){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 n={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:a,resetWarningCache:i};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,i=r?Symbol.for("react.element"):60103,a=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,s=r?Symbol.for("react.strict_mode"):60108,c=r?Symbol.for("react.profiler"):60114,l=r?Symbol.for("react.provider"):60109,u=r?Symbol.for("react.context"):60110,p=r?Symbol.for("react.async_mode"):60111,d=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,f=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116;function v(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case i:switch(e=e.type){case p:case d:case o:case c:case s:case f:return e;default:switch(e=e&&e.$$typeof){case u:case h:case l:return e;default:return t}}case g:case m:case a:return t}}}function b(e){return v(e)===d}t.typeOf=v,t.AsyncMode=p,t.ConcurrentMode=d,t.ContextConsumer=u,t.ContextProvider=l,t.Element=i,t.ForwardRef=h,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=c,t.StrictMode=s,t.Suspense=f,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===c||e===s||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===l||e.$$typeof===u||e.$$typeof===h)},t.isAsyncMode=function(e){return b(e)||v(e)===p},t.isConcurrentMode=b,t.isContextConsumer=function(e){return v(e)===u},t.isContextProvider=function(e){return v(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===i},t.isForwardRef=function(e){return v(e)===h},t.isFragment=function(e){return v(e)===o},t.isLazy=function(e){return v(e)===g},t.isMemo=function(e){return v(e)===m},t.isPortal=function(e){return v(e)===a},t.isProfiler=function(e){return v(e)===c},t.isStrictMode=function(e){return v(e)===s},t.isSuspense=function(e){return v(e)===f}},function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},function(e,t,n){"use strict";var r=n(115),i=n(186),a=n(116);e.exports=function(e,t,n){var o=[],s={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},c={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},l={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)p(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=h(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(a(!(n in l),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e){var i=c.hasOwnProperty(n)?c[n]:null;return a("DEFINE_MANY_MERGED"===i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=h(e[n],r))}e[n]=r}}}(e,t)},autobind:function(){}};function u(e,t){var n=s.hasOwnProperty(t)?s[t]:null;b.hasOwnProperty(t)&&a("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&a("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function p(e,n){if(n){a("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),a(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;for(var o in n.hasOwnProperty("mixins")&&l.mixins(e,n.mixins),n)if(n.hasOwnProperty(o)&&"mixins"!==o){var c=n[o],p=r.hasOwnProperty(o);if(u(p,o),l.hasOwnProperty(o))l[o](e,c);else{var d=s.hasOwnProperty(o);if("function"==typeof c&&!d&&!p&&!1!==n.autobind)i.push(o,c),r[o]=c;else if(p){var m=s[o];a(d&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,o),"DEFINE_MANY_MERGED"===m?r[o]=h(r[o],c):"DEFINE_MANY"===m&&(r[o]=f(r[o],c))}else r[o]=c}}}else;}function d(e,t){for(var n in a(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(a(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function h(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return d(i,n),d(i,r),i}}function f(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function m(e,t){return t.bind(e)}var g={componentDidMount:function(){this.__isMounted=!0}},v={componentWillUnmount:function(){this.__isMounted=!1}},b={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},y=function(){};return r(y.prototype,e.prototype,b),function(e){var t=function(e,r,o){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=m(e,i)}}(this),this.props=e,this.context=r,this.refs=i,this.updater=o||n,this.state=null;var s=this.getInitialState?this.getInitialState():null;a("object"==typeof s&&!Array.isArray(s),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=s};for(var r in t.prototype=new y,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],o.forEach(p.bind(null,t)),p(t,g),p(t,e),p(t,v),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),a(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),s)t.prototype[r]||(t.prototype[r]=null);return t}}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(188),i=n(115);function a(e,t){return t.encode?t.strict?r(e):encodeURIComponent(e):e}t.extract=function(e){return e.split("?")[1]||""},t.parse=function(e,t){var n=function(e){var t;switch(e.arrayFormat){case"index":return function(e,n,r){t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return function(e,n,r){t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==r[e]?r[e]=[].concat(r[e],n):r[e]=[n]:r[e]=n};default:return function(e,t,n){void 0!==n[e]?n[e]=[].concat(n[e],t):n[e]=t}}}(t=i({arrayFormat:"none"},t)),r=Object.create(null);return"string"!=typeof e?r:(e=e.trim().replace(/^(\?|#|&)/,""))?(e.split("&").forEach((function(e){var t=e.replace(/\+/g," ").split("="),i=t.shift(),a=t.length>0?t.join("="):void 0;a=void 0===a?null:decodeURIComponent(a),n(decodeURIComponent(i),a,r)})),Object.keys(r).sort().reduce((function(e,t){var n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=function e(t){return Array.isArray(t)?t.sort():"object"==typeof t?e(Object.keys(t)).sort((function(e,t){return Number(e)-Number(t)})).map((function(e){return t[e]})):t}(n):e[t]=n,e}),Object.create(null))):r},t.stringify=function(e,t){var n=function(e){switch(e.arrayFormat){case"index":return function(t,n,r){return null===n?[a(t,e),"[",r,"]"].join(""):[a(t,e),"[",a(r,e),"]=",a(n,e)].join("")};case"bracket":return function(t,n){return null===n?a(t,e):[a(t,e),"[]=",a(n,e)].join("")};default:return function(t,n){return null===n?a(t,e):[a(t,e),"=",a(n,e)].join("")}}}(t=i({encode:!0,strict:!0,arrayFormat:"none"},t));return e?Object.keys(e).sort().map((function(r){var i=e[r];if(void 0===i)return"";if(null===i)return a(r,t);if(Array.isArray(i)){var o=[];return i.slice().forEach((function(e){void 0!==e&&o.push(n(r,e,o.length))})),o.join("&")}return a(r,t)+"="+a(i,t)})).filter((function(e){return e.length>0})).join("&"):""}},function(e,t,n){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}},function(e,t,n){"use strict";t.__esModule=!0;t.loopAsync=function(e,t,n){var r=0,i=!1,a=!1,o=!1,s=void 0,c=function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];i=!0,a?s=t:n.apply(void 0,t)};!function l(){if(!i&&(o=!0,!a)){for(a=!0;!i&&r<e&&o;)o=!1,t(r++,l,c);a=!1,i?n.apply(void 0,s):r>=e&&o&&(i=!0,n())}}()}},function(e,t,n){"use strict";t.__esModule=!0,t.replaceLocation=t.pushLocation=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var r=n(79);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return r.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return r.go}});var i=n(35),a=n(29);t.getCurrentLocation=function(){return(0,i.createLocation)(window.location)},t.pushLocation=function(e){return window.location.href=(0,a.createPath)(e),!1},t.replaceLocation=function(e){return window.location.replace((0,a.createPath)(e)),!1}},function(e,t,n){"use strict";t.__esModule=!0,t.replaceLocation=t.pushLocation=t.startListener=t.getCurrentLocation=t.go=t.getUserConfirmation=void 0;var r=n(79);Object.defineProperty(t,"getUserConfirmation",{enumerable:!0,get:function(){return r.getUserConfirmation}}),Object.defineProperty(t,"go",{enumerable:!0,get:function(){return r.go}});var i,a=n(27),o=((i=a)&&i.__esModule,n(35)),s=n(47),c=n(117),l=n(29);var u=function(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)},p=function(e){var t=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,t>=0?t:0)+"#"+e)},d=t.getCurrentLocation=function(e,t){var n=e.decodePath(u()),r=(0,l.getQueryStringValueFromPath)(n,t),i=void 0;r&&(n=(0,l.stripQueryStringValueFromPath)(n,t),i=(0,c.readState)(r));var a=(0,l.parsePath)(n);return a.state=i,(0,o.createLocation)(a,void 0,r)},h=void 0,f=(t.startListener=function(e,t,n){var r=function(){var r=u(),i=t.encodePath(r);if(r!==i)p(i);else{var a=d(t,n);if(h&&a.key&&h.key===a.key)return;h=a,e(a)}},i=u(),a=t.encodePath(i);return i!==a&&p(a),(0,s.addEventListener)(window,"hashchange",r),function(){return(0,s.removeEventListener)(window,"hashchange",r)}},function(e,t,n,r){var i=e.state,a=e.key,o=t.encodePath((0,l.createPath)(e));void 0!==i&&(o=(0,l.addQueryStringValueToPath)(o,n,a),(0,c.saveState)(a,i)),h=e,r(o)});t.pushLocation=function(e,t,n){return f(e,t,n,(function(e){u()!==e&&function(e){window.location.hash=e}(e)}))},t.replaceLocation=function(e,t,n){return f(e,t,n,(function(e){u()!==e&&p(e)}))}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t.default=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.selectLocationState,s=void 0===o?a:o,c=n.adjustUrlOnReplay,l=void 0===c||c;if(void 0===s(t.getState()))throw new Error("Expected the routing state to be available either as `state.routing` or as the custom expression you can specify as `selectLocationState` in the `syncHistoryWithStore()` options. Ensure you have added the `routerReducer` to your store's reducers via `combineReducers` or whatever method you use to isolate your reducers.");var u=void 0,p=void 0,d=void 0,h=void 0,f=void 0,m=function(e){return s(t.getState()).locationBeforeTransitions||(e?u:void 0)};if(u=m(),l){var g=function(){var t=m(!0);f!==t&&u!==t&&(p=!0,f=t,e.transitionTo(r({},t,{action:"PUSH"})),p=!1)};d=t.subscribe(g),g()}var v=function(e){p||(f=e,!u&&(u=e,m())||t.dispatch({type:i.LOCATION_CHANGE,payload:e}))};h=e.listen(v),e.getCurrentLocation&&v(e.getCurrentLocation());return r({},e,{listen:function(n){var r=m(!0),i=!1,a=t.subscribe((function(){var e=m(!0);e!==r&&(r=e,i||n(r))}));return e.getCurrentLocation||n(r),function(){i=!0,a()}},unsubscribe:function(){l&&d(),h()}})};var i=n(118),a=function(e){return e.routing}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(){return function(t){return function(n){if(n.type!==r.CALL_HISTORY_METHOD)return t(n);var i=n.payload,a=i.method,o=i.args;e[a].apply(e,function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(o))}}}};var r=n(119)},function(e,t,n){"use strict";t.__esModule=!0;var r,i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=n(14),o=(r=a)&&r.__esModule?r:{default:r},s=n(47),c=n(66);t.default=function(e){return c.canUseDOM||(0,o.default)(!1),function(t){var n=e(t),r=[],a=void 0,o=function(){for(var e=void 0,t=0,n=r.length;null==e&&t<n;++t)e=r[t].call();return e};return i({},n,{listenBeforeUnload:function(e){return 1===r.push(e)&&(a=function(e){var t=function(t){var n=e();if("string"==typeof n)return(t||window.event).returnValue=n,n};return(0,s.addEventListener)(window,"beforeunload",t),function(){return(0,s.removeEventListener)(window,"beforeunload",t)}}(o)),function(){0===(r=r.filter((function(t){return t!==e}))).length&&a&&(a(),a=null)}}})}}},function(e,t){e.exports=function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}},function(e,t){e.exports=function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}},function(e,t){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})(e)}function r(t){return"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?e.exports=r=function(e){return n(e)}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":n(e)},r(t)}e.exports=r},function(e,t){e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},function(e,t,n){var r=n(80);function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function a(t,n,o){return i()?e.exports=a=Reflect.construct:e.exports=a=function(e,t,n){var i=[null];i.push.apply(i,t);var a=new(Function.bind.apply(e,i));return n&&r(a,n.prototype),a},a.apply(null,arguments)}e.exports=a},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=o,s=Number(new Date),c=s-(n||s);a.diff=c,a.prev=n,a.curr=s,n=s,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var i=r.formatters[n];if("function"==typeof i){var o=t[l];e=i.call(a,o),t.splice(l,1),l--}return e})),r.formatArgs.call(a,t);var u=a.log||r.log;u.apply(a,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=i,o.extend=a,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function i(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function a(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(t=0;t<i;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var a=r.instances[t];a.enabled=r.enabled(a.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(81),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){"use strict";var r=n(0),i="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,a=n(120),o=n(116),s=n(203),c="function"==typeof Symbol&&Symbol.iterator;function l(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}function u(e,t,n,r){var a,s=typeof e;if("undefined"!==s&&"boolean"!==s||(e=null),null===e||"string"===s||"number"===s||"object"===s&&e.$$typeof===i)return n(r,e,""===t?"."+l(e,0):t),1;var p=0,d=""===t?".":t+":";if(Array.isArray(e))for(var h=0;h<e.length;h++)p+=u(a=e[h],d+l(a,h),n,r);else{var f=function(e){var t=e&&(c&&e[c]||e["@@iterator"]);if("function"==typeof t)return t}(e);if(f){0;for(var m,g=f.call(e),v=0;!(m=g.next()).done;)p+=u(a=m.value,d+l(a,v++),n,r)}else if("object"===s){0;var b=""+e;o(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===b?"object with keys {"+Object.keys(e).join(", ")+"}":b,"")}}return p}var p=/\/+/g;function d(e){return(""+e).replace(p,"$&/")}var h,f,m=g,g=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)},v=function(e){o(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)};function b(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function y(e,t,n){var i,o,s=e.result,c=e.keyPrefix,l=e.func,u=e.context,p=l.call(u,t,e.count++);Array.isArray(p)?w(p,s,n,a.thatReturnsArgument):null!=p&&(r.isValidElement(p)&&(i=p,o=c+(!p.key||t&&t.key===p.key?"":d(p.key)+"/")+n,p=r.cloneElement(i,{key:o},void 0!==i.props?i.props.children:void 0)),s.push(p))}function w(e,t,n,r,i){var a="";null!=n&&(a=d(n)+"/");var o=b.getPooled(t,a,r,i);!function(e,t,n){null==e||u(e,"",t,n)}(e,y,o),b.release(o)}b.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h=function(e,t,n,r){if(this.instancePool.length){var i=this.instancePool.pop();return this.call(i,e,t,n,r),i}return new this(e,t,n,r)},(f=b).instancePool=[],f.getPooled=h||m,f.poolSize||(f.poolSize=10),f.release=v;e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return s(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return s(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;o(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)w(e[n],t,n,a.thatReturnsArgument);return t}},function(e,t,n){"use strict";var r=n(120);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t){e.exports=function(e){if(Array.isArray(e))return e}},function(e,t){e.exports=function(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(c){i=!0,a=c}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}},function(e,t){e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}},function(e,t,n){},function(e,t,n){},function(e,t,n){var r=n(45);e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return i.colors[Math.abs(t)%i.colors.length]}function i(e){var n;function r(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];if(r.enabled){var o=r,s=Number(new Date),c=s-(n||s);o.diff=c,o.prev=n,o.curr=s,n=s,t[0]=i.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var r=i.formatters[n];if("function"==typeof r){var a=t[l];e=r.call(o,a),t.splice(l,1),l--}return e})),i.formatArgs.call(o,t);var u=o.log||i.log;u.apply(o,t)}}return r.namespace=e,r.enabled=i.enabled(e),r.useColors=i.useColors(),r.color=t(e),r.destroy=a,r.extend=o,"function"==typeof i.init&&i.init(r),i.instances.push(r),r}function a(){var e=i.instances.indexOf(this);return-1!==e&&(i.instances.splice(e,1),!0)}function o(e,t){var n=i(this.namespace+(void 0===t?":":t)+e);return n.log=this.log,n}function s(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return i.debug=i,i.default=i,i.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},i.disable=function(){var e=[].concat(r(i.names.map(s)),r(i.skips.map(s).map((function(e){return"-"+e})))).join(",");return i.enable(""),e},i.enable=function(e){var t;i.save(e),i.names=[],i.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),r=n.length;for(t=0;t<r;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?i.skips.push(new RegExp("^"+e.substr(1)+"$")):i.names.push(new RegExp("^"+e+"$")));for(t=0;t<i.instances.length;t++){var a=i.instances[t];a.enabled=i.enabled(a.namespace)}},i.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=i.skips.length;t<n;t++)if(i.skips[t].test(e))return!1;for(t=0,n=i.names.length;t<n;t++)if(i.names[t].test(e))return!0;return!1},i.humanize=n(81),Object.keys(e).forEach((function(t){i[t]=e[t]})),i.instances=[],i.names=[],i.skips=[],i.formatters={},i.selectColor=t,i.enable(i.load()),i}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){return!(0,a.default)(this.props,e)||!(0,a.default)(this.state,t)};var r,i=n(213),a=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),a=0;a<n.length;a++)if(!i(n[a])||e[n[a]]!==t[n[a]])return!1;return!0},e.exports=t.default},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){var r=n(221);e.exports=d,e.exports.parse=a,e.exports.compile=function(e){return o(a(e))},e.exports.tokensToFunction=o,e.exports.tokensToRegExp=p;var i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^()])+)\\))?|\\(((?:\\\\.|[^()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e){for(var t,n=[],r=0,a=0,o="";null!=(t=i.exec(e));){var s=t[0],l=t[1],u=t.index;if(o+=e.slice(a,u),a=u+s.length,l)o+=l[1];else{o&&(n.push(o),o="");var p=t[2],d=t[3],h=t[4],f=t[5],m=t[6],g=t[7],v="+"===m||"*"===m,b="?"===m||"*"===m,y=p||"/",w=h||f||(g?".*":"[^"+y+"]+?");n.push({name:d||r++,prefix:p||"",delimiter:y,optional:b,repeat:v,pattern:c(w)})}}return a<e.length&&(o+=e.substr(a)),o&&n.push(o),n}function o(e){for(var t=new Array(e.length),n=0;n<e.length;n++)"object"==typeof e[n]&&(t[n]=new RegExp("^"+e[n].pattern+"$"));return function(n){for(var i="",a=n||{},o=0;o<e.length;o++){var s=e[o];if("string"!=typeof s){var c,l=a[s.name];if(null==l){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to be defined')}if(r(l)){if(!s.repeat)throw new TypeError('Expected "'+s.name+'" to not repeat, but received "'+l+'"');if(0===l.length){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to not be empty')}for(var u=0;u<l.length;u++){if(c=encodeURIComponent(l[u]),!t[o].test(c))throw new TypeError('Expected all "'+s.name+'" to match "'+s.pattern+'", but received "'+c+'"');i+=(0===u?s.prefix:s.delimiter)+c}}else{if(c=encodeURIComponent(l),!t[o].test(c))throw new TypeError('Expected "'+s.name+'" to match "'+s.pattern+'", but received "'+c+'"');i+=s.prefix+c}}else i+=s}return i}}function s(e){return e.replace(/([.+*?=^!:${}()[\]|\/])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function l(e,t){return e.keys=t,e}function u(e){return e.sensitive?"":"i"}function p(e,t){for(var n=(t=t||{}).strict,r=!1!==t.end,i="",a=e[e.length-1],o="string"==typeof a&&/\/$/.test(a),c=0;c<e.length;c++){var l=e[c];if("string"==typeof l)i+=s(l);else{var p=s(l.prefix),d=l.pattern;l.repeat&&(d+="(?:"+p+d+")*"),i+=d=l.optional?p?"(?:"+p+"("+d+"))?":"("+d+")?":p+"("+d+")"}}return n||(i=(o?i.slice(0,-2):i)+"(?:\\/(?=$))?"),i+=r?"$":n&&o?"":"(?=\\/|$)",new RegExp("^"+i,u(t))}function d(e,t,n){return r(t=t||[])?n||(n={}):(n=t,t=[]),e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return l(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],i=0;i<e.length;i++)r.push(d(e[i],t,n).source);return l(new RegExp("(?:"+r.join("|")+")",u(n)),t)}(e,t,n):function(e,t,n){for(var r=a(e),i=p(r,n),o=0;o<r.length;o++)"string"!=typeof r[o]&&t.push(r[o]);return l(i,t)}(e,t,n)}},function(e,t){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},function(e,t,n){(function(e){var r;!function(i){t&&t.nodeType,e&&e.nodeType;var a="object"==typeof window&&window;a.global!==a&&a.window!==a&&a.self;var o,s=2147483647,c=/^xn--/,l=/[^\x20-\x7E]/,u=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},d=Math.floor,h=String.fromCharCode;function f(e){throw new RangeError(p[e])}function m(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function g(e,t){var n=e.split("@"),r="";return n.length>1&&(r=n[0]+"@",e=n[1]),r+m((e=e.replace(u,".")).split("."),t).join(".")}function v(e){for(var t,n,r=[],i=0,a=e.length;i<a;)(t=e.charCodeAt(i++))>=55296&&t<=56319&&i<a?56320==(64512&(n=e.charCodeAt(i++)))?r.push(((1023&t)<<10)+(1023&n)+65536):(r.push(t),i--):r.push(t);return r}function b(e){return m(e,(function(e){var t="";return e>65535&&(t+=h((e-=65536)>>>10&1023|55296),e=56320|1023&e),t+=h(e)})).join("")}function y(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function w(e,t,n){var r=0;for(e=n?d(e/700):e>>1,e+=d(e/t);e>455;r+=36)e=d(e/35);return d(r+36*e/(e+38))}function _(e){var t,n,r,i,a,o,c,l,u,p,h,m=[],g=e.length,v=0,y=128,_=72;for((n=e.lastIndexOf("-"))<0&&(n=0),r=0;r<n;++r)e.charCodeAt(r)>=128&&f("not-basic"),m.push(e.charCodeAt(r));for(i=n>0?n+1:0;i<g;){for(a=v,o=1,c=36;i>=g&&f("invalid-input"),((l=(h=e.charCodeAt(i++))-48<10?h-22:h-65<26?h-65:h-97<26?h-97:36)>=36||l>d((s-v)/o))&&f("overflow"),v+=l*o,!(l<(u=c<=_?1:c>=_+26?26:c-_));c+=36)o>d(s/(p=36-u))&&f("overflow"),o*=p;_=w(v-a,t=m.length+1,0==a),d(v/t)>s-y&&f("overflow"),y+=d(v/t),v%=t,m.splice(v++,0,y)}return b(m)}function k(e){var t,n,r,i,a,o,c,l,u,p,m,g,b,_,k,E=[];for(g=(e=v(e)).length,t=128,n=0,a=72,o=0;o<g;++o)(m=e[o])<128&&E.push(h(m));for(r=i=E.length,i&&E.push("-");r<g;){for(c=s,o=0;o<g;++o)(m=e[o])>=t&&m<c&&(c=m);for(c-t>d((s-n)/(b=r+1))&&f("overflow"),n+=(c-t)*b,t=c,o=0;o<g;++o)if((m=e[o])<t&&++n>s&&f("overflow"),m==t){for(l=n,u=36;!(l<(p=u<=a?1:u>=a+26?26:u-a));u+=36)k=l-p,_=36-p,E.push(h(y(p+k%_,0))),l=d(k/_);E.push(h(y(l,0))),a=w(n,b,r==i),n=0,++r}++n,++t}return E.join("")}o={version:"1.4.1",ucs2:{decode:v,encode:b},decode:_,encode:k,toASCII:function(e){return g(e,(function(e){return l.test(e)?"xn--"+k(e):e}))},toUnicode:function(e){return g(e,(function(e){return c.test(e)?_(e.slice(4).toLowerCase()):e}))}},void 0===(r=function(){return o}.call(t,n,t,e))||(e.exports=r)}()}).call(this,n(122)(e))},function(e,t,n){"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},function(e,t,n){"use strict";t.decode=t.parse=n(225),t.encode=t.stringify=n(226)},function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,a){t=t||"&",n=n||"=";var o={};if("string"!=typeof e||0===e.length)return o;var s=/\+/g;e=e.split(t);var c=1e3;a&&"number"==typeof a.maxKeys&&(c=a.maxKeys);var l=e.length;c>0&&l>c&&(l=c);for(var u=0;u<l;++u){var p,d,h,f,m=e[u].replace(s,"%20"),g=m.indexOf(n);g>=0?(p=m.substr(0,g),d=m.substr(g+1)):(p=m,d=""),h=decodeURIComponent(p),f=decodeURIComponent(d),r(o,h)?i(o[h])?o[h].push(f):o[h]=[o[h],f]:o[h]=f}return o};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,s){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?a(o(e),(function(o){var s=encodeURIComponent(r(o))+n;return i(e[o])?a(e[o],(function(e){return s+encodeURIComponent(r(e))})).join(t):s+encodeURIComponent(r(e[o]))})).join(t):s?encodeURIComponent(r(s))+n+encodeURIComponent(r(e)):""};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function a(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var o=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}},function(e,t,n){},function(e,t,n){},function(e,t,n){e.exports={default:n(230),__esModule:!0}},function(e,t,n){n(231),n(232),n(245),n(248),n(259),n(262),n(264),e.exports=n(50).Map},function(e,t){},function(e,t,n){"use strict";var r=n(233)(!0);n(84)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(82),i=n(83);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),c=r(n),l=s.length;return c<0||c>=l?e?"":void 0:(a=s.charCodeAt(c))<55296||a>56319||c+1===l||(o=s.charCodeAt(c+1))<56320||o>57343?e?s.charAt(c):a:e?s.slice(c,c+2):o-56320+(a-55296<<10)+65536}}},function(e,t,n){e.exports=!n(39)&&!n(67)((function(){return 7!=Object.defineProperty(n(125)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(38);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){e.exports=n(36)},function(e,t,n){"use strict";var r=n(127),i=n(126),a=n(90),o={};n(36)(o,n(26)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){var r=n(37),i=n(52),a=n(239);e.exports=n(39)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,c=0;s>c;)r.f(e,n=o[c++],t[n]);return e}},function(e,t,n){var r=n(240),i=n(130);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){var r=n(53),i=n(85),a=n(241)(!1),o=n(88)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),c=0,l=[];for(n in s)n!=o&&r(s,n)&&l.push(n);for(;t.length>c;)r(s,n=t[c++])&&(~a(l,n)||l.push(n));return l}},function(e,t,n){var r=n(85),i=n(87),a=n(242);e.exports=function(e){return function(t,n,o){var s,c=r(t),l=i(c.length),u=a(o,l);if(e&&n!=n){for(;l>u;)if((s=c[u++])!=s)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}}},function(e,t,n){var r=n(82),i=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):a(e,t)}},function(e,t,n){var r=n(30).document;e.exports=r&&r.documentElement},function(e,t,n){var r=n(53),i=n(131),a=n(88)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){n(246);for(var r=n(30),i=n(36),a=n(54),o=n(26)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<s.length;c++){var l=s[c],u=r[l],p=u&&u.prototype;p&&!p[o]&&i(p,o,l),a[l]=a.Array}},function(e,t,n){"use strict";var r=n(247),i=n(132),a=n(54),o=n(85);e.exports=n(84)(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t){e.exports=function(){}},function(e,t,n){"use strict";var r=n(249),i=n(137);e.exports=n(254)("Map",(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(37).f,i=n(127),a=n(133),o=n(51),s=n(134),c=n(68),l=n(84),u=n(132),p=n(253),d=n(39),h=n(136).fastKey,f=n(137),m=d?"_s":"size",g=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,l){var u=e((function(e,r){s(e,u,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&c(r,n,e[l],e)}));return a(u.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,e);if(r){var i=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=i),i&&(i.p=a),n._f==r&&(n._f=i),n._l==r&&(n._l=a),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),d&&r(u.prototype,"size",{get:function(){return f(this,t)[m]}}),u},def:function(e,t,n){var r,i,a=g(e,t);return a?a.v=n:(e._l=a={i:i=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[m]++,"F"!==i&&(e._i[i]=a)),e},getEntry:g,setStrong:function(e,t,n){l(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?u(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,u(1))}),n?"entries":"values",!n,!0),p(t)}}},function(e,t,n){var r=n(52);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(o){var a=e.return;throw void 0!==a&&r(a.call(e)),o}}},function(e,t,n){var r=n(54),i=n(26)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},function(e,t,n){var r=n(135),i=n(26)("iterator"),a=n(54);e.exports=n(50).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t,n){"use strict";var r=n(30),i=n(50),a=n(37),o=n(39),s=n(26)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];o&&t&&!t[s]&&a.f(t,s,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";var r=n(30),i=n(49),a=n(136),o=n(67),s=n(36),c=n(133),l=n(68),u=n(134),p=n(38),d=n(90),h=n(37).f,f=n(255)(0),m=n(39);e.exports=function(e,t,n,g,v,b){var y=r[e],w=y,_=v?"set":"add",k=w&&w.prototype,E={};return m&&"function"==typeof w&&(b||k.forEach&&!o((function(){(new w).entries().next()})))?(w=t((function(t,n){u(t,w,e,"_c"),t._c=new y,null!=n&&l(n,v,t[_],t)})),f("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;e in k&&(!b||"clear"!=e)&&s(w.prototype,e,(function(n,r){if(u(this,w,e),!t&&b&&!p(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i}))})),b||h(w.prototype,"size",{get:function(){return this._c.size}})):(w=g.getConstructor(t,e,v,_),c(w.prototype,n),a.NEED=!0),d(w,e),E[e]=w,i(i.G+i.W+i.F,E),b||g.setStrong(w,e,v),w}},function(e,t,n){var r=n(51),i=n(128),a=n(131),o=n(87),s=n(256);e.exports=function(e,t){var n=1==e,c=2==e,l=3==e,u=4==e,p=6==e,d=5==e||p,h=t||s;return function(t,s,f){for(var m,g,v=a(t),b=i(v),y=r(s,f,3),w=o(b.length),_=0,k=n?h(t,w):c?h(t,0):void 0;w>_;_++)if((d||_ in b)&&(g=y(m=b[_],_,v),e))if(n)k[_]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return _;case 2:k.push(m)}else if(u)return!1;return p?-1:l||u?u:k}}},function(e,t,n){var r=n(257);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(38),i=n(258),a=n(26)("species");e.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[a])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){var r=n(86);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r=n(49);r(r.P+r.R,"Map",{toJSON:n(260)("Map")})},function(e,t,n){var r=n(135),i=n(261);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,n){var r=n(68);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){n(263)("Map")},function(e,t,n){"use strict";var r=n(49);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){n(265)("Map")},function(e,t,n){"use strict";var r=n(49),i=n(124),a=n(51),o=n(68);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,s,c=arguments[1];return i(this),(t=void 0!==c)&&i(c),null==e?new this:(n=[],t?(r=0,s=a(c,arguments[2],2),o(e,!1,(function(e){n.push(s(e,r++))}))):o(e,!1,n.push,n),new this(n))}})}},function(e,t){var n=window.addEventListener?"addEventListener":"attachEvent",r=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"";t.bind=function(e,t,r,a){return e[n](i+t,r,a||!1),r},t.unbind=function(e,t,n,a){return e[r](i+t,n,a||!1),n}},function(e,t){e.exports=function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}},function(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(41),t.createHash=t.Hash=n(55),t.createHmac=t.Hmac=n(146);var r=n(288),i=Object.keys(r),a=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return a};var o=n(149);t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var s=n(290);t.Cipher=s.Cipher,t.createCipher=s.createCipher,t.Cipheriv=s.Cipheriv,t.createCipheriv=s.createCipheriv,t.Decipher=s.Decipher,t.createDecipher=s.createDecipher,t.Decipheriv=s.Decipheriv,t.createDecipheriv=s.createDecipheriv,t.getCiphers=s.getCiphers,t.listCiphers=s.listCiphers;var c=n(307);t.DiffieHellmanGroup=c.DiffieHellmanGroup,t.createDiffieHellmanGroup=c.createDiffieHellmanGroup,t.getDiffieHellman=c.getDiffieHellman,t.createDiffieHellman=c.createDiffieHellman,t.DiffieHellman=c.DiffieHellman;var l=n(312);t.createSign=l.createSign,t.Sign=l.Sign,t.createVerify=l.createVerify,t.Verify=l.Verify,t.createECDH=n(345);var u=n(346);t.publicEncrypt=u.publicEncrypt,t.privateEncrypt=u.privateEncrypt,t.publicDecrypt=u.publicDecrypt,t.privateDecrypt=u.privateDecrypt;var p=n(349);t.randomFill=p.randomFill,t.randomFillSync=p.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},function(e,t,n){"use strict";t.byteLength=function(e){var t=l(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){for(var t,n=l(e),r=n[0],o=n[1],s=new a(function(e,t,n){return 3*(t+n)/4-n}(0,r,o)),c=0,u=o>0?r-4:r,p=0;p<u;p+=4)t=i[e.charCodeAt(p)]<<18|i[e.charCodeAt(p+1)]<<12|i[e.charCodeAt(p+2)]<<6|i[e.charCodeAt(p+3)],s[c++]=t>>16&255,s[c++]=t>>8&255,s[c++]=255&t;2===o&&(t=i[e.charCodeAt(p)]<<2|i[e.charCodeAt(p+1)]>>4,s[c++]=255&t);1===o&&(t=i[e.charCodeAt(p)]<<10|i[e.charCodeAt(p+1)]<<4|i[e.charCodeAt(p+2)]>>2,s[c++]=t>>8&255,s[c++]=255&t);return s},t.fromByteArray=function(e){for(var t,n=e.length,i=n%3,a=[],o=0,s=n-i;o<s;o+=16383)a.push(u(e,o,o+16383>s?s:o+16383));1===i?(t=e[n-1],a.push(r[t>>2]+r[t<<4&63]+"==")):2===i&&(t=(e[n-2]<<8)+e[n-1],a.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return a.join("")};for(var r=[],i=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=o.length;s<c;++s)r[s]=o[s],i[o.charCodeAt(s)]=s;function l(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var i,a,o=[],s=t;s<n;s+=3)i=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]),o.push(r[(a=i)>>18&63]+r[a>>12&63]+r[a>>6&63]+r[63&a]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,i){var a,o,s=8*i-r-1,c=(1<<s)-1,l=c>>1,u=-7,p=n?i-1:0,d=n?-1:1,h=e[t+p];for(p+=d,a=h&(1<<-u)-1,h>>=-u,u+=s;u>0;a=256*a+e[t+p],p+=d,u-=8);for(o=a&(1<<-u)-1,a>>=-u,u+=r;u>0;o=256*o+e[t+p],p+=d,u-=8);if(0===a)a=1-l;else{if(a===c)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,r),a-=l}return(h?-1:1)*o*Math.pow(2,a-r)},t.write=function(e,t,n,r,i,a){var o,s,c,l=8*a-i-1,u=(1<<l)-1,p=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:a-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(o++,c/=2),o+p>=u?(s=0,o=u):o+p>=1?(s=(t*c-1)*Math.pow(2,i),o+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+h]=255&s,h+=f,s/=256,i-=8);for(o=o<<i|s,l+=i;l>0;e[n+h]=255&o,h+=f,o/=256,l-=8);e[n+h-f]|=128*m}},function(e,t){},function(e,t,n){"use strict";var r=n(94).Buffer,i=n(273);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,i,a=r.allocUnsafe(e>>>0),o=this.head,s=0;o;)t=o.data,n=a,i=s,t.copy(n,i),s+=o.data.length,o=o.next;return a},e}(),i&&i.inspect&&i.inspect.custom&&(e.exports.prototype[i.inspect.custom]=function(){var e=i.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){var r="undefined"!=typeof window&&window||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function a(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new a(i.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new a(i.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},a.prototype.unref=a.prototype.ref=function(){},a.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(275),t.setImmediate="undefined"!=typeof self&&self.setImmediate||"undefined"!=typeof window&&window.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||"undefined"!=typeof window&&window.clearImmediate||this&&this.clearImmediate},function(e,t,n){(function(e){!function(t,n){"use strict";if(!t.setImmediate){var r,i,a,o,s,c=1,l={},u=!1,p=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?r=function(t){e.nextTick((function(){f(t)}))}:!function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?t.MessageChannel?((a=new MessageChannel).port1.onmessage=function(e){f(e.data)},r=function(e){a.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(i=p.documentElement,r=function(e){var t=p.createElement("script");t.onreadystatechange=function(){f(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):r=function(e){setTimeout(f,0,e)}:(o="setImmediate$"+Math.random()+"$",s=function(e){e.source===t&&"string"==typeof e.data&&0===e.data.indexOf(o)&&f(+e.data.slice(o.length))},t.addEventListener?t.addEventListener("message",s,!1):t.attachEvent("onmessage",s),r=function(e){t.postMessage(o+e,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n<t.length;n++)t[n]=arguments[n+1];var i={callback:e,args:t};return l[c]=i,r(c),c++},d.clearImmediate=h}function h(e){delete l[e]}function f(e){if(u)setTimeout(f,0,e);else{var t=l[e];if(t){u=!0;try{!function(e){var t=e.callback,n=e.args;switch(n.length){case 0:t();break;case 1:t(n[0]);break;case 2:t(n[0],n[1]);break;case 3:t(n[0],n[1],n[2]);break;default:t.apply(void 0,n)}}(t)}finally{h(e),u=!1}}}}}("undefined"==typeof self?"undefined"==typeof window?this:window:self)}).call(this,n(20))},function(e,t){function n(e){try{if(!window.localStorage)return!1}catch(n){return!1}var t=window.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}},function(e,t,n){var r=n(19),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(e,t,n){"use strict";e.exports=a;var r=n(143),i=n(56);function a(e){if(!(this instanceof a))return new a(e);r.call(this,e)}i.inherits=n(12),i.inherits(a,r),a.prototype._transform=function(e,t,n){n(null,e)}},function(e,t,n){e.exports=n(95)},function(e,t,n){e.exports=n(40)},function(e,t,n){e.exports=n(93).Transform},function(e,t,n){e.exports=n(93).PassThrough},function(e,t,n){var r=n(12),i=n(42),a=n(13).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function c(){this.init(),this._w=s,i.call(this,64,56)}function l(e){return e<<30|e>>>2}function u(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,c=0|this._e,p=0;p<16;++p)n[p]=e.readInt32BE(4*p);for(;p<80;++p)n[p]=n[p-3]^n[p-8]^n[p-14]^n[p-16];for(var d=0;d<80;++d){var h=~~(d/20),f=0|((t=r)<<5|t>>>27)+u(h,i,a,s)+c+n[d]+o[h];c=s,s=a,a=l(i),i=r,r=f}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,n){var r=n(12),i=n(42),a=n(13).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],s=new Array(80);function c(){this.init(),this._w=s,i.call(this,64,56)}function l(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function p(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var h=0;h<80;++h){var f=~~(h/20),m=l(r)+p(f,i,a,s)+c+n[h]+o[f]|0;c=s,s=a,a=u(i),i=r,r=m}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=a.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},function(e,t,n){var r=n(12),i=n(144),a=n(42),o=n(13).Buffer,s=new Array(64);function c(){this.init(),this._w=s,a.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},function(e,t,n){var r=n(12),i=n(145),a=n(42),o=n(13).Buffer,s=new Array(160);function c(){this.init(),this._w=s,a.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},function(e,t,n){"use strict";var r=n(12),i=n(13).Buffer,a=n(31),o=i.alloc(128);function s(e,t){a.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>64?t=e(t):t.length<64&&(t=i.concat([t,o],64));for(var n=this._ipad=i.allocUnsafe(64),r=this._opad=i.allocUnsafe(64),s=0;s<64;s++)n[s]=54^t[s],r[s]=92^t[s];this._hash=[n]}r(s,a),s.prototype._update=function(e){this._hash.push(e)},s.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=s},function(e,t,n){e.exports=n(148)},function(e,t,n){(function(t){var r,i=n(150),a=n(151),o=n(152),s=n(13).Buffer,c=window.crypto&&window.crypto.subtle,l={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},u=[];function p(e,t,n,r,i){return c.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return c.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)})).then((function(e){return s.from(e)}))}e.exports=function(e,n,d,h,f,m){"function"==typeof f&&(m=f,f=void 0);var g=l[(f=f||"sha1").toLowerCase()];if(!g||"function"!=typeof window.Promise)return t.nextTick((function(){var t;try{t=o(e,n,d,h,f)}catch(r){return m(r)}m(null,t)}));if(i(e,n,d,h),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");s.isBuffer(e)||(e=s.from(e,a)),s.isBuffer(n)||(n=s.from(n,a)),function(e,n){e.then((function(e){t.nextTick((function(){n(null,e)}))}),(function(e){t.nextTick((function(){n(e)}))}))}(function(e){if(window.process&&!window.process.browser)return Promise.resolve(!1);if(!c||!c.importKey||!c.deriveBits)return Promise.resolve(!1);if(void 0!==u[e])return u[e];var t=p(r=r||s.alloc(8),r,10,128,e).then((function(){return!0})).catch((function(){return!1}));return u[e]=t,t}(g).then((function(t){return t?p(e,n,d,h,g):o(e,n,d,h,f)})),m)}}).call(this,n(20))},function(e,t,n){var r=n(291),i=n(100),a=n(101),o=n(306),s=n(71);function c(e,t,n){if(e=e.toLowerCase(),a[e])return i.createCipheriv(e,t,n);if(o[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function l(e,t,n){if(e=e.toLowerCase(),a[e])return i.createDecipheriv(e,t,n);if(o[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");n=8*o[e].key,r=o[e].iv}var i=s(t,!1,n,r);return c(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=c,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),a[e])n=a[e].key,r=a[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");n=8*o[e].key,r=o[e].iv}var i=s(t,!1,n,r);return l(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=l,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},function(e,t,n){var r=n(31),i=n(99),a=n(12),o=n(13).Buffer,s={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function c(e){r.call(this);var t,n=e.mode.toLowerCase(),i=s[n];t=e.decrypt?"decrypt":"encrypt";var a=e.key;o.isBuffer(a)||(a=o.from(a)),"des-ede"!==n&&"des-ede-cbc"!==n||(a=o.concat([a,a.slice(0,8)]));var c=e.iv;o.isBuffer(c)||(c=o.from(c)),this._des=i.create({key:a,iv:c,type:t})}s.des=s["des-cbc"],s.des3=s["des-ede3-cbc"],e.exports=c,a(c,r),c.prototype._update=function(e){return o.from(this._des.update(e))},c.prototype._final=function(){return o.from(this._des.final())}},function(e,t,n){"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,a=0,o=6;o>=0;o-=2){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>>s+o&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>>s+o&1}for(o=6;o>=0;o-=2){for(s=1;s<=25;s+=8)a<<=1,a|=t>>>s+o&1;for(s=1;s<=25;s+=8)a<<=1,a|=e>>>s+o&1}n[r+0]=i>>>0,n[r+1]=a>>>0},t.rip=function(e,t,n,r){for(var i=0,a=0,o=0;o<4;o++)for(var s=24;s>=0;s-=8)i<<=1,i|=t>>>s+o&1,i<<=1,i|=e>>>s+o&1;for(o=4;o<8;o++)for(s=24;s>=0;s-=8)a<<=1,a|=t>>>s+o&1,a<<=1,a|=e>>>s+o&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.pc1=function(e,t,n,r){for(var i=0,a=0,o=7;o>=5;o--){for(var s=0;s<=24;s+=8)i<<=1,i|=t>>s+o&1;for(s=0;s<=24;s+=8)i<<=1,i|=e>>s+o&1}for(s=0;s<=24;s+=8)i<<=1,i|=t>>s+o&1;for(o=1;o<=3;o++){for(s=0;s<=24;s+=8)a<<=1,a|=t>>s+o&1;for(s=0;s<=24;s+=8)a<<=1,a|=e>>s+o&1}for(s=0;s<=24;s+=8)a<<=1,a|=e>>s+o&1;n[r+0]=i>>>0,n[r+1]=a>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var r=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,n,i){for(var a=0,o=0,s=r.length>>>1,c=0;c<s;c++)a<<=1,a|=e>>>r[c]&1;for(c=s;c<r.length;c++)o<<=1,o|=t>>>r[c]&1;n[i+0]=a>>>0,n[i+1]=o>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var a=23;a>=15;a-=4)r<<=6,r|=e>>>a&63;for(a=11;a>=3;a-=4)i|=e>>>a&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var i=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,r=0;r<4;r++){n<<=4,n|=i[64*r+(e>>>18-6*r&63)]}for(r=0;r<4;r++){n<<=4,n|=i[256+64*r+(t>>>18-6*r&63)]}return n>>>0};var a=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n<a.length;n++)t<<=1,t|=e>>>a[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length<t;)r="0"+r;for(var i=[],a=0;a<t;a+=n)i.push(r.slice(a,a+n));return i.join(" ")}},function(e,t,n){"use strict";var r=n(21);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r<n;r++)this.buffer[this.bufferOff+r]=e[t+r];return this.bufferOff+=n,n},i.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(e){var t=0,n=0,r=(this.bufferOff+e.length)/this.blockSize|0,i=new Array(r*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(i,n)));for(var a=e.length-(e.length-t)%this.blockSize;t<a;t+=this.blockSize)this._update(e,t,i,n),n+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return i},i.prototype._updateDecrypt=function(e){for(var t=0,n=0,r=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,i=new Array(r*this.blockSize);r>0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},i.prototype._unpad=function(e){return e},i.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},function(e,t,n){"use strict";var r=n(21),i=n(12),a=n(99),o=a.utils,s=a.Cipher;function c(){this.tmp=new Array(2),this.keys=null}function l(e){s.call(this,e);var t=new c;this._desState=t,this.deriveKeys(t,e.key)}i(l,s),e.exports=l,l.create=function(e){return new l(e)};var u=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];l.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=o.readUInt32BE(t,0),i=o.readUInt32BE(t,4);o.pc1(n,i,e.tmp,0),n=e.tmp[0],i=e.tmp[1];for(var a=0;a<e.keys.length;a+=2){var s=u[a>>>1];n=o.r28shl(n,s),i=o.r28shl(i,s),o.pc2(n,i,e.keys,a)}},l.prototype._update=function(e,t,n,r){var i=this._desState,a=o.readUInt32BE(e,t),s=o.readUInt32BE(e,t+4);o.ip(a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],"encrypt"===this.type?this._encrypt(i,a,s,i.tmp,0):this._decrypt(i,a,s,i.tmp,0),a=i.tmp[0],s=i.tmp[1],o.writeUInt32BE(n,a,r),o.writeUInt32BE(n,s,r+4)},l.prototype._pad=function(e,t){for(var n=e.length-t,r=t;r<e.length;r++)e[r]=n;return!0},l.prototype._unpad=function(e){for(var t=e[e.length-1],n=e.length-t;n<e.length;n++)r.equal(e[n],t);return e.slice(0,e.length-t)},l.prototype._encrypt=function(e,t,n,r,i){for(var a=t,s=n,c=0;c<e.keys.length;c+=2){var l=e.keys[c],u=e.keys[c+1];o.expand(s,e.tmp,0),l^=e.tmp[0],u^=e.tmp[1];var p=o.substitute(l,u),d=s;s=(a^o.permute(p))>>>0,a=d}o.rip(s,a,r,i)},l.prototype._decrypt=function(e,t,n,r,i){for(var a=n,s=t,c=e.keys.length-2;c>=0;c-=2){var l=e.keys[c],u=e.keys[c+1];o.expand(a,e.tmp,0),l^=e.tmp[0],u^=e.tmp[1];var p=o.substitute(l,u),d=a;a=(s^o.permute(p))>>>0,s=d}o.rip(a,s,r,i)}},function(e,t,n){"use strict";var r=n(21),i=n(12),a={};function o(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}i(t,e);for(var n=Object.keys(a),r=0;r<n.length;r++){var o=n[r];t.prototype[o]=a[o]}return t.create=function(e){return new t(e)},t},a._cbcInit=function(){var e=new o(this.options.iv);this._cbcState=e},a._update=function(e,t,n,r){var i=this._cbcState,a=this.constructor.super_.prototype,o=i.iv;if("encrypt"===this.type){for(var s=0;s<this.blockSize;s++)o[s]^=e[t+s];a._update.call(this,o,0,n,r);for(s=0;s<this.blockSize;s++)o[s]=n[r+s]}else{a._update.call(this,e,t,n,r);for(s=0;s<this.blockSize;s++)n[r+s]^=o[s];for(s=0;s<this.blockSize;s++)o[s]=e[t+s]}}},function(e,t,n){"use strict";var r=n(21),i=n(12),a=n(99),o=a.Cipher,s=a.DES;function c(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),i=t.slice(8,16),a=t.slice(16,24);this.ciphers="encrypt"===e?[s.create({type:"encrypt",key:n}),s.create({type:"decrypt",key:i}),s.create({type:"encrypt",key:a})]:[s.create({type:"decrypt",key:a}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:n})]}function l(e){o.call(this,e);var t=new c(this.type,this.options.key);this._edeState=t}i(l,o),e.exports=l,l.create=function(e){return new l(e)},l.prototype._update=function(e,t,n,r){var i=this._edeState;i.ciphers[0]._update(e,t,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},l.prototype._pad=s.prototype._pad,l.prototype._unpad=s.prototype._unpad},function(e,t,n){var r=n(101),i=n(156),a=n(13).Buffer,o=n(157),s=n(31),c=n(70),l=n(71);function u(e,t,n){s.call(this),this._cache=new d,this._cipher=new c.AES(t),this._prev=a.from(n),this._mode=e,this._autopadding=!0}n(12)(u,s),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return a.concat(r)};var p=a.alloc(16,16);function d(){this.cache=a.allocUnsafe(0)}function h(e,t,n){var s=r[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=a.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=a.from(n)),"GCM"!==s.mode&&n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===s.type?new o(s.module,t,n):"auth"===s.type?new i(s.module,t,n):new u(s.module,t,n)}u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(p))throw this._cipher.scrub(),new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=a.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=a.allocUnsafe(e),n=-1;++n<e;)t.writeUInt8(e,n);return a.concat([this.cache,t])},t.createCipheriv=h,t.createCipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var i=l(t,!1,n.key,n.iv);return h(e,i.key,i.iv)}},function(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},function(e,t,n){var r=n(57);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return r(i,n)}},function(e,t,n){var r=n(13).Buffer,i=n(57);function a(e,t,n){var a=t.length,o=i(t,e._cache);return e._cache=e._cache.slice(a),e._prev=r.concat([e._prev,n?t:o]),o}t.encrypt=function(e,t,n){for(var i,o=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){o=r.concat([o,a(e,t,n)]);break}i=e._cache.length,o=r.concat([o,a(e,t.slice(0,i),n)]),t=t.slice(i)}return o}},function(e,t,n){var r=n(13).Buffer;function i(e,t,n){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:i])]),i}t.encrypt=function(e,t,n){for(var a=t.length,o=r.allocUnsafe(a),s=-1;++s<a;)o[s]=i(e,t[s],n);return o}},function(e,t,n){var r=n(13).Buffer;function i(e,t,n){for(var r,i,o=-1,s=0;++o<8;)r=t&1<<7-o?128:0,s+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^r))>>o%8,e._prev=a(e._prev,n?r:i);return s}function a(e,t){var n=e.length,i=-1,a=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i<n;)a[i]=e[i]<<1|e[i+1]>>7;return a}t.encrypt=function(e,t,n){for(var a=t.length,o=r.allocUnsafe(a),s=-1;++s<a;)o[s]=i(e,t[s],n);return o}},function(e,t,n){(function(e){var r=n(57);function i(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(t,n){for(;t._cache.length<n.length;)t._cache=e.concat([t._cache,i(t)]);var a=t._cache.slice(0,n.length);return t._cache=t._cache.slice(n.length),r(n,a)}}).call(this,n(19).Buffer)},function(e,t,n){var r=n(13).Buffer,i=r.alloc(16,0);function a(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},o.prototype._multiply=function(){for(var e,t,n,r=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],i=[0,0,0,0],o=-1;++o<128;){for(0!=(this.state[~~(o/8)]&1<<7-o%8)&&(i[0]^=r[0],i[1]^=r[1],i[2]^=r[2],i[3]^=r[3]),n=0!=(1&r[3]),t=3;t>0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=a(i)},o.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(a([0,e,0,t])),this.state},e.exports=o},function(e,t,n){var r=n(156),i=n(13).Buffer,a=n(101),o=n(157),s=n(31),c=n(70),l=n(71);function u(e,t,n){s.call(this),this._cache=new p,this._last=void 0,this._cipher=new c.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function p(){this.cache=i.allocUnsafe(0)}function d(e,t,n){var s=a[e.toLowerCase()];if(!s)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==s.mode&&n.length!==s.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==s.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===s.type?new o(s.module,t,n,!0):"auth"===s.type?new r(s.module,t,n,!0):new u(s.module,t,n)}n(12)(u,s),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var n=-1;for(;++n<t;)if(e[n+(16-t)]!==t)throw new Error("unable to decrypt data");if(16===t)return;return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},p.prototype.add=function(e){this.cache=i.concat([this.cache,e])},p.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},p.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=a[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=l(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},function(e,t,n){(function(e){var r=n(158),i=n(310),a=n(311);var o={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(t){var n=new e(i[t].prime,"hex"),r=new e(i[t].gen,"hex");return new a(n,r)},t.createDiffieHellman=t.DiffieHellman=function t(n,i,s,c){return e.isBuffer(i)||void 0===o[i]?t(n,"binary",i,s):(i=i||"binary",c=c||"binary",s=s||new e([2]),e.isBuffer(s)||(s=new e(s,c)),"number"==typeof n?new a(r(n,s),s,!0):(e.isBuffer(n)||(n=new e(n,i)),new a(n,s,!0)))}}).call(this,n(19).Buffer)},function(e,t){},function(e,t){},function(e){e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},function(e,t,n){(function(t){var r=n(18),i=new(n(159)),a=new r(24),o=new r(11),s=new r(10),c=new r(3),l=new r(7),u=n(158),p=n(41);function d(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this._pub=new r(e),this}function h(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this._priv=new r(e),this}e.exports=m;var f={};function m(e,t,n){this.setGenerator(t),this.__prime=new r(e),this._prime=r.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=d,this.setPrivateKey=h):this._primeCode=8}function g(e,n){var r=new t(e.toArray());return n?r.toString(n):r}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in f)return f[r];var p,d=0;if(e.isEven()||!u.simpleSieve||!u.fermatTest(e)||!i.test(e))return d+=1,d+="02"===n||"05"===n?8:4,f[r]=d,d;switch(i.test(e.shrn(1))||(d+=2),n){case"02":e.mod(a).cmp(o)&&(d+=8);break;case"05":(p=e.mod(s)).cmp(c)&&p.cmp(l)&&(d+=8);break;default:d+=4}return f[r]=d,d}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new r(p(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(e){var n=(e=(e=new r(e)).toRed(this._prime)).redPow(this._priv).fromRed(),i=new t(n.toArray()),a=this.getPrime();if(i.length<a.length){var o=new t(a.length-i.length);o.fill(0),i=t.concat([o,i])}return i},m.prototype.getPublicKey=function(e){return g(this._pub,e)},m.prototype.getPrivateKey=function(e){return g(this._priv,e)},m.prototype.getPrime=function(e){return g(this.__prime,e)},m.prototype.getGenerator=function(e){return g(this._gen,e)},m.prototype.setGenerator=function(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this.__gen=e,this._gen=new r(e),this}}).call(this,n(19).Buffer)},function(e,t,n){(function(t){var r=n(55),i=n(92),a=n(12),o=n(313),s=n(344),c=n(148);function l(e){i.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=r(t.hash),this._tag=t.id,this._signType=t.sign}function u(e){i.Writable.call(this);var t=c[e];if(!t)throw new Error("Unknown message digest");this._hash=r(t.hash),this._tag=t.id,this._signType=t.sign}function p(e){return new l(e)}function d(e){return new u(e)}Object.keys(c).forEach((function(e){c[e].id=new t(c[e].id,"hex"),c[e.toLowerCase()]=c[e]})),a(l,i.Writable),l.prototype._write=function(e,t,n){this._hash.update(e),n()},l.prototype.update=function(e,n){return"string"==typeof e&&(e=new t(e,n)),this._hash.update(e),this},l.prototype.sign=function(e,t){this.end();var n=this._hash.digest(),r=o(n,e,this._hashType,this._signType,this._tag);return t?r.toString(t):r},a(u,i.Writable),u.prototype._write=function(e,t,n){this._hash.update(e),n()},u.prototype.update=function(e,n){return"string"==typeof e&&(e=new t(e,n)),this._hash.update(e),this},u.prototype.verify=function(e,n,r){"string"==typeof n&&(n=new t(n,r)),this.end();var i=this._hash.digest();return s(n,i,e,this._signType,this._tag)},e.exports={Sign:p,Verify:d,createSign:p,createVerify:d}}).call(this,n(19).Buffer)},function(e,t,n){(function(t){var r=n(146),i=n(103),a=n(104).ec,o=n(18),s=n(73),c=n(168);function l(e,n,i,a){if((e=new t(e.toArray())).length<n.byteLength()){var o=new t(n.byteLength()-e.length);o.fill(0),e=t.concat([o,e])}var s=i.length,c=function(e,n){e=(e=u(e,n)).mod(n);var r=new t(e.toArray());if(r.length<n.byteLength()){var i=new t(n.byteLength()-r.length);i.fill(0),r=t.concat([i,r])}return r}(i,n),l=new t(s);l.fill(1);var p=new t(s);return p.fill(0),p=r(a,p).update(l).update(new t([0])).update(e).update(c).digest(),l=r(a,p).update(l).digest(),{k:p=r(a,p).update(l).update(new t([1])).update(e).update(c).digest(),v:l=r(a,p).update(l).digest()}}function u(e,t){var n=new o(e),r=(e.length<<3)-t.bitLength();return r>0&&n.ishrn(r),n}function p(e,n,i){var a,o;do{for(a=new t(0);8*a.length<e.bitLength();)n.v=r(i,n.k).update(n.v).digest(),a=t.concat([a,n.v]);o=u(a,e),n.k=r(i,n.k).update(n.v).update(new t([0])).digest(),n.v=r(i,n.k).update(n.v).digest()}while(-1!==o.cmp(e));return o}function d(e,t,n,r){return e.toRed(o.mont(n)).redPow(t).fromRed().mod(r)}e.exports=function(e,n,r,h,f){var m=s(n);if(m.curve){if("ecdsa"!==h&&"ecdsa/rsa"!==h)throw new Error("wrong private key type");return function(e,n){var r=c[n.curve.join(".")];if(!r)throw new Error("unknown curve "+n.curve.join("."));var i=new a(r).keyFromPrivate(n.privateKey).sign(e);return new t(i.toDER())}(e,m)}if("dsa"===m.type){if("dsa"!==h)throw new Error("wrong private key type");return function(e,n,r){var i,a=n.params.priv_key,s=n.params.p,c=n.params.q,h=n.params.g,f=new o(0),m=u(e,c).mod(c),g=!1,v=l(a,c,e,r);for(;!1===g;)i=p(c,v,r),f=d(h,i,s,c),0===(g=i.invm(c).imul(m.add(a.mul(f))).mod(c)).cmpn(0)&&(g=!1,f=new o(0));return function(e,n){e=e.toArray(),n=n.toArray(),128&e[0]&&(e=[0].concat(e));128&n[0]&&(n=[0].concat(n));var r=[48,e.length+n.length+4,2,e.length];return r=r.concat(e,[2,n.length],n),new t(r)}(f,g)}(e,m,r)}if("rsa"!==h&&"ecdsa/rsa"!==h)throw new Error("wrong private key type");e=t.concat([f,e]);for(var g=m.modulus.byteLength(),v=[0,1];e.length+v.length+1<g;)v.push(255);v.push(0);for(var b=-1;++b<e.length;)v.push(e[b]);return i(v,m)},e.exports.getKey=l,e.exports.makeKey=p}).call(this,n(19).Buffer)},function(e){e.exports=JSON.parse('{"name":"elliptic","version":"6.5.0","description":"EC cryptography","main":"lib/elliptic.js","files":["lib"],"scripts":{"jscs":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","jshint":"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/index.js","lint":"npm run jscs && npm run jshint","unit":"istanbul test _mocha --reporter=spec test/index.js","test":"npm run lint && npm run unit","version":"grunt dist && git add dist/"},"repository":{"type":"git","url":"git@github.com:indutny/elliptic"},"keywords":["EC","Elliptic","curve","Cryptography"],"author":"Fedor Indutny <fedor@indutny.com>","license":"MIT","bugs":{"url":"https://github.com/indutny/elliptic/issues"},"homepage":"https://github.com/indutny/elliptic","devDependencies":{"brfs":"^1.4.3","coveralls":"^2.11.3","grunt":"^0.4.5","grunt-browserify":"^5.0.0","grunt-cli":"^1.2.0","grunt-contrib-connect":"^1.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^1.0.1","grunt-mocha-istanbul":"^3.0.1","grunt-saucelabs":"^8.6.2","istanbul":"^0.4.2","jscs":"^2.9.0","jshint":"^2.6.0","mocha":"^2.1.0"},"dependencies":{"bn.js":"^4.4.0","brorand":"^1.0.1","hash.js":"^1.0.0","hmac-drbg":"^1.0.0","inherits":"^2.0.1","minimalistic-assert":"^1.0.0","minimalistic-crypto-utils":"^1.0.0"}}')},function(e,t,n){"use strict";var r=n(22),i=n(18),a=n(12),o=n(72),s=r.assert;function c(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(e,t,n,r){o.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,n,r){o.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}a(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var a=this._getEndoRoots(this.n);0===this.g.mul(a[0]).x.cmp(this.g.x.redMul(t))?n=a[0]:(n=a[1],s(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),a=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(a).fromRed(),r.redSub(a).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,a,o,s,c,l,u,p=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),f=new i(1),m=new i(0),g=new i(0),v=new i(1),b=0;0!==d.cmpn(0);){var y=h.div(d);l=h.sub(y.mul(d)),u=g.sub(y.mul(f));var w=v.sub(y.mul(m));if(!r&&l.cmp(p)<0)t=c.neg(),n=f,r=l.neg(),a=u;else if(r&&2==++b)break;c=l,h=d,d=l,g=f,f=u,v=m,m=w}o=l.neg(),s=u;var _=r.sqr().add(a.sqr());return o.sqr().add(s.sqr()).cmp(_)>=0&&(o=t,s=n),r.negative&&(r=r.neg(),a=a.neg()),o.negative&&(o=o.neg(),s=s.neg()),[{a:r,b:a},{a:o,b:s}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),c=i.mul(n.b),l=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:c.add(l).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var a=r.fromRed().isOdd();return(t&&!a||!t&&a)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],c=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),c=c.neg(!0)),r[2*a]=s,r[2*a+1]=c,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var l=this._wnafMulAdd(1,r,i,2*a,n),u=0;u<2*a;u++)r[u]=null,i[u]=null;return l},a(l,o.BasePoint),c.prototype.point=function(e,t,n){return new l(this,e,t,n)},c.prototype.pointFromJSON=function(e,t){return l.fromJSON(this,e,t)},l.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},l.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},l.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},l.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},l.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(e){return e=new i(e,16),this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},l.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},l.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},l.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},l.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},a(u,o.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),c=a.redSub(o);if(0===s.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=s.redSqr(),u=l.redMul(s),p=r.redMul(l),d=c.redSqr().redIAdd(u).redISub(p).redISub(p),h=c.redMul(p.redISub(d)).redISub(a.redMul(u)),f=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(d,h,f)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),l=c.redMul(o),u=n.redMul(c),p=s.redSqr().redIAdd(l).redISub(u).redISub(u),d=s.redMul(u.redISub(p)).redISub(i.redMul(l)),h=this.z.redMul(o);return this.curve.jpoint(p,d,h)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();if(this.curve.zeroA||this.curve.threeA){for(var t=this,n=0;n<e;n++)t=t.dbl();return t}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,c=s.redSqr().redSqr(),l=o.redAdd(o);for(n=0;n<e;n++){var u=a.redSqr(),p=l.redSqr(),d=p.redSqr(),h=u.redAdd(u).redIAdd(u).redIAdd(r.redMul(c)),f=a.redMul(p),m=h.redSqr().redISub(f.redAdd(f)),g=f.redISub(m),v=h.redMul(g);v=v.redIAdd(v).redISub(d);var b=l.redMul(s);n+1<e&&(c=c.redMul(d)),a=m,s=b,l=v}return this.curve.jpoint(a,l.redMul(i),s)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},u.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),c=s.redSqr().redISub(o).redISub(o),l=a.redIAdd(a);l=(l=l.redIAdd(l)).redIAdd(l),e=c,t=s.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.x.redSqr(),p=this.y.redSqr(),d=p.redSqr(),h=this.x.redAdd(p).redSqr().redISub(u).redISub(d);h=h.redIAdd(h);var f=u.redAdd(u).redIAdd(u),m=f.redSqr(),g=d.redIAdd(d);g=(g=g.redIAdd(g)).redIAdd(g),e=m.redISub(h).redISub(h),t=f.redMul(h.redISub(e)).redISub(g),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},u.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),c=s.redSqr().redISub(o).redISub(o);e=c;var l=a.redIAdd(a);l=(l=l.redIAdd(l)).redIAdd(l),t=s.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.z.redSqr(),p=this.y.redSqr(),d=this.x.redMul(p),h=this.x.redSub(u).redMul(this.x.redAdd(u));h=h.redAdd(h).redIAdd(h);var f=d.redIAdd(d),m=(f=f.redIAdd(f)).redAdd(f);e=h.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(p).redISub(u);var g=p.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),t=h.redMul(f.redISub(e)).redISub(g)}return this.curve.jpoint(e,t,n)},u.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),c=t.redAdd(t),l=(c=c.redIAdd(c)).redMul(o),u=s.redSqr().redISub(l.redAdd(l)),p=l.redISub(u),d=o.redSqr();d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=s.redMul(p).redISub(d),f=n.redAdd(n).redMul(r);return this.curve.jpoint(u,h,f)},u.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),c=r.redIAdd(r);c=(c=(c=c.redIAdd(c)).redIAdd(c)).redIAdd(c);var l=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(c),u=t.redMul(l);u=(u=u.redIAdd(u)).redIAdd(u);var p=this.x.redMul(s).redISub(u);p=(p=p.redIAdd(p)).redIAdd(p);var d=this.y.redMul(l.redMul(c.redISub(l)).redISub(o.redMul(s)));d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(p,d,h)},u.prototype.mul=function(e,t){return e=new i(e,t),this.curve._wnafMul(this,e)},u.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},u.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},function(e,t,n){"use strict";var r=n(18),i=n(12),a=n(72),o=n(22);function s(e){a.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){a.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(s,a),e.exports=s,s.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,a.BasePoint),s.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},s.prototype.point=function(e,t){return new c(this,e,t)},s.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),a=e.x.redSub(e.z).redMul(n),o=i.redMul(r),s=t.z.redMul(a.redAdd(o).redSqr()),c=t.x.redMul(a.redISub(o).redSqr());return this.curve.point(s,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var a=i.length-1;a>=0;a--)0===i[a]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},function(e,t,n){"use strict";var r=n(22),i=n(18),a=n(12),o=n(72),s=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),s(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function l(e,t,n,r,a){o.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=a&&new i(a,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}a(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),a=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=r.redMul(a.redInvm()),s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=s.fromRed().isOdd();return(t&&!c||!t&&c)&&(s=s.redNeg()),this.point(e,s)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),a=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=r.redMul(a.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var s=o.redSqrt();if(0!==s.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return s.fromRed().isOdd()!==t&&(s=s.redNeg()),this.point(s,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},a(l,o.BasePoint),c.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new l(this,e,t,n,r)},l.fromJSON=function(e,t){return new l(e,t[0],t[1],t[2])},l.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),a=r.redAdd(t),o=a.redSub(n),s=r.redSub(t),c=i.redMul(o),l=a.redMul(s),u=i.redMul(s),p=o.redMul(a);return this.curve.point(c,l,p,u)},l.prototype._projDbl=function(){var e,t,n,r=this.x.redAdd(this.y).redSqr(),i=this.x.redSqr(),a=this.y.redSqr();if(this.curve.twisted){var o=(l=this.curve._mulA(i)).redAdd(a);if(this.zOne)e=r.redSub(i).redSub(a).redMul(o.redSub(this.curve.two)),t=o.redMul(l.redSub(a)),n=o.redSqr().redSub(o).redSub(o);else{var s=this.z.redSqr(),c=o.redSub(s).redISub(s);e=r.redSub(i).redISub(a).redMul(c),t=o.redMul(l.redSub(a)),n=o.redMul(c)}}else{var l=i.redAdd(a);s=this.curve._mulC(this.z).redSqr(),c=l.redSub(s).redSub(s);e=this.curve._mulC(r.redISub(l)).redMul(c),t=this.curve._mulC(l).redMul(i.redISub(a)),n=l.redMul(c)}return this.curve.point(e,t,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),a=n.redSub(t),o=i.redSub(r),s=i.redAdd(r),c=n.redAdd(t),l=a.redMul(o),u=s.redMul(c),p=a.redMul(c),d=o.redMul(s);return this.curve.point(l,u,d,p)},l.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),a=this.x.redMul(e.x),o=this.y.redMul(e.y),s=this.curve.d.redMul(a).redMul(o),c=i.redSub(s),l=i.redAdd(s),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(a).redISub(o),p=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(l).redMul(o.redSub(this.curve._mulA(a))),n=c.redMul(l)):(t=r.redMul(l).redMul(o.redSub(a)),n=this.curve._mulC(c).redMul(l)),this.curve.point(p,t,n)},l.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},l.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},l.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},l.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},function(e,t,n){"use strict";t.sha1=n(63),t.sha224=n(319),t.sha256=n(162),t.sha384=n(320),t.sha512=n(163)},function(e,t,n){"use strict";var r=n(24),i=n(162);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=512,a.outSize=224,a.hmacStrength=192,a.padLength=64,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},function(e,t,n){"use strict";var r=n(24),i=n(163);function a(){if(!(this instanceof a))return new a;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(a,i),e.exports=a,a.blockSize=1024,a.outSize=384,a.hmacStrength=192,a.padLength=128,a.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},function(e,t,n){"use strict";var r=n(24),i=n(48),a=r.rotl32,o=r.sum32,s=r.sum32_3,c=r.sum32_4,l=i.BlockHash;function u(){if(!(this instanceof u))return new u;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function p(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,l),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],l=this.h[3],u=this.h[4],b=n,y=r,w=i,_=l,k=u,E=0;E<80;E++){var C=o(a(c(n,p(E,r,i,l),e[f[E]+t],d(E)),g[E]),u);n=u,u=l,l=a(i,10),i=r,r=C,C=o(a(c(b,p(79-E,y,w,_),e[m[E]+t],h(E)),v[E]),k),b=k,k=_,_=a(w,10),w=y,y=C}C=s(this.h[1],i,_),this.h[1]=s(this.h[2],l,k),this.h[2]=s(this.h[3],u,b),this.h[3]=s(this.h[4],n,y),this.h[4]=s(this.h[0],r,w),this.h[0]=C},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var f=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},function(e,t,n){"use strict";var r=n(24),i=n(21);function a(e,t,n){if(!(this instanceof a))return new a(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=a,a.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},a.prototype.update=function(e,t){return this.inner.update(e,t),this},a.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},function(e,t){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},function(e,t,n){"use strict";var r=n(18),i=n(325),a=n(22),o=n(105),s=n(102),c=a.assert,l=n(326),u=n(327);function p(e){if(!(this instanceof p))return new p(e);"string"==typeof e&&(c(o.hasOwnProperty(e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=p,p.prototype.keyPair=function(e){return new l(this,e)},p.prototype.keyFromPrivate=function(e,t){return l.fromPrivate(this,e,t)},p.prototype.keyFromPublic=function(e,t){return l.fromPublic(this,e,t)},p.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||s(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),a=this.n.sub(new r(2));;){var o=new r(t.generate(n));if(!(o.cmp(a)>0))return o.iaddn(1),this.keyFromPrivate(o)}},p.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},p.prototype.sign=function(e,t,n,a){"object"==typeof n&&(a=n,n=null),a||(a={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var o=this.n.byteLength(),s=t.getPrivate().toArray("be",o),c=e.toArray("be",o),l=new i({hash:this.hash,entropy:s,nonce:c,pers:a.pers,persEnc:a.persEnc||"utf8"}),p=this.n.sub(new r(1)),d=0;;d++){var h=a.k?a.k(d):new r(l.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(p)>=0)){var f=this.g.mul(h);if(!f.isInfinity()){var m=f.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var v=h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var b=(f.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return a.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),b^=1),new u({r:g,s:v,recoveryParam:b})}}}}}},p.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var a=(t=new u(t,"hex")).r,o=t.s;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var s,c=o.invm(this.n),l=c.mul(e).umod(this.n),p=c.mul(a).umod(this.n);return this.curve._maxwellTrick?!(s=this.g.jmulAdd(l,n.getPublic(),p)).isInfinity()&&s.eqXToP(a):!(s=this.g.mulAdd(l,n.getPublic(),p)).isInfinity()&&0===s.getX().umod(this.n).cmp(a)},p.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,i);var a=this.n,o=new r(e),s=t.r,l=t.s,p=1&n,d=n>>1;if(s.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");s=d?this.curve.pointFromX(s.add(this.curve.n),p):this.curve.pointFromX(s,p);var h=t.r.invm(a),f=a.sub(o).mul(h).umod(a),m=l.mul(h).umod(a);return this.g.mulAdd(f,s,m)},p.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},function(e,t,n){"use strict";var r=n(106),i=n(160),a=n(21);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");a(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=o,o.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},o.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=i.toArray(e,t),n=i.toArray(n,r),a(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},o.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var a=[];a.length<e;)this.V=this._hmac().update(this.V).digest(),a=a.concat(this.V);var o=a.slice(0,e);return this._update(n),this._reseed++,i.encode(o,t)}},function(e,t,n){"use strict";var r=n(18),i=n(22).assert;function a(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=a,a.fromPublic=function(e,t,n){return t instanceof a?t:new a(e,{pub:t,pubEnc:n})},a.fromPrivate=function(e,t,n){return t instanceof a?t:new a(e,{priv:t,privEnc:n})},a.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},a.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},a.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},a.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},a.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},a.prototype.derive=function(e){return e.mul(this.priv).getX()},a.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},a.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},a.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},function(e,t,n){"use strict";var r=n(18),i=n(22),a=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(a(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function s(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;for(var r=15&n,i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o];return t.place=o,i}function l(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function u(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new s;if(48!==e[n.place++])return!1;if(c(e,n)+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var a=c(e,n),o=e.slice(n.place,a+n.place);if(n.place+=a,2!==e[n.place++])return!1;var l=c(e,n);if(e.length!==l+n.place)return!1;var u=e.slice(n.place,l+n.place);return 0===o[0]&&128&o[1]&&(o=o.slice(1)),0===u[0]&&128&u[1]&&(u=u.slice(1)),this.r=new r(o),this.s=new r(u),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=l(t),n=l(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var a=r.concat(n),o=[48];return u(o,a.length),o=o.concat(a),i.encode(o,e)}},function(e,t,n){"use strict";var r=n(106),i=n(105),a=n(22),o=a.assert,s=a.parseBytes,c=n(329),l=n(330);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve;this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=s(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),a=this.encodePoint(i),o=this.hashInt(a,n.pubBytes(),e).mul(n.priv()),c=r.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:a})},u.prototype.verify=function(e,t,n){e=s(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),a=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(a)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return a.intFromLE(e.digest()).umod(this.curve.n)},u.prototype.keyFromPublic=function(e){return c.fromPublic(this,e)},u.prototype.keyFromSecret=function(e){return c.fromSecret(this,e)},u.prototype.makeSignature=function(e){return e instanceof l?e:new l(this,e)},u.prototype.encodePoint=function(e){var t=e.getY().toArray("le",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},u.prototype.decodePoint=function(e){var t=(e=a.parseBytes(e)).length-1,n=e.slice(0,t).concat(-129&e[t]),r=0!=(128&e[t]),i=a.intFromLE(n);return this.curve.pointFromY(i,r)},u.prototype.encodeInt=function(e){return e.toArray("le",this.encodingLength)},u.prototype.decodeInt=function(e){return a.intFromLE(e)},u.prototype.isPoint=function(e){return e instanceof this.pointClass}},function(e,t,n){"use strict";var r=n(22),i=r.assert,a=r.parseBytes,o=r.cachedProperty;function s(e,t){this.eddsa=e,this._secret=a(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=a(t.pub)}s.fromPublic=function(e,t){return t instanceof s?t:new s(e,{pub:t})},s.fromSecret=function(e,t){return t instanceof s?t:new s(e,{secret:t})},s.prototype.secret=function(){return this._secret},o(s,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(s,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(s,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),o(s,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(s,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(s,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),s.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},s.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},s.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},s.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=s},function(e,t,n){"use strict";var r=n(18),i=n(22),a=i.assert,o=i.cachedProperty,s=i.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=s(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),a(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},function(e,t,n){"use strict";var r=n(58);t.certificate=n(341);var i=r.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=i;var a=r.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=a;var o=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())}));t.PublicKey=o;var s=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),c=r.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(s),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=c;var l=r.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=l;var u=r.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=u,t.DSAparam=r.define("DSAparam",(function(){this.int()}));var p=r.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(d),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=p;var d=r.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=r.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},function(e,t,n){var r=n(58),i=n(12);function a(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new a(e,t)},a.prototype._createNamed=function(e){var t;try{t=n(333).runInThisContext("(function "+this.name+"(entity) {\n this._initNamed(entity);\n})")}catch(r){t=function(e){this._initNamed(e)}}return i(t,e),t.prototype._initNamed=function(t){e.call(this,t)},new t(this)},a.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(r.decoders[e])),this.decoders[e]},a.prototype.decode=function(e,t,n){return this._getDecoder(t).decode(e,n)},a.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(r.encoders[e])),this.encoders[e]},a.prototype.encode=function(e,t,n){return this._getEncoder(t).encode(e,n)}},function(module,exports){var indexOf=function(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0;n<e.length;n++)if(e[n]===t)return n;return-1},Object_keys=function(e){if(Object.keys)return Object.keys(e);var t=[];for(var n in e)t.push(n);return t},forEach=function(e,t){if(e.forEach)return e.forEach(t);for(var n=0;n<e.length;n++)t(e[n],n,e)},defineProp=function(){try{return Object.defineProperty({},"_",{}),function(e,t,n){Object.defineProperty(e,t,{writable:!0,enumerable:!1,configurable:!0,value:n})}}catch(e){return function(e,t,n){e[t]=n}}}(),globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function(e){if(!(this instanceof Script))return new Script(e);this.code=e};Script.prototype.runInContext=function(e){if(!(e instanceof Context))throw new TypeError("needs a 'context' argument.");var t=document.createElement("iframe");t.style||(t.style={}),t.style.display="none",document.body.appendChild(t);var n=t.contentWindow,r=n.eval,i=n.execScript;!r&&i&&(i.call(n,"null"),r=n.eval),forEach(Object_keys(e),(function(t){n[t]=e[t]})),forEach(globals,(function(t){e[t]&&(n[t]=e[t])}));var a=Object_keys(n),o=r.call(n,this.code);return forEach(Object_keys(n),(function(t){(t in e||-1===indexOf(a,t))&&(e[t]=n[t])})),forEach(globals,(function(t){t in e||defineProp(e,t,n[t])})),document.body.removeChild(t),o},Script.prototype.runInThisContext=function(){return eval(this.code)},Script.prototype.runInNewContext=function(e){var t=Script.createContext(e),n=this.runInContext(t);return e&&forEach(Object_keys(t),(function(n){e[n]=t[n]})),n},forEach(Object_keys(Script.prototype),(function(e){exports[e]=Script[e]=function(t){var n=Script(t);return n[e].apply(n,[].slice.call(arguments,1))}})),exports.isContext=function(e){return e instanceof Context},exports.createScript=function(e){return exports.Script(e)},exports.createContext=Script.createContext=function(e){var t=new Context;return"object"==typeof e&&forEach(Object_keys(e),(function(n){t[n]=e[n]})),t}},function(e,t,n){var r=n(12);function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function a(e,t){this.path=e,this.rethrow(t)}t.Reporter=i,i.prototype.isError=function(e){return e instanceof a},i.prototype.save=function(){var e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){var t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){var t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,n){var r=this._reporterState;this.exitKey(e),null!==r.obj&&(r.obj[t]=n)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){var e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){var t=this._reporterState,n=t.obj;return t.obj=e,n},i.prototype.error=function(e){var t,n=this._reporterState,r=e instanceof a;if(t=r?e:new a(n.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!n.options.partial)throw t;return r||n.errors.push(t),t},i.prototype.wrapResult=function(e){var t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},r(a,Error),a.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,a),!this.stack)try{throw new Error(this.message)}catch(t){this.stack=t.stack}return this}},function(e,t,n){var r=n(59).Reporter,i=n(59).EncoderBuffer,a=n(59).DecoderBuffer,o=n(21),s=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],c=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(s);function l(e,t){var n={};this._baseState=n,n.enc=e,n.parent=t||null,n.children=null,n.tag=null,n.args=null,n.reverseArgs=null,n.choice=null,n.optional=!1,n.any=!1,n.obj=!1,n.use=null,n.useDecoder=null,n.key=null,n.default=null,n.explicit=null,n.implicit=null,n.contains=null,n.parent||(n.children=[],this._wrap())}e.exports=l;var u=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];l.prototype.clone=function(){var e=this._baseState,t={};u.forEach((function(n){t[n]=e[n]}));var n=new this.constructor(t.parent);return n._baseState=t,n},l.prototype._wrap=function(){var e=this._baseState;c.forEach((function(t){this[t]=function(){var n=new this.constructor(this);return e.children.push(n),n[t].apply(n,arguments)}}),this)},l.prototype._init=function(e){var t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),o.equal(t.children.length,1,"Root node can have only one child")},l.prototype._useArgs=function(e){var t=this._baseState,n=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==n.length&&(o(null===t.children),t.children=n,n.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;var t={};return Object.keys(e).forEach((function(n){n==(0|n)&&(n|=0);var r=e[n];t[r]=n})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){l.prototype[e]=function(){var t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),s.forEach((function(e){l.prototype[e]=function(){var t=this._baseState,n=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(n),this}})),l.prototype.use=function(e){o(e);var t=this._baseState;return o(null===t.use),t.use=e,this},l.prototype.optional=function(){return this._baseState.optional=!0,this},l.prototype.def=function(e){var t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},l.prototype.explicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},l.prototype.implicit=function(e){var t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},l.prototype.obj=function(){var e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},l.prototype.key=function(e){var t=this._baseState;return o(null===t.key),t.key=e,this},l.prototype.any=function(){return this._baseState.any=!0,this},l.prototype.choice=function(e){var t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},l.prototype.contains=function(e){var t=this._baseState;return o(null===t.use),t.contains=e,this},l.prototype._decode=function(e,t){var n=this._baseState;if(null===n.parent)return e.wrapResult(n.children[0]._decode(e,t));var r,i=n.default,o=!0,s=null;if(null!==n.key&&(s=e.enterKey(n.key)),n.optional){var c=null;if(null!==n.explicit?c=n.explicit:null!==n.implicit?c=n.implicit:null!==n.tag&&(c=n.tag),null!==c||n.any){if(o=this._peekTag(e,c,n.any),e.isError(o))return o}else{var l=e.save();try{null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),o=!0}catch(f){o=!1}e.restore(l)}}if(n.obj&&o&&(r=e.enterObject()),o){if(null!==n.explicit){var u=this._decodeTag(e,n.explicit);if(e.isError(u))return u;e=u}var p=e.offset;if(null===n.use&&null===n.choice){if(n.any)l=e.save();var d=this._decodeTag(e,null!==n.implicit?n.implicit:n.tag,n.any);if(e.isError(d))return d;n.any?i=e.raw(l):e=d}if(t&&t.track&&null!==n.tag&&t.track(e.path(),p,e.length,"tagged"),t&&t.track&&null!==n.tag&&t.track(e.path(),e.offset,e.length,"content"),i=n.any?i:null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),e.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach((function(n){n._decode(e,t)})),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){var h=new a(i);i=this._getUse(n.contains,e._reporterState.obj)._decode(h,t)}}return n.obj&&o&&(i=e.leaveObject(r)),null===n.key||null===i&&!0!==o?null!==s&&e.exitKey(s):e.leaveKey(s,n.key,i),i},l.prototype._decodeGeneric=function(e,t,n){var r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],n):/str$/.test(e)?this._decodeStr(t,e,n):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],n):"objid"===e?this._decodeObjid(t,null,null,n):"gentime"===e||"utctime"===e?this._decodeTime(t,e,n):"null_"===e?this._decodeNull(t,n):"bool"===e?this._decodeBool(t,n):"objDesc"===e?this._decodeStr(t,e,n):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,n):t.error("unknown tag: "+e)},l.prototype._getUse=function(e,t){var n=this._baseState;return n.useDecoder=this._use(e,t),o(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},l.prototype._decodeChoice=function(e,t){var n=this._baseState,r=null,i=!1;return Object.keys(n.choice).some((function(a){var o=e.save(),s=n.choice[a];try{var c=s._decode(e,t);if(e.isError(c))return!1;r={type:a,value:c},i=!0}catch(l){return e.restore(o),!1}return!0}),this),i?r:e.error("Choice not matched")},l.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},l.prototype._encode=function(e,t,n){var r=this._baseState;if(null===r.default||r.default!==e){var i=this._encodeValue(e,t,n);if(void 0!==i&&!this._skipDefault(i,t,n))return i}},l.prototype._encodeValue=function(e,t,n){var i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new r);var a=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}var o=null,s=!1;if(i.any)a=this._createEncoderBuffer(e);else if(i.choice)a=this._encodeChoice(e,t);else if(i.contains)o=this._getUse(i.contains,n)._encode(e,t),s=!0;else if(i.children)o=i.children.map((function(n){if("null_"===n._baseState.tag)return n._encode(null,t,e);if(null===n._baseState.key)return t.error("Child should have a key");var r=t.enterKey(n._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");var i=n._encode(e[n._baseState.key],t,e);return t.leaveKey(r),i}),this).filter((function(e){return e})),o=this._createEncoderBuffer(o);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");var c=this.clone();c._baseState.implicit=null,o=this._createEncoderBuffer(e.map((function(n){var r=this._baseState;return this._getUse(r.args[0],e)._encode(n,t)}),c))}else null!==i.use?a=this._getUse(i.use,n)._encode(e,t):(o=this._encodePrimitive(i.tag,e),s=!0);if(!i.any&&null===i.choice){var l=null!==i.implicit?i.implicit:i.tag,u=null===i.implicit?"universal":"context";null===l?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(a=this._encodeComposite(l,s,u,o))}return null!==i.explicit&&(a=this._encodeComposite(i.explicit,!1,"context",a)),a},l.prototype._encodeChoice=function(e,t){var n=this._baseState,r=n.choice[e.type];return r||o(!1,e.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(e.value,t)},l.prototype._encodePrimitive=function(e,t){var n=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&n.args)return this._encodeObjid(t,n.reverseArgs[0],n.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,n.args&&n.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},l.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},l.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(e)}},function(e,t,n){var r=n(165);t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=r._reverse(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=r._reverse(t.tag)},function(e,t,n){var r=t;r.der=n(166),r.pem=n(338)},function(e,t,n){var r=n(12),i=n(19).Buffer,a=n(166);function o(e){a.call(this,e),this.enc="pem"}r(o,a),e.exports=o,o.prototype.decode=function(e,t){for(var n=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/,s=-1,c=-1,l=0;l<n.length;l++){var u=n[l].match(o);if(null!==u&&u[2]===r){if(-1!==s){if("END"!==u[1])break;c=l;break}if("BEGIN"!==u[1])break;s=l}}if(-1===s||-1===c)throw new Error("PEM section not found for: "+r);var p=n.slice(s+1,c).join("");p.replace(/[^a-z0-9\+\/=]+/gi,"");var d=new i(p,"base64");return a.prototype.decode.call(this,d,t)}},function(e,t,n){var r=t;r.der=n(167),r.pem=n(340)},function(e,t,n){var r=n(12),i=n(167);function a(e){i.call(this,e),this.enc="pem"}r(a,i),e.exports=a,a.prototype.encode=function(e,t){for(var n=i.prototype.encode.call(this,e).toString("base64"),r=["-----BEGIN "+t.label+"-----"],a=0;a<n.length;a+=64)r.push(n.slice(a,a+64));return r.push("-----END "+t.label+"-----"),r.join("\n")}},function(e,t,n){"use strict";var r=n(58),i=r.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),a=r.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),o=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),s=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())})),c=r.define("RelativeDistinguishedName",(function(){this.setof(a)})),l=r.define("RDNSequence",(function(){this.seqof(c)})),u=r.define("Name",(function(){this.choice({rdnSequence:this.use(l)})})),p=r.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),d=r.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),h=r.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(u),this.key("validity").use(p),this.key("subject").use(u),this.key("subjectPublicKeyInfo").use(s),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())})),f=r.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())}));e.exports=f},function(e){e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')},function(e,t,n){var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r\+\/\=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,a=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r\+\/\=]+)-----END \1-----$/m,o=n(71),s=n(100),c=n(13).Buffer;e.exports=function(e,t){var n,l=e.toString(),u=l.match(r);if(u){var p="aes"+u[1],d=c.from(u[2],"hex"),h=c.from(u[3].replace(/[\r\n]/g,""),"base64"),f=o(t,d.slice(0,8),parseInt(u[1],10)).key,m=[],g=s.createDecipheriv(p,f,d);m.push(g.update(h)),m.push(g.final()),n=c.concat(m)}else{var v=l.match(a);n=new c(v[2].replace(/[\r\n]/g,""),"base64")}return{tag:l.match(i)[1],data:n}}},function(e,t,n){(function(t){var r=n(18),i=n(104).ec,a=n(73),o=n(168);function s(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,n,c,l,u){var p=a(c);if("ec"===p.type){if("ecdsa"!==l&&"ecdsa/rsa"!==l)throw new Error("wrong public key type");return function(e,t,n){var r=o[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var a=new i(r),s=n.data.subjectPrivateKey.data;return a.verify(t,e,s)}(e,n,p)}if("dsa"===p.type){if("dsa"!==l)throw new Error("wrong public key type");return function(e,t,n){var i=n.data.p,o=n.data.q,c=n.data.g,l=n.data.pub_key,u=a.signature.decode(e,"der"),p=u.s,d=u.r;s(p,o),s(d,o);var h=r.mont(i),f=p.invm(o);return 0===c.toRed(h).redPow(new r(t).mul(f).mod(o)).fromRed().mul(l.toRed(h).redPow(d.mul(f).mod(o)).fromRed()).mod(i).mod(o).cmp(d)}(e,n,p)}if("rsa"!==l&&"ecdsa/rsa"!==l)throw new Error("wrong public key type");n=t.concat([u,n]);for(var d=p.modulus.byteLength(),h=[1],f=0;n.length+h.length+2<d;)h.push(255),f++;h.push(0);for(var m=-1;++m<n.length;)h.push(n[m]);h=new t(h);var g=r.mont(p.modulus);e=(e=new r(e).toRed(g)).redPow(new r(p.publicExponent)),e=new t(e.fromRed().toArray());var v=f<8?1:0;for(d=Math.min(e.length,h.length),e.length!==h.length&&(v=1),m=-1;++m<d;)v|=e[m]^h[m];return 0===v}}).call(this,n(19).Buffer)},function(e,t,n){(function(t){var r=n(104),i=n(18);e.exports=function(e){return new o(e)};var a={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function o(e){this.curveType=a[e],this.curveType||(this.curveType={name:e}),this.curve=new r.ec(this.curveType.name),this.keys=void 0}function s(e,n,r){Array.isArray(e)||(e=e.toArray());var i=new t(e);if(r&&i.length<r){var a=new t(r-i.length);a.fill(0),i=t.concat([a,i])}return n?i.toString(n):i}a.p224=a.secp224r1,a.p256=a.secp256r1=a.prime256v1,a.p192=a.secp192r1=a.prime192v1,a.p384=a.secp384r1,a.p521=a.secp521r1,o.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},o.prototype.computeSecret=function(e,n,r){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),s(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),r,this.curveType.byteLength)},o.prototype.getPublicKey=function(e,t){var n=this.keys.getPublic("compressed"===t,!0);return"hybrid"===t&&(n[n.length-1]%2?n[0]=7:n[0]=6),s(n,e)},o.prototype.getPrivateKey=function(e){return s(this.keys.getPrivate(),e)},o.prototype.setPublicKey=function(e,n){return n=n||"utf8",t.isBuffer(e)||(e=new t(e,n)),this.keys._importPublic(e),this},o.prototype.setPrivateKey=function(e,n){n=n||"utf8",t.isBuffer(e)||(e=new t(e,n));var r=new i(e);return r=r.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(r),this}}).call(this,n(19).Buffer)},function(e,t,n){t.publicEncrypt=n(347),t.privateDecrypt=n(348),t.privateEncrypt=function(e,n){return t.publicEncrypt(e,n,!0)},t.publicDecrypt=function(e,n){return t.privateDecrypt(e,n,!0)}},function(e,t,n){var r=n(73),i=n(41),a=n(55),o=n(169),s=n(170),c=n(18),l=n(171),u=n(103),p=n(13).Buffer;e.exports=function(e,t,n){var d;d=e.padding?e.padding:n?1:4;var h,f=r(e);if(4===d)h=function(e,t){var n=e.modulus.byteLength(),r=t.length,l=a("sha1").update(p.alloc(0)).digest(),u=l.length,d=2*u;if(r>n-d-2)throw new Error("message too long");var h=p.alloc(n-r-d-2),f=n-u-1,m=i(u),g=s(p.concat([l,h,p.alloc(1,1),t],f),o(m,f)),v=s(m,o(g,u));return new c(p.concat([p.alloc(1),v,g],n))}(f,t);else if(1===d)h=function(e,t,n){var r,a=t.length,o=e.modulus.byteLength();if(a>o-11)throw new Error("message too long");r=n?p.alloc(o-a-3,255):function(e){var t,n=p.allocUnsafe(e),r=0,a=i(2*e),o=0;for(;r<e;)o===a.length&&(a=i(2*e),o=0),(t=a[o++])&&(n[r++]=t);return n}(o-a-3);return new c(p.concat([p.from([0,n?1:2]),r,p.alloc(1),t],o))}(f,t,n);else{if(3!==d)throw new Error("unknown padding");if((h=new c(t)).cmp(f.modulus)>=0)throw new Error("data too long for modulus")}return n?u(h,f):l(h,f)}},function(e,t,n){var r=n(73),i=n(169),a=n(170),o=n(18),s=n(103),c=n(55),l=n(171),u=n(13).Buffer;e.exports=function(e,t,n){var p;p=e.padding?e.padding:n?1:4;var d,h=r(e),f=h.modulus.byteLength();if(t.length>f||new o(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=n?l(new o(t),h):s(t,h);var m=u.alloc(f-d.length);if(d=u.concat([m,d],f),4===p)return function(e,t){var n=e.modulus.byteLength(),r=c("sha1").update(u.alloc(0)).digest(),o=r.length;if(0!==t[0])throw new Error("decryption error");var s=t.slice(1,o+1),l=t.slice(o+1),p=a(s,i(l,o)),d=a(l,i(p,n-o-1));if(function(e,t){e=u.from(e),t=u.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));var i=-1;for(;++i<r;)n+=e[i]^t[i];return n}(r,d.slice(0,o)))throw new Error("decryption error");var h=o;for(;0===d[h];)h++;if(1!==d[h++])throw new Error("decryption error");return d.slice(h)}(h,d);if(1===p)return function(e,t,n){var r=t.slice(0,2),i=2,a=0;for(;0!==t[i++];)if(i>=t.length){a++;break}var o=t.slice(2,i-1);("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&a++;o.length<8&&a++;if(a)throw new Error("decryption error");return t.slice(i)}(0,d,n);if(3===p)return d;throw new Error("unknown padding")}},function(e,t,n){"use strict";(function(e){function r(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var i=n(13),a=n(41),o=i.Buffer,s=i.kMaxLength,c=window.crypto||window.msCrypto,l=Math.pow(2,32)-1;function u(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>l||e<0)throw new TypeError("offset must be a uint32");if(e>s||e>t)throw new RangeError("offset out of range")}function p(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>l||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>s)throw new RangeError("buffer too small")}function d(t,n,r,i){if(e.browser){var o=t.buffer,s=new Uint8Array(o,n,r);return c.getRandomValues(s),i?void e.nextTick((function(){i(null,t)})):t}if(!i)return a(r).copy(t,n),t;a(r,(function(e,r){if(e)return i(e);r.copy(t,n),i(null,t)}))}c&&c.getRandomValues||!e.browser?(t.randomFill=function(e,t,n,r){if(!(o.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)r=t,t=0,n=e.length;else if("function"==typeof n)r=n,n=e.length-t;else if("function"!=typeof r)throw new TypeError('"cb" argument must be a function');return u(t,e.length),p(n,t,e.length),d(e,t,n,r)},t.randomFillSync=function(e,t,n){void 0===t&&(t=0);if(!(o.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');u(t,e.length),void 0===n&&(n=e.length-t);return p(n,t,e.length),d(e,t,n)}):(t.randomFill=r,t.randomFillSync=r)}).call(this,n(20))},function(e,t){e.exports=function e(t){if(n(t))return t;if(n(t.ownerDocument))return t.ownerDocument;if(n(t.document))return t.document;if(t.parentNode)return e(t.parentNode);if(t.commonAncestorContainer)return e(t.commonAncestorContainer);if(t.startContainer)return e(t.startContainer);if(t.anchorNode)return e(t.anchorNode)};function n(e){return e&&9===e.nodeType}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t){var n=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])'],r=n.join(","),i="undefined"==typeof Element?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector;function a(e,t){t=t||{};var n,a,s,c=[],p=[],d=e.querySelectorAll(r);for(t.includeContainer&&i.call(e,r)&&(d=Array.prototype.slice.apply(d)).unshift(e),n=0;n<d.length;n++)o(a=d[n])&&(0===(s=l(a))?c.push(a):p.push({documentOrder:n,tabIndex:s,node:a}));return p.sort(u).map((function(e){return e.node})).concat(c)}function o(e){return!(!s(e)||function(e){return function(e){return p(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t=function(e){for(var t=0;t<e.length;t++)if(e[t].checked)return e[t]}(e.ownerDocument.querySelectorAll('input[type="radio"][name="'+e.name+'"]'));return!t||t===e}(e)}(e)||l(e)<0)}function s(e){return!(e.disabled||function(e){return p(e)&&"hidden"===e.type}(e)||function(e){return null===e.offsetParent||"hidden"===getComputedStyle(e).visibility}(e))}a.isTabbable=function(e){if(!e)throw new Error("No node provided");return!1!==i.call(e,r)&&o(e)},a.isFocusable=function(e){if(!e)throw new Error("No node provided");return!1!==i.call(e,c)&&s(e)};var c=n.concat("iframe").join(",");function l(e){var t=parseInt(e.getAttribute("tabindex"),10);return isNaN(t)?function(e){return"true"===e.contentEditable}(e)?0:e.tabIndex:t}function u(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex}function p(e){return"INPUT"===e.tagName}e.exports=a},function(e,t){e.exports=function(){for(var e={},t=0;t<arguments.length;t++){var r=arguments[t];for(var i in r)n.call(r,i)&&(e[i]=r[i])}return e};var n=Object.prototype.hasOwnProperty},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";e.exports=function(e){function t(e){for(var t=0,n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n),t|=0;return r.colors[Math.abs(t)%r.colors.length]}function r(e){var n;function o(){if(o.enabled){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=o,s=Number(new Date),c=s-(n||s);a.diff=c,a.prev=n,a.curr=s,n=s,t[0]=r.coerce(t[0]),"string"!=typeof t[0]&&t.unshift("%O");var l=0;t[0]=t[0].replace(/%([a-zA-Z%])/g,(function(e,n){if("%%"===e)return e;l++;var i=r.formatters[n];if("function"==typeof i){var o=t[l];e=i.call(a,o),t.splice(l,1),l--}return e})),r.formatArgs.call(a,t);var u=a.log||r.log;u.apply(a,t)}}return o.namespace=e,o.enabled=r.enabled(e),o.useColors=r.useColors(),o.color=t(e),o.destroy=i,o.extend=a,"function"==typeof r.init&&r.init(o),r.instances.push(o),o}function i(){var e=r.instances.indexOf(this);return-1!==e&&(r.instances.splice(e,1),!0)}function a(e,t){return r(this.namespace+(void 0===t?":":t)+e)}return r.debug=r,r.default=r,r.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},r.disable=function(){r.enable("")},r.enable=function(e){var t;r.save(e),r.names=[],r.skips=[];var n=("string"==typeof e?e:"").split(/[\s,]+/),i=n.length;for(t=0;t<i;t++)n[t]&&("-"===(e=n[t].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")));for(t=0;t<r.instances.length;t++){var a=r.instances[t];a.enabled=r.enabled(a.namespace)}},r.enabled=function(e){if("*"===e[e.length-1])return!0;var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=n(81),Object.keys(e).forEach((function(t){r[t]=e[t]})),r.instances=[],r.names=[],r.skips=[],r.formatters={},r.selectColor=t,r.enable(r.load()),r}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"JETPACK_SET_INITIAL_STATE",(function(){return qt})),n.d(r,"CONNECT_URL_FETCH",(function(){return Kt})),n.d(r,"CONNECT_URL_FETCH_FAIL",(function(){return Jt})),n.d(r,"CONNECT_URL_FETCH_SUCCESS",(function(){return Wt})),n.d(r,"DISCONNECT_SITE",(function(){return Gt})),n.d(r,"DISCONNECT_SITE_FAIL",(function(){return Yt})),n.d(r,"DISCONNECT_SITE_SUCCESS",(function(){return $t})),n.d(r,"UNLINK_USER",(function(){return Xt})),n.d(r,"UNLINK_USER_FAIL",(function(){return Qt})),n.d(r,"UNLINK_USER_SUCCESS",(function(){return Zt})),n.d(r,"USER_CONNECTION_DATA_FETCH",(function(){return en})),n.d(r,"USER_CONNECTION_DATA_FETCH_FAIL",(function(){return tn})),n.d(r,"USER_CONNECTION_DATA_FETCH_SUCCESS",(function(){return nn})),n.d(r,"USER_TRACKING_SETTINGS_FETCH",(function(){return rn})),n.d(r,"USER_TRACKING_SETTINGS_FETCH_FAIL",(function(){return an})),n.d(r,"USER_TRACKING_SETTINGS_FETCH_SUCCESS",(function(){return on})),n.d(r,"USER_TRACKING_SETTINGS_UPDATE",(function(){return sn})),n.d(r,"USER_TRACKING_SETTINGS_UPDATE_FAIL",(function(){return cn})),n.d(r,"USER_TRACKING_SETTINGS_UPDATE_SUCCESS",(function(){return ln})),n.d(r,"JETPACK_MODULES_LIST_FETCH",(function(){return un})),n.d(r,"JETPACK_MODULES_LIST_FETCH_FAIL",(function(){return pn})),n.d(r,"JETPACK_MODULES_LIST_RECEIVE",(function(){return dn})),n.d(r,"JETPACK_MODULE_FETCH",(function(){return hn})),n.d(r,"JETPACK_MODULE_FETCH_FAIL",(function(){return fn})),n.d(r,"JETPACK_MODULE_RECEIVE",(function(){return mn})),n.d(r,"JETPACK_MODULE_ACTIVATE",(function(){return gn})),n.d(r,"JETPACK_MODULE_ACTIVATE_SUCCESS",(function(){return vn})),n.d(r,"JETPACK_MODULE_ACTIVATE_FAIL",(function(){return bn})),n.d(r,"JETPACK_MODULE_DEACTIVATE",(function(){return yn})),n.d(r,"JETPACK_MODULE_DEACTIVATE_FAIL",(function(){return wn})),n.d(r,"JETPACK_MODULE_DEACTIVATE_SUCCESS",(function(){return _n})),n.d(r,"JETPACK_MODULE_UPDATE_OPTIONS",(function(){return kn})),n.d(r,"JETPACK_MODULE_UPDATE_OPTIONS_FAIL",(function(){return En})),n.d(r,"JETPACK_MODULE_UPDATE_OPTIONS_SUCCESS",(function(){return Cn})),n.d(r,"JETPACK_CONNECTION_STATUS_FETCH",(function(){return Sn})),n.d(r,"JETPACK_CONNECTION_TEST_FETCH",(function(){return Mn})),n.d(r,"DASHBOARD_PROTECT_COUNT_FETCH",(function(){return xn})),n.d(r,"DASHBOARD_PROTECT_COUNT_FETCH_FAIL",(function(){return An})),n.d(r,"DASHBOARD_PROTECT_COUNT_FETCH_SUCCESS",(function(){return jn})),n.d(r,"RESET_OPTIONS",(function(){return On})),n.d(r,"RESET_OPTIONS_FAIL",(function(){return Nn})),n.d(r,"RESET_OPTIONS_SUCCESS",(function(){return Tn})),n.d(r,"VAULTPRESS_SITE_DATA_FETCH",(function(){return Pn})),n.d(r,"VAULTPRESS_SITE_DATA_FETCH_FAIL",(function(){return In})),n.d(r,"VAULTPRESS_SITE_DATA_FETCH_SUCCESS",(function(){return Dn})),n.d(r,"AKISMET_DATA_FETCH",(function(){return Rn})),n.d(r,"AKISMET_DATA_FETCH_FAIL",(function(){return Un})),n.d(r,"AKISMET_DATA_FETCH_SUCCESS",(function(){return Fn})),n.d(r,"AKISMET_KEY_CHECK_FETCH",(function(){return Ln})),n.d(r,"AKISMET_KEY_CHECK_FETCH_FAIL",(function(){return zn})),n.d(r,"AKISMET_KEY_CHECK_FETCH_SUCCESS",(function(){return Bn})),n.d(r,"PLUGIN_UPDATES_FETCH",(function(){return Vn})),n.d(r,"PLUGIN_UPDATES_FETCH_FAIL",(function(){return Hn})),n.d(r,"PLUGIN_UPDATES_FETCH_SUCCESS",(function(){return qn})),n.d(r,"STATS_SWITCH_TAB",(function(){return Kn})),n.d(r,"STATS_DATA_FETCH",(function(){return Jn})),n.d(r,"STATS_DATA_FETCH_FAIL",(function(){return Wn})),n.d(r,"STATS_DATA_FETCH_SUCCESS",(function(){return Gn})),n.d(r,"JETPACK_PRODUCTS_FETCH",(function(){return Yn})),n.d(r,"JETPACK_PRODUCTS_FETCH_RECEIVE",(function(){return $n})),n.d(r,"JETPACK_PRODUCTS_FETCH_FAIL",(function(){return Xn})),n.d(r,"JETPACK_SETTINGS_FETCH",(function(){return Qn})),n.d(r,"JETPACK_SETTINGS_FETCH_RECEIVE",(function(){return Zn})),n.d(r,"JETPACK_SETTINGS_FETCH_FAIL",(function(){return er})),n.d(r,"JETPACK_SETTING_UPDATE",(function(){return tr})),n.d(r,"JETPACK_SETTING_UPDATE_SUCCESS",(function(){return nr})),n.d(r,"JETPACK_SETTING_UPDATE_FAIL",(function(){return rr})),n.d(r,"JETPACK_SETTINGS_UPDATE",(function(){return ir})),n.d(r,"JETPACK_SETTINGS_UPDATE_FAIL",(function(){return ar})),n.d(r,"JETPACK_SETTINGS_UPDATE_SUCCESS",(function(){return or})),n.d(r,"JETPACK_SETTINGS_SET_UNSAVED_FLAG",(function(){return sr})),n.d(r,"JETPACK_SETTINGS_CLEAR_UNSAVED_FLAG",(function(){return cr})),n.d(r,"JETPACK_SITE_DATA_FETCH",(function(){return lr})),n.d(r,"JETPACK_SITE_DATA_FETCH_RECEIVE",(function(){return ur})),n.d(r,"JETPACK_SITE_DATA_FETCH_FAIL",(function(){return pr})),n.d(r,"JETPACK_SITE_BENEFITS_FETCH",(function(){return dr})),n.d(r,"JETPACK_SITE_BENEFITS_FETCH_RECEIVE",(function(){return hr})),n.d(r,"JETPACK_SITE_BENEFITS_FETCH_FAIL",(function(){return fr})),n.d(r,"JETPACK_SITE_FEATURES_FETCH",(function(){return mr})),n.d(r,"JETPACK_SITE_FEATURES_FETCH_RECEIVE",(function(){return gr})),n.d(r,"JETPACK_SITE_FEATURES_FETCH_FAIL",(function(){return vr})),n.d(r,"JETPACK_SITE_PLANS_FETCH",(function(){return br})),n.d(r,"JETPACK_SITE_PLANS_FETCH_RECEIVE",(function(){return yr})),n.d(r,"JETPACK_SITE_PLANS_FETCH_FAIL",(function(){return wr})),n.d(r,"JETPACK_SITE_PURCHASES_FETCH",(function(){return _r})),n.d(r,"JETPACK_SITE_PURCHASES_FETCH_RECEIVE",(function(){return kr})),n.d(r,"JETPACK_SITE_PURCHASES_FETCH_FAIL",(function(){return Er})),n.d(r,"JETPACK_ACTION_NOTICES_DISMISS",(function(){return Cr})),n.d(r,"JETPACK_NOTICES_DISPATCH_TYPE",(function(){return Sr})),n.d(r,"JETPACK_NOTICES_DISMISS",(function(){return Mr})),n.d(r,"JETPACK_NOTICES_DISMISS_FAIL",(function(){return xr})),n.d(r,"JETPACK_NOTICES_DISMISS_SUCCESS",(function(){return Ar})),n.d(r,"JETPACK_PLUGINS_DATA_FETCH",(function(){return jr})),n.d(r,"JETPACK_PLUGINS_DATA_FETCH_RECEIVE",(function(){return Or})),n.d(r,"JETPACK_PLUGINS_DATA_FETCH_FAIL",(function(){return Nr})),n.d(r,"JETPACK_SEARCH_TERM",(function(){return Tr})),n.d(r,"JETPACK_SEARCH_FOCUS",(function(){return Pr})),n.d(r,"JETPACK_SEARCH_BLUR",(function(){return Ir})),n.d(r,"DEV_CARD_DISPLAY",(function(){return Dr})),n.d(r,"DEV_CARD_HIDE",(function(){return Rr})),n.d(r,"MOCK_SWITCH_USER_PERMISSIONS",(function(){return Ur})),n.d(r,"MOCK_SWITCH_THREATS",(function(){return Fr})),n.d(r,"REWIND_STATUS_FETCH",(function(){return Lr})),n.d(r,"REWIND_STATUS_FETCH_RECEIVE",(function(){return zr})),n.d(r,"REWIND_STATUS_FETCH_FAIL",(function(){return Br})),n.d(r,"MOCK_SWITCH_REWIND_STATE",(function(){return Vr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH",(function(){return Hr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_FAIL",(function(){return qr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_SUCCESS",(function(){return Kr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH",(function(){return Jr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH_FAIL",(function(){return Wr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH_SUCCESS",(function(){return Gr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_REQUEST",(function(){return Yr})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_REQUEST_SUCCESS",(function(){return $r})),n.d(r,"JETPACK_SITE_VERIFY_GOOGLE_REQUEST_FAIL",(function(){return Xr})),n.d(r,"SITE_CHECKLIST_RECEIVE",(function(){return Qr})),n.d(r,"SITE_CHECKLIST_REQUEST",(function(){return Zr})),n.d(r,"JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL",(function(){return ei})),n.d(r,"JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_SUCCESS",(function(){return ti})),n.d(r,"JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL",(function(){return ni}));var i=n(16),a=n.n(i),o=n(0),s=n.n(o);function c(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var l=n(1),u=n.n(l),p=s.a.createContext(null),d=function(e){function t(t){var n;n=e.call(this,t)||this;var r=t.store;return n.state={storeState:r.getState(),store:r},n}c(t,e);var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this.subscribe()},n.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},n.componentDidUpdate=function(e){this.props.store!==e.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},n.subscribe=function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe((function(){var n=t.getState();e._isMounted&&e.setState((function(e){return e.storeState===n?null:{storeState:n}}))}));var n=t.getState();n!==this.state.storeState&&this.setState({storeState:n})},n.render=function(){var e=this.props.context||p;return s.a.createElement(e.Provider,{value:this.state},this.props.children)},t}(o.Component);d.propTypes={store:u.a.shape({subscribe:u.a.func.isRequired,dispatch:u.a.func.isRequired,getState:u.a.func.isRequired}),context:u.a.object,children:u.a.any};var h=d;function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var n,r,i={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}var g=n(110),v=n.n(g),b=n(14),y=n.n(b),w=n(60);function _(e,t){void 0===t&&(t={});var n=t,r=n.getDisplayName,i=void 0===r?function(e){return"ConnectAdvanced("+e+")"}:r,a=n.methodName,l=void 0===a?"connectAdvanced":a,u=n.renderCountProp,d=void 0===u?void 0:u,h=n.shouldHandleStateChanges,g=void 0===h||h,b=n.storeKey,_=void 0===b?"store":b,k=n.withRef,E=void 0!==k&&k,C=n.forwardRef,S=void 0!==C&&C,M=n.context,x=void 0===M?p:M,A=m(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);y()(void 0===d,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),y()(!E,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var j="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";y()("store"===_,"storeKey has been removed and does not do anything. "+j);var O=x;return function(t){var n=t.displayName||t.name||"Component",r=i(n),a=f({},A,{getDisplayName:i,methodName:l,renderCountProp:d,shouldHandleStateChanges:g,storeKey:_,displayName:r,wrappedComponentName:n,WrappedComponent:t}),u=A.pure,p=o.Component;u&&(p=o.PureComponent);var h=function(n){function i(t){var r,i,a,o,c,l,p,d,h,m,g;return r=n.call(this,t)||this,y()(S?!t.wrapperProps[_]:!t[_],"Passing redux store in props has been removed and does not do anything. "+j),r.selectDerivedProps=function(t,n,r,s){if(u&&i===n&&a===t)return o;r===c&&l===s||(c=r,l=s,p=e(r.dispatch,s)),i=n,a=t;var d=p(t,n);return o=d},r.selectChildElement=function(e,t,n){return t===d&&n===h&&g===e||(d=t,h=n,g=e,m=s.a.createElement(e,f({},t,{ref:n}))),m},r.indirectRenderWrappedComponent=r.indirectRenderWrappedComponent.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)),r}c(i,n);var o=i.prototype;return o.indirectRenderWrappedComponent=function(e){return this.renderWrappedComponent(e)},o.renderWrappedComponent=function(e){y()(e,'Could not find "store" in the context of "'+r+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+r+" in connect options.");var n,i=e.storeState,o=e.store,s=this.props;S&&(s=this.props.wrapperProps,n=this.props.forwardedRef);var c=this.selectDerivedProps(i,s,o,a);return this.selectChildElement(t,c,n)},o.render=function(){var e=this.props.context&&this.props.context.Consumer&&Object(w.isContextConsumer)(s.a.createElement(this.props.context.Consumer,null))?this.props.context:O;return s.a.createElement(e.Consumer,null,this.indirectRenderWrappedComponent)},i}(p);if(h.WrappedComponent=t,h.displayName=r,S){var m=s.a.forwardRef((function(e,t){return s.a.createElement(h,{wrapperProps:e,forwardedRef:t})}));return m.displayName=r,m.WrappedComponent=t,v()(m,t)}return v()(h,t)}}var k=Object.prototype.hasOwnProperty;function E(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function C(e,t){if(E(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!k.call(t,n[i])||!E(e[n[i]],t[n[i]]))return!1;return!0}var S=n(111),M=function(){return Math.random().toString(36).substring(7).split("").join(".")},x={INIT:"@@redux/INIT"+M(),REPLACE:"@@redux/REPLACE"+M(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+M()}};function A(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function j(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(j)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var i=e,a=t,o=[],s=o,c=!1;function l(){s===o&&(s=o.slice())}function u(){if(c)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(c)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return l(),s.push(e),function(){if(t){if(c)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,l();var n=s.indexOf(e);s.splice(n,1)}}}function d(e){if(!A(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(c)throw new Error("Reducers may not dispatch actions.");try{c=!0,a=i(a,e)}finally{c=!1}for(var t=o=s,n=0;n<t.length;n++){(0,t[n])()}return e}function h(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");i=e,d({type:x.REPLACE})}function f(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(u())}return n(),{unsubscribe:t(n)}}})[S.a]=function(){return this},e}return d({type:x.INIT}),(r={dispatch:d,subscribe:p,getState:u,replaceReducer:h})[S.a]=f,r}function O(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function N(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];0,"function"==typeof e[i]&&(n[i]=e[i])}var a,o=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:x.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:x.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+x.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(s){a=s}return function(e,t){if(void 0===e&&(e={}),a)throw a;for(var r=!1,i={},s=0;s<o.length;s++){var c=o[s],l=n[c],u=e[c],p=l(u,t);if(void 0===p){var d=O(c,t);throw new Error(d)}i[c]=p,r=r||p!==u}return r?i:e}}function T(e,t){return function(){return t(e.apply(this,arguments))}}function P(e,t){if("function"==typeof e)return T(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var i=e[r];"function"==typeof i&&(n[r]=T(i,t))}return n}function I(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function R(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?D(n,!0).forEach((function(t){I(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function U(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function F(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},i={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(i)}));return R({},n,{dispatch:r=U.apply(void 0,a)(n.dispatch)})}}}function L(e){return function(t,n){var r=e(t,n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function z(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function B(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=z(e);var i=r(t,n);return"function"==typeof i&&(r.mapToProps=i,r.dependsOnOwnProps=z(i),i=r(t,n)),i},r}}var V=[function(e){return"function"==typeof e?B(e):void 0},function(e){return e?void 0:L((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?L((function(t){return P(e,t)})):void 0}];var H=[function(e){return"function"==typeof e?B(e):void 0},function(e){return e?void 0:L((function(){return{}}))}];function q(e,t,n){return f({},n,e,t)}var K=[function(e){return"function"==typeof e?function(e){return function(t,n){n.displayName;var r,i=n.pure,a=n.areMergedPropsEqual,o=!1;return function(t,n,s){var c=e(t,n,s);return o?i&&a(c,r)||(r=c):(o=!0,r=c),r}}}(e):void 0},function(e){return e?void 0:function(){return q}}];function J(e,t,n,r){return function(i,a){return n(e(i,a),t(r,a),a)}}function W(e,t,n,r,i){var a,o,s,c,l,u=i.areStatesEqual,p=i.areOwnPropsEqual,d=i.areStatePropsEqual,h=!1;function f(i,h){var f,m,g=!p(h,o),v=!u(i,a);return a=i,o=h,g&&v?(s=e(a,o),t.dependsOnOwnProps&&(c=t(r,o)),l=n(s,c,o)):g?(e.dependsOnOwnProps&&(s=e(a,o)),t.dependsOnOwnProps&&(c=t(r,o)),l=n(s,c,o)):v?(f=e(a,o),m=!d(f,s),s=f,m&&(l=n(s,c,o)),l):l}return function(i,u){return h?f(i,u):(s=e(a=i,o=u),c=t(r,o),l=n(s,c,o),h=!0,l)}}function G(e,t){var n=t.initMapStateToProps,r=t.initMapDispatchToProps,i=t.initMergeProps,a=m(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),o=n(e,a),s=r(e,a),c=i(e,a);return(a.pure?W:J)(o,s,c,e,a)}function Y(e,t,n){for(var r=t.length-1;r>=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function $(e,t){return e===t}var X,Q,Z,ee,te,ne,re,ie,ae,oe,se,ce,le=(Z=(Q=void 0===X?{}:X).connectHOC,ee=void 0===Z?_:Z,te=Q.mapStateToPropsFactories,ne=void 0===te?H:te,re=Q.mapDispatchToPropsFactories,ie=void 0===re?V:re,ae=Q.mergePropsFactories,oe=void 0===ae?K:ae,se=Q.selectorFactory,ce=void 0===se?G:se,function(e,t,n,r){void 0===r&&(r={});var i=r,a=i.pure,o=void 0===a||a,s=i.areStatesEqual,c=void 0===s?$:s,l=i.areOwnPropsEqual,u=void 0===l?C:l,p=i.areStatePropsEqual,d=void 0===p?C:p,h=i.areMergedPropsEqual,g=void 0===h?C:h,v=m(i,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),b=Y(e,ne,"mapStateToProps"),y=Y(t,ie,"mapDispatchToProps"),w=Y(n,oe,"mergeProps");return ee(ce,f({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:b,initMapDispatchToProps:y,initMergeProps:w,pure:o,areStatesEqual:c,areOwnPropsEqual:u,areStatePropsEqual:d,areMergedPropsEqual:g},v))}),ue=n(15),pe=n.n(ue);n(27);function de(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var he=Object.create(null);function fe(e){return he[e]||(he[e]=function(e){for(var t="",n=[],r=[],i=void 0,a=0,o=/:([a-zA-Z_$][a-zA-Z0-9_$]*)|\*\*|\*|\(|\)|\\\(|\\\)/g;i=o.exec(e);)i.index!==a&&(r.push(e.slice(a,i.index)),t+=de(e.slice(a,i.index))),i[1]?(t+="([^/]+)",n.push(i[1])):"**"===i[0]?(t+="(.*)",n.push("splat")):"*"===i[0]?(t+="(.*?)",n.push("splat")):"("===i[0]?t+="(?:":")"===i[0]?t+=")?":"\\("===i[0]?t+="\\(":"\\)"===i[0]&&(t+="\\)"),r.push(i[0]),a=o.lastIndex;return a!==e.length&&(r.push(e.slice(a,e.length)),t+=de(e.slice(a,e.length))),{pattern:e,regexpSource:t,paramNames:n,tokens:r}}(e)),he[e]}function me(e,t){"/"!==e.charAt(0)&&(e="/"+e);var n=fe(e),r=n.regexpSource,i=n.paramNames,a=n.tokens;"/"!==e.charAt(e.length-1)&&(r+="/?"),"*"===a[a.length-1]&&(r+="$");var o=t.match(new RegExp("^"+r,"i"));if(null==o)return null;var s=o[0],c=t.substr(s.length);if(c){if("/"!==s.charAt(s.length-1))return null;c="/"+c}return{remainingPathname:c,paramNames:i,paramValues:o.slice(1).map((function(e){return e&&decodeURIComponent(e)}))}}function ge(e){return fe(e).paramNames}function ve(e,t){t=t||{};for(var n=fe(e).tokens,r=0,i="",a=0,o=[],s=void 0,c=void 0,l=0,u=n.length;l<u;++l)if("*"===(s=n[l])||"**"===s)null!=(c=Array.isArray(t.splat)?t.splat[a++]:t.splat)||r>0||y()(!1),null!=c&&(i+=encodeURI(c));else if("("===s)o[r]="",r+=1;else if(")"===s){var p=o.pop();(r-=1)?o[r-1]+=p:i+=p}else if("\\("===s)i+="(";else if("\\)"===s)i+=")";else if(":"===s.charAt(0))if(null!=(c=t[s.substring(1)])||r>0||y()(!1),null==c){if(r){o[r-1]="";for(var d=n.indexOf(s),h=n.slice(d,n.length),f=-1,m=0;m<h.length;m++)if(")"==h[m]){f=m;break}f>0||y()(!1),l=d+f-1}}else r?o[r-1]+=encodeURIComponent(c):i+=encodeURIComponent(c);else r?o[r-1]+=s:i+=s;return r<=0||y()(!1),i.replace(/\/+/g,"/")}var be=function(e,t){var n=e&&e.routes,r=t.routes,i=void 0,a=void 0,o=void 0;if(n){var s=!1;(i=n.filter((function(n){if(s)return!0;var i=-1===r.indexOf(n)||function(e,t,n){return!!e.path&&ge(e.path).some((function(e){return t.params[e]!==n.params[e]}))}(n,e,t);return i&&(s=!0),i}))).reverse(),o=[],a=[],r.forEach((function(e){var t=-1===n.indexOf(e),r=-1!==i.indexOf(e);t||r?o.push(e):a.push(e)}))}else i=[],a=[],o=r;return{leaveRoutes:i,changeRoutes:a,enterRoutes:o}};function ye(e,t,n){var r=0,i=!1,a=!1,o=!1,s=void 0;function c(){i=!0,a?s=[].concat(Array.prototype.slice.call(arguments)):n.apply(this,arguments)}!function l(){if(!i&&(o=!0,!a)){for(a=!0;!i&&r<e&&o;)o=!1,t.call(this,r++,l,c);a=!1,i?n.apply(this,s):r>=e&&o&&(i=!0,n())}}()}function we(e,t,n){var r=e.length,i=[];if(0===r)return n(null,i);var a=!1,o=0;e.forEach((function(e,s){t(e,s,(function(e,t){!function(e,t,s){a||(t?(a=!0,n(t)):(i[e]=s,(a=++o===r)&&n(null,i)))}(s,e,t)}))}))}var _e=function e(){var t=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.hooks=[],this.add=function(e){return t.hooks.push(e)},this.remove=function(e){return t.hooks=t.hooks.filter((function(t){return t!==e}))},this.has=function(e){return-1!==t.hooks.indexOf(e)},this.clear=function(){return t.hooks=[]}};function ke(){var e=new _e,t=new _e;function n(e,t,n,r){var i=e.length<n,a=function(){for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];if(e.apply(t,r),i){var o=r[r.length-1];o()}};return r.add(a),a}function r(e,t,n){if(e){var r=void 0;ye(e,(function(e,n,a){t(e,i,(function(e){e||r?a(e,r):n()}))}),n)}else n();function i(e){r=e}}return{runEnterHooks:function(t,i,a){e.clear();var o=function(t){return t.reduce((function(t,r){return r.onEnter&&t.push(n(r.onEnter,r,3,e)),t}),[])}(t);return r(o.length,(function(t,n,r){o[t](i,n,(function(){e.has(o[t])&&(r.apply(void 0,arguments),e.remove(o[t]))}))}),a)},runChangeHooks:function(e,i,a,o){t.clear();var s=function(e){return e.reduce((function(e,r){return r.onChange&&e.push(n(r.onChange,r,4,t)),e}),[])}(e);return r(s.length,(function(e,n,r){s[e](i,a,n,(function(){t.has(s[e])&&(r.apply(void 0,arguments),t.remove(s[e]))}))}),o)},runLeaveHooks:function(e,t){for(var n=0,r=e.length;n<r;++n)e[n].onLeave&&e[n].onLeave.call(e[n],t)}}}var Ee="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};function Ce(e,t){return null==t?null==e:null==e||function e(t,n){if(t==n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"===(void 0===t?"undefined":Ee(t))){for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r))if(void 0===t[r]){if(void 0!==n[r])return!1}else{if(!Object.prototype.hasOwnProperty.call(n,r))return!1;if(!e(t[r],n[r]))return!1}return!0}return String(t)===String(n)}(e,t)}function Se(e,t,n,r,i){var a=e.pathname,o=e.query;return null!=n&&("/"!==a.charAt(0)&&(a="/"+a),!!(function(e,t){return"/"!==t.charAt(0)&&(t="/"+t),"/"!==e.charAt(e.length-1)&&(e+="/"),"/"!==t.charAt(t.length-1)&&(t+="/"),t===e}(a,n.pathname)||!t&&function(e,t,n){for(var r=e,i=[],a=[],o=0,s=t.length;o<s;++o){var c=t[o].path||"";if("/"===c.charAt(0)&&(r=e,i=[],a=[]),null!==r&&c){var l=me(c,r);if(l?(r=l.remainingPathname,i=[].concat(i,l.paramNames),a=[].concat(a,l.paramValues)):r=null,""===r)return i.every((function(e,t){return String(a[t])===String(n[e])}))}}return!1}(a,r,i))&&Ce(o,n.query))}function Me(e){return e&&"function"==typeof e.then}var xe=function(e,t){we(e.routes,(function(t,n,r){!function(e,t,n){if(t.component||t.components)n(null,t.component||t.components);else{var r=t.getComponent||t.getComponents;if(r){var i=r.call(t,e,n);Me(i)&&i.then((function(e){return n(null,e)}),n)}else n()}}(e,t,r)}),t)},Ae=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function je(e){return null==e||s.a.isValidElement(e)}function Oe(e){return je(e)||Array.isArray(e)&&e.every(je)}function Ne(e){var t,n,r=e.type,i=(t=r.defaultProps,n=e.props,Ae({},t,n));if(i.children){var a=Te(i.children,i);a.length&&(i.childRoutes=a),delete i.children}return i}function Te(e,t){var n=[];return s.a.Children.forEach(e,(function(e){if(s.a.isValidElement(e))if(e.type.createRouteFromReactElement){var r=e.type.createRouteFromReactElement(e,t);r&&n.push(r)}else n.push(Ne(e))})),n}function Pe(e){return Oe(e)?e=Te(e):e&&!Array.isArray(e)&&(e=[e]),e}var Ie=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function De(e,t,n,r,i){if(e.childRoutes)return[null,e.childRoutes];if(!e.getChildRoutes)return[];var a=!0,o=void 0,s={location:t,params:Re(n,r)},c=e.getChildRoutes(s,(function(e,t){t=!e&&Pe(t),a?o=[e,t]:i(e,t)}));return Me(c)&&c.then((function(e){return i(null,Pe(e))}),i),a=!1,o}function Re(e,t){return function(e,t,n){return t.reduce((function(e,t,r){var i=n&&n[r];return Array.isArray(e[t])?e[t].push(i):e[t]=t in e?[e[t],i]:i,e}),e)}({},e,t)}function Ue(e,t,n,r,i,a){var o=e.path||"";if("/"===o.charAt(0)&&(n=t.pathname,r=[],i=[]),null!==n&&o){try{var s=me(o,n);s?(n=s.remainingPathname,r=[].concat(r,s.paramNames),i=[].concat(i,s.paramValues)):n=null}catch(p){a(p)}if(""===n){var c={routes:[e],params:Re(r,i)};return void function e(t,n,r,i,a){if(t.indexRoute)a(null,t.indexRoute);else if(t.getIndexRoute){var o={location:n,params:Re(r,i)},s=t.getIndexRoute(o,(function(e,t){a(e,!e&&Pe(t)[0])}));Me(s)&&s.then((function(e){return a(null,Pe(e)[0])}),a)}else if(t.childRoutes||t.getChildRoutes){var c=function(t,o){if(t)a(t);else{var s=o.filter((function(e){return!e.path}));ye(s.length,(function(t,a,o){e(s[t],n,r,i,(function(e,n){if(e||n){var r=[s[t]].concat(Array.isArray(n)?n:[n]);o(e,r)}else a()}))}),(function(e,t){a(null,t)}))}},l=De(t,n,r,i,c);l&&c.apply(void 0,l)}else a()}(e,t,r,i,(function(e,t){if(e)a(e);else{var n;if(Array.isArray(t))(n=c.routes).push.apply(n,t);else t&&c.routes.push(t);a(null,c)}}))}}if(null!=n||e.childRoutes){var l=function(o,s){o?a(o):s?Fe(s,t,(function(t,n){t?a(t):n?(n.routes.unshift(e),a(null,n)):a()}),n,r,i):a()},u=De(e,t,r,i,l);u&&l.apply(void 0,u)}else a()}function Fe(e,t,n,r){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:[],a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[];void 0===r&&("/"!==t.pathname.charAt(0)&&(t=Ie({},t,{pathname:"/"+t.pathname})),r=t.pathname),ye(e.length,(function(n,o,s){Ue(e[n],t,r,i,a,(function(e,t){e||t?s(e,t):o()}))}),n)}var Le=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function ze(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!0;return!1}function Be(e,t){var n={},r=ke(),i=r.runEnterHooks,a=r.runChangeHooks,o=r.runLeaveHooks;var s=void 0;function c(e,n){s&&s.location===e?l(s,n):Fe(t,e,(function(t,r){t?n(t):r?l(Le({},r,{location:e}),n):n()}))}function l(e,t){var r=be(n,e),s=r.leaveRoutes,c=r.changeRoutes,l=r.enterRoutes;function u(r,i){if(r||i)return p(r,i);xe(e,(function(r,i){r?t(r):t(null,null,n=Le({},e,{components:i}))}))}function p(e,n){e?t(e):t(null,n)}o(s,n),s.filter((function(e){return-1===l.indexOf(e)})).forEach(b),a(c,n,e,(function(t,n){if(t||n)return p(t,n);i(l,e,u)}))}var u=1;function p(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.__id__||t&&(e.__id__=u++)}var d=Object.create(null);function h(e){return e.map((function(e){return d[p(e)]})).filter((function(e){return e}))}function f(e,r){Fe(t,e,(function(t,i){if(null!=i){s=Le({},i,{location:e});for(var a=h(be(n,s).leaveRoutes),o=void 0,c=0,l=a.length;null==o&&c<l;++c)o=a[c](e);r(o)}else r()}))}function m(){if(n.routes){for(var e=h(n.routes),t=void 0,r=0,i=e.length;"string"!=typeof t&&r<i;++r)t=e[r]();return t}}var g=void 0,v=void 0;function b(e){var t=p(e);t&&(delete d[t],ze(d)||(g&&(g(),g=null),v&&(v(),v=null)))}return{isActive:function(t,r){return Se(t=e.createLocation(t),r,n.location,n.routes,n.params)},match:c,listenBeforeLeavingRoute:function(t,n){var r=!ze(d),i=p(t,!0);return d[i]=n,r&&(g=e.listenBefore(f),e.listenBeforeUnload&&(v=e.listenBeforeUnload(m))),function(){b(t)}},listen:function(t){function r(r){n.location===r?t(null,n):c(r,(function(n,r,i){n?t(n):r?e.replace(r):i&&t(null,i)}))}var i=e.listen(r);return n.location?t(null,n):r(e.getCurrentLocation()),i}}}function Ve(e,t,n){if(e[t])return new Error("<"+n+'> should not have a "'+t+'" prop')}Object(l.shape)({listen:l.func.isRequired,push:l.func.isRequired,replace:l.func.isRequired,go:l.func.isRequired,goBack:l.func.isRequired,goForward:l.func.isRequired});var He=l.elementType,qe=Object(l.oneOfType)([He,l.object]),Ke=Object(l.oneOfType)([l.object,l.element]),Je=Object(l.oneOfType)([Ke,Object(l.arrayOf)(Ke)]);var We=function(e,t){var n={};return e.path?(ge(e.path).forEach((function(e){Object.prototype.hasOwnProperty.call(t,e)&&(n[e]=t[e])})),n):n},Ge=u.a.shape({subscribe:u.a.func.isRequired,eventIndex:u.a.number.isRequired});function Ye(e){return"@@contextSubscriber/"+e}var $e=parseFloat(s.a.version)>=16.3;function Xe(e){var t,n,r=Ye(e),i=r+"/lastRenderedEventIndex",a=r+"/handleContextUpdate",o=r+"/unsubscribe",s=((n={contextTypes:(t={},t[r]=Ge,t),getInitialState:function(){var e;return this.context[r]?((e={})[i]=this.context[r].eventIndex,e):{}},componentDidMount:function(){this.context[r]&&(this[o]=this.context[r].subscribe(this[a]))},componentWillReceiveProps:function(){var e;this.context[r]&&this.setState(((e={})[i]=this.context[r].eventIndex,e))},componentWillUnmount:function(){this[o]&&(this[o](),this[o]=null)}})[a]=function(e){var t;e!==this.state[i]&&this.setState(((t={})[i]=e,t))},n);return $e&&(s.UNSAFE_componentWillReceiveProps=s.componentWillReceiveProps,delete s.componentWillReceiveProps),s}var Qe=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ze="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},et=pe()({displayName:"RouterContext",mixins:[function(e){var t,n,r=Ye(e),i=r+"/listeners",a=r+"/eventIndex",o=r+"/subscribe",s=((n={childContextTypes:(t={},t[r]=Ge.isRequired,t),getChildContext:function(){var e;return(e={})[r]={eventIndex:this[a],subscribe:this[o]},e},componentWillMount:function(){this[i]=[],this[a]=0},componentWillReceiveProps:function(){this[a]++},componentDidUpdate:function(){var e=this;this[i].forEach((function(t){return t(e[a])}))}})[o]=function(e){var t=this;return this[i].push(e),function(){t[i]=t[i].filter((function(t){return t!==e}))}},n);return $e&&(s.UNSAFE_componentWillMount=s.componentWillMount,s.UNSAFE_componentWillReceiveProps=s.componentWillReceiveProps,delete s.componentWillMount,delete s.componentWillReceiveProps),s}("router")],propTypes:{router:l.object.isRequired,location:l.object.isRequired,routes:l.array.isRequired,params:l.object.isRequired,components:l.array.isRequired,createElement:l.func.isRequired},getDefaultProps:function(){return{createElement:s.a.createElement}},childContextTypes:{router:l.object.isRequired},getChildContext:function(){return{router:this.props.router}},createElement:function(e,t){return null==e?null:this.props.createElement(e,t)},render:function(){var e=this,t=this.props,n=t.location,r=t.routes,i=t.params,a=t.components,o=t.router,c=null;return a&&(c=a.reduceRight((function(t,a,s){if(null==a)return t;var c=r[s],l=We(c,i),u={location:n,params:i,route:c,router:o,routeParams:l,routes:r};if(Oe(t))u.children=t;else if(t)for(var p in t)Object.prototype.hasOwnProperty.call(t,p)&&(u[p]=t[p]);if("object"===(void 0===a?"undefined":Ze(a))&&!Object(w.isValidElementType)(a)){var d={};for(var h in a)Object.prototype.hasOwnProperty.call(a,h)&&(d[h]=e.createElement(a[h],Qe({key:h},u)));return d}return e.createElement(a,u)}),c)),null===c||!1===c||s.a.isValidElement(c)||y()(!1),c}}),tt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function nt(e,t,n){return rt(tt({},e,{setRouteLeaveHook:t.listenBeforeLeavingRoute,isActive:t.isActive}),n)}function rt(e,t){var n=t.location,r=t.params,i=t.routes;return e.location=n,e.params=r,e.routes=i,e}var it=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};var at={history:l.object,children:Je,routes:Je,render:l.func,createElement:l.func,onError:l.func,onUpdate:l.func,matchContext:l.object},ot=parseFloat(s.a.version)>=16.3,st=pe()({displayName:"Router",propTypes:at,getDefaultProps:function(){return{render:function(e){return s.a.createElement(et,e)}}},getInitialState:function(){return{location:null,routes:null,params:null,components:null}},handleError:function(e){if(!this.props.onError)throw e;this.props.onError.call(this,e)},createRouterObject:function(e){var t=this.props.matchContext;return t?t.router:nt(this.props.history,this.transitionManager,e)},createTransitionManager:function(){var e=this.props.matchContext;if(e)return e.transitionManager;var t=this.props.history,n=this.props,r=n.routes,i=n.children;return t.getCurrentLocation||y()(!1),Be(t,Pe(r||i))},componentWillMount:function(){var e=this;this.transitionManager=this.createTransitionManager(),this.router=this.createRouterObject(this.state),this._unlisten=this.transitionManager.listen((function(t,n){t?e.handleError(t):(rt(e.router,n),e.setState(n,e.props.onUpdate))}))},componentWillReceiveProps:function(e){},componentWillUnmount:function(){this._unlisten&&this._unlisten()},render:function(){var e=this.state,t=e.location,n=e.routes,r=e.params,i=e.components,a=this.props,o=a.createElement,s=a.render,c=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(a,["createElement","render"]);return null==t?null:(Object.keys(at).forEach((function(e){return delete c[e]})),s(it({},c,{router:this.router,location:t,routes:n,params:r,components:i,createElement:o})))}});ot&&(st.prototype.UNSAFE_componentWillReceiveProps=st.prototype.componentWillReceiveProps,st.prototype.UNSAFE_componentWillMount=st.prototype.componentWillMount,delete st.prototype.componentWillReceiveProps,delete st.prototype.componentWillMount);var ct=st,lt=Object(l.shape)({push:l.func.isRequired,replace:l.func.isRequired,go:l.func.isRequired,goBack:l.func.isRequired,goForward:l.func.isRequired,setRouteLeaveHook:l.func.isRequired,isActive:l.func.isRequired}),ut=(Object(l.shape)({pathname:l.string.isRequired,search:l.string.isRequired,state:l.object,action:l.string.isRequired,key:l.string}),Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e});function pt(e,t){return"function"==typeof e?e(t.location):e}var dt=pe()({displayName:"Link",mixins:[Xe("router")],contextTypes:{router:lt},propTypes:{to:Object(l.oneOfType)([l.string,l.object,l.func]),activeStyle:l.object,activeClassName:l.string,onlyActiveOnIndex:l.bool.isRequired,onClick:l.func,target:l.string,innerRef:Object(l.oneOfType)([l.string,l.func])},getDefaultProps:function(){return{onlyActiveOnIndex:!1,style:{}}},handleClick:function(e){if(this.props.onClick&&this.props.onClick(e),!e.defaultPrevented){var t=this.context.router;t||y()(!1),!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)&&function(e){return 0===e.button}(e)&&(this.props.target||(e.preventDefault(),t.push(pt(this.props.to,t))))}},render:function(){var e=this.props,t=e.to,n=e.activeClassName,r=e.activeStyle,i=e.onlyActiveOnIndex,a=e.innerRef,o=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}(e,["to","activeClassName","activeStyle","onlyActiveOnIndex","innerRef"]),c=this.context.router;if(c){if(!t)return s.a.createElement("a",ut({},o,{ref:a}));var l=pt(t,c);o.href=c.createHref(l),(n||null!=r&&!function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}(r))&&c.isActive(l,i)&&(n&&(o.className?o.className+=" "+n:o.className=n),r&&(o.style=ut({},o.style,r)))}return s.a.createElement("a",ut({},o,{onClick:this.handleClick,ref:a}))}}),ht=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ft=(pe()({displayName:"IndexLink",render:function(){return s.a.createElement(dt,ht({},this.props,{onlyActiveOnIndex:!0}))}}),n(174)),mt=n.n(ft),gt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};function vt(e,t){var n=t&&t.withRef,r=pe()({displayName:"WithRouter",mixins:[Xe("router")],contextTypes:{router:lt},propTypes:{router:lt},getWrappedInstance:function(){return n||y()(!1),this.wrappedInstance},render:function(){var t=this,r=this.props.router||this.context.router;if(!r)return s.a.createElement(e,this.props);var i=r.params,a=r.location,o=r.routes,c=gt({},this.props,{router:r,params:i,location:a,routes:o});return n&&(c.ref=function(e){t.wrappedInstance=e}),s.a.createElement(e,c)}});return r.displayName="withRouter("+function(e){return e.displayName||e.name||"Component"}(e)+")",r.WrappedComponent=e,mt()(r,e)}var bt=pe()({displayName:"Redirect",statics:{createRouteFromReactElement:function(e){var t=Ne(e);return t.from&&(t.path=t.from),t.onEnter=function(e,n){var r=e.location,i=e.params,a=void 0;if("/"===t.to.charAt(0))a=ve(t.to,i);else if(t.to){var o=e.routes.indexOf(t);a=ve(bt.getRoutePattern(e.routes,o-1).replace(/\/*$/,"/")+t.to,i)}else a=r.pathname;n({pathname:a,query:t.query||r.query,state:t.state||r.state})},t},getRoutePattern:function(e,t){for(var n="",r=t;r>=0;r--){var i=e[r].path||"";if(n=i.replace(/\/*$/,"/")+n,0===i.indexOf("/"))break}return"/"+n}},propTypes:{path:l.string,from:l.string,to:l.string.isRequired,query:l.object,state:l.object,onEnter:Ve,children:Ve},render:function(){y()(!1)}}),yt=bt,wt=(pe()({displayName:"IndexRedirect",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=yt.createRouteFromReactElement(e))}},propTypes:{to:l.string.isRequired,query:l.object,state:l.object,onEnter:Ve,children:Ve},render:function(){y()(!1)}}),pe()({displayName:"IndexRoute",statics:{createRouteFromReactElement:function(e,t){t&&(t.indexRoute=Ne(e))}},propTypes:{path:Ve,component:He,components:qe,getComponent:l.func,getComponents:l.func},render:function(){y()(!1)}}),pe()({displayName:"Route",statics:{createRouteFromReactElement:Ne},propTypes:{path:l.string,component:He,components:qe,getComponent:l.func,getComponents:l.func},render:function(){y()(!1)}})),_t=(n(43),n(61)),kt=n.n(_t),Et=n(62),Ct=n.n(Et);n(107);Object.assign;function St(e){return function(t){return kt()(Ct()(e))(t)}}Object.assign;var Mt=n(108),xt=n.n(Mt),At=!("undefined"==typeof window||!window.document||!window.document.createElement);function jt(e){var t=void 0;return At&&(t=St(e)()),t}jt(xt.a);var Ot=n(109),Nt=jt(n.n(Ot).a),Tt=n(44),Pt=n(74),It=n(3),Dt=[9,32,37,38,39,40],Rt=!1;var Ut=function(){document.addEventListener("keydown",(function(e){Rt||-1!==Dt.indexOf(e.keyCode)&&(Rt=!0,document.documentElement.classList.add("dops-accessible-focus"))})),document.addEventListener("mouseup",(function(){Rt&&(Rt=!1,document.documentElement.classList.remove("dops-accessible-focus"))}))};function Ft(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var Lt=Ft();Lt.withExtraArgument=Ft;var zt=Lt,Bt=n(45),Vt=n.n(Bt);function Ht(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"NEW_NOTICE":return[t.notice].concat(Vt()(e));case"REMOVE_NOTICE":return e.filter((function(e){return e.noticeId!==t.noticeId}))}return e}N({globalNotices:Ht});var qt="JETPACK_SET_INITIAL_STATE",Kt="CONNECT_URL_FETCH",Jt="CONNECT_URL_FETCH_FAIL",Wt="CONNECT_URL_FETCH_SUCCESS",Gt="DISCONNECT_SITE",Yt="DISCONNECT_SITE_FAIL",$t="DISCONNECT_SITE_SUCCESS",Xt="UNLINK_USER",Qt="UNLINK_USER_FAIL",Zt="UNLINK_USER_SUCCESS",en="USER_CONNECTION_DATA_FETCH",tn="USER_CONNECTION_DATA_FETCH_FAIL",nn="USER_CONNECTION_DATA_FETCH_SUCCESS",rn="USER_TRACKING_SETTINGS_FETCH",an="USER_TRACKING_SETTINGS_FETCH_FAIL",on="USER_TRACKING_SETTINGS_FETCH_SUCCESS",sn="USER_TRACKING_SETTINGS_UPDATE",cn="USER_TRACKING_SETTINGS_UPDATE_FAIL",ln="USER_TRACKING_SETTINGS_UPDATE_SUCCESS",un="JETPACK_MODULES_LIST_FETCH",pn="JETPACK_MODULES_LIST_FETCH_FAIL",dn="JETPACK_MODULES_LIST_RECEIVE",hn="JETPACK_MODULE_FETCH",fn="JETPACK_MODULE_FETCH_FAIL",mn="JETPACK_MODULE_RECEIVE",gn="JETPACK_MODULE_ACTIVATE",vn="JETPACK_MODULE_ACTIVATE_SUCCESS",bn="JETPACK_MODULE_ACTIVATE_FAIL",yn="JETPACK_MODULE_DEACTIVATE",wn="JETPACK_MODULE_DEACTIVATE_FAIL",_n="JETPACK_MODULE_DEACTIVATE_SUCCESS",kn="JETPACK_MODULE_UPDATE_OPTIONS",En="JETPACK_MODULE_UPDATE_OPTIONS_FAIL",Cn="JETPACK_MODULE_UPDATE_OPTIONS_SUCCESS",Sn="JETPACK_CONNECTION_STATUS_FETCH",Mn="JETPACK_CONNECTION_TEST_FETCH",xn="DASHBOARD_PROTECT_COUNT_FETCH",An="DASHBOARD_PROTECT_COUNT_FETCH_FAIL",jn="DASHBOARD_PROTECT_COUNT_FETCH_SUCCESS",On="RESET_OPTIONS",Nn="RESET_OPTIONS_FAIL",Tn="RESET_OPTIONS_SUCCESS",Pn="VAULTPRESS_SITE_DATA_FETCH",In="VAULTPRESS_SITE_DATA_FETCH_FAIL",Dn="VAULTPRESS_SITE_DATA_FETCH_SUCCESS",Rn="AKISMET_DATA_FETCH",Un="AKISMET_DATA_FETCH_FAIL",Fn="AKISMET_DATA_FETCH_SUCCESS",Ln="AKISMET_KEY_CHECK_FETCH",zn="AKISMET_KEY_CHECK_FETCH_FAIL",Bn="AKISMET_KEY_CHECK_FETCH_SUCCESS",Vn="PLUGIN_UPDATES_FETCH",Hn="PLUGIN_UPDATES_FETCH_FAIL",qn="PLUGIN_UPDATES_FETCH_SUCCESS",Kn="STATS_SWITCH_TAB",Jn="STATS_DATA_FETCH",Wn="STATS_DATA_FETCH_FAIL",Gn="STATS_DATA_FETCH_SUCCESS",Yn="JETPACK_PRODUCTS_FETCH",$n="JETPACK_PRODUCTS_FETCH_RECEIVE",Xn="JETPACK_PRODUCTS_FETCH_FAIL",Qn="JETPACK_SETTINGS_FETCH",Zn="JETPACK_SETTINGS_FETCH_RECEIVE",er="JETPACK_SETTINGS_FETCH_FAIL",tr="JETPACK_SETTING_UPDATE",nr="JETPACK_SETTING_UPDATE_SUCCESS",rr="JETPACK_SETTING_UPDATE_FAIL",ir="JETPACK_SETTINGS_UPDATE",ar="JETPACK_SETTINGS_UPDATE_FAIL",or="JETPACK_SETTINGS_UPDATE_SUCCESS",sr="JETPACK_SETTINGS_SET_UNSAVED_FLAG",cr="JETPACK_SETTINGS_CLEAR_UNSAVED_FLAG",lr="JETPACK_SITE_DATA_FETCH",ur="JETPACK_SITE_DATA_FETCH_RECEIVE",pr="JETPACK_SITE_DATA_FETCH_FAIL",dr="JETPACK_SITE_BENEFITS_FETCH",hr="JETPACK_SITE_BENEFITS_FETCH_RECEIVE",fr="JETPACK_SITE_BENEFITS_FETCH_FAIL",mr="JETPACK_SITE_FEATURES_FETCH",gr="JETPACK_SITE_FEATURES_FETCH_RECEIVE",vr="JETPACK_SITE_FEATURES_FETCH_FAIL",br="JETPACK_SITE_PLANS_FETCH",yr="JETPACK_SITE_PLANS_FETCH_RECEIVE",wr="JETPACK_SITE_PLANS_FETCH_FAIL",_r="JETPACK_SITE_PURCHASES_FETCH",kr="JETPACK_SITE_PURCHASES_FETCH_RECEIVE",Er="JETPACK_SITE_PURCHASES_FETCH_FAIL",Cr="JETPACK_ACTION_NOTICES_DISMISS",Sr="JETPACK_NOTICES_DISPATCH_TYPE",Mr="JETPACK_NOTICES_DISMISS",xr="JETPACK_NOTICES_DISMISS_FAIL",Ar="JETPACK_NOTICES_DISMISS_SUCCESS",jr="JETPACK_PLUGINS_DATA_FETCH",Or="JETPACK_PLUGINS_DATA_FETCH_RECEIVE",Nr="JETPACK_PLUGINS_DATA_FETCH_FAIL",Tr="JETPACK_SEARCH_TERM",Pr="JETPACK_SEARCH_FOCUS",Ir="JETPACK_SEARCH_BLUR",Dr="DEV_CARD_DISPLAY",Rr="DEV_CARD_HIDE",Ur="MOCK_SWITCH_USER_PERMISSIONS",Fr="MOCK_SWITCH_THREATS",Lr="REWIND_STATUS_FETCH",zr="REWIND_STATUS_FETCH_RECEIVE",Br="REWIND_STATUS_FETCH_FAIL",Vr="MOCK_SWITCH_REWIND_STATE",Hr="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH",qr="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_FAIL",Kr="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_SUCCESS",Jr="JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH",Wr="JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH_FAIL",Gr="JETPACK_SITE_VERIFY_GOOGLE_VERIFY_FETCH_SUCCESS",Yr="JETPACK_SITE_VERIFY_GOOGLE_REQUEST",$r="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_SUCCESS",Xr="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_FAIL",Qr="SITE_CHECKLIST_RECEIVE",Zr="SITE_CHECKLIST_REQUEST",ei="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL",ti="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_SUCCESS",ni="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL";function ri(e){return!!e.jetpack.initialState.isDevVersion}function ii(e){return Object(It.get)(e.jetpack.initialState,"currentVersion","")}function ai(e){return Object(It.get)(e.jetpack.initialState.stats,"data")}function oi(e){return Object(It.get)(e.jetpack.initialState,["userData","currentUser","wpcomUser","email"])}function si(e){return Object(It.get)(e.jetpack.initialState,"rawUrl",{})}function ci(e){return Object(It.get)(e.jetpack.initialState,"adminUrl",{})}function li(e){return Object(It.get)(e.jetpack.initialState,["connectionStatus","isPublic"])}function ui(e){return Object(It.get)(e.jetpack.initialState,"is_gutenberg_available",!1)}function pi(e){return!Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"edit_posts",!1)}function di(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"publish_posts",!1)}function hi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_modules",!1)}function fi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_options",!1)}function mi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"edit_posts",!1)}function gi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"disconnect",!1)}function vi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"connect",!1)}function bi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,"isMaster",!1)}function yi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,["wpcomUser","login"],"")}function wi(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,["wpcomUser","email"],"")}function _i(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,["wpcomUser","avatar"])}function ki(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,["username"])}function Ei(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser.permissions,"view_stats",!1)}function Ci(e){return Object(It.get)(e.jetpack.initialState.siteData,["icon"])}function Si(e){return Object(It.get)(e.jetpack.initialState.siteData,["siteVisibleToSearchEngines"],!0)}function Mi(e){return Object(It.get)(e.jetpack.initialState,"WP_API_nonce")}function xi(e){return Object(It.get)(e.jetpack.initialState,"WP_API_root")}function Ai(e){return Object(It.get)(e.jetpack.initialState,"tracksUserData")}function ji(e){return Object(It.get)(e.jetpack.initialState,"currentIp")}function Oi(e){return Object(It.get)(e.jetpack.initialState,"lastPostUrl")}function Ni(e){return Object(It.get)(e.jetpack.initialState.siteData,"showPromotions",!0)}function Ti(e){return Object(It.get)(e.jetpack.initialState.siteData,"isAtomicSite",!1)}function Pi(e,t){return Object(It.get)(e.jetpack.initialState.themeData,["support",t],!1)}function Ii(e){return Object(It.get)(e.jetpack.initialState.siteData,"showBackups",!0)}function Di(e){return Object(It.get)(e.jetpack.initialState.siteData,"isMultisite",!1)}function Ri(e){return Object(It.get)(e.jetpack.initialState,"aff","")}function Ui(e){return Object(It.get)(e.jetpack.initialState,"partnerSubsidiaryId","")}var Fi=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=Ri(e),i=Ui(e);return"https://jetpack.com/redirect/?source=".concat(t,"&site=").concat(si(e))+(r?"&aff=".concat(r):"")+(n?"&u=".concat(n):"")+(i?"&subsidiaryId=".concat(i):"")},Li=N({requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Jn:return Object(It.assign)({},e,{fetchingStatsData:!0});case Rn:return Object(It.assign)({},e,{fetchingAkismetData:!0});case Ln:return Object(It.assign)({},e,{checkingAkismetKey:!0});case Pn:return Object(It.assign)({},e,{fetchingVaultPressData:!0});case xn:return Object(It.assign)({},e,{fetchingProtectData:!0});case Vn:return Object(It.assign)({},e,{fetchingPluginUpdates:!0});case Wn:case Gn:return Object(It.assign)({},e,{fetchingStatsData:!1});case Un:case Fn:return Object(It.assign)({},e,{fetchingAkismetData:!1});case zn:case Bn:return Object(It.assign)({},e,{checkingAkismetKey:!1});case An:case jn:return Object(It.assign)({},e,{fetchingProtectData:!1});case Hn:case qn:return Object(It.assign)({},e,{fetchingPluginUpdates:!1});case In:case Dn:return Object(It.assign)({},e,{fetchingVaultPressData:!1});default:return e}},activeStatsTab:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"day",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Kn:return t.activeStatsTab;default:return e}},protectCount:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case jn:return t.protectCount;default:return e}},vaultPressData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Dn:return t.vaultPressData;case Fr:return Object(It.assign)({},"N/A"===e?{}:e,{data:{active:!0,features:{security:!0},security:{notice_count:t.mockCount}}});default:return e}},statsData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Gn:return Object(It.assign)({},e,t.statsData);default:return e}},akismetData:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Fn:return t.akismetData;default:return e}},akismet:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{validKey:null,invalidKeyCode:"",invalidKeyMessage:""},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Bn:return Object(It.assign)({},e,t.akismet);default:return e}},pluginUpdates:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qn:return t.pluginUpdates;default:return e}}});function zi(e){return e.jetpack.dashboard.activeStatsTab}function Bi(e){return!!e.jetpack.dashboard.requests.fetchingStatsData}function Vi(e){return e.jetpack.dashboard.statsData}function Hi(e){return!!e.jetpack.dashboard.requests.fetchingAkismetData}function qi(e){return e.jetpack.dashboard.akismetData}function Ki(e){return!!e.jetpack.dashboard.requests.checkingAkismetKey}function Ji(e){return Object(It.get)(e.jetpack.dashboard,["akismet","validKey"],!1)}function Wi(e){return!!e.jetpack.dashboard.requests.fetchingProtectData}function Gi(e){return e.jetpack.dashboard.protectCount}function Yi(e){return!!e.jetpack.dashboard.requests.fetchingVaultPressData}function $i(e){return e.jetpack.dashboard.vaultPressData}function Xi(e){return Object(It.get)(e.jetpack.dashboard.vaultPressData,"data.security.notice_count",0)}function Qi(e){return!!e.jetpack.dashboard.requests.fetchingPluginUpdates}function Zi(e){return e.jetpack.dashboard.pluginUpdates}var ea=N({checklist:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;return t.type===Qr?t.checklist:e},isLoading:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Zr:return!0;case Qr:return!1}return e}}),ta=n(2),na=n.n(ta),ra={isFetchingPluginsData:!1},ia=N({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Or:return Object(It.assign)({},t.pluginsData);default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ra,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case jr:return Object(It.assign)({},e,{isFetchingPluginsData:!0});case Nr:case Or:return Object(It.assign)({},e,{isFetchingPluginsData:!1});default:return e}}});function aa(e){return!!e.jetpack.pluginsData.requests.isFetchingPluginsData}function oa(e,t){return e.jetpack.pluginsData.items[t]&&e.jetpack.pluginsData.items[t].active}function sa(e,t){return!!e.jetpack.pluginsData.items[t]}var ca=n(6),la=n.n(ca),ua=n(7),pa=n.n(ua),da=n(5),ha=n.n(da),fa=n(8),ma=n.n(fa),ga=n(175),va=n.n(ga);function ba(e){return function(t){function n(){var t,r;la()(this,n);for(var i=arguments.length,a=new Array(i),o=0;o<i;o++)a[o]=arguments[o];return(r=pa()(this,(t=ha()(n)).call.apply(t,[this].concat(a)))).name=e,r}return ma()(n,t),n}(va()(Error))}var ya=ba("JsonParseError"),wa=ba("JsonParseAfterRedirectError"),_a=ba("Api404Error"),ka=ba("Api404AfterRedirectError"),Ea=ba("FetchNetworkError");var Ca=new function(e,t){var n=e,r={"X-WP-Nonce":t},i={credentials:"same-origin",headers:r},a={method:"post",credentials:"same-origin",headers:Object(It.assign)({},r,{"Content-type":"application/json"})},o={setApiRoot:function(e){n=e},setApiNonce:function(e){i={credentials:"same-origin",headers:r={"X-WP-Nonce":e}},a={method:"post",credentials:"same-origin",headers:Object(It.assign)({},r,{"Content-type":"application/json"})}},fetchSiteConnectionStatus:function(){return s("".concat(n,"jetpack/v4/connection"),i).then(Ma)},fetchSiteConnectionTest:function(){return s("".concat(n,"jetpack/v4/connection/test"),i).then(Sa).then(Ma)},fetchUserConnectionData:function(){return s("".concat(n,"jetpack/v4/connection/data"),i).then(Ma)},fetchUserTrackingSettings:function(){return s("".concat(n,"jetpack/v4/tracking/settings"),i).then(Sa).then(Ma)},updateUserTrackingSettings:function(e){return c("".concat(n,"jetpack/v4/tracking/settings"),a,{body:JSON.stringify(e)}).then(Sa).then(Ma)},disconnectSite:function(){return c("".concat(n,"jetpack/v4/connection"),a,{body:JSON.stringify({isActive:!1})}).then(Sa).then(Ma)},fetchConnectUrl:function(){return s("".concat(n,"jetpack/v4/connection/url"),i).then(Sa).then(Ma)},unlinkUser:function(){return c("".concat(n,"jetpack/v4/connection/user"),a,{body:JSON.stringify({linked:!1})}).then(Sa).then(Ma)},fetchModules:function(){return s("".concat(n,"jetpack/v4/module/all"),i).then(Sa).then(Ma)},fetchModule:function(e){return s("".concat(n,"jetpack/v4/module/").concat(e),i).then(Sa).then(Ma)},activateModule:function(e){return c("".concat(n,"jetpack/v4/module/").concat(e,"/active"),a,{body:JSON.stringify({active:!0})}).then(Sa).then(Ma)},deactivateModule:function(e){return c("".concat(n,"jetpack/v4/module/").concat(e,"/active"),a,{body:JSON.stringify({active:!1})})},updateModuleOptions:function(e,t){return c("".concat(n,"jetpack/v4/module/").concat(e),a,{body:JSON.stringify(t)}).then(Sa).then(Ma)},updateSettings:function(e){return c("".concat(n,"jetpack/v4/settings"),a,{body:JSON.stringify(e)}).then(Sa).then(Ma)},getProtectCount:function(){return s("".concat(n,"jetpack/v4/module/protect/data"),i).then(Sa).then(Ma)},resetOptions:function(e){return c("".concat(n,"jetpack/v4/options/").concat(e),a,{body:JSON.stringify({reset:!0})}).then(Sa).then(Ma)},getVaultPressData:function(){return s("".concat(n,"jetpack/v4/module/vaultpress/data"),i).then(Sa).then(Ma)},activateAkismet:function(){return c("".concat(n,"jetpack/v4/plugins/akismet/activate"),a).then(Sa).then(Ma)},getAkismetData:function(){return s("".concat(n,"jetpack/v4/module/akismet/data"),i).then(Sa).then(Ma)},checkAkismetKey:function(){return s("".concat(n,"jetpack/v4/module/akismet/key/check"),i).then(Sa).then(Ma)},checkAkismetKeyTyped:function(e){return c("".concat(n,"jetpack/v4/module/akismet/key/check"),a,{body:JSON.stringify({api_key:e})}).then(Sa).then(Ma)},fetchStatsData:function(e){return s(function(e){var t="".concat(n,"jetpack/v4/module/stats/data");-1!==t.indexOf("?")?t+="&range=".concat(encodeURIComponent(e)):t+="?range=".concat(encodeURIComponent(e));return t}(e),i).then(Sa).then(Ma).then(l)},getPluginUpdates:function(){return s("".concat(n,"jetpack/v4/updates/plugins"),i).then(Sa).then(Ma)},getPlans:function(){return s("".concat(n,"jetpack/v4/plans"),i).then(Sa).then(Ma)},fetchSettings:function(){return s("".concat(n,"jetpack/v4/settings"),i).then(Sa).then(Ma)},updateSetting:function(e){return c("".concat(n,"jetpack/v4/settings"),a,{body:JSON.stringify(e)}).then(Sa).then(Ma)},fetchSiteData:function(){return s("".concat(n,"jetpack/v4/site"),i).then(Sa).then(Ma).then((function(e){return JSON.parse(e.data)}))},fetchSiteFeatures:function(){return s("".concat(n,"jetpack/v4/site/features"),i).then(Sa).then(Ma).then((function(e){return JSON.parse(e.data)}))},fetchSitePurchases:function(){return s("".concat(n,"jetpack/v4/site/purchases"),i).then(Sa).then(Ma).then((function(e){return JSON.parse(e.data)}))},fetchSiteBenefits:function(){return s("".concat(n,"jetpack/v4/site/benefits"),i).then(Sa).then(Ma).then((function(e){return JSON.parse(e.data)}))},fetchProducts:function(){return s("".concat(n,"jetpack/v4/products"),i).then(Sa).then(Ma)},fetchRewindStatus:function(){return s("".concat(n,"jetpack/v4/rewind"),i).then(Sa).then(Ma).then((function(e){return JSON.parse(e.data)}))},dismissJetpackNotice:function(e){return c("".concat(n,"jetpack/v4/notice/").concat(e),a,{body:JSON.stringify({dismissed:!0})}).then(Sa).then(Ma)},fetchPluginsData:function(){return s("".concat(n,"jetpack/v4/plugins"),i).then(Sa).then(Ma)},fetchVerifySiteGoogleStatus:function(e){return s(null!==e?"".concat(n,"jetpack/v4/verify-site/google/").concat(e):"".concat(n,"jetpack/v4/verify-site/google"),i).then(Sa).then(Ma)},verifySiteGoogle:function(e){return c("".concat(n,"jetpack/v4/verify-site/google"),a,{body:JSON.stringify({keyring_id:e})}).then(Sa).then(Ma)},sendMobileLoginEmail:function(){return c("".concat(n,"jetpack/v4/mobile/send-login-email"),a).then(Sa).then(Ma)}};function s(e,t){return fetch(function(e){var t=e.split("?"),n=t.length>1?t[1]:"",r=n.length?n.split("&"):[];return r.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+r.join("&")}(e),t)}function c(e,t,n){return fetch(e,Object(It.assign)({},t,n)).catch(xa)}function l(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(It.assign)(this,o)};function Sa(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((function(){throw e.redirected?new ka(e.redirected):new _a})):e.json().then((function(t){var n=new Error("".concat(t.message," (Status ").concat(e.status,")"));throw n.response=t,n}))}function Ma(e){return e.json().catch((function(t){return function(e,t,n){throw t?new wa(n):new ya}(0,e.redirected,e.url)}))}function xa(){throw new Ea}var Aa=function(){return function(e){return e({type:jr}),Ca.fetchPluginsData().then((function(t){return e({type:Or,pluginsData:t}),t})).catch((function(t){e({type:Nr,error:t})}))}},ja={fetchingModulesList:!1,activating:{},deactivating:{},updatingOption:{}},Oa=N({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qt:return Object(It.assign)({},t.initialState.getModules);case dn:return Object(It.assign)({},e,t.modules);case vn:return Object(It.assign)({},e,na()({},t.module,Object(It.assign)({},e[t.module],{activated:!0})));case _n:return Object(It.assign)({},e,na()({},t.module,Object(It.assign)({},e[t.module],{activated:!1})));case Cn:var n=Object(It.assign)({},e[t.module]);return Object.keys(t.newOptionValues).forEach((function(e){n.options[e].current_value=t.newOptionValues[e]})),Object(It.assign)({},e,na()({},t.module,n));default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ja,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case un:return Object(It.assign)({},e,{fetchingModulesList:!0});case pn:case dn:return Object(It.assign)({},e,{fetchingModulesList:!1});case gn:return Object(It.assign)({},e,{activating:Object(It.assign)({},e.activating,na()({},t.module,!0))});case bn:case vn:return Object(It.assign)({},e,{activating:Object(It.assign)({},e.activating,na()({},t.module,!1))});case yn:return Object(It.assign)({},e,{deactivating:Object(It.assign)({},e.deactivating,na()({},t.module,!0))});case wn:case _n:return Object(It.assign)({},e,{deactivating:Object(It.assign)({},e.deactivating,na()({},t.module,!1))});case kn:var n=Object(It.assign)({},e.updatingOption);return n[t.module]=Object(It.assign)({},n[t.module]),Object.keys(t.newOptionValues).forEach((function(e){n[t.module][e]=!0})),Object(It.assign)({},e,{updatingOption:Object(It.assign)({},e.updatingOption,n)});case En:case Cn:var r=Object(It.assign)({},e.updatingOption);return r[t.module]=Object(It.assign)({},r[t.module]),Object.keys(t.newOptionValues).forEach((function(e){r[t.module][e]=!1})),Object(It.assign)({},e,{updatingOption:Object(It.assign)({},e.updatingOption,r)});default:return e}}});function Na(e,t,n){return Object(It.get)(e.jetpack.modules.items,[t,"options",n,"enum_labels"],!1)}function Ta(e){return e.jetpack.modules.items}function Pa(e,t){return Object(It.get)(e.jetpack.modules.items,t,{})}function Ia(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=Object.keys(Ta(e));return 0<Object(It.intersection)(n,t).length}function Da(e){return Ia(e,["carousel","lazy-images","photon","photon-cdn","search","videopress"])}function Ra(e){return Ia(e,["protect","sso","vaultpress"])||oa(e,"akismet/akismet.php")}function Ua(e,t){return!!Object(It.get)(e.jetpack.modules.items,[t,"activated"],!1)}function Fa(e,t){return Object(It.includes)(Object.keys(e.jetpack.modules.items),t)}function La(e,t){return Object(It.get)(e.jetpack.modules.items,[t,"override"],!1)}function za(e){return{noticeId:e,type:"REMOVE_NOTICE"}}function Ba(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r={noticeId:n.id||Object(It.uniqueId)(),duration:n.duration,showDismiss:"boolean"!=typeof n.showDismiss||n.showDismiss,isPersistent:n.isPersistent||!1,displayOnNextPage:n.displayOnNextPage||!1,status:e,text:t};return{type:"NEW_NOTICE",notice:r}}Ba.bind(null,"is-success"),Ba.bind(null,"is-error"),Ba.bind(null,"is-info"),Ba.bind(null,"is-warning");var Va=n(176),Ha=n.n(Va),qa=n(75),Ka=n.n(qa),Ja=n(34),Wa=n.n(Ja),Ga=n(76),Ya=n.n(Ga),$a=n(46),Xa=n.n($a),Qa=n(63),Za=n.n(Qa),eo=n(25);function to(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var i=isFinite(+e)?+e:0,a=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,s=void 0===n?".":n,c="";return(c=(a?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(i,a):""+Math.round(i)).split("."))[0].length>3&&(c[0]=c[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(c[1]||"").length<a&&(c[1]=c[1]||"",c[1]+=new Array(a-c[1].length+1).join("0")),c.join(s)}var no=Ha()("i18n-calypso"),ro=[function(e){return e}],io={};function ao(){uo.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function oo(e){return Array.prototype.slice.call(e)}function so(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&ao("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",oo(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&ao("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",oo(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function co(e,t){var n="gettext";t.context&&(n="p"+n),"string"==typeof t.original&&"string"==typeof t.plural&&(n="n"+n);var r=function(e,t){switch(e){case"gettext":return[t.original];case"ngettext":return[t.original,t.plural,t.count];case"npgettext":return[t.context,t.original,t.plural,t.count];case"pgettext":return[t.context,t.original]}return[]}(n,t);return e[n].apply(e,r)}function lo(e,t){for(var n=ro.length-1;n>=0;n--){var r=ro[n](Object.assign({},t));if(e.state.locale[r.original])return co(e.state.jed,r)}return null}function uo(){if(!(this instanceof uo))return new uo;this.defaultLocaleSlug="en",this.state={numberFormatSettings:{},jed:void 0,locale:void 0,localeSlug:void 0,translations:Ya()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new eo.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}uo.throwErrors=!1,uo.prototype.moment=Xa.a,uo.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},uo.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},uo.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},uo.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",i=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return to(e,n,r,i)},uo.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},uo.prototype.setLocale=function(e){if(e&&e[""]&&e[""]["key-hash"]){var t=e[""]["key-hash"],n=function(e,t){var n=!1===t?"":String(t);if(void 0!==io[n+e])return io[n+e];var r=Za()().update(e).digest("hex");return io[n+e]=t?r.substr(0,t):r},r=function(e){return function(t){return t.context?(t.original=n(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=n(t.original,e),t}};if("sha1"===t.substr(0,4))if(4===t.length)ro.push(r(!1));else{var i=t.substr(5).indexOf("-");if(i<0){var a=Number(t.substr(5));ro.push(r(a))}else for(var o=Number(t.substr(5,i)),s=Number(t.substr(6+i)),c=o;c<=s;c++)ro.push(r(c))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.jed=new Wa.a({locale_data:{messages:this.state.locale}}),Xa.a.locale(this.state.localeSlug),this.state.numberFormatSettings.decimal_point=co(this.state.jed,so(["number_format_decimals"])),this.state.numberFormatSettings.thousands_sep=co(this.state.jed,so(["number_format_thousands_sep"])),"number_format_decimals"===this.state.numberFormatSettings.decimal_point&&(this.state.numberFormatSettings.decimal_point="."),"number_format_thousands_sep"===this.state.numberFormatSettings.thousands_sep&&(this.state.numberFormatSettings.thousands_sep=","),this.state.translations.clear(),this.stateObserver.emit("change")},uo.prototype.getLocale=function(){return this.state.locale},uo.prototype.getLocaleSlug=function(){return this.state.localeSlug},uo.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.jed.options.locale_data.messages[t]=e[t]);this.state.translations.clear(),this.stateObserver.emit("change")},uo.prototype.hasTranslation=function(){return!!lo(this,so(arguments))},uo.prototype.translate=function(){var e,t=so(arguments),n=!t.components;if(n){try{e=JSON.stringify(t)}catch(s){n=!1}if(e){var r=this.state.translations.get(e);if(r)return r}}var i=lo(this,t);if(i||(i=co(this.state.jed,t)),t.args){var a=Array.isArray(t.args)?t.args.slice(0):[t.args];a.unshift(i);try{i=Wa.a.sprintf.apply(Wa.a,a)}catch(c){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof c?window.console[o](c):window.console[o]("i18n sprintf error:",a)}}return t.components&&(i=Ka()({mixedString:i,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(e){i=e(i,t)})),n&&this.state.translations.set(e,i),i},uo.prototype.reRenderTranslations=function(){no("Re-rendering all translations due to external request"),this.state.translations.clear(),this.stateObserver.emit("change")},uo.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},uo.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var po,ho,fo=uo,mo=n(17),go=n.n(mo),vo=n(9),bo=n.n(vo),yo=n(4),wo=n.n(yo),_o=n(28),ko=n.n(_o),Eo=new fo,Co=Eo,So=Eo.moment,Mo=Eo.numberFormat.bind(Eo),xo=Eo.translate.bind(Eo),Ao=(Eo.configure.bind(Eo),Eo.setLocale.bind(Eo),Eo.getLocale.bind(Eo),Eo.getLocaleSlug.bind(Eo),Eo.addTranslations.bind(Eo),Eo.reRenderTranslations.bind(Eo),Eo.registerComponentUpdateHook.bind(Eo),Eo.registerTranslateHook.bind(Eo),Eo.state,Eo.stateObserver,Eo.on.bind(Eo),Eo.off.bind(Eo),Eo.emit.bind(Eo),ho={moment:(po=Eo).moment,numberFormat:po.numberFormat.bind(po),translate:po.translate.bind(po)},function(e){var t,n,r=e.displayName||e.name||"";return n=t=function(t){function n(){var e,t;la()(this,n);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return t=pa()(this,(e=ha()(n)).call.apply(e,[this].concat(i))),na()(wo()(t),"boundForceUpdate",t.forceUpdate.bind(wo()(t))),t}return ma()(n,t),bo()(n,[{key:"componentDidMount",value:function(){po.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){po.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var t=go()({locale:po.getLocaleSlug()},this.props,{},ho);return s.a.createElement(e,t)}}]),n}(s.a.Component),na()(t,"displayName","Localized("+r+")"),n});!function(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}}(Eo);function jo(e,t){switch(e){case"custom-content-types":t||jQuery("#menu-posts-jetpack-portfolio, #menu-posts-jetpack-testimonial").toggle(),Object(It.forEach)(t,(function(e,t){"jetpack_portfolio"===t&&jQuery("#menu-posts-jetpack-portfolio, .jp-toggle-portfolio").toggle(),"jetpack_testimonial"===t&&jQuery("#menu-posts-jetpack-testimonial, .jp-toggle-testimonial").toggle()}));break;default:return!1}}function Oo(e){Object(It.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(function(t){return t in e}))&&window.location.reload()}var No={disconnectingSite:!1,unlinkingUser:!1,fetchingConnectUrl:!1,fetchingUserData:!1},To=N({connectUrl:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qt:return Object(It.get)(t,"initialState.connectUrl",e);case Wt:return t.connectUrl;default:return e}},status:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{siteConnected:window.Initial_State.connectionStatus},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Sn:case $t:return Object(It.assign)({},e,{siteConnected:t.siteConnected});default:return e}},user:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.userData,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case nn:return Object(It.assign)({},e,t.userConnectionData);case Zt:var n=Object(It.assign)({},e.currentUser,{isConnected:!1});return Object(It.assign)({},e,{currentUser:n});case Ur:return Object(It.merge)({},e,t.initialState);default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:No,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Gt:return Object(It.assign)({},e,{disconnectingSite:!0});case Xt:return Object(It.assign)({},e,{unlinkingUser:!0});case Kt:return Object(It.assign)({},e,{fetchingConnectUrl:!0});case en:return Object(It.assign)({},e,{fetchingUserData:!0});case Yt:case $t:return Object(It.assign)({},e,{disconnectingSite:!1});case Qt:case Zt:return Object(It.assign)({},e,{unlinkingUser:!1});case Jt:case Wt:return Object(It.assign)({},e,{fetchingConnectUrl:!1});case tn:case nn:return Object(It.assign)({},e,{fetchingUserData:!1});default:return e}}});function Po(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&(e.jetpack.connection.status.siteConnected.devMode.isActive?"dev":e.jetpack.connection.status.siteConnected.isActive)}function Io(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&!0!==e.jetpack.connection.status.siteConnected.devMode.isActive&&e.jetpack.connection.status.siteConnected.isActive}function Do(e){return!!Object(It.get)(e.jetpack.connection.status,["siteConnected","devMode","isActive"])&&Object(It.get)(e.jetpack.connection.status,["siteConnected","devMode"])}function Ro(e){return e.jetpack.connection.connectUrl}function Uo(e){return!!e.jetpack.connection.requests.disconnectingSite}function Fo(e){return!!e.jetpack.connection.requests.fetchingConnectUrl}function Lo(e){return!!e.jetpack.connection.requests.unlinkingUser}function zo(e){return!!e.jetpack.connection.requests.fetchingUserData}function Bo(e){return!!e.jetpack.connection.user.currentUser.isConnected}function Vo(e){return"dev"===Po(e)}function Ho(e){return Object(It.get)(e.jetpack.connection.status,["siteConnected","isStaging"],!1)}function qo(e){return Object(It.get)(e.jetpack.connection.status,["siteConnected","isInIdentityCrisis"],!1)}function Ko(e,t){return Object(It.includes)(function(e){return Object.keys(e.jetpack.modules.items).filter((function(t){return e.jetpack.modules.items[t].requires_connection}))}(e).concat(["backups","scan"]),t)}function Jo(e,t){return Vo(e)&&Ko(e,t)}function Wo(e){return Object(It.get)(e.jetpack.connection.status,["siteConnected","sandboxDomain"],"")}var Go=N({display:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Dr:return!0;case Rr:return!1;default:return e}}});function Yo(e){return!!e.jetpack.devCard.display}var $o=N({notice:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case $t:return"disconnected";default:return e}},dismissed:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.dismissedNotices,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Cr:return Object(It.assign)({},e,na()({},t.notice,!0));case Ar:return Object(It.assign)({},e,t.dismissedNotices);case Tn:return!1;default:return e}}});function Xo(e){return e.jetpack.jetpackNotices.notice}function Qo(e){return Object(It.get)(e.jetpack.initialState,["jetpackStateNotices","errorCode"])}function Zo(e){return Object(It.get)(e.jetpack.initialState,["jetpackStateNotices","messageCode"])}function es(e){return Object(It.get)(e.jetpack.initialState,["jetpackStateNotices","errorDescription"])}var ts=N({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case $n:return t.products;default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Yn:return Object(It.assign)({},e,{isFetchingProducts:!0});case $n:case Xn:return Object(It.assign)({},e,{isFetchingProducts:!1});default:return e}}});function ns(e){return!!e.jetpack.products.requests.isFetchingProducts}function rs(e){return e.jetpack.products.items}var is=N({connectUrls:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qt:return Object(It.assign)({},t.initialState.externalServicesConnectUrls);default:return e}}});function as(e,t){return Object(It.get)(e.jetpack.publicize.connectUrls,t,null)}var os={isFetchingRewindStatus:!1},ss=N({data:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case zr:return Object(It.assign)({},e,{status:t.status});case Vr:return Object(It.assign)({},e,{status:t.rewindState});default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:os,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Lr:return Object(It.assign)({},e,{isFetchingRewindStatus:!0});case zr:case Br:return Object(It.assign)({},e,{isFetchingRewindStatus:!1});default:return e}}});function cs(e){return!!e.jetpack.rewind.requests.isFetchingRewindStatus}function ls(e){return Object(It.get)(e.jetpack.rewind,["data","status"],{})}var us=N({searchTerm:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Tr:return t.term;default:return e}}});function ps(e){return e.jetpack.search.searchTerm}function ds(e,t){var n=Object(It.find)(Object(It.get)(e.jetpack,["modules","items"],{}),["module",t]);if(void 0===n)return!1;var r=Object(It.get)(e.jetpack,["search","searchTerm"],!1);return!r||[n.module,n.name,n.description,n.learn_more_button,n.long_description,n.search_terms,n.additional_search_queries,n.short_description,n.feature?n.feature.toString():""].join(" ").toLowerCase().indexOf(r.toLowerCase())>-1}var hs={fetchingSettingsList:!1,settingsSent:{}},fs=N({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qt:return Object(It.assign)({},e,t.initialState.settings);case Zn:return Object(It.assign)({},t.settings);case nr:var n=Object.keys(t.updatedOption)[0];return Object(It.assign)({},e,na()({},n,t.updatedOption[n]));case or:return Object(It.assign)({},e,t.updatedOptions);default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:hs,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Qn:return Object(It.assign)({},e,{fetchingSettingsList:!0});case er:case Zn:return Object(It.assign)({},e,{fetchingSettingsList:!1});case tr:case ir:return Object(It.merge)({},e,{settingsSent:Object(It.mapValues)(t.updatedOptions,(function(){return!0}))});case rr:case nr:case ar:case or:return Object(It.merge)({},e,{settingsSent:Object(It.mapValues)(t.updatedOptions,(function(){return!1}))});default:return e}},unsavedSettingsFlag:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case sr:return!0;case cr:return!1;default:return e}}});function ms(e){return e.jetpack.settings.items}function gs(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(""===n||Object(It.get)(e.jetpack.settings.items,n,!1))return Object(It.get)(e.jetpack.settings.items,t,void 0)}function vs(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"object"==typeof t?Object(It.some)(Object(It.filter)(e.jetpack.settings.requests.settingsSent,(function(e,n){return Object(It.includes)(t,n)})),(function(e){return e})):e.jetpack.settings.requests.settingsSent[t]}function bs(e){return Object(It.get)(e.jetpack.settings,"unsavedSettingsFlag",!1)}function ys(e){return Object(It.get)(e.jetpack.settings.items,"dismiss_dash_app_card",!1)}function ws(e){return Object(It.get)(e.jetpack.settings.items,"dismiss_empty_stats_card",!1)}var _s={isFetchingSiteData:!1},ks=N({data:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ur:return Object(It.assign)({},e,t.siteData);case hr:return Object(It.merge)({},e,{site:{benefits:t.siteBenefits}});case gr:return Object(It.merge)({},e,{site:{features:t.siteFeatures}});case yr:return Object(It.merge)({},e,{sitePlans:t.plans});case kr:return Object(It.merge)({},e,{sitePurchases:t.purchases});default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:_s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case lr:return Object(It.assign)({},e,{isFetchingSiteData:!0});case dr:return Object(It.assign)({},e,{isFetchingSiteBenefits:!0});case mr:return Object(It.assign)({},e,{isFetchingSiteFeatures:!0});case br:return Object(It.assign)({},e,{isFetchingSitePlans:!0});case _r:return Object(It.assign)({},e,{isFetchingSitePurchases:!0});case pr:case ur:return Object(It.assign)({},e,{isFetchingSiteData:!1});case fr:case hr:return Object(It.assign)({},e,{isFetchingSiteBenefits:!1});case vr:case gr:return Object(It.assign)({},e,{isFetchingSiteFeatures:!1});case wr:case yr:return Object(It.assign)({},e,{isFetchingSitePlans:!1});case Er:case kr:return Object(It.assign)({},e,{isFetchingSitePurchases:!1});default:return e}}});function Es(e){return!!(e.jetpack.siteData.requests.isFetchingSiteData||e.jetpack.siteData.requests.isFetchingSiteFeatures||e.jetpack.siteData.requests.isFetchingSitePlans||e.jetpack.siteData.requests.isFetchingSitePurchases)}function Cs(e){return!!e.jetpack.siteData.requests.isFetchingSiteBenefits}function Ss(e){return Object(It.get)(e.jetpack.siteData,["data","plan"],{})}function Ms(e){return Object(It.get)(e.jetpack.siteData,["data","site","benefits"],null)}function xs(e){return Object(It.get)(e.jetpack.siteData,["data","site","features","available"],{})}function As(e){return Object(It.get)(e.jetpack.siteData,["data","site","features","active"],[])}function js(e){return Object(It.get)(e.jetpack.siteData,["data","sitePlans"])}function Os(e){return Object(It.get)(e.jetpack.siteData,["data","sitePurchases"],[])}function Ns(e){return Os(e).filter((function(e){return"1"===e.active}))}var Ts=N({google:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{fetching:!1,verifying:!1,verified:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case Hr:return Object(It.assign)({},e,{fetching:!0});case qr:return Object(It.assign)({},e,{fetching:!1,error:t.error});case Kr:return Object(It.assign)({},e,{fetching:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,token:t.token,error:null});case Yr:return Object(It.assign)({},e,{verifying:!0});case $r:return Object(It.assign)({},e,{verifying:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,error:null});case Xr:return Object(It.assign)({},e,{verifying:!1,verified:!1,error:t.error});default:return e}}});function Ps(e){return Object(It.get)(e,"jetpack.siteVerify.google.fetching",!1)}function Is(e){return Object(It.get)(e,"jetpack.siteVerify.google.verifying",!1)}function Ds(e){return!Ps(e)&&"no_token_for_user"!==Object(It.get)(e,"jetpack.siteVerify.google.error.code",null)}function Rs(e){return Object(It.get)(e,"jetpack.siteVerify.google.verified",!1)}function Us(e){return Object(It.get)(e,"jetpack.siteVerify.google.error",null)}function Fs(e){return Object(It.get)(e,"jetpack.siteVerify.google.searchConsoleUrl",null)}function Ls(e){return Object(It.get)(e,"jetpack.siteVerify.google.isOwner",!1)}var zs={fetchingTrackingSettings:!1,updatingTrackingSettings:!1},Bs=N({items:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case on:return Object(It.assign)({},e,t.settings);case ln:return Object(It.assign)({},e,t.updatedSettings);default:return e}},requests:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:zs,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case rn:return Object(It.assign)({},e,{fetchingTrackingSettings:!0});case an:case on:return Object(It.assign)({},e,{fetchingTrackingSettings:!1});case sn:return Object(It.assign)({},e,{updatingTrackingSettings:!0});case cn:case ln:return Object(It.assign)({},e,{updatingTrackingSettings:!1});default:return e}}});function Vs(e){return e.jetpack.trackingSettings.items}function Hs(e){return e.jetpack.trackingSettings.requests.fetchingTrackingSettings}function qs(e){return e.jetpack.trackingSettings.requests.updatingTrackingSettings}var Ks=N({mobile:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{sendingLoginEmail:!1,loginEmailSent:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case ei:return Object(It.assign)({},e,{sendingLoginEmail:!0});case ti:return Object(It.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!0,error:null});case ni:return Object(It.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!1,error:t.error});default:return e}}});var Js=N({checklist:ea,connection:To,dashboard:Li,devCard:Go,initialState:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case qt:return Object(It.assign)({},e,t.initialState);case Ur:return Object(It.merge)({},e,{userData:t.initialState});default:return e}},jetpackNotices:$o,modules:Oa,pluginsData:ia,products:ts,publicize:is,rewind:ss,search:us,settings:fs,siteData:ks,siteVerify:Ts,trackingSettings:Bs,mobile:Ks}),Ws=N({globalNotices:Ht,jetpack:Js,routing:Tt.routerReducer}),Gs=Object(Tt.routerMiddleware)(Nt),Ys=U(F(zt),F(Gs),"object"==typeof window&&void 0!==window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__():function(e){return e})(j)(Ws);var $s=n(32),Xs=n.n($s),Qs=n(11),Zs=n.n(Qs),ec=(n(209),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.href?"a":"button",t=this.props,n=t.primary,r=t.compact,i=t.scary,a=t.borderless,o=t.className,c=Xs()(t,["primary","compact","scary","borderless","className"]),l=Zs()({"dops-button":!0,"is-compact":r,"is-primary":n,"is-scary":i,"is-borderless":a});return c.className=Zs()(o,l),s.a.createElement(e,c,this.props.children)}}]),t}(s.a.Component));na()(ec,"displayName","Button"),na()(ec,"propTypes",{disabled:u.a.bool,compact:u.a.bool,primary:u.a.bool,scary:u.a.bool,type:u.a.string,href:u.a.string,onClick:u.a.func,borderless:u.a.bool,className:u.a.string}),na()(ec,"defaultProps",{disabled:!1,type:"button",onClick:It.noop,borderless:!1});n(210);var tc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()("dops-button-group",this.props.className);return s.a.createElement("span",{className:e},this.props.children)}}]),t}(s.a.Component);na()(tc,"displayName","ButtonGroup"),na()(tc,"propTypes",{children:function(e){var t=null;return s.a.Children.forEach(e.children,(function(e){e.props&&"button"===e.props.type||(t=new Error("All children elements should be a Button."))})),t}});var nc=n(23),rc=n.n(nc),ic={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};var ac,oc,sc=function(e){if(e in ic)return ic[e];throw new Error("config key `"+e+"` does not exist")},cc=rc()("dops:analytics");window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;var lc={initialize:function(e,t,n){lc.setUser(e,t),lc.setSuperProps(n),lc.identifyUser()},setUser:function(e,t){oc={ID:e,username:t}},setSuperProps:function(e){ac=e},mc:{bumpStat:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&x_"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);cc("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),cc('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);sc("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){var n=function(e,t){var n="";if("object"==typeof e){for(var r in e)n+="&"+encodeURIComponent(r)+"="+encodeURIComponent(e[r]);cc("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),cc('Built stat "%s" in group "%s"',t,e);return n}(e,t);sc("mc_analytics_enabled")&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){lc.tracks.recordPageView(e),lc.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,i,a,o){lc.ga.recordPurchase(e,t,n,r,i,a,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(ac&&(cc("- Super Props: %o",ac),t=Object(It.assign)(t,ac)),cc('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):cc('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){var t="object"==typeof e?e:{target:e};lc.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){lc.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){cc("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){var e={};lc.ga.initialized||(oc&&(e={userId:"u-"+oc.ID}),window.ga("create",sc("google_analytics_key"),"auto",e),lc.ga.initialized=!0)},recordPageView:function(e,t){lc.ga.initialize(),cc("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),sc("google_analytics_enabled")&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,n,r){lc.ga.initialize();var i="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(i+=" [Option Label: "+n+"]"),void 0!==r&&(i+=" [Option Value: "+r+"]"),cc(i),sc("google_analytics_enabled")&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,i,a,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:i,quantity:a}),window.ga("ecommerce:send")}},identifyUser:function(){oc&&window._tkq.push(["identifyUser",oc.ID,oc.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}},uc=lc,pc=function(){return function(e){return e({type:Kt}),Ca.fetchConnectUrl().then((function(t){e({type:Wt,connectUrl:t})})).catch((function(t){e({type:Jt,error:t})}))}},dc=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return function(t){return t({type:Gt}),t(Ba("is-info",xo("Disconnecting Jetpack"),{id:"disconnect-jetpack"})),Ca.disconnectSite().then((function(e){t({type:$t,disconnectingSite:e}),t(za("disconnect-jetpack"))})).then((function(){t(pc()),e&&window.location.reload()})).catch((function(e){t({type:Yt,error:e}),t(za("disconnect-jetpack")),t(Ba("is-error",xo("There was an error disconnecting Jetpack. Error: %(error)s",{args:{error:e}}),{id:"disconnect-jetpack"}))}))}},hc=n(10),fc=n.n(hc),mc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("svg",fc()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 118 32"},this.props),s.a.createElement("path",{fill:"#00BE28",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"}),s.a.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"}),s.a.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"}),s.a.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"}),s.a.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"}),s.a.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"}),s.a.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"}),s.a.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"}))}}]),t}(s.a.Component);na()(mc,"propTypes",{className:u.a.string,width:u.a.number,height:u.a.number}),na()(mc,"defaultProps",{className:"jetpack-logo",height:32});var gc=mc,vc=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackDashClick",(function(){uc.tracks.recordJetpackClick({target:"masthead",path:"nav_dashboard"})})),na()(wo()(n),"trackSettingsClick",(function(){uc.tracks.recordJetpackClick({target:"masthead",path:"nav_settings"})})),na()(wo()(n),"trackLogoClick",(function(){uc.tracks.recordJetpackClick({target:"masthead",path:"logo"})})),na()(wo()(n),"testConnection",(function(){return n.props.testConnection()})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e="dev"===this.props.siteConnectionStatus?s.a.createElement("code",null,"Dev Mode"):"",t=this.props.sandboxDomain?s.a.createElement("code",{id:"sandbox-domain-badge",onClick:this.testConnection,onKeyDown:this.testConnection,role:"button",tabIndex:0,title:"Sandboxing via ".concat(this.props.sandboxDomain,". Click to test connection.")},"API Sandboxed"):"",n=Object(It.includes)(["/","/dashboard","/my-plan","/plans"],this.props.route.path),r=""===this.props.route.path;return s.a.createElement("div",{className:"jp-masthead"},s.a.createElement("div",{className:"jp-masthead__inside-container"},s.a.createElement("div",{className:"jp-masthead__logo-container"},s.a.createElement("a",{onClick:this.trackLogoClick,className:"jp-masthead__logo-link",href:"#dashboard"},s.a.createElement(gc,{className:"jetpack-logo__masthead"})),e,t),this.props.userCanEditPosts&&s.a.createElement("div",{className:"jp-masthead__nav"},!r&&this.props.siteConnectionStatus&&s.a.createElement(tc,null,s.a.createElement(ec,{compact:!0,href:"#/dashboard",primary:n&&!r,onClick:this.trackDashClick},xo("Dashboard")),s.a.createElement(ec,{compact:!0,href:"#/settings",primary:!n&&!r,onClick:this.trackSettingsClick},xo("Settings"))))))}}]),t}(s.a.Component);na()(vc,"defaultProps",{route:{path:""}});var bc=le((function(e){return{siteConnectionStatus:Po(e),sandboxDomain:Wo(e),currentVersion:ii(e),userCanEditPosts:mi(e)}}),(function(e){return{testConnection:function(){return e((function(e){return e(Ba("is-info",xo("Testing Jetpack Connection"),{id:"test-jetpack-connection"})),Ca.fetchSiteConnectionTest().then((function(t){e({type:Mn,connectionTest:t}),e(za("test-jetpack-connection")),e(Ba("success"===t.code?"is-success":"is-error",t.message,{id:"test-jetpack-connection"}))})).catch((function(t){e(za("test-jetpack-connection")),e(Ba("is-error",xo("There was an error testing Jetpack. Error: %(error)s",{args:{error:t.message}}),{id:"test-jetpack-connection"}))}))}))}}}))(vc),yc=n(33),wc=n.n(yc),_c=(n(214),pe()({displayName:"Count",mixins:[wc.a],propTypes:{count:u.a.number.isRequired},render:function(){return s.a.createElement("span",{className:"dops-count"},this.numberFormat(this.props.count))}})),kc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()(this.props.className,{"dops-select-dropdown__item":!0,"is-selected":this.props.selected,"is-disabled":this.props.disabled});return s.a.createElement("li",{className:"dops-select-dropdown__option"},s.a.createElement("a",{ref:"itemLink",href:this.props.path,className:e,onClick:this.props.disabled?null:this.props.onClick,"data-bold-text":this.props.value||this.props.children,role:"option",tabIndex:0,"aria-selected":this.props.selected},s.a.createElement("span",{className:"dops-select-dropdown__item-text"},this.props.children,"number"==typeof this.props.count&&s.a.createElement(_c,{count:this.props.count}))))}}]),t}(s.a.Component);na()(kc,"propTypes",{children:u.a.string.isRequired,path:u.a.string,selected:u.a.bool,onClick:u.a.func,count:u.a.number}),na()(kc,"defaultProps",{selected:!1});var Ec=kc,Cc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("li",{className:"dops-select-dropdown__separator"})}}]),t}(s.a.Component),Sc=s.a.Component,Mc=function(e){return e.stopPropagation()},xc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("li",{role:"menuitem",onClick:Mc,className:"dops-select-dropdown__label"},s.a.createElement("label",null,this.props.children))}}]),t}(Sc),Ac=(n(215),function(){}),jc=function(e){function t(e){var n;la()(this,t),(n=pa()(this,ha()(t).call(this,e))).navigateItem=n.navigateItem.bind(wo()(n)),n.toggleDropdown=n.toggleDropdown.bind(wo()(n)),n.handleOutsideClick=n.handleOutsideClick.bind(wo()(n)),n._onClick=n._onClick.bind(wo()(n));var r={isOpen:!1};return e.options.length&&(r.selected=n.getInitialSelectedItem(e)),n.state=r,n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.setState({instanceId:++t.instances})}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.state.isOpen&&this.closeDropdown(),void 0!==this.state.selected&&this.props.initialSelected!==e.initialSelected&&this.setState({selected:e.initialSelected})}},{key:"componentWillUnmount",value:function(){window.removeEventListener("click",this.handleOutsideClick)}},{key:"componentDidUpdate",value:function(e,t){this.state.isOpen?window.addEventListener("click",this.handleOutsideClick):window.removeEventListener("click",this.handleOutsideClick),this.state.isOpen!==t.isOpen&&this.props.onToggle({target:this,open:this.state.isOpen})}},{key:"getInitialSelectedItem",value:function(e){if((e=e||this.props).initialSelected)return e.initialSelected;if(e.options.length){var t=Object(It.find)(e.options,(function(e){return!e.isLabel}));return t&&t.value}}},{key:"dropdownOptions",value:function(){var e=0,t=this;return this.props.children?s.a.Children.map(this.props.children,(function(n,r){if(!n)return null;var i=s.a.cloneElement(n,{ref:n.type===Ec?"item-"+e:null,key:"item-"+r,onClick:function(e){t.refs.dropdownContainer.focus(),"function"==typeof n.props.onClick&&n.props.onClick(e)}});return n.type===Ec&&e++,i}),this):this.props.options.map((function(t,n){if(!t)return s.a.createElement(Cc,{key:"dropdown-separator-"+this.state.instanceId+"-"+n});if(t.isLabel)return s.a.createElement(xc,{key:"dropdown-label-"+this.state.instanceId+"-"+n},t.label);var r=s.a.createElement(Ec,{key:"dropdown-item-"+this.state.instanceId+"-"+t.value,ref:"item-"+e,selected:this.state.selected===t.value,onClick:this.onSelectItem(t),path:t.path},t.label);return e++,r}),this)}},{key:"render",value:function(){var e={"dops-select-dropdown":!0,"is-compact":this.props.compact,"is-open":this.state.isOpen,"is-disabled":this.props.disabled};this.props.className&&this.props.className.split(" ").forEach((function(t){e[t]=!0}));var t=Zs()(e),n=this.props.selectedText?this.props.selectedText:Object(It.result)(Object(It.find)(this.props.options,{value:this.state.selected}),"label");return s.a.createElement("div",{style:this.props.style,className:t},s.a.createElement("div",{ref:"dropdownContainer",className:"dops-select-dropdown__container",tabIndex:this.props.tabIndex||0,role:"listbox","aria-labelledby":"select-dropdown-"+this.state.instanceId,"aria-haspopup":"true","aria-owns":"select-submenu-"+this.state.instanceId,"aria-controls":"select-submenu-"+this.state.instanceId,"aria-expanded":this.state.isOpen,onClick:this._onClick,onKeyDown:this.navigateItem},s.a.createElement("div",{id:"select-dropdown-"+this.state.instanceId,className:"dops-select-dropdown__header"},s.a.createElement("span",{className:"dops-select-dropdown__header-text"},n,"number"==typeof this.props.selectedCount&&s.a.createElement(_c,{count:this.props.selectedCount}))),s.a.createElement("ul",{id:"select-submenu-"+this.state.instanceId,className:"dops-select-dropdown__options"},this.dropdownOptions())))}},{key:"_onClick",value:function(){this.props.disabled||this.toggleDropdown()}},{key:"toggleDropdown",value:function(){this.setState({isOpen:!this.state.isOpen})}},{key:"openDropdown",value:function(){this.setState({isOpen:!0})}},{key:"closeDropdown",value:function(){this.state.isOpen&&(delete this.focused,this.setState({isOpen:!1}))}},{key:"onSelectItem",value:function(e){return this.selectItem.bind(this,e)}},{key:"selectItem",value:function(e){e&&(this.props.onSelect&&this.props.onSelect(e),this.setState({selected:e.value}),this.refs.dropdownContainer.focus())}},{key:"navigateItem",value:function(e){switch(e.keyCode){case 9:this.navigateItemByTabKey(e);break;case 32:case 13:e.preventDefault(),this.activateItem();break;case 38:e.preventDefault(),this.focusSibling("previous"),this.openDropdown();break;case 40:e.preventDefault(),this.focusSibling("next"),this.openDropdown();break;case 27:e.preventDefault(),this.closeDropdown(),this.refs.dropdownContainer.focus()}}},{key:"navigateItemByTabKey",value:function(e){if(this.state.isOpen){e.preventDefault();var t=e.shiftKey?"previous":"next";this.focusSibling(t)}}},{key:"activateItem",value:function(){if(!this.state.isOpen)return this.openDropdown();document.activeElement.click()}},{key:"focusSibling",value:function(e){var t,n;if(this.state.isOpen){this.props.options.length?(t=Object(It.map)(Object(It.filter)(this.props.options,(function(e){return e&&!e.isLabel})),"value"),n="number"==typeof this.focused?this.focused:t.indexOf(this.state.selected)):(t=Object(It.filter)(this.props.children,(function(e){return e.type===Ec})),n="number"==typeof this.focused?this.focused:Object(It.findIndex)(t,(function(e){return e.props.selected})));var r=n+("previous"===e?-1:1);r>=t.length||r<0||(a.a.findDOMNode(this.refs["item-"+r].refs.itemLink).focus(),this.focused=r)}}},{key:"handleOutsideClick",value:function(e){a.a.findDOMNode(this.refs.dropdownContainer).contains(e.target)||this.closeDropdown()}}]),t}(s.a.Component);jc.defaultProps={options:[],onSelect:Ac,onToggle:Ac,disabled:!1,style:{}},jc.propTypes={selectedText:u.a.string,selectedCount:u.a.number,initialSelected:u.a.string,className:u.a.string,style:u.a.object,onSelect:u.a.func,onToggle:u.a.func,focusSibling:u.a.func,tabIndex:u.a.number,disabled:u.a.bool,options:u.a.arrayOf(u.a.shape({value:u.a.string.isRequired,label:u.a.string.isRequired,path:u.a.string}))},jc.instances=0;var Oc=jc;function Nc(e){var t=Pc(),n={"<480px":function(){return t<=480},"<660px":function(){return t<=660},"<960px":function(){return t<=960},">480px":function(){return t>480},">660px":function(){return t>660},">960px":function(){return t>960},"480px-660px":function(){return t>480&&t<=660},"660px-960px":function(){return t>660&&t<=960},"480px-960px":function(){return t>480&&t<=960}};if(n.hasOwnProperty(e))return n[e]();try{window.window.console.warn("Undefined breakpoint used in `mobile-first-breakpoint`",e)}catch(r){}}function Tc(){return Nc("<480px")}function Pc(){return window.window?window.window.innerWidth:769}var Ic=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{isDropdown:!1}),na()(wo()(n),"getTabWidths",(function(){var e=0;s.a.Children.forEach(n.props.children,function(t,n){if(t){var r=a.a.findDOMNode(this.refs["tab-"+n]).offsetWidth;e+=r}}.bind(wo()(n))),n.tabsWidth=e})),na()(wo()(n),"getDropdown",(function(){var e=s.a.Children.map(n.props.children,(function(e,t){return e?s.a.createElement(Ec,fc()({},e.props,{key:"navTabsDropdown-"+t}),e.props.children):null}));return s.a.createElement(Oc,{className:"dops-section-nav-tabs__dropdown",selectedText:n.props.selectedText,selectedCount:n.props.selectedCount},e)})),na()(wo()(n),"setDropdown",(function(){var e;if(window.innerWidth>480){if(!n.refs.navGroup)return;e=n.refs.navGroup.offsetWidth,n.tabsWidth||n.getTabWidths(),e<=n.tabsWidth&&!n.state.isDropdown?n.setState({isDropdown:!0}):e>n.tabsWidth&&n.state.isDropdown&&n.setState({isDropdown:!1})}else window.innerWidth<=480&&n.state.isDropdown&&n.setState({isDropdown:!1})})),na()(wo()(n),"keyHandler",(function(e){switch(e.keyCode){case 32:case 13:e.preventDefault(),document.activeElement.click()}})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.setDropdown(),this.debouncedAfterResize=Object(It.debounce)(this.setDropdown,300),window.addEventListener("resize",this.debouncedAfterResize)}},{key:"UNSAFE_componentWillReceiveProps",value:function(){this.setDropdown()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.debouncedAfterResize)}},{key:"render",value:function(){var e=s.a.Children.map(this.props.children,(function(e,t){return e&&s.a.cloneElement(e,{ref:"tab-"+t})})),t=Zs()({"dops-section-nav-tabs":!0,"is-dropdown":this.state.isDropdown,"is-open":this.state.isDropdownOpen,"has-siblings":this.props.hasSiblingControls}),n=Pc();return s.a.createElement("div",{className:"dops-section-nav-group",ref:"navGroup"},s.a.createElement("div",{className:t},this.props.label&&s.a.createElement("h6",{className:"dops-section-nav-group__label"},this.props.label),s.a.createElement("ul",{className:"dops-section-nav-tabs__list",role:"menu",onKeyDown:this.keyHandler},e),this.state.isDropdown&&n>480&&this.getDropdown()))}}]),t}(s.a.Component);na()(Ic,"propTypes",{selectedText:u.a.string,selectedCount:u.a.number,label:u.a.string,hasSiblingControls:u.a.bool}),na()(Ic,"defaultProps",{hasSiblingControls:!1});var Dc=Ic,Rc=pe()({displayName:"NavItem",mixins:[wc.a],propTypes:{itemType:u.a.string,path:u.a.string,selected:u.a.bool,tabIndex:u.a.number,onClick:u.a.func,isExternalLink:u.a.bool,disabled:u.a.bool,count:u.a.number},render:function(){var e=this.props.itemType?this.props.itemType:"tab",t={"is-selected":this.props.selected,"is-external":this.props.isExternalLink};t["dops-section-nav-"+e]=!0;var n,r,i=Zs()(t);return this.props.isExternalLink&&(n="_blank"),this.props.disabled||(r=this.props.onClick),s.a.createElement("li",{className:i},s.a.createElement("a",{href:this.props.path,target:n,className:"dops-section-nav-"+e+"__link",onClick:r,tabIndex:this.props.tabIndex||0,disabled:this.props.disabled,role:"menuitem",rel:this.props.isExternalLink?"external":null},s.a.createElement("span",{className:"dops-section-nav-"+e+"__text"},this.props.children,"number"==typeof this.props.count&&s.a.createElement(_c,{count:this.props.count}))))}}),Uc=(n(216),function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"isSVGCSSAnimationSupported",(function(){var e=window.window?window.window.navigator.userAgent:"";return!/(MSIE |Trident\/)/.test(e)})),na()(wo()(n),"getClassName",(function(){return Zs()("dops-spinner",n.props.className,{"is-fallback":!n.isSVGCSSAnimationSupported()})})),na()(wo()(n),"renderFallback",(function(){var e={width:n.props.size,height:n.props.size};return s.a.createElement("div",{className:n.getClassName(),style:e},s.a.createElement("span",{className:"dops-spinner__progress is-left"}),s.a.createElement("span",{className:"dops-spinner__progress is-right"}))})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.setState({instanceId:++t.instances})}},{key:"render",value:function(){var e=parseInt(this.state.instanceId,10);return this.isSVGCSSAnimationSupported()?s.a.createElement("div",{className:this.getClassName()},s.a.createElement("svg",{className:"dops-spinner__image",width:this.props.size,height:this.props.size,viewBox:"0 0 100 100",dangerouslySetInnerHTML:{__html:'\n\t\t\t\t\t<defs>\n\t\t\t\t\t\t<mask id="maskBorder'.concat(e,'">\n\t\t\t\t\t\t\t<rect x="0" y="0" width="100%" height="100%" fill="white" />\n\t\t\t\t\t\t\t<circle r="46%" cx="50%" cy="50%" fill="black" />\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t\t<mask id="maskDonut').concat(e,'">\n\t\t\t\t\t\t\t<rect x="0" y="0" width="100%" height="100%" fill="black" />\n\t\t\t\t\t\t\t<circle r="46%" cx="50%" cy="50%" fill="white" />\n\t\t\t\t\t\t\t<circle r="30%" cx="50%" cy="50%" fill="black" />\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t\t<mask id="maskLeft').concat(e,'">\n\t\t\t\t\t\t\t<rect x="0" y="0" width="50%" height="100%" fill="white" />\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t\t<mask id="maskRight').concat(e,'">\n\t\t\t\t\t\t\t<rect x="50%" y="0" width="50%" height="100%" fill="white" />\n\t\t\t\t\t\t</mask>\n\t\t\t\t\t</defs>\n\t\t\t\t\t<circle class="dops-spinner__border" r="50%" cx="50%" cy="50%" mask="url( #maskBorder').concat(e,' )" />\n\t\t\t\t\t<g mask="url( #maskDonut').concat(e,' )">\n\t\t\t\t\t\t<g mask="url( #maskLeft').concat(e,' )">\n\t\t\t\t\t\t\t<rect class="dops-spinner__progress is-left" x="0" y="0" width="50%" height="100%" />\n\t\t\t\t\t\t</g>\n\t\t\t\t\t\t<g mask="url( #maskRight').concat(e,' )">\n\t\t\t\t\t\t\t<rect class="dops-spinner__progress is-right" x="50%" y="0" width="50%" height="100%" />\n\t\t\t\t\t\t</g>\n\t\t\t\t\t</g>\n\t\t\t\t')}})):this.renderFallback()}}]),t}(s.a.Component));na()(Uc,"propTypes",{className:u.a.string,size:u.a.number,duration:u.a.number}),na()(Uc,"instances",0),na()(Uc,"defaultProps",{size:20,duration:3e3});var Fc=Uc,Lc=(n(217),pe()({displayName:"Gridicon",mixins:[wc.a],getDefaultProps:function(){return{className:"",size:24}},propTypes:{icon:u.a.string.isRequired,size:u.a.number,onClick:u.a.func,className:u.a.string},needsOffset:function(e,t){return["gridicons-add-outline","gridicons-add","gridicons-align-image-center","gridicons-align-image-left","gridicons-align-image-none","gridicons-align-image-right","gridicons-attachment","gridicons-backspace","gridicons-bold","gridicons-bookmark-outline","gridicons-bookmark","gridicons-calendar","gridicons-cart","gridicons-create","gridicons-custom-post-type","gridicons-external","gridicons-folder","gridicons-heading","gridicons-help-outline","gridicons-help","gridicons-history","gridicons-info-outline","gridicons-info","gridicons-italic","gridicons-layout-blocks","gridicons-link-break","gridicons-link","gridicons-list-checkmark","gridicons-list-ordered","gridicons-list-unordered","gridicons-menus","gridicons-minus","gridicons-my-sites","gridicons-notice-outline","gridicons-notice","gridicons-plans","gridicons-plus-small","gridicons-plus","gridicons-popout","gridicons-posts","gridicons-scheduled","gridicons-share-ios","gridicons-star-outline","gridicons-star","gridicons-stats","gridicons-status","gridicons-thumbs-up","gridicons-textcolor","gridicons-time","gridicons-trophy","gridicons-user-circle"].indexOf(e)>=0&&t%18==0},needsOffsetX:function(e,t){return["gridicons-arrow-down","gridicons-arrow-up","gridicons-comment","gridicons-clear-formatting","gridicons-flag","gridicons-menu","gridicons-reader","gridicons-strikethrough"].indexOf(e)>=0&&t%18==0},needsOffsetY:function(e,t){return["gridicons-align-center","gridicons-align-justify","gridicons-align-left","gridicons-align-right","gridicons-arrow-left","gridicons-arrow-right","gridicons-house","gridicons-indent-left","gridicons-indent-right","gridicons-minus-small","gridicons-print","gridicons-sign-out","gridicons-stats-alt","gridicons-trash","gridicons-underline","gridicons-video-camera"].indexOf(e)>=0&&t%18==0},render:function(){var e,t="gridicons-"+this.props.icon,n=this.needsOffset(t,this.props.size),r=this.needsOffsetX(t,this.props.size),i=this.needsOffsetY(t,this.props.size),a=Zs()("gridicon",t,this.props.className,{"needs-offset":n,"needs-offset-x":r,"needs-offset-y":i});switch(t){default:e=s.a.createElement("svg",{height:this.props.size,width:this.props.size});break;case"gridicons-add-image":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M23 4v2h-3v3h-2V6h-3V4h3V1h2v3h3zm-8.5 7c.828 0 1.5-.672 1.5-1.5S15.328 8 14.5 8 13 8.672 13 9.5s.672 1.5 1.5 1.5zm3.5 3.234l-.513-.57c-.794-.885-2.18-.885-2.976 0l-.655.73L9 9l-3 3.333V6h7V4H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2v-7h-2v3.234z"})));break;case"gridicons-add-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 9h-4V7h-2v4H7v2h4v4h2v-4h4v-2z"})));break;case"gridicons-add":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"})));break;case"gridicons-align-center":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 19h16v-2H4v2zm13-6H7v2h10v-2zM4 9v2h16V9H4zm13-4H7v2h10V5z"})));break;case"gridicons-align-image-center":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm5-4h8V9H8v6z"})));break;case"gridicons-align-image-left":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm0-4h8V9H3v6zm10 0h8v-2h-8v2zm0-4h8V9h-8v2z"})));break;case"gridicons-align-image-none":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zM11 9H3v6h8V9z"})));break;case"gridicons-align-image-right":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zm0-8h-8v6h8V9zm-10 4H3v2h8v-2zm0-4H3v2h8V9z"})));break;case"gridicons-align-justify":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 19h16v-2H4v2zm16-6H4v2h16v-2zM4 9v2h16V9H4zm16-4H4v2h16V5z"})));break;case"gridicons-align-left":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 19h16v-2H4v2zm10-6H4v2h10v-2zM4 9v2h16V9H4zm10-4H4v2h10V5z"})));break;case"gridicons-align-right":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 17H4v2h16v-2zm-10-2h10v-2H10v2zM4 9v2h16V9H4zm6-2h10V5H10v2z"})));break;case"gridicons-arrow-down":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M11 4v12.17l-5.59-5.59L4 12l8 8 8-8-1.41-1.41L13 16.17V4h-2z"})));break;case"gridicons-arrow-left":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"})));break;case"gridicons-arrow-right":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"})));break;case"gridicons-arrow-up":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M13 20V7.83l5.59 5.59L20 12l-8-8-8 8 1.41 1.41L11 7.83V20h2z"})));break;case"gridicons-aside":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M14 20l6-6V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h8zM6 6h12v6h-4c-1.105 0-2 .895-2 2v4H6V6zm10 4H8V8h8v2z"})));break;case"gridicons-attachment":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M14 1c-2.762 0-5 2.238-5 5v10c0 1.657 1.343 3 3 3s2.99-1.343 2.99-3V6H13v10c0 .553-.447 1-1 1-.553 0-1-.447-1-1V6c0-1.657 1.343-3 3-3s3 1.343 3 3v10.125C17 18.887 14.762 21 12 21s-5-2.238-5-5v-5H5v5c0 3.866 3.134 7 7 7s6.99-3.134 6.99-7V6c0-2.762-2.228-5-4.99-5z"})));break;case"gridicons-audio":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-backspace":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 7H8l-5 5 5 5h11c1.104 0 2-.896 2-2V9c0-1.104-.896-2-2-2zm-.647 6.646l-.707.707L16 12.707l-1.647 1.647-.707-.707L15.293 12l-1.647-1.646.707-.707L16 11.293l1.646-1.647.707.707L16.707 12l1.646 1.646z"})));break;case"gridicons-bell":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6.14 14.97l2.828 2.827c-.362.362-.862.586-1.414.586-1.105 0-2-.895-2-2 0-.552.224-1.052.586-1.414zm8.867 5.324L14.3 21 3 9.7l.706-.707 1.102.157c.754.108 1.69-.122 2.077-.51l3.885-3.884c2.34-2.34 6.135-2.34 8.475 0s2.34 6.135 0 8.475l-3.885 3.886c-.388.388-.618 1.323-.51 2.077l.157 1.1z"})));break;case"gridicons-block":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-bold":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M7 5.01h4.547c2.126 0 3.67.302 4.632.906.96.605 1.44 1.567 1.44 2.887 0 .896-.21 1.63-.63 2.205-.42.574-.98.92-1.678 1.036v.103c.95.212 1.637.608 2.057 1.19.42.58.63 1.35.63 2.315 0 1.367-.494 2.434-1.482 3.2-.99.765-2.332 1.148-4.027 1.148H7V5.01zm3 5.936h2.027c.862 0 1.486-.133 1.872-.4.386-.267.578-.708.578-1.323 0-.574-.21-.986-.63-1.236-.42-.25-1.087-.374-1.996-.374H10v3.333zm0 2.523v3.905h2.253c.876 0 1.52-.167 1.94-.502.416-.335.625-.848.625-1.54 0-1.243-.89-1.864-2.668-1.864H10z"})));break;case"gridicons-book":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 3h2v18H4zM18 3H7v18h11c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 6h-6V8h6v1zm0-2h-6V6h6v1z"})));break;case"gridicons-bookmark-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 5v12.554l-5-2.857-5 2.857V5h10m0-2H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-bookmark":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 3H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-briefcase":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 6h-4V3c0-.5-.5-1-1-1H8c-.5 0-1 .5-1 1v3H3c-.6 0-1 .4-1 1v5h20V7c0-.6-.4-1-1-1zm-6 0H9V4h6v2zM14 15h-4v-2H2v8c0 .6.4 1 1 1h18c.6 0 1-.4 1-1v-8h-8v2z"})));break;case"gridicons-calendar":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-camera":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 12c0 1.7-1.3 3-3 3s-3-1.3-3-3 1.3-3 3-3 3 1.3 3 3zm5-5v11c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2V4h4v1h2l1-2h6l1 2h2c1.1 0 2 .9 2 2zM7.5 9c0-.8-.7-1.5-1.5-1.5S4.5 8.2 4.5 9s.7 1.5 1.5 1.5S7.5 9.8 7.5 9zM19 12c0-2.8-2.2-5-5-5s-5 2.2-5 5 2.2 5 5 5 5-2.2 5-5z"})));break;case"gridicons-cart":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-checkmark-circle":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-checkmark":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"})));break;case"gridicons-chevron-down":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"})));break;case"gridicons-chevron-left":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M14 20l-8-8 8-8 1.414 1.414L8.828 12l6.586 6.586"})));break;case"gridicons-chevron-right":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10 20l8-8-8-8-1.414 1.414L15.172 12l-6.586 6.586"})));break;case"gridicons-chevron-up":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 15l8-8 8 8-1.414 1.414L12 9.828l-6.586 6.586"})));break;case"gridicons-clear-formatting":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10.837 10.163l-4.6 4.6L10 4h4l.777 2.223-2.144 2.144-.627-2.092-1.17 3.888zm5.495.506L19.244 19H15.82l-1.05-3.5H11.5L5 22l-1.5-1.5 17-17L22 5l-5.668 5.67zm-2.31 2.31l-.032.03.032-.01v-.02z"})));break;case"gridicons-clipboard":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16 18H8v-2h8v2zm0-6H8v2h8v-2zm2-9h-2v2h2v15H6V5h2V3H6c-1.105 0-2 .895-2 2v15c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-4 2V4c0-1.105-.895-2-2-2s-2 .895-2 2v1c-1.105 0-2 .895-2 2v1h8V7c0-1.105-.895-2-2-2z"})));break;case"gridicons-cloud-download":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-6 7l-4-5h3V8h2v3h3l-4 5z"})));break;case"gridicons-cloud-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M11.5 5c2.336 0 4.304 1.825 4.48 4.154l.142 1.86 1.867-.012h.092C19.698 11.043 21 12.37 21 14c0 .748-.28 1.452-.783 2H3.28c-.156-.256-.28-.59-.28-1 0-1.074.85-1.953 1.915-1.998.06.007.118.012.178.015l2.66.124-.622-2.587C7.044 10.186 7 9.843 7 9.5 7 7.02 9.02 5 11.5 5m0-2C7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5l-.025.002C17.72 5.646 14.922 3 11.5 3z"})));break;case"gridicons-cloud-upload":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-5 4v3h-2v-3H8l4-5 4 5h-3z"})));break;case"gridicons-cloud":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5z"})));break;case"gridicons-code":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4.83 12l4.58 4.59L8 18l-6-6 6-6 1.41 1.41L4.83 12zm9.76 4.59L16 18l6-6-6-6-1.41 1.41L19.17 12l-4.58 4.59z"})));break;case"gridicons-cog":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 12c0-.568-.06-1.122-.174-1.656l1.834-1.612-2-3.464-2.322.786c-.82-.736-1.787-1.308-2.86-1.657L14 2h-4l-.48 2.396c-1.07.35-2.04.92-2.858 1.657L4.34 5.268l-2 3.464 1.834 1.612C4.06 10.878 4 11.432 4 12s.06 1.122.174 1.656L2.34 15.268l2 3.464 2.322-.786c.82.736 1.787 1.308 2.86 1.657L10 22h4l.48-2.396c1.07-.35 2.038-.92 2.858-1.657l2.322.786 2-3.464-1.834-1.613c.113-.535.174-1.09.174-1.657zm-8 4c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"})));break;case"gridicons-comment":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-computer":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-create":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 11v8c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h8l-2 2H5v14h14v-6l2-2zM7 17h3l7.5-7.5-3-3L7 14v3zm9.94-12.94L15.5 5.5l3 3 1.44-1.44c.585-.585.585-1.535 0-2.12l-.88-.88c-.585-.585-1.535-.585-2.12 0z"})));break;case"gridicons-credit-card":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})));break;case"gridicons-crop":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M22 16h-4V8c0-1.105-.895-2-2-2H8V2H6v4H2v2h4v8c0 1.105.895 2 2 2h8v4h2v-4h4v-2zM8 16V8h8v8H8z"})));break;case"gridicons-cross-small":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"})));break;case"gridicons-cross":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"})));break;case"gridicons-custom-post-type":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z"})));break;case"gridicons-customize":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M2 6c0-1.505.78-3.08 2-4 0 .845.69 2 2 2 1.657 0 3 1.343 3 3 0 .386-.08.752-.212 1.09.74.594 1.476 1.19 2.19 1.81L8.9 11.98c-.62-.716-1.214-1.454-1.807-2.192C6.753 9.92 6.387 10 6 10c-2.21 0-4-1.79-4-4zm12.152 6.848l1.34-1.34c.607.304 1.283.492 2.008.492 2.485 0 4.5-2.015 4.5-4.5 0-.725-.188-1.4-.493-2.007L18 9l-2-2 3.507-3.507C18.9 3.188 18.225 3 17.5 3 15.015 3 13 5.015 13 7.5c0 .725.188 1.4.493 2.007L3 20l2 2 6.848-6.848c1.885 1.928 3.874 3.753 5.977 5.45l1.425 1.148 1.5-1.5-1.15-1.425c-1.695-2.103-3.52-4.092-5.448-5.977z"})));break;case"gridicons-dropdown":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M7 10l5 5 5-5"})));break;case"gridicons-ellipsis":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"})));break;case"gridicons-external":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-flag":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M15 6c0-1.105-.895-2-2-2H5v17h2v-7h5c0 1.105.895 2 2 2h6V6h-5z"})));break;case"gridicons-flip-horizontal":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 18v-5h3v-2h-3V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v5H1v2h3v5c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2zM6 6h12v5H6V6z"})));break;case"gridicons-flip-vertical":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 4h-5V1h-2v3H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h5v3h2v-3h5c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zM6 18V6h5v12H6z"})));break;case"gridicons-folder-multiple":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 8c-1.105 0-2 .895-2 2v10c0 1.1.9 2 2 2h14c1.105 0 2-.895 2-2H4V8zm16 10H8c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2h7c1.105 0 2 .895 2 2v8c0 1.105-.895 2-2 2z"})));break;case"gridicons-folder":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-globe":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18l2-2 1-1v-2h-2v-1l-1-1H9v3l2 2v1.93c-3.94-.494-7-3.858-7-7.93l1 1h2v-2h2l3-3V6h-2L9 5v-.41C9.927 4.21 10.94 4 12 4s2.073.212 3 .59V6l-1 1v2l1 1 3.13-3.13c.752.897 1.304 1.964 1.606 3.13H18l-2 2v2l1 1h2l.286.286C18.03 18.06 15.24 20 12 20z"})));break;case"gridicons-grid":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M8 8H4V4h4v4zm6-4h-4v4h4V4zm6 0h-4v4h4V4zM8 10H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4zM8 16H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4z"})));break;case"gridicons-heading":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 20h-3v-6H9v6H6V5.01h3V11h6V5.01h3V20z"})));break;case"gridicons-heart-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-heart":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16.5 3c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-help-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-1.962-2v-.528c0-.4.082-.74.246-1.017.163-.276.454-.546.87-.808.333-.21.572-.397.717-.565.146-.168.22-.36.22-.577 0-.172-.078-.308-.234-.41-.156-.1-.358-.15-.608-.15-.62 0-1.34.22-2.168.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.287-.23.362-.6.705-1.11 1.03-.43.278-.7.48-.807.61-.108.13-.163.282-.163.458V13h-1.885z"})));break;case"gridicons-help":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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-2h2v2zm2.003-6.41c-.23.36-.6.704-1.108 1.028-.43.28-.7.482-.808.61-.108.13-.163.283-.163.46V13H11.04v-.528c0-.4.08-.74.245-1.017.163-.276.454-.546.872-.808.332-.21.57-.397.716-.565.145-.168.217-.36.217-.577 0-.172-.077-.308-.233-.41-.156-.1-.358-.15-.608-.15-.62 0-1.342.22-2.17.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.286z"})));break;case"gridicons-history":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M2.12 13.526c.742 4.78 4.902 8.47 9.88 8.47 5.5 0 10-4.5 10-9.998S17.5 2 12 2C8.704 2 5.802 3.6 4 6V2H2.003L2 9h7V7H5.8c1.4-1.8 3.702-3 6.202-3C16.4 4 20 7.6 20 11.998s-3.6 8-8 8c-3.877 0-7.13-2.795-7.848-6.472H2.12z"}),s.a.createElement("path",{d:"M11.002 7v5.3l3.2 4.298 1.6-1.197-2.8-3.7V7"})));break;case"gridicons-house":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z"})));break;case"gridicons-image-multiple":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-image":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-indent-left":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 20h2V4h-2v16zM2 11h10.172l-2.086-2.086L11.5 7.5 16 12l-4.5 4.5-1.414-1.414L12.172 13H2v-2z"})));break;case"gridicons-indent-right":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6 4H4v16h2V4zm16 9H11.828l2.086 2.086L12.5 16.5 8 12l4.5-4.5 1.414 1.414L11.828 11H22v2z"})));break;case"gridicons-info-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-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"})));break;case"gridicons-info":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-ink":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M5 15c0 3.866 3.134 7 7 7s7-3.134 7-7c0-1.387-.41-2.677-1.105-3.765h.007L12 2l-5.903 9.235h.007C5.41 12.323 5 13.613 5 15z"})));break;case"gridicons-institution":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M2 19h20v3H2zM12 2L2 6v2h20V6M17 10h3v7h-3zM10.5 10h3v7h-3zM4 10h3v7H4z"})));break;case"gridicons-italic":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10.536 5l-.427 2h1.5L9.262 18h-1.5l-.427 2h6.128l.426-2h-1.5l2.347-11h1.5l.427-2"})));break;case"gridicons-layout-blocks":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 7h-2V3c0-1.105-.895-2-2-2H7c-1.105 0-2 .895-2 2v2H3c-1.105 0-2 .895-2 2v4c0 1.105.895 2 2 2h2v8c0 1.105.895 2 2 2h10c1.105 0 2-.895 2-2v-2h2c1.105 0 2-.895 2-2V9c0-1.105-.895-2-2-2zm-4 14H7v-8h2c1.105 0 2-.895 2-2V7c0-1.105-.895-2-2-2H7V3h10v4h-2c-1.105 0-2 .895-2 2v8c0 1.105.895 2 2 2h2v2zm4-4h-6V9h6v8z"})));break;case"gridicons-layout":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M8 20H5c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2v12c0 1.105-.895 2-2 2zm8-10h4c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2h-4c-1.105 0-2 .895-2 2v3c0 1.105.895 2 2 2zm5 10v-6c0-1.105-.895-2-2-2h-5c-1.105 0-2 .895-2 2v6c0 1.105.895 2 2 2h5c1.105 0 2-.895 2-2z"})));break;case"gridicons-link-break":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10 11l-2 2H7v-2h3zm9.64-3.64L22 5l-1.5-1.5-17 17L5 22l9-9h3v-2h-1l2-2c1.103 0 2 .897 2 2v2c0 1.103-.897 2-2 2h-4.977c.913 1.208 2.347 2 3.977 2h1c2.21 0 4-1.79 4-4v-2c0-1.623-.97-3.013-2.36-3.64zM4.36 16.64L6 15c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h4.977C10.065 7.792 8.63 7 7 7H6c-2.21 0-4 1.79-4 4v2c0 1.623.97 3.013 2.36 3.64z"})));break;case"gridicons-link":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 13H7v-2h10v2zm1-6h-1c-1.63 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 2h1c2.21 0 4-1.79 4-4v-2c0-2.21-1.79-4-4-4zM2 11v2c0 2.21 1.79 4 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.63 7 7 7H6c-2.21 0-4 1.79-4 4z"})));break;case"gridicons-list-checkmark":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M9.5 15.5L5 20l-2.5-2.5 1.06-1.06L5 17.88l3.44-3.44L9.5 15.5zM10 5v2h11V5H10zm0 14h11v-2H10v2zm0-6h11v-2H10v2zM8.44 8.44L5 11.88l-1.44-1.44L2.5 11.5 5 14l4.5-4.5-1.06-1.06zm0-6L5 5.88 3.56 4.44 2.5 5.5 5 8l4.5-4.5-1.06-1.06z"})));break;case"gridicons-list-ordered":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M8 19h13v-2H8v2zm0-6h13v-2H8v2zm0-8v2h13V5H8zm-4.425.252c.107-.096.197-.188.27-.275-.013.228-.02.48-.02.756V8h1.176V3.717H3.96L2.487 4.915l.6.738.487-.4zm.334 7.764c.474-.426.784-.715.93-.867.145-.153.26-.298.35-.436.087-.138.152-.278.194-.42.042-.143.063-.298.063-.466 0-.225-.06-.427-.18-.608s-.29-.32-.507-.417c-.218-.1-.465-.148-.742-.148-.22 0-.42.022-.596.067s-.34.11-.49.195c-.15.085-.337.226-.558.423l.636.744c.174-.15.33-.264.467-.34.138-.078.274-.117.41-.117.13 0 .232.032.304.097.073.064.11.152.11.264 0 .09-.02.176-.055.258-.036.082-.1.18-.192.294-.092.114-.287.328-.586.64L2.42 13.238V14h3.11v-.955H3.91v-.03zm.53 4.746v-.018c.306-.086.54-.225.702-.414.162-.19.243-.42.243-.685 0-.31-.126-.55-.378-.727-.252-.176-.6-.264-1.043-.264-.307 0-.58.033-.816.1s-.47.178-.696.334l.48.773c.293-.183.576-.274.85-.274.147 0 .263.027.35.082s.13.14.13.252c0 .3-.294.45-.882.45h-.27v.87h.264c.217 0 .393.017.527.05.136.03.233.08.294.143.06.064.09.154.09.27 0 .153-.057.265-.173.337-.115.07-.3.106-.554.106-.164 0-.343-.022-.538-.07-.194-.044-.385-.115-.573-.21v.96c.228.088.44.148.637.182.196.033.41.05.64.05.56 0 .998-.114 1.314-.343.315-.228.473-.542.473-.94.002-.585-.356-.923-1.07-1.013z"})));break;case"gridicons-list-unordered":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M9 19h12v-2H9v2zm0-6h12v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-location":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 9c0-3.866-3.134-7-7-7S5 5.134 5 9c0 1.387.41 2.677 1.105 3.765h-.008C8.457 16.46 12 22 12 22l5.903-9.235h-.007C18.59 11.677 19 10.387 19 9zm-7 3c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3z"})));break;case"gridicons-lock":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 8h-1V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H6c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V10c0-1.105-.895-2-2-2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm4 8.723V18h-2v-2.277c-.595-.346-1-.984-1-1.723 0-1.105.895-2 2-2s2 .895 2 2c0 .738-.405 1.376-1 1.723z"})));break;case"gridicons-mail":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 4.236l-8 4.882-8-4.882V6h16v2.236z"})));break;case"gridicons-mention":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10v-2c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8v.5c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.65 0 3.102-.81 4.013-2.043C16.648 15.6 17.527 16 18.5 16c1.93 0 3.5-1.57 3.5-3.5V12c0-5.523-4.477-10-10-10zm0 13c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3z"})));break;case"gridicons-menu":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 6v2H3V6h18zM3 18h18v-2H3v2zm0-5h18v-2H3v2z"})));break;case"gridicons-menus":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M9 19h10v-2H9v2zm0-6h6v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-microphone":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 13c1.104 0 2-.896 2-2V6c0-1.104-.896-2-2-2-1.105 0-2 .896-2 2v5c0 1.104.895 2 2 2zm4-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6c0 2.972 2.164 5.433 5 5.91V20h2v-3.09c2.836-.478 5-2.94 5-5.91h-2z"})));break;case"gridicons-minus-small":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6 11h12v2H6z"})));break;case"gridicons-minus":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M3 11h18v2H3z"})));break;case"gridicons-my-sites-horizon":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10.986 13.928l.762-2.284-1.324-3.63c-.458-.026-.892-.08-.892-.08-.458-.027-.405-.727.054-.7 0 0 1.403.107 2.24.107.888 0 2.265-.107 2.265-.107.46-.027.513.646.055.7 0 0-.46.055-.973.082l2.006 5.966c-.875-.034-1.74-.053-2.6-.06l-.428-1.177-.403 1.17c-.252.002-.508.01-.76.015zm-7.156.393c-.21-.737-.33-1.514-.33-2.32 0-1.232.264-2.402.736-3.46l2.036 5.58c.85-.06 1.69-.104 2.526-.138L6.792 8.015c.512-.027.973-.08.973-.08.458-.055.404-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.036-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .674-.244 1.463-.572 2.51.3.02.604.043.907.066l.798-2.307c.486-1.212.647-2.18.647-3.043 0-.313-.02-.603-.057-.874.662 1.21 1.04 2.6 1.04 4.077 0 .807-.128 1.58-.34 2.32.5.05 1.006.112 1.51.17.205-.798.33-1.628.33-2.49 0-5.523-4.477-10-10-10S2 6.477 2 12c0 .862.125 1.692.33 2.49.5-.057 1.003-.12 1.5-.17zm14.638 3.168C16.676 19.672 14.118 20.5 12 20.5c-1.876 0-4.55-.697-6.463-3.012-.585.048-1.174.1-1.77.16C5.572 20.272 8.578 22 12 22c3.422 0 6.43-1.73 8.232-4.35-.593-.063-1.18-.114-1.764-.162zM12 15.01c-3.715 0-7.368.266-10.958.733.18.41.35.825.506 1.247 3.427-.43 6.91-.68 10.452-.68s7.025.25 10.452.68c.156-.422.327-.836.506-1.246-3.59-.467-7.243-.734-10.958-.734z"})));break;case"gridicons-my-sites":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM3.5 12c0-1.232.264-2.402.736-3.46L8.29 19.65C5.456 18.272 3.5 15.365 3.5 12zm8.5 8.5c-.834 0-1.64-.12-2.4-.345l2.55-7.41 2.613 7.157c.017.042.038.08.06.117-.884.31-1.833.48-2.823.48zm1.172-12.485c.512-.027.973-.08.973-.08.458-.055.404-.728-.054-.702 0 0-1.376.108-2.265.108-.835 0-2.24-.107-2.24-.107-.458-.026-.51.674-.053.7 0 0 .434.055.892.082l1.324 3.63-1.86 5.578-3.096-9.208c.512-.027.973-.08.973-.08.458-.055.403-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.037-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .727-.28 1.572-.646 2.748l-.848 2.833-3.072-9.138zm3.1 11.332l2.597-7.506c.484-1.212.645-2.18.645-3.044 0-.313-.02-.603-.057-.874.664 1.21 1.042 2.6 1.042 4.078 0 3.136-1.7 5.874-4.227 7.347z"})));break;case"gridicons-not-visible":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M1 12s4.188-6 11-6c.947 0 1.84.12 2.678.322L8.36 12.64C8.133 12.14 8 11.586 8 11c0-.937.335-1.787.875-2.47C6.483 9.344 4.66 10.917 3.62 12c.68.707 1.696 1.62 2.98 2.398L5.15 15.85C2.498 14.13 1 12 1 12zm22 0s-4.188 6-11 6c-.946 0-1.836-.124-2.676-.323L5 22l-1.5-1.5 17-17L22 5l-3.147 3.147C21.5 9.87 23 12 23 12zm-2.615.006c-.678-.708-1.697-1.624-2.987-2.403L16 11c0 2.21-1.79 4-4 4l-.947.947c.31.03.624.053.947.053 3.978 0 6.943-2.478 8.385-3.994z"})));break;case"gridicons-notice-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})));break;case"gridicons-notice":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-pages":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-pencil":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M13 6l5 5-9.507 9.507c-.686-.686-.69-1.794-.012-2.485l-.002-.003c-.69.676-1.8.673-2.485-.013-.677-.677-.686-1.762-.036-2.455l-.008-.008c-.694.65-1.78.64-2.456-.036L13 6zm7.586-.414l-2.172-2.172c-.78-.78-2.047-.78-2.828 0L14 5l5 5 1.586-1.586c.78-.78.78-2.047 0-2.828zM3 18v3h3c0-1.657-1.343-3-3-3z"})));break;case"gridicons-phone":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-plans":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm-1 12H6l5-10v10zm2 6V10h5l-5 10z"})));break;case"gridicons-plugins":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16 8V3c0-.552-.448-1-1-1s-1 .448-1 1v5h-4V3c0-.552-.448-1-1-1s-1 .448-1 1v5H5v4c0 2.79 1.637 5.193 4 6.317V22h6v-3.683c2.363-1.124 4-3.527 4-6.317V8h-3z"})));break;case"gridicons-plus-small":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 11h-5V6h-2v5H6v2h5v5h2v-5h5"})));break;case"gridicons-plus":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20 13h-7v7h-2v-7H4v-2h7V4h2v7h7v2z"})));break;case"gridicons-popout":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6 7V5c0-1.105.895-2 2-2h11c1.105 0 2 .895 2 2v14c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-2h2v2h11V5H8v2H6zm5.5-.5l-1.414 1.414L13.172 11H3v2h10.172l-3.086 3.086L11.5 17.5 17 12l-5.5-5.5z"})));break;case"gridicons-posts":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"})));break;case"gridicons-print":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M9 16h6v2H9v-2zm13 1h-3v3c0 1.105-.895 2-2 2H7c-1.105 0-2-.895-2-2v-3H2V9c0-1.105.895-2 2-2h1V5c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2v2h1c1.105 0 2 .895 2 2v8zM7 7h10V5H7v2zm10 7H7v6h10v-6zm3-3.5c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5z"})));break;case"gridicons-quote":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M11.192 15.757c0-.88-.23-1.618-.69-2.217-.326-.412-.768-.683-1.327-.812-.55-.128-1.07-.137-1.54-.028-.16-.95.1-1.956.76-3.022.66-1.065 1.515-1.867 2.558-2.403L9.373 5c-.8.396-1.56.898-2.26 1.505-.71.607-1.34 1.305-1.9 2.094s-.98 1.68-1.25 2.69-.346 2.04-.217 3.1c.168 1.4.62 2.52 1.356 3.35.735.84 1.652 1.26 2.748 1.26.965 0 1.766-.29 2.4-.878.628-.576.94-1.365.94-2.368l.002.003zm9.124 0c0-.88-.23-1.618-.69-2.217-.326-.42-.77-.692-1.327-.817-.56-.124-1.074-.13-1.54-.022-.16-.94.09-1.95.75-3.02.66-1.06 1.514-1.86 2.557-2.4L18.49 5c-.8.396-1.555.898-2.26 1.505-.708.607-1.34 1.305-1.894 2.094-.556.79-.97 1.68-1.24 2.69-.273 1-.345 2.04-.217 3.1.165 1.4.615 2.52 1.35 3.35.732.833 1.646 1.25 2.742 1.25.967 0 1.768-.29 2.402-.876.627-.576.942-1.365.942-2.368v.01z"})));break;case"gridicons-reader":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M3 4v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4H3zm7 11H5v-1h5v1zm2-2H5v-1h7v1zm0-2H5v-1h7v1zm7 4h-5v-5h5v5zm0-7H5V6h14v2z"})));break;case"gridicons-reader-following":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M23,13.482L15.508,21L12,17.4l1.412-1.388l2.106,2.188l6.094-6.094L23,13.482z M15.545,15.344L20,10.889V2H2v14c0,1.1,0.9,2,2,2h4.538l4.913-4.832L15.545,15.344z M8,13H4v-1h4V13z M11,11H4v-1h7V11z M11,9H4V8h7V9z M18,6H4V4h14V6z"})));break;case"gridicons-reblog":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"})));break;case"gridicons-redo":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 6v3.586L14.343 5.93C13.17 4.756 11.636 4.17 10.1 4.17s-3.07.585-4.242 1.757c-2.343 2.342-2.343 6.14 0 8.484l5.364 5.364 1.414-1.414L7.272 13c-1.56-1.56-1.56-4.097 0-5.657.755-.755 1.76-1.172 2.828-1.172 1.068 0 2.073.417 2.828 1.173L16.586 11H13v2h7V6h-2z"})));break;case"gridicons-refresh":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17.91 14c-.478 2.833-2.943 5-5.91 5-3.308 0-6-2.692-6-6s2.692-6 6-6h2.172l-2.086 2.086L13.5 10.5 18 6l-4.5-4.5-1.414 1.414L14.172 5H12c-4.418 0-8 3.582-8 8s3.582 8 8 8c4.08 0 7.438-3.055 7.93-7h-2.02z"})));break;case"gridicons-reply":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M14 8H6.828l2.586-2.586L8 4 3 9l5 5 1.414-1.414L6.828 10H14c2.206 0 4 1.794 4 4s-1.794 4-4 4h-2v2h2c3.314 0 6-2.686 6-6s-2.686-6-6-6z"})));break;case"gridicons-rotate":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 14v6c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-6c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2zM13.914 2.914L11.828 5H14c4.418 0 8 3.582 8 8h-2c0-3.308-2.692-6-6-6h-2.172l2.086 2.086L12.5 10.5 8 6l1.414-1.414L12.5 1.5l1.414 1.414z"})));break;case"gridicons-scheduled":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M10.498 18l-3.705-3.704 1.415-1.415 2.294 2.295 5.293-5.293 1.415 1.415L10.498 18zM21 6v13c0 1.104-.896 2-2 2H5c-1.104 0-2-.896-2-2V6c0-1.104.896-2 2-2h1V2h2v2h8V2h2v2h1c1.104 0 2 .896 2 2zm-2 2H5v11h14V8z"})));break;case"gridicons-search":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-share-ios":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 8h2c1.105 0 2 .895 2 2v9c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2v-9c0-1.105.895-2 2-2h2v2H5v9h14v-9h-2V8zM6.5 5.5l1.414 1.414L11 3.828V14h2V3.828l3.086 3.086L17.5 5.5 12 0 6.5 5.5z"})));break;case"gridicons-share":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 16c-.788 0-1.5.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.118c-.053.223-.088.453-.088.692 0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3z"})));break;case"gridicons-sign-out":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M16 17v2c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h9c1.105 0 2 .895 2 2v2h-2V5H5v14h9v-2h2zm2.5-10.5l-1.414 1.414L20.172 11H10v2h10.172l-3.086 3.086L18.5 17.5 24 12l-5.5-5.5z"})));break;case"gridicons-spam":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 2H7L2 7v10l5 5h10l5-5V7l-5-5zm-4 15h-2v-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-speaker":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 8v6c1.7 0 3-1.3 3-3s-1.3-3-3-3zM11 7H4c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h1v3c0 1.1.9 2 2 2h2v-5h2l4 4h2V3h-2l-4 4z"})));break;case"gridicons-special-character":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12.005 7.418c-1.237 0-2.19.376-2.86 1.128s-1.005 1.812-1.005 3.18c0 1.387.226 2.513.677 3.377.45.865 1.135 1.543 2.05 2.036V20H5v-2.666h3.12c-1.04-.636-1.842-1.502-2.405-2.6-.564-1.097-.846-2.322-.846-3.676 0-1.258.29-2.363.875-3.317.585-.952 1.417-1.685 2.497-2.198s2.334-.77 3.763-.77c2.18 0 3.915.572 5.204 1.713s1.932 2.673 1.932 4.594c0 1.353-.283 2.57-.852 3.65-.567 1.08-1.38 1.947-2.44 2.603H19V20h-5.908v-2.86c.95-.493 1.65-1.18 2.102-2.062s.677-2.006.677-3.374c0-1.36-.336-2.415-1.01-3.164-.672-.747-1.624-1.122-2.855-1.122z"})));break;case"gridicons-star-outline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-star":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-stats-alt":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M21 21H3v-2h18v2zM8 10H4v7h4v-7zm6-7h-4v14h4V3zm6 3h-4v11h4V6z"})));break;case"gridicons-stats":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm0 16H5V5h14v14zM9 17H7v-5h2v5zm4 0h-2V7h2v10zm4 0h-2v-7h2v7z"})));break;case"gridicons-status":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM7.55 13c-.02.166-.05.33-.05.5 0 2.485 2.015 4.5 4.5 4.5s4.5-2.015 4.5-4.5c0-.17-.032-.334-.05-.5h-8.9zM10 10V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1zm6 0V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1z"})));break;case"gridicons-strikethrough":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M14.348 12H21v2h-4.613c.24.515.368 1.094.368 1.748 0 1.317-.474 2.355-1.423 3.114-.947.76-2.266 1.138-3.956 1.138-1.557 0-2.934-.293-4.132-.878v-2.874c.985.44 1.818.75 2.5.928.682.18 1.306.27 1.872.27.68 0 1.2-.13 1.562-.39.363-.26.545-.644.545-1.158 0-.285-.08-.54-.24-.763-.16-.222-.394-.437-.704-.643-.18-.12-.483-.287-.88-.49H3v-2H14.347zm-3.528-2c-.073-.077-.143-.155-.193-.235-.126-.202-.19-.44-.19-.713 0-.44.157-.795.47-1.068.313-.273.762-.41 1.348-.41.492 0 .993.064 1.502.19.51.127 1.153.35 1.93.67l1-2.405c-.753-.327-1.473-.58-2.16-.76-.69-.18-1.414-.27-2.173-.27-1.544 0-2.753.37-3.628 1.108-.874.738-1.312 1.753-1.312 3.044 0 .302.036.58.088.848h3.318z"})));break;case"gridicons-sync":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M23.5 13.5l-3.086 3.086L19 18l-4.5-4.5 1.414-1.414L18 14.172V12c0-3.308-2.692-6-6-6V4c4.418 0 8 3.582 8 8v2.172l2.086-2.086L23.5 13.5zM6 12V9.828l2.086 2.086L9.5 10.5 5 6 3.586 7.414.5 10.5l1.414 1.414L4 9.828V12c0 4.418 3.582 8 8 8v-2c-3.308 0-6-2.692-6-6z"})));break;case"gridicons-tablet":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 2H6c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h12c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-5 19h-2v-1h2v1zm5-2H6V5h12v14z"})));break;case"gridicons-tag":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-text-color":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M3 19h18v3H3v-3zM15.82 17h3.424L14 3h-4L4.756 17H8.18l1.067-3.5h5.506L15.82 17zm-1.952-6h-3.73l1.868-5.725L13.868 11z"})));break;case"gridicons-themes":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 6c-1.105 0-2 .895-2 2v12c0 1.1.9 2 2 2h12c1.105 0 2-.895 2-2H4V6zm16-4H8c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V4c0-1.105-.895-2-2-2zm-5 14H8V9h7v7zm5 0h-3V9h3v7zm0-9H8V4h12v3z"})));break;case"gridicons-thumbs-up":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6.7 22H2v-9h2l2.7 9zM20 9h-6V5c0-1.657-1.343-3-3-3h-1v4L7.1 9.625c-.712.89-1.1 1.996-1.1 3.135V14l2.1 7h8.337c1.836 0 3.435-1.25 3.88-3.03l1.622-6.485C22.254 10.223 21.3 9 20 9z"})));break;case"gridicons-time":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.8 13.4L13 11.667V7h-2v5.333l3.2 4.266 1.6-1.2z"})));break;case"gridicons-trash":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M6.187 8h11.625l-.695 11.125C17.05 20.18 16.177 21 15.12 21H8.88c-1.057 0-1.93-.82-1.997-1.875L6.187 8zM19 5v2H5V5h3V4c0-1.105.895-2 2-2h4c1.105 0 2 .895 2 2v1h3zm-9 0h4V4h-4v1z"})));break;case"gridicons-trophy":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18 5.062V3H6v2.062H2V8c0 2.525 1.89 4.598 4.324 4.932.7 2.058 2.485 3.61 4.676 3.978V18c0 1.105-.895 2-2 2H8v2h8v-2h-1c-1.105 0-2-.895-2-2v-1.09c2.19-.368 3.976-1.92 4.676-3.978C20.11 12.598 22 10.525 22 8V5.062h-4zM4 8v-.938h2v3.766C4.836 10.416 4 9.304 4 8zm16 0c0 1.304-.836 2.416-2 2.83V7.06h2V8z"})));break;case"gridicons-types":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M22 17c0 2.76-2.24 5-5 5s-5-2.24-5-5 2.24-5 5-5 5 2.24 5 5zM6.5 6.5h3.8L7 1 1 11h5.5V6.5zm9.5 4.085V8H8v8h2.585c.433-2.783 2.632-4.982 5.415-5.415z"})));break;case"gridicons-underline":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M4 19v2h16v-2H4zM18 3v8c0 3.314-2.686 6-6 6s-6-2.686-6-6V3h3v8c0 1.654 1.346 3 3 3s3-1.346 3-3V3h3z"})));break;case"gridicons-undo":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M18.142 5.93C16.97 4.756 15.435 4.17 13.9 4.17s-3.072.586-4.244 1.757L6 9.585V6H4v7h7v-2H7.414l3.657-3.657c.756-.755 1.76-1.172 2.83-1.172 1.067 0 2.072.417 2.827 1.173 1.56 1.56 1.56 4.097 0 5.657l-5.364 5.364 1.414 1.414 5.364-5.364c2.345-2.343 2.345-6.142.002-8.485z"})));break;case"gridicons-user-circle":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18.5c-4.694 0-8.5-3.806-8.5-8.5S7.306 3.5 12 3.5s8.5 3.806 8.5 8.5-3.806 8.5-8.5 8.5zm0-8c-3.038 0-5.5 1.728-5.5 3.5s2.462 3.5 5.5 3.5 5.5-1.728 5.5-3.5-2.462-3.5-5.5-3.5zm0-.5c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3z"})));break;case"gridicons-user":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 16s8 0 8-2c0-2.4-3.9-5-8-5s-8 2.6-8 5c0 2 8 2 8 2z"})));break;case"gridicons-video-camera":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M17 9V7c0-1.105-.895-2-2-2H4c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h11c1.105 0 2-.895 2-2v-2l5 4V5l-5 4z"})));break;case"gridicons-video":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.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"})));break;case"gridicons-visible":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M12 6C5.188 6 1 12 1 12s4.188 6 11 6 11-6 11-6-4.188-6-11-6zm0 10c-3.943 0-6.926-2.484-8.38-4 1.04-1.085 2.863-2.657 5.255-3.47C8.335 9.214 8 10.064 8 11c0 2.21 1.79 4 4 4s4-1.79 4-4c0-.937-.335-1.787-.875-2.47 2.393.813 4.216 2.386 5.254 3.47-1.456 1.518-4.438 4-8.38 4z"})));break;case"gridicons-chat":e=s.a.createElement("svg",{className:a,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s.a.createElement("g",null,s.a.createElement("path",{d:"M20,4h-8c-1.1,0-2,0.9-2,2v2h2c1.7,0,3,1.3,3,3v2h2v3.5l3.3-2.3c1.1-0.8,1.7-2,1.7-3.3V6C22,4.9,21.1,4,20,4z"}),s.a.createElement("g",null,s.a.createElement("path",{d:"M14,11v5c0,1.1-0.9,2-2,2H7v3.5l-3.3-2.3c-1.1-0.8-1.7-2-1.7-3.3V11c0-1.1,0.9-2,2-2h8C13.1,9,14,9.9,14,11z"}))))}return e}}));n(218);function zc(e,t){switch(t.key){case" ":case"Enter":this[e](t)}}var Bc=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{keyword:n.props.initialValue||"",isOpen:!!n.props.isOpen,hasFocus:!1}),na()(wo()(n),"scrollOverlay",(function(){n.refs.overlay&&window.requestAnimationFrame((function(){n.refs.overlay&&n.refs.searchInput&&(n.refs.overlay.scrollLeft=n.getScrollLeft(n.refs.searchInput))}))})),na()(wo()(n),"getScrollLeft",(function(e){if(!e.createTextRange)return e.scrollLeft;var t=e.createTextRange(),n=window.getComputedStyle(e,void 0),r=parseFloat(n.paddingLeft),i=t.getBoundingClientRect();return e.getBoundingClientRect().left+e.clientLeft+r-i.left})),na()(wo()(n),"focus",(function(){setTimeout((function(){return n.refs.searchInput&&a.a.findDOMNode(n.refs.searchInput).focus()}),0)})),na()(wo()(n),"blur",(function(){a.a.findDOMNode(n.refs.searchInput).blur()})),na()(wo()(n),"getCurrentSearchValue",(function(){return a.a.findDOMNode(n.refs.searchInput).value})),na()(wo()(n),"clear",(function(){n.setState({keyword:""})})),na()(wo()(n),"onBlur",(function(e){n.props.onBlur&&n.props.onBlur(e),n.setState({hasFocus:!1})})),na()(wo()(n),"onChange",(function(){n.setState({keyword:n.getCurrentSearchValue()})})),na()(wo()(n),"openSearch",(function(e){n.props.onClick(),e.preventDefault(),n.setState({keyword:"",isOpen:!0}),uc.ga.recordEvent(n.props.analyticsGroup,"Clicked Open Search")})),na()(wo()(n),"closeSearch",(function(e){if(e.preventDefault(),!n.props.disabled){var t=a.a.findDOMNode(n.refs.searchInput);n.setState({keyword:"",isOpen:n.props.isOpen||!1}),t.value="",t.blur(),n.props.pinned&&a.a.findDOMNode(n.refs.openIcon).focus(),n.props.onSearchClose(e),uc.ga.recordEvent(n.props.analyticsGroup,"Clicked Close Search")}})),na()(wo()(n),"keyUp",(function(e){"Enter"===e.key&&Tc()&&n.blur(),n.props.pinned&&("Escape"===e.key&&n.closeSearch(e),n.scrollOverlay())})),na()(wo()(n),"keyDown",(function(e){n.scrollOverlay(),"Escape"===e.key&&""===e.target.value&&n.closeSearch(e),n.props.onKeyDown(e)})),na()(wo()(n),"onFocus",(function(){var e=a.a.findDOMNode(n.refs.searchInput),t=e.value;t&&(e.value="",e.value=t),n.setState({hasFocus:!0}),n.props.onSearchOpen()})),na()(wo()(n),"renderStylingDiv",(function(){return s.a.createElement("div",{className:"dops-search__text-overlay",ref:"overlay"},n.props.overlayStyling(n.state.keyword))})),na()(wo()(n),"closeButton",(function(){return n.props.hideClose||!n.state.keyword&&!n.state.isOpen?null:s.a.createElement("div",{role:"button",className:"dops-search__icon-navigation",onClick:n.closeSearch,tabIndex:"0",onKeyDown:n.closeListener,"aria-controls":"dops-search-component-"+n.state.instanceId,"aria-label":"Close Search"},s.a.createElement(Lc,{icon:"cross",className:"dops-search__close-icon"}))})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.setState({instanceId:++t.instances}),this.closeListener=zc.bind(this,"closeSearch"),this.openListener=zc.bind(this,"openSearch")}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){e.onSearch===this.props.onSearch&&e.delaySearch===this.props.delaySearch||(this.onSearch=this.props.delaySearch?Object(It.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch),e.isOpen&&this.setState({isOpen:e.isOpen}),e.initialValue===this.props.initialValue||this.state.keyword!==this.props.initialValue&&""!==this.state.keyword||this.setState({keyword:e.initialValue||""})}},{key:"componentDidUpdate",value:function(e,t){this.scrollOverlay(),(this.state.isOpen&&!t.isOpen||this.props.autoFocus&&!e.autoFocus)&&this.focus(),this.state.keyword!==t.keyword&&(this.state.keyword?this.onSearch(this.state.keyword):(this.props.delaySearch&&this.onSearch.cancel(),this.props.onSearch(this.state.keyword)),this.props.onSearchChange(this.state.keyword))}},{key:"componentDidMount",value:function(){var e=this;this.onSearch=this.props.delaySearch?Object(It.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch,this.props.autoFocus&&setTimeout((function(){return e.focus()}),0)}},{key:"render",value:function(){var e=this.state.keyword,t=this.props.placeholder||"Search…",n=this.props.pinned&&!this.state.isOpen,r=this.state.isOpen||!this.props.pinned||this.props.initialValue,i=this.props.disableAutocorrect&&{autoComplete:"off",autoCorrect:"off",spellCheck:"false"},a=Zs()(this.props.additionalClasses,this.props.dir,{"is-expanded-to-container":this.props.fitsContainer,"is-open":r,"is-searching":this.props.searching,"has-focus":this.state.hasFocus,"dops-search":!0}),o=Zs()("dops-search__input-fade",this.props.dir),c=Zs()("dops-search__input",this.props.dir);return s.a.createElement("div",{dir:this.props.dir||null,className:a,role:"search"},s.a.createElement(Fc,null),s.a.createElement("div",{role:"button",className:"dops-search__icon-navigation",ref:"openIcon",onClick:n?this.openSearch:this.focus,tabIndex:n?"0":null,onKeyDown:n?this.openListener:null,"aria-controls":"dops-search-component-"+this.state.instanceId,"aria-label":"Open Search"},s.a.createElement(Lc,{icon:"search",className:"dops-search__open-icon"})),s.a.createElement("div",{className:o},s.a.createElement("input",fc()({type:"search",onChange:this.onChange,id:"dops-search-component-"+this.state.instanceId,className:c,placeholder:t,role:"searchbox",value:e,ref:"searchInput",onKeyUp:this.keyUp,onKeyDown:this.keyDown,onMouseUp:this.props.onClick,onFocus:this.onFocus,onBlur:this.onBlur,disabled:this.props.disabled,"aria-hidden":!r,autoCapitalize:"none",dir:this.props.dir,maxLength:this.props.maxLength},i)),this.props.overlayStyling&&this.renderStylingDiv()),this.closeButton())}}]),t}(s.a.Component);na()(Bc,"displayName","Search"),na()(Bc,"instances",0),na()(Bc,"propTypes",{additionalClasses:u.a.string,initialValue:u.a.string,placeholder:u.a.string,pinned:u.a.bool,delaySearch:u.a.bool,delayTimeout:u.a.number,onSearch:u.a.func.isRequired,onSearchChange:u.a.func,onSearchOpen:u.a.func,onSearchClose:u.a.func,analyticsGroup:u.a.string,overlayStyling:u.a.func,autoFocus:u.a.bool,disabled:u.a.bool,onKeyDown:u.a.func,onClick:u.a.func,disableAutocorrect:u.a.bool,onBlur:u.a.func,searching:u.a.bool,isOpen:u.a.bool,dir:u.a.oneOf(["ltr","rtl"]),fitsContainer:u.a.bool,maxLength:u.a.number,hideClose:u.a.bool}),na()(Bc,"defaultProps",{pinned:!1,delaySearch:!1,delayTimeout:300,autoFocus:!1,disabled:!1,onSearchChange:It.noop,onSearchOpen:It.noop,onSearchClose:It.noop,onKeyDown:It.noop,onClick:It.noop,overlayStyling:void 0,disableAutocorrect:!1,searching:!1,isOpen:!1,dir:void 0,fitsContainer:!1,hideClose:!1});var Vc=Bc,Hc=(n(219),pe()({displayName:"SectionNav",propTypes:{children:u.a.node,selectedText:u.a.node,selectedCount:u.a.number,hasPinnedItems:u.a.bool,onMobileNavPanelOpen:u.a.func},getInitialState:function(){return{mobileOpen:!1}},getDefaultProps:function(){return{onMobileNavPanelOpen:function(){}}},UNSAFE_componentWillMount:function(){this.checkForSiblingControls(this.props.children)},UNSAFE_componentWillReceiveProps:function(e){Object(It.isEqual)(this.props,e)||(this.checkForSiblingControls(e.children),this.hasSiblingControls||this.closeMobilePanel())},render:function(){var e,t=this.getChildren();return t?(e=Zs()({"dops-section-nav":!0,"is-open":this.state.mobileOpen,"has-pinned-items":this.hasPinnedSearch||this.props.hasPinnedItems}),s.a.createElement("div",{className:e},s.a.createElement("div",{className:"dops-section-nav__mobile-header",role:"button",onClick:this.toggleMobileOpenState,tabIndex:0,onKeyUp:this.toggleMobileOpenState},s.a.createElement("span",{className:"dops-section-nav__mobile-header-text"},this.props.selectedText)),s.a.createElement("div",{className:"dops-section-nav__panel"},t))):(e=Zs()({"dops-section-nav":!0,"is-empty":!0}),s.a.createElement("div",{className:e},s.a.createElement("div",{className:"dops-section-nav__panel"},s.a.createElement(Rc,null))))},getChildren:function(){return s.a.Children.map(this.props.children,function(e){var t={hasSiblingControls:this.hasSiblingControls,closeSectionNavMobilePanel:this.closeMobilePanel};return e?(e.type!==Dc||e.props.selectedText||"string"!=typeof this.props.selectedText||(t.selectedText=this.props.selectedText),e.type===Dc&&this.props.selectedCount&&(t.selectedCount=this.props.selectedCount),e.type===Vc&&(e.props.pinned&&(this.hasPinnedSearch=!0),t.onSearch=this.generateOnSearch(e.props.onSearch)),s.a.cloneElement(e,t)):null}.bind(this))},closeMobilePanel:function(){window.innerWidth<480&&this.state.mobileOpen&&this.setState({mobileOpen:!1})},toggleMobileOpenState:function(){var e=!this.state.mobileOpen;this.setState({mobileOpen:e}),e&&this.props.onMobileNavPanelOpen()},generateOnSearch:function(e){return function(){e.apply(this,arguments),this.closeMobilePanel()}.bind(this)},checkForSiblingControls:function(e){this.hasSiblingControls=!1,s.a.Children.forEach(e,function(e,t){t&&e&&e.type!==Vc&&(this.hasSiblingControls=!0)}.bind(this))}})),qc=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackNavClick",(function(e){uc.tracks.recordJetpackClick({target:"nav_item",path:e})})),na()(wo()(n),"trackDashboardClick",(function(){n.trackNavClick("dashboard")})),na()(wo()(n),"trackMyPlanClick",(function(){n.trackNavClick("my-plan")})),na()(wo()(n),"trackPlansClick",(function(){n.trackNavClick("plans")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e;return e=this.props.userCanManageModules?s.a.createElement(Dc,{selectedText:this.props.route.name},s.a.createElement(Rc,{path:"#/dashboard",onClick:this.trackDashboardClick,selected:"/dashboard"===this.props.route.path||"/"===this.props.route.path},xo("At a Glance",{context:"Navigation item."})),!this.props.isDevMode&&this.props.isLinked&&s.a.createElement(Rc,{path:"#/my-plan",onClick:this.trackMyPlanClick,selected:"/my-plan"===this.props.route.path},xo("My Plan",{context:"Navigation item."})),!this.props.isDevMode&&this.props.isLinked&&s.a.createElement(Rc,{path:"#/plans",onClick:this.trackPlansClick,selected:"/plans"===this.props.route.path},xo("Plans",{context:"Navigation item."}))):s.a.createElement(Dc,{selectedText:this.props.route.name},s.a.createElement(Rc,{path:"#/dashboard",selected:"/dashboard"===this.props.route.path||"/"===this.props.route.path},xo("At a Glance",{context:"Navigation item."}))),s.a.createElement("div",{id:"jp-navigation",className:"dops-navigation"},s.a.createElement(Hc,{selectedText:this.props.route.name},e))}}]),t}(s.a.Component);qc.propTypes={route:u.a.object.isRequired,isDevMode:u.a.bool.isRequired};var Kc=le((function(e){return{userCanManageModules:hi(e),userCanViewStats:Ei(e),isModuleActivated:function(t){return Ua(e,t)},isDevMode:Vo(e),isLinked:Bo(e)}}))(qc),Jc=n(112),Wc=n.n(Jc),Gc=n(113),Yc=n.n(Gc),$c=rc()("calypso:url-search"),Xc={getInitialState:function(){return{searchOpen:!1}},UNSAFE_componentWillReceiveProps:function(e){e.search||this.setState({searchOpen:!1})},doSearch:function(e){var t,n,r,i;(this.setState({searchOpen:!1!==e}),this.onSearch)?this.onSearch(e):(this.buildUrl&&"function"==typeof this.buildUrl?t=this.buildUrl(window.location.href,e):(n=window.location.href,r=e,i=Yc.a.parse(n,!0),r?i.query.s=r:delete i.query.s,i=Object(It.pick)(i,"pathname","hash","query"),t=Yc.a.format(i).replace(/\%20/g,"+")),$c("search posts for:",e),this.props.search&&e?($c("replacing URL: "+t),Wc.a.replace(t)):($c("setting URL: "+t),Wc()(t)))},getSearchOpen:function(){return!1!==this.state.searchOpen||this.props.search}},Qc=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.isFetchingPluginsData||this.props.fetchPluginsData()}},{key:"render",value:function(){return null}}]),t}(s.a.Component),Zc=le((function(e){return{isFetchingPluginsData:aa(e)}}),(function(e){return{fetchPluginsData:function(){return e(Aa())}}}))(Qc),el=pe()({displayName:"NavigationSettings",mixins:[Xc],UNSAFE_componentWillMount:function(){this.onRouteChange(this.context.router.getCurrentLocation()),this.context.router.listen(this.onRouteChange)},onRouteChange:function(e){var t=(e.search||"").substr(1).split("&").filter((function(e){return 0===e.indexOf("term=")})),n="";t.length>0&&(n=t[0].split("=")[1]),this.props.searchForTerm(decodeURIComponent(n))},maybeShowSearch:function(){if(this.props.userCanManageModules)return s.a.createElement(Vc,{onClick:this.handleClickForTracking("search"),pinned:!0,fitsContainer:!0,placeholder:xo("Search for a Jetpack feature."),delaySearch:!0,delayTimeout:500,onSearch:this.doSearch,isOpen:!!this.props.searchTerm,initialValue:this.props.searchTerm})},trackNavClick:function(e){uc.tracks.recordJetpackClick({target:"nav_item",path:e})},buildUrl:function(e,t){var n=e.split("#")[1].split("?");return this.props.searchForTerm(t),"#"+n[0]+(t?"?term="+t:"")},handleClickForTracking:function(e){var t=this;return function(){return t.trackNavClick(e)}},render:function(){var e,t;return this.props.userCanManageModules?e=s.a.createElement(Dc,{selectedText:this.props.route.name},this.props.hasAnySecurityFeature&&s.a.createElement(Rc,{path:"#security",onClick:this.handleClickForTracking("security"),selected:"/security"===this.props.route.path||"/settings"===this.props.route.path},xo("Security",{context:"Navigation item."})),this.props.hasAnyPerformanceFeature&&s.a.createElement(Rc,{path:"#performance",onClick:this.handleClickForTracking("performance"),selected:"/performance"===this.props.route.path},xo("Performance",{context:"Navigation item."})),this.props.hasAnyOfTheseModules(["masterbar","markdown","custom-content-types","post-by-email","infinite-scroll","minileven","copy-post"])&&s.a.createElement(Rc,{path:"#writing",onClick:this.handleClickForTracking("writing"),selected:"/writing"===this.props.route.path},xo("Writing",{context:"Navigation item."})),this.props.hasAnyOfTheseModules(["publicize","sharedaddy","likes"])&&s.a.createElement(Rc,{path:"#sharing",onClick:this.handleClickForTracking("sharing"),selected:"/sharing"===this.props.route.path},xo("Sharing",{context:"Navigation item."})),this.props.hasAnyOfTheseModules(["comments","gravatar-hovercards","markdown","subscriptions"])&&s.a.createElement(Rc,{path:"#discussion",onClick:this.handleClickForTracking("discussion"),selected:"/discussion"===this.props.route.path},xo("Discussion",{context:"Navigation item."})),this.props.hasAnyOfTheseModules(["seo-tools","wordads","stats","related-posts","verification-tools","sitemaps","google-analytics"])&&s.a.createElement(Rc,{path:"#traffic",onClick:this.handleClickForTracking("traffic"),selected:"/traffic"===this.props.route.path},xo("Traffic",{context:"Navigation item."}))):this.props.isSubscriber?e=!1:(t=this.props.isModuleActivated("publicize")&&this.props.userCanPublish?this.props.hasAnyOfTheseModules(["publicize"])&&s.a.createElement(Rc,{path:"#sharing",onClick:this.handleClickForTracking("sharing"),selected:"/sharing"===this.props.route.path},xo("Sharing",{context:"Navigation item."})):"",e=s.a.createElement(Dc,{selectedText:this.props.route.name},this.props.hasAnyOfTheseModules(["post-by-email"])&&s.a.createElement(Rc,{path:"#writing",onClick:this.handleClickForTracking("writing"),selected:"/writing"===this.props.route.path||"/settings"===this.props.route.path},xo("Writing",{context:"Navigation item."})),t)),s.a.createElement("div",{id:"jp-navigation",className:"dops-navigation"},s.a.createElement(Zc,null),s.a.createElement(Hc,{selectedText:this.props.route.name},e,this.maybeShowSearch()))}});el.contextTypes={router:u.a.object.isRequired},el.propTypes={userCanManageModules:u.a.bool.isRequired,isSubscriber:u.a.bool.isRequired,userCanPublish:u.a.bool.isRequired,isLinked:u.a.bool.isRequired,isSiteConnected:u.a.bool.isRequired,isModuleActivated:u.a.func.isRequired,searchHasFocus:u.a.bool.isRequired},el.defaultProps={userCanManageModules:!1,isSubscriber:!1,userCanPublish:!1,isLinked:!1,isSiteConnected:!1,isModuleActivated:It.noop,searchHasFocus:!1};var tl=le((function(e){return{hasAnyOfTheseModules:function(t){return Ia(e,t)},hasAnyPerformanceFeature:Da(e),hasAnySecurityFeature:Ra(e),userCanManageModules:hi(e),isSubscriber:pi(e),userCanPublish:di(e),isLinked:Bo(e),isSiteConnected:Io(e),isModuleActivated:function(t){return Ua(e,t)},moduleList:Ta(e),isPluginActive:function(t){return oa(e,t)},searchTerm:ps(e)}}),(function(e){return{searchForTerm:function(t){return e(function(e){return function(t){t({type:Tr,term:e})}}(t))}}}))(el),nl=(n(227),function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"_renderWithTitle",(function(){var e="dops-card-section-orient-"+(n.props.vertical?"vertical":"horizontal");return s.a.createElement("div",{className:e},s.a.createElement("h4",{ref:"label",className:"dops-card-section-label"},n.props.title),s.a.createElement("div",{ref:"content",className:"dops-card-section-content"},n.props.children))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",{className:Zs()("dops-card-section",this.props.className),style:this.props.style},this.props.title?this._renderWithTitle():this.props.children)}}]),t}(s.a.Component));na()(nl,"propTypes",{title:u.a.any,vertical:u.a.any,style:u.a.object,className:u.a.string,device:u.a.oneOf(["desktop","tablet","phone"])}),na()(nl,"defaultProps",{vertical:null});var rl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",{className:"dops-card-footer"},this.props.children)}}]),t}(s.a.Component),il=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"_renderIcon",(function(){return s.a.createElement("span",{className:"dops-card-icon",style:{color:n.props.iconColor}},n.props.icon&&s.a.createElement(Lc,{icon:n.props.icon,style:{backgroundColor:n.props.iconColor}}),n.props.iconLabel)})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e,t,n=Zs()("dops-card",this.props.className,{"is-card-link":!!this.props.href,"is-compact":this.props.compact}),r=["compact","tagName","meta","iconColor"];return this.props.href?e=s.a.createElement(Lc,{className:"dops-card__link-indicator",icon:this.props.target?"external":"chevron-right"}):r.push("href","target"),this.props.title&&(t=s.a.createElement("h2",{className:"dops-card-title"},this.props.title,this.props.meta&&s.a.createElement("span",{className:"dops-card-meta"},this.props.meta),(this.props.icon||this.props.iconLabel)&&this._renderIcon())),s.a.createElement(this.props.href?"a":this.props.tagName,Object(It.assign)(Object(It.omit)(this.props,r),{className:n}),e,t,this.props.children)}}]),t}(s.a.Component);na()(il,"propTypes",{meta:u.a.any,icon:u.a.string,iconLabel:u.a.any,iconColor:u.a.string,style:u.a.object,className:u.a.string,href:u.a.string,onClick:u.a.func,title:u.a.string,tagName:u.a.string,target:u.a.string,compact:u.a.bool,children:u.a.node}),na()(il,"defaultProps",{iconColor:"#787878",className:"",tagName:"div",onClick:function(){}}),il.Section=nl,il.Footer=rl;var al=il,ol=function(){return{type:cr}},sl=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(n){var r=go()({progress:xo("Updating settings…"),success:xo("Updated settings."),error:function(e){return xo("Error updating settings. %(error)s",{args:{error:e.message||e.code||e.name||e}})}},t);"object"==typeof e&&Object(It.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(function(t){return t in e}))&&(r.success=xo("Updated settings. Refreshing page…")),n(za("module-setting-update")),n(za("module-setting-update-success"));var i=["dismiss_dash_app_card","dismiss_empty_stats_card"];return"object"!=typeof e||Object(It.some)(i,(function(t){return t in e}))||n(Ba("is-info",r.progress,{id:"module-setting-update"})),n({type:ir,updatedOptions:e}),Ca.updateSettings(e).then((function(t){n({type:or,updatedOptions:cl(t,e),success:t}),jo(e),Oo(e),n(za("module-setting-update")),n(za("module-setting-update-success")),"object"!=typeof e||Object(It.some)(i,(function(t){return t in e}))||n(Ba("is-success",r.success,{id:"module-setting-update-success",duration:2e3}))})).catch((function(t){n({type:ar,success:!1,error:t,updatedOptions:e}),n(za("module-setting-update")),n(Ba("is-error",r.error(t),{id:"module-setting-update"}))}))}};function cl(e,t){var n=t;return"regenerate"===Object(It.get)(t,"post_by_email_address")&&(n={post_by_email_address:e.post_by_email_address}),n}var ll=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.isFetchingSiteData||this.props.isDevMode||!Object(It.isEmpty)(this.props.sitePlan)||(this.props.fetchSiteData(),this.props.fetchSiteFeatures(),this.props.fetchAvailablePlans(),this.props.fetchSitePurchases())}},{key:"render",value:function(){return null}}]),t}(o.Component);na()(ll,"propTypes",{isFetchingSiteData:u.a.bool,isDevMode:u.a.bool,sitePlan:u.a.object}),na()(ll,"defaultProps",{isFetchingSiteData:!1,isDevMode:!1,sitePlan:{}});var ul=le((function(e){return{isFetchingSiteData:Es(e),isDevMode:Vo(e),sitePlan:Ss(e)}}),(function(e){return{fetchSiteData:function(){return e((function(e){return e({type:lr}),Ca.fetchSiteData().then((function(t){return e({type:ur,siteData:t}),t})).catch((function(t){e({type:pr,error:t})}))}))},fetchSiteFeatures:function(){return e((function(e){return e({type:mr}),Ca.fetchSiteFeatures().then((function(t){return e({type:gr,siteFeatures:t}),t})).catch((function(t){e({type:vr,error:t})}))}))},fetchAvailablePlans:function(){return e((function(e){return e({type:br}),Ca.getPlans().then((function(t){return e({type:yr,plans:t}),t})).catch((function(t){e({type:wr,error:t})}))}))},fetchSitePurchases:function(){return e((function(e){return e({type:_r}),Ca.fetchSitePurchases().then((function(t){return e({type:kr,purchases:t}),t})).catch((function(t){e({type:Er,error:t})}))}))}}}))(ll),pl=(n(228),function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"focus",(function(){n.refs.textField.focus()})),na()(wo()(n),"selectOnFocus",(function(e){e.target.select()})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.selectOnFocus,r=Zs()(t,{"dops-text-input":!0,"is-error":this.props.isError,"is-valid":this.props.isValid}),i=Object(It.omit)(this.props,"selectOnFocus","isError","isValid");return s.a.createElement("input",fc()({},i,{ref:"textField",className:r,onClick:n?this.selectOnFocus:null}))}}]),t}(s.a.Component));na()(pl,"displayName","TextInput"),na()(pl,"defaultProps",{isError:!1,isValid:!1,selectOnFocus:!1,type:"text"});var dl=function(e){return s.a.createElement("fieldset",fc()({},Object(It.omit)(e,"className"),{className:Zs()(e.className,"jp-form-fieldset")}),e.children)},hl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.htmlFor,r=Xs()(e,["className","htmlFor"]);return s.a.createElement("label",fc()({},r,{htmlFor:n,className:Zs()(t,"jp-form-label")}),this.props.children)}}]),t}(s.a.Component);na()(hl,"displayName","FormLabel");var fl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("legend",fc()({},Object(It.omit)(this.props,"className"),{className:Zs()(this.props.className,"jp-form-legend")}),this.props.children)}}]),t}(s.a.Component);na()(fl,"displayName","FormLegend");var ml=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Object(It.omit)(this.props,["className","type"]);return s.a.createElement("input",fc()({},e,{type:"checkbox",className:Zs()(this.props.className,"jp-form-checkbox")}))}}]),t}(s.a.Component);na()(ml,"displayName","FormInputCheckbox");var gl=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"focus",(function(){n.refs.textField.focus()})),na()(wo()(n),"selectOnFocus",(function(e){e.target.select()})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.className,n=e.selectOnFocus,r=Zs()(t,{"jp-form-text-input":!0,"is-error":this.props.isError,"is-valid":this.props.isValid});return s.a.createElement("input",fc()({},this.props,{ref:"textField",className:r,onClick:n?this.selectOnFocus:null}))}}]),t}(s.a.Component);na()(gl,"displayName","FormTextInput"),na()(gl,"defaultProps",{isError:!1,isValid:!1,selectOnFocus:!1,type:"text"});var vl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("textarea",fc()({},Object(It.omit)(this.props,"className"),{className:Zs()(this.props.className,"jp-form-textarea")}),this.props.children)}}]),t}(s.a.Component);na()(vl,"displayName","FormTextarea");var bl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Object(It.omit)(this.props,["className","type"]);return s.a.createElement("input",fc()({},e,{type:"radio",className:Zs()(this.props.className,"jp-form-radio")}))}}]),t}(s.a.Component);na()(bl,"displayName","FormRadio");var yl=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"getDefaultButtonAction",(function(){return n.props.isSubmitting?xo("Saving…"):xo("Save Settings")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()({"jp-form-button":!0});return s.a.createElement(ec,fc()({},Object(It.omit)(this.props,"className"),{primary:this.props.isPrimary,className:Zs()(this.props.className,e)}),Object(It.isEmpty)(this.props.children)?this.getDefaultButtonAction():this.props.children)}}]),t}(s.a.Component);na()(yl,"displayName","FormsButton"),na()(yl,"defaultProps",{isSubmitting:!1,isPrimary:!0,type:"submit"});var wl=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"handleOnSelect",(function(e){n.props.onOptionChange({target:{type:"select",name:n.props.name,value:e.value}})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=[];return Object(It.forOwn)(this.props.validValues,(function(t,n){e.push({label:t,value:n})})),s.a.createElement(Oc,{options:e,onSelect:this.handleOnSelect,disabled:this.props.disabled,initialSelected:this.props.value})}}]),t}(s.a.Component),_l=n(177),kl=n.n(_l),El=n(178),Cl=n.n(El),Sl=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"renderChildren",(function(){var e;e=n.props&&(Object.keys(n.props).length>1||!n.props.children)?s.a.createElement("div",n.props,n.props.children):n.props.children,n.context.store&&(e=s.a.createElement(h,{store:n.context.store},e)),a.a.render(e,n.container)})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.container=document.createElement("div"),document.body.appendChild(this.container),this.renderChildren()}},{key:"componentDidUpdate",value:function(){this.renderChildren()}},{key:"componentWillUnmount",value:function(){this.container&&(a.a.unmountComponentAtNode(this.container),document.body.removeChild(this.container),delete this.container)}},{key:"render",value:function(){return null}}]),t}(s.a.Component);na()(Sl,"displayName","RootChild"),na()(Sl,"propTypes",{children:u.a.node}),na()(Sl,"contextTypes",{store:u.a.object});var Ml=n(65),xl=n.n(Ml),Al=rc()("calypso:popover:util");function jl(){var e={};return e.top=window.scrollY,e.left=window.scrollX,e.width=window.innerWidth,e.height=window.innerHeight,e.right=e.left+e.width,e.bottom=e.top+e.height,Al("viewport: %o",e),e}var Ol={top:"bottom",bottom:"top",left:"right",right:"left"},Nl={top:"right",left:"top",bottom:"left",right:"bottom"},Tl=jl();function Pl(){Tl=jl()}var Il=!1,Dl=function(e,t,n){var r=xl()(n),i=t.clientHeight,a=t.clientWidth,o={top:r.top-i,bottom:Tl.height-r.bottom-i,left:r.left-a,right:Tl.width-r.right-a},s=e.split(/\s+/),c=ko()(s,1)[0],l=ko()(s,2)[1],u=function(e,t){for(var n,r=[e,Ol[e],Nl[e],Ol[Nl[e]]],i=-1/0,a=0,o=r.length;a<o;a++){var s=r[a],c=t[s];if(c>0)return s;c>i&&(i=c,n=e)}return n}(c,o);return l!==u&&l!==Ol[u]||(l=null),function(e,t,n,r,i,a){for(var o,s=t?[e+" "+t,e,e+" "+Ol[t]]:[e,e+" "+Nl[e],e+" "+Ol[Nl[e]]],c=0,l=i*a,u=0,p=s.length;u<p;u++){var d=s[u],h=Rl(d,n,r),f=h.left+i,m=h.top+a,g=Math.min(h.top<Tl.top?m-Tl.top:Tl.bottom-h.top,a),v=Math.min(h.left<Tl.left?f-Tl.left:Tl.right-h.left,i)*g;if(v===l)return d;v>c&&(c=v,o=d)}return o}(u,l,t,n,a,i)||e};function Rl(e,t,n){var r=xl()(t);if(!r)throw new Error("could not get bounding client rect of Tip element");var i=r.width,a=r.height,o=xl()(n);if(!o)throw new Error("could not get bounding client rect of `target`");var s,c,l,u,p,d,h,f,m=o.width,g=o.height,v=(s=o,c=document,l=c.body||c.getElementsByTagName("body")[0],u=c.documentElement||l.parentNode,p=u.clientTop||l.clientTop||0,d=u.clientLeft||l.clientLeft||0,h=window.pageYOffset||u.scrollTop,f=window.pageXOffset||u.scrollLeft,{top:s.top+h-p,left:s.left+f-d});if(!v)throw new Error("could not determine page offset of `target`");var b={};switch(e){case"top":b={top:v.top-a,left:v.left+m/2-i/2};break;case"bottom":b={top:v.top+g,left:v.left+m/2-i/2};break;case"right":b={top:v.top+g/2-a/2,left:v.left+m};break;case"left":b={top:v.top+g/2-a/2,left:v.left-i};break;case"top left":b={top:v.top-a,left:v.left+m/2-i+15};break;case"top right":b={top:v.top-a,left:v.left+m/2-15};break;case"bottom left":b={top:v.top+g,left:v.left+m/2-i+15};break;case"bottom right":b={top:v.top+g,left:v.left+m/2-15};break;case"left top":b={top:v.top+g/2-a,left:v.left-i};break;case"left bottom":b={top:v.top+g/2,left:v.left-i};break;case"right top":b={top:v.top+g/2-a,left:v.left+m};break;case"right bottom":b={top:v.top+g/2,left:v.left+m};break;default:throw new Error('invalid position "'.concat(e,'"'))}return b}var Ul=function(e){try{return e instanceof HTMLElement}catch(t){return"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument}},Fl=(n(351),rc()("calypso:popover")),Ll=new Set,zl=function(e){function t(e){var n;return la()(this,t),(n=pa()(this,ha()(t).call(this,e))).setPopoverId(e.id),n.setDOMBehavior=n.setDOMBehavior.bind(wo()(n)),n.setPosition=n.setPosition.bind(wo()(n)),n.onClickout=n.onClickout.bind(wo()(n)),n.onKeydown=n.onKeydown.bind(wo()(n)),n.onWindowChange=n.onWindowChange.bind(wo()(n)),n.state={show:e.isVisible,left:-99999,top:-99999,positionClass:n.getPositionClass(e.position)},n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.bindEscKeyListener(),this.bindDebouncedReposition(),function(){if(Il)return Al("window events already bound");Il=!0,Al("bind handlers to `resize` and `scroll` events"),window.addEventListener("resize",Pl,!0),window.addEventListener("scroll",Pl,!0)}()}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){if(Ul(e.context)?this.domContext=e.context:this.domContext=a.a.findDOMNode(e.context),!e.isVisible)return null;this.setPosition()}},{key:"componentDidUpdate",value:function(e){var t=this,n=this.props.isVisible;return n!==e.isVisible&&(n?this.show():this.hide()),this.domContainer&&this.domContext&&n&&n!==e.isVisible?(this.debug("Update position after render completes"),void setTimeout((function(){return t.setPosition()}),0)):null}},{key:"componentWillUnmount",value:function(){this.debug("unmounting .... "),this.unbindClickoutHandler(),this.unbindDebouncedReposition(),this.unbindEscKeyListener(),function(){if(!Il)return Al("window events are not bound");Il=!1,Al("unbind handlers to `resize` and `scroll` events"),window.removeEventListener("resize",Pl,!0),window.removeEventListener("scroll",Pl,!0)}(),Ll.delete(this.id),Fl("current popover instances: ",Ll.size)}},{key:"bindEscKeyListener",value:function(){return this.props.closeOnEsc?this.escEventHandlerAdded?null:(this.debug("adding escKey listener ..."),this.escEventHandlerAdded=!0,void document.addEventListener("keydown",this.onKeydown,!0)):null}},{key:"unbindEscKeyListener",value:function(){return this.props.closeOnEsc&&this.escEventHandlerAdded?(this.debug("unbinding `escKey` listener ..."),void document.removeEventListener("keydown",this.onKeydown,!0)):null}},{key:"onKeydown",value:function(e){if(27!==e.keyCode)return null;this.close(!0)}},{key:"bindClickoutHandler",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.domContainer;return e?this._clickoutHandlerReference?(this.debug("clickout event already bound"),null):(this.debug("binding `clickout` event"),void(this._clickoutHandlerReference=kl()(e,this.onClickout))):(this.debug("no element to bind clickout side "),null)}},{key:"unbindClickoutHandler",value:function(){this._clickoutHandlerReference&&(this.debug("unbinding `clickout` listener ..."),this._clickoutHandlerReference(),this._clickoutHandlerReference=null)}},{key:"onClickout",value:function(e){var t=this.domContext&&this.domContext.contains&&!this.domContext.contains(e.target);if(this.props.ignoreContext&&t){var n=a.a.findDOMNode(this.props.ignoreContext);t=t&&n&&n.contains&&!n.contains(e.target)}t&&this.close()}},{key:"bindDebouncedReposition",value:function(){window.addEventListener("scroll",this.onWindowChange,!0),window.addEventListener("resize",this.onWindowChange,!0)}},{key:"unbindDebouncedReposition",value:function(){this.willReposition&&(window.cancelAnimationFrame(this.willReposition),this.willReposition=null),window.removeEventListener("scroll",this.onWindowChange,!0),window.removeEventListener("resize",this.onWindowChange,!0),this.debug("unbinding `debounce reposition` ...")}},{key:"onWindowChange",value:function(){this.willReposition=window.requestAnimationFrame(this.setPosition)}},{key:"setDOMBehavior",value:function(e){if(!e)return this.unbindClickoutHandler(),null;this.debug("setting DOM behavior"),this.bindClickoutHandler(e),this.domContainer=e,Ul(this.props.context)?this.domContext=this.props.context:this.domContext=a.a.findDOMNode(this.props.context),this.domContainer.focus(),this.setPosition()}},{key:"getPositionClass",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.position;return"is-".concat(e.replace(/\s+/g,"-"))}},{key:"computePosition",value:function(){if(!this.props.isVisible)return null;var e=this.domContainer,t=this.domContext,n=this.props.position;if(!e||!t)return this.debug("[WARN] no DOM elements to work"),null;var r=n;this.debug("position: %o",n),this.props.autoPosition&&(r=Dl(n,e,t),this.debug("suggested position: %o",r));var i,a,o,s=Object(It.assign)({},(i=Rl(r,e,t),a=e,o=xl()(a).width,i.left=Math.max(0,Math.min(i.left,Tl.width-o)),i),{positionClass:this.getPositionClass(r)});return this.debug("updating reposition: ",s),s}},{key:"debug",value:function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];Fl.apply(void 0,["[%s] ".concat(e),this.id].concat(n))}},{key:"setPopoverId",value:function(e){this.id=e||"pop__".concat(Cl()(16)),Ll.add(this.id),this.debug("creating ..."),Fl("current popover instances: ",Ll.size)}},{key:"setPosition",value:function(){var e=this.computePosition();if(!e)return null;this.willReposition=null,this.setState(e)}},{key:"getStylePosition",value:function(){var e=this.state;return{left:e.left,top:e.top}}},{key:"show",value:function(){var e=this;if(!this.props.showDelay)return this.setState({show:!0}),null;this.debug("showing in %o","".concat(this.props.showDelay,"ms")),this.clearShowTimer(),this._openDelayTimer=setTimeout((function(){e.setState({show:!0})}),this.props.showDelay)}},{key:"hide",value:function(){this.unbindClickoutHandler(),this.setState({show:!1}),this.clearShowTimer()}},{key:"clearShowTimer",value:function(){if(!this._openDelayTimer)return null;clearTimeout(this._openDelayTimer),this._openDelayTimer=null}},{key:"close",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.props.isVisible)return this.debug("popover should be already closed"),null;this.domContext.focus(),this.props.onClose(e)}},{key:"render",value:function(){if(!this.state.show)return this.debug("is hidden. return no render"),null;if(!this.props.context)return this.debug("No `context` to tie. return no render"),null;var e=Zs()("dops-popover",this.props.className,this.state.positionClass);return this.debug("rendering ..."),s.a.createElement(Sl,{className:this.props.rootClassName},s.a.createElement("div",{style:this.getStylePosition(),className:e,ref:this.setDOMBehavior},s.a.createElement("div",{className:"dops-popover__arrow"}),s.a.createElement("div",{className:"dops-popover__inner"},this.props.children)))}}]),t}(o.Component);na()(zl,"propTypes",{autoPosition:u.a.bool,className:u.a.string,closeOnEsc:u.a.bool,id:u.a.string,ignoreContext:u.a.shape({getDOMNode:u.a.function}),position:u.a.string,rootClassName:u.a.string,showDelay:u.a.number,onClose:u.a.func.isRequired,onShow:u.a.func}),na()(zl,"defaultProps",{autoPosition:!0,className:"dops-popover",closeOnEsc:!0,isVisible:!1,position:"top",showDelay:0,onShow:function(){}});var Bl=zl,Vl=(n(352),function(e){function t(){var e;return la()(this,t),e=pa()(this,ha()(t).apply(this,arguments)),na()(wo()(e),"state",{showPopover:!1}),na()(wo()(e),"togglePopover",(function(){e.setState({showPopover:!e.state.showPopover})})),na()(wo()(e),"_onPopoverClose",(function(){e.setState({showPopover:!1})})),na()(wo()(e),"renderPopover",(function(){return s.a.createElement(Bl,{isVisible:e.state.showPopover,context:e.refs&&e.refs.toggleSwitch,position:e.props.disabledPopoverPosition,onClose:e._onPopoverClose,className:"dops-info-popover__tooltip"},e.props.disabledReason)})),e.onKeyDown=e.onKeyDown.bind(wo()(e)),e.onClick=e.onClick.bind(wo()(e)),e.onLabelClick=e.onLabelClick.bind(wo()(e)),e}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.id=this.constructor.idNum++}},{key:"onKeyDown",value:function(e){this.props.disabled||("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.props.onChange()),this.props.onKeyDown(e))}},{key:"onClick",value:function(){this.props.disabled?this.props.disabledReason&&this.togglePopover():this.props.onChange()}},{key:"onLabelClick",value:function(e){if(!this.props.disabled){var t=e.target.nodeName.toLowerCase();"a"!==t&&"input"!==t&&"select"!==t&&(e.preventDefault(),this.props.onChange())}}},{key:"render",value:function(){var e=this.props.id||"toggle-"+this.id,t=Zs()("form-toggle",this.props.className,{"is-toggling":this.props.toggling});return s.a.createElement("span",null,s.a.createElement("input",{className:t,type:"checkbox",checked:this.props.checked,readOnly:!0,disabled:this.props.disabled}),s.a.createElement("label",{className:"form-toggle__label",htmlFor:e},s.a.createElement("span",{className:"form-toggle__switch",disabled:this.props.disabled,id:e,onClick:this.onClick,onKeyDown:this.onKeyDown,role:"checkbox","aria-checked":this.props.checked,"aria-label":this.props["aria-label"],tabIndex:this.props.disabled?-1:0,ref:"toggleSwitch"}),s.a.createElement("span",{className:"form-toggle__label-content",onClick:this.onLabelClick},this.props.children)),this.renderPopover())}}]),t}(o.Component));na()(Vl,"propTypes",{onChange:u.a.func,onKeyDown:u.a.func,checked:u.a.bool,disabled:u.a.bool,id:u.a.string,className:u.a.string,toggling:u.a.bool,"aria-label":u.a.string,children:u.a.node,disabledReason:u.a.node}),na()(Vl,"defaultProps",{checked:!1,disabled:!1,onKeyDown:function(){},onChange:function(){},disabledPopoverPosition:"bottom",disabledReason:""}),na()(Vl,"idNum",0);var Hl=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement(Vl,fc()({},Object(It.omit)(this.props,"className"),{className:Zs()(this.props.className,"is-compact")}),this.props.children)}}]),t}(s.a.Component);na()(Hl,"displayName","CompactFormToggle");var ql=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"toggleModule",(function(){return n.trackModuleToggle(n.props.slug,n.props.activated),n.props.toggleModule(n.props.slug,n.props.activated)})),na()(wo()(n),"trackModuleToggle",(function(e,t){"stats"!==e&&uc.tracks.recordEvent("jetpack_wpa_module_toggle",{module:e,toggled:t?"off":"on"})})),na()(wo()(n),"isDisabledByOverride",(function(){var e=n.props.getModuleOverride(n.props.slug);return n.props.overrideCondition?n.props.overrideCondition===e:!!e})),na()(wo()(n),"getDisabledReason",(function(){if(!n.isDisabledByOverride())return null;var e=n.props.getModuleOverride(n.props.slug),t={components:{link:s.a.createElement("a",{href:"http://jetpack.com/support/module-overrides/",target:"_blank",rel:"noopener noreferrer",style:{textDecoration:"underline"}})}};switch(e){case"active":return xo("This feature has been enabled by a site administrator. {{link}}Learn more{{/link}}.",t);case"inactive":return xo("This feature has been disabled by a site administrator. {{link}}Learn more{{/link}}.",t);default:return xo("This feature is being managed by a site administrator. {{link}}Learn more{{/link}}.",t)}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement(Hl,{checked:this.props.activated||this.props.isModuleActivated,toggling:this.props.toggling,className:this.props.className,disabled:this.props.disabled||this.isDisabledByOverride(),id:this.props.id,onChange:this.toggleModule,disabledReason:this.getDisabledReason()},this.props.children)}}]),t}(o.Component);na()(ql,"displayName","ModuleToggle"),na()(ql,"propTypes",{toggleModule:u.a.func,activated:u.a.bool,disabled:u.a.bool,className:u.a.string,compact:u.a.bool,id:u.a.string,overrideCondition:u.a.string}),na()(ql,"defaultProps",{activated:!1,disabled:!1,overrideCondition:""});var Kl=le((function(e){return{getModuleOverride:function(t){return La(e,t)}}}))(ql);function Jl(e){return le((function(e,t){return{validValues:function(n){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"string"==typeof Object(It.get)(t,["module","module"])&&(r=t.module.module),Na(e,r,n)},getOptionCurrentValue:function(t,n){return function(e,t,n){return Object(It.get)(e.jetpack.modules.items,[t,"options",n,"current_value"])}(e,t,n)},getSettingCurrentValue:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return gs(e,t,n)},getSiteRoles:function(){return function(e){return Object(It.get)(e.jetpack.initialState.stats,"roles",{})}(e)},isUpdating:function(t){return vs(e,t)},adminEmailAddress:oi(e),currentIp:ji(e),siteAdminUrl:ci(e),isCurrentUserLinked:Bo(e)}}),(function(e){return{updateOptions:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e(sl(t,n))},regeneratePostByEmailAddress:function(){var t={progress:xo("Updating Post by Email address…"),success:xo("Regenerated Post by Email address."),error:function(e){return xo("Error regenerating Post by Email address. %(error)s",{args:{error:e}})}};return e(sl({post_by_email_address:"regenerate"},t))},setUnsavedSettingsFlag:function(){return e({type:sr})},clearUnsavedSettingsFlag:function(){return e(ol())},refreshSettings:function(){return e((function(e){return e({type:Qn}),Ca.fetchSettings().then((function(t){return e({type:Zn,settings:t}),t})).catch((function(t){e({type:er,error:t})}))}))}}}))(e)}function Wl(e){return Jl(function(t){function n(){var e,t;la()(this,n);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return t=pa()(this,(e=ha()(n)).call.apply(e,[this].concat(i))),na()(wo()(t),"state",{options:{}}),na()(wo()(t),"onOptionChange",(function(e){var n,r=e.target.name;n="checkbox"===e.target.type&&void 0!==e.target.checked?e.target.checked:e.target.value,t.updateFormStateOptionValue(r,n)})),na()(wo()(t),"updateFormStateOptionValue",(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;"string"==typeof e&&(e=na()({},e,n));var r=go()({},t.state.options,{},e);return t.setState({options:r}),!0})),na()(wo()(t),"resetFormStateOption",(function(e){return t.setState({options:Object(It.omit)(t.state.options,[e])}),!0})),na()(wo()(t),"updateFormStateModuleOption",(function(e,n){var r,i,a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(t.trackSettingsToggle(e,n,!t.getOptionValue(n)),t.getOptionValue(e))?a?t.props.updateOptions((r={},na()(r,e,!1),na()(r,n,!t.getOptionValue(n)),r)):t.props.updateOptions(na()({},n,!t.getOptionValue(n))):t.props.updateOptions((i={},na()(i,e,!0),na()(i,n,!0),i))})),na()(wo()(t),"toggleModuleNow",(function(e){t.props.updateOptions(na()({},e,!t.getOptionValue(e)))})),na()(wo()(t),"onSubmit",(function(e){e.preventDefault(),t.props.updateOptions(t.state.options).then((function(){var e={};Object(It.each)(t.state.options,(function(t,n){n=n.replace(/\-/,"_"),e[n]=t})),t.trackFormSubmission(e),t.setState({options:{}})})).then((function(){t.props.refreshSettings(),t.props.clearUnsavedSettingsFlag()}))})),na()(wo()(t),"getOptionValue",(function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return Object(It.get)(t.state.options,e,t.props.getSettingCurrentValue(e,n))})),na()(wo()(t),"shouldSaveButtonBeDisabled",(function(){return t.isSavingAnyOption()||!t.isDirty()})),na()(wo()(t),"isDirty",(function(){return!!Object.keys(t.state.options).length})),na()(wo()(t),"isSavingAnyOption",(function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.props.isUpdating(e)})),na()(wo()(t),"trackFormSubmission",(function(e){uc.tracks.recordEvent("jetpack_wpa_settings_form_submit",e)})),na()(wo()(t),"trackSettingsToggle",(function(e,t,n){uc.tracks.recordEvent("jetpack_wpa_settings_toggle",{module:e,setting:t,toggled:n?"on":"off"})})),t}return ma()(n,t),bo()(n,[{key:"componentDidUpdate",value:function(){this.isDirty()&&this.props.setUnsavedSettingsFlag()}},{key:"render",value:function(){return s.a.createElement(e,fc()({getOptionValue:this.getOptionValue,onSubmit:this.onSubmit,onOptionChange:this.onOptionChange,updateFormStateOptionValue:this.updateFormStateOptionValue,toggleModuleNow:this.toggleModuleNow,updateFormStateModuleOption:this.updateFormStateModuleOption,shouldSaveButtonBeDisabled:this.shouldSaveButtonBeDisabled,isSavingAnyOption:this.isSavingAnyOption,isDirty:this.isDirty,resetFormStateOption:this.resetFormStateOption},this.props))}}]),n}(s.a.Component))}var Gl=["jetpack_backup_daily","jetpack_backup_daily_monthly","jetpack_backup_realtime","jetpack_backup_realtime_monthly"];function Yl(e){switch(e){case"jetpack_free":case"free_plan":return"is-free-plan";case"personal-bundle":case"personal-bundle-2y":case"personal-bundle-monthly":case"jetpack_personal":case"jetpack_personal_monthly":return"is-personal-plan";case"value_bundle":case"value_bundle-2y":case"value_bundle-monthly":case"jetpack_premium":case"jetpack_premium_monthly":return"is-premium-plan";case"business-bundle":case"business-bundle-2y":case"business-bundle-monthly":case"jetpack_business":case"jetpack_business_monthly":case"vip":case"ecommerce-bundle":case"ecommerce-bundle-2y":case"ecommerce-bundle-monthly":return"is-business-plan";case"jetpack_backup_daily":case"jetpack_backup_daily_monthly":return"is-daily-backup-plan";case"jetpack_backup_realtime":case"jetpack_backup_realtime_monthly":return"is-realtime-backup-plan";default:return""}}var $l=function(e){return function(t){return t({type:Jn}),Ca.fetchStatsData(e).then((function(e){t({type:Gn,statsData:e})})).catch((function(e){t({type:Wn,error:e})}))}},Xl=function(){return function(e){return e({type:xn}),Ca.getProtectCount().then((function(t){e({type:jn,protectCount:t})})).catch((function(t){e({type:An,error:t})}))}},Ql=function(){return function(e){return e({type:Pn}),Ca.getVaultPressData().then((function(t){e({type:Dn,vaultPressData:t})})).catch((function(t){e({type:In,error:t})}))}},Zl=function(){return function(e){return e({type:Rn}),Ca.getAkismetData().then((function(t){e({type:Fn,akismetData:t})})).catch((function(t){e({type:Un,error:t})}))}},eu=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return function(t){return t({type:Ln}),(""===e?Ca.checkAkismetKey().then((function(e){t({type:Bn,akismet:e})})):Ca.checkAkismetKeyTyped(e).then((function(e){t({type:Bn,akismet:e})}))).catch((function(e){t({type:zn,error:e})}))}},tu=function(){return function(e){return e({type:Vn}),Ca.getPluginUpdates().then((function(t){e({type:qn,pluginUpdates:t})})).catch((function(t){e({type:Hn,error:t})}))}},nu=(n(353),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()(this.props.className,"dops-section-header");return s.a.createElement(al,{compact:!0,className:e},s.a.createElement("div",{className:"dops-section-header__label"},s.a.createElement("span",{className:"dops-section-header__label-text"},this.props.label)),s.a.createElement("div",{className:"dops-section-header__actions"},this.props.children))}}]),t}(s.a.Component));na()(nu,"displayName","SectionHeader"),na()(nu,"propTypes",{label:u.a.string}),na()(nu,"defaultProps",{label:""});var ru=function(e){return function(t){13!==t.which&&32!==t.which||e(t)}},iu=(n(172),function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"dismissTimeout",null),na()(wo()(n),"getIcon",(function(){var e;switch(n.props.status){case"is-info":e="info";break;case"is-success":e="checkmark";break;case"is-error":case"is-warning":e="notice";break;default:e="info"}return e})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.props.duration>0&&(this.dismissTimeout=setTimeout(this.props.onDismissClick,this.props.duration))}},{key:"componentWillUnmount",value:function(){this.dismissTimeout&&clearTimeout(this.dismissTimeout)}},{key:"render",value:function(){var e=this.props,t=e.children,n=e.className,r=e.icon,i=e.isCompact,a=e.onDismissClick,o=e.showDismiss,c=void 0===o?!i:o,l=e.status,u=e.text,p=e.dismissText,d=Zs()("dops-notice",l,n,{"is-compact":i,"is-dismissable":c});return s.a.createElement("div",{className:d},s.a.createElement("span",{className:"dops-notice__icon-wrapper"},s.a.createElement(Lc,{className:"dops-notice__icon",icon:r||this.getIcon(),size:24})),s.a.createElement("span",{className:"dops-notice__content"},s.a.createElement("span",{className:"dops-notice__text"},u||t)),u?t:null,c&&s.a.createElement("span",{role:"button",onKeyDown:ru(a),tabIndex:"0",className:"dops-notice__dismiss",onClick:a},s.a.createElement(Lc,{icon:"cross",size:24}),s.a.createElement("span",{className:"dops-notice__screen-reader-text screen-reader-text"},p)))}}]),t}(s.a.Component));na()(iu,"displayName","SimpleNotice"),na()(iu,"defaultProps",{duration:0,status:null,showDismiss:!0,className:"",onDismissClick:It.noop}),na()(iu,"propTypes",{status:u.a.string,showDismiss:u.a.bool,isCompact:u.a.bool,duration:u.a.number,text:u.a.oneOfType([u.a.oneOfType([u.a.string,u.a.node]),u.a.arrayOf(u.a.oneOfType([u.a.string,u.a.node]))]),icon:u.a.string,className:u.a.string});var au=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){!this.props.fetchingVaultPressData&&this.props.isModuleActivated("vaultpress")&&this.props.fetchVaultPressData()}},{key:"render",value:function(){return null}}]),t}(o.Component);au.defaultProps={fetchVaultPressData:function(){}};var ou=le((function(e){return{fetchVaultPressData:Ql(),fetchingVaultPressData:Yi(e),isModuleActivated:function(t){return Ua(e,t)}}}),(function(e){return P({fetchVaultPressData:Ql},e)}))(au),su=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.isCheckingAkismetKey||this.props.checkAkismetKey()}},{key:"render",value:function(){return null}}]),t}(o.Component);su.defaultProps={checkAkismetKey:function(){}};var cu=le((function(e){return{checkAkismetKey:eu(),isCheckingAkismetKey:Ki(e)}}),(function(e){return P({checkAkismetKey:eu},e)}))(su),lu=function(e,t){return function(){return function(e,t){return uc.tracks.recordJetpackClick({target:"pro-status",type:e,feature:t})}(e,t)}},uu=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"getProActions",(function(e,t){var r="",i=!1,a=!1,o="";switch(e){case"threats":r="is-error",n.props.isCompact?a=xo("Threats",{context:"A caption for a small button to fix security issues."}):(i=xo("Threats found!",{context:"Short warning message about new threats found."}),a=xo("FIX",{context:"A caption for a small button to fix security issues."})),o="https://dashboard.vaultpress.com/";break;case"free":case"personal":case"pro":return;case"secure":r="is-success",i=xo("Secure",{context:"Short message informing user that the site is secure."});break;case"invalid_key":return;case"rewind_connected":var c=n.getRewindMessage();return s.a.createElement(iu,{showDismiss:!1,status:c.status,isCompact:!0},c.text);case"active":return s.a.createElement("span",{className:"jp-dash-item__active-label"},xo("ACTIVE"))}return s.a.createElement(iu,{showDismiss:!1,status:r,isCompact:!0},i,a&&s.a.createElement("a",{className:"dops-notice__text-no-underline",onClick:lu(e,t),href:o},a))})),na()(wo()(n),"getSetUpButton",(function(e){return s.a.createElement(ec,{onClick:lu("set_up",e),compact:!0,primary:!0,href:"https://wordpress.com/plugins/setup/".concat(n.props.siteRawUrl,"?only=").concat(e)},xo("Set up",{context:"Caption for a button to set up a feature."}))})),n}return ma()(t,e),bo()(t,[{key:"getRewindMessage",value:function(){switch(this.props.rewindStatus.state){case"provisioning":return{status:"is-info",text:xo("Setting up")};case"awaiting_credentials":return{status:"is-warning",text:xo("Action needed")};case"active":return{status:"is-success",text:xo("Connected")};default:return{status:"",text:""}}}},{key:"render",value:function(){var e=this,t=this.props.sitePlan(),n=this.props.getVaultPressData(),r="";"scan"!==this.props.proFeature&&"backups"!==this.props.proFeature&&"vaultpress"!==this.props.proFeature||(r="vaultpress/vaultpress.php"),"akismet"===this.props.proFeature&&(r="akismet/akismet.php");var i=/jetpack_personal*/.test(t.product_slug),a=/jetpack_free*/.test(t.product_slug),o=/jetpack_premium*/.test(t.product_slug),c=Object(It.get)(n,["data","features","backups"],!1),l=Object(It.get)(n,["data","features","security"],!1),u=["is-daily-backup-plan","is-realtime-backup-plan"].includes(this.props.planClass);return s.a.createElement("div",null,s.a.createElement(Zc,null),s.a.createElement(cu,null),s.a.createElement(ou,null),!this.props.isDevMode&&function(s,p,d){switch(s){case"rewind":return e.getProActions("rewind_connected","rewind");case"backups":if(a&&!c&&e.props.isCompact)return e.getProActions("free","backups");break;case"scan":if(e.props.fetchingSiteData||e.props.isFetchingVaultPressData||u)return"";if((a||i)&&!l)return e.props.isCompact?e.getProActions("free","scan"):i&&!c?e.getSetUpButton("backups"):"";if("N/A"!==n)return l?e.getProActions(0===e.props.getScanThreats()?"secure":"threats","scan"):e.getSetUpButton("scan");break;case"search":return a||i||o?e.getProActions("pro","search"):"";case"akismet":if(a&&(!p||!d))return e.props.isCompact?e.getProActions("free","anti-spam"):"";if(!e.props.isAkismetKeyValid&&!e.props.fetchingAkismetData&&p&&d&&!a)return e.getSetUpButton(s)}return t.product_slug&&r&&!a?p&&d?e.getProActions("active"):e.getSetUpButton(s):""}(this.props.proFeature,this.props.pluginActive(r),this.props.pluginInstalled(r)))}}]),t}(s.a.Component);na()(uu,"propTypes",{isCompact:u.a.bool,proFeature:u.a.string,rewindStatus:u.a.object.isRequired}),na()(uu,"defaultProps",{isCompact:!0,proFeature:""});var pu=le((function(e){var t=Ss(e);return{siteRawUrl:si(e),siteAdminUrl:ci(e),getScanThreats:function(){return Xi(e)},getVaultPressData:function(){return $i(e)},getAkismetData:function(){return qi(e)},isFetchingVaultPressData:Yi(e),sitePlan:function(){return t},planClass:Yl(Object(It.get)(t,"product_slug","")),fetchingPluginsData:aa(e),pluginActive:function(t){return oa(e,t)},pluginInstalled:function(t){return sa(e,t)},isDevMode:Vo(e),fetchingSiteData:Es(e),isAkismetKeyValid:Ji(e),fetchingAkismetData:Hi(e),paidFeatureUpgradeUrl:Fi(e,"upgrade"),planProUpgradeUrl:Fi(e,"plans-business"),rewindStatus:ls(e)}}))(uu),du=(n(354),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getIconClassNames",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=this.props,n=t.plan,r=t.className,i=Yl(n);return Zs()("dops-plan-icon",i,r,e)}},{key:"getPersonalIcon",value:function(){return s.a.createElement("svg",{className:this.getIconClassNames("dops-plan-icon__personal"),xmlns:"http://www.w3.org/2000/svg",version:"1.1",x:"0",y:"0",viewBox:"0 0 124 125"},s.a.createElement("circle",{className:"dops-plan-icon__personal-0",cx:"62",cy:"62.1",r:"62"}),s.a.createElement("path",{className:"dops-plan-icon__personal-1",d:"M64 106.1l4-9.8v-3.5H62v14.6C62.9 107.4 63.6 106.9 64 106.1z"}),s.a.createElement("path",{className:"dops-plan-icon__personal-2",d:"M56.2 92.8v3.5l4 9.8c0.3 0.8 1.1 1.3 1.9 1.3V92.8H56.2z"}),s.a.createElement("path",{className:"dops-plan-icon__personal-2",d:"M62 32.9h17.1V2.5C73.7 0.9 68 0.1 62 0.1V32.9z"}),s.a.createElement("path",{className:"dops-plan-icon__personal-3",d:"M62 32.9V0.1c0 0 0 0 0 0 -5.9 0-11.6 0.8-17 2.4v30.5H62z"}),s.a.createElement("polygon",{className:"dops-plan-icon__personal-4",points:"62 32.9 45 32.9 48.3 48.7 53.3 92.8 62 92.8 "}),s.a.createElement("polygon",{className:"dops-plan-icon__personal-5",points:"62 32.9 79.2 32.9 75.9 48.7 70.9 92.8 62 92.8 "}))}},{key:"getPremiumIcon",value:function(){return s.a.createElement("svg",{className:this.getIconClassNames("dops-plan-icon__premium"),xmlns:"http://www.w3.org/2000/svg",version:"1.1",x:"0",y:"0",viewBox:"0 0 62 61.5"},s.a.createElement("ellipse",{className:"dops-plan-icon__premium-0",cx:"31",cy:"30.8",rx:"31",ry:"30.8"}),s.a.createElement("path",{className:"dops-plan-icon__premium-1",d:"M27.8 46.3v1.9l2.2 5.4c0.2 0.5 0.5 0.7 1 0.7v-7.9L27.8 46.3z"}),s.a.createElement("path",{className:"dops-plan-icon__premium-2",d:"M32 53.6l2.2-5.4v-1.9H31v3.8 4.1C31.5 54.3 31.9 54 32 53.6z"}),s.a.createElement("path",{className:"dops-plan-icon__premium-3",d:"M21.6 18c0.2 2 4.8 28.3 4.8 28.3l4.6 0.1V18H21.6z"}),s.a.createElement("path",{className:"dops-plan-icon__premium-4",d:"M40.5 18H31v23.4 5l4.5-0.1C35.5 46.3 40.1 20.4 40.5 18z"}),s.a.createElement("path",{className:"dops-plan-icon__premium-5",d:"M31 18V0c-3.9 0-7.7 0.7-11.2 2.1 0.7 6 1.8 15.9 1.8 15.9H31z"}),s.a.createElement("path",{className:"dops-plan-icon__premium-6",d:"M31 18h9.5c0 0 1.1-9.9 1.8-15.9C38.8 0.7 35 0 31 0V18z"}))}},{key:"getBusinessIcon",value:function(){return s.a.createElement("svg",{className:this.getIconClassNames("dops-plan-icon__business"),xmlns:"http://www.w3.org/2000/svg",version:"1.1",x:"0",y:"0",viewBox:"0 0 124 124"},s.a.createElement("circle",{className:"dops-plan-icon__business-0",cx:"62",cy:"62",r:"62"}),s.a.createElement("path",{className:"dops-plan-icon__business-1",d:"M57.4 73.8c0-2.5 2-4.6 4.6-4.6V36.8h-9.6v12.1c-8 3.7-13.5 11.7-13.5 21.1 0 4.9 1.5 9.4 4.1 13.1l0 0c15.4 22.4 15.4 22.4 17 24.8h0.3V78.1C58.6 77.4 57.4 75.7 57.4 73.8L57.4 73.8z"}),s.a.createElement("path",{className:"dops-plan-icon__business-2",d:"M85.2 69.8c0-9.4-5.6-17.4-13.5-21.1v-12H62v32.5c2.5 0 4.6 2 4.6 4.6 0 1.9-1.2 3.5-2.9 4.2v29.8H64c1.6-2.4 1.6-2.4 17-24.8l0 0C83.6 79.2 85.2 74.7 85.2 69.8L85.2 69.8z"}),s.a.createElement("path",{className:"dops-plan-icon__business-3",d:"M48.6 32h-2.4c-3.2 0-5.8 2.6-5.8 5.8V38c0 3.2 2.6 5.8 5.8 5.8H62v-4.7V32 0c-7.2 0-14.1 1.2-20.6 3.5 1.1 5.5 2.5 11 4.1 16.5L48.6 32z"}),s.a.createElement("path",{className:"dops-plan-icon__business-4",d:"M62 39.1v4.7h15.8c3.2 0 5.8-2.6 5.8-5.8v-0.2c0-3.2-2.6-5.8-5.8-5.8h-2.4l3.1-12c1.6-5.5 3-11 4.1-16.5C76.1 1.2 69.2 0 62 0v32V39.1z"}))}},{key:"getDefaultIcon",value:function(){return s.a.createElement("svg",{className:this.getIconClassNames("dops-plan-icon__free"),xmlns:"http://www.w3.org/2000/svg",version:"1.1",x:"0",y:"0",viewBox:"0 0 61.8 61.8"},s.a.createElement("circle",{className:"dops-plan-icon__free-0",cx:"30.9",cy:"30.9",r:"30.9"}),s.a.createElement("polygon",{className:"dops-plan-icon__free-1",points:"41.4 32.8 30.9 22.5 20.3 32.8 30.9 51.8 "}),s.a.createElement("path",{className:"dops-plan-icon__free-2",d:"M30.9 41.6L30.9 41.6c-2 0-3.7 1.6-3.7 3.6l3.7 6.5 3.7-6.5C34.5 43.2 32.9 41.6 30.9 41.6L30.9 41.6z"}),s.a.createElement("path",{className:"dops-plan-icon__free-3",d:"M25.6 27.7c0 2.9 2.3 5.2 5.2 5.2h0.1c2.9 0 5.2-2.3 5.2-5.2v-0.1V0.4c-1.7-0.3-3.5-0.5-5.3-0.5s-3.6 0.2-5.3 0.5v27.3H25.6z"}),s.a.createElement("path",{className:"dops-plan-icon__free-4",d:"M25.6 27.6V0.4c-1.8 0.3-3.6 0.8-5.3 1.4v31C23.2 32.8 25.6 30.5 25.6 27.6z"}),s.a.createElement("path",{className:"dops-plan-icon__free-2",d:"M41.4 32.8v-31c-1.7-0.6-3.5-1.1-5.3-1.4v27.2C36.1 30.5 38.5 32.8 41.4 32.8z"}))}},{key:"render",value:function(){switch(this.props.plan){case"personal-bundle":case"personal-bundle-2y":case"jetpack_personal":case"jetpack_personal_monthly":return this.getPersonalIcon();case"value_bundle":case"value_bundle-2y":case"jetpack_premium":case"jetpack_premium_monthly":return this.getPremiumIcon();case"business-bundle":case"business-bundle-2y":case"jetpack_business":case"jetpack_business_monthly":case"vip":return this.getBusinessIcon();default:return this.getDefaultIcon()}}}]),t}(o.Component));du.propTypes={classNames:u.a.string,plan:u.a.oneOf(["free_plan","value_bundle","value_bundle-2y","business-bundle","business-bundle-2y","jetpack_free","jetpack_business","jetpack_business_monthly","jetpack_premium","jetpack_premium_monthly","jetpack_personal","jetpack_personal_monthly","personal-bundle","personal-bundle-2y","vip"]).isRequired};n(355);var hu=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"handleClick",(function(){n.props.onClick();var e=n.props,t=e.eventFeature,r=e.path,i=e.currentVersion;if(t||r){var a=t?{feature:t}:{},o=r?{path:r}:{},s=go()({target:"banner",type:"upgrade",current_version:i},a,{},o);uc.tracks.recordJetpackClick(s)}})),n}return ma()(t,e),bo()(t,[{key:"getHref",value:function(){var e=this.props,t=e.href,n=e.feature,r=e.siteSlug;return!t&&r?n?"/plans/".concat(r,"?feature=").concat(n):"/plans/".concat(r):t}},{key:"getIcon",value:function(){var e=this.props,t=e.icon,n=e.plan;return n&&!t?s.a.createElement("div",{className:"dops-banner__icon-plan"},s.a.createElement(du,{plan:n})):s.a.createElement("div",{className:"dops-banner__icons"},s.a.createElement("div",{className:"dops-banner__icon"},s.a.createElement(Lc,{icon:t||"info-outline",size:18})),s.a.createElement("div",{className:"dops-banner__icon-circle"},s.a.createElement(Lc,{icon:t||"info-outline",size:18})))}},{key:"getContent",value:function(){var e=this.props,t=e.callToAction,n=e.description,r=e.list,i=e.title;return s.a.createElement("div",{className:"dops-banner__content"},s.a.createElement("div",{className:"dops-banner__info"},s.a.createElement("div",{className:"dops-banner__title"},i),n&&s.a.createElement("div",{className:"dops-banner__description"},n),Object(It.size)(r)>0&&s.a.createElement("ul",{className:"dops-banner__list"},r.map((function(e,t){return s.a.createElement("li",{key:t},s.a.createElement(Lc,{icon:"checkmark",size:18}),e)})))),t&&s.a.createElement("div",{className:"dops-banner__action"},t&&s.a.createElement(ec,{compact:!0,href:this.getHref(),onClick:this.handleClick,primary:!0},t)))}},{key:"render",value:function(){var e=this.props,t=e.callToAction,n=e.className,r=Yl(e.plan),i=Zs()("dops-banner",n,{"has-call-to-action":t},{"is-upgrade-personal":"is-personal-plan"===r},{"is-upgrade-premium":"is-premium-plan"===r},{"is-upgrade-business":"is-business-plan"===r});return s.a.createElement(al,{className:i,href:t?null:this.getHref(),onClick:t?It.noop:this.handleClick},this.getIcon(),this.getContent())}}]),t}(o.Component);na()(hu,"propTypes",{callToAction:u.a.string,className:u.a.string,currentVersion:u.a.string.isRequired,description:u.a.node,eventFeature:u.a.string,feature:u.a.string,href:u.a.string,icon:u.a.string,list:u.a.arrayOf(u.a.string),onClick:u.a.func,path:u.a.string,plan:u.a.string,siteSlug:u.a.string,title:u.a.string.isRequired}),na()(hu,"defaultProps",{onClick:It.noop});var fu=le((function(e){return{currentVersion:ii(e)}}))(hu),mu=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return!(this.props.plan&&!this.props.userCanPurchasePlan)&&(this.props.arePromotionsActive?s.a.createElement(fu,this.props):null)}}]),t}(fu);na()(mu,"propTypes",{callToAction:u.a.string,className:u.a.string,description:u.a.node,eventFeature:u.a.string,feature:u.a.string,href:u.a.string,icon:u.a.string,list:u.a.arrayOf(u.a.string),onClick:u.a.func,path:u.a.string,plan:u.a.string,siteSlug:u.a.string,title:u.a.string.isRequired}),na()(mu,"defaultProps",{onClick:It.noop,plan:""});var gu=le((function(e){return{arePromotionsActive:Ni(e),userCanPurchasePlan:hi(e)}}))(mu),vu=(n(356),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.moduleName)return null;var e={args:{moduleName:this.props.moduleName},components:{link:s.a.createElement("a",{href:"http://jetpack.com/support/module-overrides/",target:"_blank",rel:"noopener noreferrer"})}},t=Zs()("module-overridden-banner",{"is-compact":this.props.compact});return s.a.createElement(gu,{className:t,title:this.props.moduleName,icon:"cog",description:xo("%(moduleName)s has been disabled by a site administrator. {{link}}Learn more{{/link}}.",e)})}}]),t}(gu));na()(vu,"propTypes",{moduleName:u.a.string.isRequired});var bu=vu,yu=function(e){var t=function(e){return function(){return function(e){uc.tracks.recordJetpackClick({target:"upgrade-banner",feature:e,type:"upgrade"})}(e)}},n=!!e.module&&e.getModule(e.module),r=e.vaultPressData,i=Object(It.get)(r,["data","features","backups"],!1),a=Object(It.get)(r,["data","features","security"],!1);if(!e.userCanManageModules&&!Object(It.includes)(["post-by-email","publicize"],e.module))return s.a.createElement("span",null);var o=e.saveDisabled,c=!!e.feature&&e.feature,l=e.header?e.header:"";""===l&&n&&(l=n.name);var u=function(){switch(c){case"video-hosting-jetpack":return"inactive"===e.getModuleOverride("videopress");case"wordads-jetpack":return"inactive"===e.getModuleOverride("wordads");case"google-analytics-jetpack":return"inactive"===e.getModuleOverride("google-analytics");case"seo-tools-jetpack":return"inactive"===e.getModuleOverride("seo-tools");case"search-jetpack":return"inactive"===e.getModuleOverride("search");default:return!1}},p=function(){if(e.fetchingSiteData)return!0;var t=Yl(e.sitePlan.product_slug);switch(c){case"security-scanning-jetpack":if("is-free-plan"===t&&!a)return!1;break;case"wordads-jetpack":if("is-premium-plan"!==t&&"is-business-plan"!==t&&-1===e.activeFeatures.indexOf("wordads-jetpack"))return!1;break;case"google-analytics-jetpack":if("is-business-plan"!==t&&"is-premium-plan"!==t)return!1;break;case"spam-akismet-plus":if((Object(It.includes)(["is-free-plan"],t)||Object(It.isEmpty)(t))&&!e.isAkismetKeyValid&&!e.isCheckingAkismetKey)return!1}return!0}()&&e.children,d=!e.fetchingSiteData&&!u()&&function(){var n=Yl(e.sitePlan.product_slug),r=xo("Upgrade",{context:"A caption for a button to upgrade an existing paid feature to a higher tier."});switch(c){case"video-hosting-jetpack":return"is-premium-plan"===n||"is-business-plan"===n?"":s.a.createElement(gu,{title:xo("Host fast, high-quality, ad-free video."),callToAction:r,plan:"jetpack_premium",feature:c,onClick:t(c),href:e.videoPremiumUpgradeUrl});case"wordads-jetpack":return"is-premium-plan"===n||"is-business-plan"===n||-1!==e.activeFeatures.indexOf("wordads-jetpack")?"":s.a.createElement(gu,{title:xo("Generate income with high-quality ads."),callToAction:r,plan:"jetpack_premium",feature:c,onClick:t(c),href:e.adsUpgradeUrl});case"security-scanning-jetpack":return i||"is-business-plan"===n?"":"is-premium-plan"===n?s.a.createElement(gu,{title:xo("Real-time site backups and automatic threat resolution."),plan:"jetpack_business",callToAction:r,feature:c,onClick:t(c),href:e.securityProUpgradeUrl}):s.a.createElement(gu,{callToAction:r,title:xo("Protect against data loss, malware, and malicious attacks."),plan:"jetpack_premium",feature:c,onClick:t(c),href:e.securityPremiumUpgradeUrl});case"google-analytics-jetpack":return"is-business-plan"===n||"is-premium-plan"===n?"":s.a.createElement(gu,{callToAction:r,title:xo("Connect your site to Google Analytics in seconds with Jetpack Premium or Professional."),plan:"jetpack_premium",feature:c,onClick:t(c),href:e.gaUpgradeUrl});case"seo-tools-jetpack":return"is-business-plan"===n||"is-premium-plan"===n?"":s.a.createElement(gu,{callToAction:r,title:xo("Boost your search engine ranking with the powerful SEO tools in Jetpack Premium or Professional."),plan:"jetpack_premium",feature:c,onClick:t(c),href:e.seoUpgradeUrl});case"search-jetpack":return"is-business-plan"===n?"":s.a.createElement(gu,{callToAction:r,title:xo("Add faster, more advanced searching to your site with Jetpack Professional."),plan:"jetpack_business",feature:c,onClick:t(c),href:e.searchUpgradeUrl});case"spam-akismet-plus":return e.isCheckingAkismetKey||e.isAkismetKeyValid||Object(It.includes)(["is-personal-plan","is-premium-plan","is-business-plan"],n)?"":s.a.createElement(gu,{callToAction:r,title:xo("Protect your site from spam."),plan:"jetpack_personal",feature:c,href:e.spamUpgradeUrl});default:return""}}();return p||d?function(){if(!u())return!1;switch(c){case"google-analytics-jetpack":var t=e.getModule("google-analytics");return s.a.createElement(bu,{moduleName:t.name});case"seo-tools-jetpack":var n=e.getModule("seo-tools");return s.a.createElement(bu,{moduleName:n.name});default:return null}}()||s.a.createElement("form",{className:"jp-form-settings-card",onSubmit:o?void 0:e.onSubmit},s.a.createElement(nu,{label:l},!e.hideButton&&s.a.createElement(ec,{primary:!0,compact:!0,type:"submit",disabled:o||!e.isDirty()},xo(o?"Saving…":"Save settings",{context:"Button caption"})),e.action&&s.a.createElement(pu,{proFeature:e.action,siteAdminUrl:e.siteAdminUrl,isCompact:!1})),p,d):null};yu.propTypes={action:u.a.string,saveDisabled:u.a.bool},yu.defaultProps={action:"",saveDisabled:!1};var wu=le((function(e){return{sitePlan:Ss(e),fetchingSiteData:Es(e),siteAdminUrl:ci(e),userCanManageModules:hi(e),isAkismetKeyValid:Ji(e),isCheckingAkismetKey:Ki(e),vaultPressData:$i(e),getModuleOverride:function(t){return La(e,t)},getModule:function(t){return Pa(e,t)},activeFeatures:As(e),videoPremiumUpgradeUrl:Fi(e,"settings-video-premium"),adsUpgradeUrl:Fi(e,"settings-ads"),securityProUpgradeUrl:Fi(e,"settings-security-pro"),securityPremiumUpgradeUrl:Fi(e,"settings-security-premium"),gaUpgradeUrl:Fi(e,"settings-ga"),seoUpgradeUrl:Fi(e,"settings-seo"),searchUpgradeUrl:Fi(e,"settings-search"),spamUpgradeUrl:Fi(e,"settings-spam")}}))(yu),_u=(n(357),pe()({displayName:"InfoPopover",propTypes:{id:u.a.string,position:u.a.string,className:u.a.string,rootClassName:u.a.string,gaEventCategory:u.a.string,popoverName:u.a.string,onClick:u.a.func,ignoreContext:u.a.shape({getDOMNode:u.a.function})},getDefaultProps:function(){return{position:"bottom",onClick:It.noop}},getInitialState:function(){return{showPopover:!1}},render:function(){var e=Zs()("dops-info-popover","dops-info-popover-button",{is_active:this.state.showPopover},this.props.className);return s.a.createElement("button",{ref:"infoPopover",className:e,onClick:this._onClick},s.a.createElement(Lc,{icon:"info-outline",size:18}),this.props.screenReaderText?s.a.createElement("span",{className:"screen-reader-text"},this.props.screenReaderText):"",s.a.createElement(Bl,{id:this.props.id,isVisible:this.state.showPopover,context:this.refs&&this.refs.infoPopover,ignoreContext:this.props.ignoreContext,position:this.props.position,onClose:this._onClose,className:Zs()("dops-info-popover__tooltip",this.props.className),rootClassName:this.props.rootClassName},this.props.children))},_onClick:function(e){this.props.onClick(),e.preventDefault(),this.setState({showPopover:!this.state.showPopover},this._recordStats)},_onClose:function(){this.setState({showPopover:!1},this._recordStats)},_recordStats:function(){var e=this.props,t=e.gaEventCategory,n=e.popoverName;if(t&&n){var r=this.state.showPopover?" Opened":" Closed";uc.ga.recordEvent(t,"InfoPopover: "+n+r)}}})),ku=(n(358),pe()({displayName:"ExternalLink",mixins:[wc.a],propTypes:{className:u.a.string,href:u.a.string,onClick:u.a.func,icon:u.a.bool,iconSize:u.a.number},getDefaultProps:function(){return{iconSize:18}},render:function(){var e=Zs()("dops-external-link",this.props.className,{"has-icon":!!this.props.icon}),t=Object(It.assign)({},Object(It.omit)(this.props,"icon","iconSize"),{className:e,rel:"external"});return s.a.createElement("a",t,this.props.children,this.props.icon?s.a.createElement(Lc,{icon:"external",size:this.props.iconSize}):null)}})),Eu=(n(359),function(e){function t(){var e;return la()(this,t),(e=pa()(this,ha()(t).apply(this,arguments))).getModule=e.getModule.bind(wo()(e)),e.trackInfoClick=e.trackInfoClick.bind(wo()(e)),e.trackLearnMoreClick=e.trackLearnMoreClick.bind(wo()(e)),e.trackPrivacyInfoClick=e.trackPrivacyInfoClick.bind(wo()(e)),e}return ma()(t,e),bo()(t,[{key:"getModule",value:function(){return this.props.module||{}}},{key:"trackInfoClick",value:function(){uc.tracks.recordJetpackClick({target:"info-icon",feature:this.getModule().module})}},{key:"trackLearnMoreClick",value:function(){uc.tracks.recordJetpackClick({target:"learn-more",feature:this.getModule().module})}},{key:"trackPrivacyInfoClick",value:function(){uc.tracks.recordJetpackClick({target:"privacy-info",feature:this.getModule().module})}},{key:"render",value:function(){var e=this.props,t=e.text,n=e.link,r=this.props.privacyLink;return!r&&n&&(r=n+"#privacy"),s.a.createElement("div",{className:"jp-support-info"},s.a.createElement(_u,{position:"left",onClick:this.trackInfoClick,screenReaderText:xo("Learn more")},t+" ",s.a.createElement("span",{className:"jp-support-info__learn-more"},s.a.createElement(ku,{href:n,onClick:this.trackLearnMoreClick,target:"_blank",rel:"noopener noreferrer"},xo("Learn more"))),s.a.createElement("span",{className:"jp-support-info__privacy"},s.a.createElement(ku,{href:r,onClick:this.trackPrivacyInfoClick,target:"_blank",rel:"noopener noreferrer"},xo("Privacy information")))))}}]),t}(o.Component));na()(Eu,"propTypes",{module:u.a.object,text:u.a.string,link:u.a.string,privacyLink:u.a.string}),na()(Eu,"defaultProps",{module:void 0,text:"",link:"",privacyLink:""});var Cu=function(e){var t=e.module;if(t.module&&!e.userCanManageModules&&!Object(It.includes)(["post-by-email","publicize"],t.module))return s.a.createElement("span",null);var n=e.disableInDevMode&&e.isUnavailableInDevMode(t.module),r=n;return"post-by-email"!==t.module||e.isLinked||(r=!0),s.a.createElement("div",{className:Zs()("jp-form-settings-group",e.className)},s.a.createElement(al,{className:Zs()({"jp-form-has-child":e.hasChild,"jp-form-settings-disable":n})},r&&s.a.createElement("div",{className:"jp-form-block-fade"}),e.support.link&&s.a.createElement(Eu,fc()({module:t},e.support)),e.children))};Cu.propTypes={support:u.a.object,module:u.a.object,disableInDevMode:u.a.bool.isRequired,isDevMode:u.a.bool.isRequired,isSitePublic:u.a.bool.isRequired,userCanManageModules:u.a.bool.isRequired,isLinked:u.a.bool.isRequired,isUnavailableInDevMode:u.a.func.isRequired,className:u.a.string},Cu.defaultProps={support:{text:"",link:""},module:{},disableInDevMode:!1,isDevMode:!1,isSitePublic:!0,userCanManageModules:!1,isLinked:!1,isUnavailableInDevMode:It.noop,className:""};var Su=le((function(e){return{isDevMode:Vo(e),isSitePublic:li(e),userCanManageModules:hi(e),userCanEditPosts:mi(e),isLinked:Bo(e),isModuleActivated:function(t){return Ua(e,t)},isUnavailableInDevMode:function(t){return Jo(e,t)}}}))(Cu),Mu=(n(360),Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"updateFormStateByMarkdown",(function(e){return n.props.getSettingCurrentValue("wpcom_publish_posts_with_markdown",e)?n.props.updateFormStateModuleOption(e,"wpcom_publish_comments_with_markdown"):n.props.updateFormStateModuleOption(e,"wpcom_publish_comments_with_markdown",!0)})),na()(wo()(n),"handleMarkdownCommentsToggle",(function(){n.props.updateFormStateModuleOption("markdown","wpcom_publish_comments_with_markdown")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("comments"),t=this.props.isModuleFound("gravatar-hovercards"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("comment-likes");if(!(e||t||n||r))return null;var i=this.props,a=i.isUnavailableInDevMode,o=i.getOptionValue,c=this.props.getModule("comments"),l=this.props.getOptionValue("comments"),u=this.props.isUnavailableInDevMode("comments"),p=this.props.getModule("gravatar-hovercards"),d=this.props.getModule("markdown"),h=a("comment-likes"),f=o("comment-likes");return s.a.createElement(wu,fc()({},this.props,{header:xo("Comments"),module:"comments",saveDisabled:this.props.isSavingAnyOption(["highlander_comment_form_prompt","jetpack_comment_form_color_scheme"])}),e&&s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:c,support:{text:xo("Replaces the standard WordPress comment form with a new comment system that includes social media login options."),link:"https://jetpack.com/support/comments"}},s.a.createElement(Kl,{slug:"comments",compact:!0,disabled:u,activated:this.props.getOptionValue("comments"),toggling:this.props.isSavingAnyOption("comments"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},c.description)),s.a.createElement(dl,null,s.a.createElement(hl,null,s.a.createElement("span",{className:"jp-form-label-wide"},xo("Comment form introduction")),s.a.createElement(pl,{name:"highlander_comment_form_prompt",value:this.props.getOptionValue("highlander_comment_form_prompt"),disabled:!l||u||this.props.isSavingAnyOption("highlander_comment_form_prompt"),onChange:this.props.onOptionChange})),s.a.createElement("span",{className:"jp-form-setting-explanation"},xo("A few catchy words to motivate your visitors to comment.")),s.a.createElement(hl,null,s.a.createElement("span",{className:"jp-form-label-wide"},xo("Color scheme")),s.a.createElement(wl,fc()({name:"jetpack_comment_form_color_scheme",value:this.props.getOptionValue("jetpack_comment_form_color_scheme"),disabled:!l||u||this.props.isSavingAnyOption("jetpack_comment_form_color_scheme"),onChange:this.props.onOptionChange},this.props,{validValues:this.props.validValues("jetpack_comment_form_color_scheme","comments")}))))),(t||n||r)&&s.a.createElement(Su,null,t&&s.a.createElement("div",{className:"jp-toggle-set"},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"gravatar-hovercards",compact:!0,activated:this.props.getOptionValue("gravatar-hovercards"),toggling:this.props.isSavingAnyOption("gravatar-hovercards"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},p.description))),s.a.createElement(Eu,{text:xo("Show Gravatar hovercards alongside comments."),link:p.learn_more_button,privacyLink:p.learn_more_button+"#privacy"})),n&&s.a.createElement("div",{className:"jp-toggle-set"},s.a.createElement(dl,null,s.a.createElement(Hl,{checked:!!this.props.getOptionValue("wpcom_publish_comments_with_markdown","markdown"),disabled:this.props.isSavingAnyOption(["markdown","wpcom_publish_comments_with_markdown"])||"inactive"===this.props.getModuleOverride("markdown"),toggling:this.props.isSavingAnyOption(["markdown","wpcom_publish_comments_with_markdown"]),onChange:this.handleMarkdownCommentsToggle},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable Markdown use for comments.")))),s.a.createElement(Eu,{text:xo("Allow readers to use markdown in comments."),link:d.learn_more_button,privacyLink:d.learn_more_button+"#privacy"})),r&&s.a.createElement("div",{className:"jp-toggle-set"},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"comment-likes",compact:!0,disabled:h,activated:f,toggling:this.props.isSavingAnyOption("comment-likes"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable comment likes.")))),s.a.createElement(Eu,{text:xo("Allow readers to like individual comments."),link:"https://jetpack.com/support/comment-likes/",privacyLink:"https://jetpack.com/support/comment-likes/#privacy"}))))}}]),t}(s.a.Component))),xu=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{stb_enabled:n.props.getOptionValue("stb_enabled","subscriptions"),stc_enabled:n.props.getOptionValue("stc_enabled","subscriptions")}),na()(wo()(n),"updateOptions",(function(e){n.setState(na()({},e,!n.state[e]),n.props.updateFormStateModuleOption("subscriptions",e))})),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("view-followers")})),na()(wo()(n),"handleSubscribeToBlogToggleChange",(function(){n.updateOptions("stb_enabled")})),na()(wo()(n),"handleSubscribeToCommentToggleChange",(function(){n.updateOptions("stc_enabled")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this,t=this.props.getModule("subscriptions"),n=this.props.getOptionValue("subscriptions"),r=this.props.isUnavailableInDevMode("subscriptions");return s.a.createElement(wu,fc()({},this.props,{hideButton:!0,module:"subscriptions"}),s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:t,support:{text:xo("Allows readers to subscribe to your posts or comments, and receive notifications of new content by email."),link:"https://jetpack.com/support/subscriptions/"}},s.a.createElement(Kl,{slug:"subscriptions",disabled:r,activated:n,toggling:this.props.isSavingAnyOption("subscriptions"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},t.description)),s.a.createElement(dl,null,s.a.createElement(Hl,{checked:this.state.stb_enabled,disabled:!n||r||this.props.isSavingAnyOption(["subscriptions","stb_enabled"]),onChange:this.handleSubscribeToBlogToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable the “subscribe to site” option on your comment form"))),s.a.createElement(Hl,{checked:this.state.stc_enabled,disabled:!n||r||this.props.isSavingAnyOption(["subscriptions","stc_enabled"]),onChange:this.handleSubscribeToCommentToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable the “subscribe to comments” option on your comment form"))))),r||!n?"":e.props.isLinked?s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:e.trackConfigureClick,href:"https://wordpress.com/people/email-followers/"+e.props.siteRawUrl},xo("View your Email Followers")):s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:"".concat(e.props.connectUrl,"&from=unlinked-user-connect-masterbar")},xo("Create a Jetpack account to view your email followers")," "))}}]),t}(s.a.Component)),Au=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={settings:this.props.settings,getModule:this.props.module,isDevMode:this.props.isDevMode,isUnavailableInDevMode:this.props.isUnavailableInDevMode},t=this.props.isModuleFound("comments"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("gravatar-hovercards"),i=this.props.isModuleFound("subscriptions"),a=this.props.isModuleFound("comment-likes");return(this.props.searchTerm||this.props.active)&&(t||i||n||r||a)?s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:this.props.searchTerm?xo("Discussion"):xo("Manage advanced comment settings and grow your audience with email subscriptions."),className:"jp-settings-description"}),s.a.createElement(Mu,fc()({},e,{isModuleFound:this.props.isModuleFound,getModuleOverride:this.props.getModuleOverride})),i&&s.a.createElement(xu,fc()({},e,{isLinked:this.props.isLinked,connectUrl:this.props.connectUrl,siteRawUrl:this.props.siteRawUrl}))):null}}]),t}(s.a.Component);na()(Au,"displayName","DiscussionSettings");var ju=le((function(e){return{module:function(t){return Pa(e,t)},settings:ms(e),isDevMode:Vo(e),isUnavailableInDevMode:function(t){return Jo(e,t)},isModuleFound:function(t){return ds(e,t)},connectUrl:Ro(e),isLinked:Bo(e),getModuleOverride:function(t){return La(e,t)}}}))(Au),Ou=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("videopress");if(!e)return null;var t=this.props.module("videopress"),n=Yl(this.props.sitePlan.product_slug),r=Object(It.includes)(["is-premium-plan","is-business-plan"],n)&&s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:t,support:{link:"https://jetpack.com/support/videopress/"}},s.a.createElement(fl,{className:"jp-form-label-wide"},xo("Video")),s.a.createElement("p",null," ",xo("Make the content you publish more engaging with high-resolution video. With Jetpack Video you can customize your media player and deliver high-speed, ad-free, and unbranded videos to your visitors. Videos are hosted on our WordPress.com servers and do not subtract space from your hosting plan!")," "),s.a.createElement(Kl,{slug:"videopress",disabled:this.props.isUnavailableInDevMode("videopress"),activated:this.props.getOptionValue("videopress"),toggling:this.props.isSavingAnyOption("videopress"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable high-speed, ad-free video player")))),i="inactive"===this.props.getModuleOverride("videopress");return s.a.createElement(wu,fc()({},this.props,{header:xo("Media"),feature:!i&&"video-hosting-jetpack",hideButton:!0}),e&&r)}}]),t}(s.a.Component),Nu=le((function(e){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)},sitePlan:Ss(e),getModuleOverride:function(t){return La(e,t)}}}))(Wl(Ou)),Tu=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e="is-business-plan"===Yl(this.props.sitePlan.product_slug),t=this.props.getOptionValue("search");return s.a.createElement(wu,fc()({},this.props,{module:"search",feature:"search-jetpack",hideButton:!0}),s.a.createElement(Su,{hasChild:!0,module:{module:"search"},support:{text:xo("Jetpack Search supports many customizations."),link:"https://jetpack.com/support/search"}},s.a.createElement("p",null,xo("The built-in WordPress search is great for sites without much content. But as your site grows, searches slow down and return less relevant results.")," "),s.a.createElement("p",null,xo("Jetpack Search replaces the built-in search with a fast, scalable, customizable, and highly-relevant search hosted in the WordPress.com cloud. The result: Your users find the content they want, faster.")," "),e&&s.a.createElement(Kl,{slug:"search",compact:!0,activated:t,toggling:this.props.isSavingAnyOption("search"),toggleModule:this.props.toggleModuleNow},xo("Replace WordPress built-in search with Jetpack Search, an advanced search experience")),e&&t&&s.a.createElement(dl,null,s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("Add the Jetpack Search widget to your sidebar to configure sorting and filters.")))),e&&t&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:"customize.php?autofocus[panel]=widgets"},xo("Add Jetpack Search Widget")))}}]),t}(s.a.Component),Pu=le((function(e){return{siteAdminUrl:ci(e),sitePlan:Ss(e),fetchingSiteData:Es(e)}}))(Wl(Tu)),Iu=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"toggleModule",(function(e,t){"photon"===e?!1==!t?n.props.updateOptions({photon:!1,"tiled-gallery":!1,tiled_galleries:!1}):n.props.updateOptions({photon:!0,"tiled-gallery":!0,tiled_galleries:!0}):n.props.updateOptions(na()({},e,!t))})),na()(wo()(n),"handleSiteAcceleratorChange",(function(){var e=n.props.getOptionValue("photon"),t=n.props.getOptionValue("photon-cdn"),r=e||t,i=n.props.getModuleOverride("photon"),a=n.props.getModuleOverride("photon-cdn");if(!0===r){var o={progress:xo("Disabling site accelerator…"),success:xo("Site accelerator is no longer speeding up your site!"),error:function(e){return xo("Error disabling site accelerator. %(error)s",{args:{error:e}})}},s={};!1==!e&&"active"!==i&&(e=!1,s={photon:!1,"tiled-gallery":!1,tiled_galleries:!1}),!1==!t&&"active"!==a&&(t=!1,s=go()({},s,{"photon-cdn":!1})),n.props.updateOptions(s,o)}else{var c={progress:xo("Enabling Site accelerator…"),success:xo("Site accelerator is now speeding up your site!"),error:function(e){return xo("Error enabling Site accelerator. %(error)s",{args:{error:e}})}},l={};!1===e&&"inactive"!==i&&(e=!0,l={photon:!0,"tiled-gallery":!0,tiled_galleries:!0}),!1===t&&"inactive"!==a&&(t=!0,l=go()({},l,{"photon-cdn":!0})),n.props.updateOptions(l,c)}!0===e||!0===t?uc.tracks.recordJetpackClick({target:"jetpack_site_accelerator_toggle",toggled:"on"}):uc.tracks.recordJetpackClick({target:"jetpack_site_accelerator_toggle",toggled:"off"}),n.props.getOptionValue("photon")!==e&&uc.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"photon",toggled:!1===e?"off":"on"}),n.props.getOptionValue("photon-cdn")!==t&&uc.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"photon-cdn",toggled:!1===t?"off":"on"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("photon"),t=this.props.isModuleFound("photon-cdn"),n=this.props.isModuleFound("lazy-images");if(!e&&!n&&!t)return null;var r,i=this.props.module("lazy-images"),a=this.props.getOptionValue("photon")||this.props.getOptionValue("photon-cdn"),o=this.props.getModuleOverride("photon"),c=this.props.getModuleOverride("photon-cdn"),l=e&&t&&("inactive"!==o||"inactive"!==c),u=(e||t)&&("inactive"!==o||"inactive"!==c);return!this.props.getOptionValue("photon")&&this.props.isSavingAnyOption("photon")?r=!this.props.getOptionValue("photon-cdn"):!this.props.getOptionValue("photon-cdn")&&this.props.isSavingAnyOption("photon-cdn")?r=!this.props.getOptionValue("photon"):this.props.getOptionValue("photon")&&this.props.isSavingAnyOption("photon")?(r=!this.props.getOptionValue("photon-cdn"),this.props.getOptionValue("photon-cdn")&&this.props.isSavingAnyOption("photon-cdn")&&(r=!0)):r=!(!this.props.getOptionValue("photon-cdn")||!this.props.isSavingAnyOption("photon-cdn"))&&!this.props.getOptionValue("photon"),s.a.createElement(wu,fc()({},this.props,{header:xo("Performance & speed"),hideButton:!0}),(e||t)&&s.a.createElement(Su,{hasChild:!0,support:{link:"http://jetpack.com/support/site-accelerator/"}},s.a.createElement("p",null,xo("Load pages faster by allowing Jetpack to optimize your images and serve your images and static files (like CSS and JavaScript) from our global network of servers.")),u&&s.a.createElement(Hl,{checked:a,toggling:r,onChange:this.handleSiteAcceleratorChange,disabled:!l},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable site accelerator"))),s.a.createElement(dl,null,e&&s.a.createElement(Kl,{slug:"photon",disabled:this.props.isUnavailableInDevMode("photon"),activated:this.props.getOptionValue("photon"),toggling:this.props.isSavingAnyOption("photon"),toggleModule:this.toggleModule},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Speed up image load times"))),t&&s.a.createElement(Kl,{slug:"photon-cdn",activated:this.props.getOptionValue("photon-cdn"),toggling:this.props.isSavingAnyOption("photon-cdn"),toggleModule:this.toggleModule},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Speed up static file load times"))))),n&&s.a.createElement(Su,{hasChild:!0,module:i,support:{link:"https://jetpack.com/support/lazy-images/"}},s.a.createElement("p",null,xo("Lazy-loading images will improve your site’s speed and create a smoother viewing experience. Images will load as visitors scroll down the screen, instead of all at once.")),s.a.createElement(Kl,{slug:"lazy-images",disabled:this.props.isUnavailableInDevMode("lazy-images"),activated:this.props.getOptionValue("lazy-images"),toggling:this.props.isSavingAnyOption("lazy-images"),toggleModule:this.toggleModule},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable Lazy Loading for images")))))}}]),t}(o.Component)),Du=le((function(e){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)},getModuleOverride:function(t){return La(e,t)}}}))(Iu),Ru=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={getModule:this.props.module,isUnavailableInDevMode:this.props.isUnavailableInDevMode,isModuleFound:this.props.isModuleFound,getModuleOverride:this.props.getModuleOverride},t=["photon","videopress","lazy-images","photon-cdn","search"].some(this.props.isModuleFound);return(this.props.searchTerm||this.props.active)&&t?s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:this.props.searchTerm?xo("Performance"):xo("Load pages faster, optimize images, and speed up your visitors’ experience."),className:"jp-settings-description"}),s.a.createElement(Du,e),s.a.createElement(Nu,e),s.a.createElement(Pu,e)):null}}]),t}(o.Component),Uu=le((function(e){return{module:function(t){return Pa(e,t)},isUnavailableInDevMode:function(t){return Jo(e,t)},isModuleFound:function(t){return ds(e,t)},getModuleOverride:function(t){return La(e,t)}}}))(Ru),Fu=function(){return uc.tracks.recordJetpackClick({target:"privacy-policy",feature:"privacy"})},Lu=function(){return uc.tracks.recordJetpackClick({target:"cookie-policy",feature:"privacy"})},zu=function(){return uc.tracks.recordJetpackClick({target:"privacy-center",feature:"privacy"})},Bu=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"isPrivacyFound",(function(){return!n.props.searchTerm||[xo("privacy",{context:"Search term."}),xo("tracks",{context:"Search term."}),xo("data",{context:"Search term."}),xo("gdpr",{context:"Search term."}),xo("tos",{context:"Search term."}),xo("terms of service",{context:"Search term."})].join(" ").toLowerCase().indexOf(n.props.searchTerm.toLowerCase())>-1})),na()(wo()(n),"togglePrivacy",(function(){var e=n.props.trackingSettings.tracks_opt_out;n.props.setTrackingSettings(!e)})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.fetchTrackingSettings()}},{key:"render",value:function(){var e=this.props,t=e.searchTerm,n=e.active;return t||n?this.isPrivacyFound()&&s.a.createElement("div",null,s.a.createElement(wu,fc()({},this.props,{header:xo("Privacy Settings",{context:"Settings header"}),hideButton:!0}),s.a.createElement(Su,{hasChild:!0},s.a.createElement("p",null,xo("We are committed to your privacy and security. ")),s.a.createElement("p",null,s.a.createElement(Hl,{compact:!0,checked:!this.props.trackingSettings.tracks_opt_out,disabled:this.props.isFetchingTrackingSettings||this.props.isUpdatingTrackingSettings,onChange:this.togglePrivacy,id:"privacy-settings"},xo("Share information with our analytics tool about your use of services while logged in to your WordPress.com account. {{cookiePolicyLink}}Learn more{{/cookiePolicyLink}}.",{components:{cookiePolicyLink:s.a.createElement(ku,{href:"https://automattic.com/cookies/",onClick:Lu,target:"_blank",rel:"noopener noreferrer"})}}))),s.a.createElement("p",null,xo("This information helps us improve our products, make marketing to you more relevant, personalize your WordPress.com experience, and more as detailed in our {{pp}}privacy policy{{/pp}}.",{components:{pp:s.a.createElement(ku,{href:"https://automattic.com/privacy/",onClick:Fu,target:"_blank",rel:"noopener noreferrer"})}})),s.a.createElement("p",null,xo("We use other tracking tools, including some from third parties. {{cookiePolicyLink}}Read about these{{/cookiePolicyLink}} and how to control them.",{components:{cookiePolicyLink:s.a.createElement(ku,{href:"https://automattic.com/cookies/",onClick:Lu,target:"_blank",rel:"noopener noreferrer"})}})),s.a.createElement("p",null,xo("For more information on how specific Jetpack features use data and track activity, please refer to our {{privacyCenterLink}}Privacy Center{{/privacyCenterLink}}.",{components:{privacyCenterLink:s.a.createElement(ku,{href:"https://jetpack.com/support/privacy",onClick:zu,target:"_blank",rel:"noopener noreferrer"})}}))))):null}}]),t}(s.a.Component);na()(Bu,"displayName","PrivacySettings"),na()(Bu,"propTypes",{searchTerm:u.a.string,active:u.a.bool,toggleTracking:u.a.func,getOptionValue:u.a.func,isSavingAnyOption:u.a.func}),na()(Bu,"defaultProps",{searchTerm:"",active:!1});var Vu=le((function(e){return{settings:ms(e),trackingSettings:Vs(e),isUpdatingTrackingSettings:qs(e),isFetchingTrackingSettings:Hs(e)}}),(function(e){return{setTrackingSettings:function(t){var n;uc.tracks.setOptOut(t),e((n={tracks_opt_out:t},function(e){var t={progress:xo("Updating privacy settings…"),success:xo("Updated privacy settings."),error:function(e){return xo("Error updating privacy settings. %(error)s",{args:{error:e.message||e.code||e.name||e}})}};return e(za("tracking-settings-update")),e(za("tracking-settings-update-success")),e(Ba("is-info",t.progress,{id:"tracking-settings-update"})),e({type:sn,updatedSettings:n}),Ca.updateUserTrackingSettings(n).then((function(r){e({type:ln,updatedSettings:n,success:r}),e(za("tracking-settings-update")),e(za("tracking-settings-update-success")),e(Ba("is-success",t.success,{id:"tracking-settings-update-success",duration:2e3}))})).catch((function(r){e({type:cn,updatedSettings:n,success:!1,error:r}),e(za("tracking-settings-update")),e(za("tracking-settings-update-success")),e(Ba("is-error",t.error(r),{id:"tracking-settings-update"}))}))}))},fetchTrackingSettings:function(){return e((function(e){return e({type:rn}),Ca.fetchUserTrackingSettings().then((function(t){return e({type:on,settings:t}),t})).catch((function(t){e({type:an,error:t})}))}))}}}))(Wl(Bu)),Hu=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"handleBannerClick",(function(e){return function(){return n.props.updateOptions(na()({},e,!0))}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this;if(!this.props.canManageModules)return null;if(this.props.searchTerm.length<3)return null;var t=["contact-form","enhanced-distribution","json-api","notes"],n=this.props.modules,r=[];return Object(It.forEach)(n,(function(n,i){if(e.props.isModuleFound(i)&&Object(It.includes)(t,i)){if(e.props.isDevMode&&e.props.isUnavailableInDevMode(n.module))return r.push(s.a.createElement(qu,{key:i,moduleData:n,devMode:!0}));e.props.getOptionValue(n.module)?r.push(s.a.createElement(qu,{key:i,moduleData:n})):r.push(s.a.createElement(fu,{className:"jp-searchable-banner",key:i,callToAction:xo("Activate"),description:n.description,href:"javascript:void( 0 )",icon:"cog",onClick:e.handleBannerClick(n.module),title:n.name}))}})),s.a.createElement("div",null,r)}}]),t}(o.Component));Hu.propTypes={searchTerm:u.a.string},Hu.defaultProps={searchTerm:""};var qu=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.moduleData,t=this.props.devMode;return s.a.createElement(wu,{header:e.name,action:e.module,hideButton:!0},s.a.createElement(Su,{disableInDevMode:t,module:{module:e.module},support:{link:e.learn_more_button}},e.description))}}]),t}(o.Component),Ku=le((function(e){return{modules:Ta(e),isModuleFound:function(t){return ds(e,t)},canManageModules:hi(e),isUnavailableInDevMode:function(t){return Jo(e,t)},isDevMode:Vo(e)}}))(Hu),Ju=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement(wu,{header:xo("Backups and security scanning",{context:"Settings header"}),hideButton:!0,action:"scan"},s.a.createElement(Su,{disableInDevMode:!0,module:{module:"backups"},support:{text:xo("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error."),link:"https://help.vaultpress.com/get-to-know/"}},xo("Checking site status…")))}}]),t}(o.Component),Wu=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"getCardText",(function(){if(n.props.isDevMode)return xo("Unavailable in Dev Mode.");var e=n.getRewindMessage(),t=e.title,r=e.icon,i=e.description,a=e.url;return s.a.createElement(fu,{title:t,icon:r,feature:"rewind",description:i,className:"is-upgrade-premium jp-banner__no-border",href:a})})),n}return ma()(t,e),bo()(t,[{key:"getRewindMessage",value:function(){var e=this.props,t=e.siteRawUrl;switch(e.rewindState){case"provisioning":return{title:xo("Provisioning"),icon:"info",description:xo("Backups and Scan are being configured for your site."),url:""};case"awaiting_credentials":return{title:xo("Awaiting credentials"),icon:"notice",description:xo("You need to enter your server credentials to finish configuring Backups and Scan."),url:"https://wordpress.com/settings/security/"+t};case"active":return{title:xo("Active"),icon:"checkmark-circle",description:xo("Your site is being backed up in real time and regularly scanned for security threats."),url:"https://wordpress.com/activity-log/"+t}}}},{key:"render",value:function(){return s.a.createElement(wu,fc()({feature:"rewind"},this.props,{header:xo("Backups and security scanning",{context:"Settings header"}),action:"rewind",hideButton:!0}),this.getCardText())}}]),t}(o.Component);na()(Wu,"propTypes",{isDevMode:u.a.bool,siteRawUrl:u.a.string,rewindState:u.a.string}),na()(Wu,"defaultProps",{isDevMode:!1,siteRawUrl:"",rewindState:""});var Gu=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"toggleModule",(function(e,t){n.props.updateFormStateOptionValue(e,!t)})),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("configure-scan")})),n}return ma()(t,e),bo()(t,[{key:"getCardText",value:function(){var e=Object(It.get)(this.props.vaultPressData,["data","features","backups"],!1),t=Object(It.get)(this.props.vaultPressData,["data","features","security"],!1),n=Yl(this.props.sitePlan.product_slug),r="";if(this.props.isDevMode)return xo("Unavailable in Dev Mode.");if(e&&t){var i=this.props.hasThreats;return i?s.a.createElement("div",null,s.a.createElement("strong",null,xo("Uh oh, %(number)s threat found.","Uh oh, %(number)s threats found.",{count:i,args:{number:Mo(i)}})),s.a.createElement("br",null),s.a.createElement("br",null),xo("{{a}}View details{{/a}}",{components:{a:s.a.createElement("a",{href:"https://dashboard.vaultpress.com/"})}}),s.a.createElement("br",null),xo("{{a}}Contact Support{{/a}}",{components:{a:s.a.createElement("a",{href:"https://jetpack.com/support"})}})):xo("Your site is backed up and threat-free.")}if(e&&Object(It.includes)(["is-free-plan","is-personal-plan","is-daily-backup-plan","is-realtime-backup-plan"],n))return xo("Your site is backed up.");switch(n){case"is-personal-plan":r=xo("You have paid for backups but they're not yet active."),r+=" "+xo('Click "Set Up" to finish installation.');break;case"is-premium-plan":case"is-business-plan":r=xo("You have paid for backups and security scanning but they’re not yet active."),r+=" "+xo('Click "Set Up" to finish installation.')}return r}},{key:"render",value:function(){if(!this.props.showBackups)return null;var e=Object(It.get)(this.props.vaultPressData,["data","features","security"],!1),t=Object(It.get)(this.props.rewindStatus,["state"],!1),n=!1!==t,r="N/A"!==this.props.vaultPressData&&!1!==Object(It.get)(this.props.vaultPressData,["data"],!1);return n||!this.props.vaultPressActive||r?Object(It.includes)(["provisioning","awaiting_credentials","active"],t)?s.a.createElement(Wu,fc()({},this.props,{rewindState:t})):s.a.createElement(wu,fc()({feature:"security-scanning-jetpack"},this.props,{header:xo("Backups and security scanning",{context:"Settings header"}),action:"scan",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"backups"},support:{text:xo("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error."),link:"https://help.vaultpress.com/get-to-know/"}},this.getCardText()),!this.props.isUnavailableInDevMode("backups")&&e&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,target:"_blank",href:"https://dashboard.vaultpress.com/"},xo("Configure your Security Scans"))):s.a.createElement(Ju,null)}}]),t}(o.Component)),Yu=le((function(e){return{sitePlan:Ss(e),vaultPressData:$i(e),hasThreats:Xi(e),vaultPressActive:Ua(e,"vaultpress"),showBackups:Ii(e)}}))(Gu),$u=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Object(It.assign)({},this.props,{className:Zs()(this.props.className,"is-compact")});return s.a.createElement(al,e,this.props.children)}}]),t}(s.a.Component);na()($u,"displayName","CompactCard");n(361);var Xu=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{expanded:n.props.expanded}),na()(wo()(n),"onClick",(function(){n.props.children&&n.setState({expanded:!n.state.expanded}),n.props.onClick&&n.props.onClick(),n.state.expanded?n.props.onClose(n.props.cardKey):n.props.onOpen(n.props.cardKey)})),na()(wo()(n),"getClickAction",(function(){if(!n.props.disabled)return n.onClick})),na()(wo()(n),"getActionButton",(function(){return n.state.expanded&&n.props.actionButtonExpanded||n.props.actionButton})),na()(wo()(n),"renderActionButton",(function(){var e=n.props.clickableHeader?null:n.getClickAction();if(n.props.actionButton)return s.a.createElement("button",{className:"dops-foldable-card__action",onClick:e},n.getActionButton());if(n.props.children){return s.a.createElement("button",{type:"button",disabled:n.props.disabled,className:"dops-foldable-card__action dops-foldable-card__expand",onClick:e},s.a.createElement("span",{className:"screen-reader-text"},"More"),s.a.createElement(Lc,{icon:n.props.icon,size:24}))}})),na()(wo()(n),"renderContent",(function(){return s.a.createElement("div",{className:"dops-foldable-card__content"},n.props.children)})),na()(wo()(n),"renderHeader",(function(){var e=n.props.summary?s.a.createElement("span",{className:"dops-foldable-card__summary"},n.props.summary," "):null,t=n.props.expandedSummary?s.a.createElement("span",{className:"dops-foldable-card__summary_expanded"},n.props.expandedSummary," "):null,r=n.props.header?s.a.createElement("div",{className:"dops-foldable-card__header-text"},n.props.header):null,i=n.props.subheader?s.a.createElement("div",{className:"dops-foldable-card__subheader"},n.props.subheader):null,a={role:"button",tabIndex:0,onClick:n.getClickAction(),onKeyDown:ru(n.getClickAction())},o=Zs()("dops-foldable-card__header",{"is-clickable":!!n.props.clickableHeader,"has-border":!!n.props.summary}),c=Zs()("dops-foldable-card__header-text",{"is-clickable":!!n.props.clickableHeaderText});return s.a.createElement("div",fc()({className:o},n.props.clickableHeader?a:{}),s.a.createElement("span",{className:"dops-foldable-card__main"},s.a.createElement("div",fc()({className:c},n.props.clickableHeaderText?a:{}),r,i)),s.a.createElement("span",{className:"dops-foldable-card__secondary"},e,t,n.renderActionButton()))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.compact?$u:al,t=Zs()("dops-foldable-card",this.props.className,{"is-disabled":!!this.props.disabled,"is-expanded":!!this.state.expanded,"has-expanded-summary":!!this.props.expandedSummary});return s.a.createElement(e,{className:t},this.renderHeader(),this.state.expanded&&this.renderContent())}}]),t}(s.a.Component);na()(Xu,"propTypes",{actionButton:u.a.element,actionButtonExpanded:u.a.element,cardKey:u.a.string,compact:u.a.bool,disabled:u.a.bool,expandedSummary:u.a.oneOfType([u.a.string,u.a.element]),expanded:u.a.bool,icon:u.a.string,onClick:u.a.func,onClose:u.a.func,onOpen:u.a.func,summary:u.a.oneOfType([u.a.string,u.a.element]),clickableHeader:u.a.bool,clickableHeaderText:u.a.bool}),na()(Xu,"defaultProps",{onOpen:It.noop,onClose:It.noop,cardKey:"",icon:"chevron-down",isExpanded:!1,clickableHeader:!1,clickableHeaderText:!1});var Qu=Xu,Zu=(n(362),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()({"form-input-validation":!0,"is-warning":this.props.isWarning,"is-error":this.props.isError}),t=this.props.isError||this.props.isWarning?"notice-outline":"checkmark";return s.a.createElement("div",{className:e},s.a.createElement("span",null,s.a.createElement(Lc,{size:24,icon:this.props.icon?this.props.icon:t})," ",this.props.text))}}]),t}(s.a.Component));na()(Zu,"displayName","FormInputValidation"),na()(Zu,"propTypes",{isError:u.a.bool,isWarning:u.a.bool,text:u.a.node,icon:u.a.string}),na()(Zu,"defaultProps",{isError:!1});var ep=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{apiKey:n.props.getOptionValue("wordpress_api_key"),delayKeyCheck:!1,currentEvent:{}}),na()(wo()(n),"keyChanged",!1),na()(wo()(n),"checkApiKeyTyped",(function(e){0<e.currentTarget.value.length&&n.props.checkAkismetKey(e.currentTarget.value),n.keyChanged=!0,n.setState({delayKeyCheck:!1})})),na()(wo()(n),"updateText",(function(e){var t=Object(It.assign)({},e);t.currentTarget.value=Object(It.trim)(t.currentTarget.value),n.setState({apiKey:t.currentTarget.value,delayKeyCheck:!0,currentEvent:t},n.debouncedCheckApiKeyTyped(t))})),na()(wo()(n),"trackOpenCard",(function(){uc.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"anti-spam"})})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.debouncedCheckApiKeyTyped=Object(It.debounce)(this.checkApiKeyTyped,500)}},{key:"componentDidUpdate",value:function(){!this.props.isCheckingAkismetKey&&this.props.isAkismetKeyValid&&this.keyChanged&&!Object(It.isEmpty)(this.state.currentEvent)&&(this.keyChanged=!1,this.props.onOptionChange(this.state.currentEvent))}},{key:"render",value:function(){var e={name:"wordpress_api_key",value:this.state.apiKey,disabled:this.props.isSavingAnyOption("wordpress_api_key"),onChange:this.updateText},t="",n=xo("Checking your spam protection…"),r=!0;return null===this.props.isAkismetKeyValid?(e.value=xo("Fetching key…"),e.disabled=!0,r=!1):""===this.state.apiKey?(e.value="",n=xo("Your site needs an Antispam key.")):this.state.delayKeyCheck||this.props.isCheckingAkismetKey?this.props.isCheckingAkismetKey&&(t=s.a.createElement("div",{className:"form-input-validation is-warning"},s.a.createElement("span",null,s.a.createElement(Lc,{size:24,icon:"sync"}),xo("Checking key…"))),r=!1):!1===this.props.isAkismetKeyValid?(t=s.a.createElement(Zu,{isError:!0,text:xo("There's a problem with your Antispam API key. {{a}}Learn more{{/a}}.",{components:{a:s.a.createElement("a",{href:"https://docs.akismet.com/getting-started/api-key/"})}})}),e.isError=!0,n=xo("Your site is not protected from spam.")):(t=s.a.createElement(Zu,{text:xo("Your Antispam key is valid.")}),e.isValid=!0,n=xo("Your site is protected from spam."),r=!1),s.a.createElement(wu,fc()({},this.props,{header:xo("Anti-spam",{context:"Settings header"}),saveDisabled:this.props.isSavingAnyOption("wordpress_api_key"),feature:"spam-akismet-plus"}),s.a.createElement(Qu,{onOpen:this.trackOpenCard,header:n},s.a.createElement(Su,{support:{text:xo("Removes spam from comments and contact forms."),link:"https://akismet.com/jetpack/"}},s.a.createElement(dl,null,s.a.createElement(hl,null,s.a.createElement("span",{className:"jp-form-label-wide"},xo("Your API key")),s.a.createElement(pl,e),t),r&&s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("If you don't already have an API key, then {{a}}get your API key here{{/a}}, and you'll be guided through the process of getting one.",{components:{a:s.a.createElement("a",{href:"https://akismet.com/wordpress/"})}}))))))}}]),t}(o.Component)),tp=le((function(e){return{isAkismetKeyValid:Ji(e),isCheckingAkismetKey:Ki(e)}}),(function(e){return{checkAkismetKey:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e(eu(t))}}}))(ep),np=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"getVaultPressContent",(function(){return s.a.createElement(Su,{module:{module:"backups"},support:{text:xo("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error."),link:"https://jetpack.com/support/backups/"}},xo("Your site is backed up."))})),na()(wo()(n),"getRewindBanner",(function(){var e=n.getRewindMessage(),t=e.title,r=e.icon,i=e.description,a=e.url;return s.a.createElement(fu,{title:t,icon:r,feature:"rewind",description:i,className:"is-upgrade-premium jp-banner__no-border",href:a})})),n}return ma()(t,e),bo()(t,[{key:"getRewindMessage",value:function(){var e=this.props,t=e.siteRawUrl,n=e.rewindStatus;switch(Object(It.get)(n,"state",!1)){case"provisioning":return{title:xo("Provisioning"),icon:"info",description:xo("Jetpack Backup is being configured for your site."),url:""};case"awaiting_credentials":return{title:xo("Awaiting credentials"),icon:"notice",description:xo("You need to enter your server credentials to finish configuring Jetpack Backup."),url:"https://wordpress.com/settings/security/"+t};case"active":return{title:xo("Active"),icon:"checkmark-circle",description:xo("Your site is being backed up."),url:"https://wordpress.com/activity-log/"+t}}}},{key:"render",value:function(){var e=this.props,t=e.rewindStatus,n=e.vaultPressData,r=Object(It.get)(t,"state",!1),i=Object(It.get)(n,["data","features","backups"],!1);return!1!==r||i?s.a.createElement(wu,fc()({feature:"site-backups-jetpack"},this.props,{header:xo("Jetpack Backup",{context:"Settings header"}),hideButton:!0}),"unavailable"===r?this.getVaultPressContent():this.getRewindBanner()):s.a.createElement(wu,{header:xo("Jetpack Backup",{context:"Settings header"}),hideButton:!0,action:"site-backups-jetpack"},s.a.createElement(Su,{module:{module:"backups"},support:{text:xo("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error."),link:"https://jetpack.com/support/backups/"}},xo("Checking site status…")))}}]),t}(o.Component);na()(np,"propTypes",{siteRawUrl:u.a.string,rewindState:u.a.string}),na()(np,"defaultProps",{siteRawUrl:"",rewindState:""});var rp=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackOpenCard",(function(){uc.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"manage-plugins"})})),na()(wo()(n),"configLink",(function(){return s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:n.trackClickConfigure,target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/plugins/manage/"+n.props.siteRawUrl},xo("Choose which plugins to auto-update"))})),n}return ma()(t,e),bo()(t,[{key:"trackClickConfigure",value:function(){uc.tracks.recordJetpackClick({target:"configure-plugins",page:"plugins-manage"})}},{key:"render",value:function(){return s.a.createElement(wu,fc()({},this.props,{module:"manage",header:xo("Auto-update plugins",{context:"Settings header"}),hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:this.props.getModule("manage")},s.a.createElement("div",null,xo("With Jetpack you can choose to have your plugins auto-updated with each new plugin release. You’ll get the latest security and bug fixes right away, ensuring your site stays secure."))),this.configLink())}}]),t}(o.Component)),ip=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("configure-monitor")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getOptionValue("monitor"),t=this.props.isUnavailableInDevMode("monitor");return s.a.createElement(wu,fc()({},this.props,{hideButton:!0,module:"monitor",header:xo("Downtime monitoring",{context:"Settings header"})}),s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:this.props.getModule("monitor"),support:{text:xo("Jetpack will continuously monitor your site, and alert you the moment downtime is detected."),link:"https://jetpack.com/support/monitor/"}},s.a.createElement(Kl,{slug:"monitor",disabled:t,activated:e,toggling:this.props.isSavingAnyOption("monitor"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Get alerts if your site goes offline. We’ll let you know when it’s back up, too.")))),s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,target:"_blank",href:"https://wordpress.com/settings/security/"+this.props.siteRawUrl},xo("Configure your notification settings")))}}]),t}(o.Component)),ap=(n(363),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("textarea",fc()({},Object(It.omit)(this.props,"className"),{className:Zs()(this.props.className,"dops-textarea")}),this.props.children)}}]),t}(s.a.Component));na()(ap,"displayName","Textarea");var op=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{whitelist:n.props.getOptionValue("jetpack_protect_global_whitelist")?n.props.getOptionValue("jetpack_protect_global_whitelist").local:""}),na()(wo()(n),"currentIpIsWhitelisted",(function(){return!!Object(It.includes)(n.state.whitelist,n.props.currentIp)})),na()(wo()(n),"updateText",(function(e){n.currentIpIsWhitelisted(),n.setState({whitelist:e.target.value}),n.props.onOptionChange(e)})),na()(wo()(n),"addToWhitelist",(function(){var e=n.state.whitelist+(0>=n.state.whitelist.length?"":"\n")+n.props.currentIp;n.props.updateFormStateOptionValue("jetpack_protect_global_whitelist",e),n.setState({whitelist:e}),uc.tracks.recordJetpackClick({target:"add-to-whitelist",feature:"protect"})})),na()(wo()(n),"trackOpenCard",(function(){uc.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"protect"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getOptionValue("protect"),t=this.props.isUnavailableInDevMode("protect"),n=s.a.createElement(Kl,{slug:"protect",compact:!0,disabled:t,activated:e,toggling:this.props.isSavingAnyOption("protect"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},this.props.getModule("protect").description));return s.a.createElement(wu,fc()({},this.props,{module:"protect",header:xo("Brute force attack protection",{context:"Settings header"}),saveDisabled:this.props.isSavingAnyOption("jetpack_protect_global_whitelist")}),s.a.createElement(Qu,{onOpen:this.trackOpenCard,header:n,className:Zs()({"jp-foldable-settings-disable":t})},s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:this.props.getModule("protect"),support:{text:xo("Protects your site from traditional and distributed brute force login attacks."),link:"https://jetpack.com/support/protect/"}},s.a.createElement(dl,null,this.props.currentIp&&s.a.createElement("div",null,s.a.createElement("div",{className:"jp-form-label-wide"},xo("Your current IP: %(ip)s",{args:{ip:this.props.currentIp}})),s.a.createElement(ec,{disabled:!e||t||this.currentIpIsWhitelisted()||this.props.isSavingAnyOption(["protect","jetpack_protect_global_whitelist"]),onClick:this.addToWhitelist},xo("Add to whitelist"))),s.a.createElement(hl,null,s.a.createElement(fl,null,xo("Whitelisted IP addresses")),s.a.createElement(ap,{disabled:!e||t||this.props.isSavingAnyOption(["protect","jetpack_protect_global_whitelist"]),name:"jetpack_protect_global_whitelist",placeholder:"Example: 12.12.12.1-12.12.12.100",onChange:this.updateText,value:this.state.whitelist})),s.a.createElement("span",{className:"jp-form-setting-explanation"},xo("You may whitelist an IP address or series of addresses preventing them from ever being blocked by Jetpack. IPv4 and IPv6 are acceptable. To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100",{components:{br:s.a.createElement("br",null)}}))))))}}]),t}(o.Component)),sp=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{jetpack_sso_match_by_email:n.props.getOptionValue("jetpack_sso_match_by_email","sso"),jetpack_sso_require_two_step:n.props.getOptionValue("jetpack_sso_require_two_step","sso")}),na()(wo()(n),"handleTwoStepToggleChange",(function(){n.updateOptions("jetpack_sso_require_two_step")})),na()(wo()(n),"handleMatchByEmailToggleChange",(function(){n.updateOptions("jetpack_sso_match_by_email")})),na()(wo()(n),"updateOptions",(function(e){n.setState(na()({},e,!n.state[e]),n.props.updateFormStateModuleOption("sso",e))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getOptionValue("sso"),t=this.props.isUnavailableInDevMode("sso");return s.a.createElement(wu,fc()({},this.props,{hideButton:!0,module:"sso",header:xo("WordPress.com login",{context:"Settings header, noun."})}),s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:this.props.getModule("sso"),support:{text:xo("Allows registered users to log in to your site with their WordPress.com accounts."),link:"https://jetpack.com/support/sso/"}},s.a.createElement("p",null,xo("Add an extra layer of security to your website by enabling WordPress.com login and secure authentication. If you have multiple sites with this option enabled, you will be able to log in to every one of them with the same credentials.")),s.a.createElement(Kl,{slug:"sso",disabled:t,activated:e,toggling:this.props.isSavingAnyOption("sso"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},this.props.getModule("sso").description)),s.a.createElement(dl,null,s.a.createElement(Hl,{checked:this.state.jetpack_sso_match_by_email,disabled:!e||t||this.props.isSavingAnyOption(["sso","jetpack_sso_match_by_email"]),onChange:this.handleMatchByEmailToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Match accounts using email addresses"))),s.a.createElement(Hl,{checked:this.state.jetpack_sso_require_two_step,disabled:!e||t||this.props.isSavingAnyOption(["sso","jetpack_sso_require_two_step"]),onChange:this.handleTwoStepToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Require accounts to use WordPress.com Two-Step Authentication"))))))}}]),t}(o.Component)),cp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"isAkismetFound",(function(){if(!n.props.isPluginActive("akismet/akismet.php"))return!1;if(n.props.searchTerm){var e=n.props.isPluginInstalled("akismet/akismet.php");return["akismet","antispam","spam","comments",e.Description,e.PluginURI].join(" ").toLowerCase().indexOf(n.props.searchTerm.toLowerCase())>-1}return!0})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={settings:this.props.settings,getModule:this.props.module,isDevMode:this.props.isDevMode,isUnavailableInDevMode:this.props.isUnavailableInDevMode,rewindStatus:this.props.rewindStatus,siteRawUrl:this.props.siteRawUrl},t=this.props.isModuleFound("protect"),n=this.props.isModuleFound("sso"),r=this.isAkismetFound(),i="active"===Object(It.get)(this.props.rewindStatus,["state"],!1),a=this.props.isModuleFound("vaultpress")||i,o=this.props.isModuleFound("monitor"),c=this.props.searchTerm;if(!c&&!this.props.active)return null;if(!(n||t||r||a||o))return null;var l=Yl(Object(It.get)(this.props.sitePlan,["product_slug"])),u=this.props.activeSitePurchases.map((function(e){return Yl(e.product_slug)})),p="is-personal-plan"===l,d="is-free-plan"===l&&(u.includes("is-daily-backup-plan")||u.includes("is-realtime-backup-plan")),h=p||d?s.a.createElement(np,fc()({},e,{vaultPressData:this.props.vaultPressData})):s.a.createElement(Yu,e);return s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:xo(c?"Security":"Your site is protected by Jetpack. You’ll be notified if anything needs attention."),className:"jp-settings-description"}),a&&h,o&&s.a.createElement(ip,e),r&&s.a.createElement("div",null,s.a.createElement(tp,e),s.a.createElement(cu,null)),!c&&s.a.createElement(rp,e),t&&s.a.createElement(op,e),n&&s.a.createElement(sp,e))}}]),t}(o.Component);na()(cp,"displayName","SecuritySettings");var lp=le((function(e){return{activeSitePurchases:Ns(e),module:function(t){return Pa(e,t)},settings:ms(e),sitePlan:Ss(e),isDevMode:Vo(e),isUnavailableInDevMode:function(t){return Jo(e,t)},isModuleFound:function(t){return ds(e,t)},isPluginActive:function(t){return oa(e,t)},isPluginInstalled:function(t){return sa(e,t)},vaultPressData:$i(e)}}))(cp),up=Wl(function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"trackClickConfigure",value:function(){uc.tracks.recordJetpackClick({target:"configure-publicize",page:"sharing"})}},{key:"render",value:function(){var e=this,t=this.props.isUnavailableInDevMode("publicize"),n=this.props.isLinked,r=this.props.connectUrl,i=this.props.siteRawUrl,a=this.props.getOptionValue("publicize"),o=this.props.userCanManageModules;return o||a?s.a.createElement(wu,fc()({},this.props,{header:xo("Publicize connections",{context:"Settings header"}),module:"publicize",hideButton:!0}),o&&s.a.createElement(Su,{disableInDevMode:!0,module:{module:"publicize"},support:{text:xo("Allows you to automatically share your newest content on social media sites, including Facebook and Twitter."),link:"https://jetpack.com/support/publicize/"}},s.a.createElement("p",null,xo("Connect your website to the social media networks you use and share your content across all your social accounts with a single click. When you publish a post, it will appear on all connected accounts.")),s.a.createElement(Kl,{slug:"publicize",disabled:t,activated:a,toggling:this.props.isSavingAnyOption("publicize"),toggleModule:this.props.toggleModuleNow},xo("Automatically share your posts to social networks"))),a&&function(){if(!t)return n?s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:e.trackClickConfigure,target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/connections/"+i},xo("Connect your social media accounts")):s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",target:"_blank",rel:"noopener noreferrer",href:"".concat(r,"&from=unlinked-user-connect-publicize")},xo("Create a Jetpack account to use this feature"))}()):null}}]),t}(o.Component)),pp=Wl(function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"trackClickConfigure",value:function(){uc.tracks.recordJetpackClick({target:"configure-sharing",page:"sharing"})}},{key:"render",value:function(){var e=this,t=this.props.isLinked,n=this.props.connectUrl,r=this.props.siteRawUrl,i=this.props.siteAdminUrl,a=this.props.isDevMode,o=this.props.getOptionValue("sharedaddy");return s.a.createElement(wu,fc()({},this.props,{header:xo("Sharing buttons",{context:"Settings header"}),module:"sharing",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"sharing"},support:{text:xo("You can customize the sharing buttons and choose which services to display."),link:"https://jetpack.com/support/sharing/"}},s.a.createElement("p",null,xo("Add sharing buttons so visitors can share your posts and pages on social media with a couple of quick clicks.")),s.a.createElement(Kl,{slug:"sharedaddy",activated:o,toggling:this.props.isSavingAnyOption("sharedaddy"),toggleModule:this.props.toggleModuleNow},xo("Add sharing buttons to your posts and pages"))),o&&(a?s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:i+"options-general.php?page=sharing"},xo("Configure your sharing buttons")):t?s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:e.trackClickConfigure,target:"_blank",rel:"noopener noreferrer",href:"https://wordpress.com/marketing/sharing-buttons/"+r},xo("Configure your sharing buttons")):s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",target:"_blank",rel:"noopener noreferrer",href:"".concat(n,"&from=unlinked-user-connect-sharing")},xo("Create a Jetpack account to use this feature"))))}}]),t}(o.Component)),dp=Wl(function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isUnavailableInDevMode("likes"),t=this.props.getOptionValue("likes");return s.a.createElement(wu,fc()({},this.props,{header:xo("Like buttons",{context:"Settings header"}),module:"likes",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"likes"},support:{text:xo("Adds like buttons to your content so that visitors can show their appreciation or enjoyment."),link:"https://jetpack.com/support/likes/"}},s.a.createElement("p",null,xo("When visitors enjoy your content, let them show it with a Like.")),s.a.createElement(Kl,{slug:"likes",disabled:e,activated:t,toggling:this.props.isSavingAnyOption("likes"),toggleModule:this.props.toggleModuleNow},xo("Add Like buttons to your posts and pages"))))}}]),t}(o.Component)),hp=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={settings:this.props.settings,getModule:this.props.module,isDevMode:this.props.isDevMode,isUnavailableInDevMode:this.props.isUnavailableInDevMode,isLinked:this.props.isLinked,connectUrl:this.props.connectUrl,siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,userCanManageModules:this.props.userCanManageModules},t=this.props.isModuleFound("publicize"),n=this.props.isModuleFound("sharedaddy"),r=this.props.isModuleFound("likes");return(this.props.searchTerm||this.props.active)&&(t||n||r)?s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:this.props.searchTerm?xo("Sharing"):xo("Share your content to social media, reaching new audiences and increasing engagement."),className:"jp-settings-description"}),t&&s.a.createElement(up,e),n&&s.a.createElement(pp,e),r&&s.a.createElement(dp,e)):null}}]),t}(o.Component),fp=le((function(e){return{module:function(t){return Pa(e,t)},settings:ms(e),isDevMode:Vo(e),isUnavailableInDevMode:function(t){return Jo(e,t)},isModuleFound:function(t){return ds(e,t)},isLinked:Bo(e),connectUrl:Ro(e),siteRawUrl:si(e),siteAdminUrl:ci(e),userCanManageModules:hi(e)}}))(hp),mp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("configure-seo")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Yl(this.props.sitePlan.product_slug);return s.a.createElement(wu,fc()({},this.props,{header:xo("Search engine optimization",{context:"Settings header"}),feature:"seo-tools-jetpack",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"seo-tools"},support:{text:xo("Allows you to optimize your site and its content for better results in search engines."),link:"https://jetpack.com/support/seo-tools/"}},s.a.createElement("span",null,xo("Take control of the way search engines represent your site. With Jetpack’s SEO tools you can preview how your content will look on popular search engines and change items like your site name and tagline in seconds."))),!this.props.isUnavailableInDevMode("seo-tools")&&("is-business-plan"===e||"is-premium-plan"===e)&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},xo("Customize your SEO settings")))}}]),t}(s.a.Component),gp=le((function(e){return{sitePlan:Ss(e)}}))(Wl(mp)),vp=Wl(function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"trackConfigureClick",value:function(){uc.tracks.recordJetpackClick("configure-ga")}},{key:"render",value:function(){return s.a.createElement(wu,fc()({},this.props,{header:xo("Google Analytics",{context:"Settings header"}),feature:"google-analytics-jetpack",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"google-analytics"},support:{text:xo("Integrates your WordPress site with Google Analytics, a platform that offers insights into your traffic, visitors, and conversions."),link:"https://jetpack.com/support/google-analytics/"}},xo("Google Analytics is a free service that complements our {{a}}built-in stats{{/a}} with different insights into your traffic. WordPress.com stats and Google Analytics use different methods to identify and track activity on your site, so they will normally show slightly different totals for your visits, views, etc.",{components:{a:s.a.createElement("a",{href:"https://wordpress.com/stats/day/"+this.props.siteRawUrl})}})),!this.props.isUnavailableInDevMode("google-analytics")&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},xo("Configure your Google Analytics settings")))}}]),t}(o.Component)),bp=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"updateOptions",(function(e){n.props.updateFormStateModuleOption("wordads",e)})),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("view-earnings")})),na()(wo()(n),"trackConfigureWidgetClick",(function(){uc.tracks.recordJetpackClick("place_ad_widget")})),na()(wo()(n),"handleChange",(function(e){return function(){return n.updateOptions(e)}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getOptionValue("wordads"),t=this.props.isUnavailableInDevMode("wordads"),n=this.props.getOptionValue("enable_header_ad","wordads"),r=this.props.getOptionValue("wordads_second_belowpost","wordads"),i=this.props.getOptionValue("wordads_display_front_page","wordads"),a=this.props.getOptionValue("wordads_display_post","wordads"),o=this.props.getOptionValue("wordads_display_page","wordads"),c=this.props.getOptionValue("wordads_display_archive","wordads"),l=this.props.getOptionValue("wordads_custom_adstxt","wordads"),u=-1!==this.props.siteRawUrl.indexOf("::");return s.a.createElement(wu,fc()({},this.props,{header:xo("Ads",{context:"Ads header"}),feature:"wordads-jetpack",saveDisabled:this.props.isSavingAnyOption(["wordads_custom_adstxt"])}),s.a.createElement(Su,{disableInDevMode:!0,hasChild:!0,module:{module:"wordads"},support:{text:xo("Displays high-quality ads on your site that allow you to earn income."),link:"https://jetpack.com/support/ads/"}},s.a.createElement("p",null,xo("Show ads on the first article on your home page or at the end of every page and post. Place additional ads at the top of your site and to any widget area to increase your earnings."),s.a.createElement("br",null),s.a.createElement("small",{className:"jp-form-setting-explanation"},xo("By activating ads, you agree to the Automattic Ads {{link}}Terms of Service{{/link}}.",{components:{link:s.a.createElement("a",{href:"https://wordpress.com/automattic-ads-tos/",target:"_blank",rel:"noopener noreferrer",onClick:this.trackConfigureWidgetClick})}}))),s.a.createElement(Kl,{slug:"wordads",disabled:t,activated:e,toggling:this.props.isSavingAnyOption("wordads"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enable ads and display an ad below each post"))),s.a.createElement(dl,null,s.a.createElement(fl,null,xo("Display ads below posts on")),s.a.createElement(Hl,{checked:i,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_front_page"]),onChange:this.handleChange("wordads_display_front_page")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Front page"))),s.a.createElement(Hl,{checked:a,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_post"]),onChange:this.handleChange("wordads_display_post")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Posts"))),s.a.createElement(Hl,{checked:o,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_page"]),onChange:this.handleChange("wordads_display_page")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Pages"))),s.a.createElement(Hl,{checked:c,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_archive"]),onChange:this.handleChange("wordads_display_archive")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Archives")))),s.a.createElement(dl,null,s.a.createElement(fl,null,xo("Additional ad placements")),s.a.createElement(Hl,{checked:n,disabled:!e||t||this.props.isSavingAnyOption(["wordads","enable_header_ad"]),onChange:this.handleChange("enable_header_ad")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Top of each page"))),s.a.createElement(Hl,{checked:r,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_second_belowpost"]),onChange:this.handleChange("wordads_second_belowpost")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Second ad below post"))),s.a.createElement("small",{className:"jp-form-setting-explanation"},e&&xo("You can place additional ads using the Ad widget. {{link}}Try it out!{{/link}}",{components:{link:s.a.createElement("a",{className:"jp-module-settings__external-link",href:"customize.php?autofocus[panel]=widgets"})}}))),!u&&s.a.createElement(dl,null,s.a.createElement(fl,null,xo("Custom ads.txt entries")),s.a.createElement("p",null,e&&xo("Jetpack automatically generates a custom {{link1}}ads.txt{{/link1}} tailored for your site. If you need to add additional entries for other networks please add them in the space below, one per line. {{link2}}Check here for more details{{/link2}}.",{components:{link1:s.a.createElement("a",{href:"/ads.txt",target:"_blank",rel:"noopener noreferrer"}),link2:s.a.createElement("a",{href:"https://jetpack.com/2018/11/09/how-jetpack-ads-members-can-increase-their-earnings-with-ads-txt/",target:"_blank",rel:"noopener noreferrer"})}}),!e&&xo("When ads are enabled, Jetpack automatically generates a custom ads.txt tailored for your site.")),s.a.createElement(ap,{name:"wordads_custom_adstxt",value:l,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_custom_adstxt"]),onChange:this.props.onOptionChange}))),!t&&e&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},xo("View your earnings")))}}]),t}(s.a.Component)),yp=window.Initial_State.pluginBaseUrl+"/images/",wp=Wl(function(e){function t(e){var n;la()(this,t),n=pa()(this,ha()(t).call(this,e)),na()(wo()(n),"updateOptions",(function(e,t){var r=n.props.getOptionValue(t,"stats"),i=!1;n.state["".concat(t,"_").concat(e)]?Object(It.includes)(r,e)&&(r=Object(It.filter)(r,(function(t){return t!==e}))):Object(It.includes)(r,e)||(r.push(e),i=!0),n.setState(na()({},"".concat(t,"_").concat(e),!n.state["".concat(t,"_").concat(e)]),(function(){n.props.updateOptions(na()({},t,r))})),uc.tracks.recordEvent("jetpack_wpa_settings_toggle",{module:"stats",setting:t,role:e,toggled:i?"on":"off"})})),na()(wo()(n),"activateStats",(function(){n.props.updateOptions({stats:!0})})),na()(wo()(n),"trackOpenCard",(function(){uc.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"stats"})})),na()(wo()(n),"handleRoleToggleChange",(function(e,t){return function(){return n.updateOptions(e,t)}}));var r=e.getOptionValue("count_roles","stats"),i=e.getOptionValue("roles","stats");return n.state={count_roles:r,roles:i,count_roles_administrator:Object(It.includes)(r,"administrator",!1),count_roles_editor:Object(It.includes)(r,"editor",!1),count_roles_author:Object(It.includes)(r,"author",!1),count_roles_contributor:Object(It.includes)(r,"contributor",!1),count_roles_subscriber:Object(It.includes)(r,"subscriber",!1),roles_administrator:!0,roles_editor:Object(It.includes)(i,"editor",!1),roles_author:Object(It.includes)(i,"author",!1),roles_contributor:Object(It.includes)(i,"contributor",!1),roles_subscriber:Object(It.includes)(i,"subscriber",!1)},n}return ma()(t,e),bo()(t,[{key:"handleStatsOptionToggle",value:function(e){var t=this;return function(){return t.props.updateFormStateModuleOption("stats",e)}}},{key:"render",value:function(){var e=this,t=this.props.getModule("stats"),n=this.props.getOptionValue("stats"),r=this.props.isUnavailableInDevMode("stats"),i=this.props.getSiteRoles();return"inactive"===this.props.getModuleOverride("stats")?s.a.createElement(bu,{moduleName:t.name}):n?s.a.createElement(wu,fc()({},this.props,{header:xo("Site stats",{context:"Settings header"}),hideButton:!0}),s.a.createElement(Qu,{onOpen:this.trackOpenCard,header:xo("Expand to update settings for how visits are counted and manage who can view this information."),clickableHeader:!0,className:Zs()("jp-foldable-settings-standalone",{"jp-foldable-settings-disable":r})},s.a.createElement(Su,{disableInDevMode:!0,module:t,support:{text:xo("Displays information on your site activity, including visitors and popular posts or pages."),link:"https://jetpack.com/support/wordpress-com-stats/"}},s.a.createElement(dl,null,s.a.createElement(Hl,{checked:!!this.props.getOptionValue("admin_bar"),disabled:!n||r,toggling:this.props.isSavingAnyOption(["stats","admin_bar"]),onChange:this.handleStatsOptionToggle("admin_bar")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Include a small chart in your admin bar with a 48-hour traffic snapshot"))),s.a.createElement(Hl,{checked:!!this.props.getOptionValue("hide_smile"),disabled:!n||r,toggling:this.props.isSavingAnyOption(["stats","hide_smile"]),onChange:this.handleStatsOptionToggle("hide_smile")},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Hide the stats smiley face image")),s.a.createElement("span",{className:"jp-form-setting-explanation"},xo("The image helps collect stats, but should work when hidden.")))),s.a.createElement(dl,null,s.a.createElement(fl,null,xo("Count logged in page views from")),Object.keys(i).map((function(t){return s.a.createElement(Hl,{checked:e.state["count_roles_".concat(t)],disabled:!n||r||e.props.isSavingAnyOption(["stats","count_roles"]),onChange:e.handleRoleToggleChange(t,"count_roles"),key:"count_roles-".concat(t)},s.a.createElement("span",{className:"jp-form-toggle-explanation"},i[t].name))}))),s.a.createElement(dl,null,s.a.createElement(fl,null,xo("Allow stats reports to be viewed by")),s.a.createElement(Hl,{checked:!0,disabled:!0},s.a.createElement("span",{className:"jp-form-toggle-explanation"},i.administrator.name)),Object.keys(i).map((function(t){return"administrator"!==t&&s.a.createElement(Hl,{checked:e.state["roles_".concat(t)],disabled:!n||r||e.props.isSavingAnyOption(["stats","roles"]),onChange:e.handleRoleToggleChange(t,"roles"),key:"roles-".concat(t)},s.a.createElement("span",{className:"jp-form-toggle-explanation"},i[t].name))})))))):s.a.createElement(al,{className:"jp-at-a-glance__stats-card "+(this.props.isDevMode?"is-inactive":"")},s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive"},s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-icon"},s.a.createElement("img",{src:yp+"stats.svg",width:"60",height:"60",alt:xo("Jetpack Stats Icon"),className:"jp-at-a-glance__stats-icon"})),s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-text"},this.props.isDevMode?xo("Unavailable in Dev Mode"):xo("{{a}}Activate Site Stats{{/a}} to see detailed stats, likes, followers, subscribers, and more! {{a1}}Learn More{{/a1}}",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activateStats}),a1:s.a.createElement("a",{href:"https://jetpack.com/support/wordpress-com-stats/",target:"_blank",rel:"noopener noreferrer"})}})),!this.props.isDevMode&&s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-button"},s.a.createElement(ec,{onClick:this.activateStats,primary:!0},xo("Activate Site Stats")))))}}]),t}(s.a.Component)),_p=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isSiteConnected;return s.a.createElement(wu,fc()({},this.props,{header:xo("WP.me Shortlinks",{context:"Settings header"}),module:"shortlinks",hideButton:!0}),s.a.createElement(Su,{module:{module:"shortlinks"},support:{text:this.props.shortlinksModule.description,link:"https://jetpack.com/support/shortlinks/"},disableInDevMode:!0},s.a.createElement(Kl,{slug:"shortlinks",disabled:!e,activated:this.props.shortlinksActive,toggling:this.props.isSavingAnyOption("shortlinks"),toggleModule:this.props.toggleModuleNow},xo("Generate shortened URLs for simpler sharing."))))}}]),t}(o.Component),kp=Wl(le((function(e,t){return{shortlinksActive:t.getOptionValue("shortlinks"),shortlinksModule:Pa(e,"shortlinks")}}))(_p)),Ep=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{show_headline:n.props.getOptionValue("show_headline","related-posts"),show_thumbnails:n.props.getOptionValue("show_thumbnails","related-posts")}),na()(wo()(n),"updateOptions",(function(e){n.setState(na()({},e,!n.state[e]),n.props.updateFormStateModuleOption("related-posts",e))})),na()(wo()(n),"handleShowHeadlineToggleChange",(function(){n.updateOptions("show_headline")})),na()(wo()(n),"handleShowThumbnailsToggleChange",(function(){n.updateOptions("show_thumbnails")})),na()(wo()(n),"trackConfigureClick",(function(){uc.tracks.recordJetpackClick("configure-related-posts")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this,t=this.props.getOptionValue("related-posts"),n=this.props.isUnavailableInDevMode("related-posts");return s.a.createElement(wu,fc()({},this.props,{hideButton:!0,module:"related-posts"}),s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:this.props.getModule("related-posts"),support:{text:xo("The feature helps visitors find more of your content by displaying related posts at the bottom of each post."),link:"https://jetpack.com/support/related-posts/"}},s.a.createElement("p",null,xo("Keep your visitors engaged with related content at the bottom of each post. These settings won't apply to {{a}}related posts added using the block editor{{/a}}.",{components:{a:s.a.createElement("a",{href:"https://jetpack.com/support/jetpack-blocks/related-posts-block/",target:"_blank",rel:"noopener noreferrer"})}})),s.a.createElement(Kl,{slug:"related-posts",disabled:n,activated:t,toggling:this.props.isSavingAnyOption("related-posts"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Show related content after posts"))),s.a.createElement(dl,null,s.a.createElement(Hl,{checked:this.state.show_headline,disabled:!t||n||this.props.isSavingAnyOption(["related-posts","show_headline"]),onChange:this.handleShowHeadlineToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Highlight related content with a heading"))),s.a.createElement(Hl,{checked:this.state.show_thumbnails,disabled:!t||n||this.props.isSavingAnyOption(["related-posts","show_thumbnails"]),onChange:this.handleShowThumbnailsToggleChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Show a thumbnail image where available"))),t&&s.a.createElement("div",null,s.a.createElement(hl,{className:"jp-form-label-wide"},xo("Preview",{context:"A header for a preview area in the configuration screen."})),s.a.createElement(al,{className:"jp-related-posts-preview"},this.state.show_headline&&s.a.createElement("div",{className:"jp-related-posts-preview__title"},xo("Related")),[{url:"cat-blog.png",text:xo("Big iPhone/iPad Update Now Available"),context:xo('In "Mobile"',{comment:"It refers to the category where a post was found. Used in an example preview."})},{url:"devices.jpg",text:xo("The WordPress for Android App Gets a Big Facelift"),context:xo('In "Mobile"',{comment:"It refers to the category where a post was found. Used in an example preview."})},{url:"mobile-wedding.jpg",text:xo("Upgrade Focus: VideoPress For Weddings"),context:xo('In "Upgrade"',{comment:"It refers to the category where a post was found. Used in an example preview."})}].map((function(t,n){return s.a.createElement("div",{key:"preview_".concat(n),className:"jp-related-posts-preview__item"},e.state.show_thumbnails&&s.a.createElement("img",{src:"https://jetpackme.files.wordpress.com/2019/03/".concat(t.url),alt:t.text}),s.a.createElement("h4",{className:"jp-related-posts-preview__post-title"},s.a.createElement("a",{href:"#/traffic"},t.text)),s.a.createElement("p",{className:"jp-related-posts-preview__post-context"},t.context))})))))),!this.props.isUnavailableInDevMode("related-posts")&&t&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},xo("Configure related posts in the Customizer")))}}]),t}(s.a.Component)),Cp=function(e){Object(It.assign)(e,eo.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener};function Sp(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}Cp(Sp.prototype),Sp.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},Sp.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},Sp.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(n){}return!t},Sp.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},Sp.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t};var Mp=Sp,xp=function(e,t){var n,r=new Mp;r.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+r.getScreenCenterSpecs(780,700)),r.once("close",(function(){var e=null;n&&n.keyring_id&&(e=Number(n.keyring_id)),t(e)})),r.on("message",(function(e){return n=e}))},Ap=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{inputVisible:!1}),na()(wo()(n),"handleClickAutoVerify",(function(){n.props.fetchingSiteData||n.props.fetchingGoogleSiteVerify||(uc.tracks.recordEvent("jetpack_site_verification_google_auto_verify_click"),xp(n.props.googleSiteVerificationConnectUrl,(function(e){e&&n.checkAndVerifySite(e)})))})),na()(wo()(n),"handleClickSetManually",(function(e){uc.tracks.recordEvent("jetpack_site_verification_google_manual_verify_click",{is_owner:n.props.isOwner}),n.toggleVerifyMethod(e)})),na()(wo()(n),"handleClickEdit",(function(e){uc.tracks.recordEvent("jetpack_site_verification_google_edit_click",{is_owner:n.props.isOwner}),n.toggleVerifyMethod(e)})),na()(wo()(n),"handleClickCancel",(function(e){uc.tracks.recordEvent("jetpack_site_verification_google_cancel_click",{is_owner:n.props.isOwner}),n.props.resetFormStateOption("google"),n.toggleVerifyMethod(e)})),na()(wo()(n),"quickSave",(function(e){uc.tracks.recordEvent("jetpack_site_verification_google_manual_verify_save",{is_owner:n.props.isOwner,is_empty:!n.props.value}),n.props.onSubmit(e)})),na()(wo()(n),"toggleVerifyMethod",(function(){n.setState({inputVisible:!n.state.inputVisible})})),na()(wo()(n),"handleOnTextInputKeyPress",(function(e){"Enter"===e.key&&n.quickSave()})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){var e=this;this.props.isCurrentUserLinked&&this.props.checkVerifyStatusGoogle().then((function(t){if(e.props.googleSiteVerificationError&&"unverify-site-error"===e.props.googleSiteVerificationError.code&&e.props.updateOptions({google:""}).then((function(){return e.props.checkVerifyStatusGoogle()})),t)return!e.props.getOptionValue("google")&&t.token?e.props.updateOptions({google:t.token}):void(!e.props.getOptionValue("google")||t.token||t.verified||e.setState({inputVisible:!0}))}))}},{key:"checkAndVerifySite",value:function(e){var t=this;this.props.createNotice("is-info",xo("Verifying…"),{id:"verifying-site-google"}),this.props.checkVerifyStatusGoogle(e).then((function(e){if(e)return e.token!==t.props.value?t.props.updateOptions({google:e.token}):void 0})).then((function(){t.props.removeNotice("verifying-site-google"),t.props.isSiteVerifiedWithGoogle||t.props.verifySiteGoogle(e).then((function(){if(t.props.googleSiteVerificationError){var e=t.props.googleSiteVerificationError.message;uc.tracks.recordEvent("jetpack_site_verification_google_verify_error",{error_message:e}),t.props.createNotice("is-error",xo("Site failed to verify: %(error)s",{args:{error:e}}),{id:"verify-site-google-error",duration:5e3})}else t.props.isSiteVerifiedWithGoogle&&uc.tracks.recordEvent("jetpack_site_verification_google_verify_success")}))}))}},{key:"render",value:function(){var e=this.props.googleSiteVerificationError&&"forbidden"===this.props.googleSiteVerificationError.code;if(this.state.inputVisible||e||!this.props.isCurrentUserLinked)return s.a.createElement("div",null,s.a.createElement(hl,{className:"jp-form-input-with-prefix",key:"verification_service_google"},s.a.createElement("span",null,xo("Google")),s.a.createElement(pl,{name:"google",value:this.props.value,placeholder:this.props.placeholder,className:"code",disabled:this.props.disabled,onChange:this.props.onOptionChange,onKeyPress:this.handleOnTextInputKeyPress}),this.state.inputVisible&&s.a.createElement("div",{className:"jp-form-site-verification-buttons"},s.a.createElement(ec,{primary:!0,type:"button",className:"jp-form-site-verification-edit-button",disabled:this.props.disabled,onClick:this.quickSave},xo("Save")),s.a.createElement(ec,{type:"button",className:"jp-form-site-verification-edit-button",disabled:this.props.disabled,onClick:this.handleClickCancel},xo("Cancel")))));if(this.props.isSiteVerifiedWithGoogle)return s.a.createElement("div",null,s.a.createElement("div",{className:"jp-form-input-with-prefix",key:"verification_service_google"},s.a.createElement("span",null,xo("Google")),s.a.createElement("div",{className:"jp-form-site-verification-verified"},s.a.createElement(Lc,{icon:"checkmark-circle",size:20})," ",s.a.createElement("span",null,xo("Your site is verified with Google"))),s.a.createElement(ec,{type:"button",className:"jp-form-site-verification-edit-button",onClick:this.handleClickEdit},xo("Edit"))),this.props.isOwner&&s.a.createElement("div",{className:"jp-form-input-with-prefix-bottom-message"},s.a.createElement("div",{className:"jp-form-setting-explanation"},s.a.createElement("p",null,xo("Monitor your site's traffic and performance from the {{a}}Google Search Console{{/a}}.",{components:{a:s.a.createElement(ku,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:this.props.googleSearchConsoleUrl})}})," ",xo("Google will email about certain events that occur with your site, including indications that your website has been {{a1}}hacked{{/a1}}, or problems {{a2}}crawling or indexing{{/a2}} your site.",{components:{a1:s.a.createElement(ku,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:"https://developers.google.com/web/fundamentals/security/hacked/"}),a2:s.a.createElement(ku,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:"https://www.google.com/insidesearch/howsearchworks/crawling-indexing.html"})}})))));var t=this.props.fetchingSiteData||this.props.fetchingGoogleSiteVerify||this.props.isVerifyingGoogleSite||this.props.disabled;return s.a.createElement("div",{className:"jp-form-input-with-prefix jp-form-google-label-unverified",key:"verification_service_google"},s.a.createElement("span",null,xo("Google")),s.a.createElement("div",{className:"jp-form-google-label-unverified-actions"},s.a.createElement(ec,{primary:!0,type:"button",disabled:t,onClick:this.handleClickAutoVerify},xo("Verify with Google")),s.a.createElement("span",{className:"jp-form-google-separator"},xo("or")),s.a.createElement(ec,{type:"button",disabled:t,onClick:this.handleClickSetManually},xo("Manually Verify "))))}}]),t}(s.a.Component);na()(Ap,"propTypes",{disabled:u.a.bool}),na()(Ap,"defaultProps",{disabled:!1});var jp=le((function(e){return{fetchingSiteData:Es(e),googleSiteVerificationConnectUrl:as(e,"google_site_verification"),googleSearchConsoleUrl:Fs(e),fetchingGoogleSiteVerify:Ps(e),isConnectedToGoogle:Ds(e),isSiteVerifiedWithGoogle:Rs(e),isVerifyingGoogleSite:Is(e),userCanManageOptions:fi(e),googleSiteVerificationError:Us(e),isOwner:Ls(e)}}),{checkVerifyStatusGoogle:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return function(t){return t({type:Hr}),Ca.fetchVerifySiteGoogleStatus(e).then((function(e){if(e.errors&&e.errors.length>0){var n=Object.keys(e.errors)[0],r=e.errors[n];return t({type:qr,error:{code:n,message:r}}),e}return t({type:Kr,verified:e.verified,token:e.token,isOwner:e.is_owner,searchConsoleUrl:e.google_search_console_url,verificationConsoleUrl:e.google_verification_console_url}),e})).catch((function(e){t({type:qr,error:e.response})}))}},createNotice:Ba,removeNotice:za,verifySiteGoogle:function(e){return function(t){return t({type:Yr}),Ca.verifySiteGoogle(e).then((function(e){if(e.errors&&e.errors.length>0){var n=Object.keys(e.errors)[0],r=e.errors[n];return t({type:Xr,error:{code:n,message:r}}),e}return t({verified:e.verified,isOwner:e.is_owner,searchConsoleUrl:e.google_search_console_url,verificationConsoleUrl:e.google_verification_console_url,type:$r}),e.verified&&t(Ba("is-success",xo("Site is verified"),{id:"verify-site-google-verified",duration:2e3})),e})).catch((function(e){t({type:Xr,error:e.response})}))}}})(Ap),Op=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getMetaTag",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return n?/^[a-z0-9_-]+$/i.test(n)?Object(It.includes)(n,"<meta")?n:'<meta name="'.concat(Object(It.get)(t.serviceIds,e,""),'" content="').concat(n,'" />'):n:""}},{key:"getSiteVerificationValue",value:function(e){var t=this.props.getOptionValue(e);return t===this.props.getSettingCurrentValue(e)?this.getMetaTag(e,t):t}},{key:"render",value:function(){var e=this.props.getModule("verification-tools");if("inactive"===this.props.getModuleOverride("verification-tools"))return s.a.createElement(gu,{title:e.name,icon:"cog",description:xo("%(moduleName)s has been disabled by a site administrator.",{args:{moduleName:e.name}})});var t=!!this.props.getOptionValue(e.module);return s.a.createElement(wu,fc()({},this.props,{module:e.module,saveDisabled:this.props.isSavingAnyOption(["google","bing","pinterest","yandex"])}),s.a.createElement(Su,{module:e,support:{text:xo("Provides the necessary hidden tags needed to verify your WordPress site with various services."),link:"https://jetpack.com/support/site-verification-tools"}},s.a.createElement(Kl,{slug:e.module,activated:t,toggling:this.props.isSavingAnyOption([e.module]),disabled:this.props.isSavingAnyOption([e.module]),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Verify site ownership with third party services"))),s.a.createElement("p",null,xo("Note that {{b}}verifying your site with these services is not necessary{{/b}} in order for your site to be indexed by search engines. To use these advanced search engine tools and verify your site with a service, paste the HTML Tag code below. Read the {{support}}full instructions{{/support}} if you are having trouble. Supported verification services: {{google}}Google Search Console{{/google}}, {{bing}}Bing Webmaster Center{{/bing}}, {{pinterest}}Pinterest Site Verification{{/pinterest}}, and {{yandex}}Yandex.Webmaster{{/yandex}}.",{components:{b:s.a.createElement("strong",null),support:s.a.createElement("a",{href:"https://jetpack.com/support/site-verification-tools/"}),google:s.a.createElement(ku,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://www.google.com/webmasters/tools/"}),bing:s.a.createElement(ku,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://www.bing.com/webmaster/"}),pinterest:s.a.createElement(ku,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://pinterest.com/website/verify/"}),yandex:s.a.createElement(ku,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://webmaster.yandex.com/sites/"})}})),s.a.createElement(dl,null,s.a.createElement(jp,fc()({value:this.getSiteVerificationValue("google"),placeholder:this.getMetaTag("google","1234")},this.props,{disabled:this.props.isUpdating("google")||!t})),s.a.createElement(hl,{className:"jp-form-input-with-prefix",key:"verification_service_bing"},s.a.createElement("span",null,xo("Bing")),s.a.createElement(pl,{name:"bing",value:this.getSiteVerificationValue("bing"),placeholder:this.getMetaTag("bing","1234"),className:"code",disabled:this.props.isUpdating("bing")||!t,onChange:this.props.onOptionChange})),s.a.createElement(hl,{className:"jp-form-input-with-prefix",key:"verification_service_pinterest"},s.a.createElement("span",null,xo("Pinterest")),s.a.createElement(pl,{name:"pinterest",value:this.getSiteVerificationValue("pinterest"),placeholder:this.getMetaTag("pinterest","1234"),className:"code",disabled:this.props.isUpdating("pinterest")||!t,onChange:this.props.onOptionChange})),s.a.createElement(hl,{className:"jp-form-input-with-prefix",key:"verification_service_yandex"},s.a.createElement("span",null,xo("Yandex")),s.a.createElement(pl,{name:"yandex",value:this.getSiteVerificationValue("yandex"),placeholder:this.getMetaTag("yandex","1234"),className:"code",disabled:this.props.isUpdating("yandex")||!t,onChange:this.props.onOptionChange})))))}}]),t}(s.a.Component);na()(Op,"serviceIds",{google:"google-site-verification",bing:"msvalidate.01",pinterest:"p:domain_verify",yandex:"yandex-verification"});var Np=Wl(Op),Tp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackSitemapUrl",(function(){uc.tracks.recordJetpackClick("sitemap-url-link")})),na()(wo()(n),"trackSitemapNewsUrl",(function(){uc.tracks.recordJetpackClick("sitemap-news-url-link")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getModule("sitemaps"),t=Object(It.get)(e,["extra","sitemap_url"],""),n=Object(It.get)(e,["extra","news_sitemap_url"],""),r=Zs()({"jp-form-setting-explanation":!0,"is-warning":!this.props.isSiteVisibleToSearchEngines&&this.props.getOptionValue("sitemaps")});return s.a.createElement(wu,fc()({},this.props,{module:"sitemaps",hideButton:!0}),s.a.createElement(Su,{hasChild:!0,module:{module:"sitemaps"},support:{link:"https://jetpack.com/support/sitemaps/"}},s.a.createElement("p",null,xo("Sitemaps are files that search engines like Google or Bing use to index your website. They can help improve your ranking in search results. When you enable this feature, Jetpack will create sitemaps for you and update them automatically when the content on your site changes.")),s.a.createElement(Kl,{slug:"sitemaps",compact:!0,activated:this.props.getOptionValue("sitemaps"),toggling:this.props.isSavingAnyOption("sitemaps"),toggleModule:this.props.toggleModuleNow},xo("Generate XML sitemaps")),this.props.isSiteVisibleToSearchEngines?this.props.getOptionValue("sitemaps")&&s.a.createElement(dl,null,s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("Good news: Jetpack is sending your sitemap automatically to all major search engines for indexing."),s.a.createElement("br",null),s.a.createElement(ku,{onClick:this.trackSitemapUrl,icon:!0,target:"_blank",rel:"noopener noreferrer",href:t},t),s.a.createElement("br",null),s.a.createElement(ku,{onClick:this.trackSitemapNewsUrl,icon:!0,target:"_blank",rel:"noopener noreferrer",href:n},n))):s.a.createElement(dl,null,s.a.createElement("p",{className:r},xo("Search engines can't access your site at the moment. If you'd like to make your site accessible, check your {{a}}Reading settings{{/a}} and switch \"Search Engine Visibility\" on.",{components:{a:s.a.createElement("a",{href:this.props.siteAdminUrl+"options-reading.php"})}})))))}}]),t}(s.a.Component),Pp=le((function(e){return{isSiteVisibleToSearchEngines:Si(e),siteAdminUrl:ci(e)}}))(Wl(Tp)),Ip=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={settings:this.props.settings,siteRawUrl:this.props.siteRawUrl,getModule:this.props.module,isSiteConnected:this.props.isSiteConnected,isDevMode:this.props.isDevMode,isUnavailableInDevMode:this.props.isUnavailableInDevMode,getModuleOverride:this.props.getModuleOverride},t=this.props.isModuleFound("seo-tools"),n=this.props.isModuleFound("wordads"),r=this.props.isModuleFound("stats"),i=this.props.isModuleFound("shortlinks"),a=this.props.isModuleFound("related-posts"),o=this.props.isModuleFound("verification-tools"),c=this.props.isModuleFound("sitemaps"),l=this.props.isModuleFound("google-analytics");return(this.props.searchTerm||this.props.active)&&(t||n||r||i||a||o||c||l)?s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:this.props.searchTerm?xo("Traffic"):xo("Maximize your site’s visibility in search engines and view traffic stats in real time."),className:"jp-settings-description"}),n&&s.a.createElement(bp,fc()({},e,{configureUrl:"https://wordpress.com/stats/ads/day/"+this.props.siteRawUrl})),a&&s.a.createElement(Ep,fc()({},e,{configureUrl:this.props.siteAdminUrl+"customize.php?autofocus[section]=jetpack_relatedposts&return="+encodeURIComponent(this.props.siteAdminUrl+"admin.php?page=jetpack#/traffic")+"&url="+encodeURIComponent(this.props.lastPostUrl)})),t&&s.a.createElement(gp,fc()({},e,{configureUrl:"https://wordpress.com/marketing/traffic/"+this.props.siteRawUrl+"#seo"})),l&&s.a.createElement(vp,fc()({},e,{configureUrl:"https://wordpress.com/marketing/traffic/"+this.props.siteRawUrl+"#analytics"})),r&&s.a.createElement(wp,e),i&&s.a.createElement(kp,e),c&&s.a.createElement(Pp,e),o&&s.a.createElement(Np,e)):null}}]),t}(s.a.Component);na()(Ip,"displayName","TrafficSettings");var Dp=le((function(e){return{module:function(t){return Pa(e,t)},settings:ms(e),isDevMode:Vo(e),isUnavailableInDevMode:function(t){return Jo(e,t)},isModuleFound:function(t){return ds(e,t)},isSiteConnected:Io(e),lastPostUrl:Oi(e),getModuleOverride:function(t){return La(e,t)}}}))(Ip),Rp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"updateFormStateByMarkdown",(function(e){return n.props.getSettingCurrentValue("wpcom_publish_comments_with_markdown",e)?n.props.updateFormStateModuleOption(e,"wpcom_publish_posts_with_markdown"):n.props.updateFormStateModuleOption(e,"wpcom_publish_posts_with_markdown",!0)})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("copy-post"),t=this.props.isModuleFound("latex"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("shortcodes");if(!(e||t||n||r))return null;var i=this.props.module("markdown"),a=this.props.module("latex"),o=this.props.module("copy-post"),c=this.props.module("shortcodes"),l=s.a.createElement(Su,{module:o,support:{text:xo("Duplicate existing posts, pages, Testimonials, and Portfolios. All the content will be copied including text, featured images, sharing settings, and more."),link:"https://jetpack.com/support/copy-post-2/"}},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"copy-post",activated:!!this.props.getOptionValue("copy-post"),toggling:this.props.isSavingAnyOption("copy-post"),disabled:this.props.isSavingAnyOption("copy-post"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},o.description)))),u=s.a.createElement(Su,{module:i,support:{text:xo("Use Markdown syntax to compose content with links, lists, and other styles. This setting enables Markdown in the Classic Editor as well as within a Classic Editor block."),link:"https://jetpack.com/support/markdown/"}},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"markdown",activated:!!this.props.getOptionValue("wpcom_publish_posts_with_markdown","markdown"),toggling:this.props.isSavingAnyOption(["markdown","wpcom_publish_posts_with_markdown"]),disabled:this.props.isSavingAnyOption(["markdown","wpcom_publish_posts_with_markdown"]),toggleModule:this.updateFormStateByMarkdown},s.a.createElement("span",{className:"jp-form-toggle-explanation"},i.description)))),p=s.a.createElement(Su,{module:a,support:{text:xo("LaTeX is a powerful markup language for writing complex mathematical equations and formulas."),link:"https://jetpack.com/support/beautiful-math-with-latex/"}},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"latex",activated:!!this.props.getOptionValue("latex"),toggling:this.props.isSavingAnyOption(["latex"]),disabled:this.props.isSavingAnyOption(["latex"]),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},a.description)))),d=s.a.createElement(Su,{module:c,support:{text:c.description,link:"https://jetpack.com/support/shortcode-embeds/"}},s.a.createElement(dl,null,s.a.createElement(Kl,{slug:"shortcodes",activated:!!this.props.getOptionValue("shortcodes"),toggling:this.props.isSavingAnyOption(["shortcodes"]),disabled:this.props.isSavingAnyOption(["shortcodes"]),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Compose using shortcodes to embed media from popular sites")))));return s.a.createElement(wu,fc()({},this.props,{header:xo("Composing",{context:"Settings header"}),module:"composing",saveDisabled:this.props.isSavingAnyOption("ignored_phrases")}),e&&l,n&&u,t&&p,r&&d)}}]),t}(s.a.Component),Up=le((function(e){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)}}}))(Wl(Rp)),Fp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{testimonial:n.props.getOptionValue("jetpack_testimonial","custom-content-types"),portfolio:n.props.getOptionValue("jetpack_portfolio","custom-content-types")}),na()(wo()(n),"updateCPTs",(function(e){var t="testimonial"===e?!(!n.state.testimonial||n.state.portfolio):!(!n.state.portfolio||n.state.testimonial);n.props.updateFormStateModuleOption("custom-content-types","jetpack_"+e,t),n.setState(na()({},e,!n.state[e]))})),na()(wo()(n),"linkIfActiveCPT",(function(e){return n.props.getSettingCurrentValue("jetpack_".concat(e),"custom-content-types")?s.a.createElement("a",{href:"".concat(n.props.siteAdminUrl,"edit.php?post_type=jetpack-").concat(e)}):s.a.createElement("span",null)})),na()(wo()(n),"handleTestimonialToggleChange",(function(){n.updateCPTs("testimonial")})),na()(wo()(n),"handlePortfolioToggleChange",(function(){n.updateCPTs("portfolio")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.isModuleFound("custom-content-types"))return null;var e=this.props.module("custom-content-types"),t="inactive"===this.props.getModuleOverride("custom-content-types"),n=t&&xo("This feature has been disabled by a site administrator.");return s.a.createElement(wu,fc()({},this.props,{module:"custom-content-types",hideButton:!0}),s.a.createElement(Su,{hasChild:!0,module:e,support:{link:"https://jetpack.com/support/custom-content-types/"}},s.a.createElement("p",null,xo("Add {{testimonialLink}}testimonials{{/testimonialLink}} to your website to attract new customers. If your theme doesn’t support Jetpack Testimonials, you can still use a simple shortcode to display them on your site.",{components:{testimonialLink:this.linkIfActiveCPT("testimonial")}})),s.a.createElement(Hl,{checked:this.state.testimonial,disabled:this.props.isSavingAnyOption("jetpack_testimonial")||t,onChange:this.handleTestimonialToggleChange,disabledReason:n},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Testimonials"))),s.a.createElement(dl,null,s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("Testimonials shortcode: [testimonials]")))),this.props.testimonialActive&&s.a.createElement($u,{className:"jp-settings-card__configure-link",href:"".concat(this.props.siteAdminUrl,"post-new.php?post_type=jetpack-testimonial")},xo("Add a testimonial")),s.a.createElement(Su,{hasChild:!0,module:e,support:{link:"https://jetpack.com/support/custom-content-types/"}},s.a.createElement("p",null,xo("Use {{portfolioLink}}portfolios{{/portfolioLink}} on your site to showcase your best work. If your theme doesn’t support Jetpack Portfolios, you can still use a simple shortcode to display them on your site.",{components:{portfolioLink:this.linkIfActiveCPT("portfolio")}})),s.a.createElement(Hl,{checked:this.state.portfolio,disabled:this.props.isSavingAnyOption("jetpack_portfolio")||t,onChange:this.handlePortfolioToggleChange,disabledReason:n},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Portfolios"))),s.a.createElement(dl,null,s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("Portfolios shortcode: [portfolio]")))),this.props.portfolioActive&&s.a.createElement($u,{className:"jp-settings-card__configure-link",href:"".concat(this.props.siteAdminUrl,"post-new.php?post_type=jetpack-portfolio")},xo("Add a portfolio item")))}}]),t}(s.a.Component),Lp=Wl(le((function(e,t){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)},getModuleOverride:function(t){return La(e,t)},portfolioActive:t.getSettingCurrentValue("jetpack_portfolio","custom-content-types"),testimonialActive:t.getSettingCurrentValue("jetpack_testimonial","custom-content-types")}}))(Fp)),zp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"getInfiniteMode",(function(){return n.props.getOptionValue("infinite-scroll")?n.props.getOptionValue("infinite_scroll","infinite-scroll")?"infinite_scroll":"infinite_button":"infinite_default"})),na()(wo()(n),"updateInfiniteMode",(function(e){n.setState({infinite_mode:e},n.prepareOptionsToUpdate)})),na()(wo()(n),"prepareOptionsToUpdate",(function(){"infinite_default"===n.state.infinite_mode?n.props.updateFormStateOptionValue("infinite-scroll",!1):"infinite_scroll"!==n.state.infinite_mode&&"infinite_button"!==n.state.infinite_mode||n.props.updateFormStateOptionValue({"infinite-scroll":!0,infinite_scroll:"infinite_scroll"===n.state.infinite_mode})})),na()(wo()(n),"updateOptions",(function(e,t){n.setState(na()({},e,!n.state[e]),n.props.updateFormStateModuleOption(t,e))})),na()(wo()(n),"trackLearnMoreIS",(function(){uc.tracks.recordJetpackClick({target:"learn-more",feature:"infinite-scroll",extra:"not-supported-link"})})),na()(wo()(n),"state",{infinite_mode:n.getInfiniteMode(),wp_mobile_excerpt:n.props.getOptionValue("wp_mobile_excerpt","minileven"),wp_mobile_featured_images:n.props.getOptionValue("wp_mobile_featured_images","minileven"),wp_mobile_app_promos:n.props.getOptionValue("wp_mobile_app_promos","minileven")}),na()(wo()(n),"handleInfiniteScrollModeChange",(function(e){return function(){return n.updateInfiniteMode(e)}})),na()(wo()(n),"handleMinilevenOptionChange",(function(e,t){return function(){return n.updateOptions(e,t)}})),na()(wo()(n),"trackMinilevenLearnMore",(function(){uc.tracks.recordJetpackClick({target:"learn-more",feature:"minileven",extra:"deprecated-link"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this,t=this.props.isModuleFound("infinite-scroll"),n=this.props.isModuleFound("custom-css"),r=this.props.isModuleFound("minileven");if(!t&&!r&&!n)return null;var i=this.props.getModule("infinite-scroll"),a=this.props.getModule("minileven"),o=this.props.getModule("custom-css"),c=this.props.getOptionValue(a.module),l="inactive"===this.props.getModuleOverride("infinite-scroll");return s.a.createElement(wu,fc()({},this.props,{header:xo("Theme enhancements"),hideButton:!t||!this.props.isInfiniteScrollSupported}),l&&s.a.createElement(bu,{moduleName:i.name,compact:!0}),t&&!l&&s.a.createElement(Su,{hasChild:!0,module:{module:i.module},key:"theme_enhancement_".concat(i.module),support:{text:xo("Loads the next posts automatically when the reader approaches the bottom of the page."),link:"https://jetpack.com/support/infinite-scroll"}},s.a.createElement(fl,{className:"jp-form-label-wide"},i.name),s.a.createElement("p",null,xo("Create a smooth, uninterrupted reading experience by loading more content as visitors scroll to the bottom of your archive pages.")),this.props.isInfiniteScrollSupported?[{key:"infinite_default",label:xo("Load more posts using the default theme behavior")},{key:"infinite_button",label:xo("Load more posts in page with a button")},{key:"infinite_scroll",label:xo("Load more posts as the reader scrolls down")}].map((function(t){return s.a.createElement(hl,{key:"".concat(i.module,"_").concat(t.key)},s.a.createElement("input",{type:"radio",name:"infinite_mode",value:t.key,checked:t.key===e.state.infinite_mode,disabled:e.props.isSavingAnyOption([i.module,t.key]),onChange:e.handleInfiniteScrollModeChange(t.key)}),s.a.createElement("span",{className:"jp-form-toggle-explanation"},t.label))})):s.a.createElement("span",null,xo("Theme support required.")+" ",s.a.createElement("a",{onClick:this.trackLearnMoreIS,href:i.learn_more_button+"#theme",title:xo("Learn more about adding support for Infinite Scroll to your theme.")},xo("Learn more")))),r&&s.a.createElement(Su,{hasChild:!0,module:{module:a.module},key:"theme_enhancement_".concat(a.module),support:{text:xo("Enables a lightweight, mobile-friendly theme that will be displayed to visitors on mobile devices."),link:"https://jetpack.com/support/mobile-theme"},className:Zs()("minileven","".concat(c?"active":"inactive"))},s.a.createElement(fl,{className:"jp-form-label-wide"},xo("Mobile Theme")),s.a.createElement(iu,{showDismiss:!1,status:"is-info",className:"jp-form-settings-notice"},xo("{{b}}Note:{{/b}} This feature is being retired and will be removed from Jetpack in March. {{link}}Learn more{{/link}}",{components:{b:s.a.createElement("strong",null),link:s.a.createElement("a",{href:"https://jetpack.com/support/mobile-theme/",target:"_blank",rel:"noopener noreferrer",onClick:this.trackMinilevenLearnMore})},context:"Link leads to a support document."})),s.a.createElement("p",null,xo("Give your site a fast-loading, streamlined look for mobile devices. Visitors will still see your regular theme on other screen sizes.")),s.a.createElement(Kl,{slug:a.module,activated:c,toggling:this.props.isSavingAnyOption(a.module),toggleModule:this.props.toggleModuleNow,disabled:!c},s.a.createElement("span",{className:"jp-form-toggle-explanation"},a.description)),s.a.createElement(dl,null,[{key:"wp_mobile_excerpt",label:xo("Show excerpts instead of full posts on front page and archive pages")},{key:"wp_mobile_featured_images",label:xo("Show featured images")},{key:"wp_mobile_app_promos",label:xo("Show an ad for the WordPress mobile apps in the footer of the mobile theme")}].map((function(t){return s.a.createElement(Hl,{checked:e.state[t.key],disabled:!c||e.props.isSavingAnyOption([a.module,t.key]),onChange:e.handleMinilevenOptionChange(t.key,a.module),key:"".concat(a.module,"_").concat(t.key)},s.a.createElement("span",{className:"jp-form-toggle-explanation"},t.label))})))),n&&s.a.createElement(Su,{module:{module:o.module},support:{text:o.description,link:"https://jetpack.com/support/custom-css/"}},s.a.createElement(Kl,{slug:"custom-css",activated:!!this.props.getOptionValue("custom-css"),toggling:this.props.isSavingAnyOption(["custom-css"]),disabled:this.props.isSavingAnyOption(["custom-css"]),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Enhance CSS customization panel")))))}}]),t}(s.a.Component),Bp=le((function(e){return{module:function(t){return Pa(e,t)},isInfiniteScrollSupported:Pi(e,"infinite-scroll"),isModuleFound:function(t){return ds(e,t)}}}))(Wl(zp)),Vp=n(179),Hp=n.n(Vp),qp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"displayPrompt",(function(){window.prompt(n.props.prompt,n.props.text)})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){var e=this,t=a.a.findDOMNode(this.refs.button);this.clipboard=new Hp.a(t,{text:function(){return e.props.text}}),this.clipboard.on("success",this.props.onCopy),this.clipboard.on("error",this.displayPrompt)}},{key:"componentWillUnmount",value:function(){this.clipboard.destroy(),delete this.clipboard}},{key:"render",value:function(){var e=Zs()("dops-clipboard-button",this.props.className);return s.a.createElement(ec,fc()({ref:"button"},Object(It.omit)(this.props,Object.keys(this.constructor.propTypes)),{className:e}))}}]),t}(s.a.Component);na()(qp,"displayName","ClipboardButton"),na()(qp,"propTypes",{className:u.a.string,text:u.a.string,prompt:u.a.string,onCopy:u.a.func}),na()(qp,"defaultProps",{onCopy:It.noop});n(364);var Kp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{isCopied:!1,disabled:!1}),na()(wo()(n),"showConfirmation",(function(){n.setState({isCopied:!0}),n.confirmationTimeout=setTimeout((function(){n.setState({isCopied:!1})}),4e3)})),n}return ma()(t,e),bo()(t,[{key:"componentWillUnmount",value:function(){clearTimeout(this.confirmationTimeout),delete this.confirmationTimeout}},{key:"render",value:function(){var e=Object(It.omit)(this.props,"className","copied","copy","isError","isValid","prompt","selectOnFocus");return s.a.createElement("span",{className:Zs()("dops-clipboard-button-input",this.props.className)},s.a.createElement(pl,fc()({},e,{type:"text",selectOnFocus:!0,readOnly:!0})),s.a.createElement(qp,{text:this.props.value,onCopy:this.showConfirmation,disabled:this.props.disabled,prompt:this.props.prompt,compact:!0},this.state.isCopied?this.props.copied:this.props.copy))}}]),t}(s.a.Component);na()(Kp,"displayName","ClipboardButtonInput"),na()(Kp,"propTypes",{value:u.a.string,disabled:u.a.bool,className:u.a.string,copied:u.a.string,copy:u.a.string,prompt:u.a.string}),na()(Kp,"defaultProps",{value:""});var Jp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"regeneratePostByEmailAddress",(function(e){uc.tracks.recordJetpackClick("pbe-regenerage-email"),e.preventDefault(),n.props.regeneratePostByEmailAddress()})),na()(wo()(n),"address",(function(){var e=n.props.getOptionValue("post_by_email_address");return!1===e||"1"===e||null===e?"":e})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.isModuleFound("post-by-email"))return null;var e=this.props.getModule("post-by-email"),t=this.props.getOptionValue("post-by-email"),n=this.props.isUnavailableInDevMode("post-by-email")||!this.props.isLinked,r=this.address();return s.a.createElement(wu,fc()({},this.props,{module:"post-by-email",hideButton:!0}),s.a.createElement(Su,{hasChild:!0,disableInDevMode:!0,module:e,support:{text:xo("Allows you to publish new posts by sending an email to a special address."),link:"https://jetpack.com/support/post-by-email/"}},s.a.createElement("p",null,xo("Post by email is a quick way to publish new posts without visiting your site. We’ll generate a unique email address for you to send your content to, which will then appear on your site just like any other post.")),this.props.userCanManageModules?s.a.createElement(Kl,{slug:"post-by-email",compact:!0,disabled:n,activated:t,toggling:this.props.isSavingAnyOption("post-by-email"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},this.props.module("post-by-email").description)):s.a.createElement("span",{className:"jp-form-toggle-explanation"},this.props.module("post-by-email").description),s.a.createElement(dl,null,s.a.createElement(hl,null,s.a.createElement(fl,null,xo("Send your new posts to this email address:")),s.a.createElement(Kp,{value:r,disabled:!t||n,copy:xo("Copy",{context:"verb"}),copied:xo("Copied!"),prompt:xo("Highlight and copy the following text to your clipboard:")})),s.a.createElement(ec,{disabled:!t||n,onClick:this.regeneratePostByEmailAddress},xo(r?"Regenerate address":"Create address")))),!this.props.isUnavailableInDevMode("post-by-email")&&!this.props.isLinked&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:"".concat(this.props.connectUrl,"&from=unlinked-user-pbe")},xo("Create a Jetpack account to use this feature")))}}]),t}(s.a.Component),Wp=le((function(e){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)}}}))(Wl(Jp)),Gp=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("widgets"),t=this.props.isModuleFound("widget-visibility");return e||t?s.a.createElement(wu,fc()({},this.props,{header:xo("Widgets",{context:"Settings header"}),module:"widgets",hideButton:!0}),e&&s.a.createElement(Su,{module:{module:"widgets"},support:{text:this.props.widgetsModule.description,link:"https://jetpack.com/support/extra-sidebar-widgets/"}},s.a.createElement(Kl,{slug:"widgets",activated:this.props.widgetsActive,toggling:this.props.isSavingAnyOption("widgets"),toggleModule:this.props.toggleModuleNow},xo("Make extra widgets available for use on your site including subscription forms and Twitter streams"))),t&&s.a.createElement(Su,{module:{module:"widget-visibility"},support:{text:xo("Widget visibility lets you decide which widgets appear on which pages, so you can finely tailor widget content."),link:"https://jetpack.com/support/widget-visibility/"}},s.a.createElement(Kl,{slug:"widget-visibility",activated:this.props.widgetVisibilityActive,toggling:this.props.isSavingAnyOption("widget-visibility"),toggleModule:this.props.toggleModuleNow},xo("Enable widget visibility controls to display widgets only on particular posts or pages")))):null}}]),t}(o.Component),Yp=Wl(le((function(e,t){return{widgetVisibilityActive:t.getOptionValue("widget-visibility"),widgetsActive:t.getOptionValue("widgets"),widgetsModule:Pa(e,"widgets"),isModuleFound:function(t){return ds(e,t)}}}))(Gp)),$p=Wl(function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.getOptionValue("masterbar"),t=this.props.isUnavailableInDevMode("masterbar"),n=this.props.isLinked;return s.a.createElement(wu,fc()({},this.props,{header:xo("WordPress.com toolbar",{context:"Settings header"}),module:"masterbar",hideButton:!0}),s.a.createElement(Su,{disableInDevMode:!0,module:{module:"masterbar"},support:{text:xo("Adds a toolbar with links to all your sites, notifications, your WordPress.com profile, and the Reader."),link:"https://jetpack.com/support/masterbar/"}},s.a.createElement("p",null,xo("The WordPress.com toolbar replaces the default WordPress admin toolbar. It offers one-click access to notifications, your WordPress.com profile and your other Jetpack and WordPress.com websites. You can also catch up on the sites you follow in the Reader.")),s.a.createElement(Kl,{slug:"masterbar",disabled:t||!n,activated:e,toggling:this.props.isSavingAnyOption("masterbar"),toggleModule:this.props.toggleModuleNow},xo("Enable the WordPress.com toolbar"))),!this.props.isUnavailableInDevMode("masterbar")&&!this.props.isLinked&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:"".concat(this.props.connectUrl,"&from=unlinked-user-masterbar")},xo("Create a Jetpack account to use this feature")))}}]),t}(o.Component)),Xp=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{carousel_display_exif:n.props.getOptionValue("carousel_display_exif","carousel")}),na()(wo()(n),"updateOptions",(function(e){n.setState(na()({},e,!n.state[e]),n.props.updateFormStateModuleOption("carousel",e))})),na()(wo()(n),"handleCarouselDisplayExifChange",(function(){n.updateOptions("carousel_display_exif")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.isModuleFound("carousel");if(!e)return null;var t=this.props.getOptionValue("carousel");return s.a.createElement(wu,fc()({},this.props,{header:xo("Media"),hideButton:!e,saveDisabled:this.props.isSavingAnyOption("carousel_background_color")}),s.a.createElement(Su,{hasChild:!0,module:{module:"carousel"},support:{link:"https://jetpack.com/support/carousel"}},s.a.createElement("p",null,xo("Create full-screen carousel slideshows for the images in your posts and pages. Carousel galleries are mobile-friendly and encourage site visitors to interact with your photos.")),s.a.createElement(Kl,{slug:"carousel",activated:t,toggling:this.props.isSavingAnyOption("carousel"),toggleModule:this.props.toggleModuleNow},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Display images in a full-screen carousel gallery"))),s.a.createElement(dl,null,s.a.createElement(Hl,{checked:this.state.carousel_display_exif,disabled:!t||this.props.isSavingAnyOption(["carousel","carousel_display_exif"]),onChange:this.handleCarouselDisplayExifChange},s.a.createElement("span",{className:"jp-form-toggle-explanation"},xo("Show photo Exif metadata in carousel (when available)"))),s.a.createElement(dl,null,s.a.createElement("p",{className:"jp-form-setting-explanation"},xo("Exif data shows viewers additional technical details of a photo, like its focal length, aperture, and ISO."))),s.a.createElement(hl,null,s.a.createElement(fl,{className:"jp-form-label-wide"},xo("Carousel color scheme")),s.a.createElement(wl,fc()({name:"carousel_background_color",value:this.props.getOptionValue("carousel_background_color"),disabled:!t||this.props.isSavingAnyOption(["carousel","carousel_background_color"])},this.props,{validValues:this.props.validValues("carousel_background_color","carousel")}))))))}}]),t}(o.Component),Qp=le((function(e){return{module:function(t){return Pa(e,t)},isModuleFound:function(t){return ds(e,t)}}}))(Wl(Xp)),Zp=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={settings:this.props.settings,getModule:this.props.module,isDevMode:this.props.isDevMode,isUnavailableInDevMode:this.props.isUnavailableInDevMode,isLinked:this.props.isLinked,getModuleOverride:this.props.getModuleOverride},t=["carousel","copy-post","custom-css","latex","masterbar","markdown","shortcodes","custom-content-types","post-by-email","infinite-scroll","minileven","widgets","widget-visibility"].some(this.props.isModuleFound);if(!this.props.searchTerm&&!this.props.active)return null;if(!t)return null;var n=this.props.userCanManageModules||this.props.userCanEditPosts,r=this.props.userCanManageModules||this.props.userCanEditPosts&&this.props.isModuleActivated("post-by-email");return s.a.createElement("div",null,s.a.createElement(ul,null),s.a.createElement(al,{title:this.props.searchTerm?xo("Writing"):xo("Compose content the way you want to and streamline your publishing experience."),className:"jp-settings-description"}),this.props.isModuleFound("carousel")&&s.a.createElement(Qp,e),n&&s.a.createElement(Up,fc()({},e,{userCanManageModules:this.props.userCanManageModules})),this.props.isModuleFound("custom-content-types")&&s.a.createElement(Lp,e),s.a.createElement(Bp,e),s.a.createElement(Yp,e),this.props.isModuleFound("post-by-email")&&r&&s.a.createElement(Wp,fc()({},e,{connectUrl:this.props.connectUrl,isLinked:this.props.isLinked,userCanManageModules:this.props.userCanManageModules})),this.props.isModuleFound("masterbar")&&!this.props.masterbarIsAlwaysActive&&s.a.createElement($p,fc()({connectUrl:this.props.connectUrl},e)),!n&&!r&&s.a.createElement(al,null,xo("Writing tools available to you will be shown here when an administrator enables them.")))}}]),t}(s.a.Component);na()(Zp,"displayName","WritingSettings");var ed=le((function(e){return{module:function(t){return Pa(e,t)},settings:ms(e),masterbarIsAlwaysActive:Ti(e),isDevMode:Vo(e),isUnavailableInDevMode:function(t){return Jo(e,t)},userCanEditPosts:mi(e),isModuleActivated:function(t){return Ua(e,t)},isLinked:Bo(e),userCanManageModules:hi(e),isModuleFound:function(t){return ds(e,t)},connectUrl:Ro(e),getModuleOverride:function(t){return La(e,t)}}}))(Zp),td=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={route:this.props.route,searchTerm:this.props.searchTerm,rewindStatus:this.props.rewindStatus,userCanManageModules:this.props.userCanManageModules};return s.a.createElement("div",{className:"jp-settings-container"},s.a.createElement("div",{className:"jp-no-results"},e.searchTerm?xo("No search results found for %(term)s",{args:{term:e.searchTerm}}):xo("Enter a search term to find settings or close search.")),s.a.createElement(lp,fc()({siteAdminUrl:this.props.siteAdminUrl,siteRawUrl:this.props.siteRawUrl,active:"/security"===this.props.route.path||"/settings"===this.props.route.path&&e.userCanManageModules},e)),s.a.createElement(ju,fc()({siteRawUrl:this.props.siteRawUrl,active:"/discussion"===this.props.route.path},e)),s.a.createElement(Uu,fc()({active:"/performance"===this.props.route.path},e)),s.a.createElement(Dp,fc()({siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,active:"/traffic"===this.props.route.path},e)),s.a.createElement(ed,fc()({siteAdminUrl:this.props.siteAdminUrl,active:"/writing"===this.props.route.path||"/settings"===this.props.route.path&&!e.userCanManageModules},e)),s.a.createElement(fp,fc()({siteAdminUrl:this.props.siteAdminUrl,active:"/sharing"===this.props.route.path},e)),s.a.createElement(Vu,fc()({active:"/privacy"===this.props.route.path},e)),s.a.createElement(Ku,{searchTerm:this.props.searchTerm}))}}]),t}(s.a.Component);na()(td,"displayName","SearchableSettings");var nd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackCogClick",(function(){uc.tracks.recordJetpackClick({target:"settings-cog",group:"security",page:"aag"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e,t,n=Zs()(this.props.className,"jp-dash-section-header");return this.props.externalLink&&(e=s.a.createElement("a",{className:"jp-dash-section-header__external-link",href:this.props.externalLinkPath,onClick:this.props.externalLinkClick},this.props.externalLink)),this.props.children&&(t=s.a.createElement("div",{className:"jp-dash-section-header__children"},this.props.children)),s.a.createElement("div",{className:n},s.a.createElement("div",{className:"jp-dash-section-header__label"},s.a.createElement("h2",{className:"jp-dash-section-header__name"},this.props.label)),e,t)}}]),t}(s.a.Component);na()(nd,"displayName","DashSectionHeader"),na()(nd,"propTypes",{label:u.a.string.isRequired,settingsPath:u.a.string,externalLinkPath:u.a.string,externalLink:u.a.string,externalLinkClick:u.a.func}),na()(nd,"defaultProps",{label:"",settingsPath:"",externalLinkPath:"",externalLink:""});var rd=nd,id=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"toggleModule",(function(){var e=n.props,t=e.updateOptions,r=e.module,i=e.getOptionValue;t(na()({},r,!i(r)))})),na()(wo()(n),"trackPaidBtnClick",(function(){uc.tracks.recordJetpackClick({target:"paid-button",feature:n.props.module,page:"aag"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e,t,n="",r=Zs()(this.props.className,"jp-dash-item",this.props.disabled?"jp-dash-item__disabled":"");return""!==this.props.module&&(t=Object(It.includes)(["monitor","protect","photon","vaultpress","scan","backups","akismet","search"],this.props.module)&&this.props.isDevMode||"manage"===this.props.module?"":s.a.createElement(Kl,{slug:this.props.module,activated:this.props.getOptionValue(this.props.module),toggling:this.props.isUpdating(this.props.module),toggleModule:this.toggleModule,compact:!0}),"manage"===this.props.module&&("is-warning"===this.props.status&&(t=s.a.createElement("a",{href:this.props.isDevMode?this.props.siteAdminUrl+"update-core.php":"https://wordpress.com/plugins/manage/"+this.props.siteRawUrl},s.a.createElement(iu,{showDismiss:!1,status:this.props.status,isCompact:!0},xo("Updates needed",{context:"Short warning message"})))),"is-working"===this.props.status&&(t=s.a.createElement("span",{className:"jp-dash-item__active-label"},xo("Active")))),"rewind"===this.props.module&&(t=null)),this.props.pro&&!this.props.isDevMode&&(n=s.a.createElement(ec,{onClick:this.trackPaidBtnClick,compact:!0,href:"#/plans"},xo("Paid",{context:"Short label appearing near a paid feature configuration block."})),this.props.isModule&&(t=s.a.createElement(pu,{proFeature:this.props.module,siteAdminUrl:this.props.siteAdminUrl}))),this.props.module&&this.props.getModule&&(e=this.props.getModule(this.props.module)),s.a.createElement("div",{className:r},s.a.createElement(nu,{label:this.props.label,cardBadge:n},this.props.userCanToggle?t:""),this.props.overrideContent?this.props.overrideContent:s.a.createElement(al,{className:"jp-dash-item__card",href:this.props.href},s.a.createElement("div",{className:"jp-dash-item__content"},this.props.support.link&&s.a.createElement(Eu,fc()({module:e},this.props.support)),this.props.children)))}}]),t}(o.Component);na()(id,"propTypes",{label:u.a.string,status:u.a.string,statusText:u.a.string,disabled:u.a.bool,module:u.a.string,pro:u.a.bool,isModule:u.a.bool,support:u.a.object,overrideContent:u.a.element}),na()(id,"defaultProps",{label:"",module:"",pro:!1,isModule:!0,support:{text:"",link:""}});var ad=le((function(e){return{getModule:function(t){return Pa(e,t)},isDevMode:Vo(e),userCanToggle:hi(e),siteRawUrl:si(e),siteAdminUrl:ci(e)}}))(Wl(id)),od=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.inDevMode,t=xo("Jetpack keeps a complete record of everything that happens on your site, taking the guesswork out of site management, debugging, and repair.");return s.a.createElement("div",{className:"jp-dash-item__interior"},s.a.createElement(ad,{label:xo("Activity"),isModule:!1,className:Zs()({"jp-dash-item__is-inactive":e}),pro:!1},s.a.createElement("p",{className:"jp-dash-item__description"},e?xo("Unavailable in Dev Mode."):t)),s.a.createElement(al,{key:"view-activity",className:"jp-dash-item__manage-in-wpcom",compact:!0,href:"https://wordpress.com/activity-log/".concat(this.props.siteRawUrl)},xo("View site activity")))}}]),t}(o.Component);na()(od,"propTypes",{inDevMode:u.a.bool.isRequired,siteRawUrl:u.a.string.isRequired,sitePlan:u.a.object.isRequired}),na()(od,"defaultProps",{inDevMode:!1,siteRawUrl:"",sitePlan:""});var sd=le((function(e){return{sitePlan:Ss(e),inDevMode:Vo(e)}}))(od),cd=(n(365),function(){}),ld=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.showOnMobile&&Tc())return null;var e=Zs()("dops-popover","dops-tooltip","is-".concat(this.props.position),this.props.className);return s.a.createElement(Bl,{autoPosition:this.props.autoPosition,className:e,rootClassName:this.props.rootClassName,context:this.props.context,id:this.props.id,isVisible:this.props.isVisible,onClose:cd,position:this.props.position,showDelay:this.props.showDelay},this.props.children)}}]),t}(o.Component);na()(ld,"propTypes",{autoPosition:u.a.bool,className:u.a.string,id:u.a.string,isVisible:u.a.bool,position:u.a.string,rootClassName:u.a.string,status:u.a.string,showDelay:u.a.number,showOnMobile:u.a.bool}),na()(ld,"defaultProps",{showDelay:100,position:"top",showOnMobile:!1});var ud=ld,pd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{showPopover:!1}),na()(wo()(n),"buildSections",(function(){var e,t,r=n.props.data.value,i=n.props.max,a=100-(i?Math.ceil(r/i*1e4)/100:0),o=Math.max(1,Math.floor(a)),c=[],l=n.props.data.nestedValue,u={"dops-chart__bar-section":!0,"is-spacer":!0,"is-ghost":100===a&&!n.props.active},p={height:o+"%"};c.push(s.a.createElement("div",{key:"spacer",className:Zs()(u),style:p}));var d={top:o+"%"};return l&&(t={height:(r?Math.ceil(l/r*1e4)/100:0)+"%"},e=s.a.createElement("div",{key:"nestedValue",className:"dops-chart__bar-section-inner",style:t})),c.push(s.a.createElement("div",{ref:"valueBar",key:"value",className:"dops-chart__bar-section is-bar",style:d},e)),c.push(s.a.createElement("div",{key:"label",className:"dops-chart__bar-label"},n.props.label)),c})),na()(wo()(n),"clickHandler",(function(){"function"==typeof n.props.clickHandler&&n.props.clickHandler(n.props.data)})),na()(wo()(n),"mouseEnter",(function(){n.setState({showPopover:!0})})),na()(wo()(n),"mouseLeave",(function(){n.setState({showPopover:!1})})),na()(wo()(n),"renderTooltip",(function(){if(!n.props.data.tooltipData||!n.props.data.tooltipData.length||n.props.isTouch)return null;var e=n.props.data.tooltipData.map((function(e,t){var n,r=["module-content-list-item"];return e.icon&&(n=s.a.createElement(Lc,{icon:e.icon,size:18})),r.push(e.className),s.a.createElement("li",{key:t,className:r.join(" ")},s.a.createElement("span",{className:"dops-wrapper"},s.a.createElement("span",{className:"value"},e.value),s.a.createElement("span",{className:"label"},n,e.label)))}));return s.a.createElement(ud,{className:"dops-chart__tooltip",id:"popover__chart-bar",showDelay:200,context:n.refs&&n.refs.valueBar,isVisible:n.state.showPopover,position:n.props.tooltipPosition},s.a.createElement("ul",null,e))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props.count||1,t={"dops-chart__bar":!0};this.props.className&&(t[this.props.className]=!0);var n={width:1/e*100+"%"};return s.a.createElement("div",{role:"button",tabIndex:0,onClick:this.clickHandler,onMouseEnter:this.mouseEnter,onMouseLeave:this.mouseLeave,className:Zs()(t),style:n},this.buildSections(),s.a.createElement("div",{className:"dops-chart__bar-marker is-hundred"}),s.a.createElement("div",{className:"dops-chart__bar-marker is-fifty"}),s.a.createElement("div",{className:"dops-chart__bar-marker is-zero"}),this.renderTooltip())}}]),t}(s.a.Component);na()(pd,"displayName","ModuleChartBar"),na()(pd,"propTypes",{isTouch:u.a.bool,tooltipPosition:u.a.string,className:u.a.string,clickHandler:u.a.func,data:u.a.object.isRequired,max:u.a.number,count:u.a.number});var dd=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={width:this.props.width+"px"};return e.left=this.props.x+"px",s.a.createElement("div",{className:"dops-chart__x-axis-label",style:e},this.props.label)}}]),t}(s.a.Component);na()(dd,"displayName","ModuleChartLabel"),na()(dd,"propTypes",{width:u.a.number.isRequired,x:u.a.number.isRequired,label:u.a.string.isRequired});var hd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{divisor:1,spacing:n.props.labelWidth}),na()(wo()(n),"resize",(function(e){var t=n.props,r=n.refs.axis;!e||e instanceof Event||(t=e),r.style.overflow="hidden";var i=r.clientWidth;r.style.overflow="visible";var a=i/(t.data.length||1),o=t.labelWidth,s=Math.ceil(o/a);n.setState({divisor:s,spacing:a})})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.resizeThrottled=Object(It.throttle)(this.resize,400),window.addEventListener("resize",this.resizeThrottled),this.resize()}},{key:"componentWillUnmount",value:function(){this.resizeThrottled.cancel&&this.resizeThrottled.cancel(),window.removeEventListener("resize",this.resizeThrottled)}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.resize(e)}},{key:"render",value:function(){var e=this.props.data,t=e.map((function(t,n){var r,i=n*this.state.spacing+(this.state.spacing-this.props.labelWidth)/2;return(e.length-n-1)%this.state.divisor==0&&(r=s.a.createElement(dd,{key:n,label:t.label,width:this.props.labelWidth,x:i})),r}),this);return s.a.createElement("div",{ref:"axis",className:"dops-chart__x-axis"},t)}}]),t}(s.a.Component);na()(hd,"displayName","ModuleChartXAxis"),na()(hd,"propTypes",{labelWidth:u.a.number.isRequired,data:u.a.array.isRequired});var fd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"buildBars",(function(e){var t=n.props.data.length,r=n.props.chartWidth,i=r/t,a="bottom right";return n.props.data.map((function(n,o){var c=i*(o+1);return c+230>r&&c+i-230>0&&(a="bottom left"),s.a.createElement(pd,{index:o,key:o,isTouch:this.props.isTouch,tooltipPosition:a,className:n.className,clickHandler:this.props.barClick,data:n,max:e,count:t})}),wo()(n))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",null,s.a.createElement("div",{className:"dops-chart__bars"},this.buildBars(this.props.yAxisMax)),s.a.createElement(hd,{data:this.props.data,labelWidth:42}))}}]),t}(s.a.Component);function md(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch}na()(fd,"displayName","ModuleChartBarContainer"),na()(fd,"propTypes",{isTouch:u.a.bool,data:u.a.array,yAxisMax:u.a.number,width:u.a.number,barClick:u.a.func});n(366);var gd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{maxBars:100,width:650}),na()(wo()(n),"resize",(function(){var e,t=n.refs.chart.clientWidth-82;md()?(t=t<=0?350:t,e=Math.floor(t/n.props.minTouchBarWidth)):e=Math.floor(t/n.props.minBarWidth),n.setState({maxBars:e,width:t})})),na()(wo()(n),"getYAxisMax",(function(e){var t=Math.max.apply(null,e),n=Math.pow(10,t.toString().length-1),r=Math.ceil((t+1)/n)*n;return r<10&&(r=10),r})),na()(wo()(n),"getData",(function(){var e=n.props.data;return e=e.slice(0-n.state.maxBars)})),na()(wo()(n),"getValues",(function(){var e=n.getData();return e=e.map((function(e){return e.value}),wo()(n))})),na()(wo()(n),"isEmptyChart",(function(e){return 0===(e=e.filter((function(e){return e>0}),wo()(n))).length})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.resize=Object(It.throttle)(this.resize,400),window.addEventListener("resize",this.resize),this.resize()}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.resize)}},{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.props.loading&&!e.loading&&this.resize()}},{key:"render",value:function(){var e,t=this.getValues(),n=this.getYAxisMax(t),r=this.getData();return t.length&&this.isEmptyChart(t)&&(e=s.a.createElement("div",{className:"dops-chart__empty"},s.a.createElement("span",{className:"dops-chart__empty_notice"},xo("No activity this period",{context:"Notice in the empty statistics chart"})))),s.a.createElement("div",{ref:"chart",className:"dops-chart"},s.a.createElement("div",{className:"dops-chart__y-axis-markers"},s.a.createElement("div",{className:"dops-chart__y-axis-marker is-hundred"}),s.a.createElement("div",{className:"dops-chart__y-axis-marker is-fifty"}),s.a.createElement("div",{className:"dops-chart__y-axis-marker is-zero"})),s.a.createElement("div",{className:"dops-chart__y-axis"},s.a.createElement("div",{className:"dops-chart__y-axis-width-fix"},new Number(1e5).toLocaleString()),s.a.createElement("div",{className:"dops-chart__y-axis-label is-hundred"},n.toLocaleString()),s.a.createElement("div",{className:"dops-chart__y-axis-label is-fifty"},(n/2).toLocaleString()),s.a.createElement("div",{className:"dops-chart__y-axis-label is-zero"},0)),s.a.createElement(fd,{barClick:this.props.barClick,data:r,yAxisMax:n,chartWidth:this.state.width,isTouch:md()}),e)}}]),t}(s.a.Component);na()(gd,"displayName","ModuleChart"),na()(gd,"propTypes",{loading:u.a.bool,data:u.a.array,minTouchBarWidth:u.a.number,minBarWidth:u.a.number,barClick:u.a.func}),na()(gd,"defaultProps",{minTouchBarWidth:42,minBarWidth:15,barClick:It.noop});var vd=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.fetchingStatsData||this.props.fetchStatsData(this.props.range)}},{key:"render",value:function(){return null}}]),t}(o.Component);vd.defaultProps={fetchStatsData:function(){}};var bd=le((function(e){return{fetchStatsData:function(t){return $l(e)},fetchingStatsData:Bi(e)}}),(function(e){return{fetchStatsData:function(t){return e($l(t))}}}))(vd),yd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackViewDetailedStats",(function(){return uc.tracks.recordJetpackClick("view_detailed_stats")})),na()(wo()(n),"trackViewWpcomStats",(function(){return uc.tracks.recordJetpackClick("view_wpcom_stats")})),n}return ma()(t,e),bo()(t,[{key:"statsBottom",value:function(){var e;return[{viewsToday:(e="object"==typeof this.props.statsData.general?this.props.statsData.general.stats:{views:"-",comments:"-",views_today:"-",views_best_day:"-",views_best_day_total:"-"}).views_today,bestDay:{day:e.views_best_day,count:e.views_best_day_total},allTime:{views:e.views,comments:e.comments}}]}},{key:"render",value:function(){var e=this.statsBottom()[0];return s.a.createElement("div",null,s.a.createElement("div",{className:"jp-at-a-glance__stats-summary"},s.a.createElement("div",{className:"jp-at-a-glance__stats-summary-today"},s.a.createElement("p",{className:"jp-at-a-glance__stat-details"},xo("Views today",{comment:"Referring to a number of page views"})),s.a.createElement("h3",{className:"jp-at-a-glance__stat-number"},e.viewsToday)),s.a.createElement("div",{className:"jp-at-a-glance__stats-summary-bestday"},s.a.createElement("p",{className:"jp-at-a-glance__stat-details"},xo("Best overall day",{comment:"Referring to a number of page views"})),s.a.createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.bestDay.count?"-":xo("%(number)s View","%(number)s Views",{count:e.bestDay.count,args:{number:Mo(e.bestDay.count)}})),s.a.createElement("p",{className:"jp-at-a-glance__stat-details"},"-"===e.bestDay.day?"-":So(e.bestDay.day).format("MMMM Do, YYYY"))),s.a.createElement("div",{className:"jp-at-a-glance__stats-summary-alltime"},s.a.createElement("div",{className:"jp-at-a-glance__stats-alltime-views"},s.a.createElement("p",{className:"jp-at-a-glance__stat-details"},xo("All-time views",{comment:"Referring to a number of page views"})),s.a.createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.allTime.views?"-":Mo(e.allTime.views))),s.a.createElement("div",{className:"jp-at-a-glance__stats-alltime-comments"},s.a.createElement("p",{className:"jp-at-a-glance__stat-details"},xo("All-time comments",{comment:"Referring to a number of comments"})),s.a.createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.allTime.comments?"-":Mo(e.allTime.comments))))),s.a.createElement("div",{className:"jp-at-a-glance__stats-cta"},s.a.createElement("div",{className:"jp-at-a-glance__stats-cta-description"}),s.a.createElement("div",{className:"jp-at-a-glance__stats-cta-buttons"},xo("{{button}}View detailed stats{{/button}}",{components:{button:s.a.createElement(ec,{onClick:this.trackViewDetailedStats,href:this.props.siteAdminUrl+"admin.php?page=stats"})}}),this.props.isLinked&&xo("{{button}}View more stats on WordPress.com {{/button}}",{components:{button:s.a.createElement(ec,{onClick:this.trackViewWpcomStats,className:"is-primary",href:"https://wordpress.com/stats/insights/"+this.props.siteRawUrl})}}))),!this.props.isLinked&&s.a.createElement(al,{compact:!0,className:"jp-settings-card__configure-link",href:"".concat(this.props.connectUrl,"&from=unlinked-user-connect")},xo("Connect your account to WordPress.com to view more stats")))}}]),t}(o.Component);yd.propTypes={siteRawUrl:u.a.string.isRequired,siteAdminUrl:u.a.string.isRequired,statsData:u.a.object.isRequired,isLinked:u.a.bool.isRequired},yd.defaultProps={siteRawUrl:"",siteAdminUrl:"",statsData:{},isLinked:!1};var wd=yd,_d=function(e){function t(e){var n;return la()(this,t),n=pa()(this,ha()(t).call(this,e)),na()(wo()(n),"dismissCard",(function(){n.setState({emptyStatsDismissed:!0}),n.props.updateOptions({dismiss_empty_stats_card:!0})})),na()(wo()(n),"activateStats",(function(){return n.props.updateOptions({stats:!0})})),na()(wo()(n),"switchToDay",(function(){return n.switchTo("day")})),na()(wo()(n),"switchToWeek",(function(){return n.switchTo("week")})),na()(wo()(n),"switchToMonth",(function(){return n.switchTo("month")})),n.state={emptyStatsDismissed:e.isEmptyStatsCardDismissed},n}return ma()(t,e),bo()(t,[{key:"barClick",value:function(e){e.data.link&&(uc.tracks.recordJetpackClick("stats_bar"),window.open(e.data.link,"_blank"))}},{key:"statsChart",value:function(e){var t=this.props,n=[],r=0;return"object"!=typeof t.statsData[e]?{chartData:n,totalViews:!1}:(Object(It.forEach)(t.statsData[e].data,(function(i){var a=i[1],o=i[0],s="",c="";r+=a,"day"===e?(s=So(o).format("MMM D"),c=So(o).format("MMMM Do")):"week"===e?(o=o.replace(/W/g,"-"),s=So(o).format("MMM D"),c=xo("Week of %(date)s",{args:{date:So(o).format("MMMM Do")}})):(s=So(o).format("MMM"),c=So(o).format("MMMM, YYYY")),n.push({label:s,value:a,nestedValue:null,className:"statsChartbar",data:{link:"https://wordpress.com/stats/".concat(e,"/").concat(t.siteRawUrl,"?startDate=").concat(o)},tooltipData:[{label:c,value:xo("Views: %(numberOfViews)s",{args:{numberOfViews:Mo(a)}}),className:"tooltip class"},{label:xo("Click to view detailed stats.")}]})})),{chartData:n,totalViews:r})}},{key:"statsErrors",value:function(){return Object(It.get)(this.props.statsData,["general","errors"],!1)}},{key:"renderStatsChart",value:function(e){return s.a.createElement("div",null,s.a.createElement("div",{className:"jp-at-a-glance__stats-chart"},s.a.createElement(gd,{data:e,barClick:this.barClick}),0===e.length&&s.a.createElement(Fc,null)),s.a.createElement("div",{id:"stats-bottom",className:"jp-at-a-glance__stats-bottom"},s.a.createElement(wd,{statsData:this.props.statsData,siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,isLinked:this.props.isLinked,connectUrl:this.props.connectUrl})))}},{key:"renderEmptyStatsCard",value:function(){return s.a.createElement(al,{className:"jp-at-a-glance__stats-empty"},s.a.createElement("img",{src:yp+"stats-people.svg",width:"272",height:"144",alt:xo("Jetpack Stats People"),className:"jp-at-a-glance__stats-icon"}),s.a.createElement("p",null,xo("Hello there! Your stats have been activated."),s.a.createElement("br",null),xo("Just give us a little time to collect data so we can display it for you here.")),s.a.createElement(ec,{onClick:this.dismissCard,primary:!0},xo("Okay, got it!")))}},{key:"renderStatsArea",value:function(){if(this.props.getOptionValue("stats")){if(this.statsErrors())return s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive"},s.a.createElement("span",null,xo("Something happened while loading stats. Please try again later or {{a}}view your stats now on WordPress.com{{/a}}",{components:{a:s.a.createElement("a",{href:"https://wordpress.com/stats/insights/"+this.props.siteRawUrl})}})));var e=this.statsChart(this.props.activeTab),t=e.chartData,n=e.totalViews,r=t.length&&n<=0&&!this.props.isEmptyStatsCardDismissed&&!this.state.emptyStatsDismissed;return s.a.createElement("div",{className:"jp-at-a-glance__stats-container"},r?this.renderEmptyStatsCard():this.renderStatsChart(t))}return s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive"},s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-icon"},s.a.createElement("img",{src:yp+"stats.svg",width:"60",height:"60",alt:xo("Jetpack Stats Icon"),className:"jp-at-a-glance__stats-icon"})),s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-text"},this.props.isDevMode?xo("Unavailable in Dev Mode"):xo("{{a}}Activate Site Stats{{/a}} to see detailed stats, likes, followers, subscribers, and more! {{a1}}Learn More{{/a1}}",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activateStats}),a1:s.a.createElement("a",{href:"https://jetpack.com/support/wordpress-com-stats/",target:"_blank",rel:"noopener noreferrer"})}})),!this.props.isDevMode&&s.a.createElement("div",{className:"jp-at-a-glance__stats-inactive-button"},s.a.createElement(ec,{onClick:this.activateStats,primary:!0},xo("Activate Site Stats"))))}},{key:"switchTo",value:function(e){uc.tracks.recordJetpackClick({target:"stats_switch_view",view:e}),this.props.switchView(e),this.props.fetchStatsData(e)}},{key:"maybeShowStatsTabs",value:function(){return!(!1===this.statsChart(this.props.activeTab).totalViews&&!this.props.isEmptyStatsCardDismissed&&!this.state.emptyStatsDismissed)&&(this.props.getOptionValue("stats")&&!this.statsErrors()?s.a.createElement("ul",{className:"jp-at-a-glance__stats-views"},s.a.createElement("li",{className:"jp-at-a-glance__stats-view"},s.a.createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToDay,className:this.getClass("day")},xo("Days"))),s.a.createElement("li",{className:"jp-at-a-glance__stats-view"},s.a.createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToWeek,className:this.getClass("week")},xo("Weeks"))),s.a.createElement("li",{className:"jp-at-a-glance__stats-view"},s.a.createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToMonth,className:this.getClass("month")},xo("Months")))):void 0)}},{key:"getClass",value:function(e){return this.props.activeTab===e?"jp-at-a-glance__stats-view-link is-current":"jp-at-a-glance__stats-view-link"}},{key:"render",value:function(){return"inactive"===this.props.getModuleOverride("stats")?s.a.createElement("div",null,s.a.createElement(bu,{moduleName:xo("Site Stats")})):this.props.isModuleAvailable&&s.a.createElement("div",null,s.a.createElement(bd,{range:this.props.activeTab}),s.a.createElement(rd,{label:xo("Site Stats")},this.maybeShowStatsTabs()),s.a.createElement(al,{className:"jp-at-a-glance__stats-card "+(this.props.isDevMode?"is-inactive":"")},this.renderStatsArea()))}}]),t}(o.Component);na()(_d,"propTypes",{isDevMode:u.a.bool.isRequired,siteRawUrl:u.a.string.isRequired,siteAdminUrl:u.a.string.isRequired,statsData:u.a.any.isRequired,isModuleAvailable:u.a.bool.isRequired});var kd=le((function(e){return{isModuleAvailable:Fa(e,"stats"),activeTab:zi(e),isDevMode:Vo(e),isLinked:Bo(e),connectUrl:Ro(e),statsData:Object(It.isEmpty)(Vi(e))?ai(e):Vi(e),isEmptyStatsCardDismissed:ws(e),getModuleOverride:function(t){return La(e,t)}}}),(function(e){return{switchView:function(t){return e(function(e){return function(t){t({type:Kn,activeStatsTab:e})}}(t))},fetchStatsData:function(t){return e($l(t))}}}))(_d),Ed=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){!this.props.fetchingProtectData&&this.props.isModuleActivated("protect")&&this.props.fetchProtectCount()}},{key:"render",value:function(){return null}}]),t}(o.Component);Ed.defaultProps={fetchProtectCount:function(){}};var Cd=le((function(e){return{fetchProtectCount:Xl(),fetchingProtectData:Wi(e),isModuleActivated:function(t){return Ua(e,t)}}}),(function(e){return P({fetchProtectCount:Xl},e)}))(Ed),Sd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"activateProtect",(function(){return n.props.updateOptions({protect:!0})})),n}return ma()(t,e),bo()(t,[{key:"getContent",value:function(){var e=xo("Protect"),t={text:xo("Protects your site from traditional and distributed brute force login attacks."),link:"https://jetpack.com/support/protect/"};if(this.props.getOptionValue("protect")){var n=this.props.protectCount;return!1===n||"0"===n||"N/A"===n?s.a.createElement(ad,{label:e,module:"protect",support:t,status:"is-working",className:"jp-dash-item__recently-activated"},s.a.createElement("div",{className:"jp-dash-item__recently-activated-lower"},s.a.createElement(Cd,null),s.a.createElement("p",{className:"jp-dash-item__description"},xo("Jetpack is actively blocking malicious login attempts. Data will display here soon!")))):s.a.createElement(ad,{label:e,module:"protect",support:t,status:"is-working"},s.a.createElement("h2",{className:"jp-dash-item__count"},Mo(n)),s.a.createElement("p",{className:"jp-dash-item__description"},xo("Total malicious attacks blocked on your site.")))}return s.a.createElement(ad,{label:e,module:"protect",support:t,className:"jp-dash-item__is-inactive"},s.a.createElement("p",{className:"jp-dash-item__description"},this.props.isDevMode?xo("Unavailable in Dev Mode"):xo("{{a}}Activate Protect{{/a}} to keep your site protected from malicious sign in attempts.",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activateProtect})}})))}},{key:"render",value:function(){return this.props.isModuleAvailable&&s.a.createElement("div",{className:"jp-dash-item__interior"},s.a.createElement(Cd,null),this.getContent())}}]),t}(o.Component);na()(Sd,"propTypes",{isDevMode:u.a.bool.isRequired,protectCount:u.a.any.isRequired,isModuleAvailable:u.a.bool.isRequired});var Md=le((function(e){return{protectCount:Gi(e),isDevMode:Vo(e),isModuleAvailable:Fa(e,"protect")}}))(Sd),xd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"activateAndTrack",(function(){uc.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"monitor",toggled:"on"}),n.props.updateOptions({monitor:!0})})),n}return ma()(t,e),bo()(t,[{key:"getContent",value:function(){var e=xo("Downtime monitor"),t={text:xo("Jetpack’s downtime monitor will continuously monitor your site, and alert you the moment that downtime is detected."),link:"https://jetpack.com/support/monitor/"};return this.props.getOptionValue("monitor")?s.a.createElement(ad,{label:e,module:"monitor",support:t,status:"is-working"},s.a.createElement("p",{className:"jp-dash-item__description"},xo("Jetpack is monitoring your site. If we think your site is down, you will receive an email."))):s.a.createElement(ad,{label:e,module:"monitor",support:t,className:"jp-dash-item__is-inactive"},s.a.createElement("p",{className:"jp-dash-item__description"},this.props.isDevMode?xo("Unavailable in Dev Mode."):xo("{{a}}Activate Monitor{{/a}} to receive email notifications if your site goes down.",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activateAndTrack})}})))}},{key:"render",value:function(){return this.props.isModuleAvailable&&this.getContent()}}]),t}(o.Component);na()(xd,"propTypes",{isDevMode:u.a.bool.isRequired,isModuleAvailable:u.a.bool.isRequired});var Ad=le((function(e){return{isDevMode:Vo(e),isModuleAvailable:Fa(e,"monitor")}}))(xd),jd=function(e){return s.a.createElement(ad,{label:xo("Scan"),module:e.feature||"scan",support:{text:xo("Your site’s files are regularly scanned for unauthorized or suspicious modifications that could compromise your security and data."),link:"https://jetpack.com/support/security/"},className:e.className||"",status:e.status||"",pro:!0,overrideContent:e.overrideContent},Object(It.isArray)(e.content)?e.content:s.a.createElement("p",{className:"jp-dash-item__description"},e.content))},Od=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getVPContent",value:function(){var e=this.props,t=e.sitePlan,n=e.planClass,r=e.fetchingSiteData,i=!1!==t,a=this.props.vaultPressData,o=Object(It.get)(a,["data","features","security"],!1);if(this.props.getOptionValue("vaultpress")){if("N/A"===a)return jd({status:"",content:xo("Loading…")});if(o){var c=this.props.scanThreats;if(0!==c)return jd({content:[s.a.createElement("h3",null,xo("Uh oh, %(number)s threat found.","Uh oh, %(number)s threats found.",{count:c,args:{number:Mo(c)}})),s.a.createElement("p",{className:"jp-dash-item__description"},xo("{{a}}View details at VaultPress.com{{/a}}",{components:{a:s.a.createElement("a",{href:"https://dashboard.vaultpress.com/"})}}),s.a.createElement("br",null),xo("{{a}}Contact Support{{/a}}",{components:{a:s.a.createElement("a",{href:"https://jetpack.com/support"})}}))]});if("success"===a.code)return jd({status:"is-working",content:xo("No threats found, you're good to go!")})}}if(r)return jd({status:"",content:xo("Loading…")});var l=this.props.isVaultPressInstalled?"pro-inactive":"pro-uninstalled",u="is-premium-plan"===n||"is-business-plan"===n||o?s.a.createElement("p",{className:"jp-dash-item__description",key:"inactive-scanning"},xo("For automated, comprehensive scanning of security threats, please {{a}}install and activate{{/a}} VaultPress.",{components:{a:s.a.createElement("a",{href:"https://wordpress.com/plugins/vaultpress",target:"_blank",rel:"noopener noreferrer"})}})):null,p=null===u?this.getUpgradeBanner():null;return jd({className:"jp-dash-item__is-inactive",status:i?l:"no-pro-uninstalled-or-inactive",content:[u],overrideContent:p})}},{key:"getUpgradeBanner",value:function(){return s.a.createElement(gu,{callToAction:xo("Upgrade"),title:xo("Find threats early so we can help fix them fast."),disableHref:"false",href:this.props.upgradeUrl,eventFeature:"scan",path:"dashboard",plan:"jetpack_premium",icon:"lock"})}},{key:"getRewindContent",value:function(){var e=this.props,t=e.rewindStatus,n=e.siteRawUrl,r=function(e,t){return s.a.createElement(al,{compact:!0,key:"manage-backups",className:"jp-dash-item__manage-in-wpcom",href:e},t)},i=function(e){return jd({className:"jp-dash-item__is-active",status:"is-working",feature:"rewind",content:e})};switch(t){case"provisioning":return s.a.createElement(s.a.Fragment,null,i(xo("We are configuring your site protection.")));case"awaiting_credentials":return s.a.createElement(s.a.Fragment,null,i(xo("You need to enter your server's credentials to finish the setup.")),r("https://wordpress.com/settings/security/".concat(n),xo("Enter credentials")));case"active":return s.a.createElement(s.a.Fragment,null,i(xo("We are making sure your site stays free of security threats. You will be notified if we find one.")),r("https://wordpress.com/activity-log/".concat(n),xo("View security scan details")))}return!1}},{key:"getUpgradeContent",value:function(){return jd({className:"jp-dash-item__is-inactive",overrideContent:this.getUpgradeBanner()})}},{key:"render",value:function(){return this.props.showBackups?this.props.isDevMode?jd({className:"jp-dash-item__is-inactive",content:xo("Unavailable in Dev Mode.")}):(e=["is-free-plan","is-personal-plan","is-daily-backup-plan","is-realtime-backup-plan"].includes(this.props.planClass)?this.getUpgradeContent():"unavailable"===this.props.rewindStatus?this.getVPContent(this.props.planClass):s.a.createElement("div",{className:"jp-dash-item"},this.getRewindContent()),s.a.createElement("div",null,s.a.createElement(ou,null),e)):null;var e}}]),t}(o.Component);na()(Od,"propTypes",{siteRawUrl:u.a.string.isRequired,rewindStatus:u.a.string.isRequired,vaultPressData:u.a.any.isRequired,scanThreats:u.a.any.isRequired,sitePlan:u.a.object.isRequired,isDevMode:u.a.bool.isRequired,isPluginInstalled:u.a.bool.isRequired,fetchingSiteData:u.a.bool.isRequired,upgradeUrl:u.a.string.isRequired}),na()(Od,"defaultProps",{siteRawUrl:"",vaultPressData:"",scanThreats:0,sitePlan:"",isDevMode:!1,isPluginInstalled:!1,fetchingSiteData:!1,rewindStatus:""});var Nd=le((function(e){var t=Ss(e);return{vaultPressData:$i(e),scanThreats:Xi(e),sitePlan:t,planClass:Yl(Object(It.get)(t,"product_slug","")),isDevMode:Vo(e),isVaultPressInstalled:sa(e,"vaultpress/vaultpress.php"),fetchingSiteData:Es(e),showBackups:Ii(e),upgradeUrl:Fi(e,"aag-scan")}}))(Od),Td=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.fetchingAkismetData||this.props.fetchAkismetData()}},{key:"render",value:function(){return null}}]),t}(o.Component);Td.defaultProps={fetchAkismetData:function(){}};var Pd=le((function(e){return{fetchAkismetData:Zl(),fetchingAkismetData:Hi(e)}}),(function(e){return P({fetchAkismetData:Zl},e)}))(Td),Id=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"onActivateClick",(function(){return n.trackActivateClick(),Ca.activateAkismet().then((function(){window.location.href=n.props.siteAdminUrl+"admin.php?page=akismet-key-config"})),!1})),n}return ma()(t,e),bo()(t,[{key:"trackActivateClick",value:function(){uc.tracks.recordJetpackClick({type:"activate-link",target:"at-a-glance",feature:"anti-spam"})}},{key:"getContent",value:function(){var e=this,t=this.props.akismetData,n=xo("Anti-spam"),r="jetpack_free"===Object(It.get)(this.props.sitePlan,"product_slug","jetpack_free"),i={text:xo("Jetpack Anti-spam powered by Akismet. Comments and contact form submissions are checked against our global database of spam."),link:"https://akismet.com/",privacyLink:"https://automattic.com/privacy/"},a=function(){var t=xo("Already have a key? {{a}}Activate Akismet{{/a}}",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:e.onActivateClick})}});return s.a.createElement(gu,{callToAction:xo("Upgrade"),title:xo("Automatically clear spam from your comments and forms so you can get back to your business."),description:t,disableHref:"false",href:e.props.upgradeUrl,eventFeature:"akismet",path:"dashboard",plan:"jetpack_premium",icon:"flag"})};if("N/A"===t)return s.a.createElement(ad,{label:n,module:"akismet",support:i,pro:!0},s.a.createElement("p",{className:"jp-dash-item__description"},xo("Loading…")));var o=!1!==this.props.sitePlan;if(r){if("not_installed"===t)return s.a.createElement(ad,{label:n,module:"akismet",support:i,className:"jp-dash-item__is-inactive",status:o?"pro-uninstalled":"no-pro-uninstalled-or-inactive",pro:!0,overrideContent:a()});if("not_active"===t)return s.a.createElement(ad,{label:n,module:"akismet",support:i,status:o?"pro-inactive":"no-pro-uninstalled-or-inactive",className:"jp-dash-item__is-inactive",pro:!0,overrideContent:a()});if("invalid_key"===t)return s.a.createElement(ad,{label:n,module:"akismet",support:i,className:"jp-dash-item__is-inactive",pro:!0,overrideContent:a()})}return["not_installed","not_active","invalid_key"].includes(t)?s.a.createElement(ad,{label:n,module:"akismet",support:i,className:"jp-dash-item__is-inactive",pro:!0},xo("Your Jetpack plan provides anti-spam protection through Akismet. Click 'set up' to enable it on your site.")):[s.a.createElement(ad,{key:"comment-moderation",label:n,module:"akismet",support:i,status:"is-working",pro:!0},s.a.createElement("h2",{className:"jp-dash-item__count"},Mo(t.all.spam)),s.a.createElement("p",{className:"jp-dash-item__description"},xo("Spam comments blocked.",{context:'Example: "412 Spam comments blocked"'}))),!this.props.isDevMode&&s.a.createElement(al,{key:"moderate-comments",className:"jp-dash-item__manage-in-wpcom",compact:!0,href:"https://wordpress.com/comments/all/".concat(this.props.siteRawUrl)},xo("Moderate comments"))]}},{key:"render",value:function(){return s.a.createElement("div",{className:"jp-dash-item__interior"},s.a.createElement(Pd,null),this.getContent())}}]),t}(o.Component);na()(Id,"propTypes",{siteRawUrl:u.a.string.isRequired,siteAdminUrl:u.a.string.isRequired,akismetData:u.a.oneOfType([u.a.string,u.a.object]).isRequired,isDevMode:u.a.bool.isRequired,upgradeUrl:u.a.string.isRequired}),na()(Id,"defaultProps",{siteRawUrl:"",siteAdminUrl:"",akismetData:"N/A",isDevMode:""});var Dd=le((function(e){return{akismetData:qi(e),sitePlan:Ss(e),isDevMode:Vo(e),upgradeUrl:Fi(e,"aag-akismet"),nonce:Mi(e)}}))(Id),Rd=function(e){return s.a.createElement(ad,{label:xo("Backup"),module:e.feature||"backups",support:{text:xo("Jetpack Backups allow you to easily restore or download a backup from a specific moment."),link:"https://jetpack.com/support/backup/"},className:e.className,status:e.status,pro:!0,overrideContent:e.overrideContent},s.a.createElement("p",{className:"jp-dash-item__description"},e.content))},Ud=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getVPContent",value:function(){var e=this.props,t=e.sitePlan,n=e.isVaultPressInstalled,r=e.getOptionValue,i=e.siteRawUrl,a=e.vaultPressData;return r("vaultpress")&&"success"===Object(It.get)(a,"code","")?Rd({className:"jp-dash-item__is-active",status:"is-working",content:s.a.createElement("span",null,Object(It.get)(a,"message","")," ",xo("{{a}}View backup details{{/a}}.",{components:{a:s.a.createElement("a",{href:"https://dashboard.vaultpress.com",target:"_blank",rel:"noopener noreferrer"})}}))}):Object(It.isEmpty)(t)?Rd({className:"",status:"",content:xo("Loading…")}):"jetpack_free"!==Object(It.get)(t,"product_slug","jetpack_free")?Rd({className:"jp-dash-item__is-inactive",status:n?"pro-inactive":"pro-uninstalled",content:xo("To automatically back up your entire site, please {{a}}install and activate{{/a}} VaultPress.",{components:{a:s.a.createElement("a",{href:"https://wordpress.com/plugins/setup/".concat(i,"?only=backups"),target:"_blank",rel:"noopener noreferrer"})}})}):Rd({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",overrideContent:s.a.createElement(gu,{callToAction:xo("Upgrade"),title:xo("Never worry about losing your site – automatic backups keep your content safe."),disableHref:"false",href:this.props.upgradeUrl,eventFeature:"backups",path:"dashboard",plan:"jetpack_premium",icon:"history"})})}},{key:"getRewindContent",value:function(){var e=this.props,t=e.rewindStatus,n=e.siteRawUrl,r=function(e,t){return s.a.createElement(al,{compact:!0,key:"manage-backups",className:"jp-dash-item__manage-in-wpcom",href:e},t)},i=function(e){return Rd({className:"jp-dash-item__is-active",status:"is-working",feature:"rewind",content:e})};switch(t){case"provisioning":return s.a.createElement(s.a.Fragment,null,i(xo("We are configuring your site's backups.")));case"awaiting_credentials":return s.a.createElement(s.a.Fragment,null,i(xo("You need to enter your server's credentials to finish the setup.")),r("https://wordpress.com/settings/security/".concat(n),xo("Enter credentials")));case"active":return s.a.createElement(s.a.Fragment,null,i(xo("We are backing up your site in real-time.")),r("https://wordpress.com/activity-log/".concat(n,"?group=rewind"),xo("View your site's backups")))}return!1}},{key:"render",value:function(){return this.props.showBackups?this.props.isDevMode?s.a.createElement("div",{className:"jp-dash-item__interior"},Rd({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",content:xo("Unavailable in Dev Mode.")})):s.a.createElement("div",null,s.a.createElement(ou,null),"unavailable"===this.props.rewindStatus?this.getVPContent():s.a.createElement("div",{className:"jp-dash-item"},this.getRewindContent())):null}}]),t}(o.Component);na()(Ud,"propTypes",{siteRawUrl:u.a.string.isRequired,getOptionValue:u.a.func.isRequired,rewindStatus:u.a.string.isRequired,vaultPressData:u.a.any.isRequired,sitePlan:u.a.object.isRequired,isDevMode:u.a.bool.isRequired,isVaultPressInstalled:u.a.bool.isRequired,upgradeUrl:u.a.string.isRequired}),na()(Ud,"defaultProps",{siteRawUrl:"",getOptionValue:It.noop,vaultPressData:"",sitePlan:"",isDevMode:!1,isVaultPressInstalled:!1,rewindStatus:""});var Fd=le((function(e){return{vaultPressData:$i(e),sitePlan:Ss(e),isDevMode:Vo(e),isVaultPressInstalled:sa(e,"vaultpress/vaultpress.php"),showBackups:Ii(e),upgradeUrl:Fi(e,"aag-backups")}}))(Ud),Ld=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.fetchingPluginUpdates||this.props.fetchPluginUpdates()}},{key:"render",value:function(){return null}}]),t}(o.Component);Ld.defaultProps={fetchPluginUpdates:function(){}};var zd=le((function(e){return{fetchPluginUpdates:tu(),fetchingPluginUpdates:Qi(e)}}),(function(e){return P({fetchPluginUpdates:tu},e)}))(Ld),Bd=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"trackManagePlugins",value:function(){uc.tracks.recordJetpackClick({type:"link",target:"at-a-glance",feature:"manage-plugins"})}},{key:"getContent",value:function(){var e=xo("Plugin Updates"),t=this.props.pluginUpdates,n={text:xo("Jetpack’s Plugin Updates allows you to choose which plugins update automatically."),link:"https://jetpack.com/support/site-management/"};if("N/A"===t)return s.a.createElement(ad,{label:e,module:"manage",support:n,status:"is-working"},s.a.createElement(zd,null),s.a.createElement("p",{className:"jp-dash-item__description"},xo("Loading…")));var r="updates-available"===t.code,i="https://wordpress.com/plugins/manage/".concat(this.props.siteRawUrl),a=this.props.getOptionValue("manage")?"is-working":"is-inactive";return[s.a.createElement(ad,{key:"plugin-updates",label:e,module:"manage",support:n,status:r?"is-warning":a},r&&s.a.createElement("h2",{className:"jp-dash-item__count"},xo("%(number)s","%(number)s",{count:t.count,args:{number:t.count}})),s.a.createElement("p",{className:"jp-dash-item__description"},r?[xo("Plugin needs updating.","Plugins need updating.",{count:t.count})+" ",!this.props.isDevMode&&xo("{{a}}Turn on plugin autoupdates.{{/a}}",{components:{a:s.a.createElement("a",{href:i})}})]:xo("All plugins are up-to-date. Awesome work!"))),!this.props.isDevMode&&s.a.createElement(al,{key:"manage-plugins",className:"jp-dash-item__manage-in-wpcom",compact:!0,href:i,onClick:this.trackManagePlugins,target:"_blank"},xo("Manage your plugins"))]}},{key:"render",value:function(){return s.a.createElement("div",null,s.a.createElement(zd,null),this.getContent())}}]),t}(o.Component);na()(Bd,"propTypes",{isDevMode:u.a.bool.isRequired,siteRawUrl:u.a.string.isRequired,siteAdminUrl:u.a.string.isRequired,pluginUpdates:u.a.any.isRequired});var Vd=le((function(e){return{pluginUpdates:Zi(e),isDevMode:Vo(e)}}))(Bd),Hd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"activatePhoton",(function(){return n.props.updateOptions({photon:!0})})),n}return ma()(t,e),bo()(t,[{key:"getContent",value:function(){var e=xo("Image Accelerator"),t={text:xo("Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."),link:"https://jetpack.com/support/photon/"};return this.props.getOptionValue("photon")?s.a.createElement(ad,{label:e,module:"photon",support:t,status:"is-working"},s.a.createElement("p",{className:"jp-dash-item__description"},xo("Jetpack is optimizing your image sizes and download speed using our fast global network of servers. This improves your site's performance on desktop and mobile devices."))):s.a.createElement(ad,{label:e,module:"photon",support:t,className:"jp-dash-item__is-inactive"},s.a.createElement("p",{className:"jp-dash-item__description"},this.props.isDevMode?xo("Unavailable in Dev Mode"):xo("{{a}}Activate{{/a}} to optimize image sizes and load images from Jetpack's fast global network of servers. This improves your site's performance on desktop and mobile devices.",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activatePhoton})}})))}},{key:"render",value:function(){return this.props.isModuleAvailable&&this.getContent()}}]),t}(o.Component);na()(Hd,"propTypes",{isDevMode:u.a.bool.isRequired,isModuleAvailable:u.a.bool.isRequired});var qd=le((function(e){return{isDevMode:Vo(e),isModuleAvailable:Fa(e,"photon")}}))(Hd),Kd=function(e){return s.a.createElement(ad,{label:xo("Jetpack Search"),module:"search",support:{text:xo("Jetpack Search is a powerful replacement for the search capability built into WordPress."),link:"https://jetpack.com/support/search/"},className:e.className,status:e.status,isModule:e.pro_inactive,pro:!0,overrideContent:e.overrideContent},s.a.createElement("p",{className:"jp-dash-item__description"},e.content))},Jd=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"activateSearch",(function(){return n.props.updateOptions({search:!0})})),n}return ma()(t,e),bo()(t,[{key:"trackSearchLink",value:function(){uc.tracks.recordJetpackClick({type:"upgrade-link",target:"at-a-glance",feature:"search"})}},{key:"render",value:function(){var e="is-business-plan"===this.props.planClass;return this.props.isDevMode?Kd({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",pro_inactive:!0,content:xo("Unavailable in Dev Mode")}):e?this.props.getOptionValue("search")?s.a.createElement("div",{className:"jp-dash-item"},s.a.createElement(ad,{label:xo("Jetpack Search"),module:"search",support:{text:xo("Jetpack Search is a powerful replacement for the search capability built into WordPress."),link:"https://jetpack.com/support/search/"},className:"jp-dash-item__is-active",isModule:!1,pro:!0},s.a.createElement("p",{className:"jp-dash-item__description"},xo("Jetpack Search is powering search on your site."))),s.a.createElement(al,{compact:!0,className:"jp-search-config-aag",href:"customize.php?autofocus[panel]=widgets"},xo("Add Search (Jetpack) Widget"))):Kd({className:"jp-dash-item__is-inactive",pro_inactive:!1,content:xo("{{a}}Activate{{/a}} to replace the WordPress built-in search with Jetpack Search, an advanced search experience.",{components:{a:s.a.createElement("a",{href:"javascript:void(0)",onClick:this.activateSearch})}})}):Kd({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",pro_inactive:!0,overrideContent:s.a.createElement(gu,{callToAction:xo("Upgrade"),title:xo("Replace your site's basic search with customizable search that helps visitors find answers faster."),disableHref:"false",href:this.props.upgradeUrl,eventFeature:"search",path:"dashboard",plan:"jetpack_premium",icon:"search"})})}}]),t}(o.Component);na()(Jd,"propTypes",{getOptionValue:u.a.func.isRequired,isDevMode:u.a.bool.isRequired}),na()(Jd,"defaultProps",{getOptionValue:It.noop,isDevMode:!1});var Wd=le((function(e){return{foundSearch:ds(e,"search"),planClass:Yl(Ss(e).product_slug),isDevMode:Vo(e),upgradeUrl:Fi(e,"aag-search")}}))(Jd),Gd=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.isFetchingUserData||this.props.isDevMode||this.props.fetchUserConnectionData()}},{key:"render",value:function(){return null}}]),t}(s.a.Component),Yd=le((function(e){return{isFetchingUserData:zo(e),isDevMode:Vo(e)}}),(function(e){return{fetchUserConnectionData:function(){return e((function(e){return e({type:en}),Ca.fetchUserConnectionData().then((function(t){e({type:nn,userConnectionData:t})})).catch((function(t){e({type:tn,error:t})}))}))}}}))(Gd),$d=function(e){var t=e.amount,n=e.description,r=e.gridIcon,i=e.title;return s.a.createElement("div",{className:"jetpack-termination-dialog__feature"},s.a.createElement("div",{className:"jetpack-termination-dialog__feature-header"},s.a.createElement("h3",null,i),s.a.createElement(Lc,{icon:r})),s.a.createElement("div",{className:"jetpack-termination-dialog__feature-body"},s.a.createElement("p",{className:"jetpack-termination-dialog__feature-body-amount"},Mo(t)),s.a.createElement("p",{className:"jetpack-termination-dialog__feature-body-description"},n)))},Xd=(n(367),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"renderCDNReason",value:function(){return s.a.createElement("li",{key:"reason-cdn"},xo("Speed up your site and provide mobile-ready images with {{a}}our CDN{{/a}}",{components:{a:s.a.createElement("a",{className:"jetpack-termination-dialog__link",href:"https://jetpack.com/features/design/content-delivery-network/",rel:"noopener noreferrer",target:"_blank"})}}))}},{key:"renderProtectReason",value:function(){return s.a.createElement("li",{key:"reason-brute-force"},xo("Block {{a}}brute force attacks{{/a}} and get immediate notifications if your site is down",{components:{a:s.a.createElement("a",{className:"jetpack-termination-dialog__link",href:"https://jetpack.com/features/security/",rel:"noopener noreferrer",target:"_blank"})}}))}},{key:"renderSocialReason",value:function(){return s.a.createElement("li",{key:"reason-social"},xo("Grow your traffic with automated social {{a}}publishing and sharing{{/a}}",{components:{a:s.a.createElement("a",{className:"jetpack-termination-dialog__link",href:"https://jetpack.com/support/social/",rel:"noopener noreferrer",target:"_blank"})}}))}},{key:"render",value:function(){var e=this.props,t=e.isDevVersion,n=e.purpose,r=e.siteBenefits,i=r.length,a=t?"https://jetpack.com/contact-support/beta-group":"https://jetpack.com/contact-support";return s.a.createElement("div",{className:"jetpack-termination-dialog__features"},s.a.createElement(al,null,s.a.createElement("p",{className:"jetpack-termination-dialog__info"},xo("disconnect"===n?"Jetpack is currently powering features on your site. Once you disconnect Jetpack, these features will no longer be available and your site may no longer function the same way.":"Jetpack is currently powering features on your site. Once you disable Jetpack, these features will no longer be available and your site may no longer function the same way."),i>0&&xo(" We’ve highlighted some of the features you rely on below.")),s.a.createElement("div",{className:1===i?"jetpack-termination-dialog__features-list-single-column":"jetpack-termination-dialog__features-list"},r.map((function(e){var t=e.amount,n=e.description,r=e.name,i=e.gridIcon,a=e.title;return s.a.createElement($d,{key:r,amount:t,description:n,gridIcon:i,title:a})}))),i<=2&&s.a.createElement("div",{className:"jetpack-termination-dialog__generic-info"},s.a.createElement("h2",null,xo("Jetpack has many powerful tools that can help you achieve your goals")),s.a.createElement("ul",null,this.renderCDNReason(),this.renderProtectReason(),this.renderSocialReason())),s.a.createElement("div",{className:"jetpack-termination-dialog__get-help"},s.a.createElement("p",null,xo("Have a question? We’d love to help! {{a}}Send a question to the Jetpack support team.{{/a}}",{components:{a:s.a.createElement("a",{className:"jetpack-termination-dialog__link",href:a,rel:"noopener noreferrer",target:"_blank"})}})))))}}]),t}(o.Component));na()(Xd,"propTypes",{isDevVersion:u.a.bool,purpose:u.a.oneOf(["disconnect","disable"]).isRequired,siteBenefits:u.a.array.isRequired});var Qd=Xd,Zd=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.props.isFetchingSiteBenefits||this.props.fetchSiteBenefits()}},{key:"render",value:function(){return null}}]),t}(o.Component);na()(Zd,"defaultProps",{isFetchingSiteBenefitsData:!1});var eh=le((function(e){return{isFetchingSiteBenefits:Cs(e)}}),(function(e){return{fetchSiteBenefits:function(){return e((function(e){return e({type:dr}),Ca.fetchSiteBenefits().then((function(t){e({type:hr,siteBenefits:t})})).catch((function(t){e({type:fr,error:t})}))}))}}}))(Zd);function th(e){switch(e){case"contact-form":return"align-image-center";case"contact-form-feedback":return"mail";case"image-hosting":return"image";case"jetpack-backup":return"cloud-download";case"jetpack-stats":return"stats-alt";case"protect":return"lock";case"publicize":case"sharing":return"share";case"subscribers":return"user";case"video-hosting":return"video-camera";default:return"checkmark"}}function nh(e){return{name:e.name,title:e.title,description:e.description,amount:e.value,gridIcon:th(e.name)}}var rh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"handleTerminationClick",(function(){var e=n.props,t=e.location,r=e.purpose,i=e.terminateJetpack;uc.tracks.recordEvent("jetpack_termination_dialog_termination_click",{location:t,purpose:r}),i()})),na()(wo()(n),"handleDialogCloseClick",(function(){var e=n.props,t=e.closeDialog,r=e.location,i=e.purpose;uc.tracks.recordEvent("jetpack_termination_dialog_close_click",{location:r,purpose:i}),t()})),n}return ma()(t,e),bo()(t,[{key:"renderFeatures",value:function(){var e=this.props,t=e.isDevSite,n=e.purpose,r=e.siteBenefits;return r?s.a.createElement(Qd,{isDevSite:t,purpose:n,siteBenefits:r.map(nh)}):s.a.createElement(al,{className:"jetpack-termination-dialog__spinner"},s.a.createElement(Fc,null))}},{key:"render",value:function(){var e=this.props,t=e.purpose,n=e.location;return s.a.createElement("div",{className:"jetpack-termination-dialog"},s.a.createElement(ul,null),s.a.createElement(eh,null),s.a.createElement(al,null,s.a.createElement("div",{className:"jetpack-termination-dialog__header"},s.a.createElement("h2",null,xo("disconnect"===t?"Disconnect Jetpack":"Disable Jetpack")),"dashboard"===n&&s.a.createElement(Lc,{icon:"cross",className:"jetpack-termination-dialog__close-icon",onClick:this.handleDialogCloseClick}))),this.renderFeatures(),s.a.createElement(al,null,s.a.createElement("div",{className:"jetpack-termination-dialog__button-row"},s.a.createElement("p",null,xo("disconnect"===t?"Are you sure you want to disconnect?":"Are you sure you want to disconnect and deactivate?")),s.a.createElement("div",{className:"jetpack-termination-dialog__button-row-buttons"},s.a.createElement(ec,{onClick:this.handleDialogCloseClick},xo("Cancel")),s.a.createElement(ec,{scary:!0,primary:!0,onClick:this.handleTerminationClick},xo("disconnect"===t?"Disconnect":"Disable"))))))}}]),t}(o.Component);na()(rh,"propTypes",{closeDialog:u.a.func.isRequired,isDevVersion:u.a.bool,location:u.a.oneOf(["plugins","dashboard"]).isRequired,purpose:u.a.oneOf(["disconnect","disable"]).isRequired,siteBenefits:u.a.array,terminateJetpack:u.a.func.isRequired});var ih=le((function(e){return{isDevVersion:ri(e),siteBenefits:Ms(e)}}))(rh),ah=n(114),oh=n.n(ah),sh=(n(370),!1);var ch=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{overlayMouseDown:!1}),na()(wo()(n),"handleEscapeKey",(function(e){27===e.keyCode&&n.maybeClose()})),na()(wo()(n),"maybeClose",(function(){n.props.onRequestClose&&!sh&&n.props.onRequestClose()})),na()(wo()(n),"handleMouseDownOverlay",(function(e){e.preventDefault(),e.stopPropagation(),n.setState({overlayMouseDown:!0})})),na()(wo()(n),"handleClickOverlay",(function(e){e.preventDefault(),e.stopPropagation(),n.state.overlayMouseDown&&n.props.onRequestClose&&!sh&&(n.setState({overlayMouseDown:!1}),n.props.onRequestClose())})),na()(wo()(n),"handleMouseEventModal",(function(e){e.stopPropagation()})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){jQuery("body").addClass("dops-modal-showing").on("touchmove.dopsmodal",!1),jQuery(document).keyup(this.handleEscapeKey);try{oh.a.activate(a.a.findDOMNode(this),{initialFocus:this.props.initialFocus})}catch(e){}}},{key:"componentWillUnmount",value:function(){jQuery("body").removeClass("dops-modal-showing").off("touchmove.dopsmodal",!1),jQuery(document).unbind("keyup",this.handleEscapeKey);try{oh.a.deactivate()}catch(e){}}},{key:"render",value:function(){var e,t=this.props,n=t.style,r=t.className,i=t.width,a=t.title,o=Xs()(t,["style","className","width","title"]),c=Object(It.omit)(o,"onRequestClose").forwardedProps;switch(i){case"wide":e={maxWidth:"inherit",width:"inherit"};break;case"medium":e={maxWidth:1050,width:"inherit"};break;default:e={}}var l=Object(It.assign)({},n,e);return s.a.createElement("div",{className:"dops-modal-wrapper",onClick:this.handleClickOverlay,onMouseDown:this.handleMouseDownOverlay},s.a.createElement("div",fc()({className:Zs()("dops-modal",r),style:l,onClick:this.handleMouseEventModal,onMouseDown:this.handleMouseEventModal,onMouseUp:this.handleMouseEventModal,role:"dialog","aria-label":a},c),this.props.children))}}]),t}(s.a.Component);na()(ch,"propTypes",{style:u.a.object,width:u.a.oneOf(["wide","medium","narrow"]),className:u.a.string,title:u.a.string,initialFocus:u.a.string,onRequestClose:u.a.func}),na()(ch,"defaultProps",{style:{}}),ch.preventClose=function(){sh=!0},ch.allowClose=function(){sh=!1};var lh=ch,uh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"disconnectJetpack",(function(){n.props.disconnectSite(!0)})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.show,n=e.toggleModal;return t&&s.a.createElement(lh,{className:"jp-connection-settings__modal",onRequestClose:n},s.a.createElement(ih,{closeDialog:n,terminateJetpack:this.disconnectJetpack,location:"dashboard",purpose:"disconnect"}))}}]),t}(o.Component);na()(uh,"propTypes",{show:u.a.bool,toggleModal:u.a.func}),na()(uh,"defaultProps",{show:!1,toggleModal:It.noop});var ph=le(null,(function(e){return{disconnectSite:function(){return e(dc(!0))}}}))(uh),dh=(n(371),function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{showModal:!1}),na()(wo()(n),"handleOpenModal",(function(e){uc.tracks.recordJetpackClick("manage_site_connection"),e.preventDefault(),n.toggleVisibility()})),na()(wo()(n),"disconnectSite",(function(){n.toggleVisibility(),n.props.disconnectSite()})),na()(wo()(n),"toggleVisibility",(function(){n.setState({showModal:!n.state.showModal})})),na()(wo()(n),"renderUserButton",(function(){if(n.props.isLinked)return s.a.createElement("div",null,s.a.createElement("a",{role:"button",tabIndex:"0",className:"jp-jetpack-unlink__button",onKeyDown:ru(n.props.unlinkUser),onClick:n.props.unlinkUser,disabled:n.props.isUnlinking},xo("Unlink me from WordPress.com")));var e=n.props.connectUrl;n.props.from&&(e+="&from=".concat(n.props.from),e+="&additional-user");var t={className:"is-primary jp-jetpack-connect__button",href:e,disabled:n.props.fetchingConnectUrl},r=xo("Link to WordPress.com");return n.props.asLink?s.a.createElement("a",t,r):s.a.createElement(ec,t,r)})),na()(wo()(n),"renderContent",(function(){if(n.props.connectUser)return n.renderUserButton();if(n.props.isSiteConnected)return s.a.createElement("a",{role:"button",tabIndex:"0",onKeyDown:ru(n.handleOpenModal),onClick:n.handleOpenModal,disabled:n.props.isDisconnecting},xo("Manage site connection"));var e=n.props.connectUrl;n.props.from&&(e+="&from=".concat(n.props.from));var t={className:"jp-jetpack-connect__button",href:e,disabled:n.props.fetchingConnectUrl},r=xo("Set up Jetpack");return n.props.asLink?s.a.createElement("a",t,r):s.a.createElement(ec,t,r)})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",null,!this.props.isSiteConnected&&s.a.createElement("p",{className:"jp-banner__tos-blurb"},xo("By clicking the button below, you agree to our {{tosLink}}Terms of Service{{/tosLink}} and to {{shareDetailsLink}}share details{{/shareDetailsLink}} with WordPress.com.",{components:{tosLink:s.a.createElement("a",{href:"https://wordpress.com/tos",rel:"noopener noreferrer",target:"_blank"}),shareDetailsLink:s.a.createElement("a",{href:"https://jetpack.com/support/what-data-does-jetpack-sync",rel:"noopener noreferrer",target:"_blank"})}})),this.renderContent(),this.props.children,s.a.createElement(ph,{show:this.state.showModal,toggleModal:this.toggleVisibility}))}}]),t}(s.a.Component));na()(dh,"displayName","ConnectButton"),na()(dh,"propTypes",{connectUser:u.a.bool,from:u.a.string,asLink:u.a.bool}),na()(dh,"defaultProps",{connectUser:!1,from:"",asLink:!1});var hh=le((function(e){return{siteRawUrl:si(e),isSiteConnected:Po(e),isDisconnecting:Uo(e),fetchingConnectUrl:Fo(e),connectUrl:Ro(e),isLinked:Bo(e),isUnlinking:Lo(e)}}),(function(e){return{disconnectSite:function(){return e(dc())},unlinkUser:function(){return e((function(e){return e({type:Xt}),e(Ba("is-info",xo("Unlinking from WordPress.com"),{id:"unlink-user"})),Ca.unlinkUser().then((function(t){e({type:Zt,userUnlinked:t}),e(za("unlink-user")),e(Ba("is-success",xo("Unlinked from WordPress.com."),{id:"unlink-user",duration:2e3}))})).catch((function(t){e({type:Qt,error:t}),e(za("unlink-user")),e(Ba("is-error",xo("Error unlinking from WordPress.com. %(error)s",{args:{error:t}}),{id:"unlink-user"}))}))}))}}}))(dh),fh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{showModal:!1}),na()(wo()(n),"handleOpenModal",(function(e){e.preventDefault(),uc.tracks.recordJetpackClick("login_to_mobile_app_modal"),n.toggleModalVisibility()})),na()(wo()(n),"toggleModalVisibility",(function(){n.setState({showModal:!n.state.showModal})})),na()(wo()(n),"clickSendLoginEmail",(function(e){e.preventDefault(),uc.tracks.recordJetpackClick("login_to_mobile_send_link"),n.toggleModalVisibility(),n.props.sendMobileLoginEmail()})),n}return ma()(t,e),bo()(t,[{key:"renderModal",value:function(){return s.a.createElement(lh,{className:"mobile-magic-link__modal",onRequestClose:this.toggleModalVisibility},s.a.createElement(al,{className:"mobile-magic-link__modal__body"},s.a.createElement("h2",null,xo("Email me a link to log in to the app")),s.a.createElement("h4",null,xo("Easily log in to the WordPress app by clicking the link we'll send to the email address on your account.")),s.a.createElement("div",{className:"mobile-magic-link__modal-actions"},s.a.createElement(ec,{className:"mobile-magic-link__modal-cancel",onClick:this.toggleModalVisibility},xo("Cancel",{context:"A caption for a button to cancel an action."})),s.a.createElement(ec,{onClick:this.clickSendLoginEmail,primary:!0},xo("Send link",{context:"A caption for a button to log in to the WordPress mobile app."})))))}},{key:"render",value:function(){var e=this.state.showModal;return s.a.createElement("div",{className:"mobile-magic-link"},s.a.createElement("a",{className:"mobile-magic-link__button",onClick:this.handleOpenModal,onKeyDown:ru(this.handleOpenModal),role:"button",tabIndex:"0"},xo("Log in to the WordPress mobile app")),e&&this.renderModal())}}]),t}(s.a.Component);na()(fh,"displayName","MobileMagicLink");var mh=le((function(e){return{isSiteConnected:Po(e),isLinked:Bo(e)}}),{sendMobileLoginEmail:function(){return function(e){return e({type:ei}),e(za("mobile-login-email-send")),e(za("mobile-login-email-sent")),e(za("mobile-login-email-error")),e(Ba("is-info",xo("Sending login email…"),{id:"mobile-login-email-send"})),Ca.sendMobileLoginEmail().then((function(t){return e(za("mobile-login-email-send")),e({type:ti}),e(Ba("is-success",xo("Login email sent"),{id:"mobile-login-email-sent",duration:2e3})),t})).catch((function(t){e({type:ni,error:t.response}),e(za("mobile-login-email-send")),e(Ba("is-error",xo("Failed to send login email"),{id:"mobile-login-email-error"}))}))}}})(fh),gh=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"siteConnection",value:function(){var e="";return this.props.isDevMode?e=s.a.createElement("div",{className:"jp-connection-settings__info"},this.props.siteIcon?s.a.createElement("img",{width:"64",height:"64",className:"jp-connection-settings__site-icon",src:this.props.siteIcon,alt:""}):s.a.createElement(Lc,{icon:"globe",size:64}),s.a.createElement("div",{className:"jp-connection-settings__text"},xo("Your site is in Development Mode, so it can not be connected to WordPress.com."))):!0===this.props.siteConnectionStatus&&(e=s.a.createElement("div",null,s.a.createElement("div",{className:"jp-connection-settings__info"},this.props.siteIcon?s.a.createElement("img",{width:"64",height:"64",className:"jp-connection-settings__site-icon",src:this.props.siteIcon,alt:""}):s.a.createElement(Lc,{icon:"globe",size:64}),s.a.createElement("div",{className:"jp-connection-settings__text"},xo("Your site is connected to WordPress.com."),this.props.userIsMaster&&s.a.createElement("span",{className:"jp-connection-settings__is-owner"},s.a.createElement("br",null),s.a.createElement("em",null,xo("You are the Jetpack owner."))))),this.props.userCanDisconnectSite&&s.a.createElement("div",{className:"jp-connection-settings__actions"},s.a.createElement(hh,{asLink:!0})))),e}},{key:"userConnection",value:function(){var e=this.props.userIsMaster?null:s.a.createElement(hh,{asLink:!0,connectUser:!0,from:"connection-settings"});return this.props.isDevMode?s.a.createElement("div",{className:"jp-connection-settings__info"},s.a.createElement("img",{alt:"gravatar",width:"64",height:"64",className:"jp-connection-settings__gravatar",src:this.props.userWpComAvatar}),s.a.createElement("div",{className:"jp-connection-settings__text"},xo("The site is in Development Mode, so you can not connect to WordPress.com."))):this.props.isLinked?s.a.createElement("div",null,s.a.createElement("div",{className:"jp-connection-settings__info"},s.a.createElement("img",{alt:"gravatar",width:"64",height:"64",className:"jp-connection-settings__gravatar",src:this.props.userWpComAvatar}),s.a.createElement("div",{className:"jp-connection-settings__text"},xo("Connected as {{span}}%(username)s{{/span}}",{args:{username:this.props.userWpComLogin},components:{span:s.a.createElement("span",{className:"jp-connection-settings__username"})},comment:"%(username) is the WordPress user login name."}),s.a.createElement("div",{className:"jp-connection-settings__email"},this.props.userWpComEmail))),s.a.createElement("div",{className:"jp-connection-settings__actions"},e),s.a.createElement(mh,null)):s.a.createElement("div",null,s.a.createElement("div",{className:"jp-connection-settings__info"},xo("Link your account to WordPress.com to get the most out of Jetpack.")),s.a.createElement("div",{className:"jp-connection-settings__actions"},e))}},{key:"render",value:function(){return s.a.createElement("div",null,s.a.createElement(Yd,null),s.a.createElement("div",{className:"jp-at-a-glance__item-grid"},s.a.createElement("div",{className:"jp-at-a-glance__left"},s.a.createElement("div",{className:"jp-dash-item__interior"},s.a.createElement(ad,{className:"jp-connection-type",label:xo("Site connection",{context:"Dashboard widget header"})},this.siteConnection()))),s.a.createElement("div",{className:"jp-at-a-glance__right"},s.a.createElement("div",{className:"jp-dash-item__interior"},s.a.createElement(ad,{className:"jp-connection-type",label:xo("Account connection",{context:"Dashboard widget header"})},this.userConnection())))))}}]),t}(o.Component);gh.propTypes={siteConnectionStatus:u.a.any.isRequired,isDevMode:u.a.bool.isRequired,userCanDisconnectSite:u.a.bool.isRequired,userIsMaster:u.a.bool.isRequired,isLinked:u.a.bool.isRequired,userWpComLogin:u.a.any.isRequired,userWpComEmail:u.a.any.isRequired,userWpComAvatar:u.a.any.isRequired,username:u.a.any.isRequired};var vh=le((function(e){return{siteConnectionStatus:Po(e),isDevMode:Vo(e),userCanDisconnectSite:gi(e),userIsMaster:bi(e),userWpComLogin:yi(e),userWpComEmail:wi(e),userWpComAvatar:_i(e),username:ki(e),isLinked:Bo(e),siteIcon:Ci(e)}}))(gh),bh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackSecurityClick",(function(){return uc.tracks.recordJetpackClick("aag_manage_security_wpcom")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={updateOptions:this.props.updateOptions,getOptionValue:this.props.getOptionValue,isUpdating:this.props.isUpdating},t={siteAdminUrl:this.props.siteAdminUrl,siteRawUrl:this.props.siteRawUrl},n=s.a.createElement(rd,{key:"securityHeader",label:xo("Security"),settingsPath:this.props.userCanManageModules?"#security":void 0,externalLink:this.props.isDevMode||!this.props.userCanManageModules?"":xo("Manage security settings"),externalLinkPath:this.props.isDevMode?"":"#/security",externalLinkClick:this.trackSecurityClick}),r=s.a.createElement("div",null,s.a.createElement(rd,{label:xo("Connections"),className:"jp-dash-section-header__connections"}),s.a.createElement(vh,null)),i=Object(It.get)(this.props.rewindStatus,["state"],""),a=[s.a.createElement(Nd,fc()({},e,{siteRawUrl:this.props.siteRawUrl,rewindStatus:i})),s.a.createElement(Fd,fc()({},e,{siteRawUrl:this.props.siteRawUrl,rewindStatus:i})),s.a.createElement(Dd,t),s.a.createElement(Vd,fc()({},e,t))];if("inactive"!==this.props.getModuleOverride("protect")&&a.push(s.a.createElement(Md,e)),"inactive"!==this.props.getModuleOverride("monitor")&&a.push(s.a.createElement(Ad,e)),"active"===i&&a.unshift(s.a.createElement(sd,fc()({},e,{siteRawUrl:this.props.siteRawUrl}))),this.props.userCanManageModules){var o=[{header:n,cards:a}],c=[];return"inactive"!==this.props.getModuleOverride("photon")&&c.push(s.a.createElement(qd,e)),"inactive"!==this.props.getModuleOverride("search")&&c.push(s.a.createElement(Wd,e)),c.length&&o.push({header:s.a.createElement(rd,{key:"performanceHeader",label:xo("Performance")}),cards:c}),s.a.createElement("div",{className:"jp-at-a-glance"},s.a.createElement(Zc,null),s.a.createElement(ul,null),s.a.createElement(kd,fc()({},e,t)),o.map((function(e,t){return[e.header,Object(It.chunk)(e.cards,2).map((function(e,n){var r=ko()(e,2),i=r[0],a=r[1];return s.a.createElement("div",{className:"jp-at-a-glance__item-grid",key:"card-".concat(t,"-").concat(n)},s.a.createElement("div",{className:"jp-at-a-glance__left"},i),s.a.createElement("div",{className:"jp-at-a-glance__right"},a))}))]})),r)}var l="";this.props.userCanViewStats&&(l=s.a.createElement(kd,fc()({},e,t)));var u="";return this.props.getOptionValue("protect")&&(u=s.a.createElement(Md,e)),this.props.userIsSubscriber?s.a.createElement("div",null,l,r):s.a.createElement("div",null,l,this.props.getOptionValue("protect")&&n,u,r)}}]),t}(o.Component),yh=le((function(e){return{userCanManageModules:hi(e),userCanViewStats:Ei(e),userIsSubscriber:pi(e),isDevMode:Vo(e),getModuleOverride:function(t){return La(e,t)}}}))(Wl(bh));function wh(e){var t=e.onClick,n=e.siteSlug;return s.a.createElement("div",{className:"jp-landing__plan-features-header-checklist-cta-container"},s.a.createElement(ec,{href:"https://wordpress.com/plans/my-plan/".concat(n,"?checklist"),onClick:t,primary:!0},xo("View your setup checklist")))}function _h(e){var t=e.children;return s.a.createElement("span",{className:"screen-reader-text"},t)}var kh=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=Zs()(this.props.className,"checklist-header-progress-bar"),t=Math.min(Math.ceil(this.props.value/this.props.total*100),100),n=this.props.title?s.a.createElement(_h,null,this.props.title):null;return s.a.createElement("div",{className:e},s.a.createElement("div",{className:"checklist-header-progress-bar__progress",style:{width:t+"%"}},n))}}]),t}(o.PureComponent);function Eh(e){return e.jetpack.checklist.isLoading}na()(kh,"defaultProps",{total:100}),na()(kh,"propTypes",{value:u.a.number.isRequired,total:u.a.number,title:u.a.string,className:u.a.string});var Ch=Object(It.memoize)((function(e){var t=Object.keys(e);return{completed:t.filter((function(t){return e[t].completed})).length,total:t.length}}));function Sh(e){var t=function(e){return Object(It.get)(e,["jetpack","checklist","checklist","tasks"])}(e);return t?Ch(t):null}var Mh=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){this.props.isLoading||this.props.requestSiteChecklist()}},{key:"render",value:function(){return null}}]),t}(o.Component);na()(Mh,"propTypes",{requestSiteChecklist:u.a.func,isLoading:u.a.bool});var xh=le((function(e){return{isLoading:Eh(e)}}),{requestSiteChecklist:function(){return function(e){e({type:Zr})}}})(Mh),Ah=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackCtaClick",(function(){uc.tracks.recordEvent("jetpack_myplan_progresschecklistcta_click",n.props.plan?{plan:n.props.plan}:void 0)})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.completed,n=e.total,r=e.siteSlug;return s.a.createElement(s.a.Fragment,null,s.a.createElement(xh,null),t&&n&&s.a.createElement(al,{compact:!0,className:"checklist__header"},s.a.createElement("div",{className:"checklist__header-main"},s.a.createElement("div",{className:"checklist__header-progress"},s.a.createElement("span",{className:"checklist__header-progress-text"},xo("Your Jetpack setup progress",{comment:"Onboarding task list progress"})),s.a.createElement("span",{className:"checklist__header-progress-number"},"".concat(t,"/").concat(n))),s.a.createElement(kh,{total:n,value:t})),s.a.createElement("div",{className:"checklist__header-secondary"},s.a.createElement(ec,{compact:!0,href:"https://wordpress.com/plans/my-plan/".concat(r),onClick:this.trackCtaClick,primary:!0},xo("Complete Jetpack Setup",{comment:"Text on link to list of onboarding tasks"})))))}}]),t}(o.Component),jh=le((function(e){return go()({siteSlug:si(e)},Sh(e))}))(Ah),Oh=(n(372),function(e){var t=e.action,n=e.isError,r=e.isPlaceholder,i=e.details,a=e.icon,o=e.tagLine,c=e.title,l=Zs()("my-plan-card",{"is-placeholder":r,"has-action-only":t&&!i&&!r}),u=Zs()("my-plan-card__details",{"is-error":n});return s.a.createElement("div",{className:l,compact:!0},s.a.createElement("div",{className:"my-plan-card__primary"},s.a.createElement("div",{className:"my-plan-card__icon"},a&&s.a.createElement("img",{src:a,alt:c})),s.a.createElement("div",{className:"my-plan-card__header"},c&&s.a.createElement("h2",{className:"my-plan-card__title"},c),o&&s.a.createElement("p",{className:"my-plan-card__tag-line"},o))),(i||t||r)&&s.a.createElement("div",{className:"my-plan-card__secondary"},s.a.createElement("div",{className:u},r?null:i),s.a.createElement("div",{className:"my-plan-card__action"},r?null:t)))});Oh.propTypes={action:u.a.oneOfType([u.a.node,u.a.element]),isError:u.a.bool,isPlaceholder:u.a.bool,details:u.a.string,icon:u.a.string,tagLine:u.a.oneOfType([u.a.string,u.a.node,u.a.element]),title:u.a.oneOfType([u.a.string,u.a.node,u.a.element])};var Nh=Oh,Th=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackClick",(function(){var e=n.props,t=e.target,r=e.feature;if(t){var i=r?{feature:r}:{};uc.tracks.recordJetpackClick(go()({type:"upgrade-link",target:t},i))}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("a",{href:this.props.upgradeUrl,target:"_blank",rel:"noopener noreferrer",onClick:this.trackClick},this.props.children)}}]),t}(o.PureComponent);na()(Th,"propTypes",{source:u.a.string.isRequired,target:u.a.string.isRequired,feature:u.a.string,upgradeUrl:u.a.string.isRequired});var Ph=le((function(e,t){var n=t.source;return{upgradeUrl:Fi(e,n)}}))(Th),Ih=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.expiryDate,n=e.purchaseDate,r=e.isRefundable,i=e.dateFormat;if(!t&&!n)return null;if(!t||r){var a=So(n);return a.isValid()?xo("Purchased on %s.",{args:a.format(i)}):null}var o=So(t);return o.isValid()?o.diff(new Date)<0?xo("Expired on %s.",{args:o.format(i)}):xo("Renews on %s.",{args:o.format(i)}):null}}]),t}(s.a.PureComponent);na()(Ih,"propTypes",{expiryDate:u.a.string,purchaseDate:u.a.string,isRefundable:u.a.bool,dateFormat:u.a.string}),na()(Ih,"defaultProps",{expiryDate:"",purchaseDate:"",isRefundable:!1,dateFormat:"LL"});var Dh=Ih,Rh=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getProductProps",value:function(e){var t=this.props,n=t.displayBackups,r=t.purchases;if(!e)return{isPlaceholder:!0};var i,a=Object(It.find)(r,(function(t){return t.product_slug===e}));switch(a&&(i=s.a.createElement(Dh,{expiryDate:a.expiry_date,purchaseDate:a.subscribed_date,isRefundable:a.is_refundable})),Yl(e)){case"is-free-plan":return{icon:yp+"/plans/plan-free.svg",tagLine:xo("Worried about security? Get backups, automated security fixes and more: {{a}}Upgrade now{{/a}}",{components:{a:s.a.createElement(Ph,{source:"my-plan-header-free-plan-text-link",target:"upgrade-now",feature:"my-plan-header-free-upgrade"})}}),title:xo("Jetpack Free")};case"is-personal-plan":return{details:i,icon:yp+"/plans/plan-personal.svg",tagLine:xo(n?"Daily backups, spam filtering, and priority support.":"Spam filtering and priority support."),title:xo("Jetpack Personal")};case"is-premium-plan":return{details:i,icon:yp+"/plans/plan-premium.svg",tagLine:xo("Full security suite, marketing and revenue automation tools, unlimited video hosting, and priority support."),title:xo("Jetpack Premium")};case"is-business-plan":return{details:i,icon:yp+"/plans/plan-business.svg",tagLine:xo("Full security suite, marketing and revenue automation tools, unlimited video hosting, unlimited themes, enhanced search, and priority support."),title:xo("Jetpack Professional")};case"is-daily-backup-plan":return{details:i,icon:yp+"/products/product-jetpack-backup.svg",tagLine:xo("Your data is being securely backed up every day with a 30-day archive."),title:xo("Jetpack Backup {{em}}Daily{{/em}}",{components:{em:s.a.createElement("em",null)}})};case"is-realtime-backup-plan":return{details:i,icon:yp+"/products/product-jetpack-backup.svg",tagLine:xo("Your data is being securely backed up as you edit."),title:xo("Jetpack Backup {{em}}Real-Time{{/em}}",{components:{em:s.a.createElement("em",null)}})};default:return{isPlaceholder:!0}}}},{key:"renderPlan",value:function(){var e=this.props.plan,t=this.getProductProps(e);return s.a.createElement(al,{compact:!0},this.renderHeader(xo("My Plan")),s.a.createElement(Nh,t))}},{key:"renderProducts",value:function(){var e=this,t=this.props.purchases,n=Object(It.filter)(t,(function(e){return t=e.product_slug,Object(It.includes)(Gl,t);var t}));return Object(It.isEmpty)(n)?null:s.a.createElement(al,{compact:!0},this.renderHeader(xo("My Products")),n.map((function(t){var n=t.ID,r=t.product_slug,i=e.getProductProps(r);return s.a.createElement(Nh,fc()({key:"product-card-"+n},i))})))}},{key:"renderHeader",value:function(e){return s.a.createElement("h3",{className:"jp-landing__card-header"},e)}},{key:"render",value:function(){var e=this.props,t=e.plan,n=e.siteSlug;return s.a.createElement("div",{className:"jp-landing__plans"},this.renderPlan(),this.renderProducts(),s.a.createElement(al,{compact:!0},s.a.createElement(wh,{onClick:this.trackChecklistCtaClick,siteSlug:n})),s.a.createElement(jh,{plan:t}))}}]),t}(s.a.Component);Rh.propTypes={plan:u.a.string,siteRawUrl:u.a.string,siteSlug:u.a.string,displayBackups:u.a.bool,plansMainTopUpgradeUrl:u.a.string,purchases:u.a.array};var Uh=le((function(e){return{siteSlug:si(e),displayBackups:Ii(e),plansMainTopUpgradeUrl:Fi(e,"plans-main-top"),purchases:Os(e)}}))(Rh),Fh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackPlansClick",(function(e){uc.tracks.recordJetpackClick({page:"my-plan",target:e,plan:n.props.plan})})),na()(wo()(n),"handleButtonClickForTracking",(function(e){return function(){return n.trackPlansClick(e)}})),na()(wo()(n),"activateAds",(function(){n.props.activateModule("wordads"),n.trackPlansClick("activate_wordads")})),na()(wo()(n),"activatePublicize",(function(){n.props.activateModule("publicize"),n.trackPlansClick("activate_publicize")})),na()(wo()(n),"activateSearch",(function(){n.props.activateModule("search"),n.trackPlansClick("activate_search")})),na()(wo()(n),"activateVideoPress",(function(){n.props.activateFeature("videopress"),n.trackPlansClick("activate_videopress")})),na()(wo()(n),"activateSeo",(function(){n.props.activateModule("seo-tools"),n.trackPlansClick("activate_seo")})),na()(wo()(n),"activateGoogleAnalytics",(function(){n.props.activateModule("google-analytics"),n.trackPlansClick("activate_ga")})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e,t=this,n="",r="dev"!==this.props.plan?Yl(this.props.plan):"dev",i=Object(It.includes)(this.props.activeFeatures,"premium-themes"),a="active"===Object(It.get)(this.props.rewindStatus,["state"],!1),o=!this.props.showBackups||!a&&"unavailable"!==Object(It.get)(this.props.rewindStatus,["state"],!1),c=function(e){var n=e.title,r=e.description;return s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-backup.svg",className:"jp-landing__plan-features-icon",alt:xo("A Jetpack Site securely backed up with Jetpack Backup")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},n),s.a.createElement("p",null,r),s.a.createElement(ec,{onClick:t.handleButtonClickForTracking("view_backup_dash"),href:"https://wordpress.com/activity-log/"+t.props.siteRawUrl},xo("View Your Backups"))))},l=function(){if(!o){if(a)return s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:xo("A secure site, locked and protected by Jetpack")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Site Backups")),s.a.createElement("p",null,xo("Real-time backup of all your site data with unlimited space, one-click restores, and automated security scanning.")),s.a.createElement(ec,{onClick:t.handleButtonClickForTracking("view_security_dash_rewind"),href:"https://wordpress.com/activity-log/"+t.props.siteRawUrl},xo("View your security activity"))));var e="";switch(r){case"is-personal-plan":e=xo("Daily backup of all your site data with unlimited space and one-click restores");break;case"is-premium-plan":e=xo("Daily backup of all your site data with unlimited space, one-click restores, automated security scanning, and priority support");break;case"is-business-plan":e=xo("Real-time backup of all your site data with unlimited space, one-click restores, automated security scanning, and priority support");break;default:e=""}return s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:xo("A secure site, locked and protected by Jetpack")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Site Security")),s.a.createElement("p",null,e+xo(" (powered by VaultPress).")),t.props.isPluginInstalled("vaultpress/vaultpress.php")&&t.props.isPluginActive("vaultpress/vaultpress.php")?s.a.createElement(ec,{onClick:t.handleButtonClickForTracking("view_security_dash"),href:"https://dashboard.vaultpress.com/"},xo("View your security dashboard")):s.a.createElement(ec,{onClick:t.handleButtonClickForTracking("configure_vault"),href:"https://wordpress.com/plugins/setup/"+t.props.siteRawUrl+"?only=vaultpress"},xo("View settings"))))}};switch("is-daily-backup-plan"===r&&(e=c({title:xo("Automated Daily Backups"),description:xo("We back up your website every day, so you never have to worry about your data again.")})),"is-realtime-backup-plan"===r&&(e=c({title:xo("Automated Real-time Backups"),description:xo("We back up your website with every change you make, making it easy to fix your mistakes.")})),r){case"is-personal-plan":case"is-premium-plan":case"is-business-plan":n=s.a.createElement("div",{className:"jp-landing__plan-features"},"is-personal-plan"===r&&l(),"is-premium-plan"===r&&l(),"is-business-plan"===r&&l(),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-speed-icon.svg",className:"jp-landing__plan-features-icon",alt:xo("A fast and performant website")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Optimized performance")),s.a.createElement("p",null,xo("Load pages faster by serving your images from our global network of servers.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("paid_performance"),href:this.props.siteAdminUrl+"admin.php?page=jetpack#/performance"},xo("Make your site faster")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-spam.svg",className:"jp-landing__plan-features-icon",alt:xo("A folder holding real comments")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Anti-spam")),s.a.createElement("p",null,xo("Spam is automatically blocked from your comments.")),this.props.isPluginInstalled("akismet/akismet.php")&&this.props.isPluginActive("akismet/akismet.php")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("view_spam_stats"),href:this.props.siteAdminUrl+"admin.php?page=akismet-key-config"},xo("View your spam stats")):s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("configure_akismet"),href:"https://wordpress.com/plugins/setup/"+this.props.siteRawUrl+"?only=akismet"},xo("View settings")))),("is-business-plan"===r||"is-premium-plan"===r)&&"inactive"!==this.props.getModuleOverride("videopress")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-video-hosting.svg",className:"jp-landing__plan-features-icon",alt:xo("A cloud with multiple types of content floating around it")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Video Hosting")),s.a.createElement("p",null,xo("High-speed, high-definition video hosting with no third-party ads.")),this.props.getFeatureState("videopress")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("upload_videos"),href:this.props.siteAdminUrl+"upload.php"},xo("Upload videos")):s.a.createElement(ec,{onClick:this.activateVideoPress,disabled:this.props.isActivatingFeature("videopress")},xo("Activate video hosting")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-site-activity.svg",className:"jp-landing__plan-features-icon",alt:xo("Interface showing a chronological list of changes and updates in a site")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Activity")),s.a.createElement("p",null,xo("View a chronological list of all the changes and updates to your site in an organized, readable way.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("view_site_activity"),href:"https://wordpress.com/activity-log/"+this.props.siteRawUrl},xo("View your site activity")))),("is-business-plan"===r||"is-premium-plan"===r)&&"inactive"!==this.props.getModuleOverride("wordads")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-wordads.svg",className:"jp-landing__plan-features-icon",alt:xo("A chart showing an healthy increase in earnings")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Monetize your site with ads")),s.a.createElement("p",null,xo("WordAds lets you earn money by displaying promotional content. Start earning today.")),this.props.isModuleActivated("wordads")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("view_earnings"),href:"https://wordpress.com/ads/earnings/"+this.props.siteRawUrl},xo("View your earnings")):s.a.createElement(ec,{onClick:this.activateAds,disabled:this.props.isActivatingModule("wordads")},xo("Start earning")))),"is-business-plan"===r&&!this.props.getModuleOverride("search")&&"inactive"!==this.props.getModuleOverride("search")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-search-icon.svg",className:"jp-landing__plan-features-icon",alt:xo("A hand holding a loupe")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Jetpack Search")),s.a.createElement("p",null,xo("Replace the default WordPress search with better results and filtering powered by Elasticsearch.")),this.props.isModuleActivated("search")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("search_customize"),href:this.props.siteAdminUrl+"widgets.php"},xo("Customize Search Widget")):s.a.createElement(ec,{onClick:this.activateSearch,disabled:this.props.isActivatingModule("search")},xo("Activate Jetpack Search")))),("is-business-plan"===r||"is-premium-plan"===r)&&"inactive"!==this.props.getModuleOverride("seo-tools")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-performance-icon.svg",className:"jp-landing__plan-features-icon",alt:xo("Site stats showing an evolution in traffic and engagement")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("SEO Tools")),s.a.createElement("p",null,xo("Advanced SEO tools to help your site get found when people search for relevant content.")),this.props.isModuleActivated("seo-tools")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("configure_seo"),href:"https://wordpress.com/marketing/traffic/"+this.props.siteRawUrl},xo("Configure site SEO")):s.a.createElement(ec,{onClick:this.activateSeo,disabled:this.props.isActivatingModule("seo-tools")},xo("Activate SEO tools")))),("is-business-plan"===r||"is-premium-plan"===r)&&"inactive"!==this.props.getModuleOverride("google-analytics")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-google-analytics.svg",className:"jp-landing__plan-features-icon",alt:xo("Site stats showing an evolution in traffic and engagement")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Google Analytics")),s.a.createElement("p",null,xo("Complement WordPress.com’s stats with Google’s in-depth look at your visitors and traffic patterns.")),this.props.isModuleActivated("google-analytics")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("configure_ga"),href:"https://wordpress.com/marketing/traffic/"+this.props.siteRawUrl},xo("Configure Google Analytics")):s.a.createElement(ec,{onClick:this.activateGoogleAnalytics,disabled:this.props.isActivatingModule("google-analytics")},xo("Activate Google Analytics")))),i&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-themes.svg",className:"jp-landing__plan-features-icon",alt:xo("A secure site, locked and protected by Jetpack")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Try a premium theme")),s.a.createElement("p",null,xo("Access hundreds of beautifully designed premium themes at no extra cost.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("premium_themes"),href:"https://wordpress.com/themes/premium/"+this.props.siteRawUrl},xo("Browse premium themes")))),("is-business-plan"===r||"is-premium-plan"===r)&&"inactive"!==this.props.getModuleOverride("publicize")&&s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-marketing.svg",className:"jp-landing__plan-features-icon",alt:xo("A secure site, locked and protected by Jetpack")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Marketing Automation")),s.a.createElement("p",null,xo("Schedule unlimited tweets, Facebook posts, and other social posts in advance.")),this.props.isModuleActivated("publicize")?s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("schedule_posts"),href:"https://wordpress.com/posts/"+this.props.siteRawUrl},xo("Schedule posts")):s.a.createElement(ec,{onClick:this.activatePublicize,disabled:this.props.isActivatingModule("publicize")},xo("Activate Publicize")))));break;case"is-free-plan":case"is-daily-backup-plan":case"is-realtime-backup-plan":case"dev":n=s.a.createElement("div",{className:"jp-landing__plan-features"},e,s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:xo("A secure site, locked and protected by Jetpack")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Always-on security")),s.a.createElement("p",null,xo("Prevent login attacks, and get instant notifications when there’s an issue with your site.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("free_security"),href:"https://wordpress.com/settings/security/"+this.props.siteRawUrl},xo("Set up your site security")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-speed-icon.svg",className:"jp-landing__plan-features-icon",alt:xo("A fast and performant website")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Optimized performance")),s.a.createElement("p",null,xo("Load pages faster by serving your images from our global network of servers.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("free_performance"),href:this.props.siteAdminUrl+"admin.php?page=jetpack#/performance"},xo("Make your site faster")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-themes.svg",className:"jp-landing__plan-features-icon",alt:xo("A wide variety of themes and tools to customize a site")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Design the perfect website")),s.a.createElement("p",null,xo("Get unlimited access to hundreds of professional themes, and customize your site exactly how you like it.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("free_themes"),href:"https://wordpress.com/themes/"+this.props.siteRawUrl},xo("Explore free themes")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-performance-icon.svg",className:"jp-landing__plan-features-icon",alt:xo("Site stats showing an evolution in traffic and engagement")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Increase traffic to your site")),s.a.createElement("p",null,xo("Reach a wider audience by automatically sharing your posts on social media.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("free_sharing"),href:"https://wordpress.com/marketing/connections/"+this.props.siteRawUrl},xo("Start sharing")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-site-activity.svg",className:"jp-landing__plan-features-icon",alt:xo("Interface showing a chronological list of changes and updates in a site")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Site activity")),s.a.createElement("p",null,xo("View a chronological list of all the changes and updates to your site in an organized, readable way.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("view_site_activity"),href:"https://wordpress.com/activity-log/"+this.props.siteRawUrl},xo("View your site activity")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-img"},s.a.createElement("img",{src:yp+"/jetpack-support.svg",className:"jp-landing__plan-features-icon",alt:xo("Chat bubbles representing getting in touch with support")})),s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Support documentation")),s.a.createElement("p",null,xo("Need help? Learn about getting started, customizing your site, using advanced code snippets, and more.")),s.a.createElement(ec,{onClick:this.handleButtonClickForTracking("free_support_documentation"),href:"https://jetpack.com/support/"},xo("Search support docs")))),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("div",{className:"jp-landing__plan-features-text"},s.a.createElement("h3",{className:"jp-landing__plan-features-title"},xo("Take your site to the next level!")),s.a.createElement("ul",{className:"jp-landing__plan-features-list"},s.a.createElement("li",null,xo("Expand your audience with pro SEO tools.")),s.a.createElement("li",null,xo("Customize your social posting schedule.")),s.a.createElement("li",null,xo("Monetize your site by running high quality ads."))),s.a.createElement(ec,{className:"is-primary",onClick:this.handleButtonClickForTracking("free_explore_jetpack_plans"),href:"#/plans"},xo("Upgrade Jetpack now")))));break;default:n=s.a.createElement("div",{className:"jp-landing__plan-features is-loading"},s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),s.a.createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),s.a.createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")),s.a.createElement("div",{className:"jp-landing__plan-features-card"},s.a.createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),s.a.createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")))}return s.a.createElement("div",null,s.a.createElement(Zc,null),n)}}]),t}(s.a.Component);na()(Fh,"propTypes",{plan:u.a.string}),na()(Fh,"defaultProps",{plan:""});var Lh=le((function(e){return{isFetchingPluginsData:aa(e),isPluginActive:function(t){return oa(e,t)},isPluginInstalled:function(t){return sa(e,t)},isModuleActivated:function(t){return Ua(e,t)},isActivatingModule:function(t){return function(e,t){return!!e.jetpack.modules.requests.activating[t]}(e,t)},getModuleOverride:function(t){return La(e,t)},showBackups:Ii(e),getFeatureState:function(t){return gs(e,t)},isActivatingFeature:function(t){return vs(e,t)}}}),(function(e){return{fetchPluginsData:function(){return e(Aa())},activateModule:function(t){return e(function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n,r){return n({type:gn,module:e}),n(za("module-toggle")),n(Ba("is-info",xo("Activating %(slug)s…",{args:{slug:Pa(r(),e).name}}),{id:"module-toggle"})),Ca.activateModule(e).then((function(){n({type:vn,module:e,success:!0}),n(za("module-toggle")),n(Ba("is-success",xo("%(slug)s has been activated.",{args:{slug:Pa(r(),e).name}}),{id:"module-toggle",duration:2e3})),t&&window.location.reload()})).catch((function(t){n({type:bn,module:e,success:!1,error:t}),n(za("module-toggle")),n(Ba("is-error",xo("%(slug)s failed to activate. %(error)s",{args:{slug:Pa(r(),e).name,error:t}}),{id:"module-toggle"}))}))}}(t))},activateFeature:function(t){return e(sl(na()({},t,!0)))}}}))(Fh),zh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"renderContent",(function(){var e=n.props.sitePlan.product_slug||"",t=n.props.availableFeatures,r=n.props.activeFeatures;return"dev"===n.props.getSiteConnectionStatus(n.props)&&(e="dev",t={},r={}),s.a.createElement("div",null,s.a.createElement(Uh,{plan:e,siteRawUrl:n.props.siteRawUrl}),s.a.createElement(Lh,{plan:e,availableFeatures:t,activeFeatures:r,siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl,rewindStatus:n.props.rewindStatus}))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",null,s.a.createElement(ul,null),this.renderContent())}}]),t}(s.a.Component),Bh=le((function(e){return{getSiteConnectionStatus:function(){return Po(e)},sitePlan:Ss(e),availableFeatures:xs(e),activeFeatures:As(e)}}))(zh),Vh=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){!this.props.isFetchingProducts&&Object(It.isEmpty)(this.props.products)&&this.props.fetchProducts()}},{key:"render",value:function(){return null}}]),t}(o.Component);na()(Vh,"propTypes",{isFetchingProducts:u.a.bool}),na()(Vh,"defaultProps",{isFetchingProducts:!1});var Hh=le((function(e){return{isFetchingProducts:ns(e),products:rs(e)}}),(function(e){return{fetchProducts:function(){return e((function(e){return e({type:Yn}),Ca.fetchProducts().then((function(t){e({type:$n,products:t})})).catch((function(t){e({type:Xn,error:t})}))}))}}}))(Vh),qh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"clickHandler",(function(){var e=n.props,t=e.planType,r=e.productSlug;uc.tracks.recordJetpackClick({target:"upgrade-".concat(t),type:"upgrade",plan:r,page:"Plans"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this.props,t=e.buttonText,n=e.planType,r=e.isActivePlan,i=e.isPrimary,a=e.shouldRenderButton,o=e.siteRawUrl,c=e.plansUpgradeUrl,l=r?"https://wordpress.com/plans/my-plan/".concat(o):c,u=Zs()("plan-features__table-item","has-border-bottom","is-top-buttons");return a?s.a.createElement("td",{key:"button-"+n,className:u},s.a.createElement(ec,{href:l,primary:i,onClick:this.clickHandler},t)):s.a.createElement("td",{key:"button-"+n,className:u})}}]),t}(s.a.Component),Kh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"featureLinkClickHandler",(function(){var e=n.props,t=e.feature,r=e.productSlug;uc.tracks.recordJetpackClick({target:t.id,type:"feature-discovery",plan:r,page:"Plans"})})),n}return ma()(t,e),bo()(t,[{key:"renderFeatureLink",value:function(e){var t=this.props,n=t.siteRawUrl,r=t.userId;return s.a.createElement("a",{onClick:this.featureLinkClickHandler,href:"https://jetpack.com/features/".concat(e.info,"?site=").concat(n,"&u=").concat(r)},e.name)}},{key:"render",value:function(){var e=this.props,t=e.itemKey,n=e.feature,r=e.hideBackupFeature;return void 0===n||r?s.a.createElement("td",{key:t,className:"plan-features__table-item"}):s.a.createElement("td",{key:t,className:"plan-features__table-item has-partial-border"},s.a.createElement("div",{className:"plan-features__item"},n.info?this.renderFeatureLink(n):n.name))}}]),t}(o.Component),Jh=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{period:"yearly"}),na()(wo()(n),"featuredPlans",!1),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillUpdate",value:function(){this.featuredPlans=!1}},{key:"handlePeriodChange",value:function(e){var t=this;return e===this.state.period?null:function(){uc.tracks.recordJetpackClick({target:"change-period-"+e,feature:"plans-grid"}),t.setState({period:e})}}},{key:"handleSeeFeaturesClick",value:function(e){return function(){uc.tracks.recordJetpackClick({target:"see-all-features-link",feature:"plans-grid",extra:e})}}},{key:"render",value:function(){if(!this.props.plans||this.props.isFetchingData)return s.a.createElement("div",{className:"plan-features"},this.renderMobileCard(),this.renderSkeletonGrid());var e=Object.values(this.getPlans()).length,t=Zs()("plan-features__table","has-".concat(e,"-cols"));return s.a.createElement("div",{className:"plan-features"},this.renderMobileCard(),this.renderPlanPeriodToggle(),s.a.createElement("div",{className:"plan-features__content"},s.a.createElement("table",{className:t},s.a.createElement("tbody",null,s.a.createElement("tr",null,this.renderPlanHeaders()),s.a.createElement("tr",null,this.renderPrices()),s.a.createElement("tr",null,this.renderTopButtons()),this.renderPlanFeatureRows(),s.a.createElement("tr",null,this.renderBottomButtons())))))}},{key:"renderMobileCard",value:function(){var e=xo("You’re currently on Jetpack %(plan)s.",{args:{plan:this.props.sitePlan.product_name_short}}),t="https://wordpress.com/plans/my-plan/".concat(this.props.siteRawUrl),n="https://wordpress.com/plans/".concat(this.props.siteRawUrl);return s.a.createElement("div",{className:"plans-mobile-notice dops-card"},s.a.createElement("h2",null,xo("Your Plan")),s.a.createElement("p",null,e),s.a.createElement(ec,{href:t},xo("Manage your plan")),s.a.createElement(ec,{href:n,primary:!0},xo("View all Jetpack plans")))}},{key:"renderPlanPeriodToggle",value:function(){var e=this,t=this.state.period,n={monthly:xo("Monthly"),yearly:xo("Yearly")};return s.a.createElement("div",{className:"plan-grid-period"},s.a.createElement(tc,null,Object(It.map)(n,(function(n,r){return s.a.createElement(ec,{key:"plan-period-button-"+r,primary:r===t,onClick:e.handlePeriodChange(r),compact:!0},n)}))))}},{key:"renderSkeletonGrid",value:function(){return s.a.createElement("div",{className:"plan-grid-skeletons"},s.a.createElement("div",{className:"plan-grid-skeletons__plan is-placeholder"}),s.a.createElement("div",{className:"plan-grid-skeletons__plan is-placeholder"}),s.a.createElement("div",{className:"plan-grid-skeletons__plan is-placeholder"}))}},{key:"getCurrentPlanType",value:function(){return Yl(this.props.sitePlan.product_slug).replace(/^is-/,"").replace(/-plan$/,"")}},{key:"isUpgraded",value:function(){return!Object(It.includes)(["","free"],this.getCurrentPlanType())}},{key:"isCurrentPlanType",value:function(e){return this.getCurrentPlanType()===e}},{key:"getPlans",value:function(){if(this.featuredPlans)return this.featuredPlans;var e=Object(It.reduce)(this.props.plans,(function(e,t,n){if("free"===n)return e;var r=t.highlight;return t.features=Object(It.reduce)(t.features,(function(e,t){return Object(It.includes)(r,t.id)&&e.push(t),e}),[]),e[n]=t,e}),{});return this.featuredPlans=e,e}},{key:"renderPlanHeaders",value:function(){return Object(It.map)(this.getPlans(),(function(e,t){var n=Zs()("plan-features__table-item","is-header","has-border-top","is-".concat(t,"-plan"));return s.a.createElement("td",{key:"plan-header-"+t,className:n},s.a.createElement("header",{className:"plan-features__header"},s.a.createElement("h3",{className:"plan-features__header-title"},e.short_name),s.a.createElement("div",{className:"plan-features__description"},e.tagline)))}))}},{key:"renderPrices",value:function(){var e=this;return Object(It.map)(this.getPlans(),(function(t,n){var r=Zs()("plan-features__table-item","plan-price");return e.isCurrentPlanType(n)?s.a.createElement("td",{key:"price-"+n,className:r},t.strings.current):e.shouldRenderButton(n)?s.a.createElement("td",{key:"price-"+n,className:r},s.a.createElement("span",{className:"plan-price__yearly",dangerouslySetInnerHTML:{__html:t.price[e.state.period].per}})):s.a.createElement("td",{key:"price-"+n,className:r})}))}},{key:"shouldRenderButton",value:function(e){var t=Object.keys(this.props.plans),n=t.indexOf(this.getCurrentPlanType());return t.indexOf(e)>=n}},{key:"renderTopButtons",value:function(){var e=this;return Object(It.map)(this.getPlans(),(function(t,n){var r=e.props,i=r.siteRawUrl,a=r.plansUpgradeUrl,o=r.sitePlan,c=e.isCurrentPlanType(n),l=c?t.strings.manage:t.strings.upgrade,u=n;return"monthly"===e.state.period&&(u+="-monthly"),s.a.createElement(qh,{key:n,buttonText:l,planType:n,isActivePlan:c,isPrimary:e.isPrimary(n,t),shouldRenderButton:e.shouldRenderButton(n),siteRawUrl:i,plansUpgradeUrl:a(u),productSlug:o.product_slug})}))}},{key:"isPrimary",value:function(e,t){if(this.isUpgraded()){var n=this.getCurrentPlanType(),r=Object.keys(this.getPlans()),i=r.indexOf(n);return r.indexOf(e)===r.indexOf(r[i+1])}return t.is_featured}},{key:"renderBottomButtons",value:function(){var e=this;return Object(It.map)(this.getPlans(),(function(t,n){return s.a.createElement("td",{key:"bottom-"+n,className:"plan-features__table-item is-bottom-buttons has-border-bottom"},s.a.createElement("a",{href:e.props.plansLearnMoreUpgradeUrl,onClick:e.handleSeeFeaturesClick(n)},t.strings.see_all))}))}},{key:"getLongestFeaturesList",value:function(){return Object(It.reduce)(this.getPlans(),(function(e,t){var n=Object.keys(t.features);return n.length>e.length?n:e}),[])}},{key:"renderPlanFeatureRows",value:function(){var e=this;return Object(It.map)(this.getLongestFeaturesList(),(function(t,n){return s.a.createElement("tr",{key:"row-"+n,className:"plan-features-row"},e.renderPlanFeatureColumns(n))}))}},{key:"renderPlanFeatureColumns",value:function(e){var t=this;return Object(It.map)(this.getPlans(),(function(n,r){var i=r+"-row-"+e,a=n.features[e],o=!t.props.showBackups&&a&&Object(It.includes)(["backups","malware-scan","real-time-backups"],a.id);return s.a.createElement(Kh,{key:r,itemKey:i,feature:a,hideBackupFeature:o,siteRawUrl:t.props.siteRawUrl,userId:t.props.userId,productSlug:t.props.sitePlan.product_slug})}))}}]),t}(s.a.Component),Wh=le((function(e){var t=function(e){return Object(It.get)(e.jetpack.initialState.userData.currentUser,"id")}(e);return{plans:js(e),siteRawUrl:si(e),sitePlan:Ss(e),userId:t,showBackups:Ii(e),plansUpgradeUrl:function(n){return Fi(e,"plans-".concat(n),t)},plansLearnMoreUpgradeUrl:Fi(e,"plans-learn-more",t),isFetchingData:Es(e)||ns(e)}}),null)(Jh),Gh=function(e){var t=e.intro,n=e.label,r=e.onClick,i=e.primary,a=e.href;return s.a.createElement("div",{className:"product-card__action"},t&&s.a.createElement("h4",{className:"product-card__action-intro"},t),s.a.createElement(ec,{className:"product-card__action-button",href:a,onClick:r,primary:i,target:"_blank",rel:"noopener noreferrer"},n))};Gh.propTypes={intro:u.a.oneOfType([u.a.string,u.a.node,u.a.element]),label:u.a.string.isRequired,onClick:u.a.func,href:u.a.string,primary:u.a.bool},Gh.defaultProps={href:null,onClick:It.noop,primary:!0};var Yh=Gh,$h=n(64),Xh=n.n($h),Qh=n(180);function Zh(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var i=isFinite(+e)?+e:0,a=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,s=void 0===n?".":n,c="";return(c=(a?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(i,a):""+Math.round(i)).split("."))[0].length>3&&(c[0]=c[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(c[1]||"").length<a&&(c[1]=c[1]||"",c[1]+=new Array(a-c[1].length+1).join("0")),c.join(s)}var ef=n.n(Qh)()("i18n-calypso"),tf=[function(e){return e}],nf={};function rf(){lf.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function af(e){return Array.prototype.slice.call(e)}function of(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&rf("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",af(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&rf("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",af(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function sf(e,t){var n="gettext";t.context&&(n="p"+n),"string"==typeof t.original&&"string"==typeof t.plural&&(n="n"+n);var r=function(e,t){switch(e){case"gettext":return[t.original];case"ngettext":return[t.original,t.plural,t.count];case"npgettext":return[t.context,t.original,t.plural,t.count];case"pgettext":return[t.context,t.original]}return[]}(n,t);return e[n].apply(e,r)}function cf(e,t){for(var n=tf.length-1;n>=0;n--){var r=tf[n](Object.assign({},t));if(e.state.locale[r.original])return sf(e.state.jed,r)}return null}function lf(){if(!(this instanceof lf))return new lf;this.defaultLocaleSlug="en",this.state={numberFormatSettings:{},jed:void 0,locale:void 0,localeSlug:void 0,translations:Ya()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new eo.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}lf.throwErrors=!1,lf.prototype.moment=Xa.a,lf.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},lf.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},lf.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},lf.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",i=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return Zh(e,n,r,i)},lf.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},lf.prototype.setLocale=function(e){if(e&&e[""]&&e[""]["key-hash"]){var t=e[""]["key-hash"],n=function(e,t){var n=!1===t?"":String(t);if(void 0!==nf[n+e])return nf[n+e];var r=Za()().update(e).digest("hex");return nf[n+e]=t?r.substr(0,t):r},r=function(e){return function(t){return t.context?(t.original=n(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=n(t.original,e),t}};if("sha1"===t.substr(0,4))if(4===t.length)tf.push(r(!1));else{var i=t.substr(5).indexOf("-");if(i<0){var a=Number(t.substr(5));tf.push(r(a))}else for(var o=Number(t.substr(5,i)),s=Number(t.substr(6+i)),c=o;c<=s;c++)tf.push(r(c))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.jed=new Wa.a({locale_data:{messages:this.state.locale}}),Xa.a.locale(this.state.localeSlug),this.state.numberFormatSettings.decimal_point=sf(this.state.jed,of(["number_format_decimals"])),this.state.numberFormatSettings.thousands_sep=sf(this.state.jed,of(["number_format_thousands_sep"])),"number_format_decimals"===this.state.numberFormatSettings.decimal_point&&(this.state.numberFormatSettings.decimal_point="."),"number_format_thousands_sep"===this.state.numberFormatSettings.thousands_sep&&(this.state.numberFormatSettings.thousands_sep=","),this.state.translations.clear(),this.stateObserver.emit("change")},lf.prototype.getLocale=function(){return this.state.locale},lf.prototype.getLocaleSlug=function(){return this.state.localeSlug},lf.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.jed.options.locale_data.messages[t]=e[t]);this.state.translations.clear(),this.stateObserver.emit("change")},lf.prototype.hasTranslation=function(){return!!cf(this,of(arguments))},lf.prototype.translate=function(){var e,t=of(arguments),n=!t.components;if(n){try{e=JSON.stringify(t)}catch(s){n=!1}if(e){var r=this.state.translations.get(e);if(r)return r}}var i=cf(this,t);if(i||(i=sf(this.state.jed,t)),t.args){var a=Array.isArray(t.args)?t.args.slice(0):[t.args];a.unshift(i);try{i=Wa.a.sprintf.apply(Wa.a,a)}catch(c){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof c?window.console[o](c):window.console[o]("i18n sprintf error:",a)}}return t.components&&(i=Ka()({mixedString:i,components:t.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(e){i=e(i,t)})),n&&this.state.translations.set(e,i),i},lf.prototype.reRenderTranslations=function(){ef("Re-rendering all translations due to external request"),this.state.translations.clear(),this.stateObserver.emit("change")},lf.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},lf.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)};var uf=new lf,pf=(uf.moment,uf.numberFormat.bind(uf)),df=(uf.translate.bind(uf),uf.configure.bind(uf),uf.setLocale.bind(uf),uf.getLocale.bind(uf),uf.getLocaleSlug.bind(uf),uf.addTranslations.bind(uf),uf.reRenderTranslations.bind(uf),uf.registerComponentUpdateHook.bind(uf),uf.registerTranslateHook.bind(uf),uf.state,uf.stateObserver,uf.on.bind(uf),uf.off.bind(uf),uf.emit.bind(uf),function(e){var t={moment:e.moment,numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)}}(uf),function(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}}(uf),{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 hf(e){return df[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}function ff(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=hf(t);if(!r||isNaN(e))return null;var i=Xh()({},r,n),a=i.decimal,o=i.grouping,s=i.precision,c=i.symbol,l=e<0?"-":"",u=Math.abs(e),p=Math.floor(u),d=pf(p,{decimals:0,thousandsSep:o,decPoint:a}),h=s>0?pf(u-p,{decimals:s,thousandsSep:o,decPoint:a}).slice(1):"";return{sign:l,symbol:c,integer:d,fraction:h}}n(373);var mf=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getPriceRange",value:function(){var e,t=this.props,n=t.currencyCode,r=t.rawPrice;if(Array.isArray(r)){var i=r.filter((function(e){return e>=0}));e=[Math.min.apply(Math,Vt()(i)),Math.max.apply(Math,Vt()(i))]}else e=[r];return e.map((function(e){return{price:ff(e,n),raw:e}}))}},{key:"renderPrice",value:function(e){return s.a.createElement(s.a.Fragment,null,s.a.createElement("span",{className:"plan-price__integer"},e.price.integer),s.a.createElement("sup",{className:"plan-price__fraction"},e.raw-e.price.integer>0&&e.price.fraction))}},{key:"renderContent",value:function(){var e=this.getPriceRange(),t=this.renderPrice(e[0]),n=e[1]&&this.renderPrice(e[1]);return s.a.createElement(s.a.Fragment,null,s.a.createElement("sup",{className:"plan-price__currency-symbol"},e[0].price.symbol),n?xo("{{smallerPrice/}}-{{higherPrice/}}",{components:{smallerPrice:t,higherPrice:n},comment:"The price range for a particular product"}):t)}},{key:"render",value:function(){var e=this.props,t=e.className,n=e.discounted,r=e.inline,i=e.original;if(void 0===e.rawPrice)return null;var a=r?"span":"div",o=Zs()("plan-price",t,{"is-discounted":n,"is-inline":r,"is-original":i});return s.a.createElement(a,{className:o},this.renderContent())}}]),t}(o.Component),gf=mf;mf.propTypes={className:u.a.string,currencyCode:u.a.string,discounted:u.a.bool,inline:u.a.bool,original:u.a.bool,rawPrice:u.a.oneOfType([u.a.number,u.a.arrayOf(u.a.number)])},mf.defaultProps={className:"",currencyCode:"USD",discounted:!1,original:!1};var vf=function(e){var t=e.billingTimeFrame,n=e.currencyCode,r=e.discountedPrice,i=e.fullPrice,a=!!r,o=Zs()("product-card__price-group",{"is-discounted":a});return s.a.createElement("div",{className:o},s.a.createElement(gf,{currencyCode:n,rawPrice:i,original:a}),a&&s.a.createElement(gf,{currencyCode:n,rawPrice:r,discounted:!0}),s.a.createElement("div",{className:"product-card__billing-timeframe"},t))};vf.propTypes={billingTimeFrame:u.a.string,currencyCode:u.a.string,discountedPrice:u.a.oneOfType([u.a.number,u.a.arrayOf(u.a.number)]),fullPrice:u.a.oneOfType([u.a.number,u.a.arrayOf(u.a.number)])};var bf=vf,yf=(n(375),function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"getManagePurchaseLink",value:function(e,t){return"https://wordpress.com/me/purchases/".concat(e,"/").concat(t)}},{key:"handleManagePurchase",value:function(e){return function(){uc.tracks.recordJetpackClick({target:"product-card-manage-purchase",feature:e})}}},{key:"render",value:function(){var e=this.props,t=e.billingTimeFrame,n=e.children,r=e.currencyCode,i=e.description,a=e.discountedPrice,o=e.fullPrice,c=e.isCurrent,l=e.isPlaceholder,u=e.purchase,p=e.subtitle,d=e.title,h=e.translate,f=Zs()("product-card",{"is-placeholder":l,"is-purchased":!!u});return s.a.createElement(al,{className:f},s.a.createElement("div",{className:"product-card__header"},d&&s.a.createElement("div",{className:"product-card__header-primary"},u&&s.a.createElement(Lc,{icon:"checkmark",size:18}),s.a.createElement("h3",{className:"product-card__title"},d)),s.a.createElement("div",{className:"product-card__header-secondary"},p&&s.a.createElement("div",{className:"product-card__subtitle"},p),!u&&s.a.createElement(bf,{billingTimeFrame:t,currencyCode:r,discountedPrice:a,fullPrice:o}))),s.a.createElement("div",{className:"product-card__description"},i&&s.a.createElement("p",null,i),u&&c&&s.a.createElement(Yh,{onClick:this.handleManagePurchase(u.product_slug),href:this.getManagePurchaseLink(u.domain,u.ID),label:h("Manage Subscription"),primary:!1})),n)}}]),t}(o.Component));na()(yf,"propTypes",{billingTimeFrame:u.a.string,currencyCode:u.a.string,description:u.a.oneOfType([u.a.string,u.a.element,u.a.node]),discountedPrice:u.a.oneOfType([u.a.number,u.a.arrayOf(u.a.number)]),fullPrice:u.a.oneOfType([u.a.number,u.a.arrayOf(u.a.number)]),isCurrent:u.a.bool,isPlaceholder:u.a.bool,purchase:u.a.object,subtitle:u.a.oneOfType([u.a.string,u.a.element,u.a.node]),title:u.a.oneOfType([u.a.string,u.a.element,u.a.node])});var wf=Ao(yf);n(376);function _f(e){var t=e.isFetching,n=e.products,r=e.upgradeLinks,i=e.selectedBackupType,a=e.setSelectedBackupType;return s.a.createElement("div",{className:"plans-section__single-product"},t?s.a.createElement("div",{className:"plans-section__single-product-skeleton is-placeholder"}):s.a.createElement(Cf,{products:n,upgradeLinks:r,selectedBackupType:i,setSelectedBackupType:a}))}function kf(e){return"yearly"===e?xo("per year",{comment:"Duration of product subscription timeframe."}):"monthly"===e?xo("per month",{comment:"Duration of product subscription timeframe."}):""}function Ef(){return s.a.createElement("div",{className:"single-product-backup__promo"},s.a.createElement("div",{className:"single-product-backup__promo-star"},xo("Up to %(percent)d%% off!",{args:{percent:70}})),s.a.createElement("h4",{className:"single-product-backup__promo-header"},xo("Hurry, these are {{s}}Limited time introductory prices!{{/s}}",{components:{s:s.a.createElement("strong",null)}})))}function Cf(e){var t=e.products,n=e.upgradeLinks,r=e.selectedBackupType,i=e.setSelectedBackupType,a=Object(It.get)(t,["jetpack_backup_daily","currency_code"],""),o=Object(It.get)(t,["jetpack_backup_daily","cost"],""),c=Object(It.get)(t,["jetpack_backup_daily_monthly","cost"],""),l=""===c?"":12*c,u=Object(It.get)(t,["jetpack_backup_realtime","cost"],""),p=Object(It.get)(t,["jetpack_backup_realtime_monthly","cost"],""),d=""===p?"":12*p,h=[{type:"daily",name:xo("Daily Backups"),link:n.daily,discountedPrice:o,fullPrice:l,potentialSavings:l&&o?l-o:null},{type:"real-time",name:xo("Real-Time Backups"),link:n["real-time"],discountedPrice:u,fullPrice:d,potentialSavings:d&&u?d-u:null}];return s.a.createElement("div",{className:"single-product-backup__accented-card dops-card"},s.a.createElement("div",{className:"single-product-backup__accented-card-header"},s.a.createElement("h3",{className:"single-product-backup__header-title"},xo("Jetpack Backup"))),s.a.createElement("div",{className:"single-product-backup__accented-card-body"},s.a.createElement(Of,{billingTimeFrame:"yearly",currencyCode:a,backupOptions:h,selectedBackupType:r,setSelectedBackupType:i,upgradeLinks:n})))}function Sf(e){var t=e.billingTimeFrame,n=e.currencyCode,r=e.discountedPrice,i=e.fullPrice,a=s.a.createElement(gf,{currencyCode:n,rawPrice:i});r&&(a=s.a.createElement(s.a.Fragment,null,s.a.createElement(gf,{currencyCode:n,rawPrice:i,original:!0}),s.a.createElement(gf,{currencyCode:n,rawPrice:r,discounted:!0})));var o=kf(t);return s.a.createElement("div",{className:"single-product-backup__price-group"},a,s.a.createElement("div",{className:"single-product-backup__price-group-billing-timeframe"},o))}function Mf(e){var t=e.checked,n=e.billingTimeFrame,r=e.currencyCode,i=e.discountedPrice,a=e.fullPrice,o=e.onChange,c=e.planName,l=e.radioValue;return s.a.createElement("label",{className:"plan-radio-button"},s.a.createElement("input",{type:"radio",className:"plan-radio-button__input",value:l,checked:t,onChange:o}),s.a.createElement("div",{className:"plan-radio-button__label"},s.a.createElement("span",{className:"plan-radio-button__title"},c),s.a.createElement(Sf,{billingTimeFrame:n,currencyCode:r,discountedPrice:i,fullPrice:a})))}function xf(e){var t=e.selectedBackup,n=e.currencyCode;if(!t||!t.potentialSavings)return null;var r=s.a.createElement(gf,{className:"single-product-backup__annual-savings",rawPrice:t.potentialSavings,currencyCode:n,inline:!0});return s.a.createElement("p",{className:"single-product-backup__savings"},xo("You are saving {{savings /}} by paying yearly",{components:{savings:r}}))}function Af(e){var t=e.selectedUpgrade,n=e.billingTimeFrame,r=e.currencyCode,i=e.onClickHandler;if(!t)return null;var a=t.link,o=t.name,c=t.fullPrice,l=t.discountedPrice,u=t.type,p=kf(n),d=s.a.createElement(gf,{currencyCode:r,rawPrice:l||c,inline:!0});return s.a.createElement("div",{className:"single-product-backup__upgrade-button-container"},s.a.createElement(ec,{href:a,onClick:i(u),primary:!0},xo("Upgrade to %(name)s for {{price/}} %(billingTimeFrame)s",{components:{price:d},args:{name:o,billingTimeFrame:p},comment:"Button to purchase product upgrade. %(name)s is the product name, {{price /}} can be a range of prices, and %(billingTimeFrame)s is the billing period for the product upgrade."})))}var jf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"handleSelectedBackupTypeChange",(function(e){n.props.setSelectedBackupType(e.target.value)})),na()(wo()(n),"handleUpgradeButtonClick",(function(e){return function(){uc.tracks.recordJetpackClick({target:"upgrade-".concat(e),type:"upgrade",product:e,page:n.props.routes[0]&&n.props.routes[0].name})}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this,t=this.props,n=t.backupOptions,r=t.billingTimeFrame,i=t.currencyCode,a=t.selectedBackupType,o=n.find((function(e){return e.type===a}));return s.a.createElement(s.a.Fragment,null,s.a.createElement("p",null,xo("Always-on backups ensure you never lose your site.")),s.a.createElement(Ef,null),s.a.createElement("h4",{className:"single-product-backup__options-header"},xo("Select a backup option:")),s.a.createElement("div",{className:"single-product-backup__radio-buttons-container"},n.map((function(t){return s.a.createElement(Mf,{key:t.type,billingTimeFrame:r,checked:t.type===a,currencyCode:i,fullPrice:t.fullPrice,discountedPrice:t.discountedPrice,onChange:e.handleSelectedBackupTypeChange,radioValue:t.type,planName:t.name})}))),s.a.createElement(xf,{selectedBackup:o,billingTimeFrame:r,currencyCode:i}),s.a.createElement(Af,{selectedUpgrade:o,billingTimeFrame:r,currencyCode:i,onClickHandler:this.handleUpgradeButtonClick}))}}]),t}(s.a.Component);na()(jf,"propTypes",{backupOptions:u.a.array,billingTimeFrame:u.a.string,currencyCode:u.a.string,setSelectedBackupType:u.a.func,selectedBackupType:u.a.string});var Of=vt(jf),Nf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{selectedBackupType:"real-time"}),na()(wo()(n),"handleLandingPageLinkClick",(function(){uc.tracks.recordJetpackClick({target:"landing-page-link",feature:"single-product-backup",extra:n.state.selectedBackupType})})),na()(wo()(n),"setSelectedBackupType",(function(e){n.setState({selectedBackupType:e})})),n}return ma()(t,e),bo()(t,[{key:"getProductCardPropsForPurchase",value:function(e){var t=this.props.siteRawlUrl,n=Yl(e.product_slug),r=xo("Jetpack Backup {{em}}Daily{{/em}}",{components:{em:s.a.createElement("em",null)}}),i=xo("Jetpack Backup {{em}}Real-Time{{/em}}",{components:{em:s.a.createElement("em",null)}}),a=s.a.createElement(Dh,{expiryDate:e.expiry_date,purchaseDate:e.subscribed_date,isRefundable:e.is_refundable}),o=xo("Always-on backups ensure you never lose your site."),c=xo("Always-on backups ensure you never lose your site. Your changes are saved as you edit and you have unlimited backup archives."),l=s.a.createElement("a",{href:"https://wordpress.com/plans/my-plan/".concat(t),target:"_blank",rel:"noopener noreferrer"}),u={purchase:e,isCurrent:!0};switch(n){case"is-daily-backup-plan":return go()({title:r,subtitle:a,description:o},u);case"is-realtime-backup-plan":return go()({title:i,subtitle:a,description:c},u);case"is-personal-plan":return go()({title:r,subtitle:xo("Included in your {{planLink}}Personal Plan{{/planLink}}",{components:{planLink:l}}),description:o},u);case"is-premium-plan":return go()({title:r,subtitle:xo("Included in your {{planLink}}Premium Plan{{/planLink}}",{components:{planLink:l}}),description:o},u);case"is-business-plan":return go()({title:i,subtitle:xo("Included in your {{planLink}}Professional Plan{{/planLink}}",{components:{planLink:l}}),description:c},u)}}},{key:"findPrioritizedPurchase",value:function(){for(var e=this.props.activeSitePurchases,t=function(){var t=r[n],i=e.find((function(e){return Yl(e.product_slug)===t}));if(void 0!==i)return{v:i}},n=0,r=["is-business-plan","is-realtime-backup-plan","is-premium-plan","is-personal-plan","is-daily-backup-plan"];n<r.length;n++){var i=t();if("object"==typeof i)return i.v}return!1}},{key:"renderTitleSection",value:function(){var e=this.props,t=e.backupInfoUrl,n=e.isFetchingData,r=this.findPrioritizedPurchase();return s.a.createElement(o.Fragment,null,s.a.createElement("h1",{className:"plans-section__header"},xo("Solutions")),s.a.createElement("h2",{className:"plans-section__subheader"},xo("Just looking for backups? We've got you covered."),!n&&!r&&s.a.createElement(s.a.Fragment,null,s.a.createElement("br",null),s.a.createElement(ku,{target:"_blank",href:t,icon:!0,iconSize:12,onClick:this.handleLandingPageLinkClick},xo("Which backup option is best for me?")))))}},{key:"renderSingleProductContent",value:function(){var e=this.props,t=e.dailyBackupUpgradeUrl,n=e.isFetchingData,r=e.multisite,i=e.products,a=e.realtimeBackupUpgradeUrl,o=e.sitePlan,c=this.state.selectedBackupType;if(r)return null;var l=this.findPrioritizedPurchase();if(l){var u=this.getProductCardPropsForPurchase(l);return s.a.createElement("div",{className:"plans-section__single-product"},s.a.createElement(wf,u))}var p=Object(It.get)(o,"product_slug");if(!n&&"jetpack_free"!==p)return null;var d={daily:t,"real-time":a};return s.a.createElement(_f,{isFetching:n,products:i,upgradeLinks:d,selectedBackupType:c,setSelectedBackupType:this.setSelectedBackupType})}},{key:"render",value:function(){return s.a.createElement(o.Fragment,null,this.renderTitleSection(),this.renderSingleProductContent())}}]),t}(o.Component),Tf=le((function(e){return{activeSitePurchases:Ns(e),dailyBackupUpgradeUrl:Fi(e,"jetpack-backup-daily"),multisite:Di(e),products:rs(e),realtimeBackupUpgradeUrl:Fi(e,"jetpack-backup-realtime"),sitePlan:Ss(e),siteRawlUrl:si(e),isFetchingData:Es(e)||ns(e)||!js(e),backupInfoUrl:Fi(e,"aag-backups")}}))(Nf),Pf=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement(o.Fragment,null,s.a.createElement(Hh,null),s.a.createElement(ul,null),s.a.createElement(Wh,null),s.a.createElement(Tf,null))}}]),t}(s.a.Component),If=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"trackStartWithFreeClick",value:function(){uc.tracks.recordJetpackClick({target:"free-plan",feature:"plans-prompt"})}},{key:"renderBanner",value:function(){return s.a.createElement("div",{className:"plans-prompt__banner"},s.a.createElement(gc,{className:"plans-prompt__logo"}),s.a.createElement("h2",{className:"plans-prompt__heading"},xo("Explore our Jetpack plans")),s.a.createElement("p",{className:"plans-prompt__intro"},xo("Now that you're set up, pick a plan that fits your needs.")))}},{key:"renderFooter",value:function(){return this.props.plans?s.a.createElement("div",{className:"plans-prompt__footer"},s.a.createElement(ec,{href:this.props.siteAdminUrl+"admin.php?page=jetpack",onClick:this.trackStartWithFreeClick},xo("Start with free"),s.a.createElement(Lc,{icon:"arrow-right",size:18}))):null}},{key:"render",value:function(){return s.a.createElement("div",{className:"plans-prompt"},this.renderBanner(),s.a.createElement(Pf,null),this.renderFooter())}}]),t}(s.a.Component),Df=le((function(e){return{plans:js(e)}}))(If),Rf={currentUser:{isMaster:!0,permissions:{admin_page:!0,connect:!0,disconnect:!0,edit_posts:!0,manage_modules:!0,manage_options:!0,manage_plugins:!0}}},Uf={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!0,disconnect:!0,edit_posts:!0,manage_modules:!0,manage_options:!0,manage_plugins:!0}}},Ff={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!1,disconnect:!1,edit_posts:!0,manage_modules:!1,manage_options:!1,manage_plugins:!1}}},Lf={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!1,disconnect:!1,edit_posts:!1,manage_modules:!1,manage_options:!1,manage_plugins:!1}}},zf={currentUser:{permissions:{view_stats:!0}}},Bf={currentUser:{permissions:{view_stats:!1}}},Vf={currentUser:{isConnected:!0}},Hf={currentUser:{isConnected:!1}},qf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"onPlanChange",(function(e){n.props.switchPlanPreview(e.target.value)})),na()(wo()(n),"onPermissionsChange",(function(e){n.props.switchUserPermissions(e.target.value)})),na()(wo()(n),"onThreatsChange",(function(e){n.props.switchThreats(e.target.value)})),na()(wo()(n),"onRewindStatusChange",(function(e){n.props.switchRewindState(e.target.value)})),na()(wo()(n),"maybeShowStatsToggle",(function(){if(!n.props.isAdmin)return s.a.createElement("div",null,s.a.createElement("hr",null),s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"view_stats"},s.a.createElement("input",{type:"radio",id:"view_stats",value:"view_stats",name:"view_stats",checked:n.props.canViewStats,onChange:n.onPermissionsChange}),"Can view stats")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"hide_stats"},s.a.createElement("input",{type:"radio",id:"hide_stats",value:"hide_stats",name:"hide_stats",checked:!n.props.canViewStats,onChange:n.onPermissionsChange}),"Can not view stats"))))})),na()(wo()(n),"maybeShowIsLinkedToggle",(function(){if(!n.props.isMaster)return s.a.createElement("div",null,s.a.createElement("hr",null),s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"is_linked"},s.a.createElement("input",{type:"radio",id:"is_linked",value:"is_linked",name:"is_linked",checked:n.props.isUserLinked,onChange:n.onPermissionsChange}),"Linked")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"is_unlinked"},s.a.createElement("input",{type:"radio",id:"is_unlinked",value:"is_unlinked",name:"is_unlinked",checked:!n.props.isUserLinked,onChange:n.onPermissionsChange}),"Unlinked"))))})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.canDisplayDevCard)return null;var e=Zs()(this.props.className,"jp-dev-card"),t=Yl(this.props.sitePlan.product_slug),n=Object(It.get)(this.props.rewindStatus,["state"],!1);return s.a.createElement(al,{compact:!0,className:e},s.a.createElement("a",{className:"jp-dev-card__close",role:"button",tabIndex:"0",onKeyDown:ru(this.props.disableDevCard),onClick:this.props.disableDevCard},"x"),s.a.createElement("div",{className:"jp-dev-card__heading"},"Dev Tools"),s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_free"},s.a.createElement("input",{type:"radio",id:"jetpack_free",value:"jetpack_free",name:"jetpack_free",checked:"is-free-plan"===t,onChange:this.onPlanChange}),"Free")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_personal"},s.a.createElement("input",{type:"radio",id:"jetpack_personal",value:"jetpack_personal",name:"jetpack_personal",checked:"is-personal-plan"===t,onChange:this.onPlanChange}),"Personal")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_premium"},s.a.createElement("input",{type:"radio",id:"jetpack_premium",value:"jetpack_premium",name:"jetpack_premium",checked:"is-premium-plan"===t,onChange:this.onPlanChange}),"Premium")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_business"},s.a.createElement("input",{type:"radio",id:"jetpack_business",value:"jetpack_business",name:"jetpack_business",checked:"is-business-plan"===t,onChange:this.onPlanChange}),"Pro")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_backup_daily"},s.a.createElement("input",{type:"radio",id:"jetpack_backup_daily",value:"jetpack_backup_daily",name:"jetpack_backup_daily",checked:"is-daily-backup-plan"===t,onChange:this.onPlanChange}),"Jetpack Backup Daily")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"jetpack_backup_realtime"},s.a.createElement("input",{type:"radio",id:"jetpack_backup_realtime",value:"jetpack_backup_realtime",name:"jetpack_backup_realtime",checked:"is-realtime-backup-plan"===t,onChange:this.onPlanChange}),"Jetpack Backup Reatime"))),s.a.createElement("hr",null),s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"admin_master"},s.a.createElement("input",{type:"radio",id:"admin_master",value:"admin_master",name:"admin_master",checked:this.props.isMaster,onChange:this.onPermissionsChange}),"Admin (master)")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"admin_secondary"},s.a.createElement("input",{type:"radio",id:"admin_secondary",value:"admin_secondary",name:"admin_secondary",checked:this.props.isAdmin&&!this.props.isMaster,onChange:this.onPermissionsChange}),"Admin (secondary)")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"editor"},s.a.createElement("input",{type:"radio",id:"editor",value:"editor",name:"editor",checked:this.props.canEditPosts&&!this.props.isAdmin,onChange:this.onPermissionsChange}),"Editor")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"subscriber"},s.a.createElement("input",{type:"radio",id:"subscriber",value:"subscriber",name:"subscriber",checked:!this.props.canEditPosts&&!this.props.isAdmin,onChange:this.onPermissionsChange}),"Subscriber"))),s.a.createElement("hr",null),s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"nothreats"},s.a.createElement("input",{type:"radio",id:"nothreats",value:0,name:"nothreats",checked:0===this.props.getVaultPressScanThreatCount(),onChange:this.onThreatsChange}),"No threats")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"threats"},s.a.createElement("input",{type:"radio",id:"threats",value:17,name:"threats",checked:0!==this.props.getVaultPressScanThreatCount(),onChange:this.onThreatsChange}),"Threats"))),s.a.createElement("hr",null),s.a.createElement("ul",null,s.a.createElement("strong",null,"Backup & Scan"),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"rewindUnavailable"},s.a.createElement("input",{type:"radio",id:"rewindUnavailable",value:"unavailable",name:"unavailable",checked:"unavailable"===n,onChange:this.onRewindStatusChange}),"Unavailable")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"rewindProvisioning"},s.a.createElement("input",{type:"radio",id:"rewindProvisioning",value:"provisioning",name:"provisioning",checked:"provisioning"===n,onChange:this.onRewindStatusChange}),"Provisioning")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"rewindAwatingCreds"},s.a.createElement("input",{type:"radio",id:"rewindAwatingCreds",value:"awaiting_credentials",name:"awaiting_credentials",checked:"awaiting_credentials"===n,onChange:this.onRewindStatusChange}),"Awaiting credentials")),s.a.createElement("li",null,s.a.createElement("label",{htmlFor:"rewindActive"},s.a.createElement("input",{type:"radio",id:"rewindActive",value:"active",name:"active",checked:"active"===n,onChange:this.onRewindStatusChange}),"Active"))),this.maybeShowStatsToggle(),this.maybeShowIsLinkedToggle())}}]),t}(s.a.Component);na()(qf,"displayName","DevCard");var Kf=le((function(e){return{isDevVersion:ri(e),sitePlan:Ss(e),canDisplayDevCard:Yo(e),isUserLinked:Bo(e),canViewStats:Ei(e),isMaster:bi(e),isAdmin:gi(e),canEditPosts:mi(e),getVaultPressScanThreatCount:function(){return Xi(e)},rewindStatus:ls(e)}}),(function(e){return{switchPlanPreview:function(t){return e(function(e){return function(t){t({type:ur,siteData:{plan:{product_slug:e}}})}}(t))},switchUserPermissions:function(t){return e(function(e){var t={};return function(n){switch(e){case"admin_master":t=Rf;break;case"admin_secondary":t=Uf;break;case"editor":case"contributor":case"author":t=Ff;break;case"subscriber":t=Lf;break;case"view_stats":t=zf;break;case"hide_stats":t=Bf;break;case"is_linked":t=Vf;break;case"is_unlinked":t=Hf}n({type:Ur,initialState:t})}}(t))},switchThreats:function(t){return e(function(e){return function(t){t({type:Fr,mockCount:e})}}(parseInt(t)))},disableDevCard:function(){return e((function(e){e({type:Rr})}))},switchRewindState:function(t){return e((n=t,function(e){e({type:Vr,rewindState:{state:n}})}));var n}}}))(qf),Jf=function e(){var t=document.getElementById("jp-navigation").offsetTop;window.scrollTo(0,window.scrollY-t/1.5),window.scrollY>t&&window.requestAnimationFrame(e)},Wf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"resetOnClick",(function(){window.confirm(xo("This will reset all Jetpack options, are you sure?"))&&n.props.resetOptions()})),na()(wo()(n),"trackVersionClick",(function(){uc.tracks.recordJetpackClick({target:"footer_link",link:"version"})})),na()(wo()(n),"trackTermsClick",(function(){uc.tracks.recordJetpackClick({target:"footer_link",link:"terms"})})),na()(wo()(n),"trackAboutClick",(function(){uc.tracks.recordJetpackClick({target:"footer_link",link:"about"})})),na()(wo()(n),"trackPrivacyClick",(function(){window.requestAnimationFrame(Jf),uc.tracks.recordJetpackClick({target:"footer_link",link:"privacy"})})),na()(wo()(n),"trackModulesClick",(function(){uc.tracks.recordJetpackClick({target:"footer_link",link:"modules"})})),na()(wo()(n),"trackDebugClick",(function(){uc.tracks.recordJetpackClick({target:"footer_link",link:"debug"})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e=this,t=Zs()(this.props.className,"jp-footer"),n=this.props.currentVersion,r=this.props.siteConnectionStatus?this.props.siteAdminUrl+"admin.php?page=jetpack_about":"https://jetpack.com",i=this.props.siteConnectionStatus?this.props.siteAdminUrl+"admin.php?page=jetpack#/privacy":"https://automattic.com/privacy/";return s.a.createElement("div",{className:t},s.a.createElement("div",{className:"jp-footer__a8c-attr-container"},s.a.createElement("a",{href:r},s.a.createElement("svg",{role:"img",className:"jp-footer__a8c-attr",x:"0",y:"0",viewBox:"0 0 935 38.2",enableBackground:"new 0 0 935 38.2","aria-labelledby":"a8c-svg-title"},s.a.createElement("title",{id:"a8c-svg-title"},xo("An Automattic Airline")),s.a.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"}),s.a.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"}),s.a.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"})))),s.a.createElement("ul",{className:"jp-footer__links"},s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:this.trackVersionClick,href:"https://jetpack.com",target:"_blank",rel:"noopener noreferrer",className:"jp-footer__link",title:xo("Jetpack version")},n?xo("Jetpack version %(version)s",{args:{version:n}}):"Jetpack")),s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:this.trackAboutClick,href:r,className:"jp-footer__link",title:xo("About Jetpack")},xo("About",{context:"Link to learn more about Jetpack."}))),s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:this.trackTermsClick,href:"https://wordpress.com/tos/",target:"_blank",rel:"noopener noreferrer",title:xo("WordPress.com Terms of Service"),className:"jp-footer__link"},xo("Terms",{context:"Shorthand for Terms of Service."}))),s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:this.trackPrivacyClick,href:i,rel:"noopener noreferrer",title:xo("Automattic's Privacy Policy"),className:"jp-footer__link"},xo("Privacy",{context:"Shorthand for Privacy Policy."}))),function(){if(e.props.siteConnectionStatus&&e.props.userCanManageOptions)return s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:e.trackModulesClick,href:e.props.siteAdminUrl+"admin.php?page=jetpack_modules",title:xo("Access the full list of Jetpack modules available on your site."),className:"jp-footer__link"},xo("Modules",{context:"Navigation item. Noun. Links to a list of modules for Jetpack."})))}(),function(){if(e.props.userCanManageOptions)return s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{onClick:e.trackDebugClick,href:e.props.siteAdminUrl+"admin.php?page=jetpack-debugger",title:xo("Test your site’s compatibility with Jetpack."),className:"jp-footer__link"},xo("Debug",{context:"Navigation item. Noun. Links to a debugger tool for Jetpack."})))}(),e.props.isDevVersion&&e.props.userCanManageOptions?s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{role:"button",tabIndex:"0",onKeyDown:ru(e.resetOnClick),onClick:e.resetOnClick,className:"jp-footer__link"},xo("Reset Options (dev only)",{context:"Navigation item."}))):"",e.props.isDevVersion?s.a.createElement("li",{className:"jp-footer__link-item"},s.a.createElement("a",{role:"button",tabIndex:"0",onKeyDown:ru(e.props.enableDevCard),onClick:e.props.enableDevCard,className:"jp-footer__link"},xo("Dev Tools",{context:"Navigation item."}))):"",function(){if(e.props.isDevVersion&&e.props.displayDevCard)return s.a.createElement(Kf,null)}()))}}]),t}(s.a.Component);na()(Wf,"displayName","Footer");var Gf=le((function(e){return{currentVersion:ii(e),displayDevCard:Yo(e),isDevVersion:ri(e),isInIdentityCrisis:qo(e),siteAdminUrl:ci(e),siteConnectionStatus:Po(e),userCanManageOptions:fi(e)}}),(function(e){return{resetOptions:function(){return e((t="options",function(e){return e({type:On}),e(Ba("is-info",xo("Resetting Jetpack options…"),{id:"reset-options"})),Ca.resetOptions(t).then((function(){e({type:Tn}),e(za("reset-options")),e(Ba("is-success",xo("Options reset."),{id:"reset-options",duration:2e3}))})).catch((function(t){e({type:Nn,error:t}),e(za("reset-options")),e(Ba("is-error",xo("Options failed to reset."),{id:"reset-options"}))}))}));var t},enableDevCard:function(){return e((function(e){e({type:Dr})}))}}}))(Wf),Yf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackBannerClick",(function(){uc.tracks.recordJetpackClick({target:"banner-click",feature:"support",page:n.props.path})})),na()(wo()(n),"trackAskQuestionClick",(function(){uc.tracks.recordJetpackClick({target:"support-card",button:"support-ask",page:n.props.path})})),na()(wo()(n),"trackSearchClick",(function(){uc.tracks.recordJetpackClick({target:"support-card",button:"support-search",page:n.props.path})})),n}return ma()(t,e),bo()(t,[{key:"shouldComponentUpdate",value:function(e){return e.sitePlan.product_slug!==this.props.sitePlan.product_slug}},{key:"render",value:function(){if(void 0===this.props.sitePlan.product_slug&&this.props.isFetchingSiteData)return s.a.createElement("div",null);var e=Zs()(this.props.className,"jp-support-card"),t=void 0===this.props.sitePlan.product_slug||"jetpack_free"===this.props.sitePlan.product_slug,n=this.props.isDevVersion?"https://jetpack.com/contact-support/beta-group":"https://jetpack.com/contact-support";return s.a.createElement("div",{className:e},s.a.createElement(al,{className:"jp-support-card__happiness"},s.a.createElement("div",{className:"jp-support-card__happiness-contact"},s.a.createElement("h3",{className:"jp-support-card__header"},xo("We're here to help")),s.a.createElement("p",{className:"jp-support-card__description"},xo(t?"Jetpack comes with free, basic support for all users.":"Your paid plan gives you access to prioritized Jetpack support.")),s.a.createElement("p",{className:"jp-support-card__description"},s.a.createElement(ec,{onClick:this.trackAskQuestionClick,href:this.props.isAtomicSite?"https://wordpress.com/help/contact/":n},xo("Ask a question")),s.a.createElement(ec,{onClick:this.trackSearchClick,href:this.props.isAtomicSite?"https://wordpress.com/help/":"https://jetpack.com/support/"},xo("Search our support site"))))),this.props.siteConnectionStatus&&t&&s.a.createElement(gu,{title:xo("Get a faster resolution to your support questions."),plan:"jetpack_personal",callToAction:xo("Upgrade"),onClick:this.trackBannerClick,href:this.props.supportUpgradeUrl}))}}]),t}(s.a.Component);na()(Yf,"displayName","SupportCard"),na()(Yf,"defaultProps",{className:"",siteConnectionStatus:!1}),Yf.propTypes={siteConnectionStatus:u.a.any.isRequired,className:u.a.string};var $f=le((function(e){return{sitePlan:Ss(e),siteConnectionStatus:Po(e),isFetchingSiteData:Es(e),isAtomicSite:Ti(e),isDevVersion:ri(e),supportUpgradeUrl:Fi(e,"support")}}))(Yf),Xf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackDownloadClick",(function(){uc.tracks.recordJetpackClick({target:"apps-card",button:"apps-download",page:n.props.path})})),na()(wo()(n),"dismissCard",(function(){n.props.dismissAppCard(),uc.tracks.recordJetpackClick({target:"apps-card",button:"dismiss",page:n.props.path})})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(!this.props.arePromotionsActive||this.props.isAppsCardDismissed)return null;var e=Zs()(this.props.className,"jp-apps-card");return s.a.createElement("div",{className:e},s.a.createElement(al,{className:"jp-apps-card__content"},this.props.userCanManageOptions&&s.a.createElement(ec,{borderless:!0,compact:!0,className:"jp-apps-card__dismiss",href:"javascript:void(0)",onClick:this.dismissCard},s.a.createElement("span",{className:"dashicons dashicons-no"})),s.a.createElement("div",{className:"jp-apps-card__top"},s.a.createElement("img",{src:yp+"get-apps.svg",alt:""})),s.a.createElement("div",{className:"jp-apps-card__description"},s.a.createElement("h3",{className:"jp-apps-card__header"},xo("Get WordPress Apps for every device")),s.a.createElement("p",{className:"jp-apps-card__paragraph"},xo("Manage all your sites from a single dashboard: publish content, track stats, moderate comments, and so much more from anywhere in the world.")),s.a.createElement(ec,{className:"is-primary",onClick:this.trackDownloadClick,href:"https://apps.wordpress.com/get?utm_source=jpdash&utm_medium=cta&utm_campaign=getappscard"},xo("Download the free apps")))))}}]),t}(s.a.Component);na()(Xf,"displayName","AppsCard"),Xf.propTypes={className:u.a.string};var Qf=le((function(e){return{isAppsCardDismissed:ys(e),arePromotionsActive:Ni(e),userCanManageOptions:fi(e)}}),(function(e){return{dismissAppCard:function(){return e(sl({dismiss_dash_app_card:!0}))}}}))(Xf),Zf=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"renderMainContent",(function(e){var t,r=s.a.createElement(Kc,n.props);switch(e){case"/dashboard":default:t=s.a.createElement(yh,n.props);break;case"/settings":case"/writing":case"/sharing":case"/performance":n.props.isSubscriber||(r=s.a.createElement(tl,n.props),t=s.a.createElement(td,{route:n.props.route,siteAdminUrl:n.props.siteAdminUrl,siteRawUrl:n.props.siteRawUrl,searchTerm:n.props.searchTerm,userCanManageModules:n.props.userCanManageModules}))}return window.wpNavMenuClassChange(),s.a.createElement("div",null,r,t)})),n}return ma()(t,e),bo()(t,[{key:"shouldComponentUpdate",value:function(e){return e.siteConnectionStatus!==this.props.siteConnectionStatus||e.route.path!==this.props.route.path}},{key:"render",value:function(){return this.renderMainContent(this.props.route.path)}}]),t}(s.a.Component);Zf.propTypes={userCanViewStats:u.a.bool.isRequired,isSubscriber:u.a.bool.isRequired,siteConnectionStatus:u.a.any.isRequired};var em=le((function(e){return{userCanViewStats:Ei(e),siteConnectionStatus:Po(e),isSubscriber:pi(e),isModuleActivated:function(t){return Ua(e,t)},userCanManageModules:hi(e)}}))(Zf),tm=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){var e={className:"dops-notice__action",href:this.props.href,onClick:this.props.onClick};return this.props.external&&(e.target="_blank"),s.a.createElement("a",e,s.a.createElement("span",null,this.props.children),this.props.icon&&s.a.createElement(Lc,{icon:this.props.icon,size:24}),this.props.external&&s.a.createElement(Lc,{icon:"external",size:24}))}}]),t}(s.a.Component);na()(tm,"displayName","NoticeAction"),na()(tm,"propTypes",{href:u.a.string,onClick:u.a.func,external:u.a.bool,icon:u.a.string}),na()(tm,"defaultProps",{external:!1});n(377);var nm=rc()("calypso:notices");nm("initializing notices");var rm={containerNames:{}};Cp(rm);var im=[],am={new:function(e,t,n){var r=t.overlay?"overlay-notices":"notices";rm.containerNames[r]=r,nm("creating notice",e,t,n),rm[r]=[];var i={type:t.type||"message",status:n,text:e,duration:t.duration,container:r,button:t.button,href:t.href,onClick:function(e){if("function"==typeof t.onClick){var n=am.removeNotice.bind(am,i);return t.onClick(e,n)}},onRemoveCallback:t.onRemoveCallback||function(){},arrow:t.arrow,isCompact:t.isCompact,showDismiss:t.showDismiss,persistent:t.persistent};return t.displayOnNextPage?im.push(i):rm[r].push(i),rm.emit("change"),i},success:function(e,t){return t=t||{},this.new(e,t,"is-success")},error:function(e,t){return t=t||{},this.new(e,t,"is-error")},info:function(e,t){return t=t||{},this.new(e,t,"is-info")},warning:function(e,t){return t=t||{},this.new(e,t,"is-warning")},list:rm,removeNotice:function(e){if(e.container){var t=rm[e.container],n=t.indexOf(e);-1!==n&&(t.splice(n,1),rm.emit("change"))}},clearNoticesOnNavigation:function(e,t){nm("clearNoticesOnNavigation");var n,r,i=!1,a=function(e){return e.persistent};for(r in rm.containerNames)n=rm[r].length,rm[r]=rm[r].filter(a),n!==rm[r].length&&(i=!0);im.length&&(im.forEach((function(e){rm[e.container]=[],rm[e.container].push(e)})),im=[]),i&&rm.emit("change"),t()},clearNotices:function(e){rm[e]=[],rm.emit("change")},getStatusHelper:function(e){return e.error?"is-error":e.warning?"is-warning":e.info?"is-info":e.success?"is-success":void 0}},om=am,sm=(n(378),rc()("calypso:notices")),cm=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"removeNotice",(function(e){e&&om.removeNotice(e)})),na()(wo()(n),"handleLocalNoticeDismissClick",(function(e){return function(){return n.removeNotice(e)}})),na()(wo()(n),"handleReduxNoticeDismissClick",(function(e){return function(){return n.props.removeNotice(e)}})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){sm("Mounting Global Notices React component.")}},{key:"render",value:function(){var e=(this.props.notices[this.props.id]||[]).map((function(e,t){return s.a.createElement(iu,{key:"notice-old-"+t,status:e.status,duration:e.duration||null,text:e.text,isCompact:e.isCompact,onDismissClick:this.handleLocalNoticeDismissClick(e),showDismiss:e.showDismiss},e.button&&s.a.createElement(tm,{href:e.href,onClick:e.onClick},e.button))}),this);return(e=e.concat(this.props.storeNotices.map((function(e,t){return s.a.createElement(iu,{key:"notice-"+t,status:e.status,duration:e.duration||null,showDismiss:e.showDismiss,onDismissClick:this.handleReduxNoticeDismissClick(e.noticeId),text:e.text})}),this))).length?s.a.createElement("div",{id:this.props.id,className:"global-notices"},e):null}}]),t}(s.a.Component);na()(cm,"displayName","NoticesList"),na()(cm,"propTypes",{id:u.a.string,notices:u.a.oneOfType([u.a.object,u.a.array])}),na()(cm,"defaultProps",{id:"overlay-notices",notices:Object.freeze([])});var lm=le((function(e){return{storeNotices:e.globalNotices}}),(function(e){return P({removeNotice:za},e)}))(cm),um=function(e){return function(t){t({type:Cr,notice:e})}},pm=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"maybeDismiss",(function(e){!n.props.showDismiss||e.keyCode&&27!==e.keyCode||n.props.dismiss(e)})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.maybeDismiss.bind(this),!1)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.maybeDismiss.bind(this),!1)}},{key:"clickForeground",value:function(e){e.stopPropagation()}},{key:"render",value:function(){var e=Zs()(this.props.className,"jp-dialogue");return s.a.createElement("div",{className:"jp-dialogue-full__container",role:"presentation",onClick:this.maybeDismiss,onKeyDown:ru(this.maybeDismiss)},s.a.createElement("img",{src:yp+"stars-full.svg",width:"60",height:"60",alt:xo("Stars"),className:"jp-dialogue-full__svg-stars"}),s.a.createElement("img",{src:yp+"jupiter.svg",width:"50",height:"100",alt:xo("Jupiter"),className:"jp-dialogue-full__svg-jupiter"}),s.a.createElement("div",{className:e,role:"presentation",onClick:this.clickForeground,onKeyDown:ru(this.clickForeground)},this.props.svg,s.a.createElement("h1",{className:"jp-dialogue__title"},this.props.title),s.a.createElement(al,null,this.props.showDismiss&&s.a.createElement(Lc,{icon:"cross-small",className:"jp-dialogue-full__dismiss",tabIndex:"0",onKeyDown:ru(this.props.dismiss),onClick:this.props.dismiss}),this.props.content),s.a.createElement("div",null,this.props.belowContent)))}}]),t}(o.Component);pm.propTypes={content:u.a.oneOfType([u.a.string,u.a.object]).isRequired,belowContent:u.a.oneOfType([u.a.string,u.a.object]).isRequired,svg:u.a.oneOfType([u.a.bool,u.a.object]),dismissOnClick:u.a.func,showDismiss:u.a.bool,title:u.a.string},pm.defaultProps={svg:!1,showDismiss:!0,dismiss:It.noop,content:"",belowContent:"",title:""};var dm=pm,hm=Wl(function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"trackLearnMoreClick",(function(){uc.tracks.recordJetpackClick({target:"warm_welcome_view_editor",version:n.props.version})})),na()(wo()(n),"dismissNotice",(function(){uc.tracks.recordJetpackClick({target:"warm_welcome_dismiss",version:n.props.version}),n.props.dismiss()})),n}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){uc.tracks.recordEvent("jetpack_warm_welcome_view",{version:this.props.version})}},{key:"renderInnerContent",value:function(){var e="".concat(this.props.adminUrl,"post-new.php");return s.a.createElement("div",{className:"jp-upgrade-notice__content"},s.a.createElement("p",null,xo("The features you rely on, adapted for the new WordPress editor."),s.a.createElement("br",null),xo("A new editor? Yes! {{a}}Learn more{{/a}}.",{components:{a:s.a.createElement(ku,{target:"_blank",rel:"noopener noreferrer",href:"https://wp.me/p1moTy-cee"})}})),s.a.createElement("h2",null,xo("Build your Jetpack site with blocks")),s.a.createElement("p",null,xo("Today, we are introducing the first wave of Jetpack-specific blocks built specifically for the new editor experience: Simple Payment button, Form, Map, and Markdown.")),s.a.createElement("p",null,s.a.createElement("img",{src:yp+"block-picker.png",width:"250",alt:xo("Jetpack is ready for the new WordPress editor")})),s.a.createElement("div",{className:"jp-dialogue__cta-container"},s.a.createElement(ec,{primary:!0,href:e,onClick:this.trackLearnMoreClick},xo("Take me to the new editor")),s.a.createElement(ec,{onClick:this.dismissNotice},xo("Okay, got it!"))))}},{key:"render",value:function(){return s.a.createElement(dm,{svg:s.a.createElement("img",{src:yp+"jetpack-gutenberg.svg",width:"250",alt:xo("Jetpack is ready for the new WordPress editor")}),title:xo("New in Jetpack!"),content:this.renderInnerContent(),dismiss:this.dismissNotice})}}]),t}(o.Component));dm.propTypes={adminUrl:u.a.string,dismiss:u.a.func,isUnavailableInDevMode:u.a.func,version:u.a.string};var fm=hm,mm=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"state",{showNotice:!0}),na()(wo()(n),"dismissJetpackStateNotice",(function(){n.setState({showNotice:!1})})),na()(wo()(n),"getErrorFromKey",(function(e){var t=n.props.jetpackStateNoticesErrorDescription||!1,r="";switch(e){case"cheatin":r=xo("Cheatin' uh?");break;case"access_denied":r=xo("{{p}}Would you mind telling us why you did not complete the Jetpack connection in this {{a}}2 question survey{{/a}}?{{/p}}{{p}}A Jetpack connection is required for our free security and traffic features to work.{{/p}}",{components:{a:s.a.createElement("a",{href:"https://jetpack.com/cancelled-connection/",target:"_blank",rel:"noopener noreferrer"}),p:s.a.createElement("p",null)}});break;case"wrong_state":r=xo("You need to stay logged in to your WordPress blog while you authorize Jetpack.");break;case"invalid_client":r=xo("We had an issue connecting Jetpack; deactivate then reactivate the Jetpack plugin, then connect again.");break;case"invalid_grant":r=xo('There was an issue connecting your Jetpack. Please click "Connect to WordPress.com" again.');break;case"site_inaccessible":case"site_requires_authorization":r=xo("Your website needs to be publicly accessible to use Jetpack: %(error_key)s",{args:{error_key:e}});break;case"site_blacklisted":r=xo("This site can't be connected to WordPress.com because it violates our {{a}}Terms of Service{{/a}}.",{components:{a:s.a.createElement("a",{href:"https://wordpress.com/tos",rel:"noopener noreferrer",target:"_blank"})}});break;case"not_public":r=xo("{{s}}Your Jetpack has a glitch.{{/s}} Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).",{components:{s:s.a.createElement("strong",null)}});break;case"wpcom_408":case"wpcom_5??":case"wpcom_bad_response":case"wpcom_outage":r=xo("WordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.");break;case"register_http_request_failed":case"token_http_request_failed":r=xo("Jetpack could not contact WordPress.com: %(error_key)s. This usually means something is incorrectly configured on your web host.",{args:{error_key:e}});break;case"no_role":case"no_cap":case"no_code":case"no_state":case"invalid_state":case"invalid_request":case"invalid_scope":case"unsupported_response_type":case"invalid_token":case"no_token":case"missing_secrets":case"home_missing":case"siteurl_missing":case"gmt_offset_missing":case"site_name_missing":case"secret_1_missing":case"secret_2_missing":case"site_lang_missing":case"home_malformed":case"siteurl_malformed":case"gmt_offset_malformed":case"timezone_string_malformed":case"site_name_malformed":case"secret_1_malformed":case"secret_2_malformed":case"site_lang_malformed":case"secrets_mismatch":case"verify_secret_1_missing":case"verify_secret_1_malformed":case"verify_secrets_missing":case"verify_secrets_mismatch":r=xo("{{s}}Your Jetpack has a glitch.{{/s}} We're sorry for the inconvenience. Please try again later, if the issue continues please contact support with this message: %(error_key)s",{components:{s:s.a.createElement("strong",null)},args:{error_key:e}});break;default:r=e}return t?s.a.createElement("div",null,r,s.a.createElement("br",null),t):s.a.createElement("div",null,r)})),na()(wo()(n),"getMessageFromKey",(function(e){var t,r="",i="is-info";switch(e){case"modules_activated":r=xo("Welcome to {{s}}Jetpack %(jetpack_version)s{{/s}}!",{args:{jetpack_version:n.props.currentVersion},components:{s:s.a.createElement("strong",null)}});break;case"already_authorized":r=xo("Your Jetpack is already connected."),i="is-success";break;case"authorized":r=xo("You're fueled up and ready to go, Jetpack is now active."),i="is-success";break;case"linked":r=xo("You're fueled up and ready to go."),i="is-success";break;case"protect_misconfigured_ip":r=xo("Your server is misconfigured, which means that Jetpack Protect is unable to effectively protect your site."),i="is-info",t=s.a.createElement(tm,{href:"https://jetpack.com/support/security/troubleshooting-protect/"},xo("Learn More"));break;default:r=e}return[r,i,t]})),na()(wo()(n),"renderContent",(function(){var e,t="is-info",r="",i=n.props.jetpackStateNoticesErrorCode,a=n.props.jetpackStateNoticesMessageCode;if(i||a){i&&(r=n.getErrorFromKey(i),"access_denied"!==i&&(t="is-error"));var o=n.props,c=o.currentVersion,l=o.gutenbergAvailable,u=c.match(/(6\.8).*/);if("modules_activated"===a&&u&&l)return s.a.createElement(fm,{adminUrl:n.props.adminUrl,dismiss:n.dismissJetpackStateNotice,isUnavailableInDevMode:n.props.isUnavailableInDevMode,version:u[1]});if(a){var p=n.getMessageFromKey(a);r=p[0],t=p[1],e=p[2]}return s.a.createElement(iu,{status:t,onDismissClick:n.dismissJetpackStateNotice,text:r},e)}})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",null,this.state.showNotice?this.renderContent():null)}}]),t}(s.a.Component);na()(mm,"displayName","JetpackStateNotices");var gm=le((function(e){return{currentVersion:ii(e),gutenbergAvailable:ui(e),jetpackStateNoticesErrorCode:Qo(e),jetpackStateNoticesMessageCode:Zo(e),jetpackStateNoticesErrorDescription:es(e),adminUrl:ci(e),isUnavailableInDevMode:function(t){return Jo(e,t)}}}))(mm),vm=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"dismissJetpackActionNotice",(function(){n.props.dismissJetpackActionNotice(n.props.jetpackNotices)})),na()(wo()(n),"renderNotices",(function(){n.props.jetpackNotices;return!1})),n}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",null,this.renderNotices())}}]),t}(s.a.Component);na()(vm,"displayName","DismissableNotices");var bm=le((function(e){return{jetpackNotices:Xo(e),isDismissed:function(t){return function(e,t){return Object(It.get)(e.jetpack.jetpackNotices.dismissed,[t],!1)}(e,t)}}}),(function(e){return P({dismissJetpackActionNotice:um},e)}))(vm);var ym=vt((function(e){var t=e.activeSitePurchases;if("/plans"!==e.router.location.pathname)return null;if(t.length<=1)return null;var n=t.map((function(e){var t=e.product_slug,n=Xs()(e,["product_slug"]);return go()({},n,{product_slug:t.replace("_monthly","")})})),r=n.find((function(e){return e.product_slug.includes("backup")}));if(!r)return null;var i=n.find((function(e){var t=e.product_slug;return"jetpack_personal"===t||"jetpack_premium"===t||"jetpack_business"===t}));if(!i)return null;if("jetpack_backup_realtime"===r.product_slug&&"jetpack_business"!==i.product_slug)return null;var a=xo("daily backups");return"jetpack_business"===i.product_slug&&(a=xo("real-time backups")),s.a.createElement(iu,{status:"is-warning",showDismiss:!1,text:xo("Your %(planName)s Plan includes %(featureName)s. Looks like you also purchased the %(productName)s product. Consider removing %(productName)s.",{args:{featureName:a,planName:i.product_name,productName:r.product_name}})})})),wm=le((function(e){return{activeSitePurchases:Ns(e)}}))(ym),_m=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return!(!this.props.isDevVersion||this.props.userIsSubscriber)&&s.a.createElement(iu,{showDismiss:!1,text:xo("You are currently running a development version of Jetpack.")},s.a.createElement(tm,{href:"https://jetpack.com/contact-support/beta-group"},xo("Submit Beta feedback")))}}]),t}(s.a.Component);na()(_m,"displayName","DevVersionNotice"),_m.propTypes={isDevVersion:u.a.bool.isRequired,userIsSubscriber:u.a.bool.isRequired};var km=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){if(this.props.isStaging&&!this.props.isInIdentityCrisis){var e={text:xo("You are running Jetpack on a staging server."),status:"is-basic",showDismiss:!1};return s.a.createElement(iu,e,s.a.createElement(tm,{href:"https://jetpack.com/support/staging-sites/"},xo("More Info")))}return!1}}]),t}(s.a.Component);na()(km,"displayName","StagingSiteNotice"),km.propTypes={isStaging:u.a.bool.isRequired,isInIdentityCrisis:u.a.bool.isRequired};var Em=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){if("dev"===this.props.siteConnectionStatus){var e=this.props.siteDevMode,t=[];e.filter&&t.push(xo("{{li}}The jetpack_development_mode filter is active{{/li}}",{components:{li:s.a.createElement("li",null)}})),e.constant&&t.push(xo("{{li}}The JETPACK_DEV_DEBUG constant is defined{{/li}}",{components:{li:s.a.createElement("li",null)}})),e.url&&t.push(xo("{{li}}Your site URL lacks a dot (e.g. http://localhost){{/li}}",{components:{li:s.a.createElement("li",null)}}));var n=xo("Currently in {{a}}Development Mode{{/a}} (some features are disabled) because: {{reasons/}}",{components:{a:s.a.createElement("a",{href:"https://jetpack.com/support/development-mode/",target:"_blank",rel:"noopener noreferrer"}),reasons:s.a.createElement("ul",null,t)}});return s.a.createElement(iu,{showDismiss:!1,status:"is-info",text:n},s.a.createElement(tm,{href:"https://jetpack.com/development-mode/"},xo("Learn More")))}return!1}}]),t}(s.a.Component);na()(Em,"displayName","DevModeNotice"),Em.propTypes={siteConnectionStatus:u.a.oneOfType([u.a.string,u.a.bool]).isRequired,siteDevMode:u.a.oneOfType([u.a.bool,u.a.object]).isRequired};var Cm=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return!(this.props.isLinked||!this.props.connectUrl||!this.props.siteConnected)&&s.a.createElement("div",{className:"jp-unlinked-notice"},s.a.createElement(gu,{title:xo("Jetpack is powering your site, but to access all of its features you’ll need to create an account."),callToAction:xo("Create account"),href:"".concat(this.props.connectUrl,"&from=unlinked-user-connect"),icon:"my-sites",className:"is-jetpack-info"}))}}]),t}(s.a.Component);na()(Cm,"displayName","UserUnlinked"),Cm.propTypes={connectUrl:u.a.string.isRequired,siteConnected:u.a.bool.isRequired};var Sm=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"render",value:function(){return s.a.createElement("div",{"aria-live":"polite"},s.a.createElement(lm,null),s.a.createElement(gm,null),s.a.createElement(_m,{isDevVersion:this.props.isDevVersion,userIsSubscriber:this.props.userIsSubscriber}),s.a.createElement(Em,{siteConnectionStatus:this.props.siteConnectionStatus,siteDevMode:this.props.siteDevMode}),s.a.createElement(km,{isStaging:this.props.isStaging,isInIdentityCrisis:this.props.isInIdentityCrisis}),s.a.createElement(wm,null),s.a.createElement(bm,null),s.a.createElement(Cm,{connectUrl:this.props.connectUrl,siteConnected:!0===this.props.siteConnectionStatus,isLinked:this.props.isLinked}),!this.props.siteConnectionStatus&&!this.props.userCanConnectSite&&s.a.createElement(iu,{showDismiss:!1,status:"is-warning",text:xo("This site is not connected to WordPress.com. Please ask the site administrator to connect.")}))}}]),t}(s.a.Component);na()(Sm,"displayName","JetpackNotices");var Mm=le((function(e){return{connectUrl:Ro(e),siteConnectionStatus:Po(e),userCanConnectSite:vi(e),userIsSubscriber:pi(e),isLinked:Bo(e),isDevVersion:ri(e),siteDevMode:Do(e),isStaging:Ho(e),isInIdentityCrisis:qo(e)}}))(Sm),xm=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"componentDidMount",value:function(){var e=jQuery(this.refs.adminNotices),t=jQuery(".vp-deactivated");t.length>0&&t.each((function(){var t=jQuery(this).addClass("dops-notice is-success is-dismissable").removeClass("wrap vp-notice notice notice-success");t.wrapInner('<span class="dops-notice__content">'),t.find(".dops-notice__content").before('<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></svg></span>').css("display","block"),t.find(".dops-notice__content").after('<span role="button" tabindex="0" class="dops-notice__dismiss"><svg class="gridicon gridicons-cross" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg><span class="screen-reader-text"/></span>'),t.find("h2").replaceWith((function(){return jQuery("<strong />",{html:this.innerHTML})})),t.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML})})),t.prependTo(e).css("display","flex")}));var n=jQuery(".vp-notice");n.length>0&&n.each((function(){var t=jQuery(this);if(0===t.find(".dops-notice__icon").length){var n=t.hasClass("vp-registered"),r=n?"is-success":"is-error";t.addClass("dops-notice vp-notice-jp "+r),t.wrapInner('<span class="dops-notice__content">');var i=n?'<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></svg></span>':'<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"/></svg></span>';t.find(".dops-notice__content").before(i),t.find(".vp-message").removeClass("vp-message").addClass("dops-notice__text"),t.find("h3").replaceWith((function(){return jQuery("<strong />",{html:this.innerHTML})})),t.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML})})),t.css("display","flex")}t.find('a[href*="admin.php?page=vaultpress"]').remove(),t.prependTo(e).removeClass("wrap vp-notice")}));var r=jQuery(".woocommerce-message");r.length>0&&r.each((function(){var t=jQuery(this).addClass("dops-notice").removeClass("updated wc-connect");t.find(".button-primary").addClass("dops-notice__action").removeClass("button-primary").detach().appendTo(t),t.find("p").not(".submit").wrapAll('<span class="dops-notice__text"/>');var n=t.find(".dops-notice__text");n.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML,class:"dops-notice__moved_text"})})),n.find("br").remove(),t.find(".button-secondary").removeClass("button-secondary").detach().appendTo(n),t.find(".submit").remove(),t.find(".woocommerce-message-close").removeClass("woocommerce-message-close notice-dismiss").addClass("dops-notice__action"),t.wrapInner('<span class="dops-notice__content">').prependTo(e).css("display","flex"),t.find(".dops-notice__action").not(":first").removeClass("dops-notice__action").detach().appendTo(t.find(".dops-notice__text")),t.find(".dops-notice__action:first").detach().appendTo(t)}));var i=jQuery(".notice");i.length>0&&i.each((function(){jQuery(this).hide()})),e.length>0&&jQuery(".dops-notice__dismiss").click((function(){jQuery(this).parent().closest("div").hide()}))}},{key:"render",value:function(){return s.a.createElement("div",{id:"jp-admin-notices",ref:"adminNotices","aria-live":"polite"})}}]),t}(s.a.Component),Am=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){var t=this.props.analytics.tracks.recordEvent;e.searchTerm!==this.props.searchTerm&&e.searchTerm.length>=3&&t("jetpack_wpa_search_term",{term:e.searchTerm})}},{key:"render",value:function(){return null}}]),t}(o.Component);Am.propTypes={analytics:u.a.object,searchTerm:u.a.string};var jm=le((function(e){return{searchTerm:ps(e)}}))(Am),Om=function(e){function t(){return la()(this,t),pa()(this,ha()(t).apply(this,arguments))}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.isFetchingRewindStatus||this.props.isDevMode||this.props.fetchRewind()}},{key:"render",value:function(){return null}}]),t}(o.Component);na()(Om,"propTypes",{isFetchingRewindStatus:u.a.bool,isDevMode:u.a.bool,sitePlan:u.a.object}),na()(Om,"defaultProps",{isFetchingRewindStatus:!1,isDevMode:!1,sitePlan:{}});var Nm=le((function(e){return{isFetchingRewindStatus:cs(e),isDevMode:Vo(e),sitePlan:Ss(e)}}),(function(e){return{fetchRewind:function(){return e((function(e){return e({type:Lr}),Ca.fetchRewindStatus().then((function(t){return e({type:zr,status:t}),t})).catch((function(t){e({type:Br,error:t})}))}))}}}))(Om),Tm=["#/","#/dashboard","#/my-plan","#/plans"],Pm=function(e){function t(){var e,n;la()(this,t);for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n=pa()(this,(e=ha()(t)).call.apply(e,[this].concat(i))),na()(wo()(n),"onBeforeUnload",(function(){if(n.props.areThereUnsavedSettings){if(!confirm(xo("There are unsaved settings in this tab that will be lost if you leave it. Proceed?")))return!1;n.props.clearUnsavedSettingsFlag()}})),na()(wo()(n),"routerWillLeave",(function(){if(n.props.areThereUnsavedSettings){if(!confirm(xo("There are unsaved settings in this tab that will be lost if you leave it. Proceed?")))return!1;window.setTimeout(n.props.clearUnsavedSettingsFlag,10)}})),na()(wo()(n),"initializeAnalytics",(function(){var e=n.props.tracksUserData;e&&uc.initialize(e.userid,e.username,{blog_id:e.blogid})})),na()(wo()(n),"renderMainContent",(function(e){if(!n.props.userCanManageModules)return!!n.props.siteConnectionStatus&&s.a.createElement("div",{"aria-live":"assertive"},s.a.createElement(em,n.props));if(!1===n.props.siteConnectionStatus&&n.props.userCanConnectSite)return s.a.createElement("div",{className:"jp-jetpack-connect__container","aria-live":"assertive"});var t,r=s.a.createElement(tl,{route:n.props.route,siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl}),i=s.a.createElement(Kc,{route:n.props.route});switch(e){case"/dashboard":t=s.a.createElement(yh,{siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl,rewindStatus:n.props.rewindStatus});break;case"/my-plan":t=s.a.createElement(Bh,{siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl,rewindStatus:n.props.rewindStatus});break;case"/plans":t=s.a.createElement(Pf,{siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl,rewindStatus:n.props.rewindStatus});break;case"/plans-prompt":i=null,t=s.a.createElement(Df,{siteAdminUrl:n.props.siteAdminUrl});break;case"/settings":case"/security":case"/performance":case"/writing":case"/sharing":case"/discussion":case"/traffic":case"/privacy":i=r,t=s.a.createElement(td,{route:n.props.route,siteAdminUrl:n.props.siteAdminUrl,siteRawUrl:n.props.siteRawUrl,searchTerm:n.props.searchTerm,rewindStatus:n.props.rewindStatus,userCanManageModules:n.props.userCanManageModules});break;default:Object(Pt.createHistory)().replace(window.location.pathname+"?page=jetpack#/dashboard"),t=s.a.createElement(yh,{siteRawUrl:n.props.siteRawUrl,siteAdminUrl:n.props.siteAdminUrl,rewindStatus:n.props.rewindStatus})}return window.wpNavMenuClassChange(),s.a.createElement("div",{"aria-live":"assertive"},i,t)})),n}return ma()(t,e),bo()(t,[{key:"UNSAFE_componentWillMount",value:function(){this.props.setInitialState(),Ca.setApiRoot(this.props.apiRoot),Ca.setApiNonce(this.props.apiNonce),this.initializeAnalytics(),window.addEventListener("beforeunload",this.onBeforeUnload),this.props.router.listenBefore(this.routerWillLeave),this.props.isSiteConnected&&uc.tracks.recordEvent("jetpack_wpa_page_view",{path:this.props.route.path,current_version:this.props.currentVersion})}},{key:"componentDidMount",value:function(){var e=jQuery(".jp-jetpack-connect__container"),t=jQuery(".jp-connect-full__container");e&&t.length>0&&t.prependTo(e)}},{key:"shouldComponentUpdate",value:function(e){return!Object(It.includes)(["/wpbody-content","/wp-toolbar"],e.route.path)&&(e.siteConnectionStatus!==this.props.siteConnectionStatus||e.isLinked!==this.props.isLinked||e.route.path!==this.props.route.path||e.searchTerm!==this.props.searchTerm||e.rewindStatus!==this.props.rewindStatus)}},{key:"componentDidUpdate",value:function(e){if(e.route.path!==this.props.route.path&&this.props.isSiteConnected&&uc.tracks.recordEvent("jetpack_wpa_page_view",{path:this.props.route.path,current_version:this.props.currentVersion}),e.siteConnectionStatus!==this.props.siteConnectionStatus){var t=jQuery("#toplevel_page_jetpack").find("ul.wp-submenu li");t.find('a[href$="#/settings"]').hide(),t.find('a[href$="admin.php?page=stats"]').hide()}}},{key:"shouldShowAppsCard",value:function(){var e="#"+this.props.route.path;return this.props.isSiteConnected&&Object(It.includes)(Tm,e)}},{key:"shouldShowSupportCard",value:function(){var e="#"+this.props.route.path;return this.props.isSiteConnected&&Object(It.includes)(Tm,e)}},{key:"shouldShowRewindStatus",value:function(){var e="#"+this.props.route.path;return this.props.isSiteConnected&&"#/plans-prompt"!==e}},{key:"shouldShowMasthead",value:function(){return"#/plans-prompt"!=="#"+this.props.route.path}},{key:"shouldShowFooter",value:function(){return"#/plans-prompt"!=="#"+this.props.route.path}},{key:"render",value:function(){return s.a.createElement("div",null,this.shouldShowMasthead()&&s.a.createElement(bc,{route:this.props.route}),s.a.createElement("div",{className:"jp-lower"},this.shouldShowRewindStatus()&&s.a.createElement(Nm,null),s.a.createElement(xm,null),s.a.createElement(Mm,null),this.renderMainContent(this.props.route.path),this.shouldShowSupportCard()&&s.a.createElement($f,{path:this.props.route.path}),this.shouldShowAppsCard()&&s.a.createElement(Qf,null)),this.shouldShowFooter()&&s.a.createElement(Gf,{siteAdminUrl:this.props.siteAdminUrl}),s.a.createElement(jm,{analytics:uc}))}}]),t}(s.a.Component),Im=le((function(e){return{siteConnectionStatus:Po(e),isLinked:Bo(e),siteRawUrl:si(e),siteAdminUrl:ci(e),searchTerm:ps(e),apiRoot:xi(e),apiNonce:Mi(e),tracksUserData:Ai(e),areThereUnsavedSettings:bs(e),userCanManageModules:hi(e),userCanConnectSite:vi(e),isSiteConnected:Io(e),rewindStatus:ls(e),currentVersion:ii(e)}}),(function(e){return{setInitialState:function(){return e((function(e){e({type:qt,initialState:window.Initial_State})}))},clearUnsavedSettingsFlag:function(){return e(ol())}}}))(vt(Pm));window.wpNavMenuClassChange=function(){var e=window.location.hash;if(jQuery(".current").each((function(e,t){jQuery(t).removeClass("current")})),e=e.split("?")[0],Object(It.includes)(Tm,e))jQuery("#toplevel_page_jetpack").find("li").filter((function(e){return 1===e}))[0].classList.add("current");else if(Object(It.includes)(["#/settings","#/security","#/performance","#/writing","#/sharing","#/discussion","#/traffic","#/privacy"],e)){jQuery("#toplevel_page_jetpack").find("li").filter((function(e){return 2===e}))[0].classList.add("current")}var t=jQuery("body");t.on("click",'a[href$="#/dashboard"], a[href$="#/settings"], .jp-dash-section-header__settings[href="#/security"], .dops-button[href="#/my-plan"], .dops-button[href="#/plans"], .jp-dash-section-header__external-link[href="#/security"]',(function(){window.scrollTo(0,0)})),t.on("click",".jetpack-js-stop-propagation",(function(e){e.stopPropagation()}))},Ut();var Dm=window.Initial_State;Dm.locale=JSON.parse(Dm.locale),Dm.locale=Object(It.get)(Dm.locale,["locale_data","jetpack"],{}),void 0!==Dm.locale[""]?(Dm.locale[""].localeSlug=Dm.localeSlug,Number.prototype.realToLocaleString=Number.prototype.toLocaleString,Number.prototype.toLocaleString=function(e,t){return e=e||Dm.localeSlug,t=t||{},this.realToLocaleString(e,t)}):Dm.locale={"":{localeSlug:Dm.localeSlug}},Co.setLocale(Dm.locale);var Rm=St(Pt.createHashHistory)(),Um=Object(Tt.syncHistoryWithStore)(Rm,Ys);(function(){var e=document.getElementById("jp-plugin-container");if(null===e)return;a.a.render(s.a.createElement("div",null,s.a.createElement(h,{store:Ys},s.a.createElement(ct,{history:Um},s.a.createElement(wt,{path:"/",name:Co.translate("At A Glance",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/dashboard",name:Co.translate("At A Glance"),component:Im}),s.a.createElement(wt,{path:"/my-plan",name:Co.translate("My Plan",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/plans",name:Co.translate("Plans",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/plans-prompt",name:Co.translate("Plans",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/settings",name:Co.translate("Settings",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/discussion",name:Co.translate("Discussion",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/security",name:Co.translate("Security",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/performance",name:Co.translate("Performance",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/traffic",name:Co.translate("Traffic",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/writing",name:Co.translate("Writing",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/sharing",name:Co.translate("Sharing",{context:"Navigation item."}),component:Im}),s.a.createElement(wt,{path:"/wpbody-content",component:Im}),s.a.createElement(wt,{path:"/wp-toolbar",component:Im}),s.a.createElement(wt,{path:"/privacy",component:Im}),s.a.createElement(wt,{path:"*",component:Im})))),e)})()}])); \ No newline at end of file
+/*! For license information please see admin.js.LICENSE.txt */
+!function(){var e={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(31354),i=n(64803);function s(e){var t=(0,r.Z)(e);return function(e){return(0,i.Z)(t,e)}}},64803:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function i(e,t){var n,i,s,o,a,c,l=[];for(n=0;n<e.length;n++){if(a=e[n],o=r[a]){for(i=o.length,s=Array(i);i--;)s[i]=l.pop();try{c=o.apply(null,s)}catch(e){return e}}else c=t.hasOwnProperty(a)?t[a]:+a;l.push(c)}return l[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(8172);function i(e){var t=(0,r.Z)(e);return function(e){return+t({n:e})}}},31354:function(e,t,n){"use strict";var r,i,s,o;function a(e){for(var t,n,a,c,l=[],u=[];t=e.match(o);){for(n=t[0],(a=e.substr(0,t.index).trim())&&l.push(a);c=u.pop();){if(s[n]){if(s[n][0]===c){n=s[n][1]||n;break}}else if(i.indexOf(c)>=0||r[c]<r[n]){u.push(c);break}l.push(c)}s[n]||u.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&l.push(e),l.concat(u.reverse())}n.d(t,{Z:function(){return a}}),r={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},i=["(","?"],s={")":["("],":":["?","?:"]},o=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function i(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(r,(function(){var e,r,i,s,o;return e=arguments[3],r=arguments[5],"%"===(s=arguments[9])?"%":("*"===(i=arguments[7])&&(i=t[n-1],n++),void 0!==r?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(r)&&(o=t[0][r]):(void 0===e&&(e=n),n++,o=t[e-1]),"f"===s?o=parseFloat(o)||0:"d"===s&&(o=parseInt(o)||0),void 0!==i&&("f"===s?o=o.toFixed(i):"s"===s&&(o=o.substr(0,i))),null!=o?o:"")}))}},22607:function(e,t,n){"use strict";var r=n(69307);t.Z=function(e){let{icon:t,size:n=24,...i}=e;return(0,r.cloneElement)(t,{width:n,height:n,...i})}},28503:function(e,t,n){"use strict";var r=n(69307),i=n(70444);const s=(0,r.createElement)(i.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24"},(0,r.createElement)(i.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"}));t.Z=s},8277:function(e,t,n){"use strict";const r=t;r.bignum=n(30910),r.define=n(99875).define,r.base=n(73034),r.constants=n(68344),r.decoders=n(55439),r.encoders=n(95411)},99875:function(e,t,n){"use strict";const r=n(95411),i=n(55439),s=n(59503);function o(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new o(e,t)},o.prototype._createNamed=function(e){const t=this.name;function n(e){this._initNamed(e,t)}return s(n,e),n.prototype._initNamed=function(t,n){e.call(this,t,n)},new n(this)},o.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(i[e])),this.decoders[e]},o.prototype.decode=function(e,t,n){return this._getDecoder(t).decode(e,n)},o.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(r[e])),this.encoders[e]},o.prototype.encode=function(e,t,n){return this._getEncoder(t).encode(e,n)}},27027:function(e,t,n){"use strict";const r=n(59503),i=n(72173).b,s=n(82923).Buffer;function o(e,t){i.call(this,t),s.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function a(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return a.isEncoderBuffer(e)||(e=new a(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=s.byteLength(e);else{if(!s.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}r(o,i),t.C=o,o.isDecoderBuffer=function(e){if(e instanceof o)return!0;return"object"==typeof e&&s.isBuffer(e.base)&&"DecoderBuffer"===e.constructor.name&&"number"==typeof e.offset&&"number"==typeof e.length&&"function"==typeof e.save&&"function"==typeof e.restore&&"function"==typeof e.isEmpty&&"function"==typeof e.readUInt8&&"function"==typeof e.skip&&"function"==typeof e.raw},o.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},o.prototype.restore=function(e){const t=new o(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,i.prototype.restore.call(this,e.reporter),t},o.prototype.isEmpty=function(){return this.offset===this.length},o.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},o.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");const n=new o(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+e,this.offset+=e,n},o.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.R=a,a.isEncoderBuffer=function(e){if(e instanceof a)return!0;return"object"==typeof e&&"EncoderBuffer"===e.constructor.name&&"number"==typeof e.length&&"function"==typeof e.join},a.prototype.join=function(e,t){return e||(e=s.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(n){n.join(e,t),t+=n.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):s.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},73034:function(e,t,n){"use strict";const r=t;r.Reporter=n(72173).b,r.DecoderBuffer=n(27027).C,r.EncoderBuffer=n(27027).R,r.Node=n(24873)},24873:function(e,t,n){"use strict";const r=n(72173).b,i=n(27027).R,s=n(27027).C,o=n(48282),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],c=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function l(e,t,n){const r={};this._baseState=r,r.name=n,r.enc=e,r.parent=t||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r.default=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}e.exports=l;const u=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];l.prototype.clone=function(){const e=this._baseState,t={};u.forEach((function(n){t[n]=e[n]}));const n=new this.constructor(t.parent);return n._baseState=t,n},l.prototype._wrap=function(){const e=this._baseState;c.forEach((function(t){this[t]=function(){const n=new this.constructor(this);return e.children.push(n),n[t].apply(n,arguments)}}),this)},l.prototype._init=function(e){const t=this._baseState;o(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),o.equal(t.children.length,1,"Root node can have only one child")},l.prototype._useArgs=function(e){const t=this._baseState,n=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==n.length&&(o(null===t.children),t.children=n,n.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(o(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;const t={};return Object.keys(e).forEach((function(n){n==(0|n)&&(n|=0);const r=e[n];t[r]=n})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){l.prototype[e]=function(){const t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),a.forEach((function(e){l.prototype[e]=function(){const t=this._baseState,n=Array.prototype.slice.call(arguments);return o(null===t.tag),t.tag=e,this._useArgs(n),this}})),l.prototype.use=function(e){o(e);const t=this._baseState;return o(null===t.use),t.use=e,this},l.prototype.optional=function(){return this._baseState.optional=!0,this},l.prototype.def=function(e){const t=this._baseState;return o(null===t.default),t.default=e,t.optional=!0,this},l.prototype.explicit=function(e){const t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.explicit=e,this},l.prototype.implicit=function(e){const t=this._baseState;return o(null===t.explicit&&null===t.implicit),t.implicit=e,this},l.prototype.obj=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},l.prototype.key=function(e){const t=this._baseState;return o(null===t.key),t.key=e,this},l.prototype.any=function(){return this._baseState.any=!0,this},l.prototype.choice=function(e){const t=this._baseState;return o(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},l.prototype.contains=function(e){const t=this._baseState;return o(null===t.use),t.contains=e,this},l.prototype._decode=function(e,t){const n=this._baseState;if(null===n.parent)return e.wrapResult(n.children[0]._decode(e,t));let r,i=n.default,o=!0,a=null;if(null!==n.key&&(a=e.enterKey(n.key)),n.optional){let r=null;if(null!==n.explicit?r=n.explicit:null!==n.implicit?r=n.implicit:null!==n.tag&&(r=n.tag),null!==r||n.any){if(o=this._peekTag(e,r,n.any),e.isError(o))return o}else{const r=e.save();try{null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),o=!0}catch(e){o=!1}e.restore(r)}}if(n.obj&&o&&(r=e.enterObject()),o){if(null!==n.explicit){const t=this._decodeTag(e,n.explicit);if(e.isError(t))return t;e=t}const r=e.offset;if(null===n.use&&null===n.choice){let t;n.any&&(t=e.save());const r=this._decodeTag(e,null!==n.implicit?n.implicit:n.tag,n.any);if(e.isError(r))return r;n.any?i=e.raw(t):e=r}if(t&&t.track&&null!==n.tag&&t.track(e.path(),r,e.length,"tagged"),t&&t.track&&null!==n.tag&&t.track(e.path(),e.offset,e.length,"content"),n.any||(i=null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach((function(n){n._decode(e,t)})),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){const r=new s(i);i=this._getUse(n.contains,e._reporterState.obj)._decode(r,t)}}return n.obj&&o&&(i=e.leaveObject(r)),null===n.key||null===i&&!0!==o?null!==a&&e.exitKey(a):e.leaveKey(a,n.key,i),i},l.prototype._decodeGeneric=function(e,t,n){const r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],n):/str$/.test(e)?this._decodeStr(t,e,n):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],n):"objid"===e?this._decodeObjid(t,null,null,n):"gentime"===e||"utctime"===e?this._decodeTime(t,e,n):"null_"===e?this._decodeNull(t,n):"bool"===e?this._decodeBool(t,n):"objDesc"===e?this._decodeStr(t,e,n):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,n):t.error("unknown tag: "+e)},l.prototype._getUse=function(e,t){const n=this._baseState;return n.useDecoder=this._use(e,t),o(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},l.prototype._decodeChoice=function(e,t){const n=this._baseState;let r=null,i=!1;return Object.keys(n.choice).some((function(s){const o=e.save(),a=n.choice[s];try{const n=a._decode(e,t);if(e.isError(n))return!1;r={type:s,value:n},i=!0}catch(t){return e.restore(o),!1}return!0}),this),i?r:e.error("Choice not matched")},l.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},l.prototype._encode=function(e,t,n){const r=this._baseState;if(null!==r.default&&r.default===e)return;const i=this._encodeValue(e,t,n);return void 0===i||this._skipDefault(i,t,n)?void 0:i},l.prototype._encodeValue=function(e,t,n){const i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new r);let s=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}let o=null,a=!1;if(i.any)s=this._createEncoderBuffer(e);else if(i.choice)s=this._encodeChoice(e,t);else if(i.contains)o=this._getUse(i.contains,n)._encode(e,t),a=!0;else if(i.children)o=i.children.map((function(n){if("null_"===n._baseState.tag)return n._encode(null,t,e);if(null===n._baseState.key)return t.error("Child should have a key");const r=t.enterKey(n._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");const i=n._encode(e[n._baseState.key],t,e);return t.leaveKey(r),i}),this).filter((function(e){return e})),o=this._createEncoderBuffer(o);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");const n=this.clone();n._baseState.implicit=null,o=this._createEncoderBuffer(e.map((function(n){const r=this._baseState;return this._getUse(r.args[0],e)._encode(n,t)}),n))}else null!==i.use?s=this._getUse(i.use,n)._encode(e,t):(o=this._encodePrimitive(i.tag,e),a=!0);if(!i.any&&null===i.choice){const e=null!==i.implicit?i.implicit:i.tag,n=null===i.implicit?"universal":"context";null===e?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(s=this._encodeComposite(e,a,n,o))}return null!==i.explicit&&(s=this._encodeComposite(i.explicit,!1,"context",s)),s},l.prototype._encodeChoice=function(e,t){const n=this._baseState,r=n.choice[e.type];return r||o(!1,e.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(e.value,t)},l.prototype._encodePrimitive=function(e,t){const n=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&n.args)return this._encodeObjid(t,n.reverseArgs[0],n.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,n.args&&n.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},l.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},l.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},72173:function(e,t,n){"use strict";const r=n(59503);function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function s(e,t){this.path=e,this.rethrow(t)}t.b=i,i.prototype.isError=function(e){return e instanceof s},i.prototype.save=function(){const e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){const t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){const t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,n){const r=this._reporterState;this.exitKey(e),null!==r.obj&&(r.obj[t]=n)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){const e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){const t=this._reporterState,n=t.obj;return t.obj=e,n},i.prototype.error=function(e){let t;const n=this._reporterState,r=e instanceof s;if(t=r?e:new s(n.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!n.options.partial)throw t;return r||n.errors.push(t),t},i.prototype.wrapResult=function(e){const t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},r(s,Error),s.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,s),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},5598:function(e,t){"use strict";function n(e){const t={};return Object.keys(e).forEach((function(n){(0|n)==n&&(n|=0);const r=e[n];t[r]=n})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=n(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=n(t.tag)},68344:function(e,t,n){"use strict";const r=t;r._reverse=function(e){const t={};return Object.keys(e).forEach((function(n){(0|n)==n&&(n|=0);const r=e[n];t[r]=n})),t},r.der=n(5598)},75761:function(e,t,n){"use strict";const r=n(59503),i=n(30910),s=n(27027).C,o=n(24873),a=n(5598);function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new l,this.tree._init(e.body)}function l(e){o.call(this,"der",e)}function u(e,t){let n=e.readUInt8(t);if(e.isError(n))return n;const r=a.tagClass[n>>6],i=0==(32&n);if(31==(31&n)){let r=n;for(n=0;128==(128&r);){if(r=e.readUInt8(t),e.isError(r))return r;n<<=7,n|=127&r}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:a.tag[n]}}function p(e,t,n){let r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(0==(128&r))return r;const i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(let t=0;t<i;t++){r<<=8;const t=e.readUInt8(n);if(e.isError(t))return t;r|=t}return r}e.exports=c,c.prototype.decode=function(e,t){return s.isDecoderBuffer(e)||(e=new s(e,t)),this.tree._decode(e,t)},r(l,o),l.prototype._peekTag=function(e,t,n){if(e.isEmpty())return!1;const r=e.save(),i=u(e,'Failed to peek tag: "'+t+'"');return e.isError(i)?i:(e.restore(r),i.tag===t||i.tagStr===t||i.tagStr+"of"===t||n)},l.prototype._decodeTag=function(e,t,n){const r=u(e,'Failed to decode tag of "'+t+'"');if(e.isError(r))return r;let i=p(e,r.primitive,'Failed to get length of "'+t+'"');if(e.isError(i))return i;if(!n&&r.tag!==t&&r.tagStr!==t&&r.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(r.primitive||null!==i)return e.skip(i,'Failed to match body of: "'+t+'"');const s=e.save(),o=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(o)?o:(i=e.offset-s.offset,e.restore(s),e.skip(i,'Failed to match body of: "'+t+'"'))},l.prototype._skipUntilEnd=function(e,t){for(;;){const n=u(e,t);if(e.isError(n))return n;const r=p(e,n.primitive,t);if(e.isError(r))return r;let i;if(i=n.primitive||null!==r?e.skip(r):this._skipUntilEnd(e,t),e.isError(i))return i;if("end"===n.tagStr)break}},l.prototype._decodeList=function(e,t,n,r){const i=[];for(;!e.isEmpty();){const t=this._peekTag(e,"end");if(e.isError(t))return t;const s=n.decode(e,"der",r);if(e.isError(s)&&t)break;i.push(s)}return i},l.prototype._decodeStr=function(e,t){if("bitstr"===t){const t=e.readUInt8();return e.isError(t)?t:{unused:t,data:e.raw()}}if("bmpstr"===t){const t=e.raw();if(t.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");let n="";for(let e=0;e<t.length/2;e++)n+=String.fromCharCode(t.readUInt16BE(2*e));return n}if("numstr"===t){const t=e.raw().toString("ascii");return this._isNumstr(t)?t:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){const t=e.raw().toString("ascii");return this._isPrintstr(t)?t:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},l.prototype._decodeObjid=function(e,t,n){let r;const i=[];let s=0,o=0;for(;!e.isEmpty();)o=e.readUInt8(),s<<=7,s|=127&o,0==(128&o)&&(i.push(s),s=0);128&o&&i.push(s);const a=i[0]/40|0,c=i[0]%40;if(r=n?i:[a,c].concat(i.slice(1)),t){let e=t[r.join(" ")];void 0===e&&(e=t[r.join(".")]),void 0!==e&&(r=e)}return r},l.prototype._decodeTime=function(e,t){const n=e.raw().toString();let r,i,s,o,a,c;if("gentime"===t)r=0|n.slice(0,4),i=0|n.slice(4,6),s=0|n.slice(6,8),o=0|n.slice(8,10),a=0|n.slice(10,12),c=0|n.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");r=0|n.slice(0,2),i=0|n.slice(2,4),s=0|n.slice(4,6),o=0|n.slice(6,8),a=0|n.slice(8,10),c=0|n.slice(10,12),r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,s,o,a,c,0)},l.prototype._decodeNull=function(){return null},l.prototype._decodeBool=function(e){const t=e.readUInt8();return e.isError(t)?t:0!==t},l.prototype._decodeInt=function(e,t){const n=e.raw();let r=new i(n);return t&&(r=t[r.toString(10)]||r),r},l.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},55439:function(e,t,n){"use strict";const r=t;r.der=n(75761),r.pem=n(33672)},33672:function(e,t,n){"use strict";const r=n(59503),i=n(82923).Buffer,s=n(75761);function o(e){s.call(this,e),this.enc="pem"}r(o,s),e.exports=o,o.prototype.decode=function(e,t){const n=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),o=/^-----(BEGIN|END) ([^-]+)-----$/;let a=-1,c=-1;for(let e=0;e<n.length;e++){const t=n[e].match(o);if(null!==t&&t[2]===r){if(-1!==a){if("END"!==t[1])break;c=e;break}if("BEGIN"!==t[1])break;a=e}}if(-1===a||-1===c)throw new Error("PEM section not found for: "+r);const l=n.slice(a+1,c).join("");l.replace(/[^a-z0-9+/=]+/gi,"");const u=i.from(l,"base64");return s.prototype.decode.call(this,u,t)}},18248:function(e,t,n){"use strict";const r=n(59503),i=n(82923).Buffer,s=n(24873),o=n(5598);function a(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){s.call(this,"der",e)}function l(e){return e<10?"0"+e:e}e.exports=a,a.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(c,s),c.prototype._encodeComposite=function(e,t,n,r){const s=function(e,t,n,r){let i;"seqof"===e?e="seq":"setof"===e&&(e="set");if(o.tagByName.hasOwnProperty(e))i=o.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}if(i>=31)return r.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=o.tagClassByName[n||"universal"]<<6,i}(e,t,n,this.reporter);if(r.length<128){const e=i.alloc(2);return e[0]=s,e[1]=r.length,this._createEncoderBuffer([e,r])}let a=1;for(let e=r.length;e>=256;e>>=8)a++;const c=i.alloc(2+a);c[0]=s,c[1]=128|a;for(let e=1+a,t=r.length;t>0;e--,t>>=8)c[e]=255&t;return this._createEncoderBuffer([c,r])},c.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){const t=i.alloc(2*e.length);for(let n=0;n<e.length;n++)t.writeUInt16BE(e.charCodeAt(n),2*n);return this._createEncoderBuffer(t)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)||"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},c.prototype._encodeObjid=function(e,t,n){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s.]+/g);for(let t=0;t<e.length;t++)e[t]|=0}else if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!n){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}let r=0;for(let t=0;t<e.length;t++){let n=e[t];for(r++;n>=128;n>>=7)r++}const s=i.alloc(r);let o=s.length-1;for(let t=e.length-1;t>=0;t--){let n=e[t];for(s[o--]=127&n;(n>>=7)>0;)s[o--]=128|127&n}return this._createEncoderBuffer(s)},c.prototype._encodeTime=function(e,t){let n;const r=new Date(e);return"gentime"===t?n=[l(r.getUTCFullYear()),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[l(r.getUTCFullYear()%100),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){const t=e.toArray();!e.sign&&128&t[0]&&t.unshift(0),e=i.from(t)}if(i.isBuffer(e)){let t=e.length;0===e.length&&t++;const n=i.alloc(t);return e.copy(n),0===e.length&&(n[0]=0),this._createEncoderBuffer(n)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);let n=1;for(let t=e;t>=256;t>>=8)n++;const r=new Array(n);for(let t=r.length-1;t>=0;t--)r[t]=255&e,e>>=8;return 128&r[0]&&r.unshift(0),this._createEncoderBuffer(i.from(r))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},c.prototype._skipDefault=function(e,t,n){const r=this._baseState;let i;if(null===r.default)return!1;const s=e.join();if(void 0===r.defaultBuffer&&(r.defaultBuffer=this._encodeValue(r.default,t,n).join()),s.length!==r.defaultBuffer.length)return!1;for(i=0;i<s.length;i++)if(s[i]!==r.defaultBuffer[i])return!1;return!0}},95411:function(e,t,n){"use strict";const r=t;r.der=n(18248),r.pem=n(51027)},51027:function(e,t,n){"use strict";const r=n(59503),i=n(18248);function s(e){i.call(this,e),this.enc="pem"}r(s,i),e.exports=s,s.prototype.encode=function(e,t){const n=i.prototype.encode.call(this,e).toString("base64"),r=["-----BEGIN "+t.label+"-----"];for(let e=0;e<n.length;e+=64)r.push(n.slice(e,e+64));return r.push("-----END "+t.label+"-----"),r.join("\n")}},90605:function(e,t,n){"use strict";var r=n(5806),i=n(55246);function s(e){return s="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},s(e)}var o,a,c=n(27452).codes,l=c.ERR_AMBIGUOUS_ARGUMENT,u=c.ERR_INVALID_ARG_TYPE,p=c.ERR_INVALID_ARG_VALUE,d=c.ERR_INVALID_RETURN_VALUE,h=c.ERR_MISSING_ARGS,f=n(71228),m=n(23333).inspect,g=n(23333).types,v=g.isPromise,b=g.isRegExp,y=Object.assign?Object.assign:n(45685).assign,k=Object.is?Object.is:n(88706);new Map;function w(){var e=n(81562);o=e.isDeepEqual,a=e.isDeepStrictEqual}var _=!1,E=e.exports=M,C={};function S(e){if(e.message instanceof Error)throw e.message;throw new f(e)}function j(e,t,n,r){if(!n){var i=!1;if(0===t)i=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var s=new f({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw s.generatedMessage=i,s}}function M(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];j.apply(void 0,[M,t.length].concat(t))}E.fail=function e(t,n,s,o,a){var c,l=arguments.length;if(0===l)c="Failed";else if(1===l)s=t,t=void 0;else{if(!1===_){_=!0;var u=r.emitWarning?r.emitWarning:i.warn.bind(i);u("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===l&&(o="!=")}if(s instanceof Error)throw s;var p={actual:t,expected:n,operator:void 0===o?"fail":o,stackStartFn:a||e};void 0!==s&&(p.message=s);var d=new f(p);throw c&&(d.message=c,d.generatedMessage=!0),d},E.AssertionError=f,E.ok=M,E.equal=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");t!=n&&S({actual:t,expected:n,message:r,operator:"==",stackStartFn:e})},E.notEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");t==n&&S({actual:t,expected:n,message:r,operator:"!=",stackStartFn:e})},E.deepEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");void 0===o&&w(),o(t,n)||S({actual:t,expected:n,message:r,operator:"deepEqual",stackStartFn:e})},E.notDeepEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");void 0===o&&w(),o(t,n)&&S({actual:t,expected:n,message:r,operator:"notDeepEqual",stackStartFn:e})},E.deepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");void 0===o&&w(),a(t,n)||S({actual:t,expected:n,message:r,operator:"deepStrictEqual",stackStartFn:e})},E.notDeepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");void 0===o&&w();a(t,n)&&S({actual:t,expected:n,message:r,operator:"notDeepStrictEqual",stackStartFn:e})},E.strictEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");k(t,n)||S({actual:t,expected:n,message:r,operator:"strictEqual",stackStartFn:e})},E.notStrictEqual=function e(t,n,r){if(arguments.length<2)throw new h("actual","expected");k(t,n)&&S({actual:t,expected:n,message:r,operator:"notStrictEqual",stackStartFn:e})};var x=function e(t,n,r){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n.forEach((function(e){e in t&&(void 0!==r&&"string"==typeof r[e]&&b(t[e])&&t[e].test(r[e])?i[e]=r[e]:i[e]=t[e])}))};function N(e,t,n,r,i,s){if(!(n in e)||!a(e[n],t[n])){if(!r){var o=new x(e,i),c=new x(t,i,e),l=new f({actual:o,expected:c,operator:"deepStrictEqual",stackStartFn:s});throw l.actual=e,l.expected=t,l.operator=s.name,l}S({actual:e,expected:t,message:r,operator:s.name,stackStartFn:s})}}function A(e,t,n,r){if("function"!=typeof t){if(b(t))return t.test(e);if(2===arguments.length)throw new u("expected",["Function","RegExp"],t);if("object"!==s(e)||null===e){var i=new f({actual:e,expected:t,message:n,operator:"deepStrictEqual",stackStartFn:r});throw i.operator=r.name,i}var a=Object.keys(t);if(t instanceof Error)a.push("name","message");else if(0===a.length)throw new p("error",t,"may not be an empty object");return void 0===o&&w(),a.forEach((function(i){"string"==typeof e[i]&&b(t[i])&&t[i].test(e[i])||N(e,t,i,n,a,r)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function O(e){if("function"!=typeof e)throw new u("fn","Function",e);try{e()}catch(e){return e}return C}function T(e){return v(e)||null!==e&&"object"===s(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function P(e){return Promise.resolve().then((function(){var t;if("function"==typeof e){if(!T(t=e()))throw new d("instance of Promise","promiseFn",t)}else{if(!T(e))throw new u("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return C})).catch((function(e){return e}))}))}function I(e,t,n,r){if("string"==typeof n){if(4===arguments.length)throw new u("error",["Object","Error","Function","RegExp"],n);if("object"===s(t)&&null!==t){if(t.message===n)throw new l("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===n)throw new l("error/message",'The error "'.concat(t,'" is identical to the message.'));r=n,n=void 0}else if(null!=n&&"object"!==s(n)&&"function"!=typeof n)throw new u("error",["Object","Error","Function","RegExp"],n);if(t===C){var i="";n&&n.name&&(i+=" (".concat(n.name,")")),i+=r?": ".concat(r):".";var o="rejects"===e.name?"rejection":"exception";S({actual:void 0,expected:n,operator:e.name,message:"Missing expected ".concat(o).concat(i),stackStartFn:e})}if(n&&!A(t,n,r,e))throw t}function R(e,t,n,r){if(t!==C){if("string"==typeof n&&(r=n,n=void 0),!n||A(t,n)){var i=r?": ".concat(r):".",s="doesNotReject"===e.name?"rejection":"exception";S({actual:t,expected:n,operator:e.name,message:"Got unwanted ".concat(s).concat(i,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function U(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];j.apply(void 0,[U,t.length].concat(t))}E.throws=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];I.apply(void 0,[e,O(t)].concat(r))},E.rejects=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return P(t).then((function(t){return I.apply(void 0,[e,t].concat(r))}))},E.doesNotThrow=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];R.apply(void 0,[e,O(t)].concat(r))},E.doesNotReject=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return P(t).then((function(t){return R.apply(void 0,[e,t].concat(r))}))},E.ifError=function e(t){if(null!=t){var n="ifError got unwanted exception: ";"object"===s(t)&&"string"==typeof t.message?0===t.message.length&&t.constructor?n+=t.constructor.name:n+=t.message:n+=m(t);var r=new f({actual:t,expected:null,operator:"ifError",message:n,stackStartFn:e}),i=t.stack;if("string"==typeof i){var o=i.split("\n");o.shift();for(var a=r.stack.split("\n"),c=0;c<o.length;c++){var l=a.indexOf(o[c]);if(-1!==l){a=a.slice(0,l);break}}r.stack="".concat(a.join("\n"),"\n").concat(o.join("\n"))}throw r}},E.strict=y(U,E,{equal:E.strictEqual,deepEqual:E.deepStrictEqual,notEqual:E.notStrictEqual,notDeepEqual:E.notDeepStrictEqual}),E.strict.strict=E.strict},71228:function(e,t,n){"use strict";var r=n(5806);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function o(e,t){return!t||"object"!==h(t)&&"function"!=typeof t?a(e):t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return u(e,arguments,d(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},c(e)}function l(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function u(e,t,n){return u=l()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&p(i,n.prototype),i},u.apply(null,arguments)}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function h(e){return h="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},h(e)}var f=n(23333).inspect,m=n(27452).codes.ERR_INVALID_ARG_TYPE;function g(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}var v="",b="",y="",k="",w={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function _(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function E(e){return f(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function C(e,t,n){var i="",s="",o=0,a="",c=!1,l=E(e),u=l.split("\n"),p=E(t).split("\n"),d=0,f="";if("strictEqual"===n&&"object"===h(e)&&"object"===h(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===u.length&&1===p.length&&u[0]!==p[0]){var m=u[0].length+p[0].length;if(m<=10){if(!("object"===h(e)&&null!==e||"object"===h(t)&&null!==t||0===e&&0===t))return"".concat(w[n],"\n\n")+"".concat(u[0]," !== ").concat(p[0],"\n")}else if("strictEqualObject"!==n){if(m<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;u[0][d]===p[0][d];)d++;d>2&&(f="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",d),"^"),d=0)}}}for(var _=u[u.length-1],C=p[p.length-1];_===C&&(d++<2?a="\n ".concat(_).concat(a):i=_,u.pop(),p.pop(),0!==u.length&&0!==p.length);)_=u[u.length-1],C=p[p.length-1];var S=Math.max(u.length,p.length);if(0===S){var j=l.split("\n");if(j.length>30)for(j[26]="".concat(v,"...").concat(k);j.length>27;)j.pop();return"".concat(w.notIdentical,"\n\n").concat(j.join("\n"),"\n")}d>3&&(a="\n".concat(v,"...").concat(k).concat(a),c=!0),""!==i&&(a="\n ".concat(i).concat(a),i="");var M=0,x=w[n]+"\n".concat(b,"+ actual").concat(k," ").concat(y,"- expected").concat(k),N=" ".concat(v,"...").concat(k," Lines skipped");for(d=0;d<S;d++){var A=d-o;if(u.length<d+1)A>1&&d>2&&(A>4?(s+="\n".concat(v,"...").concat(k),c=!0):A>3&&(s+="\n ".concat(p[d-2]),M++),s+="\n ".concat(p[d-1]),M++),o=d,i+="\n".concat(y,"-").concat(k," ").concat(p[d]),M++;else if(p.length<d+1)A>1&&d>2&&(A>4?(s+="\n".concat(v,"...").concat(k),c=!0):A>3&&(s+="\n ".concat(u[d-2]),M++),s+="\n ".concat(u[d-1]),M++),o=d,s+="\n".concat(b,"+").concat(k," ").concat(u[d]),M++;else{var O=p[d],T=u[d],P=T!==O&&(!g(T,",")||T.slice(0,-1)!==O);P&&g(O,",")&&O.slice(0,-1)===T&&(P=!1,T+=","),P?(A>1&&d>2&&(A>4?(s+="\n".concat(v,"...").concat(k),c=!0):A>3&&(s+="\n ".concat(u[d-2]),M++),s+="\n ".concat(u[d-1]),M++),o=d,s+="\n".concat(b,"+").concat(k," ").concat(T),i+="\n".concat(y,"-").concat(k," ").concat(O),M+=2):(s+=i,i="",1!==A&&0!==d||(s+="\n ".concat(T),M++))}if(M>20&&d<S-2)return"".concat(x).concat(N,"\n").concat(s,"\n").concat(v,"...").concat(k).concat(i,"\n")+"".concat(v,"...").concat(k)}return"".concat(x).concat(c?N:"","\n").concat(s).concat(i).concat(a).concat(f)}var S=function(e){function t(e){var n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==h(e)||null===e)throw new m("options","Object",e);var i=e.message,s=e.operator,c=e.stackStartFn,l=e.actual,u=e.expected,p=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)n=o(this,d(t).call(this,String(i)));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(v="",b="",k="",y=""):(v="",b="",k="",y="")),"object"===h(l)&&null!==l&&"object"===h(u)&&null!==u&&"stack"in l&&l instanceof Error&&"stack"in u&&u instanceof Error&&(l=_(l),u=_(u)),"deepStrictEqual"===s||"strictEqual"===s)n=o(this,d(t).call(this,C(l,u,s)));else if("notDeepStrictEqual"===s||"notStrictEqual"===s){var f=w[s],g=E(l).split("\n");if("notStrictEqual"===s&&"object"===h(l)&&null!==l&&(f=w.notStrictEqualObject),g.length>30)for(g[26]="".concat(v,"...").concat(k);g.length>27;)g.pop();n=1===g.length?o(this,d(t).call(this,"".concat(f," ").concat(g[0]))):o(this,d(t).call(this,"".concat(f,"\n\n").concat(g.join("\n"),"\n")))}else{var S=E(l),j="",M=w[s];"notDeepEqual"===s||"notEqual"===s?(S="".concat(w[s],"\n\n").concat(S)).length>1024&&(S="".concat(S.slice(0,1021),"...")):(j="".concat(E(u)),S.length>512&&(S="".concat(S.slice(0,509),"...")),j.length>512&&(j="".concat(j.slice(0,509),"...")),"deepEqual"===s||"equal"===s?S="".concat(M,"\n\n").concat(S,"\n\nshould equal\n\n"):j=" ".concat(s," ").concat(j)),n=o(this,d(t).call(this,"".concat(S).concat(j)))}return Error.stackTraceLimit=p,n.generatedMessage=!i,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=l,n.expected=u,n.operator=s,Error.captureStackTrace&&Error.captureStackTrace(a(n),c),n.stack,n.name="AssertionError",o(n)}var n,c,l;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&p(e,t)}(t,e),n=t,c=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:f.custom,value:function(e,t){return f(this,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){i(e,t,n[t])}))}return e}({},t,{customInspect:!1,depth:0}))}}],c&&s(n.prototype,c),l&&s(n,l),t}(c(Error));e.exports=S},27452:function(e,t,n){"use strict";function r(e){return r="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},r(e)}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function s(e){return s=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},s(e)}function o(e,t){return o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},o(e,t)}var a,c,l={};function u(e,t,n){n||(n=Error);var r=function(n){function r(n,o,a){var c;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),c=i(this,s(r).call(this,function(e,n,r){return"string"==typeof t?t:t(e,n,r)}(n,o,a))),c.code=e,c}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&o(e,t)}(r,n),r}(n);l[e]=r}function p(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}u("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),u("ERR_INVALID_ARG_TYPE",(function(e,t,i){var s,o,c,l;if(void 0===a&&(a=n(90605)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(o="not ",t.substr(!c||c<0?0:+c,o.length)===o)?(s="must not be",t=t.replace(/^not /,"")):s="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))l="The ".concat(e," ").concat(s," ").concat(p(t,"type"));else{var u=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";l='The "'.concat(e,'" ').concat(u," ").concat(s," ").concat(p(t,"type"))}return l+=". Received type ".concat(r(i))}),TypeError),u("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===c&&(c=n(23333));var i=c.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(i)}),TypeError,RangeError),u("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var i;return i=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),u("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];void 0===a&&(a=n(90605)),a(t.length>0,"At least one arg needs to be specified");var i="The ",s=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),s){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,s-1).join(", "),i+=", and ".concat(t[s-1]," arguments")}return"".concat(i," must be specified")}),TypeError),e.exports.codes=l},81562:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],_n=!0,r=!1,i=void 0;try{for(var s,o=e[Symbol.iterator]();!(_n=(s=o.next()).done)&&(n.push(s.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,i=e}finally{try{_n||null==o.return||o.return()}finally{if(r)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){return i="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},i(e)}var s=void 0!==/a/g.flags,o=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},c=Object.is?Object.is:n(88706),l=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},u=Number.isNaN?Number.isNaN:n(17614);function p(e){return e.call.bind(e)}var d=p(Object.prototype.hasOwnProperty),h=p(Object.prototype.propertyIsEnumerable),f=p(Object.prototype.toString),m=n(23333).types,g=m.isAnyArrayBuffer,v=m.isArrayBufferView,b=m.isDate,y=m.isMap,k=m.isRegExp,w=m.isSet,_=m.isNativeError,E=m.isBoxedPrimitive,C=m.isNumberObject,S=m.isStringObject,j=m.isBooleanObject,M=m.isBigIntObject,x=m.isSymbolObject,N=m.isFloat32Array,A=m.isFloat64Array;function O(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var n=e.charCodeAt(t);if(n<48||n>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function T(e){return Object.keys(e).filter(O).concat(l(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function P(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}function I(e,t,n,r){if(e===t)return 0!==e||(!n||c(e,t));if(n){if("object"!==i(e))return"number"==typeof e&&u(e)&&u(t);if("object"!==i(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==i(e))return(null===t||"object"!==i(t))&&e==t;if(null===t||"object"!==i(t))return!1}var o,a,l,p,d=f(e);if(d!==f(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var h=T(e),m=T(t);return h.length===m.length&&U(e,t,n,r,1,h)}if("[object Object]"===d&&(!y(e)&&y(t)||!w(e)&&w(t)))return!1;if(b(e)){if(!b(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(k(e)){if(!k(t)||(l=e,p=t,!(s?l.source===p.source&&l.flags===p.flags:RegExp.prototype.toString.call(l)===RegExp.prototype.toString.call(p))))return!1}else if(_(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(v(e)){if(n||!N(e)&&!A(e)){if(!function(e,t){return e.byteLength===t.byteLength&&0===P(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}(e,t))return!1}else if(!function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}(e,t))return!1;var O=T(e),I=T(t);return O.length===I.length&&U(e,t,n,r,0,O)}if(w(e))return!(!w(t)||e.size!==t.size)&&U(e,t,n,r,2);if(y(e))return!(!y(t)||e.size!==t.size)&&U(e,t,n,r,3);if(g(e)){if(a=t,(o=e).byteLength!==a.byteLength||0!==P(new Uint8Array(o),new Uint8Array(a)))return!1}else if(E(e)&&!function(e,t){return C(e)?C(t)&&c(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):S(e)?S(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):j(e)?j(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):M(e)?M(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):x(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}(e,t))return!1}return U(e,t,n,r,0)}function R(e,t){return t.filter((function(t){return h(e,t)}))}function U(e,t,n,r,i,s){if(5===arguments.length){s=Object.keys(e);var o=Object.keys(t);if(s.length!==o.length)return!1}for(var a=0;a<s.length;a++)if(!d(t,s[a]))return!1;if(n&&5===arguments.length){var c=l(e);if(0!==c.length){var u=0;for(a=0;a<c.length;a++){var p=c[a];if(h(e,p)){if(!h(t,p))return!1;s.push(p),u++}else if(h(t,p))return!1}var f=l(t);if(c.length!==f.length&&R(t,f).length!==u)return!1}else{var m=l(t);if(0!==m.length&&0!==R(t,m).length)return!1}}if(0===s.length&&(0===i||1===i&&0===e.length||0===e.size))return!0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else{var g=r.val1.get(e);if(void 0!==g){var v=r.val2.get(t);if(void 0!==v)return g===v}r.position++}r.val1.set(e,r.position),r.val2.set(t,r.position);var b=F(e,t,n,s,r,i);return r.val1.delete(e),r.val2.delete(t),b}function Z(e,t,n,r){for(var i=o(e),s=0;s<i.length;s++){var a=i[s];if(I(t,a,n,r))return e.delete(a),!0}return!1}function D(e){switch(i(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(u(e))return!1}return!0}function L(e,t,n){var r=D(n);return null!=r?r:t.has(r)&&!e.has(r)}function z(e,t,n,r,i){var s=D(n);if(null!=s)return s;var o=t.get(s);return!(void 0===o&&!t.has(s)||!I(r,o,!1,i))&&(!e.has(s)&&I(r,o,!1,i))}function B(e,t,n,r,i,s){for(var a=o(e),c=0;c<a.length;c++){var l=a[c];if(I(n,l,i,s)&&I(r,t.get(l),i,s))return e.delete(l),!0}return!1}function F(e,t,n,s,c,l){var u=0;if(2===l){if(!function(e,t,n,r){for(var s=null,a=o(e),c=0;c<a.length;c++){var l=a[c];if("object"===i(l)&&null!==l)null===s&&(s=new Set),s.add(l);else if(!t.has(l)){if(n)return!1;if(!L(e,t,l))return!1;null===s&&(s=new Set),s.add(l)}}if(null!==s){for(var u=o(t),p=0;p<u.length;p++){var d=u[p];if("object"===i(d)&&null!==d){if(!Z(s,d,n,r))return!1}else if(!n&&!e.has(d)&&!Z(s,d,n,r))return!1}return 0===s.size}return!0}(e,t,n,c))return!1}else if(3===l){if(!function(e,t,n,s){for(var o=null,c=a(e),l=0;l<c.length;l++){var u=r(c[l],2),p=u[0],d=u[1];if("object"===i(p)&&null!==p)null===o&&(o=new Set),o.add(p);else{var h=t.get(p);if(void 0===h&&!t.has(p)||!I(d,h,n,s)){if(n)return!1;if(!z(e,t,p,d,s))return!1;null===o&&(o=new Set),o.add(p)}}}if(null!==o){for(var f=a(t),m=0;m<f.length;m++){var g=r(f[m],2),v=(p=g[0],g[1]);if("object"===i(p)&&null!==p){if(!B(o,e,p,v,n,s))return!1}else if(!(n||e.has(p)&&I(e.get(p),v,!1,s)||B(o,e,p,v,!1,s)))return!1}return 0===o.size}return!0}(e,t,n,c))return!1}else if(1===l)for(;u<e.length;u++){if(!d(e,u)){if(d(t,u))return!1;for(var p=Object.keys(e);u<p.length;u++){var h=p[u];if(!d(t,h)||!I(e[h],t[h],n,c))return!1}return p.length===Object.keys(t).length}if(!d(t,u)||!I(e[u],t[u],n,c))return!1}for(u=0;u<s.length;u++){var f=s[u];if(!I(e[f],t[f],n,c))return!1}return!0}e.exports={isDeepEqual:function(e,t){return I(e,t,false)},isDeepStrictEqual:function(e,t){return I(e,t,true)}}},6670:function(e,t,n){e.exports={default:n(92916),__esModule:!0}},62803:function(e,t){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,s=c(e),o=s[0],a=s[1],l=new i(function(e,t,n){return 3*(t+n)/4-n}(0,o,a)),u=0,p=a>0?o-4:o;for(n=0;n<p;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],l[u++]=t>>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===a&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,l[u++]=255&t);1===a&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,s=[],o=16383,a=0,c=r-i;a<c;a+=o)s.push(l(e,a,a+o>c?c:a+o));1===i?(t=e[r-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return s.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,a=s.length;o<a;++o)n[o]=s[o],r[s.charCodeAt(o)]=o;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function l(e,t,r){for(var i,s,o=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(n[(s=i)>>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return o.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},30910:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function s(e,t,n){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var o;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(56095).Buffer}catch(e){}function a(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function l(e,t,n,r){for(var i=0,s=Math.min(e.length,n),o=t;o<s;o++){var a=e.charCodeAt(o)-48;i*=r,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}s.isBN=function(e){return e instanceof s||null!==e&&"object"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},s.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},s.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,o,a=0;if("be"===n)for(i=e.length-1,s=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(i=0,s=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this.strip()},s.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,s=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=c(e,t,r)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=c(e,t,r)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;this.strip()},s.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var s=e.length-n,o=s%r,a=Math.min(s,s-o)+n,c=0,u=n;u<a;u+=r)c=l(e,u,u+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var p=1;for(c=l(e,u,e.length,t),u=0;u<o;u++)p*=t;this.imuln(p),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this.strip()},s.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},s.prototype.clone=function(){var e=new s(null);return this.copy(e),e},s.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},s.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},s.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var u=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],p=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],s=0|t.words[0],o=i*s,a=67108863&o,c=o/67108864|0;n.words[0]=a;for(var l=1;l<r;l++){for(var u=c>>>26,p=67108863&c,d=Math.min(l,t.length-1),h=Math.max(0,l-e.length+1);h<=d;h++){var f=l-h|0;u+=(o=(i=0|e.words[f])*(s=0|t.words[h])+p)/67108864|0,p=67108863&o}n.words[l]=0|p,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n.strip()}s.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,s=0,o=0;o<this.length;o++){var a=this.words[o],c=(16777215&(a<<i|s)).toString(16);n=0!==(s=a>>>24-i&16777215)||o!==this.length-1?u[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,o--)}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=p[e],h=d[e];n="";var f=this.clone();for(f.negative=0;!f.isZero();){var m=f.modn(h).toString(e);n=(f=f.idivn(h)).isZero()?m+n:u[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16)},s.prototype.toBuffer=function(e,t){return r(void 0!==o),this.toArrayLike(o,e,t)},s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},s.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),s=n||Math.max(1,i);r(i<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0"),this.strip();var o,a,c="le"===t,l=new e(s),u=this.clone();if(c){for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),l[a]=o;for(;a<s;a++)l[a]=0}else{for(a=0;a<s-i;a++)l[a]=0;for(a=0;!u.isZero();a++)o=u.andln(255),u.iushrn(8),l[s-a-1]=o}return l},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},s.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return 0!==this.negative},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},s.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},s.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this.strip()},s.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},s.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this.strip()},s.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},s.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this.strip()},s.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s<r.length;s++)t=(0|n.words[s])+(0|r.words[s])+i,this.words[s]=67108863&t,i=t>>>26;for(;0!==i&&s<n.length;s++)t=(0|n.words[s])+i,this.words[s]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this},s.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var s=0,o=0;o<r.length;o++)s=(t=(0|n.words[o])-(0|r.words[o])+s)>>26,this.words[o]=67108863&t;for(;0!==s&&o<n.length;o++)s=(t=(0|n.words[o])+s)>>26,this.words[o]=67108863&t;if(0===s&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this.strip()},s.prototype.sub=function(e){return this.clone().isub(e)};var f=function(e,t,n){var r,i,s,o=e.words,a=t.words,c=n.words,l=0,u=0|o[0],p=8191&u,d=u>>>13,h=0|o[1],f=8191&h,m=h>>>13,g=0|o[2],v=8191&g,b=g>>>13,y=0|o[3],k=8191&y,w=y>>>13,_=0|o[4],E=8191&_,C=_>>>13,S=0|o[5],j=8191&S,M=S>>>13,x=0|o[6],N=8191&x,A=x>>>13,O=0|o[7],T=8191&O,P=O>>>13,I=0|o[8],R=8191&I,U=I>>>13,Z=0|o[9],D=8191&Z,L=Z>>>13,z=0|a[0],B=8191&z,F=z>>>13,V=0|a[1],q=8191&V,H=V>>>13,W=0|a[2],$=8191&W,J=W>>>13,K=0|a[3],G=8191&K,Y=K>>>13,X=0|a[4],Q=8191&X,ee=X>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],se=8191&ie,oe=ie>>>13,ae=0|a[7],ce=8191&ae,le=ae>>>13,ue=0|a[8],pe=8191&ue,de=ue>>>13,he=0|a[9],fe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(l+(r=Math.imul(p,B))|0)+((8191&(i=(i=Math.imul(p,F))+Math.imul(d,B)|0))<<13)|0;l=((s=Math.imul(d,F))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(f,B),i=(i=Math.imul(f,F))+Math.imul(m,B)|0,s=Math.imul(m,F);var ve=(l+(r=r+Math.imul(p,q)|0)|0)+((8191&(i=(i=i+Math.imul(p,H)|0)+Math.imul(d,q)|0))<<13)|0;l=((s=s+Math.imul(d,H)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(v,B),i=(i=Math.imul(v,F))+Math.imul(b,B)|0,s=Math.imul(b,F),r=r+Math.imul(f,q)|0,i=(i=i+Math.imul(f,H)|0)+Math.imul(m,q)|0,s=s+Math.imul(m,H)|0;var be=(l+(r=r+Math.imul(p,$)|0)|0)+((8191&(i=(i=i+Math.imul(p,J)|0)+Math.imul(d,$)|0))<<13)|0;l=((s=s+Math.imul(d,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(k,B),i=(i=Math.imul(k,F))+Math.imul(w,B)|0,s=Math.imul(w,F),r=r+Math.imul(v,q)|0,i=(i=i+Math.imul(v,H)|0)+Math.imul(b,q)|0,s=s+Math.imul(b,H)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,J)|0;var ye=(l+(r=r+Math.imul(p,G)|0)|0)+((8191&(i=(i=i+Math.imul(p,Y)|0)+Math.imul(d,G)|0))<<13)|0;l=((s=s+Math.imul(d,Y)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,B),i=(i=Math.imul(E,F))+Math.imul(C,B)|0,s=Math.imul(C,F),r=r+Math.imul(k,q)|0,i=(i=i+Math.imul(k,H)|0)+Math.imul(w,q)|0,s=s+Math.imul(w,H)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,J)|0,r=r+Math.imul(f,G)|0,i=(i=i+Math.imul(f,Y)|0)+Math.imul(m,G)|0,s=s+Math.imul(m,Y)|0;var ke=(l+(r=r+Math.imul(p,Q)|0)|0)+((8191&(i=(i=i+Math.imul(p,ee)|0)+Math.imul(d,Q)|0))<<13)|0;l=((s=s+Math.imul(d,ee)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,B),i=(i=Math.imul(j,F))+Math.imul(M,B)|0,s=Math.imul(M,F),r=r+Math.imul(E,q)|0,i=(i=i+Math.imul(E,H)|0)+Math.imul(C,q)|0,s=s+Math.imul(C,H)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,J)|0,r=r+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(b,G)|0,s=s+Math.imul(b,Y)|0,r=r+Math.imul(f,Q)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Q)|0,s=s+Math.imul(m,ee)|0;var we=(l+(r=r+Math.imul(p,ne)|0)|0)+((8191&(i=(i=i+Math.imul(p,re)|0)+Math.imul(d,ne)|0))<<13)|0;l=((s=s+Math.imul(d,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(N,B),i=(i=Math.imul(N,F))+Math.imul(A,B)|0,s=Math.imul(A,F),r=r+Math.imul(j,q)|0,i=(i=i+Math.imul(j,H)|0)+Math.imul(M,q)|0,s=s+Math.imul(M,H)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(C,$)|0,s=s+Math.imul(C,J)|0,r=r+Math.imul(k,G)|0,i=(i=i+Math.imul(k,Y)|0)+Math.imul(w,G)|0,s=s+Math.imul(w,Y)|0,r=r+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,s=s+Math.imul(m,re)|0;var _e=(l+(r=r+Math.imul(p,se)|0)|0)+((8191&(i=(i=i+Math.imul(p,oe)|0)+Math.imul(d,se)|0))<<13)|0;l=((s=s+Math.imul(d,oe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(T,B),i=(i=Math.imul(T,F))+Math.imul(P,B)|0,s=Math.imul(P,F),r=r+Math.imul(N,q)|0,i=(i=i+Math.imul(N,H)|0)+Math.imul(A,q)|0,s=s+Math.imul(A,H)|0,r=r+Math.imul(j,$)|0,i=(i=i+Math.imul(j,J)|0)+Math.imul(M,$)|0,s=s+Math.imul(M,J)|0,r=r+Math.imul(E,G)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(C,G)|0,s=s+Math.imul(C,Y)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(w,Q)|0,s=s+Math.imul(w,ee)|0,r=r+Math.imul(v,ne)|0,i=(i=i+Math.imul(v,re)|0)+Math.imul(b,ne)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(f,se)|0,i=(i=i+Math.imul(f,oe)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,oe)|0;var Ee=(l+(r=r+Math.imul(p,ce)|0)|0)+((8191&(i=(i=i+Math.imul(p,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((s=s+Math.imul(d,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(R,B),i=(i=Math.imul(R,F))+Math.imul(U,B)|0,s=Math.imul(U,F),r=r+Math.imul(T,q)|0,i=(i=i+Math.imul(T,H)|0)+Math.imul(P,q)|0,s=s+Math.imul(P,H)|0,r=r+Math.imul(N,$)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,J)|0,r=r+Math.imul(j,G)|0,i=(i=i+Math.imul(j,Y)|0)+Math.imul(M,G)|0,s=s+Math.imul(M,Y)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(C,Q)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(w,ne)|0,s=s+Math.imul(w,re)|0,r=r+Math.imul(v,se)|0,i=(i=i+Math.imul(v,oe)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,oe)|0,r=r+Math.imul(f,ce)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ce)|0,s=s+Math.imul(m,le)|0;var Ce=(l+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,de)|0)+Math.imul(d,pe)|0))<<13)|0;l=((s=s+Math.imul(d,de)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(D,B),i=(i=Math.imul(D,F))+Math.imul(L,B)|0,s=Math.imul(L,F),r=r+Math.imul(R,q)|0,i=(i=i+Math.imul(R,H)|0)+Math.imul(U,q)|0,s=s+Math.imul(U,H)|0,r=r+Math.imul(T,$)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,J)|0,r=r+Math.imul(N,G)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(A,G)|0,s=s+Math.imul(A,Y)|0,r=r+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(M,Q)|0,s=s+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(C,ne)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(k,se)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,oe)|0,r=r+Math.imul(v,ce)|0,i=(i=i+Math.imul(v,le)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,le)|0,r=r+Math.imul(f,pe)|0,i=(i=i+Math.imul(f,de)|0)+Math.imul(m,pe)|0,s=s+Math.imul(m,de)|0;var Se=(l+(r=r+Math.imul(p,fe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(d,fe)|0))<<13)|0;l=((s=s+Math.imul(d,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(D,q),i=(i=Math.imul(D,H))+Math.imul(L,q)|0,s=Math.imul(L,H),r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,$)|0,s=s+Math.imul(U,J)|0,r=r+Math.imul(T,G)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(P,G)|0,s=s+Math.imul(P,Y)|0,r=r+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(A,Q)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(j,ne)|0,i=(i=i+Math.imul(j,re)|0)+Math.imul(M,ne)|0,s=s+Math.imul(M,re)|0,r=r+Math.imul(E,se)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,oe)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(w,ce)|0,s=s+Math.imul(w,le)|0,r=r+Math.imul(v,pe)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(b,pe)|0,s=s+Math.imul(b,de)|0;var je=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,r=Math.imul(D,$),i=(i=Math.imul(D,J))+Math.imul(L,$)|0,s=Math.imul(L,J),r=r+Math.imul(R,G)|0,i=(i=i+Math.imul(R,Y)|0)+Math.imul(U,G)|0,s=s+Math.imul(U,Y)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(P,Q)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(N,ne)|0,i=(i=i+Math.imul(N,re)|0)+Math.imul(A,ne)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(j,se)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(M,se)|0,s=s+Math.imul(M,oe)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(C,ce)|0,s=s+Math.imul(C,le)|0,r=r+Math.imul(k,pe)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(w,pe)|0,s=s+Math.imul(w,de)|0;var Me=(l+(r=r+Math.imul(v,fe)|0)|0)+((8191&(i=(i=i+Math.imul(v,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(D,G),i=(i=Math.imul(D,Y))+Math.imul(L,G)|0,s=Math.imul(L,Y),r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,s=s+Math.imul(U,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(P,ne)|0,s=s+Math.imul(P,re)|0,r=r+Math.imul(N,se)|0,i=(i=i+Math.imul(N,oe)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,oe)|0,r=r+Math.imul(j,ce)|0,i=(i=i+Math.imul(j,le)|0)+Math.imul(M,ce)|0,s=s+Math.imul(M,le)|0,r=r+Math.imul(E,pe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(C,pe)|0,s=s+Math.imul(C,de)|0;var xe=(l+(r=r+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((s=s+Math.imul(w,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(D,Q),i=(i=Math.imul(D,ee))+Math.imul(L,Q)|0,s=Math.imul(L,ee),r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(U,ne)|0,s=s+Math.imul(U,re)|0,r=r+Math.imul(T,se)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(P,se)|0,s=s+Math.imul(P,oe)|0,r=r+Math.imul(N,ce)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(A,ce)|0,s=s+Math.imul(A,le)|0,r=r+Math.imul(j,pe)|0,i=(i=i+Math.imul(j,de)|0)+Math.imul(M,pe)|0,s=s+Math.imul(M,de)|0;var Ne=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((s=s+Math.imul(C,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(D,ne),i=(i=Math.imul(D,re))+Math.imul(L,ne)|0,s=Math.imul(L,re),r=r+Math.imul(R,se)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(U,se)|0,s=s+Math.imul(U,oe)|0,r=r+Math.imul(T,ce)|0,i=(i=i+Math.imul(T,le)|0)+Math.imul(P,ce)|0,s=s+Math.imul(P,le)|0,r=r+Math.imul(N,pe)|0,i=(i=i+Math.imul(N,de)|0)+Math.imul(A,pe)|0,s=s+Math.imul(A,de)|0;var Ae=(l+(r=r+Math.imul(j,fe)|0)|0)+((8191&(i=(i=i+Math.imul(j,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((s=s+Math.imul(M,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(D,se),i=(i=Math.imul(D,oe))+Math.imul(L,se)|0,s=Math.imul(L,oe),r=r+Math.imul(R,ce)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(U,ce)|0,s=s+Math.imul(U,le)|0,r=r+Math.imul(T,pe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(P,pe)|0,s=s+Math.imul(P,de)|0;var Oe=(l+(r=r+Math.imul(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(D,ce),i=(i=Math.imul(D,le))+Math.imul(L,ce)|0,s=Math.imul(L,le),r=r+Math.imul(R,pe)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,pe)|0,s=s+Math.imul(U,de)|0;var Te=(l+(r=r+Math.imul(T,fe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((s=s+Math.imul(P,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(D,pe),i=(i=Math.imul(D,de))+Math.imul(L,pe)|0,s=Math.imul(L,de);var Pe=(l+(r=r+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(U,fe)|0))<<13)|0;l=((s=s+Math.imul(U,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Ie=(l+(r=Math.imul(D,fe))|0)+((8191&(i=(i=Math.imul(D,me))+Math.imul(L,fe)|0))<<13)|0;return l=((s=Math.imul(L,me))+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,c[0]=ge,c[1]=ve,c[2]=be,c[3]=ye,c[4]=ke,c[5]=we,c[6]=_e,c[7]=Ee,c[8]=Ce,c[9]=Se,c[10]=je,c[11]=Me,c[12]=xe,c[13]=Ne,c[14]=Ae,c[15]=Oe,c[16]=Te,c[17]=Pe,c[18]=Ie,0!==l&&(c[19]=l,n.length++),n};function m(e,t,n){return(new g).mulp(e,t,n)}function g(e,t){this.x=e,this.y=t}Math.imul||(f=h),s.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?f(this,e,t):r<63?h(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,s=0;s<n.length-1;s++){var o=i;i=0;for(var a=67108863&r,c=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=c;l++){var u=s-l,p=(0|e.words[u])*(0|t.words[l]),d=67108863&p;a=67108863&(d=d+a|0),i+=(o=(o=o+(p/67108864|0)|0)+(d>>>26)|0)>>>26,o&=67108863}n.words[s]=a,r=o,o=i}return 0!==r?n.words[s]=r:n.length--,n.strip()}(this,e,t):m(this,e,t),n},g.prototype.makeRBT=function(e){for(var t=new Array(e),n=s.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},g.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},g.prototype.permute=function(e,t,n,r,i,s){for(var o=0;o<s;o++)r[o]=t[e[o]],i[o]=n[e[o]]},g.prototype.transform=function(e,t,n,r,i,s){this.permute(s,e,t,n,r,i);for(var o=1;o<i;o<<=1)for(var a=o<<1,c=Math.cos(2*Math.PI/a),l=Math.sin(2*Math.PI/a),u=0;u<i;u+=a)for(var p=c,d=l,h=0;h<o;h++){var f=n[u+h],m=r[u+h],g=n[u+h+o],v=r[u+h+o],b=p*g-d*v;v=p*v+d*g,g=b,n[u+h]=f+g,r[u+h]=m+v,n[u+h+o]=f-g,r[u+h+o]=m-v,h!==a&&(b=c*p-l*d,d=c*d+l*p,p=b)}},g.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},g.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},g.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},g.prototype.convert13b=function(e,t,n,i){for(var s=0,o=0;o<t;o++)s+=0|e[o],n[2*o]=8191&s,s>>>=13,n[2*o+1]=8191&s,s>>>=13;for(o=2*t;o<i;++o)n[o]=0;r(0===s),r(0==(-8192&s))},g.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},g.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),s=this.stub(r),o=new Array(r),a=new Array(r),c=new Array(r),l=new Array(r),u=new Array(r),p=new Array(r),d=n.words;d.length=r,this.convert13b(e.words,e.length,o,r),this.convert13b(t.words,t.length,l,r),this.transform(o,s,a,c,r,i),this.transform(l,s,u,p,r,i);for(var h=0;h<r;h++){var f=a[h]*u[h]-c[h]*p[h];c[h]=a[h]*p[h]+c[h]*u[h],a[h]=f}return this.conjugate(a,c,r),this.transform(a,c,d,s,r,i),this.conjugate(d,s,r),this.normalize13b(d,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n.strip()},s.prototype.mul=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},s.prototype.mulf=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),m(this,e,t)},s.prototype.imul=function(e){return this.clone().mulTo(e,this)},s.prototype.imuln=function(e){r("number"==typeof e),r(e<67108864);for(var t=0,n=0;n<this.length;n++){var i=(0|this.words[n])*e,s=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=s>>>26,this.words[n]=67108863&s}return 0!==t&&(this.words[n]=t,this.length++),this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=(e.words[r]&1<<i)>>>i}return t}(e);if(0===t.length)return new s(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},s.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,c=(0|this.words[t])-a<<n;this.words[t]=c|o,o=a>>>26-n}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this.strip()},s.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},s.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,c=n;if(i-=o,i=Math.max(0,i),c){for(var l=0;l<o;l++)c.words[l]=this.words[l];c.length=o}if(0===o);else if(this.length>o)for(this.length-=o,l=0;l<this.length;l++)this.words[l]=this.words[l+o];else this.words[0]=0,this.length=1;var u=0;for(l=this.length-1;l>=0&&(0!==u||l>=i);l--){var p=0|this.words[l];this.words[l]=u<<26-s|p>>>s,u=p&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},s.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<<t;return!(this.length<=n)&&!!(this.words[n]&i)},s.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()},s.prototype.maskn=function(e){return this.clone().imaskn(e)},s.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},s.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},s.prototype.addn=function(e){return this.clone().iaddn(e)},s.prototype.subn=function(e){return this.clone().isubn(e)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(e,t,n){var i,s,o=e.length+n;this._expand(o);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+n])+a;var c=(0|e.words[i])*t;a=((s-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&s}for(;i<this.length-n;i++)a=(s=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&s;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this.strip()},s.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,o=0|i.words[i.length-1];0!==(n=26-this._countBits(o))&&(i=i.ushln(n),r.iushln(n),o=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new s(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var u=r.clone()._ishlnsubmul(i,1,c);0===u.negative&&(r=u,a&&(a.words[c]=1));for(var p=c-1;p>=0;p--){var d=67108864*(0|r.words[i.length+p])+(0|r.words[i.length+p-1]);for(d=Math.min(d/o|0,67108863),r._ishlnsubmul(i,d,p);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,p),r.isZero()||(r.negative^=1);a&&(a.words[p]=d)}return a&&a.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},s.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(o=a.mod.neg(),n&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),n&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),s=n.cmp(r);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},s.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new s(1),o=new s(0),a=new s(0),c=new s(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),p=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(p)),i.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(p)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),o.isub(c)):(n.isub(t),a.isub(i),c.isub(o))}return{a:a,b:c,gcd:n.iushln(l)}},s.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new s(1),a=new s(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var p=0,d=1;0==(n.words[0]&d)&&p<26;++p,d<<=1);if(p>0)for(n.iushrn(p);p-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a)):(n.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var s=t;t=n,n=s}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var s=i,o=n;0!==s&&o<this.length;o++){var a=0|this.words[o];s=(a+=s)>>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},s.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},s.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new E(e)},s.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var v={k256:null,p224:null,p192:null,p25519:null};function b(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){b.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function k(){b.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){b.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function _(){b.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function E(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function C(e){E.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}b.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},b.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},b.prototype.split=function(e,t){e.iushrn(this.n,0,t)},b.prototype.imulK=function(e){return e.imul(this.k)},i(y,b),y.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|s>>>22,s=o}s>>>=22,e.words[i-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(k,b),i(w,b),i(_,b),_.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(v[e])return v[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new k;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new _}return v[e]=t,t},E.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},E.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},E.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},E.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},E.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},E.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},E.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},E.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},E.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},E.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},E.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},E.prototype.isqr=function(e){return this.imul(e,e.clone())},E.prototype.sqr=function(e){return this.mul(e,e)},E.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new s(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var a=new s(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new s(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var p=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),f=o;0!==h.cmp(a);){for(var m=h,g=0;0!==m.cmp(a);g++)m=m.redSqr();r(g<f);var v=this.pow(p,new s(1).iushln(f-g-1));d=d.redMul(v),p=v.redSqr(),h=h.redMul(p),f=g}return d},E.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},E.prototype.pow=function(e,t){if(t.isZero())return new s(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new s(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],o=0,a=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],u=c-1;u>=0;u--){var p=l>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==p||0!==o?(o<<=1,o|=p,(4===++a||0===r&&0===u)&&(i=this.mul(i,n[o]),a=0,o=0)):a=0}c=26}return i},E.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},E.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new C(e)},i(C,E),C.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},C.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},C.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},C.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},C.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},53380:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function s(e,t,n){if(s.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var o;"object"==typeof e?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;try{o="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(14864).Buffer}catch(e){}function a(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function l(e,t,n,i){for(var s=0,o=0,a=Math.min(e.length,n),c=t;c<a;c++){var l=e.charCodeAt(c)-48;s*=i,o=l>=49?l-49+10:l>=17?l-17+10:l,r(l>=0&&o<i,"Invalid character"),s+=o}return s}function u(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(s.isBN=function(e){return e instanceof s||null!==e&&"object"==typeof e&&e.constructor.wordSize===s.wordSize&&Array.isArray(e.words)},s.max=function(e,t){return e.cmp(t)>0?e:t},s.min=function(e,t){return e.cmp(t)<0?e:t},s.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},s.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},s.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var s,o,a=0;if("be"===n)for(i=e.length-1,s=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);else if("le"===n)for(i=0,s=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[s]|=o<<a&67108863,this.words[s+1]=o>>>26-a&67108863,(a+=24)>=26&&(a-=26,s++);return this._strip()},s.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,s=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=c(e,t,r)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=c(e,t,r)<<s,this.words[o]|=67108863&i,s>=18?(s-=18,o+=1,this.words[o]|=i>>>26):s+=8;this._strip()},s.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var s=e.length-n,o=s%r,a=Math.min(s,s-o)+n,c=0,u=n;u<a;u+=r)c=l(e,u,u+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var p=1;for(c=l(e,u,e.length,t),u=0;u<o;u++)p*=t;this.imuln(p),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},s.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},s.prototype._move=function(e){u(e,this)},s.prototype.clone=function(){var e=new s(null);return this.copy(e),e},s.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},s.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},s.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=p}catch(e){s.prototype.inspect=p}else s.prototype.inspect=p;function p(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],f=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];s.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,s=0,o=0;o<this.length;o++){var a=this.words[o],c=(16777215&(a<<i|s)).toString(16);n=0!==(s=a>>>24-i&16777215)||o!==this.length-1?d[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,o--)}for(0!==s&&(n=s.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var l=h[e],u=f[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var m=p.modrn(u).toString(e);n=(p=p.idivn(u)).isZero()?m+n:d[l-m.length]+m+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(e,t){return this.toArrayLike(o,e,t)}),s.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function m(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],s=0|t.words[0],o=i*s,a=67108863&o,c=o/67108864|0;n.words[0]=a;for(var l=1;l<r;l++){for(var u=c>>>26,p=67108863&c,d=Math.min(l,t.length-1),h=Math.max(0,l-e.length+1);h<=d;h++){var f=l-h|0;u+=(o=(i=0|e.words[f])*(s=0|t.words[h])+p)/67108864|0,p=67108863&o}n.words[l]=0|p,c=0|u}return 0!==c?n.words[l]=0|c:n.length--,n._strip()}s.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),s=n||Math.max(1,i);r(i<=s,"byte array longer than desired length"),r(s>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,s);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},s.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===s?(n<e.length&&(e[n++]=o>>24&255),r=0,s=0):(r=o>>>24,s+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},s.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,s=0;i<this.length;i++){var o=this.words[i]<<s|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===s?(n>=0&&(e[n--]=o>>24&255),r=0,s=0):(r=o>>>24,s+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?s.prototype._countBits=function(e){return 32-Math.clz32(e)}:s.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},s.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},s.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},s.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return 0!==this.negative},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},s.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},s.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},s.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},s.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},s.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},s.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},s.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},s.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},s.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},s.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},s.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},s.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},s.prototype.notn=function(e){return this.clone().inotn(e)},s.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},s.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,s=0;s<r.length;s++)t=(0|n.words[s])+(0|r.words[s])+i,this.words[s]=67108863&t,i=t>>>26;for(;0!==i&&s<n.length;s++)t=(0|n.words[s])+i,this.words[s]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this},s.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},s.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var s=0,o=0;o<r.length;o++)s=(t=(0|n.words[o])-(0|r.words[o])+s)>>26,this.words[o]=67108863&t;for(;0!==s&&o<n.length;o++)s=(t=(0|n.words[o])+s)>>26,this.words[o]=67108863&t;if(0===s&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},s.prototype.sub=function(e){return this.clone().isub(e)};var g=function(e,t,n){var r,i,s,o=e.words,a=t.words,c=n.words,l=0,u=0|o[0],p=8191&u,d=u>>>13,h=0|o[1],f=8191&h,m=h>>>13,g=0|o[2],v=8191&g,b=g>>>13,y=0|o[3],k=8191&y,w=y>>>13,_=0|o[4],E=8191&_,C=_>>>13,S=0|o[5],j=8191&S,M=S>>>13,x=0|o[6],N=8191&x,A=x>>>13,O=0|o[7],T=8191&O,P=O>>>13,I=0|o[8],R=8191&I,U=I>>>13,Z=0|o[9],D=8191&Z,L=Z>>>13,z=0|a[0],B=8191&z,F=z>>>13,V=0|a[1],q=8191&V,H=V>>>13,W=0|a[2],$=8191&W,J=W>>>13,K=0|a[3],G=8191&K,Y=K>>>13,X=0|a[4],Q=8191&X,ee=X>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],se=8191&ie,oe=ie>>>13,ae=0|a[7],ce=8191&ae,le=ae>>>13,ue=0|a[8],pe=8191&ue,de=ue>>>13,he=0|a[9],fe=8191&he,me=he>>>13;n.negative=e.negative^t.negative,n.length=19;var ge=(l+(r=Math.imul(p,B))|0)+((8191&(i=(i=Math.imul(p,F))+Math.imul(d,B)|0))<<13)|0;l=((s=Math.imul(d,F))+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(f,B),i=(i=Math.imul(f,F))+Math.imul(m,B)|0,s=Math.imul(m,F);var ve=(l+(r=r+Math.imul(p,q)|0)|0)+((8191&(i=(i=i+Math.imul(p,H)|0)+Math.imul(d,q)|0))<<13)|0;l=((s=s+Math.imul(d,H)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(v,B),i=(i=Math.imul(v,F))+Math.imul(b,B)|0,s=Math.imul(b,F),r=r+Math.imul(f,q)|0,i=(i=i+Math.imul(f,H)|0)+Math.imul(m,q)|0,s=s+Math.imul(m,H)|0;var be=(l+(r=r+Math.imul(p,$)|0)|0)+((8191&(i=(i=i+Math.imul(p,J)|0)+Math.imul(d,$)|0))<<13)|0;l=((s=s+Math.imul(d,J)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(k,B),i=(i=Math.imul(k,F))+Math.imul(w,B)|0,s=Math.imul(w,F),r=r+Math.imul(v,q)|0,i=(i=i+Math.imul(v,H)|0)+Math.imul(b,q)|0,s=s+Math.imul(b,H)|0,r=r+Math.imul(f,$)|0,i=(i=i+Math.imul(f,J)|0)+Math.imul(m,$)|0,s=s+Math.imul(m,J)|0;var ye=(l+(r=r+Math.imul(p,G)|0)|0)+((8191&(i=(i=i+Math.imul(p,Y)|0)+Math.imul(d,G)|0))<<13)|0;l=((s=s+Math.imul(d,Y)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(E,B),i=(i=Math.imul(E,F))+Math.imul(C,B)|0,s=Math.imul(C,F),r=r+Math.imul(k,q)|0,i=(i=i+Math.imul(k,H)|0)+Math.imul(w,q)|0,s=s+Math.imul(w,H)|0,r=r+Math.imul(v,$)|0,i=(i=i+Math.imul(v,J)|0)+Math.imul(b,$)|0,s=s+Math.imul(b,J)|0,r=r+Math.imul(f,G)|0,i=(i=i+Math.imul(f,Y)|0)+Math.imul(m,G)|0,s=s+Math.imul(m,Y)|0;var ke=(l+(r=r+Math.imul(p,Q)|0)|0)+((8191&(i=(i=i+Math.imul(p,ee)|0)+Math.imul(d,Q)|0))<<13)|0;l=((s=s+Math.imul(d,ee)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(j,B),i=(i=Math.imul(j,F))+Math.imul(M,B)|0,s=Math.imul(M,F),r=r+Math.imul(E,q)|0,i=(i=i+Math.imul(E,H)|0)+Math.imul(C,q)|0,s=s+Math.imul(C,H)|0,r=r+Math.imul(k,$)|0,i=(i=i+Math.imul(k,J)|0)+Math.imul(w,$)|0,s=s+Math.imul(w,J)|0,r=r+Math.imul(v,G)|0,i=(i=i+Math.imul(v,Y)|0)+Math.imul(b,G)|0,s=s+Math.imul(b,Y)|0,r=r+Math.imul(f,Q)|0,i=(i=i+Math.imul(f,ee)|0)+Math.imul(m,Q)|0,s=s+Math.imul(m,ee)|0;var we=(l+(r=r+Math.imul(p,ne)|0)|0)+((8191&(i=(i=i+Math.imul(p,re)|0)+Math.imul(d,ne)|0))<<13)|0;l=((s=s+Math.imul(d,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(N,B),i=(i=Math.imul(N,F))+Math.imul(A,B)|0,s=Math.imul(A,F),r=r+Math.imul(j,q)|0,i=(i=i+Math.imul(j,H)|0)+Math.imul(M,q)|0,s=s+Math.imul(M,H)|0,r=r+Math.imul(E,$)|0,i=(i=i+Math.imul(E,J)|0)+Math.imul(C,$)|0,s=s+Math.imul(C,J)|0,r=r+Math.imul(k,G)|0,i=(i=i+Math.imul(k,Y)|0)+Math.imul(w,G)|0,s=s+Math.imul(w,Y)|0,r=r+Math.imul(v,Q)|0,i=(i=i+Math.imul(v,ee)|0)+Math.imul(b,Q)|0,s=s+Math.imul(b,ee)|0,r=r+Math.imul(f,ne)|0,i=(i=i+Math.imul(f,re)|0)+Math.imul(m,ne)|0,s=s+Math.imul(m,re)|0;var _e=(l+(r=r+Math.imul(p,se)|0)|0)+((8191&(i=(i=i+Math.imul(p,oe)|0)+Math.imul(d,se)|0))<<13)|0;l=((s=s+Math.imul(d,oe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(T,B),i=(i=Math.imul(T,F))+Math.imul(P,B)|0,s=Math.imul(P,F),r=r+Math.imul(N,q)|0,i=(i=i+Math.imul(N,H)|0)+Math.imul(A,q)|0,s=s+Math.imul(A,H)|0,r=r+Math.imul(j,$)|0,i=(i=i+Math.imul(j,J)|0)+Math.imul(M,$)|0,s=s+Math.imul(M,J)|0,r=r+Math.imul(E,G)|0,i=(i=i+Math.imul(E,Y)|0)+Math.imul(C,G)|0,s=s+Math.imul(C,Y)|0,r=r+Math.imul(k,Q)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(w,Q)|0,s=s+Math.imul(w,ee)|0,r=r+Math.imul(v,ne)|0,i=(i=i+Math.imul(v,re)|0)+Math.imul(b,ne)|0,s=s+Math.imul(b,re)|0,r=r+Math.imul(f,se)|0,i=(i=i+Math.imul(f,oe)|0)+Math.imul(m,se)|0,s=s+Math.imul(m,oe)|0;var Ee=(l+(r=r+Math.imul(p,ce)|0)|0)+((8191&(i=(i=i+Math.imul(p,le)|0)+Math.imul(d,ce)|0))<<13)|0;l=((s=s+Math.imul(d,le)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(R,B),i=(i=Math.imul(R,F))+Math.imul(U,B)|0,s=Math.imul(U,F),r=r+Math.imul(T,q)|0,i=(i=i+Math.imul(T,H)|0)+Math.imul(P,q)|0,s=s+Math.imul(P,H)|0,r=r+Math.imul(N,$)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(A,$)|0,s=s+Math.imul(A,J)|0,r=r+Math.imul(j,G)|0,i=(i=i+Math.imul(j,Y)|0)+Math.imul(M,G)|0,s=s+Math.imul(M,Y)|0,r=r+Math.imul(E,Q)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(C,Q)|0,s=s+Math.imul(C,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(w,ne)|0,s=s+Math.imul(w,re)|0,r=r+Math.imul(v,se)|0,i=(i=i+Math.imul(v,oe)|0)+Math.imul(b,se)|0,s=s+Math.imul(b,oe)|0,r=r+Math.imul(f,ce)|0,i=(i=i+Math.imul(f,le)|0)+Math.imul(m,ce)|0,s=s+Math.imul(m,le)|0;var Ce=(l+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,de)|0)+Math.imul(d,pe)|0))<<13)|0;l=((s=s+Math.imul(d,de)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(D,B),i=(i=Math.imul(D,F))+Math.imul(L,B)|0,s=Math.imul(L,F),r=r+Math.imul(R,q)|0,i=(i=i+Math.imul(R,H)|0)+Math.imul(U,q)|0,s=s+Math.imul(U,H)|0,r=r+Math.imul(T,$)|0,i=(i=i+Math.imul(T,J)|0)+Math.imul(P,$)|0,s=s+Math.imul(P,J)|0,r=r+Math.imul(N,G)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(A,G)|0,s=s+Math.imul(A,Y)|0,r=r+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(M,Q)|0,s=s+Math.imul(M,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(C,ne)|0,s=s+Math.imul(C,re)|0,r=r+Math.imul(k,se)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(w,se)|0,s=s+Math.imul(w,oe)|0,r=r+Math.imul(v,ce)|0,i=(i=i+Math.imul(v,le)|0)+Math.imul(b,ce)|0,s=s+Math.imul(b,le)|0,r=r+Math.imul(f,pe)|0,i=(i=i+Math.imul(f,de)|0)+Math.imul(m,pe)|0,s=s+Math.imul(m,de)|0;var Se=(l+(r=r+Math.imul(p,fe)|0)|0)+((8191&(i=(i=i+Math.imul(p,me)|0)+Math.imul(d,fe)|0))<<13)|0;l=((s=s+Math.imul(d,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(D,q),i=(i=Math.imul(D,H))+Math.imul(L,q)|0,s=Math.imul(L,H),r=r+Math.imul(R,$)|0,i=(i=i+Math.imul(R,J)|0)+Math.imul(U,$)|0,s=s+Math.imul(U,J)|0,r=r+Math.imul(T,G)|0,i=(i=i+Math.imul(T,Y)|0)+Math.imul(P,G)|0,s=s+Math.imul(P,Y)|0,r=r+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(A,Q)|0,s=s+Math.imul(A,ee)|0,r=r+Math.imul(j,ne)|0,i=(i=i+Math.imul(j,re)|0)+Math.imul(M,ne)|0,s=s+Math.imul(M,re)|0,r=r+Math.imul(E,se)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(C,se)|0,s=s+Math.imul(C,oe)|0,r=r+Math.imul(k,ce)|0,i=(i=i+Math.imul(k,le)|0)+Math.imul(w,ce)|0,s=s+Math.imul(w,le)|0,r=r+Math.imul(v,pe)|0,i=(i=i+Math.imul(v,de)|0)+Math.imul(b,pe)|0,s=s+Math.imul(b,de)|0;var je=(l+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,me)|0)+Math.imul(m,fe)|0))<<13)|0;l=((s=s+Math.imul(m,me)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,r=Math.imul(D,$),i=(i=Math.imul(D,J))+Math.imul(L,$)|0,s=Math.imul(L,J),r=r+Math.imul(R,G)|0,i=(i=i+Math.imul(R,Y)|0)+Math.imul(U,G)|0,s=s+Math.imul(U,Y)|0,r=r+Math.imul(T,Q)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(P,Q)|0,s=s+Math.imul(P,ee)|0,r=r+Math.imul(N,ne)|0,i=(i=i+Math.imul(N,re)|0)+Math.imul(A,ne)|0,s=s+Math.imul(A,re)|0,r=r+Math.imul(j,se)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(M,se)|0,s=s+Math.imul(M,oe)|0,r=r+Math.imul(E,ce)|0,i=(i=i+Math.imul(E,le)|0)+Math.imul(C,ce)|0,s=s+Math.imul(C,le)|0,r=r+Math.imul(k,pe)|0,i=(i=i+Math.imul(k,de)|0)+Math.imul(w,pe)|0,s=s+Math.imul(w,de)|0;var Me=(l+(r=r+Math.imul(v,fe)|0)|0)+((8191&(i=(i=i+Math.imul(v,me)|0)+Math.imul(b,fe)|0))<<13)|0;l=((s=s+Math.imul(b,me)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(D,G),i=(i=Math.imul(D,Y))+Math.imul(L,G)|0,s=Math.imul(L,Y),r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(U,Q)|0,s=s+Math.imul(U,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(P,ne)|0,s=s+Math.imul(P,re)|0,r=r+Math.imul(N,se)|0,i=(i=i+Math.imul(N,oe)|0)+Math.imul(A,se)|0,s=s+Math.imul(A,oe)|0,r=r+Math.imul(j,ce)|0,i=(i=i+Math.imul(j,le)|0)+Math.imul(M,ce)|0,s=s+Math.imul(M,le)|0,r=r+Math.imul(E,pe)|0,i=(i=i+Math.imul(E,de)|0)+Math.imul(C,pe)|0,s=s+Math.imul(C,de)|0;var xe=(l+(r=r+Math.imul(k,fe)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(w,fe)|0))<<13)|0;l=((s=s+Math.imul(w,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(D,Q),i=(i=Math.imul(D,ee))+Math.imul(L,Q)|0,s=Math.imul(L,ee),r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(U,ne)|0,s=s+Math.imul(U,re)|0,r=r+Math.imul(T,se)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(P,se)|0,s=s+Math.imul(P,oe)|0,r=r+Math.imul(N,ce)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(A,ce)|0,s=s+Math.imul(A,le)|0,r=r+Math.imul(j,pe)|0,i=(i=i+Math.imul(j,de)|0)+Math.imul(M,pe)|0,s=s+Math.imul(M,de)|0;var Ne=(l+(r=r+Math.imul(E,fe)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(C,fe)|0))<<13)|0;l=((s=s+Math.imul(C,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(D,ne),i=(i=Math.imul(D,re))+Math.imul(L,ne)|0,s=Math.imul(L,re),r=r+Math.imul(R,se)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(U,se)|0,s=s+Math.imul(U,oe)|0,r=r+Math.imul(T,ce)|0,i=(i=i+Math.imul(T,le)|0)+Math.imul(P,ce)|0,s=s+Math.imul(P,le)|0,r=r+Math.imul(N,pe)|0,i=(i=i+Math.imul(N,de)|0)+Math.imul(A,pe)|0,s=s+Math.imul(A,de)|0;var Ae=(l+(r=r+Math.imul(j,fe)|0)|0)+((8191&(i=(i=i+Math.imul(j,me)|0)+Math.imul(M,fe)|0))<<13)|0;l=((s=s+Math.imul(M,me)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(D,se),i=(i=Math.imul(D,oe))+Math.imul(L,se)|0,s=Math.imul(L,oe),r=r+Math.imul(R,ce)|0,i=(i=i+Math.imul(R,le)|0)+Math.imul(U,ce)|0,s=s+Math.imul(U,le)|0,r=r+Math.imul(T,pe)|0,i=(i=i+Math.imul(T,de)|0)+Math.imul(P,pe)|0,s=s+Math.imul(P,de)|0;var Oe=(l+(r=r+Math.imul(N,fe)|0)|0)+((8191&(i=(i=i+Math.imul(N,me)|0)+Math.imul(A,fe)|0))<<13)|0;l=((s=s+Math.imul(A,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(D,ce),i=(i=Math.imul(D,le))+Math.imul(L,ce)|0,s=Math.imul(L,le),r=r+Math.imul(R,pe)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(U,pe)|0,s=s+Math.imul(U,de)|0;var Te=(l+(r=r+Math.imul(T,fe)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(P,fe)|0))<<13)|0;l=((s=s+Math.imul(P,me)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(D,pe),i=(i=Math.imul(D,de))+Math.imul(L,pe)|0,s=Math.imul(L,de);var Pe=(l+(r=r+Math.imul(R,fe)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(U,fe)|0))<<13)|0;l=((s=s+Math.imul(U,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Ie=(l+(r=Math.imul(D,fe))|0)+((8191&(i=(i=Math.imul(D,me))+Math.imul(L,fe)|0))<<13)|0;return l=((s=Math.imul(L,me))+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,c[0]=ge,c[1]=ve,c[2]=be,c[3]=ye,c[4]=ke,c[5]=we,c[6]=_e,c[7]=Ee,c[8]=Ce,c[9]=Se,c[10]=je,c[11]=Me,c[12]=xe,c[13]=Ne,c[14]=Ae,c[15]=Oe,c[16]=Te,c[17]=Pe,c[18]=Ie,0!==l&&(c[19]=l,n.length++),n};function v(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,s=0;s<n.length-1;s++){var o=i;i=0;for(var a=67108863&r,c=Math.min(s,t.length-1),l=Math.max(0,s-e.length+1);l<=c;l++){var u=s-l,p=(0|e.words[u])*(0|t.words[l]),d=67108863&p;a=67108863&(d=d+a|0),i+=(o=(o=o+(p/67108864|0)|0)+(d>>>26)|0)>>>26,o&=67108863}n.words[s]=a,r=o,o=i}return 0!==r?n.words[s]=r:n.length--,n._strip()}function b(e,t,n){return v(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(g=m),s.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?g(this,e,t):n<63?m(this,e,t):n<1024?v(this,e,t):b(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=s.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},y.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},y.prototype.permute=function(e,t,n,r,i,s){for(var o=0;o<s;o++)r[o]=t[e[o]],i[o]=n[e[o]]},y.prototype.transform=function(e,t,n,r,i,s){this.permute(s,e,t,n,r,i);for(var o=1;o<i;o<<=1)for(var a=o<<1,c=Math.cos(2*Math.PI/a),l=Math.sin(2*Math.PI/a),u=0;u<i;u+=a)for(var p=c,d=l,h=0;h<o;h++){var f=n[u+h],m=r[u+h],g=n[u+h+o],v=r[u+h+o],b=p*g-d*v;v=p*v+d*g,g=b,n[u+h]=f+g,r[u+h]=m+v,n[u+h+o]=f-g,r[u+h+o]=m-v,h!==a&&(b=c*p-l*d,d=c*d+l*p,p=b)}},y.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},y.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},y.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},y.prototype.convert13b=function(e,t,n,i){for(var s=0,o=0;o<t;o++)s+=0|e[o],n[2*o]=8191&s,s>>>=13,n[2*o+1]=8191&s,s>>>=13;for(o=2*t;o<i;++o)n[o]=0;r(0===s),r(0==(-8192&s))},y.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},y.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),s=this.stub(r),o=new Array(r),a=new Array(r),c=new Array(r),l=new Array(r),u=new Array(r),p=new Array(r),d=n.words;d.length=r,this.convert13b(e.words,e.length,o,r),this.convert13b(t.words,t.length,l,r),this.transform(o,s,a,c,r,i),this.transform(l,s,u,p,r,i);for(var h=0;h<r;h++){var f=a[h]*u[h]-c[h]*p[h];c[h]=a[h]*p[h]+c[h]*u[h],a[h]=f}return this.conjugate(a,c,r),this.transform(a,c,d,s,r,i),this.conjugate(d,s,r),this.normalize13b(d,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n._strip()},s.prototype.mul=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},s.prototype.mulf=function(e){var t=new s(null);return t.words=new Array(this.length+e.length),b(this,e,t)},s.prototype.imul=function(e){return this.clone().mulTo(e,this)},s.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var s=(0|this.words[i])*e,o=(67108863&s)+(67108863&n);n>>=26,n+=s/67108864|0,n+=o>>>26,this.words[i]=67108863&o}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},s.prototype.muln=function(e){return this.clone().imuln(e)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new s(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},s.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,s=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(t=0;t<this.length;t++){var a=this.words[t]&s,c=(0|this.words[t])-a<<n;this.words[t]=c|o,o=a>>>26-n}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},s.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},s.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var s=e%26,o=Math.min((e-s)/26,this.length),a=67108863^67108863>>>s<<s,c=n;if(i-=o,i=Math.max(0,i),c){for(var l=0;l<o;l++)c.words[l]=this.words[l];c.length=o}if(0===o);else if(this.length>o)for(this.length-=o,l=0;l<this.length;l++)this.words[l]=this.words[l+o];else this.words[0]=0,this.length=1;var u=0;for(l=this.length-1;l>=0&&(0!==u||l>=i);l--){var p=0|this.words[l];this.words[l]=u<<26-s|p>>>s,u=p&a}return c&&0!==u&&(c.words[c.length++]=u),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},s.prototype.shln=function(e){return this.clone().ishln(e)},s.prototype.ushln=function(e){return this.clone().iushln(e)},s.prototype.shrn=function(e){return this.clone().ishrn(e)},s.prototype.ushrn=function(e){return this.clone().iushrn(e)},s.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<<t;return!(this.length<=n)&&!!(this.words[n]&i)},s.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},s.prototype.maskn=function(e){return this.clone().imaskn(e)},s.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},s.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},s.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},s.prototype.addn=function(e){return this.clone().iaddn(e)},s.prototype.subn=function(e){return this.clone().isubn(e)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(e,t,n){var i,s,o=e.length+n;this._expand(o);var a=0;for(i=0;i<e.length;i++){s=(0|this.words[i+n])+a;var c=(0|e.words[i])*t;a=((s-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&s}for(;i<this.length-n;i++)a=(s=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&s;if(0===a)return this._strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(s=-(0|this.words[i])+a)>>26,this.words[i]=67108863&s;return this.negative=1,this._strip()},s.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,o=0|i.words[i.length-1];0!==(n=26-this._countBits(o))&&(i=i.ushln(n),r.iushln(n),o=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new s(null)).length=c+1,a.words=new Array(a.length);for(var l=0;l<a.length;l++)a.words[l]=0}var u=r.clone()._ishlnsubmul(i,1,c);0===u.negative&&(r=u,a&&(a.words[c]=1));for(var p=c-1;p>=0;p--){var d=67108864*(0|r.words[i.length+p])+(0|r.words[i.length+p-1]);for(d=Math.min(d/o|0,67108863),r._ishlnsubmul(i,d,p);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,p),r.isZero()||(r.negative^=1);a&&(a.words[p]=d)}return a&&a._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},s.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new s(0),mod:new s(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(o=a.mod.neg(),n&&0!==o.negative&&o.iadd(e)),{div:i,mod:o}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(o=a.mod.neg(),n&&0!==o.negative&&o.isub(e)),{div:a.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new s(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new s(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new s(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,o,a},s.prototype.div=function(e){return this.divmod(e,"div",!1).div},s.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},s.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},s.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),s=n.cmp(r);return s<0||1===i&&0===s?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},s.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,s=this.length-1;s>=0;s--)i=(n*i+(0|this.words[s]))%e;return t?-i:i},s.prototype.modn=function(e){return this.modrn(e)},s.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var s=(0|this.words[i])+67108864*n;this.words[i]=s/e|0,n=s%e}return this._strip(),t?this.ineg():this},s.prototype.divn=function(e){return this.clone().idivn(e)},s.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new s(1),o=new s(0),a=new s(0),c=new s(1),l=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++l;for(var u=n.clone(),p=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(i.isOdd()||o.isOdd())&&(i.iadd(u),o.isub(p)),i.iushrn(1),o.iushrn(1);for(var f=0,m=1;0==(n.words[0]&m)&&f<26;++f,m<<=1);if(f>0)for(n.iushrn(f);f-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(u),c.isub(p)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),o.isub(c)):(n.isub(t),a.isub(i),c.isub(o))}return{a:a,b:c,gcd:n.iushln(l)}},s.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,o=new s(1),a=new s(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var l=0,u=1;0==(t.words[0]&u)&&l<26;++l,u<<=1);if(l>0)for(t.iushrn(l);l-- >0;)o.isOdd()&&o.iadd(c),o.iushrn(1);for(var p=0,d=1;0==(n.words[0]&d)&&p<26;++p,d<<=1);if(p>0)for(n.iushrn(p);p-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),o.isub(a)):(n.isub(t),a.isub(o))}return(i=0===t.cmpn(1)?o:a).cmpn(0)<0&&i.iadd(e),i},s.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var s=t;t=n,n=s}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},s.prototype.invm=function(e){return this.egcd(e).a.umod(e)},s.prototype.isEven=function(){return 0==(1&this.words[0])},s.prototype.isOdd=function(){return 1==(1&this.words[0])},s.prototype.andln=function(e){return this.words[0]&e},s.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var s=i,o=n;0!==s&&o<this.length;o++){var a=0|this.words[o];s=(a+=s)>>>26,a&=67108863,this.words[o]=a}return 0!==s&&(this.words[o]=s,this.length++),this},s.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},s.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},s.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},s.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},s.prototype.gtn=function(e){return 1===this.cmpn(e)},s.prototype.gt=function(e){return 1===this.cmp(e)},s.prototype.gten=function(e){return this.cmpn(e)>=0},s.prototype.gte=function(e){return this.cmp(e)>=0},s.prototype.ltn=function(e){return-1===this.cmpn(e)},s.prototype.lt=function(e){return-1===this.cmp(e)},s.prototype.lten=function(e){return this.cmpn(e)<=0},s.prototype.lte=function(e){return this.cmp(e)<=0},s.prototype.eqn=function(e){return 0===this.cmpn(e)},s.prototype.eq=function(e){return 0===this.cmp(e)},s.red=function(e){return new j(e)},s.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},s.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(e){return this.red=e,this},s.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},s.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},s.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},s.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},s.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},s.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},s.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},s.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},s.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var k={k256:null,p224:null,p192:null,p25519:null};function w(e,t){this.name=e,this.p=new s(t,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function _(){w.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function E(){w.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function C(){w.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){w.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function j(e){if("string"==typeof e){var t=s._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function M(e){j.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}w.prototype._tmp=function(){var e=new s(null);return e.words=new Array(Math.ceil(this.n/13)),e},w.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},w.prototype.split=function(e,t){e.iushrn(this.n,0,t)},w.prototype.imulK=function(e){return e.imul(this.k)},i(_,w),_.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var s=e.words[9];for(t.words[t.length++]=s&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|s>>>22,s=o}s>>>=22,e.words[i-10]=s,0===s&&e.length>10?e.length-=10:e.length-=9},_.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(E,w),i(C,w),i(S,w),S.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},s._prime=function(e){if(k[e])return k[e];var t;if("k256"===e)t=new _;else if("p224"===e)t=new E;else if("p192"===e)t=new C;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return k[e]=t,t},j.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},j.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},j.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(u(e,e.umod(this.m)._forceRed(this)),e)},j.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},j.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},j.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},j.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},j.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},j.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},j.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},j.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},j.prototype.isqr=function(e){return this.imul(e,e.clone())},j.prototype.sqr=function(e){return this.mul(e,e)},j.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new s(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),o=0;!i.isZero()&&0===i.andln(1);)o++,i.iushrn(1);r(!i.isZero());var a=new s(1).toRed(this),c=a.redNeg(),l=this.m.subn(1).iushrn(1),u=this.m.bitLength();for(u=new s(2*u*u).toRed(this);0!==this.pow(u,l).cmp(c);)u.redIAdd(c);for(var p=this.pow(u,i),d=this.pow(e,i.addn(1).iushrn(1)),h=this.pow(e,i),f=o;0!==h.cmp(a);){for(var m=h,g=0;0!==m.cmp(a);g++)m=m.redSqr();r(g<f);var v=this.pow(p,new s(1).iushln(f-g-1));d=d.redMul(v),p=v.redSqr(),h=h.redMul(p),f=g}return d},j.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},j.prototype.pow=function(e,t){if(t.isZero())return new s(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new s(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],o=0,a=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var l=t.words[r],u=c-1;u>=0;u--){var p=l>>u&1;i!==n[0]&&(i=this.sqr(i)),0!==p||0!==o?(o<<=1,o|=p,(4===++a||0===r&&0===u)&&(i=this.mul(i,n[o]),a=0,o=0)):a=0}c=26}return i},j.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},j.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},s.mont=function(e){return new M(e)},i(M,j),M.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},M.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},M.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},M.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new s(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},M.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},98707:function(e,t,n){var r=n(52221);e.exports=function(e){var t=null,n=r(e);if(3===e.nodeType){var i=n.createRange();i.selectNodeContents(e),e=i}if("function"==typeof e.getBoundingClientRect&&(t=e.getBoundingClientRect(),e.startContainer&&0===t.left&&0===t.top)){var s=n.createElement("span");s.appendChild(n.createTextNode("​")),e.insertNode(s),t=s.getBoundingClientRect();var o=s.parentNode;o.removeChild(s),o.normalize()}return t}},71876:function(e,t,n){var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n<t.length;n++)t[n]=this.rand.getByte();return t},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var s=n(69627);if("function"!=typeof s.randomBytes)throw new Error("Not supported");i.prototype._rand=function(e){return s.randomBytes(e)}}catch(e){}},9111:function(e,t,n){var r=n(37225).Buffer;function i(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),i=0;i<t;i++)n[i]=e.readUInt32BE(4*i);return n}function s(e){for(;0<e.length;e++)e[0]=0}function o(e,t,n,r,i){for(var s,o,a,c,l=n[0],u=n[1],p=n[2],d=n[3],h=e[0]^t[0],f=e[1]^t[1],m=e[2]^t[2],g=e[3]^t[3],v=4,b=1;b<i;b++)s=l[h>>>24]^u[f>>>16&255]^p[m>>>8&255]^d[255&g]^t[v++],o=l[f>>>24]^u[m>>>16&255]^p[g>>>8&255]^d[255&h]^t[v++],a=l[m>>>24]^u[g>>>16&255]^p[h>>>8&255]^d[255&f]^t[v++],c=l[g>>>24]^u[h>>>16&255]^p[f>>>8&255]^d[255&m]^t[v++],h=s,f=o,m=a,g=c;return s=(r[h>>>24]<<24|r[f>>>16&255]<<16|r[m>>>8&255]<<8|r[255&g])^t[v++],o=(r[f>>>24]<<24|r[m>>>16&255]<<16|r[g>>>8&255]<<8|r[255&h])^t[v++],a=(r[m>>>24]<<24|r[g>>>16&255]<<16|r[h>>>8&255]<<8|r[255&f])^t[v++],c=(r[g>>>24]<<24|r[h>>>16&255]<<16|r[f>>>8&255]<<8|r[255&m])^t[v++],[s>>>=0,o>>>=0,a>>>=0,c>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],s=[[],[],[],[]],o=0,a=0,c=0;c<256;++c){var l=a^a<<1^a<<2^a<<3^a<<4;l=l>>>8^255&l^99,n[o]=l,r[l]=o;var u=e[o],p=e[u],d=e[p],h=257*e[l]^16843008*l;i[0][o]=h<<24|h>>>8,i[1][o]=h<<16|h>>>16,i[2][o]=h<<8|h>>>24,i[3][o]=h,h=16843009*d^65537*p^257*u^16843008*o,s[0][l]=h<<24|h>>>8,s[1][l]=h<<16|h>>>16,s[2][l]=h<<8|h>>>24,s[3][l]=h,0===o?o=a=1:(o=u^e[e[e[d^u]]],a^=e[e[a]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:s}}();function l(e){this._key=i(e),this._reset()}l.blockSize=16,l.keySize=32,l.prototype.blockSize=l.blockSize,l.prototype.keySize=l.keySize,l.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],s=0;s<t;s++)i[s]=e[s];for(s=t;s<r;s++){var o=i[s-1];s%t==0?(o=o<<8|o>>>24,o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o],o^=a[s/t|0]<<24):t>6&&s%t==4&&(o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o]),i[s]=i[s-t]^o}for(var l=[],u=0;u<r;u++){var p=r-u,d=i[p-(u%4?0:4)];l[u]=u<4||p<=4?d:c.INV_SUB_MIX[0][c.SBOX[d>>>24]]^c.INV_SUB_MIX[1][c.SBOX[d>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[d>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=l},l.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},l.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},l.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=o(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),s=r.allocUnsafe(16);return s.writeUInt32BE(n[0],0),s.writeUInt32BE(n[3],4),s.writeUInt32BE(n[2],8),s.writeUInt32BE(n[1],12),s},l.prototype.scrub=function(){s(this._keySchedule),s(this._invKeySchedule),s(this._key)},e.exports.AES=l},43667:function(e,t,n){var r=n(9111),i=n(37225).Buffer,s=n(69239),o=n(59503),a=n(83579),c=n(35375),l=n(35127);function u(e,t,n,o){s.call(this);var c=i.alloc(4,0);this._cipher=new r.AES(t);var u=this._cipher.encryptBlock(c);this._ghash=new a(u),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new a(n),s=t.length,o=s%16;r.update(t),o&&(o=16-o,r.update(i.alloc(o,0))),r.update(i.alloc(8,0));var c=8*s,u=i.alloc(8);u.writeUIntBE(c,0,8),r.update(u),e._finID=r.state;var p=i.from(e._finID);return l(p),p}(this,n,u),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}o(u,s),u.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},u.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;i<r;++i)n+=e[i]^t[i];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},u.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},u.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},u.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=u},6123:function(e,t,n){var r=n(37180),i=n(68161),s=n(4317);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(s)}},68161:function(e,t,n){var r=n(43667),i=n(37225).Buffer,s=n(54354),o=n(76085),a=n(69239),c=n(9111),l=n(51105);function u(e,t,n){a.call(this),this._cache=new p,this._last=void 0,this._cipher=new c.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function p(){this.cache=i.allocUnsafe(0)}function d(e,t,n){var a=s[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==a.mode&&n.length!==a.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===a.type?new o(a.module,t,n,!0):"auth"===a.type?new r(a.module,t,n,!0):new u(a.module,t,n)}n(59503)(u,a),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var n=-1;for(;++n<t;)if(e[n+(16-t)]!==t)throw new Error("unable to decrypt data");if(16===t)return;return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},p.prototype.add=function(e){this.cache=i.concat([this.cache,e])},p.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},p.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=s[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=l(t,!1,n.key,n.iv);return d(e,r.key,r.iv)},t.createDecipheriv=d},37180:function(e,t,n){var r=n(54354),i=n(43667),s=n(37225).Buffer,o=n(76085),a=n(69239),c=n(9111),l=n(51105);function u(e,t,n){a.call(this),this._cache=new d,this._cipher=new c.AES(t),this._prev=s.from(n),this._mode=e,this._autopadding=!0}n(59503)(u,a),u.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return s.concat(r)};var p=s.alloc(16,16);function d(){this.cache=s.allocUnsafe(0)}function h(e,t,n){var a=r[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=s.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=s.from(n)),"GCM"!==a.mode&&n.length!==a.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===a.type?new o(a.module,t,n):"auth"===a.type?new i(a.module,t,n):new u(a.module,t,n)}u.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(p))throw this._cipher.scrub(),new Error("data not multiple of block length")},u.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},d.prototype.add=function(e){this.cache=s.concat([this.cache,e])},d.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},d.prototype.flush=function(){for(var e=16-this.cache.length,t=s.allocUnsafe(e),n=-1;++n<e;)t.writeUInt8(e,n);return s.concat([this.cache,t])},t.createCipheriv=h,t.createCipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var i=l(t,!1,n.key,n.iv);return h(e,i.key,i.iv)}},83579:function(e,t,n){var r=n(37225).Buffer,i=r.alloc(16,0);function s(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function o(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}o.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},o.prototype._multiply=function(){for(var e,t,n,r=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],i=[0,0,0,0],o=-1;++o<128;){for(0!=(this.state[~~(o/8)]&1<<7-o%8)&&(i[0]^=r[0],i[1]^=r[1],i[2]^=r[2],i[3]^=r[3]),n=0!=(1&r[3]),t=3;t>0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=s(i)},o.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},o.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(s([0,e,0,t])),this.state},e.exports=o},35127:function(e){e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},62113:function(e,t,n){var r=n(35375);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return r(i,n)}},1634:function(e,t,n){var r=n(37225).Buffer,i=n(35375);function s(e,t,n){var s=t.length,o=i(t,e._cache);return e._cache=e._cache.slice(s),e._prev=r.concat([e._prev,n?t:o]),o}t.encrypt=function(e,t,n){for(var i,o=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){o=r.concat([o,s(e,t,n)]);break}i=e._cache.length,o=r.concat([o,s(e,t.slice(0,i),n)]),t=t.slice(i)}return o}},34422:function(e,t,n){var r=n(37225).Buffer;function i(e,t,n){for(var r,i,o=-1,a=0;++o<8;)r=t&1<<7-o?128:0,a+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^r))>>o%8,e._prev=s(e._prev,n?r:i);return a}function s(e,t){var n=e.length,i=-1,s=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i<n;)s[i]=e[i]<<1|e[i+1]>>7;return s}t.encrypt=function(e,t,n){for(var s=t.length,o=r.allocUnsafe(s),a=-1;++a<s;)o[a]=i(e,t[a],n);return o}},46750:function(e,t,n){var r=n(37225).Buffer;function i(e,t,n){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:i])]),i}t.encrypt=function(e,t,n){for(var s=t.length,o=r.allocUnsafe(s),a=-1;++a<s;)o[a]=i(e,t[a],n);return o}},92204:function(e,t,n){var r=n(35375),i=n(37225).Buffer,s=n(35127);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return s(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),s=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var a=0;a<n;a++){var c=o(e),l=s+16*a;e._cache.writeUInt32BE(c[0],l+0),e._cache.writeUInt32BE(c[1],l+4),e._cache.writeUInt32BE(c[2],l+8),e._cache.writeUInt32BE(c[3],l+12)}var u=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,u)}},59252:function(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},54354:function(e,t,n){var r={ECB:n(59252),CBC:n(62113),CFB:n(1634),CFB8:n(46750),CFB1:n(34422),OFB:n(985),CTR:n(92204),GCM:n(92204)},i=n(4317);for(var s in i)i[s].module=r[i[s].mode];e.exports=i},985:function(e,t,n){var r=n(90778).Buffer,i=n(35375);function s(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=r.concat([e._cache,s(e)]);var n=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),i(t,n)}},76085:function(e,t,n){var r=n(9111),i=n(37225).Buffer,s=n(69239);function o(e,t,n,o){s.call(this),this._cipher=new r.AES(t),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._mode=e}n(59503)(o,s),o.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},e.exports=o},83936:function(e,t,n){var r=n(63079),i=n(6123),s=n(54354),o=n(52324),a=n(51105);function c(e,t,n){if(e=e.toLowerCase(),s[e])return i.createCipheriv(e,t,n);if(o[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function l(e,t,n){if(e=e.toLowerCase(),s[e])return i.createDecipheriv(e,t,n);if(o[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),s[e])n=s[e].key,r=s[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");n=8*o[e].key,r=o[e].iv}var i=a(t,!1,n,r);return c(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=c,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),s[e])n=s[e].key,r=s[e].iv;else{if(!o[e])throw new TypeError("invalid suite type");n=8*o[e].key,r=o[e].iv}var i=a(t,!1,n,r);return l(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=l,t.listCiphers=t.getCiphers=function(){return Object.keys(o).concat(i.getCiphers())}},63079:function(e,t,n){var r=n(69239),i=n(98625),s=n(59503),o=n(37225).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function c(e){r.call(this);var t,n=e.mode.toLowerCase(),i=a[n];t=e.decrypt?"decrypt":"encrypt";var s=e.key;o.isBuffer(s)||(s=o.from(s)),"des-ede"!==n&&"des-ede-cbc"!==n||(s=o.concat([s,s.slice(0,8)]));var c=e.iv;o.isBuffer(c)||(c=o.from(c)),this._des=i.create({key:s,iv:c,type:t})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=c,s(c,r),c.prototype._update=function(e){return o.from(this._des.update(e))},c.prototype._final=function(){return o.from(this._des.final())}},52324:function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},8568:function(e,t,n){var r=n(90778).Buffer,i=n(53380),s=n(35175);function o(e){var t,n=e.modulus.byteLength();do{t=new i(s(n))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function a(e,t){var n=function(e){var t=o(e);return{blinder:t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),s=t.modulus.byteLength(),a=new i(e).mul(n.blinder).umod(t.modulus),c=a.toRed(i.mont(t.prime1)),l=a.toRed(i.mont(t.prime2)),u=t.coefficient,p=t.prime1,d=t.prime2,h=c.redPow(t.exponent1).fromRed(),f=l.redPow(t.exponent2).fromRed(),m=h.isub(f).imul(u).umod(p).imul(d);return f.iadd(m).imul(n.unblinder).umod(t.modulus).toArrayLike(r,"be",s)}a.getr=o,e.exports=a},60451:function(e,t,n){e.exports=n(1877)},29908:function(e,t,n){var r=n(37225).Buffer,i=n(77439),s=n(7130),o=n(59503),a=n(75043),c=n(53075),l=n(1877);function u(e){s.Writable.call(this);var t=l[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function p(e){s.Writable.call(this);var t=l[e];if(!t)throw new Error("Unknown message digest");this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function d(e){return new u(e)}function h(e){return new p(e)}Object.keys(l).forEach((function(e){l[e].id=r.from(l[e].id,"hex"),l[e.toLowerCase()]=l[e]})),o(u,s.Writable),u.prototype._write=function(e,t,n){this._hash.update(e),n()},u.prototype.update=function(e,t){return"string"==typeof e&&(e=r.from(e,t)),this._hash.update(e),this},u.prototype.sign=function(e,t){this.end();var n=this._hash.digest(),r=a(n,e,this._hashType,this._signType,this._tag);return t?r.toString(t):r},o(p,s.Writable),p.prototype._write=function(e,t,n){this._hash.update(e),n()},p.prototype.update=function(e,t){return"string"==typeof e&&(e=r.from(e,t)),this._hash.update(e),this},p.prototype.verify=function(e,t,n){"string"==typeof t&&(t=r.from(t,n)),this.end();var i=this._hash.digest();return c(t,i,e,this._signType,this._tag)},e.exports={Sign:d,Verify:h,createSign:d,createVerify:h}},75043:function(e,t,n){var r=n(37225).Buffer,i=n(40445),s=n(8568),o=n(73931).ec,a=n(53380),c=n(87758),l=n(72968);function u(e,t,n,s){if((e=r.from(e.toArray())).length<t.byteLength()){var o=r.alloc(t.byteLength()-e.length);e=r.concat([o,e])}var a=n.length,c=function(e,t){e=(e=p(e,t)).mod(t);var n=r.from(e.toArray());if(n.length<t.byteLength()){var i=r.alloc(t.byteLength()-n.length);n=r.concat([i,n])}return n}(n,t),l=r.alloc(a);l.fill(1);var u=r.alloc(a);return u=i(s,u).update(l).update(r.from([0])).update(e).update(c).digest(),l=i(s,u).update(l).digest(),{k:u=i(s,u).update(l).update(r.from([1])).update(e).update(c).digest(),v:l=i(s,u).update(l).digest()}}function p(e,t){var n=new a(e),r=(e.length<<3)-t.bitLength();return r>0&&n.ishrn(r),n}function d(e,t,n){var s,o;do{for(s=r.alloc(0);8*s.length<e.bitLength();)t.v=i(n,t.k).update(t.v).digest(),s=r.concat([s,t.v]);o=p(s,e),t.k=i(n,t.k).update(t.v).update(r.from([0])).digest(),t.v=i(n,t.k).update(t.v).digest()}while(-1!==o.cmp(e));return o}function h(e,t,n,r){return e.toRed(a.mont(n)).redPow(t).fromRed().mod(r)}e.exports=function(e,t,n,i,f){var m=c(t);if(m.curve){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");return function(e,t){var n=l[t.curve.join(".")];if(!n)throw new Error("unknown curve "+t.curve.join("."));var i=new o(n).keyFromPrivate(t.privateKey).sign(e);return r.from(i.toDER())}(e,m)}if("dsa"===m.type){if("dsa"!==i)throw new Error("wrong private key type");return function(e,t,n){var i,s=t.params.priv_key,o=t.params.p,c=t.params.q,l=t.params.g,f=new a(0),m=p(e,c).mod(c),g=!1,v=u(s,c,e,n);for(;!1===g;)f=h(l,i=d(c,v,n),o,c),0===(g=i.invm(c).imul(m.add(s.mul(f))).mod(c)).cmpn(0)&&(g=!1,f=new a(0));return function(e,t){e=e.toArray(),t=t.toArray(),128&e[0]&&(e=[0].concat(e));128&t[0]&&(t=[0].concat(t));var n=[48,e.length+t.length+4,2,e.length];return n=n.concat(e,[2,t.length],t),r.from(n)}(f,g)}(e,m,n)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");e=r.concat([f,e]);for(var g=m.modulus.byteLength(),v=[0,1];e.length+v.length+1<g;)v.push(255);v.push(0);for(var b=-1;++b<e.length;)v.push(e[b]);return s(v,m)},e.exports.getKey=u,e.exports.makeKey=d},53075:function(e,t,n){var r=n(37225).Buffer,i=n(53380),s=n(73931).ec,o=n(87758),a=n(72968);function c(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,t,n,l,u){var p=o(n);if("ec"===p.type){if("ecdsa"!==l&&"ecdsa/rsa"!==l)throw new Error("wrong public key type");return function(e,t,n){var r=a[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var i=new s(r),o=n.data.subjectPrivateKey.data;return i.verify(t,e,o)}(e,t,p)}if("dsa"===p.type){if("dsa"!==l)throw new Error("wrong public key type");return function(e,t,n){var r=n.data.p,s=n.data.q,a=n.data.g,l=n.data.pub_key,u=o.signature.decode(e,"der"),p=u.s,d=u.r;c(p,s),c(d,s);var h=i.mont(r),f=p.invm(s);return 0===a.toRed(h).redPow(new i(t).mul(f).mod(s)).fromRed().mul(l.toRed(h).redPow(d.mul(f).mod(s)).fromRed()).mod(r).mod(s).cmp(d)}(e,t,p)}if("rsa"!==l&&"ecdsa/rsa"!==l)throw new Error("wrong public key type");t=r.concat([u,t]);for(var d=p.modulus.byteLength(),h=[1],f=0;t.length+h.length+2<d;)h.push(255),f++;h.push(0);for(var m=-1;++m<t.length;)h.push(t[m]);h=r.from(h);var g=i.mont(p.modulus);e=(e=new i(e).toRed(g)).redPow(new i(p.publicExponent)),e=r.from(e.fromRed().toArray());var v=f<8?1:0;for(d=Math.min(e.length,h.length),e.length!==h.length&&(v=1),m=-1;++m<d;)v|=e[m]^h[m];return 0===v}},35375:function(e,t,n){var r=n(90778).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),i=new r(n),s=0;s<n;++s)i[s]=e[s]^t[s];return i}},90778:function(e,t,n){"use strict";var r=n(55246);const i=n(62803),s=n(23644),o="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){+e!=e&&(e=0);return l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function c(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return u(e,t,n)}function u(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|g(e,t);let r=c(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(G(e,Uint8Array)){const t=new Uint8Array(e);return f(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(G(e,ArrayBuffer)||e&&G(e.buffer,ArrayBuffer))return f(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(G(e,SharedArrayBuffer)||e&&G(e.buffer,SharedArrayBuffer)))return f(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return l.from(r,t,n);const i=function(e){if(l.isBuffer(e)){const t=0|m(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||Y(e.length)?c(0):h(e);if("Buffer"===e.type&&Array.isArray(e.data))return h(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function p(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return p(e),c(e<0?0:0|m(e))}function h(e){const t=e.length<0?0:0|m(e.length),n=c(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function f(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,l.prototype),r}function m(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function g(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||G(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return $(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(i)return r?-1:$(e).length;t=(""+t).toLowerCase(),i=!0}}function v(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,n);case"utf8":case"utf-8":return M(this,t,n);case"ascii":return N(this,t,n);case"latin1":case"binary":return A(this,t,n);case"base64":return j(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return T(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function b(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),Y(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=l.from(t,r)),l.isBuffer(t))return 0===t.length?-1:k(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):k(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function k(e,t,n,r,i){let s,o=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,a/=2,c/=2,n/=2}function l(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){let r=-1;for(s=n;s<a;s++)if(l(e,s)===l(t,-1===r?0:s-r)){if(-1===r&&(r=s),s-r+1===c)return r*o}else-1!==r&&(s-=s-r),r=-1}else for(n+c>a&&(n=a-c),s=n;s>=0;s--){let n=!0;for(let r=0;r<c;r++)if(l(e,s+r)!==l(t,r)){n=!1;break}if(n)return s}return-1}function w(e,t,n,r){n=Number(n)||0;const i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;const s=t.length;let o;for(r>s/2&&(r=s/2),o=0;o<r;++o){const r=parseInt(t.substr(2*o,2),16);if(Y(r))return o;e[n+o]=r}return o}function _(e,t,n,r){return K($(t,e.length-n),e,n,r)}function E(e,t,n,r){return K(function(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function C(e,t,n,r){return K(J(t),e,n,r)}function S(e,t,n,r){return K(function(e,t){let n,r,i;const s=[];for(let o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,s.push(i),s.push(r);return s}(t,e.length-n),e,n,r)}function j(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function M(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i<n;){const t=e[i];let s=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o<=n){let n,r,a,c;switch(o){case 1:t<128&&(s=t);break;case 2:n=e[i+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(s=c));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(c=(15&t)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(s=c));break;case 4:n=e[i+1],r=e[i+2],a=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(s=c))}}null===s?(s=65533,o=1):s>65535&&(s-=65536,r.push(s>>>10&1023|55296),s=56320|1023&s),r.push(s),i+=o}return function(e){const t=e.length;if(t<=x)return String.fromCharCode.apply(String,e);let n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=x));return n}(r)}t.kMaxLength=a,l.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),l.TYPED_ARRAY_SUPPORT||void 0===r||"function"!=typeof r.error||r.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(l.prototype,"parent",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.buffer}}),Object.defineProperty(l.prototype,"offset",{enumerable:!0,get:function(){if(l.isBuffer(this))return this.byteOffset}}),l.poolSize=8192,l.from=function(e,t,n){return u(e,t,n)},Object.setPrototypeOf(l.prototype,Uint8Array.prototype),Object.setPrototypeOf(l,Uint8Array),l.alloc=function(e,t,n){return function(e,t,n){return p(e),e<=0?c(e):void 0!==t?"string"==typeof n?c(e).fill(t,n):c(e).fill(t):c(e)}(e,t,n)},l.allocUnsafe=function(e){return d(e)},l.allocUnsafeSlow=function(e){return d(e)},l.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==l.prototype},l.compare=function(e,t){if(G(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),G(t,Uint8Array)&&(t=l.from(t,t.offset,t.byteLength)),!l.isBuffer(e)||!l.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,s=Math.min(n,r);i<s;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},l.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},l.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return l.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=l.allocUnsafe(t);let i=0;for(n=0;n<e.length;++n){let t=e[n];if(G(t,Uint8Array))i+t.length>r.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},l.byteLength=g,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)b(this,t,t+1);return this},l.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},l.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},l.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?M(this,0,e):v.apply(this,arguments)},l.prototype.toLocaleString=l.prototype.toString,l.prototype.equals=function(e){if(!l.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===l.compare(this,e)},l.prototype.inspect=function(){let e="";const n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},o&&(l.prototype[o]=l.prototype.inspect),l.prototype.compare=function(e,t,n,r,i){if(G(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let s=(i>>>=0)-(r>>>=0),o=(n>>>=0)-(t>>>=0);const a=Math.min(s,o),c=this.slice(r,i),u=e.slice(t,n);for(let e=0;e<a;++e)if(c[e]!==u[e]){s=c[e],o=u[e];break}return s<o?-1:o<s?1:0},l.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},l.prototype.indexOf=function(e,t,n){return y(this,e,t,n,!0)},l.prototype.lastIndexOf=function(e,t,n){return y(this,e,t,n,!1)},l.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let s=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return _(this,e,t,n);case"ascii":case"latin1":case"binary":return E(this,e,t,n);case"base64":return C(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,n);default:if(s)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),s=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const x=4096;function N(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function A(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function O(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i="";for(let r=t;r<n;++r)i+=X[e[r]];return i}function T(e,t,n){const r=e.slice(t,n);let i="";for(let e=0;e<r.length-1;e+=2)i+=String.fromCharCode(r[e]+256*r[e+1]);return i}function P(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,n,r,i,s){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<s)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function R(e,t,n,r,i){V(t,r,i,e,n,7);let s=Number(t&BigInt(4294967295));e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,n}function U(e,t,n,r,i){V(t,r,i,e,n,7);let s=Number(t&BigInt(4294967295));e[n+7]=s,s>>=8,e[n+6]=s,s>>=8,e[n+5]=s,s>>=8,e[n+4]=s;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=o,o>>=8,e[n+2]=o,o>>=8,e[n+1]=o,o>>=8,e[n]=o,n+8}function Z(e,t,n,r,i,s){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function D(e,t,n,r,i){return t=+t,n>>>=0,i||Z(e,0,n,4),s.write(e,t,n,r,23,4),n+4}function L(e,t,n,r,i){return t=+t,n>>>=0,i||Z(e,0,n,8),s.write(e,t,n,r,52,8),n+8}l.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,l.prototype),r},l.prototype.readUintLE=l.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,s=0;for(;++s<t&&(i*=256);)r+=this[e+s]*i;return r},l.prototype.readUintBE=l.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))})),l.prototype.readBigUInt64BE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)})),l.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=this[e],i=1,s=0;for(;++s<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},l.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||P(e,t,this.length);let r=t,i=1,s=this[e+--r];for(;r>0&&(i*=256);)s+=this[e+--r]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},l.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),l.prototype.readBigInt64BE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||H(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),l.prototype.readFloatLE=function(e,t){return e>>>=0,t||P(e,4,this.length),s.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),s.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),s.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),s.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){I(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},l.prototype.writeUintBE=l.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){I(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+n},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=Q((function(e,t=0){return R(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=Q((function(e,t=0){return U(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);I(this,e,t,n,r-1,-r)}let i=0,s=1,o=0;for(this[t]=255&e;++i<n&&(s*=256);)e<0&&0===o&&0!==this[t+i-1]&&(o=1),this[t+i]=(e/s>>0)-o&255;return t+n},l.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);I(this,e,t,n,r-1,-r)}let i=n-1,s=1,o=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===o&&0!==this[t+i+1]&&(o=1),this[t+i]=(e/s>>0)-o&255;return t+n},l.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=Q((function(e,t=0){return R(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=Q((function(e,t=0){return U(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,n){return D(this,e,t,!0,n)},l.prototype.writeFloatBE=function(e,t,n){return D(this,e,t,!1,n)},l.prototype.writeDoubleLE=function(e,t,n){return L(this,e,t,!0,n)},l.prototype.writeDoubleBE=function(e,t,n){return L(this,e,t,!1,n)},l.prototype.copy=function(e,t,n,r){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const i=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},l.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!l.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){const t=e.charCodeAt(0);("utf8"===r&&t<128||"latin1"===r)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;let i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{const s=l.isBuffer(e)?e:l.from(e,r),o=s.length;if(0===o)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(i=0;i<n-t;++i)this[i+t]=s[i%o]}return this};const z={};function B(e,t,n){z[e]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function F(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function V(e,t,n,r,i,s){if(e>n||e<t){const r="bigint"==typeof t?"n":"";let i;throw i=s>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(s+1)}${r}`:`>= -(2${r} ** ${8*(s+1)-1}${r}) and < 2 ** ${8*(s+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new z.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||H(t,e.length-(n+1))}(r,i,s)}function q(e,t){if("number"!=typeof e)throw new z.ERR_INVALID_ARG_TYPE(t,"number",e)}function H(e,t,n){if(Math.floor(e)!==e)throw q(e,n),new z.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new z.ERR_BUFFER_OUT_OF_BOUNDS;throw new z.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}B("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),B("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),B("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=F(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=F(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const W=/[^+/0-9A-Za-z-_]/g;function $(e,t){let n;t=t||1/0;const r=e.length;let i=null;const s=[];for(let o=0;o<r;++o){if(n=e.charCodeAt(o),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&s.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&s.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return s}function J(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(W,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function K(e,t,n,r){let i;for(i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function G(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Y(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Q(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},16422:function(e,t,n){"use strict";var r=n(25165),i=n(43120),s=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&s(e,".prototype.")>-1?i(n):n}},43120:function(e,t,n){"use strict";var r=n(75433),i=n(25165),s=i("%Function.prototype.apply%"),o=i("%Function.prototype.call%"),a=i("%Reflect.apply%",!0)||r.call(o,s),c=i("%Object.getOwnPropertyDescriptor%",!0),l=i("%Object.defineProperty%",!0),u=i("%Math.max%");if(l)try{l({},"a",{value:1})}catch(e){l=null}e.exports=function(e){var t=a(r,o,arguments);if(c&&l){var n=c(t,"length");n.configurable&&l(t,"length",{value:1+u(0,e.length-(arguments.length-1))})}return t};var p=function(){return a(r,s,arguments)};l?l(e.exports,"apply",{value:p}):e.exports.apply=p},69239:function(e,t,n){var r=n(37225).Buffer,i=n(81717).Transform,s=n(3247).s;function o(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(59503)(o,i),o.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new s(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=o},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var s=typeof n;if("string"===s||"number"===s)e.push(n);else if(Array.isArray(n)){if(n.length){var o=i.apply(null,n);o&&e.push(o)}}else if("object"===s)if(n.toString===Object.prototype.toString)for(var a in n)r.call(n,a)&&n[a]&&e.push(a);else e.push(n.toString())}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(n=function(){return i}.apply(t,[]))||(e.exports=n)}()},26767:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=o(n(6670));t.default=c;var i=o(n(58407)),s=o(n(96121));function o(e){return e&&e.__esModule?e:{default:e}}var a=new r.default;function c(e,t){return a.set(e,t),function(){a.delete(e)}}function l(e){a.forEach((function(t,n){(0,s.default)(n,e.target)||t.call(n,e)}))}function u(e){e||(e=document),i.default.bind(e,"click",l)}c.globalClick=l,c.install=u,"undefined"!=typeof document&&u(document),e.exports=t.default},31439:function(e){var t;t=function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=6)}([function(e,t){e.exports=function(e){var t;if("SELECT"===e.nodeName)e.focus(),t=e.value;else if("INPUT"===e.nodeName||"TEXTAREA"===e.nodeName){var n=e.hasAttribute("readonly");n||e.setAttribute("readonly",""),e.select(),e.setSelectionRange(0,e.value.length),n||e.removeAttribute("readonly"),t=e.value}else{e.hasAttribute("contenteditable")&&e.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(e),r.removeAllRanges(),r.addRange(i),t=r.toString()}return t}},function(e,t){function n(){}n.prototype={on:function(e,t,n){var r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:n}),this},once:function(e,t,n){var r=this;function i(){r.off(e,i),t.apply(n,arguments)}return i._=t,this.on(e,i,n)},emit:function(e){for(var t=[].slice.call(arguments,1),n=((this.e||(this.e={}))[e]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,t);return this},off:function(e,t){var n=this.e||(this.e={}),r=n[e],i=[];if(r&&t)for(var s=0,o=r.length;s<o;s++)r[s].fn!==t&&r[s].fn._!==t&&i.push(r[s]);return i.length?n[e]=i:delete n[e],this}},e.exports=n,e.exports.TinyEmitter=n},function(e,t,n){var r=n(3),i=n(4);e.exports=function(e,t,n){if(!e&&!t&&!n)throw new Error("Missing required arguments");if(!r.string(t))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(e))return function(e,t,n){return e.addEventListener(t,n),{destroy:function(){e.removeEventListener(t,n)}}}(e,t,n);if(r.nodeList(e))return function(e,t,n){return Array.prototype.forEach.call(e,(function(e){e.addEventListener(t,n)})),{destroy:function(){Array.prototype.forEach.call(e,(function(e){e.removeEventListener(t,n)}))}}}(e,t,n);if(r.string(e))return function(e,t,n){return i(document.body,e,t,n)}(e,t,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(e,t){t.node=function(e){return void 0!==e&&e instanceof HTMLElement&&1===e.nodeType},t.nodeList=function(e){var n=Object.prototype.toString.call(e);return void 0!==e&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in e&&(0===e.length||t.node(e[0]))},t.string=function(e){return"string"==typeof e||e instanceof String},t.fn=function(e){return"[object Function]"===Object.prototype.toString.call(e)}},function(e,t,n){var r=n(5);function i(e,t,n,r,i){var o=s.apply(this,arguments);return e.addEventListener(n,o,i),{destroy:function(){e.removeEventListener(n,o,i)}}}function s(e,t,n,i){return function(n){n.delegateTarget=r(n.target,t),n.delegateTarget&&i.call(e,n)}}e.exports=function(e,t,n,r,s){return"function"==typeof e.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return i(e,t,n,r,s)})))}},function(e,t){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}e.exports=function(e,t){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(t))return e;e=e.parentNode}}},function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),s="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},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return o(e,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var e=this,t="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[t?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=i()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=i()(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":s(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function(){return this._target}}]),e}(),c=a,l=n(1),u=n.n(l),p=n(2),d=n.n(p),h="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},f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),m=function(e){function t(e,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);var r=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return r.resolveOptions(n),r.listenClick(e),r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),f(t,[{key:"resolveOptions",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===h(e.container)?e.container:document.body}},{key:"listenClick",value:function(e){var t=this;this.listener=d()(e,"click",(function(e){return t.onClick(e)}))}},{key:"onClick",value:function(e){var t=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c({action:this.action(t),target:this.target(t),text:this.text(t),container:this.container,trigger:t,emitter:this})}},{key:"defaultAction",value:function(e){return g("action",e)}},{key:"defaultTarget",value:function(e){var t=g("target",e);if(t)return document.querySelector(t)}},{key:"defaultText",value:function(e){return g("text",e)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],t="string"==typeof e?[e]:e,n=!!document.queryCommandSupported;return t.forEach((function(e){n=n&&!!document.queryCommandSupported(e)})),n}}]),t}(u.a);function g(e,t){var n="data-clipboard-"+e;if(t.hasAttribute(n))return t.getAttribute(n)}t.default=m}]).default},e.exports=t()},58407:function(e,t){var n=window.addEventListener?"addEventListener":"attachEvent",r=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"";t.bind=function(e,t,r,s){return e[n](i+t,r,s||!1),r},t.unbind=function(e,t,n,s){return e[r](i+t,n,s||!1),n}},97236:function(e,t,n){function r(e){var t,n;for(t=[],n=0;n<e.length;n++)t.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_"[e[n]%64]);return t.join("")}e.exports=function(e){if("undefined"!=typeof window){if(void 0!==window.crypto)return r(window.crypto.getRandomValues(new Uint8Array(e)));for(var t=new Array(e),i=0;i<e;i++)t[i]=Math.floor(256*Math.random());return r(t)}var s=n(50142);try{return r(s.randomBytes(e))}catch(t){return r(s.pseudoRandomBytes(e))}}},55246:function(e,t,n){var r=n(23333),i=n(90605);function s(){return(new Date).getTime()}var o,a=Array.prototype.slice,c={};o="undefined"!=typeof window&&window.console||"undefined"!=typeof window&&window.console?window.console:{};for(var l=[[function(){},"log"],[function(){o.log.apply(o,arguments)},"info"],[function(){o.log.apply(o,arguments)},"warn"],[function(){o.warn.apply(o,arguments)},"error"],[function(e){c[e]=s()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=s()-t;o.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),o.error(e.stack)},"trace"],[function(e){o.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);i.ok(!1,r.format.apply(null,t))}},"assert"]],u=0;u<l.length;u++){var p=l[u],d=p[0],h=p[1];o[h]||(o[h]=d)}e.exports=o},92916:function(e,t,n){n(14183),n(45817),n(63564),n(89118),n(28623),n(17310),n(46495),e.exports=n(76891).Map},30841:function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},93126:function(e){e.exports=function(){}},82895:function(e){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},7567:function(e,t,n){var r=n(77418);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},96384:function(e,t,n){var r=n(56281);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},70110:function(e,t,n){var r=n(29236),i=n(82561),s=n(49012);e.exports=function(e){return function(t,n,o){var a,c=r(t),l=i(c.length),u=s(o,l);if(e&&n!=n){for(;l>u;)if((a=c[u++])!=a)return!0}else for(;l>u;u++)if((e||u in c)&&c[u]===n)return e||u||0;return!e&&-1}}},94781:function(e,t,n){var r=n(66897),i=n(59589),s=n(68061),o=n(82561),a=n(89615);e.exports=function(e,t){var n=1==e,c=2==e,l=3==e,u=4==e,p=6==e,d=5==e||p,h=t||a;return function(t,a,f){for(var m,g,v=s(t),b=i(v),y=r(a,f,3),k=o(b.length),w=0,_=n?h(t,k):c?h(t,0):void 0;k>w;w++)if((d||w in b)&&(g=y(m=b[w],w,v),e))if(n)_[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:_.push(m)}else if(u)return!1;return p?-1:l||u?u:_}}},75015:function(e,t,n){var r=n(77418),i=n(18457),s=n(65773)("species");e.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},89615:function(e,t,n){var r=n(75015);e.exports=function(e,t){return new(r(e))(t)}},42318:function(e,t,n){var r=n(51695),i=n(65773)("toStringTag"),s="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:s?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},51695:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},38636:function(e,t,n){"use strict";var r=n(635).f,i=n(39638),s=n(34887),o=n(66897),a=n(82895),c=n(56281),l=n(91851),u=n(61407),p=n(5765),d=n(88599),h=n(74177).fastKey,f=n(39696),m=d?"_s":"size",g=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,l){var u=e((function(e,r){a(e,u,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,null!=r&&c(r,n,e[l],e)}));return s(u.prototype,{clear:function(){for(var e=f(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var n=f(this,t),r=g(n,e);if(r){var i=r.n,s=r.p;delete n._i[r.i],r.r=!0,s&&(s.n=i),i&&(i.p=s),n._f==r&&(n._f=i),n._l==r&&(n._l=s),n[m]--}return!!r},forEach:function(e){f(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!g(f(this,t),e)}}),d&&r(u.prototype,"size",{get:function(){return f(this,t)[m]}}),u},def:function(e,t,n){var r,i,s=g(e,t);return s?s.v=n:(e._l=s={i:i=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=s),r&&(r.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:g,setStrong:function(e,t,n){l(e,t,(function(e,n){this._t=f(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?u(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(e._t=void 0,u(1))}),n?"entries":"values",!n,!0),p(t)}}},35353:function(e,t,n){var r=n(42318),i=n(96384);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},85770:function(e,t,n){"use strict";var r=n(59507),i=n(87043),s=n(74177),o=n(3641),a=n(82283),c=n(34887),l=n(56281),u=n(82895),p=n(77418),d=n(7891),h=n(635).f,f=n(94781)(0),m=n(88599);e.exports=function(e,t,n,g,v,b){var y=r[e],k=y,w=v?"set":"add",_=k&&k.prototype,E={};return m&&"function"==typeof k&&(b||_.forEach&&!o((function(){(new k).entries().next()})))?(k=t((function(t,n){u(t,k,e,"_c"),t._c=new y,null!=n&&l(n,v,t[w],t)})),f("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in _)||b&&"clear"==e||a(k.prototype,e,(function(n,r){if(u(this,k,e),!t&&b&&!p(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i}))})),b||h(k.prototype,"size",{get:function(){return this._c.size}})):(k=g.getConstructor(t,e,v,w),c(k.prototype,n),s.NEED=!0),d(k,e),E[e]=k,i(i.G+i.W+i.F,E),b||g.setStrong(k,e,v),k}},76891:function(e){var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},66897:function(e,t,n){var r=n(30841);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},91625:function(e){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},88599:function(e,t,n){e.exports=!n(3641)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},14595:function(e,t,n){var r=n(77418),i=n(59507).document,s=r(i)&&r(i.createElement);e.exports=function(e){return s?i.createElement(e):{}}},93900:function(e){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},87043:function(e,t,n){var r=n(59507),i=n(76891),s=n(66897),o=n(82283),a=n(6649),c=function(e,t,n){var l,u,p,d=e&c.F,h=e&c.G,f=e&c.S,m=e&c.P,g=e&c.B,v=e&c.W,b=h?i:i[t]||(i[t]={}),y=b.prototype,k=h?r:f?r[t]:(r[t]||{}).prototype;for(l in h&&(n=t),n)(u=!d&&k&&void 0!==k[l])&&a(b,l)||(p=u?k[l]:n[l],b[l]=h&&"function"!=typeof k[l]?n[l]:g&&u?s(p,r):v&&k[l]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(p):m&&"function"==typeof p?s(Function.call,p):p,m&&((b.virtual||(b.virtual={}))[l]=p,e&c.R&&y&&!y[l]&&o(y,l,p)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},3641:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},56281:function(e,t,n){var r=n(66897),i=n(65201),s=n(19959),o=n(7567),a=n(82561),c=n(68246),l={},u={},p=e.exports=function(e,t,n,p,d){var h,f,m,g,v=d?function(){return e}:c(e),b=r(n,p,t?2:1),y=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(s(v)){for(h=a(e.length);h>y;y++)if((g=t?b(o(f=e[y])[0],f[1]):b(e[y]))===l||g===u)return g}else for(m=v.call(e);!(f=m.next()).done;)if((g=i(m,b,f.value,t))===l||g===u)return g};p.BREAK=l,p.RETURN=u},59507:function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},6649:function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},82283:function(e,t,n){var r=n(635),i=n(2632);e.exports=n(88599)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},42232:function(e,t,n){var r=n(59507).document;e.exports=r&&r.documentElement},30801:function(e,t,n){e.exports=!n(88599)&&!n(3641)((function(){return 7!=Object.defineProperty(n(14595)("div"),"a",{get:function(){return 7}}).a}))},59589:function(e,t,n){var r=n(51695);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},19959:function(e,t,n){var r=n(43617),i=n(65773)("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||s[i]===e)}},18457:function(e,t,n){var r=n(51695);e.exports=Array.isArray||function(e){return"Array"==r(e)}},77418:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},65201:function(e,t,n){var r=n(7567);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var s=e.return;throw void 0!==s&&r(s.call(e)),t}}},11949:function(e,t,n){"use strict";var r=n(39638),i=n(2632),s=n(7891),o={};n(82283)(o,n(65773)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),s(e,t+" Iterator")}},91851:function(e,t,n){"use strict";var r=n(35145),i=n(87043),s=n(52820),o=n(82283),a=n(43617),c=n(11949),l=n(7891),u=n(1503),p=n(65773)("iterator"),d=!([].keys&&"next"in[].keys()),h="keys",f="values",m=function(){return this};e.exports=function(e,t,n,g,v,b,y){c(n,t,g);var k,w,_,E=function(e){if(!d&&e in M)return M[e];switch(e){case h:case f:return function(){return new n(this,e)}}return function(){return new n(this,e)}},C=t+" Iterator",S=v==f,j=!1,M=e.prototype,x=M[p]||M["@@iterator"]||v&&M[v],N=x||E(v),A=v?S?E("entries"):N:void 0,O="Array"==t&&M.entries||x;if(O&&(_=u(O.call(new e)))!==Object.prototype&&_.next&&(l(_,C,!0),r||"function"==typeof _[p]||o(_,p,m)),S&&x&&x.name!==f&&(j=!0,N=function(){return x.call(this)}),r&&!y||!d&&!j&&M[p]||o(M,p,N),a[t]=N,a[C]=m,v)if(k={values:S?N:E(f),keys:b?N:E(h),entries:A},y)for(w in k)w in M||s(M,w,k[w]);else i(i.P+i.F*(d||j),t,k);return k}},61407:function(e){e.exports=function(e,t){return{value:t,done:!!e}}},43617:function(e){e.exports={}},35145:function(e){e.exports=!0},74177:function(e,t,n){var r=n(62994)("meta"),i=n(77418),s=n(6649),o=n(635).f,a=0,c=Object.isExtensible||function(){return!0},l=!n(3641)((function(){return c(Object.preventExtensions({}))})),u=function(e){o(e,r,{value:{i:"O"+ ++a,w:{}}})},p=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,r)){if(!c(e))return"F";if(!t)return"E";u(e)}return e[r].i},getWeak:function(e,t){if(!s(e,r)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[r].w},onFreeze:function(e){return l&&p.NEED&&c(e)&&!s(e,r)&&u(e),e}}},39638:function(e,t,n){var r=n(7567),i=n(58906),s=n(93900),o=n(53588)("IE_PROTO"),a=function(){},c=function(){var e,t=n(14595)("iframe"),r=s.length;for(t.style.display="none",n(42232).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;r--;)delete c.prototype[s[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[o]=e):n=c(),void 0===t?n:i(n,t)}},635:function(e,t,n){var r=n(7567),i=n(30801),s=n(91032),o=Object.defineProperty;t.f=n(88599)?Object.defineProperty:function(e,t,n){if(r(e),t=s(t,!0),r(n),i)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},58906:function(e,t,n){var r=n(635),i=n(7567),s=n(65915);e.exports=n(88599)?Object.defineProperties:function(e,t){i(e);for(var n,o=s(t),a=o.length,c=0;a>c;)r.f(e,n=o[c++],t[n]);return e}},1503:function(e,t,n){var r=n(6649),i=n(68061),s=n(53588)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},93255:function(e,t,n){var r=n(6649),i=n(29236),s=n(70110)(!1),o=n(53588)("IE_PROTO");e.exports=function(e,t){var n,a=i(e),c=0,l=[];for(n in a)n!=o&&r(a,n)&&l.push(n);for(;t.length>c;)r(a,n=t[c++])&&(~s(l,n)||l.push(n));return l}},65915:function(e,t,n){var r=n(93255),i=n(93900);e.exports=Object.keys||function(e){return r(e,i)}},2632:function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},34887:function(e,t,n){var r=n(82283);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},52820:function(e,t,n){e.exports=n(82283)},46199:function(e,t,n){"use strict";var r=n(87043),i=n(30841),s=n(66897),o=n(56281);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,a,c=arguments[1];return i(this),(t=void 0!==c)&&i(c),null==e?new this:(n=[],t?(r=0,a=s(c,arguments[2],2),o(e,!1,(function(e){n.push(a(e,r++))}))):o(e,!1,n.push,n),new this(n))}})}},20727:function(e,t,n){"use strict";var r=n(87043);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},5765:function(e,t,n){"use strict";var r=n(59507),i=n(76891),s=n(635),o=n(88599),a=n(65773)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];o&&t&&!t[a]&&s.f(t,a,{configurable:!0,get:function(){return this}})}},7891:function(e,t,n){var r=n(635).f,i=n(6649),s=n(65773)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,s)&&r(e,s,{configurable:!0,value:t})}},53588:function(e,t,n){var r=n(82154)("keys"),i=n(62994);e.exports=function(e){return r[e]||(r[e]=i(e))}},82154:function(e,t,n){var r=n(76891),i=n(59507),s="__core-js_shared__",o=i[s]||(i[s]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(35145)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},1095:function(e,t,n){var r=n(48921),i=n(91625);e.exports=function(e){return function(t,n){var s,o,a=String(i(t)),c=r(n),l=a.length;return c<0||c>=l?e?"":void 0:(s=a.charCodeAt(c))<55296||s>56319||c+1===l||(o=a.charCodeAt(c+1))<56320||o>57343?e?a.charAt(c):s:e?a.slice(c,c+2):o-56320+(s-55296<<10)+65536}}},49012:function(e,t,n){var r=n(48921),i=Math.max,s=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):s(e,t)}},48921:function(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},29236:function(e,t,n){var r=n(59589),i=n(91625);e.exports=function(e){return r(i(e))}},82561:function(e,t,n){var r=n(48921),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},68061:function(e,t,n){var r=n(91625);e.exports=function(e){return Object(r(e))}},91032:function(e,t,n){var r=n(77418);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},62994:function(e){var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},39696:function(e,t,n){var r=n(77418);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},65773:function(e,t,n){var r=n(82154)("wks"),i=n(62994),s=n(59507).Symbol,o="function"==typeof s;(e.exports=function(e){return r[e]||(r[e]=o&&s[e]||(o?s:i)("Symbol."+e))}).store=r},68246:function(e,t,n){var r=n(42318),i=n(65773)("iterator"),s=n(43617);e.exports=n(76891).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||s[r(e)]}},42394:function(e,t,n){"use strict";var r=n(93126),i=n(61407),s=n(43617),o=n(29236);e.exports=n(91851)(Array,"Array",(function(e,t){this._t=o(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),s.Arguments=s.Array,r("keys"),r("values"),r("entries")},89118:function(e,t,n){"use strict";var r=n(38636),i=n(39696),s="Map";e.exports=n(85770)(s,(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(e){var t=r.getEntry(i(this,s),e);return t&&t.v},set:function(e,t){return r.def(i(this,s),0===e?0:e,t)}},r,!0)},14183:function(){},45817:function(e,t,n){"use strict";var r=n(1095)(!0);n(91851)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},46495:function(e,t,n){n(46199)("Map")},17310:function(e,t,n){n(20727)("Map")},28623:function(e,t,n){var r=n(87043);r(r.P+r.R,"Map",{toJSON:n(35353)("Map")})},63564:function(e,t,n){n(42394);for(var r=n(59507),i=n(82283),s=n(43617),o=n(65773)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<a.length;c++){var l=a[c],u=r[l],p=u&&u.prototype;p&&!p[o]&&i(p,o,l),s[l]=s.Array}},73888:function(e,t,n){var r=n(90778).Buffer,i=n(73931),s=n(30910);e.exports=function(e){return new a(e)};var o={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function a(e){this.curveType=o[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function c(e,t,n){Array.isArray(e)||(e=e.toArray());var i=new r(e);if(n&&i.length<n){var s=new r(n-i.length);s.fill(0),i=r.concat([s,i])}return t?i.toString(t):i}o.p224=o.secp224r1,o.p256=o.secp256r1=o.prime256v1,o.p192=o.secp192r1=o.prime192v1,o.p384=o.secp384r1,o.p521=o.secp521r1,a.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},a.prototype.computeSecret=function(e,t,n){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),c(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),n,this.curveType.byteLength)},a.prototype.getPublicKey=function(e,t){var n=this.keys.getPublic("compressed"===t,!0);return"hybrid"===t&&(n[n.length-1]%2?n[0]=7:n[0]=6),c(n,e)},a.prototype.getPrivateKey=function(e){return c(this.keys.getPrivate(),e)},a.prototype.setPublicKey=function(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this.keys._importPublic(e),this},a.prototype.setPrivateKey=function(e,t){t=t||"utf8",r.isBuffer(e)||(e=new r(e,t));var n=new s(e);return n=n.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(n),this}},77439:function(e,t,n){"use strict";var r=n(59503),i=n(53956),s=n(50601),o=n(25636),a=n(69239);function c(e){a.call(this,"digest"),this._hash=e}r(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new s:new c(o(e))}},51345:function(e,t,n){var r=n(53956);e.exports=function(e){return(new r).update(e).digest()}},40445:function(e,t,n){"use strict";var r=n(59503),i=n(98919),s=n(69239),o=n(37225).Buffer,a=n(51345),c=n(50601),l=n(25636),u=o.alloc(128);function p(e,t){s.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var n="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>n)?t=("rmd160"===e?new c:l(e)).update(t).digest():t.length<n&&(t=o.concat([t,u],n));for(var r=this._ipad=o.allocUnsafe(n),i=this._opad=o.allocUnsafe(n),a=0;a<n;a++)r[a]=54^t[a],i[a]=92^t[a];this._hash="rmd160"===e?new c:l(e),this._hash.update(r)}r(p,s),p.prototype._update=function(e){this._hash.update(e)},p.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new c:l(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new p("rmd160",t):"md5"===e?new i(a,t):new p(e,t)}},98919:function(e,t,n){"use strict";var r=n(59503),i=n(37225).Buffer,s=n(69239),o=i.alloc(128),a=64;function c(e,t){s.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>a?t=e(t):t.length<a&&(t=i.concat([t,o],a));for(var n=this._ipad=i.allocUnsafe(a),r=this._opad=i.allocUnsafe(a),c=0;c<a;c++)n[c]=54^t[c],r[c]=92^t[c];this._hash=[n]}r(c,s),c.prototype._update=function(e){this._hash.push(e)},c.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=c},23936:function(e,t,n){"use strict";var r=n(1625),i={};function s(e,t,n,r,i,s,o,a){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,s,o,a],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}var o="mixins";e.exports=function(e,t,n){var a=[],c={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},l={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},u={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)d(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(s(!(n in u),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e)return s("DEFINE_MANY_MERGED"===(l.hasOwnProperty(n)?l[n]:null),"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=f(e[n],r));e[n]=r}}}(e,t)},autobind:function(){}};function p(e,t){var n=c.hasOwnProperty(t)?c[t]:null;y.hasOwnProperty(t)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function d(e,n){if(n){s("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;for(var a in n.hasOwnProperty(o)&&u.mixins(e,n.mixins),n)if(n.hasOwnProperty(a)&&a!==o){var l=n[a],d=r.hasOwnProperty(a);if(p(d,a),u.hasOwnProperty(a))u[a](e,l);else{var h=c.hasOwnProperty(a);if("function"==typeof l&&!h&&!d&&!1!==n.autobind)i.push(a,l),r[a]=l;else if(d){var g=c[a];s(h&&("DEFINE_MANY_MERGED"===g||"DEFINE_MANY"===g),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",g,a),"DEFINE_MANY_MERGED"===g?r[a]=f(r[a],l):"DEFINE_MANY"===g&&(r[a]=m(r[a],l))}else r[a]=l}}}else;}function h(e,t){for(var n in s(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(s(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return h(i,n),h(i,r),i}}function m(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function g(e,t){return t.bind(e)}var v={componentDidMount:function(){this.__isMounted=!0}},b={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},k=function(){};return r(k.prototype,e.prototype,y),function(e){var t=function(e,r,o){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=g(e,i)}}(this),this.props=e,this.context=r,this.refs=i,this.updater=o||n,this.state=null;var a=this.getInitialState?this.getInitialState():null;s("object"==typeof a&&!Array.isArray(a),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=a};for(var r in t.prototype=new k,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],a.forEach(d.bind(null,t)),d(t,v),d(t,e),d(t,b),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),s(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),c)t.prototype[r]||(t.prototype[r]=null);return t}}},7767:function(e,t,n){"use strict";var r=n(99196),i=n(23936);if(void 0===r)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var s=(new r.Component).updater;e.exports=i(r.Component,r.isValidElement,s)},50142:function(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(35175),t.createHash=t.Hash=n(77439),t.createHmac=t.Hmac=n(40445);var r=n(60451),i=Object.keys(r),s=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return s};var o=n(80231);t.pbkdf2=o.pbkdf2,t.pbkdf2Sync=o.pbkdf2Sync;var a=n(83936);t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var c=n(63298);t.DiffieHellmanGroup=c.DiffieHellmanGroup,t.createDiffieHellmanGroup=c.createDiffieHellmanGroup,t.getDiffieHellman=c.getDiffieHellman,t.createDiffieHellman=c.createDiffieHellman,t.DiffieHellman=c.DiffieHellman;var l=n(29908);t.createSign=l.createSign,t.Sign=l.Sign,t.createVerify=l.createVerify,t.Verify=l.Verify,t.createECDH=n(73888);var u=n(51296);t.publicEncrypt=u.publicEncrypt,t.privateEncrypt=u.privateEncrypt,t.publicDecrypt=u.publicDecrypt,t.privateDecrypt=u.privateDecrypt;var p=n(70460);t.randomFill=p.randomFill,t.randomFillSync=p.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},13185:function(e,t,n){"use strict";var r=n(98517),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),s=Object.prototype.toString,o=Array.prototype.concat,a=Object.defineProperty,c=a&&function(){var e={};try{for(var t in a(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),l=function(e,t,n,r){var i;(!(t in e)||"function"==typeof(i=r)&&"[object Function]"===s.call(i)&&r())&&(c?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},u=function(e,t){var n=arguments.length>2?arguments[2]:{},s=r(t);i&&(s=o.call(s,Object.getOwnPropertySymbols(t)));for(var a=0;a<s.length;a+=1)l(e,s[a],t[s[a]],n[s[a]])};u.supportsDescriptors=!!c,e.exports=u},98625:function(e,t,n){"use strict";t.utils=n(87990),t.Cipher=n(90746),t.DES=n(48738),t.CBC=n(94369),t.EDE=n(96413)},94369:function(e,t,n){"use strict";var r=n(48282),i=n(59503),s={};function o(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}i(t,e);for(var n=Object.keys(s),r=0;r<n.length;r++){var o=n[r];t.prototype[o]=s[o]}return t.create=function(e){return new t(e)},t},s._cbcInit=function(){var e=new o(this.options.iv);this._cbcState=e},s._update=function(e,t,n,r){var i=this._cbcState,s=this.constructor.super_.prototype,o=i.iv;if("encrypt"===this.type){for(var a=0;a<this.blockSize;a++)o[a]^=e[t+a];s._update.call(this,o,0,n,r);for(a=0;a<this.blockSize;a++)o[a]=n[r+a]}else{s._update.call(this,e,t,n,r);for(a=0;a<this.blockSize;a++)n[r+a]^=o[a];for(a=0;a<this.blockSize;a++)o[a]=e[t+a]}}},90746:function(e,t,n){"use strict";var r=n(48282);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r<n;r++)this.buffer[this.bufferOff+r]=e[t+r];return this.bufferOff+=n,n},i.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(e){var t=0,n=0,r=(this.bufferOff+e.length)/this.blockSize|0,i=new Array(r*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(i,n)));for(var s=e.length-(e.length-t)%this.blockSize;t<s;t+=this.blockSize)this._update(e,t,i,n),n+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return i},i.prototype._updateDecrypt=function(e){for(var t=0,n=0,r=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,i=new Array(r*this.blockSize);r>0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},i.prototype._unpad=function(e){return e},i.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},48738:function(e,t,n){"use strict";var r=n(48282),i=n(59503),s=n(87990),o=n(90746);function a(){this.tmp=new Array(2),this.keys=null}function c(e){o.call(this,e);var t=new a;this._desState=t,this.deriveKeys(t,e.key)}i(c,o),e.exports=c,c.create=function(e){return new c(e)};var l=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];c.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=s.readUInt32BE(t,0),i=s.readUInt32BE(t,4);s.pc1(n,i,e.tmp,0),n=e.tmp[0],i=e.tmp[1];for(var o=0;o<e.keys.length;o+=2){var a=l[o>>>1];n=s.r28shl(n,a),i=s.r28shl(i,a),s.pc2(n,i,e.keys,o)}},c.prototype._update=function(e,t,n,r){var i=this._desState,o=s.readUInt32BE(e,t),a=s.readUInt32BE(e,t+4);s.ip(o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,o,a,i.tmp,0):this._decrypt(i,o,a,i.tmp,0),o=i.tmp[0],a=i.tmp[1],s.writeUInt32BE(n,o,r),s.writeUInt32BE(n,a,r+4)},c.prototype._pad=function(e,t){for(var n=e.length-t,r=t;r<e.length;r++)e[r]=n;return!0},c.prototype._unpad=function(e){for(var t=e[e.length-1],n=e.length-t;n<e.length;n++)r.equal(e[n],t);return e.slice(0,e.length-t)},c.prototype._encrypt=function(e,t,n,r,i){for(var o=t,a=n,c=0;c<e.keys.length;c+=2){var l=e.keys[c],u=e.keys[c+1];s.expand(a,e.tmp,0),l^=e.tmp[0],u^=e.tmp[1];var p=s.substitute(l,u),d=a;a=(o^s.permute(p))>>>0,o=d}s.rip(a,o,r,i)},c.prototype._decrypt=function(e,t,n,r,i){for(var o=n,a=t,c=e.keys.length-2;c>=0;c-=2){var l=e.keys[c],u=e.keys[c+1];s.expand(o,e.tmp,0),l^=e.tmp[0],u^=e.tmp[1];var p=s.substitute(l,u),d=o;o=(a^s.permute(p))>>>0,a=d}s.rip(o,a,r,i)}},96413:function(e,t,n){"use strict";var r=n(48282),i=n(59503),s=n(90746),o=n(48738);function a(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),i=t.slice(8,16),s=t.slice(16,24);this.ciphers="encrypt"===e?[o.create({type:"encrypt",key:n}),o.create({type:"decrypt",key:i}),o.create({type:"encrypt",key:s})]:[o.create({type:"decrypt",key:s}),o.create({type:"encrypt",key:i}),o.create({type:"decrypt",key:n})]}function c(e){s.call(this,e);var t=new a(this.type,this.options.key);this._edeState=t}i(c,s),e.exports=c,c.create=function(e){return new c(e)},c.prototype._update=function(e,t,n,r){var i=this._edeState;i.ciphers[0]._update(e,t,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},c.prototype._pad=o.prototype._pad,c.prototype._unpad=o.prototype._unpad},87990:function(e,t){"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,s=0,o=6;o>=0;o-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+o&1}for(o=6;o>=0;o-=2){for(a=1;a<=25;a+=8)s<<=1,s|=t>>>a+o&1;for(a=1;a<=25;a+=8)s<<=1,s|=e>>>a+o&1}n[r+0]=i>>>0,n[r+1]=s>>>0},t.rip=function(e,t,n,r){for(var i=0,s=0,o=0;o<4;o++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+o&1,i<<=1,i|=e>>>a+o&1;for(o=4;o<8;o++)for(a=24;a>=0;a-=8)s<<=1,s|=t>>>a+o&1,s<<=1,s|=e>>>a+o&1;n[r+0]=i>>>0,n[r+1]=s>>>0},t.pc1=function(e,t,n,r){for(var i=0,s=0,o=7;o>=5;o--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+o&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+o&1;for(o=1;o<=3;o++){for(a=0;a<=24;a+=8)s<<=1,s|=t>>a+o&1;for(a=0;a<=24;a+=8)s<<=1,s|=e>>a+o&1}for(a=0;a<=24;a+=8)s<<=1,s|=e>>a+o&1;n[r+0]=i>>>0,n[r+1]=s>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var s=0,o=0,a=n.length>>>1,c=0;c<a;c++)s<<=1,s|=e>>>n[c]&1;for(c=a;c<n.length;c++)o<<=1,o|=t>>>n[c]&1;r[i+0]=s>>>0,r[i+1]=o>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var s=23;s>=15;s-=4)r<<=6,r|=e>>>s&63;for(s=11;s>=3;s-=4)i|=e>>>s&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,i=0;i<4;i++){n<<=4,n|=r[64*i+(e>>>18-6*i&63)]}for(i=0;i<4;i++){n<<=4,n|=r[256+64*i+(t>>>18-6*i&63)]}return n>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n<i.length;n++)t<<=1,t|=e>>>i[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length<t;)r="0"+r;for(var i=[],s=0;s<t;s+=n)i.push(r.slice(s,s+n));return i.join(" ")}},63298:function(e,t,n){var r=n(90778).Buffer,i=n(76156),s=n(27046),o=n(92716);var a={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new r(s[e].prime,"hex"),n=new r(s[e].gen,"hex");return new o(t,n)},t.createDiffieHellman=t.DiffieHellman=function e(t,n,s,c){return r.isBuffer(n)||void 0===a[n]?e(t,"binary",n,s):(n=n||"binary",c=c||"binary",s=s||new r([2]),r.isBuffer(s)||(s=new r(s,c)),"number"==typeof t?new o(i(t,s),s,!0):(r.isBuffer(t)||(t=new r(t,n)),new o(t,s,!0)))}},92716:function(e,t,n){var r=n(90778).Buffer,i=n(30910),s=new(n(16616)),o=new i(24),a=new i(11),c=new i(10),l=new i(3),u=new i(7),p=n(76156),d=n(35175);function h(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._pub=new i(e),this}function f(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._priv=new i(e),this}e.exports=g;var m={};function g(e,t,n){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=h,this.setPrivateKey=f):this._primeCode=8}function v(e,t){var n=new r(e.toArray());return t?n.toString(t):n}Object.defineProperty(g.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in m)return m[r];var i,d=0;if(e.isEven()||!p.simpleSieve||!p.fermatTest(e)||!s.test(e))return d+=1,d+="02"===n||"05"===n?8:4,m[r]=d,d;switch(s.test(e.shrn(1))||(d+=2),n){case"02":e.mod(o).cmp(a)&&(d+=8);break;case"05":(i=e.mod(c)).cmp(l)&&i.cmp(u)&&(d+=8);break;default:d+=4}return m[r]=d,d}(this.__prime,this.__gen)),this._primeCode}}),g.prototype.generateKeys=function(){return this._priv||(this._priv=new i(d(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},g.prototype.computeSecret=function(e){var t=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new r(t.toArray()),s=this.getPrime();if(n.length<s.length){var o=new r(s.length-n.length);o.fill(0),n=r.concat([o,n])}return n},g.prototype.getPublicKey=function(e){return v(this._pub,e)},g.prototype.getPrivateKey=function(e){return v(this._priv,e)},g.prototype.getPrime=function(e){return v(this.__prime,e)},g.prototype.getGenerator=function(e){return v(this._gen,e)},g.prototype.setGenerator=function(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this.__gen=e,this._gen=new i(e),this}},76156:function(e,t,n){var r=n(35175);e.exports=b,b.simpleSieve=g,b.fermatTest=v;var i=n(30910),s=new i(24),o=new(n(16616)),a=new i(1),c=new i(2),l=new i(5),u=(new i(16),new i(8),new i(10)),p=new i(3),d=(new i(7),new i(11)),h=new i(4),f=(new i(12),null);function m(){if(null!==f)return f;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;i<t&&e[i]<=r&&n%e[i]!=0;i++);t!==i&&e[i]<=r||(e[t++]=n)}return f=e,e}function g(e){for(var t=m(),n=0;n<t.length;n++)if(0===e.modn(t[n]))return 0===e.cmpn(t[n]);return!0}function v(e){var t=i.mont(e);return 0===c.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function b(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var n,f;for(t=new i(t);;){for(n=new i(r(Math.ceil(e/8)));n.bitLength()>e;)n.ishrn(1);if(n.isEven()&&n.iadd(a),n.testn(1)||n.iadd(c),t.cmp(c)){if(!t.cmp(l))for(;n.mod(u).cmp(p);)n.iadd(h)}else for(;n.mod(s).cmp(d);)n.iadd(h);if(g(f=n.shrn(1))&&g(n)&&v(f)&&v(n)&&o.test(f)&&o.test(n))return n}}},73931:function(e,t,n){"use strict";var r=t;r.version=n(80906).i8,r.utils=n(12097),r.rand=n(71876),r.curve=n(46244),r.curves=n(65583),r.ec=n(72553),r.eddsa=n(66281)},48432:function(e,t,n){"use strict";var r=n(30910),i=n(12097),s=i.getNAF,o=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function l(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),r=s(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var o,c,l=[];for(o=0;o<r.length;o+=n.step){c=0;for(var u=o+n.step-1;u>=o;u--)c=(c<<1)+r[u];l.push(c)}for(var p=this.jpoint(null,null,null),d=this.jpoint(null,null,null),h=i;h>0;h--){for(o=0;o<l.length;o++)(c=l[o])===h?d=d.mixedAdd(n.points[o]):c===-h&&(d=d.mixedAdd(n.points[o].neg()));p=p.add(d)}return p.toP()},c.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,o=s(t,n,this._bitLength),c=this.jpoint(null,null,null),l=o.length-1;l>=0;l--){for(var u=0;l>=0&&0===o[l];l--)u++;if(l>=0&&u++,c=c.dblp(u),l<0)break;var p=o[l];a(0!==p),c="affine"===e.type?p>0?c.mixedAdd(i[p-1>>1]):c.mixedAdd(i[-p-1>>1].neg()):p>0?c.add(i[p-1>>1]):c.add(i[-p-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){var a,c,l,u=this._wnafT1,p=this._wnafT2,d=this._wnafT3,h=0;for(a=0;a<r;a++){var f=(l=t[a])._getNAFPoints(e);u[a]=f.wnd,p[a]=f.points}for(a=r-1;a>=1;a-=2){var m=a-1,g=a;if(1===u[m]&&1===u[g]){var v=[t[m],null,null,t[g]];0===t[m].y.cmp(t[g].y)?(v[1]=t[m].add(t[g]),v[2]=t[m].toJ().mixedAdd(t[g].neg())):0===t[m].y.cmp(t[g].y.redNeg())?(v[1]=t[m].toJ().mixedAdd(t[g]),v[2]=t[m].add(t[g].neg())):(v[1]=t[m].toJ().mixedAdd(t[g]),v[2]=t[m].toJ().mixedAdd(t[g].neg()));var b=[-3,-1,-5,-7,0,7,5,1,3],y=o(n[m],n[g]);for(h=Math.max(y[0].length,h),d[m]=new Array(h),d[g]=new Array(h),c=0;c<h;c++){var k=0|y[0][c],w=0|y[1][c];d[m][c]=b[3*(k+1)+(w+1)],d[g][c]=0,p[m]=v}}else d[m]=s(n[m],u[m],this._bitLength),d[g]=s(n[g],u[g],this._bitLength),h=Math.max(d[m].length,h),h=Math.max(d[g].length,h)}var _=this.jpoint(null,null,null),E=this._wnafT4;for(a=h;a>=0;a--){for(var C=0;a>=0;){var S=!0;for(c=0;c<r;c++)E[c]=0|d[c][a],0!==E[c]&&(S=!1);if(!S)break;C++,a--}if(a>=0&&C++,_=_.dblp(C),a<0)break;for(c=0;c<r;c++){var j=E[c];0!==j&&(j>0?l=p[c][j-1>>1]:j<0&&(l=p[c][-j-1>>1].neg()),_="affine"===l.type?_.mixedAdd(l):_.add(l))}}for(a=0;a<r;a++)p[a]=null;return i?_:_.toP()},c.BasePoint=l,l.prototype.eq=function(){throw new Error("Not implemented")},l.prototype.validate=function(){return this.curve.validate(this)},c.prototype.decodePoint=function(e,t){e=i.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?a(e[e.length-1]%2==0):7===e[0]&&a(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},l.prototype.encodeCompressed=function(e){return this.encode(e,!0)},l.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},l.prototype.encode=function(e,t){return i.encode(this._encode(t),e)},l.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},l.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},l.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var s=0;s<e;s++)r=r.dbl();n.push(r)}return{step:e,points:n}},l.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},l.prototype._getBeta=function(){return null},l.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t}},27978:function(e,t,n){"use strict";var r=n(12097),i=n(30910),s=n(59503),o=n(48432),a=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,o.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function l(e,t,n,r,s){o.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=s&&new i(s,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}s(c,o),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),s=this.one.redSub(this.c2.redMul(this.d).redMul(n)),o=r.redMul(s.redInvm()),a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),s=n.redMul(this.d).redMul(this.c2).redSub(this.a),o=r.redMul(s.redInvm());if(0===o.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=o.redSqrt();if(0!==a.redSqr().redSub(o).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},s(l,o.BasePoint),c.prototype.pointFromJSON=function(e){return l.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new l(this,e,t,n,r)},l.fromJSON=function(e,t){return new l(e,t[0],t[1],t[2])},l.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},l.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},l.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),s=r.redAdd(t),o=s.redSub(n),a=r.redSub(t),c=i.redMul(o),l=s.redMul(a),u=i.redMul(a),p=o.redMul(s);return this.curve.point(c,l,p,u)},l.prototype._projDbl=function(){var e,t,n,r,i,s,o=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var l=(r=this.curve._mulA(a)).redAdd(c);this.zOne?(e=o.redSub(a).redSub(c).redMul(l.redSub(this.curve.two)),t=l.redMul(r.redSub(c)),n=l.redSqr().redSub(l).redSub(l)):(i=this.z.redSqr(),s=l.redSub(i).redISub(i),e=o.redSub(a).redISub(c).redMul(s),t=l.redMul(r.redSub(c)),n=l.redMul(s))}else r=a.redAdd(c),i=this.curve._mulC(this.z).redSqr(),s=r.redSub(i).redSub(i),e=this.curve._mulC(o.redISub(r)).redMul(s),t=this.curve._mulC(r).redMul(a.redISub(c)),n=r.redMul(s);return this.curve.point(e,t,n)},l.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},l.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),s=n.redSub(t),o=i.redSub(r),a=i.redAdd(r),c=n.redAdd(t),l=s.redMul(o),u=a.redMul(c),p=s.redMul(c),d=o.redMul(a);return this.curve.point(l,u,d,p)},l.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),s=this.x.redMul(e.x),o=this.y.redMul(e.y),a=this.curve.d.redMul(s).redMul(o),c=i.redSub(a),l=i.redAdd(a),u=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(s).redISub(o),p=r.redMul(c).redMul(u);return this.curve.twisted?(t=r.redMul(l).redMul(o.redSub(this.curve._mulA(s))),n=c.redMul(l)):(t=r.redMul(l).redMul(o.redSub(s)),n=this.curve._mulC(c).redMul(l)),this.curve.point(p,t,n)},l.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},l.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},l.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},l.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},l.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},l.prototype.getX=function(){return this.normalize(),this.x.fromRed()},l.prototype.getY=function(){return this.normalize(),this.y.fromRed()},l.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},l.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},l.prototype.toP=l.prototype.normalize,l.prototype.mixedAdd=l.prototype.add},46244:function(e,t,n){"use strict";var r=t;r.base=n(48432),r.short=n(42567),r.mont=n(2493),r.edwards=n(27978)},2493:function(e,t,n){"use strict";var r=n(30910),i=n(59503),s=n(48432),o=n(12097);function a(e){s.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){s.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,s),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,s.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(o.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),s=e.x.redSub(e.z).redMul(n),o=i.redMul(r),a=t.z.redMul(s.redAdd(o).redSqr()),c=t.x.redMul(s.redISub(o).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var s=i.length-1;s>=0;s--)0===i[s]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},42567:function(e,t,n){"use strict";var r=n(12097),i=n(30910),s=n(59503),o=n(48432),a=r.assert;function c(e){o.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function l(e,t,n,r){o.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function u(e,t,n,r){o.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}s(c,o),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var s=this._getEndoRoots(this.n);0===this.g.mul(s[0]).x.cmp(this.g.x.redMul(t))?n=s[0]:(n=s[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),s=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(s).fromRed(),r.redSub(s).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,s,o,a,c,l,u,p=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,h=this.n.clone(),f=new i(1),m=new i(0),g=new i(0),v=new i(1),b=0;0!==d.cmpn(0);){var y=h.div(d);l=h.sub(y.mul(d)),u=g.sub(y.mul(f));var k=v.sub(y.mul(m));if(!r&&l.cmp(p)<0)t=c.neg(),n=f,r=l.neg(),s=u;else if(r&&2==++b)break;c=l,h=d,d=l,g=f,f=u,v=m,m=k}o=l.neg(),a=u;var w=r.sqr().add(s.sqr());return o.sqr().add(a.sqr()).cmp(w)>=0&&(o=t,a=n),r.negative&&(r=r.neg(),s=s.neg()),o.negative&&(o=o.neg(),a=a.neg()),[{a:r,b:s},{a:o,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),s=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),a=s.mul(r.a),c=i.mul(n.b),l=s.mul(r.b);return{k1:e.sub(o).sub(a),k2:c.add(l).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var s=r.fromRed().isOdd();return(t&&!s||!t&&s)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,s=0;s<e.length;s++){var o=this._endoSplit(t[s]),a=e[s],c=a._getBeta();o.k1.negative&&(o.k1.ineg(),a=a.neg(!0)),o.k2.negative&&(o.k2.ineg(),c=c.neg(!0)),r[2*s]=a,r[2*s+1]=c,i[2*s]=o.k1,i[2*s+1]=o.k2}for(var l=this._wnafMulAdd(1,r,i,2*s,n),u=0;u<2*s;u++)r[u]=null,i[u]=null;return l},s(l,o.BasePoint),c.prototype.point=function(e,t,n){return new l(this,e,t,n)},c.prototype.pointFromJSON=function(e,t){return l.fromJSON(this,e,t)},l.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},l.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},l.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var s=t[2];return r.precomputed={beta:null,doubles:s.doubles&&{step:s.doubles.step,points:[r].concat(s.doubles.points.map(i))},naf:s.naf&&{wnd:s.naf.wnd,points:[r].concat(s.naf.points.map(i))}},r},l.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},l.prototype.isInfinity=function(){return this.inf},l.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},l.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),s=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(s)).redISub(this.y);return this.curve.point(s,o)},l.prototype.getX=function(){return this.x.fromRed()},l.prototype.getY=function(){return this.y.fromRed()},l.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},l.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},l.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},l.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},l.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},l.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},s(u,o.BasePoint),c.prototype.jpoint=function(e,t,n){return new u(this,e,t,n)},u.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},u.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},u.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),s=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=s.redSub(o);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var l=a.redSqr(),u=l.redMul(a),p=r.redMul(l),d=c.redSqr().redIAdd(u).redISub(p).redISub(p),h=c.redMul(p.redISub(d)).redISub(s.redMul(u)),f=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(d,h,f)},u.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,s=e.y.redMul(t).redMul(this.z),o=n.redSub(r),a=i.redSub(s);if(0===o.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=o.redSqr(),l=c.redMul(o),u=n.redMul(c),p=a.redSqr().redIAdd(l).redISub(u).redISub(u),d=a.redMul(u.redISub(p)).redISub(i.redMul(l)),h=this.z.redMul(o);return this.curve.jpoint(p,d,h)},u.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,s=this.x,o=this.y,a=this.z,c=a.redSqr().redSqr(),l=o.redAdd(o);for(t=0;t<e;t++){var u=s.redSqr(),p=l.redSqr(),d=p.redSqr(),h=u.redAdd(u).redIAdd(u).redIAdd(r.redMul(c)),f=s.redMul(p),m=h.redSqr().redISub(f.redAdd(f)),g=f.redISub(m),v=h.redMul(g);v=v.redIAdd(v).redISub(d);var b=l.redMul(a);t+1<e&&(c=c.redMul(d)),s=m,a=b,l=v}return this.curve.jpoint(s,l.redMul(i),a)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},u.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(s);o=o.redIAdd(o);var a=r.redAdd(r).redIAdd(r),c=a.redSqr().redISub(o).redISub(o),l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),e=c,t=a.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.x.redSqr(),p=this.y.redSqr(),d=p.redSqr(),h=this.x.redAdd(p).redSqr().redISub(u).redISub(d);h=h.redIAdd(h);var f=u.redAdd(u).redIAdd(u),m=f.redSqr(),g=d.redIAdd(d);g=(g=g.redIAdd(g)).redIAdd(g),e=m.redISub(h).redISub(h),t=f.redMul(h.redISub(e)).redISub(g),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},u.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),s=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(s);o=o.redIAdd(o);var a=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),c=a.redSqr().redISub(o).redISub(o);e=c;var l=s.redIAdd(s);l=(l=l.redIAdd(l)).redIAdd(l),t=a.redMul(o.redISub(c)).redISub(l),n=this.y.redAdd(this.y)}else{var u=this.z.redSqr(),p=this.y.redSqr(),d=this.x.redMul(p),h=this.x.redSub(u).redMul(this.x.redAdd(u));h=h.redAdd(h).redIAdd(h);var f=d.redIAdd(d),m=(f=f.redIAdd(f)).redAdd(f);e=h.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(p).redISub(u);var g=p.redSqr();g=(g=(g=g.redIAdd(g)).redIAdd(g)).redIAdd(g),t=h.redMul(f.redISub(e)).redISub(g)}return this.curve.jpoint(e,t,n)},u.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),s=t.redSqr(),o=n.redSqr(),a=s.redAdd(s).redIAdd(s).redIAdd(e.redMul(i)),c=t.redAdd(t),l=(c=c.redIAdd(c)).redMul(o),u=a.redSqr().redISub(l.redAdd(l)),p=l.redISub(u),d=o.redSqr();d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=a.redMul(p).redISub(d),f=n.redAdd(n).redMul(r);return this.curve.jpoint(u,h,f)},u.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),s=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),a=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(s)).redSqr(),c=r.redIAdd(r);c=(c=(c=c.redIAdd(c)).redIAdd(c)).redIAdd(c);var l=i.redIAdd(o).redSqr().redISub(s).redISub(a).redISub(c),u=t.redMul(l);u=(u=u.redIAdd(u)).redIAdd(u);var p=this.x.redMul(a).redISub(u);p=(p=p.redIAdd(p)).redIAdd(p);var d=this.y.redMul(l.redMul(c.redISub(l)).redISub(o.redMul(a)));d=(d=(d=d.redIAdd(d)).redIAdd(d)).redIAdd(d);var h=this.z.redAdd(o).redSqr().redISub(n).redISub(a);return this.curve.jpoint(p,d,h)},u.prototype.mul=function(e,t){return e=new i(e,t),this.curve._wnafMul(this,e)},u.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},u.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},u.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},65583:function(e,t,n){"use strict";var r,i=t,s=n(91138),o=n(46244),a=n(12097).assert;function c(e){"short"===e.type?this.curve=new o.short(e):"edwards"===e.type?this.curve=new o.edwards(e):this.curve=new o.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function l(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,l("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:s.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),l("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:s.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),l("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:s.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),l("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:s.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),l("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:s.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),l("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["9"]}),l("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:s.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(4703)}catch(e){r=void 0}l("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:s.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},72553:function(e,t,n){"use strict";var r=n(30910),i=n(53674),s=n(12097),o=n(65583),a=n(71876),c=s.assert,l=n(26167),u=n(96376);function p(e){if(!(this instanceof p))return new p(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(o,e),"Unknown curve "+e),e=o[e]),e instanceof o.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=p,p.prototype.keyPair=function(e){return new l(this,e)},p.prototype.keyFromPrivate=function(e,t){return l.fromPrivate(this,e,t)},p.prototype.keyFromPublic=function(e,t){return l.fromPublic(this,e,t)},p.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),s=this.n.sub(new r(2));;){var o=new r(t.generate(n));if(!(o.cmp(s)>0))return o.iaddn(1),this.keyFromPrivate(o)}},p.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},p.prototype.sign=function(e,t,n,s){"object"==typeof n&&(s=n,n=null),s||(s={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var o=this.n.byteLength(),a=t.getPrivate().toArray("be",o),c=e.toArray("be",o),l=new i({hash:this.hash,entropy:a,nonce:c,pers:s.pers,persEnc:s.persEnc||"utf8"}),p=this.n.sub(new r(1)),d=0;;d++){var h=s.k?s.k(d):new r(l.generate(this.n.byteLength()));if(!((h=this._truncateToN(h,!0)).cmpn(1)<=0||h.cmp(p)>=0)){var f=this.g.mul(h);if(!f.isInfinity()){var m=f.getX(),g=m.umod(this.n);if(0!==g.cmpn(0)){var v=h.invm(this.n).mul(g.mul(t.getPrivate()).iadd(e));if(0!==(v=v.umod(this.n)).cmpn(0)){var b=(f.getY().isOdd()?1:0)|(0!==m.cmp(g)?2:0);return s.canonical&&v.cmp(this.nh)>0&&(v=this.n.sub(v),b^=1),new u({r:g,s:v,recoveryParam:b})}}}}}},p.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var s=(t=new u(t,"hex")).r,o=t.s;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;var a,c=o.invm(this.n),l=c.mul(e).umod(this.n),p=c.mul(s).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(l,n.getPublic(),p)).isInfinity()&&a.eqXToP(s):!(a=this.g.mulAdd(l,n.getPublic(),p)).isInfinity()&&0===a.getX().umod(this.n).cmp(s)},p.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new u(t,i);var s=this.n,o=new r(e),a=t.r,l=t.s,p=1&n,d=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&d)throw new Error("Unable to find sencond key candinate");a=d?this.curve.pointFromX(a.add(this.curve.n),p):this.curve.pointFromX(a,p);var h=t.r.invm(s),f=s.sub(o).mul(h).umod(s),m=l.mul(h).umod(s);return this.g.mulAdd(f,a,m)},p.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new u(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var s;try{s=this.recoverPubKey(e,t,i)}catch(e){continue}if(s.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},26167:function(e,t,n){"use strict";var r=n(30910),i=n(12097).assert;function s(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=s,s.fromPublic=function(e,t,n){return t instanceof s?t:new s(e,{pub:t,pubEnc:n})},s.fromPrivate=function(e,t,n){return t instanceof s?t:new s(e,{priv:t,privEnc:n})},s.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},s.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},s.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},s.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},s.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},s.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},s.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},s.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},s.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},96376:function(e,t,n){"use strict";var r=n(30910),i=n(12097),s=i.assert;function o(e,t){if(e instanceof o)return e;this._importDER(e,t)||(s(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,s=0,o=t.place;s<r;s++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function l(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function u(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=o,o.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;var s=c(e,n);if(!1===s)return!1;if(s+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var o=c(e,n);if(!1===o)return!1;var l=e.slice(n.place,o+n.place);if(n.place+=o,2!==e[n.place++])return!1;var u=c(e,n);if(!1===u)return!1;if(e.length!==u+n.place)return!1;var p=e.slice(n.place,u+n.place);if(0===l[0]){if(!(128&l[1]))return!1;l=l.slice(1)}if(0===p[0]){if(!(128&p[1]))return!1;p=p.slice(1)}return this.r=new r(l),this.s=new r(p),this.recoveryParam=null,!0},o.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=l(t),n=l(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];u(r,t.length),(r=r.concat(t)).push(2),u(r,n.length);var s=r.concat(n),o=[48];return u(o,s.length),o=o.concat(s),i.encode(o,e)}},66281:function(e,t,n){"use strict";var r=n(91138),i=n(65583),s=n(12097),o=s.assert,a=s.parseBytes,c=n(8325),l=n(49945);function u(e){if(o("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof u))return new u(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=u,u.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),s=this.encodePoint(i),o=this.hashInt(s,n.pubBytes(),e).mul(n.priv()),c=r.add(o).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:s})},u.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),s=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(s)},u.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return s.intFromLE(e.digest()).umod(this.curve.n)},u.prototype.keyFromPublic=function(e){return c.fromPublic(this,e)},u.prototype.keyFromSecret=function(e){return c.fromSecret(this,e)},u.prototype.makeSignature=function(e){return e instanceof l?e:new l(this,e)},u.prototype.encodePoint=function(e){var t=e.getY().toArray("le",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},u.prototype.decodePoint=function(e){var t=(e=s.parseBytes(e)).length-1,n=e.slice(0,t).concat(-129&e[t]),r=0!=(128&e[t]),i=s.intFromLE(n);return this.curve.pointFromY(i,r)},u.prototype.encodeInt=function(e){return e.toArray("le",this.encodingLength)},u.prototype.decodeInt=function(e){return s.intFromLE(e)},u.prototype.isPoint=function(e){return e instanceof this.pointClass}},8325:function(e,t,n){"use strict";var r=n(12097),i=r.assert,s=r.parseBytes,o=r.cachedProperty;function a(e,t){this.eddsa=e,this._secret=s(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=s(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},o(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),o(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),o(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),o(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),o(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),o(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},a.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=a},49945:function(e,t,n){"use strict";var r=n(30910),i=n(12097),s=i.assert,o=i.cachedProperty,a=i.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),s(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}o(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),o(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),o(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),o(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},4703:function(e){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},12097:function(e,t,n){"use strict";var r=t,i=n(30910),s=n(48282),o=n(90458);r.assert=s,r.toArray=o.toArray,r.zero2=o.zero2,r.toHex=o.toHex,r.encode=o.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,s=e.clone(),o=0;o<r.length;o++){var a,c=s.andln(i-1);s.isOdd()?(a=c>(i>>1)-1?(i>>1)-c:c,s.isubn(a)):a=0,r[o]=a,s.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,s=0;e.cmpn(-i)>0||t.cmpn(-s)>0;){var o,a,c=e.andln(3)+i&3,l=t.andln(3)+s&3;3===c&&(c=-1),3===l&&(l=-1),o=0==(1&c)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==l?c:-c,n[0].push(o),a=0==(1&l)?0:3!==(r=t.andln(7)+s&7)&&5!==r||2!==c?l:-l,n[1].push(a),2*i===o+1&&(i=1-i),2*s===a+1&&(s=1-s),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},45685:function(e){"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i)for(var s=Object.keys(Object(i)),o=0,a=s.length;o<a;o++){var c=s[o],l=Object.getOwnPropertyDescriptor(i,c);void 0!==l&&l.enumerable&&(n[c]=i[c])}}return n}e.exports={assign:t,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:t})}}},2571:function(e,t,n){"use strict";var r,i=n(55246),s="object"==typeof Reflect?Reflect:null,o=s&&"function"==typeof s.apply?s.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=s&&"function"==typeof s.ownKeys?s.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,s),r(n)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}b(e,t,s,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&b(e,"error",t,n)}(e,i,{once:!0})}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var l=10;function u(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function p(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function d(e,t,n,r){var s,o,a;if(u(n),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),o=e._events),a=o[t]),void 0===a)a=o[t]=n,++e._eventsCount;else if("function"==typeof a?a=o[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(s=p(e))>0&&a.length>s&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,function(e){i&&i.warn&&i.warn(e)}(c)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=h.bind(r);return i.listener=n,r.wrapFn=i,i}function m(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):v(i,i.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function v(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function b(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(s){r.once&&e.removeEventListener(t,i),n(s)}))}}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return l},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");l=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return p(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var s;if(t.length>0&&(s=t[0]),s instanceof Error)throw s;var a=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw a.context=s,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)o(c,this,t);else{var l=c.length,u=v(c,l);for(n=0;n<l;++n)o(u[n],this,t)}return!0},c.prototype.addListener=function(e,t){return d(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return d(this,e,t,!0)},c.prototype.once=function(e,t){return u(t),this.on(e,f(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){return u(t),this.prependListener(e,f(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,i,s,o;if(u(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){o=n[s].listener,i=s;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,o||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,s=Object.keys(n);for(r=0;r<s.length;++r)"removeListener"!==(i=s[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return m(this,e,!0)},c.prototype.rawListeners=function(e){return m(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},c.prototype.listenerCount=g,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},51105:function(e,t,n){var r=n(37225).Buffer,i=n(53956);e.exports=function(e,t,n,s){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=n/8,a=r.alloc(o),c=r.alloc(s||0),l=r.alloc(0);o>0||s>0;){var u=new i;u.update(l),u.update(e),t&&u.update(t),l=u.digest();var p=0;if(o>0){var d=a.length-o;p=Math.min(o,l.length),l.copy(a,d,0,p),o-=p}if(p<l.length&&s>0){var h=c.length-s,f=Math.min(s,l.length-p);l.copy(c,h,p,p+f),s-=f}}return l.fill(0),{key:a,iv:c}}},18282:function(e,t,n){"use strict";n.d(t,{v:function(){return d}});var r,i=n(90136);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var a,c=(a=[],{activateTrap:function(e){if(a.length>0){var t=a[a.length-1];t!==e&&t.pause()}var n=a.indexOf(e);-1===n||a.splice(n,1),a.push(e)},deactivateTrap:function(e){var t=a.indexOf(e);-1!==t&&a.splice(t,1),a.length>0&&a[a.length-1].unpause()}}),l=function(e){return setTimeout(e,0)},u=function(e,t){var n=-1;return e.every((function(e,r){return!t(e)||(n=r,!1)})),n},p=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"function"==typeof e?e.apply(void 0,n):e},d=function(e,t){var n,a=document,d=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0},t),h={containers:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1},f=function(e){return h.containers.some((function(t){return t.contains(e)}))},m=function(e){var t=d[e];if(!t)return null;var n=t;if("string"==typeof t&&!(n=a.querySelector(t)))throw new Error("`".concat(e,"` refers to no known node"));if("function"==typeof t&&!(n=t()))throw new Error("`".concat(e,"` did not return a node"));return n},g=function(){var e;if(null!==m("initialFocus"))e=m("initialFocus");else if(f(a.activeElement))e=a.activeElement;else{var t=h.tabbableGroups[0];e=t&&t.firstTabbableNode||m("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},v=function(){if(h.tabbableGroups=h.containers.map((function(e){var t=(0,i.ht)(e);if(t.length>0)return{container:e,firstTabbableNode:t[0],lastTabbableNode:t[t.length-1]}})).filter((function(e){return!!e})),h.tabbableGroups.length<=0&&!m("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times")},b=function e(t){t!==a.activeElement&&(t&&t.focus?(t.focus({preventScroll:!!d.preventScroll}),h.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(t)&&t.select()):e(g()))},y=function(e){f(e.target)||(p(d.clickOutsideDeactivates,e)?n.deactivate({returnFocus:d.returnFocusOnDeactivate&&!(0,i.EB)(e.target)}):p(d.allowOutsideClick,e)||e.preventDefault())},k=function(e){var t=f(e.target);t||e.target instanceof Document?t&&(h.mostRecentlyFocusedNode=e.target):(e.stopImmediatePropagation(),b(h.mostRecentlyFocusedNode||g()))},w=function(e){if(!1!==d.escapeDeactivates&&function(e){return"Escape"===e.key||"Esc"===e.key||27===e.keyCode}(e))return e.preventDefault(),void n.deactivate();(function(e){return"Tab"===e.key||9===e.keyCode})(e)&&function(e){v();var t=null;if(h.tabbableGroups.length>0)if(u(h.tabbableGroups,(function(t){return t.container.contains(e.target)}))<0)t=e.shiftKey?h.tabbableGroups[h.tabbableGroups.length-1].lastTabbableNode:h.tabbableGroups[0].firstTabbableNode;else if(e.shiftKey){var n=u(h.tabbableGroups,(function(t){var n=t.firstTabbableNode;return e.target===n}));if(n>=0){var r=0===n?h.tabbableGroups.length-1:n-1;t=h.tabbableGroups[r].lastTabbableNode}}else{var i=u(h.tabbableGroups,(function(t){var n=t.lastTabbableNode;return e.target===n}));if(i>=0){var s=i===h.tabbableGroups.length-1?0:i+1;t=h.tabbableGroups[s].firstTabbableNode}}else t=m("fallbackFocus");t&&(e.preventDefault(),b(t))}(e)},_=function(e){p(d.clickOutsideDeactivates,e)||f(e.target)||p(d.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},E=function(){if(h.active)return c.activateTrap(n),r=d.delayInitialFocus?l((function(){b(g())})):b(g()),a.addEventListener("focusin",k,!0),a.addEventListener("mousedown",y,{capture:!0,passive:!1}),a.addEventListener("touchstart",y,{capture:!0,passive:!1}),a.addEventListener("click",_,{capture:!0,passive:!1}),a.addEventListener("keydown",w,{capture:!0,passive:!1}),n},C=function(){if(h.active)return a.removeEventListener("focusin",k,!0),a.removeEventListener("mousedown",y,!0),a.removeEventListener("touchstart",y,!0),a.removeEventListener("click",_,!0),a.removeEventListener("keydown",w,!0),n};return(n={activate:function(e){if(h.active)return this;v(),h.active=!0,h.paused=!1,h.nodeFocusedBeforeActivation=a.activeElement;var t=e&&e.onActivate?e.onActivate:d.onActivate;return t&&t(),E(),this},deactivate:function(e){if(!h.active)return this;clearTimeout(r),C(),h.active=!1,h.paused=!1,c.deactivateTrap(n);var t=e&&void 0!==e.onDeactivate?e.onDeactivate:d.onDeactivate;return t&&t(),(e&&void 0!==e.returnFocus?e.returnFocus:d.returnFocusOnDeactivate)&&l((function(){var e;b((e=h.nodeFocusedBeforeActivation,m("setReturnFocus")||e))})),this},pause:function(){return h.paused||!h.active||(h.paused=!0,C()),this},unpause:function(){return h.paused&&h.active?(h.paused=!1,v(),E(),this):this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return h.containers=t.map((function(e){return"string"==typeof e?a.querySelector(e):e})),h.active&&v(),this}}).updateContainerElements(e),n}},49478:function(e){var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString;e.exports=function(e,r,i){if("[object Function]"!==n.call(r))throw new TypeError("iterator must be a function");var s=e.length;if(s===+s)for(var o=0;o<s;o++)r.call(i,e[o],o,e);else for(var a in e)t.call(e,a)&&r.call(i,e[a],a,e)}},44033:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,r=Object.prototype.toString,i="[object Function]";e.exports=function(e){var s=this;if("function"!=typeof s||r.call(s)!==i)throw new TypeError(t+s);for(var o,a=n.call(arguments,1),c=function(){if(this instanceof o){var t=s.apply(this,a.concat(n.call(arguments)));return Object(t)===t?t:this}return s.apply(e,a.concat(n.call(arguments)))},l=Math.max(0,s.length-a.length),u=[],p=0;p<l;p++)u.push("$"+p);if(o=Function("binder","return function ("+u.join(",")+"){ return binder.apply(this,arguments); }")(c),s.prototype){var d=function(){};d.prototype=s.prototype,o.prototype=new d,d.prototype=null}return o}},75433:function(e,t,n){"use strict";var r=n(44033);e.exports=Function.prototype.bind||r},52221:function(e){e.exports=function e(n){if(t(n))return n;if(t(n.ownerDocument))return n.ownerDocument;if(t(n.document))return n.document;if(n.parentNode)return e(n.parentNode);if(n.commonAncestorContainer)return e(n.commonAncestorContainer);if(n.startContainer)return e(n.startContainer);if(n.anchorNode)return e(n.anchorNode)};function t(e){return e&&9===e.nodeType}},25165:function(e,t,n){"use strict";var r,i=SyntaxError,s=Function,o=TypeError,a=function(e){try{return s('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var l=function(){throw new o},u=c?function(){try{return l}catch(e){try{return c(arguments,"callee").get}catch(e){return l}}}():l,p=n(45992)(),d=Object.getPrototypeOf||function(e){return e.__proto__},h={},f="undefined"==typeof Uint8Array?r:d(Uint8Array),m={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":p?d([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":h,"%AsyncGenerator%":h,"%AsyncGeneratorFunction%":h,"%AsyncIteratorPrototype%":h,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":s,"%GeneratorFunction%":h,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":p?d(d([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&p?d((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&p?d((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":p?d(""[Symbol.iterator]()):r,"%Symbol%":p?Symbol:r,"%SyntaxError%":i,"%ThrowTypeError%":u,"%TypedArray%":f,"%TypeError%":o,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet},g=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&(n=d(i.prototype))}return m[t]=n,n},v={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},b=n(75433),y=n(99569),k=b.call(Function.call,Array.prototype.concat),w=b.call(Function.apply,Array.prototype.splice),_=b.call(Function.call,String.prototype.replace),E=b.call(Function.call,String.prototype.slice),C=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,S=/\\(\\)?/g,j=function(e){var t=E(e,0,1),n=E(e,-1);if("%"===t&&"%"!==n)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new i("invalid intrinsic syntax, expected opening `%`");var r=[];return _(e,C,(function(e,t,n,i){r[r.length]=n?_(i,S,"$1"):t||e})),r},M=function(e,t){var n,r=e;if(y(v,r)&&(r="%"+(n=v[r])[0]+"%"),y(m,r)){var s=m[r];if(s===h&&(s=g(r)),void 0===s&&!t)throw new o("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:s}}throw new i("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new o("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new o('"allowMissing" argument must be a boolean');var n=j(e),r=n.length>0?n[0]:"",s=M("%"+r+"%",t),a=s.name,l=s.value,u=!1,p=s.alias;p&&(r=p[0],w(n,k([0,1],p)));for(var d=1,h=!0;d<n.length;d+=1){var f=n[d],g=E(f,0,1),v=E(f,-1);if(('"'===g||"'"===g||"`"===g||'"'===v||"'"===v||"`"===v)&&g!==v)throw new i("property names with quotes must have matching quotes");if("constructor"!==f&&h||(u=!0),y(m,a="%"+(r+="."+f)+"%"))l=m[a];else if(null!=l){if(!(f in l)){if(!t)throw new o("base intrinsic for "+e+" exists, but the property is not available.");return}if(c&&d+1>=n.length){var b=c(l,f);l=(h=!!b)&&"get"in b&&!("originalValue"in b.get)?b.get:l[f]}else h=y(l,f),l=l[f];h&&!u&&(m[a]=l)}}return l}},45992:function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,i=n(4461);e.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&i())))}},4461:function(e){"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},77828:function(e,t,n){"use strict";var r=n(4461);e.exports=function(){return r()&&!!Symbol.toStringTag}},99569:function(e,t,n){"use strict";var r=n(75433);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},39302:function(e,t,n){"use strict";var r=n(37225).Buffer,i=n(7130).Transform;function s(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(59503)(s,i),s.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},s.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},s.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var s=this._blockOffset;s<this._blockSize;)n[s++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)n[this._blockOffset++]=e[i++];for(var o=0,a=8*e.length;a>0;++o)this._length[o]+=a,(a=this._length[o]/4294967296|0)>0&&(this._length[o]-=4294967296*a);return this},s.prototype._update=function(){throw new Error("_update is not implemented")},s.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},s.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=s},91138:function(e,t,n){var r=t;r.utils=n(53566),r.common=n(95949),r.sha=n(75894),r.ripemd=n(94877),r.hmac=n(9942),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},95949:function(e,t,n){"use strict";var r=n(53566),i=n(48282);function s(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=s,s.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},s.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},s.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var s=8;s<this.padLength;s++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,s=8;s<this.padLength;s++)r[i++]=0;return r}},9942:function(e,t,n){"use strict";var r=n(53566),i=n(48282);function s(e,t,n){if(!(this instanceof s))return new s(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=s,s.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},s.prototype.update=function(e,t){return this.inner.update(e,t),this},s.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},94877:function(e,t,n){"use strict";var r=n(53566),i=n(95949),s=r.rotl32,o=r.sum32,a=r.sum32_3,c=r.sum32_4,l=i.BlockHash;function u(){if(!(this instanceof u))return new u;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function p(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function d(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function h(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(u,l),t.ripemd160=u,u.blockSize=512,u.outSize=160,u.hmacStrength=192,u.padLength=64,u.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],l=this.h[3],u=this.h[4],b=n,y=r,k=i,w=l,_=u,E=0;E<80;E++){var C=o(s(c(n,p(E,r,i,l),e[f[E]+t],d(E)),g[E]),u);n=u,u=l,l=s(i,10),i=r,r=C,C=o(s(c(b,p(79-E,y,k,w),e[m[E]+t],h(E)),v[E]),_),b=_,_=w,w=s(k,10),k=y,y=C}C=a(this.h[1],i,w),this.h[1]=a(this.h[2],l,_),this.h[2]=a(this.h[3],u,b),this.h[3]=a(this.h[4],n,y),this.h[4]=a(this.h[0],r,k),this.h[0]=C},u.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var f=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],m=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],g=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},75894:function(e,t,n){"use strict";t.sha1=n(69016),t.sha224=n(92055),t.sha256=n(23347),t.sha384=n(57544),t.sha512=n(31766)},69016:function(e,t,n){"use strict";var r=n(53566),i=n(95949),s=n(47574),o=r.rotl32,a=r.sum32,c=r.sum32_5,l=s.ft_1,u=i.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(d,u),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=o(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],s=this.h[1],u=this.h[2],d=this.h[3],h=this.h[4];for(r=0;r<n.length;r++){var f=~~(r/20),m=c(o(i,5),l(f,s,u,d),h,n[r],p[f]);h=d,d=u,u=o(s,30),s=i,i=m}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],s),this.h[2]=a(this.h[2],u),this.h[3]=a(this.h[3],d),this.h[4]=a(this.h[4],h)},d.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},92055:function(e,t,n){"use strict";var r=n(53566),i=n(23347);function s(){if(!(this instanceof s))return new s;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(s,i),e.exports=s,s.blockSize=512,s.outSize=224,s.hmacStrength=192,s.padLength=64,s.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},23347:function(e,t,n){"use strict";var r=n(53566),i=n(95949),s=n(47574),o=n(48282),a=r.sum32,c=r.sum32_4,l=r.sum32_5,u=s.ch32,p=s.maj32,d=s.s0_256,h=s.s1_256,f=s.g0_256,m=s.g1_256,g=i.BlockHash,v=[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];function b(){if(!(this instanceof b))return new b;g.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=v,this.W=new Array(64)}r.inherits(b,g),e.exports=b,b.blockSize=512,b.outSize=256,b.hmacStrength=192,b.padLength=64,b.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=c(m(n[r-2]),n[r-7],f(n[r-15]),n[r-16]);var i=this.h[0],s=this.h[1],g=this.h[2],v=this.h[3],b=this.h[4],y=this.h[5],k=this.h[6],w=this.h[7];for(o(this.k.length===n.length),r=0;r<n.length;r++){var _=l(w,h(b),u(b,y,k),this.k[r],n[r]),E=a(d(i),p(i,s,g));w=k,k=y,y=b,b=a(v,_),v=g,g=s,s=i,i=a(_,E)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],s),this.h[2]=a(this.h[2],g),this.h[3]=a(this.h[3],v),this.h[4]=a(this.h[4],b),this.h[5]=a(this.h[5],y),this.h[6]=a(this.h[6],k),this.h[7]=a(this.h[7],w)},b.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},57544:function(e,t,n){"use strict";var r=n(53566),i=n(31766);function s(){if(!(this instanceof s))return new s;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(s,i),e.exports=s,s.blockSize=1024,s.outSize=384,s.hmacStrength=192,s.padLength=128,s.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},31766:function(e,t,n){"use strict";var r=n(53566),i=n(95949),s=n(48282),o=r.rotr64_hi,a=r.rotr64_lo,c=r.shr64_hi,l=r.shr64_lo,u=r.sum64,p=r.sum64_hi,d=r.sum64_lo,h=r.sum64_4_hi,f=r.sum64_4_lo,m=r.sum64_5_hi,g=r.sum64_5_lo,v=i.BlockHash,b=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;v.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=b,this.W=new Array(160)}function k(e,t,n,r,i){var s=e&n^~e&i;return s<0&&(s+=4294967296),s}function w(e,t,n,r,i,s){var o=t&r^~t&s;return o<0&&(o+=4294967296),o}function _(e,t,n,r,i){var s=e&n^e&i^n&i;return s<0&&(s+=4294967296),s}function E(e,t,n,r,i,s){var o=t&r^t&s^r&s;return o<0&&(o+=4294967296),o}function C(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function S(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function j(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function M(e,t){var n=a(e,t,14)^a(e,t,18)^a(t,e,9);return n<0&&(n+=4294967296),n}function x(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function N(e,t){var n=a(e,t,1)^a(e,t,8)^l(e,t,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function O(e,t){var n=a(e,t,19)^a(t,e,29)^l(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,v),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=A(n[r-4],n[r-3]),s=O(n[r-4],n[r-3]),o=n[r-14],a=n[r-13],c=x(n[r-30],n[r-29]),l=N(n[r-30],n[r-29]),u=n[r-32],p=n[r-31];n[r]=h(i,s,o,a,c,l,u,p),n[r+1]=f(i,s,o,a,c,l,u,p)}},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],o=this.h[2],a=this.h[3],c=this.h[4],l=this.h[5],h=this.h[6],f=this.h[7],v=this.h[8],b=this.h[9],y=this.h[10],x=this.h[11],N=this.h[12],A=this.h[13],O=this.h[14],T=this.h[15];s(this.k.length===n.length);for(var P=0;P<n.length;P+=2){var I=O,R=T,U=j(v,b),Z=M(v,b),D=k(v,b,y,x,N),L=w(v,b,y,x,N,A),z=this.k[P],B=this.k[P+1],F=n[P],V=n[P+1],q=m(I,R,U,Z,D,L,z,B,F,V),H=g(I,R,U,Z,D,L,z,B,F,V);I=C(r,i),R=S(r,i),U=_(r,i,o,a,c),Z=E(r,i,o,a,c,l);var W=p(I,R,U,Z),$=d(I,R,U,Z);O=N,T=A,N=y,A=x,y=v,x=b,v=p(h,f,q,H),b=d(f,f,q,H),h=c,f=l,c=o,l=a,o=r,a=i,r=p(q,H,W,$),i=d(q,H,W,$)}u(this.h,0,r,i),u(this.h,2,o,a),u(this.h,4,c,l),u(this.h,6,h,f),u(this.h,8,v,b),u(this.h,10,y,x),u(this.h,12,N,A),u(this.h,14,O,T)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function i(e,t,n){return e&t^~e&n}function s(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?o(t,n,r):2===e?s(t,n,r):void 0},t.ch32=i,t.maj32=s,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),i=n(59503);function s(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function o(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var o=e.charCodeAt(i);o<128?n[r++]=o:o<2048?(n[r++]=o>>6|192,n[r++]=63&o|128):s(e,i)?(o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++i)),n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=63&o|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=63&o|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=a(e[n].toString(16));return t},t.htonl=o,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=o(i)),n+=c(i.toString(16))}return n},t.zero2=a,t.zero8=c,t.join32=function(e,t,n,i){var s=n-t;r(s%4==0);for(var o=new Array(s/4),a=0,c=t;a<o.length;a++,c+=4){var l;l="big"===i?e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],o[a]=l>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var s=e[r];"big"===t?(n[i]=s>>>24,n[i+1]=s>>>16&255,n[i+2]=s>>>8&255,n[i+3]=255&s):(n[i+3]=s>>>24,n[i+2]=s>>>16&255,n[i+1]=s>>>8&255,n[i]=255&s)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],s=r+e[t+1]>>>0,o=(s<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=s},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,s,o,a){var c=0,l=t;return c+=(l=l+r>>>0)<t?1:0,c+=(l=l+s>>>0)<s?1:0,e+n+i+o+(c+=(l=l+a>>>0)<a?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,i,s,o,a){return t+r+s+a>>>0},t.sum64_5_hi=function(e,t,n,r,i,s,o,a,c,l){var u=0,p=t;return u+=(p=p+r>>>0)<t?1:0,u+=(p=p+s>>>0)<s?1:0,u+=(p=p+a>>>0)<a?1:0,e+n+i+o+c+(u+=(p=p+l>>>0)<l?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,i,s,o,a,c,l){return t+r+s+a+l>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},33451:function(e,t,n){"use strict";n.d(t,{lX:function(){return k},q_:function(){return j},PP:function(){return x},ob:function(){return d},Hp:function(){return h},Ep:function(){return p}});var r=n(40988),i=n(59149),s=n(21976),o=n(34770);function a(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function l(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function u(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,i=t||"/";return n&&"?"!==n&&(i+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(i+="#"===r.charAt(0)?r:"#"+r),i}function d(e,t,n,s){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",i=t.indexOf("#");-1!==i&&(r=t.substr(i),t=t.substr(0,i));var s=t.indexOf("?");return-1!==s&&(n=t.substr(s),t=t.substr(0,s)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(o.key=n),s?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=(0,i.Z)(o.pathname,s.pathname)):o.pathname=s.pathname:o.pathname||(o.pathname="/"),o}function h(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&(0,s.Z)(e.state,t.state)}function f(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,i){if(null!=e){var s="function"==typeof e?e(t,n):e;"string"==typeof s?"function"==typeof r?r(s,i):i(!0):i(!1!==s)}else i(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var m=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var v="popstate",b="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function k(e){void 0===e&&(e={}),m||(0,o.Z)(!1);var t,n=window.history,i=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,s=!(-1===window.navigator.userAgent.indexOf("Trident")),c=e,h=c.forceRefresh,k=void 0!==h&&h,w=c.getUserConfirmation,_=void 0===w?g:w,E=c.keyLength,C=void 0===E?6:E,S=e.basename?u(a(e.basename)):"";function j(e){var t=e||{},n=t.key,r=t.state,i=window.location,s=i.pathname+i.search+i.hash;return S&&(s=l(s,S)),d(s,r,n)}function M(){return Math.random().toString(36).substr(2,C)}var x=f();function N(e){(0,r.Z)(B,e),B.length=n.length,x.notifyListeners(B.location,B.action)}function A(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(j(e.state))}function O(){P(j(y()))}var T=!1;function P(e){if(T)T=!1,N();else{x.confirmTransitionTo(e,"POP",_,(function(t){t?N({action:"POP",location:e}):function(e){var t=B.location,n=R.indexOf(t.key);-1===n&&(n=0);var r=R.indexOf(e.key);-1===r&&(r=0);var i=n-r;i&&(T=!0,Z(i))}(e)}))}}var I=j(y()),R=[I.key];function U(e){return S+p(e)}function Z(e){n.go(e)}var D=0;function L(e){1===(D+=e)&&1===e?(window.addEventListener(v,A),s&&window.addEventListener(b,O)):0===D&&(window.removeEventListener(v,A),s&&window.removeEventListener(b,O))}var z=!1;var B={length:n.length,action:"POP",location:I,createHref:U,push:function(e,t){var r="PUSH",s=d(e,t,M(),B.location);x.confirmTransitionTo(s,r,_,(function(e){if(e){var t=U(s),o=s.key,a=s.state;if(i)if(n.pushState({key:o,state:a},null,t),k)window.location.href=t;else{var c=R.indexOf(B.location.key),l=R.slice(0,c+1);l.push(s.key),R=l,N({action:r,location:s})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",s=d(e,t,M(),B.location);x.confirmTransitionTo(s,r,_,(function(e){if(e){var t=U(s),o=s.key,a=s.state;if(i)if(n.replaceState({key:o,state:a},null,t),k)window.location.replace(t);else{var c=R.indexOf(B.location.key);-1!==c&&(R[c]=s.key),N({action:r,location:s})}else window.location.replace(t)}}))},go:Z,goBack:function(){Z(-1)},goForward:function(){Z(1)},block:function(e){void 0===e&&(e=!1);var t=x.setPrompt(e);return z||(L(1),z=!0),function(){return z&&(z=!1,L(-1)),t()}},listen:function(e){var t=x.appendListener(e);return L(1),function(){L(-1),t()}}};return B}var w="hashchange",_={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:a},slash:{encodePath:a,decodePath:a}};function E(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function C(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function S(e){window.location.replace(E(window.location.href)+"#"+e)}function j(e){void 0===e&&(e={}),m||(0,o.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),i=n.getUserConfirmation,s=void 0===i?g:i,c=n.hashType,h=void 0===c?"slash":c,v=e.basename?u(a(e.basename)):"",b=_[h],y=b.encodePath,k=b.decodePath;function j(){var e=k(C());return v&&(e=l(e,v)),d(e)}var M=f();function x(e){(0,r.Z)(z,e),z.length=t.length,M.notifyListeners(z.location,z.action)}var N=!1,A=null;function O(){var e,t,n=C(),r=y(n);if(n!==r)S(r);else{var i=j(),o=z.location;if(!N&&(t=i,(e=o).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(A===p(i))return;A=null,function(e){if(N)N=!1,x();else{var t="POP";M.confirmTransitionTo(e,t,s,(function(n){n?x({action:t,location:e}):function(e){var t=z.location,n=R.lastIndexOf(p(t));-1===n&&(n=0);var r=R.lastIndexOf(p(e));-1===r&&(r=0);var i=n-r;i&&(N=!0,U(i))}(e)}))}}(i)}}var T=C(),P=y(T);T!==P&&S(P);var I=j(),R=[p(I)];function U(e){t.go(e)}var Z=0;function D(e){1===(Z+=e)&&1===e?window.addEventListener(w,O):0===Z&&window.removeEventListener(w,O)}var L=!1;var z={length:t.length,action:"POP",location:I,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=E(window.location.href)),n+"#"+y(v+p(e))},push:function(e,t){var n="PUSH",r=d(e,void 0,void 0,z.location);M.confirmTransitionTo(r,n,s,(function(e){if(e){var t=p(r),i=y(v+t);if(C()!==i){A=t,function(e){window.location.hash=e}(i);var s=R.lastIndexOf(p(z.location)),o=R.slice(0,s+1);o.push(t),R=o,x({action:n,location:r})}else x()}}))},replace:function(e,t){var n="REPLACE",r=d(e,void 0,void 0,z.location);M.confirmTransitionTo(r,n,s,(function(e){if(e){var t=p(r),i=y(v+t);C()!==i&&(A=t,S(i));var s=R.indexOf(p(z.location));-1!==s&&(R[s]=t),x({action:n,location:r})}}))},go:U,goBack:function(){U(-1)},goForward:function(){U(1)},block:function(e){void 0===e&&(e=!1);var t=M.setPrompt(e);return L||(D(1),L=!0),function(){return L&&(L=!1,D(-1)),t()}},listen:function(e){var t=M.appendListener(e);return D(1),function(){D(-1),t()}}};return z}function M(e,t,n){return Math.min(Math.max(e,t),n)}function x(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,i=t.initialEntries,s=void 0===i?["/"]:i,o=t.initialIndex,a=void 0===o?0:o,c=t.keyLength,l=void 0===c?6:c,u=f();function h(e){(0,r.Z)(k,e),k.length=k.entries.length,u.notifyListeners(k.location,k.action)}function m(){return Math.random().toString(36).substr(2,l)}var g=M(a,0,s.length-1),v=s.map((function(e){return d(e,void 0,"string"==typeof e?m():e.key||m())})),b=p;function y(e){var t=M(k.index+e,0,k.entries.length-1),r=k.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?h({action:"POP",location:r,index:t}):h()}))}var k={length:v.length,action:"POP",location:v[g],index:g,entries:v,createHref:b,push:function(e,t){var r="PUSH",i=d(e,t,m(),k.location);u.confirmTransitionTo(i,r,n,(function(e){if(e){var t=k.index+1,n=k.entries.slice(0);n.length>t?n.splice(t,n.length-t,i):n.push(i),h({action:r,location:i,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",i=d(e,t,m(),k.location);u.confirmTransitionTo(i,r,n,(function(e){e&&(k.entries[k.index]=i,h({action:r,location:i}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=k.index+e;return t>=0&&t<k.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return k}},53674:function(e,t,n){"use strict";var r=n(91138),i=n(90458),s=n(48282);function o(e){if(!(this instanceof o))return new o(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");s(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=o,o.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},o.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},o.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},o.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=i.toArray(e,t),n=i.toArray(n,r),s(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},o.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var s=[];s.length<e;)this.V=this._hmac().update(this.V).digest(),s=s.concat(this.V);var o=s.slice(0,e);return this._update(n),this._reseed++,i.encode(o,t)}},13266:function(e,t,n){"use strict";var r=n(80364),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function c(e){return r.isMemo(e)?o:a[e.$$typeof]||i}a[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[r.Memo]=o;var l=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(f){var i=h(n);i&&i!==f&&e(t,i,r)}var o=u(n);p&&(o=o.concat(p(n)));for(var a=c(t),m=c(n),g=0;g<o.length;++g){var v=o[g];if(!(s[v]||r&&r[v]||m&&m[v]||a&&a[v])){var b=d(n,v);try{l(t,v,b)}catch(e){}}}}return t}},88617:function(e,t,n){"use strict";var r=n(59128),i=n(98086),s=n(90922),o=n.n(s),a=n(94481),c=n(88090),l=n(75565),u=n.n(l),p=n(69016),d=n.n(p),h=n(2571),f=n(702),m=n(92846),g=o()("i18n-calypso"),v="number_format_decimals",b="number_format_thousands_sep",y="messages",k=[function(e){return e}],w={};function _(){M.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function E(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&_("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",E(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&_("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",E(e));for(var n={},r=0;r<e.length;r++)"object"==typeof e[r]&&(n=e[r]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function S(e,t){return e.dcnpgettext(y,t.context,t.original,t.plural,t.count)}function j(e,t){for(var n=k.length-1;n>=0;n--){var r=k[n](Object.assign({},t)),i=r.context?r.context+""+r.original:r.original;if(e.state.locale[i])return S(e.state.tannin,r)}return null}function M(){if(!(this instanceof M))return new M;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:u()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new h.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}M.throwErrors=!1,M.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},M.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},M.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},M.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,r=t.decPoint||this.state.numberFormatSettings.decimal_point||".",i=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,m.Z)(e,n,r,i)},M.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},M.prototype.setLocale=function(e){var t,n,r;if(e&&e[""]&&e[""]["key-hash"]){var s=e[""]["key-hash"],o=function(e,t){var n=!1===t?"":String(t);if(void 0!==w[n+e])return w[n+e];var r=d()().update(e).digest("hex");return w[n+e]=t?r.substr(0,t):r},a=function(e){return function(t){return t.context?(t.original=o(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=o(t.original,e),t}};if("sha1"===s.substr(0,4))if(4===s.length)k.push(a(!1));else{var l=s.substr(5).indexOf("-");if(l<0){var u=Number(s.substr(5));k.push(a(u))}else for(var p=Number(s.substr(5,l)),h=Number(s.substr(6+l)),f=p;f<=h;f++)k.push(a(f))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(r=n.momentjs_locale)||void 0===r?void 0:r.textDirection),this.state.tannin=new c.Z((0,i.Z)({},y,this.state.locale)),this.state.numberFormatSettings.decimal_point=S(this.state.tannin,C([v])),this.state.numberFormatSettings.thousands_sep=S(this.state.tannin,C([b])),this.state.numberFormatSettings.decimal_point===v&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===b&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},M.prototype.getLocale=function(){return this.state.locale},M.prototype.getLocaleSlug=function(){return this.state.localeSlug},M.prototype.isRtl=function(){return"rtl"===this.state.textDirection},M.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},M.prototype.hasTranslation=function(){return!!j(this,C(arguments))},M.prototype.translate=function(){var e=C(arguments),t=j(this,e);if(t||(t=S(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=f.Z.apply(void 0,(0,r.Z)(n))}catch(e){if(!window||!window.console)return;var i=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[i](e):window.console[i]("i18n sprintf error:",n)}}return e.components&&(t=(0,a.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},M.prototype.reRenderTranslations=function(){g("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},M.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},M.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=M},63807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return c}});var r=n(88617),i=n(42928),s=n(80975),o=n(24531),a=new r.Z,c=a.numberFormat.bind(a),l=(a.translate.bind(a),a.configure.bind(a),a.setLocale.bind(a),a.getLocale.bind(a),a.getLocaleSlug.bind(a),a.addTranslations.bind(a),a.reRenderTranslations.bind(a),a.registerComponentUpdateHook.bind(a),a.registerTranslateHook.bind(a),a.state,a.stateObserver,a.on.bind(a),a.off.bind(a),a.emit.bind(a),(0,i.Z)(a),(0,s.Z)(a),(0,o.Z)(a));l.useRtl,l.withRtl},42928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(59591),i=n(71687),s=n(93772),o=n(55200),a=n(82104),c=n(9057),l=n(98086),u=n(99196),p=n.n(u);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var u,d,h=n.displayName||n.name||"";return d=u=function(u){(0,a.Z)(h,u);var d=(0,c.Z)(h);function h(){var e;(0,i.Z)(this,h);for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return e=d.call.apply(d,[this].concat(n)),(0,l.Z)((0,o.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,o.Z)(e))),e}return(0,s.Z)(h,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var i=(0,r.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,i)}}]),h}(p().Component),(0,l.Z)(u,"displayName","Localized("+h+")"),d}}},92846:function(e,t,n){"use strict";function r(e,t,n,r){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var i=isFinite(+e)?+e:0,s=isFinite(+t)?Math.abs(t):0,o=void 0===r?",":r,a=void 0===n?".":n,c="";return c=(s?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(i,s):""+Math.round(i)).split("."),c[0].length>3&&(c[0]=c[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,o)),(c[1]||"").length<s&&(c[1]=c[1]||"",c[1]+=new Array(s-c[1].length+1).join("0")),c.join(a)}n.d(t,{Z:function(){return r}})},24531:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(50735),i=n(99196),s=n.n(i),o=n(20036),a=n(94333);function c(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,o.useSubscription)(t)}var c=(0,a.createHigherOrderComponent)((function(e){return(0,i.forwardRef)((function(t,i){var o=n();return s().createElement(e,(0,r.Z)({},t,{isRtl:o,ref:i}))}))}),"WithRTL");return{useRtl:n,withRtl:c}}},80975:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(50572),i=n(99196),s=n.n(i);function o(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=s().useState(t),i=(0,r.Z)(n,2),o=i[0],a=i[1];return s().useEffect((function(){var n=function(){return a(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),o}}},23644:function(e,t){t.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,c=(1<<a)-1,l=c>>1,u=-7,p=n?i-1:0,d=n?-1:1,h=e[t+p];for(p+=d,s=h&(1<<-u)-1,h>>=-u,u+=a;u>0;s=256*s+e[t+p],p+=d,u-=8);for(o=s&(1<<-u)-1,s>>=-u,u+=r;u>0;o=256*o+e[t+p],p+=d,u-=8);if(0===s)s=1-l;else{if(s===c)return o?NaN:1/0*(h?-1:1);o+=Math.pow(2,r),s-=l}return(h?-1:1)*o*Math.pow(2,s-r)},t.write=function(e,t,n,r,i,s){var o,a,c,l=8*s-i-1,u=(1<<l)-1,p=u>>1,d=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,h=r?0:s-1,f=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,o=u):(o=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-o))<1&&(o--,c*=2),(t+=o+p>=1?d/c:d*Math.pow(2,1-p))*c>=2&&(o++,c/=2),o+p>=u?(a=0,o=u):o+p>=1?(a=(t*c-1)*Math.pow(2,i),o+=p):(a=t*Math.pow(2,p-1)*Math.pow(2,i),o=0));i>=8;e[n+h]=255&a,h+=f,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;e[n+h]=255&o,h+=f,o/=256,l-=8);e[n+h-f]|=128*m}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},24546:function(e){"use strict";e.exports=function(e,t,n,r,i,s,o,a){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,i,s,o,a],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},98304:function(e,t,n){"use strict";var r=n(77828)(),i=n(16422)("Object.prototype.toString"),s=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===i(e)},o=function(e){return!!s(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==i(e)&&"[object Function]"===i(e.callee)},a=function(){return s(arguments)}();s.isLegacyArguments=o,e.exports=a?s:o},57372:function(e,t,n){"use strict";var r,i=Object.prototype.toString,s=Function.prototype.toString,o=/^\s*(?:function)?\*/,a=n(77828)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(o.test(s.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===i.call(e);if(!c)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&c(t)}return c(e)===r}},46618:function(e){"use strict";e.exports=function(e){return e!=e}},17614:function(e,t,n){"use strict";var r=n(43120),i=n(13185),s=n(46618),o=n(42775),a=n(49582),c=r(o(),Number);i(c,{getPolyfill:o,implementation:s,shim:a}),e.exports=c},42775:function(e,t,n){"use strict";var r=n(46618);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},49582:function(e,t,n){"use strict";var r=n(13185),i=n(42775);e.exports=function(){var e=i();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},8639:function(e,t,n){"use strict";var r=n(49478),i=n(87331),s=n(16422),o=s("Object.prototype.toString"),a=n(77828)(),c="undefined"==typeof globalThis?window:globalThis,l=i(),u=s("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},p=s("String.prototype.slice"),d={},h=n(61787),f=Object.getPrototypeOf;a&&h&&f&&r(l,(function(e){var t=new c[e];if(Symbol.toStringTag in t){var n=f(t),r=h(n,Symbol.toStringTag);if(!r){var i=f(n);r=h(i,Symbol.toStringTag)}d[e]=r.get}}));e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!a||!(Symbol.toStringTag in e)){var t=p(o(e),8,-1);return u(l,t)>-1}return!!h&&function(e){var t=!1;return r(d,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},16169:function(e){e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},75565:function(e,t,n){var r=n(2571),i=n(59503);function s(e){if(!(this instanceof s))return new s(e);"number"==typeof e&&(e={max:e}),e||(e={}),r.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=s,i(s,r.EventEmitter),Object.defineProperty(s.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),s.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},s.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},s.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},s.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},s.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},s.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},s.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},s.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},53956:function(e,t,n){"use strict";var r=n(59503),i=n(39302),s=n(37225).Buffer,o=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<<t|e>>>32-t}function l(e,t,n,r,i,s,o){return c(e+(t&n|~t&r)+i+s|0,o)+t|0}function u(e,t,n,r,i,s,o){return c(e+(t&r|n&~r)+i+s|0,o)+t|0}function p(e,t,n,r,i,s,o){return c(e+(t^n^r)+i+s|0,o)+t|0}function d(e,t,n,r,i,s,o){return c(e+(n^(t|~r))+i+s|0,o)+t|0}r(a,i),a.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,s=this._d;n=l(n,r,i,s,e[0],3614090360,7),s=l(s,n,r,i,e[1],3905402710,12),i=l(i,s,n,r,e[2],606105819,17),r=l(r,i,s,n,e[3],3250441966,22),n=l(n,r,i,s,e[4],4118548399,7),s=l(s,n,r,i,e[5],1200080426,12),i=l(i,s,n,r,e[6],2821735955,17),r=l(r,i,s,n,e[7],4249261313,22),n=l(n,r,i,s,e[8],1770035416,7),s=l(s,n,r,i,e[9],2336552879,12),i=l(i,s,n,r,e[10],4294925233,17),r=l(r,i,s,n,e[11],2304563134,22),n=l(n,r,i,s,e[12],1804603682,7),s=l(s,n,r,i,e[13],4254626195,12),i=l(i,s,n,r,e[14],2792965006,17),n=u(n,r=l(r,i,s,n,e[15],1236535329,22),i,s,e[1],4129170786,5),s=u(s,n,r,i,e[6],3225465664,9),i=u(i,s,n,r,e[11],643717713,14),r=u(r,i,s,n,e[0],3921069994,20),n=u(n,r,i,s,e[5],3593408605,5),s=u(s,n,r,i,e[10],38016083,9),i=u(i,s,n,r,e[15],3634488961,14),r=u(r,i,s,n,e[4],3889429448,20),n=u(n,r,i,s,e[9],568446438,5),s=u(s,n,r,i,e[14],3275163606,9),i=u(i,s,n,r,e[3],4107603335,14),r=u(r,i,s,n,e[8],1163531501,20),n=u(n,r,i,s,e[13],2850285829,5),s=u(s,n,r,i,e[2],4243563512,9),i=u(i,s,n,r,e[7],1735328473,14),n=p(n,r=u(r,i,s,n,e[12],2368359562,20),i,s,e[5],4294588738,4),s=p(s,n,r,i,e[8],2272392833,11),i=p(i,s,n,r,e[11],1839030562,16),r=p(r,i,s,n,e[14],4259657740,23),n=p(n,r,i,s,e[1],2763975236,4),s=p(s,n,r,i,e[4],1272893353,11),i=p(i,s,n,r,e[7],4139469664,16),r=p(r,i,s,n,e[10],3200236656,23),n=p(n,r,i,s,e[13],681279174,4),s=p(s,n,r,i,e[0],3936430074,11),i=p(i,s,n,r,e[3],3572445317,16),r=p(r,i,s,n,e[6],76029189,23),n=p(n,r,i,s,e[9],3654602809,4),s=p(s,n,r,i,e[12],3873151461,11),i=p(i,s,n,r,e[15],530742520,16),n=d(n,r=p(r,i,s,n,e[2],3299628645,23),i,s,e[0],4096336452,6),s=d(s,n,r,i,e[7],1126891415,10),i=d(i,s,n,r,e[14],2878612391,15),r=d(r,i,s,n,e[5],4237533241,21),n=d(n,r,i,s,e[12],1700485571,6),s=d(s,n,r,i,e[3],2399980690,10),i=d(i,s,n,r,e[10],4293915773,15),r=d(r,i,s,n,e[1],2240044497,21),n=d(n,r,i,s,e[8],1873313359,6),s=d(s,n,r,i,e[15],4264355552,10),i=d(i,s,n,r,e[6],2734768916,15),r=d(r,i,s,n,e[13],1309151649,21),n=d(n,r,i,s,e[4],4149444226,6),s=d(s,n,r,i,e[11],3174756917,10),i=d(i,s,n,r,e[2],718787259,15),r=d(r,i,s,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+s|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=s.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},16616:function(e,t,n){var r=n(30910),i=n(71876);function s(e){this.rand=e||new i.Rand}e.exports=s,s.create=function(e){return new s(e)},s.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},s.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},s.prototype.test=function(e,t,n){var i=e.bitLength(),s=r.mont(e),o=new r(1).toRed(s);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),c=0;!a.testn(c);c++);for(var l=e.shrn(c),u=a.toRed(s);t>0;t--){var p=this._randrange(new r(2),a);n&&n(p);var d=p.toRed(s).redPow(l);if(0!==d.cmp(o)&&0!==d.cmp(u)){for(var h=1;h<c;h++){if(0===(d=d.redSqr()).cmp(o))return!1;if(0===d.cmp(u))break}if(h===c)return!1}}return!0},s.prototype.getDivisor=function(e,t){var n=e.bitLength(),i=r.mont(e),s=new r(1).toRed(i);t||(t=Math.max(1,n/48|0));for(var o=e.subn(1),a=0;!o.testn(a);a++);for(var c=e.shrn(a),l=o.toRed(i);t>0;t--){var u=this._randrange(new r(2),o),p=e.gcd(u);if(0!==p.cmpn(1))return p;var d=u.toRed(i).redPow(c);if(0!==d.cmp(s)&&0!==d.cmp(l)){for(var h=1;h<a;h++){if(0===(d=d.redSqr()).cmp(s))return d.fromRed().subn(1).gcd(e);if(0===d.cmp(l))break}if(h===a)return(d=d.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},66118:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(96980),o=n(11268),a=n.n(o),c=1073741823,l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window||"undefined"!=typeof window?window:{};function u(e){var t=[];return{on:function(e){t.push(e)},off:function(e){t=t.filter((function(t){return t!==e}))},get:function(){return e},set:function(n,r){e=n,t.forEach((function(t){return t(e,r)}))}}}var p=i().createContext||function(e,t){var n,i,o,p="__create-react-context-"+((l[o="__global_unique_id__"]=(l[o]||0)+1)+"__"),d=function(e){function n(){var t;return(t=e.apply(this,arguments)||this).emitter=u(t.props.value),t}(0,s.Z)(n,e);var r=n.prototype;return r.getChildContext=function(){var e;return(e={})[p]=this.emitter,e},r.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,i=e.value;((s=r)===(o=i)?0!==s||1/s==1/o:s!=s&&o!=o)?n=0:(n="function"==typeof t?t(r,i):c,0!==(n|=0)&&this.emitter.set(e.value,n))}var s,o},r.render=function(){return this.props.children},n}(r.Component);d.childContextTypes=((n={})[p]=a().object.isRequired,n);var h=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,s.Z)(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?c:t},r.componentDidMount=function(){this.context[p]&&this.context[p].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?c:e},r.componentWillUnmount=function(){this.context[p]&&this.context[p].off(this.onUpdate)},r.getValue=function(){return this.context[p]?this.context[p].get():e},r.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(r.Component);return h.contextTypes=((i={})[p]=a().object,i),{Provider:d,Consumer:h}};t.Z=p},1920:function(){},3696:function(){},99889:function(){},93474:function(){},33285:function(){},39999:function(){},6383:function(){},78785:function(){},79177:function(){},16341:function(){},91648:function(){},907:function(){},58187:function(){},85731:function(){},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},90458:function(e,t){"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),s=i>>8,o=255&i;s?n.push(s,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},32002:function(e){var t=1e3,n=60*t,r=60*n,i=24*r,s=7*i,o=365.25*i;function a(e,t,n,r){var i=t>=1.5*n;return Math.round(e/n)+" "+r+(i?"s":"")}e.exports=function(e,c){c=c||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\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(!a)return;var c=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*o;case"weeks":case"week":case"w":return c*s;case"days":case"day":case"d":return c*i;case"hours":case"hour":case"hrs":case"hr":case"h":return c*r;case"minutes":case"minute":case"mins":case"min":case"m":return c*n;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===l&&isFinite(e))return c.long?function(e){var s=Math.abs(e);if(s>=i)return a(e,s,i,"day");if(s>=r)return a(e,s,r,"hour");if(s>=n)return a(e,s,n,"minute");if(s>=t)return a(e,s,t,"second");return e+" ms"}(e):function(e){var s=Math.abs(e);if(s>=i)return Math.round(e/i)+"d";if(s>=r)return Math.round(e/r)+"h";if(s>=n)return Math.round(e/n)+"m";if(s>=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))}},96121:function(e){e.exports=function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,s){for(var o,a,c=i(e),l=1;l<arguments.length;l++){for(var u in o=Object(arguments[l]))n.call(o,u)&&(c[u]=o[u]);if(t){a=t(o);for(var p=0;p<a.length;p++)r.call(o,a[p])&&(c[a[p]]=o[a[p]])}}return c}},72335:function(e){"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},88706:function(e,t,n){"use strict";var r=n(13185),i=n(43120),s=n(72335),o=n(75432),a=n(95894),c=i(o(),Object);r(c,{getPolyfill:o,implementation:s,shim:a}),e.exports=c},75432:function(e,t,n){"use strict";var r=n(72335);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},95894:function(e,t,n){"use strict";var r=n(75432),i=n(13185);e.exports=function(){var e=r();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},96128:function(e,t,n){"use strict";var r;if(!Object.keys){var i=Object.prototype.hasOwnProperty,s=Object.prototype.toString,o=n(56133),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),l=a.call((function(){}),"prototype"),u=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],p=function(e){var t=e.constructor;return t&&t.prototype===e},d={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},h=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!d["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{p(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===s.call(e),r=o(e),a=t&&"[object String]"===s.call(e),d=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var f=l&&n;if(a&&e.length>0&&!i.call(e,0))for(var m=0;m<e.length;++m)d.push(String(m));if(r&&e.length>0)for(var g=0;g<e.length;++g)d.push(String(g));else for(var v in e)f&&"prototype"===v||!i.call(e,v)||d.push(String(v));if(c)for(var b=function(e){if("undefined"==typeof window||!h)return p(e);try{return p(e)}catch(e){return!1}}(e),y=0;y<u.length;++y)b&&"constructor"===u[y]||!i.call(e,u[y])||d.push(u[y]);return d}}e.exports=r},98517:function(e,t,n){"use strict";var r=Array.prototype.slice,i=n(56133),s=Object.keys,o=s?function(e){return s(e)}:n(96128),a=Object.keys;o.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?a(r.call(e)):a(e)})}else Object.keys=o;return Object.keys||o},e.exports=o},56133:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},82581:function(e,t,n){"use strict";var r=n(8277);t.certificate=n(42103);var i=r.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=i;var s=r.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=s;var o=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())}));t.PublicKey=o;var a=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),c=r.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=c;var l=r.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=l;var u=r.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=u,t.DSAparam=r.define("DSAparam",(function(){this.int()}));var p=r.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(d),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=p;var d=r.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=r.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},42103:function(e,t,n){"use strict";var r=n(8277),i=r.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),s=r.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),o=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),a=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(o),this.key("subjectPublicKey").bitstr())})),c=r.define("RelativeDistinguishedName",(function(){this.setof(s)})),l=r.define("RDNSequence",(function(){this.seqof(c)})),u=r.define("Name",(function(){this.choice({rdnSequence:this.use(l)})})),p=r.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),d=r.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),h=r.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(o),this.key("issuer").use(u),this.key("validity").use(p),this.key("subject").use(u),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(d).optional())})),f=r.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(h),this.key("signatureAlgorithm").use(o),this.key("signatureValue").bitstr())}));e.exports=f},89987:function(e,t,n){var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,s=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,o=n(51105),a=n(6123),c=n(37225).Buffer;e.exports=function(e,t){var n,l=e.toString(),u=l.match(r);if(u){var p="aes"+u[1],d=c.from(u[2],"hex"),h=c.from(u[3].replace(/[\r\n]/g,""),"base64"),f=o(t,d.slice(0,8),parseInt(u[1],10)).key,m=[],g=a.createDecipheriv(p,f,d);m.push(g.update(h)),m.push(g.final()),n=c.concat(m)}else{var v=l.match(s);n=c.from(v[2].replace(/[\r\n]/g,""),"base64")}return{tag:l.match(i)[1],data:n}}},87758:function(e,t,n){var r=n(82581),i=n(93611),s=n(89987),o=n(6123),a=n(80231),c=n(37225).Buffer;function l(e){var t;"object"!=typeof e||c.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=c.from(e));var n,l,u=s(e,t),p=u.tag,d=u.data;switch(p){case"CERTIFICATE":l=r.certificate.decode(d,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(l||(l=r.PublicKey.decode(d,"der")),n=l.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(l.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return l.subjectPrivateKey=l.subjectPublicKey,{type:"ec",data:l};case"1.2.840.10040.4.1":return l.algorithm.params.pub_key=r.DSAparam.decode(l.subjectPublicKey.data,"der"),{type:"dsa",data:l.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":d=function(e,t){var n=e.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),s=i[e.algorithm.decrypt.cipher.algo.join(".")],l=e.algorithm.decrypt.cipher.iv,u=e.subjectPrivateKey,p=parseInt(s.split("-")[1],10)/8,d=a.pbkdf2Sync(t,n,r,p,"sha1"),h=o.createDecipheriv(s,d,l),f=[];return f.push(h.update(u)),f.push(h.final()),c.concat(f)}(d=r.EncryptedPrivateKey.decode(d,"der"),t);case"PRIVATE KEY":switch(n=(l=r.PrivateKey.decode(d,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(l.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:l.algorithm.curve,privateKey:r.ECPrivateKey.decode(l.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return l.algorithm.params.priv_key=r.DSAparam.decode(l.subjectPrivateKey,"der"),{type:"dsa",params:l.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(d,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(d,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(d,"der")};case"EC PRIVATE KEY":return{curve:(d=r.ECPrivateKey.decode(d,"der")).parameters.value,privateKey:d.privateKey};default:throw new Error("unknown key type "+p)}}e.exports=l,l.signature=r.signature},760:function(e,t,n){var r=n(16169);e.exports=h,e.exports.parse=s,e.exports.compile=function(e,t){return a(s(e,t),t)},e.exports.tokensToFunction=a,e.exports.tokensToRegExp=d;var i=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function s(e,t){for(var n,r=[],s=0,o=0,a="",u=t&&t.delimiter||"/";null!=(n=i.exec(e));){var p=n[0],d=n[1],h=n.index;if(a+=e.slice(o,h),o=h+p.length,d)a+=d[1];else{var f=e[o],m=n[2],g=n[3],v=n[4],b=n[5],y=n[6],k=n[7];a&&(r.push(a),a="");var w=null!=m&&null!=f&&f!==m,_="+"===y||"*"===y,E="?"===y||"*"===y,C=n[2]||u,S=v||b;r.push({name:g||s++,prefix:m||"",delimiter:C,optional:E,repeat:_,partial:w,asterisk:!!k,pattern:S?l(S):k?".*":"[^"+c(C)+"]+?"})}}return o<e.length&&(a+=e.substr(o)),a&&r.push(a),r}function o(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function a(e,t){for(var n=new Array(e.length),i=0;i<e.length;i++)"object"==typeof e[i]&&(n[i]=new RegExp("^(?:"+e[i].pattern+")$",p(t)));return function(t,i){for(var s="",a=t||{},c=(i||{}).pretty?o:encodeURIComponent,l=0;l<e.length;l++){var u=e[l];if("string"!=typeof u){var p,d=a[u.name];if(null==d){if(u.optional){u.partial&&(s+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(d)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(d)+"`");if(0===d.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var h=0;h<d.length;h++){if(p=c(d[h]),!n[l].test(p))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(p)+"`");s+=(0===h?u.prefix:u.delimiter)+p}}else{if(p=u.asterisk?encodeURI(d).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):c(d),!n[l].test(p))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+p+'"');s+=u.prefix+p}}else s+=u}return s}}function c(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function l(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function p(e){return e&&e.sensitive?"":"i"}function d(e,t,n){r(t)||(n=t||n,t=[]);for(var i=(n=n||{}).strict,s=!1!==n.end,o="",a=0;a<e.length;a++){var l=e[a];if("string"==typeof l)o+=c(l);else{var d=c(l.prefix),h="(?:"+l.pattern+")";t.push(l),l.repeat&&(h+="(?:"+d+h+")*"),o+=h=l.optional?l.partial?d+"("+h+")?":"(?:"+d+"("+h+"))?":d+"("+h+")"}}var f=c(n.delimiter||"/"),m=o.slice(-f.length)===f;return i||(o=(m?o.slice(0,-f.length):o)+"(?:"+f+"(?=$))?"),o+=s?"$":i&&m?"":"(?="+f+"|$)",u(new RegExp("^"+o,p(n)),t)}function h(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],i=0;i<e.length;i++)r.push(h(e[i],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",p(n)),t)}(e,t,n):function(e,t,n){return d(s(e,n),t,n)}(e,t,n)}},80231:function(e,t,n){t.pbkdf2=n(86443),t.pbkdf2Sync=n(1452)},86443:function(e,t,n){var r,i,s=n(37225).Buffer,o=n(95672),a=n(32042),c=n(1452),l=n(68200),u=window.crypto&&window.crypto.subtle,p={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},d=[];function h(){return i||(i=window.process&&window.process.nextTick?window.process.nextTick:window.queueMicrotask?window.queueMicrotask:window.setImmediate?window.setImmediate:window.setTimeout)}function f(e,t,n,r,i){return u.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return u.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)})).then((function(e){return s.from(e)}))}e.exports=function(e,t,n,i,m,g){"function"==typeof m&&(g=m,m=void 0);var v=p[(m=m||"sha1").toLowerCase()];if(v&&"function"==typeof window.Promise){if(o(n,i),e=l(e,a,"Password"),t=l(t,a,"Salt"),"function"!=typeof g)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){h()((function(){t(null,e)}))}),(function(e){h()((function(){t(e)}))}))}(function(e){if(window.process&&!window.process.browser)return Promise.resolve(!1);if(!u||!u.importKey||!u.deriveBits)return Promise.resolve(!1);if(void 0!==d[e])return d[e];var t=f(r=r||s.alloc(8),r,10,128,e).then((function(){return!0})).catch((function(){return!1}));return d[e]=t,t}(v).then((function(r){return r?f(e,t,n,i,v):c(e,t,n,i,m)})),g)}else h()((function(){var r;try{r=c(e,t,n,i,m)}catch(e){return g(e)}g(null,r)}))}},32042:function(e,t,n){var r,i=n(5806);if(window.process&&window.process.browser)r="utf-8";else if(window.process&&window.process.version){r=parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else r="utf-8";e.exports=r},95672:function(e){var t=Math.pow(2,30)-1;e.exports=function(e,n){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof n)throw new TypeError("Key length not a number");if(n<0||n>t||n!=n)throw new TypeError("Bad key length")}},1452:function(e,t,n){var r=n(51345),i=n(50601),s=n(25636),o=n(37225).Buffer,a=n(95672),c=n(32042),l=n(68200),u=o.alloc(128),p={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function d(e,t,n){var a=function(e){function t(t){return s(e).update(t).digest()}function n(e){return(new i).update(e).digest()}return"rmd160"===e||"ripemd160"===e?n:"md5"===e?r:t}(e),c="sha512"===e||"sha384"===e?128:64;t.length>c?t=a(t):t.length<c&&(t=o.concat([t,u],c));for(var l=o.allocUnsafe(c+p[e]),d=o.allocUnsafe(c+p[e]),h=0;h<c;h++)l[h]=54^t[h],d[h]=92^t[h];var f=o.allocUnsafe(c+n+4);l.copy(f,0,0,c),this.ipad1=f,this.ipad2=l,this.opad=d,this.alg=e,this.blocksize=c,this.hash=a,this.size=p[e]}d.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,n,r,i){a(n,r);var s=new d(i=i||"sha1",e=l(e,c,"Password"),(t=l(t,c,"Salt")).length),u=o.allocUnsafe(r),h=o.allocUnsafe(t.length+4);t.copy(h,0,0,t.length);for(var f=0,m=p[i],g=Math.ceil(r/m),v=1;v<=g;v++){h.writeUInt32BE(v,t.length);for(var b=s.run(h,s.ipad1),y=b,k=1;k<n;k++){y=s.run(y,s.ipad2);for(var w=0;w<m;w++)b[w]^=y[w]}b.copy(u,f),f+=m}return u}},68200:function(e,t,n){var r=n(37225).Buffer;e.exports=function(e,t,n){if(r.isBuffer(e))return e;if("string"==typeof e)return r.from(e,t);if(ArrayBuffer.isView(e))return r.from(e.buffer);throw new TypeError(n+" must be a string, a Buffer, a typed array or a DataView")}},5806:function(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:s}catch(e){n=s}}();var a,c=[],l=!1,u=-1;function p(){l&&a&&(l=!1,a.length?c=a.concat(c):u=-1,c.length&&d())}function d(){if(!l){var e=o(p);l=!0;for(var t=c.length;t;){for(a=c,c=[];++u<t;)a&&a[u].run();u=-1,t=c.length}a=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===s||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function f(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new h(e,t)),1!==c.length||l||o(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=f,r.addListener=f,r.once=f,r.off=f,r.removeListener=f,r.removeAllListeners=f,r.emit=f,r.prependListener=f,r.prependOnceListener=f,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},9587:function(e,t,n){"use strict";var r=n(45843);function i(){}function s(){}s.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,s,o){if(o!==r){var a=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 a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={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:s,resetWarningCache:i};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},51296:function(e,t,n){t.publicEncrypt=n(75496),t.privateDecrypt=n(42882),t.privateEncrypt=function(e,n){return t.publicEncrypt(e,n,!0)},t.publicDecrypt=function(e,n){return t.privateDecrypt(e,n,!0)}},46598:function(e,t,n){var r=n(77439),i=n(37225).Buffer;function s(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var n,o=i.alloc(0),a=0;o.length<t;)n=s(a++),o=i.concat([o,r("sha1").update(e).update(n).digest()]);return o.slice(0,t)}},42882:function(e,t,n){var r=n(87758),i=n(46598),s=n(76245),o=n(30910),a=n(8568),c=n(77439),l=n(65505),u=n(37225).Buffer;e.exports=function(e,t,n){var p;p=e.padding?e.padding:n?1:4;var d,h=r(e),f=h.modulus.byteLength();if(t.length>f||new o(t).cmp(h.modulus)>=0)throw new Error("decryption error");d=n?l(new o(t),h):a(t,h);var m=u.alloc(f-d.length);if(d=u.concat([m,d],f),4===p)return function(e,t){var n=e.modulus.byteLength(),r=c("sha1").update(u.alloc(0)).digest(),o=r.length;if(0!==t[0])throw new Error("decryption error");var a=t.slice(1,o+1),l=t.slice(o+1),p=s(a,i(l,o)),d=s(l,i(p,n-o-1));if(function(e,t){e=u.from(e),t=u.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));var i=-1;for(;++i<r;)n+=e[i]^t[i];return n}(r,d.slice(0,o)))throw new Error("decryption error");var h=o;for(;0===d[h];)h++;if(1!==d[h++])throw new Error("decryption error");return d.slice(h)}(h,d);if(1===p)return function(e,t,n){var r=t.slice(0,2),i=2,s=0;for(;0!==t[i++];)if(i>=t.length){s++;break}var o=t.slice(2,i-1);("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&s++;o.length<8&&s++;if(s)throw new Error("decryption error");return t.slice(i)}(0,d,n);if(3===p)return d;throw new Error("unknown padding")}},75496:function(e,t,n){var r=n(87758),i=n(35175),s=n(77439),o=n(46598),a=n(76245),c=n(30910),l=n(65505),u=n(8568),p=n(37225).Buffer;e.exports=function(e,t,n){var d;d=e.padding?e.padding:n?1:4;var h,f=r(e);if(4===d)h=function(e,t){var n=e.modulus.byteLength(),r=t.length,l=s("sha1").update(p.alloc(0)).digest(),u=l.length,d=2*u;if(r>n-d-2)throw new Error("message too long");var h=p.alloc(n-r-d-2),f=n-u-1,m=i(u),g=a(p.concat([l,h,p.alloc(1,1),t],f),o(m,f)),v=a(m,o(g,u));return new c(p.concat([p.alloc(1),v,g],n))}(f,t);else if(1===d)h=function(e,t,n){var r,s=t.length,o=e.modulus.byteLength();if(s>o-11)throw new Error("message too long");r=n?p.alloc(o-s-3,255):function(e){var t,n=p.allocUnsafe(e),r=0,s=i(2*e),o=0;for(;r<e;)o===s.length&&(s=i(2*e),o=0),(t=s[o++])&&(n[r++]=t);return n}(o-s-3);return new c(p.concat([p.from([0,n?1:2]),r,p.alloc(1),t],o))}(f,t,n);else{if(3!==d)throw new Error("unknown padding");if((h=new c(t)).cmp(f.modulus)>=0)throw new Error("data too long for modulus")}return n?u(h,f):l(h,f)}},65505:function(e,t,n){var r=n(30910),i=n(37225).Buffer;e.exports=function(e,t){return i.from(e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed().toArray())}},76245:function(e){e.exports=function(e,t){for(var n=e.length,r=-1;++r<n;)e[r]^=t[r];return e}},35175:function(e,t,n){"use strict";var r=n(5806),i=65536,s=4294967295;var o=n(37225).Buffer,a=window.crypto||window.msCrypto;a&&a.getRandomValues?e.exports=function(e,t){if(e>s)throw new RangeError("requested too many random bytes");var n=o.allocUnsafe(e);if(e>0)if(e>i)for(var c=0;c<e;c+=i)a.getRandomValues(n.slice(c,c+i));else a.getRandomValues(n);if("function"==typeof t)return r.nextTick((function(){t(null,n)}));return n}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}},70460:function(e,t,n){"use strict";var r=n(5806);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var s=n(37225),o=n(35175),a=s.Buffer,c=s.kMaxLength,l=window.crypto||window.msCrypto,u=Math.pow(2,32)-1;function p(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>u||e<0)throw new TypeError("offset must be a uint32");if(e>c||e>t)throw new RangeError("offset out of range")}function d(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>u||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>c)throw new RangeError("buffer too small")}function h(e,t,n,i){if(r.browser){var s=e.buffer,a=new Uint8Array(s,t,n);return l.getRandomValues(a),i?void r.nextTick((function(){i(null,e)})):e}if(!i)return o(n).copy(e,t),e;o(n,(function(n,r){if(n)return i(n);r.copy(e,t),i(null,e)}))}l&&l.getRandomValues||!r.browser?(t.randomFill=function(e,t,n,r){if(!(a.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)r=t,t=0,n=e.length;else if("function"==typeof n)r=n,n=e.length-t;else if("function"!=typeof r)throw new TypeError('"cb" argument must be a function');return p(t,e.length),d(n,t,e.length),h(e,t,n,r)},t.randomFillSync=function(e,t,n){void 0===t&&(t=0);if(!(a.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');p(t,e.length),void 0===n&&(n=e.length-t);return d(n,t,e.length),h(e,t,n)}):(t.randomFill=i,t.randomFillSync=i)},66462:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,s=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,a=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,l=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,p=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,f=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,k=n?Symbol.for("react.scope"):60119;function w(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case p:case s:case a:case o:case h:return e;default:switch(e=e&&e.$$typeof){case l:case d:case g:case m:case c:return e;default:return t}}case i:return t}}}function _(e){return w(e)===p}t.AsyncMode=u,t.ConcurrentMode=p,t.ContextConsumer=l,t.ContextProvider=c,t.Element=r,t.ForwardRef=d,t.Fragment=s,t.Lazy=g,t.Memo=m,t.Portal=i,t.Profiler=a,t.StrictMode=o,t.Suspense=h,t.isAsyncMode=function(e){return _(e)||w(e)===u},t.isConcurrentMode=_,t.isContextConsumer=function(e){return w(e)===l},t.isContextProvider=function(e){return w(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return w(e)===d},t.isFragment=function(e){return w(e)===s},t.isLazy=function(e){return w(e)===g},t.isMemo=function(e){return w(e)===m},t.isPortal=function(e){return w(e)===i},t.isProfiler=function(e){return w(e)===a},t.isStrictMode=function(e){return w(e)===o},t.isSuspense=function(e){return w(e)===h},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===s||e===p||e===a||e===o||e===h||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===c||e.$$typeof===l||e.$$typeof===d||e.$$typeof===b||e.$$typeof===y||e.$$typeof===k||e.$$typeof===v)},t.typeOf=w},80364:function(e,t,n){"use strict";e.exports=n(66462)},33244:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){return!(0,s.default)(this.props,e)||!(0,s.default)(this.state,t)};var r,i=n(60360),s=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},21425:function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(33244),s=(r=i)&&r.__esModule?r:{default:r};t.default={shouldComponentUpdate:s.default},e.exports=t.default},60360:function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),s=0;s<n.length;s++)if(!i(n[s])||e[n[s]]!==t[n[s]])return!1;return!0},e.exports=t.default},1992:function(e,t,n){"use strict";n.d(t,{E:function(){return i}});var r=n(99196),i=n.n(r)().createContext(null)},32054:function(e,t,n){"use strict";var r=n(71446),i=n(99196),s=n.n(i),o=n(11268),a=n.n(o),c=n(1992),l=function(e){function t(t){var n;n=e.call(this,t)||this;var r=t.store;return n.state={storeState:r.getState(),store:r},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this.subscribe()},n.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},n.componentDidUpdate=function(e){this.props.store!==e.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},n.subscribe=function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe((function(){var n=t.getState();e._isMounted&&e.setState((function(e){return e.storeState===n?null:{storeState:n}}))}));var n=t.getState();n!==this.state.storeState&&this.setState({storeState:n})},n.render=function(){var e=this.props.context||c.E;return s().createElement(e.Provider,{value:this.state},this.props.children)},t}(i.Component);l.propTypes={store:a().shape({subscribe:a().func.isRequired,dispatch:a().func.isRequired,getState:a().func.isRequired}),context:a().object,children:a().any},t.Z=l},4193:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var r=n(25303),i=n(71446),s=n(40988),o=n(5343),a=n(13266),c=n.n(a),l=n(24546),u=n.n(l),p=n(99196),d=n.n(p),h=n(80364),f=n(1992);function m(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,l=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,m=n.methodName,g=void 0===m?"connectAdvanced":m,v=n.renderCountProp,b=void 0===v?void 0:v,y=n.shouldHandleStateChanges,k=void 0===y||y,w=n.storeKey,_=void 0===w?"store":w,E=n.withRef,C=void 0!==E&&E,S=n.forwardRef,j=void 0!==S&&S,M=n.context,x=void 0===M?f.E:M,N=(0,o.Z)(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);u()(void 0===b,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),u()(!C,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var A="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";u()("store"===_,"storeKey has been removed and does not do anything. "+A);var O=x;return function(t){var n=t.displayName||t.name||"Component",o=l(n),a=(0,s.Z)({},N,{getDisplayName:l,methodName:g,renderCountProp:b,shouldHandleStateChanges:k,storeKey:_,displayName:o,wrappedComponentName:n,WrappedComponent:t}),f=N.pure,m=p.Component;f&&(m=p.PureComponent);var v=function(n){function c(t){var i,o,a,c,l,p,h,m,g,v,b;return i=n.call(this,t)||this,u()(j?!t.wrapperProps[_]:!t[_],"Passing redux store in props has been removed and does not do anything. "+A),i.selectDerivedProps=function(t,n,r,i){if(f&&o===n&&a===t)return c;r===l&&p===i||(l=r,p=i,h=e(r.dispatch,i)),o=n,a=t;var s=h(t,n);return c=s},i.selectChildElement=function(e,t,n){return t===m&&n===g&&b===e||(m=t,g=n,b=e,v=d().createElement(e,(0,s.Z)({},t,{ref:n}))),v},i.indirectRenderWrappedComponent=i.indirectRenderWrappedComponent.bind((0,r.Z)(i)),i}(0,i.Z)(c,n);var l=c.prototype;return l.indirectRenderWrappedComponent=function(e){return this.renderWrappedComponent(e)},l.renderWrappedComponent=function(e){u()(e,'Could not find "store" in the context of "'+o+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+o+" in connect options.");var n,r=e.storeState,i=e.store,s=this.props;j&&(s=this.props.wrapperProps,n=this.props.forwardedRef);var c=this.selectDerivedProps(r,s,i,a);return this.selectChildElement(t,c,n)},l.render=function(){var e=this.props.context&&this.props.context.Consumer&&(0,h.isContextConsumer)(d().createElement(this.props.context.Consumer,null))?this.props.context:O;return d().createElement(e.Consumer,null,this.indirectRenderWrappedComponent)},c}(m);if(v.WrappedComponent=t,v.displayName=o,j){var y=d().forwardRef((function(e,t){return d().createElement(v,{wrapperProps:e,forwardedRef:t})}));return y.displayName=o,y.WrappedComponent=t,c()(y,t)}return c()(v,t)}}},28274:function(e,t,n){"use strict";var r,i,s,o,a,c,l,u,p,d,h,f,m=n(40988),g=n(5343),v=n(4193),b=n(37110),y=n(80214),k=n(26150),w=n(94262),_=n(27189);function E(e,t,n){for(var r=t.length-1;r>=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function C(e,t){return e===t}t.Z=(s=(i=void 0===r?{}:r).connectHOC,o=void 0===s?v.Z:s,a=i.mapStateToPropsFactories,c=void 0===a?k.ZP:a,l=i.mapDispatchToPropsFactories,u=void 0===l?y.ZP:l,p=i.mergePropsFactories,d=void 0===p?w.ZP:p,h=i.selectorFactory,f=void 0===h?_.ZP:h,function(e,t,n,r){void 0===r&&(r={});var i=r,s=i.pure,a=void 0===s||s,l=i.areStatesEqual,p=void 0===l?C:l,h=i.areOwnPropsEqual,v=void 0===h?b.Z:h,y=i.areStatePropsEqual,k=void 0===y?b.Z:y,w=i.areMergedPropsEqual,_=void 0===w?b.Z:w,S=(0,g.Z)(i,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),j=E(e,c,"mapStateToProps"),M=E(t,u,"mapDispatchToProps"),x=E(n,d,"mergeProps");return o(f,(0,m.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:j,initMapDispatchToProps:M,initMergeProps:x,pure:a,areStatesEqual:p,areOwnPropsEqual:v,areStatePropsEqual:k,areMergedPropsEqual:_},S))})},80214:function(e,t,n){"use strict";var r=n(74978),i=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,i.xv)(e,"mapDispatchToProps"):void 0},function(e){return e?void 0:(0,i.dX)((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?(0,i.dX)((function(t){return(0,r.DE)(e,t)})):void 0}]},26150:function(e,t,n){"use strict";var r=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,r.xv)(e,"mapStateToProps"):void 0},function(e){return e?void 0:(0,r.dX)((function(){return{}}))}]},94262:function(e,t,n){"use strict";var r=n(40988);n(80450);function i(e,t,n){return(0,r.Z)({},n,e,t)}t.ZP=[function(e){return"function"==typeof e?function(e){return function(t,n){n.displayName;var r,i=n.pure,s=n.areMergedPropsEqual,o=!1;return function(t,n,a){var c=e(t,n,a);return o?i&&s(c,r)||(r=c):(o=!0,r=c),r}}}(e):void 0},function(e){return e?void 0:function(){return i}}]},27189:function(e,t,n){"use strict";n.d(t,{ZP:function(){return o}});var r=n(5343);n(51617);function i(e,t,n,r){return function(i,s){return n(e(i,s),t(r,s),s)}}function s(e,t,n,r,i){var s,o,a,c,l,u=i.areStatesEqual,p=i.areOwnPropsEqual,d=i.areStatePropsEqual,h=!1;function f(i,h){var f,m,g=!p(h,o),v=!u(i,s);return s=i,o=h,g&&v?(a=e(s,o),t.dependsOnOwnProps&&(c=t(r,o)),l=n(a,c,o)):g?(e.dependsOnOwnProps&&(a=e(s,o)),t.dependsOnOwnProps&&(c=t(r,o)),l=n(a,c,o)):v?(f=e(s,o),m=!d(f,a),a=f,m&&(l=n(a,c,o)),l):l}return function(i,u){return h?f(i,u):(a=e(s=i,o=u),c=t(r,o),l=n(a,c,o),h=!0,l)}}function o(e,t){var n=t.initMapStateToProps,o=t.initMapDispatchToProps,a=t.initMergeProps,c=(0,r.Z)(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),l=n(e,c),u=o(e,c),p=a(e,c);return(c.pure?s:i)(l,u,p,e,c)}},51617:function(e,t,n){"use strict";n(28477)},68821:function(e,t,n){"use strict";n.d(t,{dX:function(){return r},xv:function(){return s}});n(80450);function r(e){return function(t,n){var r=e(t,n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function i(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function s(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=i(e);var s=r(t,n);return"function"==typeof s&&(r.mapToProps=s,r.dependsOnOwnProps=i(s),s=r(t,n)),s},r}}},2620:function(e,t,n){"use strict";n.d(t,{zt:function(){return r.Z},$j:function(){return i.Z}});var r=n(32054),i=(n(4193),n(1992),n(28274))},37110:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=Object.prototype.hasOwnProperty;function i(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function s(e,t){if(i(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(var o=0;o<n.length;o++)if(!r.call(t,n[o])||!i(e[n[o]],t[n[o]]))return!1;return!0}},80450:function(e,t,n){"use strict";n(28477)},28477:function(e,t,n){"use strict";n(55246)},1336:function(e,t,n){"use strict";n.d(t,{UT:function(){return p}});var r=n(12901),i=n(71446),s=n(99196),o=n.n(s),a=n(33451),c=(n(11268),n(40988)),l=n(5343),u=n(34770);o().Component;var p=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,a.q_)(t.props),t}return(0,i.Z)(t,e),t.prototype.render=function(){return o().createElement(r.F0,{history:this.history,children:this.props.children})},t}(o().Component);var d=function(e,t){return"function"==typeof e?e(t):e},h=function(e,t){return"string"==typeof e?(0,a.ob)(e,null,null,t):e},f=function(e){return e},m=o().forwardRef;void 0===m&&(m=f);var g=m((function(e,t){var n=e.innerRef,r=e.navigate,i=e.onClick,s=(0,l.Z)(e,["innerRef","navigate","onClick"]),a=s.target,u=(0,c.Z)({},s,{onClick:function(e){try{i&&i(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||a&&"_self"!==a||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o().createElement("a",u)}));var v=m((function(e,t){var n=e.component,i=void 0===n?g:n,s=e.replace,a=e.to,p=e.innerRef,v=(0,l.Z)(e,["component","replace","to","innerRef"]);return o().createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=e.history,r=h(d(a,e.location),e.location),l=r?n.createHref(r):"",g=(0,c.Z)({},v,{href:l,navigate:function(){var t=d(a,e.location);(s?n.replace:n.push)(t)}});return f!==m?g.ref=t||p:g.innerRef=p,o().createElement(i,g)}))})),b=function(e){return e},y=o().forwardRef;void 0===y&&(y=b);y((function(e,t){var n=e["aria-current"],i=void 0===n?"page":n,s=e.activeClassName,a=void 0===s?"active":s,p=e.activeStyle,f=e.className,m=e.exact,g=e.isActive,k=e.location,w=e.sensitive,_=e.strict,E=e.style,C=e.to,S=e.innerRef,j=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o().createElement(r.s6.Consumer,null,(function(e){e||(0,u.Z)(!1);var n=k||e.location,s=h(d(C,n),n),l=s.pathname,M=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),x=M?(0,r.LX)(n.pathname,{path:M,exact:m,sensitive:w,strict:_}):null,N=!!(g?g(x,n):x),A=N?function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(f,a):f,O=N?(0,c.Z)({},E,{},p):E,T=(0,c.Z)({"aria-current":N&&i||null,className:A,style:O,to:s},j);return b!==y?T.ref=t||S:T.innerRef=S,o().createElement(v,T)}))}))},12901:function(e,t,n){"use strict";n.d(t,{NL:function(){return w},l_:function(){return S},AW:function(){return N},F0:function(){return y},rs:function(){return R},s6:function(){return b},LX:function(){return x},EN:function(){return U}});var r=n(71446),i=n(99196),s=n.n(i),o=(n(11268),n(33451)),a=n(66118),c=n(34770),l=n(40988),u=n(760),p=n.n(u),d=(n(80364),n(5343)),h=n(13266),f=n.n(h),m=function(e){var t=(0,a.Z)();return t.displayName=e,t},g=m("Router-History"),v=function(e){var t=(0,a.Z)();return t.displayName=e,t},b=v("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return s().createElement(b.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},s().createElement(g.Provider,{children:this.props.children||null,value:this.props.history}))},t}(s().Component);s().Component;var k=function(e){function t(){return e.apply(this,arguments)||this}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this.props.onMount&&this.props.onMount.call(this,this)},n.componentDidUpdate=function(e){this.props.onUpdate&&this.props.onUpdate.call(this,this,e)},n.componentWillUnmount=function(){this.props.onUnmount&&this.props.onUnmount.call(this,this)},n.render=function(){return null},t}(s().Component);function w(e){var t=e.message,n=e.when,r=void 0===n||n;return s().createElement(b.Consumer,null,(function(e){if(e||(0,c.Z)(!1),!r||e.staticContext)return null;var n=e.history.block;return s().createElement(k,{onMount:function(e){e.release=n(t)},onUpdate:function(e,r){r.message!==t&&(e.release(),e.release=n(t))},onUnmount:function(e){e.release()},message:t})}))}var _={},E=0;function C(e,t){return void 0===e&&(e="/"),void 0===t&&(t={}),"/"===e?e:function(e){if(_[e])return _[e];var t=p().compile(e);return E<1e4&&(_[e]=t,E++),t}(e)(t,{pretty:!0})}function S(e){var t=e.computedMatch,n=e.to,r=e.push,i=void 0!==r&&r;return s().createElement(b.Consumer,null,(function(e){e||(0,c.Z)(!1);var r=e.history,a=e.staticContext,u=i?r.push:r.replace,p=(0,o.ob)(t?"string"==typeof n?C(n,t.params):(0,l.Z)({},n,{pathname:C(n.pathname,t.params)}):n);return a?(u(p),null):s().createElement(k,{onMount:function(){u(p)},onUpdate:function(e,t){var n=(0,o.ob)(t.to);(0,o.Hp)(n,(0,l.Z)({},p,{key:n.key}))||u(p)},to:n})}))}var j={},M=0;function x(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,i=n.exact,s=void 0!==i&&i,o=n.strict,a=void 0!==o&&o,c=n.sensitive,l=void 0!==c&&c;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=j[n]||(j[n]={});if(r[e])return r[e];var i=[],s={regexp:p()(e,i,t),keys:i};return M<1e4&&(r[e]=s,M++),s}(n,{end:s,strict:a,sensitive:l}),i=r.regexp,o=r.keys,c=i.exec(e);if(!c)return null;var u=c[0],d=c.slice(1),h=e===u;return s&&!h?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:h,params:o.reduce((function(e,t,n){return e[t.name]=d[n],e}),{})}}),null)}var N=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return s().createElement(b.Consumer,null,(function(t){t||(0,c.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,i=(0,l.Z)({},t,{location:n,match:r}),o=e.props,a=o.children,u=o.component,p=o.render;return Array.isArray(a)&&0===a.length&&(a=null),s().createElement(b.Provider,{value:i},i.match?a?"function"==typeof a?a(i):a:u?s().createElement(u,i):p?p(i):null:"function"==typeof a?a(i):null)}))},t}(s().Component);function A(e){return"/"===e.charAt(0)?e:"/"+e}function O(e,t){if(!e)return t;var n=A(e);return 0!==t.pathname.indexOf(n)?t:(0,l.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,o.Ep)(e)}function P(e){return function(){(0,c.Z)(!1)}}function I(){}s().Component;var R=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return s().createElement(b.Consumer,null,(function(t){t||(0,c.Z)(!1);var n,r,i=e.props.location||t.location;return s().Children.forEach(e.props.children,(function(e){if(null==r&&s().isValidElement(e)){n=e;var o=e.props.path||e.props.from;r=o?x(i.pathname,(0,l.Z)({},e.props,{path:o})):t.match}})),r?s().cloneElement(n,{location:i,computedMatch:r}):null}))},t}(s().Component);function U(e){var t="withRouter("+(e.displayName||e.name)+")",n=function(t){var n=t.wrappedComponentRef,r=(0,d.Z)(t,["wrappedComponentRef"]);return s().createElement(b.Consumer,null,(function(t){return t||(0,c.Z)(!1),s().createElement(e,(0,l.Z)({},r,t,{ref:n}))}))};return n.displayName=t,n.WrappedComponent=e,f()(n,e)}s().useContext},30997:function(e){"use strict";var t={};function n(e,n,r){r||(r=Error);var i=function(e){var t,r;function i(t,r,i){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,i))||this}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,i}(r);i.prototype.name=r.name,i.prototype.code=e,t[e]=i}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var i,s,o,a;if("string"==typeof t&&(s="not ",t.substr(!o||o<0?0:+o,s.length)===s)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var c=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(r(t,"type"))}return a+=". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},95507:function(e,t,n){"use strict";var r=n(5806),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=u;var s=n(20465),o=n(48607);n(59503)(u,s);for(var a=i(o.prototype),c=0;c<a.length;c++){var l=a[c];u.prototype[l]||(u.prototype[l]=o.prototype[l])}function u(e){if(!(this instanceof u))return new u(e);s.call(this,e),o.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",p)))}function p(){this._writableState.ended||r.nextTick(d,this)}function d(e){e.end()}Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},15385:function(e,t,n){"use strict";e.exports=i;var r=n(1866);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(59503)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},20465:function(e,t,n){"use strict";var r,i=n(5806);e.exports=S,S.ReadableState=C;n(2571).EventEmitter;var s=function(e,t){return e.listeners(t).length},o=n(74756),a=n(90778).Buffer,c=window.Uint8Array||function(){};var l,u=n(80677);l=u&&u.debuglog?u.debuglog("stream"):function(){};var p,d,h,f=n(41500),m=n(13537),g=n(71199).getHighWaterMark,v=n(30997).q,b=v.ERR_INVALID_ARG_TYPE,y=v.ERR_STREAM_PUSH_AFTER_EOF,k=v.ERR_METHOD_NOT_IMPLEMENTED,w=v.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(59503)(S,o);var _=m.errorOrDestroy,E=["error","close","destroy","pause","resume"];function C(e,t,i){r=r||n(95507),e=e||{},"boolean"!=typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=g(this,e,"readableHighWaterMark",i),this.buffer=new f,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(3247).s),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function S(e){if(r=r||n(95507),!(this instanceof S))return new S(e);var t=this instanceof r;this._readableState=new C(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),o.call(this)}function j(e,t,n,r,i){l("readableAddChunk",t);var s,o=e._readableState;if(null===t)o.reading=!1,function(e,t){if(l("onEofChunk"),t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?A(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,O(e)))}(e,o);else if(i||(s=function(e,t){var n;r=t,a.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(n=new b("chunk",["string","Buffer","Uint8Array"],t));var r;return n}(o,t)),s)_(e,s);else if(o.objectMode||t&&t.length>0)if("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),r)o.endEmitted?_(e,new w):M(e,o,t,!0);else if(o.ended)_(e,new y);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?M(e,o,t,!1):T(e,o)):M(e,o,t,!1)}else r||(o.reading=!1,T(e,o));return!o.ended&&(o.length<o.highWaterMark||0===o.length)}function M(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&A(e)),T(e,t)}Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),S.prototype.destroy=m.destroy,S.prototype._undestroy=m.undestroy,S.prototype._destroy=function(e,t){t(e)},S.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=a.from(e,t),t=""),n=!0),j(this,e,t,!1,n)},S.prototype.unshift=function(e){return j(this,e,null,!0,!1)},S.prototype.isPaused=function(){return!1===this._readableState.flowing},S.prototype.setEncoding=function(e){p||(p=n(3247).s);var t=new p(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,i="";null!==r;)i+=t.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var x=1073741824;function N(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=x?e=x:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function A(e){var t=e._readableState;l("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(l("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(O,e))}function O(e){var t=e._readableState;l("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,Z(e)}function T(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(P,e,t))}function P(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var n=t.length;if(l("maybeReadMore read 0"),e.read(0),n===t.length)break}t.readingMore=!1}function I(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function R(e){l("readable nexttick read 0"),e.read(0)}function U(e,t){l("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),Z(e),t.flowing&&!t.reading&&e.read(0)}function Z(e){var t=e._readableState;for(l("flow",t.flowing);t.flowing&&null!==e.read(););}function D(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function L(e){var t=e._readableState;l("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(z,t,e))}function z(e,t){if(l("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function B(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}S.prototype.read=function(e){l("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return l("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?L(this):A(this),null;if(0===(e=N(e,t))&&t.ended)return 0===t.length&&L(this),null;var r,i=t.needReadable;return l("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&l("length less than watermark",i=!0),t.ended||t.reading?l("reading or ended",i=!1):i&&(l("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=N(n,t))),null===(r=e>0?D(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&L(this)),null!==r&&this.emit("data",r),r},S.prototype._read=function(e){_(this,new k("_read()"))},S.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,l("pipe count=%d opts=%j",r.pipesCount,t);var o=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?c:g;function a(t,i){l("onunpipe"),t===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,l("cleanup"),e.removeListener("close",f),e.removeListener("finish",m),e.removeListener("drain",u),e.removeListener("error",h),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",g),n.removeListener("data",d),p=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||u())}function c(){l("onend"),e.end()}r.endEmitted?i.nextTick(o):n.once("end",o),e.on("unpipe",a);var u=function(e){return function(){var t=e._readableState;l("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,Z(e))}}(n);e.on("drain",u);var p=!1;function d(t){l("ondata");var i=e.write(t);l("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==B(r.pipes,e))&&!p&&(l("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function h(t){l("onerror",t),g(),e.removeListener("error",h),0===s(e,"error")&&_(e,t)}function f(){e.removeListener("finish",m),g()}function m(){l("onfinish"),e.removeListener("close",f),g()}function g(){l("unpipe"),n.unpipe(e)}return n.on("data",d),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",h),e.once("close",f),e.once("finish",m),e.emit("pipe",n),r.flowing||(l("pipe resume"),n.resume()),e},S.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s<i;s++)r[s].emit("unpipe",this,{hasUnpiped:!1});return this}var o=B(t.pipes,e);return-1===o||(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},S.prototype.on=function(e,t){var n=o.prototype.on.call(this,e,t),r=this._readableState;return"data"===e?(r.readableListening=this.listenerCount("readable")>0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,l("on readable",r.length,r.reading),r.length?A(this):r.reading||i.nextTick(R,this))),n},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(e,t){var n=o.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(I,this),n},S.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(I,this),t},S.prototype.resume=function(){var e=this._readableState;return e.flowing||(l("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(U,e,t))}(this,e)),e.paused=!1,this},S.prototype.pause=function(){return l("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(l("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(l("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(l("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s<E.length;s++)e.on(E[s],this.emit.bind(this,E[s]));return this._read=function(t){l("wrapped _read",t),r&&(r=!1,e.resume())},this},"function"==typeof Symbol&&(S.prototype[Symbol.asyncIterator]=function(){return void 0===d&&(d=n(87906)),d(this)}),Object.defineProperty(S.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(S.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(S.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),S._fromList=D,Object.defineProperty(S.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(S.from=function(e,t){return void 0===h&&(h=n(67841)),h(S,e,t)})},1866:function(e,t,n){"use strict";e.exports=u;var r=n(30997).q,i=r.ERR_METHOD_NOT_IMPLEMENTED,s=r.ERR_MULTIPLE_CALLBACK,o=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(95507);function l(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new s);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function u(e){if(!(this instanceof u))return new u(e);c.call(this,e),this._transformState={afterTransform:l.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",p)}function p(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?d(this,null,null):this._flush((function(t,n){d(e,t,n)}))}function d(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new a;if(e._transformState.transforming)throw new o;return e.push(null)}n(59503)(u,c),u.prototype.push=function(e,t){return this._transformState.needTransform=!1,c.prototype.push.call(this,e,t)},u.prototype._transform=function(e,t,n){n(new i("_transform()"))},u.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},u.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},u.prototype._destroy=function(e,t){c.prototype._destroy.call(this,e,(function(e){t(e)}))}},48607:function(e,t,n){"use strict";var r,i=n(5806);function s(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=S,S.WritableState=C;var o={deprecate:n(49231)},a=n(74756),c=n(90778).Buffer,l=window.Uint8Array||function(){};var u,p=n(13537),d=n(71199).getHighWaterMark,h=n(30997).q,f=h.ERR_INVALID_ARG_TYPE,m=h.ERR_METHOD_NOT_IMPLEMENTED,g=h.ERR_MULTIPLE_CALLBACK,v=h.ERR_STREAM_CANNOT_PIPE,b=h.ERR_STREAM_DESTROYED,y=h.ERR_STREAM_NULL_VALUES,k=h.ERR_STREAM_WRITE_AFTER_END,w=h.ERR_UNKNOWN_ENCODING,_=p.errorOrDestroy;function E(){}function C(e,t,o){r=r||n(95507),e=e||{},"boolean"!=typeof o&&(o=t instanceof r),this.objectMode=!!e.objectMode,o&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=d(this,e,"writableHighWaterMark",o),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,s=n.writecb;if("function"!=typeof s)throw new g;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,s){--t.pendingcb,n?(i.nextTick(s,r),i.nextTick(O,e,t),e._writableState.errorEmitted=!0,_(e,r)):(s(r),e._writableState.errorEmitted=!0,_(e,r),O(e,t))}(e,n,r,t,s);else{var o=N(n)||e.destroyed;o||n.corked||n.bufferProcessing||!n.bufferedRequest||x(e,n),r?i.nextTick(M,e,n,o,s):M(e,n,o,s)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new s(this)}function S(e){var t=this instanceof(r=r||n(95507));if(!t&&!u.call(S,this))return new S(e);this._writableState=new C(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),a.call(this)}function j(e,t,n,r,i,s,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new b("write")):n?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function M(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),O(e,t)}function x(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),o=t.corkedRequestsFree;o.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,j(e,t,!0,t.length,i,"",o.finish),t.pendingcb++,t.lastBufferedRequest=null,o.next?(t.corkedRequestsFree=o.next,o.next=null):t.corkedRequestsFree=new s(t),t.bufferedRequestCount=0}else{for(;n;){var l=n.chunk,u=n.encoding,p=n.callback;if(j(e,t,!1,t.objectMode?1:l.length,l,u,p),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function N(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function A(e,t){e._final((function(n){t.pendingcb--,n&&_(e,n),t.prefinished=!0,e.emit("prefinish"),O(e,t)}))}function O(e,t){var n=N(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(A,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(59503)(S,a),C.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(C.prototype,"buffer",{get:o.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(u=Function.prototype[Symbol.hasInstance],Object.defineProperty(S,Symbol.hasInstance,{value:function(e){return!!u.call(this,e)||this===S&&(e&&e._writableState instanceof C)}})):u=function(e){return e instanceof this},S.prototype.pipe=function(){_(this,new v)},S.prototype.write=function(e,t,n){var r,s=this._writableState,o=!1,a=!s.objectMode&&(r=e,c.isBuffer(r)||r instanceof l);return a&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=s.defaultEncoding),"function"!=typeof n&&(n=E),s.ending?function(e,t){var n=new k;_(e,n),i.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var s;return null===n?s=new y:"string"==typeof n||t.objectMode||(s=new f("chunk",["string","Buffer"],n)),!s||(_(e,s),i.nextTick(r,s),!1)}(this,s,e,n))&&(s.pendingcb++,o=function(e,t,n,r,i,s){if(!n){var o=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n));return t}(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var a=t.objectMode?1:r.length;t.length+=a;var l=t.length<t.highWaterMark;l||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:s,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else j(e,t,!1,a,r,i,s);return l}(this,s,a,e,t,n)),o},S.prototype.cork=function(){this._writableState.corked++},S.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||x(this,e))},S.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new w(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(e,t,n){n(new m("_write()"))},S.prototype._writev=null,S.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,O(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),S.prototype.destroy=p.destroy,S.prototype._undestroy=p.undestroy,S.prototype._destroy=function(e,t){t(e)}},87906:function(e,t,n){"use strict";var r,i=n(5806);function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var o=n(87288),a=Symbol("lastResolve"),c=Symbol("lastReject"),l=Symbol("error"),u=Symbol("ended"),p=Symbol("lastPromise"),d=Symbol("handlePromise"),h=Symbol("stream");function f(e,t){return{value:e,done:t}}function m(e){var t=e[a];if(null!==t){var n=e[h].read();null!==n&&(e[p]=null,e[a]=null,e[c]=null,t(f(n,!1)))}}function g(e){i.nextTick(m,e)}var v=Object.getPrototypeOf((function(){})),b=Object.setPrototypeOf((s(r={get stream(){return this[h]},next:function(){var e=this,t=this[l];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(f(void 0,!0));if(this[h].destroyed)return new Promise((function(t,n){i.nextTick((function(){e[l]?n(e[l]):t(f(void 0,!0))}))}));var n,r=this[p];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[u]?n(f(void 0,!0)):t[d](n,r)}),r)}}(r,this));else{var s=this[h].read();if(null!==s)return Promise.resolve(f(s,!1));n=new Promise(this[d])}return this[p]=n,n}},Symbol.asyncIterator,(function(){return this})),s(r,"return",(function(){var e=this;return new Promise((function(t,n){e[h].destroy(null,(function(e){e?n(e):t(f(void 0,!0))}))}))})),r),v);e.exports=function(e){var t,n=Object.create(b,(s(t={},h,{value:e,writable:!0}),s(t,a,{value:null,writable:!0}),s(t,c,{value:null,writable:!0}),s(t,l,{value:null,writable:!0}),s(t,u,{value:e._readableState.endEmitted,writable:!0}),s(t,d,{value:function(e,t){var r=n[h].read();r?(n[p]=null,n[a]=null,n[c]=null,e(f(r,!1))):(n[a]=e,n[c]=t)},writable:!0}),t));return n[p]=null,o(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[p]=null,n[a]=null,n[c]=null,t(e)),void(n[l]=e)}var r=n[a];null!==r&&(n[p]=null,n[a]=null,n[c]=null,r(f(void 0,!0))),n[u]=!0})),e.on("readable",g.bind(null,n)),n}},41500:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var o=n(90778).Buffer,a=n(23833).inspect,c=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,n,l;return t=e,n=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return o.alloc(0);for(var t,n,r,i=o.allocUnsafe(e>>>0),s=this.head,a=0;s;)t=s.data,n=i,r=a,o.prototype.copy.call(t,n,r),a+=s.data.length,s=s.next;return i}},{key:"consume",value:function(e,t){var n;return e<this.head.data.length?(n=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):n=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,n=1,r=t.data;for(e-=r.length;t=t.next;){var i=t.data,s=e>i.length?i.length:e;if(s===i.length?r+=i:r+=i.slice(0,e),0==(e-=s)){s===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(s));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=o.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,s=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,s),0==(e-=s)){s===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(s));break}++r}return this.length-=r,t}},{key:c,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}],n&&s(t.prototype,n),l&&s(t,l),e}()},13537:function(e,t,n){"use strict";var r=n(5806);function i(e,t){o(e,t),s(e)}function s(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function o(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(o,this,e)):r.nextTick(o,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(s,n):(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t?(r.nextTick(s,n),t(e)):r.nextTick(s,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},87288:function(e,t,n){"use strict";var r=n(30997).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,s){if("function"==typeof n)return e(t,null,n);n||(n={}),s=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(this,r)}}}(s||i);var o=n.readable||!1!==n.readable&&t.readable,a=n.writable||!1!==n.writable&&t.writable,c=function(){t.writable||u()},l=t._writableState&&t._writableState.finished,u=function(){a=!1,l=!0,o||s.call(t)},p=t._readableState&&t._readableState.endEmitted,d=function(){o=!1,p=!0,a||s.call(t)},h=function(e){s.call(t,e)},f=function(){var e;return o&&!p?(t._readableState&&t._readableState.ended||(e=new r),s.call(t,e)):a&&!l?(t._writableState&&t._writableState.ended||(e=new r),s.call(t,e)):void 0},m=function(){t.req.on("finish",u)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?a&&!t._writableState&&(t.on("end",c),t.on("close",c)):(t.on("complete",u),t.on("abort",f),t.req?m():t.on("request",m)),t.on("end",d),t.on("finish",u),!1!==n.error&&t.on("error",h),t.on("close",f),function(){t.removeListener("complete",u),t.removeListener("abort",f),t.removeListener("request",m),t.req&&t.req.removeListener("finish",u),t.removeListener("end",c),t.removeListener("close",c),t.removeListener("finish",u),t.removeListener("end",d),t.removeListener("error",h),t.removeListener("close",f)}}},67841:function(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},60519:function(e,t,n){"use strict";var r;var i=n(30997).q,s=i.ERR_MISSING_ARGS,o=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function c(e,t,i,s){s=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(s);var a=!1;e.on("close",(function(){a=!0})),void 0===r&&(r=n(87288)),r(e,{readable:t,writable:i},(function(e){if(e)return s(e);a=!0,s()}));var c=!1;return function(t){if(!a&&!c)return c=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void s(t||new o("pipe"))}}function l(e){e()}function u(e,t){return e.pipe(t)}function p(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i=p(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new s("streams");var o=t.map((function(e,n){var s=n<t.length-1;return c(e,s,n>0,(function(e){r||(r=e),e&&o.forEach(l),s||(o.forEach(l),i(r))}))}));return t.reduce(u)}},71199:function(e,t,n){"use strict";var r=n(30997).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var s=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=s){if(!isFinite(s)||Math.floor(s)!==s||s<0)throw new r(i?n:"highWaterMark",s);return Math.floor(s)}return e.objectMode?16:16384}}},74756:function(e,t,n){e.exports=n(2571).EventEmitter},7130:function(e,t,n){(t=e.exports=n(20465)).Stream=t,t.Readable=t,t.Writable=n(48607),t.Duplex=n(95507),t.Transform=n(1866),t.PassThrough=n(15385),t.finished=n(87288),t.pipeline=n(60519)},53126:function(e,t){"use strict";function n(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var r=n();r.withExtraArgument=n,t.Z=r},74978:function(e,t,n){"use strict";n.d(t,{md:function(){return g},DE:function(){return p},UY:function(){return l},qC:function(){return m},MT:function(){return a}});var r=n(13488),i=(n(55246),function(){return Math.random().toString(36).substring(7).split("").join(".")}),s={INIT:"@@redux/INIT"+i(),REPLACE:"@@redux/REPLACE"+i(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+i()}};function o(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function a(e,t,n){var i;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(a)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var c=e,l=t,u=[],p=u,d=!1;function h(){p===u&&(p=u.slice())}function f(){if(d)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return l}function m(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(d)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return h(),p.push(e),function(){if(t){if(d)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,h();var n=p.indexOf(e);p.splice(n,1),u=null}}}function g(e){if(!o(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(d)throw new Error("Reducers may not dispatch actions.");try{d=!0,l=c(l,e)}finally{d=!1}for(var t=u=p,n=0;n<t.length;n++){(0,t[n])()}return e}function v(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");c=e,g({type:s.REPLACE})}function b(){var e,t=m;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(f())}return n(),{unsubscribe:t(n)}}})[r.Z]=function(){return this},e}return g({type:s.INIT}),(i={dispatch:g,subscribe:m,getState:f,replaceReducer:v})[r.Z]=b,i}function c(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function l(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];0,"function"==typeof e[i]&&(n[i]=e[i])}var o,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:s.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:s.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+s.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(e){o=e}return function(e,t){if(void 0===e&&(e={}),o)throw o;for(var r=!1,i={},s=0;s<a.length;s++){var l=a[s],u=n[l],p=e[l],d=u(p,t);if(void 0===d){var h=c(l,t);throw new Error(h)}i[l]=d,r=r||d!==p}return(r=r||a.length!==Object.keys(e).length)?i:e}}function u(e,t){return function(){return t(e.apply(this,arguments))}}function p(e,t){if("function"==typeof e)return u(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var i=e[r];"function"==typeof i&&(n[r]=u(i,t))}return n}function d(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function h(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(n,!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function m(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function g(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},i={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},s=t.map((function(e){return e(i)}));return f({},n,{dispatch:r=m.apply(void 0,s)(n.dispatch)})}}}},59149:function(e,t){"use strict";function n(e){return"/"===e.charAt(0)}function r(e,t){for(var n=t,r=n+1,i=e.length;r<i;n+=1,r+=1)e[n]=e[r];e.pop()}t.Z=function(e,t){void 0===t&&(t="");var i,s=e&&e.split("/")||[],o=t&&t.split("/")||[],a=e&&n(e),c=t&&n(t),l=a||c;if(e&&n(e)?o=s:s.length&&(o.pop(),o=o.concat(s)),!o.length)return"/";if(o.length){var u=o[o.length-1];i="."===u||".."===u||""===u}else i=!1;for(var p=0,d=o.length;d>=0;d--){var h=o[d];"."===h?r(o,d):".."===h?(r(o,d),p++):p&&(r(o,d),p--)}if(!l)for(;p--;p)o.unshift("..");!l||""===o[0]||o[0]&&n(o[0])||o.unshift("");var f=o.join("/");return i&&"/"!==f.substr(-1)&&(f+="/"),f}},50601:function(e,t,n){"use strict";var r=n(90778).Buffer,i=n(59503),s=n(39302),o=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],l=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],u=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],p=[0,1518500249,1859775393,2400959708,2840853838],d=[1352829926,1548603684,1836072691,2053994217,0];function h(){s.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function f(e,t){return e<<t|e>>>32-t}function m(e,t,n,r,i,s,o,a){return f(e+(t^n^r)+s+o|0,a)+i|0}function g(e,t,n,r,i,s,o,a){return f(e+(t&n|~t&r)+s+o|0,a)+i|0}function v(e,t,n,r,i,s,o,a){return f(e+((t|~n)^r)+s+o|0,a)+i|0}function b(e,t,n,r,i,s,o,a){return f(e+(t&r|n&~r)+s+o|0,a)+i|0}function y(e,t,n,r,i,s,o,a){return f(e+(t^(n|~r))+s+o|0,a)+i|0}i(h,s),h.prototype._update=function(){for(var e=o,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,s=0|this._d,h=0|this._e,k=0|this._a,w=0|this._b,_=0|this._c,E=0|this._d,C=0|this._e,S=0;S<80;S+=1){var j,M;S<16?(j=m(n,r,i,s,h,e[a[S]],p[0],l[S]),M=y(k,w,_,E,C,e[c[S]],d[0],u[S])):S<32?(j=g(n,r,i,s,h,e[a[S]],p[1],l[S]),M=b(k,w,_,E,C,e[c[S]],d[1],u[S])):S<48?(j=v(n,r,i,s,h,e[a[S]],p[2],l[S]),M=v(k,w,_,E,C,e[c[S]],d[2],u[S])):S<64?(j=b(n,r,i,s,h,e[a[S]],p[3],l[S]),M=g(k,w,_,E,C,e[c[S]],d[3],u[S])):(j=y(n,r,i,s,h,e[a[S]],p[4],l[S]),M=m(k,w,_,E,C,e[c[S]],d[4],u[S])),n=h,h=s,s=f(i,10),i=r,r=j,k=C,C=E,E=f(_,10),_=w,w=M}var x=this._b+i+E|0;this._b=this._c+s+C|0,this._c=this._d+h+k|0,this._d=this._e+n+w|0,this._e=this._a+r+_|0,this._a=x},h.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=h},37225:function(e,t,n){var r=n(90778),i=r.Buffer;function s(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(s(r,t),t.Buffer=o),o.prototype=Object.create(i.prototype),s(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},82923:function(e,t,n){"use strict";var r,i=n(5806),s=n(90778),o=s.Buffer,a={};for(r in s)s.hasOwnProperty(r)&&"SlowBuffer"!==r&&"Buffer"!==r&&(a[r]=s[r]);var c=a.Buffer={};for(r in o)o.hasOwnProperty(r)&&"allocUnsafe"!==r&&"allocUnsafeSlow"!==r&&(c[r]=o[r]);if(a.Buffer.prototype=o.prototype,c.from&&c.from!==Uint8Array.from||(c.from=function(e,t,n){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return o(e,t,n)}),c.alloc||(c.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var r=o(e);return t&&0!==t.length?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r}),!a.kStringMaxLength)try{a.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(e){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),e.exports=a},12023:function(e,t,n){var r=n(37225).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,s=e.length,o=this._len,a=0;a<s;){for(var c=o%i,l=Math.min(s-a,i-c),u=0;u<l;u++)n[c+u]=e[a+u];a+=l,(o+=l)%i==0&&this._update(n)}return this._len+=s,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},25636:function(e,t,n){var r=e.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=n(83443),r.sha1=n(32798),r.sha224=n(47803),r.sha256=n(91772),r.sha384=n(43030),r.sha512=n(90566)},83443:function(e,t,n){var r=n(59503),i=n(12023),s=n(37225).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<30|e>>>2}function u(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,c=0|this._e,p=0;p<16;++p)n[p]=e.readInt32BE(4*p);for(;p<80;++p)n[p]=n[p-3]^n[p-8]^n[p-14]^n[p-16];for(var d=0;d<80;++d){var h=~~(d/20),f=0|((t=r)<<5|t>>>27)+u(h,i,s,a)+c+n[d]+o[h];c=a,a=s,s=l(i),i=r,r=f}this._a=r+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=s.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},32798:function(e,t,n){var r=n(59503),i=n(12023),s=n(37225).Buffer,o=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e){return e<<5|e>>>27}function u(e){return e<<30|e>>>2}function p(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,c=0|this._e,d=0;d<16;++d)n[d]=e.readInt32BE(4*d);for(;d<80;++d)n[d]=(t=n[d-3]^n[d-8]^n[d-14]^n[d-16])<<1|t>>>31;for(var h=0;h<80;++h){var f=~~(h/20),m=l(r)+p(f,i,s,a)+c+n[h]+o[f]|0;c=a,a=s,s=u(i),i=r,r=m}this._a=r+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=s.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},47803:function(e,t,n){var r=n(59503),i=n(91772),s=n(12023),o=n(37225).Buffer,a=new Array(64);function c(){this.init(),this._w=a,s.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},91772:function(e,t,n){var r=n(59503),i=n(12023),s=n(37225).Buffer,o=[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],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function p(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,s=0|this._c,a=0|this._d,c=0|this._e,f=0|this._f,m=0|this._g,g=0|this._h,v=0;v<16;++v)n[v]=e.readInt32BE(4*v);for(;v<64;++v)n[v]=0|(((t=n[v-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[v-7]+h(n[v-15])+n[v-16];for(var b=0;b<64;++b){var y=g+d(c)+l(c,f,m)+o[b]+n[b]|0,k=p(r)+u(r,i,s)|0;g=m,m=f,f=c,c=a+y|0,a=s,s=i,i=r,r=y+k|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=s+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=f+this._f|0,this._g=m+this._g|0,this._h=g+this._h|0},c.prototype._hash=function(){var e=s.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},43030:function(e,t,n){var r=n(59503),i=n(90566),s=n(12023),o=n(37225).Buffer,a=new Array(160);function c(){this.init(),this._w=a,s.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=o.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},90566:function(e,t,n){var r=n(59503),i=n(12023),s=n(37225).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function l(e,t,n){return n^e&(t^n)}function u(e,t,n){return e&t|n&(e|t)}function p(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function f(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function v(e,t){return e>>>0<t>>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,s=0|this._dh,a=0|this._eh,c=0|this._fh,b=0|this._gh,y=0|this._hh,k=0|this._al,w=0|this._bl,_=0|this._cl,E=0|this._dl,C=0|this._el,S=0|this._fl,j=0|this._gl,M=0|this._hl,x=0;x<32;x+=2)t[x]=e.readInt32BE(4*x),t[x+1]=e.readInt32BE(4*x+4);for(;x<160;x+=2){var N=t[x-30],A=t[x-30+1],O=h(N,A),T=f(A,N),P=m(N=t[x-4],A=t[x-4+1]),I=g(A,N),R=t[x-14],U=t[x-14+1],Z=t[x-32],D=t[x-32+1],L=T+U|0,z=O+R+v(L,T)|0;z=(z=z+P+v(L=L+I|0,I)|0)+Z+v(L=L+D|0,D)|0,t[x]=z,t[x+1]=L}for(var B=0;B<160;B+=2){z=t[B],L=t[B+1];var F=u(n,r,i),V=u(k,w,_),q=p(n,k),H=p(k,n),W=d(a,C),$=d(C,a),J=o[B],K=o[B+1],G=l(a,c,b),Y=l(C,S,j),X=M+$|0,Q=y+W+v(X,M)|0;Q=(Q=(Q=Q+G+v(X=X+Y|0,Y)|0)+J+v(X=X+K|0,K)|0)+z+v(X=X+L|0,L)|0;var ee=H+V|0,te=q+F+v(ee,H)|0;y=b,M=j,b=c,j=S,c=a,S=C,a=s+Q+v(C=E+X|0,E)|0,s=i,E=_,i=r,_=w,r=n,w=k,n=Q+te+v(k=X+ee|0,X)|0}this._al=this._al+k|0,this._bl=this._bl+w|0,this._cl=this._cl+_|0,this._dl=this._dl+E|0,this._el=this._el+C|0,this._fl=this._fl+S|0,this._gl=this._gl+j|0,this._hl=this._hl+M|0,this._ah=this._ah+n+v(this._al,k)|0,this._bh=this._bh+r+v(this._bl,w)|0,this._ch=this._ch+i+v(this._cl,_)|0,this._dh=this._dh+s+v(this._dl,E)|0,this._eh=this._eh+a+v(this._el,C)|0,this._fh=this._fh+c+v(this._fl,S)|0,this._gh=this._gh+b+v(this._gl,j)|0,this._hh=this._hh+y+v(this._hl,M)|0},c.prototype._hash=function(){var e=s.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},62470:function(e,t,n){"use strict";function r(e){return r="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},r(e)}t.Z=void 0;var i,s=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==r(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var n={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if(Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;o&&(o.get||o.set)?Object.defineProperty(n,s,o):n[s]=e[s]}return n.default=e,t&&t.set(e,n),n}(n(99196)),o=(i=n(11268))&&i.__esModule?i:{default:i};function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function c(){return c=Object.assign||function(e){for(var t,n=1;n<arguments.length;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},c.apply(this,arguments)}function l(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],0<=t.indexOf(n)||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)n=s[r],0<=t.indexOf(n)||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){for(var n,r=0;r<t.length;r++)(n=t[r]).enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}function d(e,t){return d=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},d(e,t)}function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=m(e);if(t){var i=m(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return f(this,n)}}function f(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var v=function(e){function t(){return u(this,t),n.apply(this,arguments)}!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&d(e,t)}(t,e);var n=h(t);return function(e,t,n){t&&p(e.prototype,t),n&&p(e,n)}(t,[{key:"render",value:function(){var e,t=this.props,n=t.size,r=t.onClick,i=t.icon,o=t.className,a=l(t,["size","onClick","icon","className"]),u=["social-logo","social-logo-"+i,o].filter(Boolean).join(" ");switch(i){default:e=s.default.createElement("svg",c({height:n,width:n},a));break;case"amazon":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.589.589 0 00.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.061v.369zm-.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.015zm7.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.55zm.653 1.704c-.194.163-.379.076-.293-.139.284-.71.92-2.298.619-2.684-.301-.386-1.99-.183-2.749-.092-.23.027-.266-.173-.059-.319 1.348-.946 3.555-.673 3.811-.356.26.32-.066 2.533-1.329 3.59z"})));break;case"behance":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M7.799 5.698c.589 0 1.12.051 1.606.156.482.102.894.273 1.241.507.344.235.612.546.804.938.188.387.281.871.281 1.443 0 .619-.141 1.137-.421 1.551-.284.413-.7.751-1.255 1.014.756.218 1.317.601 1.689 1.146.374.549.557 1.205.557 1.975 0 .623-.12 1.161-.359 1.612a3.144 3.144 0 01-.973 1.114c-.408.288-.876.5-1.399.637A6.144 6.144 0 017.963 18H2V5.698h5.799m-.35 4.97c.481 0 .878-.114 1.192-.345.311-.228.463-.603.463-1.119 0-.286-.051-.523-.152-.707a1.123 1.123 0 00-.416-.427 1.733 1.733 0 00-.596-.216 3.616 3.616 0 00-.697-.06H4.709v2.874h2.74zm.151 5.237c.267 0 .521-.024.759-.077.243-.053.457-.137.637-.261.182-.12.332-.283.441-.491.11-.206.163-.474.163-.798 0-.633-.18-1.084-.533-1.357-.356-.27-.83-.404-1.413-.404H4.709v3.388H7.6zm8.562-.041c.367.358.897.538 1.583.538.493 0 .92-.125 1.277-.374.354-.248.571-.514.654-.79h2.155c-.347 1.072-.872 1.838-1.589 2.299-.708.463-1.572.693-2.58.693-.701 0-1.332-.113-1.899-.337a4.041 4.041 0 01-1.439-.958 4.364 4.364 0 01-.904-1.484 5.433 5.433 0 01-.32-1.899c0-.666.11-1.288.329-1.863a4.36 4.36 0 01.933-1.492c.406-.42.885-.751 1.444-.994a4.63 4.63 0 011.857-.363c.754 0 1.414.145 1.98.44a3.941 3.941 0 011.389 1.181 4.82 4.82 0 01.783 1.69c.16.632.217 1.292.171 1.983h-6.428c-.001.706.237 1.372.604 1.73m2.811-4.68c-.291-.321-.783-.496-1.384-.496-.39 0-.714.066-.973.2a1.972 1.972 0 00-.621.491 1.772 1.772 0 00-.328.628 2.695 2.695 0 00-.111.587h3.98c-.058-.625-.271-1.085-.563-1.41zm-3.916-3.446h4.985V6.524h-4.985v1.214z"})));break;case"blogger-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M19.779 9.904h-.981l-.021.001a1.163 1.163 0 01-1.16-1.079l-.001-.013A5.813 5.813 0 0011.803 3H8.871a5.813 5.813 0 00-5.813 5.813v6.375a5.813 5.813 0 005.813 5.813h6.257a5.814 5.814 0 005.813-5.813l.002-4.121a1.164 1.164 0 00-1.164-1.163zM8.726 7.713h3.291a1.117 1.117 0 110 2.234H8.726a1.117 1.117 0 110-2.234zm6.601 8.657H8.72a1.057 1.057 0 110-2.114h6.607a1.057 1.057 0 110 2.114z"})));break;case"blogger":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M14.722 14.019a.654.654 0 01-.654.654H9.977a.654.654 0 010-1.308h4.091c.361 0 .654.293.654.654zm-4.741-3.321h2.038a.692.692 0 000-1.384H9.981a.692.692 0 000 1.384zM21 5v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14a2 2 0 012 2zm-3.456 6.39a.72.72 0 00-.72-.72h-.607l-.013.001a.72.72 0 01-.718-.668l-.001-.008a3.599 3.599 0 00-3.599-3.599H10.07a3.599 3.599 0 00-3.599 3.599v3.947a3.6 3.6 0 003.599 3.599h3.874a3.599 3.599 0 003.599-3.599l.001-2.552z"})));break;case"codepen":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M22.016 8.84l-.007-.037c-.005-.025-.008-.048-.015-.072-.003-.015-.01-.028-.013-.042l-.023-.062-.02-.042a.391.391 0 00-.03-.057.357.357 0 00-.025-.038l-.035-.052-.03-.037c-.015-.017-.028-.032-.043-.045-.01-.012-.022-.023-.035-.035a.442.442 0 00-.048-.04l-.037-.03-.015-.012-9.161-6.096a.864.864 0 00-.955 0L2.359 8.237l-.015.012-.038.028-.048.04a.638.638 0 00-.078.082c-.012.013-.022.023-.03.037-.011.017-.025.035-.035.052a.498.498 0 01-.025.038c-.011.022-.021.039-.03.059a.39.39 0 01-.02.041 1.184 1.184 0 00-.034.106c-.007.023-.011.046-.016.071-.001.014-.005.025-.006.037a.73.73 0 00-.009.114v6.093c0 .037.003.075.008.112l.007.038c.005.023.008.047.015.072a.209.209 0 00.013.04c.007.022.013.042.022.063l.02.04a.4.4 0 00.055.096l.035.052.03.037a.603.603 0 00.042.045l.035.035c.015.013.032.028.048.04l.038.03.013.01 9.163 6.095a.858.858 0 00.959.004l9.163-6.095.015-.01c.013-.01.027-.02.037-.03a.534.534 0 00.048-.04c.013-.012.025-.023.035-.035.017-.015.03-.032.043-.045l.03-.037a.678.678 0 00.035-.052l.025-.038a.4.4 0 00.03-.058l.02-.04.023-.063c.003-.013.01-.027.013-.04.007-.025.01-.048.015-.072l.007-.037c.003-.042.007-.079.007-.117V8.954a.625.625 0 00-.008-.114zm-9.154-4.376l6.751 4.49-3.016 2.013-3.735-2.492V4.464zm-1.724 0v4.009l-3.735 2.494-3.014-2.013 6.749-4.49zm-7.439 6.098L5.853 12l-2.155 1.438v-2.876zm7.439 8.974l-6.749-4.491 3.015-2.011 3.735 2.492v4.01zM12 14.035L8.953 12 12 9.966 15.047 12 12 14.035zm.862 5.501v-4.009l3.735-2.492 3.016 2.011-6.751 4.49zm7.441-6.098L18.147 12l2.156-1.438v2.876z"})));break;case"dribbble":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10zm8.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 003.661-5.725zm-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 0012 20.555a8.488 8.488 0 003.336-.679zm-9.682-2.152c.193-.331 2.538-4.213 6.943-5.637.111-.036.224-.07.337-.102a29.017 29.017 0 00-.692-1.45c-4.266 1.277-8.405 1.223-8.778 1.216a8.497 8.497 0 002.19 5.973zm-2.015-7.46c.382.005 3.901.02 7.897-1.041a54.477 54.477 0 00-3.167-4.94 8.572 8.572 0 00-4.73 5.981zm6.359-6.555a45.7 45.7 0 013.187 5c3.037-1.138 4.323-2.867 4.477-3.085a8.508 8.508 0 00-7.664-1.915zm8.614 2.903c-.18.243-1.612 2.078-4.77 3.367a27.028 27.028 0 01.751 1.678c2.842-.357 5.666.215 5.948.275a8.503 8.503 0 00-1.929-5.32z"})));break;case"dropbox":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 6.134L6.069 9.797 2 6.54l5.883-3.843L12 6.134zm-10 6.92l5.883 3.843L12 13.459 6.069 9.797 2 13.054zm10 .405l4.116 3.439L22 13.054l-4.069-3.257L12 13.459zM22 6.54l-5.884-3.843L12 6.134l5.931 3.663L22 6.54zm-9.989 7.66l-4.129 3.426-1.767-1.153v1.291l5.896 3.539 5.897-3.539v-1.291l-1.769 1.153-4.128-3.426z"})));break;case"eventbrite":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M18.041 3.931L5.959 3A2.96 2.96 0 003 5.959v12.083A2.96 2.96 0 005.959 21l12.083-.931C19.699 19.983 21 18.744 21 17.11V6.89c0-1.634-1.259-2.863-2.959-2.959zM16.933 8.17c-.082.215-.192.432-.378.551-.188.122-.489.132-.799.132-1.521 0-3.062-.048-4.607-.048-.152.708-.304 1.416-.451 2.128.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.17 2.17 0 01-.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-.841a3542.51 3542.51 0 011.629-7.763c.056-.265.114-.511.225-.714a1.24 1.24 0 01.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.783z",fillRule:"evenodd",clipRule:"evenodd"})));break;case"facebook":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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-10z"})));break;case"feed":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M2 8.667V12c5.515 0 10 4.485 10 10h3.333c0-7.363-5.97-13.333-13.333-13.333zM2 2v3.333c9.19 0 16.667 7.477 16.667 16.667H22C22 10.955 13.045 2 2 2zm2.5 15a2.5 2.5 0 100 5 2.5 2.5 0 000-5z"})));break;case"flickr":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z"})));break;case"foursquare":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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 2zm-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.715-.072.353-.407 2.102-.448 2.295-.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.683l-.446 2.333z"})));break;case"ghost":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M10.203 20.997H3.005v-3.599h7.198v3.599zm10.792-3.599h-7.193v3.599h7.193v-3.599zm.003-7.198H3v3.599h17.998V10.2zm-7.195-7.197H3.005v3.599h10.798V3.003zm7.197 0h-3.599v3.599H21V3.003z"})));break;case"github":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.548 9.548 0 0112 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.481A9.997 9.997 0 0022 12c0-5.523-4.477-10-10-10z"})));break;case"google-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-.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.672 0 2.022 1.62 3.672 3.606 3.672 2.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.862z"})));break;case"google-plus-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.02H8V11zm15 0h-2V9h-2v2h-2v2h2v2h2v-2h2"})));break;case"google-plus":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm-1.919 14.05a4.051 4.051 0 010-8.1c1.094 0 2.009.401 2.709 1.057l-1.15 1.118a2.229 2.229 0 00-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.956zM19 12.75h-1.25V14h-1.5v-1.25H15v-1.5h1.25V10h1.5v1.25H19v1.5z"})));break;case"google":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.05h-9.36z"})));break;case"instagram":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.673.315.315.51.615.673 1.035.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.035-.315.315-.615.51-1.035.673-.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.786 2.786 0 01-1.035-.673 2.786 2.786 0 01-.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.035.315-.315.615-.51 1.035-.673.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.401 4.401 0 00-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.411 4.411 0 001.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.411 4.411 0 0019.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 3zm0 4.378a4.622 4.622 0 100 9.244 4.622 4.622 0 000-9.244zM12 15a3 3 0 110-6 3 3 0 010 6zm4.804-8.884a1.08 1.08 0 10.001 2.161 1.08 1.08 0 00-.001-2.161z"})));break;case"linkedin":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M19.7 3H4.3A1.3 1.3 0 003 4.3v15.4A1.3 1.3 0 004.3 21h15.4a1.3 1.3 0 001.3-1.3V4.3A1.3 1.3 0 0019.7 3zM8.339 18.338H5.667v-8.59h2.672v8.59zM7.004 8.574a1.548 1.548 0 11-.002-3.096 1.548 1.548 0 01.002 3.096zm11.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"})));break;case"mail":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M20 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V6a2 2 0 00-2-2zm0 4.236l-8 4.882-8-4.882V6h16v2.236z"})));break;case"medium-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}),s.default.createElement("g",null,s.default.createElement("path",{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-6zm9.458.351c1.635 0 2.961 2.53 2.961 5.65 0 3.118-1.325 5.648-2.96 5.648-1.636 0-2.962-2.53-2.962-5.649s1.325-5.649 2.96-5.649zm4.577.589c.576 0 1.042 2.265 1.042 5.06 0 2.794-.466 5.06-1.042 5.06-.575 0-1.04-2.265-1.04-5.06 0-2.794.465-5.06 1.04-5.06z",fillRule:"nonzero"})));break;case"medium":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M3 3v18h18V3H3zm15 4.26l-1 .93a.28.28 0 00-.11.27v6.8a.27.27 0 00.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 00.17.54l1.27 1.54v.2H5.86v-.2l1.27-1.54a.64.64 0 00.17-.54V9a.5.5 0 00-.16-.4L6 7.26v-.2h3.52L12.23 13l2.38-5.94H18v.2z"})));break;case"patreon":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}),s.default.createElement("g",null,s.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.975 5a5.05 5.05 0 00-5.041 5.046c0 2.774 2.261 5.03 5.04 5.03A5.034 5.034 0 0019 10.047C19 7.264 16.746 5 13.975 5zM5 18.44h2.461V5H5v13.44z"})));break;case"pinterest-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.365.365 0 00-.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"})));break;case"pinterest":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.297.297 0 01.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 2z"})));break;case"pocket":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M21.927 4.194A1.82 1.82 0 0020.222 3H3.839a1.823 1.823 0 00-1.813 1.814v6.035l.069 1.2c.29 2.73 1.707 5.115 3.899 6.778l.119.089.025.018a9.897 9.897 0 003.91 1.727 10.06 10.06 0 004.049-.014.261.261 0 00.064-.023 9.906 9.906 0 003.753-1.691l.025-.018c.04-.029.08-.058.119-.089 2.192-1.664 3.609-4.049 3.898-6.778l.069-1.2V4.814a1.792 1.792 0 00-.098-.62zm-4.235 6.287l-4.704 4.512a1.372 1.372 0 01-1.898 0l-4.705-4.512a1.371 1.371 0 111.898-1.979l3.756 3.601 3.755-3.601a1.372 1.372 0 011.898 1.979z"})));break;case"polldaddy":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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-10zm.991 1.68c2.361.084 4.657 1.251 6.197 3.136.283.334.541.693.774 1.067a7.775 7.775 0 00-6.094-2.94 7.764 7.764 0 00-5.896 2.703c-.006.003-.01.01-.016.014l-.152.159-.031.032a6.122 6.122 0 00-1.633 4.165 6.15 6.15 0 006.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.386 7.386 0 016.69 6.137C8.294 4.5 10.634 3.563 12.991 3.68zm3.373 8.519c-.049-2.024-1.587-3.889-3.544-4.174-1.927-.343-3.917.857-4.451 2.661a3.673 3.673 0 00.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.362 2.362 0 00.753 1.879c.501.476 1.23.667 1.871.529a2.067 2.067 0 001.469-1.134 1.912 1.912 0 00-.087-1.767c-.297-.513-.859-.863-1.429-.881a1.698 1.698 0 00-1.437.679 1.525 1.525 0 00-.18 1.489c.004.011.01.021.016.03.193.634.774 1.1 1.467 1.117a1.618 1.618 0 01-.97-.183c-.466-.244-.809-.747-.893-1.29a1.8 1.8 0 01.499-1.539 2.016 2.016 0 011.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.515 2.515 0 01-1.914.286c-.65-.161-1.226-.606-1.584-1.206a2.825 2.825 0 01-.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.216 5.216 0 01-1.947-.376 5.01 5.01 0 002.613-.079 4.955 4.955 0 002.514-1.751c.618-.828.95-1.861.901-2.869zM12 21.113c-5.024 0-9.111-4.087-9.111-9.113 0-4.789 3.713-8.723 8.411-9.081a6.548 6.548 0 00-.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.041z"})));break;case"print":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M9 16h6v2H9v-2zm13 1h-3v3a2 2 0 01-2 2H7a2 2 0 01-2-2v-3H2V9a2 2 0 012-2h1V5a2 2 0 012-2h10a2 2 0 012 2v2h1a2 2 0 012 2v8zM7 7h10V5H7v2zm10 7H7v6h10v-6zm3-3.5a1.5 1.5 0 10-3.001.001A1.5 1.5 0 0020 10.5z"})));break;case"reddit":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M22 11.816a2.279 2.279 0 00-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.878 1.878 0 001.876 1.862 1.88 1.88 0 001.877-1.878 1.88 1.88 0 00-1.877-1.877c-.769 0-1.431.466-1.72 1.13l-3.508-.826a.386.386 0 00-.46.261l-1.35 4.268c-2.316.038-4.411.67-5.97 1.671a2.24 2.24 0 00-1.492-.581A2.279 2.279 0 002 11.816c0 .814.433 1.523 1.078 1.925a4.056 4.056 0 00-.061.672c0 3.292 4.011 5.97 8.941 5.97s8.941-2.678 8.941-5.97c0-.214-.02-.424-.053-.632A2.259 2.259 0 0022 11.816zm-3.224-7.422a1.1 1.1 0 11-.001 2.199 1.1 1.1 0 01.001-2.199zM2.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.482 1.482 0 01-.525-1.129zm9.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.193zm8.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.185zm-11.64 1.703c-.76 0-1.397-.616-1.397-1.376 0-.76.637-1.397 1.397-1.397s1.376.637 1.376 1.397-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.616 1.376-1.376 1.376-.76 0-1.399-.616-1.399-1.376 0-.76.639-1.397 1.399-1.397s1.376.637 1.376 1.397zm-1.172 3.38a.389.389 0 010 .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 11.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 01.549 0z"})));break;case"share":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.118A2.981 2.981 0 0015 19a3 3 0 103-3z"})));break;case"skype":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M10.113 2.699l.1-.02c.033.017.066.033.098.051l-.198-.031zM2.72 10.223l-.017.103c.018.032.033.064.051.095l-.034-.198zm18.555 3.548c.007-.035.011-.071.018-.106-.018-.031-.033-.064-.052-.095l.034.201zm-7.712 7.428c.032.019.065.035.096.053l.105-.017-.201-.036zM22 16.386a5.55 5.55 0 01-1.637 3.953 5.548 5.548 0 01-3.953 1.637 5.575 5.575 0 01-2.75-.725l.105-.017-.202-.035c.032.019.065.035.096.053a9.524 9.524 0 01-1.654.147 9.375 9.375 0 01-3.676-.743 9.38 9.38 0 01-3.002-2.023 9.397 9.397 0 01-2.023-3.002 9.375 9.375 0 01-.743-3.676c0-.546.049-1.093.142-1.628.018.032.033.064.051.095l-.034-.199-.017.103A5.586 5.586 0 012 7.615c0-1.493.582-2.898 1.637-3.953A5.555 5.555 0 017.59 2.024c.915 0 1.818.228 2.622.655l-.1.02.199.031c-.032-.018-.066-.034-.098-.051l.004-.001a9.543 9.543 0 011.788-.169 9.41 9.41 0 016.678 2.766 9.4 9.4 0 012.024 3.002 9.375 9.375 0 01.743 3.676c0 .575-.054 1.15-.157 1.712-.018-.031-.033-.064-.052-.095l.034.201c.007-.035.011-.071.018-.106.461.829.707 1.767.707 2.721zm-5.183-2.248c0-1.331-.613-2.743-3.033-3.282l-2.209-.49c-.84-.192-1.807-.444-1.807-1.237 0-.794.679-1.348 1.903-1.348 2.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.599z"})));break;case"spotify":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.622.622 0 01-.857.207c-2.348-1.435-5.304-1.76-8.785-.964a.622.622 0 11-.277-1.215c3.809-.871 7.077-.496 9.713 1.115a.623.623 0 01.206.857M17.81 13.7a.78.78 0 01-1.072.257c-2.687-1.652-6.785-2.131-9.965-1.166A.779.779 0 116.32 11.3c3.632-1.102 8.147-.568 11.234 1.328a.78.78 0 01.256 1.072m.105-2.835c-3.223-1.914-8.54-2.09-11.618-1.156a.935.935 0 11-.542-1.79c3.532-1.072 9.404-.865 13.115 1.338a.936.936 0 11-.955 1.608"})));break;case"squarespace":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M20.87 9.271a3.86 3.86 0 00-5.458 0l-6.141 6.141a.964.964 0 101.365 1.364l6.14-6.14a1.929 1.929 0 112.729 2.729l-6.022 6.022a1.929 1.929 0 002.729 0l4.658-4.658a3.86 3.86 0 000-5.458zm-2.047 2.047a.965.965 0 00-1.365 0l-6.14 6.14a1.929 1.929 0 01-2.729 0 .964.964 0 10-1.364 1.364 3.86 3.86 0 005.458 0l6.14-6.14a.966.966 0 000-1.364zm-2.047-6.141a3.858 3.858 0 00-5.458 0l-6.14 6.14a.964.964 0 101.364 1.364l6.141-6.14a1.929 1.929 0 012.729 0 .965.965 0 101.364-1.364zm-2.047 2.047a.964.964 0 00-1.364 0l-6.14 6.141a1.929 1.929 0 11-2.729-2.729l6.022-6.022a1.929 1.929 0 00-2.729 0L3.13 9.271a3.86 3.86 0 005.458 5.458l6.14-6.141a.963.963 0 00.001-1.364z"})));break;case"stumbleupon":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 4.294a4.471 4.471 0 00-4.471 4.471v6.353a1.059 1.059 0 11-2.118 0v-2.824H2v2.941a4.471 4.471 0 008.942 0v-6.47a1.059 1.059 0 112.118 0v1.294l1.412.647 2-.647V8.765A4.473 4.473 0 0012 4.294zm1.059 8.059v2.882a4.471 4.471 0 008.941 0v-2.824h-3.412v2.824a1.059 1.059 0 11-2.118 0v-2.882l-2 .647-1.411-.647z"})));break;case"telegram":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.08 14.757s-.25.625-.936.325l-2.541-1.949-1.63 1.486s-.127.096-.266.036c0 0-.12-.011-.27-.486-.15-.475-.911-2.972-.911-2.972L6 12.349s-.387-.137-.425-.438c-.037-.3.437-.462.437-.462l10.03-3.934s.824-.362.824.238l-1.786 9.004z"})));break;case"tiktok-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}),s.default.createElement("g",null,s.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M5 3a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2H5zm9.584 3h-2.052l.019 8.128a1.73 1.73 0 11-1.215-1.65v-2.084h-.533a3.804 3.804 0 103.803 3.803l-.022-4.207c1.268.968 2.85.869 2.85.869V8.82C14.47 8.636 14.584 6 14.584 6z"})));break;case"tiktok":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12.22 2h3.42s-.19 4.394 4.75 4.702v3.396s-2.636.166-4.75-1.448l.037 7.011a6.338 6.338 0 11-6.34-6.338h.89v3.472a2.882 2.882 0 102.024 2.752L12.22 2z"})));break;case"tumblr-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.126l-.924-2.743z"})));break;case"tumblr":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-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.656z"})));break;case"twitch":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M16.499 8.089h-1.636v4.91h1.636v-4.91zm-4.499 0h-1.637v4.91H12v-4.91zM4.228 3.178L3 6.451v13.092h4.499V22h2.456l2.454-2.456h3.681L21 14.636V3.178H4.228zm15.136 10.638L16.5 16.681H12l-2.453 2.453V16.68H5.863V4.814h13.501v9.002z"})));break;case"twitter-alt":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M22.23 5.924a8.212 8.212 0 01-2.357.646 4.115 4.115 0 001.804-2.27 8.221 8.221 0 01-2.606.996 4.103 4.103 0 00-6.991 3.742 11.647 11.647 0 01-8.457-4.287 4.087 4.087 0 00-.556 2.063 4.1 4.1 0 001.825 3.415 4.09 4.09 0 01-1.859-.513v.052a4.104 4.104 0 003.292 4.023 4.099 4.099 0 01-1.853.07 4.11 4.11 0 003.833 2.85 8.236 8.236 0 01-5.096 1.756 8.33 8.33 0 01-.979-.057 11.617 11.617 0 006.29 1.843c7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.531a8.298 8.298 0 002.047-2.123z"})));break;case"twitter":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M19 3H5a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2V5a2 2 0 00-2-2zm-2.534 6.71c.004.099.007.198.007.298 0 3.045-2.318 6.556-6.556 6.556a6.52 6.52 0 01-3.532-1.035 4.626 4.626 0 003.412-.954 2.307 2.307 0 01-2.152-1.6 2.295 2.295 0 001.04-.04 2.306 2.306 0 01-1.848-2.259v-.029c.311.173.666.276 1.044.288a2.303 2.303 0 01-.713-3.076 6.54 6.54 0 004.749 2.407 2.305 2.305 0 013.926-2.101 4.602 4.602 0 001.463-.559 2.31 2.31 0 01-1.013 1.275c.466-.056.91-.18 1.323-.363-.31.461-.7.867-1.15 1.192z"})));break;case"vimeo":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M22.396 7.164c-.093 2.026-1.507 4.799-4.245 8.32C15.322 19.161 12.928 21 10.97 21c-1.214 0-2.24-1.119-3.079-3.359l-1.68-6.159c-.623-2.239-1.29-3.36-2.005-3.36-.156 0-.701.328-1.634.98l-.978-1.261c1.027-.902 2.04-1.805 3.037-2.708C6.001 3.95 7.03 3.327 7.715 3.264c1.619-.156 2.616.951 2.99 3.321.404 2.557.685 4.147.841 4.769.467 2.121.981 3.181 1.542 3.181.435 0 1.09-.688 1.963-2.065.871-1.376 1.338-2.422 1.401-3.142.125-1.187-.343-1.782-1.401-1.782-.498 0-1.012.115-1.541.341 1.023-3.35 2.977-4.977 5.862-4.884 2.139.063 3.148 1.45 3.024 4.161z"})));break;case"whatsapp":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M2.048 22l1.406-5.136a9.894 9.894 0 01-1.323-4.955C2.133 6.446 6.579 2 12.042 2a9.848 9.848 0 017.011 2.906 9.85 9.85 0 012.9 7.011c-.002 5.464-4.448 9.91-9.91 9.91h-.004a9.913 9.913 0 01-4.736-1.206L2.048 22zm5.497-3.172l.301.179a8.214 8.214 0 004.193 1.148h.003c4.54 0 8.235-3.695 8.237-8.237a8.189 8.189 0 00-2.41-5.828 8.182 8.182 0 00-5.824-2.416c-4.544 0-8.239 3.695-8.241 8.237a8.222 8.222 0 001.259 4.384l.196.312-.832 3.04 3.118-.819zm9.49-4.554c-.062-.103-.227-.165-.475-.289-.248-.124-1.465-.723-1.692-.806-.227-.083-.392-.124-.557.124-.165.248-.64.806-.784.971-.144.165-.289.186-.536.062-.248-.124-1.046-.385-1.991-1.229-.736-.657-1.233-1.468-1.378-1.715-.144-.248-.015-.382.109-.505.111-.111.248-.289.371-.434.124-.145.165-.248.248-.413.083-.165.041-.31-.021-.434s-.557-1.343-.763-1.839c-.202-.483-.407-.417-.559-.425-.144-.007-.31-.009-.475-.009a.91.91 0 00-.66.31c-.226.248-.866.847-.866 2.066 0 1.219.887 2.396 1.011 2.562.124.165 1.746 2.666 4.23 3.739.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.179z"})));break;case"woocommerce":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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-3zm-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-.6.5 0 .8.3.9.9.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.2.2.2.3.4.3.6s0 .4-.1.5z"})));break;case"wordpress":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M12.158 12.786L9.46 20.625a8.984 8.984 0 005.526-.144.852.852 0 01-.065-.124l-2.763-7.571zM3.009 12a8.993 8.993 0 005.067 8.092L3.788 8.341A8.952 8.952 0 003.009 12zm15.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.596.04 0 .078.005.116.007A8.963 8.963 0 0012 3.009a8.982 8.982 0 00-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.996c.456-1.169.684-2.137.684-2.907zm1.82-3.86c.039.286.06.593.06.924 0 .912-.171 1.938-.684 3.22l-2.746 7.94a8.984 8.984 0 004.47-7.771 8.922 8.922 0 00-1.1-4.313zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z"})));break;case"xanga":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.createElement("path",{d:"M9 9h6v6H9V9zM3 9h6V3H3v6zm12 0h6V3h-6v6zm0 12h6v-6h-6v6zM3 21h6v-6H3v6z"})));break;case"youtube":e=s.default.createElement("svg",c({className:u,height:n,width:n,onClick:r},a,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}),s.default.createElement("g",null,s.default.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.237zM9.935 14.594l-.001-5.62 5.404 2.82-5.403 2.8z"})))}return e}}]),t}(s.PureComponent);t.Z=v,g(v,"defaultProps",{size:24}),g(v,"propTypes",{icon:o.default.string.isRequired,size:o.default.number,onClick:o.default.func,className:o.default.string})},81717:function(e,t,n){e.exports=i;var r=n(2571).EventEmitter;function i(){r.call(this)}n(59503)(i,r),i.Readable=n(20465),i.Writable=n(48607),i.Duplex=n(95507),i.Transform=n(1866),i.PassThrough=n(15385),i.finished=n(87288),i.pipeline=n(60519),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function s(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",s),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",c));var o=!1;function a(){o||(o=!0,e.end())}function c(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function l(e){if(u(),0===r.listenerCount(this,"error"))throw e}function u(){n.removeListener("data",i),e.removeListener("drain",s),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",l),e.removeListener("error",l),n.removeListener("end",u),n.removeListener("close",u),e.removeListener("close",u)}return n.on("error",l),e.on("error",l),n.on("end",u),n.on("close",u),e.on("close",u),e.emit("pipe",n),e}},3247:function(e,t,n){"use strict";var r=n(37225).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function s(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=l,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=u,this.end=p,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function l(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function u(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.s=s,s.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},s.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},s.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=o(t[r]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},s.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},13488:function(e,t,n){"use strict";var r,i=n(32752);e=n.hmd(e),r="undefined"!=typeof self?self:"undefined"!=typeof window||"undefined"!=typeof window?window:e;var s=(0,i.Z)(r);t.Z=s},32752:function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,{Z:function(){return r}})},90136:function(e,t,n){"use strict";n.d(t,{EB:function(){return g},ht:function(){return f}});var r=n(55246),i=["input","select","textarea","a[href]","button","[tabindex]","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],s=i.join(","),o="undefined"==typeof Element?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,a=function(e,t,n){var r=Array.prototype.slice.apply(e.querySelectorAll(s));return t&&o.call(e,s)&&r.unshift(e),r=r.filter(n)},c=function(e){var t=parseInt(e.getAttribute("tabindex"),10);return isNaN(t)?function(e){return"true"===e.contentEditable}(e)?0:"AUDIO"!==e.nodeName&&"VIDEO"!==e.nodeName&&"DETAILS"!==e.nodeName||null!==e.getAttribute("tabindex")?e.tabIndex:0:t},l=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},u=function(e){return"INPUT"===e.tagName},p=function(e){return function(e){return u(e)&&"radio"===e.type}(e)&&!function(e){if(!e.name)return!0;var t,n=e.form||e.ownerDocument,i=function(e){return n.querySelectorAll('input[type="radio"][name="'+e+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)t=i(window.CSS.escape(e.name));else try{t=i(e.name)}catch(e){return r.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",e.message),!1}var s=function(e,t){for(var n=0;n<e.length;n++)if(e[n].checked&&e[n].form===t)return e[n]}(t,e.form);return!s||s===e}(e)},d=function(e,t){return!(t.disabled||function(e){return u(e)&&"hidden"===e.type}(t)||function(e,t){if("hidden"===getComputedStyle(e).visibility)return!0;var n=o.call(e,"details>summary:first-of-type")?e.parentElement:e;if(o.call(n,"details:not([open]) *"))return!0;if(t&&"full"!==t){if("non-zero-area"===t){var r=e.getBoundingClientRect(),i=r.width,s=r.height;return 0===i&&0===s}}else for(;e;){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(t,e.displayCheck)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(u(e)||"SELECT"===e.tagName||"TEXTAREA"===e.tagName||"BUTTON"===e.tagName)for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n<t.children.length;n++){var r=t.children.item(n);if("LEGEND"===r.tagName)return!r.contains(e)}return!0}t=t.parentElement}return!1}(t))},h=function(e,t){return!(!d(e,t)||p(t)||c(t)<0)},f=function(e,t){var n=[],r=[];return a(e,(t=t||{}).includeContainer,h.bind(null,t)).forEach((function(e,t){var i=c(e);0===i?n.push(e):r.push({documentOrder:t,tabIndex:i,node:e})})),r.sort(l).map((function(e){return e.node})).concat(n)},m=i.concat("iframe").join(","),g=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==o.call(e,m)&&d(t,e)}},88090:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(7478),i={contextDelimiter:"",onMissingKey:null};function s(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},i)this.options[n]=void 0!==t&&n in t?t[n]:i[n]}s.prototype.getPluralForm=function(e,t){var n,i,s,o=this.pluralForms[e];return o||("function"!=typeof(s=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(i=function(e){var t,n,r;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(r=t[n].trim()).indexOf("plural="))return r.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),s=(0,r.Z)(i)),o=this.pluralForms[e]=s),o(t)},s.prototype.dcnpgettext=function(e,t,n,r,i){var s,o,a;return s=void 0===i?0:this.getPluralForm(e,i),o=n,t&&(o=t+this.options.contextDelimiter+n),(a=this.data[e][o])&&a[s]?a[s]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===s?n:r)}},80816:function(e,t,n){"use strict";var r=n(90922),i=n.n(r),s=n(92819);const o=i()("dops:analytics");let a,c;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const l={initialize:function(e,t,n){l.setUser(e,t),l.setSuperProps(n),l.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){c={ID:e,username:t}},setSuperProps:function(e){a=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);o("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),o('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);o("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),o('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){l.tracks.recordPageView(e),l.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,i,s,o){l.ga.recordPurchase(e,t,n,r,i,s,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(a&&(o("- Super Props: %o",a),t=(0,s.assign)(t,a)),o('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):o('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};l.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){l.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){o("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};l.ga.initialized||(c&&(e={userId:"u-"+c.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),l.ga.initialized=!0)},recordPageView:function(e,t){l.ga.initialize(),o("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,n,r){l.ga.initialize();let i="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(i+=" [Option Label: "+n+"]"),void 0!==r&&(i+=" [Option Value: "+r+"]"),o(i),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,i,s,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:i,quantity:s}),window.ga("ecommerce:send")}},identifyUser:function(){c&&window._tkq.push(["identifyUser",c.ID,c.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}};t.Z=l},19570:function(e,t,n){"use strict";var r=n(92819),i=n(96483),s=n(26251);function o(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const a=o("JsonParseError"),c=o("JsonParseAfterRedirectError"),l=o("Api404Error"),u=o("Api404AfterRedirectError"),p=o("FetchNetworkError");const d=new function(e,t){let n=e,o={"X-WP-Nonce":t},a={credentials:"same-origin",headers:o},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},o,{"Content-type":"application/json"})},l=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",r=n.length?n.split("&"):[];return r.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+r.join("&")};const u={setApiRoot(e){n=e},setApiNonce(e){o={"X-WP-Nonce":e},a={credentials:"same-origin",headers:o},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},o,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{l=e},registerSite:(e,t)=>{const r={registration_nonce:e,no_iframe:!0};return(0,s.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,s.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),d(`${n}jetpack/v4/connection/register`,c,{body:JSON.stringify(r)}).then(h).then(f)},fetchAuthorizationUrl:e=>p((0,i.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),a).then(h).then(f),fetchSiteConnectionData:()=>p(`${n}jetpack/v4/connection/data`,a).then(f),fetchSiteConnectionStatus:()=>p(`${n}jetpack/v4/connection`,a).then(f),fetchSiteConnectionTest:()=>p(`${n}jetpack/v4/connection/test`,a).then(h).then(f),fetchUserConnectionData:()=>p(`${n}jetpack/v4/connection/data`,a).then(f),fetchUserTrackingSettings:()=>p(`${n}jetpack/v4/tracking/settings`,a).then(h).then(f),updateUserTrackingSettings:e=>d(`${n}jetpack/v4/tracking/settings`,c,{body:JSON.stringify(e)}).then(h).then(f),disconnectSite:()=>d(`${n}jetpack/v4/connection`,c,{body:JSON.stringify({isActive:!1})}).then(h).then(f),fetchConnectUrl:()=>p(`${n}jetpack/v4/connection/url`,a).then(h).then(f),unlinkUser:()=>d(`${n}jetpack/v4/connection/user`,c,{body:JSON.stringify({linked:!1})}).then(h).then(f),reconnect:()=>d(`${n}jetpack/v4/connection/reconnect`,c).then(h).then(f),fetchConnectedPlugins:()=>p(`${n}jetpack/v4/connection/plugins`,a).then(h).then(f),setHasSeenWCConnectionModal:()=>d(`${n}jetpack/v4/seen-wc-connection-modal`,c).then(h).then(f),fetchModules:()=>p(`${n}jetpack/v4/module/all`,a).then(h).then(f),fetchModule:e=>p(`${n}jetpack/v4/module/${e}`,a).then(h).then(f),activateModule:e=>d(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!0})}).then(h).then(f),deactivateModule:e=>d(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>d(`${n}jetpack/v4/module/${e}`,c,{body:JSON.stringify(t)}).then(h).then(f),updateSettings:e=>d(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(h).then(f),getProtectCount:()=>p(`${n}jetpack/v4/module/protect/data`,a).then(h).then(f),resetOptions:e=>d(`${n}jetpack/v4/options/${e}`,c,{body:JSON.stringify({reset:!0})}).then(h).then(f),activateVaultPress:()=>d(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(h).then(f),getVaultPressData:()=>p(`${n}jetpack/v4/module/vaultpress/data`,a).then(h).then(f),installPlugin:(e,t)=>{const r={slug:e,status:"active"};return t&&(r.source=t),d(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify(r)}).then(h).then(f)},activateAkismet:()=>d(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(h).then(f),getAkismetData:()=>p(`${n}jetpack/v4/module/akismet/data`,a).then(h).then(f),checkAkismetKey:()=>p(`${n}jetpack/v4/module/akismet/key/check`,a).then(h).then(f),checkAkismetKeyTyped:e=>d(`${n}jetpack/v4/module/akismet/key/check`,c,{body:JSON.stringify({api_key:e})}).then(h).then(f),fetchStatsData:e=>p(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),a).then(h).then(f).then(m),getPluginUpdates:()=>p(`${n}jetpack/v4/updates/plugins`,a).then(h).then(f),getPlans:()=>p(`${n}jetpack/v4/plans`,a).then(h).then(f),fetchSettings:()=>p(`${n}jetpack/v4/settings`,a).then(h).then(f),updateSetting:e=>d(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(h).then(f),fetchSiteData:()=>p(`${n}jetpack/v4/site`,a).then(h).then(f).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>p(`${n}jetpack/v4/site/features`,a).then(h).then(f).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>p(`${n}jetpack/v4/site/products`,a).then(h).then(f),fetchSitePurchases:()=>p(`${n}jetpack/v4/site/purchases`,a).then(h).then(f).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>p(`${n}jetpack/v4/site/benefits`,a).then(h).then(f).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>p(`${n}jetpack/v4/setup/questionnaire`,a).then(h).then(f),fetchRecommendationsData:()=>p(`${n}jetpack/v4/recommendations/data`,a).then(h).then(f),fetchRecommendationsProductSuggestions:()=>p(`${n}jetpack/v4/recommendations/product-suggestions`,a).then(h).then(f),fetchRecommendationsUpsell:()=>p(`${n}jetpack/v4/recommendations/upsell`,a).then(h).then(f),saveRecommendationsData:e=>d(`${n}jetpack/v4/recommendations/data`,c,{body:JSON.stringify({data:e})}).then(h),fetchProducts:()=>p(`${n}jetpack/v4/products`,a).then(h).then(f),fetchRewindStatus:()=>p(`${n}jetpack/v4/rewind`,a).then(h).then(f).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>p(`${n}jetpack/v4/scan`,a).then(h).then(f).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>d(`${n}jetpack/v4/notice/${e}`,c,{body:JSON.stringify({dismissed:!0})}).then(h).then(f),fetchPluginsData:()=>p(`${n}jetpack/v4/plugins`,a).then(h).then(f),fetchVerifySiteGoogleStatus:e=>p(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,a).then(h).then(f),verifySiteGoogle:e=>d(`${n}jetpack/v4/verify-site/google`,c,{body:JSON.stringify({keyring_id:e})}).then(h).then(f),sendMobileLoginEmail:()=>d(`${n}jetpack/v4/mobile/send-login-email`,c).then(h).then(f),submitSurvey:e=>d(`${n}jetpack/v4/marketing/survey`,c,{body:JSON.stringify(e)}).then(h).then(f),saveSetupQuestionnaire:e=>d(`${n}jetpack/v4/setup/questionnaire`,c,{body:JSON.stringify(e)}).then(h).then(f),updateLicensingError:e=>d(`${n}jetpack/v4/licensing/error`,c,{body:JSON.stringify(e)}).then(h).then(f),updateLicenseKey:e=>d(`${n}jetpack/v4/licensing/set-license`,c,{body:JSON.stringify({license:e})}).then(h).then(f),getUserLicensesCounts:()=>p(`${n}jetpack/v4/licensing/user/counts`,a).then(h).then(f),updateLicensingActivationNoticeDismiss:e=>d(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,c,{body:JSON.stringify({last_detached_count:e})}).then(h).then(f),updateRecommendationsStep:e=>d(`${n}jetpack/v4/recommendations/step`,c,{body:JSON.stringify({step:e})}).then(h),confirmIDCSafeMode:()=>d(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,c).then(h),startIDCFresh:e=>d(`${n}jetpack/v4/identity-crisis/start-fresh`,c,{body:JSON.stringify({redirect_uri:e})}).then(h).then(f),migrateIDC:()=>d(`${n}jetpack/v4/identity-crisis/migrate`,c).then(h),attachLicenses:e=>d(`${n}jetpack/v4/licensing/attach-licenses`,c,{body:JSON.stringify({licenses:e})}).then(h).then(f),fetchSearchPlanInfo:()=>p(`${n}jetpack/v4/search/plan`,a).then(h).then(f),fetchSearchSettings:()=>p(`${n}jetpack/v4/search/settings`,a).then(h).then(f),updateSearchSettings:e=>d(`${n}jetpack/v4/search/settings`,c,{body:JSON.stringify(e)}).then(h).then(f)};function p(e,t){return fetch(l(e),t)}function d(e,t,n){return fetch(e,(0,r.assign)({},t,n)).catch(g)}function m(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,r.assign)(this,u)};function h(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new u(e.redirected):new l})):e.json().catch((e=>m(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function f(e){return e.json().catch((t=>m(t,e.redirected,e.url)))}function m(e,t,n){throw t?new c(n):new a}function g(){throw new p}t.ZP=d},31583:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(65736),o=n(55609),a=n(11268),c=n.n(a),l=(n(39999),n(37262));const __=s.__,u=e=>{const{label:t,onClick:n,isLoading:r,displayError:s,errorMessage:a}=e;return i().createElement("div",{className:"jp-action-button"},i().createElement(o.Button,{className:"jp-action-button--button",label:t,onClick:n,isPrimary:!0,disabled:r},r?i().createElement(l.Z,null):t),s&&i().createElement("p",{className:"jp-action-button__error"},a))};u.propTypes={label:c().string.isRequired,onClick:c().func,isLoading:c().bool,displayError:c().bool,errorMessage:c().string},u.defaultProps={isLoading:!1,displayError:!1,errorMessage:__("An error occurred. Please try again.","jetpack")},t.Z=u},31824:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(89105),c=n.n(a),l=n(65736),u=n(11268),p=n.n(u);const __=l.__,d=e=>{const{title:t,height:n,className:r,...s}=e;return o().createElement("svg",i()({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:n,className:c()("jp-automattic-byline-logo",r)},s),o().createElement("title",{id:"jp-automattic-byline-logo-title"},t),o().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"}),o().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"}),o().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"}))};d.defaultProps={title:__("An Automattic Airline","jetpack"),height:7,className:""},d.propTypes={title:p().string,height:p().number,className:p().string},t.Z=d},78310:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s);n(6383);const a=e=>{const{format:t,icon:n,imageUrl:r}=e;return i().createElement("div",{className:"jp-components__decorative-card "+(t?"jp-components__decorative-card--"+t:"")},i().createElement("div",{className:"jp-components__decorative-card__image",style:{backgroundImage:r?`url( ${r} )`:""}}),i().createElement("div",{className:"jp-components__decorative-card__content"},i().createElement("div",{className:"jp-components__decorative-card__lines"})),(()=>{if(n)return i().createElement("div",{className:"jp-components__decorative-card__icon-container"},i().createElement("span",{className:"jp-components__decorative-card__icon jp-components__decorative-card__icon--"+n}))})())};a.propTypes={format:o().oneOf(["horizontal","vertical"]),icon:o().oneOf(["unlink"]),imageUrl:o().string},a.defaultProps={format:"horizontal"},t.Z=a},97967:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(89105),l=n.n(c),u=n(11268),p=n.n(u),d=n(31824),h=(n(78785),n(81546));const __=a.__,f=e=>{const{a8cLogoHref:t,moduleName:n,className:r,...s}=e;return o().createElement("div",i()({className:l()("jp-dashboard-footer",r)},s),o().createElement("div",{className:"jp-dashboard-footer__footer-left"},o().createElement(h.Z,{logoColor:"#000",showText:!1,height:16,className:"jp-dashboard-footer__jetpack-symbol","aria-label":__("Jetpack logo","jetpack")}),o().createElement("span",{className:"jp-dashboard-footer__module-name"},n)),o().createElement("div",{className:"jp-dashboard-footer__footer-right"},o().createElement("a",{href:t,"aria-label":__("An Automattic Airline","jetpack")},o().createElement(d.Z,null))))};f.defaultProps={a8cLogoHref:"https://jetpack.com",moduleName:__("Jetpack","jetpack"),className:""},f.propTypes={a8cLogoHref:p().string,moduleName:p().string,className:p().string},t.Z=f},81546:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(89105),d=n.n(p),h=n(65736);const __=h.__;class f extends u().Component{render(){const{logoColor:e,showText:t,className:n,...r}=this.props,s=t?"0 0 118 32":"0 0 32 32";return u().createElement("svg",i()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:s,className:d()("jetpack-logo",n),"aria-labelledby":"jetpack-logo-title"},r),u().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack")),u().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&&u().createElement(l.Fragment,null,u().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"}),u().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"}),u().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"}),u().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"}),u().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"}),u().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"}),u().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"})))}}o()(f,"propTypes",{className:c().string,width:c().number,height:c().number,showText:c().bool,logoColor:c().string}),o()(f,"defaultProps",{className:"",height:32,showText:!0,logoColor:"#069e08"}),t.Z=f},37262:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s);n(79177);const a=e=>{const t=e.className+" jp-components-spinner",n={width:e.size,height:e.size,fontSize:e.size,borderTopColor:e.color},r={borderTopColor:e.color,borderRightColor:e.color};return i().createElement("div",{className:t},i().createElement("div",{className:"jp-components-spinner__outer",style:n},i().createElement("div",{className:"jp-components-spinner__inner",style:r})))};a.propTypes={color:o().string,className:o().string,size:o().number},a.defaultProps={color:"#FFFFFF",className:"",size:20},t.Z=a},71415:function(e,t,n){"use strict";function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let r;if("undefined"!=typeof window&&(r=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),r&&(n.calypso_env=r);const i=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+i}n.d(t,{Z:function(){return r}})},26251:function(e,t,n){var r=n(55246);let i={};try{i=n(92787)}catch{r.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),i={missingConfig:!0}}const s=e=>i.hasOwnProperty(e);e.exports={jetpackConfigHas:s,jetpackConfigGet:e=>{if(!s(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 i[e]}}},92672:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=n(31583),l=n(71631);const __=a.__,u=e=>{const{apiRoot:t,apiNonce:n,connectLabel:r,registrationNonce:s,redirectUri:o,from:a,autoTrigger:u}=e,{handleRegisterSite:p,isRegistered:d,isUserConnected:h,siteIsRegistering:f,userIsConnecting:m,registrationError:g}=(0,l.Z)({registrationNonce:s,redirectUri:o,apiRoot:t,apiNonce:n,autoTrigger:u,from:a});return i().createElement(i().Fragment,null,(!d||!h)&&i().createElement(c.Z,{label:r,onClick:p,displayError:!!g,isLoading:f||m}))};u.propTypes={connectLabel:o().string,apiRoot:o().string.isRequired,apiNonce:o().string.isRequired,from:o().string,redirectUri:o().string.isRequired,registrationNonce:o().string.isRequired,autoTrigger:o().bool},u.defaultProps={connectLabel:__("Connect","jetpack"),redirectUri:null,autoTrigger:!1},t.Z=u},39897:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(9818),c=n(65736),l=n(61591),u=n(32199),p=n(71631);const __=c.__,d=e=>{const{title:t,buttonLabel:n,apiRoot:r,apiNonce:s,registrationNonce:o,from:c,redirectUri:d,images:h,children:f,assetBaseUrl:m,autoTrigger:g}=e,{handleRegisterSite:v,isRegistered:b,isUserConnected:y,siteIsRegistering:k,userIsConnecting:w,registrationError:_}=(0,p.Z)({registrationNonce:o,redirectUri:d,apiRoot:r,apiNonce:s,autoTrigger:g,from:c}),E=(0,a.useSelect)((e=>e(u.t).getConnectionStatusIsFetching())),C=!b||!y,S=Boolean(_),j=k||w;return i().createElement(l.Z,{title:t,images:h,assetBaseUrl:m,isLoading:E,showConnectButton:C,buttonLabel:n,handleButtonClick:v,displayButtonError:S,buttonIsLoading:j},f)};d.propTypes={title:o().string,buttonLabel:o().string,apiRoot:o().string.isRequired,apiNonce:o().string.isRequired,registrationNonce:o().string.isRequired,from:o().string,redirectUri:o().string.isRequired,autoTrigger:o().bool,images:o().arrayOf(o().string),assetBaseUrl:o().string},d.defaultProps={title:__("Over 5 million WordPress sites are faster and more secure","jetpack"),buttonLabel:__("Set up Jetpack","jetpack"),images:[],redirectUri:null,autoTrigger:!1},t.Z=d},61591:function(e,t,n){"use strict";n.d(t,{E:function(){return d}});var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=n(71415),l=n(31583),u=n(69307),p=n(77865);n(16341);const __=a.__,d=(0,u.createInterpolateElement)(__("By clicking the button above, you agree to our <tosLink>Terms of Service</tosLink> and to <shareDetailsLink>share details</shareDetailsLink> with WordPress.com.","jetpack"),{tosLink:i().createElement("a",{href:(0,c.Z)("wpcom-tos"),rel:"noopener noreferrer",target:"_blank"}),shareDetailsLink:i().createElement("a",{href:(0,c.Z)("jetpack-support-what-data-does-jetpack-sync"),rel:"noopener noreferrer",target:"_blank"})}),h=e=>{const{title:t,images:n,children:r,assetBaseUrl:s,isLoading:o,showConnectButton:a,buttonLabel:c,handleButtonClick:u,displayButtonError:h,buttonIsLoading:f}=e;return i().createElement(p.Z,{title:t,assetBaseUrl:s,images:n,className:"jp-connection__connect-screen"+(o?" jp-connection__connect-screen__loading":"")},i().createElement("div",{className:"jp-connection__connect-screen__content"},r,a&&i().createElement(i().Fragment,null,i().createElement(l.Z,{label:c,onClick:u,displayError:h,isLoading:f}),i().createElement("div",{className:"jp-connection__connect-screen__tos"},d))))};h.propTypes={title:o().string,images:o().arrayOf(o().string),assetBaseUrl:o().string,isLoading:o().bool,showConnectButton:o().bool,buttonLabel:o().string.isRequired,handleButtonClick:o().func,displayButtonError:o().bool,buttonIsLoading:o().bool},h.defaultProps={showConnectButton:!0,isLoading:!1,buttonIsLoading:!1,displayButtonError:!1,handleButtonClick:()=>{}},t.Z=h},44254:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s);const a=e=>{const{images:t,assetBaseUrl:n}=e;if(!t.length)return null;const r=t.map(((e,t)=>i().createElement(i().Fragment,{key:t},i().createElement("img",{src:n+e,alt:""}))));return i().createElement("div",{className:"jp-connection__connect-screen__image-slider"},r)};a.propTypes={images:o().arrayOf(o().string).isRequired,assetBaseUrl:o().string},a.defaultProps={assetBaseUrl:""},t.Z=a},77865:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(81546),c=n(44254);n(91648);const l=e=>{const{title:t,children:n,className:r,assetBaseUrl:s,images:o}=e,l=o?.length;return i().createElement("div",{className:"jp-connection__connect-screen-layout"+(l?" jp-connection__connect-screen-layout__two-columns":"")+(r?" "+r:"")},i().createElement("div",{className:"jp-connection__connect-screen-layout__left"},i().createElement(a.Z,null),i().createElement("h2",null,t),n),l?i().createElement("div",{className:"jp-connection__connect-screen-layout__right"},i().createElement(c.Z,{images:o,assetBaseUrl:s})):null)};l.propTypes={title:o().string,className:o().string,images:o().arrayOf(o().string),assetBaseUrl:o().string},t.Z=l},73593:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=n(2332);const __=a.__,l=e=>{const{connectedPlugins:t,disconnectingPlugin:n}=e,s=(0,r.useMemo)((()=>{if(t){return Object.keys(t).map((e=>Object.assign({slug:e},t[e]))).filter((e=>n!==e.slug))}return[]}),[t,n]);return t&&s.length>0?i().createElement(i().Fragment,null,i().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is powering other plugins on your site. If you disconnect, these plugins will no longer work.","jetpack"))),i().createElement("div",{className:"jp-connection__disconnect-card__group"},s.map((e=>i().createElement(c.Z,{title:e.name}))))):null};l.PropTypes={connectedPlugins:o().object,disconnectingPlugin:o().string},t.Z=l},2332:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s);n(907);const a=e=>{const{title:t,value:n,description:r}=e;return i().createElement("div",{className:"jp-connection__disconnect-card card"},i().createElement("div",{className:"jp-connection__disconnect-card__card-content"},i().createElement("p",{className:"jp-connection__disconnect-card__card-headline"},t),(n||r)&&i().createElement("div",{className:"jp-connection__disconnect-card__card-stat-block"},i().createElement("span",{className:"jp-connection__disconnect-card__card-stat"},n),i().createElement("div",{className:"jp-connection__disconnect-card__card-description"},r))))};a.propTypes={title:o().string,value:o().string|o().number,description:o().number},t.Z=a},15628:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=n(55609),l=n(19570),u=n(80816),p=n(26251),d=(n(58187),n(80163)),h=n(71496),f=n(84130),m=n(55700);const __=a.__,g=e=>{const[t,n]=(0,r.useState)(!1),[s,o]=(0,r.useState)(!1),[a,g]=(0,r.useState)(!1),[v,b]=(0,r.useState)(!1),[y,k]=(0,r.useState)(!1),[w,_]=(0,r.useState)(!1),{apiRoot:E,apiNonce:C,connectedPlugins:S,title:j,pluginScreenDisconnectCallback:M,onDisconnected:x,onError:N,disconnectStepComponent:A,context:O,connectedUser:T,connectedSiteId:P,isOpen:I,onClose:R}=e;let U="";(0,p.jetpackConfigHas)("consumer_slug")&&(U=(0,p.jetpackConfigGet)("consumer_slug"));const Z=(0,r.useMemo)((()=>({context:O,plugin:U})),[O,U]);(0,r.useEffect)((()=>{l.ZP.setApiRoot(E),l.ZP.setApiNonce(C)}),[E,C]),(0,r.useEffect)((()=>{T&&T.ID&&T.login&&u.Z.initialize(T.ID,T.login)}),[T,T.ID,T.login]),(0,r.useEffect)((()=>{I&&u.Z.tracks.recordEvent("jetpack_disconnect_dialog_open",Z)}),[I,Z]),(0,r.useEffect)((()=>{I&&(s?!s||v||y?v&&!y?u.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"survey"},Z)):y&&u.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"thank_you"},Z)):u.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect_confirm"},Z)):u.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect"},Z)))}),[I,s,v,y,Z]);const D=(0,r.useCallback)((()=>{l.ZP.disconnectSite().then((()=>{n(!1),o(!0)})).catch((e=>{n(!1),g(e),N&&N(e)}))}),[n,o,g,N]),L=(0,r.useCallback)(((e,t)=>{_(!0),fetch("https://public-api.wordpress.com/wpcom/v2/marketing/feedback-survey",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{if(!0!==e.success)throw new Error("Survey endpoint returned error code "+e.code);u.Z.tracks.recordEvent("jetpack_disconnect_survey_submit",t),k(!0),_(!1)})).catch((e=>{u.Z.tracks.recordEvent("jetpack_disconnect_survey_error",Object.assign({},{error:e.message},t)),k(!0),_(!1)}))}),[_,k]),z=(0,r.useCallback)((e=>{e&&e.preventDefault(),g(!1),n(!0),"plugins"!==O?D():M&&M(e)}),[g,n,M,O,D]),B=(0,r.useCallback)((()=>T.ID&&P),[T,P]),F=(0,r.useCallback)(((e,t,n)=>{if(n&&n.preventDefault(),!B())return void k(!0);const r={site_id:P,user_id:T.ID,survey_id:"jetpack-plugin-disconnect",survey_responses:{"why-cancel":{response:e,text:t||null}}},i=Object.assign({},Z,{disconnect_reason:e});L(r,i)}),[L,k,B,P,T,Z]),V=(0,r.useCallback)((e=>{e&&e.preventDefault(),x&&x(),R()}),[x,R]),q=(0,r.useCallback)((e=>{e&&e.preventDefault(),b(!0)}),[b]);return i().createElement(i().Fragment,null,I&&i().createElement(c.Modal,{title:"",contentLabel:j,aria:{labelledby:"jp-connection__disconnect-dialog__heading"},onRequestClose:R,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,isDismissible:!1,className:"jp-connection__disconnect-dialog"+(s?" jp-connection__disconnect-dialog__success":"")},s?!s||v||y?v&&!y?i().createElement(f.Z,{isSubmittingFeedback:w,onFeedBackProvided:F,onExit:V}):y?i().createElement(m.Z,{onExit:V}):void 0:i().createElement(h.Z,{canProvideFeedback:B(),onProvideFeedback:q,onExit:V}):i().createElement(d.Z,{title:j,connectedPlugins:S,disconnectStepComponent:A,isDisconnecting:t,closeModal:R,onDisconnect:z,disconnectError:a,context:O,disconnectingPlugin:U})))};g.propTypes={apiRoot:o().string.isRequired,apiNonce:o().string.isRequired,title:o().string,onDisconnected:o().func,onError:o().func,context:o().string,connectedPlugins:o().object,pluginScreenDisconnectCallback:o().func,disconnectStepComponent:o().element,connectedUser:o().object,connectedSiteId:o().number,isOpen:o().bool,onClose:o().func},g.defaultProps={title:__("Are you sure you want to disconnect?","jetpack"),context:"jetpack-dashboard",connectedUser:{}},t.Z=g},71496:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(69307),c=n(65736),l=n(55609),u=n(78310),p=n(62042);const __=c.__,d=e=>{const{onExit:t,canProvideFeedback:n,onProvideFeedback:r}=e;return i().createElement("div",{className:"jp-connection__disconnect-dialog__content"},i().createElement(u.Z,{icon:"unlink",imageUrl:p}),i().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy jp-connection__disconnect-dialog__step-copy--narrow"},i().createElement("h1",null,(0,a.createInterpolateElement)(__("Jetpack has been <br/>successfully disconnected.","jetpack"),{br:i().createElement("br",null)})),n&&i().createElement(i().Fragment,null,i().createElement("p",null,__("We’re sorry to see you go. Here at Jetpack, we’re always striving to provide the best experience for our customers. Please take our short survey (2 minutes, promise).","jetpack")),i().createElement("p",null,i().createElement(l.Button,{isPrimary:!0,onClick:r,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Help us improve","jetpack"))),i().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("No thank you","jetpack"))),!n&&i().createElement(i().Fragment,null,i().createElement("p",null,i().createElement(l.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack"))))))};d.PropTypes={onExit:o().func,onProvideFeedback:o().func,canProvideFeedback:o().bool},t.Z=d},80163:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(69307),o=n(65736),a=n(71415),c=n(55609),l=n(11268),u=n.n(l),p=n(73593);const __=o.__,d=e=>{const{title:t,isDisconnecting:n,onDisconnect:r,disconnectError:o,disconnectStepComponent:l,connectedPlugins:u,disconnectingPlugin:d,closeModal:h,context:f}=e;return i().createElement(i().Fragment,null,i().createElement("div",{className:"jp-connection__disconnect-dialog__content"},i().createElement("h1",{id:"jp-connection__disconnect-dialog__heading"},t),i().createElement(p.Z,{connectedPlugins:u,disconnectingPlugin:d}),l,(()=>{if(!u&&!l)return i().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering multiple products on your site.","jetpack"),i().createElement("br",null),__("Once you disconnect Jetpack, these will no longer work.","jetpack")))})()),i().createElement("div",{className:"jp-connection__disconnect-dialog__actions"},i().createElement("div",{className:"jp-row"},i().createElement("div",{className:"lg-col-span-7 md-col-span-8 sm-col-span-4"},i().createElement("p",null,(0,s.createInterpolateElement)(__("<strong>Need help?</strong> Learn more about the <jpConnectionInfoLink>Jetpack connection</jpConnectionInfoLink> or <jpSupportLink>contact Jetpack support</jpSupportLink>.","jetpack"),{strong:i().createElement("strong",null),jpConnectionInfoLink:i().createElement("a",{href:(0,a.Z)("why-the-wordpress-com-connection-is-important-for-jetpack"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"}),jpSupportLink:i().createElement("a",{href:(0,a.Z)("jetpack-support"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"})}))),i().createElement("div",{className:"jp-connection__disconnect-dialog__button-wrap lg-col-span-5 md-col-span-8 sm-col-span-4"},i().createElement(c.Button,{isPrimary:!0,disabled:n,onClick:h,className:"jp-connection__disconnect-dialog__btn-dismiss"},__("Stay connected","jetpack")),(()=>{let e=__("Disconnect","jetpack");return n?e=__("Disconnecting…","jetpack"):"plugins"===f&&(e=__("Disconnect and Deactivate","jetpack")),i().createElement(c.Button,{isPrimary:!0,disabled:n,onClick:r,className:"jp-connection__disconnect-dialog__btn-disconnect"},e)})())),o&&i().createElement("p",{className:"jp-connection__disconnect-dialog__error"},o)))};d.propTypes={title:u().string,isDisconnecting:u().bool,onDisconnect:u().func,disconnectError:u().bool,disconnectStepComponent:u().elementType,connectedPlugins:u().array,disconnectingPlugin:u().string,closeModal:u().func,context:u().string},t.Z=d},84130:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=(n(85731),n(71194));const __=a.__,l=e=>{const{onExit:t,onFeedBackProvided:n,isSubmittingFeedback:r}=e;return i().createElement("div",{className:"jp-connection__disconnect-dialog__content"},i().createElement("h1",null,__("Before you go, help us improve Jetpack","jetpack")),i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Let us know what didn‘t work for you","jetpack")),i().createElement(c.Z,{onSubmit:n,isSubmittingFeedback:r}),i().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("Skip for now","jetpack")))};l.PropTypes={onExit:o().func,onFeedBackProvided:o().func,isSubmittingFeedback:o().bool},t.Z=l},55700:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(78310),c=n(65736),l=n(55609),u=n(69307),p=n(90724);const __=c.__,d=e=>{const{onExit:t}=e;return i().createElement("div",{className:"jp-connection__disconnect-dialog__content"},i().createElement(a.Z,{format:"vertical",imageUrl:p}),i().createElement("div",{className:"jp-connection__disconnect-dialog__copy"},i().createElement("h1",null,__("Thank you!","jetpack")),i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},(0,u.createInterpolateElement)(__("Your answer has been submitted. <br/>Thanks for your input on how we can improve Jetpack.","jetpack"),{br:i().createElement("br",null)})),i().createElement(l.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack"))))};d.PropTypes={onExit:o().func,assetBaseUrl:o().string},t.Z=d},71194:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(55609),c=n(65736),l=n(87215);const __=c.__,u=e=>{const{onSubmit:t,isSubmittingFeedback:n}=e,[s,o]=(0,r.useState)(),[c,u]=(0,r.useState)(),p=[{id:"troubleshooting",answerText:__("Troubleshooting - I'll be reconnecting afterwards.","jetpack")},{id:"not-working",answerText:__("I can't get it to work.","jetpack")},{id:"slowed-down-site",answerText:__("It slowed down my site.","jetpack")},{id:"buggy",answerText:__("It's buggy.","jetpack")},{id:"what-does-it-do",answerText:__("I don't know what it does.","jetpack")}],d="another-reason",h=(0,r.useCallback)((()=>{t(s,s===d?c:"")}),[t,d,c,s]),f=(0,r.useCallback)((e=>{const t=e.target.value;e.stopPropagation(),u(t)}),[u]),m=e=>e===s?"jp-connect__disconnect-survey-card--selected":"",g=(0,r.useCallback)(((e,t)=>{switch(t.key){case"Enter":case"Space":case"Spacebar":case" ":o(e)}}),[o]);return i().createElement(i().Fragment,null,i().createElement("div",{className:"jp-connection__disconnect-dialog__survey"},p.map((e=>i().createElement(l.Z,{id:e.id,onClick:o,onKeyDown:g,className:"card jp-connect__disconnect-survey-card "+m(e.id)},i().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},e.answerText)))),i().createElement(l.Z,{id:d,onClick:o,onKeyDown:g,className:"card jp-connect__disconnect-survey-card "+m(d)},i().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},__("Other:","jetpack")," ",i().createElement("input",{placeholder:__("share your experience","jetpack"),className:"jp-connect__disconnect-survey-card__input",type:"text",value:c,onChange:f,maxLength:1e3})))),i().createElement("p",null,i().createElement(a.Button,{disabled:!s||n,isPrimary:!0,onClick:h,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},n?__("Submitting…","jetpack"):__("Submit Feedback","jetpack",0))))};u.PropTypes={onSubmit:o().func,isSubmittingFeedback:o().bool},t.Z=u},87215:function(e,t,n){"use strict";var r=n(99196),i=n.n(r);n(85731);t.Z=e=>{const{id:t,onClick:n,onKeyDown:s,children:o,className:a}=e,c=(0,r.useCallback)((()=>{n(t)}),[t,n]),l=(0,r.useCallback)((e=>{s(t,e)}),[t,s]);return i().createElement("div",{tabIndex:"0",role:"button",onClick:c,onKeyDown:l,className:"card jp-connect__disconnect-survey-card "+a},o)}},71631:function(e,t,n){"use strict";var r=n(99196),i=n(9818),s=n(19570),o=n(32199);t.Z=e=>{let{registrationNonce:t,redirectUri:n,apiRoot:a,apiNonce:c,autoTrigger:l,from:u}=e;const{registerSite:p,connectUser:d}=(0,i.useDispatch)(o.t),h=(0,i.useSelect)((e=>e(o.t).getRegistrationError())),{siteIsRegistering:f,userIsConnecting:m,isRegistered:g,isUserConnected:v}=(0,i.useSelect)((e=>({siteIsRegistering:e(o.t).getSiteIsRegistering(),userIsConnecting:e(o.t).getUserIsConnecting(),...e(o.t).getConnectionStatus()}))),b=()=>d({from:u}),y=e=>{e&&e.preventDefault(),g?b():p({registrationNonce:t,redirectUri:n}).then((()=>{b()}))};return(0,r.useEffect)((()=>{s.ZP.setApiRoot(a),s.ZP.setApiNonce(c)}),[a,c]),(0,r.useEffect)((()=>{!l||f||m||y()}),[]),{handleRegisterSite:y,handleConnectUser:b,isRegistered:g,isUserConnected:v,siteIsRegistering:f,userIsConnecting:m,registrationError:h}}},66973:function(e,t,n){"use strict";n.d(t,{i6:function(){return r},LI:function(){return i},r7:function(){return s},N4:function(){return o},qV:function(){return a},T1:function(){return c},TS:function(){return l},ZP:function(){return v}});const r="SET_CONNECTION_STATUS",i="SET_CONNECTION_STATUS_IS_FETCHING",s="SET_SITE_IS_REGISTERING",o="SET_USER_IS_CONNECTING",a="SET_REGISTRATION_ERROR",c="CLEAR_REGISTRATION_ERROR",l="SET_AUTHORIZATION_URL",u="CONNECT_USER",p=e=>({type:r,connectionStatus:e}),d=e=>({type:s,isRegistering:e}),h=e=>({type:o,isConnecting:e}),f=e=>({type:a,registrationError:e}),m=()=>({type:c}),g=e=>({type:l,authorizationUrl:e});const v={setConnectionStatus:p,setConnectionStatusIsFetching:e=>({type:i,isFetching:e}),fetchConnectionStatus:()=>({type:"FETCH_CONNECTION_STATUS"}),fetchAuthorizationUrl:e=>({type:"FETCH_AUTHORIZATION_URL",redirectUri:e}),setSiteIsRegistering:d,setUserIsConnecting:h,setRegistrationError:f,clearRegistrationError:m,setAuthorizationUrl:g,registerSite:function*(e){let{registrationNonce:t,redirectUri:n}=e;yield m(),yield d(!0);try{const e=yield{type:"REGISTER_SITE",registrationNonce:t,redirectUri:n};return yield p({isRegistered:!0}),yield g(e.authorizeUrl),yield d(!1),Promise.resolve(e)}catch(e){return yield f(e),yield d(!1),Promise.reject(e)}},connectUser:function*(){let{from:e,redirectFunc:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};yield h(!0),yield{type:u,from:e,redirectFunc:t}}}},84213:function(e,t,n){"use strict";var r=n(19570),i=n(9818),s=n(32199);const o=(0,i.createRegistryControl)((e=>{let{resolveSelect:t}=e;return function(){let{from:e,redirectFunc:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(((r,i)=>{t(s.t).getAuthorizationUrl().then((t=>{const i=n||(e=>window.location.assign(e)),s=new URL(t);e&&s.searchParams.set("from",encodeURIComponent(e));const o=s.toString();i(o),r(o)})).catch((e=>{i(e)}))}))}}));t.Z={FETCH_CONNECTION_STATUS:()=>new Promise(((e,t)=>{r.ZP.fetchSiteConnectionStatus().then((t=>e(t))).catch((e=>t(e)))})),FETCH_AUTHORIZATION_URL:e=>{let{redirectUri:t}=e;return r.ZP.fetchAuthorizationUrl(t)},REGISTER_SITE:e=>{let{registrationNonce:t,redirectUri:n}=e;return r.ZP.registerSite(t,n)},CONNECT_USER:o}},81147:function(e,t,n){"use strict";var r=n(9818),i=n(66973);const s=(0,r.combineReducers)({connectionStatus:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.i6?{...e,...t.connectionStatus}:e},connectionStatusIsFetching:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===i.LI?t.isFetching:e},siteIsRegistering:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===i.r7?t.isRegistering:e},userIsConnecting:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===i.N4?t.isConnecting:e},registrationError:(e,t)=>{switch(t.type){case i.T1:return!1;case i.qV:return t.registrationError;default:return e}},authorizationUrl:(e,t)=>t.type===i.TS?t.authorizationUrl:e});t.Z=s},28310:function(e,t,n){"use strict";var r=n(9818),i=n(66973),s=n(32199);const o={*getConnectionStatus(){yield i.ZP.setConnectionStatusIsFetching(!0);const e=yield i.ZP.fetchConnectionStatus();return yield i.ZP.setConnectionStatusIsFetching(!1),i.ZP.setConnectionStatus(e)},getAuthorizationUrl:{isFulfilled:function(e){const t=Boolean(e.authorizationUrl);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];const a=(0,r.select)(s.t).hasFinishedResolution("getAuthorizationUrl",i);return t&&!a&&(0,r.dispatch)(s.t).finishResolution("getAuthorizationUrl",i),t},*fulfill(e){const t=yield i.ZP.fetchAuthorizationUrl(e);yield i.ZP.setAuthorizationUrl(t.authorizeUrl)}}};t.Z={...o}},50387:function(e,t){"use strict";const n={getConnectionStatus:e=>e.connectionStatus||{},getConnectionStatusIsFetching:e=>e.connectionStatusIsFetching||!1,getSiteIsRegistering:e=>e.siteIsRegistering||!1,getUserIsConnecting:e=>e.userIsConnecting||!1,getRegistrationError:e=>e.registrationError||!1,getAuthorizationUrl:e=>e.authorizationUrl||!1};t.Z=n},25333:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(9818);class o{static mayBeInit(e,t){null===o.store&&(o.store=(0,s.createReduxStore)(e,t),(0,s.register)(o.store),o.resolveResolvers(e,t.initialState))}static resolveResolvers(e,t){t.connectionStatus&&t.connectionStatus.hasOwnProperty("isRegistered")&&(0,s.dispatch)(e).finishResolution("getConnectionStatus",[])}}i()(o,"store",null),t.Z=o},32199:function(e,t,n){"use strict";n.d(t,{t:function(){return l}});var r=n(81147),i=n(66973),s=n(50387),o=n(25333),a=n(28310),c=n(84213);const l="jetpack-connection";o.Z.mayBeInit(l,{reducer:r.Z,actions:i.ZP,selectors:s.Z,resolvers:a.Z,controls:c.Z,initialState:window.JP_CONNECTION_INITIAL_STATE||{}})},61769:function(e,t,n){"use strict";var r=n(55609),i=n(69307),s=n(81546),o=n(37262),a=n(65736),c=n(11268),l=n.n(c),u=n(99196),p=n.n(u),d=n(22607),h=n(28503);const __=a.__,f=e=>{const{activateLicense:t,isActivating:n,license:a,licenseError:c,onLicenseChange:l}=e,u=null!=c;return p().createElement("div",{className:"jp-license-activation-screen-controls"},p().createElement("div",{className:"jp-license-activation-screen-controls--content"},p().createElement(s.Z,{showText:!1,height:48}),p().createElement("h1",null,__("Add a license key","jetpack")),p().createElement("p",null,(0,i.createInterpolateElement)(__("<strong>Check your email</strong> for your license key. You should have received it after making your purchase.","jetpack"),{strong:p().createElement("strong",null)})),p().createElement(r.TextControl,{className:u?"jp-license-activation-screen-controls--license-field-with-error":"jp-license-activation-screen-controls--license-field",label:__("License key","jetpack"),value:a,onChange:l,disabled:n}),u&&p().createElement("div",{className:"jp-license-activation-screen-controls--license-field-error"},p().createElement(d.Z,{icon:h.Z}),p().createElement("span",null,c))),p().createElement("div",null,p().createElement(r.Button,{className:"jp-license-activation-screen-controls--button",onClick:t},n?p().createElement(o.Z,null):__("Activate","jetpack"))))};f.propTypes={activateLicense:l().func.isRequired,isActivating:l().bool.isRequired,license:l().string.isRequired,licenseError:l().string,onLicenseChange:l().func.isRequired,siteUrl:l().string.isRequired},t.Z=f},46224:function(e,t,n){"use strict";var r=n(65736),i=n(69307),s=n(71415),o=n(11268),a=n.n(o),c=n(99196),l=n.n(c);const __=r.__,u=e=>{const{imageUrl:t,showSupportLink:n=!1}=e;return l().createElement("div",{className:"jp-license-activation-screen-illustration"},l().createElement("div",{className:"jp-license-activation-screen-illustration--wrapper"},l().createElement("img",{className:"jp-license-activation-screen-illustration--img",src:t,alt:""})),n&&l().createElement("p",{className:"jp-license-activation-screen-illustration--support-link"},(0,i.createInterpolateElement)(__("Do you need help? <a>Contact us.</a>","jetpack"),{a:l().createElement("a",{href:(0,s.Z)("jetpack-support")})})))};u.propTypes={imageUrl:a().string.isRequired,showSupportLink:a().bool},t.Z=u},78079:function(e,t,n){"use strict";var r=n(81546),i=n(11268),s=n.n(i),o=n(99196),a=n.n(o),c=n(80461),l=n(77919),u=n(57590);const p=e=>{const{productId:t,siteRawUrl:n,siteAdminUrl:i,currentRecommendationsStep:s}=e;return a().createElement("div",{className:"jp-license-activation-screen-success-info"},a().createElement("div",{className:"jp-license-activation-screen-success-info--content"},a().createElement(r.Z,{showText:!1,height:48})),a().createElement(c.Z,{siteRawUrl:n,productId:t}),a().createElement("div",{className:"jp-license-activation-screen-success-info--buttons"},a().createElement(u.c,{currentRecommendationsStep:s,siteAdminUrl:i}),a().createElement(l.o,{siteRawUrl:n,productId:t})))};p.propTypes={siteRawUrl:s().string,productId:s().number,siteAdminUrl:s().string,currentRecommendationsStep:s().string},t.Z=p},57590:function(e,t,n){"use strict";n.d(t,{c:function(){return l}});var r=n(65736),i=n(55609),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a);const __=r.__,l=e=>{const{currentRecommendationsStep:t,siteAdminUrl:n}=e;return"not-started"===t?c().createElement(i.Button,{className:"jp-license-activation-screen-success-info--button",href:n+"admin.php?page=jetpack#/recommendations"},__("Configure my site","jetpack")):c().createElement(i.Button,{className:"jp-license-activation-screen-success-info--button",href:n+"admin.php?page=jetpack#/my-plan"},__("View my plans","jetpack"))};l.propTypes={siteAdminUrl:o().string.isRequired,currentRecommendationsStep:o().string}},80461:function(e,t,n){"use strict";var r=n(65736),i=n(69307),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(49067);const __=r.__,u=e=>{const{productId:t,siteRawUrl:n}=e,r=`https://cloud.jetpack.com/landing/${n}`,s=(0,l.F)(t),o={jetpack_anti_spam:{title:__("Your Jetpack Anti-spam is active!","jetpack"),text:__("We'll take care of everything from here. Now you can enjoy a spam-free site!","jetpack")},jetpack_backup:{title:__("Your Jetpack Backup is active!","jetpack"),text:(0,i.createInterpolateElement)(__("You can see your backups and restore your site on <a>cloud.jetpack.com</a>. If you ever lose access to your site, you can restore it there.","jetpack"),{a:c().createElement("a",{href:r})})},jetpack_complete:{title:__("Your Jetpack Complete is active!","jetpack"),text:(0,i.createInterpolateElement)(__("You can see your backups, security scans, and restore your site on <a>cloud.jetpack.com</a>. If you ever lose access to your site, you can restore it there.","jetpack"),{a:c().createElement("a",{href:r})})},jetpack_scan:{title:__("Your Jetpack Scan is active!","jetpack"),text:(0,i.createInterpolateElement)(__("You can see your security scans on <a>cloud.jetpack.com</a>.","jetpack"),{a:c().createElement("a",{href:r})})},jetpack_search:{title:__("Your Jetpack Search is active!","jetpack"),text:__("Next, we'll help you customize your Search experience for your visitors.","jetpack")},jetpack_security:{title:__("Your Jetpack Security is active!","jetpack"),text:(0,i.createInterpolateElement)(__("You can see your backups, security scans, and restore your site on <a>cloud.jetpack.com</a>. If you ever lose access to your site, you can restore it there.","jetpack"),{a:c().createElement("a",{href:r})})},jetpack_videopress:{title:__("Your Jetpack Videopress is active!","jetpack"),text:__("Experience high-quality, ad-free video built specifically for WordPress.","jetpack")},default:{title:__("Your product is active!","jetpack"),text:__("You're all set!","jetpack")}};return c().createElement("div",{className:"jp-license-activation-screen-success-info--product-details"},c().createElement("h1",null,o[s].title," ",String.fromCodePoint(127881)),c().createElement("p",null,o[s].text))};u.propTypes={dashboardUrl:o().string,productId:o().number},t.Z=u},77919:function(e,t,n){"use strict";n.d(t,{o:function(){return p}});var r=n(65736),i=n(55609),s=n(71415),o=n(11268),a=n.n(o),c=n(99196),l=n.n(c),u=n(49067);const __=r.__,p=e=>{const{productId:t,siteRawUrl:n}=e,r={jetpack_backup:{text:__("View latest backup","jetpack"),redirectSource:"jetpack-license-activation-success-backup"},jetpack_complete:{text:__("View latest backup","jetpack"),redirectSource:"jetpack-license-activation-success-backup"},jetpack_scan:{text:__("View scan results","jetpack"),redirectSource:"jetpack-license-activation-success-scan"},jetpack_search:{text:__("Configure search","jetpack"),redirectSource:"jetpack-license-activation-success-search"},jetpack_security:{text:__("View latest backup","jetpack"),redirectSource:"jetpack-license-activation-success-backup"},default:null}[(0,u.F)(t)];return l().createElement(l().Fragment,null,r&&l().createElement(i.ExternalLink,{className:"jp-license-activation-screen-success-info--external-link",href:(0,s.Z)(r.redirectSource,{site:n})},r.text))};p.propTypes={siteRawUrl:a().string,productId:a().number}},18922:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(19570),c=n(65736),l=n(61769),u=n(46224),p=n(78079);const __=c.__,d=e=>{const{assetBaseUrl:t,lockImage:n,onActivationSuccess:s=(()=>null),siteRawUrl:o,startingLicense:c,successImage:d,siteAdminUrl:h,currentRecommendationsStep:f}=e,[m,g]=(0,r.useState)(null!=c?c:""),[v,b]=(0,r.useState)(null),[y,k]=(0,r.useState)(!1),[w,_]=(0,r.useState)(null),E=(0,r.useCallback)((()=>y?Promise.resolve():m.length<1?(b(__("This is not a valid license key. Please try again.","jetpack")),Promise.resolve()):(b(null),k(!0),a.ZP.attachLicenses([m]).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"))})(e);_(t),s(t)})).catch((e=>{b(e.message)})).finally((()=>{k(!1)})))),[y,m,s]);return null!==w?i().createElement("div",{className:"jp-license-activation-screen"},i().createElement(p.Z,{siteRawUrl:o,productId:w,siteAdminUrl:h,currentRecommendationsStep:f}),i().createElement(u.Z,{imageUrl:t+d,showSupportLink:!1})):i().createElement("div",{className:"jp-license-activation-screen"},i().createElement(l.Z,{license:m,onLicenseChange:g,activateLicense:E,siteUrl:o,licenseError:v,isActivating:y}),i().createElement(u.Z,{imageUrl:t+n,showSupportLink:!0}))};d.propTypes={assetBaseUrl:o().string.isRequired,lockImage:o().string.isRequired,onActivationSuccess:o().func,siteRawUrl:o().string.isRequired,startingLicense:o().string,successImage:o().string.isRequired,siteAdminUrl:o().string.isRequired,currentRecommendationsStep:o().string},t.Z=d},49067:function(e,t,n){"use strict";n.d(t,{F:function(){return i}});const r={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]};function i(e){return Object.keys(r).find((t=>r[t].includes(e)))||"default"}},77909:function(e,t,n){"use strict";n.d(t,{I:function(){return r.Z}});var r=n(18922)},6426:function(e,t,n){"use strict";var r=n(89105),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(71415),u=n(31583),p=n(39897),d=n(65736);const __=d.__,h=e=>{const{apiNonce:t,apiRoot:n,connectionStatus:r,partnerCoupon:a,assetBaseUrl:c,registrationNonce:h,siteRawUrl:f,tracksUserData:m,analytics:g}=e;(0,s.useEffect)((()=>{m&&"object"==typeof g&&g.tracks.recordEvent("jetpack_partner_coupon_redeem_view",{coupon:a.coupon_code,partner:a.partner.prefix,preset:a.preset,connected:r.isRegistered?"yes":"no"})}),[g,r,a,m]);const v=(0,s.useCallback)((()=>{m&&"object"==typeof g&&g.tracks.recordEvent("jetpack_partner_coupon_redeem_click",{coupon:a.coupon_code,partner:a.partner.prefix,preset:a.preset,connected:r.isRegistered?"yes":"no"}),window.location.href=(0,l.Z)("jetpack-plugin-partner-coupon-checkout",{path:a.product.slug,site:f,query:`coupon=${a.coupon_code}`})}),[g,r,a,f,m]),b=i()("jetpack-partner-coupon-redeem",{"jetpack-partner-coupon-redeem--connected":!!r.hasConnectedOwner});return o().createElement("div",{className:b},o().createElement(p.Z,{apiNonce:t,registrationNonce:h,apiRoot:n,images:["/images/connect-right-partner-backup.png"],assetBaseUrl:c,from:"jetpack-partner-coupon",title:(0,d.sprintf)(
+/* translators: %s: Jetpack partner name. */
+__("Welcome to Jetpack %s traveler!","jetpack"),a.partner.name),buttonLabel:(0,d.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Set up & redeem %s","jetpack"),a.product.title),redirectUri:`admin.php?page=jetpack&partnerCoupon=${a.coupon_code}`,connectionStatus:r},o().createElement("p",null,(0,d.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Redeem your coupon and get started with %s for free the first year!","jetpack"),a.product.title)),o().createElement("ul",null,a.product.features.map(((e,t)=>o().createElement("li",{key:t},e)))),r.hasConnectedOwner&&o().createElement(u.Z,{label:(0,d.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Redeem %s","jetpack"),a.product.title),onClick:v})))};h.propTypes={apiRoot:c().string.isRequired,apiNonce:c().string.isRequired,assetBaseUrl:c().string.isRequired,connectionStatus:c().object.isRequired,partnerCoupon:c().object.isRequired,registrationNonce:c().string.isRequired,siteRawUrl:c().string.isRequired,tracksUserData:c().bool.isRequired,analytics:c().object},t.Z=h},51438:function(e,t,n){"use strict";n.d(t,{e:function(){return r.Z}});var r=n(6426)},69641:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(89105),p=n.n(u),d=n(65736),h=n(71415),f=n(60742),m=n(51117),g=n(88872),v=n(41147);const __=d.__;class b extends s.Component{render(){const{inOfflineMode:e}=this.props,t=__("Jetpack keeps a complete record of everything that happens on your site, taking the guesswork out of site management, debugging, and repair.","jetpack");return o().createElement("div",{className:"jp-dash-item__interior"},o().createElement(m.Z,{label:__("Activity","jetpack"),isModule:!1,className:p()({"jp-dash-item__is-inactive":e}),pro:!1},o().createElement("p",{className:"jp-dash-item__description"},e?__("Unavailable in Offline Mode.","jetpack"):t)),o().createElement(f.Z,{key:"view-activity",className:"jp-dash-item__manage-in-wpcom",compact:!0,href:(0,h.Z)("calypso-activity-log",{site:this.props.siteRawUrl})},__("View site activity","jetpack")))}}i()(b,"propTypes",{inOfflineMode:c().bool.isRequired,siteRawUrl:c().string.isRequired,sitePlan:c().object.isRequired}),i()(b,"defaultProps",{inOfflineMode:!1,siteRawUrl:"",sitePlan:""}),t.Z=(0,l.$j)((e=>({sitePlan:(0,g.UL)(e),inOfflineMode:(0,v.Ex)(e)})))(b)},94109:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(71415),f=n(11973),m=n(60742),g=n(21094),v=n(51117),b=n(75395),y=n(88872),k=n(66552),w=n(61161),_=n(81200),E=n(41147),C=n(85253),S=n(19570),j=n(2795);const __=d.__,_x=d._x;class M extends a.Component{constructor(){super(...arguments),i()(this,"onActivateClick",(()=>(this.trackActivateClick(),this.props.createNotice("is-info",__("Activating Akismet…","jetpack"),{id:"activating-akismet"}),S.ZP.activateAkismet().then((()=>{this.props.removeNotice("activating-akismet"),window.location.href=this.props.siteAdminUrl+"admin.php?page=akismet-key-config"})).catch((()=>{this.props.removeNotice("activating-akismet"),this.props.createNotice("is-error",__("Could not activate Akismet.","jetpack"),{id:"activate-akismet-failure"})})),!1)))}trackActivateClick(){f.Z.tracks.recordJetpackClick({type:"activate-link",target:"at-a-glance",feature:"anti-spam"})}getContent(){const e=this.props.akismetData,t=__("Anti-spam","jetpack"),n="jetpack_free"===(0,u.get)(this.props.sitePlan,"product_slug","jetpack_free"),r={text:__("Jetpack Anti-spam powered by Akismet. Comments and contact form submissions are checked against our global database of spam.","jetpack"),link:"https://akismet.com/",privacyLink:"https://automattic.com/privacy/"},i=()=>{const e=(0,p.createInterpolateElement)(__("Already have a key? <a>Activate Akismet</a>","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.onActivateClick})});return c().createElement(C.Z,{callToAction:__("Upgrade","jetpack"),title:__("Automatically clear spam from comments and forms.","jetpack"),description:e,disableHref:"false",href:this.props.upgradeUrl,eventFeature:"akismet",path:"dashboard",plan:(0,_.o2)(_.V3),trackBannerDisplay:this.props.trackUpgradeButtonView})},s=()=>c().createElement(C.Z,{callToAction:__("Connect","jetpack"),title:__("Connect your WordPress.com account to upgrade and automatically clear spam from comments and forms","jetpack"),disableHref:"false",onClick:this.props.connectUser,eventFeature:"akismet",path:"dashboard",plan:(0,_.o2)(_.V3)}),o=()=>this.props.isOfflineMode?c().createElement(v.Z,{label:t,module:"akismet",support:r,pro:!0,className:"jp-dash-item__is-inactive"},c().createElement("p",{className:"jp-dash-item__description"},__("Unavailable in Offline Mode.","jetpack"))):this.props.hasConnectedOwner?i():s();if("N/A"===e)return c().createElement(v.Z,{label:t,module:"akismet",support:r,pro:!0},c().createElement("p",{className:"jp-dash-item__description"},__("Loading…","jetpack")));const a=!1!==this.props.sitePlan;if(n){if("not_installed"===e)return c().createElement(v.Z,{label:t,module:"akismet",support:r,className:"jp-dash-item__is-inactive",status:a?"pro-uninstalled":"no-pro-uninstalled-or-inactive",pro:!0,overrideContent:o()});if("not_active"===e)return c().createElement(v.Z,{label:t,module:"akismet",support:r,status:a?"pro-inactive":"no-pro-uninstalled-or-inactive",className:"jp-dash-item__is-inactive",pro:!0,overrideContent:o()});if("invalid_key"===e)return c().createElement(v.Z,{label:t,module:"akismet",support:r,className:"jp-dash-item__is-inactive",pro:!0,overrideContent:o()})}return["not_installed","not_active","invalid_key"].includes(e)?c().createElement(v.Z,{label:t,module:"akismet",support:r,className:"jp-dash-item__is-inactive",pro:!0},__("Your Jetpack plan provides anti-spam protection through Akismet. Click 'set up' to enable it on your site.","jetpack")):[c().createElement(v.Z,{key:"comment-moderation",label:t,module:"akismet",support:r,status:"is-working",pro:!0},(()=>"0"!==this.props.akismetData?c().createElement(c().Fragment,null,c().createElement("h2",{className:"jp-dash-item__count"},this.props.akismetData),c().createElement("p",{className:"jp-dash-item__description"},_x("Spam comments blocked.",'Example: "412 Spam comments blocked"',"jetpack"))):c().createElement("div",{className:"jp-dash-item__recently-activated"},c().createElement("p",{className:"jp-dash-item__description"},__("Jetpack and its Anti-spam currently monitor all comments on your site. Data will display here soon!","jetpack"))))()),!this.props.isOfflineMode&&c().createElement(m.Z,{key:"moderate-comments",className:"jp-dash-item__manage-in-wpcom",compact:!0,href:(0,h.Z)("calypso-comments-all",{site:this.props.siteRawUrl})},__("Moderate comments","jetpack"))]}render(){return c().createElement("div",{className:"jp-dash-item__interior"},c().createElement(j.Z,null),this.getContent())}}i()(M,"propTypes",{siteRawUrl:o().string.isRequired,siteAdminUrl:o().string.isRequired,trackUpgradeButtonView:o().func,akismetData:o().oneOfType([o().string,o().object]).isRequired,isOfflineMode:o().bool.isRequired,upgradeUrl:o().string.isRequired,hasConnectedOwner:o().bool.isRequired}),i()(M,"defaultProps",{siteRawUrl:"",siteAdminUrl:"",akismetData:"N/A",isOfflineMode:"",trackUpgradeButtonView:u.noop}),t.Z=(0,l.$j)((e=>({akismetData:(0,b.fU)(e),sitePlan:(0,y.UL)(e),isOfflineMode:(0,E.Ex)(e),upgradeUrl:(0,w.z)(e,"akismet"),nonce:(0,k.VY)(e),hasConnectedOwner:(0,E.it)(e)})),(e=>({createNotice:g.iI,removeNotice:g.qq,connectUser:()=>e((0,E.bL)())})))(M)},41445:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(71415),f=n(60742),m=n(51117),g=n(85253),v=n(39786),b=n(81200),y=n(61161),k=n(88872),w=n(61744),_=n(75395),E=n(41147),C=n(66552);const __=d.__,S=e=>c().createElement(m.Z,{label:__("Backup","jetpack"),module:e.feature||"backups",support:{text:__("Jetpack Backups allow you to easily restore or download a backup from a specific moment.","jetpack"),link:(0,h.Z)("jetpack-support-backup")},className:e.className,status:e.status,pro:!0,overrideContent:e.overrideContent},c().createElement("p",{className:"jp-dash-item__description"},e.content));class j extends a.Component{getVPContent(){const{sitePlan:e,isVaultPressInstalled:t,getOptionValue:n,siteRawUrl:r,vaultPressData:i}=this.props;return n("vaultpress")&&"success"===(0,u.get)(i,"code","")?S({className:"jp-dash-item__is-active",status:"is-working",content:c().createElement("span",null,(0,u.get)(i,"message","")," ",(0,p.createInterpolateElement)(__("<a>View backup details</a>.","jetpack"),{a:c().createElement("a",{href:(0,h.Z)("vaultpress-dashboard"),target:"_blank",rel:"noopener noreferrer"})}))}):(0,u.isEmpty)(e)?S({className:"",status:"",content:__("Loading…","jetpack")}):"jetpack_free"!==(0,u.get)(e,"product_slug","jetpack_free")?S({className:"jp-dash-item__is-inactive",status:t?"pro-inactive":"pro-uninstalled",content:(0,p.createInterpolateElement)(__("To automatically back up your entire site, please <a>install and activate</a> VaultPress.","jetpack"),{a:c().createElement("a",{href:(0,h.Z)("calypso-plugins-setup",{site:r,query:"only=backups"}),target:"_blank",rel:"noopener noreferrer"})})}):S({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",overrideContent:this.props.hasConnectedOwner?c().createElement(g.Z,{callToAction:__("Upgrade","jetpack"),title:__("Never worry about losing your site – automatic backups keep your content safe.","jetpack"),disableHref:"false",href:this.props.upgradeUrl,eventFeature:"backups",path:"dashboard",plan:(0,b.o2)(b.N_),trackBannerDisplay:this.props.trackUpgradeButtonView}):c().createElement(g.Z,{callToAction:__("Connect","jetpack"),title:__("Connect your WordPress.com account to upgrade and get automatic backups that keep your content safe.","jetpack"),disableHref:"false",onClick:this.props.connectUser,eventFeature:"backups",path:"dashboard",plan:(0,b.o2)(b.N_)})})}getRewindContent(){const{planClass:e,rewindStatus:t,siteRawUrl:n}=this.props,r=(e,t)=>c().createElement(f.Z,{compact:!0,key:"manage-backups",className:"jp-dash-item__manage-in-wpcom",href:e},t),i=e=>S({className:"jp-dash-item__is-active",status:"is-working",feature:"rewind",content:e});switch(t){case"provisioning":return c().createElement(c().Fragment,null,i(__("We are configuring your site's backups.","jetpack")));case"awaiting_credentials":return c().createElement(c().Fragment,null,i(__("You need to enter your server's credentials to finish the setup.","jetpack")),r((0,h.Z)("jetpack-backup-dash-credentials",{site:n}),__("Enter credentials","jetpack")));case"active":const t=(0,b.lq)(e)?__("We are backing up your site in real-time.","jetpack"):__("We are backing up your site daily.","jetpack");return c().createElement(c().Fragment,null,i(t),r((0,h.Z)("calypso-activity-log",{site:n,query:"group=rewind"}),__("View your site's backups","jetpack")))}return!1}renderFromRewindStatus(){return"unavailable"===this.props.rewindStatus&&"site_new"===this.props.rewindStatusReason?S({className:"jp-dash-item__is-inactive",status:"pro-inactive",content:__("Your site is new and may still be preparing backup configuration.","jetpack")}):"unavailable"===this.props.rewindStatus||""===this.props.rewindStatus?this.getVPContent():c().createElement("div",{className:"jp-dash-item"},this.getRewindContent())}render(){return this.props.showBackups?this.props.isOfflineMode?c().createElement("div",{className:"jp-dash-item__interior"},S({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",content:__("Unavailable in Offline Mode.","jetpack")})):c().createElement("div",null,c().createElement(v.Z,null),this.renderFromRewindStatus()):null}}i()(j,"propTypes",{siteRawUrl:o().string.isRequired,getOptionValue:o().func.isRequired,rewindStatus:o().string.isRequired,rewindStatusReason:o().string.isRequired,trackUpgradeButtonView:o().func,vaultPressData:o().any.isRequired,sitePlan:o().object.isRequired,isOfflineMode:o().bool.isRequired,isVaultPressInstalled:o().bool.isRequired,upgradeUrl:o().string.isRequired,hasConnectedOwner:o().bool.isRequired}),i()(j,"defaultProps",{siteRawUrl:"",getOptionValue:u.noop,vaultPressData:"",sitePlan:"",isOfflineMode:!1,isVaultPressInstalled:!1,rewindStatus:"",trackUpgradeButtonView:u.noop}),t.Z=(0,l.$j)((e=>{const t=(0,k.UL)(e);return{vaultPressData:(0,_.XK)(e),sitePlan:t,planClass:(0,k.b7)(e)?(0,b.sc)((0,k.Jz)(e).product_slug):(0,b.sc)(t.product_slug),isOfflineMode:(0,E.Ex)(e),isVaultPressInstalled:(0,w.P8)(e,"vaultpress/vaultpress.php"),showBackups:(0,C.xR)(e),upgradeUrl:(0,y.z)(e,"backup"),hasConnectedOwner:(0,E.it)(e)}}),(e=>({connectUser:()=>e((0,E.bL)())})))(j)},1927:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(65736),o=n(69307),a=n(55609),c=n(71415),l=n(11268),u=n.n(l),p=n(99196),d=n.n(p),h=n(44072),f=n(39007);const __=s.__,_x=s._x;class m extends p.Component{render(){return d().createElement(f.Z,{iconAlt:__("Plugin icon","jetpack"),iconSrc:h,pluginName:_x("Boost","The Jetpack Boost product name, without the Jetpack prefix","jetpack"),pluginFile:"jetpack-boost/jetpack-boost.php",pluginSlug:"jetpack-boost",pluginLink:this.props.siteAdminUrl+"admin.php?page=jetpack-boost",installOrActivatePrompt:(0,o.createInterpolateElement)(__("Improve your site’s performance and SEO in a few clicks with the free Jetpack Boost plugin.<br /><ExternalLink>Learn more.</ExternalLink>","jetpack"),{ExternalLink:d().createElement(a.ExternalLink,{href:(0,c.Z)("stats-nudges-boost-learn")}),br:d().createElement("br",null)})})}}i()(m,"propTypes",{siteAdminUrl:u().string.isRequired}),t.Z=m},78204:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(69307),l=n(65736),u=n(41147),p=n(66552),d=n(80125),h=n(81441),f=n(51117),m=n(22256),g=n(10958);const __=l.__,_x=l._x;class v extends s.Component{siteConnection(){let e="";return this.props.isOfflineMode?e=o().createElement("div",{className:"jp-connection-settings__info"},this.props.siteIcon?o().createElement("img",{width:"64",height:"64",className:"jp-connection-settings__site-icon",src:this.props.siteIcon,alt:""}):o().createElement(m.Z,{icon:"globe",size:64}),o().createElement("div",{className:"jp-connection-settings__text"},__("Your site is in Offline Mode, so it can not be connected to WordPress.com.","jetpack"))):!0===this.props.siteConnectionStatus&&(e=o().createElement("div",null,o().createElement("div",{className:"jp-connection-settings__info"},this.props.siteIcon?o().createElement("img",{width:"64",height:"64",className:"jp-connection-settings__site-icon",src:this.props.siteIcon,alt:""}):o().createElement(m.Z,{icon:"globe",size:64}),o().createElement("div",{className:"jp-connection-settings__text"},__("Your site is connected to WordPress.com.","jetpack"),this.props.isConnectionOwner&&o().createElement("span",{className:"jp-connection-settings__is-owner"},o().createElement("br",null),o().createElement("em",null,__("You are the Jetpack owner.","jetpack"))))),this.props.userCanDisconnectSite&&o().createElement("div",{className:"jp-connection-settings__actions"},o().createElement(h.Z,{asLink:!0,autoOpenInDisconnectRoute:!0})))),e}userConnection(){const e=this.props.isConnectionOwner?null:o().createElement(h.Z,{asLink:!0,connectUser:!0,from:"connection-settings"});let t="";return this.props.isOfflineMode?o().createElement("div",{className:"jp-connection-settings__info"},this.props.userGravatar?o().createElement("img",{alt:"gravatar",width:"64",height:"64",className:"jp-connection-settings__gravatar",src:this.props.userGravatar}):o().createElement(m.Z,{icon:"user",size:64}),o().createElement("div",{className:"jp-connection-settings__text"},__("The site is in Offline Mode, so you can not connect to WordPress.com.","jetpack"))):(t=this.props.isLinked?this.props.isFetchingUserData?__("Loading…","jetpack"):o().createElement("div",null,o().createElement("div",{className:"jp-connection-settings__info"},o().createElement("img",{alt:"gravatar",width:"64",height:"64",className:"jp-connection-settings__gravatar",src:this.props.wpComConnectedUser.avatar}),o().createElement("div",{className:"jp-connection-settings__text"},(0,c.createInterpolateElement)((0,l.sprintf)(
+/* translators: Placeholder is the WordPress user login name. */
+__("Connected as <span>%s</span>","jetpack"),this.props.wpComConnectedUser.login),{span:o().createElement("span",{className:"jp-connection-settings__username"})}),o().createElement("div",{className:"jp-connection-settings__email"},this.props.wpComConnectedUser.email))),o().createElement("div",{className:"jp-connection-settings__actions"},e),o().createElement(g.Z,null)):o().createElement("div",null,o().createElement("div",{className:"jp-connection-settings__info"},__("Get the most out of Jetpack.","jetpack")),o().createElement("div",{className:"jp-connection-settings__actions"},e)),t)}render(){return o().createElement("div",null,o().createElement(d.Z,null),o().createElement("div",{className:"jp-at-a-glance__item-grid"},o().createElement("div",{className:"jp-at-a-glance__left"},o().createElement("div",{className:"jp-dash-item__interior"},o().createElement(f.Z,{className:"jp-connection-type",label:_x("Site connection","Dashboard widget header","jetpack")},this.siteConnection()))),this.props.userCanConnectAccount&&o().createElement("div",{className:"jp-at-a-glance__right"},o().createElement("div",{className:"jp-dash-item__interior"},o().createElement(f.Z,{className:"jp-connection-type",label:_x("Account connection","Dashboard widget header","jetpack")},this.userConnection())))))}}v.propTypes={siteConnectionStatus:i().any.isRequired,isOfflineMode:i().bool.isRequired,userCanDisconnectSite:i().bool.isRequired,isConnectionOwner:i().bool.isRequired,isLinked:i().bool.isRequired,userGravatar:i().any.isRequired,username:i().any.isRequired},t.Z=(0,a.$j)((e=>({siteConnectionStatus:(0,u.Gz)(e),isOfflineMode:(0,u.Ex)(e),userCanDisconnectSite:(0,p.WB)(e),userCanConnectAccount:(0,p.n0)(e),userGravatar:(0,p.KF)(e),username:(0,p.Ms)(e),isConnectionOwner:(0,u.QM)(e),isLinked:(0,u.BU)(e),siteIcon:(0,p.ze)(e),isFetchingUserData:(0,u.Dd)(e),wpComConnectedUser:(0,u.tN)(e)})))(v)},86428:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(92819),d=n(11973),h=n(5e4),f=n(69733),m=n(69641),g=n(1927),v=n(89665),b=n(17624),y=n(75031),k=n(18394),w=n(94109),_=n(41445),E=n(10846),C=n(37615),S=n(49283),j=n(89578),M=n(78204),x=n(15142),N=n(27219),A=n(21205),O=n(66552),T=n(41147),P=n(93107),I=n(35795);const __=u.__;class R extends a.Component{constructor(){super(...arguments),o()(this,"trackSecurityClick",(()=>d.Z.tracks.recordJetpackClick("aag_manage_security_wpcom"))),o()(this,"trackUpgradeButtonView",(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return()=>d.Z.tracks.recordEvent("jetpack_wpa_aag_upgrade_button_view",{feature:e})}))}render(){const e={updateOptions:this.props.updateOptions,getOptionValue:this.props.getOptionValue,isUpdating:this.props.isUpdating,multisite:this.props.multisite},t={siteAdminUrl:this.props.siteAdminUrl,siteRawUrl:this.props.siteRawUrl},n=c().createElement(f.Z,{key:"securityHeader",label:__("Security","jetpack"),settingsPath:this.props.userCanManageModules?"#security":void 0,externalLink:this.props.isOfflineMode||!this.props.userCanManageModules?"":__("Manage security settings","jetpack"),externalLinkPath:this.props.isOfflineMode?"":"#/security",externalLinkClick:this.trackSecurityClick}),r=c().createElement("div",null,c().createElement(f.Z,{label:__("Connections","jetpack"),className:"jp-dash-section-header__connections"}),c().createElement(M.Z,null)),s=(0,p.get)(this.props.rewindStatus,["state"],""),o=(0,p.get)(this.props.rewindStatus,["reason"],""),a=[],l=!this.props.fetchingScanStatus&&"vp_active_on_site"===this.props.scanStatus?.reason;if(this.props.multisite&&!l||a.push(c().createElement(k.Z,i()({},e,t,{trackUpgradeButtonView:this.trackUpgradeButtonView("scan")}))),this.props.multisite||a.push(c().createElement(_.Z,i()({},e,{siteRawUrl:this.props.siteRawUrl,rewindStatus:s,rewindStatusReason:o,trackUpgradeButtonView:this.trackUpgradeButtonView("backups")}))),a.push(c().createElement(w.Z,i()({},t,{trackUpgradeButtonView:this.trackUpgradeButtonView("akismet")}))),"inactive"!==this.props.getModuleOverride("protect")&&a.push(c().createElement(b.Z,e)),"inactive"!==this.props.getModuleOverride("monitor")&&a.push(c().createElement(y.Z,e)),"active"===s&&a.unshift(c().createElement(m.Z,i()({},e,{siteRawUrl:this.props.siteRawUrl}))),this.props.userCanManageModules){const s=[{header:n,cards:a,pinnedBundle:!this.props.multisite&&!this.props.isOfflineMode&&this.props.hasConnectedOwner?c().createElement(S.Z,null):null}],o=[];return"inactive"!==this.props.getModuleOverride("photon")&&o.push(c().createElement(E.Z,e)),"inactive"!==this.props.getModuleOverride("search")&&o.push(c().createElement(C.Z,i()({},e,{trackUpgradeButtonView:this.trackUpgradeButtonView("search")}))),"inactive"!==this.props.getModuleOverride("videopress")&&o.push(c().createElement(j.Z,i()({},e,{trackUpgradeButtonView:this.trackUpgradeButtonView("videopress")}))),this.props.userCanManagePlugins&&o.push(c().createElement(g.Z,{siteAdminUrl:this.props.siteAdminUrl})),o.length&&s.push({header:c().createElement(f.Z,{key:"performanceHeader",label:__("Performance and Growth","jetpack")}),cards:o}),c().createElement("div",{className:"jp-at-a-glance"},c().createElement(x.Z,null),c().createElement(N.Z,null),c().createElement(A.Z,null),c().createElement(v.Z,i()({},e,t)),s.map(((e,t)=>[e.header,e.pinnedBundle,(0,p.chunk)(e.cards,2).map(((e,n)=>{let[r,i]=e;return c().createElement("div",{className:"jp-at-a-glance__item-grid",key:`card-${t}-${n}`},c().createElement("div",{className:"jp-at-a-glance__left"},r),c().createElement("div",{className:"jp-at-a-glance__right"},i))}))])),r)}let u="";this.props.userCanViewStats&&(u=c().createElement(v.Z,i()({},e,t)));const d=c().createElement(b.Z,e),h=this.props.getOptionValue("protect")&&this.props.hasConnectedOwner;return this.props.userIsSubscriber?c().createElement("div",null,u,r):c().createElement("div",null,u,h&&n,h&&d,r)}}t.Z=(0,l.$j)((e=>({userCanManageModules:(0,O.pK)(e),userCanViewStats:(0,O.px)(e),userCanManagePlugins:(0,O.ic)(e),userIsSubscriber:(0,O.dc)(e),isOfflineMode:(0,T.Ex)(e),getModuleOverride:t=>(0,P.Qy)(e,t),multisite:(0,O.TA)(e),scanStatus:(0,I.C8)(e),fetchingScanStatus:(0,I.gE)(e),hasConnectedOwner:(0,T.it)(e)})))((0,h.u)(R))},75031:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(71415),h=n(11973),f=n(93107),m=n(41147),g=n(51117);const __=p.__;class v extends a.Component{constructor(){super(...arguments),i()(this,"activateAndTrack",(()=>{h.Z.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"monitor",toggled:"on"}),this.props.updateOptions({monitor:!0})})),i()(this,"connect",(()=>this.props.connectUser()))}getContent(){const e=__("Downtime monitoring","jetpack"),t={text:__("Jetpack’s downtime monitor will continuously monitor your site and alert you the moment that downtime is detected.","jetpack"),link:(0,d.Z)("jetpack-support-monitor")};if(this.props.getOptionValue("monitor")&&!this.props.isOfflineMode&&this.props.hasConnectedOwner)return c().createElement(g.Z,{label:e,module:"monitor",support:t,status:"is-working"},c().createElement("p",{className:"jp-dash-item__description"},__("Jetpack is monitoring your site. If we think your site is down, you will receive an email.","jetpack")));const n=this.props.hasConnectedOwner?(0,u.createInterpolateElement)(__("<a>Activate Monitor</a> to receive email notifications if your site goes down.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateAndTrack})}):__("Get alerts if your site goes offline. We’ll let you know when it’s back up, too.","jetpack");return c().createElement(g.Z,{label:e,module:"monitor",support:t,className:"jp-dash-item__is-inactive",noToggle:!this.props.hasConnectedOwner},c().createElement("p",{className:"jp-dash-item__description"},this.props.isOfflineMode?__("Unavailable in Offline Mode.","jetpack"):n),!this.props.isOfflineMode&&!this.props.hasConnectedOwner&&c().createElement("p",{className:"jp-dash-item__description jp-dash-item__connect"},(0,u.createInterpolateElement)(__("<a>Connect your WordPress.com</a> account to use this feature.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.connect})})))}render(){return this.props.isModuleAvailable&&this.getContent()}}i()(v,"propTypes",{isOfflineMode:o().bool.isRequired,isModuleAvailable:o().bool.isRequired,hasConnectedOwner:o().bool.isRequired}),t.Z=(0,l.$j)((e=>({isOfflineMode:(0,m.Ex)(e),isModuleAvailable:(0,f.v1)(e,"monitor"),hasConnectedOwner:(0,m.it)(e)})),(e=>({connectUser:()=>e((0,m.bL)())})))(v)},10846:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(71415),h=n(51117),f=n(93107),m=n(41147);const __=p.__;class g extends a.Component{constructor(){super(...arguments),i()(this,"activatePhoton",(()=>this.props.updateOptions({photon:!0})))}getContent(){const e=__("Image Accelerator","jetpack"),t={text:__("Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site.","jetpack"),link:(0,d.Z)("jetpack-support-photon")};return this.props.getOptionValue("photon")?c().createElement(h.Z,{label:e,module:"photon",support:t,status:"is-working"},c().createElement("p",{className:"jp-dash-item__description"},__("Jetpack is optimizing your image sizes and download speed using our fast global network of servers. This improves your site's performance on desktop and mobile devices.","jetpack"))):c().createElement(h.Z,{label:e,module:"photon",support:t,className:"jp-dash-item__is-inactive"},c().createElement("p",{className:"jp-dash-item__description"},this.props.isOfflineMode?__("Unavailable in Offline Mode","jetpack"):(0,u.createInterpolateElement)(__("<a>Activate</a> to optimize image sizes and load images from Jetpack's fast global network of servers. This improves your site's performance on desktop and mobile devices.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activatePhoton})})))}render(){return this.props.isModuleAvailable&&this.getContent()}}i()(g,"propTypes",{isOfflineMode:o().bool.isRequired,isModuleAvailable:o().bool.isRequired}),t.Z=(0,l.$j)((e=>({isOfflineMode:(0,m.Ex)(e),isModuleAvailable:(0,f.v1)(e,"photon")})))(g)},17624:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(71415),h=n(51117),f=n(75395),m=n(41147),g=n(93107),v=n(28865),b=n(66683);const __=p.__;class y extends a.Component{constructor(){super(...arguments),i()(this,"activateProtect",(()=>this.props.updateOptions({protect:!0}))),i()(this,"connect",(()=>this.props.connectUser()))}getContent(){const e=__("Protect","jetpack"),t={text:__("Protects your site from traditional and distributed brute force login attacks.","jetpack"),link:(0,d.Z)("jetpack-support-protect")};if(this.props.getOptionValue("protect")&&!this.props.isOfflineMode&&this.props.hasConnectedOwner){const n=this.props.protectCount;return!1===n||"0"===n||"N/A"===n?c().createElement(h.Z,{label:e,module:"protect",support:t,status:"is-working",className:"jp-dash-item__recently-activated"},c().createElement("div",{className:"jp-dash-item__recently-activated-lower"},c().createElement(b.Z,null),c().createElement("p",{className:"jp-dash-item__description"},__("Jetpack is actively blocking malicious login attempts. Data will display here soon!","jetpack")))):c().createElement(h.Z,{label:e,module:"protect",support:t,status:"is-working"},c().createElement("h2",{className:"jp-dash-item__count"},(0,v.Y)(n)),c().createElement("p",{className:"jp-dash-item__description"},__("Total malicious attacks blocked on your site.","jetpack")))}return c().createElement(h.Z,{label:e,module:"protect",support:t,className:"jp-dash-item__is-inactive",noToggle:!this.props.hasConnectedOwner},c().createElement("p",{className:"jp-dash-item__description"},this.props.isOfflineMode&&__("Unavailable in Offline Mode","jetpack"),!this.props.isOfflineMode&&!this.props.hasConnectedOwner&&(0,u.createInterpolateElement)(__("<a>Connect your WordPress.com</a> account to keep your site protected from malicious sign in attempts.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.connect})}),!this.props.isOfflineMode&&this.props.hasConnectedOwner&&(0,u.createInterpolateElement)(__("<a>Activate Protect</a> to keep your site protected from malicious sign in attempts.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateProtect})})))}render(){return this.props.isModuleAvailable&&c().createElement("div",{className:"jp-dash-item__interior"},c().createElement(b.Z,null),this.getContent())}}i()(y,"propTypes",{isOfflineMode:o().bool.isRequired,protectCount:o().any.isRequired,isModuleAvailable:o().bool.isRequired,hasConnectedOwner:o().bool.isRequired,connectUser:o().func.isRequired}),t.Z=(0,l.$j)((e=>({protectCount:(0,f.xz)(e),isOfflineMode:(0,m.Ex)(e),isModuleAvailable:(0,g.v1)(e,"protect"),hasConnectedOwner:(0,m.it)(e)})),(e=>({connectUser:()=>e((0,m.bL)())})))(y)},18394:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(71415),f=n(60742),m=n(19570),g=n(11973),v=n(88872),b=n(35795),y=n(61744),k=n(75395),w=n(41147),_=n(51117),E=n(66552),C=n(61161),S=n(85253),j=n(21094),M=n(81200),x=n(28865);const __=d.__,_n=d._n,N=e=>c().createElement(_.Z,{label:__("Scan","jetpack"),module:e.feature||"scan",support:{text:__("Your site’s files are regularly scanned for unauthorized or suspicious modifications that could compromise your security and data.","jetpack"),link:(0,h.Z)("jetpack-support-security")},className:e.className||"",status:e.status||"",pro:!0,overrideContent:e.overrideContent},(0,u.isArray)(e.content)?e.content:c().createElement("p",{className:"jp-dash-item__description"},e.content)),A=e=>N({className:"jp-dash-item__is-active",status:"is-working",content:e});class O extends a.Component{constructor(){super(...arguments),i()(this,"onActivateVaultPressClick",(()=>(g.Z.tracks.recordJetpackClick({type:"activate-link",target:"at-a-glance",feature:"vaultpress"}),this.props.createNotice("is-info",__("Activating VaultPress…","jetpack"),{id:"activating-vaultpress"}),m.ZP.activateVaultPress().then((()=>{this.props.removeNotice("activating-vaultpress"),window.location.href=this.props.siteAdminUrl+"admin.php?page=vaultpress"})).catch((()=>{this.props.removeNotice("activating-vaultpress"),this.props.createNotice("is-error",__("Could not activate VaultPress.","jetpack"),{id:"activate-vaultpress-failure"})})),!1)))}getVPContent(){const{vaultPressData:e,hasConnectedOwner:t}=this.props;if("not_registered"===e?.code)return N({className:"jp-dash-item__is-inactive",status:"not-registered",content:(0,p.createInterpolateElement)(__("VaultPress is having difficulties scanning. Please make sure your <keyLink>registration key is entered</keyLink>. If you require further assistance please <supportLink>contact support</supportLink>.","jetpack"),{keyLink:c().createElement("a",{href:this.props.siteAdminUrl+"admin.php?page=vaultpress"}),supportLink:c().createElement("a",{href:(0,h.Z)("vaultpress-help")})})});if((0,u.get)(e,["data","features","security"],!1)){const t=this.props.scanThreats;if(0!==t)return this.renderThreatsFound(t,(0,h.Z)("vaultpress-dashboard"));if("success"===e.code)return N({status:"is-working",content:__("No threats found, you're good to go!","jetpack")})}if(this.props.fetchingSiteData)return N({content:__("Loading…","jetpack")});const n=!1!==this.props.sitePlan,r=["is-premium-plan","is-business-plan"].includes(this.props.planClass);return n&&r?this.props.isVaultPressInstalled?N({className:"jp-dash-item__is-inactive",status:"pro-inactive",content:[c().createElement("p",{className:"jp-dash-item__description",key:"inactive-scanning"},(0,p.createInterpolateElement)(__("VaultPress is not active, <a>please activate</a> to enable automatic scanning for security for threats.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.onActivateVaultPressClick})}))]}):N({className:"jp-dash-item__is-inactive",status:"pro-uninstalled",content:[c().createElement("p",{className:"jp-dash-item__description",key:"inactive-scanning"},(0,p.createInterpolateElement)(__("VaultPress is not installed, <a>please install</a> to enable automatic scanning for security for threats.","jetpack"),{a:c().createElement("a",{href:(0,h.Z)("calypso-plugins-vaultpress"),target:"_blank",rel:"noopener noreferrer"})}))]}):N({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",overrideContent:t?this.getUpgradeBanner():this.getConnectBanner()})}getUpgradeBanner(){return c().createElement(S.Z,{callToAction:__("Upgrade","jetpack"),title:__("Purchase Jetpack Scan to protect your site from security threats with automated scanning.","jetpack"),disableHref:"false",href:this.props.upgradeUrl,eventFeature:"scan",path:"dashboard",plan:(0,M.o2)(M.eM),trackBannerDisplay:this.props.trackUpgradeButtonView})}getConnectBanner(){return c().createElement(S.Z,{callToAction:__("Connect","jetpack"),title:__("Connect your WordPress.com account to upgrade to Jetpack Scan and protect your site from security threats with automated scanning.","jetpack"),disableHref:"false",onClick:this.props.connectUser,eventFeature:"scan",path:"dashboard",plan:(0,M.o2)(M.eM)})}renderAction(e,t){return this.props.isAtomicSite?null:c().createElement(f.Z,{compact:!0,key:"manage-scan",className:"jp-dash-item__manage-in-wpcom",href:e,target:"_blank",rel:"noopener noreferrer"},t)}renderThreatsFound(e,t){return c().createElement(c().Fragment,null,A([c().createElement("h2",{className:"jp-dash-item__count is-alert"},(0,x.Y)(e)),c().createElement("p",{className:"jp-dash-item__description"},(0,p.createInterpolateElement)(_n("Security threat found. <a>Click here</a> to fix them immediately.","Security threats found. <a>Click here</a> to fix them immediately.",e,"jetpack"),{a:c().createElement("a",{href:t,target:"_blank",rel:"noopener noreferrer"})}))]),this.renderAction(t,__("View security scan details","jetpack")))}getRewindContent(){const{scanStatus:e,siteRawUrl:t}=this.props,n=(0,h.Z)("calypso-scanner",{site:t});if(Array.isArray(e.threats)&&e.threats.length>0)return this.renderThreatsFound(e.threats.length,n);if(e.credentials&&0===e.credentials.length)return c().createElement(c().Fragment,null,A(__("Please finish your setup by entering your server’s credentials.","jetpack")),this.renderAction((0,h.Z)("jetpack-scan-dash-credentials",{site:t}),__("Enter credentials","jetpack")));switch(e.state){case"provisioning":return c().createElement(c().Fragment,null,A(__("We are configuring your site protection.","jetpack")));case"idle":case"scanning":return c().createElement(c().Fragment,null,A(__("No security threats found. Your site will continue to be monitored for future threats.","jetpack")),this.renderAction((0,h.Z)("calypso-scanner",{site:t}),__("View security scan details","jetpack")))}return!1}getUpgradeContent(){const{hasConnectedOwner:e}=this.props;return N({className:"jp-dash-item__is-inactive",overrideContent:e?this.getUpgradeBanner():this.getConnectBanner()})}getContent(){const{scanStatus:e}=this.props;return e.state&&"unavailable"!==e.state?c().createElement("div",{className:"jp-dash-item"},this.getRewindContent()):"vp_active_on_site"===e.reason?this.getVPContent():this.getUpgradeContent()}render(){if(!this.props.showBackups)return null;if(this.props.isOfflineMode)return N({className:"jp-dash-item__is-inactive",content:__("Unavailable in Offline Mode.","jetpack")});const e=this.props.fetchingScanStatus||this.props.fetchingVaultPressData;return c().createElement("div",null,e?N({content:__("Loading…","jetpack")}):this.getContent())}}i()(O,"propTypes",{siteRawUrl:o().string.isRequired,siteAdminUrl:o().string.isRequired,trackUpgradeButtonView:o().func,vaultPressData:o().any.isRequired,scanThreats:o().any.isRequired,sitePlan:o().object.isRequired,isOfflineMode:o().bool.isRequired,isVaultPressInstalled:o().bool.isRequired,fetchingSiteData:o().bool.isRequired,upgradeUrl:o().string.isRequired,hasConnectedOwner:o().bool.isRequired}),i()(O,"defaultProps",{siteRawUrl:"",siteAdminUrl:"",vaultPressData:"",scanThreats:0,sitePlan:"",isOfflineMode:!1,isVaultPressInstalled:!1,fetchingSiteData:!1,trackUpgradeButtonView:u.noop}),t.Z=(0,l.$j)((e=>{const t=(0,v.UL)(e);return{isAtomicSite:(0,E.Ug)(e),isOfflineMode:(0,w.Ex)(e),scanStatus:(0,b.C8)(e),fetchingScanStatus:(0,b.gE)(e),isVaultPressInstalled:(0,y.P8)(e,"vaultpress/vaultpress.php"),fetchingVaultPressData:(0,k.P_)(e),vaultPressData:(0,k.XK)(e),scanThreats:(0,k._R)(e),fetchingSiteData:(0,v._5)(e),sitePlan:t,planClass:(0,M.sc)((0,u.get)(t,"product_slug","")),showBackups:(0,E.xR)(e),upgradeUrl:(0,C.z)(e,"scan"),hasConnectedOwner:(0,w.it)(e)}}),(e=>({createNotice:j.iI,removeNotice:j.qq,connectUser:()=>e((0,w.bL)())})))(O)},37615:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(71415),f=n(11973),m=n(60742),g=n(51117),v=n(81200),b=n(88872),y=n(61161),k=n(41147),w=n(85253);const __=d.__,_=__("Incredibly powerful and customizable, Jetpack Search helps your visitors instantly find the right content – right when they need it.","jetpack"),E=__("Customize your Search experience.","jetpack"),C=__("Search supports many customizations. ","jetpack"),S=e=>c().createElement(g.Z,{label:__("Search","jetpack"),module:"search",support:{text:C,link:(0,h.Z)("jetpack-support-search")},className:e.className,status:e.status,isModule:e.pro_inactive,pro:!0,overrideContent:e.overrideContent},c().createElement("p",{className:"jp-dash-item__description"},e.content));class j extends a.Component{constructor(){super(...arguments),i()(this,"activateSearch",(()=>{this.props.updateOptions({search:!0,...this.props.hasSearchProduct?{instant_search_enabled:!0}:{}})}))}trackSearchLink(){f.Z.tracks.recordJetpackClick({type:"upgrade-link",target:"at-a-glance",feature:"search"})}render(){return this.props.isFetching?S({status:"",content:__("Loading…","jetpack")}):this.props.isOfflineMode?S({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",pro_inactive:!0,content:__("Unavailable in Offline Mode","jetpack")}):this.props.isBusinessPlan||this.props.hasSearchProduct?this.props.getOptionValue("search")?c().createElement("div",{className:"jp-dash-item"},c().createElement(g.Z,{label:__("Search","jetpack"),module:"search",support:{text:C,link:(0,h.Z)("jetpack-support-search")},className:"jp-dash-item__is-active",isModule:!1,pro:!0},c().createElement("p",{className:"jp-dash-item__description"},__("Jetpack Search is powering search on your site.","jetpack"))),this.props.hasSearchProduct?c().createElement(m.Z,{compact:!0,className:"jp-search-config-aag",href:"admin.php?page=jetpack-search-configure"},E):c().createElement(m.Z,{compact:!0,className:"jp-search-config-aag",href:"customize.php?autofocus[panel]=widgets"},__("Add Search (Jetpack) Widget","jetpack"))):S({className:"jp-dash-item__is-inactive",pro_inactive:!1,content:(0,p.createInterpolateElement)(__("<a>Activate</a> to help visitors quickly find answers with highly relevant instant search results and powerful filtering.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateSearch})})}):S({className:"jp-dash-item__is-inactive",status:"no-pro-uninstalled-or-inactive",pro_inactive:!0,overrideContent:this.props.hasConnectedOwner?c().createElement(w.Z,{callToAction:__("Upgrade","jetpack"),title:_,disableHref:"false",href:this.props.upgradeUrl,eventFeature:"search",path:"dashboard",plan:(0,v.o2)(v.T5),icon:"search",trackBannerDisplay:this.props.trackUpgradeButtonView}):c().createElement(w.Z,{callToAction:__("Connect","jetpack"),title:__("Connect your WordPress.com account to upgrade and get Jetpack Search, which helps your visitors instantly find the right content – right when they need it.","jetpack"),disableHref:"false",onClick:this.props.connectUser,eventFeature:"search",path:"dashboard",plan:(0,v.o2)(v.T5),icon:"search"})})}}i()(j,"propTypes",{getOptionValue:o().func.isRequired,trackUpgradeBanner:o().func,isOfflineMode:o().bool.isRequired,hasConnectedOwner:o().string.isRequired}),i()(j,"defaultProps",{getOptionValue:u.noop,isOfflineMode:!1,trackUpgradeBanner:u.noop}),t.Z=(0,l.$j)((e=>({isBusinessPlan:"is-business-plan"===(0,v.sc)((0,b.UL)(e).product_slug),isOfflineMode:(0,k.Ex)(e),isFetching:(0,b.GR)(e),hasSearchProduct:(0,b.o$)(e),upgradeUrl:(0,y.z)(e,"search"),hasConnectedOwner:(0,k.it)(e)})),(e=>({connectUser:()=>e((0,k.bL)())})))(j)},49283:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(71415),l=n(65736),u=n(69307),p=n(55609),d=n(11973),h=n(9913),f=n(60742),m=n(80118),g=n(79568),v=n(20873),b=n(23183),y=n(61161),k=n(88872);const __=l.__,_x=l._x;class w extends s.Component{constructor(){super(...arguments),i()(this,"trackUpgradeClick",(()=>{d.Z.tracks.recordJetpackClick({page:"aag",target:"upgrade-button",feature:"security"})}))}renderFeatures(){const e=[{id:"backup",imageUrl:g,text:_x("Backup","The Jetpack Backup product name, without the Jetpack prefix","jetpack"),imgAlt:__("A cloud representing Jetpack Backup","jetpack")},{id:"scan",imageUrl:v,text:_x("Scan","The Jetpack Scan product name, without the Jetpack prefix","jetpack"),imgAlt:__("A shield representing Jetpack Scan","jetpack")},{id:"antispam",imageUrl:b,text:__("Anti-spam","jetpack"),imgAlt:__("A crossed-out bug representing Jetpack Anti-spam","jetpack")}];return o().createElement("div",{className:"dash-security-bundle--content-info-features"},e.map((e=>{let{id:t,imageUrl:n,text:r,imgAlt:i}=e;return o().createElement("div",{id:t,className:"dash-security-bundle--content-info-features-single-feature"},o().createElement("img",{src:n,alt:i}),o().createElement("p",null,r))})))}render(){const{hasActiveSecurityPurchase:e,isFetchingSitePurchases:t}=this.props;return e||t?null:o().createElement(f.Z,{className:"dash-security-bundle"},o().createElement("div",{className:"dash-security-bundle--icon"},o().createElement("img",{src:m,alt:__("A shield and check mark representing the Jetpack Security Bundle","jetpack")})),o().createElement("div",{className:"dash-security-bundle--content"},o().createElement("div",{className:"dash-security-bundle--content-info"},o().createElement("h3",null,__("Comprehensive Site Security","jetpack")),o().createElement("p",null,(0,u.createInterpolateElement)(__("Total protection for your site, including Backup, Scan, and Anti-spam. <ExternalLink>Learn More.</ExternalLink>","jetpack"),{ExternalLink:o().createElement(p.ExternalLink,{href:(0,c.Z)("jetpack-features-security"),rel:"noopener noreferrer",target:"_blank"})})),this.renderFeatures()),o().createElement("div",{className:"dash-security-bundle--content-cta"},o().createElement(h.Z,{className:"dash-security-bundle--content-cta-button",href:this.props.productDescriptionUrl,onClick:this.trackUpgradeClick,compact:!0,primary:!0},__("Upgrade","jetpack")))))}}t.Z=(0,a.$j)((e=>({hasActiveSecurityPurchase:(0,k.VL)(e),isFetchingSitePurchases:(0,k.GR)(e),productDescriptionUrl:(0,y.z)(e,"security")})))(w)},55857:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(69771),d=n(65736),h=n(71415),f=n(55609),m=n(11973),g=n(9913),v=n(60742),b=n(81441),y=n(28865),k=n(66552);const __=d.__,_x=d._x,_n=d._n;class w extends a.Component{constructor(){super(...arguments),i()(this,"trackViewDetailedStats",(()=>m.Z.tracks.recordJetpackClick("view_detailed_stats"))),i()(this,"trackViewWpcomStats",(()=>m.Z.tracks.recordJetpackClick("view_wpcom_stats")))}statsBottom(){let e;return e="object"==typeof this.props.statsData.general?this.props.statsData.general.stats:{views:"-",comments:"-",views_today:"-",views_best_day:"-",views_best_day_total:"-"},[{viewsToday:e.views_today,bestDay:{day:e.views_best_day,count:e.views_best_day_total},allTime:{views:e.views,comments:e.comments}}]}render(){const e=this.statsBottom()[0];return c().createElement("div",null,c().createElement("div",{className:"jp-at-a-glance__stats-summary"},c().createElement("div",{className:"jp-at-a-glance__stats-summary-today"},c().createElement("p",{className:"jp-at-a-glance__stat-details"},_x("Views today","Referring to a number of page views","jetpack")),c().createElement("h3",{className:"jp-at-a-glance__stat-number"},e.viewsToday)),c().createElement("div",{className:"jp-at-a-glance__stats-summary-bestday"},c().createElement("p",{className:"jp-at-a-glance__stat-details"},_x("Best overall day","Referring to a number of page views","jetpack")),c().createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.bestDay.count?"-":(0,d.sprintf)(
+/* Translators: placeholder is a number of views. */
+_n("%s View","%s Views",e.bestDay.count,"jetpack"),(0,y.Y)(e.bestDay.count))),c().createElement("p",{className:"jp-at-a-glance__stat-details"},"-"===e.bestDay.day?"-":(0,p.dateI18n)(this.props.dateFormat,e.bestDay.day))),c().createElement("div",{className:"jp-at-a-glance__stats-summary-alltime"},c().createElement("div",{className:"jp-at-a-glance__stats-alltime-views"},c().createElement("p",{className:"jp-at-a-glance__stat-details"},_x("All-time views","Referring to a number of page views","jetpack")),c().createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.allTime.views?"-":(0,y.Y)(e.allTime.views))),c().createElement("div",{className:"jp-at-a-glance__stats-alltime-comments"},c().createElement("p",{className:"jp-at-a-glance__stat-details"},_x("All-time comments","Referring to a number of comments","jetpack")),c().createElement("h3",{className:"jp-at-a-glance__stat-number"},"-"===e.allTime.comments?"-":(0,y.Y)(e.allTime.comments))))),c().createElement("div",{className:"jp-at-a-glance__stats-cta"},c().createElement("div",{className:"jp-at-a-glance__stats-cta-description"}),c().createElement("div",{className:"jp-at-a-glance__stats-ctas"},(0,u.createInterpolateElement)(__("<button>View detailed stats</button>","jetpack"),{button:c().createElement(g.Z,{onClick:this.trackViewDetailedStats,href:this.props.siteAdminUrl+"admin.php?page=stats"})}),this.props.isLinked&&(0,u.createInterpolateElement)(__("<ExternalLink>View more stats on WordPress.com</ExternalLink>","jetpack"),{ExternalLink:c().createElement(f.ExternalLink,{onClick:this.trackViewWpcomStats,href:(0,h.Z)("calypso-stats-insights",{site:this.props.siteRawUrl}),rel:"noopener noreferrer",target:"_blank"})}))),!this.props.isLinked&&this.props.userCanConnectAccount&&c().createElement(v.Z,{compact:!0,className:"jp-settings-card__configure-link"},c().createElement(b.Z,{connectUser:!0,from:"unlinked-user-connect",connectLegend:__("Connect your WordPress.com account to view more stats","jetpack")})))}}w.propTypes={siteRawUrl:o().string.isRequired,siteAdminUrl:o().string.isRequired,statsData:o().object.isRequired,isLinked:o().bool.isRequired,dateFormat:o().string.isRequired},w.defaultProps={siteRawUrl:"",siteAdminUrl:"",statsData:{},isLinked:!1,dateFormat:"F j, Y"},t.Z=(0,l.$j)((e=>({userCanConnectAccount:(0,k.n0)(e)})))(w)},89665:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(2620),p=n(69307),d=n(55609),h=n(69771),f=n(65736),m=n(71415),g=n(11973),v=n(9913),b=n(60742),y=n(73653),k=n(69733),w=n(55857),_=n(17752),E=n(66552),C=n(75395),S=n(98486),j=n(41147),M=n(93107),x=n(53263),N=n(28865),A=n(69039);const __=f.__;class O extends a.Component{constructor(e){super(e),i()(this,"dismissCard",(()=>{this.setState({emptyStatsDismissed:!0}),this.props.updateOptions({dismiss_empty_stats_card:!0})})),i()(this,"activateStats",(()=>this.props.updateOptions({stats:!0}))),i()(this,"switchToDay",(()=>this.switchTo("day"))),i()(this,"switchToWeek",(()=>this.switchTo("week"))),i()(this,"switchToMonth",(()=>this.switchTo("month"))),this.state={emptyStatsDismissed:e.isEmptyStatsCardDismissed}}barClick(e){e.data.link&&(g.Z.tracks.recordJetpackClick("stats_bar"),window.open(e.data.link,"_blank"))}statsChart(e){const t=this.props,n=[];let r=0;const
+/* translators: short date format, such as: Jan 12. */
+i=__("M j","jetpack"),
+/* translators: long date format, such as: January 12th. */
+s=__("F jS","jetpack"),
+/* translators: long month/year format, such as: January, 2021. */
+o=__("F Y","jetpack");return"object"!=typeof t.statsData[e]?{chartData:n,totalViews:!1}:((0,l.forEach)(t.statsData[e].data,(function(a){const c=a[1];let l=a[0],u="",p="";r+=c,"day"===e?(u=(0,h.dateI18n)(i,l),p=(0,h.dateI18n)(s,l)):"week"===e?(l=l.replace(/W/g,"-"),u=(0,h.dateI18n)(i,l),p=(0,f.sprintf)(
+/* translators: placeholder is a date. */
+__("Week of %s","jetpack"),(0,h.dateI18n)(s,l))):"month"===e&&(u=(0,h.dateI18n)("M",l),p=(0,h.dateI18n)(o,l)),n.push({label:u,value:c,nestedValue:null,className:"statsChartbar",data:{link:(0,m.Z)(`calypso-stats-${e}`,{site:t.siteRawUrl,query:`startDate=${l}`})},tooltipData:[{label:p,value:(0,f.sprintf)(
+/* translators: placeholder is a number */
+__("Views: %s","jetpack"),(0,N.Y)(c)),className:"tooltip class"},{label:__("Click to view detailed stats.","jetpack")}]})})),{chartData:n,totalViews:r})}statsErrors(){return(0,l.get)(this.props.statsData,["general","errors"],!1)}renderStatsChart(e){return c().createElement("div",null,c().createElement("div",{className:"jp-at-a-glance__stats-chart"},c().createElement(y.Z,{data:e,barClick:this.barClick}),0===e.length&&c().createElement(d.Spinner,null)),c().createElement("div",{id:"stats-bottom",className:"jp-at-a-glance__stats-bottom"},c().createElement(w.Z,{statsData:this.props.statsData,siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,isLinked:this.props.isLinked,connectUrl:this.props.connectUrl,dateFormat:this.props.dateFormat})))}renderEmptyStatsCard(){return c().createElement(b.Z,{className:"jp-at-a-glance__stats-empty"},c().createElement("img",{src:S.hp+"stats-people.svg",width:"272",height:"144",alt:__("Jetpack Stats People","jetpack"),className:"jp-at-a-glance__stats-icon"}),c().createElement("p",null,__("Hello there! Your stats have been activated.","jetpack"),c().createElement("br",null),__("Just give us a little time to collect data so we can display it for you here.","jetpack")),c().createElement(v.Z,{onClick:this.dismissCard,primary:!0},__("Okay, got it!","jetpack")))}renderStatsArea(){if(this.props.getOptionValue("stats")){if(this.statsErrors())return c().createElement("div",{className:"jp-at-a-glance__stats-inactive"},c().createElement("span",null,(0,p.createInterpolateElement)(__("Something happened while loading stats. Please try again later or <a>view your stats now on WordPress.com</a>","jetpack"),{a:c().createElement("a",{href:(0,m.Z)("calypso-stats-insights",{site:this.props.siteRawUrl})})})));const e=this.statsChart(this.props.activeTab),t=e.chartData,n=e.totalViews,r=t.length&&n<=0&&!this.props.isEmptyStatsCardDismissed&&!this.state.emptyStatsDismissed;return c().createElement("div",{className:"jp-at-a-glance__stats-container"},r?this.renderEmptyStatsCard():this.renderStatsChart(t))}return c().createElement("div",{className:"jp-at-a-glance__stats-inactive"},c().createElement("div",{className:"jp-at-a-glance__stats-inactive-icon"},c().createElement("img",{src:S.hp+"stats.svg",width:"60",height:"60",alt:__("Jetpack Stats Icon","jetpack"),className:"jp-at-a-glance__stats-icon"})),c().createElement("div",{className:"jp-at-a-glance__stats-inactive-text"},this.props.isOfflineMode?__("Unavailable in Offline Mode","jetpack"):(0,p.createInterpolateElement)(__("<a>Activate Site Stats</a> to see detailed stats, likes, followers, subscribers, and more! <a1>Learn More</a1>","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateStats}),a1:c().createElement("a",{href:(0,m.Z)("jetpack-support-wordpress-com-stats"),target:"_blank",rel:"noopener noreferrer"})})),!this.props.isOfflineMode&&c().createElement("div",{className:"jp-at-a-glance__stats-inactive-button"},c().createElement(v.Z,{onClick:this.activateStats,primary:!0},__("Activate Site Stats","jetpack"))))}switchTo(e){g.Z.tracks.recordJetpackClick({target:"stats_switch_view",view:e}),this.props.switchView(e),this.props.fetchStatsData(e)}maybeShowStatsTabs(){return!(!1===this.statsChart(this.props.activeTab).totalViews&&!this.props.isEmptyStatsCardDismissed&&!this.state.emptyStatsDismissed)&&(this.props.getOptionValue("stats")&&!this.statsErrors()?c().createElement("ul",{className:"jp-at-a-glance__stats-views"},c().createElement("li",{className:"jp-at-a-glance__stats-view"},c().createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToDay,className:this.getClass("day")},__("Days","jetpack"))),c().createElement("li",{className:"jp-at-a-glance__stats-view"},c().createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToWeek,className:this.getClass("week")},__("Weeks","jetpack"))),c().createElement("li",{className:"jp-at-a-glance__stats-view"},c().createElement("a",{tabIndex:"0",href:"javascript:void(0)",onClick:this.switchToMonth,className:this.getClass("month")},__("Months","jetpack")))):void 0)}getClass(e){return this.props.activeTab===e?"jp-at-a-glance__stats-view-link is-current":"jp-at-a-glance__stats-view-link"}render(){return"inactive"===this.props.getModuleOverride("stats")?c().createElement("div",null,c().createElement(x.Z,{moduleName:__("Site Stats","jetpack")})):this.props.isModuleAvailable&&c().createElement("div",null,c().createElement(A.Z,{range:this.props.activeTab}),c().createElement(k.Z,{label:__("Site Stats","jetpack")},this.maybeShowStatsTabs()),c().createElement(b.Z,{className:"jp-at-a-glance__stats-card "+(this.props.isOfflineMode?"is-inactive":"")},this.renderStatsArea()))}}i()(O,"propTypes",{isOfflineMode:o().bool.isRequired,siteRawUrl:o().string.isRequired,siteAdminUrl:o().string.isRequired,statsData:o().any.isRequired,isModuleAvailable:o().bool.isRequired}),t.Z=(0,u.$j)((e=>({isModuleAvailable:(0,M.v1)(e,"stats"),activeTab:(0,C.l5)(e),dateFormat:(0,E.mh)(e),isOfflineMode:(0,j.Ex)(e),isLinked:(0,j.BU)(e),connectUrl:(0,j.AM)(e),statsData:(0,l.isEmpty)((0,C.yZ)(e))?(0,E.Uu)(e):(0,C.yZ)(e),isEmptyStatsCardDismissed:(0,_.g0)(e),getModuleOverride:t=>(0,M.Qy)(e,t)})),(e=>({switchView:t=>e((0,C.D3)(t)),fetchStatsData:t=>e((0,C.g4)(t))})))(O)},89578:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(71415),f=n(51117),m=n(81200),g=n(10618),v=n(85253),b=n(93107),y=n(41147),k=n(88872),w=n(61161);const __=d.__;class _ extends a.Component{constructor(){super(...arguments),i()(this,"activateVideoPress",(()=>this.props.updateOptions({videopress:!0})))}getContent(){const e=__("VideoPress","jetpack"),t={text:__("Engage your visitors with high-resolution, ad-free video. Save time by uploading videos directly through the WordPress editor. With Jetpack VideoPress, you can customize your video player to deliver your message without the distraction.","jetpack"),link:(0,h.Z)("jetpack-support-videopress")},n=(0,m.sc)(this.props.sitePlan.product_slug),{hasConnectedOwner:r,hasVideoPressLegacySecurityPlan:i,hasVideoPressPurchase:s,isFetching:o,isOffline:a,upgradeUrl:l,videoPressStorageUsed:d}=this.props,b=(0,u.includes)(["is-premium-plan","is-business-plan","is-complete-plan"],n)||i||s,y=s&&null!==d,k=r&&!b&&!a&&!o,w=s||null===d||0!==d?__("You have used your free video. Upgrade now to unlock more videos and 1TB of storage.","jetpack",0):__("1 free video available. Upgrade now to unlock more videos and 1TB of storage.","jetpack");return this.props.getOptionValue("videopress")&&r?c().createElement(f.Z,{className:"jp-dash-item__videopress",label:e,module:"videopress",support:t,status:"is-working",overrideContent:c().createElement(c().Fragment,null,c().createElement("div",{className:"dops-card jp-dash-item__card"},c().createElement("p",{className:"jp-dash-item__description"},__("VideoPress is enabled and will optimize your videos for smooth playback on any device. To add a new video, upload it to the Media Library or Post Editor.","jetpack")),y&&c().createElement("div",{className:"jp-dash-item__videopress-storage"},c().createElement("span",null,__("Video storage used out of 1TB:","jetpack")),c().createElement(g.Z,{value:d/1e4}))),k&&c().createElement(v.Z,{className:"media__videopress-upgrade",callToAction:__("Upgrade","jetpack"),title:w,disableHref:"false",eventFeature:"videopress",icon:"video",path:"dashboard",plan:(0,m.o2)(m.qb),feature:"jetpack_videopress",href:l,trackBannerDisplay:this.props.trackUpgradeButtonView}))}):c().createElement(f.Z,{label:e,module:"videopress",support:t,className:"jp-dash-item__is-inactive",noToggle:!r,overrideContent:!r&&!a&&c().createElement(v.Z,{callToAction:__("Connect","jetpack"),title:__("Connect your WordPress.com account to enable high-quality, ad-free video.","jetpack"),disableHref:"false",onClick:this.props.connectUser,eventFeature:"videopress",path:"dashboard",plan:(0,m.o2)(m.qb),icon:"video"})},c().createElement("p",{className:"jp-dash-item__description"},a?__("Unavailable in Offline Mode","jetpack"):(0,p.createInterpolateElement)(__("<a>Activate</a> to engage your visitors with high-resolution, ad-free video. Save time by uploading videos directly through the WordPress editor. Try it for free.","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateVideoPress})})))}render(){return this.props.isModuleAvailable&&this.getContent()}}i()(_,"propTypes",{hasConnectedOwner:o().bool.isRequired,isOfflineMode:o().bool.isRequired,isModuleAvailable:o().bool.isRequired,trackUpgradeButtonView:o().func}),i()(_,"defaultProps",{trackUpgradeButtonView:u.noop}),t.Z=(0,l.$j)((e=>({hasConnectedOwner:(0,y.it)(e),hasVideoPressPurchase:(0,k.jQ)(e),hasVideoPressLegacySecurityPlan:(0,k.qn)(e).find(m.dy),isModuleAvailable:(0,b.v1)(e,"videopress"),isOffline:(0,y.Ex)(e),isFetching:(0,k.GR)(e),sitePlan:(0,k.UL)(e),upgradeUrl:(0,w.z)(e,"videopress"),videoPressStorageUsed:(0,k.VH)(e)})),(e=>({connectUser:()=>e((0,y.bL)())})))(_)},43240:function(e,t,n){"use strict";var r=n(99196),i=n.n(r);class s extends i().Component{componentDidMount(){const e=jQuery(this.refs.adminNotices),t=jQuery(".vp-deactivated");t.length>0&&t.each((function(){const t=jQuery(this).addClass("dops-notice is-success is-dismissable").removeClass("wrap vp-notice notice notice-success");t.wrapInner('<span class="dops-notice__content">'),t.find(".dops-notice__content").before('<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></svg></span>').css("display","block"),t.find(".dops-notice__content").after('<span role="button" tabindex="0" class="dops-notice__dismiss"><svg class="gridicon gridicons-cross" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg><span class="screen-reader-text"/></span>'),t.find("h2").replaceWith((function(){return jQuery("<strong />",{html:this.innerHTML})})),t.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML})})),t.prependTo(e).css("display","flex")}));const n=jQuery(".vp-notice");n.length>0&&n.each((function(){const t=jQuery(this);if(0===t.find(".dops-notice__icon").length){const e=t.hasClass("vp-registered"),n=e?"is-success":"is-error";t.addClass("dops-notice vp-notice-jp "+n),t.wrapInner('<span class="dops-notice__content">');const r=e?'<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"/></svg></span>':'<span class="dops-notice__icon-wrapper"><svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"/></svg></span>';t.find(".dops-notice__content").before(r),t.find(".vp-message").removeClass("vp-message").addClass("dops-notice__text"),t.find("h3").replaceWith((function(){return jQuery("<strong />",{html:this.innerHTML})})),t.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML})})),t.css("display","flex")}t.find('a[href*="admin.php?page=vaultpress"]').remove(),t.prependTo(e).removeClass("wrap vp-notice")}));const r=jQuery(".woocommerce-message");r.length>0&&r.each((function(){const t=jQuery(this).addClass("dops-notice").removeClass("updated wc-connect");t.find(".button-primary").addClass("dops-notice__action").removeClass("button-primary").detach().appendTo(t),t.find("p").not(".submit").wrapAll('<span class="dops-notice__text"/>');const n=t.find(".dops-notice__text");n.find("p").replaceWith((function(){return jQuery("<div/>",{html:this.innerHTML,class:"dops-notice__moved_text"})})),n.find("br").remove(),t.find(".button-secondary").removeClass("button-secondary").detach().appendTo(n),t.find(".submit").remove(),t.find(".woocommerce-message-close").removeClass("woocommerce-message-close notice-dismiss").addClass("dops-notice__action"),t.wrapInner('<span class="dops-notice__content">').prependTo(e).css("display","flex"),t.find(".dops-notice__action").not(":first").removeClass("dops-notice__action").detach().appendTo(t.find(".dops-notice__text")),t.find(".dops-notice__action:first").detach().appendTo(t)}));const i=jQuery(".notice");i.length>0&&i.each((function(){jQuery(this).hide()})),e.length>0&&jQuery(".dops-notice__dismiss").click((function(){jQuery(this).parent().closest("div").hide()}))}render(){return i().createElement("div",{id:"jp-admin-notices",ref:"adminNotices","aria-live":"polite"})}}t.Z=s},76238:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(89105),p=n.n(u),d=n(65736),h=n(34885),f=n(98486);const __=d.__,m={ios:{defaultSrc:f.hp+"/get-apps-ios-store.svg",src:"https://linkmaker.itunes.apple.com/assets/shared/badges/{localeSlug}/appstore-lrg.svg",tracksEvent:"calypso_app_download_ios_click",getStoreLink:e=>`https://apps.apple.com/app/apple-store/id335703880?pt=299112&ct=${e}&mt=8`,getTitleText:()=>__("Download the WordPress iOS mobile app.","jetpack"),getAltText:()=>__("Apple App Store download badge","jetpack"),getLocaleSlug:function(){const e=(0,h.X)().split("-")[0];return"en"===e?"en-us":`${e}-${e}`}},android:{defaultSrc:f.hp+"/get-apps-google-play.png",src:"https://play.google.com/intl/en_us/badges/images/generic/{localeSlug}_badge_web_generic.png",tracksEvent:"calypso_app_download_android_click",getStoreLink:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"web",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"mobile-download-promo-pages";return`https://play.google.com/store/apps/details?id=org.wordpress.android&referrer=utm_source%3D%${e}%26utm_medium%3D${t}%26utm_campaign%3D${n}`},getTitleText:()=>__("Download the WordPress Android mobile app.","jetpack"),getAltText:()=>__("Google Play Store download badge","jetpack"),getLocaleSlug:function(){return(0,h.X)().split("-")[0]}}};class g extends a.PureComponent{constructor(e){super(e),i()(this,"onLoadImageComplete",(()=>{this.setState({hasExternalImageLoaded:!0})})),i()(this,"onLoadImageError",(()=>{this.setState({hasExternalImageLoaded:!1,imageSrc:m[this.props.storeName].defaultSrc})})),i()(this,"onLinkClick",(()=>{this.props.onBadgeClick(this.props.storeName)}));const t=m[e.storeName].getLocaleSlug().toLowerCase(),n=!(0,l.startsWith)(t,"en");this.state={shouldLoadExternalImage:n,imageSrc:n?m[e.storeName].src.replace("{localeSlug}",t):m[e.storeName].defaultSrc},n&&(this.image=null,this.loadImage())}loadImage(){this.image=new window.Image,this.image.src=this.state.imageSrc,this.image.onload=this.onLoadImageComplete,this.image.onerror=this.onLoadImageError}render(){const{altText:e,titleText:t,storeLink:n,storeName:r,utm_source:i,utm_medium:s,utm_campaign:o}=this.props,{imageSrc:a,hasExternalImageLoaded:l}=this.state,u=p()("apps-badge",{[`${r}-app-badge`]:!0,"is-external-image":l}),d=m[r];return c().createElement("figure",{className:u},c().createElement("a",{href:n||d.getStoreLink(i,s,o),onClick:this.onLinkClick,target:"_blank",rel:"noopener noreferrer"},c().createElement("img",{src:a,title:t||d.getTitleText(),alt:e||d.getAltText()})))}}i()(g,"propTypes",{altText:o().string,storeLink:o().string,storeName:o().oneOf(["ios","android"]).isRequired,titleText:o().string,onBadgeClick:o().func,utm_source:o().string.isRequired,utm_campaign:o().string,utm_medium:o().string}),i()(g,"defaultProps",{altText:"",storeLink:null,titleText:""}),t.Z=g},73875:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(89105),p=n.n(u),d=n(12901),h=n(65736),f=n(76238),m=n(11973),g=n(9913),v=n(60742),b=n(98486),y=n(17752),k=n(66552);const __=h.__;class w extends c().Component{constructor(){super(...arguments),i()(this,"trackDownloadClick",(e=>{m.Z.tracks.recordJetpackClick({target:"apps-card",button:"apps-download",page:this.props.location.pathname,store:e})})),i()(this,"dismissCard",(()=>{this.props.dismissAppCard(),m.Z.tracks.recordJetpackClick({target:"apps-card",button:"dismiss",page:this.props.location.pathname})}))}render(){if(!this.props.arePromotionsActive||this.props.isAppsCardDismissed)return null;const e=p()(this.props.className,"jp-apps-card");return c().createElement("div",{className:e},c().createElement(v.Z,{className:"jp-apps-card__content"},this.props.userCanManageOptions&&c().createElement(g.Z,{borderless:!0,compact:!0,className:"jp-apps-card__dismiss",href:"javascript:void(0)",onClick:this.dismissCard},c().createElement("span",{className:"dashicons dashicons-no"})),c().createElement("div",{className:"jp-apps-card__top"},c().createElement("img",{src:b.hp+"get-apps.svg",alt:""})),c().createElement("div",{className:"jp-apps-card__description"},c().createElement("h3",{className:"jp-apps-card__header"},__("Jetpack in your pocket","jetpack")),c().createElement("p",{className:"jp-apps-card__paragraph"},__("Get powerful security and performance tools in your pocket with the Jetpack mobile app.","jetpack")),c().createElement("div",{className:"jp-apps-card__apps-badges"},c().createElement(f.Z,{altText:__("Google Play Store download badge.","jetpack"),titleText:__("Download the Jetpack Android mobile app.","jetpack"),storeName:"android",storeLink:"https://play.google.com/store/apps/details?id=com.jetpack.android&utm_source=jpdash&utm_medium=cta&utm_campaign=getappscard",onBadgeClick:this.trackDownloadClick}),c().createElement(f.Z,{altText:__("Apple App Store download badge.","jetpack"),titleText:__("Download the Jetpack iOS mobile app.","jetpack"),storeName:"ios",storeLink:"https://apps.apple.com/us/app/jetpack-wp-security-speed/id1565481562?pt=299112ct=jpdash&mt=8",onBadgeClick:this.trackDownloadClick})))))}}i()(w,"displayName","AppsCard"),w.propTypes={className:o().string},t.Z=(0,l.$j)((e=>({isAppsCardDismissed:(0,y.vU)(e),arePromotionsActive:(0,k.Hy)(e),userCanManageOptions:(0,k.UF)(e)})),(e=>({dismissAppCard:()=>e((0,y.VP)({dismiss_dash_app_card:!0}))})))((0,d.EN)(w))},34606:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(89105),p=n.n(u),d=n(92819),h=n(11973),f=n(81200),m=n(9913),g=n(60742),v=n(22256),b=n(3218),y=n(66552),k=n(41147);class w extends a.Component{constructor(){super(...arguments),i()(this,"handleClick",(()=>{this.props.onClick();const{eventFeature:e,path:t,currentVersion:n}=this.props;if(e||t){const r=e?{feature:e}:{},i=t?{path:t}:{},s={target:"banner",type:"upgrade",current_version:n,is_user_wpcom_connected:this.props.isCurrentUserLinked?"yes":"no",is_connection_owner:this.props.isConnectionOwner?"yes":"no",...r,...i};h.Z.tracks.recordJetpackClick(s)}}))}getHref(){const{href:e,feature:t,siteSlug:n}=this.props;return!e&&n?t?`/plans/${n}?feature=${t}`:`/plans/${n}`:e}getIcon(){const{icon:e,iconAlt:t,iconSrc:n,plan:r}=this.props;return!r||e&&n?c().createElement("div",{className:"dops-banner__icons"},c().createElement("div",{className:"dops-banner__icon"},e&&c().createElement(v.Z,{icon:e||"info-outline",size:18}),n&&c().createElement("img",{className:"dops-banner__icon-circle-svg",src:n,alt:t})),c().createElement("div",{className:"dops-banner__icon-circle"},e&&c().createElement(v.Z,{icon:e||"info-outline",size:18}),n&&c().createElement("img",{className:"dops-banner__icon-circle-svg",src:n,alt:t}))):c().createElement("div",{className:"dops-banner__icon-plan"},c().createElement(b.Z,{plan:r}))}getContent(){const{callToAction:e,description:t,list:n,title:r}=this.props;return c().createElement("div",{className:"dops-banner__content"},c().createElement("div",{className:"dops-banner__info"},c().createElement("div",{className:"dops-banner__title"},r),t&&c().createElement("div",{className:"dops-banner__description"},t),(0,d.size)(n)>0&&c().createElement("ul",{className:"dops-banner__list"},n.map(((e,t)=>c().createElement("li",{key:t},c().createElement(v.Z,{icon:"checkmark",size:18}),e))))),e&&c().createElement("div",{className:"dops-banner__action"},e&&c().createElement(m.Z,{compact:!0,href:this.getHref(),onClick:this.handleClick,primary:!0},e)))}render(){const{callToAction:e,className:t,plan:n}=this.props,r=(0,f.sc)(n),i=(0,f.G1)(n),s=(0,f.yy)(n),o=p()("dops-banner",t,{"has-call-to-action":e},{"is-upgrade-personal":i&&"is-personal-plan"===r},{"is-upgrade-premium":i&&"is-premium-plan"===r},{"is-upgrade-business":i&&"is-business-plan"===r},{"is-product":s},{"is-plan":!s},{"is-bundle":!s&&(0,f.Pu)(n)});return c().createElement(g.Z,{className:o,href:e?null:this.getHref(),onClick:e?d.noop:this.handleClick},this.getIcon(),this.getContent())}}i()(w,"propTypes",{callToAction:o().string,className:o().string,currentVersion:o().string.isRequired,description:o().node,eventFeature:o().string,feature:o().string,href:o().string,icon:o().string,iconAlt:o().string,iconSrc:o().string,list:o().arrayOf(o().string),onClick:o().func,path:o().string,plan:o().string,siteSlug:o().string,title:o().string.isRequired,isCurrentUserLinked:o().string,isConnectionOwner:o().bool}),i()(w,"defaultProps",{onClick:d.noop}),t.Z=(0,l.$j)((e=>({currentVersion:(0,y.w1)(e),isCurrentUserLinked:(0,k.BU)(e),isConnectionOwner:(0,k.QM)(e)})))(w)},45232:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(89105),c=n.n(a);class l extends o().Component{render(){const e=c()("dops-button-group",this.props.className);return o().createElement("span",{className:e},this.props.children)}}i()(l,"displayName","ButtonGroup"),i()(l,"propTypes",{children(e){let t=null;return o().Children.forEach(e.children,(e=>{e.props&&"button"===e.props.type||(t=new Error("All children elements should be a Button."))})),t}})},9913:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819);class d extends c().Component{render(){const e=this.props.href?"a":"button",{primary:t,compact:n,scary:r,borderless:i,className:s,...o}=this.props,a=u()({"dops-button":!0,"is-compact":n,"is-primary":t,"is-scary":r,"is-borderless":i});return o.className=u()(s,a),c().createElement(e,o,this.props.children)}}i()(d,"displayName","Button"),i()(d,"propTypes",{disabled:o().bool,compact:o().bool,primary:o().bool,scary:o().bool,type:o().string,href:o().string,onClick:o().func,borderless:o().bool,className:o().string}),i()(d,"defaultProps",{disabled:!1,type:"button",onClick:p.noop,borderless:!1})},3810:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(92819),c=n(89105),l=n.n(c),u=n(60742);class p extends o().Component{render(){const e=(0,a.assign)({},this.props,{className:l()(this.props.className,"is-compact")});return o().createElement(u.Z,e,this.props.children)}}i()(p,"displayName","CompactCard")},60742:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819),d=n(22256);class h extends c().Component{constructor(){super(...arguments),i()(this,"_renderWithTitle",(()=>{const e="dops-card-section-orient-"+(this.props.vertical?"vertical":"horizontal");return c().createElement("div",{className:e},c().createElement("h4",{ref:"label",className:"dops-card-section-label"},this.props.title),c().createElement("div",{ref:"content",className:"dops-card-section-content"},this.props.children))}))}render(){return c().createElement("div",{className:u()("dops-card-section",this.props.className),style:this.props.style},this.props.title?this._renderWithTitle():this.props.children)}}i()(h,"propTypes",{title:o().any,vertical:o().any,style:o().object,className:o().string,device:o().oneOf(["desktop","tablet","phone"])}),i()(h,"defaultProps",{vertical:null});class f extends c().Component{render(){return c().createElement("div",{className:"dops-card-footer"},this.props.children)}}class m extends c().Component{constructor(){super(...arguments),i()(this,"_renderIcon",(()=>c().createElement("span",{className:"dops-card-icon",style:{color:this.props.iconColor}},this.props.icon&&c().createElement(d.Z,{icon:this.props.icon,style:{backgroundColor:this.props.iconColor}}),this.props.iconLabel)))}render(){const e=u()("dops-card",this.props.className,{"is-card-link":!!this.props.href,"is-compact":this.props.compact}),t=["compact","tagName","meta","iconColor"];let n,r;return this.props.href?n=c().createElement(d.Z,{className:"dops-card__link-indicator",icon:this.props.target?"external":"chevron-right"}):t.push("href","target"),this.props.title&&(r=c().createElement("h2",{className:"dops-card-title"},this.props.title,this.props.meta&&c().createElement("span",{className:"dops-card-meta"},this.props.meta),(this.props.icon||this.props.iconLabel)&&this._renderIcon())),c().createElement(this.props.href?"a":this.props.tagName,(0,p.assign)((0,p.omit)(this.props,t),{className:e}),n,r,this.props.children)}}i()(m,"propTypes",{meta:o().any,icon:o().string,iconLabel:o().any,iconColor:o().string,style:o().object,className:o().string,href:o().string,onClick:o().func,title:o().string,tagName:o().string,target:o().string,compact:o().bool,children:o().node}),i()(m,"defaultProps",{iconColor:"#787878",className:"",tagName:"div",onClick:()=>{}}),m.Section=h,m.Footer=f,t.Z=m},53436:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(47890),u=n(912);class p extends c().Component{constructor(){super(...arguments),i()(this,"buildBars",(e=>{const t=this.props.data.length,n=this.props.chartWidth,r=n/t;let i="bottom right";return this.props.data.map((function(s,o){const a=r*(o+1);return a+230>n&&a+r-230>0&&(i="bottom left"),c().createElement(l.Z,{index:o,key:o,isTouch:this.props.isTouch,tooltipPosition:i,className:s.className,clickHandler:this.props.barClick,data:s,max:e,count:t})}),this)}))}render(){return c().createElement("div",null,c().createElement("div",{className:"dops-chart__bars"},this.buildBars(this.props.yAxisMax)),c().createElement(u.Z,{data:this.props.data,labelWidth:42}))}}i()(p,"displayName","ModuleChartBarContainer"),i()(p,"propTypes",{isTouch:o().bool,data:o().array,yAxisMax:o().number,width:o().number,barClick:o().func})},47890:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(39124),d=n(22256);class h extends c().Component{constructor(){super(...arguments),i()(this,"state",{showPopover:!1}),i()(this,"buildSections",(()=>{const e=this.props.data.value,t=this.props.max,n=100-(t?Math.ceil(e/t*1e4)/100:0),r=Math.max(1,Math.floor(n)),i=[],s=this.props.data.nestedValue,o={"dops-chart__bar-section":!0,"is-spacer":!0,"is-ghost":100===n&&!this.props.active};let a,l,p;const d={height:r+"%"};i.push(c().createElement("div",{key:"spacer",className:u()(o),style:d}));const h={top:r+"%"};return s&&(l=e?Math.ceil(s/e*1e4)/100:0,p={height:l+"%"},a=c().createElement("div",{key:"nestedValue",className:"dops-chart__bar-section-inner",style:p})),i.push(c().createElement("div",{ref:"valueBar",key:"value",className:"dops-chart__bar-section is-bar",style:h},a)),i.push(c().createElement("div",{key:"label",className:"dops-chart__bar-label"},this.props.label)),i})),i()(this,"keyHandler",(e=>{"function"==typeof this.props.clickHandler&&13===e.keyCode&&this.props.clickHandler(this.props.data)})),i()(this,"clickHandler",(()=>{"function"==typeof this.props.clickHandler&&this.props.clickHandler(this.props.data)})),i()(this,"mouseEnter",(()=>{this.setState({showPopover:!0})})),i()(this,"mouseLeave",(()=>{this.setState({showPopover:!1})})),i()(this,"renderTooltip",(()=>{if(!this.props.data.tooltipData||!this.props.data.tooltipData.length||this.props.isTouch)return null;const{tooltipData:e}=this.props.data,t=e.map((function(e,t){const n=["module-content-list-item"];let r;return e.icon&&(r=c().createElement(d.Z,{icon:e.icon,size:18})),n.push(e.className),c().createElement("li",{key:t,className:n.join(" ")},c().createElement("span",{className:"dops-wrapper"},c().createElement("span",{className:"value"},e.value),c().createElement("span",{className:"label"},r,e.label)))}));return c().createElement(p.Z,{className:"dops-chart__tooltip",id:"popover__chart-bar",showDelay:200,context:this.refs&&this.refs.valueBar,isVisible:this.state.showPopover,position:this.props.tooltipPosition},c().createElement("ul",null,t))}))}render(){const e=this.props.count||1,t={"dops-chart__bar":!0};this.props.className&&(t[this.props.className]=!0);const n={width:1/e*100+"%"};return c().createElement("div",{role:"button",tabIndex:0,onKeyUp:this.keyHandler,onClick:this.clickHandler,onMouseEnter:this.mouseEnter,onMouseLeave:this.mouseLeave,"aria-label":this.props.data.tooltipData[0].label+" — "+this.props.data.value+".",className:u()(t),style:n},this.buildSections(),c().createElement("div",{className:"dops-chart__bar-marker is-hundred"}),c().createElement("div",{className:"dops-chart__bar-marker is-fifty"}),c().createElement("div",{className:"dops-chart__bar-marker is-zero"}),this.renderTooltip())}}i()(h,"displayName","ModuleChartBar"),i()(h,"propTypes",{isTouch:o().bool,tooltipPosition:o().string,className:o().string,clickHandler:o().func,data:o().object.isRequired,max:o().number,count:o().number})},73653:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(92819),u=n(65736),p=n(53436),d=n(82538);const _x=u._x;class h extends o().Component{constructor(){super(...arguments),i()(this,"state",{maxBars:100,width:650}),i()(this,"resize",(()=>{let e,t=this.refs.chart.clientWidth-82;(0,d._)()?(t=t<=0?350:t,e=Math.floor(t/this.props.minTouchBarWidth)):e=Math.floor(t/this.props.minBarWidth),this.setState({maxBars:e,width:t})})),i()(this,"getYAxisMax",(e=>{const t=Math.max.apply(null,e),n=Math.pow(10,t.toString().length-1);let r=Math.ceil((t+1)/n)*n;return r<10&&(r=10),r})),i()(this,"getData",(()=>{let e=this.props.data;return e=e.slice(0-this.state.maxBars),e})),i()(this,"getValues",(()=>{let e=this.getData();return e=e.map((function(e){return e.value}),this),e})),i()(this,"isEmptyChart",(e=>0===(e=e.filter((function(e){return e>0}),this)).length))}componentDidMount(){this.resize=(0,l.throttle)(this.resize,400),window.addEventListener("resize",this.resize),this.resize()}componentWillUnmount(){window.removeEventListener("resize",this.resize)}UNSAFE_componentWillReceiveProps(e){this.props.loading&&!e.loading&&this.resize()}render(){const e=this.getValues(),t=this.getYAxisMax(e),n=this.getData();let r;return e.length&&this.isEmptyChart(e)&&(r=o().createElement("div",{className:"dops-chart__empty"},o().createElement("span",{className:"dops-chart__empty_notice"},_x("No activity this period","Notice in the empty statistics chart","jetpack")))),o().createElement("div",{ref:"chart",className:"dops-chart"},o().createElement("div",{className:"dops-chart__y-axis-markers"},o().createElement("div",{className:"dops-chart__y-axis-marker is-hundred"}),o().createElement("div",{className:"dops-chart__y-axis-marker is-fifty"}),o().createElement("div",{className:"dops-chart__y-axis-marker is-zero"})),o().createElement("div",{className:"dops-chart__y-axis"},o().createElement("div",{className:"dops-chart__y-axis-width-fix"},new Number(1e5).toLocaleString()),o().createElement("div",{className:"dops-chart__y-axis-label is-hundred"},t.toLocaleString()),o().createElement("div",{className:"dops-chart__y-axis-label is-fifty"},(t/2).toLocaleString()),o().createElement("div",{className:"dops-chart__y-axis-label is-zero"},0)),o().createElement(p.Z,{barClick:this.props.barClick,data:n,yAxisMax:t,chartWidth:this.state.width,isTouch:(0,d._)()}),r)}}i()(h,"displayName","ModuleChart"),i()(h,"propTypes",{loading:c().bool,data:c().array,minTouchBarWidth:c().number,minBarWidth:c().number,barClick:c().func}),i()(h,"defaultProps",{minTouchBarWidth:42,minBarWidth:15,barClick:l.noop})},12769:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a);class l extends c().Component{render(){const e={width:this.props.width+"px"};return e.left=this.props.x+"px",c().createElement("div",{className:"dops-chart__x-axis-label",style:e},this.props.label)}}i()(l,"displayName","ModuleChartLabel"),i()(l,"propTypes",{width:o().number.isRequired,x:o().number.isRequired,label:o().string.isRequired})},912:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(92819),u=n(12769);class p extends o().Component{constructor(){super(...arguments),i()(this,"state",{divisor:1,spacing:this.props.labelWidth}),i()(this,"resize",(e=>{let t=this.props;const n=this.refs.axis;!e||e instanceof Event||(t=e),n.style.overflow="hidden";const r=n.clientWidth;n.style.overflow="visible";const i=r/(t.data.length||1),s=t.labelWidth,o=Math.ceil(s/i);this.setState({divisor:o,spacing:i})}))}componentDidMount(){this.resizeThrottled=(0,l.throttle)(this.resize,400),window.addEventListener("resize",this.resizeThrottled),this.resize()}componentWillUnmount(){this.resizeThrottled.cancel&&this.resizeThrottled.cancel(),window.removeEventListener("resize",this.resizeThrottled)}UNSAFE_componentWillReceiveProps(e){this.resize(e)}render(){const e=this.props.data,t=e.map((function(t,n){const r=n*this.state.spacing+(this.state.spacing-this.props.labelWidth)/2;let i;return(e.length-n-1)%this.state.divisor==0&&(i=o().createElement(u.Z,{key:n,label:t.label,width:this.props.labelWidth,x:r})),i}),this);return o().createElement("div",{ref:"axis",className:"dops-chart__x-axis"},t)}}i()(p,"displayName","ModuleChartXAxis"),i()(p,"propTypes",{labelWidth:c().number.isRequired,data:c().array.isRequired})},18582:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(89105),d=n.n(p),h=n(92819),f=n(14318),m=n(15029);class g extends u().Component{constructor(){super(...arguments),o()(this,"state",{isCopied:!1,disabled:!1}),o()(this,"showConfirmation",(()=>{this.setState({isCopied:!0}),this.confirmationTimeout=setTimeout((()=>{this.setState({isCopied:!1})}),4e3)}))}componentWillUnmount(){clearTimeout(this.confirmationTimeout),delete this.confirmationTimeout}render(){const e=(0,h.omit)(this.props,"className","copied","copy","isError","isValid","prompt","selectOnFocus");return u().createElement("span",{className:d()("dops-clipboard-button-input",this.props.className)},u().createElement(m.Z,i()({},e,{type:"text",selectOnFocus:!0,readOnly:!0})),u().createElement(f.Z,{text:this.props.value,onCopy:this.showConfirmation,disabled:this.props.disabled,prompt:this.props.prompt,compact:!0},this.state.isCopied?this.props.copied:this.props.copy))}}o()(g,"displayName","ClipboardButtonInput"),o()(g,"propTypes",{value:c().string,disabled:c().bool,className:c().string,copied:c().string,copy:c().string,prompt:c().string}),o()(g,"defaultProps",{value:""})},81441:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(96483),h=n(71415),f=n(11973),m=n(9913),g=n(41147),v=n(66552),b=n(41922),y=n(15628),k=n(27711);const __=p.__;class w extends c().Component{constructor(e){super(e),i()(this,"handleOpenModal",(e=>{f.Z.tracks.recordJetpackClick("manage_site_connection"),e.preventDefault(),this.toggleVisibility()})),i()(this,"handleDisconnected",(()=>{this.props.fetchConnectUrl(),this.props.fetchSiteConnectionStatus()})),i()(this,"toggleVisibility",(()=>{this.setState({showModal:!this.state.showModal})})),i()(this,"loadIframe",(e=>{e.preventDefault(),this.props.isAuthorizing||this.props.fetchingConnectUrl||(f.Z.tracks.recordJetpackClick("link_account_in_place"),this.props.customConnect?this.props.customConnect():this.props.doConnectUser())})),i()(this,"renderUserButton",(()=>{if(this.props.isLinked)return c().createElement("div",null,c().createElement("a",{role:"button",tabIndex:"0",className:"jp-jetpack-unlink__button",onKeyDown:(0,b.Z)(this.props.unlinkUser),onClick:this.props.unlinkUser,disabled:this.props.isUnlinking},this.props.connectLegend||__("Disconnect your WordPress.com account","jetpack")));let e=this.props.connectUrl;this.props.from&&(e+=`&from=${this.props.from}`,e+="&additional-user");const t={className:"is-primary jp-jetpack-connect__button",href:e,disabled:this.props.fetchingConnectUrl||this.props.isAuthorizing},n=this.props.connectLegend||__("Connect your WordPress.com account","jetpack");return!this.props.connectInPlace||this.props.isSafari||this.props.doNotUseConnectionIframe||(t.onClick=this.loadIframe),this.props.asLink?c().createElement("a",t,n):c().createElement(m.Z,t,n)})),i()(this,"renderContent",(()=>{if(this.props.connectUser)return this.renderUserButton();if(this.props.isSiteConnected)return c().createElement("a",{role:"button",tabIndex:"0",onKeyDown:(0,b.Z)(this.handleOpenModal),onClick:this.handleOpenModal,disabled:this.props.isDisconnecting},this.props.connectLegend||__("Manage site connection","jetpack"));let e=this.props.connectUrl;this.props.from&&(e+=`&from=${this.props.from}`);const t={className:"jp-jetpack-connect__button",href:e,disabled:this.props.fetchingConnectUrl},n=this.props.connectLegend||__("Set up Jetpack","jetpack");return this.props.asLink?c().createElement("a",t,n):c().createElement(m.Z,t,n)})),this.state={showModal:e.autoOpenInDisconnectRoute&&"#/disconnect"===(0,d.getFragment)(window.location.href)}}render(){return c().createElement("div",null,!this.props.isSiteConnected&&c().createElement("p",{className:"jp-banner__tos-blurb"},(0,u.createInterpolateElement)(__("By clicking the button below, you agree to our <tosLink>Terms of Service</tosLink> and to <shareDetailsLink>share details</shareDetailsLink> with WordPress.com.","jetpack"),{tosLink:c().createElement("a",{href:(0,h.Z)("wpcom-tos"),rel:"noopener noreferrer",target:"_blank"}),shareDetailsLink:c().createElement("a",{href:(0,h.Z)("jetpack-support-what-data-does-jetpack-sync"),rel:"noopener noreferrer",target:"_blank"})})),this.renderContent(),this.props.children,c().createElement(y.Z,{apiNonce:this.props.apiNonce,apiRoot:this.props.apiRoot,connectedPlugins:this.props.connectedPlugins,connectedUser:{ID:this.props.userWpComId,login:this.props.userWpComLogin},connectedSiteId:this.props.connectedSiteId,disconnectStepComponent:c().createElement(k.Z,{siteBenefits:this.props.siteBenefits}),onDisconnected:this.handleDisconnected,isOpen:this.state.showModal,onClose:this.toggleVisibility,context:"jetpack"}))}}i()(w,"displayName","ConnectButton"),i()(w,"propTypes",{connectUser:o().bool,from:o().string,asLink:o().bool,connectLegend:o().string,connectInPlace:o().bool,customConnect:o().func,autoOpenInDisconnectRoute:o().bool}),i()(w,"defaultProps",{connectUser:!1,from:"",asLink:!1,connectInPlace:!0,autoOpenInDisconnectRoute:!1}),t.Z=(0,l.$j)((e=>({siteRawUrl:(0,v.JR)(e),isSiteConnected:(0,g.Gz)(e),isDisconnecting:(0,g.e_)(e),fetchingConnectUrl:(0,g.Mq)(e),connectUrl:(0,g.AM)(e),isLinked:(0,g.BU)(e),isUnlinking:(0,g.jZ)(e),isAuthorizing:(0,g.zq)(e),isSafari:(0,v.G6)(e),doNotUseConnectionIframe:(0,v.jq)(e),apiNonce:(0,v.VY)(e),apiRoot:(0,v.yB)(e),connectedPlugins:(0,v.xz)(e),siteBenefits:(0,v.Hh)(e),pluginUrl:(0,v.wB)(e),userWpComLogin:(0,v.IU)(e),userWpComId:(0,v._G)(e),connectedSiteId:(0,v.EZ)(e)})),(e=>({fetchConnectUrl:()=>e((0,g.eW)()),fetchSiteConnectionStatus:()=>e((0,g.I7)()),unlinkUser:()=>e((0,g.EP)()),doConnectUser:()=>e((0,g.bL)())})))(w)},24951:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(11268),a=n.n(o),c=n(65736),l=n(81441),u=n(60742),p=n(11973),d=n(41147);const __=c.__,h=e=>{const{feature:t,featureLabel:n,text:s,doConnectUser:o}=e,a=(0,r.useCallback)((()=>{p.Z.tracks.recordJetpackClick({target:"connection-bar-click",feature:t,is_user_wpcom_connected:"no",is_connection_owner:"no"}),o(n)}),[o,t,n]);return i().createElement(u.Z,{compact:!0,className:"jp-connect-user-bar__card"},i().createElement("div",{className:"jp-connect-user-bar__text"},(0,c.sprintf)(
+/* translators: placeholder is text adding extra instructions on what to do next. */
+__("This feature is provided by the WordPress.com cloud. %s","jetpack"),s)),i().createElement("div",{className:"jp-connect-user-bar__button"},i().createElement(l.Z,{connectUser:!0,from:"unlinked-user-connect",connectLegend:__("Connect your WordPress.com account","jetpack"),customConnect:a})))};h.propTypes={text:a().string.isRequired,feature:a().string,featureLabel:a().string},t.Z=(0,s.$j)(null,(e=>({doConnectUser:t=>e((0,d.bL)(t))})))(h)},68103:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(34606),d=n(60742),h=n(81441),f=n(22256);class m extends p.Z{getIcon(){const e=this.props.icon;return e&&"object"==typeof e?c().createElement("div",{className:"jp-connection-banner__icon"},e):c().createElement("div",{className:"dops-banner__icons"},c().createElement("div",{className:"dops-banner__icon"},c().createElement(f.Z,{icon:e||"info-outline",size:18})),c().createElement("div",{className:"dops-banner__icon-circle"},c().createElement(f.Z,{icon:e||"info-outline",size:18})))}getContent(){const{description:e,title:t,connectUser:n,from:r,asLink:i,connectInPlace:s}=this.props,o={connectUser:n,from:r,asLink:i,connectInPlace:s};return c().createElement("div",{className:"dops-banner__content"},c().createElement("div",{className:"dops-banner__info"},c().createElement("div",{className:"dops-banner__title"},t),e&&c().createElement("div",{className:"dops-banner__description"},e)),c().createElement("div",{className:"dops-banner__action"},c().createElement(h.Z,o)))}render(){const e=u()("dops-banner",this.props.className);return c().createElement(d.Z,{className:e},this.getIcon(),this.getContent())}}i()(m,"propTypes",{title:o().string.isRequired,className:o().string,description:o().node,icon:o().oneOfType([o().element,o().string]),connectUser:o().bool,from:o().string,asLink:o().bool,connectInPlace:o().bool}),t.Z=m},74465:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(81546),c=n(92672),l=n(61591),u=n(65736),p=n(55609),d=n(69307),h=n(11973);const __=u.__,f=e=>{const{title:t,logo:n,children:s,className:o,buttonLabel:u,apiRoot:f,apiNonce:m,registrationNonce:g,redirectUri:v,redirectTo:b,autoTrigger:y,isSiteConnected:k,setHasSeenWCConnectionModal:w}=e;(0,r.useEffect)((()=>{w()}),[w]);const _=(0,r.useCallback)((()=>{h.Z.tracks.recordJetpackClick("contextualized_connection_continue_button")}),[]);return i().createElement("div",{className:"jp-contextualized-connection"+(o?" "+o:"")},i().createElement("div",{className:"jp-contextualized-connection__content"},i().createElement("div",{className:"jp-contextualized-connection__logo"},n||i().createElement(a.Z,null)),i().createElement("h2",null,t),s,k&&i().createElement(p.Button,{isPrimary:!0,className:"jp-contextualized-connection__button",label:__("Continue to Jetpack","jetpack"),href:b,onClick:_},__("Continue to Jetpack","jetpack")),!k&&i().createElement(i().Fragment,null,i().createElement(c.Z,{autoTrigger:y,apiRoot:f,apiNonce:m,registrationNonce:g,redirectUri:v,connectLabel:u}),i().createElement("div",{className:"jp-contextualized-connection__tos"},l.E))),i().createElement("footer",{className:"jp-contextualized-connection__footer"},i().createElement("div",{className:"jp-contextualized-connection__footer-row"},i().createElement("div",{className:"jp-contextualized-connection__footer-column"},i().createElement("h3",null,__("Security tools","jetpack")),i().createElement("ul",{className:"jp-contextualized-connection__feature-list"},i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> downtime monitoring","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> brute force attack prevention","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,__("Full store & order backups","jetpack")),i().createElement("li",null,__("Automated malware scanning","jetpack")),i().createElement("li",null,__("Comment and form spam protection","jetpack")))),i().createElement("div",{className:"jp-contextualized-connection__footer-column"},i().createElement("h3",null,__("Performance tools","jetpack")),i().createElement("ul",{className:"jp-contextualized-connection__feature-list"},i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> Content Delivery Network (CDN)","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> lazy image loading","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> SEO tools","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,__("Instant site search","jetpack")),i().createElement("li",null,__("Ad-free WordPress video hosting","jetpack")))),i().createElement("div",{className:"jp-contextualized-connection__footer-column"},i().createElement("h3",null,__("Growth tools","jetpack")),i().createElement("ul",{className:"jp-contextualized-connection__feature-list"},i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> site stats","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> social media tools","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,(0,d.createInterpolateElement)(__("<strong>Free</strong> related posts","jetpack"),{strong:i().createElement("strong",null)})),i().createElement("li",null,__("Accept payments","jetpack")),i().createElement("li",null,__("Ad network access","jetpack"))))),i().createElement("div",{className:"jp-contextualized-connection__footer-bottom-title"},__("More than 5 million WordPress sites trust Jetpack for their website security and performance.","jetpack"))))};f.propTypes={title:o().string,className:o().string,buttonLabel:o().string,apiRoot:o().string.isRequired,apiNonce:o().string.isRequired,registrationNonce:o().string.isRequired,redirectUri:o().string.isRequired,redirectTo:o().string.isRequired,autoTrigger:o().bool,isSiteConnected:o().bool.isRequired,logo:o().shape({type:o().oneOf(["img","svg"])})},t.Z=f},44135:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(7767),c=n.n(a),l=n(21425),u=n.n(l);t.Z=c()({displayName:"Count",mixins:[u()],propTypes:{count:i().number.isRequired},render(){return o().createElement("span",{className:"dops-count"},this.numberFormat(this.props.count))}})},51117:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(89105),d=n.n(p),h=n(2620),f=n(92819),m=n(65736),g=n(71415),v=n(11973),b=n(9913),y=n(60742),k=n(93107),w=n(66552),_=n(41147),E=n(77222),C=n(27415),S=n(35303),j=n(88001),M=n(25691),x=n(5e4);const __=m.__,_x=m._x;class N extends l.Component{constructor(){super(...arguments),o()(this,"toggleModule",(()=>{const{updateOptions:e,module:t,getOptionValue:n}=this.props;e({[t]:!n(t)})})),o()(this,"trackPaidBtnClick",(()=>{v.Z.tracks.recordJetpackClick({target:"paid-button",feature:this.props.module,page:"aag"})}))}render(){let e,t,n="";const r=d()(this.props.className,"jp-dash-item",this.props.disabled?"jp-dash-item__disabled":"");return""!==this.props.module&&(t=(0,f.includes)(["monitor","protect","photon","vaultpress","scan","backups","akismet","search"],this.props.module)&&this.props.isOfflineMode||this.props.noToggle||"manage"===this.props.module?"":u().createElement(E.T,{slug:this.props.module,activated:this.props.getOptionValue(this.props.module),toggling:this.props.isUpdating(this.props.module),toggleModule:this.toggleModule,compact:!0}),"manage"===this.props.module&&("is-warning"===this.props.status&&(t=u().createElement("a",{href:this.props.isOfflineMode?this.props.siteAdminUrl+"update-core.php":(0,g.Z)("calypso-plugins-manage",{site:this.props.siteRawUrl})},u().createElement(j.Z,{showDismiss:!1,status:this.props.status,isCompact:!0},_x("Updates needed","Short warning message","jetpack")))),"is-working"===this.props.status&&(t=u().createElement("span",{className:"jp-dash-item__active-label"},__("Active","jetpack")))),"rewind"===this.props.module&&(t=null)),this.props.pro&&!this.props.isOfflineMode&&(n=u().createElement(b.Z,{onClick:this.trackPaidBtnClick,compact:!0,href:"#/plans"},_x("Paid","Short label appearing near a paid feature configuration block.","jetpack")),this.props.isModule&&(t=u().createElement(C.Z,{proFeature:this.props.module,siteAdminUrl:this.props.siteAdminUrl}))),this.props.module&&this.props.getModule&&(e=this.props.getModule(this.props.module)),u().createElement("div",{className:r},u().createElement(S.Z,{label:this.props.label,cardBadge:n},this.props.userCanToggle?t:""),this.props.overrideContent?this.props.overrideContent:u().createElement(y.Z,{className:"jp-dash-item__card",href:this.props.href},u().createElement("div",{className:"jp-dash-item__content"},this.props.support.link&&u().createElement(M.Z,i()({module:e},this.props.support)),this.props.children)))}}o()(N,"propTypes",{label:c().string,status:c().string,statusText:c().string,disabled:c().bool,module:c().string,pro:c().bool,isModule:c().bool,support:c().object,overrideContent:c().element,noToggle:c().bool}),o()(N,"defaultProps",{label:"",module:"",pro:!1,isModule:!0,support:{text:"",link:""},noToggle:!1}),t.Z=(0,h.$j)((e=>({getModule:t=>(0,k.rT)(e,t),isOfflineMode:(0,_.Ex)(e),userCanToggle:(0,w.pK)(e),siteRawUrl:(0,w.JR)(e),siteAdminUrl:(0,w.wW)(e)})))((0,x.u)(N))},69733:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(11973);class d extends c().Component{constructor(){super(...arguments),i()(this,"trackCogClick",(()=>{p.Z.tracks.recordJetpackClick({target:"settings-cog",group:"security",page:"aag"})}))}render(){let e,t;const n=u()(this.props.className,"jp-dash-section-header");return this.props.externalLink&&(e=c().createElement("a",{className:"jp-dash-section-header__external-link",href:this.props.externalLinkPath,onClick:this.props.externalLinkClick},this.props.externalLink)),this.props.children&&(t=c().createElement("div",{className:"jp-dash-section-header__children"},this.props.children)),c().createElement("div",{className:n},c().createElement("div",{className:"jp-dash-section-header__label"},c().createElement("h2",{className:"jp-dash-section-header__name"},this.props.label)),e,t)}}i()(d,"displayName","DashSectionHeader"),i()(d,"propTypes",{label:o().string.isRequired,settingsPath:o().string,externalLinkPath:o().string,externalLink:o().string,externalLinkClick:o().func}),i()(d,"defaultProps",{label:"",settingsPath:"",externalLinkPath:"",externalLink:""}),t.Z=d},2795:function(e,t,n){"use strict";var r=n(99196),i=n(2620),s=n(74978),o=n(75395);class a extends r.Component{UNSAFE_componentWillMount(){this.props.fetchingAkismetData||this.props.fetchAkismetData()}render(){return null}}a.defaultProps={fetchAkismetData:()=>{}},t.Z=(0,i.$j)((e=>({fetchAkismetData:(0,o.bB)(),fetchingAkismetData:(0,o.bV)(e)})),(e=>(0,s.DE)({fetchAkismetData:o.bB},e)))(a)},65125:function(e,t,n){"use strict";var r=n(99196),i=n(2620),s=n(74978),o=n(75395);class a extends r.Component{UNSAFE_componentWillMount(){this.props.isCheckingAkismetKey||this.props.checkAkismetKey()}render(){return null}}a.defaultProps={checkAkismetKey:()=>{}},t.Z=(0,i.$j)((e=>({checkAkismetKey:(0,o.Bt)(),isCheckingAkismetKey:(0,o.gw)(e)})),(e=>(0,s.DE)({checkAkismetKey:o.Bt},e)))(a)},66683:function(e,t,n){"use strict";var r=n(99196),i=n(2620),s=n(74978),o=n(75395),a=n(93107);class c extends r.Component{UNSAFE_componentWillMount(){!this.props.fetchingProtectData&&this.props.isModuleActivated("protect")&&this.props.fetchProtectCount()}render(){return null}}c.defaultProps={fetchProtectCount:()=>{}},t.Z=(0,i.$j)((e=>({fetchProtectCount:(0,o.eR)(),fetchingProtectData:(0,o.Xu)(e),isModuleActivated:t=>(0,a.mp)(e,t)})),(e=>(0,s.DE)({fetchProtectCount:o.eR},e)))(c)},63038:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(92819),u=n(13553);class p extends a.Component{componentDidMount(){!this.props.isFetchingProducts&&(0,l.isEmpty)(this.props.products)&&this.props.fetchProducts()}render(){return null}}i()(p,"propTypes",{isFetchingProducts:o().bool}),i()(p,"defaultProps",{isFetchingProducts:!1}),t.Z=(0,c.$j)((e=>({isFetchingProducts:(0,u.T0)(e),products:(0,u.Xp)(e)})),(e=>({fetchProducts:()=>e((0,u.t2)())})))(p)},76563:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(90218),u=n(41147);class p extends a.Component{componentDidMount(){this.props.isFetchingRecommendationsData||this.props.isOfflineMode||this.props.fetchRecommendationsData()}render(){return null}}i()(p,"propTypes",{isFetchingRecommendationsData:o().bool,isOfflineMode:o().bool}),i()(p,"defaultProps",{isFetchingRecommendationsData:!1,isOfflineMode:!1}),t.Z=(0,c.$j)((e=>({isFetchingRecommendationsData:(0,l.WS)(e),isOfflineMode:(0,u.Ex)(e)})),(e=>({fetchRecommendationsData:()=>e((0,l.V2)())})))(p)},76287:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(90218),u=n(41147);class p extends a.Component{componentDidMount(){this.props.isFetchingRecommendationsProductSuggestions||this.props.isOfflineMode||this.props.fetchRecommendationsProductSuggestions()}render(){return null}}i()(p,"propTypes",{isFetchingRecommendationsProductSuggestions:o().bool,isOfflineMode:o().bool}),i()(p,"defaultProps",{isFetchingRecommendationsProductSuggestions:!1,isOfflineMode:!1}),t.Z=(0,c.$j)((e=>({isFetchingRecommendationsProductSuggestions:(0,l.at)(e),isOfflineMode:(0,u.Ex)(e)})),(e=>({fetchRecommendationsProductSuggestions:()=>e((0,l.km)())})))(p)},83361:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(90218),u=n(41147);class p extends a.Component{componentDidMount(){this.props.isFetchingRecommendationsUpsell||this.props.isOfflineMode||this.props.fetchRecommendationsUpsell()}render(){return null}}i()(p,"propTypes",{isFetchingRecommendationsUpsell:o().bool,isOfflineMode:o().bool}),i()(p,"defaultProps",{isFetchingRecommendationsUpsell:!1,isOfflineMode:!1}),t.Z=(0,c.$j)((e=>({isFetchingRecommendationsUpsell:(0,l.b5)(e),isOfflineMode:(0,u.Ex)(e)})),(e=>({fetchRecommendationsUpsell:()=>e((0,l.tR)())})))(p)},9477:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(30701),u=n(88872),p=n(41147);class d extends a.Component{UNSAFE_componentWillMount(){this.props.isFetchingRewindStatus||this.props.isOfflineMode||this.props.fetchRewind()}render(){return null}}i()(d,"propTypes",{isFetchingRewindStatus:o().bool,isOfflineMode:o().bool,sitePlan:o().object}),i()(d,"defaultProps",{isFetchingRewindStatus:!1,isOfflineMode:!1,sitePlan:{}}),t.Z=(0,c.$j)((e=>({isFetchingRewindStatus:(0,l.Li)(e),isOfflineMode:(0,p.Ex)(e),sitePlan:(0,u.UL)(e)})),(e=>({fetchRewind:()=>e((0,l.Au)())})))(d)},21205:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(35795),u=n(41147);class p extends a.Component{UNSAFE_componentWillMount(){this.props.isFetchingScanStatus||this.props.isOfflineMode||this.props.fetchScan()}render(){return null}}i()(p,"propTypes",{isFetchingScanStatus:o().bool,isOfflineMode:o().bool}),i()(p,"defaultProps",{isFetchingScanStatus:!1,isOfflineMode:!1}),t.Z=(0,c.$j)((e=>({isFetchingScanStatus:(0,l.gE)(e),isOfflineMode:(0,u.Ex)(e)})),(e=>({fetchScan:()=>e((0,l.eR)())})))(p)},15142:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(61744);class a extends i().Component{UNSAFE_componentWillMount(){this.props.isFetchingPluginsData||this.props.fetchPluginsData()}render(){return null}}t.Z=(0,s.$j)((e=>({isFetchingPluginsData:(0,o.vz)(e)})),(e=>({fetchPluginsData:()=>e((0,o.s4)())})))(a)},27219:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n(2620),l=n(92819),u=n(88872),p=n(41147);class d extends a.Component{UNSAFE_componentWillMount(){this.props.isFetchingSiteData||this.props.isOfflineMode||!(0,l.isEmpty)(this.props.sitePlan)||(this.props.fetchSiteData(),this.props.fetchSiteFeatures(),this.props.fetchAvailablePlans(),this.props.fetchSitePurchases())}render(){return null}}i()(d,"propTypes",{isFetchingSiteData:o().bool,isOfflineMode:o().bool,sitePlan:o().object}),i()(d,"defaultProps",{isFetchingSiteData:!1,isOfflineMode:!1,sitePlan:{}}),t.Z=(0,c.$j)((e=>({isFetchingSiteData:(0,u._5)(e),isOfflineMode:(0,p.Ex)(e),sitePlan:(0,u.UL)(e)})),(e=>({fetchSiteData:()=>e((0,u.tO)()),fetchSiteFeatures:()=>e((0,u.ij)()),fetchAvailablePlans:()=>e((0,u.lA)()),fetchSitePurchases:()=>e((0,u.Z_)())})))(d)},69039:function(e,t,n){"use strict";var r=n(99196),i=n(2620),s=n(75395);class o extends r.Component{UNSAFE_componentWillMount(){this.props.fetchingStatsData||this.props.fetchStatsData(this.props.range)}render(){return null}}o.defaultProps={fetchStatsData:()=>{}},t.Z=(0,i.$j)((e=>({fetchStatsData:t=>(0,s.g4)(e,t),fetchingStatsData:(0,s.F2)(e)})),(e=>({fetchStatsData:t=>e((0,s.g4)(t))})))(o)},80125:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(66552),a=n(41147);class c extends i().Component{UNSAFE_componentWillMount(){!this.props.isFetchingUserData&&this.props.userCanConnectAccount&&this.props.fetchUserConnectionData()}render(){return null}}t.Z=(0,s.$j)((e=>({isFetchingUserData:(0,a.Dd)(e),userCanConnectAccount:(0,o.n0)(e)})),(e=>({fetchUserConnectionData:()=>e((0,a.jb)())})))(c)},39786:function(e,t,n){"use strict";var r=n(99196),i=n(2620),s=n(74978),o=n(75395),a=n(93107);class c extends r.Component{UNSAFE_componentWillMount(){!this.props.fetchingVaultPressData&&this.props.isModuleActivated("vaultpress")&&this.props.fetchVaultPressData()}render(){return null}}c.defaultProps={fetchVaultPressData:()=>{}},t.Z=(0,i.$j)((e=>({fetchVaultPressData:(0,o.l7)(),fetchingVaultPressData:(0,o.P_)(e),isModuleActivated:t=>(0,a.mp)(e,t)})),(e=>(0,s.DE)({fetchVaultPressData:o.l7},e)))(c)},74891:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(89105),l=n.n(c),u=n(81200),p=n(92819),d=n(66552),h=n(88872),f=n(41147),m=n(28843),g=n(75395),v=n(60742),b=n(41922),y=n(30701),k=n(35795);class w extends o().Component{constructor(){super(...arguments),i()(this,"onPlanChange",(e=>{this.props.switchPlanPreview(e.target.value)})),i()(this,"onPermissionsChange",(e=>{this.props.switchUserPermissions(e.target.value)})),i()(this,"onThreatsChange",(e=>{this.props.switchThreats(e.target.value)})),i()(this,"onRewindStatusChange",(e=>{this.props.switchRewindState(e.target.value)})),i()(this,"onScanStatusChange",(e=>{this.props.switchScanState(e.target.value)})),i()(this,"maybeShowStatsToggle",(()=>{if(!this.props.isAdmin)return o().createElement("div",null,o().createElement("hr",null),o().createElement("ul",null,o().createElement("li",null,o().createElement("label",{htmlFor:"view_stats"},o().createElement("input",{type:"radio",id:"view_stats",value:"view_stats",name:"view_stats",checked:this.props.canViewStats,onChange:this.onPermissionsChange}),"Can view stats")),o().createElement("li",null,o().createElement("label",{htmlFor:"hide_stats"},o().createElement("input",{type:"radio",id:"hide_stats",value:"hide_stats",name:"hide_stats",checked:!this.props.canViewStats,onChange:this.onPermissionsChange}),"Can not view stats"))))})),i()(this,"showIsLinkedToggle",(()=>o().createElement("div",null,o().createElement("hr",null),o().createElement("ul",null,o().createElement("li",null,o().createElement("label",{htmlFor:"is_linked"},o().createElement("input",{type:"radio",id:"is_linked",value:"is_linked",name:"is_linked",checked:this.props.isUserLinked,onChange:this.onPermissionsChange}),"Linked")),o().createElement("li",null,o().createElement("label",{htmlFor:"is_unlinked"},o().createElement("input",{type:"radio",id:"is_unlinked",value:"is_unlinked",name:"is_unlinked",checked:!this.props.isUserLinked,onChange:this.onPermissionsChange}),"Unlinked"))))))}render(){if(!this.props.canDisplayDevCard)return null;const e=l()(this.props.className,"jp-dev-card"),t=(0,u.sc)(this.props.sitePlan.product_slug),n=(0,p.get)(this.props.rewindStatus,["state"],!1),r=(0,p.get)(this.props.scanStatus,["state"],!1);return o().createElement(v.Z,{compact:!0,className:e},o().createElement("a",{className:"jp-dev-card__close",role:"button",tabIndex:"0",onKeyDown:(0,b.Z)(this.props.disableDevCard),onClick:this.props.disableDevCard},"x"),o().createElement("div",{className:"jp-dev-card__heading"},"Dev Tools"),o().createElement("ul",null,o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_free"},o().createElement("input",{type:"radio",id:"jetpack_free",value:"jetpack_free",name:"jetpack_free",checked:"is-free-plan"===t,onChange:this.onPlanChange}),"Free")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_personal"},o().createElement("input",{type:"radio",id:"jetpack_personal",value:"jetpack_personal",name:"jetpack_personal",checked:"is-personal-plan"===t,onChange:this.onPlanChange}),"Personal")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_premium"},o().createElement("input",{type:"radio",id:"jetpack_premium",value:"jetpack_premium",name:"jetpack_premium",checked:"is-premium-plan"===t,onChange:this.onPlanChange}),"Premium")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_business"},o().createElement("input",{type:"radio",id:"jetpack_business",value:"jetpack_business",name:"jetpack_business",checked:"is-business-plan"===t,onChange:this.onPlanChange}),"Pro")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_security_t1"},o().createElement("input",{type:"radio",id:"jetpack_security_t1",value:"jetpack_security_t1_yearly",name:"jetpack_security_t1_yearly",checked:"is-security-t1-plan"===t,onChange:this.onPlanChange}),"Security (10 GB)")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_security_t2"},o().createElement("input",{type:"radio",id:"jetpack_security_t2",value:"jetpack_security_t2_yearly",name:"jetpack_security_t2_yearly",checked:"is-security-t2-plan"===t,onChange:this.onPlanChange}),"Security (1 TB)")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_complete"},o().createElement("input",{type:"radio",id:"jetpack_complete",value:"jetpack_complete",name:"jetpack_complete",checked:"is-complete-plan"===t,onChange:this.onPlanChange}),"Complete")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_backup_t1"},o().createElement("input",{type:"radio",id:"jetpack_backup_t1",value:"jetpack_backup_t1_yearly",name:"jetpack_backup_t1_yearly",checked:"is-backup-t1-plan"===t,onChange:this.onPlanChange}),"Backup (10 GB)")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_backup_t2"},o().createElement("input",{type:"radio",id:"jetpack_backup_t2",value:"jetpack_backup_t2_yearly",name:"jetpack_backup_t2_yearly",checked:"is-backup-t2-plan"===t,onChange:this.onPlanChange}),"Backup (1 TB)")),o().createElement("li",{className:"jp-dev-card__deprecated-plans-list-header"},"— DEPRECATED —"),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_security_daily"},o().createElement("input",{type:"radio",id:"jetpack_security_daily",value:"jetpack_security_daily",name:"jetpack_security_daily",checked:"is-daily-security-plan"===t,onChange:this.onPlanChange}),"Security Daily")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_security_realtime"},o().createElement("input",{type:"radio",id:"jetpack_security_realtime",value:"jetpack_security_realtime",name:"jetpack_security_realtime",checked:"is-realtime-security-plan"===t,onChange:this.onPlanChange}),"Security Real-Time")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_backup_daily"},o().createElement("input",{type:"radio",id:"jetpack_backup_daily",value:"jetpack_backup_daily",name:"jetpack_backup_daily",checked:"is-daily-backup-plan"===t,onChange:this.onPlanChange}),"Backup Daily")),o().createElement("li",null,o().createElement("label",{htmlFor:"jetpack_backup_realtime"},o().createElement("input",{type:"radio",id:"jetpack_backup_realtime",value:"jetpack_backup_realtime",name:"jetpack_backup_realtime",checked:"is-realtime-backup-plan"===t,onChange:this.onPlanChange}),"Backup Real-time"))),o().createElement("hr",null),o().createElement("ul",null,o().createElement("li",null,o().createElement("label",{htmlFor:"admin_master"},o().createElement("input",{type:"radio",id:"admin_master",value:"admin_master",name:"admin_master",checked:this.props.isConnectionOwner,onChange:this.onPermissionsChange}),"Admin (master)")),o().createElement("li",null,o().createElement("label",{htmlFor:"admin_secondary"},o().createElement("input",{type:"radio",id:"admin_secondary",value:"admin_secondary",name:"admin_secondary",checked:this.props.isAdmin&&!this.props.isConnectionOwner,onChange:this.onPermissionsChange}),"Admin (secondary)")),o().createElement("li",null,o().createElement("label",{htmlFor:"editor"},o().createElement("input",{type:"radio",id:"editor",value:"editor",name:"editor",checked:this.props.canEditPosts&&!this.props.isAdmin,onChange:this.onPermissionsChange}),"Editor")),o().createElement("li",null,o().createElement("label",{htmlFor:"subscriber"},o().createElement("input",{type:"radio",id:"subscriber",value:"subscriber",name:"subscriber",checked:!this.props.canEditPosts&&!this.props.isAdmin,onChange:this.onPermissionsChange}),"Subscriber"))),o().createElement("hr",null),o().createElement("ul",null,o().createElement("li",null,o().createElement("label",{htmlFor:"nothreats"},o().createElement("input",{type:"radio",id:"nothreats",value:0,name:"nothreats",checked:0===this.props.getVaultPressScanThreatCount(),onChange:this.onThreatsChange}),"No threats")),o().createElement("li",null,o().createElement("label",{htmlFor:"threats"},o().createElement("input",{type:"radio",id:"threats",value:17,name:"threats",checked:0!==this.props.getVaultPressScanThreatCount(),onChange:this.onThreatsChange}),"Threats"))),o().createElement("hr",null),o().createElement("ul",null,o().createElement("strong",null,"Backup"),o().createElement("li",null,o().createElement("label",{htmlFor:"rewindUnavailable"},o().createElement("input",{type:"radio",id:"rewindUnavailable",value:"unavailable",name:"unavailable",checked:"unavailable"===n,onChange:this.onRewindStatusChange}),"Unavailable")),o().createElement("li",null,o().createElement("label",{htmlFor:"rewindProvisioning"},o().createElement("input",{type:"radio",id:"rewindProvisioning",value:"provisioning",name:"provisioning",checked:"provisioning"===n,onChange:this.onRewindStatusChange}),"Provisioning")),o().createElement("li",null,o().createElement("label",{htmlFor:"rewindAwatingCreds"},o().createElement("input",{type:"radio",id:"rewindAwatingCreds",value:"awaiting_credentials",name:"awaiting_credentials",checked:"awaiting_credentials"===n,onChange:this.onRewindStatusChange}),"Awaiting credentials")),o().createElement("li",null,o().createElement("label",{htmlFor:"rewindActive"},o().createElement("input",{type:"radio",id:"rewindActive",value:"active",name:"active",checked:"active"===n,onChange:this.onRewindStatusChange}),"Active"))),o().createElement("ul",null,o().createElement("strong",null,"Scan"),o().createElement("li",null,o().createElement("label",{htmlFor:"scanUnavailable"},o().createElement("input",{type:"radio",id:"scanUnavailable",value:"unavailable",name:"unavailable",checked:"unavailable"===r,onChange:this.onScanStatusChange}),"Unavailable")),o().createElement("li",null,o().createElement("label",{htmlFor:"scanProvisioning"},o().createElement("input",{type:"radio",id:"scanProvisioning",value:"provisioning",name:"provisioning",checked:"provisioning"===r,onChange:this.onScanStatusChange}),"Provisioning")),o().createElement("li",null,o().createElement("label",{htmlFor:"scanIdle"},o().createElement("input",{type:"radio",id:"scanIdle",value:"idle",name:"idle",checked:"idle"===r,onChange:this.onScanStatusChange}),"Idle")),o().createElement("li",null,o().createElement("label",{htmlFor:"scanScanning"},o().createElement("input",{type:"radio",id:"scanScanning",value:"scanning",name:"scanning",checked:"scanning"===r,onChange:this.onScanStatusChange}),"Scanning"))),this.maybeShowStatsToggle(),this.showIsLinkedToggle())}}i()(w,"displayName","DevCard"),t.Z=(0,a.$j)((e=>({isDevVersion:(0,d._W)(e),sitePlan:(0,h.UL)(e),canDisplayDevCard:(0,m.Ry)(e),isUserLinked:(0,f.BU)(e),canViewStats:(0,d.px)(e),isConnectionOwner:(0,f.QM)(e),isAdmin:(0,d.WB)(e),canEditPosts:(0,d.rp)(e),getVaultPressScanThreatCount:()=>(0,g._R)(e),rewindStatus:(0,y.of)(e),scanStatus:(0,k.C8)(e)})),(e=>({switchPlanPreview:t=>e((0,m.fb)(t)),switchUserPermissions:t=>e((0,m.Yw)(t)),switchThreats:t=>e((0,m.aX)(parseInt(t))),disableDevCard:()=>e((0,m.Wh)()),switchRewindState:t=>e((0,m._s)(t)),switchScanState:t=>e((0,m.pH)(t))})))(w)},68961:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(7767),c=n.n(a),l=n(21425),u=n.n(l),p=n(89105),d=n.n(p),h=n(92819),f=n(22256);t.Z=c()({displayName:"ExternalLink",mixins:[u()],propTypes:{className:i().string,href:i().string,onClick:i().func,icon:i().bool,iconSize:i().number},getDefaultProps:()=>({iconSize:18}),render(){const e=d()("dops-external-link",this.props.className,{"has-icon":!!this.props.icon}),t=(0,h.assign)({},(0,h.omit)(this.props,"icon","iconSize"),{className:e,rel:"external"});return o().createElement("a",t,this.props.children,this.props.icon?o().createElement(f.Z,{icon:"external",size:this.props.iconSize}):null)}})},78919:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(89105),d=n.n(p),h=n(92819),f=n(60742),m=n(3810),g=n(22256),v=n(41922);class b extends u().Component{constructor(){super(...arguments),o()(this,"state",{expanded:this.props.expanded}),o()(this,"onClick",(()=>{this.props.children&&this.setState({expanded:!this.state.expanded}),this.props.onClick&&this.props.onClick(),this.state.expanded?this.props.onClose(this.props.cardKey):this.props.onOpen(this.props.cardKey)})),o()(this,"getClickAction",(()=>{if(!this.props.disabled)return this.onClick})),o()(this,"getActionButton",(()=>this.state.expanded&&this.props.actionButtonExpanded||this.props.actionButton)),o()(this,"renderActionButton",(()=>{const e=this.props.clickableHeader?null:this.getClickAction();if(this.props.actionButton)return u().createElement("button",{className:"dops-foldable-card__action",onClick:e},this.getActionButton());if(this.props.children){const t=24;return u().createElement("button",{type:"button",disabled:this.props.disabled,className:"dops-foldable-card__action dops-foldable-card__expand",onClick:e},u().createElement("span",{className:"screen-reader-text"},"More"),u().createElement(g.Z,{icon:this.props.icon,size:t}))}})),o()(this,"renderContent",(()=>u().createElement("div",{className:"dops-foldable-card__content"},this.props.children))),o()(this,"renderHeader",(()=>{const e=this.props.summary?u().createElement("span",{className:"dops-foldable-card__summary"},this.props.summary," "):null,t=this.props.expandedSummary?u().createElement("span",{className:"dops-foldable-card__summary_expanded"},this.props.expandedSummary," "):null,n=this.props.header?u().createElement("div",{className:"dops-foldable-card__header-text"},this.props.header):null,r=this.props.subheader?u().createElement("div",{className:"dops-foldable-card__subheader"},this.props.subheader):null,s={role:"button",tabIndex:0,onClick:this.getClickAction(),onKeyDown:(0,v.Z)(this.getClickAction())},o=d()("dops-foldable-card__header",{"is-clickable":!!this.props.clickableHeader,"has-border":!!this.props.summary}),a=d()("dops-foldable-card__header-text",{"is-clickable":!!this.props.clickableHeaderText});return u().createElement("div",i()({className:o},this.props.clickableHeader?s:{}),u().createElement("span",{className:"dops-foldable-card__main"},u().createElement("div",i()({className:a},this.props.clickableHeaderText?s:{}),n,r)),u().createElement("span",{className:"dops-foldable-card__secondary"},e,t,this.renderActionButton()))}))}render(){const e=this.props.compact?m.Z:f.Z,t=d()("dops-foldable-card",this.props.className,{"is-disabled":!!this.props.disabled,"is-expanded":!!this.state.expanded,"has-expanded-summary":!!this.props.expandedSummary});return u().createElement(e,{className:t},this.renderHeader(),this.state.expanded&&this.renderContent())}}o()(b,"propTypes",{actionButton:c().element,actionButtonExpanded:c().element,cardKey:c().string,compact:c().bool,disabled:c().bool,expandedSummary:c().oneOfType([c().string,c().element]),expanded:c().bool,icon:c().string,onClick:c().func,onClose:c().func,onOpen:c().func,summary:c().oneOfType([c().string,c().element]),clickableHeader:c().bool,clickableHeaderText:c().bool}),o()(b,"defaultProps",{onOpen:h.noop,onClose:h.noop,cardKey:"",icon:"chevron-down",isExpanded:!1,clickableHeader:!1,clickableHeaderText:!1}),t.Z=b},4696:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(89105),l=n.n(c),u=n(65736),p=n(71415),d=n(97967),h=n(11973),f=n(28843),m=n(74891),g=n(66552),v=n(41147),b=n(41922);const __=u.__,_x=u._x,y=()=>{const e=document.getElementById("jp-navigation").offsetTop;window.scrollTo(0,window.scrollY-e/1.5),window.scrollY>e&&window.requestAnimationFrame(y)};class k extends o().Component{constructor(){super(...arguments),i()(this,"resetOnClick",(()=>{window.confirm(__("This will reset all Jetpack options, are you sure?","jetpack"))&&this.props.resetOptions()})),i()(this,"trackVersionClick",(()=>{h.Z.tracks.recordJetpackClick({target:"footer_link",link:"version"})})),i()(this,"trackTermsClick",(()=>{h.Z.tracks.recordJetpackClick({target:"footer_link",link:"terms"})})),i()(this,"trackAboutClick",(()=>{h.Z.tracks.recordJetpackClick({target:"footer_link",link:"about"})})),i()(this,"trackPrivacyClick",(()=>{window.requestAnimationFrame(y),h.Z.tracks.recordJetpackClick({target:"footer_link",link:"privacy"})})),i()(this,"trackModulesClick",(()=>{h.Z.tracks.recordJetpackClick({target:"footer_link",link:"modules"})})),i()(this,"trackDebugClick",(()=>{h.Z.tracks.recordJetpackClick({target:"footer_link",link:"debug"})}))}render(){const e=l()(this.props.className,"jp-footer"),t=this.props.currentVersion,n=this.props.siteConnectionStatus?this.props.siteAdminUrl+"admin.php?page=jetpack_about":(0,p.Z)("jetpack"),r=this.props.siteConnectionStatus?this.props.siteAdminUrl+"admin.php?page=jetpack#/privacy":(0,p.Z)("a8c-privacy");return o().createElement("div",{className:e},o().createElement("ul",{className:"jp-footer__links"},(()=>{if(!this.props.isAtomicPlatform)return o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackVersionClick,href:(0,p.Z)("jetpack"),target:"_blank",rel:"noopener noreferrer",className:"jp-footer__link",title:__("Jetpack version","jetpack")},t?(0,u.sprintf)(
+/* Translators: placeholder is a version number. */
+__("Jetpack version %s","jetpack"),t):"Jetpack"))})(),o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackAboutClick,href:n,className:"jp-footer__link",title:__("About Jetpack","jetpack")},_x("About","Link to learn more about Jetpack.","jetpack"))),o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackTermsClick,href:(0,p.Z)("wpcom-tos"),target:"_blank",rel:"noopener noreferrer",title:__("WordPress.com Terms of Service","jetpack"),className:"jp-footer__link"},_x("Terms","Shorthand for Terms of Service.","jetpack"))),o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackPrivacyClick,href:r,rel:"noopener noreferrer",title:__("Automattic's Privacy Policy","jetpack"),className:"jp-footer__link"},_x("Privacy","Shorthand for Privacy Policy.","jetpack"))),(()=>{if(this.props.siteConnectionStatus&&this.props.userCanManageOptions)return o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackModulesClick,href:this.props.siteAdminUrl+"admin.php?page=jetpack_modules",title:__("Access the full list of Jetpack modules available on your site.","jetpack"),className:"jp-footer__link"},_x("Modules","Navigation item. Noun. Links to a list of modules for Jetpack.","jetpack")))})(),(()=>{if(this.props.userCanManageOptions)return o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{onClick:this.trackDebugClick,href:this.props.siteAdminUrl+"admin.php?page=jetpack-debugger",title:__("Test your site’s compatibility with Jetpack.","jetpack"),className:"jp-footer__link"},_x("Debug","Navigation item. Noun. Links to a debugger tool for Jetpack.","jetpack")))})(),(()=>this.props.isDevVersion&&this.props.userCanManageOptions?o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{role:"button",tabIndex:"0",onKeyDown:(0,b.Z)(this.resetOnClick),onClick:this.resetOnClick,className:"jp-footer__link"},_x("Reset Options (dev only)","Navigation item.","jetpack"))):"")(),(()=>this.props.isDevVersion?o().createElement("li",{className:"jp-footer__link-item"},o().createElement("a",{role:"button",tabIndex:"0",onKeyDown:(0,b.Z)(this.props.enableDevCard),onClick:this.props.enableDevCard,className:"jp-footer__link"},_x("Dev Tools","Navigation item.","jetpack"))):"")(),(()=>{if(this.props.isDevVersion&&this.props.displayDevCard)return o().createElement(m.Z,null)})()),o().createElement("div",{className:"jp-footer__rna-footer"},o().createElement(d.Z,{a8cLogoHref:n})))}}i()(k,"displayName","Footer"),t.Z=(0,a.$j)((e=>({currentVersion:(0,g.w1)(e),displayDevCard:(0,f.Ry)(e),isAtomicPlatform:(0,g.vL)(e),isDevVersion:(0,g._W)(e),isInIdentityCrisis:(0,v.l9)(e),siteAdminUrl:(0,g.wW)(e),siteConnectionStatus:(0,v.Gz)(e),userCanManageOptions:(0,g.UF)(e)})),(e=>({resetOptions:()=>e((0,f._G)("options")),enableDevCard:()=>e((0,f.vN)())})))(k)},28859:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(22256);class d extends c().Component{render(){const e=u()({"form-input-validation":!0,"is-warning":this.props.isWarning,"is-error":this.props.isError}),t=this.props.isError||this.props.isWarning?"notice-outline":"checkmark";return c().createElement("div",{className:e},c().createElement("span",null,c().createElement(p.Z,{size:24,icon:this.props.icon?this.props.icon:t})," ",this.props.text))}}i()(d,"displayName","FormInputValidation"),i()(d,"propTypes",{isError:o().bool,isWarning:o().bool,text:o().node,icon:o().string}),i()(d,"defaultProps",{isError:!1})},14318:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(91850),u=n.n(l),p=n(99196),d=n.n(p),h=n(31439),f=n.n(h),m=n(92819),g=n(89105),v=n.n(g),b=n(9913);class y extends d().Component{constructor(){super(...arguments),o()(this,"displayPrompt",(()=>{window.prompt(this.props.prompt,this.props.text)}))}componentDidMount(){const e=u().findDOMNode(this.refs.button);this.clipboard=new(f())(e,{text:()=>this.props.text}),this.clipboard.on("success",this.props.onCopy),this.clipboard.on("error",this.displayPrompt)}componentWillUnmount(){this.clipboard.destroy(),delete this.clipboard}render(){const e=v()("dops-clipboard-button",this.props.className);return d().createElement(b.Z,i()({ref:"button"},(0,m.omit)(this.props,Object.keys(this.constructor.propTypes)),{className:e}))}}o()(y,"displayName","ClipboardButton"),o()(y,"propTypes",{className:c().string,text:c().string,prompt:c().string,onCopy:c().func}),o()(y,"defaultProps",{onCopy:m.noop})},94069:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819),d=n(56357);class h extends c().Component{render(){return c().createElement(d.Z,i()({},(0,p.omit)(this.props,"className"),{className:u()(this.props.className,"is-compact")}),this.props.children)}}o()(h,"displayName","CompactFormToggle")},56357:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(40515);class d extends a.Component{constructor(){super(...arguments),i()(this,"state",{showPopover:!1}),i()(this,"togglePopover",(()=>{this.setState({showPopover:!this.state.showPopover})})),i()(this,"_onPopoverClose",(()=>{this.setState({showPopover:!1})})),i()(this,"renderPopover",(()=>c().createElement(p.Z,{isVisible:this.state.showPopover,context:this.refs&&this.refs.toggleSwitch,position:this.props.disabledPopoverPosition,onClose:this._onPopoverClose,className:"dops-info-popover__tooltip"},this.props.disabledReason))),this.onKeyDown=this.onKeyDown.bind(this),this.onClick=this.onClick.bind(this),this.onLabelClick=this.onLabelClick.bind(this)}UNSAFE_componentWillMount(){this.id=this.constructor.idNum++}onKeyDown(e){this.props.disabled||("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.props.onChange()),this.props.onKeyDown(e))}onClick(){this.props.disabled?this.props.disabledReason&&this.togglePopover():this.props.onChange()}onLabelClick(e){if(this.props.disabled)return;const t=e.target.nodeName.toLowerCase();"a"!==t&&"input"!==t&&"select"!==t&&(e.preventDefault(),this.props.onChange())}render(){const e=this.props.id||"toggle-"+this.id,t=u()("form-toggle",this.props.className,{"is-toggling":this.props.toggling});return c().createElement("span",null,c().createElement("input",{className:t,type:"checkbox",checked:this.props.checked,readOnly:!0,disabled:this.props.disabled}),c().createElement("label",{className:"form-toggle__label",htmlFor:e},c().createElement("span",{className:"form-toggle__switch",disabled:this.props.disabled,id:e,onClick:this.onClick,onKeyDown:this.onKeyDown,role:"checkbox","aria-checked":this.props.checked,"aria-label":this.props["aria-label"],tabIndex:this.props.disabled?-1:0,ref:"toggleSwitch"}),c().createElement("span",{className:"form-toggle__label-content",onClick:this.onLabelClick},this.props.children)),this.renderPopover())}}i()(d,"propTypes",{onChange:o().func,onKeyDown:o().func,checked:o().bool,disabled:o().bool,id:o().string,className:o().string,toggling:o().bool,"aria-label":o().string,children:o().node,disabledReason:o().node}),i()(d,"defaultProps",{checked:!1,disabled:!1,onKeyDown:()=>{},onChange:()=>{},disabledPopoverPosition:"bottom",disabledReason:""}),i()(d,"idNum",0)},55735:function(e,t,n){"use strict";n.d(t,{C_:function(){return m},lX:function(){return g},Gj:function(){return v},B1:function(){return k},ih:function(){return E}});var r=n(27538),i=n.n(r),s=n(29183),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819),d=n(65736),h=n(9913),f=n(34964);const __=d.__,m=e=>c().createElement("fieldset",o()({},(0,p.omit)(e,"className"),{className:u()(e.className,"jp-form-fieldset")}),e.children);class g extends c().Component{render(){const{className:e,htmlFor:t,...n}=this.props;return c().createElement("label",o()({},n,{htmlFor:t,className:u()(e,"jp-form-label")}),this.props.children)}}i()(g,"displayName","FormLabel");class v extends c().Component{render(){return c().createElement("legend",o()({},(0,p.omit)(this.props,"className"),{className:u()(this.props.className,"jp-form-legend")}),this.props.children)}}i()(v,"displayName","FormLegend");class b extends c().Component{render(){const e=(0,p.omit)(this.props,["className","type"]);return c().createElement("input",o()({},e,{type:"checkbox",className:u()(this.props.className,"jp-form-checkbox")}))}}i()(b,"displayName","FormInputCheckbox");class y extends c().Component{constructor(){super(...arguments),i()(this,"focus",(()=>{this.refs.textField.focus()})),i()(this,"selectOnFocus",(e=>{e.target.select()}))}render(){const{className:e,selectOnFocus:t}=this.props,n=u()(e,{"jp-form-text-input":!0,"is-error":this.props.isError,"is-valid":this.props.isValid}),r={};for(const e in this.props)["isError","isValid","selectOnFocus"].includes(e)||(r[e]=this.props[e]);return c().createElement("input",o()({},r,{ref:"textField",className:n,onClick:t?this.selectOnFocus:null}))}}i()(y,"displayName","FormTextInput"),i()(y,"defaultProps",{isError:!1,isValid:!1,selectOnFocus:!1,type:"text"});class k extends c().Component{render(){return c().createElement("textarea",o()({},(0,p.omit)(this.props,"className"),{className:u()(this.props.className,"jp-form-textarea")}),this.props.children)}}i()(k,"displayName","FormTextarea");class w extends c().Component{render(){const e=(0,p.omit)(this.props,["className","type"]);return c().createElement("input",o()({},e,{type:"radio",className:u()(this.props.className,"jp-form-radio")}))}}i()(w,"displayName","FormRadio");class _ extends c().Component{constructor(){super(...arguments),i()(this,"getDefaultButtonAction",(()=>this.props.isSubmitting?__("Saving…","jetpack"):__("Save Settings","jetpack",0)))}render(){const e=u()({"jp-form-button":!0});return c().createElement(h.Z,o()({},(0,p.omit)(this.props,"className"),{primary:this.props.isPrimary,className:u()(this.props.className,e)}),(0,p.isEmpty)(this.props.children)?this.getDefaultButtonAction():this.props.children)}}i()(_,"displayName","FormsButton"),i()(_,"defaultProps",{isSubmitting:!1,isPrimary:!0,type:"submit"});class E extends c().Component{constructor(){super(...arguments),i()(this,"handleOnSelect",(e=>{this.props.onOptionChange({target:{type:"select",name:this.props.name,value:e.value}})}))}render(){const e=[];return(0,p.forOwn)(this.props.validValues,((t,n)=>{e.push({label:t,value:n})})),c().createElement(f.Z,{options:e,onSelect:this.handleOnSelect,disabled:this.props.disabled,initialSelected:this.props.value})}}},49457:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(90922),u=n.n(l),p=n(88001),d=n(51933),h=n(96892),f=n(2620),m=n(74978),g=n(21094);const v=u()("calypso:notices");class b extends c().Component{constructor(){super(...arguments),i()(this,"removeNotice",(e=>{e&&h.Z.removeNotice(e)})),i()(this,"handleLocalNoticeDismissClick",(e=>()=>this.removeNotice(e))),i()(this,"handleReduxNoticeDismissClick",(e=>()=>this.props.removeNotice(e)))}UNSAFE_componentWillMount(){v("Mounting Global Notices React component.")}render(){let e=(this.props.notices[this.props.id]||[]).map((function(e,t){return c().createElement(p.Z,{key:"notice-old-"+t,status:e.status,duration:e.duration||null,text:e.text,isCompact:e.isCompact,onDismissClick:this.handleLocalNoticeDismissClick(e),showDismiss:e.showDismiss},e.button&&c().createElement(d.Z,{href:e.href,onClick:e.onClick},e.button))}),this);return e=e.concat(this.props.storeNotices.map((function(e,t){return c().createElement(p.Z,{key:"notice-"+t,status:e.status,duration:e.duration||null,showDismiss:e.showDismiss,onDismissClick:this.handleReduxNoticeDismissClick(e.noticeId),text:e.text})}),this)),e.length?c().createElement("div",{id:this.props.id,className:"global-notices"},e):null}}i()(b,"displayName","NoticesList"),i()(b,"propTypes",{id:o().string,notices:o().oneOfType([o().object,o().array])}),i()(b,"defaultProps",{id:"overlay-notices",notices:Object.freeze([])}),t.Z=(0,f.$j)((e=>({storeNotices:e.globalNotices})),(e=>(0,m.DE)({removeNotice:g.qq},e)))(b)},87137:function(e,t,n){"use strict";n.d(t,{o:function(){return r},m:function(){return i}});const r="NEW_NOTICE",i="REMOVE_NOTICE"},21094:function(e,t,n){"use strict";n.d(t,{qq:function(){return s},iI:function(){return o},RT:function(){return a},tF:function(){return c}});var r=n(92819),i=n(87137);function s(e){return{noticeId:e,type:i.m}}function o(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const s={noticeId:n.id||(0,r.uniqueId)(),duration:n.duration,showDismiss:"boolean"!=typeof n.showDismiss||n.showDismiss,isPersistent:n.isPersistent||!1,displayOnNextPage:n.displayOnNextPage||!1,status:e,text:t};return{type:i.o,notice:s}}const a=o.bind(null,"is-success"),c=o.bind(null,"is-error");o.bind(null,"is-info"),o.bind(null,"is-warning")},31008:function(e,t,n){"use strict";n.d(t,{x:function(){return s}});var r=n(74978),i=n(87137);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.o:return[t.notice,...e];case i.m:return e.filter((e=>e.noticeId!==t.noticeId))}return e}(0,r.UY)({globalNotices:s})},22256:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(21425),c=n.n(a),l=n(89105),u=n.n(l),p=n(7767);const d=n.n(p)()({displayName:"Gridicon",mixins:[c()],getDefaultProps:function(){return{className:"",size:24}},propTypes:{icon:i().string.isRequired,size:i().number,onClick:i().func,className:i().string},needsOffset:function(e,t){return["gridicons-add-outline","gridicons-add","gridicons-align-image-center","gridicons-align-image-left","gridicons-align-image-none","gridicons-align-image-right","gridicons-attachment","gridicons-backspace","gridicons-bold","gridicons-bookmark-outline","gridicons-bookmark","gridicons-calendar","gridicons-cart","gridicons-create","gridicons-custom-post-type","gridicons-external","gridicons-folder","gridicons-heading","gridicons-help-outline","gridicons-help","gridicons-history","gridicons-info-outline","gridicons-info","gridicons-italic","gridicons-layout-blocks","gridicons-link-break","gridicons-link","gridicons-list-checkmark","gridicons-list-ordered","gridicons-list-unordered","gridicons-menus","gridicons-minus","gridicons-my-sites","gridicons-notice-outline","gridicons-notice","gridicons-plans","gridicons-plus-small","gridicons-plus","gridicons-popout","gridicons-posts","gridicons-scheduled","gridicons-share-ios","gridicons-star-outline","gridicons-star","gridicons-stats","gridicons-status","gridicons-thumbs-up","gridicons-textcolor","gridicons-time","gridicons-trophy","gridicons-user-circle"].indexOf(e)>=0&&t%18==0},needsOffsetX:function(e,t){return["gridicons-arrow-down","gridicons-arrow-up","gridicons-comment","gridicons-clear-formatting","gridicons-flag","gridicons-menu","gridicons-reader","gridicons-strikethrough"].indexOf(e)>=0&&t%18==0},needsOffsetY:function(e,t){return["gridicons-align-center","gridicons-align-justify","gridicons-align-left","gridicons-align-right","gridicons-arrow-left","gridicons-arrow-right","gridicons-house","gridicons-indent-left","gridicons-indent-right","gridicons-minus-small","gridicons-print","gridicons-sign-out","gridicons-stats-alt","gridicons-trash","gridicons-underline","gridicons-video-camera"].indexOf(e)>=0&&t%18==0},render:function(){const e="gridicons-"+this.props.icon,t=this.needsOffset(e,this.props.size),n=this.needsOffsetX(e,this.props.size),r=this.needsOffsetY(e,this.props.size),i=u()("gridicon",e,this.props.className,{"needs-offset":t,"needs-offset-x":n,"needs-offset-y":r});let s;switch(e){default:s=o().createElement("svg",{height:this.props.size,width:this.props.size});break;case"gridicons-add-image":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M23 4v2h-3v3h-2V6h-3V4h3V1h2v3h3zm-8.5 7c.828 0 1.5-.672 1.5-1.5S15.328 8 14.5 8 13 8.672 13 9.5s.672 1.5 1.5 1.5zm3.5 3.234l-.513-.57c-.794-.885-2.18-.885-2.976 0l-.655.73L9 9l-3 3.333V6h7V4H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2v-7h-2v3.234z"})));break;case"gridicons-add-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 9h-4V7h-2v4H7v2h4v4h2v-4h4v-2z"})));break;case"gridicons-add":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"})));break;case"gridicons-align-center":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 19h16v-2H4v2zm13-6H7v2h10v-2zM4 9v2h16V9H4zm13-4H7v2h10V5z"})));break;case"gridicons-align-image-center":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm5-4h8V9H8v6z"})));break;case"gridicons-align-image-left":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm0-4h8V9H3v6zm10 0h8v-2h-8v2zm0-4h8V9h-8v2z"})));break;case"gridicons-align-image-none":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zM11 9H3v6h8V9z"})));break;case"gridicons-align-image-right":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zm0-8h-8v6h8V9zm-10 4H3v2h8v-2zm0-4H3v2h8V9z"})));break;case"gridicons-align-justify":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 19h16v-2H4v2zm16-6H4v2h16v-2zM4 9v2h16V9H4zm16-4H4v2h16V5z"})));break;case"gridicons-align-left":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 19h16v-2H4v2zm10-6H4v2h10v-2zM4 9v2h16V9H4zm10-4H4v2h10V5z"})));break;case"gridicons-align-right":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 17H4v2h16v-2zm-10-2h10v-2H10v2zM4 9v2h16V9H4zm6-2h10V5H10v2z"})));break;case"gridicons-arrow-down":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M11 4v12.17l-5.59-5.59L4 12l8 8 8-8-1.41-1.41L13 16.17V4h-2z"})));break;case"gridicons-arrow-left":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"})));break;case"gridicons-arrow-right":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"})));break;case"gridicons-arrow-up":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M13 20V7.83l5.59 5.59L20 12l-8-8-8 8 1.41 1.41L11 7.83V20h2z"})));break;case"gridicons-aside":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M14 20l6-6V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h8zM6 6h12v6h-4c-1.105 0-2 .895-2 2v4H6V6zm10 4H8V8h8v2z"})));break;case"gridicons-attachment":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M14 1c-2.762 0-5 2.238-5 5v10c0 1.657 1.343 3 3 3s2.99-1.343 2.99-3V6H13v10c0 .553-.447 1-1 1-.553 0-1-.447-1-1V6c0-1.657 1.343-3 3-3s3 1.343 3 3v10.125C17 18.887 14.762 21 12 21s-5-2.238-5-5v-5H5v5c0 3.866 3.134 7 7 7s6.99-3.134 6.99-7V6c0-2.762-2.228-5-4.99-5z"})));break;case"gridicons-audio":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-backspace":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 7H8l-5 5 5 5h11c1.104 0 2-.896 2-2V9c0-1.104-.896-2-2-2zm-.647 6.646l-.707.707L16 12.707l-1.647 1.647-.707-.707L15.293 12l-1.647-1.646.707-.707L16 11.293l1.646-1.647.707.707L16.707 12l1.646 1.646z"})));break;case"gridicons-bell":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6.14 14.97l2.828 2.827c-.362.362-.862.586-1.414.586-1.105 0-2-.895-2-2 0-.552.224-1.052.586-1.414zm8.867 5.324L14.3 21 3 9.7l.706-.707 1.102.157c.754.108 1.69-.122 2.077-.51l3.885-3.884c2.34-2.34 6.135-2.34 8.475 0s2.34 6.135 0 8.475l-3.885 3.886c-.388.388-.618 1.323-.51 2.077l.157 1.1z"})));break;case"gridicons-block":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-bold":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M7 5.01h4.547c2.126 0 3.67.302 4.632.906.96.605 1.44 1.567 1.44 2.887 0 .896-.21 1.63-.63 2.205-.42.574-.98.92-1.678 1.036v.103c.95.212 1.637.608 2.057 1.19.42.58.63 1.35.63 2.315 0 1.367-.494 2.434-1.482 3.2-.99.765-2.332 1.148-4.027 1.148H7V5.01zm3 5.936h2.027c.862 0 1.486-.133 1.872-.4.386-.267.578-.708.578-1.323 0-.574-.21-.986-.63-1.236-.42-.25-1.087-.374-1.996-.374H10v3.333zm0 2.523v3.905h2.253c.876 0 1.52-.167 1.94-.502.416-.335.625-.848.625-1.54 0-1.243-.89-1.864-2.668-1.864H10z"})));break;case"gridicons-book":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 3h2v18H4zM18 3H7v18h11c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 6h-6V8h6v1zm0-2h-6V6h6v1z"})));break;case"gridicons-bookmark-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 5v12.554l-5-2.857-5 2.857V5h10m0-2H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-bookmark":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 3H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-briefcase":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 6h-4V3c0-.5-.5-1-1-1H8c-.5 0-1 .5-1 1v3H3c-.6 0-1 .4-1 1v5h20V7c0-.6-.4-1-1-1zm-6 0H9V4h6v2zM14 15h-4v-2H2v8c0 .6.4 1 1 1h18c.6 0 1-.4 1-1v-8h-8v2z"})));break;case"gridicons-calendar":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-camera":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 12c0 1.7-1.3 3-3 3s-3-1.3-3-3 1.3-3 3-3 3 1.3 3 3zm5-5v11c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2V4h4v1h2l1-2h6l1 2h2c1.1 0 2 .9 2 2zM7.5 9c0-.8-.7-1.5-1.5-1.5S4.5 8.2 4.5 9s.7 1.5 1.5 1.5S7.5 9.8 7.5 9zM19 12c0-2.8-2.2-5-5-5s-5 2.2-5 5 2.2 5 5 5 5-2.2 5-5z"})));break;case"gridicons-cart":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-checkmark-circle":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-checkmark":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"})));break;case"gridicons-chevron-down":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"})));break;case"gridicons-chevron-left":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M14 20l-8-8 8-8 1.414 1.414L8.828 12l6.586 6.586"})));break;case"gridicons-chevron-right":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10 20l8-8-8-8-1.414 1.414L15.172 12l-6.586 6.586"})));break;case"gridicons-chevron-up":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 15l8-8 8 8-1.414 1.414L12 9.828l-6.586 6.586"})));break;case"gridicons-clear-formatting":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10.837 10.163l-4.6 4.6L10 4h4l.777 2.223-2.144 2.144-.627-2.092-1.17 3.888zm5.495.506L19.244 19H15.82l-1.05-3.5H11.5L5 22l-1.5-1.5 17-17L22 5l-5.668 5.67zm-2.31 2.31l-.032.03.032-.01v-.02z"})));break;case"gridicons-clipboard":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16 18H8v-2h8v2zm0-6H8v2h8v-2zm2-9h-2v2h2v15H6V5h2V3H6c-1.105 0-2 .895-2 2v15c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-4 2V4c0-1.105-.895-2-2-2s-2 .895-2 2v1c-1.105 0-2 .895-2 2v1h8V7c0-1.105-.895-2-2-2z"})));break;case"gridicons-cloud-download":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-6 7l-4-5h3V8h2v3h3l-4 5z"})));break;case"gridicons-cloud-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M11.5 5c2.336 0 4.304 1.825 4.48 4.154l.142 1.86 1.867-.012h.092C19.698 11.043 21 12.37 21 14c0 .748-.28 1.452-.783 2H3.28c-.156-.256-.28-.59-.28-1 0-1.074.85-1.953 1.915-1.998.06.007.118.012.178.015l2.66.124-.622-2.587C7.044 10.186 7 9.843 7 9.5 7 7.02 9.02 5 11.5 5m0-2C7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5l-.025.002C17.72 5.646 14.922 3 11.5 3z"})));break;case"gridicons-cloud-upload":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-5 4v3h-2v-3H8l4-5 4 5h-3z"})));break;case"gridicons-cloud":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5z"})));break;case"gridicons-code":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4.83 12l4.58 4.59L8 18l-6-6 6-6 1.41 1.41L4.83 12zm9.76 4.59L16 18l6-6-6-6-1.41 1.41L19.17 12l-4.58 4.59z"})));break;case"gridicons-cog":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 12c0-.568-.06-1.122-.174-1.656l1.834-1.612-2-3.464-2.322.786c-.82-.736-1.787-1.308-2.86-1.657L14 2h-4l-.48 2.396c-1.07.35-2.04.92-2.858 1.657L4.34 5.268l-2 3.464 1.834 1.612C4.06 10.878 4 11.432 4 12s.06 1.122.174 1.656L2.34 15.268l2 3.464 2.322-.786c.82.736 1.787 1.308 2.86 1.657L10 22h4l.48-2.396c1.07-.35 2.038-.92 2.858-1.657l2.322.786 2-3.464-1.834-1.613c.113-.535.174-1.09.174-1.657zm-8 4c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"})));break;case"gridicons-comment":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-computer":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-create":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 11v8c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h8l-2 2H5v14h14v-6l2-2zM7 17h3l7.5-7.5-3-3L7 14v3zm9.94-12.94L15.5 5.5l3 3 1.44-1.44c.585-.585.585-1.535 0-2.12l-.88-.88c-.585-.585-1.535-.585-2.12 0z"})));break;case"gridicons-credit-card":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})));break;case"gridicons-crop":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M22 16h-4V8c0-1.105-.895-2-2-2H8V2H6v4H2v2h4v8c0 1.105.895 2 2 2h8v4h2v-4h4v-2zM8 16V8h8v8H8z"})));break;case"gridicons-cross-small":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"})));break;case"gridicons-cross":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"})));break;case"gridicons-custom-post-type":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z"})));break;case"gridicons-customize":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M2 6c0-1.505.78-3.08 2-4 0 .845.69 2 2 2 1.657 0 3 1.343 3 3 0 .386-.08.752-.212 1.09.74.594 1.476 1.19 2.19 1.81L8.9 11.98c-.62-.716-1.214-1.454-1.807-2.192C6.753 9.92 6.387 10 6 10c-2.21 0-4-1.79-4-4zm12.152 6.848l1.34-1.34c.607.304 1.283.492 2.008.492 2.485 0 4.5-2.015 4.5-4.5 0-.725-.188-1.4-.493-2.007L18 9l-2-2 3.507-3.507C18.9 3.188 18.225 3 17.5 3 15.015 3 13 5.015 13 7.5c0 .725.188 1.4.493 2.007L3 20l2 2 6.848-6.848c1.885 1.928 3.874 3.753 5.977 5.45l1.425 1.148 1.5-1.5-1.15-1.425c-1.695-2.103-3.52-4.092-5.448-5.977z"})));break;case"gridicons-dropdown":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M7 10l5 5 5-5"})));break;case"gridicons-ellipsis":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"})));break;case"gridicons-external":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-flag":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M15 6c0-1.105-.895-2-2-2H5v17h2v-7h5c0 1.105.895 2 2 2h6V6h-5z"})));break;case"gridicons-flip-horizontal":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 18v-5h3v-2h-3V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v5H1v2h3v5c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2zM6 6h12v5H6V6z"})));break;case"gridicons-flip-vertical":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 4h-5V1h-2v3H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h5v3h2v-3h5c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zM6 18V6h5v12H6z"})));break;case"gridicons-folder-multiple":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 8c-1.105 0-2 .895-2 2v10c0 1.1.9 2 2 2h14c1.105 0 2-.895 2-2H4V8zm16 10H8c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2h7c1.105 0 2 .895 2 2v8c0 1.105-.895 2-2 2z"})));break;case"gridicons-folder":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-globe":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18l2-2 1-1v-2h-2v-1l-1-1H9v3l2 2v1.93c-3.94-.494-7-3.858-7-7.93l1 1h2v-2h2l3-3V6h-2L9 5v-.41C9.927 4.21 10.94 4 12 4s2.073.212 3 .59V6l-1 1v2l1 1 3.13-3.13c.752.897 1.304 1.964 1.606 3.13H18l-2 2v2l1 1h2l.286.286C18.03 18.06 15.24 20 12 20z"})));break;case"gridicons-grid":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M8 8H4V4h4v4zm6-4h-4v4h4V4zm6 0h-4v4h4V4zM8 10H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4zM8 16H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4z"})));break;case"gridicons-heading":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 20h-3v-6H9v6H6V5.01h3V11h6V5.01h3V20z"})));break;case"gridicons-heart-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-heart":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16.5 3c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-help-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-1.962-2v-.528c0-.4.082-.74.246-1.017.163-.276.454-.546.87-.808.333-.21.572-.397.717-.565.146-.168.22-.36.22-.577 0-.172-.078-.308-.234-.41-.156-.1-.358-.15-.608-.15-.62 0-1.34.22-2.168.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.287-.23.362-.6.705-1.11 1.03-.43.278-.7.48-.807.61-.108.13-.163.282-.163.458V13h-1.885z"})));break;case"gridicons-help":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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-2h2v2zm2.003-6.41c-.23.36-.6.704-1.108 1.028-.43.28-.7.482-.808.61-.108.13-.163.283-.163.46V13H11.04v-.528c0-.4.08-.74.245-1.017.163-.276.454-.546.872-.808.332-.21.57-.397.716-.565.145-.168.217-.36.217-.577 0-.172-.077-.308-.233-.41-.156-.1-.358-.15-.608-.15-.62 0-1.342.22-2.17.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.286z"})));break;case"gridicons-history":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M2.12 13.526c.742 4.78 4.902 8.47 9.88 8.47 5.5 0 10-4.5 10-9.998S17.5 2 12 2C8.704 2 5.802 3.6 4 6V2H2.003L2 9h7V7H5.8c1.4-1.8 3.702-3 6.202-3C16.4 4 20 7.6 20 11.998s-3.6 8-8 8c-3.877 0-7.13-2.795-7.848-6.472H2.12z"}),o().createElement("path",{d:"M11.002 7v5.3l3.2 4.298 1.6-1.197-2.8-3.7V7"})));break;case"gridicons-house":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z"})));break;case"gridicons-image-multiple":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-image":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-indent-left":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 20h2V4h-2v16zM2 11h10.172l-2.086-2.086L11.5 7.5 16 12l-4.5 4.5-1.414-1.414L12.172 13H2v-2z"})));break;case"gridicons-indent-right":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6 4H4v16h2V4zm16 9H11.828l2.086 2.086L12.5 16.5 8 12l4.5-4.5 1.414 1.414L11.828 11H22v2z"})));break;case"gridicons-info-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-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"})));break;case"gridicons-info":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-ink":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M5 15c0 3.866 3.134 7 7 7s7-3.134 7-7c0-1.387-.41-2.677-1.105-3.765h.007L12 2l-5.903 9.235h.007C5.41 12.323 5 13.613 5 15z"})));break;case"gridicons-institution":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M2 19h20v3H2zM12 2L2 6v2h20V6M17 10h3v7h-3zM10.5 10h3v7h-3zM4 10h3v7H4z"})));break;case"gridicons-italic":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10.536 5l-.427 2h1.5L9.262 18h-1.5l-.427 2h6.128l.426-2h-1.5l2.347-11h1.5l.427-2"})));break;case"gridicons-layout-blocks":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 7h-2V3c0-1.105-.895-2-2-2H7c-1.105 0-2 .895-2 2v2H3c-1.105 0-2 .895-2 2v4c0 1.105.895 2 2 2h2v8c0 1.105.895 2 2 2h10c1.105 0 2-.895 2-2v-2h2c1.105 0 2-.895 2-2V9c0-1.105-.895-2-2-2zm-4 14H7v-8h2c1.105 0 2-.895 2-2V7c0-1.105-.895-2-2-2H7V3h10v4h-2c-1.105 0-2 .895-2 2v8c0 1.105.895 2 2 2h2v2zm4-4h-6V9h6v8z"})));break;case"gridicons-layout":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M8 20H5c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2v12c0 1.105-.895 2-2 2zm8-10h4c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2h-4c-1.105 0-2 .895-2 2v3c0 1.105.895 2 2 2zm5 10v-6c0-1.105-.895-2-2-2h-5c-1.105 0-2 .895-2 2v6c0 1.105.895 2 2 2h5c1.105 0 2-.895 2-2z"})));break;case"gridicons-link-break":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10 11l-2 2H7v-2h3zm9.64-3.64L22 5l-1.5-1.5-17 17L5 22l9-9h3v-2h-1l2-2c1.103 0 2 .897 2 2v2c0 1.103-.897 2-2 2h-4.977c.913 1.208 2.347 2 3.977 2h1c2.21 0 4-1.79 4-4v-2c0-1.623-.97-3.013-2.36-3.64zM4.36 16.64L6 15c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h4.977C10.065 7.792 8.63 7 7 7H6c-2.21 0-4 1.79-4 4v2c0 1.623.97 3.013 2.36 3.64z"})));break;case"gridicons-link":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 13H7v-2h10v2zm1-6h-1c-1.63 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 2h1c2.21 0 4-1.79 4-4v-2c0-2.21-1.79-4-4-4zM2 11v2c0 2.21 1.79 4 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.63 7 7 7H6c-2.21 0-4 1.79-4 4z"})));break;case"gridicons-list-checkmark":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M9.5 15.5L5 20l-2.5-2.5 1.06-1.06L5 17.88l3.44-3.44L9.5 15.5zM10 5v2h11V5H10zm0 14h11v-2H10v2zm0-6h11v-2H10v2zM8.44 8.44L5 11.88l-1.44-1.44L2.5 11.5 5 14l4.5-4.5-1.06-1.06zm0-6L5 5.88 3.56 4.44 2.5 5.5 5 8l4.5-4.5-1.06-1.06z"})));break;case"gridicons-list-ordered":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M8 19h13v-2H8v2zm0-6h13v-2H8v2zm0-8v2h13V5H8zm-4.425.252c.107-.096.197-.188.27-.275-.013.228-.02.48-.02.756V8h1.176V3.717H3.96L2.487 4.915l.6.738.487-.4zm.334 7.764c.474-.426.784-.715.93-.867.145-.153.26-.298.35-.436.087-.138.152-.278.194-.42.042-.143.063-.298.063-.466 0-.225-.06-.427-.18-.608s-.29-.32-.507-.417c-.218-.1-.465-.148-.742-.148-.22 0-.42.022-.596.067s-.34.11-.49.195c-.15.085-.337.226-.558.423l.636.744c.174-.15.33-.264.467-.34.138-.078.274-.117.41-.117.13 0 .232.032.304.097.073.064.11.152.11.264 0 .09-.02.176-.055.258-.036.082-.1.18-.192.294-.092.114-.287.328-.586.64L2.42 13.238V14h3.11v-.955H3.91v-.03zm.53 4.746v-.018c.306-.086.54-.225.702-.414.162-.19.243-.42.243-.685 0-.31-.126-.55-.378-.727-.252-.176-.6-.264-1.043-.264-.307 0-.58.033-.816.1s-.47.178-.696.334l.48.773c.293-.183.576-.274.85-.274.147 0 .263.027.35.082s.13.14.13.252c0 .3-.294.45-.882.45h-.27v.87h.264c.217 0 .393.017.527.05.136.03.233.08.294.143.06.064.09.154.09.27 0 .153-.057.265-.173.337-.115.07-.3.106-.554.106-.164 0-.343-.022-.538-.07-.194-.044-.385-.115-.573-.21v.96c.228.088.44.148.637.182.196.033.41.05.64.05.56 0 .998-.114 1.314-.343.315-.228.473-.542.473-.94.002-.585-.356-.923-1.07-1.013z"})));break;case"gridicons-list-unordered":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M9 19h12v-2H9v2zm0-6h12v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-location":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 9c0-3.866-3.134-7-7-7S5 5.134 5 9c0 1.387.41 2.677 1.105 3.765h-.008C8.457 16.46 12 22 12 22l5.903-9.235h-.007C18.59 11.677 19 10.387 19 9zm-7 3c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3z"})));break;case"gridicons-lock":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 8h-1V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H6c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V10c0-1.105-.895-2-2-2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm4 8.723V18h-2v-2.277c-.595-.346-1-.984-1-1.723 0-1.105.895-2 2-2s2 .895 2 2c0 .738-.405 1.376-1 1.723z"})));break;case"gridicons-mail":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 4.236l-8 4.882-8-4.882V6h16v2.236z"})));break;case"gridicons-mention":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10v-2c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8v.5c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.65 0 3.102-.81 4.013-2.043C16.648 15.6 17.527 16 18.5 16c1.93 0 3.5-1.57 3.5-3.5V12c0-5.523-4.477-10-10-10zm0 13c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3z"})));break;case"gridicons-menu":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 6v2H3V6h18zM3 18h18v-2H3v2zm0-5h18v-2H3v2z"})));break;case"gridicons-menus":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M9 19h10v-2H9v2zm0-6h6v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-microphone":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 13c1.104 0 2-.896 2-2V6c0-1.104-.896-2-2-2-1.105 0-2 .896-2 2v5c0 1.104.895 2 2 2zm4-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6c0 2.972 2.164 5.433 5 5.91V20h2v-3.09c2.836-.478 5-2.94 5-5.91h-2z"})));break;case"gridicons-minus-small":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6 11h12v2H6z"})));break;case"gridicons-minus":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M3 11h18v2H3z"})));break;case"gridicons-my-sites-horizon":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10.986 13.928l.762-2.284-1.324-3.63c-.458-.026-.892-.08-.892-.08-.458-.027-.405-.727.054-.7 0 0 1.403.107 2.24.107.888 0 2.265-.107 2.265-.107.46-.027.513.646.055.7 0 0-.46.055-.973.082l2.006 5.966c-.875-.034-1.74-.053-2.6-.06l-.428-1.177-.403 1.17c-.252.002-.508.01-.76.015zm-7.156.393c-.21-.737-.33-1.514-.33-2.32 0-1.232.264-2.402.736-3.46l2.036 5.58c.85-.06 1.69-.104 2.526-.138L6.792 8.015c.512-.027.973-.08.973-.08.458-.055.404-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.036-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .674-.244 1.463-.572 2.51.3.02.604.043.907.066l.798-2.307c.486-1.212.647-2.18.647-3.043 0-.313-.02-.603-.057-.874.662 1.21 1.04 2.6 1.04 4.077 0 .807-.128 1.58-.34 2.32.5.05 1.006.112 1.51.17.205-.798.33-1.628.33-2.49 0-5.523-4.477-10-10-10S2 6.477 2 12c0 .862.125 1.692.33 2.49.5-.057 1.003-.12 1.5-.17zm14.638 3.168C16.676 19.672 14.118 20.5 12 20.5c-1.876 0-4.55-.697-6.463-3.012-.585.048-1.174.1-1.77.16C5.572 20.272 8.578 22 12 22c3.422 0 6.43-1.73 8.232-4.35-.593-.063-1.18-.114-1.764-.162zM12 15.01c-3.715 0-7.368.266-10.958.733.18.41.35.825.506 1.247 3.427-.43 6.91-.68 10.452-.68s7.025.25 10.452.68c.156-.422.327-.836.506-1.246-3.59-.467-7.243-.734-10.958-.734z"})));break;case"gridicons-my-sites":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM3.5 12c0-1.232.264-2.402.736-3.46L8.29 19.65C5.456 18.272 3.5 15.365 3.5 12zm8.5 8.5c-.834 0-1.64-.12-2.4-.345l2.55-7.41 2.613 7.157c.017.042.038.08.06.117-.884.31-1.833.48-2.823.48zm1.172-12.485c.512-.027.973-.08.973-.08.458-.055.404-.728-.054-.702 0 0-1.376.108-2.265.108-.835 0-2.24-.107-2.24-.107-.458-.026-.51.674-.053.7 0 0 .434.055.892.082l1.324 3.63-1.86 5.578-3.096-9.208c.512-.027.973-.08.973-.08.458-.055.403-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.037-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .727-.28 1.572-.646 2.748l-.848 2.833-3.072-9.138zm3.1 11.332l2.597-7.506c.484-1.212.645-2.18.645-3.044 0-.313-.02-.603-.057-.874.664 1.21 1.042 2.6 1.042 4.078 0 3.136-1.7 5.874-4.227 7.347z"})));break;case"gridicons-not-visible":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M1 12s4.188-6 11-6c.947 0 1.84.12 2.678.322L8.36 12.64C8.133 12.14 8 11.586 8 11c0-.937.335-1.787.875-2.47C6.483 9.344 4.66 10.917 3.62 12c.68.707 1.696 1.62 2.98 2.398L5.15 15.85C2.498 14.13 1 12 1 12zm22 0s-4.188 6-11 6c-.946 0-1.836-.124-2.676-.323L5 22l-1.5-1.5 17-17L22 5l-3.147 3.147C21.5 9.87 23 12 23 12zm-2.615.006c-.678-.708-1.697-1.624-2.987-2.403L16 11c0 2.21-1.79 4-4 4l-.947.947c.31.03.624.053.947.053 3.978 0 6.943-2.478 8.385-3.994z"})));break;case"gridicons-notice-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})));break;case"gridicons-notice":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-pages":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-pencil":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M13 6l5 5-9.507 9.507c-.686-.686-.69-1.794-.012-2.485l-.002-.003c-.69.676-1.8.673-2.485-.013-.677-.677-.686-1.762-.036-2.455l-.008-.008c-.694.65-1.78.64-2.456-.036L13 6zm7.586-.414l-2.172-2.172c-.78-.78-2.047-.78-2.828 0L14 5l5 5 1.586-1.586c.78-.78.78-2.047 0-2.828zM3 18v3h3c0-1.657-1.343-3-3-3z"})));break;case"gridicons-phone":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-plans":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm-1 12H6l5-10v10zm2 6V10h5l-5 10z"})));break;case"gridicons-plugins":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16 8V3c0-.552-.448-1-1-1s-1 .448-1 1v5h-4V3c0-.552-.448-1-1-1s-1 .448-1 1v5H5v4c0 2.79 1.637 5.193 4 6.317V22h6v-3.683c2.363-1.124 4-3.527 4-6.317V8h-3z"})));break;case"gridicons-plus-small":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 11h-5V6h-2v5H6v2h5v5h2v-5h5"})));break;case"gridicons-plus":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20 13h-7v7h-2v-7H4v-2h7V4h2v7h7v2z"})));break;case"gridicons-popout":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6 7V5c0-1.105.895-2 2-2h11c1.105 0 2 .895 2 2v14c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-2h2v2h11V5H8v2H6zm5.5-.5l-1.414 1.414L13.172 11H3v2h10.172l-3.086 3.086L11.5 17.5 17 12l-5.5-5.5z"})));break;case"gridicons-posts":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"})));break;case"gridicons-print":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M9 16h6v2H9v-2zm13 1h-3v3c0 1.105-.895 2-2 2H7c-1.105 0-2-.895-2-2v-3H2V9c0-1.105.895-2 2-2h1V5c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2v2h1c1.105 0 2 .895 2 2v8zM7 7h10V5H7v2zm10 7H7v6h10v-6zm3-3.5c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5z"})));break;case"gridicons-quote":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M11.192 15.757c0-.88-.23-1.618-.69-2.217-.326-.412-.768-.683-1.327-.812-.55-.128-1.07-.137-1.54-.028-.16-.95.1-1.956.76-3.022.66-1.065 1.515-1.867 2.558-2.403L9.373 5c-.8.396-1.56.898-2.26 1.505-.71.607-1.34 1.305-1.9 2.094s-.98 1.68-1.25 2.69-.346 2.04-.217 3.1c.168 1.4.62 2.52 1.356 3.35.735.84 1.652 1.26 2.748 1.26.965 0 1.766-.29 2.4-.878.628-.576.94-1.365.94-2.368l.002.003zm9.124 0c0-.88-.23-1.618-.69-2.217-.326-.42-.77-.692-1.327-.817-.56-.124-1.074-.13-1.54-.022-.16-.94.09-1.95.75-3.02.66-1.06 1.514-1.86 2.557-2.4L18.49 5c-.8.396-1.555.898-2.26 1.505-.708.607-1.34 1.305-1.894 2.094-.556.79-.97 1.68-1.24 2.69-.273 1-.345 2.04-.217 3.1.165 1.4.615 2.52 1.35 3.35.732.833 1.646 1.25 2.742 1.25.967 0 1.768-.29 2.402-.876.627-.576.942-1.365.942-2.368v.01z"})));break;case"gridicons-reader":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M3 4v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4H3zm7 11H5v-1h5v1zm2-2H5v-1h7v1zm0-2H5v-1h7v1zm7 4h-5v-5h5v5zm0-7H5V6h14v2z"})));break;case"gridicons-reader-following":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M23,13.482L15.508,21L12,17.4l1.412-1.388l2.106,2.188l6.094-6.094L23,13.482z M15.545,15.344L20,10.889V2H2v14c0,1.1,0.9,2,2,2h4.538l4.913-4.832L15.545,15.344z M8,13H4v-1h4V13z M11,11H4v-1h7V11z M11,9H4V8h7V9z M18,6H4V4h14V6z"})));break;case"gridicons-reblog":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"})));break;case"gridicons-redo":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 6v3.586L14.343 5.93C13.17 4.756 11.636 4.17 10.1 4.17s-3.07.585-4.242 1.757c-2.343 2.342-2.343 6.14 0 8.484l5.364 5.364 1.414-1.414L7.272 13c-1.56-1.56-1.56-4.097 0-5.657.755-.755 1.76-1.172 2.828-1.172 1.068 0 2.073.417 2.828 1.173L16.586 11H13v2h7V6h-2z"})));break;case"gridicons-refresh":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17.91 14c-.478 2.833-2.943 5-5.91 5-3.308 0-6-2.692-6-6s2.692-6 6-6h2.172l-2.086 2.086L13.5 10.5 18 6l-4.5-4.5-1.414 1.414L14.172 5H12c-4.418 0-8 3.582-8 8s3.582 8 8 8c4.08 0 7.438-3.055 7.93-7h-2.02z"})));break;case"gridicons-reply":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M14 8H6.828l2.586-2.586L8 4 3 9l5 5 1.414-1.414L6.828 10H14c2.206 0 4 1.794 4 4s-1.794 4-4 4h-2v2h2c3.314 0 6-2.686 6-6s-2.686-6-6-6z"})));break;case"gridicons-rotate":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 14v6c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-6c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2zM13.914 2.914L11.828 5H14c4.418 0 8 3.582 8 8h-2c0-3.308-2.692-6-6-6h-2.172l2.086 2.086L12.5 10.5 8 6l1.414-1.414L12.5 1.5l1.414 1.414z"})));break;case"gridicons-scheduled":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M10.498 18l-3.705-3.704 1.415-1.415 2.294 2.295 5.293-5.293 1.415 1.415L10.498 18zM21 6v13c0 1.104-.896 2-2 2H5c-1.104 0-2-.896-2-2V6c0-1.104.896-2 2-2h1V2h2v2h8V2h2v2h1c1.104 0 2 .896 2 2zm-2 2H5v11h14V8z"})));break;case"gridicons-search":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-share-ios":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 8h2c1.105 0 2 .895 2 2v9c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2v-9c0-1.105.895-2 2-2h2v2H5v9h14v-9h-2V8zM6.5 5.5l1.414 1.414L11 3.828V14h2V3.828l3.086 3.086L17.5 5.5 12 0 6.5 5.5z"})));break;case"gridicons-share":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 16c-.788 0-1.5.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.118c-.053.223-.088.453-.088.692 0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3z"})));break;case"gridicons-sign-out":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M16 17v2c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h9c1.105 0 2 .895 2 2v2h-2V5H5v14h9v-2h2zm2.5-10.5l-1.414 1.414L20.172 11H10v2h10.172l-3.086 3.086L18.5 17.5 24 12l-5.5-5.5z"})));break;case"gridicons-spam":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 2H7L2 7v10l5 5h10l5-5V7l-5-5zm-4 15h-2v-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-speaker":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 8v6c1.7 0 3-1.3 3-3s-1.3-3-3-3zM11 7H4c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h1v3c0 1.1.9 2 2 2h2v-5h2l4 4h2V3h-2l-4 4z"})));break;case"gridicons-special-character":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12.005 7.418c-1.237 0-2.19.376-2.86 1.128s-1.005 1.812-1.005 3.18c0 1.387.226 2.513.677 3.377.45.865 1.135 1.543 2.05 2.036V20H5v-2.666h3.12c-1.04-.636-1.842-1.502-2.405-2.6-.564-1.097-.846-2.322-.846-3.676 0-1.258.29-2.363.875-3.317.585-.952 1.417-1.685 2.497-2.198s2.334-.77 3.763-.77c2.18 0 3.915.572 5.204 1.713s1.932 2.673 1.932 4.594c0 1.353-.283 2.57-.852 3.65-.567 1.08-1.38 1.947-2.44 2.603H19V20h-5.908v-2.86c.95-.493 1.65-1.18 2.102-2.062s.677-2.006.677-3.374c0-1.36-.336-2.415-1.01-3.164-.672-.747-1.624-1.122-2.855-1.122z"})));break;case"gridicons-star-outline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-star":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-stats-alt":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M21 21H3v-2h18v2zM8 10H4v7h4v-7zm6-7h-4v14h4V3zm6 3h-4v11h4V6z"})));break;case"gridicons-stats":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm0 16H5V5h14v14zM9 17H7v-5h2v5zm4 0h-2V7h2v10zm4 0h-2v-7h2v7z"})));break;case"gridicons-status":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM7.55 13c-.02.166-.05.33-.05.5 0 2.485 2.015 4.5 4.5 4.5s4.5-2.015 4.5-4.5c0-.17-.032-.334-.05-.5h-8.9zM10 10V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1zm6 0V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1z"})));break;case"gridicons-strikethrough":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M14.348 12H21v2h-4.613c.24.515.368 1.094.368 1.748 0 1.317-.474 2.355-1.423 3.114-.947.76-2.266 1.138-3.956 1.138-1.557 0-2.934-.293-4.132-.878v-2.874c.985.44 1.818.75 2.5.928.682.18 1.306.27 1.872.27.68 0 1.2-.13 1.562-.39.363-.26.545-.644.545-1.158 0-.285-.08-.54-.24-.763-.16-.222-.394-.437-.704-.643-.18-.12-.483-.287-.88-.49H3v-2H14.347zm-3.528-2c-.073-.077-.143-.155-.193-.235-.126-.202-.19-.44-.19-.713 0-.44.157-.795.47-1.068.313-.273.762-.41 1.348-.41.492 0 .993.064 1.502.19.51.127 1.153.35 1.93.67l1-2.405c-.753-.327-1.473-.58-2.16-.76-.69-.18-1.414-.27-2.173-.27-1.544 0-2.753.37-3.628 1.108-.874.738-1.312 1.753-1.312 3.044 0 .302.036.58.088.848h3.318z"})));break;case"gridicons-sync":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M23.5 13.5l-3.086 3.086L19 18l-4.5-4.5 1.414-1.414L18 14.172V12c0-3.308-2.692-6-6-6V4c4.418 0 8 3.582 8 8v2.172l2.086-2.086L23.5 13.5zM6 12V9.828l2.086 2.086L9.5 10.5 5 6 3.586 7.414.5 10.5l1.414 1.414L4 9.828V12c0 4.418 3.582 8 8 8v-2c-3.308 0-6-2.692-6-6z"})));break;case"gridicons-tablet":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 2H6c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h12c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-5 19h-2v-1h2v1zm5-2H6V5h12v14z"})));break;case"gridicons-tag":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-text-color":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M3 19h18v3H3v-3zM15.82 17h3.424L14 3h-4L4.756 17H8.18l1.067-3.5h5.506L15.82 17zm-1.952-6h-3.73l1.868-5.725L13.868 11z"})));break;case"gridicons-themes":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 6c-1.105 0-2 .895-2 2v12c0 1.1.9 2 2 2h12c1.105 0 2-.895 2-2H4V6zm16-4H8c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V4c0-1.105-.895-2-2-2zm-5 14H8V9h7v7zm5 0h-3V9h3v7zm0-9H8V4h12v3z"})));break;case"gridicons-thumbs-up":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6.7 22H2v-9h2l2.7 9zM20 9h-6V5c0-1.657-1.343-3-3-3h-1v4L7.1 9.625c-.712.89-1.1 1.996-1.1 3.135V14l2.1 7h8.337c1.836 0 3.435-1.25 3.88-3.03l1.622-6.485C22.254 10.223 21.3 9 20 9z"})));break;case"gridicons-time":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.8 13.4L13 11.667V7h-2v5.333l3.2 4.266 1.6-1.2z"})));break;case"gridicons-trash":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M6.187 8h11.625l-.695 11.125C17.05 20.18 16.177 21 15.12 21H8.88c-1.057 0-1.93-.82-1.997-1.875L6.187 8zM19 5v2H5V5h3V4c0-1.105.895-2 2-2h4c1.105 0 2 .895 2 2v1h3zm-9 0h4V4h-4v1z"})));break;case"gridicons-trophy":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18 5.062V3H6v2.062H2V8c0 2.525 1.89 4.598 4.324 4.932.7 2.058 2.485 3.61 4.676 3.978V18c0 1.105-.895 2-2 2H8v2h8v-2h-1c-1.105 0-2-.895-2-2v-1.09c2.19-.368 3.976-1.92 4.676-3.978C20.11 12.598 22 10.525 22 8V5.062h-4zM4 8v-.938h2v3.766C4.836 10.416 4 9.304 4 8zm16 0c0 1.304-.836 2.416-2 2.83V7.06h2V8z"})));break;case"gridicons-types":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M22 17c0 2.76-2.24 5-5 5s-5-2.24-5-5 2.24-5 5-5 5 2.24 5 5zM6.5 6.5h3.8L7 1 1 11h5.5V6.5zm9.5 4.085V8H8v8h2.585c.433-2.783 2.632-4.982 5.415-5.415z"})));break;case"gridicons-underline":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M4 19v2h16v-2H4zM18 3v8c0 3.314-2.686 6-6 6s-6-2.686-6-6V3h3v8c0 1.654 1.346 3 3 3s3-1.346 3-3V3h3z"})));break;case"gridicons-undo":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M18.142 5.93C16.97 4.756 15.435 4.17 13.9 4.17s-3.072.586-4.244 1.757L6 9.585V6H4v7h7v-2H7.414l3.657-3.657c.756-.755 1.76-1.172 2.83-1.172 1.067 0 2.072.417 2.827 1.173 1.56 1.56 1.56 4.097 0 5.657l-5.364 5.364 1.414 1.414 5.364-5.364c2.345-2.343 2.345-6.142.002-8.485z"})));break;case"gridicons-user-circle":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18.5c-4.694 0-8.5-3.806-8.5-8.5S7.306 3.5 12 3.5s8.5 3.806 8.5 8.5-3.806 8.5-8.5 8.5zm0-8c-3.038 0-5.5 1.728-5.5 3.5s2.462 3.5 5.5 3.5 5.5-1.728 5.5-3.5-2.462-3.5-5.5-3.5zm0-.5c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3z"})));break;case"gridicons-user":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 16s8 0 8-2c0-2.4-3.9-5-8-5s-8 2.6-8 5c0 2 8 2 8 2z"})));break;case"gridicons-video-camera":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M17 9V7c0-1.105-.895-2-2-2H4c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h11c1.105 0 2-.895 2-2v-2l5 4V5l-5 4z"})));break;case"gridicons-video":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().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"})));break;case"gridicons-visible":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M12 6C5.188 6 1 12 1 12s4.188 6 11 6 11-6 11-6-4.188-6-11-6zm0 10c-3.943 0-6.926-2.484-8.38-4 1.04-1.085 2.863-2.657 5.255-3.47C8.335 9.214 8 10.064 8 11c0 2.21 1.79 4 4 4s4-1.79 4-4c0-.937-.335-1.787-.875-2.47 2.393.813 4.216 2.386 5.254 3.47-1.456 1.518-4.438 4-8.38 4z"})));break;case"gridicons-chat":s=o().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},o().createElement("g",null,o().createElement("path",{d:"M20,4h-8c-1.1,0-2,0.9-2,2v2h2c1.7,0,3,1.3,3,3v2h2v3.5l3.3-2.3c1.1-0.8,1.7-2,1.7-3.3V6C22,4.9,21.1,4,20,4z"}),o().createElement("g",null,o().createElement("path",{d:"M14,11v5c0,1.1-0.9,2-2,2H7v3.5l-3.3-2.3c-1.1-0.8-1.7-2-1.7-3.3V11c0-1.1,0.9-2,2-2h8C13.1,9,14,9.9,14,11z"}))))}return s}});t.Z=d},87279:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(7767),c=n.n(a),l=n(92819),u=n(40515),p=n(22256),d=n(89105),h=n.n(d),f=n(11973);t.Z=c()({displayName:"InfoPopover",propTypes:{id:i().string,position:i().string,className:i().string,rootClassName:i().string,gaEventCategory:i().string,popoverName:i().string,onClick:i().func,ignoreContext:i().shape({getDOMNode:i().function})},getDefaultProps:()=>({position:"bottom",onClick:l.noop}),getInitialState:()=>({showPopover:!1}),render(){const e=h()("dops-info-popover","dops-info-popover-button",{is_active:this.state.showPopover},this.props.className);return o().createElement("button",{ref:"infoPopover",className:e,onClick:this._onClick},o().createElement(p.Z,{icon:"info-outline",size:18}),this.props.screenReaderText?o().createElement("span",{className:"screen-reader-text"},this.props.screenReaderText):"",o().createElement(u.Z,{id:this.props.id,isVisible:this.state.showPopover,context:this.refs&&this.refs.infoPopover,ignoreContext:this.props.ignoreContext,position:this.props.position,onClose:this._onClose,className:h()("dops-info-popover__tooltip",this.props.className),rootClassName:this.props.rootClassName},this.props.children))},_onClick(e){this.props.onClick(),e.preventDefault(),this.setState({showPopover:!this.state.showPopover},this._recordStats)},_onClose(){this.setState({showPopover:!1},this._recordStats)},_recordStats(){const{gaEventCategory:e,popoverName:t}=this.props;if(e&&t){const n=this.state.showPopover?" Opened":" Closed";f.Z.ga.recordEvent(e,"InfoPopover: "+t+n)}}})},46188:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(55609),o=n(9913);t.Z=e=>{const{isInstalling:t=!1,children:n=null,...r}=e,a=t?i().createElement("div",{className:"jp-install-button__spinner-container"},i().createElement(s.Spinner,null)):n;return i().createElement(o.Z,r,a)}},85253:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(34606),d=n(66552);class h extends p.Z{componentDidMount(){!this.props.hidePromotionBanner&&this.props.arePromotionsActive&&this.props.trackBannerDisplay()}render(){return this.props.hidePromotionBanner?null:this.props.arePromotionsActive?c().createElement(p.Z,this.props):null}}i()(h,"propTypes",{callToAction:o().string,className:o().string,description:o().node,eventFeature:o().string,feature:o().string,href:o().string,icon:o().string,iconAlt:o().string,iconSrc:o().string,list:o().arrayOf(o().string),onClick:o().func,trackBannerDisplay:o().func,path:o().string,plan:o().string,siteSlug:o().string,title:o().string.isRequired}),i()(h,"defaultProps",{onClick:u.noop,trackBannerDisplay:u.noop,plan:""}),t.Z=(0,l.$j)(((e,t)=>{const n=(0,d.pK)(e);return{arePromotionsActive:(0,d.Hy)(e),userCanPurchasePlan:n,hidePromotionBanner:!!t.plan&&!n}}))(h)},27711:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2332),o=n(69307),a=n(55609),c=n(65736),l=n(71415);const __=c.__;t.Z=e=>{const{siteBenefits:t}=e;return i().createElement(i().Fragment,null,t.length>0&&i().createElement(i().Fragment,null,i().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering features on your site. Once you disconnect Jetpack, these features will no longer be available and your site may no longer function the same way.","jetpack"))),i().createElement("div",{className:"jp-connection__disconnect-card__group"},t.map((e=>{let{value:t,description:n,title:r}=e;return i().createElement(s.Z,{title:r,value:t,description:n})})))),t.length<=2&&i().createElement("div",{className:"jetpack-benefits__general-benefits-section"},i().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack has many powerful tools that can help you achieve your goals","jetpack")),i().createElement("ul",{className:"jetpack-benefits__general-benefits-list"},i().createElement("li",{key:"reason-cdn"},(0,o.createInterpolateElement)(__("Speed up your site and provide mobile-ready images with <ExternalLink>our CDN</ExternalLink>","jetpack"),{ExternalLink:i().createElement(a.ExternalLink,{href:(0,l.Z)("jetpack-features-design-content-delivery-network"),rel:"noopener noreferrer",target:"_blank"})})),i().createElement("li",{key:"reason-brute-force"},(0,o.createInterpolateElement)(__("Block <ExternalLink>brute force attacks</ExternalLink> and get immediate notifications if your site is down","jetpack"),{ExternalLink:i().createElement(a.ExternalLink,{href:(0,l.Z)("jetpack-features-security"),rel:"noopener noreferrer",target:"_blank"})})),i().createElement("li",{key:"reason-social"},(0,o.createInterpolateElement)(__("Grow your traffic with automated social <ExternalLink>publishing and sharing</ExternalLink>","jetpack"),{ExternalLink:i().createElement(a.ExternalLink,{href:(0,l.Z)("jetpack-support-social"),rel:"noopener noreferrer",target:"_blank"})})))))}},39868:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(89105),p=n.n(u),d=n(22256),h=n(41922);class f extends a.Component{constructor(){super(...arguments),i()(this,"maybeDismiss",(e=>{!this.props.showDismiss||e.keyCode&&27!==e.keyCode||this.props.dismiss(e)}))}componentDidMount(){document.addEventListener("keydown",this.maybeDismiss.bind(this),!1)}componentWillUnmount(){document.removeEventListener("keydown",this.maybeDismiss.bind(this),!1)}clickForeground(e){e.stopPropagation()}render(){const e=p()(this.props.className,"jp-dialogue-modern",{"has-featured-image":!!this.props.svg});return c().createElement("div",{className:"jp-dialogue-modern-full__container",role:"presentation",onClick:this.maybeDismiss,onKeyDown:(0,h.Z)(this.maybeDismiss)},c().createElement("div",{className:e,role:"presentation",onClick:this.clickForeground,onKeyDown:(0,h.Z)(this.clickForeground)},this.props.showDismiss&&c().createElement(d.Z,{icon:"cross-small",className:"jp-dialogue-modern-full__dismiss",tabIndex:"0",onKeyDown:(0,h.Z)(this.props.dismiss),onClick:this.props.dismiss}),this.props.svg,c().createElement("div",{className:"jp-dialogue-modern__content"},c().createElement("h1",{className:"jp-dialogue-modern__title"},this.props.title),this.props.content),c().createElement("div",null,this.props.belowContent)))}}f.propTypes={content:o().oneOfType([o().string,o().object]).isRequired,belowContent:o().oneOfType([o().string,o().object]).isRequired,svg:o().oneOfType([o().bool,o().object]),dismissOnClick:o().func,showDismiss:o().bool,title:o().string,adminUrl:o().string,dismiss:o().func},f.defaultProps={svg:!1,showDismiss:!0,dismiss:l.noop,content:"",belowContent:"",title:""},t.Z=f},79644:function(e,t,n){"use strict";n.d(t,{D:function(){return l}});var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(65736),c=n(98486);const __=a.__,l=e=>{let{altText:t}=e;return i().createElement("div",{className:"jp-loading-icon"},i().createElement("img",{src:c.hp+"/jetpack-logomark-blue.svg",alt:t}))};l.propTypes={altText:o().string},l.defaultProps={altText:__("Loading…","jetpack")}},30281:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(74978),c=n(2620),l=n(39370);class u extends o().Component{constructor(){super(...arguments),i()(this,"dismissJetpackActionNotice",(()=>{this.props.dismissJetpackActionNotice(this.props.jetpackNotices)})),i()(this,"renderNotices",(()=>{this.props.jetpackNotices;return!1}))}render(){return o().createElement("div",null,this.renderNotices())}}i()(u,"displayName","DismissableNotices"),t.Z=(0,c.$j)((e=>({jetpackNotices:(0,l.gq)(e),isDismissed:t=>(0,l.jE)(e,t)})),(e=>(0,a.DE)({dismissJetpackActionNotice:l.Sn},e)))(u)},97079:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(11268),l=n.n(c),u=n(88001),p=n(27951);const __=a.__;class d extends o().Component{render(){return o().createElement(u.Z,{showDismiss:!1,text:this.props.text,status:"is-error",icon:"link-break"},o().createElement(p.Z,{errorCode:this.props.errorCode,errorData:this.props.errorData,action:this.props.action},__("Restore Connection","jetpack")))}}i()(d,"defaultProps",{text:__("Connection Error, please reconnect.","jetpack")}),i()(d,"propTypes",{text:l().string.isRequired,errorCode:l().string,errorData:l().object,action:l().string})},66496:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(12901),p=n(62470),d=n(69307),h=n(65736),f=n(71415),m=n(68103),g=n(30281),v=n(62807),b=n(41147),y=n(66552),k=n(77219),w=n(88872),_=n(98486),E=n(3319),C=n(97031),S=n(51933),j=n(49457),M=n(76306),x=n(88001);const __=h.__;class N extends c().Component{render(){return!(!this.props.isDevVersion||this.props.userIsSubscriber)&&c().createElement(x.Z,{showDismiss:!1,text:__("You are currently running a development version of Jetpack.","jetpack")},c().createElement(S.Z,{href:_.Ez,external:!0},__("Submit Beta feedback","jetpack")))}}i()(N,"displayName","DevVersionNotice"),N.propTypes={isDevVersion:o().bool.isRequired,userIsSubscriber:o().bool.isRequired};class A extends c().Component{render(){if(this.props.isStaging&&!this.props.isInIdentityCrisis){const e=(0,f.Z)("jetpack-support-staging-sites"),t={text:__("You are running Jetpack on a staging server.","jetpack"),status:"is-basic",showDismiss:!1};return c().createElement(x.Z,t,c().createElement(S.Z,{href:e},__("More Info","jetpack")))}return!1}}i()(A,"displayName","StagingSiteNotice"),A.propTypes={isStaging:o().bool.isRequired,isInIdentityCrisis:o().bool.isRequired};class O extends c().Component{render(){if("offline"===this.props.siteConnectionStatus){const e=this.props.siteOfflineMode,t=[];e.filter&&t.push(__("The jetpack_development_mode filter is active","jetpack")),e.constant&&t.push((0,h.sprintf)(
+/* translators: placeholder is a constant, such as WP_LOCAL_DEV. */
+__("The %s constant is defined","jetpack"),"JETPACK_DEV_DEBUG")),e.wpLocalConstant&&t.push((0,h.sprintf)(
+/* translators: placeholder is a constant, such as WP_LOCAL_DEV. */
+__("The %s constant is defined","jetpack"),"WP_LOCAL_DEV")),e.url&&t.push(__("Your site URL is a known local development environment URL","jetpack"));const n=(0,d.createInterpolateElement)(
+/* translators: reasons is an unordered list of reasons why a site may be in Offline mode. */
+__("Currently in <a>Offline Mode</a> (some features are disabled) because: <reasons/>","jetpack"),{a:c().createElement("a",{href:(0,f.Z)("jetpack-support-development-mode"),target:"_blank",rel:"noopener noreferrer"}),reasons:c().createElement("ul",null,t.map(((e,t)=>c().createElement("li",{key:t},e))))});return c().createElement(x.Z,{showDismiss:!1,status:"is-info",text:n},c().createElement(S.Z,{href:(0,f.Z)("jetpack-support-development-mode")},__("Learn More","jetpack")))}return!1}}i()(O,"displayName","OfflineModeNotice"),O.propTypes={siteConnectionStatus:o().oneOfType([o().string,o().bool]).isRequired,siteOfflineMode:o().oneOfType([o().bool,o().object]).isRequired};class T extends c().Component{render(){return!(this.props.isLinked||!this.props.connectUrl||!this.props.siteConnected)&&c().createElement("div",{className:"jp-unlinked-notice"},c().createElement(m.Z,{title:__("Jetpack is powering your site, but to access all of its features you’ll need to connect your account to WordPress.com.","jetpack"),callToAction:__("Create account","jetpack"),href:`${this.props.connectUrl}&from=unlinked-user-connect`,icon:c().createElement(p.Z,{icon:"wordpress",size:24}),className:"is-jetpack-info",from:"unlinked-user-connect",connectUser:!0}))}}i()(T,"displayName","UserUnlinked"),T.propTypes={connectUrl:o().string.isRequired,siteConnected:o().bool.isRequired};class P extends c().Component{render(){const e=this.props.siteDataErrors.filter((e=>e.hasOwnProperty("action"))),t="/connect-user"===this.props.location.pathname,n=this.props.location.pathname.startsWith("/license");return c().createElement("div",{"aria-live":"polite"},c().createElement(j.Z,null),this.props.siteConnectionStatus&&this.props.userCanConnectSite&&!this.props.isReconnectingSite&&(this.props.connectionErrors.length>0||e.length>0)&&c().createElement(C.Z,{errors:this.props.connectionErrors.concat(e)}),c().createElement(E.Z,null),c().createElement(N,{isDevVersion:this.props.isDevVersion,userIsSubscriber:this.props.userIsSubscriber}),c().createElement(O,{siteConnectionStatus:this.props.siteConnectionStatus,siteOfflineMode:this.props.siteOfflineMode}),c().createElement(A,{isStaging:this.props.isStaging,isInIdentityCrisis:this.props.isInIdentityCrisis}),c().createElement(M.Z,null),c().createElement(g.Z,null),!this.props.isReconnectingSite&&this.props.userCanConnectAccount&&this.props.hasConnectedOwner&&!e.length&&!this.props.connectionErrors.length&&!t&&c().createElement(T,{connectUrl:this.props.connectUrl,siteConnected:!0===this.props.siteConnectionStatus,isLinked:this.props.isLinked}),!this.props.siteConnectionStatus&&!this.props.userCanConnectSite&&c().createElement(x.Z,{showDismiss:!1,status:"is-warning",text:__("This site is not connected to WordPress.com. Please ask the site administrator to connect.","jetpack")}),this.props.licensingError&&c().createElement(x.Z,{showDismiss:!0,status:"is-error",text:this.props.licensingError,onDismissClick:this.props.clearLicensingError}),!n&&!this.props.isAtomicSite&&c().createElement(v.Z,{pathname:this.props.location.pathname}))}}i()(P,"displayName","JetpackNotices"),t.ZP=(0,l.$j)((e=>({connectUrl:(0,b.AM)(e),siteConnectionStatus:(0,b.Gz)(e),userCanConnectSite:(0,y.Mc)(e),userCanConnectAccount:(0,y.n0)(e),userIsSubscriber:(0,y.dc)(e),isLinked:(0,b.BU)(e),isDevVersion:(0,y._W)(e),isAtomicSite:(0,y.Ug)(e),siteOfflineMode:(0,b.Hu)(e),isStaging:(0,b.cm)(e),isInIdentityCrisis:(0,b.l9)(e),connectionErrors:(0,y.PK)(e),siteDataErrors:(0,w.Vc)(e),isReconnectingSite:(0,b.O_)(e),licensingError:(0,k.Tk)(e),hasConnectedOwner:(0,b.it)(e)})),(e=>({clearLicensingError:()=>e((0,k.xw)())})))((0,u.EN)(P))},97031:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(65736),u=n(97079),p=n(98486),d=n(51933),h=n(88001);const __=l.__;class f extends o().Component{getAction(e,t,n,r,i){switch(e){case"reconnect":return o().createElement(u.Z,{text:t,errorCode:n,errorData:r,action:e});case"support":return o().createElement(h.Z,{text:t,status:"is-error",icon:"link-break",showDismiss:!1},o().createElement(d.Z,{href:i,external:!0},__("Contact support","jetpack")))}return null}renderOne(e){const t=this.props.isDevVersion?p.Ez:p.Fr,n=this.getAction(e.action,e.message,e.code,e.hasOwnProperty("data")?e.data:{},t);return null===n?null:o().createElement(o().Fragment,{key:e.action},n)}render(){const e={},t=this.props.errors.filter((e=>e.hasOwnProperty("action")));for(const n of t)e.hasOwnProperty(n.action)||(e[n.action]=n);return Object.values(e).map((e=>this.renderOne(e)))}}i()(f,"propTypes",{errors:c().array.isRequired})},27951:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(51933),p=n(41147),d=n(11973);class h extends c().Component{constructor(){super(...arguments),i()(this,"getEventProps",(()=>{const e={location:"dashboard",purpose:"reconnect"};return this.props.errorCode&&(e.error_code=this.props.errorCode),this.props.errorData&&(this.props.errorData.api_error_code&&(e.api_error_code=this.props.errorData.api_error_code),this.props.errorData.api_http_code&&(e.api_http_code=this.props.errorData.api_http_code)),e})),i()(this,"handleDisconnectClick",(()=>{this.props.isReconnectingSite||(d.Z.tracks.recordEvent("jetpack_termination_error_notice_click",this.getEventProps()),this.props.reconnectSite(this.props.action))}))}componentDidMount(){d.Z.tracks.recordEvent("jetpack_termination_error_notice_view",this.getEventProps())}render(){return c().createElement(u.Z,{icon:this.props.icon,onClick:this.handleDisconnectClick},this.props.children)}}i()(h,"propTypes",{icon:o().string,errorCode:o().string,errorData:o().object,action:o().string}),t.Z=(0,l.$j)((e=>({isReconnectingSite:(0,p.O_)(e)})),(e=>({reconnectSite:()=>e((0,p.xK)())})))(h)},76306:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(65736),a=n(12901),c=n(88001),l=n(88872);const __=o.__;const u=(0,a.EN)((function(e){let{activeSitePurchases:t,location:{pathname:n}}=e;if("/plans"!==n)return null;if(t.length<=1)return null;const r=t.map((e=>{let{product_slug:t,...n}=e;return{...n,product_slug:t.replace("_monthly","")}})),s=r.find((e=>{let{product_slug:t}=e;return t.includes("backup")}));if(!s)return null;const a=r.find((e=>{let{product_slug:t}=e;return"jetpack_personal"===t||"jetpack_premium"===t||"jetpack_business"===t}));if(!a)return null;if("jetpack_backup_realtime"===s.product_slug&&"jetpack_business"!==a.product_slug)return null;let l=__("daily backups","jetpack");return"jetpack_business"===a.product_slug&&(l=__("real-time backups","jetpack")),i().createElement(c.Z,{status:"is-warning",showDismiss:!1,text:(0,o.sprintf)(
+/* translators: %1$s: feature, such as "daily backups". %2$s: Plan name, such as "Jetpack Premium". %3$s: Product name, such as "Jetpack Backups". */
+__("Your %2$s Plan includes %1$s. Looks like you also purchased the %3$s product. Consider removing %3$s.","jetpack"),l,a.product_name,s.product_name)})}));t.Z=(0,s.$j)((e=>({activeSitePurchases:(0,l.nl)(e)})))(u)},3319:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(69307),l=n(65736),u=n(71415),p=n(66552),d=n(39370),h=n(51933),f=n(88001),m=n(24857);const __=l.__;class g extends o().Component{constructor(){super(...arguments),i()(this,"state",{showNotice:!0}),i()(this,"dismissJetpackStateNotice",(()=>{this.setState({showNotice:!1})})),i()(this,"getErrorFromKey",(e=>{const t=this.props.jetpackStateNoticesErrorDescription||!1;let n="";switch(e){case"cheatin":n=__("Cheatin' uh?","jetpack");break;case"access_denied":n=(0,c.createInterpolateElement)(__("<p>Would you mind telling us why you did not complete the Jetpack connection in this <a>2 question survey</a>?</p><p>A Jetpack connection is required for our free security and traffic features to work.</p>","jetpack"),{a:o().createElement("a",{href:(0,u.Z)("jetpack-cancelled-connection"),target:"_blank",rel:"noopener noreferrer"}),p:o().createElement("p",null)});break;case"wrong_state":n=__("You need to stay logged in to your WordPress blog while you authorize Jetpack.","jetpack");break;case"invalid_client":n=__("We had an issue connecting Jetpack; deactivate then reactivate the Jetpack plugin, then connect again.","jetpack");break;case"invalid_grant":n=__('There was an issue connecting your Jetpack. Please click "Connect to WordPress.com" again.',"jetpack");break;case"site_inaccessible":case"site_requires_authorization":n=(0,l.sprintf)(
+/* translators: placeholder is an error code and message. */
+__("Your website needs to be publicly accessible to use Jetpack: %s","jetpack"),e);break;case"site_blacklisted":n=(0,c.createInterpolateElement)(__("This site can't be connected to WordPress.com because it violates our <a>Terms of Service</a>.","jetpack"),{a:o().createElement("a",{href:(0,u.Z)("wpcom-tos"),rel:"noopener noreferrer",target:"_blank"})});break;case"not_public":n=(0,c.createInterpolateElement)(__("<s>Your Jetpack has a glitch.</s> Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).","jetpack"),{s:o().createElement("strong",null)});break;case"wpcom_408":case"wpcom_5??":case"wpcom_bad_response":case"wpcom_outage":n=__("WordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.","jetpack");break;case"register_http_request_failed":case"token_http_request_failed":n=(0,l.sprintf)(
+/* translators: placeholder is an error code and message. */
+__("Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.","jetpack"),e);break;case"no_role":case"no_cap":case"no_code":case"no_state":case"invalid_state":case"invalid_request":case"invalid_scope":case"unsupported_response_type":case"invalid_token":case"no_token":case"missing_secrets":case"home_missing":case"siteurl_missing":case"gmt_offset_missing":case"site_name_missing":case"secret_1_missing":case"secret_2_missing":case"site_lang_missing":case"home_malformed":case"siteurl_malformed":case"gmt_offset_malformed":case"timezone_string_malformed":case"site_name_malformed":case"secret_1_malformed":case"secret_2_malformed":case"site_lang_malformed":case"secrets_mismatch":case"verify_secret_1_missing":case"verify_secret_1_malformed":case"verify_secrets_missing":case"verify_secrets_mismatch":n=(0,c.createInterpolateElement)((0,l.sprintf)(
+/* translators: placeholder is an error code and message. */
+__("<s>Your Jetpack has a glitch.</s> We’re sorry for the inconvenience. Please try again later, if the issue continues please contact support with this message: %s","jetpack"),e),{s:o().createElement("strong",null)});break;default:n=e}return t?o().createElement("div",null,n,o().createElement("br",null),t):o().createElement("div",null,n)})),i()(this,"getMessageFromKey",(e=>{let t,n="",r="is-info";switch(e){case"modules_activated":this.props.isAtomicPlatform||(n=(0,c.createInterpolateElement)((0,l.sprintf)(
+/* translators: placeholder is a version number, like 8.8. */
+__("Welcome to <s>Jetpack %s</s>!","jetpack"),this.props.currentVersion),{s:o().createElement("strong",null)}));break;case"already_authorized":n=__("Your Jetpack is already connected.","jetpack"),r="is-success";break;case"authorized":n=__("You're fueled up and ready to go, Jetpack is now active.","jetpack"),r="is-success";break;case"linked":n=__("You're fueled up and ready to go.","jetpack"),r="is-success";break;case"protect_misconfigured_ip":n=__("Your server is misconfigured, which means that Jetpack Protect is unable to effectively protect your site.","jetpack"),r="is-info",t=o().createElement(h.Z,{href:(0,u.Z)("jetpack-support-security-troubleshooting-protect")},__("Learn More","jetpack"));break;case"reconnection_completed":n=(0,c.createInterpolateElement)(__("Jetpack successfully reconnected! You can check your Jetpack Connection health by visiting the <a>Site Health tool</a>.","jetpack"),{a:o().createElement("a",{href:this.props.siteAdminUrl+"site-health.php"})}),r="is-success";break;default:n=e}return[n,r,t]})),i()(this,"renderContent",(()=>{let e,t="is-info",n="";const r=this.props.jetpackStateNoticesErrorCode,i=this.props.jetpackStateNoticesMessageCode,s=this.props.jetpackStateNoticesMessageContent;if(r||i||s){if(r&&(n=this.getErrorFromKey(r),"access_denied"!==r&&(t="is-error")),s&&s.release_post_content&&!this.props.isAtomicPlatform)return o().createElement(m.Z,{dismiss:this.dismissJetpackStateNotice,version:this.props.currentVersion,releasePostContent:s.release_post_content,featuredImage:s.release_post_featured_image,title:s.release_post_title});if(i){const r=this.getMessageFromKey(i);n=r[0],t=r[1],e=r[2]}if(""!==n)return o().createElement(f.Z,{status:t,onDismissClick:this.dismissJetpackStateNotice,text:n},e)}}))}render(){return o().createElement("div",null,this.state.showNotice?this.renderContent():null)}}i()(g,"displayName","JetpackStateNotices"),t.Z=(0,a.$j)((e=>({currentVersion:(0,p.w1)(e),isAtomicPlatform:(0,p.vL)(e),jetpackStateNoticesErrorCode:(0,d.gB)(e),jetpackStateNoticesMessageCode:(0,d.pt)(e),jetpackStateNoticesErrorDescription:(0,d.XF)(e),jetpackStateNoticesMessageContent:(0,d.Rv)(e),siteAdminUrl:(0,p.wW)(e)})))(g)},62807:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(69307),l=n(65736),u=n(71415),p=n(68961),d=n(11973),h=n(66552),f=n(77219),m=n(88001);const __=l.__,g=e=>{const{detachedLicensesCount:t,activationNoticeDismissInfo:n,updateLicensingActivationNoticeDismiss:r,pathname:i,siteAdminUrl:a}=e,{last_detached_count:l,last_dismissed_time:h}=n,f=`${a}admin.php?page=jetpack#/license/activation`,g=!!t,v=t>(l||0),b=(new Date-new Date(h||new Date))/864e5;(0,s.useEffect)((()=>{g&&(v||b>14)&&d.Z.tracks.recordEvent("jetpack_wpa_licensing_activation_notice_view")}),[]);const y=(0,s.useCallback)((()=>{d.Z.tracks.recordJetpackClick({target:"licensing_activation_notice",page:i,path:"licensing/activation"})}),[i]),k=(0,s.useCallback)((()=>{d.Z.tracks.recordJetpackClick({target:"calypso_purchases_link",page:i})}),[i]),w=(0,s.useCallback)((()=>{d.Z.tracks.recordEvent("jetpack_wpa_licensing_activation_notice_dismiss"),r()}),[r]);return g&&(v||b>14)?o().createElement(m.Z,{className:"jp-license-activation-notice",showDismiss:!0,onDismissClick:w,text:(0,c.createInterpolateElement)(__("You have an available product license key. <activateLink>Activate it now</activateLink> or <purchasesLink>view all your purchases</purchasesLink>","jetpack"),{activateLink:(0,s.createElement)("a",{href:f,onClick:y}),purchasesLink:(0,s.createElement)(p.Z,{className:"jp-license-activation-notice__external-link",href:(0,u.Z)("calypso-purchases"),onClick:k,target:"_blank",icon:!0})})}):null};g.propTypes={detachedLicensesCount:i().number.isRequired,activationNoticeDismissInfo:i().shape({last_detached_count:i().number.isRequired,last_dismiss_time:i().string.isRequired}),pathname:i().string.isRequired,siteAdminUrl:i().string.isRequired},t.Z=(0,a.$j)((e=>({detachedLicensesCount:(0,f.O4)(e),activationNoticeDismissInfo:(0,f.SP)(e),siteAdminUrl:(0,h.wW)(e)})),(e=>({updateLicensingActivationNoticeDismiss:()=>e((0,f.bT)())})))(g)},94218:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(89105),c=n.n(a),l=n(78850),u=n(65736),p=n(11973),d=n(9913),h=n(22256);const __=u.__,f=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=(0,l.LR)(e,t),s=c()({"jp-product-card__raw-price":!0,"jp-product-card__raw-price--is-old-price":n});return i().createElement("div",{className:s},i().createElement("sup",{className:"jp-product-card__currency-symbol"},r.symbol),i().createElement("span",{className:"jp-product-card__price-integer"},r.integer),i().createElement("sup",{className:"jp-product-card__price-fraction"},r.fraction))},m=e=>{const{icon:t,title:n,productSlug:s,description:o,features:a,currencyCode:l,price:m,discount:g,billingDescription:v,callToAction:b,checkoutText:y,checkoutUrl:k,priority:w,illustrationPath:_}=e,E=m*(100-g)/100,C=g>0,S=!!_,j=!!b;(0,r.useEffect)((()=>{p.Z.tracks.recordEvent("jetpack_product_card_view",{type:s})}),[s]);const M=(0,r.useCallback)((()=>{p.Z.tracks.recordEvent("jetpack_product_card_checkout_click",{type:s})}),[s]),x=c()({"jp-product-card":!0,"jp-product-card--has-media":S,"jp-product-card--has-cta":j}),N=c()(["jp-product-card__checkout",`jp-product-card__checkout--${w}`]);return i().createElement("div",{className:x},j&&i().createElement("div",{className:"jp-product-card__cta"},i().createElement(h.Z,{icon:"star"})," ",b),i().createElement("div",{className:"jp-product-card__inner"},!!t&&i().createElement("div",{className:"jp-product-card__icon"},t),i().createElement("h3",{className:"jp-product-card__title"},n),i().createElement("p",{className:"jp-product-card__description"},o),a.length&&i().createElement("ul",{className:"jp-product-card__features"},a.map(((e,t)=>i().createElement("li",{className:"jp-product-card__feature",key:t},i().createElement(h.Z,{icon:"checkmark"}),e)))),i().createElement("div",{className:"jp-product-card__price"},f(m,l,!!C),!!C&&f(E,l)),i().createElement("span",{className:"jp-product-card__price-description"},v),i().createElement(d.Z,{className:N,href:k,onClick:M},y)),S&&i().createElement("img",{className:"jp-product-card__media",src:_,alt:(0,u.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Graphical illustration of product: %s","jetpack"),n)}))};m.propTypes={checkoutText:o().string.isRequired,checkoutUrl:o().string.isRequired,title:o().string.isRequired,price:o().number.isRequired,currencyCode:o().string.isRequired,billingDescription:o().string.isRequired,productSlug:o().string.isRequired,description:o().string,features:o().array,discount:o().number,icon:o().element,callToAction:o().string,priority:o().string,illustrationPath:o().string},m.defaultProps={arePromotionsActive:!1,description:"",discount:0,features:[],priority:"primary",showIllustration:""},t.Z=m},26040:function(e,t,n){"use strict";n.d(t,{e:function(){return h}});var r=n(2620),i=n(99196),s=n.n(i),o=n(65736),a=n(11973),c=n(9913),l=n(45232),u=n(41147),p=n(66552),d=n(93107);const __=o.__,h=(0,r.$j)((e=>({canEditPosts:(0,p.rp)(e),canManageOptions:(0,p.UF)(e),hasConnectedOwner:(0,u.it)(e),isCurrentUserLinked:(0,u.BU)(e),isSiteConnected:(0,u.j8)(e),activeModules:(0,d.Xx)(e),siteConnectionStatus:(0,u.Gz)(e)})))((e=>{const{activeModules:t,canEditPosts:n,canManageOptions:r,hasConnectedOwner:o,isCurrentUserLinked:u,isSiteConnected:p,location:d={pathname:""},siteConnectionStatus:h}=e,{pathname:f}=d,m=["/","/dashboard","/my-plan","/plans"].includes(f)||f.includes("/recommendations"),g=""===f,v=(0,i.useCallback)((()=>{a.Z.tracks.recordJetpackClick({target:"masthead",path:"nav_dashboard"})}),[]),b=(0,i.useCallback)((()=>{a.Z.tracks.recordJetpackClick({target:"masthead",path:"nav_settings"})}),[]);if(g)return null;if(!h)return null;if(f.startsWith("/setup"))return null;if(!n)return null;if("offline"!==h&&!p)return null;if("offline"!==h&&!r){if(!o)return null;if(!u)return null;if(!t.some((e=>["post-by-email","publicize"].includes(e))))return null}return s().createElement("div",{className:"jp-masthead__nav"},s().createElement(l.Z,null,s().createElement(c.Z,{compact:!0,href:"#/dashboard",primary:m&&!g,onClick:v},__("Dashboard","jetpack")),s().createElement(c.Z,{compact:!0,href:"#/settings",primary:!m&&!g,onClick:b},__("Settings","jetpack"))))}))},96082:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(81546),l=n(11973),u=n(26040),p=n(66552),d=n(41147);class h extends o().Component{constructor(){super(...arguments),i()(this,"trackLogoClick",(()=>{l.Z.tracks.recordJetpackClick({target:"masthead",path:"logo"})})),i()(this,"testConnection",(()=>this.props.testConnection()))}render(){const{isWoASite:e,sandboxDomain:t,siteConnectionStatus:n}=this.props,r="offline"===n?o().createElement("code",null,"Offline Mode"):"",i=t?o().createElement("code",{id:"sandbox-domain-badge",onClick:this.testConnection,onKeyDown:this.testConnection,role:"button",tabIndex:0,title:`Sandboxing via ${t}. Click to test connection.`},"API Sandboxed"):"";return o().createElement("div",{className:"jp-masthead"},o().createElement("div",{className:"jp-masthead__inside-container"},o().createElement("div",{className:"jp-masthead__logo-container"},o().createElement("a",{onClick:this.trackLogoClick,className:"jp-masthead__logo-link",href:"#dashboard"},o().createElement(c.Z,{className:"jetpack-logo__masthead"})),r,i),e&&o().createElement(u.e,{location:this.props.location})))}}t.Z=(0,a.$j)((e=>({isWoASite:(0,p.Pw)(e),sandboxDomain:(0,d.LN)(e),siteConnectionStatus:(0,d.Gz)(e)})),(e=>({testConnection:()=>e((0,d.SG)())})))(h)},10958:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(11973),u=n(9913),p=n(60742),d=n(41147),h=n(82649),f=n(41922),m=n(27279);const __=c.__,_x=c._x;class g extends o().Component{constructor(){super(...arguments),i()(this,"state",{showModal:!1}),i()(this,"handleOpenModal",(e=>{e.preventDefault(),l.Z.tracks.recordJetpackClick("login_to_mobile_app_modal"),this.toggleModalVisibility()})),i()(this,"toggleModalVisibility",(()=>{this.setState({showModal:!this.state.showModal})})),i()(this,"clickSendLoginEmail",(e=>{e.preventDefault(),l.Z.tracks.recordJetpackClick("login_to_mobile_send_link"),this.toggleModalVisibility(),this.props.sendMobileLoginEmail()}))}renderModal(){return o().createElement(h.Z,{className:"mobile-magic-link__modal",onRequestClose:this.toggleModalVisibility},o().createElement(p.Z,{className:"mobile-magic-link__modal__body"},o().createElement("h2",null,__("Email me a link to log in to the app","jetpack")),o().createElement("h4",null,__("Easily log in to the WordPress app by clicking the link we'll send to the email address on your account.","jetpack")),o().createElement("div",{className:"mobile-magic-link__modal-actions"},o().createElement(u.Z,{className:"mobile-magic-link__modal-cancel",onClick:this.toggleModalVisibility},_x("Cancel","A caption for a button to cancel an action.","jetpack")),o().createElement(u.Z,{onClick:this.clickSendLoginEmail,primary:!0},_x("Send link","A caption for a button to log in to the WordPress mobile app.","jetpack")))))}render(){const{showModal:e}=this.state;return o().createElement("div",{className:"mobile-magic-link"},o().createElement("a",{className:"mobile-magic-link__button",onClick:this.handleOpenModal,onKeyDown:(0,f.Z)(this.handleOpenModal),role:"button",tabIndex:"0"},__("Log in to the WordPress mobile app","jetpack")),e&&this.renderModal())}}i()(g,"displayName","MobileMagicLink"),t.Z=(0,a.$j)((e=>({isSiteConnected:(0,d.Gz)(e),isLinked:(0,d.BU)(e)})),{sendMobileLoginEmail:m.u})(g)},82649:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(91850),d=n.n(p),h=n(89105),f=n.n(h),m=n(92819),g=n(18282);let v=!1;class b extends u().Component{constructor(){super(...arguments),o()(this,"state",{overlayMouseDown:!1}),o()(this,"handleEscapeKey",(e=>{27===e.keyCode&&this.maybeClose()})),o()(this,"maybeClose",(()=>{this.props.onRequestClose&&!v&&this.props.onRequestClose()})),o()(this,"handleMouseDownOverlay",(e=>{e.preventDefault(),e.stopPropagation(),this.setState({overlayMouseDown:!0})})),o()(this,"handleClickOverlay",(e=>{e.preventDefault(),e.stopPropagation(),this.state.overlayMouseDown&&this.props.onRequestClose&&!v&&(this.setState({overlayMouseDown:!1}),this.props.onRequestClose())})),o()(this,"handleMouseEventModal",(e=>{e.stopPropagation()}))}componentDidMount(){jQuery("body").addClass("dops-modal-showing").on("touchmove.dopsmodal",!1),jQuery(document).keyup(this.handleEscapeKey);try{this.focusTrap=(0,g.v)(d().findDOMNode(this)),this.focusTrap.activate({initialFocus:this.props.initialFocus})}catch(e){}}componentWillUnmount(){jQuery("body").removeClass("dops-modal-showing").off("touchmove.dopsmodal",!1),jQuery(document).unbind("keyup",this.handleEscapeKey);try{this.focusTrap.deactivate()}catch(e){}}render(){let e;const{style:t,className:n,width:r,title:s,...o}=this.props,{forwardedProps:a}=(0,m.omit)(o,"onRequestClose");switch(r){case"wide":e={maxWidth:"inherit",width:"inherit"};break;case"medium":e={maxWidth:1050,width:"inherit"};break;default:e={}}const c=(0,m.assign)({},t,e);return u().createElement("div",{className:"dops-modal-wrapper",onClick:this.handleClickOverlay,onMouseDown:this.handleMouseDownOverlay},u().createElement("div",i()({className:f()("dops-modal",n),style:c,onClick:this.handleMouseEventModal,onMouseDown:this.handleMouseEventModal,onMouseUp:this.handleMouseEventModal,role:"dialog","aria-label":s},a),this.props.children))}}o()(b,"propTypes",{style:c().object,width:c().oneOf(["wide","medium","narrow"]),className:c().string,title:c().string,initialFocus:c().string,onRequestClose:c().func}),o()(b,"defaultProps",{style:{}}),b.preventClose=function(){v=!0},b.allowClose=function(){v=!1},t.Z=b},53263:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(89105),u=n.n(l),p=n(69307),d=n(65736),h=n(71415),f=n(85253);const __=d.__;class m extends f.Z{render(){if(!this.props.moduleName)return null;const e=u()("module-overridden-banner",{"is-compact":this.props.compact});return o().createElement(f.Z,{className:e,title:this.props.moduleName,icon:"cog",description:(0,p.createInterpolateElement)((0,d.sprintf)(
+/* translators: placeholder is a feature name. */
+__("%s has been disabled by a site administrator. <link>Learn more</link>.","jetpack"),this.props.moduleName),{link:o().createElement("a",{href:(0,h.Z)("jetpack-support-module-overrides"),target:"_blank",rel:"noopener noreferrer"})})})}}i()(m,"propTypes",{moduleName:c().string.isRequired}),t.Z=m},7179:function(e,t,n){"use strict";n.d(t,{l:function(){return u}});var r=n(2620),i=n(92819),s=n(65736),o=n(93107),a=n(17752),c=n(66552),l=n(41147);const __=s.__;function u(e){return(0,r.$j)(((e,t)=>({validValues:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"string"==typeof(0,i.get)(t,["module","module"])&&(r=t.module.module),(0,o.R9)(e,r,n)},getOptionCurrentValue:(t,n)=>(0,o.C5)(e,t,n),getSettingCurrentValue:function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,a.$8)(e,t,n)},getSiteRoles:()=>(0,c.Td)(e),isUpdating:t=>(0,a.Cu)(e,t),adminEmailAddress:(0,c.je)(e),currentIp:(0,c.de)(e),siteAdminUrl:(0,c.wW)(e),isCurrentUserLinked:(0,l.BU)(e)})),(e=>({updateOptions:function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e((0,a.VP)(t,n))},regeneratePostByEmailAddress:()=>{const t={progress:__("Updating Post by Email address…","jetpack"),success:__("Regenerated Post by Email address.","jetpack"),error:e=>(0,s.sprintf)(
+/* translators: placeholder is an error message. */
+__("Error regenerating Post by Email address. %s","jetpack"),e)};return e((0,a.VP)({post_by_email_address:"regenerate"},t))},setUnsavedSettingsFlag:()=>e((0,a.a6)()),clearUnsavedSettingsFlag:()=>e((0,a._1)()),refreshSettings:()=>e((0,a.wv)())})))(e)}},5e4:function(e,t,n){"use strict";n.d(t,{u:function(){return d}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(11973),u=n(92819),p=n(7179);function d(e){class t extends c().Component{constructor(){var e;super(...arguments),e=this,o()(this,"state",{options:{}}),o()(this,"onOptionChange",(e=>{const t=e.target.name;let n;n="checkbox"===e.target.type&&void 0!==e.target.checked?e.target.checked:e.target.value,this.updateFormStateOptionValue(t,n)})),o()(this,"updateFormStateOptionValue",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;"string"==typeof t&&(t={[t]:n});const r={...e.state.options,...t};return e.setState({options:r}),!0})),o()(this,"resetFormStateOption",(e=>(this.setState({options:(0,u.omit)(this.state.options,[e])}),!0))),o()(this,"updateFormStateModuleOption",(function(t,n){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e.trackSettingsToggle(t,n,!e.getOptionValue(n)),e.getOptionValue(t)?r?e.props.updateOptions({[t]:!1,[n]:!e.getOptionValue(n)}):e.props.updateOptions({[n]:!e.getOptionValue(n)}):e.props.updateOptions({[t]:!0,[n]:!0})})),o()(this,"toggleModuleNow",(e=>{this.props.updateOptions({[e]:!this.getOptionValue(e)})})),o()(this,"onSubmit",(e=>{e.preventDefault(),this.props.updateOptions(this.state.options).then((()=>{const e={};(0,u.each)(this.state.options,((t,n)=>{n=n.replace(/\-/,"_"),e[n]=t})),this.trackFormSubmission(e),this.setState({options:{}})})).then((()=>{this.props.refreshSettings(),this.props.clearUnsavedSettingsFlag()}))})),o()(this,"getOptionValue",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,u.get)(e.state.options,t,e.props.getSettingCurrentValue(t,n))})),o()(this,"shouldSaveButtonBeDisabled",(()=>this.isSavingAnyOption()||!this.isDirty())),o()(this,"isDirty",(()=>!!Object.keys(this.state.options).length)),o()(this,"isSavingAnyOption",(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.props.isUpdating(t)})),o()(this,"trackFormSubmission",(e=>{l.Z.tracks.recordEvent("jetpack_wpa_settings_form_submit",e)})),o()(this,"trackSettingsToggle",((e,t,n)=>{l.Z.tracks.recordEvent("jetpack_wpa_settings_toggle",{module:e,setting:t,toggled:n?"on":"off"})}))}componentDidUpdate(){this.isDirty()&&this.props.setUnsavedSettingsFlag()}render(){return c().createElement(e,i()({getOptionValue:this.getOptionValue,onSubmit:this.onSubmit,onOptionChange:this.onOptionChange,updateFormStateOptionValue:this.updateFormStateOptionValue,toggleModuleNow:this.toggleModuleNow,updateFormStateModuleOption:this.updateFormStateModuleOption,shouldSaveButtonBeDisabled:this.shouldSaveButtonBeDisabled,isSavingAnyOption:this.isSavingAnyOption,isDirty:this.isDirty,resetFormStateOption:this.resetFormStateOption},this.props))}}return(0,p.l)(t)}},77222:function(e,t,n){"use strict";n.d(t,{T:function(){return v}});var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(71415),h=n(11973),f=n(94069),m=n(93107);const __=p.__;class g extends s.Component{constructor(){super(...arguments),i()(this,"toggleModule",(()=>(this.trackModuleToggle(this.props.slug,this.props.activated),this.props.toggleModule(this.props.slug,this.props.activated)))),i()(this,"trackModuleToggle",((e,t)=>{"stats"!==e&&h.Z.tracks.recordEvent("jetpack_wpa_module_toggle",{module:e,toggled:t?"off":"on"})})),i()(this,"isDisabledByOverride",(()=>{const e=this.props.getModuleOverride(this.props.slug);return this.props.overrideCondition?this.props.overrideCondition===e:!!e})),i()(this,"getDisabledReason",(()=>{if(!this.isDisabledByOverride())return null;const e=this.props.getModuleOverride(this.props.slug),t={link:o().createElement("a",{href:(0,d.Z)("jetpack-support-module-overrides"),target:"_blank",rel:"noopener noreferrer",style:{textDecoration:"underline"}})};switch(e){case"active":return(0,u.createInterpolateElement)(__("This feature has been enabled by a site administrator. <link>Learn more</link>.","jetpack"),t);case"inactive":return(0,u.createInterpolateElement)(__("This feature has been disabled by a site administrator. <link>Learn more</link>.","jetpack"),t);default:return(0,u.createInterpolateElement)(__("This feature is being managed by a site administrator. <link>Learn more</link>.","jetpack"),t)}}))}render(){return o().createElement(f.Z,{checked:this.props.activated||this.props.isModuleActivated,toggling:this.props.toggling,className:this.props.className,disabled:this.props.disabled||this.isDisabledByOverride(),id:this.props.id,onChange:this.toggleModule,disabledReason:this.getDisabledReason(),"aria-label":this.props["aria-label"]},this.props.children)}}i()(g,"displayName","ModuleToggle"),i()(g,"propTypes",{toggleModule:c().func,activated:c().bool,disabled:c().bool,className:c().string,compact:c().bool,id:c().string,overrideCondition:c().string}),i()(g,"defaultProps",{activated:!1,disabled:!1,overrideCondition:""});const v=(0,l.$j)((e=>({getModuleOverride:t=>(0,m.Qy)(e,t)})))(g)},8582:function(e,t,n){"use strict";n.d(t,{B:function(){return s}});var r=n(99196),i=n.n(r);const s=i().createElement("svg",{width:"21",height:"21",viewBox:"0 0 21 21",fill:"none",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M11.0862 0.22949C10.7536 -0.0764963 10.2464 -0.0764967 9.9138 0.229489L7.7667 2.20503C7.59755 2.36066 7.37497 2.44281 7.14676 2.43386L4.24981 2.32013C3.80111 2.30252 3.41252 2.63319 3.35171 3.08438L2.95909 5.99736C2.92816 6.22684 2.80973 6.43486 2.62923 6.57677L0.337958 8.37807C-0.0169309 8.65707 -0.105018 9.1637 0.134374 9.54896L1.67996 12.0364C1.80172 12.2323 1.84285 12.4689 1.79452 12.6952L1.18104 15.5687C1.08602 16.0138 1.33965 16.4593 1.76723 16.5984L4.52782 17.4963C4.7453 17.5671 4.92675 17.7215 5.03321 17.9264L6.38456 20.5275C6.59387 20.9304 7.07055 21.1064 7.48625 20.9342L10.1701 19.8225C10.3816 19.7349 10.6184 19.7349 10.8299 19.8225L13.5137 20.9342C13.9294 21.1064 14.4061 20.9304 14.6154 20.5275L15.9668 17.9264C16.0733 17.7215 16.2547 17.5671 16.4722 17.4963L19.2328 16.5984C19.6603 16.4593 19.914 16.0138 19.819 15.5687L19.2055 12.6953C19.1572 12.4689 19.1983 12.2323 19.32 12.0364L20.8656 9.54896C21.105 9.1637 21.0169 8.65707 20.662 8.37807L18.3708 6.57677C18.1903 6.43486 18.0718 6.22684 18.0409 5.99736L17.6483 3.08438C17.5875 2.63319 17.1989 2.30252 16.7502 2.32013L13.8532 2.43386C13.625 2.44281 13.4024 2.36066 13.2333 2.20503L11.0862 0.22949ZM8.76611 14H7.15771V9.11328H7.07422L5.54492 10.146V8.75732L7.15771 7.65869H8.76611V14ZM14.2072 14H12.6823V12.9189H9.56662V11.7017C10.3401 10.2822 11.1443 8.95068 11.966 7.65869H14.2072V11.6621H14.9983V12.9189H14.2072V14ZM10.9641 11.6401V11.7192H12.7219V8.81006H12.6428C12.0759 9.69336 11.4738 10.6865 10.9641 11.6401Z",fill:"black"}))},95554:function(e,t,n){"use strict";n.d(t,{N:function(){return c}});var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(8582);const c=e=>{let{text:t}=e;return i().createElement("div",{className:"jetpack-money-back-guarantee"},i().createElement("div",{className:"jetpack-money-back-guarantee__icon"},a.B),i().createElement("div",{className:"jetpack-money-back-guarantee__text"},t))};c.propTypes={text:o().string.isRequired}},83371:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(7767),c=n.n(a),l=n(2620),u=n(92819),p=n(12901),d=n(65736),h=n(11973),f=n(19555),m=n(41147),g=n(93107),v=n(61744),b=n(67939),y=n(17840),k=n(15142),w=n(67448),_=n(91592),E=n(71064),C=n(66552);const __=d.__,_x=d._x,S=c()({displayName:"NavigationSettings",mixins:[E.Z],UNSAFE_componentWillMount(){this.onRouteChange(this.props.location),this.props.history.listen(this.onRouteChange)},onRouteChange(e){const t=(e.search||"").substr(1).split("&").filter((e=>0===e.indexOf("term=")));let n="";t.length>0&&(n=t[0].split("=")[1]),this.props.searchForTerm(decodeURIComponent(n))},maybeShowSearch(){if(this.props.userCanManageModules)return i().createElement(w.Z,{onClick:this.handleClickForTracking("search"),pinned:!0,fitsContainer:!0,placeholder:__("Search for a Jetpack feature.","jetpack"),delaySearch:!0,delayTimeout:500,onSearch:this.doSearch,isOpen:!!this.props.searchTerm,initialValue:this.props.searchTerm})},trackNavClick(e){h.Z.tracks.recordJetpackClick({target:"nav_item",path:e})},buildUrl:function(e,t){const n=e.split("#")[1].split("?");return this.props.searchForTerm(t),"#"+n[0]+(t?"?term="+t:"")},handleClickForTracking(e){return()=>this.trackNavClick(e)},render:function(){let e,t,n;return this.props.userCanManageModules?e=i().createElement(b.Z,{selectedText:this.props.routeName},this.props.hasAnySecurityFeature&&i().createElement(y.Z,{path:"#security",onClick:this.handleClickForTracking("security"),selected:"/security"===this.props.location.pathname||"/settings"===this.props.location.pathname},_x("Security","Navigation item.","jetpack")),this.props.hasAnyPerformanceFeature&&i().createElement(y.Z,{path:"#performance",onClick:this.handleClickForTracking("performance"),selected:"/performance"===this.props.location.pathname},_x("Performance","Navigation item.","jetpack")),this.props.hasAnyOfTheseModules(["masterbar","markdown","custom-content-types","post-by-email","infinite-scroll","copy-post"])&&i().createElement(y.Z,{path:"#writing",onClick:this.handleClickForTracking("writing"),selected:"/writing"===this.props.location.pathname},_x("Writing","Navigation item.","jetpack")),this.props.hasAnyOfTheseModules(["publicize","sharedaddy","likes"])&&i().createElement(y.Z,{path:"#sharing",onClick:this.handleClickForTracking("sharing"),selected:"/sharing"===this.props.location.pathname},_x("Sharing","Navigation item.","jetpack")),this.props.hasAnyOfTheseModules(["comments","gravatar-hovercards","markdown","subscriptions"])&&i().createElement(y.Z,{path:"#discussion",onClick:this.handleClickForTracking("discussion"),selected:"/discussion"===this.props.location.pathname},_x("Discussion","Navigation item.","jetpack")),this.props.hasAnyOfTheseModules(["seo-tools","wordads","stats","related-posts","verification-tools","sitemaps","google-analytics"])&&i().createElement(y.Z,{path:"#traffic",onClick:this.handleClickForTracking("traffic"),selected:"/traffic"===this.props.location.pathname},_x("Traffic","Navigation item.","jetpack"))):this.props.isSubscriber?e=!1:(t=this.props.isModuleActivated("publicize")&&this.props.userCanPublish?this.props.hasAnyOfTheseModules(["publicize"])&&i().createElement(y.Z,{path:"#sharing",onClick:this.handleClickForTracking("sharing"),selected:"/sharing"===this.props.location.pathname||"/settings"===this.props.location.pathname},_x("Sharing","Navigation item.","jetpack")):"",n=this.props.isModuleActivated("post-by-email")&&this.props.userCanPublish?this.props.hasAnyOfTheseModules(["post-by-email"])&&i().createElement(y.Z,{path:"#writing",onClick:this.handleClickForTracking("writing"),selected:"/writing"===this.props.location.pathname},_x("Writing","Navigation item.","jetpack")):"",e=i().createElement(b.Z,{selectedText:this.props.routeName},n,t)),i().createElement("div",{id:"jp-navigation",className:"dops-navigation"},i().createElement(k.Z,null),i().createElement(_.Z,{selectedText:this.props.routeName},e,this.maybeShowSearch()))}});S.propTypes={userCanManageModules:o().bool.isRequired,isSubscriber:o().bool.isRequired,userCanPublish:o().bool.isRequired,isLinked:o().bool.isRequired,isSiteConnected:o().bool.isRequired,isModuleActivated:o().func.isRequired,searchHasFocus:o().bool.isRequired,location:o().object.isRequired},S.defaultProps={userCanManageModules:!1,isSubscriber:!1,userCanPublish:!1,isLinked:!1,isSiteConnected:!1,isModuleActivated:u.noop,searchHasFocus:!1},t.Z=(0,l.$j)((e=>({hasAnyOfTheseModules:t=>(0,g.og)(e,t),hasAnyPerformanceFeature:(0,g.zc)(e),hasAnySecurityFeature:(0,g.Su)(e),userCanManageModules:(0,C.pK)(e),isSubscriber:(0,C.dc)(e),userCanPublish:(0,C.D6)(e),isLinked:(0,m.BU)(e),isSiteConnected:(0,m.q7)(e),isModuleActivated:t=>(0,g.mp)(e,t),moduleList:(0,g.hU)(e),isPluginActive:t=>(0,v.TB)(e,t),searchTerm:(0,f.He)(e)})),(e=>({searchForTerm:t=>e((0,f.eb)(t))})))((0,p.EN)(S))},41776:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(12901),p=n(65736),d=n(71415),h=n(11973),f=n(41147),m=n(93107),g=n(67939),v=n(17840),b=n(91592),y=n(66552);const _x=p._x;class k extends o().Component{constructor(){super(...arguments),i()(this,"trackNavClick",(e=>{h.Z.tracks.recordJetpackClick({target:"nav_item",path:e})})),i()(this,"trackDashboardClick",(()=>{this.trackNavClick("dashboard")})),i()(this,"trackMyPlanClick",(()=>{this.trackNavClick("my-plan")})),i()(this,"trackPlansClick",(()=>{this.trackNavClick("plans")})),i()(this,"trackRecommendationsClick",(()=>{this.trackNavClick("recommendations")}))}render(){let e;const t=(0,d.Z)(this.props.hasConnectedOwner?"jetpack-plans":"jetpack-nav-site-only-plans",{site:this.props.siteUrl,...this.props.purchaseToken?{query:`purchasetoken=${this.props.purchaseToken}`}:{}});return e=this.props.userCanManageModules?o().createElement(g.Z,{selectedText:this.props.routeName},o().createElement(v.Z,{path:"#/dashboard",onClick:this.trackDashboardClick,selected:"/dashboard"===this.props.location.pathname||"/"===this.props.location.pathname},_x("At a Glance","Navigation item.","jetpack")),!this.props.isOfflineMode&&this.props.isLinked&&o().createElement(v.Z,{path:"#/my-plan",onClick:this.trackMyPlanClick,selected:"/my-plan"===this.props.location.pathname},_x("My Plan","Navigation item.","jetpack")),!this.props.isOfflineMode&&o().createElement(v.Z,{path:t,onClick:this.trackPlansClick,selected:"/plans"===this.props.location.pathname},_x("Plans","Navigation item.","jetpack")),this.props.showRecommendations&&o().createElement(v.Z,{path:"#/recommendations",onClick:this.trackRecommendationsClick,selected:this.props.location.pathname.startsWith("/recommendations")},_x("Recommendations","Navigation item.","jetpack"))):o().createElement(g.Z,{selectedText:this.props.routeName},o().createElement(v.Z,{path:"#/dashboard",selected:"/dashboard"===this.props.location.pathname||"/"===this.props.location.pathname},_x("At a Glance","Navigation item.","jetpack"))),o().createElement("div",{id:"jp-navigation",className:"dops-navigation"},o().createElement(b.Z,{selectedText:this.props.routeName},e))}}k.propTypes={routeName:c().string.isRequired,isOfflineMode:c().bool},t.Z=(0,l.$j)((e=>({userCanManageModules:(0,y.pK)(e),userCanViewStats:(0,y.px)(e),isModuleActivated:t=>(0,m.mp)(e,t),isOfflineMode:(0,f.Ex)(e),isLinked:(0,f.BU)(e),hasConnectedOwner:(0,f.it)(e),showRecommendations:(0,y.mb)(e),siteUrl:(0,y.JR)(e),purchaseToken:(0,y.as)(e)})))((0,u.EN)(k))},64296:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(66552),p=n(93107),d=n(41776),h=n(83371),f=n(86428),m=n(7507),g=n(41147);class v extends c().Component{constructor(){super(...arguments),i()(this,"renderMainContent",(e=>{let t,n=c().createElement(d.Z,this.props);switch(e){default:this.props.history.replace("/dashboard"),t=c().createElement(f.Z,this.props);break;case"/settings":case"/writing":case"/sharing":case"/performance":this.props.isSubscriber||(n=c().createElement(h.Z,this.props),t=c().createElement(m.Z,{siteAdminUrl:this.props.siteAdminUrl,siteRawUrl:this.props.siteRawUrl,searchTerm:this.props.searchTerm,userCanManageModules:this.props.userCanManageModules}))}return window.wpNavMenuClassChange(),c().createElement("div",null,n,t)}))}shouldComponentUpdate(e){return e.siteConnectionStatus!==this.props.siteConnectionStatus||e.location.pathname!==this.props.location.pathname}render(){return this.renderMainContent(this.props.location.pathname)}}v.propTypes={userCanViewStats:o().bool.isRequired,isSubscriber:o().bool.isRequired,siteConnectionStatus:o().any.isRequired},t.Z=(0,l.$j)((e=>({userCanViewStats:(0,u.px)(e),siteConnectionStatus:(0,g.Gz)(e),isSubscriber:(0,u.dc)(e),isModuleActivated:t=>(0,p.mp)(e,t),userCanManageModules:(0,u.pK)(e)})))(v)},88001:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819),d=n(41922),h=n(22256);class f extends c().Component{constructor(){super(...arguments),i()(this,"dismissTimeout",null),i()(this,"getIcon",(()=>{let e;switch(this.props.status){default:e="info";break;case"is-success":e="checkmark";break;case"is-error":case"is-warning":e="notice"}return e})),i()(this,"clearText",(e=>"string"==typeof e?e.replace(/(<([^>]+)>)/gi,""):e))}componentDidMount(){this.props.duration>0&&(this.dismissTimeout=setTimeout(this.props.onDismissClick,this.props.duration))}componentWillUnmount(){this.dismissTimeout&&clearTimeout(this.dismissTimeout)}render(){const{children:e,className:t,icon:n,isCompact:r,onDismissClick:i,showDismiss:s=!r,status:o,text:a,dismissText:l}=this.props,p=u()("dops-notice",o,t,{"is-compact":r,"is-dismissable":s});return c().createElement("div",{className:p},c().createElement("span",{className:"dops-notice__icon-wrapper"},c().createElement(h.Z,{className:"dops-notice__icon",icon:n||this.getIcon(),size:24})),c().createElement("span",{className:"dops-notice__content"},c().createElement("span",{className:"dops-notice__text"},a?this.clearText(a):e)),a?e:null,s&&c().createElement("span",{role:"button",onKeyDown:(0,d.Z)(i),tabIndex:"0",className:"dops-notice__dismiss",onClick:i},c().createElement(h.Z,{icon:"cross",size:24}),c().createElement("span",{className:"dops-notice__screen-reader-text screen-reader-text"},l)))}}i()(f,"displayName","SimpleNotice"),i()(f,"defaultProps",{duration:0,status:null,showDismiss:!0,className:"",onDismissClick:p.noop}),i()(f,"propTypes",{status:o().string,showDismiss:o().bool,isCompact:o().bool,duration:o().number,text:o().oneOfType([o().oneOfType([o().string,o().node]),o().arrayOf(o().oneOfType([o().string,o().node]))]),icon:o().string,onDismissClick:o().func,className:o().string})},51933:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(22256);class u extends c().Component{render(){const e={className:"dops-notice__action",href:this.props.href,onClick:this.props.onClick};return this.props.external&&(e.target="_blank"),c().createElement("a",e,c().createElement("span",null,this.props.children),this.props.icon&&c().createElement(l.Z,{icon:this.props.icon,size:24}),this.props.external&&c().createElement(l.Z,{icon:"external",size:24}))}}i()(u,"displayName","NoticeAction"),i()(u,"propTypes",{href:o().string,onClick:o().func,external:o().bool,icon:o().string}),i()(u,"defaultProps",{external:!1})},28865:function(e,t,n){"use strict";n.d(t,{Y:function(){return i}});var r=n(34885);const i=e=>{const t=(0,r.X)();return new Intl.NumberFormat(t).format(e)}},3218:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(98486),c=n(81200);const l={[c._d]:"/plans/wpcom-free.svg",[c.sy]:"/plans/wpcom-personal.svg",[c.Qm]:"/plans/wpcom-personal.svg",[c.wm]:"/plans/wpcom-personal.svg",[c.xf]:"/plans/wpcom-premium.svg",[c.G6]:"/plans/wpcom-premium.svg",[c.OE]:"/plans/wpcom-premium.svg",[c.p7]:"/plans/wpcom-business.svg",[c.j2]:"/plans/wpcom-business.svg",[c.Wg]:"/plans/wpcom-business.svg",[c.JA]:"/plans/wpcom-ecommerce.svg",[c.f3]:"/plans/wpcom-ecommerce.svg",[c.lv]:"/plans/wpcom-ecommerce.svg",[c.uz]:"/plans/wpcom-ecommerce.svg",[c.Ij]:"/products/product-jetpack-search.svg",[c.un]:"/products/product-jetpack-search.svg",[c.tV]:"/products/product-jetpack-backup.svg",[c.XL]:"/products/product-jetpack-backup.svg",[c.LA]:"/products/product-jetpack-backup.svg",[c.Us]:"/products/product-jetpack-backup.svg",[c.WS]:"/products/product-jetpack-scan.svg",[c.tl]:"/products/product-jetpack-scan.svg",[c.sh]:"/products/product-jetpack-anti-spam.svg",[c.vS]:"/products/product-jetpack-anti-spam.svg",[c.dW]:"/products/product-jetpack-search.svg",[c.ux]:"/products/product-jetpack-search.svg",[c.lj]:"/plans/jetpack-free.svg",[c.ap]:"/plans/jetpack-personal.svg",[c.mg]:"/plans/jetpack-personal.svg",[c.Xz]:"/plans/jetpack-premium.svg",[c.p2]:"/plans/jetpack-premium.svg",[c.NJ]:"/plans/jetpack-professional.svg",[c.yY]:"/plans/jetpack-professional.svg",[c.Et]:"/plans/jetpack-security.svg",[c.w2]:"/plans/jetpack-security.svg",[c.b6]:"/plans/jetpack-security.svg",[c.aS]:"/plans/jetpack-security.svg",[c.th]:"/plans/jetpack-complete.svg",[c.JX]:"/plans/jetpack-complete.svg",[c.v_]:"/products/product-jetpack-videopress.svg",[c.Bi]:"/products/product-jetpack-videopress.svg",[c.np]:"/products/product-jetpack-backup.svg",[c.ic]:"/products/product-jetpack-backup.svg",[c.sT]:"/products/product-jetpack-backup.svg",[c.ah]:"/products/product-jetpack-backup.svg",[c.Vl]:"/plans/jetpack-security.svg",[c.Dl]:"/plans/jetpack-security.svg",[c.jI]:"/plans/jetpack-security.svg",[c.bm]:"/plans/jetpack-security.svg"};class u extends s.Component{render(){const{className:e,alt:t,plan:n}=this.props;return o().createElement("img",{className:e,src:a.hp+l[n],width:32,height:32,alt:t||""})}}u.propTypes={classNames:i().string,alt:i().string,plan:i().oneOf([c._d,c.sy,c.Qm,c.wm,c.xf,c.G6,c.OE,c.p7,c.j2,c.Wg,c.JA,c.f3,c.lv,c.uz,c.Ij,c.un,c.tV,c.XL,c.LA,c.Us,c.WS,c.tl,c.sh,c.vS,c.dW,c.ux,c.lj,c.ap,c.mg,c.Xz,c.p2,c.NJ,c.yY,c.Et,c.w2,c.b6,c.aS,c.th,c.JX,c.np,c.ic,c.sT,c.ah,c.Vl,c.Dl,c.jI,c.bm]).isRequired}},39007:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(2620),o=n(11268),a=n.n(o),c=n(99196),l=n.n(c),u=n(19570),p=n(65736),d=n(55609),h=n(61744),f=n(11973),m=n(60742),g=n(85253),v=n(35303);const __=p.__;class b extends c.Component{constructor(){super(...arguments),i()(this,"state",{isActivating:!1,isInstalling:!1}),i()(this,"activateOrInstallPlugin",(()=>{const{fetchPluginsData:e,pluginIsActive:t,pluginIsInstalled:n,pluginSlug:r}=this.props;if(n)if(t){if(n&&t)return Promise.resolve()}else this.setState({isActivating:!0});else this.setState({isInstalling:!0});return f.Z.tracks.recordJetpackClick({target:"plugin_dash_item",type:n?"install":"activate",feature:r}),u.ZP.installPlugin(r,"active").then((()=>new Promise((e=>setTimeout(e,2500))))).then((()=>e())).finally((()=>{this.setState({isActivating:!1,isInstalling:!1})}))}))}renderContent(){const{iconAlt:e,iconSrc:t,isFetchingPluginsData:n,pluginLink:r,pluginName:i,pluginIsActive:s,pluginIsInstalled:o,installOrActivatePrompt:a}=this.props,{isInstalling:c,isActivating:u}=this.state;return n?l().createElement(m.Z,{className:"plugin-dash-item__content"},l().createElement("p",null,__("Loading…","jetpack"))):c?l().createElement(m.Z,{className:"plugin-dash-item__content"},l().createElement(d.Spinner,null),l().createElement("p",null,(0,p.sprintf)(
+/* translators: "%s" is the name of the plugin. i.e. Boost, CRM, etc. */
+__("Installing %s","jetpack"),i))):u?l().createElement(m.Z,{className:"plugin-dash-item__content"},l().createElement(d.Spinner,null),l().createElement("p",null,(0,p.sprintf)(
+/* translators: "%s" is the name of the plugin. i.e. Boost, CRM, etc. */
+__("Activating %s","jetpack"),i))):o?s?l().createElement(g.Z,{callToAction:(0,p.sprintf)(
+/* translators: "%s" is the name of the plugin. i.e. Boost, CRM, etc. */
+__("Manage %s","jetpack"),i),icon:t?void 0:"plugins",iconAlt:e,iconSrc:t,title:__("Plugin is installed & active.","jetpack"),href:r}):l().createElement(g.Z,{callToAction:(0,p.sprintf)(
+/* translators: "%s" is the name of the plugin. i.e. Boost, CRM, etc. */
+__("Activate %s","jetpack"),i),icon:t?void 0:"plugins",iconAlt:e,iconSrc:t,title:a,onClick:this.activateOrInstallPlugin}):l().createElement(g.Z,{callToAction:(0,p.sprintf)(
+/* translators: "%s" is the name of the plugin. i.e. Boost, CRM, etc. */
+__("Install %s","jetpack"),i),icon:t?void 0:"plugins",iconAlt:e,iconSrc:t,title:a,onClick:this.activateOrInstallPlugin})}render(){const{pluginName:e}=this.props;return l().createElement("div",{className:"plugin-dash-item"},l().createElement(v.Z,{className:"plugin-dash-item__section-header",label:e}),this.renderContent())}}i()(b,"propTypes",{pluginName:a().string.isRequired,pluginFile:a().string.isRequired,pluginSlug:a().string.isRequired,pluginLink:a().string.isRequired,installOrActivatePrompt:a().element.isRequired,iconAlt:a().string,iconSrc:a().string,isFetchingPluginsData:a().bool,pluginIsActive:a().bool,pluginIsInstalled:a().bool}),t.Z=(0,s.$j)(((e,t)=>({isFetchingPluginsData:(0,h.vz)(e),pluginIsInstalled:(0,h.P8)(e,t.pluginFile),pluginIsActive:(0,h.TB)(e,t.pluginFile)})),(e=>({fetchPluginsData:()=>e((0,h.s4)())})))(b)},40515:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(91850),u=n.n(l),p=n(90922),d=n.n(p),h=n(89105),f=n.n(h),m=n(26767),g=n.n(m),v=n(97236),b=n.n(v),y=n(92819),k=n(16291),w=n(7719);const _=d()("calypso:popover"),E=new Set;class C extends a.Component{constructor(e){super(e),this.setPopoverId(e.id),this.setDOMBehavior=this.setDOMBehavior.bind(this),this.setPosition=this.setPosition.bind(this),this.onClickout=this.onClickout.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onWindowChange=this.onWindowChange.bind(this),this.state={show:e.isVisible,left:-99999,top:-99999,positionClass:this.getPositionClass(e.position)}}componentDidMount(){this.bindEscKeyListener(),this.bindDebouncedReposition(),(0,w.fN)()}UNSAFE_componentWillReceiveProps(e){if((0,w.kK)(e.context)?this.domContext=e.context:this.domContext=u().findDOMNode(e.context),!e.isVisible)return null;this.setPosition()}componentDidUpdate(e){const{isVisible:t}=this.props;return t!==e.isVisible&&(t?this.show():this.hide()),this.domContainer&&this.domContext&&t&&t!==e.isVisible?(this.debug("Update position after render completes"),void setTimeout((()=>this.setPosition()),0)):null}componentWillUnmount(){this.debug("unmounting .... "),this.unbindClickoutHandler(),this.unbindDebouncedReposition(),this.unbindEscKeyListener(),(0,w.zR)(),E.delete(this.id),_("current popover instances: ",E.size)}bindEscKeyListener(){return this.props.closeOnEsc?this.escEventHandlerAdded?null:(this.debug("adding escKey listener ..."),this.escEventHandlerAdded=!0,void document.addEventListener("keydown",this.onKeydown,!0)):null}unbindEscKeyListener(){return this.props.closeOnEsc&&this.escEventHandlerAdded?(this.debug("unbinding `escKey` listener ..."),void document.removeEventListener("keydown",this.onKeydown,!0)):null}onKeydown(e){if(27!==e.keyCode)return null;this.close(!0)}bindClickoutHandler(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.domContainer;return e?this._clickoutHandlerReference?(this.debug("clickout event already bound"),null):(this.debug("binding `clickout` event"),void(this._clickoutHandlerReference=g()(e,this.onClickout))):(this.debug("no element to bind clickout side "),null)}unbindClickoutHandler(){this._clickoutHandlerReference&&(this.debug("unbinding `clickout` listener ..."),this._clickoutHandlerReference(),this._clickoutHandlerReference=null)}onClickout(e){let t=this.domContext&&this.domContext.contains&&!this.domContext.contains(e.target);if(this.props.ignoreContext&&t){const n=u().findDOMNode(this.props.ignoreContext);t=t&&n&&n.contains&&!n.contains(e.target)}t&&this.close()}bindDebouncedReposition(){window.addEventListener("scroll",this.onWindowChange,!0),window.addEventListener("resize",this.onWindowChange,!0)}unbindDebouncedReposition(){this.willReposition&&(window.cancelAnimationFrame(this.willReposition),this.willReposition=null),window.removeEventListener("scroll",this.onWindowChange,!0),window.removeEventListener("resize",this.onWindowChange,!0),this.debug("unbinding `debounce reposition` ...")}onWindowChange(){this.willReposition=window.requestAnimationFrame(this.setPosition)}setDOMBehavior(e){if(!e)return this.unbindClickoutHandler(),null;this.debug("setting DOM behavior"),this.bindClickoutHandler(e),this.domContainer=e,(0,w.kK)(this.props.context)?this.domContext=this.props.context:this.domContext=u().findDOMNode(this.props.context),this.domContainer.focus(),this.setPosition()}getPositionClass(){return`is-${(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.position).replace(/\s+/g,"-")}`}computePosition(){if(!this.props.isVisible)return null;const{domContainer:e,domContext:t}=this,{position:n}=this.props;if(!e||!t)return this.debug("[WARN] no DOM elements to work"),null;let r=n;this.debug("position: %o",n),this.props.autoPosition&&(r=(0,w.X6)(n,e,t),this.debug("suggested position: %o",r));const i=(0,y.assign)({},(0,w.Ou)((0,w.cv)(r,e,t),e),{positionClass:this.getPositionClass(r)});return this.debug("updating reposition: ",i),i}debug(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];_(`[%s] ${e}`,this.id,...n)}setPopoverId(e){this.id=e||`pop__${b()(16)}`,E.add(this.id),this.debug("creating ..."),_("current popover instances: ",E.size)}setPosition(){const e=this.computePosition();if(!e)return null;this.willReposition=null,this.setState(e)}getStylePosition(){const{left:e,top:t}=this.state;return{left:e,top:t}}show(){if(!this.props.showDelay)return this.setState({show:!0}),null;this.debug("showing in %o",`${this.props.showDelay}ms`),this.clearShowTimer(),this._openDelayTimer=setTimeout((()=>{this.setState({show:!0})}),this.props.showDelay)}hide(){this.unbindClickoutHandler(),this.setState({show:!1}),this.clearShowTimer()}clearShowTimer(){if(!this._openDelayTimer)return null;clearTimeout(this._openDelayTimer),this._openDelayTimer=null}close(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.props.isVisible)return this.debug("popover should be already closed"),null;this.domContext.focus(),this.props.onClose(e)}render(){if(!this.state.show)return this.debug("is hidden. return no render"),null;if(!this.props.context)return this.debug("No `context` to tie. return no render"),null;const e=f()("dops-popover",this.props.className,this.state.positionClass);return this.debug("rendering ..."),c().createElement(k.Z,{className:this.props.rootClassName},c().createElement("div",{style:this.getStylePosition(),className:e,ref:this.setDOMBehavior},c().createElement("div",{className:"dops-popover__arrow"}),c().createElement("div",{className:"dops-popover__inner"},this.props.children)))}}i()(C,"propTypes",{autoPosition:o().bool,className:o().string,closeOnEsc:o().bool,id:o().string,ignoreContext:o().shape({getDOMNode:o().function}),position:o().string,rootClassName:o().string,showDelay:o().number,onClose:o().func.isRequired,onShow:o().func}),i()(C,"defaultProps",{autoPosition:!0,className:"dops-popover",closeOnEsc:!0,isVisible:!1,position:"top",showDelay:0,onShow:()=>{}}),t.Z=C},7719:function(e,t,n){"use strict";n.d(t,{Ou:function(){return v},fN:function(){return h},zR:function(){return f},X6:function(){return m},cv:function(){return g},kK:function(){return b}});var r=n(98707),i=n.n(r),s=n(90922);const o=n.n(s)()("calypso:popover:util");function a(){const e={};return e.top=window.scrollY,e.left=window.scrollX,e.width=window.innerWidth,e.height=window.innerHeight,e.right=e.left+e.width,e.bottom=e.top+e.height,o("viewport: %o",e),e}const c={top:"bottom",bottom:"top",left:"right",right:"left"},l={top:"right",left:"top",bottom:"left",right:"bottom"};let u=a();function p(){u=a()}let d=!1;const h=()=>{if(d)return o("window events already bound");d=!0,o("bind handlers to `resize` and `scroll` events"),window.addEventListener("resize",p,!0),window.addEventListener("scroll",p,!0)},f=()=>{if(!d)return o("window events are not bound");d=!1,o("unbind handlers to `resize` and `scroll` events"),window.removeEventListener("resize",p,!0),window.removeEventListener("scroll",p,!0)},m=(e,t,n)=>{const r=i()(n),s=t.clientHeight,o=t.clientWidth,a={top:r.top-s,bottom:u.height-r.bottom-s,left:r.left-o,right:u.width-r.right-o},p=e.split(/\s+/),[d]=p;let[,h]=p;const f=function(e,t){const n=[e,c[e],l[e],c[l[e]]];let r,i=-1/0;for(let s=0,o=n.length;s<o;s++){const o=n[s],a=t[o];if(a>0)return o;a>i&&(i=a,r=e)}return r}(d,a);return h!==f&&h!==c[f]||(h=null),function(e,t,n,r,i,s){const o=t?[e+" "+t,e,e+" "+c[t]]:[e,e+" "+l[e],e+" "+c[l[e]]];let a,p=0;const d=i*s;for(let e=0,t=o.length;e<t;e++){const t=o[e],c=g(t,n,r),l=c.left+i,h=c.top+s,f=Math.min(c.top<u.top?h-u.top:u.bottom-c.top,s),m=Math.min(c.left<u.left?l-u.left:u.right-c.left,i)*f;if(m===d)return t;m>p&&(p=m,a=t)}return a}(f,h,t,n,o,s)||e};function g(e,t,n){const r=i()(t);if(!r)throw new Error("could not get bounding client rect of Tip element");const s=r.width,o=r.height,a=i()(n);if(!a)throw new Error("could not get bounding client rect of `target`");const c=a.width,l=a.height,u=function(e,t){const n=t.body||t.getElementsByTagName("body")[0],r=t.documentElement||n.parentNode,i=r.clientTop||n.clientTop||0,s=r.clientLeft||n.clientLeft||0,o=window.pageYOffset||r.scrollTop,a=window.pageXOffset||r.scrollLeft;return{top:e.top+o-i,left:e.left+a-s}}(a,document);if(!u)throw new Error("could not determine page offset of `target`");let p={};switch(e){case"top":p={top:u.top-o,left:u.left+c/2-s/2};break;case"bottom":p={top:u.top+l,left:u.left+c/2-s/2};break;case"right":p={top:u.top+l/2-o/2,left:u.left+c};break;case"left":p={top:u.top+l/2-o/2,left:u.left-s};break;case"top left":p={top:u.top-o,left:u.left+c/2-s+15};break;case"top right":p={top:u.top-o,left:u.left+c/2-15};break;case"bottom left":p={top:u.top+l,left:u.left+c/2-s+15};break;case"bottom right":p={top:u.top+l,left:u.left+c/2-15};break;case"left top":p={top:u.top+l/2-o,left:u.left-s};break;case"left bottom":p={top:u.top+l/2,left:u.left-s};break;case"right top":p={top:u.top+l/2-o,left:u.left+c};break;case"right bottom":p={top:u.top+l/2,left:u.left+c};break;default:throw new Error(`invalid position "${e}"`)}return p}const v=function(e,t){const n=i()(t).width;return e.left=Math.max(0,Math.min(e.left,u.width-n)),e},b=e=>{try{return e instanceof HTMLElement}catch(t){return"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument}}},87024:function(e,t,n){"use strict";n.d(t,{w:function(){return a}});var r=n(99196),i=n.n(r),s=n(65736),o=n(22256);const __=s.__,a=()=>i().createElement("div",{className:"jp-product-activated-label"},i().createElement(o.Z,{icon:"checkmark",size:20}),i().createElement("span",{className:"jp-product-activated-label__text"},__("Activated","jetpack")))},35179:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(65736),u=n(69771);const __=l.__;class p extends o().PureComponent{render(){const{expiryDate:e,purchaseDate:t,isRefundable:n,dateFormat:r}=this.props;if(!e&&!t)return null;if(!e||n){const e=new Date(t);return"Invalid Date"!==e.toString()?(0,l.sprintf)(
+/* translators: placeholder is a date. */
+__("Purchased on %s.","jetpack"),(0,u.dateI18n)(r,e)):null}const i=new Date(e);return"Invalid Date"===i.toString()?null:(0,u.isInTheFuture)(i)?(0,l.sprintf)(
+/* translators: placeholder is a date. */
+__("Renews on %s.","jetpack"),(0,u.dateI18n)(r,i)):(0,l.sprintf)(
+/* translators: placeholder is a date. */
+__("Expired on %s.","jetpack"),(0,u.dateI18n)(r,i))}}i()(p,"propTypes",{expiryDate:c().string,purchaseDate:c().string,isRefundable:c().bool,dateFormat:c().string}),i()(p,"defaultProps",{expiryDate:"",purchaseDate:"",isRefundable:!1,dateFormat:"F j, Y"}),t.Z=p},29733:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(11973),d=n(9913),h=n(60742),f=n(41147),m=n(82649);const __=u.__,_x=u._x;class g extends c().Component{constructor(){super(...arguments),i()(this,"shouldShowModal",(()=>{const{show:e}=this.props;return e&&this.props.isSiteConnected&&!this.props.isReconnectingSite})),i()(this,"closeModal",(()=>{this.props.onHide()})),i()(this,"clickReconnectSite",(e=>{e.preventDefault(),p.Z.tracks.recordJetpackClick("confirm_reconnect_modal"),this.props.reconnectSite(),this.closeModal()}))}render(){return this.shouldShowModal()&&c().createElement(m.Z,{className:"reconnect__modal",onRequestClose:this.closeModal},c().createElement(h.Z,{className:"reconnect__modal__body"},c().createElement("h2",null,__("Reconnect Jetpack","jetpack")),c().createElement("h4",null,__("You’ve clicked a link to restore your Jetpack connection.","jetpack")),c().createElement("h4",null,c().createElement("strong",null,__("You should only do this if advised by Site Health tests or Jetpack Support.","jetpack"))),c().createElement("h4",null,__("Click below to reconnect Jetpack","jetpack")),c().createElement("div",{className:"reconnect__modal-actions"},c().createElement(d.Z,{className:"reconnect__modal-cancel",onClick:this.closeModal},_x("Cancel","A caption for a button to cancel an action.","jetpack")),c().createElement(d.Z,{className:"reconnect__modal-reconnect",onClick:this.clickReconnectSite,primary:!0},_x("Reconnect Jetpack","A caption for a button to reconnect Jetpack.","jetpack")))))}}i()(g,"displayName","ReconnectModal"),i()(g,"propTypes",{show:o().bool,onHide:o().func}),i()(g,"defaultProps",{show:!1}),t.Z=(0,l.$j)((e=>({isSiteConnected:(0,f.q7)(e),isReconnectingSite:(0,f.O_)(e)})),(e=>({reconnectSite:()=>e((0,f.xK)())})))(g)},16291:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(91850),o=n.n(s),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(2620);class d extends u().Component{constructor(){super(...arguments),i()(this,"renderChildren",(()=>{let e;e=this.props&&(Object.keys(this.props).length>1||!this.props.children)?u().createElement("div",this.props,this.props.children):this.props.children,this.context.store&&(e=u().createElement(p.zt,{store:this.context.store},e)),o().render(e,this.container)}))}componentDidMount(){this.container=document.createElement("div"),document.body.appendChild(this.container),this.renderChildren()}componentDidUpdate(){this.renderChildren()}componentWillUnmount(){this.container&&(o().unmountComponentAtNode(this.container),document.body.removeChild(this.container),delete this.container)}render(){return null}}i()(d,"displayName","RootChild"),i()(d,"propTypes",{children:c().node}),i()(d,"contextTypes",{store:c().object})},67448:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(89105),c=n.n(a),l=n(24555),u=n(11268),p=n.n(u),d=n(99196),h=n.n(d),f=n(91850),m=n.n(f),g=n(92819),v=n(11973),b=n(22256);function y(e,t){switch(t.key){case" ":case"Enter":this[e](t)}}class k extends h().Component{constructor(){super(...arguments),o()(this,"state",{keyword:this.props.initialValue||"",isOpen:!!this.props.isOpen,hasFocus:!1}),o()(this,"scrollOverlay",(()=>{this.refs.overlay&&window.requestAnimationFrame((()=>{this.refs.overlay&&this.refs.searchInput&&(this.refs.overlay.scrollLeft=this.getScrollLeft(this.refs.searchInput))}))})),o()(this,"getScrollLeft",(e=>{if(!e.createTextRange)return e.scrollLeft;const t=e.createTextRange(),n=window.getComputedStyle(e,void 0),r=parseFloat(n.paddingLeft),i=t.getBoundingClientRect();return e.getBoundingClientRect().left+e.clientLeft+r-i.left})),o()(this,"focus",(()=>{setTimeout((()=>this.refs.searchInput&&m().findDOMNode(this.refs.searchInput).focus()),0)})),o()(this,"blur",(()=>{m().findDOMNode(this.refs.searchInput).blur()})),o()(this,"getCurrentSearchValue",(()=>m().findDOMNode(this.refs.searchInput).value)),o()(this,"clear",(()=>{this.setState({keyword:""})})),o()(this,"onBlur",(e=>{this.props.onBlur&&this.props.onBlur(e),this.setState({hasFocus:!1})})),o()(this,"onChange",(()=>{this.setState({keyword:this.getCurrentSearchValue()})})),o()(this,"openSearch",(e=>{this.props.onClick(),e.preventDefault(),this.setState({keyword:"",isOpen:!0}),v.Z.ga.recordEvent(this.props.analyticsGroup,"Clicked Open Search")})),o()(this,"closeSearch",(e=>{if(e.preventDefault(),this.props.disabled)return;const t=m().findDOMNode(this.refs.searchInput);this.setState({keyword:"",isOpen:this.props.isOpen||!1}),t.value="",t.blur(),this.props.pinned&&m().findDOMNode(this.refs.openIcon).focus(),this.props.onSearchClose(e),v.Z.ga.recordEvent(this.props.analyticsGroup,"Clicked Close Search")})),o()(this,"keyUp",(e=>{"Enter"===e.key&&(0,l.tq)()&&this.blur(),this.props.pinned&&("Escape"===e.key&&this.closeSearch(e),this.scrollOverlay())})),o()(this,"keyDown",(e=>{this.scrollOverlay(),"Escape"===e.key&&""===e.target.value&&this.closeSearch(e),this.props.onKeyDown(e)})),o()(this,"onFocus",(()=>{const e=m().findDOMNode(this.refs.searchInput),t=e.value;t&&(e.value="",e.value=t),this.setState({hasFocus:!0}),this.props.onSearchOpen()})),o()(this,"renderStylingDiv",(()=>h().createElement("div",{className:"dops-search__text-overlay",ref:"overlay"},this.props.overlayStyling(this.state.keyword)))),o()(this,"closeButton",(()=>this.props.hideClose||!this.state.keyword&&!this.state.isOpen?null:h().createElement("div",{role:"button",className:"dops-search__icon-navigation",onClick:this.closeSearch,tabIndex:"0",onKeyDown:this.closeListener,"aria-controls":"dops-search-component-"+this.state.instanceId,"aria-label":"Close Search"},h().createElement(b.Z,{icon:"cross",className:"dops-search__close-icon"}))))}UNSAFE_componentWillMount(){this.setState({instanceId:++k.instances}),this.closeListener=y.bind(this,"closeSearch"),this.openListener=y.bind(this,"openSearch")}UNSAFE_componentWillReceiveProps(e){e.onSearch===this.props.onSearch&&e.delaySearch===this.props.delaySearch||(this.onSearch=this.props.delaySearch?(0,g.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch),e.isOpen&&this.setState({isOpen:e.isOpen}),e.initialValue===this.props.initialValue||this.state.keyword!==this.props.initialValue&&""!==this.state.keyword||this.setState({keyword:e.initialValue||""})}componentDidUpdate(e,t){this.scrollOverlay(),(this.state.isOpen&&!t.isOpen||this.props.autoFocus&&!e.autoFocus)&&this.focus(),this.state.keyword!==t.keyword&&(this.state.keyword?this.onSearch(this.state.keyword):(this.props.delaySearch&&this.onSearch.cancel(),this.props.onSearch(this.state.keyword)),this.props.onSearchChange(this.state.keyword))}componentDidMount(){this.onSearch=this.props.delaySearch?(0,g.debounce)(this.props.onSearch,this.props.delayTimeout):this.props.onSearch,this.props.autoFocus&&setTimeout((()=>this.focus()),0)}render(){const e=this.state.keyword,t=this.props.placeholder||"Search…",n=this.props.pinned&&!this.state.isOpen,r=this.state.isOpen||!this.props.pinned||this.props.initialValue,s=this.props.disableAutocorrect&&{autoComplete:"off",autoCorrect:"off",spellCheck:"false"},o=c()(this.props.additionalClasses,this.props.dir,{"is-expanded-to-container":this.props.fitsContainer,"is-open":r,"is-searching":this.props.searching,"has-focus":this.state.hasFocus,"dops-search":!0}),a=c()("dops-search__input-fade",this.props.dir),l=c()("dops-search__input",this.props.dir);return h().createElement("div",{dir:this.props.dir||null,className:o,role:"search"},h().createElement("div",{role:"button",className:"dops-search__icon-navigation",ref:"openIcon",onClick:n?this.openSearch:this.focus,tabIndex:n?"0":null,onKeyDown:n?this.openListener:null,"aria-controls":"dops-search-component-"+this.state.instanceId,"aria-label":"Open Search"},h().createElement(b.Z,{icon:"search",className:"dops-search__open-icon"})),h().createElement("div",{className:a},h().createElement("input",i()({type:"search",onChange:this.onChange,id:"dops-search-component-"+this.state.instanceId,className:l,placeholder:t,role:"searchbox",value:e,ref:"searchInput",onKeyUp:this.keyUp,onKeyDown:this.keyDown,onMouseUp:this.props.onClick,onFocus:this.onFocus,onBlur:this.onBlur,disabled:this.props.disabled,"aria-hidden":!r,autoCapitalize:"none",dir:this.props.dir,maxLength:this.props.maxLength},s)),this.props.overlayStyling&&this.renderStylingDiv()),this.closeButton())}}o()(k,"displayName","Search"),o()(k,"instances",0),o()(k,"propTypes",{additionalClasses:p().string,initialValue:p().string,placeholder:p().string,pinned:p().bool,delaySearch:p().bool,delayTimeout:p().number,onSearch:p().func.isRequired,onSearchChange:p().func,onSearchOpen:p().func,onSearchClose:p().func,analyticsGroup:p().string,overlayStyling:p().func,autoFocus:p().bool,disabled:p().bool,onKeyDown:p().func,onClick:p().func,disableAutocorrect:p().bool,onBlur:p().func,searching:p().bool,isOpen:p().bool,dir:p().oneOf(["ltr","rtl"]),fitsContainer:p().bool,maxLength:p().number,hideClose:p().bool}),o()(k,"defaultProps",{pinned:!1,delaySearch:!1,delayTimeout:300,autoFocus:!1,disabled:!1,onSearchChange:g.noop,onSearchOpen:g.noop,onSearchClose:g.noop,onKeyDown:g.noop,onClick:g.noop,overlayStyling:void 0,disableAutocorrect:!1,searching:!1,isOpen:!1,dir:void 0,fitsContainer:!1,hideClose:!1}),t.Z=k},35303:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(60742);class d extends c().Component{render(){const e=u()(this.props.className,"dops-section-header");return c().createElement(p.Z,{compact:!0,className:e},c().createElement("div",{className:"dops-section-header__label"},c().createElement("span",{className:"dops-section-header__label-text"},this.props.label)),c().createElement("div",{className:"dops-section-header__actions"},this.props.children))}}i()(d,"displayName","SectionHeader"),i()(d,"propTypes",{label:o().string}),i()(d,"defaultProps",{label:""})},91592:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(92819),c=n(89105),l=n.n(c),u=n(7767),p=n.n(u),d=n(67939),h=n(17840),f=n(67448);const m=p()({displayName:"SectionNav",propTypes:{children:i().node,selectedText:i().node,selectedCount:i().number,hasPinnedItems:i().bool,onMobileNavPanelOpen:i().func},getInitialState:function(){return{mobileOpen:!1}},getDefaultProps:function(){return{onMobileNavPanelOpen:()=>{}}},UNSAFE_componentWillMount:function(){this.checkForSiblingControls(this.props.children)},UNSAFE_componentWillReceiveProps:function(e){(0,a.isEqual)(this.props,e)||(this.checkForSiblingControls(e.children),this.hasSiblingControls||this.closeMobilePanel())},render:function(){const e=this.getChildren();let t;return e?(t=l()({"dops-section-nav":!0,"is-open":this.state.mobileOpen,"has-pinned-items":this.hasPinnedSearch||this.props.hasPinnedItems}),o().createElement("div",{className:t},o().createElement("div",{className:"dops-section-nav__mobile-header",role:"button",onClick:this.toggleMobileOpenState,tabIndex:0,onKeyUp:this.toggleMobileOpenState},o().createElement("span",{className:"dops-section-nav__mobile-header-text"},this.props.selectedText)),o().createElement("div",{className:"dops-section-nav__panel"},e))):(t=l()({"dops-section-nav":!0,"is-empty":!0}),o().createElement("div",{className:t},o().createElement("div",{className:"dops-section-nav__panel"},o().createElement(h.Z,null))))},getChildren:function(){return o().Children.map(this.props.children,function(e){const t={hasSiblingControls:this.hasSiblingControls,closeSectionNavMobilePanel:this.closeMobilePanel};return e?(e.type!==d.Z||e.props.selectedText||"string"!=typeof this.props.selectedText||(t.selectedText=this.props.selectedText),e.type===d.Z&&this.props.selectedCount&&(t.selectedCount=this.props.selectedCount),e.type===f.Z&&(e.props.pinned&&(this.hasPinnedSearch=!0),t.onSearch=this.generateOnSearch(e.props.onSearch)),o().cloneElement(e,t)):null}.bind(this))},closeMobilePanel:function(){window.innerWidth<480&&this.state.mobileOpen&&this.setState({mobileOpen:!1})},toggleMobileOpenState:function(){const e=!this.state.mobileOpen;this.setState({mobileOpen:e}),e&&this.props.onMobileNavPanelOpen()},generateOnSearch:function(e){return function(){e.apply(this,arguments),this.closeMobilePanel()}.bind(this)},checkForSiblingControls:function(e){this.hasSiblingControls=!1,o().Children.forEach(e,function(e,t){t&&e&&e.type!==f.Z&&(this.hasSiblingControls=!0)}.bind(this))}});t.Z=m},17840:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(21425),c=n.n(a),l=n(89105),u=n.n(l),p=n(7767),d=n.n(p),h=n(44135);const f=d()({displayName:"NavItem",mixins:[c()],propTypes:{itemType:i().string,path:i().string,selected:i().bool,tabIndex:i().number,onClick:i().func,isExternalLink:i().bool,disabled:i().bool,count:i().number},render:function(){const e=this.props.itemType?this.props.itemType:"tab",t={"is-selected":this.props.selected,"is-external":this.props.isExternalLink};t["dops-section-nav-"+e]=!0;const n=u()(t);let r,i;return this.props.isExternalLink&&(r="_blank"),this.props.disabled||(i=this.props.onClick),o().createElement("li",{className:n},o().createElement("a",{href:this.props.path,target:r,className:"dops-section-nav-"+e+"__link",onClick:i,tabIndex:this.props.tabIndex||0,disabled:this.props.disabled,role:"menuitem",rel:this.props.isExternalLink?"external":null},o().createElement("span",{className:"dops-section-nav-"+e+"__text"},this.props.children,"number"==typeof this.props.count&&o().createElement(h.Z,{count:this.props.count}))))}});t.Z=f},67939:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(89105),c=n.n(a),l=n(92819),u=n(24555),p=n(11268),d=n.n(p),h=n(91850),f=n.n(h),m=n(99196),g=n.n(m),v=n(51262),b=n(34964);class y extends g().Component{constructor(){super(...arguments),o()(this,"state",{isDropdown:!1}),o()(this,"getTabWidths",(()=>{let e=0;g().Children.forEach(this.props.children,function(t,n){if(!t)return;const r=f().findDOMNode(this.refs["tab-"+n]).offsetWidth;e+=r}.bind(this)),this.tabsWidth=e})),o()(this,"getDropdown",(()=>{const e=g().Children.map(this.props.children,(function(e,t){return e?g().createElement(v.Z,i()({},e.props,{key:"navTabsDropdown-"+t}),e.props.children):null}));return g().createElement(b.Z,{className:"dops-section-nav-tabs__dropdown",selectedText:this.props.selectedText,selectedCount:this.props.selectedCount},e)})),o()(this,"setDropdown",(()=>{let e;if(window.innerWidth>480){if(!this.refs.navGroup)return;e=this.refs.navGroup.offsetWidth,this.tabsWidth||this.getTabWidths(),e<=this.tabsWidth&&!this.state.isDropdown?this.setState({isDropdown:!0}):e>this.tabsWidth&&this.state.isDropdown&&this.setState({isDropdown:!1})}else window.innerWidth<=480&&this.state.isDropdown&&this.setState({isDropdown:!1})})),o()(this,"keyHandler",(e=>{switch(e.keyCode){case 32:case 13:e.preventDefault(),document.activeElement.click()}}))}componentDidMount(){this.setDropdown(),this.debouncedAfterResize=(0,l.debounce)(this.setDropdown,300),window.addEventListener("resize",this.debouncedAfterResize)}UNSAFE_componentWillReceiveProps(){this.setDropdown()}componentWillUnmount(){window.removeEventListener("resize",this.debouncedAfterResize)}render(){const e=g().Children.map(this.props.children,(function(e,t){return e&&g().cloneElement(e,{ref:"tab-"+t})})),t=c()({"dops-section-nav-tabs":!0,"is-dropdown":this.state.isDropdown,"is-open":this.state.isDropdownOpen,"has-siblings":this.props.hasSiblingControls}),n=(0,u.bQ)();return g().createElement("div",{className:"dops-section-nav-group",ref:"navGroup"},g().createElement("div",{className:t},this.props.label&&g().createElement("h6",{className:"dops-section-nav-group__label"},this.props.label),g().createElement("ul",{className:"dops-section-nav-tabs__list",role:"menu",onKeyDown:this.keyHandler},e),this.state.isDropdown&&n>480&&this.getDropdown()))}}o()(y,"propTypes",{selectedText:d().string,selectedCount:d().number,label:d().string,hasSiblingControls:d().bool}),o()(y,"defaultProps",{hasSiblingControls:!1}),t.Z=y},34964:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(91850),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819),d=n(51262),h=n(84467),f=n(23837),m=n(44135);const{Component:g}=c(),v=()=>{};class b extends g{constructor(e){super(e),this.navigateItem=this.navigateItem.bind(this),this.toggleDropdown=this.toggleDropdown.bind(this),this.handleOutsideClick=this.handleOutsideClick.bind(this),this._onClick=this._onClick.bind(this);const t={isOpen:!1};e.options.length&&(t.selected=this.getInitialSelectedItem(e)),this.state=t}UNSAFE_componentWillMount(){this.setState({instanceId:++b.instances})}UNSAFE_componentWillReceiveProps(e){this.state.isOpen&&this.closeDropdown(),void 0!==this.state.selected&&this.props.initialSelected!==e.initialSelected&&this.setState({selected:e.initialSelected})}componentWillUnmount(){window.removeEventListener("click",this.handleOutsideClick)}componentDidUpdate(e,t){this.state.isOpen?window.addEventListener("click",this.handleOutsideClick):window.removeEventListener("click",this.handleOutsideClick),this.state.isOpen!==t.isOpen&&this.props.onToggle({target:this,open:this.state.isOpen})}getInitialSelectedItem(e){if((e=e||this.props).initialSelected)return e.initialSelected;if(!e.options.length)return;const t=(0,p.find)(e.options,(e=>!e.isLabel));return t&&t.value}dropdownOptions(){let e=0;const t=this;return this.props.children?c().Children.map(this.props.children,(function(n,r){if(!n)return null;const i=c().cloneElement(n,{ref:n.type===d.Z?"item-"+e:null,key:"item-"+r,onClick:function(e){t.refs.dropdownContainer.focus(),"function"==typeof n.props.onClick&&n.props.onClick(e)}});return n.type===d.Z&&e++,i}),this):this.props.options.map((function(t,n){if(!t)return c().createElement(h.Z,{key:"dropdown-separator-"+this.state.instanceId+"-"+n});if(t.isLabel)return c().createElement(f.Z,{key:"dropdown-label-"+this.state.instanceId+"-"+n},t.label);const r=c().createElement(d.Z,{key:"dropdown-item-"+this.state.instanceId+"-"+t.value,ref:"item-"+e,selected:this.state.selected===t.value,onClick:this.onSelectItem(t),path:t.path},t.label);return e++,r}),this)}render(){const e={"dops-select-dropdown":!0,"is-compact":this.props.compact,"is-open":this.state.isOpen,"is-disabled":this.props.disabled};this.props.className&&this.props.className.split(" ").forEach((function(t){e[t]=!0}));const t=u()(e),n=this.props.selectedText?this.props.selectedText:(0,p.result)((0,p.find)(this.props.options,{value:this.state.selected}),"label");return c().createElement("div",{style:this.props.style,className:t},c().createElement("div",{ref:"dropdownContainer",className:"dops-select-dropdown__container",tabIndex:this.props.tabIndex||0,role:"listbox","aria-labelledby":"select-dropdown-"+this.state.instanceId,"aria-owns":"select-submenu-"+this.state.instanceId,"aria-controls":"select-submenu-"+this.state.instanceId,"aria-expanded":this.state.isOpen,onClick:this._onClick,onKeyDown:this.navigateItem},c().createElement("div",{id:"select-dropdown-"+this.state.instanceId,className:"dops-select-dropdown__header"},c().createElement("span",{className:"dops-select-dropdown__header-text"},n,"number"==typeof this.props.selectedCount&&c().createElement(m.Z,{count:this.props.selectedCount}))),c().createElement("ul",{id:"select-submenu-"+this.state.instanceId,className:"dops-select-dropdown__options"},this.dropdownOptions())))}_onClick(){this.props.disabled||this.toggleDropdown()}toggleDropdown(){this.setState({isOpen:!this.state.isOpen})}openDropdown(){this.setState({isOpen:!0})}closeDropdown(){this.state.isOpen&&(delete this.focused,this.setState({isOpen:!1}))}onSelectItem(e){return this.selectItem.bind(this,e)}selectItem(e){e&&(this.props.onSelect&&this.props.onSelect(e),this.setState({selected:e.value}),this.refs.dropdownContainer.focus())}navigateItem(e){switch(e.keyCode){case 9:this.navigateItemByTabKey(e);break;case 32:case 13:e.preventDefault(),this.activateItem();break;case 38:e.preventDefault(),this.focusSibling("previous"),this.openDropdown();break;case 40:e.preventDefault(),this.focusSibling("next"),this.openDropdown();break;case 27:e.preventDefault(),this.closeDropdown(),this.refs.dropdownContainer.focus()}}navigateItemByTabKey(e){if(!this.state.isOpen)return;e.preventDefault();const t=e.shiftKey?"previous":"next";this.focusSibling(t)}activateItem(){if(!this.state.isOpen)return this.openDropdown();document.activeElement.click()}focusSibling(e){let t,n;if(!this.state.isOpen)return;this.props.options.length?(t=(0,p.map)((0,p.filter)(this.props.options,(e=>e&&!e.isLabel)),"value"),n="number"==typeof this.focused?this.focused:t.indexOf(this.state.selected)):(t=(0,p.filter)(this.props.children,(function(e){return e.type===d.Z})),n="number"==typeof this.focused?this.focused:(0,p.findIndex)(t,(function(e){return e.props.selected})));const r=n+("previous"===e?-1:1);r>=t.length||r<0||(o().findDOMNode(this.refs["item-"+r].refs.itemLink).focus(),this.focused=r)}handleOutsideClick(e){o().findDOMNode(this.refs.dropdownContainer).contains(e.target)||this.closeDropdown()}}b.defaultProps={options:[],onSelect:v,onToggle:v,disabled:!1,style:{}},b.propTypes={selectedText:i().string,selectedCount:i().number,initialSelected:i().string,className:i().string,style:i().object,onSelect:i().func,onToggle:i().func,focusSibling:i().func,tabIndex:i().number,disabled:i().bool,options:i().arrayOf(i().shape({value:i().string.isRequired,label:i().string.isRequired,path:i().string}))},b.instances=0,t.Z=b},51262:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(44135);class d extends c().Component{render(){const e=u()(this.props.className,{"dops-select-dropdown__item":!0,"is-selected":this.props.selected,"is-disabled":this.props.disabled});return c().createElement("li",{className:"dops-select-dropdown__option"},c().createElement("a",{ref:"itemLink",href:this.props.path,className:e,onClick:this.props.disabled?null:this.props.onClick,"data-bold-text":this.props.value||this.props.children,role:"option",tabIndex:0,"aria-selected":this.props.selected},c().createElement("span",{className:"dops-select-dropdown__item-text"},this.props.children,"number"==typeof this.props.count&&c().createElement(p.Z,{count:this.props.count}))))}}i()(d,"propTypes",{children:o().string.isRequired,path:o().string,selected:o().bool,onClick:o().func,count:o().number}),i()(d,"defaultProps",{selected:!1}),t.Z=d},23837:function(e,t,n){"use strict";var r=n(99196),i=n.n(r);const{Component:s}=i(),o=e=>e.stopPropagation();t.Z=class extends s{render(){return i().createElement("li",{role:"menuitem",onClick:o,className:"dops-select-dropdown__label"},i().createElement("label",null,this.props.children))}}},84467:function(e,t,n){"use strict";var r=n(99196),i=n.n(r);class s extends i().Component{render(){return i().createElement("li",{className:"dops-select-dropdown__separator"})}}t.Z=s},84277:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(92819),p=n(65736),d=n(11973),h=n(9913),f=n(81200),m=n(41147),g=n(66552),v=n(75395),b=n(88872),y=n(35303),k=n(27415),w=n(85253),_=n(53263),E=n(93107);const __=p.__,_x=p._x,C=e=>{const t=e=>()=>(e=>{d.Z.tracks.recordJetpackClick({target:"upgrade-banner",feature:e,type:"upgrade"})})(e),n=(t,n)=>()=>{(e=>{d.Z.tracks.recordJetpackClick({target:"connect-banner",feature:e,type:"connect"})})(t),e.doConnectUser(n)},r=!!e.module&&e.getModule(e.module),s=e.vaultPressData,a=(0,u.get)(s,["data","features","backups"],!1),c=(0,u.get)(s,["data","features","security"],!1);if(!e.userCanManageModules&&!(0,u.includes)(["post-by-email","publicize"],e.module))return o().createElement("span",null);const l=e.saveDisabled,p=!!e.feature&&e.feature;let m=e.header?e.header:"";""===m&&r&&(m=r.name);const g=()=>{switch(p){case f.BD:return"inactive"===e.getModuleOverride("videopress");case f.N8:return"inactive"===e.getModuleOverride("wordads");case f.r2:return"inactive"===e.getModuleOverride("google-analytics");case f.T5:return"inactive"===e.getModuleOverride("search");default:return!1}},v=(()=>{if(e.fetchingSiteData)return!0;const t=(0,f.sc)(e.sitePlan.product_slug),n=(0,u.includes)(["is-premium-plan","is-business-plan","is-daily-security-plan","is-realtime-security-plan","is-complete-plan"],t);switch(p){case f.eM:if("is-free-plan"===t&&!c)return!1;break;case f.N8:if(!n&&-1===e.activeFeatures.indexOf(f.N8))return!1;break;case f.r2:if(!n)return!1;break;case f.V3:if(((0,u.includes)(["is-free-plan"],t)||(0,u.isEmpty)(t))&&!e.isAkismetKeyValid&&!e.isCheckingAkismetKey)return!1}return!0})()&&e.children,b=!e.fetchingSiteData&&!g()&&!e.inOfflineMode&&(()=>{const r=(0,f.sc)(e.sitePlan.product_slug),i=_x("Upgrade","A caption for a button to upgrade an existing paid feature to a higher tier.","jetpack"),s=_x("Connect","A caption for a button to connect a user account to access paid features.","jetpack"),c=(0,u.includes)(["is-premium-plan","is-business-plan","is-daily-security-plan","is-realtime-security-plan","is-complete-plan"],r);switch(p){case f.BD:return e.hasConnectedOwner||c?"":o().createElement(w.Z,{title:__("Connect your WordPress.com account to enable high-quality, ad-free video.","jetpack"),callToAction:s,plan:(0,f.o2)(f.BD),feature:p,onClick:n(p)});case f.N8:return c||-1!==e.activeFeatures.indexOf(f.N8)?"":e.hasConnectedOwner?o().createElement(w.Z,{title:__("Generate income with high-quality ads.","jetpack"),callToAction:i,plan:(0,f.o2)(f.N8),feature:p,onClick:t(p),href:e.adsUpgradeUrl}):o().createElement(w.Z,{title:__("Connect your WordPress.com account to upgrade and generate income with high-quality ads.","jetpack"),callToAction:s,plan:(0,f.o2)(f.N8),feature:p,onClick:n(p)});case f.eM:return a||["is-business-plan","is-realtime-security-plan","is-complete-plan"].includes(r)||e.multisite?"":["is-premium-plan","is-daily-security-plan"].includes(r)?e.hasConnectedOwner?o().createElement(w.Z,{title:__("Save every change and get back online quickly with one-click restores.","jetpack"),plan:(0,f.o2)(f.N_),callToAction:i,feature:p,onClick:t(p),href:e.securityProUpgradeUrl}):o().createElement(w.Z,{title:__("Connect your WordPress.com account to upgrade and save every change and get back online quickly with one-click restores.","jetpack"),plan:(0,f.o2)(f.N_),callToAction:s,feature:p,onClick:n(p)}):e.hasConnectedOwner?o().createElement(w.Z,{callToAction:i,title:__("Automated scanning and one-click fixes keep your site ahead of security threats.","jetpack"),plan:(0,f.o2)(f.eM),feature:p,onClick:t(p),href:e.securityPremiumUpgradeUrl}):o().createElement(w.Z,{callToAction:s,title:__("Connect your WordPress.com account to upgrade for automated scanning and one-click fixes keep your site ahead of security threats.","jetpack"),plan:(0,f.o2)(f.eM),feature:p,onClick:n(p)});case f.r2:return c?"":e.hasConnectedOwner?o().createElement(w.Z,{callToAction:i,title:__("Connect your site to Google Analytics.","jetpack"),plan:(0,f.o2)(f.r2),feature:p,onClick:t(p),href:e.gaUpgradeUrl}):o().createElement(w.Z,{callToAction:s,title:__("Connect your WordPress.com account to upgrade and connect your site to Google Analytics.","jetpack"),plan:(0,f.o2)(f.r2),feature:p,onClick:n(p)});case f.T5:return e.hasActiveSearchPurchase||"is-complete-plan"===r?"":e.hasConnectedOwner?o().createElement(w.Z,{callToAction:i,title:__("Help visitors quickly find answers with highly relevant instant search results and powerful filtering.","jetpack"),plan:(0,f.o2)(f.T5),feature:p,onClick:t(p),href:e.searchUpgradeUrl}):o().createElement(w.Z,{callToAction:s,title:__("Connect your WordPress.com account to upgrade and help visitors quickly find answers with highly relevant instant search results and powerful filtering.","jetpack"),plan:(0,f.o2)(f.T5),feature:p,onClick:n(p)});case f.V3:return e.isCheckingAkismetKey||e.isAkismetKeyValid||"is-personal-plan"===r||c?"":e.hasConnectedOwner?o().createElement(w.Z,{callToAction:i,title:__("Automatically clear spam from comments and forms.","jetpack"),plan:(0,f.o2)(f.V3),feature:p,href:e.spamUpgradeUrl}):o().createElement(w.Z,{callToAction:s,title:__("Connect your WordPress.com account to upgrade and automatically clear spam from comments and forms.","jetpack"),plan:(0,f.o2)(f.V3),feature:p,onclick:e.doConnectUser});default:return""}})();if(!v&&!b)return null;let E="";return e.feature?E=`jp-settings-${e.feature}`:e.module&&(E=`jp-settings-${e.module}`),(()=>{if(!g())return!1;if(p!==f.r2)return null;const t=e.getModule("google-analytics");return o().createElement(_.Z,{moduleName:t.name})})()||o().createElement("form",i()({},E?{id:E}:null,{className:"jp-form-settings-card",onSubmit:l?void 0:e.onSubmit}),o().createElement(y.Z,{label:m},!e.hideButton&&o().createElement(h.Z,{primary:!0,compact:!0,type:"submit",disabled:l||!e.isDirty()},l?_x("Saving…","Button caption","jetpack"):_x("Save settings","Button caption","jetpack",0)),e.action&&o().createElement(k.Z,{proFeature:e.action,siteAdminUrl:e.siteAdminUrl,isCompact:!1})),v,b)};C.propTypes={action:c().string,saveDisabled:c().bool},C.defaultProps={action:"",saveDisabled:!1},t.Z=(0,l.$j)((e=>({sitePlan:(0,b.UL)(e),fetchingSiteData:(0,b._5)(e),siteAdminUrl:(0,g.wW)(e),userCanManageModules:(0,g.pK)(e),isAkismetKeyValid:(0,v._2)(e),isCheckingAkismetKey:(0,v.gw)(e),vaultPressData:(0,v.XK)(e),getModuleOverride:t=>(0,E.Qy)(e,t),getModule:t=>(0,E.rT)(e,t),activeFeatures:(0,b.$l)(e),videoPremiumUpgradeUrl:(0,g.Qq)(e,"settings-video-premium"),adsUpgradeUrl:(0,g.Qq)(e,"settings-ads"),securityProUpgradeUrl:(0,g.Qq)(e,"settings-security-pro"),securityPremiumUpgradeUrl:(0,g.Qq)(e,"settings-security-premium"),gaUpgradeUrl:(0,g.Qq)(e,"settings-ga"),searchUpgradeUrl:(0,g.Qq)(e,"jetpack-search"),spamUpgradeUrl:(0,g.Qq)(e,"settings-spam"),multisite:(0,g.TA)(e),hasActiveSearchPurchase:(0,b.o$)(e),inOfflineMode:(0,m.Ex)(e),hasConnectedOwner:(0,m.it)(e)})),(e=>({doConnectUser:t=>e((0,m.bL)(t))})))(C)},27006:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(60742),p=n(89105),d=n.n(p),h=n(92819),f=n(25691),m=n(41147),g=n(66552),v=n(93107);const b=e=>{const t=e.module;if(t.module&&!e.userCanManageModules&&!(0,h.includes)(["post-by-email","publicize"],t.module))return c().createElement("span",null);const n=e.disableInOfflineMode&&e.isUnavailableInOfflineMode(t.module),r=e.disableInSiteConnectionMode&&e.isUnavailableInSiteConnectionMode(t.module);let s=n||r;return"post-by-email"!==t.module||e.isLinked||(s=!0),c().createElement("div",{className:d()("jp-form-settings-group",e.className)},c().createElement(u.Z,{className:d()({"jp-form-has-child":e.hasChild,"jp-form-settings-disable":n||r})},s&&c().createElement("div",{className:"jp-form-block-fade"}),e.support.link&&c().createElement(f.Z,i()({module:t},e.support)),e.children))};b.propTypes={support:o().object,module:o().object,disableInOfflineMode:o().bool.isRequired,disableInSiteConnectionMode:o().bool,isOfflineMode:o().bool.isRequired,isSitePublic:o().bool.isRequired,userCanManageModules:o().bool.isRequired,isLinked:o().bool.isRequired,isUnavailableInOfflineMode:o().func.isRequired,className:o().string},b.defaultProps={support:{text:"",link:""},module:{},disableInOfflineMode:!1,disableInSiteConnectionMode:!1,isOfflineMode:!1,isSitePublic:!0,userCanManageModules:!1,isLinked:!1,isUnavailableInOfflineMode:h.noop,className:""},t.Z=(0,l.$j)((e=>({isOfflineMode:(0,m.Ex)(e),isSitePublic:(0,g.$r)(e),userCanManageModules:(0,g.pK)(e),userCanEditPosts:(0,g.rp)(e),isLinked:(0,m.BU)(e),isModuleActivated:t=>(0,v.mp)(e,t),isUnavailableInOfflineMode:t=>(0,m.t_)(e,t),isUnavailableInSiteConnectionMode:t=>(0,m.IK)(e,t)})))(b)},66765:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(89105),p=n.n(u),d=n(65736),h=n(71415),f=n(11973),m=n(60742),g=n(9913),v=n(88872),b=n(41147),y=n(66552),k=n(85253),w=n(81200);const __=d.__;class _ extends c().Component{constructor(){super(...arguments),i()(this,"trackBannerClick",(()=>{f.Z.tracks.recordJetpackClick({target:"banner-click",feature:"support",page:this.props.path,is_user_wpcom_connected:this.props.isCurrentUserLinked?"yes":"no",is_connection_owner:this.props.isConnectionOwner?"yes":"no"})})),i()(this,"handleConnectClick",(()=>{this.trackBannerClick(),this.props.connectUser()})),i()(this,"trackSearchClick",(()=>{f.Z.tracks.recordJetpackClick({target:"support-card",button:"support-search",page:this.props.path})}))}shouldComponentUpdate(e){return e.sitePlan.product_slug!==this.props.sitePlan.product_slug}render(){if(void 0===this.props.sitePlan.product_slug&&this.props.isFetchingSiteData)return c().createElement("div",null);const e=p()(this.props.className,"jp-support-card"),t=void 0===this.props.sitePlan.product_slug||"jetpack_free"===this.props.sitePlan.product_slug;return c().createElement("div",{className:e},c().createElement(m.Z,{className:"jp-support-card__happiness"},c().createElement("div",{className:"jp-support-card__happiness-contact"},c().createElement("h3",{className:"jp-support-card__header"},__("We're here to help","jetpack")),c().createElement("p",{className:"jp-support-card__description"},t?__("Jetpack offers support via community forums for any site without a paid product.","jetpack"):__("Your paid plan gives you access to prioritized Jetpack support.","jetpack",0)),c().createElement("p",{className:"jp-support-card__description"},c().createElement(g.Z,{onClick:this.trackSearchClick,href:this.props.isAtomicSite?(0,h.Z)("calypso-help"):(0,h.Z)("jetpack-support")},__("Search our support site","jetpack"))))),this.props.siteConnectionStatus&&t&&this.props.hasConnectedOwner&&c().createElement(k.Z,{title:__("Get a faster resolution to your support questions.","jetpack"),plan:(0,w.o2)(w.ps),callToAction:__("Upgrade","jetpack"),onClick:this.trackBannerClick,href:this.props.supportUpgradeUrl}),this.props.siteConnectionStatus&&t&&!this.props.hasConnectedOwner&&c().createElement(k.Z,{title:__("Connect your WordPress.com account and upgrade to get a faster resolution to your support questions.","jetpack"),plan:(0,w.o2)(w.ps),callToAction:__("Connect","jetpack"),onClick:this.handleConnectClick}))}}i()(_,"displayName","SupportCard"),i()(_,"defaultProps",{className:"",siteConnectionStatus:!1}),_.propTypes={siteConnectionStatus:o().any.isRequired,className:o().string,isCurrentUserLinked:o().string,isConnectionOwner:o().bool},t.Z=(0,l.$j)((e=>({sitePlan:(0,v.UL)(e),siteConnectionStatus:(0,b.Gz)(e),isFetchingSiteData:(0,v._5)(e),isAtomicSite:(0,y.Ug)(e),isDevVersion:(0,y._W)(e),supportUpgradeUrl:(0,y.Qq)(e,"support"),isCurrentUserLinked:(0,b.BU)(e),isConnectionOwner:(0,b.QM)(e),hasConnectedOwner:(0,b.it)(e)})),(e=>({connectUser:()=>e((0,b.bL)())})))(_)},25691:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(11973),p=n(87279),d=n(68961);const __=l.__;class h extends a.Component{constructor(){super(...arguments),this.getModule=this.getModule.bind(this),this.trackInfoClick=this.trackInfoClick.bind(this),this.trackLearnMoreClick=this.trackLearnMoreClick.bind(this),this.trackPrivacyInfoClick=this.trackPrivacyInfoClick.bind(this)}getModule(){return this.props.module||{}}trackInfoClick(){u.Z.tracks.recordJetpackClick({target:"info-icon",feature:this.getModule().module})}trackLearnMoreClick(){u.Z.tracks.recordJetpackClick({target:"learn-more",feature:this.getModule().module})}trackPrivacyInfoClick(){u.Z.tracks.recordJetpackClick({target:"privacy-info",feature:this.getModule().module})}render(){const{text:e,link:t}=this.props;let{privacyLink:n}=this.props;return!n&&t&&(n=t+"#privacy"),c().createElement("div",{className:"jp-support-info"},c().createElement(p.Z,{position:"left",onClick:this.trackInfoClick,screenReaderText:__("Learn more","jetpack")},e+" ",c().createElement("span",{className:"jp-support-info__learn-more"},c().createElement(d.Z,{href:t,onClick:this.trackLearnMoreClick,target:"_blank",rel:"noopener noreferrer"},__("Learn more","jetpack"))),c().createElement("span",{className:"jp-support-info__privacy"},c().createElement(d.Z,{href:n,onClick:this.trackPrivacyInfoClick,target:"_blank",rel:"noopener noreferrer"},__("Privacy information","jetpack")))))}}i()(h,"propTypes",{module:o().object,text:o().string,link:o().string,privacyLink:o().string}),i()(h,"defaultProps",{module:void 0,text:"",link:"",privacyLink:""})},15029:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819);class d extends c().Component{constructor(){super(...arguments),o()(this,"focus",(()=>{this.refs.textField.focus()})),o()(this,"selectOnFocus",(e=>{e.target.select()}))}render(){const{className:e,selectOnFocus:t}=this.props,n=u()(e,{"dops-text-input":!0,"is-error":this.props.isError,"is-valid":this.props.isValid}),r=(0,p.omit)(this.props,"selectOnFocus","isError","isValid");return c().createElement("input",i()({},r,{ref:"textField",className:n,onClick:t?this.selectOnFocus:null}))}}o()(d,"displayName","TextInput"),o()(d,"defaultProps",{isError:!1,isValid:!1,selectOnFocus:!1,type:"text"})},50844:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(92819);class d extends c().Component{render(){return c().createElement("textarea",i()({},(0,p.omit)(this.props,"className"),{className:u()(this.props.className,"dops-textarea")}),this.props.children)}}o()(d,"displayName","Textarea")},39124:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(24555),o=n(11268),a=n.n(o),c=n(99196),l=n.n(c),u=n(89105),p=n.n(u),d=n(40515);const h=()=>{};class f extends c.Component{render(){if(!this.props.showOnMobile&&(0,s.tq)())return null;const e=p()("dops-popover","dops-tooltip",`is-${this.props.position}`,this.props.className);return l().createElement(d.Z,{autoPosition:this.props.autoPosition,className:e,rootClassName:this.props.rootClassName,context:this.props.context,id:this.props.id,isVisible:this.props.isVisible,onClose:h,position:this.props.position,showDelay:this.props.showDelay},this.props.children)}}i()(f,"propTypes",{autoPosition:a().bool,className:a().string,id:a().string,isVisible:a().bool,position:a().string,rootClassName:a().string,status:a().string,showDelay:a().number,showOnMobile:a().bool}),i()(f,"defaultProps",{showDelay:100,position:"top",showOnMobile:!1}),t.Z=f},86338:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),s=n(99196),o=n(2620),a=n(19555);class c extends s.Component{UNSAFE_componentWillReceiveProps(e){const t=this.props.analytics.tracks.recordEvent;e.searchTerm!==this.props.searchTerm&&e.searchTerm.length>=3&&t("jetpack_wpa_search_term",{term:e.searchTerm})}render(){return null}}c.propTypes={analytics:i().object,searchTerm:i().string},t.Z=(0,o.$j)((e=>({searchTerm:(0,a.He)(e)})))(c)},57028:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(11973),p=n(66552);class d extends s.PureComponent{constructor(){super(...arguments),i()(this,"trackClick",(()=>{const{target:e,feature:t}=this.props;if(e){const n=t?{feature:t}:{};u.Z.tracks.recordJetpackClick({type:"upgrade-link",target:e,...n})}}))}render(){return o().createElement("a",{href:this.props.upgradeUrl,target:"_blank",rel:"noopener noreferrer",onClick:this.trackClick},this.props.children)}}i()(d,"propTypes",{source:c().string.isRequired,target:c().string.isRequired,feature:c().string,upgradeUrl:c().string.isRequired}),t.Z=(0,l.$j)(((e,t)=>{let{source:n}=t;return{upgradeUrl:(0,p.Qq)(e,n)}}))(d)},24857:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(5e4),l=n(11973),u=n(39868);const __=a.__,p=(0,c.u)(class extends s.Component{constructor(){super(...arguments),i()(this,"trackLearnMoreClick",(()=>{l.Z.tracks.recordJetpackClick({target:"warm_welcome_view_editor",version:this.props.version})})),i()(this,"dismissNotice",(()=>{l.Z.tracks.recordJetpackClick({target:"warm_welcome_dismiss",version:this.props.version}),this.props.dismiss()}))}componentDidMount(){jQuery("body").addClass("jp-dialogue-modern-showing"),l.Z.tracks.recordEvent("jetpack_warm_welcome_view",{version:this.props.version})}componentWillUnmount(){jQuery("body").removeClass("jp-dialogue-modern-showing")}renderInnerContent(){const e=(new DOMParser).parseFromString(this.props.releasePostContent,"text/html"),t=e.getElementsByTagName("a");for(let e=0;e<t.length;e++)t[e].setAttribute("target","_blank"),t[e].setAttribute("rel","noopener noreferrer");const n=e.body.innerHTML;return o().createElement("div",{className:"jp-upgrade-notice__content"},o().createElement("div",{dangerouslySetInnerHTML:{__html:n}}))}render(){const{featuredImage:e}=this.props;let t=null,{title:n}=this.props;return e&&e.length>0&&(t=o().createElement("img",{src:e,alt:""})),n&&0!==n.length||(n=(0,a.sprintf)(
+/* translators: Placeholder is a version number. */
+__("New in Jetpack %s","jetpack"),this.props.version)),o().createElement(u.Z,{svg:t,title:n,content:this.renderInnerContent(),dismiss:this.dismissNotice})}});t.Z=p},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},98486:function(e,t,n){"use strict";n.d(t,{hp:function(){return i},Fr:function(){return s},Ez:function(){return o}});var r=n(71415);const i=window.Initial_State.pluginBaseUrl+"/images/",s=(0,r.Z)("jetpack-contact-support"),o=(0,r.Z)("jetpack-contact-support-beta-group")},86087:function(e,t,n){"use strict";n.d(t,{H:function(){return k}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(71415),p=n(94069),d=n(55735),h=n(77222),f=n(84277),m=n(27006),g=n(25691),v=n(15029),b=n(5e4);const __=l.__;class y extends c().Component{constructor(){super(...arguments),o()(this,"updateFormStateByMarkdown",(e=>this.props.getSettingCurrentValue("wpcom_publish_posts_with_markdown",e)?this.props.updateFormStateModuleOption(e,"wpcom_publish_comments_with_markdown"):this.props.updateFormStateModuleOption(e,"wpcom_publish_comments_with_markdown",!0))),o()(this,"handleMarkdownCommentsToggle",(()=>{this.props.updateFormStateModuleOption("markdown","wpcom_publish_comments_with_markdown")}))}render(){const e=this.props.isModuleFound("comments"),t=this.props.isModuleFound("gravatar-hovercards"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("comment-likes");if(!(e||t||n||r))return null;const{isUnavailableInOfflineMode:s,getOptionValue:o}=this.props,a=this.props.getModule("comments"),l=this.props.getOptionValue("comments"),b=this.props.isUnavailableInOfflineMode("comments"),y=this.props.getModule("gravatar-hovercards"),k=this.props.getModule("markdown"),w=s("comment-likes"),_=o("comment-likes");return c().createElement(f.Z,i()({},this.props,{header:__("Comments","jetpack"),module:"comments",saveDisabled:this.props.isSavingAnyOption(["highlander_comment_form_prompt","jetpack_comment_form_color_scheme"])}),e&&c().createElement(m.Z,{hasChild:!0,disableInOfflineMode:!0,module:a,support:{text:__("Replaces the standard WordPress comment form with a new comment system that includes social media login options.","jetpack"),link:(0,u.Z)("jetpack-support-comments")}},c().createElement(h.T,{slug:"comments",compact:!0,disabled:b,activated:this.props.getOptionValue("comments"),toggling:this.props.isSavingAnyOption("comments"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},a.description)),c().createElement(d.C_,null,c().createElement(d.lX,null,c().createElement("span",{className:"jp-form-label-wide"},__("Comment form introduction","jetpack")),c().createElement(v.Z,{name:"highlander_comment_form_prompt",value:this.props.getOptionValue("highlander_comment_form_prompt"),disabled:!l||b||this.props.isSavingAnyOption("highlander_comment_form_prompt"),onChange:this.props.onOptionChange})),c().createElement("span",{className:"jp-form-setting-explanation"},__("A few catchy words to motivate your visitors to comment.","jetpack")),c().createElement(d.lX,null,c().createElement("span",{className:"jp-form-label-wide"},__("Color scheme","jetpack")),c().createElement(d.ih,i()({name:"jetpack_comment_form_color_scheme",value:this.props.getOptionValue("jetpack_comment_form_color_scheme"),disabled:!l||b||this.props.isSavingAnyOption("jetpack_comment_form_color_scheme"),onChange:this.props.onOptionChange},this.props,{validValues:this.props.validValues("jetpack_comment_form_color_scheme","comments")}))))),(t||n||r)&&c().createElement(m.Z,null,t&&c().createElement("div",{className:"jp-toggle-set"},c().createElement(d.C_,null,c().createElement(h.T,{slug:"gravatar-hovercards",compact:!0,activated:this.props.getOptionValue("gravatar-hovercards"),toggling:this.props.isSavingAnyOption("gravatar-hovercards"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},y.description))),c().createElement(g.Z,{text:__("Show Gravatar hovercards alongside comments.","jetpack"),link:y.learn_more_button,privacyLink:y.learn_more_button+"#privacy"})),n&&c().createElement("div",{className:"jp-toggle-set"},c().createElement(d.C_,null,c().createElement(p.Z,{checked:!!this.props.getOptionValue("wpcom_publish_comments_with_markdown","markdown"),disabled:this.props.isSavingAnyOption(["markdown","wpcom_publish_comments_with_markdown"])||"inactive"===this.props.getModuleOverride("markdown"),toggling:this.props.isSavingAnyOption(["markdown","wpcom_publish_comments_with_markdown"]),onChange:this.handleMarkdownCommentsToggle},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable Markdown use for comments.","jetpack")))),c().createElement(g.Z,{text:__("Allow readers to use markdown in comments.","jetpack"),link:k.learn_more_button,privacyLink:k.learn_more_button+"#privacy"})),r&&c().createElement("div",{className:"jp-toggle-set"},c().createElement(d.C_,null,c().createElement(h.T,{slug:"comment-likes",compact:!0,disabled:w,activated:_,toggling:this.props.isSavingAnyOption("comment-likes"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable comment likes.","jetpack")))),c().createElement(g.Z,{text:__("Allow readers to like individual comments.","jetpack"),link:(0,u.Z)("jetpack-support-comment-likes"),privacyLink:(0,u.Z)("jetpack-support-comment-likes",{anchor:"privacy"})}))))}}const k=(0,b.u)(y)},9863:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(60742),d=n(93107),h=n(17752),f=n(41147),m=n(19555),g=n(27219),v=n(86087),b=n(20182);const __=u.__;class y extends c().Component{render(){const e={settings:this.props.settings,getModule:this.props.module,isOfflineMode:this.props.isOfflineMode,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode},t=this.props.isModuleFound("comments"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("gravatar-hovercards"),s=this.props.isModuleFound("subscriptions"),o=this.props.isModuleFound("comment-likes");return(this.props.searchTerm||this.props.active)&&(t||s||n||r||o)?c().createElement("div",null,c().createElement(g.Z,null),c().createElement(p.Z,{title:this.props.searchTerm?__("Discussion","jetpack"):__("Manage advanced comment settings and grow your audience with email subscriptions.","jetpack"),className:"jp-settings-description"}),c().createElement(v.H,i()({},e,{isModuleFound:this.props.isModuleFound,getModuleOverride:this.props.getModuleOverride})),s&&c().createElement(b.Z,i()({},e,{isLinked:this.props.isLinked,connectUrl:this.props.connectUrl,siteRawUrl:this.props.siteRawUrl}))):null}}o()(y,"displayName","DiscussionSettings"),t.Z=(0,l.$j)((e=>({module:t=>(0,d.rT)(e,t),settings:(0,h.Gw)(e),isOfflineMode:(0,f.Ex)(e),isUnavailableInOfflineMode:t=>(0,f.t_)(e,t),isModuleFound:t=>(0,m.CX)(e,t),connectUrl:(0,f.AM)(e),isLinked:(0,f.BU)(e),getModuleOverride:t=>(0,d.Qy)(e,t)})))(y)},20182:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(71415),p=n(11973),d=n(94069),h=n(60742),f=n(55735),m=n(77222),g=n(84277),v=n(27006),b=n(5e4),y=n(24951);const __=l.__;class k extends c().Component{constructor(e){super(e),o()(this,"getInitialState",(()=>({stb_enabled:this.props.getOptionValue("stb_enabled"),stc_enabled:this.props.getOptionValue("stc_enabled")}))),o()(this,"updateOptions",(e=>{this.setState({[e]:!this.state[e]},this.props.updateFormStateModuleOption("subscriptions",e))})),o()(this,"trackConfigureClick",(()=>{p.Z.tracks.recordJetpackClick("view-followers")})),o()(this,"handleSubscribeToBlogToggleChange",(()=>{this.updateOptions("stb_enabled")})),o()(this,"handleSubscribeToCommentToggleChange",(()=>{this.updateOptions("stc_enabled")})),this.state=this.getInitialState()}render(){const e=this.props.getModule("subscriptions"),t=this.props.getOptionValue("subscriptions"),n=this.props.isUnavailableInOfflineMode("subscriptions");return c().createElement(g.Z,i()({},this.props,{hideButton:!0,module:"subscriptions"}),c().createElement(v.Z,{hasChild:!0,disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:e,support:{text:__("Allows readers to subscribe to your posts or comments, and receive notifications of new content by email.","jetpack"),link:(0,u.Z)("jetpack-support-subscriptions")}},c().createElement(m.T,{slug:"subscriptions",disabled:n,activated:t,toggling:this.props.isSavingAnyOption("subscriptions"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},e.description)),c().createElement(f.C_,null,c().createElement(d.Z,{checked:this.state.stb_enabled,disabled:!t||n||this.props.isSavingAnyOption(["subscriptions","stb_enabled"]),onChange:this.handleSubscribeToBlogToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable the “subscribe to site” option on your comment form","jetpack"))),c().createElement(d.Z,{checked:this.state.stc_enabled,disabled:!t||n||this.props.isSavingAnyOption(["subscriptions","stc_enabled"]),onChange:this.handleSubscribeToCommentToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable the “subscribe to comments” option on your comment form","jetpack"))))),(()=>!n&&t&&this.props.isLinked?c().createElement(h.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:(0,u.Z)("calypso-people-email-followers",{site:this.props.siteRawUrl})},__("View your Email Followers","jetpack")):"")(),!this.props.isLinked&&!this.props.isOfflineMode&&c().createElement(y.Z,{feature:"subscriptions",featureLabel:__("Subscriptions","jetpack"),text:__("Connect to manage your subscriptions settings.","jetpack")}))}}t.Z=(0,b.u)(k)},30655:function(e,t){"use strict";const n=[9,32,37,38,39,40];let r=!1;t.Z=function(){document.addEventListener("keydown",(function(e){r||-1!==n.indexOf(e.keyCode)&&(r=!0,document.documentElement.classList.add("dops-accessible-focus"))})),document.addEventListener("mouseup",(function(){r&&(r=!1,document.documentElement.classList.remove("dops-accessible-focus"))}))}},11973:function(e,t,n){"use strict";var r=n(9481),i=n(80816);i.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),i.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=i.Z},34885:function(e,t,n){"use strict";n.d(t,{X:function(){return i}});var r=n(69771);const i=()=>{var e;const{l10n:{locale:t}}=(0,r.__experimentalGetSettings)();if(t)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"})(t);return null!==(e=window?.window?.navigator?.language)&&void 0!==e?e:"en-US"}},81200:function(e,t,n){"use strict";n.d(t,{p7:function(){return i},j2:function(){return s},Wg:function(){return o},JA:function(){return a},f3:function(){return c},lv:function(){return l},xf:function(){return u},G6:function(){return p},OE:function(){return d},sy:function(){return h},Qm:function(){return f},wm:function(){return m},_d:function(){return g},lj:function(){return v},Xz:function(){return b},NJ:function(){return y},ap:function(){return k},p2:function(){return w},yY:function(){return _},mg:function(){return E},tV:function(){return C},XL:function(){return S},LA:function(){return j},Us:function(){return M},dW:function(){return x},ux:function(){return N},Et:function(){return A},w2:function(){return O},b6:function(){return T},aS:function(){return P},th:function(){return I},JX:function(){return R},Ij:function(){return U},un:function(){return Z},WS:function(){return D},tl:function(){return L},sh:function(){return z},vS:function(){return B},v_:function(){return F},Bi:function(){return V},uz:function(){return q},np:function(){return H},ic:function(){return W},sT:function(){return $},ah:function(){return J},Vl:function(){return K},Dl:function(){return G},jI:function(){return Y},bm:function(){return X},V3:function(){return ae},N_:function(){return ce},eM:function(){return le},BD:function(){return ue},ps:function(){return pe},N8:function(){return de},r2:function(){return he},T5:function(){return fe},qb:function(){return me},MC:function(){return ve},Cv:function(){return be},oF:function(){return ye},ZH:function(){return ke},yy:function(){return we},Pu:function(){return _e},DM:function(){return Ee},G1:function(){return Ce},o2:function(){return Se},sc:function(){return je},lq:function(){return Me},dy:function(){return xe}});var r=n(92819);const i="business-bundle",s="business-bundle-2y",o="business-bundle-monthly",a="ecommerce-bundle",c="ecommerce-bundle-2y",l="ecommerce-bundle-monthly",u="value_bundle",p="value_bundle-2y",d="value_bundle-monthly",h="personal-bundle",f="personal-bundle-2y",m="personal-bundle-monthly",g="free_plan",v="jetpack_free",b="jetpack_premium",y="jetpack_business",k="jetpack_personal",w="jetpack_premium_monthly",_="jetpack_business_monthly",E="jetpack_personal_monthly",C="jetpack_backup_t1_yearly",S="jetpack_backup_t1_monthly",j="jetpack_backup_t2_yearly",M="jetpack_backup_t2_monthly",x="jetpack_search",N="jetpack_search_monthly",A="jetpack_security_t1_yearly",O="jetpack_security_t1_monthly",T="jetpack_security_t2_yearly",P="jetpack_security_t2_monthly",I="jetpack_complete",R="jetpack_complete_monthly",U="wpcom_search",Z="wpcom_search_monthly",D="jetpack_scan",L="jetpack_scan_monthly",z="jetpack_anti_spam",B="jetpack_anti_spam_monthly",F="jetpack_videopress",V="jetpack_videopress_monthly",q="vip",H="jetpack_backup_daily",W="jetpack_backup_daily_monthly",$="jetpack_backup_realtime",J="jetpack_backup_realtime_monthly",K="jetpack_security_daily",G="jetpack_security_daily_monthly",Y="jetpack_security_realtime",X="jetpack_security_realtime_monthly",Q=[b,y,k,w,_,E],ee=[A,O,T,P,K,G,Y,X],te=[A,O,T,P,i,s,o,a,c,l,q,"wpcom-enterprise",K,G,Y,X],ne=[C,S,j,M,H,W,$,J],re=[x,N,U,Z],ie=[D,L],se=[z,B],oe=[F,V],ae="spam-akismet-plus",ce="site-backups-jetpack",le="security-scanning-jetpack",ue="video-hosting-jetpack",pe="priority-support-jetpack",de="wordads-jetpack",he="google-analytics-jetpack",fe="search-jetpack",me="videopress-jetpack",ge={[pe]:A,[fe]:x,[le]:D,[ce]:C,[ae]:z,[ue]:A,[de]:A,[he]:A,[ae]:z,[me]:F};function ve(e){return(0,r.includes)(ne,e)}function be(e){return(0,r.includes)(re,e)}function ye(e){return ie.includes(e)}function ke(e){return oe.includes(e)}function we(e){return ve(e)||be(e)||ye(e)||function(e){return se.includes(e)}(e)||ke(e)}function _e(e){return ee.includes(e)}function Ee(e){return te.includes(e)}function Ce(e){return Q.includes(e)}function Se(e){return ge[e]}function je(e){switch(e){case v:case g:return"is-free-plan";case h:case f:case m:case k:case E:return"is-personal-plan";case u:case p:case d:case b:case w:return"is-premium-plan";case i:case s:case o:case y:case _:case a:case c:case l:return"is-business-plan";case A:case O:return"is-security-t1-plan";case T:case P:return"is-security-t2-plan";case I:case R:case q:return"is-complete-plan";case C:case S:return"is-backup-t1-plan";case j:case M:return"is-backup-t2-plan";case x:case N:case U:case Z:return"is-search-plan";case D:case L:return"is-scan-plan";case z:case B:return"is-anti-spam-plan";case F:case V:return"is-videopress-plan";case K:case G:return"is-daily-security-plan";case Y:case X:return"is-realtime-security-plan";case H:case W:return"is-daily-backup-plan";case $:case J:return"is-realtime-backup-plan";default:return""}}function Me(e){return["is-business-plan","is-backup-t1-plan","is-backup-t2-plan","is-security-t1-plan","is-security-t2-plan","is-complete-plan","is-realtime-security-plan","is-realtime-backup-plan"].includes(e)}const xe=e=>e.active&&(0,r.includes)([G,K,X,Y],e.product_slug)&&new Date(e.subscribed_date)<new Date("2021-10-07T00:00:00+00:00")},39444:function(e,t,n){"use strict";var r=n(59177);t.Z=(e,t)=>{const n=new r.Z;let i;n.open(e,null,"toolbar=0,location=0,status=0,menubar=0,"+n.getScreenCenterSpecs(780,700)),n.once("close",(()=>{let e=null;i&&i.keyring_id&&(e=Number(i.keyring_id)),t(e)})),n.on("message",(e=>i=e))}},82538:function(e,t,n){"use strict";function r(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch}n.d(t,{_:function(){return r}})},98772:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(12901),l=n(65736),u=n(71415),p=n(51438),d=n(39897),h=n(32199),f=n(55609),m=n(9818),g=n(96082),v=n(41776),b=n(83371),y=n(7507),k=n(77219),w=n(93107),_=n(41147),E=n(66552),C=n(88872),S=n(17752),j=n(19555),M=n(29955),x=n(63663),N=n(98362),A=n(86428),O=n(24451),T=n(4696),P=n(66765),I=n(73875),R=n(64296),U=n(66496),Z=n(43240),D=n(86338),L=n(11973),z=n(19570),B=n(9477),F=n(30701),V=n(29733),q=n(69307),H=n(98486),W=n(77909),$=n(74465);const __=l.__,J=["/recommendations","/recommendations/site-type","/recommendations/product-suggestions","/recommendations/product-purchased","/recommendations/woocommerce","/recommendations/monitor","/recommendations/related-posts","/recommendations/creative-mail","/recommendations/site-accelerator","/recommendations/summary"],K=["/","/dashboard","/reconnect","/my-plan","/plans"],G=["/settings","/security","/performance","/writing","/sharing","/discussion","/traffic","/privacy"];class Y extends o().Component{constructor(e){super(e),i()(this,"handleRouterWillLeave",(()=>{const e=__("There are unsaved settings in this tab that will be lost if you leave it. Proceed?","jetpack");return!!confirm(e)&&(window.setTimeout(this.props.clearUnsavedSettingsFlag,10),!0)})),i()(this,"initializeAnalytics",(()=>{const e=this.props.tracksUserData;e&&L.Z.initialize(e.userid,e.username,{blog_id:e.blogid})})),i()(this,"renderMainContent",(e=>{if(this.shouldShowWooConnectionScreen()){const e=this.props.location.state?.previousPath,t=e&&"/woo-setup"!==e?`#${e}`:"#/dashboard";return o().createElement($.Z,{apiNonce:this.props.apiNonce,registrationNonce:this.props.registrationNonce,apiRoot:this.props.apiRoot,title:__("Welcome to Jetpack! Security, Growth, & Performance tools for WordPress businesses","jetpack"),logo:o().createElement("img",{src:H.hp+"/jetpack-woocommerce-logo.svg",alt:__("Jetpack and WooCommerce","jetpack")}),buttonLabel:__("Set up Jetpack","jetpack"),redirectUri:"admin.php?page=jetpack",redirectTo:t,from:this.props.location.pathname,isSiteConnected:this.props.isSiteConnected,setHasSeenWCConnectionModal:this.props.setHasSeenWCConnectionModal},o().createElement("p",null,__("Jetpack is the perfect companion plugin for WooCommerce - made by WordPress experts to make your store faster, safer, and to help grow your business.","jetpack")))}if(this.props.partnerCoupon){const e=new URLSearchParams(window.location.search).get("showCouponRedemption");if(!this.props.isSiteConnected||e)return o().createElement(p.e,{apiNonce:this.props.apiNonce,registrationNonce:this.props.registrationNonce,apiRoot:this.props.apiRoot,images:["/images/connect-right-partner-backup.png"],assetBaseUrl:this.props.pluginBaseUrl,connectionStatus:this.props.connectionStatus,partnerCoupon:this.props.partnerCoupon,siteRawUrl:this.props.siteRawUrl,tracksUserData:!!this.props.tracksUserData,analytics:L.Z})}if(this.isUserConnectScreen()&&(this.props.userCanManageModules||this.props.hasConnectedOwner))return o().createElement(d.Z,{apiNonce:this.props.apiNonce,registrationNonce:this.props.registrationNonce,apiRoot:this.props.apiRoot,images:["/images/connect-right-secondary.png"],assetBaseUrl:this.props.pluginBaseUrl,title:this.props.connectingUserFeatureLabel?(0,l.sprintf)(
+/* translators: placeholder is a feature label (e.g. SEO, Notifications) */
+__("Unlock %s and more amazing features","jetpack"),this.props.connectingUserFeatureLabel):__("Unlock all the amazing features of Jetpack by connecting now","jetpack"),buttonLabel:__("Connect your user account","jetpack"),redirectUri:"admin.php?page=jetpack"},o().createElement("ul",null,o().createElement("li",null,__("Receive instant downtime alerts","jetpack")),o().createElement("li",null,__("Automatically share your content on social media","jetpack")),o().createElement("li",null,__("Let your subscribers know when you post","jetpack")),o().createElement("li",null,__("Receive notifications about new likes and comments","jetpack")),o().createElement("li",null,__("Let visitors share your content on social media","jetpack")),o().createElement("li",null,(0,q.createInterpolateElement)(__("And more! <a>See all Jetpack features</a>","jetpack"),{a:o().createElement("a",{href:(0,u.Z)("jetpack-features"),target:"_blank",rel:"noreferrer"})}),o().createElement("a",{className:"jp-connection-screen-icon",href:(0,u.Z)("jetpack-features"),target:"_blank",rel:"noreferrer"},o().createElement(f.Dashicon,{icon:"external"})))));if(!this.props.userCanManageModules)return!!this.props.siteConnectionStatus&&o().createElement("div",{"aria-live":"assertive"},o().createElement(R.Z,this.props));if(this.isMainConnectScreen())return o().createElement(d.Z,{apiNonce:this.props.apiNonce,registrationNonce:this.props.registrationNonce,apiRoot:this.props.apiRoot,images:["/images/connect-right.jpg"],assetBaseUrl:this.props.pluginBaseUrl,autoTrigger:this.shouldAutoTriggerConnection(),redirectUri:"admin.php?page=jetpack"},o().createElement("p",null,__("Secure and speed up your site for free with Jetpack's powerful WordPress tools.","jetpack")),o().createElement("ul",null,o().createElement("li",null,__("Measure your impact with beautiful stats","jetpack")),o().createElement("li",null,__("Speed up your site with optimized images","jetpack")),o().createElement("li",null,__("Protect your site against bot attacks","jetpack")),o().createElement("li",null,__("Get notifications if your site goes offline","jetpack")),o().createElement("li",null,__("Enhance your site with dozens of other features","jetpack"))));const t=o().createElement(b.Z,{routeName:this.props.routeName,siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl});let n,r=o().createElement(v.Z,{routeName:this.props.routeName});switch(e){case"/dashboard":case"/reconnect":case"/disconnect":case"/connect-user":case"/woo-setup":case"/setup":n=o().createElement(A.Z,{siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,rewindStatus:this.props.rewindStatus});break;case"/my-plan":n=o().createElement(O.Z,{siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,rewindStatus:this.props.rewindStatus});break;case"/plans":case"/plans-prompt":window.location.href=(0,u.Z)("jetpack-plans",{site:this.props.siteRawUrl});break;case"/settings":case"/security":case"/performance":case"/writing":case"/sharing":case"/discussion":case"/traffic":case"/privacy":r=t,n=o().createElement(y.Z,{siteAdminUrl:this.props.siteAdminUrl,siteRawUrl:this.props.siteRawUrl,searchTerm:this.props.searchTerm,rewindStatus:this.props.rewindStatus,userCanManageModules:this.props.userCanManageModules});break;case"/license/activation":this.props.isLinked&&this.props.isConnectionOwner?(r=null,n=o().createElement(W.I,{assetBaseUrl:this.props.pluginBaseUrl,lockImage:"/images/jetpack-license-activation-with-lock.png",siteRawUrl:this.props.siteRawUrl,successImage:"/images/jetpack-license-activation-with-success.png",onActivationSuccess:this.onLicenseActivationSuccess,siteAdminUrl:this.props.siteAdminUrl,currentRecommendationsStep:this.props.currentRecommendationsStep})):(this.props.history.replace("/dashboard"),n=this.getAtAGlance());break;case"/recommendations":case"/recommendations/site-type":case"/recommendations/product-suggestions":case"/recommendations/product-purchased":case"/recommendations/woocommerce":case"/recommendations/monitor":case"/recommendations/related-posts":case"/recommendations/creative-mail":case"/recommendations/site-accelerator":case"/recommendations/summary":this.props.showRecommendations?n=o().createElement(M.V,null):(this.props.history.replace("/dashboard"),n=this.getAtAGlance());break;default:if(N.w7.includes(e)){n=o().createElement(x.Z,null);break}this.props.history.replace("/dashboard"),n=this.getAtAGlance()}return this.props.isWoaSite?window.wpNavMenuClassChange({dashboard:1,settings:1}):window.wpNavMenuClassChange(),o().createElement("div",{"aria-live":"assertive",className:""+(this.shouldBlurMainContent()?"blur":"")},r,n)})),this.closeReconnectModal=this.closeReconnectModal.bind(this),this.onLicenseActivationSuccess=this.onLicenseActivationSuccess.bind(this)}UNSAFE_componentWillMount(){this.props.setInitialState(),z.ZP.setApiRoot(this.props.apiRoot),z.ZP.setApiNonce(this.props.apiNonce),this.initializeAnalytics(),window.addEventListener("beforeunload",this.props.clearUnsavedSettingsFlag),this.props.isSiteConnected&&L.Z.tracks.recordEvent("jetpack_wpa_page_view",{path:this.props.location.pathname,current_version:this.props.currentVersion})}componentDidMount(){const e=jQuery(".jp-jetpack-connect__container"),t=jQuery(".jp-connect-full__container");e&&t.length>0&&t.prependTo(e),this.props.isWooCommerceActive&&!this.props.hasSeenWCConnectionModal&&this.props.userCanManageModules&&this.props.history.replace({pathname:"/woo-setup",state:{previousPath:this.props.location.pathname}})}shouldComponentUpdate(e){return!["/wpbody-content","/wp-toolbar"].includes(e.location.pathname)&&(JSON.stringify(e.connectionStatus)!==JSON.stringify(this.props.connectionStatus)||e.siteConnectionStatus!==this.props.siteConnectionStatus||e.isLinked!==this.props.isLinked||e.isConnectingUser!==this.props.isConnectingUser||e.location.pathname!==this.props.location.pathname||e.searchTerm!==this.props.searchTerm||e.rewindStatus!==this.props.rewindStatus||e.areThereUnsavedSettings!==this.props.areThereUnsavedSettings||e.isReconnectingSite!==this.props.isReconnectingSite)}componentDidUpdate(e){if(e.location.pathname!==this.props.location.pathname&&this.props.isSiteConnected&&L.Z.tracks.recordEvent("jetpack_wpa_page_view",{path:this.props.location.pathname,current_version:this.props.currentVersion}),e.siteConnectionStatus!==this.props.siteConnectionStatus){const e=jQuery("#toplevel_page_jetpack").find("ul.wp-submenu li");e.find('a[href$="#/settings"]').hide(),e.find('a[href$="admin.php?page=stats"]').hide(),e.find('a[href$="admin.php?page=jetpack-search"]').hide()}this.props.setConnectionStatus(this.props.connectionStatus)}getAtAGlance(){return o().createElement(A.Z,{siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,rewindStatus:this.props.rewindStatus})}shouldShowAppsCard(){return this.props.isSiteConnected&&!this.shouldShowWooConnectionScreen()&&K.includes(this.props.location.pathname)}shouldShowSupportCard(){return this.props.isSiteConnected&&!this.shouldShowWooConnectionScreen()&&K.includes(this.props.location.pathname)}shouldShowRewindStatus(){return this.props.isSiteConnected&&K.includes(this.props.location.pathname)}shouldShowMasthead(){return[...K,...J,...G].includes(this.props.location.pathname)}shouldShowFooter(){return[...K,...G,...J,...N.w7].includes(this.props.location.pathname)}shouldBlurMainContent(){return this.props.isReconnectingSite}shouldShowReconnectModal(){return"/reconnect"===this.props.location.pathname}closeReconnectModal(){this.props.history.replace("/dashboard")}isMainConnectScreen(){return!1===this.props.siteConnectionStatus&&this.props.userCanConnectSite}isUserConnectScreen(){return"/connect-user"===this.props.location.pathname}shouldShowWooConnectionScreen(){return"/woo-setup"===this.props.location.pathname}shouldConnectUser(){return this.props.isConnectingUser}connectUser(){this.props.resetConnectUser(),this.props.history.replace("/connect-user")}isLicensingScreen(){return this.props.location.pathname.startsWith("/license")}shouldAutoTriggerConnection(){return this.props.location.pathname.startsWith("/setup")}onLicenseActivationSuccess(){this.props.updateUserLicensesCounts().then((()=>{this.props.updateLicensingActivationNoticeDismiss()})),this.props.fetchSiteData(),this.props.fetchSitePurchases(),this.props.fetchModules(),this.props.fetchSettings()}render(){const e=["jp-lower"];return this.isMainConnectScreen()&&e.push("jp-main-connect-screen"),this.isUserConnectScreen()&&e.push("jp-user-connect-screen"),this.isLicensingScreen()&&e.push("jp-licensing-screen"),o().createElement("div",null,this.shouldShowReconnectModal()&&o().createElement(V.Z,{show:!0,onHide:this.closeReconnectModal}),this.shouldShowMasthead()&&o().createElement(g.Z,{location:this.props.location}),o().createElement("div",{className:e.join(" ")},this.shouldShowRewindStatus()&&o().createElement(B.Z,null),o().createElement(Z.Z,null),o().createElement(U.ZP,null),this.shouldConnectUser()&&this.connectUser(),o().createElement(c.NL,{when:this.props.areThereUnsavedSettings,message:this.handleRouterWillLeave}),this.renderMainContent(this.props.location.pathname),this.shouldShowSupportCard()&&o().createElement(P.Z,{path:this.props.location.pathname}),this.shouldShowAppsCard()&&o().createElement(I.Z,null)),this.shouldShowFooter()&&o().createElement(T.Z,{siteAdminUrl:this.props.siteAdminUrl}),o().createElement(D.Z,{analytics:L.Z}))}}t.Z=(0,a.$j)((e=>({connectionStatus:(0,_.Zp)(e),siteConnectionStatus:(0,_.Gz)(e),isLinked:(0,_.BU)(e),isConnectingUser:(0,_.zq)(e),hasConnectedOwner:(0,_.it)(e),isConnectionOwner:(0,_.QM)(e),siteRawUrl:(0,E.JR)(e),siteAdminUrl:(0,E.wW)(e),searchTerm:(0,j.He)(e),apiRoot:(0,E.yB)(e),apiNonce:(0,E.VY)(e),registrationNonce:(0,E.H$)(e),tracksUserData:(0,E.hv)(e),areThereUnsavedSettings:(0,S.GD)(e),userCanManageModules:(0,E.pK)(e),userCanConnectSite:(0,E.Mc)(e),isSiteConnected:(0,_.q7)(e),isReconnectingSite:(0,_.O_)(e),rewindStatus:(0,F.of)(e),currentVersion:(0,E.w1)(e),showRecommendations:(0,E.mb)(e),pluginBaseUrl:(0,E.wB)(e),connectUrl:(0,_.AM)(e),connectingUserFeatureLabel:(0,_.xP)(e),isWoaSite:(0,E.Pw)(e),isWooCommerceActive:(0,E.nP)(e),hasSeenWCConnectionModal:(0,_.rH)(e),partnerCoupon:(0,E.DV)(e),currentRecommendationsStep:(0,E.rd)(e)})),(e=>({setInitialState:()=>e((0,E.KY)()),clearUnsavedSettingsFlag:()=>e((0,S._1)()),reconnectSite:()=>e((0,_.xK)()),setHasSeenWCConnectionModal:()=>e((0,_.qJ)()),resetConnectUser:()=>e((0,_.HD)()),updateLicensingActivationNoticeDismiss:()=>e((0,k.bT)()),updateUserLicensesCounts:()=>e((0,k.Ng)()),fetchSiteData:()=>e((0,C.tO)()),fetchSitePurchases:()=>e((0,C.Z_)()),fetchModules:()=>e((0,w.Z$)()),fetchSettings:()=>e((0,S.wv)())})))((0,m.withDispatch)((e=>({setConnectionStatus:t=>{e(h.t).setConnectionStatus(t)}})))((0,c.EN)(Y))),window.wpNavMenuClassChange=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{dashboard:1,settings:2},t=window.location.hash;jQuery(".current").each((function(e,t){jQuery(t).removeClass("current")}));const n=e=>jQuery("#toplevel_page_jetpack").find("li").filter((function(t){return t===e}))[0];t=t.split("?")[0].replace(/#/,""),K.includes(t)||J.includes(t)||N.w7.includes(t)?n(e.dashboard).classList.add("current"):G.includes(t)&&n(e.settings).classList.add("current");const r=jQuery("body");r.on("click",'a[href$="#/dashboard"], a[href$="#/settings"], .jp-dash-section-header__settings[href="#/security"], .dops-button[href="#/my-plan"], .dops-button[href="#/plans"], .jp-dash-section-header__external-link[href="#/security"]',(function(){window.scrollTo(0,0)})),r.on("click",".jetpack-js-stop-propagation",(function(e){e.stopPropagation()}))}},40767:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),i=n(2571);function s(e){(0,r.assign)(e,i.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},94614:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});const r="http:",i="__domain__.invalid",s=`http://${i}`;function o(e,t){const n=new URL(e,s);t?n.searchParams.set("s",t):n.searchParams.delete("s"),n.protocol=r,n.host=i,n.port="",n.username="",n.password="";let o=n.href.replace(s,"");return o=e.startsWith("/")?o:o.substring(1),o.replace(/%20/g,"+")}},71064:function(e,t,n){"use strict";var r=n(90922),i=n.n(r),s=n(94614);const o=i()("calypso:url-search");t.Z={getInitialState:function(){return{searchOpen:!1}},UNSAFE_componentWillReceiveProps:function(e){e.search||this.setState({searchOpen:!1})},doSearch:function(e){let t;this.setState({searchOpen:!1!==e}),this.onSearch?this.onSearch(e):(t=this.buildUrl&&"function"==typeof this.buildUrl?this.buildUrl(window.location.href,e):(0,s.Z)(window.location.href,e),o("search posts for:",e),o("setting URL: "+t),window.location.href=t)},getSearchOpen:function(){return!1!==this.state.searchOpen||this.props.search}}},24451:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(88872),a=n(27219),c=n(41147),l=n(94091),u=n(18676);t.Z=(0,s.$j)((e=>({activeFeatures:(0,o.$l)(e),activeProducts:(0,o.p)(e),availableFeatures:(0,o.ms)(e),getSiteConnectionStatus:()=>(0,c.Gz)(e),hasActiveSearchPurchase:(0,o.o$)(e),purchases:(0,o.qn)(e),sitePlan:(0,o.UL)(e)})))((function(e){let t=e.sitePlan.product_slug||"",n=e.availableFeatures,r=e.activeFeatures;return"offline"===e.getSiteConnectionStatus(e)&&(t="offline",n={},r={}),i().createElement(i().Fragment,null,i().createElement(a.Z,null),i().createElement(l.Z,{activeProducts:e.activeProducts,plan:t,purchases:e.purchases,siteAdminUrl:e.siteAdminUrl}),i().createElement(u.Z,{activeFeatures:r,availableFeatures:n,hasActiveSearchPurchase:e.hasActiveSearchPurchase,plan:t,rewindStatus:e.rewindStatus,siteAdminUrl:e.siteAdminUrl,siteRawUrl:e.siteRawUrl}))}))},18676:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(11973),h=n(9913),f=n(81200),m=n(92819),g=n(98486),v=n(61744),b=n(93107),y=n(39772),k=n(36965),w=n(15142),_=n(66552);const __=u.__;class E extends o().Component{constructor(){super(...arguments),i()(this,"trackPlansClick",(e=>{d.Z.tracks.recordJetpackClick({page:"my-plan",target:e,plan:this.props.plan})})),i()(this,"handleButtonClickForTracking",(e=>()=>this.trackPlansClick(e))),i()(this,"activateAds",(()=>{this.props.activateModule("wordads"),this.trackPlansClick("activate_wordads")})),i()(this,"activatePublicize",(()=>{this.props.activateModule("publicize"),this.trackPlansClick("activate_publicize")})),i()(this,"activateVideoPress",(()=>{this.props.activateFeature("videopress"),this.trackPlansClick("activate_videopress")})),i()(this,"activateGoogleAnalytics",(()=>{this.props.activateModule("google-analytics"),this.trackPlansClick("activate_ga")}))}render(){let e="";const t="offline"!==this.props.plan?(0,f.sc)(this.props.plan):"offline",n=(0,m.includes)(["is-premium-plan","is-business-plan","is-security-t1-plan","is-security-t2-plan","is-complete-plan","is-daily-security-plan","is-realtime-security-plan"],t),r="active"===(0,m.get)(this.props.rewindStatus,["state"],!1),i=!this.props.showBackups||!r&&"unavailable"!==(0,m.get)(this.props.rewindStatus,["state"],!1),s=e=>{const{title:t,description:n}=e;return o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-backup.svg",className:"jp-landing__plan-features-icon",alt:__("A Jetpack Site securely backed up with Jetpack Backup","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},t),o().createElement("p",null,n),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_backup_dash"),href:(0,p.Z)("calypso-activity-log",{site:this.props.siteRawUrl})},__("View your backups","jetpack"))))},a=()=>{if(i)return;if(r)return o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:__("A secure site, locked and protected by Jetpack","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Site backups","jetpack")),o().createElement("p",null,__("Real-time backup of all your site data with unlimited space, one-click restores, and automated security scanning.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_security_dash_rewind"),href:(0,p.Z)("calypso-activity-log",{site:this.props.siteRawUrl})},__("View your security activity","jetpack"))));let e="";switch(t){case"is-personal-plan":e=__("Daily backup of all your site data with unlimited space and one-click restores","jetpack");break;case"is-premium-plan":e=__("Daily backup of all your site data with unlimited space, one-click restores, automated security scanning, and priority support","jetpack");break;case"is-business-plan":e=__("Real-time backup of all your site data with unlimited space, one-click restores, automated security scanning, and priority support","jetpack");break;default:e=""}return o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:__("A secure site, locked and protected by Jetpack","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Site security","jetpack")),o().createElement("p",null,e+__(" (powered by VaultPress).","jetpack")),this.props.isPluginInstalled("vaultpress/vaultpress.php")&&this.props.isPluginActive("vaultpress/vaultpress.php")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_security_dash"),href:(0,p.Z)("vaultpress-dashboard")},__("View your security dashboard","jetpack")):o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("configure_vault"),href:(0,p.Z)("calypso-plugins-setup",{site:this.props.siteRawUrl,query:"only=vaultpress"})},__("View settings","jetpack"))))};let c;"is-daily-backup-plan"===t&&(c=s({title:__("Automated Daily Backups","jetpack"),description:__("We back up your website every day, so you never have to worry about your data again.","jetpack")})),["is-backup-t1-plan","is-backup-t2-plan","is-realtime-backup-plan"].includes(t)&&(c=s({title:__("Automated real-time backups","jetpack"),description:__("We back up your website with every change you make, making it easy to fix your mistakes.","jetpack")}));const l=()=>o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-search-icon.svg",className:"jp-landing__plan-features-icon",alt:__("A Jetpack Site with the power of Jetpack Search","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Instant search and filtering","jetpack")),o().createElement("p",null,__("Relevant search results and filtering tightly integrated with your theme.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_search_customizer"),href:this.props.siteAdminUrl+"admin.php?page=jetpack-search-configure"},__("Customize Search","jetpack"))));switch(t){case"is-personal-plan":case"is-premium-plan":case"is-security-t1-plan":case"is-security-t2-plan":case"is-business-plan":case"is-complete-plan":case"is-daily-security-plan":case"is-realtime-security-plan":e=o().createElement("div",{className:"jp-landing__plan-features"},"is-personal-plan"===t&&a(),"is-premium-plan"===t&&a(),"is-business-plan"===t&&a(),this.props.hasActiveSearchPurchase&&l(),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-speed-icon.svg",className:"jp-landing__plan-features-icon",alt:__("A fast and performant website","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Optimized performance","jetpack")),o().createElement("p",null,__("Load pages faster by serving your images from our global network of servers.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("paid_performance"),href:this.props.siteAdminUrl+"admin.php?page=jetpack#/performance"},__("Make your site faster","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-spam.svg",className:"jp-landing__plan-features-icon",alt:__("A folder holding real comments","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Anti-spam","jetpack")),o().createElement("p",null,__("Spam is automatically blocked from your comments.","jetpack")),this.props.isPluginInstalled("akismet/akismet.php")&&this.props.isPluginActive("akismet/akismet.php")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_spam_stats"),href:this.props.siteAdminUrl+"admin.php?page=akismet-key-config"},__("View your spam stats","jetpack")):o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("configure_akismet"),href:(0,p.Z)("calypso-plugins-setup",{site:this.props.siteRawUrl,query:"only=akismet"})},__("View settings","jetpack")))),n&&"inactive"!==this.props.getModuleOverride("videopress")&&o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-video-hosting.svg",className:"jp-landing__plan-features-icon",alt:__("A cloud with multiple types of content floating around it","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("VideoPress","jetpack")),o().createElement("p",null,__("High-speed, high-definition video hosting with no third-party ads.","jetpack")),this.props.getFeatureState("videopress")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("upload_videos"),href:this.props.siteAdminUrl+"upload.php"},__("Upload videos","jetpack")):o().createElement(h.Z,{onClick:this.activateVideoPress,disabled:this.props.isActivatingFeature("videopress")},__("Activate VideoPress","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-site-activity.svg",className:"jp-landing__plan-features-icon",alt:__("Interface showing a chronological list of changes and updates in a site","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Site activity","jetpack")),o().createElement("p",null,__("View a chronological list of all the changes and updates to your site in an organized, readable way.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_site_activity"),href:(0,p.Z)("calypso-activity-log",{site:this.props.siteRawUrl})},__("View your site activity","jetpack")))),n&&"inactive"!==this.props.getModuleOverride("wordads")&&o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-wordads.svg",className:"jp-landing__plan-features-icon",alt:__("A chart showing an healthy increase in earnings","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Monetize your site with ads","jetpack")),o().createElement("p",null,__("WordAds lets you earn money by displaying promotional content. Start earning today.","jetpack")),this.props.isModuleActivated("wordads")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_earnings"),href:(0,p.Z)("wpcom-ads-earnings",{site:this.props.siteRawUrl})},__("View your earnings","jetpack")):o().createElement(h.Z,{onClick:this.activateAds,disabled:this.props.isActivatingModule("wordads")},__("Start earning","jetpack")))),n&&"inactive"!==this.props.getModuleOverride("google-analytics")&&o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-google-analytics.svg",className:"jp-landing__plan-features-icon",alt:__("Site stats showing an evolution in traffic and engagement","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Google Analytics","jetpack")),o().createElement("p",null,__("Complement WordPress.com’s stats with Google’s in-depth look at your visitors and traffic patterns.","jetpack")),this.props.isModuleActivated("google-analytics")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("configure_ga"),href:(0,p.Z)("calypso-marketing-traffic",{site:this.props.siteRawUrl})},__("Configure Google Analytics","jetpack")):o().createElement(h.Z,{onClick:this.activateGoogleAnalytics,disabled:this.props.isActivatingModule("google-analytics")},__("Activate Google Analytics","jetpack")))),n&&"inactive"!==this.props.getModuleOverride("publicize")&&o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-marketing.svg",className:"jp-landing__plan-features-icon",alt:__("A secure site, locked and protected by Jetpack","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Marketing automation","jetpack")),o().createElement("p",null,__("Schedule unlimited tweets, Facebook posts, and other social posts in advance.","jetpack")),this.props.isModuleActivated("publicize")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("schedule_posts"),href:(0,p.Z)("calypso-edit-posts",{site:this.props.siteRawUrl})},__("Schedule posts","jetpack")):o().createElement(h.Z,{onClick:this.activatePublicize,disabled:this.props.isActivatingModule("publicize")},__("Activate Publicize","jetpack")))));break;case"is-free-plan":case"is-backup-t1-plan":case"is-backup-t2-plan":case"is-search-plan":case"offline":case"is-daily-backup-plan":case"is-realtime-backup-plan":e=o().createElement("div",{className:"jp-landing__plan-features"},c,this.props.hasActiveSearchPurchase&&l(),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-security.svg",className:"jp-landing__plan-features-icon",alt:__("A secure site, locked and protected by Jetpack","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Always-on security","jetpack")),o().createElement("p",null,__("Prevent login attacks, and get instant notifications when there’s an issue with your site.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("free_security"),href:(0,p.Z)("calypso-settings-security",{site:this.props.siteRawUrl})},__("Set up your site security","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-speed-icon.svg",className:"jp-landing__plan-features-icon",alt:__("A fast and performant website","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Optimized performance","jetpack")),o().createElement("p",null,__("Load pages faster by serving your images from our global network of servers.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("free_performance"),href:this.props.siteAdminUrl+"admin.php?page=jetpack#/performance"},__("Make your site faster","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-themes.svg",className:"jp-landing__plan-features-icon",alt:__("A wide variety of themes and tools to customize a site","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Design the perfect website","jetpack")),o().createElement("p",null,__("Get access to professionally crafted themes offered on WordPress.com, and customize your site exactly how you like it.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("free_themes"),href:(0,p.Z)("calypso-themes",{site:this.props.siteRawUrl})},__("Explore themes","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-performance-icon.svg",className:"jp-landing__plan-features-icon",alt:__("Site stats showing an evolution in traffic and engagement","jetpack")})),"inactive"!==this.props.getModuleOverride("publicize")&&o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Increase traffic to your site","jetpack")),o().createElement("p",null,__("Reach a wider audience by automatically sharing your posts on social media.","jetpack")),this.props.isModuleActivated("publicize")?o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("free_sharing"),href:(0,p.Z)("calypso-marketing-connections",{site:this.props.siteRawUrl})},__("Start sharing","jetpack")):o().createElement(h.Z,{onClick:this.activatePublicize,disabled:this.props.isActivatingModule("publicize")},__("Activate Publicize","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-site-activity.svg",className:"jp-landing__plan-features-icon",alt:__("Interface showing a chronological list of changes and updates in a site","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Site activity","jetpack")),o().createElement("p",null,__("View a chronological list of all the changes and updates to your site in an organized, readable way.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("view_site_activity"),href:(0,p.Z)("calypso-activity-log",{site:this.props.siteRawUrl})},__("View your site activity","jetpack")))),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("div",{className:"jp-landing__plan-features-img"},o().createElement("img",{src:g.hp+"/jetpack-support.svg",className:"jp-landing__plan-features-icon",alt:__("Chat bubbles representing getting in touch with support","jetpack")})),o().createElement("div",{className:"jp-landing__plan-features-text"},o().createElement("h3",{className:"jp-landing__plan-features-title"},__("Support documentation","jetpack")),o().createElement("p",null,__("Need help? Learn about getting started, customizing your site, using advanced code snippets, and more.","jetpack")),o().createElement(h.Z,{onClick:this.handleButtonClickForTracking("free_support_documentation"),href:(0,p.Z)("jetpack-support")},__("Search support docs","jetpack")))));break;default:e=o().createElement("div",{className:"jp-landing__plan-features is-loading"},o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),o().createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),o().createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")),o().createElement("div",{className:"jp-landing__plan-features-card"},o().createElement("h3",{className:"jp-landing__plan-features-title is-placeholder"}," "),o().createElement("p",{className:"jp-landing__plan-features-text is-placeholder"}," ")))}return o().createElement("div",null,o().createElement(w.Z,null),e)}}i()(E,"propTypes",{plan:c().string}),i()(E,"defaultProps",{plan:""}),t.Z=(0,l.$j)((e=>({isFetchingPluginsData:(0,v.vz)(e),isPluginActive:t=>(0,v.TB)(e,t),isPluginInstalled:t=>(0,v.P8)(e,t),isModuleActivated:t=>(0,b.mp)(e,t),isActivatingModule:t=>(0,b.ZY)(e,t),getModuleOverride:t=>(0,b.Qy)(e,t),showBackups:(0,_.xR)(e),getFeatureState:t=>(0,k.$8)(e,t),isActivatingFeature:t=>(0,k.Cu)(e,t)})),(e=>({fetchPluginsData:()=>e((0,v.s4)()),activateModule:t=>e((0,b.d)(t)),activateFeature:t=>e((0,y.VP)({[t]:!0}))})))(E)},18522:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(11268),o=n.n(s),a=n(89105),c=n.n(a),l=n(3218);const u=e=>{let{productSlug:t,action:n,isError:r,isPlaceholder:s,details:o,tagLine:a,title:u}=e;const p=c()("my-plan-card",{"is-placeholder":s,"has-action-only":n&&!o&&!s}),d=c()("my-plan-card__details",{"is-error":r});return i().createElement("div",{className:p},i().createElement("div",{className:"my-plan-card__primary"},i().createElement("div",{className:"my-plan-card__icon"},i().createElement(l.Z,{plan:t,alt:u})),i().createElement("div",{className:"my-plan-card__header"},u&&i().createElement("h2",{className:"my-plan-card__title"},u),a&&i().createElement("p",{className:"my-plan-card__tag-line"},a))),(o||n||s)&&i().createElement("div",{className:"my-plan-card__secondary"},i().createElement("div",{className:d},s?null:o),i().createElement("div",{className:"my-plan-card__action"},s?null:n)))};u.propTypes={productSlug:o().string.isRequired,action:o().oneOfType([o().node,o().element]),isError:o().bool,isPlaceholder:o().bool,details:o().oneOfType([o().string,o().node,o().element]),tagLine:o().oneOfType([o().string,o().node,o().element]),title:o().oneOfType([o().string,o().node,o().element])},t.Z=u},94091:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(11268),u=n.n(l),p=n(2620),d=n(89105),h=n.n(d),f=n(92819),m=n(69307),g=n(65736),v=n(71415),b=n(11973),y=n(9913),k=n(60742),w=n(68961),_=n(35179),E=n(57028),C=n(81200),S=n(66552),j=n(77219),M=n(87024),x=n(61595),N=n(18522);const __=g.__,_n=g._n,_x=g._x;class A extends c().Component{constructor(){super(...arguments),o()(this,"renderLicensingActions",(()=>{const{hasDetachedUserLicenses:e,showRecommendations:t,siteAdminUrl:n,purchases:r}=this.props;if(!t)return null;const i=!!r?.length||e;return c().createElement(k.Z,{compact:!0},c().createElement("div",{className:"jp-landing__licensing-actions"},e&&c().createElement("span",null,__("Got a license key? Activate it here.","jetpack")),c().createElement("div",{className:h()("jp-landing__licensing-actions-item",{"no-licenses":!e,"no-purchases":!i})},i&&c().createElement(w.Z,{className:"all-purchases__link",href:(0,v.Z)("calypso-purchases"),onClick:this.trackAllPurchasesClick,target:"_blank",icon:!0},__("View all purchases","jetpack")),e?c().createElement(y.Z,{href:n+"admin.php?page=jetpack#/license/activation",onClick:this.trackLicenseActivationClick,primary:!0},_x("Activate a Product","Navigation item.","jetpack")):c().createElement(y.Z,{href:n+"admin.php?page=jetpack#/recommendations",onClick:this.trackRecommendationsClick,primary:!0},_x("Recommendations","Navigation item.","jetpack")))))})),o()(this,"trackAllPurchasesClick",(()=>{b.Z.tracks.recordJetpackClick({target:"calypso_purchases_link",page:"my-plan"})})),o()(this,"trackLicenseActivationClick",(()=>{b.Z.tracks.recordJetpackClick({target:"licensing_activation_button",path:"licensing/activation",page:"my-plan"})})),o()(this,"trackRecommendationsClick",(()=>{b.Z.tracks.recordJetpackClick({target:"recommendations-button",page:"my-plan"})}))}getProductProps(e){const{displayBackups:t,dateFormat:n,purchases:r}=this.props,i={productSlug:e};if(!e)return{...i,isPlaceholder:!0};const s=(0,f.find)(r,(t=>t.product_slug===e));let o,a;switch(s&&(o=c().createElement(_.Z,{dateFormat:n,expiryDate:s.expiry_date,purchaseDate:s.subscribed_date,isRefundable:s.is_refundable}),a="1"===s.active?c().createElement(M.w,null):null),(0,C.sc)(e)){case"is-free-plan":return{...i,tagLine:(0,m.createInterpolateElement)(__("Worried about security? Get backups, automated security fixes and more: <a>Upgrade now</a>","jetpack"),{a:c().createElement(E.Z,{source:"my-plan-header-free-plan-text-link",target:"upgrade-now",feature:"my-plan-header-free-upgrade"})}),title:__("Jetpack Free","jetpack")};case"is-personal-plan":return{...i,details:o,tagLine:t?__("Daily backups, spam filtering, and priority support.","jetpack"):__("Spam filtering and priority support.","jetpack",0),title:__("Jetpack Personal","jetpack")};case"is-premium-plan":return{...i,details:[a,o],tagLine:__("Full security suite, marketing and revenue automation tools, unlimited video hosting, and priority support.","jetpack"),title:__("Jetpack Premium","jetpack")};case"is-business-plan":return{...i,details:[a,o],tagLine:__("Full security suite, marketing and revenue automation tools, unlimited video hosting, and priority support.","jetpack"),title:__("Jetpack Professional","jetpack")};case"is-security-t1-plan":return{...i,details:[a,o],tagLine:(0,m.createInterpolateElement)((0,g.sprintf)(
+/* translators: %1$d is the number of gigabytes of storage space the site has. */
+_n("Enjoy the peace of mind of complete site protection. You have <strong>%1$dGB</strong> of storage space.","Enjoy the peace of mind of complete site protection. You have <strong>%1$dGB</strong> of storage space.",10,"jetpack"),10),{strong:c().createElement("strong",null)}),title:__("Jetpack Security","jetpack")};case"is-security-t2-plan":return{...i,details:[a,o],tagLine:(0,m.createInterpolateElement)((0,g.sprintf)(
+/* translators: %1$d is the number of gigabytes of storage space the site has. */
+_n("Enjoy the peace of mind of complete site protection. You have <strong>%1$dTB</strong> of storage space.","Enjoy the peace of mind of complete site protection. You have <strong>%1$dTB</strong> of storage space.",1,"jetpack"),1),{strong:c().createElement("strong",null)}),title:__("Jetpack Security","jetpack")};case"is-complete-plan":return{...i,details:[a,o],tagLine:__("The most powerful WordPress sites: Top-tier security bundle, enhanced search.","jetpack"),title:__("Jetpack Complete","jetpack")};case"is-backup-t1-plan":return{...i,details:[a,o],tagLine:(0,m.createInterpolateElement)((0,g.sprintf)(
+/* translators: %1$d is the number of gigabytes of storage space the site has. */
+_n("Your data is being securely backed up as you edit. You have <strong>%1$dGB</strong> of storage space.","Your data is being securely backed up as you edit. You have <strong>%1$dGB</strong> of storage space.",10,"jetpack"),10),{strong:c().createElement("strong",null)}),title:__("Jetpack Backup","jetpack")};case"is-backup-t2-plan":return{...i,details:[a,o],tagLine:(0,m.createInterpolateElement)((0,g.sprintf)(
+/* translators: %1$d is the number of terabytes of storage space the site has. */
+_n("Your data is being securely backed up as you edit. You have <strong>%1$dTB</strong> of storage space.","Your data is being securely backed up as you edit. You have <strong>%1$dTB</strong> of storage space.",1,"jetpack"),1),{strong:c().createElement("strong",null)}),title:__("Jetpack Backup","jetpack")};case"is-search-plan":return{...i,details:[a,o],tagLine:__("Fast, highly relevant search results and powerful filtering.","jetpack"),title:__("Jetpack Search","jetpack")};case"is-scan-plan":return{...i,details:[a,o],tagLine:__("Automatic scanning and one-click fixes keep your site one step ahead of security threats.","jetpack"),title:(0,m.createInterpolateElement)(__("Jetpack Scan <em>Daily</em>","jetpack"),{em:c().createElement("em",null)})};case"is-anti-spam-plan":return{...i,details:[a,o],tagLine:__("Automatically clear spam from comments and forms. Save time, get more responses, give your visitors a better experience – all without lifting a finger.","jetpack"),title:__("Jetpack Anti-Spam","jetpack")};case"is-daily-security-plan":return{...i,details:o,tagLine:__("Enjoy the peace of mind of complete site protection. Great for brochure sites, restaurants, blogs, and resume sites.","jetpack"),title:__("Jetpack Security Daily","jetpack")};case"is-realtime-security-plan":return{...i,details:o,tagLine:__("Additional security for sites with 24/7 activity. Recommended for eCommerce stores, news organizations, and online forums.","jetpack"),title:__("Jetpack Security Real-Time","jetpack")};case"is-daily-backup-plan":return{...i,details:o,tagLine:__("Your data is being securely backed up every day with a 30-day archive.","jetpack"),title:(0,m.createInterpolateElement)(__("Jetpack Backup <em>Daily</em>","jetpack"),{em:c().createElement("em",null)})};case"is-realtime-backup-plan":return{...i,details:o,tagLine:__("Your data is being securely backed up as you edit.","jetpack"),title:(0,m.createInterpolateElement)(__("Jetpack Backup <em>Real-Time</em>","jetpack"),{em:c().createElement("em",null)})};case"is-videopress-plan":return{...i,details:[a,o],tagLine:__("High-quality, ad-free video built specifically for WordPress.","jetpack"),title:__("Jetpack VideoPress","jetpack")};default:return{...i,isPlaceholder:!0}}}renderPlan(){return c().createElement(c().Fragment,null,this.props.hasDetachedUserLicenses&&this.renderLicensingActions(),c().createElement(k.Z,{compact:!0},this.renderHeader(__("My Plan","jetpack")),c().createElement(N.Z,this.getProductProps(this.props.plan))))}renderProducts(){return(0,f.isEmpty)(this.props.activeProducts)?null:c().createElement(k.Z,{compact:!0},this.renderHeader(__("My Products","jetpack")),this.props.activeProducts.map((e=>{let{ID:t,product_slug:n}=e;return c().createElement(N.Z,i()({key:"product-card-"+t},this.getProductProps(n)))})))}renderHeader(e){return c().createElement("h3",{className:"jp-landing__card-header"},e)}renderFooter(){return!this.props.hasDetachedUserLicenses&&this.renderLicensingActions()}render(){return c().createElement("div",{className:"jp-landing__plans"},this.renderPlan(),this.renderProducts(),this.renderFooter(),this.props.showLicensingUi&&c().createElement(k.Z,{compact:!0},c().createElement(x.Z,null)))}}A.propTypes={activeProducts:u().array,plan:u().string,purchases:u().array,siteAdminUrl:u().string,dateFormat:u().string,displayBackups:u().bool,plansMainTopUpgradeUrl:u().string,showRecommendations:u().bool},t.Z=(0,p.$j)((e=>({dateFormat:(0,S.mh)(e),displayBackups:(0,S.xR)(e),plansMainTopUpgradeUrl:(0,S.Qq)(e,"plans-main-top"),showRecommendations:(0,S.mb)(e),showLicensingUi:(0,S.Yg)(e),hasDetachedUserLicenses:!!(0,j.O4)(e)})))(A)},61595:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(65736),o=n(2620),a=n(9913),c=n(15029),l=n(21094),u=n(19570),p=n(77219);const __=s.__,_x=s._x;t.Z=(0,o.$j)(null,{errorNotice:l.tF,successNotice:l.RT,updateUserLicensesCounts:p.Ng})((e=>{let{errorNotice:t,successNotice:n,updateUserLicensesCounts:s}=e;const[o,l]=(0,r.useState)(!1),[p,d]=(0,r.useState)(""),h=(0,r.useCallback)((e=>{d(e.target.value)}),[]),f=(0,r.useCallback)((()=>{p&&!o&&(l(!0),u.ZP.updateLicenseKey(p).then((()=>{s(),n(__("Jetpack license key added. It may take a minute for the license to be processed.","jetpack")),l(!1),d("")})).catch((()=>{t(__("Error adding Jetpack license key.","jetpack")),l(!1)})))}),[t,n,o,p,s]);return i().createElement("div",{className:"jp-landing__plan-features-header-jetpack-license"},i().createElement("h3",null,__("Jetpack License","jetpack")),i().createElement("p",null,__('If you have a Jetpack license key paste it here to queue it for activation. Once your license is processed your product will appear under "My Plan".',"jetpack")),i().createElement(c.Z,{name:"jetpack_license_key",className:"code",value:p,placeholder:__("Jetpack licence key","jetpack"),disabled:o,onChange:h}),i().createElement(a.Z,{primary:!0,compact:!0,onClick:f},o?_x("Applying…","Button caption","jetpack"):_x("Apply license","Button caption","jetpack",0)))}))},96892:function(e,t,n){"use strict";var r=n(90922),i=n.n(r),s=n(40767);const o=i()("calypso:notices");o("initializing notices");const a={containerNames:{}};(0,s.Z)(a);let c=[];const l={new:function(e,t,n){const r=t.overlay?"overlay-notices":"notices";a.containerNames[r]=r,o("creating notice",e,t,n),a[r]=[];const i={type:t.type||"message",status:n,text:e,duration:t.duration,container:r,button:t.button,href:t.href,onClick:e=>{if("function"==typeof t.onClick){const n=l.removeNotice.bind(l,i);return t.onClick(e,n)}},onRemoveCallback:t.onRemoveCallback||function(){},arrow:t.arrow,isCompact:t.isCompact,showDismiss:t.showDismiss,persistent:t.persistent};return t.displayOnNextPage?c.push(i):a[r].push(i),a.emit("change"),i},success:function(e,t){return t=t||{},this.new(e,t,"is-success")},error:function(e,t){return t=t||{},this.new(e,t,"is-error")},info:function(e,t){return t=t||{},this.new(e,t,"is-info")},warning:function(e,t){return t=t||{},this.new(e,t,"is-warning")},list:a,removeNotice:function(e){if(!e.container)return;const t=a[e.container],n=t.indexOf(e);-1!==n&&(t.splice(n,1),a.emit("change"))},clearNoticesOnNavigation:function(e,t){o("clearNoticesOnNavigation");let n,r,i=!1;const s=function(e){return e.persistent};for(r in a.containerNames)n=a[r].length,a[r]=a[r].filter(s),n!==a[r].length&&(i=!0);c.length&&(c.forEach((function(e){a[e.container]=[],a[e.container].push(e)})),c=[]),i&&a.emit("change"),t()},clearNotices:function(e){a[e]=[],a.emit("change")},getStatusHelper:function(e){return e.error?"is-error":e.warning?"is-warning":e.info?"is-info":e.success?"is-success":void 0}};t.Z=l},37755:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(65736),a=n(93107),c=n(41147),l=n(19555),u=n(60742),p=n(27219),d=n(71045),h=n(90141),f=n(93039);const __=o.__;class m extends r.Component{render(){const e={getModule:this.props.module,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode,isModuleFound:this.props.isModuleFound,getModuleOverride:this.props.getModuleOverride,hasConnectedOwner:this.props.hasConnectedOwner},t=["photon","videopress","lazy-images","photon-cdn","search"].some(this.props.isModuleFound);return(this.props.searchTerm||this.props.active)&&t?i().createElement("div",null,i().createElement(p.Z,null),i().createElement(u.Z,{title:this.props.searchTerm?__("Performance","jetpack"):__("Load pages faster, optimize images, and speed up your visitors’ experience.","jetpack"),className:"jp-settings-description"}),i().createElement(h.Z,e),i().createElement(f.Z,e),i().createElement(d.Z,e)):null}}t.Z=(0,s.$j)((e=>({module:t=>(0,a.rT)(e,t),isUnavailableInOfflineMode:t=>(0,c.t_)(e,t),isModuleFound:t=>(0,l.CX)(e,t),getModuleOverride:t=>(0,a.Qy)(e,t),hasConnectedOwner:(0,c.it)(e)})))(m)},71045:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(92819),l=n(65736),u=n(71415),p=n(10618),d=n(81200),h=n(55735),f=n(85253),m=n(77222),g=n(5e4),v=n(84277),b=n(27006),y=n(66552),k=n(93107),w=n(19555),_=n(41147),E=n(88872);const __=l.__;class C extends o().Component{render(){const e=this.props.isModuleFound("videopress");if(!e)return null;const t=this.props.module("videopress"),n=(0,d.sc)(this.props.sitePlan.product_slug),{hasConnectedOwner:r,hasVideoPressLegacySecurityPlan:s,hasVideoPressPurchase:a,isFetching:l,isOffline:g,upgradeUrl:y,videoPressStorageUsed:k}=this.props,w=a&&null!==k,_=(0,c.includes)(["is-premium-plan","is-business-plan","is-complete-plan"],n)||s||a,E=a||null===k||0!==k?__("You have used your free video. Upgrade now to unlock more videos and 1TB of storage.","jetpack",0):__("1 free video available. Upgrade now to unlock more videos and 1TB of storage.","jetpack"),C=o().createElement(b.Z,{hasChild:!0,disableInOfflineMode:!0,module:t,support:{link:(0,u.Z)("jetpack-support-videopress")}},o().createElement(h.Gj,{className:"jp-form-label-wide"},__("VideoPress","jetpack")),o().createElement("p",null," ",__("Engage your visitors with high-resolution, ad-free video. Save time by uploading videos directly through the WordPress editor. With Jetpack VideoPress, you can customize your video player to deliver your message without the distraction.","jetpack")," "),w&&o().createElement("div",{className:"media__videopress-storage"},o().createElement("span",null,__("Video storage used out of 1TB:","jetpack")),o().createElement(p.Z,{value:k/1e4})),r&&o().createElement(m.T,{slug:"videopress",disabled:this.props.isUnavailableInOfflineMode("videopress"),activated:this.props.getOptionValue("videopress"),toggling:this.props.isSavingAnyOption("videopress"),toggleModule:this.props.toggleModuleNow},o().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable VideoPress","jetpack")))),S="inactive"===this.props.getModuleOverride("videopress"),j=e&&!_&&r&&!g&&!l;return o().createElement(v.Z,i()({},this.props,{header:__("Media","jetpack"),feature:!S&&d.BD,hideButton:!0}),e&&C,j&&o().createElement(f.Z,{className:"media__videopress-upgrade",callToAction:__("Upgrade","jetpack"),title:E,eventFeature:"videopress",icon:"video",plan:(0,d.o2)(d.qb),feature:"jetpack_videopress",href:y}))}}t.Z=(0,a.$j)((e=>({module:t=>(0,k.rT)(e,t),isModuleFound:t=>(0,w.CX)(e,t),sitePlan:(0,E.UL)(e),hasVideoPressPurchase:(0,E.jQ)(e),hasVideoPressLegacySecurityPlan:(0,E.qn)(e).find(d.dy),hasConnectedOwner:(0,_.it)(e),isOffline:(0,_.Ex)(e),isFetching:(0,E.GR)(e),getModuleOverride:t=>(0,k.Qy)(e,t),upgradeUrl:(0,y.Qq)(e,"videopress-upgrade"),videoPressStorageUsed:(0,E.VH)(e)})))((0,g.u)(C))},90141:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(71415),u=n(60742),p=n(94069),d=n(81200),h=n(55735),f=n(41147),m=n(88872),g=n(17752),v=n(77222),b=n(84277),y=n(27006),k=n(5e4);const __=c.__,w=__("Incredibly powerful and customizable, Jetpack Search helps your visitors instantly find the right content – right when they need it.","jetpack"),_=__("Customize your Search experience.","jetpack"),E=__("Search supports many customizations. ","jetpack");t.Z=(0,a.$j)((e=>{const t=(0,d.sc)((0,m.UL)(e).product_slug);return{isLoading:(0,m.GR)(e),inOfflineMode:(0,f.Ex)(e),hasActiveSearchPurchase:(0,m.o$)(e),isBusinessPlan:"is-business-plan"===t,failedToEnableSearch:!(0,g.qg)(e,"search")&&!(0,g.Cu)(e,"search")&&!1===(0,g.p0)(e,"search")}}))((0,k.u)((function(e){const{failedToEnableSearch:t,hasActiveSearchPurchase:n,updateOptions:r}=e,a=e.getOptionValue("search"),c=e.getOptionValue("instant_search_enabled","search"),f=(0,s.useCallback)((()=>{const e={search:!a};c!==(n&&!a)&&(e.instant_search_enabled=n&&!a),r(e)}),[n,c,a,r]),m=(0,s.useCallback)((()=>{const e={instant_search_enabled:n&&!c};e.instant_search_enabled&&!a&&(e.search=!0),r(e)}),[n,c,a,r]);(0,s.useEffect)((()=>{t&&n&&(r({has_jetpack_search_product:!0}),f())}),[t,n,r,f]);const g=!!e.isSavingAnyOption("search"),k=!!e.isSavingAnyOption("instant_search_enabled"),C=g||k;return o().createElement(b.Z,i()({},e,{module:"search",feature:d.T5,hideButton:!0}),o().createElement(y.Z,{disableInOfflineMode:!0,hasChild:!0,module:{module:"search"},support:{text:E,link:(0,l.Z)("jetpack-support-search")}},o().createElement("p",null,e.inOfflineMode?__("Unavailable in Offline Mode","jetpack"):w),e.isLoading&&__("Loading…","jetpack"),!e.isLoading&&(e.isBusinessPlan||e.hasActiveSearchPurchase)&&o().createElement(s.Fragment,null,o().createElement(v.T,{activated:a,compact:!0,disabled:C,slug:"search",toggleModule:f,toggling:g},__("Enable Search","jetpack")),o().createElement(h.C_,null,o().createElement(p.Z,{checked:a&&c,disabled:C||!e.hasActiveSearchPurchase,onChange:m,toggling:k},o().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable instant search experience (recommended)","jetpack"))),o().createElement("p",{className:"jp-form-setting-explanation jp-form-search-setting-explanation"},__("Instant search will allow your visitors to get search results as soon as they start typing. If deactivated, Jetpack Search will still optimize your search results but visitors will have to submit a search query before seeing any results.","jetpack"))))),!e.isLoading&&(e.isBusinessPlan||e.hasActiveSearchPurchase)&&a&&!c&&o().createElement(u.Z,{compact:!0,className:"jp-settings-card__configure-link",href:"customize.php?autofocus[panel]=widgets"},__("Add Jetpack Search Widget","jetpack")),e.hasActiveSearchPurchase&&a&&c&&o().createElement(u.Z,{className:"jp-settings-card__configure-link",compact:!0,href:"admin.php?page=jetpack-search-configure"},_))})))},93039:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(11973),h=n(94069),f=n(55735),m=n(41147),g=n(93107),v=n(19555),b=n(77222),y=n(84277),k=n(27006),w=n(5e4);const __=u.__,_=(0,w.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"toggleModule",((e,t)=>{"photon"===e?!1==!t?this.props.updateOptions({photon:!1,"tiled-gallery":!1,tiled_galleries:!1}):this.props.updateOptions({photon:!0,"tiled-gallery":!0,tiled_galleries:!0}):this.props.updateOptions({[e]:!t})})),o()(this,"handleSiteAcceleratorChange",(()=>{let e=this.props.getOptionValue("photon"),t=this.props.getOptionValue("photon-cdn");const n=e||t,r=this.props.getModuleOverride("photon-cdn");let i=this.props.getModuleOverride("photon");if(this.props.isOfflineMode&&(i="inactive"),!0===n){const n={progress:__("Disabling site accelerator…","jetpack"),success:__("Site accelerator is no longer speeding up your site!","jetpack"),error:e=>(0,u.sprintf)(
+/* translators: placeholder is an error code. */
+__("Error disabling site accelerator. %s","jetpack"),e)};let s={};!1==!e&&"active"!==i&&(e=!1,s={photon:!1,"tiled-gallery":!1,tiled_galleries:!1}),!1==!t&&"active"!==r&&(t=!1,s={...s,"photon-cdn":!1}),this.props.updateOptions(s,n)}else{const n={progress:__("Enabling Site accelerator…","jetpack"),success:__("Site accelerator is now speeding up your site!","jetpack"),error:e=>(0,u.sprintf)(
+/* translators: placeholder is an error code. */
+__("Error enabling Site accelerator. %s","jetpack"),e)};let s={};!1===e&&"inactive"!==i&&(e=!0,s={photon:!0,"tiled-gallery":!0,tiled_galleries:!0}),!1===t&&"inactive"!==r&&(t=!0,s={...s,"photon-cdn":!0}),this.props.updateOptions(s,n)}!0===e||!0===t?d.Z.tracks.recordJetpackClick({target:"jetpack_site_accelerator_toggle",toggled:"on"}):d.Z.tracks.recordJetpackClick({target:"jetpack_site_accelerator_toggle",toggled:"off"}),this.props.getOptionValue("photon")!==e&&d.Z.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"photon",toggled:!1===e?"off":"on"}),this.props.getOptionValue("photon-cdn")!==t&&d.Z.tracks.recordEvent("jetpack_wpa_module_toggle",{module:"photon-cdn",toggled:!1===t?"off":"on"})}))}render(){const e=this.props.isModuleFound("photon"),t=this.props.isModuleFound("photon-cdn"),n=this.props.isModuleFound("lazy-images");if(!e&&!n&&!t)return null;const r=this.props.module("lazy-images"),s=this.props.getOptionValue("photon")||this.props.getOptionValue("photon-cdn"),o=this.props.getModuleOverride("photon-cdn");let a=this.props.getModuleOverride("photon");this.props.isOfflineMode&&(a="inactive");const l=e&&t&&("inactive"!==a||"inactive"!==o),u=(e||t)&&("inactive"!==a||"inactive"!==o);let d;return!this.props.getOptionValue("photon")&&this.props.isSavingAnyOption("photon")?d=!this.props.getOptionValue("photon-cdn"):!this.props.getOptionValue("photon-cdn")&&this.props.isSavingAnyOption("photon-cdn")?d=!this.props.getOptionValue("photon"):this.props.getOptionValue("photon")&&this.props.isSavingAnyOption("photon")?(d=!this.props.getOptionValue("photon-cdn"),this.props.getOptionValue("photon-cdn")&&this.props.isSavingAnyOption("photon-cdn")&&(d=!0)):d=!(!this.props.getOptionValue("photon-cdn")||!this.props.isSavingAnyOption("photon-cdn"))&&!this.props.getOptionValue("photon"),c().createElement(y.Z,i()({},this.props,{header:__("Performance & speed","jetpack"),hideButton:!0,module:"performance-speed"}),(e||t)&&c().createElement(k.Z,{hasChild:!0,support:{link:(0,p.Z)("jetpack-support-site-accelerator")}},c().createElement("p",null,__("Load pages faster by allowing Jetpack to optimize your images and serve your images and static files (like CSS and JavaScript) from our global network of servers.","jetpack")),u&&c().createElement(h.Z,{checked:s,toggling:d,onChange:this.handleSiteAcceleratorChange,disabled:!l},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable site accelerator","jetpack"))),c().createElement(f.C_,null,e&&c().createElement(b.T,{slug:"photon",disabled:this.props.isUnavailableInOfflineMode("photon"),activated:this.props.getOptionValue("photon"),toggling:this.props.isSavingAnyOption("photon"),toggleModule:this.toggleModule},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Speed up image load times","jetpack"))),t&&c().createElement(b.T,{slug:"photon-cdn",activated:this.props.getOptionValue("photon-cdn"),toggling:this.props.isSavingAnyOption("photon-cdn"),toggleModule:this.toggleModule},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Speed up static file load times","jetpack"))))),n&&c().createElement(k.Z,{hasChild:!0,module:r,support:{link:(0,p.Z)("jetpack-support-lazy-images")}},c().createElement("p",null,__("Lazy-loading images will improve your site’s speed and create a smoother viewing experience. Images will load as visitors scroll down the screen, instead of all at once.","jetpack")),c().createElement(b.T,{slug:"lazy-images",disabled:this.props.isUnavailableInOfflineMode("lazy-images"),activated:this.props.getOptionValue("lazy-images"),toggling:this.props.isSavingAnyOption("lazy-images"),toggleModule:this.toggleModule},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable Lazy Loading for images","jetpack")))))}});t.Z=(0,l.$j)((e=>({module:t=>(0,g.rT)(e,t),isModuleFound:t=>(0,v.CX)(e,t),isOfflineMode:(0,m.Ex)(e),getModuleOverride:t=>(0,g.Qy)(e,t)})))(_)},90955:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(11268),u=n.n(l),p=n(2620),d=n(69307),h=n(65736),f=n(71415),m=n(11973),g=n(94069),v=n(68961),b=n(64362),y=n(50093),k=n(17752),w=n(84277),_=n(27006),E=n(5e4);const __=h.__,_x=h._x,C=()=>m.Z.tracks.recordJetpackClick({target:"privacy-policy",feature:"privacy"}),S=()=>m.Z.tracks.recordJetpackClick({target:"cookie-policy",feature:"privacy"}),j=()=>m.Z.tracks.recordJetpackClick({target:"privacy-center",feature:"privacy"});class M extends c().Component{constructor(){super(...arguments),o()(this,"isPrivacyFound",(()=>!this.props.searchTerm||[_x("privacy","Search term.","jetpack"),_x("tracks","Search term.","jetpack"),_x("data","Search term.","jetpack"),_x("gdpr","Search term.","jetpack"),_x("tos","Search term.","jetpack"),_x("terms of service","Search term.","jetpack")].join(" ").toLowerCase().indexOf(this.props.searchTerm.toLowerCase())>-1)),o()(this,"togglePrivacy",(()=>{const e=this.props.trackingSettings.tracks_opt_out;this.props.setTrackingSettings(!e)}))}UNSAFE_componentWillMount(){this.props.fetchTrackingSettings()}render(){const{searchTerm:e,active:t}=this.props;return e||t?this.isPrivacyFound()&&c().createElement("div",null,c().createElement(w.Z,i()({},this.props,{header:_x("Privacy Settings","Settings header","jetpack"),hideButton:!0}),c().createElement(_.Z,{hasChild:!0},c().createElement("p",null,__("We are committed to your privacy and security.","jetpack")),c().createElement("p",null,c().createElement(g.Z,{compact:!0,checked:!this.props.trackingSettings.tracks_opt_out,disabled:this.props.isFetchingTrackingSettings||this.props.isUpdatingTrackingSettings,onChange:this.togglePrivacy,id:"privacy-settings"},(0,d.createInterpolateElement)(__("Share information with our analytics tool about your use of services while logged in to your WordPress.com account. <cookiePolicyLink>Learn more</cookiePolicyLink>.","jetpack"),{cookiePolicyLink:c().createElement(v.Z,{href:(0,f.Z)("a8c-cookies"),onClick:S,target:"_blank",rel:"noopener noreferrer"})}))),c().createElement("p",null,(0,d.createInterpolateElement)(__("This information helps us improve our products, make marketing to you more relevant, personalize your WordPress.com experience, and more as detailed in our <pp>privacy policy</pp>.","jetpack"),{pp:c().createElement(v.Z,{href:(0,f.Z)("a8c-privacy"),onClick:C,target:"_blank",rel:"noopener noreferrer"})})),c().createElement("p",null,(0,d.createInterpolateElement)(__("We use other tracking tools, including some from third parties. <cookiePolicyLink>Read about these</cookiePolicyLink> and how to control them.","jetpack"),{cookiePolicyLink:c().createElement(v.Z,{href:(0,f.Z)("a8c-cookies"),onClick:S,target:"_blank",rel:"noopener noreferrer"})})),c().createElement("p",null,(0,d.createInterpolateElement)(__("For more information on how specific Jetpack features use data and track activity, please refer to our <privacyCenterLink>Privacy Center</privacyCenterLink>.","jetpack"),{privacyCenterLink:c().createElement(v.Z,{href:(0,f.Z)("jetpack-support-privacy"),onClick:j,target:"_blank",rel:"noopener noreferrer"})}))))):null}}o()(M,"displayName","PrivacySettings"),o()(M,"propTypes",{searchTerm:u().string,active:u().bool,toggleTracking:u().func,getOptionValue:u().func,isSavingAnyOption:u().func}),o()(M,"defaultProps",{searchTerm:"",active:!1}),t.Z=(0,p.$j)((e=>({settings:(0,k.Gw)(e),trackingSettings:(0,y.AO)(e),isUpdatingTrackingSettings:(0,y.Ak)(e),isFetchingTrackingSettings:(0,y.ab)(e)})),(e=>({setTrackingSettings:t=>{m.Z.tracks.setOptOut(t),e((0,b.X)({tracks_opt_out:t}))},fetchTrackingSettings:()=>e((0,b.$)())})))((0,E.u)(M))},27415:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(92819),p=n(65736),d=n(71415),h=n(11973),f=n(9913),m=n(81200),g=n(66552),v=n(75395),b=n(88872),y=n(30701),k=n(35795),w=n(41147),_=n(61744),E=n(15142),C=n(39786),S=n(65125),j=n(88001);const __=p.__,_n=p._n,_x=p._x,M=(e,t)=>()=>((e,t)=>h.Z.tracks.recordJetpackClick({target:"pro-status",type:e,feature:t}))(e,t);class x extends o().Component{constructor(){super(...arguments),i()(this,"getProActions",((e,t)=>{let n="",r=!1,i=!1,s="";switch(e){case"threats":n="is-error",i=this.props.isCompact?_x("Threats","A caption for a small button to fix security issues.","jetpack"):_x("See threats","A caption for a small button to fix security issues.","jetpack"),s=(0,d.Z)("vaultpress-dashboard");break;case"free":case"personal":case"pro":case"invalid_key":return;case"secure":n="is-success",r=_x("Secure","Short message informing user that the site is secure.","jetpack");break;case"rewind_connected":const e=this.getRewindMessage();return o().createElement(j.Z,{showDismiss:!1,status:e.status,isCompact:!0},e.text);case"active":return o().createElement("span",{className:"jp-dash-item__active-label"},__("ACTIVE","jetpack"))}return o().createElement(j.Z,{showDismiss:!1,status:n,isCompact:!0},r,i&&o().createElement("a",{className:"dops-notice__text-no-underline",onClick:M(e,t),href:s},i))})),i()(this,"getSetUpButton",(e=>o().createElement(f.Z,{onClick:M("set_up",e),compact:!0,primary:!0,href:(0,d.Z)("calypso-plugins-setup",{site:this.props.siteRawUrl,query:`only=${e}`})},_x("Set up","Caption for a button to set up a feature.","jetpack"))))}getRewindMessage(){switch(this.props.rewindStatus.state){case"provisioning":return{status:"is-info",text:__("Setting up","jetpack")};case"awaiting_credentials":return{status:"is-warning",text:__("Action needed","jetpack")};case"active":return{status:"is-success",text:__("Connected","jetpack")};default:return{status:"",text:""}}}render(){const e=this.props.sitePlan,t=this.props.getVaultPressData();let n="";"scan"!==this.props.proFeature&&"backups"!==this.props.proFeature&&"vaultpress"!==this.props.proFeature||(n="vaultpress/vaultpress.php"),"akismet"===this.props.proFeature&&(n="akismet/akismet.php");const r=/jetpack_personal*/.test(e.product_slug),i=/jetpack_free*/.test(e.product_slug),s=/jetpack_premium*/.test(e.product_slug),a=(0,u.get)(t,["data","features","backups"],!1),c=(0,u.get)(t,["data","features","security"],!1),{scanStatus:l}=this.props;return o().createElement("div",null,o().createElement(E.Z,null),o().createElement(S.Z,null),o().createElement(C.Z,null),!this.props.isOfflineMode&&((u,p,d)=>{switch(u){case"rewind":return this.getProActions("rewind_connected","rewind");case"backups":if(i&&!a&&this.props.isCompact)return this.getProActions("free","backups");break;case"scan":if(this.props.fetchingSiteData||this.props.isFetchingVaultPressData)return"";if("N/A"!==t)return!i&&!r||c?c?this.getProActions(0===this.props.getScanThreats()?"secure":"threats","scan"):this.getSetUpButton("scan"):this.props.isCompact?this.getProActions("free","scan"):r&&!a?this.getSetUpButton("backups"):"";if(l&&"unavailable"!==l.state)return Array.isArray(l.threats)&&l.threats.length>0?o().createElement(j.Z,{showDismiss:!1,status:"is-error",isCompact:!0},_n("Threat","Threats",l.threats.length,"jetpack")):l.credentials?0===l.credentials.length?o().createElement(j.Z,{showDismiss:!1,status:"is-warning",isCompact:!0},__("Action needed","jetpack")):this.getProActions("secure","scan"):"";break;case"search":return i||r||s?this.getProActions("pro","search"):"";case"akismet":if(i&&(!p||!d))return this.props.isCompact?this.getProActions("free","anti-spam"):"";if(!this.props.isAkismetKeyValid&&!this.props.fetchingAkismetData&&p&&d&&!i)return this.getSetUpButton(u)}return e.product_slug&&n&&!i?p&&d?this.getProActions("active"):this.getSetUpButton(u):""})(this.props.proFeature,this.props.pluginActive(n),this.props.pluginInstalled(n)))}}i()(x,"propTypes",{isCompact:c().bool,proFeature:c().string,rewindStatus:c().object.isRequired}),i()(x,"defaultProps",{isCompact:!0,proFeature:""}),t.Z=(0,l.$j)((e=>{const t=(0,b.UL)(e);return{siteRawUrl:(0,g.JR)(e),siteAdminUrl:(0,g.wW)(e),getScanThreats:()=>(0,v._R)(e),getVaultPressData:()=>(0,v.XK)(e),getAkismetData:()=>(0,v.fU)(e),isFetchingVaultPressData:(0,v.P_)(e),sitePlan:t,planClass:(0,m.sc)((0,u.get)(t,"product_slug","")),fetchingPluginsData:(0,_.vz)(e),pluginActive:t=>(0,_.TB)(e,t),pluginInstalled:t=>(0,_.P8)(e,t),isOfflineMode:(0,w.Ex)(e),fetchingSiteData:(0,b._5)(e),isAkismetKeyValid:(0,v._2)(e),fetchingAkismetData:(0,v.bV)(e),paidFeatureUpgradeUrl:(0,g.Qq)(e,"upgrade"),planProUpgradeUrl:(0,g.Qq)(e,"plans-business"),rewindStatus:(0,y.of)(e),scanStatus:(0,k.C8)(e)}}))(x)},98362:function(e,t,n){"use strict";n.d(t,{tE:function(){return i},w7:function(){return s},ZS:function(){return o}});var r=n(98486);const i={JETPACK_ANTI_SPAM:"akismet",JETPACK_BACKUP:"backup",JETPACK_SCAN:"scan",JETPACK_SEARCH:"search",JETPACK_SECURITY:"security",JETPACK_VIDEOPRESS:"videopress"},s=[`/product/${i.JETPACK_ANTI_SPAM}`,`/product/${i.JETPACK_BACKUP}`,`/product/${i.JETPACK_SCAN}`,`/product/${i.JETPACK_SEARCH}`,`/product/${i.JETPACK_SECURITY}`,`/product/${i.JETPACK_VIDEOPRESS}`],o={[i.JETPACK_ANTI_SPAM]:`${r.hp}products/illustration-anti-spam.png`,[i.JETPACK_BACKUP]:`${r.hp}products/illustration-backup.png`,[i.JETPACK_SCAN]:`${r.hp}products/illustration-scan.png`,[i.JETPACK_SEARCH]:`${r.hp}products/illustration-search.png`,[i.JETPACK_SECURITY]:`${r.hp}products/illustration-scan.png`,[i.JETPACK_VIDEOPRESS]:`${r.hp}products/illustration-videopress.png`}},63663:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(12901),o=n(2620),a=n(11268),c=n.n(a),l=n(92819),u=n(63038),p=n(79644),d=n(13553),h=n(66552),f=n(98362),m=n(15893);const g=e=>{const{isFetchingProducts:t,products:n}=e,r=t||(0,l.isEmpty)(n),o=[];return r||Object.values(f.tE).forEach((function(e){if(!n.hasOwnProperty(e))return;const t=n[e];t.available&&o.push(i().createElement(s.AW,{key:e,path:`/product/${e}`},i().createElement(m.Z,{product:t,arePromotionsActive:h.Hy})))})),i().createElement(i().Fragment,null,i().createElement(u.Z,null),r?i().createElement("div",{className:"jp-product-descriptions__loading"},i().createElement(p.D,null)):i().createElement(s.rs,null,o))};g.propTypes={products:c().object,isFetchingProducts:c().bool,arePromotionsActive:c().bool},t.Z=(0,o.$j)((e=>({arePromotionsActive:(0,h.Hy)(e),isFetchingProducts:(0,d.T0)(e),products:(0,h.by)(e)})))(g)},83:function(e,t,n){"use strict";n.d(t,{pz:function(){return s},yS:function(){return o},dn:function(){return a},jZ:function(){return c}});var r=n(99196),i=n.n(r);const s=i().createElement("svg",{fill:"none",viewBox:"0 0 22 16",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"m16.092 8.1635 0.0188-1.7025 1e-4 -0.03867c0-1.9752-1.8025-3.8666-4.4-3.8666-2.1696 0-3.828 1.3518-4.2735 2.9432l-0.42657 1.5238-1.581-0.06466c-0.0393-0.0016-0.07893-0.0024-0.11886-0.0024-1.587 0-2.9778 1.3444-2.9778 3.1333 0 1.7871 1.3878 3.1305 2.9728 3.1334l0.02863-2e-4h12.052l0.0123 2e-4c1.1943 0 2.2667-1.0162 2.2667-2.4 0-1.2351-0.8646-2.1899-1.8964-2.3684l-1.6776-0.2904zm-10.581-3.2038c-0.06651-0.00271-0.13335-0.00408-0.2005-0.00408-2.7492 0-4.9778 2.2983-4.9778 5.1333 0 2.8351 2.2286 5.1334 4.9778 5.1334l0.02962-2e-4h12.035l0.0236 2e-4c2.3564 0 4.2667-1.97 4.2667-4.4 0-2.1802-1.5375-3.99-3.5554-4.3392l3e-4 -0.0608c0-3.24-2.8653-5.8666-6.4-5.8666-2.9837 0-5.4905 1.8716-6.1994 4.404z",clipRule:"evenodd",fill:"#000",fillRule:"evenodd"})),o=i().createElement("svg",{className:"vertical",fill:"none",viewBox:"0 0 18 23",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"m9 0.23486 9 4.0909v6.0984c0 5.1987-3.3389 10.121-8.0471 11.674-0.61868 0.2041-1.2872 0.2041-1.9059 0-4.7082-1.5528-8.0471-6.4749-8.0471-11.674v-6.0984l9-4.0909zm-7 5.3787v4.8106c0 4.4173 2.8602 8.5166 6.6735 9.7743 0.21184 0.0698 0.44118 0.0698 0.65302 0 3.8133-1.2577 6.6735-5.357 6.6735-9.7743v-4.8106l-7-3.1818-7 3.1818z",clipRule:"evenodd",fill:"#000",fillRule:"evenodd"})),a=i().createElement("svg",{className:"vertical",fill:"none",viewBox:"0 0 20 25",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"m5.2729 24.276 10.667-23.333-1.2126-0.55434-1.6821 3.6796c-0.9128-0.46945-1.9479-0.73443-3.0449-0.73443-1.4153 0-2.7276 0.44103-3.8069 1.1931l-2.6065-2.6065-1.4142 1.4142 2.5684 2.5684c-0.7535 0.96578-1.2468 2.1445-1.3745 3.4307h-2.6996v2h2.6667v2h-2.6667v2h2.8c0.3345 1.6479 1.2768 3.075 2.5827 4.0372l-1.989 4.351 1.2126 0.5544zm1.634-6.7814c-0.96522-0.855-1.5737-2.1037-1.5737-3.4945v-4c0-2.5773 2.0893-4.6667 4.6667-4.6667 0.80034 0 1.5536 0.20149 2.2119 0.55651l-5.305 11.605zm7.567-8.8258 1.0786-2.3595c0.5878 0.88256 0.9708 1.9132 1.0811 3.0241h2.6996v2h-2.6667v2h2.6667v2h-2.8c-0.6177 3.043-3.3081 5.3334-6.5333 5.3334-0.33229 0-0.65891-0.0244-0.97816-0.0713l0.88215-1.9297c0.03193 6e-4 0.06393 1e-3 0.09601 1e-3 2.5773 0 4.6666-2.0894 4.6666-4.6667v-4c0-0.46256-0.0673-0.9094-0.1926-1.3313z",clipRule:"evenodd",fill:"#000",fillRule:"evenodd"})),c=i().createElement("svg",{className:"vertical",viewBox:"0 0 103 25",xmlns:"http://www.w3.org/2000/svg"},i().createElement("path",{d:"m52 0.23486 9 4.0909v6.0984c0 5.1987-3.3389 10.121-8.0471 11.674-0.6186 0.2041-1.2872 0.2041-1.9058 0-4.7082-1.5528-8.0471-6.4749-8.0471-11.674v-6.0984l9-4.0909zm-7 5.3787v4.8106c0 4.4173 2.8602 8.5166 6.6735 9.7743 0.2118 0.0698 0.4412 0.0698 0.653 0 3.8133-1.2577 6.6735-5.357 6.6735-9.7743v-4.8106l-7-3.1818-7 3.1818z",clipRule:"evenodd",fillRule:"evenodd"}),i().createElement("path",{d:"m31.82 13.188h3.1406v-1.2656h-3.1406v-3.2969h-1.2656v3.2969h-3.1406v1.2656h3.1406v3.2969h1.2656v-3.2969z",fill:"#8C8F94"}),i().createElement("path",{d:"m72.82 13.188h3.1406v-1.2656h-3.1406v-3.2969h-1.2656v3.2969h-3.1406v1.2656h3.1406v3.2969h1.2656v-3.2969z",fill:"#8C8F94"}),i().createElement("path",{d:"m88.273 24.276 10.667-23.333-1.2126-0.55434-1.6821 3.6796c-0.9128-0.46945-1.9479-0.73443-3.0449-0.73443-1.4153 0-2.7276 0.44103-3.807 1.1931l-2.6065-2.6065-1.4142 1.4142 2.5684 2.5684c-0.7535 0.96578-1.2468 2.1445-1.3745 3.4307h-2.6996v2h2.6667v2h-2.6667v2h2.8001c0.3344 1.6479 1.2767 3.075 2.5826 4.0372l-1.989 4.351 1.2126 0.5544zm1.634-6.7814c-0.9652-0.855-1.5736-2.1037-1.5736-3.4945v-4c0-2.5773 2.0893-4.6667 4.6667-4.6667 0.8003 0 1.5536 0.20149 2.2119 0.55651l-5.305 11.605zm7.5671-8.8258 1.0786-2.3595c0.5878 0.88256 0.9708 1.9132 1.0811 3.0241h2.6993v2h-2.6664v2h2.6664v2h-2.7997c-0.6177 3.043-3.3081 5.3334-6.5333 5.3334-0.3323 0-0.6589-0.0244-0.9782-0.0713l0.8822-1.9297c0.0319 6e-4 0.0639 1e-3 0.096 1e-3 2.5773 0 4.6666-2.0894 4.6666-4.6667v-4c0-0.46256-0.0673-0.9094-0.1926-1.3313z",clipRule:"evenodd",fillRule:"evenodd"}),i().createElement("path",{d:"m16.092 11.164 0.0188-1.7026 1e-4 -0.03867c0-1.9752-1.8025-3.8666-4.4-3.8666-2.1696 0-3.828 1.3518-4.2735 2.9432l-0.42657 1.5238-1.581-0.0647c-0.0393-0.0016-0.07893-0.0024-0.11886-0.0024-1.587 0-2.9778 1.3444-2.9778 3.1333 0 1.7871 1.3878 3.1305 2.9728 3.1334l0.02863-2e-4h12.052l0.0123 2e-4c1.1943 0 2.2667-1.0162 2.2667-2.4 0-1.2351-0.8646-2.1899-1.8964-2.3684l-1.6776-0.2904zm-10.581-3.2038c-0.06651-0.00271-0.13335-0.00408-0.2005-0.00408-2.7492 0-4.9778 2.2983-4.9778 5.1333 0 2.8351 2.2286 5.1334 4.9778 5.1334l0.02962-2e-4h12.035l0.0236 2e-4c2.3564 0 4.2667-1.97 4.2667-4.4 0-2.1802-1.5375-3.99-3.5554-4.3392l3e-4 -0.0608c0-3.24-2.8653-5.8666-6.4-5.8666-2.9837 0-5.4905 1.8716-6.1994 4.404z",clipRule:"evenodd",fillRule:"evenodd"}))},15893:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(11268),a=n.n(o),c=n(89105),l=n.n(c),u=n(92819),p=n(65736),d=n(11973),h=n(94218),f=n(95554),m=n(66552),g=n(98362),v=n(83);const __=p.__,b=(e,t,n,r)=>{const s=r&&e.showPromotion?e.promotionPercentage:void 0,o=!n&&g.ZS.hasOwnProperty(e.key)?g.ZS[e.key]:void 0;let a,c;switch(e.slug){case"jetpack_backup_t1_yearly":c=v.pz;break;case"jetpack_scan":c=v.yS;break;case"jetpack_anti_spam":c=v.dn;break;case"jetpack_security_t1_yearly":c=v.jZ,"secondary"===t&&(a=__("Popular upgrade","jetpack"))}return i().createElement(h.Z,{icon:c,title:e.title,productSlug:e.slug,description:e.description,features:e.features,currencyCode:e.currencyCode,price:e.fullPrice/12,discount:s,billingDescription:__("/month, paid yearly","jetpack"),callToAction:a,priority:t,illustrationPath:o,checkoutUrl:e.upgradeUrl,checkoutText:(0,p.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Add %s","jetpack"),e.title)})},y=e=>{const{arePromotionsActive:t,availableProductsAndPlans:n,product:s}=e,o=((e,t)=>{const n="security";return!((0,u.isEmpty)(e.includedInPlans)||!t.hasOwnProperty(n)||!e.includedInPlans.includes(n))&&t.security})(s,n);(0,r.useEffect)((()=>{d.Z.tracks.recordEvent("jetpack_product_description_view",{type:s.slug})}),[s]);const a=l()({"jp-product-description":!0,"jp-product-description--split":!!o});return i().createElement(i().Fragment,null,i().createElement("div",{className:a},b(s,"primary",!!o,t),!!o&&b(o,"secondary",!!o,t)),i().createElement("div",{className:"jp-product-description__introductory-pricing"},__("Special introductory pricing, all renewals are at full price.","jetpack")),i().createElement("div",{className:"jp-product-description__money-back-guarantee"},i().createElement(f.N,{text:__("14-day money-back guarantee","jetpack")})))};y.propTypes={product:a().object.isRequired,arePromotionsActive:a().bool,availableProductsAndPlans:a().object.isRequired},y.defaultProps={arePromotionsActive:!1},t.Z=(0,s.$j)((e=>({availableProductsAndPlans:(0,m.by)(e)})))(y)},61161:function(e,t,n){"use strict";n.d(t,{z:function(){return s}});var r=n(66552),i=n(98362);const s=(e,t)=>{const n=`${(0,r.wW)(e)}admin.php?page=jetpack#`;return i.w7.includes(`/product/${t}`)?`${n}/product/${t}`:`${n}/dashboard`}},31818:function(e,t,n){"use strict";n.d(t,{u:function(){return r}});const r={NOT_STARTED:"not-started",SITE_TYPE:"site-type-question",PRODUCT_SUGGESTIONS:"product-suggestions",PRODUCT_PURCHASED:"product-purchased",WOOCOMMERCE:"woocommerce",MONITOR:"monitor",RELATED_POSTS:"related-posts",CREATIVE_MAIL:"creative-mail",SITE_ACCELERATOR:"site-accelerator",SUMMARY:"summary"}},8816:function(e,t,n){"use strict";n.d(t,{H:function(){return m}});var r=n(89105),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(47678),l=n(9913),u=n(68961),p=n(22256),d=n(46188),h=n(11973),f=n(90218);const m=(0,a.$j)(((e,t)=>({isFeatureActive:(0,f.dz)(e,t.featureSlug),...(0,c.mp)(e,t.featureSlug),learnMoreLink:(0,c.gU)(t.featureSlug).descriptionLink})),((e,t)=>({...(0,c.ZS)(e,t.featureSlug)})))((e=>{const{activateFeature:t,configLink:n,configureButtonLabel:r,displayName:a,featureSlug:c,learnMoreLink:f,summaryActivateButtonLabel:m}=e,[g,v]=(0,s.useState)(!1),b=(0,s.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_summary_configure_click",{feature:c})}),[c]),y=(0,s.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_summary_learn_more_click",{feature:c})}),[c]),k=(0,s.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_summary_enable_click",{feature:c}),v(!0),t().finally((()=>{v(!1)}))}),[t,c,v]),w=o().createElement("div",{className:"jp-recommendations-feature-summary__cta"},e.isFeatureActive?o().createElement(l.Z,{href:n,onClick:b},r):o().createElement(d.Z,{primary:!0,isInstalling:g,onClick:k},m));return o().createElement("div",{className:i()("jp-recommendations-feature-summary",{"is-feature-enabled":e.isFeatureActive})},e.isFeatureActive&&o().createElement("div",{className:"jp-recommendations-feature-summary__checkmark"},o().createElement(p.Z,{icon:"checkmark-circle",size:24})),o().createElement("div",{className:"jp-recommendations-feature-summary__display-name"},o().createElement(u.Z,{href:f,onClick:y,target:"_blank",rel:"noopener noreferrer"},a)),o().createElement("div",{className:"jp-recommendations-feature-summary__actions"},w))}))},47678:function(e,t,n){"use strict";n.d(t,{mp:function(){return c},ZS:function(){return l},gU:function(){return u}});var r=n(65736),i=n(19570),s=n(66552),o=n(17752),a=n(61744);const __=r.__,c=(e,t)=>{switch(t){case"creative-mail":return{configureButtonLabel:__("Settings","jetpack"),displayName:__("Creative Mail","jetpack"),summaryActivateButtonLabel:__("Install","jetpack"),configLink:(0,s.wW)(e)+"admin.php?page=creativemail"};case"monitor":return{configureButtonLabel:__("Settings","jetpack"),displayName:__("Downtime Monitoring","jetpack"),summaryActivateButtonLabel:__("Enable","jetpack"),configLink:"#/settings?term=monitor"};case"related-posts":return{configureButtonLabel:__("Settings","jetpack"),displayName:__("Related Posts","jetpack"),summaryActivateButtonLabel:__("Enable","jetpack"),configLink:"#/settings?term=related%20posts"};case"site-accelerator":return{configureButtonLabel:__("Settings","jetpack"),displayName:__("Site Accelerator","jetpack"),summaryActivateButtonLabel:__("Enable","jetpack"),configLink:"#/settings?term=cdn"};case"woocommerce":return{configureButtonLabel:__("Settings","jetpack"),displayName:__("WooCommerce","jetpack"),summaryActivateButtonLabel:__("Install","jetpack"),configLink:(0,s.wW)(e)+"admin.php?page=wc-admin&path=%2Fsetup-wizard"};default:throw`Unknown feature slug in mapStateToSummaryFeatureProps() recommendations/feature-utils.js: ${t}`}},l=(e,t)=>{switch(t){case"creative-mail":return{activateFeature:()=>i.ZP.installPlugin("creative-mail-by-constant-contact","recommendations").then((()=>{e((0,a.s4)())}))};case"monitor":return{activateFeature:()=>e((0,o.VP)({monitor:!0}))};case"related-posts":return{activateFeature:()=>e((0,o.VP)({"related-posts":!0}))};case"site-accelerator":return{activateFeature:()=>e((0,o.VP)({photon:!0,"photon-cdn":!0,tiled_galleries:!0,"tiled-gallery":!0}))};case"woocommerce":return{activateFeature:()=>i.ZP.installPlugin("woocommerce","recommendations").then((()=>{e((0,a.s4)())}))};default:throw`Unknown feature slug in mapDispatchToProps recommendations/feature-utils.js: ${t}`}},u=e=>{switch(e){case"creative-mail":return{progressValue:"83",question:__("Would you like to turn site visitors into subscribers with Creative Mail?","jetpack"),description:__("The Jetpack <strong>Newsletter Form</strong> combined with <strong>Creative Mail</strong> by Constant Contact can help automatically gather subscribers and send them beautiful emails. <ExternalLink>Learn more</ExternalLink>","jetpack"),descriptionLink:"https://jetpack.com/support/jetpack-blocks/form-block/newsletter-sign-up-form/",ctaText:__("Install Creative Mail","jetpack"),illustrationPath:"/recommendations/creative-mail-illustration.svg"};case"monitor":return{progressValue:"50",question:__("Would you like Downtime Monitoring to notify you if your site goes offline?","jetpack"),description:__("If your site ever goes down, <strong>Downtime Monitoring</strong> will send you an email or push notitification to let you know. <ExternalLink>Learn more</ExternalLink>","jetpack"),descriptionLink:"https://jetpack.com/support/monitor/",ctaText:__("Enable Downtime Monitoring","jetpack"),illustrationPath:"/recommendations/monitor-illustration.svg"};case"related-posts":return{progressValue:"67",question:__("Would you like Related Posts to display at the bottom of your content?","jetpack"),description:__("Displaying <strong>Related Posts</strong> at the end of your content keeps visitors engaged and on your site longer. <ExternalLink>Learn more</ExternalLink>","jetpack"),descriptionLink:"https://jetpack.com/support/related-posts/",ctaText:__("Enable Related Posts","jetpack"),illustrationPath:"/recommendations/related-posts-illustration.jpg"};case"site-accelerator":return{progressValue:"99",question:__("Would you like Site Accelerator to help your site load faster?","jetpack"),description:__("Faster sites get better ranking in search engines and help keep visitors on your site longer. <strong>Site Accelerator</strong> will automatically optimize your image and files. <ExternalLink>Learn more</ExternalLink>","jetpack"),descriptionLink:"https://jetpack.com/support/site-accelerator/",ctaText:__("Enable Site Accelerator","jetpack"),illustrationPath:"/recommendations/site-accelerator-illustration.svg"};case"woocommerce":return{progressValue:"33",question:__("Would you like WooCommerce to power your store?","jetpack"),description:__("We’re partnered with <strong>WooCommerce</strong> — a customizable, open-source eCommerce platform built for WordPress. It’s everything you need to start selling products today. <ExternalLink>Learn more</ExternalLink>","jetpack"),descriptionLink:"https://woocommerce.com/woocommerce-features/",ctaText:__("Install WooCommerce","jetpack"),illustrationPath:"/recommendations/woocommerce-illustration.jpg"};default:throw`Unknown step slug in recommendations/question: ${e}`}}},29955:function(e,t,n){"use strict";n.d(t,{V:function(){return _}});var r=n(99196),i=n.n(r),s=n(12901),o=n(2620),a=n(65736),c=n(24299),l=n(95189),u=n(42897),p=n(8931),d=n(30018),h=n(76563),f=n(76287),m=n(83361),g=n(9477),v=n(27219),b=n(15142),y=n(90218),k=n(79644),w=n(31818);const __=a.__,_=(0,o.$j)((e=>({isLoading:!(0,y.WA)(e),step:(0,y.TO)(e)})))((e=>{const{isLoading:t,step:n}=e;let r;switch(n){case w.u.NOT_STARTED:case w.u.SITE_TYPE:r="/site-type";break;case w.u.PRODUCT_SUGGESTIONS:r="/product-suggestions";break;case w.u.PRODUCT_PURCHASED:r="/product-purchased";break;case w.u.WOOCOMMERCE:r="/woocommerce";break;case w.u.MONITOR:r="/monitor";break;case w.u.RELATED_POSTS:r="/related-posts";break;case w.u.CREATIVE_MAIL:r="/creative-mail";break;case w.u.SITE_ACCELERATOR:r="/site-accelerator";break;case w.u.SUMMARY:r="/summary";break;default:throw`Unknown step ${n} in RecommendationsComponent`}return i().createElement(i().Fragment,null,i().createElement(h.Z,null),i().createElement(f.Z,null),i().createElement(m.Z,null),i().createElement(g.Z,null),i().createElement(v.Z,null),i().createElement(b.Z,null),t?i().createElement("div",{className:"jp-recommendations__loading"},i().createElement(k.D,{altText:__("Loading recommendations","jetpack")})):i().createElement(s.rs,null,i().createElement(s.l_,{exact:!0,from:"/recommendations",to:"/recommendations"+r}),i().createElement(s.AW,{path:"/recommendations/site-type"},i().createElement(p.g,null)),i().createElement(s.AW,{path:"/recommendations/product-suggestions"},i().createElement(l.V,null)),i().createElement(s.AW,{path:"/recommendations/product-purchased"},i().createElement(u.Y,null)),i().createElement(s.AW,{path:"/recommendations/woocommerce"},i().createElement(c.Q,{stepSlug:"woocommerce"})),i().createElement(s.AW,{path:"/recommendations/monitor"},i().createElement(c.Q,{stepSlug:"monitor"})),i().createElement(s.AW,{path:"/recommendations/related-posts"},i().createElement(c.Q,{stepSlug:"related-posts"})),i().createElement(s.AW,{path:"/recommendations/creative-mail"},i().createElement(c.Q,{stepSlug:"creative-mail"})),i().createElement(s.AW,{path:"/recommendations/site-accelerator"},i().createElement(c.Q,{stepSlug:"site-accelerator"})),i().createElement(s.AW,{path:"/recommendations/summary"},i().createElement(d.E,null))))}))},42897:function(e,t,n){"use strict";n.d(t,{Y:function(){return g}});var r=n(99196),i=n.n(r),s=n(2620),o=n(92819),a=n(65736),c=n(10618),l=n(46576),u=n(79644),p=n(9913),d=n(22256),h=n(11973),f=n(90218),m=n(88872);const __=a.__,_x=a._x,g=(0,s.$j)((e=>({activePurchases:(0,m.p)(e),isFetchingSiteData:(0,m._5)(e),isFetchingSuggestions:(0,f.at)(e),nextRoute:(0,f.mI)(e),sitePlan:(0,m.UL)(e),suggestions:(0,f.El)(e)})))((e=>{const{nextRoute:t}=e,n=(e=>{let{activePurchases:t,isFetchingSiteData:n,isFetchingSuggestions:r,sitePlan:i,suggestions:s}=e;if(n||r)return!1;if(!s||!(0,o.isArray)(s))return!1;const a=s.find((e=>e.slug===i.product_slug));if(a)return a;if((0,o.isArray)(t)){const e=s.find((e=>{if(t.find((t=>e.slug===t.product_slug)))return e}));if(e)return e}return!1})(e);if((0,r.useEffect)((()=>{n&&h.Z.tracks.recordEvent("jetpack_recommendations_product_suggestion_purchased",{type:n.slug})}),[n]),!n)return i().createElement(u.D,{altText:__("Loading recommendations","jetpack")});const s=i().createElement("div",{className:"jp-recommendations-product-purchased"},i().createElement("ul",{className:"jp-recommendations-product-purchased__features"},n&&n.features.map(((e,t)=>i().createElement("li",{className:"jp-recommendations-product-purchased__feature",key:t},i().createElement(d.Z,{icon:"checkmark"}),e)))),i().createElement(p.Z,{primary:!0,className:"jp-recommendations-product-purchased__next",href:t},_x("Configure your site","Recommendations Product Purchased","jetpack")));return i().createElement(l.X,{progressBar:i().createElement(c.Z,{color:"#00A32A",value:"33"}),question:__("Your plan has been upgraded!","jetpack"),description:__("You now have access to these benefits:","jetpack"),illustrationPath:"recommendations/product-purchased-illustration.svg",answer:s})}))},3722:function(e,t,n){"use strict";n.d(t,{C:function(){return f}});var r=n(89105),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(87279),p=n(11973),d=n(90218);const h=e=>{let{answerKey:t,checked:n,info:r,title:s,updateCheckboxAnswer:o}=e;const l=(0,a.useCallback)((e=>{if("checkbox"!==e.target.type)return;o({[t]:!n})}),[t,n,o]),d=(0,a.useCallback)((e=>{e.stopPropagation()}),[]),h=(0,a.useCallback)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_site_type_popover_click",{type:t.replace("-","_")})}),[t]);return c().createElement("div",{className:i()("jp-checkbox-answer__container",{checked:n}),onClick:l,onKeyPress:l,role:"checkbox","aria-checked":n,tabIndex:0},c().createElement("div",{className:"jp-checkbox-answer__checkbox"},c().createElement("input",{id:t,type:"checkbox",defaultChecked:n,tabIndex:-1})),c().createElement("label",{htmlFor:t,className:"jp-checkbox-answer__title"},s),c().createElement("div",{className:"jp-checkbox-answer__info",onClick:d,onKeyPress:d,role:"presentation"},c().createElement(u.Z,{position:"top right",onClick:h},r)))};h.propTypes={answerKey:o().string.isRequired,info:o().string.isRequired,title:o().string.isRequired};const f=(0,l.$j)(((e,t)=>({checked:(0,d.$q)(e,t.answerKey)})),(e=>({updateCheckboxAnswer:t=>e((0,d.x5)(t))})))(h)},24299:function(e,t,n){"use strict";n.d(t,{Q:function(){return m}});var r=n(10618),i=n(69307),s=n(65736),o=n(99196),a=n.n(o),c=n(2620),l=n(47678),u=n(46576),p=n(9913),d=n(68961),h=n(11973),f=n(90218);const __=s.__,m=(0,c.$j)(((e,t)=>({nextRoute:(0,f.mI)(e),...(0,l.gU)(t.stepSlug)})),((e,t)=>({addSelectedRecommendation:t=>e((0,f.Pq)(t)),addSkippedRecommendation:t=>e((0,f.J_)(t)),updateRecommendationsStep:t=>e((0,f.OC)(t)),...(0,l.ZS)(e,t.stepSlug)})))((e=>{const{activateFeature:t,addSelectedRecommendation:n,addSkippedRecommendation:s,ctaText:c,description:l,descriptionLink:f,illustrationPath:m,nextRoute:g,progressValue:v,question:b,stepSlug:y,updateRecommendationsStep:k}=e;(0,o.useEffect)((()=>{k(y)}),[y,k]);const w=(0,o.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommended_feature_learn_more_click",{feature:y})}),[y]),_=(0,o.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommended_feature_enable_click",{feature:y}),n(y),t()}),[t,n,y]),E=(0,o.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommended_feature_decide_later_click",{feature:y}),s(y)}),[s,y]);return a().createElement(u.X,{progressBar:a().createElement(r.Z,{color:"#00A32A",value:v}),question:b,description:(0,i.createInterpolateElement)(l,{strong:a().createElement("strong",null),ExternalLink:a().createElement(d.Z,{href:f,target:"_blank",icon:!0,iconSize:16,onClick:w})}),answer:a().createElement("div",{className:"jp-recommendations-question__install-section"},a().createElement(p.Z,{primary:!0,href:g,onClick:_},c),a().createElement("a",{href:g,onClick:E},__("Not now","jetpack"))),illustrationPath:m})}))},8978:function(e,t,n){"use strict";n.d(t,{A:function(){return b}});var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(78850),u=n(71415),p=n(9913),d=n(68961),h=n(11973),f=n(66552),m=n(90218);const __=c.__,g=e=>{let{product:t,siteAdminUrl:n,siteRawUrl:r}=e;return(0,u.Z)("jetpack-recommendations-product-checkout",{site:r,path:t.slug,query:`redirect_to=${n}admin.php?jp-react-redirect=product-purchased`})},v=e=>{const{product:t,addSelectedRecommendation:n}=e,r=(0,s.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_product_suggestion_click",{type:t.slug}),n("product-suggestions")}),[t,n]),i=(0,s.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_product_suggestion_learn_more_click",{type:t.slug})}),[t]),a=(0,l.LR)(t.cost,t.currency_code);return o().createElement("div",{className:"jp-recommendations-product-suggestion-item jp-recommendations-product-suggestion__item"},o().createElement("div",{className:"jp-recommendations-product-suggestion-item__content"},o().createElement("h2",{className:"jp-recommendations-product-suggestion-item__title"},t.title),o().createElement("p",{className:"jp-recommendations-product-suggestion-item__description"},t.description),o().createElement("div",{className:"jp-recommendations-product-suggestion-item__price"},o().createElement("h3",{className:"jp-recommendations-product-suggestion-item__raw-price"},o().createElement("sup",{className:"jp-recommendations-product-suggestion-item__currency-symbol"},a.symbol),o().createElement("span",{className:"jp-recommendations-product-suggestion-item__price-integer"},a.integer),o().createElement("sup",{className:"jp-recommendations-product-suggestion-item__price-fraction"},a.fraction)),o().createElement("span",{className:"jp-recommendations-product-suggestion-item__billing-time-frame"},t.cost_timeframe,",",o().createElement("br",null),t.billing_timeframe)),o().createElement("div",{className:"jp-recommendations-product-suggestion-item__actions"},o().createElement(p.Z,{className:"jp-recommendations-product-suggestion-item__checkout-button",primary:!0,href:g(e),onClick:r},(0,c.sprintf)(
+/* translators: %s: Name of a Jetpack product. */
+__("Continue with %s","jetpack"),t.title)),!!t.cta_link&&!!t.cta_text&&o().createElement(d.Z,{className:"jp-recommendations-product-suggestion-item__external-link",href:t.cta_link,target:"_blank",icon:!0,iconSize:16,onClick:i,children:t.cta_text}))))};v.propTypes={product:i().object.isRequired};const b=(0,a.$j)((e=>({siteAdminUrl:(0,f.wW)(e),siteRawUrl:(0,f.JR)(e)})),(e=>({addSelectedRecommendation:t=>e((0,m.Pq)(t))})))(v)},95189:function(e,t,n){"use strict";n.d(t,{V:function(){return m}});var r=n(99196),i=n.n(r),s=n(2620),o=n(12901),a=n(65736),c=n(10618),l=n(79644),u=n(46576),p=n(8978),d=n(95554),h=n(11973),f=n(90218);const __=a.__,_x=a._x,m=(0,s.$j)((e=>({nextRoute:(0,f.mI)(e),suggestions:(0,f.El)(e),isFetchingSuggestions:(0,f.at)(e),isProductSuggestionsAvailable:(0,f.sB)(e)})),(e=>({addSkippedRecommendation:t=>e((0,f.J_)(t)),updateRecommendationsStep:t=>e((0,f.OC)(t))})))((e=>{const{addSkippedRecommendation:t,nextRoute:n,isFetchingSuggestions:s,isProductSuggestionsAvailable:a,updateRecommendationsStep:f,suggestions:m}=e;(0,r.useEffect)((()=>{f("product-suggestions")}),[f]);const g=(0,r.useCallback)((()=>{h.Z.tracks.recordEvent("jetpack_recommendations_product_suggestions_decide_later_click"),t("product-suggestions")}),[t]);if(s)return i().createElement(l.D,{altText:__("Loading recommendations","jetpack")});if(!a)return i().createElement(o.l_,{to:n.substring(1)});const v=i().createElement("div",{className:"jp-recommendations-product-suggestion__container"},i().createElement("div",{className:"jp-recommendations-product-suggestion__items"},m.map(((e,t)=>i().createElement(p.A,{key:t,product:e})))),i().createElement("div",{className:"jp-recommendations-product-suggestion__introductory-pricing"},__("Special introductory pricing, all renewals are at full price.","jetpack")),i().createElement("div",{className:"jp-recommendations-product-suggestion__money-back-guarantee"},i().createElement(d.N,{text:__("14-day money-back guarantee","jetpack")})),i().createElement("a",{className:"jp-recommendations-product-suggestion__skip",href:n,onClick:g},__("Decide later","jetpack")));return i().createElement(u.X,{progressBar:i().createElement(c.Z,{color:"#00A32A",value:"33"}),question:_x("Choose a plan","Recommendations Product Suggestions","jetpack"),description:_x("These are the most popular Jetpack plans for sites like yours:","Recommendations Product Suggestions","jetpack"),answer:v})}))},46576:function(e,t,n){"use strict";n.d(t,{X:function(){return p}});var r=n(89105),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(98486);const __=l.__,p=e=>{const{answer:t,description:n,illustrationPath:r,progressBar:s,question:o}=e;return c().createElement("div",{className:i()("jp-recommendations-question__main",{"jp-recommendations-question__main--with-illustration":!!r})},c().createElement("div",{className:"jp-recommendations-question__content"},c().createElement("div",{className:"jp-recommendations-question__progress-bar"},s),c().createElement("h1",{className:"jp-recommendations-question__question"},o),c().createElement("p",{className:"jp-recommendations-question__description"},n),c().createElement("div",{className:"jp-recommendations-question__answer"},t)),r&&c().createElement("div",{className:"jp-recommendations-question__illustration-container"},c().createElement("img",{className:"jp-recommendations-question__illustration-background",src:u.hp+"recommendations/background.svg",alt:__("An illustration of a browser window used as the container to visually represent the current question.","jetpack")}),c().createElement("img",{className:"jp-recommendations-question__illustration-foreground",src:u.hp+r,alt:(0,l.sprintf)(
+/* translators: %s: Name of the current Jetpack Assistant question (read: step). */
+__("Illustration used to visually represent the current question: %s.","jetpack"),o)})))};p.propTypes={answer:o().element.isRequired,description:o().oneOfType([o().string,o().element]).isRequired,illustrationPath:o().string,progressBar:o().element.isRequired,question:o().oneOfType([o().string,o().element]).isRequired}},8931:function(e,t,n){"use strict";n.d(t,{g:function(){return f}});var r=n(99196),i=n.n(r),s=n(2620),o=n(65736),a=n(10618),c=n(46576),l=n(3722),u=n(9913),p=n(11973),d=n(66552),h=n(90218);const __=o.__,f=(0,s.$j)((e=>({nextRoute:(0,h.mI)(e),siteTitle:(0,d.aW)(e),answers:{personal:(0,h.$q)(e,"site-type-personal"),business:(0,h.$q)(e,"site-type-business"),store:(0,h.$q)(e,"site-type-store"),other:(0,h.$q)(e,"site-type-other")}})),(e=>({updateRecommendationsStep:t=>e((0,h.OC)(t)),saveRecommendationsData:()=>e((0,h.u8)())})))((e=>{const{answers:t,nextRoute:n,saveRecommendationsData:s,siteTitle:d,updateRecommendationsStep:h}=e;(0,r.useEffect)((()=>{h("site-type-question")}),[h]);const f=(0,r.useCallback)((()=>{s(),p.Z.tracks.recordEvent("jetpack_recommendations_site_type_answered",t)}),[t,s]),m=i().createElement("div",{className:"jp-recommendations-question__site-type-answer-container"},i().createElement("div",{className:"jp-recommendations-question__site-type-checkboxes"},i().createElement(l.C,{answerKey:"site-type-personal",title:__("Personal","jetpack"),info:__("Personal sites usually include blogs, resume sites, weddings or other events, and hobby sites.","jetpack")}),i().createElement(l.C,{answerKey:"site-type-business",title:__("Business","jetpack"),info:__("Business sites usually include shops, services like lawyers, or plumbers, and advertisers or influencers.","jetpack")}),i().createElement(l.C,{answerKey:"site-type-store",title:__("Store","jetpack"),info:__("Stores typically include online e-commerce stores selling goods, services, or digital downloads.","jetpack")}),i().createElement(l.C,{answerKey:"site-type-other",title:__("Other","jetpack"),info:__("Other sites may include non-profits, colleges or schools, apps, real-estate, or others.","jetpack")})),i().createElement(u.Z,{primary:!0,href:n,onClick:f},__("Continue","jetpack")),i().createElement("div",{className:"jp-recommendations-site-type-question__continue-description"},__("All of Jetpack’s great features await you and we’ll recommend some of our favorites.","jetpack")));return i().createElement(c.X,{progressBar:i().createElement(a.Z,{color:"#00A32A",value:"17"}),question:
+/* translators: placeholder is the title of the site */
+(0,o.sprintf)(__("What type of site is %s?","jetpack"),d),description:__("This assistant will help you get the most from Jetpack. Tell us more about your goals and we’ll recommend relevant features to help you succeed.","jetpack"),answer:m,illustrationPath:"recommendations/site-type-illustration.jpg"})}))},41596:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(99196),i=n.n(r);const s=e=>{const{content:t,illustrationPath:n}=e;return i().createElement("div",{className:"jp-recommendations-sidebar-card"},i().createElement("div",{className:"jp-recommendations-sidebar-card__illustration-container"},i().createElement("div",{className:"jp-recommendations-sidebar-card__illustration"},i().createElement("img",{src:n,alt:""}))),i().createElement("div",{className:"jp-recommendations-sidebar-card__content"},t))}},85821:function(e,t,n){"use strict";n.d(t,{K:function(){return d}});var r=n(69307),i=n(65736),s=n(99196),o=n.n(s),a=n(76238),c=n(41596),l=n(22256),u=n(98486),p=n(11973);const __=i.__,d=()=>{const e=[__("Refined post and page editor","jetpack"),__("Manage multiple sites from one dashboard","jetpack"),__("Multi-site plugin management","jetpack"),__("Free stock photo library","jetpack"),__("Update your site from any device","jetpack")];(0,s.useEffect)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_display",{type:"mobile_app"})}),[]);const t=(0,s.useCallback)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"mobile_app_wpcom"})}),[]),n=(0,s.useCallback)((e=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"mobile_app_badge",store:e})}),[]);return o().createElement(c.A,{illustrationPath:u.hp+"/recommendations/mobile-app.svg",content:o().createElement("div",null,o().createElement("h2",null,__("Explore a better editing experience","jetpack")),o().createElement("p",null,(0,r.createInterpolateElement)(__("With Jetpack, you have <strong>free access</strong> to managing your site with <a>WordPress.com</a> and the Android and iOS WordPress apps.","jetpack"),{strong:o().createElement("strong",null),a:o().createElement("a",{href:"https://wordpress.com",target:"_blank",rel:"noreferrer",onClick:t})})),o().createElement("ul",{className:"jp-recommendations-sidebar-card__features"},e.map((e=>o().createElement("li",null,o().createElement(l.Z,{icon:"checkmark-circle"}),e)))),o().createElement("div",{className:"jp-recommendations-sidebar-card__apps-badge"},o().createElement(a.Z,{onBadgeClick:n,storeName:"ios",utm_source:"jetpack-plugin-recommendations"}),o().createElement(a.Z,{onBadgeClick:n,storeName:"android",utm_source:"jetpack-plugin-recommendations"})))})}},85295:function(e,t,n){"use strict";n.d(t,{c:function(){return m}});var r=n(65736),i=n(99196),s=n.n(i),o=n(2620),a=n(71415),c=n(41596),l=n(9913),u=n(98486),p=n(11973),d=n(81200),h=n(66552),f=n(88872);const __=r.__,m=(0,o.$j)((e=>({siteRawUrl:(0,h.JR)(e),planClass:(0,f.b7)(e)?(0,d.sc)((0,f.Jz)(e).product_slug):(0,d.sc)((0,f.UL)(e).product_slug)})))((e=>{const{planClass:t,siteRawUrl:n}=e;(0,i.useEffect)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_display",{type:"one-click-restores"})}),[]);const o=(0,i.useCallback)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"one_click_restores"})}),[]),h=(0,d.lq)(t)?__("Real-time Backups","jetpack"):__("Daily Backups","jetpack");return s().createElement(c.A,{illustrationPath:u.hp+"/recommendations/one-click-restores.svg",content:s().createElement("div",{className:"jp-recommendations-one-click-restores"},s().createElement("h2",null,__("Enable one-click restores","jetpack")),s().createElement("p",null,(0,r.sprintf)(
+/* translators: placeholder is the name of a backups plan: Daily Backups or Real-time Backups */
+__("Get the most out of your %s. One-click restores ensure you’ll be able to easily restore your site, if anything goes wrong.","jetpack"),h)),s().createElement("p",null,__("Enter your server credentials to enable one-click restores included in your plan.","jetpack")),s().createElement("div",{className:"jp-recommendations-one-click-restores__cta"},s().createElement(l.Z,{primary:!0,href:(0,a.Z)("jetpack-backup-dash-credentials",{site:n}),onClick:o},__("Enable one-click restores","jetpack"))))})}))},82355:function(e,t,n){"use strict";n.d(t,{q:function(){return u}});var r=n(65736),i=n(99196),s=n.n(i),o=n(9913),a=n(22256),c=n(98486),l=n(11973);const __=r.__,u=e=>{const{upgradeUrl:t}=e;(0,i.useEffect)((()=>{l.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_display",{type:"upsell_no_price"})}),[]);const n=(0,i.useCallback)((()=>{l.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"upsell_no_price"})}),[]),r=[__("Robust security to keep your site safe","jetpack"),__("Speed-enhancing performance tools","jetpack"),__("Increase site growth with marketing","jetpack")];return s().createElement("div",{className:"jp-recommendations-product-card-upsell-no-price"},s().createElement("div",{className:"jp-recommendations-product-card-upsell-no-price__header-chrome"},s().createElement("img",{src:c.hp+"/star.svg",alt:""}),__("Recommended premium product","jetpack")),s().createElement("div",{className:"jp-recommendations-product-card-upsell-no-price__padding"},s().createElement("h2",null,__("Powerful security, performance, and marketing","jetpack")),s().createElement("ul",null,r.map((e=>s().createElement("li",{key:e},s().createElement(a.Z,{icon:"checkmark-circle"}),e)))),s().createElement("p",null,__("Explore premium Jetpack product bundles or pick and choose exactly what you need.","jetpack")),s().createElement(o.Z,{primary:!0,href:t,onClick:n,target:"blank",rel:"noopener noreferrer"},__("Learn more","jetpack"),s().createElement(a.Z,{icon:"external"}))))}},65155:function(e,t,n){"use strict";n.d(t,{u:function(){return d}});var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(78850),c=n(9913),l=n(22256),u=n(98486),p=n(11973);const d=e=>{let{billing_timeframe:t,cost_timeframe:n,cta_text:r,currency_code:i,description:d,features:h,header:f,price:m,product_slug:g,title:v,upgradeUrl:b}=e;(0,s.useEffect)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_display",{type:"upsell_with_price",product_slug:g})}),[g]);const y=(0,s.useCallback)((()=>{p.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"upsell_with_price",product_slug:g})}),[g]),k=(0,a.LR)(m,i);return o().createElement("div",{className:"jp-recommendations-product-card-upsell"},o().createElement("div",{className:"jp-recommendations-product-card-upsell__header-chrome"},o().createElement("img",{src:u.hp+"/star.svg",alt:""}),f),o().createElement("div",{className:"jp-recommendations-product-card-upsell__padding"},o().createElement("h1",null,v),o().createElement("p",null,d),o().createElement("div",{className:"jp-recommendations-product-card-upsell__price"},o().createElement("span",{className:"jp-recommendations-product-card-upsell__raw-price"},o().createElement("h2",null,o().createElement("sup",{className:"jp-recommendations-product-card-upsell__currency-symbol"},k.symbol),o().createElement("span",{className:"jp-recommendations-product-card-upsell__price-integer"},k.integer),o().createElement("sup",{className:"jp-recommendations-product-card-upsell__price-fraction"},k.fraction))),o().createElement("span",{className:"jp-recommendations-product-card-upsell__billing-time-frame"},n,o().createElement("br",null),t)),o().createElement(c.Z,{className:"jp-recommendations-product-card-upsell__cta-button",primary:!0,href:b,onClick:y,target:"_blank",rel:"noopener noreferrer"},r,o().createElement(l.Z,{icon:"external"})),o().createElement("ul",{className:"jp-recommendations-sidebar-card__features"},h.map((e=>o().createElement("li",{key:e},o().createElement(l.Z,{icon:"checkmark-circle"}),e))))))};d.propTypes={title:i().string.isRequired,description:i().string.isRequired,upgradeUrl:i().string.isRequired,features:i().arrayOf(i().string)}},92498:function(e,t,n){"use strict";n.d(t,{c:function(){return f}});var r=n(65736),i=n(99196),s=n.n(i),o=n(2620),a=n(71415),c=n(41596),l=n(9913),u=n(22256),p=n(98486),d=n(11973),h=n(66552);const __=r.__,f=(0,o.$j)((e=>({siteRawUrl:(0,h.JR)(e)})))((e=>{const{siteRawUrl:t}=e;(0,i.useEffect)((()=>{d.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_display",{type:"security"})}),[]);const n=(0,i.useCallback)((()=>{d.Z.tracks.recordEvent("jetpack_recommendations_summary_sidebar_click",{type:"security"})}),[]);return s().createElement(c.A,{illustrationPath:p.hp+"/recommendations/manage-security.svg",content:s().createElement("div",null,s().createElement("h2",null,__("Manage your security on Jetpack.com","jetpack")),s().createElement("p",null,__("Did you know you can manage all your backups right from Jetpack.com?","jetpack")),s().createElement("p",null,__("You can also use your included Activity feature to monitor every change that occurs on your site!","jetpack")),s().createElement(l.Z,{primary:!0,href:(0,a.Z)("jetpack-backup",{site:t}),target:"_blank",rel:"noopener noreferrer",onClick:n},__("Manage security on Jetpack.com","jetpack"),s().createElement(u.Z,{icon:"external"})))})}))},30018:function(e,t,n){"use strict";n.d(t,{E:function(){return M}});var r=n(29183),i=n.n(r),s=n(69307),o=n(65736),a=n(89105),c=n.n(a),l=n(92819),u=n(99196),p=n.n(u),d=n(2620),h=n(8816),f=n(79644),m=n(85295),g=n(92498),v=n(85821),b=n(82355),y=n(65155),k=n(68961),w=n(22256),_=n(11973),E=n(66552),C=n(90218),S=n(17752),j=n(61744);const __=o.__,M=(0,d.$j)((e=>{const t=(0,j.bK)(e),n=(0,S.Gw)(e),r=(0,C.jn)(e);return{isFetchingMainData:(0,l.isEmpty)(n)||(0,l.isEmpty)(t),isFetchingSidebarData:(0,l.isEmpty)(r),sidebarCardSlug:(0,C.Xi)(e),siteTypeDisplayName:(0,C.M)(e),summaryFeatureSlugs:(0,C.CI)(e),upgradeUrl:(0,E.Qq)(e,"jetpack-recommendations-backups"),upsell:r}}),(e=>({updateRecommendationsStep:t=>e((0,C.OC)(t))})))((e=>{const{isFetchingMainData:t,isFetchingSidebarData:n,sidebarCardSlug:r,siteTypeDisplayName:a,summaryFeatureSlugs:l,updateRecommendationsStep:d,upgradeUrl:E,upsell:C}=e,S=(0,u.useCallback)((()=>{_.Z.tracks.recordEvent("jetpack_recommended_summary_learn_more_click")}),[]);(0,u.useEffect)((()=>{d("summary")}),[d]);const j=t?p().createElement(f.D,{altText:__("Loading recommendations","jetpack")}):p().createElement(p().Fragment,null,p().createElement("div",{className:"jp-recommendations-summary__configuration"},p().createElement("h1",null,(0,o.sprintf)(
+/* translators: placeholder indicates the type of site, such as "personal site" or "store" */
+__("Nice work! Let’s ensure the features you enabled are configured for your %s.","jetpack"),a)),p().createElement("section",{"aria-labelledby":"enabled-recommendations"},p().createElement("h2",{id:"enabled-recommendations"},__("Recommendations enabled","jetpack")),p().createElement("div",null,l.selected.length>0?l.selected.map((e=>p().createElement(h.H,{key:e,featureSlug:e}))):p().createElement("p",null,p().createElement("em",null,__("You didn’t enable any recommended features. To get the most out of Jetpack, enable some recommendations or explore all Jetpack features.","jetpack"))))),l.skipped.length>0&&p().createElement("section",{"aria-labelledby":"skipped-recommendations"},p().createElement("h2",{id:"skipped-recommendations"},__("Recommendations skipped","jetpack")),p().createElement("div",null,l.skipped.map((e=>p().createElement(h.H,{key:e,featureSlug:e})))))),p().createElement("div",{className:"jp-recommendations-summary__more-features"},p().createElement(w.Z,{icon:"info-outline"}),p().createElement("p",null,(0,s.createInterpolateElement)(__("Curious what else Jetpack has to offer? <ExternalLink>View all Jetpack features</ExternalLink>","jetpack"),{ExternalLink:p().createElement(k.Z,{href:"https://jetpack.com/features/comparison/",target:"_blank",rel:"noopener noreferrer",onClick:S,icon:!0,iconSize:16})}))));let M;if(n)M=p().createElement(f.D,{altText:__("Loading recommendations","jetpack")});else switch(r){case"loading":M=p().createElement(f.D,{altText:__("Loading recommendations","jetpack")});break;case"upsell":M=C.hide_upsell?p().createElement(b.q,{upgradeUrl:E}):p().createElement(y.u,i()({},C,{upgradeUrl:E}));break;case"one-click-restores":M=p().createElement(m.c,null);break;case"manage-security":M=p().createElement(g.c,null);break;case"download-app":M=p().createElement(v.K,null);break;default:throw`Unknown sidebarCardSlug in SummaryComponent: ${r}`}return p().createElement("div",{className:"jp-recommendations-summary"},p().createElement("div",{className:c()("jp-recommendations-summary__content",{isLoading:t})},j),p().createElement("div",{className:c()("jp-recommendations-summary__sidebar",{isLoading:n})},M))}))},70445:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(11268),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(65736),d=n(34606),h=n(5e4),f=n(93107),m=n(19555),g=n(84277),v=n(27006),b=n(66552),y=n(41147),k=n(24951);const __=p.__,w=(0,h.u)(class extends a.Component{constructor(){super(...arguments),i()(this,"handleBannerClick",(e=>()=>this.props.updateOptions({[e]:!0})))}render(){if(!this.props.canManageModules)return null;if(this.props.searchTerm.length<3)return null;const e=["contact-form","enhanced-distribution","json-api","notes"],t=this.props.modules,n=[];return(0,u.forEach)(t,((t,r)=>{if(this.props.isModuleFound(r)&&(0,u.includes)(e,r)){const e=this.props.isOfflineMode&&this.props.isUnavailableInOfflineMode(t.module),i=!this.props.hasConnectedOwner&&this.props.isUnavailableInSiteConnectionMode(t.module);if(e||i)return n.push(c().createElement(_,{key:r,moduleData:t,offlineMode:e,siteConnectionMode:i}));this.props.getOptionValue(t.module)?n.push(c().createElement(_,{key:r,moduleData:t})):n.push(c().createElement(d.Z,{className:"jp-searchable-banner",key:r,callToAction:__("Activate","jetpack"),description:t.description,href:"javascript:void( 0 )",icon:"cog",onClick:this.handleBannerClick(t.module),title:t.name}))}})),c().createElement("div",null,n)}});w.propTypes={searchTerm:o().string},w.defaultProps={searchTerm:""};class _ extends a.Component{render(){const e=this.props.moduleData,t=this.props.offlineMode,n=this.props.siteConnectionMode;return c().createElement(g.Z,{module:e.module,header:e.name,action:e.module,hideButton:!0},c().createElement(v.Z,{disableInOfflineMode:t,disableInSiteConnectionMode:n,module:{module:e.module},support:{link:e.learn_more_button}},e.description),n&&c().createElement(k.Z,{feature:e.module,featureLabel:e.name,text:__("Connect to configure.","jetpack")}))}}t.Z=(0,l.$j)((e=>({modules:(0,f.hU)(e),isModuleFound:t=>(0,m.CX)(e,t),canManageModules:(0,b.pK)(e),isUnavailableInOfflineMode:t=>(0,y.t_)(e,t),isOfflineMode:(0,y.Ex)(e),isUnavailableInSiteConnectionMode:t=>(0,y.IK)(e,t)})))(w)},35177:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(69307),d=n(65736),h=n(11973),f=n(81200),m=n(78919),g=n(28859),v=n(55735),b=n(22256),y=n(75395),k=n(84277),w=n(27006),_=n(15029),E=n(5e4);const __=d.__,_x=d._x,C=(0,E.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"state",{apiKey:this.props.getOptionValue("wordpress_api_key"),delayKeyCheck:!1,currentEvent:{}}),o()(this,"keyChanged",!1),o()(this,"checkApiKeyTyped",(e=>{this.props.checkAkismetKey(e.currentTarget.value),this.keyChanged=!0,this.setState({delayKeyCheck:!1})})),o()(this,"updateText",(e=>{const t=(0,u.assign)({},e);t.currentTarget.value=(0,u.trim)(t.currentTarget.value),this.setState({apiKey:t.currentTarget.value,delayKeyCheck:!0,currentEvent:t},this.debouncedCheckApiKeyTyped(t))})),o()(this,"trackOpenCard",(()=>{h.Z.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"anti-spam"})}))}UNSAFE_componentWillMount(){this.debouncedCheckApiKeyTyped=(0,u.debounce)(this.checkApiKeyTyped,500)}componentDidUpdate(){!this.props.isCheckingAkismetKey&&this.props.isAkismetKeyValid&&this.keyChanged&&!(0,u.isEmpty)(this.state.currentEvent)&&(this.keyChanged=!1,this.props.onOptionChange(this.state.currentEvent))}render(){const e={name:"wordpress_api_key",value:this.state.apiKey,disabled:this.props.isSavingAnyOption("wordpress_api_key"),onChange:this.updateText};let t="",n=__("Checking your spam protection…","jetpack"),r=(0,p.createInterpolateElement)(__("If you don't already have an API key, then <a>get your API key here</a>, and you'll be guided through the process of getting one.","jetpack"),{a:c().createElement("a",{href:"https://akismet.com/wordpress/"})});return null===this.props.isAkismetKeyValid?(e.value=__("Fetching key…","jetpack"),e.disabled=!0,r=!1):!this.props.isDirty()&&""===this.props.getSettingCurrentValue("wordpress_api_key")&&this.props.isAkismetKeyValid?(e.value=__("A valid key has been set in your site's configuration.","jetpack"),e.isValid=!0,e.disabled=!0,n=__("Your site is protected from spam.","jetpack"),r=__("It looks like your API key has been set globally.","jetpack"),t=c().createElement(g.Z,{text:__("Your Anti-spam key is valid.","jetpack")})):""===this.state.apiKey?(e.value="",n=__("Your site needs an Anti-spam key.","jetpack")):this.state.delayKeyCheck||this.props.isCheckingAkismetKey?this.props.isCheckingAkismetKey&&(t=c().createElement("div",{className:"form-input-validation is-warning"},c().createElement("span",null,c().createElement(b.Z,{size:24,icon:"sync"}),__("Checking key…","jetpack"))),r=!1):!1===this.props.isAkismetKeyValid?(t=c().createElement(g.Z,{isError:!0,text:(0,p.createInterpolateElement)(__("There's a problem with your Anti-spam API key. <a>Learn more</a>.","jetpack"),{a:c().createElement("a",{href:"https://docs.akismet.com/getting-started/api-key/"})})}),e.isError=!0,n=__("Your site is not protected from spam.","jetpack")):(t=c().createElement(g.Z,{text:__("Your Anti-spam key is valid.","jetpack")}),e.isValid=!0,n=__("Your site is protected from spam.","jetpack"),r=!1),c().createElement(k.Z,i()({},this.props,{header:_x("Anti-spam","Settings header","jetpack"),saveDisabled:this.props.isSavingAnyOption("wordpress_api_key"),feature:f.V3}),c().createElement(m.Z,{onOpen:this.trackOpenCard,header:n},c().createElement(w.Z,{support:{text:__("Removes spam from comments and contact forms.","jetpack"),link:"https://akismet.com/jetpack/"}},c().createElement(v.C_,null,c().createElement(v.lX,null,c().createElement("span",{className:"jp-form-label-wide"},__("Your API key","jetpack")),c().createElement(_.Z,e),t),r&&c().createElement("p",{className:"jp-form-setting-explanation"},r)))))}});t.Z=(0,l.$j)((e=>({isAkismetKeyValid:(0,y._2)(e),isCheckingAkismetKey:(0,y.gw)(e)})),(e=>({checkAkismetKey:function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e((0,y.Bt)(t))}})))(C)},64067:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(11268),u=n.n(l),p=n(2620),d=n(92819),h=n(69307),f=n(65736),m=n(71415),g=n(11973),v=n(34606),b=n(60742),y=n(81200),k=n(75395),w=n(88872),_=n(93107),E=n(28865),C=n(9477),S=n(84277),j=n(27006),M=n(66552),x=n(5e4);const __=f.__,_x=f._x,_n=f._n;class N extends a.Component{render(){return c().createElement(S.Z,{header:_x("Backups and security scanning","Settings header","jetpack"),hideButton:!0,action:"scan"},c().createElement(j.Z,{disableInOfflineMode:!0,module:{module:"backups"},support:{text:__("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error.","jetpack"),link:(0,m.Z)("vaultpress-help-get-to-know")}},__("Checking site status…","jetpack")))}}class A extends a.Component{constructor(){super(...arguments),o()(this,"getCardText",(()=>{if(this.props.isOfflineMode)return __("Unavailable in Offline Mode.","jetpack");const{title:e,icon:t,description:n,url:r}=this.getRewindMessage();return c().createElement(v.Z,{title:e,icon:t,feature:"rewind",description:n,className:"is-upgrade-premium jp-banner__no-border",href:r})}))}getRewindMessage(){const{siteRawUrl:e,rewindState:t}=this.props;switch(t){case"provisioning":return{title:__("Provisioning","jetpack"),icon:"info",description:__("Backups and Scan are being configured for your site.","jetpack"),url:""};case"awaiting_credentials":return{title:__("Awaiting credentials","jetpack"),icon:"notice",description:__("You need to enter your server credentials to finish configuring Backups and Scan.","jetpack"),url:(0,m.Z)("jetpack-settings-security-credentials",{site:e})};case"active":return{title:__("Active","jetpack"),icon:"checkmark-circle",description:__("Your site is connected to Jetpack Backup and Scan.","jetpack"),url:(0,m.Z)("calypso-activity-log",{site:e})};default:return{title:__("Oops!","jetpack"),icon:"info",description:__("The Jetpack Backup and Scan status could not be retrieved at this time.","jetpack"),url:""}}}render(){return c().createElement(S.Z,i()({feature:"rewind"},this.props,{header:_x("Backups and security scanning","Settings header","jetpack"),action:"rewind",hideButton:!0}),this.getCardText())}}o()(A,"propTypes",{isOfflineMode:u().bool,siteRawUrl:u().string,rewindState:u().string}),o()(A,"defaultProps",{isOfflineMode:!1,siteRawUrl:"",rewindState:""});const O=(0,x.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"toggleModule",((e,t)=>{this.props.updateFormStateOptionValue(e,!t)})),o()(this,"trackConfigureClick",(()=>{g.Z.tracks.recordJetpackClick("configure-scan")}))}getCardText(){const e=(0,d.get)(this.props.vaultPressData,["data","features","backups"],!1),t=(0,d.get)(this.props.vaultPressData,["data","features","security"],!1),n=(0,y.sc)(this.props.sitePlan.product_slug);let r="";if(this.props.isOfflineMode)return __("Unavailable in Offline Mode.","jetpack");if(e&&t){const e=this.props.hasThreats;return e?c().createElement("div",null,c().createElement("strong",null,(0,f.sprintf)(
+/* Translators: placeholder is a number (of threats). */
+_n("Uh oh, %s threat found.","Uh oh, %s threats found.",e,"jetpack"),(0,E.Y)(e))),c().createElement("br",null),c().createElement("br",null),(0,h.createInterpolateElement)(__("<a>View details</a>","jetpack"),{a:c().createElement("a",{href:(0,m.Z)("vaultpress-dashboard")})}),c().createElement("br",null),(0,h.createInterpolateElement)(__("<a>Contact Support</a>","jetpack"),{a:c().createElement("a",{href:(0,m.Z)("jetpack-support")})})):__("Your site is connected to VaultPress for backups and security scanning.","jetpack")}if(e&&(0,d.includes)(["is-free-plan","is-personal-plan","is-daily-backup-plan","is-realtime-backup-plan"],n))return __("Your site is connected to VaultPress for backups.","jetpack");switch(n){case"is-personal-plan":r=__("You have paid for backups but they're not yet active.","jetpack"),r+=" "+__('Click "Set Up" to finish installation.',"jetpack");break;case"is-premium-plan":case"is-business-plan":r=__("You have paid for backups and security scanning but they’re not yet active.","jetpack"),r+=" "+__('Click "Set Up" to finish installation.',"jetpack")}return r}render(){if(!this.props.showBackups)return null;const e=(0,d.get)(this.props.vaultPressData,["data","features","security"],!1),t=(0,d.get)(this.props.rewindStatus,["state"],!1),n=!1!==t,r="N/A"!==this.props.vaultPressData&&!1!==(0,d.get)(this.props.vaultPressData,["data"],!1);return n||!this.props.vaultPressActive||r?(0,d.includes)(["provisioning","awaiting_credentials","active"],t)?c().createElement(A,i()({},this.props,{rewindState:t})):c().createElement(S.Z,i()({feature:y.eM},this.props,{header:_x("Backups and security scanning","Settings header","jetpack"),action:"scan",hideButton:!0}),c().createElement(C.Z,null),c().createElement(j.Z,{disableInOfflineMode:!0,module:{module:"backups"},support:{text:__("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error.","jetpack"),link:(0,m.Z)("vaultpress-help-get-to-know")}},this.getCardText()),!this.props.isUnavailableInOfflineMode("backups")&&e&&c().createElement(b.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,target:"_blank",href:(0,m.Z)("vaultpress-dashboard")},__("Configure your Security Scans","jetpack"))):c().createElement(N,null)}});t.Z=(0,p.$j)((e=>({sitePlan:(0,w.UL)(e),vaultPressData:(0,k.XK)(e),hasThreats:(0,k._R)(e),vaultPressActive:(0,_.mp)(e,"vaultpress"),showBackups:(0,M.xR)(e)})))(O)},24295:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(92819),p=n(65736),d=n(60742),h=n(93107),f=n(17752),m=n(41147),g=n(75395),v=n(19555),b=n(61744),y=n(27219),k=n(65125),w=n(81200),_=n(88872),E=n(64067),C=n(35177),S=n(67306),j=n(3013),M=n(24682),x=n(95835);const __=p.__;class N extends a.Component{constructor(){super(...arguments),o()(this,"isAkismetFound",(()=>{if(!this.props.isPluginActive("akismet/akismet.php"))return!1;if(this.props.searchTerm){const e=this.props.isPluginInstalled("akismet/akismet.php");return["akismet","antispam","spam","comments",e.Description,e.PluginURI].join(" ").toLowerCase().indexOf(this.props.searchTerm.toLowerCase())>-1}return!0}))}render(){const e={settings:this.props.settings,getModule:this.props.module,isOfflineMode:this.props.isOfflineMode,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode,rewindStatus:this.props.rewindStatus,siteRawUrl:this.props.siteRawUrl,hasConnectedOwner:this.props.hasConnectedOwner},t=this.props.isModuleFound("protect"),n=this.props.isModuleFound("sso"),r=this.isAkismetFound(),s="active"===(0,u.get)(this.props.rewindStatus,["state"],!1),o=this.props.isModuleFound("vaultpress")||s,a=this.props.isModuleFound("monitor"),l=this.props.searchTerm;if(!l&&!this.props.active)return null;if(!(n||t||r||o||a))return null;const p=(0,w.sc)((0,u.get)(this.props.sitePlan,["product_slug"])),h=this.props.activeSitePurchases.map((e=>(0,w.sc)(e.product_slug))),f="is-personal-plan"===p,m="is-free-plan"===p&&["is-daily-backup-plan","is-realtime-backup-plan","is-backup-t1-plan","is-backup-t2-plan"].filter((e=>h.includes(e))).length>0,g=f||m?c().createElement(S.N,i()({},e,{vaultPressData:this.props.vaultPressData})):c().createElement(E.Z,e);return c().createElement("div",null,c().createElement(y.Z,null),c().createElement(d.Z,{title:l?__("Security","jetpack"):__("Your site is protected by Jetpack. You’ll be notified if anything needs attention.","jetpack",0),className:"jp-settings-description"}),o&&g,a&&c().createElement(j.u,e),r&&c().createElement(c().Fragment,null,c().createElement(C.Z,e),c().createElement(k.Z,null)),t&&c().createElement(M.C,e),n&&c().createElement(x.y,e))}}o()(N,"displayName","SecuritySettings"),t.Z=(0,l.$j)((e=>({activeSitePurchases:(0,_.nl)(e),module:t=>(0,h.rT)(e,t),settings:(0,f.Gw)(e),sitePlan:(0,_.UL)(e),isOfflineMode:(0,m.Ex)(e),isUnavailableInOfflineMode:t=>(0,m.t_)(e,t),isModuleFound:t=>(0,v.CX)(e,t),isPluginActive:t=>(0,b.TB)(e,t),isPluginInstalled:t=>(0,b.P8)(e,t),vaultPressData:(0,g.XK)(e),hasConnectedOwner:(0,m.it)(e)})))(N)},67306:function(e,t,n){"use strict";n.d(t,{N:function(){return b}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(11268),u=n.n(l),p=n(92819),d=n(65736),h=n(71415),f=n(34606),m=n(84277),g=n(27006),v=n(81200);const __=d.__,_x=d._x;class b extends a.Component{constructor(){super(...arguments),o()(this,"getVaultPressContent",(()=>c().createElement(g.Z,{module:{module:"backups"},support:{text:__("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error.","jetpack"),link:(0,h.Z)("jetpack-support-backup")}},__("Your site is connected to VaultPress for backups.","jetpack")))),o()(this,"getRewindBanner",(()=>{const{title:e,icon:t,description:n,url:r}=this.getRewindMessage();return c().createElement(f.Z,{title:e,icon:t,feature:"rewind",description:n,className:"is-upgrade-premium jp-banner__no-border",href:r})}))}getRewindMessage(){const{siteRawUrl:e,rewindStatus:t}=this.props;switch((0,p.get)(t,"state",!1)){case"provisioning":return{title:__("Provisioning","jetpack"),icon:"info",description:__("Jetpack Backup is being configured for your site.","jetpack"),url:""};case"awaiting_credentials":return{title:__("Awaiting credentials","jetpack"),icon:"notice",description:__("You need to enter your server credentials to finish configuring Jetpack Backup.","jetpack"),url:(0,h.Z)("jetpack-settings-security-credentials",{site:e})};case"active":return{title:__("Active","jetpack"),icon:"checkmark-circle",description:__("Your site is connected to Jetpack Backup.","jetpack"),url:(0,h.Z)("calypso-activity-log",{site:e})};default:return{title:__("Oops!","jetpack"),icon:"info",description:__("The Jetpack Backup status could not be retrieved at this time.","jetpack"),url:""}}}render(){const{rewindStatus:e,vaultPressData:t}=this.props,n=(0,p.get)(e,"state",!1),r=(0,p.get)(t,["data","features","backups"],!1);return!1!==n||r?c().createElement(m.Z,i()({feature:v.N_},this.props,{header:_x("Jetpack Backup","Settings header","jetpack"),hideButton:!0}),"unavailable"===n?this.getVaultPressContent():this.getRewindBanner()):c().createElement(m.Z,{header:_x("Jetpack Backup","Settings header","jetpack"),hideButton:!0,action:v.N_},c().createElement(g.Z,{module:{module:"backups"},support:{text:__("Backs up your site to the global WordPress.com servers, allowing you to restore your content in the event of an emergency or error.","jetpack"),link:(0,h.Z)("jetpack-support-backup")}},__("Checking site status…","jetpack")))}}o()(b,"propTypes",{siteRawUrl:u().string,rewindState:u().string}),o()(b,"defaultProps",{siteRawUrl:"",rewindState:""})},3013:function(e,t,n){"use strict";n.d(t,{u:function(){return b}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(71415),p=n(11973),d=n(60742),h=n(77222),f=n(5e4),m=n(84277),g=n(27006),v=n(24951);const __=l.__,_x=l._x,b=(0,f.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"trackConfigureClick",(()=>{p.Z.tracks.recordJetpackClick("configure-monitor")}))}render(){const e=this.props.hasConnectedOwner,t=this.props.isOfflineMode,n=this.props.getOptionValue("monitor"),r=this.props.isUnavailableInOfflineMode("monitor");return c().createElement(m.Z,i()({},this.props,{hideButton:!0,module:"monitor",header:_x("Downtime monitoring","Settings header","jetpack")}),c().createElement(g.Z,{hasChild:!0,disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:this.props.getModule("monitor"),support:{text:__("Jetpack will continuously monitor your site and alert you the moment downtime is detected.","jetpack"),link:(0,u.Z)("jetpack-support-monitor")}},c().createElement(h.T,{slug:"monitor",disabled:r||!e,activated:n,toggling:this.props.isSavingAnyOption("monitor"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Get alerts if your site goes offline. We’ll let you know when it’s back up, too.","jetpack")))),e&&c().createElement(d.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:(0,u.Z)("calypso-settings-security",{site:this.props.siteRawUrl})},__("Configure your notification settings","jetpack")),!e&&!t&&c().createElement(v.Z,{feature:"monitor",featureLabel:__("Downtime Monitoring","jetpack"),text:__("Connect to set up your status alerts.","jetpack")}))}})},24682:function(e,t,n){"use strict";n.d(t,{C:function(){return _}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(65736),p=n(71415),d=n(11973),h=n(9913),f=n(50844),m=n(78919),g=n(55735),v=n(77222),b=n(5e4),y=n(84277),k=n(27006),w=n(24951);const __=u.__,_x=u._x,_=(0,b.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"state",{safelist:this.props.getOptionValue("jetpack_protect_global_whitelist")?this.props.getOptionValue("jetpack_protect_global_whitelist").local:""}),o()(this,"currentIpIsSafelisted",(()=>!!(0,l.includes)(this.state.safelist,this.props.currentIp))),o()(this,"updateText",(e=>{this.currentIpIsSafelisted(),this.setState({safelist:e.target.value}),this.props.onOptionChange(e)})),o()(this,"addToSafelist",(()=>{const e=this.state.safelist+(0>=this.state.safelist.length?"":"\n")+this.props.currentIp;this.props.updateFormStateOptionValue("jetpack_protect_global_whitelist",e),this.setState({safelist:e}),d.Z.tracks.recordJetpackClick({target:"add-to-whitelist",feature:"protect"})})),o()(this,"trackOpenCard",(()=>{d.Z.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"protect"})}))}render(){const e=this.props.getOptionValue("protect"),t=this.props.isUnavailableInOfflineMode("protect"),n=c().createElement(v.T,{slug:"protect",compact:!0,disabled:t,activated:e,toggling:this.props.isSavingAnyOption("protect"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},this.props.getModule("protect").description));return c().createElement(y.Z,i()({},this.props,{module:"protect",header:_x("Protect","Settings header","jetpack"),saveDisabled:this.props.isSavingAnyOption("jetpack_protect_global_whitelist")}),c().createElement(k.Z,{hasChild:!0,disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:this.props.getModule("protect"),className:"foldable-wrapper"},c().createElement(m.Z,{onOpen:this.trackOpenCard,header:n},c().createElement(k.Z,{hasChild:!0,module:this.props.getModule("protect"),support:{text:__("Protects your site from traditional and distributed brute force login attacks.","jetpack"),link:(0,p.Z)("jetpack-support-protect")}},c().createElement(g.C_,null,this.props.currentIp&&c().createElement("div",null,c().createElement("div",{className:"jp-form-label-wide"},(0,u.sprintf)(
+/* translators: placeholder is an IP address. */
+__("Your current IP: %s","jetpack"),this.props.currentIp)),c().createElement(h.Z,{disabled:!e||t||this.currentIpIsSafelisted()||this.props.isSavingAnyOption(["protect","jetpack_protect_global_whitelist"]),onClick:this.addToSafelist},__("Add to Always Allowed list","jetpack"))),c().createElement(g.lX,null,c().createElement(g.Gj,null,__("Always allowed IP addresses","jetpack")),c().createElement(f.Z,{disabled:!e||t||this.props.isSavingAnyOption(["protect","jetpack_protect_global_whitelist"]),name:"jetpack_protect_global_whitelist",placeholder:"Example: 12.12.12.1-12.12.12.100",onChange:this.updateText,value:this.state.safelist})),c().createElement("span",{className:"jp-form-setting-explanation"},__('You may mark an IP address (or series of addresses) as "Always allowed", preventing them from ever being blocked by Jetpack. IPv4 and IPv6 are acceptable. To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100',"jetpack")))))),!this.props.hasConnectedOwner&&!this.props.isOfflineMode&&c().createElement(w.Z,{feature:"protect",featureLabel:__("Protect","jetpack"),text:__("Connect to set up brute force attack protection.","jetpack")}))}})},95835:function(e,t,n){"use strict";n.d(t,{y:function(){return b}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(71415),p=n(94069),d=n(55735),h=n(77222),f=n(5e4),m=n(84277),g=n(27006),v=n(24951);const __=l.__,_x=l._x,b=(0,f.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"state",{jetpack_sso_match_by_email:this.props.getOptionValue("jetpack_sso_match_by_email","sso"),jetpack_sso_require_two_step:this.props.getOptionValue("jetpack_sso_require_two_step","sso")}),o()(this,"handleTwoStepToggleChange",(()=>{this.updateOptions("jetpack_sso_require_two_step")})),o()(this,"handleMatchByEmailToggleChange",(()=>{this.updateOptions("jetpack_sso_match_by_email")})),o()(this,"updateOptions",(e=>{this.setState({[e]:!this.state[e]},this.props.updateFormStateModuleOption("sso",e))}))}render(){const e=this.props.getOptionValue("sso"),t=this.props.isUnavailableInOfflineMode("sso");return c().createElement(m.Z,i()({},this.props,{hideButton:!0,module:"sso",header:_x("WordPress.com login","Settings header, noun.","jetpack")}),c().createElement(g.Z,{hasChild:!0,disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:this.props.getModule("sso"),support:{text:__("Allows registered users to log in to your site with their WordPress.com accounts.","jetpack"),link:(0,u.Z)("jetpack-support-sso")}},c().createElement("p",null,__("Add an extra layer of security to your website by enabling WordPress.com login and secure authentication. If you have multiple sites with this option enabled, you will be able to log in to every one of them with the same credentials.","jetpack")),c().createElement(h.T,{slug:"sso",disabled:t||!this.props.hasConnectedOwner,activated:e,toggling:this.props.isSavingAnyOption("sso"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},this.props.getModule("sso").description)),c().createElement(d.C_,null,c().createElement(p.Z,{checked:this.state.jetpack_sso_match_by_email,disabled:!e||t||this.props.isSavingAnyOption(["sso","jetpack_sso_match_by_email"]),onChange:this.handleMatchByEmailToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Match accounts using email addresses","jetpack"))),c().createElement(p.Z,{checked:this.state.jetpack_sso_require_two_step,disabled:!e||t||this.props.isSavingAnyOption(["sso","jetpack_sso_require_two_step"]),onChange:this.handleTwoStepToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Require accounts to use WordPress.com Two-Step Authentication","jetpack"))))),!this.props.hasConnectedOwner&&!this.props.isOfflineMode&&c().createElement(v.Z,{feature:"sso",featureLabel:__("Secure Sign-On","jetpack"),text:__("Connect to enable WordPress.com Secure Sign-On.","jetpack")}))}})},7507:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(65736),u=n(2620),p=n(12901),d=n(9863),h=n(37755),f=n(90955),m=n(70445),g=n(24295),v=n(84669),b=n(97640),y=n(18731),k=n(93107);const __=l.__;class w extends c().Component{render(){const{location:e={pathname:""},rewindStatus:t,searchTerm:n,siteAdminUrl:r,siteRawUrl:s,userCanManageModules:o}=this.props,{pathname:a}=e,u={searchTerm:n,rewindStatus:t,userCanManageModules:o};return c().createElement("div",{className:"jp-settings-container"},c().createElement("div",{className:"jp-no-results"},n?(0,l.sprintf)(
+/* translators: placeholder is a searchterm entered in searchform. */
+__("No search results found for %s","jetpack"),n):__("Enter a search term to find settings or close search.","jetpack")),c().createElement(g.Z,i()({siteAdminUrl:r,siteRawUrl:s,active:"/security"===a||"/settings"===a&&o},u)),c().createElement(d.Z,i()({siteRawUrl:s,active:"/discussion"===a},u)),c().createElement(h.Z,i()({active:"/performance"===a},u)),c().createElement(b.Z,i()({siteRawUrl:s,siteAdminUrl:r,active:"/traffic"===a},u)),c().createElement(y.Z,i()({siteAdminUrl:r,active:"/writing"===a||!o&&this.props.isModuleActivated("post-by-email")&&!this.props.isModuleActivated("publicize")},u)),c().createElement(v.Z,i()({siteAdminUrl:r,active:"/sharing"===a||"/settings"===a&&!o&&this.props.isModuleActivated("publicize")},u)),c().createElement(f.Z,i()({active:"/privacy"===a},u)),c().createElement(m.Z,{searchTerm:n}))}}o()(w,"displayName","SearchableSettings"),t.Z=(0,u.$j)((e=>({isModuleActivated:t=>(0,k.mp)(e,t)})))((0,p.EN)(w))},84669:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(2620),o=n(65736),a=n(60742),c=n(93107),l=n(17752),u=n(41147),p=n(19555),d=n(66552),h=n(27219),f=n(37636),m=n(10342),g=n(29779);const __=o.__;class v extends r.Component{render(){const e={settings:this.props.settings,getModule:this.props.module,isOfflineMode:this.props.isOfflineMode,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode,isLinked:this.props.isLinked,connectUrl:this.props.connectUrl,siteRawUrl:this.props.siteRawUrl,siteAdminUrl:this.props.siteAdminUrl,userCanManageModules:this.props.userCanManageModules},t=this.props.isModuleFound("publicize"),n=this.props.isModuleFound("sharedaddy"),r=this.props.isModuleFound("likes");return(this.props.searchTerm||this.props.active)&&(t||n||r)?i().createElement("div",null,i().createElement(h.Z,null),i().createElement(a.Z,{title:this.props.searchTerm?__("Sharing","jetpack"):__("Share your content to social media, reaching new audiences and increasing engagement.","jetpack"),className:"jp-settings-description"}),t&&i().createElement(f.u,e),n&&i().createElement(m.n,e),r&&i().createElement(g.d,e)):null}}t.Z=(0,s.$j)((e=>({module:t=>(0,c.rT)(e,t),settings:(0,l.Gw)(e),isOfflineMode:(0,u.Ex)(e),isUnavailableInOfflineMode:t=>(0,u.t_)(e,t),isModuleFound:t=>(0,p.CX)(e,t),isLinked:(0,u.BU)(e),connectUrl:(0,u.AM)(e),siteRawUrl:(0,d.JR)(e),siteAdminUrl:(0,d.wW)(e),userCanManageModules:(0,d.pK)(e)})))(v)},29779:function(e,t,n){"use strict";n.d(t,{d:function(){return h}});var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(71415),l=n(5e4),u=n(84277),p=n(27006),d=n(77222);const __=a.__,_x=a._x,h=(0,l.u)(class extends s.Component{render(){const e=this.props.isUnavailableInOfflineMode("likes"),t=this.props.getOptionValue("likes");return o().createElement(u.Z,i()({},this.props,{header:_x("Like buttons","Settings header","jetpack"),module:"likes",hideButton:!0}),o().createElement(p.Z,{disableInOfflineMode:!0,module:{module:"likes"},support:{text:__("Adds like buttons to your content so that visitors can show their appreciation or enjoyment.","jetpack"),link:(0,c.Z)("jetpack-support-likes")}},o().createElement("p",null,__("The Like button is a way for people on WordPress.com to show their appreciation for your content.","jetpack")),o().createElement(d.T,{slug:"likes",disabled:e,activated:t,toggling:this.props.isSavingAnyOption("likes"),toggleModule:this.props.toggleModuleNow},__("Add Like buttons to your posts and pages","jetpack"))))}})},37636:function(e,t,n){"use strict";n.d(t,{u:function(){return g}});var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(71415),l=n(11973),u=n(60742),p=n(5e4),d=n(84277),h=n(27006),f=n(77222),m=n(24951);const __=a.__,_x=a._x,g=(0,p.u)(class extends s.Component{trackClickConfigure(){l.Z.tracks.recordJetpackClick({target:"configure-publicize",page:"sharing"})}render(){const e=this.props.isUnavailableInOfflineMode("publicize"),t=this.props.isLinked,n=this.props.isOfflineMode,r=this.props.siteRawUrl,s=this.props.getOptionValue("publicize"),a=this.props.userCanManageModules;return a||s?o().createElement(d.Z,i()({},this.props,{header:_x("Publicize connections","Settings header","jetpack"),module:"publicize",hideButton:!0}),a&&o().createElement(h.Z,{disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:{module:"publicize"},support:{text:__("Allows you to automatically share your newest content on social media sites, including Facebook and Twitter.","jetpack"),link:(0,c.Z)("jetpack-support-publicize")}},o().createElement("p",null,__("Connect your website to the social media networks you use and share your content across all your social accounts with a single click. When you publish a post, it will appear on all connected accounts.","jetpack")),o().createElement(f.T,{slug:"publicize",disabled:e||!this.props.isLinked,activated:s,toggling:this.props.isSavingAnyOption("publicize"),toggleModule:this.props.toggleModuleNow},__("Automatically share your posts to social networks","jetpack"))),!t&&!n&&o().createElement(m.Z,{feature:"publicize",featureLabel:__("Publicize","jetpack"),text:__("Connect to add your social media accounts.","jetpack")}),s&&(()=>{if(!e)return t&&o().createElement(u.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackClickConfigure,target:"_blank",rel:"noopener noreferrer",href:(0,c.Z)("calypso-marketing-connections",{site:r})},__("Connect your social media accounts","jetpack"))})()):null}})},10342:function(e,t,n){"use strict";n.d(t,{n:function(){return m}});var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(71415),l=n(11973),u=n(60742),p=n(5e4),d=n(84277),h=n(27006),f=n(77222);const __=a.__,_x=a._x,m=(0,p.u)(class extends s.Component{trackClickConfigure(){l.Z.tracks.recordJetpackClick({target:"configure-sharing",page:"sharing"})}render(){const e=this.props.isLinked,t=this.props.siteRawUrl,n=this.props.siteAdminUrl,r=this.props.isOfflineMode,s=this.props.getOptionValue("sharedaddy");return o().createElement(d.Z,i()({},this.props,{header:_x("Sharing buttons","Settings header","jetpack"),module:"sharing",hideButton:!0}),o().createElement(h.Z,{disableInOfflineMode:!0,module:{module:"sharedaddy"},support:{text:__("You can customize the sharing buttons and choose which services to display.","jetpack"),link:(0,c.Z)("jetpack-support-sharing")}},o().createElement("p",null,__("Add sharing buttons so visitors can share your posts and pages on social media with a couple of quick clicks.","jetpack")),o().createElement(f.T,{slug:"sharedaddy",activated:s,toggling:this.props.isSavingAnyOption("sharedaddy"),toggleModule:this.props.toggleModuleNow},__("Add sharing buttons to your posts and pages","jetpack"))),s&&(()=>r||!e?o().createElement(u.Z,{compact:!0,className:"jp-settings-card__configure-link",href:n+"options-general.php?page=sharing"},__("Configure your sharing buttons","jetpack")):o().createElement(u.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackClickConfigure,target:"_blank",rel:"noopener noreferrer",href:(0,c.Z)("calypso-marketing-sharing-buttons",{site:t})},__("Configure your sharing buttons","jetpack")))())}})},67592:function(e,t,n){"use strict";n.d(t,{R9:function(){return r},q7:function(){return i},Uy:function(){return s},hm:function(){return o},J1:function(){return a},U7:function(){return c},BV:function(){return l},ie:function(){return u},AA:function(){return p},IW:function(){return d},Mo:function(){return h},dD:function(){return f},lj:function(){return m},o2:function(){return g},yb:function(){return v},bG:function(){return b},sO:function(){return y},B9:function(){return k},T:function(){return w},YD:function(){return _},X0:function(){return E},kK:function(){return C},rA:function(){return S},TB:function(){return j},jE:function(){return M},kF:function(){return x},I3:function(){return N},sG:function(){return A},n2:function(){return O},Jy:function(){return T},Gu:function(){return P},xk:function(){return I},CD:function(){return R},L:function(){return U},Lo:function(){return Z},Hy:function(){return D},m:function(){return L},_M:function(){return z},a8:function(){return B},ar:function(){return F},TR:function(){return V},H5:function(){return q},yV:function(){return H},QG:function(){return W},sQ:function(){return $},Kt:function(){return J},c0:function(){return K},Cf:function(){return G},x3:function(){return Y},Mi:function(){return X},$I:function(){return Q},as:function(){return ee},RR:function(){return te},Fm:function(){return ne},KD:function(){return re},BG:function(){return ie},BB:function(){return se},Pi:function(){return oe},yE:function(){return ae},HO:function(){return ce},YC:function(){return le},$0:function(){return ue},w_:function(){return pe},g:function(){return de},i7:function(){return he},ik:function(){return fe},Pp:function(){return me},hz:function(){return ge},QD:function(){return ve},JA:function(){return be},dS:function(){return ye},rY:function(){return ke},q4:function(){return we},jH:function(){return _e},QF:function(){return Ee},BX:function(){return Ce},gY:function(){return Se},FL:function(){return je},Ns:function(){return Me},TI:function(){return xe},rQ:function(){return Ne},fH:function(){return Ae},l9:function(){return Oe},Mg:function(){return Te},nD:function(){return Pe},rw:function(){return Ie},Vl:function(){return Re},VN:function(){return Ue},g9:function(){return Ze},Fe:function(){return De},lt:function(){return Le},Dz:function(){return ze},Ab:function(){return Be},Ep:function(){return Fe},zO:function(){return Ve},XU:function(){return qe},y$:function(){return He},qU:function(){return We},s6:function(){return $e},z1:function(){return Je},jb:function(){return Ke},uG:function(){return Ge},og:function(){return Ye},HE:function(){return Xe},x1:function(){return Qe},kO:function(){return et},i3:function(){return tt},Nk:function(){return nt},qY:function(){return rt},zD:function(){return it},IZ:function(){return st},lh:function(){return ot},fX:function(){return at},tU:function(){return ct},Ez:function(){return lt},Qm:function(){return ut},XP:function(){return pt},K0:function(){return dt},Fc:function(){return ht},b8:function(){return ft},me:function(){return mt},Vd:function(){return gt},tl:function(){return vt},Yo:function(){return bt},mL:function(){return yt},hF:function(){return kt},CM:function(){return wt},it:function(){return _t},Dg:function(){return Et},ml:function(){return Ct},Yk:function(){return St},fe:function(){return jt},N9:function(){return Mt},vr:function(){return xt},M0:function(){return Nt},$F:function(){return At},b6:function(){return Ot},cz:function(){return Tt},$d:function(){return Pt},s9:function(){return It},km:function(){return Rt},oQ:function(){return Ut},UI:function(){return Zt},Uq:function(){return Dt},U$:function(){return Lt},R5:function(){return zt},lO:function(){return Bt},jt:function(){return Ft}});const r="JETPACK_SET_INITIAL_STATE",i="CONNECT_URL_FETCH",s="CONNECT_URL_FETCH_FAIL",o="CONNECT_URL_FETCH_SUCCESS",a="DISCONNECT_SITE",c="DISCONNECT_SITE_FAIL",l="DISCONNECT_SITE_SUCCESS",u="CONNECT_USER",p="RESET_CONNECT_USER",d="UNLINK_USER",h="UNLINK_USER_FAIL",f="UNLINK_USER_SUCCESS",m="USER_CONNECTION_DATA_FETCH",g="USER_CONNECTION_DATA_FETCH_FAIL",v="USER_CONNECTION_DATA_FETCH_SUCCESS",b="SITE_RECONNECT",y="SITE_RECONNECT_SUCCESS",k="SITE_RECONNECT_FAIL",w="USER_TRACKING_SETTINGS_FETCH",_="USER_TRACKING_SETTINGS_FETCH_FAIL",E="USER_TRACKING_SETTINGS_FETCH_SUCCESS",C="USER_TRACKING_SETTINGS_UPDATE",S="USER_TRACKING_SETTINGS_UPDATE_FAIL",j="USER_TRACKING_SETTINGS_UPDATE_SUCCESS",M="JETPACK_MODULES_LIST_FETCH",x="JETPACK_MODULES_LIST_FETCH_FAIL",N="JETPACK_MODULES_LIST_RECEIVE",A="JETPACK_MODULE_ACTIVATE",O="JETPACK_MODULE_ACTIVATE_SUCCESS",T="JETPACK_MODULE_ACTIVATE_FAIL",P="JETPACK_MODULE_DEACTIVATE",I="JETPACK_MODULE_DEACTIVATE_FAIL",R="JETPACK_MODULE_DEACTIVATE_SUCCESS",U="JETPACK_MODULE_UPDATE_OPTIONS",Z="JETPACK_MODULE_UPDATE_OPTIONS_FAIL",D="JETPACK_MODULE_UPDATE_OPTIONS_SUCCESS",L="JETPACK_CONNECTION_STATUS_FETCH",z="JETPACK_CONNECTION_TEST_FETCH",B="JETPACK_SITE_CONNECTED_PLUGINS_FETCH",F="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_RECEIVE",V="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_FAIL",q="DASHBOARD_PROTECT_COUNT_FETCH",H="DASHBOARD_PROTECT_COUNT_FETCH_FAIL",W="DASHBOARD_PROTECT_COUNT_FETCH_SUCCESS",$="RESET_OPTIONS",J="RESET_OPTIONS_FAIL",K="RESET_OPTIONS_SUCCESS",G="VAULTPRESS_SITE_DATA_FETCH",Y="VAULTPRESS_SITE_DATA_FETCH_FAIL",X="VAULTPRESS_SITE_DATA_FETCH_SUCCESS",Q="AKISMET_DATA_FETCH",ee="AKISMET_DATA_FETCH_FAIL",te="AKISMET_DATA_FETCH_SUCCESS",ne="AKISMET_KEY_CHECK_FETCH",re="AKISMET_KEY_CHECK_FETCH_FAIL",ie="AKISMET_KEY_CHECK_FETCH_SUCCESS",se="PLUGIN_UPDATES_FETCH",oe="PLUGIN_UPDATES_FETCH_FAIL",ae="PLUGIN_UPDATES_FETCH_SUCCESS",ce="STATS_SWITCH_TAB",le="STATS_DATA_FETCH",ue="STATS_DATA_FETCH_FAIL",pe="STATS_DATA_FETCH_SUCCESS",de="JETPACK_PRODUCTS_FETCH",he="JETPACK_PRODUCTS_FETCH_RECEIVE",fe="JETPACK_PRODUCTS_FETCH_FAIL",me="JETPACK_SITE_PRODUCTS_FETCH",ge="JETPACK_SITE_PRODUCTS_FETCH_FAIL",ve="JETPACK_SITE_PRODUCTS_FETCH_RECEIVE",be="JETPACK_SETTINGS_FETCH",ye="JETPACK_SETTINGS_FETCH_RECEIVE",ke="JETPACK_SETTINGS_FETCH_FAIL",we="JETPACK_SETTING_UPDATE",_e="JETPACK_SETTING_UPDATE_SUCCESS",Ee="JETPACK_SETTING_UPDATE_FAIL",Ce="JETPACK_SETTINGS_UPDATE",Se="JETPACK_SETTINGS_UPDATE_FAIL",je="JETPACK_SETTINGS_UPDATE_SUCCESS",Me="JETPACK_SETTINGS_SET_UNSAVED_FLAG",xe="JETPACK_SETTINGS_CLEAR_UNSAVED_FLAG",Ne="JETPACK_SITE_DATA_FETCH",Ae="JETPACK_SITE_DATA_FETCH_RECEIVE",Oe="JETPACK_SITE_DATA_FETCH_FAIL",Te="JETPACK_SITE_BENEFITS_FETCH",Pe="JETPACK_SITE_BENEFITS_FETCH_RECEIVE",Ie="JETPACK_SITE_BENEFITS_FETCH_FAIL",Re="JETPACK_SITE_FEATURES_FETCH",Ue="JETPACK_SITE_FEATURES_FETCH_RECEIVE",Ze="JETPACK_SITE_FEATURES_FETCH_FAIL",De="JETPACK_SITE_PLANS_FETCH",Le="JETPACK_SITE_PLANS_FETCH_RECEIVE",ze="JETPACK_SITE_PLANS_FETCH_FAIL",Be="JETPACK_SITE_PURCHASES_FETCH",Fe="JETPACK_SITE_PURCHASES_FETCH_RECEIVE",Ve="JETPACK_SITE_PURCHASES_FETCH_FAIL",qe="JETPACK_RECOMMENDATIONS_DATA_ADD_SELECTED_RECOMMENDATION",He="JETPACK_RECOMMENDATIONS_DATA_ADD_SKIPPED_RECOMMENDATION",We="JETPACK_RECOMMENDATIONS_DATA_FETCH",$e="JETPACK_RECOMMENDATIONS_DATA_FETCH_RECEIVE",Je="JETPACK_RECOMMENDATIONS_DATA_FETCH_FAIL",Ke="JETPACK_RECOMMENDATIONS_DATA_UPDATE",Ge="JETPACK_RECOMMENDATIONS_DATA_SAVE",Ye="JETPACK_RECOMMENDATIONS_DATA_SAVE_SUCCESS",Xe="JETPACK_RECOMMENDATIONS_DATA_SAVE_FAIL",Qe="JETPACK_RECOMMENDATIONS_STEP_UPDATE",et="JETPACK_RECOMMENDATIONS_STEP_UPDATE_SUCCESS",tt="JETPACK_RECOMMENDATIONS_STEP_UPDATE_FAIL",nt="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH",rt="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_RECEIVE",it="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_FAIL",st="JETPACK_RECOMMENDATIONS_UPSELL_FETCH",ot="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_RECEIVE",at="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_FAIL",ct="JETPACK_ACTION_NOTICES_DISMISS",lt="JETPACK_NOTICES_DISMISS_SUCCESS",ut="JETPACK_PLUGINS_DATA_FETCH",pt="JETPACK_PLUGINS_DATA_FETCH_RECEIVE",dt="JETPACK_PLUGINS_DATA_FETCH_FAIL",ht="JETPACK_SEARCH_TERM",ft="SET_PLAN_DURATION",mt="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY",gt="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_SUCCESS",vt="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_FAIL",bt="DEV_CARD_DISPLAY",yt="DEV_CARD_HIDE",kt="MOCK_SWITCH_USER_PERMISSIONS",wt="MOCK_SWITCH_THREATS",_t="REWIND_STATUS_FETCH",Et="REWIND_STATUS_FETCH_RECEIVE",Ct="REWIND_STATUS_FETCH_FAIL",St="MOCK_SWITCH_REWIND_STATE",jt="SCAN_STATUS_FETCH",Mt="SCAN_STATUS_FETCH_RECEIVE",xt="SCAN_STATUS_FETCH_FAIL",Nt="MOCK_SWITCH_SCAN_STATE",At="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH",Ot="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_FAIL",Tt="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_SUCCESS",Pt="JETPACK_SITE_VERIFY_GOOGLE_REQUEST",It="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_SUCCESS",Rt="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_FAIL",Ut="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL",Zt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_SUCCESS",Dt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL",Lt="JETPACK_LICENSING_ERROR_UPDATE",zt="JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE",Bt="JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE",Ft="JETPACK_CONNECTION_HAS_SEEN_WC_CONNECTION_MODAL"},57644:function(e,t,n){"use strict";n.d(t,{D3:function(){return s},g4:function(){return o},eR:function(){return a},l7:function(){return c},bB:function(){return l},Bt:function(){return u}});var r=n(19570),i=n(67592);const s=e=>t=>{t({type:i.HO,activeStatsTab:e})},o=e=>t=>(t({type:i.YC}),r.ZP.fetchStatsData(e).then((e=>{t({type:i.w_,statsData:e})})).catch((e=>{t({type:i.$0,error:e})}))),a=()=>e=>(e({type:i.H5}),r.ZP.getProtectCount().then((t=>{e({type:i.QG,protectCount:t})})).catch((t=>{e({type:i.yV,error:t})}))),c=()=>e=>(e({type:i.Cf}),r.ZP.getVaultPressData().then((t=>{e({type:i.Mi,vaultPressData:t})})).catch((t=>{e({type:i.x3,error:t})}))),l=()=>e=>(e({type:i.$I}),r.ZP.getAkismetData().then((t=>{e({type:i.RR,akismetData:t})})).catch((t=>{e({type:i.as,error:t})}))),u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t=>{t({type:i.Fm});return(""===e?r.ZP.checkAkismetKey().then((e=>{t({type:i.BG,akismet:e})})):r.ZP.checkAkismetKeyTyped(e).then((e=>{t({type:i.BG,akismet:e})}))).catch((e=>{t({type:i.KD,error:e})}))}}},75395:function(e,t,n){"use strict";n.d(t,{l5:function(){return r.l5},fU:function(){return r.fU},xz:function(){return r.xz},yZ:function(){return r.yZ},XK:function(){return r.XK},_R:function(){return r._R},_2:function(){return r._2},gw:function(){return r.gw},bV:function(){return r.bV},Xu:function(){return r.Xu},F2:function(){return r.F2},P_:function(){return r.P_},Bt:function(){return i.Bt},bB:function(){return i.bB},eR:function(){return i.eR},g4:function(){return i.g4},l7:function(){return i.l7},D3:function(){return i.D3}});var r=n(50046),i=n(57644)},50046:function(e,t,n){"use strict";n.d(t,{sI:function(){return o},l5:function(){return a},F2:function(){return c},yZ:function(){return l},bV:function(){return u},fU:function(){return p},gw:function(){return d},_2:function(){return h},Xu:function(){return f},xz:function(){return m},P_:function(){return g},XK:function(){return v},_R:function(){return b}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.YC:return(0,i.assign)({},e,{fetchingStatsData:!0});case s.$I:return(0,i.assign)({},e,{fetchingAkismetData:!0});case s.Fm:return(0,i.assign)({},e,{checkingAkismetKey:!0});case s.Cf:return(0,i.assign)({},e,{fetchingVaultPressData:!0});case s.H5:return(0,i.assign)({},e,{fetchingProtectData:!0});case s.BB:return(0,i.assign)({},e,{fetchingPluginUpdates:!0});case s.$0:case s.w_:return(0,i.assign)({},e,{fetchingStatsData:!1});case s.as:case s.RR:return(0,i.assign)({},e,{fetchingAkismetData:!1});case s.KD:case s.BG:return(0,i.assign)({},e,{checkingAkismetKey:!1});case s.yV:case s.QG:return(0,i.assign)({},e,{fetchingProtectData:!1});case s.Pi:case s.yE:return(0,i.assign)({},e,{fetchingPluginUpdates:!1});case s.x3:case s.Mi:return(0,i.assign)({},e,{fetchingVaultPressData:!1});default:return e}},activeStatsTab:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"day",t=arguments.length>1?arguments[1]:void 0;return t.type===s.HO?t.activeStatsTab:e},protectCount:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===s.QG?t.protectCount:e},vaultPressData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Mi:return t.vaultPressData;case s.CM:return(0,i.assign)({},"N/A"===e?{}:e,{data:{active:!0,features:{security:!0},security:{notice_count:t.mockCount}}});default:return e}},statsData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===s.w_?(0,i.assign)({},e,t.statsData):e},akismetData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===s.RR?t.akismetData:e},akismet:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{validKey:null,invalidKeyCode:"",invalidKeyMessage:""},t=arguments.length>1?arguments[1]:void 0;return t.type===s.BG?(0,i.assign)({},e,t.akismet):e},pluginUpdates:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===s.yE?t.pluginUpdates:e}});function a(e){return e.jetpack.dashboard.activeStatsTab}function c(e){return!!e.jetpack.dashboard.requests.fetchingStatsData}function l(e){return e.jetpack.dashboard.statsData}function u(e){return!!e.jetpack.dashboard.requests.fetchingAkismetData}function p(e){return e.jetpack.dashboard.akismetData}function d(e){return!!e.jetpack.dashboard.requests.checkingAkismetKey}function h(e){return(0,i.get)(e.jetpack.dashboard,["akismet","validKey"],!1)}function f(e){return!!e.jetpack.dashboard.requests.fetchingProtectData}function m(e){return e.jetpack.dashboard.protectCount}function g(e){return!!e.jetpack.dashboard.requests.fetchingVaultPressData}function v(e){return e.jetpack.dashboard.vaultPressData}function b(e){return(0,i.get)(e.jetpack.dashboard.vaultPressData,"data.security.notice_count",0)}},64769:function(e,t,n){"use strict";n.d(t,{I7:function(){return c},SG:function(){return l},eW:function(){return u},jb:function(){return p},EP:function(){return d},bL:function(){return h},HD:function(){return f},xK:function(){return m},qJ:function(){return g}});var r=n(65736),i=n(21094),s=n(67592),o=n(19570),a=n(66552);const __=r.__,c=()=>e=>o.ZP.fetchSiteConnectionStatus().then((t=>{e({type:s.m,siteConnected:t})})),l=()=>e=>(e((0,i.iI)("is-info",__("Testing Jetpack Connection","jetpack"),{id:"test-jetpack-connection"})),o.ZP.fetchSiteConnectionTest().then((t=>{e({type:s._M,connectionTest:t}),e((0,i.qq)("test-jetpack-connection")),e((0,i.iI)("success"===t.code?"is-success":"is-error",t.message,{id:"test-jetpack-connection"}))})).catch((t=>{e((0,i.qq)("test-jetpack-connection")),e((0,i.iI)("is-error",(0,r.sprintf)(
+/* translators: placeholder is an error message. */
+__("There was an error testing Jetpack. Error: %s","jetpack"),t.message),{id:"test-jetpack-connection"}))}))),u=()=>e=>(e({type:s.q7}),o.ZP.fetchConnectUrl().then((t=>{e({type:s.hm,connectUrl:t})})).catch((t=>{e({type:s.Uy,error:t})}))),p=()=>e=>(e({type:s.lj}),o.ZP.fetchUserConnectionData().then((t=>{e({type:s.yb,userConnectionData:t})})).catch((t=>{e({type:s.o2,error:t})}))),d=()=>e=>(e({type:s.IW}),e((0,i.iI)("is-info",__("Unlinking from WordPress.com","jetpack"),{id:"unlink-user"})),o.ZP.unlinkUser().then((t=>{e({type:s.dD,userUnlinked:t}),e(u()),e((0,i.qq)("unlink-user")),e((0,i.iI)("is-success",__("Unlinked from WordPress.com.","jetpack"),{id:"unlink-user",duration:2e3}))})).catch((t=>{e({type:s.Mo,error:t}),e((0,i.qq)("unlink-user")),e((0,i.iI)("is-error",(0,r.sprintf)(
+/* translators: placeholder is the error. */
+__("Error unlinking from WordPress.com. Error: %s","jetpack"),t),{id:"unlink-user"}))}))),h=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t=>{t({type:s.ie,featureLabel:e})}},f=()=>e=>{e({type:s.AA})},m=()=>(e,t)=>(e({type:s.bG}),e((0,i.iI)("is-info",__("Reconnecting Jetpack","jetpack"),{id:"reconnect-jetpack"})),o.ZP.reconnect().then((n=>{const r=n.status,i=n.authorizeUrl;if("in_progress"===r){if((0,a.G6)(t())||(0,a.jq)(t()))return window.location.replace(i);e({type:s.hm,connectUrl:i}),e(h())}else window.location.reload()})).catch((t=>{e({type:s.B9,error:t}),e((0,i.qq)("reconnect-jetpack")),e((0,i.iI)("is-error",(0,r.sprintf)(
+/* translators: placeholder is the error. */
+__("There was an error reconnecting Jetpack. Error: %s","jetpack"),t.response.message||t.response.code),{id:"reconnect-jetpack"}))}))),g=()=>e=>(e({type:s.jt}),o.ZP.setHasSeenWCConnectionModal())},41147:function(e,t,n){"use strict";n.d(t,{AM:function(){return r.AM},tN:function(){return r.tN},xP:function(){return r.xP},Zp:function(){return r.Zp},rH:function(){return r.rH},LN:function(){return r.LN},Gz:function(){return r.Gz},Hu:function(){return r.Hu},it:function(){return r.it},zq:function(){return r.zq},QM:function(){return r.QM},BU:function(){return r.BU},e_:function(){return r.e_},Mq:function(){return r.Mq},Dd:function(){return r.Dd},l9:function(){return r.l9},Ex:function(){return r.Ex},O_:function(){return r.O_},q7:function(){return r.q7},j8:function(){return r.j8},cm:function(){return r.cm},t_:function(){return r.t_},IK:function(){return r.IK},jZ:function(){return r.jZ},bL:function(){return i.bL},eW:function(){return i.eW},I7:function(){return i.I7},SG:function(){return i.SG},jb:function(){return i.jb},xK:function(){return i.xK},HD:function(){return i.HD},qJ:function(){return i.qJ},EP:function(){return i.EP}});var r=n(6861),i=n(64769)},6861:function(e,t,n){"use strict";n.d(t,{I6:function(){return c},Zp:function(){return l},Gz:function(){return u},q7:function(){return p},j8:function(){return d},Hu:function(){return h},AM:function(){return f},tN:function(){return m},e_:function(){return g},Mq:function(){return v},jZ:function(){return b},zq:function(){return y},xP:function(){return k},Dd:function(){return w},BU:function(){return _},QM:function(){return E},it:function(){return C},Ex:function(){return S},cm:function(){return j},l9:function(){return M},t_:function(){return x},IK:function(){return N},LN:function(){return A},O_:function(){return O},rH:function(){return T}});var r=n(74978),i=n(92819),s=n(67592),o=n(93107);const a={disconnectingSite:!1,connectingUser:!1,unlinkingUser:!1,fetchingConnectUrl:!1,fetchingUserData:!1,reconnectingSite:!1},c=(0,r.UY)({connectUrl:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.R9:return(0,i.get)(t,"initialState.connectUrl",e);case s.hm:return t.connectUrl;default:return e}},status:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{siteConnected:window.Initial_State.connectionStatus},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.m:case s.BV:return(0,i.assign)({},e,{siteConnected:t.siteConnected});case s.dD:return(0,i.assign)({},e,{siteConnected:{...e.siteConnected,isUserConnected:!1}});case s.yb:return!0===t.userConnectionData?.currentUser?.isConnected?(0,i.assign)({},e,{siteConnected:{...e.siteConnected,hasConnectedOwner:!0}}):e;default:return e}},user:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.userData,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.yb:return(0,i.assign)({},e,t.userConnectionData);case s.dD:const n=(0,i.assign)({},e.currentUser,{isConnected:!1});return(0,i.assign)({},e,{currentUser:n});case s.hF:return(0,i.merge)({},e,t.initialState);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.J1:return(0,i.assign)({},e,{disconnectingSite:!0});case s.IW:return(0,i.assign)({},e,{unlinkingUser:!0});case s.ie:return(0,i.assign)({},e,{connectingUser:!0,connectingUserFeatureLabel:t.featureLabel});case s.AA:return(0,i.assign)({},e,{connectingUser:!1});case s.q7:return(0,i.assign)({},e,{fetchingConnectUrl:!0});case s.lj:return(0,i.assign)({},e,{fetchingUserData:!0});case s.bG:return(0,i.assign)({},e,{reconnectingSite:!0});case s.U7:case s.BV:return(0,i.assign)({},e,{disconnectingSite:!1});case s.Mo:case s.dD:return(0,i.assign)({},e,{unlinkingUser:!1});case s.Uy:case s.hm:return(0,i.assign)({},e,{fetchingConnectUrl:!1});case s.o2:case s.yb:return(0,i.assign)({},e,{fetchingUserData:!1});case s.B9:case s.sO:return(0,i.assign)({},e,{reconnectingSite:!1});default:return e}},hasSeenWCConnectionModal:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.hasSeenWCConnectionModal||!1,t=arguments.length>1?arguments[1]:void 0;return t.type===s.jt||e}});function l(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&e.jetpack.connection.status.siteConnected}function u(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&(e.jetpack.connection.status.siteConnected.offlineMode.isActive?"offline":e.jetpack.connection.status.siteConnected.isActive)}function p(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&!0!==e.jetpack.connection.status.siteConnected.offlineMode.isActive&&e.jetpack.connection.status.siteConnected.isActive}function d(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&!0!==e.jetpack.connection.status.siteConnected.offlineMode.isActive&&e.jetpack.connection.status.siteConnected.isRegistered}function h(e){return!!(0,i.get)(e.jetpack.connection.status,["siteConnected","offlineMode","isActive"])&&(0,i.get)(e.jetpack.connection.status,["siteConnected","offlineMode"])}function f(e){return e.jetpack.connection.connectUrl}function m(e){return e.jetpack.connection.user.currentUser.wpcomUser}function g(e){return!!e.jetpack.connection.requests.disconnectingSite}function v(e){return!!e.jetpack.connection.requests.fetchingConnectUrl}function b(e){return!!e.jetpack.connection.requests.unlinkingUser}function y(e){return!!e.jetpack.connection.requests.connectingUser}function k(e){return e.jetpack.connection.requests.hasOwnProperty("connectingUserFeatureLabel")?e.jetpack.connection.requests.connectingUserFeatureLabel:null}function w(e){return!!e.jetpack.connection.requests.fetchingUserData}function _(e){return!!e.jetpack.connection.user.currentUser.isConnected}function E(e){return!!e.jetpack.connection.user.currentUser.isMaster}function C(e){return(0,i.get)(e.jetpack.connection.status,["siteConnected","hasConnectedOwner"],!1)}function S(e){return"offline"===u(e)}function j(e){return(0,i.get)(e.jetpack.connection.status,["siteConnected","isStaging"],!1)}function M(e){return(0,i.get)(e.jetpack.connection.status,["siteConnected","isInIdentityCrisis"],!1)}function x(e,t){return S(e)&&function(e,t){return(0,i.includes)((0,o.HS)(e).concat(["backups","scan"]),t)}(e,t)}function N(e,t){return!C(e)&&function(e,t){return(0,i.includes)((0,o.he)(e),t)}(e,t)}function A(e){return(0,i.get)(e.jetpack.connection.status,["siteConnected","sandboxDomain"],"")}function O(e){return!!e.jetpack.connection.requests.reconnectingSite}function T(e){return!!e.jetpack.connection.hasSeenWCConnectionModal}},43853:function(e,t,n){"use strict";n.d(t,{_G:function(){return a},vN:function(){return c},Wh:function(){return l},fb:function(){return u},Yw:function(){return y},aX:function(){return k},_s:function(){return w},pH:function(){return _}});var r=n(65736),i=n(21094),s=n(67592),o=n(19570);const __=r.__,a=e=>t=>(t({type:s.sQ}),t((0,i.iI)("is-info",__("Resetting Jetpack options…","jetpack"),{id:"reset-options"})),o.ZP.resetOptions(e).then((()=>{t({type:s.c0}),t((0,i.qq)("reset-options")),t((0,i.iI)("is-success",__("Options reset.","jetpack"),{id:"reset-options",duration:2e3}))})).catch((e=>{t({type:s.Kt,error:e}),t((0,i.qq)("reset-options")),t((0,i.iI)("is-error",__("Options failed to reset.","jetpack"),{id:"reset-options"}))}))),c=()=>e=>{e({type:s.Yo})},l=()=>e=>{e({type:s.mL})},u=e=>t=>{t({type:s.fH,siteData:{plan:{product_slug:e}}})},p={currentUser:{isMaster:!0,isConnected:!0,permissions:{admin_page:!0,connect:!0,disconnect:!0,edit_posts:!0,manage_modules:!0,manage_options:!0,manage_plugins:!0}}},d={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!0,disconnect:!0,edit_posts:!0,manage_modules:!0,manage_options:!0,manage_plugins:!0}}},h={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!1,disconnect:!1,edit_posts:!0,manage_modules:!1,manage_options:!1,manage_plugins:!1}}},f={currentUser:{isMaster:!1,permissions:{admin_page:!0,connect:!1,disconnect:!1,edit_posts:!1,manage_modules:!1,manage_options:!1,manage_plugins:!1}}},m={currentUser:{permissions:{view_stats:!0}}},g={currentUser:{permissions:{view_stats:!1}}},v={currentUser:{isConnected:!0}},b={currentUser:{isConnected:!1,isMaster:!1}},y=e=>{let t={};return n=>{switch(e){case"admin_master":t=p;break;case"admin_secondary":t=d;break;case"editor":case"contributor":case"author":t=h;break;case"subscriber":t=f;break;case"view_stats":t=m;break;case"hide_stats":t=g;break;case"is_linked":t=v;break;case"is_unlinked":t=b}n({type:s.hF,initialState:t})}},k=e=>t=>{t({type:s.CM,mockCount:e})},w=e=>t=>{t({type:s.Yk,rewindState:{state:e}})},_=e=>t=>{t({type:s.M0,scanState:{state:e}})}},28843:function(e,t,n){"use strict";n.d(t,{Ry:function(){return r.Ry},Wh:function(){return i.Wh},vN:function(){return i.vN},_G:function(){return i._G},fb:function(){return i.fb},_s:function(){return i._s},pH:function(){return i.pH},aX:function(){return i.aX},Yw:function(){return i.Yw}});var r=n(71565),i=n(43853)},71565:function(e,t,n){"use strict";n.d(t,{I6:function(){return s},Ry:function(){return o}});var r=n(74978),i=n(67592);const s=(0,r.UY)({display:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Yo:return!0;case i.mL:return!1;default:return e}}});function o(e){return!!e.jetpack.devCard.display}},83097:function(e,t,n){"use strict";n.d(t,{I6:function(){return o}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({disconnectSurvey:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{submitting:!1,submitted:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.me:return(0,i.assign)({},e,{submitting:!0});case s.Vd:return(0,i.assign)({},e,{submitting:!1,submitted:!0,error:null});case s.tl:return(0,i.assign)({},e,{submitting:!1,submitted:!1,error:t.error});default:return e}}})},27572:function(e,t,n){"use strict";n.d(t,{K:function(){return i}});var r=n(67592);const i=()=>e=>{e({type:r.R9,initialState:window.Initial_State})}},66552:function(e,t,n){"use strict";n.d(t,{Hy:function(){return r.Hy},Cv:function(){return r.Cv},jq:function(){return r.jq},je:function(){return r.je},VY:function(){return r.VY},yB:function(){return r.yB},PK:function(){return r.PK},de:function(){return r.de},w1:function(){return r.w1},mh:function(){return r.mh},rd:function(){return r.rd},xz:function(){return r.xz},Hh:function(){return r.Hh},Uu:function(){return r.Uu},Z2:function(){return r.Z2},DV:function(){return r.DV},wB:function(){return r.wB},by:function(){return r.by},as:function(){return r.as},H$:function(){return r.H$},wW:function(){return r.wW},ze:function(){return r.ze},EZ:function(){return r.EZ},JR:function(){return r.JR},Td:function(){return r.Td},aW:function(){return r.aW},hv:function(){return r.hv},Qq:function(){return r.Qq},KF:function(){return r.KF},_G:function(){return r._G},IU:function(){return r.IU},Ms:function(){return r.Ms},vL:function(){return r.vL},Ug:function(){return r.Ug},_W:function(){return r._W},TA:function(){return r.TA},G6:function(){return r.G6},$r:function(){return r.$r},pI:function(){return r.pI},Pw:function(){return r.Pw},nP:function(){return r.nP},xR:function(){return r.xR},Yg:function(){return r.Yg},mb:function(){return r.mb},n0:function(){return r.n0},Mc:function(){return r.Mc},WB:function(){return r.WB},rp:function(){return r.rp},pK:function(){return r.pK},UF:function(){return r.UF},ic:function(){return r.ic},D6:function(){return r.D6},px:function(){return r.px},dc:function(){return r.dc},KY:function(){return i.K}});var r=n(67643),i=n(27572)},67643:function(e,t,n){"use strict";n.d(t,{E3:function(){return l},_W:function(){return u},w1:function(){return p},Td:function(){return d},Uu:function(){return h},xz:function(){return f},Hh:function(){return m},je:function(){return g},JR:function(){return v},wW:function(){return b},aW:function(){return y},$r:function(){return k},dc:function(){return w},D6:function(){return _},pK:function(){return E},UF:function(){return C},rp:function(){return S},ic:function(){return j},WB:function(){return M},Mc:function(){return x},n0:function(){return N},IU:function(){return A},_G:function(){return O},KF:function(){return T},Ms:function(){return P},px:function(){return R},EZ:function(){return U},ze:function(){return Z},pI:function(){return D},VY:function(){return L},yB:function(){return z},H$:function(){return B},wB:function(){return F},as:function(){return V},hv:function(){return H},de:function(){return W},Z2:function(){return $},Hy:function(){return J},Ug:function(){return K},Pw:function(){return G},vL:function(){return Y},Cv:function(){return X},xR:function(){return Q},mb:function(){return ee},Yg:function(){return te},TA:function(){return ne},mh:function(){return re},DV:function(){return oe},Qq:function(){return ae},by:function(){return ce},rd:function(){return le},PK:function(){return ue},G6:function(){return pe},jq:function(){return de},nP:function(){return he}});var r=n(92819),i=n(71415),s=n(67592),o=n(89238),a=n(13553),c=n(41147);const l=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.R9:return(0,r.assign)({},e,t.initialState);case s.hF:return(0,r.merge)({},e,{userData:t.initialState});default:return e}};function u(e){return!!e.jetpack.initialState.isDevVersion}function p(e){return(0,r.get)(e.jetpack.initialState,"currentVersion","")}function d(e){return(0,r.get)(e.jetpack.initialState.stats,"roles",{})}function h(e){return(0,r.get)(e.jetpack.initialState.stats,"data")}function f(e){return(0,r.get)(e.jetpack.initialState,"connectedPlugins",{})}function m(e){return(0,r.get)(e.jetpack.initialState,"jetpackBenefits",[])}function g(e){return(0,r.get)(e.jetpack.initialState,["userData","currentUser","wpcomUser","email"])}function v(e){return(0,r.get)(e.jetpack.initialState,"rawUrl",{})}function b(e){return(0,r.get)(e.jetpack.initialState,"adminUrl",{})}function y(e){return(0,r.get)(e.jetpack.initialState,"siteTitle","")}function k(e){return(0,r.get)(e.jetpack.initialState,["connectionStatus","isPublic"])}function w(e){return!(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"edit_posts",!1)}function _(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"publish_posts",!1)}function E(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_modules",!1)}function C(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_options",!1)}function S(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"edit_posts",!1)}function j(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_plugins",!1)}function M(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"disconnect",!1)}function x(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"connect",!1)}function N(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"connect_user",!1)}function A(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,["wpcomUser","login"],"")}function O(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,["wpcomUser","ID"],"")}function T(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,["gravatar"])}function P(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,["username"])}function I(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,"id","")}function R(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"view_stats",!1)}function U(e){return(0,r.get)(e.jetpack.initialState.siteData,["blog_id"])}function Z(e){return(0,r.get)(e.jetpack.initialState.siteData,["icon"])}function D(e){return(0,r.get)(e.jetpack.initialState.siteData,["siteVisibleToSearchEngines"],!0)}function L(e){return(0,r.get)(e.jetpack.initialState,"WP_API_nonce")}function z(e){return(0,r.get)(e.jetpack.initialState,"WP_API_root")}function B(e){return(0,r.get)(e.jetpack.initialState,"registrationNonce")}function F(e){return(0,r.get)(e.jetpack.initialState,"pluginBaseUrl")}function V(e){return(0,r.get)(e.jetpack.initialState,"purchaseToken")}function q(e){return(0,r.get)(e.jetpack.initialState,"calypsoEnv")}function H(e){return(0,r.get)(e.jetpack.initialState,"tracksUserData")}function W(e){return(0,r.get)(e.jetpack.initialState,"currentIp")}function $(e){return(0,r.get)(e.jetpack.initialState,"lastPostUrl")}function J(e){return(0,r.get)(e.jetpack.initialState.siteData,"showPromotions",!0)}function K(e){return(0,r.get)(e.jetpack.initialState.siteData,"isAtomicSite",!1)}function G(e){return(0,r.get)(e.jetpack.initialState.siteData,"isWoASite",!1)}function Y(e){return(0,r.get)(e.jetpack.initialState.siteData,"isAtomicPlatform",!1)}function X(e,t){return(0,r.get)(e.jetpack.initialState.themeData,["support",t],!1)}function Q(e){return(0,r.get)(e.jetpack.initialState.siteData,"showBackups",!0)}function ee(e){return(0,r.get)(e.jetpack.initialState.siteData,"showRecommendations",!1)}function te(e){return(0,r.get)(e.jetpack.initialState.licensing,"showLicensingUi",!1)}function ne(e){return(0,r.get)(e.jetpack.initialState.siteData,"isMultisite",!1)}function re(e){return(0,r.get)(e.jetpack.initialState.siteData,"dateFormat",!1)}function ie(e){return(0,r.get)(e.jetpack.initialState,"aff","")}function se(e){return(0,r.get)(e.jetpack.initialState,"partnerSubsidiaryId","")}function oe(e){return(0,r.get)(e.jetpack.initialState,"partnerCoupon")}const ae=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const s=ie(e),a=se(e),l=n||I(e),u=V(e),p=q(e);r&&"monthly"===(0,o.b)(e)&&(t+="-monthly");const d={site:v(e)};return s&&(d.aff=s),l&&(d.u=l),a&&(d.subsidiaryId=a),d.query="",(0,c.BU)(e)||(d.query+="unlinked=1&"),u&&(d.query+=`purchasetoken=${u}`),p&&(d.calypso_env=p),(0,i.Z)(t,d)};function ce(e){const t=(0,r.get)(e.jetpack.initialState,"products",{}),n=(0,a.Xp)(e),s={};for(const[e,o]of Object.entries(t))s[e]={title:o.title,slug:o.slug,key:e,description:o.description,features:o.features,available:(0,r.get)(n,[o.slug,"available"],!1),currencyCode:(0,r.get)(n,[o.slug,"currency_code"],""),showPromotion:o.show_promotion,promotionPercentage:o.discount_percent,includedInPlans:o.included_in_plans,fullPrice:(0,r.get)(n,[o.slug,"cost"],""),upgradeUrl:(0,i.Z)("jetpack-product-description-checkout",{path:o.slug})};return s}function le(e){return(0,r.get)(e.jetpack.initialState,"recommendationsStep","")}function ue(e){return(0,r.get)(e.jetpack.initialState,["connectionStatus","errors"],[]).filter((e=>e.hasOwnProperty("action")))}function pe(e){return!!e.jetpack.initialState.isSafari}function de(e){return!!e.jetpack.initialState.doNotUseConnectionIframe}function he(e){return!!e.jetpack.initialState.isWooCommerceActive}},35429:function(e,t,n){"use strict";n.d(t,{S:function(){return i}});var r=n(67592);n(19570);const i=e=>t=>{t({type:r.tU,notice:e})}},39370:function(e,t,n){"use strict";n.d(t,{gq:function(){return r.gq},gB:function(){return r.gB},XF:function(){return r.XF},pt:function(){return r.pt},Rv:function(){return r.Rv},jE:function(){return r.jE},Sn:function(){return i.S}});var r=n(93036),i=n(35429)},93036:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},gq:function(){return a},gB:function(){return c},pt:function(){return l},Rv:function(){return u},XF:function(){return p},jE:function(){return d}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({notice:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===s.BV?"disconnected":e},dismissed:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.dismissedNotices,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.tU:return(0,i.assign)({},e,{[t.notice]:!0});case s.Ez:return(0,i.assign)({},e,t.dismissedNotices);case s.c0:return!1;default:return e}}});function a(e){return e.jetpack.jetpackNotices.notice}function c(e){return(0,i.get)(e.jetpack.initialState,["jetpackStateNotices","errorCode"])}function l(e){return(0,i.get)(e.jetpack.initialState,["jetpackStateNotices","messageCode"])}function u(e){return(0,i.get)(e.jetpack.initialState,["jetpackStateNotices","messageContent"])}function p(e){return(0,i.get)(e.jetpack.initialState,["jetpackStateNotices","errorDescription"])}function d(e,t){return(0,i.get)(e.jetpack.jetpackNotices.dismissed,[t],!1)}},28178:function(e,t,n){"use strict";n.d(t,{xw:function(){return s},Ng:function(){return o},bT:function(){return a}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.U$,error:""}),i.ZP.updateLicensingError({error:""})),o=()=>e=>i.ZP.getUserLicensesCounts().then((t=>{e({type:r.R5,counts:t})})).catch((t=>{e({type:r.U$,error:t})})),a=()=>(e,t)=>{const n=t().jetpack.licensing.userCounts?.detached;return i.ZP.updateLicensingActivationNoticeDismiss(n).then((t=>{e({type:r.lO,dismissData:t})})).catch((t=>{e({type:r.U$,error:t})}))}},77219:function(e,t,n){"use strict";n.d(t,{SP:function(){return r.SP},O4:function(){return r.O4},Tk:function(){return r.Tk},xw:function(){return i.xw},bT:function(){return i.bT},Ng:function(){return i.Ng}});var r=n(88584),i=n(28178)},88584:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},Tk:function(){return a},O4:function(){return c},SP:function(){return l}});var r=n(92819),i=n(74978),s=n(67592);const o=(0,i.UY)({error:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.licensing.error,t=arguments.length>1?arguments[1]:void 0;return t.type===s.U$?t.error:e},userCounts:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.userCounts)&&void 0!==e?e:{},n=arguments.length>1?arguments[1]:void 0;return n.type===s.R5?(0,r.assign)({},t,n.counts):t},activationNoticeDismiss:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.activationNoticeDismiss)&&void 0!==e?e:{last_detached_count:null,last_dismissed_time:null},n=arguments.length>1?arguments[1]:void 0;return n.type===s.lO?(0,r.assign)({},t,n.dismissData):t}});function a(e){return(0,r.get)(e.jetpack.licensing,["error"],"")}function c(e){return(0,r.get)(e.jetpack.licensing.userCounts,["detached"],0)}function l(e){return(0,r.get)(e.jetpack.licensing,["activationNoticeDismiss"],{})}},27279:function(e,t,n){"use strict";n.d(t,{u:function(){return a}});var r=n(65736),i=n(19570),s=n(67592),o=n(21094);const __=r.__,a=()=>e=>(e({type:s.oQ}),e((0,o.qq)("mobile-login-email-send")),e((0,o.qq)("mobile-login-email-sent")),e((0,o.qq)("mobile-login-email-error")),e((0,o.iI)("is-info",__("Sending login email…","jetpack"),{id:"mobile-login-email-send"})),i.ZP.sendMobileLoginEmail().then((t=>(e((0,o.qq)("mobile-login-email-send")),e({type:s.UI}),e((0,o.iI)("is-success",__("Login email sent","jetpack"),{id:"mobile-login-email-sent",duration:2e3})),t))).catch((t=>{e({type:s.Uq,error:t.response}),e((0,o.qq)("mobile-login-email-send")),e((0,o.iI)("is-error",__("Failed to send login email","jetpack"),{id:"mobile-login-email-error"}))})))},36900:function(e,t,n){"use strict";n.d(t,{I6:function(){return o}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({mobile:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{sendingLoginEmail:!1,loginEmailSent:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.oQ:return(0,i.assign)({},e,{sendingLoginEmail:!0});case s.UI:return(0,i.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!0,error:null});case s.Uq:return(0,i.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!1,error:t.error});default:return e}}})},7954:function(e,t,n){"use strict";n.d(t,{Z$:function(){return l},d:function(){return u},DK:function(){return p},Uq:function(){return d}});var r=n(92819),i=n(65736),s=n(21094),o=n(67592),a=n(91172),c=n(19570);const __=i.__,l=()=>e=>(e({type:o.jE}),c.ZP.fetchModules().then((t=>(e({type:o.I3,modules:t}),t))).catch((t=>{e({type:o.kF,error:t})}))),u=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return(n,r)=>(n({type:o.sG,module:e}),n((0,s.qq)("module-toggle")),n((0,s.iI)("is-info",(0,i.sprintf)(
+/* translators: placeholder is a feature name, such as "Image CDN". */
+__("Activating %s…","jetpack"),(0,a.rT)(r(),e).name),{id:"module-toggle"})),c.ZP.activateModule(e).then((()=>{n({type:o.n2,module:e,success:!0}),n((0,s.qq)("module-toggle")),n((0,s.iI)("is-success",(0,i.sprintf)(
+/* translators: placeholder is a feature name, such as "Image CDN". */
+__("%s has been activated.","jetpack"),(0,a.rT)(r(),e).name),{id:"module-toggle",duration:2e3})),t&&window.location.reload()})).catch((t=>{n({type:o.Jy,module:e,success:!1,error:t}),n((0,s.qq)("module-toggle")),n((0,s.iI)("is-error",(0,i.sprintf)(
+/* translators: %1$s: feature name, such as "Image CDN". - %2$s: error message. */
+__("%1$s failed to activate. %2$s","jetpack"),(0,a.rT)(r(),e).name,t),{id:"module-toggle"}))})))};function p(e,t){if("custom-content-types"!==e)return!1;t||jQuery("#menu-posts-jetpack-portfolio, #menu-posts-jetpack-testimonial").toggle(),(0,r.forEach)(t,(function(e,t){"jetpack_portfolio"===t&&jQuery("#menu-posts-jetpack-portfolio, .jp-toggle-portfolio").toggle(),"jetpack_testimonial"===t&&jQuery("#menu-posts-jetpack-testimonial, .jp-toggle-testimonial").toggle()}))}function d(e){(0,r.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(t=>t in e))&&window.location.reload()}},93107:function(e,t,n){"use strict";n.d(t,{Xx:function(){return r.Xx},rT:function(){return r.rT},C5:function(){return r.C5},R9:function(){return r.R9},Qy:function(){return r.Qy},hU:function(){return r.hU},HS:function(){return r.HS},he:function(){return r.he},og:function(){return r.og},zc:function(){return r.zc},Su:function(){return r.Su},ZY:function(){return r.ZY},mp:function(){return r.mp},v1:function(){return r.v1},d:function(){return i.d},Z$:function(){return i.Z$},DK:function(){return i.DK},Uq:function(){return i.Uq}});var r=n(91172),i=n(7954)},91172:function(e,t,n){"use strict";n.d(t,{I6:function(){return c},ZY:function(){return l},C5:function(){return u},R9:function(){return p},hU:function(){return d},Xx:function(){return h},rT:function(){return f},HS:function(){return m},he:function(){return g},og:function(){return v},zc:function(){return b},Su:function(){return y},mp:function(){return k},v1:function(){return w},Qy:function(){return _}});var r=n(74978),i=n(92819),s=n(67592),o=n(61744);const a={fetchingModulesList:!1,activating:{},deactivating:{},updatingOption:{}},c=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.R9:return(0,i.assign)({},t.initialState.getModules);case s.I3:return(0,i.assign)({},e,t.modules);case s.n2:return(0,i.assign)({},e,{[t.module]:(0,i.assign)({},e[t.module],{activated:!0})});case s.CD:return(0,i.assign)({},e,{[t.module]:(0,i.assign)({},e[t.module],{activated:!1})});case s.Hy:const n=(0,i.assign)({},e[t.module]);return Object.keys(t.newOptionValues).forEach((e=>{n.options[e].current_value=t.newOptionValues[e]})),(0,i.assign)({},e,{[t.module]:n});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.jE:return(0,i.assign)({},e,{fetchingModulesList:!0});case s.kF:case s.I3:return(0,i.assign)({},e,{fetchingModulesList:!1});case s.sG:return(0,i.assign)({},e,{activating:(0,i.assign)({},e.activating,{[t.module]:!0})});case s.Jy:case s.n2:return(0,i.assign)({},e,{activating:(0,i.assign)({},e.activating,{[t.module]:!1})});case s.Gu:return(0,i.assign)({},e,{deactivating:(0,i.assign)({},e.deactivating,{[t.module]:!0})});case s.xk:case s.CD:return(0,i.assign)({},e,{deactivating:(0,i.assign)({},e.deactivating,{[t.module]:!1})});case s.L:const n=(0,i.assign)({},e.updatingOption);return n[t.module]=(0,i.assign)({},n[t.module]),Object.keys(t.newOptionValues).forEach((e=>{n[t.module][e]=!0})),(0,i.assign)({},e,{updatingOption:(0,i.assign)({},e.updatingOption,n)});case s.Lo:case s.Hy:const r=(0,i.assign)({},e.updatingOption);return r[t.module]=(0,i.assign)({},r[t.module]),Object.keys(t.newOptionValues).forEach((e=>{r[t.module][e]=!1})),(0,i.assign)({},e,{updatingOption:(0,i.assign)({},e.updatingOption,r)});default:return e}}});function l(e,t){return!!e.jetpack.modules.requests.activating[t]}function u(e,t,n){return(0,i.get)(e.jetpack.modules.items,[t,"options",n,"current_value"])}function p(e,t,n){return(0,i.get)(e.jetpack.modules.items,[t,"options",n,"enum_labels"],!1)}function d(e){return e.jetpack.modules.items}function h(e){return Object.keys(e.jetpack.modules.items).filter((t=>e.jetpack.modules.items[t].activated))}function f(e,t){return(0,i.get)(e.jetpack.modules.items,t,{})}function m(e){return Object.keys(e.jetpack.modules.items).filter((t=>e.jetpack.modules.items[t].requires_connection))}function g(e){return Object.keys(e.jetpack.modules.items).filter((t=>e.jetpack.modules.items[t].requires_user_connection))}function v(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];const n=Object.keys(d(e));return 0<(0,i.intersection)(n,t).length}function b(e){return v(e,["carousel","lazy-images","photon","photon-cdn","search","videopress"])}function y(e){return v(e,["protect","sso","vaultpress"])||(0,o.TB)(e,"akismet/akismet.php")}function k(e,t){return!!(0,i.get)(e.jetpack.modules.items,[t,"activated"],!1)}function w(e,t){return(0,i.includes)(Object.keys(e.jetpack.modules.items),t)}function _(e,t){return(0,i.get)(e.jetpack.modules.items,[t,"override"],!1)}},89238:function(e,t,n){"use strict";n.d(t,{I:function(){return s},b:function(){return o}});var r=n(74978),i=n(67592);const s=(0,r.UY)({duration:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"yearly",t=arguments.length>1?arguments[1]:void 0;return t.type===i.b8?t.duration:e}});function o(e){return e.jetpack.plans.duration}},37457:function(e,t,n){"use strict";n.d(t,{t:function(){return s}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.g}),i.ZP.fetchProducts().then((t=>{e({type:r.i7,products:t})})).catch((t=>{e({type:r.ik,error:t})})))},13553:function(e,t,n){"use strict";n.d(t,{Xp:function(){return r.Xp},T0:function(){return r.T0},t2:function(){return i.t}});var r=n(79367),i=n(37457)},79367:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},T0:function(){return a},Xp:function(){return c}});var r=n(92819),i=n(74978),s=n(67592);const o=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===s.i7?t.products:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.g:return(0,r.assign)({},e,{isFetchingProducts:!0});case s.i7:case s.ik:return(0,r.assign)({},e,{isFetchingProducts:!1});default:return e}}});function a(e){return!!e.jetpack.products.requests.isFetchingProducts}function c(e){return e.jetpack.products.items}},46023:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},K0:function(){return a}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({connectUrls:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===s.R9?(0,i.assign)({},t.initialState.externalServicesConnectUrls):e}});function a(e,t){return(0,i.get)(e.jetpack.publicize.connectUrls,t,null)}},55449:function(e,t,n){"use strict";n.d(t,{V2:function(){return s},x5:function(){return o},u8:function(){return c},Pq:function(){return l},J_:function(){return u},OC:function(){return p},km:function(){return d},tR:function(){return h}});var r=n(19570),i=n(67592);const s=()=>e=>(e({type:i.qU}),r.ZP.fetchRecommendationsData().then((t=>{e({type:i.s6,data:t})})).catch((t=>{e({type:i.z1,error:t})}))),o=e=>t=>{t({type:i.jb,data:e})},a=(e,t)=>{const n=t().jetpack.recommendations;return e({type:i.uG}),r.ZP.saveRecommendationsData(n.data).then((()=>{e({type:i.og})})).catch((t=>{e({type:i.HE,error:t})}))},c=()=>(e,t)=>a(e,t),l=e=>(t,n)=>(t({type:i.XU,slug:e}),a(t,n)),u=e=>(t,n)=>(t({type:i.y$,slug:e}),a(t,n)),p=e=>(t,n)=>{t({type:i.x1,step:e});const s=n().jetpack.recommendations;return r.ZP.updateRecommendationsStep(s.step).then((()=>{t({type:i.kO})})).catch((e=>{t({type:i.i3,error:e})}))},d=()=>e=>(e({type:i.Nk}),r.ZP.fetchRecommendationsProductSuggestions().then((t=>{e({type:i.qY,productSuggestions:t})})).catch((t=>e({type:i.zD,error:t})))),h=()=>e=>(e({type:i.IZ}),r.ZP.fetchRecommendationsUpsell().then((t=>{e({type:i.lh,upsell:t})})).catch((t=>e({type:i.fX,error:t,upsell:{hide_upsell:!0}}))))},90218:function(e,t,n){"use strict";n.d(t,{Pq:function(){return r.Pq},J_:function(){return r.J_},V2:function(){return r.V2},km:function(){return r.km},tR:function(){return r.tR},u8:function(){return r.u8},x5:function(){return r.x5},OC:function(){return r.OC},$q:function(){return i.$q},mI:function(){return i.mI},El:function(){return i.El},Xi:function(){return i.Xi},M:function(){return i.M},TO:function(){return i.TO},CI:function(){return i.CI},jn:function(){return i.jn},dz:function(){return i.dz},WS:function(){return i.WS},at:function(){return i.at},b5:function(){return i.b5},sB:function(){return i.sB},WA:function(){return i.WA},I6:function(){return i.I6}});var r=n(55449),i=n(68054)},68054:function(e,t,n){"use strict";n.d(t,{El:function(){return f},I6:function(){return m},WS:function(){return g},WA:function(){return v},at:function(){return b},b5:function(){return y},$q:function(){return k},dz:function(){return E},sB:function(){return S},TO:function(){return x},mI:function(){return N},M:function(){return A},jn:function(){return O},CI:function(){return T},Xi:function(){return P}});var r=n(65736),i=n(74978),s=n(92819),o=n(67643),a=n(67592),c=n(30701),l=n(17752),u=n(88872),p=n(41147),d=n(61744);const _x=r._x,h=(e,t)=>{if(Array.isArray(e)&&Array.isArray(t))return(0,s.union)(e,t)},f=e=>(0,s.get)(e.jetpack,["recommendations","productSuggestions"],[]),m=(0,i.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.s6:case a.jb:return(0,s.assign)({},e,t.data);case a.XU:{const n=(0,s.mergeWith)({},e,{selectedRecommendations:[t.slug],skippedRecommendations:[]},h);return n.skippedRecommendations=(0,s.difference)(e.skippedRecommendations,[t.slug]),n}case a.y$:{const n=(0,s.mergeWith)({},e,{selectedRecommendations:[],skippedRecommendations:[t.slug]},h);return n.selectedRecommendations=(0,s.difference)(e.selectedRecommendations,[t.slug]),n}default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.qU:return(0,s.assign)({},e,{isFetchingRecommendationsData:!0});case a.s6:return(0,s.assign)({},e,{isRecommendationsDataLoaded:!0,isFetchingRecommendationsData:!1});case a.z1:return(0,s.assign)({},e,{isFetchingRecommendationsData:!1});case a.Nk:return(0,s.assign)({},e,{isFetchingRecommendationsProductSuggestions:!0});case a.qY:case a.zD:return(0,s.assign)({},e,{isFetchingRecommendationsProductSuggestions:!1});case a.IZ:return(0,s.assign)({},e,{isFetchingRecommendationsUpsell:!0});case a.lh:case a.fX:return(0,s.assign)({},e,{isFetchingRecommendationsUpsell:!1});default:return e}},step:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===a.x1?t.step:e},upsell:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.lh:case a.fX:return t.upsell;default:return e}},productSuggestions:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.qY:case a.zD:return t.productSuggestions;default:return e}}}),g=e=>!!e.jetpack.recommendations.requests.isFetchingRecommendationsData,v=e=>!!e.jetpack.recommendations.requests.isRecommendationsDataLoaded,b=e=>!!e.jetpack.recommendations.requests.isFetchingRecommendationsProductSuggestions,y=e=>!!e.jetpack.recommendations.requests.isFetchingRecommendationsUpsell,k=(e,t)=>(0,s.get)(e.jetpack,["recommendations","data",t],!1),w={"setup-wizard-completed":"summary","banner-completed":"woocommerce","not-started":"site-type-question","site-type-question":"product-suggestions","product-suggestions":"woocommerce",woocommerce:"monitor",monitor:"related-posts","related-posts":"creative-mail","creative-mail":"site-accelerator","site-accelerator":"summary",summary:"summary"},_={"not-started":"#/recommendations/site-type","site-type-question":"#/recommendations/site-type","product-suggestions":"#/recommendations/product-suggestions",woocommerce:"#/recommendations/woocommerce",monitor:"#/recommendations/monitor","related-posts":"#/recommendations/related-posts","creative-mail":"#/recommendations/creative-mail","site-accelerator":"#/recommendations/site-accelerator",summary:"#/recommendations/summary"},E=(e,t)=>{switch(t){case"creative-mail":return!!(0,d.TB)(e,"creative-mail-by-constant-contact/creative-mail-plugin.php");case"monitor":return!!(0,l.$8)(e,"monitor");case"related-posts":return!!(0,l.$8)(e,"related-posts");case"site-accelerator":return!!(0,l.$8)(e,"photon")&&(0,l.$8)(e,"photon-cdn");case"woocommerce":return!!(0,d.TB)(e,"woocommerce/woocommerce.php");default:throw`Unknown featureSlug in isFeatureActive() in recommendations/reducer.js: ${t}`}},C=e=>"jetpack_free"===(0,u.UL)(e).product_slug&&!(0,u.b2)(e),S=e=>{if(!C(e))return!1;const t=f(e);return(0,s.isArray)(t)&&!(0,s.isEmpty)(t)},j=(e,t)=>{switch(t){case"setup-wizard-completed":case"banner-completed":case"not-started":return!1;case"site-type-question":case"summary":return!0;case"product-suggestions":return S(e);case"woocommerce":return!!k(e,"site-type-store")&&!E(e,t);case"monitor":return(0,p.it)(e)&&!E(e,t);default:return!E(e,t)}},M=(e,t)=>{let n=w[t];for(;!j(e,n);)n=w[n];return n},x=e=>{const t=""===(0,s.get)(e.jetpack,["recommendations","step"],"")?(0,o.rd)(e):e.jetpack.recommendations.step;return["setup-wizard-completed","banner-completed"].includes(t)?M(e,t):t},N=e=>{const t=x(e),n=M(e,t);return _[n]},A=e=>{const t=["site-type-store","site-type-business","site-type-personal","site-type-other"],n={
+/* translators: A name for a website that sells things */
+"site-type-store":_x("store","Site type display name","jetpack"),
+/* translators: A name for a website for a business */
+"site-type-business":_x("business site","Site type display name","jetpack"),
+/* translators: A name for a website for personal use */
+"site-type-personal":_x("personal site","Site type display name","jetpack"),
+/* translators: A generic name for a website */
+"site-type-other":_x("site","Site type display name","jetpack")};for(const r of t)if(!0===k(e,r))return n[r];return n["site-type-other"]},O=e=>(0,s.get)(e.jetpack,["recommendations","upsell"],{}),T=e=>{const t=["woocommerce","monitor","related-posts","creative-mail","site-accelerator"].filter((t=>((e,t)=>{switch(t){case"woocommerce":return!0===k(e,"site-type-store");case"monitor":return(0,p.it)(e);default:return!0}})(e,t))),n=[],r=[];for(const i of t)E(e,i)?n.push(i):r.push(i);return{selected:n,skipped:r}},P=e=>{const t=(0,u.UL)(e),n=(0,c.of)(e).state;return t.product_slug&&n?C(e)?"upsell":"awaiting_credentials"!==n||(0,u.Ic)(e)?["active","provisioning"].includes(n)?"manage-security":"download-app":"one-click-restores":"loading"}},11681:function(e,t,n){"use strict";var r=n(74978),i=n(31008),s=n(67643),o=n(50046),a=n(6861),c=n(71565),l=n(89238),u=n(93036),p=n(91172),d=n(40054),h=n(79367),f=n(46023),m=n(90218),g=n(79782),v=n(5606),b=n(7053),y=n(36965),k=n(17881),w=n(76719),_=n(82765),E=n(83097),C=n(50093),S=n(36900),j=n(88584);const M=(0,r.UY)({connection:a.I6,dashboard:o.sI,devCard:c.I6,initialState:s.E3,jetpackNotices:u.I6,modules:p.I6,plans:l.I,pluginsData:d.I6,products:h.I6,publicize:f.I6,recommendations:m.I6,rewind:g.I6,scan:v.I6,search:b.I6,settings:y.I6,siteData:k.I6,siteProducts:w.I6,siteVerify:_.I6,disconnectSurvey:E.I6,trackingSettings:C.I6,mobile:S.I6,licensing:j.I6});t.Z=(0,r.UY)({globalNotices:i.x,jetpack:M})},594:function(e,t,n){"use strict";var r=n(74978),i=n(53126),s=n(11681);t.Z=(0,r.qC)((0,r.md)(i.Z),"object"==typeof window&&void 0!==window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__():e=>e)(r.MT)(s.Z)},35922:function(e,t,n){"use strict";n.d(t,{A:function(){return s}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.it}),i.ZP.fetchRewindStatus().then((t=>(e({type:r.Dg,status:t}),t))).catch((t=>{e({type:r.ml,error:t})})))},30701:function(e,t,n){"use strict";n.d(t,{of:function(){return r.of},Li:function(){return r.Li},Au:function(){return i.A}});var r=n(79782),i=n(35922)},79782:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},Li:function(){return c},of:function(){return l}});var r=n(74978),i=n(92819),s=n(67592);const o={isFetchingRewindStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Dg:return(0,i.assign)({},e,{status:t.status});case s.Yk:return(0,i.assign)({},e,{status:t.rewindState});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.it:return(0,i.assign)({},e,{isFetchingRewindStatus:!0});case s.Dg:case s.ml:return(0,i.assign)({},e,{isFetchingRewindStatus:!1});default:return e}}});function c(e){return!!e.jetpack.rewind.requests.isFetchingRewindStatus}function l(e){return(0,i.get)(e.jetpack.rewind,["data","status"],{})}},71943:function(e,t,n){"use strict";n.d(t,{e:function(){return s}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.fe}),i.ZP.fetchScanStatus().then((t=>(e({type:r.N9,status:t}),t))).catch((t=>{e({type:r.vr,error:t})})))},35795:function(e,t,n){"use strict";n.d(t,{C8:function(){return r.C8},gE:function(){return r.gE},eR:function(){return i.e}});var r=n(5606),i=n(71943)},5606:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},gE:function(){return c},C8:function(){return l}});var r=n(74978),i=n(92819),s=n(67592);const o={isFetchingScanStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.N9:return(0,i.assign)({},e,{status:t.status});case s.M0:return{status:{...e.status,...t.scanState}};default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.fe:return(0,i.assign)({},e,{isFetchingScanStatus:!0});case s.N9:case s.vr:return(0,i.assign)({},e,{isFetchingScanStatus:!1});default:return e}}});function c(e){return!!e.jetpack.scan.requests.isFetchingScanStatus}function l(e){return(0,i.get)(e.jetpack.scan,["data","status"],{})}},80878:function(e,t,n){"use strict";n.d(t,{e:function(){return i}});var r=n(67592);const i=e=>t=>{t({type:r.Fc,term:e})}},19555:function(e,t,n){"use strict";n.d(t,{He:function(){return r.He},CX:function(){return r.CX},eb:function(){return i.e}});var r=n(7053),i=n(80878)},7053:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},He:function(){return a},CX:function(){return c}});var r=n(92819),i=n(74978),s=n(67592);const o=(0,i.UY)({searchTerm:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===s.Fc?t.term:e}});function a(e){return e.jetpack.search.searchTerm}function c(e,t){const n=(0,r.find)((0,r.get)(e.jetpack,["modules","items"],{}),["module",t]);if(void 0===n)return!1;const i=(0,r.get)(e.jetpack,["search","searchTerm"],!1);return!i||[n.module,n.name,n.description,n.learn_more_button,n.long_description,n.search_terms,n.additional_search_queries,n.short_description,n.feature?n.feature.toString():""].join(" ").toLowerCase().indexOf(i.toLowerCase())>-1}},39772:function(e,t,n){"use strict";n.d(t,{a6:function(){return l},_1:function(){return u},wv:function(){return p},VP:function(){return d}});var r=n(92819),i=n(65736),s=n(21094),o=n(67592),a=n(93107),c=n(19570);const __=i.__,l=()=>({type:o.Ns}),u=()=>({type:o.TI}),p=()=>e=>(e({type:o.JA}),c.ZP.fetchSettings().then((t=>(e({type:o.dS,settings:t}),t))).catch((t=>{e({type:o.rY,error:t})}))),d=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n=>{const l={progress:__("Updating settings…","jetpack"),success:__("Updated settings.","jetpack"),error:e=>(0,i.sprintf)(
+/* translators: placeholder is an error code or an error message. */
+__("Error updating settings. %s","jetpack"),e.message||e.code||e.name||e),...t};"object"==typeof e&&(0,r.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(t=>t in e))&&(l.success=__("Updated settings. Refreshing page…","jetpack")),n((0,s.qq)("module-setting-update")),n((0,s.qq)("module-setting-update-success"));const u=["dismiss_dash_app_card","dismiss_empty_stats_card"];return"object"!=typeof e||(0,r.some)(u,(t=>t in e))||n((0,s.iI)("is-info",l.progress,{id:"module-setting-update"})),n({type:o.BX,updatedOptions:e}),c.ZP.updateSettings(e).then((t=>{n({type:o.FL,updatedOptions:h(t,e),success:t}),(0,a.DK)(e),(0,a.Uq)(e),n((0,s.qq)("module-setting-update")),n((0,s.qq)("module-setting-update-success")),"object"!=typeof e||(0,r.some)(u,(t=>t in e))||n((0,s.iI)("is-success",l.success,{id:"module-setting-update-success",duration:2e3}))})).catch((t=>{n({type:o.gY,success:!1,error:t,updatedOptions:e}),n((0,s.qq)("module-setting-update")),n((0,s.iI)("is-error",l.error(t),{id:"module-setting-update"}))}))}};function h(e,t){let n=t;return"regenerate"===(0,r.get)(t,"post_by_email_address")&&(n={post_by_email_address:e.post_by_email_address}),n}},17752:function(e,t,n){"use strict";n.d(t,{vU:function(){return r.vU},GD:function(){return r.GD},g0:function(){return r.g0},$8:function(){return r.$8},Gw:function(){return r.Gw},p0:function(){return r.p0},qg:function(){return r.qg},Cu:function(){return r.Cu},_1:function(){return i._1},wv:function(){return i.wv},a6:function(){return i.a6},VP:function(){return i.VP}});var r=n(36965),i=n(39772)},36965:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},Gw:function(){return c},$8:function(){return l},Cu:function(){return u},p0:function(){return p},qg:function(){return d},GD:function(){return h},vU:function(){return f},g0:function(){return m}});var r=n(74978),i=n(92819),s=n(67592);const o={fetchingSettingsList:!1,settingsSent:{},updatedSettings:{}},a=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.R9:return(0,i.assign)({},e,t.initialState.settings);case s.dS:return(0,i.assign)({},t.settings);case s.jH:const n=Object.keys(t.updatedOption)[0];return(0,i.assign)({},e,{[n]:t.updatedOption[n]});case s.FL:return(0,i.assign)({},e,t.updatedOptions);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.JA:return(0,i.assign)({},e,{fetchingSettingsList:!0});case s.rY:case s.dS:return(0,i.assign)({},e,{fetchingSettingsList:!1});case s.q4:case s.BX:return(0,i.merge)({},e,{settingsSent:(0,i.mapValues)(t.updatedOptions,(()=>!0))});case s.QF:case s.jH:case s.gY:case s.FL:return(0,i.merge)({},e,{settingsSent:(0,i.mapValues)(t.updatedOptions,(()=>!1)),updatedSettings:(0,i.mapValues)(t.updatedOptions,(()=>Boolean(t.success)))});default:return e}},unsavedSettingsFlag:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Ns:return!0;case s.TI:return!1;default:return e}}});function c(e){return e.jetpack.settings.items}function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(""===n||(0,i.get)(e.jetpack.settings.items,n,!1))return(0,i.get)(e.jetpack.settings.items,t,void 0)}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"object"==typeof t?(0,i.some)((0,i.filter)(e.jetpack.settings.requests.settingsSent,((e,n)=>(0,i.includes)(t,n))),(e=>e)):e.jetpack.settings.requests.settingsSent[t]}function p(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.jetpack.settings.requests.updatedSettings[t]}function d(e,t){return!!(0,i.get)(e.jetpack.settings.items,[t],!1)}function h(e){return(0,i.get)(e.jetpack.settings,"unsavedSettingsFlag",!1)}function f(e){return(0,i.get)(e.jetpack.settings.items,"dismiss_dash_app_card",!1)}function m(e){return(0,i.get)(e.jetpack.settings.items,"dismiss_empty_stats_card",!1)}},76719:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(67592);const s=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.QD?t.siteProducts:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Pp:return{...e,isFetching:!0};case i.QD:case i.hz:return{...e,isFetching:!1};default:return e}}})},86224:function(e,t,n){"use strict";n.d(t,{n:function(){return a},Z:function(){return c}});var r=n(65736),i=n(67592),s=n(19570),o=n(21094);const __=r.__,a=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return t=>(t({type:i.$F}),s.ZP.fetchVerifySiteGoogleStatus(e).then((e=>{if(e.errors&&e.errors.length>0){const n=Object.keys(e.errors)[0],r=e.errors[n];return t({type:i.b6,error:{code:n,message:r}}),e}return t({type:i.cz,verified:e.verified,token:e.token,isOwner:e.is_owner,searchConsoleUrl:e.google_search_console_url,verificationConsoleUrl:e.google_verification_console_url}),e})).catch((e=>{t({type:i.b6,error:e.response})})))},c=e=>t=>(t({type:i.$d}),s.ZP.verifySiteGoogle(e).then((e=>{if(e.errors&&e.errors.length>0){const n=Object.keys(e.errors)[0],r=e.errors[n];return t({type:i.km,error:{code:n,message:r}}),e}return t({verified:e.verified,isOwner:e.is_owner,searchConsoleUrl:e.google_search_console_url,verificationConsoleUrl:e.google_verification_console_url,type:i.s9}),e.verified&&t((0,o.iI)("is-success",__("Site is verified","jetpack"),{id:"verify-site-google-verified",duration:2e3})),e})).catch((e=>{t({type:i.km,error:e.response})})))},91628:function(e,t,n){"use strict";n.d(t,{_g:function(){return r._g},ou:function(){return r.ou},hr:function(){return r.hr},nZ:function(){return r.nZ},dO:function(){return r.dO},nS:function(){return r.nS},BH:function(){return r.BH},n:function(){return i.n},Zn:function(){return i.Z}});var r=n(82765),i=n(86224)},82765:function(e,t,n){"use strict";n.d(t,{I6:function(){return o},nZ:function(){return a},BH:function(){return c},hr:function(){return l},nS:function(){return u},ou:function(){return p},_g:function(){return d},dO:function(){return h}});var r=n(74978),i=n(92819),s=n(67592);const o=(0,r.UY)({google:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{fetching:!1,verifying:!1,verified:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.$F:return(0,i.assign)({},e,{fetching:!0});case s.b6:return(0,i.assign)({},e,{fetching:!1,error:t.error});case s.cz:return(0,i.assign)({},e,{fetching:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,token:t.token,error:null});case s.$d:return(0,i.assign)({},e,{verifying:!0});case s.s9:return(0,i.assign)({},e,{verifying:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,error:null});case s.km:return(0,i.assign)({},e,{verifying:!1,verified:!1,error:t.error});default:return e}}});function a(e){return(0,i.get)(e,"jetpack.siteVerify.google.fetching",!1)}function c(e){return(0,i.get)(e,"jetpack.siteVerify.google.verifying",!1)}function l(e){return!a(e)&&"no_token_for_user"!==(0,i.get)(e,"jetpack.siteVerify.google.error.code",null)}function u(e){return(0,i.get)(e,"jetpack.siteVerify.google.verified",!1)}function p(e){return(0,i.get)(e,"jetpack.siteVerify.google.error",null)}function d(e){return(0,i.get)(e,"jetpack.siteVerify.google.searchConsoleUrl",null)}function h(e){return(0,i.get)(e,"jetpack.siteVerify.google.isOwner",!1)}},74424:function(e,t,n){"use strict";n.d(t,{tO:function(){return s},ij:function(){return o},lA:function(){return a},Z_:function(){return c}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.rQ}),i.ZP.fetchSiteData().then((t=>(e({type:r.fH,siteData:t}),t))).catch((t=>{e({type:r.l9,error:t})}))),o=()=>e=>(e({type:r.Vl}),i.ZP.fetchSiteFeatures().then((t=>(e({type:r.VN,siteFeatures:t}),t))).catch((t=>{e({type:r.g9,error:t})}))),a=()=>e=>(e({type:r.Fe}),i.ZP.getPlans().then((t=>(e({type:r.lt,plans:t}),t))).catch((t=>{e({type:r.Dz,error:t})}))),c=()=>e=>(e({type:r.Ab}),i.ZP.fetchSitePurchases().then((t=>(e({type:r.Ep,purchases:t}),t))).catch((t=>{e({type:r.zO,error:t})})))},88872:function(e,t,n){"use strict";n.d(t,{Jz:function(){return r.Jz},$l:function(){return r.$l},p:function(){return r.p},nl:function(){return r.nl},ms:function(){return r.ms},Vc:function(){return r.Vc},UL:function(){return r.UL},qn:function(){return r.qn},VH:function(){return r.VH},b7:function(){return r.b7},b2:function(){return r.b2},Ic:function(){return r.Ic},o$:function(){return r.o$},VL:function(){return r.VL},jQ:function(){return r.jQ},_5:function(){return r._5},GR:function(){return r.GR},lA:function(){return i.lA},tO:function(){return i.tO},ij:function(){return i.ij},Z_:function(){return i.Z_}});var r=n(17881),i=n(74424)},36583:function(e,t,n){"use strict";n.d(t,{s:function(){return s}});var r=n(67592),i=n(19570);const s=()=>e=>(e({type:r.Qm}),i.ZP.fetchPluginsData().then((t=>(e({type:r.XP,pluginsData:t}),t))).catch((t=>{e({type:r.K0,error:t})})))},61744:function(e,t,n){"use strict";n.d(t,{bK:function(){return r.bK},vz:function(){return r.vz},TB:function(){return r.TB},P8:function(){return r.P8},s4:function(){return i.s}});var r=n(40054),i=n(36583)},40054:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},vz:function(){return c},bK:function(){return l},TB:function(){return u},P8:function(){return p}});var r=n(92819),i=n(74978),s=n(67592);const o={isFetchingPluginsData:!1},a=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===s.XP?(0,r.assign)({},t.pluginsData):e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.Qm:return(0,r.assign)({},e,{isFetchingPluginsData:!0});case s.K0:case s.XP:return(0,r.assign)({},e,{isFetchingPluginsData:!1});default:return e}}});function c(e){return!!e.jetpack.pluginsData.requests.isFetchingPluginsData}function l(e){return e.jetpack.pluginsData.items}function u(e,t){return e.jetpack.pluginsData.items[t]&&e.jetpack.pluginsData.items[t].active}function p(e,t){return!!e.jetpack.pluginsData.items[t]}},17881:function(e,t,n){"use strict";n.d(t,{I6:function(){return l},Vc:function(){return u},_5:function(){return p},GR:function(){return d},UL:function(){return h},VH:function(){return f},ms:function(){return m},$l:function(){return g},qn:function(){return v},nl:function(){return b},p:function(){return y},b2:function(){return k},Jz:function(){return w},b7:function(){return _},Ic:function(){return E},VL:function(){return C},o$:function(){return S},jQ:function(){return j}});var r=n(74978),i=n(92819),s=n(65736),o=n(81200),a=n(67592);const __=s.__,c={isFetchingSiteData:!1},l=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.fH:return(0,i.assign)({},e,t.siteData);case a.nD:return(0,i.merge)({},e,{site:{benefits:t.siteBenefits}});case a.ar:return(0,i.merge)({},e,{site:{connectedPlugins:t.connectedPlugins}});case a.VN:return(0,i.merge)({},e,{site:{features:t.siteFeatures}});case a.lt:return(0,i.merge)({},e,{sitePlans:t.plans});case a.Ep:return(0,i.merge)({},e,{sitePurchases:t.purchases});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.rQ:return(0,i.assign)({},e,{isFetchingSiteData:!0});case a.Mg:return(0,i.assign)({},e,{isFetchingSiteBenefits:!0});case a.a8:return(0,i.assign)({},e,{isFetchingConnectedPlugins:!0});case a.Vl:return(0,i.assign)({},e,{isFetchingSiteFeatures:!0});case a.Fe:return(0,i.assign)({},e,{isFetchingSitePlans:!0});case a.Ab:return(0,i.assign)({},e,{isFetchingSitePurchases:!0});case a.l9:case a.fH:return(0,i.assign)({},e,{isFetchingSiteData:!1});case a.rw:case a.nD:return(0,i.assign)({},e,{isFetchingSiteBenefits:!1});case a.TR:case a.ar:return(0,i.assign)({},e,{isFetchingConnectedPlugins:!1,isDoneFetchingConnectedPlugins:!0});case a.g9:case a.VN:return(0,i.assign)({},e,{isFetchingSiteFeatures:!1});case a.Dz:case a.lt:return(0,i.assign)({},e,{isFetchingSitePlans:!1});case a.zO:case a.Ep:return(0,i.assign)({},e,{isFetchingSitePurchases:!1});default:return e}},errors:function(){let e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(r.type===a.l9){switch(r.error.name){case"ApiError":e="reconnect",t=__("There seems to be a problem with your connection to WordPress.com. If the problem persists, try reconnecting.","jetpack");break;case"JsonParseError":e="support",t=__("Jetpack encountered an error and was unable to display the Dashboard. Please try refreshing the page.","jetpack");break;default:e=null,t=__("There seems to be a problem with your website.","jetpack")}return(0,i.assign)({},n,{message:r.error.hasOwnProperty("response")?r.error.response.message:t,action:e,code:r.error.hasOwnProperty("response")?r.error.response.code:"fetch_site_data_fail_other",data:r.error.hasOwnProperty("response")?r.error.response.data:{}})}return n}});function u(e){return[(0,i.get)(e.jetpack.siteData,["errors"],[])]}function p(e){return!!(e.jetpack.siteData.requests.isFetchingSiteData||e.jetpack.siteData.requests.isFetchingSiteFeatures||e.jetpack.siteData.requests.isFetchingSitePlans||e.jetpack.siteData.requests.isFetchingSitePurchases)}function d(e){return!!e.jetpack.siteData.requests.isFetchingSitePurchases}function h(e){return(0,i.get)(e.jetpack.siteData,["data","plan"],{})}function f(e){return(0,i.get)(e.jetpack.siteData,["data","options","videopress_storage_used"],null)}function m(e){return(0,i.get)(e.jetpack.siteData,["data","site","features","available"],{})}function g(e){return(0,i.get)(e.jetpack.siteData,["data","site","features","active"],[])}function v(e){return(0,i.get)(e.jetpack.siteData,["data","sitePurchases"],[])}function b(e){return v(e).filter((e=>"1"===e.active))}function y(e){return b(e).filter((e=>(0,o.yy)(e.product_slug)))}function k(e){return y(e).length>0}function w(e){return(0,i.find)(y(e),(e=>(0,o.MC)(e.product_slug)))}function _(e){return!!w(e)}function E(e){return!!function(e){return(0,i.find)(y(e),(e=>(0,o.oF)(e.product_slug)))}(e)}function C(e){return!!function(e){return(0,i.find)(b(e),(e=>(0,o.DM)(e.product_slug)))}(e)||"is-complete-plan"===(0,o.sc)(h(e).product_slug)}function S(e){return!!function(e){return(0,i.find)(y(e),(e=>(0,o.Cv)(e.product_slug)))}(e)||"is-complete-plan"===(0,o.sc)(h(e).product_slug)}function j(e){return!!function(e){return(0,i.find)(y(e),(e=>(0,o.ZH)(e.product_slug)))}(e)}},64362:function(e,t,n){"use strict";n.d(t,{$:function(){return a},X:function(){return c}});var r=n(65736),i=n(21094),s=n(67592),o=n(19570);const __=r.__,a=()=>e=>(e({type:s.T}),o.ZP.fetchUserTrackingSettings().then((t=>(e({type:s.X0,settings:t}),t))).catch((t=>{e({type:s.YD,error:t})}))),c=e=>t=>{const n={progress:__("Updating privacy settings…","jetpack"),success:__("Updated privacy settings.","jetpack"),error:e=>(0,r.sprintf)(
+/* translators: placeholder is an error message. */
+__("Error updating privacy settings. %s","jetpack"),e.message||e.code||e.name||e)};return t((0,i.qq)("tracking-settings-update")),t((0,i.qq)("tracking-settings-update-success")),t((0,i.iI)("is-info",n.progress,{id:"tracking-settings-update"})),t({type:s.kK,updatedSettings:e}),o.ZP.updateUserTrackingSettings(e).then((r=>{t({type:s.TB,updatedSettings:e,success:r}),t((0,i.qq)("tracking-settings-update")),t((0,i.qq)("tracking-settings-update-success")),t((0,i.iI)("is-success",n.success,{id:"tracking-settings-update-success",duration:2e3}))})).catch((r=>{t({type:s.rA,updatedSettings:e,success:!1,error:r}),t((0,i.qq)("tracking-settings-update")),t((0,i.qq)("tracking-settings-update-success")),t((0,i.iI)("is-error",n.error(r),{id:"tracking-settings-update"}))}))}},50093:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},AO:function(){return c},ab:function(){return l},Ak:function(){return u}});var r=n(92819),i=n(74978),s=n(67592);const o={fetchingTrackingSettings:!1,updatingTrackingSettings:!1},a=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.X0:return(0,r.assign)({},e,t.settings);case s.TB:return(0,r.assign)({},e,t.updatedSettings);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.T:return(0,r.assign)({},e,{fetchingTrackingSettings:!0});case s.YD:case s.X0:return(0,r.assign)({},e,{fetchingTrackingSettings:!1});case s.kK:return(0,r.assign)({},e,{updatingTrackingSettings:!0});case s.rA:case s.TB:return(0,r.assign)({},e,{updatingTrackingSettings:!1});default:return e}}});function c(e){return e.jetpack.trackingSettings.items}function l(e){return e.jetpack.trackingSettings.requests.fetchingTrackingSettings}function u(e){return e.jetpack.trackingSettings.requests.updatingTrackingSettings}},37247:function(e,t,n){"use strict";n.d(t,{f:function(){return C}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(69307),u=n(65736),p=n(71415),d=n(11973),h=n(60742),f=n(94069),m=n(68961),g=n(81200),v=n(55735),b=n(50844),y=n(5e4),k=n(77222),w=n(84277),_=n(27006),E=n(15029);const __=u.__,_x=u._x,C=(0,y.u)(class extends c().Component{constructor(){super(...arguments),o()(this,"updateOptions",(e=>{this.props.updateFormStateModuleOption("wordads",e)})),o()(this,"trackConfigureClick",(()=>{d.Z.tracks.recordJetpackClick("view-earnings")})),o()(this,"trackConfigureWidgetClick",(()=>{d.Z.tracks.recordJetpackClick("place_ad_widget")})),o()(this,"handleChange",(e=>()=>this.updateOptions(e)))}renderAdsTxtSection(){const{getOptionValue:e,isUnavailableInOfflineMode:t}=this.props,n=e("wordads_custom_adstxt_enabled","wordads"),r=e("wordads_custom_adstxt","wordads"),i=e("wordads"),s=t("wordads");return c().createElement(_.Z,{hasChild:!0,support:{text:__("Ads.txt (Authorized Digital Sellers) is a mechanism that enables content owners to declare who is authorized to sell their ad inventory. It’s the formal list of advertising partners you support as a publisher.","jetpack"),link:"https://jetpack.com/support/ads/"}},c().createElement(f.Z,{checked:n,disabled:!i||s||this.props.isSavingAnyOption(["wordads","wordads_custom_adstxt_enabled"]),onChange:this.handleChange("wordads_custom_adstxt_enabled")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Customize your ads.txt file","jetpack"))),n&&c().createElement(v.C_,null,c().createElement("br",null),c().createElement("p",null,i&&(0,l.createInterpolateElement)(__("Jetpack Ads automatically generates a custom <link1>ads.txt</link1> tailored for your site. If you need to add additional entries for other networks please add them in the space below, one per line. <link2>Check here for more details</link2>.","jetpack"),{link1:c().createElement("a",{href:"/ads.txt",target:"_blank",rel:"noopener noreferrer"}),link2:c().createElement("a",{href:(0,p.Z)("jetpack-how-jetpack-ads-members-can-increase-their-earnings-with-ads-txt"),target:"_blank",rel:"noopener noreferrer"})}),!i&&__("When ads are enabled, Jetpack automatically generates a custom ads.txt tailored for your site.","jetpack")),c().createElement(b.Z,{name:"wordads_custom_adstxt",value:r,disabled:!i||s||this.props.isSavingAnyOption(["wordads","wordads_custom_adstxt"]),onChange:this.props.onOptionChange})))}render(){const e=this.props.getOptionValue("wordads"),t=this.props.isUnavailableInOfflineMode("wordads"),n=this.props.getOptionValue("enable_header_ad","wordads"),r=this.props.getOptionValue("wordads_second_belowpost","wordads"),s=this.props.getOptionValue("wordads_display_front_page","wordads"),o=this.props.getOptionValue("wordads_display_post","wordads"),a=this.props.getOptionValue("wordads_display_page","wordads"),u=this.props.getOptionValue("wordads_display_archive","wordads"),d=this.props.getOptionValue("wordads_ccpa_enabled","wordads"),b=this.props.getOptionValue("wordads_ccpa_privacy_policy_url","wordads"),y=-1!==this.props.siteRawUrl.indexOf("::");return c().createElement(w.Z,i()({},this.props,{header:_x("Ads","Ads header","jetpack"),feature:g.N8,saveDisabled:this.props.isSavingAnyOption(["wordads_custom_adstxt"])}),c().createElement(_.Z,{disableInOfflineMode:!0,hasChild:!0,module:{module:"wordads"},support:{text:__("Displays high-quality ads on your site that allow you to earn income.","jetpack"),link:(0,p.Z)("jetpack-support-ads")}},c().createElement("p",null,__("Show ads on the first article on your home page or at the end of every page and post. Place additional ads at the top of your site and to any widget area to increase your earnings.","jetpack"),c().createElement("br",null),c().createElement("small",{className:"jp-form-setting-explanation"},(0,l.createInterpolateElement)(__("By activating ads, you agree to the Automattic Ads <link>Terms of Service</link>.","jetpack"),{link:c().createElement("a",{href:(0,p.Z)("wpcom-automattic-ads-tos"),target:"_blank",rel:"noopener noreferrer",onClick:this.trackConfigureWidgetClick})}))),c().createElement(k.T,{slug:"wordads",disabled:t,activated:e,toggling:this.props.isSavingAnyOption("wordads"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable ads and display an ad below each post","jetpack"))),c().createElement(v.C_,null,c().createElement(v.Gj,null,__("Display ads below posts on","jetpack")),c().createElement(f.Z,{checked:s,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_front_page"]),onChange:this.handleChange("wordads_display_front_page")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Front page","jetpack"))),c().createElement(f.Z,{checked:o,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_post"]),onChange:this.handleChange("wordads_display_post")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Posts","jetpack"))),c().createElement(f.Z,{checked:a,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_page"]),onChange:this.handleChange("wordads_display_page")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Pages","jetpack"))),c().createElement(f.Z,{checked:u,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_display_archive"]),onChange:this.handleChange("wordads_display_archive")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Archives","jetpack")))),c().createElement(v.C_,null,c().createElement(v.Gj,null,__("Additional ad placements","jetpack")),c().createElement(f.Z,{checked:n,disabled:!e||t||this.props.isSavingAnyOption(["wordads","enable_header_ad"]),onChange:this.handleChange("enable_header_ad")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Top of each page","jetpack"))),c().createElement(f.Z,{checked:r,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_second_belowpost"]),onChange:this.handleChange("wordads_second_belowpost")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Second ad below post","jetpack"))),c().createElement("small",{className:"jp-form-setting-explanation"},e&&(0,l.createInterpolateElement)(__("You can place additional ads using the Ad widget. <link>Try it out!</link>","jetpack"),{link:c().createElement("a",{className:"jp-module-settings__external-link",href:"customize.php?autofocus[panel]=widgets"})})))),c().createElement(_.Z,{hasChild:!0,support:{text:__("Enables a targeted advertising opt-out link for California consumers, as required by the California Consumer Privacy Act (CCPA).","jetpack"),link:this.props.isAtomicSite?(0,p.Z)("wpcom-support-ccpa"):(0,p.Z)("jetpack-support-ads")}},c().createElement(f.Z,{checked:d,disabled:!e||t||this.props.isSavingAnyOption(["wordads","wordads_ccpa_enabled"]),onChange:this.handleChange("wordads_ccpa_enabled")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enable targeted advertising to California site visitors (CCPA)","jetpack"))),d&&c().createElement(v.C_,null,c().createElement("p",null,c().createElement("small",{className:"jp-form-setting-explanation"},(0,l.createInterpolateElement)(__("For more information about the California Consumer Privacy Act (CCPA) <br/>and how it pertains to your site, please consult our <link>CCPA guide for site owners</link>.","jetpack"),{br:c().createElement("br",null),link:c().createElement(m.Z,{icon:!0,href:this.props.isAtomicSite?(0,p.Z)("wpcom-support-ccpa"):(0,p.Z)("jetpack-support-ads"),target:"_blank",rel:"noopener noreferrer"})}))),c().createElement("p",null,c().createElement(v.Gj,null,__("Do Not Sell Link","jetpack")),(0,l.createInterpolateElement)(__('CCPA requires that you place a "Do Not Sell My Personal Information" link on every page of your site where targeted advertising will appear. <br/>You can use the <widgetLink>Do Not Sell Link (CCPA) Widget</widgetLink>, or the <code>[ccpa-do-not-sell-link]</code> shortcode to automatically place this link on your site. Note: the link will always display to logged in administrators regardless of geolocation.',"jetpack"),{br:c().createElement("br",null),code:c().createElement("code",null),widgetLink:c().createElement("a",{className:"jp-module-settings__external-link",href:"customize.php?autofocus[panel]=widgets"})}),c().createElement("span",{className:"jp-form-setting-explanation"},__("Failure to add this link will result in non-compliance with CCPA.","jetpack")))),d&&c().createElement(v.C_,null,c().createElement(v.Gj,null,__("Privacy Policy URL","jetpack")),c().createElement(E.Z,{name:"wordads_ccpa_privacy_policy_url",placeholder:"https://",value:b,disabled:!e||t||!d||this.props.isSavingAnyOption(["wordads","wordads_ccpa_privacy_policy_url"]),onChange:this.props.onOptionChange}),c().createElement("span",{className:"jp-form-setting-explanation"},__("Adds a link to your privacy policy to the bottom of the CCPA notice popup (optional).","jetpack")))),!y&&this.renderAdsTxtSection(),!t&&e&&c().createElement(h.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},__("View your earnings","jetpack")))}})},92897:function(e,t,n){"use strict";n.d(t,{W:function(){return g}});var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(69307),c=n(65736),l=n(71415),u=n(11973),p=n(60742),d=n(81200),h=n(5e4),f=n(84277),m=n(27006);const __=c.__,_x=c._x,g=(0,h.u)(class extends s.Component{trackConfigureClick(){u.Z.tracks.recordJetpackClick("configure-ga")}render(){return o().createElement(f.Z,i()({},this.props,{header:_x("Google Analytics","Settings header","jetpack"),feature:d.r2,hideButton:!0}),o().createElement(m.Z,{disableInOfflineMode:!0,module:{module:"google-analytics"},support:{text:__("Integrates your WordPress site with Google Analytics, a platform that offers insights into your traffic, visitors, and conversions.","jetpack"),link:(0,l.Z)("jetpack-support-google-analytics")}},(0,a.createInterpolateElement)(__("Google Analytics is a free service that complements our <a>built-in stats</a> with different insights into your traffic. WordPress.com stats and Google Analytics use different methods to identify and track activity on your site, so they will normally show slightly different totals for your visits, views, etc.","jetpack"),{a:o().createElement("a",{href:(0,l.Z)("calypso-stats-day",{site:this.props.siteRawUrl})})})),!this.props.isUnavailableInOfflineMode("google-analytics")&&o().createElement(p.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},__("Configure your Google Analytics settings","jetpack")))}})},97640:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(60742),h=n(93107),f=n(17752),m=n(41147),g=n(19555),v=n(27219),b=n(98692),y=n(92897),k=n(37247),w=n(3625),_=n(38571),E=n(39986),C=n(11031),S=n(95908),j=n(66552);const __=u.__;class M extends c().Component{render(){const e={settings:this.props.settings,siteRawUrl:this.props.siteRawUrl,getModule:this.props.module,isSiteConnected:this.props.isSiteConnected,isOfflineMode:this.props.isOfflineMode,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode,getModuleOverride:this.props.getModuleOverride,hasConnectedOwner:this.props.hasConnectedOwner},t=this.props.isModuleFound("seo-tools"),n=this.props.isModuleFound("wordads"),r=this.props.isModuleFound("stats"),s=this.props.isModuleFound("shortlinks"),o=this.props.isModuleFound("related-posts"),a=this.props.isModuleFound("verification-tools"),l=this.props.isModuleFound("sitemaps"),u=this.props.isModuleFound("google-analytics");return(this.props.searchTerm||this.props.active)&&(t||n||r||s||o||a||l||u)?c().createElement("div",null,c().createElement(v.Z,null),c().createElement(d.Z,{title:this.props.searchTerm?__("Traffic","jetpack"):__("Maximize your site’s visibility in search engines and view traffic stats in real time.","jetpack"),className:"jp-settings-description"}),n&&c().createElement(k.f,i()({},e,{isAtomicSite:this.props.isAtomicSite,configureUrl:(0,p.Z)("calypso-stats-ads-day",{site:this.props.siteRawUrl})})),o&&c().createElement(E.Z,i()({},e,{configureUrl:this.props.siteAdminUrl+"customize.php?autofocus[section]=jetpack_relatedposts&return="+encodeURIComponent(this.props.siteAdminUrl+"admin.php?page=jetpack#/traffic")+"&url="+encodeURIComponent(this.props.lastPostUrl)})),t&&c().createElement(b.ZP,i()({},e,{configureUrl:(0,p.Z)("calypso-marketing-traffic",{site:this.props.siteRawUrl,anchor:"seo"})})),u&&c().createElement(y.W,i()({},e,{configureUrl:(0,p.Z)("calypso-marketing-traffic",{site:this.props.siteRawUrl,anchor:"analytics"})})),r&&c().createElement(w.V,e),s&&c().createElement(_.Z,e),l&&c().createElement(S.Z,e),a&&c().createElement(C.W,e)):null}}o()(M,"displayName","TrafficSettings"),t.Z=(0,l.$j)((e=>({module:t=>(0,h.rT)(e,t),settings:(0,f.Gw)(e),isOfflineMode:(0,m.Ex)(e),isUnavailableInOfflineMode:t=>(0,m.t_)(e,t),isModuleFound:t=>(0,g.CX)(e,t),isSiteConnected:(0,m.q7)(e),lastPostUrl:(0,j.Z2)(e),getModuleOverride:t=>(0,h.Qy)(e,t),isAtomicSite:(0,j.Ug)(e),hasConnectedOwner:(0,m.it)(e)})))(M)},39986:function(e,t,n){"use strict";n.d(t,{Z:function(){return w}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(69307),u=n(65736),p=n(71415),d=n(11973),h=n(60742),f=n(94069),m=n(55735),g=n(77222),v=n(5e4),b=n(84277),y=n(27006);const __=u.__,_x=u._x;class k extends c().Component{constructor(){super(...arguments),o()(this,"state",{show_headline:this.props.getOptionValue("show_headline","related-posts"),show_thumbnails:this.props.getOptionValue("show_thumbnails","related-posts")}),o()(this,"updateOptions",(e=>{this.setState({[e]:!this.state[e]},this.props.updateFormStateModuleOption("related-posts",e))})),o()(this,"handleShowHeadlineToggleChange",(()=>{this.updateOptions("show_headline")})),o()(this,"handleShowThumbnailsToggleChange",(()=>{this.updateOptions("show_thumbnails")})),o()(this,"trackConfigureClick",(()=>{d.Z.tracks.recordJetpackClick("configure-related-posts")}))}render(){const e=this.props.getOptionValue("related-posts"),t=this.props.isUnavailableInOfflineMode("related-posts");return c().createElement(b.Z,i()({},this.props,{hideButton:!0,module:"related-posts"}),c().createElement(y.Z,{hasChild:!0,disableInOfflineMode:!0,module:this.props.getModule("related-posts"),support:{text:__("The feature helps visitors find more of your content by displaying related posts at the bottom of each post.","jetpack"),link:(0,p.Z)("jetpack-support-related-posts")}},c().createElement("p",null,(0,l.createInterpolateElement)(__("Keep your visitors engaged with related content at the bottom of each post. These settings won’t apply to <a>related posts added using the block editor</a>.","jetpack"),{a:c().createElement("a",{href:(0,p.Z)("jetpack-support-jetpack-blocks-related-posts-block"),target:"_blank",rel:"noopener noreferrer"})})),c().createElement(g.T,{slug:"related-posts",disabled:t,activated:e,toggling:this.props.isSavingAnyOption("related-posts"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Show related content after posts","jetpack"))),c().createElement(m.C_,null,c().createElement(f.Z,{checked:this.state.show_headline,disabled:!e||t||this.props.isSavingAnyOption(["related-posts","show_headline"]),onChange:this.handleShowHeadlineToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Highlight related content with a heading","jetpack"))),c().createElement(f.Z,{checked:this.state.show_thumbnails,disabled:!e||t||this.props.isSavingAnyOption(["related-posts","show_thumbnails"]),onChange:this.handleShowThumbnailsToggleChange},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Show a thumbnail image where available","jetpack"))),e&&c().createElement("div",null,c().createElement(m.lX,{className:"jp-form-label-wide"},_x("Preview","A header for a preview area in the configuration screen.","jetpack")),c().createElement(h.Z,{className:"jp-related-posts-preview"},this.state.show_headline&&c().createElement("div",{className:"jp-related-posts-preview__title"},__("Related","jetpack")),[{url:"cat-blog.png",text:__("Big iPhone/iPad Update Now Available","jetpack"),context:_x('In "Mobile"',"It refers to the category where a post was found. Used in an example preview.","jetpack")},{url:"devices.jpg",text:__("The WordPress for Android App Gets a Big Facelift","jetpack"),context:_x('In "Mobile"',"It refers to the category where a post was found. Used in an example preview.","jetpack")},{url:"mobile-wedding.jpg",text:__("Upgrade Focus: VideoPress For Weddings","jetpack"),context:_x('In "Upgrade"',"It refers to the category where a post was found. Used in an example preview.","jetpack")}].map(((e,t)=>c().createElement("div",{key:`preview_${t}`,className:"jp-related-posts-preview__item"},this.state.show_thumbnails&&c().createElement("img",{src:`https://jetpackme.files.wordpress.com/2019/03/${e.url}`,alt:e.text}),c().createElement("h4",{className:"jp-related-posts-preview__post-title"},c().createElement("a",{href:"#/traffic"},e.text)),c().createElement("p",{className:"jp-related-posts-preview__post-context"},e.context)))))))),!this.props.isUnavailableInOfflineMode("related-posts")&&e&&c().createElement(h.Z,{compact:!0,className:"jp-settings-card__configure-link",onClick:this.trackConfigureClick,href:this.props.configureUrl},__("Configure related posts in the Customizer","jetpack")))}}const w=(0,v.u)(k)},98692:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(80505),d=n(52489),h=n(79465),f=n(62470),m=n(89105),g=n.n(m),v=n(71415),b=n(5e4),y=n(84277),k=n(27006),w=n(77222),_=n(55735),E=n(78919),C=n(47349),S=n(88001),j=n(61744),M=n(9913);const __=u.__,_x=u._x,_n=u._n,x=[{name:"Yoast SEO",slug:"wordpress-seo/wp-seo.php"},{name:"Yoast SEO Premium",slug:"wordpress-seo-premium/wp-seo-premium.php"},{name:"All In One SEO Pack",slug:"all-in-one-seo-pack/all_in_one_seo_pack.php"},{name:"All in One SEO Pack Pro",slug:"all-in-one-seo-pack-pro/all_in_one_seo_pack.php"}],N=(0,b.u)(class extends a.Component{constructor(){super(...arguments),o()(this,"constants",{frontPageMetaMaxLength:300,frontPageMetaSuggestedLength:159,moduleOptionsArray:["advanced_seo_front_page_description","advanced_seo_title_formats"],siteIconPreviewSize:512}),o()(this,"SocialPreviewGoogle",(e=>c().createElement(p.Z,{title:e.title,url:e.url,description:e.frontPageMetaDescription}))),o()(this,"SocialPreviewFacebook",(e=>c().createElement(d.Z,{title:e.title,url:e.url,type:"website",description:e.frontPageMetaDescription,image:e.image}))),o()(this,"SocialPreviewTwitter",(e=>c().createElement(h.Z,{title:e.title,url:e.url,type:"summary",description:e.frontPageMetaDescription,image:e.image}))),o()(this,"updateCustomSeoTitleInputState",(e=>{this.props.updateFormStateOptionValue("advanced_seo_title_formats",e)})),o()(this,"saveButton",(e=>{const t=this.props.isSavingAnyOption(this.constants.moduleOptionsArray);return c().createElement(M.Z,{primary:!0,compact:!0,type:"submit",disabled:t||!e.isDirty()},t?_x("Saving…","Button caption","jetpack"):_x("Save settings","Button caption","jetpack",0))}))}render(){const e=this.props.isOfflineMode,t=this.props.getModule("seo-tools"),n=this.props.getOptionValue(t.module),r=this.props.getOptionValue("advanced_seo_title_formats"),s=this.props.getOptionValue("advanced_seo_front_page_description"),o={title:this.props.siteData.name||"",tagline:this.props.siteData.description||"",url:this.props.siteData.URL||"",frontPageMetaDescription:s||(this.props.siteData.description||""),image:this.props.siteData.icon?.img?`${this.props.siteData.icon.img}?s=${this.constants.siteIconPreviewSize}`:""},a=x.reduce(((e,t)=>((0,j.TB)(this.props.state,t.slug)&&e.push(t),e)),[]),l=a.length>0,p=g()({"jp-seo-front-page-description-count":!0,"jp-seo-front-page-description-count-max":s.length>=this.constants.frontPageMetaMaxLength,"jp-seo-front-page-description-count-warn":s.length>this.constants.frontPageMetaSuggestedLength&&s.length<this.constants.frontPageMetaMaxLength});return c().createElement(y.Z,i()({},this.props,{header:_x("Search engine optimization","Settings header","jetpack"),feature:"seo-tools-jetpack",module:t.module,saveDisabled:this.props.isSavingAnyOption(this.constants.moduleOptionsArray),hideButton:l}),c().createElement(k.Z,{disableInOfflineMode:!0,module:{module:"seo-tools"},support:{text:__("Allows you to optimize your site and its content for better results in search engines.","jetpack"),link:(0,v.Z)("jetpack-support-seo-tools")}},l&&c().createElement(S.Z,{showDismiss:!1},(0,u.sprintf)(
+/* translators: %s is the name of conflicting SEO plugin */
+__("Your SEO settings are managed by the following plugin: %s","jetpack"),a[0].name)),c().createElement("p",null,__("Take control of the way search engines represent your site. With Jetpack’s SEO tools you can preview how your content will look on popular search engines and change items like your site name and tagline in seconds.","jetpack")),c().createElement(w.T,{slug:"seo-tools",activated:n,toggling:this.props.isSavingAnyOption(t.module),disabled:this.props.isSavingAnyOption(this.constants.moduleOptionsArray)||l,toggleModule:this.props.toggleModuleNow},__("Customize your SEO settings","jetpack"))),n&&!e&&!(0,j.vz)(this.props.state)&&!l&&c().createElement("div",null,c().createElement(E.Z,{header:__("Expand to customize the page title structures of your site.","jetpack"),clickableHeader:!0,className:"jp-seo-custom-titles-card"},c().createElement(k.Z,null,c().createElement("p",null,__("You can set the structure of page titles for different sections of your site. Doing this will change the way your site title is displayed in search engines, social media sites, and browser tabs.","jetpack")),c().createElement(_.C_,null,c().createElement(C.ZP,{customSeoTitles:r,updateCustomSeoTitleInputState:this.updateCustomSeoTitleInputState,siteData:o})),c().createElement("div",{className:"jp-seo-custom-titles-save-button"},this.saveButton(this.props)))),c().createElement(E.Z,{header:__("Expand to edit your front page meta description.","jetpack"),clickableHeader:!0,className:"jp-seo-front-page-description-card"},c().createElement(k.Z,null,c().createElement("p",{style:{clear:"both"}},__("Craft a description of your Website: up to 160 characters that will be used in search engine results for your front page, and when your website is shared on social media sites.","jetpack")),c().createElement(_.lX,{htmlFor:"jp-seo-front-page-description"},c().createElement("span",{className:"jp-form-label-wide"},__("Front Page Meta Description","jetpack"))),c().createElement("div",{className:"jp-seo-front-page-description-container"},c().createElement(_.B1,{name:"advanced_seo_front_page_description",id:"jp-seo-front-page-description",className:"jp-form-textarea-wide",maxLength:this.constants.frontPageMetaMaxLength,value:s,onChange:this.props.onOptionChange}),c().createElement("div",{className:p},(0,u.sprintf)(
+/* translators: placeholder is number of characters */
+_n("%d character","%d characters",s.length,"jetpack"),s.length),s.length>=this.constants.frontPageMetaMaxLength&&" - "+__("Maximum characters reached.","jetpack"))),c().createElement("div",{className:"jp-seo-front-page-description-save-button"},this.saveButton(this.props)))),c().createElement(E.Z,{header:__("Expand to preview how the SEO settings will look for your homepage on Google, Facebook, and Twitter.","jetpack"),clickableHeader:!0,className:"jp-seo-social-previews"},c().createElement("div",{className:"jp-seo-social-previews-container"},c().createElement(f.Z,{icon:"google",size:24}),c().createElement("span",{className:"jp-seo-social-previews-label"},__("Google search","jetpack"))),this.SocialPreviewGoogle(o),c().createElement("hr",null),c().createElement("div",{className:"jp-seo-social-previews-container"},c().createElement(f.Z,{icon:"facebook",size:24}),c().createElement("span",{className:"jp-seo-social-previews-label"},__("Facebook","jetpack"))),this.SocialPreviewFacebook(o),c().createElement("hr",null),c().createElement("div",{className:"jp-seo-social-previews-container"},c().createElement(f.Z,{icon:"twitter-alt",size:24}),c().createElement("span",{className:"jp-seo-social-previews-label"},__("Twitter","jetpack"))),this.SocialPreviewTwitter(o))))}});t.ZP=(0,l.$j)((e=>({siteData:e.jetpack.siteData.data,state:e})))(N)},47349:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),s=n(65736),o=n(15029),a=n(55735),c=n(9913);const __=s.__,l={pageTypes:[{name:"front_page",label:__("Front Page","jetpack")},{name:"posts",label:__("Posts","jetpack")},{name:"pages",label:__("Pages","jetpack")},{name:"groups",label:__("Tags","jetpack")},{name:"archives",label:__("Archives","jetpack")}],insertableTokens:{site_name:__("Site Title","jetpack"),tagline:__("Tagline","jetpack"),post_title:__("Post Title","jetpack"),page_title:__("Page Title","jetpack"),group_title:__("Tag or Category Name","jetpack"),date:__("Date","jetpack"),archive_title:__("Archive Title","jetpack")},tokensAvailablePerPageType:{front_page:["site_name","tagline"],posts:["site_name","tagline","post_title"],pages:["site_name","tagline","page_title"],groups:["site_name","tagline","group_title"],archives:["site_name","tagline","date","archive_title"]}},u=e=>{let{pageType:t,customSeoTitleInputRef:n,handleCustomSeoTitleInput:s,token:o}=e;const a=(0,r.useCallback)((()=>{const e=n.current;e.focus();const r=`[${o}]`,i=e.refs.textField.selectionStart,a=e.props.value.substring(0,i),c=e.props.value.substring(i,e.props.value.length);s(t,a+r+c)}),[t,n,s,o]);return i().createElement(c.Z,{className:"jp-seo-custom-titles-input-button",compact:!0,onClick:a},l.insertableTokens[o])},p=e=>{let{pageType:t,customSeoTitleInputRef:n,handleCustomSeoTitleInput:c,value:p,siteData:d}=e;return i().createElement("div",{className:`jp-seo-custom-titles-input-container-${t.name}`,key:t.name},i().createElement("div",{className:"jp-seo-custom-titles-input-controls"},i().createElement(a.lX,{className:"jp-seo-custom-titles-input-label",htmlFor:`jp-seo-custom-titles-input-${t.name}`},i().createElement("span",{className:"jp-form-label"},t.label)),i().createElement("div",null,((e,t,n)=>l.tokensAvailablePerPageType[e.name].map((r=>"archives"===e.name&&"date"===r?null:i().createElement(u,{pageType:e,customSeoTitleInputRef:t,handleCustomSeoTitleInput:n,token:r}))))(t,n,c))),i().createElement(o.Z,{id:`jp-seo-custom-titles-input-${t.name}`,className:"jp-seo-custom-titles-input",value:p,onChange:(0,r.useCallback)((e=>c(t,e.target.value)),[c,t]),ref:n}),i().createElement("div",{className:"jp-seo-custom-titles-input-preview"},((e,t,n)=>(l.tokensAvailablePerPageType[e.name].forEach((e=>{switch(e){case"site_name":t=t.replace(/\[site_name\]/g,n.title);break;case"tagline":t=t.replace(/\[tagline\]/g,n.tagline);break;case"post_title":t=t.replace(/\[post_title\]/g,__("Example Title","jetpack"));break;case"page_title":t=t.replace(/\[page_title\]/g,__("Example Title","jetpack"));break;case"group_title":t=t.replace(/\[group_title\]/g,__("Tag","jetpack"));break;case"date":case"archive_title":t=t.replace(/\[archive_title\]|\[date\]/g,__("Example Archive Title/Date","jetpack"))}})),(0,s.sprintf)(
+/* translators: %s is the preview text for a custom SEO input */
+__("Preview: %s","jetpack"),t)))(t,p,d)))};t.ZP=e=>{const[t]=(0,r.useState)({front_page:i().createRef(),posts:i().createRef(),pages:i().createRef(),groups:i().createRef(),archives:i().createRef()}),n=l.pageTypes.reduce(((t,n)=>{var r;return t[n.name]=(r=e.customSeoTitles[n.name],Array.isArray(r)?r.reduce(((e,t)=>e+("token"===t.type?`[${t.value}]`:t.value)),""):""),t}),{}),s=e.updateCustomSeoTitleInputState,o=(0,r.useCallback)(((e,t)=>{n[e.name]=t;const r=Object.keys(n).reduce(((e,t)=>(e[t]=((e,t)=>e.split(/(\[(?:site_name|tagline|post_title|page_title|group_title|date|archive_title)\])/).filter((e=>{if(e)return e})).map((e=>{let n=null;return Object.keys(l.insertableTokens).map((t=>{e===`[${t}]`&&(n=t)})),n&&l.tokensAvailablePerPageType[t].includes(n)?{type:"token",value:n}:{type:"string",value:e}})))(n[t],t),e)),{});s(r)}),[n,s]);return i().createElement("div",{className:"jp-seo-custom-titles"},l.pageTypes.map((r=>i().createElement(p,{pageType:r,value:n[r.name],handleCustomSeoTitleInput:o,customSeoTitleInputRef:t[r.name],siteData:e.siteData}))))}},38571:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(71415),u=n(5e4),p=n(93107),d=n(84277),h=n(27006),f=n(77222);const __=c.__,_x=c._x;class m extends s.Component{render(){const{isSiteConnected:e}=this.props;return o().createElement(d.Z,i()({},this.props,{header:_x("WP.me Shortlinks","Settings header","jetpack"),module:"shortlinks",hideButton:!0}),o().createElement(h.Z,{module:{module:"shortlinks"},support:{text:this.props.shortlinksModule.description,link:(0,l.Z)("jetpack-support-shortlinks")},disableInOfflineMode:!0},o().createElement(f.T,{slug:"shortlinks",disabled:!e,activated:this.props.shortlinksActive,toggling:this.props.isSavingAnyOption("shortlinks"),toggleModule:this.props.toggleModuleNow},__("Generate shortened URLs for simpler sharing.","jetpack"))))}}t.Z=(0,u.u)((0,a.$j)(((e,t)=>({shortlinksActive:t.getOptionValue("shortlinks"),shortlinksModule:(0,p.rT)(e,"shortlinks")})))(m))},3625:function(e,t,n){"use strict";n.d(t,{V:function(){return M}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(89105),p=n.n(u),d=n(69307),h=n(65736),f=n(71415),m=n(11973),g=n(9913),v=n(60742),b=n(94069),y=n(78919),k=n(98486),w=n(55735),_=n(5e4),E=n(27006),C=n(84277),S=n(53263);const __=h.__,_x=h._x;class j extends c().Component{constructor(e){super(e),o()(this,"updateOptions",((e,t)=>{let n=this.props.getOptionValue(t,"stats"),r=!1;this.state[`${t}_${e}`]?(0,l.includes)(n,e)&&(n=(0,l.filter)(n,(t=>t!==e))):(0,l.includes)(n,e)||(n.push(e),r=!0),this.setState({[`${t}_${e}`]:!this.state[`${t}_${e}`]},(()=>{this.props.updateOptions({[t]:n})})),m.Z.tracks.recordEvent("jetpack_wpa_settings_toggle",{module:"stats",setting:t,role:e,toggled:r?"on":"off"})})),o()(this,"activateStats",(()=>{this.props.updateOptions({stats:!0})})),o()(this,"trackOpenCard",(()=>{m.Z.tracks.recordJetpackClick({target:"foldable-settings-open",feature:"stats"})})),o()(this,"handleRoleToggleChange",((e,t)=>()=>this.updateOptions(e,t)));const t=e.getOptionValue("count_roles","stats"),n=e.getOptionValue("roles","stats");this.state={count_roles:t,roles:n,count_roles_administrator:(0,l.includes)(t,"administrator",!1),count_roles_editor:(0,l.includes)(t,"editor",!1),count_roles_author:(0,l.includes)(t,"author",!1),count_roles_contributor:(0,l.includes)(t,"contributor",!1),count_roles_subscriber:(0,l.includes)(t,"subscriber",!1),roles_administrator:!0,roles_editor:(0,l.includes)(n,"editor",!1),roles_author:(0,l.includes)(n,"author",!1),roles_contributor:(0,l.includes)(n,"contributor",!1),roles_subscriber:(0,l.includes)(n,"subscriber",!1)}}handleStatsOptionToggle(e){return()=>this.props.updateFormStateModuleOption("stats",e)}render(){const e=this.props.getModule("stats"),t=this.props.getOptionValue("stats"),n=this.props.isUnavailableInOfflineMode("stats"),r=this.props.getSiteRoles();return"inactive"===this.props.getModuleOverride("stats")?c().createElement(S.Z,{moduleName:e.name}):t?c().createElement(C.Z,i()({},this.props,{header:_x("Site stats","Settings header","jetpack"),hideButton:!0,module:"site-stats"}),c().createElement(y.Z,{onOpen:this.trackOpenCard,header:__("Expand to update settings for how visits are counted and manage who can view this information.","jetpack"),clickableHeader:!0,className:p()("jp-foldable-settings-standalone",{"jp-foldable-settings-disable":n})},c().createElement(E.Z,{disableInOfflineMode:!0,module:e,support:{text:__("Displays information on your site activity, including visitors and popular posts or pages.","jetpack"),link:(0,f.Z)("jetpack-support-wordpress-com-stats")}},c().createElement(w.C_,null,c().createElement(b.Z,{checked:!!this.props.getOptionValue("admin_bar"),disabled:!t||n,toggling:this.props.isSavingAnyOption(["stats","admin_bar"]),onChange:this.handleStatsOptionToggle("admin_bar")},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Include a small chart in your admin bar with a 48-hour traffic snapshot","jetpack")))),c().createElement(w.C_,null,c().createElement(w.Gj,null,__("Count logged in page views from","jetpack")),Object.keys(r).map((e=>c().createElement(b.Z,{checked:this.state[`count_roles_${e}`],disabled:!t||n||this.props.isSavingAnyOption(["stats","count_roles"]),onChange:this.handleRoleToggleChange(e,"count_roles"),key:`count_roles-${e}`},c().createElement("span",{className:"jp-form-toggle-explanation"},r[e].name))))),c().createElement(w.C_,null,c().createElement(w.Gj,null,__("Allow stats reports to be viewed by","jetpack")),c().createElement(b.Z,{checked:!0,disabled:!0},c().createElement("span",{className:"jp-form-toggle-explanation"},r.administrator.name)),Object.keys(r).map((e=>"administrator"!==e&&c().createElement(b.Z,{checked:this.state[`roles_${e}`],disabled:!t||n||this.props.isSavingAnyOption(["stats","roles"]),onChange:this.handleRoleToggleChange(e,"roles"),key:`roles-${e}`},c().createElement("span",{className:"jp-form-toggle-explanation"},r[e].name)))))))):c().createElement(v.Z,{className:"jp-at-a-glance__stats-card "+(this.props.isOfflineMode?"is-inactive":"")},c().createElement("div",{className:"jp-at-a-glance__stats-inactive"},c().createElement("div",{className:"jp-at-a-glance__stats-inactive-icon"},c().createElement("img",{src:k.hp+"stats.svg",width:"60",height:"60",alt:__("Jetpack Stats Icon","jetpack"),className:"jp-at-a-glance__stats-icon"})),c().createElement("div",{className:"jp-at-a-glance__stats-inactive-text"},this.props.isOfflineMode?__("Unavailable in Offline Mode","jetpack"):(0,d.createInterpolateElement)(__("<a>Activate Site Stats</a> to see detailed stats, likes, followers, subscribers, and more! <a1>Learn More</a1>","jetpack"),{a:c().createElement("a",{href:"javascript:void(0)",onClick:this.activateStats}),a1:c().createElement("a",{href:(0,f.Z)("jetpack-support-wordpress-com-stats"),target:"_blank",rel:"noopener noreferrer"})})),!this.props.isOfflineMode&&c().createElement("div",{className:"jp-at-a-glance__stats-inactive-button"},c().createElement(g.Z,{onClick:this.activateStats,primary:!0},__("Activate Site Stats","jetpack")))))}}const M=(0,_.u)(j)},95908:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(89105),u=n.n(l),p=n(2620),d=n(92819),h=n(69307),f=n(65736),m=n(71415),g=n(11973),v=n(68961),b=n(55735),y=n(5e4),k=n(77222),w=n(84277),_=n(27006),E=n(18582),C=n(66552);const __=f.__,_x=f._x;class S extends c().Component{constructor(){super(...arguments),o()(this,"renderSitemapRow",((e,t)=>c().createElement("span",{className:"jp-sitemap-row"},c().createElement(E.Z,{value:e,copy:_x("Copy","verb","jetpack"),copied:__("Copied!","jetpack"),prompt:__("Highlight and copy the following text to your clipboard:","jetpack")}),c().createElement(v.Z,{onClick:()=>g.Z.tracks.recordJetpackClick(t),icon:!0,target:"_blank",rel:"noopener noreferrer",href:e}))))}render(){const e=this.props.getModule("sitemaps"),t=(0,d.get)(e,["extra","sitemap_url"],""),n=(0,d.get)(e,["extra","news_sitemap_url"],""),r=u()({"jp-form-setting-explanation":!0,"is-warning":!this.props.isSiteVisibleToSearchEngines&&this.props.getOptionValue("sitemaps")});return c().createElement(w.Z,i()({},this.props,{module:"sitemaps",hideButton:!0}),c().createElement(_.Z,{hasChild:!0,module:{module:"sitemaps"},support:{link:(0,m.Z)("jetpack-support-sitemaps")}},c().createElement("p",null,__("Sitemaps are files that search engines like Google or Bing use to index your website. They can help improve your ranking in search results. When you enable this feature, Jetpack will create sitemaps for you and update them automatically when the content on your site changes.","jetpack")),c().createElement(k.T,{slug:"sitemaps",compact:!0,activated:this.props.getOptionValue("sitemaps"),toggling:this.props.isSavingAnyOption("sitemaps"),toggleModule:this.props.toggleModuleNow},__("Generate XML sitemaps","jetpack")),this.props.isSiteVisibleToSearchEngines?this.props.getOptionValue("sitemaps")&&c().createElement(b.C_,null,c().createElement("p",{className:"jp-form-setting-explanation"},__("Good news: Jetpack is sending your sitemap automatically to all major search engines for indexing.","jetpack"),this.renderSitemapRow(t,"sitemap-url-link"),this.renderSitemapRow(n,"sitemap-news-url-link"))):c().createElement(b.C_,null,c().createElement("p",{className:r},(0,h.createInterpolateElement)(__('Search engines can’t access your site at the moment. If you’d like to make your site accessible, check your <a>Reading settings</a> and switch "Search Engine Visibility" on.',"jetpack"),{a:c().createElement("a",{href:this.props.siteAdminUrl+"options-reading.php"})})))))}}t.Z=(0,p.$j)((e=>({isSiteVisibleToSearchEngines:(0,C.pI)(e),siteAdminUrl:(0,C.wW)(e)})))((0,y.u)(S))},11031:function(e,t,n){"use strict";n.d(t,{W:function(){return E}});var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(92819),u=n(69307),p=n(65736),d=n(71415),h=n(68961),f=n(15029),m=n(55735),g=n(77222),v=n(5e4),b=n(84277),y=n(27006),k=n(85253),w=n(61804);const __=p.__;class _ extends c().Component{getMetaTag(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return t?/^[a-z0-9_-]+$/i.test(t)?(0,l.includes)(t,"<meta")?t:`<meta name="${(0,l.get)(_.serviceIds,e,"")}" content="${t}" />`:t:""}getSiteVerificationValue(e){const t=this.props.getOptionValue(e);return t===this.props.getSettingCurrentValue(e)?this.getMetaTag(e,t):t}render(){const e=this.props.getModule("verification-tools");if("inactive"===this.props.getModuleOverride("verification-tools"))return c().createElement(k.Z,{title:e.name,icon:"cog",description:(0,p.sprintf)(
+/* translators: placeholder is a feature name. */
+__("%s has been disabled by a site administrator.","jetpack"),e.name)});const t=!!this.props.getOptionValue(e.module);return c().createElement(b.Z,i()({},this.props,{module:e.module,saveDisabled:this.props.isSavingAnyOption(["google","bing","pinterest","yandex","facebook"])}),c().createElement(y.Z,{module:e,support:{text:__("Provides the necessary hidden tags needed to verify your WordPress site with various services.","jetpack"),link:(0,d.Z)("jetpack-support-site-verification-tools")}},c().createElement(g.T,{slug:e.module,activated:t,toggling:this.props.isSavingAnyOption([e.module]),disabled:this.props.isSavingAnyOption([e.module]),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Verify site ownership with third party services","jetpack"))),c().createElement("p",null,(0,u.createInterpolateElement)(
+/* translators: placeholders are links to external sites. */
+__("Note that <b>verifying your site with these services is not necessary</b> in order for your site to be indexed by search engines. To use these advanced search engine tools and verify your site with a service, paste the HTML Tag code below. Read the <support>full instructions</support> if you are having trouble. Supported verification services: <google>Google Search Console</google>, <bing>Bing Webmaster Center</bing>, <pinterest>Pinterest Site Verification</pinterest>, <yandex>Yandex.Webmaster</yandex>, and <facebook>Facebook Domain Verification</facebook>.","jetpack"),{b:c().createElement("strong",null),support:c().createElement("a",{href:(0,d.Z)("jetpack-support-site-verification-tools")}),google:c().createElement(h.Z,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://www.google.com/webmasters/tools/"}),bing:c().createElement(h.Z,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://www.bing.com/webmaster/"}),pinterest:c().createElement(h.Z,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://pinterest.com/website/verify/"}),yandex:c().createElement(h.Z,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://webmaster.yandex.com/sites/"}),facebook:c().createElement(h.Z,{icon:!0,target:"_blank",rel:"noopener noreferrer",href:"https://business.facebook.com/settings/"})})),c().createElement(m.C_,null,c().createElement(w.Z,i()({value:this.getSiteVerificationValue("google"),placeholder:this.getMetaTag("google","1234")},this.props,{disabled:this.props.isUpdating("google")||!t})),c().createElement(m.lX,{className:"jp-form-input-with-prefix",key:"verification_service_bing"},c().createElement("span",null,__("Bing","jetpack")),c().createElement(f.Z,{name:"bing",value:this.getSiteVerificationValue("bing"),placeholder:this.getMetaTag("bing","1234"),className:"code",disabled:this.props.isUpdating("bing")||!t,onChange:this.props.onOptionChange})),c().createElement(m.lX,{className:"jp-form-input-with-prefix",key:"verification_service_pinterest"},c().createElement("span",null,__("Pinterest","jetpack")),c().createElement(f.Z,{name:"pinterest",value:this.getSiteVerificationValue("pinterest"),placeholder:this.getMetaTag("pinterest","1234"),className:"code",disabled:this.props.isUpdating("pinterest")||!t,onChange:this.props.onOptionChange})),c().createElement(m.lX,{className:"jp-form-input-with-prefix",key:"verification_service_yandex"},c().createElement("span",null,__("Yandex","jetpack")),c().createElement(f.Z,{name:"yandex",value:this.getSiteVerificationValue("yandex"),placeholder:this.getMetaTag("yandex","1234"),className:"code",disabled:this.props.isUpdating("yandex")||!t,onChange:this.props.onOptionChange})),c().createElement(m.lX,{className:"jp-form-input-with-prefix",key:"verification_service_facebook"},c().createElement("span",null,__("Facebook","jetpack")),c().createElement(f.Z,{name:"facebook",value:this.getSiteVerificationValue("facebook"),placeholder:this.getMetaTag("facebook","1234"),className:"code",disabled:this.props.isUpdating("facebook")||!t,onChange:this.props.onOptionChange})))))}}o()(_,"serviceIds",{google:"google-site-verification",bing:"msvalidate.01",pinterest:"p:domain_verify",yandex:"yandex-verification",facebook:"facebook-domain-verification"});const E=(0,v.u)(_)},61804:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),s=n(99196),o=n.n(s),a=n(11268),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(11973),h=n(68961),f=n(15029),m=n(88872),g=n(55735),v=n(22256),b=n(9913),y=n(39444),k=n(46023),w=n(91628),_=n(66552),E=n(21094);const __=p.__;class C extends o().Component{constructor(){super(...arguments),i()(this,"state",{inputVisible:!1}),i()(this,"handleClickAutoVerify",(()=>{this.props.fetchingSiteData||this.props.fetchingGoogleSiteVerify||(d.Z.tracks.recordEvent("jetpack_site_verification_google_auto_verify_click"),(0,y.Z)(this.props.googleSiteVerificationConnectUrl,(e=>{e&&this.checkAndVerifySite(e)})))})),i()(this,"handleClickSetManually",(e=>{d.Z.tracks.recordEvent("jetpack_site_verification_google_manual_verify_click",{is_owner:this.props.isOwner}),this.toggleVerifyMethod(e)})),i()(this,"handleClickEdit",(e=>{d.Z.tracks.recordEvent("jetpack_site_verification_google_edit_click",{is_owner:this.props.isOwner}),this.toggleVerifyMethod(e)})),i()(this,"handleClickCancel",(e=>{d.Z.tracks.recordEvent("jetpack_site_verification_google_cancel_click",{is_owner:this.props.isOwner}),this.props.resetFormStateOption("google"),this.toggleVerifyMethod(e)})),i()(this,"quickSave",(e=>{d.Z.tracks.recordEvent("jetpack_site_verification_google_manual_verify_save",{is_owner:this.props.isOwner,is_empty:!this.props.value}),this.props.onSubmit(e)})),i()(this,"toggleVerifyMethod",(()=>{this.setState({inputVisible:!this.state.inputVisible})})),i()(this,"handleOnTextInputKeyPress",(e=>{"Enter"===e.key&&this.quickSave()}))}componentDidMount(){this.props.isCurrentUserLinked&&this.props.checkVerifyStatusGoogle().then((e=>{if(this.props.googleSiteVerificationError&&"unverify-site-error"===this.props.googleSiteVerificationError.code&&this.props.updateOptions({google:""}).then((()=>this.props.checkVerifyStatusGoogle())),e)return!this.props.getOptionValue("google")&&e.token?this.props.updateOptions({google:e.token}):void(!this.props.getOptionValue("google")||e.token||e.verified||this.setState({inputVisible:!0}))}))}checkAndVerifySite(e){this.props.createNotice("is-info",__("Verifying…","jetpack"),{id:"verifying-site-google"}),this.props.checkVerifyStatusGoogle(e).then((e=>{if(e)return e.token!==this.props.value?this.props.updateOptions({google:e.token}):void 0})).then((()=>{this.props.removeNotice("verifying-site-google"),this.props.isSiteVerifiedWithGoogle||this.props.verifySiteGoogle(e).then((()=>{if(this.props.googleSiteVerificationError){const e=this.props.googleSiteVerificationError.message;d.Z.tracks.recordEvent("jetpack_site_verification_google_verify_error",{error_message:e}),this.props.createNotice("is-error",(0,p.sprintf)(
+/* translators: placeholder is an error message. */
+__("Site failed to verify: %s","jetpack"),e),{id:"verify-site-google-error",duration:5e3})}else this.props.isSiteVerifiedWithGoogle&&d.Z.tracks.recordEvent("jetpack_site_verification_google_verify_success")}))}))}render(){const e=this.props.googleSiteVerificationError&&"forbidden"===this.props.googleSiteVerificationError.code;if(this.state.inputVisible||e||!this.props.isCurrentUserLinked)return o().createElement("div",null,o().createElement(g.lX,{className:"jp-form-input-with-prefix",key:"verification_service_google"},o().createElement("span",null,__("Google","jetpack")),o().createElement(f.Z,{name:"google",value:this.props.value,placeholder:this.props.placeholder,className:"code",disabled:this.props.disabled,onChange:this.props.onOptionChange,onKeyPress:this.handleOnTextInputKeyPress}),this.state.inputVisible&&o().createElement("div",{className:"jp-form-site-verification-buttons"},o().createElement(b.Z,{primary:!0,type:"button",className:"jp-form-site-verification-edit-button",disabled:this.props.disabled,onClick:this.quickSave},__("Save","jetpack")),o().createElement(b.Z,{type:"button",className:"jp-form-site-verification-edit-button",disabled:this.props.disabled,onClick:this.handleClickCancel},__("Cancel","jetpack")))));if(this.props.isSiteVerifiedWithGoogle)return o().createElement("div",null,o().createElement("div",{className:"jp-form-input-with-prefix",key:"verification_service_google"},o().createElement("span",null,__("Google","jetpack")),o().createElement("div",{className:"jp-form-site-verification-verified"},o().createElement(v.Z,{icon:"checkmark-circle",size:20})," ",o().createElement("span",null,__("Your site is verified with Google","jetpack"))),o().createElement(b.Z,{type:"button",className:"jp-form-site-verification-edit-button",onClick:this.handleClickEdit},__("Edit","jetpack"))),this.props.isOwner&&o().createElement("div",{className:"jp-form-input-with-prefix-bottom-message"},o().createElement("div",{className:"jp-form-setting-explanation"},o().createElement("p",null,(0,u.createInterpolateElement)(__("Monitor your site's traffic and performance from the <a>Google Search Console</a>.","jetpack"),{a:o().createElement(h.Z,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:this.props.googleSearchConsoleUrl})})," ",(0,u.createInterpolateElement)(
+/* translators: placeholders are links to Google support documents. */
+__("Google will email about certain events that occur with your site, including indications that your website has been <a1>hacked</a1>, or problems <a2>crawling or indexing</a2> your site.","jetpack"),{a1:o().createElement(h.Z,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:"https://developers.google.com/web/fundamentals/security/hacked/"}),a2:o().createElement(h.Z,{icon:!0,iconSize:16,target:"_blank",rel:"noopener noreferrer",href:"https://www.google.com/insidesearch/howsearchworks/crawling-indexing.html"})})))));const t=this.props.fetchingSiteData||this.props.fetchingGoogleSiteVerify||this.props.isVerifyingGoogleSite||this.props.disabled;return o().createElement("div",{className:"jp-form-input-with-prefix jp-form-google-label-unverified",key:"verification_service_google"},o().createElement("span",null,__("Google","jetpack")),o().createElement("div",{className:"jp-form-google-label-unverified-actions"},(0,u.createInterpolateElement)(__("<button1>Verify with Google</button1><span>or</span><button2>Manually Verify</button2>","jetpack"),{button1:o().createElement(b.Z,{primary:!0,type:"button",disabled:t,onClick:this.handleClickAutoVerify}),span:o().createElement("span",{className:"jp-form-google-separator"}),button2:o().createElement(b.Z,{type:"button",disabled:t,onClick:this.handleClickSetManually})})))}}i()(C,"propTypes",{disabled:c().bool}),i()(C,"defaultProps",{disabled:!1}),t.Z=(0,l.$j)((e=>({fetchingSiteData:(0,m._5)(e),googleSiteVerificationConnectUrl:(0,k.K0)(e,"google_site_verification"),googleSearchConsoleUrl:(0,w._g)(e),fetchingGoogleSiteVerify:(0,w.nZ)(e),isConnectedToGoogle:(0,w.hr)(e),isSiteVerifiedWithGoogle:(0,w.nS)(e),isVerifyingGoogleSite:(0,w.BH)(e),userCanManageOptions:(0,_.UF)(e),googleSiteVerificationError:(0,w.ou)(e),isOwner:(0,w.dO)(e)})),{checkVerifyStatusGoogle:w.n,createNotice:E.iI,removeNotice:E.qq,verifySiteGoogle:w.Zn})(C)},41922:function(e,t,n){"use strict";function r(e){return t=>{13!==t.which&&32!==t.which||e(t)}}n.d(t,{Z:function(){return r}})},98865:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(55735),h=n(19555),f=n(77222),m=n(5e4),g=n(93107),v=n(84277),b=n(27006);const __=u.__,_x=u._x;class y extends c().Component{constructor(){super(...arguments),o()(this,"updateFormStateByMarkdown",(e=>this.props.getSettingCurrentValue("wpcom_publish_comments_with_markdown",e)?this.props.updateFormStateModuleOption(e,"wpcom_publish_posts_with_markdown"):this.props.updateFormStateModuleOption(e,"wpcom_publish_posts_with_markdown",!0)))}render(){const e=this.props.isModuleFound("copy-post"),t=this.props.isModuleFound("latex"),n=this.props.isModuleFound("markdown"),r=this.props.isModuleFound("shortcodes");if(!(e||t||n||r))return null;const s=this.props.module("markdown"),o=this.props.module("latex"),a=this.props.module("copy-post"),l=this.props.module("shortcodes"),u=c().createElement(b.Z,{module:a,support:{text:__("Duplicate existing posts, pages, Testimonials, and Portfolios. All the content will be copied including text, featured images, sharing settings, and more.","jetpack"),link:(0,p.Z)("jetpack-support-copy-post")}},c().createElement(d.C_,null,c().createElement(f.T,{slug:"copy-post",activated:!!this.props.getOptionValue("copy-post"),toggling:this.props.isSavingAnyOption("copy-post"),disabled:this.props.isSavingAnyOption("copy-post"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},a.description)))),h=c().createElement(b.Z,{module:s,support:{text:__("Use Markdown syntax to compose content with links, lists, and other styles. This setting enables Markdown in the Classic Editor as well as within a Classic Editor block.","jetpack"),link:(0,p.Z)("jetpack-support-markdown")}},c().createElement(d.C_,null,c().createElement(f.T,{slug:"markdown",activated:!!this.props.getOptionValue("wpcom_publish_posts_with_markdown","markdown"),toggling:this.props.isSavingAnyOption(["markdown","wpcom_publish_posts_with_markdown"]),disabled:this.props.isSavingAnyOption(["markdown","wpcom_publish_posts_with_markdown"]),toggleModule:this.updateFormStateByMarkdown},c().createElement("span",{className:"jp-form-toggle-explanation"},s.description)))),m=c().createElement(b.Z,{module:o,support:{text:__("LaTeX is a powerful markup language for writing complex mathematical equations and formulas.","jetpack"),link:(0,p.Z)("jetpack-support-beautiful-math-with-latex")}},c().createElement(d.C_,null,c().createElement(f.T,{slug:"latex",activated:!!this.props.getOptionValue("latex"),toggling:this.props.isSavingAnyOption(["latex"]),disabled:this.props.isSavingAnyOption(["latex"]),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},o.description)))),g=c().createElement(b.Z,{module:l,support:{text:l.description,link:(0,p.Z)("jetpack-support-shortcode-embeds")}},c().createElement(d.C_,null,c().createElement(f.T,{slug:"shortcodes",activated:!!this.props.getOptionValue("shortcodes"),toggling:this.props.isSavingAnyOption(["shortcodes"]),disabled:this.props.isSavingAnyOption(["shortcodes"]),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Compose using shortcodes to embed media from popular sites","jetpack")))));return c().createElement(v.Z,i()({},this.props,{header:_x("Composing","Settings header","jetpack"),module:"composing",saveDisabled:this.props.isSavingAnyOption("ignored_phrases")}),e&&u,n&&h,t&&m,r&&g)}}t.Z=(0,l.$j)((e=>({module:t=>(0,g.rT)(e,t),isModuleFound:t=>(0,h.CX)(e,t)})))((0,m.u)(y))},45767:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(69307),p=n(65736),d=n(71415),h=n(94069),f=n(3810),m=n(55735),g=n(5e4),v=n(93107),b=n(19555),y=n(84277),k=n(27006);const __=p.__;class w extends c().Component{constructor(){super(...arguments),o()(this,"state",{testimonial:this.props.getOptionValue("jetpack_testimonial","custom-content-types"),portfolio:this.props.getOptionValue("jetpack_portfolio","custom-content-types")}),o()(this,"updateCPTs",(e=>{const t="testimonial"===e?!(!this.state.testimonial||this.state.portfolio):!(!this.state.portfolio||this.state.testimonial);this.props.updateFormStateModuleOption("custom-content-types","jetpack_"+e,t),this.setState({[e]:!this.state[e]})})),o()(this,"linkIfActiveCPT",(e=>this.props.getSettingCurrentValue(`jetpack_${e}`,"custom-content-types")?c().createElement("a",{href:`${this.props.siteAdminUrl}edit.php?post_type=jetpack-${e}`}):c().createElement("span",null))),o()(this,"handleTestimonialToggleChange",(()=>{this.updateCPTs("testimonial")})),o()(this,"handlePortfolioToggleChange",(()=>{this.updateCPTs("portfolio")}))}render(){if(!this.props.isModuleFound("custom-content-types"))return null;const e=this.props.module("custom-content-types"),t="inactive"===this.props.getModuleOverride("custom-content-types"),n=t&&__("This feature has been disabled by a site administrator.","jetpack");return c().createElement(y.Z,i()({},this.props,{module:"custom-content-types",hideButton:!0}),c().createElement(k.Z,{hasChild:!0,module:e,support:{link:(0,d.Z)("jetpack-support-custom-content-types")}},c().createElement("p",null,(0,u.createInterpolateElement)(__("Add <testimonialLink>testimonials</testimonialLink> to your website to attract new customers. If your theme doesn’t support Jetpack Testimonials, you can still use a simple shortcode to display them on your site.","jetpack"),{testimonialLink:this.linkIfActiveCPT("testimonial")})),c().createElement(h.Z,{checked:this.state.testimonial,disabled:this.props.isSavingAnyOption("jetpack_testimonial")||t,onChange:this.handleTestimonialToggleChange,disabledReason:n},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Testimonials","jetpack"))),c().createElement(m.C_,null,c().createElement("p",{className:"jp-form-setting-explanation"},__("Testimonials shortcode: [testimonials]","jetpack")))),this.props.testimonialActive&&c().createElement(f.Z,{className:"jp-settings-card__configure-link",href:`${this.props.siteAdminUrl}post-new.php?post_type=jetpack-testimonial`},__("Add a testimonial","jetpack")),c().createElement(k.Z,{hasChild:!0,module:e,support:{link:(0,d.Z)("jetpack-support-custom-content-types")}},c().createElement("p",null,(0,u.createInterpolateElement)(__("Use <portfolioLink>portfolios</portfolioLink> on your site to showcase your best work. If your theme doesn’t support Jetpack Portfolios, you can still use a simple shortcode to display them on your site.","jetpack"),{portfolioLink:this.linkIfActiveCPT("portfolio")})),c().createElement(h.Z,{checked:this.state.portfolio,disabled:this.props.isSavingAnyOption("jetpack_portfolio")||t,onChange:this.handlePortfolioToggleChange,disabledReason:n},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Portfolios","jetpack"))),c().createElement(m.C_,null,c().createElement("p",{className:"jp-form-setting-explanation"},__("Portfolios shortcode: [portfolio]","jetpack")))),this.props.portfolioActive&&c().createElement(f.Z,{className:"jp-settings-card__configure-link",href:`${this.props.siteAdminUrl}post-new.php?post_type=jetpack-portfolio`},__("Add a portfolio item","jetpack")))}}t.Z=(0,g.u)((0,l.$j)(((e,t)=>({module:t=>(0,v.rT)(e,t),isModuleFound:t=>(0,b.CX)(e,t),getModuleOverride:t=>(0,v.Qy)(e,t),portfolioActive:t.getSettingCurrentValue("jetpack_portfolio","custom-content-types"),testimonialActive:t.getSettingCurrentValue("jetpack_testimonial","custom-content-types")})))(w))},18731:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(60742),d=n(17752),h=n(66552),f=n(41147),m=n(93107),g=n(19555),v=n(27219),b=n(98865),y=n(45767),k=n(64261),w=n(22034),_=n(78476),E=n(73690),C=n(11613);const __=u.__;class S extends c().Component{render(){const e={settings:this.props.settings,getModule:this.props.module,isOfflineMode:this.props.isOfflineMode,isUnavailableInOfflineMode:this.props.isUnavailableInOfflineMode,isLinked:this.props.isLinked,getModuleOverride:this.props.getModuleOverride},t=["carousel","copy-post","custom-css","latex","masterbar","markdown","shortcodes","custom-content-types","post-by-email","infinite-scroll","widgets","widget-visibility"].some(this.props.isModuleFound);if(!this.props.searchTerm&&!this.props.active)return null;if(!t)return null;const n=this.props.userCanManageModules||this.props.userCanEditPosts,r=this.props.userCanManageModules||this.props.userCanEditPosts&&this.props.isModuleActivated("post-by-email");return c().createElement("div",null,c().createElement(v.Z,null),c().createElement(p.Z,{title:this.props.searchTerm?__("Writing","jetpack"):__("Compose content the way you want to and streamline your publishing experience.","jetpack"),className:"jp-settings-description"}),this.props.isModuleFound("carousel")&&c().createElement(C.Z,e),n&&c().createElement(b.Z,i()({},e,{userCanManageModules:this.props.userCanManageModules})),this.props.isModuleFound("custom-content-types")&&c().createElement(y.Z,e),c().createElement(k.Z,e),c().createElement(_.Z,e),this.props.isModuleFound("post-by-email")&&r&&c().createElement(w.Z,i()({},e,{connectUrl:this.props.connectUrl,isLinked:this.props.isLinked,userCanManageModules:this.props.userCanManageModules})),this.props.isModuleFound("masterbar")&&!this.props.masterbarIsAlwaysActive&&c().createElement(E.S,i()({connectUrl:this.props.connectUrl},e)),!n&&!r&&c().createElement(p.Z,null,__("Writing tools available to you will be shown here when an administrator enables them.","jetpack")))}}o()(S,"displayName","WritingSettings"),t.Z=(0,l.$j)((e=>({module:t=>(0,m.rT)(e,t),settings:(0,d.Gw)(e),masterbarIsAlwaysActive:(0,h.Ug)(e),isOfflineMode:(0,f.Ex)(e),isUnavailableInOfflineMode:t=>(0,f.t_)(e,t),userCanEditPosts:(0,h.rp)(e),isModuleActivated:t=>(0,m.mp)(e,t),isLinked:(0,f.BU)(e),userCanManageModules:(0,h.pK)(e),isModuleFound:t=>(0,g.CX)(e,t),connectUrl:(0,f.AM)(e),getModuleOverride:t=>(0,m.Qy)(e,t)})))(S)},73690:function(e,t,n){"use strict";n.d(t,{S:function(){return f}});var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(65736),c=n(71415),l=n(5e4),u=n(84277),p=n(27006),d=n(77222),h=n(24951);const __=a.__,_x=a._x,f=(0,l.u)(class extends s.Component{render(){const e=this.props.getOptionValue("masterbar"),t=this.props.isUnavailableInOfflineMode("masterbar"),n=this.props.isLinked;return o().createElement(u.Z,i()({},this.props,{header:_x("WordPress.com toolbar","Settings header","jetpack"),module:"masterbar",hideButton:!0}),o().createElement(p.Z,{disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:{module:"masterbar"},support:{text:__("Adds a toolbar with links to all your sites, notifications, your WordPress.com profile, and the Reader.","jetpack"),link:(0,c.Z)("jetpack-support-masterbar")}},o().createElement("p",null,__("The WordPress.com toolbar replaces the default WordPress admin toolbar. It offers one-click access to notifications, your WordPress.com profile and your other Jetpack and WordPress.com websites. You can also catch up on the sites you follow in the Reader.","jetpack")),o().createElement(d.T,{slug:"masterbar",disabled:t||!n,activated:e,toggling:this.props.isSavingAnyOption("masterbar"),toggleModule:this.props.toggleModuleNow},__("Enable the WordPress.com toolbar","jetpack"))),!this.props.isUnavailableInOfflineMode("masterbar")&&!this.props.isLinked&&o().createElement(h.Z,{feature:"masterbar",featureLabel:__("WordPress.com Toolbar","jetpack"),text:__("Connect to enable the WordPress.com toolbar.","jetpack")}))}})},22034:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(11973),h=n(9913),f=n(18582),m=n(55735),g=n(77222),v=n(93107),b=n(19555),y=n(5e4),k=n(84277),w=n(27006),_=n(24951);const __=u.__,_x=u._x;class E extends c().Component{constructor(){super(...arguments),o()(this,"regeneratePostByEmailAddress",(e=>{d.Z.tracks.recordJetpackClick("pbe-regenerage-email"),e.preventDefault(),this.props.regeneratePostByEmailAddress()})),o()(this,"address",(()=>{const e=this.props.getOptionValue("post_by_email_address");return!1===e||"1"===e||null===e?"":e}))}render(){if(!this.props.isModuleFound("post-by-email"))return null;const e=this.props.getModule("post-by-email"),t=this.props.getOptionValue("post-by-email"),n=this.props.isUnavailableInOfflineMode("post-by-email")||!this.props.isLinked,r=this.address();return c().createElement(k.Z,i()({},this.props,{module:"post-by-email",hideButton:!0}),c().createElement(w.Z,{hasChild:!0,disableInOfflineMode:!0,disableInSiteConnectionMode:!0,module:e,support:{text:__("Allows you to publish new posts by sending an email to a special address.","jetpack"),link:(0,p.Z)("jetpack-support-post-by-email")}},c().createElement("p",null,__("Post by email is a quick way to publish new posts without visiting your site. We’ll generate a unique email address for you to send your content to, which will then appear on your site just like any other post.","jetpack")),this.props.userCanManageModules?c().createElement(g.T,{slug:"post-by-email",compact:!0,disabled:n,activated:t,toggling:this.props.isSavingAnyOption("post-by-email"),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},this.props.module("post-by-email").description)):c().createElement("span",{className:"jp-form-toggle-explanation"},this.props.module("post-by-email").description),c().createElement(m.C_,null,c().createElement(m.lX,null,c().createElement(m.Gj,null,__("Send your new posts to this email address:","jetpack")),c().createElement(f.Z,{value:r,disabled:!t||n,copy:_x("Copy","verb","jetpack"),copied:__("Copied!","jetpack"),prompt:__("Highlight and copy the following text to your clipboard:","jetpack")})),c().createElement(h.Z,{disabled:!t||n,onClick:this.regeneratePostByEmailAddress},r?__("Regenerate address","jetpack"):__("Create address","jetpack",0)))),!this.props.isUnavailableInOfflineMode("post-by-email")&&!this.props.isLinked&&c().createElement(_.Z,{feature:"post-by-email",featureLabel:__("Post by Email","jetpack"),text:__("Connect to enable publishing via email.","jetpack")}))}}t.Z=(0,l.$j)((e=>({module:t=>(0,v.rT)(e,t),isModuleFound:t=>(0,b.CX)(e,t)})))((0,y.u)(E))},64261:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(27538),o=n.n(s),a=n(99196),c=n.n(a),l=n(2620),u=n(65736),p=n(71415),d=n(11973),h=n(55735),f=n(77222),m=n(93107),g=n(66552),v=n(19555),b=n(5e4),y=n(84277),k=n(27006),w=n(53263);const __=u.__;class _ extends c().Component{constructor(){super(...arguments),o()(this,"getInfiniteMode",(()=>this.props.getOptionValue("infinite-scroll")?this.props.getOptionValue("infinite_scroll","infinite-scroll")?"infinite_scroll":"infinite_button":"infinite_default")),o()(this,"updateInfiniteMode",(e=>{this.setState({infinite_mode:e},this.prepareOptionsToUpdate)})),o()(this,"prepareOptionsToUpdate",(()=>{"infinite_default"===this.state.infinite_mode?this.props.updateFormStateOptionValue("infinite-scroll",!1):"infinite_scroll"!==this.state.infinite_mode&&"infinite_button"!==this.state.infinite_mode||this.props.updateFormStateOptionValue({"infinite-scroll":!0,infinite_scroll:"infinite_scroll"===this.state.infinite_mode})})),o()(this,"updateOptions",((e,t)=>{this.setState({[e]:!this.state[e]},this.props.updateFormStateModuleOption(t,e))})),o()(this,"trackLearnMoreIS",(()=>{d.Z.tracks.recordJetpackClick({target:"learn-more",feature:"infinite-scroll",extra:"not-supported-link"})})),o()(this,"state",{infinite_mode:this.getInfiniteMode()}),o()(this,"handleInfiniteScrollModeChange",(e=>()=>this.updateInfiniteMode(e)))}render(){const e=this.props.isModuleFound("infinite-scroll"),t=this.props.isModuleFound("custom-css");if(!e&&!t)return null;const n=this.props.getModule("infinite-scroll"),r=this.props.getModule("custom-css"),s="inactive"===this.props.getModuleOverride("infinite-scroll");return c().createElement(y.Z,i()({},this.props,{header:__("Theme enhancements","jetpack"),hideButton:!e||!this.props.isInfiniteScrollSupported,module:"theme-enhancements"}),s&&c().createElement(w.Z,{moduleName:n.name,compact:!0}),e&&!s&&c().createElement(k.Z,{hasChild:!0,module:{module:n.module},key:`theme_enhancement_${n.module}`,support:{text:__("Loads the next posts automatically when the reader approaches the bottom of the page.","jetpack"),link:(0,p.Z)("jetpack-support-infinite-scroll")}},c().createElement(h.Gj,{className:"jp-form-label-wide"},n.name),c().createElement("p",null,__("Create a smooth, uninterrupted reading experience by loading more content as visitors scroll to the bottom of your archive pages.","jetpack")),this.props.isInfiniteScrollSupported?[{key:"infinite_default",label:__("Load more posts using the default theme behavior","jetpack")},{key:"infinite_button",label:__("Load more posts in page with a button","jetpack")},{key:"infinite_scroll",label:__("Load more posts as the reader scrolls down","jetpack")}].map((e=>c().createElement(h.lX,{key:`${n.module}_${e.key}`},c().createElement("input",{type:"radio",name:"infinite_mode",value:e.key,checked:e.key===this.state.infinite_mode,disabled:this.props.isSavingAnyOption([n.module,e.key]),onChange:this.handleInfiniteScrollModeChange(e.key)}),c().createElement("span",{className:"jp-form-toggle-explanation"},e.label)))):c().createElement("span",null,__("Theme support required.","jetpack")+" ",c().createElement("a",{onClick:this.trackLearnMoreIS,href:n.learn_more_button+"#theme",title:__("Learn more about adding support for Infinite Scroll to your theme.","jetpack")},__("Learn more","jetpack")))),t&&c().createElement(k.Z,{module:{module:r.module},support:{text:r.description,link:(0,p.Z)("jetpack-support-custom-css")}},c().createElement(f.T,{slug:"custom-css",activated:!!this.props.getOptionValue("custom-css"),toggling:this.props.isSavingAnyOption(["custom-css"]),disabled:this.props.isSavingAnyOption(["custom-css"]),toggleModule:this.props.toggleModuleNow},c().createElement("span",{className:"jp-form-toggle-explanation"},__("Enhance CSS customization panel","jetpack")))))}}t.Z=(0,l.$j)((e=>({module:t=>(0,m.rT)(e,t),isInfiniteScrollSupported:(0,g.Cv)(e,"infinite-scroll"),isModuleFound:t=>(0,v.CX)(e,t)})))((0,b.u)(_))},78476:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(71415),u=n(5e4),p=n(93107),d=n(19555),h=n(84277),f=n(27006),m=n(77222);const __=c.__,_x=c._x;class g extends s.Component{render(){const e=this.props.isModuleFound("widgets"),t=this.props.isModuleFound("widget-visibility");return e||t?o().createElement(h.Z,i()({},this.props,{header:_x("Widgets","Settings header","jetpack"),module:"widgets",hideButton:!0}),e&&o().createElement(f.Z,{module:{module:"widgets"},support:{text:this.props.widgetsModule.description,link:(0,l.Z)("jetpack-support-extra-sidebar-widgets")}},o().createElement(m.T,{slug:"widgets",activated:this.props.widgetsActive,toggling:this.props.isSavingAnyOption("widgets"),toggleModule:this.props.toggleModuleNow},__("Make extra widgets available for use on your site including subscription forms and Twitter streams","jetpack"))),t&&o().createElement(f.Z,{module:{module:"widget-visibility"},support:{text:__("Widget visibility lets you decide which widgets appear on which pages, so you can finely tailor widget content.","jetpack"),link:(0,l.Z)("jetpack-support-widget-visibility")}},o().createElement(m.T,{slug:"widget-visibility",activated:this.props.widgetVisibilityActive,toggling:this.props.isSavingAnyOption("widget-visibility"),toggleModule:this.props.toggleModuleNow},__("Enable widget visibility controls to display widgets only on particular posts or pages","jetpack")))):null}}t.Z=(0,u.u)((0,a.$j)(((e,t)=>({widgetVisibilityActive:t.getOptionValue("widget-visibility"),widgetsActive:t.getOptionValue("widgets"),widgetsModule:(0,p.rT)(e,"widgets"),isModuleFound:t=>(0,d.CX)(e,t)})))(g))},11613:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),s=n(99196),o=n.n(s),a=n(2620),c=n(65736),l=n(71415),u=n(94069),p=n(55735),d=n(77222),h=n(5e4),f=n(84277),m=n(27006),g=n(93107),v=n(19555);const __=c.__;t.Z=(0,a.$j)((e=>({module:t=>(0,g.rT)(e,t),isModuleFound:t=>(0,v.CX)(e,t)})))((0,h.u)((function(e){const t=e.isModuleFound("carousel");if(!t)return null;const n=e.getOptionValue("carousel_display_comments","carousel"),r=e.getOptionValue("carousel_display_exif","carousel"),s=e.getOptionValue("carousel"),a=(t,n,r,i)=>o().createElement(u.Z,{checked:t,disabled:!s||e.isSavingAnyOption(["carousel",n]),onChange:r},o().createElement("span",{className:"jp-form-toggle-explanation"},i));return o().createElement(f.Z,i()({},e,{module:"media",header:__("Media","jetpack"),hideButton:!t,saveDisabled:e.isSavingAnyOption("carousel_background_color")}),o().createElement(m.Z,{hasChild:!0,module:{module:"carousel"},support:{link:(0,l.Z)("jetpack-support-carousel")}},o().createElement("p",null,__("Create full-screen carousel slideshows for the images in your posts and pages. Carousel galleries are mobile-friendly and encourage site visitors to interact with your photos.","jetpack")),o().createElement(d.T,{slug:"carousel",activated:s,toggling:e.isSavingAnyOption("carousel"),toggleModule:e.toggleModuleNow},o().createElement("span",{className:"jp-form-toggle-explanation"},__("Display images in a full-screen carousel gallery","jetpack"))),o().createElement(p.C_,null,a(r,"carousel_display_exif",(()=>{e.updateFormStateModuleOption("carousel","carousel_display_exif")}),__("Show photo Exif metadata in carousel (when available)","jetpack")),a(n,"carousel_display_comments",(()=>{e.updateFormStateModuleOption("carousel","carousel_display_comments")}),__("Show comments area in carousel","jetpack")),o().createElement(p.C_,null,o().createElement("p",{className:"jp-form-setting-explanation"},__("Exif data shows viewers additional technical details of a photo, like its focal length, aperture, and ISO.","jetpack"))),o().createElement(p.lX,null,o().createElement(p.Gj,{className:"jp-form-label-wide"},__("Carousel color scheme","jetpack")),o().createElement(p.ih,i()({name:"carousel_background_color",value:e.getOptionValue("carousel_background_color"),disabled:!s||e.isSavingAnyOption(["carousel","carousel_background_color"])},e,{validValues:e.validValues("carousel_background_color","carousel")}))))))})))},10618:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var r=n(45086),i=n(57275),s=n(25303),o=n(45814),a=n(15746),c=n(12472),l=n(99196),u=n(89105),p=n.n(u),d=n(30682),h=(n(1920),function(e){(0,o.Z)(n,e);var t=(0,a.Z)(n);function n(){var e;(0,r.Z)(this,n);for(var i=arguments.length,o=new Array(i),a=0;a<i;a++)o[a]=arguments[a];return e=t.call.apply(t,[this].concat(o)),(0,c.Z)((0,s.Z)(e),"state",{allTimeMax:e.props.value}),e}return(0,i.Z)(n,[{key:"getCompletionPercentage",value:function(){var e=Math.ceil((this.props.canGoBackwards?this.props.value:this.state.allTimeMax)/this.props.total*100);return Math.min(e,100)}},{key:"renderBar",value:function(){var e=this.props,t=e.color,n=e.title,r=e.total,i=e.value,s={width:this.getCompletionPercentage()+"%"};return t&&(s.backgroundColor=t),l.createElement("div",{"aria-valuemax":r,"aria-valuemin":0,"aria-valuenow":i,className:"progress-bar__progress",role:"progressbar",style:s},n&&l.createElement(d.Z,null,n))}},{key:"render",value:function(){var e=p()(this.props.className,"progress-bar",{"is-compact":this.props.compact,"is-pulsing":this.props.isPulsing});return l.createElement("div",{className:e},this.renderBar())}}],[{key:"getDerivedStateFromProps",value:function(e,t){return{allTimeMax:Math.max(t.allTimeMax,e.value)}}}]),n}(l.PureComponent));(0,c.Z)(h,"defaultProps",{total:100,compact:!1,isPulsing:!1,canGoBackwards:!1})},30682:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(99196),i=n.n(r);n(3696);function s(e){var t=e.children;return i().createElement("span",{className:"screen-reader-text"},t)}},75139:function(e,t,n){"use strict";n.d(t,{X:function(){return i}});var r={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 i(e){return r[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},78850:function(e,t,n){"use strict";n.d(t,{LR:function(){return o}});var r=n(52141),i=n(63807),s=n(75139);function o(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=(0,s.X)(t);if(!o||isNaN(e))return null;var a=(0,r.Z)({},o,n),c=a.decimal,l=a.grouping,u=a.precision,p=a.symbol,d=e<0?"-":"",h=Math.abs(e),f=Math.floor(h),m=(0,i.Y4)(f,{decimals:0,thousandsSep:l,decPoint:c}),g=u>0?(0,i.Y4)(h-f,{decimals:u,thousandsSep:l,decPoint:c}).slice(1):"";return{sign:d,symbol:p,integer:m,fraction:g}}},94481:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(99196),i=n(32365);function s(e,t){let n,i,o=[];for(let r=0;r<e.length;r++){const s=e[r];if("string"!==s.type){if(void 0===t[s.value])throw new Error(`Invalid interpolation, missing component node: \`${s.value}\``);if("object"!=typeof t[s.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${s.value}\``);if("componentClose"===s.type)throw new Error(`Missing opening component token: \`${s.value}\``);if("componentOpen"===s.type){n=t[s.value],i=r;break}o.push(t[s.value])}else o.push(s.value)}if(n){const a=function(e,t){const n=t[e];let r=0;for(let i=e+1;i<t.length;i++){const e=t[i];if(e.value===n.value){if("componentOpen"===e.type){r++;continue}if("componentClose"===e.type){if(0===r)return i;r--}}}throw new Error("Missing closing component token `"+n.value+"`")}(i,e),c=s(e.slice(i+1,a),t),l=(0,r.cloneElement)(n,{},c);if(o.push(l),a<e.length-1){const n=s(e.slice(a+1),t);o=o.concat(n)}}return o=o.filter(Boolean),0===o.length?null:1===o.length?o[0]:(0,r.createElement)(r.Fragment,null,...o)}function o(e){const{mixedString:t,components:n,throwErrors:r}=e;if(!n)return t;if("object"!=typeof n){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const o=(0,i.Z)(t);try{return s(o,n)}catch(e){if(r)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},32365:function(e,t,n){"use strict";function r(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function i(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}n.d(t,{Z:function(){return i}})},47236:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(92819),i=n(2571);function s(e){(0,r.assign)(e,i.EventEmitter.prototype),e.emitChange=function(){this.emit("change")},e.off=e.removeListener}},59177:function(e,t,n){"use strict";function r(){var e=this;this.intervals={},this.monitorInterval=null,this.windowInstance=null,this.onMessage=function(t){t.source===e.windowInstance&&e.emit("message",t.data)}}(0,n(47236).Z)(r.prototype),r.prototype.open=function(e,t,n){return t=t||Date.now(),this.windowInstance=window.open(e,t,n),this.startMonitoring(t,this.windowInstance),window.addEventListener("message",this.onMessage,!1),this},r.prototype.getScreenCenterSpecs=function(e,t){var n=void 0!==window.screenTop?window.screenTop:window.screenY,r=void 0!==window.screenLeft?window.screenLeft:window.screenX;return["width="+e,"height="+t,"top="+(n+window.innerHeight/2-t/2),"left="+(r+window.innerWidth/2-e/2)].join()},r.prototype.isOpen=function(e){var t=!1;try{t=this.intervals[e]&&this.intervals[e].closed}catch(e){}return!t},r.prototype.checkStatus=function(){for(var e in this.intervals)this.intervals.hasOwnProperty(e)&&!this.isOpen(e)&&(this.emit("close",e),delete this.intervals[e]);0===Object.keys(this.intervals).length&&(clearInterval(this.monitorInterval),delete this.monitorInterval,window.removeEventListener("message",this.onMessage))},r.prototype.startMonitoring=function(e,t){this.monitorInterval||(this.monitorInterval=setInterval(this.checkStatus.bind(this),100)),this.intervals[e]=t},t.Z=r},52489:function(e,t,n){"use strict";var r=n(45086),i=n(57275),s=n(45814),o=n(15746),a=n(11268),c=n.n(a),l=n(99196),u=n.n(l),p=n(92819),d=n(13639),h=(n(99889),function(e){return e&&e.replace(/^[^/]+[/]*/,"").replace(/\/.*$/,"")}),f=(0,d.SL)((0,d.hs)(80),(0,d.KB)(80)),m=(0,d.SL)((0,d.hs)(200),(0,d.KB)(200)),g=function(e){(0,s.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"render",value:function(){var e=this.props,t=e.url,n=e.type,r=e.title,i=e.description,s=e.image,o=e.author;return u().createElement("div",{className:"facebook-preview facebook-preview__".concat(n)},u().createElement("div",{className:"facebook-preview__content"},u().createElement("div",{className:"facebook-preview__image"},s&&u().createElement("img",{alt:"Facebook Preview Thumbnail",src:s})),u().createElement("div",{className:"facebook-preview__body"},u().createElement("div",{className:"facebook-preview__url"},(0,p.compact)([h(t),o]).join(" | ")),u().createElement("div",{className:"facebook-preview__title"},f(r||"")),u().createElement("div",{className:"facebook-preview__description"},m((0,d.ju)(i))))))}}]),n}(l.PureComponent);g.propTypes={url:c().string,type:c().string,title:c().string,description:c().string,image:c().string,author:c().string},t.Z=g},13639:function(e,t,n){"use strict";n.d(t,{hs:function(){return i},I$:function(){return s},KB:function(){return o},SL:function(){return a},ju:function(){return c}});var r=n(92819),i=function(e){return function(t){return t.length<=e&&t}},s=function(e,t){return function(n){var r=n.slice(0,t),i=r.lastIndexOf(" ");return i>e&&i<t&&r.slice(0,i).concat("…")}},o=function(e){return function(t){return t.slice(0,e).concat("…")}},a=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return(0,r.find)(t,(function(t){return!1!==t(e)}))(e)}},c=function(e){return e?e.replace(/(<([^>]+)>)/gi,""):""}},80505:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var r=n(11268),i=n.n(r),s=n(99196),o=n.n(s),a=n(13639),c=(n(93474),160),l=(0,a.SL)((0,a.hs)(63),(0,a.I$)(23,73),(0,a.KB)(63)),u=(0,a.SL)((0,a.hs)(c),(0,a.I$)(80,170),(0,a.KB)(c));function p(e){var t=e.description,n=e.title,r=e.url;return o().createElement("div",{className:"search-preview"},o().createElement("div",{className:"search-preview__display"},o().createElement("div",{className:"search-preview__url"},function(e){var t=e.replace(/^[^/]+[/]*/,"").split("/").join(" › ");return(0,a.SL)((0,a.hs)(68),(0,a.KB)(68))(t)}(r)," ▾"),o().createElement("div",{className:"search-preview__title"},l(n)),o().createElement("div",{className:"search-preview__description"},u((0,a.ju)(t)))))}p.propTypes={title:i().string,url:i().string,description:i().string},p.defaultProps={title:"",url:"",description:""}},79465:function(e,t,n){"use strict";var r=n(40988),i=n(49058),s=n(45086),o=n(57275),a=n(45814),c=n(15746),l=n(11268),u=n.n(l),p=n(99196),d=n.n(p),h=n(82943),f=(n(33285),function(e){(0,a.Z)(n,e);var t=(0,c.Z)(n);function n(){return(0,s.Z)(this,n),t.apply(this,arguments)}return(0,o.Z)(n,[{key:"render",value:function(){var e=this.props.tweets||[{text:"",media:[],card:(0,i.Z)((0,i.Z)({},this.props),{},{type:"large_image_summary"===this.props.type?"summary_large_image":this.props.type}),date:Date.now(),name:"Account Name",profileImage:"https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png",screenName:"@account"}];return d().createElement("div",{className:"twitter-preview"},e&&e.map((function(t,n){return d().createElement(h.t,(0,r.Z)({key:"twitter-preview__tweet-".concat(n),isLast:n+1===e.length},t))})))}}]),n}(p.PureComponent));f.propTypes={tweets:u().array},t.Z=f},82943:function(e,t,n){"use strict";n.d(t,{t:function(){return y}});var r=n(45086),i=n(57275),s=n(45814),o=n(15746),a=n(89105),c=n.n(a),l=n(11268),u=n.n(l),p=n(99196),d=n.n(p),h=n(76292),f=n.n(h),m=n(65736),g=n(55609),v=n(13639);n(33285);var __=m.__,b=(0,v.SL)((0,v.hs)(200),(0,v.KB)(200)),y=function(e){(0,s.Z)(n,e);var t=(0,o.Z)(n);function n(){return(0,r.Z)(this,n),t.apply(this,arguments)}return(0,i.Z)(n,[{key:"renderSidebar",value:function(e,t){return d().createElement("div",{className:"twitter-preview__sidebar"},d().createElement("div",{className:"twitter-preview__profile-image"},d().createElement("img",{alt:__("Twitter profile image","jetpack"),src:e})),!t&&d().createElement("div",{className:"twitter-preview__connector"}))}},{key:"renderHeader",value:function(e,t,n){return d().createElement("div",{className:"twitter-preview__header"},d().createElement("span",{className:"twitter-preview__name"},e),d().createElement("span",{className:"twitter-preview__screen-name"},t),d().createElement("span",{className:"twitter-preview__date"},f()(n).format("MMM D")))}},{key:"renderText",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.url||"",i=e.endsWith(r)?e.substr(0,e.lastIndexOf(r)):e,s=t.reduce((function(e,t){return e.replace(new RegExp("\\("+t+"\\)","g"),'(<a href="'.concat(t,'">').concat(t,"</a>)"))}),(0,v.ju)(i).replace(new RegExp("\\n","g"),"<br/>"));return d().createElement("div",{className:"twitter-preview__text",dangerouslySetInnerHTML:{__html:s}})}},{key:"renderMedia",value:function(e){if(e){var t=e.filter((function(e){return e.type.startsWith("image/")||e.type.startsWith("video/")})).filter((function(e,t,n){return 0===t||!n[0].type.startsWith("video/")&&"image/gif"!==n[0].type&&(!e.type.startsWith("video/")&&"image/gif"!==e.type)})).slice(0,4),n=t.length>0&&t[0].type.startsWith("video/"),r=c()(["twitter-preview__media","twitter-preview__media-children-"+t.length]);if(0!==t.length)return d().createElement("div",{className:r},n&&t.map((function(e,t){return d().createElement("video",{key:"twitter-preview__media-item-".concat(t),controls:!0},d().createElement("source",{src:e.url,type:e.type})," ")})),!n&&t.map((function(e,t){return d().createElement("img",{key:"twitter-preview__media-item-".concat(t),alt:e.alt,src:e.url})})))}}},{key:"renderQuoteTweet",value:function(e){if(e)return d().createElement("div",{className:"twitter-preview__quote-tweet"},d().createElement(g.SandBox,{html:'<blockquote class="twitter-tweet" data-conversation="none" data-dnt="true"><a href="'.concat(e,'"></a></blockquote>'),scripts:["https://platform.twitter.com/widgets.js"],title:"Embedded tweet",onFocus:this.hideOverlay}),d().createElement("div",{className:"twitter-preview__quote-tweet-overlay"}))}},{key:"renderCard",value:function(e){if(e){var t=e.description,n=e.image,r=e.title,i=e.type,s=e.url,o=c()("twitter-preview__card-".concat(i),{"twitter-preview__card-has-image":!!n});return d().createElement("div",{className:"twitter-preview__card"},d().createElement("div",{className:o},n&&d().createElement("img",{className:"twitter-preview__card-image",src:n,alt:""}),d().createElement("div",{className:"twitter-preview__card-body"},d().createElement("div",{className:"twitter-preview__card-title"},r),d().createElement("div",{className:"twitter-preview__card-description"},b((0,v.ju)(t))),d().createElement("div",{className:"twitter-preview__card-url"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("g",null,d().createElement("path",{d:"M11.96 14.945c-.067 0-.136-.01-.203-.027-1.13-.318-2.097-.986-2.795-1.932-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608c2.322-1.716 5.61-1.224 7.33 1.1.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094c-.333.246-.804.175-1.05-.158-.246-.334-.176-.804.158-1.05l1.48-1.095c.803-.592 1.327-1.463 1.476-2.45.148-.988-.098-1.975-.69-2.778-1.225-1.656-3.572-2.01-5.23-.784l-3.53 2.608c-.802.593-1.326 1.464-1.475 2.45-.15.99.097 1.975.69 2.778.498.675 1.187 1.15 1.992 1.377.4.114.633.528.52.928-.092.33-.394.547-.722.547z"}),d().createElement("path",{d:"M7.27 22.054c-1.61 0-3.197-.735-4.225-2.125-.832-1.127-1.176-2.51-.968-3.894s.943-2.605 2.07-3.438l1.478-1.094c.334-.245.805-.175 1.05.158s.177.804-.157 1.05l-1.48 1.095c-.803.593-1.326 1.464-1.475 2.45-.148.99.097 1.975.69 2.778 1.225 1.657 3.57 2.01 5.23.785l3.528-2.608c1.658-1.225 2.01-3.57.785-5.23-.498-.674-1.187-1.15-1.992-1.376-.4-.113-.633-.527-.52-.927.112-.4.528-.63.926-.522 1.13.318 2.096.986 2.794 1.932 1.717 2.324 1.224 5.612-1.1 7.33l-3.53 2.608c-.933.693-2.023 1.026-3.105 1.026z"}))),function(e){return e.replace(/^[^/]+[/]*(www\.)?/,"").replace(/\/.*$/,"")}(s||"")))))}}},{key:"renderFooter",value:function(){return d().createElement("div",{className:"twitter-preview__footer"},d().createElement("span",{className:"twitter-preview__icon-replies"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828c0 .108.044.286.12.403.142.225.384.347.632.347.138 0 .277-.038.402-.118.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67c0-.414-.335-.75-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"}))),d().createElement("span",{className:"twitter-preview__icon-retweets"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M23.77 15.67c-.292-.293-.767-.293-1.06 0l-2.22 2.22V7.65c0-2.068-1.683-3.75-3.75-3.75h-5.85c-.414 0-.75.336-.75.75s.336.75.75.75h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22c-.293-.293-.768-.293-1.06 0s-.294.768 0 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5c.294-.292.294-.767 0-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22c.148.147.34.22.532.22s.384-.073.53-.22c.293-.293.293-.768 0-1.06l-3.5-3.5c-.293-.294-.768-.294-1.06 0l-3.5 3.5c-.294.292-.294.767 0 1.06s.767.293 1.06 0l2.22-2.22V16.7c0 2.068 1.683 3.75 3.75 3.75h5.85c.414 0 .75-.336.75-.75s-.337-.75-.75-.75z"}))),d().createElement("span",{className:"twitter-preview__icon-likes"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"}))),d().createElement("span",{className:"twitter-preview__icon-share"},d().createElement("svg",{viewBox:"0 0 24 24"},d().createElement("path",{d:"M17.53 7.47l-5-5c-.293-.293-.768-.293-1.06 0l-5 5c-.294.293-.294.768 0 1.06s.767.294 1.06 0l3.72-3.72V15c0 .414.336.75.75.75s.75-.336.75-.75V4.81l3.72 3.72c.146.147.338.22.53.22s.384-.072.53-.22c.293-.293.293-.767 0-1.06z"}),d().createElement("path",{d:"M19.708 21.944H4.292C3.028 21.944 2 20.916 2 19.652V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 .437.355.792.792.792h15.416c.437 0 .792-.355.792-.792V14c0-.414.336-.75.75-.75s.75.336.75.75v5.652c0 1.264-1.028 2.292-2.292 2.292z"}))))}},{key:"render",value:function(){var e=this.props,t=e.isLast,n=e.profileImage,r=e.name,i=e.screenName,s=e.date,o=e.text,a=e.media,c=e.tweet,l=e.urls,u=e.card;return d().createElement("div",{className:"twitter-preview__container"},this.renderSidebar(n,t),d().createElement("div",{className:"twitter-preview__main"},this.renderHeader(r,i,s),d().createElement("div",{className:"twitter-preview__content"},this.renderText(o,l,u),this.renderMedia(a),this.renderQuoteTweet(c),this.renderCard(u)),this.renderFooter()))}}]),n}(p.PureComponent);y.propTypes={tweets:u().array,isLast:u().bool,profileImage:u().string,name:u().string,screenName:u().string,date:u().number,text:u().string,media:u().array,tweet:u().string,urls:u().array,card:u().object}},24555:function(e,t,n){"use strict";n.d(t,{tq:function(){return p},bQ:function(){return d}});var r=n(55246),i=769,s="<480px",o="undefined"==typeof window||!window.matchMedia;function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.min,n=e.max;return void 0!==t&&void 0!==n?o?{matches:i>t&&i<=n}:window.matchMedia("(min-width: ".concat(t+1,"px) and (max-width: ").concat(n,"px)")):void 0!==t?o?{matches:i>t}:window.matchMedia("(min-width: ".concat(t+1,"px)")):void 0!==n&&(o?{matches:i<=n}:window.matchMedia("(max-width: ".concat(n,"px)")))}var c={"<480px":a({max:480}),"<660px":a({max:660}),"<800px":a({max:800}),"<960px":a({max:960}),"<1040px":a({max:1040}),"<1280px":a({max:1280}),"<1400px":a({max:1400}),">480px":a({min:480}),">660px":a({min:660}),">800px":a({min:800}),">960px":a({min:960}),">1040px":a({min:1040}),">1280px":a({min:1280}),">1400px":a({min:1400}),"480px-660px":a({min:480,max:660}),"660px-960px":a({min:660,max:960}),"480px-960px":a({min:480,max:960})};function l(e){if(c.hasOwnProperty(e))return c[e];try{r.warn("Undefined breakpoint used in `mobile-first-breakpoint`",e)}catch(e){}}function u(e){var t=l(e);return t?t.matches:void 0}function p(){return u(s)}function d(){return o?i:window.innerWidth}},90922:function(e,t,n){var r=n(55246),i=n(5806);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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))})),t.splice(i,0,n)},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&&void 0!==i&&"env"in i&&(e=i.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,r.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=r.debug||r.log||(()=>{}),e.exports=n(31967)(t);const{formatters:s}=e.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){var r=n(55246);e.exports=function(e){function t(e){let n,r,s,o=null;function a(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];if(!a.enabled)return;const s=a,o=Number(new Date),c=o-(n||o);s.diff=c,s.prev=n,s.curr=o,n=o,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let l=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";l++;const i=t.formatters[n];if("function"==typeof i){const t=r[l];e=i.call(s,t),r.splice(l,1),l--}return e})),t.formatArgs.call(s,r);const u=s.log||t.log;u.apply(s,r)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=i,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(r!==t.namespaces&&(r=t.namespaces,s=t.enabled(e)),s),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function i(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function s(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(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),i=r.length;for(n=0;n<i;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){r.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},34770:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r="Invariant failed";function i(e,t){if(!e)throw new Error(r)}},11043:function(e,t,n){"use strict";var r=n(1625),i=n(99196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,s=i.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=s[0];var o=s[1];return s=e.value,e.getCurrentValue===t&&e.subscribe===n||(s=t(),o({getCurrentValue:t,subscribe:n,value:s})),i.useDebugValue(s),i.useEffect((function(){function e(){if(!i){var e=t();o((function(i){return i.getCurrentValue!==t||i.subscribe!==n||i.value===e?i:r({},i,{value:e})}))}}var i=!1,s=n(e);return e(),function(){i=!0,s()}}),[t,n]),s}},20036:function(e,t,n){"use strict";e.exports=n(11043)},49231:function(e,t,n){var r=n(55246);function i(e){try{if(!window.localStorage)return!1}catch(e){return!1}var t=window.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(i("noDeprecation"))return e;var n=!1;return function(){if(!n){if(i("throwDeprecation"))throw new Error(t);i("traceDeprecation")?r.trace(t):r.warn(t),n=!0}return e.apply(this,arguments)}}},11311:function(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},58370:function(e,t,n){"use strict";var r=n(98304),i=n(57372),s=n(32457),o=n(8639);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,u=a(Object.prototype.toString),p=a(Number.prototype.valueOf),d=a(String.prototype.valueOf),h=a(Boolean.prototype.valueOf);if(c)var f=a(BigInt.prototype.valueOf);if(l)var m=a(Symbol.prototype.valueOf);function g(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function v(e){return"[object Map]"===u(e)}function b(e){return"[object Set]"===u(e)}function y(e){return"[object WeakMap]"===u(e)}function k(e){return"[object WeakSet]"===u(e)}function w(e){return"[object ArrayBuffer]"===u(e)}function _(e){return"undefined"!=typeof ArrayBuffer&&(w.working?w(e):e instanceof ArrayBuffer)}function E(e){return"[object DataView]"===u(e)}function C(e){return"undefined"!=typeof DataView&&(E.working?E(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=i,t.isTypedArray=o,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):o(e)||C(e)},t.isUint8Array=function(e){return"Uint8Array"===s(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===s(e)},t.isUint16Array=function(e){return"Uint16Array"===s(e)},t.isUint32Array=function(e){return"Uint32Array"===s(e)},t.isInt8Array=function(e){return"Int8Array"===s(e)},t.isInt16Array=function(e){return"Int16Array"===s(e)},t.isInt32Array=function(e){return"Int32Array"===s(e)},t.isFloat32Array=function(e){return"Float32Array"===s(e)},t.isFloat64Array=function(e){return"Float64Array"===s(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===s(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===s(e)},v.working="undefined"!=typeof Map&&v(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(v.working?v(e):e instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(b.working?b(e):e instanceof Set)},y.working="undefined"!=typeof WeakMap&&y(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(y.working?y(e):e instanceof WeakMap)},k.working="undefined"!=typeof WeakSet&&k(new WeakSet),t.isWeakSet=function(e){return k(e)},w.working="undefined"!=typeof ArrayBuffer&&w(new ArrayBuffer),t.isArrayBuffer=_,E.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&E(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=C;var S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function j(e){return"[object SharedArrayBuffer]"===u(e)}function M(e){return void 0!==S&&(void 0===j.working&&(j.working=j(new S)),j.working?j(e):e instanceof S)}function x(e){return g(e,p)}function N(e){return g(e,d)}function A(e){return g(e,h)}function O(e){return c&&g(e,f)}function T(e){return l&&g(e,m)}t.isSharedArrayBuffer=M,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===u(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===u(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===u(e)},t.isGeneratorObject=function(e){return"[object Generator]"===u(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===u(e)},t.isNumberObject=x,t.isStringObject=N,t.isBooleanObject=A,t.isBigIntObject=O,t.isSymbolObject=T,t.isBoxedPrimitive=function(e){return x(e)||N(e)||A(e)||O(e)||T(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(_(e)||M(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},23333:function(e,t,n){var r=n(5806),i=n(55246),s=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},o=/%[sdj%]/g;t.format=function(e){if(!k(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(u(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,s=String(e).replace(o,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n<i;a=r[++n])b(a)||!E(a)?s+=" "+a:s+=" "+u(a);return s},t.deprecate=function(e,n){if(void 0!==r&&!0===r.noDeprecation)return e;if(void 0===r)return function(){return t.deprecate(e,n).apply(this,arguments)};var s=!1;return function(){if(!s){if(r.throwDeprecation)throw new Error(n);r.traceDeprecation?i.trace(n):i.error(n),s=!0}return e.apply(this,arguments)}};var a={},c=/^$/;if(r.env.NODE_DEBUG){var l=r.env.NODE_DEBUG;l=l.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),c=new RegExp("^"+l+"$","i")}function u(e,n){var r={seen:[],stylize:d};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),v(n)?r.showHidden=n:n&&t._extend(r,n),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=p),h(r,e,r.depth)}function p(e,t){var n=u.styles[t];return n?"["+u.colors[n][0]+"m"+e+"["+u.colors[n][1]+"m":e}function d(e,t){return e}function h(e,n,r){if(e.customInspect&&n&&j(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return k(i)||(i=h(e,i,r)),i}var s=function(e,t){if(w(t))return e.stylize("undefined","undefined");if(k(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(v(t))return e.stylize(""+t,"boolean");if(b(t))return e.stylize("null","null")}(e,n);if(s)return s;var o=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(n)),S(n)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return f(n);if(0===o.length){if(j(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(_(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(S(n))return f(n)}var l,u="",p=!1,d=["{","}"];(g(n)&&(p=!0,d=["[","]"]),j(n))&&(u=" [Function"+(n.name?": "+n.name:"")+"]");return _(n)&&(u=" "+RegExp.prototype.toString.call(n)),C(n)&&(u=" "+Date.prototype.toUTCString.call(n)),S(n)&&(u=" "+f(n)),0!==o.length||p&&0!=n.length?r<0?_(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),l=p?function(e,t,n,r,i){for(var s=[],o=0,a=t.length;o<a;++o)O(t,String(o))?s.push(m(e,t,n,r,String(o),!0)):s.push("");return i.forEach((function(i){i.match(/^\d+$/)||s.push(m(e,t,n,r,i,!0))})),s}(e,n,r,a,o):o.map((function(t){return m(e,n,r,a,t,p)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(l,u,d)):d[0]+u+d[1]}function f(e){return"["+Error.prototype.toString.call(e)+"]"}function m(e,t,n,r,i,s){var o,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),O(r,i)||(o="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=b(n)?h(e,c.value,null):h(e,c.value,n-1)).indexOf("\n")>-1&&(a=s?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),w(o)){if(s&&i.match(/^\d+$/))return a;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+a}function g(e){return Array.isArray(e)}function v(e){return"boolean"==typeof e}function b(e){return null===e}function y(e){return"number"==typeof e}function k(e){return"string"==typeof e}function w(e){return void 0===e}function _(e){return E(e)&&"[object RegExp]"===M(e)}function E(e){return"object"==typeof e&&null!==e}function C(e){return E(e)&&"[object Date]"===M(e)}function S(e){return E(e)&&("[object Error]"===M(e)||e instanceof Error)}function j(e){return"function"==typeof e}function M(e){return Object.prototype.toString.call(e)}function x(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(c.test(e)){var n=r.pid;a[e]=function(){var r=t.format.apply(t,arguments);i.error("%s %d: %s",e,n,r)}}else a[e]=function(){};return a[e]},t.inspect=u,u.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},u.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(58370),t.isArray=g,t.isBoolean=v,t.isNull=b,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=k,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=w,t.isRegExp=_,t.types.isRegExp=_,t.isObject=E,t.isDate=C,t.types.isDate=C,t.isError=S,t.types.isNativeError=S,t.isFunction=j,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(11311);var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function A(){var e=new Date,t=[x(e.getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":");return[e.getDate(),N[e.getMonth()],t].join(" ")}function O(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){i.log("%s - %s",A(),t.format.apply(t,arguments))},t.inherits=n(59503),t._extend=function(e,t){if(!t||!E(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var T="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function P(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(T&&e[T]){var t;if("function"!=typeof(t=e[T]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,T,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],s=0;s<arguments.length;s++)i.push(arguments[s]);i.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,i)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),T&&Object.defineProperty(t,T,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,s(e))},t.promisify.custom=T,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var i=t.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var s=this,o=function(){return i.apply(s,arguments)};e.apply(this,t).then((function(e){r.nextTick(o.bind(null,null,e))}),(function(e){r.nextTick(P.bind(null,e,o))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,s(e)),t}},21976:function(e,t){"use strict";function n(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}t.Z=function e(t,r){if(t===r)return!0;if(null==t||null==r)return!1;if(Array.isArray(t))return Array.isArray(r)&&t.length===r.length&&t.every((function(t,n){return e(t,r[n])}));if("object"==typeof t||"object"==typeof r){var i=n(t),s=n(r);return i!==t||s!==r?e(i,s):Object.keys(Object.assign({},t,r)).every((function(n){return e(t[n],r[n])}))}return!1}},32457:function(e,t,n){"use strict";var r=n(49478),i=n(87331),s=n(16422),o=s("Object.prototype.toString"),a=n(77828)(),c="undefined"==typeof globalThis?window:globalThis,l=i(),u=s("String.prototype.slice"),p={},d=n(61787),h=Object.getPrototypeOf;a&&d&&h&&r(l,(function(e){if("function"==typeof c[e]){var t=new c[e];if(Symbol.toStringTag in t){var n=h(t),r=d(n,Symbol.toStringTag);if(!r){var i=h(n);r=d(i,Symbol.toStringTag)}p[e]=r.get}}}));var f=n(8639);e.exports=function(e){return!!f(e)&&(a&&Symbol.toStringTag in e?function(e){var t=!1;return r(p,(function(n,r){if(!t)try{var i=n.call(e);i===r&&(t=i)}catch(e){}})),t}(e):u(o(e),8,-1))}},62042:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg"},90724:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-thanks-5873bfac56a9bd7322cd.jpg"},44072:function(e,t,n){"use strict";e.exports=n.p+"images/boost-8ea10be101c586380d89.svg"},79568:function(e,t,n){"use strict";e.exports=n.p+"images/cloud-d0f9b0f863bc1adcc03e.svg"},23183:function(e,t,n){"use strict";e.exports=n.p+"images/remove-bug-aa23c420a6e6394d5787.svg"},80118:function(e,t,n){"use strict";e.exports=n.p+"images/shield-with-check-b59b7e859cf937a15a0e.svg"},20873:function(e,t,n){"use strict";e.exports=n.p+"images/shield-bb27f10b1ca957261b8d.svg"},92787:function(e){"use strict";if(void 0==={consumer_slug:"jetpack"}){var t=new Error('Cannot find module \'{"consumer_slug":"jetpack"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"jetpack"}},99196:function(e){"use strict";e.exports=window.React},91850:function(e){"use strict";e.exports=window.ReactDOM},92819:function(e){"use strict";e.exports=window.lodash},76292:function(e){"use strict";e.exports=window.moment},55609:function(e){"use strict";e.exports=window.wp.components},94333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},69771:function(e){"use strict";e.exports=window.wp.date},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n},70444:function(e){"use strict";e.exports=window.wp.primitives},96483:function(e){"use strict";e.exports=window.wp.url},56095:function(){},14864:function(){},69627:function(){},23833:function(){},80677:function(){},87331:function(e){"use strict";var t=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],n="undefined"==typeof globalThis?window:globalThis;e.exports=function(){for(var e=[],r=0;r<t.length;r++)"function"==typeof n[t[r]]&&(e[e.length]=t[r]);return e}},61787:function(e,t,n){"use strict";var r=n(25165)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},45086:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},57275:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return i}})},15746:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(6336),i=n(77363),s=n(2102);function o(e){var t=(0,i.Z)();return function(){var n,i=(0,r.Z)(e);if(t){var o=(0,r.Z)(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return(0,s.Z)(this,n)}}},12472:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},6336:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},45814:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99112);function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},71446:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99112);function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},77363:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},49058:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(12472);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},5343:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},s=Object.keys(e);for(r=0;r<s.length;r++)n=s[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}n.d(t,{Z:function(){return r}})},2102:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(31344),i=n(25303);function s(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},31344:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},8134:function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}n.d(t,{Z:function(){return r}})},14316:function(e,t,n){"use strict";function r(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return r}})},97024:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(8134);function i(e){if(Array.isArray(e))return(0,r.Z)(e)}},55200:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},71687:function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return r}})},93772:function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function i(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}n.d(t,{Z:function(){return i}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(72406),i=n(58189),s=n(34621);function o(e){var t=(0,i.Z)();return function(){var n,i=(0,r.Z)(e);if(t){var o=(0,r.Z)(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return(0,s.Z)(this,n)}}},98086:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return r}})},50735:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},72406:function(e,t,n){"use strict";function r(e){return r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(e)}n.d(t,{Z:function(){return r}})},82104:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(43051);function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,r.Z)(e,t)}},96980:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(43051);function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},58189:function(e,t,n){"use strict";function r(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return r}})},40613:function(e,t,n){"use strict";function r(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return r}})},20120:function(e,t,n){"use strict";function r(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,s=[],_n=!0,o=!1;try{for(n=n.call(e);!(_n=(r=n.next()).done)&&(s.push(r.value),!t||s.length!==t);_n=!0);}catch(e){o=!0,i=e}finally{try{_n||null==n.return||n.return()}finally{if(o)throw i}}return s}}n.d(t,{Z:function(){return r}})},41722:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},56083:function(e,t,n){"use strict";function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return r}})},52141:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(98086);function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&i.push.apply(i,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach((function(t){(0,r.Z)(e,t,n[t])}))}return e}},59591:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(98086);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,r.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},34621:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(29504),i=n(55200);function s(e,t){if(t&&("object"===(0,r.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,i.Z)(e)}},43051:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},50572:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(14316),i=n(20120),s=n(33611),o=n(41722);function a(e,t){return(0,r.Z)(e)||(0,i.Z)(e,t)||(0,s.Z)(e,t)||(0,o.Z)()}},59128:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(97024),i=n(40613),s=n(33611),o=n(56083);function a(e){return(0,r.Z)(e)||(0,i.Z)(e)||(0,s.Z)(e)||(0,o.Z)()}},29504:function(e,t,n){"use strict";function r(e){return r="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},r(e)}n.d(t,{Z:function(){return r}})},33611:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(8134);function i(e,t){if(e){if("string"==typeof e)return(0,r.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,r.Z)(e,t):void 0}}},4317:function(e){"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},1877:function(e){"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},72968:function(e){"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},27046:function(e){"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},80906:function(e){"use strict";e.exports={i8:"6.5.4"}},93611:function(e){"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var s=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(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.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e}();var r={};!function(){"use strict";n.d(r,{getRouteName:function(){return h}});var e=n(91850),t=n.n(e),i=n(99196),s=n.n(i),o=n(2620),a=n(1336),c=n(12901),l=(n(92819),n(65736)),u=n(30655),p=n(594),d=n(98772);const _x=l._x;function h(e){switch(e){default:return _x("At A Glance","Navigation item.","jetpack");case"/setup":return _x("Set up","Navigation item.","jetpack");case"/my-plan":return _x("My Plan","Navigation item.","jetpack");case"/plans":case"/plans-prompt":return _x("Plans","Navigation item.","jetpack");case"/recommendations":return _x("Recommendations","Navigation item.","jetpack");case"/settings":return _x("Settings","Navigation item.","jetpack");case"/discussion":return _x("Discussion","Navigation item.","jetpack");case"/security":return _x("Security","Navigation item.","jetpack");case"/performance":return _x("Performance","Navigation item.","jetpack");case"/traffic":return _x("Traffic","Navigation item.","jetpack");case"/writing":return _x("Writing","Navigation item.","jetpack");case"/sharing":return _x("Sharing","Navigation item.","jetpack");case"/license/activation":return _x("License","Navigation item.","jetpack")}}(0,u.Z)(),function(){const e=document.getElementById("jp-plugin-container");if(null===e)return;t().render(s().createElement("div",null,s().createElement(o.zt,{store:p.Z},s().createElement(a.UT,null,s().createElement(c.rs,null,s().createElement(c.AW,{path:"/dashboard"},s().createElement(d.Z,{routeName:h("/dashboard")})),s().createElement(c.AW,{path:"/reconnect"},s().createElement(d.Z,{routeName:h("/reconnect")})),s().createElement(c.AW,{path:"/setup"},s().createElement(d.Z,{routeName:h("/setup")})),s().createElement(c.AW,{path:"/my-plan"},s().createElement(d.Z,{routeName:h("/my-plan")})),s().createElement(c.AW,{path:"/plans"},s().createElement(d.Z,{routeName:h("/plans")})),s().createElement(c.AW,{path:"/recommendations"},s().createElement(d.Z,{routeName:h("/recommendations")})),s().createElement(c.AW,{path:"/plans-prompt"},s().createElement(d.Z,{routeName:h("/plans-prompt")})),s().createElement(c.AW,{path:"/settings"},s().createElement(d.Z,{routeName:h("/settings")})),s().createElement(c.AW,{path:"/discussion"},s().createElement(d.Z,{routeName:h("/discussion")})),s().createElement(c.AW,{path:"/security"},s().createElement(d.Z,{routeName:h("/security")})),s().createElement(c.AW,{path:"/performance"},s().createElement(d.Z,{routeName:h("/performance")})),s().createElement(c.AW,{path:"/traffic"},s().createElement(d.Z,{routeName:h("/traffic")})),s().createElement(c.AW,{path:"/writing"},s().createElement(d.Z,{routeName:h("/writing")})),s().createElement(c.AW,{path:"/sharing"},s().createElement(d.Z,{routeName:h("/sharing")})),s().createElement(c.AW,{path:"/license/activation"},s().createElement(d.Z,{routeName:h("/license/activation")})),s().createElement(c.AW,{path:"/wpbody-content",component:d.Z}),s().createElement(c.AW,{path:"/wp-toolbar",component:d.Z}),s().createElement(c.AW,{path:"/privacy",component:d.Z}),s().createElement(c.AW,{path:"/*"},s().createElement(d.Z,{routeName:h("/*")})))))),e)}()}(),window.getRouteName=r.getRouteName}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/admin.js.LICENSE.txt b/plugins/jetpack/_inc/build/admin.js.LICENSE.txt
new file mode 100644
index 00000000..40d5d150
--- /dev/null
+++ b/plugins/jetpack/_inc/build/admin.js.LICENSE.txt
@@ -0,0 +1,83 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <https://feross.org>
+ * @license MIT
+ */
+
+/*!
+ * clipboard.js v2.0.6
+ * https://clipboardjs.com/
+ *
+ * Licensed MIT © Zeno Rocha
+ */
+
+/*!
+* focus-trap 6.3.0
+* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
+*/
+
+/*!
+* tabbable 5.2.1
+* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
+*/
+
+/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
+
+/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
+
+/**
+ * This test is for touch events.
+ * It may not accurately detect a touch screen, but may be close enough depending on the use case.
+ *
+ * @copyright Modernizr © 2009-2015.
+ * @license See CREDITS.md.
+ * @see https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js
+ *
+ * @returns {Boolean} whether touch screen is available
+ */
+
+/** @license React v16.13.1
+ * react-is.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.
+ */
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/_inc/build/admin.rtl.css b/plugins/jetpack/_inc/build/admin.rtl.css
index 2cae892d..b0d5dbb3 100644
--- a/plugins/jetpack/_inc/build/admin.rtl.css
+++ b/plugins/jetpack/_inc/build/admin.rtl.css
@@ -1 +1 @@
-.dops-button{background:#f3f5f6;border:1px solid #0071a1;color:#0071a1;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:13px;border-radius:3px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dops-button:hover{background:#f1f1f1;border-color:#016087;color:#016087}.dops-button:disabled,.dops-button[disabled]{color:#eee;background:#fff;border-color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#0071a1;box-shadow:0 0 0 1px #0071a1}.dops-button.is-compact{padding:0 10px;line-height:2}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{top:4px;margin-top:-8px}.dops-button.is-compact .gridicons-plus-small{margin-right:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-right:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-right:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}.dops-button.is-primary{background:#007cba;border-color:#007cba;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{border-color:#0071a1;background:#0071a1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0071a1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{color:#66c6e4!important;background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;text-shadow:none!important;cursor:default}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{color:#f4cdcd;border-color:#eee}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-right:0;padding-left:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{width:24px;height:24px;top:6px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{color:#eee;background:#fff;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{width:18px;height:18px;top:5px}.dops-button-group .dops-button{border-right-width:0;border-radius:0}.dops-button-group .dops-button:focus{position:relative;z-index:z-index("button-group-parent",".button-group .button:focus")}.dops-button-group .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0071a1}.dops-button-group .dops-button.is-scary:focus{box-shadow:inset -1px 0 0 #d94f4f,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-primary.is-scary:focus{box-shadow:inset -1px 0 0 #761919,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-scary:first-child:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button-group .dops-button:first-child{border-right-width:1px;border-top-right-radius:4px;border-bottom-right-radius:4px}.dops-button-group .dops-button:last-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.dops-section-header .dops-button-group .dops-button{margin-left:0}.dops-count{display:inline-block;padding:.0625rem .375rem;border:1px solid #a2a2a2;border-radius:.75rem;font-size:.6875rem;font-weight:600;line-height:.875rem;color:#a2a2a2;text-align:center}.dops-select-dropdown{height:43px}.dops-select-dropdown.is-compact{height:28px}.dops-select-dropdown.is-disabled .dops-select-dropdown__header{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-select-dropdown__container{position:relative;overflow:hidden;display:inline-block;width:auto;max-width:100%}.dops-select-dropdown.is-open .dops-select-dropdown__container{z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container,.dops-accessible-focus .dops-select-dropdown__container:focus{z-index:170;box-shadow:0 0 0 2px #78dcfa}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container .select-dropdown__header,.dops-accessible-focus .dops-select-dropdown__container:focus .select-dropdown__header{border-color:#0087be}.dops-accessible-focus .dops-select-dropdown__container:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;border-radius:4px}.dops-select-dropdown__header{padding:11px 16px 11px 44px;border:solid #d5d5d5;border-width:1px 1px 2px;border-radius:4px;background-color:#fff;font-size:14px;font-weight:600;line-height:18px;height:18px;color:#414141;transition:background-color .2s ease;cursor:pointer}.dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons;content:"\f347";position:absolute;left:13px;top:12px;display:block;line-height:18px;color:hsla(0,0%,63.5%,.5)}.is-compact .dops-select-dropdown__header:after{left:4px;top:4px}.is-compact .dops-select-dropdown__header{padding:7px;color:#888;font-size:11px;line-height:1;text-transform:uppercase}.is-compact .dops-select-dropdown__header .dops-count{border-width:0;margin-right:0;line-height:1}.dops-select-dropdown.is-open .dops-select-dropdown__header{border-radius:4px 4px 0 0;box-shadow:none;background-color:#f6f6f6}.dops-select-dropdown.is-open .dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons;content:"\f343"}.dops-select-dropdown__header .dops-count{margin-right:8px}.dops-select-dropdown__header-text{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dops-select-dropdown__options{visibility:hidden;height:0;box-sizing:border-box;padding:0;list-style:none;margin:-2px 0 0;background-color:#fff;border:1px solid #d5d5d5;border-radius:0 0 4px 4px}.dops-accessible-focus .dops-select-dropdown__options{border:1px solid #0087be;border-top-color:#d5d5d5}.dops-select-dropdown.is-open .dops-select-dropdown__options{visibility:visible;height:auto}.dops-select-dropdown__option:last-child .dops-select-dropdown__item{border-radius:0 0 4px 4px}.dops-select-dropdown__item,.dops-select-dropdown__item-text{padding:11px 16px 11px 44px}.dops-select-dropdown__item{display:block;position:relative;font-size:14px;font-weight:400;line-height:18px;color:#414141;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;cursor:pointer}.dops-select-dropdown__item:before{content:attr(data-bold-text);font-weight:700;opacity:0}.dops-select-dropdown__item:visited{color:#414141}.dops-select-dropdown__item.is-selected{background-color:#007cba;color:#fff}.dops-select-dropdown__item.is-disabled{background-color:#fff;color:#a2a2a2;cursor:default;opacity:.5}.notouch .dops-select-dropdown__item:hover{color:#007cba}.notouch .dops-select-dropdown__item.is-selected:hover{color:#fff}.dops-select-dropdown__item-text{padding-left:16px;box-sizing:border-box;position:absolute;top:0;right:0;width:100%;white-space:nowrap;text-overflow:ellipsis;color:inherit;display:flex;flex-flow:row wrap;justify-content:space-between}.dops-select-dropdown__item-text .dops-count{color:inherit;border-color:inherit}.dops-select-dropdown__separator{border-top:1px solid #d5d5d5;display:block;margin:8px 0}.dops-select-dropdown__label{display:block;color:#bbb;margin-top:5px;line-height:20px}.dops-select-dropdown__label label{font-size:12px;text-transform:uppercase;padding:0 16px}@keyframes rotate-spinner__right{0%{transform:rotate(0deg)}25%{transform:rotate(-180deg)}50%{transform:rotate(-180deg)}75%{transform:rotate(-1turn)}to{transform:rotate(-1turn)}}@keyframes rotate-spinner__left{0%{transform:rotate(0deg)}25%{transform:rotate(0deg)}50%{transform:rotate(-180deg)}75%{transform:rotate(-180deg)}to{transform:rotate(-1turn)}}.dops-spinner.is-fallback{position:relative;border-radius:100%;background-color:#d5d5d5}.dops-spinner.is-fallback:after,.dops-spinner.is-fallback:before{content:"";position:absolute;background-color:#fff;border-radius:50%}.dops-spinner.is-fallback:before{width:90%;height:90%;top:5%;right:5%}.dops-spinner.is-fallback:after{width:70%;height:70%;top:15%;right:15%}.dops-spinner__image{display:block}.dops-spinner__border{fill:#d5d5d5}.dops-spinner__progress{animation:3s linear infinite;transform-origin:50px 50px;fill:#007cba}.dops-spinner.is-fallback .dops-spinner__progress{position:absolute;overflow:hidden;width:50%;height:100%;animation:none}.dops-spinner.is-fallback .dops-spinner__progress:before{content:"";position:absolute;width:100%;height:100%;animation:3s linear infinite;border-radius:9999px;background-color:#007cba;fill:none}.dops-spinner.is-fallback .dops-spinner__progress.is-left{right:0}.dops-spinner.is-fallback .dops-spinner__progress.is-left:before{right:100%;border-top-right-radius:0;border-bottom-right-radius:0;transform-origin:100% 50%}.dops-spinner.is-fallback .dops-spinner__progress.is-right{right:50%}.dops-spinner.is-fallback .dops-spinner__progress.is-right:before{right:-100%;border-top-left-radius:0;border-bottom-left-radius:0;transform-origin:0 50%}.dops-spinner.is-fallback .dops-spinner__progress.is-left:before,.dops-spinner__progress.is-left{animation-name:rotate-spinner__left}.dops-spinner.is-fallback .dops-spinner__progress.is-right:before,.dops-spinner__progress.is-right{animation-name:rotate-spinner__right}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(-1px,1px)}.gridicon.needs-offset-x g{transform:translate(-1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-search{display:flex;flex:1 1 auto;margin-bottom:24px;width:60px;height:51px;position:relative;align-items:center;z-index:22;transition:all .15s ease-in-out}.dops-search .dops-search__icon-navigation{flex:0 0 auto;display:flex;align-items:center;background-color:#fff;border-radius:inherit;height:100%}.dops-search .dops-search__close-icon,.dops-search .dops-search__open-icon{flex:0 0 auto;width:50px;z-index:20;color:#0087be;cursor:pointer}.accessible-focus .dops-search .dops-search__close-icon:focus,.accessible-focus .dops-search .dops-search__open-icon:focus{outline:1px dotted #0087be}.dops-search .dops-search__open-icon:hover{color:#555}.dops-search .dops-search__close-icon{color:#555;opacity:0;transition:opacity .2s ease-in}.accessible-focus .dops-search.has-focus{box-shadow:0 0 0 1px #0087be,0 0 0 4px #78dcfa}.dops-search.is-expanded-to-container{margin-bottom:0;position:absolute;display:flex;height:100%;width:50px;top:0;left:0;overflow:hidden}.dops-search.is-expanded-to-container .dops-search__input-fade{position:relative;flex:1 1 auto;display:flex}.dops-search.is-expanded-to-container .dops-search__input[type=search]{flex:1 1 auto;display:flex;margin:0;box-shadow:none}.dops-search__input[type=search]{flex:1 1 auto;display:none;z-index:10;top:0;border:none;border-radius:inherit;height:100%;background:#fff;-moz-appearance:none;appearance:none;box-sizing:border-box;padding:0;-webkit-appearance:none}.dops-search__input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.dops-search__input[type=search]:focus{box-shadow:none;border:none}.dops-search.is-open{width:100%}.dops-search.is-open .dops-search__open-icon{color:#555}.dops-search.is-open .dops-search__close-icon{display:inline-block}.dops-search.is-open .dops-search__close-icon,.dops-search.is-open .dops-search__input{opacity:1}.dops-search.is-open .dops-search__input{display:block}.dops-search.is-open .dops-search__input-fade{flex:1 1 auto;height:100%;position:relative;font-size:16px;border-radius:inherit}.dops-search.is-open .dops-search__input-fade.ltr:before,.dops-search.is-open .dops-search__input-fade:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;z-index:12;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;left:0;right:auto;width:32px;height:auto;border-radius:inherit}.dops-search__input-fade .dops-search__text-overlay{color:transparent;position:absolute;pointer-events:none;white-space:nowrap;display:flex;align-items:center;flex:1 1 auto;overflow:hidden;font:inherit;width:100%;height:100%;top:0;right:0;z-index:11}.dops-search .dops-spinner,.dops-search.is-searching .dops-search__open-icon{display:none}.dops-search.is-searching .dops-spinner{flex:0 0 auto;display:flex;align-items:center;height:100%;z-index:20}.dops-search.is-searching .dops-spinner .dops-spinner__image{width:50px}.animating.dops-search-opening .dops-search input{opacity:1}.dops-section-nav{position:relative;width:100%;padding:0;margin:0 0 17px;background:#fff;box-sizing:border-box;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04)}.dops-section-nav.is-empty .dops-section-nav__panel{visibility:hidden}@media (max-width:480px){.dops-section-nav.is-open{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}}@media (min-width:481px){.dops-section-nav.has-pinned-items{padding-left:60px}}@media (min-width:481px) and (max-width:660px){.dops-section-nav.has-pinned-items{padding-left:50px}}@media (max-width:660px){.dops-section-nav{margin-bottom:9px}}.dops-section-nav__mobile-header{display:flex;padding:15px;font-size:14px;line-height:16px;color:#414141;font-weight:600;cursor:pointer}.dops-section-nav__mobile-header:after{content:"\f347";line-height:16px;color:hsla(0,0%,63.5%,.5)}.dops-section-nav.is-open .dops-section-nav__mobile-header:after,.dops-section-nav__mobile-header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Dashicons}.dops-section-nav.is-open .dops-section-nav__mobile-header:after{content:"\f343"}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header{padding-left:50px}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header:after{margin-right:8px}@media (min-width:481px){.dops-section-nav__mobile-header{display:none}}.dops-section-nav__mobile-header-text{width:0;flex:1 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dops-section-nav__mobile-header-text small{margin-right:5px;font-size:11px;color:#a2a2a2;font-weight:600;text-transform:uppercase}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header-text{width:auto;flex:0 1 auto}.dops-section-nav__panel{box-sizing:border-box;width:100%}@media (max-width:480px){.dops-section-nav.is-open .dops-section-nav__panel{padding-bottom:15px;border-top:1px solid #d5d5d5;background:linear-gradient(180deg,#f6f6f6 0,#fff 4px)}}@media (min-width:481px){.dops-section-nav__panel{display:flex;align-items:center}.dops-section-nav__panel:first-child{width:0;flex:1 0 auto}}.dops-section-nav-group{position:relative;margin-top:16px;padding-top:16px;border-top:1px solid #d5d5d5}.dops-section-nav-group:first-child{padding-top:0;border-top:none}@media (max-width:480px){.dops-section-nav-group{display:none}.dops-section-nav.is-open .dops-section-nav-group{display:block}}@media (min-width:481px){.dops-section-nav-group{margin-top:0;padding-top:0;border-top:none}.dops-section-nav-group:first-child{display:flex;width:0;flex:1 0 auto}}.dops-section-nav__button{width:100%;margin-top:24px}.dops-section-nav__hr{background:#eee}.dops-section-nav-group__label{display:none;margin-bottom:8px;padding:0 15px;font-size:11px;color:#a2a2a2;font-weight:600;text-transform:uppercase;line-height:12px}@media (max-width:480px){.has-siblings .dops-section-nav-group__label{display:block}}.dops-section-nav-group__label-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dops-section-nav-tab .count{margin-right:8px}@media (min-width:481px){.dops-section-nav-tabs{width:0;flex:1 0 auto}.dops-section-nav-tabs.is-dropdown{position:relative;width:auto;flex:0 1 auto;margin:8px}}.dops-section-nav-tabs__list{margin:0;list-style:none}@media (min-width:481px){.dops-section-nav-tabs__list{display:flex;width:100%;overflow:hidden}.is-dropdown .dops-section-nav-tabs__list{display:none}}.dops-section-nav-tab{margin-bottom:0}@media (min-width:481px){.dops-section-nav-tab{width:auto;flex:none;border-bottom:2px solid transparent;border-top:none;text-align:center}.dops-section-nav-tab.is-selected{border-bottom-color:#414141}}.dops-section-nav-tab__link,.dops-section-nav-tab__text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dops-section-nav-tab__link{display:flex;align-items:center;box-sizing:border-box;padding:15px;width:100%;font-size:14px;font-weight:600;line-height:18px;color:#414141;cursor:pointer}.dops-section-nav-tab__link:visited{color:#414141}.dops-section-nav-tab__link[disabled],.notouch .dops-section-nav-tab__link[disabled]:hover{color:#eee;cursor:default}.is-selected .dops-section-nav-tab__link{color:#fff;background-color:#0071a1}.dops-section-nav-tab__link:focus{outline:none;box-shadow:none}.dops-accessible-focus .dops-section-nav-tab__link:focus{outline:1px solid #a2a2a2}.is-external .dops-section-nav-tab__link:after{font-size:18px;padding-right:2px}.dops-section-nav-tab__link:hover{color:#016087}.notouch .dops-section-nav-tab__link:hover{color:#0071a1}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#fff}@media (min-width:481px){.dops-section-nav-tab__link{display:block;width:auto;padding:16px 16px 14px;color:#0071a1;font-weight:400}.dops-section-nav-tab__link:visited{color:#0071a1}.is-selected .dops-section-nav-tab__link{color:#414141;background-color:transparent}.is-selected .dops-section-nav-tab__link:after{display:none}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#414141}}.dops-section-nav-tab__text{display:block;flex:1 0 auto;width:0;color:inherit}@media (min-width:481px){.dops-section-nav-tab__text{display:inline;flex:none;width:auto}}.dops-section-nav-tabs__dropdown{position:relative;z-index:3;width:100%}.dops-section-nav-tabs__dropdown.is-open{z-index:4}.dops-section-nav-tabs__dropdown .dops-select-dropdown__container{position:static}.dops-section-nav__segmented .dops-segmented-control{margin:0 15px}.dops-section-nav__segmented .dops-segmented-control__link{padding:3px 16px 5px}@media (max-width:480px){.dops-section-nav .dops-search.is-pinned{height:46px}}.dops-card{display:block;position:relative;margin:0 auto 10px;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04)}.dops-card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media (min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-left:48px}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;position:absolute;top:0;left:16px}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#007cba,20%)}.dops-text-input.dops-text-input{box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#414141;font-size:16px;line-height:1.5;border:1px solid #d5d5d5;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.dops-text-input.dops-text-input:-ms-input-placeholder{color:#a2a2a2}.dops-text-input.dops-text-input::-ms-input-placeholder{color:#a2a2a2}.dops-text-input.dops-text-input::placeholder{color:#a2a2a2}.dops-text-input.dops-text-input:hover{border-color:#bbb}.dops-text-input.dops-text-input:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.dops-text-input.dops-text-input:focus::-ms-clear{display:none}.dops-text-input.dops-text-input:disabled{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-text-input.dops-text-input:disabled:hover{cursor:default}.dops-text-input.dops-text-input:disabled:-ms-input-placeholder{color:#bbb}.dops-text-input.dops-text-input:disabled::-ms-input-placeholder{color:#bbb}.dops-text-input.dops-text-input:disabled::placeholder{color:#bbb}.dops-text-input.dops-text-input{-webkit-appearance:none}.dops-text-input.dops-text-input.is-valid{border-color:#4ab866}.dops-text-input.dops-text-input.is-valid:hover{border-color:#3a9551}.dops-text-input.dops-text-input.is-error{border-color:#d94f4f}.dops-text-input.dops-text-input.is-error:hover{border-color:#c92c2c}.dops-text-input.dops-text-input:focus.is-valid{box-shadow:0 0 0 2px #caead2}.dops-text-input.dops-text-input:focus.is-valid:hover{box-shadow:0 0 0 2px #a6dcb3}.dops-text-input.dops-text-input:focus.is-error{box-shadow:0 0 0 2px #f9e2e2}.dops-text-input.dops-text-input:focus.is-error:hover{box-shadow:0 0 0 2px #f0b8b8}.dops-popover{font-size:11px;z-index:1000;position:absolute;top:0;left:0;left:auto}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);text-align:center;position:relative}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{bottom:0;left:50%;margin-left:-10px;border-top-style:solid;border-bottom:none;border-left-color:transparent}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{bottom:2px;content:" ";position:absolute;left:50%;margin-left:-10px;border:10px solid transparent;border-top-color:#fff;border-bottom:none}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{top:0;left:50%;margin-left:-10px;border-bottom-style:solid;border-top:none;border-left-color:transparent}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{top:2px;content:" ";position:absolute;left:50%;margin-left:-10px;border:10px solid transparent;border-top:none;border-bottom:10px solid #fff}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{right:0;top:50%;margin-top:-10px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{right:2px;content:" ";position:absolute;top:50%;margin-top:-10px;border:10px solid transparent;border-right:none;border-left:10px solid #fff}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{left:0;top:50%;margin-top:-10px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{left:2px;content:" ";position:absolute;top:50%;margin-top:-10px;border:10px solid transparent;border-right-color:#fff;border-left:none}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-left:0;padding-right:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;left:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{position:relative;background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;text-align:right;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#007cba;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-right:42px}.dops-popover__menu-item .gridicon{color:#bbb;vertical-align:bottom;margin-left:8px}.dops-popover__hr{margin:8px 0;background:#eee}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{flex:none;position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;outline:0;cursor:pointer;transition:all .4s ease,box-shadow 0s}.form-toggle__switch:after,.form-toggle__switch:before{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{right:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #007cba}.form-toggle__label{display:flex;cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-right:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #007cba}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#007cba}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#007cba}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}.dops-section-header.dops-card{display:flex;flex-wrap:wrap;max-width:100%;padding-top:.6875rem;padding-bottom:.6875rem;position:relative}.dops-section-header.dops-card:after{content:""}.dops-section-header__label{display:flex;align-items:center;flex-grow:1;min-width:0;line-height:1.75rem;position:relative;color:#414141;font-size:.875rem}.dops-section-header__label .dops-count{margin-right:.5rem}.dops-section-header__label-text{position:relative;margin-left:.5rem;white-space:nowrap;overflow:hidden;width:100%;padding-left:.5rem;min-width:0}.dops-section-header__label-text:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;left:0;right:auto;width:8px;height:auto}.has-card-badge .dops-section-header__label-text{width:auto}.dops-section-header__actions{flex-grow:0;position:relative}.dops-section-header__actions:after{content:".";display:block;height:0;clear:both;visibility:hidden}.section-header__actions .button{float:right;margin-left:.5rem}.section-header__actions .button:last-child{margin-left:0}.dops-notice{display:flex;position:relative;width:100%;margin-bottom:24px;box-sizing:border-box;animation:appear .3s ease-in-out;background:#414141;color:#fff;border-radius:3px;line-height:1.5}.dops-notice.is-success .dops-notice__icon-wrapper{background:#4ab866}.dops-notice.is-warning .dops-notice__icon-wrapper{background:#f0b849}.dops-notice.is-error .dops-notice__icon-wrapper{background:#d94f4f}.dops-notice.is-info .dops-notice__icon-wrapper{background:#007cba}.dops-notice .dops-notice__dismiss,.dops-notice.is-error .dops-notice__dismiss,.dops-notice.is-info .dops-notice__dismiss,.dops-notice.is-success .dops-notice__dismiss,.dops-notice.is-warning .dops-notice__dismiss{overflow:hidden}.dops-notice__icon-wrapper{background:#747474;color:#fff;display:flex;align-items:baseline;width:47px;justify-content:center;border-radius:0 3px 3px 0;flex-shrink:0;align-self:stretch}.dops-notice__icon-wrapper .gridicon{margin-top:10px}@media (min-width:481px){.dops-notice__icon-wrapper .gridicon{margin-top:12px}}.dops-notice__content{padding:13px;font-size:12px;flex-grow:1}@media (min-width:481px){.dops-notice__content{font-size:14px}}.dops-notice__text a.dops-notice__text-no-underline{text-decoration:none}.dops-notice__text a,.dops-notice__text a:visited{text-decoration:underline;color:#fff}.dops-notice__text a:hover,.dops-notice__text a:visited:hover{color:#fff;text-decoration:none}.dops-notice__text ul{margin-bottom:0;margin-right:0}.dops-notice__text li{margin-right:2em;margin-top:.5em}.dops-notice__text p{margin-bottom:0;margin-top:.5em}.dops-notice__text p:first-child{margin-top:0}.dops-notice__button{cursor:pointer;margin-right:.428em}.dops-notice__dismiss{flex-shrink:0;cursor:pointer;padding:12px 12px 0}.dops-notice__dismiss .gridicon{width:18px;height:18px}@media (min-width:481px){.dops-notice__dismiss{padding:11px 11px 0}.dops-notice__dismiss .gridicon{width:24px;height:24px}}.dops-notice .dops-notice__dismiss{color:#bbb}.dops-notice .dops-notice__dismiss:focus,.dops-notice .dops-notice__dismiss:hover{color:#fff}a.dops-notice__action{cursor:pointer;font-size:12px;font-weight:400;text-decoration:none;white-space:nowrap;color:#bbb;padding:13px;display:flex;align-items:center}@media (min-width:481px){a.dops-notice__action{flex-shrink:1;flex-grow:0;align-items:center;border-radius:0;font-size:14px;margin:0 auto 0 0;padding:13px 16px}a.dops-notice__action .gridicon{width:24px;height:24px}}a.dops-notice__action:visited{color:#bbb}a.dops-notice__action:hover{color:#fff}a.dops-notice__action .gridicon{margin-right:8px;opacity:.7;width:18px;height:18px}.dops-notice.is-compact{display:inline-flex;flex-wrap:nowrap;flex-direction:row;width:auto;border-radius:3px;min-height:20px;margin:0;padding:0;text-decoration:none;text-transform:none;vertical-align:middle;line-height:1.5}.dops-notice.is-compact .dops-notice__content{font-size:12px;padding:6px 10px}.dops-notice.is-compact .dops-notice__icon-wrapper{width:28px}.dops-notice.is-compact .dops-notice__icon-wrapper .dops-notice__icon{width:18px;height:18px;margin:0}.dops-notice.is-compact .dops-notice__icon-wrapper .gridicon{margin-top:6px}.dops-notice.is-compact .dops-notice__dismiss{position:relative;align-self:center;flex:none;margin:0 0 0 8px;padding:0}.dops-notice.is-compact .dops-notice__dismiss .gridicon{width:18px;height:18px}.dops-notice.is-compact a.dops-notice__action{background:transparent;display:inline-block;font-size:12px;align-self:center;margin:0 16px 0 0;padding:0 10px}.dops-notice.is-compact a.dops-notice__action:active,.dops-notice.is-compact a.dops-notice__action:focus,.dops-notice.is-compact a.dops-notice__action:hover{background:transparent}.dops-notice.is-compact a.dops-notice__action .gridicon{margin-right:8px;width:14px;height:14px;vertical-align:sub;opacity:1}.dops-plan-icon{width:inherit;height:inherit;background-repeat:no-repeat}.dops-plan-icon__free .dops-plan-icon__free-0{fill:#78dcfa}.dops-plan-icon__free .dops-plan-icon__free-1{fill:#fff}.dops-plan-icon__free .dops-plan-icon__free-2{fill:#006a95}.dops-plan-icon__free .dops-plan-icon__free-3{fill:#0087be}.dops-plan-icon__free .dops-plan-icon__free-4{fill:#00a4e7}.dops-plan-icon__personal .dops-plan-icon__personal-0{fill:#f0b849}.dops-plan-icon__personal .dops-plan-icon__personal-1{fill:#a2a2a2}.dops-plan-icon__personal .dops-plan-icon__personal-2{fill:#d5d5d5}.dops-plan-icon__personal .dops-plan-icon__personal-3{fill:#fff}.dops-plan-icon__personal .dops-plan-icon__personal-4{fill:#888}.dops-plan-icon__personal .dops-plan-icon__personal-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-0{fill:#4ab866}.dops-plan-icon__premium .dops-plan-icon__premium-1{fill:#a2a2a2}.dops-plan-icon__premium .dops-plan-icon__premium-2{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-3{fill:#fff}.dops-plan-icon__premium .dops-plan-icon__premium-4{fill:#d5d5d5}.dops-plan-icon__premium .dops-plan-icon__premium-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-6{fill:#555}.dops-plan-icon__business .dops-plan-icon__business-0{fill:#855da6}.dops-plan-icon__business .dops-plan-icon__business-1{fill:#fff}.dops-plan-icon__business .dops-plan-icon__business-2{fill:#eee}.dops-plan-icon__business .dops-plan-icon__business-3{fill:#0087be}.dops-plan-icon__business .dops-plan-icon__business-4{fill:#005082}.dops-banner.dops-card{display:flex;padding:12px 12px 12px 6px;position:relative;z-index:2;border-right:3px solid #0087be}.dops-banner.dops-card.is-card-link{padding:12px 16px 12px 48px}.dops-banner.dops-card.is-dismissible{padding-left:48px}.dops-banner.dops-card .dops-banner__icon{color:#0087be}.dops-banner.dops-card .dops-banner__icon-circle{background-color:#0087be}.dops-banner.dops-card.is-jetpack-info{border-right-color:#00be28}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon{color:#00be28}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon-circle{background-color:#00be28}.dops-banner.dops-card.is-upgrade-personal{border-right-color:#f0b849}.dops-banner.dops-card.is-upgrade-personal .dops-banner__icon{color:#f0b849}.dops-banner.dops-card.is-upgrade-personal .dops-banner__icon-circle{background-color:#f0b849}.dops-banner.dops-card.is-upgrade-premium{border-right-color:#4ab866}.dops-banner.dops-card.is-upgrade-premium .dops-banner__icon{color:#4ab866}.dops-banner.dops-card.is-upgrade-premium .dops-banner__icon-circle{background-color:#4ab866}.dops-banner.dops-card.is-upgrade-business{border-right-color:#855da6}.dops-banner.dops-card.is-upgrade-business .dops-banner__icon{color:#855da6}.dops-banner.dops-card.is-upgrade-business .dops-banner__icon-circle{background-color:#855da6}.dops-banner.dops-card .dops-card__link-indicator{align-items:center;color:#0087be;display:flex}.dops-banner.dops-card:hover{transition:all .1s ease-in-out}.dops-banner.dops-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.dops-banner.dops-card:hover .dops-card__link-indicator{color:#005082}@media (min-width:481px){.dops-banner.dops-card{padding:12px 16px}.dops-banner.dops-card.is-dismissible{padding-left:16px}}.dops-banner__icons{display:flex}.dops-banner__icons .dops-banner__icon,.dops-banner__icons .dops-banner__icon-circle{border-radius:50%;flex-shrink:0;height:24px;margin-left:16px;margin-top:-2px;text-align:center;top:4px;width:24px}.dops-banner__icons .dops-banner__icon{align-self:center;color:#fff;display:block}.dops-banner__icons .dops-banner__icon-circle{color:#fff;display:none;padding:3px 3px 4px 4px}.dops-banner__icons .dops-banner__icon-circle .gridicon{margin-bottom:-7px}@media (min-width:481px){.dops-banner__icons{align-items:center}.dops-banner__icons .dops-banner__icon{display:none}.dops-banner__icons .dops-banner__icon-circle{display:block}}.dops-banner__icon-plan{display:flex;margin-left:16px}.dops-banner__icon-plan .dops-plan-icon{height:32px;width:32px}@media (min-width:481px){.dops-banner__icon-plan{align-items:center}}.dops-banner__content{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}@media (min-width:481px){.dops-banner__content{flex-wrap:nowrap}}.dops-banner__info{flex-grow:1;line-height:1.4;width:100%}.dops-banner__info .dops-banner__description,.dops-banner__info .dops-banner__list,.dops-banner__info .dops-banner__title{color:#414141}.dops-banner__info .dops-banner__title{font-size:14px;font-weight:500}.dops-banner__info .dops-banner__description{font-size:12px;margin-top:3px}.dops-banner__info .dops-banner__list{font-size:12px;list-style:none;margin:0}.dops-banner__info .dops-banner__list li{margin:6px 0}.dops-banner__info .dops-banner__list li .gridicon{color:#a2a2a2;display:none}@media (min-width:481px){.dops-banner__info{width:auto}.dops-banner__info .dops-banner__list li .gridicon{display:inline;margin-left:12px;vertical-align:bottom}}.dops-banner__action{align-self:center;font-size:12px;margin:8px 0 0;text-align:right;width:100%}.dops-banner__action .dops-banner__prices{display:flex;justify-content:flex-start}.dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:0}.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted,.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:8px}@media (min-width:481px){.dops-banner__action{margin:0 8px 0 4px;text-align:center;width:auto}.is-dismissible .dops-banner__action{margin-top:40px}.dops-banner__action .dops-banner__prices{justify-content:flex-end;text-align:left}}.module-overridden-banner.dops-banner.is-compact{margin-bottom:0}.module-overridden-banner.dops-banner .dops-banner__description a{text-decoration:underline}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{cursor:pointer;color:#c8c8c8}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:right}.dops-external-link .gridicons-external{color:currentColor;margin-right:.5rem;top:.125rem;position:relative}.jp-support-info{position:absolute;top:1.6875rem;left:1.5625rem;z-index:1}@media (max-width:480px){.jp-support-info{top:1.25rem;left:1rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{display:block;margin-top:.875rem;padding-top:.75rem;border-top:1px solid hsla(0,0%,63.5%,.5)}.jp-form-settings-group .jp-toggle-set{position:relative}.jp-form-settings-group .jp-toggle-set .jp-support-info{left:-1.25rem;top:.3125rem}@media (max-width:480px){.jp-form-settings-group .jp-toggle-set .jp-support-info{left:-2rem;top:.3125rem}}.dops-foldable-card.dops-card{position:relative;transition:margin .15s linear;padding:0}.dops-foldable-card.dops-card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-foldable-card.dops-card.is-expanded{margin-bottom:8px}.dops-foldable-card.dops-card .is-clickable{cursor:pointer}.dops-foldable-card__header{min-height:64px;width:100%;padding:16px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;position:relative}.dops-foldable-card__header.has-border .dops-foldable-card__summary,.dops-foldable-card__header.has-border .dops-foldable-card__summary_expanded{margin-left:48px}.dops-foldable-card__header.has-border .dops-foldable-card__expand{border-right:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card__header{padding:8px 16px;min-height:40px}.dops-foldable-card.is-expanded .dops-foldable-card__header{margin-bottom:0;height:inherit;min-height:64px}.dops-foldable-card.is-expanded.is-compact .dops-foldable-card__header{min-height:40px}.dops-foldable-card.is-disabled .dops-foldable-card__header{opacity:.2}.dops-foldable-card__action{position:absolute;top:0;left:0;height:100%;background:none;border:0}.dops-foldable-card.is-expanded .dops-foldable-card__action{height:100%}.dops-foldable-card.is-disabled .dops-foldable-card__action{cursor:default}.dops-accessible-focus .dops-foldable-card__action:focus{outline:thin dotted}button.dops-foldable-card__action{cursor:pointer;outline:0}.dops-foldable-card__main{max-width:calc(100% - 36px);display:block;align-items:center;width:100%;margin-left:5px}@media (max-width:480px){.dops-foldable-card__main{flex:1 1}}.dops-foldable-card__secondary{display:flex;align-items:center;flex:1 1;justify-content:flex-end}.dops-foldable-card__expand{width:48px}.dops-foldable-card__expand .gridicon{fill:#a2a2a2;display:flex;align-items:center;width:100%;vertical-align:middle;transition:transform .15s cubic-bezier(.175,.885,.32,1.275),color .2s ease-in}.dops-foldable-card.is-expanded .dops-foldable-card__expand .gridicon{transform:rotate(-180deg)}.dops-foldable-card__expand .gridicon:hover{fill:#a2a2a2}.dops-foldable-card__expand:focus .gridicon,.dops-foldable-card__expand:hover .gridicon{fill:#007cba}.dops-foldable-card__header-text{font-size:1.125rem;width:100%}.dops-foldable-card__subheader{margin-top:.125rem;margin-bottom:.125rem;font-size:.875rem;color:#6f6f6f}.dops-foldable-card__content{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__content{display:block;padding:16px;border-top:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card.is-expanded .dops-foldable-card__content{padding:8px}.dops-foldable-card.is-expanded .dops-foldable-card__content p:first-child{margin-top:0}.dops-foldable-card.is-expanded .dops-foldable-card__content p:last-child{margin-bottom:0}.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{margin-left:40px;color:#a2a2a2;font-size:12px;transition:opacity .2s linear;display:inline-block}.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{transition:none;flex:2;text-align:left}@media (max-width:480px){.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{display:none}}.dops-foldable-card__summary{opacity:1;display:inline-block}.dops-foldable-card.is-expanded .dops-foldable-card__summary,.dops-foldable-card__summary_expanded,.has-expanded-summary .dops-foldable-card.is-expanded .dops-foldable-card__summary{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__summary_expanded{display:inline-block}.form-input-validation{color:#4ab866;position:relative;padding:6px 34px 11px 24px;border-radius:1px;box-sizing:border-box;font-size:14px;animation:appear .3s ease-in-out}.form-input-validation.is-error{color:#d94f4f}.form-input-validation.is-warning{color:#f0b849}.form-input-validation .gridicon{float:right;margin-right:-34px}.dops-textarea{box-sizing:border-box;margin:0;padding:.4375rem .875rem;min-height:5.75rem;width:100%;color:#414141;font-size:1rem;line-height:1.5;border:1px solid #d5d5d5;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}.dops-textarea:-ms-input-placeholder{color:#a2a2a2}.dops-textarea::-ms-input-placeholder{color:#a2a2a2}.dops-textarea::placeholder{color:#a2a2a2}.dops-textarea:hover{border-color:#bbb}.dops-textarea:focus{border-color:#0087be;outline:none;box-shadow:0 0 0 2px #78dcfa}.dops-textarea:focus::-ms-clear{display:none}.dops-textarea:disabled{background:#f6f6f6;border-color:#eee;color:#bbb;-webkit-text-fill-color:#bbb}.dops-textarea:disabled:hover{cursor:default}.dops-textarea:disabled:-ms-input-placeholder{color:#bbb}.dops-textarea:disabled::-ms-input-placeholder{color:#bbb}.dops-textarea:disabled::placeholder{color:#bbb}.dops-clipboard-button-input{position:relative;display:block}.dops-clipboard-button-input .dops-clipboard-button{position:absolute;top:50%;left:4px;transform:translateY(-50%);overflow:visible}.dops-clipboard-button-input .dops-clipboard-button:not(:disabled):before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);top:0;bottom:0;left:0;right:auto;width:16px;height:auto;left:calc(100% + 1px)}.dops-clipboard-button-input .dops-clipboard-button:focus:before{left:calc(100% + 3px)}.dops-tooltip.dops-popover .dops-popover__arrow{border-width:6px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow{border-bottom-color:#555;top:4px;left:10px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-bottom-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-error .dops-popover__arrow{border-bottom-color:#d94f4f}.dops-tooltip.dops-popover.is-bottom-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-warning .dops-popover__arrow{border-bottom-color:#f0b849}.dops-tooltip.dops-popover.is-bottom-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-success .dops-popover__arrow{border-bottom-color:#4ab866}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{border-top-color:#555;bottom:4px;left:10px}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-top-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-error .dops-popover__arrow{border-top-color:#d94f4f}.dops-tooltip.dops-popover.is-top-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-warning .dops-popover__arrow{border-top-color:#f0b849}.dops-tooltip.dops-popover.is-top-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-success .dops-popover__arrow{border-top-color:#4ab866}.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{margin-right:-6px}.dops-tooltip.dops-popover.is-left,.dops-tooltip.dops-popover.is-right{padding-top:0}.dops-tooltip.dops-popover.is-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-top:-6px}.dops-tooltip.dops-popover.is-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-right .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-error .dops-popover__arrow{border-left-color:#d94f4f}.dops-tooltip.dops-popover.is-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-warning .dops-popover__arrow{border-left-color:#f0b849}.dops-tooltip.dops-popover.is-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-success .dops-popover__arrow{border-left-color:#4ab866}.dops-tooltip.dops-popover.is-left .dops-popover__arrow{margin-left:4px;border-right-color:#555}.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-right:4px;border-left-color:#555}.dops-tooltip.dops-popover .dops-popover__inner{border:0;box-shadow:none;border-radius:2px;color:#fff;background:#555;font-size:12px;padding:6px 10px;text-align:right}.dops-tooltip.dops-popover.is-error .dops-popover__inner{background:#d94f4f}.dops-tooltip.dops-popover.is-warning .dops-popover__inner{background:#f0b849}.dops-tooltip.dops-popover.is-success .dops-popover__inner{background:#4ab866}.dops-tooltip.dops-popover ul{list-style:none;margin:0;padding:0}.dops-tooltip.dops-popover ul li{font-size:11px;font-weight:100;border:0}.dops-tooltip__hr{margin:8px 0;background:#a2a2a2}.dops-chart{position:relative;box-sizing:border-box;background-color:#fff;padding:8px 20px 8px 0}.dops-chart .dops-chart__y-axis-markers{position:absolute;top:8px;right:0;left:0;height:200px}.dops-chart .dops-chart__y-axis-marker{position:absolute;top:0;width:100%;height:1px;border-top:1px solid #eee}.dops-chart__bar-marker{z-index:1;position:absolute;top:0;width:100%;height:1px;border-top:1px solid hsla(0,0%,93.3%,.1)}.dops-chart .dops-chart__y-axis-marker.is-fifty,.dops-chart__bar-marker.is-fifty,.dops-chart__y-axis-label.is-fifty{top:50%}.dops-chart .dops-chart__y-axis-marker.is-zero,.dops-chart__bar-marker.is-zero,.dops-chart__y-axis-label.is-zero{top:100%}.dops-chart__y-axis{position:relative;float:left;height:200px;padding:0 10px 0 20px;font-size:11px;color:#888;margin-bottom:30px}.dops-chart__y-axis-label{position:absolute;top:0;left:20px;text-align:left}.dops-chart__y-axis-width-fix{color:hsla(0,0%,100%,0)}.dops-chart__x-axis{position:relative;font-size:0;padding:5px 0;min-height:18px;color:#555}.dops-chart__x-axis-label{position:absolute;display:inline-block;vertical-align:top;font-size:11px;text-align:center}.dops-chart__x-axis-label:before{content:"";display:block;position:absolute;top:-4px;right:50%;margin-right:-.5px;width:1px;height:5px;background:#f6f6f6;background-image:linear-gradient(180deg,#f6f6f6 0,#d5d5d5)}.dops-chart__bars{font-size:0;overflow:hidden;display:-ms-flex;display:flex}.dops-chart__bar,.dops-chart__bars{position:relative;height:200px;text-align:center}.dops-chart__bar{display:inline-block;-ms-flex-grow:1;flex-grow:1;-ms-flex-shrink:1;flex-shrink:1}.dops-chart__bar.is-weekend{background-color:hsla(0,0%,93.3%,.5)}.dops-chart__bar:hover{cursor:pointer;background-color:hsla(0,0%,93.3%,.3)}.dops-chart__bar.is-selected{cursor:default;background-color:rgba(240,130,30,.1)}.dops-chart__bar-section{display:inline-block;background-color:#0087be;position:absolute;top:0;left:16%;bottom:0;right:16%;z-index:2}.dops-chart__bar:hover .dops-chart__bar-section.is-bar{background-color:#007cba}.dops-chart__bar.is-selected .dops-chart__bar-section.is-bar{background-color:#f0821e}.dops-chart__bar-section.is-spacer{z-index:0;background-color:hsla(0,0%,100%,0)}.dops-chart__bar-section.is-ghost:after{content:"";display:block;position:absolute;top:160px;bottom:0;right:0;z-index:1;width:100%;height:40px;background-image:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,93.3%,.5))}.dops-chart__bar:hover .dops-chart__bar-section.is-ghost:after{display:none}.dops-chart__bar-section-inner{background:#004069;position:absolute;left:23.33%;bottom:0;right:23.33%}.dops-chart__bar.is-selected .dops-chart__bar-section-inner{background-color:#d54e21}.dops-chart__legend{margin-bottom:-8px}.dops-chart__legend:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-chart__legend .dops-chart__legend-options{float:left;color:#747474;list-style-type:none;margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.1em}@media (max-width:480px){.dops-chart__legend .dops-chart__legend-options{width:100%}}.dops-chart__legend-option{display:inline;text-align:right}@media (max-width:480px){.dops-chart__legend-option{width:50%;display:inline-block}}.dops-chart__legend-label{display:inline-block;padding:12px 20px 10px 19px}.dops-chart__legend-label.is-selectable{cursor:pointer}.dops-chart__legend-label.is-selectable:focus,.dops-chart__legend-label.is-selectable:hover{color:tint(#007cba,20%)}@media (max-width:480px){.dops-chart__legend-label{display:block}}.dops-chart__legend-option .dops-chart__legend-color{width:10px;height:10px;background:#0087be;display:inline-block;border-radius:1px;vertical-align:top;margin:3px 8px 3px 5px}@media (max-width:480px){.dops-chart__legend-option:first-child .dops-chart__legend-color{margin-right:2px}}.dops-chart__legend-color.is-dark-blue{background:#004069}.dops-chart__legend-option .dops-chart__legend-checkbox{margin:0;float:none;vertical-align:top}.dops-chart__empty{position:absolute;top:0;left:0;bottom:0;right:0;text-align:center;font-size:14px;line-height:24px;clear:both;z-index:1}.dops-chart__empty_notice{position:relative;top:97px;padding:11px 24px;margin-bottom:24px;border-radius:1px;background:#fff;box-sizing:border-box;font-size:14px;line-height:1.4285;animation:appear .3s ease-in-out;box-shadow:0 0 0 1px hsla(0,0%,83.5%,.5),0 1px 2px #eee}@media (min-width:661px){.dops-chart__empty_notice{padding:13px 48px;font-size:inherit}.dops-chart__empty_notice:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;vertical-align:middle;font:normal 16px/1 Noticons;content:"\f456";position:absolute;top:23px;right:20px;margin:-12px -8px 0 0;font-size:24px;line-height:1}}.dops-chart__tooltip .dops-popover__inner{width:230px;text-align:right}.dops-chart__tooltip .dops-popover__inner ul{list-style:none;margin:0;padding:0}.dops-chart__tooltip .dops-popover__inner ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.dops-chart__tooltip .dops-popover__inner ul li{font-size:11px;text-transform:uppercase;font-weight:100;height:24px;letter-spacing:.1em;border:0;margin-bottom:0}.dops-chart__tooltip .dops-popover__inner ul li .dops-wrapper{display:block;line-height:inherit;line-height:24px;clear:both}.dops-chart__tooltip .dops-popover__inner ul li .value{text-align:left;float:left;min-width:22px;color:#d5d5d5}.dops-chart__tooltip .dops-popover__inner ul li .label{display:block;overflow:hidden;word-break:break-all;vertical-align:baseline}.dops-chart__tooltip .dops-popover__inner ul li .gridicon{vertical-align:middle;margin-left:6px;margin-top:-3px}.dops-chart__tooltip.is-streak{margin-top:-5px;height:35px}.dops-chart__tooltip.is-streak .dops-popover__arrow:before{right:85px;top:30px}.dops-chart__tooltip.is-streak .dops-popover__inner{width:160px;position:relative;top:-10px}.dops-chart__tooltip.is-streak .dops-popover__inner li{height:14px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label{width:100%;float:right;text-align:center}.rtl .dops-chart__tooltip.is-streak .dops-popover__inner li .label{font-size:11px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label .post-count{font-weight:700}.dops-chart__tooltip.is-streak .dops-popover__inner li .value{float:none}.dops-chart__tooltip .dops-module-content-list-item.is-date-label{font-size:11px;margin-bottom:2px;text-transform:uppercase;font-weight:700;border-bottom:1px solid #5d5d5d;padding-bottom:2px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item{height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .label{text-transform:none;color:#d5d5d5;overflow:hidden;letter-spacing:0;height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value{width:0;min-width:0}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value:before{content:"";position:relative;background-image:linear-gradient(270deg,rgba(61,89,109,0) 0,rgba(61,89,109,.5),#3d596d);right:-30px;width:30px;height:24px;display:block}.jetpack-termination-dialog .dops-card{margin:0}.jetpack-termination-dialog__spinner{display:flex;justify-content:center;padding:25px}.jetpack-termination-dialog__header{display:flex;flex-direction:row;align-content:center;justify-content:space-between}.jetpack-termination-dialog__header h2{margin:0;font-size:28px;line-height:24px}.jetpack-termination-dialog__info{font-size:16px;line-height:24px;margin-top:0}.jetpack-termination-dialog__generic-info ul{list-style:inside;font-size:16px;line-height:24px}.jetpack-termination-dialog__features-list{position:relative;right:-1em;display:flex;flex-wrap:wrap;width:calc(100% + 2em)}.jetpack-termination-dialog__features-list .jetpack-termination-dialog__feature{width:calc(100% - 2em)}@media (min-width:661px){.jetpack-termination-dialog__features-list .jetpack-termination-dialog__feature{width:calc(50% - 2em)}}.jetpack-termination-dialog__features-list-single-column{position:relative;right:-1em;display:flex;flex-wrap:wrap;width:calc(100% + 2em)}.jetpack-termination-dialog__features-list-single-column .jetpack-termination-dialog__feature{width:calc(100% - 2em)}.jetpack-termination-dialog__feature{background:#fff;border:1px solid hsla(0,0%,83.5%,.5);box-sizing:border-box;box-shadow:0 1px 2px #f6f6f6;margin:1em}.jetpack-termination-dialog__feature-header{text-transform:uppercase;font-size:12px;line-height:12px;background:#f6f6f6;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:0 13px}.jetpack-termination-dialog__feature-header .gridicon{color:#00be28}.jetpack-termination-dialog__feature-body{padding:0 13px}.jetpack-termination-dialog__feature-body .jetpack-termination-dialog__feature-body-amount{font-weight:700;font-size:24px;line-height:26px;margin-top:12px;margin-bottom:12px}.jetpack-termination-dialog__get-help{font-size:16px;font-style:normal;font-weight:400;line-height:24px;margin-top:29px}@media (min-width:481px){.jetpack-termination-dialog__get-help{margin-top:37px}}.jetpack-termination-dialog__button-row{display:flex;flex-direction:column;justify-content:space-between}.jetpack-termination-dialog__button-row p{text-align:center;margin-top:0}@media (min-width:661px){.jetpack-termination-dialog__button-row{flex-direction:row}.jetpack-termination-dialog__button-row p{text-align:auto;margin-top:auto}}.jetpack-termination-dialog__button-row-buttons{display:flex;flex-direction:column;justify-content:space-between}.jetpack-termination-dialog__button-row-buttons .dops-button{margin-bottom:18px;margin-right:0;width:100%}@media (min-width:661px){.jetpack-termination-dialog__button-row-buttons{flex-direction:row}.jetpack-termination-dialog__button-row-buttons .dops-button{margin-bottom:0;margin-right:18px;width:auto}}.jetpack-termination-dialog__close-icon{color:#a2a2a2;cursor:pointer}a.jetpack-termination-dialog__link{font-style:normal!important;text-decoration:underline!important}#jp-plugin-container{min-height:100vh}body.dops-modal-showing{overflow:hidden}.dops-modal-wrapper{position:fixed;top:0;left:0;bottom:0;right:0;z-index:1050;display:block;overflow-x:hidden;overflow-y:auto;text-align:center;-webkit-overflow-scrolling:touch;outline:0;transition:opacity .15s linear;background-color:rgba(0,0,0,.5);cursor:pointer}.dops-modal-wrapper:before{content:"";display:inline-block;height:100%;vertical-align:middle}.dops-modal-wrapper .dops-modal{position:relative;display:inline-block;margin:0;width:100%;max-width:550px;vertical-align:middle;text-align:right;background-color:#fff;transition:all .5s;z-index:100;clear:both;cursor:default}@media (min-width:481px){.dops-modal-wrapper .dops-modal{margin:0 auto;height:auto;border-radius:5px;box-shadow:0 4px 20px rgba(0,0,0,.2)}}@media (min-width:961px){.my-plan-card{display:flex;flex-flow:row nowrap;justify-content:space-between}}.my-plan-card__primary{display:flex;flex-flow:row nowrap;flex-grow:1}.my-plan-card__header{flex:1}.my-plan-card__title{font-size:20px;font-weight:600;line-height:29px;margin:6px 0;color:#414141}.my-plan-card__tag-line{font-size:14px;font-weight:400;line-height:17px;margin:0 0 24px}@media (min-width:961px){.my-plan-card__tag-line{margin-bottom:8px}}.my-plan-card__icon{flex:0 0 auto;width:64px;height:64px;margin:8px 0 16px 20px}@media (max-width:660px){.my-plan-card__icon{display:none}}.my-plan-card__icon img{width:100%;height:100%}.my-plan-card__secondary{position:relative;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-between;padding:8px 0 0}@media (min-width:961px){.my-plan-card__secondary{flex-flow:column nowrap;justify-content:center;align-items:flex-end;padding:0 24px 0 0}}.my-plan-card__secondary:before{content:"";position:absolute;top:0;right:-16px;left:-16px;border-top:1px solid #ccd0d4}@media (min-width:481px){.my-plan-card__secondary:before{right:-24px;left:-24px}}@media (min-width:961px){.my-plan-card__secondary:before{content:none}}.has-action-only .my-plan-card__secondary{padding-top:0;justify-content:center}.has-action-only .my-plan-card__secondary:before{content:none}.my-plan-card__details{padding-top:8px;white-space:nowrap;color:#888}@media (min-width:961px){.my-plan-card__details{padding-top:0}}.my-plan-card__details.is-error{color:#d94f4f}.my-plan-card__action{padding-top:8px;white-space:nowrap}.has-action-only .my-plan-card__action{padding-top:0}.plan-price{margin:0;font-size:14px;font-weight:400;color:#414141}.plan-price.is-inline{display:inline-block}.plan-price.is-original{color:#747474}.plan-price.is-discounted{color:#414141}.plan-price.is-discounted,.plan-price.is-original{position:relative;align-items:stretch;margin-left:.25em}.plan-price.is-original+.plan-price.is-discounted{margin-right:.25em}.plan-price.is-original:before{position:absolute;content:"";right:0;top:50%;left:0;border-top:2px solid #007cba;transform:rotate(16deg);opacity:.9}.plan-price__currency-symbol,.plan-price__fraction{font-size:14px;vertical-align:baseline}.plan-price.is-discounted .plan-price__currency-symbol{color:#414141}.plan-price__currency-symbol{color:#747474}.plan-price__integer{margin:0 1px}.product-card__header{margin:-16px -16px 16px;border-bottom:2px solid #007cba}@media (min-width:481px){.product-card__header{margin:-24px -24px 24px}}@media (min-width:661px){.product-card__header{display:flex;flex-flow:row wrap;align-items:baseline}}.product-card__header-primary,.product-card__header-secondary{padding-right:40px;padding-left:40px}@media (min-width:661px){.product-card__header-primary,.product-card__header-secondary{padding-right:16px;padding-left:16px}}.product-card__header-primary{display:flex;padding-top:16px;padding-bottom:2px}@media (min-width:481px){.product-card__header-primary{padding-top:24px}}@media (min-width:661px){.product-card__header-primary{flex-grow:1;padding-top:16px}}.product-card__header-primary .gridicon{align-self:center;margin:0 -26px 0 8px}@media (min-width:661px){.product-card__header-primary .gridicon{width:16px;height:16px;margin-right:0}}.product-card__header-secondary{position:relative;padding-bottom:14px}@media (min-width:481px){.product-card__header-secondary{padding-bottom:24px}}@media (min-width:661px){.product-card__header-secondary{padding-bottom:16px}}@media (min-width:661px){.is-purchased .product-card__header-secondary{padding-right:40px}}.product-card__title{font-size:20px;line-height:24px;margin:0;font-weight:400}@media (min-width:961px){.product-card__title{font-size:22px}}.product-card__title em,.product-card__title span,.product-card__title strong{font-weight:600;font-style:italic}.product-card:not(.is-purchased) .product-card__title{color:#23282d}@media (min-width:661px){.product-card:not(.is-purchased) .product-card__title{font-weight:600}}.product-card__subtitle{font-size:12px;line-height:20px;font-style:italic;color:#646970}.product-card__price-group{display:flex;flex-flow:row wrap;align-items:baseline}.product-card{max-width:512px}.product-card .plan-price{margin-left:.333em}@media (min-width:661px){.product-card .plan-price,.product-card .plan-price *{font-size:14px;vertical-align:baseline}}.product-card__billing-timeframe{font-size:13px;font-weight:400;line-height:13px;color:#646970}@media (max-width:660px){.product-card__billing-timeframe{font-style:italic}}@media (min-width:961px){.product-card__billing-timeframe{font-size:12px}}@media (min-width:661px){.is-discounted .product-card__billing-timeframe{color:#008a20}}@media (min-width:661px){.product-card__header .plan-price,.product-card__header .plan-price *{font-weight:600}}.product-card__header .product-card__billing-timeframe{width:100%}@media (min-width:661px){.product-card__header .product-card__billing-timeframe{width:auto;font-size:12px;font-weight:600}}.product-card__option .plan-price,.product-card__option .plan-price *{font-size:16px;font-weight:400;vertical-align:baseline}@media (min-width:961px){.product-card__option .plan-price,.product-card__option .plan-price *{font-size:14px}}.product-card__option .is-discounted .product-card__billing-timeframe{color:#008a20}@media (min-width:961px){.product-card__option .is-discounted .product-card__billing-timeframe,.product-card__option .plan-price.is-discounted,.product-card__option .plan-price.is-discounted *{color:#646970}}.product-card__description{font-size:14px;line-height:20px;color:#646970}.product-card__description p{text-align:center}.product-card__description p:last-child{margin:0}.product-card__options{padding:10px 0 0}@media (min-width:961px){.product-card__options{display:flex;flex-flow:row wrap;justify-content:space-around;justify-content:space-evenly}}.product-card__options-label{margin:8px 0;padding:6px 0;font-size:14px;color:#646970;border-bottom:1px solid #dcdcde}@media (min-width:961px){.product-card__options-label{flex:0 0 100%}}.product-card__option,.product-card__option-description{display:flex;align-items:center}.product-card__option.form-label{margin:16px 0 0;padding:8px 0}@media (min-width:961px){.product-card__option.form-label{flex:0 0 40%;align-items:flex-start}}.product-card__option-description{margin-right:8px;flex-grow:1;flex-wrap:wrap}.product-card__option-name{flex-grow:1;font-size:16px;font-weight:700}@media (min-width:961px){.product-card__option-name{margin-bottom:2px;flex:0 0 100%;font-size:14px;line-height:20px}}.product-card__action{margin:16px auto;text-align:center}.product-card__action-intro{margin-bottom:12px;font-size:14px;font-weight:600;color:#1d2327}.product-card__action-button{width:100%;max-width:320px}.product-card.is-placeholder .product-card__price-group:before{animation:loading-fade 1.6s ease-in-out infinite;background-color:#eee;color:transparent;content:"\00a0";display:inline-block;width:150px;height:32px;margin:0 0 4px}.product-card.is-placeholder .product-card__price-group:before:after{content:"\00a0"}@media (min-width:661px){.product-card.is-placeholder .product-card__price-group:before{height:18px}}@media (min-width:661px){.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe{display:none}}.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe:before{animation:loading-fade 1.6s ease-in-out infinite;background-color:#eee;color:transparent;content:"\00a0";display:inline-block;width:100px;height:11px}.product-card.is-placeholder .product-card__price-group .product-card__billing-timeframe:before:after{content:"\00a0"}.product-card.is-placeholder .product-card__option .product-card__price-group:before{width:125px;height:16px;margin:0}@media (min-width:661px){.product-card.is-placeholder .product-card__option .product-card__price-group:before{margin:5px 0 0}}.product-card.is-placeholder .product-card__option .product-card__billing-timeframe{display:none}.plan-radio-button{display:flex}.plan-radio-button+.plan-radio-button{margin-top:16px}@media (min-width:661px){.plan-radio-button+.plan-radio-button{margin-top:0}}.plan-radio-button__label{display:flex;flex-flow:row wrap;align-items:center;width:100%;margin-right:8px}@media (min-width:661px){.plan-radio-button__label{flex-flow:column nowrap;align-items:flex-start}}input[type=radio].plan-radio-button__input{flex:0 0 auto;margin-top:2px}.plan-radio-button__title{font-weight:600;flex:1}.single-product-backup__header-title{margin:5px 0 5px 20px;text-align:center;font-size:17px;line-height:24px;font-weight:700}.single-product-backup__price-group{display:flex;flex-flow:row wrap;align-items:baseline}.single-product-backup__options-header{padding-bottom:8px;font-size:14px;font-weight:400;color:#747474;text-align:center;margin-top:30px}.plans-section__header{margin:32px auto 8px;text-align:center;font-weight:400;font-size:22px}.plans-section__subheader{margin:8px auto 32px;color:#747474;text-align:center;font-weight:400;font-size:14px}.plans-section__single-product{display:flex;justify-content:center;margin:24px auto 40px}.plans-section__single-product-skeleton{width:100%;max-width:518px;height:328px}.single-product-backup__radio-buttons-container{display:flex;flex-flow:column nowrap;margin-bottom:21px}@media (min-width:661px){.single-product-backup__radio-buttons-container{flex-flow:row wrap;justify-content:space-around;justify-content:space-evenly;position:relative}.single-product-backup__radio-buttons-container:before{display:block;border-right:1px solid #ccd0d4;position:absolute;content:"";height:100%;width:0;order:2}}.single-product-backup__upgrade-button-container{text-align:center;margin-top:24px;margin-bottom:8px}.single-product-backup__upgrade-button-container .plan-price,.single-product-backup__upgrade-button-container .plan-price__currency-symbol{color:#fff}.single-product-backup__accented-card{max-width:518px;width:100%;font-size:14px}.single-product-backup__accented-card-header{padding:8px 16px;margin:-16px -16px 16px;border-bottom:2px solid #4ab866}@media (min-width:481px){.single-product-backup__accented-card-header{padding:8px 24px;margin:-24px -24px 24px}}.single-product-backup__accented-card-body p{margin-top:14px;font-size:14px;color:#747474;text-align:center}.single-product-backup__promo{background-color:#f6f6f6;border-radius:16px;position:relative;padding:7px 0;margin-top:24px}.single-product-backup__promo-star{position:absolute;right:-1rem;top:-1.5rem;transform:rotate(10deg);background-image:url(images/green-star-b0ac6af62d4c43bd4d04ca6abb9c2e83.svg);padding:35px 20px;color:#fff;font-weight:700;text-align:center;line-height:17px;width:105px;height:105px;box-sizing:border-box}.single-product-backup__promo-header{font-weight:400;font-size:12px;text-transform:uppercase;color:#747474;margin:0 100px 0 0}.single-product-backup__promo-header strong{font-size:14px;color:#23282d;display:block;text-transform:none}.single-product-backup__savings{font-style:italic}.single-product-backup__annual-savings,.single-product-backup__annual-savings .plan-price__integer{color:#747474}.notices-list{overflow:hidden}.notices-list.is-pinned{width:calc(100% - 336px);z-index:z-index("root",".notices-list.is-pinned");position:fixed;top:79px}.notices-list.is-pinned .notice{z-index:z-index("root",".notices-list.is-pinned .notice")}.notices-list__whitespace{height:71px;width:100%;display:block}@keyframes appear{0%{opacity:0}to{opacity:1}}.global-notices{text-align:left;pointer-events:none;z-index:179;position:fixed;top:auto;left:0;bottom:0;right:0}@media (min-width:661px){.global-notices{top:63px;left:16px;bottom:auto;right:auto;max-width:calc(100% - 32px)}}@media (min-width:961px){.global-notices{top:71px;left:24px;max-width:calc(100% - 48px)}}@media (min-width:1041px){.global-notices{left:32px;max-width:calc(100% - 64px)}}.global-notices .dops-notice{flex-wrap:nowrap;margin-bottom:0;text-align:right;pointer-events:auto;border-radius:0;box-shadow:0 2px 5px rgba(0,0,0,.2),0 0 56px rgba(0,0,0,.15)}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0}@media (min-width:661px){.global-notices .dops-notice{display:flex;overflow:hidden;margin-bottom:24px;border-radius:3px}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0 3px 3px 0}}@media (min-width:661px){.global-notices .dops-notice a.dops-notice__action{font-size:14px;padding:13px 16px}}.global-notices .dops-notice__dismiss{flex-shrink:0}@media (min-width:661px){.global-notices .dops-notice__dismiss{padding:13px 16px 0}} \ No newline at end of file
+.jetpack-partner-coupon-redeem .components-button{border-radius:4px;font-size:14px;font-weight:600;height:40px;justify-content:center}.jetpack-partner-coupon-redeem--connected .jp-connection__connect-screen__tos{display:none!important}.jp-connection__connect-screen__loading{display:none}.jp-connection__connect-screen__tos{margin-top:28px;max-width:360px}.jp-connection__connect-screen .jp-action-button{margin-top:40px}.jp-connection__connect-screen .jp-action-button button{max-width:100%}.jp-connection__connect-screen .jp-action-button button:disabled{color:hsla(0,0%,100%,.4)}@media(max-width:782px){.jp-connection__connect-screen .jp-action-button button{max-width:none;width:100%}}.jp-connection__connect-screen-layout{background:#fff;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08)}.jp-connection__connect-screen-layout__loading{display:none}.jp-connection__connect-screen-layout__left,.jp-connection__connect-screen-layout__right{box-sizing:border-box}.jp-connection__connect-screen-layout__left{padding:25px}@media(min-width:600px){.jp-connection__connect-screen-layout__left{padding:64px 96px}}.jp-connection__connect-screen-layout__left .jetpack-logo{margin-bottom:24px}.jp-connection__connect-screen-layout__left h2{color:#000;font-size:36px;font-style:normal;font-weight:700;line-height:40px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left h3{color:#000;font-size:24px;font-style:normal;font-weight:500;line-height:32px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left li,.jp-connection__connect-screen-layout__left p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.jp-connection__connect-screen-layout__left p{color:#101517;margin:16px 0}.jp-connection__connect-screen-layout__left a{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__connect-screen-layout__left a:hover{color:#000;text-decoration-thickness:2px}.jp-connection__connect-screen-layout__left a:focus{box-shadow:none!important;color:#000}.jp-connection__connect-screen-layout__left ul{list-style-type:none;padding:0}.jp-connection__connect-screen-layout__left ul li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:#000;margin-bottom:9px;padding-right:30px}.jp-connection__connect-screen-layout__right{padding:64px 0}.jp-connection__connect-screen-layout__right img{max-width:100%}.jp-connection__connect-screen-layout__two-columns{display:flex;flex-wrap:wrap}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:100%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:52%}}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{background:#f9f9f6;display:none;flex-basis:47%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{display:block}}.jp-action-button--button{background:#000}.jp-action-button--button,.jp-action-button--button.components-button{border-radius:4px;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-style:normal;font-weight:600;height:40px;line-height:18px;min-width:264px;text-align:center}.jp-action-button__error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 100% 0;color:var(--jp-red)!important;line-height:25px!important;padding-right:25px}@-webkit-keyframes rotate-spinner{to{transform:rotate(-1turn)}}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{-webkit-animation:3s linear infinite;animation:3s linear infinite;-webkit-animation-name:rotate-spinner;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%}.dops-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:3px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:.875rem;margin:0;outline:0;overflow:hidden;padding:7px 14px 9px;text-decoration:none;text-overflow:ellipsis;vertical-align:top}.dops-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.dops-button:disabled,.dops-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.dops-button.is-compact{line-height:2;padding:0 10px}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{margin-top:-8px;top:4px}.dops-button.is-compact .gridicons-plus-small{margin-right:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-right:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-right:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{height:18px;margin-top:-2px;position:relative;top:4px;width:18px}.dops-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:none!important}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{border-color:#eee;color:#f4cdcd}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-left:0;padding-right:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{height:24px;top:6px;width:24px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{background:#fff;color:#eee;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{height:18px;top:5px;width:18px}.dops-button-group .dops-button{border-radius:0;border-right-width:0}.dops-button-group .dops-button:focus{position:relative;z-index:z-index("button-group-parent",".button-group .button:focus")}.dops-button-group .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button-group .dops-button.is-scary:focus{box-shadow:inset -1px 0 0 #d94f4f,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-primary.is-scary:focus{box-shadow:inset -1px 0 0 #761919,0 0 0 2px #eba3a3}.dops-button-group .dops-button.is-scary:first-child:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button-group .dops-button:first-child{border-bottom-right-radius:4px;border-right-width:1px;border-top-right-radius:4px}.dops-button-group .dops-button:last-child{border-bottom-left-radius:4px;border-top-left-radius:4px}.dops-section-header .dops-button-group .dops-button{margin-left:0}.dops-count{border:1px solid #a2a2a2;border-radius:.75rem;color:#a2a2a2;display:inline-block;font-size:.6875rem;font-weight:600;line-height:.875rem;padding:.0625rem .375rem;text-align:center}.dops-select-dropdown{height:43px}.dops-select-dropdown.is-compact{height:28px}.dops-select-dropdown.is-disabled .dops-select-dropdown__header{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-select-dropdown__container{display:inline-block;max-width:100%;overflow:hidden;position:relative;width:auto}.dops-select-dropdown.is-open .dops-select-dropdown__container{z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container,.dops-accessible-focus .dops-select-dropdown__container:focus{box-shadow:0 0 0 2px #78dcfa;z-index:170}.dops-accessible-focus .dops-select-dropdown.is-open .dops-select-dropdown__container .select-dropdown__header,.dops-accessible-focus .dops-select-dropdown__container:focus .select-dropdown__header{border-color:#0087be}.dops-accessible-focus .dops-select-dropdown__container:focus{border-color:#00aadc;border-radius:4px;box-shadow:0 0 0 2px #78dcfa;outline:0}.dops-select-dropdown__header{background-color:#fff;border:solid #d5d5d5;border-radius:4px;border-width:1px 1px 2px;box-sizing:content-box;color:#414141;cursor:pointer;font-size:14px;font-weight:600;height:18px;line-height:18px;padding:11px 16px 11px 44px;transition:background-color .2s ease}.dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:hsla(0,0%,64%,.5);content:"";display:inline-block;display:block;font:normal 16px/1 Dashicons;left:13px;line-height:18px;position:absolute;top:12px;vertical-align:middle}.is-compact .dops-select-dropdown__header:after{left:4px;top:4px}.is-compact .dops-select-dropdown__header{color:#888;font-size:11px;line-height:1;padding:7px;text-transform:uppercase}.is-compact .dops-select-dropdown__header .dops-count{border-width:0;line-height:1;margin-right:0}.dops-select-dropdown.is-open .dops-select-dropdown__header{background-color:#f6f6f6;border-radius:4px 4px 0 0;box-shadow:none}.dops-select-dropdown.is-open .dops-select-dropdown__header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;font:normal 16px/1 Dashicons;vertical-align:middle}.dops-select-dropdown__header .dops-count{margin-right:8px}.dops-select-dropdown__header-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-select-dropdown__options{background-color:#fff;border:1px solid #d5d5d5;border-radius:0 0 4px 4px;box-sizing:border-box;height:0;list-style:none;margin:-2px 0 0;padding:0;visibility:hidden}.dops-accessible-focus .dops-select-dropdown__options{border:1px solid #0087be;border-top-color:#d5d5d5}.dops-select-dropdown.is-open .dops-select-dropdown__options{height:auto;visibility:visible}.dops-select-dropdown__option:last-child .dops-select-dropdown__item{border-radius:0 0 4px 4px}.dops-select-dropdown__item,.dops-select-dropdown__item-text{padding:11px 16px 11px 44px}.dops-select-dropdown__item{color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;line-height:18px;overflow:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap}.dops-select-dropdown__item:before{content:attr(data-bold-text);font-weight:700;opacity:0}.dops-select-dropdown__item:visited{color:#414141}.dops-select-dropdown__item.is-selected{background-color:#3582c4;color:#fff}.dops-select-dropdown__item.is-disabled{background-color:#fff;color:#a2a2a2;cursor:default;opacity:.5}.notouch .dops-select-dropdown__item:hover{color:#3582c4}.notouch .dops-select-dropdown__item.is-selected:hover{color:#fff}.dops-select-dropdown__item-text{box-sizing:border-box;color:inherit;display:flex;flex-flow:row wrap;justify-content:space-between;padding-left:16px;position:absolute;right:0;text-overflow:ellipsis;top:0;white-space:nowrap;width:100%}.dops-select-dropdown__item-text .dops-count{border-color:inherit;color:inherit}.dops-select-dropdown__separator{border-top:1px solid #d5d5d5;display:block;margin:8px 0}.dops-select-dropdown__label{color:#bbb;display:block;line-height:20px;margin-top:5px}.dops-select-dropdown__label label{font-size:12px;padding:0 16px;text-transform:uppercase}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(-1px,1px)}.gridicon.needs-offset-x g{transform:translate(-1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-search{align-items:center;display:flex;flex:1 1 auto;height:51px;margin-bottom:24px;position:relative;transition:all .15s ease-in-out;width:60px;z-index:22}.dops-search .dops-search__icon-navigation{align-items:center;background-color:#fff;border-radius:inherit;display:flex;flex:0 0 auto;height:100%}.dops-search .dops-search__close-icon,.dops-search .dops-search__open-icon{color:#0087be;cursor:pointer;flex:0 0 auto;width:50px;z-index:20}.accessible-focus .dops-search .dops-search__close-icon:focus,.accessible-focus .dops-search .dops-search__open-icon:focus{outline:1px dotted #0087be}.dops-search .dops-search__open-icon:hover{color:#555}.dops-search .dops-search__close-icon{color:#555;opacity:0;transition:opacity .2s ease-in}.accessible-focus .dops-search.has-focus{box-shadow:0 0 0 1px #0087be,0 0 0 4px #78dcfa}.dops-search.is-expanded-to-container{display:flex;height:100%;left:0;margin-bottom:0;overflow:hidden;position:absolute;top:0;width:50px}.dops-search.is-expanded-to-container .dops-search__input-fade{display:flex;flex:1 1 auto;position:relative}.dops-search.is-expanded-to-container .dops-search__input[type=search]{box-shadow:none;display:flex;flex:1 1 auto;margin:0}.dops-search__input[type=search]{appearance:none;-webkit-appearance:none;background:#fff;border:none;border-radius:inherit;box-sizing:border-box;display:none;flex:1 1 auto;height:100%;padding:0;top:0;z-index:10}.dops-search__input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}.dops-search__input[type=search]:focus{border:none;box-shadow:none}.dops-search.is-open{width:100%}.dops-search.is-open .dops-search__open-icon{color:#555}.dops-search.is-open .dops-search__close-icon{display:inline-block}.dops-search.is-open .dops-search__close-icon,.dops-search.is-open .dops-search__input{opacity:1}.dops-search.is-open .dops-search__input{display:block}.dops-search.is-open .dops-search__input-fade{border-radius:inherit;flex:1 1 auto;font-size:16px;height:100%;position:relative}.dops-search.is-open .dops-search__input-fade.ltr:before,.dops-search.is-open .dops-search__input-fade:before{-webkit-touch-callout:none;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);border-radius:inherit;bottom:0;content:"";display:block;height:auto;left:0;pointer-events:none;position:absolute;right:auto;top:0;-webkit-user-select:none;user-select:none;width:32px;z-index:12}.dops-search__input-fade .dops-search__text-overlay{align-items:center;color:transparent;display:flex;flex:1 1 auto;font:inherit;height:100%;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;white-space:nowrap;width:100%;z-index:11}.dops-search.is-searching .dops-search__open-icon{display:none}.animating.dops-search-opening .dops-search input{opacity:1}.dops-section-nav{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;margin:0 0 17px;padding:0;position:relative;width:100%}.dops-section-nav.is-empty .dops-section-nav__panel{visibility:hidden}@media(max-width:480px){.dops-section-nav.is-open{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}}@media(min-width:481px){.dops-section-nav.has-pinned-items{padding-left:60px}}@media(min-width:481px)and (max-width:660px){.dops-section-nav.has-pinned-items{padding-left:50px}}@media(max-width:660px){.dops-section-nav{margin-bottom:9px}}.dops-section-nav__mobile-header{color:#414141;cursor:pointer;display:flex;font-size:14px;font-weight:600;line-height:16px;padding:15px}.dops-section-nav__mobile-header:after{color:hsla(0,0%,64%,.5);content:"";line-height:16px}.dops-section-nav.is-open .dops-section-nav__mobile-header:after,.dops-section-nav__mobile-header:after{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font:normal 16px/1 Dashicons;vertical-align:middle}.dops-section-nav.is-open .dops-section-nav__mobile-header:after{content:""}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header{padding-left:50px}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header:after{margin-right:8px}@media(min-width:481px){.dops-section-nav__mobile-header{display:none}}.dops-section-nav__mobile-header-text{flex:1 0 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:0}.dops-section-nav__mobile-header-text small{color:#a2a2a2;font-size:11px;font-weight:600;margin-right:5px;text-transform:uppercase}.dops-section-nav.has-pinned-items .dops-section-nav__mobile-header-text{flex:0 1 auto;width:auto}.dops-section-nav__panel{box-sizing:border-box;width:100%}@media(max-width:480px){.dops-section-nav.is-open .dops-section-nav__panel{background:linear-gradient(180deg,#f6f6f6 0,#fff 4px);border-top:1px solid #d5d5d5;padding-bottom:15px}}@media(min-width:481px){.dops-section-nav__panel{align-items:center;display:flex}.dops-section-nav__panel:first-child{flex:1 0 auto;width:0}}.dops-section-nav-group{border-top:1px solid #d5d5d5;margin-top:16px;padding-top:16px;position:relative}.dops-section-nav-group:first-child{border-top:none;padding-top:0}@media(max-width:480px){.dops-section-nav-group{display:none}.dops-section-nav.is-open .dops-section-nav-group{display:block}}@media(min-width:481px){.dops-section-nav-group{border-top:none;margin-top:0;padding-top:0}.dops-section-nav-group:first-child{display:flex;flex:1 0 auto;width:0}}.dops-section-nav__button{margin-top:24px;width:100%}.dops-section-nav__hr{background:#eee}.dops-section-nav-group__label{color:#a2a2a2;display:none;font-size:11px;font-weight:600;line-height:12px;margin-bottom:8px;padding:0 15px;text-transform:uppercase}@media(max-width:480px){.has-siblings .dops-section-nav-group__label{display:block}}.dops-section-nav-group__label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-section-nav-tab .count{margin-right:8px}@media(min-width:481px){.dops-section-nav-tabs{flex:1 0 auto;width:0}.dops-section-nav-tabs.is-dropdown{flex:0 1 auto;margin:8px;position:relative;width:auto}}.dops-section-nav-tabs__list{list-style:none;margin:0}@media(min-width:481px){.dops-section-nav-tabs__list{display:flex;overflow:hidden;width:100%}.is-dropdown .dops-section-nav-tabs__list{display:none}}.dops-section-nav-tab{margin-bottom:0}@media(min-width:481px){.dops-section-nav-tab{border-bottom:2px solid transparent;border-top:none;flex:none;text-align:center;width:auto}.dops-section-nav-tab.is-selected{border-bottom-color:#414141}}.dops-section-nav-tab__link,.dops-section-nav-tab__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dops-section-nav-tab__link{align-items:center;box-sizing:border-box;color:#414141;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;line-height:18px;padding:15px;width:100%}.dops-section-nav-tab__link:visited{color:#414141}.dops-section-nav-tab__link[disabled],.notouch .dops-section-nav-tab__link[disabled]:hover{color:#eee;cursor:default}.is-selected .dops-section-nav-tab__link{background-color:#2271b1;color:#fff}.dops-section-nav-tab__link:focus{box-shadow:none;outline:none}.dops-accessible-focus .dops-section-nav-tab__link:focus{outline:1px solid #a2a2a2}.is-external .dops-section-nav-tab__link:after{font-size:18px;padding-right:2px}.dops-section-nav-tab__link:hover{color:#0a4b78}.notouch .dops-section-nav-tab__link:hover{color:#2271b1}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#fff}@media(min-width:481px){.dops-section-nav-tab__link{color:#2271b1;display:block;font-weight:400;padding:16px 16px 14px;width:auto}.dops-section-nav-tab__link:visited{color:#2271b1}.is-selected .dops-section-nav-tab__link{background-color:transparent;color:#414141}.is-selected .dops-section-nav-tab__link:after{display:none}.notouch .is-selected .dops-section-nav-tab__link:hover{color:#414141}}.dops-section-nav-tab__text{color:inherit;display:block;flex:1 0 auto;width:0}@media(min-width:481px){.dops-section-nav-tab__text{display:inline;flex:none;width:auto}}.dops-section-nav-tabs__dropdown{position:relative;width:100%;z-index:3}.dops-section-nav-tabs__dropdown.is-open{z-index:4}.dops-section-nav-tabs__dropdown .dops-select-dropdown__container{position:static}.dops-section-nav__segmented .dops-segmented-control{margin:0 15px}.dops-section-nav__segmented .dops-segmented-control__link{padding:3px 16px 5px}@media(max-width:480px){.dops-section-nav .dops-search.is-pinned{height:46px}}.dops-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;display:block;margin:0 auto 10px;padding:16px;position:relative}.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media(min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-left:48px}h2.dops-card-title{font-size:rem(20px)}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;left:16px;position:absolute;top:0}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#3582c4,20%)}.dops-popover{font-size:11px;left:0;left:auto;position:absolute;top:0;z-index:1000}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);position:relative;text-align:center}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{border-bottom:none;border-left-color:transparent;border-top-style:solid;bottom:0;left:50%;margin-left:-10px}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{border:10px solid transparent;border-bottom:none;border-top-color:#fff;bottom:2px;content:" ";left:50%;margin-left:-10px;position:absolute}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{border-bottom-style:solid;border-left-color:transparent;border-top:none;left:50%;margin-left:-10px;top:0}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{border:10px solid transparent;border-bottom:10px solid #fff;border-top:none;content:" ";left:50%;margin-left:-10px;position:absolute;top:2px}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{border-bottom-color:transparent;border-left-style:solid;border-right:none;border-top-color:transparent;margin-top:-10px;right:0;top:50%}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{border:10px solid transparent;border-left:10px solid #fff;border-right:none;content:" ";margin-top:-10px;position:absolute;right:2px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{border-bottom-color:transparent;border-left:none;border-right-style:solid;border-top-color:transparent;left:0;margin-top:-10px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{border:10px solid transparent;border-left:none;border-right-color:#fff;content:" ";left:2px;margin-top:-10px;position:absolute;top:50%}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-left:0;padding-right:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;left:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;position:relative;text-align:right;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#3582c4;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-right:42px}.dops-popover__menu-item .gridicon{color:#bbb;margin-left:8px;vertical-align:bottom}.dops-popover__hr{background:#eee;margin:8px 0}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-block;flex:none;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:40px}.form-toggle__switch:after,.form-toggle__switch:before{content:"";display:block;height:20px;position:relative;width:20px}.form-toggle__switch:after{background:#fff;border-radius:50%;right:0;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle__label{cursor:pointer;display:flex}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-right:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #3582c4}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{cursor:default;opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;height:16px;width:24px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}.dops-section-header.dops-card{display:flex;flex-wrap:wrap;max-width:100%;padding-bottom:.6875rem;padding-top:.6875rem;position:relative}.dops-section-header.dops-card:after{content:""}.dops-section-header__label{align-items:center;color:#414141;display:flex;flex-grow:1;font-size:.875rem;line-height:1.75rem;min-width:0;position:relative}.dops-section-header__label .dops-count{margin-right:.5rem}.dops-section-header__label-text{margin-left:.5rem;min-width:0;overflow:hidden;padding-left:.5rem;position:relative;white-space:nowrap;width:100%}.dops-section-header__label-text:before{-webkit-touch-callout:none;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);bottom:0;content:"";display:block;height:auto;left:0;pointer-events:none;position:absolute;right:auto;top:0;-webkit-user-select:none;user-select:none;width:8px}.has-card-badge .dops-section-header__label-text{width:auto}.dops-section-header__actions{flex-grow:0;position:relative}.dops-section-header__actions:after{clear:both;content:".";display:block;height:0;visibility:hidden}.section-header__actions .button{float:right;margin-left:.5rem}.section-header__actions .button:last-child{margin-left:0}.dops-notice{animation:appear .3s ease-in-out;background:#414141;border-radius:3px;box-sizing:border-box;color:#fff;display:flex;line-height:1.5;margin-bottom:24px;position:relative;width:100%}.dops-notice.is-success .dops-notice__icon-wrapper{background:#4ab866}.dops-notice.is-warning .dops-notice__icon-wrapper{background:#f0b849}.dops-notice.is-error .dops-notice__icon-wrapper{background:#d94f4f}.dops-notice.is-info .dops-notice__icon-wrapper{background:#3582c4}.dops-notice .dops-notice__dismiss,.dops-notice.is-error .dops-notice__dismiss,.dops-notice.is-info .dops-notice__dismiss,.dops-notice.is-success .dops-notice__dismiss,.dops-notice.is-warning .dops-notice__dismiss{overflow:hidden}.dops-notice__icon-wrapper{align-items:baseline;align-self:stretch;background:#747474;border-radius:0 3px 3px 0;color:#fff;display:flex;flex-shrink:0;justify-content:center;width:47px}.dops-notice__icon-wrapper .gridicon{margin-top:10px}@media(min-width:481px){.dops-notice__icon-wrapper .gridicon{margin-top:12px}}.dops-notice__content.dops-notice__content{flex-grow:1;font-size:12px;padding:13px}@media(min-width:481px){.dops-notice__content.dops-notice__content{font-size:14px}}.dops-notice__content.dops-notice__content a{color:#fff;text-decoration:underline}.dops-notice__content.dops-notice__content a:hover,.dops-notice__text a.dops-notice__text-no-underline{text-decoration:none}.dops-notice__text a,.dops-notice__text a:visited{color:#fff;text-decoration:underline}.dops-notice__text a:hover,.dops-notice__text a:visited:hover{color:#fff;text-decoration:none}.dops-notice__text ul{margin-bottom:0;margin-right:0}.dops-notice__text li{margin-right:2em;margin-top:.5em}.dops-notice__text p{margin-bottom:0;margin-top:.5em}.dops-notice__text p:first-child{margin-top:0}.dops-notice__button{cursor:pointer;margin-right:.428em}.dops-notice__dismiss{cursor:pointer;flex-shrink:0;padding:12px 12px 0}.dops-notice__dismiss .gridicon{height:18px;width:18px}@media(min-width:481px){.dops-notice__dismiss{padding:11px 11px 0}.dops-notice__dismiss .gridicon{height:24px;width:24px}}.dops-notice .dops-notice__dismiss{color:#bbb}.dops-notice .dops-notice__dismiss:focus,.dops-notice .dops-notice__dismiss:hover{color:#fff}a.dops-notice__action{align-items:center;color:#bbb;cursor:pointer;display:flex;font-size:12px;font-weight:400;padding:13px;text-decoration:none;white-space:nowrap}@media(min-width:481px){a.dops-notice__action{align-items:center;border-radius:0;flex-grow:0;flex-shrink:1;font-size:14px;margin:0 auto 0 0;padding:13px 16px}a.dops-notice__action .gridicon{height:24px;width:24px}}a.dops-notice__action:visited{color:#bbb}a.dops-notice__action:hover{color:#fff}a.dops-notice__action .gridicon{height:18px;margin-right:8px;opacity:.7;width:18px}.dops-notice.is-compact{border-radius:3px;display:inline-flex;flex-direction:row;flex-wrap:nowrap;line-height:1.5;margin:0;min-height:20px;padding:0;text-decoration:none;text-transform:none;vertical-align:middle;width:auto}.dops-notice.is-compact .dops-notice__content{font-size:12px;padding:6px 10px}.dops-notice.is-compact .dops-notice__icon-wrapper{width:28px}.dops-notice.is-compact .dops-notice__icon-wrapper .dops-notice__icon{height:18px;margin:0;width:18px}.dops-notice.is-compact .dops-notice__icon-wrapper .gridicon{margin-top:6px}.dops-notice.is-compact .dops-notice__dismiss{align-self:center;flex:none;margin:0 0 0 8px;padding:0;position:relative}.dops-notice.is-compact .dops-notice__dismiss .gridicon{height:18px;width:18px}.dops-notice.is-compact a.dops-notice__action{align-self:center;background:transparent;display:inline-block;font-size:12px;margin:0 16px 0 0;padding:0 10px}.dops-notice.is-compact a.dops-notice__action:active,.dops-notice.is-compact a.dops-notice__action:focus,.dops-notice.is-compact a.dops-notice__action:hover{background:transparent}.dops-notice.is-compact a.dops-notice__action .gridicon{height:14px;margin-right:8px;opacity:1;vertical-align:sub;width:14px}.dops-plan-icon{background-repeat:no-repeat;height:inherit;width:inherit}.dops-plan-icon__free .dops-plan-icon__free-0{fill:#78dcfa}.dops-plan-icon__free .dops-plan-icon__free-1{fill:#fff}.dops-plan-icon__free .dops-plan-icon__free-2{fill:#006a95}.dops-plan-icon__free .dops-plan-icon__free-3{fill:#0087be}.dops-plan-icon__free .dops-plan-icon__free-4{fill:#00a4e7}.dops-plan-icon__personal .dops-plan-icon__personal-0{fill:#f0b849}.dops-plan-icon__personal .dops-plan-icon__personal-1{fill:#a2a2a2}.dops-plan-icon__personal .dops-plan-icon__personal-2{fill:#d5d5d5}.dops-plan-icon__personal .dops-plan-icon__personal-3{fill:#fff}.dops-plan-icon__personal .dops-plan-icon__personal-4{fill:#888}.dops-plan-icon__personal .dops-plan-icon__personal-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-0{fill:#4ab866}.dops-plan-icon__premium .dops-plan-icon__premium-1{fill:#a2a2a2}.dops-plan-icon__premium .dops-plan-icon__premium-2{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-3{fill:#fff}.dops-plan-icon__premium .dops-plan-icon__premium-4{fill:#d5d5d5}.dops-plan-icon__premium .dops-plan-icon__premium-5{fill:#6f6f6f}.dops-plan-icon__premium .dops-plan-icon__premium-6{fill:#555}.dops-plan-icon__business .dops-plan-icon__business-0{fill:#855da6}.dops-plan-icon__business .dops-plan-icon__business-1{fill:#fff}.dops-plan-icon__business .dops-plan-icon__business-2{fill:#eee}.dops-plan-icon__business .dops-plan-icon__business-3{fill:#0087be}.dops-plan-icon__business .dops-plan-icon__business-4{fill:#005082}.dops-banner.dops-card{border-right:3px solid #0087be;display:flex;padding:12px 12px 12px 6px;position:relative;z-index:2}.dops-banner.dops-card.is-card-link{padding:12px 16px 12px 48px}.dops-banner.dops-card.is-dismissible{padding-left:48px}.dops-banner.dops-card .dops-banner__icon{color:#0087be}.dops-banner.dops-card .dops-banner__icon-circle{background-color:#0087be}.dops-banner.dops-card.is-jetpack-info{border-right-color:#069e08}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon{color:#069e08}.dops-banner.dops-card.is-jetpack-info .dops-banner__icon-circle{background-color:#069e08}.dops-banner.dops-card.is-product{border-right-color:#3895ba}.dops-banner.dops-card.is-product .dops-banner__icon{color:#3895ba}.dops-banner.dops-card.is-product .dops-banner__icon-circle{background-color:#3895ba}.dops-banner.dops-card.is-plan{border-right-color:#069e08}.dops-banner.dops-card.is-plan .dops-banner__icon{color:#069e08}.dops-banner.dops-card.is-plan .dops-banner__icon-circle{background-color:#069e08}.dops-banner.dops-card.is-plan.is-upgrade-personal{border-right-color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-personal .dops-banner__icon{color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-personal .dops-banner__icon-circle{background-color:#f0b849}.dops-banner.dops-card.is-plan.is-upgrade-premium{border-right-color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-premium .dops-banner__icon{color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-premium .dops-banner__icon-circle{background-color:#4ab866}.dops-banner.dops-card.is-plan.is-upgrade-business{border-right-color:#855da6}.dops-banner.dops-card.is-plan.is-upgrade-business .dops-banner__icon{color:#855da6}.dops-banner.dops-card.is-plan.is-upgrade-business .dops-banner__icon-circle{background-color:#855da6}.dops-banner.dops-card.is-plan.is-bundle{border-right-color:#984a9c}.dops-banner.dops-card.is-plan.is-bundle .dops-banner__icon{color:#984a9c}.dops-banner.dops-card.is-plan.is-bundle .dops-banner__icon-circle{background-color:#984a9c}.dops-banner.dops-card .dops-card__link-indicator{align-items:center;color:#0087be;display:flex}.dops-banner.dops-card:hover{transition:all .1s ease-in-out}.dops-banner.dops-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.dops-banner.dops-card:hover .dops-card__link-indicator{color:#005082}@media(min-width:481px){.dops-banner.dops-card{padding:12px 16px}.dops-banner.dops-card.is-dismissible{padding-left:16px}}.dops-banner__icons{display:flex}.dops-banner__icons .dops-banner__icon,.dops-banner__icons .dops-banner__icon-circle{border-radius:50%;flex-shrink:0;height:24px;margin-left:16px;margin-top:-2px;text-align:center;top:4px;width:24px}.dops-banner__icons .dops-banner__icon{align-self:center;color:#fff;display:block}.dops-banner__icons .dops-banner__icon-circle{color:#fff;display:none;padding:3px 3px 4px 4px}.dops-banner__icons .dops-banner__icon-circle-svg{transform:translate(-1px,1px)}@media(min-width:481px){.dops-banner__icons{align-items:center}.dops-banner__icons .dops-banner__icon{display:none}.dops-banner__icons .dops-banner__icon-circle{display:block}}.dops-banner__icon-plan{display:flex;margin-left:16px}.dops-banner__icon-plan .dops-plan-icon{height:32px;width:32px}@media(min-width:481px){.dops-banner__icon-plan{align-items:center}}.dops-banner__content{align-items:center;display:flex;flex-grow:1;flex-wrap:wrap}@media(min-width:481px){.dops-banner__content{flex-wrap:nowrap}}.dops-banner__info{flex-grow:1;line-height:1.4;width:100%}.dops-banner__info .dops-banner__description,.dops-banner__info .dops-banner__list,.dops-banner__info .dops-banner__title{color:#414141}.dops-banner__info .dops-banner__title{font-size:.875rem;font-weight:500}.dops-banner__info .dops-banner__description{font-size:.75rem;margin-top:3px}.dops-banner__info .dops-banner__list{font-size:.75rem;list-style:none;margin:0}.dops-banner__info .dops-banner__list li{margin:6px 0}.dops-banner__info .dops-banner__list li .gridicon{color:#a2a2a2;display:none}@media(min-width:481px){.dops-banner__info{width:auto}.dops-banner__info .dops-banner__list li .gridicon{display:inline;margin-left:12px;vertical-align:bottom}}.dops-banner__action{align-self:center;font-size:.75rem;margin:8px 0 0;text-align:right;width:100%}.dops-banner__action .dops-banner__prices{display:flex;justify-content:flex-start}.dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:0}.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted,.dops-banner__action .dops-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .dops-banner__action .dops-banner__prices .dops-plan-price{margin-bottom:8px}@media(min-width:481px){.dops-banner__action{margin:0 8px 0 4px;text-align:center;width:auto}.is-dismissible .dops-banner__action{margin-top:40px}.dops-banner__action .dops-banner__prices{justify-content:flex-end;text-align:left}}.module-overridden-banner.dops-banner.is-compact{margin-bottom:0}.module-overridden-banner.dops-banner .dops-banner__description a{text-decoration:underline}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{color:#c8c8c8;cursor:pointer}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:right}.dops-external-link .gridicons-external{color:currentColor;margin-right:.5rem;position:relative;top:.125rem}.jp-support-info{left:1.5625rem;position:absolute;top:1.6875rem;z-index:1}@media(max-width:480px){.jp-support-info{left:1rem;top:1.25rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{border-top:1px solid hsla(0,0%,64%,.5);display:block;margin-top:.875rem;padding-top:.75rem}.dops-text-input.dops-text-input{background-color:#fff;border:1px solid #d5d5d5;box-shadow:none;box-sizing:border-box;color:#414141;font-size:16px;line-height:1.5;margin:0;padding:7px 14px;transition:all .15s ease-in-out;width:100%}.dops-text-input.dops-text-input::placeholder{color:#a2a2a2}.dops-text-input.dops-text-input:hover{border-color:#bbb}.dops-text-input.dops-text-input:focus{border-color:#0087be;box-shadow:0 0 0 2px #78dcfa;outline:none}.dops-text-input.dops-text-input:focus::-ms-clear{display:none}.dops-text-input.dops-text-input:disabled{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-text-input.dops-text-input:disabled:hover{cursor:default}.dops-text-input.dops-text-input:disabled::placeholder{color:#bbb}.dops-text-input.dops-text-input{-webkit-appearance:none}.dops-text-input.dops-text-input.is-valid{border-color:#4ab866}.dops-text-input.dops-text-input.is-valid:hover{border-color:#3a9551}.dops-text-input.dops-text-input.is-error{border-color:#d94f4f}.dops-text-input.dops-text-input.is-error:hover{border-color:#c92c2c}.dops-text-input.dops-text-input:focus.is-valid{box-shadow:0 0 0 2px #caead2}.dops-text-input.dops-text-input:focus.is-valid:hover{box-shadow:0 0 0 2px #a6dcb3}.dops-text-input.dops-text-input:focus.is-error{box-shadow:0 0 0 2px #f9e2e2}.dops-text-input.dops-text-input:focus.is-error:hover{box-shadow:0 0 0 2px #f0b8b8}.jp-form-settings-group .jp-toggle-set{position:relative}.jp-form-settings-group .jp-toggle-set .jp-support-info{left:-1.25rem;top:.3125rem}@media(max-width:480px){.jp-form-settings-group .jp-toggle-set .jp-support-info{left:-2rem;top:.3125rem}}.jetpack-benefits__general-benefits-section{margin:0 auto;max-width:800px;width:100%}.jetpack-benefits__general-benefits-list{font-size:1rem;list-style:disc;padding-right:1.25rem;text-align:right;width:100%}.jp-connection__disconnect-card{background-color:#fff;border:none;border-radius:3px;box-shadow:0 0 15px #e2e2df;margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:right;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-left:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:left}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-left:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:0;margin-right:1rem}}.jp-connection__disconnect-dialog h1{font-size:24px;font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:24px;font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:16px;margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:#000;text-decoration-thickness:2px}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:#000}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:#f9f9f6;border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:#fff;border-top:1px solid #dcdcde;bottom:0;padding:2rem 0;position:-webkit-sticky;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(180deg,transparent,#f9f9f6);bottom:calc(100% + 1px);content:"";display:block;height:80px;position:absolute;right:0;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:#000!important;margin-left:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:#d63639!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:#000!important}.jp-connection__disconnect-dialog__button-wrap{text-align:right}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:#d63639}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:36px}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-right:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px #dcdcde;display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:#dcdcde;background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;position:absolute;right:24px;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:#d63639;border-radius:50px;height:80px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px #e2e2df;margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:right;width:800px}.jp-connect__disconnect-survey-card--selected{background:#e2e2df;border-color:#000}.jp-connect__disconnect-survey-card:after{border-left:2px solid #000;border-top:2px solid #000;content:"";display:block;height:5px;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%) rotate(-45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:#2c3338}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:#2c3338;flex-grow:1;max-width:calc(100% - 40px);padding-left:40px}.jp-connect-user-bar__card{align-items:center;background:#f3f5f6;border-top:1px solid #ccd0d4;display:flex;justify-content:space-between;padding:8px 24px}.jp-connect-user-bar__card .jp-connect-user-bar__text{color:#414141;font-size:13px;font-weight:500;height:16px;line-height:16px}.jp-connect-user-bar__card .jp-connect-user-bar__button{order:3}.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled]{background:#f3f5f6;border:1px solid #0071a1;border-radius:3px;box-sizing:border-box;color:#0071a1;float:left;font-size:13px;font-weight:600;line-height:16px;text-align:center;white-space:nowrap}.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button:disabled[disabled],.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled],.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled]:disabled,.jp-connect-user-bar__card .jp-connect-user-bar__button .jp-jetpack-connect__button[disabled][disabled]{background:#f3f5f6!important;color:#0071a1!important}.progress-bar{background-color:#c3c4c7;border-radius:4.5px;display:inline-block;height:9px;position:relative;width:100%}.progress-bar.is-compact{height:4px}.progress-bar__progress{background-color:#2271b1;border-radius:4.5px;display:inline-block;height:100%;position:absolute;right:0;top:0;transition:width .2s}@media(prefers-reduced-motion:reduce){.progress-bar__progress{transition:none}}.progress-bar.is-pulsing .progress-bar__progress{-webkit-animation:progress-bar-animation 3.3s linear infinite;animation:progress-bar-animation 3.3s linear infinite;background-image:linear-gradient(45deg,#2271b1 28%,#5198d9 0,#5198d9 72%,#2271b1 0);background-size:50px 100%}@media(prefers-reduced-motion:reduce){.progress-bar.is-pulsing .progress-bar__progress{-webkit-animation:none;animation:none}}@-webkit-keyframes progress-bar-animation{0%{background-position:100px 0}}@keyframes progress-bar-animation{0%{background-position:100px 0}}.percentage-bar{border-radius:0;height:8px;width:150px}.percentage-bar .progress-bar__progress{border-radius:0}.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important}.screen-reader-text:active,.screen-reader-text:focus,.screen-reader-text:hover{clip:auto!important;background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;line-height:normal;padding:15px 23px 14px;right:5px;text-decoration:none;top:5px;width:auto;z-index:z-index("screen-reader-text-parent",".screen-reader-text:focus")}.dops-foldable-card.dops-card{padding:0;position:relative;transition:margin .15s linear}.dops-foldable-card.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-foldable-card.dops-card.is-expanded{margin-bottom:8px}.dops-foldable-card.dops-card .is-clickable{cursor:pointer}.dops-foldable-card__header{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;min-height:64px;padding:16px;position:relative;width:100%}.dops-foldable-card__header.has-border .dops-foldable-card__summary,.dops-foldable-card__header.has-border .dops-foldable-card__summary_expanded{margin-left:48px}.dops-foldable-card__header.has-border .dops-foldable-card__expand{border-right:1px solid #f6f6f6}.dops-foldable-card.is-compact .dops-foldable-card__header{min-height:40px;padding:8px 16px}.dops-foldable-card.is-expanded .dops-foldable-card__header{height:inherit;margin-bottom:0;min-height:64px}.dops-foldable-card.is-expanded.is-compact .dops-foldable-card__header{min-height:40px}.dops-foldable-card.is-disabled .dops-foldable-card__header{opacity:.2}.dops-foldable-card__action{background:none;border:0;height:100%;left:0;position:absolute;top:0}.dops-foldable-card.is-expanded .dops-foldable-card__action{height:100%}.dops-foldable-card.is-disabled .dops-foldable-card__action{cursor:default}.dops-accessible-focus .dops-foldable-card__action:focus{outline:thin dotted}button.dops-foldable-card__action{cursor:pointer;outline:0}.dops-foldable-card__main{align-items:center;display:block;margin-left:5px;max-width:calc(100% - 36px);width:100%}@media(max-width:480px){.dops-foldable-card__main{flex:1 1}}.dops-foldable-card__secondary{align-items:center;display:flex;flex:1 1;justify-content:flex-end}.dops-foldable-card__expand{width:48px}.dops-foldable-card__expand .gridicon{fill:#a2a2a2;align-items:center;display:flex;transition:transform .15s cubic-bezier(.175,.885,.32,1.275),color .2s ease-in;vertical-align:middle;width:100%}.dops-foldable-card.is-expanded .dops-foldable-card__expand .gridicon{transform:rotate(-180deg)}.dops-foldable-card__expand .gridicon:hover{fill:#a2a2a2}.dops-foldable-card__expand:focus .gridicon,.dops-foldable-card__expand:hover .gridicon{fill:#3582c4}.dops-foldable-card__header-text{font-size:1.125rem;width:100%}.dops-foldable-card__subheader{color:#6f6f6f;font-size:.875rem;margin-bottom:.125rem;margin-top:.125rem}.dops-foldable-card__content{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__content{border-top:1px solid #f6f6f6;display:block;padding:16px}.dops-foldable-card.is-compact .dops-foldable-card.is-expanded .dops-foldable-card__content{padding:8px}.dops-foldable-card.is-expanded .dops-foldable-card__content p:first-child{margin-top:0}.dops-foldable-card.is-expanded .dops-foldable-card__content p:last-child{margin-bottom:0}.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{color:#a2a2a2;display:inline-block;font-size:12px;margin-left:40px;transition:opacity .2s linear}.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{flex:2;text-align:left;transition:none}@media(max-width:480px){.dops-foldable-card__summary,.dops-foldable-card__summary_expanded{display:none}}.dops-foldable-card__summary{display:inline-block;opacity:1}.dops-foldable-card.is-expanded .dops-foldable-card__summary,.dops-foldable-card__summary_expanded,.has-expanded-summary .dops-foldable-card.is-expanded .dops-foldable-card__summary{display:none}.dops-foldable-card.is-expanded .dops-foldable-card__summary_expanded{display:inline-block}.form-input-validation{animation:appear .3s ease-in-out;border-radius:1px;box-sizing:border-box;color:#4ab866;font-size:14px;padding:6px 34px 11px 24px;position:relative}.form-input-validation.is-error{color:#d94f4f}.form-input-validation.is-warning{color:#f0b849}.form-input-validation .gridicon{float:right;margin-right:-34px}.dops-textarea{background-color:#fff;border:1px solid #d5d5d5;box-shadow:none;box-sizing:border-box;color:#414141;font-size:1rem;line-height:1.5;margin:0;min-height:5.75rem;padding:.4375rem .875rem;transition:all .15s ease-in-out;width:100%}.dops-textarea::placeholder{color:#a2a2a2}.dops-textarea:hover{border-color:#bbb}.dops-textarea:focus{border-color:#0087be;box-shadow:0 0 0 2px #78dcfa;outline:none}.dops-textarea:focus::-ms-clear{display:none}.dops-textarea:disabled{-webkit-text-fill-color:#bbb;background:#f6f6f6;border-color:#eee;color:#bbb}.dops-textarea:disabled:hover{cursor:default}.dops-textarea:disabled::placeholder{color:#bbb}.search-preview__display{word-wrap:break-word;border:1px solid #f6f7f7;font-family:arial,sans-serif;padding:10px 20px}.search-preview__title{color:#1a0dab;font-size:20px;line-height:26px;margin-bottom:7px;max-width:616px}.search-preview__title:hover{cursor:pointer;text-decoration:underline}.search-preview__url{color:#3c4043;font-size:14px;line-height:18.2px;margin-bottom:8px;max-width:616px}.search-preview__description{color:#3c4043;font-size:14px;font-weight:400;line-height:22.12px;max-width:616px}.facebook-preview{-webkit-overflow-scrolling:touch;border:none;display:flex;margin:20px;max-width:527px;overflow-x:auto}.facebook-preview__content{background-color:#f2f3f5;display:flex;max-width:100%}.facebook-preview__body{border:1px solid #dadde1;display:flex;flex-direction:column;font-family:Helvetica,Arial,sans-serif;overflow:hidden;padding:10px 12px}.facebook-preview__title{color:#1d2129;font-size:16px;font-weight:600;line-height:20px;max-height:100px;transition:color .1s ease-in-out}.facebook-preview__description{color:#606770;font-size:14px;line-height:20px;overflow-y:hidden}.facebook-preview__url{color:#606770;font-size:12px;line-height:11px;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.facebook-preview__article .facebook-preview__content{flex-direction:column;min-width:100%}.facebook-preview__article .facebook-preview__image{align-items:center;display:flex;justify-content:center;max-height:250px;overflow-y:hidden}.facebook-preview__article .facebook-preview__image img{height:auto;max-width:527px;width:100%}.facebook-preview__article .facebook-preview__body{height:auto;max-height:100px}.facebook-preview__article .facebook-preview__title{margin-bottom:1px}.facebook-preview__article .facebook-preview__description{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box}.facebook-preview__article .facebook-preview__url{margin-bottom:5px}.facebook-preview__website{max-height:158px;overflow:hidden}.facebook-preview__website .facebook-preview__image{border:1px solid #dadde1;border-left:0;box-sizing:border-box;flex-shrink:0;height:158px;width:158px}.facebook-preview__website .facebook-preview__image img{display:block;font-size:14px;height:auto;width:100%}.facebook-preview__website .facebook-preview__image:after{background:#fff;content:"";display:block;height:100%;width:100%}.facebook-preview__website .facebook-preview__body{height:136px;justify-content:center;width:100%}.facebook-preview__website .facebook-preview__title{margin-bottom:5px;max-height:110px;overflow-wrap:break-word}.facebook-preview__website .facebook-preview__url{margin-bottom:5px}.facebook-preview__website .facebook-preview__description{max-height:80px}.twitter-preview{background-color:#fff;padding:20px;width:635px}.twitter-preview__container{display:grid;grid-template-columns:65px auto;margin-bottom:5px;margin-left:24px}.twitter-preview__container .twitter-preview__sidebar{display:grid;grid-template-rows:35px auto;justify-items:center}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__profile-image img{border-radius:15px;height:30px;-o-object-fit:cover;object-fit:cover;width:30px}.twitter-preview__container .twitter-preview__sidebar .twitter-preview__connector{background-color:#8c8f94;width:2px}.twitter-preview__container .twitter-preview__name{font-size:16px;font-weight:700;line-height:19px}.twitter-preview__container .twitter-preview__date,.twitter-preview__container .twitter-preview__screen-name{color:#667886;font-size:16px;letter-spacing:-.3px;line-height:18px;margin-right:15px}.twitter-preview__container .twitter-preview__content{margin:7px 0}.twitter-preview__container .twitter-preview__content .twitter-preview__text{color:#787c82;font-size:14px;letter-spacing:-.3px;line-height:18px;white-space:pre-wrap;word-break:break-word}.twitter-preview__container .twitter-preview__content .twitter-preview__media{grid-gap:2px;border-radius:15px;display:grid;grid-template-areas:"a";height:300px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__media img,.twitter-preview__container .twitter-preview__content .twitter-preview__media video{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:first-child,.twitter-preview__container .twitter-preview__content .twitter-preview__media video:first-child{grid-area:a}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(2),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(2){grid-area:b}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(3),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(3){grid-area:c}.twitter-preview__container .twitter-preview__content .twitter-preview__media img:nth-child(4),.twitter-preview__container .twitter-preview__content .twitter-preview__media video:nth-child(4){grid-area:d}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-2{grid-template-areas:"a b"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-3{grid-template-areas:"a b" "a c"}.twitter-preview__container .twitter-preview__content .twitter-preview__media.twitter-preview__media-children-4{grid-template-areas:"a b" "c d"}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet{margin-top:10px;min-height:200px}.twitter-preview__container .twitter-preview__content .twitter-preview__quote-tweet .twitter-preview__quote-tweet-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.twitter-preview__container .twitter-preview__content .twitter-preview__card{border:1px solid #e1e8ed;border-radius:12px;margin-top:10px;overflow:hidden}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary{display:grid}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image{display:grid;grid-template-columns:125px auto;height:125px}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-body{border-right:1px solid #e1e8ed;height:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary.twitter-preview__card-has-image .twitter-preview__card-description{-webkit-line-clamp:3}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-summary_large_image{display:grid;grid-template-rows:254px auto}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-body{color:#000;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.3em;overflow:hidden;padding:.75em;text-align:right;text-decoration:none}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-title{font-size:1em;font-weight:700;margin:0 0 .15em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;margin-top:.32333em;max-height:3.9em;overflow:hidden;text-overflow:ellipsis}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url{color:#8899a6;margin-top:.32333em;max-height:1.3em;overflow-inline:hidden;text-overflow:ellipsis;text-transform:lowercase;white-space:nowrap}.twitter-preview__container .twitter-preview__content .twitter-preview__card .twitter-preview__card-url svg{fill:#8899a6;height:15px;margin:0 0 -4px 2px;width:15px}.twitter-preview__container .twitter-preview__footer{display:grid;grid-template-columns:repeat(4,auto)}.twitter-preview__container .twitter-preview__footer svg{fill:#787c82;height:16px;width:16px}.dops-clipboard-button-input{display:block;position:relative}.dops-clipboard-button-input .dops-clipboard-button{left:4px;overflow:visible;position:absolute;top:50%;transform:translateY(-50%)}.dops-clipboard-button-input .dops-clipboard-button:not(:disabled):before{-webkit-touch-callout:none;background:linear-gradient(270deg,hsla(0,0%,100%,0),#fff 90%);bottom:0;content:"";display:block;height:auto;left:0;left:calc(100% + 1px);pointer-events:none;position:absolute;right:auto;top:0;-webkit-user-select:none;user-select:none;width:16px}.dops-clipboard-button-input .dops-clipboard-button:focus:before{left:calc(100% + 3px)}.jp-recommendations-question__content{display:flex;flex-direction:column}@media(min-width:661px){.jp-recommendations-question__main--with-illustration .jp-recommendations-question__content{padding-left:48px}}.jp-recommendations-question__progress-bar{margin:32px 32px 0}.jp-recommendations-question__progress-bar .progress-bar{width:70px}@media(max-width:480px){.jp-recommendations-question__progress-bar{margin:16px 16px 32px}}.jp-recommendations-question__question{font-size:1.5rem;margin:32px 32px 0}@media(max-width:480px){.jp-recommendations-question__question{margin:0 16px 32px}}.jp-recommendations-question__description{font-size:16px;margin:32px 32px 24px}@media(max-width:480px){.jp-recommendations-question__description{margin:0 16px 16px}}.jp-recommendations-question__description .gridicons-external{margin-right:.25rem}.jp-recommendations-question__description a{white-space:nowrap}.jp-recommendations-question__main--with-illustration .jp-recommendations-question__description{margin-left:0}@media(max-width:660px){.jp-recommendations-question__main--with-illustration .jp-recommendations-question__description{margin-left:32px}}.jp-recommendations-question__answer{display:flex;flex-direction:column;height:100%}.jp-recommendations-question__illustration-container{position:relative;width:100%}.jp-recommendations-question__illustration-container img{bottom:0;left:0;position:absolute}@media(max-width:660px){.jp-recommendations-question__illustration-container{display:none}}.jp-recommendations-question__illustration-background{width:100%}.jp-recommendations-question__illustration-foreground{margin:10%;width:75%}.jp-recommendations-question__install-section{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:flex-end}.jp-recommendations-question__install-section button{margin-bottom:16px;margin-top:auto;min-width:172px}.jp-recommendations-question__install-section a{margin-bottom:32px}.jp-recommendations-question__install-section a.dops-button{margin-bottom:16px;text-align:center}@media(max-width:480px){.jp-recommendations-question__install-section a.dops-button{width:100%}.jp-recommendations-question__install-section{padding:64px 16px 0}}.jp-loading-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.jp-recommendations-product-suggestion-item{border:1px solid #dcdcde;border-radius:8px;padding:24px}.jp-recommendations-product-suggestion-item__content{display:flex;flex-direction:column}@media(min-width:481px){.jp-recommendations-product-suggestion-item__content{align-self:start;display:grid;grid-template-columns:1fr auto}}.jp-recommendations-product-suggestion-item__title{font-size:1.5rem;line-height:1.2;margin-bottom:16px;margin-top:0}@media(min-width:481px){.jp-recommendations-product-suggestion-item__title{grid-column:1}}.jp-recommendations-product-suggestion-item__description{font-size:.875rem;line-height:1.5;margin-bottom:16px;margin-top:0;max-width:370px}@media(min-width:481px){.jp-recommendations-product-suggestion-item__description{grid-column:1}}@media(min-width:961px){.jp-recommendations-product-suggestion-item__description{max-width:280px}}.jp-recommendations-product-suggestion-item__actions{display:flex;flex-direction:column}@media(min-width:481px){.jp-recommendations-product-suggestion-item__actions{grid-column:1}}.jp-recommendations-product-suggestion-item__checkout-button{align-self:flex-start;font-size:1rem;margin-bottom:16px;margin-top:0;text-align:center}.jp-recommendations-product-suggestion-item__external-link{align-self:flex-start;font-size:1rem;line-height:1.5}.jp-recommendations-product-suggestion-item__price{display:flex;flex-direction:row;margin-bottom:16px}@media(min-width:481px){.jp-recommendations-product-suggestion-item__price{flex-direction:column;grid-column:2;grid-row:1/4;margin-right:auto;padding-right:16px}}.jp-recommendations-product-suggestion-item__raw-price{display:flex;margin:0}@media(min-width:481px){.jp-recommendations-product-suggestion-item__raw-price{margin-right:auto}}.jp-recommendations-product-suggestion-item__currency-symbol{font-size:1.25rem;line-height:1.4;padding-left:1px}.jp-recommendations-product-suggestion-item__price-integer{font-size:2.5rem;font-weight:700;line-height:1}.jp-recommendations-product-suggestion-item__price-fraction{font-size:.875rem;font-weight:700;line-height:1.5;padding-right:1px}.jp-recommendations-product-suggestion-item__billing-time-frame{color:#787c82;font-size:.8125rem;margin-right:10px;text-align:center}@media(min-width:481px){.jp-recommendations-product-suggestion-item__billing-time-frame{margin-right:0;margin-top:8px}}.jetpack-money-back-guarantee{align-items:center;color:#1d2327;display:flex;font-size:.875rem;justify-content:center;line-height:1.5}.jetpack-money-back-guarantee__icon svg{display:block;height:23px;width:23px}.jetpack-money-back-guarantee__text{margin-right:8px}.jp-recommendations-product-suggestion__container{margin-bottom:32px;text-align:center}.jp-recommendations-product-suggestion__items{display:flex;flex-direction:column;margin:8px 16px 24px;max-width:660px;text-align:right}@media(min-width:961px){.jp-recommendations-product-suggestion__items{display:grid;gap:16px;grid-template-columns:1fr 1fr;grid-template-rows:auto;max-width:none}}@media(min-width:481px){.jp-recommendations-product-suggestion__items{margin-left:32px;margin-right:32px}}@media(max-width:960px){.jp-recommendations-product-suggestion__item{margin-bottom:16px}.jp-recommendations-product-suggestion__item:last-of-type{margin-bottom:0}}.jp-recommendations-product-suggestion__introductory-pricing{color:#1d2327;font-size:.875rem;letter-spacing:.1px;line-height:1.5;margin-bottom:10px}.jp-recommendations-product-suggestion__money-back-guarantee{margin-bottom:24px}.jp-recommendations-product-suggestion__skip{display:inline-block;font-size:1rem;line-height:1.5}.jp-recommendations-product-purchased{display:flex;flex-direction:column;height:100%;margin:0 16px 32px}@media(min-width:481px){.jp-recommendations-product-purchased{margin-left:32px;margin-right:32px}}.jp-recommendations-product-purchased__features{margin:0 0 32px}.jp-recommendations-product-purchased__feature{align-items:center;display:flex}.jp-recommendations-product-purchased svg{fill:#069e08;margin-left:10px}.jp-recommendations-product-purchased__next{align-self:center}@media(min-width:481px){.jp-recommendations-product-purchased__next{margin-top:auto}}.jp-checkbox-answer__container{background:#fff;border:1px solid #d5d5d5;border-radius:4px;box-sizing:border-box;cursor:pointer;display:flex}.jp-checkbox-answer__container.checked{background:#f8fbff;border:1px solid #3582c4}@media(max-width:480px){.jp-checkbox-answer__container{margin-bottom:8px}}.jp-checkbox-answer__title{align-items:center;display:flex;padding:15px 0;width:100%}.jp-checkbox-answer__checkbox{margin:18px 16px 14px 8px}.jp-checkbox-answer__info{padding:16px 0 16px 16px}.jp-recommendations-question__site-type-checkboxes{margin-bottom:16px;text-align:right}@media(min-width:481px){.jp-recommendations-question__site-type-checkboxes{display:grid;gap:16px;grid-template-columns:auto auto;grid-template-rows:auto auto}}@media(max-width:480px){.jp-recommendations-question__site-type-checkboxes{display:flex;flex-direction:column}}.jp-recommendations-question__site-type-answer-container{margin:0 32px 32px 0;text-align:center}@media(max-width:660px){.jp-recommendations-question__site-type-answer-container{margin:0 32px 32px}}@media(max-width:480px){.jp-recommendations-question__site-type-answer-container{margin:0 16px 16px}.jp-recommendations-question__site-type-answer-container .dops-button{width:100%}}.jp-recommendations-site-type-question__continue-description{color:#646970;margin:24px auto 0;max-width:300px}@media(max-width:480px){.jp-recommendations-site-type-question__continue-description{display:none}}.jp-recommendations-site-type__illustration{height:200px;padding:65px}.jp-install-button__spinner-container{display:flex;justify-content:center}.jp-recommendations-feature-summary{border-bottom:1px solid #e1e1e1;display:grid;grid-template-columns:auto 120px;min-width:275px}.jp-recommendations-feature-summary.is-feature-enabled{grid-template-columns:30px auto 120px}.jp-recommendations-feature-summary .gridicons-checkmark-circle{fill:#069e08}.jp-recommendations-feature-summary:last-child{border-bottom:none}.jp-recommendations-feature-summary__checkmark{align-content:center;align-items:center;display:flex}.jp-recommendations-feature-summary__display-name{align-items:center;display:flex;padding-right:12px}.jp-recommendations-feature-summary__cta button{width:100%}.jp-recommendations-feature-summary__cta a{text-align:center;width:100%}.jp-recommendations-feature-summary__actions{padding:8px}.jp-recommendations-sidebar-card{background:linear-gradient(180deg,#c5d9ed 115px,#fff 0);border-radius:8px;width:100%}.jp-recommendations-sidebar-card .dops-button{background:#069e08;border-color:#069e08;text-align:center;width:100%}.jp-recommendations-sidebar-card__illustration-container{text-align:center}.jp-recommendations-sidebar-card__illustration{background:#fff;border-radius:3px;box-shadow:0 0 24px rgba(0,0,0,.16);display:inline-flex;height:115px;justify-content:center;margin-top:24px;padding:8px;width:220px}.jp-recommendations-sidebar-card__content{padding:0 24px 24px}.jp-recommendations-sidebar-card__features{margin:32px 0 8px}.jp-recommendations-sidebar-card__features li{align-items:center;display:flex}.jp-recommendations-sidebar-card__features .gridicons-checkmark-circle{fill:#069e08;margin-left:8px}.jp-recommendations-one-click-restores h2{margin-top:32px}.jp-recommendations-one-click-restores p{margin:16px 0}.jp-recommendations-one-click-restores .jp-recommendations-one-click-restores__cta{margin-top:32px;text-align:center}.apps-badge{display:flex;margin:0;max-height:40px;max-width:135px;overflow:hidden}.apps-badge:first-child{margin-left:8px}.apps-badge img{-ms-interpolation-mode:nearest-neighbor;image-rendering:-moz-crisp-edges;image-rendering:-o-crisp-edges;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges;max-width:100%}.apps-badge.android-app-badge img{transform:scale(1.13) translate(7px,-5.1px);transform-origin:right}.jp-recommendations-sidebar-card__apps-badge{display:flex;margin-top:32px}.jp-recommendations-sidebar-card__apps-badge .apps-badge{width:50%}.jp-recommendations-product-card-upsell-no-price{background:#fff;border-radius:8px}.jp-recommendations-product-card-upsell-no-price img{margin-left:8px}.jp-recommendations-product-card-upsell-no-price h2{margin:0 0 24px}.jp-recommendations-product-card-upsell-no-price ul{margin:16px 0}.jp-recommendations-product-card-upsell-no-price li{align-items:center;display:flex}.jp-recommendations-product-card-upsell-no-price p{margin:0}.jp-recommendations-product-card-upsell-no-price .gridicons-checkmark-circle{fill:#069e08;margin-left:8px}.jp-recommendations-product-card-upsell-no-price .dops-button{background:#069e08;border-color:#069e08;margin:32px 0 0;text-align:center;width:100%}.jp-recommendations-product-card-upsell-no-price__padding{padding:24px}.jp-recommendations-product-card-upsell-no-price__header-chrome{background:#3582c4;border-top-left-radius:inherit;border-top-right-radius:inherit;color:#fff;padding:8px}.jp-recommendations-product-card-upsell{background:#fff;border-radius:8px}.jp-recommendations-product-card-upsell img{margin-left:8px}.jp-recommendations-product-card-upsell h1{margin-bottom:16px;margin-top:0}.jp-recommendations-product-card-upsell p{margin-bottom:32px;margin-top:16px}.jp-recommendations-product-card-upsell .dops-button{background:#069e08;border-color:#069e08;margin:32px 0 0;text-align:center;width:100%}.jp-recommendations-product-card-upsell .dops-button:hover{background:#007117;border-color:#007117}.jp-recommendations-product-card-upsell__padding{padding:24px}.jp-recommendations-product-card-upsell__header-chrome{background:#3582c4;border-top-left-radius:inherit;border-top-right-radius:inherit;color:#fff;display:flex;padding:8px}.jp-recommendations-product-card-upsell__price{align-items:center;display:flex}.jp-recommendations-product-card-upsell__raw-price h2{display:flex;margin:0}.jp-recommendations-product-card-upsell__currency-symbol{font-size:1.5rem;margin-top:-.25rem}.jp-recommendations-product-card-upsell__price-integer{font-size:3.375rem;font-weight:700;line-height:.7}.jp-recommendations-product-card-upsell__price-fraction{font-size:.75rem;margin-top:-.25rem}.jp-recommendations-product-card-upsell__billing-time-frame{margin-right:12px}.jp-recommendations-product-card-upsell__cta-button .gridicons-external{margin-right:.25rem}.jp-recommendations-summary{background:#e9eff5;border:1px solid #d5d5d5;box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);display:grid;grid-template-columns:57% 43%}@media(max-width:660px){.jp-recommendations-summary{display:flex;flex-direction:column}}.jp-recommendations-summary__content{background:#fff}.jp-recommendations-summary__content.isLoading{align-items:center;display:flex;justify-content:center;min-height:730px}.jp-recommendations-summary__configuration{margin:48px 48px 32px}@media(max-width:480px){.jp-recommendations-summary__configuration{margin:16px 16px 0}}.jp-recommendations-summary__configuration h2{margin:32px 0 16px}.jp-recommendations-summary__sidebar{border-right:1px solid #d5d5d5;padding:24px}@media(max-width:660px){.jp-recommendations-summary__sidebar{padding:0}}.jp-recommendations-summary__sidebar.isLoading{align-items:center;display:flex;justify-content:center;min-height:430px}.jp-recommendations-summary__more-features{align-items:flex-start;border-top:1px solid #dcdcde;display:flex;padding:40px 48px}@media(max-width:480px){.jp-recommendations-summary__more-features{padding:40px 16px}}.jp-recommendations-summary__more-features .gridicons-info-outline{fill:#787c82;flex:0 0 24px;margin-left:18px}.jp-recommendations-summary__more-features .gridicons-external{margin-right:.25rem}.jp-recommendations-summary__more-features>p{margin:1px 0 0}.jp-product-card{background:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);box-sizing:border-box;padding:30px 24px 45px;position:relative;width:100%}@media(min-width:661px){.jp-product-card{padding:40px 48px 60px}}@media(min-width:961px){.jp-product-card{padding-top:60px}}.jp-product-card__inner{display:flex;flex-direction:column;height:100%;max-width:400px}.jp-product-card__icon{display:none;height:16px;margin-bottom:24px}@media(min-width:961px){.jp-product-card__icon{display:block}}.jp-product-card__icon svg{height:100%;width:auto}.jp-product-card__title{color:#000;font-size:2rem;font-weight:700;margin:0 0 18px}.jp-product-card__description{color:#000;font-size:.9375rem;line-height:1.5;margin:0 0 22px}.jp-product-card__features{margin:0 0 30px}.jp-product-card__feature{align-items:center;color:#000;display:flex;margin-bottom:8px}.jp-product-card__feature svg{fill:#069e08;margin-left:10px}.jp-product-card__price{color:#000;display:flex;flex-direction:row;flex-wrap:wrap;margin-top:auto}.jp-product-card__raw-price{display:flex;font-size:3rem;margin:0 0 0 22px}.jp-product-card__raw-price--is-old-price{color:#a7aaad;position:relative}.jp-product-card__raw-price--is-old-price:after{background:#c9356e;border-radius:5px;content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.jp-product-card__currency-symbol{font-size:.5em;line-height:1.4;padding-left:1px}.jp-product-card__price-integer{font-size:inherit;font-weight:700;line-height:1}.jp-product-card__price-fraction{font-size:.35em;font-weight:700;line-height:1.7;padding-right:1px}.jp-product-card__price-description{color:#787c82;display:block;font-size:.875rem;letter-spacing:.2px;margin-bottom:32px}.jp-product-card__checkout{align-self:flex-start;font-size:1rem;padding-left:60px;padding-right:60px;text-align:center}.jp-product-card__checkout--primary,.jp-product-card__checkout--primary:focus,.jp-product-card__checkout--primary:hover{background:#000;border-color:#000;color:#fff}.jp-product-card__checkout--primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #000}.jp-product-card__checkout--secondary{background:transparent;border:2px solid #000;color:#000;transition:all .15s ease-in-out}.jp-product-card__checkout--secondary:focus,.jp-product-card__checkout--secondary:hover{background:#000;border-color:#000;color:#fff}.jp-product-card__checkout--secondary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #000}.jp-product-card__cta{align-items:center;background:#000;border-top-left-radius:4px;border-top-right-radius:4px;color:#fff;display:flex;font-size:.8125rem;font-weight:600;left:0;letter-spacing:.3px;padding:9px 10px;position:absolute;right:0;top:0}.jp-product-card__cta .gridicon{height:16px;margin-left:5px;width:16px}.jp-product-card--has-cta{padding-top:60px}.jp-product-card__media{align-self:center;display:none;height:auto;margin-top:36px;max-width:100%;width:auto}@media(min-width:481px){.jp-product-card__media{display:block}}@media(min-width:661px){.jp-product-card__media{min-width:240px}}@media(min-width:961px){.jp-product-card__media{margin-top:0}}@media(min-width:481px){.jp-product-card--has-media{display:block}}@media(min-width:961px){.jp-product-card--has-media{column-gap:26px;display:grid;grid-template-columns:55% 45%}}@media(min-width:1041px){.jp-product-card--has-media{grid-template-columns:auto auto}}.jp-product-card--has-media .jp-product-card__price{margin-top:0}.jp-product-description>*{margin-bottom:26px}@media(min-width:961px){.jp-product-description--split{column-gap:26px;display:grid;grid-template-columns:50% 50%}}@media(min-width:1041px){.jp-product-description--split{grid-template-columns:auto 410px}}.jp-product-description__introductory-pricing{color:#000;font-size:.875rem;letter-spacing:.1px;line-height:1.5;margin-bottom:10px;text-align:center}.jp-product-description__money-back-guarantee{text-align:center}.jp-product-description .jp-product-card__icon .vertical{height:150%}@media(max-width:960px){.jp-product-description{margin-left:auto;margin-right:auto;max-width:550px}}.jp-product-descriptions__loading{padding-top:48px}.plugin-dash-item p{font-size:var(--font-body-small)}.plugin-dash-item .dops-banner,.plugin-dash-item .plugin-dash-item__content,.plugin-dash-item .plugin-dash-item__section-header{margin-bottom:0;width:100%}.plugin-dash-item .dops-banner.dops-card{border-right-color:#3895ba;height:100%}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle{background-color:#3895ba;height:32px;width:32px}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle .gridicon{margin-bottom:0}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle .gridicon g{transform:none}@media(max-width:480px){.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon{display:none}.plugin-dash-item .dops-banner.dops-card .dops-banner__icons .dops-banner__icon-circle{display:block}}.plugin-dash-item .plugin-dash-item__content{align-items:center;display:flex;flex-direction:row;height:100%}.plugin-dash-item .plugin-dash-item__content .components-spinner{margin-top:0}.dops-tooltip.dops-popover .dops-popover__arrow{border-width:6px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow{border-bottom-color:#555;left:10px;top:4px}.dops-tooltip.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-bottom-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-error .dops-popover__arrow{border-bottom-color:#d94f4f}.dops-tooltip.dops-popover.is-bottom-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-warning .dops-popover__arrow{border-bottom-color:#f0b849}.dops-tooltip.dops-popover.is-bottom-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-bottom.is-success .dops-popover__arrow{border-bottom-color:#4ab866}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{border-top-color:#555;bottom:4px;left:10px}.dops-tooltip.dops-popover.is-top-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top-right .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-top .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-top-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-error .dops-popover__arrow{border-top-color:#d94f4f}.dops-tooltip.dops-popover.is-top-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-warning .dops-popover__arrow{border-top-color:#f0b849}.dops-tooltip.dops-popover.is-top-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top-right.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-top.is-success .dops-popover__arrow{border-top-color:#4ab866}.dops-tooltip.dops-popover.is-bottom .dops-popover__arrow,.dops-tooltip.dops-popover.is-top .dops-popover__arrow{margin-right:-6px}.dops-tooltip.dops-popover.is-left,.dops-tooltip.dops-popover.is-right{padding-top:0}.dops-tooltip.dops-popover.is-left .dops-popover__arrow,.dops-tooltip.dops-popover.is-right .dops-popover__arrow{margin-top:-6px}.dops-tooltip.dops-popover.is-left .dops-popover__arrow:before,.dops-tooltip.dops-popover.is-right .dops-popover__arrow:before{display:none}.dops-tooltip.dops-popover.is-left.is-error .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-error .dops-popover__arrow{border-left-color:#d94f4f}.dops-tooltip.dops-popover.is-left.is-warning .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-warning .dops-popover__arrow{border-left-color:#f0b849}.dops-tooltip.dops-popover.is-left.is-success .dops-popover__arrow,.dops-tooltip.dops-popover.is-right.is-success .dops-popover__arrow{border-left-color:#4ab866}.dops-tooltip.dops-popover.is-left .dops-popover__arrow{border-right-color:#555;margin-left:4px}.dops-tooltip.dops-popover.is-right .dops-popover__arrow{border-left-color:#555;margin-right:4px}.dops-tooltip.dops-popover .dops-popover__inner{background:#555;border:0;border-radius:2px;box-shadow:none;color:#fff;font-size:12px;padding:6px 10px;text-align:right}.dops-tooltip.dops-popover.is-error .dops-popover__inner{background:#d94f4f}.dops-tooltip.dops-popover.is-warning .dops-popover__inner{background:#f0b849}.dops-tooltip.dops-popover.is-success .dops-popover__inner{background:#4ab866}.dops-tooltip.dops-popover ul{list-style:none;margin:0;padding:0}.dops-tooltip.dops-popover ul li{border:0;font-size:11px;font-weight:100}.dops-tooltip__hr{background:#a2a2a2;margin:8px 0}.dops-chart{background-color:#fff;box-sizing:border-box;padding:8px 20px 8px 0;position:relative}.dops-chart .dops-chart__y-axis-markers{height:200px;left:0;position:absolute;right:0;top:8px}.dops-chart .dops-chart__y-axis-marker{border-top:1px solid #eee;height:1px;position:absolute;top:0;width:100%}.dops-chart__bar-marker{border-top:1px solid hsla(0,0%,93%,.1);height:1px;position:absolute;top:0;width:100%;z-index:1}.dops-chart .dops-chart__y-axis-marker.is-fifty,.dops-chart__bar-marker.is-fifty,.dops-chart__y-axis-label.is-fifty{top:50%}.dops-chart .dops-chart__y-axis-marker.is-zero,.dops-chart__bar-marker.is-zero,.dops-chart__y-axis-label.is-zero{top:100%}.dops-chart__y-axis{color:#888;float:left;font-size:11px;height:200px;margin-bottom:30px;padding:0 10px 0 20px;position:relative}.dops-chart__y-axis-label{left:20px;position:absolute;text-align:left;top:0}.dops-chart__y-axis-width-fix{color:hsla(0,0%,100%,0)}.dops-chart__x-axis{color:#555;font-size:0;min-height:18px;padding:5px 0;position:relative}.dops-chart__x-axis-label{display:inline-block;font-size:11px;position:absolute;text-align:center;vertical-align:top}.dops-chart__x-axis-label:before{background:#f6f6f6;background-image:linear-gradient(180deg,#f6f6f6 0,#d5d5d5);content:"";display:block;height:5px;margin-right:-.5px;position:absolute;right:50%;top:-4px;width:1px}.dops-chart__bars{display:-ms-flex;display:flex;font-size:0;overflow:hidden}.dops-chart__bar,.dops-chart__bars{height:200px;position:relative;text-align:center}.dops-chart__bar{display:inline-block;-ms-flex-grow:1;flex-grow:1;-ms-flex-shrink:1;flex-shrink:1}.dops-chart__bar.is-weekend{background-color:hsla(0,0%,93%,.5)}.dops-chart__bar:focus{background-color:rgba(240,130,30,.1)}.dops-chart__bar:hover{background-color:hsla(0,0%,93%,.3);cursor:pointer}.dops-chart__bar.is-selected{background-color:rgba(240,130,30,.1);cursor:default}.dops-chart__bar-section{background-color:#0087be;bottom:0;display:inline-block;left:16%;position:absolute;right:16%;top:0;z-index:2}.dops-chart__bar:hover .dops-chart__bar-section.is-bar{background-color:#3582c4}.dops-chart__bar.is-selected .dops-chart__bar-section.is-bar{background-color:#f0821e}.dops-chart__bar-section.is-spacer{background-color:hsla(0,0%,100%,0);z-index:0}.dops-chart__bar-section.is-ghost:after{background-image:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,93%,.5));bottom:0;content:"";display:block;height:40px;position:absolute;right:0;top:160px;width:100%;z-index:1}.dops-chart__bar:hover .dops-chart__bar-section.is-ghost:after{display:none}.dops-chart__bar-section-inner{background:#004069;bottom:0;left:23.33%;position:absolute;right:23.33%}.dops-chart__bar.is-selected .dops-chart__bar-section-inner{background-color:#d63638}.dops-chart__legend{margin-bottom:-8px}.dops-chart__legend:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-chart__legend .dops-chart__legend-options{color:#747474;float:left;font-size:11px;letter-spacing:.1em;list-style-type:none;margin:0;text-transform:uppercase}@media(max-width:480px){.dops-chart__legend .dops-chart__legend-options{width:100%}}.dops-chart__legend-option{display:inline;text-align:right}@media(max-width:480px){.dops-chart__legend-option{display:inline-block;width:50%}}.dops-chart__legend-label{display:inline-block;padding:12px 20px 10px 19px}.dops-chart__legend-label.is-selectable{cursor:pointer}.dops-chart__legend-label.is-selectable:focus,.dops-chart__legend-label.is-selectable:hover{color:tint(#3582c4,20%)}@media(max-width:480px){.dops-chart__legend-label{display:block}}.dops-chart__legend-option .dops-chart__legend-color{background:#0087be;border-radius:1px;display:inline-block;height:10px;margin:3px 8px 3px 5px;vertical-align:top;width:10px}@media(max-width:480px){.dops-chart__legend-option:first-child .dops-chart__legend-color{margin-right:2px}}.dops-chart__legend-color.is-dark-blue{background:#004069}.dops-chart__legend-option .dops-chart__legend-checkbox{float:none;margin:0;vertical-align:top}.dops-chart__empty{bottom:0;clear:both;font-size:14px;left:0;line-height:24px;position:absolute;right:0;text-align:center;top:0;z-index:1}.dops-chart__empty_notice{animation:appear .3s ease-in-out;background:#fff;border-radius:1px;box-shadow:0 0 0 1px hsla(0,0%,84%,.5),0 1px 2px #eee;box-sizing:border-box;font-size:14px;line-height:1.4285;margin-bottom:24px;padding:11px 24px;position:relative;top:97px}@media(min-width:661px){.dops-chart__empty_notice{font-size:inherit;padding:13px 48px}.dops-chart__empty_notice:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"";display:inline-block;font:normal 16px/1 Noticons;font-size:24px;line-height:1;margin:-12px -8px 0 0;position:absolute;right:20px;top:23px;vertical-align:middle}}.dops-chart__tooltip .dops-popover__inner{text-align:right;width:230px}.dops-chart__tooltip .dops-popover__inner ul{list-style:none;margin:0;padding:0}.dops-chart__tooltip .dops-popover__inner ul:after{clear:both;content:".";display:block;height:0;visibility:hidden}.dops-chart__tooltip .dops-popover__inner ul li{border:0;font-size:11px;font-weight:100;height:24px;letter-spacing:.1em;margin-bottom:0;text-transform:uppercase}.dops-chart__tooltip .dops-popover__inner ul li .dops-wrapper{clear:both;display:block;line-height:inherit;line-height:24px}.dops-chart__tooltip .dops-popover__inner ul li .value{color:#d5d5d5;float:left;min-width:22px;text-align:left}.dops-chart__tooltip .dops-popover__inner ul li .label{display:block;overflow:hidden;vertical-align:baseline;word-break:break-all}.dops-chart__tooltip .dops-popover__inner ul li .gridicon{margin-left:6px;margin-top:-3px;vertical-align:middle}.dops-chart__tooltip.is-streak{height:35px;margin-top:-5px}.dops-chart__tooltip.is-streak .dops-popover__arrow:before{right:85px;top:30px}.dops-chart__tooltip.is-streak .dops-popover__inner{position:relative;top:-10px;width:160px}.dops-chart__tooltip.is-streak .dops-popover__inner li{height:14px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label{float:right;text-align:center;width:100%}.rtl .dops-chart__tooltip.is-streak .dops-popover__inner li .label{font-size:11px}.dops-chart__tooltip.is-streak .dops-popover__inner li .label .post-count{font-weight:700}.dops-chart__tooltip.is-streak .dops-popover__inner li .value{float:none}.dops-chart__tooltip .dops-module-content-list-item.is-date-label{border-bottom:1px solid #5d5d5d;font-size:11px;font-weight:700;margin-bottom:2px;padding-bottom:2px;text-transform:uppercase}.dops-chart__tooltip .dops-module-content-list-item.is-published-item{height:19px}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .label{color:#d5d5d5;height:19px;letter-spacing:0;overflow:hidden;text-transform:none}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value{min-width:0;width:0}.dops-chart__tooltip .dops-module-content-list-item.is-published-item .value:before{background-image:linear-gradient(270deg,rgba(61,89,109,0) 0,rgba(61,89,109,.5),#3d596d);content:"";display:block;height:24px;position:relative;right:-30px;width:30px}.dash-security-bundle{display:flex;flex-direction:column;padding:32px}@media(min-width:661px){.dash-security-bundle{flex-direction:row}}.dash-security-bundle .dash-security-bundle--icon{align-items:flex-start;display:flex;margin-bottom:16px;margin-left:0;margin-top:16px}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--icon{align-items:center;margin-bottom:0;margin-left:32px;margin-top:0}}.dash-security-bundle .dash-security-bundle--content{display:flex;flex:1;flex-direction:column;justify-content:space-between}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--content{flex-direction:row}}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info{display:flex;flex-direction:column}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info h3{font-size:22px;font-weight:700;margin-bottom:0}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info p{font-size:14px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features,.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature{display:flex;flex-direction:row}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature img{width:24px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature p{font-weight:700}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-info .dash-security-bundle--content-info-features .dash-security-bundle--content-info-features-single-feature:not(:last-child){margin-left:16px}.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-cta{align-items:center;display:flex;flex-direction:row;margin-right:0;margin-top:16px}@media(min-width:661px){.dash-security-bundle .dash-security-bundle--content .dash-security-bundle--content-cta{margin-right:16px;margin-top:0}}#jp-plugin-container{min-height:100vh}body.dops-modal-showing{overflow:hidden}.dops-modal-wrapper{-webkit-overflow-scrolling:touch;background-color:rgba(0,0,0,.5);bottom:0;cursor:pointer;display:block;left:0;outline:0;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;text-align:center;top:0;transition:opacity .15s linear;z-index:1050}.dops-modal-wrapper:before{content:"";display:inline-block;height:100%;vertical-align:middle}.dops-modal-wrapper .dops-modal{background-color:#fff;clear:both;cursor:default;display:inline-block;margin:0;max-width:550px;position:relative;text-align:right;transition:all .5s;vertical-align:middle;width:100%;z-index:100}@media(min-width:481px){.dops-modal-wrapper .dops-modal{border-radius:5px;box-shadow:0 4px 20px rgba(0,0,0,.2);height:auto;margin:0 auto}}.jp-product-activated-label{color:#069e08;display:flex;font-weight:600;padding:0 0 8px}@media(min-width:961px){.jp-product-activated-label{justify-content:flex-end}}.jp-product-activated-label .gridicons-checkmark{margin-left:8px}@media(min-width:961px){.my-plan-card{display:flex;flex-flow:row nowrap;justify-content:space-between}}.my-plan-card__primary{display:flex;flex-flow:row nowrap;flex-grow:1}.my-plan-card__header{flex:1}.my-plan-card__title{color:#414141;font-size:1.25rem;font-weight:600;line-height:30px;margin:6px 0}.my-plan-card__tag-line{font-weight:400;line-height:18px;margin:0 0 24px}@media(min-width:961px){.my-plan-card__tag-line{margin-bottom:8px}}.my-plan-card__icon{flex:0 0 auto;height:64px;margin:8px 0 16px 20px;width:64px}@media(max-width:660px){.my-plan-card__icon{display:none}}.my-plan-card__icon img{height:100%;width:100%}.my-plan-card__secondary{align-items:center;display:flex;flex-flow:row wrap;justify-content:space-between;padding:8px 0 0;position:relative}@media(min-width:961px){.my-plan-card__secondary{align-items:flex-end;flex-flow:column nowrap;justify-content:center;padding:0 24px 0 0}}.my-plan-card__secondary:before{border-top:1px solid #c3c4c7;content:"";left:-16px;position:absolute;right:-16px;top:0}@media(min-width:481px){.my-plan-card__secondary:before{left:-24px;right:-24px}}@media(min-width:961px){.my-plan-card__secondary:before{content:none}}.has-action-only .my-plan-card__secondary{justify-content:center;padding-top:0}.has-action-only .my-plan-card__secondary:before{content:none}.my-plan-card__details{color:#888;padding-top:8px}@media(min-width:481px){.my-plan-card__details{white-space:nowrap}}@media(min-width:961px){.my-plan-card__details{padding-top:0}}.my-plan-card__details.is-error{color:#d94f4f}.my-plan-card__action{padding-top:8px;white-space:nowrap}.has-action-only .my-plan-card__action{padding-top:0}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-right:5px}.notices-list{overflow:hidden}.notices-list.is-pinned{position:fixed;top:79px;width:calc(100% - 336px);z-index:z-index("root",".notices-list.is-pinned")}.notices-list.is-pinned .notice{z-index:z-index("root",".notices-list.is-pinned .notice")}.notices-list__whitespace{display:block;height:71px;width:100%}@keyframes appear{0%{opacity:0}to{opacity:1}}.global-notices{bottom:0;left:0;pointer-events:none;position:fixed;right:0;text-align:left;top:auto;z-index:179}@media(min-width:661px){.global-notices{bottom:auto;left:16px;max-width:calc(100% - 68px);right:auto;top:63px}}@media(min-width:961px){.global-notices{left:24px;max-width:calc(100% - 208px);top:71px}}@media(min-width:1041px){.global-notices{left:32px;max-width:calc(100% - 224px)}}.global-notices .dops-notice{border-radius:0;box-shadow:0 2px 5px rgba(0,0,0,.2),0 0 56px rgba(0,0,0,.15);flex-wrap:nowrap;margin-bottom:0;pointer-events:auto;text-align:right}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0}@media(min-width:661px){.global-notices .dops-notice{border-radius:3px;display:flex;margin-bottom:24px;overflow:hidden}.global-notices .dops-notice .dops-notice__icon-wrapper{border-radius:0 3px 3px 0}.global-notices .dops-notice a.dops-notice__action{font-size:14px;padding:13px 16px}}.global-notices .dops-notice__dismiss{flex-shrink:0}@media(min-width:661px){.global-notices .dops-notice__dismiss{padding:13px 16px 0}}.reconnect__modal__body{color:#2e4453;font-size:rem(14px);margin:0;padding:rem(24px) rem(32px);text-align:center}.reconnect__modal__body h2{color:#2e4453;font-size:rem(32px);font-weight:300;margin:rem(32px) 0 rem(24px)}.reconnect__modal__body h4{color:#668eaa;font-size:rem(16px);font-weight:400;line-height:1.5em;margin:rem(16px) rem(24px) 0}.reconnect__modal-actions{margin:2rem 0}.reconnect__modal-actions .reconnect__modal-cancel{margin-left:1em}.jp-license-activation-screen-controls{background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-controls h1{font-size:44px;font-weight:700}.jp-license-activation-screen-controls p{font-size:16px}.jp-license-activation-screen-controls label{font-size:16px;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-with-error label,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field label{font-size:16px;font-weight:600}.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 input.components-text-control__input{border-radius:4px;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 #787c82}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input{border:1px solid #d63639}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error{align-items:start;color:#d63639;display:flex;flex-direction:row}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error svg{fill:#d63639;margin-left:4px;min-width:24px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error span{font-size:16px}.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:#000;border-radius:4px;color:#fff;display:flex;font-size:16px;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:#2c3338;color:#fff}.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:#2c3338;border:1px solid #fff;color:#fff}.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:#dcdcde;color:#a7aaad}.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%}.jp-license-activation-screen-illustration{align-items:center;background:#f9f9f6;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}.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}.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:#000;border-radius:4px;color:#fff;font-size:16px;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:#2c3338;color:#fff}.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:#2c3338;border:1px solid #fff;color:#fff}.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:#dcdcde;color:#a7aaad}.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{background:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-success-info h1{font-size:44px;font-weight:700}.jp-license-activation-screen-success-info p{font-size:16px}.jp-license-activation-screen-success-info label{font-size:16px;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}}.jp-license-activation-screen{border-radius:4px;box-shadow:0 4px 24px 0 #00000026;display:flex;flex-direction:column;min-height:540px;overflow:hidden}@media screen and (min-width:780px){.jp-license-activation-screen{flex-direction:row}}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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 #069e08;border-radius:4px;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:2px}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(-8px)}.jp-cut:after{color:#069e08;content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-contextualized-connection{background:#fff;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08);display:flex;flex-direction:column}.jp-contextualized-connection__content{align-items:center;display:flex;flex-direction:column;margin:auto;max-width:860px;padding:2rem;text-align:center;width:100%}@media(min-width:782px){.jp-contextualized-connection__content{padding:4rem}}.jp-contextualized-connection__content h2{font-size:36px;margin-bottom:1.5rem}.jp-contextualized-connection__content p{font-size:16px;margin-bottom:2rem}.jp-contextualized-connection__logo img{max-width:100%}.jp-contextualized-connection__tos{color:#787c82;font-size:14px;margin-top:2rem;max-width:400px}.jp-contextualized-connection__tos a{color:#787c82;font-weight:700;text-decoration:underline}.jp-contextualized-connection .jp-action-button--button.is-primary,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary{background-color:#000;justify-content:center}.jp-contextualized-connection .jp-action-button--button.is-primary:active:not(:disabled),.jp-contextualized-connection .jp-action-button--button.is-primary:hover:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:active:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:hover:not(:disabled){background:#2c3338;color:#fff}.jp-contextualized-connection .jp-action-button--button.is-primary:focus:not(:disabled),.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:focus:not(:disabled){box-shadow:inset 0 0 0 1px #fff,0 0 0 2px #000}.jp-contextualized-connection .jp-action-button--button.is-primary.disabled,.jp-contextualized-connection .jp-action-button--button.is-primary:disabled,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary.disabled,.jp-contextualized-connection .jp-contextualized-connection__button.is-primary:disabled{background:#dcdcde;pointer-events:none}.jp-contextualized-connection__footer{background-color:#f9f9f6;font-size:16px;padding:4rem;width:100%}.jp-contextualized-connection__footer-row{grid-gap:4rem;display:grid;grid-template-columns:auto}@media(min-width:782px){.jp-contextualized-connection__footer-row{grid-gap:3rem;grid-template-columns:repeat(3,1fr)}}.jp-contextualized-connection__footer-column h3{margin-top:0}.jp-contextualized-connection__footer-bottom-title{color:#000;font-size:20px;margin-top:4rem;text-align:center}.jp-contextualized-connection__feature-list{list-style-type:none;padding:0}.jp-contextualized-connection__feature-list li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:#000;margin-bottom:9px;padding-right:30px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.asset.php b/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.asset.php
new file mode 100644
index 00000000..10a10617
--- /dev/null
+++ b/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'c5e875fc5f3df19b6cfc768768de0204'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js b/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js
index 837eac34..974810f7 100644
--- a/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js
+++ b/plugins/jetpack/_inc/build/carousel/jetpack-carousel.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jetpackCarouselStrings, DocumentTouch */
-jQuery(document).ready(function(e){var t,a,i,o,s,r,n,l,c,d,p,u,m,h,f,g,j,v,w,_=110,x=e("body").css("overflow"),b=e("html").css("overflow"),y="";window.innerWidth<=760&&(_=Math.round(window.innerWidth/760*110))<40&&("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&(_=0),void 0===Date.now&&(Date.now=function(){return(new Date).getTime()});var k=function(e){switch(e.which){case 38:e.preventDefault(),o.scrollTop(o.scrollTop()-100);break;case 40:e.preventDefault(),o.scrollTop(o.scrollTop()+100);break;case 39:e.preventDefault(),i.jp_carousel("next");break;case 37:case 8:e.preventDefault(),i.jp_carousel("previous");break;case 27:e.preventDefault(),o.jp_carousel("close")}},S=function(){clearTimeout(d),d=setTimeout(function(){i.jp_carousel("slides").jp_carousel("fitSlide",!0),i.jp_carousel("updateSlidePositions",!0),i.jp_carousel("fitMeta",!0)},200)},C=function(){e("a img[data-attachment-id]").each(function(){var t=e(this).parent();if(!t.parent(".gallery-icon").length&&void 0!==e(t).attr("href")){var a=!1;e(t).attr("href").split("?")[0]===e(this).attr("data-orig-file").split("?")[0]&&1===Number(jetpackCarouselStrings.single_image_gallery_media_file)&&(a=!0),e(t).attr("href")===e(this).attr("data-permalink")&&(a=!0),a&&(e(t).addClass("single-image-gallery"),e(t).data("carousel-extra",{blog_id:Number(jetpackCarouselStrings.blog_id)}))}})},I={testForData:function(t){return!(!(t=e(t)).length||!t.data("carousel-extra"))},testIfOpened:function(){return!(void 0===i||void 0===i.opened||!i.opened)},openOrSelectSlide:function(t){e(this).jp_carousel("testIfOpened")?i.jp_carousel("selectSlideAtIndex",t):e(this).jp_carousel("open",{start_index:t})},open:function(d){var m={items_selector:".gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id]",start_index:0},h=e(this).data("carousel-extra");if(h&&(function(){if(!t){t=e("<div></div>").addClass("jp-carousel-overlay").css({position:"fixed",top:0,right:0,bottom:0,left:0});var d='<a class="jp-carousel-commentlink" href="#">'+jetpackCarouselStrings.comment+"</a>";Number(jetpackCarouselStrings.is_logged_in),d=e('<div class="jp-carousel-buttons">'+d+"</div>"),c=e('<h2 itemprop="caption description"></h2>'),p=e('<div class="jp-carousel-photo-info"></div>').append(c),(f=e("<div></div>").addClass("jp-carousel-image-meta").css({float:"right","margin-top":"20px",width:"250px"})).append(d).append("<ul class='jp-carousel-image-exif' style='display:none;'></ul>").append("<a class='jp-carousel-image-download' style='display:none;'></a>").append("<div class='jp-carousel-image-map' style='display:none;'></div>"),g=e("<div></div>").addClass("jp-carousel-titleanddesc").css({width:"100%","margin-top":f.css("margin-top")});var m='<div id="jp-carousel-comment-form-container">';jetpackCarouselStrings.local_comments_commenting_as&&jetpackCarouselStrings.local_comments_commenting_as.length&&(1!==Number(jetpackCarouselStrings.is_logged_in)&&1===Number(jetpackCarouselStrings.comment_registration)?m+='<div id="jp-carousel-comment-form-commenting-as">'+jetpackCarouselStrings.local_comments_commenting_as+"</div>":(m+='<form id="jp-carousel-comment-form">',m+='<textarea name="comment" class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" id="jp-carousel-comment-form-comment-field" placeholder="'+jetpackCarouselStrings.write_comment+'"></textarea>',m+='<div id="jp-carousel-comment-form-submit-and-info-wrapper">',m+='<div id="jp-carousel-comment-form-commenting-as">'+jetpackCarouselStrings.local_comments_commenting_as+"</div>",m+='<input type="submit" name="submit" class="jp-carousel-comment-form-button" id="jp-carousel-comment-form-button-submit" value="'+jetpackCarouselStrings.post_comment+'" />',m+='<span id="jp-carousel-comment-form-spinner">&nbsp;</span>',m+='<div id="jp-carousel-comment-post-results"></div>',m+="</div>",m+="</form>")),j=e(m+="</div>").css({width:"100%","margin-top":"20px",color:"#999"}),a=e("<div></div>").addClass("jp-carousel-comments").css({width:"100%",bottom:"10px","margin-top":"20px"});var h=e('<div id="jp-carousel-comments-loading"><span>'+jetpackCarouselStrings.loading_comments+"</span></div>").css({width:"100%",bottom:"10px","margin-top":"20px"}),w=e(window).width()-2*_-(f.width()+40);w+="px",v=e("<div></div>").addClass("jp-carousel-left-column-wrapper").css({width:Math.floor(w)}).append(g).append(j).append(a).append(h);var x=e("<div></div>").addClass("jp-carousel-fadeaway");n=e("<div></div>").addClass("jp-carousel-info").css({top:Math.floor(e(window).height()/100*85),left:_,right:_}).append(p).append(f),window.innerWidth<=760?(p.remove().insertAfter(g),n.prepend(v)):n.append(v);var b=e(window).height()-parseInt(n.css("top"),10)+"px";s=e("<div><span></span></div>").addClass("jp-carousel-next-button").css({right:"15px"}).hide(),r=e("<div><span></span></div>").addClass("jp-carousel-previous-button").css({left:0}).hide(),s.add(r).css({position:"fixed",top:"40px",bottom:b,width:_}),i=e("<div></div>").addClass("jp-carousel").css({position:"absolute",top:0,bottom:b,left:0,right:0}),u=e('<div class="jp-carousel-close-hint"><span>&times;</span></div>').css({position:"fixed"}),o=e("<div></div>").addClass("jp-carousel-wrap").addClass("jp-carousel-transitions"),"white"===jetpackCarouselStrings.background_color&&o.addClass("jp-carousel-light"),o.attr("itemscope",""),o.attr("itemtype","https://schema.org/ImageGallery"),o.css({position:"fixed",top:0,right:0,bottom:0,left:0,"z-index":2147483647,"overflow-x":"hidden","overflow-y":"auto",direction:"ltr"}).hide().append(t).append(i).append(x).append(n).append(s).append(r).append(u).appendTo(e("body")).click(function(t){var a=e(t.target),s=a.parents("div.jp-carousel-wrap"),r=s.data("carousel-extra"),l=s.find("div.selected").data("attachment-id");if(r=r||[],a.is(i)||a.parents().add(a).is(u))o.jp_carousel("close");else if(a.hasClass("jp-carousel-commentlink"))t.preventDefault(),t.stopPropagation(),e(window).unbind("keydown",k),o.animate({scrollTop:parseInt(n.position().top,10)},"fast"),e("#jp-carousel-comment-form-submit-and-info-wrapper").slideDown("fast"),e("#jp-carousel-comment-form-comment-field").focus();else if(a.hasClass("jp-carousel-comment-login")){var c=jetpackCarouselStrings.login_url+"%23jp-carousel-"+l;window.location.href=c}else if(a.parents("#jp-carousel-comment-form-container").length){var d=e("#jp-carousel-comment-form-comment-field").blur(function(){e(window).bind("keydown",k)}).focus(function(){e(window).unbind("keydown",k)}),p=e("#jp-carousel-comment-form-email-field").blur(function(){e(window).bind("keydown",k)}).focus(function(){e(window).unbind("keydown",k)}),m=e("#jp-carousel-comment-form-author-field").blur(function(){e(window).bind("keydown",k)}).focus(function(){e(window).unbind("keydown",k)}),h=e("#jp-carousel-comment-form-url-field").blur(function(){e(window).bind("keydown",k)}).focus(function(){e(window).unbind("keydown",k)});if(d&&d.attr("id")===a.attr("id"))e(window).unbind("keydown",k),e("#jp-carousel-comment-form-submit-and-info-wrapper").slideDown("fast");else if(a.is('input[type="submit"]')){t.preventDefault(),t.stopPropagation(),e("#jp-carousel-comment-form-spinner").spin("small","white");var f={action:"post_attachment_comment",nonce:jetpackCarouselStrings.nonce,blog_id:r.blog_id,id:l,comment:d.val()};if(!f.comment.length)return void i.jp_carousel("postCommentError",{field:"jp-carousel-comment-form-comment-field",error:jetpackCarouselStrings.no_comment_text});if(1!==Number(jetpackCarouselStrings.is_logged_in)&&(f.email=p.val(),f.author=m.val(),f.url=h.val(),1===Number(jetpackCarouselStrings.require_name_email))){if(!f.email.length||!f.email.match("@"))return void i.jp_carousel("postCommentError",{field:"jp-carousel-comment-form-email-field",error:jetpackCarouselStrings.no_comment_email});if(!f.author.length)return void i.jp_carousel("postCommentError",{field:"jp-carousel-comment-form-author-field",error:jetpackCarouselStrings.no_comment_author})}e.ajax({type:"POST",url:jetpackCarouselStrings.ajaxurl,data:f,dataType:"json",success:function(t){"approved"===t.comment_status?e("#jp-carousel-comment-post-results").slideUp("fast").html('<span class="jp-carousel-comment-post-success">'+jetpackCarouselStrings.comment_approved+"</span>").slideDown("fast"):"unapproved"===t.comment_status?e("#jp-carousel-comment-post-results").slideUp("fast").html('<span class="jp-carousel-comment-post-success">'+jetpackCarouselStrings.comment_unapproved+"</span>").slideDown("fast"):e("#jp-carousel-comment-post-results").slideUp("fast").html('<span class="jp-carousel-comment-post-error">'+jetpackCarouselStrings.comment_post_error+"</span>").slideDown("fast"),i.jp_carousel("clearCommentTextAreaValue"),i.jp_carousel("getComments",{attachment_id:l,offset:0,clear:!0}),e("#jp-carousel-comment-form-button-submit").val(jetpackCarouselStrings.post_comment),e("#jp-carousel-comment-form-spinner").spin(!1)},error:function(){i.jp_carousel("postCommentError",{field:"jp-carousel-comment-form-comment-field",error:jetpackCarouselStrings.comment_post_error})}})}}else a.parents(".jp-carousel-info").length||o.jp_carousel("next")}).bind("jp_carousel.afterOpen",function(){e(window).bind("keydown",k),e(window).bind("resize",S),i.opened=!0,S()}).bind("jp_carousel.beforeClose",function(){var t=e(window).scrollTop();e(window).unbind("keydown",k),e(window).unbind("resize",S),e(window).scrollTop(t),e(".jp-carousel-previous-button").hide(),e(".jp-carousel-next-button").hide(),e("html").css("height","")}).bind("jp_carousel.afterClose",function(){window.location.hash&&history.back&&history.back(),y="",i.opened=!1}).on("transitionend.jp-carousel ",".jp-carousel-slide",function(t){if("transform"===t.originalEvent.propertyName){var a=(Date.now()-l)/1e3/t.originalEvent.elapsedTime;o.off("transitionend.jp-carousel"),a>=2&&e(".jp-carousel-transitions").removeClass("jp-carousel-transitions")}}),e(".jp-carousel-wrap").touchwipe({wipeLeft:function(e){e.preventDefault(),i.jp_carousel("next")},wipeRight:function(e){e.preventDefault(),i.jp_carousel("previous")},preventDefaultEvents:!1}),s.add(r).click(function(e){e.preventDefault(),e.stopPropagation(),s.is(this)?i.jp_carousel("next"):i.jp_carousel("previous")})}}(),!i.jp_carousel("testIfOpened")))return x=e("body").css("overflow"),e("body").css("overflow","hidden"),b=e("html").css("overflow"),e("html").css("overflow","hidden"),w=e(window).scrollTop(),o.data("carousel-extra",h),this.each(function(){var t=e(this);d&&e.extend(m,d),-1===m.start_index&&(m.start_index=0),o.trigger("jp_carousel.beforeOpen").fadeIn("fast",function(){o.trigger("jp_carousel.afterOpen"),i.jp_carousel("initSlides",t.find(m.items_selector),m.start_index).jp_carousel("selectSlideAtIndex",m.start_index)}),i.html("")})},selectSlideAtIndex:function(e){var t=this.jp_carousel("slides"),a=t.eq(e);return 0===a.length&&(a=t.eq(0)),i.jp_carousel("selectSlide",a,!1),this},close:function(){return e("body").css("overflow",x),e("html").css("overflow",b),this.jp_carousel("clearCommentTextAreaValue"),o.trigger("jp_carousel.beforeClose").fadeOut("fast",function(){o.trigger("jp_carousel.afterClose"),e(window).scrollTop(w)})},next:function(){this.jp_carousel("previousOrNext","nextSlide")},previous:function(){this.jp_carousel("previousOrNext","prevSlide")},previousOrNext:function(e){if(!this.jp_carousel("hasMultipleImages"))return!1;var t=i.jp_carousel(e);t&&(o.animate({scrollTop:0},"fast"),this.jp_carousel("clearCommentTextAreaValue"),this.jp_carousel("selectSlide",t))},selectedSlide:function(){return this.find(".selected")},setSlidePosition:function(e){return l=Date.now(),this.css({"-webkit-transform":"translate3d("+e+"px,0,0)","-moz-transform":"translate3d("+e+"px,0,0)","-ms-transform":"translate("+e+"px,0)","-o-transform":"translate("+e+"px,0)",transform:"translate3d("+e+"px,0,0)"})},updateSlidePositions:function(e){var t=this.jp_carousel("selectedSlide"),a=i.width(),o=t.width(),s=i.jp_carousel("prevSlide"),r=i.jp_carousel("nextSlide"),n=s.prev(),l=r.next(),c=Math.floor(.5*(a-o));t.jp_carousel("setSlidePosition",c).show(),i.jp_carousel("fitInfo",e),1===(h.is(t.prevAll())?1:-1)?(l.is(s)||l.jp_carousel("setSlidePosition",a+r.width()).show(),n.is(r)||n.jp_carousel("setSlidePosition",-n.width()-o).show()):l.is(s)||l.jp_carousel("setSlidePosition",a+o).show(),s.jp_carousel("setSlidePosition",Math.floor(-s.width()+.75*_)).show(),r.jp_carousel("setSlidePosition",Math.ceil(a-.75*_)).show()},selectSlide:function(t,a){h=this.find(".selected").removeClass("selected");var s,r,n=i.jp_carousel("slides").css({position:"fixed"}),l=e(t).addClass("selected").css({position:"relative"}),d=l.data("attachment-id"),p=i.jp_carousel("prevSlide"),u=i.jp_carousel("nextSlide"),m=p.prev(),f=u.next();i.jp_carousel("loadFullImage",l),c.hide(),0===u.length&&n.length<=2?e(".jp-carousel-next-button").hide():e(".jp-carousel-next-button").show(),0===p.length&&n.length<=2?e(".jp-carousel-previous-button").hide():e(".jp-carousel-previous-button").show(),s=l.add(p).add(m).add(u).add(f).jp_carousel("loadSlide"),n.not(s).hide(),i.jp_carousel("updateSlidePositions",a),o.trigger("jp_carousel.selectSlide",[l]),i.jp_carousel("getTitleDesc",{title:l.data("title"),desc:l.data("desc")});var g=l.data("image-meta");i.jp_carousel("updateExif",g),i.jp_carousel("updateFullSizeLink",l),i.jp_carousel("updateMap",g),i.jp_carousel("testCommentsOpened",l.data("comments-opened")),i.jp_carousel("getComments",{attachment_id:d,offset:0,clear:!0}),e("#jp-carousel-comment-post-results").slideUp(),l.data("caption")?((r=e("<div />").text(l.data("caption")).html())===e("<div />").text(l.data("title")).html()&&e(".jp-carousel-titleanddesc-title").fadeOut("fast").empty(),r===e("<div />").text(l.data("desc")).html()&&e(".jp-carousel-titleanddesc-desc").fadeOut("fast").empty(),c.html(l.data("caption")).fadeIn("slow")):c.fadeOut("fast").empty(),jetpackCarouselStrings.stats&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+jetpackCarouselStrings.stats+"&post="+encodeURIComponent(d)+"&rand="+Math.random()),e(u).add(p).each(function(){i.jp_carousel("loadFullImage",e(this))}),window.location.hash=y="#jp-carousel-"+d},slides:function(){return this.find(".jp-carousel-slide")},slideDimensions:function(){return{width:e(window).width()-2*_,height:Math.floor(e(window).height()/100*85-60)}},loadSlide:function(){return this.each(function(){var t=e(this);t.find("img").one("load",function(){t.jp_carousel("fitSlide",!1)})})},bestFit:function(){var e,t,a=i.jp_carousel("slideDimensions"),o=this.jp_carousel("originalDimensions"),s=o.width/o.height,r=1,n=1;return o.width>a.width&&(r=a.width/o.width),o.height>a.height&&(n=a.height/o.height),r<n?(e=a.width,t=Math.floor(e/s)):n<r?(t=a.height,e=Math.floor(t*s)):(e=o.width,t=o.height),{width:e,height:t}},fitInfo:function(){var e=this.jp_carousel("selectedSlide").jp_carousel("bestFit");return p.css({left:Math.floor(.5*(n.width()-e.width)),width:Math.floor(e.width)}),this},fitMeta:function(t){var a={top:Math.floor(e(window).height()/100*85+5)+"px"},i={width:n.width()-(f.width()+80)+"px"};t?(n.animate(a),v.animate(i)):(n.animate(a),v.css(i))},fitSlide:function(){return this.each(function(){var t=e(this),a=t.jp_carousel("bestFit"),o=i.jp_carousel("slideDimensions");a.left=0,a.top=Math.floor(.5*(o.height-a.height))+40,t.css(a)})},texturize:function(t){return t=(t=(t=(t=""+t).replace(/'/g,"&#8217;").replace(/&#039;/g,"&#8217;").replace(/[\u2019]/g,"&#8217;")).replace(/"/g,"&#8221;").replace(/&#034;/g,"&#8221;").replace(/&quot;/g,"&#8221;").replace(/[\u201D]/g,"&#8221;")).replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g,'$1="$2"'),e.trim(t)},initSlides:function(t,a){t.length<2?e(".jp-carousel-next-button, .jp-carousel-previous-button").hide():e(".jp-carousel-next-button, .jp-carousel-previous-button").show(),t.each(function(){var t,a=e(this),o=a.data("orig-size")||"",s=i.jp_carousel("slideDimensions"),r=o.split(","),n=a.data("medium-file")||"",l=a.data("large-file")||"";o={width:parseInt(r[0],10),height:parseInt(r[1],10)},t=a.data("orig-file"),t=i.jp_carousel("selectBestImageSize",{orig_file:t,orig_width:o.width,orig_height:o.height,max_width:s.width,max_height:s.height,medium_file:n,large_file:l}),e(this).data("gallery-src",t)}),0!==a&&(e("<img/>")[0].src=e(t[a]).data("gallery-src"));var o=t.first().closest(".tiled-gallery.type-rectangular").length>0;return t.each(function(t){var s=e(this),r=s.data("attachment-id")||0,n=s.data("comments-opened")||0,l=s.data("image-meta")||{},c=s.data("orig-size")||"",d={width:s[0].naturalWidth,height:s[0].naturalHeight},p=s.data("image-title")||"",u=s.data("image-description")||"",m=s.parents(".gallery-item").find(".gallery-caption").html()||"",h=s.data("gallery-src")||"",f=s.data("medium-file")||"",g=s.data("large-file")||"",j=s.data("orig-file")||"",v=s.parents("div.tiled-gallery-item").find("div.tiled-gallery-caption").html();if(v&&(m=v),r&&c.length){p=i.jp_carousel("texturize",p),u=i.jp_carousel("texturize",u),m=i.jp_carousel("texturize",m);var w=e("<img/>").attr("src","data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7").css("width","100%").css("height","100%"),_=e('<div class="jp-carousel-slide" itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"></div>').hide().css({left:t<a?-1e3:i.width()}).append(w).appendTo(i).data("src",h).data("title",p).data("desc",u).data("caption",m).data("attachment-id",r).data("permalink",s.parents("a").attr("href")).data("orig-size",c).data("comments-opened",n).data("image-meta",l).data("medium-file",f).data("large-file",g).data("orig-file",j).data("thumb-size",d);o&&_.data("preview-image",s.attr("src")).css({"background-image":'url("'+s.attr("src")+'")',"background-size":"100% 100%","background-position":"center center"}),_.jp_carousel("fitSlide",!1)}}),this},selectBestImageSize:function(e){if("object"!=typeof e&&(e={}),void 0===e.orig_file)return"";if(void 0===e.orig_width||void 0===e.max_width)return e.orig_file;if(void 0===e.medium_file||void 0===e.large_file)return e.orig_file;var t=document.createElement("a");t.href=e.large_file;var a=/^i[0-2].wp.com$/i.test(t.hostname),o=i.jp_carousel("getImageSizeParts",e.medium_file,e.orig_width,a),s=i.jp_carousel("getImageSizeParts",e.large_file,e.orig_width,a),r=parseInt(s[0],10),n=parseInt(s[1],10),l=parseInt(o[0],10),c=parseInt(o[1],10);if(e.orig_max_width=e.max_width,e.orig_max_height=e.max_height,void 0!==window.devicePixelRatio&&window.devicePixelRatio>1&&(e.max_width=e.max_width*window.devicePixelRatio,e.max_height=e.max_height*window.devicePixelRatio),r>=e.max_width||n>=e.max_height)return e.large_file;if(l>=e.max_width||c>=e.max_height)return e.medium_file;if(a){var d=e.large_file.lastIndexOf("?"),p=e.large_file;return-1!==d&&(p=e.large_file.substring(0,d),(e.orig_width>e.max_width||e.orig_height>e.max_height)&&(p+="?fit="+e.orig_max_width+"%2C"+e.orig_max_height)),p}return e.orig_file},getImageSizeParts:function(e,t,a){var i=a?e.replace(/.*=([\d]+%2C[\d]+).*$/,"$1"):e.replace(/.*-([\d]+x[\d]+)\..+$/,"$1"),o=i!==e?a?i.split("%2C"):i.split("x"):[t,0];return"9999"===o[0]&&(o[0]="0"),"9999"===o[1]&&(o[1]="0"),o},originalDimensions:function(){var t=e(this).data("orig-size").split(",");return{width:parseInt(t[0],10),height:parseInt(t[1],10)}},format:function(e){if("object"!=typeof e&&(e={}),e.text&&void 0!==e.text)return e.replacements&&void 0!==e.replacements?e.text.replace(/{(\d+)}/g,function(t,a){return void 0!==e.replacements[a]?e.replacements[a]:t}):e.text},shutterSpeed:function(e){return e>=1?Math.round(10*e)/10+"s":"1/"+Math.round(1/e)+"s"},parseTitleDesc:function(e){return!e.match(" ")&&e.match("_")?"":e},getTitleDesc:function(t){var a,o,s="",r="";(o=e("div.jp-carousel-titleanddesc","div.jp-carousel-wrap")).hide(),s=i.jp_carousel("parseTitleDesc",t.title)||"",a=i.jp_carousel("parseTitleDesc",t.desc)||"",(s.length||a.length)&&(e("<div />").html(s).text()===e("<div />").html(a).text()&&(s=""),r=s.length?'<div class="jp-carousel-titleanddesc-title">'+s+"</div>":"",r+=a.length?'<div class="jp-carousel-titleanddesc-desc">'+a+"</div>":"",o.html(r).fadeIn("slow")),e("div#jp-carousel-comment-form-container").css("margin-top","20px"),e("div#jp-carousel-comments-loading").css("margin-top","20px")},updateExif:function(t){if(!t||1!==Number(jetpackCarouselStrings.display_exif))return!1;var a=e("<ul class='jp-carousel-image-exif'></ul>");e.each(t,function(t,o){if(0!==parseFloat(o)&&o.length&&-1!==e.inArray(t,e.makeArray(jetpackCarouselStrings.meta_data))){switch(t){case"focal_length":o+="mm";break;case"shutter_speed":o=i.jp_carousel("shutterSpeed",o);break;case"aperture":o="f/"+o}a.append("<li><h5>"+jetpackCarouselStrings[t]+"</h5>"+o+"</li>")}}),e("div.jp-carousel-image-meta ul.jp-carousel-image-exif").replaceWith(a)},updateFullSizeLink:function(t){if(!t||!t.data)return!1;var a,o=t.data("orig-size").split(","),s=document.createElement("a");s.href=t.data("src").replace(/\?.+$/,""),a=null!==s.hostname.match(/^i[\d]{1}.wp.com$/i)?s.href:t.data("orig-file").replace(/\?.+$/,"");var r=e("<a>"+i.jp_carousel("format",{text:jetpackCarouselStrings.download_original,replacements:o})+"</a>").addClass("jp-carousel-image-download").attr("href",a).attr("target","_blank");e("div.jp-carousel-image-meta a.jp-carousel-image-download").replaceWith(r)},updateMap:function(t){if(t.latitude&&t.longitude&&1===Number(jetpackCarouselStrings.display_geo)){var a=t.latitude,i=t.longitude,o=e("div.jp-carousel-image-meta","div.jp-carousel-wrap"),s="&scale=2&style=feature:all|element:all|invert_lightness:true|hue:0x0077FF|saturation:-50|lightness:-5|gamma:0.91";e("<div></div>").addClass("jp-carousel-image-map").html('<img width="154" height="154" src="https://maps.googleapis.com/maps/api/staticmap?\t\t\t\t\t\t\tcenter='+a+","+i+"&\t\t\t\t\t\t\tzoom=8&\t\t\t\t\t\t\tsize=154x154&\t\t\t\t\t\t\tsensor=false&\t\t\t\t\t\t\tmarkers=size:medium%7Ccolor:blue%7C"+a+","+i+s+'" class="gmap-main" />\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="gmap-topright"><div class="imgclip"><img width="175" height="154" src="https://maps.googleapis.com/maps/api/staticmap?\t\t\t\t\t\t\tcenter='+a+","+i+"&\t\t\t\t\t\t\tzoom=3&\t\t\t\t\t\t\tsize=175x154&\t\t\t\t\t\t\tsensor=false&\t\t\t\t\t\t\tmarkers=size:small%7Ccolor:blue%7C"+a+","+i+s+'"c /></div></div>\t\t\t\t\t\t\t\t\t\t\t\t\t').prependTo(o)}},testCommentsOpened:function(t){1===parseInt(t,10)?(e(".jp-carousel-buttons").fadeIn("fast"),j.fadeIn("fast")):(e(".jp-carousel-buttons").fadeOut("fast"),j.fadeOut("fast"))},getComments:function(t){if(clearInterval(m),"object"==typeof t&&void 0!==t.attachment_id&&t.attachment_id){(!t.offset||void 0===t.offset||t.offset<1)&&(t.offset=0);var a=e(".jp-carousel-comments"),o=e("#jp-carousel-comments-loading").show();t.clear&&a.hide().empty(),e.ajax({type:"GET",url:jetpackCarouselStrings.ajaxurl,dataType:"json",data:{action:"get_attachment_comments",nonce:jetpackCarouselStrings.nonce,id:t.attachment_id,offset:t.offset},success:function(s){t.clear&&a.fadeOut("fast").empty(),e(s).each(function(){var o=e("<div></div>").addClass("jp-carousel-comment").attr("id","jp-carousel-comment-"+this.id).html('<div class="comment-gravatar">'+this.gravatar_markup+'</div><div class="comment-author">'+this.author_markup+'</div><div class="comment-date">'+this.date_gmt+'</div><div class="comment-content">'+this.content+"</div>");a.append(o),clearInterval(m),m=setInterval(function(){e(".jp-carousel-overlay").height()-150<e(".jp-carousel-wrap").scrollTop()+e(window).height()&&(i.jp_carousel("getComments",{attachment_id:t.attachment_id,offset:t.offset+10,clear:!1}),clearInterval(m))},300)});var r=e(".jp-carousel div.selected");if(r&&r.data&&r.data("attachment-id")!=t.attachment_id)return a.fadeOut("fast"),void a.empty();e(".jp-carousel-overlay").height(e(window).height()+g.height()+j.height()+(a.height()>0?a.height():f.height())+200),a.show(),o.hide()},error:function(e,t,i){console.log("Comment get fail...",e,t,i),a.fadeIn("fast"),o.fadeOut("fast")}})}},postCommentError:function(t){"object"!=typeof t&&(t={}),t.field&&void 0!==t.field&&t.error&&void 0!==t.error&&(e("#jp-carousel-comment-post-results").slideUp("fast").html('<span class="jp-carousel-comment-post-error">'+t.error+"</span>").slideDown("fast"),e("#jp-carousel-comment-form-spinner").spin(!1))},setCommentIframeSrc:function(t){var a=e("#jp-carousel-comment-iframe");a&&a.length&&(a.attr("src",a.attr("src").replace(/(postid=)\d+/,"$1"+t)),a.attr("src",a.attr("src").replace(/(%23.+)?$/,"%23jp-carousel-"+t)))},clearCommentTextAreaValue:function(){var t=e("#jp-carousel-comment-form-comment-field");t&&t.val("")},nextSlide:function(){var e=this.jp_carousel("slides"),t=this.jp_carousel("selectedSlide");return 0===t.length||e.length>2&&t.is(e.last())?e.first():t.next()},prevSlide:function(){var e=this.jp_carousel("slides"),t=this.jp_carousel("selectedSlide");return 0===t.length||e.length>2&&t.is(e.first())?e.last():t.prev()},loadFullImage:function(t){var a=t.find("img:first");a.data("loaded")||(a.on("load.jetpack",function(){a.off("load.jetpack"),e(this).closest(".jp-carousel-slide").css("background-image","")}),!t.data("preview-image")||t.data("thumb-size")&&t.width()>t.data("thumb-size").width?a.attr("src",a.closest(".jp-carousel-slide").data("src")).attr("itemprop","image"):a.attr("src",t.data("preview-image")).attr("itemprop","image"),a.data("loaded",1))},hasMultipleImages:function(){return i.jp_carousel("slides").length>1}};e.fn.jp_carousel=function(t){return I[t]?I[t].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof t&&t?void e.error("Method "+t+" does not exist on jQuery.jp_carousel"):I.open.apply(this,arguments)},e(document.body).on("click.jp-carousel","div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery",function(t){e(this).jp_carousel("testForData",t.currentTarget)&&(e(t.target).parent().hasClass("gallery-caption")||e(t.target).parent().is("figcaption")||(e("html").css("height","auto"),t.preventDefault(),t.stopPropagation(),e(this).jp_carousel("open",{start_index:e(this).find(".gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item").index(e(t.target).parents(".gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item"))})))}),1===Number(jetpackCarouselStrings.single_image_gallery)&&(C(),e(document.body).on("post-load",function(){C()})),e(window).on("hashchange.jp-carousel",function(){var t,a,s,r=/jp-carousel-(\d+)/;window.location.hash&&r.test(window.location.hash)?window.location.hash===y&&i.opened||(window.location.hash&&i&&!i.opened&&history.back?history.back():(y=window.location.hash,t=window.location.hash.match(r),a=parseInt(t[1],10),e("div.gallery, div.tiled-gallery, a.single-image-gallery, ul.wp-block-gallery, div.wp-block-jetpack-tiled-gallery").each(function(t,i){if(e(i).find("img").each(function(t,o){if(e(o).data("attachment-id")===parseInt(a,10))return s={index:t,gallery:i},!1}),s)return e(s.gallery).jp_carousel("openOrSelectSlide",s.index),!1}))):i&&i.opened&&o.jp_carousel("close")}),window.location.hash&&e(window).trigger("hashchange")}),function(e){e.fn.touchwipe=function(t){var a={min_move_x:20,min_move_y:20,wipeLeft:function(){},wipeRight:function(){},wipeUp:function(){},wipeDown:function(){},preventDefaultEvents:!0};return t&&e.extend(a,t),this.each(function(){var e,t,i=!1;function o(){this.removeEventListener("touchmove",s),e=null,i=!1}function s(s){if(a.preventDefaultEvents&&s.preventDefault(),i){var r=s.touches[0].pageX,n=s.touches[0].pageY,l=e-r,c=t-n;Math.abs(l)>=a.min_move_x?(o(),l>0?a.wipeLeft(s):a.wipeRight(s)):Math.abs(c)>=a.min_move_y&&(o(),c>0?a.wipeDown(s):a.wipeUp(s))}}"ontouchstart"in document.documentElement&&this.addEventListener("touchstart",function(a){1===a.touches.length&&(e=a.touches[0].pageX,t=a.touches[0].pageY,i=!0,this.addEventListener("touchmove",s,!1))},!1)}),this}}(jQuery); \ No newline at end of file
+!function(){"use strict";var e,t={noop:function(){},texturize:function(e){return(e=(e=(e=(e+="").replace(/'/g,"&#8217;").replace(/&#039;/g,"&#8217;")).replace(/"/g,"&#8221;").replace(/&#034;/g,"&#8221;").replace(/&quot;/g,"&#8221;").replace(/[\u201D]/g,"&#8221;")).replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g,'$1="$2"')).trim()},applyReplacements:function(e,t){if(e)return t?e.replace(/{(\d+)}/g,(function(e,r){return void 0!==t[r]?t[r]:e})):e},getBackgroundImage:function(e){var t=document.createElement("canvas"),r=t.getContext&&t.getContext("2d");if(e){r.filter="blur(20px) ",r.drawImage(e,0,0);var o=t.toDataURL("image/png");return t=null,o}}},r=function(){function e(e,t){return Element.prototype.matches?e.matches(t):Element.prototype.msMatchesSelector?e.msMatchesSelector(t):void 0}function r(e,t,r,o){if(!e)return o();e.style.removeProperty("display"),e.style.opacity=t,e.style.transition="opacity 0.2s",e.style.pointerEvents="none";var a=function(t){t.target===e&&"opacity"===t.propertyName&&(e.style.removeProperty("transition"),e.style.removeProperty("opacity"),e.style.removeProperty("pointer-events"),e.removeEventListener("transitionend",a),e.removeEventListener("transitioncancel",a),o())};requestAnimationFrame((function(){requestAnimationFrame((function(){e.addEventListener("transitionend",a),e.addEventListener("transitioncancel",a),e.style.opacity=r}))}))}return{closest:function(t,r){if(t.closest)return t.closest(r);var o=t;do{if(e(o,r))return o;o=o.parentElement||o.parentNode}while(null!==o&&1===o.nodeType);return null},matches:e,hide:function(e){e&&(e.style.display="none")},show:function(e){e&&(e.style.display="block")},fadeIn:function(e,o){r(e,"0","1",o=o||t.noop)},fadeOut:function(e,o){o=o||t.noop,r(e,"1","0",(function(){e&&(e.style.display="none"),o()}))},scrollToElement:function(e,t,r){if(!e||!t)return r?r():void 0;var o=t.querySelector(".jp-carousel-info-extra");o&&(o.style.minHeight=window.innerHeight-64+"px");var a=!0,i=Date.now(),n=t.scrollTop,l=Math.max(0,e.offsetTop-Math.max(0,window.innerHeight-function(e){var t=e.querySelector(".jp-carousel-info-footer"),r=e.querySelector(".jp-carousel-info-extra"),o=e.querySelector(".jp-carousel-info-content-wrapper");if(t&&r&&o){var a=window.getComputedStyle(r),i=parseInt(a.paddingTop,10)+parseInt(a.paddingBottom,10);return i=isNaN(i)?0:i,o.offsetHeight+t.offsetHeight+i}return 0}(t))),s=l-t.scrollTop;function c(){a=!1}s=Math.min(s,t.scrollHeight-window.innerHeight),t.addEventListener("wheel",c),function e(){var l,u=Date.now(),d=(l=(u-i)/300)<.5?2*l*l:1-Math.pow(-2*l+2,2)/2,p=(d=d>1?1:d)*s;if(t.scrollTop=n+p,u<=i+300&&a)return requestAnimationFrame(e);r&&r(),o&&(o.style.minHeight=""),a=!1,t.removeEventListener("wheel",c)}()},getJSONAttribute:function(e,t){if(e&&e.hasAttribute(t))try{return JSON.parse(e.getAttribute(t))}catch(e){return}},convertToPlainText:function(e){var t=document.createElement("div");return t.textContent=e,t.innerHTML},stripHTML:function(e){return e.replace(/<[^>]*>?/gm,"")},emitEvent:function(e,t,r){var o;try{o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:r||null})}catch(e){(o=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,r||null)}e.dispatchEvent(o)},isTouch:function(){return"ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch}}}();function o(){var o,a,i,n,l="",s=!1,c="div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, figure.wp-block-gallery.has-nested-images, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery",u=".gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item",d=u+", .wp-block-image",p={},m="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.stat?wpcom.carousel.stat:t.noop,g="undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.pageview?wpcom.carousel.pageview:t.noop;function h(t){if(!s)switch(t.which){case 38:t.preventDefault(),p.overlay.scrollTop-=100;break;case 40:t.preventDefault(),p.overlay.scrollTop+=100;break;case 39:t.preventDefault(),e.slideNext();break;case 37:case 8:t.preventDefault(),e.slidePrev();break;case 27:t.preventDefault(),b()}}function f(){s=!0}function v(){s=!1}function y(){p.overlay||(p.overlay=document.querySelector(".jp-carousel-overlay"),p.container=p.overlay.querySelector(".jp-carousel-wrap"),p.gallery=p.container.querySelector(".jp-carousel"),p.info=p.overlay.querySelector(".jp-carousel-info"),p.caption=p.info.querySelector(".jp-carousel-caption"),p.commentField=p.overlay.querySelector("#jp-carousel-comment-form-comment-field"),p.emailField=p.overlay.querySelector("#jp-carousel-comment-form-email-field"),p.authorField=p.overlay.querySelector("#jp-carousel-comment-form-author-field"),p.urlField=p.overlay.querySelector("#jp-carousel-comment-form-url-field"),window.innerWidth<=760&&Math.round(window.innerWidth/760*110)<40&&r.isTouch(),[p.commentField,p.emailField,p.authorField,p.urlField].forEach((function(e){e&&(e.addEventListener("focus",f),e.addEventListener("blur",v))})),p.overlay.addEventListener("click",(function(e){var t,o,a=e.target,i=!!r.closest(a,".jp-carousel-close-hint"),n=!!window.matchMedia("(max-device-width: 760px)").matches;if(a===p.overlay){if(n)return;b()}else if(i)b();else if(a.classList.contains("jp-carousel-image-download"))m("download_original_click");else if(a.classList.contains("jp-carousel-comment-login"))t=p.currentSlide,o=t?t.attrs.attachmentId:"0",window.location.href=jetpackCarouselStrings.login_url+"%23jp-carousel-"+o;else if(r.closest(a,"#jp-carousel-comment-form-container"))!function(e){var t=e.target,o=r.getJSONAttribute(p.container,"data-carousel-extra")||{},a=p.currentSlide.attrs.attachmentId,i=document.querySelector("#jp-carousel-comment-form-submit-and-info-wrapper"),n=document.querySelector("#jp-carousel-comment-form-spinner"),l=document.querySelector("#jp-carousel-comment-form-button-submit"),s=document.querySelector("#jp-carousel-comment-form");if(p.commentField&&p.commentField.getAttribute("id")===t.getAttribute("id"))f(),r.show(i);else if(r.matches(t,'input[type="submit"]')){e.preventDefault(),e.stopPropagation(),r.show(n),s.classList.add("jp-carousel-is-disabled");var c={action:"post_attachment_comment",nonce:jetpackCarouselStrings.nonce,blog_id:o.blog_id,id:a,comment:p.commentField.value};if(!c.comment.length)return void w(jetpackCarouselStrings.no_comment_text,!1);if(1!==Number(jetpackCarouselStrings.is_logged_in)&&(c.email=p.emailField.value,c.author=p.authorField.value,c.url=p.urlField.value,1===Number(jetpackCarouselStrings.require_name_email))){if(!c.email.length||!c.email.match("@"))return void w(jetpackCarouselStrings.no_comment_email,!1);if(!c.author.length)return void w(jetpackCarouselStrings.no_comment_author,!1)}var u=new XMLHttpRequest;u.open("POST",jetpackCarouselStrings.ajaxurl,!0),u.setRequestHeader("X-Requested-With","XMLHttpRequest"),u.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),u.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&this.status>=200&&this.status<300){var e;try{e=JSON.parse(this.response)}catch(e){return void w(jetpackCarouselStrings.comment_post_error,!1)}"approved"===e.comment_status?w(jetpackCarouselStrings.comment_approved,!0):"unapproved"===e.comment_status?w(jetpackCarouselStrings.comment_unapproved,!0):w(jetpackCarouselStrings.comment_post_error,!1),T(),q(a),l.value=jetpackCarouselStrings.post_comment,r.hide(n),s.classList.remove("jp-carousel-is-disabled")}else w(jetpackCarouselStrings.comment_post_error,!1)};var d=[];for(var m in c)if(m){var g=encodeURIComponent(m)+"="+encodeURIComponent(c[m]);d.push(g.replace(/%20/g,"+"))}var h=d.join("&");u.send(h)}}(e);else if(r.closest(a,".jp-carousel-photo-icons-container")||a.classList.contains("jp-carousel-photo-title"))!function(e){e.preventDefault();var t=e.target,o=p.info.querySelector(".jp-carousel-info-extra"),a=p.info.querySelector(".jp-carousel-image-meta"),i=p.info.querySelector(".jp-carousel-comments-wrapper"),n=p.info.querySelector(".jp-carousel-icon-info"),l=p.info.querySelector(".jp-carousel-icon-comments");function s(){l&&l.classList.remove("jp-carousel-selected"),n.classList.toggle("jp-carousel-selected"),i&&i.classList.remove("jp-carousel-show"),a&&(a.classList.toggle("jp-carousel-show"),a.classList.contains("jp-carousel-show")?o.classList.add("jp-carousel-show"):o.classList.remove("jp-carousel-show"))}function c(){n&&n.classList.remove("jp-carousel-selected"),l.classList.toggle("jp-carousel-selected"),a&&a.classList.remove("jp-carousel-show"),i&&(i.classList.toggle("jp-carousel-show"),i.classList.contains("jp-carousel-show")?o.classList.add("jp-carousel-show"):o.classList.remove("jp-carousel-show"))}(r.closest(t,".jp-carousel-icon-info")||t.classList.contains("jp-carousel-photo-title"))&&(a&&a.classList.contains("jp-carousel-show")?r.scrollToElement(p.overlay,p.overlay,s):(s(),r.scrollToElement(p.info,p.overlay))),r.closest(t,".jp-carousel-icon-comments")&&(i&&i.classList.contains("jp-carousel-show")?r.scrollToElement(p.overlay,p.overlay,c):(c(),r.scrollToElement(p.info,p.overlay)))}(e);else if(!r.closest(a,".jp-carousel-info"))return})),window.addEventListener("keydown",h),p.overlay.addEventListener("jp_carousel.afterOpen",(function(){v(),p.slides.length<=1||(p.slides.length<=5?r.show(p.info.querySelector(".jp-swiper-pagination")):r.show(p.info.querySelector(".jp-carousel-pagination")))})),p.overlay.addEventListener("jp_carousel.beforeClose",(function(){f(),document.documentElement.style.removeProperty("height"),e&&e.enable(),r.hide(p.info.querySelector(".jp-swiper-pagination")),r.hide(p.info.querySelector(".jp-carousel-pagination"))})),p.overlay.addEventListener("jp_carousel.afterClose",(function(){window.history.pushState?history.pushState("",document.title,window.location.pathname+window.location.search):window.location.href="",l="",p.isOpen=!1})),p.overlay.addEventListener("touchstart",(function(e){e.touches.length>1&&e.preventDefault()})))}function w(e,t){var o=p.overlay.querySelector("#jp-carousel-comment-post-results"),a="jp-carousel-comment-post-"+(t?"success":"error");o.innerHTML='<span class="'+a+'">'+e+"</span>",r.hide(p.overlay.querySelector("#jp-carousel-comment-form-spinner")),p.overlay.querySelector("#jp-carousel-comment-form").classList.remove("jp-carousel-is-disabled"),r.show(o)}function j(){var e=document.querySelectorAll("a img[data-attachment-id]");Array.prototype.forEach.call(e,(function(e){var t=e.parentElement,o=t.parentElement;if(!o.classList.contains("gallery-icon")&&!r.closest(o,u)&&t.hasAttribute("href")){var a=!1;t.getAttribute("href").split("?")[0]===e.getAttribute("data-orig-file").split("?")[0]&&1===Number(jetpackCarouselStrings.single_image_gallery_media_file)&&(a=!0),t.getAttribute("href")===e.getAttribute("data-permalink")&&(a=!0),a&&(t.classList.add("single-image-gallery"),t.setAttribute("data-carousel-extra",JSON.stringify({blog_id:Number(jetpackCarouselStrings.blog_id)})))}}))}function S(o){(!o||o<0||o>p.slides.length)&&(o=0),p.currentSlide=p.slides[o];var a,i,n=p.currentSlide,s=n.attrs.attachmentId,c=p.info.querySelector(".jp-carousel-icon-info"),u=p.info.querySelector(".jp-carousel-icon-comments");(c&&c.classList.contains("jp-carousel-selected")||u&&u.classList.contains("jp-carousel-selected"))&&0!==p.overlay.scrollTop&&r.scrollToElement(p.overlay,p.overlay),function(e){var t=e.el,r=e.attrs,o=t.querySelector("img");if(!o.hasAttribute("data-loaded")){var a=!!r.previewImage,i=r.thumbSize;!a||i&&t.offsetWidth>i.width?o.src=r.src:o.src=r.previewImage,o.setAttribute("itemprop","image"),o.setAttribute("data-loaded",1)}}(p.slides[o]),1!==Number(jetpackCarouselStrings.display_background_image)||p.slides[o].backgroundImage||function(t){var r=t.el;e&&e.slides&&(r=e.slides[e.activeIndex]);var o=t.attrs.originalElement;o.complete&&0!==o.naturalHeight?E(t,r,o):o.onload=function(){E(t,r,o)}}(p.slides[o]),r.hide(p.caption),function(e){var t,o,a,i,n="",l="",s="";if(t=p.overlay.querySelector(".jp-carousel-photo-caption"),o=p.overlay.querySelector(".jp-carousel-caption"),a=p.overlay.querySelector(".jp-carousel-photo-title"),i=p.overlay.querySelector(".jp-carousel-photo-description"),r.hide(t),r.hide(o),r.hide(a),r.hide(i),n=k(e.caption)||"",l=k(e.title)||"",s=k(e.desc)||"",(n||l||s)&&(n&&(t.innerHTML=n,o.innerHTML=n,r.show(t),r.show(o)),r.stripHTML(n)===r.stripHTML(l)&&(l=""),r.stripHTML(n)===r.stripHTML(s)&&(s=""),r.stripHTML(l)===r.stripHTML(s)&&(s=""),s&&(i.innerHTML=s,r.show(i),l||n||(t.innerHTML=r.stripHTML(s),r.show(t))),l)){var c=r.stripHTML(l);a.innerHTML=c,n||(t.innerHTML=c,o.innerHTML=c,r.show(t)),r.show(a)}}({caption:n.attrs.caption,title:n.attrs.title,desc:n.attrs.desc}),function(e){if(!e||1!==Number(jetpackCarouselStrings.display_exif))return!1;var t=p.info.querySelector(".jp-carousel-image-meta ul.jp-carousel-image-exif"),r="";for(var o in e){var a=e[o],i=jetpackCarouselStrings.meta_data||[];if(0!==parseFloat(a)&&a.length&&-1!==i.indexOf(o)){switch(o){case"focal_length":a+="mm";break;case"shutter_speed":a=x(a);break;case"aperture":a="f/"+a}r+="<li><h5>"+jetpackCarouselStrings[o]+"</h5>"+a+"</li>"}}t.innerHTML=r,t.style.removeProperty("display")}(p.slides[o].attrs.imageMeta),function(e){if(!e)return!1;var r,o=[e.attrs.origWidth,e.attrs.origHeight],a=document.createElement("a");a.href=e.attrs.src.replace(/\?.+$/,""),r=null!==a.hostname.match(/^i[\d]{1}\.wp\.com$/i)?a.href:e.attrs.origFile.replace(/\?.+$/,"");var i=p.info.querySelector(".jp-carousel-download-text"),n=p.info.querySelector(".jp-carousel-image-download");i.innerHTML=t.applyReplacements(jetpackCarouselStrings.download_original,o),n.setAttribute("href",r),n.style.removeProperty("display")}(n),1===Number(jetpackCarouselStrings.display_comments)&&(a=p.slides[o].attrs.commentsOpened,i=p.container.querySelector(".jp-carousel-comment-form-container"),1===parseInt(a,10)?r.fadeIn(i):r.fadeOut(i),q(s),r.hide(p.info.querySelector("#jp-carousel-comment-post-results")));var d=p.info.querySelector(".jp-carousel-pagination");if(d&&p.slides.length>5){var m=o+1;d.innerHTML="<span>"+m+" / "+p.slides.length+"</span>"}jetpackCarouselStrings.stats&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+jetpackCarouselStrings.stats+"&post="+encodeURIComponent(s)+"&rand="+Math.random()),g(s),window.location.hash=l="#jp-carousel-"+s}function b(){document.body.style.overflow=a,document.documentElement.style.overflow=i,T(),f(),r.emitEvent(p.overlay,"jp_carousel.beforeClose"),window.scrollTo(window.scrollX||window.pageXOffset||0,n||0),e.destroy(),p.isOpen=!1,p.slides=[],p.currentSlide=void 0,p.gallery.innerHTML="",r.fadeOut(p.overlay,(function(){r.emitEvent(p.overlay,"jp_carousel.afterClose")}))}function L(e,t,r){var o=r?e.replace(/.*=([\d]+%2C[\d]+).*$/,"$1"):e.replace(/.*-([\d]+x[\d]+)\..+$/,"$1"),a=o!==e?r?o.split("%2C"):o.split("x"):[t,0];return"9999"===a[0]&&(a[0]="0"),"9999"===a[1]&&(a[1]="0"),a}function x(e){return e>=1?Math.round(10*e)/10+"s":"1/"+Math.round(1/e)+"s"}function k(e){return!e.match(" ")&&e.match("_")?"":e}function q(e,t){var a=void 0===t,i=p.info.querySelector(".jp-carousel-icon-comments .jp-carousel-has-comments-indicator");if(i.classList.remove("jp-carousel-show"),clearInterval(o),e){(!t||t<1)&&(t=0);var n=p.info.querySelector(".jp-carousel-comments"),l=p.info.querySelector("#jp-carousel-comments-loading");r.show(l),a&&(r.hide(n),n.innerHTML="");var s=new XMLHttpRequest,c=jetpackCarouselStrings.ajaxurl+"?action=get_attachment_comments&nonce="+jetpackCarouselStrings.nonce+"&id="+e+"&offset="+t;s.open("GET",c),s.setRequestHeader("X-Requested-With","XMLHttpRequest");var u=function(){r.fadeIn(n),r.fadeOut(l)};s.onload=function(){if(p.currentSlide&&p.currentSlide.attrs.attachmentId===e){var c,d=s.status>=200&&s.status<300;try{c=JSON.parse(s.responseText)}catch(e){}if(!d||!c||!Array.isArray(c))return u();a&&(n.innerHTML="");for(var m=0;m<c.length;m++){var g=c[m],h=document.createElement("div");h.classList.add("jp-carousel-comment"),h.setAttribute("id","jp-carousel-comment-"+g.id),h.innerHTML='<div class="comment-gravatar">'+g.gravatar_markup+'</div><div class="comment-content"><div class="comment-author">'+g.author_markup+'</div><div class="comment-date">'+g.date_gmt+"</div>"+g.content+"</div>",n.appendChild(h),clearInterval(o),o=setInterval((function(){p.container.scrollTop+150>window.innerHeight&&(q(e,t+10),clearInterval(o))}),300)}c.length>0&&(r.show(n),i.innerText=c.length,i.classList.add("jp-carousel-show")),r.hide(l)}},s.onerror=u,s.send()}}function E(e,r,o){var a=t.getBackgroundImage(o);e.backgroundImage=a,r.style.backgroundImage="url("+a+")",r.style.backgroundSize="cover"}function T(){p.commentField&&(p.commentField.value="")}function A(e,o){p.slides=[];var a={width:window.innerWidth,height:window.innerHeight-64};0!==o&&((new Image).src=e[o].getAttribute("data-gallery-src"));var i=!!r.closest(e[0],".tiled-gallery.type-rectangular");Array.prototype.forEach.call(e,(function(e,o){var n=r.closest(e,"a"),l=e.getAttribute("data-orig-file")||e.getAttribute("src-orig"),s=e.getAttribute("data-attachment-id")||e.getAttribute("data-id")||"0",c=document.querySelector('img[data-attachment-id="'+s+'"] + figcaption');c=c?c.innerHTML:e.getAttribute("data-image-caption");var u={originalElement:e,attachmentId:s,commentsOpened:e.getAttribute("data-comments-opened")||"0",imageMeta:r.getJSONAttribute(e,"data-image-meta")||{},title:e.getAttribute("data-image-title")||"",desc:e.getAttribute("data-image-description")||"",mediumFile:e.getAttribute("data-medium-file")||"",largeFile:e.getAttribute("data-large-file")||"",origFile:l||"",thumbSize:{width:e.naturalWidth,height:e.naturalHeight},caption:c||"",permalink:n&&n.getAttribute("href"),src:l||e.getAttribute("src")||""},d=r.closest(e,".tiled-gallery-item"),m=d&&d.querySelector(".tiled-gallery-caption"),g=m&&m.innerHTML;g&&(u.caption=g);var h=function(e){var t=e.getAttribute("data-orig-size")||"";if(t){var r=t.split(",");return{width:parseInt(r[0],10),height:parseInt(r[1],10)}}return{width:e.getAttribute("data-original-width")||e.getAttribute("width")||void 0,height:e.getAttribute("data-original-height")||e.getAttribute("height")||void 0}}(e);if(u.origWidth=h.width||u.thumbSize.width,u.origHeight=h.height||u.thumbSize.height,"undefined"!=typeof wpcom&&wpcom.carousel&&wpcom.carousel.generateImgSrc?u.src=wpcom.carousel.generateImgSrc(e,a):u.src=function(e){if("object"!=typeof e&&(e={}),void 0===e.origFile)return"";if(void 0===e.origWidth||void 0===e.maxWidth)return e.origFile;if(void 0===e.mediumFile||void 0===e.largeFile)return e.origFile;var t=document.createElement("a");t.href=e.largeFile;var r=/^i[0-2]\.wp\.com$/i.test(t.hostname),o=L(e.mediumFile,e.origWidth,r),a=L(e.largeFile,e.origWidth,r),i=parseInt(a[0],10),n=parseInt(a[1],10),l=parseInt(o[0],10),s=parseInt(o[1],10);if(e.origMaxWidth=e.maxWidth,e.origMaxHeight=e.maxHeight,void 0!==window.devicePixelRatio&&window.devicePixelRatio>1&&(e.maxWidth=e.maxWidth*window.devicePixelRatio,e.maxHeight=e.maxHeight*window.devicePixelRatio),i>=e.maxWidth||n>=e.maxHeight)return e.largeFile;if(l>=e.maxWidth||s>=e.maxHeight)return e.mediumFile;if(r){var c=e.largeFile.lastIndexOf("?"),u=e.largeFile;return-1!==c&&(u=e.largeFile.substring(0,c),(e.origWidth>e.maxWidth||e.origHeight>e.maxHeight)&&(e.origMaxWidth=2*e.maxWidth,e.origMaxHeight=2*e.maxHeight,u+="?fit="+e.origMaxWidth+"%2C"+e.origMaxHeight)),u}return e.origFile}({origFile:u.src,origWidth:u.origWidth,origHeight:u.origHeight,maxWidth:a.width,maxHeight:a.height,mediumFile:u.mediumFile,largeFile:u.largeFile}),e.setAttribute("data-gallery-src",u.src),"0"!==u.attachmentId){u.title=t.texturize(u.title),u.desc=t.texturize(u.desc),u.caption=t.texturize(u.caption);var f=new Image;f.src=u.src;var v=document.createElement("div");v.classList.add("swiper-slide"),v.setAttribute("itemprop","associatedMedia"),v.setAttribute("itemscope",""),v.setAttribute("itemtype","https://schema.org/ImageObject");var y=document.createElement("div");y.classList.add("swiper-zoom-container"),p.gallery.appendChild(v),v.appendChild(y),y.appendChild(f),v.setAttribute("data-attachment-id",u.attachmentId),v.setAttribute("data-permalink",u.permalink),v.setAttribute("data-orig-file",u.origFile),i&&(u.previewImage=u.src);var w={el:v,attrs:u,index:o};p.slides.push(w)}}))}function H(e,t){if(!window.Swiper670){var o=document.querySelector("#jp-carousel-loading-overlay");r.show(o);var a=document.createElement("script");return a.id="jetpack-carousel-swiper-js",a.src=window.jetpackSwiperLibraryPath.url,a.async=!0,a.onload=function(){r.hide(o),C(e,t)},a.onerror=function(){r.hide(o)},void document.head.appendChild(a)}C(e,t)}function C(t,o){var l,s={imgSelector:".gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id], img[data-id]",startIndex:0},c=r.getJSONAttribute(t,"data-carousel-extra");if(c&&(y(),!p.isOpen)){for(var u in p.isOpen=!0,a=getComputedStyle(document.body).overflow,document.body.style.overflow="hidden",i=getComputedStyle(document.documentElement).overflow,document.documentElement.style.overflow="hidden",n=window.scrollY||window.pageYOffset||0,p.container.setAttribute("data-carousel-extra",JSON.stringify(c)),m(["open","view_image"]),o||{})s[u]=o[u];-1===s.startIndex&&(s.startIndex=0),r.emitEvent(p.overlay,"jp_carousel.beforeOpen"),p.gallery.innerHTML="",p.overlay.style.opacity=1,p.overlay.style.display="block",A(t.querySelectorAll(s.imgSelector),s.startIndex),(e=new window.Swiper670(".jp-carousel-swiper-container",{centeredSlides:!0,zoom:!0,loop:p.slides.length>1,enabled:p.slides.length>1,pagination:{el:".jp-swiper-pagination",clickable:!0},navigation:{nextEl:".jp-swiper-button-next",prevEl:".jp-swiper-button-prev"},initialSlide:s.startIndex,on:{init:function(){S(s.startIndex)}},preventClicks:!1,preventClicksPropagation:!1,preventInteractionOnTransition:!r.isTouch(),threshold:5})).on("slideChange",(function(e){S(0===e.activeIndex?p.slides.length-1:e.activeIndex===p.slides.length+1?0:e.activeIndex-1),p.overlay.classList.remove("jp-carousel-hide-controls")})),e.on("zoomChange",(function(e,t){t>1&&p.overlay.classList.add("jp-carousel-hide-controls"),1===t&&p.overlay.classList.remove("jp-carousel-hide-controls")})),e.on("doubleTap",(function(e){if(clearTimeout(l),1===e.zoom.scale)var t=setTimeout((function(){p.overlay.classList.remove("jp-carousel-hide-controls"),clearTimeout(t)}),150)})),e.on("tap",(function(){e.zoom.scale>1&&(l=setTimeout((function(){p.overlay.classList.toggle("jp-carousel-hide-controls")}),150))})),r.fadeIn(p.overlay,(function(){r.emitEvent(p.overlay,"jp_carousel.afterOpen")}))}}document.body.addEventListener("click",(function(e){if(window.CSS&&window.CSS.supports&&window.CSS.supports("display","grid")){var t,o=e.target,a=r.closest(o,c);if(a){if(!(t=a)||!t.getAttribute("data-carousel-extra"))return;var i=o.parentElement,n=i.parentElement;if(n&&n.classList.contains("wp-block-image")){var l=i.getAttribute("href");if(l.split("?")[0]!==o.getAttribute("data-orig-file").split("?")[0]&&l!==o.getAttribute("data-permalink"))return}if(i.classList.contains("gallery-caption"))return;if(r.matches(i,"figcaption"))return;document.documentElement.style.height="auto",e.preventDefault(),e.stopPropagation();var s=r.closest(o,d),u=Array.prototype.indexOf.call(a.querySelectorAll(d),s);H(a,{startIndex:u})}}})),1===Number(jetpackCarouselStrings.single_image_gallery)&&(j(),document.body.addEventListener("is.post-load",(function(){j()}))),window.addEventListener("hashchange",(function(){var t=/jp-carousel-(\d+)/;if(window.location.hash&&t.test(window.location.hash)){if(window.location.hash!==l||!p.isOpen)if(window.location.hash&&p.gallery&&!p.isOpen&&history.back)history.back();else{l=window.location.hash;for(var r,o,a=window.location.hash.match(t),i=parseInt(a[1],10),n=document.querySelectorAll(c),s=0;s<n.length;s++){for(var u,d=n[s],m=d.querySelectorAll("img"),g=0;g<m.length;g++)if(parseInt(m[g].getAttribute("data-attachment-id"),10)===i||parseInt(m[g].getAttribute("data-id"),10)===i){u=g;break}if(void 0!==u){r=d,o=u,p.isOpen?(S(o),e.slideTo(o+1)):H(r,{startIndex:o});break}}}}else p.isOpen&&b()})),window.location.hash&&r.emitEvent(window,"hashchange")}"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.asset.php b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.asset.php
new file mode 100644
index 00000000..a35d00b7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '3d5c5640e4433f7b5d73da541b95dced'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js
new file mode 100644
index 00000000..cd3b525e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js
@@ -0,0 +1,2 @@
+/*! For license information please see swiper-bundle.min.js.LICENSE.txt */
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Swiper670=t():e.Swiper670=t()}(self,(function(){return e={5690:function(e){e.exports=function(){"use strict";function e(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function t(t,i,a){return i&&e(t.prototype,i),a&&e(t,a),t}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var a in i)Object.prototype.hasOwnProperty.call(i,a)&&(e[a]=i[a])}return e},i.apply(this,arguments)}function a(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function n(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(i){void 0===e[i]?e[i]=t[i]:a(t[i])&&a(e[i])&&Object.keys(t[i]).length>0&&n(e[i],t[i])}))}var r={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function s(){var e="undefined"!=typeof document?document:{};return n(e,r),e}var o={document:r,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}},requestAnimationFrame:function(e){return"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0)},cancelAnimationFrame:function(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function l(){var e="undefined"!=typeof window?window:{};return n(e,o),e}function d(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function u(e){return u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},u(e)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}function p(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function v(e,t,i){return v=p()?Reflect.construct:function(e,t,i){var a=[null];a.push.apply(a,t);var n=new(Function.bind.apply(e,a));return i&&c(n,i.prototype),n},v.apply(null,arguments)}function h(e){return-1!==Function.toString.call(e).indexOf("[native code]")}function f(e){var t="function"==typeof Map?new Map:void 0;return f=function(e){if(null===e||!h(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return v(e,arguments,u(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),c(i,e)},f(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function g(e){var t=e.__proto__;Object.defineProperty(e,"__proto__",{get:function(){return t},set:function(e){t.__proto__=e}})}var b=function(e){function t(t){var i;return g(m(i=e.call.apply(e,[this].concat(t))||this)),i}return d(t,e),t}(f(Array));function E(e){void 0===e&&(e=[]);var t=[];return e.forEach((function(e){Array.isArray(e)?t.push.apply(t,E(e)):t.push(e)})),t}function C(e,t){return Array.prototype.filter.call(e,t)}function y(e){for(var t=[],i=0;i<e.length;i+=1)-1===t.indexOf(e[i])&&t.push(e[i]);return t}function w(e,t){if("string"!=typeof e)return[e];for(var i=[],a=t.querySelectorAll(e),n=0;n<a.length;n+=1)i.push(a[n]);return i}function T(e,t){var i=l(),a=s(),n=[];if(!t&&e instanceof b)return e;if(!e)return new b(n);if("string"==typeof e){var r=e.trim();if(r.indexOf("<")>=0&&r.indexOf(">")>=0){var o="div";0===r.indexOf("<li")&&(o="ul"),0===r.indexOf("<tr")&&(o="tbody"),0!==r.indexOf("<td")&&0!==r.indexOf("<th")||(o="tr"),0===r.indexOf("<tbody")&&(o="table"),0===r.indexOf("<option")&&(o="select");var d=a.createElement(o);d.innerHTML=r;for(var u=0;u<d.childNodes.length;u+=1)n.push(d.childNodes[u])}else n=w(e.trim(),t||a)}else if(e.nodeType||e===i||e===a)n.push(e);else if(Array.isArray(e)){if(e instanceof b)return e;n=e}return new b(y(n))}function x(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=E(t.map((function(e){return e.split(" ")})));return this.forEach((function(e){var t;(t=e.classList).add.apply(t,a)})),this}function S(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=E(t.map((function(e){return e.split(" ")})));return this.forEach((function(e){var t;(t=e.classList).remove.apply(t,a)})),this}function M(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=E(t.map((function(e){return e.split(" ")})));this.forEach((function(e){a.forEach((function(t){e.classList.toggle(t)}))}))}function k(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=E(t.map((function(e){return e.split(" ")})));return C(this,(function(e){return a.filter((function(t){return e.classList.contains(t)})).length>0})).length>0}function P(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(var i=0;i<this.length;i+=1)if(2===arguments.length)this[i].setAttribute(e,t);else for(var a in e)this[i][a]=e[a],this[i].setAttribute(a,e[a]);return this}function z(e){for(var t=0;t<this.length;t+=1)this[t].removeAttribute(e);return this}function $(e){for(var t=0;t<this.length;t+=1)this[t].style.transform=e;return this}function L(e){for(var t=0;t<this.length;t+=1)this[t].style.transitionDuration="string"!=typeof e?e+"ms":e;return this}function O(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=t[0],n=t[1],r=t[2],s=t[3];function o(e){var t=e.target;if(t){var i=e.target.dom7EventData||[];if(i.indexOf(e)<0&&i.unshift(e),T(t).is(n))r.apply(t,i);else for(var a=T(t).parents(),s=0;s<a.length;s+=1)T(a[s]).is(n)&&r.apply(a[s],i)}}function l(e){var t=e&&e.target&&e.target.dom7EventData||[];t.indexOf(e)<0&&t.unshift(e),r.apply(this,t)}"function"==typeof t[1]&&(a=t[0],r=t[1],s=t[2],n=void 0),s||(s=!1);for(var d,u=a.split(" "),c=0;c<this.length;c+=1){var p=this[c];if(n)for(d=0;d<u.length;d+=1){var v=u[d];p.dom7LiveListeners||(p.dom7LiveListeners={}),p.dom7LiveListeners[v]||(p.dom7LiveListeners[v]=[]),p.dom7LiveListeners[v].push({listener:r,proxyListener:o}),p.addEventListener(v,o,s)}else for(d=0;d<u.length;d+=1){var h=u[d];p.dom7Listeners||(p.dom7Listeners={}),p.dom7Listeners[h]||(p.dom7Listeners[h]=[]),p.dom7Listeners[h].push({listener:r,proxyListener:l}),p.addEventListener(h,l,s)}}return this}function A(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];var a=t[0],n=t[1],r=t[2],s=t[3];"function"==typeof t[1]&&(a=t[0],r=t[1],s=t[2],n=void 0),s||(s=!1);for(var o=a.split(" "),l=0;l<o.length;l+=1)for(var d=o[l],u=0;u<this.length;u+=1){var c=this[u],p=void 0;if(!n&&c.dom7Listeners?p=c.dom7Listeners[d]:n&&c.dom7LiveListeners&&(p=c.dom7LiveListeners[d]),p&&p.length)for(var v=p.length-1;v>=0;v-=1){var h=p[v];r&&h.listener===r||r&&h.listener&&h.listener.dom7proxy&&h.listener.dom7proxy===r?(c.removeEventListener(d,h.proxyListener,s),p.splice(v,1)):r||(c.removeEventListener(d,h.proxyListener,s),p.splice(v,1))}}return this}function I(){for(var e=l(),t=arguments.length,i=new Array(t),a=0;a<t;a++)i[a]=arguments[a];for(var n=i[0].split(" "),r=i[1],s=0;s<n.length;s+=1)for(var o=n[s],d=0;d<this.length;d+=1){var u=this[d];if(e.CustomEvent){var c=new e.CustomEvent(o,{detail:r,bubbles:!0,cancelable:!0});u.dom7EventData=i.filter((function(e,t){return t>0})),u.dispatchEvent(c),u.dom7EventData=[],delete u.dom7EventData}}return this}function G(e){var t=this;function i(a){a.target===this&&(e.call(this,a),t.off("transitionend",i))}return e&&t.on("transitionend",i),this}function B(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null}function D(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null}function N(){if(this.length>0){var e=l(),t=s(),i=this[0],a=i.getBoundingClientRect(),n=t.body,r=i.clientTop||n.clientTop||0,o=i.clientLeft||n.clientLeft||0,d=i===e?e.scrollY:i.scrollTop,u=i===e?e.scrollX:i.scrollLeft;return{top:a.top+d-r,left:a.left+u-o}}return null}function R(){var e=l();return this[0]?e.getComputedStyle(this[0],null):{}}function X(e,t){var i,a=l();if(1===arguments.length){if("string"!=typeof e){for(i=0;i<this.length;i+=1)for(var n in e)this[i].style[n]=e[n];return this}if(this[0])return a.getComputedStyle(this[0],null).getPropertyValue(e)}if(2===arguments.length&&"string"==typeof e){for(i=0;i<this.length;i+=1)this[i].style[e]=t;return this}return this}function Y(e){return e?(this.forEach((function(t,i){e.apply(t,[t,i])})),this):this}function W(e){return T(C(this,e))}function H(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(var t=0;t<this.length;t+=1)this[t].innerHTML=e;return this}function _(e){if(void 0===e)return this[0]?this[0].textContent.trim():null;for(var t=0;t<this.length;t+=1)this[t].textContent=e;return this}function F(e){var t,i,a=l(),n=s(),r=this[0];if(!r||void 0===e)return!1;if("string"==typeof e){if(r.matches)return r.matches(e);if(r.webkitMatchesSelector)return r.webkitMatchesSelector(e);if(r.msMatchesSelector)return r.msMatchesSelector(e);for(t=T(e),i=0;i<t.length;i+=1)if(t[i]===r)return!0;return!1}if(e===n)return r===n;if(e===a)return r===a;if(e.nodeType||e instanceof b){for(t=e.nodeType?[e]:e,i=0;i<t.length;i+=1)if(t[i]===r)return!0;return!1}return!1}function j(){var e,t=this[0];if(t){for(e=0;null!==(t=t.previousSibling);)1===t.nodeType&&(e+=1);return e}}function V(e){if(void 0===e)return this;var t=this.length;if(e>t-1)return T([]);if(e<0){var i=t+e;return T(i<0?[]:[this[i]])}return T([this[e]])}function q(){for(var e,t=s(),i=0;i<arguments.length;i+=1){e=i<0||arguments.length<=i?void 0:arguments[i];for(var a=0;a<this.length;a+=1)if("string"==typeof e){var n=t.createElement("div");for(n.innerHTML=e;n.firstChild;)this[a].appendChild(n.firstChild)}else if(e instanceof b)for(var r=0;r<e.length;r+=1)this[a].appendChild(e[r]);else this[a].appendChild(e)}return this}function U(e){var t,i,a=s();for(t=0;t<this.length;t+=1)if("string"==typeof e){var n=a.createElement("div");for(n.innerHTML=e,i=n.childNodes.length-1;i>=0;i-=1)this[t].insertBefore(n.childNodes[i],this[t].childNodes[0])}else if(e instanceof b)for(i=0;i<e.length;i+=1)this[t].insertBefore(e[i],this[t].childNodes[0]);else this[t].insertBefore(e,this[t].childNodes[0]);return this}function K(e){return this.length>0?e?this[0].nextElementSibling&&T(this[0].nextElementSibling).is(e)?T([this[0].nextElementSibling]):T([]):this[0].nextElementSibling?T([this[0].nextElementSibling]):T([]):T([])}function J(e){var t=[],i=this[0];if(!i)return T([]);for(;i.nextElementSibling;){var a=i.nextElementSibling;e?T(a).is(e)&&t.push(a):t.push(a),i=a}return T(t)}function Q(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&T(t.previousElementSibling).is(e)?T([t.previousElementSibling]):T([]):t.previousElementSibling?T([t.previousElementSibling]):T([])}return T([])}function Z(e){var t=[],i=this[0];if(!i)return T([]);for(;i.previousElementSibling;){var a=i.previousElementSibling;e?T(a).is(e)&&t.push(a):t.push(a),i=a}return T(t)}function ee(e){for(var t=[],i=0;i<this.length;i+=1)null!==this[i].parentNode&&(e?T(this[i].parentNode).is(e)&&t.push(this[i].parentNode):t.push(this[i].parentNode));return T(t)}function te(e){for(var t=[],i=0;i<this.length;i+=1)for(var a=this[i].parentNode;a;)e?T(a).is(e)&&t.push(a):t.push(a),a=a.parentNode;return T(t)}function ie(e){var t=this;return void 0===e?T([]):(t.is(e)||(t=t.parents(e).eq(0)),t)}function ae(e){for(var t=[],i=0;i<this.length;i+=1)for(var a=this[i].querySelectorAll(e),n=0;n<a.length;n+=1)t.push(a[n]);return T(t)}function ne(e){for(var t=[],i=0;i<this.length;i+=1)for(var a=this[i].children,n=0;n<a.length;n+=1)e&&!T(a[n]).is(e)||t.push(a[n]);return T(t)}function re(){for(var e=0;e<this.length;e+=1)this[e].parentNode&&this[e].parentNode.removeChild(this[e]);return this}T.fn=b.prototype;var se,oe,le,de={addClass:x,removeClass:S,hasClass:k,toggleClass:M,attr:P,removeAttr:z,transform:$,transition:L,on:O,off:A,trigger:I,transitionEnd:G,outerWidth:B,outerHeight:D,styles:R,offset:N,css:X,each:Y,html:H,text:_,is:F,index:j,eq:V,append:q,prepend:U,next:K,nextAll:J,prev:Q,prevAll:Z,parent:ee,parents:te,closest:ie,find:ae,children:ne,filter:W,remove:re};function ue(e){var t=e;Object.keys(t).forEach((function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function ce(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function pe(){return Date.now()}function ve(e){var t,i=l();return i.getComputedStyle&&(t=i.getComputedStyle(e,null)),!t&&e.currentStyle&&(t=e.currentStyle),t||(t=e.style),t}function he(e,t){void 0===t&&(t="x");var i,a,n,r=l(),s=ve(e);return r.WebKitCSSMatrix?((a=s.transform||s.webkitTransform).split(",").length>6&&(a=a.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),n=new r.WebKitCSSMatrix("none"===a?"":a)):i=(n=s.MozTransform||s.OTransform||s.MsTransform||s.msTransform||s.transform||s.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(a=r.WebKitCSSMatrix?n.m41:16===i.length?parseFloat(i[12]):parseFloat(i[4])),"y"===t&&(a=r.WebKitCSSMatrix?n.m42:16===i.length?parseFloat(i[13]):parseFloat(i[5])),a||0}function fe(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function me(){for(var e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"],i="undefined"!=typeof window?window.HTMLElement:void 0,a=1;a<arguments.length;a+=1){var n=a<0||arguments.length<=a?void 0:arguments[a];if(null!=n&&!(i&&n instanceof i))for(var r=Object.keys(Object(n)).filter((function(e){return t.indexOf(e)<0})),s=0,o=r.length;s<o;s+=1){var l=r[s],d=Object.getOwnPropertyDescriptor(n,l);void 0!==d&&d.enumerable&&(fe(e[l])&&fe(n[l])?n[l].__swiper__?e[l]=n[l]:me(e[l],n[l]):!fe(e[l])&&fe(n[l])?(e[l]={},n[l].__swiper__?e[l]=n[l]:me(e[l],n[l])):e[l]=n[l])}}return e}function ge(e,t){Object.keys(t).forEach((function(i){fe(t[i])&&Object.keys(t[i]).forEach((function(a){"function"==typeof t[i][a]&&(t[i][a]=t[i][a].bind(e))})),e[i]=t[i]}))}function be(e){return void 0===e&&(e=""),"."+e.trim().replace(/([\.:\/])/g,"\\$1").replace(/ /g,".")}function Ee(e,t,i,a){var n=s();return i&&Object.keys(a).forEach((function(i){if(!t[i]&&!0===t.auto){var r=n.createElement("div");r.className=a[i],e.append(r),t[i]=r}})),t}function Ce(){var e=l(),t=s();return{touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),pointerEvents:!!e.PointerEvent&&"maxTouchPoints"in e.navigator&&e.navigator.maxTouchPoints>=0,observer:"MutationObserver"in e||"WebkitMutationObserver"in e,passiveListener:function(){var t=!1;try{var i=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassiveListener",null,i)}catch(e){}return t}(),gestures:"ongesturestart"in e}}function ye(){return se||(se=Ce()),se}function we(e){var t=(void 0===e?{}:e).userAgent,i=ye(),a=l(),n=a.navigator.platform,r=t||a.navigator.userAgent,s={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,u=r.match(/(Android);?[\s\/]+([\d.]+)?/),c=r.match(/(iPad).*OS\s([\d_]+)/),p=r.match(/(iPod)(.*OS\s([\d_]+))?/),v=!c&&r.match(/(iPhone\sOS|iOS)\s([\d_]+)/),h="Win32"===n,f="MacIntel"===n,m=["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"];return!c&&f&&i.touch&&m.indexOf(o+"x"+d)>=0&&((c=r.match(/(Version)\/([\d.]+)/))||(c=[0,1,"13_0_0"]),f=!1),u&&!h&&(s.os="android",s.android=!0),(c||v||p)&&(s.os="ios",s.ios=!0),s}function Te(e){return void 0===e&&(e={}),oe||(oe=we(e)),oe}function xe(){var e=l();function t(){var t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}return{isEdge:!!e.navigator.userAgent.match(/Edge/g),isSafari:t(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}function Se(){return le||(le=xe()),le}Object.keys(de).forEach((function(e){Object.defineProperty(T.fn,e,{value:de[e],writable:!0})}));var Me=function(){return void 0!==l().ResizeObserver},ke={name:"resize",create:function(){var e=this;me(e,{resize:{observer:null,createObserver:function(){e&&!e.destroyed&&e.initialized&&(e.resize.observer=new ResizeObserver((function(t){var i=e.width,a=e.height,n=i,r=a;t.forEach((function(t){var i=t.contentBoxSize,a=t.contentRect,s=t.target;s&&s!==e.el||(n=a?a.width:(i[0]||i).inlineSize,r=a?a.height:(i[0]||i).blockSize)})),n===i&&r===a||e.resize.resizeHandler()})),e.resize.observer.observe(e.el))},removeObserver:function(){e.resize.observer&&e.resize.observer.unobserve&&e.el&&(e.resize.observer.unobserve(e.el),e.resize.observer=null)},resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(e){var t=l();e.params.resizeObserver&&Me()?e.resize.createObserver():(t.addEventListener("resize",e.resize.resizeHandler),t.addEventListener("orientationchange",e.resize.orientationChangeHandler))},destroy:function(e){var t=l();e.resize.removeObserver(),t.removeEventListener("resize",e.resize.resizeHandler),t.removeEventListener("orientationchange",e.resize.orientationChangeHandler)}}},Pe={attach:function(e,t){void 0===t&&(t={});var i=l(),a=this,n=new(i.MutationObserver||i.WebkitMutationObserver)((function(e){if(1!==e.length){var t=function(){a.emit("observerUpdate",e[0])};i.requestAnimationFrame?i.requestAnimationFrame(t):i.setTimeout(t,0)}else a.emit("observerUpdate",e[0])}));n.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),a.observer.observers.push(n)},init:function(){var e=this;if(e.support.observer&&e.params.observer){if(e.params.observeParents)for(var t=e.$el.parents(),i=0;i<t.length;i+=1)e.observer.attach(t[i]);e.observer.attach(e.$el[0],{childList:e.params.observeSlideChildren}),e.observer.attach(e.$wrapperEl[0],{attributes:!1})}},destroy:function(){var e=this;e.observer.observers.forEach((function(e){e.disconnect()})),e.observer.observers=[]}},ze={name:"observer",params:{observer:!1,observeParents:!1,observeSlideChildren:!1},create:function(){ge(this,{observer:i({},Pe,{observers:[]})})},on:{init:function(e){e.observer.init()},destroy:function(e){e.observer.destroy()}}},$e={useParams:function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(i){var a=t.modules[i];a.params&&me(e,a.params)}))},useModules:function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(i){var a=t.modules[i],n=e[i]||{};a.on&&t.on&&Object.keys(a.on).forEach((function(e){t.on(e,a.on[e])})),a.create&&a.create.bind(t)(n)}))}},Le={on:function(e,t,i){var a=this;if("function"!=typeof t)return a;var n=i?"unshift":"push";return e.split(" ").forEach((function(e){a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][n](t)})),a},once:function(e,t,i){var a=this;if("function"!=typeof t)return a;function n(){a.off(e,n),n.__emitterProxy&&delete n.__emitterProxy;for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];t.apply(a,r)}return n.__emitterProxy=t,a.on(e,n,i)},onAny:function(e,t){var i=this;if("function"!=typeof e)return i;var a=t?"unshift":"push";return i.eventsAnyListeners.indexOf(e)<0&&i.eventsAnyListeners[a](e),i},offAny:function(e){var t=this;if(!t.eventsAnyListeners)return t;var i=t.eventsAnyListeners.indexOf(e);return i>=0&&t.eventsAnyListeners.splice(i,1),t},off:function(e,t){var i=this;return i.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?i.eventsListeners[e]=[]:i.eventsListeners[e]&&i.eventsListeners[e].forEach((function(a,n){(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&i.eventsListeners[e].splice(n,1)}))})),i):i},emit:function(){var e,t,i,a=this;if(!a.eventsListeners)return a;for(var n=arguments.length,r=new Array(n),s=0;s<n;s++)r[s]=arguments[s];return"string"==typeof r[0]||Array.isArray(r[0])?(e=r[0],t=r.slice(1,r.length),i=a):(e=r[0].events,t=r[0].data,i=r[0].context||a),t.unshift(i),(Array.isArray(e)?e:e.split(" ")).forEach((function(e){a.eventsAnyListeners&&a.eventsAnyListeners.length&&a.eventsAnyListeners.forEach((function(a){a.apply(i,[e].concat(t))})),a.eventsListeners&&a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(e){e.apply(i,t)}))})),a}};function Oe(){var e,t,i=this,a=i.$el;e=void 0!==i.params.width&&null!==i.params.width?i.params.width:a[0].clientWidth,t=void 0!==i.params.height&&null!==i.params.height?i.params.height:a[0].clientHeight,0===e&&i.isHorizontal()||0===t&&i.isVertical()||(e=e-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),t=t-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(e)&&(e=0),Number.isNaN(t)&&(t=0),me(i,{width:e,height:t,size:i.isHorizontal()?e:t}))}function Ae(){var e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function i(e,i){return parseFloat(e.getPropertyValue(t(i))||0)}var a=e.params,n=e.$wrapperEl,r=e.size,s=e.rtlTranslate,o=e.wrongRTL,l=e.virtual&&a.virtual.enabled,d=l?e.virtual.slides.length:e.slides.length,u=n.children("."+e.params.slideClass),c=l?e.virtual.slides.length:u.length,p=[],v=[],h=[],f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));var m=a.slidesOffsetAfter;"function"==typeof m&&(m=a.slidesOffsetAfter.call(e));var g=e.snapGrid.length,b=e.slidesGrid.length,E=a.spaceBetween,C=-f,y=0,w=0;if(void 0!==r){var T,x;"string"==typeof E&&E.indexOf("%")>=0&&(E=parseFloat(E.replace("%",""))/100*r),e.virtualSize=-E,s?u.css({marginLeft:"",marginTop:""}):u.css({marginRight:"",marginBottom:""}),a.slidesPerColumn>1&&(T=Math.floor(c/a.slidesPerColumn)===c/e.params.slidesPerColumn?c:Math.ceil(c/a.slidesPerColumn)*a.slidesPerColumn,"auto"!==a.slidesPerView&&"row"===a.slidesPerColumnFill&&(T=Math.max(T,a.slidesPerView*a.slidesPerColumn)));for(var S,M,k,P=a.slidesPerColumn,z=T/P,$=Math.floor(c/a.slidesPerColumn),L=0;L<c;L+=1){x=0;var O=u.eq(L);if(a.slidesPerColumn>1){var A=void 0,I=void 0,G=void 0;if("row"===a.slidesPerColumnFill&&a.slidesPerGroup>1){var B=Math.floor(L/(a.slidesPerGroup*a.slidesPerColumn)),D=L-a.slidesPerColumn*a.slidesPerGroup*B,N=0===B?a.slidesPerGroup:Math.min(Math.ceil((c-B*P*a.slidesPerGroup)/P),a.slidesPerGroup);A=(I=D-(G=Math.floor(D/N))*N+B*a.slidesPerGroup)+G*T/P,O.css({"-webkit-box-ordinal-group":A,"-moz-box-ordinal-group":A,"-ms-flex-order":A,"-webkit-order":A,order:A})}else"column"===a.slidesPerColumnFill?(G=L-(I=Math.floor(L/P))*P,(I>$||I===$&&G===P-1)&&(G+=1)>=P&&(G=0,I+=1)):I=L-(G=Math.floor(L/z))*z;O.css(t("margin-top"),0!==G?a.spaceBetween&&a.spaceBetween+"px":"")}if("none"!==O.css("display")){if("auto"===a.slidesPerView){var R=getComputedStyle(O[0]),X=O[0].style.transform,Y=O[0].style.webkitTransform;if(X&&(O[0].style.transform="none"),Y&&(O[0].style.webkitTransform="none"),a.roundLengths)x=e.isHorizontal()?O.outerWidth(!0):O.outerHeight(!0);else{var W=i(R,"width"),H=i(R,"padding-left"),_=i(R,"padding-right"),F=i(R,"margin-left"),j=i(R,"margin-right"),V=R.getPropertyValue("box-sizing");if(V&&"border-box"===V)x=W+F+j;else{var q=O[0],U=q.clientWidth;x=W+H+_+F+j+(q.offsetWidth-U)}}X&&(O[0].style.transform=X),Y&&(O[0].style.webkitTransform=Y),a.roundLengths&&(x=Math.floor(x))}else x=(r-(a.slidesPerView-1)*E)/a.slidesPerView,a.roundLengths&&(x=Math.floor(x)),u[L]&&(u[L].style[t("width")]=x+"px");u[L]&&(u[L].swiperSlideSize=x),h.push(x),a.centeredSlides?(C=C+x/2+y/2+E,0===y&&0!==L&&(C=C-r/2-E),0===L&&(C=C-r/2-E),Math.abs(C)<.001&&(C=0),a.roundLengths&&(C=Math.floor(C)),w%a.slidesPerGroup==0&&p.push(C),v.push(C)):(a.roundLengths&&(C=Math.floor(C)),(w-Math.min(e.params.slidesPerGroupSkip,w))%e.params.slidesPerGroup==0&&p.push(C),v.push(C),C=C+x+E),e.virtualSize+=x+E,y=x,w+=1}}if(e.virtualSize=Math.max(e.virtualSize,r)+m,s&&o&&("slide"===a.effect||"coverflow"===a.effect)&&n.css({width:e.virtualSize+a.spaceBetween+"px"}),a.setWrapperSize&&n.css(((M={})[t("width")]=e.virtualSize+a.spaceBetween+"px",M)),a.slidesPerColumn>1&&(e.virtualSize=(x+a.spaceBetween)*T,e.virtualSize=Math.ceil(e.virtualSize/a.slidesPerColumn)-a.spaceBetween,n.css(((k={})[t("width")]=e.virtualSize+a.spaceBetween+"px",k)),a.centeredSlides)){S=[];for(var K=0;K<p.length;K+=1){var J=p[K];a.roundLengths&&(J=Math.floor(J)),p[K]<e.virtualSize+p[0]&&S.push(J)}p=S}if(!a.centeredSlides){S=[];for(var Q=0;Q<p.length;Q+=1){var Z=p[Q];a.roundLengths&&(Z=Math.floor(Z)),p[Q]<=e.virtualSize-r&&S.push(Z)}p=S,Math.floor(e.virtualSize-r)-Math.floor(p[p.length-1])>1&&p.push(e.virtualSize-r)}if(0===p.length&&(p=[0]),0!==a.spaceBetween){var ee,te=e.isHorizontal()&&s?"marginLeft":t("marginRight");u.filter((function(e,t){return!a.cssMode||t!==u.length-1})).css(((ee={})[te]=E+"px",ee))}if(a.centeredSlides&&a.centeredSlidesBounds){var ie=0;h.forEach((function(e){ie+=e+(a.spaceBetween?a.spaceBetween:0)}));var ae=(ie-=a.spaceBetween)-r;p=p.map((function(e){return e<0?-f:e>ae?ae+m:e}))}if(a.centerInsufficientSlides){var ne=0;if(h.forEach((function(e){ne+=e+(a.spaceBetween?a.spaceBetween:0)})),(ne-=a.spaceBetween)<r){var re=(r-ne)/2;p.forEach((function(e,t){p[t]=e-re})),v.forEach((function(e,t){v[t]=e+re}))}}me(e,{slides:u,snapGrid:p,slidesGrid:v,slidesSizesGrid:h}),c!==d&&e.emit("slidesLengthChange"),p.length!==g&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),v.length!==b&&e.emit("slidesGridLengthChange"),(a.watchSlidesProgress||a.watchSlidesVisibility)&&e.updateSlidesOffset()}}function Ie(e){var t,i=this,a=[],n=i.virtual&&i.params.virtual.enabled,r=0;"number"==typeof e?i.setTransition(e):!0===e&&i.setTransition(i.params.speed);var s=function(e){return n?i.slides.filter((function(t){return parseInt(t.getAttribute("data-swiper-slide-index"),10)===e}))[0]:i.slides.eq(e)[0]};if("auto"!==i.params.slidesPerView&&i.params.slidesPerView>1)if(i.params.centeredSlides)i.visibleSlides.each((function(e){a.push(e)}));else for(t=0;t<Math.ceil(i.params.slidesPerView);t+=1){var o=i.activeIndex+t;if(o>i.slides.length&&!n)break;a.push(s(o))}else a.push(s(i.activeIndex));for(t=0;t<a.length;t+=1)if(void 0!==a[t]){var l=a[t].offsetHeight;r=l>r?l:r}r&&i.$wrapperEl.css("height",r+"px")}function Ge(){for(var e=this,t=e.slides,i=0;i<t.length;i+=1)t[i].swiperSlideOffset=e.isHorizontal()?t[i].offsetLeft:t[i].offsetTop}function Be(e){void 0===e&&(e=this&&this.translate||0);var t=this,i=t.params,a=t.slides,n=t.rtlTranslate;if(0!==a.length){void 0===a[0].swiperSlideOffset&&t.updateSlidesOffset();var r=-e;n&&(r=e),a.removeClass(i.slideVisibleClass),t.visibleSlidesIndexes=[],t.visibleSlides=[];for(var s=0;s<a.length;s+=1){var o=a[s],l=(r+(i.centeredSlides?t.minTranslate():0)-o.swiperSlideOffset)/(o.swiperSlideSize+i.spaceBetween);if(i.watchSlidesVisibility||i.centeredSlides&&i.autoHeight){var d=-(r-o.swiperSlideOffset),u=d+t.slidesSizesGrid[s];(d>=0&&d<t.size-1||u>1&&u<=t.size||d<=0&&u>=t.size)&&(t.visibleSlides.push(o),t.visibleSlidesIndexes.push(s),a.eq(s).addClass(i.slideVisibleClass))}o.progress=n?-l:l}t.visibleSlides=T(t.visibleSlides)}}function De(e){var t=this;if(void 0===e){var i=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*i||0}var a=t.params,n=t.maxTranslate()-t.minTranslate(),r=t.progress,s=t.isBeginning,o=t.isEnd,l=s,d=o;0===n?(r=0,s=!0,o=!0):(s=(r=(e-t.minTranslate())/n)<=0,o=r>=1),me(t,{progress:r,isBeginning:s,isEnd:o}),(a.watchSlidesProgress||a.watchSlidesVisibility||a.centeredSlides&&a.autoHeight)&&t.updateSlidesProgress(e),s&&!l&&t.emit("reachBeginning toEdge"),o&&!d&&t.emit("reachEnd toEdge"),(l&&!s||d&&!o)&&t.emit("fromEdge"),t.emit("progress",r)}function Ne(){var e,t=this,i=t.slides,a=t.params,n=t.$wrapperEl,r=t.activeIndex,s=t.realIndex,o=t.virtual&&a.virtual.enabled;i.removeClass(a.slideActiveClass+" "+a.slideNextClass+" "+a.slidePrevClass+" "+a.slideDuplicateActiveClass+" "+a.slideDuplicateNextClass+" "+a.slideDuplicatePrevClass),(e=o?t.$wrapperEl.find("."+a.slideClass+'[data-swiper-slide-index="'+r+'"]'):i.eq(r)).addClass(a.slideActiveClass),a.loop&&(e.hasClass(a.slideDuplicateClass)?n.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+s+'"]').addClass(a.slideDuplicateActiveClass):n.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+s+'"]').addClass(a.slideDuplicateActiveClass));var l=e.nextAll("."+a.slideClass).eq(0).addClass(a.slideNextClass);a.loop&&0===l.length&&(l=i.eq(0)).addClass(a.slideNextClass);var d=e.prevAll("."+a.slideClass).eq(0).addClass(a.slidePrevClass);a.loop&&0===d.length&&(d=i.eq(-1)).addClass(a.slidePrevClass),a.loop&&(l.hasClass(a.slideDuplicateClass)?n.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicateNextClass):n.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicateNextClass),d.hasClass(a.slideDuplicateClass)?n.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicatePrevClass):n.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+d.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicatePrevClass)),t.emitSlidesClasses()}function Re(e){var t,i=this,a=i.rtlTranslate?i.translate:-i.translate,n=i.slidesGrid,r=i.snapGrid,s=i.params,o=i.activeIndex,l=i.realIndex,d=i.snapIndex,u=e;if(void 0===u){for(var c=0;c<n.length;c+=1)void 0!==n[c+1]?a>=n[c]&&a<n[c+1]-(n[c+1]-n[c])/2?u=c:a>=n[c]&&a<n[c+1]&&(u=c+1):a>=n[c]&&(u=c);s.normalizeSlideIndex&&(u<0||void 0===u)&&(u=0)}if(r.indexOf(a)>=0)t=r.indexOf(a);else{var p=Math.min(s.slidesPerGroupSkip,u);t=p+Math.floor((u-p)/s.slidesPerGroup)}if(t>=r.length&&(t=r.length-1),u!==o){var v=parseInt(i.slides.eq(u).attr("data-swiper-slide-index")||u,10);me(i,{snapIndex:t,realIndex:v,previousIndex:o,activeIndex:u}),i.emit("activeIndexChange"),i.emit("snapIndexChange"),l!==v&&i.emit("realIndexChange"),(i.initialized||i.params.runCallbacksOnInit)&&i.emit("slideChange")}else t!==d&&(i.snapIndex=t,i.emit("snapIndexChange"))}function Xe(e){var t,i=this,a=i.params,n=T(e.target).closest("."+a.slideClass)[0],r=!1;if(n)for(var s=0;s<i.slides.length;s+=1)if(i.slides[s]===n){r=!0,t=s;break}if(!n||!r)return i.clickedSlide=void 0,void(i.clickedIndex=void 0);i.clickedSlide=n,i.virtual&&i.params.virtual.enabled?i.clickedIndex=parseInt(T(n).attr("data-swiper-slide-index"),10):i.clickedIndex=t,a.slideToClickedSlide&&void 0!==i.clickedIndex&&i.clickedIndex!==i.activeIndex&&i.slideToClickedSlide()}function Ye(e){void 0===e&&(e=this.isHorizontal()?"x":"y");var t=this,i=t.params,a=t.rtlTranslate,n=t.translate,r=t.$wrapperEl;if(i.virtualTranslate)return a?-n:n;if(i.cssMode)return n;var s=he(r[0],e);return a&&(s=-s),s||0}function We(e,t){var i=this,a=i.rtlTranslate,n=i.params,r=i.$wrapperEl,s=i.wrapperEl,o=i.progress,l=0,d=0,u=0;i.isHorizontal()?l=a?-e:e:d=e,n.roundLengths&&(l=Math.floor(l),d=Math.floor(d)),n.cssMode?s[i.isHorizontal()?"scrollLeft":"scrollTop"]=i.isHorizontal()?-l:-d:n.virtualTranslate||r.transform("translate3d("+l+"px, "+d+"px, "+u+"px)"),i.previousTranslate=i.translate,i.translate=i.isHorizontal()?l:d;var c=i.maxTranslate()-i.minTranslate();(0===c?0:(e-i.minTranslate())/c)!==o&&i.updateProgress(e),i.emit("setTranslate",i.translate,t)}function He(){return-this.snapGrid[0]}function _e(){return-this.snapGrid[this.snapGrid.length-1]}function Fe(e,t,i,a,n){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),void 0===a&&(a=!0);var r=this,s=r.params,o=r.wrapperEl;if(r.animating&&s.preventInteractionOnTransition)return!1;var l,d=r.minTranslate(),u=r.maxTranslate();if(l=a&&e>d?d:a&&e<u?u:e,r.updateProgress(l),s.cssMode){var c,p=r.isHorizontal();return 0===t?o[p?"scrollLeft":"scrollTop"]=-l:o.scrollTo?o.scrollTo(((c={})[p?"left":"top"]=-l,c.behavior="smooth",c)):o[p?"scrollLeft":"scrollTop"]=-l,!0}return 0===t?(r.setTransition(0),r.setTranslate(l),i&&(r.emit("beforeTransitionStart",t,n),r.emit("transitionEnd"))):(r.setTransition(t),r.setTranslate(l),i&&(r.emit("beforeTransitionStart",t,n),r.emit("transitionStart")),r.animating||(r.animating=!0,r.onTranslateToWrapperTransitionEnd||(r.onTranslateToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd),r.onTranslateToWrapperTransitionEnd=null,delete r.onTranslateToWrapperTransitionEnd,i&&r.emit("transitionEnd"))}),r.$wrapperEl[0].addEventListener("transitionend",r.onTranslateToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onTranslateToWrapperTransitionEnd))),!0}function je(e,t){var i=this;i.params.cssMode||i.$wrapperEl.transition(e),i.emit("setTransition",e,t)}function Ve(e,t){void 0===e&&(e=!0);var i=this,a=i.activeIndex,n=i.params,r=i.previousIndex;if(!n.cssMode){n.autoHeight&&i.updateAutoHeight();var s=t;if(s||(s=a>r?"next":a<r?"prev":"reset"),i.emit("transitionStart"),e&&a!==r){if("reset"===s)return void i.emit("slideResetTransitionStart");i.emit("slideChangeTransitionStart"),"next"===s?i.emit("slideNextTransitionStart"):i.emit("slidePrevTransitionStart")}}}function qe(e,t){void 0===e&&(e=!0);var i=this,a=i.activeIndex,n=i.previousIndex,r=i.params;if(i.animating=!1,!r.cssMode){i.setTransition(0);var s=t;if(s||(s=a>n?"next":a<n?"prev":"reset"),i.emit("transitionEnd"),e&&a!==n){if("reset"===s)return void i.emit("slideResetTransitionEnd");i.emit("slideChangeTransitionEnd"),"next"===s?i.emit("slideNextTransitionEnd"):i.emit("slidePrevTransitionEnd")}}}function Ue(e,t,i,a,n){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0),"number"!=typeof e&&"string"!=typeof e)throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. ["+typeof e+"] given.");if("string"==typeof e){var r=parseInt(e,10);if(!isFinite(r))throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. ["+e+"] given.");e=r}var s=this,o=e;o<0&&(o=0);var l=s.params,d=s.snapGrid,u=s.slidesGrid,c=s.previousIndex,p=s.activeIndex,v=s.rtlTranslate,h=s.wrapperEl,f=s.enabled;if(s.animating&&l.preventInteractionOnTransition||!f&&!a&&!n)return!1;var m=Math.min(s.params.slidesPerGroupSkip,o),g=m+Math.floor((o-m)/s.params.slidesPerGroup);g>=d.length&&(g=d.length-1),(p||l.initialSlide||0)===(c||0)&&i&&s.emit("beforeSlideChangeStart");var b,E=-d[g];if(s.updateProgress(E),l.normalizeSlideIndex)for(var C=0;C<u.length;C+=1){var y=-Math.floor(100*E),w=Math.floor(100*u[C]),T=Math.floor(100*u[C+1]);void 0!==u[C+1]?y>=w&&y<T-(T-w)/2?o=C:y>=w&&y<T&&(o=C+1):y>=w&&(o=C)}if(s.initialized&&o!==p){if(!s.allowSlideNext&&E<s.translate&&E<s.minTranslate())return!1;if(!s.allowSlidePrev&&E>s.translate&&E>s.maxTranslate()&&(p||0)!==o)return!1}if(b=o>p?"next":o<p?"prev":"reset",v&&-E===s.translate||!v&&E===s.translate)return s.updateActiveIndex(o),l.autoHeight&&s.updateAutoHeight(),s.updateSlidesClasses(),"slide"!==l.effect&&s.setTranslate(E),"reset"!==b&&(s.transitionStart(i,b),s.transitionEnd(i,b)),!1;if(l.cssMode){var x,S=s.isHorizontal(),M=-E;return v&&(M=h.scrollWidth-h.offsetWidth-M),0===t?h[S?"scrollLeft":"scrollTop"]=M:h.scrollTo?h.scrollTo(((x={})[S?"left":"top"]=M,x.behavior="smooth",x)):h[S?"scrollLeft":"scrollTop"]=M,!0}return 0===t?(s.setTransition(0),s.setTranslate(E),s.updateActiveIndex(o),s.updateSlidesClasses(),s.emit("beforeTransitionStart",t,a),s.transitionStart(i,b),s.transitionEnd(i,b)):(s.setTransition(t),s.setTranslate(E),s.updateActiveIndex(o),s.updateSlidesClasses(),s.emit("beforeTransitionStart",t,a),s.transitionStart(i,b),s.animating||(s.animating=!0,s.onSlideToWrapperTransitionEnd||(s.onSlideToWrapperTransitionEnd=function(e){s&&!s.destroyed&&e.target===this&&(s.$wrapperEl[0].removeEventListener("transitionend",s.onSlideToWrapperTransitionEnd),s.$wrapperEl[0].removeEventListener("webkitTransitionEnd",s.onSlideToWrapperTransitionEnd),s.onSlideToWrapperTransitionEnd=null,delete s.onSlideToWrapperTransitionEnd,s.transitionEnd(i,b))}),s.$wrapperEl[0].addEventListener("transitionend",s.onSlideToWrapperTransitionEnd),s.$wrapperEl[0].addEventListener("webkitTransitionEnd",s.onSlideToWrapperTransitionEnd))),!0}function Ke(e,t,i,a){void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===i&&(i=!0);var n=this,r=e;return n.params.loop&&(r+=n.loopedSlides),n.slideTo(r,t,i,a)}function Je(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var a=this,n=a.params,r=a.animating;if(!a.enabled)return a;var s=a.activeIndex<n.slidesPerGroupSkip?1:n.slidesPerGroup;if(n.loop){if(r&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}return a.slideTo(a.activeIndex+s,e,t,i)}function Qe(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var a=this,n=a.params,r=a.animating,s=a.snapGrid,o=a.slidesGrid,l=a.rtlTranslate;if(!a.enabled)return a;if(n.loop){if(r&&n.loopPreventsSlide)return!1;a.loopFix(),a._clientLeft=a.$wrapperEl[0].clientLeft}function d(e){return e<0?-Math.floor(Math.abs(e)):Math.floor(e)}var u,c=d(l?a.translate:-a.translate),p=s.map((function(e){return d(e)})),v=s[p.indexOf(c)-1];return void 0===v&&n.cssMode&&s.forEach((function(e){!v&&c>=e&&(v=e)})),void 0!==v&&(u=o.indexOf(v))<0&&(u=a.activeIndex-1),a.slideTo(u,e,t,i)}function Ze(e,t,i){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);var a=this;return a.slideTo(a.activeIndex,e,t,i)}function et(e,t,i,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);var n=this,r=n.activeIndex,s=Math.min(n.params.slidesPerGroupSkip,r),o=s+Math.floor((r-s)/n.params.slidesPerGroup),l=n.rtlTranslate?n.translate:-n.translate;if(l>=n.snapGrid[o]){var d=n.snapGrid[o];l-d>(n.snapGrid[o+1]-d)*a&&(r+=n.params.slidesPerGroup)}else{var u=n.snapGrid[o-1];l-u<=(n.snapGrid[o]-u)*a&&(r-=n.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,n.slidesGrid.length-1),n.slideTo(r,e,t,i)}function tt(){var e,t=this,i=t.params,a=t.$wrapperEl,n="auto"===i.slidesPerView?t.slidesPerViewDynamic():i.slidesPerView,r=t.clickedIndex;if(i.loop){if(t.animating)return;e=parseInt(T(t.clickedSlide).attr("data-swiper-slide-index"),10),i.centeredSlides?r<t.loopedSlides-n/2||r>t.slides.length-t.loopedSlides+n/2?(t.loopFix(),r=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),ce((function(){t.slideTo(r)}))):t.slideTo(r):r>t.slides.length-n?(t.loopFix(),r=a.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),ce((function(){t.slideTo(r)}))):t.slideTo(r)}else t.slideTo(r)}function it(){var e=this,t=s(),i=e.params,a=e.$wrapperEl;a.children("."+i.slideClass+"."+i.slideDuplicateClass).remove();var n=a.children("."+i.slideClass);if(i.loopFillGroupWithBlank){var r=i.slidesPerGroup-n.length%i.slidesPerGroup;if(r!==i.slidesPerGroup){for(var o=0;o<r;o+=1){var l=T(t.createElement("div")).addClass(i.slideClass+" "+i.slideBlankClass);a.append(l)}n=a.children("."+i.slideClass)}}"auto"!==i.slidesPerView||i.loopedSlides||(i.loopedSlides=n.length),e.loopedSlides=Math.ceil(parseFloat(i.loopedSlides||i.slidesPerView,10)),e.loopedSlides+=i.loopAdditionalSlides,e.loopedSlides>n.length&&(e.loopedSlides=n.length);var d=[],u=[];n.each((function(t,i){var a=T(t);i<e.loopedSlides&&u.push(t),i<n.length&&i>=n.length-e.loopedSlides&&d.push(t),a.attr("data-swiper-slide-index",i)}));for(var c=0;c<u.length;c+=1)a.append(T(u[c].cloneNode(!0)).addClass(i.slideDuplicateClass));for(var p=d.length-1;p>=0;p-=1)a.prepend(T(d[p].cloneNode(!0)).addClass(i.slideDuplicateClass))}function at(){var e=this;e.emit("beforeLoopFix");var t,i=e.activeIndex,a=e.slides,n=e.loopedSlides,r=e.allowSlidePrev,s=e.allowSlideNext,o=e.snapGrid,l=e.rtlTranslate;e.allowSlidePrev=!0,e.allowSlideNext=!0;var d=-o[i]-e.getTranslate();i<n?(t=a.length-3*n+i,t+=n,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)):i>=a.length-n&&(t=-a.length+i+n,t+=n,e.slideTo(t,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)),e.allowSlidePrev=r,e.allowSlideNext=s,e.emit("loopFix")}function nt(){var e=this,t=e.$wrapperEl,i=e.params,a=e.slides;t.children("."+i.slideClass+"."+i.slideDuplicateClass+",."+i.slideClass+"."+i.slideBlankClass).remove(),a.removeAttr("data-swiper-slide-index")}function rt(e){var t=this;if(!(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)){var i=t.el;i.style.cursor="move",i.style.cursor=e?"-webkit-grabbing":"-webkit-grab",i.style.cursor=e?"-moz-grabbin":"-moz-grab",i.style.cursor=e?"grabbing":"grab"}}function st(){var e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e.el.style.cursor="")}function ot(e){var t=this,i=t.$wrapperEl,a=t.params;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var n=0;n<e.length;n+=1)e[n]&&i.append(e[n]);else i.append(e);a.loop&&t.loopCreate(),a.observer&&t.support.observer||t.update()}function lt(e){var t=this,i=t.params,a=t.$wrapperEl,n=t.activeIndex;i.loop&&t.loopDestroy();var r=n+1;if("object"==typeof e&&"length"in e){for(var s=0;s<e.length;s+=1)e[s]&&a.prepend(e[s]);r=n+e.length}else a.prepend(e);i.loop&&t.loopCreate(),i.observer&&t.support.observer||t.update(),t.slideTo(r,0,!1)}function dt(e,t){var i=this,a=i.$wrapperEl,n=i.params,r=i.activeIndex;n.loop&&(r-=i.loopedSlides,i.loopDestroy(),i.slides=a.children("."+n.slideClass));var s=i.slides.length;if(e<=0)i.prependSlide(t);else if(e>=s)i.appendSlide(t);else{for(var o=r>e?r+1:r,l=[],d=s-1;d>=e;d-=1){var u=i.slides.eq(d);u.remove(),l.unshift(u)}if("object"==typeof t&&"length"in t){for(var c=0;c<t.length;c+=1)t[c]&&a.append(t[c]);o=r>e?r+t.length:r}else a.append(t);for(var p=0;p<l.length;p+=1)a.append(l[p]);n.loop&&i.loopCreate(),n.observer&&i.support.observer||i.update(),n.loop?i.slideTo(o+i.loopedSlides,0,!1):i.slideTo(o,0,!1)}}function ut(e){var t=this,i=t.params,a=t.$wrapperEl,n=t.activeIndex;i.loop&&(n-=t.loopedSlides,t.loopDestroy(),t.slides=a.children("."+i.slideClass));var r,s=n;if("object"==typeof e&&"length"in e){for(var o=0;o<e.length;o+=1)r=e[o],t.slides[r]&&t.slides.eq(r).remove(),r<s&&(s-=1);s=Math.max(s,0)}else r=e,t.slides[r]&&t.slides.eq(r).remove(),r<s&&(s-=1),s=Math.max(s,0);i.loop&&t.loopCreate(),i.observer&&t.support.observer||t.update(),i.loop?t.slideTo(s+t.loopedSlides,0,!1):t.slideTo(s,0,!1)}function ct(){for(var e=this,t=[],i=0;i<e.slides.length;i+=1)t.push(i);e.removeSlide(t)}function pt(e){var t=this,i=s(),a=l(),n=t.touchEventsData,r=t.params,o=t.touches;if(t.enabled&&(!t.animating||!r.preventInteractionOnTransition)){var d=e;d.originalEvent&&(d=d.originalEvent);var u=T(d.target);if(("wrapper"!==r.touchEventsTarget||u.closest(t.wrapperEl).length)&&(n.isTouchEvent="touchstart"===d.type,(n.isTouchEvent||!("which"in d)||3!==d.which)&&!(!n.isTouchEvent&&"button"in d&&d.button>0||n.isTouched&&n.isMoved)))if(!!r.noSwipingClass&&""!==r.noSwipingClass&&d.target&&d.target.shadowRoot&&e.path&&e.path[0]&&(u=T(e.path[0])),r.noSwiping&&u.closest(r.noSwipingSelector?r.noSwipingSelector:"."+r.noSwipingClass)[0])t.allowClick=!0;else if(!r.swipeHandler||u.closest(r.swipeHandler)[0]){o.currentX="touchstart"===d.type?d.targetTouches[0].pageX:d.pageX,o.currentY="touchstart"===d.type?d.targetTouches[0].pageY:d.pageY;var c=o.currentX,p=o.currentY,v=r.edgeSwipeDetection||r.iOSEdgeSwipeDetection,h=r.edgeSwipeThreshold||r.iOSEdgeSwipeThreshold;if(v&&(c<=h||c>=a.innerWidth-h)){if("prevent"!==v)return;e.preventDefault()}if(me(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=c,o.startY=p,n.touchStartTime=pe(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,r.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==d.type){var f=!0;u.is(n.focusableElements)&&(f=!1),i.activeElement&&T(i.activeElement).is(n.focusableElements)&&i.activeElement!==u[0]&&i.activeElement.blur();var m=f&&t.allowTouchMove&&r.touchStartPreventDefault;!r.touchStartForcePreventDefault&&!m||u[0].isContentEditable||d.preventDefault()}t.emit("touchStart",d)}}}function vt(e){var t=s(),i=this,a=i.touchEventsData,n=i.params,r=i.touches,o=i.rtlTranslate;if(i.enabled){var l=e;if(l.originalEvent&&(l=l.originalEvent),a.isTouched){if(!a.isTouchEvent||"touchmove"===l.type){var d="touchmove"===l.type&&l.targetTouches&&(l.targetTouches[0]||l.changedTouches[0]),u="touchmove"===l.type?d.pageX:l.pageX,c="touchmove"===l.type?d.pageY:l.pageY;if(l.preventedByNestedSwiper)return r.startX=u,void(r.startY=c);if(!i.allowTouchMove)return i.allowClick=!1,void(a.isTouched&&(me(r,{startX:u,startY:c,currentX:u,currentY:c}),a.touchStartTime=pe()));if(a.isTouchEvent&&n.touchReleaseOnEdges&&!n.loop)if(i.isVertical()){if(c<r.startY&&i.translate<=i.maxTranslate()||c>r.startY&&i.translate>=i.minTranslate())return a.isTouched=!1,void(a.isMoved=!1)}else if(u<r.startX&&i.translate<=i.maxTranslate()||u>r.startX&&i.translate>=i.minTranslate())return;if(a.isTouchEvent&&t.activeElement&&l.target===t.activeElement&&T(l.target).is(a.focusableElements))return a.isMoved=!0,void(i.allowClick=!1);if(a.allowTouchCallbacks&&i.emit("touchMove",l),!(l.targetTouches&&l.targetTouches.length>1)){r.currentX=u,r.currentY=c;var p,v=r.currentX-r.startX,h=r.currentY-r.startY;if(!(i.params.threshold&&Math.sqrt(Math.pow(v,2)+Math.pow(h,2))<i.params.threshold))if(void 0===a.isScrolling&&(i.isHorizontal()&&r.currentY===r.startY||i.isVertical()&&r.currentX===r.startX?a.isScrolling=!1:v*v+h*h>=25&&(p=180*Math.atan2(Math.abs(h),Math.abs(v))/Math.PI,a.isScrolling=i.isHorizontal()?p>n.touchAngle:90-p>n.touchAngle)),a.isScrolling&&i.emit("touchMoveOpposite",l),void 0===a.startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(a.startMoving=!0)),a.isScrolling)a.isTouched=!1;else if(a.startMoving){i.allowClick=!1,!n.cssMode&&l.cancelable&&l.preventDefault(),n.touchMoveStopPropagation&&!n.nested&&l.stopPropagation(),a.isMoved||(n.loop&&i.loopFix(),a.startTranslate=i.getTranslate(),i.setTransition(0),i.animating&&i.$wrapperEl.trigger("webkitTransitionEnd transitionend"),a.allowMomentumBounce=!1,!n.grabCursor||!0!==i.allowSlideNext&&!0!==i.allowSlidePrev||i.setGrabCursor(!0),i.emit("sliderFirstMove",l)),i.emit("sliderMove",l),a.isMoved=!0;var f=i.isHorizontal()?v:h;r.diff=f,f*=n.touchRatio,o&&(f=-f),i.swipeDirection=f>0?"prev":"next",a.currentTranslate=f+a.startTranslate;var m=!0,g=n.resistanceRatio;if(n.touchReleaseOnEdges&&(g=0),f>0&&a.currentTranslate>i.minTranslate()?(m=!1,n.resistance&&(a.currentTranslate=i.minTranslate()-1+Math.pow(-i.minTranslate()+a.startTranslate+f,g))):f<0&&a.currentTranslate<i.maxTranslate()&&(m=!1,n.resistance&&(a.currentTranslate=i.maxTranslate()+1-Math.pow(i.maxTranslate()-a.startTranslate-f,g))),m&&(l.preventedByNestedSwiper=!0),!i.allowSlideNext&&"next"===i.swipeDirection&&a.currentTranslate<a.startTranslate&&(a.currentTranslate=a.startTranslate),!i.allowSlidePrev&&"prev"===i.swipeDirection&&a.currentTranslate>a.startTranslate&&(a.currentTranslate=a.startTranslate),i.allowSlidePrev||i.allowSlideNext||(a.currentTranslate=a.startTranslate),n.threshold>0){if(!(Math.abs(f)>n.threshold||a.allowThresholdMove))return void(a.currentTranslate=a.startTranslate);if(!a.allowThresholdMove)return a.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,a.currentTranslate=a.startTranslate,void(r.diff=i.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}n.followFinger&&!n.cssMode&&((n.freeMode||n.watchSlidesProgress||n.watchSlidesVisibility)&&(i.updateActiveIndex(),i.updateSlidesClasses()),n.freeMode&&(0===a.velocities.length&&a.velocities.push({position:r[i.isHorizontal()?"startX":"startY"],time:a.touchStartTime}),a.velocities.push({position:r[i.isHorizontal()?"currentX":"currentY"],time:pe()})),i.updateProgress(a.currentTranslate),i.setTranslate(a.currentTranslate))}}}}else a.startMoving&&a.isScrolling&&i.emit("touchMoveOpposite",l)}}function ht(e){var t=this,i=t.touchEventsData,a=t.params,n=t.touches,r=t.rtlTranslate,s=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid;if(t.enabled){var d=e;if(d.originalEvent&&(d=d.originalEvent),i.allowTouchCallbacks&&t.emit("touchEnd",d),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&a.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);a.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var u,c=pe(),p=c-i.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap click",d),p<300&&c-i.lastClickTime<300&&t.emit("doubleTap doubleClick",d)),i.lastClickTime=pe(),ce((function(){t.destroyed||(t.allowClick=!0)})),!i.isTouched||!i.isMoved||!t.swipeDirection||0===n.diff||i.currentTranslate===i.startTranslate)return i.isTouched=!1,i.isMoved=!1,void(i.startMoving=!1);if(i.isTouched=!1,i.isMoved=!1,i.startMoving=!1,u=a.followFinger?r?t.translate:-t.translate:-i.currentTranslate,!a.cssMode)if(a.freeMode){if(u<-t.minTranslate())return void t.slideTo(t.activeIndex);if(u>-t.maxTranslate())return void(t.slides.length<l.length?t.slideTo(l.length-1):t.slideTo(t.slides.length-1));if(a.freeModeMomentum){if(i.velocities.length>1){var v=i.velocities.pop(),h=i.velocities.pop(),f=v.position-h.position,m=v.time-h.time;t.velocity=f/m,t.velocity/=2,Math.abs(t.velocity)<a.freeModeMinimumVelocity&&(t.velocity=0),(m>150||pe()-v.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=a.freeModeMomentumVelocityRatio,i.velocities.length=0;var g=1e3*a.freeModeMomentumRatio,b=t.velocity*g,E=t.translate+b;r&&(E=-E);var C,y,w=!1,T=20*Math.abs(t.velocity)*a.freeModeMomentumBounceRatio;if(E<t.maxTranslate())a.freeModeMomentumBounce?(E+t.maxTranslate()<-T&&(E=t.maxTranslate()-T),C=t.maxTranslate(),w=!0,i.allowMomentumBounce=!0):E=t.maxTranslate(),a.loop&&a.centeredSlides&&(y=!0);else if(E>t.minTranslate())a.freeModeMomentumBounce?(E-t.minTranslate()>T&&(E=t.minTranslate()+T),C=t.minTranslate(),w=!0,i.allowMomentumBounce=!0):E=t.minTranslate(),a.loop&&a.centeredSlides&&(y=!0);else if(a.freeModeSticky){for(var x,S=0;S<l.length;S+=1)if(l[S]>-E){x=S;break}E=-(E=Math.abs(l[x]-E)<Math.abs(l[x-1]-E)||"next"===t.swipeDirection?l[x]:l[x-1])}if(y&&t.once("transitionEnd",(function(){t.loopFix()})),0!==t.velocity){if(g=r?Math.abs((-E-t.translate)/t.velocity):Math.abs((E-t.translate)/t.velocity),a.freeModeSticky){var M=Math.abs((r?-E:E)-t.translate),k=t.slidesSizesGrid[t.activeIndex];g=M<k?a.speed:M<2*k?1.5*a.speed:2.5*a.speed}}else if(a.freeModeSticky)return void t.slideToClosest();a.freeModeMomentumBounce&&w?(t.updateProgress(C),t.setTransition(g),t.setTranslate(E),t.transitionStart(!0,t.swipeDirection),t.animating=!0,s.transitionEnd((function(){t&&!t.destroyed&&i.allowMomentumBounce&&(t.emit("momentumBounce"),t.setTransition(a.speed),setTimeout((function(){t.setTranslate(C),s.transitionEnd((function(){t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(t.updateProgress(E),t.setTransition(g),t.setTranslate(E),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,s.transitionEnd((function(){t&&!t.destroyed&&t.transitionEnd()})))):(t.emit("_freeModeNoMomentumRelease"),t.updateProgress(E)),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(a.freeModeSticky)return void t.slideToClosest();a.freeMode&&t.emit("_freeModeNoMomentumRelease")}(!a.freeModeMomentum||p>=a.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var P=0,z=t.slidesSizesGrid[0],$=0;$<o.length;$+=$<a.slidesPerGroupSkip?1:a.slidesPerGroup){var L=$<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;void 0!==o[$+L]?u>=o[$]&&u<o[$+L]&&(P=$,z=o[$+L]-o[$]):u>=o[$]&&(P=$,z=o[o.length-1]-o[o.length-2])}var O=(u-o[P])/z,A=P<a.slidesPerGroupSkip-1?1:a.slidesPerGroup;if(p>a.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(O>=a.longSwipesRatio?t.slideTo(P+A):t.slideTo(P)),"prev"===t.swipeDirection&&(O>1-a.longSwipesRatio?t.slideTo(P+A):t.slideTo(P))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);!t.navigation||d.target!==t.navigation.nextEl&&d.target!==t.navigation.prevEl?("next"===t.swipeDirection&&t.slideTo(P+A),"prev"===t.swipeDirection&&t.slideTo(P)):d.target===t.navigation.nextEl?t.slideTo(P+A):t.slideTo(P)}}}}function ft(){var e=this,t=e.params,i=e.el;if(!i||0!==i.offsetWidth){t.breakpoints&&e.setBreakpoint();var a=e.allowSlideNext,n=e.allowSlidePrev,r=e.snapGrid;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=n,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}}function mt(e){var t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function gt(){var e=this,t=e.wrapperEl,i=e.rtlTranslate;if(e.enabled){e.previousTranslate=e.translate,e.isHorizontal()?e.translate=i?t.scrollWidth-t.offsetWidth-t.scrollLeft:-t.scrollLeft:e.translate=-t.scrollTop,-0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();var a=e.maxTranslate()-e.minTranslate();(0===a?0:(e.translate-e.minTranslate())/a)!==e.progress&&e.updateProgress(i?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}}var bt=!1;function Et(){}function Ct(){var e=this,t=s(),i=e.params,a=e.touchEvents,n=e.el,r=e.wrapperEl,o=e.device,l=e.support;e.onTouchStart=pt.bind(e),e.onTouchMove=vt.bind(e),e.onTouchEnd=ht.bind(e),i.cssMode&&(e.onScroll=gt.bind(e)),e.onClick=mt.bind(e);var d=!!i.nested;if(!l.touch&&l.pointerEvents)n.addEventListener(a.start,e.onTouchStart,!1),t.addEventListener(a.move,e.onTouchMove,d),t.addEventListener(a.end,e.onTouchEnd,!1);else{if(l.touch){var u=!("touchstart"!==a.start||!l.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n.addEventListener(a.start,e.onTouchStart,u),n.addEventListener(a.move,e.onTouchMove,l.passiveListener?{passive:!1,capture:d}:d),n.addEventListener(a.end,e.onTouchEnd,u),a.cancel&&n.addEventListener(a.cancel,e.onTouchEnd,u),bt||(t.addEventListener("touchstart",Et),bt=!0)}(i.simulateTouch&&!o.ios&&!o.android||i.simulateTouch&&!l.touch&&o.ios)&&(n.addEventListener("mousedown",e.onTouchStart,!1),t.addEventListener("mousemove",e.onTouchMove,d),t.addEventListener("mouseup",e.onTouchEnd,!1))}(i.preventClicks||i.preventClicksPropagation)&&n.addEventListener("click",e.onClick,!0),i.cssMode&&r.addEventListener("scroll",e.onScroll),i.updateOnWindowResize?e.on(o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",ft,!0):e.on("observerUpdate",ft,!0)}function yt(){var e=this,t=s(),i=e.params,a=e.touchEvents,n=e.el,r=e.wrapperEl,o=e.device,l=e.support,d=!!i.nested;if(!l.touch&&l.pointerEvents)n.removeEventListener(a.start,e.onTouchStart,!1),t.removeEventListener(a.move,e.onTouchMove,d),t.removeEventListener(a.end,e.onTouchEnd,!1);else{if(l.touch){var u=!("onTouchStart"!==a.start||!l.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n.removeEventListener(a.start,e.onTouchStart,u),n.removeEventListener(a.move,e.onTouchMove,d),n.removeEventListener(a.end,e.onTouchEnd,u),a.cancel&&n.removeEventListener(a.cancel,e.onTouchEnd,u)}(i.simulateTouch&&!o.ios&&!o.android||i.simulateTouch&&!l.touch&&o.ios)&&(n.removeEventListener("mousedown",e.onTouchStart,!1),t.removeEventListener("mousemove",e.onTouchMove,d),t.removeEventListener("mouseup",e.onTouchEnd,!1))}(i.preventClicks||i.preventClicksPropagation)&&n.removeEventListener("click",e.onClick,!0),i.cssMode&&r.removeEventListener("scroll",e.onScroll),e.off(o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",ft)}function wt(){var e=this,t=e.activeIndex,i=e.initialized,a=e.loopedSlides,n=void 0===a?0:a,r=e.params,s=e.$el,o=r.breakpoints;if(o&&(!o||0!==Object.keys(o).length)){var l=e.getBreakpoint(o,e.params.breakpointsBase,e.el);if(l&&e.currentBreakpoint!==l){var d=l in o?o[l]:void 0;d&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach((function(e){var t=d[e];void 0!==t&&(d[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")}));var u=d||e.originalParams,c=r.slidesPerColumn>1,p=u.slidesPerColumn>1,v=r.enabled;c&&!p?(s.removeClass(r.containerModifierClass+"multirow "+r.containerModifierClass+"multirow-column"),e.emitContainerClasses()):!c&&p&&(s.addClass(r.containerModifierClass+"multirow"),"column"===u.slidesPerColumnFill&&s.addClass(r.containerModifierClass+"multirow-column"),e.emitContainerClasses());var h=u.direction&&u.direction!==r.direction,f=r.loop&&(u.slidesPerView!==r.slidesPerView||h);h&&i&&e.changeDirection(),me(e.params,u);var m=e.params.enabled;me(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),v&&!m?e.disable():!v&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",u),f&&i&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-n+e.loopedSlides,0,!1)),e.emit("breakpoint",u)}}}function Tt(e,t,i){if(void 0===t&&(t="window"),e&&("container"!==t||i)){var a=!1,n=l(),r="window"===t?n.innerHeight:i.clientHeight,s=Object.keys(e).map((function(e){if("string"==typeof e&&0===e.indexOf("@")){var t=parseFloat(e.substr(1));return{value:r*t,point:e}}return{value:e,point:e}}));s.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var o=0;o<s.length;o+=1){var d=s[o],u=d.point,c=d.value;"window"===t?n.matchMedia("(min-width: "+c+"px)").matches&&(a=u):c<=i.clientWidth&&(a=u)}return a||"max"}}function xt(e,t){var i=[];return e.forEach((function(e){"object"==typeof e?Object.keys(e).forEach((function(a){e[a]&&i.push(t+a)})):"string"==typeof e&&i.push(t+e)})),i}function St(){var e=this,t=e.classNames,i=e.params,a=e.rtl,n=e.$el,r=e.device,s=e.support,o=xt(["initialized",i.direction,{"pointer-events":s.pointerEvents&&!s.touch},{"free-mode":i.freeMode},{autoheight:i.autoHeight},{rtl:a},{multirow:i.slidesPerColumn>1},{"multirow-column":i.slidesPerColumn>1&&"column"===i.slidesPerColumnFill},{android:r.android},{ios:r.ios},{"css-mode":i.cssMode}],i.containerModifierClass);t.push.apply(t,o),n.addClass([].concat(t).join(" ")),e.emitContainerClasses()}function Mt(){var e=this,t=e.$el,i=e.classNames;t.removeClass(i.join(" ")),e.emitContainerClasses()}function kt(e,t,i,a,n,r){var s,o=l();function d(){r&&r()}T(e).parent("picture")[0]||e.complete&&n?d():t?((s=new o.Image).onload=d,s.onerror=d,a&&(s.sizes=a),i&&(s.srcset=i),t&&(s.src=t)):d()}function Pt(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var i=0;i<e.imagesToLoad.length;i+=1){var a=e.imagesToLoad[i];e.loadImage(a,a.currentSrc||a.getAttribute("src"),a.srcset||a.getAttribute("srcset"),a.sizes||a.getAttribute("sizes"),!0,t)}}function zt(){var e=this,t=e.params,i=e.isLocked,a=e.slides.length>0&&t.slidesOffsetBefore+t.spaceBetween*(e.slides.length-1)+e.slides[0].offsetWidth*e.slides.length;t.slidesOffsetBefore&&t.slidesOffsetAfter&&a?e.isLocked=a<=e.size:e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,i!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),i&&i!==e.isLocked&&(e.isEnd=!1,e.navigation&&e.navigation.update())}var $t={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!1,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1},Lt={modular:$e,eventsEmitter:Le,update:{updateSize:Oe,updateSlides:Ae,updateAutoHeight:Ie,updateSlidesOffset:Ge,updateSlidesProgress:Be,updateProgress:De,updateSlidesClasses:Ne,updateActiveIndex:Re,updateClickedSlide:Xe},translate:{getTranslate:Ye,setTranslate:We,minTranslate:He,maxTranslate:_e,translateTo:Fe},transition:{setTransition:je,transitionStart:Ve,transitionEnd:qe},slide:{slideTo:Ue,slideToLoop:Ke,slideNext:Je,slidePrev:Qe,slideReset:Ze,slideToClosest:et,slideToClickedSlide:tt},loop:{loopCreate:it,loopFix:at,loopDestroy:nt},grabCursor:{setGrabCursor:rt,unsetGrabCursor:st},manipulation:{appendSlide:ot,prependSlide:lt,addSlide:dt,removeSlide:ut,removeAllSlides:ct},events:{attachEvents:Ct,detachEvents:yt},breakpoints:{setBreakpoint:wt,getBreakpoint:Tt},checkOverflow:{checkOverflow:zt},classes:{addClasses:St,removeClasses:Mt},images:{loadImage:kt,preloadImages:Pt}},Ot={},At=function(){function e(){for(var t,i,a=arguments.length,n=new Array(a),r=0;r<a;r++)n[r]=arguments[r];if(1===n.length&&n[0].constructor&&"Object"===Object.prototype.toString.call(n[0]).slice(8,-1)?i=n[0]:(t=n[0],i=n[1]),i||(i={}),i=me({},i),t&&!i.el&&(i.el=t),i.el&&T(i.el).length>1){var s=[];return T(i.el).each((function(t){var a=me({},i,{el:t});s.push(new e(a))})),s}var o=this;o.__swiper__=!0,o.support=ye(),o.device=Te({userAgent:i.userAgent}),o.browser=Se(),o.eventsListeners={},o.eventsAnyListeners=[],void 0===o.modules&&(o.modules={}),Object.keys(o.modules).forEach((function(e){var t=o.modules[e];if(t.params){var a=Object.keys(t.params)[0],n=t.params[a];if("object"!=typeof n||null===n)return;if(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===i[a]&&(i[a]={auto:!0}),!(a in i)||!("enabled"in n))return;!0===i[a]&&(i[a]={enabled:!0}),"object"!=typeof i[a]||"enabled"in i[a]||(i[a].enabled=!0),i[a]||(i[a]={enabled:!1})}}));var l,d,u=me({},$t);return o.useParams(u),o.params=me({},u,Ot,i),o.originalParams=me({},o.params),o.passedParams=me({},i),o.params&&o.params.on&&Object.keys(o.params.on).forEach((function(e){o.on(e,o.params.on[e])})),o.params&&o.params.onAny&&o.onAny(o.params.onAny),o.$=T,me(o,{enabled:o.params.enabled,el:t,classNames:[],slides:T(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===o.params.direction},isVertical:function(){return"vertical"===o.params.direction},activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEvents:(l=["touchstart","touchmove","touchend","touchcancel"],d=["mousedown","mousemove","mouseup"],o.support.pointerEvents&&(d=["pointerdown","pointermove","pointerup"]),o.touchEventsTouch={start:l[0],move:l[1],end:l[2],cancel:l[3]},o.touchEventsDesktop={start:d[0],move:d[1],end:d[2]},o.support.touch||!o.params.simulateTouch?o.touchEventsTouch:o.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:o.params.focusableElements,lastClickTime:pe(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.useModules(),o.emit("_swiper"),o.params.init&&o.init(),o}var i=e.prototype;return i.enable=function(){var e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))},i.disable=function(){var e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))},i.setProgress=function(e,t){var i=this;e=Math.min(Math.max(e,0),1);var a=i.minTranslate(),n=(i.maxTranslate()-a)*e+a;i.translateTo(n,void 0===t?0:t),i.updateActiveIndex(),i.updateSlidesClasses()},i.emitContainerClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=e.el.className.split(" ").filter((function(t){return 0===t.indexOf("swiper-container")||0===t.indexOf(e.params.containerModifierClass)}));e.emit("_containerClasses",t.join(" "))}},i.getSlideClasses=function(e){var t=this;return e.className.split(" ").filter((function(e){return 0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass)})).join(" ")},i.emitSlidesClasses=function(){var e=this;if(e.params._emitClasses&&e.el){var t=[];e.slides.each((function(i){var a=e.getSlideClasses(i);t.push({slideEl:i,classNames:a}),e.emit("_slideClass",i,a)})),e.emit("_slideClasses",t)}},i.slidesPerViewDynamic=function(){var e=this,t=e.params,i=e.slides,a=e.slidesGrid,n=e.size,r=e.activeIndex,s=1;if(t.centeredSlides){for(var o,l=i[r].swiperSlideSize,d=r+1;d<i.length;d+=1)i[d]&&!o&&(s+=1,(l+=i[d].swiperSlideSize)>n&&(o=!0));for(var u=r-1;u>=0;u-=1)i[u]&&!o&&(s+=1,(l+=i[u].swiperSlideSize)>n&&(o=!0))}else for(var c=r+1;c<i.length;c+=1)a[c]-a[r]<n&&(s+=1);return s},i.update=function(){var e=this;if(e&&!e.destroyed){var t=e.snapGrid,i=e.params;i.breakpoints&&e.setBreakpoint(),e.updateSize(),e.updateSlides(),e.updateProgress(),e.updateSlidesClasses(),e.params.freeMode?(a(),e.params.autoHeight&&e.updateAutoHeight()):(("auto"===e.params.slidesPerView||e.params.slidesPerView>1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||a(),i.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function a(){var t=e.rtlTranslate?-1*e.translate:e.translate,i=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(i),e.updateActiveIndex(),e.updateSlidesClasses()}},i.changeDirection=function(e,t){void 0===t&&(t=!0);var i=this,a=i.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(i.$el.removeClass(""+i.params.containerModifierClass+a).addClass(""+i.params.containerModifierClass+e),i.emitContainerClasses(),i.params.direction=e,i.slides.each((function(t){"vertical"===e?t.style.width="":t.style.height=""})),i.emit("changeDirection"),t&&i.update()),i},i.mount=function(e){var t=this;if(t.mounted)return!0;var i=T(e||t.params.el);if(!(e=i[0]))return!1;e.swiper=t;var a=function(){return"."+(t.params.wrapperClass||"").trim().split(" ").join(".")},n=function(){if(e&&e.shadowRoot&&e.shadowRoot.querySelector){var t=T(e.shadowRoot.querySelector(a()));return t.children=function(e){return i.children(e)},t}return i.children(a())}();if(0===n.length&&t.params.createElements){var r=s().createElement("div");n=T(r),r.className=t.params.wrapperClass,i.append(r),i.children("."+t.params.slideClass).each((function(e){n.append(e)}))}return me(t,{$el:i,el:e,$wrapperEl:n,wrapperEl:n[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===i.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===i.css("direction")),wrongRTL:"-webkit-box"===n.css("display")}),!0},i.init=function(e){var t=this;return t.initialized||!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t},i.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var i=this,a=i.params,n=i.$el,r=i.$wrapperEl,s=i.slides;return void 0===i.params||i.destroyed||(i.emit("beforeDestroy"),i.initialized=!1,i.detachEvents(),a.loop&&i.loopDestroy(),t&&(i.removeClasses(),n.removeAttr("style"),r.removeAttr("style"),s&&s.length&&s.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),i.emit("destroy"),Object.keys(i.eventsListeners).forEach((function(e){i.off(e)})),!1!==e&&(i.$el[0].swiper=null,ue(i)),i.destroyed=!0),null},e.extendDefaults=function(e){me(Ot,e)},e.installModule=function(t){e.prototype.modules||(e.prototype.modules={});var i=t.name||Object.keys(e.prototype.modules).length+"_"+pe();e.prototype.modules[i]=t},e.use=function(t){return Array.isArray(t)?(t.forEach((function(t){return e.installModule(t)})),e):(e.installModule(t),e)},t(e,null,[{key:"extendedDefaults",get:function(){return Ot}},{key:"defaults",get:function(){return $t}}]),e}();Object.keys(Lt).forEach((function(e){Object.keys(Lt[e]).forEach((function(t){At.prototype[t]=Lt[e][t]}))})),At.use([ke,ze]);var It={toggleEl:function(e,t){e[t?"addClass":"removeClass"](this.params.navigation.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=t)},update:function(){var e=this,t=e.params.navigation,i=e.navigation.toggleEl;if(!e.params.loop){var a=e.navigation,n=a.$nextEl,r=a.$prevEl;r&&r.length>0&&(e.isBeginning?i(r,!0):i(r,!1),e.params.watchOverflow&&e.enabled&&r[e.isLocked?"addClass":"removeClass"](t.lockClass)),n&&n.length>0&&(e.isEnd?i(n,!0):i(n,!1),e.params.watchOverflow&&e.enabled&&n[e.isLocked?"addClass":"removeClass"](t.lockClass))}},onPrevClick:function(e){var t=this;e.preventDefault(),t.isBeginning&&!t.params.loop||t.slidePrev()},onNextClick:function(e){var t=this;e.preventDefault(),t.isEnd&&!t.params.loop||t.slideNext()},init:function(){var e,t,i=this,a=i.params.navigation;i.params.navigation=Ee(i.$el,i.params.navigation,i.params.createElements,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),(a.nextEl||a.prevEl)&&(a.nextEl&&(e=T(a.nextEl),i.params.uniqueNavElements&&"string"==typeof a.nextEl&&e.length>1&&1===i.$el.find(a.nextEl).length&&(e=i.$el.find(a.nextEl))),a.prevEl&&(t=T(a.prevEl),i.params.uniqueNavElements&&"string"==typeof a.prevEl&&t.length>1&&1===i.$el.find(a.prevEl).length&&(t=i.$el.find(a.prevEl))),e&&e.length>0&&e.on("click",i.navigation.onNextClick),t&&t.length>0&&t.on("click",i.navigation.onPrevClick),me(i.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}),i.enabled||(e&&e.addClass(a.lockClass),t&&t.addClass(a.lockClass)))},destroy:function(){var e=this,t=e.navigation,i=t.$nextEl,a=t.$prevEl;i&&i.length&&(i.off("click",e.navigation.onNextClick),i.removeClass(e.params.navigation.disabledClass)),a&&a.length&&(a.off("click",e.navigation.onPrevClick),a.removeClass(e.params.navigation.disabledClass))}},Gt={update:function(){var e=this,t=e.rtl,i=e.params.pagination;if(i.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var a,n=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,r=e.pagination.$el,s=e.params.loop?Math.ceil((n-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;if(e.params.loop?((a=Math.ceil((e.activeIndex-e.loopedSlides)/e.params.slidesPerGroup))>n-1-2*e.loopedSlides&&(a-=n-2*e.loopedSlides),a>s-1&&(a-=s),a<0&&"bullets"!==e.params.paginationType&&(a=s+a)):a=void 0!==e.snapIndex?e.snapIndex:e.activeIndex||0,"bullets"===i.type&&e.pagination.bullets&&e.pagination.bullets.length>0){var o,l,d,u=e.pagination.bullets;if(i.dynamicBullets&&(e.pagination.bulletSize=u.eq(0)[e.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(e.isHorizontal()?"width":"height",e.pagination.bulletSize*(i.dynamicMainBullets+4)+"px"),i.dynamicMainBullets>1&&void 0!==e.previousIndex&&(e.pagination.dynamicBulletIndex+=a-e.previousIndex,e.pagination.dynamicBulletIndex>i.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=i.dynamicMainBullets-1:e.pagination.dynamicBulletIndex<0&&(e.pagination.dynamicBulletIndex=0)),o=a-e.pagination.dynamicBulletIndex,d=((l=o+(Math.min(u.length,i.dynamicMainBullets)-1))+o)/2),u.removeClass(i.bulletActiveClass+" "+i.bulletActiveClass+"-next "+i.bulletActiveClass+"-next-next "+i.bulletActiveClass+"-prev "+i.bulletActiveClass+"-prev-prev "+i.bulletActiveClass+"-main"),r.length>1)u.each((function(e){var t=T(e),n=t.index();n===a&&t.addClass(i.bulletActiveClass),i.dynamicBullets&&(n>=o&&n<=l&&t.addClass(i.bulletActiveClass+"-main"),n===o&&t.prev().addClass(i.bulletActiveClass+"-prev").prev().addClass(i.bulletActiveClass+"-prev-prev"),n===l&&t.next().addClass(i.bulletActiveClass+"-next").next().addClass(i.bulletActiveClass+"-next-next"))}));else{var c=u.eq(a),p=c.index();if(c.addClass(i.bulletActiveClass),i.dynamicBullets){for(var v=u.eq(o),h=u.eq(l),f=o;f<=l;f+=1)u.eq(f).addClass(i.bulletActiveClass+"-main");if(e.params.loop)if(p>=u.length-i.dynamicMainBullets){for(var m=i.dynamicMainBullets;m>=0;m-=1)u.eq(u.length-m).addClass(i.bulletActiveClass+"-main");u.eq(u.length-i.dynamicMainBullets-1).addClass(i.bulletActiveClass+"-prev")}else v.prev().addClass(i.bulletActiveClass+"-prev").prev().addClass(i.bulletActiveClass+"-prev-prev"),h.next().addClass(i.bulletActiveClass+"-next").next().addClass(i.bulletActiveClass+"-next-next");else v.prev().addClass(i.bulletActiveClass+"-prev").prev().addClass(i.bulletActiveClass+"-prev-prev"),h.next().addClass(i.bulletActiveClass+"-next").next().addClass(i.bulletActiveClass+"-next-next")}}if(i.dynamicBullets){var g=Math.min(u.length,i.dynamicMainBullets+4),b=(e.pagination.bulletSize*g-e.pagination.bulletSize)/2-d*e.pagination.bulletSize,E=t?"right":"left";u.css(e.isHorizontal()?E:"top",b+"px")}}if("fraction"===i.type&&(r.find(be(i.currentClass)).text(i.formatFractionCurrent(a+1)),r.find(be(i.totalClass)).text(i.formatFractionTotal(s))),"progressbar"===i.type){var C;C=i.progressbarOpposite?e.isHorizontal()?"vertical":"horizontal":e.isHorizontal()?"horizontal":"vertical";var y=(a+1)/s,w=1,x=1;"horizontal"===C?w=y:x=y,r.find(be(i.progressbarFillClass)).transform("translate3d(0,0,0) scaleX("+w+") scaleY("+x+")").transition(e.params.speed)}"custom"===i.type&&i.renderCustom?(r.html(i.renderCustom(e,a+1,s)),e.emit("paginationRender",r[0])):e.emit("paginationUpdate",r[0]),e.params.watchOverflow&&e.enabled&&r[e.isLocked?"addClass":"removeClass"](i.lockClass)}},render:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var i=e.virtual&&e.params.virtual.enabled?e.virtual.slides.length:e.slides.length,a=e.pagination.$el,n="";if("bullets"===t.type){var r=e.params.loop?Math.ceil((i-2*e.loopedSlides)/e.params.slidesPerGroup):e.snapGrid.length;e.params.freeMode&&!e.params.loop&&r>i&&(r=i);for(var s=0;s<r;s+=1)t.renderBullet?n+=t.renderBullet.call(e,s,t.bulletClass):n+="<"+t.bulletElement+' class="'+t.bulletClass+'"></'+t.bulletElement+">";a.html(n),e.pagination.bullets=a.find(be(t.bulletClass))}"fraction"===t.type&&(n=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):'<span class="'+t.currentClass+'"></span> / <span class="'+t.totalClass+'"></span>',a.html(n)),"progressbar"===t.type&&(n=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'<span class="'+t.progressbarFillClass+'"></span>',a.html(n)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var e=this;e.params.pagination=Ee(e.$el,e.params.pagination,e.params.createElements,{el:"swiper-pagination"});var t=e.params.pagination;if(t.el){var i=T(t.el);0!==i.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&i.length>1&&(i=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&i.addClass(t.clickableClass),i.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(i.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&i.addClass(t.progressbarOppositeClass),t.clickable&&i.on("click",be(t.bulletClass),(function(t){t.preventDefault();var i=T(this).index()*e.params.slidesPerGroup;e.params.loop&&(i+=e.loopedSlides),e.slideTo(i)})),me(e.pagination,{$el:i,el:i[0]}),e.enabled||i.addClass(t.lockClass))}},destroy:function(){var e=this,t=e.params.pagination;if(t.el&&e.pagination.el&&e.pagination.$el&&0!==e.pagination.$el.length){var i=e.pagination.$el;i.removeClass(t.hiddenClass),i.removeClass(t.modifierClass+t.type),e.pagination.bullets&&e.pagination.bullets.removeClass(t.bulletActiveClass),t.clickable&&i.off("click",be(t.bulletClass))}}},Bt={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,i=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,n=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(a-t,2)+Math.pow(n-i,2))},onGestureStart:function(e){var t=this,i=t.support,a=t.params.zoom,n=t.zoom,r=n.gesture;if(n.fakeGestureTouched=!1,n.fakeGestureMoved=!1,!i.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;n.fakeGestureTouched=!0,r.scaleStart=Bt.getDistanceBetweenTouches(e)}r.$slideEl&&r.$slideEl.length||(r.$slideEl=T(e.target).closest("."+t.params.slideClass),0===r.$slideEl.length&&(r.$slideEl=t.slides.eq(t.activeIndex)),r.$imageEl=r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),r.$imageWrapEl=r.$imageEl.parent("."+a.containerClass),r.maxRatio=r.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==r.$imageWrapEl.length)?(r.$imageEl&&r.$imageEl.transition(0),t.zoom.isScaling=!0):r.$imageEl=void 0},onGestureChange:function(e){var t=this,i=t.support,a=t.params.zoom,n=t.zoom,r=n.gesture;if(!i.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;n.fakeGestureMoved=!0,r.scaleMove=Bt.getDistanceBetweenTouches(e)}r.$imageEl&&0!==r.$imageEl.length?(i.gestures?n.scale=e.scale*n.currentScale:n.scale=r.scaleMove/r.scaleStart*n.currentScale,n.scale>r.maxRatio&&(n.scale=r.maxRatio-1+Math.pow(n.scale-r.maxRatio+1,.5)),n.scale<a.minRatio&&(n.scale=a.minRatio+1-Math.pow(a.minRatio-n.scale+1,.5)),r.$imageEl.transform("translate3d(0,0,0) scale("+n.scale+")")):"gesturechange"===e.type&&n.onGestureStart(e)},onGestureEnd:function(e){var t=this,i=t.device,a=t.support,n=t.params.zoom,r=t.zoom,s=r.gesture;if(!a.gestures){if(!r.fakeGestureTouched||!r.fakeGestureMoved)return;if("touchend"!==e.type||"touchend"===e.type&&e.changedTouches.length<2&&!i.android)return;r.fakeGestureTouched=!1,r.fakeGestureMoved=!1}s.$imageEl&&0!==s.$imageEl.length&&(r.scale=Math.max(Math.min(r.scale,s.maxRatio),n.minRatio),s.$imageEl.transition(t.params.speed).transform("translate3d(0,0,0) scale("+r.scale+")"),r.currentScale=r.scale,r.isScaling=!1,1===r.scale&&(s.$slideEl=void 0))},onTouchStart:function(e){var t=this,i=t.device,a=t.zoom,n=a.gesture,r=a.image;n.$imageEl&&0!==n.$imageEl.length&&(r.isTouched||(i.android&&e.cancelable&&e.preventDefault(),r.isTouched=!0,r.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,r.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))},onTouchMove:function(e){var t=this,i=t.zoom,a=i.gesture,n=i.image,r=i.velocity;if(a.$imageEl&&0!==a.$imageEl.length&&(t.allowClick=!1,n.isTouched&&a.$slideEl)){n.isMoved||(n.width=a.$imageEl[0].offsetWidth,n.height=a.$imageEl[0].offsetHeight,n.startX=he(a.$imageWrapEl[0],"x")||0,n.startY=he(a.$imageWrapEl[0],"y")||0,a.slideWidth=a.$slideEl[0].offsetWidth,a.slideHeight=a.$slideEl[0].offsetHeight,a.$imageWrapEl.transition(0),t.rtl&&(n.startX=-n.startX,n.startY=-n.startY));var s=n.width*i.scale,o=n.height*i.scale;if(!(s<a.slideWidth&&o<a.slideHeight)){if(n.minX=Math.min(a.slideWidth/2-s/2,0),n.maxX=-n.minX,n.minY=Math.min(a.slideHeight/2-o/2,0),n.maxY=-n.minY,n.touchesCurrent.x="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n.touchesCurrent.y="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,!n.isMoved&&!i.isScaling){if(t.isHorizontal()&&(Math.floor(n.minX)===Math.floor(n.startX)&&n.touchesCurrent.x<n.touchesStart.x||Math.floor(n.maxX)===Math.floor(n.startX)&&n.touchesCurrent.x>n.touchesStart.x))return void(n.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(n.minY)===Math.floor(n.startY)&&n.touchesCurrent.y<n.touchesStart.y||Math.floor(n.maxY)===Math.floor(n.startY)&&n.touchesCurrent.y>n.touchesStart.y))return void(n.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),n.isMoved=!0,n.currentX=n.touchesCurrent.x-n.touchesStart.x+n.startX,n.currentY=n.touchesCurrent.y-n.touchesStart.y+n.startY,n.currentX<n.minX&&(n.currentX=n.minX+1-Math.pow(n.minX-n.currentX+1,.8)),n.currentX>n.maxX&&(n.currentX=n.maxX-1+Math.pow(n.currentX-n.maxX+1,.8)),n.currentY<n.minY&&(n.currentY=n.minY+1-Math.pow(n.minY-n.currentY+1,.8)),n.currentY>n.maxY&&(n.currentY=n.maxY-1+Math.pow(n.currentY-n.maxY+1,.8)),r.prevPositionX||(r.prevPositionX=n.touchesCurrent.x),r.prevPositionY||(r.prevPositionY=n.touchesCurrent.y),r.prevTime||(r.prevTime=Date.now()),r.x=(n.touchesCurrent.x-r.prevPositionX)/(Date.now()-r.prevTime)/2,r.y=(n.touchesCurrent.y-r.prevPositionY)/(Date.now()-r.prevTime)/2,Math.abs(n.touchesCurrent.x-r.prevPositionX)<2&&(r.x=0),Math.abs(n.touchesCurrent.y-r.prevPositionY)<2&&(r.y=0),r.prevPositionX=n.touchesCurrent.x,r.prevPositionY=n.touchesCurrent.y,r.prevTime=Date.now(),a.$imageWrapEl.transform("translate3d("+n.currentX+"px, "+n.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,i=e.image,a=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!i.isTouched||!i.isMoved)return i.isTouched=!1,void(i.isMoved=!1);i.isTouched=!1,i.isMoved=!1;var n=300,r=300,s=a.x*n,o=i.currentX+s,l=a.y*r,d=i.currentY+l;0!==a.x&&(n=Math.abs((o-i.currentX)/a.x)),0!==a.y&&(r=Math.abs((d-i.currentY)/a.y));var u=Math.max(n,r);i.currentX=o,i.currentY=d;var c=i.width*e.scale,p=i.height*e.scale;i.minX=Math.min(t.slideWidth/2-c/2,0),i.maxX=-i.minX,i.minY=Math.min(t.slideHeight/2-p/2,0),i.maxY=-i.minY,i.currentX=Math.max(Math.min(i.currentX,i.maxX),i.minX),i.currentY=Math.max(Math.min(i.currentY,i.maxY),i.minY),t.$imageWrapEl.transition(u).transform("translate3d("+i.currentX+"px, "+i.currentY+"px,0)")}},onTransitionEnd:function(){var e=this,t=e.zoom,i=t.gesture;i.$slideEl&&e.previousIndex!==e.activeIndex&&(i.$imageEl&&i.$imageEl.transform("translate3d(0,0,0) scale(1)"),i.$imageWrapEl&&i.$imageWrapEl.transform("translate3d(0,0,0)"),t.scale=1,t.currentScale=1,i.$slideEl=void 0,i.$imageEl=void 0,i.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,i,a,n,r,s,o,d,u,c,p,v,h,f,m,g,b=this,E=l(),C=b.zoom,y=b.params.zoom,w=C.gesture,T=C.image;w.$slideEl||(b.params.virtual&&b.params.virtual.enabled&&b.virtual?w.$slideEl=b.$wrapperEl.children("."+b.params.slideActiveClass):w.$slideEl=b.slides.eq(b.activeIndex),w.$imageEl=w.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),w.$imageWrapEl=w.$imageEl.parent("."+y.containerClass)),w.$imageEl&&0!==w.$imageEl.length&&w.$imageWrapEl&&0!==w.$imageWrapEl.length&&(w.$slideEl.addClass(""+y.zoomedSlideClass),void 0===T.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,i="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=T.touchesStart.x,i=T.touchesStart.y),C.scale=w.$imageWrapEl.attr("data-swiper-zoom")||y.maxRatio,C.currentScale=w.$imageWrapEl.attr("data-swiper-zoom")||y.maxRatio,e?(m=w.$slideEl[0].offsetWidth,g=w.$slideEl[0].offsetHeight,a=w.$slideEl.offset().left+E.scrollX+m/2-t,n=w.$slideEl.offset().top+E.scrollY+g/2-i,o=w.$imageEl[0].offsetWidth,d=w.$imageEl[0].offsetHeight,u=o*C.scale,c=d*C.scale,h=-(p=Math.min(m/2-u/2,0)),f=-(v=Math.min(g/2-c/2,0)),(r=a*C.scale)<p&&(r=p),r>h&&(r=h),(s=n*C.scale)<v&&(s=v),s>f&&(s=f)):(r=0,s=0),w.$imageWrapEl.transition(300).transform("translate3d("+r+"px, "+s+"px,0)"),w.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+C.scale+")"))},out:function(){var e=this,t=e.zoom,i=e.params.zoom,a=t.gesture;a.$slideEl||(e.params.virtual&&e.params.virtual.enabled&&e.virtual?a.$slideEl=e.$wrapperEl.children("."+e.params.slideActiveClass):a.$slideEl=e.slides.eq(e.activeIndex),a.$imageEl=a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),a.$imageWrapEl=a.$imageEl.parent("."+i.containerClass)),a.$imageEl&&0!==a.$imageEl.length&&a.$imageWrapEl&&0!==a.$imageWrapEl.length&&(t.scale=1,t.currentScale=1,a.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),a.$slideEl.removeClass(""+i.zoomedSlideClass),a.$slideEl=void 0)},toggleGestures:function(e){var t=this,i=t.zoom,a=i.slideSelector,n=i.passiveListener;t.$wrapperEl[e]("gesturestart",a,i.onGestureStart,n),t.$wrapperEl[e]("gesturechange",a,i.onGestureChange,n),t.$wrapperEl[e]("gestureend",a,i.onGestureEnd,n)},enableGestures:function(){this.zoom.gesturesEnabled||(this.zoom.gesturesEnabled=!0,this.zoom.toggleGestures("on"))},disableGestures:function(){this.zoom.gesturesEnabled&&(this.zoom.gesturesEnabled=!1,this.zoom.toggleGestures("off"))},enable:function(){var e=this,t=e.support,i=e.zoom;if(!i.enabled){i.enabled=!0;var a=!("touchstart"!==e.touchEvents.start||!t.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},n=!t.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;e.zoom.passiveListener=a,e.zoom.slideSelector=r,t.gestures?(e.$wrapperEl.on(e.touchEvents.start,e.zoom.enableGestures,a),e.$wrapperEl.on(e.touchEvents.end,e.zoom.disableGestures,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.on(e.touchEvents.start,r,i.onGestureStart,a),e.$wrapperEl.on(e.touchEvents.move,r,i.onGestureChange,n),e.$wrapperEl.on(e.touchEvents.end,r,i.onGestureEnd,a),e.touchEvents.cancel&&e.$wrapperEl.on(e.touchEvents.cancel,r,i.onGestureEnd,a)),e.$wrapperEl.on(e.touchEvents.move,"."+e.params.zoom.containerClass,i.onTouchMove,n)}},disable:function(){var e=this,t=e.zoom;if(t.enabled){var i=e.support;e.zoom.enabled=!1;var a=!("touchstart"!==e.touchEvents.start||!i.passiveListener||!e.params.passiveListeners)&&{passive:!0,capture:!1},n=!i.passiveListener||{passive:!1,capture:!0},r="."+e.params.slideClass;i.gestures?(e.$wrapperEl.off(e.touchEvents.start,e.zoom.enableGestures,a),e.$wrapperEl.off(e.touchEvents.end,e.zoom.disableGestures,a)):"touchstart"===e.touchEvents.start&&(e.$wrapperEl.off(e.touchEvents.start,r,t.onGestureStart,a),e.$wrapperEl.off(e.touchEvents.move,r,t.onGestureChange,n),e.$wrapperEl.off(e.touchEvents.end,r,t.onGestureEnd,a),e.touchEvents.cancel&&e.$wrapperEl.off(e.touchEvents.cancel,r,t.onGestureEnd,a)),e.$wrapperEl.off(e.touchEvents.move,"."+e.params.zoom.containerClass,t.onTouchMove,n)}}},Dt={getRandomNumber:function(e){void 0===e&&(e=16);var t=function(){return Math.round(16*Math.random()).toString(16)};return"x".repeat(e).replace(/x/g,t)},makeElFocusable:function(e){return e.attr("tabIndex","0"),e},makeElNotFocusable:function(e){return e.attr("tabIndex","-1"),e},addElRole:function(e,t){return e.attr("role",t),e},addElRoleDescription:function(e,t){return e.attr("aria-roledescription",t),e},addElControls:function(e,t){return e.attr("aria-controls",t),e},addElLabel:function(e,t){return e.attr("aria-label",t),e},addElId:function(e,t){return e.attr("id",t),e},addElLive:function(e,t){return e.attr("aria-live",t),e},disableEl:function(e){return e.attr("aria-disabled",!0),e},enableEl:function(e){return e.attr("aria-disabled",!1),e},onEnterOrSpaceKey:function(e){if(13===e.keyCode||32===e.keyCode){var t=this,i=t.params.a11y,a=T(e.target);t.navigation&&t.navigation.$nextEl&&a.is(t.navigation.$nextEl)&&(t.isEnd&&!t.params.loop||t.slideNext(),t.isEnd?t.a11y.notify(i.lastSlideMessage):t.a11y.notify(i.nextSlideMessage)),t.navigation&&t.navigation.$prevEl&&a.is(t.navigation.$prevEl)&&(t.isBeginning&&!t.params.loop||t.slidePrev(),t.isBeginning?t.a11y.notify(i.firstSlideMessage):t.a11y.notify(i.prevSlideMessage)),t.pagination&&a.is(be(t.params.pagination.bulletClass))&&a[0].click()}},notify:function(e){var t=this.a11y.liveRegion;0!==t.length&&(t.html(""),t.html(e))},updateNavigation:function(){var e=this;if(!e.params.loop&&e.navigation){var t=e.navigation,i=t.$nextEl,a=t.$prevEl;a&&a.length>0&&(e.isBeginning?(e.a11y.disableEl(a),e.a11y.makeElNotFocusable(a)):(e.a11y.enableEl(a),e.a11y.makeElFocusable(a))),i&&i.length>0&&(e.isEnd?(e.a11y.disableEl(i),e.a11y.makeElNotFocusable(i)):(e.a11y.enableEl(i),e.a11y.makeElFocusable(i)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((function(i){var a=T(i);e.a11y.makeElFocusable(a),e.params.pagination.renderBullet||(e.a11y.addElRole(a,"button"),e.a11y.addElLabel(a,t.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))}))},init:function(){var e=this,t=e.params.a11y;e.$el.append(e.a11y.liveRegion);var i=e.$el;t.containerRoleDescriptionMessage&&e.a11y.addElRoleDescription(i,t.containerRoleDescriptionMessage),t.containerMessage&&e.a11y.addElLabel(i,t.containerMessage);var a,n,r=e.$wrapperEl,s=r.attr("id")||"swiper-wrapper-"+e.a11y.getRandomNumber(16),o=e.params.autoplay&&e.params.autoplay.enabled?"off":"polite";e.a11y.addElId(r,s),e.a11y.addElLive(r,o),t.itemRoleDescriptionMessage&&e.a11y.addElRoleDescription(T(e.slides),t.itemRoleDescriptionMessage),e.a11y.addElRole(T(e.slides),t.slideRole),e.slides.each((function(i){var a=T(i),n=t.slideLabelMessage.replace(/\{\{index\}\}/,a.index()+1).replace(/\{\{slidesLength\}\}/,e.slides.length);e.a11y.addElLabel(a,n)})),e.navigation&&e.navigation.$nextEl&&(a=e.navigation.$nextEl),e.navigation&&e.navigation.$prevEl&&(n=e.navigation.$prevEl),a&&a.length&&(e.a11y.makeElFocusable(a),"BUTTON"!==a[0].tagName&&(e.a11y.addElRole(a,"button"),a.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(a,t.nextSlideMessage),e.a11y.addElControls(a,s)),n&&n.length&&(e.a11y.makeElFocusable(n),"BUTTON"!==n[0].tagName&&(e.a11y.addElRole(n,"button"),n.on("keydown",e.a11y.onEnterOrSpaceKey)),e.a11y.addElLabel(n,t.prevSlideMessage),e.a11y.addElControls(n,s)),e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.$el.on("keydown",be(e.params.pagination.bulletClass),e.a11y.onEnterOrSpaceKey)},destroy:function(){var e,t,i=this;i.a11y.liveRegion&&i.a11y.liveRegion.length>0&&i.a11y.liveRegion.remove(),i.navigation&&i.navigation.$nextEl&&(e=i.navigation.$nextEl),i.navigation&&i.navigation.$prevEl&&(t=i.navigation.$prevEl),e&&e.off("keydown",i.a11y.onEnterOrSpaceKey),t&&t.off("keydown",i.a11y.onEnterOrSpaceKey),i.pagination&&i.params.pagination.clickable&&i.pagination.bullets&&i.pagination.bullets.length&&i.pagination.$el.off("keydown",be(i.params.pagination.bulletClass),i.a11y.onEnterOrSpaceKey)}},Nt=[{name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){ge(this,{navigation:i({},It)})},on:{init:function(e){e.navigation.init(),e.navigation.update()},toEdge:function(e){e.navigation.update()},fromEdge:function(e){e.navigation.update()},destroy:function(e){e.navigation.destroy()},"enable disable":function(e){var t=e.navigation,i=t.$nextEl,a=t.$prevEl;i&&i[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass),a&&a[e.enabled?"removeClass":"addClass"](e.params.navigation.lockClass)},click:function(e,t){var i=e.navigation,a=i.$nextEl,n=i.$prevEl,r=t.target;if(e.params.navigation.hideOnClick&&!T(r).is(n)&&!T(r).is(a)){if(e.pagination&&e.params.pagination&&e.params.pagination.clickable&&(e.pagination.el===r||e.pagination.el.contains(r)))return;var s;a?s=a.hasClass(e.params.navigation.hiddenClass):n&&(s=n.hasClass(e.params.navigation.hiddenClass)),!0===s?e.emit("navigationShow"):e.emit("navigationHide"),a&&a.toggleClass(e.params.navigation.hiddenClass),n&&n.toggleClass(e.params.navigation.hiddenClass)}}}},{name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:function(e){return e},formatFractionTotal:function(e){return e},bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){ge(this,{pagination:i({dynamicBulletIndex:0},Gt)})},on:{init:function(e){e.pagination.init(),e.pagination.render(),e.pagination.update()},activeIndexChange:function(e){(e.params.loop||void 0===e.snapIndex)&&e.pagination.update()},snapIndexChange:function(e){e.params.loop||e.pagination.update()},slidesLengthChange:function(e){e.params.loop&&(e.pagination.render(),e.pagination.update())},snapGridLengthChange:function(e){e.params.loop||(e.pagination.render(),e.pagination.update())},destroy:function(e){e.pagination.destroy()},"enable disable":function(e){var t=e.pagination.$el;t&&t[e.enabled?"removeClass":"addClass"](e.params.pagination.lockClass)},click:function(e,t){var i=t.target;if(e.params.pagination.el&&e.params.pagination.hideOnClick&&e.pagination.$el.length>0&&!T(i).hasClass(e.params.pagination.bulletClass)){if(e.navigation&&(e.navigation.nextEl&&i===e.navigation.nextEl||e.navigation.prevEl&&i===e.navigation.prevEl))return;!0===e.pagination.$el.hasClass(e.params.pagination.hiddenClass)?e.emit("paginationShow"):e.emit("paginationHide"),e.pagination.$el.toggleClass(e.params.pagination.hiddenClass)}}}},{name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this;ge(e,{zoom:i({enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}},Bt)});var t=1;Object.defineProperty(e.zoom,"scale",{get:function(){return t},set:function(i){if(t!==i){var a=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,n=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",i,a,n)}t=i}})},on:{init:function(e){e.params.zoom.enabled&&e.zoom.enable()},destroy:function(e){e.zoom.disable()},touchStart:function(e,t){e.zoom.enabled&&e.zoom.onTouchStart(t)},touchEnd:function(e,t){e.zoom.enabled&&e.zoom.onTouchEnd(t)},doubleTap:function(e,t){!e.animating&&e.params.zoom.enabled&&e.zoom.enabled&&e.params.zoom.toggle&&e.zoom.toggle(t)},transitionEnd:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.zoom.onTransitionEnd()},slideChange:function(e){e.zoom.enabled&&e.params.zoom.enabled&&e.params.cssMode&&e.zoom.onTransitionEnd()}}},{name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}",slideLabelMessage:"{{index}} / {{slidesLength}}",containerMessage:null,containerRoleDescriptionMessage:null,itemRoleDescriptionMessage:null,slideRole:"group"}},create:function(){var e=this;ge(e,{a11y:i({},Dt,{liveRegion:T('<span class="'+e.params.a11y.notificationClass+'" aria-live="assertive" aria-atomic="true"></span>')})})},on:{afterInit:function(e){e.params.a11y.enabled&&(e.a11y.init(),e.a11y.updateNavigation())},toEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},fromEdge:function(e){e.params.a11y.enabled&&e.a11y.updateNavigation()},paginationUpdate:function(e){e.params.a11y.enabled&&e.a11y.updatePagination()},destroy:function(e){e.params.a11y.enabled&&e.a11y.destroy()}}}];return At.use(Nt),At}()}},t={},i=function i(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a].call(r.exports,r,r.exports,i),r.exports}(5690),i;var e,t,i})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js.LICENSE.txt b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js.LICENSE.txt
new file mode 100644
index 00000000..7067047c
--- /dev/null
+++ b/plugins/jetpack/_inc/build/carousel/swiper-bundle.min.js.LICENSE.txt
@@ -0,0 +1,35 @@
+/*!
+ * Dom7 3.0.0
+ * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
+ * https://framework7.io/docs/dom7.html
+ *
+ * Copyright 2020, Vladimir Kharlampidi
+ *
+ * Licensed under MIT
+ *
+ * Released on: November 9, 2020
+ */
+
+/*!
+ * SSR Window 3.0.0
+ * Better handling for window object in SSR environment
+ * https://github.com/nolimits4web/ssr-window
+ *
+ * Copyright 2020, Vladimir Kharlampidi
+ *
+ * Licensed under MIT
+ *
+ * Released on: November 9, 2020
+ */
+
+/*!
+ * Swiper 6.7.0
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * https://swiperjs.com
+ *
+ * Copyright 2014-2021 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: June 22, 2021
+ */
diff --git a/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.asset.php b/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.asset.php
new file mode 100644
index 00000000..ba194820
--- /dev/null
+++ b/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '22ed1bb121ac4c6d7d90711ed27cb818'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.js b/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.js
index 11008e6a..68693f57 100644
--- a/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.js
+++ b/plugins/jetpack/_inc/build/comment-likes/comment-like-count.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-jQuery(document).ready(function(t){var e="https://public-api.wordpress.com/rest/v1",n=[];t(".comment-like-count").each(function(){var e=t(this).attr("data-blog-id"),a=t(this).attr("data-comment-id");n.push("/sites/"+e+"/comments/"+a+"/likes")}),t.ajax({type:"GET",url:e+"/batch",dataType:"jsonp",data:"urls[]="+n.map(encodeURIComponent).join("&urls[]="),success:function(e){for(var n in e)if(!e[n].error_data){var a=n.split("/")[4],o=e[n].found;if(o<1)return;t("#comment-like-count-"+a).find(".like-count").hide().text(o).fadeIn()}},error:function(){}})}); \ No newline at end of file
+jQuery(document).ready((function(t){var e=[];t(".comment-like-count").each((function(){var n=t(this).attr("data-blog-id"),a=t(this).attr("data-comment-id");e.push("/sites/"+n+"/comments/"+a+"/likes")})),t.ajax({type:"GET",url:"https://public-api.wordpress.com/rest/v1/batch",dataType:"jsonp",data:"urls[]="+e.map(encodeURIComponent).join("&urls[]="),success:function(e){for(var n in e)if(!e[n].error_data){var a=n.split("/")[4],o=e[n].found;if(o<1)return;t("#comment-like-count-"+a).find(".like-count").hide().text(o).fadeIn()}},error:function(){}})})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/connect-button.min.asset.php b/plugins/jetpack/_inc/build/connect-button.min.asset.php
new file mode 100644
index 00000000..db75820b
--- /dev/null
+++ b/plugins/jetpack/_inc/build/connect-button.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'c521dfda8ced79158f30d8b2eef5bfdd'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/connect-button.min.js b/plugins/jetpack/_inc/build/connect-button.min.js
index b6f1881e..c05ffc2c 100644
--- a/plugins/jetpack/_inc/build/connect-button.min.js
+++ b/plugins/jetpack/_inc/build/connect-button.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jpConnect */
-jQuery(document).ready(function(n){var e=n(".jp-connect-button, .jp-banner__alt-connect-button").eq(0),t=n(".jp-connect-full__tos-blurb"),a=n('<iframe class="jp-jetpack-connect__iframe" />'),o=n("#jetpack-connection-cards, .jp-connect-full__dismiss-paragraph");e.on("click",function(n){n.preventDefault(),o.length&&o.fadeOut(600),i.selectAndStartConnectionFlow()});var i={isRegistering:!1,isPaidPlan:!1,selectAndStartConnectionFlow:function(){var e=n("#jetpack-connection-cards");e.length&&e.fadeOut(600),i.isRegistering||("original"===jpConnect.forceVariation?i.handleOriginalFlow():"in_place"===jpConnect.forceVariation?i.handleConnectInPlaceFlow():i.startConnectionFlow())},startConnectionFlow:function(){n.ajax({url:"https://public-api.wordpress.com/wpcom/v2/abtest/jetpack_connect_in_place_v3",type:"GET",error:i.handleConnectionError,data:jpConnect.identity,xhrFields:{withCredentials:!0},crossDomain:!0,success:function(n){n&&"in_place"===n.variation?i.handleConnectInPlaceFlow():i.handleOriginalFlow()}})},handleOriginalFlow:function(){window.location=e.attr("href")},handleConnectInPlaceFlow:function(){if(e.hasClass("jp-banner__alt-connect-button"))window.location=jpConnect.connectInPlaceUrl;else{i.isRegistering=!0,t.hide(),e.hide(),i.triggerLoadingState();var a=jpConnect.apiBaseUrl+"/connection/register";window.Initial_State&&window.Initial_State.calypsoEnv&&(a=a+"?"+n.param({calypso_env:window.Initial_State.calypsoEnv})),n.ajax({url:a,type:"POST",data:{registration_nonce:jpConnect.registrationNonce,_wpnonce:jpConnect.apiNonce},error:i.handleConnectionError,success:i.handleConnectionSuccess})}},triggerLoadingState:function(){var e=n("<span>").addClass("jp-connect-full__button-container-loading").text(jpConnect.buttonTextRegistering).appendTo(".jp-connect-full__button-container"),t=n("<div>").addClass("jp-spinner"),a=n("<div>").addClass("jp-spinner__outer").appendTo(t);n("<div>").addClass("jp-spinner__inner").appendTo(a),e.after(t)},handleConnectionSuccess:function(e){i.fetchPlanType(),window.addEventListener("message",i.receiveData),a.attr("src",e.authorizeUrl),a.on("load",function(){a.show(),n(".jp-connect-full__button-container").hide()}),a.hide(),n(".jp-connect-full__button-container").after(a);var t=document.createElement("link");t.rel="preload",t.as="script",t.href=jpConnect.preFetchScript,document.head.appendChild(t)},fetchPlanType:function(){n.ajax({url:jpConnect.apiBaseUrl+"/site",type:"GET",data:{_wpnonce:jpConnect.apiSiteDataNonce},success:function(n){var e=JSON.parse(n.data);i.isPaidPlan=!e.plan.is_free}})},receiveData:function(n){n.origin===jpConnect.jetpackApiDomain&&n.source===a.get(0).contentWindow&&"close"===n.data&&(window.removeEventListener("message",this.receiveData),i.handleAuthorizationComplete())},handleAuthorizationComplete:function(){i.isRegistering=!1,i.isPaidPlan?window.location.assign(jpConnect.dashboardUrl):window.location.assign(jpConnect.plansPromptUrl),window.location.reload(!0)},handleConnectionError:function(n){i.isRegistering=!1,i.handleOriginalFlow()}};"setup"===location.hash.replace(/#\//,"")&&(o.length&&o.hide(),i.selectAndStartConnectionFlow())}); \ No newline at end of file
+jQuery(document).ready((function(n){var e=n(".jp-connect-button, .jp-banner__alt-connect-button").eq(0),t=n(".jp-connect-full__tos-blurb"),o=n('<iframe class="jp-jetpack-connect__iframe" />'),a=n("#jetpack-connection-cards, .jp-connect-full__dismiss-paragraph, .jp-connect-full__testimonial"),i="";e.on("click",(function(e){if(e.preventDefault(),"undefined"==typeof URLSearchParams)i="";else{var t=new URLSearchParams(n(this).prop("search"));i=t&&t.get("from")}a.length&&a.fadeOut(600),c.startConnectionFlow()}));var c={isRegistering:!1,isPaidPlan:!1,startConnectionFlow:function(){var e=n("#jetpack-connection-cards, .jp-connect-full__testimonial");e.length&&e.fadeOut(600),c.isRegistering||c.handleConnection()},selectAndStartAuthorizationFlow:function(n){n.allowInplaceAuthorization&&"original"!==jpConnect.forceVariation?c.handleAuthorizeInPlaceFlow(n):n.alternateAuthorizeUrl?window.location=n.alternateAuthorizeUrl:window.location=n.authorizeUrl},handleConnection:function(){if(e.hasClass("jp-banner__alt-connect-button")){var o=i&&"&from="+i||"";window.location=jpConnect.connectInPlaceUrl+o}else{c.isRegistering=!0,t.hide(),e.hide(),c.triggerLoadingState();var a=jpConnect.apiBaseUrl+"/connection/register";window.Initial_State&&window.Initial_State.calypsoEnv&&(a=a+"?"+n.param({calypso_env:window.Initial_State.calypsoEnv})),n.ajax({url:a,type:"POST",data:{registration_nonce:jpConnect.registrationNonce,_wpnonce:jpConnect.apiNonce,from:i,no_iframe:"original"===jpConnect.forceVariation},error:c.handleConnectionError,success:c.selectAndStartAuthorizationFlow})}},triggerLoadingState:function(){var e=n("<span>").addClass("jp-connect-full__button-container-loading").text(jpConnect.buttonTextRegistering).appendTo(".jp-connect-full__button-container"),t=n("<div>").addClass("jp-spinner"),o=n("<div>").addClass("jp-spinner__outer").appendTo(t);n("<div>").addClass("jp-spinner__inner").appendTo(o),e.after(t)},handleAuthorizeInPlaceFlow:function(e){window.addEventListener("message",c.receiveData),o.attr("src",e.authorizeUrl+"&from="+i+"&iframe_source=jetpack-connect-main"),o.on("load",(function(){o.show(),n(".jp-connect-full__button-container").hide(),n("#jp-connect-full__step1-header").hide(),n("#jp-connect-full__step2-header").show()})),o.hide(),n(".jp-connect-full__button-container").after(o);var t=document.createElement("link");t.rel="preload",t.as="script",t.href=jpConnect.preFetchScript,document.head.appendChild(t)},fetchPlanType:function(){return n.ajax({url:jpConnect.apiBaseUrl+"/site",type:"GET",data:{_wpnonce:jpConnect.apiSiteDataNonce},success:function(n){var e=JSON.parse(n.data);c.isPaidPlan=e.options.is_pending_plan||!e.plan.is_free}})},receiveData:function(n){if(n.origin===jpConnect.jetpackApiDomain&&n.source===o.get(0).contentWindow)switch(n.data){case"close":window.removeEventListener("message",this.receiveData),c.handleAuthorizationComplete();break;case"wpcom_nocookie":o.hide(),c.handleConnectionError()}},handleAuthorizationComplete:function(){c.isRegistering=!1,c.fetchPlanType().always((function(){if(c.isPaidPlan){var n=document.createElement("a");n.href=jpConnect.dashboardUrl;var e=window.location.pathname===n.pathname&&window.location.hash.length&&n.hash.length;window.location.assign(jpConnect.dashboardUrl),e&&window.location.reload(!0)}else window.location.assign(jpConnect.plansPromptUrl)}))},handleConnectionError:function(n){c.isRegistering=!1,window.location=e.attr("href")}};i=location.hash.split("&from=")[1]})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.asset.php b/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.asset.php
new file mode 100644
index 00000000..e66c42a3
--- /dev/null
+++ b/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'ebeb66f7693136e660e09a24ea4dba3d'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.js b/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.js
index 52ef096f..6ac1718d 100644
--- a/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.js
+++ b/plugins/jetpack/_inc/build/contact-form/js/editor-view.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global grunionEditorView, tinyMCE, QTags, wp */
-!function(t,e,n){if(e.mce=e.mce||{},void 0!==e.mce.views){e.mce.grunion_wp_view_renderer={shortcode_string:"contact-form",template:e.template("grunion-contact-form"),field_templates:{email:e.template("grunion-field-email"),telephone:e.template("grunion-field-telephone"),textarea:e.template("grunion-field-textarea"),radio:e.template("grunion-field-radio"),checkbox:e.template("grunion-field-checkbox"),"checkbox-multiple":e.template("grunion-field-checkbox-multiple"),select:e.template("grunion-field-select"),date:e.template("grunion-field-date"),text:e.template("grunion-field-text"),name:e.template("grunion-field-text"),url:e.template("grunion-field-url")},edit_template:e.template("grunion-field-edit"),editor_inline:e.template("grunion-editor-inline"),editor_option:e.template("grunion-field-edit-option"),getContent:function(){var t,i,o=this.shortcode.content,r=0,c="";for(o||(o=n.default_form);t=e.shortcode.next("contact-field",o,r);)r=t.index+t.content.length,(i=t.shortcode.attrs.named).type&&this.field_templates[i.type]||(i.type="text"),i.required&&(i.required=n.labels.required_field_text),i.options&&"string"==typeof i.options&&(i.options=i.options.split(",")),c+=this.field_templates[i.type](i);var s={body:c,submit_button_text:n.labels.submit_button_text};return this.template(s)},edit:function(i,o){var r,c,s=e.shortcode.next(this.shortcode_string,i).shortcode,l=t(tinyMCE.activeEditor.getDoc()).find(".wpview.wpview-wrap").filter(function(){return t(this).attr("data-mce-selected")}),a=t('<iframe scrolling="no" class="inline-edit-contact-form" />'),d=0,f="";for(s.content||(s.content=n.default_form);c=e.shortcode.next("contact-field",s.content,d);)d=c.index+c.content.length,(r=c.shortcode.attrs.named).options&&"string"==typeof r.options&&(r.options=r.options.split(",")),f+=this.edit_template(r);a.on("checkheight",function(){var t=this.contentDocument?this.contentDocument:this.contentWindow.document;this.style.height="10px",this.style.height=5+t.body.scrollHeight+"px",tinyMCE.activeEditor.execCommand("wpAutoResize")}),a.on("load",function(){var i=1===window.isRtl?n.inline_editing_style_rtl:n.inline_editing_style,r=t('<link rel="stylesheet" href="'+i+'" />'),c=t('<link rel="stylesheet" href="'+n.dashicons_css_url+'" />');r.on("load",function(){a.contents().find("body").css("visibility","visible"),a.trigger("checkheight")}),a.contents().find("head").append(r).append(c),a.contents().find("body").html(e.mce.grunion_wp_view_renderer.editor_inline({to:s.attrs.named.to,subject:s.attrs.named.subject,fields:f})).css("visibility","hidden"),a.contents().find("input:first").focus(),setTimeout(function(){a.trigger("checkheight")},250),setTimeout(function(){a.trigger("checkheight")},500);var l=a.contents().find(".grunion-fields"),d=a.contents().find(".grunion-controls");l.sortable(),l.on("change select","select[name=type]",function(){t(this).closest(".grunion-field-edit")[0].className="card is-compact grunion-field-edit grunion-field-"+t(this).val(),a.trigger("checkheight")}),l.on("click",".delete-option",function(e){e.preventDefault(),t(this).closest("li").remove(),a.trigger("checkheight")}),l.on("click",".add-option",function(n){var i=t(e.mce.grunion_wp_view_renderer.editor_option());n.preventDefault(),t(this).closest("li").before(i),a.trigger("checkheight"),i.find("input:first").focus()}),l.on("click",".delete-field",function(e){e.preventDefault(),t(this).closest(".card").remove(),a.trigger("checkheight")}),d.find("input[name=submit]").on("click",function(){var n=s;n.type="closed",n.attrs={},n.content="",l.children().each(function(){var i={tag:"contact-field",type:"single",attrs:{label:t(this).find("input[name=label]").val(),type:t(this).find("select[name=type]").val()}},o=[];t(this).find("input[name=required]:checked").length&&(i.attrs.required="1"),t(this).find("input[name=option]").each(function(){t(this).val()&&o.push(t(this).val())}),o.length&&(i.attrs.options=o.join(",")),n.content+=e.shortcode.string(i)}),a.contents().find("input[name=to]").val()&&(n.attrs.to=a.contents().find("input[name=to]").val()),a.contents().find("input[name=subject]").val()&&(n.attrs.subject=a.contents().find("input[name=subject]").val()),o(e.shortcode.string(n))}),d.find("input[name=cancel]").on("click",function(){o(e.shortcode.string(s))}),d.find("input[name=add-field]").on("click",function(){var n=t(e.mce.grunion_wp_view_renderer.edit_template({}));l.append(n),l.sortable("refresh"),a.trigger("checkheight"),n.find("input:first").focus()})}),l.html(a)}},e.mce.views.register("contact-form",e.mce.grunion_wp_view_renderer),QTags.addButton("grunion_shortcode",n.labels.quicktags_label,function(){QTags.insertContent("[contact-form]"+n.default_form+"[/contact-form]")});var i=t("#wp-content-wrap");t("#insert-jetpack-contact-form").on("click",function(t){t.preventDefault(),i.hasClass("tmce-active")?tinyMCE.execCommand("grunion_add_form"):i.hasClass("html-active")?QTags.insertContent("[contact-form]"+n.default_form+"[/contact-form]"):window.console.error("Neither TinyMCE nor QuickTags is active. Unable to insert form.")})}}(jQuery,wp,grunionEditorView); \ No newline at end of file
+!function(t,e,n){if(e.mce=e.mce||{},void 0!==e.mce.views){e.mce.grunion_wp_view_renderer={shortcode_string:"contact-form",template:e.template("grunion-contact-form"),field_templates:{email:e.template("grunion-field-email"),telephone:e.template("grunion-field-telephone"),textarea:e.template("grunion-field-textarea"),radio:e.template("grunion-field-radio"),checkbox:e.template("grunion-field-checkbox"),"checkbox-multiple":e.template("grunion-field-checkbox-multiple"),select:e.template("grunion-field-select"),date:e.template("grunion-field-date"),text:e.template("grunion-field-text"),name:e.template("grunion-field-text"),url:e.template("grunion-field-url")},edit_template:e.template("grunion-field-edit"),editor_inline:e.template("grunion-editor-inline"),editor_option:e.template("grunion-field-edit-option"),getContent:function(){var t,i,o=this.shortcode.content,r=0,c="";for(o||(o=n.default_form);t=e.shortcode.next("contact-field",o,r);)r=t.index+t.content.length,(i=t.shortcode.attrs.named).type&&this.field_templates[i.type]||(i.type="text"),i.required&&(i.required=n.labels.required_field_text),i.options&&"string"==typeof i.options&&(i.options=i.options.split(",")),c+=this.field_templates[i.type](i);var s={body:c,submit_button_text:n.labels.submit_button_text};return this.template(s)},edit:function(i,o){var r,c,s=e.shortcode.next(this.shortcode_string,i).shortcode,l=t(tinyMCE.activeEditor.getDoc()).find(".wpview.wpview-wrap").filter((function(){return t(this).attr("data-mce-selected")})),a=t('<iframe scrolling="no" class="inline-edit-contact-form" />'),d=0,f="";for(s.content||(s.content=n.default_form);c=e.shortcode.next("contact-field",s.content,d);)d=c.index+c.content.length,(r=c.shortcode.attrs.named).options&&"string"==typeof r.options&&(r.options=r.options.split(",")),f+=this.edit_template(r);a.on("checkheight",(function(){var t=this.contentDocument?this.contentDocument:this.contentWindow.document;this.style.height="10px",this.style.height=5+t.body.scrollHeight+"px",tinyMCE.activeEditor.execCommand("wpAutoResize")})),a.on("load",(function(){var i=1===window.isRtl?n.inline_editing_style_rtl:n.inline_editing_style,r=t('<link rel="stylesheet" href="'+i+'" />'),c=t('<link rel="stylesheet" href="'+n.dashicons_css_url+'" />');r.on("load",(function(){a.contents().find("body").css("visibility","visible"),a.trigger("checkheight")})),a.contents().find("head").append(r).append(c),a.contents().find("body").html(e.mce.grunion_wp_view_renderer.editor_inline({to:s.attrs.named.to,subject:s.attrs.named.subject,fields:f})).css("visibility","hidden"),a.contents().find("input:first").focus(),setTimeout((function(){a.trigger("checkheight")}),250),setTimeout((function(){a.trigger("checkheight")}),500);var l=a.contents().find(".grunion-fields"),d=a.contents().find(".grunion-controls");l.sortable(),l.on("change select","select[name=type]",(function(){t(this).closest(".grunion-field-edit")[0].className="card is-compact grunion-field-edit grunion-field-"+t(this).val(),a.trigger("checkheight")})),l.on("click",".delete-option",(function(e){e.preventDefault(),t(this).closest("li").remove(),a.trigger("checkheight")})),l.on("click",".add-option",(function(n){var i=t(e.mce.grunion_wp_view_renderer.editor_option());n.preventDefault(),t(this).closest("li").before(i),a.trigger("checkheight"),i.find("input:first").focus()})),l.on("click",".delete-field",(function(e){e.preventDefault(),t(this).closest(".card").remove(),a.trigger("checkheight")})),d.find("input[name=submit]").on("click",(function(){var n=s;n.type="closed",n.attrs={},n.content="",l.children().each((function(){var i={tag:"contact-field",type:"single",attrs:{label:t(this).find("input[name=label]").val(),type:t(this).find("select[name=type]").val()}},o=[];t(this).find("input[name=required]:checked").length&&(i.attrs.required="1"),t(this).find("input[name=option]").each((function(){t(this).val()&&o.push(t(this).val())})),o.length&&(i.attrs.options=o.join(",")),n.content+=e.shortcode.string(i)})),a.contents().find("input[name=to]").val()&&(n.attrs.to=a.contents().find("input[name=to]").val()),a.contents().find("input[name=subject]").val()&&(n.attrs.subject=a.contents().find("input[name=subject]").val()),o(e.shortcode.string(n))})),d.find("input[name=cancel]").on("click",(function(){o(e.shortcode.string(s))})),d.find("input[name=add-field]").on("click",(function(){var n=t(e.mce.grunion_wp_view_renderer.edit_template({}));l.append(n),l.sortable("refresh"),a.trigger("checkheight"),n.find("input:first").focus()}))})),l.html(a)}},e.mce.views.register("contact-form",e.mce.grunion_wp_view_renderer),QTags.addButton("grunion_shortcode",n.labels.quicktags_label,(function(){QTags.insertContent("[contact-form]"+n.default_form+"[/contact-form]")}));var i=t("#wp-content-wrap");t("#insert-jetpack-contact-form").on("click",(function(t){t.preventDefault(),i.hasClass("tmce-active")?tinyMCE.execCommand("grunion_add_form"):i.hasClass("html-active")?QTags.insertContent("[contact-form]"+n.default_form+"[/contact-form]"):window.console.error("Neither TinyMCE nor QuickTags is active. Unable to insert form.")}))}}(jQuery,wp,grunionEditorView); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.asset.php b/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.asset.php
new file mode 100644
index 00000000..ec683686
--- /dev/null
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'a154f36d301eb7253ef00d164609a0b3'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.js b/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.js
index d9f7a7f8..43689378 100644
--- a/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.js
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion-admin.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global ajaxurl */
-jQuery(function(e){e(document).on("click","#jetpack-check-feedback-spam:not(.button-disabled)",function(n){n.preventDefault(),e("#jetpack-check-feedback-spam:not(.button-disabled)").addClass("button-disabled"),e(".jetpack-check-feedback-spam-spinner").addClass("spinner").show(),function n(c,t){e.post(ajaxurl,{action:"grunion_recheck_queue",offset:c,limit:t},function(e){e.processed<t?window.location.reload():n(c+t,t)})}(0,100)})}); \ No newline at end of file
+jQuery((function(a){if("undefined"!=typeof jetpack_empty_spam_button_parameters){var t=a("<div/>").addClass("jetpack-empty-spam-container"),e=a("<a />").addClass("button-secondary").addClass("jetpack-empty-spam").attr("href","#").attr("data-progress-label",jetpack_empty_spam_button_parameters.progress_label).attr("data-success-url",jetpack_empty_spam_button_parameters.success_url).attr("data-failure-url",jetpack_empty_spam_button_parameters.failure_url).attr("data-spam-feedbacks-count",jetpack_empty_spam_button_parameters.spam_count).attr("data-nonce",jetpack_empty_spam_button_parameters.nonce).text(jetpack_empty_spam_button_parameters.label);t.append(e);var s=a("<span />").addClass("jetpack-empty-spam-spinner");t.append(s),a(".tablenav.top .actions, .tablenav.bottom .actions").not(".bulkactions").append(t)}function n(t,e){var s=a("#jetpack-check-feedback-spam").data("nonce-name"),p=a("#"+s).attr("value"),c=a("#jetpack-check-feedback-spam").data("failure-url"),d={action:"grunion_recheck_queue",offset:t,limit:e};d[s]=p,a.post(ajaxurl,d).fail((function(a){window.location.href=c})).done((function(a){a.processed<e?window.location.reload():n(t+e,e)}))}a(document).on("click","#jetpack-check-feedback-spam:not(.button-disabled)",(function(t){t.preventDefault(),a("#jetpack-check-feedback-spam:not(.button-disabled)").addClass("button-disabled"),a(".jetpack-check-feedback-spam-spinner").addClass("spinner").show(),n(0,100)}));var p=0,c=0;function d(){var t=a(".jetpack-empty-spam"),e=t.data("nonce"),s=Math.round(c/p*1e3)/10;t.text(t.data("progress-label").replace("%1$s",s)),a.post(ajaxurl,{action:"jetpack_delete_spam_feedbacks",nonce:e}).fail((function(a){window.location.href=t.data("failure-url")})).done((function(a){c+=a.data.counts.deleted,a.data.counts.deleted<a.data.counts.limit?window.location.href=t.data("success-url"):d()}))}a(document).on("click",".jetpack-empty-spam",(function(t){t.preventDefault(),a(this).hasClass("button-disabled")||(a(".jetpack-empty-spam").addClass("button-disabled").addClass("emptying"),a(".jetpack-empty-spam-spinner").addClass("spinner").addClass("is-active"),a(".jetpack-empty-spam").text(a(".jetpack-empty-spam").data("progress-label").replace("%1$s","0")),p=parseInt(a(this).data("spam-feedbacks-count"),10),d())}))})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.asset.php b/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.asset.php
new file mode 100644
index 00000000..c6773ae1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '7120c3986b6fbd13f1084132ab99da0b'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.js b/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.js
index 8fccfff7..c3135d70 100644
--- a/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.js
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion-frontend.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-jQuery(function(t){t(".contact-form input.jp-contact-form-date").datepicker()}); \ No newline at end of file
+jQuery((function(t){t(".contact-form input.jp-contact-form-date").datepicker()})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion.min.asset.php b/plugins/jetpack/_inc/build/contact-form/js/grunion.min.asset.php
new file mode 100644
index 00000000..8f0a288a
--- /dev/null
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '3719f4fe5ce6b577313a734a0b0733ca'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/grunion.min.js b/plugins/jetpack/_inc/build/contact-form/js/grunion.min.js
index 83ef7f85..600f5ab7 100644
--- a/plugins/jetpack/_inc/build/contact-form/js/grunion.min.js
+++ b/plugins/jetpack/_inc/build/contact-form/js/grunion.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global GrunionFB_i18n: true, FB, ajax_nonce_shortcode, ajax_nonce_json, ajaxurl, postId */
-window.FB||(window.FB={}),GrunionFB_i18n=jQuery.extend({nameLabel:"Name",emailLabel:"Email",urlLabel:"Website",commentLabel:"Comment",newLabel:"New Field",optionsLabel:"Options",optionLabel:"Option",firstOptionLabel:"First option",problemGeneratingForm:"Oops, there was a problem generating your form. You'll likely need to try again.",moveInstructions:"Drag up or down\nto re-arrange",moveLabel:"move",editLabel:"edit",savedMessage:"Saved successfully",requiredLabel:"(required)",exitConfirmMessage:"Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.",maxNewFields:5,invalidEmail:" is an invalid email address."},GrunionFB_i18n),GrunionFB_i18n.moveInstructions=GrunionFB_i18n.moveInstructions.replace("\n","<br />"),FB.span=jQuery("<span>"),FB.esc_html=function(e){return FB.span.text(e).html()},FB.esc_attr=function(e){return(e=FB.esc_html(e)).replace('"',"&quot;").replace("'","&#039;")},FB.ContactForm=function(){var e={action:"grunion_shortcode",_ajax_nonce:ajax_nonce_shortcode,to:"",subject:"",fields:{}},i={name:{label:GrunionFB_i18n.nameLabel,type:"name",required:!0,options:[],order:"1"},email:{label:GrunionFB_i18n.emailLabel,type:"email",required:!0,options:[],order:"2"},url:{label:GrunionFB_i18n.urlLabel,type:"url",required:!1,options:[],order:"3"},comment:{label:GrunionFB_i18n.commentLabel,type:"textarea",required:!0,options:[],order:"4"}},n=!1,o=0,t=GrunionFB_i18n.maxNewFields,l={},r=0;function a(e,i){try{for(var o="",t=0;t<l[e].options.length;t++)void 0!==l[e].options[t]&&(o="radio"===i?o+'<div id="fb-radio-'+e+"-"+t+'"><input type="radio" id="fb-field'+e+'" name="radio-'+e+'" /><span>'+FB.esc_html(l[e].options[t])+'</span><div class="clear"></div></div>':"checkbox-multiple"===i?o+'<div id="fb-checkbox-multiple-'+e+"-"+t+'"><input type="checkbox" id="fb-field'+e+'" name="checkbox-multiple-'+e+'" /><span>'+FB.esc_html(l[e].options[t])+'</span><div class="clear"></div></div>':o+'<option id="fb-'+e+"-"+t+'" value="'+e+"-"+t+'">'+FB.esc_html(l[e].options[t])+"</option>");return o}catch(e){n&&console.log("customOptions(): "+e)}}function d(i){try{scroll(0,0),setTimeout(function(){jQuery("#fb-new-label").focus().select()},100),function(i){try{var o=e.fields[i].type;if(jQuery("#fb-options").hide(),jQuery("#fb-field-id").val(i),jQuery("#fb-new-label").val(e.fields[i].label),jQuery("#fb-new-type").val(e.fields[i].type),e.fields[i].required?jQuery("#fb-new-required").prop("checked",!0):jQuery("#fb-new-required").prop("checked",!1),"select"===o||"radio"===o||"checkbox-multiple"===o){var t=e.fields[i].options;jQuery("#fb-options").show(),jQuery("#fb-new-options").html("");for(var l=0;l<t.length;l++)void 0!==t[l]&&jQuery("#fb-new-options").append('<div id="fb-option-box-'+l+'" class="fb-new-fields"><span optionid="'+l+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+l+'" optionid="'+l+'" value="'+FB.esc_attr(e.fields[i].options[l])+'" class="fb-options" /><div>')}s()}catch(e){n&&console.log("loadFieldEditor(): "+e)}}(i.parent().attr("fieldid"))}catch(e){n&&console.log("editField(): "+e)}}function s(){jQuery("#fb-desc").hide(),jQuery("#fb-add-field").show()}function f(){try{return jQuery("#TB_imageOff",window.parent.document).unbind("click"),jQuery("#TB_closeWindowButton",window.parent.document).unbind("click"),jQuery("#TB_window",window.parent.document).fadeOut("fast"),jQuery("body",window.parent.document).removeClass("modal-open"),jQuery("#TB_window,#TB_overlay,#TB_HideSelect",window.parent.document).trigger("unload").unbind().remove(),jQuery("#TB_load",window.parent.document).remove(),void 0===window.parent.document.body.style.maxHeight&&(jQuery("body","html",window.parent.document).css({height:"auto",width:"auto"}),jQuery("html",window.parent.document).css("overflow","")),window.parent.document.onkeydown="",window.parent.document.onkeyup="",!1}catch(e){n&&console.log("hidePopup(): "+e)}}function u(e,i){try{"show"===e?(jQuery(".fb-edit-field").is(":visible")&&jQuery(".fb-edit-field").remove(),i.find("label").prepend('<span class="right fb-edit-field" style="font-weight: normal;"><a href="" class="fb-reorder"><div style="display: none;">'+GrunionFB_i18n.moveInstructions+"</div>"+GrunionFB_i18n.moveLabel+'</a>&nbsp;&nbsp;<span style="color: #C7D8DE;">|</span>&nbsp;&nbsp;<a href="" class="fb-edit">'+GrunionFB_i18n.editLabel+"</a></span>")):jQuery(".fb-edit-field").remove()}catch(e){n&&console.log("hideShowEditLink(): "+e)}}function c(){try{var i=jQuery("#fb-field-id").val();jQuery("#fb-options").hide(),void 0===l[i]&&(l[i]={}),l[i].options=e.fields[i].options,e.fields[i].options=[]}catch(e){n&&console.log("removeOptions(): "+e)}}function b(){jQuery("#fb-desc").show(),jQuery("#fb-add-field").hide()}function p(e){try{var i=e||GrunionFB_i18n.savedMessage;jQuery("#fb-success").text(i),jQuery("#fb-success").slideDown("fast"),setTimeout(function(){jQuery("#fb-success").slideUp("fast")},2500)}catch(e){n&&console.log("showAndHideMessage(): "+e)}}function y(e){try{if("preview"===e){if(!function(e){if(0===e.length)return!0;var i,n=e.split(",");for(i=0;i<n.length;i++)if(!1===(o=n[i],void 0,/^(?=[a-z0-9@.!#$%&'*+\/=?^_`{|}~-]{6,254}$)(?=[a-z0-9.!#$%&'*+\/=?^_`{|}~-]{1,64}@)[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?=[a-z0-9-]{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,/^(?=[a-z0-9@.!#$%&'*+\/=?^_`{|}~-]{6,254}$)(?=[a-z0-9.!#$%&'*+\/=?^_`{|}~-]{1,64}@)[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?=[a-z0-9-]{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(o)))return alert(n[i]+GrunionFB_i18n.invalidEmail),!1;var o;return!0}(jQuery("#fb-field-my-email").val()))return;jQuery("#tab-preview a").addClass("current"),jQuery("#tab-settings a").removeClass("current"),jQuery("#fb-preview-form, #fb-desc").show(),jQuery("#fb-email-settings, #fb-email-desc").hide(),p(GrunionFB_i18n.savedMessage)}else jQuery("#tab-preview a").removeClass("current"),jQuery("#tab-settings a").addClass("current"),jQuery("#fb-preview-form, #fb-desc, #fb-add-field").hide(),jQuery("#fb-email-settings, #fb-email-desc").show(),jQuery("#fb-field-my-email").focus().select()}catch(e){n&&console.log("switchTabs(): "+e)}}function v(i,o,t){try{var d=jQuery("#fb-field-id").val();i||(i=jQuery("#fb-new-type").val()),o||(o=jQuery("#fb-new-field"+d+" .label-text").text());var s=t?'<span class="label-required">'+GrunionFB_i18n.requiredLabel+"</span>":"",f='<label fieldid="'+d+'" for="fb-field'+d+'"><span class="label-text">'+FB.esc_html(o)+"</span>"+s+"</label>",u='<input type="radio" name="radio-'+d+'" id="fb-field'+d+' "disabled="disabled" />',b='<label fieldid="'+d+'" for="fb-field'+d+'" class="fb-radio-label"><span class="label-text">'+FB.esc_html(o)+"</span>"+s+"</label>",p='<div class="fb-remove fb-remove-small" id="'+d+'"></div>',y='<div class="fb-remove" id="'+d+'"></div>',v='<input type="checkbox" id="fb-field'+d+'" "disabled="disabled" />',m='<input type="checkbox" id="fb-field'+d+'" "disabled="disabled" />',w='<div class="fb-remove fb-remove-small" id="'+d+'"></div>',j='<input type="text" id="fb-field'+d+'" "disabled="disabled" />',Q='<textarea id="fb-field'+d+'" "disabled="disabled"></textarea>',h='<div class="clear"></div>',x='<select id="fb-field'+d+'" fieldid="'+d+'"><option id="fb-'+d+"-"+r+'" value="'+d+"-"+r+'">'+GrunionFB_i18n.firstOptionLabel+"</option></select>";switch(i){case"checkbox":c(),jQuery("#fb-new-field"+d+" .fb-fields").html(p+v+b+h);break;case"checkbox-multiple":jQuery("#fb-new-field"+d+" .fb-fields").html(f+w+'<div fieldid="'+d+'" id="fb-custom-checkbox-multiple'+d+'"></div>'),void 0!==l[d]&&0!==l[d].options.length?(e.fields[d].options=l[d].options,jQuery("#fb-custom-checkbox-multiple"+d).append(a(d,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-custom-checkbox-multiple"+d).append('<div id="fb-checkbox-multiple-'+d+'-0">'+m+"<span>"+GrunionFB_i18n.firstOptionLabel+"</span>"+h+"</div>"),e.fields[d].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout(function(){jQuery("#fb-option0").focus().select()},100);break;case"email":case"name":c(),jQuery("#fb-new-field"+d+" .fb-fields").html(y+f+j);break;case"radio":jQuery("#fb-new-field"+d+" .fb-fields").html(f+p+'<div fieldid="'+d+'" id="fb-custom-radio'+d+'"></div>'),void 0!==l[d]&&0!==l[d].options.length?(e.fields[d].options=l[d].options,jQuery("#fb-custom-radio"+d).append(a(d,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-custom-radio"+d).append('<div id="fb-radio-'+d+'-0">'+u+"<span>"+GrunionFB_i18n.firstOptionLabel+"</span>"+h+"</div>"),e.fields[d].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout(function(){jQuery("#fb-option0").focus().select()},100);break;case"select":jQuery("#fb-new-field"+d+" .fb-fields").html(y+f+x),void 0!==l[d]&&0!==l[d].options.length?(e.fields[d].options=l[d].options,jQuery("#fb-field"+d).html(a(d,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),e.fields[d].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout(function(){jQuery("#fb-option0").focus().select()},100);break;case"text":c(),jQuery("#fb-new-field"+d+" .fb-fields").html(y+f+j);break;case"textarea":c(),jQuery("#fb-new-field"+d+" .fb-fields").html(y+f+Q);break;case"url":c(),jQuery("#fb-new-field"+d+" .fb-fields").html(y+f+j)}e.fields[d].type=i}catch(e){n&&console.log("updateType(): "+e)}}return{resizePop:function(){try{var e=jQuery("body",window.parent.document).width(),i=jQuery("body",window.parent.document).height(),o=void 0===document.body.style.maxHeight;jQuery("#TB_window, #TB_iframeContent",window.parent.document).css("width","768px"),jQuery("#TB_window",window.parent.document).css({left:(e-768)/2+"px",top:"23px",position:"absolute",marginLeft:"0"}),o||jQuery("#TB_window, #TB_iframeContent",window.parent.document).css("height",i-73+"px")}catch(e){n&&console.log("resizePop(): "+e)}},init:function(){var a;(window.parent.scroll(0,0),jQuery("#edButtonPreview",window.parent.document).hasClass("active")||jQuery("#wp-content-wrap",window.parent.document).hasClass("tmce-active"))?a=(window.dialogArguments||opener||parent||top).tinyMCE.activeEditor.getContent():a=jQuery("#content",window.parent.document).val();var c={action:"grunion_shortcode_to_json",_ajax_nonce:ajax_nonce_json,post_id:postId,content:a},m=jQuery(document);jQuery.post(ajaxurl,c,function(o){!function(o){try{e.fields={},o?(jQuery.each(o.fields,function(i,n){1===parseInt(n.required,10)&&(n.required="true"),e.fields[i]=n}),e.to=o.to,e.subject=o.subject):e.fields=i}catch(e){n&&console.log("parseShortcode(): "+e)}}(jQuery.parseJSON(o)),function(){try{e.to&&jQuery("#fb-field-my-email").val(e.to),e.subject&&jQuery("#fb-field-subject").val(e.subject),jQuery.each(e.fields,function(e,i){jQuery("#fb-extra-fields").before('<div class="fb-new-fields ui-state-default" fieldid="'+e+'" id="fb-new-field'+e+'"><div class="fb-fields"></div></div>'),jQuery("#fb-field-id").val(e),l[e]={},l[e].options=[],"radio"!==i.type&&"select"!==i.type&&"checkbox-multiple"!==i.type||jQuery.each(i.options,function(i,n){l[e].options[i]=n}),v(i.type,i.label,i.required)})}catch(e){n&&console.log("buildPreview(): "+e)}}()}),jQuery(".fb-add-field").click(function(){return function(){try{++o<=t?(jQuery("#fb-extra-fields").append('<div id="fb-new-field'+o+'" fieldid="'+o+'" class="fb-new-fields"><div class="fb-fields"><div id="'+o+'" class="fb-remove"></div><label fieldid="'+o+'" for="fb-field'+o+'"><span class="label-text">'+GrunionFB_i18n.newLabel+'</span> </label><input type="text" id="fb-field'+o+'" disabled="disabled" /></div></div>'),e.fields[o]={label:GrunionFB_i18n.newLabel,type:"text",required:!1,options:[],order:"5"},o===t&&jQuery("#fb-new-field").hide(),r=0,l={},jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-options").hide(),jQuery("#fb-new-label").val(GrunionFB_i18n.newLabel),jQuery("#fb-new-type").val("text"),jQuery("#fb-field-id").val(o),setTimeout(function(){jQuery("#fb-new-label").focus().select()},100)):jQuery("#fb-new-field").hide()}catch(e){n&&console.log("addField(): "+e)}}(),s(),!1}),jQuery("#fb-new-label").keyup(function(){!function(){try{var i=jQuery("#fb-field-id").val(),o=jQuery("#fb-new-label").val();0===o.length?jQuery("#fb-new-field"+i+" label .label-text").text(GrunionFB_i18n.newLabel):jQuery("#fb-new-field"+i+" label .label-text").text(o),e.fields[i].label=o}catch(e){n&&console.log("updateLabel(): "+e)}}()}),jQuery("#fb-new-type").change(function(){v()}),jQuery("#fb-new-required").click(function(){!function(){try{var i=jQuery("#fb-field-id").val();jQuery("#fb-new-required").is(":checked")?(e.fields[i].required=!0,jQuery("#fb-new-field"+i+" label").append('<span class="label-required">'+GrunionFB_i18n.requiredLabel+"</span>")):(e.fields[i].required=!1,jQuery("#fb-new-field"+i+" label .label-required").remove())}catch(e){n&&console.log("updateRequired(): "+e)}}()}),m.on("click",".fb-remove",function(){b(),function(i){try{o--;var l=i.attr("id");delete e.fields[l],jQuery("#"+l).parent().parent().remove(),o<=t&&jQuery("#fb-new-field").show()}catch(e){n&&console.log("deleteField(): "+e)}}(jQuery(this)),function(){try{jQuery.post(ajaxurl,e,function(e){e})}catch(e){alert(GrunionFB_i18n.problemGeneratingForm),n&&console.log("grabShortcode(): "+e)}}()}),jQuery("#fb-preview").submit(function(){return function(){try{jQuery("div#sortable div.fb-new-fields").each(function(i){var n=jQuery(this).attr("fieldid");e.fields[n].order=i}),jQuery.post(ajaxurl,e,function(e){var i=jQuery("#edButtonPreview",window.parent.document).hasClass("active");i||(i=jQuery("#wp-content-wrap",window.parent.document).hasClass("tmce-active"));var n,o=window.dialogArguments||opener||parent||top;i?n=o.tinyMCE.activeEditor.getContent():"string"!=typeof(n=jQuery("#editorcontainer textarea",window.parent.document).val())&&(n=jQuery(".wp-editor-area",window.parent.document).val());var t=new RegExp("\\[contact-form\\b.*?\\/?\\](?:[\\s\\S]+?\\[\\/contact-form\\])?");if(e=(e=e.replace(/\n/g," ")).replace(/%26#x002c;/g,","),n.match(t))i?o.tinyMCE.activeEditor.execCommand("mceSetContent",!1,n.replace(t,e)):jQuery("#content",window.parent.document).val(n.replace(t,e));else try{o.send_to_editor(e)}catch(t){i?o.tinyMCE.activeEditor.execCommand("mceInsertContent",!1,e):jQuery("#content",window.parent.document).val(n+e)}f()})}catch(e){n&&console.log("sendShortcodeToEditor(): "+e)}}(),!1}),jQuery("#TB_overlay, #TB_closeWindowButton",window.parent.document).mousedown(function(){confirm(GrunionFB_i18n.exitConfirmMessage)&&f()}),m.on("click","#fb-another-option",function(){!function(){try{r=jQuery("#fb-new-options .fb-options").length;var i=jQuery("#fb-field-id").val(),o=jQuery("#fb-new-type").val();"radio"===o?(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="'+GrunionFB_i18n.optionLabel+'" class="fb-options" /><div>'),jQuery("#fb-new-field"+i+" .fb-fields").append('<div id="fb-radio-'+i+"-"+r+'"><input type="radio" disabled="disabled" id="fb-field'+i+'" name="radio-'+i+'" /><span>'+GrunionFB_i18n.optionLabel+'</span><div class="clear"></div></div>')):"checkbox-multiple"===o?(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="'+GrunionFB_i18n.optionLabel+'" class="fb-options" /><div>'),jQuery("#fb-new-field"+i+" .fb-fields").append('<div id="fb-checkbox-multiple-'+i+"-"+r+'"><input type="checkbox" disabled="disabled" id="fb-field'+i+'" name="checkbox-multiple-'+i+'" /><span>'+GrunionFB_i18n.optionLabel+'</span><div class="clear"></div></div>')):(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="" class="fb-options" /><div>'),jQuery("#fb-field"+i).append('<option id="fb-'+i+"-"+r+'" value="'+i+"-"+r+'"></option>')),e.fields[i].options[r]="",jQuery("#fb-option"+r).focus().select()}catch(e){n&&console.log("addOption(): "+e)}}()}),m.on("keyup",".fb-options",function(){!function(i){try{var o=jQuery("#fb-field-id").val(),t=i.attr("optionid"),l=i.val(),r=jQuery("#fb-new-type").val();"radio"===r?jQuery("#fb-radio-"+o+"-"+t+" span").text(l):"checkbox-multiple"===r?jQuery("#fb-checkbox-multiple-"+o+"-"+t+" span").text(l):jQuery("#fb-"+o+"-"+t).text(l),e.fields[o].options[t]=l}catch(e){n&&console.log("updateOption(): "+e)}}(jQuery(this))}),m.on("click",".fb-remove-option",function(){!function(i){try{var o=jQuery("#fb-field-id").val(),t=jQuery("#fb-option"+i).val(),l=jQuery("#fb-new-type").val();jQuery("#fb-option-box-"+i).remove(),"radio"===l?jQuery("#fb-radio-"+o+"-"+i).remove():"checkbox-multiple"===l?jQuery("#fb-checkbox-multiple-"+o+"-"+i).remove():jQuery("#fb-"+o+"-"+i).remove();var r=e.fields[o].options.indexOf(t);-1!==r&&e.fields[o].options.splice(r,1)}catch(e){n&&console.log("removeOption(): "+e)}}(jQuery(this).attr("optionid"))}),jQuery("#tab-preview a").click(function(){return y("preview"),!1}),jQuery("#fb-prev-form").click(function(){return y("preview"),!1}),jQuery("#tab-settings a").click(function(){return y(),!1}),jQuery("#fb-field-my-email").blur(function(){!function(){try{var i=jQuery("#fb-field-my-email").val();e.to=i}catch(e){n&&console.log("updateMyEmail(): "+e)}}()}),jQuery("#fb-field-subject").blur(function(){!function(){try{var i=jQuery("#fb-field-subject").val();e.subject=i}catch(e){n&&console.log("updateSubject(): "+e)}}()}),m.on("mouseenter",".fb-form-case .fb-new-fields",function(){u("show",jQuery(this))}),m.on("mouseleave",".fb-form-case .fb-new-fields",function(){return u("hide"),!1}),m.on("click",".fb-edit-field",function(){return d(jQuery(this)),!1}),m.on("click",".fb-edit-field .fb-reorder",function(){return!1}),m.on("click","#fb-save-field",function(){return b(),p(),!1}),jQuery("#fb-feedback").click(function(){var e=jQuery(this).attr("href");return window.parent.location=e,!1}),jQuery("#sortable").sortable({axis:"y",handle:".fb-reorder",revert:!0,start:function(){jQuery(".fb-edit-field").hide()}}),jQuery("#draggable").draggable({axis:"y",handle:".fb-reorder",connectToSortable:"#sortable",helper:"clone",revert:"invalid"})}}}(); \ No newline at end of file
+window.FB||(window.FB={}),GrunionFB_i18n=jQuery.extend({nameLabel:"Name",emailLabel:"Email",urlLabel:"Website",commentLabel:"Comment",newLabel:"New Field",optionsLabel:"Options",optionLabel:"Option",firstOptionLabel:"First option",problemGeneratingForm:"Oops, there was a problem generating your form. You'll likely need to try again.",moveInstructions:"Drag up or down\nto re-arrange",moveLabel:"move",editLabel:"edit",savedMessage:"Saved successfully",requiredLabel:"(required)",exitConfirmMessage:"Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.",maxNewFields:5,invalidEmail:" is an invalid email address."},GrunionFB_i18n),GrunionFB_i18n.moveInstructions=GrunionFB_i18n.moveInstructions.replace("\n","<br />"),FB.span=jQuery("<span>"),FB.esc_html=function(e){return FB.span.text(e).html()},FB.esc_attr=function(e){return(e=FB.esc_html(e)).replace('"',"&quot;").replace("'","&#039;")},FB.ContactForm=function(){var e={action:"grunion_shortcode",_ajax_nonce:ajax_nonce_shortcode,to:"",subject:"",fields:{}},i={name:{label:GrunionFB_i18n.nameLabel,type:"name",required:!0,options:[],order:"1"},email:{label:GrunionFB_i18n.emailLabel,type:"email",required:!0,options:[],order:"2"},url:{label:GrunionFB_i18n.urlLabel,type:"url",required:!1,options:[],order:"3"},comment:{label:GrunionFB_i18n.commentLabel,type:"textarea",required:!0,options:[],order:"4"}},n=0,t=GrunionFB_i18n.maxNewFields,o={},r=0;function a(e,i){try{for(var n="",t=0;t<o[e].options.length;t++)void 0!==o[e].options[t]&&(n="radio"===i?n+'<div id="fb-radio-'+e+"-"+t+'"><input type="radio" id="fb-field'+e+'" name="radio-'+e+'" /><span>'+FB.esc_html(o[e].options[t])+'</span><div class="clear"></div></div>':"checkbox-multiple"===i?n+'<div id="fb-checkbox-multiple-'+e+"-"+t+'"><input type="checkbox" id="fb-field'+e+'" name="checkbox-multiple-'+e+'" /><span>'+FB.esc_html(o[e].options[t])+'</span><div class="clear"></div></div>':n+'<option id="fb-'+e+"-"+t+'" value="'+e+"-"+t+'">'+FB.esc_html(o[e].options[t])+"</option>");return n}catch(e){}}function l(i){try{scroll(0,0),setTimeout((function(){jQuery("#fb-new-label").focus().select()}),100),function(i){try{var n=e.fields[i].type;if(jQuery("#fb-options").hide(),jQuery("#fb-field-id").val(i),jQuery("#fb-new-label").val(e.fields[i].label),jQuery("#fb-new-type").val(e.fields[i].type),e.fields[i].required?jQuery("#fb-new-required").prop("checked",!0):jQuery("#fb-new-required").prop("checked",!1),"select"===n||"radio"===n||"checkbox-multiple"===n){var t=e.fields[i].options;jQuery("#fb-options").show(),jQuery("#fb-new-options").html("");for(var o=0;o<t.length;o++)void 0!==t[o]&&jQuery("#fb-new-options").append('<div id="fb-option-box-'+o+'" class="fb-new-fields"><span optionid="'+o+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+o+'" optionid="'+o+'" value="'+FB.esc_attr(e.fields[i].options[o])+'" class="fb-options" /><div>')}d()}catch(e){}}(i.parent().attr("fieldid"))}catch(e){}}function d(){jQuery("#fb-desc").hide(),jQuery("#fb-add-field").show()}function s(){try{return jQuery("#TB_imageOff",window.parent.document).unbind("click"),jQuery("#TB_closeWindowButton",window.parent.document).unbind("click"),jQuery("#TB_window",window.parent.document).fadeOut("fast"),jQuery("body",window.parent.document).removeClass("modal-open"),jQuery("#TB_window,#TB_overlay,#TB_HideSelect",window.parent.document).trigger("unload").unbind().remove(),jQuery("#TB_load",window.parent.document).remove(),void 0===window.parent.document.body.style.maxHeight&&(jQuery("body","html",window.parent.document).css({height:"auto",width:"auto"}),jQuery("html",window.parent.document).css("overflow","")),window.parent.document.onkeydown="",window.parent.document.onkeyup="",!1}catch(e){}}function f(e,i){try{"show"===e?(jQuery(".fb-edit-field").is(":visible")&&jQuery(".fb-edit-field").remove(),i.find("label").prepend('<span class="right fb-edit-field" style="font-weight: normal;"><a href="" class="fb-reorder"><div style="display: none;">'+GrunionFB_i18n.moveInstructions+"</div>"+GrunionFB_i18n.moveLabel+'</a>&nbsp;&nbsp;<span style="color: #C7D8DE;">|</span>&nbsp;&nbsp;<a href="" class="fb-edit">'+GrunionFB_i18n.editLabel+"</a></span>")):jQuery(".fb-edit-field").remove()}catch(e){}}function u(){try{var i=jQuery("#fb-field-id").val();jQuery("#fb-options").hide(),void 0===o[i]&&(o[i]={}),o[i].options=e.fields[i].options,e.fields[i].options=[]}catch(e){}}function c(){jQuery("#fb-desc").show(),jQuery("#fb-add-field").hide()}function b(e){try{var i=e||GrunionFB_i18n.savedMessage;jQuery("#fb-success").text(i),jQuery("#fb-success").slideDown("fast"),setTimeout((function(){jQuery("#fb-success").slideUp("fast")}),2500)}catch(e){}}function p(e){try{if("preview"===e){if(!function(e){if(0===e.length)return!0;var i,n=e.split(",");for(i=0;i<n.length;i++)if(!1===y(n[i]))return alert(n[i]+GrunionFB_i18n.invalidEmail),!1;return!0}(jQuery("#fb-field-my-email").val()))return;jQuery("#tab-preview a").addClass("current"),jQuery("#tab-settings a").removeClass("current"),jQuery("#fb-preview-form, #fb-desc").show(),jQuery("#fb-email-settings, #fb-email-desc").hide(),b(GrunionFB_i18n.savedMessage)}else jQuery("#tab-preview a").removeClass("current"),jQuery("#tab-settings a").addClass("current"),jQuery("#fb-preview-form, #fb-desc, #fb-add-field").hide(),jQuery("#fb-email-settings, #fb-email-desc").show(),jQuery("#fb-field-my-email").focus().select()}catch(e){}}function y(e){return/^(?=[a-z0-9@.!#$%&'*+/=?^_`{|}~-]{6,254}$)(?=[a-z0-9.!#$%&'*+/=?^_`{|}~-]{1,64}@)[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:(?=[a-z0-9-]{1,63}\.)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?=[a-z0-9-]{1,63}$)[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(e)}function v(i,n,t){try{var l=jQuery("#fb-field-id").val();i||(i=jQuery("#fb-new-type").val()),n||(n=jQuery("#fb-new-field"+l+" .label-text").text());var d=t?'<span class="label-required">'+GrunionFB_i18n.requiredLabel+"</span>":"",s='<label fieldid="'+l+'" for="fb-field'+l+'"><span class="label-text">'+FB.esc_html(n)+"</span>"+d+"</label>",f='<input type="radio" name="radio-'+l+'" id="fb-field'+l+' "disabled="disabled" />',c='<label fieldid="'+l+'" for="fb-field'+l+'" class="fb-radio-label"><span class="label-text">'+FB.esc_html(n)+"</span>"+d+"</label>",b='<div class="fb-remove fb-remove-small" id="'+l+'"></div>',p='<div class="fb-remove" id="'+l+'"></div>',y='<input type="checkbox" id="fb-field'+l+'" "disabled="disabled" />',v='<input type="checkbox" id="fb-field'+l+'" "disabled="disabled" />',m='<div class="fb-remove fb-remove-small" id="'+l+'"></div>',w='<input type="text" id="fb-field'+l+'" "disabled="disabled" />',j='<textarea id="fb-field'+l+'" "disabled="disabled"></textarea>',Q='<div class="clear"></div>',h='<select id="fb-field'+l+'" fieldid="'+l+'"><option id="fb-'+l+"-"+r+'" value="'+l+"-"+r+'">'+GrunionFB_i18n.firstOptionLabel+"</option></select>";switch(i){case"checkbox":u(),jQuery("#fb-new-field"+l+" .fb-fields").html(b+y+c+Q);break;case"checkbox-multiple":jQuery("#fb-new-field"+l+" .fb-fields").html(s+m+'<div fieldid="'+l+'" id="fb-custom-checkbox-multiple'+l+'"></div>'),void 0!==o[l]&&0!==o[l].options.length?(e.fields[l].options=o[l].options,jQuery("#fb-custom-checkbox-multiple"+l).append(a(l,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-custom-checkbox-multiple"+l).append('<div id="fb-checkbox-multiple-'+l+'-0">'+v+"<span>"+GrunionFB_i18n.firstOptionLabel+"</span>"+Q+"</div>"),e.fields[l].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout((function(){jQuery("#fb-option0").focus().select()}),100);break;case"email":case"name":case"text":case"url":u(),jQuery("#fb-new-field"+l+" .fb-fields").html(p+s+w);break;case"radio":jQuery("#fb-new-field"+l+" .fb-fields").html(s+b+'<div fieldid="'+l+'" id="fb-custom-radio'+l+'"></div>'),void 0!==o[l]&&0!==o[l].options.length?(e.fields[l].options=o[l].options,jQuery("#fb-custom-radio"+l).append(a(l,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-custom-radio"+l).append('<div id="fb-radio-'+l+'-0">'+f+"<span>"+GrunionFB_i18n.firstOptionLabel+"</span>"+Q+"</div>"),e.fields[l].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout((function(){jQuery("#fb-option0").focus().select()}),100);break;case"select":jQuery("#fb-new-field"+l+" .fb-fields").html(p+s+h),void 0!==o[l]&&0!==o[l].options.length?(e.fields[l].options=o[l].options,jQuery("#fb-field"+l).html(a(l,i))):(jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),e.fields[l].options[r]=GrunionFB_i18n.firstOptionLabel),jQuery("#fb-options").show(),setTimeout((function(){jQuery("#fb-option0").focus().select()}),100);break;case"textarea":u(),jQuery("#fb-new-field"+l+" .fb-fields").html(p+s+j)}e.fields[l].type=i}catch(e){}}return{resizePop:function(){try{var e=jQuery("body",window.parent.document).width(),i=jQuery("body",window.parent.document).height(),n=void 0===document.body.style.maxHeight;jQuery("#TB_window, #TB_iframeContent",window.parent.document).css("width","768px"),jQuery("#TB_window",window.parent.document).css({left:(e-768)/2+"px",top:"23px",position:"absolute",marginLeft:"0"}),n||jQuery("#TB_window, #TB_iframeContent",window.parent.document).css("height",i-73+"px")}catch(e){}},init:function(){var a;window.parent.scroll(0,0),a=jQuery("#edButtonPreview",window.parent.document).hasClass("active")||jQuery("#wp-content-wrap",window.parent.document).hasClass("tmce-active")?(window.dialogArguments||opener||parent||top).tinyMCE.activeEditor.getContent():jQuery("#content",window.parent.document).val();var u={action:"grunion_shortcode_to_json",_ajax_nonce:ajax_nonce_json,post_id:postId,content:a},y=jQuery(document);jQuery.post(ajaxurl,u,(function(n){!function(n){try{e.fields={},n?(jQuery.each(n.fields,(function(i,n){1===parseInt(n.required,10)&&(n.required="true"),e.fields[i]=n})),e.to=n.to,e.subject=n.subject):e.fields=i}catch(e){}}(jQuery.parseJSON(n)),function(){try{e.to&&jQuery("#fb-field-my-email").val(e.to),e.subject&&jQuery("#fb-field-subject").val(e.subject),jQuery.each(e.fields,(function(e,i){jQuery("#fb-extra-fields").before('<div class="fb-new-fields ui-state-default" fieldid="'+e+'" id="fb-new-field'+e+'"><div class="fb-fields"></div></div>'),jQuery("#fb-field-id").val(e),o[e]={},o[e].options=[],"radio"!==i.type&&"select"!==i.type&&"checkbox-multiple"!==i.type||jQuery.each(i.options,(function(i,n){o[e].options[i]=n})),v(i.type,i.label,i.required)}))}catch(e){}}()})),jQuery(".fb-add-field").click((function(){return function(){try{++n<=t?(jQuery("#fb-extra-fields").append('<div id="fb-new-field'+n+'" fieldid="'+n+'" class="fb-new-fields"><div class="fb-fields"><div id="'+n+'" class="fb-remove"></div><label fieldid="'+n+'" for="fb-field'+n+'"><span class="label-text">'+GrunionFB_i18n.newLabel+'</span> </label><input type="text" id="fb-field'+n+'" disabled="disabled" /></div></div>'),e.fields[n]={label:GrunionFB_i18n.newLabel,type:"text",required:!1,options:[],order:"5"},n===t&&jQuery("#fb-new-field").hide(),r=0,o={},jQuery("#fb-new-options").html('<label for="fb-option0">'+GrunionFB_i18n.optionsLabel+'</label><input type="text" id="fb-option0" optionid="0" value="'+GrunionFB_i18n.firstOptionLabel+'" class="fb-options" />'),jQuery("#fb-options").hide(),jQuery("#fb-new-label").val(GrunionFB_i18n.newLabel),jQuery("#fb-new-type").val("text"),jQuery("#fb-field-id").val(n),setTimeout((function(){jQuery("#fb-new-label").focus().select()}),100)):jQuery("#fb-new-field").hide()}catch(e){}}(),d(),!1})),jQuery("#fb-new-label").keyup((function(){!function(){try{var i=jQuery("#fb-field-id").val(),n=jQuery("#fb-new-label").val();0===n.length?jQuery("#fb-new-field"+i+" label .label-text").text(GrunionFB_i18n.newLabel):jQuery("#fb-new-field"+i+" label .label-text").text(n),e.fields[i].label=n}catch(e){}}()})),jQuery("#fb-new-type").change((function(){v()})),jQuery("#fb-new-required").click((function(){!function(){try{var i=jQuery("#fb-field-id").val();jQuery("#fb-new-required").is(":checked")?(e.fields[i].required=!0,jQuery("#fb-new-field"+i+" label").append('<span class="label-required">'+GrunionFB_i18n.requiredLabel+"</span>")):(e.fields[i].required=!1,jQuery("#fb-new-field"+i+" label .label-required").remove())}catch(e){}}()})),y.on("click",".fb-remove",(function(){c(),function(i){try{n--;var o=i.attr("id");delete e.fields[o],jQuery("#"+o).parent().parent().remove(),n<=t&&jQuery("#fb-new-field").show()}catch(e){}}(jQuery(this)),function(){try{jQuery.post(ajaxurl,e,(function(e){}))}catch(e){alert(GrunionFB_i18n.problemGeneratingForm)}}()})),jQuery("#fb-preview").submit((function(){return function(){try{jQuery("div#sortable div.fb-new-fields").each((function(i){var n=jQuery(this).attr("fieldid");e.fields[n].order=i})),jQuery.post(ajaxurl,e,(function(e){var i=jQuery("#edButtonPreview",window.parent.document).hasClass("active");i||(i=jQuery("#wp-content-wrap",window.parent.document).hasClass("tmce-active"));var n,t=window.dialogArguments||opener||parent||top;i?n=t.tinyMCE.activeEditor.getContent():"string"!=typeof(n=jQuery("#editorcontainer textarea",window.parent.document).val())&&(n=jQuery(".wp-editor-area",window.parent.document).val());var o=new RegExp("\\[contact-form\\b.*?\\/?\\](?:[\\s\\S]+?\\[\\/contact-form\\])?");if(e=(e=e.replace(/\n/g," ")).replace(/%26#x002c;/g,","),n.match(o))i?t.tinyMCE.activeEditor.execCommand("mceSetContent",!1,n.replace(o,e)):jQuery("#content",window.parent.document).val(n.replace(o,e));else try{t.send_to_editor(e)}catch(o){i?t.tinyMCE.activeEditor.execCommand("mceInsertContent",!1,e):jQuery("#content",window.parent.document).val(n+e)}s()}))}catch(e){}}(),!1})),jQuery("#TB_overlay, #TB_closeWindowButton",window.parent.document).mousedown((function(){confirm(GrunionFB_i18n.exitConfirmMessage)&&s()})),y.on("click","#fb-another-option",(function(){!function(){try{r=jQuery("#fb-new-options .fb-options").length;var i=jQuery("#fb-field-id").val(),n=jQuery("#fb-new-type").val();"radio"===n?(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="'+GrunionFB_i18n.optionLabel+'" class="fb-options" /><div>'),jQuery("#fb-new-field"+i+" .fb-fields").append('<div id="fb-radio-'+i+"-"+r+'"><input type="radio" disabled="disabled" id="fb-field'+i+'" name="radio-'+i+'" /><span>'+GrunionFB_i18n.optionLabel+'</span><div class="clear"></div></div>')):"checkbox-multiple"===n?(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="'+GrunionFB_i18n.optionLabel+'" class="fb-options" /><div>'),jQuery("#fb-new-field"+i+" .fb-fields").append('<div id="fb-checkbox-multiple-'+i+"-"+r+'"><input type="checkbox" disabled="disabled" id="fb-field'+i+'" name="checkbox-multiple-'+i+'" /><span>'+GrunionFB_i18n.optionLabel+'</span><div class="clear"></div></div>')):(jQuery("#fb-new-options").append('<div id="fb-option-box-'+r+'" class="fb-new-fields"><span optionid="'+r+'" class="fb-remove-option"></span><label></label><input type="text" id="fb-option'+r+'" optionid="'+r+'" value="" class="fb-options" /><div>'),jQuery("#fb-field"+i).append('<option id="fb-'+i+"-"+r+'" value="'+i+"-"+r+'"></option>')),e.fields[i].options[r]="",jQuery("#fb-option"+r).focus().select()}catch(e){}}()})),y.on("keyup",".fb-options",(function(){!function(i){try{var n=jQuery("#fb-field-id").val(),t=i.attr("optionid"),o=i.val(),r=jQuery("#fb-new-type").val();"radio"===r?jQuery("#fb-radio-"+n+"-"+t+" span").text(o):"checkbox-multiple"===r?jQuery("#fb-checkbox-multiple-"+n+"-"+t+" span").text(o):jQuery("#fb-"+n+"-"+t).text(o),e.fields[n].options[t]=o}catch(e){}}(jQuery(this))})),y.on("click",".fb-remove-option",(function(){!function(i){try{var n=jQuery("#fb-field-id").val(),t=jQuery("#fb-option"+i).val(),o=jQuery("#fb-new-type").val();jQuery("#fb-option-box-"+i).remove(),"radio"===o?jQuery("#fb-radio-"+n+"-"+i).remove():"checkbox-multiple"===o?jQuery("#fb-checkbox-multiple-"+n+"-"+i).remove():jQuery("#fb-"+n+"-"+i).remove();var r=e.fields[n].options.indexOf(t);-1!==r&&e.fields[n].options.splice(r,1)}catch(e){}}(jQuery(this).attr("optionid"))})),jQuery("#tab-preview a").click((function(){return p("preview"),!1})),jQuery("#fb-prev-form").click((function(){return p("preview"),!1})),jQuery("#tab-settings a").click((function(){return p(),!1})),jQuery("#fb-field-my-email").blur((function(){!function(){try{var i=jQuery("#fb-field-my-email").val();e.to=i}catch(e){}}()})),jQuery("#fb-field-subject").blur((function(){!function(){try{var i=jQuery("#fb-field-subject").val();e.subject=i}catch(e){}}()})),y.on("mouseenter",".fb-form-case .fb-new-fields",(function(){f("show",jQuery(this))})),y.on("mouseleave",".fb-form-case .fb-new-fields",(function(){return f("hide"),!1})),y.on("click",".fb-edit-field",(function(){return l(jQuery(this)),!1})),y.on("click",".fb-edit-field .fb-reorder",(function(){return!1})),y.on("click","#fb-save-field",(function(){return c(),b(),!1})),jQuery("#fb-feedback").click((function(){var e=jQuery(this).attr("href");return window.parent.location=e,!1})),jQuery("#sortable").sortable({axis:"y",handle:".fb-reorder",revert:!0,start:function(){jQuery(".fb-edit-field").hide()}}),jQuery("#draggable").draggable({axis:"y",handle:".fb-reorder",connectToSortable:"#sortable",helper:"clone",revert:"invalid"})}}}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.asset.php b/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.asset.php
new file mode 100644
index 00000000..e4c55802
--- /dev/null
+++ b/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '0c1f6956c0645edfffe0066350fa70f9'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.js b/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.js
index 04bc90c6..9f9f322d 100644
--- a/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.js
+++ b/plugins/jetpack/_inc/build/contact-form/js/tinymce-plugin-form-button.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global grunionEditorView, tinymce */
-tinymce.create("tinymce.plugins.grunion_form",{init:function(n){n.addButton("grunion",{title:grunionEditorView.labels.tinymce_label,cmd:"grunion_add_form",icon:"grunion"}),n.addCommand("grunion_add_form",function(){grunionEditorView.default_form?n.execCommand("mceInsertContent",0,"[contact-form]"+grunionEditorView.default_form+"[/contact-form]"):n.execCommand("mceInsertContent",0,"[contact-form /]")})},createControl:function(){return null},getInfo:function(){return{longname:"Grunion Contact Form",author:"Automattic",version:"1"}}}),tinymce.PluginManager.add("grunion_form",tinymce.plugins.grunion_form); \ No newline at end of file
+tinymce.create("tinymce.plugins.grunion_form",{init:function(n){n.addButton("grunion",{title:grunionEditorView.labels.tinymce_label,cmd:"grunion_add_form",icon:"grunion"}),n.addCommand("grunion_add_form",(function(){grunionEditorView.default_form?n.execCommand("mceInsertContent",0,"[contact-form]"+grunionEditorView.default_form+"[/contact-form]"):n.execCommand("mceInsertContent",0,"[contact-form /]")}))},createControl:function(){return null},getInfo:function(){return{longname:"Grunion Contact Form",author:"Automattic",version:"1"}}}),tinymce.PluginManager.add("grunion_form",tinymce.plugins.grunion_form); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.asset.php b/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.asset.php
new file mode 100644
index 00000000..5c26fb5b
--- /dev/null
+++ b/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '42f2cd5dccaff654c7694b772ffde2c0'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.js b/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.js
index 2a43de75..7b417478 100644
--- a/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.js
+++ b/plugins/jetpack/_inc/build/crowdsignal-shortcode.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e,d,n){"undefined"!=typeof jQuery&&jQuery(e.body).trigger("pd-script-load")}(document); \ No newline at end of file
+!function(){var e;e=document,"undefined"!=typeof jQuery&&jQuery(e.body).trigger("pd-script-load")}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/crowdsignal-survey.min.asset.php b/plugins/jetpack/_inc/build/crowdsignal-survey.min.asset.php
new file mode 100644
index 00000000..50ad917a
--- /dev/null
+++ b/plugins/jetpack/_inc/build/crowdsignal-survey.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '7e5286ba460c4587c7cb85f390a18a92'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/crowdsignal-survey.min.js b/plugins/jetpack/_inc/build/crowdsignal-survey.min.js
index a591d499..de9f8b85 100644
--- a/plugins/jetpack/_inc/build/crowdsignal-survey.min.js
+++ b/plugins/jetpack/_inc/build/crowdsignal-survey.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
!function(e,t,d){if(!e.getElementById(d)){var n,r=e.createElement(t);r.id=d,r.src="https://polldaddy.com/survey.js",(n=e.getElementsByTagName(t)[0]).parentNode.insertBefore(r,n)}}(document,"script","pd-embed"); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.asset.php b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.asset.php
new file mode 100644
index 00000000..2c2fb988
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '874b21320dad46cf0b1a03b06972761e'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js
index 19527bfb..ca365bba 100644
--- a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js
@@ -1,4 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-// Originally based on https://raw.githubusercontent.com/xwp/wp-custom-scss-demo/master/custom-scss-demo-preview.js
-/* globals jpCustomizerCssPreview */
-!function(e,s){e.settingPreviewHandlers?e.settingPreviewHandlers.custom_css=function(){}:parent.console.warn("Missing core patch that adds support for settingPreviewHandlers"),e.selectiveRefresh.partialConstructor.custom_css=e.selectiveRefresh.Partial.extend({refresh:function(){var t,r,c=e("jetpack_custom_css[preprocessor]").get();return jpCustomizerCssPreview.preprocessors.hasOwnProperty(c)?e.selectiveRefresh.Partial.prototype.refresh.call(this):(t=new s.Deferred,r=e("custom_css["+e.settings.theme.stylesheet+"]"),_.each(this.placements(),function(e){e.container.text(r.get())}),t.resolve(),t.promise())}})}(wp.customize,jQuery); \ No newline at end of file
+!function(){var e,s;e=wp.customize,s=jQuery,e.settingPreviewHandlers?e.settingPreviewHandlers.custom_css=function(){}:parent.console.warn("Missing core patch that adds support for settingPreviewHandlers"),e.selectiveRefresh.partialConstructor.custom_css=e.selectiveRefresh.Partial.extend({refresh:function(){var t,r,c=e("jetpack_custom_css[preprocessor]").get();return jpCustomizerCssPreview.preprocessors.hasOwnProperty(c)?e.selectiveRefresh.Partial.prototype.refresh.call(this):(t=new s.Deferred,r=e("custom_css["+e.settings.theme.stylesheet+"]"),_.each(this.placements(),(function(e){e.container.text(r.get())})),t.resolve(),t.promise())}})}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.asset.php b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.asset.php
new file mode 100644
index 00000000..daffb398
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '4b484eda5061c06dcad91273f2834913'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js
index 74b6e662..0cf00305 100644
--- a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(s,e){function n(s){var n=e.control.value(s);return n?n.container:null}s(document).ready(function(){var t=n("jetpack_css_mode_control");t&&t.prepend('<span class="customize-control-title">'+window._jp_css_settings.l10n.mode+"</span>");var o=n("jetpack_mobile_css_control");o&&o.prepend('<span class="customize-control-title">'+window._jp_css_settings.l10n.mobile+"</span>");var i=n("wpcom_custom_css_content_width_control");i&&(i.append('<span class="description">'+window._jp_css_settings.l10n.contentWidth+"<span>"),i.find("input").after("<span>px</span>")),s("<div />",{id:"css-help-links",class:"css-help"}).appendTo(n("custom_css")),s("<a />",{id:"help-link",target:"_blank",rel:"noopener noreferrer",href:window._jp_css_settings.cssHelpUrl,text:window._jp_css_settings.l10n.css_help_title}).prependTo("#css-help-links"),window._jp_css_settings.areThereCssRevisions&&s("<a />",{id:"revisions-link",target:"_blank",rel:"noopener noreferrer",href:window._jp_css_settings.revisionsUrl,text:window._jp_css_settings.l10n.revisions}).prependTo("#css-help-links"),e("jetpack_custom_css[preprocessor]",function(s){s.bind(function(s){var n={default:"text/css",less:"text/x-less",sass:"text/x-scss"},t="text/css";void 0!==n[s]&&(t=n[s]),e.control("custom_css").deferred.codemirror.done(function(s){s.setOption("mode",t),"text/css"===t?s.setOption("lint",!0):s.setOption("lint",!1)})})})})}(jQuery,this.wp.customize); \ No newline at end of file
+!function(s,e){function n(s){var n=e.control.value(s);return n?n.container:null}s(document).ready((function(){var t=n("jetpack_css_mode_control");t&&t.prepend('<span class="customize-control-title">'+window._jp_css_settings.l10n.mode+"</span>");var o=n("jetpack_mobile_css_control");o&&o.prepend('<span class="customize-control-title">'+window._jp_css_settings.l10n.mobile+"</span>");var i=n("wpcom_custom_css_content_width_control");i&&(i.append('<span class="description">'+window._jp_css_settings.l10n.contentWidth+"<span>"),i.find("input").after("<span>px</span>")),s("<div />",{id:"css-help-links",class:"css-help"}).appendTo(n("custom_css")),s("<a />",{id:"help-link",target:"_blank",rel:"noopener noreferrer",href:window._jp_css_settings.cssHelpUrl,text:window._jp_css_settings.l10n.css_help_title}).prependTo("#css-help-links"),window._jp_css_settings.areThereCssRevisions&&s("<a />",{id:"revisions-link",target:"_blank",rel:"noopener noreferrer",href:window._jp_css_settings.revisionsUrl,text:window._jp_css_settings.l10n.revisions}).prependTo("#css-help-links"),e("jetpack_custom_css[preprocessor]",(function(s){s.bind((function(s){var n={default:"text/css",less:"text/x-less",sass:"text/x-scss"},t="text/css";void 0!==n[s]&&(t=n[s]),e.control("custom_css").deferred.codemirror.done((function(s){s.setOption("mode",t),"text/css"===t?s.setOption("lint",!0):s.setOption("lint",!1)}))}))}))}))}(jQuery,window.wp.customize); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.asset.php b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.asset.php
new file mode 100644
index 00000000..2022d089
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '8a8570e5695ca0187633938be109fdfb'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.js b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.js
index 870e958e..838c0368 100644
--- a/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.js
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/core-customizer-css.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t,s,i){i.controlConstructor.jetpackCss=i.Control.extend({modes:{default:"text/css",less:"text/x-less",sass:"text/x-scss"},_updating:!1,ready:function(){this.opts=window._jp_css_settings,this.$input=s("<textarea />",{name:this.setting.id,class:"for-codemirror hidden"}).val(this.setting()),this.container.append(this.$input),i(this.setting.id,_.bind(function(t){var s=new i.Element(this.$input);this.elements=[s],s.sync(t),s.set(t())},this)),this.opts.useRichEditor?this.initCodeMirror():this.$input.removeClass("hidden"),i.bind("ready",_.bind(this.addLabels,this))},initCodeMirror:function(){this.editor=window.CodeMirror.fromTextArea(this.$input.get(0),{mode:this.getMode(),lineNumbers:!0,tabSize:2,indentWithTabs:!0,lineWrapping:!0}),this.addListeners()},addListeners:function(){var t=!1;s("#accordion-section-custom_css > .accordion-section-title").click(_.bind(_.debounce(this.editor.refresh,250),this.editor)),this.editor.on("focus",function(t){t.refresh()}),this.editor.on("change",_.bind(function(s){this._updating=!0,this.$input.val(s.getValue()).trigger("change"),this._updating=!1,t||(window.ga&&window.ga("send","event","Customizer","Typed Custom CSS"),t=!0)},this)),this.editor.on("focus",function(){window.ga&&window.ga("send","event","Customizer","Focused CSS Editor")}),this.setting.bind("change",_.bind(this.externalChange,this))},getMode:function(){var t=i("jetpack_custom_css[preprocessor]")();return""!==t&&this.modes[t]||(t="default"),this.modes[t]},externalChange:function(){this._updating||this.editor.setValue(this.setting())},refresh:function(t){"accordion-section-custom_css"===t&&setTimeout(_.bind(function(){this.editor.refresh()},this),300)},addLabels:function(){this.addTitle("jetpack_css_mode_control",this.opts.l10n.mode),this.addTitle("jetpack_mobile_css_control",this.opts.l10n.mobile),this.addDesc("wpcom_custom_css_content_width_control",this.opts.l10n.contentWidth);var t=this._getControl("wpcom_custom_css_content_width_control");t&&t.find("input").after("<span>px</span>"),s("<div />",{id:"css-help-links",class:"css-help"}).appendTo(this.container),s("<a />",{id:"help-link",target:"_blank",href:this.opts.cssHelpUrl,text:this.opts.l10n.css_help_title}).prependTo("#css-help-links"),this.opts.areThereCssRevisions&&s("<a />",{id:"revisions-link",target:"_blank",href:this.opts.revisionsUrl,text:this.opts.l10n.revisions}).prependTo("#css-help-links")},addTitle:function(t,s){var i=this._getControl(t);i&&i.prepend('<span class="customize-control-title">'+s+"<span>")},addDesc:function(t,s){var i=this._getControl(t);i&&i.append('<span class="description">'+s+"<span>")},_getControl:function(t){var s=i.control.value(t);return s?s.container:null}})}(this.wp,jQuery,this.wp.customize); \ No newline at end of file
+!function(){var t,s;window.wp,t=jQuery,(s=window.wp.customize).controlConstructor.jetpackCss=s.Control.extend({modes:{default:"text/css",less:"text/x-less",sass:"text/x-scss"},_updating:!1,ready:function(){this.opts=window._jp_css_settings,this.$input=t("<textarea />",{name:this.setting.id,class:"for-codemirror hidden"}).val(this.setting()),this.container.append(this.$input),s(this.setting.id,_.bind((function(t){var i=new s.Element(this.$input);this.elements=[i],i.sync(t),i.set(t())}),this)),this.opts.useRichEditor?this.initCodeMirror():this.$input.removeClass("hidden"),s.bind("ready",_.bind(this.addLabels,this))},initCodeMirror:function(){this.editor=window.CodeMirror.fromTextArea(this.$input.get(0),{mode:this.getMode(),lineNumbers:!0,tabSize:2,indentWithTabs:!0,lineWrapping:!0}),this.addListeners()},addListeners:function(){var s=!1;t("#accordion-section-custom_css > .accordion-section-title").click(_.bind(_.debounce(this.editor.refresh,250),this.editor)),this.editor.on("focus",(function(t){t.refresh()})),this.editor.on("change",_.bind((function(t){this._updating=!0,this.$input.val(t.getValue()).trigger("change"),this._updating=!1,s||(window.ga&&window.ga("send","event","Customizer","Typed Custom CSS"),s=!0)}),this)),this.editor.on("focus",(function(){window.ga&&window.ga("send","event","Customizer","Focused CSS Editor")})),this.setting.bind("change",_.bind(this.externalChange,this))},getMode:function(){var t=s("jetpack_custom_css[preprocessor]")();return""!==t&&this.modes[t]||(t="default"),this.modes[t]},externalChange:function(){this._updating||this.editor.setValue(this.setting())},refresh:function(t){"accordion-section-custom_css"===t&&setTimeout(_.bind((function(){this.editor.refresh()}),this),300)},addLabels:function(){this.addTitle("jetpack_css_mode_control",this.opts.l10n.mode),this.addTitle("jetpack_mobile_css_control",this.opts.l10n.mobile),this.addDesc("wpcom_custom_css_content_width_control",this.opts.l10n.contentWidth);var s=this._getControl("wpcom_custom_css_content_width_control");s&&s.find("input").after("<span>px</span>"),t("<div />",{id:"css-help-links",class:"css-help"}).appendTo(this.container),t("<a />",{id:"help-link",target:"_blank",href:this.opts.cssHelpUrl,text:this.opts.l10n.css_help_title}).prependTo("#css-help-links"),this.opts.areThereCssRevisions&&t("<a />",{id:"revisions-link",target:"_blank",href:this.opts.revisionsUrl,text:this.opts.l10n.revisions}).prependTo("#css-help-links")},addTitle:function(t,s){var i=this._getControl(t);i&&i.prepend('<span class="customize-control-title">'+s+"<span>")},addDesc:function(t,s){var i=this._getControl(t);i&&i.append('<span class="description">'+s+"<span>")},_getControl:function(t){var i=s.control.value(t);return i?i.container:null}})}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.asset.php b/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.asset.php
new file mode 100644
index 00000000..41bbacd1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '0c0e12187237e9a94805654278f41eb4'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.js b/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.js
index ad214db9..9ec9bb69 100644
--- a/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.js
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/css-editor.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global postboxes, addLoadEvent */
-!function(e){var s,o,c,t;c=function(){s.height(o.height()-s.offset().top-250)},t=function(){s=e("#safecss"),o=e(window),postboxes.add_postbox_toggles("editcss"),c(),e("#safecssform").on("click","#preview",function(e){e.preventDefault(),document.forms.safecssform.target="csspreview",document.forms.safecssform.action.value="preview",document.forms.safecssform.submit(),document.forms.safecssform.target="",document.forms.safecssform.action.value="save"})},window.onresize=c,addLoadEvent(t)}(jQuery),jQuery(function(e){e(".edit-preprocessor").bind("click",function(s){s.preventDefault(),e("#preprocessor-select").slideDown(),e(this).hide()}),e(".cancel-preprocessor").bind("click",function(s){s.preventDefault(),e("#preprocessor-select").slideUp(function(){e(".edit-preprocessor").show(),e("#preprocessor_choices").val(e("#custom_css_preprocessor").val())})}),e(".save-preprocessor").bind("click",function(s){s.preventDefault(),e("#preprocessor-select").slideUp(),e("#preprocessor-display").text(e("#preprocessor_choices option:selected").text()),e("#custom_css_preprocessor").val(e("#preprocessor_choices").val()).change(),e(".edit-preprocessor").show()}),e(".edit-css-mode").bind("click",function(s){s.preventDefault(),e("#css-mode-select").slideDown(),e(this).hide()}),e(".cancel-css-mode").bind("click",function(s){s.preventDefault(),e("#css-mode-select").slideUp(function(){e(".edit-css-mode").show(),e("input[name=add_to_existing_display][value="+e("#add_to_existing").val()+"]").attr("checked",!0)})}),e(".save-css-mode").bind("click",function(s){s.preventDefault(),e("#css-mode-select").slideUp(),e("#css-mode-display").text("true"===e("input[name=add_to_existing_display]:checked").val()?"Add-on":"Replacement"),e("#add_to_existing").val(e("input[name=add_to_existing_display]:checked").val()),e(".edit-css-mode").show()})}); \ No newline at end of file
+!function(){var e,s,o,c,t;e=jQuery,c=function(){s.height(o.height()-s.offset().top-250)},t=function(){s=e("#safecss"),o=e(window),postboxes.add_postbox_toggles("editcss"),c(),e("#safecssform").on("click","#preview",(function(e){e.preventDefault(),document.forms.safecssform.target="csspreview",document.forms.safecssform.action.value="preview",document.forms.safecssform.submit(),document.forms.safecssform.target="",document.forms.safecssform.action.value="save"}))},window.onresize=c,addLoadEvent(t),jQuery((function(e){e(".edit-preprocessor").bind("click",(function(s){s.preventDefault(),e("#preprocessor-select").slideDown(),e(this).hide()})),e(".cancel-preprocessor").bind("click",(function(s){s.preventDefault(),e("#preprocessor-select").slideUp((function(){e(".edit-preprocessor").show(),e("#preprocessor_choices").val(e("#custom_css_preprocessor").val())}))})),e(".save-preprocessor").bind("click",(function(s){s.preventDefault(),e("#preprocessor-select").slideUp(),e("#preprocessor-display").text(e("#preprocessor_choices option:selected").text()),e("#custom_css_preprocessor").val(e("#preprocessor_choices").val()).change(),e(".edit-preprocessor").show()})),e(".edit-css-mode").bind("click",(function(s){s.preventDefault(),e("#css-mode-select").slideDown(),e(this).hide()})),e(".cancel-css-mode").bind("click",(function(s){s.preventDefault(),e("#css-mode-select").slideUp((function(){e(".edit-css-mode").show(),e("input[name=add_to_existing_display][value="+e("#add_to_existing").val()+"]").attr("checked",!0)}))})),e(".save-css-mode").bind("click",(function(s){s.preventDefault(),e("#css-mode-select").slideUp(),e("#css-mode-display").text("true"===e("input[name=add_to_existing_display]:checked").val()?"Add-on":"Replacement"),e("#add_to_existing").val(e("input[name=add_to_existing_display]:checked").val()),e(".edit-css-mode").show()}))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.asset.php b/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.asset.php
new file mode 100644
index 00000000..9e02163e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'a0fce8e24703a4859eb74563e0ac8c5a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.js b/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.js
index 6bce678a..7a836fd0 100644
--- a/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.js
+++ b/plugins/jetpack/_inc/build/custom-css/custom-css/js/use-codemirror.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t){var e={modes:{default:"text/css",less:"text/x-less",sass:"text/x-scss"},init:function(){this.$textarea=t("#safecss"),this.editor=window.CodeMirror.fromTextArea(this.$textarea.get(0),{mode:this.getMode(),lineNumbers:!0,tabSize:2,indentWithTabs:!0,lineWrapping:!0}),this.setEditorHeight()},addListeners:function(){t(window).on("resize",_.bind(_.debounce(this.setEditorHeight,100),this)),this.editor.on("change",_.bind(function(t){this.$textarea.val(t.getValue())},this)),t("#preprocessor_choices").change(_.bind(function(){this.editor.setOption("mode",this.getMode())},this))},setEditorHeight:function(){var e=t("html").height()-t(this.editor.getWrapperElement()).offset().top;this.editor.setSize(null,e)},getMode:function(){var e=t("#preprocessor_choices").val();return""!==e&&this.modes[e]||(e="default"),this.modes[e]}};t(document).ready(_.bind(e.init,e))}(jQuery); \ No newline at end of file
+!function(){var t,e;t=jQuery,e={modes:{default:"text/css",less:"text/x-less",sass:"text/x-scss"},init:function(){this.$textarea=t("#safecss"),this.editor=window.CodeMirror.fromTextArea(this.$textarea.get(0),{mode:this.getMode(),lineNumbers:!0,tabSize:2,indentWithTabs:!0,lineWrapping:!0}),this.setEditorHeight()},addListeners:function(){t(window).on("resize",_.bind(_.debounce(this.setEditorHeight,100),this)),this.editor.on("change",_.bind((function(t){this.$textarea.val(t.getValue())}),this)),t("#preprocessor_choices").change(_.bind((function(){this.editor.setOption("mode",this.getMode())}),this))},setEditorHeight:function(){var e=t("html").height()-t(this.editor.getWrapperElement()).offset().top;this.editor.setSize(null,e)},getMode:function(){var e=t("#preprocessor_choices").val();return""!==e&&this.modes[e]||(e="default"),this.modes[e]}},t(document).ready(_.bind(e.init,e))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.asset.php b/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.asset.php
new file mode 100644
index 00000000..b5e5aa4c
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '8cd712b6f7fe9a17d7b40a4a89c3299a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.js b/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.js
index d254be55..fd1774ff 100644
--- a/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.js
+++ b/plugins/jetpack/_inc/build/custom-post-types/comics/comics.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global Jetpack_Comics_Options */
-jQuery(function(e){var o={init:function(){e(document).on("dragover.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragOver),e(document).on("dragleave.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragLeave),e(document).on("drop.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDrop),e("body").append(e('<div id="jetpack-comic-drop-zone"><p class="dragging" /><p class="uploading" /></div>')),e("#jetpack-comic-drop-zone").find(".dragging").text(Jetpack_Comics_Options.labels.dragging).end().find(".uploading").text(Jetpack_Comics_Options.labels.uploading).prepend(e('<span class="spinner"/>')),"FileReader"in window&&"File"in window||(e("#jetpack-comic-drop-zone .dragging").text(Jetpack_Comics_Options.labels.unsupported),e(document).off("drop.jetpack-comics").on("drop.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragLeave))},filterImageFiles:function(e){for(var o=[],n=0,a=e.length;n<a;n++)e[n].type.match(/^image\//i)&&o.push(e[n]);return o},dragTimeout:null,onDragOver:function(n){n.preventDefault(),clearTimeout(o.dragTimeout),e("body").addClass("dragging")},onDragLeave:function(){clearTimeout(o.dragTimeout),o.dragTimeout=setTimeout(function(){e("body").removeClass("dragging")},100)},onDrop:function(n){n.preventDefault(),n.stopPropagation(),n.originalEvent.stopPropagation(),n.originalEvent.preventDefault();var a=o.filterImageFiles(n.originalEvent.dataTransfer.files);if(e("body").removeClass("dragging"),0!==a.length){e("body").addClass("uploading");for(var i=new FormData,t=0,r=a.length;t<r;t++)i.append("image_"+t,a[t]);e("#jetpack-comic-drop-zone .uploading .spinner").spin(),e.ajax({url:Jetpack_Comics_Options.writeURL+"&nonce="+Jetpack_Comics_Options.nonce,data:i,processData:!1,contentType:!1,type:"POST",dataType:"json",xhrFields:{withCredentials:!0}}).done(function(o){e("#jetpack-comic-drop-zone .uploading").text(Jetpack_Comics_Options.labels.processing),"url"in o?document.location.href=o.url:"error"in o&&(alert(o.error),e("body").removeClass("uploading"))}).fail(function(){alert(Jetpack_Comics_Options.labels.error)})}else alert(Jetpack_Comics_Options.labels.invalidUpload)}};o.init()}); \ No newline at end of file
+jQuery((function(e){var o={init:function(){e(document).on("dragover.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragOver),e(document).on("dragleave.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragLeave),e(document).on("drop.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDrop),e("body").append(e('<div id="jetpack-comic-drop-zone"><p class="dragging" /><p class="uploading" /></div>')),e("#jetpack-comic-drop-zone").find(".dragging").text(Jetpack_Comics_Options.labels.dragging).end().find(".uploading").text(Jetpack_Comics_Options.labels.uploading).prepend(e('<span class="spinner"/>')),"FileReader"in window&&"File"in window||(e("#jetpack-comic-drop-zone .dragging").text(Jetpack_Comics_Options.labels.unsupported),e(document).off("drop.jetpack-comics").on("drop.jetpack-comics","body, #jetpack-comic-drop-zone",this.onDragLeave))},filterImageFiles:function(e){for(var o=[],a=0,n=e.length;a<n;a++)e[a].type.match(/^image\//i)&&o.push(e[a]);return o},dragTimeout:null,onDragOver:function(a){a.preventDefault(),clearTimeout(o.dragTimeout),e("body").addClass("dragging")},onDragLeave:function(){clearTimeout(o.dragTimeout),o.dragTimeout=setTimeout((function(){e("body").removeClass("dragging")}),100)},onDrop:function(a){a.preventDefault(),a.stopPropagation(),a.originalEvent.stopPropagation(),a.originalEvent.preventDefault();var n=o.filterImageFiles(a.originalEvent.dataTransfer.files);if(e("body").removeClass("dragging"),0!==n.length){e("body").addClass("uploading");for(var i=new FormData,t=0,r=n.length;t<r;t++)i.append("image_"+t,n[t]);e.ajax({url:Jetpack_Comics_Options.writeURL+"&nonce="+Jetpack_Comics_Options.nonce,data:i,processData:!1,contentType:!1,type:"POST",dataType:"json",xhrFields:{withCredentials:!0}}).done((function(o){e("#jetpack-comic-drop-zone .uploading").text(Jetpack_Comics_Options.labels.processing),"url"in o?document.location.href=o.url:"error"in o&&(alert(o.error),e("body").removeClass("uploading"))})).fail((function(){alert(Jetpack_Comics_Options.labels.error)}))}else alert(Jetpack_Comics_Options.labels.invalidUpload)}};o.init()})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.asset.php b/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.asset.php
new file mode 100644
index 00000000..b12e9a28
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '55129492b2bbbc4e61d5526cb0c62524'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.js b/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.js
index 99fcc492..89432cf4 100644
--- a/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.js
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/many-items.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t){var n,a,e;e={init:function(){var i,o,r=this;return this.on("keypress.manyItemsTable",function(t){13===t.which&&(t.preventDefault(),"function"==typeof FormData&&e.submitRow.apply(r),e.addRow.apply(r))}).on("focus.manyItemsTable",":input",function(){r.data("currentRow",t(this).parents("tr:first"))}),o=(i=this.find("tbody:last")).find("tr:first").clone(),this.data("form",this.parents("form:first")),this.data("tbody",i),this.data("row",o),this.data("currentRow",o),n=t("#nova-menu-tax"),a=t("#_wpnonce"),this},destroy:function(){return this.off(".manyItemsTable"),this},submitRow:function(){var e,i,o,r;return i=(e=this.data("currentRow")).find(":input"),o=this.data("form").find(":input").not(i).attr("disabled",!0).end(),(r=new FormData(this.data("form").get(0))).append("ajax","1"),r.append("nova_menu_tax",n.val()),r.append("_wpnonce",a.val()),o.attr("disabled",!1),t.ajax({url:"",type:"POST",data:r,processData:!1,contentType:!1}).complete(function(t){e.html(t.responseText)}),i.attr("disabled",!0),this},addRow:function(){var t=this.data("row").clone();return t.appendTo(this.data("tbody")),t.find(":input:first").focus(),this}},t.fn.manyItemsTable=function(n){return e[n]?e[n].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof n&&n?(t.error("Method "+n+" does not exist on jQuery.manyItemsTable"),this):e.init.apply(this,arguments)},t.fn.clickAddRow=function(){var n=this.find("tbody:last"),a=n.find("tr:first").clone();t(a).find("input, textarea").val(""),t(a).appendTo(n)}}(jQuery),jQuery(".many-items-table").one("focus",":input",function(t){jQuery(t.delegateTarget).manyItemsTable()}),jQuery(".many-items-table").on("click","a.nova-new-row",function(t){jQuery(t.delegateTarget).clickAddRow()}); \ No newline at end of file
+!function(){var t,n,a,e;t=jQuery,e={init:function(){var i,o,r=this;return this.on("keypress.manyItemsTable",(function(t){13===t.which&&(t.preventDefault(),"function"==typeof FormData&&e.submitRow.apply(r),e.addRow.apply(r))})).on("focus.manyItemsTable",":input",(function(){r.data("currentRow",t(this).parents("tr:first"))})),o=(i=this.find("tbody:last")).find("tr:first").clone(),this.data("form",this.parents("form:first")),this.data("tbody",i),this.data("row",o),this.data("currentRow",o),n=t("#nova-menu-tax"),a=t("#_wpnonce"),this},destroy:function(){return this.off(".manyItemsTable"),this},submitRow:function(){var e,i,o,r;return i=(e=this.data("currentRow")).find(":input"),o=this.data("form").find(":input").not(i).attr("disabled",!0).end(),(r=new FormData(this.data("form").get(0))).append("ajax","1"),r.append("nova_menu_tax",n.val()),r.append("_wpnonce",a.val()),o.attr("disabled",!1),t.ajax({url:"",type:"POST",data:r,processData:!1,contentType:!1}).complete((function(t){e.html(t.responseText)})),i.attr("disabled",!0),this},addRow:function(){var t=this.data("row").clone();return t.appendTo(this.data("tbody")),t.find(":input:first").focus(),this}},t.fn.manyItemsTable=function(n){return e[n]?e[n].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof n&&n?(t.error("Method "+n+" does not exist on jQuery.manyItemsTable"),this):e.init.apply(this,arguments)},t.fn.clickAddRow=function(){var n=this.find("tbody:last"),a=n.find("tr:first").clone();t(a).find("input, textarea").val(""),t(a).appendTo(n)},jQuery(".many-items-table").one("focus",":input",(function(t){jQuery(t.delegateTarget).manyItemsTable()})),jQuery(".many-items-table").on("click","a.nova-new-row",(function(t){jQuery(t.delegateTarget).clickAddRow()}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.asset.php b/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.asset.php
new file mode 100644
index 00000000..cba55c27
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'e5de6666e4d5e9cfb33bb94f6a6b5f60'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.js b/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.js
index 640c73c0..aeeb6f4f 100644
--- a/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.js
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/menu-checkboxes.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(c){var n={inputs:null,popInputs:null,initialize:function(){n.popInputs=c("#nova_menuchecklist-pop").find(":checkbox"),n.inputs=c("#nova_menuchecklist").find(":checkbox").change(n.checkOne).change(n.syncPop),n.isChecked()||n.checkFirst(),n.syncPop()},syncPop:function(){n.popInputs.each(function(){var n=c(this);n.prop("checked",c("#in-nova_menu-"+n.val()).is(":checked"))})},isChecked:function(){return n.inputs.is(":checked")},checkFirst:function(){n.inputs.first().prop("checked",!0)},checkOne:function(){return c(this).is(":checked")?n.inputs.not(this).prop("checked",!1):c(this).closest("#nova_menuchecklist").find(":checked").length>0?c(this).prop("checked",!1):n.checkFirst()}};c(n.initialize)}(jQuery); \ No newline at end of file
+!function(){var c,n;c=jQuery,n={inputs:null,popInputs:null,initialize:function(){n.popInputs=c("#nova_menuchecklist-pop").find(":checkbox"),n.inputs=c("#nova_menuchecklist").find(":checkbox").change(n.checkOne).change(n.syncPop),n.isChecked()||n.checkFirst(),n.syncPop()},syncPop:function(){n.popInputs.each((function(){var n=c(this);n.prop("checked",c("#in-nova_menu-"+n.val()).is(":checked"))}))},isChecked:function(){return n.inputs.is(":checked")},checkFirst:function(){n.inputs.first().prop("checked",!0)},checkOne:function(){return c(this).is(":checked")?n.inputs.not(this).prop("checked",!1):c(this).closest("#nova_menuchecklist").find(":checked").length>0?c(this).prop("checked",!1):n.checkFirst()}},c(n.initialize)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.asset.php b/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.asset.php
new file mode 100644
index 00000000..1a1d57aa
--- /dev/null
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'cc88ce45366e1e9157427a3bc6087f01'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.js b/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.js
index 23a8173d..2715ad10 100644
--- a/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.js
+++ b/plugins/jetpack/_inc/build/custom-post-types/js/nova-drag-drop.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global _novaDragDrop */
-!function(e){var n;e(document).ready(function(){(n=e("#the-list")).sortable({cancel:".no-items",stop:function(t,r){if(r.item.is(":first-child"))return n.sortable("cancel");n.find(".menu-label-row").each(function(){var n=e(this).data("term_id");e(this).nextUntil(".menu-label-row").each(function(t){var r=e(this);r.find(".menu-order-value").val(t),r.find(".nova-menu-term").val(n)})})}}),e("#posts-filter").append('<input type="hidden" name="'+_novaDragDrop.nonceName+'" value="'+_novaDragDrop.nonce+'" />'),e(".tablenav").prepend('<input type="submit" class="button-primary button-reorder alignright" value="'+_novaDragDrop.reorder+'" name="'+_novaDragDrop.reorderName+'" />'),e("#posts-filter").attr("method","post")})}(jQuery); \ No newline at end of file
+!function(){var e,n;(e=jQuery)(document).ready((function(){(n=e("#the-list")).sortable({cancel:".no-items, .inline-edit-row",stop:function(t,r){if(r.item.is(":first-child"))return n.sortable("cancel");n.find(".menu-label-row").each((function(){var n=e(this).data("term_id");e(this).nextUntil(".menu-label-row").each((function(t){var r=e(this);r.find(".menu-order-value").val(t),r.find(".nova-menu-term").val(n)}))}))}}),e("#posts-filter").append('<input type="hidden" name="'+_novaDragDrop.nonceName+'" value="'+_novaDragDrop.nonce+'" />'),e(".tablenav").prepend('<input type="submit" class="button-primary button-reorder alignright" value="'+_novaDragDrop.reorder+'" name="'+_novaDragDrop.reorderName+'" />'),e("#posts-filter").attr("method","post")}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/facebook-embed.min.asset.php b/plugins/jetpack/_inc/build/facebook-embed.min.asset.php
new file mode 100644
index 00000000..f735f6a0
--- /dev/null
+++ b/plugins/jetpack/_inc/build/facebook-embed.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '396a3f4c8835cd4c5480139ec4b3342f'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/facebook-embed.min.js b/plugins/jetpack/_inc/build/facebook-embed.min.js
index 181fa615..1c287b2d 100644
--- a/plugins/jetpack/_inc/build/facebook-embed.min.js
+++ b/plugins/jetpack/_inc/build/facebook-embed.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global FB, jpfbembed */
-!function(e){var n=function(){var e,n;"undefined"!=typeof FB&&FB.XFBML?FB.XFBML.parse():((e=document.createElement("div")).id="fb-root",document.getElementsByTagName("body")[0].appendChild(e),n="//connect.facebook.net/"+jpfbembed.locale+"/sdk.js#xfbml=1",jpfbembed.appid&&(n+="&appId="+jpfbembed.appid),n+="&version=v2.3",jQuery.getScript(n))};e.fbAsyncInit=function(){FB.init({appId:jpfbembed.appid,version:"v2.3"}),FB.XFBML.parse()},"undefined"!=typeof infiniteScroll&&jQuery(document.body).on("post-load",n),n()}(this); \ No newline at end of file
+!function(e){var n=function(){var e,n,t,d;"undefined"!=typeof FB&&FB.XFBML?FB.XFBML.parse():((e=document.createElement("div")).id="fb-root",document.getElementsByTagName("body")[0].appendChild(e),n="//connect.facebook.net/"+jpfbembed.locale+"/sdk.js#xfbml=1",jpfbembed.appid&&(n+="&appId="+jpfbembed.appid),n+="&version=v2.3",(t=document.createElement("script")).setAttribute("src",n),(d=document.querySelector("script")).parentNode.insertBefore(t,d))};e.fbAsyncInit=function(){FB.init({appId:jpfbembed.appid,version:"v2.3"}),FB.XFBML.parse()},"undefined"!=typeof infiniteScroll&&document.body.addEventListener("post-load",n),n()}(window); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/gallery-settings.min.asset.php b/plugins/jetpack/_inc/build/gallery-settings.min.asset.php
new file mode 100644
index 00000000..e53608b8
--- /dev/null
+++ b/plugins/jetpack/_inc/build/gallery-settings.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '764afdfb08801fecc905b1a067ffc327'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/gallery-settings.min.js b/plugins/jetpack/_inc/build/gallery-settings.min.js
index 4955d7b6..2d097f36 100644
--- a/plugins/jetpack/_inc/build/gallery-settings.min.js
+++ b/plugins/jetpack/_inc/build/gallery-settings.min.js
@@ -1,5 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/**
- * Jetpack Gallery Settings
- */
-!function(e){var t=wp.media;t.view.Settings.Gallery=t.view.Settings.Gallery.extend({render:function(){var a=this.$el;return t.view.Settings.prototype.render.apply(this,arguments),a.append(t.template("jetpack-gallery-settings")),t.gallery.defaults.type="default",this.update.apply(this,["type"]),a.find("select[name=type]").on("change",function(){var t=a.find("select[name=columns]").closest("label.setting");"default"===e(this).val()||"thumbnails"===e(this).val()?t.show():t.hide()}).change(),this}})}(jQuery); \ No newline at end of file
+!function(){var e,t;e=jQuery,(t=wp.media).view.Settings.Gallery=t.view.Settings.Gallery.extend({render:function(){var a=this.$el;return t.view.Settings.prototype.render.apply(this,arguments),a.append(t.template("jetpack-gallery-settings")),t.gallery.defaults.type="default",this.update.apply(this,["type"]),a.find("select[name=type]").on("change",(function(){var t=a.find("select[name=columns]").closest("label.setting");"default"===e(this).val()||"thumbnails"===e(this).val()?t.show():t.hide()})).change(),this}})}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/images/boost-8ea10be101c586380d89.svg b/plugins/jetpack/_inc/build/images/boost-8ea10be101c586380d89.svg
new file mode 100644
index 00000000..ceb5b540
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/boost-8ea10be101c586380d89.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M12 6.5L17 12L12 17.5M6 6.5L11 12L6 17.5" stroke="white" stroke-width="1.5"/>
+</svg>
diff --git a/plugins/jetpack/_inc/build/images/cloud-d0f9b0f863bc1adcc03e.svg b/plugins/jetpack/_inc/build/images/cloud-d0f9b0f863bc1adcc03e.svg
new file mode 100644
index 00000000..48f20d48
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/cloud-d0f9b0f863bc1adcc03e.svg
@@ -0,0 +1,8 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0_1864_8087" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="5" width="16" height="12">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.3331 10.1121C17.3332 10.097 17.3333 10.0818 17.3333 10.0665C17.3333 7.63645 15.1843 5.6665 12.5333 5.6665C10.2955 5.6665 8.41542 7.07023 7.88371 8.96951C7.83383 8.96748 7.7837 8.96645 7.73333 8.96645C5.67147 8.96645 4 10.6902 4 12.8165C4 14.9428 5.67147 16.6665 7.73333 16.6665L7.75555 16.6664H16.7819C16.7878 16.6665 16.7937 16.6665 16.7996 16.6665C18.5669 16.6665 19.9996 15.189 19.9996 13.3665C19.9996 11.7314 18.8465 10.374 17.3331 10.1121Z" fill="white"/>
+</mask>
+<g mask="url(#mask0_1864_8087)">
+<path d="M17.3331 10.1121L15.8332 10.0955L15.8191 11.3724L17.0773 11.5902L17.3331 10.1121ZM7.88371 8.96951L7.82248 10.4683L9.00824 10.5168L9.32817 9.37389L7.88371 8.96951ZM7.73333 16.6665V18.1665H7.73784L7.73333 16.6665ZM7.75555 16.6664V15.1664H7.75105L7.75555 16.6664ZM16.7819 16.6664L16.7904 15.1664H16.7819V16.6664ZM18.833 10.1287C18.8332 10.1081 18.8333 10.0873 18.8333 10.0665H15.8333C15.8333 10.0762 15.8333 10.0859 15.8332 10.0955L18.833 10.1287ZM18.8333 10.0665C18.8333 6.68783 15.8872 4.1665 12.5333 4.1665V7.1665C14.4814 7.1665 15.8333 8.58506 15.8333 10.0665H18.8333ZM12.5333 4.1665C9.68497 4.1665 7.16851 5.96015 6.43924 8.56513L9.32817 9.37389C9.66232 8.18032 10.9061 7.1665 12.5333 7.1665V4.1665ZM7.94494 7.47076C7.87466 7.46789 7.80412 7.46645 7.73333 7.46645V10.4665C7.76328 10.4665 7.793 10.4671 7.82248 10.4683L7.94494 7.47076ZM7.73333 7.46645C4.79987 7.46645 2.5 9.90557 2.5 12.8165H5.5C5.5 11.4748 6.54307 10.4665 7.73333 10.4665V7.46645ZM2.5 12.8165C2.5 15.7274 4.79987 18.1665 7.73333 18.1665V15.1665C6.54307 15.1665 5.5 14.1582 5.5 12.8165H2.5ZM7.73784 18.1665L7.76006 18.1664L7.75105 15.1664L7.72883 15.1665L7.73784 18.1665ZM7.75555 18.1664H16.7819V15.1664H7.75555V18.1664ZM16.7996 15.1665C16.7964 15.1665 16.7934 15.1664 16.7904 15.1664L16.7734 18.1664C16.7822 18.1665 16.791 18.1665 16.7996 18.1665V15.1665ZM18.4996 13.3665C18.4996 14.4044 17.6953 15.1665 16.7996 15.1665V18.1665C19.4385 18.1665 21.4996 15.9736 21.4996 13.3665H18.4996ZM17.0773 11.5902C17.8512 11.7241 18.4996 12.4402 18.4996 13.3665H21.4996C21.4996 11.0226 19.8418 9.02394 17.5889 8.63406L17.0773 11.5902Z" fill="black"/>
+</g>
+</svg>
diff --git a/plugins/jetpack/_inc/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg b/plugins/jetpack/_inc/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
new file mode 100644
index 00000000..13f5651c
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg b/plugins/jetpack/_inc/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
new file mode 100644
index 00000000..a191ec9e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
Binary files differ
diff --git a/plugins/jetpack/_inc/build/images/remove-bug-aa23c420a6e6394d5787.svg b/plugins/jetpack/_inc/build/images/remove-bug-aa23c420a6e6394d5787.svg
new file mode 100644
index 00000000..fcd718bb
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/remove-bug-aa23c420a6e6394d5787.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.45474 21.2068L16.4547 3.70677L15.5453 3.29102L14.2837 6.05069C13.5991 5.6986 12.8228 5.49987 12 5.49987C10.9385 5.49987 9.95431 5.83064 9.1448 6.39473L7.18994 4.43987L6.12928 5.50053L8.05556 7.42681C7.49044 8.15115 7.12047 9.03518 7.02469 9.99987H5V11.4999H7V12.9999H5V14.4999H7.10002C7.35089 15.7358 8.0576 16.8061 9.03703 17.5278L7.54526 20.791L8.45474 21.2068ZM9.68024 16.1207C8.95633 15.4795 8.5 14.543 8.5 13.4999V10.4999C8.5 8.56687 10.067 6.99987 12 6.99987C12.6003 6.99987 13.1653 7.15099 13.659 7.41725L9.68024 16.1207ZM15.3555 9.50142L16.1645 7.73179C16.6053 8.39371 16.8926 9.16671 16.9753 9.99987H19V11.4999H17V12.9999H19V14.4999H16.9C16.4367 16.7821 14.419 18.4999 12 18.4999C11.7508 18.4999 11.5058 18.4816 11.2664 18.4464L11.928 16.9991C11.9519 16.9996 11.9759 16.9999 12 16.9999C13.933 16.9999 15.5 15.4329 15.5 13.4999V10.4999C15.5 10.153 15.4495 9.81782 15.3555 9.50142Z" fill="black"/>
+</svg>
diff --git a/plugins/jetpack/_inc/build/images/shield-bb27f10b1ca957261b8d.svg b/plugins/jetpack/_inc/build/images/shield-bb27f10b1ca957261b8d.svg
new file mode 100644
index 00000000..49c7b62c
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/shield-bb27f10b1ca957261b8d.svg
@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" 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" fill="black"/>
+</svg>
diff --git a/plugins/jetpack/_inc/build/images/shield-with-check-b59b7e859cf937a15a0e.svg b/plugins/jetpack/_inc/build/images/shield-with-check-b59b7e859cf937a15a0e.svg
new file mode 100644
index 00000000..464c8d13
--- /dev/null
+++ b/plugins/jetpack/_inc/build/images/shield-with-check-b59b7e859cf937a15a0e.svg
@@ -0,0 +1 @@
+<svg width="97" height="97" fill="none" xmlns="http://www.w3.org/2000/svg"><circle cx="48.5" cy="48.5" r="48.5" fill="#F0F2EB"/><path d="m49 21-22.46 9.98v14.97c0 13.85 9.59 26.8 22.46 29.94 12.87-3.14 22.45-16.1 22.45-29.94V30.98L49 21Z" fill="#069E08"/><path d="m46.73 55.76-8.88-8.52 2.24-2.12 6.66 6.38 11.18-10.6 2.22 2.12-13.42 12.74Z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.asset.php b/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.asset.php
new file mode 100644
index 00000000..78f312f6
--- /dev/null
+++ b/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '5af10c37c496277b339af1f1457f39cf'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.js b/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.js
new file mode 100644
index 00000000..72b3d389
--- /dev/null
+++ b/plugins/jetpack/_inc/build/infinite-scroll/infinity-customizer.min.js
@@ -0,0 +1 @@
+!function(){var e;(e=jQuery)(document).ready((function(){"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&(wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(t){var n;"string"==typeof t.addedContent?n=t.addedContent:t.container&&(n=e(t.container).html()),n&&e(document.body).trigger("post-load",{html:n})})),"undefined"==typeof MutationObserver&&e(document.body).on("post-load",(function(t,n){var i=null;n.html&&-1!==n.html.indexOf("data-customize-partial")&&(window.infiniteScroll.settings.id&&(i=e("#"+window.infiniteScroll.settings.id)),wp.customize.selectiveRefresh.addPartials(i))})))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.asset.php b/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.asset.php
new file mode 100644
index 00000000..76c63ad7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '7af9bd7d9866b7f7620a1a8aa96a9ce7'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.js b/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.js
index acc12100..e33c7c49 100644
--- a/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.js
+++ b/plugins/jetpack/_inc/build/infinite-scroll/infinity.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* globals infiniteScroll, _wpmejsSettings, ga, _gaq, WPCOM_sharing_counts */
-!function($){var Scroller,ajaxurl,stats,type,text,totop,isIE=-1!=navigator.userAgent.search("MSIE");if(isIE){var IEVersion=navigator.userAgent.match(/MSIE\s?(\d+)\.?\d*;/);IEVersion=parseInt(IEVersion[1])}function fullscreenState(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?1:0}"https:"==document.location.protocol&&(infiniteScroll.settings.ajaxurl=infiniteScroll.settings.ajaxurl.replace("http://","https://")),Scroller=function(e){var t=this;this.id=e.id,this.body=$(document.body),this.window=$(window),this.element=$("#"+e.id),this.wrapperClass=e.wrapper_class,this.ready=!0,this.disabled=!1,this.page=1,this.offset=e.offset,this.currentday=e.currentday,this.order=e.order,this.throttle=!1,this.handle='<div id="infinite-handle"><span><button>'+text.replace("\\","")+"</button></span></div>",this.click_handle=e.click_handle,this.google_analytics=e.google_analytics,this.history=e.history,this.origURL=window.location.href,this.pageCache={},this.footer=$("#infinite-footer"),this.footer.wrap=e.footer,this.wpMediaelement=null,"scroll"==type?(this.window.bind("scroll.infinity",function(){this.throttle=!0}),t.gotop(),setInterval(function(){this.throttle&&(this.throttle=!1,t.thefooter(),t.refresh(),t.determineURL())},250),t.ensureFilledViewport(),this.body.bind("post-load",{self:t},t.checkViewportOnLoad)):"click"==type&&(this.click_handle&&this.element.append(this.handle),this.body.delegate("#infinite-handle","click.infinity",function(){t.click_handle&&$("#infinite-handle").remove(),t.refresh()})),this.body.bind("post-load",{self:t},t.initializeMejs)},Scroller.prototype.check=function(){var e=this.element.offset();return"object"==typeof e&&this.window.scrollTop()+this.window.height()>e.top+this.element.outerHeight(!1)-2*this.window.height()},Scroller.prototype.render=function(e){this.body.addClass("infinity-success"),this.element.append(e.html),this.body.trigger("post-load",e),this.ready=!0},Scroller.prototype.query=function(){return{page:this.page+this.offset,currentday:this.currentday,order:this.order,scripts:window.infiniteScroll.settings.scripts,styles:window.infiniteScroll.settings.styles,query_args:window.infiniteScroll.settings.query_args,query_before:window.infiniteScroll.settings.query_before,last_post_date:window.infiniteScroll.settings.last_post_date}},Scroller.prototype.gotop=function(){var e=$("#infinity-blog-title");e.attr("title",totop),e.bind("click",function(e){$("html, body").animate({scrollTop:0},"fast"),e.preventDefault()})},Scroller.prototype.thefooter=function(){var e;"string"===$.type(this.footer.wrap)&&(e=$("body #"+this.footer.wrap).outerWidth(!1))>479&&this.footer.find(".container").css("width",e),this.window.scrollTop()>=350?this.footer.animate({bottom:0},"fast"):this.window.scrollTop()<350&&this.footer.animate({bottom:"-50px"},"fast")},Scroller.prototype.refresh=function(){var self=this,query,jqxhr,load,loader,color,customized;if(!this.disabled&&this.ready&&this.check()){if(this.ready=!1,this.click_handle){loader='<span class="infinite-loader"></span>',this.element.append(loader),loader=this.element.find(".infinite-loader"),color=loader.css("color");try{loader.spin("medium-left",color)}catch(e){}}return query=$.extend({action:"infinite_scroll"},this.query()),"undefined"!=typeof wp&&wp.customize&&wp.customize.settings.theme&&(customized={},query.wp_customize="on",query.theme=wp.customize.settings.theme.stylesheet,wp.customize.each(function(e){e._dirty&&(customized[e.id]=e())}),query.customized=JSON.stringify(customized),query.nonce=wp.customize.settings.nonce.preview),jqxhr=$.post(infiniteScroll.settings.ajaxurl,query),jqxhr.fail(function(){self.click_handle&&loader.hide(),self.ready=!0}),jqxhr.done(function(response){if(self.click_handle&&loader.hide(),response&&response.type&&"success"==response.type&&(response.scripts&&$(response.scripts).each(function(){var e=this.footer?"body":"head";if(window.infiniteScroll.settings.scripts.push(this.handle),this.extra_data){var t=document.createElement("script"),i=document.createTextNode("//<![CDATA[ \n"+this.extra_data+"\n//]]>");t.type="text/javascript",t.appendChild(i),document.getElementsByTagName(e)[0].appendChild(t)}var s=document.createElement("script");s.type="text/javascript",s.src=this.src,s.id=this.handle,"wp-mediaelement"===this.handle&&self.body.unbind("post-load",self.initializeMejs),"wp-mediaelement"===this.handle&&"undefined"==typeof mejs?(self.wpMediaelement={},self.wpMediaelement.tag=s,self.wpMediaelement.element=e,setTimeout(self.maybeLoadMejs.bind(self),250)):document.getElementsByTagName(e)[0].appendChild(s)}),response.styles&&$(response.styles).each(function(){window.infiniteScroll.settings.styles.push(this.handle);var style=document.createElement("link");style.rel="stylesheet",style.href=this.src,style.id=this.handle+"-css",!this.conditional||isIE&&eval(this.conditional.replace(/%ver/g,IEVersion))||(style=!1),style&&document.getElementsByTagName("head")[0].appendChild(style)}),self.pageCache[self.page+self.offset]=response,self.page++,stats&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+stats+"&post=0&baba="+Math.random()),"object"==typeof response.postflair&&"object"==typeof WPCOM_sharing_counts&&(WPCOM_sharing_counts=$.extend(WPCOM_sharing_counts,response.postflair)),self.render.apply(self,arguments),"click"==type?response.lastbatch?self.click_handle?($("#infinite-handle").remove(),self.body.addClass("infinity-end").removeClass("infinity-success")):self.body.trigger("infinite-scroll-posts-end"):self.click_handle?self.element.append(self.handle):self.body.trigger("infinite-scroll-posts-more"):response.lastbatch&&(self.disabled=!0,self.body.addClass("infinity-end").removeClass("infinity-success")),response.currentday&&(self.currentday=response.currentday),self.google_analytics)){var ga_url=self.history.path.replace(/%d/,self.page);"object"==typeof _gaq&&_gaq.push(["_trackPageview",ga_url]),"function"==typeof ga&&ga("send","pageview",ga_url)}}),jqxhr}},Scroller.prototype.maybeLoadMejs=function(){null!==this.wpMediaelement&&("undefined"==typeof mejs?setTimeout(this.maybeLoadMejs,250):(document.getElementsByTagName(this.wpMediaelement.element)[0].appendChild(this.wpMediaelement.tag),this.wpMediaelement=null,this.body.bind("post-load",{self:this},this.initializeMejs)))},Scroller.prototype.initializeMejs=function(e,t){!t.html||-1===t.html.indexOf("wp-audio-shortcode")&&-1===t.html.indexOf("wp-video-shortcode")||"undefined"!=typeof mejs&&$(function(){var e={};"undefined"!=typeof _wpmejsSettings&&(e.pluginPath=_wpmejsSettings.pluginPath),e.success=function(e){var t=e.attributes.autoplay&&"false"!==e.attributes.autoplay;"flash"===e.pluginType&&t&&e.addEventListener("canplay",function(){e.play()},!1)},$(".wp-audio-shortcode, .wp-video-shortcode").not(".mejs-container").mediaelementplayer(e)})},Scroller.prototype.ensureFilledViewport=function(){var e=this.window.height(),t=this.element.height(),i=0,s=0;0!==t||($(this.element.selector+" > li").each(function(){t+=$(this).height()}),0!==t)?($("."+this.wrapperClass).each(function(){i+=$(this).height(),s++}),s>0?i/=s:i=0,t<e&&t+i<e?(this.ready=!0,this.refresh()):this.body.unbind("post-load",this.checkViewportOnLoad)):this.body.unbind("post-load",this.checkViewportOnLoad)},Scroller.prototype.checkViewportOnLoad=function(e){e.data.self.ensureFilledViewport()};var previousFullScrenState=fullscreenState();Scroller.prototype.determineURL=function(){var e=this,t=$(window).scrollTop(),i=t+$(window).height(),s=i-t,o=[],n=[],l=!1,r=fullscreenState();if(previousFullScrenState^r)previousFullScrenState=r;else{if(previousFullScrenState=r,$("."+e.wrapperClass).each(function(){var e,s=$(this).attr("id"),l=$(this).offset().top,r=$(this).outerHeight(!1),a=$(this).data("page-num");0===r&&$("> *",this).each(function(){r+=$(this).outerHeight(!1)}),e=l+r,l<t&&e>i?o.push({id:s,top:l,bottom:e,pageNum:a}):l>t&&l<i?o.push({id:s,top:l,bottom:e,pageNum:a}):e>t&&e<i?o.push({id:s,top:l,bottom:e,pageNum:a}):n.push({id:s,top:l,bottom:e,pageNum:a})}),$.each(n,function(){var t=$("#"+this.id);t.hasClass("is--replaced")||(e.pageCache[this.pageNum].html=t.html(),t.css("min-height",this.bottom-this.top+"px").addClass("is--replaced").empty())}),$.each(o,function(){var t=$("#"+this.id);t.hasClass("is--replaced")&&(t.css("min-height","").removeClass("is--replaced"),this.pageNum in e.pageCache&&(t.html(e.pageCache[this.pageNum].html),e.body.trigger("post-load",e.pageCache[this.pageNum])))}),0==o.length)l=-1;else if(1==o.length){var a=o.pop();l=(i-a.top)/s<.5?-1:a.pageNum}else{var c=0;$.each(o,function(e,o){var n=0,r=0,a=0;o.top>t&&o.top<i&&(n=(i-o.top)/s),o.bottom>t&&o.bottom<i&&(r=(o.bottom-t)/s),n>=r?a=n:r>=n&&(a=r),a>c&&(l=o.pageNum,c=a)})}"number"==typeof l&&e.updateURL(l)}},Scroller.prototype.updateURL=function(e){if(window.history.pushState){var t=this.origURL;-1!==e&&(t=window.location.protocol+"//"+this.history.host+this.history.path.replace(/%d/,e)+this.history.parameters),window.location.href!=t&&history.pushState(null,null,t)}},Scroller.prototype.pause=function(){this.disabled=!0},Scroller.prototype.resume=function(){this.disabled=!1},$(document).ready(function(){if("object"==typeof infiniteScroll){if($(document.body).addClass(infiniteScroll.settings.body_class),ajaxurl=infiniteScroll.settings.ajaxurl,stats=infiniteScroll.settings.stats,type=infiniteScroll.settings.type,text=infiniteScroll.settings.text,totop=infiniteScroll.settings.totop,infiniteScroll.scroller=new Scroller(infiniteScroll.settings),"click"==type){var e=null;$(window).bind("scroll",function(){e||(e=setTimeout(function(){infiniteScroll.scroller.determineURL(),e=null},250))})}"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&(wp.customize.selectiveRefresh.bind("partial-content-rendered",function(e){var t;"string"==typeof e.addedContent?t=e.addedContent:e.container&&(t=$(e.container).html()),t&&$(document.body).trigger("post-load",{html:t})}),"undefined"==typeof MutationObserver&&$(document.body).on("post-load",function(e,t){var i=null;t.html&&-1!==t.html.indexOf("data-customize-partial")&&(infiniteScroll.settings.id&&(i=$("#"+infiniteScroll.settings.id)),wp.customize.selectiveRefresh.addPartials(i))}))}})}(jQuery); \ No newline at end of file
+(function(){var __webpack_exports__={};(function(){var Scroller,ajaxurl,stats,type,text,totop,loading_text,isIE=-1!=navigator.userAgent.search("MSIE");if(isIE){var IEVersion=navigator.userAgent.match(/MSIE\s?(\d+)\.?\d*;/);IEVersion=parseInt(IEVersion[1])}function fullscreenState(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement?1:0}"https:"==document.location.protocol&&(infiniteScroll.settings.ajaxurl=infiniteScroll.settings.ajaxurl.replace("http://","https://")),Scroller=function(e){var t=this;this.id=e.id,this.body=document.body,this.window=window,this.element=document.getElementById(e.id),this.wrapperClass=e.wrapper_class,this.ready=!0,this.disabled=!1,this.page=1,this.offset=e.offset,this.currentday=e.currentday,this.order=e.order,this.throttle=!1,this.click_handle=e.click_handle,this.google_analytics=e.google_analytics,this.history=e.history,this.origURL=window.location.href,this.handle=document.createElement("div"),this.handle.setAttribute("id","infinite-handle"),this.handle.innerHTML="<span><button>"+text.replace("\\","")+"</button></span>",this.footer={el:document.getElementById("infinite-footer"),wrap:e.footer},this.checkViewportOnLoadBound=t.checkViewportOnLoad.bind(this),this.wpMediaelement=null,"scroll"==type?(this.window.addEventListener("scroll",(function(){t.throttle=!0})),t.gotop(),setInterval((function(){t.throttle&&(t.throttle=!1,t.thefooter(),t.refresh(),t.determineURL())}),250),t.ensureFilledViewport(),this.body.addEventListener("is.post-load",t.checkViewportOnLoadBound)):"click"==type&&(this.click_handle&&this.element.appendChild(this.handle),this.handle.addEventListener("click",(function(){t.click_handle&&t.handle.parentNode.removeChild(t.handle),t.refresh()}))),this.body.addEventListener("is.post-load",t.initializeMejs)},Scroller.prototype.getScrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},Scroller.prototype.extend=function(e){e=e||{};for(var t=1;t<arguments.length;t++)if(arguments[t])for(var n in arguments[t])arguments[t].hasOwnProperty(n)&&(e[n]=arguments[t][n]);return e},Scroller.prototype.check=function(){return this.measure(this.element,[this.wrapperClass]).bottom<2*this.window.innerHeight},Scroller.prototype.render=function(e){var t=Array.prototype.slice.call(e.fragment.childNodes);for(this.body.classList.add("infinity-success");t.length>0;){var n=t.shift();this.element.appendChild(n)}this.trigger(this.body,"is.post-load",{jqueryEventName:"post-load",data:e}),this.ready=!0},Scroller.prototype.query=function(){return{page:this.page+this.offset,currentday:this.currentday,order:this.order,scripts:window.infiniteScroll.settings.scripts,styles:window.infiniteScroll.settings.styles,query_args:window.infiniteScroll.settings.query_args,query_before:window.infiniteScroll.settings.query_before,last_post_date:window.infiniteScroll.settings.last_post_date}},Scroller.prototype.animate=function(e,t){var n=performance.now();requestAnimationFrame((function i(o){var r=Math.min(1,(o-n)/t);e(r),r<1&&requestAnimationFrame(i)}))},Scroller.prototype.gotop=function(){var e=document.getElementById("infinity-blog-title"),t=this;e&&(e.setAttribute("title",totop),e.addEventListener("click",(function(e){var n=t.window.pageYOffset;e.preventDefault(),t.animate((function(e){var t=n-n*e;document.documentElement.scrollTop=document.body.scrollTop=t}),200)})))},Scroller.prototype.thefooter=function(){var e,t,n,i,o=this;if(this.footer&&this.footer.el){if("string"==typeof this.footer.wrap){try{t=(t=document.getElementById(this.footer.wrap).getBoundingClientRect()).width}catch(e){t=0}t>479&&(e=this.footer.el.querySelector(".container"))&&(e.style.width=t+"px")}n=parseInt(o.footer.el.style.bottom||-50,10),i=this.window.pageYOffset>=350?0:-50,n!==i&&o.animate((function(e){var t=n+(i-n)*e;o.footer.el.style.bottom=t+"px",1===e&&(n=i)}),200)}},Scroller.prototype.urlEncodeJSON=function(e,t){var n,i,o=[];for(var r in e)n=encodeURIComponent(r),i=t?t+"["+n+"]":n,"object"==typeof e[r]?!Array.isArray(e[r])||e[r].length>0?o.push(this.urlEncodeJSON(e[r],i)):o.push(i+"[]="):o.push(i+"="+encodeURIComponent(e[r]));return o.join("&")},Scroller.prototype.refresh=function(){var self=this,query,xhr,loader,customized;if(!this.disabled&&this.ready&&this.check())return this.ready=!1,this.click_handle&&(loader||(document.getElementById("infinite-aria").textContent=loading_text,loader=document.createElement("div"),loader.classList.add("infinite-loader"),loader.setAttribute("role","progress"),loader.innerHTML='<div class="spinner"><div class="spinner-inner"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>'),this.element.appendChild(loader)),query=self.extend({action:"infinite_scroll"},this.query()),"undefined"!=typeof wp&&wp.customize&&wp.customize.settings.theme&&(customized={},query.wp_customize="on",query.theme=wp.customize.settings.theme.stylesheet,wp.customize.each((function(e){e._dirty&&(customized[e.id]=e())})),query.customized=JSON.stringify(customized),query.nonce=wp.customize.settings.nonce.preview),xhr=new XMLHttpRequest,xhr.open("POST",infiniteScroll.settings.ajaxurl,!0),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),xhr.send(self.urlEncodeJSON(query)),xhr.onerror=function(){self.click_handle&&loader.parentNode.removeChild(loader),self.ready=!0},xhr.onload=function(){var response=JSON.parse(xhr.responseText),httpCheck=xhr.status>=200&&xhr.status<300,responseCheck=void 0!==response.html;if(response&&httpCheck&&responseCheck){if(self.click_handle&&loader.parentNode.removeChild(loader),response.scripts&&Array.isArray(response.scripts)&&response.scripts.forEach((function(e){var t=e.footer?"body":"head";window.infiniteScroll.settings.scripts.push(e.handle),e.extra_data&&self.appendInlineScript(e.extra_data,t),e.before_handle&&self.appendInlineScript(e.before_handle,t);var n=document.createElement("script");n.type="text/javascript",n.src=e.src,n.id=e.handle,n.async=!1,e.after_handle&&(n.onload=function(){self.appendInlineScript(e.after_handle,t)}),"wp-mediaelement"===e.handle&&self.body.removeEventListener("is.post-load",self.initializeMejs),"wp-mediaelement"===e.handle&&"undefined"==typeof mejs?(self.wpMediaelement={},self.wpMediaelement.tag=n,self.wpMediaelement.element=t,setTimeout(self.maybeLoadMejs.bind(self),250)):document.getElementsByTagName(t)[0].appendChild(n)})),response.styles&&Array.isArray(response.styles)&&response.styles.forEach((function(item){window.infiniteScroll.settings.styles.push(item.handle);var style=document.createElement("link");style.rel="stylesheet",style.href=item.src,style.id=item.handle+"-css",!item.conditional||isIE&&eval(item.conditional.replace(/%ver/g,IEVersion))||(style=!1),style&&document.getElementsByTagName("head")[0].appendChild(style)})),response.fragment=document.createElement("div"),response.fragment.innerHTML=response.html,self.page++,stats&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?"+stats+"&post=0&baba="+Math.random()),"object"==typeof response.postflair&&"object"==typeof WPCOM_sharing_counts&&(WPCOM_sharing_counts=self.extend(WPCOM_sharing_counts,response.postflair)),self.render.call(self,response),"click"==type?(infiniteScroll.settings.wrapper&&document.querySelector("#infinite-view-"+(self.page+self.offset-1)+" a:first-of-type").focus({preventScroll:!0}),response.lastbatch?self.click_handle?(self.body.classList.add("infinity-end"),self.body.classList.remove("infinity-success")):self.trigger(this.body,"infinite-scroll-posts-end"):self.click_handle?self.element.appendChild(self.handle):self.trigger(this.body,"infinite-scroll-posts-more")):response.lastbatch&&(self.disabled=!0,self.body.classList.add("infinity-end"),self.body.classList.remove("infinity-success")),response.currentday&&(self.currentday=response.currentday),self.google_analytics){var ga_url=self.history.path.replace(/%d/,self.page);"object"==typeof _gaq&&_gaq.push(["_trackPageview",ga_url]),"function"==typeof ga&&ga("send","pageview",ga_url)}}else self.click_handle&&loader.parentNode.removeChild(loader)},xhr},Scroller.prototype.appendInlineScript=function(e,t){var n=document.createElement("script"),i=document.createTextNode("//<![CDATA[ \n"+e+"\n//]]>");n.type="text/javascript",n.appendChild(i),document.getElementsByTagName(t)[0].appendChild(n)},Scroller.prototype.maybeLoadMejs=function(){null!==this.wpMediaelement&&("undefined"==typeof mejs?setTimeout(this.maybeLoadMejs.bind(this),250):(document.getElementsByTagName(this.wpMediaelement.element)[0].appendChild(this.wpMediaelement.tag),this.wpMediaelement=null,this.body.addEventListener("is.post-load",this.initializeMejs)))},Scroller.prototype.initializeMejs=function(e){if(e.detail&&e.detail.html&&(-1!==e.detail.html.indexOf("wp-audio-shortcode")||-1!==e.detail.html.indexOf("wp-video-shortcode"))&&"undefined"!=typeof mejs){var t,n={};"undefined"!=typeof _wpmejsSettings&&(n.pluginPath=_wpmejsSettings.pluginPath),n.success=function(e){var t=e.attributes.autoplay&&"false"!==e.attributes.autoplay;"flash"===e.pluginType&&t&&e.addEventListener("canplay",(function(){e.play()}),!1)},t=document.querySelectorAll(".wp-audio-shortcode, .wp-video-shortcode"),t=(t=Array.prototype.slice.call(t)).filter((function(e){for(;e.parentNode;){if(e.classList.contains("mejs-container"))return!1;e=e.parentNode}return!0}));for(var i=0;i<t.length;i++)new MediaElementPlayer(t[i],n)}},Scroller.prototype.measure=function(e,t){t=t||[];for(var n,i,o,r=Array.prototype.slice.call(e.children),s=Number.MAX_VALUE,l=0;r.length>0;){for(n=r.shift(),o=0;o<t.length;o++)if(n.classList.contains(t[o])){r=r.concat(Array.prototype.slice.call(n.children));break}i=n.getBoundingClientRect(),s=Math.min(s,i.top),l=Math.max(l,i.bottom)}var a=Math.round(window.innerHeight/2),d=s<=a&&l>=a;return{top:s,bottom:l,height:l-s,factor:(Math.min(l,a)-Math.max(s,0))/a,isActive:d}},Scroller.prototype.ensureFilledViewport=function(){var e=this,t=e.window.innerHeight,n=e.measure(e.element,[e.wrapperClass]);e.body.removeEventListener("is.post-load",e.checkViewportOnLoadBound),n.bottom<t&&(e.ready=!0,e.refresh())},Scroller.prototype.checkViewportOnLoad=function(){this.ensureFilledViewport()};var previousFullScrenState=fullscreenState();Scroller.prototype.determineURL=function(){var e,t=this,n=-1,i=fullscreenState(),o=0;if(previousFullScrenState^i)previousFullScrenState=i;else{previousFullScrenState=i,e=document.querySelectorAll("."+t.wrapperClass);for(var r=0;r<e.length;r++){var s=t.measure(e[r]);if(s.isActive){n=parseInt(e[r].dataset.pageNum,10);break}s.factor>o&&(n=parseInt(e[r].dataset.pageNum,10),o=s.factor)}t.updateURL(n)}},Scroller.prototype.updateURL=function(e){if(window.history.pushState){var t=this,n=t.origURL;-1!==e&&(n=window.location.protocol+"//"+t.history.host+t.history.path.replace(/%d/,e)+t.history.parameters),window.location.href!=n&&history.pushState(null,null,n)}},Scroller.prototype.pause=function(){this.disabled=!0},Scroller.prototype.resume=function(){this.disabled=!1},Scroller.prototype.trigger=function(e,t,n){var i;(n=n||{}).jqueryEventName&&"undefined"!=typeof jQuery&&jQuery(e).trigger(n.jqueryEventName,n.data||null);try{i=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n.data||null})}catch(e){(i=document.createEvent("CustomEvent")).initCustomEvent(t,!0,!0,n.data||null)}e.dispatchEvent(i)};var jetpackInfinityModule=function(){var e=infiniteScroll.settings.body_class.split(" ");if("object"==typeof infiniteScroll&&(e.forEach((function(e){e&&document.body.classList.add(e)})),ajaxurl=infiniteScroll.settings.ajaxurl,stats=infiniteScroll.settings.stats,type=infiniteScroll.settings.type,text=infiniteScroll.settings.text,totop=infiniteScroll.settings.totop,loading_text=infiniteScroll.settings.loading_text,infiniteScroll.scroller=new Scroller(infiniteScroll.settings),"click"==type)){var t=null;window.addEventListener("scroll",(function(){t||(t=setTimeout((function(){infiniteScroll.scroller.determineURL(),t=null}),250))}))}};"interactive"===document.readyState||"complete"===document.readyState?jetpackInfinityModule():document.addEventListener("DOMContentLoaded",jetpackInfinityModule)})()})(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/407.js b/plugins/jetpack/_inc/build/instant-search/407.js
new file mode 100644
index 00000000..038bd365
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/407.js
@@ -0,0 +1,2 @@
+/*! For license information please see 407.js.LICENSE.txt */
+(self.webpackChunkJetpack=self.webpackChunkJetpack||[]).push([[407],{7538:function(t){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},t.exports.default=t.exports,t.exports.__esModule=!0},9183:function(t){function e(){return t.exports=e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},t.exports.default=t.exports,t.exports.__esModule=!0,e.apply(this,arguments)}t.exports=e,t.exports.default=t.exports,t.exports.__esModule=!0},2213:function(t){!function(){"use strict";var e=[],n=3988292384;function r(t){var e,r,o,i,u=-1;for(e=0,o=t.length;e<o;e+=1){for(i=255&(u^t[e]),r=0;r<8;r+=1)1==(1&i)?i=i>>>1^n:i>>>=1;u=u>>>8^i}return-1^u}function o(t,n){var r,i,u;if(void 0!==o.crc&&n&&t||(o.crc=-1,t)){for(r=o.crc,i=0,u=t.length;i<u;i+=1)r=r>>>8^e[255&(r^t[i])];return o.crc=r,-1^r}}!function(){var t,r,o;for(r=0;r<256;r+=1){for(t=r,o=0;o<8;o+=1)1&t?t=n^t>>>1:t>>>=1;e[r]=t>>>0}}(),t.exports=function(t,e){var n;t="string"==typeof t?(n=t,Array.prototype.map.call(n,(function(t){return t.charCodeAt(0)}))):t;return((e?r(t):o(t))>>>0).toString(16)},t.exports.direct=r,t.exports.table=o}()},8027:function(t){"use strict";t.exports=function(t,e){e||(e={}),"function"==typeof e&&(e={cmp:e});var n,r="boolean"==typeof e.cycles&&e.cycles,o=e.cmp&&(n=e.cmp,function(t){return function(e,r){var o={key:e,value:t[e]},i={key:r,value:t[r]};return n(o,i)}}),i=[];return function t(e){if(e&&e.toJSON&&"function"==typeof e.toJSON&&(e=e.toJSON()),void 0!==e){if("number"==typeof e)return isFinite(e)?""+e:"null";if("object"!=typeof e)return JSON.stringify(e);var n,u;if(Array.isArray(e)){for(u="[",n=0;n<e.length;n++)n&&(u+=","),u+=t(e[n])||"null";return u+"]"}if(null===e)return"null";if(-1!==i.indexOf(e)){if(r)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var c=i.push(e)-1,s=Object.keys(e).sort(o&&o(e));for(u="",n=0;n<s.length;n++){var a=s[n],f=t(e[a]);f&&(u&&(u+=","),u+=JSON.stringify(a)+":"+f)}return i.splice(c,1),"{"+u+"}"}}(t)}},3266:function(t,e,n){"use strict";var r=n(364),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},u={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},c={};function s(t){return r.isMemo(t)?u:c[t.$$typeof]||o}c[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},c[r.Memo]=u;var a=Object.defineProperty,f=Object.getOwnPropertyNames,l=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,_=Object.getPrototypeOf,d=Object.prototype;t.exports=function t(e,n,r){if("string"!=typeof n){if(d){var o=_(n);o&&o!==d&&t(e,o,r)}var u=f(n);l&&(u=u.concat(l(n)));for(var c=s(e),h=s(n),v=0;v<u.length;++v){var y=u[v];if(!(i[y]||r&&r[y]||h&&h[y]||c&&c[y])){var m=p(n,y);try{a(e,y,m)}catch(t){}}}}return e}},4546:function(t){"use strict";t.exports=function(t,e,n,r,o,i,u,c){if(!t){var s;if(void 0===e)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=[n,r,o,i,u,c],f=0;(s=new Error(e.replace(/%s/g,(function(){return a[f++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},2596:function(t,e,n){var r=n(2373).Symbol;t.exports=r},8644:function(t){t.exports=function(t,e){for(var n=-1,r=null==t?0:t.length,o=Array(r);++n<r;)o[n]=e(t[n],n,t);return o}},563:function(t,e,n){var r=n(2596),o=n(8703),i=n(888),u=r?r.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":u&&u in Object(t)?o(t):i(t)}},6316:function(t,e,n){var r=n(2596),o=n(8644),i=n(163),u=n(1995),c=r?r.prototype:void 0,s=c?c.toString:void 0;t.exports=function t(e){if("string"==typeof e)return e;if(i(e))return o(e,t)+"";if(u(e))return s?s.call(e):"";var n=e+"";return"0"==n&&1/e==-Infinity?"-0":n}},1367:function(t,e,n){var r=n(4120),o=/^\s+/;t.exports=function(t){return t?t.slice(0,r(t)+1).replace(o,""):t}},2117:function(t){var e="object"==typeof window&&window&&window.Object===Object&&window;t.exports=e},8703:function(t,e,n){var r=n(2596),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,c=r?r.toStringTag:void 0;t.exports=function(t){var e=i.call(t,c),n=t[c];try{t[c]=void 0;var r=!0}catch(t){}var o=u.call(t);return r&&(e?t[c]=n:delete t[c]),o}},888:function(t){var e=Object.prototype.toString;t.exports=function(t){return e.call(t)}},2373:function(t,e,n){var r=n(2117),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();t.exports=i},4120:function(t){var e=/\s/;t.exports=function(t){for(var n=t.length;n--&&e.test(t.charAt(n)););return n}},5034:function(t,e,n){var r=n(7709),o=n(6987),i=n(5812),u=Math.max,c=Math.min;t.exports=function(t,e,n){var s,a,f,l,p,_,d=0,h=!1,v=!1,y=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function m(e){var n=s,r=a;return s=a=void 0,d=e,l=t.apply(r,n)}function b(t){return d=t,p=setTimeout(w,e),h?m(t):l}function g(t){var n=t-_;return void 0===_||n>=e||n<0||v&&t-d>=f}function w(){var t=o();if(g(t))return x(t);p=setTimeout(w,function(t){var n=e-(t-_);return v?c(n,f-(t-d)):n}(t))}function x(t){return p=void 0,y&&s?m(t):(s=a=void 0,l)}function P(){var t=o(),n=g(t);if(s=arguments,a=this,_=t,n){if(void 0===p)return b(_);if(v)return clearTimeout(p),p=setTimeout(w,e),m(_)}return void 0===p&&(p=setTimeout(w,e)),l}return e=i(e)||0,r(n)&&(h=!!n.leading,f=(v="maxWait"in n)?u(i(n.maxWait)||0,e):f,y="trailing"in n?!!n.trailing:y),P.cancel=function(){void 0!==p&&clearTimeout(p),d=0,s=_=a=p=void 0},P.flush=function(){return void 0===p?l:x(o())},P}},163:function(t){var e=Array.isArray;t.exports=e},7709:function(t){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},3474:function(t){t.exports=function(t){return null!=t&&"object"==typeof t}},1995:function(t,e,n){var r=n(563),o=n(3474);t.exports=function(t){return"symbol"==typeof t||o(t)&&"[object Symbol]"==r(t)}},6987:function(t,e,n){var r=n(2373);t.exports=function(){return r.Date.now()}},5812:function(t,e,n){var r=n(1367),o=n(7709),i=n(1995),u=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,s=/^0o[0-7]+$/i,a=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(i(t))return NaN;if(o(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=o(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=r(t);var n=c.test(t);return n||s.test(t)?a(t.slice(2),n?2:8):u.test(t)?NaN:+t}},7010:function(t,e,n){var r=n(6316);t.exports=function(t){return null==t?"":r(t)}},660:function(t,e,n){var r=n(7010),o=0;t.exports=function(t){var e=++o;return r(t)+e}},278:function(t,e,n){"use strict";n.d(e,{Z:function(){return l}});var r=n(2213),o=n.n(r),i=n(8211),u=n.n(i),c=(0,n(6597).Z)("photon"),s={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},a="__domain__.invalid",f="http://".concat(a);function l(t,e){var n;try{n=new URL(t,f)}catch(t){return null}var r,i,l,p,_,d="https:"===n.protocol,h=new URL("https://i0.wp.com");if(_=n.host,/^i[0-2]\.wp\.com$/.test(_))h.pathname=n.pathname,h.hostname=n.hostname;else{if(n.search)return null;var v=n.href.replace("".concat(n.protocol,"/"),"");"blob:"===n.protocol&&(v=n.pathname.replace("://","//")),n.hostname===a&&(v=n.pathname),h.pathname=v,h.hostname=(r=v,i=o()(r),l=u()(i),p="i"+Math.floor(3*l()),c('determined server "%s" to use with "%s"',p,r),p+".wp.com"),d&&h.searchParams.set("ssl",1)}if(e)for(var y in e)"host"!==y&&"hostname"!==y?"secure"!==y||e[y]?h.searchParams.set(s[y]||y,e[y]):h.protocol="http:":h.hostname=e[y];return c("generated Photon URL: %s",h.href),h.href}},5151:function(t,e,n){"use strict";n.d(e,{d4:function(){return r.d4},sO:function(){return r.sO},eJ:function(){return r.eJ},Vf:function(){return o.Vf},HY:function(){return o.HY},wA:function(){return o.wA},jz:function(){return g},Vx:function(){return c}});var r=n(426),o=n(2695);function i(t,e){for(var n in e)t[n]=e[n];return t}function u(t,e){for(var n in t)if("__source"!==n&&!(n in e))return!0;for(var r in e)if("__source"!==r&&t[r]!==e[r])return!0;return!1}function c(t){this.props=t}(c.prototype=new o.wA).isPureReactComponent=!0,c.prototype.shouldComponentUpdate=function(t,e){return u(this.props,t)||u(this.state,e)};var s=o.YM.__b;o.YM.__b=function(t){t.type&&t.type.__f&&t.ref&&(t.props.ref=t.ref,t.ref=null),s&&s(t)};var a="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;var f=function(t,e){return null==t?null:(0,o.bR)((0,o.bR)(t).map(e))},l={map:f,forEach:f,count:function(t){return t?(0,o.bR)(t).length:0},only:function(t){var e=(0,o.bR)(t);if(1!==e.length)throw"Children.only";return e[0]},toArray:o.bR},p=o.YM.__e;o.YM.__e=function(t,e,n){if(t.then)for(var r,o=e;o=o.__;)if((r=o.__c)&&r.__c)return null==e.__e&&(e.__e=n.__e,e.__k=n.__k),r.__c(t,e);p(t,e,n)};var _=o.YM.unmount;function d(){this.__u=0,this.t=null,this.__b=null}function h(t){var e=t.__.__c;return e&&e.__e&&e.__e(t)}function v(){this.u=null,this.o=null}o.YM.unmount=function(t){var e=t.__c;e&&e.__R&&e.__R(),e&&!0===t.__h&&(t.type=null),_&&_(t)},(d.prototype=new o.wA).__c=function(t,e){var n=e.__c,r=this;null==r.t&&(r.t=[]),r.t.push(n);var o=h(r.__v),i=!1,u=function(){i||(i=!0,n.__R=null,o?o(c):c())};n.__R=u;var c=function(){if(!--r.__u){if(r.state.__e){var t=r.state.__e;r.__v.__k[0]=function t(e,n,r){return e&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return t(e,n,r)})),e.__c&&e.__c.__P===n&&(e.__e&&r.insertBefore(e.__e,e.__d),e.__c.__e=!0,e.__c.__P=r)),e}(t,t.__c.__P,t.__c.__O)}var e;for(r.setState({__e:r.__b=null});e=r.t.pop();)e.forceUpdate()}},s=!0===e.__h;r.__u++||s||r.setState({__e:r.__b=r.__v.__k[0]}),t.then(u,u)},d.prototype.componentWillUnmount=function(){this.t=[]},d.prototype.render=function(t,e){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function t(e,n,r){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(t){"function"==typeof t.__c&&t.__c()})),e.__c.__H=null),null!=(e=i({},e)).__c&&(e.__c.__P===r&&(e.__c.__P=n),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return t(e,n,r)}))),e}(this.__b,n,r.__O=r.__P)}this.__b=null}var u=e.__e&&(0,o.az)(o.HY,null,t.fallback);return u&&(u.__h=null),[(0,o.az)(o.HY,null,e.__e?null:t.children),u]};var y=function(t,e,n){if(++n[1]===n[0]&&t.o.delete(e),t.props.revealOrder&&("t"!==t.props.revealOrder[0]||!t.o.size))for(n=t.u;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;t.u=n=n[2]}};function m(t){return this.getChildContext=function(){return t.context},t.children}function b(t){var e=this,n=t.i;e.componentWillUnmount=function(){(0,o.sY)(null,e.l),e.l=null,e.i=null},e.i&&e.i!==n&&e.componentWillUnmount(),t.__v?(e.l||(e.i=n,e.l={nodeType:1,parentNode:n,childNodes:[],appendChild:function(t){this.childNodes.push(t),e.i.appendChild(t)},insertBefore:function(t,n){this.childNodes.push(t),e.i.appendChild(t)},removeChild:function(t){this.childNodes.splice(this.childNodes.indexOf(t)>>>1,1),e.i.removeChild(t)}}),(0,o.sY)((0,o.az)(m,{context:e.context},t.__v),e.l)):e.l&&e.componentWillUnmount()}function g(t,e){return(0,o.az)(b,{__v:t,i:e})}(v.prototype=new o.wA).__e=function(t){var e=this,n=h(e.__v),r=e.o.get(t);return r[0]++,function(o){var i=function(){e.props.revealOrder?(r.push(o),y(e,t,r)):o()};n?n(i):i()}},v.prototype.render=function(t){this.u=null,this.o=new Map;var e=(0,o.bR)(t.children);t.revealOrder&&"b"===t.revealOrder[0]&&e.reverse();for(var n=e.length;n--;)this.o.set(e[n],this.u=[1,0,this.u]);return t.children},v.prototype.componentDidUpdate=v.prototype.componentDidMount=function(){var t=this;this.o.forEach((function(e,n){y(t,n,e)}))};var w="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,x=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,P="undefined"!=typeof document,O=function(t){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(t)};o.wA.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(t){Object.defineProperty(o.wA.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]},set:function(e){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:e})}})}));var S=o.YM.event;function C(){}function E(){return this.cancelBubble}function k(){return this.defaultPrevented}o.YM.event=function(t){return S&&(t=S(t)),t.persist=C,t.isPropagationStopped=E,t.isDefaultPrevented=k,t.nativeEvent=t};var M,T={configurable:!0,get:function(){return this.class}},j=o.YM.vnode;o.YM.vnode=function(t){var e=t.type,n=t.props,r=n;if("string"==typeof e){var i=-1===e.indexOf("-");for(var u in r={},n){var c=n[u];P&&"children"===u&&"noscript"===e||"value"===u&&"defaultValue"in n&&null==c||("defaultValue"===u&&"value"in n&&null==n.value?u="value":"download"===u&&!0===c?c="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+e)&&!O(n.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():i&&x.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===c&&(c=void 0),r[u]=c)}"select"==e&&r.multiple&&Array.isArray(r.value)&&(r.value=(0,o.bR)(n.children).forEach((function(t){t.props.selected=-1!=r.value.indexOf(t.props.value)}))),"select"==e&&null!=r.defaultValue&&(r.value=(0,o.bR)(n.children).forEach((function(t){t.props.selected=r.multiple?-1!=r.defaultValue.indexOf(t.props.value):r.defaultValue==t.props.value}))),t.props=r}e&&n.class!=n.className&&(T.enumerable="className"in n,null!=n.className&&(r.class=n.className),Object.defineProperty(r,"className",T)),t.$$typeof=w,j&&j(t)};var N=o.YM.__r;o.YM.__r=function(t){N&&N(t),M=t.__c};var R={ReactCurrentDispatcher:{current:{readContext:function(t){return M.__n[t.__c].props.value}}}};function A(t){return!!t&&t.$$typeof===w}o.HY;e.ZP={useState:r.eJ,useReducer:r._Y,useEffect:r.d4,useLayoutEffect:r.bt,useRef:r.sO,useImperativeHandle:r.aP,useMemo:r.Ye,useCallback:r.I4,useContext:r.qp,useDebugValue:r.Qb,version:"17.0.2",Children:l,render:function(t,e,n){return null==e.__k&&(e.textContent=""),(0,o.sY)(t,e),"function"==typeof n&&n(),t?t.__c:null},hydrate:function(t,e,n){return(0,o.ZB)(t,e),"function"==typeof n&&n(),t?t.__c:null},unmountComponentAtNode:function(t){return!!t.__k&&((0,o.sY)(null,t),!0)},createPortal:g,createElement:o.az,createContext:o.kr,createFactory:function(t){return o.az.bind(null,t)},cloneElement:function(t){return A(t)?o.Tm.apply(null,arguments):t},createRef:o.Vf,Fragment:o.HY,isValidElement:A,findDOMNode:function(t){return t&&(t.base||1===t.nodeType&&t)||null},Component:o.wA,PureComponent:c,memo:function(t,e){function n(t){var n=this.props.ref,r=n==t.ref;return!r&&n&&(n.call?n(null):n.current=null),e?!e(this.props,t)||!r:u(this.props,t)}function r(e){return this.shouldComponentUpdate=n,(0,o.az)(t,e)}return r.displayName="Memo("+(t.displayName||t.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r},forwardRef:function(t){function e(e,n){var r=i({},e);return delete r.ref,t(r,(n=e.ref||n)&&("object"!=typeof n||"current"in n)?n:null)}return e.$$typeof=a,e.render=e,e.prototype.isReactComponent=e.__f=!0,e.displayName="ForwardRef("+(t.displayName||t.name)+")",e},flushSync:function(t,e){return t(e)},unstable_batchedUpdates:function(t,e){return t(e)},StrictMode:o.HY,Suspense:d,SuspenseList:v,lazy:function(t){var e,n,r;function i(i){if(e||(e=t()).then((function(t){n=t.default||t}),(function(t){r=t})),r)throw r;if(!n)throw e;return(0,o.az)(n,i)}return i.displayName="Lazy",i.__f=!0,i},__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:R}},2695:function(t,e,n){"use strict";n.d(e,{sY:function(){return U},ZB:function(){return I},az:function(){return h},HY:function(){return m},Vf:function(){return y},wA:function(){return b},Tm:function(){return $},kr:function(){return H},bR:function(){return C},YM:function(){return o}});var r,o,i,u,c,s,a,f={},l=[],p=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function _(t,e){for(var n in e)t[n]=e[n];return t}function d(t){var e=t.parentNode;e&&e.removeChild(t)}function h(t,e,n){var o,i,u,c={};for(u in e)"key"==u?o=e[u]:"ref"==u?i=e[u]:c[u]=e[u];if(arguments.length>2&&(c.children=arguments.length>3?r.call(arguments,2):n),"function"==typeof t&&null!=t.defaultProps)for(u in t.defaultProps)void 0===c[u]&&(c[u]=t.defaultProps[u]);return v(t,c,o,i,null)}function v(t,e,n,r,u){var c={type:t,props:e,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==u?++i:u};return null==u&&null!=o.vnode&&o.vnode(c),c}function y(){return{current:null}}function m(t){return t.children}function b(t,e){this.props=t,this.context=e}function g(t,e){if(null==e)return t.__?g(t.__,t.__.__k.indexOf(t)+1):null;for(var n;e<t.__k.length;e++)if(null!=(n=t.__k[e])&&null!=n.__e)return n.__e;return"function"==typeof t.type?g(t):null}function w(t){var e,n;if(null!=(t=t.__)&&null!=t.__c){for(t.__e=t.__c.base=null,e=0;e<t.__k.length;e++)if(null!=(n=t.__k[e])&&null!=n.__e){t.__e=t.__c.base=n.__e;break}return w(t)}}function x(t){(!t.__d&&(t.__d=!0)&&u.push(t)&&!P.__r++||s!==o.debounceRendering)&&((s=o.debounceRendering)||c)(P)}function P(){for(var t;P.__r=u.length;)t=u.sort((function(t,e){return t.__v.__b-e.__v.__b})),u=[],t.some((function(t){var e,n,r,o,i,u;t.__d&&(i=(o=(e=t).__v).__e,(u=e.__P)&&(n=[],(r=_({},o)).__v=o.__v+1,N(u,o,r,e.__n,void 0!==u.ownerSVGElement,null!=o.__h?[i]:null,n,null==i?g(o):i,o.__h),R(n,o),o.__e!=i&&w(o)))}))}function O(t,e,n,r,o,i,u,c,s,a){var p,_,d,h,y,b,w,x=r&&r.__k||l,P=x.length;for(n.__k=[],p=0;p<e.length;p++)if(null!=(h=n.__k[p]=null==(h=e[p])||"boolean"==typeof h?null:"string"==typeof h||"number"==typeof h||"bigint"==typeof h?v(null,h,null,null,h):Array.isArray(h)?v(m,{children:h},null,null,null):h.__b>0?v(h.type,h.props,h.key,null,h.__v):h)){if(h.__=n,h.__b=n.__b+1,null===(d=x[p])||d&&h.key==d.key&&h.type===d.type)x[p]=void 0;else for(_=0;_<P;_++){if((d=x[_])&&h.key==d.key&&h.type===d.type){x[_]=void 0;break}d=null}N(t,h,d=d||f,o,i,u,c,s,a),y=h.__e,(_=h.ref)&&d.ref!=_&&(w||(w=[]),d.ref&&w.push(d.ref,null,h),w.push(_,h.__c||y,h)),null!=y?(null==b&&(b=y),"function"==typeof h.type&&h.__k===d.__k?h.__d=s=S(h,s,t):s=E(t,h,d,x,y,s),"function"==typeof n.type&&(n.__d=s)):s&&d.__e==s&&s.parentNode!=t&&(s=g(d))}for(n.__e=b,p=P;p--;)null!=x[p]&&("function"==typeof n.type&&null!=x[p].__e&&x[p].__e==n.__d&&(n.__d=g(r,p+1)),D(x[p],x[p]));if(w)for(p=0;p<w.length;p++)Y(w[p],w[++p],w[++p])}function S(t,e,n){for(var r,o=t.__k,i=0;o&&i<o.length;i++)(r=o[i])&&(r.__=t,e="function"==typeof r.type?S(r,e,n):E(n,r,r,o,r.__e,e));return e}function C(t,e){return e=e||[],null==t||"boolean"==typeof t||(Array.isArray(t)?t.some((function(t){C(t,e)})):e.push(t)),e}function E(t,e,n,r,o,i){var u,c,s;if(void 0!==e.__d)u=e.__d,e.__d=void 0;else if(null==n||o!=i||null==o.parentNode)t:if(null==i||i.parentNode!==t)t.appendChild(o),u=null;else{for(c=i,s=0;(c=c.nextSibling)&&s<r.length;s+=2)if(c==o)break t;t.insertBefore(o,i),u=i}return void 0!==u?u:o.nextSibling}function k(t,e,n){"-"===e[0]?t.setProperty(e,n):t[e]=null==n?"":"number"!=typeof n||p.test(e)?n:n+"px"}function M(t,e,n,r,o){var i;t:if("style"===e)if("string"==typeof n)t.style.cssText=n;else{if("string"==typeof r&&(t.style.cssText=r=""),r)for(e in r)n&&e in n||k(t.style,e,"");if(n)for(e in n)r&&n[e]===r[e]||k(t.style,e,n[e])}else if("o"===e[0]&&"n"===e[1])i=e!==(e=e.replace(/Capture$/,"")),e=e.toLowerCase()in t?e.toLowerCase().slice(2):e.slice(2),t.l||(t.l={}),t.l[e+i]=n,n?r||t.addEventListener(e,i?j:T,i):t.removeEventListener(e,i?j:T,i);else if("dangerouslySetInnerHTML"!==e){if(o)e=e.replace(/xlink[H:h]/,"h").replace(/sName$/,"s");else if("href"!==e&&"list"!==e&&"form"!==e&&"tabIndex"!==e&&"download"!==e&&e in t)try{t[e]=null==n?"":n;break t}catch(t){}"function"==typeof n||(null!=n&&(!1!==n||"a"===e[0]&&"r"===e[1])?t.setAttribute(e,n):t.removeAttribute(e))}}function T(t){this.l[t.type+!1](o.event?o.event(t):t)}function j(t){this.l[t.type+!0](o.event?o.event(t):t)}function N(t,e,n,r,i,u,c,s,a){var f,l,p,d,h,v,y,g,w,x,P,S=e.type;if(void 0!==e.constructor)return null;null!=n.__h&&(a=n.__h,s=e.__e=n.__e,e.__h=null,u=[s]),(f=o.__b)&&f(e);try{t:if("function"==typeof S){if(g=e.props,w=(f=S.contextType)&&r[f.__c],x=f?w?w.props.value:f.__:r,n.__c?y=(l=e.__c=n.__c).__=l.__E:("prototype"in S&&S.prototype.render?e.__c=l=new S(g,x):(e.__c=l=new b(g,x),l.constructor=S,l.render=Z),w&&w.sub(l),l.props=g,l.state||(l.state={}),l.context=x,l.__n=r,p=l.__d=!0,l.__h=[]),null==l.__s&&(l.__s=l.state),null!=S.getDerivedStateFromProps&&(l.__s==l.state&&(l.__s=_({},l.__s)),_(l.__s,S.getDerivedStateFromProps(g,l.__s))),d=l.props,h=l.state,p)null==S.getDerivedStateFromProps&&null!=l.componentWillMount&&l.componentWillMount(),null!=l.componentDidMount&&l.__h.push(l.componentDidMount);else{if(null==S.getDerivedStateFromProps&&g!==d&&null!=l.componentWillReceiveProps&&l.componentWillReceiveProps(g,x),!l.__e&&null!=l.shouldComponentUpdate&&!1===l.shouldComponentUpdate(g,l.__s,x)||e.__v===n.__v){l.props=g,l.state=l.__s,e.__v!==n.__v&&(l.__d=!1),l.__v=e,e.__e=n.__e,e.__k=n.__k,e.__k.forEach((function(t){t&&(t.__=e)})),l.__h.length&&c.push(l);break t}null!=l.componentWillUpdate&&l.componentWillUpdate(g,l.__s,x),null!=l.componentDidUpdate&&l.__h.push((function(){l.componentDidUpdate(d,h,v)}))}l.context=x,l.props=g,l.state=l.__s,(f=o.__r)&&f(e),l.__d=!1,l.__v=e,l.__P=t,f=l.render(l.props,l.state,l.context),l.state=l.__s,null!=l.getChildContext&&(r=_(_({},r),l.getChildContext())),p||null==l.getSnapshotBeforeUpdate||(v=l.getSnapshotBeforeUpdate(d,h)),P=null!=f&&f.type===m&&null==f.key?f.props.children:f,O(t,Array.isArray(P)?P:[P],e,n,r,i,u,c,s,a),l.base=e.__e,e.__h=null,l.__h.length&&c.push(l),y&&(l.__E=l.__=null),l.__e=!1}else null==u&&e.__v===n.__v?(e.__k=n.__k,e.__e=n.__e):e.__e=A(n.__e,e,n,r,i,u,c,a);(f=o.diffed)&&f(e)}catch(t){e.__v=null,(a||null!=u)&&(e.__e=s,e.__h=!!a,u[u.indexOf(s)]=null),o.__e(t,e,n)}}function R(t,e){o.__c&&o.__c(e,t),t.some((function(e){try{t=e.__h,e.__h=[],t.some((function(t){t.call(e)}))}catch(t){o.__e(t,e.__v)}}))}function A(t,e,n,o,i,u,c,s){var a,l,p,_=n.props,h=e.props,v=e.type,y=0;if("svg"===v&&(i=!0),null!=u)for(;y<u.length;y++)if((a=u[y])&&(a===t||(v?a.localName==v:3==a.nodeType))){t=a,u[y]=null;break}if(null==t){if(null===v)return document.createTextNode(h);t=i?document.createElementNS("http://www.w3.org/2000/svg",v):document.createElement(v,h.is&&h),u=null,s=!1}if(null===v)_===h||s&&t.data===h||(t.data=h);else{if(u=u&&r.call(t.childNodes),l=(_=n.props||f).dangerouslySetInnerHTML,p=h.dangerouslySetInnerHTML,!s){if(null!=u)for(_={},y=0;y<t.attributes.length;y++)_[t.attributes[y].name]=t.attributes[y].value;(p||l)&&(p&&(l&&p.__html==l.__html||p.__html===t.innerHTML)||(t.innerHTML=p&&p.__html||""))}if(function(t,e,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in e||M(t,i,null,n[i],r);for(i in e)o&&"function"!=typeof e[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===e[i]||M(t,i,e[i],n[i],r)}(t,h,_,i,s),p)e.__k=[];else if(y=e.props.children,O(t,Array.isArray(y)?y:[y],e,n,o,i&&"foreignObject"!==v,u,c,u?u[0]:n.__k&&g(n,0),s),null!=u)for(y=u.length;y--;)null!=u[y]&&d(u[y]);s||("value"in h&&void 0!==(y=h.value)&&(y!==t.value||"progress"===v&&!y)&&M(t,"value",y,_.value,!1),"checked"in h&&void 0!==(y=h.checked)&&y!==t.checked&&M(t,"checked",y,_.checked,!1))}return t}function Y(t,e,n){try{"function"==typeof t?t(e):t.current=e}catch(t){o.__e(t,n)}}function D(t,e,n){var r,i;if(o.unmount&&o.unmount(t),(r=t.ref)&&(r.current&&r.current!==t.__e||Y(r,null,e)),null!=(r=t.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(t){o.__e(t,e)}r.base=r.__P=null}if(r=t.__k)for(i=0;i<r.length;i++)r[i]&&D(r[i],e,"function"!=typeof t.type);n||null==t.__e||d(t.__e),t.__e=t.__d=void 0}function Z(t,e,n){return this.constructor(t,n)}function U(t,e,n){var i,u,c;o.__&&o.__(t,e),u=(i="function"==typeof n)?null:n&&n.__k||e.__k,c=[],N(e,t=(!i&&n||e).__k=h(m,null,[t]),u||f,f,void 0!==e.ownerSVGElement,!i&&n?[n]:u?null:e.firstChild?r.call(e.childNodes):null,c,!i&&n?n:u?u.__e:e.firstChild,i),R(c,t)}function I(t,e){U(t,e,I)}function $(t,e,n){var o,i,u,c=_({},t.props);for(u in e)"key"==u?o=e[u]:"ref"==u?i=e[u]:c[u]=e[u];return arguments.length>2&&(c.children=arguments.length>3?r.call(arguments,2):n),v(t.type,c,o||t.key,i||t.ref,null)}function H(t,e){var n={__c:e="__cC"+a++,__:t,Consumer:function(t,e){return t.children(e)},Provider:function(t){var n,r;return this.getChildContext||(n=[],(r={})[e]=this,this.getChildContext=function(){return r},this.shouldComponentUpdate=function(t){this.props.value!==t.value&&n.some(x)},this.sub=function(t){n.push(t);var e=t.componentWillUnmount;t.componentWillUnmount=function(){n.splice(n.indexOf(t),1),e&&e.call(t)}}),t.children}};return n.Provider.__=n.Consumer.contextType=n}r=l.slice,o={__e:function(t,e){for(var n,r,o;e=e.__;)if((n=e.__c)&&!n.__)try{if((r=n.constructor)&&null!=r.getDerivedStateFromError&&(n.setState(r.getDerivedStateFromError(t)),o=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(t),o=n.__d),o)return n.__E=n}catch(e){t=e}throw t}},i=0,b.prototype.setState=function(t,e){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=_({},this.state),"function"==typeof t&&(t=t(_({},n),this.props)),t&&_(n,t),null!=t&&this.__v&&(e&&this.__h.push(e),x(this))},b.prototype.forceUpdate=function(t){this.__v&&(this.__e=!0,t&&this.__h.push(t),x(this))},b.prototype.render=m,u=[],c="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,P.__r=0,a=0},426:function(t,e,n){"use strict";n.d(e,{eJ:function(){return h},_Y:function(){return v},d4:function(){return y},bt:function(){return m},sO:function(){return b},aP:function(){return g},Ye:function(){return w},I4:function(){return x},qp:function(){return P},Qb:function(){return O}});var r,o,i,u=n(2695),c=0,s=[],a=u.YM.__b,f=u.YM.__r,l=u.YM.diffed,p=u.YM.__c,_=u.YM.unmount;function d(t,e){u.YM.__h&&u.YM.__h(o,t,c||e),c=0;var n=o.__H||(o.__H={__:[],__h:[]});return t>=n.__.length&&n.__.push({}),n.__[t]}function h(t){return c=1,v(T,t)}function v(t,e,n){var i=d(r++,2);return i.t=t,i.__c||(i.__=[n?n(e):T(void 0,e),function(t){var e=i.t(i.__[0],t);i.__[0]!==e&&(i.__=[e,i.__[1]],i.__c.setState({}))}],i.__c=o),i.__}function y(t,e){var n=d(r++,3);!u.YM.__s&&M(n.__H,e)&&(n.__=t,n.__H=e,o.__H.__h.push(n))}function m(t,e){var n=d(r++,4);!u.YM.__s&&M(n.__H,e)&&(n.__=t,n.__H=e,o.__h.push(n))}function b(t){return c=5,w((function(){return{current:t}}),[])}function g(t,e,n){c=6,m((function(){"function"==typeof t?t(e()):t&&(t.current=e())}),null==n?n:n.concat(t))}function w(t,e){var n=d(r++,7);return M(n.__H,e)&&(n.__=t(),n.__H=e,n.__h=t),n.__}function x(t,e){return c=8,w((function(){return t}),e)}function P(t){var e=o.context[t.__c],n=d(r++,9);return n.c=t,e?(null==n.__&&(n.__=!0,e.sub(o)),e.props.value):t.__}function O(t,e){u.YM.useDebugValue&&u.YM.useDebugValue(e?e(t):t)}function S(){s.forEach((function(t){if(t.__P)try{t.__H.__h.forEach(E),t.__H.__h.forEach(k),t.__H.__h=[]}catch(e){t.__H.__h=[],u.YM.__e(e,t.__v)}})),s=[]}u.YM.__b=function(t){o=null,a&&a(t)},u.YM.__r=function(t){f&&f(t),r=0;var e=(o=t.__c).__H;e&&(e.__h.forEach(E),e.__h.forEach(k),e.__h=[])},u.YM.diffed=function(t){l&&l(t);var e=t.__c;e&&e.__H&&e.__H.__h.length&&(1!==s.push(e)&&i===u.YM.requestAnimationFrame||((i=u.YM.requestAnimationFrame)||function(t){var e,n=function(){clearTimeout(r),C&&cancelAnimationFrame(e),setTimeout(t)},r=setTimeout(n,100);C&&(e=requestAnimationFrame(n))})(S)),o=null},u.YM.__c=function(t,e){e.some((function(t){try{t.__h.forEach(E),t.__h=t.__h.filter((function(t){return!t.__||k(t)}))}catch(n){e.some((function(t){t.__h&&(t.__h=[])})),e=[],u.YM.__e(n,t.__v)}})),p&&p(t,e)},u.YM.unmount=function(t){_&&_(t);var e=t.__c;if(e&&e.__H)try{e.__H.__.forEach(E)}catch(t){u.YM.__e(t,e.__v)}};var C="function"==typeof requestAnimationFrame;function E(t){var e=o;"function"==typeof t.__c&&t.__c(),o=e}function k(t){var e=o;t.__c=t.__(),o=e}function M(t,e){return!t||t.length!==e.length||e.some((function(e,n){return e!==t[n]}))}function T(t,e){return"function"==typeof e?e(t):e}},9587:function(t,e,n){"use strict";var r=n(5843);function o(){}function i(){}i.resetWarningCache=o,t.exports=function(){function t(t,e,n,o,i,u){if(u!==r){var c=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 c.name="Invariant Violation",c}}function e(){return t}t.isRequired=t;var n={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:i,resetWarningCache:o};return n.PropTypes=n,n}},1268:function(t,e,n){t.exports=n(9587)()},5843:function(t){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},8118:function(t,e){"use strict";var n=Object.prototype,r=n.toString,o=n.hasOwnProperty,i="[object Object]",u="[object Array]";function c(t,e){return null!=t?t+"["+e+"]":e}e.x=function t(e,n,s){var a=r.call(e);if(void 0===s)if(a===i)s={};else{if(a!==u)return;s=[]}for(var f in e)if(o.call(e,f)){var l=e[f];if(null!=l)switch(r.call(l)){case u:case i:t(l,c(n,f),s);break;default:s[c(n,f)]=l}}return s}},4090:function(t,e,n){"use strict";function r(t,e){var n,r,o,i="";for(n in t)if(void 0!==(o=t[n]))if(Array.isArray(o))for(r=0;r<o.length;r++)i&&(i+="&"),i+=encodeURIComponent(n)+"="+encodeURIComponent(o[r]);else i&&(i+="&"),i+=encodeURIComponent(n)+"="+encodeURIComponent(o);return(e||"")+i}n.d(e,{c:function(){return r}})},6462:function(t,e){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,u=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,a=n?Symbol.for("react.context"):60110,f=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,_=n?Symbol.for("react.suspense"):60113,d=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,v=n?Symbol.for("react.lazy"):60116,y=n?Symbol.for("react.block"):60121,m=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,g=n?Symbol.for("react.scope"):60119;function w(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case f:case l:case i:case c:case u:case _:return t;default:switch(t=t&&t.$$typeof){case a:case p:case v:case h:case s:return t;default:return e}}case o:return e}}}function x(t){return w(t)===l}e.AsyncMode=f,e.ConcurrentMode=l,e.ContextConsumer=a,e.ContextProvider=s,e.Element=r,e.ForwardRef=p,e.Fragment=i,e.Lazy=v,e.Memo=h,e.Portal=o,e.Profiler=c,e.StrictMode=u,e.Suspense=_,e.isAsyncMode=function(t){return x(t)||w(t)===f},e.isConcurrentMode=x,e.isContextConsumer=function(t){return w(t)===a},e.isContextProvider=function(t){return w(t)===s},e.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.isForwardRef=function(t){return w(t)===p},e.isFragment=function(t){return w(t)===i},e.isLazy=function(t){return w(t)===v},e.isMemo=function(t){return w(t)===h},e.isPortal=function(t){return w(t)===o},e.isProfiler=function(t){return w(t)===c},e.isStrictMode=function(t){return w(t)===u},e.isSuspense=function(t){return w(t)===_},e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===c||t===u||t===_||t===d||"object"==typeof t&&null!==t&&(t.$$typeof===v||t.$$typeof===h||t.$$typeof===s||t.$$typeof===a||t.$$typeof===p||t.$$typeof===m||t.$$typeof===b||t.$$typeof===g||t.$$typeof===y)},e.typeOf=w},364:function(t,e,n){"use strict";t.exports=n(6462)},1992:function(t,e,n){"use strict";n.d(e,{E:function(){return r}});var r=n(5151).ZP.createContext(null)},2054:function(t,e,n){"use strict";var r=n(1446),o=n(5151),i=n(1268),u=n.n(i),c=n(1992),s=function(t){function e(e){var n;n=t.call(this,e)||this;var r=e.store;return n.state={storeState:r.getState(),store:r},n}(0,r.Z)(e,t);var n=e.prototype;return n.componentDidMount=function(){this._isMounted=!0,this.subscribe()},n.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},n.componentDidUpdate=function(t){this.props.store!==t.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},n.subscribe=function(){var t=this,e=this.props.store;this.unsubscribe=e.subscribe((function(){var n=e.getState();t._isMounted&&t.setState((function(t){return t.storeState===n?null:{storeState:n}}))}));var n=e.getState();n!==this.state.storeState&&this.setState({storeState:n})},n.render=function(){var t=this.props.context||c.E;return o.ZP.createElement(t.Provider,{value:this.state},this.props.children)},e}(o.wA);s.propTypes={store:u().shape({subscribe:u().func.isRequired,dispatch:u().func.isRequired,getState:u().func.isRequired}),context:u().object,children:u().any},e.Z=s},4193:function(t,e,n){"use strict";n.d(e,{Z:function(){return d}});var r=n(5303),o=n(1446),i=n(988),u=n(5343),c=n(3266),s=n.n(c),a=n(4546),f=n.n(a),l=n(5151),p=n(364),_=n(1992);function d(t,e){void 0===e&&(e={});var n=e,c=n.getDisplayName,a=void 0===c?function(t){return"ConnectAdvanced("+t+")"}:c,d=n.methodName,h=void 0===d?"connectAdvanced":d,v=n.renderCountProp,y=void 0===v?void 0:v,m=n.shouldHandleStateChanges,b=void 0===m||m,g=n.storeKey,w=void 0===g?"store":g,x=n.withRef,P=void 0!==x&&x,O=n.forwardRef,S=void 0!==O&&O,C=n.context,E=void 0===C?_.E:C,k=(0,u.Z)(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);f()(void 0===y,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),f()(!P,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var M="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";f()("store"===w,"storeKey has been removed and does not do anything. "+M);var T=E;return function(e){var n=e.displayName||e.name||"Component",u=a(n),c=(0,i.Z)({},k,{getDisplayName:a,methodName:h,renderCountProp:y,shouldHandleStateChanges:b,storeKey:w,displayName:u,wrappedComponentName:n,WrappedComponent:e}),_=k.pure,d=l.wA;_&&(d=l.Vx);var v=function(n){function s(e){var o,u,c,s,a,p,d,h,v,y,m;return o=n.call(this,e)||this,f()(S?!e.wrapperProps[w]:!e[w],"Passing redux store in props has been removed and does not do anything. "+M),o.selectDerivedProps=function(e,n,r,o){if(_&&u===n&&c===e)return s;r===a&&p===o||(a=r,p=o,d=t(r.dispatch,o)),u=n,c=e;var i=d(e,n);return s=i},o.selectChildElement=function(t,e,n){return e===h&&n===v&&m===t||(h=e,v=n,m=t,y=l.ZP.createElement(t,(0,i.Z)({},e,{ref:n}))),y},o.indirectRenderWrappedComponent=o.indirectRenderWrappedComponent.bind((0,r.Z)(o)),o}(0,o.Z)(s,n);var a=s.prototype;return a.indirectRenderWrappedComponent=function(t){return this.renderWrappedComponent(t)},a.renderWrappedComponent=function(t){f()(t,'Could not find "store" in the context of "'+u+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+u+" in connect options.");var n,r=t.storeState,o=t.store,i=this.props;S&&(i=this.props.wrapperProps,n=this.props.forwardedRef);var s=this.selectDerivedProps(r,i,o,c);return this.selectChildElement(e,s,n)},a.render=function(){var t=this.props.context&&this.props.context.Consumer&&(0,p.isContextConsumer)(l.ZP.createElement(this.props.context.Consumer,null))?this.props.context:T;return l.ZP.createElement(t.Consumer,null,this.indirectRenderWrappedComponent)},s}(d);if(v.WrappedComponent=e,v.displayName=u,S){var m=l.ZP.forwardRef((function(t,e){return l.ZP.createElement(v,{wrapperProps:t,forwardedRef:e})}));return m.displayName=u,m.WrappedComponent=e,s()(m,e)}return s()(v,e)}}},8274:function(t,e,n){"use strict";var r,o,i,u,c,s,a,f,l,p,_,d,h=n(988),v=n(5343),y=n(4193),m=n(7110),b=n(214),g=n(6150),w=n(4262),x=n(7189);function P(t,e,n){for(var r=e.length-1;r>=0;r--){var o=e[r](t);if(o)return o}return function(e,r){throw new Error("Invalid value of type "+typeof t+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function O(t,e){return t===e}e.Z=(i=(o=void 0===r?{}:r).connectHOC,u=void 0===i?y.Z:i,c=o.mapStateToPropsFactories,s=void 0===c?g.ZP:c,a=o.mapDispatchToPropsFactories,f=void 0===a?b.ZP:a,l=o.mergePropsFactories,p=void 0===l?w.ZP:l,_=o.selectorFactory,d=void 0===_?x.ZP:_,function(t,e,n,r){void 0===r&&(r={});var o=r,i=o.pure,c=void 0===i||i,a=o.areStatesEqual,l=void 0===a?O:a,_=o.areOwnPropsEqual,y=void 0===_?m.Z:_,b=o.areStatePropsEqual,g=void 0===b?m.Z:b,w=o.areMergedPropsEqual,x=void 0===w?m.Z:w,S=(0,v.Z)(o,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),C=P(t,s,"mapStateToProps"),E=P(e,f,"mapDispatchToProps"),k=P(n,p,"mergeProps");return u(d,(0,h.Z)({methodName:"connect",getDisplayName:function(t){return"Connect("+t+")"},shouldHandleStateChanges:Boolean(t),initMapStateToProps:C,initMapDispatchToProps:E,initMergeProps:k,pure:c,areStatesEqual:l,areOwnPropsEqual:y,areStatePropsEqual:g,areMergedPropsEqual:x},S))})},214:function(t,e,n){"use strict";var r=n(4978),o=n(8821);e.ZP=[function(t){return"function"==typeof t?(0,o.xv)(t,"mapDispatchToProps"):void 0},function(t){return t?void 0:(0,o.dX)((function(t){return{dispatch:t}}))},function(t){return t&&"object"==typeof t?(0,o.dX)((function(e){return(0,r.DE)(t,e)})):void 0}]},6150:function(t,e,n){"use strict";var r=n(8821);e.ZP=[function(t){return"function"==typeof t?(0,r.xv)(t,"mapStateToProps"):void 0},function(t){return t?void 0:(0,r.dX)((function(){return{}}))}]},4262:function(t,e,n){"use strict";var r=n(988);function o(t,e,n){return(0,r.Z)({},n,t,e)}e.ZP=[function(t){return"function"==typeof t?function(t){return function(e,n){n.displayName;var r,o=n.pure,i=n.areMergedPropsEqual,u=!1;return function(e,n,c){var s=t(e,n,c);return u?o&&i(s,r)||(r=s):(u=!0,r=s),r}}}(t):void 0},function(t){return t?void 0:function(){return o}}]},7189:function(t,e,n){"use strict";n.d(e,{ZP:function(){return u}});var r=n(5343);function o(t,e,n,r){return function(o,i){return n(t(o,i),e(r,i),i)}}function i(t,e,n,r,o){var i,u,c,s,a,f=o.areStatesEqual,l=o.areOwnPropsEqual,p=o.areStatePropsEqual,_=!1;function d(o,_){var d,h,v=!l(_,u),y=!f(o,i);return i=o,u=_,v&&y?(c=t(i,u),e.dependsOnOwnProps&&(s=e(r,u)),a=n(c,s,u)):v?(t.dependsOnOwnProps&&(c=t(i,u)),e.dependsOnOwnProps&&(s=e(r,u)),a=n(c,s,u)):y?(d=t(i,u),h=!p(d,c),c=d,h&&(a=n(c,s,u)),a):a}return function(o,f){return _?d(o,f):(c=t(i=o,u=f),s=e(r,u),a=n(c,s,u),_=!0,a)}}function u(t,e){var n=e.initMapStateToProps,u=e.initMapDispatchToProps,c=e.initMergeProps,s=(0,r.Z)(e,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),a=n(t,s),f=u(t,s),l=c(t,s);return(s.pure?i:o)(a,f,l,t,s)}},8821:function(t,e,n){"use strict";function r(t){return function(e,n){var r=t(e,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function o(t){return null!==t.dependsOnOwnProps&&void 0!==t.dependsOnOwnProps?Boolean(t.dependsOnOwnProps):1!==t.length}function i(t,e){return function(e,n){n.displayName;var r=function(t,e){return r.dependsOnOwnProps?r.mapToProps(t,e):r.mapToProps(t)};return r.dependsOnOwnProps=!0,r.mapToProps=function(e,n){r.mapToProps=t,r.dependsOnOwnProps=o(t);var i=r(e,n);return"function"==typeof i&&(r.mapToProps=i,r.dependsOnOwnProps=o(i),i=r(e,n)),i},r}}n.d(e,{dX:function(){return r},xv:function(){return i}})},2620:function(t,e,n){"use strict";n.d(e,{zt:function(){return r.Z},$j:function(){return o.Z}});var r=n(2054),o=(n(4193),n(1992),n(8274))},7110:function(t,e,n){"use strict";n.d(e,{Z:function(){return i}});var r=Object.prototype.hasOwnProperty;function o(t,e){return t===e?0!==t||0!==e||1/t==1/e:t!=t&&e!=e}function i(t,e){if(o(t,e))return!0;if("object"!=typeof t||null===t||"object"!=typeof e||null===e)return!1;var n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(var u=0;u<n.length;u++)if(!r.call(e,n[u])||!o(t[n[u]],e[n[u]]))return!1;return!0}},4978:function(t,e,n){"use strict";n.d(e,{md:function(){return v},DE:function(){return l},UY:function(){return a},MT:function(){return c}});var r=n(3488),o=function(){return Math.random().toString(36).substring(7).split("").join(".")},i={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function u(t){if("object"!=typeof t||null===t)return!1;for(var e=t;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function c(t,e,n){var o;if("function"==typeof e&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof e&&void 0===n&&(n=e,e=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(c)(t,e)}if("function"!=typeof t)throw new Error("Expected the reducer to be a function.");var s=t,a=e,f=[],l=f,p=!1;function _(){l===f&&(l=f.slice())}function d(){if(p)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function h(t){if("function"!=typeof t)throw new Error("Expected the listener to be a function.");if(p)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var e=!0;return _(),l.push(t),function(){if(e){if(p)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");e=!1,_();var n=l.indexOf(t);l.splice(n,1),f=null}}}function v(t){if(!u(t))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(p)throw new Error("Reducers may not dispatch actions.");try{p=!0,a=s(a,t)}finally{p=!1}for(var e=f=l,n=0;n<e.length;n++){(0,e[n])()}return t}function y(t){if("function"!=typeof t)throw new Error("Expected the nextReducer to be a function.");s=t,v({type:i.REPLACE})}function m(){var t,e=h;return(t={subscribe:function(t){if("object"!=typeof t||null===t)throw new TypeError("Expected the observer to be an object.");function n(){t.next&&t.next(d())}return n(),{unsubscribe:e(n)}}})[r.Z]=function(){return this},t}return v({type:i.INIT}),(o={dispatch:v,subscribe:h,getState:d,replaceReducer:y})[r.Z]=m,o}function s(t,e){var n=e&&e.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+t+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function a(t){for(var e=Object.keys(t),n={},r=0;r<e.length;r++){var o=e[r];0,"function"==typeof t[o]&&(n[o]=t[o])}var u,c=Object.keys(n);try{!function(t){Object.keys(t).forEach((function(e){var n=t[e];if(void 0===n(void 0,{type:i.INIT}))throw new Error('Reducer "'+e+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:i.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+e+"\" returned undefined when probed with a random type. Don't try to handle "+i.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(t){u=t}return function(t,e){if(void 0===t&&(t={}),u)throw u;for(var r=!1,o={},i=0;i<c.length;i++){var a=c[i],f=n[a],l=t[a],p=f(l,e);if(void 0===p){var _=s(a,e);throw new Error(_)}o[a]=p,r=r||p!==l}return(r=r||c.length!==Object.keys(t).length)?o:t}}function f(t,e){return function(){return e(t.apply(this,arguments))}}function l(t,e){if("function"==typeof t)return f(t,e);if("object"!=typeof t||null===t)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===t?"null":typeof t)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in t){var o=t[r];"function"==typeof o&&(n[r]=f(o,e))}return n}function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _(t,e){var n=Object.keys(t);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(t)),e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n}function d(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?_(n,!0).forEach((function(e){p(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_(n).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function h(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return 0===e.length?function(t){return t}:1===e.length?e[0]:e.reduce((function(t,e){return function(){return t(e.apply(void 0,arguments))}}))}function v(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return function(t){return function(){var n=t.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=e.map((function(t){return t(o)}));return d({},n,{dispatch:r=h.apply(void 0,i)(n.dispatch)})}}}},2601:function(t){"use strict";function e(t,n){var r;if(Array.isArray(n))for(r=0;r<n.length;r++)e(t,n[r]);else for(r in n)t[r]=(t[r]||[]).concat(n[r])}t.exports=function(t){var n,r={};return e(r,t),(n=function(t){return function(e){return function(n){var o,i,u=r[n.type],c=e(n);if(u)for(o=0;o<u.length;o++)(i=u[o](n,t))&&t.dispatch(i);return c}}}).effects=r,n}},8211:function(t){"use strict";var e=256,n=[],r=window,o=Math.pow(e,6),i=Math.pow(2,52),u=2*i,c=255,s=Math.random;function a(t){var n,r=t.length,o=this,i=0,u=o.i=o.j=0,s=o.S=[];for(r||(t=[r++]);i<e;)s[i]=i++;for(i=0;i<e;i++)s[i]=s[u=c&u+t[i%r]+(n=s[i])],s[u]=n;(o.g=function(t){for(var n,r=0,i=o.i,u=o.j,s=o.S;t--;)n=s[i=c&i+1],r=r*e+s[c&(s[i]=s[u=c&u+n])+(s[u]=n)];return o.i=i,o.j=u,r})(e)}function f(t,e){var n,r=[],o=(typeof t)[0];if(e&&"o"==o)for(n in t)try{r.push(f(t[n],e-1))}catch(t){}return r.length?r:"s"==o?t:t+"\0"}function l(t,e){for(var n,r=t+"",o=0;o<r.length;)e[c&o]=c&(n^=19*e[c&o])+r.charCodeAt(o++);return _(e)}function p(t){try{return r.crypto.getRandomValues(t=new Uint8Array(e)),_(t)}catch(t){return[+new Date,r,r.navigator&&r.navigator.plugins,r.screen,_(n)]}}function _(t){return String.fromCharCode.apply(0,t)}t.exports=function(r,c){if(c&&!0===c.global)return c.global=!1,Math.random=t.exports(r,c),c.global=!0,Math.random;var s=c&&c.entropy||!1,d=[],h=(l(f(s?[r,_(n)]:0 in arguments?r:p(),3),d),new a(d));return l(_(h.S),n),function(){for(var t=h.g(6),n=o,r=0;t<i;)t=(t+r)*e,n*=e,r=h.g(1);for(;t>=u;)t/=2,n/=2,r>>>=1;return(t+r)/n}},t.exports.resetGlobal=function(){Math.random=s},l(Math.random(),n)},7078:function(t){var e=/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi;t.exports=function(t){return(t=t||"").replace(e,"").trim()}},3488:function(t,e,n){"use strict";var r,o=n(2752);t=n.hmd(t),r="undefined"!=typeof self?self:"undefined"!=typeof window||"undefined"!=typeof window?window:t;var i=(0,o.Z)(r);e.Z=i},2752:function(t,e,n){"use strict";function r(t){var e,n=t.Symbol;return"function"==typeof n?n.observable?e=n.observable:(e=n("observable"),n.observable=e):e="@@observable",e}n.d(e,{Z:function(){return r}})},8763:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});class r{constructor(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.size=0,this.ttl=e}has(t){return t in this.items}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){const e=this.items[t];delete this.items[t],this.size--,null!==e.prev&&(e.prev.next=e.next),null!==e.next&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}evict(){const t=this.first;return delete this.items[t.key],this.first=t.next,this.first.prev=null,this.size--,this}get(t){let e;if(this.has(t)){const n=this.items[t];this.ttl>0&&n.expiry<=(new Date).getTime()?this.delete(t):(e=n.value,this.set(t,e,!0))}return e}keys(){return Object.keys(this.items)}set(t,e){let n,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(r||this.has(t)){if(n=this.items[t],n.value=e,!1===r&&(n.expiry=this.ttl>0?(new Date).getTime()+this.ttl:this.ttl),this.last!==n){const t=this.last,e=n.next,r=n.prev;this.first===n&&(this.first=n.next),n.next=null,n.prev=this.last,t.next=n,null!==r&&(r.next=e),null!==e&&(e.prev=r)}}else this.max>0&&this.size===this.max&&this.evict(),n=this.items[t]={expiry:this.ttl>0?(new Date).getTime()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},1==++this.size?this.first=n:this.last.next=n;return this.last=n,this}}function o(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(isNaN(t)||t<0)throw new TypeError("Invalid max value");if(isNaN(e)||e<0)throw new TypeError("Invalid ttl value");return new r(t,e)}},5303:function(t,e,n){"use strict";function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}n.d(e,{Z:function(){return r}})},988:function(t,e,n){"use strict";function r(){return r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r.apply(this,arguments)}n.d(e,{Z:function(){return r}})},1446:function(t,e,n){"use strict";n.d(e,{Z:function(){return o}});var r=n(9112);function o(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,(0,r.Z)(t,e)}},5343:function(t,e,n){"use strict";function r(t,e){if(null==t)return{};var n,r,o={},i=Object.keys(t);for(r=0;r<i.length;r++)n=i[r],e.indexOf(n)>=0||(o[n]=t[n]);return o}n.d(e,{Z:function(){return r}})},9112:function(t,e,n){"use strict";function r(t,e){return r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},r(t,e)}n.d(e,{Z:function(){return r}})}}]); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/407.js.LICENSE.txt b/plugins/jetpack/_inc/build/instant-search/407.js.LICENSE.txt
new file mode 100644
index 00000000..6f6f2bb3
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/407.js.LICENSE.txt
@@ -0,0 +1,8 @@
+/** @license React v16.13.1
+ * react-is.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/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.asset.php b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.asset.php
new file mode 100644
index 00000000..536c4cbd
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-block-editor', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-url', 'wp-viewport'), 'version' => '1c8685eb594ea87b0560cda907fc2973'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.css b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.css
new file mode 100644
index 00000000..0ab37e66
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.css
@@ -0,0 +1 @@
+.jetpack-instant-search__overlay{background:rgba(29,35,39,.7);bottom:0;box-sizing:border-box;color:#00101c;font-size:16px;left:0;opacity:1;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:0;transition:opacity .1s ease-in;z-index:9999999999999}body.jps-theme-argent .jetpack-instant-search__overlay *{font-family:Helvetica,sans-serif}@media(max-width:767.98px){.jetpack-instant-search__overlay{padding:3em 1em}}@media(max-width:575.98px){.jetpack-instant-search__overlay{padding:0}}@media(min-width:768px){.jetpack-instant-search__overlay{padding:3em}}.jetpack-instant-search__overlay.is-hidden{background:transparent;opacity:0;visibility:hidden}.jetpack-instant-search__overlay *,.jetpack-instant-search__overlay :after,.jetpack-instant-search__overlay :before{box-sizing:inherit}@media print{.jetpack-instant-search__overlay.is-hidden{display:none}}.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)}.jetpack-instant-search__notice{font-size:14px;margin:1em 0;padding:.75em}.jetpack-instant-search__notice.jetpack-instant-search__notice--warning{background-color:#f5e6b3;color:#4f3500}.jetpack-instant-search__notice .gridicon{margin-right:.5em;margin-top:-5px;vertical-align:middle}.jetpack-instant-search__scroll-button{border:0;box-shadow:none;font-size:13px;outline:0}.jetpack-instant-search__search-sort{align-items:center;display:flex}.jetpack-instant-search__search-sort>label[for=jetpack-instant-search__search-sort-select]{flex-shrink:0;font-size:1em;font-weight:700;margin:0 .25em 0 0}.jetpack-instant-search__search-sort-with-links{font-size:13px}@media(max-width:575.98px){.jetpack-instant-search__search-sort-with-select{margin-right:1em;width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-sort-with-select{margin-right:0}}@media(min-width:992px){.jetpack-instant-search__search-sort-with-select{margin-top:-4px}}#jetpack-instant-search__search-sort-select{-webkit-appearance:auto;appearance:auto;background:#fff;border:1px solid #e6f1f5;border-radius:5px;color:#00101c;font-size:1em;height:inherit;padding:.25em}@media(max-width:575.98px){#jetpack-instant-search__search-sort-select{padding:.5em;width:100%}}.jetpack-instant-search__search-sort-option{color:#646970;cursor:pointer;padding:0 2px;text-decoration:none}.jetpack-instant-search__search-sort-option:after{color:#646970;content:"·";font-weight:400;padding-left:5px}.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:focus,.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:hover{text-decoration:none}.jetpack-instant-search__search-sort-option:last-child:after{content:""}.jetpack-instant-search__search-sort-option.is-selected{color:#044b7a;font-weight:600;text-decoration:none}.jetpack-instant-search__search-form-controls{align-items:center;display:flex;line-height:1.3;margin-left:56px;margin-right:56px;margin-top:16px;z-index:1}@media(max-width:991.98px){.jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:767.98px){.jetpack-instant-search__search-form-controls{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-form-controls{position:absolute;right:320px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{position:absolute;right:320px}}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-form-controls{right:0}.jetpack-instant-search__box{border-bottom:1px solid #e6f1f5;border-right:1px solid #e6f1f5}.jetpack-instant-search__box-label{align-items:center;display:flex;flex:0 0 100%;margin:0}input.jetpack-instant-search__box-input.search-field{-webkit-appearance:none;appearance:none;background:#fff;border:0;box-shadow:none;color:#3c434a;font-size:18px;height:60px;line-height:1;margin:0;max-width:none;padding:0 14px;text-indent:32px;vertical-align:middle}input.jetpack-instant-search__box-input.search-field:focus,input.jetpack-instant-search__box-input.search-field:hover{background:#fff;color:#00101c}input.jetpack-instant-search__box-input.search-field.search-field{letter-spacing:-.02em;padding-left:0;text-indent:0}.jetpack-instant-search__box-gridicon{align-items:center;display:flex;flex-shrink:0;height:60px;justify-content:center;left:0;position:relative;top:0;width:60px;z-index:1}.jetpack-instant-search__box-gridicon svg{fill:#646970}.jetpack-instant-search__box input[type=button]{word-wrap:normal;border:none;color:#646970;cursor:pointer;font-size:1em;font-weight:400;height:60px;line-height:1;margin:0 .25em 0 0;padding:0;text-decoration:none;text-shadow:none;text-transform:none;transition:all .1s linear;width:60px}.jetpack-instant-search__box input[type=button],.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{color:#3c434a}.jetpack-instant-search__box input[type=button]:focus{outline:1px dotted}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input{border:none;box-shadow:none;height:52px;outline-style:none;transition:color .15s ease-in-out,border-color .25s ease-in-out;width:100%}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:focus,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:hover{border:none;box-shadow:none;outline-style:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-button,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-decoration{appearance:none;-webkit-appearance:none;display:initial}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-cancel-button{display:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-clear,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-reveal{display:none}.jetpack-instant-search__path-breadcrumb{font-size:.9em;margin:0;max-width:calc(100vw - 2em);overflow-x:hidden;text-overflow:ellipsis}.jetpack-instant-search__path-breadcrumb-link{max-width:100%;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.jetpack-instant-search__path-breadcrumb-link:focus,.jetpack-instant-search__path-breadcrumb-link:hover{text-decoration:underline}.jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__path-breadcrumb-link{color:#3c434a}.jetpack-instant-search__search-result-comments{border-left:2px solid #f0f0f1;font-size:.9em;margin-left:8px;margin-top:16px;padding-left:16px;word-break:break-word}.jetpack-instant-search__search-result-comments .gridicon{margin-right:8px;vertical-align:middle}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title{margin-bottom:.4em}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title .gridicon{margin-right:8px}.jetpack-instant-search__search-result-minimal-cats-and-tags{display:flex;flex-flow:row wrap;font-size:.9375em}.jetpack-instant-search__search-result-minimal-cats,.jetpack-instant-search__search-result-minimal-tags{display:flex;flex-flow:row wrap;list-style-type:none;margin:0;padding:0}.jetpack-instant-search__search-result-minimal-cat,.jetpack-instant-search__search-result-minimal-tag{margin:0 .75em 0 0}.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag .gridicon{margin-right:.25em}.jetpack-instant-search__search-result-minimal-cat-text,.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag-text,.jetpack-instant-search__search-result-minimal-tag .gridicon{vertical-align:middle}.jetpack-instant-search__search-result-minimal-content{word-break:break-word}.jetpack-instant-search__search-result-expanded{display:flex;flex-flow:column}.jetpack-instant-search__search-result-expanded:last-child{margin-right:0}.jetpack-instant-search__search-result-expanded .jetpack-instant-search__search-result-expanded__title{width:100%}.jetpack-instant-search__search-result-expanded__path{color:#646970;font-size:.9375em;margin:0 0 .4em}.jetpack-instant-search__search-result-expanded__copy-container{max-width:100%}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__copy-container{width:calc(100% - 128px - 1em)}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__copy-container{width:auto}.jetpack-instant-search__search-result-expanded__content{color:#00101c;font-size:.9375em}.jetpack-instant-search__search-result-expanded__image-link{margin-left:1em}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-link{margin:0 auto .5em;order:-1}}.jetpack-instant-search__search-result-expanded__image-container{width:128px}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-container{width:256px}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__image-container{display:none}.jetpack-instant-search__search-result-expanded__image-container{position:relative}.jetpack-instant-search__search-result-expanded__image-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-expanded__image{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-expanded__content-container{display:flex;flex-flow:column}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__content-container{flex-flow:row nowrap}}.jetpack-instant-search__search-result-expanded__footer{display:flex;list-style-type:none;margin-left:0;margin-top:10px;padding-left:0}.jetpack-instant-search__search-result-expanded__footer li{margin-right:10px}.jetpack-instant-search__search-result-expanded__footer-blog-image{border-radius:2px;margin-right:3px;vertical-align:middle}.jetpack-instant-search__search-result-expanded__footer-blog{font-size:13px;font-style:normal;font-weight:600;line-height:180%}.jetpack-instant-search__search-result-expanded__footer-author:after,.jetpack-instant-search__search-result-expanded__footer-blog:after{color:#636363;content:"·";margin-left:10px}.jetpack-instant-search__search-result-expanded__footer-author,.jetpack-instant-search__search-result-expanded__footer-date{color:#636363;font-size:13px;font-style:normal;font-weight:400}.jetpack-instant-search__product-rating-stars .gridicon{fill:#f0c930;vertical-align:middle}.jetpack-instant-search a.jetpack-instant-search__product-rating-count{color:#646970;font-size:.9em;text-decoration:underline;vertical-align:text-top}.jetpack-instant-search__product-price-regular{color:#646970;padding-right:.25em}.jetpack-instant-search__search-results-list.is-format-product{display:flex;flex-wrap:wrap;margin-right:40px;padding:0 0 3em}@media(max-width:991.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-right:24px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-right:4px}}.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{display:flex;flex-direction:column;margin:0 16px 16px 0;position:relative;width:calc(50% - 16px)}@media(min-width:576px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:768px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:992px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:1200px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:1400px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(20% - 16px)}}.jetpack-instant-search__search-result>.jetpack-instant-search__search-result-product-img-link{display:block}.jetpack-instant-search__search-result-product-img-container{border-radius:5px;color:transparent;position:relative}.jetpack-instant-search__search-result-product-img-container.jetpack-instant-search__search-result-product-img-container--placeholder{background:#c3c4c7}.jetpack-instant-search__search-result-product-img-container .gridicon{fill:#fff}.jetpack-instant-search__search-result-product-img-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-product-img{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-product-img>.gridicon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.jetpack-instant-search__search-result-product-img>.gridicons-image{height:25%;width:25%}.jetpack-instant-search__search-result-product-img>.gridicons-block{height:50%;width:50%}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-product-title{font-size:1.25em;margin:.25em 0 0}.jetpack-instant-search__search-result-product-match{font-size:.9em;margin-top:.25em}.jetpack-instant-search__search-result-product-match mark{align-items:center;display:flex;font-weight:400}.jetpack-instant-search__search-result-product-match .gridicon{height:1em;margin-right:.25em;width:1em}.jetpack-instant-search__search-result{margin:0 0 2em}.jetpack-instant-search__search-result-title{font-size:1.6em;font-weight:400;line-height:1.35;margin:0;overflow-wrap:break-word}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link{text-decoration:none}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:focus,.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:hover{text-decoration:underline}.jetpack-instant-search__search-filters{position:relative}.jetpack-instant-search__search-filters>div{margin-top:1em}.jetpack-instant-search__search-filters-title{color:#00101c;display:block;font-weight:700;line-height:1.3}.jetpack-instant-search__clear-filters-link{line-height:1.3;margin:0;position:absolute;right:0;top:0}.jetpack-instant-search__search-filter-sub-heading{color:#646970;font-size:inherit;margin:0;padding:0}.jetpack-instant-search__search-filter-list{text-align:left}.jetpack-instant-search__search-filter-list>div{align-items:baseline;display:flex;margin-top:8px}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input{-webkit-appearance:checkbox;appearance:checkbox;background:none;border:none;cursor:pointer;height:auto;margin:0;top:1px;width:auto}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:before,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:before{display:none!important}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-label,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-label{color:inherit;cursor:pointer;display:inline-block;font-weight:400;margin:0 0 0 8px;padding:0;width:auto}.jetpack-instant-search__search-static-filter-list{font-size:.875rem;line-height:1.8}.jetpack-instant-search__widget-area-container{margin-bottom:2em}.jetpack-instant-search__jetpack-colophon{margin-bottom:2em;margin-top:2em;text-align:center}.jetpack-instant-search__jetpack-colophon-link{align-items:center;color:inherit;display:flex;text-decoration:none}.jetpack-instant-search__jetpack-colophon-logo{display:inline;height:16px;width:16px}.jetpack-instant-search__jetpack-colophon-text{color:#3c434a;font-size:.7em;font-weight:400;padding-left:6px}.jetpack-instant-search__sidebar{padding-top:14px}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget{background:none;border:none;margin:0;padding:0}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget a{font-weight:400}.jetpack-instant-search__sidebar h2.widgettitle{border:none;font-size:1.3em;margin:1em 0 .5em}.jetpack-instant-search__sidebar h2.widgettitle:after,.jetpack-instant-search__sidebar h2.widgettitle:before{display:none!important}.jetpack-instant-search__search-results{background:#fff;border-radius:3px;margin:0 auto;max-width:1080px;min-height:100%;position:relative;z-index:10}@media(max-width:575.98px){.jetpack-instant-search__search-results{border-radius:0}}@media(min-width:992px){.jetpack-instant-search__search-results{max-width:95%}}.jetpack-instant-search__search-results mark{background:#ffc;color:#00101c}.jetpack-instant-search__search-results-controls{display:flex}.jetpack-instant-search__search-results-content{display:flex;position:relative}.jetpack-instant-search__search-results-filter-button{align-items:center;border:0;color:#646970;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;margin:0;padding:8px;text-decoration:none;transition:background-color .25s ease-in-out}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-filter-button{visibility:hidden}@media(min-width:576px){.jetpack-instant-search__search-results-filter-button{font-size:13px;padding:10px 14px}}@media(min-width:992px){.jetpack-instant-search__search-results-filter-button{display:none}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:flex}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:none}}.jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__search-results-filter-button:hover{color:#00101c}.jetpack-instant-search__search-results-filter-button .gridicon{margin-left:4px}.jetpack-instant-search__search-results-primary{margin:0;max-width:calc(100% - 320px);width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-primary{max-width:100%}@media(max-width:991.98px){.jetpack-instant-search__search-results-primary{max-width:100%}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-primary{max-width:100%}}.jetpack-instant-search__search-results-secondary{background:none;border-left:1px solid #e6f1f5;border-radius:0;bottom:0;box-shadow:none;color:#00101c;display:block;flex:none;padding:0 32px;position:static;width:320px}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary{display:none}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:991.98px)and (max-width:575.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:1199.98px)and (max-width:575.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{color:#00101c;font-size:1em;font-weight:700;line-height:1.3;margin:1em 56px 1.5em;padding:0;word-break:break-word}@media(max-width:991.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title,.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-results-title{padding-right:210px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title{padding-right:210px}}.jetpack-instant-search__search-results-list{color:#00101c;list-style:none;margin-left:56px;margin-right:56px;padding:0}@media(max-width:991.98px){.jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list{margin-left:20px;margin-right:20px}}.jetpack-instant-search__search-results-list li:before{content:"​";height:1px;position:absolute;width:1px}.jetpack-instant-search__search-results-search-form{font-size:.8em;margin:0;top:0;width:100%}button.jetpack-instant-search__overlay-close{align-items:center;-webkit-appearance:none;appearance:none;background:none;background-color:transparent!important;border:none;border-bottom:1px solid #e6f1f5;box-shadow:none;cursor:pointer;display:flex;height:61px;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none;text-shadow:none;text-transform:none;width:60px}button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}button.jetpack-instant-search__overlay-close:focus{outline:1px dotted}button.jetpack-instant-search__overlay-close svg.gridicon{fill:#646970}button.jetpack-instant-search__overlay-close:active,button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{background-color:transparent!important;border-color:#e6f1f5}button.jetpack-instant-search__overlay-close:active svg.gridicon,button.jetpack-instant-search__overlay-close:focus svg.gridicon,button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#3c434a}.jetpack-instant-search__search-results-pagination{display:block;flex:none;margin:50px}.jetpack-instant-search .widget.widget_archive ul li a,.jetpack-instant-search .widget a,.jetpack-instant-search a{border:none;color:#001621;text-decoration:none}.jetpack-instant-search .widget.widget_archive ul li a:focus,.jetpack-instant-search .widget.widget_archive ul li a:hover,.jetpack-instant-search .widget a:focus,.jetpack-instant-search .widget a:hover,.jetpack-instant-search a:focus,.jetpack-instant-search a:hover{color:#044b7a;text-decoration:underline}.jetpack-search-filters-widget__filter-list{list-style-type:none}body.enable-search-modal .cover-modal.show-modal.search-modal.active{display:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark{background:rgba(29,35,39,.7);color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a{color:#f6f7f7}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:hover{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filters-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__content,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-list,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-unused-query{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__jetpack-colophon-text,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb-link{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filter-sub-heading,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__path{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box-gridicon svg,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close svg.gridicon{fill:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:focus svg.gridicon,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:hover{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field{background:#000;color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:hover{background:#000;color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results{background:#000}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results mark{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{color:#e6f1f5}@media(min-width:992px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{border-color:#3c434a}}@media(max-width:991.98px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#000;border-color:#3c434a;box-shadow:0 2px 3px #3c434a}}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option:after{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option.is-selected{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-product-img--placeholder{color:#2c3338}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark #jetpack-instant-search__search-sort-select{background:#000;border-color:#3c434a;color:#e6f1f5}.jp-search-configure-app-wrapper{flex-grow:1}.jp-search-configure-app-wrapper .jp-search-configure-loading-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.jp-search-configure-app-wrapper .jetpack-instant-search{background:#f0f0f0;padding-top:2em;position:absolute}.jp-search-configure-app-wrapper .jetpack-instant-search .jetpack-instant-search__search-results{max-width:none}.jp-search-configure-app-wrapper .jetpack-instant-search a:not(.jetpack-instant-search__search-sort-option){pointer-events:none}.jp-search-configure-save-button{margin-right:4px}.jp-search-configure-save-button:first-of-type{margin-left:auto}@media(min-width:600px){.jp-search-configure-save-button{margin-right:8px}}@media(min-width:782px){.jp-search-configure-sidebar .jp-search-configure-save-button{display:none}}.jp-search-configure-header{align-items:center;display:flex;height:48px;justify-content:space-between;overflow:auto;padding:0 16px}@media(min-width:782px){.jp-search-configure-header{height:60px}}@media(min-width:600px){.jp-search-configure-header{overflow:visible}}.jp-search-configure-header__navigable-toolbar-wrapper{align-items:center;display:flex;justify-content:center}.jp-search-configure-header__title{font-size:20px;margin:0 20px 0 0;padding:0}.jp-search-configure-header__actions{display:flex}@media(min-width:600px){.jp-search-configure-header__actions .components-button.jp-search-configure-header__show-settings-button{margin-right:8px}}@media(min-width:782px){.jp-search-configure-header__actions .components-button.jp-search-configure-header__show-settings-button{display:none;margin-left:0}}.jp-search-configure-color-input .component-color-indicator{vertical-align:middle}.jp-search-configure-color-input .block-editor-color-gradient-control fieldset>legend{margin-bottom:12px}.jp-search-configure-color-input .block-editor-color-gradient-control fieldset>legend>.block-editor-color-gradient-control__color-indicator{margin-bottom:0}.jp-search-configure-color-input .components-circular-option-picker__option-wrapper :focus:after{left:-4px;top:-4px}.jp-search-configure-color-input .components-circular-option-picker__option-wrapper .components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 14px!important}.jp-search-configure-sidebar-options--is-disabled .jp-search-configure-color-input .components-button{cursor:not-allowed;filter:grayscale(.8);pointer-events:none}.jp-search-configure-sidebar-options--is-disabled .jp-search-configure-color-input .components-circular-option-picker__option-wrapper:hover{transform:scale(1)}.jp-search-configure-excluded-post-types-control{margin-top:8px}.jp-search-configure-excluded-post-types-control .jp-search-configure-excluded-post-types-control__label{margin-bottom:8px}.jp-search-configure-excluded-post-types-control .components-notice{margin:8px 0;padding-bottom:4px;padding-top:4px}.components-panel__header.jp-search-configure-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:0;padding-right:12px}.components-panel__header.jp-search-configure-sidebar__panel-tabs ul{display:flex;height:100%}.components-panel__header.jp-search-configure-sidebar__panel-tabs li{margin:0}.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{margin-right:4px}@media(min-width:600px){.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{margin-right:12px}}@media(min-width:782px){.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{display:none}}.components-button.jp-search-configure-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-weight:400;height:49px;height:100%;margin-left:0;padding:3px 15px}.components-button.jp-search-configure-sidebar__panel-tab:after{speak:none;content:attr(data-label);display:block;font-weight:600;height:0;overflow:hidden;visibility:hidden}.components-button.jp-search-configure-sidebar__panel-tab.is-active{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) transparent,inset 0 -4px 0 0 var(--wp-admin-theme-color);font-weight:600;position:relative}.components-button.jp-search-configure-sidebar__panel-tab.is-active:before{border-bottom:4px solid transparent;bottom:1px;content:"";left:0;position:absolute;right:0;top:0}.components-button.jp-search-configure-sidebar__panel-tab:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.jp-search-configure-sidebar__panel-tab.is-active:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 -4px 0 0 var(--wp-admin-theme-color)}.jp-search-configure-sidebar-description{display:flex;padding:16px}.jp-search-configure-sidebar-description .block-editor-block-icon{margin-right:16px}.jp-search-configure-sidebar-options .components-base-control{margin-bottom:24px}.jp-search-configure-sidebar-options .components-base-control.components-checkbox-control,.jp-search-configure-sidebar-options .components-base-control.components-toggle-control,.jp-search-configure-sidebar-options .components-base-control:last-child{margin-bottom:0}.jp-search-configure-sidebar-options .components-checkbox-control__label{vertical-align:baseline}.jp-search-configure-result-format-radios{margin-bottom:1em}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons{display:flex;justify-content:space-around;margin-bottom:12px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button{display:flex;flex-direction:column;height:auto;padding-left:6px;padding-right:6px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button:first-child{margin-right:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button:last-child{margin-left:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button svg{border:2px solid #fff;border-radius:3px;margin-bottom:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button.jp-search-configure-theme-button--selected svg{border-color:#2f2f2f}.jp-search-configure-sidebar-options--is-disabled input{cursor:not-allowed;pointer-events:none}.jp-search-configure-sidebar-options--is-disabled input[type=checkbox],.jp-search-configure-sidebar-options--is-disabled input[type=radio]{background:#ddd;border-color:#ddd}.jp-search-configure-sidebar-options--is-disabled .components-radio-control__input[type=radio]:checked{background:#ccc;border-color:#ccc}.components-checkbox-control__input:disabled{background:#ddd;border-color:#ddd;cursor:not-allowed}#jp-search-configure .hide-if-no-js{height:100vh;margin:0;position:relative;text-align:center;width:100vw}#jp-search-configure .hide-if-no-js .jp-search-loader{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}#jp-search-configure .interface-interface-skeleton__header{background-color:#fff}.jp-search-configure-layout__body{display:flex;flex-grow:1;overflow:auto}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-panel-color-gradient-settings .component-color-indicator{vertical-align:text-bottom}.block-editor-panel-color-gradient-settings__panel-title .component-color-indicator{display:inline-block}.block-editor-panel-color-gradient-settings.is-opened .block-editor-panel-color-gradient-settings__panel-title .component-color-indicator{display:none}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px);justify-content:space-between}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-right:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media(min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-right:4px}.interface-complementary-area{background:#fff;color:#1e1e1e}@media(min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media(min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media(min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p{margin-top:0}.interface-complementary-area h2,.interface-complementary-area h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:auto;right:10px;top:auto}@media(min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-left:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media(min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;max-height:100%;position:fixed;right:0;top:46px}@media(min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{left:0}@media(min-width:783px){.interface-interface-skeleton{left:160px}.auto-fold .interface-interface-skeleton{left:36px}}@media(min-width:961px){.auto-fold .interface-interface-skeleton{left:160px}}.folded .interface-interface-skeleton{left:0}@media(min-width:783px){.folded .interface-interface-skeleton{left:36px}}body.is-fullscreen-mode .interface-interface-skeleton{left:0!important}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;display:block;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media(min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto;z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media(min-width:782px){.interface-interface-skeleton__sidebar{border-left:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-right:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;left:0;position:absolute;width:100%;z-index:90}@media(min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{bottom:auto;color:#1e1e1e;left:auto;position:fixed!important;right:0;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__actions:focus{bottom:0;top:auto}.interface-more-menu-dropdown{margin-left:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media(min-width:600px){.interface-more-menu-dropdown{margin-left:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media(min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px;width:auto}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex}.interface-pinned-items .components-button:not(:first-child){display:none}@media(min-width:600px){.interface-pinned-items .components-button:not(:first-child){display:flex}}.interface-pinned-items .components-button{margin-left:4px}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}html.wp-toolbar{background:#fff}#wpbody-content>.notice,#wpfooter,.jp-search-configure-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js
new file mode 100644
index 00000000..57a3b681
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js
@@ -0,0 +1,26 @@
+/*! For license information please see jp-search-configure-main.js.LICENSE.txt */
+!function(){var e={7538:function(e){e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.default=e.exports,e.exports.__esModule=!0},9183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},2607:function(e,t,r){"use strict";var n=r(9307);t.Z=function(e){let{icon:t,size:r=24,...s}=e;return(0,n.cloneElement)(t,{width:r,height:r,...s})}},8570:function(e,t,r){"use strict";var n=r(9307),s=r(444);const o=(0,n.createElement)(s.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},(0,n.createElement)(s.Path,{fillRule:"evenodd",d:"M10.289 4.836A1 1 0 0111.275 4h1.306a1 1 0 01.987.836l.244 1.466c.787.26 1.503.679 2.108 1.218l1.393-.522a1 1 0 011.216.437l.653 1.13a1 1 0 01-.23 1.273l-1.148.944a6.025 6.025 0 010 2.435l1.149.946a1 1 0 01.23 1.272l-.653 1.13a1 1 0 01-1.216.437l-1.394-.522c-.605.54-1.32.958-2.108 1.218l-.244 1.466a1 1 0 01-.987.836h-1.306a1 1 0 01-.986-.836l-.244-1.466a5.995 5.995 0 01-2.108-1.218l-1.394.522a1 1 0 01-1.217-.436l-.653-1.131a1 1 0 01.23-1.272l1.149-.946a6.026 6.026 0 010-2.435l-1.148-.944a1 1 0 01-.23-1.272l.653-1.131a1 1 0 011.217-.437l1.393.522a5.994 5.994 0 012.108-1.218l.244-1.466zM14.929 12a3 3 0 11-6 0 3 3 0 016 0z",clipRule:"evenodd"}));t.Z=o},2946:function(e,t,r){"use strict";var n=r(9307),s=r(444);const o=(0,n.createElement)(s.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},(0,n.createElement)(s.Path,{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.5h14c.3 0 .5.2.5.5v8.4l-3-2.9c-.3-.3-.8-.3-1 0L11.9 14 9 12c-.3-.2-.6-.2-.8 0l-3.6 2.6V5c-.1-.3.1-.5.4-.5zm14 15H5c-.3 0-.5-.2-.5-.5v-2.4l4.1-3 3 1.9c.3.2.7.2.9-.1L16 12l3.5 3.4V19c0 .3-.2.5-.5.5z"}));t.Z=o},9105:function(e,t){var r;!function(){"use strict";var n={}.hasOwnProperty;function s(){for(var e=[],t=0;t<arguments.length;t++){var r=arguments[t];if(r){var o=typeof r;if("string"===o||"number"===o)e.push(r);else if(Array.isArray(r)){if(r.length){var i=s.apply(null,r);i&&e.push(i)}}else if("object"===o)if(r.toString===Object.prototype.toString)for(var a in r)n.call(r,a)&&r[a]&&e.push(a);else e.push(r.toString())}}return e.join(" ")}e.exports?(s.default=s,e.exports=s):void 0===(r=function(){return s}.apply(t,[]))||(e.exports=r)}()},2213:function(e){!function(){"use strict";var t=[],r=3988292384;function n(e){var t,n,s,o,i=-1;for(t=0,s=e.length;t<s;t+=1){for(o=255&(i^e[t]),n=0;n<8;n+=1)1==(1&o)?o=o>>>1^r:o>>>=1;i=i>>>8^o}return-1^i}function s(e,r){var n,o,i;if(void 0!==s.crc&&r&&e||(s.crc=-1,e)){for(n=s.crc,o=0,i=e.length;o<i;o+=1)n=n>>>8^t[255&(n^e[o])];return s.crc=n,-1^n}}!function(){var e,n,s;for(n=0;n<256;n+=1){for(e=n,s=0;s<8;s+=1)1&e?e=r^e>>>1:e>>>=1;t[n]=e>>>0}}(),e.exports=function(e,t){var r;e="string"==typeof e?(r=e,Array.prototype.map.call(r,(function(e){return e.charCodeAt(0)}))):e;return((t?n(e):s(e))>>>0).toString(16)},e.exports.direct=n,e.exports.table=s}()},8027:function(e){"use strict";e.exports=function(e,t){t||(t={}),"function"==typeof t&&(t={cmp:t});var r,n="boolean"==typeof t.cycles&&t.cycles,s=t.cmp&&(r=t.cmp,function(e){return function(t,n){var s={key:t,value:e[t]},o={key:n,value:e[n]};return r(s,o)}}),o=[];return function e(t){if(t&&t.toJSON&&"function"==typeof t.toJSON&&(t=t.toJSON()),void 0!==t){if("number"==typeof t)return isFinite(t)?""+t:"null";if("object"!=typeof t)return JSON.stringify(t);var r,i;if(Array.isArray(t)){for(i="[",r=0;r<t.length;r++)r&&(i+=","),i+=e(t[r])||"null";return i+"]"}if(null===t)return"null";if(-1!==o.indexOf(t)){if(n)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var a=o.push(t)-1,c=Object.keys(t).sort(s&&s(t));for(i="",r=0;r<c.length;r++){var l=c[r],u=e(t[l]);u&&(i&&(i+=","),i+=JSON.stringify(l)+":"+u)}return o.splice(a,1),"{"+i+"}"}}(e)}},3266:function(e,t,r){"use strict";var n=r(364),s={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function c(e){return n.isMemo(e)?i:a[e.$$typeof]||s}a[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[n.Memo]=i;var l=Object.defineProperty,u=Object.getOwnPropertyNames,p=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,f=Object.prototype;e.exports=function e(t,r,n){if("string"!=typeof r){if(f){var s=d(r);s&&s!==f&&e(t,s,n)}var i=u(r);p&&(i=i.concat(p(r)));for(var a=c(t),m=c(r),g=0;g<i.length;++g){var y=i[g];if(!(o[y]||n&&n[y]||m&&m[y]||a&&a[y])){var v=h(r,y);try{l(t,y,v)}catch(e){}}}}return t}},4546:function(e){"use strict";e.exports=function(e,t,r,n,s,o,i,a){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,s,o,i,a],u=0;(c=new Error(t.replace(/%s/g,(function(){return l[u++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},2596:function(e,t,r){var n=r(2373).Symbol;e.exports=n},8644:function(e){e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,s=Array(n);++r<n;)s[r]=t(e[r],r,e);return s}},563:function(e,t,r){var n=r(2596),s=r(8703),o=r(888),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?s(e):o(e)}},6316:function(e,t,r){var n=r(2596),s=r(8644),o=r(163),i=r(1995),a=n?n.prototype:void 0,c=a?a.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(o(t))return s(t,e)+"";if(i(t))return c?c.call(t):"";var r=t+"";return"0"==r&&1/t==-Infinity?"-0":r}},1367:function(e,t,r){var n=r(4120),s=/^\s+/;e.exports=function(e){return e?e.slice(0,n(e)+1).replace(s,""):e}},2117:function(e){var t="object"==typeof window&&window&&window.Object===Object&&window;e.exports=t},8703:function(e,t,r){var n=r(2596),s=Object.prototype,o=s.hasOwnProperty,i=s.toString,a=n?n.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),r=e[a];try{e[a]=void 0;var n=!0}catch(e){}var s=i.call(e);return n&&(t?e[a]=r:delete e[a]),s}},888:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},2373:function(e,t,r){var n=r(2117),s="object"==typeof self&&self&&self.Object===Object&&self,o=n||s||Function("return this")();e.exports=o},4120:function(e){var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},5034:function(e,t,r){var n=r(7709),s=r(6987),o=r(5812),i=Math.max,a=Math.min;e.exports=function(e,t,r){var c,l,u,p,h,d,f=0,m=!1,g=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){var r=c,n=l;return c=l=void 0,f=t,p=e.apply(n,r)}function _(e){return f=e,h=setTimeout(b,t),m?v(e):p}function E(e){var r=e-d;return void 0===d||r>=t||r<0||g&&e-f>=u}function b(){var e=s();if(E(e))return w(e);h=setTimeout(b,function(e){var r=t-(e-d);return g?a(r,u-(e-f)):r}(e))}function w(e){return h=void 0,y&&c?v(e):(c=l=void 0,p)}function k(){var e=s(),r=E(e);if(c=arguments,l=this,d=e,r){if(void 0===h)return _(d);if(g)return clearTimeout(h),h=setTimeout(b,t),v(d)}return void 0===h&&(h=setTimeout(b,t)),p}return t=o(t)||0,n(r)&&(m=!!r.leading,u=(g="maxWait"in r)?i(o(r.maxWait)||0,t):u,y="trailing"in r?!!r.trailing:y),k.cancel=function(){void 0!==h&&clearTimeout(h),f=0,c=d=l=h=void 0},k.flush=function(){return void 0===h?p:w(s())},k}},163:function(e){var t=Array.isArray;e.exports=t},7709:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},3474:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},1995:function(e,t,r){var n=r(563),s=r(3474);e.exports=function(e){return"symbol"==typeof e||s(e)&&"[object Symbol]"==n(e)}},6987:function(e,t,r){var n=r(2373);e.exports=function(){return n.Date.now()}},5812:function(e,t,r){var n=r(1367),s=r(7709),o=r(1995),i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(s(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=s(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=a.test(e);return r||c.test(e)?l(e.slice(2),r?2:8):i.test(e)?NaN:+e}},7010:function(e,t,r){var n=r(6316);e.exports=function(e){return null==e?"":n(e)}},660:function(e,t,r){var n=r(7010),s=0;e.exports=function(e){var t=++s;return n(e)+t}},2002:function(e){var t=1e3,r=60*t,n=60*r,s=24*n,o=7*s,i=365.25*s;function a(e,t,r,n){var s=t>=1.5*r;return Math.round(e/r)+" "+n+(s?"s":"")}e.exports=function(e,c){c=c||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\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(!a)return;var c=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*i;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*s;case"hours":case"hour":case"hrs":case"hr":case"h":return c*n;case"minutes":case"minute":case"mins":case"min":case"m":return c*r;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===l&&isFinite(e))return c.long?function(e){var o=Math.abs(e);if(o>=s)return a(e,o,s,"day");if(o>=n)return a(e,o,n,"hour");if(o>=r)return a(e,o,r,"minute");if(o>=t)return a(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=s)return Math.round(e/s)+"d";if(o>=n)return Math.round(e/n)+"h";if(o>=r)return Math.round(e/r)+"m";if(o>=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))}},278:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(2213),s=r.n(n),o=r(8211),i=r.n(o),a=r(8468),c=r.n(a)()("photon"),l={width:"w",height:"h",letterboxing:"lb",removeLetterboxing:"ulb"},u="__domain__.invalid",p="http://".concat(u);function h(e,t){var r;try{r=new URL(e,p)}catch(e){return null}var n,o,a,h,d,f="https:"===r.protocol,m=new URL("https://i0.wp.com");if(d=r.host,/^i[0-2]\.wp\.com$/.test(d))m.pathname=r.pathname,m.hostname=r.hostname;else{if(r.search)return null;var g=r.href.replace("".concat(r.protocol,"/"),"");"blob:"===r.protocol&&(g=r.pathname.replace("://","//")),r.hostname===u&&(g=r.pathname),m.pathname=g,m.hostname=(n=g,o=s()(n),a=i()(o),h="i"+Math.floor(3*a()),c('determined server "%s" to use with "%s"',h,n),h+".wp.com"),f&&m.searchParams.set("ssl",1)}if(t)for(var y in t)"host"!==y&&"hostname"!==y?"secure"!==y||t[y]?m.searchParams.set(l[y]||y,t[y]):m.protocol="http:":m.hostname=t[y];return c("generated Photon URL: %s",m.href),m.href}},9587:function(e,t,r){"use strict";var n=r(5843);function s(){}function o(){}o.resetWarningCache=s,e.exports=function(){function e(e,t,r,s,o,i){if(i!==n){var a=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 a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var r={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:o,resetWarningCache:s};return r.PropTypes=r,r}},1268:function(e,t,r){e.exports=r(9587)()},5843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},8118:function(e,t){"use strict";var r=Object.prototype,n=r.toString,s=r.hasOwnProperty,o="[object Object]",i="[object Array]";function a(e,t){return null!=e?e+"["+t+"]":t}t.x=function e(t,r,c){var l=n.call(t);if(void 0===c)if(l===o)c={};else{if(l!==i)return;c=[]}for(var u in t)if(s.call(t,u)){var p=t[u];if(null!=p)switch(n.call(p)){case i:case o:e(p,a(r,u),c);break;default:c[a(r,u)]=p}}return c}},4090:function(e,t,r){"use strict";function n(e,t){var r,n,s,o="";for(r in e)if(void 0!==(s=e[r]))if(Array.isArray(s))for(n=0;n<s.length;n++)o&&(o+="&"),o+=encodeURIComponent(r)+"="+encodeURIComponent(s[n]);else o&&(o+="&"),o+=encodeURIComponent(r)+"="+encodeURIComponent(s);return(t||"")+o}r.d(t,{c:function(){return n}})},6462:function(e,t){"use strict";var r="function"==typeof Symbol&&Symbol.for,n=r?Symbol.for("react.element"):60103,s=r?Symbol.for("react.portal"):60106,o=r?Symbol.for("react.fragment"):60107,i=r?Symbol.for("react.strict_mode"):60108,a=r?Symbol.for("react.profiler"):60114,c=r?Symbol.for("react.provider"):60109,l=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,p=r?Symbol.for("react.concurrent_mode"):60111,h=r?Symbol.for("react.forward_ref"):60112,d=r?Symbol.for("react.suspense"):60113,f=r?Symbol.for("react.suspense_list"):60120,m=r?Symbol.for("react.memo"):60115,g=r?Symbol.for("react.lazy"):60116,y=r?Symbol.for("react.block"):60121,v=r?Symbol.for("react.fundamental"):60117,_=r?Symbol.for("react.responder"):60118,E=r?Symbol.for("react.scope"):60119;function b(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case u:case p:case o:case a:case i:case d:return e;default:switch(e=e&&e.$$typeof){case l:case h:case g:case m:case c:return e;default:return t}}case s:return t}}}function w(e){return b(e)===p}t.AsyncMode=u,t.ConcurrentMode=p,t.ContextConsumer=l,t.ContextProvider=c,t.Element=n,t.ForwardRef=h,t.Fragment=o,t.Lazy=g,t.Memo=m,t.Portal=s,t.Profiler=a,t.StrictMode=i,t.Suspense=d,t.isAsyncMode=function(e){return w(e)||b(e)===u},t.isConcurrentMode=w,t.isContextConsumer=function(e){return b(e)===l},t.isContextProvider=function(e){return b(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===n},t.isForwardRef=function(e){return b(e)===h},t.isFragment=function(e){return b(e)===o},t.isLazy=function(e){return b(e)===g},t.isMemo=function(e){return b(e)===m},t.isPortal=function(e){return b(e)===s},t.isProfiler=function(e){return b(e)===a},t.isStrictMode=function(e){return b(e)===i},t.isSuspense=function(e){return b(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===p||e===a||e===i||e===d||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===c||e.$$typeof===l||e.$$typeof===h||e.$$typeof===v||e.$$typeof===_||e.$$typeof===E||e.$$typeof===y)},t.typeOf=b},364:function(e,t,r){"use strict";e.exports=r(6462)},1992:function(e,t,r){"use strict";r.d(t,{E:function(){return s}});var n=r(9196),s=r.n(n)().createContext(null)},2054:function(e,t,r){"use strict";var n=r(1446),s=r(9196),o=r.n(s),i=r(1268),a=r.n(i),c=r(1992),l=function(e){function t(t){var r;r=e.call(this,t)||this;var n=t.store;return r.state={storeState:n.getState(),store:n},r}(0,n.Z)(t,e);var r=t.prototype;return r.componentDidMount=function(){this._isMounted=!0,this.subscribe()},r.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},r.componentDidUpdate=function(e){this.props.store!==e.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},r.subscribe=function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe((function(){var r=t.getState();e._isMounted&&e.setState((function(e){return e.storeState===r?null:{storeState:r}}))}));var r=t.getState();r!==this.state.storeState&&this.setState({storeState:r})},r.render=function(){var e=this.props.context||c.E;return o().createElement(e.Provider,{value:this.state},this.props.children)},t}(s.Component);l.propTypes={store:a().shape({subscribe:a().func.isRequired,dispatch:a().func.isRequired,getState:a().func.isRequired}),context:a().object,children:a().any},t.Z=l},4193:function(e,t,r){"use strict";r.d(t,{Z:function(){return m}});var n=r(5303),s=r(1446),o=r(988),i=r(5343),a=r(3266),c=r.n(a),l=r(4546),u=r.n(l),p=r(9196),h=r.n(p),d=r(364),f=r(1992);function m(e,t){void 0===t&&(t={});var r=t,a=r.getDisplayName,l=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,m=r.methodName,g=void 0===m?"connectAdvanced":m,y=r.renderCountProp,v=void 0===y?void 0:y,_=r.shouldHandleStateChanges,E=void 0===_||_,b=r.storeKey,w=void 0===b?"store":b,k=r.withRef,S=void 0!==k&&k,C=r.forwardRef,j=void 0!==C&&C,x=r.context,O=void 0===x?f.E:x,R=(0,i.Z)(r,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);u()(void 0===v,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),u()(!S,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var P="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";u()("store"===w,"storeKey has been removed and does not do anything. "+P);var T=O;return function(t){var r=t.displayName||t.name||"Component",i=l(r),a=(0,o.Z)({},R,{getDisplayName:l,methodName:g,renderCountProp:v,shouldHandleStateChanges:E,storeKey:w,displayName:i,wrappedComponentName:r,WrappedComponent:t}),f=R.pure,m=p.Component;f&&(m=p.PureComponent);var y=function(r){function c(t){var s,i,a,c,l,p,d,m,g,y,v;return s=r.call(this,t)||this,u()(j?!t.wrapperProps[w]:!t[w],"Passing redux store in props has been removed and does not do anything. "+P),s.selectDerivedProps=function(t,r,n,s){if(f&&i===r&&a===t)return c;n===l&&p===s||(l=n,p=s,d=e(n.dispatch,s)),i=r,a=t;var o=d(t,r);return c=o},s.selectChildElement=function(e,t,r){return t===m&&r===g&&v===e||(m=t,g=r,v=e,y=h().createElement(e,(0,o.Z)({},t,{ref:r}))),y},s.indirectRenderWrappedComponent=s.indirectRenderWrappedComponent.bind((0,n.Z)(s)),s}(0,s.Z)(c,r);var l=c.prototype;return l.indirectRenderWrappedComponent=function(e){return this.renderWrappedComponent(e)},l.renderWrappedComponent=function(e){u()(e,'Could not find "store" in the context of "'+i+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+i+" in connect options.");var r,n=e.storeState,s=e.store,o=this.props;j&&(o=this.props.wrapperProps,r=this.props.forwardedRef);var c=this.selectDerivedProps(n,o,s,a);return this.selectChildElement(t,c,r)},l.render=function(){var e=this.props.context&&this.props.context.Consumer&&(0,d.isContextConsumer)(h().createElement(this.props.context.Consumer,null))?this.props.context:T;return h().createElement(e.Consumer,null,this.indirectRenderWrappedComponent)},c}(m);if(y.WrappedComponent=t,y.displayName=i,j){var _=h().forwardRef((function(e,t){return h().createElement(y,{wrapperProps:e,forwardedRef:t})}));return _.displayName=i,_.WrappedComponent=t,c()(_,t)}return c()(y,t)}}},8274:function(e,t,r){"use strict";var n,s,o,i,a,c,l,u,p,h,d,f,m=r(988),g=r(5343),y=r(4193),v=r(7110),_=r(214),E=r(6150),b=r(4262),w=r(7189);function k(e,t,r){for(var n=t.length-1;n>=0;n--){var s=t[n](e);if(s)return s}return function(t,n){throw new Error("Invalid value of type "+typeof e+" for "+r+" argument when connecting component "+n.wrappedComponentName+".")}}function S(e,t){return e===t}t.Z=(o=(s=void 0===n?{}:n).connectHOC,i=void 0===o?y.Z:o,a=s.mapStateToPropsFactories,c=void 0===a?E.ZP:a,l=s.mapDispatchToPropsFactories,u=void 0===l?_.ZP:l,p=s.mergePropsFactories,h=void 0===p?b.ZP:p,d=s.selectorFactory,f=void 0===d?w.ZP:d,function(e,t,r,n){void 0===n&&(n={});var s=n,o=s.pure,a=void 0===o||o,l=s.areStatesEqual,p=void 0===l?S:l,d=s.areOwnPropsEqual,y=void 0===d?v.Z:d,_=s.areStatePropsEqual,E=void 0===_?v.Z:_,b=s.areMergedPropsEqual,w=void 0===b?v.Z:b,C=(0,g.Z)(s,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),j=k(e,c,"mapStateToProps"),x=k(t,u,"mapDispatchToProps"),O=k(r,h,"mergeProps");return i(f,(0,m.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:j,initMapDispatchToProps:x,initMergeProps:O,pure:a,areStatesEqual:p,areOwnPropsEqual:y,areStatePropsEqual:E,areMergedPropsEqual:w},C))})},214:function(e,t,r){"use strict";var n=r(4978),s=r(8821);t.ZP=[function(e){return"function"==typeof e?(0,s.xv)(e,"mapDispatchToProps"):void 0},function(e){return e?void 0:(0,s.dX)((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?(0,s.dX)((function(t){return(0,n.DE)(e,t)})):void 0}]},6150:function(e,t,r){"use strict";var n=r(8821);t.ZP=[function(e){return"function"==typeof e?(0,n.xv)(e,"mapStateToProps"):void 0},function(e){return e?void 0:(0,n.dX)((function(){return{}}))}]},4262:function(e,t,r){"use strict";var n=r(988);function s(e,t,r){return(0,n.Z)({},r,e,t)}t.ZP=[function(e){return"function"==typeof e?function(e){return function(t,r){r.displayName;var n,s=r.pure,o=r.areMergedPropsEqual,i=!1;return function(t,r,a){var c=e(t,r,a);return i?s&&o(c,n)||(n=c):(i=!0,n=c),n}}}(e):void 0},function(e){return e?void 0:function(){return s}}]},7189:function(e,t,r){"use strict";r.d(t,{ZP:function(){return i}});var n=r(5343);function s(e,t,r,n){return function(s,o){return r(e(s,o),t(n,o),o)}}function o(e,t,r,n,s){var o,i,a,c,l,u=s.areStatesEqual,p=s.areOwnPropsEqual,h=s.areStatePropsEqual,d=!1;function f(s,d){var f,m,g=!p(d,i),y=!u(s,o);return o=s,i=d,g&&y?(a=e(o,i),t.dependsOnOwnProps&&(c=t(n,i)),l=r(a,c,i)):g?(e.dependsOnOwnProps&&(a=e(o,i)),t.dependsOnOwnProps&&(c=t(n,i)),l=r(a,c,i)):y?(f=e(o,i),m=!h(f,a),a=f,m&&(l=r(a,c,i)),l):l}return function(s,u){return d?f(s,u):(a=e(o=s,i=u),c=t(n,i),l=r(a,c,i),d=!0,l)}}function i(e,t){var r=t.initMapStateToProps,i=t.initMapDispatchToProps,a=t.initMergeProps,c=(0,n.Z)(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),l=r(e,c),u=i(e,c),p=a(e,c);return(c.pure?o:s)(l,u,p,e,c)}},8821:function(e,t,r){"use strict";function n(e){return function(t,r){var n=e(t,r);function s(){return n}return s.dependsOnOwnProps=!1,s}}function s(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function o(e,t){return function(t,r){r.displayName;var n=function(e,t){return n.dependsOnOwnProps?n.mapToProps(e,t):n.mapToProps(e)};return n.dependsOnOwnProps=!0,n.mapToProps=function(t,r){n.mapToProps=e,n.dependsOnOwnProps=s(e);var o=n(t,r);return"function"==typeof o&&(n.mapToProps=o,n.dependsOnOwnProps=s(o),o=n(t,r)),o},n}}r.d(t,{dX:function(){return n},xv:function(){return o}})},2620:function(e,t,r){"use strict";r.d(t,{zt:function(){return n.Z},$j:function(){return s.Z}});var n=r(2054),s=(r(4193),r(1992),r(8274))},7110:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=Object.prototype.hasOwnProperty;function s(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function o(e,t){if(s(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(var i=0;i<r.length;i++)if(!n.call(t,r[i])||!s(e[r[i]],t[r[i]]))return!1;return!0}},4978:function(e,t,r){"use strict";r.d(t,{md:function(){return g},DE:function(){return p},UY:function(){return l},MT:function(){return a}});var n=r(3488),s=function(){return Math.random().toString(36).substring(7).split("").join(".")},o={INIT:"@@redux/INIT"+s(),REPLACE:"@@redux/REPLACE"+s(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+s()}};function i(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function a(e,t,r){var s;if("function"==typeof t&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===r&&(r=t,t=void 0),void 0!==r){if("function"!=typeof r)throw new Error("Expected the enhancer to be a function.");return r(a)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var c=e,l=t,u=[],p=u,h=!1;function d(){p===u&&(p=u.slice())}function f(){if(h)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return l}function m(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(h)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return d(),p.push(e),function(){if(t){if(h)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,d();var r=p.indexOf(e);p.splice(r,1),u=null}}}function g(e){if(!i(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(h)throw new Error("Reducers may not dispatch actions.");try{h=!0,l=c(l,e)}finally{h=!1}for(var t=u=p,r=0;r<t.length;r++){(0,t[r])()}return e}function y(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");c=e,g({type:o.REPLACE})}function v(){var e,t=m;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function r(){e.next&&e.next(f())}return r(),{unsubscribe:t(r)}}})[n.Z]=function(){return this},e}return g({type:o.INIT}),(s={dispatch:g,subscribe:m,getState:f,replaceReducer:y})[n.Z]=v,s}function c(e,t){var r=t&&t.type;return"Given "+(r&&'action "'+String(r)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function l(e){for(var t=Object.keys(e),r={},n=0;n<t.length;n++){var s=t[n];0,"function"==typeof e[s]&&(r[s]=e[s])}var i,a=Object.keys(r);try{!function(e){Object.keys(e).forEach((function(t){var r=e[t];if(void 0===r(void 0,{type:o.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===r(void 0,{type:o.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+o.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(r)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var n=!1,s={},o=0;o<a.length;o++){var l=a[o],u=r[l],p=e[l],h=u(p,t);if(void 0===h){var d=c(l,t);throw new Error(d)}s[l]=h,n=n||h!==p}return(n=n||a.length!==Object.keys(e).length)?s:e}}function u(e,t){return function(){return t(e.apply(this,arguments))}}function p(e,t){if("function"==typeof e)return u(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var r={};for(var n in e){var s=e[n];"function"==typeof s&&(r[n]=u(s,t))}return r}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e,t){var r=Object.keys(e);return Object.getOwnPropertySymbols&&r.push.apply(r,Object.getOwnPropertySymbols(e)),t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?d(r,!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):d(r).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function m(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function g(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){return function(){var r=e.apply(void 0,arguments),n=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},s={getState:r.getState,dispatch:function(){return n.apply(void 0,arguments)}},o=t.map((function(e){return e(s)}));return f({},r,{dispatch:n=m.apply(void 0,o)(r.dispatch)})}}}},2601:function(e){"use strict";function t(e,r){var n;if(Array.isArray(r))for(n=0;n<r.length;n++)t(e,r[n]);else for(n in r)e[n]=(e[n]||[]).concat(r[n])}e.exports=function(e){var r,n={};return t(n,e),(r=function(e){return function(t){return function(r){var s,o,i=n[r.type],a=t(r);if(i)for(s=0;s<i.length;s++)(o=i[s](r,e))&&e.dispatch(o);return a}}}).effects=n,r}},8211:function(e){"use strict";var t=256,r=[],n=window,s=Math.pow(t,6),o=Math.pow(2,52),i=2*o,a=255,c=Math.random;function l(e){var r,n=e.length,s=this,o=0,i=s.i=s.j=0,c=s.S=[];for(n||(e=[n++]);o<t;)c[o]=o++;for(o=0;o<t;o++)c[o]=c[i=a&i+e[o%n]+(r=c[o])],c[i]=r;(s.g=function(e){for(var r,n=0,o=s.i,i=s.j,c=s.S;e--;)r=c[o=a&o+1],n=n*t+c[a&(c[o]=c[i=a&i+r])+(c[i]=r)];return s.i=o,s.j=i,n})(t)}function u(e,t){var r,n=[],s=(typeof e)[0];if(t&&"o"==s)for(r in e)try{n.push(u(e[r],t-1))}catch(e){}return n.length?n:"s"==s?e:e+"\0"}function p(e,t){for(var r,n=e+"",s=0;s<n.length;)t[a&s]=a&(r^=19*t[a&s])+n.charCodeAt(s++);return d(t)}function h(e){try{return n.crypto.getRandomValues(e=new Uint8Array(t)),d(e)}catch(e){return[+new Date,n,n.navigator&&n.navigator.plugins,n.screen,d(r)]}}function d(e){return String.fromCharCode.apply(0,e)}e.exports=function(n,a){if(a&&!0===a.global)return a.global=!1,Math.random=e.exports(n,a),a.global=!0,Math.random;var c=a&&a.entropy||!1,f=[],m=(p(u(c?[n,d(r)]:0 in arguments?n:h(),3),f),new l(f));return p(d(m.S),r),function(){for(var e=m.g(6),r=s,n=0;e<o;)e=(e+n)*t,r*=t,n=m.g(1);for(;e>=i;)e/=2,r/=2,n>>>=1;return(e+n)/r}},e.exports.resetGlobal=function(){Math.random=c},p(Math.random(),r)},7078:function(e){var t=/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi;e.exports=function(e){return(e=e||"").replace(t,"").trim()}},3488:function(e,t,r){"use strict";var n,s=r(2752);e=r.hmd(e),n="undefined"!=typeof self?self:"undefined"!=typeof window||"undefined"!=typeof window?window:e;var o=(0,s.Z)(n);t.Z=o},2752:function(e,t,r){"use strict";function n(e){var t,r=e.Symbol;return"function"==typeof r?r.observable?t=r.observable:(t=r("observable"),r.observable=t):t="@@observable",t}r.d(t,{Z:function(){return n}})},5597:function(e,t,r){"use strict";r.d(t,{Z:function(){return g}});var n=r(9183),s=r.n(n),o=r(2620),i=r(2819),a=r(5736),c=r(9661),l=r(9499),u=r(230),p=r(9532),h=r(8931),d=r(3331),f=r(396);const __=a.__;r.p=window.JetpackInstantSearchOptions.webpackPublicPath;const m={aggregations:(0,u.a5)([...window[p.W1].widgets,...window[p.W1].widgetsOutsideOverlay]),defaultSort:window[p.W1].defaultSort,hasOverlayWidgets:!!window[p.W1].hasOverlayWidgets,options:window[p.W1],themeOptions:(0,h.C)(window[p.W1])};function g(){const{color:e,excludedPostTypes:t,infiniteScroll:r,resultFormat:n,showLogo:a,sort:u,sortEnabled:h,theme:g,trigger:y}=(0,f.Z)(),v={...window[p.W1].overlayOptions,...(0,i.pickBy)({colorTheme:g,defaultSort:u,enableInfScroll:r,enableSort:h,excludedPostTypes:t,highlightColor:e,overlayTrigger:y,resultFormat:n,showPoweredBy:a},(e=>void 0!==e))},{isLoading:_}=(0,d.Z)();return React.createElement("div",{
+/* translators: accessibility text for the widgets screen content landmark region. */
+"aria-label":__("Jetpack Search customization preview","jetpack"),className:"jp-search-configure-app-wrapper",role:"region",tabIndex:"-1"},_?React.createElement("img",{className:"jp-search-configure-loading-spinner",width:"32",height:"32",alt:__("Loading","jetpack"),src:"//en.wordpress.com/i/loading/loading-64.gif"}):React.createElement(o.zt,{store:l.Z},React.createElement(c.Z,s()({},m,{enableAnalytics:!1,initialIsVisible:!0,initialShowResults:!0,isInCustomizer:!1,overlayOptions:v,shouldCreatePortal:!1,shouldIntegrateWithDom:!1}))))}},512:function(e,t,r){"use strict";var n=r(5609),s=r(5736),o=r(2607),i=r(8570),a=r(9239);const __=s.__;t.Z=function(e){let{enableSidebar:t}=e;
+// translators: Product name 'Jetpack Search' should not be translated
+const r=__("Customize Jetpack Search","jetpack");return React.createElement("div",{className:"jp-search-configure-header"},React.createElement("div",{className:"jp-search-configure-header__navigable-toolbar-wrapper"},React.createElement("h1",{className:"jp-search-configure-header__title"},r)),React.createElement("div",{className:"jp-search-configure-header__actions"},React.createElement(a.Z,null),React.createElement(n.Button,{"aria-label":__("Show settings","jetpack"),className:"jp-search-configure-header__show-settings-button",isSecondary:!0,onClick:()=>t()},React.createElement(o.Z,{icon:i.Z}))))}},3655:function(e,t,r){"use strict";r.d(t,{Z:function(){return u}});var n=r(9307),s=r(9818),o=r(162),i=r(3426),a=r(5808),c=r(70),l=r(9532);function u(){const{isLargeViewport:e}=(0,s.useSelect)((e=>({isLargeViewport:e(o.store).isViewportMatch("large")}))),[t,r]=(0,n.useState)(c.E),u=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c.E;return r(e)};return(0,n.useEffect)((()=>{(0,a.j2)(),(0,a.AM)(window[l.W1].siteId),(0,a.Ny)(`${a.q0}_page_view`)}),[]),(0,n.useEffect)((()=>{e&&null===t&&u()}),[t,e]),React.createElement("div",{className:"jp-search-configure-root"},React.createElement(i.Z,{disableSidebar:()=>r(null),enabledSidebarName:t,enableSidebar:u}))}},3426:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(5736),s=r(5597),o=r(512),i=r(1311);const __=n.__;function a(e){const{enabledSidebarName:t,enableSidebar:r,disableSidebar:n}=e;return React.createElement("div",{className:"interface-interface-skeleton"},React.createElement("div",{className:"interface-interface-skeleton__editor"},React.createElement("div",{
+/* translators: accessibility text for the widgets screen top bar landmark region. */
+"aria-label":__("Jetpack Search customization top bar","jetpack"),className:"interface-interface-skeleton__header",role:"region",tabIndex:"-1"},React.createElement(o.Z,{enableSidebar:r})),React.createElement("div",{className:"jp-search-configure-layout__body"},React.createElement(s.Z,null),!!t&&React.createElement("div",{
+/* translators: accessibility text for the widgets screen settings landmark region. */
+"aria-label":__("Jetpack Search customization settings","jetpack"),className:"interface-interface-skeleton__sidebar",role:"region",tabIndex:"-1"},React.createElement(i.Z,{disableSidebar:n,enabledSidebarName:t,enableSidebar:r})))))}},9239:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(5609),s=r(5736),o=r(5808),i=r(7218),a=r(9532);const __=s.__;function c(){const{editedEntities:e,isSaving:t,hasUnsavedEdits:r,saveRecords:s}=(0,i.Z)();return React.createElement(n.Button,{"aria-disabled":t,className:"jp-search-configure-save-button",disabled:!r,isBusy:t,isPrimary:!0,onClick:function(){t||((0,o.Ny)(`${o.q0}_save_button_click`,{initialSettings:JSON.stringify(window[a.W1].overlayOptions),changedSettings:JSON.stringify(e),changedSettingNames:Object.keys(e).join(",")}),s(...arguments))}},t?__("Saving…","jetpack"):__("Save","jetpack",0))}},4818:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(2175),s=r(5736),o=r(9818);const __=s.__,i=[{name:"Dull blue",color:"#463ECE"},{name:"Jazzberry jam",color:"#C6446F"},{name:"June bud",color:"#C4D455"}];function a(e){let{disabled:t,value:r,onChange:s}=e;const a=(0,o.useSelect)((e=>{var t;const r=null!==(t=e("core/block-editor").getSettings())&&void 0!==t?t:{};return Array.isArray(r?.colors)&&r.colors.length>0?r.colors:i}));return React.createElement("div",{className:"jp-search-configure-color-input components-base-control"},React.createElement(n.__experimentalColorGradientControl,{label:__("Highlight for search terms","jetpack"),disabled:t,colorValue:r,colors:a,disableCustomColors:!1,disableCustomGradients:!0,onColorChange:s}))}},300:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(9307),s=r(5609),o=r(5736);const __=o.__,i=window.JetpackInstantSearchOptions.postTypes;function a(e){let{disabled:t,onChange:r,validPostTypes:o=i,value:a}=e;const c=(0,n.useMemo)((()=>Object.keys(o)),[o]),l=(0,n.useMemo)((()=>a&&Array.isArray(a)?new Set(a):new Set),[a]),u=l.size===c.length-1;return React.createElement("div",{className:"jp-search-configure-excluded-post-types-control components-base-control"},React.createElement("div",{className:"jp-search-configure-excluded-post-types-control__label"},__("Excluded post types","jetpack")),u&&React.createElement(s.Notice,{isDismissible:!1,status:"info"},__("You must leave at least one post type unchecked.","jetpack")),c.map((e=>{return React.createElement(s.CheckboxControl,{checked:l.has(e),disabled:t||!l.has(e)&&u,key:e,label:i[e].name,onChange:(n=e,e=>{const t=new Set(l);e?t.add(n):t.delete(n),r([...t])}),value:e});var n})))}},1311:function(e,t,r){"use strict";r.d(t,{Z:function(){return h}});var n=r(5609),s=r(5736),o=r(2607),i=r(2946),a=r(70),c=r(9239),l=r(845),u=r(7346),p=r(8914);const __=s.__;function h(e){const{enabledSidebarName:t,enableSidebar:r,disableSidebar:s}=e;return React.createElement("div",{className:"interface-complementary-area jp-search-configure-sidebar"},React.createElement("div",{className:"components-panel__header interface-complementary-area-header jp-search-configure-sidebar__panel-tabs",tabindex:"-1"},React.createElement(p.Z,{enabledSidebarName:t,enableSidebar:r}),React.createElement(c.Z,null),React.createElement(n.Button,{"aria-label":__("Show preview","jetpack"),className:"jp-search-configure-sidebar__hide-settings-button",isSecondary:!0,onClick:s},React.createElement(o.Z,{icon:i.Z}))),React.createElement("div",{className:"components-panel"},t===a.m&&React.createElement(l.Z,null),t===a.E&&React.createElement(u.Z,null)))}},845:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(2175),s=r(5609),o=r(5736),i=r(1429),a=r(6483);const __=o.__;function c(){return React.createElement("div",{className:"jp-search-configure-sidebar-description"},React.createElement(n.BlockIcon,{icon:i.Y}),React.createElement("div",null,React.createElement("p",null,__("Jetpack Instant Search will allow your visitors to get search results as soon as they start typing. Customize this experience to offer better results that match your site.","jetpack")),React.createElement(s.Button,{href:"widgets.php",isTertiary:!0},__("Edit widgets","jetpack")),React.createElement(s.Button,{href:(0,a.addQueryArgs)("customize.php",{"autofocus[section]":"jetpack_search",return:`${window.location.pathname}${window.location.search}`}),isTertiary:!0},__("Configure in the Customizer","jetpack"))))}},7346:function(e,t,r){"use strict";r.d(t,{Z:function(){return d}});var n=r(9105),s=r.n(n),o=r(5609),i=r(5736),a=r(3331),c=r(7218),l=r(396),u=r(4818),p=r(300),h=r(569);const __=i.__;function d(){const{color:e,excludedPostTypes:t,infiniteScroll:r,resultFormat:n,setColor:i,setExcludedPostTypes:d,setInfiniteScroll:f,setResultFormat:m,setShowLogo:g,setSort:y,setSortEnabled:v,setTheme:_,setTrigger:E,showLogo:b,sort:w,sortEnabled:k,theme:S,trigger:C}=(0,l.Z)(),{isSaving:j}=(0,c.Z)(),{isLoading:x}=(0,a.Z)(),O=j||x;return React.createElement(o.Panel,{className:s()("jp-search-configure-sidebar-options",{"jp-search-configure-sidebar-options--is-disabled":O})},React.createElement(o.PanelBody,{title:__("Styling","jetpack"),initialOpen:!0},React.createElement(h.Z,{disabled:O,onChange:_,value:S}),React.createElement(o.RadioControl,{className:"jp-search-configure-result-format-radios",label:__("Result format","jetpack"),selected:n,options:[{label:__("Minimal","jetpack"),value:"minimal"},{label:__("Expanded (shows images)","jetpack"),value:"expanded"},{label:__("Product (for WooCommerce stores)","jetpack"),value:"product"}],onChange:m}),React.createElement(u.Z,{disabled:O,onChange:i,value:e})),React.createElement(o.PanelBody,{title:__("Search options","jetpack"),initialOpen:!0},React.createElement(o.SelectControl,{disabled:O,label:__("Default sort","jetpack"),value:w,options:[{label:__("Relevance (recommended)","jetpack"),value:"relevance"},{label:__("Newest first","jetpack"),value:"newest"},{label:__("Oldest first","jetpack"),value:"oldest"}],onChange:y}),React.createElement(o.SelectControl,{disabled:O,label:__("Overlay trigger","jetpack"),value:C,options:[{label:__("Open when the user starts typing","jetpack"),value:"immediate"},{label:__("Open when results are available","jetpack"),value:"results"},{label:__("Open when user submits the form","jetpack"),value:"submit"}],onChange:E}),React.createElement(p.Z,{disabled:O,onChange:d,value:t})),React.createElement(o.PanelBody,{title:__("Additional settings","jetpack"),initialOpen:!0},React.createElement(o.ToggleControl,{checked:k,disabled:O,label:__("Show sort selector","jetpack"),onChange:v}),React.createElement(o.ToggleControl,{checked:r,disabled:O,label:__("Enable infinite scroll","jetpack"),onChange:f}),React.createElement(o.ToggleControl,{checked:b,disabled:O,label:__('Show "Powered by Jetpack"',"jetpack"),onChange:g})))}},8914:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(9105),s=r.n(n),o=r(5736),i=r(5609),a=r(70);const __=o.__;function c(e){let{enabledSidebarName:t,enableSidebar:r}=e;return React.createElement("ul",null,React.createElement("li",null,React.createElement(l,{enableSidebar:r,identifier:a.m,isActive:t===a.m,label:__("Jetpack Search","jetpack")})),React.createElement("li",null,React.createElement(l,{enableSidebar:r,identifier:a.E,isActive:t===a.E,label:__("Options","jetpack")})))}function l(e){let{enableSidebar:t,identifier:r,label:n,isActive:a}=e;
+// translators: %s: sidebar label e.g: "Options".
+const c=a?(0,o.sprintf)(__("%s (selected)","jetpack"),n):n;return React.createElement(i.Button,{onClick:()=>t(r),className:s()("jp-search-configure-sidebar__panel-tab",{"is-active":a}),"aria-label":c,"data-label":n},n)}},569:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(9105),s=r.n(n),o=r(5609),i=r(5736),a=r(8961);const __=i.__;function c(e){let{disabled:t,value:r,onChange:n}=e;return React.createElement("div",{className:"jp-search-configure-theme-buttons components-base-control"},React.createElement(o.Button,{className:s()({"jp-search-configure-theme-button--selected":"light"===r}),disabled:t,onClick:()=>n("light"),variant:"link"},React.createElement(a.Z,{theme:"light"}),React.createElement("span",{"aria-label":__("Light Theme","jetpack")},__("Light","jetpack"))),React.createElement(o.Button,{className:s()({"jp-search-configure-theme-button--selected":"dark"===r}),disabled:t,onClick:()=>n("dark"),variant:"link"},React.createElement(a.Z,{theme:"dark"}),React.createElement("span",{"aria-label":__("Dark Theme","jetpack")},__("Dark","jetpack"))))}},8961:function(e,t,r){"use strict";function n(e){let{theme:t}=e;const r="dark"===t?"#000":"#fff",n="dark"===t?"#4F5861":"#DDE5EE";return React.createElement("svg",{width:"104",height:"80",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0},React.createElement("rect",{x:"7.5",y:"7.5",width:"89",height:"65",rx:"3.5",fill:r,stroke:n}),React.createElement("path",{d:"M16 20a4 4 0 014-4h49a4 4 0 010 8H20a4 4 0 01-4-4zM42 55.5a1.5 1.5 0 011.5-1.5h32a1.5 1.5 0 010 3h-32a1.5 1.5 0 01-1.5-1.5zM42 60.5a1.5 1.5 0 011.5-1.5h11a1.5 1.5 0 010 3h-11a1.5 1.5 0 01-1.5-1.5zM16 47a4 4 0 014-4h12a4 4 0 014 4v12a4 4 0 01-4 4H20a4 4 0 01-4-4V47zM42 48a3 3 0 013-3h40a3 3 0 110 6H45a3 3 0 01-3-3zM8 32h89v1H8z",fill:n}))}r.d(t,{Z:function(){return n}})},7218:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(9196),s=r(9818);function o(){const{saveEntityRecord:e,undo:t,redo:r}=(0,s.useDispatch)("core"),o=(0,s.useSelect)((e=>e("core").getEntityRecordEdits("root","site"))),i=o&&Object.keys(o).length>0,a=(0,s.useSelect)((e=>e("core").isSavingEntityRecord("root","site"))),c=(0,s.useSelect)((e=>e("core").hasUndo())),l=(0,s.useSelect)((e=>e("core").hasRedo())),u=(0,n.useCallback)((()=>{i&&e("root","site",o)}),[o,i,e]);return{editedEntities:o,hasRedo:c,hasUndo:l,hasUnsavedEdits:i,isSaving:a,redo:r,saveRecords:u,undo:t}}},3331:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(9818);function s(){return{isLoading:!(0,n.useSelect)((e=>e("core").getSite()))}}},396:function(e,t,r){"use strict";r.d(t,{Z:function(){return o}});var n=r(9196),s=r(7798);function o(){const[e,t]=(0,s.useEntityProp)("root","site","jetpack_search_color_theme"),[r,o]=(0,s.useEntityProp)("root","site","jetpack_search_result_format"),[i,a]=(0,s.useEntityProp)("root","site","jetpack_search_default_sort"),[c,l]=(0,s.useEntityProp)("root","site","jetpack_search_overlay_trigger"),[u,p]=(0,s.useEntityProp)("root","site","jetpack_search_highlight_color"),[h,d]=(0,s.useEntityProp)("root","site","jetpack_search_enable_sort"),[f,m]=(0,s.useEntityProp)("root","site","jetpack_search_inf_scroll"),[g,y]=(0,s.useEntityProp)("root","site","jetpack_search_show_powered_by"),[v,_]=(0,s.useEntityProp)("root","site","jetpack_search_excluded_post_types");return{color:u,excludedPostTypes:(0,n.useMemo)((()=>v?.split(",").filter((e=>e?.length>0))),[v]),infiniteScroll:f,resultFormat:r,setColor:p,setExcludedPostTypes:e=>_(e.join(",")),setInfiniteScroll:m,setResultFormat:o,setShowLogo:y,setSort:a,setSortEnabled:d,setTheme:t,setTrigger:l,showLogo:g,sort:i,sortEnabled:h,theme:e,trigger:c}}},5808:function(e,t,r){"use strict";r.d(t,{q0:function(){return s},j2:function(){return o},AM:function(){return i},Ny:function(){return a}});var n=r(6546);const s="jetpack_search_customberg",o=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.tU)(...t,!0)},i=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.AM)(...t,!0)},a=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,n.Ny)(...t,!0)}},70:function(e,t,r){"use strict";r.d(t,{m:function(){return n},E:function(){return s}});const n="jetpack-customize-search/info",s="jetpack-customize-search/options"},3130:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(7538),s=r.n(n),o=r(9196),i=r(7079);class a extends o.Component{constructor(){super(...arguments),s()(this,"handleOverlayOptionsUpdate",(e=>{this.props.updateOverlayOptions(e,(()=>this.props.showResults()))}))}componentDidMount(){(0,i.vJ)(this.handleOverlayOptionsUpdate),(0,i.Em)(this.props.toggleResults)}render(){return null}}},3703:function(e,t,r){"use strict";r.d(t,{Z:function(){return c}});var n=r(7538),s=r.n(n),o=r(9196),i=r(5034),a=r.n(i);class c extends o.Component{constructor(){super(...arguments),s()(this,"handleCompositionStart",(()=>this.setState({isComposing:!0}))),s()(this,"handleCompositionEnd",(()=>this.setState({isComposing:!1}))),s()(this,"handleFilterInputClick",(e=>{e.preventDefault(),e.currentTarget.dataset.filterType&&("taxonomy"===e.currentTarget.dataset.filterType?this.props.setFilter(e.currentTarget.dataset.taxonomy,e.currentTarget.dataset.val):this.props.setFilter(e.currentTarget.dataset.filterType,e.currentTarget.dataset.val)),this.props.setSearchQuery(""),this.props.showResults()})),s()(this,"handleHistoryNavigation",(()=>{this.props.initializeQueryValues({isHistoryNavigation:!0})})),s()(this,"handleInput",a()((e=>{e.inputType?.includes("format")||""===e.target.value||this.state.isComposing||"submit"!==this.props.overlayOptions.overlayTrigger&&(this.props.setSearchQuery(e.target.value),"immediate"===this.props.overlayOptions.overlayTrigger&&this.props.showResults(),"results"===this.props.overlayOptions.overlayTrigger&&this.props.response?.results&&this.props.showResults())}),200)),s()(this,"handleKeyup",(e=>{"Enter"===e.key&&(this.props.setSearchQuery(e.target.value),this.props.showResults())})),s()(this,"handleOverlayTriggerClick",(e=>{e.stopImmediatePropagation(),this.props.setSearchQuery(""),this.props.showResults()})),s()(this,"handleSubmit",(e=>{if(e.preventDefault(),this.handleInput.flush(),!this.props.isVisible){const t=e.target.querySelector(this.props.themeOptions.searchInputSelector)?.value;"string"==typeof t&&this.props.setSearchQuery(t),this.props.showResults()}})),s()(this,"fixBodyScroll",(()=>{this.props.isVisible?(this.preventBodyScroll(),window?.scrollTo(0,0)):this.props.isVisible||this.restoreBodyScroll()})),this.state={isComposing:!1,bodyScrollTop:0,previousStyle:null,previousBodyStyleAttribute:""},this.props.initializeQueryValues()}componentDidMount(){this.disableUnnecessaryFormAndInputAttributes(),this.addEventListeners()}componentWillUnmount(){this.removeEventListeners(),this.restoreBodyScroll()}componentDidUpdate(e){this.props.isVisible!==e.isVisible&&this.fixBodyScroll()}disableUnnecessaryFormAndInputAttributes(){document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.removeAttribute("required"),e.removeAttribute("autocomplete"),e.form.removeAttribute("autocomplete")}))}addEventListeners(){window.addEventListener("popstate",this.handleHistoryNavigation),document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.form.addEventListener("submit",this.handleSubmit),e.addEventListener("keyup",this.handleKeyup),e.addEventListener("input",this.handleInput),e.addEventListener("compositionstart",this.handleCompositionStart),e.addEventListener("compositionend",this.handleCompositionEnd)})),document.querySelectorAll(this.props.themeOptions.overlayTriggerSelector).forEach((e=>{e.addEventListener("click",this.handleOverlayTriggerClick,!0)})),document.querySelectorAll(this.props.themeOptions.filterInputSelector).forEach((e=>{e.addEventListener("click",this.handleFilterInputClick)}))}removeEventListeners(){window.removeEventListener("popstate",this.handleHistoryNavigation),document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.form.removeEventListener("submit",this.handleSubmit),e.removeEventListener("keyup",this.handleKeyup),e.removeEventListener("input",this.handleInput),e.removeEventListener("compositionstart",this.handleCompositionStart),e.removeEventListener("compositionend",this.handleCompositionEnd)})),document.querySelectorAll(this.props.themeOptions.overlayTriggerSelector).forEach((e=>{e.removeEventListener("click",this.handleOverlayTriggerClick,!0)})),document.querySelectorAll(this.props.themeOptions.filterInputSelector).forEach((e=>{e.removeEventListener("click",this.handleFilterInputClick)}))}preventBodyScroll(){this.setState({bodyScrollTop:parseInt(window.scrollY)||0,previousStyle:{top:document.body.style.top,left:document.body.style.left,right:document.body.style.right,scrollBehavior:document.documentElement.style.scrollBehavior},previousBodyStyleAttribute:document.body.getAttribute("style")},(()=>{const e=document.documentElement?.scrollHeight-document.body?.scrollHeight||0;document.body.setAttribute("style","position: fixed !important"),document.body.style.top=`-${this.state.bodyScrollTop-e}px`,document.body.style.left=0,document.body.style.right=0}))}restoreBodyScroll(){var e,t,r,n;this.state.previousBodyStyleAttribute?document.body.setAttribute("style",this.state.previousBodyStyleAttribute):document.body.removeAttribute("style"),document.body.style.top=null!==(e=this.state.previousStyle?.top)&&void 0!==e?e:"",document.body.style.left=null!==(t=this.state.previousStyle?.left)&&void 0!==t?t:"",document.body.style.right=null!==(r=this.state.previousStyle?.right)&&void 0!==r?r:"",document.documentElement.style.scrollBehavior="revert",this.state.bodyScrollTop>0&&window.scrollTo(0,this.state.bodyScrollTop),document.documentElement.style.scrollBehavior=null!==(n=this.state.previousStyle?.scrollBehavior)&&void 0!==n?n:"",this.setState({bodyScrollTop:0,previousStyle:null,previousBodyStyleAttribute:""})}render(){return null}}},1295:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(5736);const __=a.__;class c extends o.Component{needsOffset(e,t){return["gridicons-calendar","gridicons-cart","gridicons-folder","gridicons-info","gridicons-posts","gridicons-star-outline","gridicons-star"].indexOf(e)>=0&&t%18==0}getSVGTitle(e){if("title"in this.props)return this.props.title?i().createElement("title",null,this.props.title):null;switch(e){default:return null;case"gridicons-audio":return i().createElement("title",null,__("Has audio.","jetpack"));case"gridicons-calendar":return i().createElement("title",null,__("Is an event.","jetpack"));case"gridicons-cart":return i().createElement("title",null,__("Is a product.","jetpack"));case"chevron-down":return i().createElement("title",null,__("Show filters","jetpack"));case"gridicons-comment":return i().createElement("title",null,__("Matching comment.","jetpack"));case"gridicons-cross":return i().createElement("title",null,__("Close search results","jetpack"));case"gridicons-filter":return i().createElement("title",null,__("Toggle search filters.","jetpack"));case"gridicons-folder":return i().createElement("title",null,__("Category","jetpack"));case"gridicons-image-multiple":return i().createElement("title",null,__("Has multiple images.","jetpack"));case"gridicons-image":return i().createElement("title",null,__("Has an image.","jetpack"));case"gridicons-page":return i().createElement("title",null,__("Page","jetpack"));case"gridicons-post":return i().createElement("title",null,__("Post","jetpack"));case"gridicons-jetpack-search":case"gridicons-search":return i().createElement("title",null,__("Search","jetpack"));case"gridicons-tag":return i().createElement("title",null,__("Tag","jetpack"));case"gridicons-video":return i().createElement("title",null,__("Has a video.","jetpack"))}}renderIcon(e){switch(e){default:return null;case"gridicons-audio":return i().createElement("g",null,i().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-block":return i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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-chevron-down":return i().createElement("g",null,i().createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"}));case"gridicons-comment":return i().createElement("g",null,i().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-cross":return i().createElement("g",null,i().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 i().createElement("g",null,i().createElement("path",{d:"M10 19h4v-2h-4v2zm-4-6h12v-2H6v2zM3 5v2h18V5H3z"}));case"gridicons-folder":return i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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-jetpack-search":return i().createElement("g",null,i().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-pages":return i().createElement("g",null,i().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 i().createElement("g",null,i().createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"}));case"gridicons-search":return i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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 i().createElement("g",null,i().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"}))}}render(){const{size:e=24,className:t=""}=this.props,r=this.props.height||e,n=this.props.width||e,s=this.props.style||{height:r,width:n},o="gridicons-"+this.props.icon;let a=["gridicon",o,t];return this.needsOffset(o,e)&&a.push("needs-offset"),a=a.join(" "),i().createElement("svg",{className:a,focusable:this.props.focusable,height:r,onClick:this.props.onClick,style:s,viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.props["aria-hidden"]},this.getSVGTitle(o),this.renderIcon(o))}}s()(c,"defaultProps",{"aria-hidden":"false",focusable:"true"}),t.Z=c},1429:function(e,t,r){"use strict";r.d(t,{Y:function(){return a}});var n=r(9196),s=r.n(n),o=r(5736);const __=o.__,i="#fff",a=s().createElement("svg",{className:"jetpack-instant-search__jetpack-colophon-logo",height:12,width:12,viewBox:"0 0 32 32"},s().createElement("path",{className:"jetpack-logo__icon-circle",fill:"#069e08",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),s().createElement("polygon",{className:"jetpack-logo__icon-triangle",fill:i,points:"15,19 7,19 15,3 "}),s().createElement("polygon",{className:"jetpack-logo__icon-triangle",fill:i,points:"17,29 17,13 25,13 "}));t.Z=e=>{const t="string"==typeof e.locale?e.locale.split("-",1)[0]:null,r=t&&"en"!==t?"https://"+t+".jetpack.com/search?utm_source=poweredby":"https://jetpack.com/search?utm_source=poweredby";return s().createElement("div",{className:"jetpack-instant-search__jetpack-colophon"},s().createElement("a",{href:r,rel:"external noopener noreferrer nofollow",target:"_blank",className:"jetpack-instant-search__jetpack-colophon-link"},a,s().createElement("span",{className:"jetpack-instant-search__jetpack-colophon-text"},__("Search powered by Jetpack","jetpack"))))}},3660:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(1295);t.Z=e=>{let{type:t,children:r}=e;return"warning"!==t?null:s().createElement("div",{className:"jetpack-instant-search__notice jetpack-instant-search__notice--warning"},s().createElement(o.Z,{icon:"info",size:20}),r)}},1808:function(e,t,r){"use strict";var n=r(5736),s=r(9196),o=r.n(s),i=r(9532);const __=n.__;t.Z=e=>{const{children:t,closeOverlay:r,colorTheme:n,hasOverlayWidgets:a,isVisible:c}=e,l=(u=r,e=>{"Escape"!==e.key&&"Esc"!==e.key||(e.preventDefault(),u())});var u;return(0,s.useEffect)((()=>(window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)})),[l]),o().createElement("div",{"aria-hidden":!c,"aria-labelledby":"jetpack-instant-search__overlay-title",className:["jetpack-instant-search",i.zg,`jetpack-instant-search__overlay--${n}`,a?"":"jetpack-instant-search__overlay--no-sidebar",c?"":"is-hidden"].join(" "),role:"dialog"},o().createElement("h1",{id:"jetpack-instant-search__overlay-title",className:"screen-reader-text"},__("Search results","jetpack")),t)}},6941:function(e,t,r){"use strict";var n=r(9196),s=r.n(n);t.Z=e=>{let{className:t,onClick:r,url:n}=e;const o=function(e){const t=e.split("/").filter((e=>e.length>0));return t.shift(),t}(n);return o.length<1?null:s().createElement("div",{className:`jetpack-instant-search__path-breadcrumb ${t||""}`},s().createElement("a",{className:"jetpack-instant-search__path-breadcrumb-link",href:`//${n}`,onClick:r},o.map(((e,t,r)=>s().createElement("span",{className:"jetpack-instant-search__path-breadcrumb-piece"},decodeURIComponent(e),t!==r.length-1?" › ":"")))))}},7979:function(e,t,r){"use strict";var n=r(9183),s=r.n(n),o=r(9196),i=r.n(o),a=r(7802);t.Z=e=>{const{alt:t,isPhotonEnabled:r,maxHeight:n=600,maxWidth:c=600,src:l,lazyLoad:u=!0,...p}=e,h=(0,o.useRef)(),[d,f]=(0,o.useState)(null),m=(0,a.y)(l,c,n,r);return(0,o.useEffect)((()=>{if(!m)return;let e=null;return u&&"IntersectionObserver"in window?(e=new window.IntersectionObserver(((e,t)=>{for(const r of e)r.isIntersecting&&(f(m),t.unobserve(r.target))})),e.observe(h.current)):f(m),()=>{e?.disconnect()}}),[u,m]),i().createElement("img",s()({alt:t,ref:h,src:d},p))}},1208:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(1295),i=r(7135);const a=["youtube","ooyala","anvplayer","wpvideo","bc_video","video","brightcove","tp_video","jwplayer","tempo-video","vimeo"],c=["gallery","ione_media_gallery"],l=["audio","soundcloud"],u={product:"cart",video:"video",gallery:"image-multiple",event:"calendar",events:"calendar"};t.Z=e=>{let{postType:t,shortcodeTypes:r,iconSize:n=18}=e;if(Object.keys(u).includes(t))return s().createElement(o.Z,{icon:u[t],size:n});const p=(0,i.Z)(r,a),h=(0,i.Z)(r,l),d=(0,i.Z)(r,c);return p?s().createElement(o.Z,{icon:"video",size:n}):h?s().createElement(o.Z,{icon:"audio",size:n}):"page"===t?s().createElement(o.Z,{icon:"pages",size:n}):d?s().createElement(o.Z,{icon:"image-multiple",size:n}):null}},9592:function(e,t,r){"use strict";var n=r(9196),s=r.n(n);class o extends n.Component{render(){const{formattedPrice:e,formattedSalePrice:t,formattedRegularPrice:r,price:o,salePrice:i}=this.props;return o?s().createElement("span",{className:"jetpack-instant-search__product-price"},i>0?s().createElement(n.Fragment,null,s().createElement("s",{className:"jetpack-instant-search__product-price-regular",dangerouslySetInnerHTML:{__html:r}}),s().createElement("span",{dangerouslySetInnerHTML:{__html:t}})):s().createElement("span",{dangerouslySetInnerHTML:{__html:e}})):null}}t.Z=o},7265:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(5736),s=r(9196),o=r.n(s),i=r(1295);const _n=n._n;function a(e){let{rating:t=0,count:r=0,permalink:s}=e;return o().createElement("div",{className:"jetpack-instant-search__product-rating"},o().createElement("span",{"aria-hidden":!0,className:"jetpack-instant-search__product-rating-stars"},Array(5).fill(o().createElement(i.Z,{size:16,icon:"star-outline"})).fill(o().createElement(i.Z,{size:16,icon:"star"}),0,t))," ",o().createElement("a",{"aria-hidden":!0,className:"jetpack-instant-search__product-rating-count",href:s+"#reviews"},(0,n.sprintf)(
+/* Translators: the placeholder is the number of product reviews. */
+_n("%d review","%d reviews",r,"jetpack"),r)),o().createElement("span",{className:"screen-reader-text"},(0,n.sprintf)(
+/* Translators: the first placeholder is the average product rating out of 5; the second is the number of product reviews. */
+_n("Average rating of %1$d out of 5 from %2$d review.","Average rating of %1$d out of 5 from %2$d reviews.",r,"jetpack"),Number(t).toFixed(2),r)))}},9534:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(5736),c=r(5034),l=r.n(c),u=r(9532);const __=a.__;class p extends o.Component{constructor(){super(...arguments),s()(this,"overlayElement",document.getElementsByClassName(u.zg)[0]),s()(this,"checkScroll",l()((()=>{this.props.enableLoadOnScroll&&window.innerHeight+this.overlayElement.scrollTop>=this.overlayElement.scrollHeight&&this.props.onLoadNextPage()}),100))}componentDidMount(){this.overlayElement.addEventListener("scroll",this.checkScroll)}componentDidUnmount(){this.overlayElement.removeEventListener("scroll",this.checkScroll)}render(){return i().createElement("button",{className:"jetpack-instant-search__scroll-button",disabled:this.props.isLoading,onClick:this.props.onLoadNextPage},this.props.isLoading?i().createElement("span",null,__("Loading…","jetpack")):i().createElement("span",null,__("Load more","jetpack")))}}t.Z=p},9661:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(1850),c=r(5034),l=r.n(c),u=r(2620),p=r(8027),h=r.n(p),d=r(3130),f=r(3703),m=r(1808),g=r(5031),y=r(6546),v=r(9532),_=r(2168),E=r(6669),b=r(7283),w=r(341);class k extends o.Component{constructor(){var e;super(...arguments),e=this,s()(this,"getResultFormat",(()=>{const e=(0,E.ug)();return this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==v.Bk?v.Pz:e||this.state.overlayOptions.resultFormat})),s()(this,"initializeStaticFilters",(()=>{const e=(0,_.bA)();e.length>0&&0===Object.keys(this.props.staticFilters).length&&e.forEach((e=>this.props.setStaticFilter(e.filter_id,e.selected,!0)))})),s()(this,"hideResults",(e=>{this.props.shouldIntegrateWithDom&&(0,E.Q0)(this.props.initialHref,(()=>{this.setState({isVisible:!1}),this.props.clearQueryValues()}),e)})),s()(this,"toggleResults",(e=>{this.props.shouldIntegrateWithDom&&this.state.isVisible!==e&&(e&&this.initializeStaticFilters(),this.setState({isVisible:e}))})),s()(this,"showResults",this.toggleResults.bind(this,!0)),s()(this,"onChangeQueryString",(e=>{this.getResults(),this.props.hasActiveQuery&&!this.state.isVisible&&this.showResults(),!this.props.hasActiveQuery&&e&&this.hideResults(e),null!==this.props.searchQuery&&document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.value=this.props.searchQuery}))})),s()(this,"loadNextPage",(()=>{this.props.hasNextPage&&this.getResults({pageHandle:this.props.response.page_handle})})),s()(this,"getResults",(function(){let{pageHandle:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.props.makeSearchRequest({aggregations:t?{}:e.props.aggregations,excludedPostTypes:e.state.overlayOptions.excludedPostTypes,filter:e.props.filters,staticFilters:e.props.staticFilters,pageHandle:t,query:e.props.searchQuery,resultFormat:e.getResultFormat(),siteId:e.props.options.siteId,sort:e.props.sort,postsPerPage:e.props.options.postsPerPage,adminQueryFilter:e.props.options.adminQueryFilter,isInCustomizer:e.props.isInCustomizer})})),s()(this,"updateOverlayOptions",((e,t)=>{this.setState((t=>({overlayOptionsCustomizerOverride:{...t.overlayOptionsCustomizerOverride,...e}})),t)})),this.state={isVisible:!!this.props.initialIsVisible,overlayOptionsCustomizerOverride:{}},this.getResults=l()(this.getResults,200),this.props.enableAnalytics?this.initializeAnalytics():(0,y.IJ)(),this.props.shouldIntegrateWithDom?this.props.initializeQueryValues():this.props.disableQueryStringIntegration()}static getDerivedStateFromProps(e,t){return{overlayOptions:{...e.overlayOptions,...t.overlayOptionsCustomizerOverride}}}componentDidMount(){this.getResults(),this.props.hasActiveQuery&&this.showResults()}componentDidUpdate(e,t){e.searchQuery===this.props.searchQuery&&e.sort===this.props.sort&&h()(e.filters)===h()(this.props.filters)&&h()(e.staticFilters)===h()(this.props.staticFilters)||this.onChangeQueryString(this.props.isHistoryNavigation),t.overlayOptions.defaultSort!==this.state.overlayOptions.defaultSort&&this.props.setSort(this.state.overlayOptions.defaultSort),h()(t.overlayOptions.excludedPostTypes)!==h()(this.state.overlayOptions.excludedPostTypes)&&this.getResults()}initializeAnalytics(){(0,y.tU)(),(0,y.vy)(),(0,y.AM)(this.props.options.siteId)}render(){const e=this.getResultFormat(),t=this.props.shouldCreatePortal?a.createPortal:e=>e;return i().createElement(o.Fragment,null,this.props.isInCustomizer&&i().createElement(d.Z,{showResults:this.showResults,toggleResults:this.toggleResults,updateOverlayOptions:this.updateOverlayOptions}),this.props.shouldIntegrateWithDom&&i().createElement(f.Z,{initializeQueryValues:this.props.initializeQueryValues,isVisible:this.state.isVisible,overlayOptions:this.state.overlayOptions,setFilter:this.props.setFilter,setSearchQuery:this.props.setSearchQuery,showResults:this.showResults,themeOptions:this.props.themeOptions}),t(i().createElement(m.Z,{closeColor:this.state.overlayOptions.closeColor,closeOverlay:this.hideResults,colorTheme:this.state.overlayOptions.colorTheme,hasOverlayWidgets:this.props.hasOverlayWidgets,isVisible:this.state.isVisible},i().createElement(g.Z,{closeOverlay:this.hideResults,enableLoadOnScroll:this.state.overlayOptions.enableInfScroll,enableSort:this.state.overlayOptions.enableSort,filters:this.props.filters,staticFilters:this.props.staticFilters,hasError:this.props.hasError,hasNextPage:this.props.hasNextPage,highlightColor:this.state.overlayOptions.highlightColor,isLoading:this.props.isLoading,isPhotonEnabled:this.props.options.isPhotonEnabled,isPrivateSite:this.props.options.isPrivateSite,isVisible:this.state.isVisible,locale:this.props.options.locale,onChangeSearch:this.props.setSearchQuery,onChangeSort:this.props.setSort,onLoadNextPage:this.loadNextPage,overlayTrigger:this.state.overlayOptions.overlayTrigger,postTypes:this.props.options.postTypes,response:this.props.response,resultFormat:e,searchQuery:this.props.searchQuery,showPoweredBy:this.state.overlayOptions.showPoweredBy,sort:this.props.sort,widgets:this.props.options.widgets,widgetOutsideOverlay:this.props.widgetOutsideOverlay,hasNonSearchWidgets:this.props.options.hasNonSearchWidgets})),document.body))}}s()(k,"defaultProps",{overlayOptions:{},widgets:[]}),t.Z=(0,u.$j)(((e,t)=>({filters:(0,w.Zj)(e),staticFilters:(0,w.Bk)(e),hasActiveQuery:(0,w.en)(e),hasError:(0,w.xT)(e),isHistoryNavigation:(0,w.wI)(e),hasNextPage:(0,w.Qy)(e),isLoading:(0,w.hg)(e),response:(0,w.ck)(e),searchQuery:(0,w.uP)(e),sort:(0,w.r$)(e,t.overlayOptions.defaultSort),widgetOutsideOverlay:(0,w.ZN)(e)})),{clearQueryValues:b.Mz,disableQueryStringIntegration:b.OZ,initializeQueryValues:b.Ln,makeSearchRequest:b.x1,setStaticFilter:b.O1,setFilter:b.Tv,setSearchQuery:b.ql,setSort:b.HD})(k)},2957:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(5736),i=r(660),a=r.n(i),c=r(1295);const __=o.__;let l=null;t.Z=e=>{var t;const[r]=(0,n.useState)((()=>a()("jetpack-instant-search__box-input-"))),o=(0,n.useRef)(null);return(0,n.useEffect)((()=>{var t;e.isVisible?(t=o.current,()=>{l=document.activeElement,t.focus()})():e.shouldRestoreFocus&&l&&l.focus()}),[e.isVisible,e.shouldRestoreFocus]),s().createElement(n.Fragment,null,s().createElement("div",{className:"jetpack-instant-search__box"},s().createElement("label",{className:"jetpack-instant-search__box-label",htmlFor:r},s().createElement("span",{className:"screen-reader-text assistive-text"},__("Site Search","jetpack")),s().createElement("div",{className:"jetpack-instant-search__box-gridicon"},s().createElement(c.Z,{icon:"search",size:24})),s().createElement("input",{autoComplete:"off",id:r,className:"search-field jetpack-instant-search__box-input",inputMode:"search",onChange:e.isVisible?e.onChange:null,ref:o,placeholder:__("Search…","jetpack"),type:"search",value:null!==(t=e.searchQuery)&&void 0!==t?t:""}),"string"==typeof e.searchQuery&&e.searchQuery.length>0&&
+/* Translators: Button is used to clear the search input query. */
+s().createElement("input",{type:"button",value:__("clear","jetpack"),onClick:e.onClear}),s().createElement("button",{className:"screen-reader-text assistive-text"},__("Search","jetpack")))))}},6536:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(649);t.Z=e=>s().createElement("div",{className:"jetpack-instant-search__search-form-controls"},e.children,e.enableSort&&s().createElement(o.Z,{onChange:e.onChangeSort,resultFormat:e.resultFormat,value:e.sort}))},7287:function(e,t,r){"use strict";r.d(t,{a:function(){return h},Z:function(){return d}});var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(7078),c=r.n(a),l=r(660),u=r.n(l),p=r(8931);const h=e=>e.split(" ").join("T");class d extends o.Component{constructor(){super(...arguments),s()(this,"filtersList",(0,o.createRef)()),s()(this,"idPrefix",u()("jetpack-instant-search__search-filter-")),s()(this,"toggleFilter",(()=>{this.props.onChange(this.getIdentifier(),(0,p.b)(this.filtersList.current))})),s()(this,"toggleStaticFilter",(e=>{this.props.onChange(this.getIdentifier(),e.target.value)})),s()(this,"renderDate",(e=>{let{key_as_string:t,doc_count:r}=e;const{locale:n="en-US"}=this.props;return i().createElement("div",null,i().createElement("input",{checked:this.isChecked(t),disabled:!this.isChecked(t)&&0===r,id:`${this.idPrefix}-dates-${this.getIdentifier()}-${t}`,name:t,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i().createElement("label",{htmlFor:`${this.idPrefix}-dates-${this.getIdentifier()}-${t}`,className:"jetpack-instant-search__search-filter-list-label"},new Date(h(t)).toLocaleString(n,function(e){switch(e){case"day":return{year:"numeric",month:"long",day:"numeric"};case"month":return{year:"numeric",month:"long"};case"year":return{year:"numeric"}}return{year:"numeric",month:"long"}}(this.props.configuration.interval))," ","(",r,")"))})),s()(this,"renderPostType",(e=>{let{key:t,doc_count:r}=e;const n=t in this.props.postTypes?this.props.postTypes[t].singular_name:t;return i().createElement("div",null,i().createElement("input",{checked:this.isChecked(t),disabled:!this.isChecked(t)&&0===r,id:`${this.idPrefix}-post-types-${t}`,name:t,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i().createElement("label",{htmlFor:`${this.idPrefix}-post-types-${t}`,className:"jetpack-instant-search__search-filter-list-label"},c()(n)," (",r,")"))})),s()(this,"renderTaxonomy",(e=>{let{key:t,doc_count:r}=e;const[n,s]=t&&t.split(/\/(.+)/);return i().createElement("div",null,i().createElement("input",{checked:this.isChecked(n),disabled:!this.isChecked(n)&&0===r,id:`${this.idPrefix}-taxonomies-${n}`,name:n,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i().createElement("label",{htmlFor:`${this.idPrefix}-taxonomies-${n}`,className:"jetpack-instant-search__search-filter-list-label"},c()(s)," (",r,")"))})),s()(this,"renderGroup",(e=>i().createElement("div",null,i().createElement("input",{checked:this.isChecked(e.value),id:`${this.idPrefix}-groups-${e.value}`,name:this.props.configuration.filter_id,onChange:this.toggleStaticFilter,value:e.value,type:"radio",className:"jetpack-instant-search__search-filter-list-input"}),i().createElement("label",{htmlFor:`${this.idPrefix}-groups-${e.value}`,className:"jetpack-instant-search__search-filter-list-label"},e.name))))}getIdentifier(){return"postType"===this.props.type?"post_types":"date"===this.props.type?`${this.props.configuration.interval}_${this.props.configuration.field}`:"taxonomy"===this.props.type?this.props.configuration.taxonomy:"group"===this.props.type?this.props.configuration.filter_id:void 0}isChecked(e){return Boolean(this.props.value&&this.props.value.includes(e))}renderDates(){return[...this.props.aggregation.buckets.filter((e=>!!e)).map(this.renderDate)].reverse().slice(0,this.props.configuration.count)}renderPostTypes(){return this.props.aggregation.buckets.map(this.renderPostType)}renderTaxonomies(){return this.props.aggregation.buckets.map(this.renderTaxonomy)}renderGroups(){return this.props.configuration.values.map(this.renderGroup)}render(){return i().createElement("div",null,i().createElement("h4",{className:"jetpack-instant-search__search-filter-sub-heading"},this.props.configuration.name),i().createElement("div",{ref:this.filtersList},i().createElement("div",{className:"jetpack-instant-search__search-filter-list jetpack-instant-search__search-static-filter-list"},"group"===this.props.type&&this.renderGroups()),this.props.aggregation&&"buckets"in this.props.aggregation&&i().createElement("div",{className:"jetpack-instant-search__search-filter-list"},"date"===this.props.type&&this.renderDates(),"postType"===this.props.type&&this.renderPostTypes(),"taxonomy"===this.props.type&&this.renderTaxonomies())))}}},2360:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(5736),c=r(2620),l=r(7287),u=r(2168),p=r(7283),h=r(6546);const __=a.__;class d extends o.Component{constructor(){super(...arguments),s()(this,"onChangeFilter",((e,t)=>{this.props.setFilter(e,t),this.props.onChange&&this.props.onChange()})),s()(this,"onChangeStaticFilter",((e,t)=>{(0,h.GE)({filterName:e,filterValue:t}),this.props.setStaticFilter(e,t),this.props.onChange&&this.props.onChange()})),s()(this,"onClearFilters",(e=>{e.preventDefault(),"click"!==e.type&&("keydown"!==e.type||"Enter"!==e.key&&" "!==e.key)||(this.props.clearFilters(),this.props.onChange&&this.props.onChange())})),s()(this,"renderFilterComponent",(e=>{let{configuration:t,results:r}=e;return r&&i().createElement(l.Z,{aggregation:r,configuration:t,locale:this.props.locale,onChange:this.onChangeFilter,postTypes:this.props.postTypes,type:(0,u.jc)(t),value:this.props.filters[(0,u.jZ)(t)]})})),s()(this,"renderStaticFilterComponent",(e=>e.hasOwnProperty("visible")&&!e.visible?null:i().createElement(l.Z,{aggregation:[],configuration:e,locale:this.props.locale,onChange:this.onChangeStaticFilter,postTypes:this.props.postTypes,type:(0,u.jc)(e),value:this.props.staticFilters[(0,u.jZ)(e)]})))}hasActiveFilters(){return Object.keys(this.props.filters).length>0}render(){if(!this.props.widget)return null;const e=(0,u.bA)(),t=this.props.results?.aggregations;return i().createElement("div",{className:"jetpack-instant-search__search-filters"},this.props.showTitle&&i().createElement("div",{className:"jetpack-instant-search__search-filters-title"},__("Filter options","jetpack")),this.props.showClearFiltersButton&&this.hasActiveFilters()&&i().createElement("a",{class:"jetpack-instant-search__clear-filters-link",href:"#",onClick:this.onClearFilters,onKeyDown:this.onClearFilters,role:"button",tabIndex:"0"},__("Clear filters","jetpack")),this.props.widget?.filters&&this.props.widget.filters.length>0&&e.map(this.renderStaticFilterComponent),this.props.widget?.filters?.map((e=>t?{configuration:e,results:t[e.filter_id]}:null)).filter((e=>!!e)).filter((e=>{let{results:t}=e;return!!t&&Array.isArray(t.buckets)&&t.buckets.length>0})).map(this.renderFilterComponent))}}s()(d,"defaultProps",{showClearFiltersButton:!0,showTitle:!0}),t.Z=(0,c.$j)(null,{clearFilters:p.K5,setFilter:p.Tv,setStaticFilter:p.O1})(d)},6268:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(2957);const c=e=>e.preventDefault();class l extends o.Component{constructor(){super(...arguments),s()(this,"onClear",(()=>this.props.onChangeSearch(""))),s()(this,"onChangeSearch",(e=>this.props.onChangeSearch(e.currentTarget.value)))}render(){return i().createElement("form",{autocomplete:"off",onSubmit:c,role:"search",className:this.props.className},i().createElement("div",{className:"jetpack-instant-search__search-form"},i().createElement(a.Z,{isVisible:this.props.isVisible,onChange:this.onChangeSearch,onClear:this.onClear,shouldRestoreFocus:!0,searchQuery:this.props.searchQuery})))}}t.Z=l},6034:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(1295);t.Z=e=>{let{comments:t,iconSize:r=18}=e;return t?s().createElement("div",{className:"jetpack-instant-search__search-result-comments"},s().createElement(o.Z,{icon:"comment",size:r}),s().createElement("span",{className:"jetpack-instant-search__search-result-comments-text",dangerouslySetInnerHTML:{__html:t.join(" ... ")}})):null}},8424:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(9196),s=r.n(n),o=r(6941),i=r(7979),a=r(6034),c=r(7287);function l(e){const{isMultiSite:t,locale:r="en-US"}=e,{result_type:n,fields:l,highlight:u}=e.result;if("post"!==n)return null;const p=Array.isArray(l["image.url.raw"])?l["image.url.raw"][0]:l["image.url.raw"];return s().createElement("li",{className:["jetpack-instant-search__search-result","jetpack-instant-search__search-result-expanded",`jetpack-instant-search__search-result-expanded--${l.post_type}`,p?"":"jetpack-instant-search__search-result-expanded--no-image",t?"is-multisite":""].join(" ")},s().createElement("div",{className:"jetpack-instant-search__search-result-expanded__content-container"},s().createElement("div",{className:"jetpack-instant-search__search-result-expanded__copy-container"},s().createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-expanded__title"},s().createElement("a",{className:"jetpack-instant-search__search-result-title-link jetpack-instant-search__search-result-expanded__title-link",href:`//${l["permalink.url.raw"]}`,onClick:e.onClick,dangerouslySetInnerHTML:{__html:u.title}})),!t&&s().createElement(o.Z,{className:"jetpack-instant-search__search-result-expanded__path",onClick:e.onClick,url:`//${l["permalink.url.raw"]}`}),s().createElement("div",{className:"jetpack-instant-search__search-result-expanded__content",dangerouslySetInnerHTML:{__html:u.content.join(" ... ")}}),u.comments&&s().createElement(a.Z,{comments:u.comments})),s().createElement("a",{className:"jetpack-instant-search__search-result-expanded__image-link",href:`//${l["permalink.url.raw"]}`,onClick:e.onClick},s().createElement("div",{className:"jetpack-instant-search__search-result-expanded__image-container"},p?s().createElement(i.Z,{alt:l["title.default"],className:"jetpack-instant-search__search-result-expanded__image",isPhotonEnabled:e.isPhotonEnabled,src:`//${p}`}):null))),t&&s().createElement("ul",{className:"jetpack-instant-search__search-result-expanded__footer"},s().createElement("li",null,s().createElement(i.Z,{alt:l.blog_name,className:"jetpack-instant-search__search-result-expanded__footer-blog-image",isPhotonEnabled:!1,height:24,width:24,src:l.blog_icon_url,lazyLoad:!1}),s().createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-blog"},l.blog_name)),s().createElement("li",null,s().createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-author"},l.author)),s().createElement("li",null,s().createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-date"},new Date((0,c.a)(l.date)).toLocaleDateString(r,{year:"numeric",month:"short",day:"numeric"})))))}},7165:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(1295),i=r(6941),a=r(1208),c=r(6034);class l extends n.Component{getIconSize(){return 18}getTags(){let e=this.props.result.fields["tag.name.default"];return e?(Array.isArray(e)||(e=[e]),e.slice(0,5)):[]}getCategories(){let e=this.props.result.fields["category.name.default"];return e?(Array.isArray(e)||(e=[e]),e.slice(0,5)):[]}renderNoMatchingContent(){const e=this.getTags(),t=this.getCategories(),r=0===e.length&&0===t.length;return s().createElement("div",{className:"jetpack-instant-search__search-result-minimal-content"},r&&s().createElement(i.Z,{url:this.props.result.fields["permalink.url.raw"]}),s().createElement("div",{className:"jetpack-instant-search__search-result-minimal-cats-and-tags"},0!==e.length&&s().createElement("ul",{className:"jetpack-instant-search__search-result-minimal-tags"},e.map((e=>s().createElement("li",{className:"jetpack-instant-search__search-result-minimal-tag"},s().createElement(o.Z,{icon:"tag",size:this.getIconSize()}),s().createElement("span",{className:"jetpack-instant-search__search-result-minimal-tag-text"},e))))),0!==t.length&&s().createElement("ul",{className:"jetpack-instant-search__search-result-minimal-cats"},t.map((e=>s().createElement("li",{className:"jetpack-instant-search__search-result-minimal-cat"},s().createElement(o.Z,{icon:"folder",size:this.getIconSize()}),s().createElement("span",{className:"jetpack-instant-search__search-result-minimal-cat-text"},e)))))))}renderMatchingContent(){return s().createElement("div",{className:"jetpack-instant-search__search-result-minimal-content",dangerouslySetInnerHTML:{__html:this.props.result.highlight.content.join(" ... ")}})}render(){const{result_type:e,fields:t,highlight:r}=this.props.result;if("post"!==e)return null;const n=!r.content||""===r.content[0];return s().createElement("li",{className:"jetpack-instant-search__search-result jetpack-instant-search__search-result-minimal"},s().createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-minimal-title"},s().createElement(a.Z,{postType:t.post_type,shortcodeTypes:t.shortcode_types}),s().createElement("a",{className:"jetpack-instant-search__search-result-title-link jetpack-instant-search__search-result-minimal-title-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick,dangerouslySetInnerHTML:{__html:r.title}})),n?this.renderNoMatchingContent():this.renderMatchingContent(),s().createElement(c.Z,{comments:r&&r.comments}))}}t.Z=l},1828:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(5736),i=r(1295),a=r(7979),c=r(7265),l=r(9592);const __=o.__;class u extends n.Component{render(){const{result_type:e,fields:t,highlight:r}=this.props.result;if("post"!==e)return null;const n=Array.isArray(t["image.url.raw"])?t["image.url.raw"][0]:t["image.url.raw"],o=Array.isArray(r.title)&&r.title[0].length>0?r.title[0]:__("No title","jetpack"),u="string"==typeof this.props.searchQuery&&""!==this.props.searchQuery.trim(),p=o.includes("<mark>"),h=u&&!p&&Array.isArray(r.content)&&r.content[0]?.length>0;return s().createElement("li",{className:"jetpack-instant-search__search-result jetpack-instant-search__search-result-product"},s().createElement("a",{className:"jetpack-instant-search__search-result-product-img-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick},s().createElement("div",{className:"jetpack-instant-search__search-result-product-img-container "+(n?"":"jetpack-instant-search__search-result-product-img-container--placeholder")},n?s().createElement(a.Z,{alt:t["title.default"],className:"jetpack-instant-search__search-result-product-img",isPhotonEnabled:this.props.isPhotonEnabled,src:`//${n}`}):s().createElement("div",{className:"jetpack-instant-search__search-result-product-img"},s().createElement(i.Z,{icon:"block",style:{}}),s().createElement(i.Z,{icon:"image",style:{},title:__("Does not have an image","jetpack")})))),s().createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-product-title"},s().createElement("a",{className:"jetpack-instant-search__search-result-title-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick,dangerouslySetInnerHTML:{__html:o}})),s().createElement(l.Z,{price:t["wc.price"],salePrice:t["wc.sale_price"],formattedPrice:t["wc.formatted_price"],formattedRegularPrice:t["wc.formatted_regular_price"],formattedSalePrice:t["wc.formatted_sale_price"]}),!!t["meta._wc_average_rating.double"]&&s().createElement(c.Z,{count:t["meta._wc_review_count.long"],rating:t["meta._wc_average_rating.double"],permalink:`//${t["permalink.url.raw"]}`}),h&&s().createElement("div",{className:"jetpack-instant-search__search-result-product-match"},s().createElement("mark",null,s().createElement(i.Z,{icon:"search",style:{},title:!1}),s().createElement("span",null,"comment"in r?__("Matches comments","jetpack"):__("Matches content","jetpack",0)))))}}t.Z=u},6072:function(e,t,r){"use strict";var n=r(9183),s=r.n(n),o=r(7538),i=r.n(o),a=r(9196),c=r.n(a),l=r(7165),u=r(8424),p=r(1828),h=r(6546),d=r(9532);class f extends a.Component{constructor(){super(...arguments),i()(this,"onClick",(()=>{this.props.railcar&&(0,h.Lo)({...this.getCommonTrainTracksProps(),action:"click"})}))}componentDidMount(){this.props.railcar&&(0,h.Sn)(this.getCommonTrainTracksProps())}componentDidUpdate(e){this.props.railcar!==e.railcar&&this.props.railcar&&(0,h.Sn)(this.getCommonTrainTracksProps())}getCommonTrainTracksProps(){return{fetch_algo:this.props.railcar.fetch_algo,fetch_position:this.props.railcar.fetch_position,fetch_query:this.props.railcar.fetch_query,railcar:this.props.railcar.railcar,rec_blog_id:this.props.railcar.rec_blog_id,rec_post_id:this.props.railcar.rec_post_id,session_id:this.props.railcar.session_id,ui_algo:"jetpack-instant-search-ui/v1",ui_position:this.props.index}}render(){if(this.props.resultFormat===d.LI)return c().createElement(p.Z,s()({onClick:this.onClick},this.props));if(this.props.resultFormat===d.Pz){const e=this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==d.Bk;return c().createElement(u.Z,s()({onClick:this.onClick},this.props,{isMultiSite:e}))}return c().createElement(l.Z,s()({onClick:this.onClick},this.props))}}t.Z=f},5031:function(e,t,r){"use strict";var n=r(7538),s=r.n(n),o=r(5736),i=r(9196),a=r.n(i),c=r(1295),l=r(3660),u=r(9534),p=r(6536),h=r(6268),d=r(6072),f=r(6068),m=r(4592),g=r(2168),y=r(9532);const v=o.__,_=o._n,__=v,_n=_;class E extends i.Component{constructor(){super(...arguments),s()(this,"state",{shouldShowMobileSecondary:!1}),s()(this,"toggleMobileSecondary",(e=>{"click"!==e.type&&("keydown"!==e.type||"Enter"!==e.key&&" "!==e.key)||(" "===e.key&&e.preventDefault(),this.setState((e=>({shouldShowMobileSecondary:!e.shouldShowMobileSecondary}))))})),s()(this,"closeOverlay",(e=>{e.preventDefault(),this.props.closeOverlay()})),s()(this,"onKeyPressHandler",(e=>{"Enter"===e.key&&(e.preventDefault(),this.props.closeOverlay())}))}hasFilterOptions(){let e=[...this.props.widgets];return this.props.widgetOutsideOverlay?.filters?.length>0&&(e=[this.props.widgetOutsideOverlay,...e]),e.length>0}getSearchTitle(){const{total:e=0,corrected_query:t=!1}=this.props.response,r=""!==this.props.searchQuery,n=!1!==t,s=(new Intl.NumberFormat).format(e),i=this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==y.Bk;if(this.props.isLoading)return r?__("Searching…","jetpack",0):__("Loading popular results…","jetpack");if(0===e||this.props.hasError)return __("No results found","jetpack");if(r&&n)return(0,o.sprintf)(
+/* translators: %1$s: number of results. %2$s: the corrected search query. */
+_n('Found %1$s result for "%2$s"','Found %1$s results for "%2$s"',e,"jetpack"),s,t);if(i){const t=(0,g.bA)().filter((e=>"group_id"===e.filter_id)),r=1===t.length&&t[0].values?t[0].values.filter((e=>e.value!==y.Bk)):{},n=r[0]?.name?r[0].name:__("All P2","jetpack");return(0,o.sprintf)(
+/* translators: %1$s: number of results. - %2$s: site name. */
+_n("Found %1$s result in %2$s","Found %1$s results in %2$s",e,"jetpack"),s,n)}return r?(0,o.sprintf)(
+/* translators: %s: number of results. */
+_n("Found %s result","Found %s results",e,"jetpack"),s,this.props.searchQuery):__("Showing popular results","jetpack")}renderPrimarySection(){const{highlightColor:e,searchQuery:t}=this.props,{results:r=[],total:n=0,corrected_query:s=!1}=this.props.response,c=(0,m.B)(e),p=!1!==s,h=n>0;return a().createElement(i.Fragment,null,a().createElement("style",{dangerouslySetInnerHTML:{__html:`\n\t\t\t\t\t\t\t.jetpack-instant-search *::selection,\n\t\t\t\t\t\t\t.jetpack-instant-search .jetpack-instant-search__search-results .jetpack-instant-search__search-results-primary .jetpack-instant-search__search-result mark {\n\t\t\t\t\t\t\t\tcolor: ${c};\n\t\t\t\t\t\t\t\tbackground-color: ${e};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`}}),a().createElement("div",{className:"jetpack-instant-search__search-results-title"},this.getSearchTitle()),h&&p&&a().createElement("p",{className:"jetpack-instant-search__search-results-unused-query"},
+/* translators: %s: Search query. */
+(0,o.sprintf)(__('No results for "%s"',"jetpack"),t)),this.props.hasError&&a().createElement(l.Z,{type:"warning"},__("It looks like you're offline. Please reconnect for results.","jetpack")),h&&!this.props.hasError&&this.props.response._isOffline&&a().createElement(l.Z,{type:"warning"},__("It looks like you're offline. Please reconnect to load the latest results.","jetpack")),h&&!this.props.hasError&&a().createElement("ol",{className:`jetpack-instant-search__search-results-list is-format-${this.props.resultFormat}`},r.map(((e,t)=>a().createElement(d.Z,{index:t,staticFilters:this.props.staticFilters,isPhotonEnabled:this.props.isPhotonEnabled,locale:this.props.locale,railcar:this.props.isVisible?e.railcar:null,result:e,resultFormat:this.props.resultFormat,searchQuery:this.props.searchQuery})))),h&&this.props.hasNextPage&&a().createElement("div",{className:"jetpack-instant-search__search-results-pagination"},a().createElement(u.Z,{enableLoadOnScroll:this.props.enableLoadOnScroll,isLoading:this.props.isLoading,onLoadNextPage:this.props.onLoadNextPage})))}renderSecondarySection(){return a().createElement(f.Z,{filters:this.props.filters,staticFilters:this.props.staticFilters,isLoading:this.props.isLoading,locale:this.props.locale,postTypes:this.props.postTypes,response:this.props.response,showPoweredBy:this.props.showPoweredBy,widgets:this.props.widgets,widgetOutsideOverlay:this.props.widgetOutsideOverlay})}render(){return a().createElement("div",{"aria-hidden":!0===this.props.isLoading,"aria-live":"polite",className:"jetpack-instant-search__search-results"},a().createElement("div",{className:"jetpack-instant-search__search-results-controls"},a().createElement(h.Z,{className:"jetpack-instant-search__search-results-search-form",isVisible:this.props.isVisible,onChangeSearch:this.props.onChangeSearch,searchQuery:this.props.searchQuery}),a().createElement("button",{className:"jetpack-instant-search__overlay-close",onClick:this.closeOverlay,onKeyPress:this.onKeyPressHandler,tabIndex:"0","aria-label":__("Close search results","jetpack")},a().createElement(c.Z,{icon:"cross",size:"24","aria-hidden":"true",focusable:"false"}))),a().createElement(p.Z,{enableSort:this.props.enableSort,onChangeSort:this.props.onChangeSort,resultFormat:this.props.resultFormat,sort:this.props.sort},(this.hasFilterOptions()||this.props.hasNonSearchWidgets)&&a().createElement("div",{role:"button",onClick:this.toggleMobileSecondary,onKeyDown:this.toggleMobileSecondary,tabIndex:"0",className:"jetpack-instant-search__search-results-filter-button"},__("Filters","jetpack"),a().createElement(c.Z,{icon:"chevron-down",size:16,alt:__("Show search filters","jetpack"),"aria-hidden":"true"}),a().createElement("span",{className:"screen-reader-text assistive-text"},this.state.shouldShowMobileSecondary?__("Hide filters","jetpack"):__("Show filters","jetpack")))),a().createElement("div",{className:"jetpack-instant-search__search-results-content"},a().createElement("div",{className:"jetpack-instant-search__search-results-primary"},this.renderPrimarySection()),a().createElement("div",{className:["jetpack-instant-search__search-results-secondary",(this.state.shouldShowMobileSecondary?"jetpack-instant-search__search-results-secondary--show-as-modal":"")+" "].join(" ")},this.renderSecondarySection())))}}t.Z=E},649:function(e,t,r){"use strict";r.d(t,{Z:function(){return l}});var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o),a=r(5736),c=r(4877);const __=a.__;class l extends o.Component{constructor(){super(...arguments),s()(this,"handleKeyPress",(e=>{this.props.value!==e.currentTarget.value&&"Enter"===e.key&&(e.preventDefault(),this.props.onChange(e.currentTarget.dataset.value))})),s()(this,"handleClick",(e=>{this.props.value!==e.currentTarget.value&&(e.preventDefault(),this.props.onChange(e.currentTarget.dataset.value))})),s()(this,"handleSelectChange",(e=>{this.props.value!==e.currentTarget.value&&(e.preventDefault(),this.props.onChange(e.currentTarget.value))}))}render(){const e=(0,c.n)(this.props.resultFormat);return e.size>3?i().createElement("div",{className:"jetpack-instant-search__search-sort jetpack-instant-search__search-sort-with-select"},i().createElement("label",{htmlFor:"jetpack-instant-search__search-sort-select"},__("Sort:","jetpack")),i().createElement("select",{id:"jetpack-instant-search__search-sort-select",onBlur:this.handleSelectChange,onChange:this.handleSelectChange},[...e.entries()].map((e=>{let[t,r]=e;return i().createElement("option",{value:t,key:t,selected:this.props.value===t?"selected":""},r)})))):i().createElement("div",{className:"jetpack-instant-search__search-sort jetpack-instant-search__search-sort-with-links"},i().createElement("div",{className:"screen-reader-text"},__("Sort by: ","jetpack")),[...e.entries()].map((e=>{let[t,r]=e;return i().createElement("a",{className:"jetpack-instant-search__search-sort-option "+(this.props.value===t?"is-selected":""),"data-value":t,key:t,onClick:this.handleClick,onKeyPress:this.handleKeyPress,role:"button",tabIndex:0},r)})))}}},6068:function(e,t,r){"use strict";var n=r(9196),s=r.n(n),o=r(1850),i=r(2360),a=r(3595),c=r(1429);t.Z=e=>s().createElement("div",{className:"jetpack-instant-search__sidebar"},s().createElement(i.Z,{filters:e.filters,staticFilters:e.staticFilters,loading:e.isLoading,locale:e.locale,postTypes:e.postTypes,results:e.response,showClearFiltersButton:!0,widget:e.widgetOutsideOverlay}),s().createElement(a.Z,null),e.widgets.map((t=>(0,o.createPortal)(s().createElement("div",{id:`${t.widget_id}-portaled-wrapper`,className:"jetpack-instant-search__portaled-wrapper"},s().createElement(i.Z,{filters:e.filters,staticFilters:e.staticFilters,loading:e.isLoading,locale:e.locale,postTypes:e.postTypes,results:e.response,showClearFiltersButton:!1,showTitle:!1,widget:t})),document.getElementById(`${t.widget_id}-wrapper`)))),e.showPoweredBy&&s().createElement(c.Z,{locale:e.locale}))},3595:function(e,t,r){"use strict";r.d(t,{Z:function(){return a}});var n=r(7538),s=r.n(n),o=r(9196),i=r.n(o);class a extends o.Component{constructor(){super(...arguments),s()(this,"container",(0,o.createRef)())}componentDidMount(){const e=document.getElementsByClassName("jetpack-instant-search__widget-area")[0];e&&(e.style.removeProperty("display"),this.container.current.appendChild(e))}shouldComponentUpdate(){return!1}render(){return i().createElement("div",{className:"jetpack-instant-search__widget-area-container",ref:this.container})}}},5242:function(e,t,r){"use strict";function n(e,t,r){if(!e)return"";const n=decodeURIComponent(e);return(!t||"false"!==n)&&(!(!t||"true"!==n)||(r&&0*+n==0?+n:n))}function s(e,t,r){let s,o;const i={},a=e.split("&");for(t=void 0===t||t,r=void 0===r||r;s=a.shift();)s=s.split("="),o=s.shift(),void 0!==i[o]?i[o]=[].concat(i[o],n(s.shift(),t,r)):i[o]=n(s.shift(),t,r);return i}r.d(t,{J:function(){return s}})},230:function(e,t,r){"use strict";r.d(t,{a5:function(){return d},Wb:function(){return f},yC:function(){return x}});var n=r(4090),s=r(8118),o=r(8027),i=r.n(o),a=r(8763),c=r(2168),l=r(9532);let u;const p=(0,a.Z)(30,5*l.AG),h=(0,a.Z)(30,30*l.AG);function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t={};return e.forEach((e=>{let{filters:r}=e;return r.forEach((e=>{t[e.filter_id]=m(e)}))})),t}function f(e){var t;return e=null!==(t=e)&&void 0!==t?t:{},Object.fromEntries(Object.entries(e).filter((e=>{let[,t]=e;return t?.buckets?.length>0})).map((e=>{let[t,r]=e;const n=r.buckets.map((e=>({...e,doc_count:0})));return[t,{...r,buckets:n}]})))}function m(e){switch(e.type){case"date_histogram":return{date_histogram:{field:"post_date_gmt"===e.field?"date_gmt":"date",interval:e.interval}};case"taxonomy":{let t=`taxonomy.${e.taxonomy}.slug_slash_name`;return"post_tag"===e.taxonomy?t="tag.slug_slash_name":"category"===e.taxonomy&&(t="category.slug_slash_name"),{terms:{field:t,size:e.count}}}case"post_type":return{terms:{field:e.type,size:e.count}}}}j();const g=/(\d{4})-(\d{2})-(\d{2})/;function y(e,t,r){let n,s;"year"===r&&([,n,,]=t.match(g)),"month"===r&&([,n,s]=t.match(g));let o="",i="";if(s){const e=+s+1,t=e<10?`0${e}`:`${e}`;o=`${n}-${s}-01`,i=e<=12?`${n}-${t}-01`:+n+1+"-01-01"}else n&&(o=`${n}-01-01`,i=+n+1+"-01-01");return{range:{[e]:{gte:o,lt:i}}}}const v=new Map([["post_types",e=>({term:{post_type:e}})],["category",e=>({term:{"category.slug":e}})],["post_tag",e=>({term:{"tag.slug":e}})],["month_post_date",e=>y("date",e,"month")],["month_post_date_gmt",e=>y("date_gmt",e,"month")],["month_post_modified",e=>y("date",e,"month")],["month_post_modified_gmt",e=>y("date_gmt",e,"month")],["year_post_date",e=>y("date",e,"year")],["year_post_date_gmt",e=>y("date_gmt",e,"year")],["year_post_modified",e=>y("date",e,"year")],["year_post_modified_gmt",e=>y("date_gmt",e,"year")]]);function _(e){const t={};return Object.keys(e).forEach((r=>{const n=e[r];"group_id"===r&&n!==l.Bk&&(t[r]=n)})),t}function E(e,t,r){const n={bool:{must:[]}};return(0,c.wP)().filter((t=>{return r=e[t],Array.isArray(r)&&r.length>0;var r})).forEach((t=>{e[t].forEach((e=>{v.has(t)?n.bool.must.push(v.get(t)(e)):n.bool.must.push({term:{[`taxonomy.${t}.slug`]:e}})}))})),t&&n.bool.must.push(t),r?.length>0&&n.bool.must.push({bool:{must_not:r.map((e=>v.get("post_types")(e)))}}),n}const b=new Map([["oldest","date_asc"],["newest","date_desc"],["relevance","score_default"]]);function w(e){return["price_asc","price_desc","rating_desc"].includes(e)?e:b.get(e,"score_default")}function k(e){let{aggregations:t,excludedPostTypes:r,filter:o,staticFilters:i,pageHandle:a,query:c,resultFormat:u,sort:p,postsPerPage:h=10,adminQueryFilter:d,isInCustomizer:f=!1}=e;null===c&&(c="");let m=["date","permalink.url.raw","tag.name.default","category.name.default","post_type","has.image","shortcode_types","image.url.raw"];(u===l.LI||f)&&(m=m.concat(["meta._wc_average_rating.double","meta._wc_review_count.long","wc.formatted_price","wc.formatted_regular_price","wc.formatted_sale_price","wc.price","wc.sale_price"])),i&&i.group_id&&i.group_id!==l.Bk&&(m=m.concat(["author","blog_name","blog_icon_url"]));let g={aggregations:t,fields:m,highlight_fields:["title","content","comments"],filter:E(o,d,r),query:encodeURIComponent(c),sort:w(p),page_handle:a,size:h};return i&&Object.keys(i).length>0&&(g={...g,..._(i)}),(0,n.c)((0,s.x)(g))}function S(e){return function(t){const r=p.get(e)||h.get(e);if("AbortError"===t.name)return r?{_isCached:!0,_isError:!1,_isOffline:!1,...r}:null;if(r)return{_isCached:!0,_isError:!0,_isOffline:!1,...r};throw t}}function C(e,t){return function(r){const n={...r,requestId:t};return p.set(e,n),h.set(e,n),n}}function j(){u&&u.abort(),u=new AbortController}function x(e,t){const r=i()(Array.from(arguments));if(!navigator.onLine&&h.get(r))return Promise.resolve(h.get(r)).then((e=>({_isCached:!0,_isError:!1,_isOffline:!0,...e})));if(p.get(r))return Promise.resolve(p.get(r)).then((e=>({_isCached:!0,_isError:!1,_isOffline:!1,...e})));const n=k(e),s=S(r),o=C(r,t),a=`/sites/${e.siteId}/search?${n}`,{apiNonce:c,apiRoot:d,homeUrl:f,isPrivateSite:m,isWpcom:g}=window[l.W1],y=`https://public-api.wordpress.com/rest/v1.3${a}`,v=`${f}/wp-json/wpcom-origin/v1.3${a}`,_=`${d}wpcom/v2/search?${n}`;let E=y;return m&&g?E=v:m&&(E=_),j(),fetch(E,{headers:m?{"X-WP-Nonce":c}:{},credentials:m?"include":"same-origin",signal:u.signal}).then((e=>200!==e.status?Promise.reject(`Unexpected response from API with status code ${e.status}.`):e)).then((e=>e.json())).then(o).catch(s)}},7135:function(e,t,r){"use strict";function n(e,t){Array.isArray(e)||(e=[e]);return 0!==e.filter((e=>t.includes(e))).length}r.d(t,{Z:function(){return n}})},4592:function(e,t,r){"use strict";function n(e){const t=function(e){let t;return"#"===e[0]&&(t=e.substring(1)),3===t.length&&(t=t.split("").map((e=>`${e}${e}`)).join("")),t}(e);return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3>=128?"black":"white"}r.d(t,{B:function(){return n}})},9532:function(e,t,r){"use strict";r.d(t,{Bk:function(){return s},W1:function(){return o},zg:function(){return i},oy:function(){return a},Pz:function(){return c},LI:function(){return l},AG:function(){return u},PP:function(){return p},yb:function(){return h},kQ:function(){return d},bk:function(){return f},aP:function(){return m},rs:function(){return g}});var n=r(5736);const __=n.__,s="__NO_GROUP__",o="JetpackInstantSearchOptions",i="jetpack-instant-search__overlay",a="ASC",c="expanded",l="product",u=6e4,p="relevance",h=1e3,d=["newest","oldest",p,"price_asc","price_desc","rating_desc"],f=[c,"minimal",l],m=new Map([[p,__("Relevance","jetpack")],["newest",__("Newest","jetpack")],["oldest",__("Oldest","jetpack")]]),g=new Map([["price_asc",__("Price: low to high","jetpack")],["price_desc",__("Price: high to low","jetpack")],["rating_desc",__("Rating","jetpack")]])},7079:function(e,t,r){"use strict";r.d(t,{Em:function(){return i},vJ:function(){return a}});var n=r(9532);const s=new Map([["jetpack_search_color_theme","colorTheme"],["jetpack_search_enable_sort","enableSort"],["jetpack_search_highlight_color","highlightColor"],["jetpack_search_inf_scroll","enableInfScroll"],["jetpack_search_overlay_trigger","overlayTrigger"],["jetpack_search_show_powered_by","showPoweredBy"],["jetpack_search_result_format","resultFormat"]]);function o(){return"function"==typeof window?.wp?.customize}function i(e){o()&&window.addEventListener("message",(t=>{t.data&&t.target===window&&"jetpackSearchSectionOpen"===t.data?.key&&"expanded"in t.data&&e(t.data.expanded)}))}function a(e){o()&&s.forEach(((t,r)=>{window.wp.customize(r,(r=>{r.bind((function(r){const s={[t]:r};window[n.W1].showResults=!0,window[n.W1].overlayOptions={...window[n.W1].overlayOptions,...s},e&&e(s)}))}))}))}},8931:function(e,t,r){"use strict";function n(e){return[...e.querySelectorAll('input[type="checkbox"]').values()].filter((e=>e.checked)).map((e=>e.name))}function s(e){const t={searchInputSelector:['input[name="s"]:not(.jetpack-instant-search__box-input)',"#searchform input.search-field:not(.jetpack-instant-search__box-input)",".search-form input.search-field:not(.jetpack-instant-search__box-input)",".searchform input.search-field:not(.jetpack-instant-search__box-input)"].join(", "),filterInputSelector:["a.jetpack-search-filter__link"],overlayTriggerSelector:[".jetpack-instant-search__open-overlay-button","header#site-header .search-toggle[data-toggle-target]"].join(",")};return e.theme_options?{...t,...e.theme_options}:t}r.d(t,{b:function(){return n},C:function(){return s}})},2168:function(e,t,r){"use strict";r.d(t,{wP:function(){return o},bA:function(){return i},i3:function(){return a},do:function(){return l},jZ:function(){return p},$s:function(){return h},jc:function(){return d}});var n=r(9532);const s=Object.freeze(["post_types","category","post_format","post_tag","month_post_date","month_post_date_gmt","month_post_modified","month_post_modified_gmt","year_post_date","year_post_date_gmt","year_post_modified","year_post_modified_gmt"]);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[n.W1]?.widgets,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window[n.W1]?.widgetsOutsideOverlay;const r=new Set(s);return[...null!=e?e:[],...null!=t?t:[]].map((e=>e.filters)).filter((e=>Array.isArray(e))).reduce(((e,t)=>e.concat(t)),[]).filter((e=>"taxonomy"===e.type)).forEach((e=>r.add(e.taxonomy))),[...r]}function i(){return window[n.W1]?.staticFilters?window[n.W1].staticFilters:[]}function a(){const e=i(),t=new Set;return e.forEach((e=>t.add(e.filter_id))),[...t]}function c(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[n.W1]?.widgets;return null!==(e=t?.map(u).reduce(((e,t)=>e.concat(t)),[]))&&void 0!==e?e:[]}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[n.W1]?.widgets;const t=c(e);return o().filter((e=>!t.includes(e)))}function u(e){return e.filters.map(p).filter((e=>"string"==typeof e))}function p(e){return"date_histogram"===e.type?`${e.interval}_${e.field}`:"taxonomy"===e.type?`${e.taxonomy}`:"post_type"===e.type?"post_types":"group"===e.type?e.filter_id:null}function h(e){return e.includes("month")?{field:e.split("month_").pop(),type:"date_histogram",interval:"month"}:e.includes("year")?{field:e.split("year_").pop(),type:"date_histogram",interval:"year"}:"post_types"===e?{type:"post_type"}:"group"===e?{type:"group"}:{type:"taxonomy",taxonomy:e}}function d(e){return"date_histogram"===e.type?"date":"taxonomy"===e.type?"taxonomy":"post_type"===e.type?"postType":"group"===e.type?"group":void 0}},7802:function(e,t,r){"use strict";r.d(t,{y:function(){return i}});var n=r(278),s=r(9196);function o(e){return e?e.split("?",1)[0]:""}function i(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const[a,c]=(0,s.useState)(null),l=o(e),u=["gif","jpg","jpeg","png","webp"],p=l?.substring(l.lastIndexOf(".")+1).toLowerCase(),h=u.includes(p);return(0,s.useEffect)((()=>{if(i&&h){const s=(0,n.Z)(l,{resize:`${t},${r}`});c(s||e)}else c(e)}),[e,t,r,i,l,h]),a}},6669:function(e,t,r){"use strict";r.d(t,{pm:function(){return a},_L:function(){return c},ug:function(){return l},Q0:function(){return u}});var n=r(4090),s=r(9532),o=r(2168),i=r(5242);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.search;return(0,i.J)(e.substring(1),!1,!1)}function c(e){!function(e){if(history.pushState){const t=new window.URL(window.location.href);window[s.W1]&&"homeUrl"in window[s.W1]&&(t.href=window[s.W1].homeUrl),t.search=e,window.history.pushState(null,null,t.toString())}}((0,n.c)(e))}function l(){const e=a();return s.bk.includes(e.result_format)?e.result_format:null}function u(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(history.pushState&&history.replaceState){const s=new URL(e),i=a(s.search),c=[...(0,o.wP)(),...(0,o.i3)(),"s","sort"],l=Object.keys(i).some((e=>c.includes(e)));if(l&&c.forEach((e=>delete i[e])),s.search=(0,n.c)(i),r?window.history.replaceState(null,null,s.toString()):window.history.pushState(null,null,s.toString()),l)return void window.location.reload();t()}}},4877:function(e,t,r){"use strict";r.d(t,{n:function(){return s}});var n=r(9532);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e!==n.LI?n.aP:new Map([...n.aP,...n.rs])}},6546:function(e,t,r){"use strict";r.d(t,{IJ:function(){return o},tU:function(){return i},vy:function(){return a},AM:function(){return c},Ny:function(){return l},Sn:function(){return u},Lo:function(){return p},GE:function(){return h}});let n=!0;const s={};function o(){n=!1}function i(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(e||n)&&(window._tkq=window._tkq||[])}function a(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(e||n)&&window._tkq.push(["clearIdentity"])}function c(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(t||n)&&(s.blog_id=e)}function l(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(r||n)&&window._tkq.push(["recordEvent",e,{...s,...t}])}function u(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];l("jetpack_instant_search_traintracks_render",e,t)}function p(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];l("jetpack_instant_search_traintracks_interact",e,t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];l("jetpack_instant_search_static_filter_select",e,t)}},7283:function(e,t,r){"use strict";function n(e){return{type:"MAKE_SEARCH_REQUEST",options:e}}function s(e){let{options:t,response:r}=e;return{type:"RECORD_SUCCESSFUL_SEARCH_REQUEST",options:t,response:r}}function o(e){return{type:"RECORD_FAILED_SEARCH_REQUEST",error:e}}function i(){let{isHistoryNavigation:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:"INITIALIZE_QUERY_VALUES",isHistoryNavigation:e}}function a(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return{type:"SET_SEARCH_QUERY",query:e,propagateToWindow:t}}function c(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return{type:"SET_SORT",sort:e,propagateToWindow:t}}function l(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:"SET_FILTER",name:e,value:t,propagateToWindow:r}}function u(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:"SET_STATIC_FILTER",name:e,value:t,propagateToWindow:r}}function p(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return{type:"CLEAR_FILTERS",propagateToWindow:e}}function h(){return{type:"CLEAR_QUERY_VALUES"}}function d(){return{type:"DISABLE_QUERY_STRING_INTEGRATION"}}r.d(t,{x1:function(){return n},C0:function(){return s},Y6:function(){return o},Ln:function(){return i},ql:function(){return a},HD:function(){return c},Tv:function(){return l},O1:function(){return u},K5:function(){return p},Mz:function(){return h},OZ:function(){return d}})},6439:function(e,t,r){"use strict";var n=r(5034),s=r.n(n),o=r(230),i=r(9532),a=r(2168),c=r(6669),l=r(7283);let u=0,p=!0;const h=s()(c._L,i.yb);t.Z={CLEAR_FILTERS:function(e){if(!1===e.propagateToWindow||!p)return;const t=(0,c.pm)();(0,a.wP)().forEach((e=>delete t[e])),(0,a.i3)().forEach((e=>delete t[e])),(0,c._L)(t)},DISABLE_QUERY_STRING_INTEGRATION:function(){p=!1},INITIALIZE_QUERY_VALUES:function(e,t){const r=(0,c.pm)();let n;"s"in r?t.dispatch((0,l.ql)(r.s,!1)):t.dispatch((0,l.ql)(null,!1)),i.kQ.includes(r.sort)?n=r.sort:"date"===r.orderby?n="string"==typeof r.order&&r.order.toUpperCase()===i.oy?"oldest":"newest":"relevance"===r.orderby&&(n="relevance"),"string"==typeof n&&t.dispatch((0,l.HD)(n,!1)),t.dispatch((0,l.K5)(!1)),(0,a.wP)().filter((e=>e in r)).forEach((e=>t.dispatch((0,l.Tv)(e,r[e],!1)))),(0,a.i3)().filter((e=>e in r)).forEach((e=>t.dispatch((0,l.O1)(e,r[e],!1))))},MAKE_SEARCH_REQUEST:function(e,t){u++,(0,o.yC)(e.options,u).then((r=>{null!==r&&t.dispatch((0,l.C0)({options:e.options,response:r}))})).catch((e=>{console.error("Jetpack Search encountered an error:",e),t.dispatch((0,l.Y6)(e))}))},SET_FILTER:function(e){if(!1===e.propagateToWindow||!p)return;if(!(0,a.wP)().includes(e.name))return;const t=(0,c.pm)();t[e.name]=e.value,(0,c._L)(t)},SET_STATIC_FILTER:function(e){if(!1===e.propagateToWindow)return;if(!(0,a.i3)().includes(e.name))return;const t=(0,c.pm)();t[e.name]=e.value,(0,c._L)(t)},SET_SEARCH_QUERY:function(e){if(!1===e.propagateToWindow||!p)return;const t=(0,c.pm)();null!==e.query?t.s=e.query:delete t.s,h(t)},SET_SORT:function(e){if(!1===e.propagateToWindow||!p)return;if(!i.kQ.includes(e.sort))return;const t=(0,c.pm)();t.sort=e.sort,delete t.order,delete t.orderby,(0,c._L)(t)}}},9499:function(e,t,r){"use strict";var n=r(4978),s=r(2601),o=r.n(s),i=r(6439),a=r(6680);const c=[o()(i.Z)],l=(0,n.MT)(a.ZP,{},(0,n.md)(...c));t.Z=l},8720:function(e,t,r){"use strict";r.d(t,{xT:function(){return o},hg:function(){return i},p:function(){return a}});var n=r(230);let s={};function o(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"MAKE_SEARCH_REQUEST":case"RECORD_SUCCESSFUL_SEARCH_REQUEST":return!1;case"RECORD_FAILED_SEARCH_REQUEST":return!0}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"MAKE_SEARCH_REQUEST":return!0;case"RECORD_SUCCESSFUL_SEARCH_REQUEST":case"RECORD_FAILED_SEARCH_REQUEST":return!1}return e}function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if("RECORD_SUCCESSFUL_SEARCH_REQUEST"===t.type){if("requestId"in e&&"requestId"in t.response&&e.requestId>t.response.requestId)return e;const r={...t.response};return t.options.pageHandle&&(r.aggregations={..."aggregations"in e&&!Array.isArray(e)?e.aggregations:{},...Array.isArray(r.aggregations)?{}:r.aggregations},r.results=[..."results"in e?e.results:[],...r.results],s={}),Array.isArray(r.results)&&r.results.length>r.total&&(r.total=r.results.length),t.options.pageHandle||(r.results?.length>0?s=(0,n.Wb)(r.aggregations):r.aggregations=s),r}return e}},6801:function(e,t,r){"use strict";function n(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"INITIALIZE_QUERY_VALUES":return t.isHistoryNavigation;case"SET_SEARCH_QUERY":case"SET_SORT":case"CLEAR_FILTERS":case"SET_FILTER":return!t.propagateToWindow&&e}return e}r.d(t,{w:function(){return n}})},6680:function(e,t,r){"use strict";var n=r(4978),s=r(8720),o=r(5283),i=r(9310),a=r(6801);t.ZP=(0,n.UY)({filters:o.u8,staticFilters:o.OY,hasError:s.xT,isLoading:s.hg,isHistoryNavigation:a.w,response:s.p,searchQuery:o.w4,serverOptions:i.M,sort:o.DY})},5283:function(e,t,r){"use strict";r.d(t,{w4:function(){return o},DY:function(){return i},u8:function(){return a},OY:function(){return c}});var n=r(9532),s=r(2168);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SEARCH_QUERY":return t.query;case"CLEAR_QUERY_VALUES":return null}return e}function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SORT":return n.kQ.includes(t.sort)?t.sort:e;case"CLEAR_QUERY_VALUES":return null}return e}function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_FILTERS":case"CLEAR_QUERY_VALUES":return{};case"SET_FILTER":if(!(0,s.wP)().includes(t.name)||!Array.isArray(t.value)&&"string"!=typeof t.value)return e;if(0===t.value.length){const r={...e};return delete r[t.name],r}return{...e,[t.name]:"string"==typeof t.value?[t.value]:t.value}}return e}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_QUERY_VALUES":return{};case"SET_STATIC_FILTER":return(0,s.i3)().includes(t.name)?{...e,[t.name]:t.value}:e}return e}},9310:function(e,t,r){"use strict";r.d(t,{M:function(){return s}});var n=r(9532);function s(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window[n.W1])&&void 0!==e?e:{};return t}},341:function(e,t,r){"use strict";r.d(t,{ck:function(){return o},xT:function(){return i},Qy:function(){return a},hg:function(){return c},uP:function(){return l},r$:function(){return u},Zj:function(){return p},Bk:function(){return h},en:function(){return d},ZN:function(){return f},wI:function(){return m}});var n=r(9532),s=r(2168);function o(e){return e.response}function i(e){return e.hasError}function a(e){return!i(e)&&o(e)?.page_handle}function c(e){return e.isLoading}function l(e){return e.searchQuery}function u(e,t){return"string"!=typeof t&&(t=n.PP),"string"==typeof e.sort?e.sort:t}function p(e){return e.filters}function h(e){return e.staticFilters}function d(e){return null!==l(e)||function(e){return Object.keys(e.filters).length>0}(e)||function(e){return Object.keys(e.staticFilters).length>0}(e)||null!==e.sort}function f(e){if(!e.serverOptions.widgets||!e.filters)return{};const t=(0,s.do)(e.serverOptions.widgets);return{filters:Object.keys(e.filters).filter((e=>t.includes(e))).map(s.$s)}}function m(e){return e.isHistoryNavigation}},8468:function(e,t,r){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 r="color: "+this.color;t.splice(1,0,r,"color: inherit");let n=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(n++,"%c"===e&&(s=n))})),t.splice(s,0,r)},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=r(3712)(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},3712:function(e,t,r){e.exports=function(e){function t(e){let r,s=null;function o(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];if(!o.enabled)return;const i=o,a=Number(new Date),c=a-(r||a);i.diff=c,i.prev=r,i.curr=a,r=a,n[0]=t.coerce(n[0]),"string"!=typeof n[0]&&n.unshift("%O");let l=0;n[0]=n[0].replace(/%([a-zA-Z%])/g,((e,r)=>{if("%%"===e)return"%";l++;const s=t.formatters[r];if("function"==typeof s){const t=n[l];e=s.call(i,t),n.splice(l,1),l--}return e})),t.formatArgs.call(i,n);const u=i.log||t.log;u.apply(i,n)}return o.namespace=e,o.useColors=t.useColors(),o.color=t.selectColor(e),o.extend=n,o.destroy=t.destroy,Object.defineProperty(o,"enabled",{enumerable:!0,configurable:!1,get:()=>null===s?t.enabled(e):s,set:e=>{s=e}}),"function"==typeof t.init&&t.init(o),o}function n(e,r){const n=t(this.namespace+(void 0===r?":":r)+e);return n.log=this.log,n}function s(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(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let r;t.save(e),t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),s=n.length;for(r=0;r<s;r++)n[r]&&("-"===(e=n[r].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let r,n;for(r=0,n=t.skips.length;r<n;r++)if(t.skips[r].test(e))return!1;for(r=0,n=t.names.length;r<n;r++)if(t.names[r].test(e))return!0;return!1},t.humanize=r(2002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((r=>{t[r]=e[r]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let r=0;for(let t=0;t<e.length;t++)r=(r<<5)-r+e.charCodeAt(t),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t}},8763:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});class n{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.size=0,this.ttl=t}has(e){return e in this.items}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){const t=this.items[e];delete this.items[e],this.size--,null!==t.prev&&(t.prev.next=t.next),null!==t.next&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}evict(){const e=this.first;return delete this.items[e.key],this.first=e.next,this.first.prev=null,this.size--,this}get(e){let t;if(this.has(e)){const r=this.items[e];this.ttl>0&&r.expiry<=(new Date).getTime()?this.delete(e):(t=r.value,this.set(e,t,!0))}return t}keys(){return Object.keys(this.items)}set(e,t){let r,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(n||this.has(e)){if(r=this.items[e],r.value=t,!1===n&&(r.expiry=this.ttl>0?(new Date).getTime()+this.ttl:this.ttl),this.last!==r){const e=this.last,t=r.next,n=r.prev;this.first===r&&(this.first=r.next),r.next=null,r.prev=this.last,e.next=r,null!==n&&(n.next=t),null!==t&&(t.prev=n)}}else this.max>0&&this.size===this.max&&this.evict(),r=this.items[e]={expiry:this.ttl>0?(new Date).getTime()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},1==++this.size?this.first=r:this.last.next=r;return this.last=r,this}}function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(isNaN(e)||e<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");return new n(e,t)}},9196:function(e){"use strict";e.exports=window.React},1850:function(e){"use strict";e.exports=window.ReactDOM},2819:function(e){"use strict";e.exports=window.lodash},2175:function(e){"use strict";e.exports=window.wp.blockEditor},5609:function(e){"use strict";e.exports=window.wp.components},7798:function(e){"use strict";e.exports=window.wp.coreData},9818:function(e){"use strict";e.exports=window.wp.data},9307:function(e){"use strict";e.exports=window.wp.element},5736:function(e){"use strict";e.exports=window.wp.i18n},444:function(e){"use strict";e.exports=window.wp.primitives},6483:function(e){"use strict";e.exports=window.wp.url},162:function(e){"use strict";e.exports=window.wp.viewport},5303:function(e,t,r){"use strict";function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}r.d(t,{Z:function(){return n}})},988:function(e,t,r){"use strict";function n(){return n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},n.apply(this,arguments)}r.d(t,{Z:function(){return n}})},1446:function(e,t,r){"use strict";r.d(t,{Z:function(){return s}});var n=r(9112);function s(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,n.Z)(e,t)}},5343:function(e,t,r){"use strict";function n(e,t){if(null==e)return{};var r,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}r.d(t,{Z:function(){return n}})},9112:function(e,t,r){"use strict";function n(e,t){return n=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},n(e,t)}r.d(t,{Z:function(){return n}})}},t={};function r(n){var s=t[n];if(void 0!==s)return s.exports;var o=t[n]={id:n,loaded:!1,exports:{}};return e[n](o,o.exports,r),o.loaded=!0,o.exports}r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,{a:t}),t},r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;r.g.importScripts&&(e=r.g.location+"");var t=r.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),r.p=e}(),function(){"use strict";var e=r(9307),t=r(3655);window.jetpackSearchConfigureInit=function(r){document.body.classList.add("folded"),(0,e.render)(React.createElement(t.Z,null),document.getElementById(r))}}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js.LICENSE.txt b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js.LICENSE.txt
new file mode 100644
index 00000000..6a6e60a6
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.js.LICENSE.txt
@@ -0,0 +1,14 @@
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/** @license React v16.13.1
+ * react-is.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/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.rtl.css b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.rtl.css
new file mode 100644
index 00000000..6c76929e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-configure-main.rtl.css
@@ -0,0 +1 @@
+.jetpack-instant-search__overlay{background:rgba(29,35,39,.7);bottom:0;box-sizing:border-box;color:#00101c;font-size:16px;left:0;opacity:1;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:0;transition:opacity .1s ease-in;z-index:9999999999999}body.jps-theme-argent .jetpack-instant-search__overlay *{font-family:Helvetica,sans-serif}@media(max-width:767.98px){.jetpack-instant-search__overlay{padding:3em 1em}}@media(max-width:575.98px){.jetpack-instant-search__overlay{padding:0}}@media(min-width:768px){.jetpack-instant-search__overlay{padding:3em}}.jetpack-instant-search__overlay.is-hidden{background:transparent;opacity:0;visibility:hidden}.jetpack-instant-search__overlay *,.jetpack-instant-search__overlay :after,.jetpack-instant-search__overlay :before{box-sizing:inherit}@media print{.jetpack-instant-search__overlay.is-hidden{display:none}}.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)}.jetpack-instant-search__notice{font-size:14px;margin:1em 0;padding:.75em}.jetpack-instant-search__notice.jetpack-instant-search__notice--warning{background-color:#f5e6b3;color:#4f3500}.jetpack-instant-search__notice .gridicon{margin-left:.5em;margin-top:-5px;vertical-align:middle}.jetpack-instant-search__scroll-button{border:0;box-shadow:none;font-size:13px;outline:0}.jetpack-instant-search__search-sort{align-items:center;display:flex}.jetpack-instant-search__search-sort>label[for=jetpack-instant-search__search-sort-select]{flex-shrink:0;font-size:1em;font-weight:700;margin:0 0 0 .25em}.jetpack-instant-search__search-sort-with-links{font-size:13px}@media(max-width:575.98px){.jetpack-instant-search__search-sort-with-select{margin-left:1em;width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-sort-with-select{margin-left:0}}@media(min-width:992px){.jetpack-instant-search__search-sort-with-select{margin-top:-4px}}#jetpack-instant-search__search-sort-select{-webkit-appearance:auto;appearance:auto;background:#fff;border:1px solid #e6f1f5;border-radius:5px;color:#00101c;font-size:1em;height:inherit;padding:.25em}@media(max-width:575.98px){#jetpack-instant-search__search-sort-select{padding:.5em;width:100%}}.jetpack-instant-search__search-sort-option{color:#646970;cursor:pointer;padding:0 2px;text-decoration:none}.jetpack-instant-search__search-sort-option:after{color:#646970;content:"·";font-weight:400;padding-right:5px}.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:focus,.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:hover{text-decoration:none}.jetpack-instant-search__search-sort-option:last-child:after{content:""}.jetpack-instant-search__search-sort-option.is-selected{color:#044b7a;font-weight:600;text-decoration:none}.jetpack-instant-search__search-form-controls{align-items:center;display:flex;line-height:1.3;margin-left:56px;margin-right:56px;margin-top:16px;z-index:1}@media(max-width:991.98px){.jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:767.98px){.jetpack-instant-search__search-form-controls{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-form-controls{left:320px;position:absolute}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{left:320px;position:absolute}}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-form-controls{left:0}.jetpack-instant-search__box{border-bottom:1px solid #e6f1f5;border-left:1px solid #e6f1f5}.jetpack-instant-search__box-label{align-items:center;display:flex;flex:0 0 100%;margin:0}input.jetpack-instant-search__box-input.search-field{-webkit-appearance:none;appearance:none;background:#fff;border:0;box-shadow:none;color:#3c434a;font-size:18px;height:60px;line-height:1;margin:0;max-width:none;padding:0 14px;text-indent:32px;vertical-align:middle}input.jetpack-instant-search__box-input.search-field:focus,input.jetpack-instant-search__box-input.search-field:hover{background:#fff;color:#00101c}input.jetpack-instant-search__box-input.search-field.search-field{letter-spacing:-.02em;padding-right:0;text-indent:0}.jetpack-instant-search__box-gridicon{align-items:center;display:flex;flex-shrink:0;height:60px;justify-content:center;position:relative;right:0;top:0;width:60px;z-index:1}.jetpack-instant-search__box-gridicon svg{fill:#646970}.jetpack-instant-search__box input[type=button]{word-wrap:normal;border:none;color:#646970;cursor:pointer;font-size:1em;font-weight:400;height:60px;line-height:1;margin:0 0 0 .25em;padding:0;text-decoration:none;text-shadow:none;text-transform:none;transition:all .1s linear;width:60px}.jetpack-instant-search__box input[type=button],.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{color:#3c434a}.jetpack-instant-search__box input[type=button]:focus{outline:1px dotted}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input{border:none;box-shadow:none;height:52px;outline-style:none;transition:color .15s ease-in-out,border-color .25s ease-in-out;width:100%}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:focus,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:hover{border:none;box-shadow:none;outline-style:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-button,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-decoration{appearance:none;-webkit-appearance:none;display:initial}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-cancel-button{display:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-clear,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-reveal{display:none}.jetpack-instant-search__path-breadcrumb{font-size:.9em;margin:0;max-width:calc(100vw - 2em);overflow-x:hidden;text-overflow:ellipsis}.jetpack-instant-search__path-breadcrumb-link{max-width:100%;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.jetpack-instant-search__path-breadcrumb-link:focus,.jetpack-instant-search__path-breadcrumb-link:hover{text-decoration:underline}.jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__path-breadcrumb-link{color:#3c434a}.jetpack-instant-search__search-result-comments{border-right:2px solid #f0f0f1;font-size:.9em;margin-right:8px;margin-top:16px;padding-right:16px;word-break:break-word}.jetpack-instant-search__search-result-comments .gridicon{margin-left:8px;vertical-align:middle}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title{margin-bottom:.4em}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title .gridicon{margin-left:8px}.jetpack-instant-search__search-result-minimal-cats-and-tags{display:flex;flex-flow:row wrap;font-size:.9375em}.jetpack-instant-search__search-result-minimal-cats,.jetpack-instant-search__search-result-minimal-tags{display:flex;flex-flow:row wrap;list-style-type:none;margin:0;padding:0}.jetpack-instant-search__search-result-minimal-cat,.jetpack-instant-search__search-result-minimal-tag{margin:0 0 0 .75em}.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag .gridicon{margin-left:.25em}.jetpack-instant-search__search-result-minimal-cat-text,.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag-text,.jetpack-instant-search__search-result-minimal-tag .gridicon{vertical-align:middle}.jetpack-instant-search__search-result-minimal-content{word-break:break-word}.jetpack-instant-search__search-result-expanded{display:flex;flex-flow:column}.jetpack-instant-search__search-result-expanded:last-child{margin-left:0}.jetpack-instant-search__search-result-expanded .jetpack-instant-search__search-result-expanded__title{width:100%}.jetpack-instant-search__search-result-expanded__path{color:#646970;font-size:.9375em;margin:0 0 .4em}.jetpack-instant-search__search-result-expanded__copy-container{max-width:100%}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__copy-container{width:calc(100% - 128px - 1em)}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__copy-container{width:auto}.jetpack-instant-search__search-result-expanded__content{color:#00101c;font-size:.9375em}.jetpack-instant-search__search-result-expanded__image-link{margin-right:1em}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-link{margin:0 auto .5em;order:-1}}.jetpack-instant-search__search-result-expanded__image-container{width:128px}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-container{width:256px}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__image-container{display:none}.jetpack-instant-search__search-result-expanded__image-container{position:relative}.jetpack-instant-search__search-result-expanded__image-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-expanded__image{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-expanded__content-container{display:flex;flex-flow:column}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__content-container{flex-flow:row nowrap}}.jetpack-instant-search__search-result-expanded__footer{display:flex;list-style-type:none;margin-right:0;margin-top:10px;padding-right:0}.jetpack-instant-search__search-result-expanded__footer li{margin-left:10px}.jetpack-instant-search__search-result-expanded__footer-blog-image{border-radius:2px;margin-left:3px;vertical-align:middle}.jetpack-instant-search__search-result-expanded__footer-blog{font-size:13px;font-style:normal;font-weight:600;line-height:180%}.jetpack-instant-search__search-result-expanded__footer-author:after,.jetpack-instant-search__search-result-expanded__footer-blog:after{color:#636363;content:"·";margin-right:10px}.jetpack-instant-search__search-result-expanded__footer-author,.jetpack-instant-search__search-result-expanded__footer-date{color:#636363;font-size:13px;font-style:normal;font-weight:400}.jetpack-instant-search__product-rating-stars .gridicon{fill:#f0c930;vertical-align:middle}.jetpack-instant-search a.jetpack-instant-search__product-rating-count{color:#646970;font-size:.9em;text-decoration:underline;vertical-align:text-top}.jetpack-instant-search__product-price-regular{color:#646970;padding-left:.25em}.jetpack-instant-search__search-results-list.is-format-product{display:flex;flex-wrap:wrap;margin-left:40px;padding:0 0 3em}@media(max-width:991.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-left:24px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-left:4px}}.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{display:flex;flex-direction:column;margin:0 0 16px 16px;position:relative;width:calc(50% - 16px)}@media(min-width:576px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:768px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:992px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:1200px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:1400px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(20% - 16px)}}.jetpack-instant-search__search-result>.jetpack-instant-search__search-result-product-img-link{display:block}.jetpack-instant-search__search-result-product-img-container{border-radius:5px;color:transparent;position:relative}.jetpack-instant-search__search-result-product-img-container.jetpack-instant-search__search-result-product-img-container--placeholder{background:#c3c4c7}.jetpack-instant-search__search-result-product-img-container .gridicon{fill:#fff}.jetpack-instant-search__search-result-product-img-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-product-img{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-product-img>.gridicon{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.jetpack-instant-search__search-result-product-img>.gridicons-image{height:25%;width:25%}.jetpack-instant-search__search-result-product-img>.gridicons-block{height:50%;width:50%}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-product-title{font-size:1.25em;margin:.25em 0 0}.jetpack-instant-search__search-result-product-match{font-size:.9em;margin-top:.25em}.jetpack-instant-search__search-result-product-match mark{align-items:center;display:flex;font-weight:400}.jetpack-instant-search__search-result-product-match .gridicon{height:1em;margin-left:.25em;width:1em}.jetpack-instant-search__search-result{margin:0 0 2em}.jetpack-instant-search__search-result-title{font-size:1.6em;font-weight:400;line-height:1.35;margin:0;overflow-wrap:break-word}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link{text-decoration:none}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:focus,.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:hover{text-decoration:underline}.jetpack-instant-search__search-filters{position:relative}.jetpack-instant-search__search-filters>div{margin-top:1em}.jetpack-instant-search__search-filters-title{color:#00101c;display:block;font-weight:700;line-height:1.3}.jetpack-instant-search__clear-filters-link{left:0;line-height:1.3;margin:0;position:absolute;top:0}.jetpack-instant-search__search-filter-sub-heading{color:#646970;font-size:inherit;margin:0;padding:0}.jetpack-instant-search__search-filter-list{text-align:right}.jetpack-instant-search__search-filter-list>div{align-items:baseline;display:flex;margin-top:8px}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input{-webkit-appearance:checkbox;appearance:checkbox;background:none;border:none;cursor:pointer;height:auto;margin:0;top:1px;width:auto}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:before,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:before{display:none!important}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-label,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-label{color:inherit;cursor:pointer;display:inline-block;font-weight:400;margin:0 8px 0 0;padding:0;width:auto}.jetpack-instant-search__search-static-filter-list{font-size:.875rem;line-height:1.8}.jetpack-instant-search__widget-area-container{margin-bottom:2em}.jetpack-instant-search__jetpack-colophon{margin-bottom:2em;margin-top:2em;text-align:center}.jetpack-instant-search__jetpack-colophon-link{align-items:center;color:inherit;display:flex;text-decoration:none}.jetpack-instant-search__jetpack-colophon-logo{display:inline;height:16px;width:16px}.jetpack-instant-search__jetpack-colophon-text{color:#3c434a;font-size:.7em;font-weight:400;padding-right:6px}.jetpack-instant-search__sidebar{padding-top:14px}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget{background:none;border:none;margin:0;padding:0}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget a{font-weight:400}.jetpack-instant-search__sidebar h2.widgettitle{border:none;font-size:1.3em;margin:1em 0 .5em}.jetpack-instant-search__sidebar h2.widgettitle:after,.jetpack-instant-search__sidebar h2.widgettitle:before{display:none!important}.jetpack-instant-search__search-results{background:#fff;border-radius:3px;margin:0 auto;max-width:1080px;min-height:100%;position:relative;z-index:10}@media(max-width:575.98px){.jetpack-instant-search__search-results{border-radius:0}}@media(min-width:992px){.jetpack-instant-search__search-results{max-width:95%}}.jetpack-instant-search__search-results mark{background:#ffc;color:#00101c}.jetpack-instant-search__search-results-controls{display:flex}.jetpack-instant-search__search-results-content{display:flex;position:relative}.jetpack-instant-search__search-results-filter-button{align-items:center;border:0;color:#646970;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;margin:0;padding:8px;text-decoration:none;transition:background-color .25s ease-in-out}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-filter-button{visibility:hidden}@media(min-width:576px){.jetpack-instant-search__search-results-filter-button{font-size:13px;padding:10px 14px}}@media(min-width:992px){.jetpack-instant-search__search-results-filter-button{display:none}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:flex}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:none}}.jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__search-results-filter-button:hover{color:#00101c}.jetpack-instant-search__search-results-filter-button .gridicon{margin-right:4px}.jetpack-instant-search__search-results-primary{margin:0;max-width:calc(100% - 320px);width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-primary{max-width:100%}@media(max-width:991.98px){.jetpack-instant-search__search-results-primary{max-width:100%}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-primary{max-width:100%}}.jetpack-instant-search__search-results-secondary{background:none;border-radius:0;border-right:1px solid #e6f1f5;bottom:0;box-shadow:none;color:#00101c;display:block;flex:none;padding:0 32px;position:static;width:320px}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary{display:none}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:991.98px)and (max-width:575.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:1199.98px)and (max-width:575.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{color:#00101c;font-size:1em;font-weight:700;line-height:1.3;margin:1em 56px 1.5em;padding:0;word-break:break-word}@media(max-width:991.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title,.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-results-title{padding-left:210px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title{padding-left:210px}}.jetpack-instant-search__search-results-list{color:#00101c;list-style:none;margin-left:56px;margin-right:56px;padding:0}@media(max-width:991.98px){.jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list{margin-left:20px;margin-right:20px}}.jetpack-instant-search__search-results-list li:before{content:"​";height:1px;position:absolute;width:1px}.jetpack-instant-search__search-results-search-form{font-size:.8em;margin:0;top:0;width:100%}button.jetpack-instant-search__overlay-close{align-items:center;-webkit-appearance:none;appearance:none;background:none;background-color:transparent!important;border:none;border-bottom:1px solid #e6f1f5;box-shadow:none;cursor:pointer;display:flex;height:61px;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none;text-shadow:none;text-transform:none;width:60px}button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}button.jetpack-instant-search__overlay-close:focus{outline:1px dotted}button.jetpack-instant-search__overlay-close svg.gridicon{fill:#646970}button.jetpack-instant-search__overlay-close:active,button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{background-color:transparent!important;border-color:#e6f1f5}button.jetpack-instant-search__overlay-close:active svg.gridicon,button.jetpack-instant-search__overlay-close:focus svg.gridicon,button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#3c434a}.jetpack-instant-search__search-results-pagination{display:block;flex:none;margin:50px}.jetpack-instant-search .widget.widget_archive ul li a,.jetpack-instant-search .widget a,.jetpack-instant-search a{border:none;color:#001621;text-decoration:none}.jetpack-instant-search .widget.widget_archive ul li a:focus,.jetpack-instant-search .widget.widget_archive ul li a:hover,.jetpack-instant-search .widget a:focus,.jetpack-instant-search .widget a:hover,.jetpack-instant-search a:focus,.jetpack-instant-search a:hover{color:#044b7a;text-decoration:underline}.jetpack-search-filters-widget__filter-list{list-style-type:none}body.enable-search-modal .cover-modal.show-modal.search-modal.active{display:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark{background:rgba(29,35,39,.7);color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a{color:#f6f7f7}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:hover{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filters-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__content,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-list,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-unused-query{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__jetpack-colophon-text,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb-link{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filter-sub-heading,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__path{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box-gridicon svg,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close svg.gridicon{fill:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:focus svg.gridicon,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:hover{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field{background:#000;color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:hover{background:#000;color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results{background:#000}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results mark{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{color:#e6f1f5}@media(min-width:992px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{border-color:#3c434a}}@media(max-width:991.98px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#000;border-color:#3c434a;box-shadow:0 2px 3px #3c434a}}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option:after{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option.is-selected{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-product-img--placeholder{color:#2c3338}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark #jetpack-instant-search__search-sort-select{background:#000;border-color:#3c434a;color:#e6f1f5}.jp-search-configure-app-wrapper{flex-grow:1}.jp-search-configure-app-wrapper .jp-search-configure-loading-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.jp-search-configure-app-wrapper .jetpack-instant-search{background:#f0f0f0;padding-top:2em;position:absolute}.jp-search-configure-app-wrapper .jetpack-instant-search .jetpack-instant-search__search-results{max-width:none}.jp-search-configure-app-wrapper .jetpack-instant-search a:not(.jetpack-instant-search__search-sort-option){pointer-events:none}.jp-search-configure-save-button{margin-left:4px}.jp-search-configure-save-button:first-of-type{margin-right:auto}@media(min-width:600px){.jp-search-configure-save-button{margin-left:8px}}@media(min-width:782px){.jp-search-configure-sidebar .jp-search-configure-save-button{display:none}}.jp-search-configure-header{align-items:center;display:flex;height:48px;justify-content:space-between;overflow:auto;padding:0 16px}@media(min-width:782px){.jp-search-configure-header{height:60px}}@media(min-width:600px){.jp-search-configure-header{overflow:visible}}.jp-search-configure-header__navigable-toolbar-wrapper{align-items:center;display:flex;justify-content:center}.jp-search-configure-header__title{font-size:20px;margin:0 0 0 20px;padding:0}.jp-search-configure-header__actions{display:flex}@media(min-width:600px){.jp-search-configure-header__actions .components-button.jp-search-configure-header__show-settings-button{margin-left:8px}}@media(min-width:782px){.jp-search-configure-header__actions .components-button.jp-search-configure-header__show-settings-button{display:none;margin-right:0}}.jp-search-configure-color-input .component-color-indicator{vertical-align:middle}.jp-search-configure-color-input .block-editor-color-gradient-control fieldset>legend{margin-bottom:12px}.jp-search-configure-color-input .block-editor-color-gradient-control fieldset>legend>.block-editor-color-gradient-control__color-indicator{margin-bottom:0}.jp-search-configure-color-input .components-circular-option-picker__option-wrapper :focus:after{right:-4px;top:-4px}.jp-search-configure-color-input .components-circular-option-picker__option-wrapper .components-button.is-pressed:focus:not(:disabled){box-shadow:inset 0 0 0 14px!important}.jp-search-configure-sidebar-options--is-disabled .jp-search-configure-color-input .components-button{cursor:not-allowed;filter:grayscale(.8);pointer-events:none}.jp-search-configure-sidebar-options--is-disabled .jp-search-configure-color-input .components-circular-option-picker__option-wrapper:hover{transform:scale(1)}.jp-search-configure-excluded-post-types-control{margin-top:8px}.jp-search-configure-excluded-post-types-control .jp-search-configure-excluded-post-types-control__label{margin-bottom:8px}.jp-search-configure-excluded-post-types-control .components-notice{margin:8px 0;padding-bottom:4px;padding-top:4px}.components-panel__header.jp-search-configure-sidebar__panel-tabs{border-top:0;justify-content:flex-start;margin-top:0;padding-left:12px;padding-right:0}.components-panel__header.jp-search-configure-sidebar__panel-tabs ul{display:flex;height:100%}.components-panel__header.jp-search-configure-sidebar__panel-tabs li{margin:0}.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{margin-left:4px}@media(min-width:600px){.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{margin-left:12px}}@media(min-width:782px){.components-panel__header.jp-search-configure-sidebar__panel-tabs .components-button.jp-search-configure-sidebar__hide-settings-button{display:none}}.components-button.jp-search-configure-sidebar__panel-tab{background:transparent;border:none;border-radius:0;box-shadow:none;color:#1e1e1e;cursor:pointer;display:inline-block;font-weight:400;height:49px;height:100%;margin-right:0;padding:3px 15px}.components-button.jp-search-configure-sidebar__panel-tab:after{speak:none;content:attr(data-label);display:block;font-weight:600;height:0;overflow:hidden;visibility:hidden}.components-button.jp-search-configure-sidebar__panel-tab.is-active{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) transparent,inset 0 -4px 0 0 var(--wp-admin-theme-color);font-weight:600;position:relative}.components-button.jp-search-configure-sidebar__panel-tab.is-active:before{border-bottom:4px solid transparent;bottom:1px;content:"";left:0;position:absolute;right:0;top:0}.components-button.jp-search-configure-sidebar__panel-tab:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.components-button.jp-search-configure-sidebar__panel-tab.is-active:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color),inset 0 -4px 0 0 var(--wp-admin-theme-color)}.jp-search-configure-sidebar-description{display:flex;padding:16px}.jp-search-configure-sidebar-description .block-editor-block-icon{margin-left:16px}.jp-search-configure-sidebar-options .components-base-control{margin-bottom:24px}.jp-search-configure-sidebar-options .components-base-control.components-checkbox-control,.jp-search-configure-sidebar-options .components-base-control.components-toggle-control,.jp-search-configure-sidebar-options .components-base-control:last-child{margin-bottom:0}.jp-search-configure-sidebar-options .components-checkbox-control__label{vertical-align:baseline}.jp-search-configure-result-format-radios{margin-bottom:1em}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons{display:flex;justify-content:space-around;margin-bottom:12px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button{display:flex;flex-direction:column;height:auto;padding-left:6px;padding-right:6px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button:first-child{margin-left:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button:last-child{margin-right:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button svg{border:2px solid #fff;border-radius:3px;margin-bottom:4px}.jp-search-configure-sidebar-options .jp-search-configure-theme-buttons button.components-button.jp-search-configure-theme-button--selected svg{border-color:#2f2f2f}.jp-search-configure-sidebar-options--is-disabled input{cursor:not-allowed;pointer-events:none}.jp-search-configure-sidebar-options--is-disabled input[type=checkbox],.jp-search-configure-sidebar-options--is-disabled input[type=radio]{background:#ddd;border-color:#ddd}.jp-search-configure-sidebar-options--is-disabled .components-radio-control__input[type=radio]:checked{background:#ccc;border-color:#ccc}.components-checkbox-control__input:disabled{background:#ddd;border-color:#ddd;cursor:not-allowed}#jp-search-configure .hide-if-no-js{height:100vh;margin:0;position:relative;text-align:center;width:100vw}#jp-search-configure .hide-if-no-js .jp-search-loader{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}#jp-search-configure .interface-interface-skeleton__header{background-color:#fff}.jp-search-configure-layout__body{display:flex;flex-grow:1;overflow:auto}.block-editor-color-gradient-control .block-editor-color-gradient-control__color-indicator{margin-bottom:12px}.block-editor-panel-color-gradient-settings .component-color-indicator{vertical-align:text-bottom}.block-editor-panel-color-gradient-settings__panel-title .component-color-indicator{display:inline-block}.block-editor-panel-color-gradient-settings.is-opened .block-editor-panel-color-gradient-settings__panel-title .component-color-indicator{display:none}@media screen and (min-width:782px){.block-editor-panel-color-gradient-settings .components-circular-option-picker__swatches{display:grid;grid-template-columns:repeat(6,28px);justify-content:space-between}}.block-editor-block-inspector .block-editor-panel-color-gradient-settings .components-base-control{margin-bottom:inherit}.components-panel__header.interface-complementary-area-header__small{background:#fff;padding-left:4px}.components-panel__header.interface-complementary-area-header__small .interface-complementary-area-header__small-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}@media(min-width:782px){.components-panel__header.interface-complementary-area-header__small{display:none}}.interface-complementary-area-header{background:#fff;padding-left:4px}.interface-complementary-area{background:#fff;color:#1e1e1e}@media(min-width:600px){.interface-complementary-area{-webkit-overflow-scrolling:touch}}@media(min-width:782px){.interface-complementary-area{width:280px}}.interface-complementary-area .components-panel{border:none;position:relative;z-index:0}.interface-complementary-area .components-panel__header{position:sticky;top:0;z-index:1}.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:48px}@media(min-width:782px){.interface-complementary-area .components-panel__header.edit-post-sidebar__panel-tabs{top:0}}.interface-complementary-area p{margin-top:0}.interface-complementary-area h2,.interface-complementary-area h3{color:#1e1e1e;font-size:13px;margin-bottom:1.5em}.interface-complementary-area hr{border-bottom:1px solid #f0f0f0;border-top:none;margin:1.5em 0}.interface-complementary-area div.components-toolbar,.interface-complementary-area div.components-toolbar-group{box-shadow:none;margin-bottom:1.5em}.interface-complementary-area div.components-toolbar-group:last-child,.interface-complementary-area div.components-toolbar:last-child{margin-bottom:0}.interface-complementary-area .block-editor-skip-to-selected-block:focus{bottom:10px;left:10px;right:auto;top:auto}@media(min-width:782px){body.js.is-fullscreen-mode{height:calc(100% + 32px);margin-top:-32px}body.js.is-fullscreen-mode #adminmenumain,body.js.is-fullscreen-mode #wpadminbar{display:none}body.js.is-fullscreen-mode #wpcontent,body.js.is-fullscreen-mode #wpfooter{margin-right:0}}html.interface-interface-skeleton__html-container{position:fixed;width:100%}@media(min-width:782px){html.interface-interface-skeleton__html-container{position:static;width:auto}}.interface-interface-skeleton{bottom:0;display:flex;flex-direction:row;height:auto;left:0;max-height:100%;position:fixed;top:46px}@media(min-width:783px){.interface-interface-skeleton{top:32px}.is-fullscreen-mode .interface-interface-skeleton{top:0}}.interface-interface-skeleton__editor{display:flex;flex:0 1 100%;flex-direction:column;overflow:hidden}.interface-interface-skeleton{right:0}@media(min-width:783px){.interface-interface-skeleton{right:160px}.auto-fold .interface-interface-skeleton{right:36px}}@media(min-width:961px){.auto-fold .interface-interface-skeleton{right:160px}}.folded .interface-interface-skeleton{right:0}@media(min-width:783px){.folded .interface-interface-skeleton{right:36px}}body.is-fullscreen-mode .interface-interface-skeleton{right:0!important}.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{background:#fff;bottom:0;color:#1e1e1e;display:block;flex-shrink:0;left:0;position:absolute;right:0;top:0;z-index:100000}@media(min-width:782px){.interface-interface-skeleton__secondary-sidebar,.interface-interface-skeleton__sidebar{position:relative!important;width:auto;z-index:90}}.interface-interface-skeleton__sidebar{overflow:auto}@media(min-width:782px){.interface-interface-skeleton__sidebar{border-right:1px solid #e0e0e0}.interface-interface-skeleton__secondary-sidebar{border-left:1px solid #e0e0e0}}.interface-interface-skeleton__header{border-bottom:1px solid #e0e0e0;color:#1e1e1e;flex-shrink:0;height:auto;z-index:30}.interface-interface-skeleton__footer{background-color:#fff;border-top:1px solid #e0e0e0;bottom:0;color:#1e1e1e;display:none;flex-shrink:0;height:auto;position:absolute;right:0;width:100%;z-index:90}@media(min-width:782px){.interface-interface-skeleton__footer{display:flex}}.interface-interface-skeleton__footer .block-editor-block-breadcrumb{align-items:center;background:#fff;display:flex;font-size:13px;height:24px;padding:0 18px;z-index:30}.interface-interface-skeleton__actions{bottom:auto;color:#1e1e1e;left:0;position:fixed!important;right:auto;top:-9999em;width:280px;z-index:100000}.interface-interface-skeleton__actions:focus{bottom:0;top:auto}.interface-more-menu-dropdown{margin-right:-4px}.interface-more-menu-dropdown .components-button{padding:0 2px;width:auto}@media(min-width:600px){.interface-more-menu-dropdown{margin-right:0}.interface-more-menu-dropdown .components-button{padding:0 4px}}.interface-more-menu-dropdown__content .components-popover__content{min-width:280px}@media(min-width:480px){.interface-more-menu-dropdown__content .components-popover__content{max-width:480px;width:auto}}.interface-more-menu-dropdown__content .components-popover__content .components-dropdown-menu__menu{padding:0}.components-popover.interface-more-menu-dropdown__content{z-index:99998}.interface-pinned-items{display:flex}.interface-pinned-items .components-button:not(:first-child){display:none}@media(min-width:600px){.interface-pinned-items .components-button:not(:first-child){display:flex}}.interface-pinned-items .components-button{margin-right:4px}.interface-pinned-items .components-button svg{max-height:24px;max-width:24px}html.wp-toolbar{background:#fff}#wpbody-content>.notice,#wpfooter,.jp-search-configure-sidebar .components-button.interface-complementary-area__pin-unpin-item{display:none}body.admin-color-light{--wp-admin-theme-color:#0085ba;--wp-admin-theme-color--rgb:0,133,186;--wp-admin-theme-color-darker-10:#0073a1;--wp-admin-theme-color-darker-10--rgb:0,115,161;--wp-admin-theme-color-darker-20:#006187;--wp-admin-theme-color-darker-20--rgb:0,97,135;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-light{--wp-admin-border-width-focus:1.5px}}body.admin-color-modern{--wp-admin-theme-color:#3858e9;--wp-admin-theme-color--rgb:56,88,233;--wp-admin-theme-color-darker-10:#2145e6;--wp-admin-theme-color-darker-10--rgb:33,69,230;--wp-admin-theme-color-darker-20:#183ad6;--wp-admin-theme-color-darker-20--rgb:24,58,214;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-modern{--wp-admin-border-width-focus:1.5px}}body.admin-color-blue{--wp-admin-theme-color:#096484;--wp-admin-theme-color--rgb:9,100,132;--wp-admin-theme-color-darker-10:#07526c;--wp-admin-theme-color-darker-10--rgb:7,82,108;--wp-admin-theme-color-darker-20:#064054;--wp-admin-theme-color-darker-20--rgb:6,64,84;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-blue{--wp-admin-border-width-focus:1.5px}}body.admin-color-coffee{--wp-admin-theme-color:#46403c;--wp-admin-theme-color--rgb:70,64,60;--wp-admin-theme-color-darker-10:#383330;--wp-admin-theme-color-darker-10--rgb:56,51,48;--wp-admin-theme-color-darker-20:#2b2724;--wp-admin-theme-color-darker-20--rgb:43,39,36;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-coffee{--wp-admin-border-width-focus:1.5px}}body.admin-color-ectoplasm{--wp-admin-theme-color:#523f6d;--wp-admin-theme-color--rgb:82,63,109;--wp-admin-theme-color-darker-10:#46365d;--wp-admin-theme-color-darker-10--rgb:70,54,93;--wp-admin-theme-color-darker-20:#3a2c4d;--wp-admin-theme-color-darker-20--rgb:58,44,77;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-ectoplasm{--wp-admin-border-width-focus:1.5px}}body.admin-color-midnight{--wp-admin-theme-color:#e14d43;--wp-admin-theme-color--rgb:225,77,67;--wp-admin-theme-color-darker-10:#dd382d;--wp-admin-theme-color-darker-10--rgb:221,56,45;--wp-admin-theme-color-darker-20:#d02c21;--wp-admin-theme-color-darker-20--rgb:208,44,33;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-midnight{--wp-admin-border-width-focus:1.5px}}body.admin-color-ocean{--wp-admin-theme-color:#627c83;--wp-admin-theme-color--rgb:98,124,131;--wp-admin-theme-color-darker-10:#576e74;--wp-admin-theme-color-darker-10--rgb:87,110,116;--wp-admin-theme-color-darker-20:#4c6066;--wp-admin-theme-color-darker-20--rgb:76,96,102;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-ocean{--wp-admin-border-width-focus:1.5px}}body.admin-color-sunrise{--wp-admin-theme-color:#dd823b;--wp-admin-theme-color--rgb:221,130,59;--wp-admin-theme-color-darker-10:#d97426;--wp-admin-theme-color-darker-10--rgb:217,116,38;--wp-admin-theme-color-darker-20:#c36922;--wp-admin-theme-color-darker-20--rgb:195,105,34;--wp-admin-border-width-focus:2px}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body.admin-color-sunrise{--wp-admin-border-width-focus:1.5px}} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search-main.asset.php b/plugins/jetpack/_inc/build/instant-search/jp-search-main.asset.php
new file mode 100644
index 00000000..ef7ef5ba
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-main.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-i18n', 'wp-jp-i18n-state', 'wp-polyfill'), 'version' => 'd06c48532583ce5d0adee59db35f7ddf'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search-main.js b/plugins/jetpack/_inc/build/instant-search/jp-search-main.js
new file mode 100644
index 00000000..7e7908b1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search-main.js
@@ -0,0 +1 @@
+!function(){var e,t,n,r,o,i,a,c={9532:function(e,t,n){"use strict";n.d(t,{Bk:function(){return o},W1:function(){return i},zg:function(){return a},oy:function(){return c},Pz:function(){return u},LI:function(){return s},AG:function(){return l},PP:function(){return f},yb:function(){return d},kQ:function(){return p},bk:function(){return h},aP:function(){return m},rs:function(){return w}});var r=n(5736);const __=r.__,o="__NO_GROUP__",i="JetpackInstantSearchOptions",a="jetpack-instant-search__overlay",c="ASC",u="expanded",s="product",l=6e4,f="relevance",d=1e3,p=["newest","oldest",f,"price_asc","price_desc","rating_desc"],h=[u,"minimal",s],m=new Map([[f,__("Relevance","jetpack")],["newest",__("Newest","jetpack")],["oldest",__("Oldest","jetpack")]]),w=new Map([["price_asc",__("Price: low to high","jetpack")],["price_desc",__("Price: high to low","jetpack")],["rating_desc",__("Rating","jetpack")]])},7079:function(e,t,n){"use strict";n.d(t,{bS:function(){return i},Em:function(){return a},vJ:function(){return c}});var r=n(9532);const o=new Map([["jetpack_search_color_theme","colorTheme"],["jetpack_search_enable_sort","enableSort"],["jetpack_search_highlight_color","highlightColor"],["jetpack_search_inf_scroll","enableInfScroll"],["jetpack_search_overlay_trigger","overlayTrigger"],["jetpack_search_show_powered_by","showPoweredBy"],["jetpack_search_result_format","resultFormat"]]);function i(){return"function"==typeof window?.wp?.customize}function a(e){i()&&window.addEventListener("message",(t=>{t.data&&t.target===window&&"jetpackSearchSectionOpen"===t.data?.key&&"expanded"in t.data&&e(t.data.expanded)}))}function c(e){i()&&o.forEach(((t,n)=>{window.wp.customize(n,(n=>{n.bind((function(n){const o={[t]:n};window[r.W1].showResults=!0,window[r.W1].overlayOptions={...window[r.W1].overlayOptions,...o},e&&e(o)}))}))}))}},1535:function(e,t,n){n.p=window.JetpackInstantSearchOptions.webpackPublicPath},5736:function(e){"use strict";e.exports=window.wp.i18n},4231:function(e){"use strict";e.exports=window.wp.jpI18nState}},u={};function s(e){var t=u[e];if(void 0!==t)return t.exports;var n=u[e]={id:e,loaded:!1,exports:{}};return c[e](n,n.exports,s),n.loaded=!0,n.exports}s.m=c,s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,{a:t}),t},s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,n){return s.f[n](e,t),t}),[]))},s.u=function(e){return(613===e?"jp-search.chunk-main-payload":e)+".js?minify=false&ver="+{407:"1694d7732b10d258d19f",613:"ea3915c20523c9f94c13"}[e]},s.miniCssF=function(e){return"jp-search.chunk-main-payload.css?minify=false&ver=30cd4553a5ce8ea8e16c"},function(){if(!s.miniCssF)throw new Error("MiniCSSWithRTLPlugin was loaded before MiniCSSExtractPlugin");var e;s.miniCssF=(e=s.miniCssF,function(t){var n="rtl"===document.dir,r=e(t);return n?r.replace(/\.css(?:$|\?)/,".rtl$&"):r})}(),s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},e={},t="Jetpack:",s.l=function(n,r,o,i){if(e[n])e[n].push(r);else{var a,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),l=0;l<u.length;l++){var f=u[l];if(f.getAttribute("src")==n||f.getAttribute("data-webpack")==t+o){a=f;break}}a||(c=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,s.nc&&a.setAttribute("nonce",s.nc),a.setAttribute("data-webpack",t+o),a.src=n),e[n]=[r];var d=function(t,r){a.onerror=a.onload=null,clearTimeout(p);var o=e[n];if(delete e[n],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((function(e){return e(r)})),t)return t(r)},p=setTimeout(d.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=d.bind(null,a.onerror),a.onload=d.bind(null,a.onload),c&&document.head.appendChild(a)}},n="jetpack",r={613:["0e17ef273599d7b1004fc0c6aacf4f5e","?minify=false&ver=ea3915c20523c9f94c13"]},o={},s.f.wpI18n=function(e,t){var i,a,c;o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=(i=r[e],a=s(5736),c=s(4231),c?"en_US"===c.locale?Promise.resolve():"undefined"==typeof fetch?Promise.reject(new Error("Fetch API is not available.")):fetch(c.baseUrl+(c.domainMap.jetpack||"plugins/jetpack")+"-"+c.locale+"-"+i[0]+".json"+i[1]).then((function(e){if(!e.ok)throw new Error("HTTP request failed: "+e.status+" "+e.statusText);return e.json()})).then((function(e){var t=e.locale_data,r=t.jetpack||t.messages;r[""].domain=n,a.setLocaleData(r,n)})):Promise.reject(new Error("I18n state is not available. Check that WordPress is exporting wp.jpI18nState."))).then((function(){o[e]=0}),(function(t){delete o[e],console.error("Failed to fetch i18n data:",t)})))},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){var e;s.g.importScripts&&(e=s.g.location+"");var t=s.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");n.length&&(e=n[n.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),s.p=e}(),i=function(e){return new Promise((function(t,n){var r=s.miniCssF(e),o=s.p+r;if(function(e,t){for(var n=document.getElementsByTagName("link"),r=0;r<n.length;r++){var o=(a=n[r]).getAttribute("data-href")||a.getAttribute("href");if("stylesheet"===a.rel&&(o===e||o===t))return a}var i=document.getElementsByTagName("style");for(r=0;r<i.length;r++){var a;if((o=(a=i[r]).getAttribute("data-href"))===e||o===t)return a}}(r,o))return t();!function(e,t,n,r){var o=document.createElement("link");o.rel="stylesheet",o.type="text/css",o.onerror=o.onload=function(i){if(o.onerror=o.onload=null,"load"===i.type)n();else{var a=i&&("load"===i.type?"missing":i.type),c=i&&i.target&&i.target.href||t,u=new Error("Loading CSS chunk "+e+" failed.\n("+c+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=a,u.request=c,o.parentNode.removeChild(o),r(u)}},o.href=t,document.head.appendChild(o)}(e,o,t,n)}))},a={381:0},s.f.miniCss=function(e,t){a[e]?t.push(a[e]):0!==a[e]&&{613:1}[e]&&t.push(a[e]=i(e).then((function(){a[e]=0}),(function(t){throw delete a[e],t})))},function(){var e={381:0};s.f.j=function(t,n){var r=s.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise((function(n,o){r=e[t]=[n,o]}));n.push(r[2]=o);var i=s.p+s.u(t),a=new Error;s.l(i,(function(n){if(s.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;a.message="Loading chunk "+t+" failed.\n("+o+": "+i+")",a.name="ChunkLoadError",a.type=o,a.request=i,r[1](a)}}),"chunk-"+t,t)}};var t=function(t,n){var r,o,i=n[0],a=n[1],c=n[2],u=0;if(i.some((function(t){return 0!==e[t]}))){for(r in a)s.o(a,r)&&(s.m[r]=a[r]);if(c)c(s)}for(t&&t(n);u<i.length;u++)o=i[u],s.o(e,o)&&e[o]&&e[o][0](),e[i[u]]=0},n=self.webpackChunkJetpack=self.webpackChunkJetpack||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}(),function(){"use strict";s(1535);var e=s(9532),t=s(7079);function n(){Promise.all([s.e(407),s.e(613)]).then(s.bind(s,162)).then((e=>e.initialize()))}window[e.W1]&&(0,t.vJ)(),"loading"!==document.readyState?n():document.addEventListener("DOMContentLoaded",n)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.css b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.css
new file mode 100644
index 00000000..bfe0d103
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.css
@@ -0,0 +1 @@
+.jetpack-instant-search__overlay{background:rgba(29,35,39,.7);bottom:0;box-sizing:border-box;color:#00101c;font-size:16px;left:0;opacity:1;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:0;transition:opacity .1s ease-in;z-index:9999999999999}body.jps-theme-argent .jetpack-instant-search__overlay *{font-family:Helvetica,sans-serif}@media(max-width:767.98px){.jetpack-instant-search__overlay{padding:3em 1em}}@media(max-width:575.98px){.jetpack-instant-search__overlay{padding:0}}@media(min-width:768px){.jetpack-instant-search__overlay{padding:3em}}.jetpack-instant-search__overlay.is-hidden{background:transparent;opacity:0;visibility:hidden}.jetpack-instant-search__overlay *,.jetpack-instant-search__overlay :after,.jetpack-instant-search__overlay :before{box-sizing:inherit}@media print{.jetpack-instant-search__overlay.is-hidden{display:none}}.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)}.jetpack-instant-search__notice{font-size:14px;margin:1em 0;padding:.75em}.jetpack-instant-search__notice.jetpack-instant-search__notice--warning{background-color:#f5e6b3;color:#4f3500}.jetpack-instant-search__notice .gridicon{margin-right:.5em;margin-top:-5px;vertical-align:middle}.jetpack-instant-search__scroll-button{border:0;box-shadow:none;font-size:13px;outline:0}.jetpack-instant-search__search-sort{align-items:center;display:flex}.jetpack-instant-search__search-sort>label[for=jetpack-instant-search__search-sort-select]{flex-shrink:0;font-size:1em;font-weight:700;margin:0 .25em 0 0}.jetpack-instant-search__search-sort-with-links{font-size:13px}@media(max-width:575.98px){.jetpack-instant-search__search-sort-with-select{margin-right:1em;width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-sort-with-select{margin-right:0}}@media(min-width:992px){.jetpack-instant-search__search-sort-with-select{margin-top:-4px}}#jetpack-instant-search__search-sort-select{-webkit-appearance:auto;appearance:auto;background:#fff;border:1px solid #e6f1f5;border-radius:5px;color:#00101c;font-size:1em;height:inherit;padding:.25em}@media(max-width:575.98px){#jetpack-instant-search__search-sort-select{padding:.5em;width:100%}}.jetpack-instant-search__search-sort-option{color:#646970;cursor:pointer;padding:0 2px;text-decoration:none}.jetpack-instant-search__search-sort-option:after{color:#646970;content:"·";font-weight:400;padding-left:5px}.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:focus,.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:hover{text-decoration:none}.jetpack-instant-search__search-sort-option:last-child:after{content:""}.jetpack-instant-search__search-sort-option.is-selected{color:#044b7a;font-weight:600;text-decoration:none}.jetpack-instant-search__search-form-controls{align-items:center;display:flex;line-height:1.3;margin-left:56px;margin-right:56px;margin-top:16px;z-index:1}@media(max-width:991.98px){.jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:767.98px){.jetpack-instant-search__search-form-controls{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-form-controls{position:absolute;right:320px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{position:absolute;right:320px}}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-form-controls{right:0}.jetpack-instant-search__box{border-bottom:1px solid #e6f1f5;border-right:1px solid #e6f1f5}.jetpack-instant-search__box-label{align-items:center;display:flex;flex:0 0 100%;margin:0}input.jetpack-instant-search__box-input.search-field{-webkit-appearance:none;appearance:none;background:#fff;border:0;box-shadow:none;color:#3c434a;font-size:18px;height:60px;line-height:1;margin:0;max-width:none;padding:0 14px;text-indent:32px;vertical-align:middle}input.jetpack-instant-search__box-input.search-field:focus,input.jetpack-instant-search__box-input.search-field:hover{background:#fff;color:#00101c}input.jetpack-instant-search__box-input.search-field.search-field{letter-spacing:-.02em;padding-left:0;text-indent:0}.jetpack-instant-search__box-gridicon{align-items:center;display:flex;flex-shrink:0;height:60px;justify-content:center;left:0;position:relative;top:0;width:60px;z-index:1}.jetpack-instant-search__box-gridicon svg{fill:#646970}.jetpack-instant-search__box input[type=button]{word-wrap:normal;border:none;color:#646970;cursor:pointer;font-size:1em;font-weight:400;height:60px;line-height:1;margin:0 .25em 0 0;padding:0;text-decoration:none;text-shadow:none;text-transform:none;transition:all .1s linear;width:60px}.jetpack-instant-search__box input[type=button],.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{color:#3c434a}.jetpack-instant-search__box input[type=button]:focus{outline:1px dotted}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input{border:none;box-shadow:none;height:52px;outline-style:none;transition:color .15s ease-in-out,border-color .25s ease-in-out;width:100%}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:focus,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:hover{border:none;box-shadow:none;outline-style:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-button,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-decoration{appearance:none;-webkit-appearance:none;display:initial}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-cancel-button{display:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-clear,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-reveal{display:none}.jetpack-instant-search__path-breadcrumb{font-size:.9em;margin:0;max-width:calc(100vw - 2em);overflow-x:hidden;text-overflow:ellipsis}.jetpack-instant-search__path-breadcrumb-link{max-width:100%;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.jetpack-instant-search__path-breadcrumb-link:focus,.jetpack-instant-search__path-breadcrumb-link:hover{text-decoration:underline}.jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__path-breadcrumb-link{color:#3c434a}.jetpack-instant-search__search-result-comments{border-left:2px solid #f0f0f1;font-size:.9em;margin-left:8px;margin-top:16px;padding-left:16px;word-break:break-word}.jetpack-instant-search__search-result-comments .gridicon{margin-right:8px;vertical-align:middle}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title{margin-bottom:.4em}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title .gridicon{margin-right:8px}.jetpack-instant-search__search-result-minimal-cats-and-tags{display:flex;flex-flow:row wrap;font-size:.9375em}.jetpack-instant-search__search-result-minimal-cats,.jetpack-instant-search__search-result-minimal-tags{display:flex;flex-flow:row wrap;list-style-type:none;margin:0;padding:0}.jetpack-instant-search__search-result-minimal-cat,.jetpack-instant-search__search-result-minimal-tag{margin:0 .75em 0 0}.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag .gridicon{margin-right:.25em}.jetpack-instant-search__search-result-minimal-cat-text,.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag-text,.jetpack-instant-search__search-result-minimal-tag .gridicon{vertical-align:middle}.jetpack-instant-search__search-result-minimal-content{word-break:break-word}.jetpack-instant-search__search-result-expanded{display:flex;flex-flow:column}.jetpack-instant-search__search-result-expanded:last-child{margin-right:0}.jetpack-instant-search__search-result-expanded .jetpack-instant-search__search-result-expanded__title{width:100%}.jetpack-instant-search__search-result-expanded__path{color:#646970;font-size:.9375em;margin:0 0 .4em}.jetpack-instant-search__search-result-expanded__copy-container{max-width:100%}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__copy-container{width:calc(100% - 128px - 1em)}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__copy-container{width:auto}.jetpack-instant-search__search-result-expanded__content{color:#00101c;font-size:.9375em}.jetpack-instant-search__search-result-expanded__image-link{margin-left:1em}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-link{margin:0 auto .5em;order:-1}}.jetpack-instant-search__search-result-expanded__image-container{width:128px}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-container{width:256px}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__image-container{display:none}.jetpack-instant-search__search-result-expanded__image-container{position:relative}.jetpack-instant-search__search-result-expanded__image-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-expanded__image{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-expanded__content-container{display:flex;flex-flow:column}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__content-container{flex-flow:row nowrap}}.jetpack-instant-search__search-result-expanded__footer{display:flex;list-style-type:none;margin-left:0;margin-top:10px;padding-left:0}.jetpack-instant-search__search-result-expanded__footer li{margin-right:10px}.jetpack-instant-search__search-result-expanded__footer-blog-image{border-radius:2px;margin-right:3px;vertical-align:middle}.jetpack-instant-search__search-result-expanded__footer-blog{font-size:13px;font-style:normal;font-weight:600;line-height:180%}.jetpack-instant-search__search-result-expanded__footer-author:after,.jetpack-instant-search__search-result-expanded__footer-blog:after{color:#636363;content:"·";margin-left:10px}.jetpack-instant-search__search-result-expanded__footer-author,.jetpack-instant-search__search-result-expanded__footer-date{color:#636363;font-size:13px;font-style:normal;font-weight:400}.jetpack-instant-search__product-rating-stars .gridicon{fill:#f0c930;vertical-align:middle}.jetpack-instant-search a.jetpack-instant-search__product-rating-count{color:#646970;font-size:.9em;text-decoration:underline;vertical-align:text-top}.jetpack-instant-search__product-price-regular{color:#646970;padding-right:.25em}.jetpack-instant-search__search-results-list.is-format-product{display:flex;flex-wrap:wrap;margin-right:40px;padding:0 0 3em}@media(max-width:991.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-right:24px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-right:4px}}.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{display:flex;flex-direction:column;margin:0 16px 16px 0;position:relative;width:calc(50% - 16px)}@media(min-width:576px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:768px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:992px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:1200px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:1400px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(20% - 16px)}}.jetpack-instant-search__search-result>.jetpack-instant-search__search-result-product-img-link{display:block}.jetpack-instant-search__search-result-product-img-container{border-radius:5px;color:transparent;position:relative}.jetpack-instant-search__search-result-product-img-container.jetpack-instant-search__search-result-product-img-container--placeholder{background:#c3c4c7}.jetpack-instant-search__search-result-product-img-container .gridicon{fill:#fff}.jetpack-instant-search__search-result-product-img-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-product-img{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-product-img>.gridicon{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.jetpack-instant-search__search-result-product-img>.gridicons-image{height:25%;width:25%}.jetpack-instant-search__search-result-product-img>.gridicons-block{height:50%;width:50%}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-product-title{font-size:1.25em;margin:.25em 0 0}.jetpack-instant-search__search-result-product-match{font-size:.9em;margin-top:.25em}.jetpack-instant-search__search-result-product-match mark{align-items:center;display:flex;font-weight:400}.jetpack-instant-search__search-result-product-match .gridicon{height:1em;margin-right:.25em;width:1em}.jetpack-instant-search__search-result{margin:0 0 2em}.jetpack-instant-search__search-result-title{font-size:1.6em;font-weight:400;line-height:1.35;margin:0;overflow-wrap:break-word}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link{text-decoration:none}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:focus,.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:hover{text-decoration:underline}.jetpack-instant-search__search-filters{position:relative}.jetpack-instant-search__search-filters>div{margin-top:1em}.jetpack-instant-search__search-filters-title{color:#00101c;display:block;font-weight:700;line-height:1.3}.jetpack-instant-search__clear-filters-link{line-height:1.3;margin:0;position:absolute;right:0;top:0}.jetpack-instant-search__search-filter-sub-heading{color:#646970;font-size:inherit;margin:0;padding:0}.jetpack-instant-search__search-filter-list{text-align:left}.jetpack-instant-search__search-filter-list>div{align-items:baseline;display:flex;margin-top:8px}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input{-webkit-appearance:checkbox;appearance:checkbox;background:none;border:none;cursor:pointer;height:auto;margin:0;top:1px;width:auto}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:before,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:before{display:none!important}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-label,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-label{color:inherit;cursor:pointer;display:inline-block;font-weight:400;margin:0 0 0 8px;padding:0;width:auto}.jetpack-instant-search__search-static-filter-list{font-size:.875rem;line-height:1.8}.jetpack-instant-search__widget-area-container{margin-bottom:2em}.jetpack-instant-search__jetpack-colophon{margin-bottom:2em;margin-top:2em;text-align:center}.jetpack-instant-search__jetpack-colophon-link{align-items:center;color:inherit;display:flex;text-decoration:none}.jetpack-instant-search__jetpack-colophon-logo{display:inline;height:16px;width:16px}.jetpack-instant-search__jetpack-colophon-text{color:#3c434a;font-size:.7em;font-weight:400;padding-left:6px}.jetpack-instant-search__sidebar{padding-top:14px}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget{background:none;border:none;margin:0;padding:0}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget a{font-weight:400}.jetpack-instant-search__sidebar h2.widgettitle{border:none;font-size:1.3em;margin:1em 0 .5em}.jetpack-instant-search__sidebar h2.widgettitle:after,.jetpack-instant-search__sidebar h2.widgettitle:before{display:none!important}.jetpack-instant-search__search-results{background:#fff;border-radius:3px;margin:0 auto;max-width:1080px;min-height:100%;position:relative;z-index:10}@media(max-width:575.98px){.jetpack-instant-search__search-results{border-radius:0}}@media(min-width:992px){.jetpack-instant-search__search-results{max-width:95%}}.jetpack-instant-search__search-results mark{background:#ffc;color:#00101c}.jetpack-instant-search__search-results-controls{display:flex}.jetpack-instant-search__search-results-content{display:flex;position:relative}.jetpack-instant-search__search-results-filter-button{align-items:center;border:0;color:#646970;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;margin:0;padding:8px;text-decoration:none;transition:background-color .25s ease-in-out}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-filter-button{visibility:hidden}@media(min-width:576px){.jetpack-instant-search__search-results-filter-button{font-size:13px;padding:10px 14px}}@media(min-width:992px){.jetpack-instant-search__search-results-filter-button{display:none}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:flex}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:none}}.jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__search-results-filter-button:hover{color:#00101c}.jetpack-instant-search__search-results-filter-button .gridicon{margin-left:4px}.jetpack-instant-search__search-results-primary{margin:0;max-width:calc(100% - 320px);width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-primary{max-width:100%}@media(max-width:991.98px){.jetpack-instant-search__search-results-primary{max-width:100%}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-primary{max-width:100%}}.jetpack-instant-search__search-results-secondary{background:none;border-left:1px solid #e6f1f5;border-radius:0;bottom:0;box-shadow:none;color:#00101c;display:block;flex:none;padding:0 32px;position:static;width:320px}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary{display:none}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:991.98px)and (max-width:575.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:1199.98px)and (max-width:575.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{color:#00101c;font-size:1em;font-weight:700;line-height:1.3;margin:1em 56px 1.5em;padding:0;word-break:break-word}@media(max-width:991.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title,.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-results-title{padding-right:210px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title{padding-right:210px}}.jetpack-instant-search__search-results-list{color:#00101c;list-style:none;margin-left:56px;margin-right:56px;padding:0}@media(max-width:991.98px){.jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list{margin-left:20px;margin-right:20px}}.jetpack-instant-search__search-results-list li:before{content:"​";height:1px;position:absolute;width:1px}.jetpack-instant-search__search-results-search-form{font-size:.8em;margin:0;top:0;width:100%}button.jetpack-instant-search__overlay-close{align-items:center;-webkit-appearance:none;appearance:none;background:none;background-color:transparent!important;border:none;border-bottom:1px solid #e6f1f5;box-shadow:none;cursor:pointer;display:flex;height:61px;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none;text-shadow:none;text-transform:none;width:60px}button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}button.jetpack-instant-search__overlay-close:focus{outline:1px dotted}button.jetpack-instant-search__overlay-close svg.gridicon{fill:#646970}button.jetpack-instant-search__overlay-close:active,button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{background-color:transparent!important;border-color:#e6f1f5}button.jetpack-instant-search__overlay-close:active svg.gridicon,button.jetpack-instant-search__overlay-close:focus svg.gridicon,button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#3c434a}.jetpack-instant-search__search-results-pagination{display:block;flex:none;margin:50px}.jetpack-instant-search .widget.widget_archive ul li a,.jetpack-instant-search .widget a,.jetpack-instant-search a{border:none;color:#001621;text-decoration:none}.jetpack-instant-search .widget.widget_archive ul li a:focus,.jetpack-instant-search .widget.widget_archive ul li a:hover,.jetpack-instant-search .widget a:focus,.jetpack-instant-search .widget a:hover,.jetpack-instant-search a:focus,.jetpack-instant-search a:hover{color:#044b7a;text-decoration:underline}.jetpack-search-filters-widget__filter-list{list-style-type:none}body.enable-search-modal .cover-modal.show-modal.search-modal.active{display:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark{background:rgba(29,35,39,.7);color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a{color:#f6f7f7}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:hover{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filters-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__content,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-list,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-unused-query{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__jetpack-colophon-text,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb-link{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filter-sub-heading,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__path{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box-gridicon svg,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close svg.gridicon{fill:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:focus svg.gridicon,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:hover{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field{background:#000;color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:hover{background:#000;color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results{background:#000}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results mark{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{color:#e6f1f5}@media(min-width:992px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{border-color:#3c434a}}@media(max-width:991.98px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#000;border-color:#3c434a;box-shadow:0 2px 3px #3c434a}}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option:after{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option.is-selected{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-product-img--placeholder{color:#2c3338}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark #jetpack-instant-search__search-sort-select{background:#000;border-color:#3c434a;color:#e6f1f5} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.js b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.js
new file mode 100644
index 00000000..30e8d3b6
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.js
@@ -0,0 +1,15 @@
+"use strict";(self.webpackChunkJetpack=self.webpackChunkJetpack||[]).push([[613],{3130:function(e,t,r){r.d(t,{Z:function(){return o}});var s=r(7538),n=r.n(s),i=r(5151),a=r(7079);class o extends i.wA{constructor(){super(...arguments),n()(this,"handleOverlayOptionsUpdate",(e=>{this.props.updateOverlayOptions(e,(()=>this.props.showResults()))}))}componentDidMount(){(0,a.vJ)(this.handleOverlayOptionsUpdate),(0,a.Em)(this.props.toggleResults)}render(){return null}}},3703:function(e,t,r){r.d(t,{Z:function(){return l}});var s=r(7538),n=r.n(s),i=r(5151),a=r(5034),o=r.n(a);class l extends i.wA{constructor(){super(...arguments),n()(this,"handleCompositionStart",(()=>this.setState({isComposing:!0}))),n()(this,"handleCompositionEnd",(()=>this.setState({isComposing:!1}))),n()(this,"handleFilterInputClick",(e=>{e.preventDefault(),e.currentTarget.dataset.filterType&&("taxonomy"===e.currentTarget.dataset.filterType?this.props.setFilter(e.currentTarget.dataset.taxonomy,e.currentTarget.dataset.val):this.props.setFilter(e.currentTarget.dataset.filterType,e.currentTarget.dataset.val)),this.props.setSearchQuery(""),this.props.showResults()})),n()(this,"handleHistoryNavigation",(()=>{this.props.initializeQueryValues({isHistoryNavigation:!0})})),n()(this,"handleInput",o()((e=>{e.inputType?.includes("format")||""===e.target.value||this.state.isComposing||"submit"!==this.props.overlayOptions.overlayTrigger&&(this.props.setSearchQuery(e.target.value),"immediate"===this.props.overlayOptions.overlayTrigger&&this.props.showResults(),"results"===this.props.overlayOptions.overlayTrigger&&this.props.response?.results&&this.props.showResults())}),200)),n()(this,"handleKeyup",(e=>{"Enter"===e.key&&(this.props.setSearchQuery(e.target.value),this.props.showResults())})),n()(this,"handleOverlayTriggerClick",(e=>{e.stopImmediatePropagation(),this.props.setSearchQuery(""),this.props.showResults()})),n()(this,"handleSubmit",(e=>{if(e.preventDefault(),this.handleInput.flush(),!this.props.isVisible){const t=e.target.querySelector(this.props.themeOptions.searchInputSelector)?.value;"string"==typeof t&&this.props.setSearchQuery(t),this.props.showResults()}})),n()(this,"fixBodyScroll",(()=>{this.props.isVisible?(this.preventBodyScroll(),window?.scrollTo(0,0)):this.props.isVisible||this.restoreBodyScroll()})),this.state={isComposing:!1,bodyScrollTop:0,previousStyle:null,previousBodyStyleAttribute:""},this.props.initializeQueryValues()}componentDidMount(){this.disableUnnecessaryFormAndInputAttributes(),this.addEventListeners()}componentWillUnmount(){this.removeEventListeners(),this.restoreBodyScroll()}componentDidUpdate(e){this.props.isVisible!==e.isVisible&&this.fixBodyScroll()}disableUnnecessaryFormAndInputAttributes(){document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.removeAttribute("required"),e.removeAttribute("autocomplete"),e.form.removeAttribute("autocomplete")}))}addEventListeners(){window.addEventListener("popstate",this.handleHistoryNavigation),document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.form.addEventListener("submit",this.handleSubmit),e.addEventListener("keyup",this.handleKeyup),e.addEventListener("input",this.handleInput),e.addEventListener("compositionstart",this.handleCompositionStart),e.addEventListener("compositionend",this.handleCompositionEnd)})),document.querySelectorAll(this.props.themeOptions.overlayTriggerSelector).forEach((e=>{e.addEventListener("click",this.handleOverlayTriggerClick,!0)})),document.querySelectorAll(this.props.themeOptions.filterInputSelector).forEach((e=>{e.addEventListener("click",this.handleFilterInputClick)}))}removeEventListeners(){window.removeEventListener("popstate",this.handleHistoryNavigation),document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.form.removeEventListener("submit",this.handleSubmit),e.removeEventListener("keyup",this.handleKeyup),e.removeEventListener("input",this.handleInput),e.removeEventListener("compositionstart",this.handleCompositionStart),e.removeEventListener("compositionend",this.handleCompositionEnd)})),document.querySelectorAll(this.props.themeOptions.overlayTriggerSelector).forEach((e=>{e.removeEventListener("click",this.handleOverlayTriggerClick,!0)})),document.querySelectorAll(this.props.themeOptions.filterInputSelector).forEach((e=>{e.removeEventListener("click",this.handleFilterInputClick)}))}preventBodyScroll(){this.setState({bodyScrollTop:parseInt(window.scrollY)||0,previousStyle:{top:document.body.style.top,left:document.body.style.left,right:document.body.style.right,scrollBehavior:document.documentElement.style.scrollBehavior},previousBodyStyleAttribute:document.body.getAttribute("style")},(()=>{const e=document.documentElement?.scrollHeight-document.body?.scrollHeight||0;document.body.setAttribute("style","position: fixed !important"),document.body.style.top=`-${this.state.bodyScrollTop-e}px`,document.body.style.left=0,document.body.style.right=0}))}restoreBodyScroll(){var e,t,r,s;this.state.previousBodyStyleAttribute?document.body.setAttribute("style",this.state.previousBodyStyleAttribute):document.body.removeAttribute("style"),document.body.style.top=null!==(e=this.state.previousStyle?.top)&&void 0!==e?e:"",document.body.style.left=null!==(t=this.state.previousStyle?.left)&&void 0!==t?t:"",document.body.style.right=null!==(r=this.state.previousStyle?.right)&&void 0!==r?r:"",document.documentElement.style.scrollBehavior="revert",this.state.bodyScrollTop>0&&window.scrollTo(0,this.state.bodyScrollTop),document.documentElement.style.scrollBehavior=null!==(s=this.state.previousStyle?.scrollBehavior)&&void 0!==s?s:"",this.setState({bodyScrollTop:0,previousStyle:null,previousBodyStyleAttribute:""})}render(){return null}}},1295:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5151),a=r(5736);const __=a.__;class o extends i.wA{needsOffset(e,t){return["gridicons-calendar","gridicons-cart","gridicons-folder","gridicons-info","gridicons-posts","gridicons-star-outline","gridicons-star"].indexOf(e)>=0&&t%18==0}getSVGTitle(e){if("title"in this.props)return this.props.title?i.ZP.createElement("title",null,this.props.title):null;switch(e){default:return null;case"gridicons-audio":return i.ZP.createElement("title",null,__("Has audio.","jetpack"));case"gridicons-calendar":return i.ZP.createElement("title",null,__("Is an event.","jetpack"));case"gridicons-cart":return i.ZP.createElement("title",null,__("Is a product.","jetpack"));case"chevron-down":return i.ZP.createElement("title",null,__("Show filters","jetpack"));case"gridicons-comment":return i.ZP.createElement("title",null,__("Matching comment.","jetpack"));case"gridicons-cross":return i.ZP.createElement("title",null,__("Close search results","jetpack"));case"gridicons-filter":return i.ZP.createElement("title",null,__("Toggle search filters.","jetpack"));case"gridicons-folder":return i.ZP.createElement("title",null,__("Category","jetpack"));case"gridicons-image-multiple":return i.ZP.createElement("title",null,__("Has multiple images.","jetpack"));case"gridicons-image":return i.ZP.createElement("title",null,__("Has an image.","jetpack"));case"gridicons-page":return i.ZP.createElement("title",null,__("Page","jetpack"));case"gridicons-post":return i.ZP.createElement("title",null,__("Post","jetpack"));case"gridicons-jetpack-search":case"gridicons-search":return i.ZP.createElement("title",null,__("Search","jetpack"));case"gridicons-tag":return i.ZP.createElement("title",null,__("Tag","jetpack"));case"gridicons-video":return i.ZP.createElement("title",null,__("Has a video.","jetpack"))}}renderIcon(e){switch(e){default:return null;case"gridicons-audio":return i.ZP.createElement("g",null,i.ZP.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-block":return i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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-chevron-down":return i.ZP.createElement("g",null,i.ZP.createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"}));case"gridicons-comment":return i.ZP.createElement("g",null,i.ZP.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-cross":return i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.createElement("path",{d:"M10 19h4v-2h-4v2zm-4-6h12v-2H6v2zM3 5v2h18V5H3z"}));case"gridicons-folder":return i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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-jetpack-search":return i.ZP.createElement("g",null,i.ZP.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-pages":return i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"}));case"gridicons-search":return i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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 i.ZP.createElement("g",null,i.ZP.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"}))}}render(){const{size:e=24,className:t=""}=this.props,r=this.props.height||e,s=this.props.width||e,n=this.props.style||{height:r,width:s},a="gridicons-"+this.props.icon;let o=["gridicon",a,t];return this.needsOffset(a,e)&&o.push("needs-offset"),o=o.join(" "),i.ZP.createElement("svg",{className:o,focusable:this.props.focusable,height:r,onClick:this.props.onClick,style:n,viewBox:"0 0 24 24",width:s,xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.props["aria-hidden"]},this.getSVGTitle(a),this.renderIcon(a))}}n()(o,"defaultProps",{"aria-hidden":"false",focusable:"true"}),t.Z=o},1429:function(e,t,r){var s=r(5151),n=r(5736);const __=n.__,i="#fff",a=s.ZP.createElement("svg",{className:"jetpack-instant-search__jetpack-colophon-logo",height:12,width:12,viewBox:"0 0 32 32"},s.ZP.createElement("path",{className:"jetpack-logo__icon-circle",fill:"#069e08",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),s.ZP.createElement("polygon",{className:"jetpack-logo__icon-triangle",fill:i,points:"15,19 7,19 15,3 "}),s.ZP.createElement("polygon",{className:"jetpack-logo__icon-triangle",fill:i,points:"17,29 17,13 25,13 "}));t.Z=e=>{const t="string"==typeof e.locale?e.locale.split("-",1)[0]:null,r=t&&"en"!==t?"https://"+t+".jetpack.com/search?utm_source=poweredby":"https://jetpack.com/search?utm_source=poweredby";return s.ZP.createElement("div",{className:"jetpack-instant-search__jetpack-colophon"},s.ZP.createElement("a",{href:r,rel:"external noopener noreferrer nofollow",target:"_blank",className:"jetpack-instant-search__jetpack-colophon-link"},a,s.ZP.createElement("span",{className:"jetpack-instant-search__jetpack-colophon-text"},__("Search powered by Jetpack","jetpack"))))}},3660:function(e,t,r){var s=r(5151),n=r(1295);t.Z=e=>{let{type:t,children:r}=e;return"warning"!==t?null:s.ZP.createElement("div",{className:"jetpack-instant-search__notice jetpack-instant-search__notice--warning"},s.ZP.createElement(n.Z,{icon:"info",size:20}),r)}},1808:function(e,t,r){var s=r(5736),n=r(5151),i=r(9532);const __=s.__;t.Z=e=>{const{children:t,closeOverlay:r,colorTheme:s,hasOverlayWidgets:a,isVisible:o}=e,l=(c=r,e=>{"Escape"!==e.key&&"Esc"!==e.key||(e.preventDefault(),c())});var c;return(0,n.d4)((()=>(window.addEventListener("keydown",l),()=>{window.removeEventListener("keydown",l)})),[l]),n.ZP.createElement("div",{"aria-hidden":!o,"aria-labelledby":"jetpack-instant-search__overlay-title",className:["jetpack-instant-search",i.zg,`jetpack-instant-search__overlay--${s}`,a?"":"jetpack-instant-search__overlay--no-sidebar",o?"":"is-hidden"].join(" "),role:"dialog"},n.ZP.createElement("h1",{id:"jetpack-instant-search__overlay-title",className:"screen-reader-text"},__("Search results","jetpack")),t)}},6941:function(e,t,r){var s=r(5151);t.Z=e=>{let{className:t,onClick:r,url:n}=e;const i=function(e){const t=e.split("/").filter((e=>e.length>0));return t.shift(),t}(n);return i.length<1?null:s.ZP.createElement("div",{className:`jetpack-instant-search__path-breadcrumb ${t||""}`},s.ZP.createElement("a",{className:"jetpack-instant-search__path-breadcrumb-link",href:`//${n}`,onClick:r},i.map(((e,t,r)=>s.ZP.createElement("span",{className:"jetpack-instant-search__path-breadcrumb-piece"},decodeURIComponent(e),t!==r.length-1?" › ":"")))))}},7979:function(e,t,r){var s=r(9183),n=r.n(s),i=r(5151),a=r(7802);t.Z=e=>{const{alt:t,isPhotonEnabled:r,maxHeight:s=600,maxWidth:o=600,src:l,lazyLoad:c=!0,...p}=e,u=(0,i.sO)(),[h,d]=(0,i.eJ)(null),m=(0,a.y)(l,o,s,r);return(0,i.d4)((()=>{if(!m)return;let e=null;return c&&"IntersectionObserver"in window?(e=new window.IntersectionObserver(((e,t)=>{for(const r of e)r.isIntersecting&&(d(m),t.unobserve(r.target))})),e.observe(u.current)):d(m),()=>{e?.disconnect()}}),[c,m]),i.ZP.createElement("img",n()({alt:t,ref:u,src:h},p))}},1208:function(e,t,r){var s=r(5151),n=r(1295),i=r(7135);const a=["youtube","ooyala","anvplayer","wpvideo","bc_video","video","brightcove","tp_video","jwplayer","tempo-video","vimeo"],o=["gallery","ione_media_gallery"],l=["audio","soundcloud"],c={product:"cart",video:"video",gallery:"image-multiple",event:"calendar",events:"calendar"};t.Z=e=>{let{postType:t,shortcodeTypes:r,iconSize:p=18}=e;if(Object.keys(c).includes(t))return s.ZP.createElement(n.Z,{icon:c[t],size:p});const u=(0,i.Z)(r,a),h=(0,i.Z)(r,l),d=(0,i.Z)(r,o);return u?s.ZP.createElement(n.Z,{icon:"video",size:p}):h?s.ZP.createElement(n.Z,{icon:"audio",size:p}):"page"===t?s.ZP.createElement(n.Z,{icon:"pages",size:p}):d?s.ZP.createElement(n.Z,{icon:"image-multiple",size:p}):null}},9592:function(e,t,r){var s=r(5151);class n extends s.wA{render(){const{formattedPrice:e,formattedSalePrice:t,formattedRegularPrice:r,price:n,salePrice:i}=this.props;return n?s.ZP.createElement("span",{className:"jetpack-instant-search__product-price"},i>0?s.ZP.createElement(s.HY,null,s.ZP.createElement("s",{className:"jetpack-instant-search__product-price-regular",dangerouslySetInnerHTML:{__html:r}}),s.ZP.createElement("span",{dangerouslySetInnerHTML:{__html:t}})):s.ZP.createElement("span",{dangerouslySetInnerHTML:{__html:e}})):null}}t.Z=n},7265:function(e,t,r){r.d(t,{Z:function(){return a}});var s=r(5736),n=r(5151),i=r(1295);const _n=s._n;function a(e){let{rating:t=0,count:r=0,permalink:a}=e;return n.ZP.createElement("div",{className:"jetpack-instant-search__product-rating"},n.ZP.createElement("span",{"aria-hidden":!0,className:"jetpack-instant-search__product-rating-stars"},Array(5).fill(n.ZP.createElement(i.Z,{size:16,icon:"star-outline"})).fill(n.ZP.createElement(i.Z,{size:16,icon:"star"}),0,t))," ",n.ZP.createElement("a",{"aria-hidden":!0,className:"jetpack-instant-search__product-rating-count",href:a+"#reviews"},(0,s.sprintf)(
+/* Translators: the placeholder is the number of product reviews. */
+_n("%d review","%d reviews",r,"jetpack"),r)),n.ZP.createElement("span",{className:"screen-reader-text"},(0,s.sprintf)(
+/* Translators: the first placeholder is the average product rating out of 5; the second is the number of product reviews. */
+_n("Average rating of %1$d out of 5 from %2$d review.","Average rating of %1$d out of 5 from %2$d reviews.",r,"jetpack"),Number(t).toFixed(2),r)))}},9534:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5151),a=r(5736),o=r(5034),l=r.n(o),c=r(9532);const __=a.__;class p extends i.wA{constructor(){super(...arguments),n()(this,"overlayElement",document.getElementsByClassName(c.zg)[0]),n()(this,"checkScroll",l()((()=>{this.props.enableLoadOnScroll&&window.innerHeight+this.overlayElement.scrollTop>=this.overlayElement.scrollHeight&&this.props.onLoadNextPage()}),100))}componentDidMount(){this.overlayElement.addEventListener("scroll",this.checkScroll)}componentDidUnmount(){this.overlayElement.removeEventListener("scroll",this.checkScroll)}render(){return i.ZP.createElement("button",{className:"jetpack-instant-search__scroll-button",disabled:this.props.isLoading,onClick:this.props.onLoadNextPage},this.props.isLoading?i.ZP.createElement("span",null,__("Loading…","jetpack")):i.ZP.createElement("span",null,__("Load more","jetpack")))}}t.Z=p},9661:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5151),a=r(5034),o=r.n(a),l=r(2620),c=r(8027),p=r.n(c),u=r(3130),h=r(3703),d=r(1808),m=r(5031),g=r(6546),_=r(9532),f=r(2168),y=r(6669),v=r(7283),E=r(341);class k extends i.wA{constructor(){var e;super(...arguments),e=this,n()(this,"getResultFormat",(()=>{const e=(0,y.ug)();return this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==_.Bk?_.Pz:e||this.state.overlayOptions.resultFormat})),n()(this,"initializeStaticFilters",(()=>{const e=(0,f.bA)();e.length>0&&0===Object.keys(this.props.staticFilters).length&&e.forEach((e=>this.props.setStaticFilter(e.filter_id,e.selected,!0)))})),n()(this,"hideResults",(e=>{this.props.shouldIntegrateWithDom&&(0,y.Q0)(this.props.initialHref,(()=>{this.setState({isVisible:!1}),this.props.clearQueryValues()}),e)})),n()(this,"toggleResults",(e=>{this.props.shouldIntegrateWithDom&&this.state.isVisible!==e&&(e&&this.initializeStaticFilters(),this.setState({isVisible:e}))})),n()(this,"showResults",this.toggleResults.bind(this,!0)),n()(this,"onChangeQueryString",(e=>{this.getResults(),this.props.hasActiveQuery&&!this.state.isVisible&&this.showResults(),!this.props.hasActiveQuery&&e&&this.hideResults(e),null!==this.props.searchQuery&&document.querySelectorAll(this.props.themeOptions.searchInputSelector).forEach((e=>{e.value=this.props.searchQuery}))})),n()(this,"loadNextPage",(()=>{this.props.hasNextPage&&this.getResults({pageHandle:this.props.response.page_handle})})),n()(this,"getResults",(function(){let{pageHandle:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.props.makeSearchRequest({aggregations:t?{}:e.props.aggregations,excludedPostTypes:e.state.overlayOptions.excludedPostTypes,filter:e.props.filters,staticFilters:e.props.staticFilters,pageHandle:t,query:e.props.searchQuery,resultFormat:e.getResultFormat(),siteId:e.props.options.siteId,sort:e.props.sort,postsPerPage:e.props.options.postsPerPage,adminQueryFilter:e.props.options.adminQueryFilter,isInCustomizer:e.props.isInCustomizer})})),n()(this,"updateOverlayOptions",((e,t)=>{this.setState((t=>({overlayOptionsCustomizerOverride:{...t.overlayOptionsCustomizerOverride,...e}})),t)})),this.state={isVisible:!!this.props.initialIsVisible,overlayOptionsCustomizerOverride:{}},this.getResults=o()(this.getResults,200),this.props.enableAnalytics?this.initializeAnalytics():(0,g.IJ)(),this.props.shouldIntegrateWithDom?this.props.initializeQueryValues():this.props.disableQueryStringIntegration()}static getDerivedStateFromProps(e,t){return{overlayOptions:{...e.overlayOptions,...t.overlayOptionsCustomizerOverride}}}componentDidMount(){this.getResults(),this.props.hasActiveQuery&&this.showResults()}componentDidUpdate(e,t){e.searchQuery===this.props.searchQuery&&e.sort===this.props.sort&&p()(e.filters)===p()(this.props.filters)&&p()(e.staticFilters)===p()(this.props.staticFilters)||this.onChangeQueryString(this.props.isHistoryNavigation),t.overlayOptions.defaultSort!==this.state.overlayOptions.defaultSort&&this.props.setSort(this.state.overlayOptions.defaultSort),p()(t.overlayOptions.excludedPostTypes)!==p()(this.state.overlayOptions.excludedPostTypes)&&this.getResults()}initializeAnalytics(){(0,g.tU)(),(0,g.vy)(),(0,g.AM)(this.props.options.siteId)}render(){const e=this.getResultFormat(),t=this.props.shouldCreatePortal?i.jz:e=>e;return i.ZP.createElement(i.HY,null,this.props.isInCustomizer&&i.ZP.createElement(u.Z,{showResults:this.showResults,toggleResults:this.toggleResults,updateOverlayOptions:this.updateOverlayOptions}),this.props.shouldIntegrateWithDom&&i.ZP.createElement(h.Z,{initializeQueryValues:this.props.initializeQueryValues,isVisible:this.state.isVisible,overlayOptions:this.state.overlayOptions,setFilter:this.props.setFilter,setSearchQuery:this.props.setSearchQuery,showResults:this.showResults,themeOptions:this.props.themeOptions}),t(i.ZP.createElement(d.Z,{closeColor:this.state.overlayOptions.closeColor,closeOverlay:this.hideResults,colorTheme:this.state.overlayOptions.colorTheme,hasOverlayWidgets:this.props.hasOverlayWidgets,isVisible:this.state.isVisible},i.ZP.createElement(m.Z,{closeOverlay:this.hideResults,enableLoadOnScroll:this.state.overlayOptions.enableInfScroll,enableSort:this.state.overlayOptions.enableSort,filters:this.props.filters,staticFilters:this.props.staticFilters,hasError:this.props.hasError,hasNextPage:this.props.hasNextPage,highlightColor:this.state.overlayOptions.highlightColor,isLoading:this.props.isLoading,isPhotonEnabled:this.props.options.isPhotonEnabled,isPrivateSite:this.props.options.isPrivateSite,isVisible:this.state.isVisible,locale:this.props.options.locale,onChangeSearch:this.props.setSearchQuery,onChangeSort:this.props.setSort,onLoadNextPage:this.loadNextPage,overlayTrigger:this.state.overlayOptions.overlayTrigger,postTypes:this.props.options.postTypes,response:this.props.response,resultFormat:e,searchQuery:this.props.searchQuery,showPoweredBy:this.state.overlayOptions.showPoweredBy,sort:this.props.sort,widgets:this.props.options.widgets,widgetOutsideOverlay:this.props.widgetOutsideOverlay,hasNonSearchWidgets:this.props.options.hasNonSearchWidgets})),document.body))}}n()(k,"defaultProps",{overlayOptions:{},widgets:[]}),t.Z=(0,l.$j)(((e,t)=>({filters:(0,E.Zj)(e),staticFilters:(0,E.Bk)(e),hasActiveQuery:(0,E.en)(e),hasError:(0,E.xT)(e),isHistoryNavigation:(0,E.wI)(e),hasNextPage:(0,E.Qy)(e),isLoading:(0,E.hg)(e),response:(0,E.ck)(e),searchQuery:(0,E.uP)(e),sort:(0,E.r$)(e,t.overlayOptions.defaultSort),widgetOutsideOverlay:(0,E.ZN)(e)})),{clearQueryValues:v.Mz,disableQueryStringIntegration:v.OZ,initializeQueryValues:v.Ln,makeSearchRequest:v.x1,setStaticFilter:v.O1,setFilter:v.Tv,setSearchQuery:v.ql,setSort:v.HD})(k)},2957:function(e,t,r){var s=r(5151),n=r(5736),i=r(660),a=r.n(i),o=r(1295);const __=n.__;let l=null;t.Z=e=>{var t;const[r]=(0,s.eJ)((()=>a()("jetpack-instant-search__box-input-"))),n=(0,s.sO)(null);return(0,s.d4)((()=>{var t;e.isVisible?(t=n.current,()=>{l=document.activeElement,t.focus()})():e.shouldRestoreFocus&&l&&l.focus()}),[e.isVisible,e.shouldRestoreFocus]),s.ZP.createElement(s.HY,null,s.ZP.createElement("div",{className:"jetpack-instant-search__box"},s.ZP.createElement("label",{className:"jetpack-instant-search__box-label",htmlFor:r},s.ZP.createElement("span",{className:"screen-reader-text assistive-text"},__("Site Search","jetpack")),s.ZP.createElement("div",{className:"jetpack-instant-search__box-gridicon"},s.ZP.createElement(o.Z,{icon:"search",size:24})),s.ZP.createElement("input",{autoComplete:"off",id:r,className:"search-field jetpack-instant-search__box-input",inputMode:"search",onChange:e.isVisible?e.onChange:null,ref:n,placeholder:__("Search…","jetpack"),type:"search",value:null!==(t=e.searchQuery)&&void 0!==t?t:""}),"string"==typeof e.searchQuery&&e.searchQuery.length>0&&
+/* Translators: Button is used to clear the search input query. */
+s.ZP.createElement("input",{type:"button",value:__("clear","jetpack"),onClick:e.onClear}),s.ZP.createElement("button",{className:"screen-reader-text assistive-text"},__("Search","jetpack")))))}},6536:function(e,t,r){var s=r(5151),n=r(649);t.Z=e=>s.ZP.createElement("div",{className:"jetpack-instant-search__search-form-controls"},e.children,e.enableSort&&s.ZP.createElement(n.Z,{onChange:e.onChangeSort,resultFormat:e.resultFormat,value:e.sort}))},7287:function(e,t,r){r.d(t,{a:function(){return u},Z:function(){return h}});var s=r(7538),n=r.n(s),i=r(5151),a=r(7078),o=r.n(a),l=r(660),c=r.n(l),p=r(8931);const u=e=>e.split(" ").join("T");class h extends i.wA{constructor(){super(...arguments),n()(this,"filtersList",(0,i.Vf)()),n()(this,"idPrefix",c()("jetpack-instant-search__search-filter-")),n()(this,"toggleFilter",(()=>{this.props.onChange(this.getIdentifier(),(0,p.b)(this.filtersList.current))})),n()(this,"toggleStaticFilter",(e=>{this.props.onChange(this.getIdentifier(),e.target.value)})),n()(this,"renderDate",(e=>{let{key_as_string:t,doc_count:r}=e;const{locale:s="en-US"}=this.props;return i.ZP.createElement("div",null,i.ZP.createElement("input",{checked:this.isChecked(t),disabled:!this.isChecked(t)&&0===r,id:`${this.idPrefix}-dates-${this.getIdentifier()}-${t}`,name:t,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i.ZP.createElement("label",{htmlFor:`${this.idPrefix}-dates-${this.getIdentifier()}-${t}`,className:"jetpack-instant-search__search-filter-list-label"},new Date(u(t)).toLocaleString(s,function(e){switch(e){case"day":return{year:"numeric",month:"long",day:"numeric"};case"month":return{year:"numeric",month:"long"};case"year":return{year:"numeric"}}return{year:"numeric",month:"long"}}(this.props.configuration.interval))," ","(",r,")"))})),n()(this,"renderPostType",(e=>{let{key:t,doc_count:r}=e;const s=t in this.props.postTypes?this.props.postTypes[t].singular_name:t;return i.ZP.createElement("div",null,i.ZP.createElement("input",{checked:this.isChecked(t),disabled:!this.isChecked(t)&&0===r,id:`${this.idPrefix}-post-types-${t}`,name:t,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i.ZP.createElement("label",{htmlFor:`${this.idPrefix}-post-types-${t}`,className:"jetpack-instant-search__search-filter-list-label"},o()(s)," (",r,")"))})),n()(this,"renderTaxonomy",(e=>{let{key:t,doc_count:r}=e;const[s,n]=t&&t.split(/\/(.+)/);return i.ZP.createElement("div",null,i.ZP.createElement("input",{checked:this.isChecked(s),disabled:!this.isChecked(s)&&0===r,id:`${this.idPrefix}-taxonomies-${s}`,name:s,onChange:this.toggleFilter,type:"checkbox",className:"jetpack-instant-search__search-filter-list-input"}),i.ZP.createElement("label",{htmlFor:`${this.idPrefix}-taxonomies-${s}`,className:"jetpack-instant-search__search-filter-list-label"},o()(n)," (",r,")"))})),n()(this,"renderGroup",(e=>i.ZP.createElement("div",null,i.ZP.createElement("input",{checked:this.isChecked(e.value),id:`${this.idPrefix}-groups-${e.value}`,name:this.props.configuration.filter_id,onChange:this.toggleStaticFilter,value:e.value,type:"radio",className:"jetpack-instant-search__search-filter-list-input"}),i.ZP.createElement("label",{htmlFor:`${this.idPrefix}-groups-${e.value}`,className:"jetpack-instant-search__search-filter-list-label"},e.name))))}getIdentifier(){return"postType"===this.props.type?"post_types":"date"===this.props.type?`${this.props.configuration.interval}_${this.props.configuration.field}`:"taxonomy"===this.props.type?this.props.configuration.taxonomy:"group"===this.props.type?this.props.configuration.filter_id:void 0}isChecked(e){return Boolean(this.props.value&&this.props.value.includes(e))}renderDates(){return[...this.props.aggregation.buckets.filter((e=>!!e)).map(this.renderDate)].reverse().slice(0,this.props.configuration.count)}renderPostTypes(){return this.props.aggregation.buckets.map(this.renderPostType)}renderTaxonomies(){return this.props.aggregation.buckets.map(this.renderTaxonomy)}renderGroups(){return this.props.configuration.values.map(this.renderGroup)}render(){return i.ZP.createElement("div",null,i.ZP.createElement("h4",{className:"jetpack-instant-search__search-filter-sub-heading"},this.props.configuration.name),i.ZP.createElement("div",{ref:this.filtersList},i.ZP.createElement("div",{className:"jetpack-instant-search__search-filter-list jetpack-instant-search__search-static-filter-list"},"group"===this.props.type&&this.renderGroups()),this.props.aggregation&&"buckets"in this.props.aggregation&&i.ZP.createElement("div",{className:"jetpack-instant-search__search-filter-list"},"date"===this.props.type&&this.renderDates(),"postType"===this.props.type&&this.renderPostTypes(),"taxonomy"===this.props.type&&this.renderTaxonomies())))}}},2360:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5151),a=r(5736),o=r(2620),l=r(7287),c=r(2168),p=r(7283),u=r(6546);const __=a.__;class h extends i.wA{constructor(){super(...arguments),n()(this,"onChangeFilter",((e,t)=>{this.props.setFilter(e,t),this.props.onChange&&this.props.onChange()})),n()(this,"onChangeStaticFilter",((e,t)=>{(0,u.GE)({filterName:e,filterValue:t}),this.props.setStaticFilter(e,t),this.props.onChange&&this.props.onChange()})),n()(this,"onClearFilters",(e=>{e.preventDefault(),"click"!==e.type&&("keydown"!==e.type||"Enter"!==e.key&&" "!==e.key)||(this.props.clearFilters(),this.props.onChange&&this.props.onChange())})),n()(this,"renderFilterComponent",(e=>{let{configuration:t,results:r}=e;return r&&i.ZP.createElement(l.Z,{aggregation:r,configuration:t,locale:this.props.locale,onChange:this.onChangeFilter,postTypes:this.props.postTypes,type:(0,c.jc)(t),value:this.props.filters[(0,c.jZ)(t)]})})),n()(this,"renderStaticFilterComponent",(e=>e.hasOwnProperty("visible")&&!e.visible?null:i.ZP.createElement(l.Z,{aggregation:[],configuration:e,locale:this.props.locale,onChange:this.onChangeStaticFilter,postTypes:this.props.postTypes,type:(0,c.jc)(e),value:this.props.staticFilters[(0,c.jZ)(e)]})))}hasActiveFilters(){return Object.keys(this.props.filters).length>0}render(){if(!this.props.widget)return null;const e=(0,c.bA)(),t=this.props.results?.aggregations;return i.ZP.createElement("div",{className:"jetpack-instant-search__search-filters"},this.props.showTitle&&i.ZP.createElement("div",{className:"jetpack-instant-search__search-filters-title"},__("Filter options","jetpack")),this.props.showClearFiltersButton&&this.hasActiveFilters()&&i.ZP.createElement("a",{class:"jetpack-instant-search__clear-filters-link",href:"#",onClick:this.onClearFilters,onKeyDown:this.onClearFilters,role:"button",tabIndex:"0"},__("Clear filters","jetpack")),this.props.widget?.filters&&this.props.widget.filters.length>0&&e.map(this.renderStaticFilterComponent),this.props.widget?.filters?.map((e=>t?{configuration:e,results:t[e.filter_id]}:null)).filter((e=>!!e)).filter((e=>{let{results:t}=e;return!!t&&Array.isArray(t.buckets)&&t.buckets.length>0})).map(this.renderFilterComponent))}}n()(h,"defaultProps",{showClearFiltersButton:!0,showTitle:!0}),t.Z=(0,o.$j)(null,{clearFilters:p.K5,setFilter:p.Tv,setStaticFilter:p.O1})(h)},6268:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5151),a=r(2957);const o=e=>e.preventDefault();class l extends i.wA{constructor(){super(...arguments),n()(this,"onClear",(()=>this.props.onChangeSearch(""))),n()(this,"onChangeSearch",(e=>this.props.onChangeSearch(e.currentTarget.value)))}render(){return i.ZP.createElement("form",{autocomplete:"off",onSubmit:o,role:"search",className:this.props.className},i.ZP.createElement("div",{className:"jetpack-instant-search__search-form"},i.ZP.createElement(a.Z,{isVisible:this.props.isVisible,onChange:this.onChangeSearch,onClear:this.onClear,shouldRestoreFocus:!0,searchQuery:this.props.searchQuery})))}}t.Z=l},6034:function(e,t,r){var s=r(5151),n=r(1295);t.Z=e=>{let{comments:t,iconSize:r=18}=e;return t?s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-comments"},s.ZP.createElement(n.Z,{icon:"comment",size:r}),s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-comments-text",dangerouslySetInnerHTML:{__html:t.join(" ... ")}})):null}},8424:function(e,t,r){r.d(t,{Z:function(){return l}});var s=r(5151),n=r(6941),i=r(7979),a=r(6034),o=r(7287);function l(e){const{isMultiSite:t,locale:r="en-US"}=e,{result_type:l,fields:c,highlight:p}=e.result;if("post"!==l)return null;const u=Array.isArray(c["image.url.raw"])?c["image.url.raw"][0]:c["image.url.raw"];return s.ZP.createElement("li",{className:["jetpack-instant-search__search-result","jetpack-instant-search__search-result-expanded",`jetpack-instant-search__search-result-expanded--${c.post_type}`,u?"":"jetpack-instant-search__search-result-expanded--no-image",t?"is-multisite":""].join(" ")},s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-expanded__content-container"},s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-expanded__copy-container"},s.ZP.createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-expanded__title"},s.ZP.createElement("a",{className:"jetpack-instant-search__search-result-title-link jetpack-instant-search__search-result-expanded__title-link",href:`//${c["permalink.url.raw"]}`,onClick:e.onClick,dangerouslySetInnerHTML:{__html:p.title}})),!t&&s.ZP.createElement(n.Z,{className:"jetpack-instant-search__search-result-expanded__path",onClick:e.onClick,url:`//${c["permalink.url.raw"]}`}),s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-expanded__content",dangerouslySetInnerHTML:{__html:p.content.join(" ... ")}}),p.comments&&s.ZP.createElement(a.Z,{comments:p.comments})),s.ZP.createElement("a",{className:"jetpack-instant-search__search-result-expanded__image-link",href:`//${c["permalink.url.raw"]}`,onClick:e.onClick},s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-expanded__image-container"},u?s.ZP.createElement(i.Z,{alt:c["title.default"],className:"jetpack-instant-search__search-result-expanded__image",isPhotonEnabled:e.isPhotonEnabled,src:`//${u}`}):null))),t&&s.ZP.createElement("ul",{className:"jetpack-instant-search__search-result-expanded__footer"},s.ZP.createElement("li",null,s.ZP.createElement(i.Z,{alt:c.blog_name,className:"jetpack-instant-search__search-result-expanded__footer-blog-image",isPhotonEnabled:!1,height:24,width:24,src:c.blog_icon_url,lazyLoad:!1}),s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-blog"},c.blog_name)),s.ZP.createElement("li",null,s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-author"},c.author)),s.ZP.createElement("li",null,s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-expanded__footer-date"},new Date((0,o.a)(c.date)).toLocaleDateString(r,{year:"numeric",month:"short",day:"numeric"})))))}},7165:function(e,t,r){var s=r(5151),n=r(1295),i=r(6941),a=r(1208),o=r(6034);class l extends s.wA{getIconSize(){return 18}getTags(){let e=this.props.result.fields["tag.name.default"];return e?(Array.isArray(e)||(e=[e]),e.slice(0,5)):[]}getCategories(){let e=this.props.result.fields["category.name.default"];return e?(Array.isArray(e)||(e=[e]),e.slice(0,5)):[]}renderNoMatchingContent(){const e=this.getTags(),t=this.getCategories(),r=0===e.length&&0===t.length;return s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-minimal-content"},r&&s.ZP.createElement(i.Z,{url:this.props.result.fields["permalink.url.raw"]}),s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-minimal-cats-and-tags"},0!==e.length&&s.ZP.createElement("ul",{className:"jetpack-instant-search__search-result-minimal-tags"},e.map((e=>s.ZP.createElement("li",{className:"jetpack-instant-search__search-result-minimal-tag"},s.ZP.createElement(n.Z,{icon:"tag",size:this.getIconSize()}),s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-minimal-tag-text"},e))))),0!==t.length&&s.ZP.createElement("ul",{className:"jetpack-instant-search__search-result-minimal-cats"},t.map((e=>s.ZP.createElement("li",{className:"jetpack-instant-search__search-result-minimal-cat"},s.ZP.createElement(n.Z,{icon:"folder",size:this.getIconSize()}),s.ZP.createElement("span",{className:"jetpack-instant-search__search-result-minimal-cat-text"},e)))))))}renderMatchingContent(){return s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-minimal-content",dangerouslySetInnerHTML:{__html:this.props.result.highlight.content.join(" ... ")}})}render(){const{result_type:e,fields:t,highlight:r}=this.props.result;if("post"!==e)return null;const n=!r.content||""===r.content[0];return s.ZP.createElement("li",{className:"jetpack-instant-search__search-result jetpack-instant-search__search-result-minimal"},s.ZP.createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-minimal-title"},s.ZP.createElement(a.Z,{postType:t.post_type,shortcodeTypes:t.shortcode_types}),s.ZP.createElement("a",{className:"jetpack-instant-search__search-result-title-link jetpack-instant-search__search-result-minimal-title-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick,dangerouslySetInnerHTML:{__html:r.title}})),n?this.renderNoMatchingContent():this.renderMatchingContent(),s.ZP.createElement(o.Z,{comments:r&&r.comments}))}}t.Z=l},1828:function(e,t,r){var s=r(5151),n=r(5736),i=r(1295),a=r(7979),o=r(7265),l=r(9592);const __=n.__;class c extends s.wA{render(){const{result_type:e,fields:t,highlight:r}=this.props.result;if("post"!==e)return null;const n=Array.isArray(t["image.url.raw"])?t["image.url.raw"][0]:t["image.url.raw"],c=Array.isArray(r.title)&&r.title[0].length>0?r.title[0]:__("No title","jetpack"),p="string"==typeof this.props.searchQuery&&""!==this.props.searchQuery.trim(),u=c.includes("<mark>"),h=p&&!u&&Array.isArray(r.content)&&r.content[0]?.length>0;return s.ZP.createElement("li",{className:"jetpack-instant-search__search-result jetpack-instant-search__search-result-product"},s.ZP.createElement("a",{className:"jetpack-instant-search__search-result-product-img-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick},s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-product-img-container "+(n?"":"jetpack-instant-search__search-result-product-img-container--placeholder")},n?s.ZP.createElement(a.Z,{alt:t["title.default"],className:"jetpack-instant-search__search-result-product-img",isPhotonEnabled:this.props.isPhotonEnabled,src:`//${n}`}):s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-product-img"},s.ZP.createElement(i.Z,{icon:"block",style:{}}),s.ZP.createElement(i.Z,{icon:"image",style:{},title:__("Does not have an image","jetpack")})))),s.ZP.createElement("h3",{className:"jetpack-instant-search__search-result-title jetpack-instant-search__search-result-product-title"},s.ZP.createElement("a",{className:"jetpack-instant-search__search-result-title-link",href:`//${t["permalink.url.raw"]}`,onClick:this.props.onClick,dangerouslySetInnerHTML:{__html:c}})),s.ZP.createElement(l.Z,{price:t["wc.price"],salePrice:t["wc.sale_price"],formattedPrice:t["wc.formatted_price"],formattedRegularPrice:t["wc.formatted_regular_price"],formattedSalePrice:t["wc.formatted_sale_price"]}),!!t["meta._wc_average_rating.double"]&&s.ZP.createElement(o.Z,{count:t["meta._wc_review_count.long"],rating:t["meta._wc_average_rating.double"],permalink:`//${t["permalink.url.raw"]}`}),h&&s.ZP.createElement("div",{className:"jetpack-instant-search__search-result-product-match"},s.ZP.createElement("mark",null,s.ZP.createElement(i.Z,{icon:"search",style:{},title:!1}),s.ZP.createElement("span",null,"comment"in r?__("Matches comments","jetpack"):__("Matches content","jetpack",0)))))}}t.Z=c},6072:function(e,t,r){var s=r(9183),n=r.n(s),i=r(7538),a=r.n(i),o=r(5151),l=r(7165),c=r(8424),p=r(1828),u=r(6546),h=r(9532);class d extends o.wA{constructor(){super(...arguments),a()(this,"onClick",(()=>{this.props.railcar&&(0,u.Lo)({...this.getCommonTrainTracksProps(),action:"click"})}))}componentDidMount(){this.props.railcar&&(0,u.Sn)(this.getCommonTrainTracksProps())}componentDidUpdate(e){this.props.railcar!==e.railcar&&this.props.railcar&&(0,u.Sn)(this.getCommonTrainTracksProps())}getCommonTrainTracksProps(){return{fetch_algo:this.props.railcar.fetch_algo,fetch_position:this.props.railcar.fetch_position,fetch_query:this.props.railcar.fetch_query,railcar:this.props.railcar.railcar,rec_blog_id:this.props.railcar.rec_blog_id,rec_post_id:this.props.railcar.rec_post_id,session_id:this.props.railcar.session_id,ui_algo:"jetpack-instant-search-ui/v1",ui_position:this.props.index}}render(){if(this.props.resultFormat===h.LI)return o.ZP.createElement(p.Z,n()({onClick:this.onClick},this.props));if(this.props.resultFormat===h.Pz){const e=this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==h.Bk;return o.ZP.createElement(c.Z,n()({onClick:this.onClick},this.props,{isMultiSite:e}))}return o.ZP.createElement(l.Z,n()({onClick:this.onClick},this.props))}}t.Z=d},5031:function(e,t,r){var s=r(7538),n=r.n(s),i=r(5736),a=r(5151),o=r(1295),l=r(3660),c=r(9534),p=r(6536),u=r(6268),h=r(6072),d=r(6068),m=r(4592),g=r(2168),_=r(9532);const f=i.__,y=i._n,__=f,_n=y;class v extends a.wA{constructor(){super(...arguments),n()(this,"state",{shouldShowMobileSecondary:!1}),n()(this,"toggleMobileSecondary",(e=>{"click"!==e.type&&("keydown"!==e.type||"Enter"!==e.key&&" "!==e.key)||(" "===e.key&&e.preventDefault(),this.setState((e=>({shouldShowMobileSecondary:!e.shouldShowMobileSecondary}))))})),n()(this,"closeOverlay",(e=>{e.preventDefault(),this.props.closeOverlay()})),n()(this,"onKeyPressHandler",(e=>{"Enter"===e.key&&(e.preventDefault(),this.props.closeOverlay())}))}hasFilterOptions(){let e=[...this.props.widgets];return this.props.widgetOutsideOverlay?.filters?.length>0&&(e=[this.props.widgetOutsideOverlay,...e]),e.length>0}getSearchTitle(){const{total:e=0,corrected_query:t=!1}=this.props.response,r=""!==this.props.searchQuery,s=!1!==t,n=(new Intl.NumberFormat).format(e),a=this.props.staticFilters&&this.props.staticFilters.group_id&&this.props.staticFilters.group_id!==_.Bk;if(this.props.isLoading)return r?__("Searching…","jetpack",0):__("Loading popular results…","jetpack");if(0===e||this.props.hasError)return __("No results found","jetpack");if(r&&s)return(0,i.sprintf)(
+/* translators: %1$s: number of results. %2$s: the corrected search query. */
+_n('Found %1$s result for "%2$s"','Found %1$s results for "%2$s"',e,"jetpack"),n,t);if(a){const t=(0,g.bA)().filter((e=>"group_id"===e.filter_id)),r=1===t.length&&t[0].values?t[0].values.filter((e=>e.value!==_.Bk)):{},s=r[0]?.name?r[0].name:__("All P2","jetpack");return(0,i.sprintf)(
+/* translators: %1$s: number of results. - %2$s: site name. */
+_n("Found %1$s result in %2$s","Found %1$s results in %2$s",e,"jetpack"),n,s)}return r?(0,i.sprintf)(
+/* translators: %s: number of results. */
+_n("Found %s result","Found %s results",e,"jetpack"),n,this.props.searchQuery):__("Showing popular results","jetpack")}renderPrimarySection(){const{highlightColor:e,searchQuery:t}=this.props,{results:r=[],total:s=0,corrected_query:n=!1}=this.props.response,o=(0,m.B)(e),p=!1!==n,u=s>0;return a.ZP.createElement(a.HY,null,a.ZP.createElement("style",{dangerouslySetInnerHTML:{__html:`\n\t\t\t\t\t\t\t.jetpack-instant-search *::selection,\n\t\t\t\t\t\t\t.jetpack-instant-search .jetpack-instant-search__search-results .jetpack-instant-search__search-results-primary .jetpack-instant-search__search-result mark {\n\t\t\t\t\t\t\t\tcolor: ${o};\n\t\t\t\t\t\t\t\tbackground-color: ${e};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`}}),a.ZP.createElement("div",{className:"jetpack-instant-search__search-results-title"},this.getSearchTitle()),u&&p&&a.ZP.createElement("p",{className:"jetpack-instant-search__search-results-unused-query"},
+/* translators: %s: Search query. */
+(0,i.sprintf)(__('No results for "%s"',"jetpack"),t)),this.props.hasError&&a.ZP.createElement(l.Z,{type:"warning"},__("It looks like you're offline. Please reconnect for results.","jetpack")),u&&!this.props.hasError&&this.props.response._isOffline&&a.ZP.createElement(l.Z,{type:"warning"},__("It looks like you're offline. Please reconnect to load the latest results.","jetpack")),u&&!this.props.hasError&&a.ZP.createElement("ol",{className:`jetpack-instant-search__search-results-list is-format-${this.props.resultFormat}`},r.map(((e,t)=>a.ZP.createElement(h.Z,{index:t,staticFilters:this.props.staticFilters,isPhotonEnabled:this.props.isPhotonEnabled,locale:this.props.locale,railcar:this.props.isVisible?e.railcar:null,result:e,resultFormat:this.props.resultFormat,searchQuery:this.props.searchQuery})))),u&&this.props.hasNextPage&&a.ZP.createElement("div",{className:"jetpack-instant-search__search-results-pagination"},a.ZP.createElement(c.Z,{enableLoadOnScroll:this.props.enableLoadOnScroll,isLoading:this.props.isLoading,onLoadNextPage:this.props.onLoadNextPage})))}renderSecondarySection(){return a.ZP.createElement(d.Z,{filters:this.props.filters,staticFilters:this.props.staticFilters,isLoading:this.props.isLoading,locale:this.props.locale,postTypes:this.props.postTypes,response:this.props.response,showPoweredBy:this.props.showPoweredBy,widgets:this.props.widgets,widgetOutsideOverlay:this.props.widgetOutsideOverlay})}render(){return a.ZP.createElement("div",{"aria-hidden":!0===this.props.isLoading,"aria-live":"polite",className:"jetpack-instant-search__search-results"},a.ZP.createElement("div",{className:"jetpack-instant-search__search-results-controls"},a.ZP.createElement(u.Z,{className:"jetpack-instant-search__search-results-search-form",isVisible:this.props.isVisible,onChangeSearch:this.props.onChangeSearch,searchQuery:this.props.searchQuery}),a.ZP.createElement("button",{className:"jetpack-instant-search__overlay-close",onClick:this.closeOverlay,onKeyPress:this.onKeyPressHandler,tabIndex:"0","aria-label":__("Close search results","jetpack")},a.ZP.createElement(o.Z,{icon:"cross",size:"24","aria-hidden":"true",focusable:"false"}))),a.ZP.createElement(p.Z,{enableSort:this.props.enableSort,onChangeSort:this.props.onChangeSort,resultFormat:this.props.resultFormat,sort:this.props.sort},(this.hasFilterOptions()||this.props.hasNonSearchWidgets)&&a.ZP.createElement("div",{role:"button",onClick:this.toggleMobileSecondary,onKeyDown:this.toggleMobileSecondary,tabIndex:"0",className:"jetpack-instant-search__search-results-filter-button"},__("Filters","jetpack"),a.ZP.createElement(o.Z,{icon:"chevron-down",size:16,alt:__("Show search filters","jetpack"),"aria-hidden":"true"}),a.ZP.createElement("span",{className:"screen-reader-text assistive-text"},this.state.shouldShowMobileSecondary?__("Hide filters","jetpack"):__("Show filters","jetpack")))),a.ZP.createElement("div",{className:"jetpack-instant-search__search-results-content"},a.ZP.createElement("div",{className:"jetpack-instant-search__search-results-primary"},this.renderPrimarySection()),a.ZP.createElement("div",{className:["jetpack-instant-search__search-results-secondary",(this.state.shouldShowMobileSecondary?"jetpack-instant-search__search-results-secondary--show-as-modal":"")+" "].join(" ")},this.renderSecondarySection())))}}t.Z=v},649:function(e,t,r){r.d(t,{Z:function(){return l}});var s=r(7538),n=r.n(s),i=r(5151),a=r(5736),o=r(4877);const __=a.__;class l extends i.wA{constructor(){super(...arguments),n()(this,"handleKeyPress",(e=>{this.props.value!==e.currentTarget.value&&"Enter"===e.key&&(e.preventDefault(),this.props.onChange(e.currentTarget.dataset.value))})),n()(this,"handleClick",(e=>{this.props.value!==e.currentTarget.value&&(e.preventDefault(),this.props.onChange(e.currentTarget.dataset.value))})),n()(this,"handleSelectChange",(e=>{this.props.value!==e.currentTarget.value&&(e.preventDefault(),this.props.onChange(e.currentTarget.value))}))}render(){const e=(0,o.n)(this.props.resultFormat);return e.size>3?i.ZP.createElement("div",{className:"jetpack-instant-search__search-sort jetpack-instant-search__search-sort-with-select"},i.ZP.createElement("label",{htmlFor:"jetpack-instant-search__search-sort-select"},__("Sort:","jetpack")),i.ZP.createElement("select",{id:"jetpack-instant-search__search-sort-select",onBlur:this.handleSelectChange,onChange:this.handleSelectChange},[...e.entries()].map((e=>{let[t,r]=e;return i.ZP.createElement("option",{value:t,key:t,selected:this.props.value===t?"selected":""},r)})))):i.ZP.createElement("div",{className:"jetpack-instant-search__search-sort jetpack-instant-search__search-sort-with-links"},i.ZP.createElement("div",{className:"screen-reader-text"},__("Sort by: ","jetpack")),[...e.entries()].map((e=>{let[t,r]=e;return i.ZP.createElement("a",{className:"jetpack-instant-search__search-sort-option "+(this.props.value===t?"is-selected":""),"data-value":t,key:t,onClick:this.handleClick,onKeyPress:this.handleKeyPress,role:"button",tabIndex:0},r)})))}}},6068:function(e,t,r){var s=r(5151),n=r(2360),i=r(3595),a=r(1429);t.Z=e=>s.ZP.createElement("div",{className:"jetpack-instant-search__sidebar"},s.ZP.createElement(n.Z,{filters:e.filters,staticFilters:e.staticFilters,loading:e.isLoading,locale:e.locale,postTypes:e.postTypes,results:e.response,showClearFiltersButton:!0,widget:e.widgetOutsideOverlay}),s.ZP.createElement(i.Z,null),e.widgets.map((t=>(0,s.jz)(s.ZP.createElement("div",{id:`${t.widget_id}-portaled-wrapper`,className:"jetpack-instant-search__portaled-wrapper"},s.ZP.createElement(n.Z,{filters:e.filters,staticFilters:e.staticFilters,loading:e.isLoading,locale:e.locale,postTypes:e.postTypes,results:e.response,showClearFiltersButton:!1,showTitle:!1,widget:t})),document.getElementById(`${t.widget_id}-wrapper`)))),e.showPoweredBy&&s.ZP.createElement(a.Z,{locale:e.locale}))},3595:function(e,t,r){r.d(t,{Z:function(){return a}});var s=r(7538),n=r.n(s),i=r(5151);class a extends i.wA{constructor(){super(...arguments),n()(this,"container",(0,i.Vf)())}componentDidMount(){const e=document.getElementsByClassName("jetpack-instant-search__widget-area")[0];e&&(e.style.removeProperty("display"),this.container.current.appendChild(e))}shouldComponentUpdate(){return!1}render(){return i.ZP.createElement("div",{className:"jetpack-instant-search__widget-area-container",ref:this.container})}}},5242:function(e,t,r){function s(e,t,r){if(!e)return"";const s=decodeURIComponent(e);return(!t||"false"!==s)&&(!(!t||"true"!==s)||(r&&0*+s==0?+s:s))}function n(e,t,r){let n,i;const a={},o=e.split("&");for(t=void 0===t||t,r=void 0===r||r;n=o.shift();)n=n.split("="),i=n.shift(),void 0!==a[i]?a[i]=[].concat(a[i],s(n.shift(),t,r)):a[i]=s(n.shift(),t,r);return a}r.d(t,{J:function(){return n}})},162:function(e,t,r){r.r(t),r.d(t,{initialize:function(){return h}});r(1535);var s=r(5151),n=r(2695),i=r(2620),a=r(9661),o=r(8931),l=r(9532),c=r(230),p=r(7079),u=r(9499);function h(){window[l.W1]&&"siteId"in window[l.W1]&&(0,n.sY)(s.ZP.createElement(i.zt,{store:u.Z},s.ZP.createElement(a.Z,{aggregations:(0,c.a5)([...window[l.W1].widgets,...window[l.W1].widgetsOutsideOverlay]),enableAnalytics:!0,hasOverlayWidgets:!!window[l.W1].hasOverlayWidgets,initialHref:window.location.href,initialIsVisible:window[l.W1].showResults,isInCustomizer:(0,p.bS)(),overlayOptions:window[l.W1].overlayOptions,options:window[l.W1],shouldCreatePortal:!0,shouldIntegrateWithDom:!0,themeOptions:(0,o.C)(window[l.W1])})),document.body)}},230:function(e,t,r){r.d(t,{a5:function(){return d},Wb:function(){return m},yC:function(){return j}});var s=r(4090),n=r(8118),i=r(8027),a=r.n(i),o=r(8763),l=r(2168),c=r(9532);let p;const u=(0,o.Z)(30,5*c.AG),h=(0,o.Z)(30,30*c.AG);function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];const t={};return e.forEach((e=>{let{filters:r}=e;return r.forEach((e=>{t[e.filter_id]=g(e)}))})),t}function m(e){var t;return e=null!==(t=e)&&void 0!==t?t:{},Object.fromEntries(Object.entries(e).filter((e=>{let[,t]=e;return t?.buckets?.length>0})).map((e=>{let[t,r]=e;const s=r.buckets.map((e=>({...e,doc_count:0})));return[t,{...r,buckets:s}]})))}function g(e){switch(e.type){case"date_histogram":return{date_histogram:{field:"post_date_gmt"===e.field?"date_gmt":"date",interval:e.interval}};case"taxonomy":{let t=`taxonomy.${e.taxonomy}.slug_slash_name`;return"post_tag"===e.taxonomy?t="tag.slug_slash_name":"category"===e.taxonomy&&(t="category.slug_slash_name"),{terms:{field:t,size:e.count}}}case"post_type":return{terms:{field:e.type,size:e.count}}}}b();const _=/(\d{4})-(\d{2})-(\d{2})/;function f(e,t,r){let s,n;"year"===r&&([,s,,]=t.match(_)),"month"===r&&([,s,n]=t.match(_));let i="",a="";if(n){const e=+n+1,t=e<10?`0${e}`:`${e}`;i=`${s}-${n}-01`,a=e<=12?`${s}-${t}-01`:+s+1+"-01-01"}else s&&(i=`${s}-01-01`,a=+s+1+"-01-01");return{range:{[e]:{gte:i,lt:a}}}}const y=new Map([["post_types",e=>({term:{post_type:e}})],["category",e=>({term:{"category.slug":e}})],["post_tag",e=>({term:{"tag.slug":e}})],["month_post_date",e=>f("date",e,"month")],["month_post_date_gmt",e=>f("date_gmt",e,"month")],["month_post_modified",e=>f("date",e,"month")],["month_post_modified_gmt",e=>f("date_gmt",e,"month")],["year_post_date",e=>f("date",e,"year")],["year_post_date_gmt",e=>f("date_gmt",e,"year")],["year_post_modified",e=>f("date",e,"year")],["year_post_modified_gmt",e=>f("date_gmt",e,"year")]]);function v(e){const t={};return Object.keys(e).forEach((r=>{const s=e[r];"group_id"===r&&s!==c.Bk&&(t[r]=s)})),t}function E(e,t,r){const s={bool:{must:[]}};return(0,l.wP)().filter((t=>{return r=e[t],Array.isArray(r)&&r.length>0;var r})).forEach((t=>{e[t].forEach((e=>{y.has(t)?s.bool.must.push(y.get(t)(e)):s.bool.must.push({term:{[`taxonomy.${t}.slug`]:e}})}))})),t&&s.bool.must.push(t),r?.length>0&&s.bool.must.push({bool:{must_not:r.map((e=>y.get("post_types")(e)))}}),s}const k=new Map([["oldest","date_asc"],["newest","date_desc"],["relevance","score_default"]]);function P(e){return["price_asc","price_desc","rating_desc"].includes(e)?e:k.get(e,"score_default")}function Z(e){let{aggregations:t,excludedPostTypes:r,filter:i,staticFilters:a,pageHandle:o,query:l,resultFormat:p,sort:u,postsPerPage:h=10,adminQueryFilter:d,isInCustomizer:m=!1}=e;null===l&&(l="");let g=["date","permalink.url.raw","tag.name.default","category.name.default","post_type","has.image","shortcode_types","image.url.raw"];(p===c.LI||m)&&(g=g.concat(["meta._wc_average_rating.double","meta._wc_review_count.long","wc.formatted_price","wc.formatted_regular_price","wc.formatted_sale_price","wc.price","wc.sale_price"])),a&&a.group_id&&a.group_id!==c.Bk&&(g=g.concat(["author","blog_name","blog_icon_url"]));let _={aggregations:t,fields:g,highlight_fields:["title","content","comments"],filter:E(i,d,r),query:encodeURIComponent(l),sort:P(u),page_handle:o,size:h};return a&&Object.keys(a).length>0&&(_={..._,...v(a)}),(0,s.c)((0,n.x)(_))}function w(e){return function(t){const r=u.get(e)||h.get(e);if("AbortError"===t.name)return r?{_isCached:!0,_isError:!1,_isOffline:!1,...r}:null;if(r)return{_isCached:!0,_isError:!0,_isOffline:!1,...r};throw t}}function S(e,t){return function(r){const s={...r,requestId:t};return u.set(e,s),h.set(e,s),s}}function b(){p&&p.abort(),p=new AbortController}function j(e,t){const r=a()(Array.from(arguments));if(!navigator.onLine&&h.get(r))return Promise.resolve(h.get(r)).then((e=>({_isCached:!0,_isError:!1,_isOffline:!0,...e})));if(u.get(r))return Promise.resolve(u.get(r)).then((e=>({_isCached:!0,_isError:!1,_isOffline:!1,...e})));const s=Z(e),n=w(r),i=S(r,t),o=`/sites/${e.siteId}/search?${s}`,{apiNonce:l,apiRoot:d,homeUrl:m,isPrivateSite:g,isWpcom:_}=window[c.W1],f=`https://public-api.wordpress.com/rest/v1.3${o}`,y=`${m}/wp-json/wpcom-origin/v1.3${o}`,v=`${d}wpcom/v2/search?${s}`;let E=f;return g&&_?E=y:g&&(E=v),b(),fetch(E,{headers:g?{"X-WP-Nonce":l}:{},credentials:g?"include":"same-origin",signal:p.signal}).then((e=>200!==e.status?Promise.reject(`Unexpected response from API with status code ${e.status}.`):e)).then((e=>e.json())).then(i).catch(n)}},7135:function(e,t,r){function s(e,t){Array.isArray(e)||(e=[e]);return 0!==e.filter((e=>t.includes(e))).length}r.d(t,{Z:function(){return s}})},4592:function(e,t,r){function s(e){const t=function(e){let t;return"#"===e[0]&&(t=e.substring(1)),3===t.length&&(t=t.split("").map((e=>`${e}${e}`)).join("")),t}(e);return(299*parseInt(t.substr(0,2),16)+587*parseInt(t.substr(2,2),16)+114*parseInt(t.substr(4,2),16))/1e3>=128?"black":"white"}r.d(t,{B:function(){return s}})},8931:function(e,t,r){function s(e){return[...e.querySelectorAll('input[type="checkbox"]').values()].filter((e=>e.checked)).map((e=>e.name))}function n(e){const t={searchInputSelector:['input[name="s"]:not(.jetpack-instant-search__box-input)',"#searchform input.search-field:not(.jetpack-instant-search__box-input)",".search-form input.search-field:not(.jetpack-instant-search__box-input)",".searchform input.search-field:not(.jetpack-instant-search__box-input)"].join(", "),filterInputSelector:["a.jetpack-search-filter__link"],overlayTriggerSelector:[".jetpack-instant-search__open-overlay-button","header#site-header .search-toggle[data-toggle-target]"].join(",")};return e.theme_options?{...t,...e.theme_options}:t}r.d(t,{b:function(){return s},C:function(){return n}})},6597:function(e,t){const r=()=>{};t.Z=()=>r},2168:function(e,t,r){r.d(t,{wP:function(){return i},bA:function(){return a},i3:function(){return o},do:function(){return c},jZ:function(){return u},$s:function(){return h},jc:function(){return d}});var s=r(9532);const n=Object.freeze(["post_types","category","post_format","post_tag","month_post_date","month_post_date_gmt","month_post_modified","month_post_modified_gmt","year_post_date","year_post_date_gmt","year_post_modified","year_post_modified_gmt"]);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[s.W1]?.widgets,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:window[s.W1]?.widgetsOutsideOverlay;const r=new Set(n);return[...null!=e?e:[],...null!=t?t:[]].map((e=>e.filters)).filter((e=>Array.isArray(e))).reduce(((e,t)=>e.concat(t)),[]).filter((e=>"taxonomy"===e.type)).forEach((e=>r.add(e.taxonomy))),[...r]}function a(){return window[s.W1]?.staticFilters?window[s.W1].staticFilters:[]}function o(){const e=a(),t=new Set;return e.forEach((e=>t.add(e.filter_id))),[...t]}function l(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[s.W1]?.widgets;return null!==(e=t?.map(p).reduce(((e,t)=>e.concat(t)),[]))&&void 0!==e?e:[]}function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window[s.W1]?.widgets;const t=l(e);return i().filter((e=>!t.includes(e)))}function p(e){return e.filters.map(u).filter((e=>"string"==typeof e))}function u(e){return"date_histogram"===e.type?`${e.interval}_${e.field}`:"taxonomy"===e.type?`${e.taxonomy}`:"post_type"===e.type?"post_types":"group"===e.type?e.filter_id:null}function h(e){return e.includes("month")?{field:e.split("month_").pop(),type:"date_histogram",interval:"month"}:e.includes("year")?{field:e.split("year_").pop(),type:"date_histogram",interval:"year"}:"post_types"===e?{type:"post_type"}:"group"===e?{type:"group"}:{type:"taxonomy",taxonomy:e}}function d(e){return"date_histogram"===e.type?"date":"taxonomy"===e.type?"taxonomy":"post_type"===e.type?"postType":"group"===e.type?"group":void 0}},7802:function(e,t,r){r.d(t,{y:function(){return a}});var s=r(278),n=r(5151);function i(e){return e?e.split("?",1)[0]:""}function a(e,t,r){let a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];const[o,l]=(0,n.eJ)(null),c=i(e),p=["gif","jpg","jpeg","png","webp"],u=c?.substring(c.lastIndexOf(".")+1).toLowerCase(),h=p.includes(u);return(0,n.d4)((()=>{if(a&&h){const n=(0,s.Z)(c,{resize:`${t},${r}`});l(n||e)}else l(e)}),[e,t,r,a,c,h]),o}},6669:function(e,t,r){r.d(t,{pm:function(){return o},_L:function(){return l},ug:function(){return c},Q0:function(){return p}});var s=r(4090),n=r(9532),i=r(2168),a=r(5242);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.location.search;return(0,a.J)(e.substring(1),!1,!1)}function l(e){!function(e){if(history.pushState){const t=new window.URL(window.location.href);window[n.W1]&&"homeUrl"in window[n.W1]&&(t.href=window[n.W1].homeUrl),t.search=e,window.history.pushState(null,null,t.toString())}}((0,s.c)(e))}function c(){const e=o();return n.bk.includes(e.result_format)?e.result_format:null}function p(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(history.pushState&&history.replaceState){const n=new URL(e),a=o(n.search),l=[...(0,i.wP)(),...(0,i.i3)(),"s","sort"],c=Object.keys(a).some((e=>l.includes(e)));if(c&&l.forEach((e=>delete a[e])),n.search=(0,s.c)(a),r?window.history.replaceState(null,null,n.toString()):window.history.pushState(null,null,n.toString()),c)return void window.location.reload();t()}}},4877:function(e,t,r){r.d(t,{n:function(){return n}});var s=r(9532);function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return e!==s.LI?s.aP:new Map([...s.aP,...s.rs])}},6546:function(e,t,r){r.d(t,{IJ:function(){return i},tU:function(){return a},vy:function(){return o},AM:function(){return l},Sn:function(){return p},Lo:function(){return u},GE:function(){return h}});let s=!0;const n={};function i(){s=!1}function a(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(e||s)&&(window._tkq=window._tkq||[])}function o(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];(e||s)&&window._tkq.push(["clearIdentity"])}function l(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(t||s)&&(n.blog_id=e)}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];(r||s)&&window._tkq.push(["recordEvent",e,{...n,...t}])}function p(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c("jetpack_instant_search_traintracks_render",e,t)}function u(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c("jetpack_instant_search_traintracks_interact",e,t)}function h(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];c("jetpack_instant_search_static_filter_select",e,t)}},7283:function(e,t,r){function s(e){return{type:"MAKE_SEARCH_REQUEST",options:e}}function n(e){let{options:t,response:r}=e;return{type:"RECORD_SUCCESSFUL_SEARCH_REQUEST",options:t,response:r}}function i(e){return{type:"RECORD_FAILED_SEARCH_REQUEST",error:e}}function a(){let{isHistoryNavigation:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:"INITIALIZE_QUERY_VALUES",isHistoryNavigation:e}}function o(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return{type:"SET_SEARCH_QUERY",query:e,propagateToWindow:t}}function l(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return{type:"SET_SORT",sort:e,propagateToWindow:t}}function c(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:"SET_FILTER",name:e,value:t,propagateToWindow:r}}function p(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return{type:"SET_STATIC_FILTER",name:e,value:t,propagateToWindow:r}}function u(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return{type:"CLEAR_FILTERS",propagateToWindow:e}}function h(){return{type:"CLEAR_QUERY_VALUES"}}function d(){return{type:"DISABLE_QUERY_STRING_INTEGRATION"}}r.d(t,{x1:function(){return s},C0:function(){return n},Y6:function(){return i},Ln:function(){return a},ql:function(){return o},HD:function(){return l},Tv:function(){return c},O1:function(){return p},K5:function(){return u},Mz:function(){return h},OZ:function(){return d}})},6439:function(e,t,r){var s=r(5034),n=r.n(s),i=r(230),a=r(9532),o=r(2168),l=r(6669),c=r(7283);let p=0,u=!0;const h=n()(l._L,a.yb);t.Z={CLEAR_FILTERS:function(e){if(!1===e.propagateToWindow||!u)return;const t=(0,l.pm)();(0,o.wP)().forEach((e=>delete t[e])),(0,o.i3)().forEach((e=>delete t[e])),(0,l._L)(t)},DISABLE_QUERY_STRING_INTEGRATION:function(){u=!1},INITIALIZE_QUERY_VALUES:function(e,t){const r=(0,l.pm)();let s;"s"in r?t.dispatch((0,c.ql)(r.s,!1)):t.dispatch((0,c.ql)(null,!1)),a.kQ.includes(r.sort)?s=r.sort:"date"===r.orderby?s="string"==typeof r.order&&r.order.toUpperCase()===a.oy?"oldest":"newest":"relevance"===r.orderby&&(s="relevance"),"string"==typeof s&&t.dispatch((0,c.HD)(s,!1)),t.dispatch((0,c.K5)(!1)),(0,o.wP)().filter((e=>e in r)).forEach((e=>t.dispatch((0,c.Tv)(e,r[e],!1)))),(0,o.i3)().filter((e=>e in r)).forEach((e=>t.dispatch((0,c.O1)(e,r[e],!1))))},MAKE_SEARCH_REQUEST:function(e,t){p++,(0,i.yC)(e.options,p).then((r=>{null!==r&&t.dispatch((0,c.C0)({options:e.options,response:r}))})).catch((e=>{console.error("Jetpack Search encountered an error:",e),t.dispatch((0,c.Y6)(e))}))},SET_FILTER:function(e){if(!1===e.propagateToWindow||!u)return;if(!(0,o.wP)().includes(e.name))return;const t=(0,l.pm)();t[e.name]=e.value,(0,l._L)(t)},SET_STATIC_FILTER:function(e){if(!1===e.propagateToWindow)return;if(!(0,o.i3)().includes(e.name))return;const t=(0,l.pm)();t[e.name]=e.value,(0,l._L)(t)},SET_SEARCH_QUERY:function(e){if(!1===e.propagateToWindow||!u)return;const t=(0,l.pm)();null!==e.query?t.s=e.query:delete t.s,h(t)},SET_SORT:function(e){if(!1===e.propagateToWindow||!u)return;if(!a.kQ.includes(e.sort))return;const t=(0,l.pm)();t.sort=e.sort,delete t.order,delete t.orderby,(0,l._L)(t)}}},9499:function(e,t,r){var s=r(4978),n=r(2601),i=r.n(n),a=r(6439),o=r(6680);const l=[i()(a.Z)],c=(0,s.MT)(o.ZP,{},(0,s.md)(...l));t.Z=c},8720:function(e,t,r){r.d(t,{xT:function(){return i},hg:function(){return a},p:function(){return o}});var s=r(230);let n={};function i(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"MAKE_SEARCH_REQUEST":case"RECORD_SUCCESSFUL_SEARCH_REQUEST":return!1;case"RECORD_FAILED_SEARCH_REQUEST":return!0}return e}function a(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"MAKE_SEARCH_REQUEST":return!0;case"RECORD_SUCCESSFUL_SEARCH_REQUEST":case"RECORD_FAILED_SEARCH_REQUEST":return!1}return e}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if("RECORD_SUCCESSFUL_SEARCH_REQUEST"===t.type){if("requestId"in e&&"requestId"in t.response&&e.requestId>t.response.requestId)return e;const r={...t.response};return t.options.pageHandle&&(r.aggregations={..."aggregations"in e&&!Array.isArray(e)?e.aggregations:{},...Array.isArray(r.aggregations)?{}:r.aggregations},r.results=[..."results"in e?e.results:[],...r.results],n={}),Array.isArray(r.results)&&r.results.length>r.total&&(r.total=r.results.length),t.options.pageHandle||(r.results?.length>0?n=(0,s.Wb)(r.aggregations):r.aggregations=n),r}return e}},6801:function(e,t,r){function s(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"INITIALIZE_QUERY_VALUES":return t.isHistoryNavigation;case"SET_SEARCH_QUERY":case"SET_SORT":case"CLEAR_FILTERS":case"SET_FILTER":return!t.propagateToWindow&&e}return e}r.d(t,{w:function(){return s}})},6680:function(e,t,r){var s=r(4978),n=r(8720),i=r(5283),a=r(9310),o=r(6801);t.ZP=(0,s.UY)({filters:i.u8,staticFilters:i.OY,hasError:n.xT,isLoading:n.hg,isHistoryNavigation:o.w,response:n.p,searchQuery:i.w4,serverOptions:a.M,sort:i.DY})},5283:function(e,t,r){r.d(t,{w4:function(){return i},DY:function(){return a},u8:function(){return o},OY:function(){return l}});var s=r(9532),n=r(2168);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SEARCH_QUERY":return t.query;case"CLEAR_QUERY_VALUES":return null}return e}function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SORT":return s.kQ.includes(t.sort)?t.sort:e;case"CLEAR_QUERY_VALUES":return null}return e}function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_FILTERS":case"CLEAR_QUERY_VALUES":return{};case"SET_FILTER":if(!(0,n.wP)().includes(t.name)||!Array.isArray(t.value)&&"string"!=typeof t.value)return e;if(0===t.value.length){const r={...e};return delete r[t.name],r}return{...e,[t.name]:"string"==typeof t.value?[t.value]:t.value}}return e}function l(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_QUERY_VALUES":return{};case"SET_STATIC_FILTER":return(0,n.i3)().includes(t.name)?{...e,[t.name]:t.value}:e}return e}},9310:function(e,t,r){r.d(t,{M:function(){return n}});var s=r(9532);function n(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window[s.W1])&&void 0!==e?e:{};return t}},341:function(e,t,r){r.d(t,{ck:function(){return i},xT:function(){return a},Qy:function(){return o},hg:function(){return l},uP:function(){return c},r$:function(){return p},Zj:function(){return u},Bk:function(){return h},en:function(){return d},ZN:function(){return m},wI:function(){return g}});var s=r(9532),n=r(2168);function i(e){return e.response}function a(e){return e.hasError}function o(e){return!a(e)&&i(e)?.page_handle}function l(e){return e.isLoading}function c(e){return e.searchQuery}function p(e,t){return"string"!=typeof t&&(t=s.PP),"string"==typeof e.sort?e.sort:t}function u(e){return e.filters}function h(e){return e.staticFilters}function d(e){return null!==c(e)||function(e){return Object.keys(e.filters).length>0}(e)||function(e){return Object.keys(e.staticFilters).length>0}(e)||null!==e.sort}function m(e){if(!e.serverOptions.widgets||!e.filters)return{};const t=(0,n.do)(e.serverOptions.widgets);return{filters:Object.keys(e.filters).filter((e=>t.includes(e))).map(n.$s)}}function g(e){return e.isHistoryNavigation}}}]); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.rtl.css b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.rtl.css
new file mode 100644
index 00000000..2a51cf23
--- /dev/null
+++ b/plugins/jetpack/_inc/build/instant-search/jp-search.chunk-main-payload.rtl.css
@@ -0,0 +1 @@
+.jetpack-instant-search__overlay{background:rgba(29,35,39,.7);bottom:0;box-sizing:border-box;color:#00101c;font-size:16px;left:0;opacity:1;overflow-x:hidden;overflow-y:auto;position:fixed;right:0;top:0;transition:opacity .1s ease-in;z-index:9999999999999}body.jps-theme-argent .jetpack-instant-search__overlay *{font-family:Helvetica,sans-serif}@media(max-width:767.98px){.jetpack-instant-search__overlay{padding:3em 1em}}@media(max-width:575.98px){.jetpack-instant-search__overlay{padding:0}}@media(min-width:768px){.jetpack-instant-search__overlay{padding:3em}}.jetpack-instant-search__overlay.is-hidden{background:transparent;opacity:0;visibility:hidden}.jetpack-instant-search__overlay *,.jetpack-instant-search__overlay :after,.jetpack-instant-search__overlay :before{box-sizing:inherit}@media print{.jetpack-instant-search__overlay.is-hidden{display:none}}.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)}.jetpack-instant-search__notice{font-size:14px;margin:1em 0;padding:.75em}.jetpack-instant-search__notice.jetpack-instant-search__notice--warning{background-color:#f5e6b3;color:#4f3500}.jetpack-instant-search__notice .gridicon{margin-left:.5em;margin-top:-5px;vertical-align:middle}.jetpack-instant-search__scroll-button{border:0;box-shadow:none;font-size:13px;outline:0}.jetpack-instant-search__search-sort{align-items:center;display:flex}.jetpack-instant-search__search-sort>label[for=jetpack-instant-search__search-sort-select]{flex-shrink:0;font-size:1em;font-weight:700;margin:0 0 0 .25em}.jetpack-instant-search__search-sort-with-links{font-size:13px}@media(max-width:575.98px){.jetpack-instant-search__search-sort-with-select{margin-left:1em;width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-sort-with-select{margin-left:0}}@media(min-width:992px){.jetpack-instant-search__search-sort-with-select{margin-top:-4px}}#jetpack-instant-search__search-sort-select{-webkit-appearance:auto;appearance:auto;background:#fff;border:1px solid #e6f1f5;border-radius:5px;color:#00101c;font-size:1em;height:inherit;padding:.25em}@media(max-width:575.98px){#jetpack-instant-search__search-sort-select{padding:.5em;width:100%}}.jetpack-instant-search__search-sort-option{color:#646970;cursor:pointer;padding:0 2px;text-decoration:none}.jetpack-instant-search__search-sort-option:after{color:#646970;content:"·";font-weight:400;padding-right:5px}.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:focus,.jetpack-instant-search__search-sort .jetpack-instant-search__search-sort-option:hover{text-decoration:none}.jetpack-instant-search__search-sort-option:last-child:after{content:""}.jetpack-instant-search__search-sort-option.is-selected{color:#044b7a;font-weight:600;text-decoration:none}.jetpack-instant-search__search-form-controls{align-items:center;display:flex;line-height:1.3;margin-left:56px;margin-right:56px;margin-top:16px;z-index:1}@media(max-width:991.98px){.jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{flex-direction:row-reverse;justify-content:space-between;left:0;margin-left:40px;margin-right:40px;position:relative;right:0}}@media(max-width:767.98px){.jetpack-instant-search__search-form-controls{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-form-controls{left:320px;position:absolute}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-form-controls{left:320px;position:absolute}}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-form-controls{left:0}.jetpack-instant-search__box{border-bottom:1px solid #e6f1f5;border-left:1px solid #e6f1f5}.jetpack-instant-search__box-label{align-items:center;display:flex;flex:0 0 100%;margin:0}input.jetpack-instant-search__box-input.search-field{-webkit-appearance:none;appearance:none;background:#fff;border:0;box-shadow:none;color:#3c434a;font-size:18px;height:60px;line-height:1;margin:0;max-width:none;padding:0 14px;text-indent:32px;vertical-align:middle}input.jetpack-instant-search__box-input.search-field:focus,input.jetpack-instant-search__box-input.search-field:hover{background:#fff;color:#00101c}input.jetpack-instant-search__box-input.search-field.search-field{letter-spacing:-.02em;padding-right:0;text-indent:0}.jetpack-instant-search__box-gridicon{align-items:center;display:flex;flex-shrink:0;height:60px;justify-content:center;position:relative;right:0;top:0;width:60px;z-index:1}.jetpack-instant-search__box-gridicon svg{fill:#646970}.jetpack-instant-search__box input[type=button]{word-wrap:normal;border:none;color:#646970;cursor:pointer;font-size:1em;font-weight:400;height:60px;line-height:1;margin:0 0 0 .25em;padding:0;text-decoration:none;text-shadow:none;text-transform:none;transition:all .1s linear;width:60px}.jetpack-instant-search__box input[type=button],.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}.jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__box input[type=button]:hover{color:#3c434a}.jetpack-instant-search__box input[type=button]:focus{outline:1px dotted}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input{border:none;box-shadow:none;height:52px;outline-style:none;transition:color .15s ease-in-out,border-color .25s ease-in-out;width:100%}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:focus,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input:hover{border:none;box-shadow:none;outline-style:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-button,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-results-decoration{appearance:none;-webkit-appearance:none;display:initial}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-webkit-search-cancel-button{display:none}.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-clear,.jetpack-instant-search__box input[type=search].jetpack-instant-search__box-input::-ms-reveal{display:none}.jetpack-instant-search__path-breadcrumb{font-size:.9em;margin:0;max-width:calc(100vw - 2em);overflow-x:hidden;text-overflow:ellipsis}.jetpack-instant-search__path-breadcrumb-link{max-width:100%;overflow:hidden;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.jetpack-instant-search__path-breadcrumb-link:focus,.jetpack-instant-search__path-breadcrumb-link:hover{text-decoration:underline}.jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__path-breadcrumb-link{color:#3c434a}.jetpack-instant-search__search-result-comments{border-right:2px solid #f0f0f1;font-size:.9em;margin-right:8px;margin-top:16px;padding-right:16px;word-break:break-word}.jetpack-instant-search__search-result-comments .gridicon{margin-left:8px;vertical-align:middle}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title{margin-bottom:.4em}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-minimal-title .gridicon{margin-left:8px}.jetpack-instant-search__search-result-minimal-cats-and-tags{display:flex;flex-flow:row wrap;font-size:.9375em}.jetpack-instant-search__search-result-minimal-cats,.jetpack-instant-search__search-result-minimal-tags{display:flex;flex-flow:row wrap;list-style-type:none;margin:0;padding:0}.jetpack-instant-search__search-result-minimal-cat,.jetpack-instant-search__search-result-minimal-tag{margin:0 0 0 .75em}.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag .gridicon{margin-left:.25em}.jetpack-instant-search__search-result-minimal-cat-text,.jetpack-instant-search__search-result-minimal-cat .gridicon,.jetpack-instant-search__search-result-minimal-tag-text,.jetpack-instant-search__search-result-minimal-tag .gridicon{vertical-align:middle}.jetpack-instant-search__search-result-minimal-content{word-break:break-word}.jetpack-instant-search__search-result-expanded{display:flex;flex-flow:column}.jetpack-instant-search__search-result-expanded:last-child{margin-left:0}.jetpack-instant-search__search-result-expanded .jetpack-instant-search__search-result-expanded__title{width:100%}.jetpack-instant-search__search-result-expanded__path{color:#646970;font-size:.9375em;margin:0 0 .4em}.jetpack-instant-search__search-result-expanded__copy-container{max-width:100%}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__copy-container{width:calc(100% - 128px - 1em)}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__copy-container{width:auto}.jetpack-instant-search__search-result-expanded__content{color:#00101c;font-size:.9375em}.jetpack-instant-search__search-result-expanded__image-link{margin-right:1em}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-link{margin:0 auto .5em;order:-1}}.jetpack-instant-search__search-result-expanded__image-container{width:128px}@media(max-width:575.98px){.jetpack-instant-search__search-result-expanded__image-container{width:256px}}.jetpack-instant-search__search-result-expanded--no-image .jetpack-instant-search__search-result-expanded__image-container{display:none}.jetpack-instant-search__search-result-expanded__image-container{position:relative}.jetpack-instant-search__search-result-expanded__image-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-expanded__image{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-expanded__content-container{display:flex;flex-flow:column}@media(min-width:576px){.jetpack-instant-search__search-result-expanded__content-container{flex-flow:row nowrap}}.jetpack-instant-search__search-result-expanded__footer{display:flex;list-style-type:none;margin-right:0;margin-top:10px;padding-right:0}.jetpack-instant-search__search-result-expanded__footer li{margin-left:10px}.jetpack-instant-search__search-result-expanded__footer-blog-image{border-radius:2px;margin-left:3px;vertical-align:middle}.jetpack-instant-search__search-result-expanded__footer-blog{font-size:13px;font-style:normal;font-weight:600;line-height:180%}.jetpack-instant-search__search-result-expanded__footer-author:after,.jetpack-instant-search__search-result-expanded__footer-blog:after{color:#636363;content:"·";margin-right:10px}.jetpack-instant-search__search-result-expanded__footer-author,.jetpack-instant-search__search-result-expanded__footer-date{color:#636363;font-size:13px;font-style:normal;font-weight:400}.jetpack-instant-search__product-rating-stars .gridicon{fill:#f0c930;vertical-align:middle}.jetpack-instant-search a.jetpack-instant-search__product-rating-count{color:#646970;font-size:.9em;text-decoration:underline;vertical-align:text-top}.jetpack-instant-search__product-price-regular{color:#646970;padding-left:.25em}.jetpack-instant-search__search-results-list.is-format-product{display:flex;flex-wrap:wrap;margin-left:40px;padding:0 0 3em}@media(max-width:991.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-left:24px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list.is-format-product{margin-left:4px}}.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{display:flex;flex-direction:column;margin:0 0 16px 16px;position:relative;width:calc(50% - 16px)}@media(min-width:576px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:768px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:992px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(33.33333% - 16px)}}@media(min-width:1200px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(25% - 16px)}}@media(min-width:1400px){.jetpack-instant-search__search-result.jetpack-instant-search__search-result-product{width:calc(20% - 16px)}}.jetpack-instant-search__search-result>.jetpack-instant-search__search-result-product-img-link{display:block}.jetpack-instant-search__search-result-product-img-container{border-radius:5px;color:transparent;position:relative}.jetpack-instant-search__search-result-product-img-container.jetpack-instant-search__search-result-product-img-container--placeholder{background:#c3c4c7}.jetpack-instant-search__search-result-product-img-container .gridicon{fill:#fff}.jetpack-instant-search__search-result-product-img-container:before{content:"";display:block;padding-top:100%;width:100%}.jetpack-instant-search__search-result-product-img{border-radius:5px;bottom:0;height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;right:0;top:0;width:100%}.jetpack-instant-search__search-result-product-img>.gridicon{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.jetpack-instant-search__search-result-product-img>.gridicons-image{height:25%;width:25%}.jetpack-instant-search__search-result-product-img>.gridicons-block{height:50%;width:50%}.jetpack-instant-search__search-result-title.jetpack-instant-search__search-result-product-title{font-size:1.25em;margin:.25em 0 0}.jetpack-instant-search__search-result-product-match{font-size:.9em;margin-top:.25em}.jetpack-instant-search__search-result-product-match mark{align-items:center;display:flex;font-weight:400}.jetpack-instant-search__search-result-product-match .gridicon{height:1em;margin-left:.25em;width:1em}.jetpack-instant-search__search-result{margin:0 0 2em}.jetpack-instant-search__search-result-title{font-size:1.6em;font-weight:400;line-height:1.35;margin:0;overflow-wrap:break-word}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link{text-decoration:none}.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:focus,.jetpack-instant-search__search-result-title .jetpack-instant-search__search-result-title-link:hover{text-decoration:underline}.jetpack-instant-search__search-filters{position:relative}.jetpack-instant-search__search-filters>div{margin-top:1em}.jetpack-instant-search__search-filters-title{color:#00101c;display:block;font-weight:700;line-height:1.3}.jetpack-instant-search__clear-filters-link{left:0;line-height:1.3;margin:0;position:absolute;top:0}.jetpack-instant-search__search-filter-sub-heading{color:#646970;font-size:inherit;margin:0;padding:0}.jetpack-instant-search__search-filter-list{text-align:right}.jetpack-instant-search__search-filter-list>div{align-items:baseline;display:flex;margin-top:8px}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input{-webkit-appearance:checkbox;appearance:checkbox;background:none;border:none;cursor:pointer;height:auto;margin:0;top:1px;width:auto}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-input:before,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:after,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-input:before{display:none!important}.jetpack-instant-search__search-filter-list .jetpack-instant-search__search-filter-list-label,.jetpack-instant-search__search-filter-list .widget_search .jetpack-instant-search__search-filter-list-label{color:inherit;cursor:pointer;display:inline-block;font-weight:400;margin:0 8px 0 0;padding:0;width:auto}.jetpack-instant-search__search-static-filter-list{font-size:.875rem;line-height:1.8}.jetpack-instant-search__widget-area-container{margin-bottom:2em}.jetpack-instant-search__jetpack-colophon{margin-bottom:2em;margin-top:2em;text-align:center}.jetpack-instant-search__jetpack-colophon-link{align-items:center;color:inherit;display:flex;text-decoration:none}.jetpack-instant-search__jetpack-colophon-logo{display:inline;height:16px;width:16px}.jetpack-instant-search__jetpack-colophon-text{color:#3c434a;font-size:.7em;font-weight:400;padding-right:6px}.jetpack-instant-search__sidebar{padding-top:14px}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget{background:none;border:none;margin:0;padding:0}.jetpack-instant-search__sidebar .jetpack-instant-search__widget-area>.widget a{font-weight:400}.jetpack-instant-search__sidebar h2.widgettitle{border:none;font-size:1.3em;margin:1em 0 .5em}.jetpack-instant-search__sidebar h2.widgettitle:after,.jetpack-instant-search__sidebar h2.widgettitle:before{display:none!important}.jetpack-instant-search__search-results{background:#fff;border-radius:3px;margin:0 auto;max-width:1080px;min-height:100%;position:relative;z-index:10}@media(max-width:575.98px){.jetpack-instant-search__search-results{border-radius:0}}@media(min-width:992px){.jetpack-instant-search__search-results{max-width:95%}}.jetpack-instant-search__search-results mark{background:#ffc;color:#00101c}.jetpack-instant-search__search-results-controls{display:flex}.jetpack-instant-search__search-results-content{display:flex;position:relative}.jetpack-instant-search__search-results-filter-button{align-items:center;border:0;color:#646970;cursor:pointer;display:flex;flex-shrink:0;font-size:12px;margin:0;padding:8px;text-decoration:none;transition:background-color .25s ease-in-out}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-filter-button{visibility:hidden}@media(min-width:576px){.jetpack-instant-search__search-results-filter-button{font-size:13px;padding:10px 14px}}@media(min-width:992px){.jetpack-instant-search__search-results-filter-button{display:none}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:flex}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-filter-button{display:none}}.jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__search-results-filter-button:hover{color:#00101c}.jetpack-instant-search__search-results-filter-button .gridicon{margin-right:4px}.jetpack-instant-search__search-results-primary{margin:0;max-width:calc(100% - 320px);width:100%}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-primary{max-width:100%}@media(max-width:991.98px){.jetpack-instant-search__search-results-primary{max-width:100%}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-primary{max-width:100%}}.jetpack-instant-search__search-results-secondary{background:none;border-radius:0;border-right:1px solid #e6f1f5;bottom:0;box-shadow:none;color:#00101c;display:block;flex:none;padding:0 32px;position:static;width:320px}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary{display:none}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary{display:none}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:991.98px)and (max-width:575.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:991.98px){.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:6px;box-shadow:0 2px 3px rgba(0,0,0,.1);display:block;left:1em;max-height:70vh;min-width:360px;overflow-y:scroll;padding:16px 24px;position:absolute;right:1em;top:0;width:auto;z-index:10}}@media(max-width:1199.98px)and (max-width:575.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{max-height:80vh}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon{margin-bottom:1em}.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal .jetpack-instant-search__jetpack-colophon-text{font-size:.8em}.jetpack-instant-search__overlay--no-sidebar .jp-search-configure-app-wrapper .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{display:none}}.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{color:#00101c;font-size:1em;font-weight:700;line-height:1.3;margin:1em 56px 1.5em;padding:0;word-break:break-word}@media(max-width:991.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title,.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-unused-query{margin-bottom:1em;margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-title,.jetpack-instant-search__search-results-unused-query{margin-left:20px;margin-right:20px}}@media(min-width:992px){.jetpack-instant-search__search-results-title{padding-left:210px}}@media(min-width:1200px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-title{padding-left:210px}}.jetpack-instant-search__search-results-list{color:#00101c;list-style:none;margin-left:56px;margin-right:56px;padding:0}@media(max-width:991.98px){.jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:1199.98px){.jp-search-configure-app-wrapper .jetpack-instant-search__search-results-list{margin-left:40px;margin-right:40px}}@media(max-width:767.98px){.jetpack-instant-search__search-results-list{margin-left:20px;margin-right:20px}}.jetpack-instant-search__search-results-list li:before{content:"​";height:1px;position:absolute;width:1px}.jetpack-instant-search__search-results-search-form{font-size:.8em;margin:0;top:0;width:100%}button.jetpack-instant-search__overlay-close{align-items:center;-webkit-appearance:none;appearance:none;background:none;background-color:transparent!important;border:none;border-bottom:1px solid #e6f1f5;box-shadow:none;cursor:pointer;display:flex;height:61px;justify-content:center;line-height:1;margin:0;outline:none;padding:0;text-decoration:none;text-shadow:none;text-transform:none;width:60px}button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{-webkit-appearance:none;appearance:none;background:none;box-shadow:none;outline:none}button.jetpack-instant-search__overlay-close:focus{outline:1px dotted}button.jetpack-instant-search__overlay-close svg.gridicon{fill:#646970}button.jetpack-instant-search__overlay-close:active,button.jetpack-instant-search__overlay-close:focus,button.jetpack-instant-search__overlay-close:hover{background-color:transparent!important;border-color:#e6f1f5}button.jetpack-instant-search__overlay-close:active svg.gridicon,button.jetpack-instant-search__overlay-close:focus svg.gridicon,button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#3c434a}.jetpack-instant-search__search-results-pagination{display:block;flex:none;margin:50px}.jetpack-instant-search .widget.widget_archive ul li a,.jetpack-instant-search .widget a,.jetpack-instant-search a{border:none;color:#001621;text-decoration:none}.jetpack-instant-search .widget.widget_archive ul li a:focus,.jetpack-instant-search .widget.widget_archive ul li a:hover,.jetpack-instant-search .widget a:focus,.jetpack-instant-search .widget a:hover,.jetpack-instant-search a:focus,.jetpack-instant-search a:hover{color:#044b7a;text-decoration:underline}.jetpack-search-filters-widget__filter-list{list-style-type:none}body.enable-search-modal .cover-modal.show-modal.search-modal.active{display:none}.screen-reader-text{clip:rect(1px,1px,1px,1px);word-wrap:normal!important;border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark{background:rgba(29,35,39,.7);color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a{color:#f6f7f7}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget.widget_archive ul li a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .widget a:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark a:hover{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filters-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__content,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-list,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-title,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-unused-query{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__jetpack-colophon-text,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__path-breadcrumb-link{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-filter-sub-heading,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-expanded__path{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box-gridicon svg,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close svg.gridicon{fill:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close{border-color:#3c434a}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:focus svg.gridicon,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark button.jetpack-instant-search__overlay-close:hover svg.gridicon{fill:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__box input[type=button]:hover{color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field{background:#000;color:#a7aaad}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark input.jetpack-instant-search__box-input.search-field:hover{background:#000;color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results{background:#000}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results mark{color:#e6f1f5}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:focus,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-filter-button:hover,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{color:#e6f1f5}@media(min-width:992px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary{border-color:#3c434a}}@media(max-width:991.98px){.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-results-secondary.jetpack-instant-search__search-results-secondary--show-as-modal{background:#000;border-color:#3c434a;box-shadow:0 2px 3px #3c434a}}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option,.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option:after{color:#8c8f94}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-sort-option.is-selected{color:#0675c4}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark .jetpack-instant-search__search-result-product-img--placeholder{color:#2c3338}.jetpack-instant-search__overlay.jetpack-instant-search__overlay--dark #jetpack-instant-search__search-sort-select{background:#000;border-color:#3c434a;color:#e6f1f5} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-admin.min.asset.php b/plugins/jetpack/_inc/build/jetpack-admin.min.asset.php
new file mode 100644
index 00000000..bd54d554
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'f142ae64663af48ce61ac94b02f30548'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-admin.min.js b/plugins/jetpack/_inc/build/jetpack-admin.min.js
index aefded30..63e68878 100644
--- a/plugins/jetpack/_inc/build/jetpack-admin.min.js
+++ b/plugins/jetpack/_inc/build/jetpack-admin.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e){e(document).ready(function(){var a,o,t;e(".filter-search").on("click",function(){e(this).toggleClass("active"),e(".manage-right").toggleClass("show"),e(".shade").toggle()}),e(".checkall").on("click",function(){e(".table-bordered").find(":checkbox").prop("checked",this.checked)}),e(".shade, .modal .close").on("click",function(a){e(".shade, .modal").hide(),e(".manage-right").removeClass("show"),a.preventDefault()}),a=e(".frame.top"),o=e(".frame.bottom"),(t=e("body")).scroll(function(){33>a.offset().top&&(a.addClass("fixed"),t.addClass("jp-frame-top-fixed")),120<=o.offset().top&&(a.removeClass("fixed"),t.removeClass("jp-frame-top-fixed"))}),e("table.jetpack-modules",o).addClass("with-transparency"),e(".manage-left",o).css("width",""),e(".manage-right",o).show()})}(jQuery); \ No newline at end of file
+!function(){var e;(e=jQuery)(document).ready((function(){var a,o,t;e(".filter-search").on("click",(function(){e(this).toggleClass("active"),e(".manage-right").toggleClass("show"),e(".shade").toggle()})),e(".checkall").on("click",(function(){e(".table-bordered").find(":checkbox").prop("checked",this.checked)})),e(".shade, .modal .close").on("click",(function(a){e(".shade, .modal").hide(),e(".manage-right").removeClass("show"),a.preventDefault()})),a=e(".frame.top"),o=e(".frame.bottom"),(t=e("body")).scroll((function(){33>a.offset().top&&(a.addClass("fixed"),t.addClass("jp-frame-top-fixed")),120<=o.offset().top&&(a.removeClass("fixed"),t.removeClass("jp-frame-top-fixed"))})),e("table.jetpack-modules",o).addClass("with-transparency"),e(".manage-left",o).css("width",""),e(".manage-right",o).show()}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-connection-banner.min.asset.php b/plugins/jetpack/_inc/build/jetpack-connection-banner.min.asset.php
new file mode 100644
index 00000000..073968e5
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-connection-banner.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '30be5946920040752152a8b9297bf113'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-connection-banner.min.js b/plugins/jetpack/_inc/build/jetpack-connection-banner.min.js
index cf8a2320..a9f8a53b 100644
--- a/plugins/jetpack/_inc/build/jetpack-connection-banner.min.js
+++ b/plugins/jetpack/_inc/build/jetpack-connection-banner.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jQuery, jp_banner */
-!function(e){var n=e(".jp-wpcom-connect__vertical-nav-container"),c=e(".jp-wpcom-connect__content-container"),i=e(".jp-banner__button-container .next-feature"),t=e(".jp-connect-full__container"),o=e(".jp-connect-full__dismiss, .jp-connect-full__dismiss-paragraph"),s=e("#welcome-panel"),a=e("#message"),l=e(".connection-banner-dismiss");function r(e){n.find(".vertical-menu__feature-item-is-selected").removeClass("vertical-menu__feature-item-is-selected"),c.find(".jp__slide-is-active").removeClass("jp__slide-is-active"),n.children().eq(e).addClass("vertical-menu__feature-item-is-selected"),c.children().eq(e).addClass("jp__slide-is-active")}e(window).on("load",function(){s.insertBefore(a)}),l.on("click",function(){e(a).hide();var n={action:"jetpack_connection_banner",nonce:jp_banner.connectionBannerNonce,dismissBanner:!0};e.post(jp_banner.ajax_url,n,function(n){!0!==n.success&&e(a).show()})}),n.on("click",".vertical-menu__feature-item:not( .vertical-menu__feature-item-is-selected )",function(){r(e(this).index())}),i.on("click",function(n){n.preventDefault(),r(e(this).closest(".jp-wpcom-connect__slide").index()+1)}),o.on("click",function(){e(t).hide()}),e(document).keyup(function(n){27===n.keyCode&&e(o).click()})}(jQuery); \ No newline at end of file
+!function(e){var n=e(".jp-wpcom-connect__vertical-nav-container"),c=e(".jp-wpcom-connect__content-container"),i=e(".jp-banner__button-container .next-feature"),t=e(".jp-connect-full__container"),o=e(".jp-connect-full__dismiss, .jp-connect-full__dismiss-paragraph"),s=e("#welcome-panel"),a=e("#message"),l=e(".connection-banner-dismiss");function r(e){n.find(".vertical-menu__feature-item-is-selected").removeClass("vertical-menu__feature-item-is-selected"),c.find(".jp__slide-is-active").removeClass("jp__slide-is-active"),n.children().eq(e).addClass("vertical-menu__feature-item-is-selected"),c.children().eq(e).addClass("jp__slide-is-active")}e(window).on("load",(function(){s.insertBefore(a)})),l.on("click",(function(){e(a).hide();var n={action:"jetpack_connection_banner",nonce:jp_banner.connectionBannerNonce,dismissBanner:!0};e.post(jp_banner.ajax_url,n,(function(n){!0!==n.success&&e(a).show()}))})),n.on("click",".vertical-menu__feature-item:not( .vertical-menu__feature-item-is-selected )",(function(){r(e(this).index())})),i.on("click",(function(n){n.preventDefault(),r(e(this).closest(".jp-wpcom-connect__slide").index()+1)})),o.on("click",(function(){e(t).hide()})),e(document).keyup((function(n){27===n.keyCode&&e(o).click()}))}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.asset.php b/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.asset.php
new file mode 100644
index 00000000..7aa0fb37
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '72a2e27efb715acc0a6d0f09cada4cca'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.js b/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.js
new file mode 100644
index 00000000..e77c0c63
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-deactivate-dialog.min.js
@@ -0,0 +1 @@
+!function(t){var a=deactivate_dialog.tracksUserData;analytics.initialize(a.userid,a.username);var e=t("tr[data-slug=jetpack] > td.plugin-title > div > span.deactivate > a"),i=e.attr("href");window.deactivateJetpack=function(){window.location.href=i};var n=new MutationObserver((function(a){a.forEach((function(a){"childList"===a.type&&a.addedNodes.forEach((function(a){"TB_window"===a.id&&(t("#TB_window").addClass("jetpack-disconnect-modal"),deactivationModalCentralize(),t("#TB_closeWindowButton, #TB_overlay").on("click",(function(t){deactivationModalTrackCloseEvent()})),document.onkeyup=function(t){keycode=null===t?event.keyCode:t.which,27==keycode&&deactivationModalTrackCloseEvent()},n.disconnect())}))}))}));window.deactivationModalCentralize=function(){var a=t("#TB_window.jetpack-disconnect-modal"),e=t(window).height()/2-t(a).height()/2;t(a).css("top",e+"px")},window.deactivationModalTrackCloseEvent=function(){analytics.tracks.recordEvent("jetpack_termination_dialog_close_click",c),document.onkeyup=""};var o=t("body")[0],c={location:"plugins",purpose:"deactivate"};e.attr("href","plugins.php#TB_inline?inlineId=jetpack_deactivation_dialog"),e.attr("title",deactivate_dialog.title),e.addClass("thickbox"),e.html(deactivate_dialog.deactivate_label),e.on("click",(function(t){n.observe(o,{childList:!0}),analytics.tracks.recordEvent("jetpack_termination_dialog_open",c)})),t("#jetpack_deactivation_dialog_content__button-cancel").on("click",(function(t){tb_remove(),deactivationModalTrackCloseEvent()})),t("#jetpack_deactivation_dialog_content__button-deactivate").on("click",(function(a){a.preventDefault(),t(this).prop("disabled",!0),analytics.tracks.recordEvent("jetpack_termination_dialog_termination_click",c),deactivateJetpack()}))}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.min.asset.php b/plugins/jetpack/_inc/build/jetpack-modules.min.asset.php
new file mode 100644
index 00000000..a0ad31ba
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-modules.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'dfdb33eaa0074f941ae3e2559ecca14f'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.min.js b/plugins/jetpack/_inc/build/jetpack-modules.min.js
index 8f3ef1d4..7d795ee4 100644
--- a/plugins/jetpack/_inc/build/jetpack-modules.min.js
+++ b/plugins/jetpack/_inc/build/jetpack-modules.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e,t,a,n,s,o,i,l){"use strict";var c,r,u,d,p;t(".wp-list-table.jetpack-modules"),u=t(".navbar-form"),d=t("#srch-term-search-input"),t(".jp-frame"),p=t("#doaction"),c=new n.Modules({items:a}),new s.List_Table({el:"#the-list",model:c}),c.trigger("change"),r=function(e){t(".subsubsub").find('a[data-title="'+t(this).data("title")+'"]').addClass("current").closest("li").siblings().find("a.current").removeClass("current"),e.preventDefault(),c.trigger("change")},t(".subsubsub a").on("click",{modules:c},r),u.on("click",".button-group .button",{modules:c},function(e){e.preventDefault(),t(this).addClass("active").siblings(".active").removeClass("active"),c.trigger("change")}),d.on("keyup search",function(e){9!==e.keyCode&&c.trigger("change")}),d.prop("placeholder",o.search_placeholder),p.on("click",function(a){var n,s=t(".jetpack-modules-list-table-form").serialize(),o=t(this).siblings("select").val();s.length&&"-1"!==o&&(n="admin.php?page=jetpack&action="+encodeURIComponent(o),n+="&"+s,n+="&_wpnonce="+encodeURIComponent(l.bulk),e.location.href=n),a.preventDefault()})}(this,jQuery,window.jetpackModulesData.modules,this.jetpackModules.models,this.jetpackModules.views,window.jetpackModulesData.i18n,window.jetpackModulesData.modalinfo,window.jetpackModulesData.nonces); \ No newline at end of file
+!function(e,t,a,n,o,s,i,l){"use strict";var c,r,d,u,p;t(".wp-list-table.jetpack-modules"),d=t(".navbar-form"),u=t("#srch-term-search-input"),t(".jp-frame"),p=t("#doaction"),c=new n.Modules({items:a}),new o.List_Table({el:"#the-list",model:c}),c.trigger("change"),r=function(e){t(".subsubsub").find('a[data-title="'+t(this).data("title")+'"]').addClass("current").closest("li").siblings().find("a.current").removeClass("current"),e.preventDefault(),c.trigger("change")},t(".subsubsub a").on("click",{modules:c},r),d.on("click",".button-group .button",{modules:c},(function(e){e.preventDefault(),t(this).addClass("active").siblings(".active").removeClass("active"),c.trigger("change")})),u.on("keyup search",(function(e){9!==e.keyCode&&c.trigger("change")})),u.prop("placeholder",s.search_placeholder),p.on("click",(function(a){var n,o=t(".jetpack-modules-list-table-form").serialize(),s=t(this).siblings("select").val();o.length&&"-1"!==s&&(n="admin.php?page=jetpack&action="+encodeURIComponent(s),n+="&"+o,n+="&_wpnonce="+encodeURIComponent(l.bulk),e.location.href=n),a.preventDefault()}))}(window,jQuery,window.jetpackModulesData.modules,window.jetpackModules.models,window.jetpackModules.views,window.jetpackModulesData.i18n,window.jetpackModulesData.modalinfo,window.jetpackModulesData.nonces); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.models.min.asset.php b/plugins/jetpack/_inc/build/jetpack-modules.models.min.asset.php
new file mode 100644
index 00000000..f777d8da
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-modules.models.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '1e048282a13f3754a005c9c4d575f518'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.models.min.js b/plugins/jetpack/_inc/build/jetpack-modules.models.min.js
index eb99b257..a0e4bf8a 100644
--- a/plugins/jetpack/_inc/build/jetpack-modules.models.min.js
+++ b/plugins/jetpack/_inc/build/jetpack-modules.models.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-this.jetpackModules=this.jetpackModules||{},window.jetpackModules.models=function(t,e,r,s){"use strict";var a={};return a.Modules=s.Model.extend({visibles:{},filter_and_sort:function(){var t,s=e(".subsubsub .current"),a=this.get("raw"),i=e(".button-group.filter-active .active"),o=e(".button-group.sort .active"),n=e("#srch-term-search-input").val().toLowerCase();return s.closest("li").hasClass("all")||(a=r.filter(a,function(t){return r.contains(t.module_tags,s.data("title"))})),i.data("filter-by")&&(a=r.filter(a,function(t){return t[i.data("filter-by")]===i.data("filter-value")})),n.length&&(a=r.filter(a,function(t){return-1!==(t.name+" "+t.description+" "+t.long_description+" "+t.search_terms+" "+t.module_tags).toLowerCase().indexOf(n)})),o.data("sort-by")&&(a=r.sortBy(a,o.data("sort-by")),"reverse"===o.data("sort-order")&&a.reverse()),t=r.groupBy(a,"available"),r.has(t,"false")&&(a=[].concat(t[!0],t[!1])),this.set("items",a),this},initialize:function(){var t=this.get("items");this.set("raw",t)}}),a}(0,jQuery,_,Backbone); \ No newline at end of file
+window.jetpackModules=window.jetpackModules||{},window.jetpackModules.models=function(t,e,r,a){"use strict";var s={};return s.Modules=a.Model.extend({visibles:{},filter_and_sort:function(){var t,a=e(".subsubsub .current"),s=this.get("raw"),i=e(".button-group.filter-active .active"),o=e(".button-group.sort .active"),n=e("#srch-term-search-input").val().toLowerCase();return a.closest("li").hasClass("all")||(s=r.filter(s,(function(t){return r.contains(t.module_tags,a.data("title"))}))),i.data("filter-by")&&(s=r.filter(s,(function(t){return t[i.data("filter-by")]===i.data("filter-value")}))),n.length&&(s=r.filter(s,(function(t){return-1!==(t.name+" "+t.description+" "+t.long_description+" "+t.search_terms+" "+t.module_tags).toLowerCase().indexOf(n)}))),o.data("sort-by")&&(s=r.sortBy(s,o.data("sort-by")),"reverse"===o.data("sort-order")&&s.reverse()),t=r.groupBy(s,"available"),r.has(t,"false")&&(s=[].concat(t[!0],t[!1])),this.set("items",s),this},initialize:function(){var t=this.get("items");this.set("raw",t)}}),s}(window,jQuery,_,Backbone); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.views.min.asset.php b/plugins/jetpack/_inc/build/jetpack-modules.views.min.asset.php
new file mode 100644
index 00000000..90ae7d0d
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-modules.views.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'aa31fb92a8fbbfb02799fb9a062abb21'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-modules.views.min.js b/plugins/jetpack/_inc/build/jetpack-modules.views.min.js
index 66204117..d9ef82f7 100644
--- a/plugins/jetpack/_inc/build/jetpack-modules.views.min.js
+++ b/plugins/jetpack/_inc/build/jetpack-modules.views.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-this.jetpackModules=this.jetpackModules||{},window.jetpackModules.views=function(t,e,a,o,i){"use strict";var n={};return n.List_Table=o.View.extend({template:i.template("Jetpack_Modules_List_Table_Template"),updateUrl:function(){if(t.history.replaceState){var a=t.location.href.split("?")[0]+"?page=jetpack_modules",o=e(".subsubsub .current"),i=e(".button-group.filter-active .active"),n=e(".button-group.sort .active"),s=e("#srch-term-search-input").val();s.length&&(a+="&s="+encodeURIComponent(s)),o.hasClass("all")||(a+="&module_tag="+encodeURIComponent(o.data("title"))),i.data("filter-by")&&(a+="&"+encodeURIComponent(i.data("filter-by"))+"="+encodeURIComponent(i.data("filter-value"))),"name"!==n.data("sort-by")&&(a+="&sort_by="+encodeURIComponent(n.data("sort-by"))),t.history.replaceState({},"",a)}},render:function(){return this.model.filter_and_sort(),this.$el.html(this.template(this.model.attributes)),this.updateUrl(),this},initialize:function(){this.listenTo(this.model,"change",this.render)}}),n}(this,jQuery,_,Backbone,wp); \ No newline at end of file
+window.jetpackModules=window.jetpackModules||{},window.jetpackModules.views=function(t,e,a,o,n){"use strict";var i={};return i.List_Table=o.View.extend({template:n.template("Jetpack_Modules_List_Table_Template"),updateUrl:function(){if(t.history.replaceState){var a=t.location.href.split("?")[0]+"?page=jetpack_modules",o=e(".subsubsub .current"),n=e(".button-group.filter-active .active"),i=e(".button-group.sort .active"),s=e("#srch-term-search-input").val();s.length&&(a+="&s="+encodeURIComponent(s)),o.hasClass("all")||(a+="&module_tag="+encodeURIComponent(o.data("title"))),n.data("filter-by")&&(a+="&"+encodeURIComponent(n.data("filter-by"))+"="+encodeURIComponent(n.data("filter-value"))),"name"!==i.data("sort-by")&&(a+="&sort_by="+encodeURIComponent(i.data("sort-by"))),t.history.replaceState({},"",a)}},render:function(){return this.model.filter_and_sort(),this.$el.html(this.template(this.model.attributes)),this.updateUrl(),this},initialize:function(){this.listenTo(this.model,"change",this.render)}}),i}(window,jQuery,_,Backbone,wp); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.asset.php b/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.asset.php
new file mode 100644
index 00000000..74f03cdb
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '02d66e22a542d83207f4c1ee2cbd7a28'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.js b/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.js
new file mode 100644
index 00000000..94cbeaf3
--- /dev/null
+++ b/plugins/jetpack/_inc/build/jetpack-recommendations-banner.min.js
@@ -0,0 +1 @@
+!function(){var n,e,a,t,o;n=jQuery,e=n("#jp-recommendations-banner-main"),a=n("#jp-recommendations-banner__form"),t=n("#jp-recommendations-banner__continue-button"),o=n("#jp-recommendations-banner__notice-dismiss"),a.on("change",(function(e){"checkbox"===e.target.type&&e.target.parentElement&&"label"===e.target.parentElement.tagName.toLowerCase()&&(n('label.checked input[name="'+e.target.name+'"]').length>0?e.target.parentElement.classList.remove("checked"):e.target.parentElement.classList.add("checked"))})),t.on("click",(function(){var e={};["personal","business","store","other"].forEach((function(a){e[a]=n("input[name='"+a+"']").prop("checked")})),n.post(jp_banner.ajax_url,{action:"jetpack_recommendations_banner",nonce:jp_banner.nonce,personal:e.personal,business:e.business,store:e.store,other:e.other},(function(n){!0===n.success&&window.location.assign(jp_banner.recommendations_url)}))})),o.on("click",(function(){n(e).hide();var a={action:"jetpack_recommendations_banner",nonce:jp_banner.nonce,dismissBanner:!0};n.post(jp_banner.ajax_url,a,(function(a){!0!==a.success&&n(e).show()}))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.asset.php b/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.asset.php
new file mode 100644
index 00000000..449754bd
--- /dev/null
+++ b/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '41c75833cd3e8bcec7399c5954a5eb10'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.js b/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.js
index d7c03d0b..c117a9ab 100644
--- a/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.js
+++ b/plugins/jetpack/_inc/build/likes/post-count-jetpack.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-var wpPostLikeCount=wpPostLikeCount||{};!function(t){wpPostLikeCount=jQuery.extend(wpPostLikeCount,{request:function(e){return t.ajax({type:"GET",url:wpPostLikeCount.jsonAPIbase+e.path,dataType:"jsonp",data:e.data,success:function(t){e.success(t)},error:function(t){e.error(t)}})}})}(jQuery); \ No newline at end of file
+!function(){var o;window.wpPostLikeCount=window.wpPostLikeCount||{},o=jQuery,window.wpPostLikeCount=jQuery.extend(window.wpPostLikeCount,{request:function(n){return o.ajax({type:"GET",url:window.wpPostLikeCount.jsonAPIbase+n.path,dataType:"jsonp",data:n.data,success:function(o){n.success(o)},error:function(o){n.error(o)}})}})}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/post-count.min.asset.php b/plugins/jetpack/_inc/build/likes/post-count.min.asset.php
new file mode 100644
index 00000000..56670147
--- /dev/null
+++ b/plugins/jetpack/_inc/build/likes/post-count.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'ec5289cb98fdac64b726fd3ec5ba006b'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/post-count.min.js b/plugins/jetpack/_inc/build/likes/post-count.min.js
index de7506e0..58a4f722 100644
--- a/plugins/jetpack/_inc/build/likes/post-count.min.js
+++ b/plugins/jetpack/_inc/build/likes/post-count.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-var wpPostLikeCount=wpPostLikeCount||{};!function(t){wpPostLikeCount=jQuery.extend(wpPostLikeCount,{jsonAPIbase:"https://public-api.wordpress.com/rest/v1",APIqueue:[],wpPostLikeCount:function(){t(".post-like-count").each(function(){var o=t(this).attr("data-post-id"),n=t(this).attr("data-blog-id");wpPostLikeCount.APIqueue.push("/sites/"+n+"/posts/"+o+"/likes")}),wpPostLikeCount.getCounts()},showCount:function(o,n){n>0&&(t("#post-like-count-"+o).find(".comment-count").hide(),t("#post-like-count-"+o).find(".comment-count").text(n),t("#post-like-count-"+o).find(".comment-count").fadeIn())},getCounts:function(){for(var t={path:"/batch",data:"",success:function(t){for(var o in t)if(!t[o].error_data){var n=o.split("/")[4];wpPostLikeCount.showCount(n,t[o].found)}},error:function(){}},o="",n=0;n<wpPostLikeCount.APIqueue.length;n++)n>0&&(o="&"),t.data+=o+"urls[]="+wpPostLikeCount.APIqueue[n];wpPostLikeCount.request(t)}})}(jQuery),jQuery(document).ready(function(){wpPostLikeCount.wpPostLikeCount()}); \ No newline at end of file
+!function(){var t;window.wpPostLikeCount=window.wpPostLikeCount||{},t=jQuery,window.wpPostLikeCount=jQuery.extend(window.wpPostLikeCount,{jsonAPIbase:"https://public-api.wordpress.com/rest/v1",APIqueue:[],wpPostLikeCount:function(){t(".post-like-count").each((function(){var o=t(this).attr("data-post-id"),n=t(this).attr("data-blog-id");window.wpPostLikeCount.APIqueue.push("/sites/"+n+"/posts/"+o+"/likes")})),window.wpPostLikeCount.getCounts()},showCount:function(o,n){n>0&&(t("#post-like-count-"+o).find(".comment-count").hide(),t("#post-like-count-"+o).find(".comment-count").text(n),t("#post-like-count-"+o).find(".comment-count").fadeIn())},getCounts:function(){for(var t={path:"/batch",data:"",success:function(t){for(var o in t)if(!t[o].error_data){var n=o.split("/")[4];window.wpPostLikeCount.showCount(n,t[o].found)}},error:function(){}},o="",n=0;n<window.wpPostLikeCount.APIqueue.length;n++)n>0&&(o="&"),t.data+=o+"urls[]="+window.wpPostLikeCount.APIqueue[n];window.wpPostLikeCount.request(t)}}),jQuery(document).ready((function(){window.wpPostLikeCount.wpPostLikeCount()}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/queuehandler.min.asset.php b/plugins/jetpack/_inc/build/likes/queuehandler.min.asset.php
new file mode 100644
index 00000000..69170886
--- /dev/null
+++ b/plugins/jetpack/_inc/build/likes/queuehandler.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '78bbf5554c10cd339a1c6a3035a2e8be'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/likes/queuehandler.min.js b/plugins/jetpack/_inc/build/likes/queuehandler.min.js
index 19da08dc..a15547e2 100644
--- a/plugins/jetpack/_inc/build/likes/queuehandler.min.js
+++ b/plugins/jetpack/_inc/build/likes/queuehandler.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global pm, wpcom_reblog, JSON */
-var jetpackLikesWidgetBatch=[],jetpackLikesMasterReady=!1,jetpackLikesLookAhead=2e3,jetpackCommentLikesLoadedWidgets=[];function JetpackLikesPostMessage(e,t){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return}pm({target:t,type:"likesMessage",data:e,origin:"*"})}function JetpackLikesBatchHandler(){var e=[];jQuery("div.jetpack-likes-widget-unloaded").each(function(){if(!(jetpackLikesWidgetBatch.indexOf(this.id)>-1)&&jetpackIsScrolledIntoView(this)){jetpackLikesWidgetBatch.push(this.id);var t,i=/like-(post|comment)-wrapper-(\d+)-(\d+)-(\w+)/.exec(this.id);i&&5===i.length&&(t={blog_id:i[2],width:this.width},"post"===i[1]?t.post_id=i[3]:"comment"===i[1]&&(t.comment_id=i[3]),t.obj_id=i[4],e.push(t))}}),e.length>0&&JetpackLikesPostMessage({event:"initialBatch",requests:e},window.frames["likes-master"])}function JetpackLikesMessageListener(e,t){var i,a,s,d,o,r;if(void 0!==e.event&&("https://widgets.wp.com","https://widgets.wp.com"===t.origin))switch(e.event){case"masterReady":jQuery(document).ready(function(){jetpackLikesMasterReady=!0;var e={event:"injectStyles"},t=jQuery(".sd-text-color"),i=jQuery(".sd-link-color");jQuery("iframe.admin-bar-likes-widget").length>0&&(JetpackLikesPostMessage({event:"adminBarEnabled"},window.frames["likes-master"]),e.adminBarStyles={background:jQuery("#wpadminbar .quicklinks li#wp-admin-bar-wpl-like > a").css("background"),isRtl:"rtl"===jQuery("#wpadminbar").css("direction")}),window.addEventListener||jQuery("#wp-admin-bar-admin-bar-likes-widget").hide(),e.textStyles={color:t.css("color"),fontFamily:t.css("font-family"),fontSize:t.css("font-size"),direction:t.css("direction"),fontWeight:t.css("font-weight"),fontStyle:t.css("font-style"),textDecoration:t.css("text-decoration")},e.linkStyles={color:i.css("color"),fontFamily:i.css("font-family"),fontSize:i.css("font-size"),textDecoration:i.css("text-decoration"),fontWeight:i.css("font-weight"),fontStyle:i.css("font-style")},JetpackLikesPostMessage(e,window.frames["likes-master"]),JetpackLikesBatchHandler()});break;case"showLikeWidget":case"showCommentLikeWidget":jQuery("#"+e.id+" .likes-widget-placeholder").fadeOut("fast");break;case"killCommentLikes":jQuery(".jetpack-comment-likes-widget-wrapper").remove();break;case"clickReblogFlair":wpcom_reblog.toggle_reblog_box_flair(e.obj_id);break;case"showOtherGravatars":i=jQuery("#likes-other-gravatars"),a=i.find("ul"),i.hide(),a.html(""),i.find(".likes-text span").text(e.total),jQuery.each(e.likers,function(e,t){var i;"http"===t.profile_URL.substr(0,4)&&((i=jQuery("<li><a><img /></a></li>")).addClass(t.css_class),i.find("a").attr({href:t.profile_URL,rel:"nofollow",target:"_parent"}).addClass("wpl-liker"),i.find("img").attr({src:t.avatar_URL,alt:t.name}).css({width:"30px",height:"30px",paddingRight:"3px"}),a.append(i))}),s=jQuery("body").find("[name='"+e.parent+"']").offset(),i.css("left",s.left+e.position.left-10+"px"),i.css("top",s.top+e.position.top-33+"px"),d=Math.floor(e.width/37),(o=37*Math.ceil(e.likers.length/d)+13)>204&&(o=204),i.css("height",o+"px"),i.css("width",37*d-7+"px"),a.css("width",37*d+"px"),i.fadeIn("slow"),(r=a[0].offsetWidth-a[0].clientWidth)>0&&(i.width(i.width()+r),a.width(a.width()+r))}}function JetpackLikesWidgetQueueHandler(){var e;if(jetpackLikesMasterReady){jetpackUnloadScrolledOutWidgets();var t=jetpackGetUnloadedWidgetsInView();t.length>0&&JetpackLikesBatchHandler();for(var i=0,a=t.length;i<=a-1;i++)(e=t[i].id)&&jetpackLoadLikeWidgetIframe(e)}else setTimeout(JetpackLikesWidgetQueueHandler,500)}function jetpackLoadLikeWidgetIframe(e){var t;if(void 0!==e){(t=jQuery("#"+e)).find("iframe").remove();var i=t.find(".likes-widget-placeholder");if(i.hasClass("post-likes-widget-placeholder")){var a=document.createElement("iframe");a.class="post-likes-widget jetpack-likes-widget",a.name=t.data("name"),a.src=t.data("src"),a.height="18px",a.width="200px",a.frameBorder="0",a.scrolling="no",t.hasClass("slim-likes-widget")?(a.height="22px",a.width="68px",a.scrolling="no"):(a.height="55px",a.width="100%"),i.after(a)}if(i.hasClass("comment-likes-widget-placeholder")){var s=document.createElement("iframe");s.class="comment-likes-widget-frame jetpack-likes-widget-frame",s.name=t.data("name"),s.src=t.data("src"),s.height="18px",s.width="100%",s.frameBorder="0",s.scrolling="no",t.find(".comment-like-feedback").after(s),jetpackCommentLikesLoadedWidgets.push(s)}t.removeClass("jetpack-likes-widget-unloaded").addClass("jetpack-likes-widget-loading"),t.find("iframe").load(function(e){var i=jQuery(e.target);JetpackLikesPostMessage({event:"loadLikeWidget",name:i.attr("name"),width:i.width()},window.frames["likes-master"]),t.removeClass("jetpack-likes-widget-loading").addClass("jetpack-likes-widget-loaded"),t.hasClass("slim-likes-widget")&&t.find("iframe").Jetpack("resizeable")})}}function jetpackGetUnloadedWidgetsInView(){return jQuery("div.jetpack-likes-widget-unloaded").filter(function(){return jetpackIsScrolledIntoView(this)})}function jetpackIsScrolledIntoView(e){var t=e.getBoundingClientRect().top,i=e.getBoundingClientRect().bottom;return t+jetpackLikesLookAhead>=0&&i<=window.innerHeight+jetpackLikesLookAhead}function jetpackUnloadScrolledOutWidgets(){for(var e=jetpackCommentLikesLoadedWidgets.length-1;e>=0;e--){var t=jetpackCommentLikesLoadedWidgets[e];if(!jetpackIsScrolledIntoView(t)){var i=jQuery(t).parent().parent();i.removeClass("jetpack-likes-widget-loaded jetpack-likes-widget-loading").addClass("jetpack-likes-widget-unloaded"),i.children(".comment-likes-widget-placeholder").fadeIn(),jetpackCommentLikesLoadedWidgets.splice(e,1),jQuery(t).remove()}}}pm.bind("likesMessage",JetpackLikesMessageListener),jQuery(document).click(function(e){var t=jQuery("#likes-other-gravatars");0===t.has(e.target).length&&t.fadeOut("slow")});var jetpackWidgetsDelayedExec=function(e,t){var i;return function(){i&&clearTimeout(i),i=setTimeout(t,e)}},jetpackOnScrollStopped=jetpackWidgetsDelayedExec(250,JetpackLikesWidgetQueueHandler);JetpackLikesWidgetQueueHandler(),window.addEventListener("scroll",jetpackOnScrollStopped,!0); \ No newline at end of file
+!function(){var e=[],t=!1,o=[],i=new Promise((e=>{"loading"!==document.readyState?e():window.addEventListener("DOMContentLoaded",(()=>e()))}));function n(e,t){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){return}if(t&&"function"==typeof t.postMessage)try{t.postMessage(JSON.stringify({type:"likesMessage",data:e}),"*")}catch(e){return}}function l(){const t=[];document.querySelectorAll("div.jetpack-likes-widget-unloaded").forEach((o=>{if(!(e.indexOf(o.id)>-1)&&r(o)){e.push(o.id);var i,n=/like-(post|comment)-wrapper-(\d+)-(\d+)-(\w+)/.exec(o.id);n&&5===n.length&&(i={blog_id:n[2],width:o.width},"post"===n[1]?i.post_id=n[3]:"comment"===n[1]&&(i.comment_id=n[3]),i.obj_id=n[4],t.push(i))}})),t.length>0&&n({event:"initialBatch",requests:t},window.frames["likes-master"])}function s(){var e;if(t){!function(){for(let e=o.length-1;e>=0;e--){const t=o[e];if(!r(t)){const i=t&&t.parentElement&&t.parentElement.parentElement;i.classList.remove("jetpack-likes-widget-loaded"),i.classList.remove("jetpack-likes-widget-loading"),i.classList.add("jetpack-likes-widget-unloaded"),i.querySelectorAll(".comment-likes-widget-placeholder").forEach((e=>e.style.display="block")),o.splice(e,1),t.remove()}}}();var i=[...document.querySelectorAll("div.jetpack-likes-widget-unloaded")].filter((e=>r(e)));i.length>0&&l();for(var n=0,c=i.length;n<=c-1;n++)(e=i[n].id)&&a(e)}else setTimeout(s,500)}function a(e){if(void 0===e)return;const t=document.querySelector("#"+e);t.querySelectorAll("iframe").forEach((e=>e.remove()));const i=t.querySelector(".likes-widget-placeholder");if(i&&i.classList.contains("post-likes-widget-placeholder")){const e=document.createElement("iframe");e.classList.add("post-likes-widget","jetpack-likes-widget"),e.name=t.dataset.name,e.src=t.dataset.src,e.height="55px",e.width="100%",e.frameBorder="0",e.scrolling="no",e.title=t.dataset.title,i.after(e)}if(i.classList.contains("comment-likes-widget-placeholder")){const e=document.createElement("iframe");e.class="comment-likes-widget-frame jetpack-likes-widget-frame",e.name=t.dataset.name,e.src=t.dataset.src,e.height="18px",e.width="100%",e.frameBorder="0",e.scrolling="no",t.querySelector(".comment-like-feedback").after(e),o.push(e)}t.classList.remove("jetpack-likes-widget-unloaded"),t.classList.add("jetpack-likes-widget-loading"),t.querySelector("iframe").addEventListener("load",(e=>{n({event:"loadLikeWidget",name:e.target.name,width:e.target.width},window.frames["likes-master"]),t.classList.remove("jetpack-likes-widget-loading"),t.classList.add("jetpack-likes-widget-loaded")}))}function r(e){const t=e.getBoundingClientRect().top,o=e.getBoundingClientRect().bottom;return t+2e3>=0&&o<=window.innerHeight+2e3}window.addEventListener("message",(function(e){let o=e&&e.data;if("string"==typeof o)try{o=JSON.parse(o)}catch(e){return}const s=o&&o.type,a=o&&o.data;if("likesMessage"!==s||void 0===a.event)return;if("https://widgets.wp.com"===e.origin)switch(a.event){case"masterReady":i.then((()=>{t=!0;const e={event:"injectStyles"},o=document.querySelector(".sd-text-color"),i=document.querySelector(".sd-link-color"),s=o&&getComputedStyle(o)||{},a=i&&getComputedStyle(i)||{};if(document.querySelectorAll("iframe.admin-bar-likes-widget").length>0){n({event:"adminBarEnabled"},window.frames["likes-master"]);const t=document.querySelector("#wpadminbar .quicklinks li#wp-admin-bar-wpl-like > a"),o=document.querySelector("#wpadminbar");e.adminBarStyles={background:t&&getComputedStyle(t).background,isRtl:o&&"rtl"===getComputedStyle(o).direction}}document.body.classList.contains("single")&&n({event:"reblogsEnabled"},window.frames["likes-master"]),e.textStyles={color:s.color,fontFamily:s["font-family"],fontSize:s["font-size"],direction:s.direction,fontWeight:s["font-weight"],fontStyle:s["font-style"],textDecoration:s["text-decoration"]},e.linkStyles={color:a.color,fontFamily:a["font-family"],fontSize:a["font-size"],textDecoration:a["text-decoration"],fontWeight:a["font-weight"],fontStyle:a["font-style"]},n(e,window.frames["likes-master"]),l()}));break;case"showLikeWidget":{const e=document.querySelector(`#${a.id} .likes-widget-placeholder`);e&&(e.style.display="none");break}case"showCommentLikeWidget":{const e=document.querySelector(`#${a.id} .likes-widget-placeholder`);e&&(e.style.display="none");break}case"killCommentLikes":document.querySelectorAll(".jetpack-comment-likes-widget-wrapper").forEach((e=>e.remove()));break;case"clickReblogFlair":wpcom_reblog&&"function"==typeof wpcom_reblog.toggle_reblog_box_flair&&wpcom_reblog.toggle_reblog_box_flair(a.obj_id);break;case"showOtherGravatars":{const e=document.querySelector("#likes-other-gravatars");if(!e)break;const t=e.querySelector("ul");e.style.display="none",t.innerHTML="",e.querySelectorAll(".likes-text span").forEach((e=>e.textContent=a.total)),(a.likers||[]).forEach((e=>{if("http"!==e.profile_URL.substr(0,4))return;const o=document.createElement("li");o.innerHTML=`\n\t\t\t\t\t<a href="${encodeURI(e.profile_URL)}" rel="nofollow" target="_parent" class="wpl-liker">\n\t\t\t\t\t\t<img src="${encodeURI(e.avatar_URL)}"\n\t\t\t\t\t\t\talt=""\n\t\t\t\t\t\t\tstyle="width: 30px; height: 30px; padding-right: 3px;" />\n\t\t\t\t\t</a>\n\t\t\t\t`,t.append(o),o.classList.add(e.css_class),o.querySelector("img").alt=e.name}));const o=document.querySelector(`*[name='${a.parent}']`),i=o.getBoundingClientRect(),n=o.ownerDocument.defaultView,l={top:i.top+n.pageYOffset,left:i.left+n.pageXOffset};e.style.left=l.left+a.position.left-10+"px",e.style.top=l.top+a.position.top-33+"px";const s=Math.floor(a.width/37);let r=37*Math.ceil(a.likers.length/s)+13;r>204&&(r=204);const c=37*s-7;e.style.height=r+"px",e.style.width=c+"px";const d=37*s;t.style.width=d+"px",e.style.display="block";const m=t.offsetWidth-t.clientWidth;m>0&&(e.style.width=c+m+"px",t.style.width=d+m+"px")}}})),document.addEventListener("click",(e=>{const t=document.querySelector("#likes-other-gravatars");t&&!t.contains(e.target)&&(t.style.display="none")}));var c,d,m,p=(c=250,d=s,function(){clearTimeout(m),m=setTimeout(d,c)});s(),window.addEventListener("scroll",p,!0)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/aquatic/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/aquatic/colors.css
new file mode 100644
index 00000000..3fde6e9f
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/aquatic/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#008763;box-shadow:0 0 0 1px #008763}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#008763;color:#262a2e;box-shadow:inset 0 2px 5px -3px #008763}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#008763;border-color:#008763}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#00543e;color:#00543e}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#00ba88;color:#002118;box-shadow:0 0 0 1px #00ba88}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#008763;border-color:#008763;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#00966e;border-color:#007858;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #008763}.wp-core-ui .button-primary:active{background:#006e50;border-color:#006e50;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#008763;color:#fff;border-color:#003b2b;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#008763}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#02395c}.wp-core-ui .wp-ui-text-primary{color:#02395c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#0675c4}.wp-core-ui .wp-ui-text-highlight{color:#0675c4}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#09b585}.wp-core-ui .wp-ui-text-notification{color:#09b585}.wp-core-ui .wp-ui-text-icon{color:#bbe0fa}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #008763;color:#008763}.wrap .page-title-action:hover{color:#00543e;border-color:#00543e}.wrap .page-title-action:focus{border-color:#00ba88;color:#002118;box-shadow:0 0 0 1px #00ba88}.view-switch a.current:before{color:#055d9c}.view-switch a:hover:before{color:#09b585}#adminmenuback,#adminmenuwrap,#adminmenu{background:#055d9c}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#bbe0fa}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#0675c4}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#02395c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#02395c}#adminmenu .wp-submenu .wp-submenu-head{color:#fff}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#fff}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#f0c930}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#f0c930}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#01283d;background:#f0c930}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#01283d}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#09b585}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#02395c}#collapse-button{color:#bbe0fa}#collapse-button:hover,#collapse-button:focus{color:#f0c930}#wpadminbar{color:#fff;background:#055d9c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#bbe0fa}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#f0c930;background:#02395c}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#f0c930}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#02395c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#0d70b8}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#fff}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#bbe0fa}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#f0c930}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f0c930}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#bbe0fa}#wpadminbar #adminbarsearch:before{color:#bbe0fa}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#0672bf}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#09b585}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#08a378}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#0672bf;background-color:#0672bf}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f0c930}#wpadminbar #wp-admin-bar-user-info .username{color:#fff}.wp-pointer .wp-pointer-content h3{background-color:#008763;border-color:#006e50}.wp-pointer .wp-pointer-content h3:before{color:#008763}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#008763}.media-item .bar,.media-progress-bar div{background-color:#008763}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #008763}.attachment.details .check{background-color:#008763;box-shadow:0 0 0 1px #fff,0 0 0 2px #008763}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #008763}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#008763}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#008763}.theme-section.current,.theme-filter.current{border-bottom-color:#055d9c}body.more-filters-opened .more-filters{color:#fff;background-color:#055d9c}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#0675c4;color:#fff}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#0675c4;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#bbe0fa}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#0675c4}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#02395c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#bbe0fa}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#008763}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#008763;border-left-color:#008763}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#008763;border-top-color:#008763}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#008763;border-left-color:#008763}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#008763}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #00ba88,0 0 2px 1px #008763}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#008763}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#008763;color:#008763}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#008763}.control-panel-themes .customize-themes-section-title.selected{color:#008763}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#008763}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#008763;border-style:solid;box-shadow:0 0 0 1px #008763;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#008763}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#008763}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #00ba88,0 0 2px 1px #008763}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#008763}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#02395c !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#01283d}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#01283d}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #02395c}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#001621}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#01283d}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#001621 !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #044b7a;border-top:1px solid #044b7a}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#055d9c}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#fff}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#bbe0fa}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#f0c930}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(5, 93, 156, 0), #055d9c 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#bbe0fa}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#bbe0fa}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-contrast #adminmenuback{outline:1px solid #044b7a}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #008763;--wp-admin-theme-color-darker-10: #006e50;--wp-admin-theme-color-darker-20: #00543e}.a8c-faux-inline-help{--color-primary: #0675c4;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#008763;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#007053} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/blue/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/blue/colors.css
new file mode 100644
index 00000000..3e9c9ff7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/blue/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#52accc;box-shadow:inset 0 -1px 0 #4796b3}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#4796b3;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#4796b3 !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#e2ecf1}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#e2ecf1}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #4796b3;border-top:1px solid #4796b3}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#096484}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#e2ecf1}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(82, 172, 204, 0), #52accc 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#096484;color:#fff}.a8c-faux-inline-help{--color-primary: #096484;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#096484;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-blue/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-blue/colors.css
new file mode 100644
index 00000000..4a2a5135
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-blue/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#b26200;box-shadow:0 0 0 1px #b26200}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#b26200;color:#262a2e;box-shadow:inset 0 2px 5px -3px #b26200}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#b26200;border-color:#b26200}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#7f4600;color:#7f4600}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#e57e00;color:#4c2a00;box-shadow:0 0 0 1px #e57e00}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#b26200;border-color:#b26200;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#c16a00;border-color:#a35a00;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #b26200}.wp-core-ui .button-primary:active{background:#995400;border-color:#995400;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#b26200;color:#fff;border-color:#663800;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#b26200}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#055d9c}.wp-core-ui .wp-ui-text-primary{color:#055d9c}.wp-core-ui .wp-ui-highlight{color:#0675c4;background-color:#fff}.wp-core-ui .wp-ui-text-highlight{color:#fff}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#e68b28}.wp-core-ui .wp-ui-text-notification{color:#e68b28}.wp-core-ui .wp-ui-text-icon{color:#646970}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #b26200;color:#b26200}.wrap .page-title-action:hover{color:#7f4600;border-color:#7f4600}.wrap .page-title-action:focus{border-color:#e57e00;color:#4c2a00;box-shadow:0 0 0 1px #e57e00}.view-switch a.current:before{color:#dcdcde}.view-switch a:hover:before{color:#e68b28}#adminmenuback,#adminmenuwrap,#adminmenu{background:#dcdcde}#adminmenu a{color:#2c3338}#adminmenu div.wp-menu-image:before{color:#646970}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#0675c4;background-color:#fff}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#0675c4}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#055d9c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#055d9c}#adminmenu .wp-submenu .wp-submenu-head{color:#fff}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#fff}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#e68b28}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#e68b28}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#50575e}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#e68b28}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#055d9c}#collapse-button{color:#646970}#collapse-button:hover,#collapse-button:focus{color:#e68b28}#wpadminbar{color:#2c3338;background:#dcdcde}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#2c3338}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#646970}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#e68b28;background:#055d9c}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#e68b28}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#0675c4}#wpadminbar .menupop .ab-sub-wrapper{background:#055d9c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#efefef}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#fff}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#646970}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#e68b28}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#e68b28}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#646970}#wpadminbar #adminbarsearch:before{color:#646970}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#2c3338;background:#eeeeef}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#e68b28}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#cf7d24}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#eeeeef;background-color:#eeeeef}#wpadminbar #wp-admin-bar-user-info .display-name{color:#2c3338}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#e68b28}#wpadminbar #wp-admin-bar-user-info .username{color:#fff}.wp-pointer .wp-pointer-content h3{background-color:#b26200;border-color:#995400}.wp-pointer .wp-pointer-content h3:before{color:#b26200}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#b26200}.media-item .bar,.media-progress-bar div{background-color:#b26200}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #b26200}.attachment.details .check{background-color:#b26200;box-shadow:0 0 0 1px #fff,0 0 0 2px #b26200}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #b26200}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#b26200}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#b26200}.theme-section.current,.theme-filter.current{border-bottom-color:#dcdcde}body.more-filters-opened .more-filters{color:#2c3338;background-color:#dcdcde}body.more-filters-opened .more-filters:before{color:#2c3338}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#fff;color:#0675c4}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#0675c4}.widgets-chooser li.widgets-chooser-selected{background-color:#fff;color:#0675c4}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#0675c4}div#wp-responsive-toggle a:before{color:#646970}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#055d9c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#646970}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#b26200}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#b26200;border-left-color:#b26200}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#b26200;border-top-color:#b26200}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#b26200;border-left-color:#b26200}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#b26200}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #e57e00,0 0 2px 1px #b26200}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#b26200}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#b26200;color:#b26200}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#b26200}.control-panel-themes .customize-themes-section-title.selected{color:#b26200}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#b26200}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#b26200;border-style:solid;box-shadow:0 0 0 1px #b26200;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#b26200}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#b26200}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #e57e00,0 0 2px 1px #b26200}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#b26200}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#055d9c !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#044b7a}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #055d9c}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#01283d}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#044b7a}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#01283d !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #c3c4c7;border-top:1px solid #c3c4c7}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#dcdcde}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#2c3338}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#646970}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#50575e}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(220, 220, 222, 0), #dcdcde 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#646970}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#646970}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#0675c4}.admin-color-contrast #adminmenuback{outline:1px solid #c3c4c7}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #b26200;--wp-admin-theme-color-darker-10: #995400;--wp-admin-theme-color-darker-20: #7f4600}.a8c-faux-inline-help{--color-primary: #0675c4;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#b26200;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#8a4d00} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-bright/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-bright/colors.css
new file mode 100644
index 00000000..5562be4e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-bright/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#c9356e;box-shadow:0 0 0 1px #c9356e}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#c9356e;color:#262a2e;box-shadow:inset 0 2px 5px -3px #c9356e}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#c9356e;border-color:#c9356e}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#a12a58;color:#a12a58}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#d45d8b;color:#782042;box-shadow:0 0 0 1px #d45d8b}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#c9356e;border-color:#c9356e;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#cd4177;border-color:#bd3267;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #c9356e}.wp-core-ui .button-primary:active{background:#b53063;border-color:#b53063;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#c9356e;color:#fff;border-color:#8c254d;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#c9356e}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#055d9c}.wp-core-ui .wp-ui-text-primary{color:#055d9c}.wp-core-ui .wp-ui-highlight{color:#1d2327;background-color:#dcdcde}.wp-core-ui .wp-ui-text-highlight{color:#dcdcde}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#f283aa}.wp-core-ui .wp-ui-text-notification{color:#f283aa}.wp-core-ui .wp-ui-text-icon{color:#646970}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #c9356e;color:#c9356e}.wrap .page-title-action:hover{color:#a12a58;border-color:#a12a58}.wrap .page-title-action:focus{border-color:#d45d8b;color:#782042;box-shadow:0 0 0 1px #d45d8b}.view-switch a.current:before{color:#fff}.view-switch a:hover:before{color:#f283aa}#adminmenuback,#adminmenuwrap,#adminmenu{background:#fff}#adminmenu a{color:#2c3338}#adminmenu div.wp-menu-image:before{color:#646970}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#1d2327;background-color:#dcdcde}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#1d2327}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#e9f0f5}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#e9f0f5}#adminmenu .wp-submenu .wp-submenu-head{color:#044b7a}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#044b7a}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#c9356e}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#c9356e}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#c9356e}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#044b7a;background:#bbe0fa}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#044b7a}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#f283aa}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#e9f0f5}#collapse-button{color:#646970}#collapse-button:hover,#collapse-button:focus{color:#c9356e}#wpadminbar{color:#2c3338;background:#fff}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#2c3338}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#646970}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#c9356e;background:#e9f0f5}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#c9356e}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#1d2327}#wpadminbar .menupop .ab-sub-wrapper{background:#e9f0f5}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#fff}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#044b7a}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#646970}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#c9356e}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#c9356e}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#646970}#wpadminbar #adminbarsearch:before{color:#646970}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#2c3338;background:#fff}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#f283aa}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#da7699}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#fff;background-color:#fff}#wpadminbar #wp-admin-bar-user-info .display-name{color:#2c3338}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#c9356e}#wpadminbar #wp-admin-bar-user-info .username{color:#044b7a}.wp-pointer .wp-pointer-content h3{background-color:#c9356e;border-color:#b53063}.wp-pointer .wp-pointer-content h3:before{color:#c9356e}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c9356e}.media-item .bar,.media-progress-bar div{background-color:#c9356e}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c9356e}.attachment.details .check{background-color:#c9356e;box-shadow:0 0 0 1px #fff,0 0 0 2px #c9356e}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #c9356e}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#c9356e}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#c9356e}.theme-section.current,.theme-filter.current{border-bottom-color:#fff}body.more-filters-opened .more-filters{color:#2c3338;background-color:#fff}body.more-filters-opened .more-filters:before{color:#2c3338}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#dcdcde;color:#1d2327}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#1d2327}.widgets-chooser li.widgets-chooser-selected{background-color:#dcdcde;color:#1d2327}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#1d2327}div#wp-responsive-toggle a:before{color:#646970}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#dcdcde}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#e9f0f5}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#646970}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#c9356e}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#c9356e;border-left-color:#c9356e}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#c9356e;border-top-color:#c9356e}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#c9356e;border-left-color:#c9356e}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#c9356e}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #d45d8b,0 0 2px 1px #c9356e}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#c9356e}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#c9356e;color:#c9356e}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#c9356e}.control-panel-themes .customize-themes-section-title.selected{color:#c9356e}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#c9356e}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#c9356e;border-style:solid;box-shadow:0 0 0 1px #c9356e;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#c9356e}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#c9356e}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #d45d8b,0 0 2px 1px #c9356e}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#c9356e}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#055d9c !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#044b7a}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#044b7a}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#c9356e}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #055d9c}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#01283d}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#044b7a}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#01283d !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #dcdcde;border-top:1px solid #dcdcde}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#fff}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#2c3338}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#646970}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#bbe0fa}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(255, 255, 255, 0), white 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#646970}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#646970}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#1d2327}.admin-color-contrast #adminmenuback{outline:1px solid #dcdcde}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #c9356e;--wp-admin-theme-color-darker-10: #b53063;--wp-admin-theme-color-darker-20: #a12a58}.a8c-faux-inline-help{--color-primary: #0675c4;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#2c3338;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#c9356e;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#ab235a} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-dark/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-dark/colors.css
new file mode 100644
index 00000000..b5cd8645
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/classic-dark/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#c9356e;box-shadow:0 0 0 1px #c9356e}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#c9356e;color:#262a2e;box-shadow:inset 0 2px 5px -3px #c9356e}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#c9356e;border-color:#c9356e}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#a12a58;color:#a12a58}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#d45d8b;color:#782042;box-shadow:0 0 0 1px #d45d8b}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#c9356e;border-color:#c9356e;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#cd4177;border-color:#bd3267;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #c9356e}.wp-core-ui .button-primary:active{background:#b53063;border-color:#b53063;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#c9356e;color:#fff;border-color:#8c254d;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#c9356e}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#101517}.wp-core-ui .wp-ui-text-primary{color:#101517}.wp-core-ui .wp-ui-highlight{color:#00b9eb;background-color:#1a1e23}.wp-core-ui .wp-ui-text-highlight{color:#1a1e23}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#c9356e}.wp-core-ui .wp-ui-text-notification{color:#c9356e}.wp-core-ui .wp-ui-text-icon{color:#a2aab2}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #c9356e;color:#c9356e}.wrap .page-title-action:hover{color:#a12a58;border-color:#a12a58}.wrap .page-title-action:focus{border-color:#d45d8b;color:#782042;box-shadow:0 0 0 1px #d45d8b}.view-switch a.current:before{color:#23282d}.view-switch a:hover:before{color:#c9356e}#adminmenuback,#adminmenuwrap,#adminmenu{background:#23282d}#adminmenu a{color:#eee}#adminmenu div.wp-menu-image:before{color:#a2aab2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#00b9eb;background-color:#1a1e23}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#00b9eb}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#32373c}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#32373c}#adminmenu .wp-submenu .wp-submenu-head{color:#b4b9be}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#b4b9be}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#00b9eb}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#00b9eb}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#0073aa}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#c9356e}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#32373c}#collapse-button{color:#a2aab2}#collapse-button:hover,#collapse-button:focus{color:#00b9eb}#wpadminbar{color:#eee;background:#23282d}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#eee}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#a2aab2}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#00b9eb;background:#32373c}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#00b9eb}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#00b9eb}#wpadminbar .menupop .ab-sub-wrapper{background:#32373c}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#373a3d}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#b4b9be}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#a2aab2}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#00b9eb}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#00b9eb}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#a2aab2}#wpadminbar #adminbarsearch:before{color:#a2aab2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#eee;background:#333a41}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#c9356e}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#b53063}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#333a41;background-color:#333a41}#wpadminbar #wp-admin-bar-user-info .display-name{color:#eee}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#00b9eb}#wpadminbar #wp-admin-bar-user-info .username{color:#b4b9be}.wp-pointer .wp-pointer-content h3{background-color:#c9356e;border-color:#b53063}.wp-pointer .wp-pointer-content h3:before{color:#c9356e}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#c9356e}.media-item .bar,.media-progress-bar div{background-color:#c9356e}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #c9356e}.attachment.details .check{background-color:#c9356e;box-shadow:0 0 0 1px #fff,0 0 0 2px #c9356e}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #c9356e}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#c9356e}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#c9356e}.theme-section.current,.theme-filter.current{border-bottom-color:#23282d}body.more-filters-opened .more-filters{color:#eee;background-color:#23282d}body.more-filters-opened .more-filters:before{color:#eee}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#1a1e23;color:#00b9eb}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#00b9eb}.widgets-chooser li.widgets-chooser-selected{background-color:#1a1e23;color:#00b9eb}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#00b9eb}div#wp-responsive-toggle a:before{color:#a2aab2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#1a1e23}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#32373c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#a2aab2}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#c9356e}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#c9356e;border-left-color:#c9356e}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#c9356e;border-top-color:#c9356e}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#c9356e;border-left-color:#c9356e}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#c9356e}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #d45d8b,0 0 2px 1px #c9356e}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#c9356e}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#c9356e;color:#c9356e}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#c9356e}.control-panel-themes .customize-themes-section-title.selected{color:#c9356e}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#c9356e}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#c9356e;border-style:solid;box-shadow:0 0 0 1px #c9356e;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#c9356e}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#c9356e}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #d45d8b,0 0 2px 1px #c9356e}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#c9356e}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#101517 !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#333}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #101517}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#23282d}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#333}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#23282d !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #333;border-top:1px solid #333}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#23282d}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#eee}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#a2aab2}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#0073aa}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(35, 40, 45, 0), #23282d 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#a2aab2}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#a2aab2}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#00b9eb}.admin-color-contrast #adminmenuback{outline:1px solid #333}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #c9356e;--wp-admin-theme-color-darker-10: #b53063;--wp-admin-theme-color-darker-20: #a12a58}.a8c-faux-inline-help{--color-primary: #1d2327;--color-primary-dark: #3c434a;--color-primary-light: #8c8f94;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#c9356e;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#ab235a} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/coffee/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/coffee/colors.css
new file mode 100644
index 00000000..19f4f575
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/coffee/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#59524c;box-shadow:inset 0 -1px 0 #46403c}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#46403c;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#46403c !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#f6f7f7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#f6f7f7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #46403c;border-top:1px solid #46403c}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#c7a589}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#f6f7f7}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(89, 82, 76, 0), #59524c 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#c7a589;color:#fff}.a8c-faux-inline-help{--color-primary: #c7a589;--color-primary-dark: #704000;--color-primary-light: #e68b28;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#c7a589;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#8a4d00} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/contrast/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/contrast/colors.css
new file mode 100644
index 00000000..12f5c6a1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/contrast/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#fff}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#044b7a;box-shadow:0 0 0 1px #044b7a}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#044b7a;color:#262a2e;box-shadow:inset 0 2px 5px -3px #044b7a}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#044b7a;border-color:#044b7a}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#022d49;color:#022d49}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#0669ab;color:#010e17;box-shadow:0 0 0 1px #0669ab}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#044b7a;border-color:#044b7a;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#045489;border-color:#04426b;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #044b7a}.wp-core-ui .button-primary:active{background:#033c61;border-color:#033c61;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#044b7a;color:#fff;border-color:#021d30;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#044b7a}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#101517}.wp-core-ui .wp-ui-text-primary{color:#101517}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#50575e}.wp-core-ui .wp-ui-text-highlight{color:#50575e}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#f0c930}.wp-core-ui .wp-ui-text-notification{color:#f0c930}.wp-core-ui .wp-ui-text-icon{color:#1d2327}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #044b7a;color:#044b7a}.wrap .page-title-action:hover{color:#022d49;border-color:#022d49}.wrap .page-title-action:focus{border-color:#0669ab;color:#010e17;box-shadow:0 0 0 1px #0669ab}.view-switch a.current:before{color:#fff}.view-switch a:hover:before{color:#f0c930}#adminmenuback,#adminmenuwrap,#adminmenu{background:#fff}#adminmenu a{color:#1d2327}#adminmenu div.wp-menu-image:before{color:#1d2327}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#50575e}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#fff;border-bottom-color:#fff}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#1d2327}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#1d2327}#adminmenu .wp-submenu .wp-submenu-head{color:#c3c4c7}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#c3c4c7}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#f0c930}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#f0c930}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#fff}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#101517}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#f0c930}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#1d2327}#collapse-button{color:#1d2327}#collapse-button:hover,#collapse-button:focus{color:#f0c930}#wpadminbar{color:#1d2327;background:#fff}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#1d2327}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#1d2327}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#f0c930;background:#1d2327}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#f0c930}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#1d2327}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#fff}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#c3c4c7}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#1d2327}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#f0c930}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f0c930}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#1d2327}#wpadminbar #adminbarsearch:before{color:#1d2327}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#1d2327;background:#fff}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#f0c930}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#d8b52b}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#fff;background-color:#fff}#wpadminbar #wp-admin-bar-user-info .display-name{color:#1d2327}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f0c930}#wpadminbar #wp-admin-bar-user-info .username{color:#c3c4c7}.wp-pointer .wp-pointer-content h3{background-color:#044b7a;border-color:#033c61}.wp-pointer .wp-pointer-content h3:before{color:#044b7a}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#044b7a}.media-item .bar,.media-progress-bar div{background-color:#044b7a}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #044b7a}.attachment.details .check{background-color:#044b7a;box-shadow:0 0 0 1px #fff,0 0 0 2px #044b7a}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #044b7a}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#044b7a}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#044b7a}.theme-section.current,.theme-filter.current{border-bottom-color:#fff}body.more-filters-opened .more-filters{color:#1d2327;background-color:#fff}body.more-filters-opened .more-filters:before{color:#1d2327}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#50575e;color:#fff}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#50575e;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#1d2327}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#50575e}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#1d2327}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#1d2327}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#044b7a}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#044b7a;border-left-color:#044b7a}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#044b7a;border-top-color:#044b7a}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#044b7a;border-left-color:#044b7a}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#044b7a}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #0669ab,0 0 2px 1px #044b7a}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#044b7a}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#044b7a;color:#044b7a}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#044b7a}.control-panel-themes .customize-themes-section-title.selected{color:#044b7a}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#044b7a}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#044b7a;border-style:solid;box-shadow:0 0 0 1px #044b7a;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#044b7a}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#044b7a}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #0669ab,0 0 2px 1px #044b7a}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#044b7a}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#101517 !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#2c3338}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #101517}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#50575e}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#2c3338}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#50575e !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #dcdcde;border-top:1px solid #dcdcde}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#fff}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#1d2327}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#1d2327}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#101517}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(255, 255, 255, 0), white 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#1d2327}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#1d2327}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-contrast #adminmenuback{outline:1px solid #dcdcde}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #044b7a;--wp-admin-theme-color-darker-10: #033c61;--wp-admin-theme-color-darker-20: #022d49}.a8c-faux-inline-help{--color-primary: #2c3338;--color-primary-dark: #101517;--color-primary-light: #50575e;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#2c3338;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#044b7a;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ectoplasm/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ectoplasm/colors.css
new file mode 100644
index 00000000..69847097
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ectoplasm/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#523f6d;box-shadow:inset 0 -1px 0 #413256}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#413256;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#413256 !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #413256;border-top:1px solid #413256}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#a3b745}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#fff}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(82, 63, 109, 0), #523f6d 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#a3b745;color:#fff}.a8c-faux-inline-help{--color-primary: #a3b745;--color-primary-dark: #536700;--color-primary-light: #b5de00;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#a3b745;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#647d00} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/fresh/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/fresh/colors.css
new file mode 100644
index 00000000..aaba230a
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/fresh/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#101517;box-shadow:inset 0 -1px 0 #333}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#333;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#333 !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#a2aab2}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#a2aab2}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#00b9eb}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #333;border-top:1px solid #333}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#006fad}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#a2aab2}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(35, 40, 45, 0), #23282d 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#006fad;color:#fff}.a8c-faux-inline-help{--color-primary: #1d2327;--color-primary-dark: #3c434a;--color-primary-light: #8c8f94;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#c9356e;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#ab235a}#wpadminbar .ab-top-menu>#wp-admin-bar-blog.my-sites>.ab-item{background:#23282d}.site__info>.site__badge{background:#dcdcde;color:#1d2327} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/light/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/light/colors.css
new file mode 100644
index 00000000..d6f707d2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/light/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+#wpadminbar #wp-admin-bar-blog>a.ab-item:before,#wpadminbar #wp-admin-bar-newdash>a.ab-item:before,#wpadminbar #wp-admin-bar-notes .noticon-bell:before{filter:brightness(0.1)}.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#e5e5e5;box-shadow:inset 0 -1px 0 #fff}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#fff;color:#333 !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#333 !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#fff !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#1d2327}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#1d2327}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #fff;border-top:1px solid #fff}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#888}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#333}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#1d2327}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(229, 229, 229, 0), #e5e5e5 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#888;color:#333}.a8c-faux-inline-help{--color-primary: #04a4cc;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#04a4cc;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/midnight/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/midnight/colors.css
new file mode 100644
index 00000000..9f7e3ce7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/midnight/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#363b3f;box-shadow:inset 0 -1px 0 #26292c}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#26292c;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#26292c !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #26292c;border-top:1px solid #26292c}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#e14d43}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#fff}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(54, 59, 63, 0), #363b3f 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#e14d43;color:#fff}.a8c-faux-inline-help{--color-primary: #e14d43;--color-primary-dark: #8a2424;--color-primary-light: #f86368;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#e14d43;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#00417d} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/modern/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/modern/colors.css
new file mode 100644
index 00000000..9552f1d1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/modern/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#1e1e1e;box-shadow:inset 0 -1px 0 #0c0c0c}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#0c0c0c;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#0c0c0c !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#c3c4c7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#c3c4c7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #0c0c0c;border-top:1px solid #0c0c0c}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#3858e9}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#c3c4c7}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(30, 30, 30, 0), #1e1e1e 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#3858e9;color:#fff}.a8c-faux-inline-help{--color-primary: #3858e9;--color-primary-dark: #044b7a;--color-primary-light: #399ce3;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#3858e9;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#2145e6} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/nightfall/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/nightfall/colors.css
new file mode 100644
index 00000000..cfbbb8c6
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/nightfall/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#0675c4;box-shadow:0 0 0 1px #0675c4}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#0675c4;color:#262a2e;box-shadow:inset 0 2px 5px -3px #0675c4}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#0675c4;border-color:#0675c4}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#045793;color:#045793}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#0675c4;border-color:#0675c4;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#067ed3;border-color:#066cb5;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.wp-core-ui .button-primary:active{background:#0566ab;border-color:#0566ab;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#0675c4;color:#fff;border-color:#04497a;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#0675c4}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#001621}.wp-core-ui .wp-ui-text-primary{color:#001621}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#044b7a}.wp-core-ui .wp-ui-text-highlight{color:#044b7a}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#399ce3}.wp-core-ui .wp-ui-text-notification{color:#399ce3}.wp-core-ui .wp-ui-text-icon{color:#91caf2}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #0675c4;color:#0675c4}.wrap .page-title-action:hover{color:#045793;border-color:#045793}.wrap .page-title-action:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.view-switch a.current:before{color:#02395c}.view-switch a:hover:before{color:#399ce3}#adminmenuback,#adminmenuwrap,#adminmenu{background:#02395c}#adminmenu a{color:#bbe0fa}#adminmenu div.wp-menu-image:before{color:#91caf2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#044b7a}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#01283d}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#01283d}#adminmenu .wp-submenu .wp-submenu-head{color:#fff}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#fff}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#68b3e8}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#68b3e8}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#001621}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#399ce3}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#01283d}#collapse-button{color:#91caf2}#collapse-button:hover,#collapse-button:focus{color:#68b3e8}#wpadminbar{color:#bbe0fa;background:#02395c}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#bbe0fa}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#91caf2}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#68b3e8;background:#01283d}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#68b3e8}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#01283d}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#074e7a}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#fff}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#91caf2}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#68b3e8}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#68b3e8}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#91caf2}#wpadminbar #adminbarsearch:before{color:#91caf2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#bbe0fa;background:#034f7f}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#399ce3}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#338ccc}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#034f7f;background-color:#034f7f}#wpadminbar #wp-admin-bar-user-info .display-name{color:#bbe0fa}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#68b3e8}#wpadminbar #wp-admin-bar-user-info .username{color:#fff}.wp-pointer .wp-pointer-content h3{background-color:#0675c4;border-color:#0566ab}.wp-pointer .wp-pointer-content h3:before{color:#0675c4}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#0675c4}.media-item .bar,.media-progress-bar div{background-color:#0675c4}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #0675c4}.attachment.details .check{background-color:#0675c4;box-shadow:0 0 0 1px #fff,0 0 0 2px #0675c4}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#0675c4}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#0675c4}.theme-section.current,.theme-filter.current{border-bottom-color:#02395c}body.more-filters-opened .more-filters{color:#bbe0fa;background-color:#02395c}body.more-filters-opened .more-filters:before{color:#bbe0fa}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#044b7a;color:#fff}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#044b7a;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#91caf2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#044b7a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#01283d}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#91caf2}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#0675c4}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#0675c4;border-left-color:#0675c4}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#0675c4;border-top-color:#0675c4}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#0675c4;border-left-color:#0675c4}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#0675c4}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#0675c4}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#0675c4;color:#0675c4}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#0675c4}.control-panel-themes .customize-themes-section-title.selected{color:#0675c4}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#0675c4}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#0675c4;border-style:solid;box-shadow:0 0 0 1px #0675c4;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#0675c4}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#0675c4}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#0675c4}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#001621 !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#01283d}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #001621}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#02395c}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#01283d}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#02395c !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #01283d;border-top:1px solid #01283d}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#02395c}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#bbe0fa}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#68b3e8}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#001621}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(2, 57, 92, 0), #02395c 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#68b3e8}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#68b3e8}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-contrast #adminmenuback{outline:1px solid #01283d}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #0675c4;--wp-admin-theme-color-darker-10: #0566ab;--wp-admin-theme-color-darker-20: #045793}.a8c-faux-inline-help{--color-primary: #1d2327;--color-primary-dark: #3c434a;--color-primary-light: #8c8f94;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#0675c4;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ocean/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ocean/colors.css
new file mode 100644
index 00000000..9bf67ac1
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/ocean/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#738e96;box-shadow:inset 0 -1px 0 #627c83}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#627c83;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#627c83 !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #627c83;border-top:1px solid #627c83}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#9ebaa0}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#fff}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(115, 142, 150, 0), #738e96 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#9ebaa0;color:#fff}.a8c-faux-inline-help{--color-primary: #9ebaa0;--color-primary-dark: #005c44;--color-primary-light: #09b585;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#9ebaa0;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#007053} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/powder-snow/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/powder-snow/colors.css
new file mode 100644
index 00000000..193e9c9d
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/powder-snow/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#0675c4;box-shadow:0 0 0 1px #0675c4}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#0675c4;color:#262a2e;box-shadow:inset 0 2px 5px -3px #0675c4}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#0675c4;border-color:#0675c4}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#045793;color:#045793}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#0675c4;border-color:#0675c4;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#067ed3;border-color:#066cb5;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.wp-core-ui .button-primary:active{background:#0566ab;border-color:#0566ab;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#0675c4;color:#fff;border-color:#04497a;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#0675c4}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#101517}.wp-core-ui .wp-ui-text-primary{color:#101517}.wp-core-ui .wp-ui-highlight{color:#055d9c;background-color:#fff}.wp-core-ui .wp-ui-text-highlight{color:#fff}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#399ce3}.wp-core-ui .wp-ui-text-notification{color:#399ce3}.wp-core-ui .wp-ui-text-icon{color:#646970}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #0675c4;color:#0675c4}.wrap .page-title-action:hover{color:#045793;border-color:#045793}.wrap .page-title-action:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.view-switch a.current:before{color:#dcdcde}.view-switch a:hover:before{color:#399ce3}#adminmenuback,#adminmenuwrap,#adminmenu{background:#dcdcde}#adminmenu a{color:#2c3338}#adminmenu div.wp-menu-image:before{color:#646970}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#055d9c;background-color:#fff}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#055d9c}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#c3c4c7}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#c3c4c7}#adminmenu .wp-submenu .wp-submenu-head{color:#2c3338}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#2c3338}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#055d9c}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#2c3338}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#055d9c}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#50575e}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#399ce3}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#c3c4c7}#collapse-button{color:#646970}#collapse-button:hover,#collapse-button:focus{color:#055d9c}#wpadminbar{color:#2c3338;background:#dcdcde}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#2c3338}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#646970}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#055d9c;background:#c3c4c7}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#055d9c}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#055d9c}#wpadminbar .menupop .ab-sub-wrapper{background:#c3c4c7}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#efefef}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#2c3338}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#646970}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#055d9c}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#055d9c}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#646970}#wpadminbar #adminbarsearch:before{color:#646970}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#2c3338;background:#eeeeef}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#399ce3}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#338ccc}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#eeeeef;background-color:#eeeeef}#wpadminbar #wp-admin-bar-user-info .display-name{color:#2c3338}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#055d9c}#wpadminbar #wp-admin-bar-user-info .username{color:#2c3338}.wp-pointer .wp-pointer-content h3{background-color:#0675c4;border-color:#0566ab}.wp-pointer .wp-pointer-content h3:before{color:#0675c4}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#0675c4}.media-item .bar,.media-progress-bar div{background-color:#0675c4}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #0675c4}.attachment.details .check{background-color:#0675c4;box-shadow:0 0 0 1px #fff,0 0 0 2px #0675c4}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#0675c4}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#0675c4}.theme-section.current,.theme-filter.current{border-bottom-color:#dcdcde}body.more-filters-opened .more-filters{color:#2c3338;background-color:#dcdcde}body.more-filters-opened .more-filters:before{color:#2c3338}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#fff;color:#055d9c}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#055d9c}.widgets-chooser li.widgets-chooser-selected{background-color:#fff;color:#055d9c}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#055d9c}div#wp-responsive-toggle a:before{color:#646970}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#fff}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#c3c4c7}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#646970}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#0675c4}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#0675c4;border-left-color:#0675c4}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#0675c4;border-top-color:#0675c4}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#0675c4;border-left-color:#0675c4}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#0675c4}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#0675c4}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#0675c4;color:#0675c4}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#0675c4}.control-panel-themes .customize-themes-section-title.selected{color:#0675c4}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#0675c4}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#0675c4;border-style:solid;box-shadow:0 0 0 1px #0675c4;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#0675c4}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#0675c4}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#0675c4}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#101517 !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#2c3338}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#2c3338}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #101517}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#3c434a}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#2c3338}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#3c434a !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #c3c4c7;border-top:1px solid #c3c4c7}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#dcdcde}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#2c3338}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#50575e}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#50575e}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(220, 220, 222, 0), #dcdcde 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#50575e}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#50575e}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#055d9c}.admin-color-contrast #adminmenuback{outline:1px solid #c3c4c7}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #0675c4;--wp-admin-theme-color-darker-10: #0566ab;--wp-admin-theme-color-darker-20: #045793}.a8c-faux-inline-help{--color-primary: #1d2327;--color-primary-dark: #3c434a;--color-primary-light: #8c8f94;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#0675c4;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sakura/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sakura/colors.css
new file mode 100644
index 00000000..abd52ca3
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sakura/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#0675c4;box-shadow:0 0 0 1px #0675c4}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#0675c4;color:#262a2e;box-shadow:inset 0 2px 5px -3px #0675c4}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#0675c4;border-color:#0675c4}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#045793;color:#045793}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#0675c4;border-color:#0675c4;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#067ed3;border-color:#066cb5;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.wp-core-ui .button-primary:active{background:#0566ab;border-color:#0566ab;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#0675c4;color:#fff;border-color:#04497a;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#0675c4}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#005c44}.wp-core-ui .wp-ui-text-primary{color:#005c44}.wp-core-ui .wp-ui-highlight{color:#4f092a;background-color:#f7a8c3}.wp-core-ui .wp-ui-text-highlight{color:#f7a8c3}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#f283aa}.wp-core-ui .wp-ui-text-notification{color:#f283aa}.wp-core-ui .wp-ui-text-icon{color:#8c1749}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #0675c4;color:#0675c4}.wrap .page-title-action:hover{color:#045793;border-color:#045793}.wrap .page-title-action:focus{border-color:#0893f5;color:#033a61;box-shadow:0 0 0 1px #0893f5}.view-switch a.current:before{color:#f2ceda}.view-switch a:hover:before{color:#f283aa}#adminmenuback,#adminmenuwrap,#adminmenu{background:#f2ceda}#adminmenu a{color:#700f3b}#adminmenu div.wp-menu-image:before{color:#8c1749}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#4f092a;background-color:#f7a8c3}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#4f092a}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#4f092a}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#4f092a}#adminmenu .wp-submenu .wp-submenu-head{color:#f5e9ed}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#f5e9ed}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#68b3e8}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#f5e9ed}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#68b3e8}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#fff;background:#0675c4}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#fff}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#f283aa}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#4f092a}#collapse-button{color:#8c1749}#collapse-button:hover,#collapse-button:focus{color:#68b3e8}#wpadminbar{color:#700f3b;background:#f2ceda}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#700f3b}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#8c1749}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#68b3e8;background:#4f092a}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#68b3e8}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#4f092a}#wpadminbar .menupop .ab-sub-wrapper{background:#4f092a}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#f9ebf0}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#f5e9ed}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#8c1749}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#68b3e8}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#68b3e8}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#8c1749}#wpadminbar #adminbarsearch:before{color:#8c1749}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#700f3b;background:#f9eaef}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#f283aa}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#da7699}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#f9eaef;background-color:#f9eaef}#wpadminbar #wp-admin-bar-user-info .display-name{color:#700f3b}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#68b3e8}#wpadminbar #wp-admin-bar-user-info .username{color:#f5e9ed}.wp-pointer .wp-pointer-content h3{background-color:#0675c4;border-color:#0566ab}.wp-pointer .wp-pointer-content h3:before{color:#0675c4}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#0675c4}.media-item .bar,.media-progress-bar div{background-color:#0675c4}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #0675c4}.attachment.details .check{background-color:#0675c4;box-shadow:0 0 0 1px #fff,0 0 0 2px #0675c4}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #0675c4}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#0675c4}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#0675c4}.theme-section.current,.theme-filter.current{border-bottom-color:#f2ceda}body.more-filters-opened .more-filters{color:#700f3b;background-color:#f2ceda}body.more-filters-opened .more-filters:before{color:#700f3b}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#f7a8c3;color:#4f092a}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#4f092a}.widgets-chooser li.widgets-chooser-selected{background-color:#f7a8c3;color:#4f092a}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#4f092a}div#wp-responsive-toggle a:before{color:#8c1749}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#f7a8c3}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#4f092a}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#8c1749}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#0675c4}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#0675c4;border-left-color:#0675c4}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#0675c4;border-top-color:#0675c4}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#0675c4;border-left-color:#0675c4}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#0675c4}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#0675c4}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#0675c4;color:#0675c4}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#0675c4}.control-panel-themes .customize-themes-section-title.selected{color:#0675c4}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#0675c4}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#0675c4;border-style:solid;box-shadow:0 0 0 1px #0675c4;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#0675c4}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#0675c4}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #0893f5,0 0 2px 1px #0675c4}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#0675c4}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#005c44 !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#004533}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#f5e9ed}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #005c44}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#003024}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#004533}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#003024 !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #f7a8c3;border-top:1px solid #f7a8c3}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#f2ceda}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#700f3b}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#ab235a}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#0675c4}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(242, 206, 218, 0), #f2ceda 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#ab235a}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#ab235a}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#4f092a}.admin-color-contrast #adminmenuback{outline:1px solid #f7a8c3}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #0675c4;--wp-admin-theme-color-darker-10: #0566ab;--wp-admin-theme-color-darker-20: #045793}.a8c-faux-inline-help{--color-primary: #008763;--color-primary-dark: #005c44;--color-primary-light: #09b585;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#0675c4;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#055d9c} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunrise/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunrise/colors.css
new file mode 100644
index 00000000..af0a44ce
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunrise/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+.admin-color-blue #wpadminbar,.admin-color-coffee #wpadminbar,.admin-color-ectoplasm #wpadminbar,.admin-color-fresh #wpadminbar,.admin-color-light #wpadminbar,.admin-color-midnight #wpadminbar,.admin-color-modern #wpadminbar,.admin-color-ocean #wpadminbar,.admin-color-sunrise #wpadminbar{background:#cf4944;box-shadow:inset 0 -1px 0 #be3631}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-blog>.ab-item{background:#be3631;color:#fff !important}.admin-color-blue #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-coffee #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ectoplasm #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-fresh #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-light #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-midnight #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-modern #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-ocean #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item,.admin-color-sunrise #wpadminbar .ab-top-menu>#wp-admin-bar-newdash>.ab-item{color:#fff !important}.admin-color-blue #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-blue #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-coffee #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-coffee #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ectoplasm #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ectoplasm #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-fresh #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-fresh #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-light #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-light #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-midnight #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-midnight #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-modern #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-modern #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-ocean #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-ocean #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item,.admin-color-sunrise #wpadminbar:not(.mobile) .ab-top-menu>li:not(#wp-admin-bar-ab-new-post):hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunrise #wpadminbar #wp-admin-bar-notes.wpnt-show>.ab-item{background:#be3631 !important}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher{color:#f6f7f7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#f6f7f7}.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-coffee #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ectoplasm #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-fresh #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-light #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-midnight #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-modern #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-ocean #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunrise #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-blue #adminmenu li.toplevel_page_site-card,.admin-color-coffee #adminmenu li.toplevel_page_site-card,.admin-color-ectoplasm #adminmenu li.toplevel_page_site-card,.admin-color-fresh #adminmenu li.toplevel_page_site-card,.admin-color-light #adminmenu li.toplevel_page_site-card,.admin-color-midnight #adminmenu li.toplevel_page_site-card,.admin-color-modern #adminmenu li.toplevel_page_site-card,.admin-color-ocean #adminmenu li.toplevel_page_site-card,.admin-color-sunrise #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #be3631;border-top:1px solid #be3631}.admin-color-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-coffee #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ectoplasm #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-fresh #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-light #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-midnight #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-modern #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-ocean #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunrise #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#dd823b}.admin-color-blue .site__info .site__title,.admin-color-coffee .site__info .site__title,.admin-color-ectoplasm .site__info .site__title,.admin-color-fresh .site__info .site__title,.admin-color-light .site__info .site__title,.admin-color-midnight .site__info .site__title,.admin-color-modern .site__info .site__title,.admin-color-ocean .site__info .site__title,.admin-color-sunrise .site__info .site__title{color:#fff}.admin-color-blue .site__info .site__domain,.admin-color-coffee .site__info .site__domain,.admin-color-ectoplasm .site__info .site__domain,.admin-color-fresh .site__info .site__domain,.admin-color-light .site__info .site__domain,.admin-color-midnight .site__info .site__domain,.admin-color-modern .site__info .site__domain,.admin-color-ocean .site__info .site__domain,.admin-color-sunrise .site__info .site__domain{color:#f6f7f7}.admin-color-blue .site__info .site__title::after,.admin-color-blue .site__info .site__domain::after,.admin-color-coffee .site__info .site__title::after,.admin-color-coffee .site__info .site__domain::after,.admin-color-ectoplasm .site__info .site__title::after,.admin-color-ectoplasm .site__info .site__domain::after,.admin-color-fresh .site__info .site__title::after,.admin-color-fresh .site__info .site__domain::after,.admin-color-light .site__info .site__title::after,.admin-color-light .site__info .site__domain::after,.admin-color-midnight .site__info .site__title::after,.admin-color-midnight .site__info .site__domain::after,.admin-color-modern .site__info .site__title::after,.admin-color-modern .site__info .site__domain::after,.admin-color-ocean .site__info .site__title::after,.admin-color-ocean .site__info .site__domain::after,.admin-color-sunrise .site__info .site__title::after,.admin-color-sunrise .site__info .site__domain::after{background:linear-gradient(90deg, rgba(207, 73, 68, 0), #cf4944 90%)}.admin-color-blue .site__info>.site__badge,.admin-color-coffee .site__info>.site__badge,.admin-color-ectoplasm .site__info>.site__badge,.admin-color-fresh .site__info>.site__badge,.admin-color-light .site__info>.site__badge,.admin-color-midnight .site__info>.site__badge,.admin-color-modern .site__info>.site__badge,.admin-color-ocean .site__info>.site__badge,.admin-color-sunrise .site__info>.site__badge{background:#dd823b;color:#fff}.a8c-faux-inline-help{--color-primary: #dd823b;--color-primary-dark: #704000;--color-primary-light: #e68b28;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#dd823b;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#8a4d00} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunset/colors.css b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunset/colors.css
new file mode 100644
index 00000000..6850d1d8
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-color-schemes/colors/sunset/colors.css
@@ -0,0 +1,3 @@
+/* NOAUTORTL */
+/* Do not modify this file directly. It is compiled SASS code. */
+body{background:#f6f7f7}a{color:#0073aa}a:hover,a:active,a:focus{color:#0096dd}#post-body .misc-pub-post-status:before,#post-body #visibility:before,.curtime #timestamp:before,#post-body .misc-pub-revisions:before,span.wp-media-buttons-icon:before{color:currentColor}.wp-core-ui .button-link{color:#0073aa}.wp-core-ui .button-link:hover,.wp-core-ui .button-link:active,.wp-core-ui .button-link:focus{color:#0096dd}.media-modal .delete-attachment,.media-modal .trash-attachment,.media-modal .untrash-attachment,.wp-core-ui .button-link-delete{color:#d63638}.media-modal .delete-attachment:hover,.media-modal .trash-attachment:hover,.media-modal .untrash-attachment:hover,.media-modal .delete-attachment:focus,.media-modal .trash-attachment:focus,.media-modal .untrash-attachment:focus,.wp-core-ui .button-link-delete:hover,.wp-core-ui .button-link-delete:focus{color:#d63638}input[type=checkbox]:checked::before{content:url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%237e8993%27%2F%3E%3C%2Fsvg%3E")}input[type=radio]:checked::before{background:#7e8993}.wp-core-ui input[type=reset]:hover,.wp-core-ui input[type=reset]:active{color:#0096dd}input[type=text]:focus,input[type=password]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=checkbox]:focus,input[type=radio]:focus,select:focus,textarea:focus{border-color:#b26200;box-shadow:0 0 0 1px #b26200}.wp-core-ui .button{border-color:#7e8993;color:#32373c}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#717c87;color:#262a2e}.wp-core-ui .button.focus,.wp-core-ui .button:focus{border-color:#7e8993;color:#262a2e;box-shadow:0 0 0 1px #32373c}.wp-core-ui .button:active{border-color:#7e8993;color:#262a2e;box-shadow:none}.wp-core-ui .button.active,.wp-core-ui .button.active:focus,.wp-core-ui .button.active:hover{border-color:#b26200;color:#262a2e;box-shadow:inset 0 2px 5px -3px #b26200}.wp-core-ui .button.active:focus{box-shadow:0 0 0 1px #32373c}.wp-core-ui .button,.wp-core-ui .button-secondary{color:#b26200;border-color:#b26200}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover{border-color:#7f4600;color:#7f4600}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{border-color:#e57e00;color:#4c2a00;box-shadow:0 0 0 1px #e57e00}.wp-core-ui .button-primary:hover{color:#fff}.wp-core-ui .button-primary{background:#b26200;border-color:#b26200;color:#fff}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background:#c16a00;border-color:#a35a00;color:#fff}.wp-core-ui .button-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #b26200}.wp-core-ui .button-primary:active{background:#995400;border-color:#995400;color:#fff}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary.active:hover{background:#b26200;color:#fff;border-color:#663800;box-shadow:inset 0 2px 5px -3px #000}.wp-core-ui .button-group>.button.active{border-color:#b26200}.wp-core-ui .wp-ui-primary{color:#fff;background-color:#691c1c}.wp-core-ui .wp-ui-text-primary{color:#691c1c}.wp-core-ui .wp-ui-highlight{color:#fff;background-color:#691c1c}.wp-core-ui .wp-ui-text-highlight{color:#691c1c}.wp-core-ui .wp-ui-notification{color:#fff;background-color:#f283aa}.wp-core-ui .wp-ui-text-notification{color:#f283aa}.wp-core-ui .wp-ui-text-icon{color:#facfd2}.wrap .page-title-action,.wrap .page-title-action:active{border:1px solid #b26200;color:#b26200}.wrap .page-title-action:hover{color:#7f4600;border-color:#7f4600}.wrap .page-title-action:focus{border-color:#e57e00;color:#4c2a00;box-shadow:0 0 0 1px #e57e00}.view-switch a.current:before{color:#8a2424}.view-switch a:hover:before{color:#f283aa}#adminmenuback,#adminmenuwrap,#adminmenu{background:#8a2424}#adminmenu a{color:#fff}#adminmenu div.wp-menu-image:before{color:#facfd2}#adminmenu a:hover,#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{color:#fff;background-color:#691c1c}#adminmenu li.menu-top:hover div.wp-menu-image:before,#adminmenu li.opensub>a.menu-top div.wp-menu-image:before{color:#fff}.about-wrap .nav-tab-active,.nav-tab-active,.nav-tab-active:hover{background-color:#f6f7f7;border-bottom-color:#f6f7f7}#adminmenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#b32d2e}#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border-right-color:#b32d2e}#adminmenu .wp-submenu .wp-submenu-head{color:#fff}#adminmenu .wp-submenu a,#adminmenu .wp-has-current-submenu .wp-submenu a,.folded #adminmenu .wp-has-current-submenu .wp-submenu a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a{color:#fff}#adminmenu .wp-submenu a:focus,#adminmenu .wp-submenu a:hover,#adminmenu .wp-has-current-submenu .wp-submenu a:focus,#adminmenu .wp-has-current-submenu .wp-submenu a:hover,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:focus,.folded #adminmenu .wp-has-current-submenu .wp-submenu a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu a:hover{color:#f0c930}#adminmenu .wp-submenu li.current a,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a{color:#fff}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#f0c930}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{border-right-color:#f6f7f7}#adminmenu li.current a.menu-top,#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head,.folded #adminmenu li.current.menu-top{color:#4f3500;background:#f0c930}#adminmenu li.wp-has-current-submenu div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before,#adminmenu li:hover div.wp-menu-image:before,#adminmenu li a:focus div.wp-menu-image:before,#adminmenu li.opensub div.wp-menu-image:before{color:#4f3500}#adminmenu .awaiting-mod,#adminmenu .update-plugins{color:#fff;background:#f283aa}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins,#adminmenu li:hover a .awaiting-mod,#adminmenu li.menu-top:hover>a .update-plugins{color:#fff;background:#b32d2e}#collapse-button{color:#facfd2}#collapse-button:hover,#collapse-button:focus{color:#f0c930}#wpadminbar{color:#fff;background:#8a2424}#wpadminbar .ab-item,#wpadminbar a.ab-item,#wpadminbar>#wp-toolbar span.ab-label,#wpadminbar>#wp-toolbar span.noticon{color:#fff}#wpadminbar .ab-icon,#wpadminbar .ab-icon:before,#wpadminbar .ab-item:before,#wpadminbar .ab-item:after{color:#facfd2}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{color:#f0c930;background:#b32d2e}#wpadminbar:not(.mobile)>#wp-toolbar li:hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar li.hover span.ab-label,#wpadminbar:not(.mobile)>#wp-toolbar a:focus span.ab-label{color:#f0c930}#wpadminbar:not(.mobile) li:hover .ab-icon:before,#wpadminbar:not(.mobile) li:hover .ab-item:before,#wpadminbar:not(.mobile) li:hover .ab-item:after,#wpadminbar:not(.mobile) li:hover #adminbarsearch:before{color:#fff}#wpadminbar .menupop .ab-sub-wrapper{background:#b32d2e}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary,#wpadminbar .quicklinks .menupop ul.ab-sub-secondary .ab-submenu{background:#9f3333}#wpadminbar .ab-submenu .ab-item,#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#fff}#wpadminbar .quicklinks li .blavatar,#wpadminbar .menupop .menupop>.ab-item:before{color:#facfd2}#wpadminbar .quicklinks .menupop ul li a:hover,#wpadminbar .quicklinks .menupop ul li a:focus,#wpadminbar .quicklinks .menupop ul li a:hover strong,#wpadminbar .quicklinks .menupop ul li a:focus strong,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a,#wpadminbar .quicklinks .menupop.hover ul li a:hover,#wpadminbar .quicklinks .menupop.hover ul li a:focus,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:hover,#wpadminbar.nojs .quicklinks .menupop:hover ul li a:focus,#wpadminbar li:hover .ab-icon:before,#wpadminbar li:hover .ab-item:before,#wpadminbar li a:focus .ab-icon:before,#wpadminbar li .ab-item:focus:before,#wpadminbar li .ab-item:focus .ab-icon:before,#wpadminbar li.hover .ab-icon:before,#wpadminbar li.hover .ab-item:before,#wpadminbar li:hover #adminbarsearch:before,#wpadminbar li #adminbarsearch.adminbar-focused:before{color:#f0c930}#wpadminbar .quicklinks li a:hover .blavatar,#wpadminbar .quicklinks li a:focus .blavatar,#wpadminbar .quicklinks .ab-sub-wrapper .menupop.hover>a .blavatar,#wpadminbar .menupop .menupop>.ab-item:hover:before,#wpadminbar.mobile .quicklinks .ab-icon:before,#wpadminbar.mobile .quicklinks .ab-item:before{color:#f0c930}#wpadminbar.mobile .quicklinks .hover .ab-icon:before,#wpadminbar.mobile .quicklinks .hover .ab-item:before{color:#facfd2}#wpadminbar #adminbarsearch:before{color:#facfd2}#wpadminbar>#wp-toolbar>#wp-admin-bar-top-secondary>#wp-admin-bar-search #adminbarsearch input.adminbar-input:focus{color:#fff;background:#a62b2b}#wpadminbar #wp-admin-bar-recovery-mode{color:#fff;background-color:#f283aa}#wpadminbar #wp-admin-bar-recovery-mode .ab-item,#wpadminbar #wp-admin-bar-recovery-mode a.ab-item{color:#fff}#wpadminbar .ab-top-menu>#wp-admin-bar-recovery-mode.hover>.ab-item,#wpadminbar.nojq .quicklinks .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode:hover>.ab-item,#wpadminbar:not(.mobile) .ab-top-menu>#wp-admin-bar-recovery-mode>.ab-item:focus{color:#fff;background-color:#da7699}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{border-color:#a62b2b;background-color:#a62b2b}#wpadminbar #wp-admin-bar-user-info .display-name{color:#fff}#wpadminbar #wp-admin-bar-user-info a:hover .display-name{color:#f0c930}#wpadminbar #wp-admin-bar-user-info .username{color:#fff}.wp-pointer .wp-pointer-content h3{background-color:#b26200;border-color:#995400}.wp-pointer .wp-pointer-content h3:before{color:#b26200}.wp-pointer.wp-pointer-top .wp-pointer-arrow,.wp-pointer.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow,.wp-pointer.wp-pointer-undefined .wp-pointer-arrow-inner{border-bottom-color:#b26200}.media-item .bar,.media-progress-bar div{background-color:#b26200}.details.attachment{box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 7px #b26200}.attachment.details .check{background-color:#b26200;box-shadow:0 0 0 1px #fff,0 0 0 2px #b26200}.media-selection .attachment.selection.details .thumbnail{box-shadow:0 0 0 1px #fff,0 0 0 3px #b26200}.theme-browser .theme.active .theme-name,.theme-browser .theme.add-new-theme a:hover:after,.theme-browser .theme.add-new-theme a:focus:after{background:#b26200}.theme-browser .theme.add-new-theme a:hover span:after,.theme-browser .theme.add-new-theme a:focus span:after{color:#b26200}.theme-section.current,.theme-filter.current{border-bottom-color:#8a2424}body.more-filters-opened .more-filters{color:#fff;background-color:#8a2424}body.more-filters-opened .more-filters:before{color:#fff}body.more-filters-opened .more-filters:hover,body.more-filters-opened .more-filters:focus{background-color:#691c1c;color:#fff}body.more-filters-opened .more-filters:hover:before,body.more-filters-opened .more-filters:focus:before{color:#fff}.widgets-chooser li.widgets-chooser-selected{background-color:#691c1c;color:#fff}.widgets-chooser li.widgets-chooser-selected:before,.widgets-chooser li.widgets-chooser-selected:focus:before{color:#fff}div#wp-responsive-toggle a:before{color:#facfd2}.wp-responsive-open div#wp-responsive-toggle a{border-color:transparent;background:#691c1c}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle a{background:#b32d2e}.wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before{color:#facfd2}.mce-container.mce-menu .mce-menu-item:hover,.mce-container.mce-menu .mce-menu-item.mce-selected,.mce-container.mce-menu .mce-menu-item:focus,.mce-container.mce-menu .mce-menu-item-normal.mce-active,.mce-container.mce-menu .mce-menu-item-preview.mce-active{background:#b26200}#customize-controls .control-section:hover>.accordion-section-title,#customize-controls .control-section .accordion-section-title:hover,#customize-controls .control-section.open .accordion-section-title,#customize-controls .control-section .accordion-section-title:focus{color:#b26200;border-left-color:#b26200}.customize-controls-close:focus,.customize-controls-close:hover,.customize-controls-preview-toggle:focus,.customize-controls-preview-toggle:hover{color:#b26200;border-top-color:#b26200}.customize-panel-back:hover,.customize-panel-back:focus,.customize-section-back:hover,.customize-section-back:focus{color:#b26200;border-left-color:#b26200}.customize-screen-options-toggle:hover,.customize-screen-options-toggle:active,.customize-screen-options-toggle:focus,.active-menu-screen-options .customize-screen-options-toggle,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:hover,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:active,#customize-controls .customize-info.open.active-menu-screen-options .customize-help-toggle:focus{color:#b26200}.wp-customizer .menu-item .submitbox .submitdelete:focus,.customize-screen-options-toggle:focus:before,#customize-controls .customize-info .customize-help-toggle:focus:before,.wp-customizer button:focus .toggle-indicator:before,.menu-delete:focus,.menu-item-bar .item-delete:focus:before,#available-menu-items .item-add:focus:before{box-shadow:0 0 0 1px #e57e00,0 0 2px 1px #b26200}#customize-controls .customize-info.open .customize-help-toggle,#customize-controls .customize-info .customize-help-toggle:focus,#customize-controls .customize-info .customize-help-toggle:hover{color:#b26200}.control-panel-themes .customize-themes-section-title:focus,.control-panel-themes .customize-themes-section-title:hover{border-left-color:#b26200;color:#b26200}.control-panel-themes .theme-section .customize-themes-section-title.selected:after{background:#b26200}.control-panel-themes .customize-themes-section-title.selected{color:#b26200}#customize-theme-controls .control-section:hover>.accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:hover:after,#customize-theme-controls .control-section.open .accordion-section-title:after,#customize-theme-controls .control-section .accordion-section-title:focus:after,#customize-outer-theme-controls .control-section:hover>.accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:hover:after,#customize-outer-theme-controls .control-section.open .accordion-section-title:after,#customize-outer-theme-controls .control-section .accordion-section-title:focus:after{color:#b26200}.customize-control .attachment-media-view .button-add-media:focus{background-color:#fbfbfc;border-color:#b26200;border-style:solid;box-shadow:0 0 0 1px #b26200;outline:2px solid transparent}.wp-full-overlay-footer .devices button:focus,.wp-full-overlay-footer .devices button.active:hover{border-bottom-color:#b26200}.wp-core-ui .wp-full-overlay .collapse-sidebar:hover,.wp-core-ui .wp-full-overlay .collapse-sidebar:focus{color:#b26200}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-arrow,.wp-full-overlay .collapse-sidebar:focus .collapse-sidebar-arrow{box-shadow:0 0 0 1px #e57e00,0 0 2px 1px #b26200}.wp-full-overlay-footer .devices button:hover:before,.wp-full-overlay-footer .devices button:focus:before{color:#b26200}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{background:#691c1c !important}.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-aquatic #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-aquatic #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-blue #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-blue #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-bright #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-bright #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-classic-dark #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-classic-dark #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-contrast #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-contrast #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-nightfall #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-nightfall #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-powder-snow #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-powder-snow #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sakura #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sakura #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item,.admin-color-sunset #wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,.admin-color-sunset #wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#451313}#adminmenu li.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu .wp-has-current-submenu div.wp-menu-image:before,#adminmenu .current div.wp-menu-image:before,#adminmenu a.wp-has-current-submenu:hover div.wp-menu-image:before,#adminmenu a.current:hover div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu a:focus div.wp-menu-image:before,#adminmenu li.wp-has-current-submenu.opensub div.wp-menu-image:before{color:#4f3500}#adminmenu .wp-submenu li.current a:hover,#adminmenu .wp-submenu li.current a:focus,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:hover,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu li.current a:focus,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:hover,#adminmenu .wp-has-current-submenu.opensub .wp-submenu li.current a:focus{color:#fff}.admin-color-aquatic #wpadminbar,.admin-color-classic-blue #wpadminbar,.admin-color-classic-bright #wpadminbar,.admin-color-classic-dark #wpadminbar,.admin-color-contrast #wpadminbar,.admin-color-nightfall #wpadminbar,.admin-color-powder-snow #wpadminbar,.admin-color-sakura #wpadminbar,.admin-color-sunset #wpadminbar{box-shadow:inset 0 -1px 0 #691c1c}.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-aquatic #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.my-sites>.ab-item:hover{background:#240a0a}.admin-color-aquatic #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-blue #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-bright #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-classic-dark #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-contrast #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-nightfall #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-powder-snow #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sakura #wpadminbar #wp-admin-bar-notes.hover>.ab-item,.admin-color-sunset #wpadminbar #wp-admin-bar-notes.hover>.ab-item{background:#451313}.admin-color-aquatic #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-blue #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-bright #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-classic-dark #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-contrast #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-nightfall #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-powder-snow #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sakura #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item,.admin-color-sunset #wpadminbar .ab-top-menu>li.wpnt-show>.ab-item{background:#240a0a !important}.admin-color-aquatic #adminmenu li.toplevel_page_site-card,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card,.admin-color-contrast #adminmenu li.toplevel_page_site-card,.admin-color-nightfall #adminmenu li.toplevel_page_site-card,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card,.admin-color-sakura #adminmenu li.toplevel_page_site-card,.admin-color-sunset #adminmenu li.toplevel_page_site-card{border-bottom:1px solid #691c1c;border-top:1px solid #691c1c}.admin-color-aquatic #adminmenu li.toplevel_page_site-card:hover,.admin-color-aquatic #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-blue #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-bright #adminmenu li.toplevel_page_site-card a:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card:hover,.admin-color-classic-dark #adminmenu li.toplevel_page_site-card a:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card:hover,.admin-color-contrast #adminmenu li.toplevel_page_site-card a:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card:hover,.admin-color-nightfall #adminmenu li.toplevel_page_site-card a:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card:hover,.admin-color-powder-snow #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card:hover,.admin-color-sakura #adminmenu li.toplevel_page_site-card a:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card:hover,.admin-color-sunset #adminmenu li.toplevel_page_site-card a:hover{background:#8a2424}.admin-color-aquatic .site__info .site__title,.admin-color-classic-blue .site__info .site__title,.admin-color-classic-bright .site__info .site__title,.admin-color-classic-dark .site__info .site__title,.admin-color-contrast .site__info .site__title,.admin-color-nightfall .site__info .site__title,.admin-color-powder-snow .site__info .site__title,.admin-color-sakura .site__info .site__title,.admin-color-sunset .site__info .site__title{color:#fff}.admin-color-aquatic .site__info .site__domain,.admin-color-classic-blue .site__info .site__domain,.admin-color-classic-bright .site__info .site__domain,.admin-color-classic-dark .site__info .site__domain,.admin-color-contrast .site__info .site__domain,.admin-color-nightfall .site__info .site__domain,.admin-color-powder-snow .site__info .site__domain,.admin-color-sakura .site__info .site__domain,.admin-color-sunset .site__info .site__domain{color:#ffabaf}.admin-color-aquatic #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-aquatic #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-blue #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-bright #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-classic-dark #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-contrast #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-nightfall #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-powder-snow #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sakura #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card:hover div.wp-menu-image,.admin-color-sunset #adminmenu .toplevel_page_site-card a:focus div.wp-menu-image{background-color:#f0c930}.admin-color-aquatic .site__info .site__title::after,.admin-color-aquatic .site__info .site__domain::after,.admin-color-classic-blue .site__info .site__title::after,.admin-color-classic-blue .site__info .site__domain::after,.admin-color-classic-bright .site__info .site__title::after,.admin-color-classic-bright .site__info .site__domain::after,.admin-color-classic-dark .site__info .site__title::after,.admin-color-classic-dark .site__info .site__domain::after,.admin-color-contrast .site__info .site__title::after,.admin-color-contrast .site__info .site__domain::after,.admin-color-nightfall .site__info .site__title::after,.admin-color-nightfall .site__info .site__domain::after,.admin-color-powder-snow .site__info .site__title::after,.admin-color-powder-snow .site__info .site__domain::after,.admin-color-sakura .site__info .site__title::after,.admin-color-sakura .site__info .site__domain::after,.admin-color-sunset .site__info .site__title::after,.admin-color-sunset .site__info .site__domain::after{background:linear-gradient(90deg, rgba(138, 36, 36, 0), #8a2424 90%)}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher{color:#ffabaf}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher div.wp-menu-image:before{color:#ffabaf}.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-aquatic #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-blue #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-bright #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-classic-dark #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-contrast #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-nightfall #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-powder-snow #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sakura #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover,.admin-color-sunset #adminmenuwrap>#adminmenu .site-switcher:hover div.wp-menu-image:before{color:#fff}.admin-color-contrast #adminmenuback{outline:1px solid #691c1c}.admin-color-contrast.folded #adminmenu .toplevel_page_site-notices .wp-menu-image,.admin-color-classic-bright.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{background-color:#2c3338 !important}body{--wp-admin-theme-color: #b26200;--wp-admin-theme-color-darker-10: #995400;--wp-admin-theme-color-darker-20: #7f4600}.a8c-faux-inline-help{--color-primary: #d63638;--color-primary-dark: #8a2424;--color-primary-light: #f86368;--color-surface: #fff;--color-neutral-100-rgb: 16, 21, 23}#adminmenu .toplevel_page_site-notices .upsell_banner{background-color:#fff;color:#000}#adminmenu .toplevel_page_site-notices .upsell_banner .button{background-color:#b26200;color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner .button:hover{background-color:#8a4d00} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.asset.php b/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.asset.php
new file mode 100644
index 00000000..2f70567e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '072d2d4c1364eba13c61ab8874d7daa4'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.js b/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.js
new file mode 100644
index 00000000..36a3b365
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/admin-menu/admin-menu.min.js
@@ -0,0 +1 @@
+!function(){function e(){var e,n=document.querySelector("#wpadminbar"),a=document.querySelector("#wpwrap"),o=document.querySelector("#adminmenu");if(n){(e=document.querySelector(".wp-submenu .current > a"))&&e.focus(),c("false");var r=n.querySelector("#wp-admin-bar-blog");if(r&&r.addEventListener("click",(function(e){e.preventDefault();for(var t=n.querySelectorAll(".hover"),o=0;o<t.length;o++)t[o].classList.remove("hover");if(a.classList.toggle("wp-responsive-open"),a.classList.contains("wp-responsive-open")){c("true");var r=document.querySelector("#adminmenu a");r&&r.focus()}else c("false")})),o){var s=o.querySelector("#collapse-button");s&&s.addEventListener("click",(function(e){setTimeout((function(){var n;n=e.target.parentNode.ariaExpanded,t("POST",ajaxurl,"application/x-www-form-urlencoded; charset=UTF-8","action=sidebar_state&expanded="+n)}),50)}));const e=o.querySelector(".dismissible-card__close-icon");e&&e.addEventListener("click",(function(n){n.preventDefault();const a=document.getElementById("toplevel_page_site-notices");a&&(a.style.display="none"),t("POST",ajaxurl,"application/x-www-form-urlencoded; charset=UTF-8","id="+encodeURIComponent(e.dataset.feature_id)+"&feature_class="+encodeURIComponent(e.dataset.feature_class)+"&action=jitm_dismiss&_ajax_nonce="+jetpackAdminMenu.jitmDismissNonce)}))}}function c(e){for(var t=n.querySelectorAll("#wp-admin-bar-blog a"),a=0;a<t.length;a++)t[a].setAttribute("aria-expanded",e)}}function t(e,t,n,a){var o=new XMLHttpRequest;o.open(e,t,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),n&&o.setRequestHeader("Content-Type",n),o.withCredentials=!0,o.send(a)}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.asset.php b/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.asset.php
new file mode 100644
index 00000000..500fb7c9
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '0321194e9c2e25dfb0e409c5097e2801'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.js b/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.js
new file mode 100644
index 00000000..f150fed4
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/masterbar/tracks-events.min.js
@@ -0,0 +1 @@
+!function(){"use strict";var e="masterbar_click",a={"wp-admin-bar-blog":"my_sites","wp-admin-bar-newdash":"reader","wp-admin-bar-ab-new-post":"write_button","wp-admin-bar-my-account":"my_account","wp-admin-bar-notes":"notifications","wp-admin-bar-switch-site":"my_sites_switch_site","wp-admin-bar-blog-info":"my_sites_blog_info","wp-admin-bar-site-view":"my_sites_view_site","wp-admin-bar-my-home":"my_sites_my_home","wp-admin-bar-blog-stats":"my_sites_blog_stats","wp-admin-bar-activity":"my_sites_activity","wp-admin-bar-plan":"my_sites_plan","wp-admin-bar-plan-badge":"my_sites_plan_badge","wp-admin-bar-edit-page":"my_sites_manage_site_pages","wp-admin-bar-new-page-badge":"my_sites_manage_add_page","wp-admin-bar-edit-post":"my_sites_manage_blog_posts","wp-admin-bar-new-post-badge":"my_sites_manage_add_new_post","wp-admin-bar-edit-attachment":"my_sites_manage_media","wp-admin-bar-new-attachment-badge":"my_sites_manage_add_media","wp-admin-bar-comments":"my_sites_manage_comments","wp-admin-bar-edit-testimonial":"my_sites_manage_testimonials","wp-admin-bar-new-testimonial":"my_sites_manage_add_testimonial","wp-admin-bar-edit-portfolio":"my_sites_manage_portfolio","wp-admin-bar-new-portfolio":"my_sites_manage_add_portfolio","wp-admin-bar-themes":"my_sites_personalize_themes","wp-admin-bar-cmz":"my_sites_personalize_themes_customize","wp-admin-bar-sharing":"my_sites_configure_sharing","wp-admin-bar-people":"my_sites_configure_people","wp-admin-bar-people-add":"my_sites_configure_people_add_button","wp-admin-bar-plugins":"my_sites_configure_plugins","wp-admin-bar-plugins-add":"my_sites_configure_manage_plugins","wp-admin-bar-blog-settings":"my_sites_configure_settings","wp-admin-bar-followed-sites":"reader_followed_sites","wp-admin-bar-reader-followed-sites-manage":"reader_manage_followed_sites","wp-admin-bar-discover-discover":"reader_discover","wp-admin-bar-discover-search":"reader_search","wp-admin-bar-my-activity-my-likes":"reader_my_likes","wp-admin-bar-user-info":"my_account_user_name","wp-admin-bar-my-profile":"my_account_profile_my_profile","wp-admin-bar-account-settings":"my_account_profile_account_settings","wp-admin-bar-billing":"my_account_profile_manage_purchases","wp-admin-bar-security":"my_account_profile_security","wp-admin-bar-notifications":"my_account_profile_notifications","wp-admin-bar-get-apps":"my_account_special_get_apps","wp-admin-bar-next-steps":"my_account_special_next_steps","wp-admin-bar-help":"my_account_special_help"},t={openSite:function(e){return{clicked:"masterbar_notifications_panel_site",site_id:e.siteId}},openPost:function(e){return{clicked:"masterbar_notifications_panel_post",site_id:e.siteId,post_id:e.postId}},openComment:function(e){return{clicked:"masterbar_notifications_panel_comment",site_id:e.siteId,post_id:e.postId,comment_id:e.commentId}}};function i(e,a){if(e){if(!Element.prototype.matches&&!Element.prototype.msMatchesSelector)throw new Error("Unsupported browser");return Element.prototype.matches?e.matches(a):e.msMatchesSelector(a)}}function n(e,a){if(e){if(Element.prototype.closest)return e.closest(a);do{if(i(e,a))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}}function s(){for(var t=document.querySelectorAll(".mb-trackable .ab-item:not(div),#wp-admin-bar-notes .ab-item,#wp-admin-bar-user-info .ab-item,.mb-trackable .ab-secondary"),s=0;s<t.length;s++){var r=t[s],o=function(t){if(window.jpTracksAJAX&&"function"==typeof window.jpTracksAJAX.record_ajax_event){var s=t.target,r=n(s,"li");if(i(s,"a")||(s=n(s,"a")),r&&s){var o=s.getAttribute("ID")||r.getAttribute("ID");if(Object.prototype.hasOwnProperty.call(a,o)){var m={clicked:a[o]};r.classList.contains("menupop")?window.jpTracksAJAX.record_ajax_event(e,"click",m):(t.preventDefault(),window.jpTracksAJAX.record_ajax_event(e,"click",m).always((function(){window.location=s.getAttribute("href")})))}}}};r.addEventListener("click",o),r.addEventListener("touchstart",o)}}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",s):s(),window.addEventListener("message",(function(a){if(window.jpTracksAJAX&&"function"==typeof window.jpTracksAJAX.record_ajax_event&&"https://widgets.wp.com"===a.origin){var i="string"==typeof a.data?function(e,a){try{return JSON.parse(e)}catch(e){return a}}(a.data,{}):a.data;if("notesIframeMessage"===i.type){var n=t[i.action];n&&window.jpTracksAJAX.record_ajax_event(e,"click",n(i))}}}),!1)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.asset.php b/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.asset.php
new file mode 100644
index 00000000..62e74bcf
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '39d5ea3429934bf20e77333f4fab73a2'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.js b/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.js
new file mode 100644
index 00000000..1e9e7589
--- /dev/null
+++ b/plugins/jetpack/_inc/build/masterbar/nudges/additional-css/js/additional-css.min.js
@@ -0,0 +1 @@
+!function(t){"use strict";var i={init:function(){this.clickifyNavigateToButtons()},clickifyNavigateToButtons:function(){var t=document.querySelector(".navigate-to");t&&t.addEventListener("click",(function(){var t=this.getAttribute("data-navigate-to-page");t&&(window._tkq=window._tkq||[],window._tkq.push(["recordEvent","calypso_upgrade_nudge_cta_click",{cta_name:"customizer_css"}]),window.location.search.match(/calypso=true/)&&window.parent.location!==window.location?window.top.postMessage(JSON.stringify({calypso:!0,command:"navigateTo",destination:t}),"*"):window.location="https://wordpress.com"+t)}))}};t(document).ready((function(){i.init()}))}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/photon/photon.min.asset.php b/plugins/jetpack/_inc/build/photon/photon.min.asset.php
new file mode 100644
index 00000000..99d2d8ce
--- /dev/null
+++ b/plugins/jetpack/_inc/build/photon/photon.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'ee19613aae705fc5a545a91e6f82abbe'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/photon/photon.min.js b/plugins/jetpack/_inc/build/photon/photon.min.js
index 1a67e03b..a595bc5e 100644
--- a/plugins/jetpack/_inc/build/photon/photon.min.js
+++ b/plugins/jetpack/_inc/build/photon/photon.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(){function t(){if(this.complete){var e=this.getAttribute("data-lazy-src");if(e&&this.src!==e)this.addEventListener("onload",t);else{var d=this.width,n=this.height;d&&d>0&&n&&n>0&&(this.setAttribute("width",d),this.setAttribute("height",n),i(this))}}else this.addEventListener("onload",t)}var e=function(){for(var e=document.querySelectorAll("img[data-recalc-dims]"),i=0;i<e.length;i++)t.call(e[i])},i=function(t){t.removeAttribute("data-recalc-dims"),t.removeAttribute("scale")};"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()),document.body.addEventListener("post-load",e)}(); \ No newline at end of file
+!function(){function t(){if(this.complete){var e=this.getAttribute("data-lazy-src");if(e&&this.src!==e)this.addEventListener("onload",t);else{var d=this.width,n=this.height;d&&d>0&&n&&n>0&&(this.setAttribute("width",d),this.setAttribute("height",n),i(this))}}else this.addEventListener("onload",t)}var e=function(){for(var e=document.querySelectorAll("img[data-recalc-dims]"),i=0;i<e.length;i++)t.call(e[i])},i=function(t){t.removeAttribute("data-recalc-dims"),t.removeAttribute("scale")};"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()),document.body.addEventListener("is.post-load",e)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/plugins-page.asset.php b/plugins/jetpack/_inc/build/plugins-page.asset.php
new file mode 100644
index 00000000..11206131
--- /dev/null
+++ b/plugins/jetpack/_inc/build/plugins-page.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '0d5590335d6ad8f9d367b50a69e95805'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/plugins-page.css b/plugins/jetpack/_inc/build/plugins-page.css
new file mode 100644
index 00000000..85f42fd4
--- /dev/null
+++ b/plugins/jetpack/_inc/build/plugins-page.css
@@ -0,0 +1 @@
+.jetpack-benefits__general-benefits-section{margin:0 auto;max-width:800px;width:100%}.jetpack-benefits__general-benefits-list{font-size:1rem;list-style:disc;padding-left:1.25rem;text-align:left;width:100%}.jp-connection__disconnect-card{background-color:#fff;border:none;border-radius:3px;box-shadow:0 0 15px #e2e2df;margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:left;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-right:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:right}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-right:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:1rem;margin-right:0}}.jp-connection__disconnect-dialog h1{font-size:24px;font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:24px;font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:16px;margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:#000;text-decoration-thickness:2px}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:#000}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:#f9f9f6;border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:#fff;border-top:1px solid #dcdcde;bottom:0;padding:2rem 0;position:-webkit-sticky;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(180deg,transparent,#f9f9f6);bottom:calc(100% + 1px);content:"";display:block;height:80px;left:0;position:absolute;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:#000!important;margin-right:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:#d63639!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:#000!important}.jp-connection__disconnect-dialog__button-wrap{text-align:left}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:#d63639}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:36px}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-left:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px #dcdcde;display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:#dcdcde;background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;left:24px;position:absolute;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:#d63639;border-radius:50px;height:80px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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 #069e08;border-radius:4px;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:2px}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(8px)}.jp-cut:after{color:#069e08;content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px #e2e2df;margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:left;width:800px}.jp-connect__disconnect-survey-card--selected{background:#e2e2df;border-color:#000}.jp-connect__disconnect-survey-card:after{border-right:2px solid #000;border-top:2px solid #000;content:"";display:block;height:5px;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%) rotate(45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:#2c3338}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:#2c3338;flex-grow:1;max-width:calc(100% - 40px);padding-right:40px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/plugins-page.js b/plugins/jetpack/_inc/build/plugins-page.js
new file mode 100644
index 00000000..03e18fcf
--- /dev/null
+++ b/plugins/jetpack/_inc/build/plugins-page.js
@@ -0,0 +1,2 @@
+/*! For license information please see plugins-page.js.LICENSE.txt */
+!function(){var e={90605:function(e,t,n){"use strict";var r=n(5806),o=n(55246);function i(e){return i="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},i(e)}var c,a,s=n(27452).codes,u=s.ERR_AMBIGUOUS_ARGUMENT,l=s.ERR_INVALID_ARG_TYPE,f=s.ERR_INVALID_ARG_VALUE,p=s.ERR_INVALID_RETURN_VALUE,d=s.ERR_MISSING_ARGS,g=n(71228),y=n(23333).inspect,h=n(23333).types,m=h.isPromise,v=h.isRegExp,E=Object.assign?Object.assign:n(45685).assign,_=Object.is?Object.is:n(88706);new Map;function b(){var e=n(81562);c=e.isDeepEqual,a=e.isDeepStrictEqual}var S=!1,w=e.exports=A,C={};function T(e){if(e.message instanceof Error)throw e.message;throw new g(e)}function O(e,t,n,r){if(!n){var o=!1;if(0===t)o=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var i=new g({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw i.generatedMessage=o,i}}function A(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];O.apply(void 0,[A,t.length].concat(t))}w.fail=function e(t,n,i,c,a){var s,u=arguments.length;if(0===u)s="Failed";else if(1===u)i=t,t=void 0;else{if(!1===S){S=!0;var l=r.emitWarning?r.emitWarning:o.warn.bind(o);l("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===u&&(c="!=")}if(i instanceof Error)throw i;var f={actual:t,expected:n,operator:void 0===c?"fail":c,stackStartFn:a||e};void 0!==i&&(f.message=i);var p=new g(f);throw s&&(p.message=s,p.generatedMessage=!0),p},w.AssertionError=g,w.ok=A,w.equal=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");t!=n&&T({actual:t,expected:n,message:r,operator:"==",stackStartFn:e})},w.notEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");t==n&&T({actual:t,expected:n,message:r,operator:"!=",stackStartFn:e})},w.deepEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===c&&b(),c(t,n)||T({actual:t,expected:n,message:r,operator:"deepEqual",stackStartFn:e})},w.notDeepEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===c&&b(),c(t,n)&&T({actual:t,expected:n,message:r,operator:"notDeepEqual",stackStartFn:e})},w.deepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===c&&b(),a(t,n)||T({actual:t,expected:n,message:r,operator:"deepStrictEqual",stackStartFn:e})},w.notDeepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===c&&b();a(t,n)&&T({actual:t,expected:n,message:r,operator:"notDeepStrictEqual",stackStartFn:e})},w.strictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");_(t,n)||T({actual:t,expected:n,message:r,operator:"strictEqual",stackStartFn:e})},w.notStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");_(t,n)&&T({actual:t,expected:n,message:r,operator:"notStrictEqual",stackStartFn:e})};var j=function e(t,n,r){var o=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n.forEach((function(e){e in t&&(void 0!==r&&"string"==typeof r[e]&&v(t[e])&&t[e].test(r[e])?o[e]=r[e]:o[e]=t[e])}))};function P(e,t,n,r,o,i){if(!(n in e)||!a(e[n],t[n])){if(!r){var c=new j(e,o),s=new j(t,o,e),u=new g({actual:c,expected:s,operator:"deepStrictEqual",stackStartFn:i});throw u.actual=e,u.expected=t,u.operator=i.name,u}T({actual:e,expected:t,message:r,operator:i.name,stackStartFn:i})}}function k(e,t,n,r){if("function"!=typeof t){if(v(t))return t.test(e);if(2===arguments.length)throw new l("expected",["Function","RegExp"],t);if("object"!==i(e)||null===e){var o=new g({actual:e,expected:t,message:n,operator:"deepStrictEqual",stackStartFn:r});throw o.operator=r.name,o}var a=Object.keys(t);if(t instanceof Error)a.push("name","message");else if(0===a.length)throw new f("error",t,"may not be an empty object");return void 0===c&&b(),a.forEach((function(o){"string"==typeof e[o]&&v(t[o])&&t[o].test(e[o])||P(e,t,o,n,a,r)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function I(e){if("function"!=typeof e)throw new l("fn","Function",e);try{e()}catch(e){return e}return C}function N(e){return m(e)||null!==e&&"object"===i(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function F(e){return Promise.resolve().then((function(){var t;if("function"==typeof e){if(!N(t=e()))throw new p("instance of Promise","promiseFn",t)}else{if(!N(e))throw new l("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return C})).catch((function(e){return e}))}))}function D(e,t,n,r){if("string"==typeof n){if(4===arguments.length)throw new l("error",["Object","Error","Function","RegExp"],n);if("object"===i(t)&&null!==t){if(t.message===n)throw new u("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===n)throw new u("error/message",'The error "'.concat(t,'" is identical to the message.'));r=n,n=void 0}else if(null!=n&&"object"!==i(n)&&"function"!=typeof n)throw new l("error",["Object","Error","Function","RegExp"],n);if(t===C){var o="";n&&n.name&&(o+=" (".concat(n.name,")")),o+=r?": ".concat(r):".";var c="rejects"===e.name?"rejection":"exception";T({actual:void 0,expected:n,operator:e.name,message:"Missing expected ".concat(c).concat(o),stackStartFn:e})}if(n&&!k(t,n,r,e))throw t}function U(e,t,n,r){if(t!==C){if("string"==typeof n&&(r=n,n=void 0),!n||k(t,n)){var o=r?": ".concat(r):".",i="doesNotReject"===e.name?"rejection":"exception";T({actual:t,expected:n,operator:e.name,message:"Got unwanted ".concat(i).concat(o,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function R(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];O.apply(void 0,[R,t.length].concat(t))}w.throws=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];D.apply(void 0,[e,I(t)].concat(r))},w.rejects=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(t).then((function(t){return D.apply(void 0,[e,t].concat(r))}))},w.doesNotThrow=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];U.apply(void 0,[e,I(t)].concat(r))},w.doesNotReject=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return F(t).then((function(t){return U.apply(void 0,[e,t].concat(r))}))},w.ifError=function e(t){if(null!=t){var n="ifError got unwanted exception: ";"object"===i(t)&&"string"==typeof t.message?0===t.message.length&&t.constructor?n+=t.constructor.name:n+=t.message:n+=y(t);var r=new g({actual:t,expected:null,operator:"ifError",message:n,stackStartFn:e}),o=t.stack;if("string"==typeof o){var c=o.split("\n");c.shift();for(var a=r.stack.split("\n"),s=0;s<c.length;s++){var u=a.indexOf(c[s]);if(-1!==u){a=a.slice(0,u);break}}r.stack="".concat(a.join("\n"),"\n").concat(c.join("\n"))}throw r}},w.strict=E(R,w,{equal:w.strictEqual,deepEqual:w.deepStrictEqual,notEqual:w.notStrictEqual,notDeepEqual:w.notDeepStrictEqual}),w.strict.strict=w.strict},71228:function(e,t,n){"use strict";var r=n(5806);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?a(e):t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function s(e){var t="function"==typeof Map?new Map:void 0;return s=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return l(e,arguments,p(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),f(r,e)},s(e)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function l(e,t,n){return l=u()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&f(o,n.prototype),o},l.apply(null,arguments)}function f(e,t){return f=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},f(e,t)}function p(e){return p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},p(e)}function d(e){return d="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},d(e)}var g=n(23333).inspect,y=n(27452).codes.ERR_INVALID_ARG_TYPE;function h(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}var m="",v="",E="",_="",b={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function S(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function w(e){return g(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function C(e,t,n){var o="",i="",c=0,a="",s=!1,u=w(e),l=u.split("\n"),f=w(t).split("\n"),p=0,g="";if("strictEqual"===n&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===l.length&&1===f.length&&l[0]!==f[0]){var y=l[0].length+f[0].length;if(y<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(b[n],"\n\n")+"".concat(l[0]," !== ").concat(f[0],"\n")}else if("strictEqualObject"!==n){if(y<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;l[0][p]===f[0][p];)p++;p>2&&(g="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",p),"^"),p=0)}}}for(var S=l[l.length-1],C=f[f.length-1];S===C&&(p++<2?a="\n ".concat(S).concat(a):o=S,l.pop(),f.pop(),0!==l.length&&0!==f.length);)S=l[l.length-1],C=f[f.length-1];var T=Math.max(l.length,f.length);if(0===T){var O=u.split("\n");if(O.length>30)for(O[26]="".concat(m,"...").concat(_);O.length>27;)O.pop();return"".concat(b.notIdentical,"\n\n").concat(O.join("\n"),"\n")}p>3&&(a="\n".concat(m,"...").concat(_).concat(a),s=!0),""!==o&&(a="\n ".concat(o).concat(a),o="");var A=0,j=b[n]+"\n".concat(v,"+ actual").concat(_," ").concat(E,"- expected").concat(_),P=" ".concat(m,"...").concat(_," Lines skipped");for(p=0;p<T;p++){var k=p-c;if(l.length<p+1)k>1&&p>2&&(k>4?(i+="\n".concat(m,"...").concat(_),s=!0):k>3&&(i+="\n ".concat(f[p-2]),A++),i+="\n ".concat(f[p-1]),A++),c=p,o+="\n".concat(E,"-").concat(_," ").concat(f[p]),A++;else if(f.length<p+1)k>1&&p>2&&(k>4?(i+="\n".concat(m,"...").concat(_),s=!0):k>3&&(i+="\n ".concat(l[p-2]),A++),i+="\n ".concat(l[p-1]),A++),c=p,i+="\n".concat(v,"+").concat(_," ").concat(l[p]),A++;else{var I=f[p],N=l[p],F=N!==I&&(!h(N,",")||N.slice(0,-1)!==I);F&&h(I,",")&&I.slice(0,-1)===N&&(F=!1,N+=","),F?(k>1&&p>2&&(k>4?(i+="\n".concat(m,"...").concat(_),s=!0):k>3&&(i+="\n ".concat(l[p-2]),A++),i+="\n ".concat(l[p-1]),A++),c=p,i+="\n".concat(v,"+").concat(_," ").concat(N),o+="\n".concat(E,"-").concat(_," ").concat(I),A+=2):(i+=o,o="",1!==k&&0!==p||(i+="\n ".concat(N),A++))}if(A>20&&p<T-2)return"".concat(j).concat(P,"\n").concat(i,"\n").concat(m,"...").concat(_).concat(o,"\n")+"".concat(m,"...").concat(_)}return"".concat(j).concat(s?P:"","\n").concat(i).concat(o).concat(a).concat(g)}var T=function(e){function t(e){var n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==d(e)||null===e)throw new y("options","Object",e);var o=e.message,i=e.operator,s=e.stackStartFn,u=e.actual,l=e.expected,f=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=o)n=c(this,p(t).call(this,String(o)));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(m="",v="",_="",E=""):(m="",v="",_="",E="")),"object"===d(u)&&null!==u&&"object"===d(l)&&null!==l&&"stack"in u&&u instanceof Error&&"stack"in l&&l instanceof Error&&(u=S(u),l=S(l)),"deepStrictEqual"===i||"strictEqual"===i)n=c(this,p(t).call(this,C(u,l,i)));else if("notDeepStrictEqual"===i||"notStrictEqual"===i){var g=b[i],h=w(u).split("\n");if("notStrictEqual"===i&&"object"===d(u)&&null!==u&&(g=b.notStrictEqualObject),h.length>30)for(h[26]="".concat(m,"...").concat(_);h.length>27;)h.pop();n=1===h.length?c(this,p(t).call(this,"".concat(g," ").concat(h[0]))):c(this,p(t).call(this,"".concat(g,"\n\n").concat(h.join("\n"),"\n")))}else{var T=w(u),O="",A=b[i];"notDeepEqual"===i||"notEqual"===i?(T="".concat(b[i],"\n\n").concat(T)).length>1024&&(T="".concat(T.slice(0,1021),"...")):(O="".concat(w(l)),T.length>512&&(T="".concat(T.slice(0,509),"...")),O.length>512&&(O="".concat(O.slice(0,509),"...")),"deepEqual"===i||"equal"===i?T="".concat(A,"\n\n").concat(T,"\n\nshould equal\n\n"):O=" ".concat(i," ").concat(O)),n=c(this,p(t).call(this,"".concat(T).concat(O)))}return Error.stackTraceLimit=f,n.generatedMessage=!o,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=u,n.expected=l,n.operator=i,Error.captureStackTrace&&Error.captureStackTrace(a(n),s),n.stack,n.name="AssertionError",c(n)}var n,s,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&f(e,t)}(t,e),n=t,s=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:g.custom,value:function(e,t){return g(this,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){o(e,t,n[t])}))}return e}({},t,{customInspect:!1,depth:0}))}}],s&&i(n.prototype,s),u&&i(n,u),t}(s(Error));e.exports=T},27452:function(e,t,n){"use strict";function r(e){return r="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},r(e)}function o(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}function c(e,t){return c=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},c(e,t)}var a,s,u={};function l(e,t,n){n||(n=Error);var r=function(n){function r(n,c,a){var s;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),s=o(this,i(r).call(this,function(e,n,r){return"string"==typeof t?t:t(e,n,r)}(n,c,a))),s.code=e,s}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&c(e,t)}(r,n),r}(n);u[e]=r}function f(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}l("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),l("ERR_INVALID_ARG_TYPE",(function(e,t,o){var i,c,s,u;if(void 0===a&&(a=n(90605)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(c="not ",t.substr(!s||s<0?0:+s,c.length)===c)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))u="The ".concat(e," ").concat(i," ").concat(f(t,"type"));else{var l=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(l," ").concat(i," ").concat(f(t,"type"))}return u+=". Received type ".concat(r(o))}),TypeError),l("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===s&&(s=n(23333));var o=s.inspect(t);return o.length>128&&(o="".concat(o.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(o)}),TypeError,RangeError),l("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var o;return o=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(o,".")}),TypeError),l("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];void 0===a&&(a=n(90605)),a(t.length>0,"At least one arg needs to be specified");var o="The ",i=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),i){case 1:o+="".concat(t[0]," argument");break;case 2:o+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:o+=t.slice(0,i-1).join(", "),o+=", and ".concat(t[i-1]," arguments")}return"".concat(o," must be specified")}),TypeError),e.exports.codes=u},81562:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],_n=!0,r=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(_n=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,o=e}finally{try{_n||null==c.return||c.return()}finally{if(r)throw o}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(e){return o="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},o(e)}var i=void 0!==/a/g.flags,c=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},s=Object.is?Object.is:n(88706),u=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},l=Number.isNaN?Number.isNaN:n(17614);function f(e){return e.call.bind(e)}var p=f(Object.prototype.hasOwnProperty),d=f(Object.prototype.propertyIsEnumerable),g=f(Object.prototype.toString),y=n(23333).types,h=y.isAnyArrayBuffer,m=y.isArrayBufferView,v=y.isDate,E=y.isMap,_=y.isRegExp,b=y.isSet,S=y.isNativeError,w=y.isBoxedPrimitive,C=y.isNumberObject,T=y.isStringObject,O=y.isBooleanObject,A=y.isBigIntObject,j=y.isSymbolObject,P=y.isFloat32Array,k=y.isFloat64Array;function I(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var n=e.charCodeAt(t);if(n<48||n>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function N(e){return Object.keys(e).filter(I).concat(u(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function F(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,o=0,i=Math.min(n,r);o<i;++o)if(e[o]!==t[o]){n=e[o],r=t[o];break}return n<r?-1:r<n?1:0}function D(e,t,n,r){if(e===t)return 0!==e||(!n||s(e,t));if(n){if("object"!==o(e))return"number"==typeof e&&l(e)&&l(t);if("object"!==o(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==o(e))return(null===t||"object"!==o(t))&&e==t;if(null===t||"object"!==o(t))return!1}var c,a,u,f,p=g(e);if(p!==g(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var d=N(e),y=N(t);return d.length===y.length&&R(e,t,n,r,1,d)}if("[object Object]"===p&&(!E(e)&&E(t)||!b(e)&&b(t)))return!1;if(v(e)){if(!v(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(_(e)){if(!_(t)||(u=e,f=t,!(i?u.source===f.source&&u.flags===f.flags:RegExp.prototype.toString.call(u)===RegExp.prototype.toString.call(f))))return!1}else if(S(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(m(e)){if(n||!P(e)&&!k(e)){if(!function(e,t){return e.byteLength===t.byteLength&&0===F(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}(e,t))return!1}else if(!function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}(e,t))return!1;var I=N(e),D=N(t);return I.length===D.length&&R(e,t,n,r,0,I)}if(b(e))return!(!b(t)||e.size!==t.size)&&R(e,t,n,r,2);if(E(e))return!(!E(t)||e.size!==t.size)&&R(e,t,n,r,3);if(h(e)){if(a=t,(c=e).byteLength!==a.byteLength||0!==F(new Uint8Array(c),new Uint8Array(a)))return!1}else if(w(e)&&!function(e,t){return C(e)?C(t)&&s(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):T(e)?T(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):O(e)?O(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):A(e)?A(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):j(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}(e,t))return!1}return R(e,t,n,r,0)}function U(e,t){return t.filter((function(t){return d(e,t)}))}function R(e,t,n,r,o,i){if(5===arguments.length){i=Object.keys(e);var c=Object.keys(t);if(i.length!==c.length)return!1}for(var a=0;a<i.length;a++)if(!p(t,i[a]))return!1;if(n&&5===arguments.length){var s=u(e);if(0!==s.length){var l=0;for(a=0;a<s.length;a++){var f=s[a];if(d(e,f)){if(!d(t,f))return!1;i.push(f),l++}else if(d(t,f))return!1}var g=u(t);if(s.length!==g.length&&U(t,g).length!==l)return!1}else{var y=u(t);if(0!==y.length&&0!==U(t,y).length)return!1}}if(0===i.length&&(0===o||1===o&&0===e.length||0===e.size))return!0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else{var h=r.val1.get(e);if(void 0!==h){var m=r.val2.get(t);if(void 0!==m)return h===m}r.position++}r.val1.set(e,r.position),r.val2.set(t,r.position);var v=K(e,t,n,i,r,o);return r.val1.delete(e),r.val2.delete(t),v}function x(e,t,n,r){for(var o=c(e),i=0;i<o.length;i++){var a=o[i];if(D(t,a,n,r))return e.delete(a),!0}return!1}function M(e){switch(o(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(l(e))return!1}return!0}function L(e,t,n){var r=M(n);return null!=r?r:t.has(r)&&!e.has(r)}function $(e,t,n,r,o){var i=M(n);if(null!=i)return i;var c=t.get(i);return!(void 0===c&&!t.has(i)||!D(r,c,!1,o))&&(!e.has(i)&&D(r,c,!1,o))}function J(e,t,n,r,o,i){for(var a=c(e),s=0;s<a.length;s++){var u=a[s];if(D(n,u,o,i)&&D(r,t.get(u),o,i))return e.delete(u),!0}return!1}function K(e,t,n,i,s,u){var l=0;if(2===u){if(!function(e,t,n,r){for(var i=null,a=c(e),s=0;s<a.length;s++){var u=a[s];if("object"===o(u)&&null!==u)null===i&&(i=new Set),i.add(u);else if(!t.has(u)){if(n)return!1;if(!L(e,t,u))return!1;null===i&&(i=new Set),i.add(u)}}if(null!==i){for(var l=c(t),f=0;f<l.length;f++){var p=l[f];if("object"===o(p)&&null!==p){if(!x(i,p,n,r))return!1}else if(!n&&!e.has(p)&&!x(i,p,n,r))return!1}return 0===i.size}return!0}(e,t,n,s))return!1}else if(3===u){if(!function(e,t,n,i){for(var c=null,s=a(e),u=0;u<s.length;u++){var l=r(s[u],2),f=l[0],p=l[1];if("object"===o(f)&&null!==f)null===c&&(c=new Set),c.add(f);else{var d=t.get(f);if(void 0===d&&!t.has(f)||!D(p,d,n,i)){if(n)return!1;if(!$(e,t,f,p,i))return!1;null===c&&(c=new Set),c.add(f)}}}if(null!==c){for(var g=a(t),y=0;y<g.length;y++){var h=r(g[y],2),m=(f=h[0],h[1]);if("object"===o(f)&&null!==f){if(!J(c,e,f,m,n,i))return!1}else if(!(n||e.has(f)&&D(e.get(f),m,!1,i)||J(c,e,f,m,!1,i)))return!1}return 0===c.size}return!0}(e,t,n,s))return!1}else if(1===u)for(;l<e.length;l++){if(!p(e,l)){if(p(t,l))return!1;for(var f=Object.keys(e);l<f.length;l++){var d=f[l];if(!p(t,d)||!D(e[d],t[d],n,s))return!1}return f.length===Object.keys(t).length}if(!p(t,l)||!D(e[l],t[l],n,s))return!1}for(l=0;l<i.length;l++){var g=i[l];if(!D(e[g],t[g],n,s))return!1}return!0}e.exports={isDeepEqual:function(e,t){return D(e,t,false)},isDeepStrictEqual:function(e,t){return D(e,t,true)}}},16422:function(e,t,n){"use strict";var r=n(25165),o=n(43120),i=o(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&i(e,".prototype.")>-1?o(n):n}},43120:function(e,t,n){"use strict";var r=n(75433),o=n(25165),i=o("%Function.prototype.apply%"),c=o("%Function.prototype.call%"),a=o("%Reflect.apply%",!0)||r.call(c,i),s=o("%Object.getOwnPropertyDescriptor%",!0),u=o("%Object.defineProperty%",!0),l=o("%Math.max%");if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(e){var t=a(r,c,arguments);if(s&&u){var n=s(t,"length");n.configurable&&u(t,"length",{value:1+l(0,e.length-(arguments.length-1))})}return t};var f=function(){return a(r,i,arguments)};u?u(e.exports,"apply",{value:f}):e.exports.apply=f},55246:function(e,t,n){var r=n(23333),o=n(90605);function i(){return(new Date).getTime()}var c,a=Array.prototype.slice,s={};c="undefined"!=typeof window&&window.console||"undefined"!=typeof window&&window.console?window.console:{};for(var u=[[function(){},"log"],[function(){c.log.apply(c,arguments)},"info"],[function(){c.log.apply(c,arguments)},"warn"],[function(){c.warn.apply(c,arguments)},"error"],[function(e){s[e]=i()},"time"],[function(e){var t=s[e];if(!t)throw new Error("No such label: "+e);delete s[e];var n=i()-t;c.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),c.error(e.stack)},"trace"],[function(e){c.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);o.ok(!1,r.format.apply(null,t))}},"assert"]],l=0;l<u.length;l++){var f=u[l],p=f[0],d=f[1];c[d]||(c[d]=p)}e.exports=c},13185:function(e,t,n){"use strict";var r=n(98517),o="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),i=Object.prototype.toString,c=Array.prototype.concat,a=Object.defineProperty,s=a&&function(){var e={};try{for(var t in a(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),u=function(e,t,n,r){var o;(!(t in e)||"function"==typeof(o=r)&&"[object Function]"===i.call(o)&&r())&&(s?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},l=function(e,t){var n=arguments.length>2?arguments[2]:{},i=r(t);o&&(i=c.call(i,Object.getOwnPropertySymbols(t)));for(var a=0;a<i.length;a+=1)u(e,i[a],t[i[a]],n[i[a]])};l.supportsDescriptors=!!s,e.exports=l},45685:function(e){"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),r=1;r<arguments.length;r++){var o=arguments[r];if(null!=o)for(var i=Object.keys(Object(o)),c=0,a=i.length;c<a;c++){var s=i[c],u=Object.getOwnPropertyDescriptor(o,s);void 0!==u&&u.enumerable&&(n[s]=o[s])}}return n}e.exports={assign:t,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:t})}}},49478:function(e){var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString;e.exports=function(e,r,o){if("[object Function]"!==n.call(r))throw new TypeError("iterator must be a function");var i=e.length;if(i===+i)for(var c=0;c<i;c++)r.call(o,e[c],c,e);else for(var a in e)t.call(e,a)&&r.call(o,e[a],a,e)}},44033:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,r=Object.prototype.toString,o="[object Function]";e.exports=function(e){var i=this;if("function"!=typeof i||r.call(i)!==o)throw new TypeError(t+i);for(var c,a=n.call(arguments,1),s=function(){if(this instanceof c){var t=i.apply(this,a.concat(n.call(arguments)));return Object(t)===t?t:this}return i.apply(e,a.concat(n.call(arguments)))},u=Math.max(0,i.length-a.length),l=[],f=0;f<u;f++)l.push("$"+f);if(c=Function("binder","return function ("+l.join(",")+"){ return binder.apply(this,arguments); }")(s),i.prototype){var p=function(){};p.prototype=i.prototype,c.prototype=new p,p.prototype=null}return c}},75433:function(e,t,n){"use strict";var r=n(44033);e.exports=Function.prototype.bind||r},25165:function(e,t,n){"use strict";var r,o=SyntaxError,i=Function,c=TypeError,a=function(e){try{return i('"use strict"; return ('+e+").constructor;")()}catch(e){}},s=Object.getOwnPropertyDescriptor;if(s)try{s({},"")}catch(e){s=null}var u=function(){throw new c},l=s?function(){try{return u}catch(e){try{return s(arguments,"callee").get}catch(e){return u}}}():u,f=n(45992)(),p=Object.getPrototypeOf||function(e){return e.__proto__},d={},g="undefined"==typeof Uint8Array?r:p(Uint8Array),y={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":f?p([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":d,"%AsyncGenerator%":d,"%AsyncGeneratorFunction%":d,"%AsyncIteratorPrototype%":d,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":i,"%GeneratorFunction%":d,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":f?p(p([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&f?p((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&f?p((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":f?p(""[Symbol.iterator]()):r,"%Symbol%":f?Symbol:r,"%SyntaxError%":o,"%ThrowTypeError%":l,"%TypedArray%":g,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet},h=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var o=e("%AsyncGenerator%");o&&(n=p(o.prototype))}return y[t]=n,n},m={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},v=n(75433),E=n(99569),_=v.call(Function.call,Array.prototype.concat),b=v.call(Function.apply,Array.prototype.splice),S=v.call(Function.call,String.prototype.replace),w=v.call(Function.call,String.prototype.slice),C=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,T=/\\(\\)?/g,O=function(e){var t=w(e,0,1),n=w(e,-1);if("%"===t&&"%"!==n)throw new o("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new o("invalid intrinsic syntax, expected opening `%`");var r=[];return S(e,C,(function(e,t,n,o){r[r.length]=n?S(o,T,"$1"):t||e})),r},A=function(e,t){var n,r=e;if(E(m,r)&&(r="%"+(n=m[r])[0]+"%"),E(y,r)){var i=y[r];if(i===d&&(i=h(r)),void 0===i&&!t)throw new c("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:i}}throw new o("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new c('"allowMissing" argument must be a boolean');var n=O(e),r=n.length>0?n[0]:"",i=A("%"+r+"%",t),a=i.name,u=i.value,l=!1,f=i.alias;f&&(r=f[0],b(n,_([0,1],f)));for(var p=1,d=!0;p<n.length;p+=1){var g=n[p],h=w(g,0,1),m=w(g,-1);if(('"'===h||"'"===h||"`"===h||'"'===m||"'"===m||"`"===m)&&h!==m)throw new o("property names with quotes must have matching quotes");if("constructor"!==g&&d||(l=!0),E(y,a="%"+(r+="."+g)+"%"))u=y[a];else if(null!=u){if(!(g in u)){if(!t)throw new c("base intrinsic for "+e+" exists, but the property is not available.");return}if(s&&p+1>=n.length){var v=s(u,g);u=(d=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:u[g]}else d=E(u,g),u=u[g];d&&!l&&(y[a]=u)}}return u}},45992:function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=n(4461);e.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},4461:function(e){"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(e,t);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},77828:function(e,t,n){"use strict";var r=n(4461);e.exports=function(){return r()&&!!Symbol.toStringTag}},99569:function(e,t,n){"use strict";var r=n(75433);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},13266:function(e,t,n){"use strict";var r=n(80364),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},c={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function s(e){return r.isMemo(e)?c:a[e.$$typeof]||o}a[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[r.Memo]=c;var u=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,g=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(g){var o=d(n);o&&o!==g&&e(t,o,r)}var c=l(n);f&&(c=c.concat(f(n)));for(var a=s(t),y=s(n),h=0;h<c.length;++h){var m=c[h];if(!(i[m]||r&&r[m]||y&&y[m]||a&&a[m])){var v=p(n,m);try{u(t,m,v)}catch(e){}}}}return t}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},24546:function(e){"use strict";e.exports=function(e,t,n,r,o,i,c,a){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,i,c,a],l=0;(s=new Error(t.replace(/%s/g,(function(){return u[l++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},98304:function(e,t,n){"use strict";var r=n(77828)(),o=n(16422)("Object.prototype.toString"),i=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===o(e)},c=function(e){return!!i(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==o(e)&&"[object Function]"===o(e.callee)},a=function(){return i(arguments)}();i.isLegacyArguments=c,e.exports=a?i:c},57372:function(e,t,n){"use strict";var r,o=Object.prototype.toString,i=Function.prototype.toString,c=/^\s*(?:function)?\*/,a=n(77828)(),s=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(c.test(i.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===o.call(e);if(!s)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&s(t)}return s(e)===r}},46618:function(e){"use strict";e.exports=function(e){return e!=e}},17614:function(e,t,n){"use strict";var r=n(43120),o=n(13185),i=n(46618),c=n(42775),a=n(49582),s=r(c(),Number);o(s,{getPolyfill:c,implementation:i,shim:a}),e.exports=s},42775:function(e,t,n){"use strict";var r=n(46618);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},49582:function(e,t,n){"use strict";var r=n(13185),o=n(42775);e.exports=function(){var e=o();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},8639:function(e,t,n){"use strict";var r=n(49478),o=n(87331),i=n(16422),c=i("Object.prototype.toString"),a=n(77828)(),s="undefined"==typeof globalThis?window:globalThis,u=o(),l=i("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},f=i("String.prototype.slice"),p={},d=n(61787),g=Object.getPrototypeOf;a&&d&&g&&r(u,(function(e){var t=new s[e];if(Symbol.toStringTag in t){var n=g(t),r=d(n,Symbol.toStringTag);if(!r){var o=g(n);r=d(o,Symbol.toStringTag)}p[e]=r.get}}));e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!a||!(Symbol.toStringTag in e)){var t=f(c(e),8,-1);return l(u,t)>-1}return!!d&&function(e){var t=!1;return r(p,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},6383:function(){},907:function(){},58187:function(){},85731:function(){},32002:function(e){var t=1e3,n=60*t,r=60*n,o=24*r,i=7*o,c=365.25*o;function a(e,t,n,r){var o=t>=1.5*n;return Math.round(e/n)+" "+r+(o?"s":"")}e.exports=function(e,s){s=s||{};var u=typeof e;if("string"===u&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\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(!a)return;var s=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return s*c;case"weeks":case"week":case"w":return s*i;case"days":case"day":case"d":return s*o;case"hours":case"hour":case"hrs":case"hr":case"h":return s*r;case"minutes":case"minute":case"mins":case"min":case"m":return s*n;case"seconds":case"second":case"secs":case"sec":case"s":return s*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}(e);if("number"===u&&isFinite(e))return s.long?function(e){var i=Math.abs(e);if(i>=o)return a(e,i,o,"day");if(i>=r)return a(e,i,r,"hour");if(i>=n)return a(e,i,n,"minute");if(i>=t)return a(e,i,t,"second");return e+" ms"}(e):function(e){var i=Math.abs(e);if(i>=o)return Math.round(e/o)+"d";if(i>=r)return Math.round(e/r)+"h";if(i>=n)return Math.round(e/n)+"m";if(i>=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))}},72335:function(e){"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},88706:function(e,t,n){"use strict";var r=n(13185),o=n(43120),i=n(72335),c=n(75432),a=n(95894),s=o(c(),Object);r(s,{getPolyfill:c,implementation:i,shim:a}),e.exports=s},75432:function(e,t,n){"use strict";var r=n(72335);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},95894:function(e,t,n){"use strict";var r=n(75432),o=n(13185);e.exports=function(){var e=r();return o(Object,{is:e},{is:function(){return Object.is!==e}}),e}},96128:function(e,t,n){"use strict";var r;if(!Object.keys){var o=Object.prototype.hasOwnProperty,i=Object.prototype.toString,c=n(56133),a=Object.prototype.propertyIsEnumerable,s=!a.call({toString:null},"toString"),u=a.call((function(){}),"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],f=function(e){var t=e.constructor;return t&&t.prototype===e},p={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!p["$"+e]&&o.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{f(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===i.call(e),r=c(e),a=t&&"[object String]"===i.call(e),p=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var g=u&&n;if(a&&e.length>0&&!o.call(e,0))for(var y=0;y<e.length;++y)p.push(String(y));if(r&&e.length>0)for(var h=0;h<e.length;++h)p.push(String(h));else for(var m in e)g&&"prototype"===m||!o.call(e,m)||p.push(String(m));if(s)for(var v=function(e){if("undefined"==typeof window||!d)return f(e);try{return f(e)}catch(e){return!1}}(e),E=0;E<l.length;++E)v&&"constructor"===l[E]||!o.call(e,l[E])||p.push(l[E]);return p}}e.exports=r},98517:function(e,t,n){"use strict";var r=Array.prototype.slice,o=n(56133),i=Object.keys,c=i?function(e){return i(e)}:n(96128),a=Object.keys;c.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return o(e)?a(r.call(e)):a(e)})}else Object.keys=c;return Object.keys||c},e.exports=c},56133:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},5806:function(e){var t,n,r=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function c(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var a,s=[],u=!1,l=-1;function f(){u&&a&&(u=!1,a.length?s=a.concat(s):l=-1,s.length&&p())}function p(){if(!u){var e=c(f);u=!0;for(var t=s.length;t;){for(a=s,s=[];++l<t;)a&&a[l].run();l=-1,t=s.length}a=null,u=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function g(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new d(e,t)),1!==s.length||u||c(p)},d.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=g,r.addListener=g,r.once=g,r.off=g,r.removeListener=g,r.removeAllListeners=g,r.emit=g,r.prependListener=g,r.prependOnceListener=g,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},9587:function(e,t,n){"use strict";var r=n(45843);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,c){if(c!==r){var a=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 a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={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:i,resetWarningCache:o};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},66462:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,c=n?Symbol.for("react.strict_mode"):60108,a=n?Symbol.for("react.profiler"):60114,s=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,l=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,g=n?Symbol.for("react.suspense_list"):60120,y=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,E=n?Symbol.for("react.responder"):60118,_=n?Symbol.for("react.scope"):60119;function b(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case l:case f:case i:case a:case c:case d:return e;default:switch(e=e&&e.$$typeof){case u:case p:case h:case y:case s:return e;default:return t}}case o:return t}}}function S(e){return b(e)===f}t.AsyncMode=l,t.ConcurrentMode=f,t.ContextConsumer=u,t.ContextProvider=s,t.Element=r,t.ForwardRef=p,t.Fragment=i,t.Lazy=h,t.Memo=y,t.Portal=o,t.Profiler=a,t.StrictMode=c,t.Suspense=d,t.isAsyncMode=function(e){return S(e)||b(e)===l},t.isConcurrentMode=S,t.isContextConsumer=function(e){return b(e)===u},t.isContextProvider=function(e){return b(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return b(e)===p},t.isFragment=function(e){return b(e)===i},t.isLazy=function(e){return b(e)===h},t.isMemo=function(e){return b(e)===y},t.isPortal=function(e){return b(e)===o},t.isProfiler=function(e){return b(e)===a},t.isStrictMode=function(e){return b(e)===c},t.isSuspense=function(e){return b(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===f||e===a||e===c||e===d||e===g||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===y||e.$$typeof===s||e.$$typeof===u||e.$$typeof===p||e.$$typeof===v||e.$$typeof===E||e.$$typeof===_||e.$$typeof===m)},t.typeOf=b},80364:function(e,t,n){"use strict";e.exports=n(66462)},1992:function(e,t,n){"use strict";n.d(t,{E:function(){return o}});var r=n(99196),o=n.n(r)().createContext(null)},32054:function(e,t,n){"use strict";var r=n(71446),o=n(99196),i=n.n(o),c=n(11268),a=n.n(c),s=n(1992),u=function(e){function t(t){var n;n=e.call(this,t)||this;var r=t.store;return n.state={storeState:r.getState(),store:r},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this.subscribe()},n.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},n.componentDidUpdate=function(e){this.props.store!==e.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},n.subscribe=function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe((function(){var n=t.getState();e._isMounted&&e.setState((function(e){return e.storeState===n?null:{storeState:n}}))}));var n=t.getState();n!==this.state.storeState&&this.setState({storeState:n})},n.render=function(){var e=this.props.context||s.E;return i().createElement(e.Provider,{value:this.state},this.props.children)},t}(o.Component);u.propTypes={store:a().shape({subscribe:a().func.isRequired,dispatch:a().func.isRequired,getState:a().func.isRequired}),context:a().object,children:a().any},t.Z=u},4193:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(25303),o=n(71446),i=n(40988),c=n(5343),a=n(13266),s=n.n(a),u=n(24546),l=n.n(u),f=n(99196),p=n.n(f),d=n(80364),g=n(1992);function y(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,u=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,y=n.methodName,h=void 0===y?"connectAdvanced":y,m=n.renderCountProp,v=void 0===m?void 0:m,E=n.shouldHandleStateChanges,_=void 0===E||E,b=n.storeKey,S=void 0===b?"store":b,w=n.withRef,C=void 0!==w&&w,T=n.forwardRef,O=void 0!==T&&T,A=n.context,j=void 0===A?g.E:A,P=(0,c.Z)(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);l()(void 0===v,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),l()(!C,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var k="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";l()("store"===S,"storeKey has been removed and does not do anything. "+k);var I=j;return function(t){var n=t.displayName||t.name||"Component",c=u(n),a=(0,i.Z)({},P,{getDisplayName:u,methodName:h,renderCountProp:v,shouldHandleStateChanges:_,storeKey:S,displayName:c,wrappedComponentName:n,WrappedComponent:t}),g=P.pure,y=f.Component;g&&(y=f.PureComponent);var m=function(n){function s(t){var o,c,a,s,u,f,d,y,h,m,v;return o=n.call(this,t)||this,l()(O?!t.wrapperProps[S]:!t[S],"Passing redux store in props has been removed and does not do anything. "+k),o.selectDerivedProps=function(t,n,r,o){if(g&&c===n&&a===t)return s;r===u&&f===o||(u=r,f=o,d=e(r.dispatch,o)),c=n,a=t;var i=d(t,n);return s=i},o.selectChildElement=function(e,t,n){return t===y&&n===h&&v===e||(y=t,h=n,v=e,m=p().createElement(e,(0,i.Z)({},t,{ref:n}))),m},o.indirectRenderWrappedComponent=o.indirectRenderWrappedComponent.bind((0,r.Z)(o)),o}(0,o.Z)(s,n);var u=s.prototype;return u.indirectRenderWrappedComponent=function(e){return this.renderWrappedComponent(e)},u.renderWrappedComponent=function(e){l()(e,'Could not find "store" in the context of "'+c+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+c+" in connect options.");var n,r=e.storeState,o=e.store,i=this.props;O&&(i=this.props.wrapperProps,n=this.props.forwardedRef);var s=this.selectDerivedProps(r,i,o,a);return this.selectChildElement(t,s,n)},u.render=function(){var e=this.props.context&&this.props.context.Consumer&&(0,d.isContextConsumer)(p().createElement(this.props.context.Consumer,null))?this.props.context:I;return p().createElement(e.Consumer,null,this.indirectRenderWrappedComponent)},s}(y);if(m.WrappedComponent=t,m.displayName=c,O){var E=p().forwardRef((function(e,t){return p().createElement(m,{wrapperProps:e,forwardedRef:t})}));return E.displayName=c,E.WrappedComponent=t,s()(E,t)}return s()(m,t)}}},28274:function(e,t,n){"use strict";var r,o,i,c,a,s,u,l,f,p,d,g,y=n(40988),h=n(5343),m=n(4193),v=n(37110),E=n(80214),_=n(26150),b=n(94262),S=n(27189);function w(e,t,n){for(var r=t.length-1;r>=0;r--){var o=t[r](e);if(o)return o}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function C(e,t){return e===t}t.Z=(i=(o=void 0===r?{}:r).connectHOC,c=void 0===i?m.Z:i,a=o.mapStateToPropsFactories,s=void 0===a?_.ZP:a,u=o.mapDispatchToPropsFactories,l=void 0===u?E.ZP:u,f=o.mergePropsFactories,p=void 0===f?b.ZP:f,d=o.selectorFactory,g=void 0===d?S.ZP:d,function(e,t,n,r){void 0===r&&(r={});var o=r,i=o.pure,a=void 0===i||i,u=o.areStatesEqual,f=void 0===u?C:u,d=o.areOwnPropsEqual,m=void 0===d?v.Z:d,E=o.areStatePropsEqual,_=void 0===E?v.Z:E,b=o.areMergedPropsEqual,S=void 0===b?v.Z:b,T=(0,h.Z)(o,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),O=w(e,s,"mapStateToProps"),A=w(t,l,"mapDispatchToProps"),j=w(n,p,"mergeProps");return c(g,(0,y.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:O,initMapDispatchToProps:A,initMergeProps:j,pure:a,areStatesEqual:f,areOwnPropsEqual:m,areStatePropsEqual:_,areMergedPropsEqual:S},T))})},80214:function(e,t,n){"use strict";var r=n(74978),o=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,o.xv)(e,"mapDispatchToProps"):void 0},function(e){return e?void 0:(0,o.dX)((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?(0,o.dX)((function(t){return(0,r.DE)(e,t)})):void 0}]},26150:function(e,t,n){"use strict";var r=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,r.xv)(e,"mapStateToProps"):void 0},function(e){return e?void 0:(0,r.dX)((function(){return{}}))}]},94262:function(e,t,n){"use strict";var r=n(40988);n(80450);function o(e,t,n){return(0,r.Z)({},n,e,t)}t.ZP=[function(e){return"function"==typeof e?function(e){return function(t,n){n.displayName;var r,o=n.pure,i=n.areMergedPropsEqual,c=!1;return function(t,n,a){var s=e(t,n,a);return c?o&&i(s,r)||(r=s):(c=!0,r=s),r}}}(e):void 0},function(e){return e?void 0:function(){return o}}]},27189:function(e,t,n){"use strict";n.d(t,{ZP:function(){return c}});var r=n(5343);n(51617);function o(e,t,n,r){return function(o,i){return n(e(o,i),t(r,i),i)}}function i(e,t,n,r,o){var i,c,a,s,u,l=o.areStatesEqual,f=o.areOwnPropsEqual,p=o.areStatePropsEqual,d=!1;function g(o,d){var g,y,h=!f(d,c),m=!l(o,i);return i=o,c=d,h&&m?(a=e(i,c),t.dependsOnOwnProps&&(s=t(r,c)),u=n(a,s,c)):h?(e.dependsOnOwnProps&&(a=e(i,c)),t.dependsOnOwnProps&&(s=t(r,c)),u=n(a,s,c)):m?(g=e(i,c),y=!p(g,a),a=g,y&&(u=n(a,s,c)),u):u}return function(o,l){return d?g(o,l):(a=e(i=o,c=l),s=t(r,c),u=n(a,s,c),d=!0,u)}}function c(e,t){var n=t.initMapStateToProps,c=t.initMapDispatchToProps,a=t.initMergeProps,s=(0,r.Z)(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),u=n(e,s),l=c(e,s),f=a(e,s);return(s.pure?i:o)(u,l,f,e,s)}},51617:function(e,t,n){"use strict";n(28477)},68821:function(e,t,n){"use strict";n.d(t,{dX:function(){return r},xv:function(){return i}});n(80450);function r(e){return function(t,n){var r=e(t,n);function o(){return r}return o.dependsOnOwnProps=!1,o}}function o(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function i(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=o(e);var i=r(t,n);return"function"==typeof i&&(r.mapToProps=i,r.dependsOnOwnProps=o(i),i=r(t,n)),i},r}}},2620:function(e,t,n){"use strict";n.d(t,{zt:function(){return r.Z},$j:function(){return o.Z}});var r=n(32054),o=(n(4193),n(1992),n(28274))},37110:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=Object.prototype.hasOwnProperty;function o(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function i(e,t){if(o(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(var c=0;c<n.length;c++)if(!r.call(t,n[c])||!o(e[n[c]],t[n[c]]))return!1;return!0}},80450:function(e,t,n){"use strict";n(28477)},28477:function(e,t,n){"use strict";n(55246)},53126:function(e,t){"use strict";function n(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(o){return"function"==typeof o?o(n,r,e):t(o)}}}}var r=n();r.withExtraArgument=n,t.Z=r},74978:function(e,t,n){"use strict";n.d(t,{md:function(){return h},DE:function(){return f},UY:function(){return u},qC:function(){return y},MT:function(){return a}});var r=n(13488),o=(n(55246),function(){return Math.random().toString(36).substring(7).split("").join(".")}),i={INIT:"@@redux/INIT"+o(),REPLACE:"@@redux/REPLACE"+o(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+o()}};function c(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function a(e,t,n){var o;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(a)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var s=e,u=t,l=[],f=l,p=!1;function d(){f===l&&(f=l.slice())}function g(){if(p)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return u}function y(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(p)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return d(),f.push(e),function(){if(t){if(p)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,d();var n=f.indexOf(e);f.splice(n,1),l=null}}}function h(e){if(!c(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(p)throw new Error("Reducers may not dispatch actions.");try{p=!0,u=s(u,e)}finally{p=!1}for(var t=l=f,n=0;n<t.length;n++){(0,t[n])()}return e}function m(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");s=e,h({type:i.REPLACE})}function v(){var e,t=y;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(g())}return n(),{unsubscribe:t(n)}}})[r.Z]=function(){return this},e}return h({type:i.INIT}),(o={dispatch:h,subscribe:y,getState:g,replaceReducer:m})[r.Z]=v,o}function s(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function u(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];0,"function"==typeof e[o]&&(n[o]=e[o])}var c,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:i.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:i.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+i.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(e){c=e}return function(e,t){if(void 0===e&&(e={}),c)throw c;for(var r=!1,o={},i=0;i<a.length;i++){var u=a[i],l=n[u],f=e[u],p=l(f,t);if(void 0===p){var d=s(u,t);throw new Error(d)}o[u]=p,r=r||p!==f}return(r=r||a.length!==Object.keys(e).length)?o:e}}function l(e,t){return function(){return t(e.apply(this,arguments))}}function f(e,t){if("function"==typeof e)return l(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var o=e[r];"function"==typeof o&&(n[r]=l(o,t))}return n}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(n,!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function y(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function h(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},i=t.map((function(e){return e(o)}));return g({},n,{dispatch:r=y.apply(void 0,i)(n.dispatch)})}}}},13488:function(e,t,n){"use strict";var r,o=n(32752);e=n.hmd(e),r="undefined"!=typeof self?self:"undefined"!=typeof window||"undefined"!=typeof window?window:e;var i=(0,o.Z)(r);t.Z=i},32752:function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,{Z:function(){return r}})},80816:function(e,t,n){"use strict";var r=n(90922),o=n.n(r),i=n(92819);const c=o()("dops:analytics");let a,s;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const u={initialize:function(e,t,n){u.setUser(e,t),u.setSuperProps(n),u.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]: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){a=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){u.tracks.recordPageView(e),u.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,o,i,c){u.ga.recordPurchase(e,t,n,r,o,i,c)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(a&&(c("- Super Props: %o",a),t=(0,i.assign)(t,a)),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};u.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){u.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={};u.ga.initialized||(s&&(e={userId:"u-"+s.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),u.ga.initialized=!0)},recordPageView:function(e,t){u.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,n,r){u.ga.initialize();let o="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(o+=" [Option Label: "+n+"]"),void 0!==r&&(o+=" [Option Value: "+r+"]"),c(o),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,o,i,c){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:c}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:o,quantity:i}),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"])}};t.Z=u},19570:function(e,t,n){"use strict";var r=n(92819),o=n(96483),i=n(26251);function c(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const a=c("JsonParseError"),s=c("JsonParseAfterRedirectError"),u=c("Api404Error"),l=c("Api404AfterRedirectError"),f=c("FetchNetworkError");const p=new function(e,t){let n=e,c={"X-WP-Nonce":t},a={credentials:"same-origin",headers:c},s={method:"post",credentials:"same-origin",headers:(0,r.assign)({},c,{"Content-type":"application/json"})},u=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",r=n.length?n.split("&"):[];return r.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+r.join("&")};const l={setApiRoot(e){n=e},setApiNonce(e){c={"X-WP-Nonce":e},a={credentials:"same-origin",headers:c},s={method:"post",credentials:"same-origin",headers:(0,r.assign)({},c,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{u=e},registerSite:(e,t)=>{const r={registration_nonce:e,no_iframe:!0};return(0,i.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,i.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),p(`${n}jetpack/v4/connection/register`,s,{body:JSON.stringify(r)}).then(d).then(g)},fetchAuthorizationUrl:e=>f((0,o.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),a).then(d).then(g),fetchSiteConnectionData:()=>f(`${n}jetpack/v4/connection/data`,a).then(g),fetchSiteConnectionStatus:()=>f(`${n}jetpack/v4/connection`,a).then(g),fetchSiteConnectionTest:()=>f(`${n}jetpack/v4/connection/test`,a).then(d).then(g),fetchUserConnectionData:()=>f(`${n}jetpack/v4/connection/data`,a).then(g),fetchUserTrackingSettings:()=>f(`${n}jetpack/v4/tracking/settings`,a).then(d).then(g),updateUserTrackingSettings:e=>p(`${n}jetpack/v4/tracking/settings`,s,{body:JSON.stringify(e)}).then(d).then(g),disconnectSite:()=>p(`${n}jetpack/v4/connection`,s,{body:JSON.stringify({isActive:!1})}).then(d).then(g),fetchConnectUrl:()=>f(`${n}jetpack/v4/connection/url`,a).then(d).then(g),unlinkUser:()=>p(`${n}jetpack/v4/connection/user`,s,{body:JSON.stringify({linked:!1})}).then(d).then(g),reconnect:()=>p(`${n}jetpack/v4/connection/reconnect`,s).then(d).then(g),fetchConnectedPlugins:()=>f(`${n}jetpack/v4/connection/plugins`,a).then(d).then(g),setHasSeenWCConnectionModal:()=>p(`${n}jetpack/v4/seen-wc-connection-modal`,s).then(d).then(g),fetchModules:()=>f(`${n}jetpack/v4/module/all`,a).then(d).then(g),fetchModule:e=>f(`${n}jetpack/v4/module/${e}`,a).then(d).then(g),activateModule:e=>p(`${n}jetpack/v4/module/${e}/active`,s,{body:JSON.stringify({active:!0})}).then(d).then(g),deactivateModule:e=>p(`${n}jetpack/v4/module/${e}/active`,s,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>p(`${n}jetpack/v4/module/${e}`,s,{body:JSON.stringify(t)}).then(d).then(g),updateSettings:e=>p(`${n}jetpack/v4/settings`,s,{body:JSON.stringify(e)}).then(d).then(g),getProtectCount:()=>f(`${n}jetpack/v4/module/protect/data`,a).then(d).then(g),resetOptions:e=>p(`${n}jetpack/v4/options/${e}`,s,{body:JSON.stringify({reset:!0})}).then(d).then(g),activateVaultPress:()=>p(`${n}jetpack/v4/plugins`,s,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(d).then(g),getVaultPressData:()=>f(`${n}jetpack/v4/module/vaultpress/data`,a).then(d).then(g),installPlugin:(e,t)=>{const r={slug:e,status:"active"};return t&&(r.source=t),p(`${n}jetpack/v4/plugins`,s,{body:JSON.stringify(r)}).then(d).then(g)},activateAkismet:()=>p(`${n}jetpack/v4/plugins`,s,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(d).then(g),getAkismetData:()=>f(`${n}jetpack/v4/module/akismet/data`,a).then(d).then(g),checkAkismetKey:()=>f(`${n}jetpack/v4/module/akismet/key/check`,a).then(d).then(g),checkAkismetKeyTyped:e=>p(`${n}jetpack/v4/module/akismet/key/check`,s,{body:JSON.stringify({api_key:e})}).then(d).then(g),fetchStatsData:e=>f(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),a).then(d).then(g).then(y),getPluginUpdates:()=>f(`${n}jetpack/v4/updates/plugins`,a).then(d).then(g),getPlans:()=>f(`${n}jetpack/v4/plans`,a).then(d).then(g),fetchSettings:()=>f(`${n}jetpack/v4/settings`,a).then(d).then(g),updateSetting:e=>p(`${n}jetpack/v4/settings`,s,{body:JSON.stringify(e)}).then(d).then(g),fetchSiteData:()=>f(`${n}jetpack/v4/site`,a).then(d).then(g).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>f(`${n}jetpack/v4/site/features`,a).then(d).then(g).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>f(`${n}jetpack/v4/site/products`,a).then(d).then(g),fetchSitePurchases:()=>f(`${n}jetpack/v4/site/purchases`,a).then(d).then(g).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>f(`${n}jetpack/v4/site/benefits`,a).then(d).then(g).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>f(`${n}jetpack/v4/setup/questionnaire`,a).then(d).then(g),fetchRecommendationsData:()=>f(`${n}jetpack/v4/recommendations/data`,a).then(d).then(g),fetchRecommendationsProductSuggestions:()=>f(`${n}jetpack/v4/recommendations/product-suggestions`,a).then(d).then(g),fetchRecommendationsUpsell:()=>f(`${n}jetpack/v4/recommendations/upsell`,a).then(d).then(g),saveRecommendationsData:e=>p(`${n}jetpack/v4/recommendations/data`,s,{body:JSON.stringify({data:e})}).then(d),fetchProducts:()=>f(`${n}jetpack/v4/products`,a).then(d).then(g),fetchRewindStatus:()=>f(`${n}jetpack/v4/rewind`,a).then(d).then(g).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>f(`${n}jetpack/v4/scan`,a).then(d).then(g).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>p(`${n}jetpack/v4/notice/${e}`,s,{body:JSON.stringify({dismissed:!0})}).then(d).then(g),fetchPluginsData:()=>f(`${n}jetpack/v4/plugins`,a).then(d).then(g),fetchVerifySiteGoogleStatus:e=>f(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,a).then(d).then(g),verifySiteGoogle:e=>p(`${n}jetpack/v4/verify-site/google`,s,{body:JSON.stringify({keyring_id:e})}).then(d).then(g),sendMobileLoginEmail:()=>p(`${n}jetpack/v4/mobile/send-login-email`,s).then(d).then(g),submitSurvey:e=>p(`${n}jetpack/v4/marketing/survey`,s,{body:JSON.stringify(e)}).then(d).then(g),saveSetupQuestionnaire:e=>p(`${n}jetpack/v4/setup/questionnaire`,s,{body:JSON.stringify(e)}).then(d).then(g),updateLicensingError:e=>p(`${n}jetpack/v4/licensing/error`,s,{body:JSON.stringify(e)}).then(d).then(g),updateLicenseKey:e=>p(`${n}jetpack/v4/licensing/set-license`,s,{body:JSON.stringify({license:e})}).then(d).then(g),getUserLicensesCounts:()=>f(`${n}jetpack/v4/licensing/user/counts`,a).then(d).then(g),updateLicensingActivationNoticeDismiss:e=>p(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,s,{body:JSON.stringify({last_detached_count:e})}).then(d).then(g),updateRecommendationsStep:e=>p(`${n}jetpack/v4/recommendations/step`,s,{body:JSON.stringify({step:e})}).then(d),confirmIDCSafeMode:()=>p(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,s).then(d),startIDCFresh:e=>p(`${n}jetpack/v4/identity-crisis/start-fresh`,s,{body:JSON.stringify({redirect_uri:e})}).then(d).then(g),migrateIDC:()=>p(`${n}jetpack/v4/identity-crisis/migrate`,s).then(d),attachLicenses:e=>p(`${n}jetpack/v4/licensing/attach-licenses`,s,{body:JSON.stringify({licenses:e})}).then(d).then(g),fetchSearchPlanInfo:()=>f(`${n}jetpack/v4/search/plan`,a).then(d).then(g),fetchSearchSettings:()=>f(`${n}jetpack/v4/search/settings`,a).then(d).then(g),updateSearchSettings:e=>p(`${n}jetpack/v4/search/settings`,s,{body:JSON.stringify(e)}).then(d).then(g)};function f(e,t){return fetch(u(e),t)}function p(e,t,n){return fetch(e,(0,r.assign)({},t,n)).catch(h)}function y(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,r.assign)(this,l)};function d(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new l(e.redirected):new u})):e.json().catch((e=>y(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function g(e){return e.json().catch((t=>y(t,e.redirected,e.url)))}function y(e,t,n){throw t?new s(n):new a}function h(){throw new f}t.ZP=p},78310:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i);n(6383);const a=e=>{const{format:t,icon:n,imageUrl:r}=e;return o().createElement("div",{className:"jp-components__decorative-card "+(t?"jp-components__decorative-card--"+t:"")},o().createElement("div",{className:"jp-components__decorative-card__image",style:{backgroundImage:r?`url( ${r} )`:""}}),o().createElement("div",{className:"jp-components__decorative-card__content"},o().createElement("div",{className:"jp-components__decorative-card__lines"})),(()=>{if(n)return o().createElement("div",{className:"jp-components__decorative-card__icon-container"},o().createElement("span",{className:"jp-components__decorative-card__icon jp-components__decorative-card__icon--"+n}))})())};a.propTypes={format:c().oneOf(["horizontal","vertical"]),icon:c().oneOf(["unlink"]),imageUrl:c().string},a.defaultProps={format:"horizontal"},t.Z=a},71415:function(e,t,n){"use strict";function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let r;if("undefined"!=typeof window&&(r=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),r&&(n.calypso_env=r);const o=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+o}n.d(t,{Z:function(){return r}})},26251:function(e,t,n){var r=n(55246);let o={};try{o=n(92787)}catch{r.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),o={missingConfig:!0}}const i=e=>o.hasOwnProperty(e);e.exports={jetpackConfigHas:i,jetpackConfigGet:e=>{if(!i(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 o[e]}}},73593:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(65736),s=n(2332);const __=a.__,u=e=>{const{connectedPlugins:t,disconnectingPlugin:n}=e,i=(0,r.useMemo)((()=>{if(t){return Object.keys(t).map((e=>Object.assign({slug:e},t[e]))).filter((e=>n!==e.slug))}return[]}),[t,n]);return t&&i.length>0?o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is powering other plugins on your site. If you disconnect, these plugins will no longer work.","jetpack"))),o().createElement("div",{className:"jp-connection__disconnect-card__group"},i.map((e=>o().createElement(s.Z,{title:e.name}))))):null};u.PropTypes={connectedPlugins:c().object,disconnectingPlugin:c().string},t.Z=u},2332:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i);n(907);const a=e=>{const{title:t,value:n,description:r}=e;return o().createElement("div",{className:"jp-connection__disconnect-card card"},o().createElement("div",{className:"jp-connection__disconnect-card__card-content"},o().createElement("p",{className:"jp-connection__disconnect-card__card-headline"},t),(n||r)&&o().createElement("div",{className:"jp-connection__disconnect-card__card-stat-block"},o().createElement("span",{className:"jp-connection__disconnect-card__card-stat"},n),o().createElement("div",{className:"jp-connection__disconnect-card__card-description"},r))))};a.propTypes={title:c().string,value:c().string|c().number,description:c().number},t.Z=a},15628:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(65736),s=n(55609),u=n(19570),l=n(80816),f=n(26251),p=(n(58187),n(80163)),d=n(71496),g=n(84130),y=n(55700);const __=a.__,h=e=>{const[t,n]=(0,r.useState)(!1),[i,c]=(0,r.useState)(!1),[a,h]=(0,r.useState)(!1),[m,v]=(0,r.useState)(!1),[E,_]=(0,r.useState)(!1),[b,S]=(0,r.useState)(!1),{apiRoot:w,apiNonce:C,connectedPlugins:T,title:O,pluginScreenDisconnectCallback:A,onDisconnected:j,onError:P,disconnectStepComponent:k,context:I,connectedUser:N,connectedSiteId:F,isOpen:D,onClose:U}=e;let R="";(0,f.jetpackConfigHas)("consumer_slug")&&(R=(0,f.jetpackConfigGet)("consumer_slug"));const x=(0,r.useMemo)((()=>({context:I,plugin:R})),[I,R]);(0,r.useEffect)((()=>{u.ZP.setApiRoot(w),u.ZP.setApiNonce(C)}),[w,C]),(0,r.useEffect)((()=>{N&&N.ID&&N.login&&l.Z.initialize(N.ID,N.login)}),[N,N.ID,N.login]),(0,r.useEffect)((()=>{D&&l.Z.tracks.recordEvent("jetpack_disconnect_dialog_open",x)}),[D,x]),(0,r.useEffect)((()=>{D&&(i?!i||m||E?m&&!E?l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"survey"},x)):E&&l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"thank_you"},x)):l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect_confirm"},x)):l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect"},x)))}),[D,i,m,E,x]);const M=(0,r.useCallback)((()=>{u.ZP.disconnectSite().then((()=>{n(!1),c(!0)})).catch((e=>{n(!1),h(e),P&&P(e)}))}),[n,c,h,P]),L=(0,r.useCallback)(((e,t)=>{S(!0),fetch("https://public-api.wordpress.com/wpcom/v2/marketing/feedback-survey",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{if(!0!==e.success)throw new Error("Survey endpoint returned error code "+e.code);l.Z.tracks.recordEvent("jetpack_disconnect_survey_submit",t),_(!0),S(!1)})).catch((e=>{l.Z.tracks.recordEvent("jetpack_disconnect_survey_error",Object.assign({},{error:e.message},t)),_(!0),S(!1)}))}),[S,_]),$=(0,r.useCallback)((e=>{e&&e.preventDefault(),h(!1),n(!0),"plugins"!==I?M():A&&A(e)}),[h,n,A,I,M]),J=(0,r.useCallback)((()=>N.ID&&F),[N,F]),K=(0,r.useCallback)(((e,t,n)=>{if(n&&n.preventDefault(),!J())return void _(!0);const r={site_id:F,user_id:N.ID,survey_id:"jetpack-plugin-disconnect",survey_responses:{"why-cancel":{response:e,text:t||null}}},o=Object.assign({},x,{disconnect_reason:e});L(r,o)}),[L,_,J,F,N,x]),B=(0,r.useCallback)((e=>{e&&e.preventDefault(),j&&j(),U()}),[j,U]),H=(0,r.useCallback)((e=>{e&&e.preventDefault(),v(!0)}),[v]);return o().createElement(o().Fragment,null,D&&o().createElement(s.Modal,{title:"",contentLabel:O,aria:{labelledby:"jp-connection__disconnect-dialog__heading"},onRequestClose:U,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,isDismissible:!1,className:"jp-connection__disconnect-dialog"+(i?" jp-connection__disconnect-dialog__success":"")},i?!i||m||E?m&&!E?o().createElement(g.Z,{isSubmittingFeedback:b,onFeedBackProvided:K,onExit:B}):E?o().createElement(y.Z,{onExit:B}):void 0:o().createElement(d.Z,{canProvideFeedback:J(),onProvideFeedback:H,onExit:B}):o().createElement(p.Z,{title:O,connectedPlugins:T,disconnectStepComponent:k,isDisconnecting:t,closeModal:U,onDisconnect:$,disconnectError:a,context:I,disconnectingPlugin:R})))};h.propTypes={apiRoot:c().string.isRequired,apiNonce:c().string.isRequired,title:c().string,onDisconnected:c().func,onError:c().func,context:c().string,connectedPlugins:c().object,pluginScreenDisconnectCallback:c().func,disconnectStepComponent:c().element,connectedUser:c().object,connectedSiteId:c().number,isOpen:c().bool,onClose:c().func},h.defaultProps={title:__("Are you sure you want to disconnect?","jetpack"),context:"jetpack-dashboard",connectedUser:{}},t.Z=h},71496:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(69307),s=n(65736),u=n(55609),l=n(78310),f=n(62042);const __=s.__,p=e=>{const{onExit:t,canProvideFeedback:n,onProvideFeedback:r}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(l.Z,{icon:"unlink",imageUrl:f}),o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy jp-connection__disconnect-dialog__step-copy--narrow"},o().createElement("h1",null,(0,a.createInterpolateElement)(__("Jetpack has been <br/>successfully disconnected.","jetpack"),{br:o().createElement("br",null)})),n&&o().createElement(o().Fragment,null,o().createElement("p",null,__("We’re sorry to see you go. Here at Jetpack, we’re always striving to provide the best experience for our customers. Please take our short survey (2 minutes, promise).","jetpack")),o().createElement("p",null,o().createElement(u.Button,{isPrimary:!0,onClick:r,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Help us improve","jetpack"))),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("No thank you","jetpack"))),!n&&o().createElement(o().Fragment,null,o().createElement("p",null,o().createElement(u.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack"))))))};p.PropTypes={onExit:c().func,onProvideFeedback:c().func,canProvideFeedback:c().bool},t.Z=p},80163:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(69307),c=n(65736),a=n(71415),s=n(55609),u=n(11268),l=n.n(u),f=n(73593);const __=c.__,p=e=>{const{title:t,isDisconnecting:n,onDisconnect:r,disconnectError:c,disconnectStepComponent:u,connectedPlugins:l,disconnectingPlugin:p,closeModal:d,context:g}=e;return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",{id:"jp-connection__disconnect-dialog__heading"},t),o().createElement(f.Z,{connectedPlugins:l,disconnectingPlugin:p}),u,(()=>{if(!l&&!u)return o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering multiple products on your site.","jetpack"),o().createElement("br",null),__("Once you disconnect Jetpack, these will no longer work.","jetpack")))})()),o().createElement("div",{className:"jp-connection__disconnect-dialog__actions"},o().createElement("div",{className:"jp-row"},o().createElement("div",{className:"lg-col-span-7 md-col-span-8 sm-col-span-4"},o().createElement("p",null,(0,i.createInterpolateElement)(__("<strong>Need help?</strong> Learn more about the <jpConnectionInfoLink>Jetpack connection</jpConnectionInfoLink> or <jpSupportLink>contact Jetpack support</jpSupportLink>.","jetpack"),{strong:o().createElement("strong",null),jpConnectionInfoLink:o().createElement("a",{href:(0,a.Z)("why-the-wordpress-com-connection-is-important-for-jetpack"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"}),jpSupportLink:o().createElement("a",{href:(0,a.Z)("jetpack-support"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"})}))),o().createElement("div",{className:"jp-connection__disconnect-dialog__button-wrap lg-col-span-5 md-col-span-8 sm-col-span-4"},o().createElement(s.Button,{isPrimary:!0,disabled:n,onClick:d,className:"jp-connection__disconnect-dialog__btn-dismiss"},__("Stay connected","jetpack")),(()=>{let e=__("Disconnect","jetpack");return n?e=__("Disconnecting…","jetpack"):"plugins"===g&&(e=__("Disconnect and Deactivate","jetpack")),o().createElement(s.Button,{isPrimary:!0,disabled:n,onClick:r,className:"jp-connection__disconnect-dialog__btn-disconnect"},e)})())),c&&o().createElement("p",{className:"jp-connection__disconnect-dialog__error"},c)))};p.propTypes={title:l().string,isDisconnecting:l().bool,onDisconnect:l().func,disconnectError:l().bool,disconnectStepComponent:l().elementType,connectedPlugins:l().array,disconnectingPlugin:l().string,closeModal:l().func,context:l().string},t.Z=p},84130:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(65736),s=(n(85731),n(71194));const __=a.__,u=e=>{const{onExit:t,onFeedBackProvided:n,isSubmittingFeedback:r}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",null,__("Before you go, help us improve Jetpack","jetpack")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Let us know what didn‘t work for you","jetpack")),o().createElement(s.Z,{onSubmit:n,isSubmittingFeedback:r}),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("Skip for now","jetpack")))};u.PropTypes={onExit:c().func,onFeedBackProvided:c().func,isSubmittingFeedback:c().bool},t.Z=u},55700:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(78310),s=n(65736),u=n(55609),l=n(69307),f=n(90724);const __=s.__,p=e=>{const{onExit:t}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(a.Z,{format:"vertical",imageUrl:f}),o().createElement("div",{className:"jp-connection__disconnect-dialog__copy"},o().createElement("h1",null,__("Thank you!","jetpack")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},(0,l.createInterpolateElement)(__("Your answer has been submitted. <br/>Thanks for your input on how we can improve Jetpack.","jetpack"),{br:o().createElement("br",null)})),o().createElement(u.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack"))))};p.PropTypes={onExit:c().func,assetBaseUrl:c().string},t.Z=p},71194:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(11268),c=n.n(i),a=n(55609),s=n(65736),u=n(87215);const __=s.__,l=e=>{const{onSubmit:t,isSubmittingFeedback:n}=e,[i,c]=(0,r.useState)(),[s,l]=(0,r.useState)(),f=[{id:"troubleshooting",answerText:__("Troubleshooting - I'll be reconnecting afterwards.","jetpack")},{id:"not-working",answerText:__("I can't get it to work.","jetpack")},{id:"slowed-down-site",answerText:__("It slowed down my site.","jetpack")},{id:"buggy",answerText:__("It's buggy.","jetpack")},{id:"what-does-it-do",answerText:__("I don't know what it does.","jetpack")}],p="another-reason",d=(0,r.useCallback)((()=>{t(i,i===p?s:"")}),[t,p,s,i]),g=(0,r.useCallback)((e=>{const t=e.target.value;e.stopPropagation(),l(t)}),[l]),y=e=>e===i?"jp-connect__disconnect-survey-card--selected":"",h=(0,r.useCallback)(((e,t)=>{switch(t.key){case"Enter":case"Space":case"Spacebar":case" ":c(e)}}),[c]);return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__survey"},f.map((e=>o().createElement(u.Z,{id:e.id,onClick:c,onKeyDown:h,className:"card jp-connect__disconnect-survey-card "+y(e.id)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},e.answerText)))),o().createElement(u.Z,{id:p,onClick:c,onKeyDown:h,className:"card jp-connect__disconnect-survey-card "+y(p)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},__("Other:","jetpack")," ",o().createElement("input",{placeholder:__("share your experience","jetpack"),className:"jp-connect__disconnect-survey-card__input",type:"text",value:s,onChange:g,maxLength:1e3})))),o().createElement("p",null,o().createElement(a.Button,{disabled:!i||n,isPrimary:!0,onClick:d,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},n?__("Submitting…","jetpack"):__("Submit Feedback","jetpack",0))))};l.PropTypes={onSubmit:c().func,isSubmittingFeedback:c().bool},t.Z=l},87215:function(e,t,n){"use strict";var r=n(99196),o=n.n(r);n(85731);t.Z=e=>{const{id:t,onClick:n,onKeyDown:i,children:c,className:a}=e,s=(0,r.useCallback)((()=>{n(t)}),[t,n]),u=(0,r.useCallback)((e=>{i(t,e)}),[t,i]);return o().createElement("div",{tabIndex:"0",role:"button",onClick:s,onKeyDown:u,className:"card jp-connect__disconnect-survey-card "+a},c)}},87137:function(e,t,n){"use strict";n.d(t,{o:function(){return r},m:function(){return o}});const r="NEW_NOTICE",o="REMOVE_NOTICE"},21094:function(e,t,n){"use strict";var r=n(92819),o=n(87137);function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const i={noticeId:n.id||(0,r.uniqueId)(),duration:n.duration,showDismiss:"boolean"!=typeof n.showDismiss||n.showDismiss,isPersistent:n.isPersistent||!1,displayOnNextPage:n.displayOnNextPage||!1,status:e,text:t};return{type:o.o,notice:i}}i.bind(null,"is-success"),i.bind(null,"is-error"),i.bind(null,"is-info"),i.bind(null,"is-warning")},31008:function(e,t,n){"use strict";n.d(t,{x:function(){return i}});var r=n(74978),o=n(87137);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.o:return[t.notice,...e];case o.m:return e.filter((e=>e.noticeId!==t.noticeId))}return e}(0,r.UY)({globalNotices:i})},27711:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(2332),c=n(69307),a=n(55609),s=n(65736),u=n(71415);const __=s.__;t.Z=e=>{const{siteBenefits:t}=e;return o().createElement(o().Fragment,null,t.length>0&&o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering features on your site. Once you disconnect Jetpack, these features will no longer be available and your site may no longer function the same way.","jetpack"))),o().createElement("div",{className:"jp-connection__disconnect-card__group"},t.map((e=>{let{value:t,description:n,title:r}=e;return o().createElement(i.Z,{title:r,value:t,description:n})})))),t.length<=2&&o().createElement("div",{className:"jetpack-benefits__general-benefits-section"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack has many powerful tools that can help you achieve your goals","jetpack")),o().createElement("ul",{className:"jetpack-benefits__general-benefits-list"},o().createElement("li",{key:"reason-cdn"},(0,c.createInterpolateElement)(__("Speed up your site and provide mobile-ready images with <ExternalLink>our CDN</ExternalLink>","jetpack"),{ExternalLink:o().createElement(a.ExternalLink,{href:(0,u.Z)("jetpack-features-design-content-delivery-network"),rel:"noopener noreferrer",target:"_blank"})})),o().createElement("li",{key:"reason-brute-force"},(0,c.createInterpolateElement)(__("Block <ExternalLink>brute force attacks</ExternalLink> and get immediate notifications if your site is down","jetpack"),{ExternalLink:o().createElement(a.ExternalLink,{href:(0,u.Z)("jetpack-features-security"),rel:"noopener noreferrer",target:"_blank"})})),o().createElement("li",{key:"reason-social"},(0,c.createInterpolateElement)(__("Grow your traffic with automated social <ExternalLink>publishing and sharing</ExternalLink>","jetpack"),{ExternalLink:o().createElement(a.ExternalLink,{href:(0,u.Z)("jetpack-support-social"),rel:"noopener noreferrer",target:"_blank"})})))))}},81200:function(e,t,n){"use strict";n(92819)},60265:function(e,t,n){"use strict";var r=n(99196),o=n.n(r),i=n(2620),c=n(65736),a=n(37617),s=n(66552),u=n(19570),l=n(15628),f=n(27711);const __=c.__;t.Z=(0,i.$j)((e=>({apiRoot:(0,s.yB)(e),apiNonce:(0,s.VY)(e),connectedPlugins:(0,s.xz)(e),siteBenefits:(0,s.Hh)(e),tracksUserData:(0,s.hv)(e)})))((e=>{const{apiRoot:t,apiNonce:n,connectedPlugins:i,siteBenefits:c,tracksUserData:s}=e,[p,d]=(0,r.useState)(!1),g=document.querySelector("#deactivate-jetpack, #deactivate-jetpack-dev");g.setAttribute("title",__("Deactivate Jetpack","jetpack")),g.textContent=__("Disconnect and Deactivate","jetpack"),(0,r.useEffect)((()=>{u.ZP.setApiRoot(t),u.ZP.setApiNonce(n)}),[t,n]);const y=(0,r.useCallback)((()=>{d(!p)}),[d,p]),h=(0,r.useCallback)((e=>{e.preventDefault(),y()}),[y]);(0,r.useEffect)((()=>(g.addEventListener("click",h),()=>{g.removeEventListener("click",h)})),[g,h]);const m=(0,r.useCallback)((()=>{window.location.href=g.getAttribute("href")}),[g]);return o().createElement(a.Z,null,o().createElement(l.Z,{apiRoot:t,apiNonce:n,connectedPlugins:i,connectedUser:{ID:s.userid,login:s.username},context:"plugins",isOpen:p,onClose:y,pluginScreenDisconnectCallback:m,disconnectStepComponent:o().createElement(f.Z,{siteBenefits:c})}))}))},37617:function(e,t,n){"use strict";var r=n(91850),o=n.n(r),i=n(99196),c=n.n(i);const a=document.getElementById("jetpack-plugin-portal-sidecar");class s extends c().Component{constructor(e){super(e),this.portalNode=document.createElement("div")}componentDidMount(){a.appendChild(this.portalNode)}componentWillUnmount(){a.removeChild(this.portalNode)}render(){return o().createPortal(this.props.children,this.portalNode)}}t.Z=s},67592:function(e,t,n){"use strict";n.d(t,{R9:function(){return r},q7:function(){return o},Uy:function(){return i},hm:function(){return c},J1:function(){return a},U7:function(){return s},BV:function(){return u},ie:function(){return l},AA:function(){return f},IW:function(){return p},Mo:function(){return d},dD:function(){return g},lj:function(){return y},o2:function(){return h},yb:function(){return m},bG:function(){return v},sO:function(){return E},B9:function(){return _},T:function(){return b},YD:function(){return S},X0:function(){return w},kK:function(){return C},rA:function(){return T},TB:function(){return O},jE:function(){return A},kF:function(){return j},I3:function(){return P},sG:function(){return k},n2:function(){return I},Jy:function(){return N},Gu:function(){return F},xk:function(){return D},CD:function(){return U},L:function(){return R},Lo:function(){return x},Hy:function(){return M},m:function(){return L},a8:function(){return $},ar:function(){return J},TR:function(){return K},H5:function(){return B},yV:function(){return H},QG:function(){return q},c0:function(){return G},Cf:function(){return V},x3:function(){return Z},Mi:function(){return z},$I:function(){return W},as:function(){return Y},RR:function(){return X},Fm:function(){return Q},KD:function(){return ee},BG:function(){return te},BB:function(){return ne},Pi:function(){return re},yE:function(){return oe},HO:function(){return ie},YC:function(){return ce},$0:function(){return ae},w_:function(){return se},g:function(){return ue},i7:function(){return le},ik:function(){return fe},Pp:function(){return pe},hz:function(){return de},QD:function(){return ge},JA:function(){return ye},dS:function(){return he},rY:function(){return me},q4:function(){return ve},jH:function(){return Ee},QF:function(){return _e},BX:function(){return be},gY:function(){return Se},FL:function(){return we},Ns:function(){return Ce},TI:function(){return Te},rQ:function(){return Oe},fH:function(){return Ae},l9:function(){return je},Mg:function(){return Pe},nD:function(){return ke},rw:function(){return Ie},Vl:function(){return Ne},VN:function(){return Fe},g9:function(){return De},Fe:function(){return Ue},lt:function(){return Re},Dz:function(){return xe},Ab:function(){return Me},Ep:function(){return Le},zO:function(){return $e},XU:function(){return Je},y$:function(){return Ke},qU:function(){return Be},s6:function(){return He},z1:function(){return qe},jb:function(){return Ge},x1:function(){return Ve},Nk:function(){return Ze},qY:function(){return ze},zD:function(){return We},IZ:function(){return Ye},lh:function(){return Xe},fX:function(){return Qe},tU:function(){return et},Ez:function(){return tt},Qm:function(){return nt},XP:function(){return rt},K0:function(){return ot},Fc:function(){return it},b8:function(){return ct},me:function(){return at},Vd:function(){return st},tl:function(){return ut},Yo:function(){return lt},mL:function(){return ft},hF:function(){return pt},CM:function(){return dt},it:function(){return gt},Dg:function(){return yt},ml:function(){return ht},Yk:function(){return mt},fe:function(){return vt},N9:function(){return Et},vr:function(){return _t},M0:function(){return bt},$F:function(){return St},b6:function(){return wt},cz:function(){return Ct},$d:function(){return Tt},s9:function(){return Ot},km:function(){return At},oQ:function(){return jt},UI:function(){return Pt},Uq:function(){return kt},U$:function(){return It},R5:function(){return Nt},lO:function(){return Ft},jt:function(){return Dt}});const r="JETPACK_SET_INITIAL_STATE",o="CONNECT_URL_FETCH",i="CONNECT_URL_FETCH_FAIL",c="CONNECT_URL_FETCH_SUCCESS",a="DISCONNECT_SITE",s="DISCONNECT_SITE_FAIL",u="DISCONNECT_SITE_SUCCESS",l="CONNECT_USER",f="RESET_CONNECT_USER",p="UNLINK_USER",d="UNLINK_USER_FAIL",g="UNLINK_USER_SUCCESS",y="USER_CONNECTION_DATA_FETCH",h="USER_CONNECTION_DATA_FETCH_FAIL",m="USER_CONNECTION_DATA_FETCH_SUCCESS",v="SITE_RECONNECT",E="SITE_RECONNECT_SUCCESS",_="SITE_RECONNECT_FAIL",b="USER_TRACKING_SETTINGS_FETCH",S="USER_TRACKING_SETTINGS_FETCH_FAIL",w="USER_TRACKING_SETTINGS_FETCH_SUCCESS",C="USER_TRACKING_SETTINGS_UPDATE",T="USER_TRACKING_SETTINGS_UPDATE_FAIL",O="USER_TRACKING_SETTINGS_UPDATE_SUCCESS",A="JETPACK_MODULES_LIST_FETCH",j="JETPACK_MODULES_LIST_FETCH_FAIL",P="JETPACK_MODULES_LIST_RECEIVE",k="JETPACK_MODULE_ACTIVATE",I="JETPACK_MODULE_ACTIVATE_SUCCESS",N="JETPACK_MODULE_ACTIVATE_FAIL",F="JETPACK_MODULE_DEACTIVATE",D="JETPACK_MODULE_DEACTIVATE_FAIL",U="JETPACK_MODULE_DEACTIVATE_SUCCESS",R="JETPACK_MODULE_UPDATE_OPTIONS",x="JETPACK_MODULE_UPDATE_OPTIONS_FAIL",M="JETPACK_MODULE_UPDATE_OPTIONS_SUCCESS",L="JETPACK_CONNECTION_STATUS_FETCH",$="JETPACK_SITE_CONNECTED_PLUGINS_FETCH",J="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_RECEIVE",K="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_FAIL",B="DASHBOARD_PROTECT_COUNT_FETCH",H="DASHBOARD_PROTECT_COUNT_FETCH_FAIL",q="DASHBOARD_PROTECT_COUNT_FETCH_SUCCESS",G="RESET_OPTIONS_SUCCESS",V="VAULTPRESS_SITE_DATA_FETCH",Z="VAULTPRESS_SITE_DATA_FETCH_FAIL",z="VAULTPRESS_SITE_DATA_FETCH_SUCCESS",W="AKISMET_DATA_FETCH",Y="AKISMET_DATA_FETCH_FAIL",X="AKISMET_DATA_FETCH_SUCCESS",Q="AKISMET_KEY_CHECK_FETCH",ee="AKISMET_KEY_CHECK_FETCH_FAIL",te="AKISMET_KEY_CHECK_FETCH_SUCCESS",ne="PLUGIN_UPDATES_FETCH",re="PLUGIN_UPDATES_FETCH_FAIL",oe="PLUGIN_UPDATES_FETCH_SUCCESS",ie="STATS_SWITCH_TAB",ce="STATS_DATA_FETCH",ae="STATS_DATA_FETCH_FAIL",se="STATS_DATA_FETCH_SUCCESS",ue="JETPACK_PRODUCTS_FETCH",le="JETPACK_PRODUCTS_FETCH_RECEIVE",fe="JETPACK_PRODUCTS_FETCH_FAIL",pe="JETPACK_SITE_PRODUCTS_FETCH",de="JETPACK_SITE_PRODUCTS_FETCH_FAIL",ge="JETPACK_SITE_PRODUCTS_FETCH_RECEIVE",ye="JETPACK_SETTINGS_FETCH",he="JETPACK_SETTINGS_FETCH_RECEIVE",me="JETPACK_SETTINGS_FETCH_FAIL",ve="JETPACK_SETTING_UPDATE",Ee="JETPACK_SETTING_UPDATE_SUCCESS",_e="JETPACK_SETTING_UPDATE_FAIL",be="JETPACK_SETTINGS_UPDATE",Se="JETPACK_SETTINGS_UPDATE_FAIL",we="JETPACK_SETTINGS_UPDATE_SUCCESS",Ce="JETPACK_SETTINGS_SET_UNSAVED_FLAG",Te="JETPACK_SETTINGS_CLEAR_UNSAVED_FLAG",Oe="JETPACK_SITE_DATA_FETCH",Ae="JETPACK_SITE_DATA_FETCH_RECEIVE",je="JETPACK_SITE_DATA_FETCH_FAIL",Pe="JETPACK_SITE_BENEFITS_FETCH",ke="JETPACK_SITE_BENEFITS_FETCH_RECEIVE",Ie="JETPACK_SITE_BENEFITS_FETCH_FAIL",Ne="JETPACK_SITE_FEATURES_FETCH",Fe="JETPACK_SITE_FEATURES_FETCH_RECEIVE",De="JETPACK_SITE_FEATURES_FETCH_FAIL",Ue="JETPACK_SITE_PLANS_FETCH",Re="JETPACK_SITE_PLANS_FETCH_RECEIVE",xe="JETPACK_SITE_PLANS_FETCH_FAIL",Me="JETPACK_SITE_PURCHASES_FETCH",Le="JETPACK_SITE_PURCHASES_FETCH_RECEIVE",$e="JETPACK_SITE_PURCHASES_FETCH_FAIL",Je="JETPACK_RECOMMENDATIONS_DATA_ADD_SELECTED_RECOMMENDATION",Ke="JETPACK_RECOMMENDATIONS_DATA_ADD_SKIPPED_RECOMMENDATION",Be="JETPACK_RECOMMENDATIONS_DATA_FETCH",He="JETPACK_RECOMMENDATIONS_DATA_FETCH_RECEIVE",qe="JETPACK_RECOMMENDATIONS_DATA_FETCH_FAIL",Ge="JETPACK_RECOMMENDATIONS_DATA_UPDATE",Ve="JETPACK_RECOMMENDATIONS_STEP_UPDATE",Ze="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH",ze="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_RECEIVE",We="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_FAIL",Ye="JETPACK_RECOMMENDATIONS_UPSELL_FETCH",Xe="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_RECEIVE",Qe="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_FAIL",et="JETPACK_ACTION_NOTICES_DISMISS",tt="JETPACK_NOTICES_DISMISS_SUCCESS",nt="JETPACK_PLUGINS_DATA_FETCH",rt="JETPACK_PLUGINS_DATA_FETCH_RECEIVE",ot="JETPACK_PLUGINS_DATA_FETCH_FAIL",it="JETPACK_SEARCH_TERM",ct="SET_PLAN_DURATION",at="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY",st="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_SUCCESS",ut="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_FAIL",lt="DEV_CARD_DISPLAY",ft="DEV_CARD_HIDE",pt="MOCK_SWITCH_USER_PERMISSIONS",dt="MOCK_SWITCH_THREATS",gt="REWIND_STATUS_FETCH",yt="REWIND_STATUS_FETCH_RECEIVE",ht="REWIND_STATUS_FETCH_FAIL",mt="MOCK_SWITCH_REWIND_STATE",vt="SCAN_STATUS_FETCH",Et="SCAN_STATUS_FETCH_RECEIVE",_t="SCAN_STATUS_FETCH_FAIL",bt="MOCK_SWITCH_SCAN_STATE",St="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH",wt="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_FAIL",Ct="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_SUCCESS",Tt="JETPACK_SITE_VERIFY_GOOGLE_REQUEST",Ot="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_SUCCESS",At="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_FAIL",jt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL",Pt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_SUCCESS",kt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL",It="JETPACK_LICENSING_ERROR_UPDATE",Nt="JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE",Ft="JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE",Dt="JETPACK_CONNECTION_HAS_SEEN_WC_CONNECTION_MODAL"},50046:function(e,t,n){"use strict";n.d(t,{sI:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.YC:return(0,o.assign)({},e,{fetchingStatsData:!0});case i.$I:return(0,o.assign)({},e,{fetchingAkismetData:!0});case i.Fm:return(0,o.assign)({},e,{checkingAkismetKey:!0});case i.Cf:return(0,o.assign)({},e,{fetchingVaultPressData:!0});case i.H5:return(0,o.assign)({},e,{fetchingProtectData:!0});case i.BB:return(0,o.assign)({},e,{fetchingPluginUpdates:!0});case i.$0:case i.w_:return(0,o.assign)({},e,{fetchingStatsData:!1});case i.as:case i.RR:return(0,o.assign)({},e,{fetchingAkismetData:!1});case i.KD:case i.BG:return(0,o.assign)({},e,{checkingAkismetKey:!1});case i.yV:case i.QG:return(0,o.assign)({},e,{fetchingProtectData:!1});case i.Pi:case i.yE:return(0,o.assign)({},e,{fetchingPluginUpdates:!1});case i.x3:case i.Mi:return(0,o.assign)({},e,{fetchingVaultPressData:!1});default:return e}},activeStatsTab:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"day",t=arguments.length>1?arguments[1]:void 0;return t.type===i.HO?t.activeStatsTab:e},protectCount:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===i.QG?t.protectCount:e},vaultPressData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Mi:return t.vaultPressData;case i.CM:return(0,o.assign)({},"N/A"===e?{}:e,{data:{active:!0,features:{security:!0},security:{notice_count:t.mockCount}}});default:return e}},statsData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.w_?(0,o.assign)({},e,t.statsData):e},akismetData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===i.RR?t.akismetData:e},akismet:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{validKey:null,invalidKeyCode:"",invalidKeyMessage:""},t=arguments.length>1?arguments[1]:void 0;return t.type===i.BG?(0,o.assign)({},e,t.akismet):e},pluginUpdates:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===i.yE?t.pluginUpdates:e}})},64769:function(e,t,n){"use strict";n(65736),n(21094),n(19570),n(66552)},41147:function(e,t,n){"use strict";n(6861),n(64769)},6861:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),o=n(92819),i=n(67592);n(93107);const c={disconnectingSite:!1,connectingUser:!1,unlinkingUser:!1,fetchingConnectUrl:!1,fetchingUserData:!1,reconnectingSite:!1},a=(0,r.UY)({connectUrl:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.R9:return(0,o.get)(t,"initialState.connectUrl",e);case i.hm:return t.connectUrl;default:return e}},status:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{siteConnected:window.Initial_State.connectionStatus},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.m:case i.BV:return(0,o.assign)({},e,{siteConnected:t.siteConnected});case i.dD:return(0,o.assign)({},e,{siteConnected:{...e.siteConnected,isUserConnected:!1}});case i.yb:return!0===t.userConnectionData?.currentUser?.isConnected?(0,o.assign)({},e,{siteConnected:{...e.siteConnected,hasConnectedOwner:!0}}):e;default:return e}},user:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.userData,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.yb:return(0,o.assign)({},e,t.userConnectionData);case i.dD:const n=(0,o.assign)({},e.currentUser,{isConnected:!1});return(0,o.assign)({},e,{currentUser:n});case i.hF:return(0,o.merge)({},e,t.initialState);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.J1:return(0,o.assign)({},e,{disconnectingSite:!0});case i.IW:return(0,o.assign)({},e,{unlinkingUser:!0});case i.ie:return(0,o.assign)({},e,{connectingUser:!0,connectingUserFeatureLabel:t.featureLabel});case i.AA:return(0,o.assign)({},e,{connectingUser:!1});case i.q7:return(0,o.assign)({},e,{fetchingConnectUrl:!0});case i.lj:return(0,o.assign)({},e,{fetchingUserData:!0});case i.bG:return(0,o.assign)({},e,{reconnectingSite:!0});case i.U7:case i.BV:return(0,o.assign)({},e,{disconnectingSite:!1});case i.Mo:case i.dD:return(0,o.assign)({},e,{unlinkingUser:!1});case i.Uy:case i.hm:return(0,o.assign)({},e,{fetchingConnectUrl:!1});case i.o2:case i.yb:return(0,o.assign)({},e,{fetchingUserData:!1});case i.B9:case i.sO:return(0,o.assign)({},e,{reconnectingSite:!1});default:return e}},hasSeenWCConnectionModal:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.hasSeenWCConnectionModal||!1,t=arguments.length>1?arguments[1]:void 0;return t.type===i.jt||e}})},71565:function(e,t,n){"use strict";n.d(t,{I6:function(){return i}});var r=n(74978),o=n(67592);const i=(0,r.UY)({display:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Yo:return!0;case o.mL:return!1;default:return e}}})},83097:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({disconnectSurvey:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{submitting:!1,submitted:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.me:return(0,o.assign)({},e,{submitting:!0});case i.Vd:return(0,o.assign)({},e,{submitting:!1,submitted:!0,error:null});case i.tl:return(0,o.assign)({},e,{submitting:!1,submitted:!1,error:t.error});default:return e}}})},66552:function(e,t,n){"use strict";n.d(t,{VY:function(){return r.VY},yB:function(){return r.yB},xz:function(){return r.xz},Hh:function(){return r.Hh},hv:function(){return r.hv}});var r=n(67643)},67643:function(e,t,n){"use strict";n.d(t,{E3:function(){return i},xz:function(){return c},Hh:function(){return a},VY:function(){return s},yB:function(){return u},hv:function(){return l}});var r=n(92819),o=n(67592);n(89238),n(13553),n(41147);const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.R9:return(0,r.assign)({},e,t.initialState);case o.hF:return(0,r.merge)({},e,{userData:t.initialState});default:return e}};function c(e){return(0,r.get)(e.jetpack.initialState,"connectedPlugins",{})}function a(e){return(0,r.get)(e.jetpack.initialState,"jetpackBenefits",[])}function s(e){return(0,r.get)(e.jetpack.initialState,"WP_API_nonce")}function u(e){return(0,r.get)(e.jetpack.initialState,"WP_API_root")}function l(e){return(0,r.get)(e.jetpack.initialState,"tracksUserData")}},93036:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({notice:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===i.BV?"disconnected":e},dismissed:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.dismissedNotices,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.tU:return(0,o.assign)({},e,{[t.notice]:!0});case i.Ez:return(0,o.assign)({},e,t.dismissedNotices);case i.c0:return!1;default:return e}}})},88584:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(92819),o=n(74978),i=n(67592);const c=(0,o.UY)({error:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.licensing.error,t=arguments.length>1?arguments[1]:void 0;return t.type===i.U$?t.error:e},userCounts:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.userCounts)&&void 0!==e?e:{},n=arguments.length>1?arguments[1]:void 0;return n.type===i.R5?(0,r.assign)({},t,n.counts):t},activationNoticeDismiss:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.activationNoticeDismiss)&&void 0!==e?e:{last_detached_count:null,last_dismissed_time:null},n=arguments.length>1?arguments[1]:void 0;return n.type===i.lO?(0,r.assign)({},t,n.dismissData):t}})},36900:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({mobile:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{sendingLoginEmail:!1,loginEmailSent:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.oQ:return(0,o.assign)({},e,{sendingLoginEmail:!0});case i.UI:return(0,o.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!0,error:null});case i.Uq:return(0,o.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!1,error:t.error});default:return e}}})},7954:function(e,t,n){"use strict";n(92819),n(65736),n(21094),n(91172),n(19570)},93107:function(e,t,n){"use strict";n(91172),n(7954)},91172:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),o=n(92819),i=n(67592);n(61744);const c={fetchingModulesList:!1,activating:{},deactivating:{},updatingOption:{}},a=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.R9:return(0,o.assign)({},t.initialState.getModules);case i.I3:return(0,o.assign)({},e,t.modules);case i.n2:return(0,o.assign)({},e,{[t.module]:(0,o.assign)({},e[t.module],{activated:!0})});case i.CD:return(0,o.assign)({},e,{[t.module]:(0,o.assign)({},e[t.module],{activated:!1})});case i.Hy:const n=(0,o.assign)({},e[t.module]);return Object.keys(t.newOptionValues).forEach((e=>{n.options[e].current_value=t.newOptionValues[e]})),(0,o.assign)({},e,{[t.module]:n});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.jE:return(0,o.assign)({},e,{fetchingModulesList:!0});case i.kF:case i.I3:return(0,o.assign)({},e,{fetchingModulesList:!1});case i.sG:return(0,o.assign)({},e,{activating:(0,o.assign)({},e.activating,{[t.module]:!0})});case i.Jy:case i.n2:return(0,o.assign)({},e,{activating:(0,o.assign)({},e.activating,{[t.module]:!1})});case i.Gu:return(0,o.assign)({},e,{deactivating:(0,o.assign)({},e.deactivating,{[t.module]:!0})});case i.xk:case i.CD:return(0,o.assign)({},e,{deactivating:(0,o.assign)({},e.deactivating,{[t.module]:!1})});case i.L:const n=(0,o.assign)({},e.updatingOption);return n[t.module]=(0,o.assign)({},n[t.module]),Object.keys(t.newOptionValues).forEach((e=>{n[t.module][e]=!0})),(0,o.assign)({},e,{updatingOption:(0,o.assign)({},e.updatingOption,n)});case i.Lo:case i.Hy:const r=(0,o.assign)({},e.updatingOption);return r[t.module]=(0,o.assign)({},r[t.module]),Object.keys(t.newOptionValues).forEach((e=>{r[t.module][e]=!1})),(0,o.assign)({},e,{updatingOption:(0,o.assign)({},e.updatingOption,r)});default:return e}}})},89238:function(e,t,n){"use strict";n.d(t,{I:function(){return i}});var r=n(74978),o=n(67592);const i=(0,r.UY)({duration:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"yearly",t=arguments.length>1?arguments[1]:void 0;return t.type===o.b8?t.duration:e}})},37457:function(e,t,n){"use strict";n(19570)},13553:function(e,t,n){"use strict";n(79367),n(37457)},79367:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(92819),o=n(74978),i=n(67592);const c=(0,o.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.i7?t.products:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.g:return(0,r.assign)({},e,{isFetchingProducts:!0});case i.i7:case i.ik:return(0,r.assign)({},e,{isFetchingProducts:!1});default:return e}}})},46023:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({connectUrls:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.R9?(0,o.assign)({},t.initialState.externalServicesConnectUrls):e}})},55449:function(e,t,n){"use strict";n(19570)},90218:function(e,t,n){"use strict";n.d(t,{I6:function(){return r.I6}});n(55449);var r=n(68054)},68054:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});n(65736);var r=n(74978),o=n(92819),i=(n(67643),n(67592));n(30701),n(17752),n(88872),n(41147),n(61744);const c=(e,t)=>{if(Array.isArray(e)&&Array.isArray(t))return(0,o.union)(e,t)},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.s6:case i.jb:return(0,o.assign)({},e,t.data);case i.XU:{const n=(0,o.mergeWith)({},e,{selectedRecommendations:[t.slug],skippedRecommendations:[]},c);return n.skippedRecommendations=(0,o.difference)(e.skippedRecommendations,[t.slug]),n}case i.y$:{const n=(0,o.mergeWith)({},e,{selectedRecommendations:[],skippedRecommendations:[t.slug]},c);return n.selectedRecommendations=(0,o.difference)(e.selectedRecommendations,[t.slug]),n}default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.qU:return(0,o.assign)({},e,{isFetchingRecommendationsData:!0});case i.s6:return(0,o.assign)({},e,{isRecommendationsDataLoaded:!0,isFetchingRecommendationsData:!1});case i.z1:return(0,o.assign)({},e,{isFetchingRecommendationsData:!1});case i.Nk:return(0,o.assign)({},e,{isFetchingRecommendationsProductSuggestions:!0});case i.qY:case i.zD:return(0,o.assign)({},e,{isFetchingRecommendationsProductSuggestions:!1});case i.IZ:return(0,o.assign)({},e,{isFetchingRecommendationsUpsell:!0});case i.lh:case i.fX:return(0,o.assign)({},e,{isFetchingRecommendationsUpsell:!1});default:return e}},step:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===i.x1?t.step:e},upsell:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.lh:case i.fX:return t.upsell;default:return e}},productSuggestions:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.qY:case i.zD:return t.productSuggestions;default:return e}}})},11681:function(e,t,n){"use strict";var r=n(74978),o=n(31008),i=n(67643),c=n(50046),a=n(6861),s=n(71565),u=n(89238),l=n(93036),f=n(91172),p=n(40054),d=n(79367),g=n(46023),y=n(90218),h=n(79782),m=n(5606),v=n(7053),E=n(36965),_=n(17881),b=n(76719),S=n(82765),w=n(83097),C=n(50093),T=n(36900),O=n(88584);const A=(0,r.UY)({connection:a.I6,dashboard:c.sI,devCard:s.I6,initialState:i.E3,jetpackNotices:l.I6,modules:f.I6,plans:u.I,pluginsData:p.I6,products:d.I6,publicize:g.I6,recommendations:y.I6,rewind:h.I6,scan:m.I6,search:v.I6,settings:E.I6,siteData:_.I6,siteProducts:b.I6,siteVerify:S.I6,disconnectSurvey:w.I6,trackingSettings:C.I6,mobile:T.I6,licensing:O.I6});t.Z=(0,r.UY)({globalNotices:o.x,jetpack:A})},594:function(e,t,n){"use strict";var r=n(74978),o=n(53126),i=n(11681);t.Z=(0,r.qC)((0,r.md)(o.Z),"object"==typeof window&&void 0!==window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__():e=>e)(r.MT)(i.Z)},35922:function(e,t,n){"use strict";n(19570)},30701:function(e,t,n){"use strict";n(79782),n(35922)},79782:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),o=n(92819),i=n(67592);const c={isFetchingRewindStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Dg:return(0,o.assign)({},e,{status:t.status});case i.Yk:return(0,o.assign)({},e,{status:t.rewindState});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.it:return(0,o.assign)({},e,{isFetchingRewindStatus:!0});case i.Dg:case i.ml:return(0,o.assign)({},e,{isFetchingRewindStatus:!1});default:return e}}})},5606:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),o=n(92819),i=n(67592);const c={isFetchingScanStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.N9:return(0,o.assign)({},e,{status:t.status});case i.M0:return{status:{...e.status,...t.scanState}};default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.fe:return(0,o.assign)({},e,{isFetchingScanStatus:!0});case i.N9:case i.vr:return(0,o.assign)({},e,{isFetchingScanStatus:!1});default:return e}}})},7053:function(e,t,n){"use strict";n.d(t,{I6:function(){return i}});n(92819);var r=n(74978),o=n(67592);const i=(0,r.UY)({searchTerm:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===o.Fc?t.term:e}})},39772:function(e,t,n){"use strict";n(92819),n(65736),n(21094),n(93107),n(19570)},17752:function(e,t,n){"use strict";n(36965),n(39772)},36965:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),o=n(92819),i=n(67592);const c={fetchingSettingsList:!1,settingsSent:{},updatedSettings:{}},a=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.R9:return(0,o.assign)({},e,t.initialState.settings);case i.dS:return(0,o.assign)({},t.settings);case i.jH:const n=Object.keys(t.updatedOption)[0];return(0,o.assign)({},e,{[n]:t.updatedOption[n]});case i.FL:return(0,o.assign)({},e,t.updatedOptions);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.JA:return(0,o.assign)({},e,{fetchingSettingsList:!0});case i.rY:case i.dS:return(0,o.assign)({},e,{fetchingSettingsList:!1});case i.q4:case i.BX:return(0,o.merge)({},e,{settingsSent:(0,o.mapValues)(t.updatedOptions,(()=>!0))});case i.QF:case i.jH:case i.gY:case i.FL:return(0,o.merge)({},e,{settingsSent:(0,o.mapValues)(t.updatedOptions,(()=>!1)),updatedSettings:(0,o.mapValues)(t.updatedOptions,(()=>Boolean(t.success)))});default:return e}},unsavedSettingsFlag:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Ns:return!0;case i.TI:return!1;default:return e}}})},76719:function(e,t,n){"use strict";n.d(t,{I6:function(){return i}});var r=n(74978),o=n(67592);const i=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.QD?t.siteProducts:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Pp:return{...e,isFetching:!0};case o.QD:case o.hz:return{...e,isFetching:!1};default:return e}}})},82765:function(e,t,n){"use strict";n.d(t,{I6:function(){return c}});var r=n(74978),o=n(92819),i=n(67592);const c=(0,r.UY)({google:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{fetching:!1,verifying:!1,verified:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.$F:return(0,o.assign)({},e,{fetching:!0});case i.b6:return(0,o.assign)({},e,{fetching:!1,error:t.error});case i.cz:return(0,o.assign)({},e,{fetching:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,token:t.token,error:null});case i.$d:return(0,o.assign)({},e,{verifying:!0});case i.s9:return(0,o.assign)({},e,{verifying:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,error:null});case i.km:return(0,o.assign)({},e,{verifying:!1,verified:!1,error:t.error});default:return e}}})},74424:function(e,t,n){"use strict";n(19570)},88872:function(e,t,n){"use strict";n(17881),n(74424)},36583:function(e,t,n){"use strict";n(19570)},61744:function(e,t,n){"use strict";n(40054),n(36583)},40054:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(92819),o=n(74978),i=n(67592);const c={isFetchingPluginsData:!1},a=(0,o.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.XP?(0,r.assign)({},t.pluginsData):e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Qm:return(0,r.assign)({},e,{isFetchingPluginsData:!0});case i.K0:case i.XP:return(0,r.assign)({},e,{isFetchingPluginsData:!1});default:return e}}})},17881:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),o=n(92819),i=n(65736),c=(n(81200),n(67592));const __=i.__,a={isFetchingSiteData:!1},s=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case c.fH:return(0,o.assign)({},e,t.siteData);case c.nD:return(0,o.merge)({},e,{site:{benefits:t.siteBenefits}});case c.ar:return(0,o.merge)({},e,{site:{connectedPlugins:t.connectedPlugins}});case c.VN:return(0,o.merge)({},e,{site:{features:t.siteFeatures}});case c.lt:return(0,o.merge)({},e,{sitePlans:t.plans});case c.Ep:return(0,o.merge)({},e,{sitePurchases:t.purchases});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case c.rQ:return(0,o.assign)({},e,{isFetchingSiteData:!0});case c.Mg:return(0,o.assign)({},e,{isFetchingSiteBenefits:!0});case c.a8:return(0,o.assign)({},e,{isFetchingConnectedPlugins:!0});case c.Vl:return(0,o.assign)({},e,{isFetchingSiteFeatures:!0});case c.Fe:return(0,o.assign)({},e,{isFetchingSitePlans:!0});case c.Ab:return(0,o.assign)({},e,{isFetchingSitePurchases:!0});case c.l9:case c.fH:return(0,o.assign)({},e,{isFetchingSiteData:!1});case c.rw:case c.nD:return(0,o.assign)({},e,{isFetchingSiteBenefits:!1});case c.TR:case c.ar:return(0,o.assign)({},e,{isFetchingConnectedPlugins:!1,isDoneFetchingConnectedPlugins:!0});case c.g9:case c.VN:return(0,o.assign)({},e,{isFetchingSiteFeatures:!1});case c.Dz:case c.lt:return(0,o.assign)({},e,{isFetchingSitePlans:!1});case c.zO:case c.Ep:return(0,o.assign)({},e,{isFetchingSitePurchases:!1});default:return e}},errors:function(){let e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(r.type===c.l9){switch(r.error.name){case"ApiError":e="reconnect",t=__("There seems to be a problem with your connection to WordPress.com. If the problem persists, try reconnecting.","jetpack");break;case"JsonParseError":e="support",t=__("Jetpack encountered an error and was unable to display the Dashboard. Please try refreshing the page.","jetpack");break;default:e=null,t=__("There seems to be a problem with your website.","jetpack")}return(0,o.assign)({},n,{message:r.error.hasOwnProperty("response")?r.error.response.message:t,action:e,code:r.error.hasOwnProperty("response")?r.error.response.code:"fetch_site_data_fail_other",data:r.error.hasOwnProperty("response")?r.error.response.data:{}})}return n}})},50093:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(92819),o=n(74978),i=n(67592);const c={fetchingTrackingSettings:!1,updatingTrackingSettings:!1},a=(0,o.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.X0:return(0,r.assign)({},e,t.settings);case i.TB:return(0,r.assign)({},e,t.updatedSettings);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.T:return(0,r.assign)({},e,{fetchingTrackingSettings:!0});case i.YD:case i.X0:return(0,r.assign)({},e,{fetchingTrackingSettings:!1});case i.kK:return(0,r.assign)({},e,{updatingTrackingSettings:!0});case i.rA:case i.TB:return(0,r.assign)({},e,{updatingTrackingSettings:!1});default:return e}}})},90922:function(e,t,n){var r=n(55246),o=n(5806);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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(o=r))})),t.splice(o,0,n)},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&&void 0!==o&&"env"in o&&(e=o.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,r.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=r.debug||r.log||(()=>{}),e.exports=n(31967)(t);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){var r=n(55246);e.exports=function(e){function t(e){let n,r,i,c=null;function a(){for(var e=arguments.length,r=new Array(e),o=0;o<e;o++)r[o]=arguments[o];if(!a.enabled)return;const i=a,c=Number(new Date),s=c-(n||c);i.diff=s,i.prev=n,i.curr=c,n=c,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let u=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";u++;const o=t.formatters[n];if("function"==typeof o){const t=r[u];e=o.call(i,t),r.splice(u,1),u--}return e})),t.formatArgs.call(i,r);const l=i.log||t.log;l.apply(i,r)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=o,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==c?c:(r!==t.namespaces&&(r=t.namespaces,i=t.enabled(e)),i),set:e=>{c=e}}),"function"==typeof t.init&&t.init(a),a}function o(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function i(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(i),...t.skips.map(i).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),o=r.length;for(n=0;n<o;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){r.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},11311:function(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},58370:function(e,t,n){"use strict";var r=n(98304),o=n(57372),i=n(32457),c=n(8639);function a(e){return e.call.bind(e)}var s="undefined"!=typeof BigInt,u="undefined"!=typeof Symbol,l=a(Object.prototype.toString),f=a(Number.prototype.valueOf),p=a(String.prototype.valueOf),d=a(Boolean.prototype.valueOf);if(s)var g=a(BigInt.prototype.valueOf);if(u)var y=a(Symbol.prototype.valueOf);function h(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function m(e){return"[object Map]"===l(e)}function v(e){return"[object Set]"===l(e)}function E(e){return"[object WeakMap]"===l(e)}function _(e){return"[object WeakSet]"===l(e)}function b(e){return"[object ArrayBuffer]"===l(e)}function S(e){return"undefined"!=typeof ArrayBuffer&&(b.working?b(e):e instanceof ArrayBuffer)}function w(e){return"[object DataView]"===l(e)}function C(e){return"undefined"!=typeof DataView&&(w.working?w(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=o,t.isTypedArray=c,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):c(e)||C(e)},t.isUint8Array=function(e){return"Uint8Array"===i(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===i(e)},t.isUint16Array=function(e){return"Uint16Array"===i(e)},t.isUint32Array=function(e){return"Uint32Array"===i(e)},t.isInt8Array=function(e){return"Int8Array"===i(e)},t.isInt16Array=function(e){return"Int16Array"===i(e)},t.isInt32Array=function(e){return"Int32Array"===i(e)},t.isFloat32Array=function(e){return"Float32Array"===i(e)},t.isFloat64Array=function(e){return"Float64Array"===i(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===i(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===i(e)},m.working="undefined"!=typeof Map&&m(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(m.working?m(e):e instanceof Map)},v.working="undefined"!=typeof Set&&v(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(v.working?v(e):e instanceof Set)},E.working="undefined"!=typeof WeakMap&&E(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(E.working?E(e):e instanceof WeakMap)},_.working="undefined"!=typeof WeakSet&&_(new WeakSet),t.isWeakSet=function(e){return _(e)},b.working="undefined"!=typeof ArrayBuffer&&b(new ArrayBuffer),t.isArrayBuffer=S,w.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&w(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=C;var T="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function O(e){return"[object SharedArrayBuffer]"===l(e)}function A(e){return void 0!==T&&(void 0===O.working&&(O.working=O(new T)),O.working?O(e):e instanceof T)}function j(e){return h(e,f)}function P(e){return h(e,p)}function k(e){return h(e,d)}function I(e){return s&&h(e,g)}function N(e){return u&&h(e,y)}t.isSharedArrayBuffer=A,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===l(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===l(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===l(e)},t.isGeneratorObject=function(e){return"[object Generator]"===l(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===l(e)},t.isNumberObject=j,t.isStringObject=P,t.isBooleanObject=k,t.isBigIntObject=I,t.isSymbolObject=N,t.isBoxedPrimitive=function(e){return j(e)||P(e)||k(e)||I(e)||N(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(S(e)||A(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},23333:function(e,t,n){var r=n(5806),o=n(55246),i=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},c=/%[sdj%]/g;t.format=function(e){if(!_(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(l(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,o=r.length,i=String(e).replace(c,(function(e){if("%%"===e)return"%";if(n>=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n<o;a=r[++n])v(a)||!w(a)?i+=" "+a:i+=" "+l(a);return i},t.deprecate=function(e,n){if(void 0!==r&&!0===r.noDeprecation)return e;if(void 0===r)return function(){return t.deprecate(e,n).apply(this,arguments)};var i=!1;return function(){if(!i){if(r.throwDeprecation)throw new Error(n);r.traceDeprecation?o.trace(n):o.error(n),i=!0}return e.apply(this,arguments)}};var a={},s=/^$/;if(r.env.NODE_DEBUG){var u=r.env.NODE_DEBUG;u=u.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),s=new RegExp("^"+u+"$","i")}function l(e,n){var r={seen:[],stylize:p};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),b(r.showHidden)&&(r.showHidden=!1),b(r.depth)&&(r.depth=2),b(r.colors)&&(r.colors=!1),b(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=f),d(r,e,r.depth)}function f(e,t){var n=l.styles[t];return n?"["+l.colors[n][0]+"m"+e+"["+l.colors[n][1]+"m":e}function p(e,t){return e}function d(e,n,r){if(e.customInspect&&n&&O(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,e);return _(o)||(o=d(e,o,r)),o}var i=function(e,t){if(b(t))return e.stylize("undefined","undefined");if(_(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(E(t))return e.stylize(""+t,"number");if(m(t))return e.stylize(""+t,"boolean");if(v(t))return e.stylize("null","null")}(e,n);if(i)return i;var c=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(c);if(e.showHidden&&(c=Object.getOwnPropertyNames(n)),T(n)&&(c.indexOf("message")>=0||c.indexOf("description")>=0))return g(n);if(0===c.length){if(O(n)){var s=n.name?": "+n.name:"";return e.stylize("[Function"+s+"]","special")}if(S(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(T(n))return g(n)}var u,l="",f=!1,p=["{","}"];(h(n)&&(f=!0,p=["[","]"]),O(n))&&(l=" [Function"+(n.name?": "+n.name:"")+"]");return S(n)&&(l=" "+RegExp.prototype.toString.call(n)),C(n)&&(l=" "+Date.prototype.toUTCString.call(n)),T(n)&&(l=" "+g(n)),0!==c.length||f&&0!=n.length?r<0?S(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=f?function(e,t,n,r,o){for(var i=[],c=0,a=t.length;c<a;++c)I(t,String(c))?i.push(y(e,t,n,r,String(c),!0)):i.push("");return o.forEach((function(o){o.match(/^\d+$/)||i.push(y(e,t,n,r,o,!0))})),i}(e,n,r,a,c):c.map((function(t){return y(e,n,r,a,t,f)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,l,p)):p[0]+l+p[1]}function g(e){return"["+Error.prototype.toString.call(e)+"]"}function y(e,t,n,r,o,i){var c,a,s;if((s=Object.getOwnPropertyDescriptor(t,o)||{value:t[o]}).get?a=s.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):s.set&&(a=e.stylize("[Setter]","special")),I(r,o)||(c="["+o+"]"),a||(e.seen.indexOf(s.value)<0?(a=v(n)?d(e,s.value,null):d(e,s.value,n-1)).indexOf("\n")>-1&&(a=i?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),b(c)){if(i&&o.match(/^\d+$/))return a;(c=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(c=c.substr(1,c.length-2),c=e.stylize(c,"name")):(c=c.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),c=e.stylize(c,"string"))}return c+": "+a}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function E(e){return"number"==typeof e}function _(e){return"string"==typeof e}function b(e){return void 0===e}function S(e){return w(e)&&"[object RegExp]"===A(e)}function w(e){return"object"==typeof e&&null!==e}function C(e){return w(e)&&"[object Date]"===A(e)}function T(e){return w(e)&&("[object Error]"===A(e)||e instanceof Error)}function O(e){return"function"==typeof e}function A(e){return Object.prototype.toString.call(e)}function j(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(s.test(e)){var n=r.pid;a[e]=function(){var r=t.format.apply(t,arguments);o.error("%s %d: %s",e,n,r)}}else a[e]=function(){};return a[e]},t.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(58370),t.isArray=h,t.isBoolean=m,t.isNull=v,t.isNullOrUndefined=function(e){return null==e},t.isNumber=E,t.isString=_,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=b,t.isRegExp=S,t.types.isRegExp=S,t.isObject=w,t.isDate=C,t.types.isDate=C,t.isError=T,t.types.isNativeError=T,t.isFunction=O,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(11311);var P=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function k(){var e=new Date,t=[j(e.getHours()),j(e.getMinutes()),j(e.getSeconds())].join(":");return[e.getDate(),P[e.getMonth()],t].join(" ")}function I(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){o.log("%s - %s",k(),t.format.apply(t,arguments))},t.inherits=n(59503),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var N="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function F(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(N&&e[N]){var t;if("function"!=typeof(t=e[N]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),o=[],i=0;i<arguments.length;i++)o.push(arguments[i]);o.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,o)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),N&&Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,i(e))},t.promisify.custom=N,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var o=t.pop();if("function"!=typeof o)throw new TypeError("The last argument must be of type Function");var i=this,c=function(){return o.apply(i,arguments)};e.apply(this,t).then((function(e){r.nextTick(c.bind(null,null,e))}),(function(e){r.nextTick(F.bind(null,e,c))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,i(e)),t}},32457:function(e,t,n){"use strict";var r=n(49478),o=n(87331),i=n(16422),c=i("Object.prototype.toString"),a=n(77828)(),s="undefined"==typeof globalThis?window:globalThis,u=o(),l=i("String.prototype.slice"),f={},p=n(61787),d=Object.getPrototypeOf;a&&p&&d&&r(u,(function(e){if("function"==typeof s[e]){var t=new s[e];if(Symbol.toStringTag in t){var n=d(t),r=p(n,Symbol.toStringTag);if(!r){var o=d(n);r=p(o,Symbol.toStringTag)}f[e]=r.get}}}));var g=n(8639);e.exports=function(e){return!!g(e)&&(a&&Symbol.toStringTag in e?function(e){var t=!1;return r(f,(function(n,r){if(!t)try{var o=n.call(e);o===r&&(t=o)}catch(e){}})),t}(e):l(c(e),8,-1))}},62042:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg"},90724:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-thanks-5873bfac56a9bd7322cd.jpg"},92787:function(e){"use strict";if(void 0==={consumer_slug:"jetpack"}){var t=new Error('Cannot find module \'{"consumer_slug":"jetpack"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"jetpack"}},99196:function(e){"use strict";e.exports=window.React},91850:function(e){"use strict";e.exports=window.ReactDOM},92819:function(e){"use strict";e.exports=window.lodash},55609:function(e){"use strict";e.exports=window.wp.components},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n},96483:function(e){"use strict";e.exports=window.wp.url},87331:function(e){"use strict";var t=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],n="undefined"==typeof globalThis?window:globalThis;e.exports=function(){for(var e=[],r=0;r<t.length;r++)"function"==typeof n[t[r]]&&(e[e.length]=t[r]);return e}},61787:function(e,t,n){"use strict";var r=n(25165)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},71446:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=n(99112);function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},5343:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}n.d(t,{Z:function(){return r}})},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r](i,i.exports,n),i.loaded=!0,i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(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.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");r.length&&(e=r[r.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e}(),function(){"use strict";var e=n(91850),t=n.n(e),r=n(99196),o=n.n(r),i=n(2620),c=n(594),a=n(60265);function s(){const e=document.getElementById("jetpack-plugin-portal-app");t().render(o().createElement(i.zt,{store:c.Z},o().createElement(a.Z,null)),e)}"loading"!==document.readyState?s():document.addEventListener("DOMContentLoaded",(()=>{s()}))}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/plugins-page.js.LICENSE.txt b/plugins/jetpack/_inc/build/plugins-page.js.LICENSE.txt
new file mode 100644
index 00000000..424474e0
--- /dev/null
+++ b/plugins/jetpack/_inc/build/plugins-page.js.LICENSE.txt
@@ -0,0 +1,15 @@
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+
+/** @license React v16.13.1
+ * react-is.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/plugins/jetpack/_inc/build/plugins-page.rtl.css b/plugins/jetpack/_inc/build/plugins-page.rtl.css
new file mode 100644
index 00000000..ed2cc54b
--- /dev/null
+++ b/plugins/jetpack/_inc/build/plugins-page.rtl.css
@@ -0,0 +1 @@
+.jetpack-benefits__general-benefits-section{margin:0 auto;max-width:800px;width:100%}.jetpack-benefits__general-benefits-list{font-size:1rem;list-style:disc;padding-right:1.25rem;text-align:right;width:100%}.jp-connection__disconnect-card{background-color:#fff;border:none;border-radius:3px;box-shadow:0 0 15px #e2e2df;margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:right;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-left:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:left}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-left:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:0;margin-right:1rem}}.jp-connection__disconnect-dialog h1{font-size:24px;font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:24px;font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:16px;margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:#000;font-size:16px;font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:#000;text-decoration-thickness:2px}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:#000}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:#f9f9f6;border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:#fff;border-top:1px solid #dcdcde;bottom:0;padding:2rem 0;position:-webkit-sticky;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(180deg,transparent,#f9f9f6);bottom:calc(100% + 1px);content:"";display:block;height:80px;position:absolute;right:0;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:#000!important;margin-left:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:#d63639!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:#000!important}.jp-connection__disconnect-dialog__button-wrap{text-align:right}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:#d63639}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:36px}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-right:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px #dcdcde;display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:#dcdcde;background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;position:absolute;right:24px;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:#d63639;border-radius:50px;height:80px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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 #069e08;border-radius:4px;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:2px}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(-8px)}.jp-cut:after{color:#069e08;content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px #e2e2df;margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:right;width:800px}.jp-connect__disconnect-survey-card--selected{background:#e2e2df;border-color:#000}.jp-connect__disconnect-survey-card:after{border-left:2px solid #000;border-top:2px solid #000;content:"";display:block;height:5px;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%) rotate(-45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:#2c3338}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:#2c3338;flex-grow:1;max-width:calc(100% - 40px);padding-left:40px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/polldaddy-shortcode.min.asset.php b/plugins/jetpack/_inc/build/polldaddy-shortcode.min.asset.php
new file mode 100644
index 00000000..b0cd1063
--- /dev/null
+++ b/plugins/jetpack/_inc/build/polldaddy-shortcode.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'd83654b089888e5f2758f8b1aecfdbe8'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/polldaddy-shortcode.min.js b/plugins/jetpack/_inc/build/polldaddy-shortcode.min.js
index 8ca62741..6c98a837 100644
--- a/plugins/jetpack/_inc/build/polldaddy-shortcode.min.js
+++ b/plugins/jetpack/_inc/build/polldaddy-shortcode.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t){window.polldaddyshortcode={render:function(){var e=t("div.pd-rating[data-settings]"),d=t("div.PDS_Poll[data-settings]");if(d&&t.each(d,function(){var e=t(this).data("settings");if(e){var d=document.createElement("a");if(d.href=e.url,"secure.polldaddy.com"!=d.hostname&&"static.polldaddy.com"!=d.hostname)return!1;var i=d.pathname;if(!/\/?p\/\d+\.js/.test(i))return!1;var a=document.createElement("script");a.type="text/javascript",a.src=e.url,a.charset="utf-8",a.async=!0,document.getElementsByTagName("head")[0].appendChild(a)}}),e){var i="";t.each(e,function(){var e=t(this).data("settings");e&&(i+="PDRTJS_settings_"+e.id+e.item_id+"="+e.settings+"; if ( typeof PDRTJS_RATING !== 'undefined' ){ if ( typeof PDRTJS_"+e.id+e.item_id+"=='undefined' ){PDRTJS_"+e.id+e.item_id+"= new PDRTJS_RATING( PDRTJS_settings_"+e.id+e.item_id+" );}}")}),i.length>0&&t("#polldaddyRatings").after("<script type='text/javascript' charset='utf-8' id='polldaddyDynamicRatings'>"+i+"<\/script>")}}},t("body").on("post-load pd-script-load",function(){window.polldaddyshortcode.render()}),t("body").trigger("pd-script-load")}(jQuery); \ No newline at end of file
+!function(){var t;t=jQuery,window.polldaddyshortcode={render:function(){var e=t("div.pd-rating[data-settings]"),d=t("div.PDS_Poll[data-settings]");if(d&&t.each(d,(function(){var e=t(this).data("settings");if(e){var d=document.createElement("a");if(d.href=e.url,"secure.polldaddy.com"!=d.hostname&&"static.polldaddy.com"!=d.hostname)return!1;var i=d.pathname;if(!/\/?p\/\d+\.js/.test(i))return!1;var a=document.createElement("script");a.type="text/javascript",a.src=e.url,a.charset="utf-8",a.async=!0,document.getElementsByTagName("head")[0].appendChild(a)}})),e){var i="";t.each(e,(function(){var e=t(this).data("settings");e&&(i+="PDRTJS_settings_"+e.id+e.item_id+"="+e.settings+"; if ( typeof PDRTJS_RATING !== 'undefined' ){ if ( typeof PDRTJS_"+e.id+e.item_id+"=='undefined' ){PDRTJS_"+e.id+e.item_id+"= new PDRTJS_RATING( PDRTJS_settings_"+e.id+e.item_id+" );}}")})),i.length>0&&t("#polldaddyRatings").after("<script type='text/javascript' charset='utf-8' id='polldaddyDynamicRatings'>"+i+"<\/script>")}}},t("body").on("post-load pd-script-load",(function(){window.polldaddyshortcode.render()})),t("body").trigger("pd-script-load")}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.asset.php b/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.asset.php
new file mode 100644
index 00000000..8c40f4f9
--- /dev/null
+++ b/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '9c92304d5bc683ae4e05261b3b7c9bf4'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.js b/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.js
index 368bcddb..c9549b7b 100644
--- a/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.js
+++ b/plugins/jetpack/_inc/build/related-posts/related-posts-customizer.min.js
@@ -1,5 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/**
- * Adds functionality for Related Posts controls in Customizer.
- */
-!function(t){"use strict";t("jetpack_relatedposts[show_headline]",function(e){t.control("jetpack_relatedposts[headline]",function(t){var n,i;i=function(){return e.findControls()[0].active.get()&&e.get()},n=function(){t.active.set(i())},t.active.validate=i,n(),e.bind(n)})})}(wp.customize); \ No newline at end of file
+!function(t){"use strict";t("jetpack_relatedposts[show_headline]",(function(e){t.control("jetpack_relatedposts[headline]",(function(t){var n,i;i=function(){return e.findControls()[0].active.get()&&e.get()},n=function(){t.active.set(i())},t.active.validate=i,n(),e.bind(n)}))}))}(wp.customize); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/related-posts/related-posts.min.asset.php b/plugins/jetpack/_inc/build/related-posts/related-posts.min.asset.php
new file mode 100644
index 00000000..697704f5
--- /dev/null
+++ b/plugins/jetpack/_inc/build/related-posts/related-posts.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '4c831b82cc3066530b246b70d8294a81'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/related-posts/related-posts.min.js b/plugins/jetpack/_inc/build/related-posts/related-posts.min.js
index 740527f3..93cdddb4 100644
--- a/plugins/jetpack/_inc/build/related-posts/related-posts.min.js
+++ b/plugins/jetpack/_inc/build/related-posts/related-posts.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* globals related_posts_js_options */
-!function(t){var e={response:null,getEndpointURL:function(e){var s,a="undefined"!=typeof wp&&wp.customize&&wp.customize.settings&&wp.customize.settings.url&&wp.customize.settings.url.self;a?(s=document.createElement("a")).href=wp.customize.settings.url.self:s=document.location,"string"==typeof e&&e.match(/^https?:\/\//)&&((s=document.createElement("a")).href=e);var o="relatedposts=1";t("#jp-relatedposts").data("exclude")&&(o+="&relatedposts_exclude="+t("#jp-relatedposts").data("exclude")),a&&(o+="&jetpackrpcustomize=1");var p=s.pathname;return"/"!==p[0]&&(p="/"+p),""===s.search?p+"?"+o:p+s.search+"&"+o},getAnchor:function(e,s){var a=e.title;""!=""+e.excerpt&&(a+="\n\n"+e.excerpt);var o=t("<a>");o.attr({class:s,href:e.url,title:a,"data-origin":e.url_meta.origin,"data-position":e.url_meta.position}),""!==e.rel&&o.attr({rel:e.rel});var p=t("<div>").append(o).html();return[p.substring(0,p.length-4),"</a>"]},generateMinimalHtml:function(e,s){var a=this,o="";return t.each(e,function(t,e){var p=a.getAnchor(e,"jp-relatedposts-post-a"),r="jp-relatedposts-post jp-relatedposts-post"+t;e.classes.length>0&&(r+=" "+e.classes.join(" ")),o+='<p class="'+r+'" data-post-id="'+e.id+'" data-post-format="'+e.format+'">',o+='<span class="jp-relatedposts-post-title">'+p[0]+e.title+p[1]+"</span>",s.showDate&&(o+='<span class="jp-relatedposts-post-date">'+e.date+"</span>"),s.showContext&&(o+='<span class="jp-relatedposts-post-context">'+e.context+"</span>"),o+="</p>"}),'<div class="jp-relatedposts-items jp-relatedposts-items-minimal jp-relatedposts-'+s.layout+' ">'+o+"</div>"},generateVisualHtml:function(e,s){var a=this,o="";return t.each(e,function(e,p){var r=a.getAnchor(p,"jp-relatedposts-post-a"),i="jp-relatedposts-post jp-relatedposts-post"+e;if(p.classes.length>0&&(i+=" "+p.classes.join(" ")),p.img.src?i+=" jp-relatedposts-post-thumbs":i+=" jp-relatedposts-post-nothumbs",o+='<div class="'+i+'" data-post-id="'+p.id+'" data-post-format="'+p.format+'">',p.img.src)o+=r[0]+'<img class="jp-relatedposts-post-img" src="'+p.img.src+'" width="'+p.img.width+'" alt="'+p.title+'" />'+r[1];else{var n=a.getAnchor(p,"jp-relatedposts-post-a jp-relatedposts-post-aoverlay");o+=n[0]+n[1]}o+="<"+related_posts_js_options.post_heading+' class="jp-relatedposts-post-title">'+r[0]+p.title+r[1]+"</"+related_posts_js_options.post_heading+">",o+='<p class="jp-relatedposts-post-excerpt">'+t("<p>").text(p.excerpt).html()+"</p>",s.showDate&&(o+='<p class="jp-relatedposts-post-date">'+p.date+"</p>"),s.showContext&&(o+='<p class="jp-relatedposts-post-context">'+p.context+"</p>"),o+="</div>"}),'<div class="jp-relatedposts-items jp-relatedposts-items-visual jp-relatedposts-'+s.layout+' ">'+o+"</div>"},setVisualExcerptHeights:function(){var e=t("#jp-relatedposts .jp-relatedposts-post-nothumbs .jp-relatedposts-post-excerpt");if(!(0>=e.length)){var s=parseInt(e.first().css("font-size"),10),a=parseInt(e.first().css("line-height"),10);e.css("max-height",5*a/s+"em")}},getTrackedUrl:function(e){var s="relatedposts_hit=1";s+="&relatedposts_origin="+t(e).data("origin"),s+="&relatedposts_position="+t(e).data("position");var a=e.pathname;return"/"!==a[0]&&(a="/"+a),""===e.search?a+"?"+s:a+e.search+"&"+s},cleanupTrackedUrl:function(){if("function"==typeof history.replaceState){var t=document.location.search.replace(/\brelatedposts_[a-z]+=[0-9]*&?\b/gi,"");"?"===t&&(t=""),document.location.search!==t&&history.replaceState({},document.title,document.location.pathname+t)}}};function s(){e.setVisualExcerptHeights(),t("#jp-relatedposts a.jp-relatedposts-post-a").click(function(){this.href=e.getTrackedUrl(this)})}function a(){e.cleanupTrackedUrl();var a=e.getEndpointURL(),o=t("#jp-relatedposts");t("#jp-relatedposts .jp-relatedposts-post").length?s():t.getJSON(a,function(t){if(0!==t.items.length&&0!==o.length){e.response=t;var a,p,r={};"undefined"!=typeof wp&&wp.customize?(p=wp.customize.instance("jetpack_relatedposts[show_thumbnails]").get(),r.showDate=wp.customize.instance("jetpack_relatedposts[show_date]").get(),r.showContext=wp.customize.instance("jetpack_relatedposts[show_context]").get(),r.layout=wp.customize.instance("jetpack_relatedposts[layout]").get()):(p=t.show_thumbnails,r.showDate=t.show_date,r.showContext=t.show_context,r.layout=t.layout),a=p?e.generateVisualHtml(t.items,r):e.generateMinimalHtml(t.items,r),o.append(a),r.showDate&&o.find(".jp-relatedposts-post-date").show(),o.show(),s()}})}t(function(){"undefined"!=typeof wp&&wp.customize?(wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(t){"jetpack_relatedposts"===t.partial.id&&a()}),wp.customize.bind("preview-ready",a)):a()})}(jQuery); \ No newline at end of file
+!function(){"use strict";var t={response:null,getEndpointURL:function(t){var e,s="undefined"!=typeof wp&&wp.customize&&wp.customize.settings&&wp.customize.settings.url&&wp.customize.settings.url.self;s?(e=document.createElement("a")).href=wp.customize.settings.url.self:e=document.location,"string"==typeof t&&t.match(/^https?:\/\//)&&((e=document.createElement("a")).href=t);var a="relatedposts=1",o=document.querySelector("#jp-relatedposts");if(!o)return!1;o.hasAttribute("data-exclude")&&(a+="&relatedposts_exclude="+o.getAttribute("data-exclude")),s&&(a+="&jetpackrpcustomize=1");var r=e.pathname;return"/"!==r[0]&&(r="/"+r),""===e.search?r+"?"+a:r+e.search+"&"+a},getAnchor:function(t,e){var s=t.title,a=document.createElement("a");a.setAttribute("class",e),a.setAttribute("href",t.url),a.setAttribute("title",s),a.setAttribute("data-origin",t.url_meta.origin),a.setAttribute("data-position",t.url_meta.position),""!==t.rel&&a.setAttribute("rel",t.rel);var o=document.createElement("div");o.appendChild(a);var r=o.innerHTML;return[r.substring(0,r.length-4),"</a>"]},generateMinimalHtml:function(t,e){var s=this,a="";return t.forEach((function(t,o){var r=s.getAnchor(t,"jp-relatedposts-post-a"),p="jp-relatedposts-post jp-relatedposts-post"+o;t.classes.length>0&&(p+=" "+t.classes.join(" ")),a+='<p class="'+p+'" data-post-id="'+t.id+'" data-post-format="'+t.format+'">',a+='<span class="jp-relatedposts-post-title">'+r[0]+t.title+r[1]+"</span>",e.showDate&&(a+='<time class="jp-relatedposts-post-date" datetime="'+t.date+'">'+t.date+"</time>"),e.showContext&&(a+='<span class="jp-relatedposts-post-context">'+t.context+"</span>"),a+="</p>"})),'<div class="jp-relatedposts-items jp-relatedposts-items-minimal jp-relatedposts-'+e.layout+' ">'+a+"</div>"},generateVisualHtml:function(t,e){var s=this,a="";return t.forEach((function(t,o){var r=s.getAnchor(t,"jp-relatedposts-post-a"),p="jp-relatedposts-post jp-relatedposts-post"+o;t.classes.length>0&&(p+=" "+t.classes.join(" ")),t.img.src?p+=" jp-relatedposts-post-thumbs":p+=" jp-relatedposts-post-nothumbs";var n=document.createElement("p");n.innerHTML=t.excerpt;var i=n.textContent;if(a+='<div class="'+p+'" data-post-id="'+t.id+'" data-post-format="'+t.format+'">',t.img.src)a+=r[0]+'<img class="jp-relatedposts-post-img" loading="lazy" src="'+t.img.src+'" width="'+t.img.width+'" height="'+t.img.height+'" alt="'+t.img.alt_text+'" />'+r[1];else{var l=s.getAnchor(t,"jp-relatedposts-post-a jp-relatedposts-post-aoverlay");a+=l[0]+l[1]}a+="<"+related_posts_js_options.post_heading+' class="jp-relatedposts-post-title">'+r[0]+t.title+r[1]+"</"+related_posts_js_options.post_heading+">",a+='<p class="jp-relatedposts-post-excerpt">'+i+"</p>",e.showDate&&(a+='<time class="jp-relatedposts-post-date" datetime="'+t.date+'">'+t.date+"</time>"),e.showContext&&(a+='<p class="jp-relatedposts-post-context">'+t.context+"</p>"),a+="</div>"})),'<div class="jp-relatedposts-items jp-relatedposts-items-visual jp-relatedposts-'+e.layout+' ">'+a+"</div>"},setVisualExcerptHeights:function(){var t=document.querySelectorAll("#jp-relatedposts .jp-relatedposts-post-nothumbs .jp-relatedposts-post-excerpt");if(t.length)for(var e=getComputedStyle(t[0]),s=parseInt(e.fontSize,10),a=parseInt(e.lineHeight,10),o=0;o<t.length;o++)t[o].style.maxHeight=5*a/s+"em"},getTrackedUrl:function(t){var e="relatedposts_hit=1";e+="&relatedposts_origin="+t.getAttribute("data-origin"),e+="&relatedposts_position="+t.getAttribute("data-position");var s=t.pathname;return"/"!==s[0]&&(s="/"+s),""===t.search?s+"?"+e:s+t.search+"&"+e},cleanupTrackedUrl:function(){if("function"==typeof history.replaceState){var t=document.location.search.replace(/\brelatedposts_[a-z]+=[0-9]*&?\b/gi,"");"?"===t&&(t=""),document.location.search!==t&&history.replaceState({},document.title,document.location.pathname+t)}}};function e(){t.setVisualExcerptHeights();var e=document.querySelectorAll("#jp-relatedposts a.jp-relatedposts-post-a");Array.prototype.forEach.call(e,(function(e){document.addEventListener("click",(function(){e.href=t.getTrackedUrl(e)}))}))}function s(){t.cleanupTrackedUrl();var s=t.getEndpointURL(),a=document.querySelector("#jp-relatedposts");if(s)if(document.querySelectorAll("#jp-relatedposts .jp-relatedposts-post").length)e();else{var o=new XMLHttpRequest;o.open("GET",s,!0),o.setRequestHeader("x-requested-with","XMLHttpRequest"),o.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&200===this.status)try{var s=JSON.parse(o.responseText);if(0===s.items.length||0===a.length)return;t.response=s;var r,p,n={};"undefined"!=typeof wp&&wp.customize?(p=wp.customize.instance("jetpack_relatedposts[show_thumbnails]").get(),n.showDate=wp.customize.instance("jetpack_relatedposts[show_date]").get(),n.showContext=wp.customize.instance("jetpack_relatedposts[show_context]").get(),n.layout=wp.customize.instance("jetpack_relatedposts[layout]").get()):(p=s.show_thumbnails,n.showDate=s.show_date,n.showContext=s.show_context,n.layout=s.layout),r=p?t.generateVisualHtml(s.items,n):t.generateMinimalHtml(s.items,n);var i=document.createElement("div");if(a.appendChild(i),i.outerHTML=r,n.showDate){var l=a.querySelectorAll(".jp-relatedposts-post-date");Array.prototype.forEach.call(l,(function(t){t.style.display="block"}))}a.style.display="block",e()}catch(t){}},o.send()}}function a(){"undefined"!=typeof wp&&wp.customize?(wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(t){"jetpack_relatedposts"===t.partial.id&&s()})),wp.customize.bind("preview-ready",s)):s()}"loading"!==document.readyState?a():document.addEventListener("DOMContentLoaded",a)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.asset.php b/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.asset.php
new file mode 100644
index 00000000..024d0386
--- /dev/null
+++ b/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'a5f0b24424e075824e1aee7b6ae2f520'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.js b/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.js
new file mode 100644
index 00000000..40715fea
--- /dev/null
+++ b/plugins/jetpack/_inc/build/scan/admin-bar-notice.min.js
@@ -0,0 +1 @@
+!function(e){var t;function n(t){var n=document.getElementById("wp-admin-bar-jetpack-scan-notice");if(n)if(t){var a=1==t?e.singular:e.multiple;n.innerHTML='<a href="'+e.scan_dashboard_url+'" class="ab-item">'+a+"</a>"}else n.parentNode.removeChild(n)}t=function(){var t;(t=new XMLHttpRequest).open("GET",e.scan_endpoint,!0),t.onload=function(){if(200==this.status){var e=JSON.parse(this.response);if(e&&e.data){var t=JSON.parse(e.data);n(t.threats&&t.threats.length?t.threats.length:0)}else n(0)}else n(0)},t.setRequestHeader("X-WP-Nonce",e.nonce),t.send()},"loading"!=document.readyState?t():document.addEventListener("DOMContentLoaded",t)}(window.Jetpack_Scan); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/search-dashboard.asset.php b/plugins/jetpack/_inc/build/search-dashboard.asset.php
new file mode 100644
index 00000000..65dbd666
--- /dev/null
+++ b/plugins/jetpack/_inc/build/search-dashboard.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'db9ad6d9d79e48a59a72499fcb57fdf3'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/search-dashboard.css b/plugins/jetpack/_inc/build/search-dashboard.css
new file mode 100644
index 00000000..49891d00
--- /dev/null
+++ b/plugins/jetpack/_inc/build/search-dashboard.css
@@ -0,0 +1 @@
+.dops-popover{font-size:11px;left:0;position:absolute;right:auto;top:0;z-index:1000}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);position:relative;text-align:center}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{border-bottom:none;border-left-color:transparent;border-right-color:transparent;border-top-style:solid;bottom:0;left:50%;margin-left:-10px}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{border:10px solid transparent;border-bottom:none;border-top-color:#fff;bottom:2px;content:" ";left:50%;margin-left:-10px;position:absolute}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{border-bottom-style:solid;border-left-color:transparent;border-right-color:transparent;border-top:none;left:50%;margin-left:-10px;top:0}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{border:10px solid transparent;border-bottom:10px solid #fff;border-top:none;content:" ";left:50%;margin-left:-10px;position:absolute;top:2px}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{border-bottom-color:transparent;border-left-style:solid;border-right:none;border-top-color:transparent;margin-top:-10px;right:0;top:50%}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{border:10px solid transparent;border-left:10px solid #fff;border-right:none;content:" ";margin-top:-10px;position:absolute;right:2px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{border-bottom-color:transparent;border-left:none;border-right-style:solid;border-top-color:transparent;left:0;margin-top:-10px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{border:10px solid transparent;border-left:none;border-right-color:#fff;content:" ";left:2px;margin-top:-10px;position:absolute;top:50%}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-left:0;padding-right:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;right:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;position:relative;text-align:left;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#3582c4;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-left:42px}.dops-popover__menu-item .gridicon{color:#bbb;margin-right:8px;vertical-align:bottom}.dops-popover__hr{background:#eee;margin:8px 0}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-block;flex:none;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:40px}.form-toggle__switch:after,.form-toggle__switch:before{content:"";display:block;height:20px;position:relative;width:20px}.form-toggle__switch:after{background:#fff;border-radius:50%;left:0;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle__label{cursor:pointer;display:flex}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-left:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #3582c4}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{cursor:default;opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;height:16px;width:24px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(1px,1px)}.gridicon.needs-offset-x g{transform:translate(1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;display:block;margin:0 auto 10px;padding:16px;position:relative}.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media(min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-right:48px}h2.dops-card-title{font-size:rem(20px)}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;position:absolute;right:16px;top:0}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#3582c4,20%)}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{color:#c8c8c8;cursor:pointer}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:left}.dops-external-link .gridicons-external{color:currentColor;margin-left:.5rem;position:relative;top:.125rem}#jp-plugin-container{min-height:100vh}.jp-support-info{position:absolute;right:1.5625rem;top:1.6875rem;z-index:1}@media(max-width:480px){.jp-support-info{right:1rem;top:1.25rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{border-top:1px solid hsla(0,0%,64%,.5);display:block;margin-top:.875rem;padding-top:.75rem}.dops-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:3px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:.875rem;margin:0;outline:0;overflow:hidden;padding:7px 14px 9px;text-decoration:none;text-overflow:ellipsis;vertical-align:top}.dops-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.dops-button:disabled,.dops-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.dops-button.is-compact{line-height:2;padding:0 10px}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{margin-top:-8px;top:4px}.dops-button.is-compact .gridicons-plus-small{margin-left:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-left:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-left:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{height:18px;margin-top:-2px;position:relative;top:4px;width:18px}.dops-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:none!important}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{border-color:#eee;color:#f4cdcd}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-left:0;padding-right:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{height:24px;top:6px;width:24px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{background:#fff;color:#eee;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{height:18px;top:5px;width:18px}.jp-instant-search-upsell-nudge{color:#000;cursor:pointer;font-size:1em;text-decoration:none}.jp-instant-search-upsell-nudge:hover{color:#000}.jp-search-dashboard-wrap{align-items:center;display:flex;flex-flow:column nowrap;justify-content:center;margin:0 auto;width:100%}.jp-search-dashboard-row{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:calc(100% - 32px)}@media(min-width:600px){.jp-search-dashboard-row{grid-template-columns:repeat(8,1fr);margin:0 18px;width:calc(100% - 36px)}}@media(min-width:960px){.jp-search-dashboard-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px;width:calc(100% - 48px)}}.jp-search-dashboard-row .sm-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .sm-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .sm-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.jp-search-dashboard-row .md-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .md-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .md-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .md-col-span-4{grid-column-end:span 4}.jp-search-dashboard-row .md-col-span-5{grid-column-end:span 5}.jp-search-dashboard-row .md-col-span-6{grid-column-end:span 6}.jp-search-dashboard-row .md-col-span-7{grid-column-end:span 7}.jp-search-dashboard-row .md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.jp-search-dashboard-row .lg-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .lg-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .lg-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .lg-col-span-4{grid-column-end:span 4}.jp-search-dashboard-row .lg-col-span-5{grid-column-end:span 5}.jp-search-dashboard-row .lg-col-span-6{grid-column-end:span 6}.jp-search-dashboard-row .lg-col-span-7{grid-column-end:span 7}.jp-search-dashboard-row .lg-col-span-8{grid-column-end:span 8}.jp-search-dashboard-row .lg-col-span-9{grid-column-end:span 9}.jp-search-dashboard-row .lg-col-span-10{grid-column-end:span 10}.jp-search-dashboard-row .lg-col-span-11{grid-column-end:span 11}.jp-search-dashboard-row .lg-col-span-12{grid-column-end:span 12}.jp-search-dashboard-row .lg-col-span-0{display:none}}@media(max-width:960px){.jp-search-dashboard-row .md-col-span-0{display:none}}@media(max-width:600px){.jp-search-dashboard-row .sm-col-span-0{display:none}.jp-search-dashboard-row .sm-col-span-1{display:block}}.jp-form-search-settings-group{width:100%}.jp-form-search-settings-group .dops-card{box-shadow:none;padding:4em 0 0}.jp-form-search-settings-group .form-toggle__label{margin:0}.jp-form-search-settings-group__toggle.is-instant-search{margin-top:4em}.jp-form-search-settings-group__toggle .form-toggle__label-content{display:none}.jp-form-search-settings-group__toggle .jp-form-search-settings-group__toggle-container{display:flex}@media(max-width:960px){.jp-form-search-settings-group__toggle .jp-form-search-settings-group__toggle-container{justify-content:center}}.jp-form-search-settings-group__toggle_label{font-size:1.5em;font-weight:600;line-height:1.167}.jp-form-search-settings-group__toggle_label span{font-weight:400}.jp-form-search-settings-group__toggle-description{margin-top:1em}p.jp-form-search-settings-group__toggle-explanation{font-size:1em;font-weight:400;line-height:1.5;margin-bottom:0}.jp-form-search-settings-group-buttons{margin-top:1.5em}.jp-form-search-settings-group-buttons__button{align-items:center;border-color:#000;display:flex;font-size:1em;justify-content:center;min-height:2.5em;padding:.5em 1.5em;text-align:center}.jp-form-search-settings-group-buttons__button.is-customize-search{background-color:#000;color:#fff}.jp-form-search-settings-group-buttons__button:disabled,.jp-form-search-settings-group-buttons__button[disabled]{background-color:#dcdcde;border-color:#dcdcde;color:#a7aaad;cursor:not-allowed}.jp-form-search-settings-group-buttons__button.is-widgets-editor{background:transparent;color:#000}.jp-form-search-settings-group-buttons__button.is-widgets-editor:disabled,.jp-form-search-settings-group-buttons__button.is-widgets-editor[disabled]{background:transparent;color:#a7aaad}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch{background:#fff;border:2px solid #000;border-radius:.75em;height:1.5em;width:3em}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:before{background-color:#000;height:.9375em;width:.9375em}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle.is-search-admin.is-compact:checked+.form-toggle__label .form-toggle__switch{background:#069e08;border-color:#069e08}.form-toggle.is-search-admin.is-compact:checked+.form-toggle__label .form-toggle__switch:after{background-color:#fff;left:1.5em}.form-toggle.is-search-admin.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before{left:1.5em}.form-toggle.is-search-admin.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before{left:0}.jp-search-dashboard-cut{border:2px solid #069e08;border-radius:4px;display:block;margin:2em 0;padding:1em 4em 1em 1.5em;position:relative;text-decoration:none}.jp-search-dashboard-cut span{display:block}.jp-search-dashboard-cut span:last-of-type{font-weight:600}.jp-search-dashboard-cut:focus span:last-of-type,.jp-search-dashboard-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:2px}.jp-search-dashboard-cut:focus:after,.jp-search-dashboard-cut:hover:after{transform:translateY(-50%) translateX(8px)}.jp-search-dashboard-cut:after{color:#069e08;content:"→";font-size:1.5em;font-weight:600;position:absolute;right:1.5em;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-mocked-instant-search{background:#fff;border-radius:3px;box-shadow:0 5px 25px rgba(0,0,0,.35);font-size:.75em;height:100%;margin:0 auto;overflow:hidden;-webkit-user-select:none;user-select:none;width:100%}.jp-mocked-instant-search__search-controls{align-items:center;border-bottom:1px solid #e6f1f5;display:flex;flex-flow:row nowrap;justify-content:space-between}.jp-mocked-instant-search__search-icon{align-items:center;display:flex;height:60px;justify-content:center;width:60px}@media(max-width:660px){.jp-mocked-instant-search__search-icon{height:45px;width:45px}}.jp-mocked-instant-search__search-mock-input{width:calc(100% - 120px)}.jp-mocked-instant-search__close-button{align-items:center;background-color:transparent!important;border-left:1px solid #e6f1f5;display:flex;height:60px;justify-content:center;line-height:1;width:60px}.jp-mocked-instant-search__close-button svg.gridicon{fill:#646970}@media(max-width:660px){.jp-mocked-instant-search__close-button{height:45px;width:45px}}.jp-mocked-instant-search__search-results{display:flex;height:100%;position:relative}.jp-mocked-instant-search__search-results-primary{padding:1em 4em;width:100%}@media(min-width:661px){.jp-mocked-instant-search__search-results-primary{max-width:calc(100% - 220px)}}@media(max-width:660px){.jp-mocked-instant-search__search-results-primary{padding:2em}}.jp-mocked-instant-search__search-results-header{align-items:center;display:flex;flex-flow:row wrap;justify-content:space-between}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-statistics{font-size:1em;font-weight:700}@media(max-width:480px){.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-statistics{width:100%}}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list span{font-size:1em;margin-left:.5em}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list span:first-child{margin-left:0}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list .jp-mocked-instant-search__result-sort-selected{color:#069e08}@media(max-width:480px){.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list{width:100%}}.jp-mocked-instant-search__search-result{margin-top:1em}.jp-mocked-instant-search__search-results-secondary{background:none;border-left:1px solid #e6f1f5;border-radius:0;bottom:0;box-shadow:none;display:block;flex:none;padding-left:2em;padding-top:1em;position:static;width:220px}@media(max-width:660px){.jp-mocked-instant-search__search-results-secondary{display:none}}.jp-mocked-instant-search__search-filter-header{font-weight:700}.jp-mocked-instant-search__search-filter label{cursor:default}.jp-mocked-instant-search__search-filter label input[type=checkbox]{border:1px solid #e6e6fa;border-radius:5px;cursor:default}.jp-mocked-instant-search__search-filter span{background-color:#e6e6fa;display:inline-block;line-height:1.35;margin-left:1em;width:50em}.jp-mocked-instant-search__search-filter input[type=checkbox]{height:1em;width:1em}.jp-mocked-instant-search__search-filter-list{margin-top:1em}.jp-mocked-legacy-search{border-radius:3px;margin:0 auto;-webkit-user-select:none;user-select:none;width:100%}.jp-mocked-legacy-search__search-controls{background:#fff;box-shadow:0 5px 25px rgba(0,0,0,.35);display:flex;flex-flow:row nowrap;width:100%}.jp-mocked-legacy-search__search-icon{align-items:center;display:flex;height:60px;justify-content:center;width:60px}.jp-mocked-legacy-search__search-input{align-items:center;display:flex;width:100%}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}#screen-meta,#screen-meta-links{display:none}#jp-search-dashboard{color:#000;font-size:16px;min-height:100vh}#jp-search-dashboard .jp-masthead__logo-link{pointer-events:none}#jp-search-dashboard .jp-search-dashboard-top{background-color:#f9f9f6;overflow:hidden}#jp-search-dashboard .jp-search-dashboard-top__title{padding:2.5em 0}#jp-search-dashboard .jp-search-dashboard-top__title h1{font-size:2.25em;line-height:1.111;margin:0}#jp-search-dashboard .jp-search-dashboard-top__mocked-search-interface{align-items:center;display:flex;flex-flow:column;height:15.625em;justify-content:center}#jp-search-dashboard .jp-search-dashboard-bottom{background-color:#fff}#jp-search-dashboard .jp-search-dashboard-footer,#jp-search-dashboard .jp-search-dashboard-header{background-color:#fff;padding:2.5em 0}@media(max-width:600px){#jp-search-dashboard{font-size:14px}}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-left:5px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/search-dashboard.js b/plugins/jetpack/_inc/build/search-dashboard.js
new file mode 100644
index 00000000..38b68eec
--- /dev/null
+++ b/plugins/jetpack/_inc/build/search-dashboard.js
@@ -0,0 +1,8 @@
+/*! For license information please see search-dashboard.js.LICENSE.txt */
+!function(){var e={27538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},29183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8277:function(e,t,n){"use strict";const r=t;r.bignum=n(30910),r.define=n(99875).define,r.base=n(73034),r.constants=n(68344),r.decoders=n(55439),r.encoders=n(95411)},99875:function(e,t,n){"use strict";const r=n(95411),i=n(55439),o=n(59503);function s(e,t){this.name=e,this.body=t,this.decoders={},this.encoders={}}t.define=function(e,t){return new s(e,t)},s.prototype._createNamed=function(e){const t=this.name;function n(e){this._initNamed(e,t)}return o(n,e),n.prototype._initNamed=function(t,n){e.call(this,t,n)},new n(this)},s.prototype._getDecoder=function(e){return e=e||"der",this.decoders.hasOwnProperty(e)||(this.decoders[e]=this._createNamed(i[e])),this.decoders[e]},s.prototype.decode=function(e,t,n){return this._getDecoder(t).decode(e,n)},s.prototype._getEncoder=function(e){return e=e||"der",this.encoders.hasOwnProperty(e)||(this.encoders[e]=this._createNamed(r[e])),this.encoders[e]},s.prototype.encode=function(e,t,n){return this._getEncoder(t).encode(e,n)}},27027:function(e,t,n){"use strict";const r=n(59503),i=n(72173).b,o=n(82923).Buffer;function s(e,t){i.call(this,t),o.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function a(e,t){if(Array.isArray(e))this.length=0,this.value=e.map((function(e){return a.isEncoderBuffer(e)||(e=new a(e,t)),this.length+=e.length,e}),this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=o.byteLength(e);else{if(!o.isBuffer(e))return t.error("Unsupported type: "+typeof e);this.value=e,this.length=e.length}}r(s,i),t.C=s,s.isDecoderBuffer=function(e){if(e instanceof s)return!0;return"object"==typeof e&&o.isBuffer(e.base)&&"DecoderBuffer"===e.constructor.name&&"number"==typeof e.offset&&"number"==typeof e.length&&"function"==typeof e.save&&"function"==typeof e.restore&&"function"==typeof e.isEmpty&&"function"==typeof e.readUInt8&&"function"==typeof e.skip&&"function"==typeof e.raw},s.prototype.save=function(){return{offset:this.offset,reporter:i.prototype.save.call(this)}},s.prototype.restore=function(e){const t=new s(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,i.prototype.restore.call(this,e.reporter),t},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},s.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");const n=new s(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+e,this.offset+=e,n},s.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.R=a,a.isEncoderBuffer=function(e){if(e instanceof a)return!0;return"object"==typeof e&&"EncoderBuffer"===e.constructor.name&&"number"==typeof e.length&&"function"==typeof e.join},a.prototype.join=function(e,t){return e||(e=o.alloc(this.length)),t||(t=0),0===this.length||(Array.isArray(this.value)?this.value.forEach((function(n){n.join(e,t),t+=n.length})):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):o.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length)),e}},73034:function(e,t,n){"use strict";const r=t;r.Reporter=n(72173).b,r.DecoderBuffer=n(27027).C,r.EncoderBuffer=n(27027).R,r.Node=n(24873)},24873:function(e,t,n){"use strict";const r=n(72173).b,i=n(27027).R,o=n(27027).C,s=n(48282),a=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],c=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(a);function u(e,t,n){const r={};this._baseState=r,r.name=n,r.enc=e,r.parent=t||null,r.children=null,r.tag=null,r.args=null,r.reverseArgs=null,r.choice=null,r.optional=!1,r.any=!1,r.obj=!1,r.use=null,r.useDecoder=null,r.key=null,r.default=null,r.explicit=null,r.implicit=null,r.contains=null,r.parent||(r.children=[],this._wrap())}e.exports=u;const f=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];u.prototype.clone=function(){const e=this._baseState,t={};f.forEach((function(n){t[n]=e[n]}));const n=new this.constructor(t.parent);return n._baseState=t,n},u.prototype._wrap=function(){const e=this._baseState;c.forEach((function(t){this[t]=function(){const n=new this.constructor(this);return e.children.push(n),n[t].apply(n,arguments)}}),this)},u.prototype._init=function(e){const t=this._baseState;s(null===t.parent),e.call(this),t.children=t.children.filter((function(e){return e._baseState.parent===this}),this),s.equal(t.children.length,1,"Root node can have only one child")},u.prototype._useArgs=function(e){const t=this._baseState,n=e.filter((function(e){return e instanceof this.constructor}),this);e=e.filter((function(e){return!(e instanceof this.constructor)}),this),0!==n.length&&(s(null===t.children),t.children=n,n.forEach((function(e){e._baseState.parent=this}),this)),0!==e.length&&(s(null===t.args),t.args=e,t.reverseArgs=e.map((function(e){if("object"!=typeof e||e.constructor!==Object)return e;const t={};return Object.keys(e).forEach((function(n){n==(0|n)&&(n|=0);const r=e[n];t[r]=n})),t})))},["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"].forEach((function(e){u.prototype[e]=function(){const t=this._baseState;throw new Error(e+" not implemented for encoding: "+t.enc)}})),a.forEach((function(e){u.prototype[e]=function(){const t=this._baseState,n=Array.prototype.slice.call(arguments);return s(null===t.tag),t.tag=e,this._useArgs(n),this}})),u.prototype.use=function(e){s(e);const t=this._baseState;return s(null===t.use),t.use=e,this},u.prototype.optional=function(){return this._baseState.optional=!0,this},u.prototype.def=function(e){const t=this._baseState;return s(null===t.default),t.default=e,t.optional=!0,this},u.prototype.explicit=function(e){const t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.explicit=e,this},u.prototype.implicit=function(e){const t=this._baseState;return s(null===t.explicit&&null===t.implicit),t.implicit=e,this},u.prototype.obj=function(){const e=this._baseState,t=Array.prototype.slice.call(arguments);return e.obj=!0,0!==t.length&&this._useArgs(t),this},u.prototype.key=function(e){const t=this._baseState;return s(null===t.key),t.key=e,this},u.prototype.any=function(){return this._baseState.any=!0,this},u.prototype.choice=function(e){const t=this._baseState;return s(null===t.choice),t.choice=e,this._useArgs(Object.keys(e).map((function(t){return e[t]}))),this},u.prototype.contains=function(e){const t=this._baseState;return s(null===t.use),t.contains=e,this},u.prototype._decode=function(e,t){const n=this._baseState;if(null===n.parent)return e.wrapResult(n.children[0]._decode(e,t));let r,i=n.default,s=!0,a=null;if(null!==n.key&&(a=e.enterKey(n.key)),n.optional){let r=null;if(null!==n.explicit?r=n.explicit:null!==n.implicit?r=n.implicit:null!==n.tag&&(r=n.tag),null!==r||n.any){if(s=this._peekTag(e,r,n.any),e.isError(s))return s}else{const r=e.save();try{null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t),s=!0}catch(e){s=!1}e.restore(r)}}if(n.obj&&s&&(r=e.enterObject()),s){if(null!==n.explicit){const t=this._decodeTag(e,n.explicit);if(e.isError(t))return t;e=t}const r=e.offset;if(null===n.use&&null===n.choice){let t;n.any&&(t=e.save());const r=this._decodeTag(e,null!==n.implicit?n.implicit:n.tag,n.any);if(e.isError(r))return r;n.any?i=e.raw(t):e=r}if(t&&t.track&&null!==n.tag&&t.track(e.path(),r,e.length,"tagged"),t&&t.track&&null!==n.tag&&t.track(e.path(),e.offset,e.length,"content"),n.any||(i=null===n.choice?this._decodeGeneric(n.tag,e,t):this._decodeChoice(e,t)),e.isError(i))return i;if(n.any||null!==n.choice||null===n.children||n.children.forEach((function(n){n._decode(e,t)})),n.contains&&("octstr"===n.tag||"bitstr"===n.tag)){const r=new o(i);i=this._getUse(n.contains,e._reporterState.obj)._decode(r,t)}}return n.obj&&s&&(i=e.leaveObject(r)),null===n.key||null===i&&!0!==s?null!==a&&e.exitKey(a):e.leaveKey(a,n.key,i),i},u.prototype._decodeGeneric=function(e,t,n){const r=this._baseState;return"seq"===e||"set"===e?null:"seqof"===e||"setof"===e?this._decodeList(t,e,r.args[0],n):/str$/.test(e)?this._decodeStr(t,e,n):"objid"===e&&r.args?this._decodeObjid(t,r.args[0],r.args[1],n):"objid"===e?this._decodeObjid(t,null,null,n):"gentime"===e||"utctime"===e?this._decodeTime(t,e,n):"null_"===e?this._decodeNull(t,n):"bool"===e?this._decodeBool(t,n):"objDesc"===e?this._decodeStr(t,e,n):"int"===e||"enum"===e?this._decodeInt(t,r.args&&r.args[0],n):null!==r.use?this._getUse(r.use,t._reporterState.obj)._decode(t,n):t.error("unknown tag: "+e)},u.prototype._getUse=function(e,t){const n=this._baseState;return n.useDecoder=this._use(e,t),s(null===n.useDecoder._baseState.parent),n.useDecoder=n.useDecoder._baseState.children[0],n.implicit!==n.useDecoder._baseState.implicit&&(n.useDecoder=n.useDecoder.clone(),n.useDecoder._baseState.implicit=n.implicit),n.useDecoder},u.prototype._decodeChoice=function(e,t){const n=this._baseState;let r=null,i=!1;return Object.keys(n.choice).some((function(o){const s=e.save(),a=n.choice[o];try{const n=a._decode(e,t);if(e.isError(n))return!1;r={type:o,value:n},i=!0}catch(t){return e.restore(s),!1}return!0}),this),i?r:e.error("Choice not matched")},u.prototype._createEncoderBuffer=function(e){return new i(e,this.reporter)},u.prototype._encode=function(e,t,n){const r=this._baseState;if(null!==r.default&&r.default===e)return;const i=this._encodeValue(e,t,n);return void 0===i||this._skipDefault(i,t,n)?void 0:i},u.prototype._encodeValue=function(e,t,n){const i=this._baseState;if(null===i.parent)return i.children[0]._encode(e,t||new r);let o=null;if(this.reporter=t,i.optional&&void 0===e){if(null===i.default)return;e=i.default}let s=null,a=!1;if(i.any)o=this._createEncoderBuffer(e);else if(i.choice)o=this._encodeChoice(e,t);else if(i.contains)s=this._getUse(i.contains,n)._encode(e,t),a=!0;else if(i.children)s=i.children.map((function(n){if("null_"===n._baseState.tag)return n._encode(null,t,e);if(null===n._baseState.key)return t.error("Child should have a key");const r=t.enterKey(n._baseState.key);if("object"!=typeof e)return t.error("Child expected, but input is not object");const i=n._encode(e[n._baseState.key],t,e);return t.leaveKey(r),i}),this).filter((function(e){return e})),s=this._createEncoderBuffer(s);else if("seqof"===i.tag||"setof"===i.tag){if(!i.args||1!==i.args.length)return t.error("Too many args for : "+i.tag);if(!Array.isArray(e))return t.error("seqof/setof, but data is not Array");const n=this.clone();n._baseState.implicit=null,s=this._createEncoderBuffer(e.map((function(n){const r=this._baseState;return this._getUse(r.args[0],e)._encode(n,t)}),n))}else null!==i.use?o=this._getUse(i.use,n)._encode(e,t):(s=this._encodePrimitive(i.tag,e),a=!0);if(!i.any&&null===i.choice){const e=null!==i.implicit?i.implicit:i.tag,n=null===i.implicit?"universal":"context";null===e?null===i.use&&t.error("Tag could be omitted only for .use()"):null===i.use&&(o=this._encodeComposite(e,a,n,s))}return null!==i.explicit&&(o=this._encodeComposite(i.explicit,!1,"context",o)),o},u.prototype._encodeChoice=function(e,t){const n=this._baseState,r=n.choice[e.type];return r||s(!1,e.type+" not found in "+JSON.stringify(Object.keys(n.choice))),r._encode(e.value,t)},u.prototype._encodePrimitive=function(e,t){const n=this._baseState;if(/str$/.test(e))return this._encodeStr(t,e);if("objid"===e&&n.args)return this._encodeObjid(t,n.reverseArgs[0],n.args[1]);if("objid"===e)return this._encodeObjid(t,null,null);if("gentime"===e||"utctime"===e)return this._encodeTime(t,e);if("null_"===e)return this._encodeNull();if("int"===e||"enum"===e)return this._encodeInt(t,n.args&&n.reverseArgs[0]);if("bool"===e)return this._encodeBool(t);if("objDesc"===e)return this._encodeStr(t,e);throw new Error("Unsupported tag: "+e)},u.prototype._isNumstr=function(e){return/^[0-9 ]*$/.test(e)},u.prototype._isPrintstr=function(e){return/^[A-Za-z0-9 '()+,-./:=?]*$/.test(e)}},72173:function(e,t,n){"use strict";const r=n(59503);function i(e){this._reporterState={obj:null,path:[],options:e||{},errors:[]}}function o(e,t){this.path=e,this.rethrow(t)}t.b=i,i.prototype.isError=function(e){return e instanceof o},i.prototype.save=function(){const e=this._reporterState;return{obj:e.obj,pathLen:e.path.length}},i.prototype.restore=function(e){const t=this._reporterState;t.obj=e.obj,t.path=t.path.slice(0,e.pathLen)},i.prototype.enterKey=function(e){return this._reporterState.path.push(e)},i.prototype.exitKey=function(e){const t=this._reporterState;t.path=t.path.slice(0,e-1)},i.prototype.leaveKey=function(e,t,n){const r=this._reporterState;this.exitKey(e),null!==r.obj&&(r.obj[t]=n)},i.prototype.path=function(){return this._reporterState.path.join("/")},i.prototype.enterObject=function(){const e=this._reporterState,t=e.obj;return e.obj={},t},i.prototype.leaveObject=function(e){const t=this._reporterState,n=t.obj;return t.obj=e,n},i.prototype.error=function(e){let t;const n=this._reporterState,r=e instanceof o;if(t=r?e:new o(n.path.map((function(e){return"["+JSON.stringify(e)+"]"})).join(""),e.message||e,e.stack),!n.options.partial)throw t;return r||n.errors.push(t),t},i.prototype.wrapResult=function(e){const t=this._reporterState;return t.options.partial?{result:this.isError(e)?null:e,errors:t.errors}:e},r(o,Error),o.prototype.rethrow=function(e){if(this.message=e+" at: "+(this.path||"(shallow)"),Error.captureStackTrace&&Error.captureStackTrace(this,o),!this.stack)try{throw new Error(this.message)}catch(e){this.stack=e.stack}return this}},5598:function(e,t){"use strict";function n(e){const t={};return Object.keys(e).forEach((function(n){(0|n)==n&&(n|=0);const r=e[n];t[r]=n})),t}t.tagClass={0:"universal",1:"application",2:"context",3:"private"},t.tagClassByName=n(t.tagClass),t.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},t.tagByName=n(t.tag)},68344:function(e,t,n){"use strict";const r=t;r._reverse=function(e){const t={};return Object.keys(e).forEach((function(n){(0|n)==n&&(n|=0);const r=e[n];t[r]=n})),t},r.der=n(5598)},75761:function(e,t,n){"use strict";const r=n(59503),i=n(30910),o=n(27027).C,s=n(24873),a=n(5598);function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){s.call(this,"der",e)}function f(e,t){let n=e.readUInt8(t);if(e.isError(n))return n;const r=a.tagClass[n>>6],i=0==(32&n);if(31==(31&n)){let r=n;for(n=0;128==(128&r);){if(r=e.readUInt8(t),e.isError(r))return r;n<<=7,n|=127&r}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:a.tag[n]}}function h(e,t,n){let r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(0==(128&r))return r;const i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(let t=0;t<i;t++){r<<=8;const t=e.readUInt8(n);if(e.isError(t))return t;r|=t}return r}e.exports=c,c.prototype.decode=function(e,t){return o.isDecoderBuffer(e)||(e=new o(e,t)),this.tree._decode(e,t)},r(u,s),u.prototype._peekTag=function(e,t,n){if(e.isEmpty())return!1;const r=e.save(),i=f(e,'Failed to peek tag: "'+t+'"');return e.isError(i)?i:(e.restore(r),i.tag===t||i.tagStr===t||i.tagStr+"of"===t||n)},u.prototype._decodeTag=function(e,t,n){const r=f(e,'Failed to decode tag of "'+t+'"');if(e.isError(r))return r;let i=h(e,r.primitive,'Failed to get length of "'+t+'"');if(e.isError(i))return i;if(!n&&r.tag!==t&&r.tagStr!==t&&r.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(r.primitive||null!==i)return e.skip(i,'Failed to match body of: "'+t+'"');const o=e.save(),s=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(s)?s:(i=e.offset-o.offset,e.restore(o),e.skip(i,'Failed to match body of: "'+t+'"'))},u.prototype._skipUntilEnd=function(e,t){for(;;){const n=f(e,t);if(e.isError(n))return n;const r=h(e,n.primitive,t);if(e.isError(r))return r;let i;if(i=n.primitive||null!==r?e.skip(r):this._skipUntilEnd(e,t),e.isError(i))return i;if("end"===n.tagStr)break}},u.prototype._decodeList=function(e,t,n,r){const i=[];for(;!e.isEmpty();){const t=this._peekTag(e,"end");if(e.isError(t))return t;const o=n.decode(e,"der",r);if(e.isError(o)&&t)break;i.push(o)}return i},u.prototype._decodeStr=function(e,t){if("bitstr"===t){const t=e.readUInt8();return e.isError(t)?t:{unused:t,data:e.raw()}}if("bmpstr"===t){const t=e.raw();if(t.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");let n="";for(let e=0;e<t.length/2;e++)n+=String.fromCharCode(t.readUInt16BE(2*e));return n}if("numstr"===t){const t=e.raw().toString("ascii");return this._isNumstr(t)?t:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){const t=e.raw().toString("ascii");return this._isPrintstr(t)?t:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},u.prototype._decodeObjid=function(e,t,n){let r;const i=[];let o=0,s=0;for(;!e.isEmpty();)s=e.readUInt8(),o<<=7,o|=127&s,0==(128&s)&&(i.push(o),o=0);128&s&&i.push(o);const a=i[0]/40|0,c=i[0]%40;if(r=n?i:[a,c].concat(i.slice(1)),t){let e=t[r.join(" ")];void 0===e&&(e=t[r.join(".")]),void 0!==e&&(r=e)}return r},u.prototype._decodeTime=function(e,t){const n=e.raw().toString();let r,i,o,s,a,c;if("gentime"===t)r=0|n.slice(0,4),i=0|n.slice(4,6),o=0|n.slice(6,8),s=0|n.slice(8,10),a=0|n.slice(10,12),c=0|n.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");r=0|n.slice(0,2),i=0|n.slice(2,4),o=0|n.slice(4,6),s=0|n.slice(6,8),a=0|n.slice(8,10),c=0|n.slice(10,12),r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,o,s,a,c,0)},u.prototype._decodeNull=function(){return null},u.prototype._decodeBool=function(e){const t=e.readUInt8();return e.isError(t)?t:0!==t},u.prototype._decodeInt=function(e,t){const n=e.raw();let r=new i(n);return t&&(r=t[r.toString(10)]||r),r},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},55439:function(e,t,n){"use strict";const r=t;r.der=n(75761),r.pem=n(33672)},33672:function(e,t,n){"use strict";const r=n(59503),i=n(82923).Buffer,o=n(75761);function s(e){o.call(this,e),this.enc="pem"}r(s,o),e.exports=s,s.prototype.decode=function(e,t){const n=e.toString().split(/[\r\n]+/g),r=t.label.toUpperCase(),s=/^-----(BEGIN|END) ([^-]+)-----$/;let a=-1,c=-1;for(let e=0;e<n.length;e++){const t=n[e].match(s);if(null!==t&&t[2]===r){if(-1!==a){if("END"!==t[1])break;c=e;break}if("BEGIN"!==t[1])break;a=e}}if(-1===a||-1===c)throw new Error("PEM section not found for: "+r);const u=n.slice(a+1,c).join("");u.replace(/[^a-z0-9+/=]+/gi,"");const f=i.from(u,"base64");return o.prototype.decode.call(this,f,t)}},18248:function(e,t,n){"use strict";const r=n(59503),i=n(82923).Buffer,o=n(24873),s=n(5598);function a(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new c,this.tree._init(e.body)}function c(e){o.call(this,"der",e)}function u(e){return e<10?"0"+e:e}e.exports=a,a.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(c,o),c.prototype._encodeComposite=function(e,t,n,r){const o=function(e,t,n,r){let i;"seqof"===e?e="seq":"setof"===e&&(e="set");if(s.tagByName.hasOwnProperty(e))i=s.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}if(i>=31)return r.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=s.tagClassByName[n||"universal"]<<6,i}(e,t,n,this.reporter);if(r.length<128){const e=i.alloc(2);return e[0]=o,e[1]=r.length,this._createEncoderBuffer([e,r])}let a=1;for(let e=r.length;e>=256;e>>=8)a++;const c=i.alloc(2+a);c[0]=o,c[1]=128|a;for(let e=1+a,t=r.length;t>0;e--,t>>=8)c[e]=255&t;return this._createEncoderBuffer([c,r])},c.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){const t=i.alloc(2*e.length);for(let n=0;n<e.length;n++)t.writeUInt16BE(e.charCodeAt(n),2*n);return this._createEncoderBuffer(t)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)||"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},c.prototype._encodeObjid=function(e,t,n){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s.]+/g);for(let t=0;t<e.length;t++)e[t]|=0}else if(Array.isArray(e)){e=e.slice();for(let t=0;t<e.length;t++)e[t]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!n){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}let r=0;for(let t=0;t<e.length;t++){let n=e[t];for(r++;n>=128;n>>=7)r++}const o=i.alloc(r);let s=o.length-1;for(let t=e.length-1;t>=0;t--){let n=e[t];for(o[s--]=127&n;(n>>=7)>0;)o[s--]=128|127&n}return this._createEncoderBuffer(o)},c.prototype._encodeTime=function(e,t){let n;const r=new Date(e);return"gentime"===t?n=[u(r.getUTCFullYear()),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[u(r.getUTCFullYear()%100),u(r.getUTCMonth()+1),u(r.getUTCDate()),u(r.getUTCHours()),u(r.getUTCMinutes()),u(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},c.prototype._encodeNull=function(){return this._createEncoderBuffer("")},c.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){const t=e.toArray();!e.sign&&128&t[0]&&t.unshift(0),e=i.from(t)}if(i.isBuffer(e)){let t=e.length;0===e.length&&t++;const n=i.alloc(t);return e.copy(n),0===e.length&&(n[0]=0),this._createEncoderBuffer(n)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);let n=1;for(let t=e;t>=256;t>>=8)n++;const r=new Array(n);for(let t=r.length-1;t>=0;t--)r[t]=255&e,e>>=8;return 128&r[0]&&r.unshift(0),this._createEncoderBuffer(i.from(r))},c.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},c.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},c.prototype._skipDefault=function(e,t,n){const r=this._baseState;let i;if(null===r.default)return!1;const o=e.join();if(void 0===r.defaultBuffer&&(r.defaultBuffer=this._encodeValue(r.default,t,n).join()),o.length!==r.defaultBuffer.length)return!1;for(i=0;i<o.length;i++)if(o[i]!==r.defaultBuffer[i])return!1;return!0}},95411:function(e,t,n){"use strict";const r=t;r.der=n(18248),r.pem=n(51027)},51027:function(e,t,n){"use strict";const r=n(59503),i=n(18248);function o(e){i.call(this,e),this.enc="pem"}r(o,i),e.exports=o,o.prototype.encode=function(e,t){const n=i.prototype.encode.call(this,e).toString("base64"),r=["-----BEGIN "+t.label+"-----"];for(let e=0;e<n.length;e+=64)r.push(n.slice(e,e+64));return r.push("-----END "+t.label+"-----"),r.join("\n")}},90605:function(e,t,n){"use strict";var r=n(5806),i=n(55246);function o(e){return o="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},o(e)}var s,a,c=n(27452).codes,u=c.ERR_AMBIGUOUS_ARGUMENT,f=c.ERR_INVALID_ARG_TYPE,h=c.ERR_INVALID_ARG_VALUE,l=c.ERR_INVALID_RETURN_VALUE,d=c.ERR_MISSING_ARGS,p=n(71228),g=n(23333).inspect,m=n(23333).types,b=m.isPromise,v=m.isRegExp,y=Object.assign?Object.assign:n(45685).assign,w=Object.is?Object.is:n(88706);new Map;function _(){var e=n(81562);s=e.isDeepEqual,a=e.isDeepStrictEqual}var E=!1,S=e.exports=A,k={};function M(e){if(e.message instanceof Error)throw e.message;throw new p(e)}function C(e,t,n,r){if(!n){var i=!1;if(0===t)i=!0,r="No value argument passed to `assert.ok()`";else if(r instanceof Error)throw r;var o=new p({actual:n,expected:!0,message:r,operator:"==",stackStartFn:e});throw o.generatedMessage=i,o}}function A(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];C.apply(void 0,[A,t.length].concat(t))}S.fail=function e(t,n,o,s,a){var c,u=arguments.length;if(0===u)c="Failed";else if(1===u)o=t,t=void 0;else{if(!1===E){E=!0;var f=r.emitWarning?r.emitWarning:i.warn.bind(i);f("assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.","DeprecationWarning","DEP0094")}2===u&&(s="!=")}if(o instanceof Error)throw o;var h={actual:t,expected:n,operator:void 0===s?"fail":s,stackStartFn:a||e};void 0!==o&&(h.message=o);var l=new p(h);throw c&&(l.message=c,l.generatedMessage=!0),l},S.AssertionError=p,S.ok=A,S.equal=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");t!=n&&M({actual:t,expected:n,message:r,operator:"==",stackStartFn:e})},S.notEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");t==n&&M({actual:t,expected:n,message:r,operator:"!=",stackStartFn:e})},S.deepEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===s&&_(),s(t,n)||M({actual:t,expected:n,message:r,operator:"deepEqual",stackStartFn:e})},S.notDeepEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===s&&_(),s(t,n)&&M({actual:t,expected:n,message:r,operator:"notDeepEqual",stackStartFn:e})},S.deepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===s&&_(),a(t,n)||M({actual:t,expected:n,message:r,operator:"deepStrictEqual",stackStartFn:e})},S.notDeepStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");void 0===s&&_();a(t,n)&&M({actual:t,expected:n,message:r,operator:"notDeepStrictEqual",stackStartFn:e})},S.strictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");w(t,n)||M({actual:t,expected:n,message:r,operator:"strictEqual",stackStartFn:e})},S.notStrictEqual=function e(t,n,r){if(arguments.length<2)throw new d("actual","expected");w(t,n)&&M({actual:t,expected:n,message:r,operator:"notStrictEqual",stackStartFn:e})};var x=function e(t,n,r){var i=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n.forEach((function(e){e in t&&(void 0!==r&&"string"==typeof r[e]&&v(t[e])&&t[e].test(r[e])?i[e]=r[e]:i[e]=t[e])}))};function I(e,t,n,r,i,o){if(!(n in e)||!a(e[n],t[n])){if(!r){var s=new x(e,i),c=new x(t,i,e),u=new p({actual:s,expected:c,operator:"deepStrictEqual",stackStartFn:o});throw u.actual=e,u.expected=t,u.operator=o.name,u}M({actual:e,expected:t,message:r,operator:o.name,stackStartFn:o})}}function O(e,t,n,r){if("function"!=typeof t){if(v(t))return t.test(e);if(2===arguments.length)throw new f("expected",["Function","RegExp"],t);if("object"!==o(e)||null===e){var i=new p({actual:e,expected:t,message:n,operator:"deepStrictEqual",stackStartFn:r});throw i.operator=r.name,i}var a=Object.keys(t);if(t instanceof Error)a.push("name","message");else if(0===a.length)throw new h("error",t,"may not be an empty object");return void 0===s&&_(),a.forEach((function(i){"string"==typeof e[i]&&v(t[i])&&t[i].test(e[i])||I(e,t,i,n,a,r)})),!0}return void 0!==t.prototype&&e instanceof t||!Error.isPrototypeOf(t)&&!0===t.call({},e)}function T(e){if("function"!=typeof e)throw new f("fn","Function",e);try{e()}catch(e){return e}return k}function N(e){return b(e)||null!==e&&"object"===o(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function j(e){return Promise.resolve().then((function(){var t;if("function"==typeof e){if(!N(t=e()))throw new l("instance of Promise","promiseFn",t)}else{if(!N(e))throw new f("promiseFn",["Function","Promise"],e);t=e}return Promise.resolve().then((function(){return t})).then((function(){return k})).catch((function(e){return e}))}))}function z(e,t,n,r){if("string"==typeof n){if(4===arguments.length)throw new f("error",["Object","Error","Function","RegExp"],n);if("object"===o(t)&&null!==t){if(t.message===n)throw new u("error/message",'The error message "'.concat(t.message,'" is identical to the message.'))}else if(t===n)throw new u("error/message",'The error "'.concat(t,'" is identical to the message.'));r=n,n=void 0}else if(null!=n&&"object"!==o(n)&&"function"!=typeof n)throw new f("error",["Object","Error","Function","RegExp"],n);if(t===k){var i="";n&&n.name&&(i+=" (".concat(n.name,")")),i+=r?": ".concat(r):".";var s="rejects"===e.name?"rejection":"exception";M({actual:void 0,expected:n,operator:e.name,message:"Missing expected ".concat(s).concat(i),stackStartFn:e})}if(n&&!O(t,n,r,e))throw t}function P(e,t,n,r){if(t!==k){if("string"==typeof n&&(r=n,n=void 0),!n||O(t,n)){var i=r?": ".concat(r):".",o="doesNotReject"===e.name?"rejection":"exception";M({actual:t,expected:n,operator:e.name,message:"Got unwanted ".concat(o).concat(i,"\n")+'Actual message: "'.concat(t&&t.message,'"'),stackStartFn:e})}throw t}}function R(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];C.apply(void 0,[R,t.length].concat(t))}S.throws=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];z.apply(void 0,[e,T(t)].concat(r))},S.rejects=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return j(t).then((function(t){return z.apply(void 0,[e,t].concat(r))}))},S.doesNotThrow=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];P.apply(void 0,[e,T(t)].concat(r))},S.doesNotReject=function e(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return j(t).then((function(t){return P.apply(void 0,[e,t].concat(r))}))},S.ifError=function e(t){if(null!=t){var n="ifError got unwanted exception: ";"object"===o(t)&&"string"==typeof t.message?0===t.message.length&&t.constructor?n+=t.constructor.name:n+=t.message:n+=g(t);var r=new p({actual:t,expected:null,operator:"ifError",message:n,stackStartFn:e}),i=t.stack;if("string"==typeof i){var s=i.split("\n");s.shift();for(var a=r.stack.split("\n"),c=0;c<s.length;c++){var u=a.indexOf(s[c]);if(-1!==u){a=a.slice(0,u);break}}r.stack="".concat(a.join("\n"),"\n").concat(s.join("\n"))}throw r}},S.strict=y(R,S,{equal:S.strictEqual,deepEqual:S.deepStrictEqual,notEqual:S.notStrictEqual,notDeepEqual:S.notDeepStrictEqual}),S.strict.strict=S.strict},71228:function(e,t,n){"use strict";var r=n(5806);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function s(e,t){return!t||"object"!==d(t)&&"function"!=typeof t?a(e):t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function c(e){var t="function"==typeof Map?new Map:void 0;return c=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return f(e,arguments,l(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),h(r,e)},c(e)}function u(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function f(e,t,n){return f=u()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&h(i,n.prototype),i},f.apply(null,arguments)}function h(e,t){return h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},h(e,t)}function l(e){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},l(e)}function d(e){return d="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},d(e)}var p=n(23333).inspect,g=n(27452).codes.ERR_INVALID_ARG_TYPE;function m(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}var b="",v="",y="",w="",_={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"};function E(e){var t=Object.keys(e),n=Object.create(Object.getPrototypeOf(e));return t.forEach((function(t){n[t]=e[t]})),Object.defineProperty(n,"message",{value:e.message}),n}function S(e){return p(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function k(e,t,n){var i="",o="",s=0,a="",c=!1,u=S(e),f=u.split("\n"),h=S(t).split("\n"),l=0,p="";if("strictEqual"===n&&"object"===d(e)&&"object"===d(t)&&null!==e&&null!==t&&(n="strictEqualObject"),1===f.length&&1===h.length&&f[0]!==h[0]){var g=f[0].length+h[0].length;if(g<=10){if(!("object"===d(e)&&null!==e||"object"===d(t)&&null!==t||0===e&&0===t))return"".concat(_[n],"\n\n")+"".concat(f[0]," !== ").concat(h[0],"\n")}else if("strictEqualObject"!==n){if(g<(r.stderr&&r.stderr.isTTY?r.stderr.columns:80)){for(;f[0][l]===h[0][l];)l++;l>2&&(p="\n ".concat(function(e,t){if(t=Math.floor(t),0==e.length||0==t)return"";var n=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+e.substring(0,n-e.length)}(" ",l),"^"),l=0)}}}for(var E=f[f.length-1],k=h[h.length-1];E===k&&(l++<2?a="\n ".concat(E).concat(a):i=E,f.pop(),h.pop(),0!==f.length&&0!==h.length);)E=f[f.length-1],k=h[h.length-1];var M=Math.max(f.length,h.length);if(0===M){var C=u.split("\n");if(C.length>30)for(C[26]="".concat(b,"...").concat(w);C.length>27;)C.pop();return"".concat(_.notIdentical,"\n\n").concat(C.join("\n"),"\n")}l>3&&(a="\n".concat(b,"...").concat(w).concat(a),c=!0),""!==i&&(a="\n ".concat(i).concat(a),i="");var A=0,x=_[n]+"\n".concat(v,"+ actual").concat(w," ").concat(y,"- expected").concat(w),I=" ".concat(b,"...").concat(w," Lines skipped");for(l=0;l<M;l++){var O=l-s;if(f.length<l+1)O>1&&l>2&&(O>4?(o+="\n".concat(b,"...").concat(w),c=!0):O>3&&(o+="\n ".concat(h[l-2]),A++),o+="\n ".concat(h[l-1]),A++),s=l,i+="\n".concat(y,"-").concat(w," ").concat(h[l]),A++;else if(h.length<l+1)O>1&&l>2&&(O>4?(o+="\n".concat(b,"...").concat(w),c=!0):O>3&&(o+="\n ".concat(f[l-2]),A++),o+="\n ".concat(f[l-1]),A++),s=l,o+="\n".concat(v,"+").concat(w," ").concat(f[l]),A++;else{var T=h[l],N=f[l],j=N!==T&&(!m(N,",")||N.slice(0,-1)!==T);j&&m(T,",")&&T.slice(0,-1)===N&&(j=!1,N+=","),j?(O>1&&l>2&&(O>4?(o+="\n".concat(b,"...").concat(w),c=!0):O>3&&(o+="\n ".concat(f[l-2]),A++),o+="\n ".concat(f[l-1]),A++),s=l,o+="\n".concat(v,"+").concat(w," ").concat(N),i+="\n".concat(y,"-").concat(w," ").concat(T),A+=2):(o+=i,i="",1!==O&&0!==l||(o+="\n ".concat(N),A++))}if(A>20&&l<M-2)return"".concat(x).concat(I,"\n").concat(o,"\n").concat(b,"...").concat(w).concat(i,"\n")+"".concat(b,"...").concat(w)}return"".concat(x).concat(c?I:"","\n").concat(o).concat(i).concat(a).concat(p)}var M=function(e){function t(e){var n;if(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),"object"!==d(e)||null===e)throw new g("options","Object",e);var i=e.message,o=e.operator,c=e.stackStartFn,u=e.actual,f=e.expected,h=Error.stackTraceLimit;if(Error.stackTraceLimit=0,null!=i)n=s(this,l(t).call(this,String(i)));else if(r.stderr&&r.stderr.isTTY&&(r.stderr&&r.stderr.getColorDepth&&1!==r.stderr.getColorDepth()?(b="",v="",w="",y=""):(b="",v="",w="",y="")),"object"===d(u)&&null!==u&&"object"===d(f)&&null!==f&&"stack"in u&&u instanceof Error&&"stack"in f&&f instanceof Error&&(u=E(u),f=E(f)),"deepStrictEqual"===o||"strictEqual"===o)n=s(this,l(t).call(this,k(u,f,o)));else if("notDeepStrictEqual"===o||"notStrictEqual"===o){var p=_[o],m=S(u).split("\n");if("notStrictEqual"===o&&"object"===d(u)&&null!==u&&(p=_.notStrictEqualObject),m.length>30)for(m[26]="".concat(b,"...").concat(w);m.length>27;)m.pop();n=1===m.length?s(this,l(t).call(this,"".concat(p," ").concat(m[0]))):s(this,l(t).call(this,"".concat(p,"\n\n").concat(m.join("\n"),"\n")))}else{var M=S(u),C="",A=_[o];"notDeepEqual"===o||"notEqual"===o?(M="".concat(_[o],"\n\n").concat(M)).length>1024&&(M="".concat(M.slice(0,1021),"...")):(C="".concat(S(f)),M.length>512&&(M="".concat(M.slice(0,509),"...")),C.length>512&&(C="".concat(C.slice(0,509),"...")),"deepEqual"===o||"equal"===o?M="".concat(A,"\n\n").concat(M,"\n\nshould equal\n\n"):C=" ".concat(o," ").concat(C)),n=s(this,l(t).call(this,"".concat(M).concat(C)))}return Error.stackTraceLimit=h,n.generatedMessage=!i,Object.defineProperty(a(n),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),n.code="ERR_ASSERTION",n.actual=u,n.expected=f,n.operator=o,Error.captureStackTrace&&Error.captureStackTrace(a(n),c),n.stack,n.name="AssertionError",s(n)}var n,c,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),n=t,c=[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:p.custom,value:function(e,t){return p(this,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})))),r.forEach((function(t){i(e,t,n[t])}))}return e}({},t,{customInspect:!1,depth:0}))}}],c&&o(n.prototype,c),u&&o(n,u),t}(c(Error));e.exports=M},27452:function(e,t,n){"use strict";function r(e){return r="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},r(e)}function i(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function o(e){return o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},o(e)}function s(e,t){return s=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},s(e,t)}var a,c,u={};function f(e,t,n){n||(n=Error);var r=function(n){function r(n,s,a){var c;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r),c=i(this,o(r).call(this,function(e,n,r){return"string"==typeof t?t:t(e,n,r)}(n,s,a))),c.code=e,c}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&s(e,t)}(r,n),r}(n);u[e]=r}function h(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}f("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError),f("ERR_INVALID_ARG_TYPE",(function(e,t,i){var o,s,c,u;if(void 0===a&&(a=n(90605)),a("string"==typeof e,"'name' must be a string"),"string"==typeof t&&(s="not ",t.substr(!c||c<0?0:+c,s.length)===s)?(o="must not be",t=t.replace(/^not /,"")):o="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))u="The ".concat(e," ").concat(o," ").concat(h(t,"type"));else{var f=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";u='The "'.concat(e,'" ').concat(f," ").concat(o," ").concat(h(t,"type"))}return u+=". Received type ".concat(r(i))}),TypeError),f("ERR_INVALID_ARG_VALUE",(function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"is invalid";void 0===c&&(c=n(23333));var i=c.inspect(t);return i.length>128&&(i="".concat(i.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(i)}),TypeError,RangeError),f("ERR_INVALID_RETURN_VALUE",(function(e,t,n){var i;return i=n&&n.constructor&&n.constructor.name?"instance of ".concat(n.constructor.name):"type ".concat(r(n)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(i,".")}),TypeError),f("ERR_MISSING_ARGS",(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];void 0===a&&(a=n(90605)),a(t.length>0,"At least one arg needs to be specified");var i="The ",o=t.length;switch(t=t.map((function(e){return'"'.concat(e,'"')})),o){case 1:i+="".concat(t[0]," argument");break;case 2:i+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:i+=t.slice(0,o-1).join(", "),i+=", and ".concat(t[o-1]," arguments")}return"".concat(i," must be specified")}),TypeError),e.exports.codes=u},81562:function(e,t,n){"use strict";function r(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],_n=!0,r=!1,i=void 0;try{for(var o,s=e[Symbol.iterator]();!(_n=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,i=e}finally{try{_n||null==s.return||s.return()}finally{if(r)throw i}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function i(e){return i="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},i(e)}var o=void 0!==/a/g.flags,s=function(e){var t=[];return e.forEach((function(e){return t.push(e)})),t},a=function(e){var t=[];return e.forEach((function(e,n){return t.push([n,e])})),t},c=Object.is?Object.is:n(88706),u=Object.getOwnPropertySymbols?Object.getOwnPropertySymbols:function(){return[]},f=Number.isNaN?Number.isNaN:n(17614);function h(e){return e.call.bind(e)}var l=h(Object.prototype.hasOwnProperty),d=h(Object.prototype.propertyIsEnumerable),p=h(Object.prototype.toString),g=n(23333).types,m=g.isAnyArrayBuffer,b=g.isArrayBufferView,v=g.isDate,y=g.isMap,w=g.isRegExp,_=g.isSet,E=g.isNativeError,S=g.isBoxedPrimitive,k=g.isNumberObject,M=g.isStringObject,C=g.isBooleanObject,A=g.isBigIntObject,x=g.isSymbolObject,I=g.isFloat32Array,O=g.isFloat64Array;function T(e){if(0===e.length||e.length>10)return!0;for(var t=0;t<e.length;t++){var n=e.charCodeAt(t);if(n<48||n>57)return!0}return 10===e.length&&e>=Math.pow(2,32)}function N(e){return Object.keys(e).filter(T).concat(u(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function j(e,t){if(e===t)return 0;for(var n=e.length,r=t.length,i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0}function z(e,t,n,r){if(e===t)return 0!==e||(!n||c(e,t));if(n){if("object"!==i(e))return"number"==typeof e&&f(e)&&f(t);if("object"!==i(t)||null===e||null===t)return!1;if(Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1}else{if(null===e||"object"!==i(e))return(null===t||"object"!==i(t))&&e==t;if(null===t||"object"!==i(t))return!1}var s,a,u,h,l=p(e);if(l!==p(t))return!1;if(Array.isArray(e)){if(e.length!==t.length)return!1;var d=N(e),g=N(t);return d.length===g.length&&R(e,t,n,r,1,d)}if("[object Object]"===l&&(!y(e)&&y(t)||!_(e)&&_(t)))return!1;if(v(e)){if(!v(t)||Date.prototype.getTime.call(e)!==Date.prototype.getTime.call(t))return!1}else if(w(e)){if(!w(t)||(u=e,h=t,!(o?u.source===h.source&&u.flags===h.flags:RegExp.prototype.toString.call(u)===RegExp.prototype.toString.call(h))))return!1}else if(E(e)||e instanceof Error){if(e.message!==t.message||e.name!==t.name)return!1}else{if(b(e)){if(n||!I(e)&&!O(e)){if(!function(e,t){return e.byteLength===t.byteLength&&0===j(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),new Uint8Array(t.buffer,t.byteOffset,t.byteLength))}(e,t))return!1}else if(!function(e,t){if(e.byteLength!==t.byteLength)return!1;for(var n=0;n<e.byteLength;n++)if(e[n]!==t[n])return!1;return!0}(e,t))return!1;var T=N(e),z=N(t);return T.length===z.length&&R(e,t,n,r,0,T)}if(_(e))return!(!_(t)||e.size!==t.size)&&R(e,t,n,r,2);if(y(e))return!(!y(t)||e.size!==t.size)&&R(e,t,n,r,3);if(m(e)){if(a=t,(s=e).byteLength!==a.byteLength||0!==j(new Uint8Array(s),new Uint8Array(a)))return!1}else if(S(e)&&!function(e,t){return k(e)?k(t)&&c(Number.prototype.valueOf.call(e),Number.prototype.valueOf.call(t)):M(e)?M(t)&&String.prototype.valueOf.call(e)===String.prototype.valueOf.call(t):C(e)?C(t)&&Boolean.prototype.valueOf.call(e)===Boolean.prototype.valueOf.call(t):A(e)?A(t)&&BigInt.prototype.valueOf.call(e)===BigInt.prototype.valueOf.call(t):x(t)&&Symbol.prototype.valueOf.call(e)===Symbol.prototype.valueOf.call(t)}(e,t))return!1}return R(e,t,n,r,0)}function P(e,t){return t.filter((function(t){return d(e,t)}))}function R(e,t,n,r,i,o){if(5===arguments.length){o=Object.keys(e);var s=Object.keys(t);if(o.length!==s.length)return!1}for(var a=0;a<o.length;a++)if(!l(t,o[a]))return!1;if(n&&5===arguments.length){var c=u(e);if(0!==c.length){var f=0;for(a=0;a<c.length;a++){var h=c[a];if(d(e,h)){if(!d(t,h))return!1;o.push(h),f++}else if(d(t,h))return!1}var p=u(t);if(c.length!==p.length&&P(t,p).length!==f)return!1}else{var g=u(t);if(0!==g.length&&0!==P(t,g).length)return!1}}if(0===o.length&&(0===i||1===i&&0===e.length||0===e.size))return!0;if(void 0===r)r={val1:new Map,val2:new Map,position:0};else{var m=r.val1.get(e);if(void 0!==m){var b=r.val2.get(t);if(void 0!==b)return m===b}r.position++}r.val1.set(e,r.position),r.val2.set(t,r.position);var v=H(e,t,n,o,r,i);return r.val1.delete(e),r.val2.delete(t),v}function B(e,t,n,r){for(var i=s(e),o=0;o<i.length;o++){var a=i[o];if(z(t,a,n,r))return e.delete(a),!0}return!1}function L(e){switch(i(e)){case"undefined":return null;case"object":return;case"symbol":return!1;case"string":e=+e;case"number":if(f(e))return!1}return!0}function D(e,t,n){var r=L(n);return null!=r?r:t.has(r)&&!e.has(r)}function U(e,t,n,r,i){var o=L(n);if(null!=o)return o;var s=t.get(o);return!(void 0===s&&!t.has(o)||!z(r,s,!1,i))&&(!e.has(o)&&z(r,s,!1,i))}function F(e,t,n,r,i,o){for(var a=s(e),c=0;c<a.length;c++){var u=a[c];if(z(n,u,i,o)&&z(r,t.get(u),i,o))return e.delete(u),!0}return!1}function H(e,t,n,o,c,u){var f=0;if(2===u){if(!function(e,t,n,r){for(var o=null,a=s(e),c=0;c<a.length;c++){var u=a[c];if("object"===i(u)&&null!==u)null===o&&(o=new Set),o.add(u);else if(!t.has(u)){if(n)return!1;if(!D(e,t,u))return!1;null===o&&(o=new Set),o.add(u)}}if(null!==o){for(var f=s(t),h=0;h<f.length;h++){var l=f[h];if("object"===i(l)&&null!==l){if(!B(o,l,n,r))return!1}else if(!n&&!e.has(l)&&!B(o,l,n,r))return!1}return 0===o.size}return!0}(e,t,n,c))return!1}else if(3===u){if(!function(e,t,n,o){for(var s=null,c=a(e),u=0;u<c.length;u++){var f=r(c[u],2),h=f[0],l=f[1];if("object"===i(h)&&null!==h)null===s&&(s=new Set),s.add(h);else{var d=t.get(h);if(void 0===d&&!t.has(h)||!z(l,d,n,o)){if(n)return!1;if(!U(e,t,h,l,o))return!1;null===s&&(s=new Set),s.add(h)}}}if(null!==s){for(var p=a(t),g=0;g<p.length;g++){var m=r(p[g],2),b=(h=m[0],m[1]);if("object"===i(h)&&null!==h){if(!F(s,e,h,b,n,o))return!1}else if(!(n||e.has(h)&&z(e.get(h),b,!1,o)||F(s,e,h,b,!1,o)))return!1}return 0===s.size}return!0}(e,t,n,c))return!1}else if(1===u)for(;f<e.length;f++){if(!l(e,f)){if(l(t,f))return!1;for(var h=Object.keys(e);f<h.length;f++){var d=h[f];if(!l(t,d)||!z(e[d],t[d],n,c))return!1}return h.length===Object.keys(t).length}if(!l(t,f)||!z(e[f],t[f],n,c))return!1}for(f=0;f<o.length;f++){var p=o[f];if(!z(e[p],t[p],n,c))return!1}return!0}e.exports={isDeepEqual:function(e,t){return z(e,t,false)},isDeepStrictEqual:function(e,t){return z(e,t,true)}}},6670:function(e,t,n){e.exports={default:n(92916),__esModule:!0}},62803:function(e,t){"use strict";t.byteLength=function(e){var t=c(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,o=c(e),s=o[0],a=o[1],u=new i(function(e,t,n){return 3*(t+n)/4-n}(0,s,a)),f=0,h=a>0?s-4:s;for(n=0;n<h;n+=4)t=r[e.charCodeAt(n)]<<18|r[e.charCodeAt(n+1)]<<12|r[e.charCodeAt(n+2)]<<6|r[e.charCodeAt(n+3)],u[f++]=t>>16&255,u[f++]=t>>8&255,u[f++]=255&t;2===a&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,u[f++]=255&t);1===a&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,u[f++]=t>>8&255,u[f++]=255&t);return u},t.fromByteArray=function(e){for(var t,r=e.length,i=r%3,o=[],s=16383,a=0,c=r-i;a<c;a+=s)o.push(u(e,a,a+s>c?c:a+s));1===i?(t=e[r-1],o.push(n[t>>2]+n[t<<4&63]+"==")):2===i&&(t=(e[r-2]<<8)+e[r-1],o.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"="));return o.join("")};for(var n=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,a=o.length;s<a;++s)n[s]=o[s],r[o.charCodeAt(s)]=s;function c(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,r){for(var i,o,s=[],a=t;a<r;a+=3)i=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),s.push(n[(o=i)>>18&63]+n[o>>12&63]+n[o>>6&63]+n[63&o]);return s.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},30910:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function o(e,t,n){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(56095).Buffer}catch(e){}function a(e,t){var n=e.charCodeAt(t);return n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:n-48&15}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function u(e,t,n,r){for(var i=0,o=Math.min(e.length,n),s=t;s<o;s++){var a=e.charCodeAt(s)-48;i*=r,i+=a>=49?a-49+10:a>=17?a-17+10:a}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)s=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this.strip()},o.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,o=0,s=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=c(e,t,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=c(e,t,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var o=e.length-n,s=o%r,a=Math.min(o,o-s)+n,c=0,f=n;f<a;f+=r)c=u(e,f,f+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==s){var h=1;for(c=u(e,f,e.length,t),f=0;f<s;f++)h*=t;this.imuln(h),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this.strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var f=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],h=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],l=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function d(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var u=1;u<r;u++){for(var f=c>>>26,h=67108863&c,l=Math.min(u,t.length-1),d=Math.max(0,u-e.length+1);d<=l;d++){var p=u-d|0;f+=(s=(i=0|e.words[p])*(o=0|t.words[d])+h)/67108864|0,h=67108863&s}n.words[u]=0|h,c=0|f}return 0!==c?n.words[u]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],c=(16777215&(a<<i|o)).toString(16);n=0!==(o=a>>>24-i&16777215)||s!==this.length-1?f[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var u=h[e],d=l[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(d).toString(e);n=(p=p.idivn(d)).isZero()?g+n:f[u-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return r(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0"),this.strip();var s,a,c="le"===t,u=new e(o),f=this.clone();if(c){for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),u[a]=s;for(;a<o;a++)u[a]=0}else{for(a=0;a<o-i;a++)u[a]=0;for(a=0;!f.isZero();a++)s=f.andln(255),f.iushrn(8),u[o-a-1]=s}return u},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this.strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this.strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this.strip()},o.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,o=0;o<r.length;o++)t=(0|n.words[o])+(0|r.words[o])+i,this.words[o]=67108863&t,i=t>>>26;for(;0!==i&&o<n.length;o++)t=(0|n.words[o])+i,this.words[o]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var o=0,s=0;s<r.length;s++)o=(t=(0|n.words[s])-(0|r.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<n.length;s++)o=(t=(0|n.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<n.length&&n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this.length=Math.max(this.length,s),n!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var p=function(e,t,n){var r,i,o,s=e.words,a=t.words,c=n.words,u=0,f=0|s[0],h=8191&f,l=f>>>13,d=0|s[1],p=8191&d,g=d>>>13,m=0|s[2],b=8191&m,v=m>>>13,y=0|s[3],w=8191&y,_=y>>>13,E=0|s[4],S=8191&E,k=E>>>13,M=0|s[5],C=8191&M,A=M>>>13,x=0|s[6],I=8191&x,O=x>>>13,T=0|s[7],N=8191&T,j=T>>>13,z=0|s[8],P=8191&z,R=z>>>13,B=0|s[9],L=8191&B,D=B>>>13,U=0|a[0],F=8191&U,H=U>>>13,V=0|a[1],q=8191&V,K=V>>>13,$=0|a[2],Z=8191&$,J=$>>>13,G=0|a[3],W=8191&G,Y=G>>>13,X=0|a[4],Q=8191&X,ee=X>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,fe=0|a[8],he=8191&fe,le=fe>>>13,de=0|a[9],pe=8191&de,ge=de>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(u+(r=Math.imul(h,F))|0)+((8191&(i=(i=Math.imul(h,H))+Math.imul(l,F)|0))<<13)|0;u=((o=Math.imul(l,H))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(p,F),i=(i=Math.imul(p,H))+Math.imul(g,F)|0,o=Math.imul(g,H);var be=(u+(r=r+Math.imul(h,q)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(l,q)|0))<<13)|0;u=((o=o+Math.imul(l,K)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,F),i=(i=Math.imul(b,H))+Math.imul(v,F)|0,o=Math.imul(v,H),r=r+Math.imul(p,q)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(g,q)|0,o=o+Math.imul(g,K)|0;var ve=(u+(r=r+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(l,Z)|0))<<13)|0;u=((o=o+Math.imul(l,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(w,F),i=(i=Math.imul(w,H))+Math.imul(_,F)|0,o=Math.imul(_,H),r=r+Math.imul(b,q)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,K)|0,r=r+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(g,Z)|0,o=o+Math.imul(g,J)|0;var ye=(u+(r=r+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(l,W)|0))<<13)|0;u=((o=o+Math.imul(l,Y)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(S,F),i=(i=Math.imul(S,H))+Math.imul(k,F)|0,o=Math.imul(k,H),r=r+Math.imul(w,q)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,K)|0,r=r+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(v,Z)|0,o=o+Math.imul(v,J)|0,r=r+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(g,W)|0,o=o+Math.imul(g,Y)|0;var we=(u+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(l,Q)|0))<<13)|0;u=((o=o+Math.imul(l,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(C,F),i=(i=Math.imul(C,H))+Math.imul(A,F)|0,o=Math.imul(A,H),r=r+Math.imul(S,q)|0,i=(i=i+Math.imul(S,K)|0)+Math.imul(k,q)|0,o=o+Math.imul(k,K)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,r=r+Math.imul(b,W)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,Q)|0,o=o+Math.imul(g,ee)|0;var _e=(u+(r=r+Math.imul(h,ne)|0)|0)+((8191&(i=(i=i+Math.imul(h,re)|0)+Math.imul(l,ne)|0))<<13)|0;u=((o=o+Math.imul(l,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(I,F),i=(i=Math.imul(I,H))+Math.imul(O,F)|0,o=Math.imul(O,H),r=r+Math.imul(C,q)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,K)|0,r=r+Math.imul(S,Z)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(k,Z)|0,o=o+Math.imul(k,J)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(g,ne)|0,o=o+Math.imul(g,re)|0;var Ee=(u+(r=r+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,se)|0)+Math.imul(l,oe)|0))<<13)|0;u=((o=o+Math.imul(l,se)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(N,F),i=(i=Math.imul(N,H))+Math.imul(j,F)|0,o=Math.imul(j,H),r=r+Math.imul(I,q)|0,i=(i=i+Math.imul(I,K)|0)+Math.imul(O,q)|0,o=o+Math.imul(O,K)|0,r=r+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(A,Z)|0,o=o+Math.imul(A,J)|0,r=r+Math.imul(S,W)|0,i=(i=i+Math.imul(S,Y)|0)+Math.imul(k,W)|0,o=o+Math.imul(k,Y)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(v,ne)|0,o=o+Math.imul(v,re)|0,r=r+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Se=(u+(r=r+Math.imul(h,ce)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(l,ce)|0))<<13)|0;u=((o=o+Math.imul(l,ue)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(P,F),i=(i=Math.imul(P,H))+Math.imul(R,F)|0,o=Math.imul(R,H),r=r+Math.imul(N,q)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(j,q)|0,o=o+Math.imul(j,K)|0,r=r+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(O,Z)|0,o=o+Math.imul(O,J)|0,r=r+Math.imul(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(A,W)|0,o=o+Math.imul(A,Y)|0,r=r+Math.imul(S,Q)|0,i=(i=i+Math.imul(S,ee)|0)+Math.imul(k,Q)|0,o=o+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,o=o+Math.imul(_,re)|0,r=r+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(v,oe)|0,o=o+Math.imul(v,se)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(g,ce)|0,o=o+Math.imul(g,ue)|0;var ke=(u+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,le)|0)+Math.imul(l,he)|0))<<13)|0;u=((o=o+Math.imul(l,le)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,F),i=(i=Math.imul(L,H))+Math.imul(D,F)|0,o=Math.imul(D,H),r=r+Math.imul(P,q)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(R,q)|0,o=o+Math.imul(R,K)|0,r=r+Math.imul(N,Z)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(j,Z)|0,o=o+Math.imul(j,J)|0,r=r+Math.imul(I,W)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,Y)|0,r=r+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,r=r+Math.imul(S,ne)|0,i=(i=i+Math.imul(S,re)|0)+Math.imul(k,ne)|0,o=o+Math.imul(k,re)|0,r=r+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,r=r+Math.imul(b,ce)|0,i=(i=i+Math.imul(b,ue)|0)+Math.imul(v,ce)|0,o=o+Math.imul(v,ue)|0,r=r+Math.imul(p,he)|0,i=(i=i+Math.imul(p,le)|0)+Math.imul(g,he)|0,o=o+Math.imul(g,le)|0;var Me=(u+(r=r+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ge)|0)+Math.imul(l,pe)|0))<<13)|0;u=((o=o+Math.imul(l,ge)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,q),i=(i=Math.imul(L,K))+Math.imul(D,q)|0,o=Math.imul(D,K),r=r+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(R,Z)|0,o=o+Math.imul(R,J)|0,r=r+Math.imul(N,W)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(j,W)|0,o=o+Math.imul(j,Y)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,ee)|0,r=r+Math.imul(C,ne)|0,i=(i=i+Math.imul(C,re)|0)+Math.imul(A,ne)|0,o=o+Math.imul(A,re)|0,r=r+Math.imul(S,oe)|0,i=(i=i+Math.imul(S,se)|0)+Math.imul(k,oe)|0,o=o+Math.imul(k,se)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,o=o+Math.imul(_,ue)|0,r=r+Math.imul(b,he)|0,i=(i=i+Math.imul(b,le)|0)+Math.imul(v,he)|0,o=o+Math.imul(v,le)|0;var Ce=(u+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;u=((o=o+Math.imul(g,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(D,Z)|0,o=Math.imul(D,J),r=r+Math.imul(P,W)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,r=r+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(j,Q)|0,o=o+Math.imul(j,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(O,ne)|0,o=o+Math.imul(O,re)|0,r=r+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,se)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,se)|0,r=r+Math.imul(S,ce)|0,i=(i=i+Math.imul(S,ue)|0)+Math.imul(k,ce)|0,o=o+Math.imul(k,ue)|0,r=r+Math.imul(w,he)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,le)|0;var Ae=(u+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(v,pe)|0))<<13)|0;u=((o=o+Math.imul(v,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(D,W)|0,o=Math.imul(D,Y),r=r+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,r=r+Math.imul(N,ne)|0,i=(i=i+Math.imul(N,re)|0)+Math.imul(j,ne)|0,o=o+Math.imul(j,re)|0,r=r+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,se)|0)+Math.imul(O,oe)|0,o=o+Math.imul(O,se)|0,r=r+Math.imul(C,ce)|0,i=(i=i+Math.imul(C,ue)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,ue)|0,r=r+Math.imul(S,he)|0,i=(i=i+Math.imul(S,le)|0)+Math.imul(k,he)|0,o=o+Math.imul(k,le)|0;var xe=(u+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ge)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,ge)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(D,Q)|0,o=Math.imul(D,ee),r=r+Math.imul(P,ne)|0,i=(i=i+Math.imul(P,re)|0)+Math.imul(R,ne)|0,o=o+Math.imul(R,re)|0,r=r+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(j,oe)|0,o=o+Math.imul(j,se)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,ue)|0)+Math.imul(O,ce)|0,o=o+Math.imul(O,ue)|0,r=r+Math.imul(C,he)|0,i=(i=i+Math.imul(C,le)|0)+Math.imul(A,he)|0,o=o+Math.imul(A,le)|0;var Ie=(u+(r=r+Math.imul(S,pe)|0)|0)+((8191&(i=(i=i+Math.imul(S,ge)|0)+Math.imul(k,pe)|0))<<13)|0;u=((o=o+Math.imul(k,ge)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(D,ne)|0,o=Math.imul(D,re),r=r+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,r=r+Math.imul(N,ce)|0,i=(i=i+Math.imul(N,ue)|0)+Math.imul(j,ce)|0,o=o+Math.imul(j,ue)|0,r=r+Math.imul(I,he)|0,i=(i=i+Math.imul(I,le)|0)+Math.imul(O,he)|0,o=o+Math.imul(O,le)|0;var Oe=(u+(r=r+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,ge)|0)+Math.imul(A,pe)|0))<<13)|0;u=((o=o+Math.imul(A,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(D,oe)|0,o=Math.imul(D,se),r=r+Math.imul(P,ce)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,o=o+Math.imul(R,ue)|0,r=r+Math.imul(N,he)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(j,he)|0,o=o+Math.imul(j,le)|0;var Te=(u+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,ge)|0)+Math.imul(O,pe)|0))<<13)|0;u=((o=o+Math.imul(O,ge)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(L,ce),i=(i=Math.imul(L,ue))+Math.imul(D,ce)|0,o=Math.imul(D,ue),r=r+Math.imul(P,he)|0,i=(i=i+Math.imul(P,le)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,le)|0;var Ne=(u+(r=r+Math.imul(N,pe)|0)|0)+((8191&(i=(i=i+Math.imul(N,ge)|0)+Math.imul(j,pe)|0))<<13)|0;u=((o=o+Math.imul(j,ge)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,he),i=(i=Math.imul(L,le))+Math.imul(D,he)|0,o=Math.imul(D,le);var je=(u+(r=r+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,ge)|0)+Math.imul(R,pe)|0))<<13)|0;u=((o=o+Math.imul(R,ge)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863;var ze=(u+(r=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,ge))+Math.imul(D,pe)|0))<<13)|0;return u=((o=Math.imul(D,ge))+(i>>>13)|0)+(ze>>>26)|0,ze&=67108863,c[0]=me,c[1]=be,c[2]=ve,c[3]=ye,c[4]=we,c[5]=_e,c[6]=Ee,c[7]=Se,c[8]=ke,c[9]=Me,c[10]=Ce,c[11]=Ae,c[12]=xe,c[13]=Ie,c[14]=Oe,c[15]=Te,c[16]=Ne,c[17]=je,c[18]=ze,0!==u&&(c[19]=u,n.length++),n};function g(e,t,n){return(new m).mulp(e,t,n)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=d),o.prototype.mulTo=function(e,t){var n,r=this.length+e.length;return n=10===this.length&&10===e.length?p(this,e,t):r<63?d(this,e,t):r<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,o=0;o<n.length-1;o++){var s=i;i=0;for(var a=67108863&r,c=Math.min(o,t.length-1),u=Math.max(0,o-e.length+1);u<=c;u++){var f=o-u,h=(0|e.words[f])*(0|t.words[u]),l=67108863&h;a=67108863&(l=l+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(l>>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n.strip()}(this,e,t):g(this,e,t),n},m.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},m.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},m.prototype.permute=function(e,t,n,r,i,o){for(var s=0;s<o;s++)r[s]=t[e[s]],i[s]=n[e[s]]},m.prototype.transform=function(e,t,n,r,i,o){this.permute(o,e,t,n,r,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,c=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),f=0;f<i;f+=a)for(var h=c,l=u,d=0;d<s;d++){var p=n[f+d],g=r[f+d],m=n[f+d+s],b=r[f+d+s],v=h*m-l*b;b=h*b+l*m,m=v,n[f+d]=p+m,r[f+d]=g+b,n[f+d+s]=p-m,r[f+d+s]=g-b,d!==a&&(v=c*h-u*l,l=c*l+u*h,h=v)}},m.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},m.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},m.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},m.prototype.convert13b=function(e,t,n,i){for(var o=0,s=0;s<t;s++)o+=0|e[s],n[2*s]=8191&o,o>>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s<i;++s)n[s]=0;r(0===o),r(0==(-8192&o))},m.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},m.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),o=this.stub(r),s=new Array(r),a=new Array(r),c=new Array(r),u=new Array(r),f=new Array(r),h=new Array(r),l=n.words;l.length=r,this.convert13b(e.words,e.length,s,r),this.convert13b(t.words,t.length,u,r),this.transform(s,o,a,c,r,i),this.transform(u,o,f,h,r,i);for(var d=0;d<r;d++){var p=a[d]*f[d]-c[d]*h[d];c[d]=a[d]*h[d]+c[d]*f[d],a[d]=p}return this.conjugate(a,c,r),this.transform(a,c,l,o,r,i),this.conjugate(l,o,r),this.normalize13b(l,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n.strip()},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){r("number"==typeof e),r(e<67108864);for(var t=0,n=0;n<this.length;n++){var i=(0|this.words[n])*e,o=(67108863&i)+(67108863&t);t>>=26,t+=i/67108864|0,t+=o>>>26,this.words[n]=67108863&o}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=(e.words[r]&1<<i)>>>i}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o,c=(0|this.words[t])-a<<n;this.words[t]=c|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this.strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,c=n;if(i-=s,i=Math.max(0,i),c){for(var u=0;u<s;u++)c.words[u]=this.words[u];c.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var f=0;for(u=this.length-1;u>=0&&(0!==f||u>=i);u--){var h=0|this.words[u];this.words[u]=f<<26-o|h>>>o,f=h&a}return c&&0!==f&&(c.words[c.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<<t;return!(this.length<=n)&&!!(this.words[n]&i)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this.strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var i,o,s=e.length+n;this._expand(s);var a=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+a;var c=(0|e.words[i])*t;a=((o-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)a=(o=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&o;if(0===a)return this.strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var f=r.clone()._ishlnsubmul(i,1,c);0===f.negative&&(r=f,a&&(a.words[c]=1));for(var h=c-1;h>=0;h--){var l=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),r._ishlnsubmul(i,l,h);0!==r.negative;)l--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=l)}return a&&a.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){r(e<=67108863);for(var t=(1<<26)%e,n=0,i=this.length-1;i>=0;i--)n=(t*n+(0|this.words[i]))%e;return n},o.prototype.idivn=function(e){r(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var i=(0|this.words[n])+67108864*t;this.words[n]=i/e|0,t=i%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var f=n.clone(),h=t.clone();!t.isZero();){for(var l=0,d=1;0==(t.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(t.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(f),c.isub(h)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,f=1;0==(t.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,l=1;0==(n.words[0]&l)&&h<26;++h,l<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var o=t;t=n,n=o}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new S(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function _(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function S(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function k(e){S.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},i(y,v),y.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&n,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&n)<<4|o>>>22,o=s}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(w,v),i(_,v),i(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new w;else if("p192"===e)t=new _;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},S.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},S.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},S.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},S.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},S.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},S.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},S.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},S.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},S.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},S.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},S.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},S.prototype.isqr=function(e){return this.imul(e,e.clone())},S.prototype.sqr=function(e){return this.mul(e,e)},S.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,u).cmp(c);)f.redIAdd(c);for(var h=this.pow(f,i),l=this.pow(e,i.addn(1).iushrn(1)),d=this.pow(e,i),p=s;0!==d.cmp(a);){for(var g=d,m=0;0!==g.cmp(a);m++)g=g.redSqr();r(m<p);var b=this.pow(h,new o(1).iushln(p-m-1));l=l.redMul(b),h=b.redSqr(),d=d.redMul(h),p=m}return l},S.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},S.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],s=0,a=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var u=t.words[r],f=c-1;f>=0;f--){var h=u>>f&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===f)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},S.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},S.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new k(e)},i(k,S),k.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},k.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},k.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},k.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},k.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},53380:function(e,t,n){!function(e,t){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}function i(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function o(e,t,n){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"==typeof e?e.exports=o:t.BN=o,o.BN=o,o.wordSize=26;try{s="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:n(14864).Buffer}catch(e){}function a(e,t){var n=e.charCodeAt(t);return n>=48&&n<=57?n-48:n>=65&&n<=70?n-55:n>=97&&n<=102?n-87:void r(!1,"Invalid character in "+e)}function c(e,t,n){var r=a(e,n);return n-1>=t&&(r|=a(e,n-1)<<4),r}function u(e,t,n,i){for(var o=0,s=0,a=Math.min(e.length,n),c=t;c<a;c++){var u=e.charCodeAt(c)-48;o*=i,s=u>=49?u-49+10:u>=17?u-17+10:u,r(u>=0&&s<i,"Invalid character"),o+=s}return o}function f(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(o.isBN=function(e){return e instanceof o||null!==e&&"object"==typeof e&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,t,n){if("number"==typeof e)return this._initNumber(e,t,n);if("object"==typeof e)return this._initArray(e,t,n);"hex"===t&&(t=16),r(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,n):(this._parseBase(e,t,i),"le"===n&&this._initArray(this.toArray(),t,n)))},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(r(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(r("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var o,s,a=0;if("be"===n)for(i=e.length-1,o=0;i>=0;i-=3)s=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);else if("le"===n)for(i=0,o=0;i<e.length;i+=3)s=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[o]|=s<<a&67108863,this.words[o+1]=s>>>26-a&67108863,(a+=24)>=26&&(a-=26,o++);return this._strip()},o.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,o=0,s=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=c(e,t,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=c(e,t,r)<<o,this.words[s]|=67108863&i,o>=18?(o-=18,s+=1,this.words[s]|=i>>>26):o+=8;this._strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var o=e.length-n,s=o%r,a=Math.min(o,o-s)+n,c=0,f=n;f<a;f+=r)c=u(e,f,f+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==s){var h=1;for(c=u(e,f,e.length,t),f=0;f<s;f++)h*=t;this.imuln(h),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype._move=function(e){f(e,this)},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{o.prototype[Symbol.for("nodejs.util.inspect.custom")]=h}catch(e){o.prototype.inspect=h}else o.prototype.inspect=h;function h(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],d=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];o.prototype.toString=function(e,t){var n;if(t=0|t||1,16===(e=e||10)||"hex"===e){n="";for(var i=0,o=0,s=0;s<this.length;s++){var a=this.words[s],c=(16777215&(a<<i|o)).toString(16);n=0!==(o=a>>>24-i&16777215)||s!==this.length-1?l[6-c.length]+c+n:c+n,(i+=2)>=26&&(i-=26,s--)}for(0!==o&&(n=o.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var u=d[e],f=p[e];n="";var h=this.clone();for(h.negative=0;!h.isZero();){var g=h.modrn(f).toString(e);n=(h=h.idivn(f)).isZero()?g+n:l[u-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}r(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16,2)},s&&(o.prototype.toBuffer=function(e,t){return this.toArrayLike(s,e,t)}),o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function g(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],o=0|t.words[0],s=i*o,a=67108863&s,c=s/67108864|0;n.words[0]=a;for(var u=1;u<r;u++){for(var f=c>>>26,h=67108863&c,l=Math.min(u,t.length-1),d=Math.max(0,u-e.length+1);d<=l;d++){var p=u-d|0;f+=(s=(i=0|e.words[p])*(o=0|t.words[d])+h)/67108864|0,h=67108863&s}n.words[u]=0|h,c=0|f}return 0!==c?n.words[u]=0|c:n.length--,n._strip()}o.prototype.toArrayLike=function(e,t,n){this._strip();var i=this.byteLength(),o=n||Math.max(1,i);r(i<=o,"byte array longer than desired length"),r(o>0,"Requested array length <= 0");var s=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,o);return this["_toArrayLike"+("le"===t?"LE":"BE")](s,i),s},o.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;e[n++]=255&s,n<e.length&&(e[n++]=s>>8&255),n<e.length&&(e[n++]=s>>16&255),6===o?(n<e.length&&(e[n++]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},o.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,o=0;i<this.length;i++){var s=this.words[i]<<o|r;e[n--]=255&s,n>=0&&(e[n--]=s>>8&255),n>=0&&(e[n--]=s>>16&255),6===o?(n>=0&&(e[n--]=s>>24&255),r=0,o=0):(r=s>>>24,o+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},o.prototype.ior=function(e){return r(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},o.prototype.iand=function(e){return r(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},o.prototype.ixor=function(e){return r(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){r("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return n>0&&(this.words[i]=~this.words[i]&67108863>>26-n),this._strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){r("number"==typeof e&&e>=0);var n=e/26|0,i=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<i:this.words[n]&~(1<<i),this._strip()},o.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,o=0;o<r.length;o++)t=(0|n.words[o])+(0|r.words[o])+i,this.words[o]=67108863&t,i=t>>>26;for(;0!==i&&o<n.length;o++)t=(0|n.words[o])+i,this.words[o]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var o=0,s=0;s<r.length;s++)o=(t=(0|n.words[s])-(0|r.words[s])+o)>>26,this.words[s]=67108863&t;for(;0!==o&&s<n.length;s++)o=(t=(0|n.words[s])+o)>>26,this.words[s]=67108863&t;if(0===o&&s<n.length&&n!==this)for(;s<n.length;s++)this.words[s]=n.words[s];return this.length=Math.max(this.length,s),n!==this&&(this.negative=1),this._strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,o,s=e.words,a=t.words,c=n.words,u=0,f=0|s[0],h=8191&f,l=f>>>13,d=0|s[1],p=8191&d,g=d>>>13,m=0|s[2],b=8191&m,v=m>>>13,y=0|s[3],w=8191&y,_=y>>>13,E=0|s[4],S=8191&E,k=E>>>13,M=0|s[5],C=8191&M,A=M>>>13,x=0|s[6],I=8191&x,O=x>>>13,T=0|s[7],N=8191&T,j=T>>>13,z=0|s[8],P=8191&z,R=z>>>13,B=0|s[9],L=8191&B,D=B>>>13,U=0|a[0],F=8191&U,H=U>>>13,V=0|a[1],q=8191&V,K=V>>>13,$=0|a[2],Z=8191&$,J=$>>>13,G=0|a[3],W=8191&G,Y=G>>>13,X=0|a[4],Q=8191&X,ee=X>>>13,te=0|a[5],ne=8191&te,re=te>>>13,ie=0|a[6],oe=8191&ie,se=ie>>>13,ae=0|a[7],ce=8191&ae,ue=ae>>>13,fe=0|a[8],he=8191&fe,le=fe>>>13,de=0|a[9],pe=8191&de,ge=de>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(u+(r=Math.imul(h,F))|0)+((8191&(i=(i=Math.imul(h,H))+Math.imul(l,F)|0))<<13)|0;u=((o=Math.imul(l,H))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(p,F),i=(i=Math.imul(p,H))+Math.imul(g,F)|0,o=Math.imul(g,H);var be=(u+(r=r+Math.imul(h,q)|0)|0)+((8191&(i=(i=i+Math.imul(h,K)|0)+Math.imul(l,q)|0))<<13)|0;u=((o=o+Math.imul(l,K)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,F),i=(i=Math.imul(b,H))+Math.imul(v,F)|0,o=Math.imul(v,H),r=r+Math.imul(p,q)|0,i=(i=i+Math.imul(p,K)|0)+Math.imul(g,q)|0,o=o+Math.imul(g,K)|0;var ve=(u+(r=r+Math.imul(h,Z)|0)|0)+((8191&(i=(i=i+Math.imul(h,J)|0)+Math.imul(l,Z)|0))<<13)|0;u=((o=o+Math.imul(l,J)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(w,F),i=(i=Math.imul(w,H))+Math.imul(_,F)|0,o=Math.imul(_,H),r=r+Math.imul(b,q)|0,i=(i=i+Math.imul(b,K)|0)+Math.imul(v,q)|0,o=o+Math.imul(v,K)|0,r=r+Math.imul(p,Z)|0,i=(i=i+Math.imul(p,J)|0)+Math.imul(g,Z)|0,o=o+Math.imul(g,J)|0;var ye=(u+(r=r+Math.imul(h,W)|0)|0)+((8191&(i=(i=i+Math.imul(h,Y)|0)+Math.imul(l,W)|0))<<13)|0;u=((o=o+Math.imul(l,Y)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(S,F),i=(i=Math.imul(S,H))+Math.imul(k,F)|0,o=Math.imul(k,H),r=r+Math.imul(w,q)|0,i=(i=i+Math.imul(w,K)|0)+Math.imul(_,q)|0,o=o+Math.imul(_,K)|0,r=r+Math.imul(b,Z)|0,i=(i=i+Math.imul(b,J)|0)+Math.imul(v,Z)|0,o=o+Math.imul(v,J)|0,r=r+Math.imul(p,W)|0,i=(i=i+Math.imul(p,Y)|0)+Math.imul(g,W)|0,o=o+Math.imul(g,Y)|0;var we=(u+(r=r+Math.imul(h,Q)|0)|0)+((8191&(i=(i=i+Math.imul(h,ee)|0)+Math.imul(l,Q)|0))<<13)|0;u=((o=o+Math.imul(l,ee)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(C,F),i=(i=Math.imul(C,H))+Math.imul(A,F)|0,o=Math.imul(A,H),r=r+Math.imul(S,q)|0,i=(i=i+Math.imul(S,K)|0)+Math.imul(k,q)|0,o=o+Math.imul(k,K)|0,r=r+Math.imul(w,Z)|0,i=(i=i+Math.imul(w,J)|0)+Math.imul(_,Z)|0,o=o+Math.imul(_,J)|0,r=r+Math.imul(b,W)|0,i=(i=i+Math.imul(b,Y)|0)+Math.imul(v,W)|0,o=o+Math.imul(v,Y)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,Q)|0,o=o+Math.imul(g,ee)|0;var _e=(u+(r=r+Math.imul(h,ne)|0)|0)+((8191&(i=(i=i+Math.imul(h,re)|0)+Math.imul(l,ne)|0))<<13)|0;u=((o=o+Math.imul(l,re)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(I,F),i=(i=Math.imul(I,H))+Math.imul(O,F)|0,o=Math.imul(O,H),r=r+Math.imul(C,q)|0,i=(i=i+Math.imul(C,K)|0)+Math.imul(A,q)|0,o=o+Math.imul(A,K)|0,r=r+Math.imul(S,Z)|0,i=(i=i+Math.imul(S,J)|0)+Math.imul(k,Z)|0,o=o+Math.imul(k,J)|0,r=r+Math.imul(w,W)|0,i=(i=i+Math.imul(w,Y)|0)+Math.imul(_,W)|0,o=o+Math.imul(_,Y)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(v,Q)|0,o=o+Math.imul(v,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(g,ne)|0,o=o+Math.imul(g,re)|0;var Ee=(u+(r=r+Math.imul(h,oe)|0)|0)+((8191&(i=(i=i+Math.imul(h,se)|0)+Math.imul(l,oe)|0))<<13)|0;u=((o=o+Math.imul(l,se)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(N,F),i=(i=Math.imul(N,H))+Math.imul(j,F)|0,o=Math.imul(j,H),r=r+Math.imul(I,q)|0,i=(i=i+Math.imul(I,K)|0)+Math.imul(O,q)|0,o=o+Math.imul(O,K)|0,r=r+Math.imul(C,Z)|0,i=(i=i+Math.imul(C,J)|0)+Math.imul(A,Z)|0,o=o+Math.imul(A,J)|0,r=r+Math.imul(S,W)|0,i=(i=i+Math.imul(S,Y)|0)+Math.imul(k,W)|0,o=o+Math.imul(k,Y)|0,r=r+Math.imul(w,Q)|0,i=(i=i+Math.imul(w,ee)|0)+Math.imul(_,Q)|0,o=o+Math.imul(_,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(v,ne)|0,o=o+Math.imul(v,re)|0,r=r+Math.imul(p,oe)|0,i=(i=i+Math.imul(p,se)|0)+Math.imul(g,oe)|0,o=o+Math.imul(g,se)|0;var Se=(u+(r=r+Math.imul(h,ce)|0)|0)+((8191&(i=(i=i+Math.imul(h,ue)|0)+Math.imul(l,ce)|0))<<13)|0;u=((o=o+Math.imul(l,ue)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(P,F),i=(i=Math.imul(P,H))+Math.imul(R,F)|0,o=Math.imul(R,H),r=r+Math.imul(N,q)|0,i=(i=i+Math.imul(N,K)|0)+Math.imul(j,q)|0,o=o+Math.imul(j,K)|0,r=r+Math.imul(I,Z)|0,i=(i=i+Math.imul(I,J)|0)+Math.imul(O,Z)|0,o=o+Math.imul(O,J)|0,r=r+Math.imul(C,W)|0,i=(i=i+Math.imul(C,Y)|0)+Math.imul(A,W)|0,o=o+Math.imul(A,Y)|0,r=r+Math.imul(S,Q)|0,i=(i=i+Math.imul(S,ee)|0)+Math.imul(k,Q)|0,o=o+Math.imul(k,ee)|0,r=r+Math.imul(w,ne)|0,i=(i=i+Math.imul(w,re)|0)+Math.imul(_,ne)|0,o=o+Math.imul(_,re)|0,r=r+Math.imul(b,oe)|0,i=(i=i+Math.imul(b,se)|0)+Math.imul(v,oe)|0,o=o+Math.imul(v,se)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(g,ce)|0,o=o+Math.imul(g,ue)|0;var ke=(u+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,le)|0)+Math.imul(l,he)|0))<<13)|0;u=((o=o+Math.imul(l,le)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,F),i=(i=Math.imul(L,H))+Math.imul(D,F)|0,o=Math.imul(D,H),r=r+Math.imul(P,q)|0,i=(i=i+Math.imul(P,K)|0)+Math.imul(R,q)|0,o=o+Math.imul(R,K)|0,r=r+Math.imul(N,Z)|0,i=(i=i+Math.imul(N,J)|0)+Math.imul(j,Z)|0,o=o+Math.imul(j,J)|0,r=r+Math.imul(I,W)|0,i=(i=i+Math.imul(I,Y)|0)+Math.imul(O,W)|0,o=o+Math.imul(O,Y)|0,r=r+Math.imul(C,Q)|0,i=(i=i+Math.imul(C,ee)|0)+Math.imul(A,Q)|0,o=o+Math.imul(A,ee)|0,r=r+Math.imul(S,ne)|0,i=(i=i+Math.imul(S,re)|0)+Math.imul(k,ne)|0,o=o+Math.imul(k,re)|0,r=r+Math.imul(w,oe)|0,i=(i=i+Math.imul(w,se)|0)+Math.imul(_,oe)|0,o=o+Math.imul(_,se)|0,r=r+Math.imul(b,ce)|0,i=(i=i+Math.imul(b,ue)|0)+Math.imul(v,ce)|0,o=o+Math.imul(v,ue)|0,r=r+Math.imul(p,he)|0,i=(i=i+Math.imul(p,le)|0)+Math.imul(g,he)|0,o=o+Math.imul(g,le)|0;var Me=(u+(r=r+Math.imul(h,pe)|0)|0)+((8191&(i=(i=i+Math.imul(h,ge)|0)+Math.imul(l,pe)|0))<<13)|0;u=((o=o+Math.imul(l,ge)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(L,q),i=(i=Math.imul(L,K))+Math.imul(D,q)|0,o=Math.imul(D,K),r=r+Math.imul(P,Z)|0,i=(i=i+Math.imul(P,J)|0)+Math.imul(R,Z)|0,o=o+Math.imul(R,J)|0,r=r+Math.imul(N,W)|0,i=(i=i+Math.imul(N,Y)|0)+Math.imul(j,W)|0,o=o+Math.imul(j,Y)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(O,Q)|0,o=o+Math.imul(O,ee)|0,r=r+Math.imul(C,ne)|0,i=(i=i+Math.imul(C,re)|0)+Math.imul(A,ne)|0,o=o+Math.imul(A,re)|0,r=r+Math.imul(S,oe)|0,i=(i=i+Math.imul(S,se)|0)+Math.imul(k,oe)|0,o=o+Math.imul(k,se)|0,r=r+Math.imul(w,ce)|0,i=(i=i+Math.imul(w,ue)|0)+Math.imul(_,ce)|0,o=o+Math.imul(_,ue)|0,r=r+Math.imul(b,he)|0,i=(i=i+Math.imul(b,le)|0)+Math.imul(v,he)|0,o=o+Math.imul(v,le)|0;var Ce=(u+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;u=((o=o+Math.imul(g,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,J))+Math.imul(D,Z)|0,o=Math.imul(D,J),r=r+Math.imul(P,W)|0,i=(i=i+Math.imul(P,Y)|0)+Math.imul(R,W)|0,o=o+Math.imul(R,Y)|0,r=r+Math.imul(N,Q)|0,i=(i=i+Math.imul(N,ee)|0)+Math.imul(j,Q)|0,o=o+Math.imul(j,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(O,ne)|0,o=o+Math.imul(O,re)|0,r=r+Math.imul(C,oe)|0,i=(i=i+Math.imul(C,se)|0)+Math.imul(A,oe)|0,o=o+Math.imul(A,se)|0,r=r+Math.imul(S,ce)|0,i=(i=i+Math.imul(S,ue)|0)+Math.imul(k,ce)|0,o=o+Math.imul(k,ue)|0,r=r+Math.imul(w,he)|0,i=(i=i+Math.imul(w,le)|0)+Math.imul(_,he)|0,o=o+Math.imul(_,le)|0;var Ae=(u+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(v,pe)|0))<<13)|0;u=((o=o+Math.imul(v,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(L,W),i=(i=Math.imul(L,Y))+Math.imul(D,W)|0,o=Math.imul(D,Y),r=r+Math.imul(P,Q)|0,i=(i=i+Math.imul(P,ee)|0)+Math.imul(R,Q)|0,o=o+Math.imul(R,ee)|0,r=r+Math.imul(N,ne)|0,i=(i=i+Math.imul(N,re)|0)+Math.imul(j,ne)|0,o=o+Math.imul(j,re)|0,r=r+Math.imul(I,oe)|0,i=(i=i+Math.imul(I,se)|0)+Math.imul(O,oe)|0,o=o+Math.imul(O,se)|0,r=r+Math.imul(C,ce)|0,i=(i=i+Math.imul(C,ue)|0)+Math.imul(A,ce)|0,o=o+Math.imul(A,ue)|0,r=r+Math.imul(S,he)|0,i=(i=i+Math.imul(S,le)|0)+Math.imul(k,he)|0,o=o+Math.imul(k,le)|0;var xe=(u+(r=r+Math.imul(w,pe)|0)|0)+((8191&(i=(i=i+Math.imul(w,ge)|0)+Math.imul(_,pe)|0))<<13)|0;u=((o=o+Math.imul(_,ge)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul(D,Q)|0,o=Math.imul(D,ee),r=r+Math.imul(P,ne)|0,i=(i=i+Math.imul(P,re)|0)+Math.imul(R,ne)|0,o=o+Math.imul(R,re)|0,r=r+Math.imul(N,oe)|0,i=(i=i+Math.imul(N,se)|0)+Math.imul(j,oe)|0,o=o+Math.imul(j,se)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,ue)|0)+Math.imul(O,ce)|0,o=o+Math.imul(O,ue)|0,r=r+Math.imul(C,he)|0,i=(i=i+Math.imul(C,le)|0)+Math.imul(A,he)|0,o=o+Math.imul(A,le)|0;var Ie=(u+(r=r+Math.imul(S,pe)|0)|0)+((8191&(i=(i=i+Math.imul(S,ge)|0)+Math.imul(k,pe)|0))<<13)|0;u=((o=o+Math.imul(k,ge)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(D,ne)|0,o=Math.imul(D,re),r=r+Math.imul(P,oe)|0,i=(i=i+Math.imul(P,se)|0)+Math.imul(R,oe)|0,o=o+Math.imul(R,se)|0,r=r+Math.imul(N,ce)|0,i=(i=i+Math.imul(N,ue)|0)+Math.imul(j,ce)|0,o=o+Math.imul(j,ue)|0,r=r+Math.imul(I,he)|0,i=(i=i+Math.imul(I,le)|0)+Math.imul(O,he)|0,o=o+Math.imul(O,le)|0;var Oe=(u+(r=r+Math.imul(C,pe)|0)|0)+((8191&(i=(i=i+Math.imul(C,ge)|0)+Math.imul(A,pe)|0))<<13)|0;u=((o=o+Math.imul(A,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,oe),i=(i=Math.imul(L,se))+Math.imul(D,oe)|0,o=Math.imul(D,se),r=r+Math.imul(P,ce)|0,i=(i=i+Math.imul(P,ue)|0)+Math.imul(R,ce)|0,o=o+Math.imul(R,ue)|0,r=r+Math.imul(N,he)|0,i=(i=i+Math.imul(N,le)|0)+Math.imul(j,he)|0,o=o+Math.imul(j,le)|0;var Te=(u+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,ge)|0)+Math.imul(O,pe)|0))<<13)|0;u=((o=o+Math.imul(O,ge)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(L,ce),i=(i=Math.imul(L,ue))+Math.imul(D,ce)|0,o=Math.imul(D,ue),r=r+Math.imul(P,he)|0,i=(i=i+Math.imul(P,le)|0)+Math.imul(R,he)|0,o=o+Math.imul(R,le)|0;var Ne=(u+(r=r+Math.imul(N,pe)|0)|0)+((8191&(i=(i=i+Math.imul(N,ge)|0)+Math.imul(j,pe)|0))<<13)|0;u=((o=o+Math.imul(j,ge)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,he),i=(i=Math.imul(L,le))+Math.imul(D,he)|0,o=Math.imul(D,le);var je=(u+(r=r+Math.imul(P,pe)|0)|0)+((8191&(i=(i=i+Math.imul(P,ge)|0)+Math.imul(R,pe)|0))<<13)|0;u=((o=o+Math.imul(R,ge)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863;var ze=(u+(r=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,ge))+Math.imul(D,pe)|0))<<13)|0;return u=((o=Math.imul(D,ge))+(i>>>13)|0)+(ze>>>26)|0,ze&=67108863,c[0]=me,c[1]=be,c[2]=ve,c[3]=ye,c[4]=we,c[5]=_e,c[6]=Ee,c[7]=Se,c[8]=ke,c[9]=Me,c[10]=Ce,c[11]=Ae,c[12]=xe,c[13]=Ie,c[14]=Oe,c[15]=Te,c[16]=Ne,c[17]=je,c[18]=ze,0!==u&&(c[19]=u,n.length++),n};function b(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,o=0;o<n.length-1;o++){var s=i;i=0;for(var a=67108863&r,c=Math.min(o,t.length-1),u=Math.max(0,o-e.length+1);u<=c;u++){var f=o-u,h=(0|e.words[f])*(0|t.words[u]),l=67108863&h;a=67108863&(l=l+a|0),i+=(s=(s=s+(h/67108864|0)|0)+(l>>>26)|0)>>>26,s&=67108863}n.words[o]=a,r=s,s=i}return 0!==r?n.words[o]=r:n.length--,n._strip()}function v(e,t,n){return b(e,t,n)}function y(e,t){this.x=e,this.y=t}Math.imul||(m=g),o.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?g(this,e,t):n<1024?b(this,e,t):v(this,e,t)},y.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},y.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},y.prototype.permute=function(e,t,n,r,i,o){for(var s=0;s<o;s++)r[s]=t[e[s]],i[s]=n[e[s]]},y.prototype.transform=function(e,t,n,r,i,o){this.permute(o,e,t,n,r,i);for(var s=1;s<i;s<<=1)for(var a=s<<1,c=Math.cos(2*Math.PI/a),u=Math.sin(2*Math.PI/a),f=0;f<i;f+=a)for(var h=c,l=u,d=0;d<s;d++){var p=n[f+d],g=r[f+d],m=n[f+d+s],b=r[f+d+s],v=h*m-l*b;b=h*b+l*m,m=v,n[f+d]=p+m,r[f+d]=g+b,n[f+d+s]=p-m,r[f+d+s]=g-b,d!==a&&(v=c*h-u*l,l=c*l+u*h,h=v)}},y.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},y.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},y.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},y.prototype.convert13b=function(e,t,n,i){for(var o=0,s=0;s<t;s++)o+=0|e[s],n[2*s]=8191&o,o>>>=13,n[2*s+1]=8191&o,o>>>=13;for(s=2*t;s<i;++s)n[s]=0;r(0===o),r(0==(-8192&o))},y.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},y.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),o=this.stub(r),s=new Array(r),a=new Array(r),c=new Array(r),u=new Array(r),f=new Array(r),h=new Array(r),l=n.words;l.length=r,this.convert13b(e.words,e.length,s,r),this.convert13b(t.words,t.length,u,r),this.transform(s,o,a,c,r,i),this.transform(u,o,f,h,r,i);for(var d=0;d<r;d++){var p=a[d]*f[d]-c[d]*h[d];c[d]=a[d]*h[d]+c[d]*f[d],a[d]=p}return this.conjugate(a,c,r),this.transform(a,c,l,o,r,i),this.conjugate(l,o,r),this.normalize13b(l,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n._strip()},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),v(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){var t=e<0;t&&(e=-e),r("number"==typeof e),r(e<67108864);for(var n=0,i=0;i<this.length;i++){var o=(0|this.words[i])*e,s=(67108863&o)+(67108863&n);n>>=26,n+=o/67108864|0,n+=s>>>26,this.words[i]=67108863&s}return 0!==n&&(this.words[i]=n,this.length++),t?this.ineg():this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(e){r("number"==typeof e&&e>=0);var t,n=e%26,i=(e-n)/26,o=67108863>>>26-n<<26-n;if(0!==n){var s=0;for(t=0;t<this.length;t++){var a=this.words[t]&o,c=(0|this.words[t])-a<<n;this.words[t]=c|s,s=a>>>26-n}s&&(this.words[t]=s,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},o.prototype.ishln=function(e){return r(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var i;r("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var o=e%26,s=Math.min((e-o)/26,this.length),a=67108863^67108863>>>o<<o,c=n;if(i-=s,i=Math.max(0,i),c){for(var u=0;u<s;u++)c.words[u]=this.words[u];c.length=s}if(0===s);else if(this.length>s)for(this.length-=s,u=0;u<this.length;u++)this.words[u]=this.words[u+s];else this.words[0]=0,this.length=1;var f=0;for(u=this.length-1;u>=0&&(0!==f||u>=i);u--){var h=0|this.words[u];this.words[u]=f<<26-o|h>>>o,f=h&a}return c&&0!==f&&(c.words[c.length++]=f),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},o.prototype.ishrn=function(e,t,n){return r(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,i=1<<t;return!(this.length<=n)&&!!(this.words[n]&i)},o.prototype.imaskn=function(e){r("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(r(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return r("number"==typeof e),r(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(r("number"==typeof e),r(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var i,o,s=e.length+n;this._expand(s);var a=0;for(i=0;i<e.length;i++){o=(0|this.words[i+n])+a;var c=(0|e.words[i])*t;a=((o-=67108863&c)>>26)-(c/67108864|0),this.words[i+n]=67108863&o}for(;i<this.length-n;i++)a=(o=(0|this.words[i+n])+a)>>26,this.words[i+n]=67108863&o;if(0===a)return this._strip();for(r(-1===a),a=0,i=0;i<this.length;i++)a=(o=-(0|this.words[i])+a)>>26,this.words[i]=67108863&o;return this.negative=1,this._strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,s=0|i.words[i.length-1];0!==(n=26-this._countBits(s))&&(i=i.ushln(n),r.iushln(n),s=0|i.words[i.length-1]);var a,c=r.length-i.length;if("mod"!==t){(a=new o(null)).length=c+1,a.words=new Array(a.length);for(var u=0;u<a.length;u++)a.words[u]=0}var f=r.clone()._ishlnsubmul(i,1,c);0===f.negative&&(r=f,a&&(a.words[c]=1));for(var h=c-1;h>=0;h--){var l=67108864*(0|r.words[i.length+h])+(0|r.words[i.length+h-1]);for(l=Math.min(l/s|0,67108863),r._ishlnsubmul(i,l,h);0!==r.negative;)l--,r.negative=0,r._ishlnsubmul(i,1,h),r.isZero()||(r.negative^=1);a&&(a.words[h]=l)}return a&&a._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:a||null,mod:r}},o.prototype.divmod=function(e,t,n){return r(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(a=this.neg().divmod(e,t),"mod"!==t&&(i=a.div.neg()),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.iadd(e)),{div:i,mod:s}):0===this.negative&&0!==e.negative?(a=this.divmod(e.neg(),t),"mod"!==t&&(i=a.div.neg()),{div:i,mod:a.mod}):0!=(this.negative&e.negative)?(a=this.neg().divmod(e.neg(),t),"div"!==t&&(s=a.mod.neg(),n&&0!==s.negative&&s.isub(e)),{div:a.div,mod:s}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modrn(e.words[0]))}:this._wordDiv(e,t);var i,s,a},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),o=n.cmp(r);return o<0||1===i&&0===o?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modrn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=(1<<26)%e,i=0,o=this.length-1;o>=0;o--)i=(n*i+(0|this.words[o]))%e;return t?-i:i},o.prototype.modn=function(e){return this.modrn(e)},o.prototype.idivn=function(e){var t=e<0;t&&(e=-e),r(e<=67108863);for(var n=0,i=this.length-1;i>=0;i--){var o=(0|this.words[i])+67108864*n;this.words[i]=o/e|0,n=o%e}return this._strip(),t?this.ineg():this},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i=new o(1),s=new o(0),a=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var f=n.clone(),h=t.clone();!t.isZero();){for(var l=0,d=1;0==(t.words[0]&d)&&l<26;++l,d<<=1);if(l>0)for(t.iushrn(l);l-- >0;)(i.isOdd()||s.isOdd())&&(i.iadd(f),s.isub(h)),i.iushrn(1),s.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(a.isOdd()||c.isOdd())&&(a.iadd(f),c.isub(h)),a.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),i.isub(a),s.isub(c)):(n.isub(t),a.isub(i),c.isub(s))}return{a:a,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){r(0===e.negative),r(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var i,s=new o(1),a=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,f=1;0==(t.words[0]&f)&&u<26;++u,f<<=1);if(u>0)for(t.iushrn(u);u-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);for(var h=0,l=1;0==(n.words[0]&l)&&h<26;++h,l<<=1);if(h>0)for(n.iushrn(h);h-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);t.cmp(n)>=0?(t.isub(n),s.isub(a)):(n.isub(t),a.isub(s))}return(i=0===t.cmpn(1)?s:a).cmpn(0)<0&&i.iadd(e),i},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var o=t;t=n,n=o}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){r("number"==typeof e);var t=e%26,n=(e-t)/26,i=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=i,this;for(var o=i,s=n;0!==o&&s<this.length;s++){var a=0|this.words[s];o=(a+=o)>>>26,a&=67108863,this.words[s]=a}return 0!==o&&(this.words[s]=o,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this._strip(),this.length>1)t=1;else{n&&(e=-e),r(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new C(e)},o.prototype.toRed=function(e){return r(!this.red,"Already a number in reduction context"),r(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return r(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return r(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var w={k256:null,p224:null,p192:null,p25519:null};function _(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function E(){_.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function S(){_.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function k(){_.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function M(){_.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function C(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else r(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function A(e){C.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}_.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},_.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},_.prototype.split=function(e,t){e.iushrn(this.n,0,t)},_.prototype.imulK=function(e){return e.imul(this.k)},i(E,_),E.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var o=e.words[9];for(t.words[t.length++]=o&n,i=10;i<e.length;i++){var s=0|e.words[i];e.words[i-10]=(s&n)<<4|o>>>22,o=s}o>>>=22,e.words[i-10]=o,0===o&&e.length>10?e.length-=10:e.length-=9},E.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},i(S,_),i(k,_),i(M,_),M.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(w[e])return w[e];var t;if("k256"===e)t=new E;else if("p224"===e)t=new S;else if("p192"===e)t=new k;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new M}return w[e]=t,t},C.prototype._verify1=function(e){r(0===e.negative,"red works only with positives"),r(e.red,"red works only with red numbers")},C.prototype._verify2=function(e,t){r(0==(e.negative|t.negative),"red works only with positives"),r(e.red&&e.red===t.red,"red works only with red numbers")},C.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(f(e,e.umod(this.m)._forceRed(this)),e)},C.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},C.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},C.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},C.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},C.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},C.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},C.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},C.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},C.prototype.isqr=function(e){return this.imul(e,e.clone())},C.prototype.sqr=function(e){return this.mul(e,e)},C.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(r(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var i=this.m.subn(1),s=0;!i.isZero()&&0===i.andln(1);)s++,i.iushrn(1);r(!i.isZero());var a=new o(1).toRed(this),c=a.redNeg(),u=this.m.subn(1).iushrn(1),f=this.m.bitLength();for(f=new o(2*f*f).toRed(this);0!==this.pow(f,u).cmp(c);)f.redIAdd(c);for(var h=this.pow(f,i),l=this.pow(e,i.addn(1).iushrn(1)),d=this.pow(e,i),p=s;0!==d.cmp(a);){for(var g=d,m=0;0!==g.cmp(a);m++)g=g.redSqr();r(m<p);var b=this.pow(h,new o(1).iushln(p-m-1));l=l.redMul(b),h=b.redSqr(),d=d.redMul(h),p=m}return l},C.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},C.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],s=0,a=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var u=t.words[r],f=c-1;f>=0;f--){var h=u>>f&1;i!==n[0]&&(i=this.sqr(i)),0!==h||0!==s?(s<<=1,s|=h,(4===++a||0===r&&0===f)&&(i=this.mul(i,n[s]),a=0,s=0)):a=0}c=26}return i},C.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},C.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new A(e)},i(A,C),A.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},A.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},A.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),o=i;return i.cmp(this.m)>=0?o=i.isub(this.m):i.cmpn(0)<0&&(o=i.iadd(this.m)),o._forceRed(this)},A.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),s=i;return i.cmp(this.m)>=0?s=i.isub(this.m):i.cmpn(0)<0&&(s=i.iadd(this.m)),s._forceRed(this)},A.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e=n.nmd(e),this)},98707:function(e,t,n){var r=n(52221);e.exports=function(e){var t=null,n=r(e);if(3===e.nodeType){var i=n.createRange();i.selectNodeContents(e),e=i}if("function"==typeof e.getBoundingClientRect&&(t=e.getBoundingClientRect(),e.startContainer&&0===t.left&&0===t.top)){var o=n.createElement("span");o.appendChild(n.createTextNode("​")),e.insertNode(o),t=o.getBoundingClientRect();var s=o.parentNode;s.removeChild(o),s.normalize()}return t}},71876:function(e,t,n){var r;function i(e){this.rand=e}if(e.exports=function(e){return r||(r=new i(null)),r.generate(e)},e.exports.Rand=i,i.prototype.generate=function(e){return this._rand(e)},i.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n<t.length;n++)t[n]=this.rand.getByte();return t},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?i.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"==typeof window&&(i.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=n(69627);if("function"!=typeof o.randomBytes)throw new Error("Not supported");i.prototype._rand=function(e){return o.randomBytes(e)}}catch(e){}},9111:function(e,t,n){var r=n(37225).Buffer;function i(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),i=0;i<t;i++)n[i]=e.readUInt32BE(4*i);return n}function o(e){for(;0<e.length;e++)e[0]=0}function s(e,t,n,r,i){for(var o,s,a,c,u=n[0],f=n[1],h=n[2],l=n[3],d=e[0]^t[0],p=e[1]^t[1],g=e[2]^t[2],m=e[3]^t[3],b=4,v=1;v<i;v++)o=u[d>>>24]^f[p>>>16&255]^h[g>>>8&255]^l[255&m]^t[b++],s=u[p>>>24]^f[g>>>16&255]^h[m>>>8&255]^l[255&d]^t[b++],a=u[g>>>24]^f[m>>>16&255]^h[d>>>8&255]^l[255&p]^t[b++],c=u[m>>>24]^f[d>>>16&255]^h[p>>>8&255]^l[255&g]^t[b++],d=o,p=s,g=a,m=c;return o=(r[d>>>24]<<24|r[p>>>16&255]<<16|r[g>>>8&255]<<8|r[255&m])^t[b++],s=(r[p>>>24]<<24|r[g>>>16&255]<<16|r[m>>>8&255]<<8|r[255&d])^t[b++],a=(r[g>>>24]<<24|r[m>>>16&255]<<16|r[d>>>8&255]<<8|r[255&p])^t[b++],c=(r[m>>>24]<<24|r[d>>>16&255]<<16|r[p>>>8&255]<<8|r[255&g])^t[b++],[o>>>=0,s>>>=0,a>>>=0,c>>>=0]}var a=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],o=[[],[],[],[]],s=0,a=0,c=0;c<256;++c){var u=a^a<<1^a<<2^a<<3^a<<4;u=u>>>8^255&u^99,n[s]=u,r[u]=s;var f=e[s],h=e[f],l=e[h],d=257*e[u]^16843008*u;i[0][s]=d<<24|d>>>8,i[1][s]=d<<16|d>>>16,i[2][s]=d<<8|d>>>24,i[3][s]=d,d=16843009*l^65537*h^257*f^16843008*s,o[0][u]=d<<24|d>>>8,o[1][u]=d<<16|d>>>16,o[2][u]=d<<8|d>>>24,o[3][u]=d,0===s?s=a=1:(s=f^e[e[e[l^f]]],a^=e[e[a]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:o}}();function u(e){this._key=i(e),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],o=0;o<t;o++)i[o]=e[o];for(o=t;o<r;o++){var s=i[o-1];o%t==0?(s=s<<8|s>>>24,s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s],s^=a[o/t|0]<<24):t>6&&o%t==4&&(s=c.SBOX[s>>>24]<<24|c.SBOX[s>>>16&255]<<16|c.SBOX[s>>>8&255]<<8|c.SBOX[255&s]),i[o]=i[o-t]^s}for(var u=[],f=0;f<r;f++){var h=r-f,l=i[h-(f%4?0:4)];u[f]=f<4||h<=4?l:c.INV_SUB_MIX[0][c.SBOX[l>>>24]]^c.INV_SUB_MIX[1][c.SBOX[l>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[l>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&l]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(e){return s(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},u.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},u.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=s(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),o=r.allocUnsafe(16);return o.writeUInt32BE(n[0],0),o.writeUInt32BE(n[3],4),o.writeUInt32BE(n[2],8),o.writeUInt32BE(n[1],12),o},u.prototype.scrub=function(){o(this._keySchedule),o(this._invKeySchedule),o(this._key)},e.exports.AES=u},43667:function(e,t,n){var r=n(9111),i=n(37225).Buffer,o=n(69239),s=n(59503),a=n(83579),c=n(35375),u=n(35127);function f(e,t,n,s){o.call(this);var c=i.alloc(4,0);this._cipher=new r.AES(t);var f=this._cipher.encryptBlock(c);this._ghash=new a(f),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new a(n),o=t.length,s=o%16;r.update(t),s&&(s=16-s,r.update(i.alloc(s,0))),r.update(i.alloc(8,0));var c=8*o,f=i.alloc(8);f.writeUIntBE(c,0,8),r.update(f),e._finID=r.state;var h=i.from(e._finID);return u(h),h}(this,n,f),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}s(f,o),f.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},f.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;i<r;++i)n+=e[i]^t[i];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},f.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},f.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},f.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=f},6123:function(e,t,n){var r=n(37180),i=n(68161),o=n(4317);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(o)}},68161:function(e,t,n){var r=n(43667),i=n(37225).Buffer,o=n(54354),s=n(76085),a=n(69239),c=n(9111),u=n(51105);function f(e,t,n){a.call(this),this._cache=new h,this._last=void 0,this._cipher=new c.AES(t),this._prev=i.from(n),this._mode=e,this._autopadding=!0}function h(){this.cache=i.allocUnsafe(0)}function l(e,t,n){var a=o[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof n&&(n=i.from(n)),"GCM"!==a.mode&&n.length!==a.iv)throw new TypeError("invalid iv length "+n.length);if("string"==typeof t&&(t=i.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);return"stream"===a.type?new s(a.module,t,n,!0):"auth"===a.type?new r(a.module,t,n,!0):new f(a.module,t,n)}n(59503)(f,a),f.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get(this._autopadding);)n=this._mode.decrypt(this,t),r.push(n);return i.concat(r)},f.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return function(e){var t=e[15];if(t<1||t>16)throw new Error("unable to decrypt data");var n=-1;for(;++n<t;)if(e[n+(16-t)]!==t)throw new Error("unable to decrypt data");if(16===t)return;return e.slice(0,16-t)}(this._mode.decrypt(this,e));if(e)throw new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},h.prototype.add=function(e){this.cache=i.concat([this.cache,e])},h.prototype.get=function(e){var t;if(e){if(this.cache.length>16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t}else if(this.cache.length>=16)return t=this.cache.slice(0,16),this.cache=this.cache.slice(16),t;return null},h.prototype.flush=function(){if(this.cache.length)return this.cache},t.createDecipher=function(e,t){var n=o[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var r=u(t,!1,n.key,n.iv);return l(e,r.key,r.iv)},t.createDecipheriv=l},37180:function(e,t,n){var r=n(54354),i=n(43667),o=n(37225).Buffer,s=n(76085),a=n(69239),c=n(9111),u=n(51105);function f(e,t,n){a.call(this),this._cache=new l,this._cipher=new c.AES(t),this._prev=o.from(n),this._mode=e,this._autopadding=!0}n(59503)(f,a),f.prototype._update=function(e){var t,n;this._cache.add(e);for(var r=[];t=this._cache.get();)n=this._mode.encrypt(this,t),r.push(n);return o.concat(r)};var h=o.alloc(16,16);function l(){this.cache=o.allocUnsafe(0)}function d(e,t,n){var a=r[e.toLowerCase()];if(!a)throw new TypeError("invalid suite type");if("string"==typeof t&&(t=o.from(t)),t.length!==a.key/8)throw new TypeError("invalid key length "+t.length);if("string"==typeof n&&(n=o.from(n)),"GCM"!==a.mode&&n.length!==a.iv)throw new TypeError("invalid iv length "+n.length);return"stream"===a.type?new s(a.module,t,n):"auth"===a.type?new i(a.module,t,n):new f(a.module,t,n)}f.prototype._final=function(){var e=this._cache.flush();if(this._autopadding)return e=this._mode.encrypt(this,e),this._cipher.scrub(),e;if(!e.equals(h))throw this._cipher.scrub(),new Error("data not multiple of block length")},f.prototype.setAutoPadding=function(e){return this._autopadding=!!e,this},l.prototype.add=function(e){this.cache=o.concat([this.cache,e])},l.prototype.get=function(){if(this.cache.length>15){var e=this.cache.slice(0,16);return this.cache=this.cache.slice(16),e}return null},l.prototype.flush=function(){for(var e=16-this.cache.length,t=o.allocUnsafe(e),n=-1;++n<e;)t.writeUInt8(e,n);return o.concat([this.cache,t])},t.createCipheriv=d,t.createCipher=function(e,t){var n=r[e.toLowerCase()];if(!n)throw new TypeError("invalid suite type");var i=u(t,!1,n.key,n.iv);return d(e,i.key,i.iv)}},83579:function(e,t,n){var r=n(37225).Buffer,i=r.alloc(16,0);function o(e){var t=r.allocUnsafe(16);return t.writeUInt32BE(e[0]>>>0,0),t.writeUInt32BE(e[1]>>>0,4),t.writeUInt32BE(e[2]>>>0,8),t.writeUInt32BE(e[3]>>>0,12),t}function s(e){this.h=e,this.state=r.alloc(16,0),this.cache=r.allocUnsafe(0)}s.prototype.ghash=function(e){for(var t=-1;++t<e.length;)this.state[t]^=e[t];this._multiply()},s.prototype._multiply=function(){for(var e,t,n,r=[(e=this.h).readUInt32BE(0),e.readUInt32BE(4),e.readUInt32BE(8),e.readUInt32BE(12)],i=[0,0,0,0],s=-1;++s<128;){for(0!=(this.state[~~(s/8)]&1<<7-s%8)&&(i[0]^=r[0],i[1]^=r[1],i[2]^=r[2],i[3]^=r[3]),n=0!=(1&r[3]),t=3;t>0;t--)r[t]=r[t]>>>1|(1&r[t-1])<<31;r[0]=r[0]>>>1,n&&(r[0]=r[0]^225<<24)}this.state=o(i)},s.prototype.update=function(e){var t;for(this.cache=r.concat([this.cache,e]);this.cache.length>=16;)t=this.cache.slice(0,16),this.cache=this.cache.slice(16),this.ghash(t)},s.prototype.final=function(e,t){return this.cache.length&&this.ghash(r.concat([this.cache,i],16)),this.ghash(o([0,e,0,t])),this.state},e.exports=s},35127:function(e){e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},62113:function(e,t,n){var r=n(35375);t.encrypt=function(e,t){var n=r(t,e._prev);return e._prev=e._cipher.encryptBlock(n),e._prev},t.decrypt=function(e,t){var n=e._prev;e._prev=t;var i=e._cipher.decryptBlock(t);return r(i,n)}},1634:function(e,t,n){var r=n(37225).Buffer,i=n(35375);function o(e,t,n){var o=t.length,s=i(t,e._cache);return e._cache=e._cache.slice(o),e._prev=r.concat([e._prev,n?t:s]),s}t.encrypt=function(e,t,n){for(var i,s=r.allocUnsafe(0);t.length;){if(0===e._cache.length&&(e._cache=e._cipher.encryptBlock(e._prev),e._prev=r.allocUnsafe(0)),!(e._cache.length<=t.length)){s=r.concat([s,o(e,t,n)]);break}i=e._cache.length,s=r.concat([s,o(e,t.slice(0,i),n)]),t=t.slice(i)}return s}},34422:function(e,t,n){var r=n(37225).Buffer;function i(e,t,n){for(var r,i,s=-1,a=0;++s<8;)r=t&1<<7-s?128:0,a+=(128&(i=e._cipher.encryptBlock(e._prev)[0]^r))>>s%8,e._prev=o(e._prev,n?r:i);return a}function o(e,t){var n=e.length,i=-1,o=r.allocUnsafe(e.length);for(e=r.concat([e,r.from([t])]);++i<n;)o[i]=e[i]<<1|e[i+1]>>7;return o}t.encrypt=function(e,t,n){for(var o=t.length,s=r.allocUnsafe(o),a=-1;++a<o;)s[a]=i(e,t[a],n);return s}},46750:function(e,t,n){var r=n(37225).Buffer;function i(e,t,n){var i=e._cipher.encryptBlock(e._prev)[0]^t;return e._prev=r.concat([e._prev.slice(1),r.from([n?t:i])]),i}t.encrypt=function(e,t,n){for(var o=t.length,s=r.allocUnsafe(o),a=-1;++a<o;)s[a]=i(e,t[a],n);return s}},92204:function(e,t,n){var r=n(35375),i=n(37225).Buffer,o=n(35127);function s(e){var t=e._cipher.encryptBlockRaw(e._prev);return o(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),o=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var a=0;a<n;a++){var c=s(e),u=o+16*a;e._cache.writeUInt32BE(c[0],u+0),e._cache.writeUInt32BE(c[1],u+4),e._cache.writeUInt32BE(c[2],u+8),e._cache.writeUInt32BE(c[3],u+12)}var f=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,f)}},59252:function(e,t){t.encrypt=function(e,t){return e._cipher.encryptBlock(t)},t.decrypt=function(e,t){return e._cipher.decryptBlock(t)}},54354:function(e,t,n){var r={ECB:n(59252),CBC:n(62113),CFB:n(1634),CFB8:n(46750),CFB1:n(34422),OFB:n(985),CTR:n(92204),GCM:n(92204)},i=n(4317);for(var o in i)i[o].module=r[i[o].mode];e.exports=i},985:function(e,t,n){var r=n(90778).Buffer,i=n(35375);function o(e){return e._prev=e._cipher.encryptBlock(e._prev),e._prev}t.encrypt=function(e,t){for(;e._cache.length<t.length;)e._cache=r.concat([e._cache,o(e)]);var n=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),i(t,n)}},76085:function(e,t,n){var r=n(9111),i=n(37225).Buffer,o=n(69239);function s(e,t,n,s){o.call(this),this._cipher=new r.AES(t),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=s,this._mode=e}n(59503)(s,o),s.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},s.prototype._final=function(){this._cipher.scrub()},e.exports=s},83936:function(e,t,n){var r=n(63079),i=n(6123),o=n(54354),s=n(52324),a=n(51105);function c(e,t,n){if(e=e.toLowerCase(),o[e])return i.createCipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e});throw new TypeError("invalid suite type")}function u(e,t,n){if(e=e.toLowerCase(),o[e])return i.createDecipheriv(e,t,n);if(s[e])return new r({key:t,iv:n,mode:e,decrypt:!0});throw new TypeError("invalid suite type")}t.createCipher=t.Cipher=function(e,t){var n,r;if(e=e.toLowerCase(),o[e])n=o[e].key,r=o[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=a(t,!1,n,r);return c(e,i.key,i.iv)},t.createCipheriv=t.Cipheriv=c,t.createDecipher=t.Decipher=function(e,t){var n,r;if(e=e.toLowerCase(),o[e])n=o[e].key,r=o[e].iv;else{if(!s[e])throw new TypeError("invalid suite type");n=8*s[e].key,r=s[e].iv}var i=a(t,!1,n,r);return u(e,i.key,i.iv)},t.createDecipheriv=t.Decipheriv=u,t.listCiphers=t.getCiphers=function(){return Object.keys(s).concat(i.getCiphers())}},63079:function(e,t,n){var r=n(69239),i=n(98625),o=n(59503),s=n(37225).Buffer,a={"des-ede3-cbc":i.CBC.instantiate(i.EDE),"des-ede3":i.EDE,"des-ede-cbc":i.CBC.instantiate(i.EDE),"des-ede":i.EDE,"des-cbc":i.CBC.instantiate(i.DES),"des-ecb":i.DES};function c(e){r.call(this);var t,n=e.mode.toLowerCase(),i=a[n];t=e.decrypt?"decrypt":"encrypt";var o=e.key;s.isBuffer(o)||(o=s.from(o)),"des-ede"!==n&&"des-ede-cbc"!==n||(o=s.concat([o,o.slice(0,8)]));var c=e.iv;s.isBuffer(c)||(c=s.from(c)),this._des=i.create({key:o,iv:c,type:t})}a.des=a["des-cbc"],a.des3=a["des-ede3-cbc"],e.exports=c,o(c,r),c.prototype._update=function(e){return s.from(this._des.update(e))},c.prototype._final=function(){return s.from(this._des.final())}},52324:function(e,t){t["des-ecb"]={key:8,iv:0},t["des-cbc"]=t.des={key:8,iv:8},t["des-ede3-cbc"]=t.des3={key:24,iv:8},t["des-ede3"]={key:24,iv:0},t["des-ede-cbc"]={key:16,iv:8},t["des-ede"]={key:16,iv:0}},8568:function(e,t,n){var r=n(90778).Buffer,i=n(53380),o=n(35175);function s(e){var t,n=e.modulus.byteLength();do{t=new i(o(n))}while(t.cmp(e.modulus)>=0||!t.umod(e.prime1)||!t.umod(e.prime2));return t}function a(e,t){var n=function(e){var t=s(e);return{blinder:t.toRed(i.mont(e.modulus)).redPow(new i(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(t),o=t.modulus.byteLength(),a=new i(e).mul(n.blinder).umod(t.modulus),c=a.toRed(i.mont(t.prime1)),u=a.toRed(i.mont(t.prime2)),f=t.coefficient,h=t.prime1,l=t.prime2,d=c.redPow(t.exponent1).fromRed(),p=u.redPow(t.exponent2).fromRed(),g=d.isub(p).imul(f).umod(h).imul(l);return p.iadd(g).imul(n.unblinder).umod(t.modulus).toArrayLike(r,"be",o)}a.getr=s,e.exports=a},60451:function(e,t,n){e.exports=n(1877)},29908:function(e,t,n){var r=n(37225).Buffer,i=n(77439),o=n(7130),s=n(59503),a=n(75043),c=n(53075),u=n(1877);function f(e){o.Writable.call(this);var t=u[e];if(!t)throw new Error("Unknown message digest");this._hashType=t.hash,this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function h(e){o.Writable.call(this);var t=u[e];if(!t)throw new Error("Unknown message digest");this._hash=i(t.hash),this._tag=t.id,this._signType=t.sign}function l(e){return new f(e)}function d(e){return new h(e)}Object.keys(u).forEach((function(e){u[e].id=r.from(u[e].id,"hex"),u[e.toLowerCase()]=u[e]})),s(f,o.Writable),f.prototype._write=function(e,t,n){this._hash.update(e),n()},f.prototype.update=function(e,t){return"string"==typeof e&&(e=r.from(e,t)),this._hash.update(e),this},f.prototype.sign=function(e,t){this.end();var n=this._hash.digest(),r=a(n,e,this._hashType,this._signType,this._tag);return t?r.toString(t):r},s(h,o.Writable),h.prototype._write=function(e,t,n){this._hash.update(e),n()},h.prototype.update=function(e,t){return"string"==typeof e&&(e=r.from(e,t)),this._hash.update(e),this},h.prototype.verify=function(e,t,n){"string"==typeof t&&(t=r.from(t,n)),this.end();var i=this._hash.digest();return c(t,i,e,this._signType,this._tag)},e.exports={Sign:l,Verify:d,createSign:l,createVerify:d}},75043:function(e,t,n){var r=n(37225).Buffer,i=n(40445),o=n(8568),s=n(73931).ec,a=n(53380),c=n(87758),u=n(72968);function f(e,t,n,o){if((e=r.from(e.toArray())).length<t.byteLength()){var s=r.alloc(t.byteLength()-e.length);e=r.concat([s,e])}var a=n.length,c=function(e,t){e=(e=h(e,t)).mod(t);var n=r.from(e.toArray());if(n.length<t.byteLength()){var i=r.alloc(t.byteLength()-n.length);n=r.concat([i,n])}return n}(n,t),u=r.alloc(a);u.fill(1);var f=r.alloc(a);return f=i(o,f).update(u).update(r.from([0])).update(e).update(c).digest(),u=i(o,f).update(u).digest(),{k:f=i(o,f).update(u).update(r.from([1])).update(e).update(c).digest(),v:u=i(o,f).update(u).digest()}}function h(e,t){var n=new a(e),r=(e.length<<3)-t.bitLength();return r>0&&n.ishrn(r),n}function l(e,t,n){var o,s;do{for(o=r.alloc(0);8*o.length<e.bitLength();)t.v=i(n,t.k).update(t.v).digest(),o=r.concat([o,t.v]);s=h(o,e),t.k=i(n,t.k).update(t.v).update(r.from([0])).digest(),t.v=i(n,t.k).update(t.v).digest()}while(-1!==s.cmp(e));return s}function d(e,t,n,r){return e.toRed(a.mont(n)).redPow(t).fromRed().mod(r)}e.exports=function(e,t,n,i,p){var g=c(t);if(g.curve){if("ecdsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");return function(e,t){var n=u[t.curve.join(".")];if(!n)throw new Error("unknown curve "+t.curve.join("."));var i=new s(n).keyFromPrivate(t.privateKey).sign(e);return r.from(i.toDER())}(e,g)}if("dsa"===g.type){if("dsa"!==i)throw new Error("wrong private key type");return function(e,t,n){var i,o=t.params.priv_key,s=t.params.p,c=t.params.q,u=t.params.g,p=new a(0),g=h(e,c).mod(c),m=!1,b=f(o,c,e,n);for(;!1===m;)p=d(u,i=l(c,b,n),s,c),0===(m=i.invm(c).imul(g.add(o.mul(p))).mod(c)).cmpn(0)&&(m=!1,p=new a(0));return function(e,t){e=e.toArray(),t=t.toArray(),128&e[0]&&(e=[0].concat(e));128&t[0]&&(t=[0].concat(t));var n=[48,e.length+t.length+4,2,e.length];return n=n.concat(e,[2,t.length],t),r.from(n)}(p,m)}(e,g,n)}if("rsa"!==i&&"ecdsa/rsa"!==i)throw new Error("wrong private key type");e=r.concat([p,e]);for(var m=g.modulus.byteLength(),b=[0,1];e.length+b.length+1<m;)b.push(255);b.push(0);for(var v=-1;++v<e.length;)b.push(e[v]);return o(b,g)},e.exports.getKey=f,e.exports.makeKey=l},53075:function(e,t,n){var r=n(37225).Buffer,i=n(53380),o=n(73931).ec,s=n(87758),a=n(72968);function c(e,t){if(e.cmpn(0)<=0)throw new Error("invalid sig");if(e.cmp(t)>=t)throw new Error("invalid sig")}e.exports=function(e,t,n,u,f){var h=s(n);if("ec"===h.type){if("ecdsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");return function(e,t,n){var r=a[n.data.algorithm.curve.join(".")];if(!r)throw new Error("unknown curve "+n.data.algorithm.curve.join("."));var i=new o(r),s=n.data.subjectPrivateKey.data;return i.verify(t,e,s)}(e,t,h)}if("dsa"===h.type){if("dsa"!==u)throw new Error("wrong public key type");return function(e,t,n){var r=n.data.p,o=n.data.q,a=n.data.g,u=n.data.pub_key,f=s.signature.decode(e,"der"),h=f.s,l=f.r;c(h,o),c(l,o);var d=i.mont(r),p=h.invm(o);return 0===a.toRed(d).redPow(new i(t).mul(p).mod(o)).fromRed().mul(u.toRed(d).redPow(l.mul(p).mod(o)).fromRed()).mod(r).mod(o).cmp(l)}(e,t,h)}if("rsa"!==u&&"ecdsa/rsa"!==u)throw new Error("wrong public key type");t=r.concat([f,t]);for(var l=h.modulus.byteLength(),d=[1],p=0;t.length+d.length+2<l;)d.push(255),p++;d.push(0);for(var g=-1;++g<t.length;)d.push(t[g]);d=r.from(d);var m=i.mont(h.modulus);e=(e=new i(e).toRed(m)).redPow(new i(h.publicExponent)),e=r.from(e.fromRed().toArray());var b=p<8?1:0;for(l=Math.min(e.length,d.length),e.length!==d.length&&(b=1),g=-1;++g<l;)b|=e[g]^d[g];return 0===b}},35375:function(e,t,n){var r=n(90778).Buffer;e.exports=function(e,t){for(var n=Math.min(e.length,t.length),i=new r(n),o=0;o<n;++o)i[o]=e[o]^t[o];return i}},90778:function(e,t,n){"use strict";var r=n(55246);const i=n(62803),o=n(23644),s="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){+e!=e&&(e=0);return u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function c(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return f(e,t,n)}function f(e,t,n){if("string"==typeof e)return function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|m(e,t);let r=c(n);const i=r.write(e,t);i!==n&&(r=r.slice(0,i));return r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(W(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(W(e,ArrayBuffer)||e&&W(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(W(e,SharedArrayBuffer)||e&&W(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);const i=function(e){if(u.isBuffer(e)){const t=0|g(e.length),n=c(t);return 0===n.length||e.copy(n,0,0,t),n}if(void 0!==e.length)return"number"!=typeof e.length||Y(e.length)?c(0):d(e);if("Buffer"===e.type&&Array.isArray(e.data))return d(e.data)}(e);if(i)return i;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function h(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return h(e),c(e<0?0:0|g(e))}function d(e){const t=e.length<0?0:0|g(e.length),n=c(t);for(let r=0;r<t;r+=1)n[r]=255&e[r];return n}function p(e,t,n){if(t<0||e.byteLength<t)throw new RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(n||0))throw new RangeError('"length" is outside of buffer bounds');let r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),Object.setPrototypeOf(r,u.prototype),r}function g(e){if(e>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function m(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return Z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return J(e).length;default:if(i)return r?-1:Z(e).length;t=(""+t).toLowerCase(),i=!0}}function b(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return T(this,t,n);case"utf8":case"utf-8":return A(this,t,n);case"ascii":return I(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function v(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function y(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),Y(n=+n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:w(e,t,n,r,i);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):w(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function w(e,t,n,r,i){let o,s=1,a=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,n/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(i){let r=-1;for(o=n;o<a;o++)if(u(e,o)===u(t,-1===r?0:o-r)){if(-1===r&&(r=o),o-r+1===c)return r*s}else-1!==r&&(o-=o-r),r=-1}else for(n+c>a&&(n=a-c),o=n;o>=0;o--){let n=!0;for(let r=0;r<c;r++)if(u(e,o+r)!==u(t,r)){n=!1;break}if(n)return o}return-1}function _(e,t,n,r){n=Number(n)||0;const i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;const o=t.length;let s;for(r>o/2&&(r=o/2),s=0;s<r;++s){const r=parseInt(t.substr(2*s,2),16);if(Y(r))return s;e[n+s]=r}return s}function E(e,t,n,r){return G(Z(t,e.length-n),e,n,r)}function S(e,t,n,r){return G(function(e){const t=[];for(let n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function k(e,t,n,r){return G(J(t),e,n,r)}function M(e,t,n,r){return G(function(e,t){let n,r,i;const o=[];for(let s=0;s<e.length&&!((t-=2)<0);++s)n=e.charCodeAt(s),r=n>>8,i=n%256,o.push(i),o.push(r);return o}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?i.fromByteArray(e):i.fromByteArray(e.slice(t,n))}function A(e,t,n){n=Math.min(e.length,n);const r=[];let i=t;for(;i<n;){const t=e[i];let o=null,s=t>239?4:t>223?3:t>191?2:1;if(i+s<=n){let n,r,a,c;switch(s){case 1:t<128&&(o=t);break;case 2:n=e[i+1],128==(192&n)&&(c=(31&t)<<6|63&n,c>127&&(o=c));break;case 3:n=e[i+1],r=e[i+2],128==(192&n)&&128==(192&r)&&(c=(15&t)<<12|(63&n)<<6|63&r,c>2047&&(c<55296||c>57343)&&(o=c));break;case 4:n=e[i+1],r=e[i+2],a=e[i+3],128==(192&n)&&128==(192&r)&&128==(192&a)&&(c=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&a,c>65535&&c<1114112&&(o=c))}}null===o?(o=65533,s=1):o>65535&&(o-=65536,r.push(o>>>10&1023|55296),o=56320|1023&o),r.push(o),i+=s}return function(e){const t=e.length;if(t<=x)return String.fromCharCode.apply(String,e);let n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=x));return n}(r)}t.kMaxLength=a,u.TYPED_ARRAY_SUPPORT=function(){try{const e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),u.TYPED_ARRAY_SUPPORT||void 0===r||"function"!=typeof r.error||r.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}}),u.poolSize=8192,u.from=function(e,t,n){return f(e,t,n)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array),u.alloc=function(e,t,n){return function(e,t,n){return h(e),e<=0?c(e):void 0!==t?"string"==typeof n?c(e).fill(t,n):c(e).fill(t):c(e)}(e,t,n)},u.allocUnsafe=function(e){return l(e)},u.allocUnsafeSlow=function(e){return l(e)},u.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==u.prototype},u.compare=function(e,t){if(W(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),W(t,Uint8Array)&&(t=u.from(t,t.offset,t.byteLength)),!u.isBuffer(e)||!u.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,r=t.length;for(let i=0,o=Math.min(n,r);i<o;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},u.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return u.alloc(0);let n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const r=u.allocUnsafe(t);let i=0;for(n=0;n<e.length;++n){let t=e[n];if(W(t,Uint8Array))i+t.length>r.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,i)):Uint8Array.prototype.set.call(r,t,i);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,i)}i+=t.length}return r},u.byteLength=m,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)v(this,t,t+1);return this},u.prototype.swap32=function(){const e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)v(this,t,t+3),v(this,t+1,t+2);return this},u.prototype.swap64=function(){const e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)v(this,t,t+7),v(this,t+1,t+6),v(this,t+2,t+5),v(this,t+3,t+4);return this},u.prototype.toString=function(){const e=this.length;return 0===e?"":0===arguments.length?A(this,0,e):b.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===u.compare(this,e)},u.prototype.inspect=function(){let e="";const n=t.INSPECT_MAX_BYTES;return e=this.toString("hex",0,n).replace(/(.{2})/g,"$1 ").trim(),this.length>n&&(e+=" ... "),"<Buffer "+e+">"},s&&(u.prototype[s]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,i){if(W(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(this===e)return 0;let o=(i>>>=0)-(r>>>=0),s=(n>>>=0)-(t>>>=0);const a=Math.min(o,s),c=this.slice(r,i),f=e.slice(t,n);for(let e=0;e<a;++e)if(c[e]!==f[e]){o=c[e],s=f[e];break}return o<s?-1:s<o?1:0},u.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},u.prototype.indexOf=function(e,t,n){return y(this,e,t,n,!0)},u.prototype.lastIndexOf=function(e,t,n){return y(this,e,t,n,!1)},u.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let o=!1;for(;;)switch(r){case"hex":return _(this,e,t,n);case"utf8":case"utf-8":return E(this,e,t,n);case"ascii":case"latin1":case"binary":return S(this,e,t,n);case"base64":return k(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const x=4096;function I(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){let r="";n=Math.min(e.length,n);for(let i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function T(e,t,n){const r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);let i="";for(let r=t;r<n;++r)i+=X[e[r]];return i}function N(e,t,n){const r=e.slice(t,n);let i="";for(let e=0;e<r.length-1;e+=2)i+=String.fromCharCode(r[e]+256*r[e+1]);return i}function j(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function z(e,t,n,r,i,o){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function P(e,t,n,r,i){V(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o,o>>=8,e[n++]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,s>>=8,e[n++]=s,n}function R(e,t,n,r,i){V(t,r,i,e,n,7);let o=Number(t&BigInt(4294967295));e[n+7]=o,o>>=8,e[n+6]=o,o>>=8,e[n+5]=o,o>>=8,e[n+4]=o;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=s,s>>=8,e[n+2]=s,s>>=8,e[n+1]=s,s>>=8,e[n]=s,n+8}function B(e,t,n,r,i,o){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function L(e,t,n,r,i){return t=+t,n>>>=0,i||B(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function D(e,t,n,r,i){return t=+t,n>>>=0,i||B(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t<e&&(t=e);const r=this.subarray(e,t);return Object.setPrototypeOf(r,u.prototype),r},u.prototype.readUintLE=u.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e],i=1,o=0;for(;++o<t&&(i*=256);)r+=this[e+o]*i;return r},u.prototype.readUintBE=u.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e+--t],i=1;for(;t>0&&(i*=256);)r+=this[e+--t]*i;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||j(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||j(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||j(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||j(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||j(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,i=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(i)<<BigInt(32))})),u.prototype.readBigUInt64BE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],i=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<<BigInt(32))+BigInt(i)})),u.prototype.readIntLE=function(e,t,n){e>>>=0,t>>>=0,n||j(e,t,this.length);let r=this[e],i=1,o=0;for(;++o<t&&(i*=256);)r+=this[e+o]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||j(e,t,this.length);let r=t,i=1,o=this[e+--r];for(;r>0&&(i*=256);)o+=this[e+--r]*i;return i*=128,o>=i&&(o-=Math.pow(2,8*t)),o},u.prototype.readInt8=function(e,t){return e>>>=0,t||j(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||j(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||j(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||j(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||j(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<<BigInt(32))+BigInt(t+256*this[++e]+65536*this[++e]+this[++e]*2**24)})),u.prototype.readBigInt64BE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||K(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<<BigInt(32))+BigInt(this[++e]*2**24+65536*this[++e]+256*this[++e]+n)})),u.prototype.readFloatLE=function(e,t){return e>>>=0,t||j(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||j(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||j(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||j(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){z(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=1,o=0;for(this[t]=255&e;++o<n&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(e,t,n,r){if(e=+e,t>>>=0,n>>>=0,!r){z(this,e,t,n,Math.pow(2,8*n)-1,0)}let i=n-1,o=1;for(this[t+i]=255&e;--i>=0&&(o*=256);)this[t+i]=e/o&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=Q((function(e,t=0){return P(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=Q((function(e,t=0){return R(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);z(this,e,t,n,r-1,-r)}let i=0,o=1,s=0;for(this[t]=255&e;++i<n&&(o*=256);)e<0&&0===s&&0!==this[t+i-1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);z(this,e,t,n,r-1,-r)}let i=n-1,o=1,s=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/o>>0)-s&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||z(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=Q((function(e,t=0){return P(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=Q((function(e,t=0){return R(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,n){return L(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return L(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return D(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return D(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);const i=r-n;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,n,r):Uint8Array.prototype.set.call(e,this.subarray(n,r),t),i},u.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!u.isEncoding(r))throw new TypeError("Unknown encoding: "+r);if(1===e.length){const t=e.charCodeAt(0);("utf8"===r&&t<128||"latin1"===r)&&(e=t)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;let i;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i<n;++i)this[i]=e;else{const o=u.isBuffer(e)?e:u.from(e,r),s=o.length;if(0===s)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(i=0;i<n-t;++i)this[i+t]=o[i%s]}return this};const U={};function F(e,t,n){U[e]=class extends n{constructor(){super(),Object.defineProperty(this,"message",{value:t.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${e}]`,this.stack,delete this.name}get code(){return e}set code(e){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:e,writable:!0})}toString(){return`${this.name} [${e}]: ${this.message}`}}}function H(e){let t="",n=e.length;const r="-"===e[0]?1:0;for(;n>=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function V(e,t,n,r,i,o){if(e>n||e<t){const r="bigint"==typeof t?"n":"";let i;throw i=o>3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(o+1)}${r}`:`>= -(2${r} ** ${8*(o+1)-1}${r}) and < 2 ** ${8*(o+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new U.ERR_OUT_OF_RANGE("value",i,e)}!function(e,t,n){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||K(t,e.length-(n+1))}(r,i,o)}function q(e,t){if("number"!=typeof e)throw new U.ERR_INVALID_ARG_TYPE(t,"number",e)}function K(e,t,n){if(Math.floor(e)!==e)throw q(e,n),new U.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new U.ERR_BUFFER_OUT_OF_BOUNDS;throw new U.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}F("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),F("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),F("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,i=n;return Number.isInteger(n)&&Math.abs(n)>2**32?i=H(String(n)):"bigint"==typeof n&&(i=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(i=H(i)),i+="n"),r+=` It must be ${t}. Received ${i}`,r}),RangeError);const $=/[^+/0-9A-Za-z-_]/g;function Z(e,t){let n;t=t||1/0;const r=e.length;let i=null;const o=[];for(let s=0;s<r;++s){if(n=e.charCodeAt(s),n>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(s+1===r){(t-=3)>-1&&o.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&o.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&o.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;o.push(n)}else if(n<2048){if((t-=2)<0)break;o.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;o.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return o}function J(e){return i.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace($,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,r){let i;for(i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function Y(e){return e!=e}const X=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let i=0;i<16;++i)t[r+i]=e[n]+e[i]}return t}();function Q(e){return"undefined"==typeof BigInt?ee:e}function ee(){throw new Error("BigInt not supported")}},16422:function(e,t,n){"use strict";var r=n(25165),i=n(43120),o=i(r("String.prototype.indexOf"));e.exports=function(e,t){var n=r(e,!!t);return"function"==typeof n&&o(e,".prototype.")>-1?i(n):n}},43120:function(e,t,n){"use strict";var r=n(75433),i=n(25165),o=i("%Function.prototype.apply%"),s=i("%Function.prototype.call%"),a=i("%Reflect.apply%",!0)||r.call(s,o),c=i("%Object.getOwnPropertyDescriptor%",!0),u=i("%Object.defineProperty%",!0),f=i("%Math.max%");if(u)try{u({},"a",{value:1})}catch(e){u=null}e.exports=function(e){var t=a(r,s,arguments);if(c&&u){var n=c(t,"length");n.configurable&&u(t,"length",{value:1+f(0,e.length-(arguments.length-1))})}return t};var h=function(){return a(r,o,arguments)};u?u(e.exports,"apply",{value:h}):e.exports.apply=h},69239:function(e,t,n){var r=n(37225).Buffer,i=n(81717).Transform,o=n(3247).s;function s(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(59503)(s,i),s.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},s.prototype.setAutoPadding=function(){},s.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},s.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},s.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},s.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},s.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},s.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},s.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new o(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=s},89105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function i(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)){if(n.length){var s=i.apply(null,n);s&&e.push(s)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var a in n)r.call(n,a)&&n[a]&&e.push(a);else e.push(n.toString())}}return e.join(" ")}e.exports?(i.default=i,e.exports=i):void 0===(n=function(){return i}.apply(t,[]))||(e.exports=n)}()},26767:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=s(n(6670));t.default=c;var i=s(n(58407)),o=s(n(96121));function s(e){return e&&e.__esModule?e:{default:e}}var a=new r.default;function c(e,t){return a.set(e,t),function(){a.delete(e)}}function u(e){a.forEach((function(t,n){(0,o.default)(n,e.target)||t.call(n,e)}))}function f(e){e||(e=document),i.default.bind(e,"click",u)}c.globalClick=u,c.install=f,"undefined"!=typeof document&&f(document),e.exports=t.default},58407:function(e,t){var n=window.addEventListener?"addEventListener":"attachEvent",r=window.removeEventListener?"removeEventListener":"detachEvent",i="addEventListener"!==n?"on":"";t.bind=function(e,t,r,o){return e[n](i+t,r,o||!1),r},t.unbind=function(e,t,n,o){return e[r](i+t,n,o||!1),n}},97236:function(e,t,n){function r(e){var t,n;for(t=[],n=0;n<e.length;n++)t.push("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_"[e[n]%64]);return t.join("")}e.exports=function(e){if("undefined"!=typeof window){if(void 0!==window.crypto)return r(window.crypto.getRandomValues(new Uint8Array(e)));for(var t=new Array(e),i=0;i<e;i++)t[i]=Math.floor(256*Math.random());return r(t)}var o=n(50142);try{return r(o.randomBytes(e))}catch(t){return r(o.pseudoRandomBytes(e))}}},55246:function(e,t,n){var r=n(23333),i=n(90605);function o(){return(new Date).getTime()}var s,a=Array.prototype.slice,c={};s="undefined"!=typeof window&&window.console||"undefined"!=typeof window&&window.console?window.console:{};for(var u=[[function(){},"log"],[function(){s.log.apply(s,arguments)},"info"],[function(){s.log.apply(s,arguments)},"warn"],[function(){s.warn.apply(s,arguments)},"error"],[function(e){c[e]=o()},"time"],[function(e){var t=c[e];if(!t)throw new Error("No such label: "+e);delete c[e];var n=o()-t;s.log(e+": "+n+"ms")},"timeEnd"],[function(){var e=new Error;e.name="Trace",e.message=r.format.apply(null,arguments),s.error(e.stack)},"trace"],[function(e){s.log(r.inspect(e)+"\n")},"dir"],[function(e){if(!e){var t=a.call(arguments,1);i.ok(!1,r.format.apply(null,t))}},"assert"]],f=0;f<u.length;f++){var h=u[f],l=h[0],d=h[1];s[d]||(s[d]=l)}e.exports=s},92916:function(e,t,n){n(14183),n(45817),n(63564),n(89118),n(28623),n(17310),n(46495),e.exports=n(76891).Map},30841:function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},93126:function(e){e.exports=function(){}},82895:function(e){e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},7567:function(e,t,n){var r=n(77418);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},96384:function(e,t,n){var r=n(56281);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},70110:function(e,t,n){var r=n(29236),i=n(82561),o=n(49012);e.exports=function(e){return function(t,n,s){var a,c=r(t),u=i(c.length),f=o(s,u);if(e&&n!=n){for(;u>f;)if((a=c[f++])!=a)return!0}else for(;u>f;f++)if((e||f in c)&&c[f]===n)return e||f||0;return!e&&-1}}},94781:function(e,t,n){var r=n(66897),i=n(59589),o=n(68061),s=n(82561),a=n(89615);e.exports=function(e,t){var n=1==e,c=2==e,u=3==e,f=4==e,h=6==e,l=5==e||h,d=t||a;return function(t,a,p){for(var g,m,b=o(t),v=i(b),y=r(a,p,3),w=s(v.length),_=0,E=n?d(t,w):c?d(t,0):void 0;w>_;_++)if((l||_ in v)&&(m=y(g=v[_],_,b),e))if(n)E[_]=m;else if(m)switch(e){case 3:return!0;case 5:return g;case 6:return _;case 2:E.push(g)}else if(f)return!1;return h?-1:u||f?f:E}}},75015:function(e,t,n){var r=n(77418),i=n(18457),o=n(65773)("species");e.exports=function(e){var t;return i(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!i(t.prototype)||(t=void 0),r(t)&&null===(t=t[o])&&(t=void 0)),void 0===t?Array:t}},89615:function(e,t,n){var r=n(75015);e.exports=function(e,t){return new(r(e))(t)}},42318:function(e,t,n){var r=n(51695),i=n(65773)("toStringTag"),o="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,s;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:o?r(t):"Object"==(s=r(t))&&"function"==typeof t.callee?"Arguments":s}},51695:function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},38636:function(e,t,n){"use strict";var r=n(635).f,i=n(39638),o=n(34887),s=n(66897),a=n(82895),c=n(56281),u=n(91851),f=n(61407),h=n(5765),l=n(88599),d=n(74177).fastKey,p=n(39696),g=l?"_s":"size",m=function(e,t){var n,r=d(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var f=e((function(e,r){a(e,f,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[g]=0,null!=r&&c(r,n,e[u],e)}));return o(f.prototype,{clear:function(){for(var e=p(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[g]=0},delete:function(e){var n=p(this,t),r=m(n,e);if(r){var i=r.n,o=r.p;delete n._i[r.i],r.r=!0,o&&(o.n=i),i&&(i.p=o),n._f==r&&(n._f=i),n._l==r&&(n._l=o),n[g]--}return!!r},forEach:function(e){p(this,t);for(var n,r=s(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(p(this,t),e)}}),l&&r(f.prototype,"size",{get:function(){return p(this,t)[g]}}),f},def:function(e,t,n){var r,i,o=m(e,t);return o?o.v=n:(e._l=o={i:i=d(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=o),r&&(r.n=o),e[g]++,"F"!==i&&(e._i[i]=o)),e},getEntry:m,setStrong:function(e,t,n){u(e,t,(function(e,n){this._t=p(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?f(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(e._t=void 0,f(1))}),n?"entries":"values",!n,!0),h(t)}}},35353:function(e,t,n){var r=n(42318),i=n(96384);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},85770:function(e,t,n){"use strict";var r=n(59507),i=n(87043),o=n(74177),s=n(3641),a=n(82283),c=n(34887),u=n(56281),f=n(82895),h=n(77418),l=n(7891),d=n(635).f,p=n(94781)(0),g=n(88599);e.exports=function(e,t,n,m,b,v){var y=r[e],w=y,_=b?"set":"add",E=w&&w.prototype,S={};return g&&"function"==typeof w&&(v||E.forEach&&!s((function(){(new w).entries().next()})))?(w=t((function(t,n){f(t,w,e,"_c"),t._c=new y,null!=n&&u(n,b,t[_],t)})),p("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),(function(e){var t="add"==e||"set"==e;!(e in E)||v&&"clear"==e||a(w.prototype,e,(function(n,r){if(f(this,w,e),!t&&v&&!h(n))return"get"==e&&void 0;var i=this._c[e](0===n?0:n,r);return t?this:i}))})),v||d(w.prototype,"size",{get:function(){return this._c.size}})):(w=m.getConstructor(t,e,b,_),c(w.prototype,n),o.NEED=!0),l(w,e),S[e]=w,i(i.G+i.W+i.F,S),v||m.setStrong(w,e,b),w}},76891:function(e){var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},66897:function(e,t,n){var r=n(30841);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},91625:function(e){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},88599:function(e,t,n){e.exports=!n(3641)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},14595:function(e,t,n){var r=n(77418),i=n(59507).document,o=r(i)&&r(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},93900:function(e){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},87043:function(e,t,n){var r=n(59507),i=n(76891),o=n(66897),s=n(82283),a=n(6649),c=function(e,t,n){var u,f,h,l=e&c.F,d=e&c.G,p=e&c.S,g=e&c.P,m=e&c.B,b=e&c.W,v=d?i:i[t]||(i[t]={}),y=v.prototype,w=d?r:p?r[t]:(r[t]||{}).prototype;for(u in d&&(n=t),n)(f=!l&&w&&void 0!==w[u])&&a(v,u)||(h=f?w[u]:n[u],v[u]=d&&"function"!=typeof w[u]?n[u]:m&&f?o(h,r):b&&w[u]==h?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(h):g&&"function"==typeof h?o(Function.call,h):h,g&&((v.virtual||(v.virtual={}))[u]=h,e&c.R&&y&&!y[u]&&s(y,u,h)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},3641:function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},56281:function(e,t,n){var r=n(66897),i=n(65201),o=n(19959),s=n(7567),a=n(82561),c=n(68246),u={},f={},h=e.exports=function(e,t,n,h,l){var d,p,g,m,b=l?function(){return e}:c(e),v=r(n,h,t?2:1),y=0;if("function"!=typeof b)throw TypeError(e+" is not iterable!");if(o(b)){for(d=a(e.length);d>y;y++)if((m=t?v(s(p=e[y])[0],p[1]):v(e[y]))===u||m===f)return m}else for(g=b.call(e);!(p=g.next()).done;)if((m=i(g,v,p.value,t))===u||m===f)return m};h.BREAK=u,h.RETURN=f},59507:function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},6649:function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},82283:function(e,t,n){var r=n(635),i=n(2632);e.exports=n(88599)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},42232:function(e,t,n){var r=n(59507).document;e.exports=r&&r.documentElement},30801:function(e,t,n){e.exports=!n(88599)&&!n(3641)((function(){return 7!=Object.defineProperty(n(14595)("div"),"a",{get:function(){return 7}}).a}))},59589:function(e,t,n){var r=n(51695);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},19959:function(e,t,n){var r=n(43617),i=n(65773)("iterator"),o=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||o[i]===e)}},18457:function(e,t,n){var r=n(51695);e.exports=Array.isArray||function(e){return"Array"==r(e)}},77418:function(e){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},65201:function(e,t,n){var r=n(7567);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var o=e.return;throw void 0!==o&&r(o.call(e)),t}}},11949:function(e,t,n){"use strict";var r=n(39638),i=n(2632),o=n(7891),s={};n(82283)(s,n(65773)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(s,{next:i(1,n)}),o(e,t+" Iterator")}},91851:function(e,t,n){"use strict";var r=n(35145),i=n(87043),o=n(52820),s=n(82283),a=n(43617),c=n(11949),u=n(7891),f=n(1503),h=n(65773)("iterator"),l=!([].keys&&"next"in[].keys()),d="keys",p="values",g=function(){return this};e.exports=function(e,t,n,m,b,v,y){c(n,t,m);var w,_,E,S=function(e){if(!l&&e in A)return A[e];switch(e){case d:case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},k=t+" Iterator",M=b==p,C=!1,A=e.prototype,x=A[h]||A["@@iterator"]||b&&A[b],I=x||S(b),O=b?M?S("entries"):I:void 0,T="Array"==t&&A.entries||x;if(T&&(E=f(T.call(new e)))!==Object.prototype&&E.next&&(u(E,k,!0),r||"function"==typeof E[h]||s(E,h,g)),M&&x&&x.name!==p&&(C=!0,I=function(){return x.call(this)}),r&&!y||!l&&!C&&A[h]||s(A,h,I),a[t]=I,a[k]=g,b)if(w={values:M?I:S(p),keys:v?I:S(d),entries:O},y)for(_ in w)_ in A||o(A,_,w[_]);else i(i.P+i.F*(l||C),t,w);return w}},61407:function(e){e.exports=function(e,t){return{value:t,done:!!e}}},43617:function(e){e.exports={}},35145:function(e){e.exports=!0},74177:function(e,t,n){var r=n(62994)("meta"),i=n(77418),o=n(6649),s=n(635).f,a=0,c=Object.isExtensible||function(){return!0},u=!n(3641)((function(){return c(Object.preventExtensions({}))})),f=function(e){s(e,r,{value:{i:"O"+ ++a,w:{}}})},h=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!c(e))return"F";if(!t)return"E";f(e)}return e[r].i},getWeak:function(e,t){if(!o(e,r)){if(!c(e))return!0;if(!t)return!1;f(e)}return e[r].w},onFreeze:function(e){return u&&h.NEED&&c(e)&&!o(e,r)&&f(e),e}}},39638:function(e,t,n){var r=n(7567),i=n(58906),o=n(93900),s=n(53588)("IE_PROTO"),a=function(){},c=function(){var e,t=n(14595)("iframe"),r=o.length;for(t.style.display="none",n(42232).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;r--;)delete c.prototype[o[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(a.prototype=r(e),n=new a,a.prototype=null,n[s]=e):n=c(),void 0===t?n:i(n,t)}},635:function(e,t,n){var r=n(7567),i=n(30801),o=n(91032),s=Object.defineProperty;t.f=n(88599)?Object.defineProperty:function(e,t,n){if(r(e),t=o(t,!0),r(n),i)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},58906:function(e,t,n){var r=n(635),i=n(7567),o=n(65915);e.exports=n(88599)?Object.defineProperties:function(e,t){i(e);for(var n,s=o(t),a=s.length,c=0;a>c;)r.f(e,n=s[c++],t[n]);return e}},1503:function(e,t,n){var r=n(6649),i=n(68061),o=n(53588)("IE_PROTO"),s=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},93255:function(e,t,n){var r=n(6649),i=n(29236),o=n(70110)(!1),s=n(53588)("IE_PROTO");e.exports=function(e,t){var n,a=i(e),c=0,u=[];for(n in a)n!=s&&r(a,n)&&u.push(n);for(;t.length>c;)r(a,n=t[c++])&&(~o(u,n)||u.push(n));return u}},65915:function(e,t,n){var r=n(93255),i=n(93900);e.exports=Object.keys||function(e){return r(e,i)}},2632:function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},34887:function(e,t,n){var r=n(82283);e.exports=function(e,t,n){for(var i in t)n&&e[i]?e[i]=t[i]:r(e,i,t[i]);return e}},52820:function(e,t,n){e.exports=n(82283)},46199:function(e,t,n){"use strict";var r=n(87043),i=n(30841),o=n(66897),s=n(56281);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,a,c=arguments[1];return i(this),(t=void 0!==c)&&i(c),null==e?new this:(n=[],t?(r=0,a=o(c,arguments[2],2),s(e,!1,(function(e){n.push(a(e,r++))}))):s(e,!1,n.push,n),new this(n))}})}},20727:function(e,t,n){"use strict";var r=n(87043);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},5765:function(e,t,n){"use strict";var r=n(59507),i=n(76891),o=n(635),s=n(88599),a=n(65773)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:r[e];s&&t&&!t[a]&&o.f(t,a,{configurable:!0,get:function(){return this}})}},7891:function(e,t,n){var r=n(635).f,i=n(6649),o=n(65773)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,o)&&r(e,o,{configurable:!0,value:t})}},53588:function(e,t,n){var r=n(82154)("keys"),i=n(62994);e.exports=function(e){return r[e]||(r[e]=i(e))}},82154:function(e,t,n){var r=n(76891),i=n(59507),o="__core-js_shared__",s=i[o]||(i[o]={});(e.exports=function(e,t){return s[e]||(s[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(35145)?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},1095:function(e,t,n){var r=n(48921),i=n(91625);e.exports=function(e){return function(t,n){var o,s,a=String(i(t)),c=r(n),u=a.length;return c<0||c>=u?e?"":void 0:(o=a.charCodeAt(c))<55296||o>56319||c+1===u||(s=a.charCodeAt(c+1))<56320||s>57343?e?a.charAt(c):o:e?a.slice(c,c+2):s-56320+(o-55296<<10)+65536}}},49012:function(e,t,n){var r=n(48921),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):o(e,t)}},48921:function(e){var t=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:t)(e)}},29236:function(e,t,n){var r=n(59589),i=n(91625);e.exports=function(e){return r(i(e))}},82561:function(e,t,n){var r=n(48921),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},68061:function(e,t,n){var r=n(91625);e.exports=function(e){return Object(r(e))}},91032:function(e,t,n){var r=n(77418);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},62994:function(e){var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},39696:function(e,t,n){var r=n(77418);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},65773:function(e,t,n){var r=n(82154)("wks"),i=n(62994),o=n(59507).Symbol,s="function"==typeof o;(e.exports=function(e){return r[e]||(r[e]=s&&o[e]||(s?o:i)("Symbol."+e))}).store=r},68246:function(e,t,n){var r=n(42318),i=n(65773)("iterator"),o=n(43617);e.exports=n(76891).getIteratorMethod=function(e){if(null!=e)return e[i]||e["@@iterator"]||o[r(e)]}},42394:function(e,t,n){"use strict";var r=n(93126),i=n(61407),o=n(43617),s=n(29236);e.exports=n(91851)(Array,"Array",(function(e,t){this._t=s(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},89118:function(e,t,n){"use strict";var r=n(38636),i=n(39696),o="Map";e.exports=n(85770)(o,(function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}}),{get:function(e){var t=r.getEntry(i(this,o),e);return t&&t.v},set:function(e,t){return r.def(i(this,o),0===e?0:e,t)}},r,!0)},14183:function(){},45817:function(e,t,n){"use strict";var r=n(1095)(!0);n(91851)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},46495:function(e,t,n){n(46199)("Map")},17310:function(e,t,n){n(20727)("Map")},28623:function(e,t,n){var r=n(87043);r(r.P+r.R,"Map",{toJSON:n(35353)("Map")})},63564:function(e,t,n){n(42394);for(var r=n(59507),i=n(82283),o=n(43617),s=n(65773)("toStringTag"),a="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c<a.length;c++){var u=a[c],f=r[u],h=f&&f.prototype;h&&!h[s]&&i(h,s,u),o[u]=o.Array}},73888:function(e,t,n){var r=n(90778).Buffer,i=n(73931),o=n(30910);e.exports=function(e){return new a(e)};var s={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};function a(e){this.curveType=s[e],this.curveType||(this.curveType={name:e}),this.curve=new i.ec(this.curveType.name),this.keys=void 0}function c(e,t,n){Array.isArray(e)||(e=e.toArray());var i=new r(e);if(n&&i.length<n){var o=new r(n-i.length);o.fill(0),i=r.concat([o,i])}return t?i.toString(t):i}s.p224=s.secp224r1,s.p256=s.secp256r1=s.prime256v1,s.p192=s.secp192r1=s.prime192v1,s.p384=s.secp384r1,s.p521=s.secp521r1,a.prototype.generateKeys=function(e,t){return this.keys=this.curve.genKeyPair(),this.getPublicKey(e,t)},a.prototype.computeSecret=function(e,t,n){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),c(this.curve.keyFromPublic(e).getPublic().mul(this.keys.getPrivate()).getX(),n,this.curveType.byteLength)},a.prototype.getPublicKey=function(e,t){var n=this.keys.getPublic("compressed"===t,!0);return"hybrid"===t&&(n[n.length-1]%2?n[0]=7:n[0]=6),c(n,e)},a.prototype.getPrivateKey=function(e){return c(this.keys.getPrivate(),e)},a.prototype.setPublicKey=function(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this.keys._importPublic(e),this},a.prototype.setPrivateKey=function(e,t){t=t||"utf8",r.isBuffer(e)||(e=new r(e,t));var n=new o(e);return n=n.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(n),this}},77439:function(e,t,n){"use strict";var r=n(59503),i=n(53956),o=n(50601),s=n(25636),a=n(69239);function c(e){a.call(this,"digest"),this._hash=e}r(c,a),c.prototype._update=function(e){this._hash.update(e)},c.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new i:"rmd160"===e||"ripemd160"===e?new o:new c(s(e))}},51345:function(e,t,n){var r=n(53956);e.exports=function(e){return(new r).update(e).digest()}},40445:function(e,t,n){"use strict";var r=n(59503),i=n(98919),o=n(69239),s=n(37225).Buffer,a=n(51345),c=n(50601),u=n(25636),f=s.alloc(128);function h(e,t){o.call(this,"digest"),"string"==typeof t&&(t=s.from(t));var n="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>n)?t=("rmd160"===e?new c:u(e)).update(t).digest():t.length<n&&(t=s.concat([t,f],n));for(var r=this._ipad=s.allocUnsafe(n),i=this._opad=s.allocUnsafe(n),a=0;a<n;a++)r[a]=54^t[a],i[a]=92^t[a];this._hash="rmd160"===e?new c:u(e),this._hash.update(r)}r(h,o),h.prototype._update=function(e){this._hash.update(e)},h.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new c:u(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new h("rmd160",t):"md5"===e?new i(a,t):new h(e,t)}},98919:function(e,t,n){"use strict";var r=n(59503),i=n(37225).Buffer,o=n(69239),s=i.alloc(128),a=64;function c(e,t){o.call(this,"digest"),"string"==typeof t&&(t=i.from(t)),this._alg=e,this._key=t,t.length>a?t=e(t):t.length<a&&(t=i.concat([t,s],a));for(var n=this._ipad=i.allocUnsafe(a),r=this._opad=i.allocUnsafe(a),c=0;c<a;c++)n[c]=54^t[c],r[c]=92^t[c];this._hash=[n]}r(c,o),c.prototype._update=function(e){this._hash.push(e)},c.prototype._final=function(){var e=this._alg(i.concat(this._hash));return this._alg(i.concat([this._opad,e]))},e.exports=c},23936:function(e,t,n){"use strict";var r=n(1625),i={};function o(e,t,n,r,i,o,s,a){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,i,o,s,a],f=0;(c=new Error(t.replace(/%s/g,(function(){return u[f++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}var s="mixins";e.exports=function(e,t,n){var a=[],c={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},u={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},f={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)l(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=r({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=r({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=p(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=r({},e.propTypes,t)},statics:function(e,t){!function(e,t){if(!t)return;for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){if(o(!(n in f),'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',n),n in e)return o("DEFINE_MANY_MERGED"===(u.hasOwnProperty(n)?u[n]:null),"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),void(e[n]=p(e[n],r));e[n]=r}}}(e,t)},autobind:function(){}};function h(e,t){var n=c.hasOwnProperty(t)?c[t]:null;y.hasOwnProperty(t)&&o("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&o("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function l(e,n){if(n){o("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),o(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;for(var a in n.hasOwnProperty(s)&&f.mixins(e,n.mixins),n)if(n.hasOwnProperty(a)&&a!==s){var u=n[a],l=r.hasOwnProperty(a);if(h(l,a),f.hasOwnProperty(a))f[a](e,u);else{var d=c.hasOwnProperty(a);if("function"==typeof u&&!d&&!l&&!1!==n.autobind)i.push(a,u),r[a]=u;else if(l){var m=c[a];o(d&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,a),"DEFINE_MANY_MERGED"===m?r[a]=p(r[a],u):"DEFINE_MANY"===m&&(r[a]=g(r[a],u))}else r[a]=u}}}else;}function d(e,t){for(var n in o(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."),t)t.hasOwnProperty(n)&&(o(void 0===e[n],"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",n),e[n]=t[n]);return e}function p(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return d(i,n),d(i,r),i}}function g(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function m(e,t){return t.bind(e)}var b={componentDidMount:function(){this.__isMounted=!0}},v={componentWillUnmount:function(){this.__isMounted=!1}},y={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},w=function(){};return r(w.prototype,e.prototype,y),function(e){var t=function(e,r,s){this.__reactAutoBindPairs.length&&function(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],i=t[n+1];e[r]=m(e,i)}}(this),this.props=e,this.context=r,this.refs=i,this.updater=s||n,this.state=null;var a=this.getInitialState?this.getInitialState():null;o("object"==typeof a&&!Array.isArray(a),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=a};for(var r in t.prototype=new w,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],a.forEach(l.bind(null,t)),l(t,b),l(t,e),l(t,v),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),o(t.prototype.render,"createClass(...): Class specification must implement a `render` method."),c)t.prototype[r]||(t.prototype[r]=null);return t}}},7767:function(e,t,n){"use strict";var r=n(99196),i=n(23936);if(void 0===r)throw Error("create-react-class could not find the React object. If you are using script tags, make sure that React is being loaded before create-react-class.");var o=(new r.Component).updater;e.exports=i(r.Component,r.isValidElement,o)},50142:function(e,t,n){"use strict";t.randomBytes=t.rng=t.pseudoRandomBytes=t.prng=n(35175),t.createHash=t.Hash=n(77439),t.createHmac=t.Hmac=n(40445);var r=n(60451),i=Object.keys(r),o=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(i);t.getHashes=function(){return o};var s=n(80231);t.pbkdf2=s.pbkdf2,t.pbkdf2Sync=s.pbkdf2Sync;var a=n(83936);t.Cipher=a.Cipher,t.createCipher=a.createCipher,t.Cipheriv=a.Cipheriv,t.createCipheriv=a.createCipheriv,t.Decipher=a.Decipher,t.createDecipher=a.createDecipher,t.Decipheriv=a.Decipheriv,t.createDecipheriv=a.createDecipheriv,t.getCiphers=a.getCiphers,t.listCiphers=a.listCiphers;var c=n(63298);t.DiffieHellmanGroup=c.DiffieHellmanGroup,t.createDiffieHellmanGroup=c.createDiffieHellmanGroup,t.getDiffieHellman=c.getDiffieHellman,t.createDiffieHellman=c.createDiffieHellman,t.DiffieHellman=c.DiffieHellman;var u=n(29908);t.createSign=u.createSign,t.Sign=u.Sign,t.createVerify=u.createVerify,t.Verify=u.Verify,t.createECDH=n(73888);var f=n(51296);t.publicEncrypt=f.publicEncrypt,t.privateEncrypt=f.privateEncrypt,t.publicDecrypt=f.publicDecrypt,t.privateDecrypt=f.privateDecrypt;var h=n(70460);t.randomFill=h.randomFill,t.randomFillSync=h.randomFillSync,t.createCredentials=function(){throw new Error(["sorry, createCredentials is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))},t.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}},13185:function(e,t,n){"use strict";var r=n(98517),i="function"==typeof Symbol&&"symbol"==typeof Symbol("foo"),o=Object.prototype.toString,s=Array.prototype.concat,a=Object.defineProperty,c=a&&function(){var e={};try{for(var t in a(e,"x",{enumerable:!1,value:e}),e)return!1;return e.x===e}catch(e){return!1}}(),u=function(e,t,n,r){var i;(!(t in e)||"function"==typeof(i=r)&&"[object Function]"===o.call(i)&&r())&&(c?a(e,t,{configurable:!0,enumerable:!1,value:n,writable:!0}):e[t]=n)},f=function(e,t){var n=arguments.length>2?arguments[2]:{},o=r(t);i&&(o=s.call(o,Object.getOwnPropertySymbols(t)));for(var a=0;a<o.length;a+=1)u(e,o[a],t[o[a]],n[o[a]])};f.supportsDescriptors=!!c,e.exports=f},98625:function(e,t,n){"use strict";t.utils=n(87990),t.Cipher=n(90746),t.DES=n(48738),t.CBC=n(94369),t.EDE=n(96413)},94369:function(e,t,n){"use strict";var r=n(48282),i=n(59503),o={};function s(e){r.equal(e.length,8,"Invalid IV length"),this.iv=new Array(8);for(var t=0;t<this.iv.length;t++)this.iv[t]=e[t]}t.instantiate=function(e){function t(t){e.call(this,t),this._cbcInit()}i(t,e);for(var n=Object.keys(o),r=0;r<n.length;r++){var s=n[r];t.prototype[s]=o[s]}return t.create=function(e){return new t(e)},t},o._cbcInit=function(){var e=new s(this.options.iv);this._cbcState=e},o._update=function(e,t,n,r){var i=this._cbcState,o=this.constructor.super_.prototype,s=i.iv;if("encrypt"===this.type){for(var a=0;a<this.blockSize;a++)s[a]^=e[t+a];o._update.call(this,s,0,n,r);for(a=0;a<this.blockSize;a++)s[a]=n[r+a]}else{o._update.call(this,e,t,n,r);for(a=0;a<this.blockSize;a++)n[r+a]^=s[a];for(a=0;a<this.blockSize;a++)s[a]=e[t+a]}}},90746:function(e,t,n){"use strict";var r=n(48282);function i(e){this.options=e,this.type=this.options.type,this.blockSize=8,this._init(),this.buffer=new Array(this.blockSize),this.bufferOff=0}e.exports=i,i.prototype._init=function(){},i.prototype.update=function(e){return 0===e.length?[]:"decrypt"===this.type?this._updateDecrypt(e):this._updateEncrypt(e)},i.prototype._buffer=function(e,t){for(var n=Math.min(this.buffer.length-this.bufferOff,e.length-t),r=0;r<n;r++)this.buffer[this.bufferOff+r]=e[t+r];return this.bufferOff+=n,n},i.prototype._flushBuffer=function(e,t){return this._update(this.buffer,0,e,t),this.bufferOff=0,this.blockSize},i.prototype._updateEncrypt=function(e){var t=0,n=0,r=(this.bufferOff+e.length)/this.blockSize|0,i=new Array(r*this.blockSize);0!==this.bufferOff&&(t+=this._buffer(e,t),this.bufferOff===this.buffer.length&&(n+=this._flushBuffer(i,n)));for(var o=e.length-(e.length-t)%this.blockSize;t<o;t+=this.blockSize)this._update(e,t,i,n),n+=this.blockSize;for(;t<e.length;t++,this.bufferOff++)this.buffer[this.bufferOff]=e[t];return i},i.prototype._updateDecrypt=function(e){for(var t=0,n=0,r=Math.ceil((this.bufferOff+e.length)/this.blockSize)-1,i=new Array(r*this.blockSize);r>0;r--)t+=this._buffer(e,t),n+=this._flushBuffer(i,n);return t+=this._buffer(e,t),i},i.prototype.final=function(e){var t,n;return e&&(t=this.update(e)),n="encrypt"===this.type?this._finalEncrypt():this._finalDecrypt(),t?t.concat(n):n},i.prototype._pad=function(e,t){if(0===t)return!1;for(;t<e.length;)e[t++]=0;return!0},i.prototype._finalEncrypt=function(){if(!this._pad(this.buffer,this.bufferOff))return[];var e=new Array(this.blockSize);return this._update(this.buffer,0,e,0),e},i.prototype._unpad=function(e){return e},i.prototype._finalDecrypt=function(){r.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var e=new Array(this.blockSize);return this._flushBuffer(e,0),this._unpad(e)}},48738:function(e,t,n){"use strict";var r=n(48282),i=n(59503),o=n(87990),s=n(90746);function a(){this.tmp=new Array(2),this.keys=null}function c(e){s.call(this,e);var t=new a;this._desState=t,this.deriveKeys(t,e.key)}i(c,s),e.exports=c,c.create=function(e){return new c(e)};var u=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];c.prototype.deriveKeys=function(e,t){e.keys=new Array(32),r.equal(t.length,this.blockSize,"Invalid key length");var n=o.readUInt32BE(t,0),i=o.readUInt32BE(t,4);o.pc1(n,i,e.tmp,0),n=e.tmp[0],i=e.tmp[1];for(var s=0;s<e.keys.length;s+=2){var a=u[s>>>1];n=o.r28shl(n,a),i=o.r28shl(i,a),o.pc2(n,i,e.keys,s)}},c.prototype._update=function(e,t,n,r){var i=this._desState,s=o.readUInt32BE(e,t),a=o.readUInt32BE(e,t+4);o.ip(s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],"encrypt"===this.type?this._encrypt(i,s,a,i.tmp,0):this._decrypt(i,s,a,i.tmp,0),s=i.tmp[0],a=i.tmp[1],o.writeUInt32BE(n,s,r),o.writeUInt32BE(n,a,r+4)},c.prototype._pad=function(e,t){for(var n=e.length-t,r=t;r<e.length;r++)e[r]=n;return!0},c.prototype._unpad=function(e){for(var t=e[e.length-1],n=e.length-t;n<e.length;n++)r.equal(e[n],t);return e.slice(0,e.length-t)},c.prototype._encrypt=function(e,t,n,r,i){for(var s=t,a=n,c=0;c<e.keys.length;c+=2){var u=e.keys[c],f=e.keys[c+1];o.expand(a,e.tmp,0),u^=e.tmp[0],f^=e.tmp[1];var h=o.substitute(u,f),l=a;a=(s^o.permute(h))>>>0,s=l}o.rip(a,s,r,i)},c.prototype._decrypt=function(e,t,n,r,i){for(var s=n,a=t,c=e.keys.length-2;c>=0;c-=2){var u=e.keys[c],f=e.keys[c+1];o.expand(s,e.tmp,0),u^=e.tmp[0],f^=e.tmp[1];var h=o.substitute(u,f),l=s;s=(a^o.permute(h))>>>0,a=l}o.rip(s,a,r,i)}},96413:function(e,t,n){"use strict";var r=n(48282),i=n(59503),o=n(90746),s=n(48738);function a(e,t){r.equal(t.length,24,"Invalid key length");var n=t.slice(0,8),i=t.slice(8,16),o=t.slice(16,24);this.ciphers="encrypt"===e?[s.create({type:"encrypt",key:n}),s.create({type:"decrypt",key:i}),s.create({type:"encrypt",key:o})]:[s.create({type:"decrypt",key:o}),s.create({type:"encrypt",key:i}),s.create({type:"decrypt",key:n})]}function c(e){o.call(this,e);var t=new a(this.type,this.options.key);this._edeState=t}i(c,o),e.exports=c,c.create=function(e){return new c(e)},c.prototype._update=function(e,t,n,r){var i=this._edeState;i.ciphers[0]._update(e,t,n,r),i.ciphers[1]._update(n,r,n,r),i.ciphers[2]._update(n,r,n,r)},c.prototype._pad=s.prototype._pad,c.prototype._unpad=s.prototype._unpad},87990:function(e,t){"use strict";t.readUInt32BE=function(e,t){return(e[0+t]<<24|e[1+t]<<16|e[2+t]<<8|e[3+t])>>>0},t.writeUInt32BE=function(e,t,n){e[0+n]=t>>>24,e[1+n]=t>>>16&255,e[2+n]=t>>>8&255,e[3+n]=255&t},t.ip=function(e,t,n,r){for(var i=0,o=0,s=6;s>=0;s-=2){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>>a+s&1}for(s=6;s>=0;s-=2){for(a=1;a<=25;a+=8)o<<=1,o|=t>>>a+s&1;for(a=1;a<=25;a+=8)o<<=1,o|=e>>>a+s&1}n[r+0]=i>>>0,n[r+1]=o>>>0},t.rip=function(e,t,n,r){for(var i=0,o=0,s=0;s<4;s++)for(var a=24;a>=0;a-=8)i<<=1,i|=t>>>a+s&1,i<<=1,i|=e>>>a+s&1;for(s=4;s<8;s++)for(a=24;a>=0;a-=8)o<<=1,o|=t>>>a+s&1,o<<=1,o|=e>>>a+s&1;n[r+0]=i>>>0,n[r+1]=o>>>0},t.pc1=function(e,t,n,r){for(var i=0,o=0,s=7;s>=5;s--){for(var a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1;for(a=0;a<=24;a+=8)i<<=1,i|=e>>a+s&1}for(a=0;a<=24;a+=8)i<<=1,i|=t>>a+s&1;for(s=1;s<=3;s++){for(a=0;a<=24;a+=8)o<<=1,o|=t>>a+s&1;for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1}for(a=0;a<=24;a+=8)o<<=1,o|=e>>a+s&1;n[r+0]=i>>>0,n[r+1]=o>>>0},t.r28shl=function(e,t){return e<<t&268435455|e>>>28-t};var n=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];t.pc2=function(e,t,r,i){for(var o=0,s=0,a=n.length>>>1,c=0;c<a;c++)o<<=1,o|=e>>>n[c]&1;for(c=a;c<n.length;c++)s<<=1,s|=t>>>n[c]&1;r[i+0]=o>>>0,r[i+1]=s>>>0},t.expand=function(e,t,n){var r=0,i=0;r=(1&e)<<5|e>>>27;for(var o=23;o>=15;o-=4)r<<=6,r|=e>>>o&63;for(o=11;o>=3;o-=4)i|=e>>>o&63,i<<=6;i|=(31&e)<<1|e>>>31,t[n+0]=r>>>0,t[n+1]=i>>>0};var r=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];t.substitute=function(e,t){for(var n=0,i=0;i<4;i++){n<<=4,n|=r[64*i+(e>>>18-6*i&63)]}for(i=0;i<4;i++){n<<=4,n|=r[256+64*i+(t>>>18-6*i&63)]}return n>>>0};var i=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];t.permute=function(e){for(var t=0,n=0;n<i.length;n++)t<<=1,t|=e>>>i[n]&1;return t>>>0},t.padSplit=function(e,t,n){for(var r=e.toString(2);r.length<t;)r="0"+r;for(var i=[],o=0;o<t;o+=n)i.push(r.slice(o,o+n));return i.join(" ")}},63298:function(e,t,n){var r=n(90778).Buffer,i=n(76156),o=n(27046),s=n(92716);var a={binary:!0,hex:!0,base64:!0};t.DiffieHellmanGroup=t.createDiffieHellmanGroup=t.getDiffieHellman=function(e){var t=new r(o[e].prime,"hex"),n=new r(o[e].gen,"hex");return new s(t,n)},t.createDiffieHellman=t.DiffieHellman=function e(t,n,o,c){return r.isBuffer(n)||void 0===a[n]?e(t,"binary",n,o):(n=n||"binary",c=c||"binary",o=o||new r([2]),r.isBuffer(o)||(o=new r(o,c)),"number"==typeof t?new s(i(t,o),o,!0):(r.isBuffer(t)||(t=new r(t,n)),new s(t,o,!0)))}},92716:function(e,t,n){var r=n(90778).Buffer,i=n(30910),o=new(n(16616)),s=new i(24),a=new i(11),c=new i(10),u=new i(3),f=new i(7),h=n(76156),l=n(35175);function d(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._pub=new i(e),this}function p(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this._priv=new i(e),this}e.exports=m;var g={};function m(e,t,n){this.setGenerator(t),this.__prime=new i(e),this._prime=i.mont(this.__prime),this._primeLen=e.length,this._pub=void 0,this._priv=void 0,this._primeCode=void 0,n?(this.setPublicKey=d,this.setPrivateKey=p):this._primeCode=8}function b(e,t){var n=new r(e.toArray());return t?n.toString(t):n}Object.defineProperty(m.prototype,"verifyError",{enumerable:!0,get:function(){return"number"!=typeof this._primeCode&&(this._primeCode=function(e,t){var n=t.toString("hex"),r=[n,e.toString(16)].join("_");if(r in g)return g[r];var i,l=0;if(e.isEven()||!h.simpleSieve||!h.fermatTest(e)||!o.test(e))return l+=1,l+="02"===n||"05"===n?8:4,g[r]=l,l;switch(o.test(e.shrn(1))||(l+=2),n){case"02":e.mod(s).cmp(a)&&(l+=8);break;case"05":(i=e.mod(c)).cmp(u)&&i.cmp(f)&&(l+=8);break;default:l+=4}return g[r]=l,l}(this.__prime,this.__gen)),this._primeCode}}),m.prototype.generateKeys=function(){return this._priv||(this._priv=new i(l(this._primeLen))),this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed(),this.getPublicKey()},m.prototype.computeSecret=function(e){var t=(e=(e=new i(e)).toRed(this._prime)).redPow(this._priv).fromRed(),n=new r(t.toArray()),o=this.getPrime();if(n.length<o.length){var s=new r(o.length-n.length);s.fill(0),n=r.concat([s,n])}return n},m.prototype.getPublicKey=function(e){return b(this._pub,e)},m.prototype.getPrivateKey=function(e){return b(this._priv,e)},m.prototype.getPrime=function(e){return b(this.__prime,e)},m.prototype.getGenerator=function(e){return b(this._gen,e)},m.prototype.setGenerator=function(e,t){return t=t||"utf8",r.isBuffer(e)||(e=new r(e,t)),this.__gen=e,this._gen=new i(e),this}},76156:function(e,t,n){var r=n(35175);e.exports=v,v.simpleSieve=m,v.fermatTest=b;var i=n(30910),o=new i(24),s=new(n(16616)),a=new i(1),c=new i(2),u=new i(5),f=(new i(16),new i(8),new i(10)),h=new i(3),l=(new i(7),new i(11)),d=new i(4),p=(new i(12),null);function g(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;i<t&&e[i]<=r&&n%e[i]!=0;i++);t!==i&&e[i]<=r||(e[t++]=n)}return p=e,e}function m(e){for(var t=g(),n=0;n<t.length;n++)if(0===e.modn(t[n]))return 0===e.cmpn(t[n]);return!0}function b(e){var t=i.mont(e);return 0===c.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function v(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var n,p;for(t=new i(t);;){for(n=new i(r(Math.ceil(e/8)));n.bitLength()>e;)n.ishrn(1);if(n.isEven()&&n.iadd(a),n.testn(1)||n.iadd(c),t.cmp(c)){if(!t.cmp(u))for(;n.mod(f).cmp(h);)n.iadd(d)}else for(;n.mod(o).cmp(l);)n.iadd(d);if(m(p=n.shrn(1))&&m(n)&&b(p)&&b(n)&&s.test(p)&&s.test(n))return n}}},73931:function(e,t,n){"use strict";var r=t;r.version=n(80906).i8,r.utils=n(12097),r.rand=n(71876),r.curve=n(46244),r.curves=n(65583),r.ec=n(72553),r.eddsa=n(66281)},48432:function(e,t,n){"use strict";var r=n(30910),i=n(12097),o=i.getNAF,s=i.getJSF,a=i.assert;function c(e,t){this.type=e,this.p=new r(t.p,16),this.red=t.prime?r.red(t.prime):r.mont(this.p),this.zero=new r(0).toRed(this.red),this.one=new r(1).toRed(this.red),this.two=new r(2).toRed(this.red),this.n=t.n&&new r(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}function u(e,t){this.curve=e,this.type=t,this.precomputed=null}e.exports=c,c.prototype.point=function(){throw new Error("Not implemented")},c.prototype.validate=function(){throw new Error("Not implemented")},c.prototype._fixedNafMul=function(e,t){a(e.precomputed);var n=e._getDoubles(),r=o(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var s,c,u=[];for(s=0;s<r.length;s+=n.step){c=0;for(var f=s+n.step-1;f>=s;f--)c=(c<<1)+r[f];u.push(c)}for(var h=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(s=0;s<u.length;s++)(c=u[s])===d?l=l.mixedAdd(n.points[s]):c===-d&&(l=l.mixedAdd(n.points[s].neg()));h=h.add(l)}return h.toP()},c.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,s=o(t,n,this._bitLength),c=this.jpoint(null,null,null),u=s.length-1;u>=0;u--){for(var f=0;u>=0&&0===s[u];u--)f++;if(u>=0&&f++,c=c.dblp(f),u<0)break;var h=s[u];a(0!==h),c="affine"===e.type?h>0?c.mixedAdd(i[h-1>>1]):c.mixedAdd(i[-h-1>>1].neg()):h>0?c.add(i[h-1>>1]):c.add(i[-h-1>>1].neg())}return"affine"===e.type?c.toP():c},c.prototype._wnafMulAdd=function(e,t,n,r,i){var a,c,u,f=this._wnafT1,h=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var p=(u=t[a])._getNAFPoints(e);f[a]=p.wnd,h[a]=p.points}for(a=r-1;a>=1;a-=2){var g=a-1,m=a;if(1===f[g]&&1===f[m]){var b=[t[g],null,null,t[m]];0===t[g].y.cmp(t[m].y)?(b[1]=t[g].add(t[m]),b[2]=t[g].toJ().mixedAdd(t[m].neg())):0===t[g].y.cmp(t[m].y.redNeg())?(b[1]=t[g].toJ().mixedAdd(t[m]),b[2]=t[g].add(t[m].neg())):(b[1]=t[g].toJ().mixedAdd(t[m]),b[2]=t[g].toJ().mixedAdd(t[m].neg()));var v=[-3,-1,-5,-7,0,7,5,1,3],y=s(n[g],n[m]);for(d=Math.max(y[0].length,d),l[g]=new Array(d),l[m]=new Array(d),c=0;c<d;c++){var w=0|y[0][c],_=0|y[1][c];l[g][c]=v[3*(w+1)+(_+1)],l[m][c]=0,h[g]=b}}else l[g]=o(n[g],f[g],this._bitLength),l[m]=o(n[m],f[m],this._bitLength),d=Math.max(l[g].length,d),d=Math.max(l[m].length,d)}var E=this.jpoint(null,null,null),S=this._wnafT4;for(a=d;a>=0;a--){for(var k=0;a>=0;){var M=!0;for(c=0;c<r;c++)S[c]=0|l[c][a],0!==S[c]&&(M=!1);if(!M)break;k++,a--}if(a>=0&&k++,E=E.dblp(k),a<0)break;for(c=0;c<r;c++){var C=S[c];0!==C&&(C>0?u=h[c][C-1>>1]:C<0&&(u=h[c][-C-1>>1].neg()),E="affine"===u.type?E.mixedAdd(u):E.add(u))}}for(a=0;a<r;a++)h[a]=null;return i?E:E.toP()},c.BasePoint=u,u.prototype.eq=function(){throw new Error("Not implemented")},u.prototype.validate=function(){return this.curve.validate(this)},c.prototype.decodePoint=function(e,t){e=i.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?a(e[e.length-1]%2==0):7===e[0]&&a(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},u.prototype.encodeCompressed=function(e){return this.encode(e,!0)},u.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},u.prototype.encode=function(e,t){return i.encode(this._encode(t),e)},u.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},u.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},u.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var o=0;o<e;o++)r=r.dbl();n.push(r)}return{step:e,points:n}},u.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},u.prototype._getBeta=function(){return null},u.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t}},27978:function(e,t,n){"use strict";var r=n(12097),i=n(30910),o=n(59503),s=n(48432),a=r.assert;function c(e){this.twisted=1!=(0|e.a),this.mOneA=this.twisted&&-1==(0|e.a),this.extended=this.mOneA,s.call(this,"edwards",e),this.a=new i(e.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new i(e.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new i(e.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),a(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|e.c)}function u(e,t,n,r,o){s.BasePoint.call(this,e,"projective"),null===t&&null===n&&null===r?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new i(t,16),this.y=new i(n,16),this.z=r?new i(r,16):this.curve.one,this.t=o&&new i(o,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}o(c,s),e.exports=c,c.prototype._mulA=function(e){return this.mOneA?e.redNeg():this.a.redMul(e)},c.prototype._mulC=function(e){return this.oneC?e:this.c.redMul(e)},c.prototype.jpoint=function(e,t,n,r){return this.point(e,t,n,r)},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=this.c2.redSub(this.a.redMul(n)),o=this.one.redSub(this.c2.redMul(this.d).redMul(n)),s=r.redMul(o.redInvm()),a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");var c=a.fromRed().isOdd();return(t&&!c||!t&&c)&&(a=a.redNeg()),this.point(e,a)},c.prototype.pointFromY=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr(),r=n.redSub(this.c2),o=n.redMul(this.d).redMul(this.c2).redSub(this.a),s=r.redMul(o.redInvm());if(0===s.cmp(this.zero)){if(t)throw new Error("invalid point");return this.point(this.zero,e)}var a=s.redSqrt();if(0!==a.redSqr().redSub(s).cmp(this.zero))throw new Error("invalid point");return a.fromRed().isOdd()!==t&&(a=a.redNeg()),this.point(a,e)},c.prototype.validate=function(e){if(e.isInfinity())return!0;e.normalize();var t=e.x.redSqr(),n=e.y.redSqr(),r=t.redMul(this.a).redAdd(n),i=this.c2.redMul(this.one.redAdd(this.d.redMul(t).redMul(n)));return 0===r.cmp(i)},o(u,s.BasePoint),c.prototype.pointFromJSON=function(e){return u.fromJSON(this,e)},c.prototype.point=function(e,t,n,r){return new u(this,e,t,n,r)},u.fromJSON=function(e,t){return new u(e,t[0],t[1],t[2])},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},u.prototype._extDbl=function(){var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr();n=n.redIAdd(n);var r=this.curve._mulA(e),i=this.x.redAdd(this.y).redSqr().redISub(e).redISub(t),o=r.redAdd(t),s=o.redSub(n),a=r.redSub(t),c=i.redMul(s),u=o.redMul(a),f=i.redMul(a),h=s.redMul(o);return this.curve.point(c,u,h,f)},u.prototype._projDbl=function(){var e,t,n,r,i,o,s=this.x.redAdd(this.y).redSqr(),a=this.x.redSqr(),c=this.y.redSqr();if(this.curve.twisted){var u=(r=this.curve._mulA(a)).redAdd(c);this.zOne?(e=s.redSub(a).redSub(c).redMul(u.redSub(this.curve.two)),t=u.redMul(r.redSub(c)),n=u.redSqr().redSub(u).redSub(u)):(i=this.z.redSqr(),o=u.redSub(i).redISub(i),e=s.redSub(a).redISub(c).redMul(o),t=u.redMul(r.redSub(c)),n=u.redMul(o))}else r=a.redAdd(c),i=this.curve._mulC(this.z).redSqr(),o=r.redSub(i).redSub(i),e=this.curve._mulC(s.redISub(r)).redMul(o),t=this.curve._mulC(r).redMul(a.redISub(c)),n=r.redMul(o);return this.curve.point(e,t,n)},u.prototype.dbl=function(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},u.prototype._extAdd=function(e){var t=this.y.redSub(this.x).redMul(e.y.redSub(e.x)),n=this.y.redAdd(this.x).redMul(e.y.redAdd(e.x)),r=this.t.redMul(this.curve.dd).redMul(e.t),i=this.z.redMul(e.z.redAdd(e.z)),o=n.redSub(t),s=i.redSub(r),a=i.redAdd(r),c=n.redAdd(t),u=o.redMul(s),f=a.redMul(c),h=o.redMul(c),l=s.redMul(a);return this.curve.point(u,f,l,h)},u.prototype._projAdd=function(e){var t,n,r=this.z.redMul(e.z),i=r.redSqr(),o=this.x.redMul(e.x),s=this.y.redMul(e.y),a=this.curve.d.redMul(o).redMul(s),c=i.redSub(a),u=i.redAdd(a),f=this.x.redAdd(this.y).redMul(e.x.redAdd(e.y)).redISub(o).redISub(s),h=r.redMul(c).redMul(f);return this.curve.twisted?(t=r.redMul(u).redMul(s.redSub(this.curve._mulA(o))),n=c.redMul(u)):(t=r.redMul(u).redMul(s.redSub(o)),n=this.curve._mulC(c).redMul(u)),this.curve.point(h,t,n)},u.prototype.add=function(e){return this.isInfinity()?e:e.isInfinity()?this:this.curve.extended?this._extAdd(e):this._projAdd(e)},u.prototype.mul=function(e){return this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!1)},u.prototype.jmulAdd=function(e,t,n){return this.curve._wnafMulAdd(1,[this,t],[e,n],2,!0)},u.prototype.normalize=function(){if(this.zOne)return this;var e=this.z.redInvm();return this.x=this.x.redMul(e),this.y=this.y.redMul(e),this.t&&(this.t=this.t.redMul(e)),this.z=this.curve.one,this.zOne=!0,this},u.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},u.prototype.getX=function(){return this.normalize(),this.x.fromRed()},u.prototype.getY=function(){return this.normalize(),this.y.fromRed()},u.prototype.eq=function(e){return this===e||0===this.getX().cmp(e.getX())&&0===this.getY().cmp(e.getY())},u.prototype.eqXToP=function(e){var t=e.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(t))return!0;for(var n=e.clone(),r=this.curve.redN.redMul(this.z);;){if(n.iadd(this.curve.n),n.cmp(this.curve.p)>=0)return!1;if(t.redIAdd(r),0===this.x.cmp(t))return!0}},u.prototype.toP=u.prototype.normalize,u.prototype.mixedAdd=u.prototype.add},46244:function(e,t,n){"use strict";var r=t;r.base=n(48432),r.short=n(42567),r.mont=n(2493),r.edwards=n(27978)},2493:function(e,t,n){"use strict";var r=n(30910),i=n(59503),o=n(48432),s=n(12097);function a(e){o.call(this,"mont",e),this.a=new r(e.a,16).toRed(this.red),this.b=new r(e.b,16).toRed(this.red),this.i4=new r(4).toRed(this.red).redInvm(),this.two=new r(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}function c(e,t,n){o.BasePoint.call(this,e,"projective"),null===t&&null===n?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new r(t,16),this.z=new r(n,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}i(a,o),e.exports=a,a.prototype.validate=function(e){var t=e.normalize().x,n=t.redSqr(),r=n.redMul(t).redAdd(n.redMul(this.a)).redAdd(t);return 0===r.redSqrt().redSqr().cmp(r)},i(c,o.BasePoint),a.prototype.decodePoint=function(e,t){return this.point(s.toArray(e,t),1)},a.prototype.point=function(e,t){return new c(this,e,t)},a.prototype.pointFromJSON=function(e){return c.fromJSON(this,e)},c.prototype.precompute=function(){},c.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},c.fromJSON=function(e,t){return new c(e,t[0],t[1]||e.one)},c.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},c.prototype.isInfinity=function(){return 0===this.z.cmpn(0)},c.prototype.dbl=function(){var e=this.x.redAdd(this.z).redSqr(),t=this.x.redSub(this.z).redSqr(),n=e.redSub(t),r=e.redMul(t),i=n.redMul(t.redAdd(this.curve.a24.redMul(n)));return this.curve.point(r,i)},c.prototype.add=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.diffAdd=function(e,t){var n=this.x.redAdd(this.z),r=this.x.redSub(this.z),i=e.x.redAdd(e.z),o=e.x.redSub(e.z).redMul(n),s=i.redMul(r),a=t.z.redMul(o.redAdd(s).redSqr()),c=t.x.redMul(o.redISub(s).redSqr());return this.curve.point(a,c)},c.prototype.mul=function(e){for(var t=e.clone(),n=this,r=this.curve.point(null,null),i=[];0!==t.cmpn(0);t.iushrn(1))i.push(t.andln(1));for(var o=i.length-1;o>=0;o--)0===i[o]?(n=n.diffAdd(r,this),r=r.dbl()):(r=n.diffAdd(r,this),n=n.dbl());return r},c.prototype.mulAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.jumlAdd=function(){throw new Error("Not supported on Montgomery curve")},c.prototype.eq=function(e){return 0===this.getX().cmp(e.getX())},c.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},c.prototype.getX=function(){return this.normalize(),this.x.fromRed()}},42567:function(e,t,n){"use strict";var r=n(12097),i=n(30910),o=n(59503),s=n(48432),a=r.assert;function c(e){s.call(this,"short",e),this.a=new i(e.a,16).toRed(this.red),this.b=new i(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}function u(e,t,n,r){s.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new i(t,16),this.y=new i(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function f(e,t,n,r){s.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new i(0)):(this.x=new i(t,16),this.y=new i(n,16),this.z=new i(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}o(c,s),e.exports=c,c.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new i(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new i(e.lambda,16);else{var o=this._getEndoRoots(this.n);0===this.g.mul(o[0]).x.cmp(this.g.x.redMul(t))?n=o[0]:(n=o[1],a(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new i(e.a,16),b:new i(e.b,16)}})):this._getEndoBasis(n)}}},c.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:i.mont(e),n=new i(2).toRed(t).redInvm(),r=n.redNeg(),o=new i(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(o).fromRed(),r.redSub(o).fromRed()]},c.prototype._getEndoBasis=function(e){for(var t,n,r,o,s,a,c,u,f,h=this.n.ushrn(Math.floor(this.n.bitLength()/2)),l=e,d=this.n.clone(),p=new i(1),g=new i(0),m=new i(0),b=new i(1),v=0;0!==l.cmpn(0);){var y=d.div(l);u=d.sub(y.mul(l)),f=m.sub(y.mul(p));var w=b.sub(y.mul(g));if(!r&&u.cmp(h)<0)t=c.neg(),n=p,r=u.neg(),o=f;else if(r&&2==++v)break;c=u,d=l,l=u,m=p,p=f,b=g,g=w}s=u.neg(),a=f;var _=r.sqr().add(o.sqr());return s.sqr().add(a.sqr()).cmp(_)>=0&&(s=t,a=n),r.negative&&(r=r.neg(),o=o.neg()),s.negative&&(s=s.neg(),a=a.neg()),[{a:r,b:o},{a:s,b:a}]},c.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),o=n.b.neg().mul(e).divRound(this.n),s=i.mul(n.a),a=o.mul(r.a),c=i.mul(n.b),u=o.mul(r.b);return{k1:e.sub(s).sub(a),k2:c.add(u).neg()}},c.prototype.pointFromX=function(e,t){(e=new i(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var o=r.fromRed().isOdd();return(t&&!o||!t&&o)&&(r=r.redNeg()),this.point(e,r)},c.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},c.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,o=0;o<e.length;o++){var s=this._endoSplit(t[o]),a=e[o],c=a._getBeta();s.k1.negative&&(s.k1.ineg(),a=a.neg(!0)),s.k2.negative&&(s.k2.ineg(),c=c.neg(!0)),r[2*o]=a,r[2*o+1]=c,i[2*o]=s.k1,i[2*o+1]=s.k2}for(var u=this._wnafMulAdd(1,r,i,2*o,n),f=0;f<2*o;f++)r[f]=null,i[f]=null;return u},o(u,s.BasePoint),c.prototype.point=function(e,t,n){return new u(this,e,t,n)},c.prototype.pointFromJSON=function(e,t){return u.fromJSON(this,e,t)},u.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},u.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},u.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var o=t[2];return r.precomputed={beta:null,doubles:o.doubles&&{step:o.doubles.step,points:[r].concat(o.doubles.points.map(i))},naf:o.naf&&{wnd:o.naf.wnd,points:[r].concat(o.naf.points.map(i))}},r},u.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},u.prototype.isInfinity=function(){return this.inf},u.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},u.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),o=i.redSqr().redISub(this.x.redAdd(this.x)),s=i.redMul(this.x.redSub(o)).redISub(this.y);return this.curve.point(o,s)},u.prototype.getX=function(){return this.x.fromRed()},u.prototype.getY=function(){return this.y.fromRed()},u.prototype.mul=function(e){return e=new i(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},u.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},u.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},u.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},u.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},u.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},o(f,s.BasePoint),c.prototype.jpoint=function(e,t,n){return new f(this,e,t,n)},f.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},f.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},f.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),o=this.y.redMul(t.redMul(e.z)),s=e.y.redMul(n.redMul(this.z)),a=r.redSub(i),c=o.redSub(s);if(0===a.cmpn(0))return 0!==c.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=a.redSqr(),f=u.redMul(a),h=r.redMul(u),l=c.redSqr().redIAdd(f).redISub(h).redISub(h),d=c.redMul(h.redISub(l)).redISub(o.redMul(f)),p=this.z.redMul(e.z).redMul(a);return this.curve.jpoint(l,d,p)},f.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,o=e.y.redMul(t).redMul(this.z),s=n.redSub(r),a=i.redSub(o);if(0===s.cmpn(0))return 0!==a.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),u=c.redMul(s),f=n.redMul(c),h=a.redSqr().redIAdd(u).redISub(f).redISub(f),l=a.redMul(f.redISub(h)).redISub(i.redMul(u)),d=this.z.redMul(s);return this.curve.jpoint(h,l,d)},f.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,o=this.x,s=this.y,a=this.z,c=a.redSqr().redSqr(),u=s.redAdd(s);for(t=0;t<e;t++){var f=o.redSqr(),h=u.redSqr(),l=h.redSqr(),d=f.redAdd(f).redIAdd(f).redIAdd(r.redMul(c)),p=o.redMul(h),g=d.redSqr().redISub(p.redAdd(p)),m=p.redISub(g),b=d.redMul(m);b=b.redIAdd(b).redISub(l);var v=u.redMul(a);t+1<e&&(c=c.redMul(l)),o=g,a=v,u=b}return this.curve.jpoint(o,u.redMul(i),a)},f.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},f.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r),c=a.redSqr().redISub(s).redISub(s),u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),e=c,t=a.redMul(s.redISub(c)).redISub(u),n=this.y.redAdd(this.y)}else{var f=this.x.redSqr(),h=this.y.redSqr(),l=h.redSqr(),d=this.x.redAdd(h).redSqr().redISub(f).redISub(l);d=d.redIAdd(d);var p=f.redAdd(f).redIAdd(f),g=p.redSqr(),m=l.redIAdd(l);m=(m=m.redIAdd(m)).redIAdd(m),e=g.redISub(d).redISub(d),t=p.redMul(d.redISub(e)).redISub(m),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},f.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),o=i.redSqr(),s=this.x.redAdd(i).redSqr().redISub(r).redISub(o);s=s.redIAdd(s);var a=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),c=a.redSqr().redISub(s).redISub(s);e=c;var u=o.redIAdd(o);u=(u=u.redIAdd(u)).redIAdd(u),t=a.redMul(s.redISub(c)).redISub(u),n=this.y.redAdd(this.y)}else{var f=this.z.redSqr(),h=this.y.redSqr(),l=this.x.redMul(h),d=this.x.redSub(f).redMul(this.x.redAdd(f));d=d.redAdd(d).redIAdd(d);var p=l.redIAdd(l),g=(p=p.redIAdd(p)).redAdd(p);e=d.redSqr().redISub(g),n=this.y.redAdd(this.z).redSqr().redISub(h).redISub(f);var m=h.redSqr();m=(m=(m=m.redIAdd(m)).redIAdd(m)).redIAdd(m),t=d.redMul(p.redISub(e)).redISub(m)}return this.curve.jpoint(e,t,n)},f.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),o=t.redSqr(),s=n.redSqr(),a=o.redAdd(o).redIAdd(o).redIAdd(e.redMul(i)),c=t.redAdd(t),u=(c=c.redIAdd(c)).redMul(s),f=a.redSqr().redISub(u.redAdd(u)),h=u.redISub(f),l=s.redSqr();l=(l=(l=l.redIAdd(l)).redIAdd(l)).redIAdd(l);var d=a.redMul(h).redISub(l),p=n.redAdd(n).redMul(r);return this.curve.jpoint(f,d,p)},f.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),o=i.redSqr(),s=this.x.redAdd(t).redSqr().redISub(e).redISub(r),a=(s=(s=(s=s.redIAdd(s)).redAdd(s).redIAdd(s)).redISub(o)).redSqr(),c=r.redIAdd(r);c=(c=(c=c.redIAdd(c)).redIAdd(c)).redIAdd(c);var u=i.redIAdd(s).redSqr().redISub(o).redISub(a).redISub(c),f=t.redMul(u);f=(f=f.redIAdd(f)).redIAdd(f);var h=this.x.redMul(a).redISub(f);h=(h=h.redIAdd(h)).redIAdd(h);var l=this.y.redMul(u.redMul(c.redISub(u)).redISub(s.redMul(a)));l=(l=(l=l.redIAdd(l)).redIAdd(l)).redIAdd(l);var d=this.z.redAdd(s).redSqr().redISub(n).redISub(a);return this.curve.jpoint(h,l,d)},f.prototype.mul=function(e,t){return e=new i(e,t),this.curve._wnafMul(this,e)},f.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},f.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},f.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},f.prototype.isInfinity=function(){return 0===this.z.cmpn(0)}},65583:function(e,t,n){"use strict";var r,i=t,o=n(91138),s=n(46244),a=n(12097).assert;function c(e){"short"===e.type?this.curve=new s.short(e):"edwards"===e.type?this.curve=new s.edwards(e):this.curve=new s.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,a(this.g.validate(),"Invalid curve"),a(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function u(e,t){Object.defineProperty(i,e,{configurable:!0,enumerable:!0,get:function(){var n=new c(t);return Object.defineProperty(i,e,{configurable:!0,enumerable:!0,value:n}),n}})}i.PresetCurve=c,u("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:o.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),u("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:o.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),u("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:o.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),u("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:o.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),u("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:o.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),u("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["9"]}),u("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:o.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{r=n(4703)}catch(e){r=void 0}u("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:o.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",r]})},72553:function(e,t,n){"use strict";var r=n(30910),i=n(53674),o=n(12097),s=n(65583),a=n(71876),c=o.assert,u=n(26167),f=n(96376);function h(e){if(!(this instanceof h))return new h(e);"string"==typeof e&&(c(Object.prototype.hasOwnProperty.call(s,e),"Unknown curve "+e),e=s[e]),e instanceof s.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}e.exports=h,h.prototype.keyPair=function(e){return new u(this,e)},h.prototype.keyFromPrivate=function(e,t){return u.fromPrivate(this,e,t)},h.prototype.keyFromPublic=function(e,t){return u.fromPublic(this,e,t)},h.prototype.genKeyPair=function(e){e||(e={});for(var t=new i({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||a(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),o=this.n.sub(new r(2));;){var s=new r(t.generate(n));if(!(s.cmp(o)>0))return s.iaddn(1),this.keyFromPrivate(s)}},h.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},h.prototype.sign=function(e,t,n,o){"object"==typeof n&&(o=n,n=null),o||(o={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new r(e,16));for(var s=this.n.byteLength(),a=t.getPrivate().toArray("be",s),c=e.toArray("be",s),u=new i({hash:this.hash,entropy:a,nonce:c,pers:o.pers,persEnc:o.persEnc||"utf8"}),h=this.n.sub(new r(1)),l=0;;l++){var d=o.k?o.k(l):new r(u.generate(this.n.byteLength()));if(!((d=this._truncateToN(d,!0)).cmpn(1)<=0||d.cmp(h)>=0)){var p=this.g.mul(d);if(!p.isInfinity()){var g=p.getX(),m=g.umod(this.n);if(0!==m.cmpn(0)){var b=d.invm(this.n).mul(m.mul(t.getPrivate()).iadd(e));if(0!==(b=b.umod(this.n)).cmpn(0)){var v=(p.getY().isOdd()?1:0)|(0!==g.cmp(m)?2:0);return o.canonical&&b.cmp(this.nh)>0&&(b=this.n.sub(b),v^=1),new f({r:m,s:b,recoveryParam:v})}}}}}},h.prototype.verify=function(e,t,n,i){e=this._truncateToN(new r(e,16)),n=this.keyFromPublic(n,i);var o=(t=new f(t,"hex")).r,s=t.s;if(o.cmpn(1)<0||o.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var a,c=s.invm(this.n),u=c.mul(e).umod(this.n),h=c.mul(o).umod(this.n);return this.curve._maxwellTrick?!(a=this.g.jmulAdd(u,n.getPublic(),h)).isInfinity()&&a.eqXToP(o):!(a=this.g.mulAdd(u,n.getPublic(),h)).isInfinity()&&0===a.getX().umod(this.n).cmp(o)},h.prototype.recoverPubKey=function(e,t,n,i){c((3&n)===n,"The recovery param is more than two bits"),t=new f(t,i);var o=this.n,s=new r(e),a=t.r,u=t.s,h=1&n,l=n>>1;if(a.cmp(this.curve.p.umod(this.curve.n))>=0&&l)throw new Error("Unable to find sencond key candinate");a=l?this.curve.pointFromX(a.add(this.curve.n),h):this.curve.pointFromX(a,h);var d=t.r.invm(o),p=o.sub(s).mul(d).umod(o),g=u.mul(d).umod(o);return this.g.mulAdd(p,a,g)},h.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new f(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var o;try{o=this.recoverPubKey(e,t,i)}catch(e){continue}if(o.eq(n))return i}throw new Error("Unable to find valid recovery factor")}},26167:function(e,t,n){"use strict";var r=n(30910),i=n(12097).assert;function o(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}e.exports=o,o.fromPublic=function(e,t,n){return t instanceof o?t:new o(e,{pub:t,pubEnc:n})},o.fromPrivate=function(e,t,n){return t instanceof o?t:new o(e,{priv:t,privEnc:n})},o.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},o.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},o.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},o.prototype._importPrivate=function(e,t){this.priv=new r(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},o.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?i(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||i(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},o.prototype.derive=function(e){return e.validate()||i(e.validate(),"public point not validated"),e.mul(this.priv).getX()},o.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},o.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},o.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},96376:function(e,t,n){"use strict";var r=n(30910),i=n(12097),o=i.assert;function s(e,t){if(e instanceof s)return e;this._importDER(e,t)||(o(e.r&&e.s,"Signature without r or s"),this.r=new r(e.r,16),this.s=new r(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}function a(){this.place=0}function c(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,o=0,s=t.place;o<r;o++,s++)i<<=8,i|=e[s],i>>>=0;return!(i<=127)&&(t.place=s,i)}function u(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function f(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}e.exports=s,s.prototype._importDER=function(e,t){e=i.toArray(e,t);var n=new a;if(48!==e[n.place++])return!1;var o=c(e,n);if(!1===o)return!1;if(o+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var s=c(e,n);if(!1===s)return!1;var u=e.slice(n.place,s+n.place);if(n.place+=s,2!==e[n.place++])return!1;var f=c(e,n);if(!1===f)return!1;if(e.length!==f+n.place)return!1;var h=e.slice(n.place,f+n.place);if(0===u[0]){if(!(128&u[1]))return!1;u=u.slice(1)}if(0===h[0]){if(!(128&h[1]))return!1;h=h.slice(1)}return this.r=new r(u),this.s=new r(h),this.recoveryParam=null,!0},s.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=u(t),n=u(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];f(r,t.length),(r=r.concat(t)).push(2),f(r,n.length);var o=r.concat(n),s=[48];return f(s,o.length),s=s.concat(o),i.encode(s,e)}},66281:function(e,t,n){"use strict";var r=n(91138),i=n(65583),o=n(12097),s=o.assert,a=o.parseBytes,c=n(8325),u=n(49945);function f(e){if(s("ed25519"===e,"only tested with ed25519 so far"),!(this instanceof f))return new f(e);e=i[e].curve,this.curve=e,this.g=e.g,this.g.precompute(e.n.bitLength()+1),this.pointClass=e.point().constructor,this.encodingLength=Math.ceil(e.n.bitLength()/8),this.hash=r.sha512}e.exports=f,f.prototype.sign=function(e,t){e=a(e);var n=this.keyFromSecret(t),r=this.hashInt(n.messagePrefix(),e),i=this.g.mul(r),o=this.encodePoint(i),s=this.hashInt(o,n.pubBytes(),e).mul(n.priv()),c=r.add(s).umod(this.curve.n);return this.makeSignature({R:i,S:c,Rencoded:o})},f.prototype.verify=function(e,t,n){e=a(e),t=this.makeSignature(t);var r=this.keyFromPublic(n),i=this.hashInt(t.Rencoded(),r.pubBytes(),e),o=this.g.mul(t.S());return t.R().add(r.pub().mul(i)).eq(o)},f.prototype.hashInt=function(){for(var e=this.hash(),t=0;t<arguments.length;t++)e.update(arguments[t]);return o.intFromLE(e.digest()).umod(this.curve.n)},f.prototype.keyFromPublic=function(e){return c.fromPublic(this,e)},f.prototype.keyFromSecret=function(e){return c.fromSecret(this,e)},f.prototype.makeSignature=function(e){return e instanceof u?e:new u(this,e)},f.prototype.encodePoint=function(e){var t=e.getY().toArray("le",this.encodingLength);return t[this.encodingLength-1]|=e.getX().isOdd()?128:0,t},f.prototype.decodePoint=function(e){var t=(e=o.parseBytes(e)).length-1,n=e.slice(0,t).concat(-129&e[t]),r=0!=(128&e[t]),i=o.intFromLE(n);return this.curve.pointFromY(i,r)},f.prototype.encodeInt=function(e){return e.toArray("le",this.encodingLength)},f.prototype.decodeInt=function(e){return o.intFromLE(e)},f.prototype.isPoint=function(e){return e instanceof this.pointClass}},8325:function(e,t,n){"use strict";var r=n(12097),i=r.assert,o=r.parseBytes,s=r.cachedProperty;function a(e,t){this.eddsa=e,this._secret=o(t.secret),e.isPoint(t.pub)?this._pub=t.pub:this._pubBytes=o(t.pub)}a.fromPublic=function(e,t){return t instanceof a?t:new a(e,{pub:t})},a.fromSecret=function(e,t){return t instanceof a?t:new a(e,{secret:t})},a.prototype.secret=function(){return this._secret},s(a,"pubBytes",(function(){return this.eddsa.encodePoint(this.pub())})),s(a,"pub",(function(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),s(a,"privBytes",(function(){var e=this.eddsa,t=this.hash(),n=e.encodingLength-1,r=t.slice(0,e.encodingLength);return r[0]&=248,r[n]&=127,r[n]|=64,r})),s(a,"priv",(function(){return this.eddsa.decodeInt(this.privBytes())})),s(a,"hash",(function(){return this.eddsa.hash().update(this.secret()).digest()})),s(a,"messagePrefix",(function(){return this.hash().slice(this.eddsa.encodingLength)})),a.prototype.sign=function(e){return i(this._secret,"KeyPair can only verify"),this.eddsa.sign(e,this)},a.prototype.verify=function(e,t){return this.eddsa.verify(e,t,this)},a.prototype.getSecret=function(e){return i(this._secret,"KeyPair is public only"),r.encode(this.secret(),e)},a.prototype.getPublic=function(e){return r.encode(this.pubBytes(),e)},e.exports=a},49945:function(e,t,n){"use strict";var r=n(30910),i=n(12097),o=i.assert,s=i.cachedProperty,a=i.parseBytes;function c(e,t){this.eddsa=e,"object"!=typeof t&&(t=a(t)),Array.isArray(t)&&(t={R:t.slice(0,e.encodingLength),S:t.slice(e.encodingLength)}),o(t.R&&t.S,"Signature without R or S"),e.isPoint(t.R)&&(this._R=t.R),t.S instanceof r&&(this._S=t.S),this._Rencoded=Array.isArray(t.R)?t.R:t.Rencoded,this._Sencoded=Array.isArray(t.S)?t.S:t.Sencoded}s(c,"S",(function(){return this.eddsa.decodeInt(this.Sencoded())})),s(c,"R",(function(){return this.eddsa.decodePoint(this.Rencoded())})),s(c,"Rencoded",(function(){return this.eddsa.encodePoint(this.R())})),s(c,"Sencoded",(function(){return this.eddsa.encodeInt(this.S())})),c.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},c.prototype.toHex=function(){return i.encode(this.toBytes(),"hex").toUpperCase()},e.exports=c},4703:function(e){e.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},12097:function(e,t,n){"use strict";var r=t,i=n(30910),o=n(48282),s=n(90458);r.assert=o,r.toArray=s.toArray,r.zero2=s.zero2,r.toHex=s.toHex,r.encode=s.encode,r.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,o=e.clone(),s=0;s<r.length;s++){var a,c=o.andln(i-1);o.isOdd()?(a=c>(i>>1)-1?(i>>1)-c:c,o.isubn(a)):a=0,r[s]=a,o.iushrn(1)}return r},r.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,o=0;e.cmpn(-i)>0||t.cmpn(-o)>0;){var s,a,c=e.andln(3)+i&3,u=t.andln(3)+o&3;3===c&&(c=-1),3===u&&(u=-1),s=0==(1&c)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==u?c:-c,n[0].push(s),a=0==(1&u)?0:3!==(r=t.andln(7)+o&7)&&5!==r||2!==c?u:-u,n[1].push(a),2*i===s+1&&(i=1-i),2*o===a+1&&(o=1-o),e.iushrn(1),t.iushrn(1)}return n},r.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},r.parseBytes=function(e){return"string"==typeof e?r.toArray(e,"hex"):e},r.intFromLE=function(e){return new i(e,"hex","le")}},45685:function(e){"use strict";function t(e,t){if(null==e)throw new TypeError("Cannot convert first argument to object");for(var n=Object(e),r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i)for(var o=Object.keys(Object(i)),s=0,a=o.length;s<a;s++){var c=o[s],u=Object.getOwnPropertyDescriptor(i,c);void 0!==u&&u.enumerable&&(n[c]=i[c])}}return n}e.exports={assign:t,polyfill:function(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:t})}}},2571:function(e,t,n){"use strict";var r,i=n(55246),o="object"==typeof Reflect?Reflect:null,s=o&&"function"==typeof o.apply?o.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};r=o&&"function"==typeof o.ownKeys?o.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var a=Number.isNaN||function(e){return e!=e};function c(){c.init.call(this)}e.exports=c,e.exports.once=function(e,t){return new Promise((function(n,r){function i(n){e.removeListener(t,o),r(n)}function o(){"function"==typeof e.removeListener&&e.removeListener("error",i),n([].slice.call(arguments))}v(e,t,o,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&v(e,"error",t,n)}(e,i,{once:!0})}))},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var u=10;function f(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function h(e){return void 0===e._maxListeners?c.defaultMaxListeners:e._maxListeners}function l(e,t,n,r){var o,s,a;if(f(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),a=s[t]),void 0===a)a=s[t]=n,++e._eventsCount;else if("function"==typeof a?a=s[t]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(o=h(e))>0&&a.length>o&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,function(e){i&&i.warn&&i.warn(e)}(c)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=d.bind(r);return i.listener=n,r.wrapFn=i,i}function g(e,t,n){var r=e._events;if(void 0===r)return[];var i=r[t];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(i):b(i,i.length)}function m(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function b(e,t){for(var n=new Array(t),r=0;r<t;++r)n[r]=e[r];return n}function v(e,t,n,r){if("function"==typeof e.on)r.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function i(o){r.once&&e.removeEventListener(t,i),n(o)}))}}Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return u},set:function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");u=e}}),c.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||a(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},c.prototype.getMaxListeners=function(){return h(this)},c.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=i[e];if(void 0===c)return!1;if("function"==typeof c)s(c,this,t);else{var u=c.length,f=b(c,u);for(n=0;n<u;++n)s(f[n],this,t)}return!0},c.prototype.addListener=function(e,t){return l(this,e,t,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(e,t){return l(this,e,t,!0)},c.prototype.once=function(e,t){return f(t),this.on(e,p(this,e,t)),this},c.prototype.prependOnceListener=function(e,t){return f(t),this.prependListener(e,p(this,e,t)),this},c.prototype.removeListener=function(e,t){var n,r,i,o,s;if(f(t),void 0===(r=this._events))return this;if(void 0===(n=r[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===t||n[o].listener===t){s=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,i),1===n.length&&(r[e]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",e,s||t)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(e){var t,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(r=t.length-1;r>=0;r--)this.removeListener(e,t[r]);return this},c.prototype.listeners=function(e){return g(this,e,!0)},c.prototype.rawListeners=function(e){return g(this,e,!1)},c.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):m.call(e,t)},c.prototype.listenerCount=m,c.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},51105:function(e,t,n){var r=n(37225).Buffer,i=n(53956);e.exports=function(e,t,n,o){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var s=n/8,a=r.alloc(s),c=r.alloc(o||0),u=r.alloc(0);s>0||o>0;){var f=new i;f.update(u),f.update(e),t&&f.update(t),u=f.digest();var h=0;if(s>0){var l=a.length-s;h=Math.min(s,u.length),u.copy(a,l,0,h),s-=h}if(h<u.length&&o>0){var d=c.length-o,p=Math.min(o,u.length-h);u.copy(c,d,h,h+p),o-=p}}return u.fill(0),{key:a,iv:c}}},49478:function(e){var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString;e.exports=function(e,r,i){if("[object Function]"!==n.call(r))throw new TypeError("iterator must be a function");var o=e.length;if(o===+o)for(var s=0;s<o;s++)r.call(i,e[s],s,e);else for(var a in e)t.call(e,a)&&r.call(i,e[a],a,e)}},44033:function(e){"use strict";var t="Function.prototype.bind called on incompatible ",n=Array.prototype.slice,r=Object.prototype.toString,i="[object Function]";e.exports=function(e){var o=this;if("function"!=typeof o||r.call(o)!==i)throw new TypeError(t+o);for(var s,a=n.call(arguments,1),c=function(){if(this instanceof s){var t=o.apply(this,a.concat(n.call(arguments)));return Object(t)===t?t:this}return o.apply(e,a.concat(n.call(arguments)))},u=Math.max(0,o.length-a.length),f=[],h=0;h<u;h++)f.push("$"+h);if(s=Function("binder","return function ("+f.join(",")+"){ return binder.apply(this,arguments); }")(c),o.prototype){var l=function(){};l.prototype=o.prototype,s.prototype=new l,l.prototype=null}return s}},75433:function(e,t,n){"use strict";var r=n(44033);e.exports=Function.prototype.bind||r},52221:function(e){e.exports=function e(n){if(t(n))return n;if(t(n.ownerDocument))return n.ownerDocument;if(t(n.document))return n.document;if(n.parentNode)return e(n.parentNode);if(n.commonAncestorContainer)return e(n.commonAncestorContainer);if(n.startContainer)return e(n.startContainer);if(n.anchorNode)return e(n.anchorNode)};function t(e){return e&&9===e.nodeType}},25165:function(e,t,n){"use strict";var r,i=SyntaxError,o=Function,s=TypeError,a=function(e){try{return o('"use strict"; return ('+e+").constructor;")()}catch(e){}},c=Object.getOwnPropertyDescriptor;if(c)try{c({},"")}catch(e){c=null}var u=function(){throw new s},f=c?function(){try{return u}catch(e){try{return c(arguments,"callee").get}catch(e){return u}}}():u,h=n(45992)(),l=Object.getPrototypeOf||function(e){return e.__proto__},d={},p="undefined"==typeof Uint8Array?r:l(Uint8Array),g={"%AggregateError%":"undefined"==typeof AggregateError?r:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?r:ArrayBuffer,"%ArrayIteratorPrototype%":h?l([][Symbol.iterator]()):r,"%AsyncFromSyncIteratorPrototype%":r,"%AsyncFunction%":d,"%AsyncGenerator%":d,"%AsyncGeneratorFunction%":d,"%AsyncIteratorPrototype%":d,"%Atomics%":"undefined"==typeof Atomics?r:Atomics,"%BigInt%":"undefined"==typeof BigInt?r:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?r:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?r:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?r:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?r:FinalizationRegistry,"%Function%":o,"%GeneratorFunction%":d,"%Int8Array%":"undefined"==typeof Int8Array?r:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?r:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?r:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":h?l(l([][Symbol.iterator]())):r,"%JSON%":"object"==typeof JSON?JSON:r,"%Map%":"undefined"==typeof Map?r:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&h?l((new Map)[Symbol.iterator]()):r,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?r:Promise,"%Proxy%":"undefined"==typeof Proxy?r:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?r:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?r:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&h?l((new Set)[Symbol.iterator]()):r,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?r:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":h?l(""[Symbol.iterator]()):r,"%Symbol%":h?Symbol:r,"%SyntaxError%":i,"%ThrowTypeError%":f,"%TypedArray%":p,"%TypeError%":s,"%Uint8Array%":"undefined"==typeof Uint8Array?r:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?r:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?r:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?r:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?r:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?r:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?r:WeakSet},m=function e(t){var n;if("%AsyncFunction%"===t)n=a("async function () {}");else if("%GeneratorFunction%"===t)n=a("function* () {}");else if("%AsyncGeneratorFunction%"===t)n=a("async function* () {}");else if("%AsyncGenerator%"===t){var r=e("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if("%AsyncIteratorPrototype%"===t){var i=e("%AsyncGenerator%");i&&(n=l(i.prototype))}return g[t]=n,n},b={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},v=n(75433),y=n(99569),w=v.call(Function.call,Array.prototype.concat),_=v.call(Function.apply,Array.prototype.splice),E=v.call(Function.call,String.prototype.replace),S=v.call(Function.call,String.prototype.slice),k=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,M=/\\(\\)?/g,C=function(e){var t=S(e,0,1),n=S(e,-1);if("%"===t&&"%"!==n)throw new i("invalid intrinsic syntax, expected closing `%`");if("%"===n&&"%"!==t)throw new i("invalid intrinsic syntax, expected opening `%`");var r=[];return E(e,k,(function(e,t,n,i){r[r.length]=n?E(i,M,"$1"):t||e})),r},A=function(e,t){var n,r=e;if(y(b,r)&&(r="%"+(n=b[r])[0]+"%"),y(g,r)){var o=g[r];if(o===d&&(o=m(r)),void 0===o&&!t)throw new s("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new i("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new s("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof t)throw new s('"allowMissing" argument must be a boolean');var n=C(e),r=n.length>0?n[0]:"",o=A("%"+r+"%",t),a=o.name,u=o.value,f=!1,h=o.alias;h&&(r=h[0],_(n,w([0,1],h)));for(var l=1,d=!0;l<n.length;l+=1){var p=n[l],m=S(p,0,1),b=S(p,-1);if(('"'===m||"'"===m||"`"===m||'"'===b||"'"===b||"`"===b)&&m!==b)throw new i("property names with quotes must have matching quotes");if("constructor"!==p&&d||(f=!0),y(g,a="%"+(r+="."+p)+"%"))u=g[a];else if(null!=u){if(!(p in u)){if(!t)throw new s("base intrinsic for "+e+" exists, but the property is not available.");return}if(c&&l+1>=n.length){var v=c(u,p);u=(d=!!v)&&"get"in v&&!("originalValue"in v.get)?v.get:u[p]}else d=y(u,p),u=u[p];d&&!f&&(g[a]=u)}}return u}},45992:function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,i=n(4461);e.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&i())))}},4461:function(e){"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var r=Object.getOwnPropertySymbols(e);if(1!==r.length||r[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(e,t);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},77828:function(e,t,n){"use strict";var r=n(4461);e.exports=function(){return r()&&!!Symbol.toStringTag}},99569:function(e,t,n){"use strict";var r=n(75433);e.exports=r.call(Function.call,Object.prototype.hasOwnProperty)},39302:function(e,t,n){"use strict";var r=n(37225).Buffer,i=n(7130).Transform;function o(e){i.call(this),this._block=r.allocUnsafe(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}n(59503)(o,i),o.prototype._transform=function(e,t,n){var r=null;try{this.update(e,t)}catch(e){r=e}n(r)},o.prototype._flush=function(e){var t=null;try{this.push(this.digest())}catch(e){t=e}e(t)},o.prototype.update=function(e,t){if(function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError(t+" must be a string or a buffer")}(e,"Data"),this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=r.from(e,t));for(var n=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var o=this._blockOffset;o<this._blockSize;)n[o++]=e[i++];this._update(),this._blockOffset=0}for(;i<e.length;)n[this._blockOffset++]=e[i++];for(var s=0,a=8*e.length;a>0;++s)this._length[s]+=a,(a=this._length[s]/4294967296|0)>0&&(this._length[s]-=4294967296*a);return this},o.prototype._update=function(){throw new Error("_update is not implemented")},o.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();void 0!==e&&(t=t.toString(e)),this._block.fill(0),this._blockOffset=0;for(var n=0;n<4;++n)this._length[n]=0;return t},o.prototype._digest=function(){throw new Error("_digest is not implemented")},e.exports=o},91138:function(e,t,n){var r=t;r.utils=n(53566),r.common=n(95949),r.sha=n(75894),r.ripemd=n(94877),r.hmac=n(9942),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},95949:function(e,t,n){"use strict";var r=n(53566),i=n(48282);function o(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=o,o.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},o.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},o.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var o=8;o<this.padLength;o++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,o=8;o<this.padLength;o++)r[i++]=0;return r}},9942:function(e,t,n){"use strict";var r=n(53566),i=n(48282);function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(r.toArray(t,n))}e.exports=o,o.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),i(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},o.prototype.update=function(e,t){return this.inner.update(e,t),this},o.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)}},94877:function(e,t,n){"use strict";var r=n(53566),i=n(95949),o=r.rotl32,s=r.sum32,a=r.sum32_3,c=r.sum32_4,u=i.BlockHash;function f(){if(!(this instanceof f))return new f;u.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function h(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function l(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function d(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}r.inherits(f,u),t.ripemd160=f,f.blockSize=512,f.outSize=160,f.hmacStrength=192,f.padLength=64,f.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],u=this.h[3],f=this.h[4],v=n,y=r,w=i,_=u,E=f,S=0;S<80;S++){var k=s(o(c(n,h(S,r,i,u),e[p[S]+t],l(S)),m[S]),f);n=f,f=u,u=o(i,10),i=r,r=k,k=s(o(c(v,h(79-S,y,w,_),e[g[S]+t],d(S)),b[S]),E),v=E,E=_,_=o(w,10),w=y,y=k}k=a(this.h[1],i,_),this.h[1]=a(this.h[2],u,E),this.h[2]=a(this.h[3],f,v),this.h[3]=a(this.h[4],n,y),this.h[4]=a(this.h[0],r,w),this.h[0]=k},f.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"little"):r.split32(this.h,"little")};var p=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],g=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],m=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],b=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},75894:function(e,t,n){"use strict";t.sha1=n(69016),t.sha224=n(92055),t.sha256=n(23347),t.sha384=n(57544),t.sha512=n(31766)},69016:function(e,t,n){"use strict";var r=n(53566),i=n(95949),o=n(47574),s=r.rotl32,a=r.sum32,c=r.sum32_5,u=o.ft_1,f=i.BlockHash,h=[1518500249,1859775393,2400959708,3395469782];function l(){if(!(this instanceof l))return new l;f.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}r.inherits(l,f),e.exports=l,l.blockSize=512,l.outSize=160,l.hmacStrength=80,l.padLength=64,l.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=s(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],o=this.h[1],f=this.h[2],l=this.h[3],d=this.h[4];for(r=0;r<n.length;r++){var p=~~(r/20),g=c(s(i,5),u(p,o,f,l),d,n[r],h[p]);d=l,l=f,f=s(o,30),o=i,i=g}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],f),this.h[3]=a(this.h[3],l),this.h[4]=a(this.h[4],d)},l.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},92055:function(e,t,n){"use strict";var r=n(53566),i=n(23347);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=512,o.outSize=224,o.hmacStrength=192,o.padLength=64,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,7),"big"):r.split32(this.h.slice(0,7),"big")}},23347:function(e,t,n){"use strict";var r=n(53566),i=n(95949),o=n(47574),s=n(48282),a=r.sum32,c=r.sum32_4,u=r.sum32_5,f=o.ch32,h=o.maj32,l=o.s0_256,d=o.s1_256,p=o.g0_256,g=o.g1_256,m=i.BlockHash,b=[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];function v(){if(!(this instanceof v))return new v;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(v,m),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=c(g(n[r-2]),n[r-7],p(n[r-15]),n[r-16]);var i=this.h[0],o=this.h[1],m=this.h[2],b=this.h[3],v=this.h[4],y=this.h[5],w=this.h[6],_=this.h[7];for(s(this.k.length===n.length),r=0;r<n.length;r++){var E=u(_,d(v),f(v,y,w),this.k[r],n[r]),S=a(l(i),h(i,o,m));_=w,w=y,y=v,v=a(b,E),b=m,m=o,o=i,i=a(E,S)}this.h[0]=a(this.h[0],i),this.h[1]=a(this.h[1],o),this.h[2]=a(this.h[2],m),this.h[3]=a(this.h[3],b),this.h[4]=a(this.h[4],v),this.h[5]=a(this.h[5],y),this.h[6]=a(this.h[6],w),this.h[7]=a(this.h[7],_)},v.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},57544:function(e,t,n){"use strict";var r=n(53566),i=n(31766);function o(){if(!(this instanceof o))return new o;i.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}r.inherits(o,i),e.exports=o,o.blockSize=1024,o.outSize=384,o.hmacStrength=192,o.padLength=128,o.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h.slice(0,12),"big"):r.split32(this.h.slice(0,12),"big")}},31766:function(e,t,n){"use strict";var r=n(53566),i=n(95949),o=n(48282),s=r.rotr64_hi,a=r.rotr64_lo,c=r.shr64_hi,u=r.shr64_lo,f=r.sum64,h=r.sum64_hi,l=r.sum64_lo,d=r.sum64_4_hi,p=r.sum64_4_lo,g=r.sum64_5_hi,m=r.sum64_5_lo,b=i.BlockHash,v=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=v,this.W=new Array(160)}function w(e,t,n,r,i){var o=e&n^~e&i;return o<0&&(o+=4294967296),o}function _(e,t,n,r,i,o){var s=t&r^~t&o;return s<0&&(s+=4294967296),s}function E(e,t,n,r,i){var o=e&n^e&i^n&i;return o<0&&(o+=4294967296),o}function S(e,t,n,r,i,o){var s=t&r^t&o^r&o;return s<0&&(s+=4294967296),s}function k(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function M(e,t){var n=a(e,t,28)^a(t,e,2)^a(t,e,7);return n<0&&(n+=4294967296),n}function C(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function A(e,t){var n=a(e,t,14)^a(e,t,18)^a(t,e,9);return n<0&&(n+=4294967296),n}function x(e,t){var n=s(e,t,1)^s(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function I(e,t){var n=a(e,t,1)^a(e,t,8)^u(e,t,7);return n<0&&(n+=4294967296),n}function O(e,t){var n=s(e,t,19)^s(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function T(e,t){var n=a(e,t,19)^a(t,e,29)^u(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,b),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=O(n[r-4],n[r-3]),o=T(n[r-4],n[r-3]),s=n[r-14],a=n[r-13],c=x(n[r-30],n[r-29]),u=I(n[r-30],n[r-29]),f=n[r-32],h=n[r-31];n[r]=d(i,o,s,a,c,u,f,h),n[r+1]=p(i,o,s,a,c,u,f,h)}},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],s=this.h[2],a=this.h[3],c=this.h[4],u=this.h[5],d=this.h[6],p=this.h[7],b=this.h[8],v=this.h[9],y=this.h[10],x=this.h[11],I=this.h[12],O=this.h[13],T=this.h[14],N=this.h[15];o(this.k.length===n.length);for(var j=0;j<n.length;j+=2){var z=T,P=N,R=C(b,v),B=A(b,v),L=w(b,v,y,x,I),D=_(b,v,y,x,I,O),U=this.k[j],F=this.k[j+1],H=n[j],V=n[j+1],q=g(z,P,R,B,L,D,U,F,H,V),K=m(z,P,R,B,L,D,U,F,H,V);z=k(r,i),P=M(r,i),R=E(r,i,s,a,c),B=S(r,i,s,a,c,u);var $=h(z,P,R,B),Z=l(z,P,R,B);T=I,N=O,I=y,O=x,y=b,x=v,b=h(d,p,q,K),v=l(p,p,q,K),d=c,p=u,c=s,u=a,s=r,a=i,r=h(q,K,$,Z),i=l(q,K,$,Z)}f(this.h,0,r,i),f(this.h,2,s,a),f(this.h,4,c,u),f(this.h,6,d,p),f(this.h,8,b,v),f(this.h,10,y,x),f(this.h,12,I,O),f(this.h,14,T,N)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},47574:function(e,t,n){"use strict";var r=n(53566).rotr32;function i(e,t,n){return e&t^~e&n}function o(e,t,n){return e&t^e&n^t&n}function s(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?s(t,n,r):2===e?o(t,n,r):void 0},t.ch32=i,t.maj32=o,t.p32=s,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},53566:function(e,t,n){"use strict";var r=n(48282),i=n(59503);function o(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function s(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function a(e){return 1===e.length?"0"+e:e}function c(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var s=e.charCodeAt(i);s<128?n[r++]=s:s<2048?(n[r++]=s>>6|192,n[r++]=63&s|128):o(e,i)?(s=65536+((1023&s)<<10)+(1023&e.charCodeAt(++i)),n[r++]=s>>18|240,n[r++]=s>>12&63|128,n[r++]=s>>6&63|128,n[r++]=63&s|128):(n[r++]=s>>12|224,n[r++]=s>>6&63|128,n[r++]=63&s|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=a(e[n].toString(16));return t},t.htonl=s,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=s(i)),n+=c(i.toString(16))}return n},t.zero2=a,t.zero8=c,t.join32=function(e,t,n,i){var o=n-t;r(o%4==0);for(var s=new Array(o/4),a=0,c=t;a<s.length;a++,c+=4){var u;u="big"===i?e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],s[a]=u>>>0}return s},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var o=e[r];"big"===t?(n[i]=o>>>24,n[i+1]=o>>>16&255,n[i+2]=o>>>8&255,n[i+3]=255&o):(n[i+3]=o>>>24,n[i+2]=o>>>16&255,n[i+1]=o>>>8&255,n[i]=255&o)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],o=r+e[t+1]>>>0,s=(o<r?1:0)+n+i;e[t]=s>>>0,e[t+1]=o},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,o,s,a){var c=0,u=t;return c+=(u=u+r>>>0)<t?1:0,c+=(u=u+o>>>0)<o?1:0,e+n+i+s+(c+=(u=u+a>>>0)<a?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,i,o,s,a){return t+r+o+a>>>0},t.sum64_5_hi=function(e,t,n,r,i,o,s,a,c,u){var f=0,h=t;return f+=(h=h+r>>>0)<t?1:0,f+=(h=h+o>>>0)<o?1:0,f+=(h=h+a>>>0)<a?1:0,e+n+i+s+c+(f+=(h=h+u>>>0)<u?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,i,o,s,a,c,u){return t+r+o+a+u>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},53674:function(e,t,n){"use strict";var r=n(91138),i=n(90458),o=n(48282);function s(e){if(!(this instanceof s))return new s(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=i.toArray(e.entropy,e.entropyEnc||"hex"),n=i.toArray(e.nonce,e.nonceEnc||"hex"),r=i.toArray(e.pers,e.persEnc||"hex");o(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}e.exports=s,s.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},s.prototype._hmac=function(){return new r.hmac(this.hash,this.K)},s.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},s.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=i.toArray(e,t),n=i.toArray(n,r),o(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},s.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=i.toArray(n,r||"hex"),this._update(n));for(var o=[];o.length<e;)this.V=this._hmac().update(this.V).digest(),o=o.concat(this.V);var s=o.slice(0,e);return this._update(n),this._reseed++,i.encode(s,t)}},13266:function(e,t,n){"use strict";var r=n(80364),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},s={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},a={};function c(e){return r.isMemo(e)?s:a[e.$$typeof]||i}a[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},a[r.Memo]=s;var u=Object.defineProperty,f=Object.getOwnPropertyNames,h=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,d=Object.getPrototypeOf,p=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(p){var i=d(n);i&&i!==p&&e(t,i,r)}var s=f(n);h&&(s=s.concat(h(n)));for(var a=c(t),g=c(n),m=0;m<s.length;++m){var b=s[m];if(!(o[b]||r&&r[b]||g&&g[b]||a&&a[b])){var v=l(n,b);try{u(t,b,v)}catch(e){}}}}return t}},23644:function(e,t){t.read=function(e,t,n,r,i){var o,s,a=8*i-r-1,c=(1<<a)-1,u=c>>1,f=-7,h=n?i-1:0,l=n?-1:1,d=e[t+h];for(h+=l,o=d&(1<<-f)-1,d>>=-f,f+=a;f>0;o=256*o+e[t+h],h+=l,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=256*s+e[t+h],h+=l,f-=8);if(0===o)o=1-u;else{if(o===c)return s?NaN:1/0*(d?-1:1);s+=Math.pow(2,r),o-=u}return(d?-1:1)*s*Math.pow(2,o-r)},t.write=function(e,t,n,r,i,o){var s,a,c,u=8*o-i-1,f=(1<<u)-1,h=f>>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,p=r?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+h>=1?l/c:l*Math.pow(2,1-h))*c>=2&&(s++,c/=2),s+h>=f?(a=0,s=f):s+h>=1?(a=(t*c-1)*Math.pow(2,i),s+=h):(a=t*Math.pow(2,h-1)*Math.pow(2,i),s=0));i>=8;e[n+d]=255&a,d+=p,a/=256,i-=8);for(s=s<<i|a,u+=i;u>0;e[n+d]=255&s,d+=p,s/=256,u-=8);e[n+d-p]|=128*g}},59503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},24546:function(e){"use strict";e.exports=function(e,t,n,r,i,o,s,a){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,i,o,s,a],f=0;(c=new Error(t.replace(/%s/g,(function(){return u[f++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},98304:function(e,t,n){"use strict";var r=n(77828)(),i=n(16422)("Object.prototype.toString"),o=function(e){return!(r&&e&&"object"==typeof e&&Symbol.toStringTag in e)&&"[object Arguments]"===i(e)},s=function(e){return!!o(e)||null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Array]"!==i(e)&&"[object Function]"===i(e.callee)},a=function(){return o(arguments)}();o.isLegacyArguments=s,e.exports=a?o:s},57372:function(e,t,n){"use strict";var r,i=Object.prototype.toString,o=Function.prototype.toString,s=/^\s*(?:function)?\*/,a=n(77828)(),c=Object.getPrototypeOf;e.exports=function(e){if("function"!=typeof e)return!1;if(s.test(o.call(e)))return!0;if(!a)return"[object GeneratorFunction]"===i.call(e);if(!c)return!1;if(void 0===r){var t=function(){if(!a)return!1;try{return Function("return function*() {}")()}catch(e){}}();r=!!t&&c(t)}return c(e)===r}},46618:function(e){"use strict";e.exports=function(e){return e!=e}},17614:function(e,t,n){"use strict";var r=n(43120),i=n(13185),o=n(46618),s=n(42775),a=n(49582),c=r(s(),Number);i(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},42775:function(e,t,n){"use strict";var r=n(46618);e.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:r}},49582:function(e,t,n){"use strict";var r=n(13185),i=n(42775);e.exports=function(){var e=i();return r(Number,{isNaN:e},{isNaN:function(){return Number.isNaN!==e}}),e}},8639:function(e,t,n){"use strict";var r=n(49478),i=n(87331),o=n(16422),s=o("Object.prototype.toString"),a=n(77828)(),c="undefined"==typeof globalThis?window:globalThis,u=i(),f=o("Array.prototype.indexOf",!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},h=o("String.prototype.slice"),l={},d=n(61787),p=Object.getPrototypeOf;a&&d&&p&&r(u,(function(e){var t=new c[e];if(Symbol.toStringTag in t){var n=p(t),r=d(n,Symbol.toStringTag);if(!r){var i=p(n);r=d(i,Symbol.toStringTag)}l[e]=r.get}}));e.exports=function(e){if(!e||"object"!=typeof e)return!1;if(!a||!(Symbol.toStringTag in e)){var t=h(s(e),8,-1);return f(u,t)>-1}return!!d&&function(e){var t=!1;return r(l,(function(n,r){if(!t)try{t=n.call(e)===r}catch(e){}})),t}(e)}},53956:function(e,t,n){"use strict";var r=n(59503),i=n(39302),o=n(37225).Buffer,s=new Array(16);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function c(e,t){return e<<t|e>>>32-t}function u(e,t,n,r,i,o,s){return c(e+(t&n|~t&r)+i+o|0,s)+t|0}function f(e,t,n,r,i,o,s){return c(e+(t&r|n&~r)+i+o|0,s)+t|0}function h(e,t,n,r,i,o,s){return c(e+(t^n^r)+i+o|0,s)+t|0}function l(e,t,n,r,i,o,s){return c(e+(n^(t|~r))+i+o|0,s)+t|0}r(a,i),a.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,o=this._d;n=u(n,r,i,o,e[0],3614090360,7),o=u(o,n,r,i,e[1],3905402710,12),i=u(i,o,n,r,e[2],606105819,17),r=u(r,i,o,n,e[3],3250441966,22),n=u(n,r,i,o,e[4],4118548399,7),o=u(o,n,r,i,e[5],1200080426,12),i=u(i,o,n,r,e[6],2821735955,17),r=u(r,i,o,n,e[7],4249261313,22),n=u(n,r,i,o,e[8],1770035416,7),o=u(o,n,r,i,e[9],2336552879,12),i=u(i,o,n,r,e[10],4294925233,17),r=u(r,i,o,n,e[11],2304563134,22),n=u(n,r,i,o,e[12],1804603682,7),o=u(o,n,r,i,e[13],4254626195,12),i=u(i,o,n,r,e[14],2792965006,17),n=f(n,r=u(r,i,o,n,e[15],1236535329,22),i,o,e[1],4129170786,5),o=f(o,n,r,i,e[6],3225465664,9),i=f(i,o,n,r,e[11],643717713,14),r=f(r,i,o,n,e[0],3921069994,20),n=f(n,r,i,o,e[5],3593408605,5),o=f(o,n,r,i,e[10],38016083,9),i=f(i,o,n,r,e[15],3634488961,14),r=f(r,i,o,n,e[4],3889429448,20),n=f(n,r,i,o,e[9],568446438,5),o=f(o,n,r,i,e[14],3275163606,9),i=f(i,o,n,r,e[3],4107603335,14),r=f(r,i,o,n,e[8],1163531501,20),n=f(n,r,i,o,e[13],2850285829,5),o=f(o,n,r,i,e[2],4243563512,9),i=f(i,o,n,r,e[7],1735328473,14),n=h(n,r=f(r,i,o,n,e[12],2368359562,20),i,o,e[5],4294588738,4),o=h(o,n,r,i,e[8],2272392833,11),i=h(i,o,n,r,e[11],1839030562,16),r=h(r,i,o,n,e[14],4259657740,23),n=h(n,r,i,o,e[1],2763975236,4),o=h(o,n,r,i,e[4],1272893353,11),i=h(i,o,n,r,e[7],4139469664,16),r=h(r,i,o,n,e[10],3200236656,23),n=h(n,r,i,o,e[13],681279174,4),o=h(o,n,r,i,e[0],3936430074,11),i=h(i,o,n,r,e[3],3572445317,16),r=h(r,i,o,n,e[6],76029189,23),n=h(n,r,i,o,e[9],3654602809,4),o=h(o,n,r,i,e[12],3873151461,11),i=h(i,o,n,r,e[15],530742520,16),n=l(n,r=h(r,i,o,n,e[2],3299628645,23),i,o,e[0],4096336452,6),o=l(o,n,r,i,e[7],1126891415,10),i=l(i,o,n,r,e[14],2878612391,15),r=l(r,i,o,n,e[5],4237533241,21),n=l(n,r,i,o,e[12],1700485571,6),o=l(o,n,r,i,e[3],2399980690,10),i=l(i,o,n,r,e[10],4293915773,15),r=l(r,i,o,n,e[1],2240044497,21),n=l(n,r,i,o,e[8],1873313359,6),o=l(o,n,r,i,e[15],4264355552,10),i=l(i,o,n,r,e[6],2734768916,15),r=l(r,i,o,n,e[13],1309151649,21),n=l(n,r,i,o,e[4],4149444226,6),o=l(o,n,r,i,e[11],3174756917,10),i=l(i,o,n,r,e[2],718787259,15),r=l(r,i,o,n,e[9],3951481745,21),this._a=this._a+n|0,this._b=this._b+r|0,this._c=this._c+i|0,this._d=this._d+o|0},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=o.allocUnsafe(16);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e},e.exports=a},16616:function(e,t,n){var r=n(30910),i=n(71876);function o(e){this.rand=e||new i.Rand}e.exports=o,o.create=function(e){return new o(e)},o.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},o.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},o.prototype.test=function(e,t,n){var i=e.bitLength(),o=r.mont(e),s=new r(1).toRed(o);t||(t=Math.max(1,i/48|0));for(var a=e.subn(1),c=0;!a.testn(c);c++);for(var u=e.shrn(c),f=a.toRed(o);t>0;t--){var h=this._randrange(new r(2),a);n&&n(h);var l=h.toRed(o).redPow(u);if(0!==l.cmp(s)&&0!==l.cmp(f)){for(var d=1;d<c;d++){if(0===(l=l.redSqr()).cmp(s))return!1;if(0===l.cmp(f))break}if(d===c)return!1}}return!0},o.prototype.getDivisor=function(e,t){var n=e.bitLength(),i=r.mont(e),o=new r(1).toRed(i);t||(t=Math.max(1,n/48|0));for(var s=e.subn(1),a=0;!s.testn(a);a++);for(var c=e.shrn(a),u=s.toRed(i);t>0;t--){var f=this._randrange(new r(2),s),h=e.gcd(f);if(0!==h.cmpn(1))return h;var l=f.toRed(i).redPow(c);if(0!==l.cmp(o)&&0!==l.cmp(u)){for(var d=1;d<a;d++){if(0===(l=l.redSqr()).cmp(o))return l.fromRed().subn(1).gcd(e);if(0===l.cmp(u))break}if(d===a)return(l=l.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},78785:function(){},48282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},90458:function(e,t){"use strict";var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),o=i>>8,s=255&i;o?n.push(o,s):n.push(s)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}},32002:function(e){var t=1e3,n=60*t,r=60*n,i=24*r,o=7*i,s=365.25*i;function a(e,t,n,r){var i=t>=1.5*n;return Math.round(e/n)+" "+r+(i?"s":"")}e.exports=function(e,c){c=c||{};var u=typeof e;if("string"===u&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\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(!a)return;var c=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*s;case"weeks":case"week":case"w":return c*o;case"days":case"day":case"d":return c*i;case"hours":case"hour":case"hrs":case"hr":case"h":return c*r;case"minutes":case"minute":case"mins":case"min":case"m":return c*n;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===u&&isFinite(e))return c.long?function(e){var o=Math.abs(e);if(o>=i)return a(e,o,i,"day");if(o>=r)return a(e,o,r,"hour");if(o>=n)return a(e,o,n,"minute");if(o>=t)return a(e,o,t,"second");return e+" ms"}(e):function(e){var o=Math.abs(e);if(o>=i)return Math.round(e/i)+"d";if(o>=r)return Math.round(e/r)+"h";if(o>=n)return Math.round(e/n)+"m";if(o>=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))}},96121:function(e){e.exports=function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function i(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var s,a,c=i(e),u=1;u<arguments.length;u++){for(var f in s=Object(arguments[u]))n.call(s,f)&&(c[f]=s[f]);if(t){a=t(s);for(var h=0;h<a.length;h++)r.call(s,a[h])&&(c[a[h]]=s[a[h]])}}return c}},72335:function(e){"use strict";var t=function(e){return e!=e};e.exports=function(e,n){return 0===e&&0===n?1/e==1/n:e===n||!(!t(e)||!t(n))}},88706:function(e,t,n){"use strict";var r=n(13185),i=n(43120),o=n(72335),s=n(75432),a=n(95894),c=i(s(),Object);r(c,{getPolyfill:s,implementation:o,shim:a}),e.exports=c},75432:function(e,t,n){"use strict";var r=n(72335);e.exports=function(){return"function"==typeof Object.is?Object.is:r}},95894:function(e,t,n){"use strict";var r=n(75432),i=n(13185);e.exports=function(){var e=r();return i(Object,{is:e},{is:function(){return Object.is!==e}}),e}},96128:function(e,t,n){"use strict";var r;if(!Object.keys){var i=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=n(56133),a=Object.prototype.propertyIsEnumerable,c=!a.call({toString:null},"toString"),u=a.call((function(){}),"prototype"),f=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(e){var t=e.constructor;return t&&t.prototype===e},l={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!l["$"+e]&&i.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{h(window[e])}catch(e){return!0}}catch(e){return!0}return!1}();r=function(e){var t=null!==e&&"object"==typeof e,n="[object Function]"===o.call(e),r=s(e),a=t&&"[object String]"===o.call(e),l=[];if(!t&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var p=u&&n;if(a&&e.length>0&&!i.call(e,0))for(var g=0;g<e.length;++g)l.push(String(g));if(r&&e.length>0)for(var m=0;m<e.length;++m)l.push(String(m));else for(var b in e)p&&"prototype"===b||!i.call(e,b)||l.push(String(b));if(c)for(var v=function(e){if("undefined"==typeof window||!d)return h(e);try{return h(e)}catch(e){return!1}}(e),y=0;y<f.length;++y)v&&"constructor"===f[y]||!i.call(e,f[y])||l.push(f[y]);return l}}e.exports=r},98517:function(e,t,n){"use strict";var r=Array.prototype.slice,i=n(56133),o=Object.keys,s=o?function(e){return o(e)}:n(96128),a=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return i(e)?a(r.call(e)):a(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},56133:function(e){"use strict";var t=Object.prototype.toString;e.exports=function(e){var n=t.call(e),r="[object Arguments]"===n;return r||(r="[object Array]"!==n&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&e.length>=0&&"[object Function]"===t.call(e.callee)),r}},82581:function(e,t,n){"use strict";var r=n(8277);t.certificate=n(42103);var i=r.define("RSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())}));t.RSAPrivateKey=i;var o=r.define("RSAPublicKey",(function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())}));t.RSAPublicKey=o;var s=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(a),this.key("subjectPublicKey").bitstr())}));t.PublicKey=s;var a=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())})),c=r.define("PrivateKeyInfo",(function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(a),this.key("subjectPrivateKey").octstr())}));t.PrivateKey=c;var u=r.define("EncryptedPrivateKeyInfo",(function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())}));t.EncryptedPrivateKey=u;var f=r.define("DSAPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())}));t.DSAPrivateKey=f,t.DSAparam=r.define("DSAparam",(function(){this.int()}));var h=r.define("ECPrivateKey",(function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(l),this.key("publicKey").optional().explicit(1).bitstr())}));t.ECPrivateKey=h;var l=r.define("ECParameters",(function(){this.choice({namedCurve:this.objid()})}));t.signature=r.define("signature",(function(){this.seq().obj(this.key("r").int(),this.key("s").int())}))},42103:function(e,t,n){"use strict";var r=n(8277),i=r.define("Time",(function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})})),o=r.define("AttributeTypeValue",(function(){this.seq().obj(this.key("type").objid(),this.key("value").any())})),s=r.define("AlgorithmIdentifier",(function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())})),a=r.define("SubjectPublicKeyInfo",(function(){this.seq().obj(this.key("algorithm").use(s),this.key("subjectPublicKey").bitstr())})),c=r.define("RelativeDistinguishedName",(function(){this.setof(o)})),u=r.define("RDNSequence",(function(){this.seqof(c)})),f=r.define("Name",(function(){this.choice({rdnSequence:this.use(u)})})),h=r.define("Validity",(function(){this.seq().obj(this.key("notBefore").use(i),this.key("notAfter").use(i))})),l=r.define("Extension",(function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())})),d=r.define("TBSCertificate",(function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(s),this.key("issuer").use(f),this.key("validity").use(h),this.key("subject").use(f),this.key("subjectPublicKeyInfo").use(a),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(l).optional())})),p=r.define("X509Certificate",(function(){this.seq().obj(this.key("tbsCertificate").use(d),this.key("signatureAlgorithm").use(s),this.key("signatureValue").bitstr())}));e.exports=p},89987:function(e,t,n){var r=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,i=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,o=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,s=n(51105),a=n(6123),c=n(37225).Buffer;e.exports=function(e,t){var n,u=e.toString(),f=u.match(r);if(f){var h="aes"+f[1],l=c.from(f[2],"hex"),d=c.from(f[3].replace(/[\r\n]/g,""),"base64"),p=s(t,l.slice(0,8),parseInt(f[1],10)).key,g=[],m=a.createDecipheriv(h,p,l);g.push(m.update(d)),g.push(m.final()),n=c.concat(g)}else{var b=u.match(o);n=c.from(b[2].replace(/[\r\n]/g,""),"base64")}return{tag:u.match(i)[1],data:n}}},87758:function(e,t,n){var r=n(82581),i=n(93611),o=n(89987),s=n(6123),a=n(80231),c=n(37225).Buffer;function u(e){var t;"object"!=typeof e||c.isBuffer(e)||(t=e.passphrase,e=e.key),"string"==typeof e&&(e=c.from(e));var n,u,f=o(e,t),h=f.tag,l=f.data;switch(h){case"CERTIFICATE":u=r.certificate.decode(l,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(u||(u=r.PublicKey.decode(l,"der")),n=u.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPublicKey.decode(u.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return u.subjectPrivateKey=u.subjectPublicKey,{type:"ec",data:u};case"1.2.840.10040.4.1":return u.algorithm.params.pub_key=r.DSAparam.decode(u.subjectPublicKey.data,"der"),{type:"dsa",data:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"ENCRYPTED PRIVATE KEY":l=function(e,t){var n=e.algorithm.decrypt.kde.kdeparams.salt,r=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=i[e.algorithm.decrypt.cipher.algo.join(".")],u=e.algorithm.decrypt.cipher.iv,f=e.subjectPrivateKey,h=parseInt(o.split("-")[1],10)/8,l=a.pbkdf2Sync(t,n,r,h,"sha1"),d=s.createDecipheriv(o,l,u),p=[];return p.push(d.update(f)),p.push(d.final()),c.concat(p)}(l=r.EncryptedPrivateKey.decode(l,"der"),t);case"PRIVATE KEY":switch(n=(u=r.PrivateKey.decode(l,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return r.RSAPrivateKey.decode(u.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:u.algorithm.curve,privateKey:r.ECPrivateKey.decode(u.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return u.algorithm.params.priv_key=r.DSAparam.decode(u.subjectPrivateKey,"der"),{type:"dsa",params:u.algorithm.params};default:throw new Error("unknown key id "+n)}case"RSA PUBLIC KEY":return r.RSAPublicKey.decode(l,"der");case"RSA PRIVATE KEY":return r.RSAPrivateKey.decode(l,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:r.DSAPrivateKey.decode(l,"der")};case"EC PRIVATE KEY":return{curve:(l=r.ECPrivateKey.decode(l,"der")).parameters.value,privateKey:l.privateKey};default:throw new Error("unknown key type "+h)}}e.exports=u,u.signature=r.signature},80231:function(e,t,n){t.pbkdf2=n(86443),t.pbkdf2Sync=n(1452)},86443:function(e,t,n){var r,i,o=n(37225).Buffer,s=n(95672),a=n(32042),c=n(1452),u=n(68200),f=window.crypto&&window.crypto.subtle,h={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},l=[];function d(){return i||(i=window.process&&window.process.nextTick?window.process.nextTick:window.queueMicrotask?window.queueMicrotask:window.setImmediate?window.setImmediate:window.setTimeout)}function p(e,t,n,r,i){return f.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]).then((function(e){return f.deriveBits({name:"PBKDF2",salt:t,iterations:n,hash:{name:i}},e,r<<3)})).then((function(e){return o.from(e)}))}e.exports=function(e,t,n,i,g,m){"function"==typeof g&&(m=g,g=void 0);var b=h[(g=g||"sha1").toLowerCase()];if(b&&"function"==typeof window.Promise){if(s(n,i),e=u(e,a,"Password"),t=u(t,a,"Salt"),"function"!=typeof m)throw new Error("No callback provided to pbkdf2");!function(e,t){e.then((function(e){d()((function(){t(null,e)}))}),(function(e){d()((function(){t(e)}))}))}(function(e){if(window.process&&!window.process.browser)return Promise.resolve(!1);if(!f||!f.importKey||!f.deriveBits)return Promise.resolve(!1);if(void 0!==l[e])return l[e];var t=p(r=r||o.alloc(8),r,10,128,e).then((function(){return!0})).catch((function(){return!1}));return l[e]=t,t}(b).then((function(r){return r?p(e,t,n,i,b):c(e,t,n,i,g)})),m)}else d()((function(){var r;try{r=c(e,t,n,i,g)}catch(e){return m(e)}m(null,r)}))}},32042:function(e,t,n){var r,i=n(5806);if(window.process&&window.process.browser)r="utf-8";else if(window.process&&window.process.version){r=parseInt(i.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary"}else r="utf-8";e.exports=r},95672:function(e){var t=Math.pow(2,30)-1;e.exports=function(e,n){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof n)throw new TypeError("Key length not a number");if(n<0||n>t||n!=n)throw new TypeError("Bad key length")}},1452:function(e,t,n){var r=n(51345),i=n(50601),o=n(25636),s=n(37225).Buffer,a=n(95672),c=n(32042),u=n(68200),f=s.alloc(128),h={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function l(e,t,n){var a=function(e){function t(t){return o(e).update(t).digest()}function n(e){return(new i).update(e).digest()}return"rmd160"===e||"ripemd160"===e?n:"md5"===e?r:t}(e),c="sha512"===e||"sha384"===e?128:64;t.length>c?t=a(t):t.length<c&&(t=s.concat([t,f],c));for(var u=s.allocUnsafe(c+h[e]),l=s.allocUnsafe(c+h[e]),d=0;d<c;d++)u[d]=54^t[d],l[d]=92^t[d];var p=s.allocUnsafe(c+n+4);u.copy(p,0,0,c),this.ipad1=p,this.ipad2=u,this.opad=l,this.alg=e,this.blocksize=c,this.hash=a,this.size=h[e]}l.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,n,r,i){a(n,r);var o=new l(i=i||"sha1",e=u(e,c,"Password"),(t=u(t,c,"Salt")).length),f=s.allocUnsafe(r),d=s.allocUnsafe(t.length+4);t.copy(d,0,0,t.length);for(var p=0,g=h[i],m=Math.ceil(r/g),b=1;b<=m;b++){d.writeUInt32BE(b,t.length);for(var v=o.run(d,o.ipad1),y=v,w=1;w<n;w++){y=o.run(y,o.ipad2);for(var _=0;_<g;_++)v[_]^=y[_]}v.copy(f,p),p+=g}return f}},68200:function(e,t,n){var r=n(37225).Buffer;e.exports=function(e,t,n){if(r.isBuffer(e))return e;if("string"==typeof e)return r.from(e,t);if(ArrayBuffer.isView(e))return r.from(e.buffer);throw new TypeError(n+" must be a string, a Buffer, a typed array or a DataView")}},5806:function(e){var t,n,r=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(n){try{return t.call(null,e,0)}catch(n){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{n="function"==typeof clearTimeout?clearTimeout:o}catch(e){n=o}}();var a,c=[],u=!1,f=-1;function h(){u&&a&&(u=!1,a.length?c=a.concat(c):f=-1,c.length&&l())}function l(){if(!u){var e=s(h);u=!0;for(var t=c.length;t;){for(a=c,c=[];++f<t;)a&&a[f].run();f=-1,t=c.length}a=null,u=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===o||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function d(e,t){this.fun=e,this.array=t}function p(){}r.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];c.push(new d(e,t)),1!==c.length||u||s(l)},d.prototype.run=function(){this.fun.apply(null,this.array)},r.title="browser",r.browser=!0,r.env={},r.argv=[],r.version="",r.versions={},r.on=p,r.addListener=p,r.once=p,r.off=p,r.removeListener=p,r.removeAllListeners=p,r.emit=p,r.prependListener=p,r.prependOnceListener=p,r.listeners=function(e){return[]},r.binding=function(e){throw new Error("process.binding is not supported")},r.cwd=function(){return"/"},r.chdir=function(e){throw new Error("process.chdir is not supported")},r.umask=function(){return 0}},9587:function(e,t,n){"use strict";var r=n(45843);function i(){}function o(){}o.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,o,s){if(s!==r){var a=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 a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={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:o,resetWarningCache:i};return n.PropTypes=n,n}},11268:function(e,t,n){e.exports=n(9587)()},45843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},51296:function(e,t,n){t.publicEncrypt=n(75496),t.privateDecrypt=n(42882),t.privateEncrypt=function(e,n){return t.publicEncrypt(e,n,!0)},t.publicDecrypt=function(e,n){return t.privateDecrypt(e,n,!0)}},46598:function(e,t,n){var r=n(77439),i=n(37225).Buffer;function o(e){var t=i.allocUnsafe(4);return t.writeUInt32BE(e,0),t}e.exports=function(e,t){for(var n,s=i.alloc(0),a=0;s.length<t;)n=o(a++),s=i.concat([s,r("sha1").update(e).update(n).digest()]);return s.slice(0,t)}},42882:function(e,t,n){var r=n(87758),i=n(46598),o=n(76245),s=n(30910),a=n(8568),c=n(77439),u=n(65505),f=n(37225).Buffer;e.exports=function(e,t,n){var h;h=e.padding?e.padding:n?1:4;var l,d=r(e),p=d.modulus.byteLength();if(t.length>p||new s(t).cmp(d.modulus)>=0)throw new Error("decryption error");l=n?u(new s(t),d):a(t,d);var g=f.alloc(p-l.length);if(l=f.concat([g,l],p),4===h)return function(e,t){var n=e.modulus.byteLength(),r=c("sha1").update(f.alloc(0)).digest(),s=r.length;if(0!==t[0])throw new Error("decryption error");var a=t.slice(1,s+1),u=t.slice(s+1),h=o(a,i(u,s)),l=o(u,i(h,n-s-1));if(function(e,t){e=f.from(e),t=f.from(t);var n=0,r=e.length;e.length!==t.length&&(n++,r=Math.min(e.length,t.length));var i=-1;for(;++i<r;)n+=e[i]^t[i];return n}(r,l.slice(0,s)))throw new Error("decryption error");var d=s;for(;0===l[d];)d++;if(1!==l[d++])throw new Error("decryption error");return l.slice(d)}(d,l);if(1===h)return function(e,t,n){var r=t.slice(0,2),i=2,o=0;for(;0!==t[i++];)if(i>=t.length){o++;break}var s=t.slice(2,i-1);("0002"!==r.toString("hex")&&!n||"0001"!==r.toString("hex")&&n)&&o++;s.length<8&&o++;if(o)throw new Error("decryption error");return t.slice(i)}(0,l,n);if(3===h)return l;throw new Error("unknown padding")}},75496:function(e,t,n){var r=n(87758),i=n(35175),o=n(77439),s=n(46598),a=n(76245),c=n(30910),u=n(65505),f=n(8568),h=n(37225).Buffer;e.exports=function(e,t,n){var l;l=e.padding?e.padding:n?1:4;var d,p=r(e);if(4===l)d=function(e,t){var n=e.modulus.byteLength(),r=t.length,u=o("sha1").update(h.alloc(0)).digest(),f=u.length,l=2*f;if(r>n-l-2)throw new Error("message too long");var d=h.alloc(n-r-l-2),p=n-f-1,g=i(f),m=a(h.concat([u,d,h.alloc(1,1),t],p),s(g,p)),b=a(g,s(m,f));return new c(h.concat([h.alloc(1),b,m],n))}(p,t);else if(1===l)d=function(e,t,n){var r,o=t.length,s=e.modulus.byteLength();if(o>s-11)throw new Error("message too long");r=n?h.alloc(s-o-3,255):function(e){var t,n=h.allocUnsafe(e),r=0,o=i(2*e),s=0;for(;r<e;)s===o.length&&(o=i(2*e),s=0),(t=o[s++])&&(n[r++]=t);return n}(s-o-3);return new c(h.concat([h.from([0,n?1:2]),r,h.alloc(1),t],s))}(p,t,n);else{if(3!==l)throw new Error("unknown padding");if((d=new c(t)).cmp(p.modulus)>=0)throw new Error("data too long for modulus")}return n?f(d,p):u(d,p)}},65505:function(e,t,n){var r=n(30910),i=n(37225).Buffer;e.exports=function(e,t){return i.from(e.toRed(r.mont(t.modulus)).redPow(new r(t.publicExponent)).fromRed().toArray())}},76245:function(e){e.exports=function(e,t){for(var n=e.length,r=-1;++r<n;)e[r]^=t[r];return e}},35175:function(e,t,n){"use strict";var r=n(5806),i=65536,o=4294967295;var s=n(37225).Buffer,a=window.crypto||window.msCrypto;a&&a.getRandomValues?e.exports=function(e,t){if(e>o)throw new RangeError("requested too many random bytes");var n=s.allocUnsafe(e);if(e>0)if(e>i)for(var c=0;c<e;c+=i)a.getRandomValues(n.slice(c,c+i));else a.getRandomValues(n);if("function"==typeof t)return r.nextTick((function(){t(null,n)}));return n}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}},70460:function(e,t,n){"use strict";var r=n(5806);function i(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var o=n(37225),s=n(35175),a=o.Buffer,c=o.kMaxLength,u=window.crypto||window.msCrypto,f=Math.pow(2,32)-1;function h(e,t){if("number"!=typeof e||e!=e)throw new TypeError("offset must be a number");if(e>f||e<0)throw new TypeError("offset must be a uint32");if(e>c||e>t)throw new RangeError("offset out of range")}function l(e,t,n){if("number"!=typeof e||e!=e)throw new TypeError("size must be a number");if(e>f||e<0)throw new TypeError("size must be a uint32");if(e+t>n||e>c)throw new RangeError("buffer too small")}function d(e,t,n,i){if(r.browser){var o=e.buffer,a=new Uint8Array(o,t,n);return u.getRandomValues(a),i?void r.nextTick((function(){i(null,e)})):e}if(!i)return s(n).copy(e,t),e;s(n,(function(n,r){if(n)return i(n);r.copy(e,t),i(null,e)}))}u&&u.getRandomValues||!r.browser?(t.randomFill=function(e,t,n,r){if(!(a.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');if("function"==typeof t)r=t,t=0,n=e.length;else if("function"==typeof n)r=n,n=e.length-t;else if("function"!=typeof r)throw new TypeError('"cb" argument must be a function');return h(t,e.length),l(n,t,e.length),d(e,t,n,r)},t.randomFillSync=function(e,t,n){void 0===t&&(t=0);if(!(a.isBuffer(e)||e instanceof window.Uint8Array))throw new TypeError('"buf" argument must be a Buffer or Uint8Array');h(t,e.length),void 0===n&&(n=e.length-t);return l(n,t,e.length),d(e,t,n)}):(t.randomFill=i,t.randomFillSync=i)},66462:function(e,t){"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,i=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,s=n?Symbol.for("react.strict_mode"):60108,a=n?Symbol.for("react.profiler"):60114,c=n?Symbol.for("react.provider"):60109,u=n?Symbol.for("react.context"):60110,f=n?Symbol.for("react.async_mode"):60111,h=n?Symbol.for("react.concurrent_mode"):60111,l=n?Symbol.for("react.forward_ref"):60112,d=n?Symbol.for("react.suspense"):60113,p=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,m=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function _(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case f:case h:case o:case a:case s:case d:return e;default:switch(e=e&&e.$$typeof){case u:case l:case m:case g:case c:return e;default:return t}}case i:return t}}}function E(e){return _(e)===h}t.AsyncMode=f,t.ConcurrentMode=h,t.ContextConsumer=u,t.ContextProvider=c,t.Element=r,t.ForwardRef=l,t.Fragment=o,t.Lazy=m,t.Memo=g,t.Portal=i,t.Profiler=a,t.StrictMode=s,t.Suspense=d,t.isAsyncMode=function(e){return E(e)||_(e)===f},t.isConcurrentMode=E,t.isContextConsumer=function(e){return _(e)===u},t.isContextProvider=function(e){return _(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return _(e)===l},t.isFragment=function(e){return _(e)===o},t.isLazy=function(e){return _(e)===m},t.isMemo=function(e){return _(e)===g},t.isPortal=function(e){return _(e)===i},t.isProfiler=function(e){return _(e)===a},t.isStrictMode=function(e){return _(e)===s},t.isSuspense=function(e){return _(e)===d},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===h||e===a||e===s||e===d||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===m||e.$$typeof===g||e.$$typeof===c||e.$$typeof===u||e.$$typeof===l||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=_},80364:function(e,t,n){"use strict";e.exports=n(66462)},33244:function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e,t){return!(0,o.default)(this.props,e)||!(0,o.default)(this.state,t)};var r,i=n(60360),o=(r=i)&&r.__esModule?r:{default:r};e.exports=t.default},21425:function(e,t,n){"use strict";t.__esModule=!0;var r,i=n(33244),o=(r=i)&&r.__esModule?r:{default:r};t.default={shouldComponentUpdate:o.default},e.exports=t.default},60360:function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=Object.prototype.hasOwnProperty.bind(t),o=0;o<n.length;o++)if(!i(n[o])||e[n[o]]!==t[n[o]])return!1;return!0},e.exports=t.default},1992:function(e,t,n){"use strict";n.d(t,{E:function(){return i}});var r=n(99196),i=n.n(r)().createContext(null)},32054:function(e,t,n){"use strict";var r=n(71446),i=n(99196),o=n.n(i),s=n(11268),a=n.n(s),c=n(1992),u=function(e){function t(t){var n;n=e.call(this,t)||this;var r=t.store;return n.state={storeState:r.getState(),store:r},n}(0,r.Z)(t,e);var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this.subscribe()},n.componentWillUnmount=function(){this.unsubscribe&&this.unsubscribe(),this._isMounted=!1},n.componentDidUpdate=function(e){this.props.store!==e.store&&(this.unsubscribe&&this.unsubscribe(),this.subscribe())},n.subscribe=function(){var e=this,t=this.props.store;this.unsubscribe=t.subscribe((function(){var n=t.getState();e._isMounted&&e.setState((function(e){return e.storeState===n?null:{storeState:n}}))}));var n=t.getState();n!==this.state.storeState&&this.setState({storeState:n})},n.render=function(){var e=this.props.context||c.E;return o().createElement(e.Provider,{value:this.state},this.props.children)},t}(i.Component);u.propTypes={store:a().shape({subscribe:a().func.isRequired,dispatch:a().func.isRequired,getState:a().func.isRequired}),context:a().object,children:a().any},t.Z=u},4193:function(e,t,n){"use strict";n.d(t,{Z:function(){return g}});var r=n(25303),i=n(71446),o=n(40988),s=n(5343),a=n(13266),c=n.n(a),u=n(24546),f=n.n(u),h=n(99196),l=n.n(h),d=n(80364),p=n(1992);function g(e,t){void 0===t&&(t={});var n=t,a=n.getDisplayName,u=void 0===a?function(e){return"ConnectAdvanced("+e+")"}:a,g=n.methodName,m=void 0===g?"connectAdvanced":g,b=n.renderCountProp,v=void 0===b?void 0:b,y=n.shouldHandleStateChanges,w=void 0===y||y,_=n.storeKey,E=void 0===_?"store":_,S=n.withRef,k=void 0!==S&&S,M=n.forwardRef,C=void 0!==M&&M,A=n.context,x=void 0===A?p.E:A,I=(0,s.Z)(n,["getDisplayName","methodName","renderCountProp","shouldHandleStateChanges","storeKey","withRef","forwardRef","context"]);f()(void 0===v,"renderCountProp is removed. render counting is built into the latest React dev tools profiling extension"),f()(!k,"withRef is removed. To access the wrapped instance, use a ref on the connected component");var O="To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: <Provider context={MyContext}><ConnectedComponent context={MyContext} /></Provider>. You may also pass a {context : MyContext} option to connect";f()("store"===E,"storeKey has been removed and does not do anything. "+O);var T=x;return function(t){var n=t.displayName||t.name||"Component",s=u(n),a=(0,o.Z)({},I,{getDisplayName:u,methodName:m,renderCountProp:v,shouldHandleStateChanges:w,storeKey:E,displayName:s,wrappedComponentName:n,WrappedComponent:t}),p=I.pure,g=h.Component;p&&(g=h.PureComponent);var b=function(n){function c(t){var i,s,a,c,u,h,d,g,m,b,v;return i=n.call(this,t)||this,f()(C?!t.wrapperProps[E]:!t[E],"Passing redux store in props has been removed and does not do anything. "+O),i.selectDerivedProps=function(t,n,r,i){if(p&&s===n&&a===t)return c;r===u&&h===i||(u=r,h=i,d=e(r.dispatch,i)),s=n,a=t;var o=d(t,n);return c=o},i.selectChildElement=function(e,t,n){return t===g&&n===m&&v===e||(g=t,m=n,v=e,b=l().createElement(e,(0,o.Z)({},t,{ref:n}))),b},i.indirectRenderWrappedComponent=i.indirectRenderWrappedComponent.bind((0,r.Z)(i)),i}(0,i.Z)(c,n);var u=c.prototype;return u.indirectRenderWrappedComponent=function(e){return this.renderWrappedComponent(e)},u.renderWrappedComponent=function(e){f()(e,'Could not find "store" in the context of "'+s+'". Either wrap the root component in a <Provider>, or pass a custom React context provider to <Provider> and the corresponding React context consumer to '+s+" in connect options.");var n,r=e.storeState,i=e.store,o=this.props;C&&(o=this.props.wrapperProps,n=this.props.forwardedRef);var c=this.selectDerivedProps(r,o,i,a);return this.selectChildElement(t,c,n)},u.render=function(){var e=this.props.context&&this.props.context.Consumer&&(0,d.isContextConsumer)(l().createElement(this.props.context.Consumer,null))?this.props.context:T;return l().createElement(e.Consumer,null,this.indirectRenderWrappedComponent)},c}(g);if(b.WrappedComponent=t,b.displayName=s,C){var y=l().forwardRef((function(e,t){return l().createElement(b,{wrapperProps:e,forwardedRef:t})}));return y.displayName=s,y.WrappedComponent=t,c()(y,t)}return c()(b,t)}}},28274:function(e,t,n){"use strict";var r,i,o,s,a,c,u,f,h,l,d,p,g=n(40988),m=n(5343),b=n(4193),v=n(37110),y=n(80214),w=n(26150),_=n(94262),E=n(27189);function S(e,t,n){for(var r=t.length-1;r>=0;r--){var i=t[r](e);if(i)return i}return function(t,r){throw new Error("Invalid value of type "+typeof e+" for "+n+" argument when connecting component "+r.wrappedComponentName+".")}}function k(e,t){return e===t}t.Z=(o=(i=void 0===r?{}:r).connectHOC,s=void 0===o?b.Z:o,a=i.mapStateToPropsFactories,c=void 0===a?w.ZP:a,u=i.mapDispatchToPropsFactories,f=void 0===u?y.ZP:u,h=i.mergePropsFactories,l=void 0===h?_.ZP:h,d=i.selectorFactory,p=void 0===d?E.ZP:d,function(e,t,n,r){void 0===r&&(r={});var i=r,o=i.pure,a=void 0===o||o,u=i.areStatesEqual,h=void 0===u?k:u,d=i.areOwnPropsEqual,b=void 0===d?v.Z:d,y=i.areStatePropsEqual,w=void 0===y?v.Z:y,_=i.areMergedPropsEqual,E=void 0===_?v.Z:_,M=(0,m.Z)(i,["pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual"]),C=S(e,c,"mapStateToProps"),A=S(t,f,"mapDispatchToProps"),x=S(n,l,"mergeProps");return s(p,(0,g.Z)({methodName:"connect",getDisplayName:function(e){return"Connect("+e+")"},shouldHandleStateChanges:Boolean(e),initMapStateToProps:C,initMapDispatchToProps:A,initMergeProps:x,pure:a,areStatesEqual:h,areOwnPropsEqual:b,areStatePropsEqual:w,areMergedPropsEqual:E},M))})},80214:function(e,t,n){"use strict";var r=n(74978),i=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,i.xv)(e,"mapDispatchToProps"):void 0},function(e){return e?void 0:(0,i.dX)((function(e){return{dispatch:e}}))},function(e){return e&&"object"==typeof e?(0,i.dX)((function(t){return(0,r.DE)(e,t)})):void 0}]},26150:function(e,t,n){"use strict";var r=n(68821);t.ZP=[function(e){return"function"==typeof e?(0,r.xv)(e,"mapStateToProps"):void 0},function(e){return e?void 0:(0,r.dX)((function(){return{}}))}]},94262:function(e,t,n){"use strict";var r=n(40988);n(80450);function i(e,t,n){return(0,r.Z)({},n,e,t)}t.ZP=[function(e){return"function"==typeof e?function(e){return function(t,n){n.displayName;var r,i=n.pure,o=n.areMergedPropsEqual,s=!1;return function(t,n,a){var c=e(t,n,a);return s?i&&o(c,r)||(r=c):(s=!0,r=c),r}}}(e):void 0},function(e){return e?void 0:function(){return i}}]},27189:function(e,t,n){"use strict";n.d(t,{ZP:function(){return s}});var r=n(5343);n(51617);function i(e,t,n,r){return function(i,o){return n(e(i,o),t(r,o),o)}}function o(e,t,n,r,i){var o,s,a,c,u,f=i.areStatesEqual,h=i.areOwnPropsEqual,l=i.areStatePropsEqual,d=!1;function p(i,d){var p,g,m=!h(d,s),b=!f(i,o);return o=i,s=d,m&&b?(a=e(o,s),t.dependsOnOwnProps&&(c=t(r,s)),u=n(a,c,s)):m?(e.dependsOnOwnProps&&(a=e(o,s)),t.dependsOnOwnProps&&(c=t(r,s)),u=n(a,c,s)):b?(p=e(o,s),g=!l(p,a),a=p,g&&(u=n(a,c,s)),u):u}return function(i,f){return d?p(i,f):(a=e(o=i,s=f),c=t(r,s),u=n(a,c,s),d=!0,u)}}function s(e,t){var n=t.initMapStateToProps,s=t.initMapDispatchToProps,a=t.initMergeProps,c=(0,r.Z)(t,["initMapStateToProps","initMapDispatchToProps","initMergeProps"]),u=n(e,c),f=s(e,c),h=a(e,c);return(c.pure?o:i)(u,f,h,e,c)}},51617:function(e,t,n){"use strict";n(28477)},68821:function(e,t,n){"use strict";n.d(t,{dX:function(){return r},xv:function(){return o}});n(80450);function r(e){return function(t,n){var r=e(t,n);function i(){return r}return i.dependsOnOwnProps=!1,i}}function i(e){return null!==e.dependsOnOwnProps&&void 0!==e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function o(e,t){return function(t,n){n.displayName;var r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=i(e);var o=r(t,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=i(o),o=r(t,n)),o},r}}},2620:function(e,t,n){"use strict";n.d(t,{zt:function(){return r.Z},$j:function(){return i.Z}});var r=n(32054),i=(n(4193),n(1992),n(28274))},37110:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var r=Object.prototype.hasOwnProperty;function i(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function o(e,t){if(i(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var s=0;s<n.length;s++)if(!r.call(t,n[s])||!i(e[n[s]],t[n[s]]))return!1;return!0}},80450:function(e,t,n){"use strict";n(28477)},28477:function(e,t,n){"use strict";n(55246)},30997:function(e){"use strict";var t={};function n(e,n,r){r||(r=Error);var i=function(e){var t,r;function i(t,r,i){return e.call(this,function(e,t,r){return"string"==typeof n?n:n(e,t,r)}(t,r,i))||this}return r=e,(t=i).prototype=Object.create(r.prototype),t.prototype.constructor=t,t.__proto__=r,i}(r);i.prototype.name=r.name,i.prototype.code=e,t[e]=i}function r(e,t){if(Array.isArray(e)){var n=e.length;return e=e.map((function(e){return String(e)})),n>2?"one of ".concat(t," ").concat(e.slice(0,n-1).join(", "),", or ")+e[n-1]:2===n?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}return"of ".concat(t," ").concat(String(e))}n("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError),n("ERR_INVALID_ARG_TYPE",(function(e,t,n){var i,o,s,a;if("string"==typeof t&&(o="not ",t.substr(!s||s<0?0:+s,o.length)===o)?(i="must not be",t=t.replace(/^not /,"")):i="must be",function(e,t,n){return(void 0===n||n>e.length)&&(n=e.length),e.substring(n-t.length,n)===t}(e," argument"))a="The ".concat(e," ").concat(i," ").concat(r(t,"type"));else{var c=function(e,t,n){return"number"!=typeof n&&(n=0),!(n+t.length>e.length)&&-1!==e.indexOf(t,n)}(e,".")?"property":"argument";a='The "'.concat(e,'" ').concat(c," ").concat(i," ").concat(r(t,"type"))}return a+=". Received type ".concat(typeof n)}),TypeError),n("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),n("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"})),n("ERR_STREAM_PREMATURE_CLOSE","Premature close"),n("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"})),n("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),n("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),n("ERR_STREAM_WRITE_AFTER_END","write after end"),n("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),n("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError),n("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=t},95507:function(e,t,n){"use strict";var r=n(5806),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var o=n(20465),s=n(48607);n(59503)(f,o);for(var a=i(s.prototype),c=0;c<a.length;c++){var u=a[c];f.prototype[u]||(f.prototype[u]=s.prototype[u])}function f(e){if(!(this instanceof f))return new f(e);o.call(this,e),s.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",h)))}function h(){this._writableState.ended||r.nextTick(l,this)}function l(e){e.end()}Object.defineProperty(f.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(f.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(f.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(f.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}})},15385:function(e,t,n){"use strict";e.exports=i;var r=n(1866);function i(e){if(!(this instanceof i))return new i(e);r.call(this,e)}n(59503)(i,r),i.prototype._transform=function(e,t,n){n(null,e)}},20465:function(e,t,n){"use strict";var r,i=n(5806);e.exports=M,M.ReadableState=k;n(2571).EventEmitter;var o=function(e,t){return e.listeners(t).length},s=n(74756),a=n(90778).Buffer,c=window.Uint8Array||function(){};var u,f=n(80677);u=f&&f.debuglog?f.debuglog("stream"):function(){};var h,l,d,p=n(41500),g=n(13537),m=n(71199).getHighWaterMark,b=n(30997).q,v=b.ERR_INVALID_ARG_TYPE,y=b.ERR_STREAM_PUSH_AFTER_EOF,w=b.ERR_METHOD_NOT_IMPLEMENTED,_=b.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;n(59503)(M,s);var E=g.errorOrDestroy,S=["error","close","destroy","pause","resume"];function k(e,t,i){r=r||n(95507),e=e||{},"boolean"!=typeof i&&(i=t instanceof r),this.objectMode=!!e.objectMode,i&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=m(this,e,"readableHighWaterMark",i),this.buffer=new p,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(h||(h=n(3247).s),this.decoder=new h(e.encoding),this.encoding=e.encoding)}function M(e){if(r=r||n(95507),!(this instanceof M))return new M(e);var t=this instanceof r;this._readableState=new k(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),s.call(this)}function C(e,t,n,r,i){u("readableAddChunk",t);var o,s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(u("onEofChunk"),t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,t.sync?O(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,T(e)))}(e,s);else if(i||(o=function(e,t){var n;r=t,a.isBuffer(r)||r instanceof c||"string"==typeof t||void 0===t||e.objectMode||(n=new v("chunk",["string","Buffer","Uint8Array"],t));var r;return n}(s,t)),o)E(e,o);else if(s.objectMode||t&&t.length>0)if("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===a.prototype||(t=function(e){return a.from(e)}(t)),r)s.endEmitted?E(e,new _):A(e,s,t,!0);else if(s.ended)E(e,new y);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!n?(t=s.decoder.write(t),s.objectMode||0!==t.length?A(e,s,t,!1):N(e,s)):A(e,s,t,!1)}else r||(s.reading=!1,N(e,s));return!s.ended&&(s.length<s.highWaterMark||0===s.length)}function A(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(t.awaitDrain=0,e.emit("data",n)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&O(e)),N(e,t)}Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),M.prototype.destroy=g.destroy,M.prototype._undestroy=g.undestroy,M.prototype._destroy=function(e,t){t(e)},M.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=a.from(e,t),t=""),n=!0),C(this,e,t,!1,n)},M.prototype.unshift=function(e){return C(this,e,null,!0,!1)},M.prototype.isPaused=function(){return!1===this._readableState.flowing},M.prototype.setEncoding=function(e){h||(h=n(3247).s);var t=new h(e);this._readableState.decoder=t,this._readableState.encoding=this._readableState.decoder.encoding;for(var r=this._readableState.buffer.head,i="";null!==r;)i+=t.write(r.data),r=r.next;return this._readableState.buffer.clear(),""!==i&&this._readableState.buffer.push(i),this._readableState.length=i.length,this};var x=1073741824;function I(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=x?e=x:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function O(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(u("emitReadable",t.flowing),t.emittedReadable=!0,i.nextTick(T,e))}function T(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended),t.destroyed||!t.length&&!t.ended||(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,B(e)}function N(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(j,e,t))}function j(e,t){for(;!t.reading&&!t.ended&&(t.length<t.highWaterMark||t.flowing&&0===t.length);){var n=t.length;if(u("maybeReadMore read 0"),e.read(0),n===t.length)break}t.readingMore=!1}function z(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function P(e){u("readable nexttick read 0"),e.read(0)}function R(e,t){u("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),B(e),t.flowing&&!t.reading&&e.read(0)}function B(e){var t=e._readableState;for(u("flow",t.flowing);t.flowing&&null!==e.read(););}function L(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):n=t.buffer.consume(e,t.decoder),n);var n}function D(e){var t=e._readableState;u("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,i.nextTick(U,t,e))}function U(e,t){if(u("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var n=t._writableState;(!n||n.autoDestroy&&n.finished)&&t.destroy()}}function F(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}M.prototype.read=function(e){u("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&((0!==t.highWaterMark?t.length>=t.highWaterMark:t.length>0)||t.ended))return u("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?D(this):O(this),null;if(0===(e=I(e,t))&&t.ended)return 0===t.length&&D(this),null;var r,i=t.needReadable;return u("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&u("length less than watermark",i=!0),t.ended||t.reading?u("reading or ended",i=!1):i&&(u("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=I(n,t))),null===(r=e>0?L(e,t):null)?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&D(this)),null!==r&&this.emit("data",r),r},M.prototype._read=function(e){E(this,new w("_read()"))},M.prototype.pipe=function(e,t){var n=this,r=this._readableState;switch(r.pipesCount){case 0:r.pipes=e;break;case 1:r.pipes=[r.pipes,e];break;default:r.pipes.push(e)}r.pipesCount+=1,u("pipe count=%d opts=%j",r.pipesCount,t);var s=(!t||!1!==t.end)&&e!==i.stdout&&e!==i.stderr?c:m;function a(t,i){u("onunpipe"),t===n&&i&&!1===i.hasUnpiped&&(i.hasUnpiped=!0,u("cleanup"),e.removeListener("close",p),e.removeListener("finish",g),e.removeListener("drain",f),e.removeListener("error",d),e.removeListener("unpipe",a),n.removeListener("end",c),n.removeListener("end",m),n.removeListener("data",l),h=!0,!r.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function c(){u("onend"),e.end()}r.endEmitted?i.nextTick(s):n.once("end",s),e.on("unpipe",a);var f=function(e){return function(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&o(e,"data")&&(t.flowing=!0,B(e))}}(n);e.on("drain",f);var h=!1;function l(t){u("ondata");var i=e.write(t);u("dest.write",i),!1===i&&((1===r.pipesCount&&r.pipes===e||r.pipesCount>1&&-1!==F(r.pipes,e))&&!h&&(u("false write response, pause",r.awaitDrain),r.awaitDrain++),n.pause())}function d(t){u("onerror",t),m(),e.removeListener("error",d),0===o(e,"error")&&E(e,t)}function p(){e.removeListener("finish",g),m()}function g(){u("onfinish"),e.removeListener("close",p),m()}function m(){u("unpipe"),n.unpipe(e)}return n.on("data",l),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",d),e.once("close",p),e.once("finish",g),e.emit("pipe",n),r.flowing||(u("pipe resume"),n.resume()),e},M.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes||(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n)),this;if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o<i;o++)r[o].emit("unpipe",this,{hasUnpiped:!1});return this}var s=F(t.pipes,e);return-1===s||(t.pipes.splice(s,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n)),this},M.prototype.on=function(e,t){var n=s.prototype.on.call(this,e,t),r=this._readableState;return"data"===e?(r.readableListening=this.listenerCount("readable")>0,!1!==r.flowing&&this.resume()):"readable"===e&&(r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.flowing=!1,r.emittedReadable=!1,u("on readable",r.length,r.reading),r.length?O(this):r.reading||i.nextTick(P,this))),n},M.prototype.addListener=M.prototype.on,M.prototype.removeListener=function(e,t){var n=s.prototype.removeListener.call(this,e,t);return"readable"===e&&i.nextTick(z,this),n},M.prototype.removeAllListeners=function(e){var t=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==e&&void 0!==e||i.nextTick(z,this),t},M.prototype.resume=function(){var e=this._readableState;return e.flowing||(u("resume"),e.flowing=!e.readableListening,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(R,e,t))}(this,e)),e.paused=!1,this},M.prototype.pause=function(){return u("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(u("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},M.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",(function(){if(u("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)})),e.on("data",(function(i){(u("wrapped data"),n.decoder&&(i=n.decoder.write(i)),n.objectMode&&null==i)||(n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause()))})),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var o=0;o<S.length;o++)e.on(S[o],this.emit.bind(this,S[o]));return this._read=function(t){u("wrapped _read",t),r&&(r=!1,e.resume())},this},"function"==typeof Symbol&&(M.prototype[Symbol.asyncIterator]=function(){return void 0===l&&(l=n(87906)),l(this)}),Object.defineProperty(M.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(M.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(M.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}}),M._fromList=L,Object.defineProperty(M.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(M.from=function(e,t){return void 0===d&&(d=n(67841)),d(M,e,t)})},1866:function(e,t,n){"use strict";e.exports=f;var r=n(30997).q,i=r.ERR_METHOD_NOT_IMPLEMENTED,o=r.ERR_MULTIPLE_CALLBACK,s=r.ERR_TRANSFORM_ALREADY_TRANSFORMING,a=r.ERR_TRANSFORM_WITH_LENGTH_0,c=n(95507);function u(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(null===r)return this.emit("error",new o);n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}function f(e){if(!(this instanceof f))return new f(e);c.call(this,e),this._transformState={afterTransform:u.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",h)}function h(){var e=this;"function"!=typeof this._flush||this._readableState.destroyed?l(this,null,null):this._flush((function(t,n){l(e,t,n)}))}function l(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new a;if(e._transformState.transforming)throw new s;return e.push(null)}n(59503)(f,c),f.prototype.push=function(e,t){return this._transformState.needTransform=!1,c.prototype.push.call(this,e,t)},f.prototype._transform=function(e,t,n){n(new i("_transform()"))},f.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},f.prototype._read=function(e){var t=this._transformState;null===t.writechunk||t.transforming?t.needTransform=!0:(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform))},f.prototype._destroy=function(e,t){c.prototype._destroy.call(this,e,(function(e){t(e)}))}},48607:function(e,t,n){"use strict";var r,i=n(5806);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree.next=e}(t,e)}}e.exports=M,M.WritableState=k;var s={deprecate:n(49231)},a=n(74756),c=n(90778).Buffer,u=window.Uint8Array||function(){};var f,h=n(13537),l=n(71199).getHighWaterMark,d=n(30997).q,p=d.ERR_INVALID_ARG_TYPE,g=d.ERR_METHOD_NOT_IMPLEMENTED,m=d.ERR_MULTIPLE_CALLBACK,b=d.ERR_STREAM_CANNOT_PIPE,v=d.ERR_STREAM_DESTROYED,y=d.ERR_STREAM_NULL_VALUES,w=d.ERR_STREAM_WRITE_AFTER_END,_=d.ERR_UNKNOWN_ENCODING,E=h.errorOrDestroy;function S(){}function k(e,t,s){r=r||n(95507),e=e||{},"boolean"!=typeof s&&(s=t instanceof r),this.objectMode=!!e.objectMode,s&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l(this,e,"writableHighWaterMark",s),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===e.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,o=n.writecb;if("function"!=typeof o)throw new m;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,o){--t.pendingcb,n?(i.nextTick(o,r),i.nextTick(T,e,t),e._writableState.errorEmitted=!0,E(e,r)):(o(r),e._writableState.errorEmitted=!0,E(e,r),T(e,t))}(e,n,r,t,o);else{var s=I(n)||e.destroyed;s||n.corked||n.bufferProcessing||!n.bufferedRequest||x(e,n),r?i.nextTick(A,e,n,s,o):A(e,n,s,o)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function M(e){var t=this instanceof(r=r||n(95507));if(!t&&!f.call(M,this))return new M(e);this._writableState=new k(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),a.call(this)}function C(e,t,n,r,i,o,s){t.writelen=r,t.writecb=s,t.writing=!0,t.sync=!0,t.destroyed?t.onwrite(new v("write")):n?e._writev(i,t.onwrite):e._write(i,o,t.onwrite),t.sync=!1}function A(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),T(e,t)}function x(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),s=t.corkedRequestsFree;s.entry=n;for(var a=0,c=!0;n;)i[a]=n,n.isBuf||(c=!1),n=n.next,a+=1;i.allBuffers=c,C(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,f=n.encoding,h=n.callback;if(C(e,t,!1,t.objectMode?1:u.length,u,f,h),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function I(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function O(e,t){e._final((function(n){t.pendingcb--,n&&E(e,n),t.prefinished=!0,e.emit("prefinish"),T(e,t)}))}function T(e,t){var n=I(t);if(n&&(function(e,t){t.prefinished||t.finalCalled||("function"!=typeof e._final||t.destroyed?(t.prefinished=!0,e.emit("prefinish")):(t.pendingcb++,t.finalCalled=!0,i.nextTick(O,e,t)))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"),t.autoDestroy))){var r=e._readableState;(!r||r.autoDestroy&&r.endEmitted)&&e.destroy()}return n}n(59503)(M,a),k.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(k.prototype,"buffer",{get:s.deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(f=Function.prototype[Symbol.hasInstance],Object.defineProperty(M,Symbol.hasInstance,{value:function(e){return!!f.call(this,e)||this===M&&(e&&e._writableState instanceof k)}})):f=function(e){return e instanceof this},M.prototype.pipe=function(){E(this,new b)},M.prototype.write=function(e,t,n){var r,o=this._writableState,s=!1,a=!o.objectMode&&(r=e,c.isBuffer(r)||r instanceof u);return a&&!c.isBuffer(e)&&(e=function(e){return c.from(e)}(e)),"function"==typeof t&&(n=t,t=null),a?t="buffer":t||(t=o.defaultEncoding),"function"!=typeof n&&(n=S),o.ending?function(e,t){var n=new w;E(e,n),i.nextTick(t,n)}(this,n):(a||function(e,t,n,r){var o;return null===n?o=new y:"string"==typeof n||t.objectMode||(o=new p("chunk",["string","Buffer"],n)),!o||(E(e,o),i.nextTick(r,o),!1)}(this,o,e,n))&&(o.pendingcb++,s=function(e,t,n,r,i,o){if(!n){var s=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=c.from(t,n));return t}(t,r,i);r!==s&&(n=!0,i="buffer",r=s)}var a=t.objectMode?1:r.length;t.length+=a;var u=t.length<t.highWaterMark;u||(t.needDrain=!0);if(t.writing||t.corked){var f=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:o,next:null},f?f.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else C(e,t,!1,a,r,i,o);return u}(this,o,a,e,t,n)),s},M.prototype.cork=function(){this._writableState.corked++},M.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.bufferProcessing||!e.bufferedRequest||x(this,e))},M.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new _(e);return this._writableState.defaultEncoding=e,this},Object.defineProperty(M.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(M.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),M.prototype._write=function(e,t,n){n(new g("_write()"))},M.prototype._writev=null,M.prototype.end=function(e,t,n){var r=this._writableState;return"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!=e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||function(e,t,n){t.ending=!0,T(e,t),n&&(t.finished?i.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n),this},Object.defineProperty(M.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(M.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),M.prototype.destroy=h.destroy,M.prototype._undestroy=h.undestroy,M.prototype._destroy=function(e,t){t(e)}},87906:function(e,t,n){"use strict";var r,i=n(5806);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n(87288),a=Symbol("lastResolve"),c=Symbol("lastReject"),u=Symbol("error"),f=Symbol("ended"),h=Symbol("lastPromise"),l=Symbol("handlePromise"),d=Symbol("stream");function p(e,t){return{value:e,done:t}}function g(e){var t=e[a];if(null!==t){var n=e[d].read();null!==n&&(e[h]=null,e[a]=null,e[c]=null,t(p(n,!1)))}}function m(e){i.nextTick(g,e)}var b=Object.getPrototypeOf((function(){})),v=Object.setPrototypeOf((o(r={get stream(){return this[d]},next:function(){var e=this,t=this[u];if(null!==t)return Promise.reject(t);if(this[f])return Promise.resolve(p(void 0,!0));if(this[d].destroyed)return new Promise((function(t,n){i.nextTick((function(){e[u]?n(e[u]):t(p(void 0,!0))}))}));var n,r=this[h];if(r)n=new Promise(function(e,t){return function(n,r){e.then((function(){t[f]?n(p(void 0,!0)):t[l](n,r)}),r)}}(r,this));else{var o=this[d].read();if(null!==o)return Promise.resolve(p(o,!1));n=new Promise(this[l])}return this[h]=n,n}},Symbol.asyncIterator,(function(){return this})),o(r,"return",(function(){var e=this;return new Promise((function(t,n){e[d].destroy(null,(function(e){e?n(e):t(p(void 0,!0))}))}))})),r),b);e.exports=function(e){var t,n=Object.create(v,(o(t={},d,{value:e,writable:!0}),o(t,a,{value:null,writable:!0}),o(t,c,{value:null,writable:!0}),o(t,u,{value:null,writable:!0}),o(t,f,{value:e._readableState.endEmitted,writable:!0}),o(t,l,{value:function(e,t){var r=n[d].read();r?(n[h]=null,n[a]=null,n[c]=null,e(p(r,!1))):(n[a]=e,n[c]=t)},writable:!0}),t));return n[h]=null,s(e,(function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var t=n[c];return null!==t&&(n[h]=null,n[a]=null,n[c]=null,t(e)),void(n[u]=e)}var r=n[a];null!==r&&(n[h]=null,n[a]=null,n[c]=null,r(p(void 0,!0))),n[f]=!0})),e.on("readable",m.bind(null,n)),n}},41500:function(e,t,n){"use strict";function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var s=n(90778).Buffer,a=n(23833).inspect,c=a&&a.custom||"inspect";e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}var t,n,u;return t=e,n=[{key:"push",value:function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length}},{key:"unshift",value:function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length}},{key:"shift",value:function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n}},{key:"concat",value:function(e){if(0===this.length)return s.alloc(0);for(var t,n,r,i=s.allocUnsafe(e>>>0),o=this.head,a=0;o;)t=o.data,n=i,r=a,s.prototype.copy.call(t,n,r),a+=o.data.length,o=o.next;return i}},{key:"consume",value:function(e,t){var n;return e<this.head.data.length?(n=this.head.data.slice(0,e),this.head.data=this.head.data.slice(e)):n=e===this.head.data.length?this.shift():t?this._getString(e):this._getBuffer(e),n}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(e){var t=this.head,n=1,r=t.data;for(e-=r.length;t=t.next;){var i=t.data,o=e>i.length?i.length:e;if(o===i.length?r+=i:r+=i.slice(0,e),0==(e-=o)){o===i.length?(++n,t.next?this.head=t.next:this.head=this.tail=null):(this.head=t,t.data=i.slice(o));break}++n}return this.length-=n,r}},{key:"_getBuffer",value:function(e){var t=s.allocUnsafe(e),n=this.head,r=1;for(n.data.copy(t),e-=n.data.length;n=n.next;){var i=n.data,o=e>i.length?i.length:e;if(i.copy(t,t.length-e,0,o),0==(e-=o)){o===i.length?(++r,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=i.slice(o));break}++r}return this.length-=r,t}},{key:c,value:function(e,t){return a(this,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t,{depth:0,customInspect:!1}))}}],n&&o(t.prototype,n),u&&o(t,u),e}()},13537:function(e,t,n){"use strict";var r=n(5806);function i(e,t){s(e,t),o(e)}function o(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function s(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return a||c?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,r.nextTick(s,this,e)):r.nextTick(s,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,(function(e){!t&&e?n._writableState?n._writableState.errorEmitted?r.nextTick(o,n):(n._writableState.errorEmitted=!0,r.nextTick(i,n,e)):r.nextTick(i,n,e):t?(r.nextTick(o,n),t(e)):r.nextTick(o,n)})),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var n=e._readableState,r=e._writableState;n&&n.autoDestroy||r&&r.autoDestroy?e.destroy(t):e.emit("error",t)}}},87288:function(e,t,n){"use strict";var r=n(30997).q.ERR_STREAM_PREMATURE_CLOSE;function i(){}e.exports=function e(t,n,o){if("function"==typeof n)return e(t,null,n);n||(n={}),o=function(e){var t=!1;return function(){if(!t){t=!0;for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];e.apply(this,r)}}}(o||i);var s=n.readable||!1!==n.readable&&t.readable,a=n.writable||!1!==n.writable&&t.writable,c=function(){t.writable||f()},u=t._writableState&&t._writableState.finished,f=function(){a=!1,u=!0,s||o.call(t)},h=t._readableState&&t._readableState.endEmitted,l=function(){s=!1,h=!0,a||o.call(t)},d=function(e){o.call(t,e)},p=function(){var e;return s&&!h?(t._readableState&&t._readableState.ended||(e=new r),o.call(t,e)):a&&!u?(t._writableState&&t._writableState.ended||(e=new r),o.call(t,e)):void 0},g=function(){t.req.on("finish",f)};return!function(e){return e.setHeader&&"function"==typeof e.abort}(t)?a&&!t._writableState&&(t.on("end",c),t.on("close",c)):(t.on("complete",f),t.on("abort",p),t.req?g():t.on("request",g)),t.on("end",l),t.on("finish",f),!1!==n.error&&t.on("error",d),t.on("close",p),function(){t.removeListener("complete",f),t.removeListener("abort",p),t.removeListener("request",g),t.req&&t.req.removeListener("finish",f),t.removeListener("end",c),t.removeListener("close",c),t.removeListener("finish",f),t.removeListener("end",l),t.removeListener("error",d),t.removeListener("close",p)}}},67841:function(e){e.exports=function(){throw new Error("Readable.from is not available in the browser")}},60519:function(e,t,n){"use strict";var r;var i=n(30997).q,o=i.ERR_MISSING_ARGS,s=i.ERR_STREAM_DESTROYED;function a(e){if(e)throw e}function c(e,t,i,o){o=function(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}(o);var a=!1;e.on("close",(function(){a=!0})),void 0===r&&(r=n(87288)),r(e,{readable:t,writable:i},(function(e){if(e)return o(e);a=!0,o()}));var c=!1;return function(t){if(!a&&!c)return c=!0,function(e){return e.setHeader&&"function"==typeof e.abort}(e)?e.abort():"function"==typeof e.destroy?e.destroy():void o(t||new s("pipe"))}}function u(e){e()}function f(e,t){return e.pipe(t)}function h(e){return e.length?"function"!=typeof e[e.length-1]?a:e.pop():a}e.exports=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r,i=h(t);if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new o("streams");var s=t.map((function(e,n){var o=n<t.length-1;return c(e,o,n>0,(function(e){r||(r=e),e&&s.forEach(u),o||(s.forEach(u),i(r))}))}));return t.reduce(f)}},71199:function(e,t,n){"use strict";var r=n(30997).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,n,i){var o=function(e,t,n){return null!=e.highWaterMark?e.highWaterMark:t?e[n]:null}(t,i,n);if(null!=o){if(!isFinite(o)||Math.floor(o)!==o||o<0)throw new r(i?n:"highWaterMark",o);return Math.floor(o)}return e.objectMode?16:16384}}},74756:function(e,t,n){e.exports=n(2571).EventEmitter},7130:function(e,t,n){(t=e.exports=n(20465)).Stream=t,t.Readable=t,t.Writable=n(48607),t.Duplex=n(95507),t.Transform=n(1866),t.PassThrough=n(15385),t.finished=n(87288),t.pipeline=n(60519)},53126:function(e,t){"use strict";function n(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(i){return"function"==typeof i?i(n,r,e):t(i)}}}}var r=n();r.withExtraArgument=n,t.Z=r},74978:function(e,t,n){"use strict";n.d(t,{md:function(){return m},DE:function(){return h},UY:function(){return u},qC:function(){return g},MT:function(){return a}});var r=n(13488),i=(n(55246),function(){return Math.random().toString(36).substring(7).split("").join(".")}),o={INIT:"@@redux/INIT"+i(),REPLACE:"@@redux/REPLACE"+i(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+i()}};function s(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function a(e,t,n){var i;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error("Expected the enhancer to be a function.");return n(a)(e,t)}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var c=e,u=t,f=[],h=f,l=!1;function d(){h===f&&(h=f.slice())}function p(){if(l)throw new Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return u}function g(e){if("function"!=typeof e)throw new Error("Expected the listener to be a function.");if(l)throw new Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribelistener for more details.");var t=!0;return d(),h.push(e),function(){if(t){if(l)throw new Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribelistener for more details.");t=!1,d();var n=h.indexOf(e);h.splice(n,1),f=null}}}function m(e){if(!s(e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(l)throw new Error("Reducers may not dispatch actions.");try{l=!0,u=c(u,e)}finally{l=!1}for(var t=f=h,n=0;n<t.length;n++){(0,t[n])()}return e}function b(e){if("function"!=typeof e)throw new Error("Expected the nextReducer to be a function.");c=e,m({type:o.REPLACE})}function v(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(p())}return n(),{unsubscribe:t(n)}}})[r.Z]=function(){return this},e}return m({type:o.INIT}),(i={dispatch:m,subscribe:g,getState:p,replaceReducer:b})[r.Z]=v,i}function c(e,t){var n=t&&t.type;return"Given "+(n&&'action "'+String(n)+'"'||"an action")+', reducer "'+e+'" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.'}function u(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var i=t[r];0,"function"==typeof e[i]&&(n[i]=e[i])}var s,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:o.INIT}))throw new Error('Reducer "'+t+"\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.");if(void 0===n(void 0,{type:o.PROBE_UNKNOWN_ACTION()}))throw new Error('Reducer "'+t+"\" returned undefined when probed with a random type. Don't try to handle "+o.INIT+' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.')}))}(n)}catch(e){s=e}return function(e,t){if(void 0===e&&(e={}),s)throw s;for(var r=!1,i={},o=0;o<a.length;o++){var u=a[o],f=n[u],h=e[u],l=f(h,t);if(void 0===l){var d=c(u,t);throw new Error(d)}i[u]=l,r=r||l!==h}return(r=r||a.length!==Object.keys(e).length)?i:e}}function f(e,t){return function(){return t(e.apply(this,arguments))}}function h(e,t){if("function"==typeof e)return f(e,t);if("object"!=typeof e||null===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');var n={};for(var r in e){var i=e[r];"function"==typeof i&&(n[r]=f(i,t))}return n}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(n,!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function g(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}function m(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},i={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},o=t.map((function(e){return e(i)}));return p({},n,{dispatch:r=g.apply(void 0,o)(n.dispatch)})}}}},50601:function(e,t,n){"use strict";var r=n(90778).Buffer,i=n(59503),o=n(39302),s=new Array(16),a=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],c=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],u=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],f=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],h=[0,1518500249,1859775393,2400959708,2840853838],l=[1352829926,1548603684,1836072691,2053994217,0];function d(){o.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function p(e,t){return e<<t|e>>>32-t}function g(e,t,n,r,i,o,s,a){return p(e+(t^n^r)+o+s|0,a)+i|0}function m(e,t,n,r,i,o,s,a){return p(e+(t&n|~t&r)+o+s|0,a)+i|0}function b(e,t,n,r,i,o,s,a){return p(e+((t|~n)^r)+o+s|0,a)+i|0}function v(e,t,n,r,i,o,s,a){return p(e+(t&r|n&~r)+o+s|0,a)+i|0}function y(e,t,n,r,i,o,s,a){return p(e+(t^(n|~r))+o+s|0,a)+i|0}i(d,o),d.prototype._update=function(){for(var e=s,t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);for(var n=0|this._a,r=0|this._b,i=0|this._c,o=0|this._d,d=0|this._e,w=0|this._a,_=0|this._b,E=0|this._c,S=0|this._d,k=0|this._e,M=0;M<80;M+=1){var C,A;M<16?(C=g(n,r,i,o,d,e[a[M]],h[0],u[M]),A=y(w,_,E,S,k,e[c[M]],l[0],f[M])):M<32?(C=m(n,r,i,o,d,e[a[M]],h[1],u[M]),A=v(w,_,E,S,k,e[c[M]],l[1],f[M])):M<48?(C=b(n,r,i,o,d,e[a[M]],h[2],u[M]),A=b(w,_,E,S,k,e[c[M]],l[2],f[M])):M<64?(C=v(n,r,i,o,d,e[a[M]],h[3],u[M]),A=m(w,_,E,S,k,e[c[M]],l[3],f[M])):(C=y(n,r,i,o,d,e[a[M]],h[4],u[M]),A=g(w,_,E,S,k,e[c[M]],l[4],f[M])),n=d,d=o,o=p(i,10),i=r,r=C,w=k,k=S,S=p(E,10),E=_,_=A}var x=this._b+i+S|0;this._b=this._c+o+k|0,this._c=this._d+d+w|0,this._d=this._e+n+_|0,this._e=this._a+r+E|0,this._a=x},d.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=r.alloc?r.alloc(20):new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=d},37225:function(e,t,n){var r=n(90778),i=r.Buffer;function o(e,t){for(var n in e)t[n]=e[n]}function s(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(o(r,t),t.Buffer=s),s.prototype=Object.create(i.prototype),o(i,s),s.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},s.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},s.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},s.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},82923:function(e,t,n){"use strict";var r,i=n(5806),o=n(90778),s=o.Buffer,a={};for(r in o)o.hasOwnProperty(r)&&"SlowBuffer"!==r&&"Buffer"!==r&&(a[r]=o[r]);var c=a.Buffer={};for(r in s)s.hasOwnProperty(r)&&"allocUnsafe"!==r&&"allocUnsafeSlow"!==r&&(c[r]=s[r]);if(a.Buffer.prototype=s.prototype,c.from&&c.from!==Uint8Array.from||(c.from=function(e,t,n){if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&void 0===e.length)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return s(e,t,n)}),c.alloc||(c.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var r=s(e);return t&&0!==t.length?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r}),!a.kStringMaxLength)try{a.kStringMaxLength=i.binding("buffer").kStringMaxLength}catch(e){}a.constants||(a.constants={MAX_LENGTH:a.kMaxLength},a.kStringMaxLength&&(a.constants.MAX_STRING_LENGTH=a.kStringMaxLength)),e.exports=a},12023:function(e,t,n){var r=n(37225).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,o=e.length,s=this._len,a=0;a<o;){for(var c=s%i,u=Math.min(o-a,i-c),f=0;f<u;f++)n[c+f]=e[a+f];a+=u,(s+=u)%i==0&&this._update(n)}return this._len+=o,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var o=this._hash();return e?o.toString(e):o},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},25636:function(e,t,n){var r=e.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=n(83443),r.sha1=n(32798),r.sha224=n(47803),r.sha256=n(91772),r.sha384=n(43030),r.sha512=n(90566)},83443:function(e,t,n){var r=n(59503),i=n(12023),o=n(37225).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function u(e){return e<<30|e>>>2}function f(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,h=0;h<16;++h)n[h]=e.readInt32BE(4*h);for(;h<80;++h)n[h]=n[h-3]^n[h-8]^n[h-14]^n[h-16];for(var l=0;l<80;++l){var d=~~(l/20),p=0|((t=r)<<5|t>>>27)+f(d,i,o,a)+c+n[l]+s[d];c=a,a=o,o=u(i),i=r,r=p}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},32798:function(e,t,n){var r=n(59503),i=n(12023),o=n(37225).Buffer,s=[1518500249,1859775393,-1894007588,-899497514],a=new Array(80);function c(){this.init(),this._w=a,i.call(this,64,56)}function u(e){return e<<5|e>>>27}function f(e){return e<<30|e>>>2}function h(e,t,n,r){return 0===e?t&n|~t&r:2===e?t&n|t&r|n&r:t^n^r}r(c,i),c.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,l=0;l<16;++l)n[l]=e.readInt32BE(4*l);for(;l<80;++l)n[l]=(t=n[l-3]^n[l-8]^n[l-14]^n[l-16])<<1|t>>>31;for(var d=0;d<80;++d){var p=~~(d/20),g=u(r)+h(p,i,o,a)+c+n[d]+s[p]|0;c=a,a=o,o=f(i),i=r,r=g}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0},c.prototype._hash=function(){var e=o.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},e.exports=c},47803:function(e,t,n){var r=n(59503),i=n(91772),o=n(12023),s=n(37225).Buffer,a=new Array(64);function c(){this.init(),this._w=a,o.call(this,64,56)}r(c,i),c.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},e.exports=c},91772:function(e,t,n){var r=n(59503),i=n(12023),o=n(37225).Buffer,s=[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],a=new Array(64);function c(){this.init(),this._w=a,i.call(this,64,56)}function u(e,t,n){return n^e&(t^n)}function f(e,t,n){return e&t|n&(e|t)}function h(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function l(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function d(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,o=0|this._c,a=0|this._d,c=0|this._e,p=0|this._f,g=0|this._g,m=0|this._h,b=0;b<16;++b)n[b]=e.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((t=n[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[b-7]+d(n[b-15])+n[b-16];for(var v=0;v<64;++v){var y=m+l(c)+u(c,p,g)+s[v]+n[v]|0,w=h(r)+f(r,i,o)|0;m=g,g=p,p=c,c=a+y|0,a=o,o=i,i=r,r=y+w|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=o+this._c|0,this._d=a+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=m+this._h|0},c.prototype._hash=function(){var e=o.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},43030:function(e,t,n){var r=n(59503),i=n(90566),o=n(12023),s=n(37225).Buffer,a=new Array(160);function c(){this.init(),this._w=a,o.call(this,128,112)}r(c,i),c.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},c.prototype._hash=function(){var e=s.allocUnsafe(48);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),e},e.exports=c},90566:function(e,t,n){var r=n(59503),i=n(12023),o=n(37225).Buffer,s=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],a=new Array(160);function c(){this.init(),this._w=a,i.call(this,128,112)}function u(e,t,n){return n^e&(t^n)}function f(e,t,n){return e&t|n&(e|t)}function h(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function l(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function d(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0<t>>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,o=0|this._dh,a=0|this._eh,c=0|this._fh,v=0|this._gh,y=0|this._hh,w=0|this._al,_=0|this._bl,E=0|this._cl,S=0|this._dl,k=0|this._el,M=0|this._fl,C=0|this._gl,A=0|this._hl,x=0;x<32;x+=2)t[x]=e.readInt32BE(4*x),t[x+1]=e.readInt32BE(4*x+4);for(;x<160;x+=2){var I=t[x-30],O=t[x-30+1],T=d(I,O),N=p(O,I),j=g(I=t[x-4],O=t[x-4+1]),z=m(O,I),P=t[x-14],R=t[x-14+1],B=t[x-32],L=t[x-32+1],D=N+R|0,U=T+P+b(D,N)|0;U=(U=U+j+b(D=D+z|0,z)|0)+B+b(D=D+L|0,L)|0,t[x]=U,t[x+1]=D}for(var F=0;F<160;F+=2){U=t[F],D=t[F+1];var H=f(n,r,i),V=f(w,_,E),q=h(n,w),K=h(w,n),$=l(a,k),Z=l(k,a),J=s[F],G=s[F+1],W=u(a,c,v),Y=u(k,M,C),X=A+Z|0,Q=y+$+b(X,A)|0;Q=(Q=(Q=Q+W+b(X=X+Y|0,Y)|0)+J+b(X=X+G|0,G)|0)+U+b(X=X+D|0,D)|0;var ee=K+V|0,te=q+H+b(ee,K)|0;y=v,A=C,v=c,C=M,c=a,M=k,a=o+Q+b(k=S+X|0,S)|0,o=i,S=E,i=r,E=_,r=n,_=w,n=Q+te+b(w=X+ee|0,X)|0}this._al=this._al+w|0,this._bl=this._bl+_|0,this._cl=this._cl+E|0,this._dl=this._dl+S|0,this._el=this._el+k|0,this._fl=this._fl+M|0,this._gl=this._gl+C|0,this._hl=this._hl+A|0,this._ah=this._ah+n+b(this._al,w)|0,this._bh=this._bh+r+b(this._bl,_)|0,this._ch=this._ch+i+b(this._cl,E)|0,this._dh=this._dh+o+b(this._dl,S)|0,this._eh=this._eh+a+b(this._el,k)|0,this._fh=this._fh+c+b(this._fl,M)|0,this._gh=this._gh+v+b(this._gl,C)|0,this._hh=this._hh+y+b(this._hl,A)|0},c.prototype._hash=function(){var e=o.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},81717:function(e,t,n){e.exports=i;var r=n(2571).EventEmitter;function i(){r.call(this)}n(59503)(i,r),i.Readable=n(20465),i.Writable=n(48607),i.Duplex=n(95507),i.Transform=n(1866),i.PassThrough=n(15385),i.finished=n(87288),i.pipeline=n(60519),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function o(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",o),e._isStdio||t&&!1===t.end||(n.on("end",a),n.on("close",c));var s=!1;function a(){s||(s=!0,e.end())}function c(){s||(s=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(f(),0===r.listenerCount(this,"error"))throw e}function f(){n.removeListener("data",i),e.removeListener("drain",o),n.removeListener("end",a),n.removeListener("close",c),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",f),n.removeListener("close",f),e.removeListener("close",f)}return n.on("error",u),e.on("error",u),n.on("end",f),n.on("close",f),e.on("close",f),e.emit("pipe",n),e}},3247:function(e,t,n){"use strict";var r=n(37225).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function o(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=a,t=4;break;case"base64":this.text=f,this.end=h,t=3;break;default:return this.write=l,void(this.end=d)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function s(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function a(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function f(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function h(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function l(e){return e.toString(this.encoding)}function d(e){return e&&e.length?this.write(e):""}t.s=o,o.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},o.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},o.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=s(t[r]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=s(t[r]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=s(t[r]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},o.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},13488:function(e,t,n){"use strict";var r,i=n(32752);e=n.hmd(e),r="undefined"!=typeof self?self:"undefined"!=typeof window||"undefined"!=typeof window?window:e;var o=(0,i.Z)(r);t.Z=o},32752:function(e,t,n){"use strict";function r(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}n.d(t,{Z:function(){return r}})},80816:function(e,t,n){"use strict";var r=n(90922),i=n.n(r),o=n(92819);const s=i()("dops:analytics");let a,c;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const u={initialize:function(e,t,n){u.setUser(e,t),u.setSuperProps(n),u.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){c={ID:e,username:t}},setSuperProps:function(e){a=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);s("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),s('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);s("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),s('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){u.tracks.recordPageView(e),u.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,i,o,s){u.ga.recordPurchase(e,t,n,r,i,o,s)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(a&&(s("- Super Props: %o",a),t=(0,o.assign)(t,a)),s('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):s('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};u.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){u.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){s("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};u.ga.initialized||(c&&(e={userId:"u-"+c.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),u.ga.initialized=!0)},recordPageView:function(e,t){u.ga.initialize(),s("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,n,r){u.ga.initialize();let i="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(i+=" [Option Label: "+n+"]"),void 0!==r&&(i+=" [Option Value: "+r+"]"),s(i),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,i,o,s){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:s}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:i,quantity:o}),window.ga("ecommerce:send")}},identifyUser:function(){c&&window._tkq.push(["identifyUser",c.ID,c.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}};t.Z=u},19570:function(e,t,n){"use strict";var r=n(92819),i=n(96483),o=n(26251);function s(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const a=s("JsonParseError"),c=s("JsonParseAfterRedirectError"),u=s("Api404Error"),f=s("Api404AfterRedirectError"),h=s("FetchNetworkError");const l=new function(e,t){let n=e,s={"X-WP-Nonce":t},a={credentials:"same-origin",headers:s},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},s,{"Content-type":"application/json"})},u=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",r=n.length?n.split("&"):[];return r.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+r.join("&")};const f={setApiRoot(e){n=e},setApiNonce(e){s={"X-WP-Nonce":e},a={credentials:"same-origin",headers:s},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},s,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{u=e},registerSite:(e,t)=>{const r={registration_nonce:e,no_iframe:!0};return(0,o.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,o.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),l(`${n}jetpack/v4/connection/register`,c,{body:JSON.stringify(r)}).then(d).then(p)},fetchAuthorizationUrl:e=>h((0,i.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),a).then(d).then(p),fetchSiteConnectionData:()=>h(`${n}jetpack/v4/connection/data`,a).then(p),fetchSiteConnectionStatus:()=>h(`${n}jetpack/v4/connection`,a).then(p),fetchSiteConnectionTest:()=>h(`${n}jetpack/v4/connection/test`,a).then(d).then(p),fetchUserConnectionData:()=>h(`${n}jetpack/v4/connection/data`,a).then(p),fetchUserTrackingSettings:()=>h(`${n}jetpack/v4/tracking/settings`,a).then(d).then(p),updateUserTrackingSettings:e=>l(`${n}jetpack/v4/tracking/settings`,c,{body:JSON.stringify(e)}).then(d).then(p),disconnectSite:()=>l(`${n}jetpack/v4/connection`,c,{body:JSON.stringify({isActive:!1})}).then(d).then(p),fetchConnectUrl:()=>h(`${n}jetpack/v4/connection/url`,a).then(d).then(p),unlinkUser:()=>l(`${n}jetpack/v4/connection/user`,c,{body:JSON.stringify({linked:!1})}).then(d).then(p),reconnect:()=>l(`${n}jetpack/v4/connection/reconnect`,c).then(d).then(p),fetchConnectedPlugins:()=>h(`${n}jetpack/v4/connection/plugins`,a).then(d).then(p),setHasSeenWCConnectionModal:()=>l(`${n}jetpack/v4/seen-wc-connection-modal`,c).then(d).then(p),fetchModules:()=>h(`${n}jetpack/v4/module/all`,a).then(d).then(p),fetchModule:e=>h(`${n}jetpack/v4/module/${e}`,a).then(d).then(p),activateModule:e=>l(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!0})}).then(d).then(p),deactivateModule:e=>l(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>l(`${n}jetpack/v4/module/${e}`,c,{body:JSON.stringify(t)}).then(d).then(p),updateSettings:e=>l(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(d).then(p),getProtectCount:()=>h(`${n}jetpack/v4/module/protect/data`,a).then(d).then(p),resetOptions:e=>l(`${n}jetpack/v4/options/${e}`,c,{body:JSON.stringify({reset:!0})}).then(d).then(p),activateVaultPress:()=>l(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(d).then(p),getVaultPressData:()=>h(`${n}jetpack/v4/module/vaultpress/data`,a).then(d).then(p),installPlugin:(e,t)=>{const r={slug:e,status:"active"};return t&&(r.source=t),l(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify(r)}).then(d).then(p)},activateAkismet:()=>l(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(d).then(p),getAkismetData:()=>h(`${n}jetpack/v4/module/akismet/data`,a).then(d).then(p),checkAkismetKey:()=>h(`${n}jetpack/v4/module/akismet/key/check`,a).then(d).then(p),checkAkismetKeyTyped:e=>l(`${n}jetpack/v4/module/akismet/key/check`,c,{body:JSON.stringify({api_key:e})}).then(d).then(p),fetchStatsData:e=>h(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),a).then(d).then(p).then(g),getPluginUpdates:()=>h(`${n}jetpack/v4/updates/plugins`,a).then(d).then(p),getPlans:()=>h(`${n}jetpack/v4/plans`,a).then(d).then(p),fetchSettings:()=>h(`${n}jetpack/v4/settings`,a).then(d).then(p),updateSetting:e=>l(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(d).then(p),fetchSiteData:()=>h(`${n}jetpack/v4/site`,a).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>h(`${n}jetpack/v4/site/features`,a).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>h(`${n}jetpack/v4/site/products`,a).then(d).then(p),fetchSitePurchases:()=>h(`${n}jetpack/v4/site/purchases`,a).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>h(`${n}jetpack/v4/site/benefits`,a).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>h(`${n}jetpack/v4/setup/questionnaire`,a).then(d).then(p),fetchRecommendationsData:()=>h(`${n}jetpack/v4/recommendations/data`,a).then(d).then(p),fetchRecommendationsProductSuggestions:()=>h(`${n}jetpack/v4/recommendations/product-suggestions`,a).then(d).then(p),fetchRecommendationsUpsell:()=>h(`${n}jetpack/v4/recommendations/upsell`,a).then(d).then(p),saveRecommendationsData:e=>l(`${n}jetpack/v4/recommendations/data`,c,{body:JSON.stringify({data:e})}).then(d),fetchProducts:()=>h(`${n}jetpack/v4/products`,a).then(d).then(p),fetchRewindStatus:()=>h(`${n}jetpack/v4/rewind`,a).then(d).then(p).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>h(`${n}jetpack/v4/scan`,a).then(d).then(p).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>l(`${n}jetpack/v4/notice/${e}`,c,{body:JSON.stringify({dismissed:!0})}).then(d).then(p),fetchPluginsData:()=>h(`${n}jetpack/v4/plugins`,a).then(d).then(p),fetchVerifySiteGoogleStatus:e=>h(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,a).then(d).then(p),verifySiteGoogle:e=>l(`${n}jetpack/v4/verify-site/google`,c,{body:JSON.stringify({keyring_id:e})}).then(d).then(p),sendMobileLoginEmail:()=>l(`${n}jetpack/v4/mobile/send-login-email`,c).then(d).then(p),submitSurvey:e=>l(`${n}jetpack/v4/marketing/survey`,c,{body:JSON.stringify(e)}).then(d).then(p),saveSetupQuestionnaire:e=>l(`${n}jetpack/v4/setup/questionnaire`,c,{body:JSON.stringify(e)}).then(d).then(p),updateLicensingError:e=>l(`${n}jetpack/v4/licensing/error`,c,{body:JSON.stringify(e)}).then(d).then(p),updateLicenseKey:e=>l(`${n}jetpack/v4/licensing/set-license`,c,{body:JSON.stringify({license:e})}).then(d).then(p),getUserLicensesCounts:()=>h(`${n}jetpack/v4/licensing/user/counts`,a).then(d).then(p),updateLicensingActivationNoticeDismiss:e=>l(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,c,{body:JSON.stringify({last_detached_count:e})}).then(d).then(p),updateRecommendationsStep:e=>l(`${n}jetpack/v4/recommendations/step`,c,{body:JSON.stringify({step:e})}).then(d),confirmIDCSafeMode:()=>l(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,c).then(d),startIDCFresh:e=>l(`${n}jetpack/v4/identity-crisis/start-fresh`,c,{body:JSON.stringify({redirect_uri:e})}).then(d).then(p),migrateIDC:()=>l(`${n}jetpack/v4/identity-crisis/migrate`,c).then(d),attachLicenses:e=>l(`${n}jetpack/v4/licensing/attach-licenses`,c,{body:JSON.stringify({licenses:e})}).then(d).then(p),fetchSearchPlanInfo:()=>h(`${n}jetpack/v4/search/plan`,a).then(d).then(p),fetchSearchSettings:()=>h(`${n}jetpack/v4/search/settings`,a).then(d).then(p),updateSearchSettings:e=>l(`${n}jetpack/v4/search/settings`,c,{body:JSON.stringify(e)}).then(d).then(p)};function h(e,t){return fetch(u(e),t)}function l(e,t,n){return fetch(e,(0,r.assign)({},t,n)).catch(m)}function g(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,r.assign)(this,f)};function d(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new f(e.redirected):new u})):e.json().catch((e=>g(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function p(e){return e.json().catch((t=>g(t,e.redirected,e.url)))}function g(e,t,n){throw t?new c(n):new a}function m(){throw new h}t.ZP=l},31824:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),o=n(99196),s=n.n(o),a=n(89105),c=n.n(a),u=n(65736),f=n(11268),h=n.n(f);const __=u.__,l=e=>{const{title:t,height:n,className:r,...o}=e;return s().createElement("svg",i()({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:n,className:c()("jp-automattic-byline-logo",r)},o),s().createElement("title",{id:"jp-automattic-byline-logo-title"},t),s().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"}),s().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"}),s().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"}))};l.defaultProps={title:__("An Automattic Airline","jetpack"),height:7,className:""},l.propTypes={title:h().string,height:h().number,className:h().string},t.Z=l},97967:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),o=n(99196),s=n.n(o),a=n(65736),c=n(89105),u=n.n(c),f=n(11268),h=n.n(f),l=n(31824),d=(n(78785),n(81546));const __=a.__,p=e=>{const{a8cLogoHref:t,moduleName:n,className:r,...o}=e;return s().createElement("div",i()({className:u()("jp-dashboard-footer",r)},o),s().createElement("div",{className:"jp-dashboard-footer__footer-left"},s().createElement(d.Z,{logoColor:"#000",showText:!1,height:16,className:"jp-dashboard-footer__jetpack-symbol","aria-label":__("Jetpack logo","jetpack")}),s().createElement("span",{className:"jp-dashboard-footer__module-name"},n)),s().createElement("div",{className:"jp-dashboard-footer__footer-right"},s().createElement("a",{href:t,"aria-label":__("An Automattic Airline","jetpack")},s().createElement(l.Z,null))))};p.defaultProps={a8cLogoHref:"https://jetpack.com",moduleName:__("Jetpack","jetpack"),className:""},p.propTypes={a8cLogoHref:h().string,moduleName:h().string,className:h().string},t.Z=p},81546:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),o=n(27538),s=n.n(o),a=n(11268),c=n.n(a),u=n(99196),f=n.n(u),h=n(89105),l=n.n(h),d=n(65736);const __=d.__;class p extends f().Component{render(){const{logoColor:e,showText:t,className:n,...r}=this.props,o=t?"0 0 118 32":"0 0 32 32";return f().createElement("svg",i()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:o,className:l()("jetpack-logo",n),"aria-labelledby":"jetpack-logo-title"},r),f().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack")),f().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&&f().createElement(u.Fragment,null,f().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"}),f().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"}),f().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"}),f().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"}),f().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"}),f().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"}),f().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"})))}}s()(p,"propTypes",{className:c().string,width:c().number,height:c().number,showText:c().bool,logoColor:c().string}),s()(p,"defaultProps",{className:"",height:32,showText:!0,logoColor:"#069e08"}),t.Z=p},71415:function(e,t,n){"use strict";function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let r;if("undefined"!=typeof window&&(r=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),r&&(n.calypso_env=r);const i=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+i}n.d(t,{Z:function(){return r}})},26251:function(e,t,n){var r=n(55246);let i={};try{i=n(92787)}catch{r.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),i={missingConfig:!0}}const o=e=>i.hasOwnProperty(e);e.exports={jetpackConfigHas:o,jetpackConfigGet:e=>{if(!o(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 i[e]}}},9913:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(89105),f=n.n(u),h=n(92819);class l extends c().Component{render(){const e=this.props.href?"a":"button",{primary:t,compact:n,scary:r,borderless:i,className:o,...s}=this.props,a=f()({"dops-button":!0,"is-compact":n,"is-primary":t,"is-scary":r,"is-borderless":i});return s.className=f()(o,a),c().createElement(e,s,this.props.children)}}i()(l,"displayName","Button"),i()(l,"propTypes",{disabled:s().bool,compact:s().bool,primary:s().bool,scary:s().bool,type:s().string,href:s().string,onClick:s().func,borderless:s().bool,className:s().string}),i()(l,"defaultProps",{disabled:!1,type:"button",onClick:h.noop,borderless:!1})},60742:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(89105),f=n.n(u),h=n(92819),l=n(22256);class d extends c().Component{constructor(){super(...arguments),i()(this,"_renderWithTitle",(()=>{const e="dops-card-section-orient-"+(this.props.vertical?"vertical":"horizontal");return c().createElement("div",{className:e},c().createElement("h4",{ref:"label",className:"dops-card-section-label"},this.props.title),c().createElement("div",{ref:"content",className:"dops-card-section-content"},this.props.children))}))}render(){return c().createElement("div",{className:f()("dops-card-section",this.props.className),style:this.props.style},this.props.title?this._renderWithTitle():this.props.children)}}i()(d,"propTypes",{title:s().any,vertical:s().any,style:s().object,className:s().string,device:s().oneOf(["desktop","tablet","phone"])}),i()(d,"defaultProps",{vertical:null});class p extends c().Component{render(){return c().createElement("div",{className:"dops-card-footer"},this.props.children)}}class g extends c().Component{constructor(){super(...arguments),i()(this,"_renderIcon",(()=>c().createElement("span",{className:"dops-card-icon",style:{color:this.props.iconColor}},this.props.icon&&c().createElement(l.Z,{icon:this.props.icon,style:{backgroundColor:this.props.iconColor}}),this.props.iconLabel)))}render(){const e=f()("dops-card",this.props.className,{"is-card-link":!!this.props.href,"is-compact":this.props.compact}),t=["compact","tagName","meta","iconColor"];let n,r;return this.props.href?n=c().createElement(l.Z,{className:"dops-card__link-indicator",icon:this.props.target?"external":"chevron-right"}):t.push("href","target"),this.props.title&&(r=c().createElement("h2",{className:"dops-card-title"},this.props.title,this.props.meta&&c().createElement("span",{className:"dops-card-meta"},this.props.meta),(this.props.icon||this.props.iconLabel)&&this._renderIcon())),c().createElement(this.props.href?"a":this.props.tagName,(0,h.assign)((0,h.omit)(this.props,t),{className:e}),n,r,this.props.children)}}i()(g,"propTypes",{meta:s().any,icon:s().string,iconLabel:s().any,iconColor:s().string,style:s().object,className:s().string,href:s().string,onClick:s().func,title:s().string,tagName:s().string,target:s().string,compact:s().bool,children:s().node}),i()(g,"defaultProps",{iconColor:"#787878",className:"",tagName:"div",onClick:()=>{}}),g.Section=d,g.Footer=p,t.Z=g},27219:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n(2620),u=n(92819),f=n(88872),h=n(41147);class l extends a.Component{UNSAFE_componentWillMount(){this.props.isFetchingSiteData||this.props.isOfflineMode||!(0,u.isEmpty)(this.props.sitePlan)||(this.props.fetchSiteData(),this.props.fetchSiteFeatures(),this.props.fetchAvailablePlans(),this.props.fetchSitePurchases())}render(){return null}}i()(l,"propTypes",{isFetchingSiteData:s().bool,isOfflineMode:s().bool,sitePlan:s().object}),i()(l,"defaultProps",{isFetchingSiteData:!1,isOfflineMode:!1,sitePlan:{}}),t.Z=(0,c.$j)((e=>({isFetchingSiteData:(0,f._5)(e),isOfflineMode:(0,h.Ex)(e),sitePlan:(0,f.UL)(e)})),(e=>({fetchSiteData:()=>e((0,f.tO)()),fetchSiteFeatures:()=>e((0,f.ij)()),fetchAvailablePlans:()=>e((0,f.lA)()),fetchSitePurchases:()=>e((0,f.Z_)())})))(l)},68961:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),o=n(99196),s=n.n(o),a=n(7767),c=n.n(a),u=n(21425),f=n.n(u),h=n(89105),l=n.n(h),d=n(92819),p=n(22256);t.Z=c()({displayName:"ExternalLink",mixins:[f()],propTypes:{className:i().string,href:i().string,onClick:i().func,icon:i().bool,iconSize:i().number},getDefaultProps:()=>({iconSize:18}),render(){const e=l()("dops-external-link",this.props.className,{"has-icon":!!this.props.icon}),t=(0,d.assign)({},(0,d.omit)(this.props,"icon","iconSize"),{className:e,rel:"external"});return s().createElement("a",t,this.props.children,this.props.icon?s().createElement(p.Z,{icon:"external",size:this.props.iconSize}):null)}})},94069:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(29183),i=n.n(r),o=n(27538),s=n.n(o),a=n(99196),c=n.n(a),u=n(89105),f=n.n(u),h=n(92819),l=n(56357);class d extends c().Component{render(){return c().createElement(l.Z,i()({},(0,h.omit)(this.props,"className"),{className:f()(this.props.className,"is-compact")}),this.props.children)}}s()(d,"displayName","CompactFormToggle")},56357:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(89105),f=n.n(u),h=n(40515);class l extends a.Component{constructor(){super(...arguments),i()(this,"state",{showPopover:!1}),i()(this,"togglePopover",(()=>{this.setState({showPopover:!this.state.showPopover})})),i()(this,"_onPopoverClose",(()=>{this.setState({showPopover:!1})})),i()(this,"renderPopover",(()=>c().createElement(h.Z,{isVisible:this.state.showPopover,context:this.refs&&this.refs.toggleSwitch,position:this.props.disabledPopoverPosition,onClose:this._onPopoverClose,className:"dops-info-popover__tooltip"},this.props.disabledReason))),this.onKeyDown=this.onKeyDown.bind(this),this.onClick=this.onClick.bind(this),this.onLabelClick=this.onLabelClick.bind(this)}UNSAFE_componentWillMount(){this.id=this.constructor.idNum++}onKeyDown(e){this.props.disabled||("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),this.props.onChange()),this.props.onKeyDown(e))}onClick(){this.props.disabled?this.props.disabledReason&&this.togglePopover():this.props.onChange()}onLabelClick(e){if(this.props.disabled)return;const t=e.target.nodeName.toLowerCase();"a"!==t&&"input"!==t&&"select"!==t&&(e.preventDefault(),this.props.onChange())}render(){const e=this.props.id||"toggle-"+this.id,t=f()("form-toggle",this.props.className,{"is-toggling":this.props.toggling});return c().createElement("span",null,c().createElement("input",{className:t,type:"checkbox",checked:this.props.checked,readOnly:!0,disabled:this.props.disabled}),c().createElement("label",{className:"form-toggle__label",htmlFor:e},c().createElement("span",{className:"form-toggle__switch",disabled:this.props.disabled,id:e,onClick:this.onClick,onKeyDown:this.onKeyDown,role:"checkbox","aria-checked":this.props.checked,"aria-label":this.props["aria-label"],tabIndex:this.props.disabled?-1:0,ref:"toggleSwitch"}),c().createElement("span",{className:"form-toggle__label-content",onClick:this.onLabelClick},this.props.children)),this.renderPopover())}}i()(l,"propTypes",{onChange:s().func,onKeyDown:s().func,checked:s().bool,disabled:s().bool,id:s().string,className:s().string,toggling:s().bool,"aria-label":s().string,children:s().node,disabledReason:s().node}),i()(l,"defaultProps",{checked:!1,disabled:!1,onKeyDown:()=>{},onChange:()=>{},disabledPopoverPosition:"bottom",disabledReason:""}),i()(l,"idNum",0)},87137:function(e,t,n){"use strict";n.d(t,{o:function(){return r},m:function(){return i}});const r="NEW_NOTICE",i="REMOVE_NOTICE"},21094:function(e,t,n){"use strict";n.d(t,{qq:function(){return o},iI:function(){return s}});var r=n(92819),i=n(87137);function o(e){return{noticeId:e,type:i.m}}function s(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const o={noticeId:n.id||(0,r.uniqueId)(),duration:n.duration,showDismiss:"boolean"!=typeof n.showDismiss||n.showDismiss,isPersistent:n.isPersistent||!1,displayOnNextPage:n.displayOnNextPage||!1,status:e,text:t};return{type:i.o,notice:o}}s.bind(null,"is-success"),s.bind(null,"is-error"),s.bind(null,"is-info"),s.bind(null,"is-warning")},31008:function(e,t,n){"use strict";n.d(t,{x:function(){return o}});var r=n(74978),i=n(87137);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.o:return[t.notice,...e];case i.m:return e.filter((e=>e.noticeId!==t.noticeId))}return e}(0,r.UY)({globalNotices:o})},22256:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),o=n(99196),s=n.n(o),a=n(21425),c=n.n(a),u=n(89105),f=n.n(u),h=n(7767);const l=n.n(h)()({displayName:"Gridicon",mixins:[c()],getDefaultProps:function(){return{className:"",size:24}},propTypes:{icon:i().string.isRequired,size:i().number,onClick:i().func,className:i().string},needsOffset:function(e,t){return["gridicons-add-outline","gridicons-add","gridicons-align-image-center","gridicons-align-image-left","gridicons-align-image-none","gridicons-align-image-right","gridicons-attachment","gridicons-backspace","gridicons-bold","gridicons-bookmark-outline","gridicons-bookmark","gridicons-calendar","gridicons-cart","gridicons-create","gridicons-custom-post-type","gridicons-external","gridicons-folder","gridicons-heading","gridicons-help-outline","gridicons-help","gridicons-history","gridicons-info-outline","gridicons-info","gridicons-italic","gridicons-layout-blocks","gridicons-link-break","gridicons-link","gridicons-list-checkmark","gridicons-list-ordered","gridicons-list-unordered","gridicons-menus","gridicons-minus","gridicons-my-sites","gridicons-notice-outline","gridicons-notice","gridicons-plans","gridicons-plus-small","gridicons-plus","gridicons-popout","gridicons-posts","gridicons-scheduled","gridicons-share-ios","gridicons-star-outline","gridicons-star","gridicons-stats","gridicons-status","gridicons-thumbs-up","gridicons-textcolor","gridicons-time","gridicons-trophy","gridicons-user-circle"].indexOf(e)>=0&&t%18==0},needsOffsetX:function(e,t){return["gridicons-arrow-down","gridicons-arrow-up","gridicons-comment","gridicons-clear-formatting","gridicons-flag","gridicons-menu","gridicons-reader","gridicons-strikethrough"].indexOf(e)>=0&&t%18==0},needsOffsetY:function(e,t){return["gridicons-align-center","gridicons-align-justify","gridicons-align-left","gridicons-align-right","gridicons-arrow-left","gridicons-arrow-right","gridicons-house","gridicons-indent-left","gridicons-indent-right","gridicons-minus-small","gridicons-print","gridicons-sign-out","gridicons-stats-alt","gridicons-trash","gridicons-underline","gridicons-video-camera"].indexOf(e)>=0&&t%18==0},render:function(){const e="gridicons-"+this.props.icon,t=this.needsOffset(e,this.props.size),n=this.needsOffsetX(e,this.props.size),r=this.needsOffsetY(e,this.props.size),i=f()("gridicon",e,this.props.className,{"needs-offset":t,"needs-offset-x":n,"needs-offset-y":r});let o;switch(e){default:o=s().createElement("svg",{height:this.props.size,width:this.props.size});break;case"gridicons-add-image":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M23 4v2h-3v3h-2V6h-3V4h3V1h2v3h3zm-8.5 7c.828 0 1.5-.672 1.5-1.5S15.328 8 14.5 8 13 8.672 13 9.5s.672 1.5 1.5 1.5zm3.5 3.234l-.513-.57c-.794-.885-2.18-.885-2.976 0l-.655.73L9 9l-3 3.333V6h7V4H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2v-7h-2v3.234z"})));break;case"gridicons-add-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 9h-4V7h-2v4H7v2h4v4h2v-4h4v-2z"})));break;case"gridicons-add":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"})));break;case"gridicons-align-center":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 19h16v-2H4v2zm13-6H7v2h10v-2zM4 9v2h16V9H4zm13-4H7v2h10V5z"})));break;case"gridicons-align-image-center":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm5-4h8V9H8v6z"})));break;case"gridicons-align-image-left":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M3 5h18v2H3V5zm0 14h18v-2H3v2zm0-4h8V9H3v6zm10 0h8v-2h-8v2zm0-4h8V9h-8v2z"})));break;case"gridicons-align-image-none":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zM11 9H3v6h8V9z"})));break;case"gridicons-align-image-right":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 7H3V5h18v2zm0 10H3v2h18v-2zm0-8h-8v6h8V9zm-10 4H3v2h8v-2zm0-4H3v2h8V9z"})));break;case"gridicons-align-justify":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 19h16v-2H4v2zm16-6H4v2h16v-2zM4 9v2h16V9H4zm16-4H4v2h16V5z"})));break;case"gridicons-align-left":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 19h16v-2H4v2zm10-6H4v2h10v-2zM4 9v2h16V9H4zm10-4H4v2h10V5z"})));break;case"gridicons-align-right":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 17H4v2h16v-2zm-10-2h10v-2H10v2zM4 9v2h16V9H4zm6-2h10V5H10v2z"})));break;case"gridicons-arrow-down":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M11 4v12.17l-5.59-5.59L4 12l8 8 8-8-1.41-1.41L13 16.17V4h-2z"})));break;case"gridicons-arrow-left":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"})));break;case"gridicons-arrow-right":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"})));break;case"gridicons-arrow-up":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M13 20V7.83l5.59 5.59L20 12l-8-8-8 8 1.41 1.41L11 7.83V20h2z"})));break;case"gridicons-aside":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M14 20l6-6V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h8zM6 6h12v6h-4c-1.105 0-2 .895-2 2v4H6V6zm10 4H8V8h8v2z"})));break;case"gridicons-attachment":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M14 1c-2.762 0-5 2.238-5 5v10c0 1.657 1.343 3 3 3s2.99-1.343 2.99-3V6H13v10c0 .553-.447 1-1 1-.553 0-1-.447-1-1V6c0-1.657 1.343-3 3-3s3 1.343 3 3v10.125C17 18.887 14.762 21 12 21s-5-2.238-5-5v-5H5v5c0 3.866 3.134 7 7 7s6.99-3.134 6.99-7V6c0-2.762-2.228-5-4.99-5z"})));break;case"gridicons-audio":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-backspace":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 7H8l-5 5 5 5h11c1.104 0 2-.896 2-2V9c0-1.104-.896-2-2-2zm-.647 6.646l-.707.707L16 12.707l-1.647 1.647-.707-.707L15.293 12l-1.647-1.646.707-.707L16 11.293l1.646-1.647.707.707L16.707 12l1.646 1.646z"})));break;case"gridicons-bell":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6.14 14.97l2.828 2.827c-.362.362-.862.586-1.414.586-1.105 0-2-.895-2-2 0-.552.224-1.052.586-1.414zm8.867 5.324L14.3 21 3 9.7l.706-.707 1.102.157c.754.108 1.69-.122 2.077-.51l3.885-3.884c2.34-2.34 6.135-2.34 8.475 0s2.34 6.135 0 8.475l-3.885 3.886c-.388.388-.618 1.323-.51 2.077l.157 1.1z"})));break;case"gridicons-block":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-bold":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M7 5.01h4.547c2.126 0 3.67.302 4.632.906.96.605 1.44 1.567 1.44 2.887 0 .896-.21 1.63-.63 2.205-.42.574-.98.92-1.678 1.036v.103c.95.212 1.637.608 2.057 1.19.42.58.63 1.35.63 2.315 0 1.367-.494 2.434-1.482 3.2-.99.765-2.332 1.148-4.027 1.148H7V5.01zm3 5.936h2.027c.862 0 1.486-.133 1.872-.4.386-.267.578-.708.578-1.323 0-.574-.21-.986-.63-1.236-.42-.25-1.087-.374-1.996-.374H10v3.333zm0 2.523v3.905h2.253c.876 0 1.52-.167 1.94-.502.416-.335.625-.848.625-1.54 0-1.243-.89-1.864-2.668-1.864H10z"})));break;case"gridicons-book":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 3h2v18H4zM18 3H7v18h11c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 6h-6V8h6v1zm0-2h-6V6h6v1z"})));break;case"gridicons-bookmark-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 5v12.554l-5-2.857-5 2.857V5h10m0-2H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-bookmark":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 3H7c-1.105 0-2 .896-2 2v16l7-4 7 4V5c0-1.104-.896-2-2-2z"})));break;case"gridicons-briefcase":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 6h-4V3c0-.5-.5-1-1-1H8c-.5 0-1 .5-1 1v3H3c-.6 0-1 .4-1 1v5h20V7c0-.6-.4-1-1-1zm-6 0H9V4h6v2zM14 15h-4v-2H2v8c0 .6.4 1 1 1h18c.6 0 1-.4 1-1v-8h-8v2z"})));break;case"gridicons-calendar":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-camera":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 12c0 1.7-1.3 3-3 3s-3-1.3-3-3 1.3-3 3-3 3 1.3 3 3zm5-5v11c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2V4h4v1h2l1-2h6l1 2h2c1.1 0 2 .9 2 2zM7.5 9c0-.8-.7-1.5-1.5-1.5S4.5 8.2 4.5 9s.7 1.5 1.5 1.5S7.5 9.8 7.5 9zM19 12c0-2.8-2.2-5-5-5s-5 2.2-5 5 2.2 5 5 5 5-2.2 5-5z"})));break;case"gridicons-cart":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-checkmark-circle":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-checkmark":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414"})));break;case"gridicons-chevron-down":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"})));break;case"gridicons-chevron-left":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M14 20l-8-8 8-8 1.414 1.414L8.828 12l6.586 6.586"})));break;case"gridicons-chevron-right":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10 20l8-8-8-8-1.414 1.414L15.172 12l-6.586 6.586"})));break;case"gridicons-chevron-up":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 15l8-8 8 8-1.414 1.414L12 9.828l-6.586 6.586"})));break;case"gridicons-clear-formatting":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10.837 10.163l-4.6 4.6L10 4h4l.777 2.223-2.144 2.144-.627-2.092-1.17 3.888zm5.495.506L19.244 19H15.82l-1.05-3.5H11.5L5 22l-1.5-1.5 17-17L22 5l-5.668 5.67zm-2.31 2.31l-.032.03.032-.01v-.02z"})));break;case"gridicons-clipboard":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16 18H8v-2h8v2zm0-6H8v2h8v-2zm2-9h-2v2h2v15H6V5h2V3H6c-1.105 0-2 .895-2 2v15c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-4 2V4c0-1.105-.895-2-2-2s-2 .895-2 2v1c-1.105 0-2 .895-2 2v1h8V7c0-1.105-.895-2-2-2z"})));break;case"gridicons-cloud-download":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-6 7l-4-5h3V8h2v3h3l-4 5z"})));break;case"gridicons-cloud-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M11.5 5c2.336 0 4.304 1.825 4.48 4.154l.142 1.86 1.867-.012h.092C19.698 11.043 21 12.37 21 14c0 .748-.28 1.452-.783 2H3.28c-.156-.256-.28-.59-.28-1 0-1.074.85-1.953 1.915-1.998.06.007.118.012.178.015l2.66.124-.622-2.587C7.044 10.186 7 9.843 7 9.5 7 7.02 9.02 5 11.5 5m0-2C7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5l-.025.002C17.72 5.646 14.922 3 11.5 3z"})));break;case"gridicons-cloud-upload":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5zm-5 4v3h-2v-3H8l4-5 4 5h-3z"})));break;case"gridicons-cloud":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 9c-.01 0-.017.002-.025.003C17.72 5.646 14.922 3 11.5 3 7.91 3 5 5.91 5 9.5c0 .524.07 1.03.186 1.52C5.123 11.015 5.064 11 5 11c-2.21 0-4 1.79-4 4 0 1.202.54 2.267 1.38 3h18.593C22.196 17.09 23 15.643 23 14c0-2.76-2.24-5-5-5z"})));break;case"gridicons-code":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4.83 12l4.58 4.59L8 18l-6-6 6-6 1.41 1.41L4.83 12zm9.76 4.59L16 18l6-6-6-6-1.41 1.41L19.17 12l-4.58 4.59z"})));break;case"gridicons-cog":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 12c0-.568-.06-1.122-.174-1.656l1.834-1.612-2-3.464-2.322.786c-.82-.736-1.787-1.308-2.86-1.657L14 2h-4l-.48 2.396c-1.07.35-2.04.92-2.858 1.657L4.34 5.268l-2 3.464 1.834 1.612C4.06 10.878 4 11.432 4 12s.06 1.122.174 1.656L2.34 15.268l2 3.464 2.322-.786c.82.736 1.787 1.308 2.86 1.657L10 22h4l.48-2.396c1.07-.35 2.038-.92 2.858-1.657l2.322.786 2-3.464-1.834-1.613c.113-.535.174-1.09.174-1.657zm-8 4c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"})));break;case"gridicons-comment":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-computer":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-create":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 11v8c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h8l-2 2H5v14h14v-6l2-2zM7 17h3l7.5-7.5-3-3L7 14v3zm9.94-12.94L15.5 5.5l3 3 1.44-1.44c.585-.585.585-1.535 0-2.12l-.88-.88c-.585-.585-1.535-.585-2.12 0z"})));break;case"gridicons-credit-card":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 2v2H4V6h16zM4 18v-6h16v6H4zm2-4h7v2H6v-2zm9 0h3v2h-3v-2z"})));break;case"gridicons-crop":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M22 16h-4V8c0-1.105-.895-2-2-2H8V2H6v4H2v2h4v8c0 1.105.895 2 2 2h8v4h2v-4h4v-2zM8 16V8h8v8H8z"})));break;case"gridicons-cross-small":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"})));break;case"gridicons-cross":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"})));break;case"gridicons-custom-post-type":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z"})));break;case"gridicons-customize":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M2 6c0-1.505.78-3.08 2-4 0 .845.69 2 2 2 1.657 0 3 1.343 3 3 0 .386-.08.752-.212 1.09.74.594 1.476 1.19 2.19 1.81L8.9 11.98c-.62-.716-1.214-1.454-1.807-2.192C6.753 9.92 6.387 10 6 10c-2.21 0-4-1.79-4-4zm12.152 6.848l1.34-1.34c.607.304 1.283.492 2.008.492 2.485 0 4.5-2.015 4.5-4.5 0-.725-.188-1.4-.493-2.007L18 9l-2-2 3.507-3.507C18.9 3.188 18.225 3 17.5 3 15.015 3 13 5.015 13 7.5c0 .725.188 1.4.493 2.007L3 20l2 2 6.848-6.848c1.885 1.928 3.874 3.753 5.977 5.45l1.425 1.148 1.5-1.5-1.15-1.425c-1.695-2.103-3.52-4.092-5.448-5.977z"})));break;case"gridicons-dropdown":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M7 10l5 5 5-5"})));break;case"gridicons-ellipsis":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"})));break;case"gridicons-external":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-flag":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M15 6c0-1.105-.895-2-2-2H5v17h2v-7h5c0 1.105.895 2 2 2h6V6h-5z"})));break;case"gridicons-flip-horizontal":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 18v-5h3v-2h-3V6c0-1.105-.895-2-2-2H6c-1.105 0-2 .895-2 2v5H1v2h3v5c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2zM6 6h12v5H6V6z"})));break;case"gridicons-flip-vertical":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 4h-5V1h-2v3H6c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h5v3h2v-3h5c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zM6 18V6h5v12H6z"})));break;case"gridicons-folder-multiple":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 8c-1.105 0-2 .895-2 2v10c0 1.1.9 2 2 2h14c1.105 0 2-.895 2-2H4V8zm16 10H8c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2h7c1.105 0 2 .895 2 2v8c0 1.105-.895 2-2 2z"})));break;case"gridicons-folder":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-globe":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18l2-2 1-1v-2h-2v-1l-1-1H9v3l2 2v1.93c-3.94-.494-7-3.858-7-7.93l1 1h2v-2h2l3-3V6h-2L9 5v-.41C9.927 4.21 10.94 4 12 4s2.073.212 3 .59V6l-1 1v2l1 1 3.13-3.13c.752.897 1.304 1.964 1.606 3.13H18l-2 2v2l1 1h2l.286.286C18.03 18.06 15.24 20 12 20z"})));break;case"gridicons-grid":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M8 8H4V4h4v4zm6-4h-4v4h4V4zm6 0h-4v4h4V4zM8 10H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4zM8 16H4v4h4v-4zm6 0h-4v4h4v-4zm6 0h-4v4h4v-4z"})));break;case"gridicons-heading":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 20h-3v-6H9v6H6V5.01h3V11h6V5.01h3V20z"})));break;case"gridicons-heart-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16.5 4.5c2.206 0 4 1.794 4 4 0 4.67-5.543 8.94-8.5 11.023C9.043 17.44 3.5 13.17 3.5 8.5c0-2.206 1.794-4 4-4 1.298 0 2.522.638 3.273 1.706L12 7.953l1.227-1.746c.75-1.07 1.975-1.707 3.273-1.707m0-1.5c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-heart":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16.5 3c-1.862 0-3.505.928-4.5 2.344C11.005 3.928 9.362 3 7.5 3 4.462 3 2 5.462 2 8.5c0 5.72 6.5 10.438 10 12.85 3.5-2.412 10-7.13 10-12.85C22 5.462 19.538 3 16.5 3z"})));break;case"gridicons-help-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-1.962-2v-.528c0-.4.082-.74.246-1.017.163-.276.454-.546.87-.808.333-.21.572-.397.717-.565.146-.168.22-.36.22-.577 0-.172-.078-.308-.234-.41-.156-.1-.358-.15-.608-.15-.62 0-1.34.22-2.168.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.287-.23.362-.6.705-1.11 1.03-.43.278-.7.48-.807.61-.108.13-.163.282-.163.458V13h-1.885z"})));break;case"gridicons-help":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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-2h2v2zm2.003-6.41c-.23.36-.6.704-1.108 1.028-.43.28-.7.482-.808.61-.108.13-.163.283-.163.46V13H11.04v-.528c0-.4.08-.74.245-1.017.163-.276.454-.546.872-.808.332-.21.57-.397.716-.565.145-.168.217-.36.217-.577 0-.172-.077-.308-.233-.41-.156-.1-.358-.15-.608-.15-.62 0-1.342.22-2.17.658l-.854-1.67c1.02-.58 2.084-.872 3.194-.872.913 0 1.63.202 2.15.603.52.4.78.948.78 1.64 0 .495-.116.924-.347 1.286z"})));break;case"gridicons-history":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M2.12 13.526c.742 4.78 4.902 8.47 9.88 8.47 5.5 0 10-4.5 10-9.998S17.5 2 12 2C8.704 2 5.802 3.6 4 6V2H2.003L2 9h7V7H5.8c1.4-1.8 3.702-3 6.202-3C16.4 4 20 7.6 20 11.998s-3.6 8-8 8c-3.877 0-7.13-2.795-7.848-6.472H2.12z"}),s().createElement("path",{d:"M11.002 7v5.3l3.2 4.298 1.6-1.197-2.8-3.7V7"})));break;case"gridicons-house":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z"})));break;case"gridicons-image-multiple":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-image":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-indent-left":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 20h2V4h-2v16zM2 11h10.172l-2.086-2.086L11.5 7.5 16 12l-4.5 4.5-1.414-1.414L12.172 13H2v-2z"})));break;case"gridicons-indent-right":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6 4H4v16h2V4zm16 9H11.828l2.086 2.086L12.5 16.5 8 12l4.5-4.5 1.414 1.414L11.828 11H22v2z"})));break;case"gridicons-info-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-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"})));break;case"gridicons-info":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-ink":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M5 15c0 3.866 3.134 7 7 7s7-3.134 7-7c0-1.387-.41-2.677-1.105-3.765h.007L12 2l-5.903 9.235h.007C5.41 12.323 5 13.613 5 15z"})));break;case"gridicons-institution":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M2 19h20v3H2zM12 2L2 6v2h20V6M17 10h3v7h-3zM10.5 10h3v7h-3zM4 10h3v7H4z"})));break;case"gridicons-italic":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10.536 5l-.427 2h1.5L9.262 18h-1.5l-.427 2h6.128l.426-2h-1.5l2.347-11h1.5l.427-2"})));break;case"gridicons-layout-blocks":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 7h-2V3c0-1.105-.895-2-2-2H7c-1.105 0-2 .895-2 2v2H3c-1.105 0-2 .895-2 2v4c0 1.105.895 2 2 2h2v8c0 1.105.895 2 2 2h10c1.105 0 2-.895 2-2v-2h2c1.105 0 2-.895 2-2V9c0-1.105-.895-2-2-2zm-4 14H7v-8h2c1.105 0 2-.895 2-2V7c0-1.105-.895-2-2-2H7V3h10v4h-2c-1.105 0-2 .895-2 2v8c0 1.105.895 2 2 2h2v2zm4-4h-6V9h6v8z"})));break;case"gridicons-layout":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M8 20H5c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h3c1.105 0 2 .895 2 2v12c0 1.105-.895 2-2 2zm8-10h4c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2h-4c-1.105 0-2 .895-2 2v3c0 1.105.895 2 2 2zm5 10v-6c0-1.105-.895-2-2-2h-5c-1.105 0-2 .895-2 2v6c0 1.105.895 2 2 2h5c1.105 0 2-.895 2-2z"})));break;case"gridicons-link-break":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10 11l-2 2H7v-2h3zm9.64-3.64L22 5l-1.5-1.5-17 17L5 22l9-9h3v-2h-1l2-2c1.103 0 2 .897 2 2v2c0 1.103-.897 2-2 2h-4.977c.913 1.208 2.347 2 3.977 2h1c2.21 0 4-1.79 4-4v-2c0-1.623-.97-3.013-2.36-3.64zM4.36 16.64L6 15c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h4.977C10.065 7.792 8.63 7 7 7H6c-2.21 0-4 1.79-4 4v2c0 1.623.97 3.013 2.36 3.64z"})));break;case"gridicons-link":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 13H7v-2h10v2zm1-6h-1c-1.63 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 2h1c2.21 0 4-1.79 4-4v-2c0-2.21-1.79-4-4-4zM2 11v2c0 2.21 1.79 4 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.63 7 7 7H6c-2.21 0-4 1.79-4 4z"})));break;case"gridicons-list-checkmark":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M9.5 15.5L5 20l-2.5-2.5 1.06-1.06L5 17.88l3.44-3.44L9.5 15.5zM10 5v2h11V5H10zm0 14h11v-2H10v2zm0-6h11v-2H10v2zM8.44 8.44L5 11.88l-1.44-1.44L2.5 11.5 5 14l4.5-4.5-1.06-1.06zm0-6L5 5.88 3.56 4.44 2.5 5.5 5 8l4.5-4.5-1.06-1.06z"})));break;case"gridicons-list-ordered":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M8 19h13v-2H8v2zm0-6h13v-2H8v2zm0-8v2h13V5H8zm-4.425.252c.107-.096.197-.188.27-.275-.013.228-.02.48-.02.756V8h1.176V3.717H3.96L2.487 4.915l.6.738.487-.4zm.334 7.764c.474-.426.784-.715.93-.867.145-.153.26-.298.35-.436.087-.138.152-.278.194-.42.042-.143.063-.298.063-.466 0-.225-.06-.427-.18-.608s-.29-.32-.507-.417c-.218-.1-.465-.148-.742-.148-.22 0-.42.022-.596.067s-.34.11-.49.195c-.15.085-.337.226-.558.423l.636.744c.174-.15.33-.264.467-.34.138-.078.274-.117.41-.117.13 0 .232.032.304.097.073.064.11.152.11.264 0 .09-.02.176-.055.258-.036.082-.1.18-.192.294-.092.114-.287.328-.586.64L2.42 13.238V14h3.11v-.955H3.91v-.03zm.53 4.746v-.018c.306-.086.54-.225.702-.414.162-.19.243-.42.243-.685 0-.31-.126-.55-.378-.727-.252-.176-.6-.264-1.043-.264-.307 0-.58.033-.816.1s-.47.178-.696.334l.48.773c.293-.183.576-.274.85-.274.147 0 .263.027.35.082s.13.14.13.252c0 .3-.294.45-.882.45h-.27v.87h.264c.217 0 .393.017.527.05.136.03.233.08.294.143.06.064.09.154.09.27 0 .153-.057.265-.173.337-.115.07-.3.106-.554.106-.164 0-.343-.022-.538-.07-.194-.044-.385-.115-.573-.21v.96c.228.088.44.148.637.182.196.033.41.05.64.05.56 0 .998-.114 1.314-.343.315-.228.473-.542.473-.94.002-.585-.356-.923-1.07-1.013z"})));break;case"gridicons-list-unordered":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M9 19h12v-2H9v2zm0-6h12v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-location":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 9c0-3.866-3.134-7-7-7S5 5.134 5 9c0 1.387.41 2.677 1.105 3.765h-.008C8.457 16.46 12 22 12 22l5.903-9.235h-.007C18.59 11.677 19 10.387 19 9zm-7 3c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3z"})));break;case"gridicons-lock":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 8h-1V7c0-2.757-2.243-5-5-5S7 4.243 7 7v1H6c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V10c0-1.105-.895-2-2-2zM9 7c0-1.654 1.346-3 3-3s3 1.346 3 3v1H9V7zm4 8.723V18h-2v-2.277c-.595-.346-1-.984-1-1.723 0-1.105.895-2 2-2s2 .895 2 2c0 .738-.405 1.376-1 1.723z"})));break;case"gridicons-mail":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 4H4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h16c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zm0 4.236l-8 4.882-8-4.882V6h16v2.236z"})));break;case"gridicons-mention":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10v-2c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8v.5c0 .827-.673 1.5-1.5 1.5s-1.5-.673-1.5-1.5V12c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5c1.65 0 3.102-.81 4.013-2.043C16.648 15.6 17.527 16 18.5 16c1.93 0 3.5-1.57 3.5-3.5V12c0-5.523-4.477-10-10-10zm0 13c-1.654 0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3-1.346 3-3 3z"})));break;case"gridicons-menu":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 6v2H3V6h18zM3 18h18v-2H3v2zm0-5h18v-2H3v2z"})));break;case"gridicons-menus":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M9 19h10v-2H9v2zm0-6h6v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z"})));break;case"gridicons-microphone":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 13c1.104 0 2-.896 2-2V6c0-1.104-.896-2-2-2-1.105 0-2 .896-2 2v5c0 1.104.895 2 2 2zm4-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6c0 2.972 2.164 5.433 5 5.91V20h2v-3.09c2.836-.478 5-2.94 5-5.91h-2z"})));break;case"gridicons-minus-small":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6 11h12v2H6z"})));break;case"gridicons-minus":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M3 11h18v2H3z"})));break;case"gridicons-my-sites-horizon":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10.986 13.928l.762-2.284-1.324-3.63c-.458-.026-.892-.08-.892-.08-.458-.027-.405-.727.054-.7 0 0 1.403.107 2.24.107.888 0 2.265-.107 2.265-.107.46-.027.513.646.055.7 0 0-.46.055-.973.082l2.006 5.966c-.875-.034-1.74-.053-2.6-.06l-.428-1.177-.403 1.17c-.252.002-.508.01-.76.015zm-7.156.393c-.21-.737-.33-1.514-.33-2.32 0-1.232.264-2.402.736-3.46l2.036 5.58c.85-.06 1.69-.104 2.526-.138L6.792 8.015c.512-.027.973-.08.973-.08.458-.055.404-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.036-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .674-.244 1.463-.572 2.51.3.02.604.043.907.066l.798-2.307c.486-1.212.647-2.18.647-3.043 0-.313-.02-.603-.057-.874.662 1.21 1.04 2.6 1.04 4.077 0 .807-.128 1.58-.34 2.32.5.05 1.006.112 1.51.17.205-.798.33-1.628.33-2.49 0-5.523-4.477-10-10-10S2 6.477 2 12c0 .862.125 1.692.33 2.49.5-.057 1.003-.12 1.5-.17zm14.638 3.168C16.676 19.672 14.118 20.5 12 20.5c-1.876 0-4.55-.697-6.463-3.012-.585.048-1.174.1-1.77.16C5.572 20.272 8.578 22 12 22c3.422 0 6.43-1.73 8.232-4.35-.593-.063-1.18-.114-1.764-.162zM12 15.01c-3.715 0-7.368.266-10.958.733.18.41.35.825.506 1.247 3.427-.43 6.91-.68 10.452-.68s7.025.25 10.452.68c.156-.422.327-.836.506-1.246-3.59-.467-7.243-.734-10.958-.734z"})));break;case"gridicons-my-sites":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM3.5 12c0-1.232.264-2.402.736-3.46L8.29 19.65C5.456 18.272 3.5 15.365 3.5 12zm8.5 8.5c-.834 0-1.64-.12-2.4-.345l2.55-7.41 2.613 7.157c.017.042.038.08.06.117-.884.31-1.833.48-2.823.48zm1.172-12.485c.512-.027.973-.08.973-.08.458-.055.404-.728-.054-.702 0 0-1.376.108-2.265.108-.835 0-2.24-.107-2.24-.107-.458-.026-.51.674-.053.7 0 0 .434.055.892.082l1.324 3.63-1.86 5.578-3.096-9.208c.512-.027.973-.08.973-.08.458-.055.403-.728-.055-.702 0 0-1.376.108-2.265.108-.16 0-.347-.003-.547-.01C6.418 5.025 9.03 3.5 12 3.5c2.213 0 4.228.846 5.74 2.232-.037-.002-.072-.007-.11-.007-.835 0-1.427.727-1.427 1.51 0 .7.404 1.292.835 1.993.323.566.7 1.293.7 2.344 0 .727-.28 1.572-.646 2.748l-.848 2.833-3.072-9.138zm3.1 11.332l2.597-7.506c.484-1.212.645-2.18.645-3.044 0-.313-.02-.603-.057-.874.664 1.21 1.042 2.6 1.042 4.078 0 3.136-1.7 5.874-4.227 7.347z"})));break;case"gridicons-not-visible":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M1 12s4.188-6 11-6c.947 0 1.84.12 2.678.322L8.36 12.64C8.133 12.14 8 11.586 8 11c0-.937.335-1.787.875-2.47C6.483 9.344 4.66 10.917 3.62 12c.68.707 1.696 1.62 2.98 2.398L5.15 15.85C2.498 14.13 1 12 1 12zm22 0s-4.188 6-11 6c-.946 0-1.836-.124-2.676-.323L5 22l-1.5-1.5 17-17L22 5l-3.147 3.147C21.5 9.87 23 12 23 12zm-2.615.006c-.678-.708-1.697-1.624-2.987-2.403L16 11c0 2.21-1.79 4-4 4l-.947.947c.31.03.624.053.947.053 3.978 0 6.943-2.478 8.385-3.994z"})));break;case"gridicons-notice-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})));break;case"gridicons-notice":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-pages":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-pencil":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M13 6l5 5-9.507 9.507c-.686-.686-.69-1.794-.012-2.485l-.002-.003c-.69.676-1.8.673-2.485-.013-.677-.677-.686-1.762-.036-2.455l-.008-.008c-.694.65-1.78.64-2.456-.036L13 6zm7.586-.414l-2.172-2.172c-.78-.78-2.047-.78-2.828 0L14 5l5 5 1.586-1.586c.78-.78.78-2.047 0-2.828zM3 18v3h3c0-1.657-1.343-3-3-3z"})));break;case"gridicons-phone":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-plans":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm-1 12H6l5-10v10zm2 6V10h5l-5 10z"})));break;case"gridicons-plugins":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16 8V3c0-.552-.448-1-1-1s-1 .448-1 1v5h-4V3c0-.552-.448-1-1-1s-1 .448-1 1v5H5v4c0 2.79 1.637 5.193 4 6.317V22h6v-3.683c2.363-1.124 4-3.527 4-6.317V8h-3z"})));break;case"gridicons-plus-small":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 11h-5V6h-2v5H6v2h5v5h2v-5h5"})));break;case"gridicons-plus":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20 13h-7v7h-2v-7H4v-2h7V4h2v7h7v2z"})));break;case"gridicons-popout":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6 7V5c0-1.105.895-2 2-2h11c1.105 0 2 .895 2 2v14c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2v-2h2v2h11V5H8v2H6zm5.5-.5l-1.414 1.414L13.172 11H3v2h10.172l-3.086 3.086L11.5 17.5 17 12l-5.5-5.5z"})));break;case"gridicons-posts":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"})));break;case"gridicons-print":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M9 16h6v2H9v-2zm13 1h-3v3c0 1.105-.895 2-2 2H7c-1.105 0-2-.895-2-2v-3H2V9c0-1.105.895-2 2-2h1V5c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2v2h1c1.105 0 2 .895 2 2v8zM7 7h10V5H7v2zm10 7H7v6h10v-6zm3-3.5c0-.828-.672-1.5-1.5-1.5s-1.5.672-1.5 1.5.672 1.5 1.5 1.5 1.5-.672 1.5-1.5z"})));break;case"gridicons-quote":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M11.192 15.757c0-.88-.23-1.618-.69-2.217-.326-.412-.768-.683-1.327-.812-.55-.128-1.07-.137-1.54-.028-.16-.95.1-1.956.76-3.022.66-1.065 1.515-1.867 2.558-2.403L9.373 5c-.8.396-1.56.898-2.26 1.505-.71.607-1.34 1.305-1.9 2.094s-.98 1.68-1.25 2.69-.346 2.04-.217 3.1c.168 1.4.62 2.52 1.356 3.35.735.84 1.652 1.26 2.748 1.26.965 0 1.766-.29 2.4-.878.628-.576.94-1.365.94-2.368l.002.003zm9.124 0c0-.88-.23-1.618-.69-2.217-.326-.42-.77-.692-1.327-.817-.56-.124-1.074-.13-1.54-.022-.16-.94.09-1.95.75-3.02.66-1.06 1.514-1.86 2.557-2.4L18.49 5c-.8.396-1.555.898-2.26 1.505-.708.607-1.34 1.305-1.894 2.094-.556.79-.97 1.68-1.24 2.69-.273 1-.345 2.04-.217 3.1.165 1.4.615 2.52 1.35 3.35.732.833 1.646 1.25 2.742 1.25.967 0 1.768-.29 2.402-.876.627-.576.942-1.365.942-2.368v.01z"})));break;case"gridicons-reader":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M3 4v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4H3zm7 11H5v-1h5v1zm2-2H5v-1h7v1zm0-2H5v-1h7v1zm7 4h-5v-5h5v5zm0-7H5V6h14v2z"})));break;case"gridicons-reader-following":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M23,13.482L15.508,21L12,17.4l1.412-1.388l2.106,2.188l6.094-6.094L23,13.482z M15.545,15.344L20,10.889V2H2v14c0,1.1,0.9,2,2,2h4.538l4.913-4.832L15.545,15.344z M8,13H4v-1h4V13z M11,11H4v-1h7V11z M11,9H4V8h7V9z M18,6H4V4h14V6z"})));break;case"gridicons-reblog":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"})));break;case"gridicons-redo":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 6v3.586L14.343 5.93C13.17 4.756 11.636 4.17 10.1 4.17s-3.07.585-4.242 1.757c-2.343 2.342-2.343 6.14 0 8.484l5.364 5.364 1.414-1.414L7.272 13c-1.56-1.56-1.56-4.097 0-5.657.755-.755 1.76-1.172 2.828-1.172 1.068 0 2.073.417 2.828 1.173L16.586 11H13v2h7V6h-2z"})));break;case"gridicons-refresh":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17.91 14c-.478 2.833-2.943 5-5.91 5-3.308 0-6-2.692-6-6s2.692-6 6-6h2.172l-2.086 2.086L13.5 10.5 18 6l-4.5-4.5-1.414 1.414L14.172 5H12c-4.418 0-8 3.582-8 8s3.582 8 8 8c4.08 0 7.438-3.055 7.93-7h-2.02z"})));break;case"gridicons-reply":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M14 8H6.828l2.586-2.586L8 4 3 9l5 5 1.414-1.414L6.828 10H14c2.206 0 4 1.794 4 4s-1.794 4-4 4h-2v2h2c3.314 0 6-2.686 6-6s-2.686-6-6-6z"})));break;case"gridicons-rotate":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 14v6c0 1.105-.895 2-2 2H6c-1.105 0-2-.895-2-2v-6c0-1.105.895-2 2-2h10c1.105 0 2 .895 2 2zM13.914 2.914L11.828 5H14c4.418 0 8 3.582 8 8h-2c0-3.308-2.692-6-6-6h-2.172l2.086 2.086L12.5 10.5 8 6l1.414-1.414L12.5 1.5l1.414 1.414z"})));break;case"gridicons-scheduled":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M10.498 18l-3.705-3.704 1.415-1.415 2.294 2.295 5.293-5.293 1.415 1.415L10.498 18zM21 6v13c0 1.104-.896 2-2 2H5c-1.104 0-2-.896-2-2V6c0-1.104.896-2 2-2h1V2h2v2h8V2h2v2h1c1.104 0 2 .896 2 2zm-2 2H5v11h14V8z"})));break;case"gridicons-search":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-share-ios":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 8h2c1.105 0 2 .895 2 2v9c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2v-9c0-1.105.895-2 2-2h2v2H5v9h14v-9h-2V8zM6.5 5.5l1.414 1.414L11 3.828V14h2V3.828l3.086 3.086L17.5 5.5 12 0 6.5 5.5z"})));break;case"gridicons-share":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 16c-.788 0-1.5.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.118c-.053.223-.088.453-.088.692 0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3z"})));break;case"gridicons-sign-out":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M16 17v2c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h9c1.105 0 2 .895 2 2v2h-2V5H5v14h9v-2h2zm2.5-10.5l-1.414 1.414L20.172 11H10v2h10.172l-3.086 3.086L18.5 17.5 24 12l-5.5-5.5z"})));break;case"gridicons-spam":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 2H7L2 7v10l5 5h10l5-5V7l-5-5zm-4 15h-2v-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"})));break;case"gridicons-speaker":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 8v6c1.7 0 3-1.3 3-3s-1.3-3-3-3zM11 7H4c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h1v3c0 1.1.9 2 2 2h2v-5h2l4 4h2V3h-2l-4 4z"})));break;case"gridicons-special-character":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12.005 7.418c-1.237 0-2.19.376-2.86 1.128s-1.005 1.812-1.005 3.18c0 1.387.226 2.513.677 3.377.45.865 1.135 1.543 2.05 2.036V20H5v-2.666h3.12c-1.04-.636-1.842-1.502-2.405-2.6-.564-1.097-.846-2.322-.846-3.676 0-1.258.29-2.363.875-3.317.585-.952 1.417-1.685 2.497-2.198s2.334-.77 3.763-.77c2.18 0 3.915.572 5.204 1.713s1.932 2.673 1.932 4.594c0 1.353-.283 2.57-.852 3.65-.567 1.08-1.38 1.947-2.44 2.603H19V20h-5.908v-2.86c.95-.493 1.65-1.18 2.102-2.062s.677-2.006.677-3.374c0-1.36-.336-2.415-1.01-3.164-.672-.747-1.624-1.122-2.855-1.122z"})));break;case"gridicons-star-outline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-star":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-stats-alt":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M21 21H3v-2h18v2zM8 10H4v7h4v-7zm6-7h-4v14h4V3zm6 3h-4v11h4V6z"})));break;case"gridicons-stats":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm0 16H5V5h14v14zM9 17H7v-5h2v5zm4 0h-2V7h2v10zm4 0h-2v-7h2v7z"})));break;case"gridicons-status":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM7.55 13c-.02.166-.05.33-.05.5 0 2.485 2.015 4.5 4.5 4.5s4.5-2.015 4.5-4.5c0-.17-.032-.334-.05-.5h-8.9zM10 10V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1zm6 0V8c0-.552-.448-1-1-1s-1 .448-1 1v2c0 .552.448 1 1 1s1-.448 1-1z"})));break;case"gridicons-strikethrough":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M14.348 12H21v2h-4.613c.24.515.368 1.094.368 1.748 0 1.317-.474 2.355-1.423 3.114-.947.76-2.266 1.138-3.956 1.138-1.557 0-2.934-.293-4.132-.878v-2.874c.985.44 1.818.75 2.5.928.682.18 1.306.27 1.872.27.68 0 1.2-.13 1.562-.39.363-.26.545-.644.545-1.158 0-.285-.08-.54-.24-.763-.16-.222-.394-.437-.704-.643-.18-.12-.483-.287-.88-.49H3v-2H14.347zm-3.528-2c-.073-.077-.143-.155-.193-.235-.126-.202-.19-.44-.19-.713 0-.44.157-.795.47-1.068.313-.273.762-.41 1.348-.41.492 0 .993.064 1.502.19.51.127 1.153.35 1.93.67l1-2.405c-.753-.327-1.473-.58-2.16-.76-.69-.18-1.414-.27-2.173-.27-1.544 0-2.753.37-3.628 1.108-.874.738-1.312 1.753-1.312 3.044 0 .302.036.58.088.848h3.318z"})));break;case"gridicons-sync":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M23.5 13.5l-3.086 3.086L19 18l-4.5-4.5 1.414-1.414L18 14.172V12c0-3.308-2.692-6-6-6V4c4.418 0 8 3.582 8 8v2.172l2.086-2.086L23.5 13.5zM6 12V9.828l2.086 2.086L9.5 10.5 5 6 3.586 7.414.5 10.5l1.414 1.414L4 9.828V12c0 4.418 3.582 8 8 8v-2c-3.308 0-6-2.692-6-6z"})));break;case"gridicons-tablet":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 2H6c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h12c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-5 19h-2v-1h2v1zm5-2H6V5h12v14z"})));break;case"gridicons-tag":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-text-color":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M3 19h18v3H3v-3zM15.82 17h3.424L14 3h-4L4.756 17H8.18l1.067-3.5h5.506L15.82 17zm-1.952-6h-3.73l1.868-5.725L13.868 11z"})));break;case"gridicons-themes":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 6c-1.105 0-2 .895-2 2v12c0 1.1.9 2 2 2h12c1.105 0 2-.895 2-2H4V6zm16-4H8c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2h12c1.105 0 2-.895 2-2V4c0-1.105-.895-2-2-2zm-5 14H8V9h7v7zm5 0h-3V9h3v7zm0-9H8V4h12v3z"})));break;case"gridicons-thumbs-up":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6.7 22H2v-9h2l2.7 9zM20 9h-6V5c0-1.657-1.343-3-3-3h-1v4L7.1 9.625c-.712.89-1.1 1.996-1.1 3.135V14l2.1 7h8.337c1.836 0 3.435-1.25 3.88-3.03l1.622-6.485C22.254 10.223 21.3 9 20 9z"})));break;case"gridicons-time":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c4.41 0 8 3.59 8 8s-3.59 8-8 8-8-3.59-8-8 3.59-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.8 13.4L13 11.667V7h-2v5.333l3.2 4.266 1.6-1.2z"})));break;case"gridicons-trash":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M6.187 8h11.625l-.695 11.125C17.05 20.18 16.177 21 15.12 21H8.88c-1.057 0-1.93-.82-1.997-1.875L6.187 8zM19 5v2H5V5h3V4c0-1.105.895-2 2-2h4c1.105 0 2 .895 2 2v1h3zm-9 0h4V4h-4v1z"})));break;case"gridicons-trophy":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18 5.062V3H6v2.062H2V8c0 2.525 1.89 4.598 4.324 4.932.7 2.058 2.485 3.61 4.676 3.978V18c0 1.105-.895 2-2 2H8v2h8v-2h-1c-1.105 0-2-.895-2-2v-1.09c2.19-.368 3.976-1.92 4.676-3.978C20.11 12.598 22 10.525 22 8V5.062h-4zM4 8v-.938h2v3.766C4.836 10.416 4 9.304 4 8zm16 0c0 1.304-.836 2.416-2 2.83V7.06h2V8z"})));break;case"gridicons-types":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M22 17c0 2.76-2.24 5-5 5s-5-2.24-5-5 2.24-5 5-5 5 2.24 5 5zM6.5 6.5h3.8L7 1 1 11h5.5V6.5zm9.5 4.085V8H8v8h2.585c.433-2.783 2.632-4.982 5.415-5.415z"})));break;case"gridicons-underline":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M4 19v2h16v-2H4zM18 3v8c0 3.314-2.686 6-6 6s-6-2.686-6-6V3h3v8c0 1.654 1.346 3 3 3s3-1.346 3-3V3h3z"})));break;case"gridicons-undo":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M18.142 5.93C16.97 4.756 15.435 4.17 13.9 4.17s-3.072.586-4.244 1.757L6 9.585V6H4v7h7v-2H7.414l3.657-3.657c.756-.755 1.76-1.172 2.83-1.172 1.067 0 2.072.417 2.827 1.173 1.56 1.56 1.56 4.097 0 5.657l-5.364 5.364 1.414 1.414 5.364-5.364c2.345-2.343 2.345-6.142.002-8.485z"})));break;case"gridicons-user-circle":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18.5c-4.694 0-8.5-3.806-8.5-8.5S7.306 3.5 12 3.5s8.5 3.806 8.5 8.5-3.806 8.5-8.5 8.5zm0-8c-3.038 0-5.5 1.728-5.5 3.5s2.462 3.5 5.5 3.5 5.5-1.728 5.5-3.5-2.462-3.5-5.5-3.5zm0-.5c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3z"})));break;case"gridicons-user":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 4c2.21 0 4 1.79 4 4s-1.79 4-4 4-4-1.79-4-4 1.79-4 4-4zm0 16s8 0 8-2c0-2.4-3.9-5-8-5s-8 2.6-8 5c0 2 8 2 8 2z"})));break;case"gridicons-video-camera":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M17 9V7c0-1.105-.895-2-2-2H4c-1.105 0-2 .895-2 2v10c0 1.105.895 2 2 2h11c1.105 0 2-.895 2-2v-2l5 4V5l-5 4z"})));break;case"gridicons-video":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().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"})));break;case"gridicons-visible":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M12 6C5.188 6 1 12 1 12s4.188 6 11 6 11-6 11-6-4.188-6-11-6zm0 10c-3.943 0-6.926-2.484-8.38-4 1.04-1.085 2.863-2.657 5.255-3.47C8.335 9.214 8 10.064 8 11c0 2.21 1.79 4 4 4s4-1.79 4-4c0-.937-.335-1.787-.875-2.47 2.393.813 4.216 2.386 5.254 3.47-1.456 1.518-4.438 4-8.38 4z"})));break;case"gridicons-chat":o=s().createElement("svg",{className:i,height:this.props.size,width:this.props.size,onClick:this.props.onClick,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},s().createElement("g",null,s().createElement("path",{d:"M20,4h-8c-1.1,0-2,0.9-2,2v2h2c1.7,0,3,1.3,3,3v2h2v3.5l3.3-2.3c1.1-0.8,1.7-2,1.7-3.3V6C22,4.9,21.1,4,20,4z"}),s().createElement("g",null,s().createElement("path",{d:"M14,11v5c0,1.1-0.9,2-2,2H7v3.5l-3.3-2.3c-1.1-0.8-1.7-2-1.7-3.3V11c0-1.1,0.9-2,2-2h8C13.1,9,14,9.9,14,11z"}))))}return o}});t.Z=l},87279:function(e,t,n){"use strict";var r=n(11268),i=n.n(r),o=n(99196),s=n.n(o),a=n(7767),c=n.n(a),u=n(92819),f=n(40515),h=n(22256),l=n(89105),d=n.n(l),p=n(11973);t.Z=c()({displayName:"InfoPopover",propTypes:{id:i().string,position:i().string,className:i().string,rootClassName:i().string,gaEventCategory:i().string,popoverName:i().string,onClick:i().func,ignoreContext:i().shape({getDOMNode:i().function})},getDefaultProps:()=>({position:"bottom",onClick:u.noop}),getInitialState:()=>({showPopover:!1}),render(){const e=d()("dops-info-popover","dops-info-popover-button",{is_active:this.state.showPopover},this.props.className);return s().createElement("button",{ref:"infoPopover",className:e,onClick:this._onClick},s().createElement(h.Z,{icon:"info-outline",size:18}),this.props.screenReaderText?s().createElement("span",{className:"screen-reader-text"},this.props.screenReaderText):"",s().createElement(f.Z,{id:this.props.id,isVisible:this.state.showPopover,context:this.refs&&this.refs.infoPopover,ignoreContext:this.props.ignoreContext,position:this.props.position,onClose:this._onClose,className:d()("dops-info-popover__tooltip",this.props.className),rootClassName:this.props.rootClassName},this.props.children))},_onClick(e){this.props.onClick(),e.preventDefault(),this.setState({showPopover:!this.state.showPopover},this._recordStats)},_onClose(){this.setState({showPopover:!1},this._recordStats)},_recordStats(){const{gaEventCategory:e,popoverName:t}=this.props;if(e&&t){const n=this.state.showPopover?" Opened":" Closed";p.Z.ga.recordEvent(e,"InfoPopover: "+t+n)}}})},35491:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),o=n(99196),s=n.n(o),a=n(2620),c=n(89105),u=n.n(c);class f extends s().Component{render(){const e=u()(this.props.className,"jp-loading-placeholder");return s().createElement("div",{className:e},s().createElement("span",{className:"dashicons dashicons-wordpress-alt"}))}}i()(f,"displayName","LoadingPlaceholder"),t.Z=(0,a.$j)((e=>e))(f)},7179:function(e,t,n){"use strict";n.d(t,{l:function(){return f}});var r=n(2620),i=n(92819),o=n(65736),s=n(93107),a=n(17752),c=n(66552),u=n(41147);const __=o.__;function f(e){return(0,r.$j)(((e,t)=>({validValues:function(n){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"string"==typeof(0,i.get)(t,["module","module"])&&(r=t.module.module),(0,s.R9)(e,r,n)},getOptionCurrentValue:(t,n)=>(0,s.C5)(e,t,n),getSettingCurrentValue:function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,a.$8)(e,t,n)},getSiteRoles:()=>(0,c.Td)(e),isUpdating:t=>(0,a.Cu)(e,t),adminEmailAddress:(0,c.je)(e),currentIp:(0,c.de)(e),siteAdminUrl:(0,c.wW)(e),isCurrentUserLinked:(0,u.BU)(e)})),(e=>({updateOptions:function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e((0,a.VP)(t,n))},regeneratePostByEmailAddress:()=>{const t={progress:__("Updating Post by Email address…","jetpack"),success:__("Regenerated Post by Email address.","jetpack"),error:e=>(0,o.sprintf)(
+/* translators: placeholder is an error message. */
+__("Error regenerating Post by Email address. %s","jetpack"),e)};return e((0,a.VP)({post_by_email_address:"regenerate"},t))},setUnsavedSettingsFlag:()=>e((0,a.a6)()),clearUnsavedSettingsFlag:()=>e((0,a._1)()),refreshSettings:()=>e((0,a.wv)())})))(e)}},5e4:function(e,t,n){"use strict";n.d(t,{u:function(){return l}});var r=n(29183),i=n.n(r),o=n(27538),s=n.n(o),a=n(99196),c=n.n(a),u=n(11973),f=n(92819),h=n(7179);function l(e){class t extends c().Component{constructor(){var e;super(...arguments),e=this,s()(this,"state",{options:{}}),s()(this,"onOptionChange",(e=>{const t=e.target.name;let n;n="checkbox"===e.target.type&&void 0!==e.target.checked?e.target.checked:e.target.value,this.updateFormStateOptionValue(t,n)})),s()(this,"updateFormStateOptionValue",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;"string"==typeof t&&(t={[t]:n});const r={...e.state.options,...t};return e.setState({options:r}),!0})),s()(this,"resetFormStateOption",(e=>(this.setState({options:(0,f.omit)(this.state.options,[e])}),!0))),s()(this,"updateFormStateModuleOption",(function(t,n){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e.trackSettingsToggle(t,n,!e.getOptionValue(n)),e.getOptionValue(t)?r?e.props.updateOptions({[t]:!1,[n]:!e.getOptionValue(n)}):e.props.updateOptions({[n]:!e.getOptionValue(n)}):e.props.updateOptions({[t]:!0,[n]:!0})})),s()(this,"toggleModuleNow",(e=>{this.props.updateOptions({[e]:!this.getOptionValue(e)})})),s()(this,"onSubmit",(e=>{e.preventDefault(),this.props.updateOptions(this.state.options).then((()=>{const e={};(0,f.each)(this.state.options,((t,n)=>{n=n.replace(/\-/,"_"),e[n]=t})),this.trackFormSubmission(e),this.setState({options:{}})})).then((()=>{this.props.refreshSettings(),this.props.clearUnsavedSettingsFlag()}))})),s()(this,"getOptionValue",(function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(0,f.get)(e.state.options,t,e.props.getSettingCurrentValue(t,n))})),s()(this,"shouldSaveButtonBeDisabled",(()=>this.isSavingAnyOption()||!this.isDirty())),s()(this,"isDirty",(()=>!!Object.keys(this.state.options).length)),s()(this,"isSavingAnyOption",(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.props.isUpdating(t)})),s()(this,"trackFormSubmission",(e=>{u.Z.tracks.recordEvent("jetpack_wpa_settings_form_submit",e)})),s()(this,"trackSettingsToggle",((e,t,n)=>{u.Z.tracks.recordEvent("jetpack_wpa_settings_toggle",{module:e,setting:t,toggled:n?"on":"off"})}))}componentDidUpdate(){this.isDirty()&&this.props.setUnsavedSettingsFlag()}render(){return c().createElement(e,i()({getOptionValue:this.getOptionValue,onSubmit:this.onSubmit,onOptionChange:this.onOptionChange,updateFormStateOptionValue:this.updateFormStateOptionValue,toggleModuleNow:this.toggleModuleNow,updateFormStateModuleOption:this.updateFormStateModuleOption,shouldSaveButtonBeDisabled:this.shouldSaveButtonBeDisabled,isSavingAnyOption:this.isSavingAnyOption,isDirty:this.isDirty,resetFormStateOption:this.resetFormStateOption},this.props))}}return(0,h.l)(t)}},77222:function(e,t,n){"use strict";n.d(t,{T:function(){return b}});var r=n(27538),i=n.n(r),o=n(99196),s=n.n(o),a=n(11268),c=n.n(a),u=n(2620),f=n(69307),h=n(65736),l=n(71415),d=n(11973),p=n(94069),g=n(93107);const __=h.__;class m extends o.Component{constructor(){super(...arguments),i()(this,"toggleModule",(()=>(this.trackModuleToggle(this.props.slug,this.props.activated),this.props.toggleModule(this.props.slug,this.props.activated)))),i()(this,"trackModuleToggle",((e,t)=>{"stats"!==e&&d.Z.tracks.recordEvent("jetpack_wpa_module_toggle",{module:e,toggled:t?"off":"on"})})),i()(this,"isDisabledByOverride",(()=>{const e=this.props.getModuleOverride(this.props.slug);return this.props.overrideCondition?this.props.overrideCondition===e:!!e})),i()(this,"getDisabledReason",(()=>{if(!this.isDisabledByOverride())return null;const e=this.props.getModuleOverride(this.props.slug),t={link:s().createElement("a",{href:(0,l.Z)("jetpack-support-module-overrides"),target:"_blank",rel:"noopener noreferrer",style:{textDecoration:"underline"}})};switch(e){case"active":return(0,f.createInterpolateElement)(__("This feature has been enabled by a site administrator. <link>Learn more</link>.","jetpack"),t);case"inactive":return(0,f.createInterpolateElement)(__("This feature has been disabled by a site administrator. <link>Learn more</link>.","jetpack"),t);default:return(0,f.createInterpolateElement)(__("This feature is being managed by a site administrator. <link>Learn more</link>.","jetpack"),t)}}))}render(){return s().createElement(p.Z,{checked:this.props.activated||this.props.isModuleActivated,toggling:this.props.toggling,className:this.props.className,disabled:this.props.disabled||this.isDisabledByOverride(),id:this.props.id,onChange:this.toggleModule,disabledReason:this.getDisabledReason(),"aria-label":this.props["aria-label"]},this.props.children)}}i()(m,"displayName","ModuleToggle"),i()(m,"propTypes",{toggleModule:c().func,activated:c().bool,disabled:c().bool,className:c().string,compact:c().bool,id:c().string,overrideCondition:c().string}),i()(m,"defaultProps",{activated:!1,disabled:!1,overrideCondition:""});const b=(0,u.$j)((e=>({getModuleOverride:t=>(0,g.Qy)(e,t)})))(m)},40515:function(e,t,n){"use strict";var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(91850),f=n.n(u),h=n(90922),l=n.n(h),d=n(89105),p=n.n(d),g=n(26767),m=n.n(g),b=n(97236),v=n.n(b),y=n(92819),w=n(16291),_=n(7719);const E=l()("calypso:popover"),S=new Set;class k extends a.Component{constructor(e){super(e),this.setPopoverId(e.id),this.setDOMBehavior=this.setDOMBehavior.bind(this),this.setPosition=this.setPosition.bind(this),this.onClickout=this.onClickout.bind(this),this.onKeydown=this.onKeydown.bind(this),this.onWindowChange=this.onWindowChange.bind(this),this.state={show:e.isVisible,left:-99999,top:-99999,positionClass:this.getPositionClass(e.position)}}componentDidMount(){this.bindEscKeyListener(),this.bindDebouncedReposition(),(0,_.fN)()}UNSAFE_componentWillReceiveProps(e){if((0,_.kK)(e.context)?this.domContext=e.context:this.domContext=f().findDOMNode(e.context),!e.isVisible)return null;this.setPosition()}componentDidUpdate(e){const{isVisible:t}=this.props;return t!==e.isVisible&&(t?this.show():this.hide()),this.domContainer&&this.domContext&&t&&t!==e.isVisible?(this.debug("Update position after render completes"),void setTimeout((()=>this.setPosition()),0)):null}componentWillUnmount(){this.debug("unmounting .... "),this.unbindClickoutHandler(),this.unbindDebouncedReposition(),this.unbindEscKeyListener(),(0,_.zR)(),S.delete(this.id),E("current popover instances: ",S.size)}bindEscKeyListener(){return this.props.closeOnEsc?this.escEventHandlerAdded?null:(this.debug("adding escKey listener ..."),this.escEventHandlerAdded=!0,void document.addEventListener("keydown",this.onKeydown,!0)):null}unbindEscKeyListener(){return this.props.closeOnEsc&&this.escEventHandlerAdded?(this.debug("unbinding `escKey` listener ..."),void document.removeEventListener("keydown",this.onKeydown,!0)):null}onKeydown(e){if(27!==e.keyCode)return null;this.close(!0)}bindClickoutHandler(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.domContainer;return e?this._clickoutHandlerReference?(this.debug("clickout event already bound"),null):(this.debug("binding `clickout` event"),void(this._clickoutHandlerReference=m()(e,this.onClickout))):(this.debug("no element to bind clickout side "),null)}unbindClickoutHandler(){this._clickoutHandlerReference&&(this.debug("unbinding `clickout` listener ..."),this._clickoutHandlerReference(),this._clickoutHandlerReference=null)}onClickout(e){let t=this.domContext&&this.domContext.contains&&!this.domContext.contains(e.target);if(this.props.ignoreContext&&t){const n=f().findDOMNode(this.props.ignoreContext);t=t&&n&&n.contains&&!n.contains(e.target)}t&&this.close()}bindDebouncedReposition(){window.addEventListener("scroll",this.onWindowChange,!0),window.addEventListener("resize",this.onWindowChange,!0)}unbindDebouncedReposition(){this.willReposition&&(window.cancelAnimationFrame(this.willReposition),this.willReposition=null),window.removeEventListener("scroll",this.onWindowChange,!0),window.removeEventListener("resize",this.onWindowChange,!0),this.debug("unbinding `debounce reposition` ...")}onWindowChange(){this.willReposition=window.requestAnimationFrame(this.setPosition)}setDOMBehavior(e){if(!e)return this.unbindClickoutHandler(),null;this.debug("setting DOM behavior"),this.bindClickoutHandler(e),this.domContainer=e,(0,_.kK)(this.props.context)?this.domContext=this.props.context:this.domContext=f().findDOMNode(this.props.context),this.domContainer.focus(),this.setPosition()}getPositionClass(){return`is-${(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props.position).replace(/\s+/g,"-")}`}computePosition(){if(!this.props.isVisible)return null;const{domContainer:e,domContext:t}=this,{position:n}=this.props;if(!e||!t)return this.debug("[WARN] no DOM elements to work"),null;let r=n;this.debug("position: %o",n),this.props.autoPosition&&(r=(0,_.X6)(n,e,t),this.debug("suggested position: %o",r));const i=(0,y.assign)({},(0,_.Ou)((0,_.cv)(r,e,t),e),{positionClass:this.getPositionClass(r)});return this.debug("updating reposition: ",i),i}debug(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];E(`[%s] ${e}`,this.id,...n)}setPopoverId(e){this.id=e||`pop__${v()(16)}`,S.add(this.id),this.debug("creating ..."),E("current popover instances: ",S.size)}setPosition(){const e=this.computePosition();if(!e)return null;this.willReposition=null,this.setState(e)}getStylePosition(){const{left:e,top:t}=this.state;return{left:e,top:t}}show(){if(!this.props.showDelay)return this.setState({show:!0}),null;this.debug("showing in %o",`${this.props.showDelay}ms`),this.clearShowTimer(),this._openDelayTimer=setTimeout((()=>{this.setState({show:!0})}),this.props.showDelay)}hide(){this.unbindClickoutHandler(),this.setState({show:!1}),this.clearShowTimer()}clearShowTimer(){if(!this._openDelayTimer)return null;clearTimeout(this._openDelayTimer),this._openDelayTimer=null}close(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!this.props.isVisible)return this.debug("popover should be already closed"),null;this.domContext.focus(),this.props.onClose(e)}render(){if(!this.state.show)return this.debug("is hidden. return no render"),null;if(!this.props.context)return this.debug("No `context` to tie. return no render"),null;const e=p()("dops-popover",this.props.className,this.state.positionClass);return this.debug("rendering ..."),c().createElement(w.Z,{className:this.props.rootClassName},c().createElement("div",{style:this.getStylePosition(),className:e,ref:this.setDOMBehavior},c().createElement("div",{className:"dops-popover__arrow"}),c().createElement("div",{className:"dops-popover__inner"},this.props.children)))}}i()(k,"propTypes",{autoPosition:s().bool,className:s().string,closeOnEsc:s().bool,id:s().string,ignoreContext:s().shape({getDOMNode:s().function}),position:s().string,rootClassName:s().string,showDelay:s().number,onClose:s().func.isRequired,onShow:s().func}),i()(k,"defaultProps",{autoPosition:!0,className:"dops-popover",closeOnEsc:!0,isVisible:!1,position:"top",showDelay:0,onShow:()=>{}}),t.Z=k},7719:function(e,t,n){"use strict";n.d(t,{Ou:function(){return b},fN:function(){return d},zR:function(){return p},X6:function(){return g},cv:function(){return m},kK:function(){return v}});var r=n(98707),i=n.n(r),o=n(90922);const s=n.n(o)()("calypso:popover:util");function a(){const e={};return e.top=window.scrollY,e.left=window.scrollX,e.width=window.innerWidth,e.height=window.innerHeight,e.right=e.left+e.width,e.bottom=e.top+e.height,s("viewport: %o",e),e}const c={top:"bottom",bottom:"top",left:"right",right:"left"},u={top:"right",left:"top",bottom:"left",right:"bottom"};let f=a();function h(){f=a()}let l=!1;const d=()=>{if(l)return s("window events already bound");l=!0,s("bind handlers to `resize` and `scroll` events"),window.addEventListener("resize",h,!0),window.addEventListener("scroll",h,!0)},p=()=>{if(!l)return s("window events are not bound");l=!1,s("unbind handlers to `resize` and `scroll` events"),window.removeEventListener("resize",h,!0),window.removeEventListener("scroll",h,!0)},g=(e,t,n)=>{const r=i()(n),o=t.clientHeight,s=t.clientWidth,a={top:r.top-o,bottom:f.height-r.bottom-o,left:r.left-s,right:f.width-r.right-s},h=e.split(/\s+/),[l]=h;let[,d]=h;const p=function(e,t){const n=[e,c[e],u[e],c[u[e]]];let r,i=-1/0;for(let o=0,s=n.length;o<s;o++){const s=n[o],a=t[s];if(a>0)return s;a>i&&(i=a,r=e)}return r}(l,a);return d!==p&&d!==c[p]||(d=null),function(e,t,n,r,i,o){const s=t?[e+" "+t,e,e+" "+c[t]]:[e,e+" "+u[e],e+" "+c[u[e]]];let a,h=0;const l=i*o;for(let e=0,t=s.length;e<t;e++){const t=s[e],c=m(t,n,r),u=c.left+i,d=c.top+o,p=Math.min(c.top<f.top?d-f.top:f.bottom-c.top,o),g=Math.min(c.left<f.left?u-f.left:f.right-c.left,i)*p;if(g===l)return t;g>h&&(h=g,a=t)}return a}(p,d,t,n,s,o)||e};function m(e,t,n){const r=i()(t);if(!r)throw new Error("could not get bounding client rect of Tip element");const o=r.width,s=r.height,a=i()(n);if(!a)throw new Error("could not get bounding client rect of `target`");const c=a.width,u=a.height,f=function(e,t){const n=t.body||t.getElementsByTagName("body")[0],r=t.documentElement||n.parentNode,i=r.clientTop||n.clientTop||0,o=r.clientLeft||n.clientLeft||0,s=window.pageYOffset||r.scrollTop,a=window.pageXOffset||r.scrollLeft;return{top:e.top+s-i,left:e.left+a-o}}(a,document);if(!f)throw new Error("could not determine page offset of `target`");let h={};switch(e){case"top":h={top:f.top-s,left:f.left+c/2-o/2};break;case"bottom":h={top:f.top+u,left:f.left+c/2-o/2};break;case"right":h={top:f.top+u/2-s/2,left:f.left+c};break;case"left":h={top:f.top+u/2-s/2,left:f.left-o};break;case"top left":h={top:f.top-s,left:f.left+c/2-o+15};break;case"top right":h={top:f.top-s,left:f.left+c/2-15};break;case"bottom left":h={top:f.top+u,left:f.left+c/2-o+15};break;case"bottom right":h={top:f.top+u,left:f.left+c/2-15};break;case"left top":h={top:f.top+u/2-s,left:f.left-o};break;case"left bottom":h={top:f.top+u/2,left:f.left-o};break;case"right top":h={top:f.top+u/2-s,left:f.left+c};break;case"right bottom":h={top:f.top+u/2,left:f.left+c};break;default:throw new Error(`invalid position "${e}"`)}return h}const b=function(e,t){const n=i()(t).width;return e.left=Math.max(0,Math.min(e.left,f.width-n)),e},v=e=>{try{return e instanceof HTMLElement}catch(t){return"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument}}},16291:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(27538),i=n.n(r),o=n(91850),s=n.n(o),a=n(11268),c=n.n(a),u=n(99196),f=n.n(u),h=n(2620);class l extends f().Component{constructor(){super(...arguments),i()(this,"renderChildren",(()=>{let e;e=this.props&&(Object.keys(this.props).length>1||!this.props.children)?f().createElement("div",this.props,this.props.children):this.props.children,this.context.store&&(e=f().createElement(h.zt,{store:this.context.store},e)),s().render(e,this.container)}))}componentDidMount(){this.container=document.createElement("div"),document.body.appendChild(this.container),this.renderChildren()}componentDidUpdate(){this.renderChildren()}componentWillUnmount(){this.container&&(s().unmountComponentAtNode(this.container),document.body.removeChild(this.container),delete this.container)}render(){return null}}i()(l,"displayName","RootChild"),i()(l,"propTypes",{children:c().node}),i()(l,"contextTypes",{store:c().object})},27006:function(e,t,n){"use strict";var r=n(29183),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(2620),f=n(60742),h=n(89105),l=n.n(h),d=n(92819),p=n(25691),g=n(41147),m=n(66552),b=n(93107);const v=e=>{const t=e.module;if(t.module&&!e.userCanManageModules&&!(0,d.includes)(["post-by-email","publicize"],t.module))return c().createElement("span",null);const n=e.disableInOfflineMode&&e.isUnavailableInOfflineMode(t.module),r=e.disableInSiteConnectionMode&&e.isUnavailableInSiteConnectionMode(t.module);let o=n||r;return"post-by-email"!==t.module||e.isLinked||(o=!0),c().createElement("div",{className:l()("jp-form-settings-group",e.className)},c().createElement(f.Z,{className:l()({"jp-form-has-child":e.hasChild,"jp-form-settings-disable":n||r})},o&&c().createElement("div",{className:"jp-form-block-fade"}),e.support.link&&c().createElement(p.Z,i()({module:t},e.support)),e.children))};v.propTypes={support:s().object,module:s().object,disableInOfflineMode:s().bool.isRequired,disableInSiteConnectionMode:s().bool,isOfflineMode:s().bool.isRequired,isSitePublic:s().bool.isRequired,userCanManageModules:s().bool.isRequired,isLinked:s().bool.isRequired,isUnavailableInOfflineMode:s().func.isRequired,className:s().string},v.defaultProps={support:{text:"",link:""},module:{},disableInOfflineMode:!1,disableInSiteConnectionMode:!1,isOfflineMode:!1,isSitePublic:!0,userCanManageModules:!1,isLinked:!1,isUnavailableInOfflineMode:d.noop,className:""},t.Z=(0,u.$j)((e=>({isOfflineMode:(0,g.Ex)(e),isSitePublic:(0,m.$r)(e),userCanManageModules:(0,m.pK)(e),userCanEditPosts:(0,m.rp)(e),isLinked:(0,g.BU)(e),isModuleActivated:t=>(0,b.mp)(e,t),isUnavailableInOfflineMode:t=>(0,g.t_)(e,t),isUnavailableInSiteConnectionMode:t=>(0,g.IK)(e,t)})))(v)},25691:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(27538),i=n.n(r),o=n(11268),s=n.n(o),a=n(99196),c=n.n(a),u=n(65736),f=n(11973),h=n(87279),l=n(68961);const __=u.__;class d extends a.Component{constructor(){super(...arguments),this.getModule=this.getModule.bind(this),this.trackInfoClick=this.trackInfoClick.bind(this),this.trackLearnMoreClick=this.trackLearnMoreClick.bind(this),this.trackPrivacyInfoClick=this.trackPrivacyInfoClick.bind(this)}getModule(){return this.props.module||{}}trackInfoClick(){f.Z.tracks.recordJetpackClick({target:"info-icon",feature:this.getModule().module})}trackLearnMoreClick(){f.Z.tracks.recordJetpackClick({target:"learn-more",feature:this.getModule().module})}trackPrivacyInfoClick(){f.Z.tracks.recordJetpackClick({target:"privacy-info",feature:this.getModule().module})}render(){const{text:e,link:t}=this.props;let{privacyLink:n}=this.props;return!n&&t&&(n=t+"#privacy"),c().createElement("div",{className:"jp-support-info"},c().createElement(h.Z,{position:"left",onClick:this.trackInfoClick,screenReaderText:__("Learn more","jetpack")},e+" ",c().createElement("span",{className:"jp-support-info__learn-more"},c().createElement(l.Z,{href:t,onClick:this.trackLearnMoreClick,target:"_blank",rel:"noopener noreferrer"},__("Learn more","jetpack"))),c().createElement("span",{className:"jp-support-info__privacy"},c().createElement(l.Z,{href:n,onClick:this.trackPrivacyInfoClick,target:"_blank",rel:"noopener noreferrer"},__("Privacy information","jetpack")))))}}i()(d,"propTypes",{module:s().object,text:s().string,link:s().string,privacyLink:s().string}),i()(d,"defaultProps",{module:void 0,text:"",link:"",privacyLink:""})},9481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},11973:function(e,t,n){"use strict";var r=n(9481),i=n(80816);i.Z.setMcAnalyticsEnabled((0,r.Z)("mc_analytics_enabled")),i.Z.setGoogleAnalyticsEnabled((0,r.Z)("google_analytics_enabled"),(0,r.Z)("google_analytics_key")),t.Z=i.Z},81200:function(e,t,n){"use strict";n.d(t,{Cv:function(){return W},yy:function(){return Y},sc:function(){return X}});var r=n(92819);const i="business-bundle",o="business-bundle-2y",s="business-bundle-monthly",a="ecommerce-bundle",c="ecommerce-bundle-2y",u="ecommerce-bundle-monthly",f="value_bundle",h="jetpack_premium",l="jetpack_business",d="jetpack_personal",p="jetpack_premium_monthly",g="jetpack_business_monthly",m="jetpack_personal_monthly",b="jetpack_backup_t1_yearly",v="jetpack_backup_t1_monthly",y="jetpack_backup_t2_yearly",w="jetpack_backup_t2_monthly",_="jetpack_search",E="jetpack_search_monthly",S="jetpack_security_t1_yearly",k="jetpack_security_t1_monthly",M="jetpack_security_t2_yearly",C="jetpack_security_t2_monthly",A="jetpack_complete",x="jetpack_complete_monthly",I="wpcom_search",O="wpcom_search_monthly",T="jetpack_scan",N="jetpack_scan_monthly",j="jetpack_anti_spam",z="jetpack_anti_spam_monthly",P="jetpack_videopress",R="jetpack_videopress_monthly",B="jetpack_backup_daily",L="jetpack_backup_daily_monthly",D="jetpack_backup_realtime",U="jetpack_backup_realtime_monthly",F="jetpack_security_daily",H="jetpack_security_daily_monthly",V="jetpack_security_realtime",q="jetpack_security_realtime_monthly",K=[b,v,y,w,B,L,D,U],$=[_,E,I,O],Z=[T,N],J=[j,z],G=[P,R];function W(e){return(0,r.includes)($,e)}function Y(e){return function(e){return(0,r.includes)(K,e)}(e)||W(e)||function(e){return Z.includes(e)}(e)||function(e){return J.includes(e)}(e)||function(e){return G.includes(e)}(e)}function X(e){switch(e){case"jetpack_free":case"free_plan":return"is-free-plan";case"personal-bundle":case"personal-bundle-2y":case"personal-bundle-monthly":case d:case m:return"is-personal-plan";case f:case"value_bundle-2y":case"value_bundle-monthly":case h:case p:return"is-premium-plan";case i:case o:case s:case l:case g:case a:case c:case u:return"is-business-plan";case S:case k:return"is-security-t1-plan";case M:case C:return"is-security-t2-plan";case A:case x:case"vip":return"is-complete-plan";case b:case v:return"is-backup-t1-plan";case y:case w:return"is-backup-t2-plan";case _:case E:case I:case O:return"is-search-plan";case T:case N:return"is-scan-plan";case j:case z:return"is-anti-spam-plan";case P:case R:return"is-videopress-plan";case F:case H:return"is-daily-security-plan";case V:case q:return"is-realtime-security-plan";case B:case L:return"is-daily-backup-plan";case D:case U:return"is-realtime-backup-plan";default:return""}}},63854:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),o=n(2620),s=n(65736),a=n(81546),c=n(97967),u=n(19570),f=n(35491),h=n(19261),l=n(142),d=n(11973),p=n(88872),g=n(66552);const __=s.__;t.Z=(0,o.$j)((e=>({apiRootUrl:(0,g.yB)(e),apiNonce:(0,g.VY)(e),isLoading:(0,p.GR)(e),siteAdminUrl:(0,g.wW)(e),tracksUserData:(0,g.hv)(e),currentVersion:(0,g.w1)(e)})),{setInitialState:g.KY})((function(e){const{apiRootUrl:t,apiNonce:n,setInitialState:o,siteAdminUrl:s}=e;var p;p=()=>{t&&u.ZP.setApiRoot(t),n&&u.ZP.setApiNonce(n),o&&o(),(()=>{const t=e.tracksUserData;t&&d.Z.initialize(t.userid,t.username,{blog_id:t.blogid})})(),d.Z.tracks.recordEvent("jetpack_search_admin_page_view",{current_version:e.currentVersion})},(0,r.useMemo)(p,[]);const g=s+"admin.php?page=jetpack_about";return i().createElement("div",{className:"jp-search-dashboard-page"},e.isLoading&&i().createElement(f.Z,null),!e.isLoading&&i().createElement(r.Fragment,null,i().createElement("div",{className:"jp-search-dashboard-header jp-search-dashboard-wrap"},i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-12 md-col-span-8 sm-col-span-4"},i().createElement("div",{className:"jp-search-dashboard-header__logo-container"},i().createElement(a.Z,{className:"jp-search-dashboard-header__masthead"}))))),i().createElement("div",{className:"jp-search-dashboard-top jp-search-dashboard-wrap"},i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"jp-search-dashboard-top__title lg-col-span-6 md-col-span-7 sm-col-span-4"},i().createElement("h1",null,__("Help your visitors find exactly what they're looking for, fast","jetpack"))),i().createElement("div",{className:" lg-col-span-6 md-col-span-1 sm-col-span-0"})),i().createElement("div",{className:"jp-search-dashboard-row","aria-hidden":"true"},i().createElement("div",{className:"lg-col-span-1 md-col-span-1 sm-col-span-0"}),i().createElement("div",{className:"jp-search-dashboard-top__mocked-search-interface lg-col-span-10 md-col-span-6 sm-col-span-4"},i().createElement(l.Z,null)),i().createElement("div",{className:"lg-col-span-1 md-col-span-1 sm-col-span-0"}))),i().createElement("div",{className:"jp-search-dashboard-bottom"},i().createElement(h.Z,null)),i().createElement("div",{className:"jp-search-dashboard-footer jp-search-dashboard-wrap"},i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement(c.Z,{a8cLogoHref:g,moduleName:__("Jetpack Search","jetpack"),className:"lg-col-span-12 md-col-span-8 sm-col-span-4"})))))}))},21971:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),o=n(65736);const __=o.__;t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{upgrade:!0};return i().createElement("a",{className:"jp-instant-search-upsell-nudge jp-search-dashboard-cut",href:e.href},i().createElement("span",null,__("Offer instant search results to your visitors as soon as they start typing. ","jetpack")),i().createElement("span",null,e.upgrade&&i().createElement("b",null,__("Upgrade to Jetpack Instant Search now","jetpack")),!e.upgrade&&i().createElement("b",null,__("Purchase Jetpack Instant Search now","jetpack"))))}},4615:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var r=n(99196),i=n.n(r),o=n(65736),s=n(22256),a=n(9233);const __=o.__;function c(){return i().createElement("div",{className:"jp-mocked-instant-search","aria-hidden":"true"},i().createElement("div",{className:"jp-mocked-instant-search__search-controls"},i().createElement("div",{className:"jp-mocked-instant-search__search-icon"},i().createElement(s.Z,{icon:"search",size:24})),i().createElement("div",{className:"jp-mocked-instant-search__search-mock-input"},i().createElement(a.Z,{style:{height:"50px",width:"80%",maxWidth:"212px"}})),i().createElement("div",{className:"jp-mocked-instant-search__close-button"},i().createElement(s.Z,{icon:"cross",size:24}))),i().createElement("div",{className:"jp-mocked-instant-search__search-results"},i().createElement("div",{className:"jp-mocked-instant-search__search-results-primary"},i().createElement("div",{className:"jp-mocked-instant-search__search-results-header"},i().createElement("div",{className:"jp-mocked-instant-search__result-statistics"},
+/* translators: %s is replaced with the number of search results */
+(0,o.sprintf)(__("Found %s results","jetpack"),"27")),i().createElement("div",{className:"jp-mocked-instant-search__result-sort-list"},i().createElement("span",{className:"jp-mocked-instant-search__result-sort-selected"},__("Relevance","jetpack")),i().createElement("span",null,"·"),i().createElement("span",null,__("Newest","jetpack")),i().createElement("span",null,"·"),i().createElement("span",null,__("Oldest","jetpack")))),i().createElement("div",{className:"jp-mocked-instant-search__search-results-content"},Array.apply(null,Array(3)).map(((e,t)=>i().createElement("div",{className:"jp-mocked-instant-search__search-result",key:t},i().createElement(a.Z,{style:{height:"2.5em",width:"50%",maxWidth:"200px",margin:"0.1em 0.1em 1em 0.1em"}}),i().createElement(a.Z,{style:{height:"1em",width:"90%",margin:"0.1em"}}),i().createElement(a.Z,{style:{height:"1em",width:"70%",margin:"0.1em"}})))))),i().createElement("div",{className:"jp-mocked-instant-search__search-results-secondary"},i().createElement("div",{className:"jp-mocked-instant-search__search-filter-header"},__("Filter options","jetpack")),i().createElement("div",{className:"jp-mocked-instant-search__search-filter-list"},Array.apply(null,Array(2)).map(((e,t)=>i().createElement("div",{className:"jp-mocked-instant-search__search-filter",key:t},i().createElement("label",null,i().createElement("input",{type:"checkbox",disabled:"disabled"})," ",i().createElement(a.Z,{style:{width:"30%"}})))))))))}},70133:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var r=n(99196),i=n.n(r),o=n(22256),s=n(9233);function a(){return i().createElement("div",{className:"jp-mocked-legacy-search","aria-hidden":"true"},i().createElement("div",{className:"jp-mocked-legacy-search__search-controls"},i().createElement("div",{className:"jp-mocked-legacy-search__search-icon"},i().createElement(o.Z,{icon:"search",size:24})),i().createElement("div",{className:"jp-mocked-legacy-search__search-input"},i().createElement(s.Z,{style:{height:"50px",width:"80%",maxWidth:"212px"}}))))}},142:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),o=n(2620),s=n(4615),a=n(70133),c=n(81200),u=n(88872);t.Z=(0,o.$j)((e=>{const t=(0,c.sc)((0,u.UL)(e).product_slug);return{hasActiveSearchPurchase:(0,u.o$)(e),isBusinessPlan:"is-business-plan"===t}}))((function(e){const{hasActiveSearchPurchase:t,isBusinessPlan:n}=e,o=n&&!t;return i().createElement(r.Fragment,null,o&&i().createElement(a.Z,null),!o&&i().createElement(s.Z,null))}))},19261:function(e,t,n){"use strict";var r=n(99196),i=n.n(r),o=n(2620),s=n(65736),a=n(69307),c=n(27219),u=n(94069),f=n(77222),h=n(27006),l=n(5e4),d=n(9913),p=n(81200),g=n(21971),m=n(11973),b=n(41147),v=n(66552),y=n(88872),w=n(17752);const __=s.__,_=__("Jetpack Search is an incredibly powerful and customizable replacement for the search capability built into WordPress that helps your visitors find the right content.","jetpack"),E=__("Instant search will allow your visitors to get search results as soon as they start typing. If deactivated, Jetpack Search will still optimize your search results but visitors will have to submit a search query before seeing any results.","jetpack");t.Z=(0,o.$j)((e=>{const t=(0,p.sc)((0,y.UL)(e).product_slug);return{hasActiveSearchPurchase:(0,y.o$)(e),inOfflineMode:(0,b.Ex)(e),isBusinessPlan:"is-business-plan"===t,isLoading:(0,y.GR)(e),failedToEnableSearch:!(0,w.qg)(e,"search")&&!(0,w.Cu)(e,"search")&&!1===(0,w.p0)(e,"search"),siteID:(0,y.WQ)(e),upgradeUrl:(0,v.Qq)(e,"jetpack-search"),siteAdminUrl:(0,v.wW)(e),isInstantSearchPromotionActive:(0,v.Hy)(e)}}))((0,l.u)((function(e){const{failedToEnableSearch:t,hasActiveSearchPurchase:n,updateOptions:o,siteAdminUrl:l,isInstantSearchPromotionActive:p}=e,b=e.getOptionValue("search"),v=e.getOptionValue("instant_search_enabled","search"),y=(0,r.useCallback)((()=>{const e={search:!b};n&&v!==!b&&(e.instant_search_enabled=!b),o(e),m.Z.tracks.recordEvent("jetpack_search_module_toggle",e)}),[n,b,o,v]),w=(0,r.useCallback)((()=>{const e={instant_search_enabled:n&&!v};e.instant_search_enabled&&!b&&(e.search=!0),o(e),m.Z.tracks.recordEvent("jetpack_search_instant_toggle",e)}),[n,v,b,o]);(0,r.useEffect)((()=>{t&&n&&(o({has_jetpack_search_product:!0}),y())}),[t,n,o,y]);const S=!!e.isSavingAnyOption("search"),k=!!e.isSavingAnyOption("instant_search_enabled"),M=S||k,C=e.isBusinessPlan&&!e.hasActiveSearchPurchase,A=e.isBusinessPlan||e.hasActiveSearchPurchase,x=M||!b||!v||!n,I=M||!b,O=encodeURIComponent(l+"admin.php?page=jetpack-search"),T=()=>i().createElement("div",{className:"jp-form-search-settings-group__toggle is-instant-search jp-search-dashboard-wrap"},i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"}),i().createElement("div",{className:"jp-form-search-settings-group__toggle-container lg-col-span-1 md-col-span-1 sm-col-span-1"},i().createElement(u.Z,{checked:b&&v&&e.hasActiveSearchPurchase,disabled:M||!e.hasActiveSearchPurchase,onChange:w,toggling:k,className:"is-search-admin","aria-label":__("Enable instant search experience (recommended)","jetpack")})),i().createElement("div",{className:"jp-form-search-settings-group__toggle_label lg-col-span-7 md-col-span-5 sm-col-span-3"},(0,a.createInterpolateElement)(__("Enable instant search experience <span>(recommended)</span>","jetpack"),{span:i().createElement("span",null)}))),i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-3 md-col-span-2 sm-col-span-1"}),i().createElement("div",{className:"jp-form-search-settings-group__toggle-description lg-col-span-7 md-col-span-5 sm-col-span-3"},e.hasActiveSearchPurchase&&i().createElement(r.Fragment,null,i().createElement("p",{className:"jp-form-search-settings-group__toggle-explanation"},E)),!e.hasActiveSearchPurchase&&p&&i().createElement(g.Z,{href:e.upgradeUrl,upgrade:C})),i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"})),e.hasActiveSearchPurchase&&i().createElement("div",{className:"jp-form-search-settings-group-buttons jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-3 md-col-span-2 sm-col-span-1"}),i().createElement(d.Z,{className:"jp-form-search-settings-group-buttons__button is-customize-search lg-col-span-4 md-col-span-5 sm-col-span-3",href:!x&&(0,s.sprintf)("admin.php?page=jetpack-search-configure",O),disabled:x},i().createElement("span",null,__("Customize search results","jetpack"))),i().createElement("div",{className:"lg-col-span-0 md-col-span-1 sm-col-span-0"}),i().createElement("div",{className:"lg-col-span-0 md-col-span-2 sm-col-span-1"}),i().createElement(d.Z,{className:"jp-form-search-settings-group-buttons__button is-widgets-editor lg-col-span-3 md-col-span-5 sm-col-span-3",href:!I&&(0,s.sprintf)("customize.php?autofocus[panel]=widgets&return=%s",O),disabled:I},i().createElement("span",null,__("Edit sidebar widgets","jetpack"))),i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"})));return i().createElement(r.Fragment,null,i().createElement(c.Z,null),i().createElement(h.Z,{disableInOfflineMode:!0,hasChild:!0,module:{module:"search"},className:"jp-form-search-settings-group"},e.inOfflineMode&&i().createElement("p",null,"__( 'Unavailable in Offline Mode', 'jetpack' )"),!e.inOfflineMode&&e.isLoading&&i().createElement("p",null,"__( 'Loading…', 'jetpack' )"),!e.inOfflineMode&&!e.isLoading&&i().createElement("div",{className:"jp-form-search-settings-group-inside"},i().createElement("div",{className:"jp-form-search-settings-group__toggle is-search jp-search-dashboard-wrap"},i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"}),i().createElement("div",{className:"jp-form-search-settings-group__toggle-container lg-col-span-1 md-col-span-1 sm-col-span-1"},i().createElement(f.T,{activated:b&&A,compact:!0,disabled:M||!e.hasActiveSearchPurchase&&!e.isBusinessPlan,slug:"search",toggleModule:y,toggling:S,className:"is-search-admin","aria-label":__("Enable Jetpack Search","jetpack")})),i().createElement("div",{className:"jp-form-search-settings-group__toggle_label lg-col-span-7 md-col-span-5 sm-col-span-3"},__("Enable Jetpack Search","jetpack")),i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"})),i().createElement("div",{className:"jp-search-dashboard-row"},i().createElement("div",{className:"lg-col-span-3 md-col-span-2 sm-col-span-1"}),i().createElement("div",{className:"jp-form-search-settings-group__toggle-description lg-col-span-7 md-col-span-5 sm-col-span-3"},i().createElement("p",{className:"jp-form-search-settings-group__toggle-explanation"},_)),i().createElement("div",{className:"lg-col-span-2 md-col-span-1 sm-col-span-0"}))),T())))})))},9233:function(e,t,n){"use strict";var r=n(99196),i=n.n(r);t.Z=e=>i().createElement("div",{className:"jp-search-dashboard__text-row-placeholder",style:{display:"inline-block",borderRadius:"10px",maxHeight:"1.5em",width:"100%",height:"1em",backgroundColor:"#E9EFF3",...e.style}})},67592:function(e,t,n){"use strict";n.d(t,{R9:function(){return r},q7:function(){return i},Uy:function(){return o},hm:function(){return s},J1:function(){return a},U7:function(){return c},BV:function(){return u},ie:function(){return f},AA:function(){return h},IW:function(){return l},Mo:function(){return d},dD:function(){return p},lj:function(){return g},o2:function(){return m},yb:function(){return b},bG:function(){return v},sO:function(){return y},B9:function(){return w},T:function(){return _},YD:function(){return E},X0:function(){return S},kK:function(){return k},rA:function(){return M},TB:function(){return C},jE:function(){return A},kF:function(){return x},I3:function(){return I},sG:function(){return O},n2:function(){return T},Jy:function(){return N},Gu:function(){return j},xk:function(){return z},CD:function(){return P},L:function(){return R},Lo:function(){return B},Hy:function(){return L},m:function(){return D},a8:function(){return U},ar:function(){return F},TR:function(){return H},H5:function(){return V},yV:function(){return q},QG:function(){return K},c0:function(){return $},Cf:function(){return Z},x3:function(){return J},Mi:function(){return G},$I:function(){return W},as:function(){return Y},RR:function(){return X},Fm:function(){return Q},KD:function(){return ee},BG:function(){return te},BB:function(){return ne},Pi:function(){return re},yE:function(){return ie},HO:function(){return oe},YC:function(){return se},$0:function(){return ae},w_:function(){return ce},g:function(){return ue},i7:function(){return fe},ik:function(){return he},Pp:function(){return le},hz:function(){return de},QD:function(){return pe},JA:function(){return ge},dS:function(){return me},rY:function(){return be},q4:function(){return ve},jH:function(){return ye},QF:function(){return we},BX:function(){return _e},gY:function(){return Ee},FL:function(){return Se},Ns:function(){return ke},TI:function(){return Me},rQ:function(){return Ce},fH:function(){return Ae},l9:function(){return xe},Mg:function(){return Ie},nD:function(){return Oe},rw:function(){return Te},Vl:function(){return Ne},VN:function(){return je},g9:function(){return ze},Fe:function(){return Pe},lt:function(){return Re},Dz:function(){return Be},Ab:function(){return Le},Ep:function(){return De},zO:function(){return Ue},XU:function(){return Fe},y$:function(){return He},qU:function(){return Ve},s6:function(){return qe},z1:function(){return Ke},jb:function(){return $e},x1:function(){return Ze},Nk:function(){return Je},qY:function(){return Ge},zD:function(){return We},IZ:function(){return Ye},lh:function(){return Xe},fX:function(){return Qe},tU:function(){return et},Ez:function(){return tt},Qm:function(){return nt},XP:function(){return rt},K0:function(){return it},Fc:function(){return ot},b8:function(){return st},me:function(){return at},Vd:function(){return ct},tl:function(){return ut},Yo:function(){return ft},mL:function(){return ht},hF:function(){return lt},CM:function(){return dt},it:function(){return pt},Dg:function(){return gt},ml:function(){return mt},Yk:function(){return bt},fe:function(){return vt},N9:function(){return yt},vr:function(){return wt},M0:function(){return _t},$F:function(){return Et},b6:function(){return St},cz:function(){return kt},$d:function(){return Mt},s9:function(){return Ct},km:function(){return At},oQ:function(){return xt},UI:function(){return It},Uq:function(){return Ot},U$:function(){return Tt},R5:function(){return Nt},lO:function(){return jt},jt:function(){return zt}});const r="JETPACK_SET_INITIAL_STATE",i="CONNECT_URL_FETCH",o="CONNECT_URL_FETCH_FAIL",s="CONNECT_URL_FETCH_SUCCESS",a="DISCONNECT_SITE",c="DISCONNECT_SITE_FAIL",u="DISCONNECT_SITE_SUCCESS",f="CONNECT_USER",h="RESET_CONNECT_USER",l="UNLINK_USER",d="UNLINK_USER_FAIL",p="UNLINK_USER_SUCCESS",g="USER_CONNECTION_DATA_FETCH",m="USER_CONNECTION_DATA_FETCH_FAIL",b="USER_CONNECTION_DATA_FETCH_SUCCESS",v="SITE_RECONNECT",y="SITE_RECONNECT_SUCCESS",w="SITE_RECONNECT_FAIL",_="USER_TRACKING_SETTINGS_FETCH",E="USER_TRACKING_SETTINGS_FETCH_FAIL",S="USER_TRACKING_SETTINGS_FETCH_SUCCESS",k="USER_TRACKING_SETTINGS_UPDATE",M="USER_TRACKING_SETTINGS_UPDATE_FAIL",C="USER_TRACKING_SETTINGS_UPDATE_SUCCESS",A="JETPACK_MODULES_LIST_FETCH",x="JETPACK_MODULES_LIST_FETCH_FAIL",I="JETPACK_MODULES_LIST_RECEIVE",O="JETPACK_MODULE_ACTIVATE",T="JETPACK_MODULE_ACTIVATE_SUCCESS",N="JETPACK_MODULE_ACTIVATE_FAIL",j="JETPACK_MODULE_DEACTIVATE",z="JETPACK_MODULE_DEACTIVATE_FAIL",P="JETPACK_MODULE_DEACTIVATE_SUCCESS",R="JETPACK_MODULE_UPDATE_OPTIONS",B="JETPACK_MODULE_UPDATE_OPTIONS_FAIL",L="JETPACK_MODULE_UPDATE_OPTIONS_SUCCESS",D="JETPACK_CONNECTION_STATUS_FETCH",U="JETPACK_SITE_CONNECTED_PLUGINS_FETCH",F="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_RECEIVE",H="JETPACK_SITE_CONNECTED_PLUGINS_FETCH_FAIL",V="DASHBOARD_PROTECT_COUNT_FETCH",q="DASHBOARD_PROTECT_COUNT_FETCH_FAIL",K="DASHBOARD_PROTECT_COUNT_FETCH_SUCCESS",$="RESET_OPTIONS_SUCCESS",Z="VAULTPRESS_SITE_DATA_FETCH",J="VAULTPRESS_SITE_DATA_FETCH_FAIL",G="VAULTPRESS_SITE_DATA_FETCH_SUCCESS",W="AKISMET_DATA_FETCH",Y="AKISMET_DATA_FETCH_FAIL",X="AKISMET_DATA_FETCH_SUCCESS",Q="AKISMET_KEY_CHECK_FETCH",ee="AKISMET_KEY_CHECK_FETCH_FAIL",te="AKISMET_KEY_CHECK_FETCH_SUCCESS",ne="PLUGIN_UPDATES_FETCH",re="PLUGIN_UPDATES_FETCH_FAIL",ie="PLUGIN_UPDATES_FETCH_SUCCESS",oe="STATS_SWITCH_TAB",se="STATS_DATA_FETCH",ae="STATS_DATA_FETCH_FAIL",ce="STATS_DATA_FETCH_SUCCESS",ue="JETPACK_PRODUCTS_FETCH",fe="JETPACK_PRODUCTS_FETCH_RECEIVE",he="JETPACK_PRODUCTS_FETCH_FAIL",le="JETPACK_SITE_PRODUCTS_FETCH",de="JETPACK_SITE_PRODUCTS_FETCH_FAIL",pe="JETPACK_SITE_PRODUCTS_FETCH_RECEIVE",ge="JETPACK_SETTINGS_FETCH",me="JETPACK_SETTINGS_FETCH_RECEIVE",be="JETPACK_SETTINGS_FETCH_FAIL",ve="JETPACK_SETTING_UPDATE",ye="JETPACK_SETTING_UPDATE_SUCCESS",we="JETPACK_SETTING_UPDATE_FAIL",_e="JETPACK_SETTINGS_UPDATE",Ee="JETPACK_SETTINGS_UPDATE_FAIL",Se="JETPACK_SETTINGS_UPDATE_SUCCESS",ke="JETPACK_SETTINGS_SET_UNSAVED_FLAG",Me="JETPACK_SETTINGS_CLEAR_UNSAVED_FLAG",Ce="JETPACK_SITE_DATA_FETCH",Ae="JETPACK_SITE_DATA_FETCH_RECEIVE",xe="JETPACK_SITE_DATA_FETCH_FAIL",Ie="JETPACK_SITE_BENEFITS_FETCH",Oe="JETPACK_SITE_BENEFITS_FETCH_RECEIVE",Te="JETPACK_SITE_BENEFITS_FETCH_FAIL",Ne="JETPACK_SITE_FEATURES_FETCH",je="JETPACK_SITE_FEATURES_FETCH_RECEIVE",ze="JETPACK_SITE_FEATURES_FETCH_FAIL",Pe="JETPACK_SITE_PLANS_FETCH",Re="JETPACK_SITE_PLANS_FETCH_RECEIVE",Be="JETPACK_SITE_PLANS_FETCH_FAIL",Le="JETPACK_SITE_PURCHASES_FETCH",De="JETPACK_SITE_PURCHASES_FETCH_RECEIVE",Ue="JETPACK_SITE_PURCHASES_FETCH_FAIL",Fe="JETPACK_RECOMMENDATIONS_DATA_ADD_SELECTED_RECOMMENDATION",He="JETPACK_RECOMMENDATIONS_DATA_ADD_SKIPPED_RECOMMENDATION",Ve="JETPACK_RECOMMENDATIONS_DATA_FETCH",qe="JETPACK_RECOMMENDATIONS_DATA_FETCH_RECEIVE",Ke="JETPACK_RECOMMENDATIONS_DATA_FETCH_FAIL",$e="JETPACK_RECOMMENDATIONS_DATA_UPDATE",Ze="JETPACK_RECOMMENDATIONS_STEP_UPDATE",Je="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH",Ge="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_RECEIVE",We="JETPACK_RECOMMENDATIONS_PRODUCT_SUGGESTIONS_FETCH_FAIL",Ye="JETPACK_RECOMMENDATIONS_UPSELL_FETCH",Xe="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_RECEIVE",Qe="JETPACK_RECOMMENDATIONS_UPSELL_FETCH_FAIL",et="JETPACK_ACTION_NOTICES_DISMISS",tt="JETPACK_NOTICES_DISMISS_SUCCESS",nt="JETPACK_PLUGINS_DATA_FETCH",rt="JETPACK_PLUGINS_DATA_FETCH_RECEIVE",it="JETPACK_PLUGINS_DATA_FETCH_FAIL",ot="JETPACK_SEARCH_TERM",st="SET_PLAN_DURATION",at="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY",ct="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_SUCCESS",ut="JETPACK_MARKETING_SUBMIT_DISCONNECT_SURVEY_FAIL",ft="DEV_CARD_DISPLAY",ht="DEV_CARD_HIDE",lt="MOCK_SWITCH_USER_PERMISSIONS",dt="MOCK_SWITCH_THREATS",pt="REWIND_STATUS_FETCH",gt="REWIND_STATUS_FETCH_RECEIVE",mt="REWIND_STATUS_FETCH_FAIL",bt="MOCK_SWITCH_REWIND_STATE",vt="SCAN_STATUS_FETCH",yt="SCAN_STATUS_FETCH_RECEIVE",wt="SCAN_STATUS_FETCH_FAIL",_t="MOCK_SWITCH_SCAN_STATE",Et="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH",St="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_FAIL",kt="JETPACK_SITE_VERIFY_GOOGLE_STATUS_FETCH_SUCCESS",Mt="JETPACK_SITE_VERIFY_GOOGLE_REQUEST",Ct="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_SUCCESS",At="JETPACK_SITE_VERIFY_GOOGLE_REQUEST_FAIL",xt="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL",It="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_SUCCESS",Ot="JETPACK_MOBILE_LOGIN_SEND_LOGIN_EMAIL_FAIL",Tt="JETPACK_LICENSING_ERROR_UPDATE",Nt="JETPACK_LICENSING_USER_LICENSE_COUNTS_UPDATE",jt="JETPACK_LICENSING_ACTIVATION_NOTICE_DISMISS_UPDATE",zt="JETPACK_CONNECTION_HAS_SEEN_WC_CONNECTION_MODAL"},50046:function(e,t,n){"use strict";n.d(t,{sI:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.YC:return(0,i.assign)({},e,{fetchingStatsData:!0});case o.$I:return(0,i.assign)({},e,{fetchingAkismetData:!0});case o.Fm:return(0,i.assign)({},e,{checkingAkismetKey:!0});case o.Cf:return(0,i.assign)({},e,{fetchingVaultPressData:!0});case o.H5:return(0,i.assign)({},e,{fetchingProtectData:!0});case o.BB:return(0,i.assign)({},e,{fetchingPluginUpdates:!0});case o.$0:case o.w_:return(0,i.assign)({},e,{fetchingStatsData:!1});case o.as:case o.RR:return(0,i.assign)({},e,{fetchingAkismetData:!1});case o.KD:case o.BG:return(0,i.assign)({},e,{checkingAkismetKey:!1});case o.yV:case o.QG:return(0,i.assign)({},e,{fetchingProtectData:!1});case o.Pi:case o.yE:return(0,i.assign)({},e,{fetchingPluginUpdates:!1});case o.x3:case o.Mi:return(0,i.assign)({},e,{fetchingVaultPressData:!1});default:return e}},activeStatsTab:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"day",t=arguments.length>1?arguments[1]:void 0;return t.type===o.HO?t.activeStatsTab:e},protectCount:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===o.QG?t.protectCount:e},vaultPressData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Mi:return t.vaultPressData;case o.CM:return(0,i.assign)({},"N/A"===e?{}:e,{data:{active:!0,features:{security:!0},security:{notice_count:t.mockCount}}});default:return e}},statsData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.w_?(0,i.assign)({},e,t.statsData):e},akismetData:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===o.RR?t.akismetData:e},akismet:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{validKey:null,invalidKeyCode:"",invalidKeyMessage:""},t=arguments.length>1?arguments[1]:void 0;return t.type===o.BG?(0,i.assign)({},e,t.akismet):e},pluginUpdates:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"N/A",t=arguments.length>1?arguments[1]:void 0;return t.type===o.yE?t.pluginUpdates:e}})},64769:function(e,t,n){"use strict";n(65736),n(21094),n(19570),n(66552)},41147:function(e,t,n){"use strict";n.d(t,{BU:function(){return r.BU},Ex:function(){return r.Ex},t_:function(){return r.t_},IK:function(){return r.IK}});var r=n(6861);n(64769)},6861:function(e,t,n){"use strict";n.d(t,{I6:function(){return c},BU:function(){return u},Ex:function(){return f},t_:function(){return h},IK:function(){return l}});var r=n(74978),i=n(92819),o=n(67592),s=n(93107);const a={disconnectingSite:!1,connectingUser:!1,unlinkingUser:!1,fetchingConnectUrl:!1,fetchingUserData:!1,reconnectingSite:!1},c=(0,r.UY)({connectUrl:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.R9:return(0,i.get)(t,"initialState.connectUrl",e);case o.hm:return t.connectUrl;default:return e}},status:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{siteConnected:window.Initial_State.connectionStatus},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.m:case o.BV:return(0,i.assign)({},e,{siteConnected:t.siteConnected});case o.dD:return(0,i.assign)({},e,{siteConnected:{...e.siteConnected,isUserConnected:!1}});case o.yb:return!0===t.userConnectionData?.currentUser?.isConnected?(0,i.assign)({},e,{siteConnected:{...e.siteConnected,hasConnectedOwner:!0}}):e;default:return e}},user:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.userData,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.yb:return(0,i.assign)({},e,t.userConnectionData);case o.dD:const n=(0,i.assign)({},e.currentUser,{isConnected:!1});return(0,i.assign)({},e,{currentUser:n});case o.hF:return(0,i.merge)({},e,t.initialState);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:a,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.J1:return(0,i.assign)({},e,{disconnectingSite:!0});case o.IW:return(0,i.assign)({},e,{unlinkingUser:!0});case o.ie:return(0,i.assign)({},e,{connectingUser:!0,connectingUserFeatureLabel:t.featureLabel});case o.AA:return(0,i.assign)({},e,{connectingUser:!1});case o.q7:return(0,i.assign)({},e,{fetchingConnectUrl:!0});case o.lj:return(0,i.assign)({},e,{fetchingUserData:!0});case o.bG:return(0,i.assign)({},e,{reconnectingSite:!0});case o.U7:case o.BV:return(0,i.assign)({},e,{disconnectingSite:!1});case o.Mo:case o.dD:return(0,i.assign)({},e,{unlinkingUser:!1});case o.Uy:case o.hm:return(0,i.assign)({},e,{fetchingConnectUrl:!1});case o.o2:case o.yb:return(0,i.assign)({},e,{fetchingUserData:!1});case o.B9:case o.sO:return(0,i.assign)({},e,{reconnectingSite:!1});default:return e}},hasSeenWCConnectionModal:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.hasSeenWCConnectionModal||!1,t=arguments.length>1?arguments[1]:void 0;return t.type===o.jt||e}});function u(e){return!!e.jetpack.connection.user.currentUser.isConnected}function f(e){return"offline"===function(e){return"object"==typeof e.jetpack.connection.status.siteConnected&&(e.jetpack.connection.status.siteConnected.offlineMode.isActive?"offline":e.jetpack.connection.status.siteConnected.isActive)}(e)}function h(e,t){return f(e)&&function(e,t){return(0,i.includes)((0,s.HS)(e).concat(["backups","scan"]),t)}(e,t)}function l(e,t){return!function(e){return(0,i.get)(e.jetpack.connection.status,["siteConnected","hasConnectedOwner"],!1)}(e)&&function(e,t){return(0,i.includes)((0,s.he)(e),t)}(e,t)}},71565:function(e,t,n){"use strict";n.d(t,{I6:function(){return o}});var r=n(74978),i=n(67592);const o=(0,r.UY)({display:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Yo:return!0;case i.mL:return!1;default:return e}}})},83097:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({disconnectSurvey:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{submitting:!1,submitted:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.me:return(0,i.assign)({},e,{submitting:!0});case o.Vd:return(0,i.assign)({},e,{submitting:!1,submitted:!0,error:null});case o.tl:return(0,i.assign)({},e,{submitting:!1,submitted:!1,error:t.error});default:return e}}})},27572:function(e,t,n){"use strict";n.d(t,{K:function(){return i}});var r=n(67592);const i=()=>e=>{e({type:r.R9,initialState:window.Initial_State})}},66552:function(e,t,n){"use strict";n.d(t,{Hy:function(){return r.Hy},je:function(){return r.je},VY:function(){return r.VY},yB:function(){return r.yB},de:function(){return r.de},w1:function(){return r.w1},wW:function(){return r.wW},Td:function(){return r.Td},hv:function(){return r.hv},Qq:function(){return r.Qq},$r:function(){return r.$r},rp:function(){return r.rp},pK:function(){return r.pK},KY:function(){return i.K}});var r=n(67643),i=n(27572)},67643:function(e,t,n){"use strict";n.d(t,{E3:function(){return c},w1:function(){return u},Td:function(){return f},je:function(){return h},wW:function(){return d},$r:function(){return p},pK:function(){return g},rp:function(){return m},VY:function(){return v},yB:function(){return y},hv:function(){return E},de:function(){return S},Hy:function(){return k},Qq:function(){return A}});var r=n(92819),i=n(71415),o=n(67592),s=n(89238),a=(n(13553),n(41147));const c=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.R9:return(0,r.assign)({},e,t.initialState);case o.hF:return(0,r.merge)({},e,{userData:t.initialState});default:return e}};function u(e){return(0,r.get)(e.jetpack.initialState,"currentVersion","")}function f(e){return(0,r.get)(e.jetpack.initialState.stats,"roles",{})}function h(e){return(0,r.get)(e.jetpack.initialState,["userData","currentUser","wpcomUser","email"])}function l(e){return(0,r.get)(e.jetpack.initialState,"rawUrl",{})}function d(e){return(0,r.get)(e.jetpack.initialState,"adminUrl",{})}function p(e){return(0,r.get)(e.jetpack.initialState,["connectionStatus","isPublic"])}function g(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"manage_modules",!1)}function m(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser.permissions,"edit_posts",!1)}function b(e){return(0,r.get)(e.jetpack.initialState.userData.currentUser,"id","")}function v(e){return(0,r.get)(e.jetpack.initialState,"WP_API_nonce")}function y(e){return(0,r.get)(e.jetpack.initialState,"WP_API_root")}function w(e){return(0,r.get)(e.jetpack.initialState,"purchaseToken")}function _(e){return(0,r.get)(e.jetpack.initialState,"calypsoEnv")}function E(e){return(0,r.get)(e.jetpack.initialState,"tracksUserData")}function S(e){return(0,r.get)(e.jetpack.initialState,"currentIp")}function k(e){return(0,r.get)(e.jetpack.initialState.siteData,"showPromotions",!0)}function M(e){return(0,r.get)(e.jetpack.initialState,"aff","")}function C(e){return(0,r.get)(e.jetpack.initialState,"partnerSubsidiaryId","")}const A=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const o=M(e),c=C(e),u=n||b(e),f=w(e),h=_(e);r&&"monthly"===(0,s.b)(e)&&(t+="-monthly");const d={site:l(e)};return o&&(d.aff=o),u&&(d.u=u),c&&(d.subsidiaryId=c),d.query="",(0,a.BU)(e)||(d.query+="unlinked=1&"),f&&(d.query+=`purchasetoken=${f}`),h&&(d.calypso_env=h),(0,i.Z)(t,d)}},93036:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({notice:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.BV?"disconnected":e},dismissed:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.dismissedNotices,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.tU:return(0,i.assign)({},e,{[t.notice]:!0});case o.Ez:return(0,i.assign)({},e,t.dismissedNotices);case o.c0:return!1;default:return e}}})},88584:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(92819),i=n(74978),o=n(67592);const s=(0,i.UY)({error:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.Initial_State.licensing.error,t=arguments.length>1?arguments[1]:void 0;return t.type===o.U$?t.error:e},userCounts:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.userCounts)&&void 0!==e?e:{},n=arguments.length>1?arguments[1]:void 0;return n.type===o.R5?(0,r.assign)({},t,n.counts):t},activationNoticeDismiss:function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null!==(e=window.Initial_State.licensing.activationNoticeDismiss)&&void 0!==e?e:{last_detached_count:null,last_dismissed_time:null},n=arguments.length>1?arguments[1]:void 0;return n.type===o.lO?(0,r.assign)({},t,n.dismissData):t}})},36900:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({mobile:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{sendingLoginEmail:!1,loginEmailSent:!1,error:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.oQ:return(0,i.assign)({},e,{sendingLoginEmail:!0});case o.UI:return(0,i.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!0,error:null});case o.Uq:return(0,i.assign)({},e,{sendingLoginEmail:!1,loginEmailSent:!1,error:t.error});default:return e}}})},7954:function(e,t,n){"use strict";n.d(t,{DK:function(){return i},Uq:function(){return o}});var r=n(92819);n(65736),n(21094),n(91172),n(19570);function i(e,t){if("custom-content-types"!==e)return!1;t||jQuery("#menu-posts-jetpack-portfolio, #menu-posts-jetpack-testimonial").toggle(),(0,r.forEach)(t,(function(e,t){"jetpack_portfolio"===t&&jQuery("#menu-posts-jetpack-portfolio, .jp-toggle-portfolio").toggle(),"jetpack_testimonial"===t&&jQuery("#menu-posts-jetpack-testimonial, .jp-toggle-testimonial").toggle()}))}function o(e){(0,r.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(t=>t in e))&&window.location.reload()}},93107:function(e,t,n){"use strict";n.d(t,{C5:function(){return r.C5},R9:function(){return r.R9},Qy:function(){return r.Qy},HS:function(){return r.HS},he:function(){return r.he},mp:function(){return r.mp},DK:function(){return i.DK},Uq:function(){return i.Uq}});var r=n(91172),i=n(7954)},91172:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},C5:function(){return c},R9:function(){return u},HS:function(){return f},he:function(){return h},mp:function(){return l},Qy:function(){return d}});var r=n(74978),i=n(92819),o=n(67592);n(61744);const s={fetchingModulesList:!1,activating:{},deactivating:{},updatingOption:{}},a=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.R9:return(0,i.assign)({},t.initialState.getModules);case o.I3:return(0,i.assign)({},e,t.modules);case o.n2:return(0,i.assign)({},e,{[t.module]:(0,i.assign)({},e[t.module],{activated:!0})});case o.CD:return(0,i.assign)({},e,{[t.module]:(0,i.assign)({},e[t.module],{activated:!1})});case o.Hy:const n=(0,i.assign)({},e[t.module]);return Object.keys(t.newOptionValues).forEach((e=>{n.options[e].current_value=t.newOptionValues[e]})),(0,i.assign)({},e,{[t.module]:n});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.jE:return(0,i.assign)({},e,{fetchingModulesList:!0});case o.kF:case o.I3:return(0,i.assign)({},e,{fetchingModulesList:!1});case o.sG:return(0,i.assign)({},e,{activating:(0,i.assign)({},e.activating,{[t.module]:!0})});case o.Jy:case o.n2:return(0,i.assign)({},e,{activating:(0,i.assign)({},e.activating,{[t.module]:!1})});case o.Gu:return(0,i.assign)({},e,{deactivating:(0,i.assign)({},e.deactivating,{[t.module]:!0})});case o.xk:case o.CD:return(0,i.assign)({},e,{deactivating:(0,i.assign)({},e.deactivating,{[t.module]:!1})});case o.L:const n=(0,i.assign)({},e.updatingOption);return n[t.module]=(0,i.assign)({},n[t.module]),Object.keys(t.newOptionValues).forEach((e=>{n[t.module][e]=!0})),(0,i.assign)({},e,{updatingOption:(0,i.assign)({},e.updatingOption,n)});case o.Lo:case o.Hy:const r=(0,i.assign)({},e.updatingOption);return r[t.module]=(0,i.assign)({},r[t.module]),Object.keys(t.newOptionValues).forEach((e=>{r[t.module][e]=!1})),(0,i.assign)({},e,{updatingOption:(0,i.assign)({},e.updatingOption,r)});default:return e}}});function c(e,t,n){return(0,i.get)(e.jetpack.modules.items,[t,"options",n,"current_value"])}function u(e,t,n){return(0,i.get)(e.jetpack.modules.items,[t,"options",n,"enum_labels"],!1)}function f(e){return Object.keys(e.jetpack.modules.items).filter((t=>e.jetpack.modules.items[t].requires_connection))}function h(e){return Object.keys(e.jetpack.modules.items).filter((t=>e.jetpack.modules.items[t].requires_user_connection))}function l(e,t){return!!(0,i.get)(e.jetpack.modules.items,[t,"activated"],!1)}function d(e,t){return(0,i.get)(e.jetpack.modules.items,[t,"override"],!1)}},89238:function(e,t,n){"use strict";n.d(t,{I:function(){return o},b:function(){return s}});var r=n(74978),i=n(67592);const o=(0,r.UY)({duration:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"yearly",t=arguments.length>1?arguments[1]:void 0;return t.type===i.b8?t.duration:e}});function s(e){return e.jetpack.plans.duration}},37457:function(e,t,n){"use strict";n(19570)},13553:function(e,t,n){"use strict";n(79367),n(37457)},79367:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(92819),i=n(74978),o=n(67592);const s=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.i7?t.products:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.g:return(0,r.assign)({},e,{isFetchingProducts:!0});case o.i7:case o.ik:return(0,r.assign)({},e,{isFetchingProducts:!1});default:return e}}})},46023:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({connectUrls:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.R9?(0,i.assign)({},t.initialState.externalServicesConnectUrls):e}})},55449:function(e,t,n){"use strict";n(19570)},90218:function(e,t,n){"use strict";n.d(t,{I6:function(){return r.I6}});n(55449);var r=n(68054)},68054:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});n(65736);var r=n(74978),i=n(92819),o=(n(67643),n(67592));n(30701),n(17752),n(88872),n(41147),n(61744);const s=(e,t)=>{if(Array.isArray(e)&&Array.isArray(t))return(0,i.union)(e,t)},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.s6:case o.jb:return(0,i.assign)({},e,t.data);case o.XU:{const n=(0,i.mergeWith)({},e,{selectedRecommendations:[t.slug],skippedRecommendations:[]},s);return n.skippedRecommendations=(0,i.difference)(e.skippedRecommendations,[t.slug]),n}case o.y$:{const n=(0,i.mergeWith)({},e,{selectedRecommendations:[],skippedRecommendations:[t.slug]},s);return n.selectedRecommendations=(0,i.difference)(e.selectedRecommendations,[t.slug]),n}default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.qU:return(0,i.assign)({},e,{isFetchingRecommendationsData:!0});case o.s6:return(0,i.assign)({},e,{isRecommendationsDataLoaded:!0,isFetchingRecommendationsData:!1});case o.z1:return(0,i.assign)({},e,{isFetchingRecommendationsData:!1});case o.Nk:return(0,i.assign)({},e,{isFetchingRecommendationsProductSuggestions:!0});case o.qY:case o.zD:return(0,i.assign)({},e,{isFetchingRecommendationsProductSuggestions:!1});case o.IZ:return(0,i.assign)({},e,{isFetchingRecommendationsUpsell:!0});case o.lh:case o.fX:return(0,i.assign)({},e,{isFetchingRecommendationsUpsell:!1});default:return e}},step:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===o.x1?t.step:e},upsell:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.lh:case o.fX:return t.upsell;default:return e}},productSuggestions:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.qY:case o.zD:return t.productSuggestions;default:return e}}})},11681:function(e,t,n){"use strict";var r=n(74978),i=n(31008),o=n(67643),s=n(50046),a=n(6861),c=n(71565),u=n(89238),f=n(93036),h=n(91172),l=n(40054),d=n(79367),p=n(46023),g=n(90218),m=n(79782),b=n(5606),v=n(7053),y=n(36965),w=n(17881),_=n(76719),E=n(82765),S=n(83097),k=n(50093),M=n(36900),C=n(88584);const A=(0,r.UY)({connection:a.I6,dashboard:s.sI,devCard:c.I6,initialState:o.E3,jetpackNotices:f.I6,modules:h.I6,plans:u.I,pluginsData:l.I6,products:d.I6,publicize:p.I6,recommendations:g.I6,rewind:m.I6,scan:b.I6,search:v.I6,settings:y.I6,siteData:w.I6,siteProducts:_.I6,siteVerify:E.I6,disconnectSurvey:S.I6,trackingSettings:k.I6,mobile:M.I6,licensing:C.I6});t.Z=(0,r.UY)({globalNotices:i.x,jetpack:A})},594:function(e,t,n){"use strict";var r=n(74978),i=n(53126),o=n(11681);t.Z=(0,r.qC)((0,r.md)(i.Z),"object"==typeof window&&void 0!==window.__REDUX_DEVTOOLS_EXTENSION__?window.__REDUX_DEVTOOLS_EXTENSION__():e=>e)(r.MT)(o.Z)},35922:function(e,t,n){"use strict";n(19570)},30701:function(e,t,n){"use strict";n(79782),n(35922)},79782:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),i=n(92819),o=n(67592);const s={isFetchingRewindStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Dg:return(0,i.assign)({},e,{status:t.status});case o.Yk:return(0,i.assign)({},e,{status:t.rewindState});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.it:return(0,i.assign)({},e,{isFetchingRewindStatus:!0});case o.Dg:case o.ml:return(0,i.assign)({},e,{isFetchingRewindStatus:!1});default:return e}}})},5606:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(74978),i=n(92819),o=n(67592);const s={isFetchingScanStatus:!1},a=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.N9:return(0,i.assign)({},e,{status:t.status});case o.M0:return{status:{...e.status,...t.scanState}};default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.fe:return(0,i.assign)({},e,{isFetchingScanStatus:!0});case o.N9:case o.vr:return(0,i.assign)({},e,{isFetchingScanStatus:!1});default:return e}}})},7053:function(e,t,n){"use strict";n.d(t,{I6:function(){return o}});n(92819);var r=n(74978),i=n(67592);const o=(0,r.UY)({searchTerm:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;return t.type===i.Fc?t.term:e}})},39772:function(e,t,n){"use strict";n.d(t,{a6:function(){return u},_1:function(){return f},wv:function(){return h},VP:function(){return l}});var r=n(92819),i=n(65736),o=n(21094),s=n(67592),a=n(93107),c=n(19570);const __=i.__,u=()=>({type:s.Ns}),f=()=>({type:s.TI}),h=()=>e=>(e({type:s.JA}),c.ZP.fetchSettings().then((t=>(e({type:s.dS,settings:t}),t))).catch((t=>{e({type:s.rY,error:t})}))),l=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n=>{const u={progress:__("Updating settings…","jetpack"),success:__("Updated settings.","jetpack"),error:e=>(0,i.sprintf)(
+/* translators: placeholder is an error code or an error message. */
+__("Error updating settings. %s","jetpack"),e.message||e.code||e.name||e),...t};"object"==typeof e&&(0,r.some)(["masterbar","jetpack_testimonial","jetpack_portfolio"],(t=>t in e))&&(u.success=__("Updated settings. Refreshing page…","jetpack")),n((0,o.qq)("module-setting-update")),n((0,o.qq)("module-setting-update-success"));const f=["dismiss_dash_app_card","dismiss_empty_stats_card"];return"object"!=typeof e||(0,r.some)(f,(t=>t in e))||n((0,o.iI)("is-info",u.progress,{id:"module-setting-update"})),n({type:s.BX,updatedOptions:e}),c.ZP.updateSettings(e).then((t=>{n({type:s.FL,updatedOptions:d(t,e),success:t}),(0,a.DK)(e),(0,a.Uq)(e),n((0,o.qq)("module-setting-update")),n((0,o.qq)("module-setting-update-success")),"object"!=typeof e||(0,r.some)(f,(t=>t in e))||n((0,o.iI)("is-success",u.success,{id:"module-setting-update-success",duration:2e3}))})).catch((t=>{n({type:s.gY,success:!1,error:t,updatedOptions:e}),n((0,o.qq)("module-setting-update")),n((0,o.iI)("is-error",u.error(t),{id:"module-setting-update"}))}))}};function d(e,t){let n=t;return"regenerate"===(0,r.get)(t,"post_by_email_address")&&(n={post_by_email_address:e.post_by_email_address}),n}},17752:function(e,t,n){"use strict";n.d(t,{$8:function(){return r.$8},p0:function(){return r.p0},qg:function(){return r.qg},Cu:function(){return r.Cu},_1:function(){return i._1},wv:function(){return i.wv},a6:function(){return i.a6},VP:function(){return i.VP}});var r=n(36965),i=n(39772)},36965:function(e,t,n){"use strict";n.d(t,{I6:function(){return a},$8:function(){return c},Cu:function(){return u},p0:function(){return f},qg:function(){return h}});var r=n(74978),i=n(92819),o=n(67592);const s={fetchingSettingsList:!1,settingsSent:{},updatedSettings:{}},a=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.R9:return(0,i.assign)({},e,t.initialState.settings);case o.dS:return(0,i.assign)({},t.settings);case o.jH:const n=Object.keys(t.updatedOption)[0];return(0,i.assign)({},e,{[n]:t.updatedOption[n]});case o.FL:return(0,i.assign)({},e,t.updatedOptions);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.JA:return(0,i.assign)({},e,{fetchingSettingsList:!0});case o.rY:case o.dS:return(0,i.assign)({},e,{fetchingSettingsList:!1});case o.q4:case o.BX:return(0,i.merge)({},e,{settingsSent:(0,i.mapValues)(t.updatedOptions,(()=>!0))});case o.QF:case o.jH:case o.gY:case o.FL:return(0,i.merge)({},e,{settingsSent:(0,i.mapValues)(t.updatedOptions,(()=>!1)),updatedSettings:(0,i.mapValues)(t.updatedOptions,(()=>Boolean(t.success)))});default:return e}},unsavedSettingsFlag:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Ns:return!0;case o.TI:return!1;default:return e}}});function c(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(""===n||(0,i.get)(e.jetpack.settings.items,n,!1))return(0,i.get)(e.jetpack.settings.items,t,void 0)}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return"object"==typeof t?(0,i.some)((0,i.filter)(e.jetpack.settings.requests.settingsSent,((e,n)=>(0,i.includes)(t,n))),(e=>e)):e.jetpack.settings.requests.settingsSent[t]}function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e.jetpack.settings.requests.updatedSettings[t]}function h(e,t){return!!(0,i.get)(e.jetpack.settings.items,[t],!1)}},76719:function(e,t,n){"use strict";n.d(t,{I6:function(){return o}});var r=n(74978),i=n(67592);const o=(0,r.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===i.QD?t.siteProducts:e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case i.Pp:return{...e,isFetching:!0};case i.QD:case i.hz:return{...e,isFetching:!1};default:return e}}})},82765:function(e,t,n){"use strict";n.d(t,{I6:function(){return s}});var r=n(74978),i=n(92819),o=n(67592);const s=(0,r.UY)({google:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{fetching:!1,verifying:!1,verified:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.$F:return(0,i.assign)({},e,{fetching:!0});case o.b6:return(0,i.assign)({},e,{fetching:!1,error:t.error});case o.cz:return(0,i.assign)({},e,{fetching:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,token:t.token,error:null});case o.$d:return(0,i.assign)({},e,{verifying:!0});case o.s9:return(0,i.assign)({},e,{verifying:!1,verified:t.verified,isOwner:t.isOwner,searchConsoleUrl:t.searchConsoleUrl,verificationConsoleUrl:t.verificationConsoleUrl,error:null});case o.km:return(0,i.assign)({},e,{verifying:!1,verified:!1,error:t.error});default:return e}}})},74424:function(e,t,n){"use strict";n.d(t,{tO:function(){return o},ij:function(){return s},lA:function(){return a},Z_:function(){return c}});var r=n(67592),i=n(19570);const o=()=>e=>(e({type:r.rQ}),i.ZP.fetchSiteData().then((t=>(e({type:r.fH,siteData:t}),t))).catch((t=>{e({type:r.l9,error:t})}))),s=()=>e=>(e({type:r.Vl}),i.ZP.fetchSiteFeatures().then((t=>(e({type:r.VN,siteFeatures:t}),t))).catch((t=>{e({type:r.g9,error:t})}))),a=()=>e=>(e({type:r.Fe}),i.ZP.getPlans().then((t=>(e({type:r.lt,plans:t}),t))).catch((t=>{e({type:r.Dz,error:t})}))),c=()=>e=>(e({type:r.Ab}),i.ZP.fetchSitePurchases().then((t=>(e({type:r.Ep,purchases:t}),t))).catch((t=>{e({type:r.zO,error:t})})))},88872:function(e,t,n){"use strict";n.d(t,{WQ:function(){return r.WQ},UL:function(){return r.UL},o$:function(){return r.o$},_5:function(){return r._5},GR:function(){return r.GR},lA:function(){return i.lA},tO:function(){return i.tO},ij:function(){return i.ij},Z_:function(){return i.Z_}});var r=n(17881),i=n(74424)},36583:function(e,t,n){"use strict";n(19570)},61744:function(e,t,n){"use strict";n(40054),n(36583)},40054:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(92819),i=n(74978),o=n(67592);const s={isFetchingPluginsData:!1},a=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.XP?(0,r.assign)({},t.pluginsData):e},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.Qm:return(0,r.assign)({},e,{isFetchingPluginsData:!0});case o.K0:case o.XP:return(0,r.assign)({},e,{isFetchingPluginsData:!1});default:return e}}})},17881:function(e,t,n){"use strict";n.d(t,{I6:function(){return u},_5:function(){return f},GR:function(){return h},UL:function(){return l},o$:function(){return g},WQ:function(){return m}});var r=n(74978),i=n(92819),o=n(65736),s=n(81200),a=n(67592);const __=o.__,c={isFetchingSiteData:!1},u=(0,r.UY)({data:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.fH:return(0,i.assign)({},e,t.siteData);case a.nD:return(0,i.merge)({},e,{site:{benefits:t.siteBenefits}});case a.ar:return(0,i.merge)({},e,{site:{connectedPlugins:t.connectedPlugins}});case a.VN:return(0,i.merge)({},e,{site:{features:t.siteFeatures}});case a.lt:return(0,i.merge)({},e,{sitePlans:t.plans});case a.Ep:return(0,i.merge)({},e,{sitePurchases:t.purchases});default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case a.rQ:return(0,i.assign)({},e,{isFetchingSiteData:!0});case a.Mg:return(0,i.assign)({},e,{isFetchingSiteBenefits:!0});case a.a8:return(0,i.assign)({},e,{isFetchingConnectedPlugins:!0});case a.Vl:return(0,i.assign)({},e,{isFetchingSiteFeatures:!0});case a.Fe:return(0,i.assign)({},e,{isFetchingSitePlans:!0});case a.Ab:return(0,i.assign)({},e,{isFetchingSitePurchases:!0});case a.l9:case a.fH:return(0,i.assign)({},e,{isFetchingSiteData:!1});case a.rw:case a.nD:return(0,i.assign)({},e,{isFetchingSiteBenefits:!1});case a.TR:case a.ar:return(0,i.assign)({},e,{isFetchingConnectedPlugins:!1,isDoneFetchingConnectedPlugins:!0});case a.g9:case a.VN:return(0,i.assign)({},e,{isFetchingSiteFeatures:!1});case a.Dz:case a.lt:return(0,i.assign)({},e,{isFetchingSitePlans:!1});case a.zO:case a.Ep:return(0,i.assign)({},e,{isFetchingSitePurchases:!1});default:return e}},errors:function(){let e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(r.type===a.l9){switch(r.error.name){case"ApiError":e="reconnect",t=__("There seems to be a problem with your connection to WordPress.com. If the problem persists, try reconnecting.","jetpack");break;case"JsonParseError":e="support",t=__("Jetpack encountered an error and was unable to display the Dashboard. Please try refreshing the page.","jetpack");break;default:e=null,t=__("There seems to be a problem with your website.","jetpack")}return(0,i.assign)({},n,{message:r.error.hasOwnProperty("response")?r.error.response.message:t,action:e,code:r.error.hasOwnProperty("response")?r.error.response.code:"fetch_site_data_fail_other",data:r.error.hasOwnProperty("response")?r.error.response.data:{}})}return n}});function f(e){return!!(e.jetpack.siteData.requests.isFetchingSiteData||e.jetpack.siteData.requests.isFetchingSiteFeatures||e.jetpack.siteData.requests.isFetchingSitePlans||e.jetpack.siteData.requests.isFetchingSitePurchases)}function h(e){return!!e.jetpack.siteData.requests.isFetchingSitePurchases}function l(e){return(0,i.get)(e.jetpack.siteData,["data","plan"],{})}function d(e){return function(e){return(0,i.get)(e.jetpack.siteData,["data","sitePurchases"],[])}(e).filter((e=>"1"===e.active))}function p(e){return d(e).filter((e=>(0,s.yy)(e.product_slug)))}function g(e){return!!function(e){return(0,i.find)(p(e),(e=>(0,s.Cv)(e.product_slug)))}(e)||"is-complete-plan"===(0,s.sc)(l(e).product_slug)}function m(e){return(0,i.get)(e.jetpack.siteData,["data","ID"])}},50093:function(e,t,n){"use strict";n.d(t,{I6:function(){return a}});var r=n(92819),i=n(74978),o=n(67592);const s={fetchingTrackingSettings:!1,updatingTrackingSettings:!1},a=(0,i.UY)({items:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.X0:return(0,r.assign)({},e,t.settings);case o.TB:return(0,r.assign)({},e,t.updatedSettings);default:return e}},requests:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:s,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case o.T:return(0,r.assign)({},e,{fetchingTrackingSettings:!0});case o.YD:case o.X0:return(0,r.assign)({},e,{fetchingTrackingSettings:!1});case o.kK:return(0,r.assign)({},e,{updatingTrackingSettings:!0});case o.rA:case o.TB:return(0,r.assign)({},e,{updatingTrackingSettings:!1});default:return e}}})},90922:function(e,t,n){var r=n(55246),i=n(5806);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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(i=r))})),t.splice(i,0,n)},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&&void 0!==i&&"env"in i&&(e=i.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,r.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=r.debug||r.log||(()=>{}),e.exports=n(31967)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},31967:function(e,t,n){var r=n(55246);e.exports=function(e){function t(e){let n,r,o,s=null;function a(){for(var e=arguments.length,r=new Array(e),i=0;i<e;i++)r[i]=arguments[i];if(!a.enabled)return;const o=a,s=Number(new Date),c=s-(n||s);o.diff=c,o.prev=n,o.curr=s,n=s,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");let u=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";u++;const i=t.formatters[n];if("function"==typeof i){const t=r[u];e=i.call(o,t),r.splice(u,1),u--}return e})),t.formatArgs.call(o,r);const f=o.log||t.log;f.apply(o,r)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=i,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(r!==t.namespaces&&(r=t.namespaces,o=t.enabled(e)),o),set:e=>{s=e}}),"function"==typeof t.init&&t.init(a),a}function i(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function o(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(o),...t.skips.map(o).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),i=r.length;for(n=0;n<i;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(32002),t.destroy=function(){r.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},49231:function(e,t,n){var r=n(55246);function i(e){try{if(!window.localStorage)return!1}catch(e){return!1}var t=window.localStorage[e];return null!=t&&"true"===String(t).toLowerCase()}e.exports=function(e,t){if(i("noDeprecation"))return e;var n=!1;return function(){if(!n){if(i("throwDeprecation"))throw new Error(t);i("traceDeprecation")?r.trace(t):r.warn(t),n=!0}return e.apply(this,arguments)}}},11311:function(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},58370:function(e,t,n){"use strict";var r=n(98304),i=n(57372),o=n(32457),s=n(8639);function a(e){return e.call.bind(e)}var c="undefined"!=typeof BigInt,u="undefined"!=typeof Symbol,f=a(Object.prototype.toString),h=a(Number.prototype.valueOf),l=a(String.prototype.valueOf),d=a(Boolean.prototype.valueOf);if(c)var p=a(BigInt.prototype.valueOf);if(u)var g=a(Symbol.prototype.valueOf);function m(e,t){if("object"!=typeof e)return!1;try{return t(e),!0}catch(e){return!1}}function b(e){return"[object Map]"===f(e)}function v(e){return"[object Set]"===f(e)}function y(e){return"[object WeakMap]"===f(e)}function w(e){return"[object WeakSet]"===f(e)}function _(e){return"[object ArrayBuffer]"===f(e)}function E(e){return"undefined"!=typeof ArrayBuffer&&(_.working?_(e):e instanceof ArrayBuffer)}function S(e){return"[object DataView]"===f(e)}function k(e){return"undefined"!=typeof DataView&&(S.working?S(e):e instanceof DataView)}t.isArgumentsObject=r,t.isGeneratorFunction=i,t.isTypedArray=s,t.isPromise=function(e){return"undefined"!=typeof Promise&&e instanceof Promise||null!==e&&"object"==typeof e&&"function"==typeof e.then&&"function"==typeof e.catch},t.isArrayBufferView=function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):s(e)||k(e)},t.isUint8Array=function(e){return"Uint8Array"===o(e)},t.isUint8ClampedArray=function(e){return"Uint8ClampedArray"===o(e)},t.isUint16Array=function(e){return"Uint16Array"===o(e)},t.isUint32Array=function(e){return"Uint32Array"===o(e)},t.isInt8Array=function(e){return"Int8Array"===o(e)},t.isInt16Array=function(e){return"Int16Array"===o(e)},t.isInt32Array=function(e){return"Int32Array"===o(e)},t.isFloat32Array=function(e){return"Float32Array"===o(e)},t.isFloat64Array=function(e){return"Float64Array"===o(e)},t.isBigInt64Array=function(e){return"BigInt64Array"===o(e)},t.isBigUint64Array=function(e){return"BigUint64Array"===o(e)},b.working="undefined"!=typeof Map&&b(new Map),t.isMap=function(e){return"undefined"!=typeof Map&&(b.working?b(e):e instanceof Map)},v.working="undefined"!=typeof Set&&v(new Set),t.isSet=function(e){return"undefined"!=typeof Set&&(v.working?v(e):e instanceof Set)},y.working="undefined"!=typeof WeakMap&&y(new WeakMap),t.isWeakMap=function(e){return"undefined"!=typeof WeakMap&&(y.working?y(e):e instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),t.isWeakSet=function(e){return w(e)},_.working="undefined"!=typeof ArrayBuffer&&_(new ArrayBuffer),t.isArrayBuffer=E,S.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&S(new DataView(new ArrayBuffer(1),0,1)),t.isDataView=k;var M="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function C(e){return"[object SharedArrayBuffer]"===f(e)}function A(e){return void 0!==M&&(void 0===C.working&&(C.working=C(new M)),C.working?C(e):e instanceof M)}function x(e){return m(e,h)}function I(e){return m(e,l)}function O(e){return m(e,d)}function T(e){return c&&m(e,p)}function N(e){return u&&m(e,g)}t.isSharedArrayBuffer=A,t.isAsyncFunction=function(e){return"[object AsyncFunction]"===f(e)},t.isMapIterator=function(e){return"[object Map Iterator]"===f(e)},t.isSetIterator=function(e){return"[object Set Iterator]"===f(e)},t.isGeneratorObject=function(e){return"[object Generator]"===f(e)},t.isWebAssemblyCompiledModule=function(e){return"[object WebAssembly.Module]"===f(e)},t.isNumberObject=x,t.isStringObject=I,t.isBooleanObject=O,t.isBigIntObject=T,t.isSymbolObject=N,t.isBoxedPrimitive=function(e){return x(e)||I(e)||O(e)||T(e)||N(e)},t.isAnyArrayBuffer=function(e){return"undefined"!=typeof Uint8Array&&(E(e)||A(e))},["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(e){Object.defineProperty(t,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})}))},23333:function(e,t,n){var r=n(5806),i=n(55246),o=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},s=/%[sdj%]/g;t.format=function(e){if(!w(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(f(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,o=String(e).replace(s,(function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}})),a=r[n];n<i;a=r[++n])v(a)||!S(a)?o+=" "+a:o+=" "+f(a);return o},t.deprecate=function(e,n){if(void 0!==r&&!0===r.noDeprecation)return e;if(void 0===r)return function(){return t.deprecate(e,n).apply(this,arguments)};var o=!1;return function(){if(!o){if(r.throwDeprecation)throw new Error(n);r.traceDeprecation?i.trace(n):i.error(n),o=!0}return e.apply(this,arguments)}};var a={},c=/^$/;if(r.env.NODE_DEBUG){var u=r.env.NODE_DEBUG;u=u.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase(),c=new RegExp("^"+u+"$","i")}function f(e,n){var r={seen:[],stylize:l};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),b(n)?r.showHidden=n:n&&t._extend(r,n),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=h),d(r,e,r.depth)}function h(e,t){var n=f.styles[t];return n?"["+f.colors[n][0]+"m"+e+"["+f.colors[n][1]+"m":e}function l(e,t){return e}function d(e,n,r){if(e.customInspect&&n&&C(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return w(i)||(i=d(e,i,r)),i}var o=function(e,t){if(_(t))return e.stylize("undefined","undefined");if(w(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(y(t))return e.stylize(""+t,"number");if(b(t))return e.stylize(""+t,"boolean");if(v(t))return e.stylize("null","null")}(e,n);if(o)return o;var s=Object.keys(n),a=function(e){var t={};return e.forEach((function(e,n){t[e]=!0})),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(n)),M(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return p(n);if(0===s.length){if(C(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(E(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(k(n))return e.stylize(Date.prototype.toString.call(n),"date");if(M(n))return p(n)}var u,f="",h=!1,l=["{","}"];(m(n)&&(h=!0,l=["[","]"]),C(n))&&(f=" [Function"+(n.name?": "+n.name:"")+"]");return E(n)&&(f=" "+RegExp.prototype.toString.call(n)),k(n)&&(f=" "+Date.prototype.toUTCString.call(n)),M(n)&&(f=" "+p(n)),0!==s.length||h&&0!=n.length?r<0?E(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=h?function(e,t,n,r,i){for(var o=[],s=0,a=t.length;s<a;++s)T(t,String(s))?o.push(g(e,t,n,r,String(s),!0)):o.push("");return i.forEach((function(i){i.match(/^\d+$/)||o.push(g(e,t,n,r,i,!0))})),o}(e,n,r,a,s):s.map((function(t){return g(e,n,r,a,t,h)})),e.seen.pop(),function(e,t,n){if(e.reduce((function(e,t){return t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,f,l)):l[0]+f+l[1]}function p(e){return"["+Error.prototype.toString.call(e)+"]"}function g(e,t,n,r,i,o){var s,a,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?a=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(a=e.stylize("[Setter]","special")),T(r,i)||(s="["+i+"]"),a||(e.seen.indexOf(c.value)<0?(a=v(n)?d(e,c.value,null):d(e,c.value,n-1)).indexOf("\n")>-1&&(a=o?a.split("\n").map((function(e){return" "+e})).join("\n").substr(2):"\n"+a.split("\n").map((function(e){return" "+e})).join("\n")):a=e.stylize("[Circular]","special")),_(s)){if(o&&i.match(/^\d+$/))return a;(s=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+a}function m(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function v(e){return null===e}function y(e){return"number"==typeof e}function w(e){return"string"==typeof e}function _(e){return void 0===e}function E(e){return S(e)&&"[object RegExp]"===A(e)}function S(e){return"object"==typeof e&&null!==e}function k(e){return S(e)&&"[object Date]"===A(e)}function M(e){return S(e)&&("[object Error]"===A(e)||e instanceof Error)}function C(e){return"function"==typeof e}function A(e){return Object.prototype.toString.call(e)}function x(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(e=e.toUpperCase(),!a[e])if(c.test(e)){var n=r.pid;a[e]=function(){var r=t.format.apply(t,arguments);i.error("%s %d: %s",e,n,r)}}else a[e]=function(){};return a[e]},t.inspect=f,f.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},f.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.types=n(58370),t.isArray=m,t.isBoolean=b,t.isNull=v,t.isNullOrUndefined=function(e){return null==e},t.isNumber=y,t.isString=w,t.isSymbol=function(e){return"symbol"==typeof e},t.isUndefined=_,t.isRegExp=E,t.types.isRegExp=E,t.isObject=S,t.isDate=k,t.types.isDate=k,t.isError=M,t.types.isNativeError=M,t.isFunction=C,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},t.isBuffer=n(11311);var I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function O(){var e=new Date,t=[x(e.getHours()),x(e.getMinutes()),x(e.getSeconds())].join(":");return[e.getDate(),I[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.log=function(){i.log("%s - %s",O(),t.format.apply(t,arguments))},t.inherits=n(59503),t._extend=function(e,t){if(!t||!S(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};var N="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function j(e,t){if(!e){var n=new Error("Promise was rejected with a falsy value");n.reason=e,e=n}return t(e)}t.promisify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');if(N&&e[N]){var t;if("function"!=typeof(t=e[N]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),t}function t(){for(var t,n,r=new Promise((function(e,r){t=e,n=r})),i=[],o=0;o<arguments.length;o++)i.push(arguments[o]);i.push((function(e,r){e?n(e):t(r)}));try{e.apply(this,i)}catch(e){n(e)}return r}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),N&&Object.defineProperty(t,N,{value:t,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(t,o(e))},t.promisify.custom=N,t.callbackify=function(e){if("function"!=typeof e)throw new TypeError('The "original" argument must be of type Function');function t(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var i=t.pop();if("function"!=typeof i)throw new TypeError("The last argument must be of type Function");var o=this,s=function(){return i.apply(o,arguments)};e.apply(this,t).then((function(e){r.nextTick(s.bind(null,null,e))}),(function(e){r.nextTick(j.bind(null,e,s))}))}return Object.setPrototypeOf(t,Object.getPrototypeOf(e)),Object.defineProperties(t,o(e)),t}},32457:function(e,t,n){"use strict";var r=n(49478),i=n(87331),o=n(16422),s=o("Object.prototype.toString"),a=n(77828)(),c="undefined"==typeof globalThis?window:globalThis,u=i(),f=o("String.prototype.slice"),h={},l=n(61787),d=Object.getPrototypeOf;a&&l&&d&&r(u,(function(e){if("function"==typeof c[e]){var t=new c[e];if(Symbol.toStringTag in t){var n=d(t),r=l(n,Symbol.toStringTag);if(!r){var i=d(n);r=l(i,Symbol.toStringTag)}h[e]=r.get}}}));var p=n(8639);e.exports=function(e){return!!p(e)&&(a&&Symbol.toStringTag in e?function(e){var t=!1;return r(h,(function(n,r){if(!t)try{var i=n.call(e);i===r&&(t=i)}catch(e){}})),t}(e):f(s(e),8,-1))}},92787:function(e){"use strict";if(void 0==={consumer_slug:"jetpack"}){var t=new Error('Cannot find module \'{"consumer_slug":"jetpack"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"jetpack"}},99196:function(e){"use strict";e.exports=window.React},91850:function(e){"use strict";e.exports=window.ReactDOM},92819:function(e){"use strict";e.exports=window.lodash},69307:function(e){"use strict";e.exports=window.wp.element},65736:function(e){"use strict";e.exports=window.wp.i18n},96483:function(e){"use strict";e.exports=window.wp.url},56095:function(){},14864:function(){},69627:function(){},23833:function(){},80677:function(){},87331:function(e){"use strict";var t=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],n="undefined"==typeof globalThis?window:globalThis;e.exports=function(){for(var e=[],r=0;r<t.length;r++)"function"==typeof n[t[r]]&&(e[e.length]=t[r]);return e}},61787:function(e,t,n){"use strict";var r=n(25165)("%Object.getOwnPropertyDescriptor%",!0);if(r)try{r([],"length")}catch(e){r=null}e.exports=r},25303:function(e,t,n){"use strict";function r(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return r}})},40988:function(e,t,n){"use strict";function r(){return r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:function(){return r}})},71446:function(e,t,n){"use strict";n.d(t,{Z:function(){return i}});var r=n(99112);function i(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,(0,r.Z)(e,t)}},5343:function(e,t,n){"use strict";function r(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}n.d(t,{Z:function(){return r}})},99112:function(e,t,n){"use strict";function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}n.d(t,{Z:function(){return r}})},4317:function(e){"use strict";e.exports=JSON.parse('{"aes-128-ecb":{"cipher":"AES","key":128,"iv":0,"mode":"ECB","type":"block"},"aes-192-ecb":{"cipher":"AES","key":192,"iv":0,"mode":"ECB","type":"block"},"aes-256-ecb":{"cipher":"AES","key":256,"iv":0,"mode":"ECB","type":"block"},"aes-128-cbc":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes-192-cbc":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes-256-cbc":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes128":{"cipher":"AES","key":128,"iv":16,"mode":"CBC","type":"block"},"aes192":{"cipher":"AES","key":192,"iv":16,"mode":"CBC","type":"block"},"aes256":{"cipher":"AES","key":256,"iv":16,"mode":"CBC","type":"block"},"aes-128-cfb":{"cipher":"AES","key":128,"iv":16,"mode":"CFB","type":"stream"},"aes-192-cfb":{"cipher":"AES","key":192,"iv":16,"mode":"CFB","type":"stream"},"aes-256-cfb":{"cipher":"AES","key":256,"iv":16,"mode":"CFB","type":"stream"},"aes-128-cfb8":{"cipher":"AES","key":128,"iv":16,"mode":"CFB8","type":"stream"},"aes-192-cfb8":{"cipher":"AES","key":192,"iv":16,"mode":"CFB8","type":"stream"},"aes-256-cfb8":{"cipher":"AES","key":256,"iv":16,"mode":"CFB8","type":"stream"},"aes-128-cfb1":{"cipher":"AES","key":128,"iv":16,"mode":"CFB1","type":"stream"},"aes-192-cfb1":{"cipher":"AES","key":192,"iv":16,"mode":"CFB1","type":"stream"},"aes-256-cfb1":{"cipher":"AES","key":256,"iv":16,"mode":"CFB1","type":"stream"},"aes-128-ofb":{"cipher":"AES","key":128,"iv":16,"mode":"OFB","type":"stream"},"aes-192-ofb":{"cipher":"AES","key":192,"iv":16,"mode":"OFB","type":"stream"},"aes-256-ofb":{"cipher":"AES","key":256,"iv":16,"mode":"OFB","type":"stream"},"aes-128-ctr":{"cipher":"AES","key":128,"iv":16,"mode":"CTR","type":"stream"},"aes-192-ctr":{"cipher":"AES","key":192,"iv":16,"mode":"CTR","type":"stream"},"aes-256-ctr":{"cipher":"AES","key":256,"iv":16,"mode":"CTR","type":"stream"},"aes-128-gcm":{"cipher":"AES","key":128,"iv":12,"mode":"GCM","type":"auth"},"aes-192-gcm":{"cipher":"AES","key":192,"iv":12,"mode":"GCM","type":"auth"},"aes-256-gcm":{"cipher":"AES","key":256,"iv":12,"mode":"GCM","type":"auth"}}')},1877:function(e){"use strict";e.exports=JSON.parse('{"sha224WithRSAEncryption":{"sign":"rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"RSA-SHA224":{"sign":"ecdsa/rsa","hash":"sha224","id":"302d300d06096086480165030402040500041c"},"sha256WithRSAEncryption":{"sign":"rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"RSA-SHA256":{"sign":"ecdsa/rsa","hash":"sha256","id":"3031300d060960864801650304020105000420"},"sha384WithRSAEncryption":{"sign":"rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"RSA-SHA384":{"sign":"ecdsa/rsa","hash":"sha384","id":"3041300d060960864801650304020205000430"},"sha512WithRSAEncryption":{"sign":"rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA512":{"sign":"ecdsa/rsa","hash":"sha512","id":"3051300d060960864801650304020305000440"},"RSA-SHA1":{"sign":"rsa","hash":"sha1","id":"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{"sign":"ecdsa","hash":"sha1","id":""},"sha256":{"sign":"ecdsa","hash":"sha256","id":""},"sha224":{"sign":"ecdsa","hash":"sha224","id":""},"sha384":{"sign":"ecdsa","hash":"sha384","id":""},"sha512":{"sign":"ecdsa","hash":"sha512","id":""},"DSA-SHA":{"sign":"dsa","hash":"sha1","id":""},"DSA-SHA1":{"sign":"dsa","hash":"sha1","id":""},"DSA":{"sign":"dsa","hash":"sha1","id":""},"DSA-WITH-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-SHA224":{"sign":"dsa","hash":"sha224","id":""},"DSA-WITH-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-SHA256":{"sign":"dsa","hash":"sha256","id":""},"DSA-WITH-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-SHA384":{"sign":"dsa","hash":"sha384","id":""},"DSA-WITH-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-SHA512":{"sign":"dsa","hash":"sha512","id":""},"DSA-RIPEMD160":{"sign":"dsa","hash":"rmd160","id":""},"ripemd160WithRSA":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"RSA-RIPEMD160":{"sign":"rsa","hash":"rmd160","id":"3021300906052b2403020105000414"},"md5WithRSAEncryption":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"},"RSA-MD5":{"sign":"rsa","hash":"md5","id":"3020300c06082a864886f70d020505000410"}}')},72968:function(e){"use strict";e.exports=JSON.parse('{"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}')},27046:function(e){"use strict";e.exports=JSON.parse('{"modp1":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},"modp2":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},"modp5":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},"modp14":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},"modp15":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},"modp16":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},"modp17":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},"modp18":{"gen":"02","prime":"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}')},80906:function(e){"use strict";e.exports={i8:"6.5.4"}},93611:function(e){"use strict";e.exports=JSON.parse('{"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}')}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(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.hmd=function(e){return(e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:function(){throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){"use strict";var e=n(91850),t=n.n(e),r=n(99196),i=n.n(r),o=n(2620),s=n(594),a=n(63854);function c(){const e=document.getElementById("jp-search-dashboard");null!==e&&t().render(i().createElement(o.zt,{store:s.Z},i().createElement(a.Z,null)),e)}"loading"!==document.readyState?c():document.addEventListener("DOMContentLoaded",c)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/search-dashboard.js.LICENSE.txt b/plugins/jetpack/_inc/build/search-dashboard.js.LICENSE.txt
new file mode 100644
index 00000000..ddea5f14
--- /dev/null
+++ b/plugins/jetpack/_inc/build/search-dashboard.js.LICENSE.txt
@@ -0,0 +1,38 @@
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>
+ * @license MIT
+ */
+
+/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh <https://feross.org>
+ * @license MIT
+ */
+
+/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
+
+/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
+
+/** @license React v16.13.1
+ * react-is.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/plugins/jetpack/_inc/build/search-dashboard.rtl.css b/plugins/jetpack/_inc/build/search-dashboard.rtl.css
new file mode 100644
index 00000000..18c08d22
--- /dev/null
+++ b/plugins/jetpack/_inc/build/search-dashboard.rtl.css
@@ -0,0 +1 @@
+.dops-popover{font-size:11px;left:0;left:auto;position:absolute;top:0;z-index:1000}.dops-popover .dops-popover__inner{background-color:#fff;border:1px solid #d5d5d5;border-radius:4px;box-shadow:0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075);position:relative;text-align:center}.dops-popover .dops-popover__arrow{border:10px dashed #d5d5d5;height:0;line-height:0;position:absolute;width:0;z-index:1}.dops-popover.fade{transition:opacity .1s}.dops-popover.is-top-left .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow,.dops-popover.is-top .dops-popover__arrow{border-bottom:none;border-left-color:transparent;border-top-style:solid;bottom:0;left:50%;margin-left:-10px}.dops-popover.is-top-left .dops-popover__arrow:before,.dops-popover.is-top-right .dops-popover__arrow:before,.dops-popover.is-top .dops-popover__arrow:before{border:10px solid transparent;border-bottom:none;border-top-color:#fff;bottom:2px;content:" ";left:50%;margin-left:-10px;position:absolute}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-bottom .dops-popover__arrow{border-bottom-style:solid;border-left-color:transparent;border-top:none;left:50%;margin-left:-10px;top:0}.dops-popover.is-bottom-left .dops-popover__arrow:before,.dops-popover.is-bottom-right .dops-popover__arrow:before,.dops-popover.is-bottom .dops-popover__arrow:before{border:10px solid transparent;border-bottom:10px solid #fff;border-top:none;content:" ";left:50%;margin-left:-10px;position:absolute;top:2px}.dops-popover.is-left-bottom .dops-popover__arrow,.dops-popover.is-left-top .dops-popover__arrow,.dops-popover.is-left .dops-popover__arrow{border-bottom-color:transparent;border-left-style:solid;border-right:none;border-top-color:transparent;margin-top:-10px;right:0;top:50%}.dops-popover.is-left-bottom .dops-popover__arrow:before,.dops-popover.is-left-top .dops-popover__arrow:before,.dops-popover.is-left .dops-popover__arrow:before{border:10px solid transparent;border-left:10px solid #fff;border-right:none;content:" ";margin-top:-10px;position:absolute;right:2px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow,.dops-popover.is-right-top .dops-popover__arrow,.dops-popover.is-right .dops-popover__arrow{border-bottom-color:transparent;border-left:none;border-right-style:solid;border-top-color:transparent;left:0;margin-top:-10px;top:50%}.dops-popover.is-right-bottom .dops-popover__arrow:before,.dops-popover.is-right-top .dops-popover__arrow:before,.dops-popover.is-right .dops-popover__arrow:before{border:10px solid transparent;border-left:none;border-right-color:#fff;content:" ";left:2px;margin-top:-10px;position:absolute;top:50%}.dops-popover.is-bottom-left,.dops-popover.is-bottom-right,.dops-popover.is-top-left,.dops-popover.is-top-right{padding-left:0;padding-right:0}.dops-popover.is-bottom-left .dops-popover__arrow,.dops-popover.is-top-left .dops-popover__arrow{left:auto;left:5px}.dops-popover.is-bottom-right .dops-popover__arrow,.dops-popover.is-top-right .dops-popover__arrow{left:15px}.dops-popover.is-top-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner,.dops-popover.is-top .dops-popover__inner{top:-10px}.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-left .dops-popover__inner,.dops-popover.is-top-right .dops-popover__inner{left:-10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-bottom-right .dops-popover__inner,.dops-popover.is-bottom .dops-popover__inner{top:10px}.dops-popover.is-bottom-left .dops-popover__inner,.dops-popover.is-right .dops-popover__inner,.dops-popover.is-top-left .dops-popover__inner{left:10px}.dops-popover.is-dialog-visible{z-index:100300}.dops-popover__menu{display:flex;flex-direction:column;min-width:200px}.dops-popover__menu-item{background:inherit;border:none;border-radius:0;color:#414141;cursor:pointer;display:block;font-size:14px;font-weight:400;margin:0;padding:8px 16px;position:relative;text-align:right;transition:all .05s ease-in-out}.dops-popover__menu-item:first-child{margin-top:5px}.dops-popover__menu-item:focus,.dops-popover__menu-item:hover{background-color:#3582c4;border:0;box-shadow:none;color:#fff}.dops-popover__menu-item:focus .gridicon,.dops-popover__menu-item:hover .gridicon{color:#fff}.dops-popover__menu-item[disabled]:focus,.dops-popover__menu-item[disabled]:hover{background:transparent;cursor:default}.dops-popover__menu-item:last-child{margin-bottom:5px}.dops-popover__menu-item::-moz-focus-inner{border:0}.dops-popover__menu-item.has-icon{padding-right:42px}.dops-popover__menu-item .gridicon{color:#bbb;margin-left:8px;vertical-align:bottom}.dops-popover__hr{background:#eee;margin:8px 0}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{border-radius:12px;box-sizing:border-box;cursor:pointer;display:inline-block;flex:none;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:40px}.form-toggle__switch:after,.form-toggle__switch:before{content:"";display:block;height:20px;position:relative;width:20px}.form-toggle__switch:after{background:#fff;border-radius:50%;right:0;transition:all .2s ease}.form-toggle__switch:before{display:none}.dops-accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle__label{cursor:pointer;display:flex}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-right:12px}.dops-accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #3582c4}.dops-accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #78dcfa}.form-toggle+.form-toggle__label .form-toggle__switch{background:#bbb}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#d5d5d5}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#78dcfa}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{cursor:default;opacity:.25}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#3582c4}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#d5d5d5}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;height:16px;width:24px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before{height:12px;width:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}.gridicon{fill:currentColor}.gridicon.needs-offset g{transform:translate(-1px,1px)}.gridicon.needs-offset-x g{transform:translate(-1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.dops-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;display:block;margin:0 auto 10px;padding:16px;position:relative}.dops-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.dops-card{margin-bottom:16px;padding:24px}}.dops-card.is-compact{margin-bottom:1px}@media(min-width:481px){.dops-card.is-compact{margin-bottom:1px;padding:16px 24px}}.dops-card.is-card-link{padding-left:48px}h2.dops-card-title{font-size:rem(20px)}.dops-card__link-indicator{color:#d5d5d5;display:block;height:100%;left:16px;position:absolute;top:0}a.dops-card:hover .dops-card__link-indicator{color:#bbb}a.dops-card:focus{outline:0}a.dops-card:focus .dops-card__link-indicator{color:tint(#3582c4,20%)}.dops-info-popover-button{background:transparent;border:none;color:#888;padding:0}.dops-info-popover-button:hover{color:#414141}.dops-info-popover-button:focus{box-shadow:none}.dops-accessible-focus .dops-info-popover-button:focus{outline:thin dotted}.dops-info-popover .gridicon{color:#c8c8c8;cursor:pointer}.dops-info-popover .gridicon:hover,.dops-info-popover.is_active .gridicon{color:#414141}.dops-popover.dops-info-popover__tooltip .dops-popover__inner{color:#6f6f6f;font-size:13px;max-width:220px;padding:16px;text-align:right}.dops-external-link .gridicons-external{color:currentColor;margin-right:.5rem;position:relative;top:.125rem}#jp-plugin-container{min-height:100vh}.jp-support-info{left:1.5625rem;position:absolute;top:1.6875rem;z-index:1}@media(max-width:480px){.jp-support-info{left:1rem;top:1.25rem}}.jp-form-fieldset .jp-support-info{top:4px}.jp-support-info .dops-info-popover{white-space:nowrap}.dops-popover .jp-support-info__privacy{border-top:1px solid hsla(0,0%,64%,.5);display:block;margin-top:.875rem;padding-top:.75rem}.dops-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:3px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:.875rem;margin:0;outline:0;overflow:hidden;padding:7px 14px 9px;text-decoration:none;text-overflow:ellipsis;vertical-align:top}.dops-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.dops-button:disabled,.dops-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.dops-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.dops-button.is-compact{line-height:2;padding:0 10px}.dops-button.is-compact:disabled{color:#eee}.dops-button.is-compact .gridicon{margin-top:-8px;top:4px}.dops-button.is-compact .gridicons-plus-small{margin-right:-4px}.dops-button.is-compact .gridicons-plus-small:last-of-type{margin-right:0}.dops-button.is-compact .gridicons-plus-small+.gridicon{margin-right:-4px}.dops-button.hidden{display:none}.dops-button .gridicon{height:18px;margin-top:-2px;position:relative;top:4px;width:18px}.dops-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.dops-button.is-primary:focus,.dops-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.dops-button.is-primary:disabled,.dops-button.is-primary[disabled]{background-color:#008ec2!important;border-color:#008ec2!important;box-shadow:none!important;color:#66c6e4!important;cursor:default;text-shadow:none!important}.dops-button.is-primary.is-compact{color:#fff;white-space:nowrap}.dops-button.is-scary{color:#d94f4f}.dops-button.is-scary:focus,.dops-button.is-scary:hover{border-color:#d94f4f}.dops-button.is-scary:focus{box-shadow:0 0 0 2px #eba3a3}.dops-button.is-scary:disabled,.dops-button.is-scary[disabled]{border-color:#eee;color:#f4cdcd}.dops-button.is-primary.is-scary{background:#d94f4f;border-color:#a02222;color:#fff}.dops-button.is-primary.is-scary:focus,.dops-button.is-primary.is-scary:hover{border-color:#4c1010}.dops-button.is-primary.is-scary:disabled,.dops-button.is-primary.is-scary[disabled]{background:#eba3a3;border-color:#e48484}.dops-button.is-borderless{border:none;color:#888;padding-left:0;padding-right:0}.dops-button.is-borderless:hover{color:#414141}.dops-button.is-borderless:focus{box-shadow:none}.dops-accessible-focus .dops-button.is-borderless:focus{outline:thin dotted}.dops-button.is-borderless .gridicon{height:24px;top:6px;width:24px}.dops-button.is-borderless:disabled,.dops-button.is-borderless[disabled]{background:#fff;color:#eee;cursor:default}.dops-button.is-borderless:disabled:active,.dops-button.is-borderless[disabled]:active{border-width:0}.dops-button.is-borderless.is-scary{color:#d94f4f}.dops-button.is-borderless.is-scary:focus,.dops-button.is-borderless.is-scary:hover{color:#a02222}.dops-button.is-borderless.is-scary[disabled]{color:#f4cdcd}.dops-button.is-borderless.is-compact{background:transparent;border-radius:0}.dops-button.is-borderless.is-compact .gridicon{height:18px;top:5px;width:18px}.jp-instant-search-upsell-nudge{color:#000;cursor:pointer;font-size:1em;text-decoration:none}.jp-instant-search-upsell-nudge:hover{color:#000}.jp-search-dashboard-wrap{align-items:center;display:flex;flex-flow:column nowrap;justify-content:center;margin:0 auto;width:100%}.jp-search-dashboard-row{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:calc(100% - 32px)}@media(min-width:600px){.jp-search-dashboard-row{grid-template-columns:repeat(8,1fr);margin:0 18px;width:calc(100% - 36px)}}@media(min-width:960px){.jp-search-dashboard-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px;width:calc(100% - 48px)}}.jp-search-dashboard-row .sm-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .sm-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .sm-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.jp-search-dashboard-row .md-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .md-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .md-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .md-col-span-4{grid-column-end:span 4}.jp-search-dashboard-row .md-col-span-5{grid-column-end:span 5}.jp-search-dashboard-row .md-col-span-6{grid-column-end:span 6}.jp-search-dashboard-row .md-col-span-7{grid-column-end:span 7}.jp-search-dashboard-row .md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.jp-search-dashboard-row .lg-col-span-1{grid-column-end:span 1}.jp-search-dashboard-row .lg-col-span-2{grid-column-end:span 2}.jp-search-dashboard-row .lg-col-span-3{grid-column-end:span 3}.jp-search-dashboard-row .lg-col-span-4{grid-column-end:span 4}.jp-search-dashboard-row .lg-col-span-5{grid-column-end:span 5}.jp-search-dashboard-row .lg-col-span-6{grid-column-end:span 6}.jp-search-dashboard-row .lg-col-span-7{grid-column-end:span 7}.jp-search-dashboard-row .lg-col-span-8{grid-column-end:span 8}.jp-search-dashboard-row .lg-col-span-9{grid-column-end:span 9}.jp-search-dashboard-row .lg-col-span-10{grid-column-end:span 10}.jp-search-dashboard-row .lg-col-span-11{grid-column-end:span 11}.jp-search-dashboard-row .lg-col-span-12{grid-column-end:span 12}.jp-search-dashboard-row .lg-col-span-0{display:none}}@media(max-width:960px){.jp-search-dashboard-row .md-col-span-0{display:none}}@media(max-width:600px){.jp-search-dashboard-row .sm-col-span-0{display:none}.jp-search-dashboard-row .sm-col-span-1{display:block}}.jp-form-search-settings-group{width:100%}.jp-form-search-settings-group .dops-card{box-shadow:none;padding:4em 0 0}.jp-form-search-settings-group .form-toggle__label{margin:0}.jp-form-search-settings-group__toggle.is-instant-search{margin-top:4em}.jp-form-search-settings-group__toggle .form-toggle__label-content{display:none}.jp-form-search-settings-group__toggle .jp-form-search-settings-group__toggle-container{display:flex}@media(max-width:960px){.jp-form-search-settings-group__toggle .jp-form-search-settings-group__toggle-container{justify-content:center}}.jp-form-search-settings-group__toggle_label{font-size:1.5em;font-weight:600;line-height:1.167}.jp-form-search-settings-group__toggle_label span{font-weight:400}.jp-form-search-settings-group__toggle-description{margin-top:1em}p.jp-form-search-settings-group__toggle-explanation{font-size:1em;font-weight:400;line-height:1.5;margin-bottom:0}.jp-form-search-settings-group-buttons{margin-top:1.5em}.jp-form-search-settings-group-buttons__button{align-items:center;border-color:#000;display:flex;font-size:1em;justify-content:center;min-height:2.5em;padding:.5em 1.5em;text-align:center}.jp-form-search-settings-group-buttons__button.is-customize-search{background-color:#000;color:#fff}.jp-form-search-settings-group-buttons__button:disabled,.jp-form-search-settings-group-buttons__button[disabled]{background-color:#dcdcde;border-color:#dcdcde;color:#a7aaad;cursor:not-allowed}.jp-form-search-settings-group-buttons__button.is-widgets-editor{background:transparent;color:#000}.jp-form-search-settings-group-buttons__button.is-widgets-editor:disabled,.jp-form-search-settings-group-buttons__button.is-widgets-editor[disabled]{background:transparent;color:#a7aaad}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch{background:#fff;border:2px solid #000;border-radius:.75em;height:1.5em;width:3em}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:before{background-color:#000;height:.9375em;width:.9375em}.form-toggle.is-search-admin.is-compact+.form-toggle__label .form-toggle__switch:focus{box-shadow:0 0 0 2px #3582c4}.form-toggle.is-search-admin.is-compact:checked+.form-toggle__label .form-toggle__switch{background:#069e08;border-color:#069e08}.form-toggle.is-search-admin.is-compact:checked+.form-toggle__label .form-toggle__switch:after{background-color:#fff;right:1.5em}.form-toggle.is-search-admin.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before{right:1.5em}.form-toggle.is-search-admin.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after,.form-toggle.is-search-admin.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before{right:0}.jp-search-dashboard-cut{border:2px solid #069e08;border-radius:4px;display:block;margin:2em 0;padding:1em 1.5em 1em 4em;position:relative;text-decoration:none}.jp-search-dashboard-cut span{display:block}.jp-search-dashboard-cut span:last-of-type{font-weight:600}.jp-search-dashboard-cut:focus span:last-of-type,.jp-search-dashboard-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:2px}.jp-search-dashboard-cut:focus:after,.jp-search-dashboard-cut:hover:after{transform:translateY(-50%) translateX(-8px)}.jp-search-dashboard-cut:after{color:#069e08;content:"→";font-size:1.5em;font-weight:600;left:1.5em;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.jp-mocked-instant-search{background:#fff;border-radius:3px;box-shadow:0 5px 25px rgba(0,0,0,.35);font-size:.75em;height:100%;margin:0 auto;overflow:hidden;-webkit-user-select:none;user-select:none;width:100%}.jp-mocked-instant-search__search-controls{align-items:center;border-bottom:1px solid #e6f1f5;display:flex;flex-flow:row nowrap;justify-content:space-between}.jp-mocked-instant-search__search-icon{align-items:center;display:flex;height:60px;justify-content:center;width:60px}@media(max-width:660px){.jp-mocked-instant-search__search-icon{height:45px;width:45px}}.jp-mocked-instant-search__search-mock-input{width:calc(100% - 120px)}.jp-mocked-instant-search__close-button{align-items:center;background-color:transparent!important;border-right:1px solid #e6f1f5;display:flex;height:60px;justify-content:center;line-height:1;width:60px}.jp-mocked-instant-search__close-button svg.gridicon{fill:#646970}@media(max-width:660px){.jp-mocked-instant-search__close-button{height:45px;width:45px}}.jp-mocked-instant-search__search-results{display:flex;height:100%;position:relative}.jp-mocked-instant-search__search-results-primary{padding:1em 4em;width:100%}@media(min-width:661px){.jp-mocked-instant-search__search-results-primary{max-width:calc(100% - 220px)}}@media(max-width:660px){.jp-mocked-instant-search__search-results-primary{padding:2em}}.jp-mocked-instant-search__search-results-header{align-items:center;display:flex;flex-flow:row wrap;justify-content:space-between}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-statistics{font-size:1em;font-weight:700}@media(max-width:480px){.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-statistics{width:100%}}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list span{font-size:1em;margin-right:.5em}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list span:first-child{margin-right:0}.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list .jp-mocked-instant-search__result-sort-selected{color:#069e08}@media(max-width:480px){.jp-mocked-instant-search__search-results-header .jp-mocked-instant-search__result-sort-list{width:100%}}.jp-mocked-instant-search__search-result{margin-top:1em}.jp-mocked-instant-search__search-results-secondary{background:none;border-radius:0;border-right:1px solid #e6f1f5;bottom:0;box-shadow:none;display:block;flex:none;padding-right:2em;padding-top:1em;position:static;width:220px}@media(max-width:660px){.jp-mocked-instant-search__search-results-secondary{display:none}}.jp-mocked-instant-search__search-filter-header{font-weight:700}.jp-mocked-instant-search__search-filter label{cursor:default}.jp-mocked-instant-search__search-filter label input[type=checkbox]{border:1px solid #e6e6fa;border-radius:5px;cursor:default}.jp-mocked-instant-search__search-filter span{background-color:#e6e6fa;display:inline-block;line-height:1.35;margin-right:1em;width:50em}.jp-mocked-instant-search__search-filter input[type=checkbox]{height:1em;width:1em}.jp-mocked-instant-search__search-filter-list{margin-top:1em}.jp-mocked-legacy-search{border-radius:3px;margin:0 auto;-webkit-user-select:none;user-select:none;width:100%}.jp-mocked-legacy-search__search-controls{background:#fff;box-shadow:0 5px 25px rgba(0,0,0,.35);display:flex;flex-flow:row nowrap;width:100%}.jp-mocked-legacy-search__search-icon{align-items:center;display:flex;height:60px;justify-content:center;width:60px}.jp-mocked-legacy-search__search-input{align-items:center;display:flex;width:100%}*{box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}#screen-meta,#screen-meta-links{display:none}#jp-search-dashboard{color:#000;font-size:16px;min-height:100vh}#jp-search-dashboard .jp-masthead__logo-link{pointer-events:none}#jp-search-dashboard .jp-search-dashboard-top{background-color:#f9f9f6;overflow:hidden}#jp-search-dashboard .jp-search-dashboard-top__title{padding:2.5em 0}#jp-search-dashboard .jp-search-dashboard-top__title h1{font-size:2.25em;line-height:1.111;margin:0}#jp-search-dashboard .jp-search-dashboard-top__mocked-search-interface{align-items:center;display:flex;flex-flow:column;height:15.625em;justify-content:center}#jp-search-dashboard .jp-search-dashboard-bottom{background-color:#fff}#jp-search-dashboard .jp-search-dashboard-footer,#jp-search-dashboard .jp-search-dashboard-header{background-color:#fff;padding:2.5em 0}@media(max-width:600px){#jp-search-dashboard{font-size:14px}}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-right:5px} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.asset.php b/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.asset.php
new file mode 100644
index 00000000..6694c015
--- /dev/null
+++ b/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'b11eff38409bc8fc2f9340b96e2f8b75'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.js b/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.js
index c93c40be..6dfac5cf 100644
--- a/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.js
+++ b/plugins/jetpack/_inc/build/sharedaddy/admin-sharing.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global sharing_loading_icon */
-!function(e){e(document).ready(function(){function i(){e(".preview a.sharing-anchor").unbind("mouseenter mouseenter").hover(function(){if(!0!==e(this).data("hasappeared")){var i=e(".sharing-hidden .inner"),a=e(this).parents("li"),s=setTimeout(function(){e(i).css({left:e(a).position().left+"px",top:e(a).position().top+e(a).height()+3+"px"}).slideDown(200,function(){e(a).data("hasappeared",!0).data("hasoriginal",!0).data("hasitem",!1),e(i).mouseleave(s).mouseenter(n),e(a).mouseleave(r).mouseenter(t),e(a).click(l)});var s=function(){if(e(a).data("hasitem",!1),!1===e(a).data("hasoriginal")){var i=setTimeout(l,800);e(a).data("timer2",i)}},n=function(){e(a).data("hasitem",!0),clearTimeout(e(a).data("timer2"))},r=function(){if(e(a).data("hasoriginal",!1),!1===e(a).data("hasitem")){var i=setTimeout(l,800);e(a).data("timer2",i)}},t=function(){e(a).data("hasoriginal",!0),clearTimeout(e(a).data("timer2"))},l=function(){return i.slideUp(200),e(a).unbind("mouseleave",r).unbind("mouseenter",t),e(i).unbind("mouseleave",s).unbind("mouseenter",s),e(a).data("hasappeared",!1),e(a).unbind("click",l),!1}},200);e(this).data("timer",s)}},function(){clearTimeout(e(this).data("timer")),e(this).data("timer",!1)})}function a(){var a=e("#button_style").val();e("#live-preview ul.preview li").remove(),(e("#save-enabled-shares input[name=visible]").val()||e("#save-enabled-shares input[name=hidden]").val())&&e("#live-preview ul.preview").append(e("#live-preview ul.archive .sharing-label").clone()),e("ul.services-enabled li").each(function(){if(e(this).hasClass("service")){var i=e(this).attr("id");e("#live-preview ul.preview").append(e("#live-preview ul.archive li.preview-"+i).clone())}}),e("#save-enabled-shares input[name=hidden]").val()&&(e("#live-preview ul.preview").append(e("#live-preview ul.archive .share-more").parent().clone()),e(".sharing-hidden ul li").remove(),e("ul.services-hidden li").each(function(){if(e(this).hasClass("service")){var i=e(this).attr("id");e(".sharing-hidden .inner ul").append(e("#live-preview ul.archive .preview-"+i).clone())}}),i()),e("#live-preview div.sharedaddy").removeClass("sd-social-icon"),e("#live-preview li.advanced").removeClass("no-icon"),"icon"===a?(e("#live-preview ul.preview div span, .sharing-hidden .inner ul div span").html("&nbsp;").parent().addClass("no-text"),e("#live-preview div.sharedaddy").addClass("sd-social-icon")):"official"===a?e("#live-preview ul.preview .advanced, .sharing-hidden .inner ul .advanced").each(function(){e(this).hasClass("preview-press-this")||e(this).hasClass("preview-email")||e(this).hasClass("preview-print")||e(this).hasClass("preview-telegram")||e(this).hasClass("preview-jetpack-whatsapp")||e(this).hasClass("share-custom")||e(this).hasClass("share-deprecated")||e(this).find(".option a span").html("").parent().removeClass("sd-button").parent().attr("class","option option-smart-on")}):"text"===a&&e("#live-preview li.advanced").addClass("no-icon")}function s(e){jQuery("."+e+"-extra-options").css({backgroundColor:"#ffffcc"}).fadeIn()}function n(){e("#enabled-services h3 img").show(),e("#enabled-services ul.services-enabled li.service").length>0?e("#drag-instructions").hide():e("#drag-instructions").show(),e("#enabled-services li.service").length>0?e("#live-preview .services h2").hide():e("#live-preview .services h2").show();var i=[],n=[];e("ul.services-enabled li").each(function(){e(this).hasClass("service")&&(i[i.length]=e(this).attr("id"),s(e(this).attr("id")))}),e("ul.services-available li").each(function(){var i;e(this).hasClass("service")&&(i=e(this).attr("id"),jQuery("."+i+"-extra-options").fadeOut("slow"))}),e("ul.services-hidden li").each(function(){e(this).hasClass("service")&&(n[n.length]=e(this).attr("id"),s(e(this).attr("id")))}),e("#save-enabled-shares input[name=visible]").val(i.join(",")),e("#save-enabled-shares input[name=hidden]").val(n.join(",")),a(),e("#save-enabled-shares").ajaxSubmit(function(){e("#enabled-services h3 img").hide()})}function r(e,i){var a,s=e.parent(),r=s.find("li"),t=r.index(e)+1,l=r.length-1;if(!s.hasClass("services-available")){if("left"===i){if(1===t)return;var c=e.prev();a=e.detach(),c.before(a),c.prev().focus()}if("right"===i){if(t===l)return;var o=e.next();a=e.detach(),o.after(a),o.next().focus()}n()}}function t(i){var a,s=i.parent();a=s.hasClass("services-available")?"services-enabled":s.hasClass("services-enabled")?"services-hidden":"services-available";var r=i.detach();e("."+a).prepend(r).find("li:first-child").focus(),n()}window.sharing_option_changed=function(){var i=this;return e(this).parents("li:first").css("backgroundImage",'url("'+sharing_loading_icon+'")'),e(this).parents("form").ajaxSubmit(function(s){if(s.indexOf("\x3c!---")>=0){var n=s.substring(0,s.indexOf("\x3c!---\x3e")),r=s.substring(s.indexOf("\x3c!---\x3e")+6);!0===e(i).is(":submit")&&e(i).parents("li:first").replaceWith(n),e("#live-preview ul.archive li.preview-"+e(i).parents("form").find("input[name=service]").val()).replaceWith(r)}a(),e(i).parents("li:first").removeAttr("style")}),!0!==e(i).is(":submit")},e("#enabled-services .services ul").sortable({receive:function(){n()},stop:function(){n(),e("li.service").enableSelection()},over:function(){e(this).find("ul").addClass("dropping"),e("#enabled-services li.end-fix").remove(),e("#enabled-services ul").append('<li class="end-fix"></li>')},out:function(){e(this).find("ul").removeClass("dropping"),e("#enabled-services li.end-fix").remove(),e("#enabled-services ul").append('<li class="end-fix"></li>')},helper:function(e,i){return i.find(".advanced-form").hide(),i.clone()},start:function(){e(".advanced-form").hide(),e("li.service").disableSelection()},placeholder:"dropzone",opacity:.8,delay:150,forcePlaceholderSize:!0,items:"li",connectWith:"#available-services ul, #enabled-services .services ul",cancel:".advanced-form"}),e("#available-services ul").sortable({opacity:.8,delay:150,cursor:"move",connectWith:"#enabled-services .services ul",placeholder:"dropzone",forcePlaceholderSize:!0,start:function(){e(".advanced-form").hide()}}),e(".service").on("keydown",function(i){switch(i.keyCode){case 13:case 32:t(e(this));break;case 37:r(e(this),"left");break;case 39:r(e(this),"right");break;default:return!0}i.preventDefault()}),e(".preview-hidden a").click(function(){return e(this).parent().find(".preview").toggle(),!1}),e("#new-service form").ajaxForm({beforeSubmit:function(){e("#new-service-form .error").hide(),e("#new-service-form img").show(),e("#new-service-form input[type=submit]").prop("disabled",!0)},success:function(i){e("#new-service-form img").hide(),""+i=="1"?(e("#new-service-form .inerror").removeClass("inerror").addClass("error"),e("#new-service-form .error").show(),e("#new-service-form input[type=submit]").prop("disabled",!1)):document.location.reload()}}),e("#button_style").change(function(){return a(),!0}).change(),e("input[name=sharing_label]").blur(function(){e("#live-preview h3.sd-title").text(e("<div/>").text(e(this).val()).html())}),e("#services-config a.remove").unbind("click").click(function(){var i=e(this).parent().next();return e(this).parents("li:first").css("backgroundImage",'url("'+sharing_loading_icon+'")'),i.ajaxSubmit(function(){i.parents("li:first").fadeOut(function(){e(this).remove(),a()})}),!1}),i()})}(jQuery); \ No newline at end of file
+!function(){var e;(e=jQuery)(document).ready((function(){function i(){e(".preview a.sharing-anchor").unbind("mouseenter mouseenter").hover((function(){if(!0!==e(this).data("hasappeared")){var i=e(".sharing-hidden .inner"),a=e(this).parents("li"),s=setTimeout((function(){e(i).css({left:e(a).position().left+"px",top:e(a).position().top+e(a).height()+3+"px"}).slideDown(200,(function(){e(a).data("hasappeared",!0).data("hasoriginal",!0).data("hasitem",!1),e(i).mouseleave(s).mouseenter(n),e(a).mouseleave(r).mouseenter(t),e(a).click(l)}));var s=function(){if(e(a).data("hasitem",!1),!1===e(a).data("hasoriginal")){var i=setTimeout(l,800);e(a).data("timer2",i)}},n=function(){e(a).data("hasitem",!0),clearTimeout(e(a).data("timer2"))},r=function(){if(e(a).data("hasoriginal",!1),!1===e(a).data("hasitem")){var i=setTimeout(l,800);e(a).data("timer2",i)}},t=function(){e(a).data("hasoriginal",!0),clearTimeout(e(a).data("timer2"))},l=function(){return i.slideUp(200),e(a).unbind("mouseleave",r).unbind("mouseenter",t),e(i).unbind("mouseleave",s).unbind("mouseenter",s),e(a).data("hasappeared",!1),e(a).unbind("click",l),!1}}),200);e(this).data("timer",s)}}),(function(){clearTimeout(e(this).data("timer")),e(this).data("timer",!1)}))}function a(){var a=e("#button_style").val();e("#live-preview ul.preview li").remove(),(e("#save-enabled-shares input[name=visible]").val()||e("#save-enabled-shares input[name=hidden]").val())&&e("#live-preview ul.preview").append(e("#live-preview ul.archive .sharing-label").clone()),e("ul.services-enabled li").each((function(){if(e(this).hasClass("service")){var i=e(this).attr("id");e("#live-preview ul.preview").append(e("#live-preview ul.archive li.preview-"+i).clone())}})),e("#save-enabled-shares input[name=hidden]").val()&&(e("#live-preview ul.preview").append(e("#live-preview ul.archive .share-more").parent().clone()),e(".sharing-hidden ul li").remove(),e("ul.services-hidden li").each((function(){if(e(this).hasClass("service")){var i=e(this).attr("id");e(".sharing-hidden .inner ul").append(e("#live-preview ul.archive .preview-"+i).clone())}})),i()),e("#live-preview div.sharedaddy").removeClass("sd-social-icon"),e("#live-preview li.advanced").removeClass("no-icon"),"icon"===a?(e("#live-preview ul.preview div span, .sharing-hidden .inner ul div span").html("&nbsp;").parent().addClass("no-text"),e("#live-preview div.sharedaddy").addClass("sd-social-icon")):"official"===a?e("#live-preview ul.preview .advanced, .sharing-hidden .inner ul .advanced").each((function(){e(this).hasClass("preview-press-this")||e(this).hasClass("preview-email")||e(this).hasClass("preview-print")||e(this).hasClass("preview-telegram")||e(this).hasClass("preview-jetpack-whatsapp")||e(this).hasClass("share-custom")||e(this).hasClass("share-deprecated")||e(this).find(".option a span").html("").parent().removeClass("sd-button").parent().attr("class","option option-smart-on")})):"text"===a&&e("#live-preview li.advanced").addClass("no-icon")}function s(e){jQuery("."+e+"-extra-options").css({backgroundColor:"#ffffcc"}).fadeIn()}function n(){e("#enabled-services h3 img").show(),e("#enabled-services ul.services-enabled li.service").length>0?e("#drag-instructions").hide():e("#drag-instructions").show(),e("#enabled-services li.service").length>0?e("#live-preview .services h2").hide():e("#live-preview .services h2").show();var i=[],n=[];e("ul.services-enabled li").each((function(){e(this).hasClass("service")&&(i[i.length]=e(this).attr("id"),s(e(this).attr("id")))})),e("ul.services-available li").each((function(){var i;e(this).hasClass("service")&&(i=e(this).attr("id"),jQuery("."+i+"-extra-options").fadeOut("slow"))})),e("ul.services-hidden li").each((function(){e(this).hasClass("service")&&(n[n.length]=e(this).attr("id"),s(e(this).attr("id")))})),e("#save-enabled-shares input[name=visible]").val(i.join(",")),e("#save-enabled-shares input[name=hidden]").val(n.join(",")),a(),e("#save-enabled-shares").ajaxSubmit((function(){e("#enabled-services h3 img").hide()}))}function r(e,i){var a,s=e.parent(),r=s.find("li"),t=r.index(e)+1,l=r.length-1;if(!s.hasClass("services-available")){if("left"===i){if(1===t)return;var c=e.prev();a=e.detach(),c.before(a),c.prev().focus()}if("right"===i){if(t===l)return;var o=e.next();a=e.detach(),o.after(a),o.next().focus()}n()}}function t(i){var a,s=i.parent();a=s.hasClass("services-available")?"services-enabled":s.hasClass("services-enabled")?"services-hidden":"services-available";var r=i.detach();e("."+a).prepend(r).find("li:first-child").focus(),n()}window.sharing_option_changed=function(){var i=this;return e(this).parents("li:first").css("backgroundImage",'url("'+sharing_loading_icon+'")'),e(this).parents("form").ajaxSubmit((function(s){if(s.indexOf("\x3c!---")>=0){var n=s.substring(0,s.indexOf("\x3c!---\x3e")),r=s.substring(s.indexOf("\x3c!---\x3e")+6);!0===e(i).is(":submit")&&e(i).parents("li:first").replaceWith(n),e("#live-preview ul.archive li.preview-"+e(i).parents("form").find("input[name=service]").val()).replaceWith(r)}a(),e(i).parents("li:first").removeAttr("style")})),!0!==e(i).is(":submit")},e("#enabled-services .services ul").sortable({receive:function(){n()},stop:function(){n(),e("li.service").enableSelection()},over:function(){e(this).find("ul").addClass("dropping"),e("#enabled-services li.end-fix").remove(),e("#enabled-services ul").append('<li class="end-fix"></li>')},out:function(){e(this).find("ul").removeClass("dropping"),e("#enabled-services li.end-fix").remove(),e("#enabled-services ul").append('<li class="end-fix"></li>')},helper:function(e,i){return i.find(".advanced-form").hide(),i.clone()},start:function(){e(".advanced-form").hide(),e("li.service").disableSelection()},placeholder:"dropzone",opacity:.8,delay:150,forcePlaceholderSize:!0,items:"li",connectWith:"#available-services ul, #enabled-services .services ul",cancel:".advanced-form"}),e("#available-services ul").sortable({opacity:.8,delay:150,cursor:"move",connectWith:"#enabled-services .services ul",placeholder:"dropzone",forcePlaceholderSize:!0,start:function(){e(".advanced-form").hide()}}),e(".service").on("keydown",(function(i){switch(i.keyCode){case 13:case 32:t(e(this));break;case 37:r(e(this),"left");break;case 39:r(e(this),"right");break;default:return!0}i.preventDefault()})),e(".preview-hidden a").click((function(){return e(this).parent().find(".preview").toggle(),!1})),e("#new-service form").ajaxForm({beforeSubmit:function(){e("#new-service-form .error").hide(),e("#new-service-form img").show(),e("#new-service-form input[type=submit]").prop("disabled",!0)},success:function(i){e("#new-service-form img").hide(),""+i=="1"?(e("#new-service-form .inerror").removeClass("inerror").addClass("error"),e("#new-service-form .error").show(),e("#new-service-form input[type=submit]").prop("disabled",!1)):document.location.reload()}}),e("#button_style").change((function(){return a(),!0})).change(),e("input[name=sharing_label]").blur((function(){e("#live-preview h3.sd-title").text(e("<div/>").text(e(this).val()).html())})),e("#services-config a.remove").unbind("click").click((function(){var i=e(this).parent().next();return e(this).parents("li:first").css("backgroundImage",'url("'+sharing_loading_icon+'")'),i.ajaxSubmit((function(){i.parents("li:first").fadeOut((function(){e(this).remove(),a()}))})),!1})),i()}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/sharedaddy/sharing.min.asset.php b/plugins/jetpack/_inc/build/sharedaddy/sharing.min.asset.php
new file mode 100644
index 00000000..46e532c6
--- /dev/null
+++ b/plugins/jetpack/_inc/build/sharedaddy/sharing.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '607409d3c923e75eb112b3c8ee38e03f'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js b/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js
index f7228531..de786863 100644
--- a/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js
+++ b/plugins/jetpack/_inc/build/sharedaddy/sharing.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global WPCOM_sharing_counts, grecaptcha */
-var sharing_js_options;if(sharing_js_options&&sharing_js_options.counts)var WPCOMSharing={done_urls:[],get_counts:function(){var t,e,i,n,a;if("undefined"!=typeof WPCOM_sharing_counts)for(t in WPCOM_sharing_counts)if(i=WPCOM_sharing_counts[t],void 0===WPCOMSharing.done_urls[i]){for(n in e={pinterest:[window.location.protocol+"//api.pinterest.com/v1/urls/count.json?callback=WPCOMSharing.update_pinterest_count&url="+encodeURIComponent(t)],facebook:[window.location.protocol+"//graph.facebook.com/?callback=WPCOMSharing.update_facebook_count&ids="+encodeURIComponent(t)]})if(jQuery("a[data-shared=sharing-"+n+"-"+i+"]").length){for(;a=e[n].pop();)jQuery.getScript(a);sharing_js_options.is_stats_active&&WPCOMSharing.bump_sharing_count_stat(n)}WPCOMSharing.done_urls[i]=!0}},get_permalink:function(t){return t="https:"===window.location.protocol?t.replace(/^http:\/\//i,"https://"):t.replace(/^https:\/\//i,"http://")},update_facebook_count:function(t){var e,i;if(t)for(e in t)t.hasOwnProperty(e)&&t[e].share&&t[e].share.share_count&&(i=WPCOMSharing.get_permalink(e))in WPCOM_sharing_counts&&WPCOMSharing.inject_share_count("sharing-facebook-"+WPCOM_sharing_counts[i],t[e].share.share_count)},update_pinterest_count:function(t){void 0!==t.count&&1*t.count>0&&WPCOMSharing.inject_share_count("sharing-pinterest-"+WPCOM_sharing_counts[t.url],t.count)},inject_share_count:function(t,e){var i=jQuery("a[data-shared="+t+"] > span");i.find(".share-count").remove(),i.append('<span class="share-count">'+WPCOMSharing.format_count(e)+"</span>")},format_count:function(t){return t<1e3?t:t>=1e3&&t<1e4?String(t).substring(0,1)+"K+":"10K+"},bump_sharing_count_stat:function(t){(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv&x_sharing-count-request="+t+"&r="+Math.random()}};!function(t){var e,i;function n(){var e;void 0!==WPCOMSharing&&WPCOMSharing.get_counts(),(e=t(".sharedaddy a.sharing-anchor")).click(function(){return!1}),t(".sharedaddy a").each(function(){t(this).attr("href")&&-1!==t(this).attr("href").indexOf("share=")&&t(this).attr("href",t(this).attr("href")+"&nb=1")}),e.on("click",function(){var e=t(this),n=e.parents("div:first").find(".inner");n.is(":animated")||!0!==n.data("justSlid")&&(i.slideUp(200),n.css({left:e.position().left+"px",top:e.position().top+e.height()+3+"px"}).slideToggle(200))}),void 0===document.ontouchstart?e.hover(function(){var e,n=t(this),a=n.parents("div:first").find(".inner");a.is(":animated")||(e=setTimeout(function(){var t,e,r,o,s;i.slideUp(200),a.data("justSlid",!0),a.css({left:n.position().left+"px",top:n.position().top+n.height()+3+"px"}).slideDown(200,function(){n.data("hasoriginal",!0).data("hasitem",!1),setTimeout(function(){a.data("justSlid",!1)},300),a.mouseleave(t).mouseenter(e),n.mouseleave(r).mouseenter(o)}),t=function(){if(n.data("hasitem",!1),!1===n.data("hasoriginal")){var t=setTimeout(s,800);n.data("timer2",t)}},e=function(){n.data("hasitem",!0),clearTimeout(n.data("timer2"))},r=function(){if(n.data("hasoriginal",!1),!1===n.data("hasitem")){var t=setTimeout(s,800);n.data("timer2",t)}},o=function(){n.data("hasoriginal",!0),clearTimeout(n.data("timer2"))},s=function(){return a.data("justSlid",!0),a.slideUp(200,function(){setTimeout(function(){a.data("justSlid",!1)},300)}),n.unbind("mouseleave",r).unbind("mouseenter",o),a.unbind("mouseleave",t).unbind("mouseenter",t),!1}},200),n.data("timer",e))},function(){e.each(function(){clearTimeout(t(this).data("timer"))}),e.data("timer",!1)}):t(document.body).addClass("jp-sharing-input-touch"),t(document).click(function(){e.each(function(){clearTimeout(t(this).data("timer"))}),e.data("timer",!1),t(".sharedaddy .inner").slideUp()}),t(".sharedaddy ul").each(function(){if("yep"!==t(this).data("has-click-events")){t(this).data("has-click-events","yep");t(this).find("a.share-print").click(function(){var e=t(this).attr("href"),i=function(){if(-1===e.indexOf("#print")){var i=(new Date).getTime();n=i,a=e,t("body:first").append('<iframe style="position:fixed;top:100;left:100;height:1px;width:1px;border:none;" id="printFrame-'+n+'" name="printFrame-'+n+'" src="'+a+'" onload="frames[\'printFrame-'+n+"'].focus();frames['printFrame-"+n+"'].print();\"></iframe>")}else print();var n,a};return t(this).parents(".sharing-hidden").length>0?t(this).parents(".inner").slideUp(0,function(){i()}):i(),!1}),t(this).find("a.share-press-this").click(function(){var e="";return window.getSelection?e=window.getSelection():document.getSelection?e=document.getSelection():document.selection&&(e=document.selection.createRange().text),e&&t(this).attr("href",t(this).attr("href")+"&sel="+encodeURI(e)),window.open(t(this).attr("href"),"t","toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=570")||(document.location.href=t(this).attr("href")),!1}),t("a.share-email",this).on("click",function(){var e=t(this).attr("href"),n=window.location.protocol+"//"+window.location.hostname+"/";return 0!==e.indexOf(n)||(i.is(":visible")?i.slideUp(200):(t(".sharedaddy .inner").slideUp(),t("#sharing_email .response").remove(),t("#sharing_email form").show(),t("#sharing_email form input[type=submit]").removeAttr("disabled"),t("#sharing_email form a.sharing_cancel").show(),"object"==typeof grecaptcha&&"function"==typeof grecaptcha.reset&&window.___grecaptcha_cfg.count&&grecaptcha.reset(),i.css({left:t(this).offset().left+"px",top:t(this).offset().top+t(this).height()+"px"}).slideDown(200),t("#sharing_email a.sharing_cancel").unbind("click").click(function(){return t("#sharing_email .errors").hide(),i.slideUp(200),t("#sharing_background").fadeOut(),!1}),t("#sharing_email input[type=submit]").unbind("click").click(function(){var n=t(this).parents("form"),a=n.find("input[name=source_email]"),r=n.find("input[name=target_email]");return t(this).prop("disabled",!0),n.find("a.sharing_cancel").hide(),n.find("img.loading").show(),t("#sharing_email .errors").hide(),t("#sharing_email .error").removeClass("error"),a.share_is_email()||a.addClass("error"),r.share_is_email()||r.addClass("error"),0===t("#sharing_email .error").length?(t.ajax({url:e,type:"POST",data:n.serialize(),success:function(e){n.find("img.loading").hide(),"1"===e||"2"===e||"3"===e?(t("#sharing_email .errors-"+e).show(),n.find("input[type=submit]").removeAttr("disabled"),n.find("a.sharing_cancel").show(),"object"==typeof grecaptcha&&"function"==typeof grecaptcha.reset&&grecaptcha.reset()):(t("#sharing_email form").hide(),i.append(e),t("#sharing_email a.sharing_cancel").click(function(){return i.slideUp(200),t("#sharing_background").fadeOut(),!1}))}}),!1):(n.find("img.loading").hide(),n.find("input[type=submit]").removeAttr("disabled"),n.find("a.sharing_cancel").show(),t("#sharing_email .errors-1").show(),!1)})),!1)})}}),t("li.share-email, li.share-custom a.sharing-anchor").addClass("share-service-visible")}t.fn.extend({share_is_email:function(){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(this.val())}}),e=t(document.body).on("post-load",n),t(document).ready(function(){i=t("#sharing_email"),e.append(i),n()})}(jQuery); \ No newline at end of file
+!function(){var e=document.currentScript,t=!1;function n(t){var n=document.createElement("script"),r=e||document.getElementsByTagName("script")[0];n.setAttribute("async",!0),n.setAttribute("src",t),r.parentNode.insertBefore(n,r)}function r(e,t){return Element.prototype.matches?e.matches(t):Element.prototype.msMatchesSelector?e.msMatchesSelector(t):void 0}function o(e,t){if(e.closest)return e.closest(t);var n=e;do{if(r(n,t))return n;n=n.parentElement||n.parentNode}while(null!==n&&1===n.nodeType);return null}function i(e,t){for(var n=0;n<e.length;n++)t(e[n],n,e)}function u(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function s(e){e&&(e.style.display="none")}function a(e){e&&e.style.removeProperty("display")}function c(e){return!e||"none"===e.style.display}var l=".sharing-hidden .inner",d="data-sharing-more-button-id";function h(e){this.button=e,this.pane=o(e,"div").querySelector(l),this.openedBy=null,this.recentlyOpenedByHover=!1,h.instances.push(this),this.pane.setAttribute(d,h.instances.length-1),this.attachHandlers()}if(h.instances=[],h.hoverOpenDelay=200,h.recentOpenDelay=400,h.hoverCloseDelay=300,h.instantiateOrReuse=function(e){var t=o(e,"div").querySelector(l),n=t&&t.getAttribute(d),r=h.instances[n];return r||new h(e)},h.getButtonInstanceFromPane=function(e){var t=e&&e.getAttribute(d);return h.instances[t]},h.closeAll=function(){for(var e=0;e<h.instances.length;e++)h.instances[e].close()},h.prototype.open=function(){var e,t,n=[0,0];function r(e){var t=e.getBoundingClientRect();return[t.left+(window.scrollX||window.pageXOffset||0),t.top+(window.scrollY||window.pageYOffset||0)]}function o(e,t){return parseInt(getComputedStyle(e).getPropertyValue(t)||0)}for(e=r(this.button),t=this.button.offsetParent||document.documentElement;t&&(t===document.body||t===document.documentElement)&&"static"===getComputedStyle(t).getPropertyValue("position");)t=t.parentNode;t&&t!==this.button&&1===t.nodeType&&(n=[(n=r(t))[0]+o(t,"border-left-width"),n[1]+o(t,"border-top-width")]);var i=e[0]-n[0]-o(this.button,"margin-left"),u=e[1]-n[1]-o(this.button,"margin-top");this.pane.style.left=i+"px",this.pane.style.top=u+this.button.offsetHeight+3+"px",a(this.pane)},h.prototype.close=function(){s(this.pane),this.openedBy=null},h.prototype.toggle=function(){c(this.pane)?this.open():this.close()},h.prototype.resetCloseTimer=function(){clearTimeout(this.closeTimer),this.closeTimer=setTimeout(this.close.bind(this),h.hoverCloseDelay)},h.prototype.attachHandlers=function(){this.buttonClick=function(e){e.preventDefault(),e.stopPropagation(),this.openedBy="click",clearTimeout(this.openTimer),clearTimeout(this.closeTimer),f(),this.recentlyOpenedByHover?(this.recentlyOpenedByHover=!1,clearTimeout(this.hoverOpenTimer),this.open()):this.toggle()}.bind(this),this.buttonEnter=function(){this.openedBy||(this.openTimer=setTimeout(function(){f(),this.open(),this.openedBy="hover",this.recentlyOpenedByHover=!0,this.hoverOpenTimer=setTimeout(function(){this.recentlyOpenedByHover=!1}.bind(this),h.recentOpenDelay)}.bind(this),h.hoverOpenDelay)),clearTimeout(this.closeTimer)}.bind(this),this.buttonLeave=function(){"hover"===this.openedBy&&this.resetCloseTimer(),clearTimeout(this.openTimer)}.bind(this),this.paneEnter=function(){clearTimeout(this.closeTimer)}.bind(this),this.paneLeave=function(){"hover"===this.openedBy&&this.resetCloseTimer()}.bind(this),this.documentClick=function(){this.close()}.bind(this),this.button.addEventListener("click",this.buttonClick),document.addEventListener("click",this.documentClick),void 0===document.ontouchstart&&(this.button.addEventListener("mouseenter",this.buttonEnter),this.button.addEventListener("mouseleave",this.buttonLeave),this.pane.addEventListener("mouseenter",this.paneEnter),this.pane.addEventListener("mouseleave",this.paneLeave))},window.sharing_js_options&&window.sharing_js_options.counts){var p={done_urls:[],get_counts:function(){var e,t,r,o,i;if("undefined"!=typeof WPCOM_sharing_counts)for(e in WPCOM_sharing_counts)if(r=WPCOM_sharing_counts[e],void 0===p.done_urls[r]){for(o in t={pinterest:[window.location.protocol+"//api.pinterest.com/v1/urls/count.json?callback=WPCOMSharing.update_pinterest_count&url="+encodeURIComponent(e)]})if(document.querySelector("a[data-shared=sharing-"+o+"-"+r+"]")){for(;i=t[o].pop();)n(i);window.sharing_js_options.is_stats_active&&p.bump_sharing_count_stat(o)}p.done_urls[r]=!0}},update_pinterest_count:function(e){void 0!==e.count&&1*e.count>0&&p.inject_share_count("sharing-pinterest-"+WPCOM_sharing_counts[e.url],e.count)},inject_share_count:function(e,t){i(document.querySelectorAll("a[data-shared="+e+"] > span"),(function(e){u(e.querySelector(".share-count"));var n=document.createElement("span");n.className="share-count",n.textContent=p.format_count(t),e.appendChild(n)}))},format_count:function(e){return e<1e3?e:e>=1e3&&e<1e4?String(e).substring(0,1)+"K+":"10K+"},bump_sharing_count_stat:function(e){(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv&x_sharing-count-request="+e+"&r="+Math.random()}};window.WPCOMSharing=p}function m(e){return/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(e)}function f(){s(document.querySelector("#sharing_email"))}function F(){var e=document.querySelector("#sharing_email");e&&document.body.appendChild(e),g()}function g(){window.WPCOMSharing&&window.WPCOMSharing.get_counts(),i(document.querySelectorAll(".sharedaddy a"),(function(e){var t=e.getAttribute("href");t&&-1!==t.indexOf("share=")&&-1===t.indexOf("&nb=1")&&e.setAttribute("href",t+"&nb=1")})),i(document.querySelectorAll(".sharedaddy a.sharing-anchor"),(function(e){h.instantiateOrReuse(e)})),void 0!==document.ontouchstart&&document.body.classList.add("jp-sharing-input-touch"),i(document.querySelectorAll(".sharedaddy ul"),(function(e){"true"!==e.getAttribute("data-sharing-events-added")&&(e.setAttribute("data-sharing-events-added","true"),i(e.querySelectorAll("a.share-print"),(function(e){e.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=e.getAttribute("href")||"",r=function(){if(-1===n.indexOf("#print")){var e=(new Date).getTime();t=e,r=n,(o=document.createElement("iframe")).setAttribute("style","position:fixed; top:100; left:100; height:1px; width:1px; border:none;"),o.setAttribute("id","printFrame-"+t),o.setAttribute("name",o.getAttribute("id")),o.setAttribute("src",r),o.setAttribute("onload",'frames["printFrame-'+t+'"].focus();frames["printFrame-'+t+'"].print();'),document.body.appendChild(o)}else window.print();var t,r,o},i=o(e,l);if(i){var u=h.getButtonInstanceFromPane(i);u&&(u.close(),r())}else r()}))})),i(e.querySelectorAll("a.share-press-this"),(function(e){e.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n="";if(window.getSelection?n=window.getSelection():document.getSelection?n=document.getSelection():document.selection&&(n=document.selection.createRange().text),n){var r=e.getAttribute("href");e.setAttribute("href",r+"&sel="+encodeURI(n))}window.open(e.getAttribute("href"),"t","toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=570")||(document.location.href=e.getAttribute("href"))}))})),i(e.querySelectorAll("a.share-email"),(function(e){var r=document.querySelector("#sharing_email");e.addEventListener("click",(function(o){if(o.preventDefault(),o.stopPropagation(),"object"!=typeof grecaptcha&&!t){var i=document.querySelector(".g-recaptcha");i&&"true"===i.getAttribute("data-lazy")&&(t=!0,n(decodeURI(i.getAttribute("data-url"))))}var s=e.getAttribute("href"),l=window.location.protocol+"//"+window.location.hostname+"/";if(0!==s.indexOf(l))return!0;if(c(r)){u(document.querySelector("#sharing_email .response"));var d=document.querySelector("#sharing_email form");a(d),d.querySelector("input[type=submit]").removeAttribute("disabled"),a(d.querySelector("a.sharing_cancel")),"object"==typeof grecaptcha&&"function"==typeof grecaptcha.reset&&window.___grecaptcha_cfg.count&&grecaptcha.reset();var p=e.getBoundingClientRect(),m=window.pageXOffset||document.documentElement.scrollLeft||0,F=window.pageYOffset||document.documentElement.scrollTop||0;r.style.left=m+p.left+"px",r.style.top=F+p.top+p.height+"px",a(r),h.closeAll()}else f()})),r.querySelector("a.sharing_cancel").addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),s(r.querySelector(".errors")),s(r),s(document.querySelector("#sharing_background"))}));var l=r.querySelector("input[type=submit]");l.addEventListener("click",(function(t){t.preventDefault(),t.stopPropagation();var n=o(l,"form"),u=n.querySelector("input[name=source_email]"),c=n.querySelector("input[name=target_email]");if(l.setAttribute("disabled",!0),s(n.querySelector("a.sharing_cancel")),i(n.querySelectorAll("img.loading"),(function(e){a(e)})),s(n.querySelector(".errors")),i(n.querySelectorAll(".error"),(function(e){e.classList.remove("error")})),m(u.value)||u.classList.add("error"),m(c.value)||c.classList.add("error"),!n.querySelector(".error")){for(var d=[],h=0;h<n.elements.length;h++)if(n.elements[h].name){var p=encodeURIComponent(n.elements[h].name)+"="+encodeURIComponent(n.elements[h].value);d.push(p.replace("%20","+"))}var F=d.join("&"),g=new XMLHttpRequest;return g.open("POST",e.getAttribute("href"),!0),g.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),g.setRequestHeader("x-requested-with","XMLHttpRequest"),g.onreadystatechange=function(){if(this.readyState===XMLHttpRequest.DONE&&200===this.status)if(i(n.querySelectorAll("img.loading"),(function(e){s(e)})),"1"===this.response||"2"===this.response||"3"===this.response)a(r.querySelector(".errors-"+this.response)),r.querySelector("input[type=submit]").removeAttribute("disabled"),a(r.querySelector("a.sharing_cancel")),"object"==typeof grecaptcha&&"function"==typeof grecaptcha.reset&&grecaptcha.reset();else{s(n);var e=document.createElement("div");e.innerHTML=this.response,r.appendChild(e.firstChild),a(r.querySelector("a.sharing_cancel"));var t=r.querySelector(".response a.sharing_cancel");t&&t.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),f(),s(document.querySelector("#sharing_background"))}))}},void g.send(F)}i(r.querySelectorAll("img.loading"),(function(e){s(e)})),l.removeAttribute("disabled"),a(r.querySelector("a.sharing_cancel")),i(r.querySelectorAll(".errors-1"),(function(e){a(e)}))}))})))})),i(document.querySelectorAll("li.share-email, li.share-custom a.sharing-anchor"),(function(e){e.classList.add("share-service-visible")}))}"loading"!==document.readyState?F():document.addEventListener("DOMContentLoaded",F),document.body.addEventListener("is.post-load",g)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.asset.php
new file mode 100644
index 00000000..e8a2f0c9
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'a6251d8ad1bde75a52a19280170b6dd6'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.js b/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.js
index ea4469f0..cd3f00d5 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/brightcove.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global brightcove, brightcoveData */
-!function(e){var t=document.createElement("script"),c="co.jp"===brightcoveData.tld?"co.jp":"com",o=!1;t.src="https://sadmin.brightcove."+c+"/js/BrightcoveExperiences.js",t.type="text/javascript",t.language="JavaScript",document.head.appendChild(t),function t(){clearTimeout(o);"object"==typeof brightcove?(e(document).ready(brightcove.createExperiences),e("body").on("post-load",brightcove.createExperiences),brightcove.createExperiences()):o=setTimeout(t,100)}()}(jQuery); \ No newline at end of file
+!function(){var e,t,c,o;e=jQuery,t=document.createElement("script"),c="co.jp"===brightcoveData.tld?"co.jp":"com",o=!1,t.src="https://sadmin.brightcove."+c+"/js/BrightcoveExperiences.js",t.type="text/javascript",t.language="JavaScript",document.head.appendChild(t),function t(){clearTimeout(o),"object"==typeof brightcove?(e(document).ready(brightcove.createExperiences),e("body").on("post-load",brightcove.createExperiences),brightcove.createExperiences()):o=setTimeout(t,100)}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.asset.php
new file mode 100644
index 00000000..49fc2af2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '4788f972d53b1d20a8b4a8e482e5e91a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js
index 8d751419..8242ff17 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js
@@ -1,22 +1,2 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/**
- * jmpress.js v0.4.5
- * http://jmpressjs.github.com/jmpress.js
- *
- * A jQuery plugin to build a website on the infinite canvas.
- *
- * Copyright 2013 Kyle Robinson Young @shama & Tobias Koppers @sokra
- * Licensed MIT
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Based on the foundation laid by Bartek Szopka @bartaz
- */
-!function(e,t,s,a){"use strict";var r,n,i,o=(r=t.createElement("dummy").style,n="Webkit Moz O ms Khtml".split(" "),i={},function(e){if(void 0===i[e]){var t=e.charAt(0).toUpperCase()+e.substr(1),s=(e+" "+n.join(t+" ")+t).split(" ");for(var o in i[e]=null,s)if(r[s[o]]!==a){i[e]=s[o];break}}return i[e]});function c(e){if(e){var t=1+e.substr(1).search(/[A-Z]/);return"-"+e.substr(0,t).toLowerCase()+"-"+e.substr(t).toLowerCase()}}function l(e){return e?e+",":""}function u(e){return e.length>0?e:null}var p={stepSelector:".step",containerClass:"",canvasClass:"",areaClass:"",notSupportedClass:"not-supported",fullscreen:!0,animation:{transformOrigin:"top left",transitionProperty:l(c(o("transform")))+l(c(o("perspective")))+"opacity",transitionDuration:"1s",transitionDelay:"500ms",transitionTimingFunction:"ease-in-out",transformStyle:"preserve-3d"},transitionDuration:1500},f={beforeChange:1,beforeInitStep:1,initStep:1,beforeInit:1,afterInit:1,beforeDeinit:1,afterDeinit:1,applyStep:1,unapplyStep:1,setInactive:1,beforeActive:1,setActive:1,selectInitialStep:1,selectPrev:1,selectNext:1,selectHome:1,selectEnd:1,idle:1,applyTarget:1};for(var d in f)p[d]=[];function m(r){r=e.extend(!0,{},r||{});var n={},i=null;for(i in f)n[i]=e.isFunction(r[i])?[r[i]]:r[i],r[i]=[];var o=e.extend(!0,{},p,r);for(i in f)n[i]&&Array.prototype.push.apply(o[i],n[i]);var c=e(this),l=null,d=null,m={container:"",area:""},g=null,b=null,y=!1,j=null,D=!1;function S(t,s){var a=v(t),r={oldStyle:e(t).attr("style")||""},n={data:a,stepData:r};x.call(this,"beforeInitStep",e(t),n),r.delegate=a.delegate,x.call(this,"initStep",e(t),n),e(t).data("stepData",r),e(t).attr("id")||e(t).attr("id","step-"+(s+1)),x.call(this,"applyStep",e(t),n)}function w(t){var s=e(t).data("stepData");e(t).attr("style",s.oldStyle),x.call(this,"unapplyStep",e(t),{stepData:s})}function x(t,s,a){a.settings=o,a.current=b,a.container=l,a.parents=s?e(s).parentsUntil(c).not(c).filter(o.stepSelector):null,a.current=b,a.jmpress=this;var r={};return e.each(o[t],function(e,t){r.value=t.call(c,s,a)||r.value}),r.value}function C(t,s){var r;if(e.isPlainObject(t)&&(r=t.substep,t=t.step),"string"==typeof t&&(t=c.find(t).first()),!t||!e(t).data("stepData"))return!1;T.call(this);var n=e(t).data("stepData"),i=!1;if(x.call(this,"beforeChange",t,{stepData:n,reason:s,cancel:function(){i=!0}}),i)return a;var l={},p=t;e(t).data("stepData").delegate&&((p=u(e(t).parentsUntil(c).filter(o.stepSelector).filter(n.delegate))||u(e(t).near(n.delegate))||u(e(t).near(n.delegate,!0))||u(e(n.delegate,c)))?n=p.data("stepData"):p=t),D&&x.call(this,"setInactive",D,{stepData:e(D).data("stepData"),delegatedFrom:y,reason:s,target:l,nextStep:p,nextSubstep:r,nextStepData:n});var f={stepData:n,delegatedFrom:t,reason:s,target:l,substep:r,prevStep:D,prevSubstep:j,prevStepData:D&&e(D).data("stepData")};return x.call(this,"beforeActive",p,f),x.call(this,"setActive",p,f),b.jmpressClass&&e(c).removeClass(b.jmpressClass),e(c).addClass(b.jmpressClass="step-"+e(p).attr("id")),b.jmpressDelegatedClass&&e(c).removeClass(b.jmpressDelegatedClass),e(c).addClass(b.jmpressDelegatedClass="delegating-step-"+e(t).attr("id")),x.call(this,"applyTarget",p,e.extend({canvas:g,area:d,beforeActive:D},f)),y=t,j=f.substep,D=p,b.idleTimeout&&clearTimeout(b.idleTimeout),b.idleTimeout=setTimeout(function(){x.call(this,"idle",p,f)},Math.max(1,o.transitionDuration-100)),p}function T(){!function t(){if("BODY"===e(l)[0].tagName)try{s.scrollTo(0,0)}catch(e){}function a(){0===e(l).scrollTop()&&0===e(l).scrollLeft()||t()}e(l).scrollTop(0),e(l).scrollLeft(0),setTimeout(a,1),setTimeout(a,10),setTimeout(a,100),setTimeout(a,200),setTimeout(a,400)}()}if(c.data("jmpressmethods",{select:C,reselect:function(e){return C({step:y,substep:j},e)},scrollFix:T,goTo:function(e){return C.call(this,e,"jump")},next:function(){return C.call(this,x.call(this,"selectNext",y,{stepData:e(y).data("stepData"),substep:j}),"next")},prev:function(){return C.call(this,x.call(this,"selectPrev",y,{stepData:e(y).data("stepData"),substep:j}),"prev")},home:function(){return C.call(this,x.call(this,"selectHome",y,{stepData:e(y).data("stepData")}),"home")},end:function(){return C.call(this,x.call(this,"selectEnd",y,{stepData:e(y).data("stepData")}),"end")},canvas:function(t){return h(g,t||{}),e(g)},container:function(){return l},settings:function(){return o},active:function(){return D&&e(D)},current:function(){return b},fire:function(t,s,a){if(f[t])return x.call(this,t,s,a);e.error("callback "+t+" is not registered.")},init:function(t){S.call(this,e(t),b.nextIdNumber++)},deinit:function(t){t?w.call(this,e(t)):function(){y&&x.call(this,"setInactive",y,{stepData:e(y).data("stepData"),reason:"deinit"}),b.jmpressClass&&e(c).removeClass(b.jmpressClass),x.call(this,"beforeDeinit",e(this),{}),e(o.stepSelector,c).each(function(e){w.call(c,this)}),l.attr("style",m.container),o.fullscreen&&e("html").attr("style",""),d.attr("style",m.area),e(g).children().each(function(){c.append(e(this))}),o.fullscreen?g.remove():(g.remove(),d.remove()),x.call(this,"afterDeinit",e(this),{}),e(c).data("jmpressmethods",!1)}.call(this)},reapply:function(t){x.call(this,"unapplyStep",e(t),{stepData:t.data("stepData")}),x.call(this,"applyStep",e(t),{stepData:t.data("stepData")})}}),!1!=(-1===(P=navigator.userAgent.toLowerCase()).search(/(iphone)|(ipod)|(android)/)||-1!==P.search(/(chrome)/))){var P;o.notSupportedClass&&c.removeClass(o.notSupportedClass);var M=e(o.stepSelector,c);l=c,d=e("<div />"),g=e("<div />"),e(c).children().filter(M).each(function(){g.append(e(this))}),o.fullscreen&&(l=e("body"),e("html").css({overflow:"hidden"}),d=c),m.area=d.attr("style")||"",m.container=l.attr("style")||"",o.fullscreen?(l.css({height:"100%"}),c.append(g)):(l.css({position:"relative"}),d.append(g),c.append(d)),e(l).addClass(o.containerClass),e(d).addClass(o.areaClass),e(g).addClass(o.canvasClass),t.documentElement.style.height="100%",l.css({overflow:"hidden"});var A={position:"absolute",transitionDuration:"0s"};A=e.extend({},o.animation,A),h(d,A),h(d,{top:"50%",left:"50%",perspective:"1000px"}),h(g,A),b={},x.call(this,"beforeInit",null,{}),M.each(function(e){S.call(c,this,e)}),b.nextIdNumber=M.length,x.call(this,"afterInit",null,{}),C.call(this,x.call(this,"selectInitialStep","init",{})),o.initClass&&e(M).removeClass(o.initClass)}else o.notSupportedClass&&c.addClass(o.notSupportedClass)}function h(t,s){var a,r,n={};for(a in s)s.hasOwnProperty(a)&&null!==(r=o(a))&&(n[r]=s[a]);return e(t).css(n),t}function v(t){if(e(t)[0].dataset)return e.extend({},e(t)[0].dataset);var s={},a=e(t)[0].attributes;return e.each(a,function(e,t){"data-"===t.nodeName.substr(0,5)&&(s[function(e){e=e.split("-");for(var t=1;t<e.length;t++)e[t]=e[t].substr(0,1).toUpperCase()+e[t].substr(1);return e.join("")}(t.nodeName.substr(5))]=t.nodeValue)}),s}var g={init:m,initialized:function(){return!!e(this).data("jmpressmethods")},deinit:function(){},css:h,pfx:o,defaults:function(){return p},register:function(t,s){e.isFunction(s)?g[t]?e.error("function "+t+" is already registered."):g[t]=s:f[t]?e.error("callback "+t+" is already registered."):(f[t]=1,p[t]=[])},dataset:v};e.fn.jmpress=function(t){var s,a=arguments;return e(this).each(function(r,n){s=function(){var s=e(this).data("jmpressmethods");if(s&&s[t])return s[t].apply(this,Array.prototype.slice.call(arguments,1));if(g[t])return g[t].apply(this,Array.prototype.slice.call(arguments,1));if(f[t]&&s){var a=s.settings(),r=Array.prototype.slice.call(arguments,1)[0];e.isFunction(r)&&(a[t]=a[t]||[],a[t].push(r))}else{if("object"==typeof t||!t)return m.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.jmpress")}return this}.apply(n,a)}),s},e.extend({jmpress:function(t){if(g[t])return g[t].apply(this,Array.prototype.slice.call(arguments,1));if(f[t]){var s=Array.prototype.slice.call(arguments,1)[0];e.isFunction(s)?p[t].push(s):e.error("Second parameter should be a function: $.jmpress( callbackName, callbackFunction )")}else e.error("Method "+t+" does not exist on jQuery.jmpress")}})}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a,r){var n;return t.each(function(t,i){return(!r||!(n=s(i,a,r)))&&(e(i).is(a)?(n=i,!1):!(!r&&(n=s(i,a,r)))&&void 0)}),n}function n(t,s,a){var i=e(t).children();return a&&(i=e(i.get().reverse())),r(i,n,s,a)}function i(t,s,a){return r(e(t)[a?"prevAll":"nextAll"](),n,s,a)}e.fn.near=function(t,s){var a=[];return e(this).each(function(r,o){var c=!s&&n(o,t,s)||i(o,t,s)||function(t,s,a){var r,n=e(t).parents();return n=e(n.get()),e.each(n.get(),function(t,n){return a&&e(n).is(s)?(r=n,!1):!(r=i(n,s,a))&&void 0}),r}(o,t,s);c&&a.push(c)}),e(a)}}(jQuery,document,window),function(e,t,s,a){"use strict";function r(e){return Math.round(1e4*e)/1e4+""}var n={3:{transform:function(t,s){var a="translate(-50%,-50%)";e.each(s,function(e,t){var s,n=["X","Y","Z"];if("translate"===t[0])a+=" translate3d("+r(t[1]||0)+"px,"+r(t[2]||0)+"px,"+r(t[3]||0)+"px)";else if("rotate"===t[0]){var i=t[4]?[1,2,3]:[3,2,1];for(s=0;s<3;s++)a+=" rotate"+n[i[s]-1]+"("+r(t[i[s]]||0)+"deg)"}else if("scale"===t[0])for(s=0;s<3;s++)a+=" scale"+n[s]+"("+r(t[s+1]||1)+")"}),e.jmpress("css",t,e.extend({},{transform:a}))}},2:{transform:function(t,s){var a="translate(-50%,-50%)";e.each(s,function(e,t){var s=["X","Y"];if("translate"===t[0])a+=" translate("+r(t[1]||0)+"px,"+r(t[2]||0)+"px)";else if("rotate"===t[0])a+=" rotate("+r(t[3]||0)+"deg)";else if("scale"===t[0])for(var n=0;n<2;n++)a+=" scale"+s[n]+"("+r(t[n+1]||1)+")"}),e.jmpress("css",t,e.extend({},{transform:a}))}},1:{transform:function(t,s){var a={top:0,left:0};e.each(s,function(e,t){"translate"===t[0]&&(a.left=Math.round(t[1]||0)+"px",a.top=Math.round(t[2]||0)+"px")}),t.animate(a,1e3)}}},i=e.jmpress("pfx","perspective")?n[3]:e.jmpress("pfx","transform")?n[2]:n[1];e.jmpress("defaults").reasonableAnimation={},e.jmpress("initStep",function(t,s){var a=s.data,r=s.stepData,n=parseFloat;e.extend(r,{x:n(a.x)||0,y:n(a.y)||0,z:n(a.z)||0,r:n(a.r)||0,phi:n(a.phi)||0,rotate:n(a.rotate)||0,rotateX:n(a.rotateX)||0,rotateY:n(a.rotateY)||0,rotateZ:n(a.rotateZ)||0,revertRotate:!1,scale:n(a.scale)||1,scaleX:n(a.scaleX)||!1,scaleY:n(a.scaleY)||!1,scaleZ:n(a.scaleZ)||1})}),e.jmpress("afterInit",function(t,s){var a=s.settings.stepSelector,r=s.current;r.perspectiveScale=1,r.maxNestedDepth=0;for(var n=e(s.jmpress).find(a).children(a);n.length;)r.maxNestedDepth++,n=n.children(a)}),e.jmpress("applyStep",function(t,s){e.jmpress("css",e(t),{position:"absolute",transformStyle:"preserve-3d"}),s.parents.length>0&&e.jmpress("css",e(t),{top:"50%",left:"50%"});var a=s.stepData,r=[["translate",a.x||a.r*Math.sin(a.phi*Math.PI/180),a.y||-a.r*Math.cos(a.phi*Math.PI/180),a.z],["rotate",a.rotateX,a.rotateY,a.rotateZ||a.rotate,!0],["scale",a.scaleX||a.scale,a.scaleY||a.scale,a.scaleZ||a.scale]];i.transform(t,r)}),e.jmpress("setActive",function(t,s){var r=s.target,n=s.stepData,i=r.transform=[];r.perspectiveScale=1;for(var o=s.current.maxNestedDepth;o>(s.parents.length||0);o--)i.push(["scale"],["rotate"],["translate"]);i.push(["scale",1/(n.scaleX||n.scale),1/(n.scaleY||n.scale),1/n.scaleZ]),i.push(["rotate",-n.rotateX,-n.rotateY,-(n.rotateZ||n.rotate)]),i.push(["translate",-(n.x||n.r*Math.sin(n.phi*Math.PI/180)),-(n.y||-n.r*Math.cos(n.phi*Math.PI/180)),-n.z]),r.perspectiveScale*=n.scaleX||n.scale,e.each(s.parents,function(t,s){var a=e(s).data("stepData");i.push(["scale",1/(a.scaleX||a.scale),1/(a.scaleY||a.scale),1/a.scaleZ]),i.push(["rotate",-a.rotateX,-a.rotateY,-(a.rotateZ||a.rotate)]),i.push(["translate",-(a.x||a.r*Math.sin(a.phi*Math.PI/180)),-(a.y||-a.r*Math.cos(a.phi*Math.PI/180)),-a.z]),r.perspectiveScale*=a.scaleX||a.scale}),e.each(i,function(e,t){function r(r){s.current["rotate"+r+"-"+e]===a&&(s.current["rotate"+r+"-"+e]=t[r]||0);var n=s.current["rotate"+r+"-"+e],i=n%360,o=(t[r]||0)%360;i<0&&(i+=360),o<0&&(o+=360);var c=o-i;c<-180?c+=360:c>180&&(c-=360),s.current["rotate"+r+"-"+e]=t[r]=n+c}"rotate"===t[0]&&(r(1),r(2),r(3))})}),e.jmpress("applyTarget",function(t,s){var a,r=s.target,n=(s.stepData,s.settings),o=1.3*r.perspectiveScale<s.current.perspectiveScale,c=r.perspectiveScale>1.3*s.current.perspectiveScale,l=-1;e.each(r.transform,function(e,t){if(!(t.length<=1||"rotate"===t[0]&&t[1]%360==0&&t[2]%360==0&&t[3]%360==0))return"scale"===t[0]&&void(l=e)}),l!==s.current.oldLastScale&&(o=c=!1,s.current.oldLastScale=l);var u=[];if(-1!==l)for(;l>=0;)"scale"===r.transform[l][0]&&(u.push(r.transform[l]),r.transform[l]=["scale"]),l--;var p=n.animation;n.reasonableAnimation[s.reason]&&(p=e.extend({},p,n.reasonableAnimation[s.reason])),a={perspective:Math.round(1e3*r.perspectiveScale)+"px"},a=e.extend({},p,a),o||(a.transitionDelay="0s"),s.beforeActive||(a.transitionDuration="0s",a.transitionDelay="0s"),e.jmpress("css",s.area,a),i.transform(s.area,u),a=e.extend({},p),c||(a.transitionDelay="0s"),s.beforeActive||(a.transitionDuration="0s",a.transitionDelay="0s"),s.current.perspectiveScale=r.perspectiveScale,e.jmpress("css",s.canvas,a),i.transform(s.canvas,r.transform)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n=r("defaults");n.nestedActiveClass="nested-active",n.activeClass="active",r("setInactive",function(t,s){var a=s.settings,r=a.activeClass,n=a.nestedActiveClass;r&&e(t).removeClass(r),n&&e.each(s.parents,function(t,s){e(s).removeClass(n)})}),r("setActive",function(t,s){var a=s.settings,r=a.activeClass,n=a.nestedActiveClass;r&&e(t).addClass(r),n&&e.each(s.parents,function(t,s){e(s).addClass(n)})})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(t,s){return e(this).find(s.settings.stepSelector).first()}function i(t,s,a,r){if(!s)return!1;var n=a.settings.stepSelector;s=e(s);do{var i=s.near(n,r);if(0!==i.length&&0!==i.closest(t).length||(i=e(t).find(n)[r?"last":"first"]()),!i.length)return!1;s=i}while(s.data("stepData").exclude);return s}r("initStep",function(e,t){t.stepData.exclude=t.data.exclude&&-1===["false","no"].indexOf(t.data.exclude)}),r("selectInitialStep",n),r("selectHome",n),r("selectEnd",function(t,s){return e(this).find(s.settings.stepSelector).last()}),r("selectPrev",function(e,t){return i(this,e,t,!0)}),r("selectNext",function(e,t){return i(this,e,t)})}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("selectInitialStep",function(e,t){return t.settings.start})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(t,s,a){for(var r=0;r<s.length-1;r++){var n=s[r],i=s[r+1];e(t).jmpress("initialized")?e(n,t).data("stepData")[a]=i:e(n,t).attr("data-"+a,i)}}function i(t,s,a,r){var n=s.stepData;if(n[a]){var i=e(t).near(n[a],r);if(i&&i.length)return i;if((i=e(n[a],this)[r?"last":"first"]())&&i.length)return i}}r("register","route",function(e,t,s){"string"==typeof e&&(e=[e,e]),n(this,e,s?"prev":"next"),t||n(this,e.reverse(),s?"next":"prev")}),r("initStep",function(e,t){for(var s in{next:1,prev:1})t.stepData[s]=t.data[s]}),r("selectNext",function(e,t){return i.call(this,e,t,"next")}),r("selectPrev",function(e,t){return i.call(this,e,t,"prev",!0)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="ajax:loadStep";r("register",n),r("register","ajax:afterStepLoaded"),r("defaults").ajaxLoadedClass="loaded",r("initStep",function(t,s){s.stepData.src=e(t).attr("href")||s.data.src||!1,s.stepData.srcLoaded=!1}),r(n,function(t,s){var a=s.stepData,r=a&&a.src,n=s.settings;r&&(e(t).addClass(n.ajaxLoadedClass),a.srcLoaded=!0,e(t).load(r,function(a,r,n){e(s.jmpress).jmpress("fire","ajax:afterStepLoaded",t,e.extend({},s,{response:a,status:r,xhr:n}))}))}),r("idle",function(t,s){if(t){var a=s.settings,r=e(this);s.stepData;e(t).add(e(t).near(a.stepSelector)).add(e(t).near(a.stepSelector,!0)).add(r.jmpress("fire","selectPrev",t,{stepData:e(t).data("stepData")})).add(r.jmpress("fire","selectNext",t,{stepData:e(t).data("stepData")})).each(function(){var t=e(this).data("stepData");t.src&&!t.srcLoaded&&r.jmpress("fire",n,this,{stepData:e(this).data("stepData")})})}}),r("setActive",function(t,s){var a=e(t).data("stepData");a.src&&!a.srcLoaded&&e(this).jmpress("fire",n,t,{stepData:e(t).data("stepData")})})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(t){try{var r=e("#"+s.location.hash.replace(/^#\/?/,""));return r.length>0&&r.is(t.stepSelector)?r:a}catch(e){}}function i(e){var t="#/"+e;s.history&&s.history.pushState?s.location.hash!==t&&s.history.pushState({},"",t):s.location.hash!==t&&(s.location.hash=t)}r("defaults").hash={use:!0,update:!0,bindChange:!0},r("selectInitialStep",function(t,a){var r=a.settings,o=r.hash,c=a.current,l=e(this);if(a.current.hashNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),o.use)return o.bindChange&&(e(s).bind("hashchange"+c.hashNamespace,function(e){var t=n(r);l.jmpress("initialized")&&l.jmpress("scrollFix"),t&&t.length&&(t.attr("id")!==l.jmpress("active").attr("id")&&l.jmpress("select",t),i(t.attr("id"))),e.preventDefault()}),e("a[href^='#']").on("click"+c.hashNamespace,function(t){var s=e(this).attr("href");try{e(s).is(r.stepSelector)&&(l.jmpress("select",s),t.preventDefault(),t.stopPropagation())}catch(e){}})),n(r)}),r("afterDeinit",function(t,a){e("a[href^='#']").off(a.current.hashNamespace),e(s).unbind(a.current.hashNamespace)}),r("setActive",function(t,s){var a=s.settings,r=s.current;a.hash.use&&a.hash.update&&(clearTimeout(r.hashtimeout),r.hashtimeout=setTimeout(function(){i(e(s.delegatedFrom).attr("id"))},a.transitionDuration+200))})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(e){e.preventDefault(),e.stopPropagation()}r("defaults").keyboard={use:!0,keys:{33:"prev",37:"prev",38:"prev",9:"next:prev",32:"next",34:"next",39:"next",40:"next",36:"home",35:"end"},ignore:{INPUT:[32,37,38,39,40],TEXTAREA:[32,37,38,39,40],SELECT:[38,40]},tabSelector:"a[href]:visible, :input:visible"},r("afterInit",function(s,a){var r=a.settings,i=r.keyboard,o=i.ignore,c=a.current,l=e(this);r.fullscreen||l.attr("tabindex",0),c.keyboardNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(r.fullscreen?t:l).bind("keypress"+c.keyboardNamespace,function(e){for(var t in o)if(e.target.nodeName===t&&-1!==o[t].indexOf(e.which))return;(e.which>=37&&e.which<=40||32===e.which)&&n(e)}),e(r.fullscreen?t:l).bind("keydown"+c.keyboardNamespace,function(t){var s=e(t.target);if((r.fullscreen||s.closest(l).length)&&i.use){for(var a in o)if(s[0].nodeName===a&&-1!==o[a].indexOf(t.which))return;var c,u=!1;if(9===t.which){if(s.closest(l.jmpress("active")).length?(c=s.near(i.tabSelector,t.shiftKey),e(c).closest(r.stepSelector).is(l.jmpress("active"))||(c=void 0)):t.shiftKey?u=!0:c=l.jmpress("active").find("a[href], :input").filter(":visible").first(),c&&c.length>0)return c.focus(),l.jmpress("scrollFix"),void n(t);t.shiftKey&&(u=!0)}var p=i.keys[t.which];"string"==typeof p?(-1!==p.indexOf(":")&&(p=p.split(":"),p=t.shiftKey?p[1]:p[0]),l.jmpress(p),n(t)):e.isFunction(p)?p.call(l,t):p&&(l.jmpress.apply(l,p),n(t)),u&&((c=l.jmpress("active").find("a[href], :input").filter(":visible").last()).focus(),l.jmpress("scrollFix"))}})}),r("afterDeinit",function(s,a){e(t).unbind(a.current.keyboardNamespace)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r,n=(r=navigator.userAgent.toLowerCase(),(/(chrome)[ \/]([\w.]+)/.exec(r)||/(webkit)[ \/]([\w.]+)/.exec(r)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(r)||/(msie) ([\w.]+)/.exec(r)||r.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(r)||[])[1]||""),i=e.jmpress("defaults");i.viewPort={width:!1,height:!1,maxScale:0,minScale:0,zoomable:0,zoomBindMove:!0,zoomBindWheel:!0};var o=i.keyboard.keys;function c(e,t){return Math.max(Math.min(e,t),-t)}function l(t,s,a){var r=e(this).jmpress("current"),n=e(this).jmpress("settings"),i=e(this).jmpress("active").data("stepData"),o=e(this).jmpress("container");if(!(0===r.userZoom&&a<0)){var l=i.viewPortZoomable||n.viewPort.zoomable;if(!(r.userZoom===l&&a>0)){r.userZoom+=a;var u=e(o).innerWidth()/2,p=e(o).innerHeight()/2;t=t?t-u:t,s=s?s-p:s,r.userTranslateX=c(r.userTranslateX-a*t/r.zoomOriginWindowScale/l,u*r.userZoom*r.userZoom/l),r.userTranslateY=c(r.userTranslateY-a*s/r.zoomOriginWindowScale/l,p*r.userZoom*r.userZoom/l),e(this).jmpress("reselect","zoom")}}}o["mozilla"===n?107:187]="zoomIn",o["mozilla"===n?109:189]="zoomOut",i.reasonableAnimation.resize={transitionDuration:"0s",transitionDelay:"0ms"},i.reasonableAnimation.zoom={transitionDuration:"0s",transitionDelay:"0ms"},e.jmpress("initStep",function(e,t){for(var s in{viewPortHeight:1,viewPortWidth:1,viewPortMinScale:1,viewPortMaxScale:1,viewPortZoomable:1})t.stepData[s]=t.data[s]&&parseFloat(t.data[s])}),e.jmpress("afterInit",function(a,r){var n=this;r.current.viewPortNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(s).bind("resize"+r.current.viewPortNamespace,function(t){e(n).jmpress("reselect","resize")}),r.current.userZoom=0,r.current.userTranslateX=0,r.current.userTranslateY=0,r.settings.viewPort.zoomBindWheel&&e(r.settings.fullscreen?t:this).bind("mousewheel"+r.current.viewPortNamespace+" DOMMouseScroll"+r.current.viewPortNamespace,function(t,s){var a=(s=s||t.originalEvent.wheelDelta||-t.originalEvent.detail)/Math.abs(s);return a<0?e(r.jmpress).jmpress("zoomOut",t.originalEvent.x,t.originalEvent.y):a>0&&e(r.jmpress).jmpress("zoomIn",t.originalEvent.x,t.originalEvent.y),!1}),r.settings.viewPort.zoomBindMove&&e(r.settings.fullscreen?t:this).bind("mousedown"+r.current.viewPortNamespace,function(e){r.current.userZoom&&(r.current.userTranslating={x:e.clientX,y:e.clientY},e.preventDefault(),e.stopImmediatePropagation())}).bind("mousemove"+r.current.viewPortNamespace,function(t){var s=r.current.userTranslating;s&&(e(n).jmpress("zoomTranslate",t.clientX-s.x,t.clientY-s.y),s.x=t.clientX,s.y=t.clientY,t.preventDefault(),t.stopImmediatePropagation())}).bind("mouseup"+r.current.viewPortNamespace,function(e){r.current.userTranslating&&(r.current.userTranslating=void 0,e.preventDefault(),e.stopImmediatePropagation())})}),e.jmpress("register","zoomIn",function(e,t){l.call(this,e||0,t||0,1)}),e.jmpress("register","zoomOut",function(e,t){l.call(this,e||0,t||0,-1)}),e.jmpress("register","zoomTranslate",function(t,s){var a=e(this).jmpress("current"),r=e(this).jmpress("settings"),n=e(this).jmpress("active").data("stepData"),i=e(this).jmpress("container"),o=n.viewPortZoomable||r.viewPort.zoomable,l=e(i).innerWidth(),u=e(i).innerHeight();a.userTranslateX=c(a.userTranslateX+t/a.zoomOriginWindowScale,l*a.userZoom*a.userZoom/o),a.userTranslateY=c(a.userTranslateY+s/a.zoomOriginWindowScale,u*a.userZoom*a.userZoom/o),e(this).jmpress("reselect","zoom")}),e.jmpress("afterDeinit",function(a,r){e(r.settings.fullscreen?t:this).unbind(r.current.viewPortNamespace),e(s).unbind(r.current.viewPortNamespace)}),e.jmpress("setActive",function(t,s){var a=s.settings.viewPort,r=s.stepData.viewPortHeight||a.height,n=s.stepData.viewPortWidth||a.width,i=s.stepData.viewPortMaxScale||a.maxScale,o=s.stepData.viewPortMinScale||a.minScale,c=r&&e(s.container).innerHeight()/r,l=n&&e(s.container).innerWidth()/n,u=(l||c)&&Math.min(l||c,c||l);if(u){u=u||1,i&&(u=Math.min(u,i)),o&&(u=Math.max(u,o));var p=s.stepData.viewPortZoomable||s.settings.viewPort.zoomable;if(p){var f=1/u-1/i;u=1/(1/u-(f/=p)*s.current.userZoom)}s.target.transform.reverse(),s.current.userTranslateX&&s.current.userTranslateY?s.target.transform.push(["translate",s.current.userTranslateX,s.current.userTranslateY,0]):s.target.transform.push(["translate"]),s.target.transform.push(["scale",u,u,1]),s.target.transform.reverse(),s.target.perspectiveScale/=u}s.current.zoomOriginWindowScale=u}),e.jmpress("setInactive",function(t,s){s.nextStep&&t&&e(s.nextStep).attr("id")===e(t).attr("id")||(s.current.userZoom=0,s.current.userTranslateX=0,s.current.userTranslateY=0)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;r("defaults").mouse={clickSelects:!0},r("afterInit",function(t,s){var a=s.settings,r=a.stepSelector,n=s.current,i=e(this);n.clickableStepsNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),i.bind("click"+n.clickableStepsNamespace,function(t){if(a.mouse.clickSelects&&!n.userZoom){var s=e(t.target).closest(r);s.is(i.jmpress("active"))||s.length&&(i.jmpress("select",s[0],"click"),t.preventDefault(),t.stopPropagation())}})}),r("afterDeinit",function(t,s){e(this).unbind(s.current.clickableStepsNamespace)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;r("afterInit",function(s,a){var r=a.settings,n=a.current,i=a.jmpress;n.mobileNamespace=".jmpress-"+Math.round(1e5*Math.random(),0);var o,c=[0,0];e(r.fullscreen?t:i).bind("touchstart"+n.mobileNamespace,function(e){o=e.originalEvent.touches[0],c=[o.pageX,o.pageY]}).bind("touchmove"+n.mobileNamespace,function(e){return o=e.originalEvent.touches[0],e.preventDefault(),!1}).bind("touchend"+n.mobileNamespace,function(t){var s=[o.pageX,o.pageY],a=[s[0]-c[0],s[1]-c[1]];if(Math.max(Math.abs(a[0]),Math.abs(a[1]))>50)return a=Math.abs(a[0])>Math.abs(a[1])?a[0]:a[1],e(i).jmpress(a>0?"prev":"next"),t.preventDefault(),!1})}),r("afterDeinit",function(s,a){var r=a.settings,n=a.current,i=a.jmpress;e(r.fullscreen?t:i).unbind(n.mobileNamespace)})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="_template_",i={};function o(t,s,r){for(var n in s){var i=n;r&&(i=r+i.substr(0,1).toUpperCase()+i.substr(1)),e.isPlainObject(s[n])?o(t,s[n],i):t[i]===a&&(t[i]=s[n])}}function c(t,s){e.isArray(s)?s.length<t.length?e.error("more nested steps than children in template"):t.each(function(t,a){var r=(a=e(a)).data(n)||{};o(r,s[t]),a.data(n,r)}):e.isFunction(s)&&t.each(function(a,r){var i=(r=e(r)).data(n)||{};o(i,s(a,r,t)),r.data(n,i)})}function l(e,t,s,a){s.children&&c(t.children(a.settings.stepSelector),s.children);!function(e,t){o(e,t)}(e,s)}r("beforeInitStep",function(t,s){t=e(t);var a=s.data,r=a.template,o=t.data("_applied_template_"),c=t.data(n);r&&e.each(r.split(" "),function(e,r){var n=i[r];l(a,t,n,s)}),o&&l(a,t,o,s),c&&(l(a,t,c,s),t.data(n,null),c.template&&e.each(c.template.split(" "),function(e,r){var n=i[r];l(a,t,n,s)}))}),r("beforeInit",function(t,s){var a=r("dataset",this).template,n=s.settings.stepSelector;if(a){var o=i[a];c(e(this).find(n).filter(function(){return!e(this).parent().is(n)}),o.children)}}),r("register","template",function(t,s){i[t]?i[t]=e.extend(!0,{},i[t],s):i[t]=e.extend(!0,{},s)}),r("register","apply",function(t,s){if(s)if(e.isArray(s))c(e(t),s);else{var a;a="string"==typeof s?i[s]:e.extend(!0,{},s),e(t).each(function(t,s){var r=(s=e(s)).data("_applied_template_")||{};o(r,a),s.data("_applied_template_",r)})}else{var r=e(this).jmpress("settings").stepSelector;c(e(this).find(r).filter(function(){return!e(this).parent().is(r)}),t)}})}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("setActive",function(t,s){s.prevStep!==t&&e(t).triggerHandler("enterStep")}),e.jmpress("setInactive",function(t,s){s.nextStep!==t&&e(t).triggerHandler("leaveStep")})}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a,r){r=r||t.length-1;for(var n=a=a||0;n<r+1;n++)if(e(t[n].element).is(s))return n}function n(t,s,a){e.each(s._on,function(e,s){t.push({substep:s.substep,delay:s.delay+a}),n(t,s.substep,s.delay+a)})}e.jmpress("defaults").customAnimationDataAttribute="jmpress",e.jmpress("afterInit",function(e,t){t.current.animationTimeouts=[],t.current.animationCleanupWaiting=[]}),e.jmpress("applyStep",function(t,s){var a={},i=[];if(e(t).find("[data-"+s.settings.customAnimationDataAttribute+"]").each(function(a,r){e(r).closest(s.settings.stepSelector).is(t)&&i.push({element:r})}),0!==i.length){e.each(i,function(t,a){a.info=function(t){for(var s=t.split(" "),a=s[0],r={willClass:"will-"+a,doClass:"do-"+a,hasClass:"has-"+a},n="",i=1;i<s.length;i++){var o=s[i];switch(n){case"":"after"===o?n="after":e.warn("unknown keyword in '"+t+"'. '"+o+"' unknown.");break;case"after":if(o.match(/^[1-9][0-9]*m?s?/)){var c=parseFloat(o);-1!==o.indexOf("ms")?c*=1:-1!==o.indexOf("s")?c*=1e3:-1!==o.indexOf("m")&&(c*=6e4),r.delay=c}else r.after=Array.prototype.slice.call(s,i).join(" "),i=s.length}}return r}(e(a.element).data(s.settings.customAnimationDataAttribute)),e(a.element).addClass(a.info.willClass),a._on=[],a._after=null});var o={_after:void 0,_on:[],info:{}};if(e.each(i,function(e,t){var s=t.info.after;if(s)if("step"===s)s=o;else if("prev"===s)s=i[e-1];else{var a=r(i,s,0,e-1);void 0===a&&(a=r(i,s)),s=void 0===a||a===e?i[e-1]:i[a]}else s=i[e-1];if(s){if(!t.info.delay){if(!s._after)return void(s._after=t);s=s._after}s._on.push({substep:t,delay:t.info.delay||0})}}),void 0===o._after&&0===o._on.length){var c=r(i,s.stepData.startSubstep)||0;o._after=i[c]}var l=[];do{var u=[{substep:o,delay:0}];n(u,o,0),l.push(u),o=null,e.each(u,p)}while(o);a.list=l,e(t).data("substepsData",a)}function p(e,t){if(t.substep._after)return o=t.substep._after,!1}}),e.jmpress("unapplyStep",function(t,s){var a=e(t).data("substepsData");a&&e.each(a.list,function(t,s){e.each(s,function(t,s){s.substep.info.willClass&&e(s.substep.element).removeClass(s.substep.info.willClass),s.substep.info.hasClass&&e(s.substep.element).removeClass(s.substep.info.hasClass),s.substep.info.doClass&&e(s.substep.element).removeClass(s.substep.info.doClass)})})}),e.jmpress("setActive",function(t,s){var a=e(t).data("substepsData");if(a){void 0===s.substep&&(s.substep="prev"===s.reason?a.list.length-1:0);var r=s.substep;e.each(s.current.animationTimeouts,function(e,t){clearTimeout(t)}),s.current.animationTimeouts=[],e.each(a.list,function(t,a){var n=t<r,i=t<=r;e.each(a,function(t,a){a.substep.info.hasClass&&e(a.substep.element)[(n?"add":"remove")+"Class"](a.substep.info.hasClass),i&&!n&&a.delay&&"prev"!==s.reason?a.substep.info.doClass&&(e(a.substep.element).removeClass(a.substep.info.doClass),s.current.animationTimeouts.push(setTimeout(function(){e(a.substep.element).addClass(a.substep.info.doClass)},a.delay))):a.substep.info.doClass&&e(a.substep.element)[(i?"add":"remove")+"Class"](a.substep.info.doClass)})})}}),e.jmpress("setInactive",function(t,s){if(s.nextStep!==t){e.each(s.current.animationCleanupWaiting,function(t,s){var a;a=s,e.each(a.list,function(t,s){e.each(s,function(t,s){s.substep.info.hasClass&&e(s.substep.element).removeClass(s.substep.info.hasClass),s.substep.info.doClass&&e(s.substep.element).removeClass(s.substep.info.doClass)})})}),s.current.animationCleanupWaiting=[];var a=e(t).data("substepsData");a&&s.current.animationCleanupWaiting.push(a)}}),e.jmpress("selectNext",function(t,s){if(void 0!==s.substep){var a=e(t).data("substepsData");if(a)return s.substep<a.list.length-1?{step:t,substep:s.substep+1}:void 0}}),e.jmpress("selectPrev",function(t,s){if(void 0!==s.substep&&e(t).data("substepsData"))return s.substep>0?{step:t,substep:s.substep-1}:void 0})}(jQuery,document,window),
-/*!
- * plugin for jmpress.js v0.4.5
- *
- * Copyright 2013 Kyle Robinson Young @shama & Tobias Koppers @sokra
- * Licensed MIT
- * http://www.opensource.org/licenses/mit-license.php
- */
-function(e,t,s,a){"use strict";e.jmpress("register","toggle",function(s,a,r){var n=this;e(t).bind("keydown",function(t){t.keyCode===s&&(e(n).jmpress("initialized")?e(n).jmpress("deinit"):e(n).jmpress(a))}),r&&e(n).jmpress(a)})}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a){if(t.secondary&&-1!==t.secondary.split(" ").indexOf(s)){for(var r in t)if(r.length>9&&0===r.indexOf("secondary")){var n=t[r],i=r.substr(9);i=i.substr(0,1).toLowerCase()+i.substr(1),t[r]=t[i],t[i]=n}e(this).jmpress("reapply",e(a))}}e.jmpress("initStep",function(e,t){for(var s in t.data)0===s.indexOf("secondary")&&(t.stepData[s]=t.data[s])}),e.jmpress("beforeActive",function(t,s){r.call(s.jmpress,e(t).data("stepData"),"self",t);var a=e(t).parent();e(a).children(s.settings.stepSelector).each(function(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"siblings",a)});for(var n=1;n<s.parents.length;n++)e(s.parents[n]).children(s.settings.stepSelector).each()}),e.jmpress("setInactive",function(t,s){r.call(s.jmpress,e(t).data("stepData"),"self",t);var a=e(t).parent();function n(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"grandchildren",a)}e(a).children(s.settings.stepSelector).each(function(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"siblings",a)});for(var i=1;i<s.parents.length;i++)e(s.parents[i]).children(s.settings.stepSelector).each(n)})}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("defaults").duration={defaultValue:-1,defaultAction:"next",barSelector:void 0,barProperty:"width",barPropertyStart:"0",barPropertyEnd:"100%"},e.jmpress("initStep",function(e,t){t.stepData.duration=t.data.duration&&parseInt(t.data.duration,10),t.stepData.durationAction=t.data.durationAction}),e.jmpress("setInactive",function(t,s){var a=s.settings.duration,r=s.current;s.stepData.duration||a.defaultValue;if(r.durationTimeout){if(a.barSelector){var n={transitionProperty:a.barProperty,transitionDuration:"0",transitionDelay:"0",transitionTimingFunction:"linear"};n[a.barProperty]=a.barPropertyStart;var i=e(a.barSelector);e.jmpress("css",i,n),i.each(function(t,s){var a=e(s).next(),r=e(s).parent();e(s).detach(),a.length?a.insertBefore(s):r.append(s)})}clearTimeout(r.durationTimeout),delete r.durationTimeout}}),e.jmpress("setActive",function(t,s){var a=s.settings,r=a.duration,n=s.current,i=s.stepData.duration||r.defaultValue;if(i&&i>0){if(r.barSelector){var o={transitionProperty:r.barProperty,transitionDuration:i-2*a.transitionDuration/3-100+"ms",transitionDelay:2*a.transitionDuration/3+"ms",transitionTimingFunction:"linear"};o[r.barProperty]=r.barPropertyEnd,e.jmpress("css",e(r.barSelector),o)}var c=this;n.durationTimeout&&(clearTimeout(n.durationTimeout),n.durationTimeout=void 0),n.durationTimeout=setTimeout(function(){var t=s.stepData.durationAction||r.defaultAction;e(c).jmpress(t)},i)}})}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="jmpress-presentation-";r("defaults").presentationMode={use:!0,url:"presentation-screen.html",notesUrl:!1,transferredValues:["userZoom","userTranslateX","userTranslateY"]},r("defaults").keyboard.keys[80]="presentationPopup",r("afterInit",function(t,a){var r=a.current;if(r.selectMessageListeners=[],a.settings.presentationMode.use){s.addEventListener("message",function(t){try{if("string"!=typeof t.data||0!==t.data.indexOf(n))return;var i=JSON.parse(t.data.slice(n.length));switch(i.type){case"select":e.each(a.settings.presentationMode.transferredValues,function(e,t){a.current[t]=i[t]}),/[a-z0-9\-]+/i.test(i.targetId)&&typeof i.substep in{number:1,undefined:1}?e(a.jmpress).jmpress("select",{step:"#"+i.targetId,substep:i.substep},i.reason):e.error("For security reasons the targetId must match /[a-z0-9\\-]+/i and substep must be a number.");break;case"listen":r.selectMessageListeners.push(t.source);break;case"ok":clearTimeout(r.presentationPopupTimeout);break;case"read":try{t.source.postMessage(n+JSON.stringify({type:"url",url:s.location.href,notesUrl:a.settings.presentationMode.notesUrl}),"*")}catch(t){e.error("Cannot post message to source: "+t)}break;default:throw"Unknown message type: "+i.type}}catch(t){e.error("Received message is malformed: "+t)}});try{s.parent&&s.parent!==s&&s.parent.postMessage(n+JSON.stringify({type:"afterInit"}),"*")}catch(t){e.error("Cannot post message to parent: "+t)}}}),r("afterDeinit",function(t,a){if(a.settings.presentationMode.use)try{s.parent&&s.parent!==s&&s.parent.postMessage(n+JSON.stringify({type:"afterDeinit"}),"*")}catch(t){e.error("Cannot post message to parent: "+t)}}),r("setActive",function(t,s){var a=e(s.delegatedFrom).attr("id"),r=s.substep,i=s.reason;e.each(s.current.selectMessageListeners,function(t,o){try{var c={type:"select",targetId:a,substep:r,reason:i};e.each(s.settings.presentationMode.transferredValues,function(e,t){c[t]=s.current[t]}),o.postMessage(n+JSON.stringify(c),"*")}catch(t){e.error("Cannot post message to listener: "+t)}})}),r("register","presentationPopup",function(){var t,a=e(this);a.jmpress("settings").presentationMode.use&&(t=s.open(e(this).jmpress("settings").presentationMode.url),a.jmpress("current").presentationPopupTimeout=setTimeout(function e(){a.jmpress("current").presentationPopupTimeout=setTimeout(e,100);try{t.postMessage(n+JSON.stringify({type:"url",url:s.location.href,notesUrl:a.jmpress("settings").presentationMode.notesUrl}),"*")}catch(e){}},100))})}(jQuery,document,window); \ No newline at end of file
+/*! For license information please see jmpress.min.js.LICENSE.txt */
+!function(e,t,s,a){"use strict";var r,n,i,o=(r=t.createElement("dummy").style,n="Webkit Moz O ms Khtml".split(" "),i={},function(e){if(void 0===i[e]){var t=e.charAt(0).toUpperCase()+e.substr(1),s=(e+" "+n.join(t+" ")+t).split(" ");for(var o in i[e]=null,s)if(r[s[o]]!==a){i[e]=s[o];break}}return i[e]});function c(e){if(e){var t=1+e.substr(1).search(/[A-Z]/);return"-"+e.substr(0,t).toLowerCase()+"-"+e.substr(t).toLowerCase()}}function l(e){return e?e+",":""}function u(e){return e.length>0?e:null}var p={stepSelector:".step",containerClass:"",canvasClass:"",areaClass:"",notSupportedClass:"not-supported",fullscreen:!0,animation:{transformOrigin:"top left",transitionProperty:l(c(o("transform")))+l(c(o("perspective")))+"opacity",transitionDuration:"1s",transitionDelay:"500ms",transitionTimingFunction:"ease-in-out",transformStyle:"preserve-3d"},transitionDuration:1500},f={beforeChange:1,beforeInitStep:1,initStep:1,beforeInit:1,afterInit:1,beforeDeinit:1,afterDeinit:1,applyStep:1,unapplyStep:1,setInactive:1,beforeActive:1,setActive:1,selectInitialStep:1,selectPrev:1,selectNext:1,selectHome:1,selectEnd:1,idle:1,applyTarget:1};for(var d in f)p[d]=[];function m(r){r=e.extend(!0,{},r||{});var n={},i=null;for(i in f)n[i]=e.isFunction(r[i])?[r[i]]:r[i],r[i]=[];var o=e.extend(!0,{},p,r);for(i in f)n[i]&&Array.prototype.push.apply(o[i],n[i]);var c=e(this),l=null,d=null,m={container:"",area:""},g=null,b=null,y=!1,j=null,D=!1;function S(t,s){var a=v(t),r={oldStyle:e(t).attr("style")||""},n={data:a,stepData:r};C.call(this,"beforeInitStep",e(t),n),r.delegate=a.delegate,C.call(this,"initStep",e(t),n),e(t).data("stepData",r),e(t).attr("id")||e(t).attr("id","step-"+(s+1)),C.call(this,"applyStep",e(t),n)}function w(t){var s=e(t).data("stepData");e(t).attr("style",s.oldStyle),C.call(this,"unapplyStep",e(t),{stepData:s})}function x(){y&&C.call(this,"setInactive",y,{stepData:e(y).data("stepData"),reason:"deinit"}),b.jmpressClass&&e(c).removeClass(b.jmpressClass),C.call(this,"beforeDeinit",e(this),{}),e(o.stepSelector,c).each((function(e){w.call(c,this)})),l.attr("style",m.container),o.fullscreen&&e("html").attr("style",""),d.attr("style",m.area),e(g).children().each((function(){c.append(e(this))})),o.fullscreen?g.remove():(g.remove(),d.remove()),C.call(this,"afterDeinit",e(this),{}),e(c).data("jmpressmethods",!1)}function C(t,s,a){a.settings=o,a.current=b,a.container=l,a.parents=s?e(s).parentsUntil(c).not(c).filter(o.stepSelector):null,a.current=b,a.jmpress=this;var r={};return e.each(o[t],(function(e,t){r.value=t.call(c,s,a)||r.value})),r.value}function T(t,s){var r;if(e.isPlainObject(t)&&(r=t.substep,t=t.step),"string"==typeof t&&(t=c.find(t).first()),!t||!e(t).data("stepData"))return!1;P.call(this);var n=e(t).data("stepData"),i=!1;if(C.call(this,"beforeChange",t,{stepData:n,reason:s,cancel:function(){i=!0}}),i)return a;var l={},p=t;e(t).data("stepData").delegate&&((p=u(e(t).parentsUntil(c).filter(o.stepSelector).filter(n.delegate))||u(e(t).near(n.delegate))||u(e(t).near(n.delegate,!0))||u(e(n.delegate,c)))?n=p.data("stepData"):p=t),D&&C.call(this,"setInactive",D,{stepData:e(D).data("stepData"),delegatedFrom:y,reason:s,target:l,nextStep:p,nextSubstep:r,nextStepData:n});var f={stepData:n,delegatedFrom:t,reason:s,target:l,substep:r,prevStep:D,prevSubstep:j,prevStepData:D&&e(D).data("stepData")};return C.call(this,"beforeActive",p,f),C.call(this,"setActive",p,f),b.jmpressClass&&e(c).removeClass(b.jmpressClass),e(c).addClass(b.jmpressClass="step-"+e(p).attr("id")),b.jmpressDelegatedClass&&e(c).removeClass(b.jmpressDelegatedClass),e(c).addClass(b.jmpressDelegatedClass="delegating-step-"+e(t).attr("id")),C.call(this,"applyTarget",p,e.extend({canvas:g,area:d,beforeActive:D},f)),y=t,j=f.substep,D=p,b.idleTimeout&&clearTimeout(b.idleTimeout),b.idleTimeout=setTimeout((function(){C.call(this,"idle",p,f)}),Math.max(1,o.transitionDuration-100)),p}function P(){!function t(){if("BODY"===e(l)[0].tagName)try{s.scrollTo(0,0)}catch(e){}function a(){0===e(l).scrollTop()&&0===e(l).scrollLeft()||t()}e(l).scrollTop(0),e(l).scrollLeft(0),setTimeout(a,1),setTimeout(a,10),setTimeout(a,100),setTimeout(a,200),setTimeout(a,400)}()}if(c.data("jmpressmethods",{select:T,reselect:function(e){return T({step:y,substep:j},e)},scrollFix:P,goTo:function(e){return T.call(this,e,"jump")},next:function(){return T.call(this,C.call(this,"selectNext",y,{stepData:e(y).data("stepData"),substep:j}),"next")},prev:function(){return T.call(this,C.call(this,"selectPrev",y,{stepData:e(y).data("stepData"),substep:j}),"prev")},home:function(){return T.call(this,C.call(this,"selectHome",y,{stepData:e(y).data("stepData")}),"home")},end:function(){return T.call(this,C.call(this,"selectEnd",y,{stepData:e(y).data("stepData")}),"end")},canvas:function(t){return h(g,t||{}),e(g)},container:function(){return l},settings:function(){return o},active:function(){return D&&e(D)},current:function(){return b},fire:function(t,s,a){if(f[t])return C.call(this,t,s,a);e.error("callback "+t+" is not registered.")},init:function(t){S.call(this,e(t),b.nextIdNumber++)},deinit:function(t){t?w.call(this,e(t)):x.call(this)},reapply:function(t){C.call(this,"unapplyStep",e(t),{stepData:t.data("stepData")}),C.call(this,"applyStep",e(t),{stepData:t.data("stepData")})}}),0!=(-1===(M=navigator.userAgent.toLowerCase()).search(/(iphone)|(ipod)|(android)/)||-1!==M.search(/(chrome)/))){var M;o.notSupportedClass&&c.removeClass(o.notSupportedClass);var A=e(o.stepSelector,c);l=c,d=e("<div />"),g=e("<div />"),e(c).children().filter(A).each((function(){g.append(e(this))})),o.fullscreen&&(l=e("body"),e("html").css({overflow:"hidden"}),d=c),m.area=d.attr("style")||"",m.container=l.attr("style")||"",o.fullscreen?(l.css({height:"100%"}),c.append(g)):(l.css({position:"relative"}),d.append(g),c.append(d)),e(l).addClass(o.containerClass),e(d).addClass(o.areaClass),e(g).addClass(o.canvasClass),t.documentElement.style.height="100%",l.css({overflow:"hidden"});var I={position:"absolute",transitionDuration:"0s"};I=e.extend({},o.animation,I),h(d,I),h(d,{top:"50%",left:"50%",perspective:"1000px"}),h(g,I),b={},C.call(this,"beforeInit",null,{}),A.each((function(e){S.call(c,this,e)})),b.nextIdNumber=A.length,C.call(this,"afterInit",null,{}),T.call(this,C.call(this,"selectInitialStep","init",{})),o.initClass&&e(A).removeClass(o.initClass)}else o.notSupportedClass&&c.addClass(o.notSupportedClass)}function h(t,s){var a,r,n={};for(a in s)s.hasOwnProperty(a)&&null!==(r=o(a))&&(n[r]=s[a]);return e(t).css(n),t}function v(t){if(e(t)[0].dataset)return e.extend({},e(t)[0].dataset);var s={},a=e(t)[0].attributes;return e.each(a,(function(e,t){"data-"===t.nodeName.substr(0,5)&&(s[function(e){e=e.split("-");for(var t=1;t<e.length;t++)e[t]=e[t].substr(0,1).toUpperCase()+e[t].substr(1);return e.join("")}(t.nodeName.substr(5))]=t.nodeValue)})),s}var g={init:m,initialized:function(){return!!e(this).data("jmpressmethods")},deinit:function(){},css:h,pfx:o,defaults:function(){return p},register:function(t,s){e.isFunction(s)?g[t]?e.error("function "+t+" is already registered."):g[t]=s:f[t]?e.error("callback "+t+" is already registered."):(f[t]=1,p[t]=[])},dataset:v};e.fn.jmpress=function(t){function s(){var s=e(this).data("jmpressmethods");if(s&&s[t])return s[t].apply(this,Array.prototype.slice.call(arguments,1));if(g[t])return g[t].apply(this,Array.prototype.slice.call(arguments,1));if(f[t]&&s){var a=s.settings(),r=Array.prototype.slice.call(arguments,1)[0];e.isFunction(r)&&(a[t]=a[t]||[],a[t].push(r))}else{if("object"==typeof t||!t)return m.apply(this,arguments);e.error("Method "+t+" does not exist on jQuery.jmpress")}return this}var a,r=arguments;return e(this).each((function(e,t){a=s.apply(t,r)})),a},e.extend({jmpress:function(t){if(g[t])return g[t].apply(this,Array.prototype.slice.call(arguments,1));if(f[t]){var s=Array.prototype.slice.call(arguments,1)[0];e.isFunction(s)?p[t].push(s):e.error("Second parameter should be a function: $.jmpress( callbackName, callbackFunction )")}else e.error("Method "+t+" does not exist on jQuery.jmpress")}})}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a,r){var n;return t.each((function(t,i){return(!r||!(n=s(i,a,r)))&&(e(i).is(a)?(n=i,!1):!(!r&&(n=s(i,a,r)))&&void 0)})),n}function n(t,s,a){var i=e(t).children();return a&&(i=e(i.get().reverse())),r(i,n,s,a)}function i(t,s,a){return r(e(t)[a?"prevAll":"nextAll"](),n,s,a)}e.fn.near=function(t,s){var a=[];return e(this).each((function(r,o){var c=!s&&n(o,t,s)||i(o,t,s)||function(t,s,a){var r,n=e(t).parents();return n=e(n.get()),e.each(n.get(),(function(t,n){return a&&e(n).is(s)?(r=n,!1):!(r=i(n,s,a))&&void 0})),r}(o,t,s);c&&a.push(c)})),e(a)}}(jQuery,document,window),function(e,t,s,a){"use strict";function r(e){return Math.round(1e4*e)/1e4+""}var n={3:{transform:function(t,s){var a="translate(-50%,-50%)";e.each(s,(function(e,t){var s,n=["X","Y","Z"];if("translate"===t[0])a+=" translate3d("+r(t[1]||0)+"px,"+r(t[2]||0)+"px,"+r(t[3]||0)+"px)";else if("rotate"===t[0]){var i=t[4]?[1,2,3]:[3,2,1];for(s=0;s<3;s++)a+=" rotate"+n[i[s]-1]+"("+r(t[i[s]]||0)+"deg)"}else if("scale"===t[0])for(s=0;s<3;s++)a+=" scale"+n[s]+"("+r(t[s+1]||1)+")"})),e.jmpress("css",t,e.extend({},{transform:a}))}},2:{transform:function(t,s){var a="translate(-50%,-50%)";e.each(s,(function(e,t){var s=["X","Y"];if("translate"===t[0])a+=" translate("+r(t[1]||0)+"px,"+r(t[2]||0)+"px)";else if("rotate"===t[0])a+=" rotate("+r(t[3]||0)+"deg)";else if("scale"===t[0])for(var n=0;n<2;n++)a+=" scale"+s[n]+"("+r(t[n+1]||1)+")"})),e.jmpress("css",t,e.extend({},{transform:a}))}},1:{transform:function(t,s){var a={top:0,left:0};e.each(s,(function(e,t){"translate"===t[0]&&(a.left=Math.round(t[1]||0)+"px",a.top=Math.round(t[2]||0)+"px")})),t.animate(a,1e3)}}},i=e.jmpress("pfx","perspective")?n[3]:e.jmpress("pfx","transform")?n[2]:n[1];e.jmpress("defaults").reasonableAnimation={},e.jmpress("initStep",(function(t,s){var a=s.data,r=s.stepData,n=parseFloat;e.extend(r,{x:n(a.x)||0,y:n(a.y)||0,z:n(a.z)||0,r:n(a.r)||0,phi:n(a.phi)||0,rotate:n(a.rotate)||0,rotateX:n(a.rotateX)||0,rotateY:n(a.rotateY)||0,rotateZ:n(a.rotateZ)||0,revertRotate:!1,scale:n(a.scale)||1,scaleX:n(a.scaleX)||!1,scaleY:n(a.scaleY)||!1,scaleZ:n(a.scaleZ)||1})})),e.jmpress("afterInit",(function(t,s){var a=s.settings.stepSelector,r=s.current;r.perspectiveScale=1,r.maxNestedDepth=0;for(var n=e(s.jmpress).find(a).children(a);n.length;)r.maxNestedDepth++,n=n.children(a)})),e.jmpress("applyStep",(function(t,s){e.jmpress("css",e(t),{position:"absolute",transformStyle:"preserve-3d"}),s.parents.length>0&&e.jmpress("css",e(t),{top:"50%",left:"50%"});var a=s.stepData,r=[["translate",a.x||a.r*Math.sin(a.phi*Math.PI/180),a.y||-a.r*Math.cos(a.phi*Math.PI/180),a.z],["rotate",a.rotateX,a.rotateY,a.rotateZ||a.rotate,!0],["scale",a.scaleX||a.scale,a.scaleY||a.scale,a.scaleZ||a.scale]];i.transform(t,r)})),e.jmpress("setActive",(function(t,s){var a=s.target,r=s.stepData,n=a.transform=[];a.perspectiveScale=1;for(var i=s.current.maxNestedDepth;i>(s.parents.length||0);i--)n.push(["scale"],["rotate"],["translate"]);n.push(["scale",1/(r.scaleX||r.scale),1/(r.scaleY||r.scale),1/r.scaleZ]),n.push(["rotate",-r.rotateX,-r.rotateY,-(r.rotateZ||r.rotate)]),n.push(["translate",-(r.x||r.r*Math.sin(r.phi*Math.PI/180)),-(r.y||-r.r*Math.cos(r.phi*Math.PI/180)),-r.z]),a.perspectiveScale*=r.scaleX||r.scale,e.each(s.parents,(function(t,s){var r=e(s).data("stepData");n.push(["scale",1/(r.scaleX||r.scale),1/(r.scaleY||r.scale),1/r.scaleZ]),n.push(["rotate",-r.rotateX,-r.rotateY,-(r.rotateZ||r.rotate)]),n.push(["translate",-(r.x||r.r*Math.sin(r.phi*Math.PI/180)),-(r.y||-r.r*Math.cos(r.phi*Math.PI/180)),-r.z]),a.perspectiveScale*=r.scaleX||r.scale})),e.each(n,(function(e,t){function a(a){void 0===s.current["rotate"+a+"-"+e]&&(s.current["rotate"+a+"-"+e]=t[a]||0);var r=s.current["rotate"+a+"-"+e],n=r%360,i=(t[a]||0)%360;n<0&&(n+=360),i<0&&(i+=360);var o=i-n;o<-180?o+=360:o>180&&(o-=360),s.current["rotate"+a+"-"+e]=t[a]=r+o}"rotate"===t[0]&&(a(1),a(2),a(3))}))})),e.jmpress("applyTarget",(function(t,s){var a,r=s.target,n=(s.stepData,s.settings),o=1.3*r.perspectiveScale<s.current.perspectiveScale,c=r.perspectiveScale>1.3*s.current.perspectiveScale,l=-1;e.each(r.transform,(function(e,t){if(!(t.length<=1||"rotate"===t[0]&&t[1]%360==0&&t[2]%360==0&&t[3]%360==0))return"scale"===t[0]&&void(l=e)})),l!==s.current.oldLastScale&&(o=c=!1,s.current.oldLastScale=l);var u=[];if(-1!==l)for(;l>=0;)"scale"===r.transform[l][0]&&(u.push(r.transform[l]),r.transform[l]=["scale"]),l--;var p=n.animation;n.reasonableAnimation[s.reason]&&(p=e.extend({},p,n.reasonableAnimation[s.reason])),a={perspective:Math.round(1e3*r.perspectiveScale)+"px"},a=e.extend({},p,a),o||(a.transitionDelay="0s"),s.beforeActive||(a.transitionDuration="0s",a.transitionDelay="0s"),e.jmpress("css",s.area,a),i.transform(s.area,u),a=e.extend({},p),c||(a.transitionDelay="0s"),s.beforeActive||(a.transitionDuration="0s",a.transitionDelay="0s"),s.current.perspectiveScale=r.perspectiveScale,e.jmpress("css",s.canvas,a),i.transform(s.canvas,r.transform)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n=r("defaults");n.nestedActiveClass="nested-active",n.activeClass="active",r("setInactive",(function(t,s){var a=s.settings,r=a.activeClass,n=a.nestedActiveClass;r&&e(t).removeClass(r),n&&e.each(s.parents,(function(t,s){e(s).removeClass(n)}))})),r("setActive",(function(t,s){var a=s.settings,r=a.activeClass,n=a.nestedActiveClass;r&&e(t).addClass(r),n&&e.each(s.parents,(function(t,s){e(s).addClass(n)}))}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(t,s){return e(this).find(s.settings.stepSelector).first()}function i(t,s,a,r){if(!s)return!1;var n=a.settings.stepSelector;s=e(s);do{var i=s.near(n,r);if(0!==i.length&&0!==i.closest(t).length||(i=e(t).find(n)[r?"last":"first"]()),!i.length)return!1;s=i}while(s.data("stepData").exclude);return s}r("initStep",(function(e,t){t.stepData.exclude=t.data.exclude&&-1===["false","no"].indexOf(t.data.exclude)})),r("selectInitialStep",n),r("selectHome",n),r("selectEnd",(function(t,s){return e(this).find(s.settings.stepSelector).last()})),r("selectPrev",(function(e,t){return i(this,e,t,!0)})),r("selectNext",(function(e,t){return i(this,e,t)}))}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("selectInitialStep",(function(e,t){return t.settings.start}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;function n(t,s,a){for(var r=0;r<s.length-1;r++){var n=s[r],i=s[r+1];e(t).jmpress("initialized")?e(n,t).data("stepData")[a]=i:e(n,t).attr("data-"+a,i)}}function i(t,s,a,r){var n=s.stepData;if(n[a]){var i=e(t).near(n[a],r);if(i&&i.length)return i;if((i=e(n[a],this)[r?"last":"first"]())&&i.length)return i}}r("register","route",(function(e,t,s){"string"==typeof e&&(e=[e,e]),n(this,e,s?"prev":"next"),t||n(this,e.reverse(),s?"next":"prev")})),r("initStep",(function(e,t){for(var s in{next:1,prev:1})t.stepData[s]=t.data[s]})),r("selectNext",(function(e,t){return i.call(this,e,t,"next")})),r("selectPrev",(function(e,t){return i.call(this,e,t,"prev",!0)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="ajax:afterStepLoaded",i="ajax:loadStep";r("register",i),r("register",n),r("defaults").ajaxLoadedClass="loaded",r("initStep",(function(t,s){s.stepData.src=e(t).attr("href")||s.data.src||!1,s.stepData.srcLoaded=!1})),r(i,(function(t,s){var a=s.stepData,r=a&&a.src,i=s.settings;r&&(e(t).addClass(i.ajaxLoadedClass),a.srcLoaded=!0,e(t).load(r,(function(a,r,i){e(s.jmpress).jmpress("fire",n,t,e.extend({},s,{response:a,status:r,xhr:i}))})))})),r("idle",(function(t,s){if(t){var a=s.settings,r=e(this);s.stepData,e(t).add(e(t).near(a.stepSelector)).add(e(t).near(a.stepSelector,!0)).add(r.jmpress("fire","selectPrev",t,{stepData:e(t).data("stepData")})).add(r.jmpress("fire","selectNext",t,{stepData:e(t).data("stepData")})).each((function(){var t=this,s=e(t).data("stepData");s.src&&!s.srcLoaded&&r.jmpress("fire",i,t,{stepData:e(t).data("stepData")})}))}})),r("setActive",(function(t,s){var a=e(t).data("stepData");a.src&&!a.srcLoaded&&e(this).jmpress("fire",i,t,{stepData:e(t).data("stepData")})}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="a[href^='#']";function i(t){try{var a=e("#"+s.location.hash.replace(/^#\/?/,""));return a.length>0&&a.is(t.stepSelector)?a:void 0}catch(e){}}function o(e){var t="#/"+e;s.history&&s.history.pushState?s.location.hash!==t&&s.history.pushState({},"",t):s.location.hash!==t&&(s.location.hash=t)}r("defaults").hash={use:!0,update:!0,bindChange:!0},r("selectInitialStep",(function(t,a){var r=a.settings,c=r.hash,l=a.current,u=e(this);if(a.current.hashNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),c.use)return c.bindChange&&(e(s).bind("hashchange"+l.hashNamespace,(function(e){var t=i(r);u.jmpress("initialized")&&u.jmpress("scrollFix"),t&&t.length&&(t.attr("id")!==u.jmpress("active").attr("id")&&u.jmpress("select",t),o(t.attr("id"))),e.preventDefault()})),e(n).on("click"+l.hashNamespace,(function(t){var s=e(this).attr("href");try{e(s).is(r.stepSelector)&&(u.jmpress("select",s),t.preventDefault(),t.stopPropagation())}catch(e){}}))),i(r)})),r("afterDeinit",(function(t,a){e(n).off(a.current.hashNamespace),e(s).unbind(a.current.hashNamespace)})),r("setActive",(function(t,s){var a=s.settings,r=s.current;a.hash.use&&a.hash.update&&(clearTimeout(r.hashtimeout),r.hashtimeout=setTimeout((function(){o(e(s.delegatedFrom).attr("id"))}),a.transitionDuration+200))}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="next",i="prev";function o(e){e.preventDefault(),e.stopPropagation()}r("defaults").keyboard={use:!0,keys:{33:i,37:i,38:i,9:"next:prev",32:n,34:n,39:n,40:n,36:"home",35:"end"},ignore:{INPUT:[32,37,38,39,40],TEXTAREA:[32,37,38,39,40],SELECT:[38,40]},tabSelector:"a[href]:visible, :input:visible"},r("afterInit",(function(s,a){var r=a.settings,n=r.keyboard,i=n.ignore,c=a.current,l=e(this);r.fullscreen||l.attr("tabindex",0),c.keyboardNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(r.fullscreen?t:l).bind("keypress"+c.keyboardNamespace,(function(e){for(var t in i)if(e.target.nodeName===t&&-1!==i[t].indexOf(e.which))return;(e.which>=37&&e.which<=40||32===e.which)&&o(e)})),e(r.fullscreen?t:l).bind("keydown"+c.keyboardNamespace,(function(t){var s=e(t.target);if((r.fullscreen||s.closest(l).length)&&n.use){for(var a in i)if(s[0].nodeName===a&&-1!==i[a].indexOf(t.which))return;var c,u=!1;if(9===t.which){if(s.closest(l.jmpress("active")).length?(c=s.near(n.tabSelector,t.shiftKey),e(c).closest(r.stepSelector).is(l.jmpress("active"))||(c=void 0)):t.shiftKey?u=!0:c=l.jmpress("active").find("a[href], :input").filter(":visible").first(),c&&c.length>0)return c.focus(),l.jmpress("scrollFix"),void o(t);t.shiftKey&&(u=!0)}var p=n.keys[t.which];"string"==typeof p?(-1!==p.indexOf(":")&&(p=p.split(":"),p=t.shiftKey?p[1]:p[0]),l.jmpress(p),o(t)):e.isFunction(p)?p.call(l,t):p&&(l.jmpress.apply(l,p),o(t)),u&&((c=l.jmpress("active").find("a[href], :input").filter(":visible").last()).focus(),l.jmpress("scrollFix"))}}))})),r("afterDeinit",(function(s,a){e(t).unbind(a.current.keyboardNamespace)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r,n=(r=navigator.userAgent.toLowerCase(),(/(chrome)[ \/]([\w.]+)/.exec(r)||/(webkit)[ \/]([\w.]+)/.exec(r)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(r)||/(msie) ([\w.]+)/.exec(r)||r.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(r)||[])[1]||""),i=e.jmpress("defaults");i.viewPort={width:!1,height:!1,maxScale:0,minScale:0,zoomable:0,zoomBindMove:!0,zoomBindWheel:!0};var o=i.keyboard.keys;function c(e,t){return Math.max(Math.min(e,t),-t)}function l(t,s,a){var r=e(this).jmpress("current"),n=e(this).jmpress("settings"),i=e(this).jmpress("active").data("stepData"),o=e(this).jmpress("container");if(!(0===r.userZoom&&a<0)){var l=i.viewPortZoomable||n.viewPort.zoomable;if(!(r.userZoom===l&&a>0)){r.userZoom+=a;var u=e(o).innerWidth()/2,p=e(o).innerHeight()/2;t=t?t-u:t,s=s?s-p:s,r.userTranslateX=c(r.userTranslateX-a*t/r.zoomOriginWindowScale/l,u*r.userZoom*r.userZoom/l),r.userTranslateY=c(r.userTranslateY-a*s/r.zoomOriginWindowScale/l,p*r.userZoom*r.userZoom/l),e(this).jmpress("reselect","zoom")}}}o["mozilla"===n?107:187]="zoomIn",o["mozilla"===n?109:189]="zoomOut",i.reasonableAnimation.resize={transitionDuration:"0s",transitionDelay:"0ms"},i.reasonableAnimation.zoom={transitionDuration:"0s",transitionDelay:"0ms"},e.jmpress("initStep",(function(e,t){for(var s in{viewPortHeight:1,viewPortWidth:1,viewPortMinScale:1,viewPortMaxScale:1,viewPortZoomable:1})t.stepData[s]=t.data[s]&&parseFloat(t.data[s])})),e.jmpress("afterInit",(function(a,r){var n=this;r.current.viewPortNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),e(s).bind("resize"+r.current.viewPortNamespace,(function(t){e(n).jmpress("reselect","resize")})),r.current.userZoom=0,r.current.userTranslateX=0,r.current.userTranslateY=0,r.settings.viewPort.zoomBindWheel&&e(r.settings.fullscreen?t:this).bind("mousewheel"+r.current.viewPortNamespace+" DOMMouseScroll"+r.current.viewPortNamespace,(function(t,s){var a=(s=s||t.originalEvent.wheelDelta||-t.originalEvent.detail)/Math.abs(s);return a<0?e(r.jmpress).jmpress("zoomOut",t.originalEvent.x,t.originalEvent.y):a>0&&e(r.jmpress).jmpress("zoomIn",t.originalEvent.x,t.originalEvent.y),!1})),r.settings.viewPort.zoomBindMove&&e(r.settings.fullscreen?t:this).bind("mousedown"+r.current.viewPortNamespace,(function(e){r.current.userZoom&&(r.current.userTranslating={x:e.clientX,y:e.clientY},e.preventDefault(),e.stopImmediatePropagation())})).bind("mousemove"+r.current.viewPortNamespace,(function(t){var s=r.current.userTranslating;s&&(e(n).jmpress("zoomTranslate",t.clientX-s.x,t.clientY-s.y),s.x=t.clientX,s.y=t.clientY,t.preventDefault(),t.stopImmediatePropagation())})).bind("mouseup"+r.current.viewPortNamespace,(function(e){r.current.userTranslating&&(r.current.userTranslating=void 0,e.preventDefault(),e.stopImmediatePropagation())}))})),e.jmpress("register","zoomIn",(function(e,t){l.call(this,e||0,t||0,1)})),e.jmpress("register","zoomOut",(function(e,t){l.call(this,e||0,t||0,-1)})),e.jmpress("register","zoomTranslate",(function(t,s){var a=e(this).jmpress("current"),r=e(this).jmpress("settings"),n=e(this).jmpress("active").data("stepData"),i=e(this).jmpress("container"),o=n.viewPortZoomable||r.viewPort.zoomable,l=e(i).innerWidth(),u=e(i).innerHeight();a.userTranslateX=c(a.userTranslateX+t/a.zoomOriginWindowScale,l*a.userZoom*a.userZoom/o),a.userTranslateY=c(a.userTranslateY+s/a.zoomOriginWindowScale,u*a.userZoom*a.userZoom/o),e(this).jmpress("reselect","zoom")})),e.jmpress("afterDeinit",(function(a,r){e(r.settings.fullscreen?t:this).unbind(r.current.viewPortNamespace),e(s).unbind(r.current.viewPortNamespace)})),e.jmpress("setActive",(function(t,s){var a=s.settings.viewPort,r=s.stepData.viewPortHeight||a.height,n=s.stepData.viewPortWidth||a.width,i=s.stepData.viewPortMaxScale||a.maxScale,o=s.stepData.viewPortMinScale||a.minScale,c=r&&e(s.container).innerHeight()/r,l=n&&e(s.container).innerWidth()/n,u=(l||c)&&Math.min(l||c,c||l);if(u){u=u||1,i&&(u=Math.min(u,i)),o&&(u=Math.max(u,o));var p=s.stepData.viewPortZoomable||s.settings.viewPort.zoomable;if(p){var f=1/u-1/i;u=1/(1/u-(f/=p)*s.current.userZoom)}s.target.transform.reverse(),s.current.userTranslateX&&s.current.userTranslateY?s.target.transform.push(["translate",s.current.userTranslateX,s.current.userTranslateY,0]):s.target.transform.push(["translate"]),s.target.transform.push(["scale",u,u,1]),s.target.transform.reverse(),s.target.perspectiveScale/=u}s.current.zoomOriginWindowScale=u})),e.jmpress("setInactive",(function(t,s){s.nextStep&&t&&e(s.nextStep).attr("id")===e(t).attr("id")||(s.current.userZoom=0,s.current.userTranslateX=0,s.current.userTranslateY=0)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;r("defaults").mouse={clickSelects:!0},r("afterInit",(function(t,s){var a=s.settings,r=a.stepSelector,n=s.current,i=e(this);n.clickableStepsNamespace=".jmpress-"+Math.round(1e5*Math.random(),0),i.bind("click"+n.clickableStepsNamespace,(function(t){if(a.mouse.clickSelects&&!n.userZoom){var s=e(t.target).closest(r);s.is(i.jmpress("active"))||s.length&&(i.jmpress("select",s[0],"click"),t.preventDefault(),t.stopPropagation())}}))})),r("afterDeinit",(function(t,s){e(this).unbind(s.current.clickableStepsNamespace)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress;r("afterInit",(function(s,a){var r=a.settings,n=a.current,i=a.jmpress;n.mobileNamespace=".jmpress-"+Math.round(1e5*Math.random(),0);var o,c=[0,0];e(r.fullscreen?t:i).bind("touchstart"+n.mobileNamespace,(function(e){o=e.originalEvent.touches[0],c=[o.pageX,o.pageY]})).bind("touchmove"+n.mobileNamespace,(function(e){return o=e.originalEvent.touches[0],e.preventDefault(),!1})).bind("touchend"+n.mobileNamespace,(function(t){var s=[o.pageX,o.pageY],a=[s[0]-c[0],s[1]-c[1]];if(Math.max(Math.abs(a[0]),Math.abs(a[1]))>50)return a=Math.abs(a[0])>Math.abs(a[1])?a[0]:a[1],e(i).jmpress(a>0?"prev":"next"),t.preventDefault(),!1}))})),r("afterDeinit",(function(s,a){var r=a.settings,n=a.current,i=a.jmpress;e(r.fullscreen?t:i).unbind(n.mobileNamespace)}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="_template_",i="_applied_template_",o={};function c(t,s,a){for(var r in s){var n=r;a&&(n=a+n.substr(0,1).toUpperCase()+n.substr(1)),e.isPlainObject(s[r])?c(t,s[r],n):void 0===t[n]&&(t[n]=s[r])}}function l(t,s){e.isArray(s)?s.length<t.length?e.error("more nested steps than children in template"):t.each((function(t,a){var r=(a=e(a)).data(n)||{};c(r,s[t]),a.data(n,r)})):e.isFunction(s)&&t.each((function(a,r){var i=(r=e(r)).data(n)||{};c(i,s(a,r,t)),r.data(n,i)}))}function u(e,t,s,a){s.children&&l(t.children(a.settings.stepSelector),s.children),function(e,t){c(e,t)}(e,s)}r("beforeInitStep",(function(t,s){t=e(t);var a=s.data,r=a.template,c=t.data(i),l=t.data(n);r&&e.each(r.split(" "),(function(e,r){var n=o[r];u(a,t,n,s)})),c&&u(a,t,c,s),l&&(u(a,t,l,s),t.data(n,null),l.template&&e.each(l.template.split(" "),(function(e,r){var n=o[r];u(a,t,n,s)})))})),r("beforeInit",(function(t,s){var a=r("dataset",this).template,n=s.settings.stepSelector;if(a){var i=o[a];l(e(this).find(n).filter((function(){return!e(this).parent().is(n)})),i.children)}})),r("register","template",(function(t,s){o[t]?o[t]=e.extend(!0,{},o[t],s):o[t]=e.extend(!0,{},s)})),r("register","apply",(function(t,s){if(s)if(e.isArray(s))l(e(t),s);else{var a;a="string"==typeof s?o[s]:e.extend(!0,{},s),e(t).each((function(t,s){var r=(s=e(s)).data(i)||{};c(r,a),s.data(i,r)}))}else{var r=e(this).jmpress("settings").stepSelector;l(e(this).find(r).filter((function(){return!e(this).parent().is(r)})),t)}}))}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("setActive",(function(t,s){s.prevStep!==t&&e(t).triggerHandler("enterStep")})),e.jmpress("setInactive",(function(t,s){s.nextStep!==t&&e(t).triggerHandler("leaveStep")}))}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a,r){r=r||t.length-1;for(var n=a=a||0;n<r+1;n++)if(e(t[n].element).is(s))return n}function n(t,s,a){e.each(s._on,(function(e,s){t.push({substep:s.substep,delay:s.delay+a}),n(t,s.substep,s.delay+a)}))}e.jmpress("defaults").customAnimationDataAttribute="jmpress",e.jmpress("afterInit",(function(e,t){t.current.animationTimeouts=[],t.current.animationCleanupWaiting=[]})),e.jmpress("applyStep",(function(t,s){var i={},o=[];if(e(t).find("[data-"+s.settings.customAnimationDataAttribute+"]").each((function(a,r){e(r).closest(s.settings.stepSelector).is(t)&&o.push({element:r})})),0!==o.length){e.each(o,(function(t,a){a.info=function(t){for(var s=t.split(" "),a=s[0],r={willClass:"will-"+a,doClass:"do-"+a,hasClass:"has-"+a},n="",i=1;i<s.length;i++){var o=s[i];switch(n){case"":"after"===o?n="after":e.warn("unknown keyword in '"+t+"'. '"+o+"' unknown.");break;case"after":if(o.match(/^[1-9][0-9]*m?s?/)){var c=parseFloat(o);-1!==o.indexOf("ms")?c*=1:-1!==o.indexOf("s")?c*=1e3:-1!==o.indexOf("m")&&(c*=6e4),r.delay=c}else r.after=Array.prototype.slice.call(s,i).join(" "),i=s.length}}return r}(e(a.element).data(s.settings.customAnimationDataAttribute)),e(a.element).addClass(a.info.willClass),a._on=[],a._after=null}));var c={_after:a,_on:[],info:{}};if(e.each(o,(function(e,t){var s=t.info.after;if(s)if("step"===s)s=c;else if("prev"===s)s=o[e-1];else{var n=r(o,s,0,e-1);n===a&&(n=r(o,s)),s=n===a||n===e?o[e-1]:o[n]}else s=o[e-1];if(s){if(!t.info.delay){if(!s._after)return void(s._after=t);s=s._after}s._on.push({substep:t,delay:t.info.delay||0})}})),c._after===a&&0===c._on.length){var l=r(o,s.stepData.startSubstep)||0;c._after=o[l]}var u=[];do{var p=[{substep:c,delay:0}];n(p,c,0),u.push(p),c=null,e.each(p,f)}while(c);i.list=u,e(t).data("substepsData",i)}function f(e,t){if(t.substep._after)return c=t.substep._after,!1}})),e.jmpress("unapplyStep",(function(t,s){var a=e(t).data("substepsData");a&&e.each(a.list,(function(t,s){e.each(s,(function(t,s){s.substep.info.willClass&&e(s.substep.element).removeClass(s.substep.info.willClass),s.substep.info.hasClass&&e(s.substep.element).removeClass(s.substep.info.hasClass),s.substep.info.doClass&&e(s.substep.element).removeClass(s.substep.info.doClass)}))}))})),e.jmpress("setActive",(function(t,s){var r=e(t).data("substepsData");if(r){s.substep===a&&(s.substep="prev"===s.reason?r.list.length-1:0);var n=s.substep;e.each(s.current.animationTimeouts,(function(e,t){clearTimeout(t)})),s.current.animationTimeouts=[],e.each(r.list,(function(t,a){var r=t<n,i=t<=n;e.each(a,(function(t,a){a.substep.info.hasClass&&e(a.substep.element)[(r?"add":"remove")+"Class"](a.substep.info.hasClass),i&&!r&&a.delay&&"prev"!==s.reason?a.substep.info.doClass&&(e(a.substep.element).removeClass(a.substep.info.doClass),s.current.animationTimeouts.push(setTimeout((function(){e(a.substep.element).addClass(a.substep.info.doClass)}),a.delay))):a.substep.info.doClass&&e(a.substep.element)[(i?"add":"remove")+"Class"](a.substep.info.doClass)}))}))}})),e.jmpress("setInactive",(function(t,s){if(s.nextStep!==t){e.each(s.current.animationCleanupWaiting,(function(t,s){!function(t){e.each(t.list,(function(t,s){e.each(s,(function(t,s){s.substep.info.hasClass&&e(s.substep.element).removeClass(s.substep.info.hasClass),s.substep.info.doClass&&e(s.substep.element).removeClass(s.substep.info.doClass)}))}))}(s)})),s.current.animationCleanupWaiting=[];var a=e(t).data("substepsData");a&&s.current.animationCleanupWaiting.push(a)}})),e.jmpress("selectNext",(function(t,s){if(s.substep!==a){var r=e(t).data("substepsData");if(r)return s.substep<r.list.length-1?{step:t,substep:s.substep+1}:void 0}})),e.jmpress("selectPrev",(function(t,s){if(s.substep!==a&&e(t).data("substepsData"))return s.substep>0?{step:t,substep:s.substep-1}:void 0}))}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("register","toggle",(function(s,a,r){var n=this;e(t).bind("keydown",(function(t){t.keyCode===s&&(e(n).jmpress("initialized")?e(n).jmpress("deinit"):e(n).jmpress(a))})),r&&e(n).jmpress(a)}))}(jQuery,document,window),function(e,t,s,a){"use strict";function r(t,s,a){if(t.secondary&&-1!==t.secondary.split(" ").indexOf(s)){for(var r in t)if(r.length>9&&0===r.indexOf("secondary")){var n=t[r],i=r.substr(9);i=i.substr(0,1).toLowerCase()+i.substr(1),t[r]=t[i],t[i]=n}e(this).jmpress("reapply",e(a))}}e.jmpress("initStep",(function(e,t){for(var s in t.data)0===s.indexOf("secondary")&&(t.stepData[s]=t.data[s])})),e.jmpress("beforeActive",(function(t,s){r.call(s.jmpress,e(t).data("stepData"),"self",t);var a=e(t).parent();e(a).children(s.settings.stepSelector).each((function(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"siblings",a)}));for(var n=1;n<s.parents.length;n++)e(s.parents[n]).children(s.settings.stepSelector).each()})),e.jmpress("setInactive",(function(t,s){r.call(s.jmpress,e(t).data("stepData"),"self",t);var a=e(t).parent();function n(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"grandchildren",a)}e(a).children(s.settings.stepSelector).each((function(t,a){var n=e(a).data("stepData");r.call(s.jmpress,n,"siblings",a)}));for(var i=1;i<s.parents.length;i++)e(s.parents[i]).children(s.settings.stepSelector).each(n)}))}(jQuery,document,window),function(e,t,s,a){"use strict";e.jmpress("defaults").duration={defaultValue:-1,defaultAction:"next",barSelector:a,barProperty:"width",barPropertyStart:"0",barPropertyEnd:"100%"},e.jmpress("initStep",(function(e,t){t.stepData.duration=t.data.duration&&parseInt(t.data.duration,10),t.stepData.durationAction=t.data.durationAction})),e.jmpress("setInactive",(function(t,s){var a=s.settings.duration,r=s.current;if(s.stepData.duration||a.defaultValue,r.durationTimeout){if(a.barSelector){var n={transitionProperty:a.barProperty,transitionDuration:"0",transitionDelay:"0",transitionTimingFunction:"linear"};n[a.barProperty]=a.barPropertyStart;var i=e(a.barSelector);e.jmpress("css",i,n),i.each((function(t,s){var a=e(s).next(),r=e(s).parent();e(s).detach(),a.length?a.insertBefore(s):r.append(s)}))}clearTimeout(r.durationTimeout),delete r.durationTimeout}})),e.jmpress("setActive",(function(t,s){var r=s.settings,n=r.duration,i=s.current,o=s.stepData.duration||n.defaultValue;if(o&&o>0){if(n.barSelector){var c={transitionProperty:n.barProperty,transitionDuration:o-2*r.transitionDuration/3-100+"ms",transitionDelay:2*r.transitionDuration/3+"ms",transitionTimingFunction:"linear"};c[n.barProperty]=n.barPropertyEnd,e.jmpress("css",e(n.barSelector),c)}var l=this;i.durationTimeout&&(clearTimeout(i.durationTimeout),i.durationTimeout=a),i.durationTimeout=setTimeout((function(){var t=s.stepData.durationAction||n.defaultAction;e(l).jmpress(t)}),o)}}))}(jQuery,document,window),function(e,t,s,a){"use strict";var r=e.jmpress,n="jmpress-presentation-";r("defaults").presentationMode={use:!0,url:"presentation-screen.html",notesUrl:!1,transferredValues:["userZoom","userTranslateX","userTranslateY"]},r("defaults").keyboard.keys[80]="presentationPopup",r("afterInit",(function(t,a){var r=a.current;if(r.selectMessageListeners=[],a.settings.presentationMode.use){s.addEventListener("message",(function(t){try{if("string"!=typeof t.data||0!==t.data.indexOf(n))return;var i=JSON.parse(t.data.slice(n.length));switch(i.type){case"select":e.each(a.settings.presentationMode.transferredValues,(function(e,t){a.current[t]=i[t]})),/[a-z0-9\-]+/i.test(i.targetId)&&typeof i.substep in{number:1,undefined:1}?e(a.jmpress).jmpress("select",{step:"#"+i.targetId,substep:i.substep},i.reason):e.error("For security reasons the targetId must match /[a-z0-9\\-]+/i and substep must be a number.");break;case"listen":r.selectMessageListeners.push(t.source);break;case"ok":clearTimeout(r.presentationPopupTimeout);break;case"read":try{t.source.postMessage(n+JSON.stringify({type:"url",url:s.location.href,notesUrl:a.settings.presentationMode.notesUrl}),"*")}catch(t){e.error("Cannot post message to source: "+t)}break;default:throw"Unknown message type: "+i.type}}catch(t){e.error("Received message is malformed: "+t)}}));try{s.parent&&s.parent!==s&&s.parent.postMessage(n+JSON.stringify({type:"afterInit"}),"*")}catch(t){e.error("Cannot post message to parent: "+t)}}})),r("afterDeinit",(function(t,a){if(a.settings.presentationMode.use)try{s.parent&&s.parent!==s&&s.parent.postMessage(n+JSON.stringify({type:"afterDeinit"}),"*")}catch(t){e.error("Cannot post message to parent: "+t)}})),r("setActive",(function(t,s){var a=e(s.delegatedFrom).attr("id"),r=s.substep,i=s.reason;e.each(s.current.selectMessageListeners,(function(t,o){try{var c={type:"select",targetId:a,substep:r,reason:i};e.each(s.settings.presentationMode.transferredValues,(function(e,t){c[t]=s.current[t]})),o.postMessage(n+JSON.stringify(c),"*")}catch(t){e.error("Cannot post message to listener: "+t)}}))})),r("register","presentationPopup",(function(){var t,a=e(this);a.jmpress("settings").presentationMode.use&&(t=s.open(e(this).jmpress("settings").presentationMode.url),a.jmpress("current").presentationPopupTimeout=setTimeout((function e(){a.jmpress("current").presentationPopupTimeout=setTimeout(e,100);try{t.postMessage(n+JSON.stringify({type:"url",url:s.location.href,notesUrl:a.jmpress("settings").presentationMode.notesUrl}),"*")}catch(e){}}),100))}))}(jQuery,document,window); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js.LICENSE.txt b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js.LICENSE.txt
new file mode 100644
index 00000000..5ed29ea0
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/jmpress.min.js.LICENSE.txt
@@ -0,0 +1,7 @@
+/*!
+ * plugin for jmpress.js v0.4.5
+ *
+ * Copyright 2013 Kyle Robinson Young @shama & Tobias Koppers @sokra
+ * Licensed MIT
+ * http://www.opensource.org/licenses/mit-license.php
+ */
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/main.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/main.min.asset.php
new file mode 100644
index 00000000..b4ae7529
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/main.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '0c901f0f0fbffab3bdd5e5e6995e7d03'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/main.min.js b/plugins/jetpack/_inc/build/shortcodes/js/main.min.js
index a7875c9e..c7385e95 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/main.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/main.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(s){var t={fullscreen:!1,hash:{use:!1},mouse:{clickSelects:!1},keyboard:{use:!0},animation:{transitionDuration:"1s"},presentationMode:!1,stepSelector:".step",duration:{defaultValue:0}};function e(e){var i,o,n,l;(i=this).wrapper=s(e),i.slideshow=s(".presentation",e),i.navLeft=s(".nav-arrow-left",e),i.navRight=s(".nav-arrow-right",e),i.expandButton=s(".nav-fullscreen-button",e),i.overlay=s(".autoplay-overlay",e),i.fullscreen=!1,i.autoPlaying=!1,i.autoplayTime=parseFloat(i.slideshow.attr("data-autoplay"),10)||0,i.wrapper.css({width:i.slideshow.width(),height:i.slideshow.height()}),o=i.slideshow.attr("duration")||"1s",t.animation.transitionDuration=o,i.autoplayTime&&(i.autoplayTime+=1e3*parseFloat(o,10)),o="opacity "+o,n={width:i.slideshow.width(),height:i.slideshow.height(),"-webkit-transition":o,"-moz-transition":o,"-ms-transition":o,"-o-transition":o,transition:o},s(".step",i.slideshow).each(function(t,e){s(e).css(n)}),s(".step.fadebullets li",i.slideshow).each(function(t,e){s(e).attr("data-jmpress","fade")}),s(window).resize(function(){i.fullscreen&&i.resizePresentation()}),i.navLeft.on("click",function(){return i.slideshow.jmpress("prev"),i.overlay.css("opacity",0),!1}),i.navRight.on("click",function(){return i.slideshow.jmpress("next"),i.overlay.css("opacity",0),!1}),i.slideshow.on("click",function(){return i.setAutoplay(!0),!1}),i.slideshow.on("focusout",function(){i.setAutoplay(!1)}),(l=/MSIE\s(\d+)\.\d+/.exec(navigator.userAgent))&&parseInt(l[1],10)<10?(i.expandButton.remove(),i.expandButton=null):i.expandButton.on("click",function(){return i.setFullscreen(!i.fullscreen),!1}),s(window).on("keydown",function(s){27===s.which&&i.setFullscreen(!1)}),i.slideshow.jmpress(t),i.slideshow.jmpress("initialized")&&(i.slideshow.css("display",""),i.overlay.css("display",""),s(".not-supported-msg",i.wrapper).remove()),i.setFullscreen(!1)}s.extend(e.prototype,{resizePresentation:function(){var t,e,i,o,n,l;e=(i=this.slideshow.jmpress("settings")).animation.transitionDuration,i.animation.transitionDuration="0s",this.slideshow.jmpress("reselect"),t=1,o={top:0,left:0,zoom:1},this.fullscreen&&(n=s(window).width()/this.slideshow.width(),l=s(window).height()/this.slideshow.height(),t=Math.min(n,l),o.top=(s(window).height()-t*this.slideshow.height())/2,o.left=(s(window).width()-t*this.slideshow.width())/2),this.slideshow.css("-moz-transform")||this.slideshow.css("-ms-transform")?(o.top+=(t-1)*this.slideshow.height()/2,o.left+=(t-1)*this.slideshow.width()/2,t="scale("+t+")",s.extend(o,{"-moz-transform":t,"-ms-transform":t,transform:t})):(o.top/=t,o.left/=t,o.zoom=t),this.slideshow.css(o),i.animation.transitionDuration=e,this.slideshow.jmpress("reselect")},setFullscreen:function(t){this.fullscreen=t,this.setAutoplay(!1),t&&(this.scrollVert=s(window).scrollTop(),this.scrollHoriz=s(window).scrollLeft(),s(window).scrollTop(0),s(window).scrollLeft(0)),s("html").toggleClass("presentation-global-fullscreen",t),s("body").toggleClass("presentation-global-fullscreen",t),this.wrapper.toggleClass("presentation-wrapper-fullscreen",t),this.wrapper.parents().each(function(e,i){s(i).toggleClass("presentation-wrapper-fullscreen-parent",t)}),this.resizePresentation(),t||(s(window).scrollTop(this.scrollVert),s(window).scrollLeft(this.scrollHoriz))},setAutoplay:function(s){var t;this.autoPlaying!==s&&(t=s&&this.autoplayTime>0?this.autoplayTime:0,this.slideshow.jmpress("settings").duration.defaultValue=t,t?(this.slideshow.jmpress("next"),this.overlay.css("opacity",0)):this.slideshow.jmpress("reselect"),this.autoPlaying=s)}}),s(document).ready(function(){s(".presentation-wrapper").map(function(){new e(this)})})}(jQuery); \ No newline at end of file
+!function(s){var t={fullscreen:!1,hash:{use:!1},mouse:{clickSelects:!1},keyboard:{use:!0},animation:{transitionDuration:"1s"},presentationMode:!1,stepSelector:".step",duration:{defaultValue:0}};function e(e){var i,o,n,l;(i=this).wrapper=s(e),i.slideshow=s(".presentation",e),i.navLeft=s(".nav-arrow-left",e),i.navRight=s(".nav-arrow-right",e),i.expandButton=s(".nav-fullscreen-button",e),i.overlay=s(".autoplay-overlay",e),i.fullscreen=!1,i.autoPlaying=!1,i.autoplayTime=parseFloat(i.slideshow.attr("data-autoplay"),10)||0,i.wrapper.css({width:i.slideshow.width(),height:i.slideshow.height()}),o=i.slideshow.attr("duration")||"1s",t.animation.transitionDuration=o,i.autoplayTime&&(i.autoplayTime+=1e3*parseFloat(o,10)),o="opacity "+o,n={width:i.slideshow.width(),height:i.slideshow.height(),"-webkit-transition":o,"-moz-transition":o,"-ms-transition":o,"-o-transition":o,transition:o},s(".step",i.slideshow).each((function(t,e){s(e).css(n)})),s(".step.fadebullets li",i.slideshow).each((function(t,e){s(e).attr("data-jmpress","fade")})),s(window).resize((function(){i.fullscreen&&i.resizePresentation()})),i.navLeft.on("click",(function(){return i.slideshow.jmpress("prev"),i.overlay.css("opacity",0),!1})),i.navRight.on("click",(function(){return i.slideshow.jmpress("next"),i.overlay.css("opacity",0),!1})),i.slideshow.on("click",(function(){return i.setAutoplay(!0),!1})),i.slideshow.on("focusout",(function(){i.setAutoplay(!1)})),(l=/MSIE\s(\d+)\.\d+/.exec(navigator.userAgent))&&parseInt(l[1],10)<10?(i.expandButton.remove(),i.expandButton=null):i.expandButton.on("click",(function(){return i.setFullscreen(!i.fullscreen),!1})),s(window).on("keydown",(function(s){27===s.which&&i.setFullscreen(!1)})),i.slideshow.jmpress(t),i.slideshow.jmpress("initialized")&&(i.slideshow.css("display",""),i.overlay.css("display",""),s(".not-supported-msg",i.wrapper).remove()),i.setFullscreen(!1)}s.extend(e.prototype,{resizePresentation:function(){var t,e,i,o,n,l;e=(i=this.slideshow.jmpress("settings")).animation.transitionDuration,i.animation.transitionDuration="0s",this.slideshow.jmpress("reselect"),t=1,o={top:0,left:0,zoom:1},this.fullscreen&&(n=s(window).width()/this.slideshow.width(),l=s(window).height()/this.slideshow.height(),t=Math.min(n,l),o.top=(s(window).height()-t*this.slideshow.height())/2,o.left=(s(window).width()-t*this.slideshow.width())/2),this.slideshow.css("-moz-transform")||this.slideshow.css("-ms-transform")?(o.top+=(t-1)*this.slideshow.height()/2,o.left+=(t-1)*this.slideshow.width()/2,t="scale("+t+")",s.extend(o,{"-moz-transform":t,"-ms-transform":t,transform:t})):(o.top/=t,o.left/=t,o.zoom=t),this.slideshow.css(o),i.animation.transitionDuration=e,this.slideshow.jmpress("reselect")},setFullscreen:function(t){this.fullscreen=t,this.setAutoplay(!1),t&&(this.scrollVert=s(window).scrollTop(),this.scrollHoriz=s(window).scrollLeft(),s(window).scrollTop(0),s(window).scrollLeft(0)),s("html").toggleClass("presentation-global-fullscreen",t),s("body").toggleClass("presentation-global-fullscreen",t),this.wrapper.toggleClass("presentation-wrapper-fullscreen",t),this.wrapper.parents().each((function(e,i){s(i).toggleClass("presentation-wrapper-fullscreen-parent",t)})),this.resizePresentation(),t||(s(window).scrollTop(this.scrollVert),s(window).scrollLeft(this.scrollHoriz))},setAutoplay:function(s){var t,e=this;e.autoPlaying!==s&&(t=s&&e.autoplayTime>0?e.autoplayTime:0,e.slideshow.jmpress("settings").duration.defaultValue=t,t?(e.slideshow.jmpress("next"),e.overlay.css("opacity",0)):e.slideshow.jmpress("reselect"),e.autoPlaying=s)}}),s(document).ready((function(){s(".presentation-wrapper").map((function(){new e(this)}))}))}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.asset.php
new file mode 100644
index 00000000..3ed39275
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'fc0284fce49acf40c2399a2b9f706e28'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.js b/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.js
index c9103bf0..db518a02 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/quiz.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(a){a.fn.shuffleQuiz=function(){var t=this.get(),i=a.map(t,function(){var i,n=(i=t.length,Math.floor(Math.random()*i)),c=a(t[n]).clone(!0)[0];return t.splice(n,1),c});return this.each(function(t){a(this).replaceWith(a(i[t]))}),a(i)}}(jQuery),jQuery(function(a){a(".jetpack-quiz").each(function(){var t=a(this);t.find("div.jetpack-quiz-answer").shuffleQuiz(),t.find("div[data-correct]").removeAttr("data-correct").data("correct",1),t.find("div.jetpack-quiz-answer:last").addClass("last")}),a("div.jetpack-quiz").on("click","div.jetpack-quiz-answer",function(){var t,i=a(this),n=i.closest("div.jetpack-quiz");n.data("a8ctraining")&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_trainingchaos-"+n.data("username")+"="+n.data("a8ctraining")+"&rand="+Math.random(),n.data("a8ctraining",!1),n.data("trackid",!1)),t=n.data("trackid"),i.data("correct")?(i.addClass("correct"),t&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-"+t+"=correct&rand="+Math.random())):(i.addClass("wrong"),t&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-"+t+"=wrong&rand="+Math.random())),n.data("trackid",!1)})}); \ No newline at end of file
+!function(){var t;(t=jQuery).fn.shuffleQuiz=function(){var a=this.get(),e=t.map(a,(function(){var e,n=(e=a.length,Math.floor(Math.random()*e)),i=t(a[n]).clone(!0)[0];return a.splice(n,1),i}));return this.each((function(a){t(this).replaceWith(t(e[a]))})),t(e)},jQuery((function(t){t(".jetpack-quiz").each((function(){var a=t(this);a.find("div.jetpack-quiz-answer").shuffleQuiz(),a.find("div[data-correct]").removeAttr("data-correct").data("correct",1),a.find("div.jetpack-quiz-answer:last").addClass("last")})),t("div.jetpack-quiz").on("click","div.jetpack-quiz-answer",(function(){var a,e=t(this),n=e.closest("div.jetpack-quiz");n.data("a8ctraining")&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_trainingchaos-"+n.data("username")+"="+n.data("a8ctraining")+"&rand="+Math.random(),n.data("a8ctraining",!1),n.data("trackid",!1)),a=n.data("trackid"),e.data("correct")?(e.addClass("correct"),a&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-"+a+"=correct&rand="+Math.random())):(e.addClass("wrong"),a&&((new Image).src="//pixel.wp.com/b.gif?v=wpcom-no-pv&x_quiz-"+a+"=wrong&rand="+Math.random())),n.data("trackid",!1)}))})),document.querySelectorAll(".jetpack-quiz-wrapper").forEach((function(t){t.childNodes.forEach((function(a,e){a.style.display="none",a.setAttribute("quiz-number",e),a.querySelector(".jetpack-quiz-count").innerHTML=e+1+"/"+t.childElementCount})),t.childNodes[0].style.display="block"})),document.querySelectorAll(".jetpack-quiz-option-button").forEach((function(t){t.addEventListener("click",(function(){var a=t.parentElement.parentElement;a.style.display="none";var e="next"===t.getAttribute("data-quiz-option")?1:-1,n=a.parentElement.childNodes[parseInt(a.getAttribute("quiz-number"))+e];n.style.display="block";var i=n.querySelector(".jetpack-quiz-question");i&&i.focus()}))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.asset.php
new file mode 100644
index 00000000..59bc59cf
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '7753ff296d2d1b7fda6fc14f1c251333'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js
index 434fa495..2b970b1c 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js
@@ -1,40 +1,2 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/*
- * printThis v1.9.0
- * @desc Printing plug-in for jQuery
- * @author Jason Day
- *
- * Resources (based on) :
- * jPrintArea: http://plugins.jquery.com/project/jPrintArea
- * jqPrint: https://github.com/permanenttourist/jquery.jqprint
- * Ben Nadal: http://www.bennadel.com/blog/1591-Ask-Ben-Print-Part-Of-A-Web-Page-With-jQuery.htm
- *
- * Licensed under the MIT licence:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * (c) Jason Day 2015
- *
- * Usage:
- *
- * $("#mySelector").printThis({
- * debug: false, * show the iframe for debugging
- * importCSS: true, * import page CSS
- * importStyle: false, * import style tags
- * printContainer: true, * grab outer container as well as the contents of the selector
- * loadCSS: "path/to/my.css", * path to additional css file - us an array [] for multiple
- * pageTitle: "", * add title to print page
- * removeInline: false, * remove all inline styles from print elements
- * printDelay: 333, * variable print delay
- * header: null, * prefix to html
- * footer: null, * postfix to html
- * base: false, * preserve the BASE tag, or accept a string for the URL
- * formValues: true * preserve input/form values
- * canvas: false * copy canvas elements (experimental)
- * doctypeString: '...' * enter a different doctype for older markup
- * });
- *
- * Notes:
- * - the loadCSS will load additional css (with or without @media print) into the iframe, adjusting layout
- *
- */
-!function(e){var t;e.fn.printThis=function(n){t=e.extend({},e.fn.printThis.defaults,n);var i=this instanceof jQuery?this:e(this),a="printThis-"+(new Date).getTime();if(window.location.hostname!==document.domain&&navigator.userAgent.match(/msie/i)){var o='javascript:document.write("<head><script>document.domain=\\"'+document.domain+'\\";<\/script></head><body></body>")',r=document.createElement("iframe");r.name="printIframe",r.id=a,r.className="MSIE",document.body.appendChild(r),r.src=o}else{e("<iframe id='"+a+"' name='printIframe' />").appendTo("body")}var d=e("#"+a);t.debug||d.css({position:"absolute",width:"0px",height:"0px",left:"-600px",top:"-600px"}),setTimeout(function(){t.doctypeString&&function(e,t){var n,i;(i=(n=(n=e.get(0)).contentWindow||n.contentDocument||n).document||n.contentDocument||n).open(),i.write(t),i.close()}(d,t.doctypeString);var n,a=d.contents(),o=a.find("head"),r=a.find("body"),s=e("base");if(n=!0===t.base&&s.length>0?s.attr("href"):"string"==typeof t.base?t.base:document.location.protocol+"//"+document.location.host,o.append('<base href="'+n+'">'),t.importCSS&&e("link[rel=stylesheet]").each(function(){var t=e(this).attr("href");if(t){var n=e(this).attr("media")||"all";o.append("<link type='text/css' rel='stylesheet' href='"+t+"' media='"+n+"'>")}}),t.importStyle&&e("style").each(function(){e(this).clone().appendTo(o)}),t.pageTitle&&o.append("<title>"+t.pageTitle+"</title>"),t.loadCSS&&(e.isArray(t.loadCSS)?jQuery.each(t.loadCSS,function(e,t){o.append("<link type='text/css' rel='stylesheet' href='"+this+"'>")}):o.append("<link type='text/css' rel='stylesheet' href='"+t.loadCSS+"'>")),t.header&&r.append(t.header),t.canvas){var c=0;i.find("canvas").each(function(){e(this).attr("data-printthis",c++)})}if(t.printContainer?r.append(i.outer()):i.each(function(){r.append(e(this).html())}),t.canvas&&r.find("canvas").each(function(){var t=e(this).data("printthis"),n=e('[data-printthis="'+t+'"]');this.getContext("2d").drawImage(n[0],0,0),n.removeData("printthis")}),t.formValues){var p=i.find("input");p.length&&p.each(function(){var t=e(this),n=e(this).attr("name"),i=t.is(":checkbox")||t.is(":radio"),o=a.find('input[name="'+n+'"]'),r=t.val();i?t.is(":checked")&&(t.is(":checkbox")?o.attr("checked","checked"):t.is(":radio")&&a.find('input[name="'+n+'"][value="'+r+'"]').attr("checked","checked")):o.val(r)});var h=i.find("select");h.length&&h.each(function(){var t=e(this),n=e(this).attr("name"),i=t.val();a.find('select[name="'+n+'"]').val(i)});var l=i.find("textarea");l.length&&l.each(function(){var t=e(this),n=e(this).attr("name"),i=t.val();a.find('textarea[name="'+n+'"]').val(i)})}t.removeInline&&(e.isFunction(e.removeAttr)?a.find("body *").removeAttr("style"):a.find("body *").attr("style","")),t.footer&&r.append(t.footer),setTimeout(function(){d.hasClass("MSIE")?(window.frames.printIframe.focus(),o.append("<script> window.print(); <\/script>")):document.queryCommandSupported("print")?d[0].contentWindow.document.execCommand("print",!1,null):(d[0].contentWindow.focus(),d[0].contentWindow.print()),t.debug||setTimeout(function(){d.remove()},1e3)},t.printDelay)},333)},e.fn.printThis.defaults={debug:!1,importCSS:!0,importStyle:!1,printContainer:!0,loadCSS:"",pageTitle:"",removeInline:!1,printDelay:333,header:null,footer:null,formValues:!0,canvas:!1,base:!1,doctypeString:"<!DOCTYPE html>"},jQuery.fn.outer=function(){return e(e("<div></div>").html(this.clone())).html()}}(jQuery); \ No newline at end of file
+/*! For license information please see recipes-printthis.min.js.LICENSE.txt */
+!function(){var e,t;(e=jQuery).fn.printThis=function(n){t=e.extend({},e.fn.printThis.defaults,n);var i=this instanceof jQuery?this:e(this),a="printThis-"+(new Date).getTime();if(window.location.hostname!==document.domain&&navigator.userAgent.match(/msie/i)){var o='javascript:document.write("<head><script>document.domain=\\"'+document.domain+'\\";<\/script></head><body></body>")',r=document.createElement("iframe");r.name="printIframe",r.id=a,r.className="MSIE",document.body.appendChild(r),r.src=o}else e("<iframe id='"+a+"' name='printIframe' />").appendTo("body");var d=e("#"+a);t.debug||d.css({position:"absolute",width:"0px",height:"0px",left:"-600px",top:"-600px"}),setTimeout((function(){t.doctypeString&&function(e,t){var n,i;(i=(n=(n=e.get(0)).contentWindow||n.contentDocument||n).document||n.contentDocument||n).open(),i.write(t),i.close()}(d,t.doctypeString);var n,a=d.contents(),o=a.find("head"),r=a.find("body"),s=e("base");if(n=!0===t.base&&s.length>0?s.attr("href"):"string"==typeof t.base?t.base:document.location.protocol+"//"+document.location.host,o.append('<base href="'+n+'">'),t.importCSS&&e("link[rel=stylesheet]").each((function(){var t=e(this).attr("href");if(t){var n=e(this).attr("media")||"all";o.append("<link type='text/css' rel='stylesheet' href='"+t+"' media='"+n+"'>")}})),t.importStyle&&e("style").each((function(){e(this).clone().appendTo(o)})),t.pageTitle&&o.append("<title>"+t.pageTitle+"</title>"),t.loadCSS&&(e.isArray(t.loadCSS)?jQuery.each(t.loadCSS,(function(e,t){o.append("<link type='text/css' rel='stylesheet' href='"+this+"'>")})):o.append("<link type='text/css' rel='stylesheet' href='"+t.loadCSS+"'>")),t.header&&r.append(t.header),t.canvas){var c=0;i.find("canvas").each((function(){e(this).attr("data-printthis",c++)}))}if(t.printContainer?r.append(i.outer()):i.each((function(){r.append(e(this).html())})),t.canvas&&r.find("canvas").each((function(){var t=e(this).data("printthis"),n=e('[data-printthis="'+t+'"]');this.getContext("2d").drawImage(n[0],0,0),n.removeData("printthis")})),t.formValues){var p=i.find("input");p.length&&p.each((function(){var t=e(this),n=e(this).attr("name"),i=t.is(":checkbox")||t.is(":radio"),o=a.find('input[name="'+n+'"]'),r=t.val();i?t.is(":checked")&&(t.is(":checkbox")?o.attr("checked","checked"):t.is(":radio")&&a.find('input[name="'+n+'"][value="'+r+'"]').attr("checked","checked")):o.val(r)}));var h=i.find("select");h.length&&h.each((function(){var t=e(this),n=e(this).attr("name"),i=t.val();a.find('select[name="'+n+'"]').val(i)}));var l=i.find("textarea");l.length&&l.each((function(){var t=e(this),n=e(this).attr("name"),i=t.val();a.find('textarea[name="'+n+'"]').val(i)}))}t.removeInline&&(e.isFunction(e.removeAttr)?a.find("body *").removeAttr("style"):a.find("body *").attr("style","")),t.footer&&r.append(t.footer),setTimeout((function(){d.hasClass("MSIE")?(window.frames.printIframe.focus(),o.append("<script> window.print(); <\/script>")):document.queryCommandSupported("print")?d[0].contentWindow.document.execCommand("print",!1,null):(d[0].contentWindow.focus(),d[0].contentWindow.print()),t.debug||setTimeout((function(){d.remove()}),1e3)}),t.printDelay)}),333)},e.fn.printThis.defaults={debug:!1,importCSS:!0,importStyle:!1,printContainer:!0,loadCSS:"",pageTitle:"",removeInline:!1,printDelay:333,header:null,footer:null,formValues:!0,canvas:!1,base:!1,doctypeString:"<!DOCTYPE html>"},jQuery.fn.outer=function(){return e(e("<div></div>").html(this.clone())).html()}}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js.LICENSE.txt b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js.LICENSE.txt
new file mode 100644
index 00000000..4556fb7e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/recipes-printthis.min.js.LICENSE.txt
@@ -0,0 +1,15 @@
+/*!
+ * printThis v1.9.0
+ * @desc Printing plug-in for jQuery
+ * @author Jason Day
+ *
+ * Resources (based on) :
+ * jPrintArea: http://plugins.jquery.com/project/jPrintArea
+ * jqPrint: https://github.com/permanenttourist/jquery.jqprint
+ * Ben Nadal: http://www.bennadel.com/blog/1591-Ask-Ben-Print-Part-Of-A-Web-Page-With-jQuery.htm
+ *
+ * Licensed under the MIT licence:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * (c) Jason Day 2015
+ */
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.asset.php
new file mode 100644
index 00000000..9ce324d2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'f2dece01db99a81c05e9aa2a1ac7e1b7'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.js b/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.js
index 6501c94e..6dc52199 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/recipes.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jetpack_recipes_vars */
-!function(e){e(window).load(function(){e(".jetpack-recipe-print a").click(function(i){i.preventDefault(),e(this).closest(".jetpack-recipe").printThis({pageTitle:jetpack_recipes_vars.pageTitle,loadCSS:jetpack_recipes_vars.loadCSS})})})}(jQuery); \ No newline at end of file
+!function(){var e;(e=jQuery)(window).load((function(){e(".jetpack-recipe-print a").click((function(i){i.preventDefault(),e(this).closest(".jetpack-recipe").printThis({pageTitle:jetpack_recipes_vars.pageTitle,loadCSS:jetpack_recipes_vars.loadCSS})}))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.asset.php b/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.asset.php
new file mode 100644
index 00000000..4e1d58d7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '57f60263f852dffc35ed7671ff760b02'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.js b/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.js
index 4b12c320..036b53f6 100644
--- a/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.js
+++ b/plugins/jetpack/_inc/build/shortcodes/js/slideshow-shortcode.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jetpackSlideshowSettings, escape */
-function JetpackSlideshow(e,t,i){this.element=e,this.images=[],this.controls={},this.transition=t||"fade",this.autostart=i}JetpackSlideshow.prototype.showLoadingImage=function(e){if(e){this.loadingImage_=document.createElement("div"),this.loadingImage_.className="slideshow-loading";var t=document.createElement("img");t.src=jetpackSlideshowSettings.spinner,this.loadingImage_.appendChild(t),this.loadingImage_.appendChild(this.makeZeroWidthSpan()),this.element.append(this.loadingImage_)}else this.loadingImage_&&(this.loadingImage_.parentNode.removeChild(this.loadingImage_),this.loadingImage_=null)},JetpackSlideshow.prototype.init=function(){this.showLoadingImage(!0);for(var e=this,t=0;t<this.images.length;t++){var i=this.images[t],s=document.createElement("img");s.src=i.src,s.title=void 0!==i.title?i.title:"",s.alt=void 0!==i.alt?i.alt:"",s.align="middle",s.setAttribute("itemprop","image"),s.nopin="nopin";var o=document.createElement("div");o.className="slideshow-slide-caption",o.setAttribute("itemprop","caption description"),o.innerHTML=i.caption;var n=document.createElement("div");n.className="slideshow-slide",n.setAttribute("itemprop","associatedMedia"),n.setAttribute("itemscope",""),n.setAttribute("itemtype","https://schema.org/ImageObject"),0===t&&(s.complete?setTimeout(function(){e.finishInit_()},1):jQuery(s).load(function(){e.finishInit_()})),n.appendChild(s),s.removeAttribute("width"),s.removeAttribute("height"),n.appendChild(this.makeZeroWidthSpan()),n.appendChild(o),this.element.append(n)}},JetpackSlideshow.prototype.makeZeroWidthSpan=function(){var e=document.createElement("span");return e.className="slideshow-line-height-hack",-1!==window.navigator.userAgent.indexOf("MSIE ")?e.appendChild(document.createTextNode(" ")):e.innerHTML="&nbsp;",e},JetpackSlideshow.prototype.finishInit_=function(){this.showLoadingImage(!1),this.renderControls_();var e=this;if(this.images.length>1){this.element.cycle({fx:this.transition,prev:this.controls.prev,next:this.controls.next,timeout:jetpackSlideshowSettings.speed,slideExpr:".slideshow-slide",onPrevNextEvent:function(){return e.onCyclePrevNextClick_.apply(e,arguments)}});var t=this.element;this.autostart||(t.cycle("pause"),jQuery(this.controls.stop).removeClass("running"),jQuery(this.controls.stop).addClass("paused")),jQuery(this.controls.stop).click(function(){var e=jQuery(this);return e.hasClass("paused")?(e.addClass("running"),e.removeClass("paused"),t.cycle("resume",!0)):(t.cycle("pause"),e.removeClass("running"),e.addClass("paused")),!1})}else this.element.children(":first").show(),this.element.css("position","relative");this.initialized_=!0},JetpackSlideshow.prototype.renderControls_=function(){if(!this.controlsDiv_){var e=document.createElement("div");e.className="slideshow-controls";for(var t=["prev","stop","next"],i=0;i<t.length;i++){var s=t[i],o=document.createElement("a");o.href="#",e.appendChild(o),this.controls[s]=o}this.element.append(e),this.controlsDiv_=e}},JetpackSlideshow.prototype.onCyclePrevNextClick_=function(e,t){if(jetpackSlideshowSettings.blog_id){var i=this.images[t].id;(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?host="+escape(document.location.host)+"&rand="+Math.random()+"&blog="+jetpackSlideshowSettings.blog_id+"&subd="+jetpackSlideshowSettings.blog_subdomain+"&user_id="+jetpackSlideshowSettings.user_id+"&post="+i+"&ref="+escape(document.location)}},function(e){function t(){e(".jetpack-slideshow-noscript").remove(),e(".jetpack-slideshow").each(function(){var t=e(this);if(!t.data("processed")){var i=new JetpackSlideshow(t,t.data("trans"),t.data("autostart"));i.images=t.data("gallery"),i.init(),t.data("processed",!0)}})}e(document).ready(t),e("body").on("post-load",t)}(jQuery); \ No newline at end of file
+!function(){function e(e,t,i){this.element=e,this.images=[],this.controls={},this.transition=t||"fade",this.autostart=i}e.prototype.showLoadingImage=function(e){if(e){this.loadingImage_=document.createElement("div"),this.loadingImage_.className="slideshow-loading";var t=document.createElement("img");t.src=jetpackSlideshowSettings.spinner,this.loadingImage_.appendChild(t),this.loadingImage_.appendChild(this.makeZeroWidthSpan()),this.element.append(this.loadingImage_)}else this.loadingImage_&&(this.loadingImage_.parentNode.removeChild(this.loadingImage_),this.loadingImage_=null)},e.prototype.init=function(){this.showLoadingImage(!0);for(var e=this,t=0;t<this.images.length;t++){var i=this.images[t],s=document.createElement("img");s.src=i.src,s.title=void 0!==i.title?i.title:"",s.alt=void 0!==i.alt?i.alt:"",s.align="middle",s.setAttribute("itemprop","image"),s.nopin="nopin";var n=document.createElement("div");n.className="slideshow-slide-caption",n.setAttribute("itemprop","caption description"),n.innerHTML=i.caption;var o=document.createElement("div");o.className="slideshow-slide",o.setAttribute("itemprop","associatedMedia"),o.setAttribute("itemscope",""),o.setAttribute("itemtype","https://schema.org/ImageObject"),0===t&&(s.complete?setTimeout((function(){e.finishInit_()}),1):jQuery(s).load((function(){e.finishInit_()}))),o.appendChild(s),s.removeAttribute("width"),s.removeAttribute("height"),o.appendChild(this.makeZeroWidthSpan()),o.appendChild(n),this.element.append(o)}},e.prototype.makeZeroWidthSpan=function(){var e=document.createElement("span");return e.className="slideshow-line-height-hack",-1!==window.navigator.userAgent.indexOf("MSIE ")?e.appendChild(document.createTextNode(" ")):e.innerHTML="&nbsp;",e},e.prototype.finishInit_=function(){this.showLoadingImage(!1),this.renderControls_();var e=this;if(this.images.length>1){this.element.cycle({fx:this.transition,prev:this.controls.prev,next:this.controls.next,timeout:jetpackSlideshowSettings.speed,slideExpr:".slideshow-slide",onPrevNextEvent:function(){return e.onCyclePrevNextClick_.apply(e,arguments)}});var t=this.element;this.autostart||(t.cycle("pause"),jQuery(this.controls.stop).removeClass("running"),jQuery(this.controls.stop).addClass("paused")),jQuery(this.controls.stop).click((function(){var e=jQuery(this);return e.hasClass("paused")?(e.addClass("running"),e.removeClass("paused"),t.cycle("resume",!0)):(t.cycle("pause"),e.removeClass("running"),e.addClass("paused")),!1}))}else this.element.children(":first").show(),this.element.css("position","relative");this.initialized_=!0},e.prototype.renderControls_=function(){if(!this.controlsDiv_){var e=document.createElement("div");e.className="slideshow-controls";for(var t=["prev","stop","next"],i=0;i<t.length;i++){var s=t[i],n="label_"+s,o=document.createElement("a");o.href="#",o.className="button-"+s,o.setAttribute("aria-label",jetpackSlideshowSettings[n]),o.setAttribute("role","button"),e.appendChild(o),this.controls[s]=o}this.element.append(e),this.controlsDiv_=e}},e.prototype.onCyclePrevNextClick_=function(e,t){if(jetpackSlideshowSettings.blog_id){var i=this.images[t].id;(new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?host="+escape(document.location.host)+"&rand="+Math.random()+"&blog="+jetpackSlideshowSettings.blog_id+"&subd="+jetpackSlideshowSettings.blog_subdomain+"&user_id="+jetpackSlideshowSettings.user_id+"&post="+i+"&ref="+escape(document.location)}},function(t){function i(){t(".jetpack-slideshow-noscript").remove(),t(".jetpack-slideshow").each((function(){var i=t(this);if(!i.data("processed")){var s=new e(i,i.data("trans"),i.data("autostart"));s.images=i.data("gallery"),s.init(),i.data("processed",!0)}}))}t(document).ready(i),t("body").on("post-load",i)}(jQuery)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/static.html b/plugins/jetpack/_inc/build/static.html
index c5d9a4f3..acb541ba 100644
--- a/plugins/jetpack/_inc/build/static.html
+++ b/plugins/jetpack/_inc/build/static.html
@@ -1 +1 @@
-<div><div id="jp-plugin-container"><div class="jp-masthead"><div class="jp-masthead__inside-container"><div class="jp-masthead__logo-container"><a class="jp-masthead__logo-link" href="#dashboard"><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 118 32" class="jetpack-logo__masthead" height="32"><path fill="#00BE28" 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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path></svg></a></div></div></div><div class="jp-loading-placeholder"><span class="dashicons dashicons-wordpress-alt"></span></div><div class="jp-footer"><div class="jp-footer__a8c-attr-container"><a href="https://jetpack.com"><svg role="img" class="jp-footer__a8c-attr" x="0" y="0" viewBox="0 0 935 38.2" enable-background="new 0 0 935 38.2" aria-labelledby="a8c-svg-title"><title id="a8c-svg-title">An Automattic Airline</title><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"></path><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"></path><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"></path></svg></a></div><ul class="jp-footer__links"><li class="jp-footer__link-item"><a href="https://jetpack.com" target="_blank" rel="noopener noreferrer" class="jp-footer__link" title="Jetpack version">Jetpack</a></li><li class="jp-footer__link-item"><a href="https://jetpack.com" class="jp-footer__link" title="About Jetpack">About</a></li><li class="jp-footer__link-item"><a href="https://wordpress.com/tos/" target="_blank" rel="noopener noreferrer" title="WordPress.com Terms of Service" class="jp-footer__link">Terms</a></li><li class="jp-footer__link-item"><a href="https://automattic.com/privacy/" rel="noopener noreferrer" title="Automattic&#x27;s Privacy Policy" class="jp-footer__link">Privacy</a></li></ul></div><style type="text/css">.vp-deactivated{ display: none; }</style></div></div> \ No newline at end of file
+<div><div id="jp-plugin-container"><div class="jp-masthead"><div class="jp-masthead__inside-container"><div class="jp-masthead__logo-container"><a class="jp-masthead__logo-link" href="#dashboard"><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 118 32" class="jetpack-logo jetpack-logo__masthead" aria-labelledby="jetpack-logo-title" height="32"><title id="jetpack-logo-title">Jetpack Logo</title><path fill="#069e08" 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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path></svg></a></div></div></div><div class="jp-loading-placeholder"><span class="dashicons dashicons-wordpress-alt"></span></div><div class="jp-footer"><ul class="jp-footer__links"><li class="jp-footer__link-item"><a href="https://jetpack.com/redirect/?source=jetpack" target="_blank" rel="noopener noreferrer" class="jp-footer__link" title="Jetpack version">Jetpack</a></li><li class="jp-footer__link-item"><a href="https://jetpack.com/redirect/?source=jetpack" class="jp-footer__link" title="About Jetpack">About</a></li><li class="jp-footer__link-item"><a href="https://jetpack.com/redirect/?source=wpcom-tos" target="_blank" rel="noopener noreferrer" title="WordPress.com Terms of Service" class="jp-footer__link">Terms</a></li><li class="jp-footer__link-item"><a href="https://jetpack.com/redirect/?source=a8c-privacy" rel="noopener noreferrer" title="Automattic&#x27;s Privacy Policy" class="jp-footer__link">Privacy</a></li></ul><div class="jp-footer__rna-footer"><div class="jp-dashboard-footer"><div class="jp-dashboard-footer__footer-left"><svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 32 32" class="jetpack-logo jp-dashboard-footer__jetpack-symbol" aria-labelledby="jetpack-logo-title" height="16" aria-label="Jetpack logo"><title id="jetpack-logo-title">Jetpack Logo</title><path fill="#000" 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"></path></svg><span class="jp-dashboard-footer__module-name">Jetpack</span></div><div class="jp-dashboard-footer__footer-right"><a href="https://jetpack.com/redirect/?source=jetpack" aria-label="An Automattic Airline"><svg role="img" x="0" y="0" viewBox="0 0 935 38.2" enable-background="new 0 0 935 38.2" aria-labelledby="jp-automattic-byline-logo-title" height="7" class="jp-automattic-byline-logo"><title id="jp-automattic-byline-logo-title">An Automattic Airline</title><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"></path><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"></path><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"></path></svg></a></div></div></div></div><style type="text/css">.vp-deactivated{ display: none; }</style></div></div> \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/static.js.LICENSE.txt b/plugins/jetpack/_inc/build/static.js.LICENSE.txt
new file mode 100644
index 00000000..e4e20c7c
--- /dev/null
+++ b/plugins/jetpack/_inc/build/static.js.LICENSE.txt
@@ -0,0 +1,47 @@
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/**
+ * @license
+ * Lodash <https://lodash.com/>
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
+ * Released under MIT license <https://lodash.com/license>
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
+ */
+
+/** @license React v16.13.1
+ * react-is.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.
+ */
+
+/** @license React v17.0.2
+ * react-dom-server.browser.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.
+ */
+
+/** @license React v17.0.2
+ * react.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/plugins/jetpack/_inc/build/style.min.css b/plugins/jetpack/_inc/build/style.min.css
index b3ab9128..37521e29 100644
--- a/plugins/jetpack/_inc/build/style.min.css
+++ b/plugins/jetpack/_inc/build/style.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is compiled SASS code. */
-@media (max-width: 660px){.jp-hidden-on-mobile{display:none}}.jetpack-pagestyles #wpcontent{padding-left:0}.wp-admin.toplevel_page_jetpack{background-color:#f6f6f6;line-height:1.4;height:auto}.jetpack-pagestyles a{text-decoration:none}.dops-notice__text a{text-decoration:underline}.jetpack-pagestyles #dolly{float:none;position:relative;right:0;left:0;top:0;padding:.625rem;text-align:right;background:#fff;font-size:.75rem;font-style:italic;color:#a2a2a2;border-bottom:1px #eee solid}@media (max-width: 660px){.jetpack-pagestyles #dolly{display:none}}.toplevel_page_jetpack ul#adminmenu a.wp-has-current-submenu:after{border-right-color:#f6f6f6}.jp-lower{margin:0 auto;text-align:left;max-width:65rem;padding:1.5rem}@media (max-width: 1250px){.jp-lower{max-width:95%}}#contextual-help-link-wrap{display:none}.is-placeholder{animation:pulse-light 0.8s ease-in-out infinite;background:#d5d5d5}@keyframes pulse-light{50%{background-color:#eee}}.jp-dash-item .jp-dash-item__content a{font-style:italic}.jp-dash-item .dops-section-header__actions .form-toggle__label{position:relative;top:6px;right:0}.jp-dash-item .dops-section-header__actions .form-toggle__label-content{margin:0}.jp-dash-item__content{flex-grow:1;display:flex;flex-wrap:wrap;align-items:flex-start}.jp-dash-item__card{margin:0}.jp-dash-item__count{margin-top:0;margin-bottom:6px;margin-right:8px;color:#007cba;font-weight:500;font-size:2rem;display:inline-block;border:1px solid #ccd0d4;border-radius:4px;padding:0px 4px;min-width:36px;text-align:center}@media (max-width: 660px){.jp-dash-item__count{font-size:1.4375rem}}.jp-dash-item__count+.jp-dash-item__description{max-width:61%}.jp-dash-item__description{margin:0;font-size:.875rem;max-width:calc( 100% - 18px)}.jp-dash-item .dops-section-header{width:100%}.jp-dash-item .dops-section-header .dops-button{font-style:normal}.jp-dash-item .dops-section-header.is-working .dops-section-header__actions,.jp-dash-item .dops-section-header.is-premium-inactive .dops-section-header__actions{color:#747474}.jp-dash-item .dops-section-header__actions .dops-notice{margin-top:-.0625rem;margin-bottom:-.0625rem}.jp-dash-item__active-label{display:inline-block;padding:.375rem 0 0;color:#888;color:#a2a2a2;font-size:.75rem;font-weight:400;text-transform:uppercase}.jp-dash-item__is-inactive .dops-section-header__label{padding-right:.5rem}.jp-dash-item__is-inactive .dops-section-header__label-text:before{content:'';display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to right, rgba(255,255,255,0), #fff 90%);top:0px;bottom:0px;right:0px;left:auto;width:8px;height:auto}.jp-dash-item__is-inactive .jp-dash-item__description{font-style:italic;color:#6f6f6f}.jp-dash-item__disabled{opacity:.5;position:relative}.jp-dash-item__disabled::before{content:"";width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1}.jp-dash-item__recently-activated .jp-dash-item__description{font-style:italic;box-sizing:border-box}.jp-dash-section-header{display:flex;flex-wrap:wrap;margin:2.5rem 0 .5rem}@media (max-width: 660px){.jp-dash-section-header{margin-bottom:1.5rem}}@media (max-width: 480px){.jp-dash-section-header{display:block}}.jp-dash-section-header__label{flex:1;white-space:nowrap}.jp-dash-section-header__name{display:inline-block;margin-top:0;margin-bottom:0;font-size:1.25rem;font-weight:400;white-space:nowrap}@media (min-width: 481px){.jp-dash-section-header__name{display:inline-block}}@media (max-width: 480px){.jp-dash-section-header__name .jp-dash-section-header__label{display:inline-block}}.jp-dash-section-header__settings{display:inline-block;min-width:2.5rem;text-align:center;color:#888}.jp-dash-section-header__settings:focus{outline:0;box-shadow:none}.jp-dash-section-header__settings:focus .gridicon{color:#0087be}.jp-dash-section-header__settings .gridicon{position:relative;top:1px}.jp-dash-section-header__external-link{align-self:center;font-style:italic}@media (max-width: 660px){.jp-dash-section-header__external-link{margin-top:.25rem}}@media (max-width: 480px){.jp-dash-section-header__external-link{display:block;width:100%}}.jp-dash-section-header__children{align-self:center}@media (max-width: 480px){.jp-dash-section-header__children{width:100%}}.dops-foldable-card.dops-card.devmode-disabled .dops-foldable-card__summary,.dops-foldable-card.dops-card.devmode-disabled .dops-foldable-card__summary_expanded{width:100px}.dops-foldable-card.dops-card.is-expanded .dops-foldable-card__content{position:relative;padding-right:2.9375rem;padding-left:1.5rem}@media (min-width: 661px){.dops-foldable-card__main{max-width:85%}}@media (min-width: 481px){.dops-foldable-card__main{max-width:60%}}@media (max-width: 480px){.dops-foldable-card__main{flex-basis:100%}}@media (max-width: 480px){.dops-foldable-card__header{flex-wrap:wrap}}@media (max-width: 480px){.dops-foldable-card__header-text{font-size:.875rem}}.dops-foldable-card__header-text .dops-button{margin-left:.5rem}@media (max-width: 480px){.dops-foldable-card__subheader{display:none}}@media (max-width: 480px){.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{text-align:left;margin-top:.5rem}}.jp-footer{text-align:center;margin:1rem 0 2rem}@media (max-width: 1040px){.jp-footer{margin:2rem 0 1.5rem}}@media (max-width: 660px){.jp-footer{margin:1.5rem 0 1rem}}.jp-footer__a8c-attr-container{margin-bottom:.5rem}.jp-footer__a8c-attr{width:11.25rem}.jp-footer__a8c-attr path{fill:#888}.jp-footer__links{border-top:1px #e1e1e1 solid;border-bottom:1px #e1e1e1 solid;margin-top:0;margin-bottom:1rem}@media (max-width: 660px){.jp-footer__links{border-bottom:none}}.jp-footer__link-item{display:inline-block;margin-bottom:0}@media (min-width: 661px){.jp-footer__link-item{display:inline-block}}@media (max-width: 660px){.jp-footer__link-item{display:block;border-bottom:1px #e1e1e1 solid}}.jp-footer__link{padding:1rem .5rem;color:#888;display:inline-block;cursor:pointer}.jp-footer__link:visited{color:#888}.jp-footer__link:hover,.jp-footer__link:active{color:#272727}@media (max-width: 660px){.jp-footer__link{display:block;padding:.5rem 0;border-bottom:1px #e1e1e1 solid}.jp-footer__link:last-of-type{border-bottom:none}}.jp-dev-card.jp-dev-card{position:fixed;bottom:10px;right:10px;z-index:100;padding:8px;font-size:12px;text-align:left}.jp-dev-card.jp-dev-card ul{margin-top:6px}.jp-dev-card.jp-dev-card li{margin-top:2px;margin-bottom:0}.jp-dev-card__heading{font-weight:600}.jp-dev-card__subheading{font-size:11px;color:#888}.jp-dev-card__close{float:right;cursor:pointer}.jp-loading-placeholder{margin-top:30vh;margin-bottom:25vh;color:#d5d5d5;font-size:12vw;text-align:center}@media (min-width: 961px){.jp-loading-placeholder{font-size:120px}}.jp-loading-placeholder .dashicons{font-size:inherit;width:auto;height:auto}@media (max-width: 480px){.dops-notice ul{font-size:.75rem}}.jp-masthead{background-color:#fff;text-align:center;box-shadow:0 1px 0 #ccd0d4,0 1px 1px 1px rgba(0,0,0,0.04)}@media (max-width: 48.875rem){.jp-masthead{padding:0 1.5rem}.jetpack-masterbar .jp-masthead{padding-left:4rem}}.jp-masthead__inside-container{display:flex;flex-wrap:wrap;margin:0 auto;width:100%;max-width:65rem;padding-bottom:.375rem}@media (max-width: 1250px){.jp-masthead__inside-container{max-width:95%}}.jp-masthead__logo-container{flex-grow:0;flex-shrink:0;padding:.6875rem 0 0}@media (max-width: 480px){.jp-masthead__logo-container{margin-right:1rem}}.jp-masthead__logo-link{display:inline-block;outline:none;vertical-align:middle}.jp-masthead__logo-link:focus{line-height:0;box-shadow:0 0 0 2px #78dcfa}.jp-masthead__logo-link+code{margin:0 10px;padding:5px 9px;border-radius:2px;background:#e6ecf1;color:#647a88}.jp-masthead__nav{display:flex;flex-wrap:nowrap;flex-grow:1;flex-shrink:0;text-align:right;margin-top:.375rem;padding:.25rem 0}.jp-masthead__nav .dops-button-group{flex-grow:1;align-self:center;font-size:0}@media (max-width: 480px){.jp-masthead__nav{text-align:left}}#sandbox-domain-badge{background:#d54e21;text-transform:uppercase;letter-spacing:0.2em;text-shadow:none;font-size:9px;font-weight:bold;cursor:pointer;color:#ffffff}.jp-module-settings__external-link{font-size:.875rem}.jp-module-settings__read-more{clear:both;margin-top:1rem}@media (min-width: 481px){.jp-module-settings__read-more{margin-top:2rem}}.jp-module-settings__read-more .dops-button.is-compact.is-borderless,.jp-module-settings__read-more .jp-module-settings__more-text{vertical-align:middle}.jp-related-posts-preview{position:relative;margin-top:.5rem;padding:1rem .5rem;width:100%;background:#f6f6f6;box-sizing:border-box;box-shadow:none}.jp-related-posts-settings__preview-label{margin-bottom:.5rem;margin-top:1.5rem;font-size:.875rem;font-weight:600}.jp-related-posts-preview__title{margin:0 0 .6875rem .5rem;font-size:.6875rem;font-weight:600}.jp-related-posts-preview__post-title{font-size:.9375rem;font-weight:400;margin:0}.jp-related-posts-preview__post-context{font-size:.9375rem;opacity:.6;margin:0}.jp-related-posts-preview__item{box-sizing:border-box;display:inline-block;width:33.33%;padding:.5rem;vertical-align:top}@media (max-width: 480px){.jp-related-posts-preview__item{width:100%}}.jp-related-posts-preview__item img{max-width:100%;margin-bottom:.5rem}.jp-support-card{margin-top:1rem;margin-bottom:0}.jp-support-card__description{font-size:.875rem;line-height:1.65}.jp-support-card__description:first-of-type{margin-top:4px}.jp-support-card__description:last-of-type{margin-bottom:0}.jp-support-card__description .dops-button{margin:0 16px 0 0}@media (max-width: 960px){.jp-support-card__description .dops-button{margin:0 16px 8px 0}}.jp-support-card__link{font-style:italic}@media (max-width: 660px){.jp-support-card__link{display:block;width:100%;padding:.625rem 0;border-top:1px rgba(213,213,213,0.5) solid}.jp-support-card__link:first-letter{text-transform:capitalize}.jp-support-card__link:first-of-type{border-top:0}}.jp-support-card__happiness{margin-bottom:0;display:flex;flex-flow:row nowrap}@media (max-width: 660px){.jp-support-card__happiness .jp-support-card__description:first-of-type{margin-bottom:1rem}}.jp-support-card__social{background-color:#fbfbfb;padding:1rem}@media (max-width: 660px){.jp-support-card__social{background:#fff;margin-top:1rem;padding:0 1rem}}.jp-support-card__header{font-weight:400;font-size:1.3125rem;margin:0}.jp-support-card__happiness-contact{flex-shrink:1;flex-grow:1}.jp-form-legend,.jp-form-label-wide{padding:1rem 0 .3125rem;font-size:.875rem;font-weight:600}.jp-form-label{display:block;font-size:.875rem;line-height:1.5;margin-bottom:.3125rem}.jp-form-label-wide{padding:.5rem 0;display:block}.jp-form-label input[type="radio"]+span{font-weight:normal;margin-left:8px}.jp-form-button{margin-top:1rem}@media (min-width: 481px){.jp-form-button{position:absolute;right:1rem;bottom:1rem}}.jp-form-toggle-explanation{font-size:.875rem;word-break:break-word;vertical-align:baseline}.jp-form-toggle-explanation .jp-form-toggle-privacy-info{margin-left:.3125rem;padding-left:.3125rem;border-left:1px solid rgba(162,162,162,0.5)}.jp-form-fieldset{clear:both;position:relative}.jp-form-fieldset .jp-form-legend+.jp-form-setting-explanation{margin-top:0;margin-bottom:.5rem}.jp-form-input-with-prefix{display:inline-flex;width:100%;margin-bottom:1.5rem}.jp-form-input-with-prefix span:first-child{min-width:3.75rem;text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap}@media (max-width: 660px){.jp-form-input-with-prefix span:first-child{display:block;text-align:left}}.jp-form-input-with-prefix input[type="text"]{width:100%}@media (min-width: 661px){.jp-form-input-with-prefix input[type="text"]{border-left:0}}@media (max-width: 660px){.jp-form-input-with-prefix input[type="text"]{border-top:0}}@media (max-width: 660px){.jp-form-input-with-prefix{display:block;box-sizing:border-box}}.jp-form-input-suffix{text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap;flex:1 0 auto;display:flex}button.jp-form-input-suffix{background:initial;border-radius:0}.jp-form-has-child{margin-bottom:1.5rem}.jp-form-has-child:last-child{margin-bottom:0}.jp-form-has-child>.jp-form-fieldset,.jp-form-has-child>.jp-form-setting-explanation{margin-left:2.25rem}.jp-form-has-child>.jp-form-fieldset{margin-bottom:1rem}.jp-form-block-fade{position:absolute;top:0;left:0;z-index:1;background:rgba(255,255,255,0.8);width:100%;height:100%}.jp-form-devmode-message.is-compact{width:100%;padding:0 1rem;position:absolute;top:-24px;z-index:1}.react-tagsinput{border:1px solid #e9eff3;padding:.15625rem}.react-tagsinput--focused{border-color:#007cba}.react-tagsinput-tag{background-color:#00aadc;border-radius:2px;border:1px solid #0087be;color:#fff;display:inline-block;font-size:13px;padding:.125rem .375rem .1875rem .5rem;margin:.15625rem;transition:background-color .2s ease-out}.react-tagsinput-tag:hover{background-color:#26b7e2}.react-tagsinput-remove{cursor:pointer;font-weight:bold;transition:color .2s ease-out}.react-tagsinput-remove:hover{color:#caf3ff}.react-tagsinput-tag a::before{content:" \00d7"}input[type=text].react-tagsinput-input{width:9.375rem;height:1.875rem;margin:0;padding:.3125rem;font-size:13px;vertical-align:middle;border:none;box-shadow:none}input[type=text].react-tagsinput-input::-ms-clear{display:none}.jetpack-pagestyles .vp-notice,.jetpack-pagestyles .woocommerce-message,.jetpack-pagestyles .wc-connect{display:none}.jetpack-pagestyles .vp-notice-jp a{text-decoration:underline}.jetpack-pagestyles .woocommerce-message.dops-notice{display:block;padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice::before{content:''}.jetpack-pagestyles .woocommerce-message.dops-notice .submit{padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice .notice-dismiss::before{display:none}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>div{max-width:620px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>a{margin-right:15px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__moved_text{margin-bottom:5px}.jetpack-pagestyles .dops-notice__action.notice-dismiss{height:100%}.jp-inline-expand.dops-card{box-shadow:none;padding:0}.jp-inline-expand .jp-inline-expand-action{font-size:.875rem;cursor:pointer}.jp-inline-expand .jp-inline-expand-action .gridicon{transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.5s ease-in;vertical-align:text-bottom;display:inline-block;margin:0 5px}.jp-inline-expand.is-expanded .jp-inline-expand-action .gridicon{transform:rotate(180deg)}.jp-inline-expand.is-expanded .jp-inline-expand-content{padding:16px 0 0}.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after{left:8px}.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after{left:0}.dops-section-nav-tab__text .gridicon{vertical-align:middle;margin:0 0 2px 5px}.jp-settings-card__configure-link{display:flex;margin-bottom:0}.jp-form-settings-card{margin-bottom:1.5rem;font-size:.875rem}.jp-form-settings-card+.jp-at-a-glance__stats-card{margin-bottom:1.5rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{color:#444}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{padding-left:1.5rem}}.jp-form-settings-card .dops-foldable-card .form-toggle__switch{float:left;margin-top:.125rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header-text{font-size:.875rem}.jp-form-settings-card .dops-foldable-card.jp-foldable-settings-disable .dops-foldable-card__header{color:#dadada}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__main{max-width:85%}}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{right:.625rem}@media (max-width: 480px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{right:.0625rem}}.jp-form-settings-card .dops-foldable-card .jp-support-info{right:-1.3125rem;top:.4375rem}@media (max-width: 480px){.jp-form-settings-card .dops-foldable-card .jp-support-info{right:-1.875rem}}.jp-form-settings-card .dops-foldable-card .jp-form-legend:first-child,.jp-form-settings-card .dops-foldable-card .jp-form-label-wide:first-child{padding-top:.4375rem}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card__header{padding-top:1.75rem;padding-bottom:1.75rem}}.jp-foldable-settings-standalone .dops-foldable-card__header-text{font-size:.875rem}@media (min-width: 481px){.jp-foldable-settings-standalone .dops-foldable-card__header,.jp-foldable-settings-standalone.dops-card.is-expanded .dops-foldable-card__content{padding-left:1.5rem;padding-right:1.5rem}.jp-foldable-settings-standalone .dops-foldable-card__action{right:.625rem}.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{right:.125rem;top:0}}@media (max-width: 480px){.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{right:-1.9375rem;top:.375rem}}.jp-banner__no-border{border-left:none !important}.jp-banner__no-border .dops-banner__icon-circle{background:none !important;padding:0 0 0 3px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon{width:28px;height:28px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-info{color:#0087be}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-notice{color:#f0b849}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-checkmark-circle{color:#4ab866}.jp-banner__no-border .dops-banner__description{font-size:.875rem;line-height:1.65;color:#537994;margin-top:0}.jp-form-settings-group{position:relative;margin-bottom:0}.jp-form-settings-group p{font-size:.875rem;margin-top:0;margin-bottom:1.5rem}.jp-form-settings-group fieldset p:last-child{margin-bottom:8px}.jp-form-settings-group .form-toggle__label{margin-top:.25rem;margin-bottom:.25rem}.jp-form-settings-group .form-toggle__switch{float:left;margin-top:2px}.jp-form-settings-group .jp-form-setting-explanation{color:#747474;display:block;margin:.3125rem .875rem .3125rem 0;font-size:.8125rem;font-style:italic;font-weight:400;word-break:break-word}.jp-form-settings-group .jp-form-setting-explanation+.dops-card{margin-top:1rem}.jp-form-settings-group .jp-form-setting-explanation.is-warning{color:#d94f4f}.jp-form-settings-group .jp-form-setting-explanation a{text-decoration:underline}.dops-foldable-card .jp-form-settings-group{padding-bottom:16px}.jp-form-settings-group .dops-card{padding-right:3rem}@media (max-width: 480px){.jp-form-settings-group .jp-support-info{right:1rem;top:1.25rem}}.jp-form-settings-group .jp-support-info+p{margin-top:2px}.jp-form-settings-group .jp-support-info+span{padding-top:2px;display:block}.jp-form-settings-group .form-toggle__switch{float:left;margin-top:2px}.jp-form-settings-group>.dops-card:first-child{margin-bottom:0}.dops-foldable-card .jp-form-settings-group .dops-card{padding:0;box-shadow:none}.jp-apps-card{margin-top:4rem;margin-bottom:0}.jp-apps-card__content{margin-bottom:0}.jp-apps-card__content.dops-card{padding:0}.jp-apps-card__content a:not(.dops-button){font-style:italic}.jp-apps-card__dismiss{position:absolute;top:8px;right:8px}.jp-apps-card__dismiss.dops-button.is-compact{padding:8px 8px 2px 8px}.jp-apps-card__top{padding:3.75rem 0 0;background:#ffffff;text-align:center}.jp-apps-card__top img{max-width:26%;padding-top:10px}.jp-apps-card__description{max-width:80%;margin:0 auto;padding:.625rem 1.5rem 1.5rem;line-height:1.65;color:#000;text-align:center}.jp-apps-card__description .dops-button{margin:8px 0}.jp-apps-card__paragraph{font-size:.9375rem}.jp-apps-card__header{margin-top:0;margin-bottom:.3125rem;font-weight:500}.jp-apps-card__promo_subhead{margin-top:0;font-style:italic}.jp-themes-card{margin-bottom:1.25rem}.jp-dialogue-full__container{box-sizing:border-box;position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;background:rgba(246,246,246,0.95);text-align:center;padding:2rem;height:100%}.jp-dialogue{text-align:center;max-width:37.5rem;margin:0 auto 2rem;overflow:hidden}@media (max-width: 660px){.jp-dialogue{text-align:left}}.jp-dialogue p{font-size:.875rem;color:#747474}.jp-dialogue img{max-width:100%}.jp-dialogue p+img{margin:2rem 0 1rem}.jp-dialogue .dops-card{margin-bottom:0}.jp-dialogue .jp-dialogue-card__below{text-align:left}.jp-dialogue-full__dismiss{cursor:pointer;position:absolute;right:-10px;top:-10px;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-dialogue__title{font-weight:300;text-align:center;font-size:1.5rem;margin-bottom:2rem}.jp-dialogue__note,a.jp-dialogue__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-full__svg-jupiter{position:absolute;right:0;top:5rem;opacity:.90}.jp-dialogue-full__svg-stars{position:absolute;left:6.25rem;top:6.25rem;opacity:.90}.jp-dialogue__cta-container{padding:.5rem 0 0}.jp-dialogue__cta-container .dops-button{margin:0 .5rem}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child{padding-left:30px}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child .jp-form-fieldset{margin-bottom:0.4rem}.jp-upgrade-notice__enable-module{margin-bottom:calc(1em + 8px)}.jp-upgrade-notice__enable-module .jp-form-settings-group{margin:0px auto;max-width:400px;text-align:left}.jp-upgrade-notice__enable-module .jp-form-has-child{padding:10px;padding-right:30px}.jp-upgrade-notice__enable-module .jp-support-info{top:.9375rem;right:.9375rem}.jetpack-about__link-back,.jetpack-about__main,.jetpack-about__plugin{background-color:#fff;border:1px solid #e5e5e5}.jetpack-about__main,.jetpack-about__colophon{font-size:14px}.jetpack-about__main p,.jetpack-about__colophon p{font-size:14px}.jetpack-about__link-back{padding:16px 16px 13px;border-bottom:none}.jetpack-about__link-back a{color:#6c7781;font-size:0.75rem}.jetpack-about__link-back a:hover,.jetpack-about__link-back a:active{color:#262a2e}.jetpack-about__link-back a svg{fill:#6c7781;height:24px;margin-right:4px;margin-top:-3px;vertical-align:middle;width:24px}.jetpack-about__main{padding:36px}.jetpack-about__logo{width:265px}@media screen and (max-width: 400px){.jetpack-about__logo{width:100%}}.jetpack-about__content{display:flex}@media screen and (max-width: 782px){.jetpack-about__content{flex-wrap:wrap}}.jetpack-about__text{order:1}.jetpack-about__text p{font-size:1rem;line-height:1.6}.jetpack-about__text p:last-child{margin-bottom:0}.jetpack-about__images{text-align:center;margin-left:48px;order:2}@media screen and (max-width: 782px){.jetpack-about__images{margin-left:0;order:0;text-align:left;width:100%}}.jetpack-about__images .meet-the-team{margin-bottom:0;text-align:center}.jetpack-about__gravatars{display:flex;flex-wrap:wrap;width:320px}@media screen and (max-width: 450px){.jetpack-about__gravatars{max-width:320px;width:100%}}.jetpack-about__gravatars li{margin-bottom:0;width:25%}.jetpack-about__gravatars li img{max-width:80px;vertical-align:top;width:100%;height:100%}.jetpack-about__colophon{margin-bottom:3rem}.jetpack-about__colophon h3{margin-top:2.4375rem}.jetpack-about__services-more{margin-top:1.5em;text-align:center}.jetpack-about__services{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.jetpack-about__plugin{margin-bottom:0}.jetpack-about__plugin .plugin-card-top{padding:20px 20px 15px;position:relative}.jetpack-about__plugin .plugin-card-top .name,.jetpack-about__plugin .plugin-card-top .desc,.jetpack-about__plugin .plugin-card-top .details-link{margin-left:148px}.jetpack-about__plugin .plugin-card-top .name h3{margin-top:0}.jetpack-about__plugin .plugin-card-top .details-link{font-weight:500}.jetpack-about__plugin .plugin-card-bottom{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between}.jetpack-about__plugin .plugin-card-bottom .meta{margin-right:1em}.jetpack-about__plugin .plugin-card-bottom .num-ratings{display:inline-block}.jetpack-about__plugin .plugin-card-bottom .action-buttons{clear:none;float:none;margin:0.5em 0}.jetpack-about__plugin .plugin-card-bottom .action-buttons li:last-child{margin-bottom:0}.mobile-magic-link__button{cursor:pointer}.mobile-magic-link__modal__body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.mobile-magic-link__modal__body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.mobile-magic-link__modal__body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.mobile-magic-link__modal-actions{margin:2rem 0}.mobile-magic-link__modal-actions .mobile-magic-link__modal-cancel{margin-right:1em}.jp-at-a-glance{margin-bottom:3rem}.jp-at-a-glance__stats-card{padding:0}.jp-at-a-glance__stats-empty{text-align:center;margin-bottom:0}.jp-at-a-glance__stats-empty p{font-size:.875rem;color:#747474}.jp-at-a-glance__stats-inactive{padding:1rem}@media (min-width: 661px){.jp-at-a-glance__stats-inactive{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center}}@media (max-width: 660px){.jp-at-a-glance__stats-inactive-icon{display:none}}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-icon{flex-basis:10%}}.jp-at-a-glance__stats-inactive-text{font-size:.875rem;line-height:1.5}@media (max-width: 660px){.jp-at-a-glance__stats-inactive-text{padding:0 0 1rem}}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-text{flex-basis:50%;padding:0 1rem}}.jp-at-a-glance__stats-inactive-button{text-align:left}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-button{flex-basis:40%;text-align:right}}.jp-at-a-glance__stats-chart{padding:1rem;position:relative}.jp-at-a-glance__stats-chart .dops-spinner{position:absolute;top:50%;left:50%}.jp-at-a-glance__stats-bottom{margin:2rem 0 0}@media (max-width: 480px){.jp-at-a-glance__stats-bottom{box-shadow:0 0 0 1px #ccd0d4}}.jp-at-a-glance__stats-summary{text-align:center;border-bottom:1px #ccd0d4 solid}@media (min-width: 661px){.jp-at-a-glance__stats-summary{flex-wrap:nowrap;display:flex;flex-direction:row}}@media (max-width: 660px){.jp-at-a-glance__stats-summary{display:block}}.jp-at-a-glance__stats-summary-today,.jp-at-a-glance__stats-summary-bestday{flex-basis:25%;padding:1rem;box-shadow:0 0 0 1px #ccd0d4}@media (max-width: 660px){.jp-at-a-glance__stats-summary-today{margin-top:-.0625rem}}@media (min-width: 661px){.jp-at-a-glance__stats-summary-bestday{margin:0 .0625rem}}@media (max-width: 660px){.jp-at-a-glance__stats-summary-bestday,.jp-at-a-glance__stats-summary-alltime{margin-top:.0625rem}}.jp-at-a-glance__stats-summary-alltime{flex-basis:50%;padding:1rem;box-shadow:0 0 0 1px #ccd0d4}@media (min-width: 661px){.jp-at-a-glance__stats-summary-alltime{max-width:50%;display:flex;flex-grow:1;flex-shrink:1}}.jp-at-a-glance__stats-alltime-views,.jp-at-a-glance__stats-alltime-comments{flex-basis:50%}.jp-at-a-glance__stats-cta{padding:1rem;background-color:#fbfbfb}@media (min-width: 661px){.jp-at-a-glance__stats-cta{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center}}@media (max-width: 660px){.jp-at-a-glance__stats-cta{display:block}}@media (min-width: 661px){.jp-at-a-glance__stats-cta-description{flex-basis:30%}}.jp-at-a-glance__stat-details{margin:0}.jp-at-a-glance__stat-number{font-size:1.375rem;font-weight:400;margin:.5rem 0}@media (min-width: 661px){.jp-at-a-glance__stats-cta-buttons{text-align:right;flex-basis:70%}}@media (max-width: 660px){.jp-at-a-glance__stats-cta-buttons{text-align:center}.jp-at-a-glance__stats-cta-buttons .dops-button{width:100%;margin-bottom:.25rem}}.jp-at-a-glance__stats-cta-buttons .dops-button{text-align:center;margin:.25rem}.jp-at-a-glance__stats-views{margin-top:0;margin-bottom:0}.jp-at-a-glance__stats-view{display:inline-block;margin-top:0;margin-bottom:0;margin-left:1rem}.jp-at-a-glance__stats-view:focus{outline:0}@media (max-width: 480px){.jp-at-a-glance__stats-view{margin-left:0;margin-right:1rem}}.jp-at-a-glance__stats-view-link,.jp-at-a-glance__stats-view-link:visited{color:#a2a2a2;text-decoration:underline}.jp-at-a-glance__stats-view-link.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:focus.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:visited:visited.is-current,.jp-at-a-glance__stats-view-link:visited:focus.is-current{color:#23282d;text-decoration:none}.jp-at-a-glance__stats-view-link:focus{outline:0;box-shadow:none}.jp-at-a-glance__item-grid{display:flex}@media (max-width: 660px){.jp-at-a-glance__item-grid{display:block}}.jp-at-a-glance__left,.jp-at-a-glance__right{display:flex;min-width:0}@media (min-width: 661px){.jp-at-a-glance__left,.jp-at-a-glance__right{flex-basis:50%;margin-bottom:1rem}}@media (max-width: 660px){.jp-at-a-glance__left,.jp-at-a-glance__right{margin-bottom:.75rem}}.jp-at-a-glance__left>div,.jp-at-a-glance__left .jp-dash-item,.jp-at-a-glance__right>div,.jp-at-a-glance__right .jp-dash-item{min-width:0;flex-grow:1;display:flex;flex-direction:column}.jp-at-a-glance__left>div,.jp-at-a-glance__right>div{flex-basis:100%}.jp-at-a-glance__left .jp-dash-item .dops-card,.jp-at-a-glance__right .jp-dash-item .dops-card{flex-grow:1}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact{flex-grow:0}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{margin-left:0;padding-left:0}@media (max-width: 480px){.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{text-transform:none}}.jp-at-a-glance__left .jp-dash-item__card,.jp-at-a-glance__right .jp-dash-item__card{display:flex}.jp-search-config-aag{width:100%}.jp-at-a-glance__left{display:flex}@media (min-width: 661px){.jp-at-a-glance__left{margin-right:1rem}.jp-at-a-glance__left:last-child{flex-basis:calc( 50% - 0.5rem)}}.dops-chart__tooltip .tip-arrow{display:none}.jp-connection-type .jp-dash-item__card{align-items:flex-start}.jp-connection-settings__info{display:flex}.jp-connection-settings__actions{margin:1em 0 0}.jp-connection-settings__actions a{cursor:pointer}.jp-connection-settings__text{width:70%;margin-left:1rem;word-break:break-word}.jp-connection-settings__info .gridicon{opacity:0.6}.jp-connection-settings__info .gridicon,.jp-connection-settings__info .jp-connection-settings__site-icon{background:#c8d7e1;color:#fff;min-width:4rem}.jp-connection-settings__info .jp-connection-settings__gravatar{display:inline-block;min-width:4rem;background:#a2a2a2;border-radius:50%;margin-bottom:0}.jp-connection-settings__username{font-weight:600}.jp-connection-settings__email{color:#a2a2a2;font-size:.8125rem;font-style:italic;font-weight:400}.jp-connection-settings__modal.dops-modal{max-width:635px}.jp-connection-settings__modal-body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.jp-connection-settings__modal-body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.jp-connection-settings__modal-body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.jp-connection-settings__modal-body p{font-size:.875rem}.jp-connection-settings__modal-body ul{margin:1.5rem 0 2.25rem;color:#537994}.jp-connection-settings__modal-body li{position:relative;display:block;margin:0;padding:1rem .5rem 1rem 2.75rem;border-bottom:1px solid #e1e1e1;text-align:left}.jp-connection-settings__modal-body li:first-of-type{border-top:1px solid #e1e1e1}.jp-connection-settings__modal-body .gridicon{position:absolute;left:1rem;top:1rem;vertical-align:text-bottom;color:#537994}.jp-connection-settings__modal-cancel{margin-right:1em}.jp-connection-settings__modal-more a{color:#0087be;text-decoration:underline}.jp-dash-item__manage-in-wpcom{margin-top:1px;width:100%}.jp-dash-item .dops-banner.dops-banner{width:100%;margin-bottom:0}.jp-landing__plans{margin-bottom:32px}.jp-landing__plans .dops-button{margin-right:10px}.jp-landing__card-header{margin-top:0;font-size:15px;color:#6f6f6f}.jp-landing__plan-features-header-checklist-cta-container{order:30;align-self:center;display:flex;justify-content:flex-end}.jp-landing__plan-features-header-checklist-cta-container .dops-button{margin-right:0}.jp-landing__plan-features-card{display:flex;flex-basis:32%;flex-wrap:nowrap;flex-grow:1;box-sizing:border-box;margin:.5rem;background-color:#fff;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,0.04)}.jp-landing__plan-features-card:last-child{max-width:100%}.is-loading .jp-landing__plan-features-card{width:49.5%}@media (min-width: 661px){.jp-landing__plan-features-card{margin-bottom:1%}}@media (max-width: 660px){.jp-landing__plan-features-card{max-width:100%;margin-bottom:.5rem}}@media (min-width: 481px){.jp-landing__plan-features-card{padding:2rem}}@media (max-width: 480px){.jp-landing__plan-features-card{padding:1rem}}.jp-landing__plan-features-list{list-style:initial;margin-left:1rem}.jp-landing__plan-features-img{width:5.625rem;margin-right:.5rem;line-height:1}@media (min-width: 961px){.jp-landing__plan-features-img{width:7.5rem;margin-right:1.125rem}}.jp-landing__plan-features-icon{display:block;margin-left:-.5rem}@media (min-width: 481px){.jp-landing__plan-features-icon{margin-left:-1rem}}.jp-landing__plan-features-text{flex:1}.jp-landing__plan-features-title{margin:0}.jp-landing__plan-features{display:flex;flex-wrap:wrap;flex-direction:row;align-items:stretch;justify-content:space-between;margin-bottom:2rem;margin-left:-.5rem;margin-right:-.5rem}@media (max-width: 660px){.jp-landing__plan-features{display:block}}.jp-landing__plan-features-title.is-placeholder{height:1.5rem;max-width:50%}.jp-landing__plan-features-text.is-placeholder{height:2.75rem;max-width:75%}.jp-landing__plan-features-link{width:100%}@media (min-width: 661px){.jp-landing__plan-features-link{text-align:center}}.checklist__header{display:flex;flex-direction:row}.checklist__header-main{display:flex;flex:1 1;flex-direction:column;align-items:stretch}.checklist__header-secondary{display:flex;flex:2 1;flex-direction:row;align-items:center;justify-content:flex-end}.checklist__header-progress{display:flex;flex-direction:row;font-size:14px;white-space:nowrap;margin-bottom:5px}.checklist__header-progress-text{display:flex;flex:1 1;margin:0;color:#636d75}.checklist__header-progress-number{display:flex;color:#636d75;padding-left:1em}.checklist__header-summary{font-size:12px;line-height:24px;color:#636d75;cursor:pointer}.checklist__header-action{position:absolute;top:0;right:0;width:48px;height:100%;border-left:1px solid #f6f6f6;cursor:pointer}.checklist__header-action .gridicon{fill:#969ca1;vertical-align:middle;align-items:center;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.checklist.is-expanded .checklist__header-action .gridicon{transform:rotate(180deg)}.accessible-focus .checklist__header-action:focus{box-shadow:inset 0 0 0 2px #6f93ad}.checklist.is-expanded .checklist__header-action .gridicon{transform:rotate(180deg)}.checklist__header .dops-button.is-primary{margin-right:0;background:#00BE28;border-color:#00a523}.checklist__header .dops-button.is-primary:focus{box-shadow:0 0 0 2px #0cff40}@media (max-width: 600px){.checklist__header{display:block}.checklist__header-secondary{display:block;text-align:left;padding-top:15px}}.checklist-header-progress-bar{width:100%;display:inline-block;position:relative;background-color:#ccced0;border-radius:4.5px;height:4px}.checklist-header-progress-bar__progress{display:inline-block;position:absolute;top:0;left:0;height:100%;background-color:#44a234;border-radius:4.5px;transition:width 200ms}.plan-features__content{margin:0 -16px 16px;padding-top:20px}.is-section-plans .plan-features__mobile{display:block}@media (min-width: 752px){.is-section-plans .plan-features__mobile{display:none}}.plan-features__notice{margin-bottom:16px}@media (min-width: 1041px){.plan-features__notice{margin-bottom:32px;margin-top:-19px}}.is-section-plans .plan-features__table{display:table}.plan-features__table{font-size:14px;color:#747474;border-spacing:16px 0;margin-top:-16px;display:table;table-layout:fixed;width:100%;text-align:center}@media (min-width: 661px){.plan-features__table{display:table}}@media (max-width: 660px){.plan-features__table{display:none}}@media (max-width: 1040px){.plan-features__table{border-spacing:0;margin-left:15px;margin-right:15px;width:calc( 100% - 30px)}}.plan-features__row{background:#fff}.plan-features__table-item{border-right:solid 1px #ccd0d4;border-left:solid 1px #ccd0d4;background-color:#fff;position:relative}.plan-features__table-item.is-header{vertical-align:top}.plan-features__table-item.is-personal-plan{border-bottom:solid 2px #f0b849}.plan-features__table-item.is-premium-plan{border-bottom:solid 2px #4ab866}.plan-features__table-item.is-business-plan{border-bottom:solid 2px #855DA6}.plan-features__table-item.is-highlighted{border:1px solid #0087be;background-color:rgba(0,135,190,0.1);position:relative;top:-1px}.plan-features__table-item.is-highlighted.has-partial-border::after{display:none}.plan-features__table-item.is-selected{display:table-cell}.plan-features__table-item.has-partial-border:after{content:'';display:block;height:1px;width:calc( 100% - 24px);border-bottom:1px solid #ccd0d4;position:absolute;bottom:0;margin:0 12px}.plan-features__table-item.has-border-bottom{border-bottom:solid 1px #ccd0d4}.plan-features__table-item.has-border-top{border-top:solid 1px #ccd0d4}.plan-features__table-item.is-placeholder .spinner-line{margin:0;position:absolute;top:-3px;width:100%}.plan-features__table-item.is-bottom-buttons{padding-top:33px;padding-bottom:15px}.plan-features__table-item.is-top-buttons{padding-top:8px;padding-bottom:16px}.plan-features__header{position:relative;padding:15px 15px 0 15px;background-color:#fff}@media (max-width: 960px){.plan-features__header{padding:12px 12px 0 12px}}.plan-features__header-title{font-size:22px;line-height:0.7;font-weight:normal;margin:0}@media (max-width: 960px){.plan-features__header-title{font-size:20px}}.info-popover.plan-features__header-tip-info{position:relative;top:4px;left:3px;margin-top:-10px;margin-bottom:-10px;display:inline-block}.plan-features__description{margin:0;padding:12px 0}.plan-features__item{margin:0 12px;padding:12px 0;font-size:13px;color:#414141;text-align:center}@media (max-width: 960px){.plan-features__item{font-size:12px}}@media (max-width: 1040px){.plan-features__item{margin:0 12px}}.plan-features__item-description{display:inline-block;margin-left:10px;color:#a2a2a2}.plan-features .plan-price{padding-top:15px;padding-bottom:15px}.plan-features .plan-price__yearly{color:#414141}.plan-features .plan-price__yearly abbr{text-underline-position:under}@media (min-width: 661px){.plans-mobile-notice,.plans-mobile-notice.dops-card{display:none}}.plans-mobile-notice .dops-button:first-of-type,.plans-mobile-notice.dops-card .dops-button:first-of-type{margin-right:6px;margin-bottom:6px}.plan-grid-period{margin-bottom:12px;text-align:center}@media (max-width: 660px){.plan-grid-period{display:none}}.plans-mobile-notice.dops-card h2{margin-top:0}.plan-grid-skeletons{display:flex;margin:60px -10px 0}@media (max-width: 1040px){.plan-grid-skeletons{margin-left:-1px;margin-right:-1px}}@media (max-width: 660px){.plan-grid-skeletons{display:none}}.plan-grid-skeletons__plan{flex:1;height:545px;margin:0 10px}@media (max-width: 1040px){.plan-grid-skeletons__plan{margin:0 1px}}.plans-prompt__banner{padding:32px 0;text-align:center}.plans-prompt__heading{font-size:22px;margin-bottom:0}.plans-prompt__intro{font-size:14px;margin-top:0.5em}.plans-prompt__footer{margin:2em 0;text-align:center}.plans-prompt__footer .dops-button .gridicon{padding-left:4px;margin-right:-5px}.dops-search__input[type="search"]{width:100%}.jp-settings-container .jp-no-results{display:none;font-size:.875rem;line-height:1.5}.jp-settings-container .jp-no-results:last-of-type{display:inherit}@media (max-width: 480px){.dops-search.is-expanded-to-container{height:46px}}.dops-card.jp-settings-description{margin:24px 0 8px;padding:0;background:none;box-shadow:none;border:none}.jp-form-settings-group.minileven .jp-form-settings-notice{margin:15px 0}.jp-form-settings-group.minileven.inactive p,.jp-form-settings-group.minileven.inactive .form-toggle__label{color:#a2a2a2;transition:all 0.75s}.jp-form-google-label-unverified .dops-button{margin:0 15px}@media (max-width: 660px){.jp-form-google-label-unverified .dops-button{margin-top:10px;width:40%}}.jp-form-google-label-unverified .jp-form-google-separator{padding:.5rem 0}@media (max-width: 660px){.jp-form-google-label-unverified .jp-form-google-separator{margin:25px 0 0;display:inline-block}}.jp-form-input-with-prefix-bottom-message{top:-1.25rem;position:relative;line-height:2em;margin-top:5px}.jp-form-site-verification-verified{background-color:#fff;color:#00BE28;box-sizing:border-box;margin:0;padding:7px 14px;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;width:100%;display:flex;flex-direction:row;justify-content:left;align-items:center}.jp-form-site-verification-verified .gridicon:first-child{margin-right:5px}@media (min-width: 661px){.jp-form-site-verification-verified{border-left:0}}@media (max-width: 660px){.jp-form-site-verification-verified{border-top:0}}.jp-form-site-verification-edit-button{margin-left:10px;overflow:visible}@media (max-width: 660px){.jp-form-site-verification-edit-button{margin-left:0;margin-right:5px;margin-top:5px}}.jp-form-site-verification-buttons{flex:0 1 20em;display:inline-flex}.jp-form-site-verification-verified-note{font-size:0.7em}.jp-form-google-label-unverified-actions{display:flex;align-content:center}.jp-form-google-label-unverified-actions .dops-button{margin-left:10px;margin-right:10px;padding-left:7px;padding-right:7px}
+@media(max-width: 660px){.jp-hidden-on-mobile{display:none}}.wp-admin.toplevel_page_jetpack{background-color:#f6f6f6;line-height:1.4;height:auto}.jetpack-pagestyles #wpcontent{padding-left:0}.jetpack-pagestyles{font-size:.875rem}.jetpack-pagestyles a{text-decoration:none}.jetpack-pagestyles #dolly{float:none;position:relative;right:0;left:0;top:0;padding:.625rem;text-align:right;background:#fff;font-size:.75rem;font-style:italic;color:#a2a2a2;border-bottom:1px #eee solid}@media(max-width: 660px){.jetpack-pagestyles #dolly{display:none}}.dops-notice__text a{text-decoration:underline}.toplevel_page_jetpack ul#adminmenu a.wp-has-current-submenu:after{border-right-color:#f6f6f6}.jp-lower{margin:0 auto;text-align:left;max-width:65rem;padding:1.5rem}.jp-lower.jp-licensing-screen{max-width:70.5rem}.jp-lower.jp-main-connect-screen,.jp-lower.jp-user-connect-screen{max-width:70.5rem;box-sizing:content-box}@media(max-width: 1250px){.jp-lower{max-width:95%}}#contextual-help-link-wrap{display:none}.is-placeholder{animation:pulse-light .8s ease-in-out infinite;background:#d5d5d5}@keyframes pulse-light{50%{background-color:#eee}}.blur{-moz-filter:blur(5px);-o-filter:blur(5px);-ms-filter:blur(5px);filter:blur(5px)}.jp-dash-item .jp-dash-item__content a{font-style:italic}.jp-dash-item .dops-section-header__actions .form-toggle__label{position:relative;top:6px;right:0}.jp-dash-item .dops-section-header__actions .form-toggle__label-content{margin:0}.jp-dash-item__content{flex-grow:1;display:flex;flex-wrap:wrap;align-items:flex-start}.jp-dash-item__card{margin:0}.jp-dash-item__count{margin-top:0;margin-bottom:6px;margin-right:8px;color:#3582c4;font-weight:500;font-size:2rem;display:inline-block;border:1px solid #c3c4c7;border-radius:4px;padding:0 4px;min-width:36px;text-align:center}@media(max-width: 660px){.jp-dash-item__count{font-size:1.4375rem}}.jp-dash-item__count+.jp-dash-item__description{max-width:61%}.jp-dash-item__count.is-alert{color:#fff;background:#d94f4f;border-color:#d94f4f}.jp-dash-item__title{max-width:calc( 100% - 18px )}.jp-dash-item__title.jp-dash-item__title_fullwidth{flex-basis:100%}.jp-dash-item__title.jp-dash-item__title_top{margin-top:0}.jp-dash-item__description{margin:0;font-size:.875rem;max-width:calc( 100% - 18px )}.jp-dash-item__description.jp-dash-item__connect{margin-top:20px}.jp-dash-item .dops-section-header{width:100%}.jp-dash-item .dops-section-header .dops-button{font-style:normal}.jp-dash-item .dops-section-header.is-working .dops-section-header__actions,.jp-dash-item .dops-section-header.is-premium-inactive .dops-section-header__actions{color:#747474}.jp-dash-item .dops-section-header__actions .dops-notice{margin-top:-0.0625rem;margin-bottom:-0.0625rem}.jp-dash-item__active-label{display:inline-block;padding:.375rem 0 0;color:#888;color:#a2a2a2;font-size:.75rem;font-weight:400;text-transform:uppercase}.jp-dash-item__is-inactive .dops-section-header__label{padding-right:.5rem}.jp-dash-item__is-inactive .dops-section-header__label-text:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to right, rgba(255, 255, 255, 0), white 90%);top:0px;bottom:0px;right:0px;left:auto;width:8px;height:auto}.jp-dash-item__is-inactive .jp-dash-item__description{font-style:italic;color:#6f6f6f}.jp-dash-item__disabled{opacity:.5;position:relative}.jp-dash-item__disabled::before{content:"";width:100%;height:100%;display:block;position:absolute;top:0;left:0;z-index:1}.jp-dash-item__recently-activated .jp-dash-item__description{font-style:italic;box-sizing:border-box}.jp-dash-section-header{display:flex;flex-wrap:wrap;margin:2.5rem 0 .5rem}@media(max-width: 660px){.jp-dash-section-header{margin-bottom:1.5rem}}@media(max-width: 480px){.jp-dash-section-header{display:block}}.jp-dash-section-header__label{flex:1;white-space:nowrap}.jp-dash-section-header__name{display:inline-block;margin-top:0;margin-bottom:0;font-size:1.25rem;font-weight:400;white-space:nowrap}@media(min-width: 481px){.jp-dash-section-header__name{display:inline-block}}@media(max-width: 480px){.jp-dash-section-header__name .jp-dash-section-header__label{display:inline-block}}.jp-dash-section-header__settings{display:inline-block;min-width:2.5rem;text-align:center;color:#888}.jp-dash-section-header__settings:focus{outline:0;box-shadow:none}.jp-dash-section-header__settings:focus .gridicon{color:#0087be}.jp-dash-section-header__settings .gridicon{position:relative;top:1px}.jp-dash-section-header__external-link{align-self:center;font-style:italic}@media(max-width: 660px){.jp-dash-section-header__external-link{margin-top:.25rem}}@media(max-width: 480px){.jp-dash-section-header__external-link{display:block;width:100%}}.jp-dash-section-header__children{align-self:center}@media(max-width: 480px){.jp-dash-section-header__children{width:100%}}.jp-form-settings-group.foldable-wrapper .dops-foldable-card.dops-card{padding-right:0;margin-bottom:0;box-shadow:none}.dops-foldable-card.dops-card.offlinemode-disabled .dops-foldable-card__summary,.dops-foldable-card.dops-card.offlinemode-disabled .dops-foldable-card__summary_expanded{width:100px}.dops-foldable-card.dops-card.is-expanded .dops-foldable-card__content{position:relative;padding-right:2.9375rem;padding-left:1.5rem}@media(min-width: 661px){.dops-foldable-card__main{max-width:85%}}@media(min-width: 481px){.dops-foldable-card__main{max-width:60%}}@media(max-width: 480px){.dops-foldable-card__main{flex-basis:100%}}@media(max-width: 480px){.dops-foldable-card__header{flex-wrap:wrap}}@media(max-width: 480px){.dops-foldable-card__header-text{font-size:.875rem}}.dops-foldable-card__header-text .dops-button{margin-left:.5rem}@media(max-width: 480px){.dops-foldable-card__subheader{display:none}}@media(max-width: 480px){.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{text-align:left;margin-top:.5rem}}.jp-footer{text-align:center;margin:1rem 0 2rem}@media(max-width: 1040px){.jp-footer{margin:2rem 0 1.5rem}}@media(max-width: 660px){.jp-footer{margin:1.5rem 0 1rem}}.jp-footer__rna-footer{max-width:65rem;padding:1.5rem;margin:0 auto}.jp-footer__a8c-attr-container{margin-bottom:.5rem}.jp-footer__a8c-attr{width:11.25rem}.jp-footer__a8c-attr path{fill:#888}.jp-footer__links{border-top:1px #e1e1e1 solid;border-bottom:1px #e1e1e1 solid;margin-top:0;margin-bottom:1rem}@media(max-width: 660px){.jp-footer__links{border-bottom:none}}.jp-footer__link-item{display:inline-block;margin-bottom:0}@media(min-width: 661px){.jp-footer__link-item{display:inline-block}}@media(max-width: 660px){.jp-footer__link-item{display:block;border-bottom:1px #e1e1e1 solid}}.jp-footer__link{padding:1rem .5rem;color:#888;display:inline-block;cursor:pointer}.jp-footer__link:visited{color:#888}.jp-footer__link:hover,.jp-footer__link:active{color:#272727}@media(max-width: 660px){.jp-footer__link{display:block;padding:.5rem 0;border-bottom:1px #e1e1e1 solid}.jp-footer__link:last-of-type{border-bottom:none}}.jp-dev-card.jp-dev-card{position:fixed;bottom:10px;right:10px;z-index:100;padding:8px;font-size:12px;text-align:left}.jp-dev-card.jp-dev-card ul{margin-top:6px}.jp-dev-card.jp-dev-card li{margin-top:2px;margin-bottom:0}.jp-dev-card li.jp-dev-card__deprecated-plans-list-header{margin-top:8px;margin-bottom:8px;text-align:center;font-style:italic}.jp-dev-card__heading{font-weight:600}.jp-dev-card__subheading{font-size:11px;color:#888}.jp-dev-card__close{float:right;cursor:pointer}.jp-loading-placeholder{margin-top:30vh;margin-bottom:25vh;color:#d5d5d5;font-size:12vw;text-align:center}@media(min-width: 961px){.jp-loading-placeholder{font-size:120px}}.jp-loading-placeholder .dashicons{font-size:inherit;width:auto;height:auto}@media(max-width: 480px){.dops-notice ul{font-size:.75rem}}.jp-license-activation-notice__external-link svg.gridicons-external{margin-left:.25rem}.jp-unlinked-notice .jp-connection-banner__icon{align-self:center;margin-right:1rem;line-height:0}.jp-masthead{background-color:#fff;text-align:center;box-shadow:0 1px 0 #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04)}@media(max-width: 48.875rem){.jp-masthead{padding:0 1.5rem}.jetpack-masterbar .jp-masthead{padding-left:4rem}}.jp-masthead__inside-container{display:flex;flex-wrap:wrap;margin:0 auto;width:100%;max-width:65rem;padding-bottom:.375rem}@media(max-width: 1250px){.jp-masthead__inside-container{max-width:95%}}.jp-masthead__logo-container{flex-grow:0;flex-shrink:0;padding:.6875rem 0 0}@media(max-width: 480px){.jp-masthead__logo-container{margin-right:1rem}}.jp-masthead__logo-link{display:inline-block;outline:none;vertical-align:middle}.jp-masthead__logo-link:focus{line-height:0;box-shadow:0 0 0 2px #78dcfa}.jp-masthead__logo-link+code{margin:0 10px;padding:5px 9px;border-radius:2px;background:#e6ecf1;color:#647a88}.jp-masthead__nav{display:flex;flex-wrap:nowrap;flex-grow:1;flex-shrink:0;text-align:right;margin-top:.375rem;padding:.25rem 0}.jp-masthead__nav .dops-button-group{flex-grow:1;align-self:center;font-size:0}@media(max-width: 480px){.jp-masthead__nav{text-align:left}}#sandbox-domain-badge{background:#d63638;text-transform:uppercase;letter-spacing:.2em;text-shadow:none;font-size:9px;font-weight:bold;cursor:pointer;color:#fff}.jp-module-settings__external-link{font-size:.875rem}.jp-module-settings__read-more{clear:both;margin-top:1rem}@media(min-width: 481px){.jp-module-settings__read-more{margin-top:2rem}}.jp-module-settings__read-more .dops-button.is-compact.is-borderless,.jp-module-settings__read-more .jp-module-settings__more-text{vertical-align:middle}.jp-related-posts-preview{position:relative;margin-top:.5rem;padding:1rem .5rem;width:100%;background:#f6f6f6;box-sizing:border-box;box-shadow:none}.jp-related-posts-settings__preview-label{margin-bottom:.5rem;margin-top:1.5rem;font-size:.875rem;font-weight:600}.jp-related-posts-preview__title{margin:0 0 .6875rem .5rem;font-size:.6875rem;font-weight:600}.jp-related-posts-preview__post-title{font-size:.9375rem;font-weight:400;margin:0}.jp-related-posts-preview__post-context{font-size:.9375rem;opacity:.6;margin:0}.jp-related-posts-preview__item{box-sizing:border-box;display:inline-block;width:33.33%;padding:.5rem;vertical-align:top}@media(max-width: 480px){.jp-related-posts-preview__item{width:100%}}.jp-related-posts-preview__item img{max-width:100%;margin-bottom:.5rem}.jp-support-card{margin-top:1rem;margin-bottom:0}.jp-support-card__description{font-size:.875rem;line-height:1.65}.jp-support-card__description:first-of-type{margin-top:4px}.jp-support-card__description:last-of-type{margin-bottom:0}.jp-support-card__description .dops-button{margin:0 16px 0 0}@media(max-width: 960px){.jp-support-card__description .dops-button{margin:0 16px 8px 0}}.jp-support-card__link{font-style:italic}@media(max-width: 660px){.jp-support-card__link{display:block;width:100%;padding:.625rem 0;border-top:1px rgba(213,213,213,.5) solid}.jp-support-card__link:first-letter{text-transform:capitalize}.jp-support-card__link:first-of-type{border-top:0}}.jp-support-card__happiness{margin-bottom:0;display:flex;flex-flow:row nowrap}@media(max-width: 660px){.jp-support-card__happiness .jp-support-card__description:first-of-type{margin-bottom:1rem}}.jp-support-card__social{background-color:#fbfbfb;padding:1rem}@media(max-width: 660px){.jp-support-card__social{background:#fff;margin-top:1rem;padding:0 1rem}}.jp-support-card__header{font-weight:400;font-size:1.25rem;margin:0}.jp-support-card__happiness-contact{flex-shrink:1;flex-grow:1}.jp-form-legend,.jp-form-label-wide{padding:1rem 0 .3125rem;font-size:.875rem;font-weight:600}.jp-form-label{display:block;font-size:.875rem;line-height:1.5;margin-bottom:.3125rem}.jp-form-label-wide{padding:.5rem 0;display:block}.jp-form-label input[type=radio]+span{font-weight:normal;margin-left:8px}.jp-form-button{margin-top:1rem}@media(min-width: 481px){.jp-form-button{position:absolute;right:1rem;bottom:1rem}}.jp-form-toggle-explanation{font-size:.875rem;word-break:break-word;vertical-align:baseline}.jp-form-toggle-explanation .jp-form-toggle-privacy-info{margin-left:.3125rem;padding-left:.3125rem;border-left:1px solid rgba(162,162,162,.5)}.jp-form-fieldset{clear:both;position:relative}.jp-form-fieldset .jp-form-legend+.jp-form-setting-explanation{margin-top:0;margin-bottom:.5rem}.jp-form-input-with-prefix{display:inline-flex;width:100%;margin-bottom:1.5rem}.jp-form-input-with-prefix span:first-child{min-width:3.75rem;text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap}@media(max-width: 660px){.jp-form-input-with-prefix span:first-child{display:block;text-align:left}}.jp-form-input-with-prefix input[type=text]{width:100%}@media(min-width: 661px){.jp-form-input-with-prefix input[type=text]{border-left:0}}@media(max-width: 660px){.jp-form-input-with-prefix input[type=text]{border-top:0}}@media(max-width: 660px){.jp-form-input-with-prefix{display:block;box-sizing:border-box}}.jp-form-input-suffix{text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap;flex:1 0 auto;display:flex}button.jp-form-input-suffix{background:initial;border-radius:0}.jp-form-has-child{margin-bottom:1.5rem}.jp-form-has-child:last-child{margin-bottom:0}.jp-form-has-child>.jp-form-fieldset,.jp-form-has-child>.jp-form-setting-explanation{margin-left:2.25rem}.jp-form-has-child>.jp-form-fieldset{margin-bottom:1rem}.jp-form-block-fade{position:absolute;top:0;left:0;z-index:1;background:rgba(255,255,255,.8);width:100%;height:100%}.jp-form-offlinemode-message.is-compact{width:100%;padding:0 1rem;position:absolute;top:-24px;z-index:1}.jp-form-textarea-wide{width:100%}.react-tagsinput{border:1px solid #e9eff3;padding:.15625rem}.react-tagsinput--focused{border-color:#3582c4}.react-tagsinput-tag{background-color:#00aadc;border-radius:2px;border:1px solid #0087be;color:#fff;display:inline-block;font-size:13px;padding:.125rem .375rem .1875rem .5rem;margin:.15625rem;transition:background-color .2s ease-out}.react-tagsinput-tag:hover{background-color:#26b7e2}.react-tagsinput-remove{cursor:pointer;font-weight:bold;transition:color .2s ease-out}.react-tagsinput-remove:hover{color:#caf3ff}.react-tagsinput-tag a::before{content:" ×"}input[type=text].react-tagsinput-input{width:9.375rem;height:1.875rem;margin:0;padding:.3125rem;font-size:13px;vertical-align:middle;border:none;box-shadow:none}input[type=text].react-tagsinput-input::-ms-clear{display:none}.jetpack-pagestyles .vp-notice,.jetpack-pagestyles .woocommerce-message,.jetpack-pagestyles .wc-connect{display:none}.jetpack-pagestyles .vp-notice-jp a{text-decoration:underline}.jetpack-pagestyles .woocommerce-message.dops-notice{display:block;padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice::before{content:""}.jetpack-pagestyles .woocommerce-message.dops-notice .submit{padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice .notice-dismiss::before{display:none}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>div{max-width:620px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>a{margin-right:15px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__moved_text{margin-bottom:5px}.jetpack-pagestyles .dops-notice__action.notice-dismiss{height:100%}.jp-inline-expand.dops-card{box-shadow:none;padding:0}.jp-inline-expand .jp-inline-expand-action{font-size:.875rem;cursor:pointer}.jp-inline-expand .jp-inline-expand-action .gridicon{transition:transform .15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color .5s ease-in;vertical-align:text-bottom;display:inline-block;margin:0 5px}.jp-inline-expand.is-expanded .jp-inline-expand-action .gridicon{transform:rotate(180deg)}.jp-inline-expand.is-expanded .jp-inline-expand-content{padding:16px 0 0}.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after{left:8px}.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after{left:0}.dops-section-nav-tab__text .gridicon{vertical-align:middle;margin:0 0 2px 5px}.jp-settings-card__configure-link{display:flex;margin-bottom:0}.jp-form-settings-card{margin-bottom:1.5rem;font-size:.875rem}.jp-form-settings-card+.jp-at-a-glance__stats-card{margin-bottom:1.5rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{color:#444}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{padding-left:1.5rem}}.jp-form-settings-card .dops-foldable-card .form-toggle__switch{float:left;margin-top:.125rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header-text{font-size:.875rem}.jp-form-settings-card .dops-foldable-card.jp-foldable-settings-disable .dops-foldable-card__header{color:#dadada}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__main{max-width:85%}}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{right:.625rem}@media(max-width: 480px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{right:.0625rem}}.jp-form-settings-card .dops-foldable-card .jp-support-info{right:-1.3125rem;top:.4375rem}@media(max-width: 480px){.jp-form-settings-card .dops-foldable-card .jp-support-info{right:-1.875rem}}.jp-form-settings-card .dops-foldable-card .jp-form-legend:first-child,.jp-form-settings-card .dops-foldable-card .jp-form-label-wide:first-child{padding-top:.4375rem}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card__header{padding-top:1.75rem;padding-bottom:1.75rem}}.jp-foldable-settings-standalone .dops-foldable-card__header-text{font-size:.875rem}@media(min-width: 481px){.jp-foldable-settings-standalone .dops-foldable-card__header,.jp-foldable-settings-standalone.dops-card.is-expanded .dops-foldable-card__content{padding-left:1.5rem;padding-right:1.5rem}.jp-foldable-settings-standalone .dops-foldable-card__action{right:.625rem}.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{right:.125rem;top:0}}@media(max-width: 480px){.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{right:-1.9375rem;top:.375rem}}.jp-banner__no-border{border-left:none !important}.jp-banner__no-border .dops-banner__icon-circle{background:none !important;padding:0 0 0 3px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon{width:28px;height:28px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-info{color:#0087be}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-notice{color:#f0b849}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-checkmark-circle{color:#4ab866}.jp-banner__no-border .dops-banner__description{font-size:.875rem;line-height:1.65;color:#537994;margin-top:0}.jp-form-settings-group{position:relative;margin-bottom:0}.jp-form-settings-group p{font-size:.875rem;margin-top:0;margin-bottom:1.5rem}.jp-form-settings-group fieldset p:last-child{margin-bottom:8px}.jp-form-settings-group .form-toggle__label{margin-top:.25rem;margin-bottom:.25rem}.jp-form-settings-group .form-toggle__switch{float:left;margin-top:2px}.jp-form-settings-group .jp-form-setting-explanation{color:#747474;display:block;margin:.3125rem .875rem .3125rem 0;font-size:.875rem;font-style:italic;font-weight:400;word-break:break-word}.jp-form-settings-group .jp-form-setting-explanation+.dops-card{margin-top:1rem}.jp-form-settings-group .jp-form-setting-explanation.is-warning{color:#d94f4f}.jp-form-settings-group .jp-form-setting-explanation a{text-decoration:underline}.dops-foldable-card .jp-form-settings-group{padding-bottom:16px}.jp-form-settings-group .dops-card{padding-right:3rem}@media(max-width: 480px){.jp-form-settings-group .jp-support-info{right:1rem;top:1.25rem}}.jp-form-settings-group .jp-support-info+p{margin-top:2px}.jp-form-settings-group .jp-support-info+span{padding-top:2px;display:block}.jp-form-settings-group .form-toggle__switch{float:left;margin-top:2px}.jp-form-settings-group>.dops-card:first-child{margin-bottom:0}.dops-foldable-card .jp-form-settings-group .dops-card{padding:0;box-shadow:none}.jp-form-settings-group.foldable-wrapper>.dops-card{padding:0}.jp-apps-card{margin-top:4rem;margin-bottom:0}.jp-apps-card__content{margin-bottom:0}.jp-apps-card__content.dops-card{padding:0}.jp-apps-card__content a:not(.dops-button){font-style:italic}.jp-apps-card__dismiss{position:absolute;top:8px;right:8px}.jp-apps-card__dismiss.dops-button.is-compact{padding:8px 8px 2px 8px}.jp-apps-card__top{padding:3.75rem 0 0;background:#fff;text-align:center}.jp-apps-card__top img{max-width:26%;padding-top:10px}.jp-apps-card__description{max-width:80%;margin:0 auto;padding:.625rem 1.5rem 1.5rem;line-height:1.65;color:#000;text-align:center}.jp-apps-card__description .dops-button{margin:8px 0}.jp-apps-card__paragraph{font-size:1rem}.jp-apps-card__header{margin-top:0;margin-bottom:.3125rem;font-size:1.25rem;font-weight:500}.jp-apps-card__promo_subhead{margin-top:0;font-style:italic}.jp-apps-card__apps-badges{display:flex;flex-direction:row;justify-content:center;align-items:center}@media(max-width: 480px){.jp-apps-card__apps-badges{flex-direction:column}.jp-apps-card__apps-badges .apps-badge:first-child{margin-right:0}.jp-apps-card__apps-badges .apps-badge:last-child{margin-top:1rem}}.jp-themes-card{margin-bottom:1.25rem}.jp-dialogue-full__container{box-sizing:border-box;position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;background:rgba(246,246,246,.95);text-align:center;padding:2rem;height:100%}.jp-dialogue{text-align:center;max-width:37.5rem;margin:0 auto 2rem;overflow:hidden}@media(max-width: 660px){.jp-dialogue{text-align:left}}.jp-dialogue p{font-size:.875rem;color:#747474}.jp-dialogue img{max-width:100%}.jp-dialogue p+img{margin:2rem 0 1rem}.jp-dialogue .dops-card{margin-bottom:0}.jp-dialogue .jp-dialogue-card__below{text-align:left}.jp-dialogue-full__dismiss{cursor:pointer;position:absolute;right:-10px;top:-10px;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-dialogue__title{font-weight:300;text-align:center;font-size:1.5rem;margin-bottom:2rem}.jp-dialogue__note,a.jp-dialogue__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-full__svg-jupiter{position:absolute;right:0;top:5rem;opacity:.9}.jp-dialogue-full__svg-stars{position:absolute;left:6.25rem;top:6.25rem;opacity:.9}.jp-dialogue__cta-container{padding:.5rem 0 0}.jp-dialogue__cta-container .dops-button{margin:0 .5rem}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child{padding-left:30px}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child .jp-form-fieldset{margin-bottom:.4rem}.jp-upgrade-notice__enable-module{margin-bottom:calc(1em + 8px)}.jp-upgrade-notice__enable-module .jp-form-settings-group{margin:0px auto;max-width:400px;text-align:left}.jp-upgrade-notice__enable-module .jp-form-has-child{padding:10px;padding-right:30px}.jp-upgrade-notice__enable-module .jp-support-info{top:.9375rem;right:.9375rem}.jp-dialogue-modern-full__container{box-sizing:border-box;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:rgba(246,246,246,.95);padding:1rem 0 0 0;height:100%;overflow:auto}@media(min-width: 961px){.jp-dialogue-modern-full__container{padding:2rem;left:160px}}body.jp-dialogue-modern-showing{overflow:hidden}.jp-dialogue-modern{max-width:18.75rem;margin:2rem auto;overflow:hidden;position:relative;background-color:#fff;box-shadow:0 5px 24px 0 rgba(0,0,0,.13)}.jp-dialogue-modern p{font-size:1rem;color:#000;text-align:left}.jp-dialogue-modern img{text-align:center;max-width:100%}.jp-dialogue-modern li{text-align:left;list-style:disc outside none;margin:1rem;font-size:1rem;color:#000}.jp-dialogue-modern p+img{margin:2rem 0 1rem}.jp-dialogue-modern .dops-card{margin-bottom:0}.jp-dialogue-modern .jp-dialogue-modern-card__below{text-align:left}.jp-dialogue-modern figure{margin:0;margin-bottom:12px}.jp-dialogue-modern figure figcaption{text-align:center}.jp-dialogue-modern a :not(.wp-block-button__link){text-decoration:underline}.jp-dialogue-modern-full__dismiss{cursor:pointer;position:absolute;right:-16px;top:-16px;fill:#2c3338;padding:1rem;height:2rem;width:2rem}.jp-dialogue-modern.has-featured-image .jp-dialogue-modern-full__dismiss{fill:#dcdcde}h1.jp-dialogue-modern__title{font-weight:600;text-align:left;font-size:1.5rem;margin:0 0 2rem 0}.jp-dialogue-modern__content{background:#fff;padding:32px 32px}.jp-dialogue-modern__cta-container{text-align:center;line-height:200%;padding:.5rem 0 0}.jp-dialogue-modern__cta-container .dops-button{margin:0 .5rem}.jp-dialogue-modern__note,a.jp-dialogue-modern__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-modern-full__svg-jupiter{position:absolute;right:0;top:5rem;opacity:.9}.jp-dialogue-modern-full__svg-stars{position:absolute;left:6.25rem;top:6.25rem;opacity:.9}.jetpack-about__link-back,.jetpack-about__main,.jetpack-about__plugin{background-color:#fff;border:1px solid #dcdcde}.jetpack-about__main,.jetpack-about__colophon{font-size:14px}.jetpack-about__main p,.jetpack-about__colophon p{font-size:14px}.jetpack-about__link-back{padding:16px 16px 13px;border-bottom:none}.jetpack-about__link-back a{color:#787c82;font-size:.75rem}.jetpack-about__link-back a:hover,.jetpack-about__link-back a:active{color:#2f3032}.jetpack-about__link-back a svg{fill:#787c82;height:24px;margin-right:4px;margin-top:-3px;vertical-align:middle;width:24px}.jetpack-about__main{padding:36px}.jetpack-about__logo{width:265px}@media screen and (max-width: 400px){.jetpack-about__logo{width:100%}}.jetpack-about__content{display:flex}@media screen and (max-width: 782px){.jetpack-about__content{flex-wrap:wrap}}.jetpack-about__text{order:1}.jetpack-about__text p{font-size:1rem;line-height:1.6}.jetpack-about__text p:last-child{margin-bottom:0}.jetpack-about__images{text-align:center;margin-left:48px;order:2}@media screen and (max-width: 782px){.jetpack-about__images{margin-left:0;order:0;text-align:left;width:100%}}.jetpack-about__images .meet-the-team{margin-bottom:0;text-align:center}.jetpack-about__gravatars{display:flex;flex-wrap:wrap;width:320px}@media screen and (max-width: 450px){.jetpack-about__gravatars{max-width:320px;width:100%}}.jetpack-about__gravatars li{margin-bottom:0;width:25%}.jetpack-about__gravatars li img{max-width:80px;vertical-align:top;width:100%;height:100%}.jetpack-about__colophon{margin-bottom:3rem}.jetpack-about__colophon h3{margin-top:2.4375rem}.jetpack-about__services-more{margin-top:1.5em;text-align:center}.jetpack-about__services{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.jetpack-about__plugin{margin-bottom:0}.jetpack-about__plugin .plugin-card-top{padding:20px 20px 15px;position:relative}.jetpack-about__plugin .plugin-card-top .name,.jetpack-about__plugin .plugin-card-top .desc,.jetpack-about__plugin .plugin-card-top .details-link{margin-left:148px}.jetpack-about__plugin .plugin-card-top .name h3{margin-top:0}.jetpack-about__plugin .plugin-card-top .details-link{font-weight:500}.jetpack-about__plugin .plugin-card-bottom{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between}.jetpack-about__plugin .plugin-card-bottom .meta{margin-right:1em}.jetpack-about__plugin .plugin-card-bottom .num-ratings{display:inline-block}.jetpack-about__plugin .plugin-card-bottom .action-buttons{clear:none;float:none;margin:.5em 0}.jetpack-about__plugin .plugin-card-bottom .action-buttons li:last-child{margin-bottom:0}.mobile-magic-link__button{cursor:pointer}.mobile-magic-link__modal__body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.mobile-magic-link__modal__body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.mobile-magic-link__modal__body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.mobile-magic-link__modal-actions{margin:2rem 0}.mobile-magic-link__modal-actions .mobile-magic-link__modal-cancel{margin-right:1em}.jp-at-a-glance{margin-bottom:3rem}.jp-at-a-glance__stats-card{padding:0}.jp-at-a-glance__stats-empty{text-align:center;margin-bottom:0}.jp-at-a-glance__stats-empty p{font-size:.875rem;color:#747474}.jp-at-a-glance__stats-inactive{padding:1rem}@media(min-width: 661px){.jp-at-a-glance__stats-inactive{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center}}@media(max-width: 660px){.jp-at-a-glance__stats-inactive-icon{display:none}}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-icon{flex-basis:10%}}.jp-at-a-glance__stats-inactive-text{font-size:.875rem;line-height:1.5}@media(max-width: 660px){.jp-at-a-glance__stats-inactive-text{padding:0 0 1rem}}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-text{flex-basis:50%;padding:0 1rem}}.jp-at-a-glance__stats-inactive-button{text-align:left}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-button{flex-basis:40%;text-align:right}}.jp-at-a-glance__stats-chart{padding:1rem;position:relative}.jp-at-a-glance__stats-chart .components-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.jp-at-a-glance__stats-bottom{margin:2rem 0 0}@media(max-width: 480px){.jp-at-a-glance__stats-bottom{box-shadow:0 0 0 1px #c3c4c7}}.jp-at-a-glance__stats-summary{text-align:center;border-bottom:1px #c3c4c7 solid}@media(min-width: 661px){.jp-at-a-glance__stats-summary{flex-wrap:nowrap;display:flex;flex-direction:row}}@media(max-width: 660px){.jp-at-a-glance__stats-summary{display:block}}.jp-at-a-glance__stats-summary-today,.jp-at-a-glance__stats-summary-bestday{flex-basis:25%;padding:1rem;box-shadow:0 0 0 1px #c3c4c7}@media(max-width: 660px){.jp-at-a-glance__stats-summary-today{margin-top:-0.0625rem}}@media(min-width: 661px){.jp-at-a-glance__stats-summary-bestday{margin:0 .0625rem}}@media(max-width: 660px){.jp-at-a-glance__stats-summary-bestday,.jp-at-a-glance__stats-summary-alltime{margin-top:.0625rem}}.jp-at-a-glance__stats-summary-alltime{flex-basis:50%;padding:1rem;box-shadow:0 0 0 1px #c3c4c7}@media(min-width: 661px){.jp-at-a-glance__stats-summary-alltime{max-width:50%;display:flex;flex-grow:1;flex-shrink:1}}.jp-at-a-glance__stats-alltime-views,.jp-at-a-glance__stats-alltime-comments{flex-basis:50%}.jp-at-a-glance__stats-cta{padding:1rem;background-color:#fbfbfb}@media(min-width: 661px){.jp-at-a-glance__stats-cta{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center}}@media(max-width: 660px){.jp-at-a-glance__stats-cta{display:block}}@media(min-width: 661px){.jp-at-a-glance__stats-cta-description{flex-basis:30%}}.jp-at-a-glance__stat-details{margin:0;font-size:.875rem}.jp-at-a-glance__stat-number{font-size:1.5rem;font-weight:400;margin:.5rem 0}.jp-at-a-glance__stats-ctas{display:flex;flex-direction:row;align-items:center;justify-content:flex-end}@media(min-width: 661px){.jp-at-a-glance__stats-ctas{text-align:right;flex-basis:70%}}@media(max-width: 660px){.jp-at-a-glance__stats-ctas{text-align:center;flex-direction:column}.jp-at-a-glance__stats-ctas .dops-button{width:100%;margin-bottom:.25rem}}.jp-at-a-glance__stats-ctas .dops-button{text-align:center;margin:.25rem;margin-right:.5rem}.jp-at-a-glance__stats-views{margin-top:0;margin-bottom:0}.jp-at-a-glance__stats-view{display:inline-block;margin-top:0;margin-bottom:0;margin-left:1rem}.jp-at-a-glance__stats-view:focus{outline:0}@media(max-width: 480px){.jp-at-a-glance__stats-view{margin-left:0;margin-right:1rem}}.jp-at-a-glance__stats-view-link,.jp-at-a-glance__stats-view-link:visited{color:#a2a2a2;text-decoration:underline}.jp-at-a-glance__stats-view-link.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:focus.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:visited:visited.is-current,.jp-at-a-glance__stats-view-link:visited:focus.is-current{color:#1d2327;text-decoration:none}.jp-at-a-glance__stats-view-link:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}.jp-at-a-glance__item-grid{display:flex}@media(max-width: 660px){.jp-at-a-glance__item-grid{display:block}}.jp-at-a-glance__left,.jp-at-a-glance__right{display:flex;min-width:0}@media(min-width: 661px){.jp-at-a-glance__left,.jp-at-a-glance__right{flex-basis:50%;margin-bottom:1rem}}@media(max-width: 660px){.jp-at-a-glance__left,.jp-at-a-glance__right{margin-bottom:.75rem}}.jp-at-a-glance__left>div,.jp-at-a-glance__left .jp-dash-item,.jp-at-a-glance__right>div,.jp-at-a-glance__right .jp-dash-item{min-width:0;flex-grow:1;display:flex;flex-direction:column}.jp-at-a-glance__left>div,.jp-at-a-glance__right>div{flex-basis:100%}.jp-at-a-glance__left .jp-dash-item .dops-card,.jp-at-a-glance__right .jp-dash-item .dops-card{flex-grow:1}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact{flex-grow:0}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{margin-left:0;padding-left:0}@media(max-width: 480px){.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{text-transform:none}}.jp-at-a-glance__left .jp-dash-item__card,.jp-at-a-glance__right .jp-dash-item__card{display:flex}.jp-search-config-aag{width:100%}.jp-at-a-glance__left{display:flex}@media(min-width: 661px){.jp-at-a-glance__left{margin-right:1rem}.jp-at-a-glance__left:last-child{flex-basis:calc( 50% - 0.5rem )}}.dops-chart__tooltip .tip-arrow{display:none}.jp-connection-type .jp-dash-item__card{align-items:flex-start}.jp-connection-settings__info{display:flex}.jp-connection-settings__actions{margin:1em 0 0}.jp-connection-settings__actions a{cursor:pointer}.jp-connection-settings__text{margin-left:1rem;word-break:break-word}.jp-connection-settings__info .gridicon{opacity:.6}.jp-connection-settings__info .gridicon,.jp-connection-settings__info .jp-connection-settings__site-icon{background:#c8d7e1;color:#fff;min-width:4rem}.jp-connection-settings__info .jp-connection-settings__gravatar{display:inline-block;min-width:4rem;background:#a2a2a2;border-radius:50%;margin-bottom:0}.jp-connection-settings__username{font-weight:600}.jp-connection-settings__email{color:#a2a2a2;font-size:.875rem;font-style:italic;font-weight:400}.jp-connection-settings__modal.dops-modal{max-width:635px;min-height:400px}@media(min-width: 661px){.jp-connection-settings__modal.dops-modal{min-height:auto}}.jp-connection-settings__modal-body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.jp-connection-settings__modal-body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.jp-connection-settings__modal-body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.jp-connection-settings__modal-body p{font-size:.875rem}.jp-connection-settings__modal-body ul{margin:1.5rem 0 2.25rem;color:#537994}.jp-connection-settings__modal-body li{position:relative;display:block;margin:0;padding:1rem .5rem 1rem 2.75rem;border-bottom:1px solid #e1e1e1;text-align:left}.jp-connection-settings__modal-body li:first-of-type{border-top:1px solid #e1e1e1}.jp-connection-settings__modal-body .gridicon{position:absolute;left:1rem;top:1rem;vertical-align:text-bottom;color:#537994}.jp-connection-settings__modal-cancel{margin-right:1em}.jp-connection-settings__modal-more a{color:#0087be;text-decoration:underline}.jp-dash-item__manage-in-wpcom{margin-top:1px;width:100%}.jp-dash-item .dops-banner.dops-banner{width:100%;margin-bottom:0}.jp-dash-item__videopress .jp-dash-item__card{flex-direction:column}.jp-dash-item__videopress-storage{margin-top:1em}.jp-landing__plans{margin-bottom:32px}.jp-landing__plans .dops-button{margin-right:10px}.jp-landing__card-header{margin-top:0;font-size:1rem;color:#6f6f6f}.jp-landing__licensing-actions{display:flex;align-items:center;justify-content:center}@media(max-width: 660px){.jp-landing__licensing-actions span{display:none}}@media(min-width: 481px){.jp-landing__licensing-actions{justify-content:space-between}}.jp-landing__licensing-actions .jp-landing__licensing-actions-item{display:flex;flex-direction:column;align-items:center;text-align:center}@media(min-width: 481px){.jp-landing__licensing-actions .jp-landing__licensing-actions-item{flex-direction:row}}@media(max-width: 660px){.jp-landing__licensing-actions .jp-landing__licensing-actions-item{justify-content:space-between;flex:1}}.jp-landing__licensing-actions .jp-landing__licensing-actions-item .dops-button{margin-right:0}.jp-landing__licensing-actions .jp-landing__licensing-actions-item.no-licenses{justify-content:space-between;flex:1}.jp-landing__licensing-actions .jp-landing__licensing-actions-item.no-licenses{justify-content:flex-end}.all-purchases__link{display:inline-block;box-sizing:border-box;padding:7px 20px 9px 0}@media(max-width: 480px){.all-purchases__link{padding:0px;margin-bottom:15px}}.jp-landing__plan-features-header-recommendations-cta-container{order:30;align-self:center;display:flex;justify-content:flex-end}.jp-landing__plan-features-header-recommendations-cta-container .dops-button{margin-right:0}.jp-landing__plan-features-card{display:flex;flex-basis:32%;flex-wrap:nowrap;flex-grow:1;box-sizing:border-box;margin:.5rem;background-color:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04)}.jp-landing__plan-features-card:last-child{max-width:100%}.is-loading .jp-landing__plan-features-card{width:49.5%}@media(min-width: 661px){.jp-landing__plan-features-card{margin-bottom:1%}}@media(max-width: 660px){.jp-landing__plan-features-card{max-width:100%;margin-bottom:.5rem}}@media(min-width: 481px){.jp-landing__plan-features-card{padding:2rem}}@media(max-width: 480px){.jp-landing__plan-features-card{padding:1rem}}.jp-landing__plan-features-list{list-style:initial;margin-left:1rem}.jp-landing__plan-features-img{width:5.625rem;margin-right:.5rem;line-height:1}@media(min-width: 961px){.jp-landing__plan-features-img{width:7.5rem;margin-right:1.125rem}}.jp-landing__plan-features-icon{display:block;margin-left:-0.5rem}@media(min-width: 481px){.jp-landing__plan-features-icon{margin-left:-1rem}}.jp-landing__plan-features-text{flex:1;font-size:.875rem}.jp-landing__plan-features-title{margin:0;font-size:1.25rem}.jp-landing__plan-features{display:flex;flex-wrap:wrap;flex-direction:row;align-items:stretch;justify-content:space-between;margin-bottom:2rem;margin-left:-0.5rem;margin-right:-0.5rem}@media(max-width: 660px){.jp-landing__plan-features{display:block}}.jp-landing__plan-features-title.is-placeholder{height:1.5rem;max-width:50%}.jp-landing__plan-features-text.is-placeholder{height:2.75rem;max-width:75%}.jp-landing__plan-features-link{width:100%}@media(min-width: 661px){.jp-landing__plan-features-link{text-align:center}}.jp-landing__plan-features-header-jetpack-license .dops-button{margin-top:16px;margin-right:0px;float:right}.jp-form-fieldset>.jp-form-search-setting-explanation{margin-left:2.25rem}.media__videopress-storage{margin-bottom:1.5rem;max-width:50%}.jp-recommendations-question__main{min-height:480px;box-shadow:0px 2px 6px rgba(0,0,0,.03),0px 1px 2px rgba(0,0,0,.03);border:1px solid #d5d5d5;background:#fff}.jp-recommendations-question__main--with-illustration{display:grid;grid-template-columns:55% 45%;background:linear-gradient(120deg, white 0%, white 55%, #c5d9ed 55%)}@media(max-width: 660px){.jp-recommendations-question__main--with-illustration{grid-template-columns:100% 0%;background:#fff}}.jp-recommendations__loading{padding-top:48px}.dops-search__input[type=search]{width:100%}.jp-settings-container .jp-no-results{display:none;font-size:.875rem;line-height:1.5}.jp-settings-container .jp-no-results:last-of-type{display:inherit}@media(max-width: 480px){.dops-search.is-expanded-to-container{height:46px}}.dops-card.jp-settings-description{margin:24px 0 8px;padding:0;background:none;box-shadow:none;border:none}.jp-form-google-label-unverified .dops-button{margin:0 15px}@media(max-width: 660px){.jp-form-google-label-unverified .dops-button{margin-top:10px;width:40%}}.jp-form-google-label-unverified .jp-form-google-separator{padding:.5rem 0}@media(max-width: 660px){.jp-form-google-label-unverified .jp-form-google-separator{margin:25px 0 0;display:inline-block}}.jp-sitemap-row{display:flex;align-items:center;margin-top:1rem}.jp-sitemap-row .dops-clipboard-button-input{flex-grow:1}.jp-form-input-with-prefix-bottom-message{top:-1.25rem;position:relative;line-height:2em;margin-top:5px}.jp-form-site-verification-verified{background-color:#fff;color:#069e08;box-sizing:border-box;margin:0;padding:7px 14px;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;width:100%;display:flex;flex-direction:row;justify-content:left;align-items:center}.jp-form-site-verification-verified .gridicon:first-child{margin-right:5px}@media(min-width: 661px){.jp-form-site-verification-verified{border-left:0}}@media(max-width: 660px){.jp-form-site-verification-verified{border-top:0}}.jp-form-site-verification-edit-button{margin-left:10px;overflow:visible}@media(max-width: 660px){.jp-form-site-verification-edit-button{margin-left:0;margin-right:5px;margin-top:5px}}.jp-form-site-verification-buttons{flex:0 1 20em;display:inline-flex}.jp-form-site-verification-verified-note{font-size:.7em}.jp-form-google-label-unverified-actions{display:flex;align-content:center}.jp-form-google-label-unverified-actions .dops-button{margin-left:10px;margin-right:10px;padding-left:7px;padding-right:7px}#jp-seo-front-page-description{min-height:96px}.jp-seo-front-page-description-card{margin-bottom:0 !important}.jp-seo-front-page-description-container{background:#f6f6f6;border-radius:4px}.jp-seo-front-page-description-count{padding:.25rem}.jp-seo-front-page-description-count-warn{background-color:#f0b849;font-weight:700;border-radius:4px}.jp-seo-front-page-description-count-max{background-color:#d94f4f;font-weight:700;border-radius:4px;color:#fff}.jp-seo-front-page-description-save-button{float:right;margin-top:.75rem}.jp-seo-social-previews .search-preview,.jp-seo-social-previews .facebook-preview,.jp-seo-social-previews .twitter-preview{margin-top:1rem;margin-bottom:1rem}.jp-seo-social-previews-container{display:flex;align-items:center;margin-top:1rem}.jp-seo-social-previews-label{font-weight:600;margin-left:.5rem}.jp-seo-custom-titles-card{margin-bottom:0 !important}.jp-seo-custom-titles-input[type=text]{margin-top:.25rem}.jp-seo-custom-titles-input-controls{display:flex;align-items:flex-end;flex-wrap:wrap;margin-top:.5rem}.jp-seo-custom-titles-input-controls .jp-form-label{margin-bottom:0;font-weight:600}.jp-seo-custom-titles-input-label{margin-right:auto}.jp-seo-custom-titles-input-button::before{content:"+";margin-right:4px}.jp-seo-custom-titles-input-button:not(:first-of-type){margin-left:.5rem}.jp-seo-custom-titles-input-preview{margin-top:.25rem;font-style:italic}.jp-seo-custom-titles-save-button{float:right;margin-top:.75rem} \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/style.min.rtl.css b/plugins/jetpack/_inc/build/style.min.rtl.css
index 3d04b7f0..6e1603fd 100644
--- a/plugins/jetpack/_inc/build/style.min.rtl.css
+++ b/plugins/jetpack/_inc/build/style.min.rtl.css
@@ -1,4 +1,3 @@
/* Do not modify this file directly. It is compiled SASS code. */
-@media (max-width: 660px){.jp-hidden-on-mobile{display:none}}.jetpack-pagestyles #wpcontent{padding-right:0}.wp-admin.toplevel_page_jetpack{background-color:#f6f6f6;line-height:1.4;height:auto}.jetpack-pagestyles a{text-decoration:none}.dops-notice__text a{text-decoration:underline}.jetpack-pagestyles #dolly{float:none;position:relative;left:0;right:0;top:0;padding:.625rem;text-align:left;background:#fff;font-size:.75rem;font-style:italic;color:#a2a2a2;border-bottom:1px #eee solid}@media (max-width: 660px){.jetpack-pagestyles #dolly{display:none}}.toplevel_page_jetpack ul#adminmenu a.wp-has-current-submenu:after{border-left-color:#f6f6f6}.jp-lower{margin:0 auto;text-align:right;max-width:65rem;padding:1.5rem}@media (max-width: 1250px){.jp-lower{max-width:95%}}#contextual-help-link-wrap{display:none}.is-placeholder{animation:pulse-light 0.8s ease-in-out infinite;background:#d5d5d5}@keyframes pulse-light{50%{background-color:#eee}}.jp-dash-item .jp-dash-item__content a{font-style:italic}.jp-dash-item .dops-section-header__actions .form-toggle__label{position:relative;top:6px;left:0}.jp-dash-item .dops-section-header__actions .form-toggle__label-content{margin:0}.jp-dash-item__content{flex-grow:1;display:flex;flex-wrap:wrap;align-items:flex-start}.jp-dash-item__card{margin:0}.jp-dash-item__count{margin-top:0;margin-bottom:6px;margin-left:8px;color:#007cba;font-weight:500;font-size:2rem;display:inline-block;border:1px solid #ccd0d4;border-radius:4px;padding:0px 4px;min-width:36px;text-align:center}@media (max-width: 660px){.jp-dash-item__count{font-size:1.4375rem}}.jp-dash-item__count+.jp-dash-item__description{max-width:61%}.jp-dash-item__description{margin:0;font-size:.875rem;max-width:calc( 100% - 18px)}.jp-dash-item .dops-section-header{width:100%}.jp-dash-item .dops-section-header .dops-button{font-style:normal}.jp-dash-item .dops-section-header.is-working .dops-section-header__actions,.jp-dash-item .dops-section-header.is-premium-inactive .dops-section-header__actions{color:#747474}.jp-dash-item .dops-section-header__actions .dops-notice{margin-top:-.0625rem;margin-bottom:-.0625rem}.jp-dash-item__active-label{display:inline-block;padding:.375rem 0 0;color:#888;color:#a2a2a2;font-size:.75rem;font-weight:400;text-transform:uppercase}.jp-dash-item__is-inactive .dops-section-header__label{padding-left:.5rem}.jp-dash-item__is-inactive .dops-section-header__label-text:before{content:'';display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to left, rgba(255,255,255,0), #fff 90%);top:0px;bottom:0px;left:0px;right:auto;width:8px;height:auto}.jp-dash-item__is-inactive .jp-dash-item__description{font-style:italic;color:#6f6f6f}.jp-dash-item__disabled{opacity:.5;position:relative}.jp-dash-item__disabled::before{content:"";width:100%;height:100%;display:block;position:absolute;top:0;right:0;z-index:1}.jp-dash-item__recently-activated .jp-dash-item__description{font-style:italic;box-sizing:border-box}.jp-dash-section-header{display:flex;flex-wrap:wrap;margin:2.5rem 0 .5rem}@media (max-width: 660px){.jp-dash-section-header{margin-bottom:1.5rem}}@media (max-width: 480px){.jp-dash-section-header{display:block}}.jp-dash-section-header__label{flex:1;white-space:nowrap}.jp-dash-section-header__name{display:inline-block;margin-top:0;margin-bottom:0;font-size:1.25rem;font-weight:400;white-space:nowrap}@media (min-width: 481px){.jp-dash-section-header__name{display:inline-block}}@media (max-width: 480px){.jp-dash-section-header__name .jp-dash-section-header__label{display:inline-block}}.jp-dash-section-header__settings{display:inline-block;min-width:2.5rem;text-align:center;color:#888}.jp-dash-section-header__settings:focus{outline:0;box-shadow:none}.jp-dash-section-header__settings:focus .gridicon{color:#0087be}.jp-dash-section-header__settings .gridicon{position:relative;top:1px}.jp-dash-section-header__external-link{align-self:center;font-style:italic}@media (max-width: 660px){.jp-dash-section-header__external-link{margin-top:.25rem}}@media (max-width: 480px){.jp-dash-section-header__external-link{display:block;width:100%}}.jp-dash-section-header__children{align-self:center}@media (max-width: 480px){.jp-dash-section-header__children{width:100%}}.dops-foldable-card.dops-card.devmode-disabled .dops-foldable-card__summary,.dops-foldable-card.dops-card.devmode-disabled .dops-foldable-card__summary_expanded{width:100px}.dops-foldable-card.dops-card.is-expanded .dops-foldable-card__content{position:relative;padding-left:2.9375rem;padding-right:1.5rem}@media (min-width: 661px){.dops-foldable-card__main{max-width:85%}}@media (min-width: 481px){.dops-foldable-card__main{max-width:60%}}@media (max-width: 480px){.dops-foldable-card__main{flex-basis:100%}}@media (max-width: 480px){.dops-foldable-card__header{flex-wrap:wrap}}@media (max-width: 480px){.dops-foldable-card__header-text{font-size:.875rem}}.dops-foldable-card__header-text .dops-button{margin-right:.5rem}@media (max-width: 480px){.dops-foldable-card__subheader{display:none}}@media (max-width: 480px){.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{text-align:right;margin-top:.5rem}}.jp-footer{text-align:center;margin:1rem 0 2rem}@media (max-width: 1040px){.jp-footer{margin:2rem 0 1.5rem}}@media (max-width: 660px){.jp-footer{margin:1.5rem 0 1rem}}.jp-footer__a8c-attr-container{margin-bottom:.5rem}.jp-footer__a8c-attr{width:11.25rem}.jp-footer__a8c-attr path{fill:#888}.jp-footer__links{border-top:1px #e1e1e1 solid;border-bottom:1px #e1e1e1 solid;margin-top:0;margin-bottom:1rem}@media (max-width: 660px){.jp-footer__links{border-bottom:none}}.jp-footer__link-item{display:inline-block;margin-bottom:0}@media (min-width: 661px){.jp-footer__link-item{display:inline-block}}@media (max-width: 660px){.jp-footer__link-item{display:block;border-bottom:1px #e1e1e1 solid}}.jp-footer__link{padding:1rem .5rem;color:#888;display:inline-block;cursor:pointer}.jp-footer__link:visited{color:#888}.jp-footer__link:hover,.jp-footer__link:active{color:#272727}@media (max-width: 660px){.jp-footer__link{display:block;padding:.5rem 0;border-bottom:1px #e1e1e1 solid}.jp-footer__link:last-of-type{border-bottom:none}}.jp-dev-card.jp-dev-card{position:fixed;bottom:10px;left:10px;z-index:100;padding:8px;font-size:12px;text-align:right}.jp-dev-card.jp-dev-card ul{margin-top:6px}.jp-dev-card.jp-dev-card li{margin-top:2px;margin-bottom:0}.jp-dev-card__heading{font-weight:600}.jp-dev-card__subheading{font-size:11px;color:#888}.jp-dev-card__close{float:left;cursor:pointer}.jp-loading-placeholder{margin-top:30vh;margin-bottom:25vh;color:#d5d5d5;font-size:12vw;text-align:center}@media (min-width: 961px){.jp-loading-placeholder{font-size:120px}}.jp-loading-placeholder .dashicons{font-size:inherit;width:auto;height:auto}@media (max-width: 480px){.dops-notice ul{font-size:.75rem}}.jp-masthead{background-color:#fff;text-align:center;box-shadow:0 1px 0 #ccd0d4,0 1px 1px 1px rgba(0,0,0,0.04)}@media (max-width: 48.875rem){.jp-masthead{padding:0 1.5rem}.jetpack-masterbar .jp-masthead{padding-right:4rem}}.jp-masthead__inside-container{display:flex;flex-wrap:wrap;margin:0 auto;width:100%;max-width:65rem;padding-bottom:.375rem}@media (max-width: 1250px){.jp-masthead__inside-container{max-width:95%}}.jp-masthead__logo-container{flex-grow:0;flex-shrink:0;padding:.6875rem 0 0}@media (max-width: 480px){.jp-masthead__logo-container{margin-left:1rem}}.jp-masthead__logo-link{display:inline-block;outline:none;vertical-align:middle}.jp-masthead__logo-link:focus{line-height:0;box-shadow:0 0 0 2px #78dcfa}.jp-masthead__logo-link+code{margin:0 10px;padding:5px 9px;border-radius:2px;background:#e6ecf1;color:#647a88}.jp-masthead__nav{display:flex;flex-wrap:nowrap;flex-grow:1;flex-shrink:0;text-align:left;margin-top:.375rem;padding:.25rem 0}.jp-masthead__nav .dops-button-group{flex-grow:1;align-self:center;font-size:0}@media (max-width: 480px){.jp-masthead__nav{text-align:right}}#sandbox-domain-badge{background:#d54e21;text-transform:uppercase;letter-spacing:0.2em;text-shadow:none;font-size:9px;font-weight:bold;cursor:pointer;color:#ffffff}.jp-module-settings__external-link{font-size:.875rem}.jp-module-settings__read-more{clear:both;margin-top:1rem}@media (min-width: 481px){.jp-module-settings__read-more{margin-top:2rem}}.jp-module-settings__read-more .dops-button.is-compact.is-borderless,.jp-module-settings__read-more .jp-module-settings__more-text{vertical-align:middle}.jp-related-posts-preview{position:relative;margin-top:.5rem;padding:1rem .5rem;width:100%;background:#f6f6f6;box-sizing:border-box;box-shadow:none}.jp-related-posts-settings__preview-label{margin-bottom:.5rem;margin-top:1.5rem;font-size:.875rem;font-weight:600}.jp-related-posts-preview__title{margin:0 .5rem .6875rem 0;font-size:.6875rem;font-weight:600}.jp-related-posts-preview__post-title{font-size:.9375rem;font-weight:400;margin:0}.jp-related-posts-preview__post-context{font-size:.9375rem;opacity:.6;margin:0}.jp-related-posts-preview__item{box-sizing:border-box;display:inline-block;width:33.33%;padding:.5rem;vertical-align:top}@media (max-width: 480px){.jp-related-posts-preview__item{width:100%}}.jp-related-posts-preview__item img{max-width:100%;margin-bottom:.5rem}.jp-support-card{margin-top:1rem;margin-bottom:0}.jp-support-card__description{font-size:.875rem;line-height:1.65}.jp-support-card__description:first-of-type{margin-top:4px}.jp-support-card__description:last-of-type{margin-bottom:0}.jp-support-card__description .dops-button{margin:0 0 0 16px}@media (max-width: 960px){.jp-support-card__description .dops-button{margin:0 0 8px 16px}}.jp-support-card__link{font-style:italic}@media (max-width: 660px){.jp-support-card__link{display:block;width:100%;padding:.625rem 0;border-top:1px rgba(213,213,213,0.5) solid}.jp-support-card__link:first-letter{text-transform:capitalize}.jp-support-card__link:first-of-type{border-top:0}}.jp-support-card__happiness{margin-bottom:0;display:flex;flex-flow:row nowrap}@media (max-width: 660px){.jp-support-card__happiness .jp-support-card__description:first-of-type{margin-bottom:1rem}}.jp-support-card__social{background-color:#fbfbfb;padding:1rem}@media (max-width: 660px){.jp-support-card__social{background:#fff;margin-top:1rem;padding:0 1rem}}.jp-support-card__header{font-weight:400;font-size:1.3125rem;margin:0}.jp-support-card__happiness-contact{flex-shrink:1;flex-grow:1}.jp-form-legend,.jp-form-label-wide{padding:1rem 0 .3125rem;font-size:.875rem;font-weight:600}.jp-form-label{display:block;font-size:.875rem;line-height:1.5;margin-bottom:.3125rem}.jp-form-label-wide{padding:.5rem 0;display:block}.jp-form-label input[type="radio"]+span{font-weight:normal;margin-right:8px}.jp-form-button{margin-top:1rem}@media (min-width: 481px){.jp-form-button{position:absolute;left:1rem;bottom:1rem}}.jp-form-toggle-explanation{font-size:.875rem;word-break:break-word;vertical-align:baseline}.jp-form-toggle-explanation .jp-form-toggle-privacy-info{margin-right:.3125rem;padding-right:.3125rem;border-right:1px solid rgba(162,162,162,0.5)}.jp-form-fieldset{clear:both;position:relative}.jp-form-fieldset .jp-form-legend+.jp-form-setting-explanation{margin-top:0;margin-bottom:.5rem}.jp-form-input-with-prefix{display:inline-flex;width:100%;margin-bottom:1.5rem}.jp-form-input-with-prefix span:first-child{min-width:3.75rem;text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap}@media (max-width: 660px){.jp-form-input-with-prefix span:first-child{display:block;text-align:right}}.jp-form-input-with-prefix input[type="text"]{width:100%}@media (min-width: 661px){.jp-form-input-with-prefix input[type="text"]{border-right:0}}@media (max-width: 660px){.jp-form-input-with-prefix input[type="text"]{border-top:0}}@media (max-width: 660px){.jp-form-input-with-prefix{display:block;box-sizing:border-box}}.jp-form-input-suffix{text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap;flex:1 0 auto;display:flex}button.jp-form-input-suffix{background:initial;border-radius:0}.jp-form-has-child{margin-bottom:1.5rem}.jp-form-has-child:last-child{margin-bottom:0}.jp-form-has-child>.jp-form-fieldset,.jp-form-has-child>.jp-form-setting-explanation{margin-right:2.25rem}.jp-form-has-child>.jp-form-fieldset{margin-bottom:1rem}.jp-form-block-fade{position:absolute;top:0;right:0;z-index:1;background:rgba(255,255,255,0.8);width:100%;height:100%}.jp-form-devmode-message.is-compact{width:100%;padding:0 1rem;position:absolute;top:-24px;z-index:1}.react-tagsinput{border:1px solid #e9eff3;padding:.15625rem}.react-tagsinput--focused{border-color:#007cba}.react-tagsinput-tag{background-color:#00aadc;border-radius:2px;border:1px solid #0087be;color:#fff;display:inline-block;font-size:13px;padding:.125rem .5rem .1875rem .375rem;margin:.15625rem;transition:background-color .2s ease-out}.react-tagsinput-tag:hover{background-color:#26b7e2}.react-tagsinput-remove{cursor:pointer;font-weight:bold;transition:color .2s ease-out}.react-tagsinput-remove:hover{color:#caf3ff}.react-tagsinput-tag a::before{content:" \00d7"}input[type=text].react-tagsinput-input{width:9.375rem;height:1.875rem;margin:0;padding:.3125rem;font-size:13px;vertical-align:middle;border:none;box-shadow:none}input[type=text].react-tagsinput-input::-ms-clear{display:none}.jetpack-pagestyles .vp-notice,.jetpack-pagestyles .woocommerce-message,.jetpack-pagestyles .wc-connect{display:none}.jetpack-pagestyles .vp-notice-jp a{text-decoration:underline}.jetpack-pagestyles .woocommerce-message.dops-notice{display:block;padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice::before{content:''}.jetpack-pagestyles .woocommerce-message.dops-notice .submit{padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice .notice-dismiss::before{display:none}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>div{max-width:620px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>a{margin-left:15px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__moved_text{margin-bottom:5px}.jetpack-pagestyles .dops-notice__action.notice-dismiss{height:100%}.jp-inline-expand.dops-card{box-shadow:none;padding:0}.jp-inline-expand .jp-inline-expand-action{font-size:.875rem;cursor:pointer}.jp-inline-expand .jp-inline-expand-action .gridicon{transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.5s ease-in;vertical-align:text-bottom;display:inline-block;margin:0 5px}.jp-inline-expand.is-expanded .jp-inline-expand-action .gridicon{transform:rotate(-180deg)}.jp-inline-expand.is-expanded .jp-inline-expand-content{padding:16px 0 0}.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after{right:8px}.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after{right:0}.dops-section-nav-tab__text .gridicon{vertical-align:middle;margin:0 5px 2px 0}.jp-settings-card__configure-link{display:flex;margin-bottom:0}.jp-form-settings-card{margin-bottom:1.5rem;font-size:.875rem}.jp-form-settings-card+.jp-at-a-glance__stats-card{margin-bottom:1.5rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{color:#444}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{padding-right:1.5rem}}.jp-form-settings-card .dops-foldable-card .form-toggle__switch{float:right;margin-top:.125rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header-text{font-size:.875rem}.jp-form-settings-card .dops-foldable-card.jp-foldable-settings-disable .dops-foldable-card__header{color:#dadada}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__main{max-width:85%}}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{left:.625rem}@media (max-width: 480px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{left:.0625rem}}.jp-form-settings-card .dops-foldable-card .jp-support-info{left:-1.3125rem;top:.4375rem}@media (max-width: 480px){.jp-form-settings-card .dops-foldable-card .jp-support-info{left:-1.875rem}}.jp-form-settings-card .dops-foldable-card .jp-form-legend:first-child,.jp-form-settings-card .dops-foldable-card .jp-form-label-wide:first-child{padding-top:.4375rem}@media (min-width: 481px){.jp-form-settings-card .dops-foldable-card__header{padding-top:1.75rem;padding-bottom:1.75rem}}.jp-foldable-settings-standalone .dops-foldable-card__header-text{font-size:.875rem}@media (min-width: 481px){.jp-foldable-settings-standalone .dops-foldable-card__header,.jp-foldable-settings-standalone.dops-card.is-expanded .dops-foldable-card__content{padding-right:1.5rem;padding-left:1.5rem}.jp-foldable-settings-standalone .dops-foldable-card__action{left:.625rem}.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{left:.125rem;top:0}}@media (max-width: 480px){.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{left:-1.9375rem;top:.375rem}}.jp-banner__no-border{border-right:none !important}.jp-banner__no-border .dops-banner__icon-circle{background:none !important;padding:0 3px 0 0}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon{width:28px;height:28px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-info{color:#0087be}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-notice{color:#f0b849}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-checkmark-circle{color:#4ab866}.jp-banner__no-border .dops-banner__description{font-size:.875rem;line-height:1.65;color:#537994;margin-top:0}.jp-form-settings-group{position:relative;margin-bottom:0}.jp-form-settings-group p{font-size:.875rem;margin-top:0;margin-bottom:1.5rem}.jp-form-settings-group fieldset p:last-child{margin-bottom:8px}.jp-form-settings-group .form-toggle__label{margin-top:.25rem;margin-bottom:.25rem}.jp-form-settings-group .form-toggle__switch{float:right;margin-top:2px}.jp-form-settings-group .jp-form-setting-explanation{color:#747474;display:block;margin:.3125rem 0 .3125rem .875rem;font-size:.8125rem;font-style:italic;font-weight:400;word-break:break-word}.jp-form-settings-group .jp-form-setting-explanation+.dops-card{margin-top:1rem}.jp-form-settings-group .jp-form-setting-explanation.is-warning{color:#d94f4f}.jp-form-settings-group .jp-form-setting-explanation a{text-decoration:underline}.dops-foldable-card .jp-form-settings-group{padding-bottom:16px}.jp-form-settings-group .dops-card{padding-left:3rem}@media (max-width: 480px){.jp-form-settings-group .jp-support-info{left:1rem;top:1.25rem}}.jp-form-settings-group .jp-support-info+p{margin-top:2px}.jp-form-settings-group .jp-support-info+span{padding-top:2px;display:block}.jp-form-settings-group .form-toggle__switch{float:right;margin-top:2px}.jp-form-settings-group>.dops-card:first-child{margin-bottom:0}.dops-foldable-card .jp-form-settings-group .dops-card{padding:0;box-shadow:none}.jp-apps-card{margin-top:4rem;margin-bottom:0}.jp-apps-card__content{margin-bottom:0}.jp-apps-card__content.dops-card{padding:0}.jp-apps-card__content a:not(.dops-button){font-style:italic}.jp-apps-card__dismiss{position:absolute;top:8px;left:8px}.jp-apps-card__dismiss.dops-button.is-compact{padding:8px 8px 2px 8px}.jp-apps-card__top{padding:3.75rem 0 0;background:#ffffff;text-align:center}.jp-apps-card__top img{max-width:26%;padding-top:10px}.jp-apps-card__description{max-width:80%;margin:0 auto;padding:.625rem 1.5rem 1.5rem;line-height:1.65;color:#000;text-align:center}.jp-apps-card__description .dops-button{margin:8px 0}.jp-apps-card__paragraph{font-size:.9375rem}.jp-apps-card__header{margin-top:0;margin-bottom:.3125rem;font-weight:500}.jp-apps-card__promo_subhead{margin-top:0;font-style:italic}.jp-themes-card{margin-bottom:1.25rem}.jp-dialogue-full__container{box-sizing:border-box;position:absolute;top:0;left:0;bottom:0;right:0;z-index:100;background:rgba(246,246,246,0.95);text-align:center;padding:2rem;height:100%}.jp-dialogue{text-align:center;max-width:37.5rem;margin:0 auto 2rem;overflow:hidden}@media (max-width: 660px){.jp-dialogue{text-align:right}}.jp-dialogue p{font-size:.875rem;color:#747474}.jp-dialogue img{max-width:100%}.jp-dialogue p+img{margin:2rem 0 1rem}.jp-dialogue .dops-card{margin-bottom:0}.jp-dialogue .jp-dialogue-card__below{text-align:right}.jp-dialogue-full__dismiss{cursor:pointer;position:absolute;left:-10px;top:-10px;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-dialogue__title{font-weight:300;text-align:center;font-size:1.5rem;margin-bottom:2rem}.jp-dialogue__note,a.jp-dialogue__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-full__svg-jupiter{position:absolute;left:0;top:5rem;opacity:.90}.jp-dialogue-full__svg-stars{position:absolute;right:6.25rem;top:6.25rem;opacity:.90}.jp-dialogue__cta-container{padding:.5rem 0 0}.jp-dialogue__cta-container .dops-button{margin:0 .5rem}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child{padding-right:30px}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child .jp-form-fieldset{margin-bottom:0.4rem}.jp-upgrade-notice__enable-module{margin-bottom:calc(1em + 8px)}.jp-upgrade-notice__enable-module .jp-form-settings-group{margin:0px auto;max-width:400px;text-align:right}.jp-upgrade-notice__enable-module .jp-form-has-child{padding:10px;padding-left:30px}.jp-upgrade-notice__enable-module .jp-support-info{top:.9375rem;left:.9375rem}.jetpack-about__link-back,.jetpack-about__main,.jetpack-about__plugin{background-color:#fff;border:1px solid #e5e5e5}.jetpack-about__main,.jetpack-about__colophon{font-size:14px}.jetpack-about__main p,.jetpack-about__colophon p{font-size:14px}.jetpack-about__link-back{padding:16px 16px 13px;border-bottom:none}.jetpack-about__link-back a{color:#6c7781;font-size:0.75rem}.jetpack-about__link-back a:hover,.jetpack-about__link-back a:active{color:#262a2e}.jetpack-about__link-back a svg{fill:#6c7781;height:24px;margin-left:4px;margin-top:-3px;vertical-align:middle;width:24px}.jetpack-about__main{padding:36px}.jetpack-about__logo{width:265px}@media screen and (max-width: 400px){.jetpack-about__logo{width:100%}}.jetpack-about__content{display:flex}@media screen and (max-width: 782px){.jetpack-about__content{flex-wrap:wrap}}.jetpack-about__text{order:1}.jetpack-about__text p{font-size:1rem;line-height:1.6}.jetpack-about__text p:last-child{margin-bottom:0}.jetpack-about__images{text-align:center;margin-right:48px;order:2}@media screen and (max-width: 782px){.jetpack-about__images{margin-right:0;order:0;text-align:right;width:100%}}.jetpack-about__images .meet-the-team{margin-bottom:0;text-align:center}.jetpack-about__gravatars{display:flex;flex-wrap:wrap;width:320px}@media screen and (max-width: 450px){.jetpack-about__gravatars{max-width:320px;width:100%}}.jetpack-about__gravatars li{margin-bottom:0;width:25%}.jetpack-about__gravatars li img{max-width:80px;vertical-align:top;width:100%;height:100%}.jetpack-about__colophon{margin-bottom:3rem}.jetpack-about__colophon h3{margin-top:2.4375rem}.jetpack-about__services-more{margin-top:1.5em;text-align:center}.jetpack-about__services{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.jetpack-about__plugin{margin-bottom:0}.jetpack-about__plugin .plugin-card-top{padding:20px 20px 15px;position:relative}.jetpack-about__plugin .plugin-card-top .name,.jetpack-about__plugin .plugin-card-top .desc,.jetpack-about__plugin .plugin-card-top .details-link{margin-right:148px}.jetpack-about__plugin .plugin-card-top .name h3{margin-top:0}.jetpack-about__plugin .plugin-card-top .details-link{font-weight:500}.jetpack-about__plugin .plugin-card-bottom{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between}.jetpack-about__plugin .plugin-card-bottom .meta{margin-left:1em}.jetpack-about__plugin .plugin-card-bottom .num-ratings{display:inline-block}.jetpack-about__plugin .plugin-card-bottom .action-buttons{clear:none;float:none;margin:0.5em 0}.jetpack-about__plugin .plugin-card-bottom .action-buttons li:last-child{margin-bottom:0}.mobile-magic-link__button{cursor:pointer}.mobile-magic-link__modal__body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.mobile-magic-link__modal__body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.mobile-magic-link__modal__body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.mobile-magic-link__modal-actions{margin:2rem 0}.mobile-magic-link__modal-actions .mobile-magic-link__modal-cancel{margin-left:1em}.jp-at-a-glance{margin-bottom:3rem}.jp-at-a-glance__stats-card{padding:0}.jp-at-a-glance__stats-empty{text-align:center;margin-bottom:0}.jp-at-a-glance__stats-empty p{font-size:.875rem;color:#747474}.jp-at-a-glance__stats-inactive{padding:1rem}@media (min-width: 661px){.jp-at-a-glance__stats-inactive{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center}}@media (max-width: 660px){.jp-at-a-glance__stats-inactive-icon{display:none}}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-icon{flex-basis:10%}}.jp-at-a-glance__stats-inactive-text{font-size:.875rem;line-height:1.5}@media (max-width: 660px){.jp-at-a-glance__stats-inactive-text{padding:0 0 1rem}}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-text{flex-basis:50%;padding:0 1rem}}.jp-at-a-glance__stats-inactive-button{text-align:right}@media (min-width: 661px){.jp-at-a-glance__stats-inactive-button{flex-basis:40%;text-align:left}}.jp-at-a-glance__stats-chart{padding:1rem;position:relative}.jp-at-a-glance__stats-chart .dops-spinner{position:absolute;top:50%;right:50%}.jp-at-a-glance__stats-bottom{margin:2rem 0 0}@media (max-width: 480px){.jp-at-a-glance__stats-bottom{box-shadow:0 0 0 1px #ccd0d4}}.jp-at-a-glance__stats-summary{text-align:center;border-bottom:1px #ccd0d4 solid}@media (min-width: 661px){.jp-at-a-glance__stats-summary{flex-wrap:nowrap;display:flex;flex-direction:row}}@media (max-width: 660px){.jp-at-a-glance__stats-summary{display:block}}.jp-at-a-glance__stats-summary-today,.jp-at-a-glance__stats-summary-bestday{flex-basis:25%;padding:1rem;box-shadow:0 0 0 1px #ccd0d4}@media (max-width: 660px){.jp-at-a-glance__stats-summary-today{margin-top:-.0625rem}}@media (min-width: 661px){.jp-at-a-glance__stats-summary-bestday{margin:0 .0625rem}}@media (max-width: 660px){.jp-at-a-glance__stats-summary-bestday,.jp-at-a-glance__stats-summary-alltime{margin-top:.0625rem}}.jp-at-a-glance__stats-summary-alltime{flex-basis:50%;padding:1rem;box-shadow:0 0 0 1px #ccd0d4}@media (min-width: 661px){.jp-at-a-glance__stats-summary-alltime{max-width:50%;display:flex;flex-grow:1;flex-shrink:1}}.jp-at-a-glance__stats-alltime-views,.jp-at-a-glance__stats-alltime-comments{flex-basis:50%}.jp-at-a-glance__stats-cta{padding:1rem;background-color:#fbfbfb}@media (min-width: 661px){.jp-at-a-glance__stats-cta{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center}}@media (max-width: 660px){.jp-at-a-glance__stats-cta{display:block}}@media (min-width: 661px){.jp-at-a-glance__stats-cta-description{flex-basis:30%}}.jp-at-a-glance__stat-details{margin:0}.jp-at-a-glance__stat-number{font-size:1.375rem;font-weight:400;margin:.5rem 0}@media (min-width: 661px){.jp-at-a-glance__stats-cta-buttons{text-align:left;flex-basis:70%}}@media (max-width: 660px){.jp-at-a-glance__stats-cta-buttons{text-align:center}.jp-at-a-glance__stats-cta-buttons .dops-button{width:100%;margin-bottom:.25rem}}.jp-at-a-glance__stats-cta-buttons .dops-button{text-align:center;margin:.25rem}.jp-at-a-glance__stats-views{margin-top:0;margin-bottom:0}.jp-at-a-glance__stats-view{display:inline-block;margin-top:0;margin-bottom:0;margin-right:1rem}.jp-at-a-glance__stats-view:focus{outline:0}@media (max-width: 480px){.jp-at-a-glance__stats-view{margin-right:0;margin-left:1rem}}.jp-at-a-glance__stats-view-link,.jp-at-a-glance__stats-view-link:visited{color:#a2a2a2;text-decoration:underline}.jp-at-a-glance__stats-view-link.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:focus.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:visited:visited.is-current,.jp-at-a-glance__stats-view-link:visited:focus.is-current{color:#23282d;text-decoration:none}.jp-at-a-glance__stats-view-link:focus{outline:0;box-shadow:none}.jp-at-a-glance__item-grid{display:flex}@media (max-width: 660px){.jp-at-a-glance__item-grid{display:block}}.jp-at-a-glance__left,.jp-at-a-glance__right{display:flex;min-width:0}@media (min-width: 661px){.jp-at-a-glance__left,.jp-at-a-glance__right{flex-basis:50%;margin-bottom:1rem}}@media (max-width: 660px){.jp-at-a-glance__left,.jp-at-a-glance__right{margin-bottom:.75rem}}.jp-at-a-glance__left>div,.jp-at-a-glance__left .jp-dash-item,.jp-at-a-glance__right>div,.jp-at-a-glance__right .jp-dash-item{min-width:0;flex-grow:1;display:flex;flex-direction:column}.jp-at-a-glance__left>div,.jp-at-a-glance__right>div{flex-basis:100%}.jp-at-a-glance__left .jp-dash-item .dops-card,.jp-at-a-glance__right .jp-dash-item .dops-card{flex-grow:1}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact{flex-grow:0}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{margin-right:0;padding-right:0}@media (max-width: 480px){.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{text-transform:none}}.jp-at-a-glance__left .jp-dash-item__card,.jp-at-a-glance__right .jp-dash-item__card{display:flex}.jp-search-config-aag{width:100%}.jp-at-a-glance__left{display:flex}@media (min-width: 661px){.jp-at-a-glance__left{margin-left:1rem}.jp-at-a-glance__left:last-child{flex-basis:calc( 50% - 0.5rem)}}.dops-chart__tooltip .tip-arrow{display:none}.jp-connection-type .jp-dash-item__card{align-items:flex-start}.jp-connection-settings__info{display:flex}.jp-connection-settings__actions{margin:1em 0 0}.jp-connection-settings__actions a{cursor:pointer}.jp-connection-settings__text{width:70%;margin-right:1rem;word-break:break-word}.jp-connection-settings__info .gridicon{opacity:0.6}.jp-connection-settings__info .gridicon,.jp-connection-settings__info .jp-connection-settings__site-icon{background:#c8d7e1;color:#fff;min-width:4rem}.jp-connection-settings__info .jp-connection-settings__gravatar{display:inline-block;min-width:4rem;background:#a2a2a2;border-radius:50%;margin-bottom:0}.jp-connection-settings__username{font-weight:600}.jp-connection-settings__email{color:#a2a2a2;font-size:.8125rem;font-style:italic;font-weight:400}.jp-connection-settings__modal.dops-modal{max-width:635px}.jp-connection-settings__modal-body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.jp-connection-settings__modal-body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.jp-connection-settings__modal-body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.jp-connection-settings__modal-body p{font-size:.875rem}.jp-connection-settings__modal-body ul{margin:1.5rem 0 2.25rem;color:#537994}.jp-connection-settings__modal-body li{position:relative;display:block;margin:0;padding:1rem 2.75rem 1rem .5rem;border-bottom:1px solid #e1e1e1;text-align:right}.jp-connection-settings__modal-body li:first-of-type{border-top:1px solid #e1e1e1}.jp-connection-settings__modal-body .gridicon{position:absolute;right:1rem;top:1rem;vertical-align:text-bottom;color:#537994}.jp-connection-settings__modal-cancel{margin-left:1em}.jp-connection-settings__modal-more a{color:#0087be;text-decoration:underline}.jp-dash-item__manage-in-wpcom{margin-top:1px;width:100%}.jp-dash-item .dops-banner.dops-banner{width:100%;margin-bottom:0}.jp-landing__plans{margin-bottom:32px}.jp-landing__plans .dops-button{margin-left:10px}.jp-landing__card-header{margin-top:0;font-size:15px;color:#6f6f6f}.jp-landing__plan-features-header-checklist-cta-container{order:30;align-self:center;display:flex;justify-content:flex-end}.jp-landing__plan-features-header-checklist-cta-container .dops-button{margin-left:0}.jp-landing__plan-features-card{display:flex;flex-basis:32%;flex-wrap:nowrap;flex-grow:1;box-sizing:border-box;margin:.5rem;background-color:#fff;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,0.04)}.jp-landing__plan-features-card:last-child{max-width:100%}.is-loading .jp-landing__plan-features-card{width:49.5%}@media (min-width: 661px){.jp-landing__plan-features-card{margin-bottom:1%}}@media (max-width: 660px){.jp-landing__plan-features-card{max-width:100%;margin-bottom:.5rem}}@media (min-width: 481px){.jp-landing__plan-features-card{padding:2rem}}@media (max-width: 480px){.jp-landing__plan-features-card{padding:1rem}}.jp-landing__plan-features-list{list-style:initial;margin-right:1rem}.jp-landing__plan-features-img{width:5.625rem;margin-left:.5rem;line-height:1}@media (min-width: 961px){.jp-landing__plan-features-img{width:7.5rem;margin-left:1.125rem}}.jp-landing__plan-features-icon{display:block;margin-right:-.5rem}@media (min-width: 481px){.jp-landing__plan-features-icon{margin-right:-1rem}}.jp-landing__plan-features-text{flex:1}.jp-landing__plan-features-title{margin:0}.jp-landing__plan-features{display:flex;flex-wrap:wrap;flex-direction:row;align-items:stretch;justify-content:space-between;margin-bottom:2rem;margin-right:-.5rem;margin-left:-.5rem}@media (max-width: 660px){.jp-landing__plan-features{display:block}}.jp-landing__plan-features-title.is-placeholder{height:1.5rem;max-width:50%}.jp-landing__plan-features-text.is-placeholder{height:2.75rem;max-width:75%}.jp-landing__plan-features-link{width:100%}@media (min-width: 661px){.jp-landing__plan-features-link{text-align:center}}.checklist__header{display:flex;flex-direction:row}.checklist__header-main{display:flex;flex:1 1;flex-direction:column;align-items:stretch}.checklist__header-secondary{display:flex;flex:2 1;flex-direction:row;align-items:center;justify-content:flex-end}.checklist__header-progress{display:flex;flex-direction:row;font-size:14px;white-space:nowrap;margin-bottom:5px}.checklist__header-progress-text{display:flex;flex:1 1;margin:0;color:#636d75}.checklist__header-progress-number{display:flex;color:#636d75;padding-right:1em}.checklist__header-summary{font-size:12px;line-height:24px;color:#636d75;cursor:pointer}.checklist__header-action{position:absolute;top:0;left:0;width:48px;height:100%;border-right:1px solid #f6f6f6;cursor:pointer}.checklist__header-action .gridicon{fill:#969ca1;vertical-align:middle;align-items:center;transition:transform 0.15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color 0.2s ease-in}.checklist.is-expanded .checklist__header-action .gridicon{transform:rotate(-180deg)}.accessible-focus .checklist__header-action:focus{box-shadow:inset 0 0 0 2px #6f93ad}.checklist.is-expanded .checklist__header-action .gridicon{transform:rotate(-180deg)}.checklist__header .dops-button.is-primary{margin-left:0;background:#00BE28;border-color:#00a523}.checklist__header .dops-button.is-primary:focus{box-shadow:0 0 0 2px #0cff40}@media (max-width: 600px){.checklist__header{display:block}.checklist__header-secondary{display:block;text-align:right;padding-top:15px}}.checklist-header-progress-bar{width:100%;display:inline-block;position:relative;background-color:#ccced0;border-radius:4.5px;height:4px}.checklist-header-progress-bar__progress{display:inline-block;position:absolute;top:0;right:0;height:100%;background-color:#44a234;border-radius:4.5px;transition:width 200ms}.plan-features__content{margin:0 -16px 16px;padding-top:20px}.is-section-plans .plan-features__mobile{display:block}@media (min-width: 752px){.is-section-plans .plan-features__mobile{display:none}}.plan-features__notice{margin-bottom:16px}@media (min-width: 1041px){.plan-features__notice{margin-bottom:32px;margin-top:-19px}}.is-section-plans .plan-features__table{display:table}.plan-features__table{font-size:14px;color:#747474;border-spacing:16px 0;margin-top:-16px;display:table;table-layout:fixed;width:100%;text-align:center}@media (min-width: 661px){.plan-features__table{display:table}}@media (max-width: 660px){.plan-features__table{display:none}}@media (max-width: 1040px){.plan-features__table{border-spacing:0;margin-right:15px;margin-left:15px;width:calc( 100% - 30px)}}.plan-features__row{background:#fff}.plan-features__table-item{border-left:solid 1px #ccd0d4;border-right:solid 1px #ccd0d4;background-color:#fff;position:relative}.plan-features__table-item.is-header{vertical-align:top}.plan-features__table-item.is-personal-plan{border-bottom:solid 2px #f0b849}.plan-features__table-item.is-premium-plan{border-bottom:solid 2px #4ab866}.plan-features__table-item.is-business-plan{border-bottom:solid 2px #855DA6}.plan-features__table-item.is-highlighted{border:1px solid #0087be;background-color:rgba(0,135,190,0.1);position:relative;top:-1px}.plan-features__table-item.is-highlighted.has-partial-border::after{display:none}.plan-features__table-item.is-selected{display:table-cell}.plan-features__table-item.has-partial-border:after{content:'';display:block;height:1px;width:calc( 100% - 24px);border-bottom:1px solid #ccd0d4;position:absolute;bottom:0;margin:0 12px}.plan-features__table-item.has-border-bottom{border-bottom:solid 1px #ccd0d4}.plan-features__table-item.has-border-top{border-top:solid 1px #ccd0d4}.plan-features__table-item.is-placeholder .spinner-line{margin:0;position:absolute;top:-3px;width:100%}.plan-features__table-item.is-bottom-buttons{padding-top:33px;padding-bottom:15px}.plan-features__table-item.is-top-buttons{padding-top:8px;padding-bottom:16px}.plan-features__header{position:relative;padding:15px 15px 0 15px;background-color:#fff}@media (max-width: 960px){.plan-features__header{padding:12px 12px 0 12px}}.plan-features__header-title{font-size:22px;line-height:0.7;font-weight:normal;margin:0}@media (max-width: 960px){.plan-features__header-title{font-size:20px}}.info-popover.plan-features__header-tip-info{position:relative;top:4px;right:3px;margin-top:-10px;margin-bottom:-10px;display:inline-block}.plan-features__description{margin:0;padding:12px 0}.plan-features__item{margin:0 12px;padding:12px 0;font-size:13px;color:#414141;text-align:center}@media (max-width: 960px){.plan-features__item{font-size:12px}}@media (max-width: 1040px){.plan-features__item{margin:0 12px}}.plan-features__item-description{display:inline-block;margin-right:10px;color:#a2a2a2}.plan-features .plan-price{padding-top:15px;padding-bottom:15px}.plan-features .plan-price__yearly{color:#414141}.plan-features .plan-price__yearly abbr{text-underline-position:under}@media (min-width: 661px){.plans-mobile-notice,.plans-mobile-notice.dops-card{display:none}}.plans-mobile-notice .dops-button:first-of-type,.plans-mobile-notice.dops-card .dops-button:first-of-type{margin-left:6px;margin-bottom:6px}.plan-grid-period{margin-bottom:12px;text-align:center}@media (max-width: 660px){.plan-grid-period{display:none}}.plans-mobile-notice.dops-card h2{margin-top:0}.plan-grid-skeletons{display:flex;margin:60px -10px 0}@media (max-width: 1040px){.plan-grid-skeletons{margin-right:-1px;margin-left:-1px}}@media (max-width: 660px){.plan-grid-skeletons{display:none}}.plan-grid-skeletons__plan{flex:1;height:545px;margin:0 10px}@media (max-width: 1040px){.plan-grid-skeletons__plan{margin:0 1px}}.plans-prompt__banner{padding:32px 0;text-align:center}.plans-prompt__heading{font-size:22px;margin-bottom:0}.plans-prompt__intro{font-size:14px;margin-top:0.5em}.plans-prompt__footer{margin:2em 0;text-align:center}.plans-prompt__footer .dops-button .gridicon{padding-right:4px;margin-left:-5px}.dops-search__input[type="search"]{width:100%}.jp-settings-container .jp-no-results{display:none;font-size:.875rem;line-height:1.5}.jp-settings-container .jp-no-results:last-of-type{display:inherit}@media (max-width: 480px){.dops-search.is-expanded-to-container{height:46px}}.dops-card.jp-settings-description{margin:24px 0 8px;padding:0;background:none;box-shadow:none;border:none}.jp-form-settings-group.minileven .jp-form-settings-notice{margin:15px 0}.jp-form-settings-group.minileven.inactive p,.jp-form-settings-group.minileven.inactive .form-toggle__label{color:#a2a2a2;transition:all 0.75s}.jp-form-google-label-unverified .dops-button{margin:0 15px}@media (max-width: 660px){.jp-form-google-label-unverified .dops-button{margin-top:10px;width:40%}}.jp-form-google-label-unverified .jp-form-google-separator{padding:.5rem 0}@media (max-width: 660px){.jp-form-google-label-unverified .jp-form-google-separator{margin:25px 0 0;display:inline-block}}.jp-form-input-with-prefix-bottom-message{top:-1.25rem;position:relative;line-height:2em;margin-top:5px}.jp-form-site-verification-verified{background-color:#fff;color:#00BE28;box-sizing:border-box;margin:0;padding:7px 14px;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;width:100%;display:flex;flex-direction:row;justify-content:left;align-items:center}.jp-form-site-verification-verified .gridicon:first-child{margin-left:5px}@media (min-width: 661px){.jp-form-site-verification-verified{border-right:0}}@media (max-width: 660px){.jp-form-site-verification-verified{border-top:0}}.jp-form-site-verification-edit-button{margin-right:10px;overflow:visible}@media (max-width: 660px){.jp-form-site-verification-edit-button{margin-right:0;margin-left:5px;margin-top:5px}}.jp-form-site-verification-buttons{flex:0 1 20em;display:inline-flex}.jp-form-site-verification-verified-note{font-size:0.7em}.jp-form-google-label-unverified-actions{display:flex;align-content:center}.jp-form-google-label-unverified-actions .dops-button{margin-right:10px;margin-left:10px;padding-right:7px;padding-left:7px}
-
+@media(max-width: 660px){.jp-hidden-on-mobile{display:none}}.wp-admin.toplevel_page_jetpack{background-color:#f6f6f6;line-height:1.4;height:auto}.jetpack-pagestyles #wpcontent{padding-right:0}.jetpack-pagestyles{font-size:.875rem}.jetpack-pagestyles a{text-decoration:none}.jetpack-pagestyles #dolly{float:none;position:relative;left:0;right:0;top:0;padding:.625rem;text-align:left;background:#fff;font-size:.75rem;font-style:italic;color:#a2a2a2;border-bottom:1px #eee solid}@media(max-width: 660px){.jetpack-pagestyles #dolly{display:none}}.dops-notice__text a{text-decoration:underline}.toplevel_page_jetpack ul#adminmenu a.wp-has-current-submenu:after{border-left-color:#f6f6f6}.jp-lower{margin:0 auto;text-align:right;max-width:65rem;padding:1.5rem}.jp-lower.jp-licensing-screen{max-width:70.5rem}.jp-lower.jp-main-connect-screen,.jp-lower.jp-user-connect-screen{max-width:70.5rem;box-sizing:content-box}@media(max-width: 1250px){.jp-lower{max-width:95%}}#contextual-help-link-wrap{display:none}.is-placeholder{animation:pulse-light .8s ease-in-out infinite;background:#d5d5d5}@keyframes pulse-light{50%{background-color:#eee}}.blur{-moz-filter:blur(5px);-o-filter:blur(5px);-ms-filter:blur(5px);filter:blur(5px)}.jp-dash-item .jp-dash-item__content a{font-style:italic}.jp-dash-item .dops-section-header__actions .form-toggle__label{position:relative;top:6px;left:0}.jp-dash-item .dops-section-header__actions .form-toggle__label-content{margin:0}.jp-dash-item__content{flex-grow:1;display:flex;flex-wrap:wrap;align-items:flex-start}.jp-dash-item__card{margin:0}.jp-dash-item__count{margin-top:0;margin-bottom:6px;margin-left:8px;color:#3582c4;font-weight:500;font-size:2rem;display:inline-block;border:1px solid #c3c4c7;border-radius:4px;padding:0 4px;min-width:36px;text-align:center}@media(max-width: 660px){.jp-dash-item__count{font-size:1.4375rem}}.jp-dash-item__count+.jp-dash-item__description{max-width:61%}.jp-dash-item__count.is-alert{color:#fff;background:#d94f4f;border-color:#d94f4f}.jp-dash-item__title{max-width:calc( 100% - 18px )}.jp-dash-item__title.jp-dash-item__title_fullwidth{flex-basis:100%}.jp-dash-item__title.jp-dash-item__title_top{margin-top:0}.jp-dash-item__description{margin:0;font-size:.875rem;max-width:calc( 100% - 18px )}.jp-dash-item__description.jp-dash-item__connect{margin-top:20px}.jp-dash-item .dops-section-header{width:100%}.jp-dash-item .dops-section-header .dops-button{font-style:normal}.jp-dash-item .dops-section-header.is-working .dops-section-header__actions,.jp-dash-item .dops-section-header.is-premium-inactive .dops-section-header__actions{color:#747474}.jp-dash-item .dops-section-header__actions .dops-notice{margin-top:-0.0625rem;margin-bottom:-0.0625rem}.jp-dash-item__active-label{display:inline-block;padding:.375rem 0 0;color:#888;color:#a2a2a2;font-size:.75rem;font-weight:400;text-transform:uppercase}.jp-dash-item__is-inactive .dops-section-header__label{padding-left:.5rem}.jp-dash-item__is-inactive .dops-section-header__label-text:before{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to left, rgba(255, 255, 255, 0), white 90%);top:0px;bottom:0px;left:0px;right:auto;width:8px;height:auto}.jp-dash-item__is-inactive .jp-dash-item__description{font-style:italic;color:#6f6f6f}.jp-dash-item__disabled{opacity:.5;position:relative}.jp-dash-item__disabled::before{content:"";width:100%;height:100%;display:block;position:absolute;top:0;right:0;z-index:1}.jp-dash-item__recently-activated .jp-dash-item__description{font-style:italic;box-sizing:border-box}.jp-dash-section-header{display:flex;flex-wrap:wrap;margin:2.5rem 0 .5rem}@media(max-width: 660px){.jp-dash-section-header{margin-bottom:1.5rem}}@media(max-width: 480px){.jp-dash-section-header{display:block}}.jp-dash-section-header__label{flex:1;white-space:nowrap}.jp-dash-section-header__name{display:inline-block;margin-top:0;margin-bottom:0;font-size:1.25rem;font-weight:400;white-space:nowrap}@media(min-width: 481px){.jp-dash-section-header__name{display:inline-block}}@media(max-width: 480px){.jp-dash-section-header__name .jp-dash-section-header__label{display:inline-block}}.jp-dash-section-header__settings{display:inline-block;min-width:2.5rem;text-align:center;color:#888}.jp-dash-section-header__settings:focus{outline:0;box-shadow:none}.jp-dash-section-header__settings:focus .gridicon{color:#0087be}.jp-dash-section-header__settings .gridicon{position:relative;top:1px}.jp-dash-section-header__external-link{align-self:center;font-style:italic}@media(max-width: 660px){.jp-dash-section-header__external-link{margin-top:.25rem}}@media(max-width: 480px){.jp-dash-section-header__external-link{display:block;width:100%}}.jp-dash-section-header__children{align-self:center}@media(max-width: 480px){.jp-dash-section-header__children{width:100%}}.jp-form-settings-group.foldable-wrapper .dops-foldable-card.dops-card{padding-left:0;margin-bottom:0;box-shadow:none}.dops-foldable-card.dops-card.offlinemode-disabled .dops-foldable-card__summary,.dops-foldable-card.dops-card.offlinemode-disabled .dops-foldable-card__summary_expanded{width:100px}.dops-foldable-card.dops-card.is-expanded .dops-foldable-card__content{position:relative;padding-left:2.9375rem;padding-right:1.5rem}@media(min-width: 661px){.dops-foldable-card__main{max-width:85%}}@media(min-width: 481px){.dops-foldable-card__main{max-width:60%}}@media(max-width: 480px){.dops-foldable-card__main{flex-basis:100%}}@media(max-width: 480px){.dops-foldable-card__header{flex-wrap:wrap}}@media(max-width: 480px){.dops-foldable-card__header-text{font-size:.875rem}}.dops-foldable-card__header-text .dops-button{margin-right:.5rem}@media(max-width: 480px){.dops-foldable-card__subheader{display:none}}@media(max-width: 480px){.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary,.dops-foldable-card.has-expanded-summary .dops-foldable-card__summary_expanded{text-align:right;margin-top:.5rem}}.jp-footer{text-align:center;margin:1rem 0 2rem}@media(max-width: 1040px){.jp-footer{margin:2rem 0 1.5rem}}@media(max-width: 660px){.jp-footer{margin:1.5rem 0 1rem}}.jp-footer__rna-footer{max-width:65rem;padding:1.5rem;margin:0 auto}.jp-footer__a8c-attr-container{margin-bottom:.5rem}.jp-footer__a8c-attr{width:11.25rem}.jp-footer__a8c-attr path{fill:#888}.jp-footer__links{border-top:1px #e1e1e1 solid;border-bottom:1px #e1e1e1 solid;margin-top:0;margin-bottom:1rem}@media(max-width: 660px){.jp-footer__links{border-bottom:none}}.jp-footer__link-item{display:inline-block;margin-bottom:0}@media(min-width: 661px){.jp-footer__link-item{display:inline-block}}@media(max-width: 660px){.jp-footer__link-item{display:block;border-bottom:1px #e1e1e1 solid}}.jp-footer__link{padding:1rem .5rem;color:#888;display:inline-block;cursor:pointer}.jp-footer__link:visited{color:#888}.jp-footer__link:hover,.jp-footer__link:active{color:#272727}@media(max-width: 660px){.jp-footer__link{display:block;padding:.5rem 0;border-bottom:1px #e1e1e1 solid}.jp-footer__link:last-of-type{border-bottom:none}}.jp-dev-card.jp-dev-card{position:fixed;bottom:10px;left:10px;z-index:100;padding:8px;font-size:12px;text-align:right}.jp-dev-card.jp-dev-card ul{margin-top:6px}.jp-dev-card.jp-dev-card li{margin-top:2px;margin-bottom:0}.jp-dev-card li.jp-dev-card__deprecated-plans-list-header{margin-top:8px;margin-bottom:8px;text-align:center;font-style:italic}.jp-dev-card__heading{font-weight:600}.jp-dev-card__subheading{font-size:11px;color:#888}.jp-dev-card__close{float:left;cursor:pointer}.jp-loading-placeholder{margin-top:30vh;margin-bottom:25vh;color:#d5d5d5;font-size:12vw;text-align:center}@media(min-width: 961px){.jp-loading-placeholder{font-size:120px}}.jp-loading-placeholder .dashicons{font-size:inherit;width:auto;height:auto}@media(max-width: 480px){.dops-notice ul{font-size:.75rem}}.jp-license-activation-notice__external-link svg.gridicons-external{margin-right:.25rem}.jp-unlinked-notice .jp-connection-banner__icon{align-self:center;margin-left:1rem;line-height:0}.jp-masthead{background-color:#fff;text-align:center;box-shadow:0 1px 0 #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04)}@media(max-width: 48.875rem){.jp-masthead{padding:0 1.5rem}.jetpack-masterbar .jp-masthead{padding-right:4rem}}.jp-masthead__inside-container{display:flex;flex-wrap:wrap;margin:0 auto;width:100%;max-width:65rem;padding-bottom:.375rem}@media(max-width: 1250px){.jp-masthead__inside-container{max-width:95%}}.jp-masthead__logo-container{flex-grow:0;flex-shrink:0;padding:.6875rem 0 0}@media(max-width: 480px){.jp-masthead__logo-container{margin-left:1rem}}.jp-masthead__logo-link{display:inline-block;outline:none;vertical-align:middle}.jp-masthead__logo-link:focus{line-height:0;box-shadow:0 0 0 2px #78dcfa}.jp-masthead__logo-link+code{margin:0 10px;padding:5px 9px;border-radius:2px;background:#e6ecf1;color:#647a88}.jp-masthead__nav{display:flex;flex-wrap:nowrap;flex-grow:1;flex-shrink:0;text-align:left;margin-top:.375rem;padding:.25rem 0}.jp-masthead__nav .dops-button-group{flex-grow:1;align-self:center;font-size:0}@media(max-width: 480px){.jp-masthead__nav{text-align:right}}#sandbox-domain-badge{background:#d63638;text-transform:uppercase;letter-spacing:.2em;text-shadow:none;font-size:9px;font-weight:bold;cursor:pointer;color:#fff}.jp-module-settings__external-link{font-size:.875rem}.jp-module-settings__read-more{clear:both;margin-top:1rem}@media(min-width: 481px){.jp-module-settings__read-more{margin-top:2rem}}.jp-module-settings__read-more .dops-button.is-compact.is-borderless,.jp-module-settings__read-more .jp-module-settings__more-text{vertical-align:middle}.jp-related-posts-preview{position:relative;margin-top:.5rem;padding:1rem .5rem;width:100%;background:#f6f6f6;box-sizing:border-box;box-shadow:none}.jp-related-posts-settings__preview-label{margin-bottom:.5rem;margin-top:1.5rem;font-size:.875rem;font-weight:600}.jp-related-posts-preview__title{margin:0 .5rem .6875rem 0;font-size:.6875rem;font-weight:600}.jp-related-posts-preview__post-title{font-size:.9375rem;font-weight:400;margin:0}.jp-related-posts-preview__post-context{font-size:.9375rem;opacity:.6;margin:0}.jp-related-posts-preview__item{box-sizing:border-box;display:inline-block;width:33.33%;padding:.5rem;vertical-align:top}@media(max-width: 480px){.jp-related-posts-preview__item{width:100%}}.jp-related-posts-preview__item img{max-width:100%;margin-bottom:.5rem}.jp-support-card{margin-top:1rem;margin-bottom:0}.jp-support-card__description{font-size:.875rem;line-height:1.65}.jp-support-card__description:first-of-type{margin-top:4px}.jp-support-card__description:last-of-type{margin-bottom:0}.jp-support-card__description .dops-button{margin:0 0 0 16px}@media(max-width: 960px){.jp-support-card__description .dops-button{margin:0 0 8px 16px}}.jp-support-card__link{font-style:italic}@media(max-width: 660px){.jp-support-card__link{display:block;width:100%;padding:.625rem 0;border-top:1px rgba(213,213,213,.5) solid}.jp-support-card__link:first-letter{text-transform:capitalize}.jp-support-card__link:first-of-type{border-top:0}}.jp-support-card__happiness{margin-bottom:0;display:flex;flex-flow:row nowrap}@media(max-width: 660px){.jp-support-card__happiness .jp-support-card__description:first-of-type{margin-bottom:1rem}}.jp-support-card__social{background-color:#fbfbfb;padding:1rem}@media(max-width: 660px){.jp-support-card__social{background:#fff;margin-top:1rem;padding:0 1rem}}.jp-support-card__header{font-weight:400;font-size:1.25rem;margin:0}.jp-support-card__happiness-contact{flex-shrink:1;flex-grow:1}.jp-form-legend,.jp-form-label-wide{padding:1rem 0 .3125rem;font-size:.875rem;font-weight:600}.jp-form-label{display:block;font-size:.875rem;line-height:1.5;margin-bottom:.3125rem}.jp-form-label-wide{padding:.5rem 0;display:block}.jp-form-label input[type=radio]+span{font-weight:normal;margin-right:8px}.jp-form-button{margin-top:1rem}@media(min-width: 481px){.jp-form-button{position:absolute;left:1rem;bottom:1rem}}.jp-form-toggle-explanation{font-size:.875rem;word-break:break-word;vertical-align:baseline}.jp-form-toggle-explanation .jp-form-toggle-privacy-info{margin-right:.3125rem;padding-right:.3125rem;border-right:1px solid rgba(162,162,162,.5)}.jp-form-fieldset{clear:both;position:relative}.jp-form-fieldset .jp-form-legend+.jp-form-setting-explanation{margin-top:0;margin-bottom:.5rem}.jp-form-input-with-prefix{display:inline-flex;width:100%;margin-bottom:1.5rem}.jp-form-input-with-prefix span:first-child{min-width:3.75rem;text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap}@media(max-width: 660px){.jp-form-input-with-prefix span:first-child{display:block;text-align:right}}.jp-form-input-with-prefix input[type=text]{width:100%}@media(min-width: 661px){.jp-form-input-with-prefix input[type=text]{border-right:0}}@media(max-width: 660px){.jp-form-input-with-prefix input[type=text]{border-top:0}}@media(max-width: 660px){.jp-form-input-with-prefix{display:block;box-sizing:border-box}}.jp-form-input-suffix{text-align:center;background:#f6f6f6;border:1px solid #c8d7e1;color:#4f748e;padding:.5rem .875rem;white-space:nowrap;flex:1 0 auto;display:flex}button.jp-form-input-suffix{background:initial;border-radius:0}.jp-form-has-child{margin-bottom:1.5rem}.jp-form-has-child:last-child{margin-bottom:0}.jp-form-has-child>.jp-form-fieldset,.jp-form-has-child>.jp-form-setting-explanation{margin-right:2.25rem}.jp-form-has-child>.jp-form-fieldset{margin-bottom:1rem}.jp-form-block-fade{position:absolute;top:0;right:0;z-index:1;background:rgba(255,255,255,.8);width:100%;height:100%}.jp-form-offlinemode-message.is-compact{width:100%;padding:0 1rem;position:absolute;top:-24px;z-index:1}.jp-form-textarea-wide{width:100%}.react-tagsinput{border:1px solid #e9eff3;padding:.15625rem}.react-tagsinput--focused{border-color:#3582c4}.react-tagsinput-tag{background-color:#00aadc;border-radius:2px;border:1px solid #0087be;color:#fff;display:inline-block;font-size:13px;padding:.125rem .5rem .1875rem .375rem;margin:.15625rem;transition:background-color .2s ease-out}.react-tagsinput-tag:hover{background-color:#26b7e2}.react-tagsinput-remove{cursor:pointer;font-weight:bold;transition:color .2s ease-out}.react-tagsinput-remove:hover{color:#caf3ff}.react-tagsinput-tag a::before{content:" ×"}input[type=text].react-tagsinput-input{width:9.375rem;height:1.875rem;margin:0;padding:.3125rem;font-size:13px;vertical-align:middle;border:none;box-shadow:none}input[type=text].react-tagsinput-input::-ms-clear{display:none}.jetpack-pagestyles .vp-notice,.jetpack-pagestyles .woocommerce-message,.jetpack-pagestyles .wc-connect{display:none}.jetpack-pagestyles .vp-notice-jp a{text-decoration:underline}.jetpack-pagestyles .woocommerce-message.dops-notice{display:block;padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice::before{content:""}.jetpack-pagestyles .woocommerce-message.dops-notice .submit{padding:0}.jetpack-pagestyles .woocommerce-message.dops-notice .notice-dismiss::before{display:none}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>div{max-width:620px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__text>a{margin-left:15px}.jetpack-pagestyles .woocommerce-message.dops-notice .dops-notice__moved_text{margin-bottom:5px}.jetpack-pagestyles .dops-notice__action.notice-dismiss{height:100%}.jp-inline-expand.dops-card{box-shadow:none;padding:0}.jp-inline-expand .jp-inline-expand-action{font-size:.875rem;cursor:pointer}.jp-inline-expand .jp-inline-expand-action .gridicon{transition:transform .15s cubic-bezier(0.175, 0.885, 0.32, 1.275),color .5s ease-in;vertical-align:text-bottom;display:inline-block;margin:0 5px}.jp-inline-expand.is-expanded .jp-inline-expand-action .gridicon{transform:rotate(-180deg)}.jp-inline-expand.is-expanded .jp-inline-expand-content{padding:16px 0 0}.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling+.form-toggle__label .form-toggle__switch:after{right:8px}.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact.is-toggling:checked+.form-toggle__label .form-toggle__switch:after{right:0}.dops-section-nav-tab__text .gridicon{vertical-align:middle;margin:0 5px 2px 0}.jp-settings-card__configure-link{display:flex;margin-bottom:0}.jp-form-settings-card{margin-bottom:1.5rem;font-size:.875rem}.jp-form-settings-card+.jp-at-a-glance__stats-card{margin-bottom:1.5rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{color:#444}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header{padding-right:1.5rem}}.jp-form-settings-card .dops-foldable-card .form-toggle__switch{float:right;margin-top:.125rem}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__header-text{font-size:.875rem}.jp-form-settings-card .dops-foldable-card.jp-foldable-settings-disable .dops-foldable-card__header{color:#dadada}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__main{max-width:85%}}.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{left:.625rem}@media(max-width: 480px){.jp-form-settings-card .dops-foldable-card .dops-foldable-card__action{left:.0625rem}}.jp-form-settings-card .dops-foldable-card .jp-support-info{left:-1.3125rem;top:.4375rem}@media(max-width: 480px){.jp-form-settings-card .dops-foldable-card .jp-support-info{left:-1.875rem}}.jp-form-settings-card .dops-foldable-card .jp-form-legend:first-child,.jp-form-settings-card .dops-foldable-card .jp-form-label-wide:first-child{padding-top:.4375rem}@media(min-width: 481px){.jp-form-settings-card .dops-foldable-card__header{padding-top:1.75rem;padding-bottom:1.75rem}}.jp-foldable-settings-standalone .dops-foldable-card__header-text{font-size:.875rem}@media(min-width: 481px){.jp-foldable-settings-standalone .dops-foldable-card__header,.jp-foldable-settings-standalone.dops-card.is-expanded .dops-foldable-card__content{padding-right:1.5rem;padding-left:1.5rem}.jp-foldable-settings-standalone .dops-foldable-card__action{left:.625rem}.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{left:.125rem;top:0}}@media(max-width: 480px){.jp-foldable-settings-standalone .jp-form-settings-group .jp-support-info{left:-1.9375rem;top:.375rem}}.jp-banner__no-border{border-right:none !important}.jp-banner__no-border .dops-banner__icon-circle{background:none !important;padding:0 3px 0 0}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon{width:28px;height:28px}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-info{color:#0087be}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-notice{color:#f0b849}.jp-banner__no-border .dops-banner__icon-circle svg.gridicon.gridicons-checkmark-circle{color:#4ab866}.jp-banner__no-border .dops-banner__description{font-size:.875rem;line-height:1.65;color:#537994;margin-top:0}.jp-form-settings-group{position:relative;margin-bottom:0}.jp-form-settings-group p{font-size:.875rem;margin-top:0;margin-bottom:1.5rem}.jp-form-settings-group fieldset p:last-child{margin-bottom:8px}.jp-form-settings-group .form-toggle__label{margin-top:.25rem;margin-bottom:.25rem}.jp-form-settings-group .form-toggle__switch{float:right;margin-top:2px}.jp-form-settings-group .jp-form-setting-explanation{color:#747474;display:block;margin:.3125rem 0 .3125rem .875rem;font-size:.875rem;font-style:italic;font-weight:400;word-break:break-word}.jp-form-settings-group .jp-form-setting-explanation+.dops-card{margin-top:1rem}.jp-form-settings-group .jp-form-setting-explanation.is-warning{color:#d94f4f}.jp-form-settings-group .jp-form-setting-explanation a{text-decoration:underline}.dops-foldable-card .jp-form-settings-group{padding-bottom:16px}.jp-form-settings-group .dops-card{padding-left:3rem}@media(max-width: 480px){.jp-form-settings-group .jp-support-info{left:1rem;top:1.25rem}}.jp-form-settings-group .jp-support-info+p{margin-top:2px}.jp-form-settings-group .jp-support-info+span{padding-top:2px;display:block}.jp-form-settings-group .form-toggle__switch{float:right;margin-top:2px}.jp-form-settings-group>.dops-card:first-child{margin-bottom:0}.dops-foldable-card .jp-form-settings-group .dops-card{padding:0;box-shadow:none}.jp-form-settings-group.foldable-wrapper>.dops-card{padding:0}.jp-apps-card{margin-top:4rem;margin-bottom:0}.jp-apps-card__content{margin-bottom:0}.jp-apps-card__content.dops-card{padding:0}.jp-apps-card__content a:not(.dops-button){font-style:italic}.jp-apps-card__dismiss{position:absolute;top:8px;left:8px}.jp-apps-card__dismiss.dops-button.is-compact{padding:8px 8px 2px 8px}.jp-apps-card__top{padding:3.75rem 0 0;background:#fff;text-align:center}.jp-apps-card__top img{max-width:26%;padding-top:10px}.jp-apps-card__description{max-width:80%;margin:0 auto;padding:.625rem 1.5rem 1.5rem;line-height:1.65;color:#000;text-align:center}.jp-apps-card__description .dops-button{margin:8px 0}.jp-apps-card__paragraph{font-size:1rem}.jp-apps-card__header{margin-top:0;margin-bottom:.3125rem;font-size:1.25rem;font-weight:500}.jp-apps-card__promo_subhead{margin-top:0;font-style:italic}.jp-apps-card__apps-badges{display:flex;flex-direction:row;justify-content:center;align-items:center}@media(max-width: 480px){.jp-apps-card__apps-badges{flex-direction:column}.jp-apps-card__apps-badges .apps-badge:first-child{margin-left:0}.jp-apps-card__apps-badges .apps-badge:last-child{margin-top:1rem}}.jp-themes-card{margin-bottom:1.25rem}.jp-dialogue-full__container{box-sizing:border-box;position:absolute;top:0;left:0;bottom:0;right:0;z-index:100;background:rgba(246,246,246,.95);text-align:center;padding:2rem;height:100%}.jp-dialogue{text-align:center;max-width:37.5rem;margin:0 auto 2rem;overflow:hidden}@media(max-width: 660px){.jp-dialogue{text-align:right}}.jp-dialogue p{font-size:.875rem;color:#747474}.jp-dialogue img{max-width:100%}.jp-dialogue p+img{margin:2rem 0 1rem}.jp-dialogue .dops-card{margin-bottom:0}.jp-dialogue .jp-dialogue-card__below{text-align:right}.jp-dialogue-full__dismiss{cursor:pointer;position:absolute;left:-10px;top:-10px;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-dialogue__title{font-weight:300;text-align:center;font-size:1.5rem;margin-bottom:2rem}.jp-dialogue__note,a.jp-dialogue__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-full__svg-jupiter{position:absolute;left:0;top:5rem;opacity:.9}.jp-dialogue-full__svg-stars{position:absolute;right:6.25rem;top:6.25rem;opacity:.9}.jp-dialogue__cta-container{padding:.5rem 0 0}.jp-dialogue__cta-container .dops-button{margin:0 .5rem}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child{padding-right:30px}.jp-upgrade-notice__content .jp-upgrade-notice__enable-module .jp-form-has-child .jp-form-fieldset{margin-bottom:.4rem}.jp-upgrade-notice__enable-module{margin-bottom:calc(1em + 8px)}.jp-upgrade-notice__enable-module .jp-form-settings-group{margin:0px auto;max-width:400px;text-align:right}.jp-upgrade-notice__enable-module .jp-form-has-child{padding:10px;padding-left:30px}.jp-upgrade-notice__enable-module .jp-support-info{top:.9375rem;left:.9375rem}.jp-dialogue-modern-full__container{box-sizing:border-box;position:fixed;top:0;left:0;bottom:0;right:0;z-index:1000;background:rgba(246,246,246,.95);padding:1rem 0 0 0;height:100%;overflow:auto}@media(min-width: 961px){.jp-dialogue-modern-full__container{padding:2rem;right:160px}}body.jp-dialogue-modern-showing{overflow:hidden}.jp-dialogue-modern{max-width:18.75rem;margin:2rem auto;overflow:hidden;position:relative;background-color:#fff;box-shadow:0 5px 24px 0 rgba(0,0,0,.13)}.jp-dialogue-modern p{font-size:1rem;color:#000;text-align:right}.jp-dialogue-modern img{text-align:center;max-width:100%}.jp-dialogue-modern li{text-align:right;list-style:disc outside none;margin:1rem;font-size:1rem;color:#000}.jp-dialogue-modern p+img{margin:2rem 0 1rem}.jp-dialogue-modern .dops-card{margin-bottom:0}.jp-dialogue-modern .jp-dialogue-modern-card__below{text-align:right}.jp-dialogue-modern figure{margin:0;margin-bottom:12px}.jp-dialogue-modern figure figcaption{text-align:center}.jp-dialogue-modern a :not(.wp-block-button__link){text-decoration:underline}.jp-dialogue-modern-full__dismiss{cursor:pointer;position:absolute;left:-16px;top:-16px;fill:#2c3338;padding:1rem;height:2rem;width:2rem}.jp-dialogue-modern.has-featured-image .jp-dialogue-modern-full__dismiss{fill:#dcdcde}h1.jp-dialogue-modern__title{font-weight:600;text-align:right;font-size:1.5rem;margin:0 0 2rem 0}.jp-dialogue-modern__content{background:#fff;padding:32px 32px}.jp-dialogue-modern__cta-container{text-align:center;line-height:200%;padding:.5rem 0 0}.jp-dialogue-modern__cta-container .dops-button{margin:0 .5rem}.jp-dialogue-modern__note,a.jp-dialogue-modern__note{margin:0;padding:1rem 0 0;font-size:.875rem;clear:both;font-style:italic}.jp-dialogue-modern-full__svg-jupiter{position:absolute;left:0;top:5rem;opacity:.9}.jp-dialogue-modern-full__svg-stars{position:absolute;right:6.25rem;top:6.25rem;opacity:.9}.jetpack-about__link-back,.jetpack-about__main,.jetpack-about__plugin{background-color:#fff;border:1px solid #dcdcde}.jetpack-about__main,.jetpack-about__colophon{font-size:14px}.jetpack-about__main p,.jetpack-about__colophon p{font-size:14px}.jetpack-about__link-back{padding:16px 16px 13px;border-bottom:none}.jetpack-about__link-back a{color:#787c82;font-size:.75rem}.jetpack-about__link-back a:hover,.jetpack-about__link-back a:active{color:#2f3032}.jetpack-about__link-back a svg{fill:#787c82;height:24px;margin-left:4px;margin-top:-3px;vertical-align:middle;width:24px}.jetpack-about__main{padding:36px}.jetpack-about__logo{width:265px}@media screen and (max-width: 400px){.jetpack-about__logo{width:100%}}.jetpack-about__content{display:flex}@media screen and (max-width: 782px){.jetpack-about__content{flex-wrap:wrap}}.jetpack-about__text{order:1}.jetpack-about__text p{font-size:1rem;line-height:1.6}.jetpack-about__text p:last-child{margin-bottom:0}.jetpack-about__images{text-align:center;margin-right:48px;order:2}@media screen and (max-width: 782px){.jetpack-about__images{margin-right:0;order:0;text-align:right;width:100%}}.jetpack-about__images .meet-the-team{margin-bottom:0;text-align:center}.jetpack-about__gravatars{display:flex;flex-wrap:wrap;width:320px}@media screen and (max-width: 450px){.jetpack-about__gravatars{max-width:320px;width:100%}}.jetpack-about__gravatars li{margin-bottom:0;width:25%}.jetpack-about__gravatars li img{max-width:80px;vertical-align:top;width:100%;height:100%}.jetpack-about__colophon{margin-bottom:3rem}.jetpack-about__colophon h3{margin-top:2.4375rem}.jetpack-about__services-more{margin-top:1.5em;text-align:center}.jetpack-about__services{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px}.jetpack-about__plugin{margin-bottom:0}.jetpack-about__plugin .plugin-card-top{padding:20px 20px 15px;position:relative}.jetpack-about__plugin .plugin-card-top .name,.jetpack-about__plugin .plugin-card-top .desc,.jetpack-about__plugin .plugin-card-top .details-link{margin-right:148px}.jetpack-about__plugin .plugin-card-top .name h3{margin-top:0}.jetpack-about__plugin .plugin-card-top .details-link{font-weight:500}.jetpack-about__plugin .plugin-card-bottom{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;justify-content:space-between}.jetpack-about__plugin .plugin-card-bottom .meta{margin-left:1em}.jetpack-about__plugin .plugin-card-bottom .num-ratings{display:inline-block}.jetpack-about__plugin .plugin-card-bottom .action-buttons{clear:none;float:none;margin:.5em 0}.jetpack-about__plugin .plugin-card-bottom .action-buttons li:last-child{margin-bottom:0}.mobile-magic-link__button{cursor:pointer}.mobile-magic-link__modal__body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.mobile-magic-link__modal__body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.mobile-magic-link__modal__body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.mobile-magic-link__modal-actions{margin:2rem 0}.mobile-magic-link__modal-actions .mobile-magic-link__modal-cancel{margin-left:1em}.jp-at-a-glance{margin-bottom:3rem}.jp-at-a-glance__stats-card{padding:0}.jp-at-a-glance__stats-empty{text-align:center;margin-bottom:0}.jp-at-a-glance__stats-empty p{font-size:.875rem;color:#747474}.jp-at-a-glance__stats-inactive{padding:1rem}@media(min-width: 661px){.jp-at-a-glance__stats-inactive{display:flex;flex-wrap:nowrap;flex-direction:row;align-items:center}}@media(max-width: 660px){.jp-at-a-glance__stats-inactive-icon{display:none}}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-icon{flex-basis:10%}}.jp-at-a-glance__stats-inactive-text{font-size:.875rem;line-height:1.5}@media(max-width: 660px){.jp-at-a-glance__stats-inactive-text{padding:0 0 1rem}}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-text{flex-basis:50%;padding:0 1rem}}.jp-at-a-glance__stats-inactive-button{text-align:right}@media(min-width: 661px){.jp-at-a-glance__stats-inactive-button{flex-basis:40%;text-align:left}}.jp-at-a-glance__stats-chart{padding:1rem;position:relative}.jp-at-a-glance__stats-chart .components-spinner{position:absolute;top:50%;right:50%;transform:translate(50%, -50%)}.jp-at-a-glance__stats-bottom{margin:2rem 0 0}@media(max-width: 480px){.jp-at-a-glance__stats-bottom{box-shadow:0 0 0 1px #c3c4c7}}.jp-at-a-glance__stats-summary{text-align:center;border-bottom:1px #c3c4c7 solid}@media(min-width: 661px){.jp-at-a-glance__stats-summary{flex-wrap:nowrap;display:flex;flex-direction:row}}@media(max-width: 660px){.jp-at-a-glance__stats-summary{display:block}}.jp-at-a-glance__stats-summary-today,.jp-at-a-glance__stats-summary-bestday{flex-basis:25%;padding:1rem;box-shadow:0 0 0 1px #c3c4c7}@media(max-width: 660px){.jp-at-a-glance__stats-summary-today{margin-top:-0.0625rem}}@media(min-width: 661px){.jp-at-a-glance__stats-summary-bestday{margin:0 .0625rem}}@media(max-width: 660px){.jp-at-a-glance__stats-summary-bestday,.jp-at-a-glance__stats-summary-alltime{margin-top:.0625rem}}.jp-at-a-glance__stats-summary-alltime{flex-basis:50%;padding:1rem;box-shadow:0 0 0 1px #c3c4c7}@media(min-width: 661px){.jp-at-a-glance__stats-summary-alltime{max-width:50%;display:flex;flex-grow:1;flex-shrink:1}}.jp-at-a-glance__stats-alltime-views,.jp-at-a-glance__stats-alltime-comments{flex-basis:50%}.jp-at-a-glance__stats-cta{padding:1rem;background-color:#fbfbfb}@media(min-width: 661px){.jp-at-a-glance__stats-cta{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center}}@media(max-width: 660px){.jp-at-a-glance__stats-cta{display:block}}@media(min-width: 661px){.jp-at-a-glance__stats-cta-description{flex-basis:30%}}.jp-at-a-glance__stat-details{margin:0;font-size:.875rem}.jp-at-a-glance__stat-number{font-size:1.5rem;font-weight:400;margin:.5rem 0}.jp-at-a-glance__stats-ctas{display:flex;flex-direction:row;align-items:center;justify-content:flex-end}@media(min-width: 661px){.jp-at-a-glance__stats-ctas{text-align:left;flex-basis:70%}}@media(max-width: 660px){.jp-at-a-glance__stats-ctas{text-align:center;flex-direction:column}.jp-at-a-glance__stats-ctas .dops-button{width:100%;margin-bottom:.25rem}}.jp-at-a-glance__stats-ctas .dops-button{text-align:center;margin:.25rem;margin-left:.5rem}.jp-at-a-glance__stats-views{margin-top:0;margin-bottom:0}.jp-at-a-glance__stats-view{display:inline-block;margin-top:0;margin-bottom:0;margin-right:1rem}.jp-at-a-glance__stats-view:focus{outline:0}@media(max-width: 480px){.jp-at-a-glance__stats-view{margin-right:0;margin-left:1rem}}.jp-at-a-glance__stats-view-link,.jp-at-a-glance__stats-view-link:visited{color:#a2a2a2;text-decoration:underline}.jp-at-a-glance__stats-view-link.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:focus.is-current,.jp-at-a-glance__stats-view-link:visited.is-current,.jp-at-a-glance__stats-view-link:visited:visited.is-current,.jp-at-a-glance__stats-view-link:visited:focus.is-current{color:#1d2327;text-decoration:none}.jp-at-a-glance__stats-view-link:focus{outline:0;box-shadow:0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}.jp-at-a-glance__item-grid{display:flex}@media(max-width: 660px){.jp-at-a-glance__item-grid{display:block}}.jp-at-a-glance__left,.jp-at-a-glance__right{display:flex;min-width:0}@media(min-width: 661px){.jp-at-a-glance__left,.jp-at-a-glance__right{flex-basis:50%;margin-bottom:1rem}}@media(max-width: 660px){.jp-at-a-glance__left,.jp-at-a-glance__right{margin-bottom:.75rem}}.jp-at-a-glance__left>div,.jp-at-a-glance__left .jp-dash-item,.jp-at-a-glance__right>div,.jp-at-a-glance__right .jp-dash-item{min-width:0;flex-grow:1;display:flex;flex-direction:column}.jp-at-a-glance__left>div,.jp-at-a-glance__right>div{flex-basis:100%}.jp-at-a-glance__left .jp-dash-item .dops-card,.jp-at-a-glance__right .jp-dash-item .dops-card{flex-grow:1}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact{flex-grow:0}.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{margin-right:0;padding-right:0}@media(max-width: 480px){.jp-at-a-glance__left .jp-dash-item .dops-card.is-compact a.dops-notice__action,.jp-at-a-glance__right .jp-dash-item .dops-card.is-compact a.dops-notice__action{text-transform:none}}.jp-at-a-glance__left .jp-dash-item__card,.jp-at-a-glance__right .jp-dash-item__card{display:flex}.jp-search-config-aag{width:100%}.jp-at-a-glance__left{display:flex}@media(min-width: 661px){.jp-at-a-glance__left{margin-left:1rem}.jp-at-a-glance__left:last-child{flex-basis:calc( 50% - 0.5rem )}}.dops-chart__tooltip .tip-arrow{display:none}.jp-connection-type .jp-dash-item__card{align-items:flex-start}.jp-connection-settings__info{display:flex}.jp-connection-settings__actions{margin:1em 0 0}.jp-connection-settings__actions a{cursor:pointer}.jp-connection-settings__text{margin-right:1rem;word-break:break-word}.jp-connection-settings__info .gridicon{opacity:.6}.jp-connection-settings__info .gridicon,.jp-connection-settings__info .jp-connection-settings__site-icon{background:#c8d7e1;color:#fff;min-width:4rem}.jp-connection-settings__info .jp-connection-settings__gravatar{display:inline-block;min-width:4rem;background:#a2a2a2;border-radius:50%;margin-bottom:0}.jp-connection-settings__username{font-weight:600}.jp-connection-settings__email{color:#a2a2a2;font-size:.875rem;font-style:italic;font-weight:400}.jp-connection-settings__modal.dops-modal{max-width:635px;min-height:400px}@media(min-width: 661px){.jp-connection-settings__modal.dops-modal{min-height:auto}}.jp-connection-settings__modal-body{margin:0;padding:1.5rem 2rem;font-size:.875rem;color:#2e4453;text-align:center}.jp-connection-settings__modal-body h2{margin:2rem 0 1.5rem;font-size:2rem;font-weight:300;color:#2e4453}.jp-connection-settings__modal-body h4{margin:1rem 1.5rem 0;font-size:1rem;font-weight:400;line-height:1.5em;color:#668eaa}.jp-connection-settings__modal-body p{font-size:.875rem}.jp-connection-settings__modal-body ul{margin:1.5rem 0 2.25rem;color:#537994}.jp-connection-settings__modal-body li{position:relative;display:block;margin:0;padding:1rem 2.75rem 1rem .5rem;border-bottom:1px solid #e1e1e1;text-align:right}.jp-connection-settings__modal-body li:first-of-type{border-top:1px solid #e1e1e1}.jp-connection-settings__modal-body .gridicon{position:absolute;right:1rem;top:1rem;vertical-align:text-bottom;color:#537994}.jp-connection-settings__modal-cancel{margin-left:1em}.jp-connection-settings__modal-more a{color:#0087be;text-decoration:underline}.jp-dash-item__manage-in-wpcom{margin-top:1px;width:100%}.jp-dash-item .dops-banner.dops-banner{width:100%;margin-bottom:0}.jp-dash-item__videopress .jp-dash-item__card{flex-direction:column}.jp-dash-item__videopress-storage{margin-top:1em}.jp-landing__plans{margin-bottom:32px}.jp-landing__plans .dops-button{margin-left:10px}.jp-landing__card-header{margin-top:0;font-size:1rem;color:#6f6f6f}.jp-landing__licensing-actions{display:flex;align-items:center;justify-content:center}@media(max-width: 660px){.jp-landing__licensing-actions span{display:none}}@media(min-width: 481px){.jp-landing__licensing-actions{justify-content:space-between}}.jp-landing__licensing-actions .jp-landing__licensing-actions-item{display:flex;flex-direction:column;align-items:center;text-align:center}@media(min-width: 481px){.jp-landing__licensing-actions .jp-landing__licensing-actions-item{flex-direction:row}}@media(max-width: 660px){.jp-landing__licensing-actions .jp-landing__licensing-actions-item{justify-content:space-between;flex:1}}.jp-landing__licensing-actions .jp-landing__licensing-actions-item .dops-button{margin-left:0}.jp-landing__licensing-actions .jp-landing__licensing-actions-item.no-licenses{justify-content:space-between;flex:1}.jp-landing__licensing-actions .jp-landing__licensing-actions-item.no-licenses{justify-content:flex-end}.all-purchases__link{display:inline-block;box-sizing:border-box;padding:7px 0 9px 20px}@media(max-width: 480px){.all-purchases__link{padding:0px;margin-bottom:15px}}.jp-landing__plan-features-header-recommendations-cta-container{order:30;align-self:center;display:flex;justify-content:flex-end}.jp-landing__plan-features-header-recommendations-cta-container .dops-button{margin-left:0}.jp-landing__plan-features-card{display:flex;flex-basis:32%;flex-wrap:nowrap;flex-grow:1;box-sizing:border-box;margin:.5rem;background-color:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04)}.jp-landing__plan-features-card:last-child{max-width:100%}.is-loading .jp-landing__plan-features-card{width:49.5%}@media(min-width: 661px){.jp-landing__plan-features-card{margin-bottom:1%}}@media(max-width: 660px){.jp-landing__plan-features-card{max-width:100%;margin-bottom:.5rem}}@media(min-width: 481px){.jp-landing__plan-features-card{padding:2rem}}@media(max-width: 480px){.jp-landing__plan-features-card{padding:1rem}}.jp-landing__plan-features-list{list-style:initial;margin-right:1rem}.jp-landing__plan-features-img{width:5.625rem;margin-left:.5rem;line-height:1}@media(min-width: 961px){.jp-landing__plan-features-img{width:7.5rem;margin-left:1.125rem}}.jp-landing__plan-features-icon{display:block;margin-right:-0.5rem}@media(min-width: 481px){.jp-landing__plan-features-icon{margin-right:-1rem}}.jp-landing__plan-features-text{flex:1;font-size:.875rem}.jp-landing__plan-features-title{margin:0;font-size:1.25rem}.jp-landing__plan-features{display:flex;flex-wrap:wrap;flex-direction:row;align-items:stretch;justify-content:space-between;margin-bottom:2rem;margin-right:-0.5rem;margin-left:-0.5rem}@media(max-width: 660px){.jp-landing__plan-features{display:block}}.jp-landing__plan-features-title.is-placeholder{height:1.5rem;max-width:50%}.jp-landing__plan-features-text.is-placeholder{height:2.75rem;max-width:75%}.jp-landing__plan-features-link{width:100%}@media(min-width: 661px){.jp-landing__plan-features-link{text-align:center}}.jp-landing__plan-features-header-jetpack-license .dops-button{margin-top:16px;margin-left:0px;float:left}.jp-form-fieldset>.jp-form-search-setting-explanation{margin-right:2.25rem}.media__videopress-storage{margin-bottom:1.5rem;max-width:50%}.jp-recommendations-question__main{min-height:480px;box-shadow:0px 2px 6px rgba(0,0,0,.03),0px 1px 2px rgba(0,0,0,.03);border:1px solid #d5d5d5;background:#fff}.jp-recommendations-question__main--with-illustration{display:grid;grid-template-columns:55% 45%;background:linear-gradient(-120deg, white 0%, white 55%, #c5d9ed 55%)}@media(max-width: 660px){.jp-recommendations-question__main--with-illustration{grid-template-columns:100% 0%;background:#fff}}.jp-recommendations__loading{padding-top:48px}.dops-search__input[type=search]{width:100%}.jp-settings-container .jp-no-results{display:none;font-size:.875rem;line-height:1.5}.jp-settings-container .jp-no-results:last-of-type{display:inherit}@media(max-width: 480px){.dops-search.is-expanded-to-container{height:46px}}.dops-card.jp-settings-description{margin:24px 0 8px;padding:0;background:none;box-shadow:none;border:none}.jp-form-google-label-unverified .dops-button{margin:0 15px}@media(max-width: 660px){.jp-form-google-label-unverified .dops-button{margin-top:10px;width:40%}}.jp-form-google-label-unverified .jp-form-google-separator{padding:.5rem 0}@media(max-width: 660px){.jp-form-google-label-unverified .jp-form-google-separator{margin:25px 0 0;display:inline-block}}.jp-sitemap-row{display:flex;align-items:center;margin-top:1rem}.jp-sitemap-row .dops-clipboard-button-input{flex-grow:1}.jp-form-input-with-prefix-bottom-message{top:-1.25rem;position:relative;line-height:2em;margin-top:5px}.jp-form-site-verification-verified{background-color:#fff;color:#069e08;box-sizing:border-box;margin:0;padding:7px 14px;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;width:100%;display:flex;flex-direction:row;justify-content:left;align-items:center}.jp-form-site-verification-verified .gridicon:first-child{margin-left:5px}@media(min-width: 661px){.jp-form-site-verification-verified{border-right:0}}@media(max-width: 660px){.jp-form-site-verification-verified{border-top:0}}.jp-form-site-verification-edit-button{margin-right:10px;overflow:visible}@media(max-width: 660px){.jp-form-site-verification-edit-button{margin-right:0;margin-left:5px;margin-top:5px}}.jp-form-site-verification-buttons{flex:0 1 20em;display:inline-flex}.jp-form-site-verification-verified-note{font-size:.7em}.jp-form-google-label-unverified-actions{display:flex;align-content:center}.jp-form-google-label-unverified-actions .dops-button{margin-right:10px;margin-left:10px;padding-right:7px;padding-left:7px}#jp-seo-front-page-description{min-height:96px}.jp-seo-front-page-description-card{margin-bottom:0 !important}.jp-seo-front-page-description-container{background:#f6f6f6;border-radius:4px}.jp-seo-front-page-description-count{padding:.25rem}.jp-seo-front-page-description-count-warn{background-color:#f0b849;font-weight:700;border-radius:4px}.jp-seo-front-page-description-count-max{background-color:#d94f4f;font-weight:700;border-radius:4px;color:#fff}.jp-seo-front-page-description-save-button{float:left;margin-top:.75rem}.jp-seo-social-previews .search-preview,.jp-seo-social-previews .facebook-preview,.jp-seo-social-previews .twitter-preview{margin-top:1rem;margin-bottom:1rem}.jp-seo-social-previews-container{display:flex;align-items:center;margin-top:1rem}.jp-seo-social-previews-label{font-weight:600;margin-right:.5rem}.jp-seo-custom-titles-card{margin-bottom:0 !important}.jp-seo-custom-titles-input[type=text]{margin-top:.25rem}.jp-seo-custom-titles-input-controls{display:flex;align-items:flex-end;flex-wrap:wrap;margin-top:.5rem}.jp-seo-custom-titles-input-controls .jp-form-label{margin-bottom:0;font-weight:600}.jp-seo-custom-titles-input-label{margin-left:auto}.jp-seo-custom-titles-input-button::before{content:"+";margin-left:4px}.jp-seo-custom-titles-input-button:not(:first-of-type){margin-right:.5rem}.jp-seo-custom-titles-input-preview{margin-top:.25rem;font-style:italic}.jp-seo-custom-titles-save-button{float:left;margin-top:.75rem}
/*# sourceMappingURL=style.min.rtl.css.map */
diff --git a/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.asset.php b/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.asset.php
new file mode 100644
index 00000000..a7deac9b
--- /dev/null
+++ b/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '35a43b0e52528fd5f3bde7f18d9c3d5e'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js b/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js
index c002b56f..8a820cd2 100644
--- a/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js
+++ b/plugins/jetpack/_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e){function i(){this.galleries=[],this.findAndSetupNewGalleries()}function t(e){this.gallery=e,this.addCaptionEvents(),this.resize(),this.gallery.removeClass("tiled-gallery-unresized")}i.prototype.findAndSetupNewGalleries=function(){var i=this;e(".tiled-gallery.tiled-gallery-unresized").each(function(){i.galleries.push(new t(e(this)))})},i.prototype.resizeAll=function(){e.each(this.galleries,function(e,i){i.resize()})},t.prototype.resizeableElementsSelector=".gallery-row, .gallery-group, .tiled-gallery-item img",t.prototype.addCaptionEvents=function(){this.gallery.find(".tiled-gallery-caption").hide(),this.gallery.find(".tiled-gallery-item").hover(function(){e(this).find(".tiled-gallery-caption").stop(!0,!0).slideDown("fast")},function(){e(this).find(".tiled-gallery-caption").stop(!0,!0).slideUp("fast")})},t.prototype.getExtraDimension=function(e,i,t){if("horizontal"===t){var n="border"===i?"borderLeftWidth":i+"Left",r="border"===i?"borderRightWidth":i+"Right";return(parseInt(e.css(n),10)||0)+(parseInt(e.css(r),10)||0)}if("vertical"===t){var o="border"===i?"borderTopWidth":i+"Top",a="border"===i?"borderBottomWidth":i+"Bottom";return(parseInt(e.css(o),10)||0)+(parseInt(e.css(a),10)||0)}return 0},t.prototype.resize=function(){var i=this.gallery.data("original-width"),t=this.gallery.parent().width(),n=Math.min(1,t/i),r=this;this.gallery.find(this.resizeableElementsSelector).each(function(){var i=e(this),t=r.getExtraDimension(i,"margin","horizontal"),o=r.getExtraDimension(i,"margin","vertical"),a=r.getExtraDimension(i,"padding","horizontal"),l=r.getExtraDimension(i,"padding","vertical"),s=r.getExtraDimension(i,"border","horizontal"),d=r.getExtraDimension(i,"border","vertical"),c=i.data("original-width")+a+s+t,h=i.data("original-height")+l+d+o;i.width(Math.floor(n*c)-t).height(Math.floor(n*h)-o)})};var n=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;e(document).ready(function(){var t=new i;e("body").on("post-load",function(e,i){"string"==typeof i&&"resize"===i?t.resizeAll():t.findAndSetupNewGalleries()}),e(document).on("page-rendered.wpcom-newdash",function(){t.findAndSetupNewGalleries()}),window.chrome&&n?function(i){var t=!1,r=null;function o(){i.resizeAll(),t&&n(o)}e(window).resize(function(){clearTimeout(r),t||n(o),t=!0,r=setTimeout(function(){t=!1},15)})}(t):function(i){e(window).resize(function(){i.resizeAll()})}(t),"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",function(e){wp.isJetpackWidgetPlaced(e,"gallery")&&t.findAndSetupNewGalleries()})})}(jQuery); \ No newline at end of file
+!function(){function e(){this.galleries=[],this.findAndSetupNewGalleries()}function t(e){this.gallery=e,this.addCaptionEvents(),this.resize(),this.gallery.classList.remove("tiled-gallery-unresized")}e.prototype.findAndSetupNewGalleries=function(){var e=this,r=document.querySelectorAll(".tiled-gallery.tiled-gallery-unresized");Array.prototype.forEach.call(r,(function(r){e.galleries.push(new t(r))}))},e.prototype.resizeAll=function(){Array.prototype.forEach.call(this.galleries,(function(e){e.resize()}))},t.prototype.resizeableElementsSelector=".gallery-row, .gallery-group, .tiled-gallery-item img",t.prototype.addCaptionEvents=function(){var e=this.gallery.querySelectorAll(".tiled-gallery-caption");Array.prototype.forEach.call(e,(function(e){e.style.display="none"}));var t=function(e){var t=e.target.closest(".tiled-gallery-item"),r="mouseover"===e.type?"block":"none";if(t){var i=t.querySelector(".tiled-gallery-caption");i&&(i.style.display=r)}};this.gallery.addEventListener("mouseover",t),this.gallery.addEventListener("mouseout",t)},t.prototype.getExtraDimension=function(e,t,r){if("horizontal"===r){var i="border"===t?"borderLeftWidth":t+"Left",n="border"===t?"borderRightWidth":t+"Right";return(parseInt(e.style[i],10)||0)+(parseInt(e.style[n],10)||0)}if("vertical"===r){var o="border"===t?"borderTopWidth":t+"Top",a="border"===t?"borderBottomWidth":t+"Bottom";return(parseInt(e.style[o],10)||0)+(parseInt(e.style[a],10)||0)}return 0},t.prototype.resize=function(){var e=parseInt(this.gallery.dataset.originalWidth,10),t=parseFloat(getComputedStyle(this.gallery.parentNode,null).width.replace("px","")),r=Math.min(1,t/e),i=this,n=this.gallery.querySelectorAll(this.resizeableElementsSelector);Array.prototype.forEach.call(n,(function(e){var t=i.getExtraDimension(e,"margin","horizontal"),n=i.getExtraDimension(e,"margin","vertical"),o=i.getExtraDimension(e,"padding","horizontal"),a=i.getExtraDimension(e,"padding","vertical"),l=i.getExtraDimension(e,"border","horizontal"),s=i.getExtraDimension(e,"border","vertical"),d=parseInt(e.dataset.originalWidth,10)+o+l+t,c=parseInt(e.dataset.originalHeight,10)+a+s+n;e.style.width=Math.floor(r*d)-t+"px",e.style.height=Math.floor(r*c)-n+"px"}))};var r,i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame;r=function(){var t=new e;document.body.addEventListener("is.post-load",(function(){t.findAndSetupNewGalleries()})),"function"==typeof jQuery&&jQuery(document).on("page-rendered.wpcom-newdash",(function(){t.findAndSetupNewGalleries()})),window.chrome&&i?function(e){var t=!1,r=null;function n(){e.resizeAll(),t&&i(n)}window.addEventListener("resize",(function(){clearTimeout(r),t||i(n),t=!0,r=setTimeout((function(){t=!1}),15)}))}(t):function(e){window.addEventListener("resize",(function(){e.resizeAll()}))}(t),"undefined"!=typeof wp&&wp.customize&&wp.customize.selectiveRefresh&&wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(e){wp.isJetpackWidgetPlaced(e,"gallery")&&t.findAndSetupNewGalleries()}))},"loading"!==document.readyState?r():document.addEventListener("DOMContentLoaded",r)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/twitter-timeline.min.asset.php b/plugins/jetpack/_inc/build/twitter-timeline.min.asset.php
new file mode 100644
index 00000000..058f7b78
--- /dev/null
+++ b/plugins/jetpack/_inc/build/twitter-timeline.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'c19f548cdf3c6d7c8479ee915f8577fb'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/twitter-timeline.min.js b/plugins/jetpack/_inc/build/twitter-timeline.min.js
index 71f9ae91..7a3cfc8e 100644
--- a/plugins/jetpack/_inc/build/twitter-timeline.min.js
+++ b/plugins/jetpack/_inc/build/twitter-timeline.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t,e,r){var n,s=t.getElementsByTagName(e)[0],i=/^http:/.test(t.location)?"http":"https";t.getElementById(r)||((n=t.createElement(e)).id=r,n.src=i+"://platform.twitter.com/widgets.js",s.parentNode.insertBefore(n,s))}(document,"script","twitter-wjs"); \ No newline at end of file
+!function(){var t,e,r,n,s,i;t=document,e="script",r="twitter-wjs",s=t.getElementsByTagName(e)[0],i=/^http:/.test(t.location)?"http":"https",t.getElementById(r)||((n=t.createElement(e)).id=r,n.src=i+"://platform.twitter.com/widgets.js",s.parentNode.insertBefore(n,s))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/editor-view.min.asset.php b/plugins/jetpack/_inc/build/videopress/js/editor-view.min.asset.php
new file mode 100644
index 00000000..b65c17e0
--- /dev/null
+++ b/plugins/jetpack/_inc/build/videopress/js/editor-view.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'e6b1b9b25494a4c8b3edff2438c54670'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/editor-view.min.js b/plugins/jetpack/_inc/build/videopress/js/editor-view.min.js
index 75f565fc..1ef560f0 100644
--- a/plugins/jetpack/_inc/build/videopress/js/editor-view.min.js
+++ b/plugins/jetpack/_inc/build/videopress/js/editor-view.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global tinyMCE, vpEditorView */
-!function(e,t,a){t.mce=t.mce||{},void 0!==t.mce.views&&(t.mce.videopress_wp_view_renderer={shortcode_string:"videopress",shortcode_data:{},defaults:{w:"",at:"",permalink:!0,hd:!1,loop:!1,freedom:!1,autoplay:!1,flashonly:!1},coerce:t.media.coerce,template:t.template("videopress_iframe_vnext"),getContent:function(){var e,t,o,s="for="+encodeURIComponent(a.home_url_host),i=this.shortcode.attrs.named;for(t in i)switch(t){case"at":parseInt(i[t],10)&&(s+="&"+t+"="+parseInt(i[t],10));break;case"permalink":"false"===i[t]&&(s+="&"+t+"=0");break;case"hd":case"loop":case"autoplay":"true"===i[t]&&(s+="&"+t+"=1")}return e={width:a.content_width,height:.5625*a.content_width,guid:this.shortcode.attrs.numeric[0],urlargs:s},void 0!==i.w&&(o=parseInt(i.w,10))>=a.min_content_width&&o<a.content_width&&(e.width=o,e.height=parseInt(.5625*o,10)),e.ratio=e.height/e.width*100,this.template(e)},edit:function(o){var s=t.shortcode.next(this.shortcode_string,o),i=s.shortcode.attrs.named,l=tinyMCE.activeEditor,n=this,d=tinyMCE.ui.FormItem.prototype.renderHtml;tinyMCE.ui.TextBox.prototype.renderHtml=function(){var e,t,a=this.settings,o=document.createElement(a.multiline?"textarea":"input"),s=["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"];for(e=0;e<s.length;e++)void 0!==a[t=s[e]]&&o.setAttribute(t,a[t]);return a.multiline?o.innerText=this.state.get("value"):(o.setAttribute("type",a.subtype?a.subtype:"text"),o.setAttribute("value",this.state.get("value"))),o.id=this._id,o.className=this.classes,o.setAttribute("hidefocus",1),this.disabled()&&(o.disabled=!0),o.outerHTML},tinyMCE.ui.FormItem.prototype.renderHtml=function(){return _.each(a.modal_labels,function(e,t){e===this.settings.items.text&&this.classes.add("videopress-field-"+t)},this),_.contains([a.modal_labels.hd,a.modal_labels.permalink,a.modal_labels.autoplay,a.modal_labels.loop,a.modal_labels.freedom,a.modal_labels.flashonly],this.settings.items.text)&&this.classes.add("videopress-checkbox"),d.call(this)},_.each(this.defaults,function(e,t){i[t]=this.coerce(i,t)},this),l.windowManager.open({title:a.modal_labels.title,id:"videopress-shortcode-settings-modal",width:520,height:240,body:[{type:"textbox",disabled:!0,name:"guid",label:a.modal_labels.guid,value:s.shortcode.attrs.numeric[0]},{type:"textbox",subtype:"number",min:a.min_content_width,name:"w",label:a.modal_labels.w,value:i.w},{type:"textbox",subtype:"number",min:0,name:"at",label:a.modal_labels.at,value:i.at},{type:"checkbox",name:"hd",label:a.modal_labels.hd,checked:i.hd},{type:"checkbox",name:"permalink",label:a.modal_labels.permalink,checked:i.permalink},{type:"checkbox",name:"autoplay",label:a.modal_labels.autoplay,checked:i.autoplay},{type:"checkbox",name:"loop",label:a.modal_labels.loop,checked:i.loop},{type:"checkbox",name:"freedom",label:a.modal_labels.freedom,checked:i.freedom},{type:"checkbox",name:"flashonly",label:a.modal_labels.flashonly,checked:i.flashonly}],onsubmit:function(e){var a={tag:n.shortcode_string,type:"single",attrs:{named:_.pick(e.data,_.keys(n.defaults)),numeric:[e.data.guid]}};"0"===a.attrs.named.at&&(a.attrs.named.at=""),_.each(n.defaults,function(e,t){a.attrs.named[t]=this.coerce(a.attrs.named,t),e===a.attrs.named[t]&&delete a.attrs.named[t]},n),l.insertContent(t.shortcode.string(a))},onopen:function(t){var o="mce-videopress-field-";_.each(["w","at"],function(e){t.target.$el.find("."+o+e+" .mce-container-body").append('<span class="'+o+"unit "+o+"unit-"+e+'">'+a.modal_labels[e+"_unit"])}),e("body").addClass("modal-open")},onclose:function(){e("body").removeClass("modal-open")}}),tinyMCE.ui.FormItem.prototype.renderHtml=d}},t.mce.views.register("videopress",t.mce.videopress_wp_view_renderer),t.mce.wpvideo_wp_view_renderer=_.extend({},t.mce.videopress_wp_view_renderer,{shortcode_string:"wpvideo"}),t.mce.views.register("wpvideo",t.mce.wpvideo_wp_view_renderer))}(jQuery,wp,vpEditorView); \ No newline at end of file
+!function(e,t,a){t.mce=t.mce||{},void 0!==t.mce.views&&(t.mce.videopress_wp_view_renderer={shortcode_string:"videopress",shortcode_data:{},defaults:{w:"",at:"",permalink:!0,hd:!1,loop:!1,freedom:!1,autoplay:!1,flashonly:!1},coerce:t.media.coerce,template:t.template("videopress_iframe_vnext"),getContent:function(){var e,t,o,s="for="+encodeURIComponent(a.home_url_host),l=this.shortcode.attrs.named;for(t in l)switch(t){case"at":parseInt(l[t],10)&&(s+="&"+t+"="+parseInt(l[t],10));break;case"permalink":"false"===l[t]&&(s+="&"+t+"=0");break;case"hd":case"loop":case"autoplay":"true"===l[t]&&(s+="&"+t+"=1")}return e={width:a.content_width,height:.5625*a.content_width,guid:this.shortcode.attrs.numeric[0],urlargs:s},void 0!==l.w&&(o=parseInt(l.w,10))>=a.min_content_width&&o<a.content_width&&(e.width=o,e.height=parseInt(.5625*o,10)),e.ratio=e.height/e.width*100,this.template(e)},edit:function(o){var s=t.shortcode.next(this.shortcode_string,o),l=s.shortcode.attrs.named,i=tinyMCE.activeEditor,n=this,d=tinyMCE.ui.FormItem.prototype.renderHtml;tinyMCE.ui.TextBox.prototype.renderHtml=function(){var e,t,a=this,o=a.settings,s=document.createElement(o.multiline?"textarea":"input"),l=["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"];for(e=0;e<l.length;e++)void 0!==o[t=l[e]]&&s.setAttribute(t,o[t]);return o.multiline?s.innerText=a.state.get("value"):(s.setAttribute("type",o.subtype?o.subtype:"text"),s.setAttribute("value",a.state.get("value"))),s.id=a._id,s.className=a.classes,s.setAttribute("hidefocus",1),a.disabled()&&(s.disabled=!0),s.outerHTML},tinyMCE.ui.FormItem.prototype.renderHtml=function(){return _.each(a.modal_labels,(function(e,t){e===this.settings.items.text&&this.classes.add("videopress-field-"+t)}),this),_.contains([a.modal_labels.hd,a.modal_labels.permalink,a.modal_labels.autoplay,a.modal_labels.loop,a.modal_labels.freedom,a.modal_labels.flashonly],this.settings.items.text)&&this.classes.add("videopress-checkbox"),d.call(this)},_.each(this.defaults,(function(e,t){l[t]=this.coerce(l,t)}),this),i.windowManager.open({title:a.modal_labels.title,id:"videopress-shortcode-settings-modal",width:520,height:240,body:[{type:"textbox",disabled:!0,name:"guid",label:a.modal_labels.guid,value:s.shortcode.attrs.numeric[0]},{type:"textbox",subtype:"number",min:a.min_content_width,name:"w",label:a.modal_labels.w,value:l.w},{type:"textbox",subtype:"number",min:0,name:"at",label:a.modal_labels.at,value:l.at},{type:"checkbox",name:"hd",label:a.modal_labels.hd,checked:l.hd},{type:"checkbox",name:"permalink",label:a.modal_labels.permalink,checked:l.permalink},{type:"checkbox",name:"autoplay",label:a.modal_labels.autoplay,checked:l.autoplay},{type:"checkbox",name:"loop",label:a.modal_labels.loop,checked:l.loop},{type:"checkbox",name:"freedom",label:a.modal_labels.freedom,checked:l.freedom},{type:"checkbox",name:"flashonly",label:a.modal_labels.flashonly,checked:l.flashonly}],onsubmit:function(e){var a={tag:n.shortcode_string,type:"single",attrs:{named:_.pick(e.data,_.keys(n.defaults)),numeric:[e.data.guid]}};"0"===a.attrs.named.at&&(a.attrs.named.at=""),_.each(n.defaults,(function(e,t){a.attrs.named[t]=this.coerce(a.attrs.named,t),e===a.attrs.named[t]&&delete a.attrs.named[t]}),n),i.insertContent(t.shortcode.string(a))},onopen:function(t){var o="mce-videopress-field-";_.each(["w","at"],(function(e){t.target.$el.find("."+o+e+" .mce-container-body").append('<span class="'+o+"unit "+o+"unit-"+e+'">'+a.modal_labels[e+"_unit"])})),e("body").addClass("modal-open")},onclose:function(){e("body").removeClass("modal-open")}}),tinyMCE.ui.FormItem.prototype.renderHtml=d}},t.mce.views.register("videopress",t.mce.videopress_wp_view_renderer),t.mce.wpvideo_wp_view_renderer=_.extend({},t.mce.videopress_wp_view_renderer,{shortcode_string:"wpvideo"}),t.mce.views.register("wpvideo",t.mce.wpvideo_wp_view_renderer))}(jQuery,wp,vpEditorView); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.asset.php b/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.asset.php
new file mode 100644
index 00000000..604b7b09
--- /dev/null
+++ b/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'a891ec15f74ea41ee715c7c6cfc0c9af'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.js b/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.js
index a2747f95..3342c70d 100644
--- a/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.js
+++ b/plugins/jetpack/_inc/build/videopress/js/gutenberg-video-upload.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* globals wp, lodash */
-wp.apiFetch.use(function(e,t){var a=e.path,i=e.method,o=e.body,n=o?o.get("file"):null;if(!a||-1===a.indexOf("/wp/v2/media"))return t(e);if(!i||"post"!==i.toLowerCase())return t(e);if(!n||0!==n.type.indexOf("video/"))return t(e);wp.media.ajax("videopress-get-upload-token",{async:!1,data:{filename:n.name}}).done(function(t){var a=e.headers||{};a.Authorization='X_UPLOAD_TOKEN token="'+t.upload_token+'" blog_id="'+t.upload_blog_id+'"',e.headers=a,delete e.path,e.url=t.upload_action_url,e.credentials="omit",o.set("media[]",n),o.delete("file"),e.body=o});var d=t(e);return new Promise(function(e,t){d.then(function(t){var a=lodash.get(t,"media[0]"),i=lodash.get(a,"ID"),o=wp.apiFetch({path:"/wp/v2/media/"+i});e(o)}).catch(function(){t()})})}); \ No newline at end of file
+window.videoPressUploadTrack=function(e,o,n,t,a){return new Promise((function(i,d){wp.media.ajax("videopress-get-upload-token",{async:!0,data:{filename:a.name}}).done((function(r){var p={},s={},c=new FormData;p.Authorization='X_UPLOAD_TOKEN token="'+r.upload_token+'" blog_id="'+r.upload_blog_id+'"',s.headers=p,s.method="POST",s.url="https://public-api.wordpress.com/rest/v1.1/videos/"+e+"/tracks",s.credentials="omit",c.append("kind",o),c.append("srclang",n),c.append("label",t),c.append("vtt",a),s.body=c,wp.apiFetch(s).then((function(e){i(e)})).catch((function(e){d(e)}))}))}))},window.videoPressDeleteTrack=function(e,o,n){return new Promise((function(t,a){wp.media.ajax("videopress-get-upload-token",{async:!0}).done((function(i){var d={},r={},p=new FormData;d.Authorization='X_UPLOAD_TOKEN token="'+i.upload_token+'" blog_id="'+i.upload_blog_id+'"',r.headers=d,r.method="POST",r.url="https://public-api.wordpress.com/rest/v1.1/videos/"+e+"/tracks/delete",r.credentials="omit",p.append("kind",o),p.append("srclang",n),r.body=p,wp.apiFetch(r).then((function(e){t(e)})).catch((function(e){a(e)}))}))}))},wp.apiFetch.use((function(e,o){var n=e.path,t=e.method,a=e.body,i=a?a.get("file"):null;if(!n||-1===n.indexOf("/wp/v2/media"))return o(e);if(!t||"post"!==t.toLowerCase())return o(e);if(!i||0!==i.type.indexOf("video/"))return o(e);wp.media.ajax("videopress-get-upload-token",{async:!1,data:{filename:i.name}}).done((function(o){var n=e.headers||{};n.Authorization='X_UPLOAD_TOKEN token="'+o.upload_token+'" blog_id="'+o.upload_blog_id+'"',e.headers=n,delete e.path,e.url=o.upload_action_url,e.credentials="omit",a.set("media[]",i),a.delete("file"),e.body=a}));var d=o(e);return new Promise((function(e,o){d.then((function(e){return e instanceof Response&&e.ok?e.json():e})).then((function(o){var n=lodash.get(o,"media[0]"),t=lodash.get(n,"ID"),a=wp.apiFetch({path:"/wp/v2/media/"+t});e(a)})).catch((function(e){"errors"in e&&"object"==typeof e.errors&&e.errors.length>0&&(e=e.errors.shift()),o(e)}))}))})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.asset.php b/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.asset.php
new file mode 100644
index 00000000..bf034db4
--- /dev/null
+++ b/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'b2805058a2f63ca901ea26e71c77f0bb'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.js b/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.js
index 46446bc5..ddb05b91 100644
--- a/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.js
+++ b/plugins/jetpack/_inc/build/videopress/js/media-video-widget-extensions.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-window.wp=window.wp||{},function(e){var o,d;e.mediaWidgets&&(e.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps=(d=e.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps,function(e){var o,i,t;return i=d.call(this,e),o=_.extend({},i),e.videopress&&e.videopress.guid&&(t=e.videopress.guid),!t&&e.videopress_guid&&e.videopress_guid.length&&(t=e.videopress_guid[0]),t&&(o=_.extend({},i,{url:"https://videopress.com/v/"+t,attachment_id:0})),o}),e.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo=(o=e.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo,function(e){var d=document.createElement("a");return d.href=e,"videopress.com"===d.hostname||o.call(this,e)}))}(window.wp); \ No newline at end of file
+!function(){var e,o,d;window.wp=window.wp||{},(e=window.wp).mediaWidgets&&(e.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps=(d=e.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps,function(e){var o,i,t;return i=d.call(this,e),o=_.extend({},i),e.videopress&&e.videopress.guid&&(t=e.videopress.guid),!t&&e.videopress_guid&&e.videopress_guid.length&&(t=e.videopress_guid[0]),t&&(o=_.extend({},i,{url:"https://videopress.com/v/"+t,attachment_id:0})),o}),e.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo=(o=e.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo,function(e){var d=document.createElement("a");return d.href=e,"videopress.com"===d.hostname||o.call(this,e)}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.asset.php b/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.asset.php
new file mode 100644
index 00000000..be653ad7
--- /dev/null
+++ b/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '2819481d4dbe22b901549582a63ca092'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.js b/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.js
index 3e605486..97e9f6c5 100644
--- a/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.js
+++ b/plugins/jetpack/_inc/build/videopress/js/videopress-plupload.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global pluploadL10n, plupload, _wpPluploadSettings, JSON */
-window.wp=window.wp||{},function(e,t){var r,i;"undefined"!=typeof _wpPluploadSettings&&(r=function(o){var a,n,d=this,p=-1!==navigator.userAgent.indexOf("Trident/")||-1!==navigator.userAgent.indexOf("MSIE "),s={container:"container",browser:"browse_button",dropzone:"drop_element"};if(this.supports={upload:r.browser.supported},this.supported=this.supports.upload,this.supported){for(a in this.plupload=t.extend(!0,{multipart_params:{}},r.defaults),this.container=document.body,t.extend(!0,this,o),this)t.isFunction(this[a])&&(this[a]=t.proxy(this[a],this));for(a in s)this[a]&&(this[a]=t(this[a]).first(),this[a].length?(this[a].prop("id")||this[a].prop("id","__wp-uploader-id-"+r.uuid++),this.plupload[s[a]]=this[a].prop("id")):delete this[a]);(this.browser&&this.browser.length||this.dropzone&&this.dropzone.length)&&(p||"flash"!==plupload.predictRuntime(this.plupload)||this.plupload.required_features&&this.plupload.required_features.hasOwnProperty("send_binary_string")||(this.plupload.required_features=this.plupload.required_features||{},this.plupload.required_features.send_binary_string=!0),this.uploader=new plupload.Uploader(this.plupload),delete this.plupload,this.param(this.params||{}),delete this.params,void 0!==e.VideoPress?i=e.VideoPress:window.console&&window.console.error("The VideoPress object was not loaded. Errors may occur."),n=function(e,t,i){i.attachment&&i.attachment.destroy(),r.errors.unshift({message:e||pluploadL10n.default_error,data:t,file:i}),d.error(e,t,i)},this.uploader.bind("init",function(e){var i,o,a,n=d.dropzone;if(a=d.supports.dragdrop=e.features.dragdrop&&!r.browser.mobile,n){if(n.toggleClass("supports-drag-drop",!!a),!a)return n.unbind(".wp-uploader");n.bind("dragover.wp-uploader",function(){i&&clearTimeout(i),o||(n.trigger("dropzone:enter").addClass("drag-over"),o=!0)}),n.bind("dragleave.wp-uploader, drop.wp-uploader",function(){i=setTimeout(function(){o=!1,n.trigger("dropzone:leave").removeClass("drag-over")},0)}),d.ready=!0,t(d).trigger("uploader:ready")}}),this.uploader.bind("postinit",function(e){e.refresh(),d.init()}),this.uploader.init(),this.browser?this.browser.on("mouseenter",this.refresh):(this.uploader.disableBrowse(!0),t("#"+this.uploader.id+"_html5_container").hide()),this.uploader.bind("FilesAdded",function(e,t){_.each(t,function(e){var t,i;plupload.FAILED!==e.status&&(t=_.extend({file:e,uploading:!0,date:new Date,filename:e.name,menuOrder:0,uploadedTo:wp.media.model.settings.post.id},_.pick(e,"loaded","size","percent")),(i=/(?:jpe?g|png|gif)$/i.exec(e.name))&&(t.type="image",t.subtype="jpg"===i[0]?"jpeg":i[0]),e.attachment=wp.media.model.Attachment.create(t),r.queue.add(e.attachment),d.added(e.attachment))}),e.refresh(),e.start()}),this.uploader.bind("UploadProgress",function(e,t){t.attachment.set(_.pick(t,"loaded","percent")),d.progress(t.attachment)}),this.uploader.bind("FileUploaded",function(e,t,o){try{o=JSON.parse(o.response)}catch(e){return n(pluploadL10n.default_error,e,t)}o=void 0!==o.media?i.handleRestApiResponse(o,t):i.handleStandardResponse(o,t),_.each(["file","loaded","size","percent"],function(e){t.attachment.unset(e)}),t.attachment.set(_.extend(o.data,{uploading:!1})),wp.media.model.Attachment.get(o.data.id,t.attachment),r.queue.all(function(e){return!e.get("uploading")})&&(i&&i.resetToOriginalOptions(e),r.queue.reset()),d.success(t.attachment)}),this.uploader.bind("Error",function(e,t){var o,a=pluploadL10n.default_error;for(o in r.errorMap)if(t.code===plupload[o]){a=r.errorMap[o],_.isFunction(a)&&(a=a(t.file,t));break}n(a,t,t.file),i&&i.resetToOriginalOptions(e),e.refresh()}),this.uploader.bind("UploadComplete",function(e){i&&i.resetToOriginalOptions(e)}),this.uploader.bind("BeforeUpload",function(e,t){void 0!==t.videopress&&(i.originalOptions.url=e.getOption("url"),i.originalOptions.multipart_params=e.getOption("multipart_params"),i.originalOptions.file_data_name=e.getOption("file_data_name"),e.setOption("file_data_name","media[]"),e.setOption("url",t.videopress.upload_action_url),e.setOption("headers",{Authorization:'X_UPLOAD_TOKEN token="'+t.videopress.upload_token+'" blog_id="'+t.videopress.upload_blog_id+'"'}))}))}},t.extend(r,_wpPluploadSettings),r.uuid=0,r.errorMap={FAILED:pluploadL10n.upload_failed,FILE_EXTENSION_ERROR:pluploadL10n.invalid_filetype,IMAGE_FORMAT_ERROR:pluploadL10n.not_an_image,IMAGE_MEMORY_ERROR:pluploadL10n.image_memory_exceeded,IMAGE_DIMENSIONS_ERROR:pluploadL10n.image_dimensions_exceeded,GENERIC_ERROR:pluploadL10n.upload_failed,IO_ERROR:pluploadL10n.io_error,HTTP_ERROR:pluploadL10n.http_error,SECURITY_ERROR:pluploadL10n.security_error,FILE_SIZE_ERROR:function(e){return pluploadL10n.file_exceeds_size_limit.replace("%s",e.name)}},t.extend(r.prototype,{param:function(e,r){if(1===arguments.length&&"string"==typeof e)return this.uploader.settings.multipart_params[e];arguments.length>1?this.uploader.settings.multipart_params[e]=r:t.extend(this.uploader.settings.multipart_params,e)},init:function(){},error:function(){},success:function(){},added:function(){},progress:function(){},complete:function(){},refresh:function(){var e,r,i,o;if(this.browser){for(e=this.browser[0];e;){if(e===document.body){r=!0;break}e=e.parentNode}r||(o="wp-uploader-browser-"+this.uploader.id,(i=t("#"+o)).length||(i=t('<div class="wp-uploader-browser" />').css({position:"fixed",top:"-1000px",left:"-1000px",height:0,width:0}).attr("id","wp-uploader-browser-"+this.uploader.id).appendTo("body")),i.append(this.browser))}this.uploader.refresh()}}),r.queue=new wp.media.model.Attachments([],{query:!1}),r.errors=new Backbone.Collection,e.Uploader=r)}(wp,jQuery); \ No newline at end of file
+!function(){var e,t,r,o;window.wp=window.wp||{},e=wp,t=jQuery,"undefined"!=typeof _wpPluploadSettings&&(r=function(i){var a,n,d=this,s=-1!==navigator.userAgent.indexOf("Trident/")||-1!==navigator.userAgent.indexOf("MSIE "),p={container:"container",browser:"browse_button",dropzone:"drop_element"};if(this.supports={upload:r.browser.supported},this.supported=this.supports.upload,this.supported){for(a in this.plupload=t.extend(!0,{multipart_params:{}},r.defaults),this.container=document.body,t.extend(!0,this,i),this)t.isFunction(this[a])&&(this[a]=t.proxy(this[a],this));for(a in p)this[a]&&(this[a]=t(this[a]).first(),this[a].length?(this[a].prop("id")||this[a].prop("id","__wp-uploader-id-"+r.uuid++),this.plupload[p[a]]=this[a].prop("id")):delete this[a]);(this.browser&&this.browser.length||this.dropzone&&this.dropzone.length)&&(s||"flash"!==plupload.predictRuntime(this.plupload)||this.plupload.required_features&&this.plupload.required_features.hasOwnProperty("send_binary_string")||(this.plupload.required_features=this.plupload.required_features||{},this.plupload.required_features.send_binary_string=!0),this.uploader=new plupload.Uploader(this.plupload),delete this.plupload,this.param(this.params||{}),delete this.params,void 0!==e.VideoPress?o=e.VideoPress:window.console&&window.console.error("The VideoPress object was not loaded. Errors may occur."),n=function(e,t,o){o.attachment&&o.attachment.destroy(),r.errors.unshift({message:e||pluploadL10n.default_error,data:t,file:o}),d.error(e,t,o)},this.uploader.bind("init",(function(e){var o,i,a,n=d.dropzone;if(a=d.supports.dragdrop=e.features.dragdrop&&!r.browser.mobile,n){if(n.toggleClass("supports-drag-drop",!!a),!a)return n.unbind(".wp-uploader");n.bind("dragover.wp-uploader",(function(){o&&clearTimeout(o),i||(n.trigger("dropzone:enter").addClass("drag-over"),i=!0)})),n.bind("dragleave.wp-uploader, drop.wp-uploader",(function(){o=setTimeout((function(){i=!1,n.trigger("dropzone:leave").removeClass("drag-over")}),0)})),d.ready=!0,t(d).trigger("uploader:ready")}})),this.uploader.bind("postinit",(function(e){e.refresh(),d.init()})),this.uploader.init(),this.browser?this.browser.on("mouseenter",this.refresh):(this.uploader.disableBrowse(!0),t("#"+this.uploader.id+"_html5_container").hide()),this.uploader.bind("FilesAdded",(function(e,t){_.each(t,(function(e){var t,o;plupload.FAILED!==e.status&&(t=_.extend({file:e,uploading:!0,date:new Date,filename:e.name,menuOrder:0,uploadedTo:wp.media.model.settings.post.id},_.pick(e,"loaded","size","percent")),(o=/(?:jpe?g|png|gif|webp)$/i.exec(e.name))&&(t.type="image",t.subtype="jpg"===o[0]?"jpeg":o[0]),e.attachment=wp.media.model.Attachment.create(t),r.queue.add(e.attachment),d.added(e.attachment))})),e.refresh(),e.start()})),this.uploader.bind("UploadProgress",(function(e,t){t.attachment.set(_.pick(t,"loaded","percent")),d.progress(t.attachment)})),this.uploader.bind("FileUploaded",(function(e,t,i){try{i=JSON.parse(i.response)}catch(e){return n(pluploadL10n.default_error,e,t)}i=void 0!==i.media?o.handleRestApiResponse(i,t):o.handleStandardResponse(i,t),_.each(["file","loaded","size","percent"],(function(e){t.attachment.unset(e)})),t.attachment.set(_.extend(i.data,{uploading:!1}));var a=wp.media.model.Attachment.get(i.data.id,t.attachment);void 0!==i.media&&a.sync("read").then((function(e){wp.media.model.Attachment.get(a.id).set(e)})),r.queue.all((function(e){return!e.get("uploading")}))&&(o&&o.resetToOriginalOptions(e),r.queue.reset()),d.success(t.attachment)})),this.uploader.bind("Error",(function(e,t){var i=pluploadL10n.default_error;for(var a in r.errorMap)if(t.code===plupload[a]){i=r.errorMap[a],_.isFunction(i)&&(i=i(t.file,t));break}if("response"in t)try{var d=JSON.parse(t.response);"object"==typeof d&&("errors"in d&&"object"==typeof d.errors&&(d=d.errors.shift()),"message"in d&&(i=d.message))}catch(e){}n(i,t,t.file),o&&o.resetToOriginalOptions(e),e.refresh()})),this.uploader.bind("UploadComplete",(function(e){o&&o.resetToOriginalOptions(e)})),this.uploader.bind("BeforeUpload",(function(e,t){void 0!==t.videopress&&(o.originalOptions.url=e.getOption("url"),o.originalOptions.multipart_params=e.getOption("multipart_params"),o.originalOptions.file_data_name=e.getOption("file_data_name"),e.setOption("file_data_name","media[]"),e.setOption("url",t.videopress.upload_action_url),e.setOption("headers",{Authorization:'X_UPLOAD_TOKEN token="'+t.videopress.upload_token+'" blog_id="'+t.videopress.upload_blog_id+'"'}))})))}},t.extend(r,_wpPluploadSettings),r.uuid=0,r.errorMap={FAILED:pluploadL10n.upload_failed,FILE_EXTENSION_ERROR:pluploadL10n.invalid_filetype,IMAGE_FORMAT_ERROR:pluploadL10n.not_an_image,IMAGE_MEMORY_ERROR:pluploadL10n.image_memory_exceeded,IMAGE_DIMENSIONS_ERROR:pluploadL10n.image_dimensions_exceeded,GENERIC_ERROR:pluploadL10n.upload_failed,IO_ERROR:pluploadL10n.io_error,HTTP_ERROR:pluploadL10n.http_error,SECURITY_ERROR:pluploadL10n.security_error,FILE_SIZE_ERROR:function(e){return pluploadL10n.file_exceeds_size_limit.replace("%s",e.name)}},t.extend(r.prototype,{param:function(e,r){if(1===arguments.length&&"string"==typeof e)return this.uploader.settings.multipart_params[e];arguments.length>1?this.uploader.settings.multipart_params[e]=r:t.extend(this.uploader.settings.multipart_params,e)},init:function(){},error:function(){},success:function(){},added:function(){},progress:function(){},complete:function(){},refresh:function(){var e,r,o,i;if(this.browser){for(e=this.browser[0];e;){if(e===document.body){r=!0;break}e=e.parentNode}r||(i="wp-uploader-browser-"+this.uploader.id,(o=t("#"+i)).length||(o=t('<div class="wp-uploader-browser" />').css({position:"fixed",top:"-1000px",left:"-1000px",height:0,width:0}).attr("id","wp-uploader-browser-"+this.uploader.id).appendTo("body")),o.append(this.browser))}this.uploader.refresh()}}),r.queue=new wp.media.model.Attachments([],{query:!1}),r.errors=new Backbone.Collection,e.Uploader=r)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.asset.php b/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.asset.php
new file mode 100644
index 00000000..82273342
--- /dev/null
+++ b/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '8df06ad75f299a6c56a723809ae87f1e'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.js b/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.js
index 5677cd3f..4b70aaa9 100644
--- a/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.js
+++ b/plugins/jetpack/_inc/build/videopress/js/videopress-uploader.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* globals plupload, pluploadL10n, error */
-window.wp=window.wp||{},function(e){var i={originalOptions:{},handleStandardResponse:function(e,i){return!_.isObject(e)||_.isUndefined(e.success)?error(pluploadL10n.default_error,null,i):e.success?e:error(e.data&&e.data.message,e.data,i)},handleRestApiResponse:function(e,i){if(1!==e.media.length)return error(pluploadL10n.default_error,null,i);var t=e.media[0],a=t.mime_type.split("/"),o={alt:"",author:t.author_ID||0,authorName:"",caption:"",compat:{item:"",meta:""},date:t.date||"",dateFormatted:t.date||"",description:t.description||"",editLink:"",filename:t.file||"",filesizeHumanReadable:"",filesizeInBytes:"",height:t.height,icon:t.icon||"",id:t.ID||"",link:t.URL||"",menuOrder:0,meta:!1,mime:t.mime_type||"",modified:0,name:"",nonces:{update:"",delete:"",edit:""},orientation:"",sizes:void 0,status:"",subtype:a[1]||"",title:t.title||"",type:a[0]||"",uploadedTo:1,uploadedToLink:"",uploadedToTitle:"",url:t.URL||"",width:t.width,success:"",videopress:{guid:t.videopress_guid||null,processing_done:t.videopress_processing_done||!1}};return e.data=o,e},resetToOriginalOptions:function(e){void 0!==i.originalOptions.url&&(e.setOption("url",i.originalOptions.url),delete i.originalOptions.url),void 0!==i.originalOptions.multipart_params&&(e.setOption("multipart_params",i.originalOptions.multipart_params),delete i.originalOptions.multipart_params),void 0!==i.originalOptions.file_data_name&&(e.setOption("file_data_name",i.originalOptions.file_data_name),delete i.originalOptions.file_data_name)}};if(void 0!==e.Uploader){var t=e.media;plupload.VIDEOPRESS_TOKEN_FAILURE="VP_TOKEN_FAILURE",plupload.addFileFilter("videopress_check_uploads",function(e,i,a){var o=i.type.split("/"),n=this;"video"===o[0]?t.ajax("videopress-get-upload-token",{async:!1,data:{filename:i.name}}).done(function(e){i.videopress=e,a(!0)}).fail(function(e){n.trigger("Error",{code:plupload.VIDEOPRESS_TOKEN_FAILURE,message:plupload.translate("Could not get the VideoPress token needed for uploading"),file:i,response:e}),a(!1)}):void 0!==i.size&&e&&i.size>e?(this.trigger("Error",{code:plupload.FILE_SIZE_ERROR,message:plupload.translate("File size error."),file:i}),a(!1)):a(!0)})}e.VideoPress=i}(window.wp); \ No newline at end of file
+window.wp=window.wp||{},function(e){var i={originalOptions:{},handleStandardResponse:function(e,i){return!_.isObject(e)||_.isUndefined(e.success)?error(pluploadL10n.default_error,null,i):e.success?e:error(e.data&&e.data.message,e.data,i)},handleRestApiResponse:function(e,i){if(1!==e.media.length)return error(pluploadL10n.default_error,null,i);var t=e.media[0],a=t.mime_type.split("/"),o={alt:"",author:t.author_ID||0,authorName:"",caption:"",compat:{item:"",meta:""},date:t.date||"",dateFormatted:t.date||"",description:t.description||"",editLink:"",filename:t.file||"",filesizeHumanReadable:"",filesizeInBytes:"",height:t.height,icon:t.icon||"",id:t.ID||"",link:t.URL||"",menuOrder:0,meta:!1,mime:t.mime_type||"",modified:0,name:"",nonces:{update:"",delete:"",edit:""},orientation:"",sizes:void 0,status:"",subtype:a[1]||"",title:t.title||"",type:a[0]||"",uploadedTo:1,uploadedToLink:"",uploadedToTitle:"",url:t.URL||"",width:t.width,success:"",videopress:{guid:t.videopress_guid||null,processing_done:t.videopress_processing_done||!1}};return e.data=o,e},resetToOriginalOptions:function(e){void 0!==i.originalOptions.url&&(e.setOption("url",i.originalOptions.url),delete i.originalOptions.url),void 0!==i.originalOptions.multipart_params&&(e.setOption("multipart_params",i.originalOptions.multipart_params),delete i.originalOptions.multipart_params),void 0!==i.originalOptions.file_data_name&&(e.setOption("file_data_name",i.originalOptions.file_data_name),delete i.originalOptions.file_data_name)}};if(void 0!==e.Uploader){var t=e.media;plupload.VIDEOPRESS_TOKEN_FAILURE="VP_TOKEN_FAILURE",plupload.addFileFilter("videopress_check_uploads",(function(e,i,a){var o=i.type.split("/"),n=this;"video"===o[0]?t.ajax("videopress-get-upload-token",{async:!1,data:{filename:i.name}}).done((function(e){i.videopress=e,a(!0)})).fail((function(e){n.trigger("Error",{code:plupload.VIDEOPRESS_TOKEN_FAILURE,message:plupload.translate("Could not get the VideoPress token needed for uploading"),file:i,response:e}),a(!1)})):void 0!==i.size&&e&&i.size>e?(this.trigger("Error",{code:plupload.FILE_SIZE_ERROR,message:plupload.translate("File size error."),file:i}),a(!1)):a(!0)}))}e.VideoPress=i}(window.wp); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widget-visibility/editor/index.asset.php b/plugins/jetpack/_inc/build/widget-visibility/editor/index.asset.php
new file mode 100644
index 00000000..150b4640
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widget-visibility/editor/index.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'wp-block-editor', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'a654aded0a2cd7b96dbfe4a3d8e6a8bf'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widget-visibility/editor/index.js b/plugins/jetpack/_inc/build/widget-visibility/editor/index.js
new file mode 100644
index 00000000..f25f7671
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widget-visibility/editor/index.js
@@ -0,0 +1 @@
+!function(){var e={2:function(e){var t=1e3,n=60*t,o=60*n,i=24*o,a=7*i,r=365.25*i;function s(e,t,n,o){var i=t>=1.5*n;return Math.round(e/n)+" "+o+(i?"s":"")}e.exports=function(e,c){c=c||{};var l=typeof e;if("string"===l&&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 c=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*r;case"weeks":case"week":case"w":return c*a;case"days":case"day":case"d":return c*i;case"hours":case"hour":case"hrs":case"hr":case"h":return c*o;case"minutes":case"minute":case"mins":case"min":case"m":return c*n;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===l&&isFinite(e))return c.long?function(e){var a=Math.abs(e);if(a>=i)return s(e,a,i,"day");if(a>=o)return s(e,a,o,"hour");if(a>=n)return s(e,a,n,"minute");if(a>=t)return s(e,a,t,"second");return e+" ms"}(e):function(e){var a=Math.abs(e);if(a>=i)return Math.round(e/i)+"d";if(a>=o)return Math.round(e/o)+"h";if(a>=n)return Math.round(e/n)+"m";if(a>=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))}},816:function(e,t,n){"use strict";var o=n(922),i=n.n(o),a=n(819);const r=i()("dops:analytics");let s,c;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const l={initialize:function(e,t,n){l.setUser(e,t),l.setSuperProps(n),l.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){c={ID:e,username:t}},setSuperProps:function(e){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);r("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),r('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);r("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),r('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){l.tracks.recordPageView(e),l.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,o,i,a,r){l.ga.recordPurchase(e,t,n,o,i,a,r)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(r("- Super Props: %o",s),t=(0,a.assign)(t,s)),r('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):r('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};l.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){l.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){r("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};l.ga.initialized||(c&&(e={userId:"u-"+c.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),l.ga.initialized=!0)},recordPageView:function(e,t){l.ga.initialize(),r("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,n,o){l.ga.initialize();let i="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(i+=" [Option Label: "+n+"]"),void 0!==o&&(i+=" [Option Value: "+o+"]"),r(i),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,o)},recordPurchase:function(e,t,n,o,i,a,r){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:o,currency:r}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:i,quantity:a}),window.ga("ecommerce:send")}},identifyUser:function(){c&&window._tkq.push(["identifyUser",c.ID,c.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}};t.Z=l},481:function(e,t){"use strict";const n={i18n_default_locale_slug:"en",mc_analytics_enabled:!0,google_analytics_enabled:!1,google_analytics_key:null};t.Z=function(e){if(e in n)return n[e];throw new Error("config key `"+e+"` does not exist")}},973:function(e,t,n){"use strict";var o=n(481),i=n(816);i.Z.setMcAnalyticsEnabled((0,o.Z)("mc_analytics_enabled")),i.Z.setGoogleAnalyticsEnabled((0,o.Z)("google_analytics_enabled"),(0,o.Z)("google_analytics_key")),t.Z=i.Z},922:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(o++,"%c"===e&&(i=o))})),t.splice(i,0,n)},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=n(967)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},967:function(e,t,n){e.exports=function(e){function t(e){let n,i,a,r=null;function s(){for(var e=arguments.length,o=new Array(e),i=0;i<e;i++)o[i]=arguments[i];if(!s.enabled)return;const a=s,r=Number(new Date),c=r-(n||r);a.diff=c,a.prev=n,a.curr=r,n=r,o[0]=t.coerce(o[0]),"string"!=typeof o[0]&&o.unshift("%O");let l=0;o[0]=o[0].replace(/%([a-zA-Z%])/g,((e,n)=>{if("%%"===e)return"%";l++;const i=t.formatters[n];if("function"==typeof i){const t=o[l];e=i.call(a,t),o.splice(l,1),l--}return e})),t.formatArgs.call(a,o);const u=a.log||t.log;u.apply(a,o)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=o,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==t.namespaces&&(i=t.namespaces,a=t.enabled(e)),a),set:e=>{r=e}}),"function"==typeof t.init&&t.init(s),s}function o(e,n){const o=t(this.namespace+(void 0===n?":":n)+e);return o.log=this.log,o}function i(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(i),...t.skips.map(i).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const o=("string"==typeof e?e:"").split(/[\s,]+/),i=o.length;for(n=0;n<i;n++)o[n]&&("-"===(e=o[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,o;for(n=0,o=t.skips.length;n<o;n++)if(t.skips[n].test(e))return!1;for(n=0,o=t.names.length;n<o;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(2),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},819:function(e){"use strict";e.exports=window.lodash},175:function(e){"use strict";e.exports=window.wp.blockEditor},609:function(e){"use strict";e.exports=window.wp.components},333:function(e){"use strict";e.exports=window.wp.compose},818:function(e){"use strict";e.exports=window.wp.data},307:function(e){"use strict";e.exports=window.wp.element},736:function(e){"use strict";e.exports=window.wp.i18n}},t={};function n(o){var i=t[o];if(void 0!==i)return i.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,n),a.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};!function(){"use strict";var e=n(307),t=n(609),o=n(736),i=n(175),a=n(333),r=n(818),s=n(973);const __=o.__,_x=o._x,c={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'","&nbsp;":" "},l=/&(?:amp|lt|gt|quot|#39|nbsp);/g,u=e=>{if("string"!=typeof e)return e;return e.replace(l,(e=>c[e]))},d=e=>!new Set(["core/legacy-widget","core/widget-area"]).has(e);wp.hooks.addFilter("blocks.registerBlockType","widget/visibility",(function(e,t){return d(t)&&void 0!==e.attributes&&(e.attributes=Object.assign(e.attributes,{conditions:{type:"object",default:{}}})),e}));const p=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.reduce(((e,n)=>{const[o,i]=n,a=" ".repeat(3*t);if(Array.isArray(i)){const n={label:u(a+o),value:o,disabled:!0},r=p(i,t+1);return e.concat([n]).concat(r)}const r={label:u(a+i),value:o};return e.concat([r])}),[])},g=e=>{const{rule:n,onDelete:o,setMajor:i,setMinor:a}=e,r=[{label:__("User","jetpack"),value:"loggedin"},{label:__("Role","jetpack"),value:"role"}],s="undefined"!=typeof wpcom,c=widget_conditions_data.taxonomy&&widget_conditions_data.taxonomy.length>1||"taxonomy"===n.major,l=[{label:__("Taxonomy","jetpack"),value:"taxonomy"}],u=[{label:__("-- Select --","jetpack"),value:""},{label:__("Category","jetpack"),value:"category"},{label:__("Author","jetpack"),value:"author"}].concat(s?[]:r).concat([{label:__("Tag","jetpack"),value:"tag"},{label:__("Date","jetpack"),value:"date"},{label:__("Page","jetpack"),value:"page"}]).concat(c?l:[]);let d=[];return n.major in widget_conditions_data&&(d=p(widget_conditions_data[n.major])),React.createElement("div",{className:"widget-vis__rule"},React.createElement("div",{className:"widget-vis__rule-major"},React.createElement("span",{className:"widget-vis__if"},_x("If","Widget Visibility: If {Rule Major [Page]} is {Rule Minor [Search results]}","jetpack")),React.createElement("div",{className:"widget-vis__select"},React.createElement(t.SelectControl,{label:__("Major Rule","jetpack"),hideLabelFromVision:!0,value:n.major,options:u,onChange:i}))),n.major&&React.createElement("div",{className:"widget-vis__rule-minor"},React.createElement("span",{className:"widget-vis__is"},_x("is","Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}","jetpack")),React.createElement("div",{className:"widget-vis__select"},React.createElement(t.SelectControl,{className:"widget-vis__select-multi-level",label:__("Minor Rule","jetpack"),hideLabelFromVision:!0,value:n.minor,options:d,onChange:a}))),React.createElement("div",{className:"widget-vis__delete-rule"},React.createElement(t.Button,{onClick:o,isSmall:!0,isSecondary:!0},_x("Remove","Delete this visibility rule","jetpack"))))},m=e=>({action:"show",rules:[],match_all:0,...e}),w=(0,a.createHigherOrderComponent)((n=>o=>{const{clientId:a,attributes:c,setAttributes:l,isSelected:u}=o,p=(0,e.useMemo)((()=>c.conditions||{}),[c]),w=(0,e.useMemo)((()=>p.rules||[]),[p]),f=(0,r.useSelect)((e=>{const{getBlockParents:t,getBlock:n}=e("core/block-editor"),o=t(a,!0),i=o?n(o[0]):void 0;return!i||i&&"core/widget-area"===i.name}),[a]),C=(0,e.useCallback)((()=>{s.Z.tracks.recordEvent("jetpack_widget_visibility_toggle_match_all_click"),l({conditions:{...m(p),match_all:"0"===p.match_all?"1":"0"}})}),[l,p]),h=(0,e.useCallback)((e=>l({conditions:{...m(p),action:e}})),[l,p]),_=(0,e.useCallback)((()=>{const e=[...w,{major:"",minor:""}];s.Z.tracks.recordEvent("jetpack_widget_visibility_add_new_rule_click"),l({conditions:{...m(p),rules:e}})}),[l,p,w]),y=(0,e.useCallback)((e=>{const t=[...w.slice(0,e),...w.slice(e+1)];s.Z.tracks.recordEvent("jetpack_widget_visibility_delete_rule_click"),l({conditions:{...m(p),rules:t}})}),[l,p,w]),b=(0,e.useCallback)(((e,t)=>{s.Z.tracks.recordEvent("jetpack_widget_visibility_set_major_rule_click");let n="";t in widget_conditions_data&&Array.isArray(widget_conditions_data[t])&&widget_conditions_data[t].length>0&&(n=widget_conditions_data[t][0][0]);const o=[...w.slice(0,e),{...w[e],major:t,minor:n},...w.slice(e+1)];l({conditions:{...m(p),rules:o}})}),[l,p,w]),v=(0,e.useCallback)(((e,t)=>{if(s.Z.tracks.recordEvent("jetpack_widget_visibility_set_minor_rule_click"),t&&t.includes("__HEADER__"))return;const n=[...w.slice(0,e),{...w[e],minor:t},...w.slice(e+1)];l({conditions:{...m(p),rules:n}})}),[l,p,w]);let k=null;return k=0===w.length?React.createElement(t.BaseControl,{id:"widget-vis__wrapper",className:"widget-vis__wrapper",label:__("Visibility","jetpack"),help:__("No visibility rules yet. Add at least one rule to use this feature.","jetpack")},React.createElement(t.Button,{isSecondary:!0,onClick:_,className:"widget-vis__add-new-rule"},__("Add new rule","jetpack"))):React.createElement(t.BaseControl,{className:"widget-vis__wrapper",id:"widget-vis__wrapper",label:__("Visibility","jetpack")},React.createElement(t.SelectControl,{className:"widget-vis__show-hide",label:__("Action","jetpack"),hideLabelFromVision:!0,value:c.action,options:[{label:__("Show this block","jetpack"),value:"show"},{label:__("Hide this block","jetpack"),value:"hide"}],onChange:h}),w.map(((e,t)=>React.createElement(g,{key:t,rule:e,i:t,onDelete:()=>y(t),setMajor:e=>b(t,e),setMinor:e=>v(t,e)}))),w.length>1&&React.createElement(t.ToggleControl,{className:"widget-vis__match-all",label:__("Match all rules","jetpack"),checked:"1"===p.match_all,onChange:C}),React.createElement(t.Button,{isSecondary:!0,onClick:_},__("Add new rule","jetpack"))),React.createElement(e.Fragment,null,React.createElement(n,o),u&&f&&d(o.name)&&React.createElement(i.InspectorAdvancedControls,null,k),u&&!f&&d(o.name)&&React.createElement(i.InspectorAdvancedControls,null,React.createElement(t.BaseControl,{id:"widget-vis__wrapper",className:"widget-vis__wrapper",label:__("Visibility","jetpack"),help:__("Please select the top level block of this widget to apply visibility rules.","jetpack")})))}),"visibilityAdvancedControls");wp.hooks.addFilter("editor.BlockEdit","widget/visibility",w)}(),window.WidgetVisibility={}.WidgetVisibility}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.asset.php b/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.asset.php
new file mode 100644
index 00000000..743bda82
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'fc92f507a4d5f0be29605bd24305034c'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js b/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js
index 6404ac9a..cdc5a04b 100644
--- a/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js
+++ b/plugins/jetpack/_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global isRtl, widget_conditions_parent_pages, widget_conditions_data, jQuery */
-jQuery(function(i){var t=i("div#widgets-right");function n(t){var n,e;i("body").hasClass("wp-customizer")?t.find(".widget-inside").css("top",0):t.hasClass("expanded")?(t.attr("style")&&t.data("original-style",t.attr("style")),(n=t.width())<400&&(e=400-n,isRtl?t.css("position","relative").css("right","-"+e+"px").css("width","400px"):t.css("position","relative").css("left","-"+e+"px").css("width","400px"))):t.data("original-style")?t.attr("style",t.data("original-style")).data("original-style",null):t.removeAttr("style")}function e(i){var t=i.find("a.display-options").first();t.insertBefore(i.find("input.widget-control-save")),t.parent().removeClass("widget-control-noform").find(".spinner").remove().css("float","left").prependTo(t.parent())}function o(t){var n,e,o,s,a,c,l,r,p,h,u,g,f=t.find(".conditions-rule-minor").html(""),v=t.data("rule-major");if(v&&"post_type"!==v){for(n=t.data("rule-minor"),e=t.data("rule-has-children"),s=0,r=(o=widget_conditions_data[v]).length;s<r;s++)if(c=o[s][0],"object"==typeof(l=o[s][1])){for(g=i("<optgroup/>").attr("label",c),a=0,p=l.length;a<p;a++)h=o[s][1][a][0],u=o[s][1][a][1],g.append(i("<option/>").val(h).text(d(u.replace(/&nbsp;/g," "))));f.append(g)}else f.append(i("<option/>").val(c).text(d(l.replace(/&nbsp;/g," "))));f.removeAttr("disabled"),f.val(n),"page"===v&&n in widget_conditions_parent_pages?(f.siblings("span.conditions-rule-has-children").show(),e&&f.siblings("span.conditions-rule-has-children").find('input[type="checkbox"]').attr("checked","checked")):f.siblings("span.conditions-rule-has-children").hide().find('input[type="checkbox"]').removeAttr("checked")}else f.attr("disabled","disabled")}function s(t){var n=0;t.find("span.conditions-rule-has-children").find('input[type="checkbox"]').each(function(){i(this).attr("name","conditions[page_children]["+n+"]"),n++})}function d(i){var t=document.createElement("textarea");return t.innerHTML=i,t.value}t||t.length||(t=i("form#customize-controls")),i(".widget").each(function(){e(i(this))}),i(document).on("widget-added",function(i,t){0===t.find("div.widget-control-actions a.display-options").length&&e(t)}),t.on("click.widgetconditions","a.add-condition",function(t){var n=i(this).closest("div.condition"),e=n.clone().data("rule-major","").data("rule-minor","").data("has-children","").insertAfter(n);t.preventDefault(),e.find("select.conditions-rule-major").val(""),e.find("select.conditions-rule-minor").html("").attr("disabled"),e.find("span.conditions-rule-has-children").hide().find('input[type="checkbox"]').removeAttr("checked"),s(e.closest(".conditions"))}),t.on("click.widgetconditions","a.display-options",function(t){var e=i(this).closest("div.widget");t.preventDefault(),e.find("div.widget-conditional").toggleClass("widget-conditional-hide"),i(this).toggleClass("active"),e.toggleClass("expanded"),n(e),i(this).hasClass("active")?(e.find("input[name=widget-conditions-visible]").val("1"),e.find(".condition").each(function(){o(i(this))})):e.find("input[name=widget-conditions-visible]").val("0")}),t.on("click.widgetconditions","a.delete-condition",function(t){var n=i(this).closest("div.condition");t.preventDefault(),n.is(":first-child")&&n.is(":last-child")?(i(this).closest("div.widget").find("a.display-options").click(),n.find("select.conditions-rule-major").val("").change()):(n.find("select.conditions-rule-major").change(),n.detach()),s(n.closest(".conditions"))}),t.on("click.widgetconditions","div.widget-top",function(){var t=i(this).closest("div.widget"),e=t.find("a.display-options");e.hasClass("active")&&e.attr("opened","true"),e.attr("opened")&&(e.removeAttr("opened"),t.toggleClass("expanded"),n(t))}),t.on("change.widgetconditions","input.conditions-match-all",function(){i(this).parents(".widget-conditional").toggleClass("conjunction").toggleClass("intersection")}),i(document).on("change.widgetconditions","select.conditions-rule-major",function(){var t=i(this),n=t.siblings("select.conditions-rule-minor:first"),e=t.siblings("span.conditions-rule-has-children"),s=n.closest(".condition");s.data("rule-minor","").data("rule-major",t.val()),t.val()?o(s):(t.siblings("select.conditions-rule-minor").attr("disabled","disabled").html(""),e.hide().find('input[type="checkbox"]').removeAttr("checked"))}),i(document).on("change.widgetconditions","select.conditions-rule-minor",function(){var t=i(this),n=t.siblings("select.conditions-rule-major"),e=t.siblings("span.conditions-rule-has-children");t.closest(".condition").data("rule-minor",t.val()),"page"===n.val()&&t.val()in widget_conditions_parent_pages?e.show():e.hide().find('input[type="checkbox"]').removeAttr("checked")}),i(document).on("widget-updated widget-synced",function(t,n){n.find(".condition").each(function(){o(i(this))})})}); \ No newline at end of file
+jQuery((function(i){var t=i("#widgets-editor");function n(t){var n,e;i("body").hasClass("wp-customizer")?t.find(".widget-inside").css("top",0):t.hasClass("expanded")?(t.attr("style")&&t.data("original-style",t.attr("style")),(n=t.width())<400&&(e=400-n,isRtl?t.css("position","relative").css("right","-"+e+"px").css("width","400px"):t.css("position","relative").css("left","-"+e+"px").css("width","400px"))):t.data("original-style")?t.attr("style",t.data("original-style")).data("original-style",null):t.removeAttr("style")}function e(i){var t=i.find("a.display-options").first(),n=i.find("input.widget-control-save");0===n.length&&(n=i.find("div.widget-conditional")),t.insertBefore(n),t.parent().removeClass("widget-control-noform").find(".spinner").remove().css("float","left").prependTo(t.parent())}function o(t){var n,e,o,s,a,c,l,r,h,p,g,u,f=t.find(".conditions-rule-minor").html(""),v=t.data("rule-major");if(v&&"post_type"!==v){for(n=t.data("rule-minor"),e=t.data("rule-has-children"),s=0,r=(o=widget_conditions_data[v]).length;s<r;s++)if(c=o[s][0],"object"==typeof(l=o[s][1])){for(u=i("<optgroup/>").attr("label",c),a=0,h=l.length;a<h;a++)p=o[s][1][a][0],g=o[s][1][a][1],u.append(i("<option/>").val(p).text(d(g.replace(/&nbsp;/g," "))));f.append(u)}else f.append(i("<option/>").val(c).text(d(l.replace(/&nbsp;/g," "))));f.removeAttr("disabled"),f.val(n),"page"===v&&n in widget_conditions_parent_pages?(f.siblings("span.conditions-rule-has-children").show(),e&&f.siblings("span.conditions-rule-has-children").find('input[type="checkbox"]').attr("checked","checked")):f.siblings("span.conditions-rule-has-children").hide().find('input[type="checkbox"]').removeAttr("checked")}else f.attr("disabled","disabled")}function s(t){var n=0;t.find("span.conditions-rule-has-children").find('input[type="checkbox"]').each((function(){i(this).attr("name","conditions[page_children]["+n+"]"),n++}))}function d(i){var t=document.createElement("textarea");return t.innerHTML=i,t.value}0===t.length&&0===(t=i("div#widgets-right")).length&&(t=i("form#customize-controls")),i(".widget").each((function(){e(i(this))})),i(document).on("widget-added",(function(i,t){0===t.find("div.widget-control-actions a.display-options").length&&e(t)})),t.on("click.widgetconditions","a.add-condition",(function(t){var n=i(this).closest("div.condition"),e=n.clone().data("rule-major","").data("rule-minor","").data("has-children","").insertAfter(n);t.preventDefault(),e.find("select.conditions-rule-major").val(""),e.find("select.conditions-rule-minor").html("").attr("disabled"),e.find("span.conditions-rule-has-children").hide().find('input[type="checkbox"]').removeAttr("checked"),s(e.closest(".conditions"))})),t.on("click.widgetconditions","a.display-options",(function(t){var e=i(this).closest("div.widget");t.preventDefault(),e.find("div.widget-conditional").toggleClass("widget-conditional-hide"),i(this).toggleClass("active"),e.toggleClass("expanded"),n(e),i(this).hasClass("active")?(e.find("input[name=widget-conditions-visible]").val("1"),e.find(".condition").each((function(){o(i(this))}))):e.find("input[name=widget-conditions-visible]").val("0")})),t.on("click.widgetconditions","a.delete-condition",(function(t){var n=i(this).closest("div.condition");t.preventDefault(),n.is(":first-child")&&n.is(":last-child")?(i(this).closest("div.widget").find("a.display-options").click(),n.find("select.conditions-rule-major").val("").change()):(n.find("select.conditions-rule-major").change(),n.detach()),s(n.closest(".conditions"))})),t.on("click.widgetconditions","div.widget-top",(function(){var t=i(this).closest("div.widget"),e=t.find("a.display-options");e.hasClass("active")&&e.attr("opened","true"),e.attr("opened")&&(e.removeAttr("opened"),t.toggleClass("expanded"),n(t))})),t.on("change.widgetconditions","input.conditions-match-all",(function(){i(this).parents(".widget-conditional").toggleClass("conjunction").toggleClass("intersection")})),i(document).on("change.widgetconditions","select.conditions-rule-major",(function(){var t=i(this),n=t.siblings("select.conditions-rule-minor:first"),e=t.siblings("span.conditions-rule-has-children"),s=n.closest(".condition");s.data("rule-minor","").data("rule-major",t.val()),t.val()?o(s):(t.siblings("select.conditions-rule-minor").attr("disabled","disabled").html(""),e.hide().find('input[type="checkbox"]').removeAttr("checked"))})),i(document).on("change.widgetconditions","select.conditions-rule-minor",(function(){var t=i(this),n=t.siblings("select.conditions-rule-major"),e=t.siblings("span.conditions-rule-has-children");t.closest(".condition").data("rule-minor",t.val()),"page"===n.val()&&t.val()in widget_conditions_parent_pages?e.show():e.hide().find('input[type="checkbox"]').removeAttr("checked")})),i(document).on("widget-updated widget-synced",(function(t,n){n.find(".condition").each((function(){o(i(this))}))}))})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.asset.php
new file mode 100644
index 00000000..6abbbafc
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'f01993d5fa42f939c5d93fd709760c26'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.js b/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.js
index 4616462a..f3bde22b 100644
--- a/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/contact-info/contact-info-admin.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global ajaxurl, contact_info_api_key_ajax_obj */
-!function(n){n(document).on("change",".jp-contact-info-showmap",function(){var t=n(this),e=t.is(":checked");t.closest(".widget").find(".jp-contact-info-admin-map").toggle(e)}),n(document).on("widget-synced",function(t,e){if(e.is('[id*="widget_contact_info"]')&&n(document.activeElement).is('input[id*="apikey"]')){t.preventDefault();var i=e.find('input[id*="apikey"]');n.post(ajaxurl,{_ajax_nonce:contact_info_api_key_ajax_obj.nonce,action:"customize-contact-info-api-key",apikey:i.val()},function(n){var t=i.closest(".jp-contact-info-admin-map").parent().find(".jp-contact-info-embed-map"),e=t.find('[class*="notice"]');"1"!==n.result?0===e.length?t.append('<span class="notice notice-warning" style="display: block;">'+n.result+"</span>"):e.text()!==n.result&&e.text(n.result):t.empty()})}})}(window.jQuery); \ No newline at end of file
+!function(){var n;(n=window.jQuery)(document).on("change",".jp-contact-info-showmap",(function(){var t=n(this),e=t.is(":checked");t.closest(".widget").find(".jp-contact-info-admin-map").toggle(e)})),n(document).on("widget-synced",(function(t,e){if(e.is('[id*="widget_contact_info"]')&&n(document.activeElement).is('input[id*="apikey"]')){t.preventDefault();var i=e.find('input[id*="apikey"]');n.post(ajaxurl,{_ajax_nonce:contact_info_api_key_ajax_obj.nonce,action:"customize-contact-info-api-key",apikey:i.val()},(function(n){var t=i.closest(".jp-contact-info-admin-map").parent().find(".jp-contact-info-embed-map"),e=t.find('[class*="notice"]');"1"!==n.result?0===e.length?t.append('<span class="notice notice-warning" style="display: block;">'+n.result+"</span>"):e.text()!==n.result&&e.text(n.result):t.empty()}))}}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/customizer-utils.min.asset.php b/plugins/jetpack/_inc/build/widgets/customizer-utils.min.asset.php
new file mode 100644
index 00000000..07d0501f
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/customizer-utils.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'eeb8f6e1063733a9e46c1c2bdf05aed7'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/customizer-utils.min.js b/plugins/jetpack/_inc/build/widgets/customizer-utils.min.js
index d16964d1..fe306052 100644
--- a/plugins/jetpack/_inc/build/widgets/customizer-utils.min.js
+++ b/plugins/jetpack/_inc/build/widgets/customizer-utils.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global wp, gapi, FB, twttr, PaypalExpressCheckout */
-wp.customizerHasPartialWidgetRefresh=function(){return"object"==typeof wp&&"function"==typeof wp.customize&&"object"==typeof wp.customize.selectiveRefresh&&"object"==typeof wp.customize.widgetsPreview&&"function"==typeof wp.customize.widgetsPreview.WidgetPartial},wp.isJetpackWidgetPlaced=function(e,t){return e.partial.widgetId&&0===e.partial.widgetId.indexOf(t)},function(e){e(document).ready(function(){wp&&wp.customize&&wp.customizerHasPartialWidgetRefresh()&&(wp.customize.selectiveRefresh.bind("partial-content-rendered",function(t){if(t.container)if(wp.isJetpackWidgetPlaced(t,"googleplus-badge")&&"object"==typeof gapi&&gapi.person&&"function"==typeof gapi.person.go)gapi.person.go(t.container[0]);else if(wp.isJetpackWidgetPlaced(t,"facebook-likebox")&&"object"==typeof FB&&"object"==typeof FB.XFBML&&"function"==typeof FB.XFBML.parse)FB.XFBML.parse(t.container[0],function(){var i=e(t.container[0]).find(".fb_iframe_widget"),a=i.data("width"),o=i.data("height");i.find("span").css({width:a,height:o}),setTimeout(function(){i.find("iframe").css({width:a,height:o,position:"relative"})},1)});else if(wp.isJetpackWidgetPlaced(t,"twitter_timeline")&&"object"==typeof twttr&&"object"==typeof twttr.widgets&&"function"==typeof twttr.widgets.load)twttr.widgets.load(t.container[0]);else if(wp.isJetpackWidgetPlaced(t,"eu_cookie_law_widget"))e("#eu-cookie-law").hasClass("top")?e(".widget_eu_cookie_law_widget").addClass("top"):e(".widget_eu_cookie_law_widget").removeClass("top"),t.container.fadeIn();else if(wp.isJetpackWidgetPlaced(t,"jetpack_simple_payments_widget"))try{var i=e(".jetpack-simple-payments-button",t.container).attr("id").replace("_button","");PaypalExpressCheckout.renderButton(null,null,i,null)}catch(e){}}),wp.customize.selectiveRefresh.bind("partial-content-moved",function(e){e.container&&(wp.isJetpackWidgetPlaced(e,"twitter_timeline")&&e.container.find("iframe.twitter-timeline:not([src]):first").length?e.partial.refresh():wp.isJetpackWidgetPlaced(e,"jetpack_simple_payments_widget")&&e.partial.refresh())}))})}(jQuery); \ No newline at end of file
+!function(){var e;wp.customizerHasPartialWidgetRefresh=function(){return"object"==typeof wp&&"function"==typeof wp.customize&&"object"==typeof wp.customize.selectiveRefresh&&"object"==typeof wp.customize.widgetsPreview&&"function"==typeof wp.customize.widgetsPreview.WidgetPartial},wp.isJetpackWidgetPlaced=function(e,t){return e.partial.widgetId&&0===e.partial.widgetId.indexOf(t)},(e=jQuery)(document).ready((function(){wp&&wp.customize&&wp.customizerHasPartialWidgetRefresh()&&(wp.customize.selectiveRefresh.bind("partial-content-rendered",(function(t){if(t.container)if(wp.isJetpackWidgetPlaced(t,"googleplus-badge")&&"object"==typeof gapi&&gapi.person&&"function"==typeof gapi.person.go)gapi.person.go(t.container[0]);else if(wp.isJetpackWidgetPlaced(t,"facebook-likebox")&&"object"==typeof FB&&"object"==typeof FB.XFBML&&"function"==typeof FB.XFBML.parse)FB.XFBML.parse(t.container[0],(function(){var i=e(t.container[0]).find(".fb_iframe_widget"),o=i.data("width"),a=i.data("height");i.find("span").css({width:o,height:a}),setTimeout((function(){i.find("iframe").css({width:o,height:a,position:"relative"})}),1)}));else if(wp.isJetpackWidgetPlaced(t,"twitter_timeline")&&"object"==typeof twttr&&"object"==typeof twttr.widgets&&"function"==typeof twttr.widgets.load)twttr.widgets.load(t.container[0]);else if(wp.isJetpackWidgetPlaced(t,"eu_cookie_law_widget"))e("#eu-cookie-law").hasClass("top")?e(".widget_eu_cookie_law_widget").addClass("top"):e(".widget_eu_cookie_law_widget").removeClass("top"),t.container.fadeIn();else if(wp.isJetpackWidgetPlaced(t,"jetpack_simple_payments_widget"))try{var i=e(".jetpack-simple-payments-button",t.container).attr("id").replace("_button","");PaypalExpressCheckout.renderButton(null,null,i,null)}catch(e){}})),wp.customize.selectiveRefresh.bind("partial-content-moved",(function(e){e.container&&(wp.isJetpackWidgetPlaced(e,"twitter_timeline")&&e.container.find("iframe.twitter-timeline:not([src]):first").length||wp.isJetpackWidgetPlaced(e,"jetpack_simple_payments_widget"))&&e.partial.refresh()})))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.asset.php
new file mode 100644
index 00000000..a0a65c0d
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'ef332b3b0b491e3e9b0f895c042ff257'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js
index 8cabb2ec..633c0ccc 100644
--- a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* eslint no-var: 0 */
-!function(i){var e=i(document);e.on("ready",function(){var o=function(e,o){var c=i(o||this).closest(".eu-cookie-law-widget-policy-url");c.find('input[type="radio"][value="default"]').is(":checked")?(c.find(".notice.default-policy").css("display","block"),c.find(".notice.custom-policy").hide()):(c.find(".notice.default-policy").hide(),c.find(".notice.custom-policy").css("display","block"))};e.on("click",'.eu-cookie-law-widget-policy-url input[type="radio"]',o),e.on("widget-updated widget-added",function(e,c){var d=i(c).attr("id");-1!==d.indexOf("eu_cookie_law_widget")&&o(0,i("#"+d+" .eu-cookie-law-widget-policy-url"))}),i(".eu-cookie-law-widget-policy-url").each(o)})}(jQuery); \ No newline at end of file
+!function(){var i,e;i=jQuery,(e=i(document)).on("ready",(function(){var o=function(e,o){var c=i(o||this).closest(".eu-cookie-law-widget-policy-url");c.find('input[type="radio"][value="default"]').is(":checked")?(c.find(".notice.default-policy").css("display","block"),c.find(".notice.custom-policy").hide()):(c.find(".notice.default-policy").hide(),c.find(".notice.custom-policy").css("display","block"))};e.on("click",'.eu-cookie-law-widget-policy-url input[type="radio"]',o),e.on("widget-updated widget-added",(function(e,c){var d=i(c).attr("id");d&&-1!==d.indexOf("eu_cookie_law_widget")&&o(0,i("#"+d+" .eu-cookie-law-widget-policy-url"))})),i(".eu-cookie-law-widget-policy-url").each(o)}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.asset.php b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.asset.php
new file mode 100644
index 00000000..6fe522e2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'c3dd83bf05544fa797b2e4a3e4cfb657'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js
index e9a718be..e9884b50 100644
--- a/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js
+++ b/plugins/jetpack/_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e){var o,a,t=document.cookie.replace(/(?:(?:^|.*;\s*)eucookielaw\s*\=\s*([^;]*).*$)|^.*$/,"$1"),i=e("#eu-cookie-law");if(i.hasClass("top")&&e(".widget_eu_cookie_law_widget").addClass("top"),i.hasClass("ads-active")){var s=document.cookie.replace(/(?:(?:^|.*;\s*)personalized-ads-consent\s*\=\s*([^;]*).*$)|^.*$/,"$1");""!==t&&""!==s&&i.remove()}else""!==t&&i.remove();e(".widget_eu_cookie_law_widget").appendTo("body").fadeIn(),i.find("form").on("submit",d),i.hasClass("hide-on-scroll")?(o=e(window).scrollTop(),a=function(){Math.abs(e(window).scrollTop()-o)>50&&d()},e(window).on("scroll",a)):i.hasClass("hide-on-time")&&setTimeout(d,1e3*i.data("hide-timeout"));var n=!1;function d(o){if(!n){n=!0,o&&o.preventDefault&&o.preventDefault(),i.hasClass("hide-on-scroll")&&e(window).off("scroll",a);var t=new Date;t.setTime(t.getTime()+24*i.data("consent-expiration")*60*60*1e3),document.cookie="eucookielaw="+t.getTime()+";path=/;expires="+t.toGMTString(),i.hasClass("ads-active")&&i.hasClass("hide-on-button")&&(document.cookie="personalized-ads-consent="+t.getTime()+";path=/;expires="+t.toGMTString()),i.fadeOut(400,function(){i.remove();var e=document.querySelector(".widget.widget_eu_cookie_law_widget");e.parentNode.removeChild(e)})}}}(jQuery); \ No newline at end of file
+!function(){var e,t,i,o=document.cookie.replace(/(?:(?:^|.*;\s*)eucookielaw\s*\=\s*([^;]*).*$)|^.*$/,"$1"),n=document.getElementById("eu-cookie-law"),s=document.querySelector(".widget_eu_cookie_law_widget"),a=s&&s.hasAttribute("data-customize-widget-id");if(null!==s&&null!==n){if(e=function(){return Math.abs(document.body.getBoundingClientRect().y)},n.classList.contains("top")&&s.classList.add("top"),n.classList.contains("ads-active")){var c=document.cookie.replace(/(?:(?:^|.*;\s*)personalized-ads-consent\s*\=\s*([^;]*).*$)|^.*$/,"$1");""===o||""===c||a||n.parentNode.removeChild(n)}else""===o||a||n.parentNode.removeChild(n);document.body.appendChild(s),n.querySelector("form").addEventListener("submit",r),n.classList.contains("hide-on-scroll")?(t=e(),i=function(){Math.abs(e()-t)>50&&r()},window.addEventListener("scroll",i)):n.classList.contains("hide-on-time")&&setTimeout(r,1e3*n.getAttribute("data-hide-timeout"));var d=!1}function r(e){if(!d){d=!0,e&&e.preventDefault&&e.preventDefault(),n.classList.contains("hide-on-scroll")&&window.removeEventListener("scroll",i);var t=new Date;t.setTime(t.getTime()+24*n.getAttribute("data-consent-expiration")*60*60*1e3),document.cookie="eucookielaw="+t.getTime()+";path=/;expires="+t.toGMTString(),n.classList.contains("ads-active")&&n.classList.contains("hide-on-button")&&(document.cookie="personalized-ads-consent="+t.getTime()+";path=/;expires="+t.toGMTString()),n.classList.add("hide"),setTimeout((function(){n.parentNode.removeChild(n);var e=document.querySelector(".widget.widget_eu_cookie_law_widget");e.parentNode.removeChild(e)}),400)}}}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.asset.php
new file mode 100644
index 00000000..a28db002
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'cf880577f1b9f97c540df4ba1f4d5ca1'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.js b/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.js
index 3a26b385..41ab36dc 100644
--- a/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/gallery/js/admin.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global _wpMediaViewsL10n, _wpGalleryWidgetAdminSettings */
-!function(e){var t,i;e(function(){e(document.body).on("click",".gallery-widget-choose-images",function(l){l.preventDefault();var n=e(this).closest("form, .form");t=n.find(".gallery-widget-ids"),i=n.find(".gallery-widget-thumbs");var r=function(e){if(!e)return null;var t=wp.shortcode.next("gallery",'[gallery ids="'+e+'"]');return t=t.shortcode,wp.media.gallery.attachments(t)}(t.val()),a=null,o=!1;r&&(a=function(e){var t=new wp.media.model.Selection(e.models,{props:e.props.toJSON(),multiple:!0});return t.gallery=e.gallery,t.more().done(function(){t.props.set({query:!1}),t.unmirror(),t.props.unset("orderby")}),t}(r),o=!0),function(e){var l=new wp.media.view.MediaFrame.GalleryWidget(e);return l.on("update",function(e){var n=l.state();if(e=e||n.get("selection")){var r=e.map(function(e){return e.get("id")}).join(",");t.val(r).trigger("change"),function(e,t){t.empty();var i=_wpGalleryWidgetAdminSettings.thumbSize;e.each(function(e){var l=e.get("url")+"?w="+i+"&h="+i+"&crop=true",n=jQuery("<img>",{src:l,alt:e.get("title"),title:e.get("title"),width:i,height:i,class:"thumb"});t.append(n)})}(e,i)}},this),l.setState(l.options.state),l}({state:"gallery-edit",title:wp.media.view.l10n.addMedia,multiple:!0,editing:o,selection:a}).open()}),e(".widget-inside").on("change",".gallery-widget-style",r),r()});var l,n=wp.media;function r(){e(".widget-inside .gallery-widget-style").each(function(){var t=e(this).val(),i=e(this).parents("form");switch(t){case"slideshow":i.find(".gallery-widget-link-wrapper").hide(),i.find(".gallery-widget-columns-wrapper").hide();break;default:i.find(".gallery-widget-link-wrapper").show(),i.find(".gallery-widget-columns-wrapper").show()}})}l=n.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,n.view.MediaFrame.GalleryWidget=n.view.MediaFrame.Post.extend({createStates:function(){var e=this.options;"CollectionEdit"in n.controller?this.states.add([new n.controller.CollectionEdit({type:"image",collectionType:"gallery",title:l.editGalleryTitle,SettingsView:n.view.Settings.Gallery,library:e.selection,editing:e.editing,menu:"gallery"}),new n.controller.CollectionAdd({type:"image",collectionType:"gallery",title:l.addToGalleryTitle})]):("WidgetGalleryEdit"in n.controller||(n.controller.WidgetGalleryEdit=n.controller.GalleryEdit.extend({gallerySettings:function(){}})),this.states.add([new n.controller.WidgetGalleryEdit({library:e.selection,editing:e.editing,menu:"gallery"}),new n.controller.GalleryAdd({})]))}})}(jQuery); \ No newline at end of file
+!function(e){var t,i;e((function(){e(document.body).on("click",".gallery-widget-choose-images",(function(l){l.preventDefault();var n=e(this).closest("form, .form");t=n.find(".gallery-widget-ids"),i=n.find(".gallery-widget-thumbs");var r=function(e){if(!e)return null;var t=wp.shortcode.next("gallery",'[gallery ids="'+e+'"]');return t=t.shortcode,wp.media.gallery.attachments(t)}(t.val()),a=null,o=!1;r&&(a=function(e){var t=new wp.media.model.Selection(e.models,{props:e.props.toJSON(),multiple:!0});return t.gallery=e.gallery,t.more().done((function(){t.props.set({query:!1}),t.unmirror(),t.props.unset("orderby")})),t}(r),o=!0);var d=function(e){var l=new wp.media.view.MediaFrame.GalleryWidget(e);return l.on("update",(function(e){var n=l.state();if(e=e||n.get("selection")){var r=e.map((function(e){return e.get("id")})).join(",");t.val(r).trigger("change"),function(e,t){t.empty();var i=_wpGalleryWidgetAdminSettings.thumbSize;e.each((function(e){var l=e.get("url")+"?w="+i+"&h="+i+"&crop=true",n=jQuery("<img>",{src:l,alt:e.get("title"),title:e.get("title"),width:i,height:i,class:"thumb"});t.append(n)}))}(e,i)}}),this),l.setState(l.options.state),l}({state:"gallery-edit",title:wp.media.view.l10n.addMedia,multiple:!0,editing:o,selection:a});d.open()})),e(".widget-inside").on("change",".gallery-widget-style",r),r()}));var l,n=wp.media;function r(){e(".widget-inside .gallery-widget-style").each((function(){var t=e(this).val(),i=e(this).parents("form");"slideshow"===t?(i.find(".gallery-widget-link-wrapper").hide(),i.find(".gallery-widget-columns-wrapper").hide()):(i.find(".gallery-widget-link-wrapper").show(),i.find(".gallery-widget-columns-wrapper").show())}))}l=n.view.l10n="undefined"==typeof _wpMediaViewsL10n?{}:_wpMediaViewsL10n,n.view.MediaFrame.GalleryWidget=n.view.MediaFrame.Post.extend({createStates:function(){var e=this.options;"CollectionEdit"in n.controller?this.states.add([new n.controller.CollectionEdit({type:"image",collectionType:"gallery",title:l.editGalleryTitle,SettingsView:n.view.Settings.Gallery,library:e.selection,editing:e.editing,menu:"gallery"}),new n.controller.CollectionAdd({type:"image",collectionType:"gallery",title:l.addToGalleryTitle})]):("WidgetGalleryEdit"in n.controller||(n.controller.WidgetGalleryEdit=n.controller.GalleryEdit.extend({gallerySettings:function(){}})),this.states.add([new n.controller.WidgetGalleryEdit({library:e.selection,editing:e.editing,menu:"gallery"}),new n.controller.GalleryAdd({})]))}})}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.asset.php b/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.asset.php
new file mode 100644
index 00000000..3048aba2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '0e72e5f05e5146000977a841833a9480'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.js b/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.js
index e388329e..e30f74db 100644
--- a/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.js
+++ b/plugins/jetpack/_inc/build/widgets/gallery/js/gallery.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-jQuery("body").on("click",".widget-gallery .no-carousel .tiled-gallery-item a",function(e){return e.stopPropagation(),!0}); \ No newline at end of file
+jQuery("body").on("click",".widget-gallery .no-carousel .tiled-gallery-item a",(function(e){return e.stopPropagation(),!0})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.asset.php b/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.asset.php
new file mode 100644
index 00000000..cee4cc86
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '1922a0d7353557a7d66afa14ad6fad7a'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.js b/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.js
index 4d416343..06b566a9 100644
--- a/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.js
+++ b/plugins/jetpack/_inc/build/widgets/google-translate/google-translate.min.js
@@ -1,5 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/*global google:true*/
-/*global _wp_google_translate_widget:true*/
-/*exported googleTranslateElementInit*/
-function googleTranslateElementInit(){var e,a="en",t=/[?&#]lang=([a-zA-Z\-_]+)/;"object"==typeof _wp_google_translate_widget&&"string"==typeof _wp_google_translate_widget.lang&&(a=_wp_google_translate_widget.lang),(e=window.location.href.match(t))&&(window.location.href=window.location.href.replace(t,"").replace(/#googtrans\([a-zA-Z\-_|]+\)/,"")+"#googtrans("+a+"|"+e[1]+")"),new google.translate.TranslateElement({pageLanguage:a,layout:_wp_google_translate_widget.layout,autoDisplay:!1},"google_translate_element")} \ No newline at end of file
+!function(){var e={6097:function(e,t,o){(e=o.nmd(e))&&(e.exports=function(){var e,t="en",o=/[?&#]lang=([a-zA-Z\-_]+)/;"object"==typeof _wp_google_translate_widget&&"string"==typeof _wp_google_translate_widget.lang&&(t=_wp_google_translate_widget.lang),(e=window.location.href.match(o))&&(window.location.href=window.location.href.replace(o,"").replace(/#googtrans\([a-zA-Z\-_|]+\)/,"")+"#googtrans("+t+"|"+e[1]+")"),new google.translate.TranslateElement({pageLanguage:t,layout:_wp_google_translate_widget.layout,autoDisplay:!1},"google_translate_element")})}},t={};function o(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={id:a,loaded:!1,exports:{}};return e[a](r,r.exports,o),r.loaded=!0,r.exports}o.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e};var a=o(6097);googleTranslateElementInit=a}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/milestone/admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/milestone/admin.min.asset.php
new file mode 100644
index 00000000..b791a871
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/milestone/admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'fe5c588fcac367664a127cf363ffcdde'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/milestone/admin.min.js b/plugins/jetpack/_inc/build/widgets/milestone/admin.min.js
index eb5e2ea8..4b48330c 100644
--- a/plugins/jetpack/_inc/build/widgets/milestone/admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/milestone/admin.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(e){var n=e("#customize-controls");function t(){n.find(".milestone-type").trigger("change")}n.length||(n=e("#wpbody")),n.on("change",".milestone-type",function(){var n=e(this).parent().find(".milestone-message-wrapper");"since"===e(this).find('input[type="radio"]:checked').val()?n.hide():n.show()}),e(document).on("widget-added widget-updated",function(){t()}),t()}(jQuery); \ No newline at end of file
+!function(e){var n=e("#customize-controls");function t(){n.find(".milestone-type").trigger("change")}n.length||(n=e("#wpbody")),n.on("change",".milestone-type",(function(){var n=e(this).parent().find(".milestone-message-wrapper");"since"===e(this).find('input[type="radio"]:checked').val()?n.hide():n.show()})),e(document).on("widget-added widget-updated",(function(){t()})),t()}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.asset.php b/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.asset.php
new file mode 100644
index 00000000..2250ba70
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'dda4b03570cb1cbfb33509b2c4c15525'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.js b/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.js
index cdae452c..85e83acb 100644
--- a/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.js
+++ b/plugins/jetpack/_inc/build/widgets/milestone/milestone.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global MilestoneConfig */
-var Milestone=function(e){var n=function(n){var i=e("#"+n.id),t=n.id,o=1e3*n.refresh;this.timer=function(){var n=this;e.ajax({url:MilestoneConfig.api_root+"jetpack/v4/widgets/"+t,success:function(e){i.find(".milestone-countdown").replaceWith(e.message),(o=1e3*e.refresh)&&setTimeout(function(){n.timer()},o)}})},o>0&&this.timer()};return function(e){return new n(e)}}(jQuery);!function(){var e,n={};if("undefined"!=typeof MilestoneConfig)for(e=0;e<MilestoneConfig.instances.length;e++)n[e]=new Milestone(MilestoneConfig.instances[e])}(); \ No newline at end of file
+!function(){var e=function(){var e=function(e){var n=document.getElementById(e.content_id),t=e.id,i=1e3*e.refresh;this.timer=function(){var e=this,o=new XMLHttpRequest;o.onload=function(){var t=JSON.parse(o.responseText),s=o.status>=200&&o.status<300,r=void 0!==t.message&&void 0!==t.refresh;if(s&&r){if(n.querySelector(".milestone-countdown").outerHTML=t.message,!(i=1e3*t.refresh))return;setTimeout((function(){e.timer()}),i)}},o.open("GET",MilestoneConfig.api_root+"jetpack/v4/widgets/"+t),o.send()},i>0&&this.timer()};return function(n){return new e(n)}}();!function(){var n,t={};if("undefined"!=typeof MilestoneConfig)for(n=0;n<MilestoneConfig.instances.length;n++)t[n]=new e(MilestoneConfig.instances[n])}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.asset.php
new file mode 100644
index 00000000..e8b3cc6b
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'f14a1b17fd87413ca08b93d4e86e64b5'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.js b/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.js
index 7ea8d66d..9828e41a 100644
--- a/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/search/js/search-widget-admin.min.js
@@ -1,3 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* globals jetpack_search_filter_admin, jQuery, analytics */
-!function(e,t){var a=void 0!==t&&t.defaultFilterCount?t.defaultFilterCount:5;function s(a){var s=null,c=null,i=a.find(".filter-select").val();"taxonomy"===i?s=a.find(".taxonomy-select option:selected").text().trim():"date_histogram"===i&&t&&t.i18n?(c=-1!==a.find(".date-field-select").val().indexOf("modified"),s="month"===a.find(".date-interval-select").val()?c?t.i18n.monthUpdated:t.i18n.month:c?t.i18n.yearUpdated:t.i18n.year):s=a.find(".filter-select option:selected").text().trim(),e(a).find(".jetpack-search-filters-widget__title input").prop("placeholder",s)}e(document).ready(function(){i(),window.JetpackSearch=window.JetpackSearch||{},window.JetpackSearch.addFilter=c,"undefined"!=typeof analytics&&t.tracksUserData&&analytics.initialize(t.tracksUserData.userid,t.tracksUserData.username)});var c=function(e,t){var a=_.template(e.closest(".jetpack-search-filters-widget").find(".jetpack-search-filters-widget__filter-template").html());s(e.append(a(t)))},i=function(i){i=void 0===i?e(".jetpack-search-filters-widget"):i;var n=function(t){return e(t).closest(".jetpack-search-filters-widget__filter")};i.on("change",".filter-select",function(){var a=e(this),c=a.val(),i={is_customizer:t.tracksEventData.is_customizer};i.type=c,a.closest(".jetpack-search-filters-widget__filter").attr("class","jetpack-search-filters-widget__filter").addClass("is-"+c),s(n(this)),r("changed_filter_type",i)}),i.on("change",".jetpack-search-filters-widget__search-box-enabled",function(){var a=e(this),s=a.is(":checked"),c=a.closest(".jetpack-search-filters-widget"),i=c.find(".jetpack-search-filters-widget__sort-controls-enabled");c.toggleClass("hide-post-types"),s?(i.removeAttr("disabled"),r("enabled_search_box",t.tracksEventData)):(i.prop("checked",!1),i.prop("disabled",!0),r("disabled_search_box",t.tracksEventData))}),i.on("change",".jetpack-search-filters-widget__sort-controls-enabled",function(){e(this).is(":checked")?r("enabled_sort_controls",t.tracksEventData):r("disabled_sort_controls",t.tracksEventData)}),i.on("click",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]',function(a){0===e(this).closest(".jetpack-search-filters-widget").find('.jetpack-search-filters-widget__post-types-select input[type="checkbox"]:checked').length&&(a.preventDefault(),a.stopPropagation(),r("attempted_no_post_types",t.tracksEventData))}),i.on("change",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]',function(){var a=e(this),s={is_customizer:t.tracksEventData.is_customizer,post_type:a.val()};wp&&wp.customize&&wp.customize.state("saved").set(!1),a.is(":checked")?r("added_post_type",s):r("removed_post_type",s)}),i.on("change",".jetpack-search-filters-widget__sort-order",function(){var a={is_customizer:t.tracksEventData.is_customizer};a.order=e(this).val(),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_sort_order",a)}),i.on("change",".jetpack-search-filters-widget__taxonomy-select select",function(){var a={is_customizer:t.tracksEventData.is_customizer};a.taxonomy=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_taxonomy",a)}),i.on("change","select.date-field-select",function(){var a={is_customizer:t.tracksEventData.is_customizer};a.field=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_date_field",a)}),i.on("change","select.date-interval-select",function(){var a={is_customizer:t.tracksEventData.is_customizer};a.interval=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_date_interval",a)}),i.on("change","input.filter-count",function(){var a={is_customizer:t.tracksEventData.is_customizer};a.count=e(this).val(),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_filter_count",a)}),i.on("click",".jetpack-search-filters-widget__add-filter",function(s){s.preventDefault();var i=e(this).closest(".jetpack-search-filters-widget").find(".jetpack-search-filters-widget__filters");c(i,{type:"taxonomy",taxonomy:"",post_type:"",field:"",interval:"",count:a,name_placeholder:"",name:""}),wp&&wp.customize&&wp.customize.state("saved").set(!1),i.find(".jetpack-search-filters-widget__filter").find("input, textarea, select").change(),r("added_filter",t.tracksEventData)}),i.on("click",".jetpack-search-filters-widget__controls .delete",function(a){a.preventDefault();var s=e(this).closest(".jetpack-search-filters-widget__filter"),c={is_customizer:t.tracksEventData.is_customizer};switch(c.type=s.find(".filter-select").val(),c.type){case"taxonomy":c.taxonomy=s.find(".jetpack-search-filters-widget__taxonomy-select select").val();break;case"date_histogram":c.dateField=s.find(".jetpack-search-filters-widget__date-histogram-select:first select").val(),c.dateInterval=s.find(".jetpack-search-filters-widget__date-histogram-select:nth-child( 2 ) select").val()}c.filterCount=s.find(".filter-count").val(),r("deleted_filter",c),s.find("input, textarea, select").change(),s.remove(),wp&&wp.customize&&wp.customize.state("saved").set(!1)}),e(".jetpack-search-filters-widget__filters").sortable({placeholder:"jetpack-search-filters-widget__filter-placeholder",axis:"y",revert:!0,cancel:"input,textarea,button,select,option,.jetpack-search-filters-widget__controls a",change:function(){wp&&wp.customize&&wp.customize.state("saved").set(!1)},update:function(t,a){e(a.item).find("input, textarea, select").change()}}).disableSelection()};function r(e,t){void 0!==t&&"object"==typeof t||(t={}),e&&e.length&&"undefined"!=typeof analytics&&analytics.tracks&&analytics.mc&&(e=0!==(e=e.replace(/-/g,"_")).indexOf("jetpack_widget_search_")?"jetpack_widget_search_"+e:e,analytics.tracks.recordEvent(e,t),e=(e=e.replace("jetpack_widget_search_","")).replace(/_/g,"-"),analytics.mc.bumpStat("jetpack-search-widget",e))}e(document).on("widget-updated widget-added",function(t,a){var s=(a=e(a)).attr("id");s&&-1!==s.indexOf("jetpack-search-filters")&&(a.off("change",".filter-select"),a.off("click",".jetpack-search-filters-widget__controls .delete"),a.off("change",".jetpack-search-filters-widget__use-filters"),a.off("change",".jetpack-search-filters-widget__search-box-enabled"),a.off("change",".jetpack-search-filters-widget__sort-controls-enabled"),a.off("change",".jetpack-search-filters-widget__sort-controls-enabled"),a.off("change",".jetpack-search-filters-widget__post-type-selector"),a.off("change",".jetpack-search-filters-widget__sort-order"),a.off("change",".jetpack-search-filters-widget__taxonomy-select"),a.off("change",".jetpack-search-filters-widget__date-histogram-select:first select"),a.off("change",".jetpack-search-filters-widget__date-histogram-select:eq(1) select"),a.off("click",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]'),a.off("click",".jetpack-search-filters-widget__add-filter"),i(a))})}(jQuery,jetpack_search_filter_admin); \ No newline at end of file
+!function(e,t){var a=void 0!==t&&t.defaultFilterCount?t.defaultFilterCount:5;function s(a){var s=null,c=null,i=a.find(".filter-select").val();"taxonomy"===i?s=a.find(".taxonomy-select option:selected").text().trim():"date_histogram"===i&&t&&t.i18n?(c=-1!==a.find(".date-field-select").val().indexOf("modified"),s="month"===a.find(".date-interval-select").val()?c?t.i18n.monthUpdated:t.i18n.month:c?t.i18n.yearUpdated:t.i18n.year):s=a.find(".filter-select option:selected").text().trim(),e(a).find(".jetpack-search-filters-widget__title input").prop("placeholder",s)}e(document).ready((function(){i(),window.JetpackSearch=window.JetpackSearch||{},window.JetpackSearch.addFilter=c,"undefined"!=typeof analytics&&t.tracksUserData&&analytics.initialize(t.tracksUserData.userid,t.tracksUserData.username)}));var c=function(e,t){var a=_.template(e.closest(".jetpack-search-filters-widget").find(".jetpack-search-filters-widget__filter-template").html());s(e.append(a(t)))},i=function(i){i=void 0===i?e(".jetpack-search-filters-widget"):i;var n=function(t){return e(t).closest(".jetpack-search-filters-widget__filter")};i.on("change",".filter-select",(function(){var a=e(this),c=a.val(),i={is_customizer:t.tracksEventData.is_customizer};i.type=c,a.closest(".jetpack-search-filters-widget__filter").attr("class","jetpack-search-filters-widget__filter").addClass("is-"+c),s(n(this)),r("changed_filter_type",i)})),i.on("change",".jetpack-search-filters-widget__search-box-enabled",(function(){var a=e(this),s=a.is(":checked"),c=a.closest(".jetpack-search-filters-widget"),i=c.find(".jetpack-search-filters-widget__sort-controls-enabled");c.toggleClass("hide-post-types"),s?(i.removeAttr("disabled"),r("enabled_search_box",t.tracksEventData)):(i.prop("checked",!1),i.prop("disabled",!0),r("disabled_search_box",t.tracksEventData))})),i.on("change",".jetpack-search-filters-widget__sort-controls-enabled",(function(){e(this).is(":checked")?r("enabled_sort_controls",t.tracksEventData):r("disabled_sort_controls",t.tracksEventData)})),i.on("click",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]',(function(a){0===e(this).closest(".jetpack-search-filters-widget").find('.jetpack-search-filters-widget__post-types-select input[type="checkbox"]:checked').length&&(a.preventDefault(),a.stopPropagation(),r("attempted_no_post_types",t.tracksEventData))})),i.on("change",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]',(function(){var a=e(this),s={is_customizer:t.tracksEventData.is_customizer,post_type:a.val()};wp&&wp.customize&&wp.customize.state("saved").set(!1),a.is(":checked")?r("added_post_type",s):r("removed_post_type",s)})),i.on("change",".jetpack-search-filters-widget__sort-order",(function(){var a={is_customizer:t.tracksEventData.is_customizer};a.order=e(this).val(),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_sort_order",a)})),i.on("change",".jetpack-search-filters-widget__taxonomy-select select",(function(){var a={is_customizer:t.tracksEventData.is_customizer};a.taxonomy=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_taxonomy",a)})),i.on("change","select.date-field-select",(function(){var a={is_customizer:t.tracksEventData.is_customizer};a.field=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_date_field",a)})),i.on("change","select.date-interval-select",(function(){var a={is_customizer:t.tracksEventData.is_customizer};a.interval=e(this).val(),s(n(this)),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_date_interval",a)})),i.on("change","input.filter-count",(function(){var a={is_customizer:t.tracksEventData.is_customizer};a.count=e(this).val(),wp&&wp.customize&&wp.customize.state("saved").set(!1),r("changed_filter_count",a)})),i.on("click",".jetpack-search-filters-widget__add-filter",(function(s){s.preventDefault();var i=e(this).closest(".jetpack-search-filters-widget").find(".jetpack-search-filters-widget__filters");c(i,{type:"taxonomy",taxonomy:"",post_type:"",field:"",interval:"",count:a,name_placeholder:"",name:""}),wp&&wp.customize&&wp.customize.state("saved").set(!1),i.find(".jetpack-search-filters-widget__filter").find("input, textarea, select").change(),r("added_filter",t.tracksEventData)})),i.on("click",".jetpack-search-filters-widget__controls .delete",(function(a){a.preventDefault();var s=e(this).closest(".jetpack-search-filters-widget__filter"),c={is_customizer:t.tracksEventData.is_customizer};switch(c.type=s.find(".filter-select").val(),c.type){case"taxonomy":c.taxonomy=s.find(".jetpack-search-filters-widget__taxonomy-select select").val();break;case"date_histogram":c.dateField=s.find(".jetpack-search-filters-widget__date-histogram-select:first select").val(),c.dateInterval=s.find(".jetpack-search-filters-widget__date-histogram-select:nth-child( 2 ) select").val()}c.filterCount=s.find(".filter-count").val(),r("deleted_filter",c),s.find("input, textarea, select").change(),s.remove(),wp&&wp.customize&&wp.customize.state("saved").set(!1)})),e(".jetpack-search-filters-widget__filters").sortable({placeholder:"jetpack-search-filters-widget__filter-placeholder",axis:"y",revert:!0,cancel:"input,textarea,button,select,option,.jetpack-search-filters-widget__controls a",change:function(){wp&&wp.customize&&wp.customize.state("saved").set(!1)},update:function(t,a){e(a.item).find("input, textarea, select").change()}}).disableSelection()};function r(e,t){void 0!==t&&"object"==typeof t||(t={}),e&&e.length&&"undefined"!=typeof analytics&&analytics.tracks&&analytics.mc&&(e=0!==(e=e.replace(/-/g,"_")).indexOf("jetpack_widget_search_")?"jetpack_widget_search_"+e:e,analytics.tracks.recordEvent(e,t),e=(e=e.replace("jetpack_widget_search_","")).replace(/_/g,"-"),analytics.mc.bumpStat("jetpack-search-widget",e))}e(document).on("widget-updated widget-added",(function(t,a){var s=e(a).find(".id_base").val();s&&"jetpack-search-filters"===s&&(a.off("change",".filter-select"),a.off("click",".jetpack-search-filters-widget__controls .delete"),a.off("change",".jetpack-search-filters-widget__use-filters"),a.off("change",".jetpack-search-filters-widget__search-box-enabled"),a.off("change",".jetpack-search-filters-widget__sort-controls-enabled"),a.off("change",".jetpack-search-filters-widget__sort-controls-enabled"),a.off("change",".jetpack-search-filters-widget__post-type-selector"),a.off("change",".jetpack-search-filters-widget__sort-order"),a.off("change",".jetpack-search-filters-widget__taxonomy-select"),a.off("change",".jetpack-search-filters-widget__date-histogram-select:first select"),a.off("change",".jetpack-search-filters-widget__date-histogram-select:eq(1) select"),a.off("click",'.jetpack-search-filters-widget__post-types-select input[type="checkbox"]'),a.off("click",".jetpack-search-filters-widget__add-filter"),i(a))}))}(jQuery,jetpack_search_filter_admin); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.asset.php b/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.asset.php
new file mode 100644
index 00000000..040558a2
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '6a928ee58fcea55ef7346d0055b1481b'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.js b/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.js
index 29a005c8..59947364 100644
--- a/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.js
+++ b/plugins/jetpack/_inc/build/widgets/search/js/search-widget.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-jQuery(document).ready(function(){var e=jQuery(".jetpack-search-filters-widget__filter-list");e.on("click","a",function(){var e=jQuery(this).siblings('input[type="checkbox"]');e.prop("checked",!e.prop("checked"))}),e.find('input[type="checkbox"]').prop("disabled",!1).css("cursor","inherit").on("click",function(){var e=jQuery(this).siblings("a");e.length&&(window.location.href=e.prop("href"))})}); \ No newline at end of file
+!function(){var e=function(){var e,t,n,o=document.querySelectorAll(".jetpack-search-filters-widget__filter-list");for(e=0;e<o.length;e++)for(o[e].addEventListener("click",(function(e){var t,n,o=e.target;o.nodeName&&"a"===o.nodeName.toLowerCase()&&(t=o.previousElementSibling)&&t.type&&"checkbox"===t.type&&(t.checked=!t.checked),o.type&&"checkbox"===o.type&&(n=o.nextElementSibling)&&"a"===n.nodeName.toLowerCase()&&(window.location.href=n.getAttribute("href"))})),n=o[e].querySelectorAll('input[type="checkbox"]'),t=0;t<n.length;t++)n[t].disabled=!1,n[t].style.cursor="inherit"};"interactive"===document.readyState||"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",e)}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.asset.php b/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.asset.php
new file mode 100644
index 00000000..9f953790
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '2557197847d225f438d9e5eaf2352425'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.js b/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.js
index bd6cb45c..eea4b76e 100644
--- a/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.js
+++ b/plugins/jetpack/_inc/build/widgets/simple-payments/customizer.min.js
@@ -1,4 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-/* global jQuery, jpSimplePaymentsStrings, confirm, _ */
-/* eslint no-var: 0, quote-props: 0 */
-!function(e,t,i){var a=i(document);function p(e){e.find(".invalid").removeClass("invalid"),e.find(".jetpack-simple-payments-widget-title").add(".jetpack-simple-payments-products").add(".jetpack-simple-payments-add-product").add(".jetpack-simple-payments-edit-product").add(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").add(".jetpack-simple-payments-delete-product").attr("disabled","disabled"),e.find(".jetpack-simple-payments-form").show()}function n(e){e.find(".jetpack-simple-payments-widget-title").add(".jetpack-simple-payments-products").removeAttr("disabled"),e.find(".jetpack-simple-payments-form").hide()}function s(e,t){e.find(".jetpack-simple-payments-form-action").val(t).change()}function d(e){var t=e.find(".jetpack-simple-payments-form").is(":visible"),i=e.find(".jetpack-simple-payments-products").is(":visible"),a="edit"===e.find(".jetpack-simple-payments-form-action").val();t?e.find(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").removeAttr("disabled"):e.find(".jetpack-simple-payments-add-product").removeAttr("disabled"),t&&a&&e.find(".jetpack-simple-payments-delete-product").removeAttr("disabled"),i&&!t&&e.find(".jetpack-simple-payments-edit-product").removeAttr("disabled")}function c(e){e.find(".jetpack-simple-payments-add-product").add(".jetpack-simple-payments-edit-product").add(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").add(".jetpack-simple-payments-delete-product").attr("disabled","disabled")}a.ready(function(){a.on("widget-added",function(a,m){m.is('[id*="jetpack_simple_payments_widget"]')&&function(a){var m=a.find("> .widget-inside > .form, > .widget-inside > form");m.find(".jetpack-simple-payments-add-product").on("click",function(e){return function(t){t.preventDefault(),p(e),s(e,"add")}}(m)),m.find(".jetpack-simple-payments-edit-product").on("click",function(e){return function(t){t.preventDefault(),p(e),s(e,"edit")}}(m)),m.find(".jetpack-simple-payments-image-fieldset .placeholder, .jetpack-simple-payments-image > img").on("click",function(e){return function(i){i.preventDefault();var a=e.find(".jetpack-simple-payments-image"),p=new t.media.view.MediaFrame.Select({title:"Choose Product Image",multiple:!1,library:{type:"image"},button:{text:"Choose Image"}});p.on("select",function(){var t=p.state().get("selection").first().toJSON();e.find(".jetpack-simple-payments-image-fieldset .placeholder").hide(),a.find("img").attr("src",t.url).show(),e.find(".jetpack-simple-payments-image").show(),e.find(".jetpack-simple-payments-form-image-id").val(t.id).change()}),p.open()}}(m)),m.find(".jetpack-simple-payments-remove-image").on("click",function(e){return function(t){t.preventDefault(),e.find(".jetpack-simple-payments-image-fieldset .placeholder").show(),e.find(".jetpack-simple-payments-image").hide(),e.find(".jetpack-simple-payments-form-image-id").val("").change()}}(m)),m.find(".jetpack-simple-payments-save-product").on("click",function(a){return function(p){p.preventDefault();var m=a.find(".jetpack-simple-payments-form-product-id").val();if(function(e){e.find(".invalid").removeClass("invalid");var t=!1;e.find(".jetpack-simple-payments-form-product-title").val()||(e.find(".jetpack-simple-payments-form-product-title").addClass("invalid"),t=!0);var i=e.find(".jetpack-simple-payments-form-product-price").val();(!i||isNaN(i)||parseFloat(i)<=0)&&(e.find(".jetpack-simple-payments-form-product-price").addClass("invalid"),t=!0);var a="JPY"===e.find(".jetpack-simple-payments-form-product-currency").val()?0:2,p=function(e){var t=e.split(".");if(t.length>2)return null;return t[1]?t[1].length:0}(i);(null===p||p>a)&&(e.find(".jetpack-simple-payments-form-product-price").addClass("invalid"),t=!0);var n=e.find(".jetpack-simple-payments-form-product-email").val(),s=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(n);n&&s||(e.find(".jetpack-simple-payments-form-product-email").addClass("invalid"),t=!0);return!t}(a)){c(a),a.find(".spinner").show();var o=t.ajax.post("customize-jetpack-simple-payments-button-save",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid,params:{product_post_id:m,post_title:a.find(".jetpack-simple-payments-form-product-title").val(),post_content:a.find(".jetpack-simple-payments-form-product-description").val(),image_id:a.find(".jetpack-simple-payments-form-image-id").val(),currency:a.find(".jetpack-simple-payments-form-product-currency").val(),price:a.find(".jetpack-simple-payments-form-product-price").val(),multiple:a.find(".jetpack-simple-payments-form-product-multiple").is(":checked")?1:0,email:a.find(".jetpack-simple-payments-form-product-email").val()}});o.done(function(e){var t=a.find("select.jetpack-simple-payments-products"),p=t.find('option[value="'+m+'"]');p.length>0?p.text(e.product_post_title):(t.append(i("<option>",{value:e.product_post_id,text:e.product_post_title})),t.val(e.product_post_id).change()),a.find(".jetpack-simple-payments-products-fieldset").show(),a.find(".jetpack-simple-payments-products-warning").hide(),s(a,"clear"),n(a)}),o.fail(function(e){var t={post_title:"product-title",price:"product-price",email:"product-email"};e.forEach(function(e){t.hasOwnProperty(e.code)&&a.find(".jetpack-simple-payments-form-"+t[e.code]).addClass("invalid")}),d(a)})}}}(m)),m.find(".jetpack-simple-payments-cancel-form").on("click",function(e){return function(t){t.preventDefault(),n(e),e.find(".jetpack-simple-payments-add-product, .jetpack-simple-payments-edit-product").attr("disabled","disabled"),s(e,"clear")}}(m)),m.find(".jetpack-simple-payments-delete-product").on("click",function(a){return function(p){if(p.preventDefault(),confirm(jpSimplePaymentsStrings.deleteConfirmation)){var d=parseInt(a.find(".jetpack-simple-payments-form-product-id").val(),10);if(d){c(a),a.find(".spinner").show();var m=t.ajax.post("customize-jetpack-simple-payments-button-delete",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid,params:{product_post_id:d}});m.done(function(){var e=a.find("select.jetpack-simple-payments-products")[0];e.remove(e.selectedIndex),e.dispatchEvent(new Event("change")),0===i(e).has("option").length&&(a.find(".jetpack-simple-payments-products-fieldset").hide(),a.find(".jetpack-simple-payments-products-warning").show()),s(a,"clear"),n(a)})}}}}(m)),m.find("select, input, textarea, checkbox").on("change input propertychange",_.debounce(function(){c(m)},250))}(m)}),a.on("widget-synced widget-updated",function(a,p){if(p.is('[id*="jetpack_simple_payments_widget"]')){a.preventDefault(),t.ajax.post("customize-jetpack-simple-payments-buttons-get",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid}).done(function(e){var t=0;i(document).find("select.jetpack-simple-payments-products").each(function(a,p){var n=i(p);t=n.val(),n.find("option").remove(),n.append(i.map(e,function(e){return i("<option>",{value:e.ID,text:e.post_title})})),n.val(t)})});var n=p.find("> .widget-inside > .form, > .widget-inside > form");d(n),function(e){var t=parseInt(e.find(".jetpack-simple-payments-form-image-id").val(),10),i=e.find(".jetpack-simple-payments-form-image-src").val(),a=e.find(".jetpack-simple-payments-image-fieldset .placeholder"),p=e.find(".jetpack-simple-payments-image > img"),n=e.find(".jetpack-simple-payments-image");t&&i?(p.attr("src",i),a.hide(),n.show()):(a.show(),p.removeAttr("src"),n.hide())}(n)}})})}(wp.customize,wp,jQuery); \ No newline at end of file
+!function(e,t,i){var a=i(document);function p(e){e.find(".invalid").removeClass("invalid"),e.find(".jetpack-simple-payments-widget-title").add(".jetpack-simple-payments-products").add(".jetpack-simple-payments-add-product").add(".jetpack-simple-payments-edit-product").add(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").add(".jetpack-simple-payments-delete-product").attr("disabled","disabled"),e.find(".jetpack-simple-payments-form").show()}function n(e){e.find(".jetpack-simple-payments-widget-title").add(".jetpack-simple-payments-products").removeAttr("disabled"),e.find(".jetpack-simple-payments-form").hide()}function s(e,t){e.find(".jetpack-simple-payments-form-action").val(t).change()}function d(e){var t=e.find(".jetpack-simple-payments-form").is(":visible"),i=e.find(".jetpack-simple-payments-products").is(":visible"),a="edit"===e.find(".jetpack-simple-payments-form-action").val();t?e.find(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").removeAttr("disabled"):e.find(".jetpack-simple-payments-add-product").removeAttr("disabled"),t&&a&&e.find(".jetpack-simple-payments-delete-product").removeAttr("disabled"),i&&!t&&e.find(".jetpack-simple-payments-edit-product").removeAttr("disabled")}function c(e){e.find(".jetpack-simple-payments-add-product").add(".jetpack-simple-payments-edit-product").add(".jetpack-simple-payments-save-product").add(".jetpack-simple-payments-cancel-form").add(".jetpack-simple-payments-delete-product").attr("disabled","disabled")}a.ready((function(){a.on("widget-added",(function(a,m){m.is('[id*="jetpack_simple_payments_widget"]')&&function(a){var m=a.find("> .widget-inside > .form, > .widget-inside > form");m.find(".jetpack-simple-payments-add-product").on("click",function(e){return function(t){t.preventDefault(),p(e),s(e,"add")}}(m)),m.find(".jetpack-simple-payments-edit-product").on("click",function(e){return function(t){t.preventDefault(),p(e),s(e,"edit")}}(m)),m.find(".jetpack-simple-payments-image-fieldset .placeholder, .jetpack-simple-payments-image > img").on("click",function(e){return function(i){i.preventDefault();var a=e.find(".jetpack-simple-payments-image"),p=new t.media.view.MediaFrame.Select({title:"Choose Product Image",multiple:!1,library:{type:"image"},button:{text:"Choose Image"}});p.on("select",(function(){var t=p.state().get("selection").first().toJSON();e.find(".jetpack-simple-payments-image-fieldset .placeholder").hide(),a.find("img").attr("src",t.url).show(),e.find(".jetpack-simple-payments-image").show(),e.find(".jetpack-simple-payments-form-image-id").val(t.id).change()})),p.open()}}(m)),m.find(".jetpack-simple-payments-remove-image").on("click",function(e){return function(t){t.preventDefault(),e.find(".jetpack-simple-payments-image-fieldset .placeholder").show(),e.find(".jetpack-simple-payments-image").hide(),e.find(".jetpack-simple-payments-form-image-id").val("").change()}}(m)),m.find(".jetpack-simple-payments-save-product").on("click",function(a){return function(p){p.preventDefault();var m=a.find(".jetpack-simple-payments-form-product-id").val();if(function(e){e.find(".invalid").removeClass("invalid");var t=!1;e.find(".jetpack-simple-payments-form-product-title").val()||(e.find(".jetpack-simple-payments-form-product-title").addClass("invalid"),t=!0);var i=e.find(".jetpack-simple-payments-form-product-price").val();(!i||isNaN(i)||parseFloat(i)<=0)&&(e.find(".jetpack-simple-payments-form-product-price").addClass("invalid"),t=!0);var a,p="JPY"===e.find(".jetpack-simple-payments-form-product-currency").val()?0:2,n=(a=i.split(".")).length>2?null:a[1]?a[1].length:0;(null===n||n>p)&&(e.find(".jetpack-simple-payments-form-product-price").addClass("invalid"),t=!0);var s=e.find(".jetpack-simple-payments-form-product-email").val(),d=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(s);return s&&d||(e.find(".jetpack-simple-payments-form-product-email").addClass("invalid"),t=!0),!t}(a)){c(a),a.find(".spinner").show();var o=t.ajax.post("customize-jetpack-simple-payments-button-save",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid,params:{product_post_id:m,post_title:a.find(".jetpack-simple-payments-form-product-title").val(),post_content:a.find(".jetpack-simple-payments-form-product-description").val(),image_id:a.find(".jetpack-simple-payments-form-image-id").val(),currency:a.find(".jetpack-simple-payments-form-product-currency").val(),price:a.find(".jetpack-simple-payments-form-product-price").val(),multiple:a.find(".jetpack-simple-payments-form-product-multiple").is(":checked")?1:0,email:a.find(".jetpack-simple-payments-form-product-email").val()}});o.done((function(e){var t=a.find("select.jetpack-simple-payments-products"),p=t.find('option[value="'+m+'"]');p.length>0?p.text(e.product_post_title):(t.append(i("<option>",{value:e.product_post_id,text:e.product_post_title})),t.val(e.product_post_id).change()),a.find(".jetpack-simple-payments-products-fieldset").show(),a.find(".jetpack-simple-payments-products-warning").hide(),s(a,"clear"),n(a)})),o.fail((function(e){var t={post_title:"product-title",price:"product-price",email:"product-email"};e.forEach((function(e){t.hasOwnProperty(e.code)&&a.find(".jetpack-simple-payments-form-"+t[e.code]).addClass("invalid")})),d(a)}))}}}(m)),m.find(".jetpack-simple-payments-cancel-form").on("click",function(e){return function(t){t.preventDefault(),n(e),e.find(".jetpack-simple-payments-add-product, .jetpack-simple-payments-edit-product").attr("disabled","disabled"),s(e,"clear")}}(m)),m.find(".jetpack-simple-payments-delete-product").on("click",function(a){return function(p){if(p.preventDefault(),confirm(jpSimplePaymentsStrings.deleteConfirmation)){var d=parseInt(a.find(".jetpack-simple-payments-form-product-id").val(),10);d&&(c(a),a.find(".spinner").show(),t.ajax.post("customize-jetpack-simple-payments-button-delete",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid,params:{product_post_id:d}}).done((function(){var e=a.find("select.jetpack-simple-payments-products")[0];e.remove(e.selectedIndex),e.dispatchEvent(new Event("change")),0===i(e).has("option").length&&(a.find(".jetpack-simple-payments-products-fieldset").hide(),a.find(".jetpack-simple-payments-products-warning").show()),s(a,"clear"),n(a)})))}}}(m)),m.find("select, input, textarea, checkbox").on("change input propertychange",_.debounce((function(){c(m)}),250))}(m)})),a.on("widget-synced widget-updated",(function(a,p){if(p.is('[id*="jetpack_simple_payments_widget"]')){a.preventDefault(),t.ajax.post("customize-jetpack-simple-payments-buttons-get",{"customize-jetpack-simple-payments-nonce":e.settings.nonce["customize-jetpack-simple-payments"],customize_changeset_uuid:e.settings.changeset.uuid}).done((function(e){var t=0;i(document).find("select.jetpack-simple-payments-products").each((function(a,p){var n=i(p);t=n.val(),n.find("option").remove(),n.append(i.map(e,(function(e){return i("<option>",{value:e.ID,text:e.post_title})}))),n.val(t)}))}));var n=p.find("> .widget-inside > .form, > .widget-inside > form");d(n),function(e){var t=parseInt(e.find(".jetpack-simple-payments-form-image-id").val(),10),i=e.find(".jetpack-simple-payments-form-image-src").val(),a=e.find(".jetpack-simple-payments-image-fieldset .placeholder"),p=e.find(".jetpack-simple-payments-image > img"),n=e.find(".jetpack-simple-payments-image");t&&i?(p.attr("src",i),a.hide(),n.show()):(a.show(),p.removeAttr("src"),n.hide())}(n)}}))}))}(wp.customize,wp,jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.asset.php
new file mode 100644
index 00000000..694a15d0
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '98e3c4804e167092724937865ff88538'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.js b/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.js
index ad5be6b8..0dde6c50 100644
--- a/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/social-icons/social-icons-admin.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-!function(t){var i=null;function e(i){i.find(".jetpack-social-icons-widget-list").sortable({items:"> .jetpack-social-icons-widget-item",handle:".handle",cursor:"move",placeholder:"jetpack-social-icons-widget-item ui-state-placeholder",containment:i,forcePlaceholderSize:!0,update:function(){n(t(this).parents(".form").find(".widget-control-save"))}})}function n(i){t(document.body).hasClass("wp-customizer")&&i.length&&i.trigger("click").hide()}t(document).ready(function(){t(document).on("click",".jetpack-social-icons-widget.add-button button",function(i){var e,n,o,c,a;i.preventDefault(),e=t(t.trim(t("#tmpl-jetpack-widget-social-icons-template").html())),c=(o=(n=t(this).parents(".widget-content")).find(".jetpack-social-icons-widget-list")).data("url-icon-id"),a=o.data("url-icon-name"),e.find(".jetpack-widget-social-icons-url input").attr("id",c).attr("name",a+"[]"),o.append(e),n.find(".jetpack-social-icons-widget-item:last").find("input:first").trigger("focus")}),t(document).on("click",".jetpack-widget-social-icons-remove-item-button",function(i){i.preventDefault();var e=t(this).parents(".form").find(".widget-control-save");t(this).parents(".jetpack-social-icons-widget-item").remove(),n(e)}),t(document).on("click",'div.widget[id*="jetpack_widget_social_icons"] .widget-title, div.widget[id*="jetpack_widget_social_icons"] .widget-action',function(){t(this).parents("#available-widgets").length||e(t(this).parents('.widget[id*="jetpack_widget_social_icons"]'))}),t(document).on("widget-added",function(t,i){i.is('[id*="jetpack_widget_social_icons"]')&&(t.preventDefault(),e(i))}),t(document).on("widget-updated",function(t,i){i.is('[id*="jetpack_widget_social_icons"]')&&(t.preventDefault(),e(i))}),t(document).on("focusout",'input[name*="jetpack_widget_social_icons"]',function(){n(t(this).parents(".form").find(".widget-control-save"))}),t(document).on("keydown",'input[name*="jetpack_widget_social_icons"]',function(i){13===i.keyCode&&n(t(this).parents(".form").find(".widget-control-save"))}),t(document).on("keyup",'input[name*="jetpack_widget_social_icons"]',function(){clearTimeout(i),i=setTimeout(function(){n(t(this).parents(".form").find(".widget-control-save"))},1e3)}),t(document).on("change",'select[name*="jetpack_widget_social_icons"]',function(){n(t(this).parents(".form").find(".widget-control-save"))})})}(jQuery); \ No newline at end of file
+!function(t){var i=null;function e(i){i.find(".jetpack-social-icons-widget-list").sortable({items:"> .jetpack-social-icons-widget-item",handle:".handle",cursor:"move",placeholder:"jetpack-social-icons-widget-item ui-state-placeholder",containment:i,forcePlaceholderSize:!0,update:function(){n(t(this).parents(".form").find(".widget-control-save"))}})}function n(i){t(document.body).hasClass("wp-customizer")&&i.length&&i.trigger("click").hide()}t(document).ready((function(){t(document).on("click",".jetpack-social-icons-widget.add-button button",(function(i){var e,n,o,c,a;i.preventDefault(),e=t(t.trim(t("#tmpl-jetpack-widget-social-icons-template").html())),c=(o=(n=t(this).parents(".widget-content")).find(".jetpack-social-icons-widget-list")).data("url-icon-id"),a=o.data("url-icon-name"),e.find(".jetpack-widget-social-icons-url input").attr("id",c).attr("name",a+"[]"),o.append(e),n.find(".jetpack-social-icons-widget-item:last").find("input:first").trigger("focus")})),t(document).on("click",".jetpack-widget-social-icons-remove-item-button",(function(i){i.preventDefault();var e=t(this).parents(".jetpack-social-icons-widget-item");e.find("input").change(),e.remove()})),t(document).on("click",'div.widget[id*="jetpack_widget_social_icons"] .widget-title, div.widget[id*="jetpack_widget_social_icons"] .widget-action',(function(){t(this).parents("#available-widgets").length||e(t(this).parents('.widget[id*="jetpack_widget_social_icons"]'))})),t(document).on("widget-added",(function(t,i){i.is('[id*="jetpack_widget_social_icons"]')&&(t.preventDefault(),e(i))})),t(document).on("widget-updated",(function(t,i){i.is('[id*="jetpack_widget_social_icons"]')&&(t.preventDefault(),e(i))})),t(document).on("focusout",'input[name*="jetpack_widget_social_icons"]',(function(){n(t(this).parents(".form").find(".widget-control-save"))})),t(document).on("keydown",'input[name*="jetpack_widget_social_icons"]',(function(i){13===i.keyCode&&n(t(this).parents(".form").find(".widget-control-save"))})),t(document).on("keyup",'input[name*="jetpack_widget_social_icons"]',(function(){clearTimeout(i),i=setTimeout((function(){n(t(this).parents(".form").find(".widget-control-save"))}),1e3)})),t(document).on("change",'select[name*="jetpack_widget_social_icons"]',(function(){n(t(this).parents(".form").find(".widget-control-save"))}))}))}(jQuery); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.asset.php b/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.asset.php
new file mode 100644
index 00000000..70b8f09e
--- /dev/null
+++ b/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => 'd65c6038f8d4fcadc38bd1e08d776755'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.js b/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.js
index e33b2617..a232aa69 100644
--- a/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.js
+++ b/plugins/jetpack/_inc/build/widgets/twitter-timeline-admin.min.js
@@ -1,2 +1 @@
-/* Do not modify this file directly. It is compiled from other files. */
-jQuery(function(t){function e(e){var i=t(e).val();t(e).closest(".jetpack-twitter-timeline-widget-type-container").next(".jetpack-twitter-timeline-widget-id-container").find("label").css("display",function(){var e=t(this).data("widget-type");return i===e?"":"none"})}var i=t("#customize-controls");i.length||(i=t("#wpbody")),i.on("change",".jetpack-twitter-timeline-widget-type",function(){e(this)}),i.find(".jetpack-twitter-timeline-widget-type").each(function(){e(this)})}); \ No newline at end of file
+jQuery((function(t){function e(e){var i=t(e).val();t(e).closest(".jetpack-twitter-timeline-widget-type-container").next(".jetpack-twitter-timeline-widget-id-container").find("label").css("display",(function(){var e=t(this).data("widget-type");return i===e?"":"none"}))}var i=t("#customize-controls");i.length||(i=t("#wpbody")),i.on("change",".jetpack-twitter-timeline-widget-type",(function(){e(this)})),i.find(".jetpack-twitter-timeline-widget-type").each((function(){e(this)})),i.on("change",".jetpack-twitter-timeline-widget-tweet-display-radio",(function(e){var i=t(e.target),n=i.val(),a=i.closest("form"),c=a.find(".jetpack-twitter-timeline-widget-height-container"),d=a.find(".jetpack-twitter-timeline-widget-tweet-limit-container"),o=a.find("input[id*=chrome-noscrollbar]");switch(n){case"fixed":c.hide(),d.show(),o.prop("disabled",!0);break;case"dynamic":d.hide(),c.show(),o.prop("disabled",!1)}}))})); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.asset.php b/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.asset.php
new file mode 100644
index 00000000..56066ba9
--- /dev/null
+++ b/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '599ef164ea6641a45c49db3a15eeab11'); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.js b/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.js
new file mode 100644
index 00000000..9ea5f575
--- /dev/null
+++ b/plugins/jetpack/_inc/build/wordads/js/wordads-ccpa.min.js
@@ -0,0 +1 @@
+!function(){var e=function(e){return e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},t=function(e,t,o,n,a,c){if(!e||/^(?:expires|max\-age|path|domain|secure)$/i.test(e))return!1;var s="";if(o)switch(o.constructor){case Number:s=o===1/0?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+o;break;case String:s="; expires="+o;break;case Date:s="; expires="+o.toUTCString()}return"rootDomain"!==a&&".rootDomain"!==a||(a=(".rootDomain"===a?".":"")+document.location.hostname.split(".").slice(-2).join(".")),document.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+s+(a?"; domain="+a:"")+(n?"; path="+n:"")+(c?"; secure":""),!0};window.__uspapi=function(t,o,n){if("function"==typeof n)if("getUSPData"===t&&1===o)if(navigator.globalPrivacyControl)n({version:1,uspString:"1YYN"},!0);else{var a=e("usprivacy");null!==a?n({version:1,uspString:a},!0):n(null,!1)}else n(null,!1)};var o=function(e){var o=".wordpress.com"===location.hostname.slice(-14)?".rootDomain":location.hostname;t("ccpa_applies",e,86400,"/",o)},n=function(){var e=document.querySelector("#ccpa-modal");e&&e.parentElement.removeChild(e)},a=function(){var t;n(),t=document.createElement("div"),document.body.insertBefore(t,document.body.firstElementChild),t.outerHTML='<div id="ccpa-loading" class="cleanslate ccpa__loading-wrapper"><div class="ccpa__loading-overlay"><span class="ccpa__loading-message">'+ccpaSettings.strings.pleaseWait+"...</span></div></div>";var o=new XMLHttpRequest;o.open("GET",ccpaSettings.ajaxUrl+"?action=privacy_optout_markup&security="+ccpaSettings.ajaxNonce,!0),o.onreadystatechange=function(){if(4===this.readyState&&200===this.status){document.getElementById("ccpa-loading").remove();var t=document.createElement("div");document.body.insertBefore(t,document.body.firstElementChild),t.outerHTML=this.response,document.getElementById("ccpa-opt-out").focus(),document.querySelector("#ccpa-modal .opt-out").addEventListener("click",(function(e){var t=new XMLHttpRequest;t.open("POST",ccpaSettings.ajaxUrl,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),t.onreadystatechange=function(){if(4===this.readyState&&200===this.status){var t=JSON.parse(this.response);t&&t.success&&(t.data?(e.target.parentNode.classList.add("is-checked"),e.target.parentNode.parentNode.classList.add("is-checked")):(e.target.parentNode.classList.remove("is-checked"),e.target.parentNode.parentNode.classList.remove("is-checked")))}},t.send("action=privacy_optout&optout="+e.target.checked+"&security="+ccpaSettings.ajaxNonce)}));var o=e("usprivacy"),a=o&&"Y"===o[2],c=document.querySelector("#ccpa-modal .opt-out");c.checked=a,a&&(c.parentNode.classList.add("is-checked"),c.parentNode.parentNode.classList.add("is-checked"));var s=document.querySelectorAll("#ccpa-modal .components-button");Array.prototype.forEach.call(s,(function(e){e.addEventListener("click",(function(){n()}))}))}},o.send()},c=function(e){var t=document.createEvent("CustomEvent");t.initCustomEvent("wordads-ccpa-initialized",!0,!1,{ccpaApplies:e}),document.dispatchEvent(t)},s=function(e,o){var n,s,i=document.querySelectorAll(".ccpa-do-not-sell");null===o&&(e?0===i.length?(n=ccpaSettings.defaultOptOutCookieString,s=".wordpress.com"===location.hostname.slice(-14)?".rootDomain":location.hostname,t("usprivacy",n,86400,"/",s)):function(){var e=ccpaSettings.defaultOptInCookieString,o=".wordpress.com"===location.hostname.slice(-14)?".rootDomain":location.hostname;t("usprivacy",e,31536e3,"/",o)}():function(){var e=".wordpress.com"===location.hostname.slice(-14)?".rootDomain":location.hostname;t("usprivacy","1---",86400,"/",e)}()),e||"false"!==ccpaSettings.forceApplies?(Array.prototype.forEach.call(i,(function(e){e.addEventListener("click",(function(e){if(e.preventDefault(),!ccpaSettings.stylesLoaded){var t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.href=ccpaSettings.ccpaCssUrl,document.getElementsByTagName("HEAD")[0].appendChild(t),ccpaSettings.stylesLoaded=!0}a()})),e.style.display=""})),c(!0)):c(!1)};document.addEventListener("DOMContentLoaded",(function(){var t=e("usprivacy");if(null===t){var n=e("ccpa_applies");if(null===n){var a=new XMLHttpRequest;a.open("GET","https://public-api.wordpress.com/geo/",!0),a.onreadystatechange=function(){if(4===this.readyState)if(200===this.status){var e=JSON.parse(this.response),t=e.region&&"california"===e.region.toLowerCase();o(t),s(t,null)}else o(!0),s(!0,null)},a.send()}else s("true"===n,null)}else s("1---"!==t,t)}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/_inc/class.jetpack-provision.php b/plugins/jetpack/_inc/class.jetpack-provision.php
index e3d95b27..340e564e 100644
--- a/plugins/jetpack/_inc/class.jetpack-provision.php
+++ b/plugins/jetpack/_inc/class.jetpack-provision.php
@@ -1,11 +1,21 @@
-<?php //phpcs:ignore
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Class file for provisioning Jetpack.
+ *
+ * @package automattic/jetpack
+ */
use Automattic\Jetpack\Connection\Client;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
+use Automattic\Jetpack\Connection\Secrets;
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Identity_Crisis;
use Automattic\Jetpack\Roles;
use Automattic\Jetpack\Sync\Actions;
-class Jetpack_Provision { //phpcs:ignore
+/**
+ * Jetpack_Provision class.
+ */
+class Jetpack_Provision {
/**
* Responsible for checking pre-conditions, registering site, and returning an array of details
@@ -25,7 +35,7 @@ class Jetpack_Provision { //phpcs:ignore
if ( isset( $named_args[ $url_arg ] ) ) {
add_filter(
$url_arg,
- function() use ( $url_arg, $named_args ) {
+ function () use ( $url_arg, $named_args ) {
return $named_args[ $url_arg ];
},
11
@@ -35,23 +45,23 @@ class Jetpack_Provision { //phpcs:ignore
// If Jetpack is currently connected, and is not in Safe Mode already, kick off a sync of the current
// functions/callables so that we can test if this site is in IDC.
- if ( Jetpack::is_active() && ! Jetpack::validate_sync_error_idc_option() && Actions::sync_allowed() ) {
+ if ( Jetpack::is_connection_ready() && ! Identity_Crisis::validate_sync_error_idc_option() && Actions::sync_allowed() ) {
Actions::do_full_sync( array( 'functions' => true ) );
Actions::$sender->do_full_sync();
}
- if ( Jetpack::validate_sync_error_idc_option() ) {
+ if ( Identity_Crisis::validate_sync_error_idc_option() ) {
return new WP_Error(
'site_in_safe_mode',
__( 'Can not provision a plan while in safe mode. See: https://jetpack.com/support/safe-mode/', 'jetpack' )
);
}
-
- if ( ! Jetpack::connection()->is_registered() || ( isset( $named_args['force_register'] ) && intval( $named_args['force_register'] ) ) ) {
+ if ( ! Jetpack::connection()->is_connected() || ( isset( $named_args['force_register'] ) && (int) $named_args['force_register'] ) ) {
// This code mostly copied from Jetpack::admin_page_load.
Jetpack::maybe_set_version_option();
- $registered = Jetpack::try_registration();
+ Jetpack::connection()->add_register_request_param( 'from', 'jetpack-start' );
+ $registered = Jetpack::connection()->try_registration();
if ( is_wp_error( $registered ) ) {
return $registered;
} elseif ( ! $registered ) {
@@ -67,7 +77,7 @@ class Jetpack_Provision { //phpcs:ignore
$site_icon = get_site_icon_url();
- $auto_enable_sso = ( ! Jetpack::is_active() || Jetpack::is_module_active( 'sso' ) );
+ $auto_enable_sso = ( ! Jetpack::connection()->has_connected_owner() || Jetpack::is_module_active( 'sso' ) );
/** This filter is documented in class.jetpack-cli.php */
if ( apply_filters( 'jetpack_start_enable_sso', $auto_enable_sso ) ) {
@@ -99,7 +109,7 @@ class Jetpack_Provision { //phpcs:ignore
$role = $roles->translate_current_user_to_role();
$signed_role = Jetpack::connection()->sign_role( $role );
- $secrets = Jetpack::init()->generate_secrets( 'authorize' );
+ $secrets = ( new Secrets() )->generate( 'authorize' );
// Jetpack auth stuff.
$request_body['scope'] = $signed_role;
@@ -126,11 +136,11 @@ class Jetpack_Provision { //phpcs:ignore
}
if ( isset( $named_args['onboarding'] ) && ! empty( $named_args['onboarding'] ) ) {
- $request_body['onboarding'] = intval( $named_args['onboarding'] );
+ $request_body['onboarding'] = (int) $named_args['onboarding'];
}
if ( isset( $named_args['force_connect'] ) && ! empty( $named_args['force_connect'] ) ) {
- $request_body['force_connect'] = intval( $named_args['force_connect'] );
+ $request_body['force_connect'] = (int) $named_args['force_connect'];
}
if ( isset( $request_body['onboarding'] ) && (bool) $request_body['onboarding'] ) {
@@ -172,11 +182,13 @@ class Jetpack_Provision { //phpcs:ignore
);
$blog_id = Jetpack_Options::get_option( 'id' );
- $url = esc_url_raw( sprintf(
- 'https://%s/rest/v1.3/jpphp/%d/partner-provision',
- self::get_api_host(),
- $blog_id
- ) );
+ $url = esc_url_raw(
+ sprintf(
+ '%s/rest/v1.3/jpphp/%d/partner-provision',
+ self::get_api_host(),
+ $blog_id
+ )
+ );
if ( ! empty( $named_args['partner_tracking_id'] ) ) {
$url = esc_url_raw( add_query_arg( 'partner_tracking_id', $named_args['partner_tracking_id'], $url ) );
}
@@ -210,7 +222,7 @@ class Jetpack_Provision { //phpcs:ignore
if ( isset( $body_json->access_token ) && is_user_logged_in() ) {
// Check if this matches the existing token before replacing.
- $existing_token = Jetpack_Data::get_access_token( get_current_user_id() );
+ $existing_token = ( new Tokens() )->get_access_token( get_current_user_id() );
if ( empty( $existing_token ) || $existing_token->secret !== $body_json->access_token ) {
self::authorize_user( get_current_user_id(), $body_json->access_token );
}
@@ -219,9 +231,15 @@ class Jetpack_Provision { //phpcs:ignore
return $body_json;
}
+ /**
+ * Authorizes the passed user.
+ *
+ * @param int $user_id User ID.
+ * @param string $access_token Access token.
+ */
private static function authorize_user( $user_id, $access_token ) {
- // authorize user and enable SSO
- Connection_Utils::update_user_token( $user_id, sprintf( '%s.%d', $access_token, $user_id ), true );
+ // authorize user and enable SSO.
+ ( new Tokens() )->update_user_token( $user_id, sprintf( '%s.%d', $access_token, $user_id ), true );
/**
* Auto-enable SSO module for new Jetpack Start connections
@@ -234,7 +252,9 @@ class Jetpack_Provision { //phpcs:ignore
? array( 'sso' )
: array();
- if ( $active_modules = Jetpack_Options::get_option( 'active_modules' ) ) {
+ $active_modules = Jetpack_Options::get_option( 'active_modules' );
+
+ if ( $active_modules ) {
Jetpack::delete_active_modules();
Jetpack::activate_default_modules( 999, 1, array_merge( $active_modules, $other_modules ), false );
} else {
@@ -242,18 +262,25 @@ class Jetpack_Provision { //phpcs:ignore
}
}
+ /**
+ * Verifies the access token being used.
+ *
+ * @param string $access_token Access token.
+ *
+ * @return array|\Automattic\Jetpack\Connection\WP_Error|bool|WP_Error
+ */
private static function verify_token( $access_token ) {
$request = array(
'headers' => array(
- 'Authorization' => "Bearer " . $access_token,
+ 'Authorization' => 'Bearer ' . $access_token,
'Host' => 'public-api.wordpress.com',
),
'timeout' => 10,
'method' => 'POST',
- 'body' => ''
+ 'body' => '',
);
- $url = sprintf( 'https://%s/rest/v1.3/jpphp/partner-keys/verify', self::get_api_host() );
+ $url = sprintf( '%s/rest/v1.3/jpphp/partner-keys/verify', self::get_api_host() );
$result = Client::_wp_remote_request( $url, $request );
if ( is_wp_error( $result ) ) {
@@ -263,10 +290,11 @@ class Jetpack_Provision { //phpcs:ignore
$response_code = wp_remote_retrieve_response_code( $result );
$body_json = json_decode( wp_remote_retrieve_body( $result ) );
- if( 200 !== $response_code ) {
+ if ( 200 !== $response_code ) {
if ( isset( $body_json->error ) ) {
return new WP_Error( $body_json->error, $body_json->message );
} else {
+ /* translators: %s is HTTP response code (e.g. 500, 401, etc). */
return new WP_Error( 'server_error', sprintf( __( 'Request failed with code %s', 'jetpack' ), $response_code ) );
}
}
@@ -274,8 +302,13 @@ class Jetpack_Provision { //phpcs:ignore
return true;
}
+ /**
+ * Gets the API host as set via env.
+ *
+ * @return string API URL.
+ */
private static function get_api_host() {
$env_api_host = getenv( 'JETPACK_START_API_HOST', true ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctionParameters.getenv_local_onlyFound
- return $env_api_host ? $env_api_host : JETPACK__WPCOM_JSON_API_HOST;
+ return $env_api_host ? 'https://' . $env_api_host : JETPACK__WPCOM_JSON_API_BASE;
}
}
diff --git a/plugins/jetpack/_inc/connect-button.js b/plugins/jetpack/_inc/connect-button.js
index 16681ea9..58682618 100644
--- a/plugins/jetpack/_inc/connect-button.js
+++ b/plugins/jetpack/_inc/connect-button.js
@@ -1,74 +1,65 @@
/* global jpConnect */
-jQuery( document ).ready( function( $ ) {
+jQuery( document ).ready( function ( $ ) {
var connectButton = $( '.jp-connect-button, .jp-banner__alt-connect-button' ).eq( 0 );
var tosText = $( '.jp-connect-full__tos-blurb' );
var jetpackConnectIframe = $( '<iframe class="jp-jetpack-connect__iframe" />' );
+ // Sections that only show up in the first Set Up screen
var connectionHelpSections = $(
- '#jetpack-connection-cards, .jp-connect-full__dismiss-paragraph'
+ '#jetpack-connection-cards, .jp-connect-full__dismiss-paragraph, .jp-connect-full__testimonial'
);
+ // Sections that only show up in the "Authorize user" screen
+ var connectButtonFrom = '';
- connectButton.on( 'click', function( event ) {
+ connectButton.on( 'click', function ( event ) {
event.preventDefault();
+ if ( 'undefined' === typeof URLSearchParams ) {
+ connectButtonFrom = '';
+ } else {
+ var searchParams = new URLSearchParams( $( this ).prop( 'search' ) );
+ connectButtonFrom = searchParams && searchParams.get( 'from' );
+ }
+
if ( connectionHelpSections.length ) {
connectionHelpSections.fadeOut( 600 );
}
- jetpackConnectButton.selectAndStartConnectionFlow();
+ jetpackConnectButton.startConnectionFlow();
} );
var jetpackConnectButton = {
isRegistering: false,
isPaidPlan: false,
- selectAndStartConnectionFlow: function() {
- var connectionHelpSections = $( '#jetpack-connection-cards' );
+ startConnectionFlow: function () {
+ var connectionHelpSections = $( '#jetpack-connection-cards, .jp-connect-full__testimonial' );
if ( connectionHelpSections.length ) {
connectionHelpSections.fadeOut( 600 );
}
if ( ! jetpackConnectButton.isRegistering ) {
- if ( 'original' === jpConnect.forceVariation ) {
- // Forcing original connection flow, `JETPACK_SHOULD_USE_CONNECTION_IFRAME = false`
- // or we're dealing with Safari which has issues with handling 3rd party cookies.
- jetpackConnectButton.handleOriginalFlow();
- } else if ( 'in_place' === jpConnect.forceVariation ) {
- // Forcing new connection flow, `JETPACK_SHOULD_USE_CONNECTION_IFRAME = true`.
- jetpackConnectButton.handleConnectInPlaceFlow();
+ jetpackConnectButton.handleConnection();
+ }
+ },
+ selectAndStartAuthorizationFlow: function ( data ) {
+ if ( data.allowInplaceAuthorization && 'original' !== jpConnect.forceVariation ) {
+ jetpackConnectButton.handleAuthorizeInPlaceFlow( data );
+ } else {
+ // Forcing original connection flow, `JETPACK_SHOULD_NOT_USE_CONNECTION_IFRAME = true`
+ // or we're dealing with Safari which has issues with handling 3rd party cookies.
+ if ( data.alternateAuthorizeUrl ) {
+ window.location = data.alternateAuthorizeUrl;
} else {
- // Forcing A/B test driven connection flow variation, `JETPACK_SHOULD_USE_CONNECTION_IFRAME` not defined.
- jetpackConnectButton.startConnectionFlow();
+ window.location = data.authorizeUrl;
}
}
},
- startConnectionFlow: function() {
- var abTestName = 'jetpack_connect_in_place_v3';
-
- $.ajax( {
- url: 'https://public-api.wordpress.com/wpcom/v2/abtest/' + abTestName,
- type: 'GET',
- error: jetpackConnectButton.handleConnectionError,
- data: jpConnect.identity,
- xhrFields: {
- withCredentials: true,
- },
- crossDomain: true,
- success: function( data ) {
- if ( data && 'in_place' === data.variation ) {
- jetpackConnectButton.handleConnectInPlaceFlow();
- return;
- }
- jetpackConnectButton.handleOriginalFlow();
- },
- } );
- },
- handleOriginalFlow: function() {
- window.location = connectButton.attr( 'href' );
- },
- handleConnectInPlaceFlow: function() {
+ handleConnection: function () {
// Alternative connection buttons should redirect to the main one for the "connect in place" flow.
if ( connectButton.hasClass( 'jp-banner__alt-connect-button' ) ) {
- window.location = jpConnect.connectInPlaceUrl;
+ // Make sure we don't lose the `from` parameter, if set.
+ var fromParam = ( connectButtonFrom && '&from=' + connectButtonFrom ) || '';
+ window.location = jpConnect.connectInPlaceUrl + fromParam;
return;
}
@@ -91,33 +82,35 @@ jQuery( document ).ready( function( $ ) {
data: {
registration_nonce: jpConnect.registrationNonce,
_wpnonce: jpConnect.apiNonce,
+ from: connectButtonFrom,
+ no_iframe: 'original' === jpConnect.forceVariation,
},
error: jetpackConnectButton.handleConnectionError,
- success: jetpackConnectButton.handleConnectionSuccess,
+ success: jetpackConnectButton.selectAndStartAuthorizationFlow,
} );
},
- triggerLoadingState: function() {
+ triggerLoadingState: function () {
var loadingText = $( '<span>' )
.addClass( 'jp-connect-full__button-container-loading' )
.text( jpConnect.buttonTextRegistering )
.appendTo( '.jp-connect-full__button-container' );
var spinner = $( '<div>' ).addClass( 'jp-spinner' );
- var spinnerOuter = $( '<div>' )
- .addClass( 'jp-spinner__outer' )
- .appendTo( spinner );
- $( '<div>' )
- .addClass( 'jp-spinner__inner' )
- .appendTo( spinnerOuter );
+ var spinnerOuter = $( '<div>' ).addClass( 'jp-spinner__outer' ).appendTo( spinner );
+ $( '<div>' ).addClass( 'jp-spinner__inner' ).appendTo( spinnerOuter );
loadingText.after( spinner );
},
- handleConnectionSuccess: function( data ) {
- jetpackConnectButton.fetchPlanType();
+ handleAuthorizeInPlaceFlow: function ( data ) {
window.addEventListener( 'message', jetpackConnectButton.receiveData );
- jetpackConnectIframe.attr( 'src', data.authorizeUrl );
- jetpackConnectIframe.on( 'load', function() {
+ jetpackConnectIframe.attr(
+ 'src',
+ data.authorizeUrl + '&from=' + connectButtonFrom + '&iframe_source=jetpack-connect-main'
+ );
+ jetpackConnectIframe.on( 'load', function () {
jetpackConnectIframe.show();
$( '.jp-connect-full__button-container' ).hide();
+ $( '#jp-connect-full__step1-header' ).hide();
+ $( '#jp-connect-full__step2-header' ).show();
} );
jetpackConnectIframe.hide();
$( '.jp-connect-full__button-container' ).after( jetpackConnectIframe );
@@ -129,52 +122,72 @@ jQuery( document ).ready( function( $ ) {
link.href = jpConnect.preFetchScript;
document.head.appendChild( link );
},
- fetchPlanType: function() {
- $.ajax( {
+ fetchPlanType: function () {
+ return $.ajax( {
url: jpConnect.apiBaseUrl + '/site',
type: 'GET',
data: {
_wpnonce: jpConnect.apiSiteDataNonce,
},
- success: function( data ) {
+ success: function ( data ) {
var siteData = JSON.parse( data.data );
- jetpackConnectButton.isPaidPlan = ! siteData.plan.is_free;
+ jetpackConnectButton.isPaidPlan =
+ siteData.options.is_pending_plan || ! siteData.plan.is_free;
},
} );
},
- receiveData: function( event ) {
+ receiveData: function ( event ) {
if (
- event.origin === jpConnect.jetpackApiDomain &&
- event.source === jetpackConnectIframe.get( 0 ).contentWindow &&
- event.data === 'close'
+ event.origin !== jpConnect.jetpackApiDomain ||
+ event.source !== jetpackConnectIframe.get( 0 ).contentWindow
) {
- window.removeEventListener( 'message', this.receiveData );
- jetpackConnectButton.handleAuthorizationComplete();
+ return;
+ }
+
+ switch ( event.data ) {
+ case 'close':
+ window.removeEventListener( 'message', this.receiveData );
+ jetpackConnectButton.handleAuthorizationComplete();
+ break;
+ case 'wpcom_nocookie':
+ jetpackConnectIframe.hide();
+ jetpackConnectButton.handleConnectionError();
+ break;
}
},
- handleAuthorizationComplete: function() {
+ handleAuthorizationComplete: function () {
jetpackConnectButton.isRegistering = false;
- if ( jetpackConnectButton.isPaidPlan ) {
+ // Fetch plan type late to make sure any stored license keys have been
+ // attached to the site during the connection.
+ jetpackConnectButton.fetchPlanType().always( function () {
+ if ( ! jetpackConnectButton.isPaidPlan ) {
+ window.location.assign( jpConnect.plansPromptUrl );
+ return;
+ }
+
+ var parser = document.createElement( 'a' );
+ parser.href = jpConnect.dashboardUrl;
+ var reload =
+ window.location.pathname === parser.pathname &&
+ window.location.hash.length &&
+ parser.hash.length;
+
window.location.assign( jpConnect.dashboardUrl );
- } else {
- window.location.assign( jpConnect.plansPromptUrl );
- }
- window.location.reload( true );
+
+ if ( reload ) {
+ // The Jetpack admin page has hashes in the URLs, so we need to reload the page after .assign()
+ window.location.reload( true );
+ }
+ } );
},
- handleConnectionError: function( error ) {
+ handleConnectionError: function ( error ) {
jetpackConnectButton.isRegistering = false;
- jetpackConnectButton.handleOriginalFlow();
+ // If something goes wrong, we take users to Calypso.
+ window.location = connectButton.attr( 'href' );
},
};
- // When we visit /wp-admin/admin.php?page=jetpack#/setup, immediately start the connection flow.
- var hash = location.hash.replace( /#\//, '' );
- if ( 'setup' === hash ) {
- if ( connectionHelpSections.length ) {
- connectionHelpSections.hide();
- }
-
- jetpackConnectButton.selectAndStartConnectionFlow();
- }
+ // In case the parameter has been manually set in the URL after redirect.
+ connectButtonFrom = location.hash.split( '&from=' )[ 1 ];
} );
diff --git a/plugins/jetpack/_inc/crowdsignal-shortcode.js b/plugins/jetpack/_inc/crowdsignal-shortcode.js
index 6770482f..62daea8b 100644
--- a/plugins/jetpack/_inc/crowdsignal-shortcode.js
+++ b/plugins/jetpack/_inc/crowdsignal-shortcode.js
@@ -1,4 +1,4 @@
-( function( d, c, j ) {
+( function ( d, c, j ) {
var crowdsignal_shortcode_options;
if (
crowdsignal_shortcode_options &&
diff --git a/plugins/jetpack/_inc/crowdsignal-survey.js b/plugins/jetpack/_inc/crowdsignal-survey.js
index a7ed1be9..9993d6f6 100644
--- a/plugins/jetpack/_inc/crowdsignal-survey.js
+++ b/plugins/jetpack/_inc/crowdsignal-survey.js
@@ -1,4 +1,4 @@
-( function( d, c, j ) {
+( function ( d, c, j ) {
if ( ! d.getElementById( j ) ) {
var pd = d.createElement( c ),
s;
diff --git a/plugins/jetpack/_inc/facebook-embed.js b/plugins/jetpack/_inc/facebook-embed.js
index ecc69d7a..1681dbee 100644
--- a/plugins/jetpack/_inc/facebook-embed.js
+++ b/plugins/jetpack/_inc/facebook-embed.js
@@ -1,7 +1,7 @@
/* global FB, jpfbembed */
-( function( window ) {
- var facebookEmbed = function() {
- var fbroot, src;
+( function ( window ) {
+ var facebookEmbed = function () {
+ var fbroot, src, newScript, firstScript;
if ( 'undefined' !== typeof FB && FB.XFBML ) {
FB.XFBML.parse();
@@ -15,11 +15,15 @@
src += '&appId=' + jpfbembed.appid;
}
src += '&version=v2.3';
- jQuery.getScript( src );
+
+ newScript = document.createElement( 'script' );
+ newScript.setAttribute( 'src', src );
+ firstScript = document.querySelector( 'script' );
+ firstScript.parentNode.insertBefore( newScript, firstScript );
}
};
- window.fbAsyncInit = function() {
+ window.fbAsyncInit = function () {
FB.init( {
appId: jpfbembed.appid,
version: 'v2.3',
@@ -29,8 +33,8 @@
};
if ( 'undefined' !== typeof infiniteScroll ) {
- jQuery( document.body ).on( 'post-load', facebookEmbed );
+ document.body.addEventListener( 'post-load', facebookEmbed );
}
facebookEmbed();
-} )( this );
+} )( window );
diff --git a/plugins/jetpack/_inc/gallery-settings.js b/plugins/jetpack/_inc/gallery-settings.js
index 9afc76f7..ed7dc9c8 100644
--- a/plugins/jetpack/_inc/gallery-settings.js
+++ b/plugins/jetpack/_inc/gallery-settings.js
@@ -1,12 +1,12 @@
/**
* Jetpack Gallery Settings
*/
-( function( $ ) {
+( function ( $ ) {
var media = wp.media;
// Wrap the render() function to append controls.
media.view.Settings.Gallery = media.view.Settings.Gallery.extend( {
- render: function() {
+ render: function () {
var $el = this.$el;
media.view.Settings.prototype.render.apply( this, arguments );
@@ -19,7 +19,7 @@
// Hide the Columns setting for all types except Default
$el
.find( 'select[name=type]' )
- .on( 'change', function() {
+ .on( 'change', function () {
var columnSetting = $el.find( 'select[name=columns]' ).closest( 'label.setting' );
if ( 'default' === $( this ).val() || 'thumbnails' === $( this ).val() ) {
diff --git a/plugins/jetpack/_inc/genericons.php b/plugins/jetpack/_inc/genericons.php
index fc0e6f4f..77b82d3c 100644
--- a/plugins/jetpack/_inc/genericons.php
+++ b/plugins/jetpack/_inc/genericons.php
@@ -1,11 +1,17 @@
<?php
-
/**
* Globally registers the 'genericons' style and font.
*
* This ensures any theme or plugin using it is on the latest version of Genericons, and helps to avoid conflicts.
+ *
+ * @package automattic/jetpack
*/
+
add_action( 'init', 'jetpack_register_genericons', 1 );
+
+/**
+ * Registers Genericons if not already done so by other code.
+ */
function jetpack_register_genericons() {
if ( ! wp_style_is( 'genericons', 'registered' ) ) {
wp_register_style( 'genericons', plugins_url( 'genericons/genericons/genericons.css', __FILE__ ), false, '3.1' );
diff --git a/plugins/jetpack/_inc/jetpack-admin.js b/plugins/jetpack/_inc/jetpack-admin.js
index 3908c297..1a9a75ce 100644
--- a/plugins/jetpack/_inc/jetpack-admin.js
+++ b/plugins/jetpack/_inc/jetpack-admin.js
@@ -1,9 +1,9 @@
-( function( $ ) {
+( function ( $ ) {
///////////////////////////////////////
// INIT
///////////////////////////////////////
- $( document ).ready( function() {
+ $( document ).ready( function () {
initEvents();
configFixedElements();
} );
@@ -17,7 +17,7 @@
jpBottomFrame = $( '.frame.bottom' ),
$body = $( 'body' );
- $body.scroll( function() {
+ $body.scroll( function () {
if ( 33 > jpTopFrame.offset().top ) {
jpTopFrame.addClass( 'fixed' );
$body.addClass( 'jp-frame-top-fixed' );
@@ -35,21 +35,19 @@
function initEvents() {
// toggle search and filters at mobile resolution
- $( '.filter-search' ).on( 'click', function() {
+ $( '.filter-search' ).on( 'click', function () {
$( this ).toggleClass( 'active' );
$( '.manage-right' ).toggleClass( 'show' );
$( '.shade' ).toggle();
} );
// Toggle all checkboxes
- $( '.checkall' ).on( 'click', function() {
- $( '.table-bordered' )
- .find( ':checkbox' )
- .prop( 'checked', this.checked );
+ $( '.checkall' ).on( 'click', function () {
+ $( '.table-bordered' ).find( ':checkbox' ).prop( 'checked', this.checked );
} );
// Clicking outside modal, or close X closes modal
- $( '.shade, .modal .close' ).on( 'click', function( event ) {
+ $( '.shade, .modal .close' ).on( 'click', function ( event ) {
$( '.shade, .modal' ).hide();
$( '.manage-right' ).removeClass( 'show' );
event.preventDefault();
diff --git a/plugins/jetpack/_inc/jetpack-connection-banner.js b/plugins/jetpack/_inc/jetpack-connection-banner.js
index d846870a..a1dae5ee 100644
--- a/plugins/jetpack/_inc/jetpack-connection-banner.js
+++ b/plugins/jetpack/_inc/jetpack-connection-banner.js
@@ -1,6 +1,6 @@
-/* global jQuery, jp_banner */
+/* global jp_banner */
-( function( $ ) {
+( function ( $ ) {
var nav = $( '.jp-wpcom-connect__vertical-nav-container' ),
contentContainer = $( '.jp-wpcom-connect__content-container' ),
nextFeatureButtons = $( '.jp-banner__button-container .next-feature' ),
@@ -11,12 +11,12 @@
connectionBannerDismiss = $( '.connection-banner-dismiss' );
// Move the banner below the WP Welcome notice on the dashboard
- $( window ).on( 'load', function() {
+ $( window ).on( 'load', function () {
wpWelcomeNotice.insertBefore( connectionBanner );
} );
// Dismiss the connection banner via AJAX
- connectionBannerDismiss.on( 'click', function() {
+ connectionBannerDismiss.on( 'click', function () {
$( connectionBanner ).hide();
var data = {
@@ -25,7 +25,7 @@
dismissBanner: true,
};
- $.post( jp_banner.ajax_url, data, function( response ) {
+ $.post( jp_banner.ajax_url, data, function ( response ) {
if ( true !== response.success ) {
$( connectionBanner ).show();
}
@@ -35,17 +35,15 @@
nav.on(
'click',
'.vertical-menu__feature-item:not( .vertical-menu__feature-item-is-selected )',
- function() {
+ function () {
transitionSlideToIndex( $( this ).index() );
}
);
- nextFeatureButtons.on( 'click', function( e ) {
+ nextFeatureButtons.on( 'click', function ( e ) {
e.preventDefault();
- var slideIndex = $( this )
- .closest( '.jp-wpcom-connect__slide' )
- .index();
+ var slideIndex = $( this ).closest( '.jp-wpcom-connect__slide' ).index();
transitionSlideToIndex( slideIndex + 1 );
} );
@@ -59,25 +57,19 @@
contentContainer.find( '.jp__slide-is-active' ).removeClass( 'jp__slide-is-active' );
// Add classes to selected menu item and content
- nav
- .children()
- .eq( index )
- .addClass( 'vertical-menu__feature-item-is-selected' );
+ nav.children().eq( index ).addClass( 'vertical-menu__feature-item-is-selected' );
- contentContainer
- .children()
- .eq( index )
- .addClass( 'jp__slide-is-active' );
+ contentContainer.children().eq( index ).addClass( 'jp__slide-is-active' );
}
/**
* Full-screen connection prompt
*/
- fullScreenDismiss.on( 'click', function() {
+ fullScreenDismiss.on( 'click', function () {
$( fullScreenContainer ).hide();
} );
- $( document ).keyup( function( e ) {
+ $( document ).keyup( function ( e ) {
if ( 27 === e.keyCode ) {
$( fullScreenDismiss ).click();
}
diff --git a/plugins/jetpack/_inc/jetpack-deactivate-dialog.js b/plugins/jetpack/_inc/jetpack-deactivate-dialog.js
new file mode 100644
index 00000000..294ffae1
--- /dev/null
+++ b/plugins/jetpack/_inc/jetpack-deactivate-dialog.js
@@ -0,0 +1,97 @@
+/**
+ * Adds the Deactivation modal.
+ *
+ * Depends on _inc/lib/tracks/tracks-callables.js and //stats.wp.com/w.js
+ *
+ */
+( function ( $ ) {
+ // Initialize Tracks and bump stats.
+ var tracksUser = deactivate_dialog.tracksUserData;
+
+ analytics.initialize( tracksUser.userid, tracksUser.username );
+
+ var deactivateLinkElem = $(
+ 'tr[data-slug=jetpack] > td.plugin-title > div > span.deactivate > a'
+ );
+
+ var deactivateJetpackURL = deactivateLinkElem.attr( 'href' );
+
+ window.deactivateJetpack = function () {
+ window.location.href = deactivateJetpackURL;
+ };
+
+ var observer = new MutationObserver( function ( mutations ) {
+ mutations.forEach( function ( mutation ) {
+ if ( mutation.type === 'childList' ) {
+ mutation.addedNodes.forEach( function ( addedNode ) {
+ if ( 'TB_window' === addedNode.id ) {
+ // NodeList is static, we need to modify this in the DOM
+
+ $( '#TB_window' ).addClass( 'jetpack-disconnect-modal' );
+ deactivationModalCentralize();
+
+ $( '#TB_closeWindowButton, #TB_overlay' ).on( 'click', function ( e ) {
+ deactivationModalTrackCloseEvent();
+ } );
+
+ document.onkeyup = function ( e ) {
+ if ( e === null ) {
+ // ie
+ keycode = event.keyCode;
+ } else {
+ // mozilla
+ keycode = e.which;
+ }
+ if ( keycode == 27 ) {
+ // close
+ deactivationModalTrackCloseEvent();
+ }
+ };
+
+ observer.disconnect();
+ }
+ } );
+ }
+ } );
+ } );
+
+ window.deactivationModalCentralize = function () {
+ var modal = $( '#TB_window.jetpack-disconnect-modal' );
+ var top = $( window ).height() / 2 - $( modal ).height() / 2;
+ $( modal ).css( 'top', top + 'px' );
+ };
+
+ window.deactivationModalTrackCloseEvent = function () {
+ analytics.tracks.recordEvent( 'jetpack_termination_dialog_close_click', tracksProps );
+ document.onkeyup = '';
+ };
+
+ var body = $( 'body' )[ 0 ];
+
+ var tracksProps = {
+ location: 'plugins',
+ purpose: 'deactivate',
+ };
+
+ deactivateLinkElem.attr( 'href', 'plugins.php#TB_inline?inlineId=jetpack_deactivation_dialog' );
+ deactivateLinkElem.attr( 'title', deactivate_dialog.title );
+ deactivateLinkElem.addClass( 'thickbox' );
+ deactivateLinkElem.html( deactivate_dialog.deactivate_label );
+ deactivateLinkElem.on( 'click', function ( e ) {
+ observer.observe( body, { childList: true } );
+ analytics.tracks.recordEvent( 'jetpack_termination_dialog_open', tracksProps );
+ } );
+
+ $( '#jetpack_deactivation_dialog_content__button-cancel' ).on( 'click', function ( e ) {
+ tb_remove();
+ deactivationModalTrackCloseEvent();
+ } );
+
+ $( '#jetpack_deactivation_dialog_content__button-deactivate' ).on( 'click', function ( e ) {
+ e.preventDefault();
+
+ $( this ).prop( 'disabled', true );
+ analytics.tracks.recordEvent( 'jetpack_termination_dialog_termination_click', tracksProps );
+ deactivateJetpack();
+ } );
+} )( jQuery );
diff --git a/plugins/jetpack/_inc/jetpack-modules.js b/plugins/jetpack/_inc/jetpack-modules.js
index d4321d1c..99a8824c 100644
--- a/plugins/jetpack/_inc/jetpack-modules.js
+++ b/plugins/jetpack/_inc/jetpack-modules.js
@@ -1,4 +1,4 @@
-( function( window, $, items, models, views, i18n, modalinfo, nonces ) {
+( function ( window, $, items, models, views, i18n, modalinfo, nonces ) {
'use strict';
var modules,
@@ -29,7 +29,7 @@
modules.trigger( 'change' );
// Handle the filtering of modules.
- handle_module_tag_click = function( event ) {
+ handle_module_tag_click = function ( event ) {
// Switch the item in the subsubsub list that's flagged as current.
$( '.subsubsub' )
.find( 'a[data-title="' + $( this ).data( 'title' ) + '"]' )
@@ -45,16 +45,13 @@
$( '.subsubsub a' ).on( 'click', { modules: modules }, handle_module_tag_click );
- $the_filters.on( 'click', '.button-group .button', { modules: modules }, function( event ) {
+ $the_filters.on( 'click', '.button-group .button', { modules: modules }, function ( event ) {
event.preventDefault();
- $( this )
- .addClass( 'active' )
- .siblings( '.active' )
- .removeClass( 'active' );
+ $( this ).addClass( 'active' ).siblings( '.active' ).removeClass( 'active' );
modules.trigger( 'change' );
} );
- $the_search.on( 'keyup search', function( e ) {
+ $the_search.on( 'keyup search', function ( e ) {
// Don't trigger change on tab, since it's only used for accessibility
// anyway, and will remove all checked boxes
if ( e.keyCode !== 9 ) {
@@ -64,11 +61,9 @@
$the_search.prop( 'placeholder', i18n.search_placeholder );
- $bulk_button.on( 'click', function( event ) {
+ $bulk_button.on( 'click', function ( event ) {
var selectedModules = $( '.jetpack-modules-list-table-form' ).serialize(),
- selectedAction = $( this )
- .siblings( 'select' )
- .val(),
+ selectedAction = $( this ).siblings( 'select' ).val(),
url;
if ( selectedModules.length && '-1' !== selectedAction ) {
@@ -84,11 +79,11 @@
event.preventDefault();
} );
} )(
- this,
+ window,
jQuery,
window.jetpackModulesData.modules,
- this.jetpackModules.models,
- this.jetpackModules.views,
+ window.jetpackModules.models,
+ window.jetpackModules.views,
window.jetpackModulesData.i18n,
window.jetpackModulesData.modalinfo,
window.jetpackModulesData.nonces
diff --git a/plugins/jetpack/_inc/jetpack-modules.models.js b/plugins/jetpack/_inc/jetpack-modules.models.js
index 08541cd8..0f483d5b 100644
--- a/plugins/jetpack/_inc/jetpack-modules.models.js
+++ b/plugins/jetpack/_inc/jetpack-modules.models.js
@@ -1,4 +1,4 @@
-this.jetpackModules = this.jetpackModules || {};
+window.jetpackModules = window.jetpackModules || {};
window.jetpackModules.models = ( function( window, $, _, Backbone ) {
'use strict';
@@ -77,4 +77,4 @@ window.jetpackModules.models = ( function( window, $, _, Backbone ) {
} );
return models;
-} )( this, jQuery, _, Backbone );
+} )( window, jQuery, _, Backbone );
diff --git a/plugins/jetpack/_inc/jetpack-modules.views.js b/plugins/jetpack/_inc/jetpack-modules.views.js
index c5dee1f0..f5dd1d25 100644
--- a/plugins/jetpack/_inc/jetpack-modules.views.js
+++ b/plugins/jetpack/_inc/jetpack-modules.views.js
@@ -1,6 +1,6 @@
-this.jetpackModules = this.jetpackModules || {};
+window.jetpackModules = window.jetpackModules || {};
-window.jetpackModules.views = ( function( window, $, _, Backbone, wp ) {
+window.jetpackModules.views = ( function ( window, $, _, Backbone, wp ) {
'use strict';
var views = {};
@@ -12,7 +12,7 @@ window.jetpackModules.views = ( function( window, $, _, Backbone, wp ) {
* If we can, use replaceState to change the URL and indicate the new filtering.
* This will be handy with redirecting back to the same state after activating/deactivating.
*/
- updateUrl: function() {
+ updateUrl: function () {
if ( ! window.history.replaceState ) {
return;
}
@@ -46,17 +46,17 @@ window.jetpackModules.views = ( function( window, $, _, Backbone, wp ) {
window.history.replaceState( {}, '', url );
},
- render: function() {
+ render: function () {
this.model.filter_and_sort();
this.$el.html( this.template( this.model.attributes ) );
this.updateUrl();
return this;
},
- initialize: function() {
+ initialize: function () {
this.listenTo( this.model, 'change', this.render );
},
} );
return views;
-} )( this, jQuery, _, Backbone, wp );
+} )( window, jQuery, _, Backbone, wp );
diff --git a/plugins/jetpack/_inc/jetpack-recommendations-banner.js b/plugins/jetpack/_inc/jetpack-recommendations-banner.js
new file mode 100644
index 00000000..142789f0
--- /dev/null
+++ b/plugins/jetpack/_inc/jetpack-recommendations-banner.js
@@ -0,0 +1,64 @@
+/* global jp_banner */
+
+( function ( $ ) {
+ var recommendationsBanner = $( '#jp-recommendations-banner-main' );
+ var recommendationsBannerForm = $( '#jp-recommendations-banner__form' );
+ var recommendationsBannerContinue = $( '#jp-recommendations-banner__continue-button' );
+ var recommendationsBannerDismiss = $( '#jp-recommendations-banner__notice-dismiss' );
+
+ recommendationsBannerForm.on( 'change', function ( event ) {
+ if (
+ 'checkbox' === event.target.type &&
+ event.target.parentElement &&
+ 'label' === event.target.parentElement.tagName.toLowerCase()
+ ) {
+ var isChecked = $( 'label.checked input[name="' + event.target.name + '"]' ).length > 0;
+ if ( isChecked ) {
+ event.target.parentElement.classList.remove( 'checked' );
+ } else {
+ event.target.parentElement.classList.add( 'checked' );
+ }
+ }
+ } );
+
+ recommendationsBannerContinue.on( 'click', function () {
+ var fieldNames = [ 'personal', 'business', 'store', 'other' ];
+ var formData = {};
+ fieldNames.forEach( function ( name ) {
+ formData[ name ] = $( "input[name='" + name + "']" ).prop( 'checked' );
+ } );
+
+ $.post(
+ jp_banner.ajax_url,
+ {
+ action: 'jetpack_recommendations_banner',
+ nonce: jp_banner.nonce,
+ personal: formData.personal,
+ business: formData.business,
+ store: formData.store,
+ other: formData.other,
+ },
+ function ( response ) {
+ if ( true === response.success ) {
+ window.location.assign( jp_banner.recommendations_url );
+ }
+ }
+ );
+ } );
+
+ recommendationsBannerDismiss.on( 'click', function () {
+ $( recommendationsBanner ).hide();
+
+ var data = {
+ action: 'jetpack_recommendations_banner',
+ nonce: jp_banner.nonce,
+ dismissBanner: true,
+ };
+
+ $.post( jp_banner.ajax_url, data, function ( response ) {
+ if ( true !== response.success ) {
+ $( recommendationsBanner ).show();
+ }
+ } );
+ } );
+} )( jQuery );
diff --git a/plugins/jetpack/_inc/jetpack-server-sandbox.php b/plugins/jetpack/_inc/jetpack-server-sandbox.php
index d5f0914b..a51b5016 100644
--- a/plugins/jetpack/_inc/jetpack-server-sandbox.php
+++ b/plugins/jetpack/_inc/jetpack-server-sandbox.php
@@ -1,37 +1,24 @@
<?php
-
/**
* This feature is only useful for Automattic developers.
* It configures Jetpack to talk to staging/sandbox servers
* on WordPress.com instead of production servers.
+ *
+ * @package automattic/jetpack
*/
/**
- * @param string $sandbox Sandbox domain
- * @param string $url URL of request about to be made
- * @param array $headers Headers of request about to be made
- * @return array [ 'url' => new URL, 'host' => new Host ]
+ * Provides sandbox request parameters.
+ *
+ * @param string $sandbox Sandbox domain.
+ * @param string $url URL of request about to be made.
+ * @param array $headers Headers of request about to be made.
+ * @return array [ 'url' => new URL, 'host' => new Host ].
*/
function jetpack_server_sandbox_request_parameters( $sandbox, $url, $headers ) {
- $host = '';
-
- $url_host = wp_parse_url( $url, PHP_URL_HOST );
+ _deprecated_function( __METHOD__, 'jetpack-10.2', 'Automattic\\Jetpack\\Server_Sandbox::server_sandbox_request_parameters' );
- 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;
- $url = preg_replace(
- '@^(https?://)' . preg_quote( $url_host, '@' ) . '(?=[/?#].*|$)@',
- '${1}' . $sandbox,
- $url,
- 1
- );
- }
-
- return compact( 'url', 'host' );
+ return ( new Automattic\Jetpack\Server_Sandbox() )->server_sandbox_request_parameters( $sandbox, $url, $headers );
}
/**
@@ -39,25 +26,13 @@ function jetpack_server_sandbox_request_parameters( $sandbox, $url, $headers ) {
* 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 string $url URL of request about to be made.
+ * @param array $headers Headers of request about to be made.
* @return void
*/
function jetpack_server_sandbox( &$url, &$headers ) {
- if ( ! JETPACK__SANDBOX_DOMAIN ) {
- return;
- }
+ _deprecated_function( __METHOD__, 'jetpack-10.2', 'Automattic\\Jetpack\\Server_Sandbox::server_sandbox' );
- $original_url = $url;
-
- $request_parameters = jetpack_server_sandbox_request_parameters( JETPACK__SANDBOX_DOMAIN, $url, $headers );
- $url = $request_parameters['url'];
- if ( $request_parameters['host'] ) {
- $headers['Host'] = $request_parameters['host'];
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- error_log( sprintf( "SANDBOXING via '%s': '%s'", JETPACK__SANDBOX_DOMAIN, $original_url ) );
- }
- }
+ ( new Automattic\Jetpack\Server_Sandbox() )->server_sandbox( $url, $headers );
}
-
-add_action( 'requests-requests.before_request', 'jetpack_server_sandbox', 10, 2 );
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-about-page.php b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-about-page.php
index 5f519ff2..6cd1faf6 100644
--- a/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-about-page.php
+++ b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-about-page.php
@@ -2,7 +2,7 @@
/**
* Class for the Jetpack About Page within the wp-admin.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -570,9 +570,9 @@ class Jetpack_About_Page extends Jetpack_Admin_Page {
'https://1.gravatar.com/avatar/1c75d26ad0d38624f02b15accc1f20cd',
'https://1.gravatar.com/avatar/c510e69d83c7d10be4df64feeff4e46a',
'https://0.gravatar.com/avatar/88ec0dcadea38adf5f30a17e54e9b248',
- 'https://1.gravatar.com/avatar/bc45834430c5b0936d76e3f468f9ca57',
+ 'https://1.gravatar.com/avatar/1ec3571e0201a990ceca5e365e780efa',
'https://0.gravatar.com/avatar/0619d4de8aef78c81b2194ff1d164d85',
- 'https://0.gravatar.com/avatar/72a638c2520ea177976e8eafb201a82f',
+ 'https://0.gravatar.com/avatar/7fdcad31a04def0ab9583af475c9036c',
'https://0.gravatar.com/avatar/b3618d70c63bbc5cc7caee0beded5ff0',
'https://1.gravatar.com/avatar/4d346581a3340e32cf93703c9ce46bd4',
'https://2.gravatar.com/avatar/9c2f6b95a00dfccfadc6a912a2b859ba',
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php
new file mode 100644
index 00000000..ebad61af
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-redux-state-helper.php
@@ -0,0 +1,444 @@
+<?php
+/**
+ * A utility class that generates the initial state for Redux in wp-admin.
+ * Modularized from `class.jetpack-react-page.php`.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Plugin_Storage as Connection_Plugin_Storage;
+use Automattic\Jetpack\Connection\REST_Connector;
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Licensing;
+use Automattic\Jetpack\Partner;
+use Automattic\Jetpack\Partner_Coupon as Jetpack_Partner_Coupon;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Status\Host;
+
+/**
+ * Responsible for populating the initial Redux state.
+ */
+class Jetpack_Redux_State_Helper {
+ /**
+ * Generate the initial state array to be used by the Redux store.
+ */
+ public static function get_initial_state() {
+ global $is_safari;
+
+ // Load API endpoint base classes and endpoints for getting the module list fed into the JS Admin Page.
+ require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-xmlrpc-consumer-endpoint.php';
+ require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php';
+ require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php';
+
+ $module_list_endpoint = new Jetpack_Core_API_Module_List_Endpoint();
+ $modules = $module_list_endpoint->get_modules();
+
+ // Preparing translated fields for JSON encoding by transforming all HTML entities to
+ // respective characters.
+ foreach ( $modules as $slug => $data ) {
+ $modules[ $slug ]['name'] = html_entity_decode( $data['name'] );
+ $modules[ $slug ]['description'] = html_entity_decode( $data['description'] );
+ $modules[ $slug ]['short_description'] = html_entity_decode( $data['short_description'] );
+ $modules[ $slug ]['long_description'] = html_entity_decode( $data['long_description'] );
+ }
+
+ // Collecting roles that can view site stats.
+ $stats_roles = array();
+ $enabled_roles = function_exists( 'stats_get_option' ) ? stats_get_option( 'roles' ) : array( 'administrator' );
+
+ if ( ! function_exists( 'get_editable_roles' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/user.php';
+ }
+ foreach ( get_editable_roles() as $slug => $role ) {
+ $stats_roles[ $slug ] = array(
+ 'name' => translate_user_role( $role['name'] ),
+ 'canView' => is_array( $enabled_roles ) ? in_array( $slug, $enabled_roles, true ) : false,
+ );
+ }
+
+ // Get information about current theme.
+ $current_theme = wp_get_theme();
+
+ // Get all themes that Infinite Scroll provides support for natively.
+ $inf_scr_support_themes = array();
+ foreach ( Jetpack::glob_php( JETPACK__PLUGIN_DIR . 'modules/infinite-scroll/themes' ) as $path ) {
+ if ( is_readable( $path ) ) {
+ $inf_scr_support_themes[] = basename( $path, '.php' );
+ }
+ }
+
+ // Get last post, to build the link to Customizer in the Related Posts module.
+ $last_post = get_posts( array( 'posts_per_page' => 1 ) );
+ $last_post = isset( $last_post[0] ) && $last_post[0] instanceof WP_Post
+ ? get_permalink( $last_post[0]->ID )
+ : get_home_url();
+
+ $current_user_data = jetpack_current_user_data();
+
+ /**
+ * Adds information to the `connectionStatus` API field that is unique to the Jetpack React dashboard.
+ */
+ $connection_status = array(
+ 'isInIdentityCrisis' => Identity_Crisis::validate_sync_error_idc_option(),
+ 'sandboxDomain' => JETPACK__SANDBOX_DOMAIN,
+
+ /**
+ * Filter to add connection errors
+ * Format: array( array( 'code' => '...', 'message' => '...', 'action' => '...' ), ... )
+ *
+ * @since 8.7.0
+ *
+ * @param array $errors Connection errors.
+ */
+ 'errors' => apply_filters( 'react_connection_errors_initial_state', array() ),
+ );
+
+ $connection_status = array_merge( REST_Connector::connection_status( false ), $connection_status );
+
+ $host = new Host();
+
+ // Get Jetpack benefits for this site.
+ $jetpack_benefits_response = Jetpack_Core_API_Site_Endpoint::get_benefits();
+ $jetpack_benefits = 200 === $jetpack_benefits_response->status ? json_decode( $jetpack_benefits_response->data['data'] ) : array();
+
+ return array(
+ 'WP_API_root' => esc_url_raw( rest_url() ),
+ 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ),
+ 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
+ 'purchaseToken' => self::get_purchase_token(),
+ 'partnerCoupon' => Jetpack_Partner_Coupon::get_coupon(),
+ 'pluginBaseUrl' => plugins_url( '', JETPACK__PLUGIN_FILE ),
+ 'connectionStatus' => $connection_status,
+ 'connectedPlugins' => Connection_Plugin_Storage::get_all(),
+ 'connectUrl' => false == $current_user_data['isConnected'] // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ ? Jetpack::init()->build_connect_url( true, false, false )
+ : '',
+ 'dismissedNotices' => self::get_dismissed_jetpack_notices(),
+ 'isDevVersion' => Jetpack::is_development_version(),
+ 'currentVersion' => JETPACK__VERSION,
+ 'is_gutenberg_available' => true,
+ 'getModules' => $modules,
+ 'rawUrl' => ( new Status() )->get_site_suffix(),
+ 'adminUrl' => esc_url( admin_url() ),
+ 'siteTitle' => (string) htmlspecialchars_decode( get_option( 'blogname' ), ENT_QUOTES ),
+ 'stats' => array(
+ // data is populated asynchronously on page load.
+ 'data' => array(
+ 'general' => false,
+ 'day' => false,
+ 'week' => false,
+ 'month' => false,
+ ),
+ 'roles' => $stats_roles,
+ ),
+ 'aff' => Partner::init()->get_partner_code( Partner::AFFILIATE_CODE ),
+ 'partnerSubsidiaryId' => Partner::init()->get_partner_code( Partner::SUBSIDIARY_CODE ),
+ 'settings' => self::get_flattened_settings( $modules ),
+ 'userData' => array(
+ 'currentUser' => $current_user_data,
+ ),
+ 'siteData' => array(
+ 'blog_id' => Jetpack_Options::get_option( 'id', 0 ),
+ 'icon' => has_site_icon()
+ ? apply_filters( 'jetpack_photon_url', get_site_icon_url(), array( 'w' => 64 ) )
+ : '',
+ 'siteVisibleToSearchEngines' => '1' == get_option( 'blog_public' ), // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ /**
+ * Whether promotions are visible or not.
+ *
+ * @since 4.8.0
+ *
+ * @param bool $are_promotions_active Status of promotions visibility. True by default.
+ */
+ 'showPromotions' => apply_filters( 'jetpack_show_promotions', true ),
+ 'isAtomicSite' => $host->is_woa_site(),
+ 'isWoASite' => $host->is_woa_site(),
+ 'isAtomicPlatform' => $host->is_atomic_platform(),
+ 'plan' => Jetpack_Plan::get(),
+ 'showBackups' => Jetpack::show_backups_ui(),
+ 'showRecommendations' => Jetpack_Recommendations::is_enabled(),
+ 'isMultisite' => is_multisite(),
+ 'dateFormat' => get_option( 'date_format' ),
+ ),
+ 'themeData' => array(
+ 'name' => $current_theme->get( 'Name' ),
+ 'hasUpdate' => (bool) get_theme_update_available( $current_theme ),
+ 'support' => array(
+ 'infinite-scroll' => current_theme_supports( 'infinite-scroll' ) || in_array( $current_theme->get_stylesheet(), $inf_scr_support_themes, true ),
+ ),
+ ),
+ 'jetpackBenefits' => $jetpack_benefits,
+ 'jetpackStateNotices' => array(
+ 'messageCode' => Jetpack::state( 'message' ),
+ 'errorCode' => Jetpack::state( 'error' ),
+ 'errorDescription' => Jetpack::state( 'error_description' ),
+ 'messageContent' => Jetpack::state( 'display_update_modal' ) ? self::get_update_modal_data() : null,
+ ),
+ 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
+ 'currentIp' => function_exists( 'jetpack_protect_get_ip' ) ? jetpack_protect_get_ip() : false,
+ 'lastPostUrl' => esc_url( $last_post ),
+ 'externalServicesConnectUrls' => self::get_external_services_connect_urls(),
+ 'calypsoEnv' => Jetpack::get_calypso_env(),
+ 'products' => Jetpack::get_products_for_purchase(),
+ 'recommendationsStep' => Jetpack_Core_Json_Api_Endpoints::get_recommendations_step()['step'],
+ 'isSafari' => $is_safari || User_Agent_Info::is_opera_desktop(), // @todo Rename isSafari everywhere.
+ 'doNotUseConnectionIframe' => Constants::is_true( 'JETPACK_SHOULD_NOT_USE_CONNECTION_IFRAME' ),
+ 'licensing' => array(
+ 'error' => Licensing::instance()->last_error(),
+ 'showLicensingUi' => Licensing::instance()->is_licensing_input_enabled(),
+ 'userCounts' => Jetpack_Core_Json_Api_Endpoints::get_user_license_counts(),
+ 'activationNoticeDismiss' => Licensing::instance()->get_license_activation_notice_dismiss(),
+ ),
+ 'hasSeenWCConnectionModal' => Jetpack_Options::get_option( 'has_seen_wc_connection_modal', false ),
+ // Check if WooCommerce plugin is active (based on https://docs.woocommerce.com/document/create-a-plugin/).
+ 'isWooCommerceActive' => in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', Jetpack::get_active_plugins() ), true ),
+ );
+ }
+
+ /**
+ * Gets array of any Jetpack notices that have been dismissed.
+ *
+ * @return mixed|void
+ */
+ public static function get_dismissed_jetpack_notices() {
+ $jetpack_dismissed_notices = get_option( 'jetpack_dismissed_notices', array() );
+ /**
+ * Array of notices that have been dismissed.
+ *
+ * @param array $jetpack_dismissed_notices If empty, will not show any Jetpack notices.
+ */
+ $dismissed_notices = apply_filters( 'jetpack_dismissed_notices', $jetpack_dismissed_notices );
+ return $dismissed_notices;
+ }
+
+ /**
+ * Returns an array of modules and settings both as first class members of the object.
+ *
+ * @return array flattened settings with modules.
+ */
+ public static function get_flattened_settings() {
+ $core_api_endpoint = new Jetpack_Core_API_Data();
+ $settings = $core_api_endpoint->get_all_options();
+ return $settings->data;
+ }
+
+ /**
+ * Returns the release post content and image data as an associative array.
+ * This data is used to create the update modal.
+ */
+ public static function get_update_modal_data() {
+ $post_data = self::get_release_post_data();
+
+ if ( ! isset( $post_data['posts'][0] ) ) {
+ return;
+ }
+
+ $post = $post_data['posts'][0];
+
+ if ( empty( $post['content'] ) ) {
+ return;
+ }
+
+ // This allows us to embed videopress videos into the release post.
+ add_filter( 'wp_kses_allowed_html', array( __CLASS__, 'allow_post_embed_iframe' ), 10, 2 );
+ $content = wp_kses_post( $post['content'] );
+ remove_filter( 'wp_kses_allowed_html', array( __CLASS__, 'allow_post_embed_iframe' ), 10, 2 );
+
+ $post_title = isset( $post['title'] ) ? $post['title'] : null;
+ $title = wp_kses( $post_title, array() );
+
+ $post_thumbnail = isset( $post['post_thumbnail'] ) ? $post['post_thumbnail'] : null;
+ if ( ! empty( $post_thumbnail ) ) {
+ jetpack_require_lib( 'class.jetpack-photon-image' );
+ $photon_image = new Jetpack_Photon_Image(
+ array(
+ 'file' => jetpack_photon_url( $post_thumbnail['URL'] ),
+ 'width' => $post_thumbnail['width'],
+ 'height' => $post_thumbnail['height'],
+ ),
+ $post_thumbnail['mime_type']
+ );
+ $photon_image->resize(
+ array(
+ 'width' => 600,
+ 'height' => null,
+ 'crop' => false,
+ )
+ );
+ $post_thumbnail_url = $photon_image->get_raw_filename();
+ } else {
+ $post_thumbnail_url = null;
+ }
+
+ $post_array = array(
+ 'release_post_content' => $content,
+ 'release_post_featured_image' => $post_thumbnail_url,
+ 'release_post_title' => $title,
+ );
+
+ return $post_array;
+ }
+
+ /**
+ * Temporarily allow post content to contain iframes, e.g. for videopress.
+ *
+ * @param string $tags The tags.
+ * @param string $context The context.
+ */
+ public static function allow_post_embed_iframe( $tags, $context ) {
+ if ( 'post' === $context ) {
+ $tags['iframe'] = array(
+ 'src' => true,
+ 'height' => true,
+ 'width' => true,
+ 'frameborder' => true,
+ 'allowfullscreen' => true,
+ );
+ }
+
+ return $tags;
+ }
+
+ /**
+ * Obtains the release post from the Jetpack release post blog. A release post will be displayed in the
+ * update modal when a post has a tag equal to the Jetpack version number.
+ *
+ * The response parameters for the post array can be found here:
+ * https://developer.wordpress.com/docs/api/1.1/get/sites/%24site/posts/%24post_ID/#apidoc-response
+ *
+ * @return array|null Returns an associative array containing the release post data at index ['posts'][0].
+ * Returns null if the release post data is not available.
+ */
+ public static function get_release_post_data() {
+ if ( Constants::is_defined( 'TESTING_IN_JETPACK' ) && Constants::get_constant( 'TESTING_IN_JETPACK' ) ) {
+ return null;
+ }
+
+ $release_post_src = add_query_arg(
+ array(
+ 'order_by' => 'date',
+ 'tag' => JETPACK__VERSION,
+ 'number' => '1',
+ ),
+ 'https://public-api.wordpress.com/rest/v1/sites/' . JETPACK__RELEASE_POST_BLOG_SLUG . '/posts'
+ );
+
+ $response = wp_remote_get( $release_post_src );
+
+ if ( ! is_array( $response ) ) {
+ return null;
+ }
+
+ return json_decode( wp_remote_retrieve_body( $response ), true );
+ }
+
+ /**
+ * Get external services connect URLs.
+ */
+ public static function get_external_services_connect_urls() {
+ $connect_urls = array();
+ jetpack_require_lib( 'class.jetpack-keyring-service-helper' );
+ // phpcs:disable
+ foreach ( Jetpack_Keyring_Service_Helper::$SERVICES as $service_name => $service_info ) {
+ // phpcs:enable
+ $connect_urls[ $service_name ] = Jetpack_Keyring_Service_Helper::connect_url( $service_name, $service_info['for'] );
+ }
+ return $connect_urls;
+ }
+
+ /**
+ * Gets a purchase token that is used for Jetpack logged out visitor checkout.
+ * The purchase token should be appended to all CTA url's that lead to checkout.
+ *
+ * @since 9.8.0
+ * @return string|boolean
+ */
+ public static function get_purchase_token() {
+ if ( ! Jetpack::current_user_can_purchase() ) {
+ return false;
+ }
+
+ $purchase_token = Jetpack_Options::get_option( 'purchase_token', false );
+
+ if ( $purchase_token ) {
+ return $purchase_token;
+ }
+ // If the purchase token is not saved in the options table yet, then add it.
+ Jetpack_Options::update_option( 'purchase_token', self::generate_purchase_token(), true );
+ return Jetpack_Options::get_option( 'purchase_token', false );
+ }
+
+ /**
+ * Generates a purchase token that is used for Jetpack logged out visitor checkout.
+ *
+ * @since 9.8.0
+ * @return string
+ */
+ public static function generate_purchase_token() {
+ return wp_generate_password( 12, false );
+ }
+
+}
+
+/**
+ * Gather data about the current user.
+ *
+ * @since 4.1.0
+ *
+ * @return array
+ */
+function jetpack_current_user_data() {
+ $jetpack_connection = new Connection_Manager( 'jetpack' );
+
+ $current_user = wp_get_current_user();
+ $is_user_connected = $jetpack_connection->is_user_connected( $current_user->ID );
+ $is_master_user = $is_user_connected && (int) $current_user->ID && (int) Jetpack_Options::get_option( 'master_user' ) === (int) $current_user->ID;
+ $dotcom_data = $jetpack_connection->get_connected_user_data();
+
+ // Add connected user gravatar to the returned dotcom_data.
+ // Probably we shouldn't do this when $dotcom_data is false, but we have been since 2016 so
+ // clients probably expect that by now.
+ if ( false === $dotcom_data ) {
+ $dotcom_data = array();
+ }
+ $dotcom_data['avatar'] = ( ! empty( $dotcom_data['email'] ) ?
+ get_avatar_url(
+ $dotcom_data['email'],
+ array(
+ 'size' => 64,
+ 'default' => 'mysteryman',
+ )
+ )
+ : false );
+
+ $current_user_data = array(
+ 'isConnected' => $is_user_connected,
+ 'isMaster' => $is_master_user,
+ 'username' => $current_user->user_login,
+ 'id' => $current_user->ID,
+ 'wpcomUser' => $dotcom_data,
+ 'gravatar' => get_avatar_url( $current_user->ID, 64, 'mm', '', array( 'force_display' => true ) ),
+ 'permissions' => array(
+ 'admin_page' => current_user_can( 'jetpack_admin_page' ),
+ 'connect' => current_user_can( 'jetpack_connect' ),
+ 'connect_user' => current_user_can( 'jetpack_connect_user' ),
+ 'disconnect' => current_user_can( 'jetpack_disconnect' ),
+ 'manage_modules' => current_user_can( 'jetpack_manage_modules' ),
+ 'network_admin' => current_user_can( 'jetpack_network_admin_page' ),
+ 'network_sites_page' => current_user_can( 'jetpack_network_sites_page' ),
+ 'edit_posts' => current_user_can( 'edit_posts' ),
+ 'publish_posts' => current_user_can( 'publish_posts' ),
+ 'manage_options' => current_user_can( 'manage_options' ),
+ 'view_stats' => current_user_can( 'view_stats' ),
+ 'manage_plugins' => current_user_can( 'install_plugins' )
+ && current_user_can( 'activate_plugins' )
+ && current_user_can( 'update_plugins' )
+ && current_user_can( 'delete_plugins' ),
+ ),
+ );
+
+ return $current_user_data;
+}
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-search-dashboard-page.php b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-search-dashboard-page.php
new file mode 100644
index 00000000..5eef2dfe
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/admin-pages/class-jetpack-search-dashboard-page.php
@@ -0,0 +1,137 @@
+<?php
+/**
+ * A class that adds a search dashboard to wp-admin.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Status;
+
+/**
+ * Requires files needed.
+ */
+require_once JETPACK__PLUGIN_DIR . '_inc/lib/admin-pages/class.jetpack-admin-page.php';
+require_once JETPACK__PLUGIN_DIR . '_inc/lib/admin-pages/class-jetpack-redux-state-helper.php';
+
+/**
+ * Responsible for adding a search dashboard to wp-admin.
+ *
+ * @package Automattic\Jetpack\Search
+ */
+class Jetpack_Search_Dashboard_Page extends Jetpack_Admin_Page {
+ /**
+ * Show the settings page only when Jetpack is connected or in dev mode.
+ *
+ * @var bool If the page should be shown.
+ */
+ protected $dont_show_if_not_active = true;
+
+ /**
+ * Add page specific actions given the page hook.
+ *
+ * @param {object} $hook The page hook.
+ */
+ public function add_page_actions( $hook ) {}// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+
+ /**
+ * Create a menu item for the page and returns the hook.
+ */
+ public function get_page_hook() {
+
+ if ( ! $this->should_add_sub_menu() ) {
+ return;
+ }
+ return add_submenu_page(
+ 'jetpack',
+ __( 'Search Settings', 'jetpack' ),
+ _x( 'Search', 'product name shown in menu', 'jetpack' ),
+ 'manage_options',
+ 'jetpack-search',
+ array( $this, 'render' ),
+ $this->get_link_offset()
+ );
+ }
+
+ /**
+ * Enqueue and localize page specific scripts
+ */
+ public function page_admin_scripts() {
+ $this->load_admin_scripts();
+ }
+
+ /**
+ * Override render funtion
+ */
+ public function render() {
+ $this->page_render();
+ }
+
+ /**
+ * Render Search setting elements
+ */
+ public function page_render() {
+ ?>
+ <div id="jp-search-dashboard" class="jp-search-dashboard">
+ <div class="hide-if-js"><?php esc_html_e( 'Your Search dashboard requires JavaScript to function properly.', 'jetpack' ); ?></div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Test whether we should show Search menu.
+ *
+ * @return {boolean} Show search sub menu or not.
+ */
+ protected function should_add_sub_menu() {
+ return method_exists( 'Jetpack_Plan', 'supports' ) && Jetpack_Plan::supports( 'search' );
+ }
+
+ /**
+ * Place the Jetpack Search menu item at the bottom of the Jetpack submenu.
+ *
+ * @return int Menu offset.
+ */
+ private function get_link_offset() {
+ global $submenu;
+ return count( $submenu['jetpack'] );
+ }
+
+ /**
+ * Enqueue admin styles.
+ */
+ public function load_admin_styles() {
+ $this->load_admin_scripts();
+ }
+
+ /**
+ * Enqueue admin scripts.
+ */
+ public function load_admin_scripts() {
+ \Jetpack_Admin_Page::load_wrapper_styles();
+
+ if ( ! ( new Status() )->is_offline_mode() && Jetpack::is_connection_ready() ) {
+ // Required for Analytics.
+ Automattic\Jetpack\Tracking::register_tracks_functions_scripts( true );
+ }
+
+ Assets::register_script(
+ 'jp-search-dashboard',
+ '_inc/build/search-dashboard.js',
+ JETPACK__PLUGIN_FILE,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack',
+ )
+ );
+ Assets::enqueue_script( 'jp-search-dashboard' );
+
+ // Add objects to be passed to the initial state of the app.
+ // Use wp_add_inline_script instead of wp_localize_script, see https://core.trac.wordpress.org/ticket/25280.
+ wp_add_inline_script(
+ 'jp-search-dashboard',
+ 'var Initial_State=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( \Jetpack_Redux_State_Helper::get_initial_state() ) ) . '"));',
+ 'before'
+ );
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
index bca7521d..86887667 100644
--- a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
+++ b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php
@@ -1,5 +1,7 @@
<?php
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Status;
// Shared logic between Jetpack admin pages
@@ -46,29 +48,32 @@ abstract class Jetpack_Admin_Page {
$this->jetpack = $jetpack;
self::$block_page_rendering_for_idc = (
- Jetpack::validate_sync_error_idc_option() && ! Jetpack_Options::get_option( 'safe_mode_confirmed' )
+ Identity_Crisis::validate_sync_error_idc_option() && ! Jetpack_Options::get_option( 'safe_mode_confirmed' )
);
}
function add_actions() {
- global $pagenow;
+ $is_offline_mode = ( new Status() )->is_offline_mode();
- $is_development_mode = ( new Status() )->is_development_mode();
- // If user is not an admin and site is in Dev Mode or not connected yet then don't do anything.
- if ( ! current_user_can( 'manage_options' ) && ( $is_development_mode || ! Jetpack::is_active() ) ) {
+ // If user is not an admin and site is in Offline Mode or not connected yet then don't do anything.
+ if ( ! current_user_can( 'manage_options' ) && ( $is_offline_mode || ! Jetpack::is_connection_ready() ) ) {
return;
}
+ // Is Jetpack not connected and not offline?
+ // True means that Jetpack is NOT connected and NOT in offline mode.
+ // If Jetpack is connected OR in offline mode, this will be false.
+ $connectable = ! Jetpack::is_connection_ready() && ! $is_offline_mode;
+
// Don't add in the modules page unless modules are available!
- if ( $this->dont_show_if_not_active && ! Jetpack::is_active() && ! $is_development_mode ) {
+ if ( $this->dont_show_if_not_active && $connectable ) {
return;
}
// Initialize menu item for the page in the admin
$hook = $this->get_page_hook();
- // Attach hooks common to all Jetpack admin pages based on the created
- // hook
+ // Attach hooks common to all Jetpack admin pages based on the created hook.
add_action( "load-$hook", array( $this, 'admin_help' ) );
add_action( "load-$hook", array( $this, 'admin_page_load' ) );
add_action( "admin_print_styles-$hook", array( $this, 'admin_styles' ) );
@@ -77,13 +82,26 @@ abstract class Jetpack_Admin_Page {
if ( ! self::$block_page_rendering_for_idc ) {
add_action( "admin_print_styles-$hook", array( $this, 'additional_styles' ) );
}
+
+ // Check if the site plan changed and deactivate modules accordingly.
+ add_action( 'current_screen', array( $this, 'check_plan_deactivate_modules' ) );
+
+ // Attach page specific actions in addition to the above.
+ $this->add_page_actions( $hook );
+
+ // If the current user can connect Jetpack, Jetpack isn't connected, and is not in offline mode, let's prompt!
+ if ( current_user_can( 'jetpack_connect' ) && $connectable ) {
+ $this->add_connection_banner_actions();
+ }
+ }
+
+ /**
+ * Hooks to add when Jetpack is not active or in offline mode for an user capable of connecting.
+ */
+ private function add_connection_banner_actions() {
+ global $pagenow;
// If someone just activated Jetpack, let's show them a fullscreen connection banner.
- if (
- ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && 'jetpack' === $_GET['page'] )
- && ! Jetpack::is_active()
- && current_user_can( 'jetpack_connect' )
- && ! $is_development_mode
- ) {
+ if ( ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && 'jetpack' === $_GET['page'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_banner_scripts' ) );
add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_connect_button_scripts' ) );
add_action( 'admin_print_styles', array( Jetpack::init(), 'admin_banner_styles' ) );
@@ -92,20 +110,10 @@ abstract class Jetpack_Admin_Page {
}
// If Jetpack not yet connected, but user is viewing one of the pages with a Jetpack connection banner.
- if (
- ( 'index.php' === $pagenow || 'plugins.php' === $pagenow )
- && ! Jetpack::is_active()
- && current_user_can( 'jetpack_connect' )
- && ! $is_development_mode
- ) {
+ if ( ( 'index.php' === $pagenow || 'plugins.php' === $pagenow ) ) {
add_action( 'admin_enqueue_scripts', array( 'Jetpack_Connection_Banner', 'enqueue_connect_button_scripts' ) );
}
- // Check if the site plan changed and deactivate modules accordingly.
- add_action( 'current_screen', array( $this, 'check_plan_deactivate_modules' ) );
-
- // Attach page specific actions in addition to the above
- $this->add_page_actions( $hook );
}
// Render the page with a common top and bottom part, and page specific content
@@ -158,8 +166,6 @@ abstract class Jetpack_Admin_Page {
return /** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */
apply_filters( 'rest_enabled', true ) &&
/** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */
- apply_filters( 'rest_jsonp_enabled', true ) &&
- /** This filter is documented in wp-includes/rest-api/class-wp-rest-server.php */
apply_filters( 'rest_authentication_errors', true );
}
@@ -174,7 +180,7 @@ abstract class Jetpack_Admin_Page {
*/
function check_plan_deactivate_modules( $page ) {
if (
- ( new Status() )->is_development_mode()
+ ( new Status() )->is_offline_mode()
|| ! in_array(
$page->base,
array(
@@ -196,15 +202,13 @@ abstract class Jetpack_Admin_Page {
$active = Jetpack::get_active_modules();
switch ( $current['product_slug'] ) {
case 'jetpack_free':
- $to_deactivate = array( 'seo-tools', 'videopress', 'google-analytics', 'wordads', 'search' );
- break;
case 'jetpack_personal':
case 'jetpack_personal_monthly':
- $to_deactivate = array( 'seo-tools', 'videopress', 'google-analytics', 'wordads', 'search' );
+ $to_deactivate = array( 'google-analytics', 'wordads', 'search' );
break;
case 'jetpack_premium':
case 'jetpack_premium_monthly':
- $to_deactivate = array( 'seo-tools', 'google-analytics', 'search' );
+ $to_deactivate = array( 'google-analytics', 'search' );
break;
}
$to_deactivate = array_intersect( $active, $to_deactivate );
@@ -230,7 +234,7 @@ abstract class Jetpack_Admin_Page {
static function load_wrapper_styles() {
$rtl = is_rtl() ? '.rtl' : '';
wp_enqueue_style( 'dops-css', plugins_url( "_inc/build/admin{$rtl}.css", JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
- wp_enqueue_style( 'components-css', plugins_url( "_inc/build/style.min{$rtl}.css", JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
+ wp_enqueue_style( 'components-css', plugins_url( "_inc/build/style.min{$rtl}.css", JETPACK__PLUGIN_FILE ), array( 'wp-components' ), JETPACK__VERSION );
$custom_css = '
#wpcontent {
padding-left: 0 !important;
@@ -239,6 +243,12 @@ abstract class Jetpack_Admin_Page {
background-color: #f6f6f6;
}
+ @media (max-width: 782px) {
+ #wpbody-content {
+ padding-bottom: 50px;
+ }
+ }
+
#jp-plugin-container .wrap {
margin: 0 auto;
max-width:45rem;
@@ -275,13 +285,14 @@ abstract class Jetpack_Admin_Page {
);
$args = wp_parse_args( $args, $defaults );
$jetpack_admin_url = admin_url( 'admin.php?page=jetpack' );
- $jetpack_about_url = ( Jetpack::is_active() || Jetpack::is_development_mode() )
+ $jetpack_offline = ( new Status() )->is_offline_mode();
+ $jetpack_about_url = ( Jetpack::is_connection_ready() || $jetpack_offline )
? admin_url( 'admin.php?page=jetpack_about' )
- : 'https://jetpack.com';
+ : Redirect::get_url( 'jetpack' );
- $jetpack_privacy_url = ( Jetpack::is_active() || Jetpack::is_development_mode() )
+ $jetpack_privacy_url = ( Jetpack::is_connection_ready() || $jetpack_offline )
? $jetpack_admin_url . '#/privacy'
- : 'https://automattic.com/privacy/';
+ : Redirect::get_url( 'a8c-privacy' );
?>
<div id="jp-plugin-container" class="
@@ -295,7 +306,7 @@ abstract class Jetpack_Admin_Page {
<div class="jp-masthead__inside-container">
<div class="jp-masthead__logo-container">
<a class="jp-masthead__logo-link" href="<?php echo esc_url( $jetpack_admin_url ); ?>">
- <svg class="jetpack-logo__masthead" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" height="32" viewBox="0 0 118 32"><path fill="#00BE28" 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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path></svg>
+ <svg class="jetpack-logo__masthead" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" height="32" viewBox="0 0 118 32"><path fill="#069e08" 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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path><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"></path></svg>
</a>
</div>
<?php
@@ -349,6 +360,22 @@ abstract class Jetpack_Admin_Page {
?>
<!-- END OF CALLBACK -->
+ <div id="jp-stats-report-bottom">
+ <div class="wrap">
+ <?php
+ /**
+ * Fires at the bottom of the Jetpack admin page template, after the dynamic content section.
+ *
+ * @since 10.0.0
+ *
+ * @param string $callback The callback sent to the Jetpack_Admin_Page::wrap_ui method.
+ * @param array $args The arguments sent to the Jetpack_Admin_Page::wrap_ui method.
+ */
+ do_action( 'jetpack_admin_pages_wrap_ui_after_callback', $callback, $args );
+ ?>
+ </div>
+ </div>
+
<div class="jp-footer">
<div class="jp-footer__a8c-attr-container">
<a href="<?php echo esc_url( $jetpack_about_url ); ?>">
@@ -357,13 +384,13 @@ abstract class Jetpack_Admin_Page {
</div>
<ul class="jp-footer__links">
<li class="jp-footer__link-item">
- <a href="https://jetpack.com" target="_blank" rel="noopener noreferrer" class="jp-footer__link" title="<?php esc_html_e( 'Jetpack version', 'jetpack' ); ?>">Jetpack <?php echo JETPACK__VERSION; ?></a>
+ <a href="<?php echo esc_url( Redirect::get_url( 'jetpack' ) ); ?>" target="_blank" rel="noopener noreferrer" class="jp-footer__link" title="<?php esc_html_e( 'Jetpack version', 'jetpack' ); ?>">Jetpack <?php echo esc_html( JETPACK__VERSION ); ?></a>
</li>
<li class="jp-footer__link-item">
<a href="<?php echo esc_url( $jetpack_about_url ); ?>" title="<?php esc_attr__( 'About Jetpack', 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html__( 'About', 'jetpack' ); ?></a>
</li>
<li class="jp-footer__link-item">
- <a href="https://wordpress.com/tos/" target="_blank" rel="noopener noreferrer" title="<?php esc_html__( 'WordPress.com Terms of Service', 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Terms', 'Navigation item', 'jetpack' ); ?></a>
+ <a href="<?php echo esc_url( Redirect::get_url( 'wpcom-tos' ) ); ?>" target="_blank" rel="noopener noreferrer" title="<?php esc_html__( 'WordPress.com Terms of Service', 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Terms', 'Navigation item', 'jetpack' ); ?></a>
</li>
<li class="jp-footer__link-item">
<a href="<?php echo esc_url( $jetpack_privacy_url ); ?>" rel="noopener noreferrer" title="<?php esc_html_e( "Automattic's Privacy Policy", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Privacy', 'Navigation item', 'jetpack' ); ?></a>
@@ -380,7 +407,7 @@ abstract class Jetpack_Admin_Page {
<?php } ?>
<?php if ( current_user_can( 'manage_options' ) ) { ?>
<li class="jp-footer__link-item">
- <a href="<?php echo esc_url( admin_url( 'admin.php?page=jetpack_modules' ) ); ?>" title="<?php esc_html_e( "Access the full list of Jetpack modules available on your site.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Modules', 'Navigation item', 'jetpack' ); ?></a>
+ <a href="<?php echo esc_url( admin_url( 'admin.php?page=jetpack_modules' ) ); ?>" title="<?php esc_html_e( 'Access the full list of Jetpack modules available on your site.', 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Modules', 'Navigation item', 'jetpack' ); ?></a>
</li>
<li class="jp-footer__link-item">
<a href="<?php echo esc_url( admin_url( 'admin.php?page=jetpack-debugger' ) ); ?>" title="<?php esc_html_e( "Test your site's compatibility with Jetpack.", 'jetpack' ); ?>" class="jp-footer__link"><?php echo esc_html_x( 'Debug', 'Navigation item', 'jetpack' ); ?></a>
diff --git a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
index 2d20c4e0..1c76ea28 100644
--- a/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
+++ b/plugins/jetpack/_inc/lib/admin-pages/class.jetpack-react-page.php
@@ -1,8 +1,10 @@
<?php
+use Automattic\Jetpack\Connection\Initial_State as Connection_Initial_State;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
use Automattic\Jetpack\Status;
-use Automattic\Jetpack\Partner;
include_once( 'class.jetpack-admin-page.php' );
+require_once __DIR__ . '/class-jetpack-redux-state-helper.php';
// Builds the landing page and its menu
class Jetpack_React_Page extends Jetpack_Admin_Page {
@@ -13,17 +15,13 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
function get_page_hook() {
// Add the main admin Jetpack menu
- return add_menu_page( 'Jetpack', 'Jetpack', 'jetpack_admin_page', 'jetpack', array( $this, 'render' ), 'div' );
+ return add_menu_page( 'Jetpack', 'Jetpack', 'jetpack_admin_page', 'jetpack', array( $this, 'render' ), 'div', 3 );
}
function add_page_actions( $hook ) {
/** This action is documented in class.jetpack.php */
do_action( 'jetpack_admin_menu', $hook );
- // Place the Jetpack menu item on top and others in the order they appear
- add_filter( 'custom_menu_order', '__return_true' );
- add_filter( 'menu_order', array( $this, 'jetpack_menu_order' ) );
-
if ( ! isset( $_GET['page'] ) || 'jetpack' !== $_GET['page'] ) {
return; // No need to handle the fallback redirection if we are not on the Jetpack page
}
@@ -40,7 +38,7 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
// If this is the first time the user is viewing the admin, don't show JITMs.
// This filter is added just in time because this function is called on admin_menu
// and JITMs are initialized on admin_init
- if ( Jetpack::is_active() && ! Jetpack_Options::get_option( 'first_admin_view', false ) ) {
+ if ( Jetpack::is_connection_ready() && ! Jetpack_Options::get_option( 'first_admin_view', false ) ) {
Jetpack_Options::update_option( 'first_admin_view', true );
add_filter( 'jetpack_just_in_time_msgs', '__return_false' );
}
@@ -54,23 +52,87 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
* @since 4.3.0
*/
function jetpack_add_dashboard_sub_nav_item() {
- if ( ( new Status() )->is_development_mode() || Jetpack::is_active() ) {
- global $submenu;
- if ( current_user_can( 'jetpack_admin_page' ) ) {
- $submenu['jetpack'][] = array( __( 'Dashboard', 'jetpack' ), 'jetpack_admin_page', 'admin.php?page=jetpack#/dashboard' );
+ if ( ( new Status() )->is_offline_mode() || Jetpack::is_connection_ready() ) {
+ add_submenu_page( 'jetpack', __( 'Dashboard', 'jetpack' ), __( 'Dashboard', 'jetpack' ), 'jetpack_admin_page', 'jetpack#/dashboard', '__return_null' );
+ remove_submenu_page( 'jetpack', 'jetpack' );
+ }
+ }
+
+ /**
+ * Determine whether a user can access the Jetpack Settings page.
+ *
+ * Rules are:
+ * - user is allowed to see the Jetpack Admin
+ * - site is connected or in offline mode
+ * - non-admins only need access to the settings when there are modules they can manage.
+ *
+ * @return bool $can_access_settings Can the user access settings.
+ */
+ private function can_access_settings() {
+ $connection = new Connection_Manager( 'jetpack' );
+ $status = new Status();
+
+ // User must have the necessary permissions to see the Jetpack settings pages.
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ return false;
+ }
+
+ // In offline mode, allow access to admins.
+ if ( $status->is_offline_mode() && current_user_can( 'manage_options' ) ) {
+ return true;
+ }
+
+ // If not in offline mode but site is not connected, bail.
+ if ( ! Jetpack::is_connection_ready() ) {
+ return false;
+ }
+
+ /*
+ * Additional checks for non-admins.
+ */
+ if ( ! current_user_can( 'manage_options' ) ) {
+ // If the site isn't connected at all, bail.
+ if ( ! $connection->has_connected_owner() ) {
+ return false;
+ }
+
+ /*
+ * If they haven't connected their own account yet,
+ * they have no use for the settings page.
+ * They will not be able to manage any settings.
+ */
+ if ( ! $connection->is_user_connected() ) {
+ return false;
+ }
+
+ /*
+ * Non-admins only have access to settings
+ * for the following modules:
+ * - Publicize
+ * - Post By Email
+ * If those modules are not available, bail.
+ */
+ if (
+ ! Jetpack::is_module_active( 'post-by-email' )
+ && ! Jetpack::is_module_active( 'publicize' )
+ ) {
+ return false;
}
}
+
+ // fallback.
+ return true;
}
/**
- * If user is allowed to see the Jetpack Admin, add Settings sub-link.
+ * Jetpack Settings sub-link.
*
* @since 4.3.0
+ * @since 9.7.0 If Connection does not have an owner, restrict it to admins
*/
function jetpack_add_settings_sub_nav_item() {
- if ( ( ( new Status() )->is_development_mode() || Jetpack::is_active() ) && current_user_can( 'jetpack_admin_page' ) && current_user_can( 'edit_posts' ) ) {
- global $submenu;
- $submenu['jetpack'][] = array( __( 'Settings', 'jetpack' ), 'jetpack_admin_page', 'admin.php?page=jetpack#/settings' );
+ if ( $this->can_access_settings() ) {
+ add_submenu_page( 'jetpack', __( 'Settings', 'jetpack' ), __( 'Settings', 'jetpack' ), 'jetpack_admin_page', 'jetpack#/settings', '__return_null' );
}
}
@@ -84,18 +146,17 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
echo '</noscript>';
}
+ /**
+ * Custom menu order.
+ *
+ * @deprecated since 9.2.0
+ * @param array $menu_order Menu order.
+ * @return array
+ */
function jetpack_menu_order( $menu_order ) {
- $jp_menu_order = array();
+ _deprecated_function( __METHOD__, 'jetpack-9.2' );
- foreach ( $menu_order as $index => $item ) {
- if ( $item != 'jetpack' )
- $jp_menu_order[] = $item;
-
- if ( $index == 0 )
- $jp_menu_order[] = 'jetpack';
- }
-
- return $jp_menu_order;
+ return $menu_order;
}
function page_render() {
@@ -110,7 +171,7 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
// If we still have nothing, display an error
echo '<p>';
esc_html_e( 'Error fetching static.html. Try running: ', 'jetpack' );
- echo '<code>yarn distclean && yarn build</code>';
+ echo '<code>pnpm run distclean && pnpx jetpack build plugins/jetpack</code>';
echo '</p>';
} else {
@@ -120,22 +181,32 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
}
/**
- * Gets array of any Jetpack notices that have been dismissed.
+ * Allow robust deep links to React.
*
- * @since 4.0.1
- * @return mixed|void
+ * The Jetpack dashboard requires fragments/hash values to make
+ * a deep link to it but passing fragments as part of a return URL
+ * will most often be discarded throughout the process.
+ * This logic aims to bridge this gap and reduce the chance of React
+ * specific links being broken while passing them along.
*/
- function get_dismissed_jetpack_notices() {
- $jetpack_dismissed_notices = get_option( 'jetpack_dismissed_notices', array() );
- /**
- * Array of notices that have been dismissed.
- *
- * @since 4.0.1
- *
- * @param array $jetpack_dismissed_notices If empty, will not show any Jetpack notices.
- */
- $dismissed_notices = apply_filters( 'jetpack_dismissed_notices', $jetpack_dismissed_notices );
- return $dismissed_notices;
+ public function react_redirects() {
+ global $pagenow;
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( 'admin.php' !== $pagenow || ! isset( $_GET['jp-react-redirect'] ) ) {
+ return;
+ }
+
+ $allowed_paths = array(
+ 'product-purchased' => admin_url( '/admin.php?page=jetpack#/recommendations/product-purchased' ),
+ );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $target = sanitize_text_field( (string) $_GET['jp-react-redirect'] );
+ if ( isset( $allowed_paths[ $target ] ) ) {
+ wp_safe_redirect( $allowed_paths[ $target ] );
+ exit;
+ }
}
function additional_styles() {
@@ -147,8 +218,9 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
return; // No need for scripts on a fallback page
}
-
- $is_development_mode = ( new Status() )->is_development_mode();
+ $status = new Status();
+ $is_offline_mode = $status->is_offline_mode();
+ $site_suffix = $status->get_site_suffix();
$script_deps_path = JETPACK__PLUGIN_DIR . '_inc/build/admin.asset.php';
$script_dependencies = array( 'wp-polyfill' );
if ( file_exists( $script_deps_path ) ) {
@@ -164,219 +236,21 @@ class Jetpack_React_Page extends Jetpack_Admin_Page {
true
);
- if ( ! $is_development_mode && Jetpack::is_active() ) {
+ if ( ! $is_offline_mode && Jetpack::is_connection_ready() ) {
// Required for Analytics.
wp_enqueue_script( 'jp-tracks', '//stats.wp.com/w.js', array(), gmdate( 'YW' ), true );
}
- // Add objects to be passed to the initial state of the app.
- wp_localize_script( 'react-plugin', 'Initial_State', $this->get_initial_state() );
- }
-
- function get_initial_state() {
- // Load API endpoint base classes and endpoints for getting the module list fed into the JS Admin Page
- require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-xmlrpc-consumer-endpoint.php';
- require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php';
- $moduleListEndpoint = new Jetpack_Core_API_Module_List_Endpoint();
- $modules = $moduleListEndpoint->get_modules();
-
- // Preparing translated fields for JSON encoding by transforming all HTML entities to
- // respective characters.
- foreach( $modules as $slug => $data ) {
- $modules[ $slug ]['name'] = html_entity_decode( $data['name'] );
- $modules[ $slug ]['description'] = html_entity_decode( $data['description'] );
- $modules[ $slug ]['short_description'] = html_entity_decode( $data['short_description'] );
- $modules[ $slug ]['long_description'] = html_entity_decode( $data['long_description'] );
- }
-
- // Collecting roles that can view site stats.
- $stats_roles = array();
- $enabled_roles = function_exists( 'stats_get_option' ) ? stats_get_option( 'roles' ) : array( 'administrator' );
-
- if ( ! function_exists( 'get_editable_roles' ) ) {
- require_once ABSPATH . 'wp-admin/includes/user.php';
- }
- foreach ( get_editable_roles() as $slug => $role ) {
- $stats_roles[ $slug ] = array(
- 'name' => translate_user_role( $role['name'] ),
- 'canView' => is_array( $enabled_roles ) ? in_array( $slug, $enabled_roles, true ) : false,
- );
- }
-
- // Get information about current theme.
- $current_theme = wp_get_theme();
+ wp_set_script_translations( 'react-plugin', 'jetpack' );
- // Get all themes that Infinite Scroll provides support for natively.
- $inf_scr_support_themes = array();
- foreach ( Jetpack::glob_php( JETPACK__PLUGIN_DIR . 'modules/infinite-scroll/themes' ) as $path ) {
- if ( is_readable( $path ) ) {
- $inf_scr_support_themes[] = basename( $path, '.php' );
- }
- }
-
- // Get last post, to build the link to Customizer in the Related Posts module.
- $last_post = get_posts( array( 'posts_per_page' => 1 ) );
- $last_post = isset( $last_post[0] ) && $last_post[0] instanceof WP_Post
- ? get_permalink( $last_post[0]->ID )
- : get_home_url();
-
- $current_user_data = jetpack_current_user_data();
-
- $status = new Status();
-
- return array(
- 'WP_API_root' => esc_url_raw( rest_url() ),
- 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ),
- 'pluginBaseUrl' => plugins_url( '', JETPACK__PLUGIN_FILE ),
- 'connectionStatus' => array(
- 'isActive' => Jetpack::is_active(),
- 'isStaging' => $status->is_staging_site(),
- 'devMode' => array(
- 'isActive' => $status->is_development_mode(),
- 'constant' => defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG,
- 'url' => site_url() && false === strpos( site_url(), '.' ),
- 'filter' => apply_filters( 'jetpack_development_mode', false ),
- ),
- 'isPublic' => '1' == get_option( 'blog_public' ), // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
- 'isInIdentityCrisis' => Jetpack::validate_sync_error_idc_option(),
- 'sandboxDomain' => JETPACK__SANDBOX_DOMAIN,
- ),
- 'connectUrl' => false == $current_user_data['isConnected'] // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
- ? Jetpack::init()->build_connect_url( true, false, false )
- : '',
- 'dismissedNotices' => $this->get_dismissed_jetpack_notices(),
- 'isDevVersion' => Jetpack::is_development_version(),
- 'currentVersion' => JETPACK__VERSION,
- 'is_gutenberg_available' => true,
- 'getModules' => $modules,
- 'rawUrl' => Jetpack::build_raw_urls( get_home_url() ),
- 'adminUrl' => esc_url( admin_url() ),
- 'stats' => array(
- // data is populated asynchronously on page load.
- 'data' => array(
- 'general' => false,
- 'day' => false,
- 'week' => false,
- 'month' => false,
- ),
- 'roles' => $stats_roles,
- ),
- 'aff' => Partner::init()->get_partner_code( Partner::AFFILIATE_CODE ),
- 'partnerSubsidiaryId' => Partner::init()->get_partner_code( Partner::SUBSIDIARY_CODE ),
- 'settings' => $this->get_flattened_settings( $modules ),
- 'userData' => array(
- 'currentUser' => $current_user_data,
- ),
- 'siteData' => array(
- 'icon' => has_site_icon()
- ? apply_filters( 'jetpack_photon_url', get_site_icon_url(), array( 'w' => 64 ) )
- : '',
- 'siteVisibleToSearchEngines' => '1' == get_option( 'blog_public' ), // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
- /**
- * Whether promotions are visible or not.
- *
- * @since 4.8.0
- *
- * @param bool $are_promotions_active Status of promotions visibility. True by default.
- */
- 'showPromotions' => apply_filters( 'jetpack_show_promotions', true ),
- 'isAtomicSite' => jetpack_is_atomic_site(),
- 'plan' => Jetpack_Plan::get(),
- 'showBackups' => Jetpack::show_backups_ui(),
- 'isMultisite' => is_multisite(),
- ),
- 'themeData' => array(
- 'name' => $current_theme->get( 'Name' ),
- 'hasUpdate' => (bool) get_theme_update_available( $current_theme ),
- 'support' => array(
- 'infinite-scroll' => current_theme_supports( 'infinite-scroll' ) || in_array( $current_theme->get_stylesheet(), $inf_scr_support_themes, true ),
- ),
- ),
- 'locale' => Jetpack::get_i18n_data_json(),
- 'localeSlug' => join( '-', explode( '_', get_user_locale() ) ),
- 'jetpackStateNotices' => array(
- 'messageCode' => Jetpack::state( 'message' ),
- 'errorCode' => Jetpack::state( 'error' ),
- 'errorDescription' => Jetpack::state( 'error_description' ),
- ),
- 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
- 'currentIp' => function_exists( 'jetpack_protect_get_ip' ) ? jetpack_protect_get_ip() : false,
- 'lastPostUrl' => esc_url( $last_post ),
- 'externalServicesConnectUrls' => $this->get_external_services_connect_urls(),
- 'calypsoEnv' => Jetpack::get_calypso_env(),
- );
- }
+ // Add objects to be passed to the initial state of the app.
+ // Use wp_add_inline_script instead of wp_localize_script, see https://core.trac.wordpress.org/ticket/25280.
+ wp_add_inline_script( 'react-plugin', 'var Initial_State=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( Jetpack_Redux_State_Helper::get_initial_state() ) ) . '"));', 'before' );
- function get_external_services_connect_urls() {
- $connect_urls = array();
- jetpack_require_lib( 'class.jetpack-keyring-service-helper' );
- foreach ( Jetpack_Keyring_Service_Helper::$SERVICES as $service_name => $service_info ) {
- $connect_urls[ $service_name ] = Jetpack_Keyring_Service_Helper::connect_url( $service_name, $service_info[ 'for' ] );
- }
- return $connect_urls;
- }
+ // This will set the default URL of the jp_redirects lib.
+ wp_add_inline_script( 'react-plugin', 'var jetpack_redirects = { currentSiteRawUrl: "' . $site_suffix . '" };', 'before' );
- /**
- * Returns an array of modules and settings both as first class members of the object.
- *
- * @param array $modules the result of an API request to get all modules.
- *
- * @return array flattened settings with modules.
- */
- function get_flattened_settings( $modules ) {
- $core_api_endpoint = new Jetpack_Core_API_Data();
- $settings = $core_api_endpoint->get_all_options();
- return $settings->data;
+ // Adds Connection package initial state.
+ wp_add_inline_script( 'react-plugin', Connection_Initial_State::render(), 'before' );
}
}
-
-/**
- * Gather data about the current user.
- *
- * @since 4.1.0
- *
- * @return array
- */
-function jetpack_current_user_data() {
- $current_user = wp_get_current_user();
- $is_master_user = $current_user->ID == Jetpack_Options::get_option( 'master_user' );
- $dotcom_data = Jetpack::get_connected_user_data();
-
- // Add connected user gravatar to the returned dotcom_data.
- $dotcom_data['avatar'] = ( ! empty( $dotcom_data['email'] ) ?
- get_avatar_url(
- $dotcom_data['email'],
- array(
- 'size' => 64,
- 'default' => 'mysteryman',
- )
- )
- : false );
-
- $current_user_data = array(
- 'isConnected' => Jetpack::is_user_connected( $current_user->ID ),
- 'isMaster' => $is_master_user,
- 'username' => $current_user->user_login,
- 'id' => $current_user->ID,
- 'wpcomUser' => $dotcom_data,
- 'gravatar' => get_avatar( $current_user->ID, 40, 'mm', '', array( 'force_display' => true ) ),
- 'permissions' => array(
- 'admin_page' => current_user_can( 'jetpack_admin_page' ),
- 'connect' => current_user_can( 'jetpack_connect' ),
- 'disconnect' => current_user_can( 'jetpack_disconnect' ),
- 'manage_modules' => current_user_can( 'jetpack_manage_modules' ),
- 'network_admin' => current_user_can( 'jetpack_network_admin_page' ),
- 'network_sites_page' => current_user_can( 'jetpack_network_sites_page' ),
- 'edit_posts' => current_user_can( 'edit_posts' ),
- 'publish_posts' => current_user_can( 'publish_posts' ),
- 'manage_options' => current_user_can( 'manage_options' ),
- 'view_stats' => current_user_can( 'view_stats' ),
- 'manage_plugins' => current_user_can( 'install_plugins' )
- && current_user_can( 'activate_plugins' )
- && current_user_can( 'update_plugins' )
- && current_user_can( 'delete_plugins' ),
- ),
- );
-
- return $current_user_data;
-}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-currencies.php b/plugins/jetpack/_inc/lib/class-jetpack-currencies.php
new file mode 100644
index 00000000..adebcf2b
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-currencies.php
@@ -0,0 +1,176 @@
+<?php
+/**
+ * Jetpack_Currencies: Utils for displaying and managing currencies.
+ *
+ * @package Jetpack
+ * @since 9.1.0
+ */
+
+/**
+ * General currencies specific functionality
+ */
+class Jetpack_Currencies {
+ /**
+ * Currencies definition
+ */
+ const CURRENCIES = array(
+ 'USD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => '$',
+ 'decimal' => 2,
+ ),
+ 'GBP' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => '&#163;',
+ 'decimal' => 2,
+ ),
+ 'JPY' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => '&#165;',
+ 'decimal' => 0,
+ ),
+ 'BRL' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'R$',
+ 'decimal' => 2,
+ ),
+ 'EUR' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => '&#8364;',
+ 'decimal' => 2,
+ ),
+ 'NZD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'NZ$',
+ 'decimal' => 2,
+ ),
+ 'AUD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'A$',
+ 'decimal' => 2,
+ ),
+ 'CAD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'C$',
+ 'decimal' => 2,
+ ),
+ 'ILS' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => '₪',
+ 'decimal' => 2,
+ ),
+ 'RUB' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => '₽',
+ 'decimal' => 2,
+ ),
+ 'MXN' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'MX$',
+ 'decimal' => 2,
+ ),
+ 'MYR' => array(
+ 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'RM',
+ 'decimal' => 2,
+ ),
+ 'SEK' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'Skr',
+ 'decimal' => 2,
+ ),
+ 'HUF' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'Ft',
+ 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
+ ),
+ 'CHF' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'CHF',
+ 'decimal' => 2,
+ ),
+ 'CZK' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'Kč',
+ 'decimal' => 2,
+ ),
+ 'DKK' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'Dkr',
+ 'decimal' => 2,
+ ),
+ 'HKD' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'HK$',
+ 'decimal' => 2,
+ ),
+ 'NOK' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'Kr',
+ 'decimal' => 2,
+ ),
+ 'PHP' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => '₱',
+ 'decimal' => 2,
+ ),
+ 'PLN' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => 'PLN',
+ 'decimal' => 2,
+ ),
+ 'SGD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'S$',
+ 'decimal' => 2,
+ ),
+ 'TWD' => array(
+ 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
+ 'symbol' => 'NT$',
+ 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
+ ),
+ 'THB' => array(
+ 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
+ 'symbol' => '฿',
+ 'decimal' => 2,
+ ),
+ 'INR' => array(
+ 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
+ 'symbol' => '₹',
+ 'decimal' => 0,
+ ),
+ );
+
+ /**
+ * Format a price with currency.
+ *
+ * Uses currency-aware formatting to output a formatted price with a simple fallback.
+ *
+ * Largely inspired by WordPress.com's Store_Price::display_currency
+ *
+ * @param string $price Price.
+ * @param string $currency Currency.
+ * @param bool $symbol Whether to display the currency symbol.
+ * @return string Formatted price.
+ */
+ public static function format_price( $price, $currency, $symbol = true ) {
+ // Fall back to unspecified currency symbol like `¤1,234.05`.
+ // @link https://en.wikipedia.org/wiki/Currency_sign_(typography).
+ if ( ! array_key_exists( $currency, self::CURRENCIES ) ) {
+ return '¤' . number_format_i18n( $price, 2 );
+ }
+
+ $currency_details = self::CURRENCIES[ $currency ];
+
+ // Ensure USD displays as 1234.56 even in non-US locales.
+ $amount = 'USD' === $currency
+ ? number_format( $price, $currency_details['decimal'], '.', ',' )
+ : number_format_i18n( $price, $currency_details['decimal'] );
+
+ return sprintf(
+ $currency_details['format'],
+ $symbol ? $currency_details['symbol'] : '',
+ $amount
+ );
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-instagram-gallery-helper.php b/plugins/jetpack/_inc/lib/class-jetpack-instagram-gallery-helper.php
new file mode 100644
index 00000000..468b280e
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-instagram-gallery-helper.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * Instagram Gallery block and API helper.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * Class Jetpack_Instagram_Gallery_Helper
+ */
+class Jetpack_Instagram_Gallery_Helper {
+ const TRANSIENT_KEY_PREFIX = 'jetpack_instagram_gallery_block_';
+
+ /**
+ * Check whether an Instagram access token is valid,
+ * or has been permanently deleted elsewhere.
+ *
+ * @param string $access_token The Instagram access token.
+ * @return bool
+ */
+ public static function is_instagram_access_token_valid( $access_token ) {
+ $site_id = self::get_site_id();
+ if ( is_wp_error( $site_id ) ) {
+ return false;
+ }
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ if ( ! class_exists( 'WPCOM_Instagram_Gallery_Helper' ) ) {
+ \jetpack_require_lib( 'instagram-gallery-helper' );
+ }
+ $token = WPCOM_Instagram_Gallery_Helper::get_token( $access_token );
+ return ! is_wp_error( $token );
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/instagram/%s/check-token', $site_id, $access_token ),
+ 2,
+ array( 'headers' => array( 'content-type' => 'application/json' ) ),
+ null,
+ 'wpcom'
+ );
+ return 200 === wp_remote_retrieve_response_code( $response );
+ }
+
+ /**
+ * Get the Instagram Gallery.
+ *
+ * @param string $access_token The Instagram access token.
+ * @param int $count The number of Instagram posts to fetch.
+ * @return mixed
+ */
+ public static function get_instagram_gallery( $access_token, $count ) {
+ $site_id = self::get_site_id();
+ if ( is_wp_error( $site_id ) ) {
+ return $site_id;
+ }
+
+ $transient_key = self::TRANSIENT_KEY_PREFIX . $access_token;
+
+ // Check if the connection exists before trying to retrieve the cached gallery.
+ if ( ! self::is_instagram_access_token_valid( $access_token ) ) {
+ delete_transient( $transient_key );
+ return new WP_Error(
+ 'instagram_connection_unavailable',
+ __( 'The requested Instagram connection is not available anymore.', 'jetpack' ),
+ 403
+ );
+ }
+
+ $cached_gallery = get_transient( $transient_key );
+ if ( $cached_gallery ) {
+ $decoded_cached_gallery = json_decode( $cached_gallery );
+ // `images` can be an array of images or a string 'ERROR'.
+ $cached_count = is_array( $decoded_cached_gallery->images ) ? count( $decoded_cached_gallery->images ) : 0;
+ if ( $cached_count >= $count ) {
+ return $decoded_cached_gallery;
+ }
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/instagram/%s?count=%d', $site_id, $access_token, (int) $count ),
+ 2,
+ array( 'headers' => array( 'content-type' => 'application/json' ) ),
+ null,
+ 'wpcom'
+ );
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $gallery = wp_remote_retrieve_body( $response );
+ set_transient( $transient_key, $gallery, HOUR_IN_SECONDS );
+ return json_decode( $gallery );
+ }
+
+ /**
+ * Get the WPCOM or self-hosted site ID.
+ *
+ * @return mixed
+ */
+ public static function get_site_id() {
+ $is_wpcom = ( defined( 'IS_WPCOM' ) && IS_WPCOM );
+ $site_id = $is_wpcom ? get_current_blog_id() : Jetpack_Options::get_option( 'id' );
+ if ( ! $site_id ) {
+ return new WP_Error(
+ 'unavailable_site_id',
+ __( 'Sorry, something is wrong with your Jetpack connection.', 'jetpack' ),
+ 403
+ );
+ }
+ return (int) $site_id;
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-mapbox-helper.php b/plugins/jetpack/_inc/lib/class-jetpack-mapbox-helper.php
new file mode 100644
index 00000000..2252648e
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-mapbox-helper.php
@@ -0,0 +1,111 @@
+<?php
+/**
+ * Mapbox API helper.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Status\Host;
+
+/**
+ * Class Jetpack_Mapbox_Helper
+ */
+class Jetpack_Mapbox_Helper {
+ /**
+ * Site option key for the Mapbox service.
+ *
+ * @var string
+ */
+ private static $site_option_key = 'mapbox_api_key';
+
+ /**
+ * Transient key for the WordPress.com Mapbox access token.
+ *
+ * @var string
+ */
+ private static $transient_key = 'wpcom_mapbox_access_token';
+
+ /**
+ * Get the site's own Mapbox access token if set, or the WordPress.com's one otherwise.
+ *
+ * @return array An array containing the key (if any) and its source ("site" or "wpcom").
+ */
+ public static function get_access_token() {
+ // If the site provides its own Mapbox access token, return it.
+ $service_api_key = Jetpack_Options::get_option( self::$site_option_key );
+ if ( $service_api_key ) {
+ return self::format_access_token( $service_api_key );
+ }
+
+ $site_id = self::get_wpcom_site_id();
+
+ // If on WordPress.com, try to return the access token straight away.
+ if ( self::is_wpcom() && defined( 'WPCOM_MAPBOX_ACCESS_TOKEN' ) ) {
+ jetpack_require_lib( 'mapbox-blocklist' );
+ return wpcom_is_site_blocked_from_map_block( $site_id )
+ ? self::format_access_token()
+ : self::format_access_token( WPCOM_MAPBOX_ACCESS_TOKEN, 'wpcom' );
+ }
+
+ // If not on WordPress.com or Atomic, return an empty access token.
+ if ( ! $site_id || ( ! self::is_wpcom() && ! ( new Host() )->is_woa_site() ) ) {
+ return self::format_access_token();
+ }
+
+ // If there is a cached token, return it.
+ $cached_token = get_transient( self::$transient_key );
+ if ( $cached_token ) {
+ return self::format_access_token( $cached_token, 'wpcom' );
+ }
+
+ // Otherwise get it from the WordPress.com endpoint.
+ $request_url = 'https://public-api.wordpress.com/wpcom/v2/sites/' . $site_id . '/mapbox';
+ $response = wp_remote_get( esc_url_raw( $request_url ) );
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return self::format_access_token();
+ }
+
+ $response_body = json_decode( wp_remote_retrieve_body( $response ) );
+ $wpcom_mapbox_access_token = $response_body->wpcom_mapbox_access_token;
+
+ set_transient( self::$transient_key, $wpcom_mapbox_access_token, HOUR_IN_SECONDS );
+ return self::format_access_token( $wpcom_mapbox_access_token, 'wpcom' );
+ }
+
+ /**
+ * Check if we're in WordPress.com.
+ *
+ * @return bool
+ */
+ private static function is_wpcom() {
+ return defined( 'IS_WPCOM' ) && IS_WPCOM;
+ }
+
+ /**
+ * Get the current site's WordPress.com ID.
+ *
+ * @return mixed The site's WordPress.com ID.
+ */
+ private static function get_wpcom_site_id() {
+ if ( self::is_wpcom() ) {
+ return get_current_blog_id();
+ } elseif ( method_exists( 'Jetpack', 'is_connection_ready' ) && Jetpack::is_connection_ready() ) {
+ return Jetpack_Options::get_option( 'id' );
+ }
+ return false;
+ }
+
+ /**
+ * Format an access token and its source into an array.
+ *
+ * @param string $key The API key.
+ * @param string $source The key's source ("site" or "wpcom").
+ * @return array
+ */
+ private static function format_access_token( $key = '', $source = 'site' ) {
+ return array(
+ 'key' => $key,
+ 'source' => $source,
+ );
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-podcast-feed-locator.php b/plugins/jetpack/_inc/lib/class-jetpack-podcast-feed-locator.php
new file mode 100644
index 00000000..82a2a766
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-podcast-feed-locator.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Extension of the SimplePie_Locator class, to detect podcast feeds
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Class Jetpack_Podcast_Feed_Locator
+ */
+class Jetpack_Podcast_Feed_Locator extends SimplePie_Locator {
+ /**
+ * Overrides the locator is_feed function to check for
+ * appropriate podcast elements.
+ *
+ * @param SimplePie_File $file The file being checked.
+ * @param boolean $check_html Adds text/html to the mimetypes checked.
+ */
+ public function is_feed( $file, $check_html = false ) {
+ return parent::is_feed( $file, $check_html ) && $this->is_podcast_feed( $file );
+ }
+
+ /**
+ * Checks the contents of the file for elements that make
+ * it a podcast feed.
+ *
+ * @param SimplePie_File $file The file being checked.
+ */
+ private function is_podcast_feed( $file ) {
+ // If we can't read the DOM assume it's a podcast feed, we'll work
+ // it out later.
+ if ( ! class_exists( 'DOMDocument' ) ) {
+ return true;
+ }
+
+ $feed_dom = $this->safely_load_xml( $file->body );
+
+ // Do this as either/or but prioritise the itunes namespace. It's pretty likely
+ // that it's a podcast feed we've found if that namespace is present.
+ return $feed_dom && $this->has_itunes_ns( $feed_dom ) && $this->has_audio_enclosures( $feed_dom );
+ }
+
+ /**
+ * Safely loads an XML file
+ *
+ * @param string $xml A string of XML to load.
+ * @return DOMDocument|false A restulting DOM document or `false` if there is an error.
+ */
+ private function safely_load_xml( $xml ) {
+ $disable_entity_loader = PHP_VERSION_ID < 80000;
+
+ if ( $disable_entity_loader && ! function_exists( 'libxml_disable_entity_loader' ) ) {
+ return false;
+ }
+
+ if ( $disable_entity_loader ) {
+ // This function has been deprecated in PHP 8.0 because in libxml 2.9.0, external entity loading
+ // is disabled by default, so this function is no longer needed to protect against XXE attacks.
+ // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated, PHPCompatibility.FunctionUse.RemovedFunctions.libxml_disable_entity_loaderDeprecated
+ $loader = libxml_disable_entity_loader( true );
+ }
+
+ $errors = libxml_use_internal_errors( true );
+
+ $return = new DOMDocument();
+ if ( ! $return->loadXML( $xml ) ) {
+ return false;
+ }
+
+ libxml_use_internal_errors( $errors );
+
+ if ( $disable_entity_loader && isset( $loader ) ) {
+ // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated, PHPCompatibility.FunctionUse.RemovedFunctions.libxml_disable_entity_loaderDeprecated
+ libxml_disable_entity_loader( $loader );
+ }
+
+ return $return;
+ }
+
+ /**
+ * Checks the RSS feed for the presence of the itunes podcast namespace.
+ * It's pretty loose and just checks the URI for itunes.com
+ *
+ * @param DOMDocument $dom The XML document to check.
+ * @return boolean Whether the itunes namespace is defined.
+ */
+ private function has_itunes_ns( $dom ) {
+ $xpath = new DOMXPath( $dom );
+ foreach ( $xpath->query( 'namespace::*' ) as $node ) {
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ // nodeValue is not valid, but it's part of the DOM API that we don't control.
+ if ( strstr( $node->nodeValue, 'itunes.com' ) ) {
+ return true;
+ }
+ // phpcs:enable
+ }
+ return false;
+ }
+
+ /**
+ * Checks the RSS feed for the presence of enclosures with an audio mimetype.
+ *
+ * @param DOMDocument $dom The XML document to check.
+ * @return boolean Whether enclosures were found.
+ */
+ private function has_audio_enclosures( $dom ) {
+ $xpath = new DOMXPath( $dom );
+ $enclosures = $xpath->query( "//enclosure[starts-with(@type,'audio/')]" );
+ return ! $enclosures ? false : $enclosures->length > 0;
+ }
+
+}
+
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-podcast-helper.php b/plugins/jetpack/_inc/lib/class-jetpack-podcast-helper.php
new file mode 100644
index 00000000..4d2dfa3b
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-podcast-helper.php
@@ -0,0 +1,535 @@
+<?php
+/**
+ * Helper to massage Podcast data to be used in the Podcast block.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Class Jetpack_Podcast_Helper
+ */
+class Jetpack_Podcast_Helper {
+ /**
+ * The RSS feed of the podcast.
+ *
+ * @var string
+ */
+ protected $feed = null;
+
+ /**
+ * Initialize class.
+ *
+ * @param string $feed The RSS feed of the podcast.
+ */
+ public function __construct( $feed ) {
+ $this->feed = esc_url_raw( $feed );
+ }
+
+ /**
+ * Retrieves tracks quantity.
+ *
+ * @returns int number of tracks
+ */
+ public static function get_tracks_quantity() {
+ /**
+ * Allow requesting a specific number of tracks from SimplePie's `get_items` call.
+ * The default number of tracks is ten.
+ *
+ * @since 10.4.0
+ *
+ * @param int $number Number of tracks fetched. Default is 10.
+ */
+ return (int) apply_filters( 'jetpack_podcast_helper_tracks_quantity', 10 );
+ }
+
+ /**
+ * Gets podcast data formatted to be used by the Podcast Player block in both server-side
+ * block rendering and in API `WPCOM_REST_API_V2_Endpoint_Podcast_Player`.
+ *
+ * The result is cached for one hour.
+ *
+ * @param array $args {
+ * Optional array of arguments.
+ * @type string|int $guid The ID of a specific episode to return rather than a list.
+ * }
+ *
+ * @return array|WP_Error The player data or a error object.
+ */
+ public function get_player_data( $args = array() ) {
+ $guids = isset( $args['guids'] ) && $args['guids'] ? $args['guids'] : array();
+ $episode_options = isset( $args['episode-options'] ) && $args['episode-options'];
+
+ // Try loading data from the cache.
+ $transient_key = 'jetpack_podcast_' . md5( $this->feed . implode( ',', $guids ) . "-$episode_options" );
+ $player_data = get_transient( $transient_key );
+
+ // Fetch data if we don't have any cached.
+ if ( false === $player_data || ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ) {
+ // Load feed.
+ $rss = $this->load_feed();
+
+ if ( is_wp_error( $rss ) ) {
+ return $rss;
+ }
+
+ // Get a list of episodes by guid or all tracks in feed.
+ if ( count( $guids ) ) {
+ $tracks = array_map( array( $this, 'get_track_data' ), $guids );
+ $tracks = array_filter(
+ $tracks,
+ function ( $track ) {
+ return ! is_wp_error( $track );
+ }
+ );
+ } else {
+ $tracks = $this->get_track_list();
+ }
+
+ if ( empty( $tracks ) ) {
+ return new WP_Error( 'no_tracks', __( 'Your Podcast couldn\'t be embedded as it doesn\'t contain any tracks. Please double check your URL.', 'jetpack' ) );
+ }
+
+ // Get podcast meta.
+ $title = $rss->get_title();
+ $title = $this->get_plain_text( $title );
+
+ $description = $rss->get_description();
+ $description = $this->get_plain_text( $description );
+
+ $cover = $rss->get_image_url();
+ $cover = ! empty( $cover ) ? esc_url( $cover ) : null;
+
+ $link = $rss->get_link();
+ $link = ! empty( $link ) ? esc_url( $link ) : null;
+
+ $player_data = array(
+ 'title' => $title,
+ 'description' => $description,
+ 'link' => $link,
+ 'cover' => $cover,
+ 'tracks' => $tracks,
+ );
+
+ if ( $episode_options ) {
+ $player_data['options'] = array();
+ foreach ( $rss->get_items() as $episode ) {
+ $enclosure = $this->get_audio_enclosure( $episode );
+ // If the episode doesn't have playable audio, then don't include it.
+ if ( is_wp_error( $enclosure ) ) {
+ continue;
+ }
+ $player_data['options'][] = array(
+ 'label' => $this->get_plain_text( $episode->get_title() ),
+ 'value' => $episode->get_id(),
+ );
+ }
+ }
+
+ // Cache for 1 hour.
+ set_transient( $transient_key, $player_data, HOUR_IN_SECONDS );
+ }
+
+ return $player_data;
+ }
+
+ /**
+ * Gets a specific track from the supplied feed URL.
+ *
+ * @param string $guid The GUID of the track.
+ * @param boolean $force_refresh Clear the feed cache.
+ * @return array|WP_Error The track object or an error object.
+ */
+ public function get_track_data( $guid, $force_refresh = false ) {
+ // Get the cache key.
+ $transient_key = 'jetpack_podcast_' . md5( "$this->feed::$guid" );
+
+ // Clear the cache if force_refresh param is true.
+ if ( true === $force_refresh ) {
+ delete_transient( $transient_key );
+ }
+
+ // Try loading track data from the cache.
+ $track_data = get_transient( $transient_key );
+
+ // Fetch data if we don't have any cached.
+ if ( false === $track_data || ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ) {
+ // Load feed.
+ $rss = $this->load_feed( $force_refresh );
+
+ if ( is_wp_error( $rss ) ) {
+ return $rss;
+ }
+
+ // Loop over all tracks to find the one.
+ foreach ( $rss->get_items() as $track ) {
+ if ( $guid === $track->get_id() ) {
+ $track_data = $this->setup_tracks_callback( $track );
+ break;
+ }
+ }
+
+ if ( false === $track_data ) {
+ return new WP_Error( 'no_track', __( 'The track was not found.', 'jetpack' ) );
+ }
+
+ // Cache for 1 hour.
+ set_transient( $transient_key, $track_data, HOUR_IN_SECONDS );
+ }
+
+ return $track_data;
+ }
+
+ /**
+ * Gets a list of tracks for the supplied RSS feed.
+ *
+ * @return array|WP_Error The feed's tracks or a error object.
+ */
+ public function get_track_list() {
+ $rss = $this->load_feed();
+
+ if ( is_wp_error( $rss ) ) {
+ return $rss;
+ }
+
+ $tracks_quantity = $this->get_tracks_quantity();
+
+ /**
+ * Allow requesting a specific number of tracks from SimplePie's `get_items` call.
+ * The default number of tracks is ten.
+ * Deprecated. Use jetpack_podcast_helper_tracks_quantity filter instead, which takes one less parameter.
+ *
+ * @since 9.5.0
+ * @deprecated 10.4.0
+ *
+ * @param int $tracks_quantity Number of tracks fetched. Default is 10.
+ * @param object $rss The SimplePie object built from core's `fetch_feed` call.
+ */
+ $tracks_quantity = apply_filters_deprecated( 'jetpack_podcast_helper_list_quantity', array( $tracks_quantity, $rss ), '10.4.0', 'jetpack_podcast_helper_tracks_quantity' );
+
+ // Process the requested number of items from our feed.
+ $track_list = array_map( array( __CLASS__, 'setup_tracks_callback' ), $rss->get_items( 0, $tracks_quantity ) );
+
+ // Filter out any tracks that are empty.
+ // Reset the array indicies.
+ return array_values( array_filter( $track_list ) );
+ }
+
+ /**
+ * Formats string as pure plaintext, with no HTML tags or entities present.
+ * This is ready to be used in React, innerText but needs to be escaped
+ * using standard `esc_html` when generating markup on server.
+ *
+ * @param string $str Input string.
+ * @return string Plain text string.
+ */
+ protected function get_plain_text( $str ) {
+ return $this->sanitize_and_decode_text( $str, true );
+ }
+
+ /**
+ * Formats strings as safe HTML.
+ *
+ * @param string $str Input string.
+ * @return string HTML text string safe for post_content.
+ */
+ protected function get_html_text( $str ) {
+ return $this->sanitize_and_decode_text( $str, false );
+ }
+
+ /**
+ * Strip unallowed html tags and decode entities.
+ *
+ * @param string $str Input string.
+ * @param boolean $strip_all_tags Strip all tags, otherwise allow post_content safe tags.
+ * @return string Sanitized and decoded text.
+ */
+ protected function sanitize_and_decode_text( $str, $strip_all_tags = true ) {
+ // Trim string and return if empty.
+ $str = trim( (string) $str );
+ if ( empty( $str ) ) {
+ return '';
+ }
+
+ if ( $strip_all_tags ) {
+ // Make sure there are no tags.
+ $str = wp_strip_all_tags( $str );
+ } else {
+ $str = wp_kses_post( $str );
+ }
+
+ // Replace all entities with their characters, including all types of quotes.
+ $str = html_entity_decode( $str, ENT_QUOTES );
+
+ return $str;
+ }
+
+ /**
+ * Loads an RSS feed using `fetch_feed`.
+ *
+ * @param boolean $force_refresh Clear the feed cache.
+ * @return SimplePie|WP_Error The RSS object or error.
+ */
+ public function load_feed( $force_refresh = false ) {
+ // Add action: clear the SimplePie Cache if $force_refresh param is true.
+ if ( true === $force_refresh ) {
+ add_action( 'wp_feed_options', array( __CLASS__, 'reset_simplepie_cache' ) );
+ }
+ // Add action: detect the podcast feed from the provided feed URL.
+ add_action( 'wp_feed_options', array( __CLASS__, 'set_podcast_locator' ) );
+
+ // Fetch the feed.
+ $rss = fetch_feed( $this->feed );
+
+ // Remove added actions from wp_feed_options hook.
+ remove_action( 'wp_feed_options', array( __CLASS__, 'set_podcast_locator' ) );
+ if ( true === $force_refresh ) {
+ remove_action( 'wp_feed_options', array( __CLASS__, 'reset_simplepie_cache' ) );
+ }
+
+ if ( is_wp_error( $rss ) ) {
+ return new WP_Error( 'invalid_url', __( 'Your podcast couldn\'t be embedded. Please double check your URL.', 'jetpack' ) );
+ }
+
+ if ( ! $rss->get_item_quantity() ) {
+ return new WP_Error( 'no_tracks', __( 'Podcast audio RSS feed has no tracks.', 'jetpack' ) );
+ }
+
+ return $rss;
+ }
+
+ /**
+ * Action handler to set our podcast specific feed locator class on the SimplePie object.
+ *
+ * @param SimplePie $feed The SimplePie object, passed by reference.
+ */
+ public static function set_podcast_locator( &$feed ) {
+ if ( ! class_exists( 'Jetpack_Podcast_Feed_Locator' ) ) {
+ jetpack_require_lib( 'class-jetpack-podcast-feed-locator' );
+ }
+
+ $feed->set_locator_class( 'Jetpack_Podcast_Feed_Locator' );
+ }
+
+ /**
+ * Action handler to reset the SimplePie cache for the podcast feed.
+ *
+ * Note this only resets the cache for the specified url. If the feed locator finds the podcast feed
+ * within the markup of the that url, that feed itself may still be cached.
+ *
+ * @param SimplePie $feed The SimplePie object, passed by reference.
+ * @return void
+ */
+ public static function reset_simplepie_cache( &$feed ) {
+ // Retrieve the cache object for a feed url. Based on:
+ // https://github.com/WordPress/WordPress/blob/fd1c2cb4011845ceb7244a062b09b2506082b1c9/wp-includes/class-simplepie.php#L1412.
+ $cache = $feed->registry->call( 'Cache', 'get_handler', array( $feed->cache_location, call_user_func( $feed->cache_name_function, $feed->feed_url ), 'spc' ) );
+
+ if ( method_exists( $cache, 'unlink' ) ) {
+ $cache->unlink();
+ }
+ }
+
+ /**
+ * Prepares Episode data to be used by the Podcast Player block.
+ *
+ * @param SimplePie_Item $episode SimplePie_Item object, representing a podcast episode.
+ * @return array
+ */
+ protected function setup_tracks_callback( SimplePie_Item $episode ) {
+ $enclosure = $this->get_audio_enclosure( $episode );
+
+ // If the audio enclosure is empty then it is not playable.
+ // We therefore return an empty array for this track.
+ // It will be filtered out later.
+ if ( is_wp_error( $enclosure ) ) {
+ return array();
+ }
+
+ // If there is no link return an empty array. We will filter out later.
+ if ( empty( $enclosure->link ) ) {
+ return array();
+ }
+
+ $publish_date = $episode->get_gmdate( DATE_ATOM );
+ // Build track data.
+ $track = array(
+ 'id' => wp_unique_id( 'podcast-track-' ),
+ 'link' => esc_url( $episode->get_link() ),
+ 'src' => esc_url( $enclosure->link ),
+ 'type' => esc_attr( $enclosure->type ),
+ 'description' => $this->get_plain_text( $episode->get_description() ),
+ 'description_html' => $this->get_html_text( $episode->get_description() ),
+ 'title' => $this->get_plain_text( $episode->get_title() ),
+ 'image' => esc_url( $this->get_episode_image_url( $episode ) ),
+ 'guid' => $this->get_plain_text( $episode->get_id() ),
+ 'publish_date' => $publish_date ? $publish_date : null,
+ );
+
+ if ( empty( $track['title'] ) ) {
+ $track['title'] = esc_html__( '(no title)', 'jetpack' );
+ }
+
+ if ( ! empty( $enclosure->duration ) ) {
+ $track['duration'] = esc_html( $this->format_track_duration( $enclosure->duration ) );
+ }
+
+ return $track;
+ }
+
+ /**
+ * Retrieves an episode's image URL, if it's available.
+ *
+ * @param SimplePie_Item $episode SimplePie_Item object, representing a podcast episode.
+ * @param string $itunes_ns The itunes namespace, defaulted to the standard 1.0 version.
+ * @return string|null The image URL or null if not found.
+ */
+ protected function get_episode_image_url( SimplePie_Item $episode, $itunes_ns = 'http://www.itunes.com/dtds/podcast-1.0.dtd' ) {
+ $image = $episode->get_item_tags( $itunes_ns, 'image' );
+ if ( isset( $image[0]['attribs']['']['href'] ) ) {
+ return $image[0]['attribs']['']['href'];
+ }
+ return null;
+ }
+
+ /**
+ * Retrieves an audio enclosure.
+ *
+ * @param SimplePie_Item $episode SimplePie_Item object, representing a podcast episode.
+ * @return SimplePie_Enclosure|null
+ */
+ protected function get_audio_enclosure( SimplePie_Item $episode ) {
+ foreach ( (array) $episode->get_enclosures() as $enclosure ) {
+ if ( 0 === strpos( $enclosure->type, 'audio/' ) ) {
+ return $enclosure;
+ }
+ }
+
+ return new WP_Error( 'invalid_audio', __( 'Podcast audio is an invalid type.', 'jetpack' ) );
+ }
+
+ /**
+ * Returns the track duration as a formatted string.
+ *
+ * @param number $duration of the track in seconds.
+ * @return string
+ */
+ protected function format_track_duration( $duration ) {
+ $format = $duration > HOUR_IN_SECONDS ? 'H:i:s' : 'i:s';
+
+ return date_i18n( $format, $duration );
+ }
+
+ /**
+ * Gets podcast player data schema.
+ *
+ * Useful for json schema in REST API endpoints.
+ *
+ * @return array Player data json schema.
+ */
+ public static function get_player_data_schema() {
+ return array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => 'jetpack-podcast-player-data',
+ 'type' => 'object',
+ 'properties' => array(
+ 'title' => array(
+ 'description' => __( 'The title of the podcast.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'link' => array(
+ 'description' => __( 'The URL of the podcast website.', 'jetpack' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ ),
+ 'cover' => array(
+ 'description' => __( 'The URL of the podcast cover image.', 'jetpack' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ ),
+ 'tracks' => self::get_tracks_schema(),
+ 'options' => self::get_options_schema(),
+ ),
+ );
+ }
+
+ /**
+ * Gets tracks data schema.
+ *
+ * Useful for json schema in REST API endpoints.
+ *
+ * @return array Tracks json schema.
+ */
+ public static function get_tracks_schema() {
+ return array(
+ 'description' => __( 'Latest episodes of the podcast.', 'jetpack' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'id' => array(
+ 'description' => __( 'The episode id. Generated per request, not globally unique.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'link' => array(
+ 'description' => __( 'The external link for the episode.', 'jetpack' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ ),
+ 'src' => array(
+ 'description' => __( 'The audio file URL of the episode.', 'jetpack' ),
+ 'type' => 'string',
+ 'format' => 'uri',
+ ),
+ 'type' => array(
+ 'description' => __( 'The mime type of the episode.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'description' => array(
+ 'description' => __( 'The episode description, in plaintext.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'description_html' => array(
+ 'description' => __( 'The episode description with allowed html tags.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'title' => array(
+ 'description' => __( 'The episode title.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'publish_date' => array(
+ 'description' => __( 'The UTC publish date and time of the episode', 'jetpack' ),
+ 'type' => 'string',
+ 'format' => 'date-time',
+ ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Gets the episode options schema.
+ *
+ * Useful for json schema in REST API endpoints.
+ *
+ * @return array Tracks json schema.
+ */
+ public static function get_options_schema() {
+ return array(
+ 'description' => __( 'The options that will be displayed in the episode selection UI', 'jetpack' ),
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'label' => array(
+ 'description' => __( 'The display label of the option, the episode title.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'value' => array(
+ 'description' => __( 'The value used for that option, the episode GUID', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ ),
+ ),
+ );
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-recommendations.php b/plugins/jetpack/_inc/lib/class-jetpack-recommendations.php
new file mode 100644
index 00000000..ffbbddf3
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-recommendations.php
@@ -0,0 +1,160 @@
+<?php
+/**
+ * Utilities related to the Jetpack Recommendations
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Status\Host;
+
+/**
+ * Contains utilities related to the Jetpack Recommendations.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Jetpack_Recommendations class
+ */
+class Jetpack_Recommendations {
+ /**
+ * Returns a boolean indicating if the Jetpack Recommendations are enabled.
+ *
+ * @since 9.3.0
+ *
+ * @return bool
+ */
+ public static function is_enabled() {
+ // Shortcircuit early if Jetpack is not active or we are in offline mode.
+ if ( ! Jetpack::is_connection_ready() || ( new Status() )->is_offline_mode() ) {
+ return false;
+ }
+
+ // No recommendations for Atomic sites, they already get onboarded in Calypso.
+ if ( ( new Host() )->is_woa_site() ) {
+ return false;
+ }
+
+ self::initialize_jetpack_recommendations();
+
+ return true;
+ }
+
+ /**
+ * Returns a boolean indicating if the Jetpack Banner is enabled.
+ *
+ * @since 9.3.0
+ *
+ * @return bool
+ */
+ public static function is_banner_enabled() {
+ // Shortcircuit early if the recommendations are not enabled at all.
+ if ( ! self::is_enabled() ) {
+ return false;
+ }
+
+ $recommendations_banner_enabled = Jetpack_Options::get_option( 'recommendations_banner_enabled', null );
+
+ // If the option is already set, just return the cached value.
+ // Otherwise calculate it and store it before returning it.
+ if ( null !== $recommendations_banner_enabled ) {
+ return $recommendations_banner_enabled;
+ }
+
+ if ( ! Jetpack::connection()->is_connected() ) {
+ return new WP_Error( 'site_not_connected', esc_html__( 'Site not connected.', 'jetpack' ) );
+ }
+
+ $blog_id = Jetpack_Options::get_option( 'id' );
+
+ $request_path = sprintf( '/sites/%s/jetpack-recommendations/site-registered-date', $blog_id );
+ $result = Client::wpcom_json_api_request_as_blog(
+ $request_path,
+ 2,
+ array(
+ 'headers' => array( 'content-type' => 'application/json' ),
+ ),
+ null,
+ 'wpcom'
+ );
+
+ $body = json_decode( wp_remote_retrieve_body( $result ) );
+ if ( 200 === wp_remote_retrieve_response_code( $result ) ) {
+ $site_registered_date = $body->site_registered_date;
+ } else {
+ $connection = new Connection_Manager( 'jetpack' );
+ $site_registered_date = $connection->get_assumed_site_creation_date();
+ }
+
+ $recommendations_start_date = gmdate( 'Y-m-d H:i:s', strtotime( '2020-12-01 00:00:00' ) );
+ $recommendations_banner_enabled = $site_registered_date > $recommendations_start_date;
+
+ Jetpack_Options::update_option( 'recommendations_banner_enabled', $recommendations_banner_enabled );
+
+ return $recommendations_banner_enabled;
+ }
+
+ /**
+ * Initializes the Recommendations step according to the Setup Wizard state.
+ */
+ private static function initialize_jetpack_recommendations() {
+ if ( Jetpack_Options::get_option( 'recommendations_step' ) ) {
+ return;
+ }
+
+ $setup_wizard_status = Jetpack_Options::get_option( 'setup_wizard_status' );
+ if ( 'completed' === $setup_wizard_status ) {
+ Jetpack_Options::update_option( 'recommendations_banner_enabled', false );
+ Jetpack_Options::update_option( 'recommendations_step', 'setup-wizard-completed' );
+ }
+ }
+
+ /**
+ * Get the data for the recommendations
+ *
+ * @return array Recommendations data
+ */
+ public static function get_recommendations_data() {
+ self::initialize_jetpack_recommendations();
+
+ return Jetpack_Options::get_option( 'recommendations_data', array() );
+ }
+
+ /**
+ * Update the data for the recommendations
+ *
+ * @param WP_REST_Request $data The data.
+ */
+ public static function update_recommendations_data( $data ) {
+ if ( ! empty( $data ) ) {
+ Jetpack_Options::update_option( 'recommendations_data', $data );
+ }
+ }
+
+ /**
+ * Get the data for the recommendations
+ *
+ * @return array Recommendations data
+ */
+ public static function get_recommendations_step() {
+ self::initialize_jetpack_recommendations();
+
+ return array(
+ 'step' => Jetpack_Options::get_option( 'recommendations_step', 'not-started' ),
+ );
+ }
+
+ /**
+ * Update the step for the recommendations
+ *
+ * @param WP_REST_Request $step The step.
+ */
+ public static function update_recommendations_step( $step ) {
+ if ( ! empty( $step ) ) {
+ Jetpack_Options::update_option( 'recommendations_step', $step );
+ }
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-tweetstorm-helper.php b/plugins/jetpack/_inc/lib/class-jetpack-tweetstorm-helper.php
new file mode 100644
index 00000000..df436daf
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-tweetstorm-helper.php
@@ -0,0 +1,1682 @@
+<?php
+/**
+ * Tweetstorm block and API helper.
+ *
+ * @package automattic/jetpack
+ * @since 8.7.0
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Status;
+use Twitter\Text\Regex as Twitter_Regex;
+use Twitter\Text\Validator as Twitter_Validator;
+
+/**
+ * Class Jetpack_Tweetstorm_Helper
+ *
+ * @since 8.7.0
+ */
+class Jetpack_Tweetstorm_Helper {
+ /**
+ * Blocks that can be converted to tweets.
+ *
+ * @var array {
+ * The key for each element must match the registered block name.
+ *
+ * @type string $type Required. The type of content this block produces. Can be one of 'break', 'embed', 'image',
+ * 'multiline', 'text', or 'video'.
+ * @type string $content_location Optional. Where the block content can be found. Can be 'html', if we need to parse
+ * it out of the block HTML text, 'html-attributes', if the we need to parse it out of HTML attributes
+ * in the block HTML, or 'block-attributes', if the content can be found in the block attributes.
+ * Note that these attributes need to be available when the serialised block is
+ * parsed using `parse_blocks()`. If it isn't set, it's assumed the block doesn't add
+ * any content to the Twitter thread.
+ * @type array $content Optional. Defines what parts of the block content need to be extracted. Behaviour can vary based on
+ * `$content_location`, and `$type`:
+ *
+ * - When `$content_location` is 'html', a value of `array()` or `array( 'content' )` have the same meaning:
+ * The entire block HTML should be used. In both cases, 'content' will be the corresponding tag in `$template`.
+ * - When `$content_location` is 'html', it should be formatted as `array( 'container' => 'tag' )`,
+ * where 'container' is the name of the corresponding RichText container in the block editor, and is also the name
+ * of the corresponding tag in the $template string. 'tag' is the HTML tag within the block that corresponds to this
+ * container. When `$type` is 'multiline', there must only be one element in the array, and tag should be set to the HTML
+ * tag that corresponds to each line, though the 'container' should still be the RichText container name. (Eg, in the core/list block, the tag is 'li'.)
+ * - When `$content_location` is 'html-attributes', the array should be formatted as `array( 'name' => array( 'tag', 'attribute') )`,
+ * where 'name' is the name of a particular value that different block types require, 'tag' is the name of the HTML tag where 'attribute'
+ * can be found, containing the value to use for 'name'. When `$type` is 'image', 'url' and 'alt' must be defined. When `$type` is 'video',
+ * 'url' must be defined.
+ * - When `$content_location` is 'block-attributes', it must be an array of block attribute names. When `$type` is 'embed', there
+ * only be one element, corresponding to the URL for the embed.
+ * @type string $template Required for 'text' and 'multiline' types, ignored for all other types. Describes how the block content will be formatted when tweeted.
+ * Tags should match the keys of `$content`, except for the special "{{content}}", which matches the entire HTML content of the block.
+ * For 'multiline' types, the template will be repeated for every line in the block.
+ * @type boolean $force_new Required. Whether or not a new tweet should be started when this block is encountered.
+ * @type boolean $force_finished Required. Whether or not a new tweet should be started after this block is finished.
+ * }
+ */
+ private static $supported_blocks = array(
+ 'core/embed' => array(
+ 'type' => 'embed',
+ 'content_location' => 'block-attributes',
+ 'content' => array( 'url' ),
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'core/gallery' => array(
+ 'type' => 'image',
+ 'content_location' => 'html-attributes',
+ 'content' => array(
+ 'url' => array( 'img', 'src' ),
+ 'alt' => array( 'img', 'alt' ),
+ ),
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'core/heading' => array(
+ 'type' => 'text',
+ 'content_location' => 'html',
+ 'content' => array(),
+ 'template' => '{{content}}',
+ 'force_new' => true,
+ 'force_finished' => false,
+ ),
+ 'core/image' => array(
+ 'type' => 'image',
+ 'content_location' => 'html-attributes',
+ 'content' => array(
+ 'url' => array( 'img', 'src' ),
+ 'alt' => array( 'img', 'alt' ),
+ ),
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'core/list' => array(
+ 'type' => 'multiline',
+ 'content_location' => 'html',
+ // It looks a little weird to use the 'values' key for a single line,
+ // but 'values' is the name of the RichText content area.
+ 'content' => array(
+ 'values' => 'li',
+ ),
+ 'template' => '- {{values}}',
+ 'force_new' => false,
+ 'force_finished' => false,
+ ),
+ 'core/paragraph' => array(
+ 'type' => 'text',
+ 'content_location' => 'html',
+ 'content' => array(),
+ 'template' => '{{content}}',
+ 'force_new' => false,
+ 'force_finished' => false,
+ ),
+ 'core/quote' => array(
+ 'type' => 'text',
+ 'content_location' => 'html',
+ // The quote content will always be inside <p> tags.
+ 'content' => array(
+ 'value' => 'p',
+ 'citation' => 'cite',
+ ),
+ 'template' => '“{{value}}” – {{citation}}',
+ 'force_new' => false,
+ 'force_finished' => false,
+ ),
+ 'core/separator' => array(
+ 'type' => 'break',
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'core/spacer' => array(
+ 'type' => 'break',
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'core/verse' => array(
+ 'type' => 'text',
+ 'content_location' => 'html',
+ 'content' => array(),
+ 'template' => '{{content}}',
+ 'force_new' => false,
+ 'force_finished' => false,
+ ),
+ 'core/video' => array(
+ 'type' => 'video',
+ 'content_location' => 'html-attributes',
+ 'content' => array(
+ 'url' => array( 'video', 'src' ),
+ ),
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ 'jetpack/gif' => array(
+ 'type' => 'embed',
+ 'content_location' => 'block-attributes',
+ 'content' => array( 'giphyUrl' ),
+ 'force_new' => false,
+ 'force_finished' => true,
+ ),
+ );
+
+ /**
+ * A cache of _wp_emoji_list( 'entities' ), after being run through html_entity_decode().
+ *
+ * Initialised in ::is_valid_tweet().
+ *
+ * @var array
+ */
+ private static $emoji_list = array();
+
+ /**
+ * Special line separator character, for multiline text.
+ *
+ * @var string
+ */
+ private static $line_separator = "\xE2\x80\xA8";
+
+ /**
+ * Special inline placeholder character, for inline tags that change content length in the RichText..
+ *
+ * @var string
+ */
+ private static $inline_placeholder = "\xE2\x81\xA3";
+
+ /**
+ * URLs always take up a fixed length from the text limit.
+ *
+ * @var int
+ */
+ private static $characters_per_url = 24;
+
+ /**
+ * Every media attachment takes up some space from the text limit.
+ *
+ * @var int
+ */
+ private static $characters_per_media = 24;
+
+ /**
+ * An array to store all the tweets in.
+ *
+ * @var array
+ */
+ private static $tweets = array();
+
+ /**
+ * While we're caching everything, we want to keep track of the URLs we're adding.
+ *
+ * @var array
+ */
+ private static $urls = array();
+
+ /**
+ * Gather the Tweetstorm.
+ *
+ * @param string $url The tweet URL to gather from.
+ * @return mixed
+ */
+ public static function gather( $url ) {
+ if ( ( new Status() )->is_offline_mode() ) {
+ return new WP_Error(
+ 'dev_mode',
+ __( 'Tweet unrolling is not available in offline mode.', 'jetpack' )
+ );
+ }
+
+ $site_id = self::get_site_id();
+ if ( is_wp_error( $site_id ) ) {
+ return $site_id;
+ }
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ if ( ! class_exists( 'WPCOM_Gather_Tweetstorm' ) ) {
+ \jetpack_require_lib( 'gather-tweetstorm' );
+ }
+
+ return WPCOM_Gather_Tweetstorm::gather( $url );
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/tweetstorm/gather?url=%s', $site_id, rawurlencode( $url ) ),
+ 2,
+ array( 'headers' => array( 'content-type' => 'application/json' ) ),
+ null,
+ 'wpcom'
+ );
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $data = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( wp_remote_retrieve_response_code( $response ) >= 400 ) {
+ return new WP_Error( $data->code, $data->message, $data->data );
+ }
+
+ return $data;
+ }
+
+ /**
+ * Parse blocks into an array of tweets.
+ *
+ * @param array $blocks {
+ * An array of blocks, with optional editor-specific information, that need to be parsed into tweets.
+ *
+ * @type array $block A single block, in the form produce by parse_blocks().
+ * @type array $attributes Optional. A list of block attributes and their values from the block editor.
+ * @type string $clientId Optional. The clientId of this block in the block editor.
+ * }
+ * @return array An array of tweets.
+ */
+ public static function parse( $blocks ) {
+ // Reset the tweets array.
+ self::$tweets = array();
+
+ $blocks = self::extract_blocks( $blocks );
+
+ if ( empty( $blocks ) ) {
+ return array();
+ }
+
+ // Initialise the tweets array with an empty tweet, so we don't need to check
+ // if we're creating the first tweet while processing blocks.
+ self::start_new_tweet();
+
+ foreach ( $blocks as $block ) {
+ $block_def = self::get_block_definition( $block['name'] );
+
+ // Grab the most recent tweet.
+ $current_tweet = self::get_current_tweet();
+
+ // Break blocks have no content to add, so we can skip the rest of this loop.
+ if ( 'break' === $block_def['type'] ) {
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // Check if we need to start a new tweet.
+ if ( $current_tweet['finished'] || $block_def['force_new'] ) {
+ self::start_new_tweet();
+ }
+
+ // Process the block.
+ self::add_text_to_tweets( $block );
+ self::add_media_to_tweets( $block );
+ self::add_tweet_to_tweets( $block );
+ self::add_embed_to_tweets( $block );
+ }
+
+ return self::clean_return_tweets();
+ }
+
+ /**
+ * If the passed block name is supported, return the block definition.
+ *
+ * @param string $block_name The registered block name.
+ * @return array|null The block definition, if it's supported.
+ */
+ private static function get_block_definition( $block_name ) {
+ if ( isset( self::$supported_blocks[ $block_name ] ) ) {
+ return self::$supported_blocks[ $block_name ];
+ }
+
+ return null;
+ }
+
+ /**
+ * If the block has any text, process it, and add it to the tweet list.
+ *
+ * @param array $block The block to process.
+ */
+ private static function add_text_to_tweets( $block ) {
+ // This is a text block, is there any text?
+ if ( 0 === strlen( $block['text'] ) ) {
+ return;
+ }
+
+ $block_def = self::get_block_definition( $block['name'] );
+
+ // Grab the most recent tweet, so we can append to that if we can.
+ $current_tweet = self::get_current_tweet();
+
+ // If the entire block can't be fit in this tweet, we need to start a new tweet.
+ if ( $current_tweet['changed'] && ! self::is_valid_tweet( trim( $current_tweet['text'] ) . "\n\n{$block['text']}" ) ) {
+ self::start_new_tweet();
+ }
+
+ // Multiline blocks prioritise splitting by line, but are otherwise identical to
+ // normal text blocks. This means we can treat normal text blocks as being
+ // "multiline", but with a single line.
+ if ( 'multiline' === $block_def['type'] ) {
+ $lines = explode( self::$line_separator, $block['text'] );
+ } else {
+ $lines = array( $block['text'] );
+ }
+ $line_total = count( $lines );
+
+ // Keep track of how many characters from this block we've allocated to tweets.
+ $current_character_count = 0;
+
+ for ( $line_count = 0; $line_count < $line_total; $line_count++ ) {
+ $line_text = $lines[ $line_count ];
+
+ // Make sure we have the most recent tweet at the start of every loop.
+ $current_tweet = self::get_current_tweet();
+
+ if ( $current_tweet['changed'] ) {
+ // When it's the first line, add an extra blank line to seperate
+ // the tweet text from that of the previous block.
+ $separator = "\n\n";
+ if ( $line_count > 0 ) {
+ $separator = "\n";
+ }
+
+ // Is this line short enough to append to the current tweet?
+ if ( self::is_valid_tweet( trim( $current_tweet['text'] ) . "$separator$line_text" ) ) {
+ // Don't trim the text yet, as we may need it for boundary calculations.
+ $current_tweet['text'] = $current_tweet['text'] . "$separator$line_text";
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // This line is too long, and lines *must* be split to a new tweet if they don't fit
+ // into the current tweet. If this isn't the first line, record where we split the block.
+ if ( $line_count > 0 ) {
+ // Increment by 1 to allow for the \n between lines to be counted by ::get_boundary().
+ $current_character_count += strlen( $current_tweet['text'] ) + 1;
+ $current_tweet['boundary'] = self::get_boundary( $block, $current_character_count );
+
+ self::save_current_tweet( $current_tweet );
+ }
+
+ // Start a new tweet.
+ $current_tweet = self::start_new_tweet();
+ }
+
+ // Since we're now at the start of a new tweet, is this line short enough to be a tweet by itself?
+ if ( self::is_valid_tweet( $line_text ) ) {
+ $current_tweet['text'] = $line_text;
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // The line is too long for a single tweet, so split it by sentences, or linebreaks.
+ $sentences = preg_split( '/(?|(?<!\.\.\.)(?<=[.?!]|\.\)|\.["\'])(\s+)(?=[\p{L}\'"\(])|(\n+))/u', $line_text, -1, PREG_SPLIT_DELIM_CAPTURE );
+ $sentence_total = count( $sentences );
+
+ // preg_split() puts the blank space between sentences into a seperate entry in the result,
+ // so we need to step through the result array by two, and append the blank space when needed.
+ for ( $sentence_count = 0; $sentence_count < $sentence_total; $sentence_count += 2 ) {
+ $current_sentence = $sentences[ $sentence_count ];
+ if ( isset( $sentences[ $sentence_count + 1 ] ) ) {
+ $current_sentence .= $sentences[ $sentence_count + 1 ];
+ }
+
+ // Make sure we have the most recent tweet.
+ $current_tweet = self::get_current_tweet();
+
+ // After the first sentence, we can try and append sentences to the previous sentence.
+ if ( $current_tweet['changed'] && $sentence_count > 0 ) {
+ // Is this sentence short enough for appending to the current tweet?
+ if ( self::is_valid_tweet( $current_tweet['text'] . rtrim( $current_sentence ) ) ) {
+ $current_tweet['text'] .= $current_sentence;
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+ }
+
+ // Will this sentence fit in its own tweet?
+ if ( self::is_valid_tweet( trim( $current_sentence ) ) ) {
+ if ( $current_tweet['changed'] ) {
+ // If we're already in the middle of a block, record the boundary
+ // before creating a new tweet.
+ if ( $line_count > 0 || $sentence_count > 0 ) {
+ $current_character_count += strlen( $current_tweet['text'] );
+ $current_tweet['boundary'] = self::get_boundary( $block, $current_character_count );
+
+ self::save_current_tweet( $current_tweet );
+ }
+
+ $current_tweet = self::start_new_tweet();
+ }
+ $current_tweet['text'] = $current_sentence;
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // This long sentence will start the next tweet that this block is going
+ // to be turned into, so we need to record the boundary and start a new tweet.
+ if ( $current_tweet['changed'] ) {
+ $current_character_count += strlen( $current_tweet['text'] );
+ $current_tweet['boundary'] = self::get_boundary( $block, $current_character_count );
+
+ self::save_current_tweet( $current_tweet );
+
+ $current_tweet = self::start_new_tweet();
+ }
+
+ // Split the long sentence into words.
+ $words = preg_split( '/(\p{Z})/u', $current_sentence, -1, PREG_SPLIT_DELIM_CAPTURE );
+ $word_total = count( $words );
+ for ( $word_count = 0; $word_count < $word_total; $word_count += 2 ) {
+ // Make sure we have the most recent tweet.
+ $current_tweet = self::get_current_tweet();
+
+ // If we're on a new tweet, we don't want to add a space at the start.
+ if ( ! $current_tweet['changed'] ) {
+ $current_tweet['text'] = $words[ $word_count ];
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // Can we add this word to the current tweet?
+ if ( self::is_valid_tweet( "{$current_tweet['text']} {$words[ $word_count ]}…" ) ) {
+ $space = isset( $words[ $word_count - 1 ] ) ? $words[ $word_count - 1 ] : ' ';
+
+ $current_tweet['text'] .= $space . $words[ $word_count ];
+
+ self::save_current_tweet( $current_tweet, $block );
+ continue;
+ }
+
+ // Add one for the space character that we won't include in the tweet text.
+ $current_character_count += strlen( $current_tweet['text'] ) + 1;
+
+ // We're starting a new tweet with this word. Append ellipsis to
+ // the current tweet, then move on.
+ $current_tweet['text'] .= '…';
+
+ $current_tweet['boundary'] = self::get_boundary( $block, $current_character_count );
+ self::save_current_tweet( $current_tweet );
+
+ $current_tweet = self::start_new_tweet();
+
+ // If this is the second tweet created by the split sentence, it'll start
+ // with ellipsis, which we don't want to count, but we do want to count the space
+ // that was replaced by this ellipsis.
+ $current_tweet['text'] = "…{$words[ $word_count ]}";
+ $current_character_count -= strlen( '…' );
+
+ self::save_current_tweet( $current_tweet, $block );
+ }
+ }
+ }
+ }
+
+ /**
+ * Check if the block has any media to add, and add it.
+ *
+ * @param array $block The block to process.
+ */
+ private static function add_media_to_tweets( $block ) {
+ // There's some media to attach!
+ $media_count = count( $block['media'] );
+ if ( 0 === $media_count ) {
+ return;
+ }
+
+ $current_tweet = self::get_current_tweet();
+
+ // We can only attach media to the previous tweet if the previous tweet
+ // doesn't already have media.
+ if ( count( $current_tweet['media'] ) > 0 ) {
+ $current_tweet = self::start_new_tweet();
+ }
+
+ // Would adding this media make the text of the previous tweet too long?
+ if ( ! self::is_valid_tweet( $current_tweet['text'], $media_count * self::$characters_per_media ) ) {
+ $current_tweet = self::start_new_tweet();
+ }
+
+ $media = array_values(
+ array_filter(
+ $block['media'],
+ function ( $single ) {
+ // Only images and videos can be uploaded.
+ if ( 0 === strpos( $single['type'], 'image/' ) || 0 === strpos( $single['type'], 'video/' ) ) {
+ return true;
+ }
+
+ return false;
+ }
+ )
+ );
+
+ if ( count( $media ) > 0 ) {
+ if ( 0 === strpos( $media[0]['type'], 'video/' ) || 'image/gif' === $media[0]['type'] ) {
+ // We can only attach a single video or GIF.
+ $current_tweet['media'] = array_slice( $media, 0, 1 );
+ } else {
+ // Since a GIF or video isn't the first element, we can remove all of them from the array.
+ $filtered_media = array_values(
+ array_filter(
+ $media,
+ function ( $single ) {
+ if ( 0 === strpos( $single['type'], 'video/' ) || 'image/gif' === $single['type'] ) {
+ return false;
+ }
+
+ return true;
+ }
+ )
+ );
+ // We can only add the first four images found to the tweet.
+ $current_tweet['media'] = array_slice( $filtered_media, 0, 4 );
+ }
+
+ self::save_current_tweet( $current_tweet, $block );
+ }
+ }
+
+ /**
+ * Check if the block has a tweet that we can attach to the current tweet as a quote, and add it.
+ *
+ * @param array $block The block to process.
+ */
+ private static function add_tweet_to_tweets( $block ) {
+ if ( 0 === strlen( $block['tweet'] ) ) {
+ return;
+ }
+
+ $current_tweet = self::get_current_tweet();
+
+ // We can only attach a tweet to the previous tweet if the previous tweet
+ // doesn't already have a tweet quoted.
+ if ( strlen( $current_tweet['tweet'] ) > 0 ) {
+ $current_tweet = self::start_new_tweet();
+ }
+
+ $current_tweet['tweet'] = $block['tweet'];
+
+ self::save_current_tweet( $current_tweet, $block );
+ }
+
+ /**
+ * Check if the block has an embed URL that we can append to the current tweet text.
+ *
+ * @param array $block The block to process.
+ */
+ private static function add_embed_to_tweets( $block ) {
+ if ( 0 === strlen( $block['embed'] ) ) {
+ return;
+ }
+
+ $current_tweet = self::get_current_tweet();
+
+ $reserved_characters = count( $current_tweet['media'] ) * self::$characters_per_media;
+ $reserved_characters += 1 + self::$characters_per_url;
+
+ // We can only attach an embed to the previous tweet if it doesn't already
+ // have any URLs in it. Also, we can't attach it if it'll make the tweet too long.
+ if ( preg_match( '/url-placeholder-\d+-*/', $current_tweet['text'] ) || ! self::is_valid_tweet( $current_tweet['text'], $reserved_characters ) ) {
+ $current_tweet = self::start_new_tweet();
+ $current_tweet['text'] = self::generate_url_placeholder( $block['embed'] );
+ } else {
+ $space = empty( $current_tweet['text'] ) ? '' : ' ';
+ $current_tweet['text'] .= $space . self::generate_url_placeholder( $block['embed'] );
+ }
+
+ self::save_current_tweet( $current_tweet, $block );
+ }
+
+ /**
+ * Given an array of blocks and optional editor information, this will extract them into
+ * the internal representation used during parsing.
+ *
+ * @param array $blocks An array of blocks and optional editor-related information.
+ * @return array An array of blocks, in our internal representation.
+ */
+ private static function extract_blocks( $blocks ) {
+ if ( empty( $blocks ) ) {
+ return array();
+ }
+
+ $block_count = count( $blocks );
+
+ for ( $ii = 0; $ii < $block_count; $ii++ ) {
+ if ( ! self::get_block_definition( $blocks[ $ii ]['block']['blockName'] ) ) {
+ unset( $blocks[ $ii ] );
+ continue;
+ }
+
+ $blocks[ $ii ]['name'] = $blocks[ $ii ]['block']['blockName'];
+ $blocks[ $ii ]['text'] = self::extract_text_from_block( $blocks[ $ii ]['block'] );
+ $blocks[ $ii ]['media'] = self::extract_media_from_block( $blocks[ $ii ]['block'] );
+ $blocks[ $ii ]['tweet'] = self::extract_tweet_from_block( $blocks[ $ii ]['block'] );
+ $blocks[ $ii ]['embed'] = self::extract_embed_from_block( $blocks[ $ii ]['block'] );
+ }
+
+ return array_values( $blocks );
+ }
+
+ /**
+ * Creates a blank tweet, appends it to the tweets array, and returns the tweet.
+ *
+ * @return array The blank tweet.
+ */
+ private static function start_new_tweet() {
+ self::$tweets[] = array(
+ // An array of blocks that make up this tweet.
+ 'blocks' => array(),
+ // If this tweet only contains part of a block, the boundary contains
+ // information about where in the block the tweet ends.
+ 'boundary' => false,
+ // The text content of the tweet.
+ 'text' => '',
+ // The media content of the tweet.
+ 'media' => array(),
+ // The quoted tweet in this tweet.
+ 'tweet' => '',
+ // Some blocks force a hard finish to the tweet, even if subsequent blocks
+ // could technically be appended. This flag shows when a tweet is finished.
+ 'finished' => false,
+ // Flag if the current tweet already has content in it.
+ 'changed' => false,
+ );
+
+ return self::get_current_tweet();
+ }
+
+ /**
+ * Get the last tweet in the array.
+ *
+ * @return array The tweet.
+ */
+ private static function get_current_tweet() {
+ return end( self::$tweets );
+ }
+
+ /**
+ * Saves the passed tweet array as the last tweet, overwriting the former last tweet.
+ *
+ * This method adds some last minute checks: marking the tweet as "changed", as well
+ * as adding the $block to the tweet (if it was passed, and hasn't already been added).
+ *
+ * @param array $tweet The tweet being stored.
+ * @param array $block Optional. The block that was used to modify this tweet.
+ * @return array The saved tweet, after the last minute checks have been done.
+ */
+ private static function save_current_tweet( $tweet, $block = null ) {
+ $tweet['changed'] = true;
+
+ if ( isset( $block ) ) {
+ $block_def = self::get_block_definition( $block['name'] );
+
+ // Check if this block type will be forcing a new tweet.
+ if ( $block_def['force_finished'] ) {
+ $tweet['finished'] = true;
+ }
+
+ // Check if this block is already recorded against this tweet.
+ $last_block = end( $tweet['blocks'] );
+ if ( isset( $block['clientId'] ) && ( false === $last_block || $last_block['clientId'] !== $block['clientId'] ) ) {
+ $tweet['blocks'][] = $block;
+ }
+ }
+
+ // Find the index of the last tweet in the array.
+ end( self::$tweets );
+ $tweet_index = key( self::$tweets );
+
+ self::$tweets[ $tweet_index ] = $tweet;
+
+ return $tweet;
+ }
+
+ /**
+ * Checks if the passed text is valid for a tweet or not.
+ *
+ * @param string $text The text to check.
+ * @param int $reserved_characters Optional. The number of characters to reduce the maximum tweet length by.
+ * @return bool Whether or not the text is valid.
+ */
+ private static function is_valid_tweet( $text, $reserved_characters = 0 ) {
+ return self::is_within_twitter_length( $text, 280 - $reserved_characters );
+ }
+
+ /**
+ * Checks if the passed text is valid for image alt text.
+ *
+ * @param string $text The text to check.
+ * @return bool Whether or not the text is valid.
+ */
+ private static function is_valid_alt_text( $text ) {
+ return self::is_within_twitter_length( $text, 1000 );
+ }
+
+ /**
+ * Check if a string is shorter than a given length, according to Twitter's rules for counting string length.
+ *
+ * @param string $text The text to check.
+ * @param int $max_length The number of characters long this string can be.
+ * @return bool Whether or not the string is no longer than the length limit.
+ */
+ private static function is_within_twitter_length( $text, $max_length ) {
+ // Replace all multiline separators with a \n, since that's the
+ // character we actually want to count.
+ $text = str_replace( self::$line_separator, "\n", $text );
+
+ // Keep a running total of characters we've removed.
+ $stripped_characters = 0;
+
+ // Since we use '…' a lot, strip it out, so we can still use the ASCII checks.
+ $ellipsis_count = 0;
+ $text = str_replace( '…', '', $text, $ellipsis_count );
+
+ // The ellipsis glyph counts for two characters.
+ $stripped_characters += $ellipsis_count * 2;
+
+ // Try filtering out emoji first, since ASCII text + emoji is a relatively common case.
+ if ( ! self::is_ascii( $text ) ) {
+ // Initialise the emoji cache.
+ if ( 0 === count( self::$emoji_list ) ) {
+ self::$emoji_list = array_map( 'html_entity_decode', _wp_emoji_list( 'entities' ) );
+ }
+
+ $emoji_count = 0;
+ $text = str_replace( self::$emoji_list, '', $text, $emoji_count );
+
+ // Emoji graphemes count as 2 characters each.
+ $stripped_characters += $emoji_count * 2;
+ }
+
+ if ( self::is_ascii( $text ) ) {
+ $stripped_characters += strlen( $text );
+ if ( $stripped_characters <= $max_length ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ // Remove any glyphs that count as 1 character.
+ // Source: https://github.com/twitter/twitter-text/blob/master/config/v3.json .
+ // Note that the source ranges are in decimal, the regex ranges are converted to hex.
+ $single_character_count = 0;
+ $text = preg_replace( '/[\x{0000}-\x{10FF}\x{2000}-\x{200D}\x{2010}-\x{201F}\x{2032}-\x{2037}]/uS', '', $text, -1, $single_character_count );
+
+ $stripped_characters += $single_character_count;
+
+ // Check if there's any text we haven't counted yet.
+ // Any remaining glyphs count as 2 characters each.
+ if ( 0 !== strlen( $text ) ) {
+ // WP provides a compat version of mb_strlen(), no need to check if it exists.
+ $stripped_characters += mb_strlen( $text, 'UTF-8' ) * 2;
+ }
+
+ if ( $stripped_characters <= $max_length ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if a string only contains ASCII characters.
+ *
+ * @param string $text The string to check.
+ * @return bool Whether or not the string is ASCII-only.
+ */
+ private static function is_ascii( $text ) {
+ if ( function_exists( 'mb_check_encoding' ) ) {
+ if ( mb_check_encoding( $text, 'ASCII' ) ) {
+ return true;
+ }
+ } elseif ( ! preg_match( '/[^\x00-\x7F]/', $text ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * A block will generate a certain amount of text to be inserted into a tweet. If that text is too
+ * long for a tweet, we already know where the text will be split when it's published as tweet, but
+ * we need to calculate where that corresponds to in the block edit UI.
+ *
+ * The tweet template for that block may add extra characters, extra characters are added for URL
+ * placeholders, and the block may contain multiple RichText areas (corresponding to attributes),
+ * so we need to keep track of both until the this function calculates which attribute area (in the
+ * block editor, the richTextIdentifier) that offset corresponds to, and how far into that attribute
+ * area it is.
+ *
+ * @param array $block The block being checked.
+ * @param integer $offset The position in the tweet text where it will be split.
+ * @return array|false `false` if the boundary can't be determined. Otherwise, returns the
+ * position in the block editor to insert the tweet boundary annotation.
+ */
+ private static function get_boundary( $block, $offset ) {
+ // If we don't have a clientId, there's no point in generating a boundary, since this
+ // parse request doesn't have a way to map blocks back to editor UI.
+ if ( ! isset( $block['clientId'] ) ) {
+ return false;
+ }
+
+ $block_def = self::get_block_definition( $block['name'] );
+
+ if ( isset( $block_def['content'] ) && count( $block_def['content'] ) > 0 ) {
+ $tags = $block_def['content'];
+ } else {
+ $tags = array( 'content' );
+ }
+
+ $tag_content = self::extract_tag_content_from_html( $tags, $block['block']['innerHTML'] );
+
+ // $tag_content is split up by tag first, then lines. We want to remap it to split it by lines
+ // first, then tag.
+ $lines = array();
+ foreach ( $tag_content as $tag => $content ) {
+ if ( 'content' === $tag ) {
+ $attribute_name = 'content';
+ } else {
+ $attribute_name = array_search( $tag, $block_def['content'], true );
+ }
+
+ foreach ( $content as $id => $content_string ) {
+ // Multiline blocks can have multiple lines, but other blocks will always only have 1.
+ if ( 'multiline' === $block_def['type'] ) {
+ $line_number = $id;
+ } else {
+ $line_number = 0;
+ }
+
+ if ( ! isset( $lines[ $line_number ] ) ) {
+ $lines[ $line_number ] = array();
+ }
+
+ if ( ! isset( $lines[ $line_number ][ $attribute_name ] ) ) {
+ // For multiline blocks, or the first time this attribute has been encountered
+ // in single line blocks, assign the string to the line/attribute.
+ $lines[ $line_number ][ $attribute_name ] = $content_string;
+ } else {
+ // For subsequent times this line/attribute is encountered (only in single line blocks),
+ // append the string with a line break.
+ $lines[ $line_number ][ $attribute_name ] .= "\n$content_string";
+ }
+ }
+ }
+
+ $line_count = count( $lines );
+
+ $template_parts = preg_split( '/({{\w+}})/', $block_def['template'], -1, PREG_SPLIT_DELIM_CAPTURE );
+
+ // Keep track of the total number of bytes we've processed from this block.
+ $total_bytes_processed = 0;
+
+ // Keep track of the number of characters that the processed data translates to in the editor.
+ $characters_processed = 0;
+
+ foreach ( $lines as $line_number => $line ) {
+ // Add up the length of all the parts of this line.
+ $line_byte_total = array_sum( array_map( 'strlen', $line ) );
+
+ if ( $line_byte_total > 0 ) {
+ // We have something to use in the template, so loop over each part of the template, and count it.
+ foreach ( $template_parts as $template_part ) {
+ $matches = array();
+ if ( preg_match( '/{{(\w+)}}/', $template_part, $matches ) ) {
+ $part_name = $matches[1];
+
+ $line_part_data = $line[ $part_name ];
+ $line_part_bytes = strlen( $line_part_data );
+
+ $cleaned_line_part_data = preg_replace( '/ \(url-placeholder-\d+-*\)/', '', $line_part_data );
+
+ $cleaned_line_part_data = preg_replace_callback(
+ '/url-placeholder-(\d+)-*/',
+ function ( $matches ) {
+ return self::$urls[ $matches[1] ];
+ },
+ $cleaned_line_part_data
+ );
+
+ if ( $total_bytes_processed + $line_part_bytes >= $offset ) {
+ // We know that the offset is somewhere inside this part of the tweet, but we need to remove the length
+ // of any URL placeholders that appear before the boundary, to be able to calculate the correct attribute offset.
+
+ // $total_bytes_processed is the sum of everything we've processed so far, (including previous parts)
+ // on this line. This makes it relatively easy to calculate the number of bytes into this part
+ // that the boundary will occur.
+ $line_part_byte_boundary = $offset - $total_bytes_processed;
+
+ // Grab the data from this line part that appears before the boundary.
+ $line_part_pre_boundary_data = substr( $line_part_data, 0, $line_part_byte_boundary );
+
+ // Remove any URL placeholders, since these aren't shown in the editor.
+ $line_part_pre_boundary_data = preg_replace( '/ \(url-placeholder-\d+-*\)/', '', $line_part_pre_boundary_data );
+
+ $line_part_pre_boundary_data = preg_replace_callback(
+ '/url-placeholder-(\d+)-*/',
+ function ( $matches ) {
+ return self::$urls[ $matches[1] ];
+ },
+ $line_part_pre_boundary_data
+ );
+
+ $boundary_start = self::utf_16_code_unit_length( $line_part_pre_boundary_data ) - 1;
+
+ // Multiline blocks need to offset for the characters that are in the same content area,
+ // but which were counted on previous lines.
+ if ( 'multiline' === $block_def['type'] ) {
+ $boundary_start += $characters_processed;
+ }
+
+ // Check if the boundary is happening on a line break or a space.
+ if ( "\n" === $line_part_data[ $line_part_byte_boundary - 1 ] ) {
+ $type = 'line-break';
+
+ // A line break boundary can actually be multiple consecutive line breaks,
+ // count them all up so we know how big the annotation needs to be.
+ $matches = array();
+ preg_match( '/\n+$/', substr( $line_part_data, 0, $line_part_byte_boundary ), $matches );
+ $boundary_end = $boundary_start + 1;
+ $boundary_start -= strlen( $matches[0] ) - 1;
+ } else {
+ $type = 'normal';
+ $boundary_end = $boundary_start + 1;
+ }
+
+ return array(
+ 'start' => $boundary_start,
+ 'end' => $boundary_end,
+ 'container' => $part_name,
+ 'type' => $type,
+ );
+ } else {
+ $total_bytes_processed += $line_part_bytes;
+ $characters_processed += self::utf_16_code_unit_length( $cleaned_line_part_data );
+ continue;
+ }
+ } else {
+ $total_bytes_processed += strlen( $template_part );
+ }
+ }
+
+ // Are we breaking at the end of this line?
+ if ( $total_bytes_processed + 1 === $offset && $line_count > 1 ) {
+ reset( $block_def['content'] );
+ $container = key( $block_def['content'] );
+ return array(
+ 'line' => $line_number,
+ 'container' => $container,
+ 'type' => 'end-of-line',
+ );
+ }
+
+ // The newline at the end of each line is 1 byte, but we don't need to count empty lines.
+ $total_bytes_processed++;
+ }
+
+ // We do need to count empty lines in the editor, since they'll be displayed.
+ $characters_processed++;
+ }
+
+ return false;
+ }
+
+ /**
+ * JavaScript uses UTF-16 for encoding strings, which means we need to provide UTF-16
+ * based offsets for the block editor to render tweet boundaries in the correct location.
+ *
+ * UTF-16 is a variable-width character encoding: every code unit is 2 bytes, a single character
+ * can be one or two code units long. Fortunately for us, JavaScript's String.charAt() is based
+ * on the older UCS-2 character encoding, which only counts single code units. PHP's strlen()
+ * counts a code unit as being 2 characters, so once a string is converted to UTF-16, we have
+ * a fast way to determine how long it is in UTF-16 code units.
+ *
+ * @param string $text The natively encoded string to get the length of.
+ * @return int The length of the string in UTF-16 code units. Returns -1 if the length could not
+ * be calculated.
+ */
+ private static function utf_16_code_unit_length( $text ) {
+ // If mb_convert_encoding() exists, we can use that for conversion.
+ if ( function_exists( 'mb_convert_encoding' ) ) {
+ // UTF-16 can add an additional code unit to the start of the string, called the
+ // Byte Order Mark (BOM), which indicates whether the string is encoding as
+ // big-endian, or little-endian. Since we don't want to count code unit, and the endianness
+ // doesn't matter for our purposes, using PHP's UTF-16BE encoding uses big-endian
+ // encoding, and ensures the BOM *won't* be prepended to the string to the string.
+ return strlen( mb_convert_encoding( $text, 'UTF-16BE' ) ) / 2;
+ }
+
+ // If we can't convert this string, return a result that will avoid an incorrect annotation being added.
+ return -1;
+ }
+
+ /**
+ * Extracts the tweetable text from a block.
+ *
+ * @param array $block A single block, as generated by parse_block().
+ * @return string The tweetable text from the block, in the correct template form.
+ */
+ private static function extract_text_from_block( $block ) {
+ // If the block doesn't have an innerHTMl, we're not going to get any text.
+ if ( empty( $block['innerHTML'] ) ) {
+ return '';
+ }
+
+ $block_def = self::get_block_definition( $block['blockName'] );
+
+ // We currently only support extracting text from HTML text nodes.
+ if ( ! isset( $block_def['content_location'] ) || 'html' !== $block_def['content_location'] ) {
+ return '';
+ }
+
+ // Find out which tags we need to extract content from.
+ if ( isset( $block_def['content'] ) && count( $block_def['content'] ) > 0 ) {
+ $tags = $block_def['content'];
+ } else {
+ $tags = array( 'content' );
+ }
+
+ $tag_values = self::extract_tag_content_from_html( $tags, $block['innerHTML'] );
+
+ // We can treat single line blocks as "multiline", with only one line in them.
+ $lines = array();
+ foreach ( $tag_values as $tag => $values ) {
+ // For single-line blocks, we need to squash all the values for this tag into a single value.
+ if ( 'multiline' !== $block_def['type'] ) {
+ $values = array( implode( "\n", $values ) );
+ }
+
+ // Handle the special "content" tag.
+ if ( 'content' === $tag ) {
+ $placeholder = 'content';
+ } else {
+ $placeholder = array_search( $tag, $block_def['content'], true );
+ }
+
+ // Loop over each instance of this value, appling that value to the corresponding line template.
+ foreach ( $values as $line_number => $value ) {
+ if ( ! isset( $lines[ $line_number ] ) ) {
+ $lines[ $line_number ] = $block_def['template'];
+ }
+
+ $lines[ $line_number ] = str_replace( '{{' . $placeholder . '}}', $value, $lines[ $line_number ] );
+ }
+ }
+
+ // Remove any lines that didn't apply any content.
+ $empty_template = preg_replace( '/{{.*?}}/', '', $block_def['template'] );
+ $lines = array_filter(
+ $lines,
+ function ( $line ) use ( $empty_template ) {
+ return $line !== $empty_template;
+ }
+ );
+
+ // Join the lines together into a single string.
+ $text = implode( self::$line_separator, $lines );
+
+ // Trim off any trailing whitespace that we no longer need.
+ $text = preg_replace( '/(\s|' . self::$line_separator . ')+$/u', '', $text );
+
+ return $text;
+ }
+
+ /**
+ * Extracts the tweetable media from a block.
+ *
+ * @param array $block A single block, as generated by parse_block().
+ * @return array {
+ * An array of media.
+ *
+ * @type string url The URL of the media.
+ * @type string alt The alt text of the media.
+ * }
+ */
+ private static function extract_media_from_block( $block ) {
+ $block_def = self::get_block_definition( $block['blockName'] );
+
+ $media = array();
+
+ if ( 'image' === $block_def['type'] ) {
+ $url = self::extract_attr_content_from_html(
+ $block_def['content']['url'][0],
+ $block_def['content']['url'][1],
+ $block['innerHTML']
+ );
+ $alt = self::extract_attr_content_from_html(
+ $block_def['content']['alt'][0],
+ $block_def['content']['alt'][1],
+ $block['innerHTML']
+ );
+
+ $img_count = count( $url );
+
+ for ( $ii = 0; $ii < $img_count; $ii++ ) {
+ $filedata = wp_check_filetype( basename( wp_parse_url( $url[ $ii ], PHP_URL_PATH ) ) );
+
+ $media[] = array(
+ 'url' => $url[ $ii ],
+ 'alt' => self::is_valid_alt_text( $alt[ $ii ] ) ? $alt[ $ii ] : '',
+ 'type' => $filedata['type'],
+ );
+ }
+ } elseif ( 'video' === $block_def['type'] ) {
+ // Handle VideoPress videos.
+ if ( isset( $block['attrs']['src'] ) && 0 === strpos( $block['attrs']['src'], 'https://videos.files.wordpress.com/' ) ) {
+ $url = array( $block['attrs']['src'] );
+ } else {
+ $url = self::extract_attr_content_from_html(
+ $block_def['content']['url'][0],
+ $block_def['content']['url'][1],
+ $block['innerHTML']
+ );
+ }
+
+ // We can only ever use the first video found, no need to go through all of them.
+ if ( count( $url ) > 0 ) {
+ $filedata = wp_check_filetype( basename( wp_parse_url( $url[0], PHP_URL_PATH ) ) );
+
+ $media[] = array(
+ 'url' => $url[0],
+ 'type' => $filedata['type'],
+ );
+ }
+ }
+
+ return $media;
+ }
+
+ /**
+ * Extracts the tweet URL from a Twitter embed block.
+ *
+ * @param array $block A single block, as generated by parse_block().
+ * @return string The tweet URL. Empty string if there is none available.
+ */
+ private static function extract_tweet_from_block( $block ) {
+ if (
+ 'core/embed' === $block['blockName']
+ && ( isset( $block['attrs']['providerNameSlug'] ) && 'twitter' === $block['attrs']['providerNameSlug'] )
+ ) {
+ return $block['attrs']['url'];
+ }
+
+ return '';
+ }
+
+ /**
+ * Extracts URL from an embed block.
+ *
+ * @param array $block A single block, as generated by parse_block().
+ * @return string The URL. Empty string if there is none available.
+ */
+ private static function extract_embed_from_block( $block ) {
+ $block_def = self::get_block_definition( $block['blockName'] );
+
+ if ( 'embed' !== $block_def['type'] ) {
+ return '';
+ }
+
+ // Twitter embeds are handled in ::extract_tweet_from_block().
+ if (
+ 'core/embed' === $block['blockName']
+ && ( isset( $block['attrs']['providerNameSlug'] ) && 'twitter' === $block['attrs']['providerNameSlug'] )
+ ) {
+ return '';
+ }
+
+ $url = '';
+ if ( 'block-attributes' === $block_def['content_location'] ) {
+ $url = $block['attrs'][ $block_def['content'][0] ];
+ }
+
+ if ( 'jetpack/gif' === $block['blockName'] ) {
+ $url = str_replace( '/embed/', '/gifs/', $url );
+ }
+
+ return $url;
+ }
+
+ /**
+ * There's a bunch of left-over cruft in the tweets array that we don't need to return. Removing
+ * it helps keep the size of the data down.
+ */
+ private static function clean_return_tweets() {
+ // Before we return, clean out unnecessary cruft from the return data.
+ $tweets = array_map(
+ function ( $tweet ) {
+ // Remove tweets that don't have anything saved in them. eg, if the last block is a
+ // header with no text, it'll force a new tweet, but we won't end up putting anything
+ // in that tweet.
+ if ( ! $tweet['changed'] ) {
+ return false;
+ }
+
+ // Replace any URL placeholders that appear in the text.
+ $tweet['urls'] = array();
+ foreach ( self::$urls as $id => $url ) {
+ $count = 0;
+
+ $tweet['text'] = str_replace( str_pad( "url-placeholder-$id", self::$characters_per_url, '-' ), $url, $tweet['text'], $count );
+
+ // If we found a URL, keep track of it for the editor.
+ if ( $count > 0 ) {
+ $tweet['urls'][] = $url;
+ }
+ }
+
+ // Remove any inline placeholders.
+ $tweet['text'] = str_replace( self::$inline_placeholder, '', $tweet['text'] );
+
+ // If the tweet text consists only of whitespace, we can remove all of it.
+ if ( preg_match( '/^\s*$/u', $tweet['text'] ) ) {
+ $tweet['text'] = '';
+ }
+
+ // Remove trailing whitespace from every line.
+ $tweet['text'] = preg_replace( '/\p{Z}+$/um', '', $tweet['text'] );
+
+ // Remove all trailing whitespace (including line breaks) from the end of the text.
+ $tweet['text'] = rtrim( $tweet['text'] );
+
+ // Remove internal flags.
+ unset( $tweet['changed'] );
+ unset( $tweet['finished'] );
+
+ // Remove bulky block data.
+ if ( ! isset( $tweet['blocks'][0]['attributes'] ) && ! isset( $tweet['blocks'][0]['clientId'] ) ) {
+ $tweet['blocks'] = array();
+ } else {
+ // Remove the parts of the block data that the editor doesn't need.
+ $block_count = count( $tweet['blocks'] );
+ for ( $ii = 0; $ii < $block_count; $ii++ ) {
+ $keys = array_keys( $tweet['blocks'][ $ii ] );
+ foreach ( $keys as $key ) {
+ // The editor only needs these attributes, everything else will be unset.
+ if ( in_array( $key, array( 'attributes', 'clientId' ), true ) ) {
+ continue;
+ }
+
+ unset( $tweet['blocks'][ $ii ][ $key ] );
+ }
+ }
+ }
+
+ // Once we've finished cleaning up, check if there's anything left to be tweeted.
+ if ( empty( $tweet['text'] ) && empty( $tweet['media'] ) && empty( $tweet['tweet'] ) ) {
+ return false;
+ }
+
+ return $tweet;
+ },
+ self::$tweets
+ );
+
+ // Clean any removed tweets out of the result.
+ return array_values( array_filter( $tweets, 'is_array' ) );
+ }
+
+ /**
+ * Given a list of tags and a HTML blob, this will extract the text content inside
+ * each of the given tags.
+ *
+ * @param array $tags An array of tag names.
+ * @param string $html A blob of HTML.
+ * @return array An array of the extract content. The keys in the array are the $tags,
+ * each value is an array. The value array is indexed in the same order as the tag
+ * appears in the HTML blob, including nested tags.
+ */
+ private static function extract_tag_content_from_html( $tags, $html ) {
+ // Serialised blocks will sometimes wrap the innerHTML in newlines, but those newlines
+ // are removed when innerHTML is parsed into an attribute. Remove them so we're working
+ // with the same information.
+ if ( "\n" === $html[0] && "\n" === $html[ strlen( $html ) - 1 ] ) {
+ $html = substr( $html, 1, strlen( $html ) - 2 );
+ }
+
+ // Normalise <br>.
+ $html = preg_replace( '/<br\s*\/?>/', '<br>', $html );
+
+ // If there were no tags passed, assume the entire text is required.
+ if ( empty( $tags ) ) {
+ $tags = array( 'content' );
+ }
+
+ $values = array();
+
+ $tokens = wp_html_split( $html );
+
+ $validator = new Twitter_Validator();
+
+ foreach ( $tags as $tag ) {
+ $values[ $tag ] = array();
+
+ // Since tags can be nested, keeping track of the nesting level allows
+ // us to extract nested content into a flat array.
+ if ( 'content' === $tag ) {
+ // The special "content" tag means we should store the entire content,
+ // so assume the tag is open from the beginning.
+ $opened = 0;
+ $closed = -1;
+
+ $values['content'][0] = '';
+ } else {
+ $opened = -1;
+ $closed = -1;
+ }
+
+ // When we come across a URL, we need to keep track of it, so it can then be inserted
+ // in the right place.
+ $current_url = '';
+ foreach ( $tokens as $token ) {
+ if ( 0 === strlen( $token ) ) {
+ // Skip any empty tokens.
+ continue;
+ }
+
+ // If we're currently storing content, check if it's a text-formatting
+ // tag that we should apply.
+ if ( $opened !== $closed ) {
+ // End of a paragraph, put in some newlines (as long as we're not extracting paragraphs).
+ if ( '</p>' === $token && 'p' !== $tag ) {
+ $values[ $tag ][ $opened ] .= "\n\n";
+ }
+
+ // A line break gets one newline.
+ if ( '<br>' === $token ) {
+ $values[ $tag ][ $opened ] .= "\n";
+ }
+
+ // A link has opened, grab the URL for inserting later.
+ if ( 0 === strpos( $token, '<a ' ) ) {
+ $href_values = self::extract_attr_content_from_html( 'a', 'href', $token );
+ if ( ! empty( $href_values[0] ) && $validator->isValidURL( $href_values[0] ) ) {
+ // Remember the URL.
+ $current_url = $href_values[0];
+ }
+ }
+
+ // A link has closed, insert the URL from that link if we have one.
+ if ( '</a>' === $token && '' !== $current_url ) {
+ // Generate a unique-to-this-block placeholder which takes up the
+ // same number of characters as a URL does.
+ $values[ $tag ][ $opened ] .= ' (' . self::generate_url_placeholder( $current_url ) . ')';
+
+ $current_url = '';
+ }
+
+ // We don't return inline images, but they technically take up 1 character in the RichText.
+ if ( 0 === strpos( $token, '<img ' ) ) {
+ $values[ $tag ][ $opened ] .= self::$inline_placeholder;
+ }
+ }
+
+ if ( "<$tag>" === $token || 0 === strpos( $token, "<$tag " ) ) {
+ // A tag has just been opened.
+ $opened++;
+ // Set an empty value now, so we're keeping track of empty tags.
+ if ( ! isset( $values[ $tag ][ $opened ] ) ) {
+ $values[ $tag ][ $opened ] = '';
+ }
+ continue;
+ }
+
+ if ( "</$tag>" === $token ) {
+ // The tag has been closed.
+ $closed++;
+ continue;
+ }
+
+ if ( '<' === $token[0] ) {
+ // We can skip any other tags.
+ continue;
+ }
+
+ if ( $opened !== $closed ) {
+ // We're currently in a tag, with some content. Start by decoding any HTML entities.
+ $token = html_entity_decode( $token, ENT_QUOTES );
+
+ // Find any URLs in this content, and replace them with a placeholder.
+ preg_match_all( Twitter_Regex::getValidUrlMatcher(), $token, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE );
+ $offset = 0;
+ foreach ( $matches as $match ) {
+ list( $url, $start ) = $match[2];
+
+ $token = substr_replace( $token, self::generate_url_placeholder( $url ), $start + $offset, strlen( $url ) );
+
+ $offset += self::$characters_per_url - strlen( $url );
+
+ // If we're in a link with a URL set, there's no need to keep two copies of the same link.
+ if ( ! empty( $current_url ) ) {
+ $lower_url = strtolower( $url );
+ $lower_current_url = strtolower( $current_url );
+
+ if ( $lower_url === $lower_current_url ) {
+ $current_url = '';
+ }
+
+ // Check that the link text isn't just a shortened version of the href value.
+ $trimmed_current_url = preg_replace( '|^https?://|', '', $lower_current_url );
+ if ( $lower_url === $trimmed_current_url || trim( $trimmed_current_url, '/' ) === $lower_url ) {
+ $current_url = '';
+ }
+ }
+ }
+
+ // Append it to the right value.
+ $values[ $tag ][ $opened ] .= $token;
+ }
+ }
+ }
+
+ return $values;
+ }
+
+ /**
+ * Extracts the attribute content from a tag.
+ *
+ * This method allows for the HTML to have multiple instances of the tag, and will return
+ * an array containing the attribute value (or an empty string, if the tag doesn't have the
+ * requested attribute) for each occurrence of the tag.
+ *
+ * @param string $tag The tag we're looking for.
+ * @param string $attr The name of the attribute we're looking for.
+ * @param string $html The HTML we're searching through.
+ * @param array $attr_filters Optional. Filters tags based on whether or not they have attributes with given values.
+ * @return array The array of attribute values found.
+ */
+ private static function extract_attr_content_from_html( $tag, $attr, $html, $attr_filters = array() ) {
+ // Given our single tag and attribute, construct a KSES filter for it.
+ $kses_filter = array(
+ $tag => array(
+ $attr => array(),
+ ),
+ );
+
+ foreach ( $attr_filters as $filter_attr => $filter_value ) {
+ $kses_filter[ $tag ][ $filter_attr ] = array();
+ }
+
+ // Remove all HTML except for the tag we're after. On that tag,
+ // remove all attributes except for the one we're after.
+ $stripped_html = wp_kses( $html, $kses_filter );
+
+ $values = array();
+
+ $tokens = wp_html_split( $stripped_html );
+ foreach ( $tokens as $token ) {
+ $found_value = '';
+
+ if ( 0 === strlen( $token ) ) {
+ // Skip any empty tokens.
+ continue;
+ }
+
+ if ( '<' !== $token[0] ) {
+ // We can skip any non-tag tokens.
+ continue;
+ }
+
+ $token_attrs = wp_kses_attr_parse( $token );
+
+ // Skip tags that KSES couldn't handle.
+ if ( false === $token_attrs ) {
+ continue;
+ }
+
+ // Remove the tag open and close chunks.
+ $found_tag = array_shift( $token_attrs );
+ array_pop( $token_attrs );
+
+ // We somehow got a tag that isn't the one we're after. Skip it.
+ if ( 0 !== strpos( $found_tag, "<$tag " ) ) {
+ continue;
+ }
+
+ // We can only fail an attribute filter if one is set.
+ $passed_filter = count( $attr_filters ) === 0;
+
+ foreach ( $token_attrs as $token_attr_string ) {
+ // The first "=" in the string will be between the attribute name/value.
+ list( $token_attr_name, $token_attr_value ) = explode( '=', $token_attr_string, 2 );
+
+ $token_attr_name = trim( $token_attr_name );
+ $token_attr_value = trim( $token_attr_value );
+
+ // Remove a single set of quotes from around the value.
+ if ( '' !== $token_attr_value && in_array( $token_attr_value[0], array( '"', "'" ), true ) ) {
+ $token_attr_value = trim( $token_attr_value, $token_attr_value[0] );
+ }
+
+ // If this is the attribute we're after, save the value for the end of the loop.
+ if ( $token_attr_name === $attr ) {
+ $found_value = $token_attr_value;
+ }
+
+ if ( isset( $attr_filters[ $token_attr_name ] ) && $attr_filters[ $token_attr_name ] === $token_attr_value ) {
+ $passed_filter = true;
+ }
+ }
+
+ if ( $passed_filter ) {
+ // We always want to append the found value, even if we didn't "find" a matching attribute.
+ // An empty string in the return value means that we found the tag, but the attribute was
+ // either empty, or not set.
+ $values[] = html_entity_decode( $found_value, ENT_QUOTES );
+ }
+ }
+
+ return $values;
+ }
+
+ /**
+ * Generates a placeholder for URLs, using the appropriate number of characters to imitate how
+ * Twitter counts the length of URLs in tweets.
+ *
+ * @param string $url The URL to generate a placeholder for.
+ * @return string The placeholder.
+ */
+ public static function generate_url_placeholder( $url ) {
+ self::$urls[] = $url;
+
+ return str_pad( 'url-placeholder-' . ( count( self::$urls ) - 1 ), self::$characters_per_url, '-' );
+ }
+
+ /**
+ * Retrieves the Twitter card data for a list of URLs.
+ *
+ * @param array $urls The list of URLs to grab Twitter card data for.
+ * @return array The Twitter card data.
+ */
+ public static function generate_cards( $urls ) {
+ $validator = new Twitter_Validator();
+
+ $requests = array_map(
+ function ( $url ) use ( $validator ) {
+ if ( $validator->isValidURL( $url ) ) {
+ return array(
+ 'url' => $url,
+ );
+ }
+
+ return false;
+ },
+ $urls
+ );
+
+ $requests = array_filter( $requests );
+
+ $results = Requests::request_multiple( $requests );
+
+ $card_data = array(
+ 'creator' => array(
+ 'name' => 'twitter:creator',
+ ),
+ 'description' => array(
+ 'name' => 'twitter:description',
+ 'property' => 'og:description',
+ ),
+ 'image' => array(
+ 'name' => 'twitter:image',
+ 'property' => 'og:image:secure',
+ 'property' => 'og:image',
+ ),
+ 'title' => array(
+ 'name' => 'twitter:text:title',
+ 'property' => 'og:title',
+ ),
+ 'type' => array(
+ 'name' => 'twitter:card',
+ ),
+ );
+
+ $cards = array();
+ foreach ( $results as $id => $result ) {
+ $url = $requests[ $id ]['url'];
+
+ if ( ! $result->success ) {
+ $cards[ $url ] = array(
+ 'error' => 'invalid_url',
+ );
+ continue;
+ }
+
+ $url_card_data = array();
+
+ foreach ( $card_data as $key => $filters ) {
+ foreach ( $filters as $attribute => $value ) {
+ $found_data = self::extract_attr_content_from_html( 'meta', 'content', $result->body, array( $attribute => $value ) );
+ if ( count( $found_data ) > 0 && strlen( $found_data[0] ) > 0 ) {
+ $url_card_data[ $key ] = html_entity_decode( $found_data[0], ENT_QUOTES );
+ break;
+ }
+ }
+ }
+
+ if ( count( $url_card_data ) > 0 ) {
+ $cards[ $url ] = $url_card_data;
+ } else {
+ $cards[ $url ] = array(
+ 'error' => 'no_og_data',
+ );
+ }
+ }
+
+ return $cards;
+ }
+
+ /**
+ * Get the WPCOM or self-hosted site ID.
+ *
+ * @return mixed
+ */
+ public static function get_site_id() {
+ $is_wpcom = ( defined( 'IS_WPCOM' ) && IS_WPCOM );
+ $site_id = $is_wpcom ? get_current_blog_id() : Jetpack_Options::get_option( 'id' );
+ if ( ! $site_id ) {
+ return new WP_Error(
+ 'unavailable_site_id',
+ __( 'Sorry, something is wrong with your Jetpack connection.', 'jetpack' ),
+ 403
+ );
+ }
+ return (int) $site_id;
+ }
+}
diff --git a/plugins/jetpack/_inc/lib/class-jetpack-wizard.php b/plugins/jetpack/_inc/lib/class-jetpack-wizard.php
new file mode 100644
index 00000000..41b3e9ec
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/class-jetpack-wizard.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Deprecated since 9.5.0
+ *
+ * @deprecated
+ * @package automattic/jetpack
+ */
+
+// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+_deprecated_file( basename( __FILE__ ), 'jetpack-9.5.0' );
diff --git a/plugins/jetpack/_inc/lib/class.color.php b/plugins/jetpack/_inc/lib/class.color.php
index e145298c..70930659 100644
--- a/plugins/jetpack/_inc/lib/class.color.php
+++ b/plugins/jetpack/_inc/lib/class.color.php
@@ -689,7 +689,11 @@ class Jetpack_Color {
public function incrementLightness( $amount ) {
$hsl = $this->toHsl();
- extract( $hsl );
+
+ $h = isset( $hsl['h'] ) ? $hsl['h'] : 0;
+ $s = isset( $hsl['s'] ) ? $hsl['s'] : 0;
+ $l = isset( $hsl['l'] ) ? $hsl['l'] : 0;
+
$l += $amount;
if ( $l < 0 ) $l = 0;
if ( $l > 100 ) $l = 100;
@@ -706,7 +710,11 @@ class Jetpack_Color {
public function incrementSaturation( $amount ) {
$hsl = $this->toHsl();
- extract( $hsl );
+
+ $h = isset( $hsl['h'] ) ? $hsl['h'] : 0;
+ $s = isset( $hsl['s'] ) ? $hsl['s'] : 0;
+ $l = isset( $hsl['l'] ) ? $hsl['l'] : 0;
+
$s += $amount;
if ( $s < 0 ) $s = 0;
if ( $s > 100 ) $s = 100;
@@ -715,8 +723,11 @@ class Jetpack_Color {
public function toGrayscale() {
$hsl = $this->toHsl();
- extract( $hsl );
+
+ $h = isset( $hsl['h'] ) ? $hsl['h'] : 0;
$s = 0;
+ $l = isset( $hsl['l'] ) ? $hsl['l'] : 0;
+
return $this->fromHsl( $h, $s, $l );
}
@@ -746,7 +757,11 @@ class Jetpack_Color {
public function incrementHue( $amount ) {
$hsl = $this->toHsl();
- extract( $hsl );
+
+ $h = isset( $hsl['h'] ) ? $hsl['h'] : 0;
+ $s = isset( $hsl['s'] ) ? $hsl['s'] : 0;
+ $l = isset( $hsl['l'] ) ? $hsl['l'] : 0;
+
$h = ( $h + $amount ) % 360;
if ( $h < 0 ) $h = 360 - $h;
return $this->fromHsl( $h, $s, $l );
diff --git a/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php b/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
index 742767b0..342c85b2 100644
--- a/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
+++ b/plugins/jetpack/_inc/lib/class.core-rest-api-endpoints.php
@@ -2,9 +2,12 @@
use Automattic\Jetpack\Connection\Client;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
-use Automattic\Jetpack\JITM;
-use Automattic\Jetpack\Tracking;
-use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Connection\Rest_Authentication;
+use Automattic\Jetpack\Connection\REST_Connector;
+use Automattic\Jetpack\Jetpack_CRM_Data;
+use Automattic\Jetpack\Licensing;
+use Automattic\Jetpack\Search\REST_Controller as Search_REST_Controller;
+use Automattic\Jetpack\Status\Host;
/**
* Register WP REST API endpoints for Jetpack.
@@ -28,6 +31,9 @@ add_action( 'rest_api_init', array( 'Jetpack_Core_Json_Api_Endpoints', 'register
// Each of these is a class that will register its own routes on 'rest_api_init'.
require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/load-wpcom-endpoints.php';
+// Load Search endpoints when WP REST API is initialized.
+add_action( 'rest_api_init', array( new Search_REST_Controller(), 'register_rest_routes' ) );
+
/**
* Class Jetpack_Core_Json_Api_Endpoints
*
@@ -37,6 +43,8 @@ class Jetpack_Core_Json_Api_Endpoints {
/**
* @var string Generic error message when user is not allowed to perform an action.
+ *
+ * @deprecated 8.8.0 Use `REST_Connector::get_user_permissions_error_msg()` instead.
*/
public static $user_permissions_error_msg;
@@ -60,157 +68,168 @@ class Jetpack_Core_Json_Api_Endpoints {
require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php';
require_once JETPACK__PLUGIN_DIR . '_inc/lib/core-api/class.jetpack-core-api-widgets-endpoints.php';
- 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'
- );
+ self::$user_permissions_error_msg = REST_Connector::get_user_permissions_error_msg();
self::$stats_roles = array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' );
- $ixr_client = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) );
- $core_api_endpoint = new Jetpack_Core_API_Data( $ixr_client );
- $module_list_endpoint = new Jetpack_Core_API_Module_List_Endpoint();
- $module_data_endpoint = new Jetpack_Core_API_Module_Data_Endpoint();
+ $ixr_client = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) );
+ $core_api_endpoint = new Jetpack_Core_API_Data( $ixr_client );
+ $module_list_endpoint = new Jetpack_Core_API_Module_List_Endpoint();
+ $module_data_endpoint = new Jetpack_Core_API_Module_Data_Endpoint();
$module_toggle_endpoint = new Jetpack_Core_API_Module_Toggle_Endpoint( new Jetpack_IXR_Client() );
- $site_endpoint = new Jetpack_Core_API_Site_Endpoint();
- $widget_endpoint = new Jetpack_Core_API_Widget_Endpoint();
-
- register_rest_route( 'jetpack/v4', 'plans', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_plans',
- 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
- ) );
-
- register_rest_route( 'jetpack/v4', 'products', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_products',
- 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
- ) );
-
- register_rest_route( 'jetpack/v4', 'marketing/survey', array(
- 'methods' => WP_REST_Server::CREATABLE,
- 'callback' => __CLASS__ . '::submit_survey',
- 'permission_callback' => __CLASS__ . '::disconnect_site_permission_callback',
- ) );
-
- register_rest_route( 'jetpack/v4', '/jitm', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_jitm_message',
- ) );
-
- register_rest_route( 'jetpack/v4', '/jitm', array(
- 'methods' => WP_REST_Server::CREATABLE,
- 'callback' => __CLASS__ . '::delete_jitm_message'
- ) );
-
- // Authorize a remote user
- register_rest_route( 'jetpack/v4', '/remote_authorize', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::remote_authorize',
- ) );
-
- // Get current connection status of Jetpack
- register_rest_route( 'jetpack/v4', '/connection', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::jetpack_connection_status',
- ) );
+ $site_endpoint = new Jetpack_Core_API_Site_Endpoint();
+ $widget_endpoint = new Jetpack_Core_API_Widget_Endpoint();
+
+ register_rest_route(
+ 'jetpack/v4',
+ 'plans',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_plans',
+ 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ 'products',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_products',
+ 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ 'marketing/survey',
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => __CLASS__ . '::submit_survey',
+ 'permission_callback' => __CLASS__ . '::disconnect_site_permission_callback',
+ )
+ );
// Test current connection status of Jetpack
- register_rest_route( 'jetpack/v4', '/connection/test', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::jetpack_connection_test',
- 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/test',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::jetpack_connection_test',
+ 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
+ )
+ );
// Endpoint specific for privileged servers to request detailed debug information.
- register_rest_route( 'jetpack/v4', '/connection/test-wpcom/', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::jetpack_connection_test_for_external',
- 'permission_callback' => __CLASS__ . '::view_jetpack_connection_test_check',
- ) );
-
- register_rest_route( 'jetpack/v4', '/rewind', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_rewind_data',
- 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
- ) );
-
- // Fetches a fresh connect URL
- register_rest_route( 'jetpack/v4', '/connection/url', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::build_connect_url',
- 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
- ) );
-
- // 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__ . '::get_user_connection_data_permission_callback',
- ) );
-
- // Start the connection process by registering the site on WordPress.com servers.
- register_rest_route( 'jetpack/v4', '/connection/register', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::register_site',
- 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
- 'args' => array(
- 'registration_nonce' => array( 'type' => 'string' ),
- ),
- ) );
-
- // Set the connection owner
- register_rest_route( 'jetpack/v4', '/connection/owner', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::set_connection_owner',
- 'permission_callback' => __CLASS__ . '::set_connection_owner_permission_callback',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/test-wpcom/',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::jetpack_connection_test_for_external',
+ 'permission_callback' => __CLASS__ . '::view_jetpack_connection_test_check',
+ )
+ );
- // Current user: get or set tracking settings.
- register_rest_route( 'jetpack/v4', '/tracking/settings', array(
+ register_rest_route(
+ 'jetpack/v4',
+ '/rewind',
array(
'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_user_tracking_settings',
+ 'callback' => __CLASS__ . '::get_rewind_data',
'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
- ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/scan',
array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::update_user_tracking_settings',
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_scan_state',
'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ )
+ );
+
+ // Fetches a fresh connect URL
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/url',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::build_connect_url',
+ 'permission_callback' => __CLASS__ . '::connect_url_permission_callback',
'args' => array(
- 'tracks_opt_out' => array( 'type' => 'boolean' ),
+ 'from' => array( 'type' => 'string' ),
+ 'redirect' => array( 'type' => 'string' ),
),
- ),
- ) );
+ )
+ );
- // Disconnect site from WordPress.com servers
- register_rest_route( 'jetpack/v4', '/connection', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::disconnect_site',
- 'permission_callback' => __CLASS__ . '::disconnect_site_permission_callback',
- ) );
+ // Current user: get or set tracking settings.
+ register_rest_route(
+ 'jetpack/v4',
+ '/tracking/settings',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_user_tracking_settings',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_user_tracking_settings',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ 'args' => array(
+ 'tracks_opt_out' => array( 'type' => 'boolean' ),
+ ),
+ ),
+ )
+ );
// Disconnect/unlink user from WordPress.com servers
- register_rest_route( 'jetpack/v4', '/connection/user', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::unlink_user',
- 'permission_callback' => __CLASS__ . '::unlink_user_permission_callback',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/user',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::unlink_user',
+ 'permission_callback' => __CLASS__ . '::unlink_user_permission_callback',
+ )
+ );
// Get current site data
- register_rest_route( 'jetpack/v4', '/site', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_site_data',
- 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/site',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_site_data',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ )
+ );
// Get current site data
- register_rest_route( 'jetpack/v4', '/site/features', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $site_endpoint, 'get_features' ),
- 'permission_callback' => array( $site_endpoint , 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/site/features',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $site_endpoint, 'get_features' ),
+ 'permission_callback' => array( $site_endpoint, 'can_request' ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/site/products',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $site_endpoint, 'get_products' ),
+ 'permission_callback' => array( $site_endpoint, 'can_request' ),
+ )
+ );
// Get current site purchases.
register_rest_route(
@@ -224,276 +243,790 @@ class Jetpack_Core_Json_Api_Endpoints {
);
// Get current site benefits
- register_rest_route( 'jetpack/v4', '/site/benefits', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $site_endpoint, 'get_benefits' ),
- 'permission_callback' => array( $site_endpoint, 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/site/benefits',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $site_endpoint, 'get_benefits' ),
+ 'permission_callback' => array( $site_endpoint, 'can_request' ),
+ )
+ );
// Get Activity Log data for this site.
- register_rest_route( 'jetpack/v4', '/site/activity', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_site_activity',
- 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
- ) );
-
- // Confirm that a site in identity crisis should be in staging mode
- register_rest_route( 'jetpack/v4', '/identity-crisis/confirm-safe-mode', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::confirm_safe_mode',
- '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',
- ) );
-
- // 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',
- 'permissison_callback' => __CLASS__ . '::identity_crisis_mitigation_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/site/activity',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_site_activity',
+ 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
+ )
+ );
// Return all modules
- register_rest_route( 'jetpack/v4', '/module/all', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $module_list_endpoint, 'process' ),
- 'permission_callback' => array( $module_list_endpoint, 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/all',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $module_list_endpoint, 'process' ),
+ 'permission_callback' => array( $module_list_endpoint, 'can_request' ),
+ )
+ );
// Activate many modules
- register_rest_route( 'jetpack/v4', '/module/all/active', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $module_list_endpoint, 'process' ),
- 'permission_callback' => array( $module_list_endpoint, 'can_request' ),
- 'args' => array(
- 'modules' => array(
- 'default' => '',
- 'type' => 'array',
- 'items' => array(
- 'type' => 'string',
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/all/active',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $module_list_endpoint, 'process' ),
+ 'permission_callback' => array( $module_list_endpoint, 'can_request' ),
+ 'args' => array(
+ 'modules' => array(
+ 'default' => '',
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ ),
+ 'required' => true,
+ 'validate_callback' => __CLASS__ . '::validate_module_list',
+ ),
+ 'active' => array(
+ 'default' => true,
+ 'type' => 'boolean',
+ 'required' => false,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
),
- 'required' => true,
- 'validate_callback' => __CLASS__ . '::validate_module_list',
- ),
- 'active' => array(
- 'default' => true,
- 'type' => 'boolean',
- 'required' => false,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
),
)
- ) );
+ );
// Return a single module and update it when needed
- register_rest_route( 'jetpack/v4', '/module/(?P<slug>[a-z\-]+)', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $core_api_endpoint, 'process' ),
- 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<slug>[a-z\-]+)',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $core_api_endpoint, 'process' ),
+ 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
+ )
+ );
// Activate and deactivate a module
- register_rest_route( 'jetpack/v4', '/module/(?P<slug>[a-z\-]+)/active', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $module_toggle_endpoint, 'process' ),
- 'permission_callback' => array( $module_toggle_endpoint, 'can_request' ),
- 'args' => array(
- 'active' => array(
- 'default' => true,
- 'type' => 'boolean',
- 'required' => true,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<slug>[a-z\-]+)/active',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $module_toggle_endpoint, 'process' ),
+ 'permission_callback' => array( $module_toggle_endpoint, 'can_request' ),
+ 'args' => array(
+ 'active' => array(
+ 'default' => true,
+ 'type' => 'boolean',
+ 'required' => true,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ ),
),
)
- ) );
+ );
// Update a module
- register_rest_route( 'jetpack/v4', '/module/(?P<slug>[a-z\-]+)', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $core_api_endpoint, 'process' ),
- 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
- 'args' => self::get_updateable_parameters( 'any' )
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<slug>[a-z\-]+)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $core_api_endpoint, 'process' ),
+ 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
+ 'args' => self::get_updateable_parameters( 'any' ),
+ )
+ );
// Get data for a specific module, i.e. Protect block count, WPCOM stats,
// Akismet spam count, etc.
- register_rest_route( 'jetpack/v4', '/module/(?P<slug>[a-z\-]+)/data', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $module_data_endpoint, 'process' ),
- 'permission_callback' => array( $module_data_endpoint, 'can_request' ),
- 'args' => array(
- 'range' => array(
- 'default' => 'day',
- 'type' => 'string',
- 'required' => false,
- 'validate_callback' => __CLASS__ . '::validate_string',
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<slug>[a-z\-]+)/data',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $module_data_endpoint, 'process' ),
+ 'permission_callback' => array( $module_data_endpoint, 'can_request' ),
+ 'args' => array(
+ 'range' => array(
+ 'default' => 'day',
+ 'type' => 'string',
+ 'required' => false,
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ ),
),
)
- ) );
+ );
// Check if the API key for a specific service is valid or not
- register_rest_route( 'jetpack/v4', '/module/(?P<service>[a-z\-]+)/key/check', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $module_data_endpoint, 'key_check' ),
- 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
- 'sanitize_callback' => 'sanitize_text_field',
- ) );
-
- register_rest_route( 'jetpack/v4', '/module/(?P<service>[a-z\-]+)/key/check', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $module_data_endpoint, 'key_check' ),
- 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
- 'sanitize_callback' => 'sanitize_text_field',
- 'args' => array(
- 'api_key' => array(
- 'default' => '',
- 'type' => 'string',
- 'validate_callback' => __CLASS__ . '::validate_alphanum',
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<service>[a-z\-]+)/key/check',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $module_data_endpoint, 'key_check' ),
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ 'sanitize_callback' => 'sanitize_text_field',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/module/(?P<service>[a-z\-]+)/key/check',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $module_data_endpoint, 'key_check' ),
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ 'sanitize_callback' => 'sanitize_text_field',
+ 'args' => array(
+ 'api_key' => array(
+ 'default' => '',
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_alphanum',
+ ),
),
)
- ) );
+ );
// Update any Jetpack module option or setting
- register_rest_route( 'jetpack/v4', '/settings', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $core_api_endpoint, 'process' ),
- 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
- 'args' => self::get_updateable_parameters( 'any' )
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/settings',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $core_api_endpoint, 'process' ),
+ 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
+ 'args' => self::get_updateable_parameters( 'any' ),
+ )
+ );
// Update a module
- register_rest_route( 'jetpack/v4', '/settings/(?P<slug>[a-z\-]+)', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => array( $core_api_endpoint, 'process' ),
- 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
- 'args' => self::get_updateable_parameters()
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/settings/(?P<slug>[a-z\-]+)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $core_api_endpoint, 'process' ),
+ 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
+ 'args' => self::get_updateable_parameters(),
+ )
+ );
// Return all module settings
- register_rest_route( 'jetpack/v4', '/settings/', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $core_api_endpoint, 'process' ),
- 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/settings/',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $core_api_endpoint, 'process' ),
+ 'permission_callback' => array( $core_api_endpoint, 'can_request' ),
+ )
+ );
// Reset all Jetpack options
- register_rest_route( 'jetpack/v4', '/options/(?P<options>[a-z\-]+)', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::reset_jetpack_options',
- 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/options/(?P<options>[a-z\-]+)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::reset_jetpack_options',
+ 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
+ )
+ );
// Updates: get number of plugin updates available
- register_rest_route( 'jetpack/v4', '/updates/plugins', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_plugin_update_count',
- 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/updates/plugins',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_plugin_update_count',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ )
+ );
// Dismiss Jetpack Notices
- register_rest_route( 'jetpack/v4', '/notice/(?P<notice>[a-z\-_]+)', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::dismiss_notice',
- 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
- ) );
-
- // Plugins: get list of all plugins.
- register_rest_route( 'jetpack/v4', '/plugins', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_plugins',
- 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
- ) );
-
- register_rest_route( 'jetpack/v4', '/plugins/akismet/activate', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::activate_akismet',
- 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/notice/(?P<notice>[a-z\-_]+)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::dismiss_notice',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ )
+ );
+
+ /*
+ * Plugins: manage plugins on your site.
+ *
+ * @since 8.9.0
+ *
+ * @to-do: deprecate and switch to /wp/v2/plugins when WordPress 5.5 is the minimum required version.
+ * Noting that the `source` parameter is Jetpack-specific (not implemented in Core).
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ '/plugins',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_plugins',
+ 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => __CLASS__ . '::install_plugin',
+ 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
+ 'args' => array(
+ 'slug' => array(
+ 'type' => 'string',
+ 'required' => true,
+ 'description' => __( 'WordPress.org plugin directory slug.', 'jetpack' ),
+ 'pattern' => '[\w\-]+',
+ ),
+ 'status' => array(
+ 'description' => __( 'The plugin activation status.', 'jetpack' ),
+ 'type' => 'string',
+ 'enum' => is_multisite() ? array( 'inactive', 'active', 'network-active' ) : array( 'inactive', 'active' ),
+ 'default' => 'inactive',
+ ),
+ 'source' => array(
+ 'required' => false,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ ),
+ ),
+ ),
+ )
+ );
+
+ /*
+ * Plugins: activate a specific plugin.
+ *
+ * @since 8.9.0
+ *
+ * @to-do: deprecate and switch to /wp/v2/plugins when WordPress 5.5 is the minimum required version.
+ * Noting that the `source` parameter is Jetpack-specific (not implemented in Core).
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ '/plugins/(?P<plugin>[^.\/]+(?:\/[^.\/]+)?)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::activate_plugin',
+ 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
+ 'args' => array(
+ 'status' => array(
+ 'required' => true,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_activate_plugin',
+ ),
+ 'source' => array(
+ 'required' => false,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ ),
+ ),
+ )
+ );
// Plugins: check if the plugin is active.
- register_rest_route( 'jetpack/v4', '/plugin/(?P<plugin>[a-z\/\.\-_]+)', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_plugin',
- 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/plugin/(?P<plugin>[a-z\/\.\-_]+)',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_plugin',
+ 'permission_callback' => __CLASS__ . '::activate_plugins_permission_check',
+ )
+ );
// Widgets: get information about a widget that supports it.
- register_rest_route( 'jetpack/v4', '/widgets/(?P<id>[0-9a-z\-_]+)', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $widget_endpoint, 'process' ),
- 'permission_callback' => array( $widget_endpoint, 'can_request' ),
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/widgets/(?P<id>[0-9a-z\-_]+)',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $widget_endpoint, 'process' ),
+ 'permission_callback' => array( $widget_endpoint, 'can_request' ),
+ )
+ );
// Site Verify: check if the site is verified, and a get verification token if not
- register_rest_route( 'jetpack/v4', '/verify-site/(?P<service>[a-z\-_]+)', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::is_site_verified_and_token',
- 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
- ) );
-
- register_rest_route( 'jetpack/v4', '/verify-site/(?P<service>[a-z\-_]+)/(?<keyring_id>[0-9]+)', array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::is_site_verified_and_token',
- 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
- ) );
+ register_rest_route(
+ 'jetpack/v4',
+ '/verify-site/(?P<service>[a-z\-_]+)',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::is_site_verified_and_token',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/verify-site/(?P<service>[a-z\-_]+)/(?<keyring_id>[0-9]+)',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::is_site_verified_and_token',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ )
+ );
// Site Verify: tell a service to verify the site
- register_rest_route( 'jetpack/v4', '/verify-site/(?P<service>[a-z\-_]+)', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::verify_site',
- 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
- 'args' => array(
- 'keyring_id' => array(
- 'required' => true,
- 'type' => 'integer',
- 'validate_callback' => __CLASS__ . '::validate_posint',
+ register_rest_route(
+ 'jetpack/v4',
+ '/verify-site/(?P<service>[a-z\-_]+)',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::verify_site',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ 'args' => array(
+ 'keyring_id' => array(
+ 'required' => true,
+ 'type' => 'integer',
+ 'validate_callback' => __CLASS__ . '::validate_posint',
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/mobile/send-login-email',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::send_mobile_magic_link',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/recommendations/data',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_recommendations_data',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_recommendations_data',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ 'args' => array(
+ 'data' => array(
+ 'required' => true,
+ 'type' => 'object',
+ 'validate_callback' => __CLASS__ . '::validate_recommendations_data',
+ ),
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/recommendations/step',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_recommendations_step',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_recommendations_step',
+ 'permission_callback' => __CLASS__ . '::update_settings_permission_check',
+ 'args' => array(
+ 'step' => array(
+ 'required' => true,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ ),
+ ),
),
)
- ) );
+ );
- // Get and set API keys.
- // Note: permission_callback intentionally omitted from the GET method.
- // Map block requires open access to API keys on the front end.
register_rest_route(
'jetpack/v4',
- '/service-api-keys/(?P<service>[a-z\-_]+)',
+ '/recommendations/product-suggestions',
array(
array(
'methods' => WP_REST_Server::READABLE,
- 'callback' => __CLASS__ . '::get_service_api_key',
+ 'callback' => __CLASS__ . '::get_recommendations_product_suggestions',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/recommendations/upsell',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_recommendations_upsell',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ ),
+ )
+ );
+
+ /*
+ * Get and update the last licensing error message.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ '/licensing/error',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_licensing_error',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
),
array(
'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::update_service_api_key',
- 'permission_callback' => array( 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys','edit_others_posts_check' ),
+ 'callback' => __CLASS__ . '::update_licensing_error',
+ 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
'args' => array(
- 'service_api_key' => array(
+ 'error' => array(
+ 'required' => true,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ ),
+ )
+ );
+
+ // Return all module settings.
+ 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 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',
+ ),
+ ),
+ ),
+ )
+ );
+
+ /*
+ * Manage the Jetpack CRM plugin's integration with Jetpack contact forms.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'jetpack_crm',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_jetpack_crm_data',
+ 'permission_callback' => __CLASS__ . '::jetpack_crm_data_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::activate_crm_jetpack_forms_extension',
+ 'permission_callback' => __CLASS__ . '::activate_crm_extensions_permission_check',
+ 'args' => array(
+ 'extension' => array(
'required' => true,
'type' => 'text',
),
),
),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ 'purchase-token',
+ array(
array(
- 'methods' => WP_REST_Server::DELETABLE,
- 'callback' => __CLASS__ . '::delete_service_api_key',
- 'permission_callback' => array( 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys','edit_others_posts_check' ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_purchase_token',
+ 'permission_callback' => __CLASS__ . '::purchase_token_permission_check',
+ ),
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => __CLASS__ . '::delete_purchase_token',
+ 'permission_callback' => __CLASS__ . '::purchase_token_permission_check',
),
)
);
+ /*
+ * Set the Jetpack Option `has_see_wc_connection_modal` to true
+ */
register_rest_route(
'jetpack/v4',
- '/mobile/send-login-email',
+ 'seen-wc-connection-modal',
array(
'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::send_mobile_magic_link',
- 'permission_callback' => __CLASS__ . '::view_admin_page_permission_check',
+ 'callback' => __CLASS__ . '::set_has_seen_wc_connection_modal',
+ 'permission_callback' => __CLASS__ . '::manage_modules_permission_check',
+ )
+ );
+ }
+
+ /**
+ * Get the data for the recommendations
+ *
+ * @return array Recommendations data
+ */
+ public static function get_recommendations_data() {
+ return Jetpack_Recommendations::get_recommendations_data();
+ }
+
+ /**
+ * Update the data for the recommendations
+ *
+ * @param WP_REST_Request $request The request.
+ *
+ * @return bool true
+ */
+ public static function update_recommendations_data( $request ) {
+ $data = $request['data'];
+ Jetpack_Recommendations::update_recommendations_data( $data );
+
+ return true;
+ }
+
+ /**
+ * Get the data for the recommendations
+ *
+ * @return array Recommendations data
+ */
+ public static function get_recommendations_step() {
+ return Jetpack_Recommendations::get_recommendations_step();
+ }
+
+ /**
+ * Update the step for the recommendations
+ *
+ * @param WP_REST_Request $request The request.
+ *
+ * @return bool true
+ */
+ public static function update_recommendations_step( $request ) {
+ $step = $request['step'];
+ Jetpack_Recommendations::update_recommendations_step( $step );
+
+ return true;
+ }
+
+ /**
+ * Get product suggestions for the recommendations
+ *
+ * @return string|WP_Error The response from the wpcom product suggestions endpoint as a JSON object.
+ */
+ public static function get_recommendations_product_suggestions() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', esc_html__( 'Site not registered.', 'jetpack' ) );
+ }
+
+ $user_connected = ( new Connection_Manager( 'jetpack' ) )->is_user_connected( get_current_user_id() );
+ if ( ! $user_connected ) {
+ return wp_json_encode( array() );
+ }
+
+ $request_path = sprintf( '/sites/%s/jetpack-recommendations/product-suggestions?locale=' . get_user_locale(), $blog_id );
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ $request_path,
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ ),
+ )
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+ if ( 200 === $response_code ) {
+ return json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ } else {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
+ array( 'status' => $response_code )
+ );
+ }
+ }
+
+ /**
+ * Get the upsell for the recommendations
+ *
+ * @return string The response from the wpcom upsell endpoint as a JSON object
+ */
+ public static function get_recommendations_upsell() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', esc_html__( 'Site not registered.', 'jetpack' ) );
+ }
+
+ $user_connected = ( new Connection_Manager( 'jetpack' ) )->is_user_connected( get_current_user_id() );
+ if ( ! $user_connected ) {
+ $response = array(
+ 'hide_upsell' => true,
+ );
+
+ return $response;
+ }
+
+ $request_path = sprintf( '/sites/%s/jetpack-recommendations/upsell?locale=' . get_user_locale(), $blog_id );
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ $request_path,
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ ),
)
);
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+ if ( 200 === $response_code ) {
+ return json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ } else {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
+ array( 'status' => $response_code )
+ );
+ }
+ }
+
+ /**
+ * Validate the recommendations data
+ *
+ * @param array $value Value to check received by request.
+ * @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_recommendations_data( $value, $request, $param ) {
+ if ( ! is_array( $value ) ) {
+ /* translators: Name of a parameter that must be an object */
+ return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be an object.', 'jetpack' ), $param ) );
+ }
+
+ foreach ( $value as $answer ) {
+ if ( is_array( $answer ) ) {
+ $validate = self::validate_array_of_strings( $answer, $request, $param );
+ } elseif ( is_string( $answer ) ) {
+ $validate = self::validate_string( $answer, $request, $param );
+ } else {
+ $validate = self::validate_boolean( $answer, $request, $param );
+ }
+
+ if ( is_wp_error( $validate ) ) {
+ return $validate;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Return a purchase token used for site-connected (non user-authenticated) checkout.
+ *
+ * @return string|WP_Error The current purchase token or WP_Error with error details.
+ */
+ public static function get_purchase_token() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', esc_html__( 'Site not registered.', 'jetpack' ) );
+ }
+
+ return Jetpack_Options::get_option( 'purchase_token', '' );
+ }
+
+ /**
+ * Delete the current purchase token.
+ *
+ * @return boolean|WP_Error Whether the token was deleted or WP_Error with error details.
+ */
+ public static function delete_purchase_token() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', esc_html__( 'Site not registered.', 'jetpack' ) );
+ }
+
+ return Jetpack_Options::delete_option( 'purchase_token' );
}
public static function get_plans( $request ) {
@@ -552,63 +1085,99 @@ class Jetpack_Core_Json_Api_Endpoints {
}
}
- public static function submit_survey( $request ) {
-
+ /**
+ * Gets the users licenses counts.
+ *
+ * @since 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(
- '/marketing/survey',
- 'v2',
+ '/jetpack-licensing/user/licenses/counts',
+ '2',
array(
- 'method' => 'POST',
+ 'method' => 'GET',
'headers' => array(
'Content-Type' => 'application/json',
'X-Forwarded-For' => Jetpack::current_user_ip( true ),
),
- ),
- $request->get_json_params()
+ )
);
- $wpcom_request_body = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
- if ( 200 === wp_remote_retrieve_response_code( $wpcom_request ) ) {
- $data = $wpcom_request_body;
+ $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 {
- // something went wrong so we'll just return the response without caching
- return $wpcom_request_body;
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
+ array( 'status' => $response_code )
+ );
}
-
- return $data;
}
/**
- * Asks for a jitm, unless they've been disabled, in which case it returns an empty array
+ * Update the user-licenses activation notice dismissal data.
+ *
+ * @since 10.4.0
*
- * @param $request WP_REST_Request
+ * @param WP_REST_Request $request The request sent to the WP REST API.
*
- * @return array An array of jitms
+ * @return array|WP_Error
*/
- public static function get_jitm_message( $request ) {
- $jitm = new JITM();
+ public static function update_licensing_activation_notice_dismiss( $request ) {
- if ( ! $jitm->register() ) {
- return array();
+ if ( ! isset( $request['last_detached_count'] ) ) {
+ return new WP_Error( 'invalid_param', esc_html__( 'Missing parameter "last_detached_count".', 'jetpack' ), array( 'status' => 404 ) );
}
- return $jitm->get_messages( $request['message_path'], urldecode_deep( $request['query'] ) );
+ $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 );
}
- /**
- * Dismisses a jitm
- * @param $request WP_REST_Request The request
- *
- * @return bool Always True
- */
- public static function delete_jitm_message( $request ) {
- $jitm = new JITM();
+ public static function submit_survey( $request ) {
- if ( ! $jitm->register() ) {
- return true;
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ '/marketing/survey',
+ 'v2',
+ array(
+ 'method' => 'POST',
+ 'headers' => array(
+ 'Content-Type' => 'application/json',
+ 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ ),
+ ),
+ $request->get_json_params()
+ );
+
+ $wpcom_request_body = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ if ( 200 === wp_remote_retrieve_response_code( $wpcom_request ) ) {
+ $data = $wpcom_request_body;
+ } else {
+ // something went wrong so we'll just return the response without caching
+ return $wpcom_request_body;
}
- return $jitm->dismiss( $request['id'], $request['feature_class'] );
+ return $data;
}
/**
@@ -661,17 +1230,19 @@ class Jetpack_Core_Json_Api_Endpoints {
return new WP_Error( 'forbidden', __( 'Site is under construction and cannot be verified', 'jetpack' ) );
}
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => get_current_user_id(),
+ )
+ );
$args = array(
'user_id' => get_current_user_id(),
- 'service' => $request[ 'service' ],
+ 'service' => $request['service'],
);
- if ( isset( $request[ 'keyring_id' ] ) ) {
- $args[ 'keyring_id' ] = $request[ 'keyring_id' ];
+ if ( isset( $request['keyring_id'] ) ) {
+ $args['keyring_id'] = $request['keyring_id'];
}
$xml->query( 'jetpack.isSiteVerified', $args );
@@ -683,19 +1254,21 @@ class Jetpack_Core_Json_Api_Endpoints {
}
}
-
-
public static function verify_site( $request ) {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => get_current_user_id(),
+ )
+ );
$params = $request->get_json_params();
- $xml->query( 'jetpack.verifySite', array(
- 'user_id' => get_current_user_id(),
- 'service' => $request[ 'service' ],
- 'keyring_id' => $params[ 'keyring_id' ],
+ $xml->query(
+ 'jetpack.verifySite',
+ array(
+ 'user_id' => get_current_user_id(),
+ 'service' => $request['service'],
+ 'keyring_id' => $params['keyring_id'],
)
);
@@ -705,7 +1278,7 @@ class Jetpack_Core_Json_Api_Endpoints {
$response = $xml->getResponse();
if ( ! empty( $response['errors'] ) ) {
- $error = new WP_Error;
+ $error = new WP_Error();
$error->errors = $response['errors'];
return $error;
}
@@ -715,26 +1288,6 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
- * Handles verification that a site is registered
- *
- * @since 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;
- }
-
- /**
* Handles dismissing of Jetpack Notices
*
* @since 4.3.0
@@ -751,10 +1304,10 @@ class Jetpack_Core_Json_Api_Endpoints {
}
if ( isset( $notice ) && ! empty( $notice ) ) {
- switch( $notice ) {
+ switch ( $notice ) {
case 'feedback_dash_request':
case 'welcome':
- $notices = get_option( 'jetpack_dismissed_notices', array() );
+ $notices = get_option( 'jetpack_dismissed_notices', array() );
$notices[ $notice ] = true;
update_option( 'jetpack_dismissed_notices', $notices );
return rest_ensure_response( get_option( 'jetpack_dismissed_notices', array() ) );
@@ -779,7 +1332,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_jetpack_disconnect', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_jetpack_disconnect', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
@@ -795,42 +1348,8 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_jetpack_connect', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
-
- }
-
- /**
- * Verify that a user can get the data about the current user.
- * Only those who can connect.
- *
- * @since 4.3.0
- *
- * @uses Jetpack::is_user_connected();
- *
- * @return bool|WP_Error True if user is able to unlink.
- */
- public static function get_user_connection_data_permission_callback() {
- if ( current_user_can( 'jetpack_connect_user' ) ) {
- return true;
- }
+ return new WP_Error( 'invalid_user_permission_jetpack_connect', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
- return new WP_Error( 'invalid_user_permission_user_connection_data', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
- }
-
- /**
- * Check that user has permission to change the master user.
- *
- * @since 6.2.0
- * @since 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_callback() {
- if ( current_user_can( 'jetpack_disconnect' ) ) {
- return true;
- }
-
- return new WP_Error( 'invalid_user_permission_set_connection_owner', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
}
/**
@@ -838,16 +1357,16 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @uses Jetpack::is_user_connected();
+ * @uses Automattic\Jetpack\Connection\Manager::is_user_connected();)
*
* @return bool|WP_Error True if user is able to unlink.
*/
public static function unlink_user_permission_callback() {
- if ( current_user_can( 'jetpack_connect_user' ) && Jetpack::is_user_connected( get_current_user_id() ) ) {
+ if ( current_user_can( 'jetpack_connect_user' ) && ( new Connection_Manager( 'jetpack' ) )->is_user_connected( get_current_user_id() ) ) {
return true;
}
- return new WP_Error( 'invalid_user_permission_unlink_user', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_unlink_user', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -862,7 +1381,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_manage_modules', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_manage_modules', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -877,7 +1396,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_configure_modules', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_configure_modules', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -892,22 +1411,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_view_admin', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
- }
-
- /**
- * Verify that user can mitigate an identity crisis.
- *
- * @since 4.4.0
- *
- * @return bool Whether user has capability 'jetpack_disconnect'.
- */
- public static function identity_crisis_mitigation_permission_check() {
- if ( current_user_can( 'jetpack_disconnect' ) ) {
- return true;
- }
-
- return new WP_Error( 'invalid_user_permission_identity_crisis', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_view_admin', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -922,7 +1426,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_manage_settings', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_manage_settings', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -937,7 +1441,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_activate_plugins', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_activate_plugins', REST_Connector::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -950,44 +1454,39 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- return new WP_Error( 'invalid_user_permission_edit_others_posts', self::$user_permissions_error_msg, array( 'status' => self::rest_authorization_required_code() ) );
+ return new WP_Error( 'invalid_user_permission_edit_others_posts', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
- * Contextual HTTP error code for authorization failure.
- *
- * Taken from rest_authorization_required_code() in WP-API plugin until is added to core.
- * @see https://github.com/WP-API/WP-API/commit/7ba0ae6fe4f605d5ffe4ee85b1cd5f9fb46900a6
+ * Verify that site can view and delete the site's purchase token.
*
- * @since 4.3.0
- *
- * @return int
+ * @return bool Whether site has level-site auth or user has the capability 'manage_options'.
*/
- public static function rest_authorization_required_code() {
- return is_user_logged_in() ? 403 : 401;
+ public static function purchase_token_permission_check() {
+ if ( Rest_Authentication::is_signed_with_blog_token() ) {
+ return true;
+ }
+
+ if ( current_user_can( 'manage_options' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_permission_manage_purchase_token', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
}
/**
- * Get connection status for this Jetpack site.
- *
- * @since 4.3.0
+ * Verify that user can view and update user-licensing data.
*
- * @return bool True if site is connected
+ * @return bool Whether the user is currently connected and they are the connection owner.
*/
- public static function jetpack_connection_status() {
- $status = new Status();
- return rest_ensure_response( array(
- 'isActive' => Jetpack::is_active(),
- 'isStaging' => $status->is_staging_site(),
- 'isRegistered' => Jetpack::connection()->is_registered(),
- 'devMode' => array(
- 'isActive' => $status->is_development_mode(),
- 'constant' => defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG,
- 'url' => site_url() && false === strpos( site_url(), '.' ),
- 'filter' => apply_filters( 'jetpack_development_mode', false ),
- ),
- )
- );
+ 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', REST_Connector::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
}
/**
@@ -1029,14 +1528,14 @@ class Jetpack_Core_Json_Api_Endpoints {
$signature_data = wp_json_encode(
array(
'rest_route' => $_GET['rest_route'],
- 'timestamp' => intval( $_GET['timestamp'] ),
+ 'timestamp' => (int) $_GET['timestamp'],
'url' => wp_unslash( $_GET['url'] ),
)
);
if (
! function_exists( 'openssl_verify' )
- || ! openssl_verify(
+ || 1 !== openssl_verify(
$signature_data,
$signature,
JETPACK__DEBUGGER_PUBLIC_KEY
@@ -1046,7 +1545,7 @@ class Jetpack_Core_Json_Api_Endpoints {
}
// signature timestamp must be within 5min of current time
- if ( abs( time() - intval( $_GET['timestamp'] ) ) > 300 ) {
+ if ( abs( time() - (int) $_GET['timestamp'] ) > 300 ) {
return false;
}
@@ -1086,7 +1585,7 @@ class Jetpack_Core_Json_Api_Endpoints {
}
}
- $result = $errors[0];
+ $result = ( ! empty( $errors ) ) ? $errors[0] : null;
if ( count( $errors ) > 1 ) {
// Remove the primary error.
array_shift( $errors );
@@ -1125,15 +1624,24 @@ class Jetpack_Core_Json_Api_Endpoints {
return new WP_Error( 'site_id_missing' );
}
- $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/rewind', $site_id ) .'?force=wpcom', '2', array(), null, 'wpcom' );
+ if ( ! isset( $_GET['_cacheBuster'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $rewind_state = get_transient( 'jetpack_rewind_state' );
+ if ( $rewind_state ) {
+ return $rewind_state;
+ }
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/rewind', $site_id ) . '?force=wpcom', '2', array(), null, 'wpcom' );
if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
return new WP_Error( 'rewind_data_fetch_failed' );
}
- $body = wp_remote_retrieve_body( $response );
+ $body = wp_remote_retrieve_body( $response );
+ $result = json_decode( $body );
+ set_transient( 'jetpack_rewind_state', $result, 30 * MINUTE_IN_SECONDS );
- return json_decode( $body );
+ return $result;
}
/**
@@ -1147,10 +1655,11 @@ class Jetpack_Core_Json_Api_Endpoints {
$rewind_data = self::rewind_data();
if ( ! is_wp_error( $rewind_data ) ) {
- return rest_ensure_response( array(
- 'code' => 'success',
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
'message' => esc_html__( 'Backup & Scan data correctly received.', 'jetpack' ),
- 'data' => wp_json_encode( $rewind_data ),
+ 'data' => wp_json_encode( $rewind_data ),
)
);
}
@@ -1171,8 +1680,94 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
+ * Gets Scan state data.
+ *
+ * @since 8.5.0
+ *
+ * @return array|WP_Error Result from WPCOM API or error.
+ */
+ public static function scan_state() {
+
+ if ( ! isset( $_GET['_cacheBuster'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $scan_state = get_transient( 'jetpack_scan_state' );
+ if ( ! empty( $scan_state ) ) {
+ return $scan_state;
+ }
+ }
+ $site_id = Jetpack_Options::get_option( 'id' );
+
+ if ( ! $site_id ) {
+ return new WP_Error( 'site_id_missing' );
+ }
+ // The default timeout was too short in come cases.
+ add_filter( 'http_request_timeout', array( __CLASS__, 'increase_timeout_30' ), PHP_INT_MAX - 1 );
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/scan', $site_id ) . '?force=wpcom', '2', array(), null, 'wpcom' );
+ remove_filter( 'http_request_timeout', array( __CLASS__, 'increase_timeout_30' ), PHP_INT_MAX - 1 );
+
+ if ( wp_remote_retrieve_response_code( $response ) !== 200 ) {
+ return new WP_Error( 'scan_state_fetch_failed' );
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $result = json_decode( $body );
+ set_transient( 'jetpack_scan_state', $result, 30 * MINUTE_IN_SECONDS );
+
+ return $result;
+ }
+
+ /**
+ * Increases the request timeout value to 30 seconds.
+ *
+ * @return int Always returns 30.
+ */
+ public static function increase_timeout_30() {
+ return 30; // 30 Seconds
+ }
+
+ /**
+ * Get Scan state for API.
+ *
+ * @since 8.5.0
+ *
+ * @return WP_REST_Response|WP_Error REST response or error state.
+ */
+ public static function get_scan_state() {
+ $scan_state = self::scan_state();
+
+ if ( ! is_wp_error( $scan_state ) ) {
+ if ( ( new Host() )->is_woa_site() && ! empty( $scan_state->threats ) ) {
+ $scan_state->threats = array();
+ }
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html__( 'Scan state correctly received.', 'jetpack' ),
+ 'data' => wp_json_encode( $scan_state ),
+ )
+ );
+ }
+
+ if ( $scan_state->get_error_code() === 'scan_state_fetch_failed' ) {
+ return new WP_Error( 'scan_state_fetch_failed', esc_html__( 'Failed fetching rewind data. Try again later.', 'jetpack' ), array( 'status' => 400 ) );
+ }
+
+ if ( $scan_state->get_error_code() === 'site_id_missing' ) {
+ return new WP_Error( 'site_id_missing', esc_html__( 'The ID of this site does not exist.', 'jetpack' ), array( 'status' => 404 ) );
+ }
+
+ return new WP_Error(
+ 'error_get_rewind_data',
+ esc_html__( 'Could not retrieve Scan state.', 'jetpack' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
* Disconnects Jetpack from the WordPress.com Servers
*
+ * @deprecated since Jetpack 10.0.0
+ * @see Automattic\Jetpack\Connection\REST_Connector::disconnect_site()
+ *
* @uses Jetpack::disconnect();
* @since 4.3.0
*
@@ -1181,35 +1776,41 @@ class Jetpack_Core_Json_Api_Endpoints {
* @return bool|WP_Error True if Jetpack successfully disconnected.
*/
public static function disconnect_site( $request ) {
+ _deprecated_function( __METHOD__, 'jetpack-10.0.0', '\Automattic\Jetpack\Connection\REST_Connector::disconnect_site' );
if ( ! isset( $request['isActive'] ) || $request['isActive'] !== false ) {
return new WP_Error( 'invalid_param', esc_html__( 'Invalid Parameter', 'jetpack' ), array( 'status' => 404 ) );
}
- if ( Jetpack::is_active() ) {
+ if ( Jetpack::is_connection_ready() ) {
Jetpack::disconnect();
return rest_ensure_response( array( 'code' => 'success' ) );
}
- return new WP_Error( 'disconnect_failed', esc_html__( 'Was not able to disconnect the site. Please try again.', 'jetpack' ), array( 'status' => 400 ) );
+ return new WP_Error( 'disconnect_failed', esc_html__( 'Was not able to disconnect the site. Please try again.', 'jetpack' ), array( 'status' => 400 ) );
}
/**
* Registers the Jetpack site
*
- * @uses Jetpack::try_registration();
- * @since 7.7.0
+ * @deprecated since Jetpack 9.7.0
+ * @see Automattic\Jetpack\Connection\REST_Connector::connection_register()
*
* @param WP_REST_Request $request The request sent to the WP REST API.
*
* @return bool|WP_Error True if Jetpack successfully registered
*/
public static function register_site( $request ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.7.0', '\Automattic\Jetpack\Connection\REST_Connector::connection_register' );
+
if ( ! wp_verify_nonce( $request->get_param( 'registration_nonce' ), 'jetpack-registration-nonce' ) ) {
return new WP_Error( 'invalid_nonce', __( 'Unable to verify your request.', 'jetpack' ), array( 'status' => 403 ) );
}
- $response = Jetpack::try_registration();
+ if ( isset( $request['from'] ) ) {
+ Jetpack::connection()->add_register_request_param( 'from', (string) $request['from'] );
+ }
+ $response = Jetpack::connection()->try_registration();
if ( is_wp_error( $response ) ) {
return $response;
@@ -1217,8 +1818,9 @@ class Jetpack_Core_Json_Api_Endpoints {
return rest_ensure_response(
array(
- 'authorizeUrl' => Jetpack::build_authorize_url( false, true )
- ) );
+ 'authorizeUrl' => Jetpack::build_authorize_url( false, true ),
+ )
+ );
}
/**
@@ -1231,13 +1833,16 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @return string|WP_Error A raw URL if the connection URL could be built; error message otherwise.
*/
- public static function build_connect_url() {
- $url = Jetpack::init()->build_connect_url( true, false, false );
+ public static function build_connect_url( $request = array() ) {
+ $from = isset( $request['from'] ) ? $request['from'] : false;
+ $redirect = isset( $request['redirect'] ) ? $request['redirect'] : false;
+
+ $url = Jetpack::init()->build_connect_url( true, $redirect, $from );
if ( $url ) {
return rest_ensure_response( $url );
}
- return new WP_Error( 'build_connect_url_failed', esc_html__( 'Unable to build the connect URL. Please reload the page and try again.', 'jetpack' ), array( 'status' => 400 ) );
+ return new WP_Error( 'build_connect_url_failed', esc_html__( 'Unable to build the connect URL. Please reload the page and try again.', 'jetpack' ), array( 'status' => 400 ) );
}
/**
@@ -1245,102 +1850,33 @@ class Jetpack_Core_Json_Api_Endpoints {
* Information about the master/primary user.
* Information about the current user.
*
- * @since 4.3.0
+ * @deprecated since Jetpack 10.0.0
+ * @see Automattic\Jetpack\Connection\REST_Connector::get_user_connection_data()
*
- * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @since 4.3.0
*
* @return object
*/
public static function get_user_connection_data() {
- require_once( JETPACK__PLUGIN_DIR . '_inc/lib/admin-pages/class.jetpack-react-page.php' );
-
- $response = array(
-// 'othersLinked' => Jetpack::get_other_linked_admins(),
- 'currentUser' => jetpack_current_user_data(),
- );
- return rest_ensure_response( $response );
- }
-
- /**
- * Change the master user.
- *
- * @since 6.2.0
- *
- * @param WP_REST_Request $request The request sent to the WP REST API.
- *
- * @return bool|WP_Error True if owner successfully changed.
- */
- public static function set_connection_owner( $request ) {
- if ( ! isset( $request['owner'] ) ) {
- return new WP_Error(
- 'invalid_param',
- esc_html__( 'Invalid Parameter', 'jetpack' ),
- array( 'status' => 400 )
- );
- }
+ _deprecated_function( __METHOD__, 'jetpack-10.0.0', '\Automattic\Jetpack\Connection\REST_Connector::get_user_connection_data' );
- $new_owner_id = $request['owner'];
- if ( ! user_can( $new_owner_id, 'administrator' ) ) {
- return new WP_Error(
- 'new_owner_not_admin',
- esc_html__( 'New owner is not admin', 'jetpack' ),
- array( 'status' => 400 )
- );
- }
-
- if ( $new_owner_id === get_current_user_id() ) {
- return new WP_Error(
- 'new_owner_is_current_user',
- esc_html__( 'New owner is same as current user', 'jetpack' ),
- array( 'status' => 400 )
- );
- }
+ require_once JETPACK__PLUGIN_DIR . '_inc/lib/admin-pages/class.jetpack-react-page.php';
- if ( ! Jetpack::is_user_connected( $new_owner_id ) ) {
- return new WP_Error(
- 'new_owner_not_connected',
- esc_html__( 'New owner is not connected', 'jetpack' ),
- array( 'status' => 400 )
- );
- }
-
- // Update the master user in Jetpack
- $updated = Jetpack_Options::update_option( 'master_user', $new_owner_id );
-
- // Notify WPCOM about the master user 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 ( $updated && ! $xml->isError() ) {
-
- // Track it
- if ( class_exists( 'Automattic\Jetpack\Tracking' ) ) {
- $tracking = new Tracking();
- $tracking->record_user_event( 'set_connection_owner_success' );
- }
+ $connection_owner = ( new Connection_Manager() )->get_connection_owner();
+ $owner_display_name = false === $connection_owner ? null : $connection_owner->data->display_name;
- return rest_ensure_response(
- array(
- 'code' => 'success',
- )
- );
- }
- return new WP_Error(
- 'error_setting_new_owner',
- esc_html__( 'Could not confirm new owner.', 'jetpack' ),
- array( 'status' => 500 )
+ $response = array(
+ 'currentUser' => jetpack_current_user_data(),
+ 'connectionOwner' => $owner_display_name,
);
+ return rest_ensure_response( $response );
}
/**
* Unlinks current user from the WordPress.com Servers.
*
* @since 4.3.0
- * @uses Automattic\Jetpack\Connection\Manager::disconnect_user
+ * @uses Automattic\Jetpack\Connection\Manager->disconnect_user
*
* @param WP_REST_Request $request The request sent to the WP REST API.
*
@@ -1352,15 +1888,15 @@ class Jetpack_Core_Json_Api_Endpoints {
return new WP_Error( 'invalid_param', esc_html__( 'Invalid Parameter', 'jetpack' ), array( 'status' => 404 ) );
}
- if ( Connection_Manager::disconnect_user() ) {
+ if ( ( new Connection_Manager( 'jetpack' ) )->disconnect_user() ) {
return rest_ensure_response(
array(
- 'code' => 'success'
+ 'code' => 'success',
)
);
}
- return new WP_Error( 'unlink_user_failed', esc_html__( 'Was not able to unlink the user. Please try again.', 'jetpack' ), array( 'status' => 400 ) );
+ return new WP_Error( 'unlink_user_failed', esc_html__( 'Was not able to unlink the user. Please try again.', 'jetpack' ), array( 'status' => 400 ) );
}
/**
@@ -1373,7 +1909,7 @@ class Jetpack_Core_Json_Api_Endpoints {
* @return WP_REST_Response|WP_Error Response, else error.
*/
public static function get_user_tracking_settings( $request ) {
- if ( ! Jetpack::is_user_connected() ) {
+ if ( ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
$response = array(
'tracks_opt_out' => true, // Default to opt-out if not connected to wp.com.
);
@@ -1406,7 +1942,7 @@ class Jetpack_Core_Json_Api_Endpoints {
* @return WP_REST_Response|WP_Error Response, else error.
*/
public static function update_user_tracking_settings( $request ) {
- if ( ! Jetpack::is_user_connected() ) {
+ if ( ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
$response = array(
'tracks_opt_out' => true, // Default to opt-out if not connected to wp.com.
);
@@ -1432,17 +1968,17 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
- * Fetch site data from .com including the site's current plan.
+ * Fetch site data from .com including the site's current plan and the site's products.
*
* @since 5.5.0
*
- * @return array Array of site properties.
+ * @return stdClass|WP_Error
*/
public static function site_data() {
$site_id = Jetpack_Options::get_option( 'id' );
if ( ! $site_id ) {
- new WP_Error( 'site_id_missing' );
+ return new WP_Error( 'site_id_missing', '', array( 'api_error_code' => __( 'site_id_missing', 'jetpack' ) ) );
}
$args = array( 'headers' => array() );
@@ -1453,43 +1989,72 @@ class Jetpack_Core_Json_Api_Endpoints {
$args['headers']['Cookie'] = "store_sandbox=$secret;";
}
- $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d', $site_id ) .'?force=wpcom', '1.1', $args );
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d', $site_id ) . '?force=wpcom', '1.1', $args );
+ $body = wp_remote_retrieve_body( $response );
+ $data = $body ? json_decode( $body ) : null;
if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
- return new WP_Error( 'site_data_fetch_failed' );
+ $error_info = array(
+ 'api_error_code' => null,
+ 'api_http_code' => wp_remote_retrieve_response_code( $response ),
+ );
+
+ if ( is_wp_error( $response ) ) {
+ $error_info['api_error_code'] = $response->get_error_code() ? wp_strip_all_tags( $response->get_error_code() ) : null;
+ } elseif ( $data && ! empty( $data->error ) ) {
+ $error_info['api_error_code'] = $data->error;
+ }
+
+ return new WP_Error( 'site_data_fetch_failed', '', $error_info );
}
Jetpack_Plan::update_from_sites_response( $response );
- $body = wp_remote_retrieve_body( $response );
-
- return json_decode( $body );
+ return $data;
}
/**
* Get site data, including for example, the site's current plan.
*
+ * @return WP_Error|WP_HTTP_Response|WP_REST_Response
* @since 4.3.0
- *
- * @return array Array of site properties.
*/
public static function get_site_data() {
$site_data = self::site_data();
if ( ! is_wp_error( $site_data ) ) {
- return rest_ensure_response( array(
- 'code' => 'success',
+ /**
+ * Fires when the site data was successfully returned from the /sites/%d wpcom endpoint.
+ *
+ * @since 8.7.0
+ */
+ do_action( 'jetpack_get_site_data_success' );
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
'message' => esc_html__( 'Site data correctly received.', 'jetpack' ),
'data' => json_encode( $site_data ),
)
);
}
- if ( $site_data->get_error_code() === 'site_data_fetch_failed' ) {
- return new WP_Error( 'site_data_fetch_failed', esc_html__( 'Failed fetching site data. Try again later.', 'jetpack' ), array( 'status' => 400 ) );
- }
- if ( $site_data->get_error_code() === 'site_id_missing' ) {
- return new WP_Error( 'site_id_missing', esc_html__( 'The ID of this site does not exist.', 'jetpack' ), array( 'status' => 404 ) );
+ $error_data = $site_data->get_error_data();
+
+ if ( empty( $error_data['api_error_code'] ) ) {
+ $error_message = esc_html__( 'Failed fetching site data from WordPress.com. If the problem persists, try reconnecting Jetpack.', 'jetpack' );
+ } else {
+ /* translators: %s is an error code (e.g. `token_mismatch`) */
+ $error_message = sprintf( esc_html__( 'Failed fetching site data from WordPress.com (%s). If the problem persists, try reconnecting Jetpack.', 'jetpack' ), $error_data['api_error_code'] );
}
+
+ return new WP_Error(
+ $site_data->get_error_code(),
+ $error_message,
+ array(
+ 'status' => 400,
+ 'api_error_code' => empty( $error_data['api_error_code'] ) ? null : $error_data['api_error_code'],
+ 'api_http_code' => empty( $error_data['api_http_code'] ) ? null : $error_data['api_http_code'],
+ )
+ );
}
/**
@@ -1510,12 +2075,18 @@ class Jetpack_Core_Json_Api_Endpoints {
);
}
- $response = Client::wpcom_json_api_request_as_user( "/sites/$site_id/activity", '2', array(
- 'method' => 'GET',
- 'headers' => array(
- 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ $response = Client::wpcom_json_api_request_as_user(
+ "/sites/$site_id/activity",
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'X-Forwarded-For' => Jetpack::current_user_ip( true ),
+ ),
),
- ), null, 'wpcom' );
+ null,
+ 'wpcom'
+ );
$response_code = wp_remote_retrieve_response_code( $response );
if ( 200 !== $response_code ) {
@@ -1536,7 +2107,8 @@ class Jetpack_Core_Json_Api_Endpoints {
);
}
- return rest_ensure_response( array(
+ return rest_ensure_response(
+ array(
'code' => 'success',
'data' => $data->current->orderedItems,
)
@@ -1544,75 +2116,6 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
- * Handles identity crisis mitigation, confirming safe mode for this site.
- *
- * @since 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' ),
- array( 'status' => 500 )
- );
- }
-
- /**
- * Handles identity crisis mitigation, migrating stats and subscribers from old url to this, new url.
- *
- * @since 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' ),
- 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' ),
- 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 4.4.0
- * @return bool|WP_Error
- */
- public static function start_fresh_connection() {
- // First clear the options / disconnect.
- Jetpack::disconnect();
- return self::build_connect_url();
- }
-
- /**
* Reset Jetpack options
*
* @since 4.3.0
@@ -1634,8 +2137,8 @@ class Jetpack_Core_Json_Api_Endpoints {
if ( isset( $request['options'] ) ) {
$data = $request['options'];
- switch( $data ) {
- case ( 'options' ) :
+ switch ( $data ) {
+ case ( 'options' ):
$options_to_reset = Jetpack::get_jetpack_options_for_reset();
// Reset the Jetpack options
@@ -1651,19 +2154,23 @@ class Jetpack_Core_Json_Api_Endpoints {
$default_modules = Jetpack::get_default_modules();
Jetpack::update_active_modules( $default_modules );
- return rest_ensure_response( array(
- 'code' => 'success',
- 'message' => esc_html__( 'Jetpack options reset.', 'jetpack' ),
- ) );
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html__( 'Jetpack options reset.', 'jetpack' ),
+ )
+ );
break;
case 'modules':
$default_modules = Jetpack::get_default_modules();
Jetpack::update_active_modules( $default_modules );
- return rest_ensure_response( array(
- 'code' => 'success',
- 'message' => esc_html__( 'Modules reset to default.', 'jetpack' ),
- ) );
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html__( 'Modules reset to default.', 'jetpack' ),
+ )
+ );
break;
default:
@@ -1686,7 +2193,7 @@ class Jetpack_Core_Json_Api_Endpoints {
*/
public static function get_updateable_parameters( $selector = '' ) {
$parameters = array(
- 'context' => array(
+ 'context' => array(
'default' => 'edit',
),
);
@@ -1712,7 +2219,7 @@ class Jetpack_Core_Json_Api_Endpoints {
$options = array(
// Carousel
- 'carousel_background_color' => array(
+ 'carousel_background_color' => array(
'description' => esc_html__( 'Color scheme.', 'jetpack' ),
'type' => 'string',
'default' => 'black',
@@ -1720,31 +2227,46 @@ class Jetpack_Core_Json_Api_Endpoints {
'black',
'white',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'black' => esc_html__( 'Black', 'jetpack' ),
'white' => esc_html__( 'White', 'jetpack' ),
),
'validate_callback' => __CLASS__ . '::validate_list_item',
'jp_group' => 'carousel',
),
- 'carousel_display_exif' => array(
- 'description' => wp_kses( sprintf( __( 'Show photo metadata (<a href="https://en.wikipedia.org/wiki/Exchangeable_image_file_format" target="_blank">Exif</a>) in carousel, when available.', 'jetpack' ) ), array( 'a' => array( 'href' => true, 'target' => true ) ) ),
+ 'carousel_display_exif' => array(
+ 'description' => wp_kses(
+ sprintf( __( 'Show photo metadata (<a href="https://en.wikipedia.org/wiki/Exchangeable_image_file_format" target="_blank">Exif</a>) in carousel, when available.', 'jetpack' ) ),
+ array(
+ 'a' => array(
+ 'href' => true,
+ 'target' => true,
+ ),
+ )
+ ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'carousel',
),
+ 'carousel_display_comments' => array(
+ 'description' => esc_html__( 'Show comments area in carousel', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'carousel',
+ ),
// Comments
- 'highlander_comment_form_prompt' => array(
+ 'highlander_comment_form_prompt' => array(
'description' => esc_html__( 'Greeting Text', 'jetpack' ),
'type' => 'string',
'default' => esc_html__( 'Leave a Reply', 'jetpack' ),
'sanitize_callback' => 'sanitize_text_field',
'jp_group' => 'comments',
),
- 'jetpack_comment_form_color_scheme' => array(
- 'description' => esc_html__( "Color scheme", 'jetpack' ),
+ 'jetpack_comment_form_color_scheme' => array(
+ 'description' => esc_html__( 'Color scheme', 'jetpack' ),
'type' => 'string',
'default' => 'light',
'enum' => array(
@@ -1752,7 +2274,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'dark',
'transparent',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'light' => esc_html__( 'Light', 'jetpack' ),
'dark' => esc_html__( 'Dark', 'jetpack' ),
'transparent' => esc_html__( 'Transparent', 'jetpack' ),
@@ -1762,28 +2284,28 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Custom Content Types
- 'jetpack_portfolio' => array(
+ 'jetpack_portfolio' => array(
'description' => esc_html__( 'Enable or disable Jetpack portfolio post type.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'custom-content-types',
),
- 'jetpack_portfolio_posts_per_page' => array(
+ 'jetpack_portfolio_posts_per_page' => array(
'description' => esc_html__( 'Number of entries to show at most in Portfolio pages.', 'jetpack' ),
'type' => 'integer',
'default' => 10,
'validate_callback' => __CLASS__ . '::validate_posint',
'jp_group' => 'custom-content-types',
),
- 'jetpack_testimonial' => array(
+ 'jetpack_testimonial' => array(
'description' => esc_html__( 'Enable or disable Jetpack testimonial post type.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'custom-content-types',
),
- 'jetpack_testimonial_posts_per_page' => array(
+ 'jetpack_testimonial_posts_per_page' => array(
'description' => esc_html__( 'Number of entries to show at most in Testimonial pages.', 'jetpack' ),
'type' => 'integer',
'default' => 10,
@@ -1792,7 +2314,7 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Galleries
- 'tiled_galleries' => array(
+ 'tiled_galleries' => array(
'description' => esc_html__( 'Display all your gallery pictures in a cool mosaic.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -1800,7 +2322,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'tiled-gallery',
),
- 'gravatar_disable_hovercards' => array(
+ 'gravatar_disable_hovercards' => array(
'description' => esc_html__( "View people's profiles when you mouse over their Gravatars", 'jetpack' ),
'type' => 'string',
'default' => 'enabled',
@@ -1809,7 +2331,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'enabled',
'disabled',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'enabled' => esc_html__( 'Enabled', 'jetpack' ),
'disabled' => esc_html__( 'Disabled', 'jetpack' ),
),
@@ -1818,14 +2340,14 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Infinite Scroll
- 'infinite_scroll' => array(
+ 'infinite_scroll' => array(
'description' => esc_html__( 'To infinity and beyond', 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'infinite-scroll',
),
- 'infinite_scroll_google_analytics' => array(
+ 'infinite_scroll_google_analytics' => array(
'description' => esc_html__( 'Use Google Analytics with Infinite Scroll', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -1834,7 +2356,7 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Likes
- 'wpl_default' => array(
+ 'wpl_default' => array(
'description' => esc_html__( 'WordPress.com Likes are', 'jetpack' ),
'type' => 'string',
'default' => 'on',
@@ -1842,14 +2364,14 @@ class Jetpack_Core_Json_Api_Endpoints {
'on',
'off',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'on' => esc_html__( 'On for all posts', 'jetpack' ),
'off' => esc_html__( 'Turned on per post', 'jetpack' ),
),
'validate_callback' => __CLASS__ . '::validate_list_item',
'jp_group' => 'likes',
),
- 'social_notifications_like' => array(
+ 'social_notifications_like' => array(
'description' => esc_html__( 'Send email notification when someone likes a post', 'jetpack' ),
'type' => 'boolean',
'default' => 1,
@@ -1865,7 +2387,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'markdown',
),
- 'wpcom_publish_posts_with_markdown' => array(
+ 'wpcom_publish_posts_with_markdown' => array(
'description' => esc_html__( 'Use Markdown for posts.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -1873,31 +2395,8 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'markdown',
),
- // Mobile Theme
- 'wp_mobile_excerpt' => array(
- 'description' => esc_html__( 'Excerpts', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 0,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'minileven',
- ),
- 'wp_mobile_featured_images' => array(
- 'description' => esc_html__( 'Featured Images', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 0,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'minileven',
- ),
- 'wp_mobile_app_promos' => array(
- 'description' => esc_html__( 'Show a promo for the WordPress mobile apps in the footer of the mobile theme.', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 0,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'minileven',
- ),
-
// Monitor
- 'monitor_receive_notifications' => array(
+ 'monitor_receive_notifications' => array(
'description' => esc_html__( 'Receive Monitor Email Notifications.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -1906,7 +2405,7 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Post by Email
- 'post_by_email_address' => array(
+ 'post_by_email_address' => array(
'description' => esc_html__( 'Email Address', 'jetpack' ),
'type' => 'string',
'default' => 'noop',
@@ -1916,7 +2415,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'regenerate',
'delete',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'noop' => '',
'create' => esc_html__( 'Create Post by Email address', 'jetpack' ),
'regenerate' => esc_html__( 'Regenerate Post by Email address', 'jetpack' ),
@@ -1927,14 +2426,14 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Protect
- 'jetpack_protect_key' => array(
+ 'jetpack_protect_key' => array(
'description' => esc_html__( 'Protect API key', 'jetpack' ),
'type' => 'string',
'default' => '',
'validate_callback' => __CLASS__ . '::validate_alphanum',
'jp_group' => 'protect',
),
- 'jetpack_protect_global_whitelist' => array(
+ 'jetpack_protect_global_whitelist' => array(
'description' => esc_html__( 'Protect global whitelist', 'jetpack' ),
'type' => 'string',
'default' => '',
@@ -1944,17 +2443,17 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Sharing
- 'sharing_services' => array(
+ 'sharing_services' => array(
'description' => esc_html__( 'Enabled Services and those hidden behind a button', 'jetpack' ),
'type' => 'object',
'default' => array(
- 'visible' => array( 'twitter', 'facebook', 'google-plus-1' ),
+ 'visible' => array( 'twitter', 'facebook' ),
'hidden' => array(),
),
'validate_callback' => __CLASS__ . '::validate_services',
'jp_group' => 'sharedaddy',
),
- 'button_style' => array(
+ 'button_style' => array(
'description' => esc_html__( 'Button Style', 'jetpack' ),
'type' => 'string',
'default' => 'icon',
@@ -1964,7 +2463,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'text',
'official',
),
- 'enum_labels' => array(
+ 'enum_labels' => array(
'icon-text' => esc_html__( 'Icon + text', 'jetpack' ),
'icon' => esc_html__( 'Icon only', 'jetpack' ),
'text' => esc_html__( 'Text only', 'jetpack' ),
@@ -1973,7 +2472,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'validate_callback' => __CLASS__ . '::validate_list_item',
'jp_group' => 'sharedaddy',
),
- 'sharing_label' => array(
+ 'sharing_label' => array(
'description' => esc_html__( 'Sharing Label', 'jetpack' ),
'type' => 'string',
'default' => '',
@@ -1981,17 +2480,17 @@ class Jetpack_Core_Json_Api_Endpoints {
'sanitize_callback' => 'esc_html',
'jp_group' => 'sharedaddy',
),
- 'show' => array(
+ 'show' => array(
'description' => esc_html__( 'Views where buttons are shown', 'jetpack' ),
'type' => 'array',
'items' => array(
- 'type' => 'string'
+ 'type' => 'string',
),
'default' => array( 'post' ),
'validate_callback' => __CLASS__ . '::validate_sharing_show',
'jp_group' => 'sharedaddy',
),
- 'jetpack-twitter-cards-site-tag' => array(
+ 'jetpack-twitter-cards-site-tag' => array(
'description' => esc_html__( "The Twitter username of the owner of this site's domain.", 'jetpack' ),
'type' => 'string',
'default' => '',
@@ -1999,14 +2498,14 @@ class Jetpack_Core_Json_Api_Endpoints {
'sanitize_callback' => 'esc_html',
'jp_group' => 'sharedaddy',
),
- 'sharedaddy_disable_resources' => array(
+ 'sharedaddy_disable_resources' => array(
'description' => esc_html__( 'Disable CSS and JS', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'sharedaddy',
),
- 'custom' => array(
+ 'custom' => array(
'description' => esc_html__( 'Custom sharing services added by user.', 'jetpack' ),
'type' => 'object',
'default' => array(
@@ -2018,7 +2517,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'sharedaddy',
),
// Not an option, but an action that can be perfomed on the list of custom services passing the service ID.
- 'sharing_delete_service' => array(
+ 'sharing_delete_service' => array(
'description' => esc_html__( 'Delete custom sharing service.', 'jetpack' ),
'type' => 'string',
'default' => '',
@@ -2027,14 +2526,14 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// SSO
- 'jetpack_sso_require_two_step' => array(
+ 'jetpack_sso_require_two_step' => array(
'description' => esc_html__( 'Require Two-Step Authentication', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'sso',
),
- 'jetpack_sso_match_by_email' => array(
+ 'jetpack_sso_match_by_email' => array(
'description' => esc_html__( 'Match by Email', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -2043,21 +2542,21 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Subscriptions
- 'stb_enabled' => array(
+ 'stb_enabled' => array(
'description' => esc_html__( "Show a <em>'follow blog'</em> option in the comment form", 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'subscriptions',
),
- 'stc_enabled' => array(
+ 'stc_enabled' => array(
'description' => esc_html__( "Show a <em>'follow comments'</em> option in the comment form", 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'subscriptions',
),
- 'social_notifications_subscribe' => array(
+ 'social_notifications_subscribe' => array(
'description' => esc_html__( 'Send email notification when someone follows my blog', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -2066,14 +2565,14 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Related Posts
- 'show_headline' => array(
+ 'show_headline' => array(
'description' => esc_html__( 'Highlight related content with a heading', 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'related-posts',
),
- 'show_thumbnails' => array(
+ 'show_thumbnails' => array(
'description' => esc_html__( 'Show a thumbnail image where available', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
@@ -2081,162 +2580,218 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'related-posts',
),
+ // Search.
+ 'instant_search_enabled' => array(
+ 'description' => esc_html__( 'Enable Instant Search', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'search',
+ ),
+
+ 'has_jetpack_search_product' => array(
+ 'description' => esc_html__( 'Has an active Jetpack Search product purchase', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'settings',
+ ),
+
+ 'search_auto_config' => array(
+ 'description' => esc_html__( 'Trigger an auto config of instant search', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'search',
+ ),
+
// Verification Tools
- 'google' => array(
+ 'google' => array(
'description' => esc_html__( 'Google Search Console', 'jetpack' ),
'type' => 'string',
'default' => '',
'validate_callback' => __CLASS__ . '::validate_verification_service',
'jp_group' => 'verification-tools',
),
- 'bing' => array(
+ 'bing' => array(
'description' => esc_html__( 'Bing Webmaster Center', 'jetpack' ),
'type' => 'string',
'default' => '',
'validate_callback' => __CLASS__ . '::validate_verification_service',
'jp_group' => 'verification-tools',
),
- 'pinterest' => array(
+ 'pinterest' => array(
'description' => esc_html__( 'Pinterest Site Verification', 'jetpack' ),
'type' => 'string',
'default' => '',
'validate_callback' => __CLASS__ . '::validate_verification_service',
'jp_group' => 'verification-tools',
),
- 'yandex' => array(
+ 'yandex' => array(
'description' => esc_html__( 'Yandex Site Verification', 'jetpack' ),
'type' => 'string',
'default' => '',
'validate_callback' => __CLASS__ . '::validate_verification_service',
'jp_group' => 'verification-tools',
),
- 'enable_header_ad' => array(
- 'description' => esc_html__( 'Display an ad unit at the top of each page.', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_approved' => array(
- 'description' => esc_html__( 'Is site approved for WordAds?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 0,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_second_belowpost' => array(
- 'description' => esc_html__( 'Display second ad below post?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_display_front_page' => array(
- 'description' => esc_html__( 'Display ads on the front page?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_display_post' => array(
- 'description' => esc_html__( 'Display ads on posts?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_display_page' => array(
- 'description' => esc_html__( 'Display ads on pages?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_display_archive' => array(
- 'description' => esc_html__( 'Display ads on archive pages?', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'wordads',
- ),
- 'wordads_custom_adstxt' => array(
- 'description' => esc_html__( 'Custom ads.txt entries', 'jetpack' ),
- 'type' => 'string',
- 'default' => '',
- 'validate_callback' => __CLASS__ . '::validate_string',
- 'sanitize_callback' => 'sanitize_textarea_field',
- 'jp_group' => 'wordads',
+ 'facebook' => array(
+ 'description' => esc_html__( 'Facebook Domain Verification', 'jetpack' ),
+ 'type' => 'string',
+ 'default' => '',
+ 'validate_callback' => __CLASS__ . '::validate_verification_service',
+ 'jp_group' => 'verification-tools',
+ ),
+
+ // WordAds.
+ 'enable_header_ad' => array(
+ 'description' => esc_html__( 'Display an ad unit at the top of each page.', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_approved' => array(
+ 'description' => esc_html__( 'Is site approved for WordAds?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_second_belowpost' => array(
+ 'description' => esc_html__( 'Display second ad below post?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_display_front_page' => array(
+ 'description' => esc_html__( 'Display ads on the front page?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_display_post' => array(
+ 'description' => esc_html__( 'Display ads on posts?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_display_page' => array(
+ 'description' => esc_html__( 'Display ads on pages?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_display_archive' => array(
+ 'description' => esc_html__( 'Display ads on archive pages?', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 1,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_custom_adstxt_enabled' => array(
+ 'description' => esc_html__( 'Custom ads.txt', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_custom_adstxt' => array(
+ 'description' => esc_html__( 'Custom ads.txt entries', 'jetpack' ),
+ 'type' => 'string',
+ 'default' => '',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ 'sanitize_callback' => 'sanitize_textarea_field',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_ccpa_enabled' => array(
+ 'description' => esc_html__( 'Enable support for California Consumer Privacy Act', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'wordads',
+ ),
+ 'wordads_ccpa_privacy_policy_url' => array(
+ 'description' => esc_html__( 'Privacy Policy URL', 'jetpack' ),
+ 'type' => 'string',
+ 'default' => '',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ 'sanitize_callback' => 'sanitize_text_field',
+ 'jp_group' => 'wordads',
),
// Google Analytics
- 'google_analytics_tracking_id' => array(
- 'description' => esc_html__( 'Google Analytics', 'jetpack' ),
- 'type' => 'string',
- 'default' => '',
- 'validate_callback' => __CLASS__ . '::validate_alphanum',
- 'jp_group' => 'google-analytics',
+ 'google_analytics_tracking_id' => array(
+ 'description' => esc_html__( 'Google Analytics', 'jetpack' ),
+ 'type' => 'string',
+ 'default' => '',
+ 'validate_callback' => __CLASS__ . '::validate_alphanum',
+ 'jp_group' => 'google-analytics',
),
// Stats
- 'admin_bar' => array(
+ 'admin_bar' => array(
'description' => esc_html__( 'Include a small chart in your admin bar with a 48-hour traffic snapshot.', 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'stats',
),
- 'roles' => array(
+ 'roles' => array(
'description' => esc_html__( 'Select the roles that will be able to view stats reports.', 'jetpack' ),
'type' => 'array',
'items' => array(
- 'type' => 'string'
+ 'type' => 'string',
),
'default' => array( 'administrator' ),
'validate_callback' => __CLASS__ . '::validate_stats_roles',
'sanitize_callback' => __CLASS__ . '::sanitize_stats_allowed_roles',
'jp_group' => 'stats',
),
- 'count_roles' => array(
+ 'count_roles' => array(
'description' => esc_html__( 'Count the page views of registered users who are logged in.', 'jetpack' ),
'type' => 'array',
'items' => array(
- 'type' => 'string'
+ 'type' => 'string',
),
'default' => array( 'administrator' ),
'validate_callback' => __CLASS__ . '::validate_stats_roles',
'jp_group' => 'stats',
),
- 'blog_id' => array(
+ 'blog_id' => array(
'description' => esc_html__( 'Blog ID.', 'jetpack' ),
'type' => 'boolean',
'default' => 0,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'stats',
),
- 'do_not_track' => array(
+ 'do_not_track' => array(
'description' => esc_html__( 'Do not track.', 'jetpack' ),
'type' => 'boolean',
'default' => 1,
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'stats',
),
- 'hide_smile' => array(
- 'description' => esc_html__( 'Hide the stats smiley face image.', 'jetpack' ),
- 'type' => 'boolean',
- 'default' => 1,
- 'validate_callback' => __CLASS__ . '::validate_boolean',
- 'jp_group' => 'stats',
- ),
- 'version' => array(
+ 'version' => array(
'description' => esc_html__( 'Version.', 'jetpack' ),
'type' => 'integer',
'default' => 9,
'validate_callback' => __CLASS__ . '::validate_posint',
'jp_group' => 'stats',
),
+ 'collapse_nudges' => array(
+ 'description' => esc_html__( 'Collapse upgrade nudges', 'jetpack' ),
+ 'type' => 'boolean',
+ 'default' => 0,
+ 'validate_callback' => __CLASS__ . '::validate_boolean',
+ 'jp_group' => 'stats',
+ ),
// Akismet - Not a module, but a plugin. The options can be passed and handled differently.
- 'akismet_show_user_comments_approved' => array(
+ 'akismet_show_user_comments_approved' => array(
'description' => '',
'type' => 'boolean',
'default' => 0,
@@ -2244,7 +2799,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'settings',
),
- 'wordpress_api_key' => array(
+ 'wordpress_api_key' => array(
'description' => '',
'type' => 'string',
'default' => '',
@@ -2253,7 +2808,7 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Apps card on dashboard
- 'dismiss_dash_app_card' => array(
+ 'dismiss_dash_app_card' => array(
'description' => '',
'type' => 'boolean',
'default' => 0,
@@ -2262,7 +2817,7 @@ class Jetpack_Core_Json_Api_Endpoints {
),
// Empty stats card dismiss
- 'dismiss_empty_stats_card' => array(
+ 'dismiss_empty_stats_card' => array(
'description' => '',
'type' => 'boolean',
'default' => 0,
@@ -2270,14 +2825,14 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'settings',
),
- 'lang_id' => array(
+ 'lang_id' => array(
'description' => esc_html__( 'Primary language for the site.', 'jetpack' ),
- 'type' => 'string',
- 'default' => 'en_US',
- 'jp_group' => 'settings',
+ 'type' => 'string',
+ 'default' => 'en_US',
+ 'jp_group' => 'settings',
),
- 'onboarding' => array(
+ 'onboarding' => array(
'description' => '',
'type' => 'object',
'default' => array(
@@ -2299,6 +2854,30 @@ class Jetpack_Core_Json_Api_Endpoints {
'jp_group' => 'settings',
),
+ // SEO Tools.
+ 'advanced_seo_front_page_description' => array(
+ 'description' => esc_html__( 'Front page meta description.', 'jetpack' ),
+ 'type' => 'string',
+ 'default' => '',
+ 'sanitize_callback' => 'Jetpack_SEO_Utils::sanitize_front_page_meta_description',
+ 'jp_group' => 'seo-tools',
+ ),
+
+ 'advanced_seo_title_formats' => array(
+ 'description' => esc_html__( 'SEO page title structures.', 'jetpack' ),
+ 'type' => 'object',
+ 'default' => array(
+ 'archives' => array(),
+ 'front_page' => array(),
+ 'groups' => array(),
+ 'pages' => array(),
+ 'posts' => array(),
+ ),
+ 'jp_group' => 'seo-tools',
+ 'validate_callback' => 'Jetpack_SEO_Titles::are_valid_title_formats',
+ 'sanitize_callback' => 'Jetpack_SEO_Titles::sanitize_title_formats',
+ ),
+
);
// Add modules to list so they can be toggled
@@ -2311,7 +2890,7 @@ class Jetpack_Core_Json_Api_Endpoints {
'validate_callback' => __CLASS__ . '::validate_boolean',
'jp_group' => 'modules',
);
- foreach( $modules as $module ) {
+ foreach ( $modules as $module ) {
$options[ $module ] = $module_args;
}
}
@@ -2378,14 +2957,15 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string|bool $value Value to check.
+ * @param string|bool $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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
public static function validate_boolean( $value, $request, $param ) {
- if ( ! is_bool( $value ) && ! ( ( ctype_digit( $value ) || is_numeric( $value ) ) && in_array( $value, array( 0, 1 ) ) ) ) {
+ // phpcs:ignore WordPress.PHP.StrictInArray.MissingTrueStrict -- Other code depends on loose comparison here.
+ if ( ! is_bool( $value ) && ! ( ctype_digit( (string) $value ) && in_array( $value, array( 0, 1 ) ) ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be true, false, 0 or 1.', 'jetpack' ), $param ) );
}
return true;
@@ -2396,13 +2976,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param int $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_posint( $value = 0, $request, $param ) {
+ public static function validate_posint( $value, $request, $param ) {
if ( ! is_numeric( $value ) || $value <= 0 ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be a positive integer.', 'jetpack' ), $param ) );
}
@@ -2410,17 +2990,39 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
+ * Validates that the parameter is a non-negative integer (includes 0).
+ *
+ * @since 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' ), $param )
+ );
+ }
+ return true;
+ }
+
+ /**
* Validates that the parameter belongs to a list of admitted values.
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_list_item( $value = '', $request, $param ) {
+ public static function validate_list_item( $value, $request, $param ) {
$attributes = $request->get_attributes();
if ( ! isset( $attributes['args'][ $param ] ) || ! is_array( $attributes['args'][ $param ] ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s not recognized', 'jetpack' ), $param ) );
@@ -2431,10 +3033,15 @@ class Jetpack_Core_Json_Api_Endpoints {
// If it's an associative array, use the keys to check that the value is among those admitted.
$enum = ( count( array_filter( array_keys( $args['enum'] ), 'is_string' ) ) > 0 ) ? array_keys( $args['enum'] ) : $args['enum'];
if ( ! in_array( $value, $enum ) ) {
- return new WP_Error( 'invalid_param_value', sprintf(
+ return new WP_Error(
+ 'invalid_param_value',
+ sprintf(
/* Translators: first variable is the parameter passed to endpoint that holds the list item, the second is a list of admitted values. */
- esc_html__( '%1$s must be one of %2$s', 'jetpack' ), $param, implode( ', ', $enum )
- ) );
+ esc_html__( '%1$s must be one of %2$s', 'jetpack' ),
+ $param,
+ implode( ', ', $enum )
+ )
+ );
}
}
return true;
@@ -2445,13 +3052,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_module_list( $value = '', $request, $param ) {
+ public static function validate_module_list( $value, $request, $param ) {
if ( ! is_array( $value ) ) {
return new WP_Error( 'invalid_param_value', sprintf( esc_html__( '%s must be an array', 'jetpack' ), $param ) );
}
@@ -2470,13 +3077,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_alphanum( $value = '', $request, $param ) {
+ public static function validate_alphanum( $value, $request, $param ) {
if ( ! empty( $value ) && ( ! is_string( $value ) || ! preg_match( '/^[a-z0-9]+$/i', $value ) ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be an alphanumeric string.', 'jetpack' ), $param ) );
}
@@ -2488,13 +3095,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.6.0
*
- * @param string $value Value to check.
+ * @param string $value Value to check.
* @param WP_REST_Request $request
- * @param string $param Name of the parameter passed to endpoint holding $value.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_verification_service( $value = '', $request, $param ) {
+ public static function validate_verification_service( $value, $request, $param ) {
if ( ! empty( $value ) && ! ( is_string( $value ) && ( preg_match( '/^[a-z0-9_-]+$/i', $value ) || jetpack_verification_get_code( $value ) !== false ) ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be an alphanumeric string or a verification tag.', 'jetpack' ), $param ) );
}
@@ -2506,18 +3113,23 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string|bool $value Value to check.
+ * @param string|bool $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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
public static function validate_stats_roles( $value, $request, $param ) {
if ( ! empty( $value ) && ! array_intersect( self::$stats_roles, $value ) ) {
- return new WP_Error( 'invalid_param', sprintf(
+ return new WP_Error(
+ 'invalid_param',
+ sprintf(
/* Translators: first variable is the name of a parameter passed to endpoint holding the role that will be checked, the second is a list of roles allowed to see stats. The parameter is checked against this list. */
- esc_html__( '%1$s must be %2$s.', 'jetpack' ), $param, join( ', ', self::$stats_roles )
- ) );
+ esc_html__( '%1$s must be %2$s.', 'jetpack' ),
+ $param,
+ join( ', ', self::$stats_roles )
+ )
+ );
}
return true;
}
@@ -2527,9 +3139,9 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string|bool $value Value to check.
+ * @param string|bool $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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
@@ -2539,10 +3151,15 @@ class Jetpack_Core_Json_Api_Endpoints {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be an array of post types.', 'jetpack' ), $param ) );
}
if ( ! array_intersect( $views, $value ) ) {
- return new WP_Error( 'invalid_param', sprintf(
+ return new WP_Error(
+ 'invalid_param',
+ sprintf(
/* Translators: first variable is the name of a parameter passed to endpoint holding the post type where Sharing will be displayed, the second is a list of post types where Sharing can be displayed */
- esc_html__( '%1$s must be %2$s.', 'jetpack' ), $param, join( ', ', $views )
- ) );
+ esc_html__( '%1$s must be %2$s.', 'jetpack' ),
+ $param,
+ join( ', ', $views )
+ )
+ );
}
return true;
}
@@ -2552,14 +3169,14 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string|bool $value {
- * Value to check received by request.
+ * @param string|bool $value {
+ * Value to check received by request.
*
* @type array $visible List of slug of services to share to that are displayed directly in the page.
* @type array $hidden List of slug of services to share to that are concealed in a folding menu.
* }
* @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
@@ -2573,21 +3190,25 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- if ( ! class_exists( 'Sharing_Service' ) && ! include_once( JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) ) {
+ if ( ! class_exists( 'Sharing_Service' ) && ! include_once JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) {
return new WP_Error( 'invalid_param', esc_html__( 'Failed loading required dependency Sharing_Service.', 'jetpack' ) );
}
- $sharer = new Sharing_Service();
+ $sharer = new Sharing_Service();
$services = array_keys( $sharer->get_all_services() );
if (
( ! empty( $value['visible'] ) && ! array_intersect( $value['visible'], $services ) )
||
- ( ! empty( $value['hidden'] ) && ! array_intersect( $value['hidden'], $services ) ) )
- {
- return new WP_Error( 'invalid_param', sprintf(
+ ( ! empty( $value['hidden'] ) && ! array_intersect( $value['hidden'], $services ) ) ) {
+ return new WP_Error(
+ 'invalid_param',
+ sprintf(
/* Translators: placeholder 1 is a parameter holding the services passed to endpoint, placeholder 2 is a list of all Jetpack Sharing services */
- esc_html__( '%1$s visible and hidden items must be a list of %2$s.', 'jetpack' ), $param, join( ', ', $services )
- ) );
+ esc_html__( '%1$s visible and hidden items must be a list of %2$s.', 'jetpack' ),
+ $param,
+ join( ', ', $services )
+ )
+ );
}
return true;
}
@@ -2597,9 +3218,9 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string|bool $value Value to check.
+ * @param string|bool $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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
@@ -2613,7 +3234,7 @@ class Jetpack_Core_Json_Api_Endpoints {
return true;
}
- if ( ! class_exists( 'Sharing_Service' ) && ! include_once( JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) ) {
+ if ( ! class_exists( 'Sharing_Service' ) && ! include_once JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) {
return new WP_Error( 'invalid_param', esc_html__( 'Failed loading required dependency Sharing_Service.', 'jetpack' ) );
}
@@ -2630,21 +3251,21 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_custom_service_id( $value = '', $request, $param ) {
+ public static function validate_custom_service_id( $value, $request, $param ) {
if ( ! empty( $value ) && ( ! is_string( $value ) || ! preg_match( '/custom\-[0-1]+/i', $value ) ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( "%s must be a string prefixed with 'custom-' and followed by a numeric ID.", 'jetpack' ), $param ) );
}
- if ( ! class_exists( 'Sharing_Service' ) && ! include_once( JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) ) {
+ if ( ! class_exists( 'Sharing_Service' ) && ! include_once JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) {
return new WP_Error( 'invalid_param', esc_html__( 'Failed loading required dependency Sharing_Service.', 'jetpack' ) );
}
- $sharer = new Sharing_Service();
+ $sharer = new Sharing_Service();
$services = array_keys( $sharer->get_all_services() );
if ( ! empty( $value ) && ! in_array( $value, $services ) ) {
@@ -2659,13 +3280,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @param string $value Value to check.
* @param WP_REST_Request $request
- * @param string $param Name of the parameter passed to endpoint holding $value.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_twitter_username( $value = '', $request, $param ) {
+ public static function validate_twitter_username( $value, $request, $param ) {
if ( ! empty( $value ) && ( ! is_string( $value ) || ! preg_match( '/^@?\w{1,15}$/i', $value ) ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be a Twitter username.', 'jetpack' ), $param ) );
}
@@ -2677,13 +3298,13 @@ class Jetpack_Core_Json_Api_Endpoints {
*
* @since 4.3.0
*
- * @param string $value Value to check.
+ * @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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
- public static function validate_string( $value = '', $request, $param ) {
+ public static function validate_string( $value, $request, $param ) {
if ( ! is_string( $value ) ) {
return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be a string.', 'jetpack' ), $param ) );
}
@@ -2691,6 +3312,26 @@ class Jetpack_Core_Json_Api_Endpoints {
}
/**
+ * Validates that the parameter is an array of strings.
+ *
+ * @param array $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 the endpoint holding $value.
+ *
+ * @return bool|WP_Error
+ */
+ public static function validate_array_of_strings( $value, $request, $param ) {
+ foreach ( $value as $array_item ) {
+ $validate = self::validate_string( $array_item, $request, $param );
+ if ( is_wp_error( $validate ) ) {
+ return $validate;
+ }
+ }
+
+ return true;
+ }
+
+ /**
* If for some reason the roles allowed to see Stats are empty (for example, user tampering with checkboxes),
* return an array with only 'administrator' as the allowed role and save it for 'roles' option.
*
@@ -2748,23 +3389,23 @@ class Jetpack_Core_Json_Api_Endpoints {
$location = apply_filters( 'jetpack_sitemap_location', '' );
if ( $wp_rewrite->using_index_permalinks() ) {
- $sitemap_url = home_url( '/index.php' . $location . '/sitemap.xml' );
+ $sitemap_url = home_url( '/index.php' . $location . '/sitemap.xml' );
$news_sitemap_url = home_url( '/index.php' . $location . '/news-sitemap.xml' );
- } else if ( $wp_rewrite->using_permalinks() ) {
- $sitemap_url = home_url( $location . '/sitemap.xml' );
+ } elseif ( $wp_rewrite->using_permalinks() ) {
+ $sitemap_url = home_url( $location . '/sitemap.xml' );
$news_sitemap_url = home_url( $location . '/news-sitemap.xml' );
} else {
- $sitemap_url = home_url( $location . '/?jetpack-sitemap=sitemap.xml' );
+ $sitemap_url = home_url( $location . '/?jetpack-sitemap=sitemap.xml' );
$news_sitemap_url = home_url( $location . '/?jetpack-sitemap=news-sitemap.xml' );
}
if ( is_null( $slug ) && isset( $modules['sitemaps'] ) ) {
// Is a list of modules
- $modules['sitemaps']['extra']['sitemap_url'] = $sitemap_url;
+ $modules['sitemaps']['extra']['sitemap_url'] = $sitemap_url;
$modules['sitemaps']['extra']['news_sitemap_url'] = $news_sitemap_url;
} elseif ( 'sitemaps' == $slug ) {
// It's a single module
- $modules['extra']['sitemap_url'] = $sitemap_url;
+ $modules['extra']['sitemap_url'] = $sitemap_url;
$modules['extra']['news_sitemap_url'] = $news_sitemap_url;
}
return $modules;
@@ -2804,7 +3445,7 @@ class Jetpack_Core_Json_Api_Endpoints {
// Protect
$options['jetpack_protect_key']['current_value'] = get_site_option( 'jetpack_protect_key', false );
if ( ! function_exists( 'jetpack_protect_format_whitelist' ) ) {
- include_once( JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php' );
+ include_once JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php';
}
$options['jetpack_protect_global_whitelist']['current_value'] = jetpack_protect_format_whitelist();
break;
@@ -2820,26 +3461,26 @@ class Jetpack_Core_Json_Api_Endpoints {
break;
case 'google-analytics':
- $wga = get_option( 'jetpack_wga' );
+ $wga = get_option( 'jetpack_wga' );
$code = '';
if ( is_array( $wga ) && array_key_exists( 'code', $wga ) ) {
$code = $wga[ 'code' ];
}
- $options[ 'google_analytics_tracking_id' ][ 'current_value' ] = $code;
+ $options['google_analytics_tracking_id']['current_value'] = $code;
break;
case 'sharedaddy':
// It's local, but it must be broken apart since it's saved as an array.
- if ( ! class_exists( 'Sharing_Service' ) && ! include_once( JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) ) {
+ if ( ! class_exists( 'Sharing_Service' ) && ! include_once JETPACK__PLUGIN_DIR . 'modules/sharedaddy/sharing-service.php' ) {
break;
}
- $sharer = new Sharing_Service();
- $options = self::split_options( $options, $sharer->get_global_options() );
+ $sharer = new Sharing_Service();
+ $options = self::split_options( $options, $sharer->get_global_options() );
$options['sharing_services']['current_value'] = $sharer->get_blog_services();
- $other_sharedaddy_options = array( 'jetpack-twitter-cards-site-tag', 'sharedaddy_disable_resources', 'sharing_delete_service' );
+ $other_sharedaddy_options = array( 'jetpack-twitter-cards-site-tag', 'sharedaddy_disable_resources', 'sharing_delete_service' );
foreach ( $other_sharedaddy_options as $key ) {
- $default_value = isset( $options[ $key ]['default'] ) ? $options[ $key ]['default'] : '';
- $current_value = get_option( $key, $default_value );
+ $default_value = isset( $options[ $key ]['default'] ) ? $options[ $key ]['default'] : '';
+ $current_value = get_option( $key, $default_value );
$options[ $key ]['current_value'] = self::cast_value( $current_value, $options[ $key ] );
}
break;
@@ -2847,15 +3488,15 @@ class Jetpack_Core_Json_Api_Endpoints {
case 'stats':
// It's local, but it must be broken apart since it's saved as an array.
if ( ! function_exists( 'stats_get_options' ) ) {
- include_once( JETPACK__PLUGIN_DIR . 'modules/stats.php' );
+ include_once JETPACK__PLUGIN_DIR . 'modules/stats.php';
}
$options = self::split_options( $options, stats_get_options() );
break;
default:
// These option are just stored as plain WordPress options.
foreach ( $options as $key => $value ) {
- $default_value = isset( $options[ $key ]['default'] ) ? $options[ $key ]['default'] : '';
- $current_value = get_option( $key, $default_value );
+ $default_value = isset( $options[ $key ]['default'] ) ? $options[ $key ]['default'] : '';
+ $current_value = get_option( $key, $default_value );
$options[ $key ]['current_value'] = self::cast_value( $current_value, $options[ $key ] );
}
}
@@ -2964,7 +3605,7 @@ class Jetpack_Core_Json_Api_Endpoints {
}
// Only check a remote option if Jetpack is connected.
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
return false;
}
@@ -2972,7 +3613,7 @@ class Jetpack_Core_Json_Api_Endpoints {
switch ( $module ) {
case 'monitor':
// Load the class to use the method. If class can't be found, do nothing.
- if ( ! class_exists( 'Jetpack_Monitor' ) && ! include_once( Jetpack::get_module_path( $module ) ) ) {
+ if ( ! class_exists( 'Jetpack_Monitor' ) && ! include_once Jetpack::get_module_path( $module ) ) {
return false;
}
$value = Jetpack_Monitor::user_receives_notifications( false );
@@ -2980,11 +3621,10 @@ class Jetpack_Core_Json_Api_Endpoints {
case 'post-by-email':
// Load the class to use the method. If class can't be found, do nothing.
- if ( ! class_exists( 'Jetpack_Post_By_Email' ) && ! include_once( Jetpack::get_module_path( $module ) ) ) {
+ if ( ! class_exists( 'Jetpack_Post_By_Email' ) && ! include_once Jetpack::get_module_path( $module ) ) {
return false;
}
- $post_by_email = new Jetpack_Post_By_Email();
- $value = $post_by_email->get_post_by_email_address();
+ $value = Jetpack_Post_By_Email::init()->get_post_by_email_address();
if ( $value === null ) {
$value = 'NULL'; // sentinel value so it actually gets set
}
@@ -3032,181 +3672,221 @@ class Jetpack_Core_Json_Api_Endpoints {
return new WP_Error( 'not_found', esc_html__( 'Could not check updates for plugins on this site.', 'jetpack' ), array( 'status' => 404 ) );
}
-
/**
- * Returns a list of all plugins in the site.
+ * Get plugins data in site.
*
* @since 4.2.0
- * @uses get_plugins()
*
- * @return array
+ * @return WP_REST_Response|WP_Error List of plugins in the site. Otherwise, a WP_Error instance with the corresponding error.
*/
- private static function core_get_plugins() {
- 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() );
+ public static function get_plugins() {
+ jetpack_require_lib( 'plugins' );
+ $plugins = Jetpack_Plugins::get_plugins();
- if ( is_array( $plugins ) && ! empty( $plugins ) ) {
- foreach ( $plugins as $plugin_slug => $plugin_data ) {
- $plugins[ $plugin_slug ]['active'] = self::core_is_plugin_active( $plugin_slug );
- }
- return $plugins;
+ if ( ! empty( $plugins ) ) {
+ return rest_ensure_response( $plugins );
}
- return array();
+ return new WP_Error( 'not_found', esc_html__( 'Unable to list plugins.', 'jetpack' ), array( 'status' => 404 ) );
}
/**
- * Deprecated - Get third party plugin API keys.
- * @deprecated
+ * Install a specific plugin and optionally activates it.
*
- * @param WP_REST_Request $request {
- * Array of parameters received by request.
- *
- * @type string $slug Plugin slug with the syntax 'plugin-directory/plugin-main-file.php'.
- * }
- */
- public static function get_service_api_key( $request ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::get_service_api_key' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::get_service_api_key( $request );
- }
-
- /**
- * Deprecated - Update third party plugin API keys.
- * @deprecated
+ * @since 8.9.0
*
* @param WP_REST_Request $request {
* Array of parameters received by request.
*
- * @type string $slug Plugin slug with the syntax 'plugin-directory/plugin-main-file.php'.
+ * @type string $slug Plugin slug.
+ * @type string $status Plugin status.
+ * @type string $source Where did the plugin installation request originate.
* }
+ *
+ * @return WP_REST_Response|WP_Error A response object if the installation and / or activation was successful, or a WP_Error object if it failed.
*/
- public static function update_service_api_key( $request ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::update_service_api_key' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::update_service_api_key( $request ) ;
+ public static function install_plugin( $request ) {
+ $plugin = stripslashes( $request['slug'] );
+
+ jetpack_require_lib( 'plugins' );
+
+ // Let's make sure the plugin isn't already installed.
+ $plugin_id = Jetpack_Plugins::get_plugin_id_by_slug( $plugin );
+
+ // If not installed, let's install now.
+ if ( ! $plugin_id ) {
+ $result = Jetpack_Plugins::install_plugin( $plugin );
+
+ if ( is_wp_error( $result ) ) {
+ return new WP_Error(
+ 'install_plugin_failed',
+ sprintf(
+ /* translators: %1$s: plugin name. -- %2$s: error message. */
+ __( 'Unable to install %1$s: %2$s ', 'jetpack' ),
+ $plugin,
+ $result->get_error_message()
+ ),
+ array( 'status' => 500 )
+ );
+ }
+ }
+
+ /*
+ * We may want to activate the plugin as well.
+ * Let's check for the status parameter in the request to find out.
+ * If none was passed (or something other than active), let's return now.
+ */
+ if ( empty( $request['status'] ) || 'active' !== $request['status'] ) {
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html(
+ sprintf(
+ /* translators: placeholder is a plugin name. */
+ __( 'Installed %s', 'jetpack' ),
+ $plugin
+ )
+ ),
+ )
+ );
+ }
+
+ /*
+ * Proceed with plugin activation.
+ * Let's check again for the plugin's ID if we don't already have it.
+ */
+ if ( ! $plugin_id ) {
+ $plugin_id = Jetpack_Plugins::get_plugin_id_by_slug( $plugin );
+ if ( ! $plugin_id ) {
+ return new WP_Error(
+ 'unable_to_determine_installed_plugin',
+ __( 'Unable to determine what plugin was installed.', 'jetpack' ),
+ array( 'status' => 500 )
+ );
+ }
+ }
+
+ $source = ! empty( $request['source'] ) ? stripslashes( $request['source'] ) : 'rest_api';
+ $plugin_args = array(
+ 'plugin' => substr( $plugin_id, 0, - 4 ),
+ 'status' => 'active',
+ 'source' => $source,
+ );
+ return self::activate_plugin( $plugin_args );
}
/**
- * Deprecated - Delete a third party plugin API key.
- * @deprecated
+ * Activate a specific plugin.
+ *
+ * @since 8.9.0
*
* @param WP_REST_Request $request {
* Array of parameters received by request.
*
- * @type string $slug Plugin slug with the syntax 'plugin-directory/plugin-main-file.php'.
+ * @type string $plugin Plugin long slug (slug/index-file)
+ * @type string $status Plugin status. We only support active in Jetpack.
+ * @type string $source Where did the plugin installation request originate.
* }
- */
- public static function delete_service_api_key( $request ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::delete_service_api_key' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::delete_service_api_key( $request );
- }
-
- /**
- * Deprecated - Validate the service provided in /service-api-keys/ endpoints.
- * To add a service to these endpoints, add the service name to $valid_services
- * and add '{service name}_api_key' to the non-compact return array in get_option_names(),
- * in class-jetpack-options.php
- * @deprecated
*
- * @param string $service The service the API key is for.
- * @return string Returns the service name if valid, null if invalid.
+ * @return WP_REST_Response|WP_Error A response object if the activation was successful, or a WP_Error object if the activation failed.
*/
- public static function validate_service_api_service( $service = null ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_service' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_service( $service );
- }
+ public static function activate_plugin( $request ) {
+ /*
+ * We need an "active" status parameter to be passed to the request
+ * just like the core plugins endpoind we'll eventually switch to.
+ */
+ if ( empty( $request['status'] ) || 'active' !== $request['status'] ) {
+ return new WP_Error(
+ 'missing_status_parameter',
+ esc_html__( 'Status parameter missing.', 'jetpack' ),
+ array( 'status' => 403 )
+ );
+ }
- /**
- * Error response for invalid service API key requests with an invalid service.
- */
- public static function service_api_invalid_service_response() {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::service_api_invalid_service_response' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::service_api_invalid_service_response();
- }
+ jetpack_require_lib( 'plugins' );
+ $plugins = Jetpack_Plugins::get_plugins();
- /**
- * Deprecated - Validate API Key
- * @deprecated
- *
- * @param string $key The API key to be validated.
- * @param string $service The service the API key is for.
- *
- */
- public static function validate_service_api_key( $key = null, $service = null ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_key' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_key( $key , $service );
- }
+ if ( empty( $plugins ) ) {
+ return new WP_Error( 'no_plugins_found', esc_html__( 'This site has no plugins.', 'jetpack' ), array( 'status' => 404 ) );
+ }
- /**
- * Deprecated - Validate Mapbox API key
- * Based loosely on https://github.com/mapbox/geocoding-example/blob/master/php/MapboxTest.php
- * @deprecated
- *
- * @param string $key The API key to be validated.
- */
- public static function validate_service_api_key_mapbox( $key ) {
- _deprecated_function( __METHOD__, 'jetpack-6.9.0', 'WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_key' );
- return WPCOM_REST_API_V2_Endpoint_Service_API_Keys::validate_service_api_key_mapbox( $key );
+ if ( empty( $request['plugin'] ) ) {
+ return new WP_Error( 'no_plugin_specified', esc_html__( 'You did not specify a plugin.', 'jetpack' ), array( 'status' => 404 ) );
+ }
- }
+ $plugin = $request['plugin'] . '.php';
- /**
- * Checks if the queried plugin is active.
- *
- * @since 4.2.0
- * @uses is_plugin_active()
- *
- * @return bool
- */
- private static function core_is_plugin_active( $plugin ) {
- if ( ! function_exists( 'is_plugin_active' ) ) {
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
+ // Is the plugin installed?
+ if ( ! in_array( $plugin, array_keys( $plugins ), true ) ) {
+ return new WP_Error(
+ 'plugin_not_found',
+ esc_html(
+ sprintf(
+ /* translators: placeholder is a plugin slug. */
+ __( 'Plugin %s is not installed.', 'jetpack' ),
+ $plugin
+ )
+ ),
+ array( 'status' => 404 )
+ );
}
- return is_plugin_active( $plugin );
- }
+ // Is the plugin active already?
+ $status = Jetpack_Plugins::get_plugin_status( $plugin );
+ if ( in_array( $status, array( 'active', 'network-active' ), true ) ) {
+ return new WP_Error(
+ 'plugin_already_active',
+ esc_html(
+ sprintf(
+ /* translators: placeholder is a plugin slug. */
+ __( 'Plugin %s is already active.', 'jetpack' ),
+ $plugin
+ )
+ ),
+ array( 'status' => 404 )
+ );
+ }
- /**
- * Get plugins data in site.
- *
- * @since 4.2.0
- *
- * @return WP_REST_Response|WP_Error List of plugins in the site. Otherwise, a WP_Error instance with the corresponding error.
- */
- public static function get_plugins() {
- $plugins = self::core_get_plugins();
+ // Now try to activate the plugin.
+ $activated = activate_plugin( $plugin );
- if ( ! empty( $plugins ) ) {
- return rest_ensure_response( $plugins );
+ if ( is_wp_error( $activated ) ) {
+ return $activated;
+ } else {
+ $source = ! empty( $request['source'] ) ? stripslashes( $request['source'] ) : 'rest_api';
+ /**
+ * Fires when Jetpack installs a plugin for you.
+ *
+ * @since 8.9.0
+ *
+ * @param string $plugin_file Plugin file.
+ * @param string $source Where did the plugin installation originate.
+ */
+ do_action( 'jetpack_activated_plugin', $plugin, $source );
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => sprintf(
+ /* translators: placeholder is a plugin name. */
+ esc_html__( 'Activated %s', 'jetpack' ),
+ $plugin
+ ),
+ )
+ );
}
-
- return new WP_Error( 'not_found', esc_html__( 'Unable to list plugins.', 'jetpack' ), array( 'status' => 404 ) );
}
/**
- * Ensures that Akismet is installed and activated.
+ * Check if a plugin can be activated.
*
- * @since 7.7
+ * @since 8.9.0
*
- * @return WP_REST_Response A response indicating whether or not the installation was successful.
+ * @param string|bool $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.
*/
- public static function activate_akismet() {
- jetpack_require_lib( 'plugins' );
- $result = Jetpack_Plugins::install_and_activate_plugin('akismet');
-
- if ( is_wp_error( $result ) ) {
- return rest_ensure_response( array(
- 'code' => 'failure',
- 'message' => esc_html__( 'Unable to activate Akismet', 'jetpack' )
- ) );
- } else {
- return rest_ensure_response( array(
- 'code' => 'success',
- 'message' => esc_html__( 'Activated Akismet', 'jetpack' )
- ) );
- }
+ public static function validate_activate_plugin( $value, $request, $param ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 'active' === $value;
}
/**
@@ -3223,8 +3903,8 @@ class Jetpack_Core_Json_Api_Endpoints {
* @return bool|WP_Error True if module was activated. Otherwise, a WP_Error instance with the corresponding error.
*/
public static function get_plugin( $request ) {
-
- $plugins = self::core_get_plugins();
+ jetpack_require_lib( 'plugins' );
+ $plugins = Jetpack_Plugins::get_plugins();
if ( empty( $plugins ) ) {
return new WP_Error( 'no_plugins_found', esc_html__( 'This site has no plugins.', 'jetpack' ), array( 'status' => 404 ) );
@@ -3238,13 +3918,15 @@ class Jetpack_Core_Json_Api_Endpoints {
$plugin_data = $plugins[ $plugin ];
- $plugin_data['active'] = self::core_is_plugin_active( $plugin );
+ $plugin_data['active'] = in_array( Jetpack_Plugins::get_plugin_status( $plugin ), array( 'active', 'network-active' ), true );
- return rest_ensure_response( array(
- 'code' => 'success',
- 'message' => esc_html__( 'Plugin found.', 'jetpack' ),
- 'data' => $plugin_data
- ) );
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html__( 'Plugin found.', 'jetpack' ),
+ 'data' => $plugin_data,
+ )
+ );
}
/**
@@ -3281,4 +3963,166 @@ class Jetpack_Core_Json_Api_Endpoints {
)
);
}
+
+ /**
+ * Get the last licensing error message, if any.
+ *
+ * @since 9.0.0
+ *
+ * @return string Licensing error message or empty string.
+ */
+ public static function get_licensing_error() {
+ return Licensing::instance()->last_error();
+ }
+
+ /**
+ * Update the last licensing error message.
+ *
+ * @since 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;
+ }
+
+ /**
+ * Set a Jetpack license
+ *
+ * @since 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' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
+ * Attach Jetpack licenses
+ *
+ * @since 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 ) );
+ }
+
+ /**
+ * Returns the Jetpack CRM data.
+ *
+ * @return WP_REST_Response A response object containing the Jetpack CRM data.
+ */
+ public static function get_jetpack_crm_data() {
+ $jetpack_crm_data = ( new Jetpack_CRM_Data() )->get_crm_data();
+ return rest_ensure_response( $jetpack_crm_data );
+ }
+
+ /**
+ * Activates Jetpack CRM's Jetpack Forms extension.
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return WP_REST_Response|WP_Error A response object if the extension activation was successful, or a WP_Error object if it failed.
+ */
+ public static function activate_crm_jetpack_forms_extension( $request ) {
+ if ( ! isset( $request['extension'] ) || 'jetpackforms' !== $request['extension'] ) {
+ return new WP_Error( 'invalid_param', esc_html__( 'Missing or invalid extension parameter.', 'jetpack' ), array( 'status' => 404 ) );
+ }
+
+ $result = ( new Jetpack_CRM_Data() )->activate_crm_jetpackforms_extension();
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ return rest_ensure_response( array( 'code' => 'success' ) );
+ }
+
+ /**
+ * Verifies that the current user has the required permission for accessing the CRM data.
+ *
+ * @return true|WP_Error Returns true if the user has the required capability, else a WP_Error object.
+ */
+ public static function jetpack_crm_data_permission_check() {
+ if ( current_user_can( 'publish_posts' ) ) {
+ return true;
+ }
+
+ return new WP_Error(
+ 'invalid_user_permission_jetpack_crm_data',
+ self::$user_permissions_error_msg,
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ /**
+ * Verifies that the current user has the required capability for activating Jetpack CRM extensions.
+ *
+ * @return true|WP_Error Returns true if the user has the required capability, else a WP_Error object.
+ */
+ public static function activate_crm_extensions_permission_check() {
+ if ( current_user_can( 'admin_zerobs_manage_options' ) ) {
+ return true;
+ }
+
+ return new WP_Error(
+ 'invalid_user_permission_activate_jetpack_crm_ext',
+ self::$user_permissions_error_msg,
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ /**
+ * Verify that the user can set a Jetpack license key
+ *
+ * @since 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() ) );
+
+ }
+
+ /**
+ * Set hasSeenWCConnectionModal to true when the site has displayed it
+ *
+ * @since 10.4.0
+ *
+ * @return bool
+ */
+ public static function set_has_seen_wc_connection_modal() {
+ $updated_option = Jetpack_Options::update_option( 'has_seen_wc_connection_modal', true );
+
+ return rest_ensure_response( array( 'success' => $updated_option ) );
+ }
+
} // class end
diff --git a/plugins/jetpack/_inc/lib/class.jetpack-keyring-service-helper.php b/plugins/jetpack/_inc/lib/class.jetpack-keyring-service-helper.php
index 720f59a9..d623a3eb 100644
--- a/plugins/jetpack/_inc/lib/class.jetpack-keyring-service-helper.php
+++ b/plugins/jetpack/_inc/lib/class.jetpack-keyring-service-helper.php
@@ -1,11 +1,20 @@
<?php
+use Automattic\Jetpack\Connection\Secrets;
+
class Jetpack_Keyring_Service_Helper {
/**
* @var Jetpack_Keyring_Service_Helper
**/
private static $instance = null;
+ /**
+ * Whether the `sharing` page is registered.
+ *
+ * @var bool
+ */
+ private static $is_sharing_page_registered = false;
+
static function init() {
if ( is_null( self::$instance ) ) {
self::$instance = new Jetpack_Keyring_Service_Helper;
@@ -42,33 +51,32 @@ class Jetpack_Keyring_Service_Helper {
* Constructor
*/
private function __construct() {
- add_action( 'admin_menu', array( __CLASS__, 'add_sharing_menu' ), 21 );
+ add_action( 'admin_menu', array( __CLASS__, 'register_sharing_page' ) );
add_action( 'load-settings_page_sharing', array( __CLASS__, 'admin_page_load' ), 9 );
}
/**
- * We need a `sharing` submenu page to be able to connect and disconnect services.
+ * We need a `sharing` page to be able to connect and disconnect services.
*/
- public static function add_sharing_menu() {
- global $submenu;
-
- if (
- ! isset( $submenu['options-general.php'] )
- || ! is_array( $submenu['options-general.php'] )
- ) {
+ public static function register_sharing_page() {
+ if ( self::$is_sharing_page_registered ) {
return;
}
- $general_settings_names = array_map(
- function ( $menu ) {
- return array_values( $menu )[0];
- },
- $submenu['options-general.php']
- );
- if ( ! in_array( 'Sharing', $general_settings_names, true ) ) {
- add_submenu_page( 'options-general.php', '', '', 'manage_options', 'sharing', '__return_empty_string' );
+ self::$is_sharing_page_registered = true;
+
+ if ( ! current_user_can( 'manage_options' ) ) {
+ return;
}
+
+ global $_registered_pages;
+
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
+
+ $hookname = get_plugin_page_hookname( 'sharing', 'options-general.php' );
+ add_action( $hookname, array( __CLASS__, 'admin_page_load' ) );
+ $_registered_pages[ $hookname ] = true; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
}
function get_services( $filter = 'all' ) {
@@ -118,34 +126,43 @@ class Jetpack_Keyring_Service_Helper {
}
static function connect_url( $service_name, $for ) {
- return add_query_arg( array(
- 'action' => 'request',
- 'service' => $service_name,
- 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
- 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
- 'for' => $for,
- ), menu_page_url( 'sharing', false ) );
+ return add_query_arg(
+ array(
+ 'action' => 'request',
+ 'service' => $service_name,
+ 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
+ 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
+ 'for' => $for,
+ ),
+ admin_url( 'options-general.php?page=sharing' )
+ );
}
static function refresh_url( $service_name, $for ) {
- return add_query_arg( array(
- 'action' => 'request',
- 'service' => $service_name,
- 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
- 'refresh' => 1,
- 'for' => $for,
- 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
- ), admin_url( 'options-general.php?page=sharing' ) );
+ return add_query_arg(
+ array(
+ 'action' => 'request',
+ 'service' => $service_name,
+ 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
+ 'refresh' => 1,
+ 'for' => $for,
+ 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
+ ),
+ admin_url( 'options-general.php?page=sharing' )
+ );
}
static function disconnect_url( $service_name, $id ) {
- return add_query_arg( array(
- 'action' => 'delete',
- 'service' => $service_name,
- 'id' => $id,
- 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
- 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
- ), menu_page_url( 'sharing', false ) );
+ return add_query_arg(
+ array(
+ 'action' => 'delete',
+ 'service' => $service_name,
+ 'id' => $id,
+ 'kr_nonce' => wp_create_nonce( 'keyring-request' ),
+ 'nonce' => wp_create_nonce( "keyring-request-$service_name" ),
+ ),
+ admin_url( 'options-general.php?page=sharing' )
+ );
}
static function admin_page_load() {
@@ -160,7 +177,7 @@ class Jetpack_Keyring_Service_Helper {
check_admin_referer( 'keyring-request', 'kr_nonce' );
check_admin_referer( "keyring-request-$service_name", 'nonce' );
- $verification = Jetpack::generate_secrets( 'publicize' );
+ $verification = ( new Secrets() )->generate( 'publicize' );
if ( ! $verification ) {
$url = Jetpack::admin_url( 'jetpack#/settings' );
wp_die( sprintf( __( "Jetpack is not connected. Please connect Jetpack by visiting <a href='%s'>Settings</a>.", 'jetpack' ), $url ) );
diff --git a/plugins/jetpack/_inc/lib/class.jetpack-password-checker.php b/plugins/jetpack/_inc/lib/class.jetpack-password-checker.php
index 01b9c61c..75b6bbfd 100644
--- a/plugins/jetpack/_inc/lib/class.jetpack-password-checker.php
+++ b/plugins/jetpack/_inc/lib/class.jetpack-password-checker.php
@@ -2,7 +2,7 @@
/**
* The password strength checker.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
/**
@@ -47,7 +47,7 @@ class Jetpack_Password_Checker {
public $multiplier = 4;
/**
- * A common password blacklist, which on match will immediately disqualify the password.
+ * A common password disallow list, which on match will immediately disqualify the password.
*
* @var Array
*/
@@ -97,7 +97,7 @@ class Jetpack_Password_Checker {
*
* @since 7.2.0
*
- * @param Array $restricted_passwords strings that are forbidden for use as passwords.
+ * @param array $restricted_passwords strings that are forbidden for use as passwords.
*/
$this->common_passwords = apply_filters( 'jetpack_password_checker_restricted_strings', array() );
@@ -125,7 +125,7 @@ class Jetpack_Password_Checker {
*
* @param String $password the tested string.
* @param Boolean $required_only only test against required conditions, defaults to false.
- * @return Array $results an array containing failed and passed test results.
+ * @return array $results an array containing failed and passed test results.
*/
public function test( $password, $required_only = false ) {
@@ -146,7 +146,7 @@ class Jetpack_Password_Checker {
*
* @since 7.2.0
*
- * @param Array $minimum_entropy_bits minimum entropy bits requirement.
+ * @param array $minimum_entropy_bits minimum entropy bits requirement.
*/
$bits = apply_filters( 'jetpack_password_checker_minimum_entropy_bits', self::MINIMUM_BITS );
$entropy_bits = $this->calculate_entropy_bits( $this->password );
@@ -169,9 +169,9 @@ class Jetpack_Password_Checker {
/**
* Run the tests using the currently set up object values.
*
- * @param Array $tests tests to run.
+ * @param array $tests tests to run.
* @param Boolean $required_only whether to run only required tests.
- * @return Array test results.
+ * @return array test results.
*/
protected function run_tests( $tests, $required_only = false ) {
@@ -213,8 +213,8 @@ class Jetpack_Password_Checker {
/**
* Returns a list 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.
+ * @param array $sections only return specific sections with the passed keys, defaults to all.
+ * @return array test descriptions.
*/
protected function list_tests( $sections = false ) {
// Note: these should be in order of priority.
@@ -273,7 +273,7 @@ class Jetpack_Password_Checker {
*
* @since 7.2.0
*
- * @param Array $minimum_entropy_bits minimum entropy bits requirement.
+ * @param array $minimum_entropy_bits minimum entropy bits requirement.
*/
$tests = apply_filters( 'jetpack_password_checker_tests', $tests );
@@ -288,7 +288,7 @@ class Jetpack_Password_Checker {
/**
* Provides the regular expression tester functionality.
*
- * @param Array $test_data the current test data.
+ * @param array $test_data the current test data.
* @return Boolean does the test pass?
*/
protected function test_preg_match( $test_data ) {
@@ -308,7 +308,7 @@ class Jetpack_Password_Checker {
/**
* Provides the comparison tester functionality.
*
- * @param Array $test_data the current test data.
+ * @param array $test_data the current test data.
* @return Boolean does the test pass?
*/
protected function test_compare_to_list( $test_data ) {
@@ -333,7 +333,7 @@ class Jetpack_Password_Checker {
/**
* Getter for the common password list.
*
- * @return Array common passwords.
+ * @return array common passwords.
*/
protected function get_common_passwords() {
return $this->common_passwords;
@@ -343,7 +343,7 @@ class Jetpack_Password_Checker {
* Returns the widely known user data that can not be used in the password to avoid
* predictable strings.
*
- * @return Array user data.
+ * @return array user data.
*/
protected function get_other_user_data() {
@@ -377,7 +377,7 @@ class Jetpack_Password_Checker {
* Compare the password for matches with known user data.
*
* @param String $password the string to be tested.
- * @param Array $strings_to_test known user data.
+ * @param array $strings_to_test known user data.
* @return Boolean does the test pass?
*/
protected function test_not_same_as_other_user_data( $password, $strings_to_test ) {
@@ -409,7 +409,7 @@ class Jetpack_Password_Checker {
* A shorthand for the not in array construct.
*
* @param Mixed $needle the needle.
- * @param Array $haystack the haystack.
+ * @param array $haystack the haystack.
* @return is the needle not in the haystack?
*/
protected function negative_in_array( $needle, $haystack ) {
diff --git a/plugins/jetpack/_inc/lib/class.jetpack-photon-image-sizes.php b/plugins/jetpack/_inc/lib/class.jetpack-photon-image-sizes.php
index 8dc22d19..1bf5bf6c 100644
--- a/plugins/jetpack/_inc/lib/class.jetpack-photon-image-sizes.php
+++ b/plugins/jetpack/_inc/lib/class.jetpack-photon-image-sizes.php
@@ -2,7 +2,7 @@
/**
* The Image Sizes library.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
jetpack_require_lib( 'class.jetpack-photon-image' );
@@ -70,7 +70,7 @@ class Jetpack_Photon_ImageSizes {
);
if ( isset( $_wp_additional_image_sizes[ $s ]['width'] ) ) {
// For theme-added sizes.
- $sizes[ $s ]['width'] = intval( $_wp_additional_image_sizes[ $s ]['width'] );
+ $sizes[ $s ]['width'] = (int) $_wp_additional_image_sizes[ $s ]['width'];
} else {
// For default sizes set in options.
$sizes[ $s ]['width'] = get_option( "{$s}_size_w" );
@@ -78,7 +78,7 @@ class Jetpack_Photon_ImageSizes {
if ( isset( $_wp_additional_image_sizes[ $s ]['height'] ) ) {
// For theme-added sizes.
- $sizes[ $s ]['height'] = intval( $_wp_additional_image_sizes[ $s ]['height'] );
+ $sizes[ $s ]['height'] = (int) $_wp_additional_image_sizes[ $s ]['height'];
} else {
// For default sizes set in options.
$sizes[ $s ]['height'] = get_option( "{$s}_size_h" );
diff --git a/plugins/jetpack/_inc/lib/class.jetpack-photon-image.php b/plugins/jetpack/_inc/lib/class.jetpack-photon-image.php
index d364f2a3..81ef74b4 100644
--- a/plugins/jetpack/_inc/lib/class.jetpack-photon-image.php
+++ b/plugins/jetpack/_inc/lib/class.jetpack-photon-image.php
@@ -2,7 +2,7 @@
/**
* The Image Class.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -130,14 +130,17 @@ class Jetpack_Photon_Image {
* @return string Basename of the filename.
*/
public function get_filename() {
+ return wp_basename( $this->get_raw_filename() );
+ }
- if ( true === $this->is_resized() ) {
- $filename = $this->get_resized_filename();
- } else {
- $filename = $this->filename;
- }
-
- return wp_basename( $filename );
+ /**
+ * Return the absolute filename. If the image has been resized, including
+ * the resizing params for Jetpack CDN.
+ *
+ * @return string Filename.
+ */
+ public function get_raw_filename() {
+ return $this->is_resized() ? $this->get_resized_filename() : $this->filename;
}
/**
@@ -232,7 +235,7 @@ class Jetpack_Photon_Image {
/**
* Sets proper width and height from dimensions.
*
- * @param Array $dimensions an array of image dimensions.
+ * @param array $dimensions an array of image dimensions.
* @return void
*/
protected function set_width_height( $dimensions ) {
diff --git a/plugins/jetpack/_inc/lib/class.jetpack-search-performance-logger.php b/plugins/jetpack/_inc/lib/class.jetpack-search-performance-logger.php
index f8de70ee..c3df0778 100644
--- a/plugins/jetpack/_inc/lib/class.jetpack-search-performance-logger.php
+++ b/plugins/jetpack/_inc/lib/class.jetpack-search-performance-logger.php
@@ -63,7 +63,7 @@ class Jetpack_Search_Performance_Logger {
}
private function record_query_time( $duration, $was_jetpack_search ) {
- $this->stats[] = array( $was_jetpack_search, intval( $duration * 1000 ) );
+ $this->stats[] = array( $was_jetpack_search, (int) ( $duration * 1000 ) );
}
public function print_stats() {
@@ -77,7 +77,7 @@ class Jetpack_Search_Performance_Logger {
$encoded_json = '{%22beacons%22:[' . implode(',', $beacons ) . ']}';
$encoded_site_url = urlencode( site_url() );
$url = "https://pixel.wp.com/boom.gif?v=0.9&u={$encoded_site_url}&json={$encoded_json}";
- echo '<img src="' . $url . '" width="1" height="1" style="display:none;" alt=":)"/>';
+ echo '<img src="' . esc_url( $url ) . '" width="1" height="1" style="display:none;" alt=""/>';
}
}
}
diff --git a/plugins/jetpack/_inc/lib/class.media-extractor.php b/plugins/jetpack/_inc/lib/class.media-extractor.php
index ba00ff97..a107ef75 100644
--- a/plugins/jetpack/_inc/lib/class.media-extractor.php
+++ b/plugins/jetpack/_inc/lib/class.media-extractor.php
@@ -1,4 +1,11 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Class with methods to extract metadata from a post/page about videos, images, links, mentions embedded
+ * in or attached to the post/page.
+ *
+ * @package automattic/jetpack
+ */
+
/**
* Class with methods to extract metadata from a post/page about videos, images, links, mentions embedded
* in or attached to the post/page.
@@ -7,18 +14,24 @@
*/
class Jetpack_Media_Meta_Extractor {
- // Some consts for what to extract
- const ALL = 255;
- const LINKS = 1;
- const MENTIONS = 2;
- const IMAGES = 4;
- const SHORTCODES = 8; // Only the keeper shortcodes below
- const EMBEDS = 16;
- const HASHTAGS = 32;
-
- // For these, we try to extract some data from the shortcode, rather than just recording its presence (which we do for all)
- // There should be a function get_{shortcode}_id( $atts ) or static method SomethingShortcode::get_{shortcode}_id( $atts ) for these.
- private static $KEEPER_SHORTCODES = array(
+ // Some consts for what to extract.
+ const ALL = 255;
+ const LINKS = 1;
+ const MENTIONS = 2;
+ const IMAGES = 4;
+ const SHORTCODES = 8; // Only the keeper shortcodes below.
+ const EMBEDS = 16;
+ const HASHTAGS = 32;
+
+ /**
+ * Shortcodes to keep.
+ *
+ * For these, we try to extract some data from the shortcode, rather than just recording its presence (which we do for all)
+ * There should be a function get_{shortcode}_id( $atts ) or static method SomethingShortcode::get_{shortcode}_id( $atts ) for these.
+ *
+ * @var string[]
+ */
+ private static $keeper_shortcodes = array(
'youtube',
'vimeo',
'hulu',
@@ -31,39 +44,50 @@ class Jetpack_Media_Meta_Extractor {
* Gets the specified media and meta info from the given post.
* NOTE: If you have the post's HTML content already and don't need image data, use extract_from_content() instead.
*
- * @param $blog_id The ID of the blog
- * @param $post_id The ID of the post
- * @param $what_to_extract (int) A mask of things to extract, e.g. Jetpack_Media_Meta_Extractor::IMAGES | Jetpack_Media_Meta_Extractor::MENTIONS
- * @returns a structure containing metadata about the embedded things, or empty array if nothing found, or WP_Error on error
+ * @param int $blog_id The ID of the blog.
+ * @param int $post_id The ID of the post.
+ * @param int $what_to_extract A mask of things to extract, e.g. Jetpack_Media_Meta_Extractor::IMAGES | Jetpack_Media_Meta_Extractor::MENTIONS.
+ * @param boolean $extract_alt_text Should alt_text be extracted, defaults to false.
+ *
+ * @return array|WP_Error a structure containing metadata about the embedded things, or empty array if nothing found, or WP_Error on error.
*/
- static public function extract( $blog_id, $post_id, $what_to_extract = self::ALL ) {
+ public static function extract( $blog_id, $post_id, $what_to_extract = self::ALL, $extract_alt_text = false ) {
// multisite?
- if ( function_exists( 'switch_to_blog') )
+ if ( function_exists( 'switch_to_blog' ) ) {
switch_to_blog( $blog_id );
+ }
$post = get_post( $post_id );
- $content = $post->post_title . "\n\n" . $post->post_content;
+ if ( ! $post instanceof WP_Post ) {
+ if ( function_exists( 'restore_current_blog' ) ) {
+ restore_current_blog();
+ }
+ return array();
+ }
+ $content = $post->post_title . "\n\n" . $post->post_content;
$char_cnt = strlen( $content );
- //prevent running extraction on really huge amounts of content
- if ( $char_cnt > 100000 ) //about 20k English words
+ // prevent running extraction on really huge amounts of content.
+ if ( $char_cnt > 100000 ) { // about 20k English words.
$content = substr( $content, 0, 100000 );
+ }
$extracted = array();
- // Get images first, we need the full post for that
+ // Get images first, we need the full post for that.
if ( self::IMAGES & $what_to_extract ) {
- $extracted = self::get_image_fields( $post );
+ $extracted = self::get_image_fields( $post, array(), $extract_alt_text );
- // Turn off images so we can safely call extract_from_content() below
+ // Turn off images so we can safely call extract_from_content() below.
$what_to_extract = $what_to_extract - self::IMAGES;
}
- if ( function_exists( 'switch_to_blog') )
+ if ( function_exists( 'restore_current_blog' ) ) {
restore_current_blog();
+ }
- // All of the other things besides images can be extracted from just the content
+ // All of the other things besides images can be extracted from just the content.
$extracted = self::extract_from_content( $content, $what_to_extract, $extracted );
return $extracted;
@@ -74,21 +98,22 @@ class Jetpack_Media_Meta_Extractor {
* NOTE: If you want IMAGES, call extract( $blog_id, $post_id, ...) which will give you more/better image extraction
* This method will give you an error if you ask for IMAGES.
*
- * @param $content The HTML post_content of a post
- * @param $what_to_extract (int) A mask of things to extract, e.g. Jetpack_Media_Meta_Extractor::IMAGES | Jetpack_Media_Meta_Extractor::MENTIONS
- * @param $already_extracted (array) Previously extracted things, e.g. images from extract(), which can be used for x-referencing here
- * @returns a structure containing metadata about the embedded things, or empty array if nothing found, or WP_Error on error
+ * @param string $content The HTML post_content of a post.
+ * @param int $what_to_extract A mask of things to extract, e.g. Jetpack_Media_Meta_Extractor::IMAGES | Jetpack_Media_Meta_Extractor::MENTIONS.
+ * @param array $already_extracted Previously extracted things, e.g. images from extract(), which can be used for x-referencing here.
+ *
+ * @return array a structure containing metadata about the embedded things, or empty array if nothing found, or WP_Error on error.
*/
- static public function extract_from_content( $content, $what_to_extract = self::ALL, $already_extracted = array() ) {
+ public static function extract_from_content( $content, $what_to_extract = self::ALL, $already_extracted = array() ) {
$stripped_content = self::get_stripped_content( $content );
- // Maybe start with some previously extracted things (e.g. images from extract()
+ // Maybe start with some previously extracted things (e.g. images from extract().
$extracted = $already_extracted;
// Embedded media objects will have already been converted to shortcodes by pre_kses hooks on save.
- if ( self::IMAGES & $what_to_extract ) {
- $images = Jetpack_Media_Meta_Extractor::extract_images_from_content( $stripped_content, array() );
+ if ( self::IMAGES & $what_to_extract ) {
+ $images = self::extract_images_from_content( $stripped_content, array() );
$extracted = array_merge( $extracted, $images );
}
@@ -96,30 +121,33 @@ class Jetpack_Media_Meta_Extractor {
if ( self::MENTIONS & $what_to_extract ) {
if ( preg_match_all( '/(^|\s)@(\w+)/u', $stripped_content, $matches ) ) {
- $mentions = array_values( array_unique( $matches[2] ) ); //array_unique() retains the keys!
- $mentions = array_map( 'strtolower', $mentions );
+ $mentions = array_values( array_unique( $matches[2] ) ); // array_unique() retains the keys!
+ $mentions = array_map( 'strtolower', $mentions );
$extracted['mention'] = array( 'name' => $mentions );
- if ( !isset( $extracted['has'] ) )
+ if ( ! isset( $extracted['has'] ) ) {
$extracted['has'] = array();
+ }
$extracted['has']['mention'] = count( $mentions );
}
}
// ----------------------------------- HASHTAGS ------------------------------
- /** Some hosts may not compile with --enable-unicode-properties and kick a warning:
- * Warning: preg_match_all() [function.preg-match-all]: Compilation failed: support for \P, \p, and \X has not been compiled
- * Therefore, we only run this code block on wpcom, not in Jetpack.
+ /**
+ * Some hosts may not compile with --enable-unicode-properties and kick a warning:
+ * Warning: preg_match_all() [function.preg-match-all]: Compilation failed: support for \P, \p, and \X has not been compiled
+ * Therefore, we only run this code block on wpcom, not in Jetpack.
*/
if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) && ( self::HASHTAGS & $what_to_extract ) ) {
- //This regex does not exactly match Twitter's
+ // This regex does not exactly match Twitter's
// if there are problems/complaints we should implement this:
- // https://github.com/twitter/twitter-text/blob/master/java/src/com/twitter/Regex.java
+ // https://github.com/twitter/twitter-text/blob/master/java/src/com/twitter/Regex.java .
if ( preg_match_all( '/(?:^|\s)#(\w*\p{L}+\w*)/u', $stripped_content, $matches ) ) {
- $hashtags = array_values( array_unique( $matches[1] ) ); //array_unique() retains the keys!
- $hashtags = array_map( 'strtolower', $hashtags );
+ $hashtags = array_values( array_unique( $matches[1] ) ); // array_unique() retains the keys!
+ $hashtags = array_map( 'strtolower', $hashtags );
$extracted['hashtag'] = array( 'name' => $hashtags );
- if ( !isset( $extracted['has'] ) )
+ if ( ! isset( $extracted['has'] ) ) {
$extracted['has'] = array();
+ }
$extracted['has']['hashtag'] = count( $hashtags );
}
}
@@ -127,64 +155,72 @@ class Jetpack_Media_Meta_Extractor {
// ----------------------------------- SHORTCODES ------------------------------
// Always look for shortcodes.
- // If we don't want them, we'll just remove them, so we don't grab them as links below
+ // If we don't want them, we'll just remove them, so we don't grab them as links below.
$shortcode_pattern = '/' . get_shortcode_regex() . '/s';
- if ( preg_match_all( $shortcode_pattern, $content, $matches ) ) {
+ if ( preg_match_all( $shortcode_pattern, $content, $matches ) ) {
$shortcode_total_count = 0;
$shortcode_type_counts = array();
- $shortcode_types = array();
- $shortcode_details = array();
+ $shortcode_types = array();
+ $shortcode_details = array();
if ( self::SHORTCODES & $what_to_extract ) {
- foreach( $matches[2] as $key => $shortcode ) {
- //Elasticsearch (and probably other things) doesn't deal well with some chars as key names
+ foreach ( $matches[2] as $key => $shortcode ) {
+ // Elasticsearch (and probably other things) doesn't deal well with some chars as key names.
$shortcode_name = preg_replace( '/[.,*"\'\/\\\\#+ ]/', '_', $shortcode );
$attr = shortcode_parse_atts( $matches[3][ $key ] );
$shortcode_total_count++;
- if ( ! isset( $shortcode_type_counts[$shortcode_name] ) )
- $shortcode_type_counts[$shortcode_name] = 0;
- $shortcode_type_counts[$shortcode_name]++;
+ if ( ! isset( $shortcode_type_counts[ $shortcode_name ] ) ) {
+ $shortcode_type_counts[ $shortcode_name ] = 0;
+ }
+ $shortcode_type_counts[ $shortcode_name ]++;
// Store (uniquely) presence of all shortcode regardless of whether it's a keeper (for those, get ID below)
// @todo Store number of occurrences?
- if ( ! in_array( $shortcode_name, $shortcode_types ) )
+ if ( ! in_array( $shortcode_name, $shortcode_types, true ) ) {
$shortcode_types[] = $shortcode_name;
+ }
- // For keeper shortcodes, also store the id/url of the object (e.g. youtube video, TED talk, etc.)
- if ( in_array( $shortcode, self::$KEEPER_SHORTCODES ) ) {
- unset( $id ); // Clear shortcode ID data left from the last shortcode
- // We'll try to get the salient ID from the function jetpack_shortcode_get_xyz_id()
- // If the shortcode is a class, we'll call XyzShortcode::get_xyz_id()
- $shortcode_get_id_func = "jetpack_shortcode_get_{$shortcode}_id";
- $shortcode_class_name = ucfirst( $shortcode ) . 'Shortcode';
+ // For keeper shortcodes, also store the id/url of the object (e.g. youtube video, TED talk, etc.).
+ if ( in_array( $shortcode, self::$keeper_shortcodes, true ) ) {
+ // Clear shortcode ID data left from the last shortcode.
+ $id = null;
+ // We'll try to get the salient ID from the function jetpack_shortcode_get_xyz_id().
+ // If the shortcode is a class, we'll call XyzShortcode::get_xyz_id().
+ $shortcode_get_id_func = "jetpack_shortcode_get_{$shortcode}_id";
+ $shortcode_class_name = ucfirst( $shortcode ) . 'Shortcode';
$shortcode_get_id_method = "get_{$shortcode}_id";
if ( function_exists( $shortcode_get_id_func ) ) {
$id = call_user_func( $shortcode_get_id_func, $attr );
- } else if ( method_exists( $shortcode_class_name, $shortcode_get_id_method ) ) {
+ } elseif ( method_exists( $shortcode_class_name, $shortcode_get_id_method ) ) {
$id = call_user_func( array( $shortcode_class_name, $shortcode_get_id_method ), $attr );
}
if ( ! empty( $id )
- && ( ! isset( $shortcode_details[$shortcode_name] ) || ! in_array( $id, $shortcode_details[$shortcode_name] ) ) )
- $shortcode_details[$shortcode_name][] = $id;
+ && ( ! isset( $shortcode_details[ $shortcode_name ] ) || ! in_array( $id, $shortcode_details[ $shortcode_name ], true ) ) ) {
+ $shortcode_details[ $shortcode_name ][] = $id;
+ }
}
}
if ( $shortcode_total_count > 0 ) {
- // Add the shortcode info to the $extracted array
- if ( !isset( $extracted['has'] ) )
+ // Add the shortcode info to the $extracted array.
+ if ( ! isset( $extracted['has'] ) ) {
$extracted['has'] = array();
+ }
$extracted['has']['shortcode'] = $shortcode_total_count;
- $extracted['shortcode'] = array();
- foreach ( $shortcode_type_counts as $type => $count )
- $extracted['shortcode'][$type] = array( 'count' => $count );
- if ( ! empty( $shortcode_types ) )
+ $extracted['shortcode'] = array();
+ foreach ( $shortcode_type_counts as $type => $count ) {
+ $extracted['shortcode'][ $type ] = array( 'count' => $count );
+ }
+ if ( ! empty( $shortcode_types ) ) {
$extracted['shortcode_types'] = $shortcode_types;
- foreach ( $shortcode_details as $type => $id )
- $extracted['shortcode'][$type]['id'] = $id;
+ }
+ foreach ( $shortcode_details as $type => $id ) {
+ $extracted['shortcode'][ $type ]['id'] = $id;
+ }
}
}
@@ -196,112 +232,121 @@ class Jetpack_Media_Meta_Extractor {
if ( self::LINKS & $what_to_extract ) {
- // To hold the extracted stuff we find
+ // To hold the extracted stuff we find.
$links = array();
// @todo Get the text inside the links?
- // Grab any links, whether in <a href="..." or not, but subtract those from shortcodes and images
- // (we treat embed links as just another link)
+ // Grab any links, whether in <a href="..." or not, but subtract those from shortcodes and images.
+ // (we treat embed links as just another link).
if ( preg_match_all( '#(?:^|\s|"|\')(https?://([^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))))#', $content, $matches ) ) {
foreach ( $matches[1] as $link_raw ) {
$url = wp_parse_url( $link_raw );
- // Data URI links
- if ( isset( $url['scheme'] ) && 'data' === $url['scheme'] )
+ // Data URI links.
+ if ( ! isset( $url['scheme'] ) || 'data' === $url['scheme'] ) {
+ continue;
+ }
+
+ // Reject invalid URLs.
+ if ( ! isset( $url['host'] ) ) {
continue;
+ }
- // Remove large (and likely invalid) links
- if ( 4096 < strlen( $link_raw ) )
+ // Remove large (and likely invalid) links.
+ if ( 4096 < strlen( $link_raw ) ) {
continue;
+ }
- // Build a simple form of the URL so we can compare it to ones we found in IMAGES or SHORTCODES and exclude those
+ // Build a simple form of the URL so we can compare it to ones we found in IMAGES or SHORTCODES and exclude those.
$simple_url = $url['scheme'] . '://' . $url['host'] . ( ! empty( $url['path'] ) ? $url['path'] : '' );
if ( isset( $extracted['image']['url'] ) ) {
- if ( in_array( $simple_url, (array) $extracted['image']['url'] ) )
+ if ( in_array( $simple_url, (array) $extracted['image']['url'], true ) ) {
continue;
+ }
}
- list( $proto, $link_all_but_proto ) = explode( '://', $link_raw );
+ list( $proto, $link_all_but_proto ) = explode( '://', $link_raw ); // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
- // Build a reversed hostname
- $host_parts = array_reverse( explode( '.', $url['host'] ) );
+ // Build a reversed hostname.
+ $host_parts = array_reverse( explode( '.', $url['host'] ) );
$host_reversed = '';
foreach ( $host_parts as $part ) {
$host_reversed .= ( ! empty( $host_reversed ) ? '.' : '' ) . $part;
}
$link_analyzed = '';
- if ( !empty( $url['path'] ) ) {
- // The whole path (no query args or fragments)
- $path = substr( $url['path'], 1 ); // strip the leading '/'
+ if ( ! empty( $url['path'] ) ) {
+ // The whole path (no query args or fragments).
+ $path = substr( $url['path'], 1 ); // strip the leading '/'.
$link_analyzed .= ( ! empty( $link_analyzed ) ? ' ' : '' ) . $path;
- // The path split by /
+ // The path split by /.
$path_split = explode( '/', $path );
if ( count( $path_split ) > 1 ) {
$link_analyzed .= ' ' . implode( ' ', $path_split );
}
- // The fragment
- if ( ! empty( $url['fragment'] ) )
+ // The fragment.
+ if ( ! empty( $url['fragment'] ) ) {
$link_analyzed .= ( ! empty( $link_analyzed ) ? ' ' : '' ) . $url['fragment'];
+ }
}
// @todo Check unique before adding
$links[] = array(
- 'url' => $link_all_but_proto,
+ 'url' => $link_all_but_proto,
'host_reversed' => $host_reversed,
- 'host' => $url['host'],
+ 'host' => $url['host'],
);
}
-
}
$link_count = count( $links );
if ( $link_count ) {
- $extracted[ 'link' ] = $links;
- if ( !isset( $extracted['has'] ) )
+ $extracted['link'] = $links;
+ if ( ! isset( $extracted['has'] ) ) {
$extracted['has'] = array();
+ }
$extracted['has']['link'] = $link_count;
}
}
// ----------------------------------- EMBEDS ------------------------------
- //Embeds are just individual links on their own line
+ // Embeds are just individual links on their own line.
if ( self::EMBEDS & $what_to_extract ) {
- if ( !function_exists( '_wp_oembed_get_object' ) )
- include( ABSPATH . WPINC . '/class-oembed.php' );
+ if ( ! function_exists( '_wp_oembed_get_object' ) ) {
+ include ABSPATH . WPINC . '/class-oembed.php';
+ }
- // get an oembed object
+ // get an oembed object.
$oembed = _wp_oembed_get_object();
- // Grab any links on their own lines that may be embeds
+ // Grab any links on their own lines that may be embeds.
if ( preg_match_all( '|^\s*(https?://[^\s"]+)\s*$|im', $content, $matches ) ) {
- // To hold the extracted stuff we find
+ // To hold the extracted stuff we find.
$embeds = array();
foreach ( $matches[1] as $link_raw ) {
$url = wp_parse_url( $link_raw );
- list( $proto, $link_all_but_proto ) = explode( '://', $link_raw );
+ list( $proto, $link_all_but_proto ) = explode( '://', $link_raw ); // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
// Check whether this "link" is really an embed.
foreach ( $oembed->providers as $matchmask => $data ) {
- list( $providerurl, $regex ) = $data;
+ list( $providerurl, $regex ) = $data; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
- // Turn the asterisk-type provider URLs into regex
- if ( !$regex ) {
+ // Turn the asterisk-type provider URLs into regex.
+ if ( ! $regex ) {
$matchmask = '#' . str_replace( '___wildcard___', '(.+)', preg_quote( str_replace( '*', '___wildcard___', $matchmask ), '#' ) ) . '#i';
$matchmask = preg_replace( '|^#http\\\://|', '#https?\://', $matchmask );
}
if ( preg_match( $matchmask, $link_raw ) ) {
- $provider = str_replace( '{format}', 'json', $providerurl ); // JSON is easier to deal with than XML
$embeds[] = $link_all_but_proto; // @todo Check unique before adding
// @todo Try to get ID's for the ones we care about (shortcode_keepers)
@@ -311,12 +356,14 @@ class Jetpack_Media_Meta_Extractor {
}
if ( ! empty( $embeds ) ) {
- if ( !isset( $extracted['has'] ) )
+ if ( ! isset( $extracted['has'] ) ) {
$extracted['has'] = array();
+ }
$extracted['has']['embed'] = count( $embeds );
- $extracted['embed'] = array( 'url' => array() );
- foreach ( $embeds as $e )
+ $extracted['embed'] = array( 'url' => array() );
+ foreach ( $embeds as $e ) {
$extracted['embed']['url'][] = $e;
+ }
}
}
}
@@ -325,65 +372,132 @@ class Jetpack_Media_Meta_Extractor {
}
/**
- * @param $post A post object
- * @param $args (array) Optional args, see defaults list for details
- * @returns array Returns an array of all images meeting the specified criteria in $args
+ * Get image fields for matching images.
*
- * Uses Jetpack Post Images
+ * @uses Jetpack_PostImages
+ *
+ * @param WP_Post $post A post object.
+ * @param array $args Optional args, see defaults list for details.
+ * @param boolean $extract_alt_text Should alt_text be extracted, defaults to false.
+ *
+ * @return array Returns an array of all images meeting the specified criteria in $args.
*/
- private static function get_image_fields( $post, $args = array() ) {
+ private static function get_image_fields( $post, $args = array(), $extract_alt_text = false ) {
+
+ if ( ! $post instanceof WP_Post ) {
+ return array();
+ }
$defaults = array(
- 'width' => 200, // Required minimum width (if possible to determine)
- 'height' => 200, // Required minimum height (if possible to determine)
+ 'width' => 200, // Required minimum width (if possible to determine).
+ 'height' => 200, // Required minimum height (if possible to determine).
);
$args = wp_parse_args( $args, $defaults );
- $image_list = array();
- $image_booleans = array();
+ $image_list = array();
+ $image_booleans = array();
$image_booleans['gallery'] = 0;
$from_featured_image = Jetpack_PostImages::from_thumbnail( $post->ID, $args['width'], $args['height'] );
- if ( !empty( $from_featured_image ) ) {
- $srcs = wp_list_pluck( $from_featured_image, 'src' );
- $image_list = array_merge( $image_list, $srcs );
+ if ( ! empty( $from_featured_image ) ) {
+ if ( $extract_alt_text ) {
+ $image_list = array_merge( $image_list, self::reduce_extracted_images( $from_featured_image ) );
+ } else {
+ $srcs = wp_list_pluck( $from_featured_image, 'src' );
+ $image_list = array_merge( $image_list, $srcs );
+ }
}
$from_slideshow = Jetpack_PostImages::from_slideshow( $post->ID, $args['width'], $args['height'] );
- if ( !empty( $from_slideshow ) ) {
- $srcs = wp_list_pluck( $from_slideshow, 'src' );
- $image_list = array_merge( $image_list, $srcs );
+ if ( ! empty( $from_slideshow ) ) {
+ if ( $extract_alt_text ) {
+ $image_list = array_merge( $image_list, self::reduce_extracted_images( $from_slideshow ) );
+ } else {
+ $srcs = wp_list_pluck( $from_slideshow, 'src' );
+ $image_list = array_merge( $image_list, $srcs );
+ }
}
$from_gallery = Jetpack_PostImages::from_gallery( $post->ID );
- if ( !empty( $from_gallery ) ) {
- $srcs = wp_list_pluck( $from_gallery, 'src' );
- $image_list = array_merge( $image_list, $srcs );
+ if ( ! empty( $from_gallery ) ) {
+ if ( $extract_alt_text ) {
+ $image_list = array_merge( $image_list, self::reduce_extracted_images( $from_gallery ) );
+ } else {
+ $srcs = wp_list_pluck( $from_gallery, 'src' );
+ $image_list = array_merge( $image_list, $srcs );
+ }
$image_booleans['gallery']++; // @todo This count isn't correct, will only every count 1
}
// @todo Can we check width/height of these efficiently? Could maybe use query args at least, before we strip them out
- $image_list = Jetpack_Media_Meta_Extractor::get_images_from_html( $post->post_content, $image_list );
+ $image_list = self::get_images_from_html( $post->post_content, $image_list, $extract_alt_text );
- return Jetpack_Media_Meta_Extractor::build_image_struct( $image_list, $image_booleans );
+ return self::build_image_struct( $image_list, $image_booleans );
}
+ /**
+ * Given an extracted image array reduce to src and alt_text.
+ *
+ * @param array $images extracted image array.
+ *
+ * @return array reduced image array
+ */
+ protected static function reduce_extracted_images( $images ) {
+ $ret_images = array();
+ foreach ( $images as $image ) {
+ // skip if src isn't set.
+ if ( empty( $image['src'] ) ) {
+ continue;
+ }
+ if ( ! empty( $image['alt_text'] ) ) {
+ $ret_images[] = array(
+ 'url' => $image['src'],
+ 'alt_text' => $image['alt_text'],
+ );
+ } else {
+ $ret_images[] = $image['src'];
+ }
+ }
+ return $ret_images;
+ }
+
+ /**
+ * Helper function to get images from HTML and return it with the set sturcture.
+ *
+ * @param string $content HTML content.
+ * @param array $image_list Array of already found images.
+ *
+ * @return array|array[] Array of images.
+ */
public static function extract_images_from_content( $content, $image_list ) {
- $image_list = Jetpack_Media_Meta_Extractor::get_images_from_html( $content, $image_list );
- return Jetpack_Media_Meta_Extractor::build_image_struct( $image_list, array() );
+ $image_list = self::get_images_from_html( $content, $image_list );
+ return self::build_image_struct( $image_list, array() );
}
+ /**
+ * Produces a set structure for extracted media items.
+ *
+ * @param array $image_list Array of images.
+ * @param array $image_booleans Image booleans.
+ *
+ * @return array|array[]
+ */
public static function build_image_struct( $image_list, $image_booleans ) {
if ( ! empty( $image_list ) ) {
- $retval = array( 'image' => array() );
- $image_list = array_unique( $image_list );
+ $retval = array( 'image' => array() );
+ $image_list = array_unique( $image_list, SORT_REGULAR );
foreach ( $image_list as $img ) {
- $retval['image'][] = array( 'url' => $img );
+ if ( is_string( $img ) ) {
+ $retval['image'][] = array( 'url' => $img );
+ } else {
+ $retval['image'][] = $img;
+ }
}
$image_booleans['image'] = count( $retval['image'] );
- if ( ! empty( $image_booleans ) )
+ if ( ! empty( $image_booleans ) ) {
$retval['has'] = $image_booleans;
+ }
return $retval;
} else {
return array();
@@ -391,34 +505,50 @@ class Jetpack_Media_Meta_Extractor {
}
/**
+ * Extracts images from html.
+ *
+ * @param string $html Some markup, possibly containing image tags.
+ * @param array $images_already_extracted (just an array of image URLs without query strings, no special structure), used for de-duplication.
+ * @param boolean $extract_alt_text Should alt_text be extracted, defaults to false.
*
- * @param string $html Some markup, possibly containing image tags
- * @param array $images_already_extracted (just an array of image URLs without query strings, no special structure), used for de-duplication
* @return array Image URLs extracted from the HTML, stripped of query params and de-duped
*/
- public static function get_images_from_html( $html, $images_already_extracted ) {
+ public static function get_images_from_html( $html, $images_already_extracted, $extract_alt_text = false ) {
$image_list = $images_already_extracted;
- $from_html = Jetpack_PostImages::from_html( $html );
- if ( !empty( $from_html ) ) {
- $srcs = wp_list_pluck( $from_html, 'src' );
- foreach( $srcs as $image_url ) {
- if ( ( $src = wp_parse_url( $image_url ) ) && isset( $src['scheme'], $src['host'], $src['path'] ) ) {
- // Rebuild the URL without the query string
- $queryless = $src['scheme'] . '://' . $src['host'] . $src['path'];
- } elseif ( $length = strpos( $image_url, '?' ) ) {
- // If wp_parse_url() didn't work, strip off the query string the old fashioned way
- $queryless = substr( $image_url, 0, $length );
- } else {
- // Failing that, there was no spoon! Err ... query string!
- $queryless = $image_url;
- }
+ $from_html = Jetpack_PostImages::from_html( $html );
+ // early return if no image in html.
+ if ( empty( $from_html ) ) {
+ return $image_list;
+ }
+ // process images.
+ foreach ( $from_html as $extracted_image ) {
+ $image_url = $extracted_image['src'];
+ $length = strpos( $image_url, '?' );
+ $src = wp_parse_url( $image_url );
+
+ if ( $src && isset( $src['scheme'], $src['host'], $src['path'] ) ) {
+ // Rebuild the URL without the query string.
+ $queryless = $src['scheme'] . '://' . $src['host'] . $src['path'];
+ } elseif ( $length ) {
+ // If wp_parse_url() didn't work, strip off the query string the old fashioned way.
+ $queryless = substr( $image_url, 0, $length );
+ } else {
+ // Failing that, there was no spoon! Err ... query string!
+ $queryless = $image_url;
+ }
- // Discard URLs that are longer then 4KB, these are likely data URIs or malformed HTML.
- if ( 4096 < strlen( $queryless ) ) {
- continue;
- }
+ // Discard URLs that are longer then 4KB, these are likely data URIs or malformed HTML.
+ if ( 4096 < strlen( $queryless ) ) {
+ continue;
+ }
- if ( ! in_array( $queryless, $image_list ) ) {
+ if ( ! in_array( $queryless, $image_list, true ) ) {
+ if ( $extract_alt_text && ! empty( $extracted_image['alt_text'] ) ) {
+ $image_list[] = array(
+ 'url' => $queryless,
+ 'alt_text' => $extracted_image['alt_text'],
+ );
+ } else {
$image_list[] = $queryless;
}
}
@@ -426,10 +556,17 @@ class Jetpack_Media_Meta_Extractor {
return $image_list;
}
+ /**
+ * Strips concents of all tags, shortcodes, and decodes HTML entities.
+ *
+ * @param string $content Original content.
+ *
+ * @return string Cleaned content.
+ */
private static function get_stripped_content( $content ) {
- $clean_content = strip_tags( $content );
+ $clean_content = wp_strip_all_tags( $content );
$clean_content = html_entity_decode( $clean_content );
- //completely strip shortcodes and any content they enclose
+ // completely strip shortcodes and any content they enclose.
$clean_content = strip_shortcodes( $clean_content );
return $clean_content;
}
diff --git a/plugins/jetpack/_inc/lib/class.media-summary.php b/plugins/jetpack/_inc/lib/class.media-summary.php
index 6d5f2d48..79d5845f 100644
--- a/plugins/jetpack/_inc/lib/class.media-summary.php
+++ b/plugins/jetpack/_inc/lib/class.media-summary.php
@@ -1,23 +1,50 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Provides media summary of a post.
+ *
+ * @package automattic/jetpack
+ */
+
/**
* Class Jetpack_Media_Summary
*
- * embed [video] > gallery > image > text
+ * Priority: embed [video] > gallery > image > text
*/
class Jetpack_Media_Summary {
+ /**
+ * Media cache.
+ *
+ * @var array
+ */
private static $cache = array();
- static function get( $post_id, $blog_id = 0, $args = array() ) {
+ /**
+ * Get media summary for a post.
+ *
+ * @param int $post_id Post ID.
+ * @param int $blog_id Blog ID, if applicable.
+ * @param array $args {
+ * Optional. An array of arguments.
+ * @type int $max_words Maximum number of words.
+ * @type int $max_chars Maximum number of characters.
+ * }
+ *
+ * @return array|mixed|void
+ */
+ public static function get( $post_id, $blog_id = 0, $args = array() ) {
+ // @todo: Use type hinting in the line above when at PHP 7.0+.
+ $post_id = (int) $post_id;
+ $blog_id = (int) $blog_id;
$defaults = array(
'max_words' => 16,
'max_chars' => 256,
);
- $args = wp_parse_args( $args, $defaults );
+ $args = wp_parse_args( $args, $defaults );
$switched = false;
- if ( !empty( $blog_id ) && $blog_id != get_current_blog_id() && function_exists( 'switch_to_blog' ) ) {
+ if ( ! empty( $blog_id ) && get_current_blog_id() !== $blog_id && function_exists( 'switch_to_blog' ) ) {
switch_to_blog( $blog_id );
$switched = true;
} else {
@@ -26,6 +53,9 @@ class Jetpack_Media_Summary {
$cache_key = "{$blog_id}_{$post_id}_{$args['max_words']}_{$args['max_chars']}";
if ( isset( self::$cache[ $cache_key ] ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
return self::$cache[ $cache_key ];
}
@@ -47,9 +77,9 @@ class Jetpack_Media_Summary {
'excerpt' => '',
'word_count' => 0,
'secure' => array(
- 'image' => '',
+ 'image' => '',
),
- 'count' => array(
+ 'count' => array(
'image' => 0,
'video' => 0,
'word' => 0,
@@ -57,31 +87,35 @@ class Jetpack_Media_Summary {
),
);
- if ( empty( $post->post_password ) ) {
- $return['excerpt'] = self::get_excerpt( $post->post_content, $post->post_excerpt, $args['max_words'], $args['max_chars'] , $post);
- $return['count']['word'] = self::get_word_count( $post->post_content );
+ if ( $post instanceof WP_Post && empty( $post->post_password ) ) {
+ $return['excerpt'] = self::get_excerpt( $post->post_content, $post->post_excerpt, $args['max_words'], $args['max_chars'], $post );
+ $return['count']['word'] = self::get_word_count( $post->post_content );
$return['count']['word_remaining'] = self::get_word_remaining_count( $post->post_content, $return['excerpt'] );
- $return['count']['link'] = self::get_link_count( $post->post_content );
+ $return['count']['link'] = self::get_link_count( $post->post_content );
}
$extract = Jetpack_Media_Meta_Extractor::extract( $blog_id, $post_id, Jetpack_Media_Meta_Extractor::ALL );
- if ( empty( $extract['has'] ) )
+ if ( empty( $extract['has'] ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
return $return;
+ }
- // Prioritize [some] video embeds
- if ( !empty( $extract['has']['shortcode'] ) ) {
+ // Prioritize [some] video embeds.
+ if ( ! empty( $extract['has']['shortcode'] ) ) {
foreach ( $extract['shortcode'] as $type => $data ) {
switch ( $type ) {
case 'videopress':
case 'wpvideo':
- if ( 0 == $return['count']['video'] ) {
- // If there is no id on the video, then let's just skip this
- if ( ! isset ( $data['id'][0] ) ) {
+ if ( 0 === $return['count']['video'] ) {
+ // If there is no id on the video, then let's just skip this.
+ if ( ! isset( $data['id'][0] ) ) {
break;
}
- $guid = $data['id'][0];
+ $guid = $data['id'][0];
$video_info = videopress_get_video_details( $guid );
// Only add the video tags if the guid returns a valid videopress object.
@@ -99,39 +133,38 @@ class Jetpack_Media_Summary {
$thumbnail = $video_info->poster;
if ( ! empty( $thumbnail ) ) {
- $return['image'] = $thumbnail;
+ $return['image'] = $thumbnail;
$return['secure']['image'] = $thumbnail;
}
- $return['type'] = 'video';
- $return['video'] = esc_url_raw( $url );
- $return['video_type'] = 'video/mp4';
+ $return['type'] = 'video';
+ $return['video'] = esc_url_raw( $url );
+ $return['video_type'] = 'video/mp4';
$return['secure']['video'] = $return['video'];
}
-
}
$return['count']['video']++;
break;
case 'youtube':
- if ( 0 == $return['count']['video'] ) {
- $return['type'] = 'video';
- $return['video'] = esc_url_raw( 'http://www.youtube.com/watch?feature=player_embedded&v=' . $extract['shortcode']['youtube']['id'][0] );
- $return['image'] = self::get_video_poster( 'youtube', $extract['shortcode']['youtube']['id'][0] );
+ if ( 0 === $return['count']['video'] ) {
+ $return['type'] = 'video';
+ $return['video'] = esc_url_raw( 'http://www.youtube.com/watch?feature=player_embedded&v=' . $extract['shortcode']['youtube']['id'][0] );
+ $return['image'] = self::get_video_poster( 'youtube', $extract['shortcode']['youtube']['id'][0] );
$return['secure']['video'] = self::https( $return['video'] );
$return['secure']['image'] = self::https( $return['image'] );
}
$return['count']['video']++;
break;
case 'vimeo':
- if ( 0 == $return['count']['video'] ) {
- $return['type'] = 'video';
- $return['video'] = esc_url_raw( 'http://vimeo.com/' . $extract['shortcode']['vimeo']['id'][0] );
+ if ( 0 === $return['count']['video'] ) {
+ $return['type'] = 'video';
+ $return['video'] = esc_url_raw( 'http://vimeo.com/' . $extract['shortcode']['vimeo']['id'][0] );
$return['secure']['video'] = self::https( $return['video'] );
$poster_image = get_post_meta( $post_id, 'vimeo_poster_image', true );
- if ( !empty( $poster_image ) ) {
- $return['image'] = $poster_image;
- $poster_url_parts = wp_parse_url( $poster_image );
+ if ( ! empty( $poster_image ) ) {
+ $return['image'] = $poster_image;
+ $poster_url_parts = wp_parse_url( $poster_image );
$return['secure']['image'] = 'https://secure-a.vimeocdn.com' . $poster_url_parts['path'];
}
}
@@ -139,38 +172,36 @@ class Jetpack_Media_Summary {
break;
}
}
-
}
- if ( !empty( $extract['has']['embed'] ) ) {
- foreach( $extract['embed']['url'] as $embed ) {
+ if ( ! empty( $extract['has']['embed'] ) ) {
+ foreach ( $extract['embed']['url'] as $embed ) {
if ( preg_match( '/((youtube|vimeo|dailymotion)\.com|youtu.be)/', $embed ) ) {
- if ( 0 == $return['count']['video'] ) {
- $return['type'] = 'video';
- $return['video'] = 'http://' . $embed;
+ if ( 0 === $return['count']['video'] ) {
+ $return['type'] = 'video';
+ $return['video'] = 'http://' . $embed;
$return['secure']['video'] = self::https( $return['video'] );
if ( false !== strpos( $embed, 'youtube' ) ) {
- $return['image'] = self::get_video_poster( 'youtube', jetpack_get_youtube_id( $return['video'] ) );
+ $return['image'] = self::get_video_poster( 'youtube', jetpack_get_youtube_id( $return['video'] ) );
$return['secure']['image'] = self::https( $return['image'] );
- } else if ( false !== strpos( $embed, 'youtu.be' ) ) {
- $youtube_id = jetpack_get_youtube_id( $return['video'] );
- $return['video'] = 'http://youtube.com/watch?v=' . $youtube_id . '&feature=youtu.be';
+ } elseif ( false !== strpos( $embed, 'youtu.be' ) ) {
+ $youtube_id = jetpack_get_youtube_id( $return['video'] );
+ $return['video'] = 'http://youtube.com/watch?v=' . $youtube_id . '&feature=youtu.be';
$return['secure']['video'] = self::https( $return['video'] );
- $return['image'] = self::get_video_poster( 'youtube', jetpack_get_youtube_id( $return['video'] ) );
+ $return['image'] = self::get_video_poster( 'youtube', jetpack_get_youtube_id( $return['video'] ) );
$return['secure']['image'] = self::https( $return['image'] );
- } else if ( false !== strpos( $embed, 'vimeo' ) ) {
+ } elseif ( false !== strpos( $embed, 'vimeo' ) ) {
$poster_image = get_post_meta( $post_id, 'vimeo_poster_image', true );
- if ( !empty( $poster_image ) ) {
- $return['image'] = $poster_image;
- $poster_url_parts = wp_parse_url( $poster_image );
+ if ( ! empty( $poster_image ) ) {
+ $return['image'] = $poster_image;
+ $poster_url_parts = wp_parse_url( $poster_image );
$return['secure']['image'] = 'https://secure-a.vimeocdn.com' . $poster_url_parts['path'];
}
- } else if ( false !== strpos( $embed, 'dailymotion' ) ) {
- $return['image'] = str_replace( 'dailymotion.com/video/','dailymotion.com/thumbnail/video/', $embed );
- $return['image'] = wp_parse_url( $return['image'], PHP_URL_SCHEME ) === null ? 'http://' . $return['image'] : $return['image'];
+ } elseif ( false !== strpos( $embed, 'dailymotion' ) ) {
+ $return['image'] = str_replace( 'dailymotion.com/video/', 'dailymotion.com/thumbnail/video/', $embed );
+ $return['image'] = wp_parse_url( $return['image'], PHP_URL_SCHEME ) === null ? 'http://' . $return['image'] : $return['image'];
$return['secure']['image'] = self::https( $return['image'] );
}
-
}
$return['count']['video']++;
}
@@ -178,64 +209,65 @@ class Jetpack_Media_Summary {
}
// Do we really want to make the video the primary focus of the post?
- if ( 'video' == $return['type'] ) {
- $content = wpautop( strip_tags( $post->post_content ) );
- $paragraphs = explode( '</p>', $content );
+ if ( 'video' === $return['type'] ) {
+ $content = wpautop( wp_strip_all_tags( $post->post_content ) );
+ $paragraphs = explode( '</p>', $content );
$number_of_paragraphs = 0;
foreach ( $paragraphs as $i => $paragraph ) {
- // Don't include blank lines as a paragraph
- if ( '' == trim( $paragraph ) ) {
- unset( $paragraphs[$i] );
+ // Don't include blank lines as a paragraph.
+ if ( '' === trim( $paragraph ) ) {
+ unset( $paragraphs[ $i ] );
continue;
}
$number_of_paragraphs++;
}
- $number_of_paragraphs = $number_of_paragraphs - $return['count']['video']; // subtract amount for videos..
+ $number_of_paragraphs = $number_of_paragraphs - $return['count']['video']; // subtract amount for videos.
- // More than 2 paragraph? The video is not the primary focus so we can do some more analysis
- if ( $number_of_paragraphs > 2 )
+ // More than 2 paragraph? The video is not the primary focus so we can do some more analysis.
+ if ( $number_of_paragraphs > 2 ) {
$return['type'] = 'standard';
+ }
}
// If we don't have any prioritized embed...
- if ( 'standard' == $return['type'] ) {
+ if ( 'standard' === $return['type'] ) {
if ( ( ! empty( $extract['has']['gallery'] ) || ! empty( $extract['shortcode']['gallery']['count'] ) ) && ! empty( $extract['image'] ) ) {
- //... Then we prioritize galleries first (multiple images returned)
+ // ... Then we prioritize galleries first (multiple images returned)
$return['type'] = 'gallery';
$return['images'] = $extract['image'];
foreach ( $return['images'] as $image ) {
$return['secure']['images'][] = array( 'url' => self::ssl_img( $image['url'] ) );
$return['count']['image']++;
}
- } else if ( ! empty( $extract['has']['image'] ) ) {
- // ... Or we try and select a single image that would make sense
- $content = wpautop( strip_tags( $post->post_content ) );
- $paragraphs = explode( '</p>', $content );
+ } elseif ( ! empty( $extract['has']['image'] ) ) {
+ // ... Or we try and select a single image that would make sense.
+ $content = wpautop( wp_strip_all_tags( $post->post_content ) );
+ $paragraphs = explode( '</p>', $content );
$number_of_paragraphs = 0;
foreach ( $paragraphs as $i => $paragraph ) {
- // Don't include 'actual' captions as a paragraph
+ // Don't include 'actual' captions as a paragraph.
if ( false !== strpos( $paragraph, '[caption' ) ) {
- unset( $paragraphs[$i] );
+ unset( $paragraphs[ $i ] );
continue;
}
- // Don't include blank lines as a paragraph
- if ( '' == trim( $paragraph ) ) {
- unset( $paragraphs[$i] );
+ // Don't include blank lines as a paragraph.
+ if ( '' === trim( $paragraph ) ) {
+ unset( $paragraphs[ $i ] );
continue;
}
$number_of_paragraphs++;
}
- $return['image'] = $extract['image'][0]['url'];
+ $return['image'] = $extract['image'][0]['url'];
$return['secure']['image'] = self::ssl_img( $return['image'] );
$return['count']['image']++;
- if ( $number_of_paragraphs <= 2 && 1 == count( $extract['image'] ) ) {
- // If we have lots of text or images, let's not treat it as an image post, but return its first image
- $return['type'] = 'image';
+ if ( $number_of_paragraphs <= 2 && 1 === count( $extract['image'] ) ) {
+ // If we have lots of text or images, let's not treat it as an image post, but return its first image.
+ $return['type'] = 'image';
}
}
}
@@ -259,11 +291,25 @@ class Jetpack_Media_Summary {
return $return;
}
- static function https( $str ) {
+ /**
+ * Converts http to https://
+ *
+ * @param string $str URL.
+ *
+ * @return string URL.
+ */
+ public static function https( $str ) {
return str_replace( 'http://', 'https://', $str );
}
- static function ssl_img( $url ) {
+ /**
+ * Returns a Photonized version of the URL.
+ *
+ * @param string $url URL.
+ *
+ * @return string URL.
+ */
+ public static function ssl_img( $url ) {
if ( false !== strpos( $url, 'files.wordpress.com' ) ) {
return self::https( $url );
} else {
@@ -271,20 +317,35 @@ class Jetpack_Media_Summary {
}
}
- static function get_video_poster( $type, $id ) {
- if ( 'videopress' == $type ) {
+ /**
+ * Get the video poster.
+ *
+ * @param string $type Video service.
+ * @param string $id Video ID for the service.
+ *
+ * @return string URL of image thumbnail for the video.
+ */
+ public static function get_video_poster( $type, $id ) {
+ if ( 'videopress' === $type ) {
if ( function_exists( 'video_get_highest_resolution_image_url' ) ) {
return video_get_highest_resolution_image_url( $id );
- } else if ( class_exists( 'VideoPress_Video' ) ) {
+ } elseif ( class_exists( 'VideoPress_Video' ) ) {
$video = new VideoPress_Video( $id );
return $video->poster_frame_uri;
}
- } else if ( 'youtube' == $type ) {
- return 'http://img.youtube.com/vi/'.$id.'/0.jpg';
+ } elseif ( 'youtube' === $type ) {
+ return 'http://img.youtube.com/vi/' . $id . '/0.jpg';
}
}
- static function clean_text( $text ) {
+ /**
+ * Clean text of shortcodes and tags.
+ *
+ * @param string $text Dirty text.
+ *
+ * @return string Clean text.
+ */
+ public static function clean_text( $text ) {
return trim(
preg_replace(
'/[\s]+/',
@@ -293,7 +354,7 @@ class Jetpack_Media_Summary {
'@https?://[\S]+@',
'',
strip_shortcodes(
- strip_tags(
+ wp_strip_all_tags(
$text
)
)
@@ -306,6 +367,7 @@ class Jetpack_Media_Summary {
* Retrieve an excerpt for the post summary.
*
* This function works around a suspected problem with Core. If resolved, this function should be simplified.
+ *
* @link https://github.com/Automattic/jetpack/pull/8510
* @link https://core.trac.wordpress.org/ticket/42814
*
@@ -316,24 +378,31 @@ class Jetpack_Media_Summary {
* @param WP_Post $requested_post The post object.
* @return string Post excerpt.
**/
- static function get_excerpt( $post_content, $post_excerpt, $max_words = 16, $max_chars = 256, $requested_post = null ) {
+ public static function get_excerpt( $post_content, $post_excerpt, $max_words = 16, $max_chars = 256, $requested_post = null ) {
global $post;
$original_post = $post; // Saving the global for later use.
- if ( function_exists( 'wpcom_enhanced_excerpt_extract_excerpt' ) ) {
- return self::clean_text( wpcom_enhanced_excerpt_extract_excerpt( array(
- 'text' => $post_content,
- 'excerpt_only' => true,
- 'show_read_more' => false,
- 'max_words' => $max_words,
- 'max_chars' => $max_chars,
- 'read_more_threshold' => 25,
- ) ) );
+ if ( empty( $post_excerpt ) && function_exists( 'wpcom_enhanced_excerpt_extract_excerpt' ) ) {
+ return self::clean_text(
+ wpcom_enhanced_excerpt_extract_excerpt(
+ array(
+ 'text' => $post_content,
+ 'excerpt_only' => true,
+ 'show_read_more' => false,
+ 'max_words' => $max_words,
+ 'max_chars' => $max_chars,
+ 'read_more_threshold' => 25,
+ )
+ )
+ );
} elseif ( $requested_post instanceof WP_Post ) {
+ // @todo Refactor to not need to override the global.
+ // phpcs:ignore: WordPress.WP.GlobalVariablesOverride.Prohibited
$post = $requested_post; // setup_postdata does not set the global.
setup_postdata( $post );
/** This filter is documented in core/src/wp-includes/post-template.php */
$post_excerpt = apply_filters( 'get_the_excerpt', $post_excerpt, $post );
- $post = $original_post; // wp_reset_postdata uses the $post global.
+ // phpcs:ignore: WordPress.WP.GlobalVariablesOverride.Prohibited
+ $post = $original_post; // wp_reset_postdata uses the $post global.
wp_reset_postdata();
return self::clean_text( $post_excerpt );
}
@@ -344,26 +413,50 @@ class Jetpack_Media_Summary {
* Split a string into an array of words.
*
* @param string $text Post content or excerpt.
+ *
+ * @return array Array of words.
*/
- static function split_content_in_words( $text ) {
- $words = preg_split( '/[\s!?;,.]+/', $text, null, PREG_SPLIT_NO_EMPTY );
+ public static function split_content_in_words( $text ) {
+ $words = preg_split( '/[\s!?;,.]+/', $text, -1, PREG_SPLIT_NO_EMPTY );
// Return an empty array if the split above fails.
return $words ? $words : array();
}
- static function get_word_count( $post_content ) {
+ /**
+ * Get the word count.
+ *
+ * @param string $post_content Post content.
+ *
+ * @return int Word count.
+ */
+ public static function get_word_count( $post_content ) {
return (int) count( self::split_content_in_words( self::clean_text( $post_content ) ) );
}
- static function get_word_remaining_count( $post_content, $excerpt_content ) {
+ /**
+ * Get remainder word count (after the excerpt).
+ *
+ * @param string $post_content Post content.
+ * @param string $excerpt_content Excerpt content.
+ *
+ * @return int Number of words after the excerpt.
+ */
+ public static function get_word_remaining_count( $post_content, $excerpt_content ) {
$content_word_count = count( self::split_content_in_words( self::clean_text( $post_content ) ) );
$excerpt_word_count = count( self::split_content_in_words( self::clean_text( $excerpt_content ) ) );
return (int) $content_word_count - $excerpt_word_count;
}
- static function get_link_count( $post_content ) {
+ /**
+ * Counts the number of links in a post.
+ *
+ * @param string $post_content Post content.
+ *
+ * @return false|int Number of links.
+ */
+ public static function get_link_count( $post_content ) {
return preg_match_all( '/\<a[\> ]/', $post_content, $matches );
}
}
diff --git a/plugins/jetpack/_inc/lib/class.media.php b/plugins/jetpack/_inc/lib/class.media.php
index 9db73961..a9ae488c 100644
--- a/plugins/jetpack/_inc/lib/class.media.php
+++ b/plugins/jetpack/_inc/lib/class.media.php
@@ -290,7 +290,7 @@ class Jetpack_Media {
* @param array [$revision_history] - revision history array
* @return array `revision_history` array updated.
*/
- public static function remove_items_from_revision_history( $media_id, $criteria = array(), $revision_history ) {
+ public static function remove_items_from_revision_history( $media_id, $criteria, $revision_history ) {
if ( ! isset ( $revision_history ) ) {
$revision_history = self::get_revision_history( $media_id );
}
diff --git a/plugins/jetpack/_inc/lib/components.php b/plugins/jetpack/_inc/lib/components.php
index 9c8a4fe2..10e29843 100644
--- a/plugins/jetpack/_inc/lib/components.php
+++ b/plugins/jetpack/_inc/lib/components.php
@@ -1,4 +1,7 @@
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+
+use Automattic\Jetpack\Status;
+
/**
* Components Library
*
@@ -45,6 +48,20 @@ class Jetpack_Components {
}
/**
+ * Renders the frontend-nudge with the provided props.
+ *
+ * @param array $props Component properties.
+ *
+ * @return string The component markup.
+ */
+ public static function render_frontend_nudge( $props ) {
+ return self::render_component(
+ 'frontend-nudge',
+ $props
+ );
+ }
+
+ /**
* Load and display a pre-rendered component
*
* @since 7.7.0
@@ -62,25 +79,19 @@ class Jetpack_Components {
return self::render_component(
'upgrade-nudge',
array(
- 'planName' => __( 'a paid plan', 'jetpack' ),
- 'upgradeUrl' => '',
+ 'checkoutUrl' => '',
)
);
}
- // WP.com plan objects have a dedicated `path_slug` field, Jetpack plan objects don't
- // For Jetpack, we thus use the plan slug with the 'jetpack_' prefix removed.
+ // WP.com plan objects have a dedicated `path_slug` field, Jetpack plan objects don't.
$plan_path_slug = wp_startswith( $plan_slug, 'jetpack_' )
- ? substr( $plan_slug, strlen( 'jetpack_' ) )
+ ? $plan_slug
: $plan->path_slug;
$post_id = get_the_ID();
- if ( method_exists( 'Jetpack', 'build_raw_urls' ) ) {
- $site_slug = Jetpack::build_raw_urls( home_url() );
- } elseif ( class_exists( 'WPCOM_Masterbar' ) && method_exists( 'WPCOM_Masterbar', 'get_calypso_site_slug' ) ) {
- $site_slug = WPCOM_Masterbar::get_calypso_site_slug( get_current_blog_id() );
- }
+ $site_slug = ( new Status() )->get_site_suffix();
// Post-checkout: redirect back to the editor.
$redirect_to = add_query_arg(
@@ -101,8 +112,7 @@ class Jetpack_Components {
return self::render_component(
'upgrade-nudge',
array(
- 'planName' => $plan->product_name,
- 'upgradeUrl' => $upgrade_url,
+ 'checkoutUrl' => $upgrade_url,
)
);
}
diff --git a/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php b/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php
index 3ade1c34..04acfb91 100644
--- a/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php
+++ b/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-module-endpoints.php
@@ -199,7 +199,7 @@ class Jetpack_Core_API_Module_List_Endpoint {
if (
isset( $modules[ $slug ]['requires_connection'] )
&& $modules[ $slug ]['requires_connection']
- && ( new Status() )->is_development_mode()
+ && ( new Status() )->is_offline_mode()
) {
$modules[ $slug ]['activated'] = false;
}
@@ -366,7 +366,7 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
if (
isset( $module['requires_connection'] )
&& $module['requires_connection']
- && ( new Status() )->is_development_mode()
+ && ( new Status() )->is_offline_mode()
) {
$module['activated'] = false;
}
@@ -455,17 +455,22 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
$business_address = is_array( $business_address ) ? array_map( array( $this, 'decode_special_characters' ), $business_address ) : $business_address;
$response[ $setting ] = array(
- 'siteTitle' => $this->decode_special_characters( get_option( 'blogname' ) ),
- 'siteDescription' => $this->decode_special_characters( get_option( 'blogdescription' ) ),
- 'siteType' => get_option( 'jpo_site_type' ),
- 'homepageFormat' => get_option( 'jpo_homepage_format' ),
- 'addContactForm' => intval( get_option( 'jpo_contact_page' ) ),
- 'businessAddress' => $business_address,
+ 'siteTitle' => $this->decode_special_characters( get_option( 'blogname' ) ),
+ 'siteDescription' => $this->decode_special_characters( get_option( 'blogdescription' ) ),
+ 'siteType' => get_option( 'jpo_site_type' ),
+ 'homepageFormat' => get_option( 'jpo_homepage_format' ),
+ 'addContactForm' => (int) get_option( 'jpo_contact_page' ),
+ 'businessAddress' => $business_address,
'installWooCommerce' => is_plugin_active( 'woocommerce/woocommerce.php' ),
- 'stats' => Jetpack::is_active() && Jetpack::is_module_active( 'stats' ),
+ 'stats' => Jetpack::is_connection_ready() && Jetpack::is_module_active( 'stats' ),
);
break;
+ case 'search_auto_config':
+ // Only writable.
+ $response[ $setting ] = 1;
+ break;
+
default:
$response[ $setting ] = Jetpack_Core_Json_Api_Endpoints::cast_value( get_option( $setting ), $settings[ $setting ] );
break;
@@ -681,24 +686,7 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
break;
case 'post_by_email_address':
- if ( 'create' == $value ) {
- $result = $this->_process_post_by_email(
- 'jetpack.createPostByEmailAddress',
- esc_html__( 'Unable to create the Post by Email address. Please try again later.', 'jetpack' )
- );
- } elseif ( 'regenerate' == $value ) {
- $result = $this->_process_post_by_email(
- 'jetpack.regeneratePostByEmailAddress',
- esc_html__( 'Unable to regenerate the Post by Email address. Please try again later.', 'jetpack' )
- );
- } elseif ( 'delete' == $value ) {
- $result = $this->_process_post_by_email(
- 'jetpack.deletePostByEmailAddress',
- esc_html__( 'Unable to delete the Post by Email address. Please try again later.', 'jetpack' )
- );
- } else {
- $result = false;
- }
+ $result = Jetpack_Post_By_Email::init()->process_api_request( $value );
// If we got an email address (create or regenerate) or 1 (delete), consider it done.
if ( is_string( $result ) && preg_match( '/[a-z0-9]+@post.wordpress.com/', $result ) ) {
@@ -727,7 +715,12 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
break;
case 'jetpack_protect_global_whitelist':
+ if ( ! function_exists( 'jetpack_protect_save_whitelist' ) ) {
+ require_once JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php';
+ }
+
$updated = jetpack_protect_save_whitelist( explode( PHP_EOL, str_replace( array( ' ', ',' ), array( '', "\n" ), $value ) ) );
+
if ( is_wp_error( $updated ) ) {
$error = $updated->get_error_message();
}
@@ -742,10 +735,29 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
$updated = $grouped_options_current != $grouped_options ? Jetpack_Options::update_option( 'relatedposts', $grouped_options ) : true;
break;
+ case 'search_auto_config':
+ if ( ! $value ) {
+ $updated = true;
+ } elseif ( class_exists( 'Jetpack_Search' ) ) {
+ $jps = Jetpack_Search::instance();
+ if ( is_a( $jps, 'Jetpack_Instant_Search' ) ) {
+ $jps->auto_config_search();
+ $updated = true;
+ } else {
+ $updated = new WP_Error( 'instant_search_disabled', 'Instant Search Disabled', array( 'status' => 400 ) );
+ $error = $updated->get_error_message();
+ }
+ } else {
+ $updated = new WP_Error( 'search_disabled', 'Search Disabled', array( 'status' => 400 ) );
+ $error = $updated->get_error_message();
+ }
+ break;
+
case 'google':
case 'bing':
case 'pinterest':
case 'yandex':
+ case 'facebook':
$grouped_options = $grouped_options_current = (array) get_option( 'verification_services_codes' );
// Extracts the content attribute from the HTML meta tag if needed
@@ -814,8 +826,8 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
case 'count_roles':
case 'blog_id':
case 'do_not_track':
- case 'hide_smile':
case 'version':
+ case 'collapse_nudges':
$grouped_options = $grouped_options_current = (array) get_option( 'stats_options' );
$grouped_options[$option] = $value;
@@ -900,6 +912,13 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
}
break;
+ case 'stb_enabled':
+ case 'stc_enabled':
+ // Convert the false value to 0. This allows the option to be updated if it doesn't exist yet.
+ $sub_value = $value ? $value : 0;
+ $updated = (string) get_option( $option ) !== (string) $sub_value ? update_option( $option, $sub_value ) : true;
+ break;
+
default:
// If option value was the same, consider it done.
$updated = get_option( $option ) != $value ? update_option( $option, $value ) : true;
@@ -1104,7 +1123,7 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
}
if ( ! empty( $data['stats'] ) ) {
- if ( Jetpack::is_active() ) {
+ if ( Jetpack::is_connection_ready() ) {
$stats_module_active = Jetpack::is_module_active( 'stats' );
if ( ! $stats_module_active ) {
$stats_module_active = Jetpack::activate_module( 'stats', false, false );
@@ -1207,39 +1226,6 @@ class Jetpack_Core_API_Data extends Jetpack_Core_API_XMLRPC_Consumer_Endpoint {
}
/**
- * Calls WPCOM through authenticated request to create, regenerate or delete the Post by Email address.
- * @todo: When all settings are updated to use endpoints, move this to the Post by Email module and replace __process_ajax_proxy_request.
- *
- * @since 4.3.0
- *
- * @param string $endpoint Process to call on WPCOM to create, regenerate or delete the Post by Email address.
- * @param string $error Error message to return.
- *
- * @return array
- */
- private function _process_post_by_email( $endpoint, $error ) {
- if ( ! current_user_can( 'edit_posts' ) ) {
- return array( 'message' => $error );
- }
-
- $this->xmlrpc->query( $endpoint );
-
- if ( $this->xmlrpc->isError() ) {
- return array( 'message' => $error );
- }
-
- $response = $this->xmlrpc->getResponse();
- if ( empty( $response ) ) {
- return array( 'message' => $error );
- }
-
- // Used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
- update_option( 'post_by_email_address' . get_current_user_id(), $response );
-
- return $response;
- }
-
- /**
* Check if user is allowed to perform the update.
*
* @since 4.3.0
@@ -1347,10 +1333,11 @@ class Jetpack_Core_API_Module_Data_Endpoint {
* @return int|string Number of spam blocked by Akismet. Otherwise, an error message.
*/
public function get_akismet_data() {
- if ( ! is_wp_error( $status = $this->akismet_is_active_and_registered() ) ) {
- return rest_ensure_response( Akismet_Admin::get_stats( Akismet::get_api_key() ) );
+ $akismet_status = $this->akismet_is_active_and_registered();
+ if ( ! is_wp_error( $akismet_status ) ) {
+ return number_format_i18n( get_option( 'akismet_spam_count', 0 ) );
} else {
- return $status->get_error_code();
+ return $akismet_status->get_error_code();
}
}
@@ -1561,6 +1548,9 @@ class Jetpack_Core_API_Module_Data_Endpoint {
case 'yandex':
$services[] = 'Yandex';
break;
+ case 'facebook':
+ $services[] = 'Facebook';
+ break;
}
}
}
diff --git a/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php b/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php
index c321f6ae..10ae6ca8 100644
--- a/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php
+++ b/plugins/jetpack/_inc/lib/core-api/class.jetpack-core-api-site-endpoints.php
@@ -2,7 +2,7 @@
/**
* List of /site core REST API endpoints used in Jetpack's dashboard.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Connection\Client;
@@ -11,7 +11,18 @@ use Automattic\Jetpack\Connection\Client;
* This is the endpoint class for `/site` endpoints.
*/
class Jetpack_Core_API_Site_Endpoint {
-
+ /**
+ * Returns commonly used WP_Error indicating failure to fetch data
+ *
+ * @return WP_Error that denotes our inability to fetch the requested data
+ */
+ private static function get_failed_fetch_error() {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
+ array( 'status' => 500 )
+ );
+ }
/**
* Returns the result of `/sites/%s/features` endpoint call.
@@ -22,18 +33,13 @@ class Jetpack_Core_API_Site_Endpoint {
* of plan slugs that enable these features
*/
public static function get_features() {
-
// Make the API request.
$request = sprintf( '/sites/%d/features', Jetpack_Options::get_option( 'id' ) );
$response = Client::wpcom_json_api_request_as_blog( $request, '1.1' );
// Bail if there was an error or malformed response.
if ( is_wp_error( $response ) || ! is_array( $response ) || ! isset( $response['body'] ) ) {
- return new WP_Error(
- 'failed_to_fetch_data',
- esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
- array( 'status' => 500 )
- );
+ return self::get_failed_fetch_error();
}
// Decode the results.
@@ -41,11 +47,7 @@ class Jetpack_Core_API_Site_Endpoint {
// Bail if there were no results or plan details returned.
if ( ! is_array( $results ) ) {
- return new WP_Error(
- 'failed_to_fetch_data',
- esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
- array( 'status' => 500 )
- );
+ return self::get_failed_fetch_error();
}
return rest_ensure_response(
@@ -57,7 +59,6 @@ class Jetpack_Core_API_Site_Endpoint {
);
}
-
/**
* Returns the result of `/sites/%s/purchases` endpoint call.
*
@@ -70,11 +71,11 @@ class Jetpack_Core_API_Site_Endpoint {
// Bail if there was an error or malformed response.
if ( is_wp_error( $response ) || ! is_array( $response ) || ! isset( $response['body'] ) ) {
- return new WP_Error(
- 'failed_to_fetch_data',
- esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
- array( 'status' => 500 )
- );
+ return self::get_failed_fetch_error();
+ }
+
+ if ( 200 !== (int) wp_remote_retrieve_response_code( $response ) ) {
+ return self::get_failed_fetch_error();
}
// Decode the results.
@@ -82,11 +83,7 @@ class Jetpack_Core_API_Site_Endpoint {
// Bail if there were no results or purchase details returned.
if ( ! is_array( $results ) ) {
- return new WP_Error(
- 'failed_to_fetch_data',
- esc_html__( 'Unable to fetch the requested data.', 'jetpack' ),
- array( 'status' => 500 )
- );
+ return self::get_failed_fetch_error();
}
return rest_ensure_response(
@@ -99,6 +96,33 @@ class Jetpack_Core_API_Site_Endpoint {
}
/**
+ * Returns the result of `/sites/%d/products` endpoint call.
+ *
+ * @return array of site products.
+ */
+ public static function get_products() {
+ $url = sprintf( '/sites/%d/products?locale=%s&type=jetpack', Jetpack_Options::get_option( 'id' ), get_user_locale() );
+ $response = Client::wpcom_json_api_request_as_blog( $url, '1.1' );
+
+ if ( is_wp_error( $response ) || ! is_array( $response ) || ! isset( $response['body'] ) ) {
+ return self::get_failed_fetch_error();
+ }
+
+ $results = json_decode( wp_remote_retrieve_body( $response ), true );
+ if ( ! is_array( $results ) ) {
+ return self::get_failed_fetch_error();
+ }
+
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => esc_html__( 'Site products correctly received.', 'jetpack' ),
+ 'data' => $results,
+ )
+ );
+ }
+
+ /**
* Check that the current user has permissions to request information about this site.
*
* @since 5.1.0
@@ -130,8 +154,10 @@ class Jetpack_Core_API_Site_Endpoint {
$stats = stats_get_from_restapi( array( 'fields' => 'stats' ) );
}
+ $has_stats = null !== $stats && ! is_wp_error( $stats );
+
// Yearly visitors.
- if ( null !== $stats && $stats->stats->visitors > 0 ) {
+ if ( $has_stats && $stats->stats->visitors > 0 ) {
$benefits[] = array(
'name' => 'jetpack-stats',
'title' => esc_html__( 'Site Stats', 'jetpack' ),
@@ -154,7 +180,7 @@ class Jetpack_Core_API_Site_Endpoint {
}
// Number of followers.
- if ( null !== $stats && $stats->stats->followers_blog > 0 && Jetpack::is_module_active( 'subscriptions' ) ) {
+ if ( $has_stats && $stats->stats->followers_blog > 0 && Jetpack::is_module_active( 'subscriptions' ) ) {
$benefits[] = array(
'name' => 'subscribers',
'title' => esc_html__( 'Subscribers', 'jetpack' ),
@@ -195,7 +221,7 @@ class Jetpack_Core_API_Site_Endpoint {
// Number of images in the library if Photon is active.
if ( Jetpack::is_module_active( 'photon' ) ) {
$photon_count = array_reduce(
- get_object_vars( wp_count_attachments( array( 'image/jpeg', 'image/png', 'image/gif', 'image/bmp' ) ) ),
+ get_object_vars( wp_count_attachments( array( 'image/jpeg', 'image/png', 'image/gif', 'image/bmp', 'image/webp' ) ) ),
function ( $i, $j ) {
return $i + $j;
}
@@ -245,7 +271,7 @@ class Jetpack_Core_API_Site_Endpoint {
}
// Total number of shares.
- if ( null !== $stats && $stats->stats->shares > 0 ) {
+ if ( $has_stats && $stats->stats->shares > 0 ) {
$benefits[] = array(
'name' => 'sharing',
'title' => esc_html__( 'Sharing', 'jetpack' ),
diff --git a/plugins/jetpack/_inc/lib/core-api/load-wpcom-endpoints.php b/plugins/jetpack/_inc/lib/core-api/load-wpcom-endpoints.php
index f9e1fb44..778600ef 100644
--- a/plugins/jetpack/_inc/lib/core-api/load-wpcom-endpoints.php
+++ b/plugins/jetpack/_inc/lib/core-api/load-wpcom-endpoints.php
@@ -8,6 +8,13 @@
* - wp-content/rest-api-plugins/jetpack-endpoints/
*/
+/**
+ * Disable direct access.
+ */
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
function wpcom_rest_api_v2_load_plugin_files( $file_pattern ) {
$plugins = glob( dirname( __FILE__ ) . '/' . $file_pattern );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/business-hours.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/business-hours.php
index 2bf80939..34798f8e 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/business-hours.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/business-hours.php
@@ -17,8 +17,9 @@ class WPCOM_REST_API_V2_Endpoint_Business_Hours extends WP_REST_Controller {
// GET /sites/<blog_id>/business-hours/localized-week - Return the localized
register_rest_route( $this->namespace, '/' . $this->rest_base . '/localized-week', array(
array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_localized_week' ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_localized_week' ),
+ 'permission_callback' => '__return_true',
)
) );
}
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-admin-menu.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-admin-menu.php
new file mode 100644
index 00000000..2c386ad8
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-admin-menu.php
@@ -0,0 +1,485 @@
+<?php
+/**
+ * REST API endpoint for admin menus.
+ *
+ * @package automattic/jetpack
+ * @since 9.1.0
+ */
+
+/**
+ * Class WPCOM_REST_API_V2_Endpoint_Admin_Menu
+ */
+class WPCOM_REST_API_V2_Endpoint_Admin_Menu extends WP_REST_Controller {
+
+ /**
+ * Namespace prefix.
+ *
+ * @var string
+ */
+ public $namespace = 'wpcom/v2';
+
+ /**
+ * Endpoint base route.
+ *
+ * @var string
+ */
+ public $rest_base = 'admin-menu';
+
+ /**
+ *
+ * Set of core dashicons.
+ *
+ * @var array
+ */
+ private $dashicon_list;
+
+ /**
+ * WPCOM_REST_API_V2_Endpoint_Admin_Menu constructor.
+ */
+ public function __construct() {
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register routes.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_item' ),
+ 'permission_callback' => array( $this, 'get_item_permissions_check' ),
+ ),
+ 'schema' => array( $this, 'get_public_item_schema' ),
+ )
+ );
+ }
+
+ /**
+ * Checks if a given request has access to admin menus.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return true|WP_Error True if the request has read access for the item, WP_Error object otherwise.
+ */
+ public function get_item_permissions_check( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( ! current_user_can( 'read' ) ) {
+ return new WP_Error(
+ 'rest_forbidden',
+ __( 'Sorry, you are not allowed to view menus on this site.', 'jetpack' ),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Retrieves the admin menu.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
+ */
+ public function get_item( $request ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/mu-plugins/masterbar/admin-menu/load.php';
+ } else {
+ require_once JETPACK__PLUGIN_DIR . '/modules/masterbar/admin-menu/load.php';
+ }
+
+ // All globals need to be declared for menu items to properly register.
+ global $admin_page_hooks, $menu, $menu_order, $submenu, $_wp_menu_nopriv, $_wp_submenu_nopriv; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+
+ require_once ABSPATH . 'wp-admin/includes/admin.php';
+ require_once ABSPATH . 'wp-admin/menu.php';
+
+ return rest_ensure_response( $this->prepare_menu_for_response( $menu ) );
+ }
+
+ /**
+ * Prepares the admin menu for the REST response.
+ *
+ * @param array $menu Admin menu.
+ * @return array Admin menu
+ */
+ public function prepare_menu_for_response( array $menu ) {
+ global $submenu;
+
+ $data = array();
+
+ /**
+ * Note: if the shape of the API endpoint data changes it is important to also update
+ * the corresponding schema.js file.
+ * See: https://github.com/Automattic/wp-calypso/blob/ebde236ec9b21ea9621c0b0523bd5ea185523731/client/state/admin-menu/schema.js
+ */
+ foreach ( $menu as $menu_item ) {
+ $item = $this->prepare_menu_item( $menu_item );
+
+ // Are there submenu items to process?
+ if ( ! empty( $submenu[ $menu_item[2] ] ) ) {
+ $submenu_items = array_values( $submenu[ $menu_item[2] ] );
+
+ // Add submenu items.
+ foreach ( $submenu_items as $submenu_item ) {
+ $submenu_item = $this->prepare_submenu_item( $submenu_item, $menu_item );
+ if ( ! empty( $submenu_item ) ) {
+ $item['children'][] = $submenu_item;
+ }
+ }
+ }
+
+ if ( ! empty( $item ) ) {
+ $data[] = $item;
+ }
+ }
+
+ return array_filter( $data );
+ }
+
+ /**
+ * Retrieves the admin menu's schema, conforming to JSON Schema.
+ *
+ * Note: if the shape of the API endpoint data changes it is important to also update
+ * the corresponding schema.js file.
+ *
+ * @see https://github.com/Automattic/wp-calypso/blob/ebde236ec9b21ea9621c0b0523bd5ea185523731/client/state/admin-menu/schema.js
+ *
+ * @return array Item schema data.
+ */
+ public function get_item_schema() {
+ return array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => 'Admin Menu',
+ 'type' => 'object',
+ 'properties' => array(
+ 'count' => array(
+ 'description' => 'Core/Plugin/Theme update count or unread comments count.',
+ 'type' => 'integer',
+ ),
+ 'icon' => array(
+ 'description' => 'Menu item icon. Dashicon slug or base64-encoded SVG.',
+ 'type' => 'string',
+ ),
+ 'inlineText' => array(
+ 'description' => 'Additional text to be added inline with the menu title.',
+ 'type' => 'string',
+ ),
+ 'badge' => array(
+ 'description' => 'Badge to be added inline with the menu title.',
+ 'type' => 'string',
+ ),
+ 'slug' => array(
+ 'type' => 'string',
+ ),
+ 'children' => array(
+ 'items' => array(
+ 'count' => array(
+ 'description' => 'Core/Plugin/Theme update count or unread comments count.',
+ 'type' => 'integer',
+ ),
+ 'parent' => array(
+ 'type' => 'string',
+ ),
+ 'slug' => array(
+ 'type' => 'string',
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ ),
+ 'type' => array(
+ 'enum' => array( 'submenu-item' ),
+ 'type' => 'string',
+ ),
+ 'url' => array(
+ 'format' => 'uri',
+ 'type' => 'string',
+ ),
+ ),
+ 'type' => 'array',
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ ),
+ 'type' => array(
+ 'enum' => array( 'separator', 'menu-item' ),
+ 'type' => 'string',
+ ),
+ 'url' => array(
+ 'format' => 'uri',
+ 'type' => 'string',
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Sets up a menu item for consumption by Calypso.
+ *
+ * @param array $menu_item Menu item.
+ * @return array Prepared menu item.
+ */
+ private function prepare_menu_item( array $menu_item ) {
+ global $submenu;
+
+ $current_user_can_access_menu = current_user_can( $menu_item[1] );
+ $submenu_items = isset( $submenu[ $menu_item[2] ] ) ? array_values( $submenu[ $menu_item[2] ] ) : array();
+ $has_first_menu_item = isset( $submenu_items[0] );
+
+ // Exclude unauthorized menu items when the user does not have access to the menu and the first submenu item.
+ if ( ! $current_user_can_access_menu && $has_first_menu_item && ! current_user_can( $submenu_items[0][1] ) ) {
+ return array();
+ }
+
+ // Exclude unauthorized menu items that don't have submenus.
+ if ( ! $current_user_can_access_menu && ! $has_first_menu_item ) {
+ return array();
+ }
+
+ // Exclude hidden menu items.
+ if ( false !== strpos( $menu_item[4], 'hide-if-js' ) ) {
+ // Exclude submenu items as well.
+ if ( ! empty( $submenu[ $menu_item[2] ] ) ) {
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu[ $menu_item[2] ] = array();
+ }
+ return array();
+ }
+
+ // Handle menu separators.
+ if ( false !== strpos( $menu_item[4], 'wp-menu-separator' ) ) {
+ return array(
+ 'type' => 'separator',
+ );
+ }
+
+ $url = $menu_item[2];
+ $parent_slug = '';
+
+ // If there are submenus, the parent menu should always link to the first submenu.
+ // @see https://core.trac.wordpress.org/browser/trunk/src/wp-admin/menu-header.php?rev=49193#L152.
+ if ( ! empty( $submenu[ $menu_item[2] ] ) ) {
+ $parent_slug = $url;
+ $first_submenu_item = reset( $submenu[ $menu_item[2] ] );
+ $url = $first_submenu_item[2];
+ }
+
+ $item = array(
+ 'icon' => $this->prepare_menu_item_icon( $menu_item[6] ),
+ 'slug' => sanitize_title_with_dashes( $menu_item[2] ),
+ 'title' => $menu_item[0],
+ 'type' => 'menu-item',
+ 'url' => $this->prepare_menu_item_url( $url, $parent_slug ),
+ );
+
+ $parsed_item = $this->parse_menu_item( $item['title'] );
+ if ( ! empty( $parsed_item ) ) {
+ $item = array_merge( $item, $parsed_item );
+ }
+
+ return $item;
+ }
+
+ /**
+ * Sets up a submenu item for consumption by Calypso.
+ *
+ * @param array $submenu_item Submenu item.
+ * @param array $menu_item Menu item.
+ * @return array Prepared submenu item.
+ */
+ private function prepare_submenu_item( array $submenu_item, array $menu_item ) {
+ // Exclude unauthorized submenu items.
+ if ( ! current_user_can( $submenu_item[1] ) ) {
+ return array();
+ }
+
+ // Exclude hidden submenu items.
+ if ( isset( $submenu_item[4] ) && false !== strpos( $submenu_item[4], 'hide-if-js' ) ) {
+ return array();
+ }
+
+ $item = array(
+ 'parent' => sanitize_title_with_dashes( $menu_item[2] ),
+ 'slug' => sanitize_title_with_dashes( $submenu_item[2] ),
+ 'title' => $submenu_item[0],
+ 'type' => 'submenu-item',
+ 'url' => $this->prepare_menu_item_url( $submenu_item[2], $menu_item[2] ),
+ );
+
+ $parsed_item = $this->parse_menu_item( $item['title'] );
+ if ( ! empty( $parsed_item ) ) {
+ $item = array_merge( $item, $parsed_item );
+ }
+
+ return $item;
+ }
+
+ /**
+ * Prepares a menu icon for consumption by Calypso.
+ *
+ * @param string $icon Menu icon.
+ * @return string
+ */
+ private function prepare_menu_item_icon( $icon ) {
+ $img = 'dashicons-admin-generic';
+
+ if ( ! empty( $icon ) && 'none' !== $icon && 'div' !== $icon ) {
+ $img = esc_url( $icon );
+
+ if ( 0 === strpos( $icon, 'data:image/svg+xml' ) ) {
+ $img = $icon;
+ } elseif ( 0 === strpos( $icon, 'dashicons-' ) ) {
+ $img = $this->prepare_dashicon( $icon );
+ }
+ }
+
+ return $img;
+ }
+
+ /**
+ * Prepares the dashicon for consumption by Calypso. If the dashicon isn't found in a list of known icons
+ * we will return the default dashicon.
+ *
+ * @param string $icon The dashicon string to check.
+ *
+ * @return string If the dashicon exists in core we return the dashicon, otherwise we return the default dashicon.
+ */
+ private function prepare_dashicon( $icon ) {
+ if ( empty( $this->dashicon_set ) ) {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $this->dashicon_list = include WP_CONTENT_DIR . '/mu-plugins/masterbar/admin-menu/dashicon-set.php';
+ } else {
+ $this->dashicon_list = include JETPACK__PLUGIN_DIR . '/modules/masterbar/admin-menu/dashicon-set.php';
+ }
+ }
+
+ if ( isset( $this->dashicon_list[ $icon ] ) && $this->dashicon_list[ $icon ] ) {
+ return $icon;
+ }
+
+ return 'dashicons-admin-generic';
+ }
+
+ /**
+ * Prepares a menu item url for consumption by Calypso.
+ *
+ * @param string $url Menu slug.
+ * @param string $parent_slug Optional. Parent menu item slug. Default empty string.
+ * @return string
+ */
+ private function prepare_menu_item_url( $url, $parent_slug = '' ) {
+ // External URLS.
+ if ( preg_match( '/^https?:\/\//', $url ) ) {
+ // Allow URLs pointing to WordPress.com.
+ if ( 0 === strpos( $url, 'https://wordpress.com/' ) ) {
+ // Calypso needs the domain removed so they're not interpreted as external links.
+ $url = str_replace( 'https://wordpress.com', '', $url );
+ // Replace special characters with their correct entities e.g. &amp; to &.
+ return wp_specialchars_decode( esc_url_raw( $url ) );
+ }
+
+ // Allow URLs pointing to Jetpack.com.
+ if ( 0 === strpos( $url, 'https://jetpack.com/' ) ) {
+ // Replace special characters with their correct entities e.g. &amp; to &.
+ return wp_specialchars_decode( esc_url_raw( $url ) );
+ }
+
+ // Disallow other external URLs.
+ return '';
+ }
+
+ // Internal URLs.
+ $menu_hook = get_plugin_page_hook( $url, $parent_slug );
+ $menu_file = wp_parse_url( $url, PHP_URL_PATH ); // Removes query args to get a file name.
+ $parent_file = wp_parse_url( $parent_slug, PHP_URL_PATH );
+
+ if (
+ ! empty( $menu_hook ) ||
+ (
+ 'index.php' !== $url &&
+ file_exists( WP_PLUGIN_DIR . "/$menu_file" ) &&
+ ! file_exists( ABSPATH . "/wp-admin/$menu_file" )
+ )
+ ) {
+ $admin_is_parent = false;
+ if ( ! empty( $parent_slug ) ) {
+ $menu_hook = get_plugin_page_hook( $parent_slug, 'admin.php' );
+ $admin_is_parent = ! empty( $menu_hook ) || ( ( 'index.php' !== $parent_slug ) && file_exists( WP_PLUGIN_DIR . "/$parent_file" ) && ! file_exists( ABSPATH . "/wp-admin/$parent_file" ) );
+ }
+
+ if (
+ ( false === $admin_is_parent && file_exists( WP_PLUGIN_DIR . "/$parent_file" ) && ! is_dir( WP_PLUGIN_DIR . "/$parent_file" ) ) ||
+ ( file_exists( ABSPATH . "/wp-admin/$parent_file" ) && ! is_dir( ABSPATH . "/wp-admin/$parent_file" ) )
+ ) {
+ $url = add_query_arg( array( 'page' => $url ), admin_url( $parent_slug ) );
+ } else {
+ $url = add_query_arg( array( 'page' => $url ), admin_url( 'admin.php' ) );
+ }
+ } elseif ( file_exists( ABSPATH . "/wp-admin/$menu_file" ) ) {
+ $url = admin_url( $url );
+ }
+
+ return wp_specialchars_decode( esc_url_raw( $url ) );
+ }
+
+ /**
+ * "Plugins", "Comments", "Updates" menu items have a count badge when there are updates available.
+ * This method parses that information, removes the associated markup and adds it to the response.
+ *
+ * Also sanitizes the titles from remaining unexpected markup.
+ *
+ * @param string $title Title to parse.
+ * @return array
+ */
+ private function parse_menu_item( $title ) {
+ $item = array();
+
+ if ( false !== strpos( $title, 'count-' ) ) {
+ preg_match( '/<span class=".+\s?count-(\d*).+\s?<\/span><\/span>/', $title, $matches );
+
+ $count = absint( $matches[1] );
+ if ( $count > 0 ) {
+ // Keep the counter in the item array.
+ $item['count'] = $count;
+ }
+
+ // Finally remove the markup.
+ $title = trim( str_replace( $matches[0], '', $title ) );
+ }
+
+ if ( false !== strpos( $title, 'inline-text' ) ) {
+ preg_match( '/<span class="inline-text".+\s?>(.+)<\/span>/', $title, $matches );
+
+ $text = $matches[1];
+ if ( $text ) {
+ // Keep the text in the item array.
+ $item['inlineText'] = $text;
+ }
+
+ // Finally remove the markup.
+ $title = trim( str_replace( $matches[0], '', $title ) );
+ }
+
+ if ( false !== strpos( $title, 'awaiting-mod' ) ) {
+ preg_match( '/<span class="awaiting-mod">(.+)<\/span>/', $title, $matches );
+
+ $text = $matches[1];
+ if ( $text ) {
+ // Keep the text in the item array.
+ $item['badge'] = $text;
+ }
+
+ // Finally remove the markup.
+ $title = trim( str_replace( $matches[0], '', $title ) );
+ }
+
+ // It's important we sanitize the title after parsing data to remove any unexpected markup but keep the content.
+ // We are also capilizing the first letter in case there was a counter (now parsed) in front of the title.
+ $item['title'] = ucfirst( wp_strip_all_tags( $title ) );
+
+ return $item;
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Admin_Menu' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-external-media.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-external-media.php
new file mode 100644
index 00000000..b8b33d55
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-external-media.php
@@ -0,0 +1,535 @@
+<?php
+/**
+ * REST API endpoint for the External Media.
+ *
+ * @package automattic/jetpack
+ * @since 8.7.0
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * External Media helper API.
+ *
+ * @since 8.7.0
+ */
+class WPCOM_REST_API_V2_Endpoint_External_Media extends WP_REST_Controller {
+
+ /**
+ * Media argument schema for /copy endpoint.
+ *
+ * @var array
+ */
+ public $media_schema = array(
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object',
+ 'required' => true,
+ 'properties' => array(
+ 'caption' => array(
+ 'type' => 'string',
+ ),
+ 'guid' => array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'caption' => array(
+ 'type' => 'string',
+ ),
+ 'name' => array(
+ 'type' => 'string',
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ ),
+ 'url' => array(
+ 'format' => 'uri',
+ 'type' => 'string',
+ ),
+ ),
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ ),
+ 'meta' => array(
+ 'type' => 'object',
+ 'additionalProperties' => false,
+ 'properties' => array(
+ 'vertical_id' => array(
+ 'type' => 'string',
+ 'format' => 'text-field',
+ ),
+ 'pexels_object' => array(
+ 'type' => 'object',
+ ),
+ 'orientations' => array(
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ 'enum' => array( 'landscape', 'portrait', 'square' ),
+ ),
+ 'minItems' => 1,
+ 'maxItems' => 3,
+ 'uniqueItems' => true,
+ ),
+ ),
+ ),
+ ),
+ ),
+ );
+
+ /**
+ * Service regex.
+ *
+ * @var string
+ */
+ private static $services_regex = '(?P<service>google_photos|pexels)';
+
+ /**
+ * Temporary filename.
+ *
+ * Needed to cope with Google's very long file names.
+ *
+ * @var string
+ */
+ private $tmp_name;
+
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'external-media';
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Registers the routes for external media.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/list/' . self::$services_regex,
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_external_media' ),
+ 'permission_callback' => array( $this, 'permission_callback' ),
+ 'args' => array(
+ 'search' => array(
+ 'description' => __( 'Media collection search term.', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'number' => array(
+ 'description' => __( 'Number of media items in the request', 'jetpack' ),
+ 'type' => 'number',
+ 'default' => 20,
+ ),
+ 'path' => array(
+ 'type' => 'string',
+ ),
+ 'page_handle' => array(
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/copy/' . self::$services_regex,
+ array(
+ 'methods' => \WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'copy_external_media' ),
+ 'permission_callback' => array( $this, 'create_item_permissions_check' ),
+ 'args' => array(
+ 'media' => array(
+ 'description' => __( 'Media data to copy.', 'jetpack' ),
+ 'items' => $this->media_schema,
+ 'required' => true,
+ 'type' => 'array',
+ 'sanitize_callback' => array( $this, 'sanitize_media' ),
+ 'validate_callback' => array( $this, 'validate_media' ),
+ ),
+ 'post_id' => array(
+ 'description' => __( 'The post ID to attach the upload to.', 'jetpack' ),
+ 'type' => 'number',
+ 'minimum' => 0,
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/connection/(?P<service>google_photos)',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_connection_details' ),
+ 'permission_callback' => array( $this, 'permission_callback' ),
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/connection/(?P<service>google_photos)',
+ array(
+ 'methods' => \WP_REST_Server::DELETABLE,
+ 'callback' => array( $this, 'delete_connection' ),
+ 'permission_callback' => array( $this, 'permission_callback' ),
+ )
+ );
+ }
+
+ /**
+ * Checks if a given request has access to external media libraries.
+ */
+ public function permission_callback() {
+ return current_user_can( 'edit_posts' );
+ }
+
+ /**
+ * Checks if a given request has access to create an attachment.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return true|WP_Error True if the request has access to create items, WP_Error object otherwise.
+ */
+ public function create_item_permissions_check( $request ) {
+ if ( ! empty( $request['id'] ) ) {
+ return new WP_Error(
+ 'rest_post_exists',
+ __( 'Cannot create existing post.', 'jetpack' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ $post_type = get_post_type_object( 'attachment' );
+
+ if ( ! current_user_can( $post_type->cap->create_posts ) ) {
+ return new WP_Error(
+ 'rest_cannot_create',
+ __( 'Sorry, you are not allowed to create posts as this user.', 'jetpack' ),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ if ( ! current_user_can( 'upload_files' ) ) {
+ return new WP_Error(
+ 'rest_cannot_create',
+ __( 'Sorry, you are not allowed to upload media on this site.', 'jetpack' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Sanitization callback for media parameter.
+ *
+ * @param array $param Media parameter.
+ * @return true|\WP_Error
+ */
+ public function sanitize_media( $param ) {
+ $param = $this->prepare_media_param( $param );
+
+ return rest_sanitize_value_from_schema( $param, $this->media_schema );
+ }
+
+ /**
+ * Validation callback for media parameter.
+ *
+ * @param array $param Media parameter.
+ * @return true|\WP_Error
+ */
+ public function validate_media( $param ) {
+ $param = $this->prepare_media_param( $param );
+
+ return rest_validate_value_from_schema( $param, $this->media_schema, 'media' );
+ }
+
+ /**
+ * Decodes guid json and sets parameter defaults.
+ *
+ * @param array $param Media parameter.
+ * @return array
+ */
+ private function prepare_media_param( $param ) {
+ foreach ( $param as $key => $item ) {
+ if ( ! empty( $item['guid'] ) ) {
+ $param[ $key ]['guid'] = json_decode( $item['guid'], true );
+ }
+
+ if ( empty( $param[ $key ]['caption'] ) ) {
+ $param[ $key ]['caption'] = '';
+ }
+ if ( empty( $param[ $key ]['title'] ) ) {
+ $param[ $key ]['title'] = '';
+ }
+ }
+
+ return $param;
+ }
+
+ /**
+ * Retrieves media items from external libraries.
+ *
+ * @param \WP_REST_Request $request Full details about the request.
+ * @return array|\WP_Error|mixed
+ */
+ public function get_external_media( \WP_REST_Request $request ) {
+ $params = $request->get_params();
+ $wpcom_path = sprintf( '/meta/external-media/%s', rawurlencode( $params['service'] ) );
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $request = new \WP_REST_Request( 'GET', '/' . $this->namespace . $wpcom_path );
+ $request->set_query_params( $params );
+
+ return rest_do_request( $request );
+ }
+
+ // Build query string to pass to wpcom endpoint.
+ $service_args = array_filter(
+ $params,
+ function ( $key ) {
+ return in_array( $key, array( 'search', 'number', 'path', 'page_handle', 'filter' ), true );
+ },
+ ARRAY_FILTER_USE_KEY
+ );
+ if ( ! empty( $service_args ) ) {
+ $wpcom_path .= '?' . http_build_query( $service_args );
+ }
+
+ $response = Client::wpcom_json_api_request_as_user( $wpcom_path );
+
+ switch ( wp_remote_retrieve_response_code( $response ) ) {
+ case 200:
+ $response = json_decode( wp_remote_retrieve_body( $response ), true );
+ break;
+
+ case 401:
+ $response = new WP_Error(
+ 'authorization_required',
+ __( 'You are not connected to that service.', 'jetpack' ),
+ array( 'status' => 403 )
+ );
+ break;
+
+ case 403:
+ $error = json_decode( wp_remote_retrieve_body( $response ) );
+ $response = new WP_Error( $error->code, $error->message, $error->data );
+ break;
+
+ default:
+ if ( is_wp_error( $response ) ) {
+ $response->add_data( array( 'status' => 400 ) );
+ break;
+ }
+ $response = new WP_Error(
+ 'rest_request_error',
+ __( 'An unknown error has occurred. Please try again later.', 'jetpack' ),
+ array( 'status' => wp_remote_retrieve_response_code( $response ) )
+ );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Saves an external media item to the media library.
+ *
+ * @param \WP_REST_Request $request Full details about the request.
+ * @return array|\WP_Error|mixed
+ */
+ public function copy_external_media( \WP_REST_Request $request ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ require_once ABSPATH . 'wp-admin/includes/media.php';
+ require_once ABSPATH . 'wp-admin/includes/image.php';
+
+ $post_id = $request->get_param( 'post_id' );
+
+ $responses = array();
+ foreach ( $request->get_param( 'media' ) as $item ) {
+ // Download file to temp dir.
+ $download_url = $this->get_download_url( $item['guid'] );
+ if ( is_wp_error( $download_url ) ) {
+ $responses[] = $download_url;
+ continue;
+ }
+
+ $id = $this->sideload_media( $item['guid']['name'], $download_url, $post_id );
+ if ( is_wp_error( $id ) ) {
+ $responses[] = $id;
+ continue;
+ }
+
+ $this->update_attachment_meta( $id, $item );
+
+ // Add attachment data or WP_Error.
+ $responses[] = $this->get_attachment_data( $id, $item );
+ }
+
+ return $responses;
+ }
+
+ /**
+ * Gets connection authorization details.
+ *
+ * @param \WP_REST_Request $request Full details about the request.
+ * @return array|\WP_Error|mixed
+ */
+ public function get_connection_details( \WP_REST_Request $request ) {
+ $service = rawurlencode( $request->get_param( 'service' ) );
+ $wpcom_path = sprintf( '/meta/external-media/connection/%s', $service );
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $internal_request = new \WP_REST_Request( 'GET', '/' . $this->namespace . $wpcom_path );
+ $internal_request->set_query_params( $request->get_params() );
+
+ return rest_do_request( $internal_request );
+ }
+
+ $response = Client::wpcom_json_api_request_as_user( $wpcom_path );
+
+ return json_decode( wp_remote_retrieve_body( $response ), true );
+ }
+
+ /**
+ * Deletes a Google Photos connection.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return array|WP_Error|WP_REST_Response
+ */
+ public function delete_connection( WP_REST_Request $request ) {
+ $service = rawurlencode( $request->get_param( 'service' ) );
+ $wpcom_path = sprintf( '/meta/external-media/connection/%s', $service );
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $internal_request = new WP_REST_Request( REQUESTS::DELETE, '/' . $this->namespace . $wpcom_path );
+ $internal_request->set_query_params( $request->get_params() );
+
+ return rest_do_request( $internal_request );
+ }
+
+ $response = Client::wpcom_json_api_request_as_user(
+ $wpcom_path,
+ '2',
+ array(
+ 'method' => REQUESTS::DELETE,
+ )
+ );
+
+ return json_decode( wp_remote_retrieve_body( $response ), true );
+ }
+
+ /**
+ * Filter callback to provide a shorter file name for google images.
+ *
+ * @return string
+ */
+ public function tmp_name() {
+ return $this->tmp_name;
+ }
+
+ /**
+ * Returns a download URL, dealing with Google's long file names.
+ *
+ * @param array $guid Media information.
+ * @return string|\WP_Error
+ */
+ public function get_download_url( $guid ) {
+ $this->tmp_name = $guid['name'];
+ add_filter( 'wp_unique_filename', array( $this, 'tmp_name' ) );
+ $download_url = download_url( $guid['url'] );
+ remove_filter( 'wp_unique_filename', array( $this, 'tmp_name' ) );
+
+ if ( is_wp_error( $download_url ) ) {
+ $download_url->add_data( array( 'status' => 400 ) );
+ }
+
+ return $download_url;
+ }
+
+ /**
+ * Uploads media file and creates attachment object.
+ *
+ * @param string $file_name Name of media file.
+ * @param string $download_url Download URL.
+ * @param int $post_id The ID of the post to attach the image to.
+ *
+ * @return int|\WP_Error
+ */
+ public function sideload_media( $file_name, $download_url, $post_id = 0 ) {
+ $file = array(
+ 'name' => wp_basename( $file_name ),
+ 'tmp_name' => $download_url,
+ );
+
+ $id = media_handle_sideload( $file, $post_id, null );
+ if ( is_wp_error( $id ) ) {
+ @unlink( $file['tmp_name'] ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ $id->add_data( array( 'status' => 400 ) );
+ }
+
+ return $id;
+ }
+
+ /**
+ * Updates attachment meta data for media item.
+ *
+ * @param int $id Attachment ID.
+ * @param array $item Media item.
+ */
+ public function update_attachment_meta( $id, $item ) {
+ $meta = wp_get_attachment_metadata( $id );
+ $meta['image_meta']['title'] = $item['title'];
+ $meta['image_meta']['caption'] = $item['caption'];
+
+ wp_update_attachment_metadata( $id, $meta );
+
+ update_post_meta( $id, '_wp_attachment_image_alt', $item['title'] );
+ wp_update_post(
+ array(
+ 'ID' => $id,
+ 'post_excerpt' => $item['caption'],
+ )
+ );
+
+ if ( ! empty( $item['meta'] ) ) {
+ foreach ( $item['meta'] as $meta_key => $meta_value ) {
+ update_post_meta( $id, $meta_key, $meta_value );
+ }
+ }
+ }
+
+ /**
+ * Retrieves attachment data for media item.
+ *
+ * @param int $id Attachment ID.
+ * @param array $item Media item.
+ *
+ * @return array|\WP_REST_Response Attachment data on success, WP_Error on failure.
+ */
+ public function get_attachment_data( $id, $item ) {
+ $image_src = wp_get_attachment_image_src( $id, 'full' );
+
+ if ( empty( $image_src[0] ) ) {
+ $response = new WP_Error(
+ 'rest_upload_error',
+ __( 'Could not retrieve source URL.', 'jetpack' ),
+ array( 'status' => 400 )
+ );
+ } else {
+ $response = array(
+ 'id' => $id,
+ 'caption' => $item['caption'],
+ 'alt' => $item['title'],
+ 'type' => 'image',
+ 'url' => $image_src[0],
+ );
+ }
+
+ return $response;
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_External_Media' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php
new file mode 100644
index 00000000..381b7e3b
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-instagram-gallery.php
@@ -0,0 +1,165 @@
+<?php
+/**
+ * REST API endpoint for the Instagram connections.
+ *
+ * @package automattic/jetpack
+ * @since 8.5.0
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * Instagram connections helper API.
+ *
+ * @since 8.5
+ */
+class WPCOM_REST_API_V2_Endpoint_Instagram_Gallery extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'instagram-gallery';
+ $this->is_wpcom = false;
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $this->is_wpcom = true;
+
+ if ( ! class_exists( 'WPCOM_Instagram_Gallery_Helper' ) ) {
+ \jetpack_require_lib( 'instagram-gallery-helper' );
+ }
+ }
+
+ if ( ! class_exists( 'Jetpack_Instagram_Gallery_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-instagram-gallery-helper' );
+ }
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register the route.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/connect-url',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_instagram_connect_url' ),
+ 'permission_callback' => '__return_true',
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/connections',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_instagram_connections' ),
+ 'permission_callback' => 'is_user_logged_in',
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/gallery',
+ array(
+ 'args' => array(
+ 'access_token' => array(
+ 'description' => __( 'An Instagram Keyring access token.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ 'count' => array(
+ 'description' => __( 'How many Instagram posts?', 'jetpack' ),
+ 'type' => 'int',
+ 'required' => true,
+ 'validate_callback' => function ( $param ) {
+ return is_numeric( $param );
+ },
+ ),
+ ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_instagram_gallery' ),
+ 'permission_callback' => '__return_true',
+ )
+ );
+ }
+
+ /**
+ * Get the Instagram connect URL.
+ *
+ * @return mixed
+ */
+ public function get_instagram_connect_url() {
+ if ( $this->is_wpcom ) {
+ return WPCOM_Instagram_Gallery_Helper::get_connect_url();
+ }
+
+ $site_id = Jetpack_Instagram_Gallery_Helper::get_site_id();
+ if ( is_wp_error( $site_id ) ) {
+ return $site_id;
+ }
+
+ $path = sprintf( '/sites/%d/external-services', $site_id );
+ $response = Client::wpcom_json_api_request_as_user( $path );
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+ if ( ! property_exists( $body, 'services' ) || ! property_exists( $body->services, 'instagram-basic-display' ) ) {
+ return new WP_Error(
+ 'bad_request',
+ __( 'An error occurred. Please try again later.', 'jetpack' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return $body->services->{ 'instagram-basic-display' }->connect_URL;
+ }
+
+ /**
+ * Get a list of stored Instagram connections for the current user.
+ *
+ * @return mixed
+ */
+ public function get_instagram_connections() {
+ if ( $this->is_wpcom ) {
+ return WPCOM_Instagram_Gallery_Helper::get_connections();
+ }
+
+ $response = Client::wpcom_json_api_request_as_user( '/me/connections' );
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ $connections = array();
+
+ if ( isset( $body->connections ) && is_array( $body->connections ) ) {
+ foreach ( $body->connections as $connection ) {
+ if ( 'instagram-basic-display' === $connection->service && 'ok' === $connection->status ) {
+ $connections[] = array(
+ 'token' => (string) $connection->ID,
+ 'username' => $connection->external_name,
+ );
+ }
+ }
+ }
+ return $connections;
+ }
+
+ /**
+ * Get the Instagram Gallery.
+ *
+ * @param WP_REST_Request $request The request.
+ * @return mixed
+ */
+ public function get_instagram_gallery( $request ) {
+ return Jetpack_Instagram_Gallery_Helper::get_instagram_gallery( $request['access_token'], $request['count'] );
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Instagram_Gallery' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php
index a6612b37..1c25bb2d 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Redirect;
/**
* Mailchimp: Get Mailchimp Status.
@@ -28,8 +29,9 @@ class WPCOM_REST_API_V2_Endpoint_Mailchimp extends WP_REST_Controller {
$this->rest_base,
array(
array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_mailchimp_status' ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_mailchimp_status' ),
+ 'permission_callback' => '__return_true',
),
)
);
@@ -38,8 +40,9 @@ class WPCOM_REST_API_V2_Endpoint_Mailchimp extends WP_REST_Controller {
$this->rest_base . '/groups',
array(
array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_mailchimp_groups' ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_mailchimp_groups' ),
+ 'permission_callback' => '__return_true',
),
)
);
@@ -80,7 +83,13 @@ class WPCOM_REST_API_V2_Endpoint_Mailchimp extends WP_REST_Controller {
403
);
}
- $connect_url = sprintf( 'https://wordpress.com/marketing/connections/%s?mailchimp', rawurlencode( $site_id ) );
+ $connect_url = Redirect::get_url(
+ 'calypso-marketing-connections',
+ array(
+ 'site' => rawurlencode( $site_id ),
+ 'query' => 'mailchimp',
+ )
+ );
return array(
'code' => $this->is_connected() ? 'connected' : 'not_connected',
'connect_url' => $connect_url,
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-podcast-player.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-podcast-player.php
new file mode 100644
index 00000000..ad815091
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-podcast-player.php
@@ -0,0 +1,162 @@
+<?php
+/**
+ * Podcast Player API
+ *
+ * @package automattic/jetpack
+ * @since 8.4.0
+ */
+
+/**
+ * Fetch podcast feeds and parse data for the Podcast Player block.
+ *
+ * @since 8.4.0
+ */
+class WPCOM_REST_API_V2_Endpoint_Podcast_Player extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ if ( ! class_exists( 'Jetpack_Podcast_Helper' ) ) {
+ jetpack_require_lib( 'class-jetpack-podcast-helper' );
+ }
+
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'podcast-player';
+ // This endpoint *does not* need to connect directly to Jetpack sites.
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register the route.
+ */
+ public function register_routes() {
+ // GET /sites/<blog_id>/podcast-player - Returns feed data.
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base,
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_player_data' ),
+ 'permission_callback' => function () {
+ return current_user_can( 'edit_posts' );
+ },
+ 'args' => array(
+ 'url' => array(
+ 'description' => __( 'The Podcast RSS feed URL.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => 'true',
+ 'validate_callback' => function ( $param ) {
+ return wp_http_validate_url( $param );
+ },
+ ),
+ 'guids' => array(
+ 'description' => __( 'A list of unique identifiers for fetching specific podcast episodes.', 'jetpack' ),
+ 'type' => 'array',
+ 'required' => 'false',
+ 'validate_callback' => function ( $guids ) {
+ return is_array( $guids );
+ },
+ 'sanitize_callback' => function ( $guids ) {
+ return array_map( 'sanitize_text_field', $guids );
+ },
+ ),
+ 'episode-options' => array(
+ 'description' => __( 'Whether we should return the episodes list for use in the selection UI', 'jetpack' ),
+ 'type' => 'boolean',
+ 'required' => 'false',
+ ),
+ ),
+ 'schema' => array( $this, 'get_public_item_schema' ),
+ ),
+ )
+ );
+
+ // GET /sites/<blog_id>/podcast-player/track-quantity - Returns number of tracks.
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base . '/track-quantity',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_tracks_quantity' ),
+ 'permission_callback' => function () {
+ return current_user_can( 'edit_posts' );
+ },
+ ),
+ )
+ );
+ }
+
+ /**
+ * Retrieves tracks quantity
+ *
+ * @return Integer number of tracks.
+ * */
+ public function get_tracks_quantity() {
+ return rest_ensure_response( Jetpack_Podcast_Helper::get_tracks_quantity() );
+ }
+
+ /**
+ * Retreives data needed to display a podcast player from RSS feed.
+ *
+ * @param WP_REST_Request $request The REST API request data.
+ * @return WP_REST_Response The REST API response.
+ */
+ public function get_player_data( $request ) {
+ $helper = new Jetpack_Podcast_Helper( $request['url'] );
+
+ $args = array();
+
+ if ( isset( $request['guids'] ) ) {
+ $args['guids'] = $request['guids'];
+ }
+
+ if ( isset( $request['episode-options'] ) && $request['episode-options'] ) {
+ $args['episode-options'] = true;
+ }
+
+ $player_data = $helper->get_player_data( $args );
+
+ if ( is_wp_error( $player_data ) ) {
+ return rest_ensure_response( $player_data );
+ }
+
+ $player_data = $this->prepare_for_response( $player_data, $request );
+ return rest_ensure_response( $player_data );
+ }
+
+ /**
+ * Filters out data based on ?_fields= request parameter
+ *
+ * @param array $player_data Data for the player.
+ * @param WP_REST_Request $request The request.
+ * @return array filtered $player_data
+ */
+ public function prepare_for_response( $player_data, $request ) {
+ if ( ! is_callable( array( $this, 'get_fields_for_response' ) ) ) {
+ return $player_data;
+ }
+
+ $fields = $this->get_fields_for_response( $request );
+
+ $response_data = array();
+ foreach ( $player_data as $field => $value ) {
+ if ( in_array( $field, $fields, true ) ) {
+ $response_data[ $field ] = $value;
+ }
+ }
+
+ return $response_data;
+ }
+
+ /**
+ * Retrieves the response schema, conforming to JSON Schema.
+ *
+ * @return array
+ */
+ public function get_item_schema() {
+ return Jetpack_Podcast_Helper::get_player_data_schema();
+ }
+}
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Podcast_Player' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-publicize-share-post.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-publicize-share-post.php
new file mode 100644
index 00000000..35c82a55
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-publicize-share-post.php
@@ -0,0 +1,177 @@
+<?php
+/**
+ * Publicize: Share post
+ *
+ * This file is synced from the Jetpack monorepo to WPCOM.
+ *
+ * @package automattic/jetpack
+ * @since
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+require_once __DIR__ . '/publicize-connections.php';
+
+/**
+ * Publicize: Share post class.
+ */
+class WPCOM_REST_API_V2_Endpoint_Publicize_Share_Post extends WP_REST_Controller {
+ /**
+ * The constructor sets the route namespace, rest_base, and registers our API route and endpoint.
+ * Additionally, we check if we're executing this file on WPCOM or Jetpack.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+
+ // $wpcom_is_wpcom_only_endpoint = true keeps WPCOM from trying to loop back to the Jetpack endpoint.
+ $this->wpcom_is_wpcom_only_endpoint = true;
+
+ // Determine if this endpoint is running on WPCOM or not.
+ $this->is_wpcom = false;
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $this->is_wpcom = true;
+ }
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * This file is synced from Jetpack to WPCOM and this method creates a slightly different route for both sites.
+ * Jetpack route: http://{$site}/wp-json/wpcom/v2/posts/{$postId}/publicize
+ * WPCOM route: https://public-api.wordpress.com/wpcom/v2/sites/{$siteId}/posts/{$postId}/publicize
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ '/posts/(?P<postId>\d+)/publicize',
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'share_post' ),
+ 'permission_callback' => array( $this, 'permissions_check' ),
+ 'args' => array(
+ 'message' => array(
+ 'description' => __( 'The message to share.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => true,
+ 'validate_callback' => function ( $param ) {
+ return is_string( $param );
+ },
+ 'sanitize_callback' => 'sanitize_textarea_field',
+ ),
+ 'skipped_connections' => array(
+ 'description' => __( 'Array of external connection IDs to skip sharing.', 'jetpack' ),
+ 'type' => 'array',
+ 'required' => false,
+ 'validate_callback' => function ( $param ) {
+ return is_array( $param );
+ },
+ 'sanitize_callback' => function ( $param ) {
+ return array_map( 'absint', $param );
+ },
+ ),
+ ),
+ ),
+ // override = true because this API route was commandeered from the file
+ // wp-content/rest-api-plugins/endpoints/sites-publicize.php on WPCOM.
+ true
+ );
+ }
+
+ /**
+ * Ensure the user has proper tokens and permissions to publish posts on this blog.
+ *
+ * @return WP_Error|boolean
+ */
+ public function permissions_check() {
+ if ( ! get_current_user_id() ) {
+ return new WP_Error(
+ 'rest_cannot_view',
+ __( 'Sorry, you cannot view this resource without a valid token for this blog.', 'jetpack' ),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+ if ( ! current_user_can( 'publish_posts' ) ) {
+ return new WP_Error( 'unauthorized', 'Your token must have permission to publish posts.', array( 'status' => 401 ) );
+ }
+ return true;
+ }
+
+ /**
+ * If this method callback is executed on WPCOM, we share the post using republicize_post(). If this method callback
+ * is executed on a Jetpack site, we make an API call to WPCOM using wpcom_json_api_request_as_user() and return
+ * the results. In both cases, this file and method are executed, as this file is synced from Jetpack to WPCOM.
+ *
+ * @param WP_REST_Request $request Full details about the request.
+ * @return WP_Error|array The publicize results, including two arrays: `results` and `errors`
+ */
+ public function share_post( $request ) {
+ $post_id = $request->get_param( 'postId' );
+ $message = trim( $request->get_param( 'message' ) );
+ $skip_connection_ids = $request->get_param( 'skipped_connections' );
+
+ if ( $this->is_wpcom ) {
+ $post = get_post( $post_id );
+
+ if ( empty( $post ) ) {
+ return new WP_Error( 'not_found', 'Cannot find that post', array( 'status' => 404 ) );
+ }
+ if ( 'publish' !== $post->post_status ) {
+ return new WP_Error( 'not_published', 'Cannot publicize an unpublished post', array( 'status' => 400 ) );
+ }
+
+ $publicize = publicize_init();
+ $result = $publicize->republicize_post( (int) $post_id, $message, $skip_connection_ids, true );
+ if ( false === $result ) {
+ return new WP_Error( 'not_found', 'Cannot find that post', array( 'status' => 404 ) );
+ }
+
+ return $result;
+ } else {
+ $response = $this->proxy_request( $post_id, $message, $skip_connection_ids );
+ if ( is_wp_error( $response ) ) {
+ return rest_ensure_response( $response );
+ }
+
+ return json_decode( wp_remote_retrieve_body( $response ), true );
+ }
+ }
+
+ /**
+ * Passes the request on to the WPCOM endpoint, and returns the result.
+ *
+ * @param int $post_id The post ID being shared.
+ * @param string $message The custom message to be used.
+ * @param array $skip_connection_ids An array of connection IDs where the post shouldn't be shared.
+ *
+ * @return array|WP_Error $response Response data, else WP_Error on failure.
+ */
+ public function proxy_request( $post_id, $message, $skip_connection_ids ) {
+ /*
+ * Publicize endpoint on WPCOM:
+ * [POST] wpcom/v2/sites/{$siteId}/posts/{$postId}/publicize
+ * body:
+ * - message: string
+ * - skipped_connections: array of connection ids to skip
+ */
+ $url = sprintf(
+ '/sites/%d/posts/%d/publicize',
+ Jetpack_Options::get_option( 'id' ),
+ $post_id
+ );
+
+ return Client::wpcom_json_api_request_as_user(
+ $url,
+ 'v2',
+ array(
+ 'method' => 'POST',
+ ),
+ array(
+ 'message' => $message,
+ 'skipped_connections' => $skip_connection_ids,
+ )
+ );
+
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Publicize_Share_Post' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-resolve-redirect.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-resolve-redirect.php
index c3777f6d..ac8765b3 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-resolve-redirect.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-resolve-redirect.php
@@ -2,7 +2,7 @@
/**
* REST API endpoint for resolving URL redirects.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 8.0.0
*/
@@ -29,7 +29,7 @@ class WPCOM_REST_API_V2_Endpoint_Resolve_Redirect extends WP_REST_Controller {
// GET /sites/<blog_id>/resolve-redirect/<url> - Follow 301/302 redirects on a URL, and return the final destination.
register_rest_route(
$this->namespace,
- '/' . $this->rest_base . '/(?P<url>.+)',
+ '/' . $this->rest_base . '/?(?P<url>.+)?',
array(
'args' => array(
'url' => array(
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-search.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-search.php
new file mode 100644
index 00000000..6550e989
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-search.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Proxy endpoint for Jetpack Search
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Search\REST_Controller;
+
+/**
+ * Jetpack Search: Makes authenticated requests to the site search API using blog tokens.
+ * This endpoint will only be used when trying to search private Jetpack and WordPress.com sites.
+ *
+ * @since 9.0.0
+ */
+class WPCOM_REST_API_V2_Endpoint_Search extends WP_REST_Controller {
+ /**
+ * Forward request to controller in Search package.
+ *
+ * @var REST_Controller
+ */
+ protected $controller;
+
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'search';
+ $this->controller = new REST_Controller( defined( 'IS_WPCOM' ) && IS_WPCOM );
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Called automatically on `rest_api_init()`.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base,
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this->controller, 'get_search_results' ),
+ 'permission_callback' => 'is_user_logged_in',
+ )
+ );
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Search' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-transient.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-transient.php
new file mode 100644
index 00000000..ea9c963f
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-transient.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * REST API endpoint for editing Jetpack Transients.
+ *
+ * @package automattic/jetpack
+ * @since 9.7.0
+ */
+
+/**
+ * Jetpack transients API.
+ *
+ * @since 9.7.0
+ */
+class WPCOM_REST_API_V2_Endpoint_Transient extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'transients';
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Called automatically on `rest_api_init()`.
+ */
+ public function register_routes() {
+ // DELETE /sites/<blog-id>/transients/$name route.
+ register_rest_route(
+ $this->namespace,
+ '/' . $this->rest_base . '/(?P<name>\w{1,172})',
+ array(
+ array(
+ 'methods' => WP_REST_Server::DELETABLE,
+ 'callback' => array( $this, 'delete_transient' ),
+ 'permission_callback' => array( $this, 'delete_transient_permissions_check' ),
+ 'args' => array(
+ 'name' => array(
+ 'description' => __( 'The name of the transient to delete.', 'jetpack' ),
+ 'required' => true,
+ 'type' => 'string',
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Delete transient callback.
+ *
+ * @param \WP_REST_Request $request Full details about the request.
+ * @return array
+ */
+ public function delete_transient( \WP_REST_Request $request ) {
+ return array(
+ 'success' => delete_transient( $request->get_param( 'name' ) ),
+ );
+ }
+
+ /**
+ * Check if the user has read access, the transient name starts with
+ * "jetpack_connected_user_data_", and that the user is editing
+ * their own transient.
+ *
+ * @param \WP_REST_Request $request Full details about the request.
+ * @return bool|WP_Error
+ */
+ public function delete_transient_permissions_check( \WP_REST_Request $request ) {
+ $transient_name = $request->get_param( 'name' );
+ $current_user_id = get_current_user_id();
+
+ if ( current_user_can( 'read' ) &&
+ "jetpack_connected_user_data_{$current_user_id}" === $transient_name ) {
+ return true;
+ } else {
+ return new WP_Error(
+ 'authorization_required',
+ __( 'Sorry, you are not allowed to delete this transient.', 'jetpack' ),
+ array( 'status' => 403 )
+ );
+ }
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Transient' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php
new file mode 100644
index 00000000..47300005
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-gather.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ * REST API endpoint for the Gathering Tweetstorms block.
+ *
+ * @package automattic/jetpack
+ * @since 8.7.0
+ */
+
+/**
+ * Tweetstorm gatherer.
+ *
+ * @since 8.7.0
+ */
+class WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'tweetstorm/gather';
+ $this->wpcom_is_wpcom_only_endpoint = true;
+ $this->is_wpcom = false;
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $this->is_wpcom = true;
+
+ if ( ! class_exists( 'WPCOM_Gather_Tweetstorm' ) ) {
+ \jetpack_require_lib( 'gather-tweetstorm' );
+ }
+ }
+
+ if ( ! class_exists( 'Jetpack_Tweetstorm_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-tweetstorm-helper' );
+ }
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register the route.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base,
+ array(
+ 'args' => array(
+ 'url' => array(
+ 'description' => __( 'The tweet URL to gather from.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'gather_tweetstorm' ),
+ 'private_site_security_settings' => array(
+ 'allow_blog_token_access' => true,
+ ),
+ 'permission_callback' => '__return_true',
+ )
+ );
+ }
+
+ /**
+ * Gather the tweetstorm.
+ *
+ * @param WP_REST_Request $request The request.
+ * @return mixed
+ */
+ public function gather_tweetstorm( $request ) {
+ return Jetpack_Tweetstorm_Helper::gather( $request['url'] );
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Tweetstorm_Gather' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-parse.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-parse.php
new file mode 100644
index 00000000..7bcd4499
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-tweetstorm-parse.php
@@ -0,0 +1,108 @@
+<?php
+/**
+ * REST API endpoint for parsing Tweetstorms out of block content.
+ *
+ * @package automattic/jetpack
+ * @since 9.0.0
+ */
+
+/**
+ * Tweetstorm gatherer.
+ *
+ * @since 9.0.0
+ */
+class WPCOM_REST_API_V2_Endpoint_Tweetstorm_Parse extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'tweetstorm';
+
+ if ( ! class_exists( 'Jetpack_Tweetstorm_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-tweetstorm-helper' );
+ }
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register the route.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/parse',
+ array(
+ 'args' => array(
+ 'blocks' => array(
+ 'description' => __( 'An array of serialized blocks, and editor-specific block information.', 'jetpack' ),
+ 'type' => 'array',
+ 'required' => true,
+ ),
+ ),
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'parse_tweetstorm' ),
+ 'allow_blog_token_when_site_is_private' => true,
+ 'permission_callback' => '__return_true',
+ )
+ );
+
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/generate-cards',
+ array(
+ 'args' => array(
+ 'urls' => array(
+ 'description' => __( 'An array of URLs to generate Twitter card details for.', 'jetpack' ),
+ 'type' => 'array',
+ 'required' => true,
+ ),
+ ),
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'generate_cards' ),
+ 'allow_blog_token_when_site_is_private' => true,
+ 'permission_callback' => '__return_true',
+ )
+ );
+ }
+
+ /**
+ * Parse the content into a tweetstorm.
+ *
+ * @param WP_REST_Request $request The request.
+ * @return mixed
+ */
+ public function parse_tweetstorm( $request ) {
+ // The "block" attribute is serialised, unserialise it before passing it on.
+ $blocks = array_map(
+ function ( $block ) {
+ $parsed_block = parse_blocks( $block['block'] );
+ if ( count( $parsed_block ) > 0 ) {
+ $block['block'] = $parsed_block[0];
+ return $block;
+ }
+
+ return null;
+ },
+ $request['blocks']
+ );
+
+ // Remove any blocks that failed to unserialise.
+ $blocks = array_values( array_filter( $blocks, 'is_array' ) );
+
+ return Jetpack_Tweetstorm_Helper::parse( $blocks );
+ }
+
+ /**
+ * Grab the card content for a list of URLs.
+ *
+ * @param WP_REST_Request $request The request.
+ * @return array The array of cards for the requested URLs.
+ */
+ public function generate_cards( $request ) {
+ return Jetpack_Tweetstorm_Helper::generate_cards( $request['urls'] );
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Tweetstorm_Parse' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-videopress.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-videopress.php
new file mode 100644
index 00000000..a7046c12
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-videopress.php
@@ -0,0 +1,190 @@
+<?php
+/**
+ * REST API endpoint for managing VideoPress metadata.
+ *
+ * @package automattic/jetpack
+ * @since 9.3.0
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * VideoPress wpcom api v2 endpoint
+ */
+class WPCOM_REST_API_V2_Endpoint_VideoPress extends WP_REST_Controller {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ $this->namespace = 'wpcom/v2';
+ $this->rest_base = 'videopress';
+
+ add_action( 'rest_api_init', array( $this, 'register_routes' ) );
+ }
+
+ /**
+ * Register the route.
+ */
+ public function register_routes() {
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/meta',
+ array(
+ 'args' => array(
+ 'id' => array(
+ 'description' => __( 'The post id for the attachment.', 'jetpack' ),
+ 'type' => 'int',
+ 'required' => true,
+ 'validate_callback' => function ( $param ) {
+ return is_numeric( $param );
+ },
+ ),
+ 'title' => array(
+ 'description' => __( 'The title of the video.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => false,
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ 'description' => array(
+ 'description' => __( 'The description of the video.', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => false,
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ 'rating' => array(
+ 'description' => __( 'The video content rating. One of G, PG-13 or R-17', 'jetpack' ),
+ 'type' => 'string',
+ 'required' => false,
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ 'display_embed' => array(
+ 'description' => __( 'Display the share menu in the player.', 'jetpack' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ 'sanitize_callback' => 'rest_sanitize_boolean',
+ ),
+ 'allow_download' => array(
+ 'description' => __( 'Display download option and allow viewers to download this video', 'jetpack' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ 'sanitize_callback' => 'rest_sanitize_boolean',
+ ),
+ ),
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'videopress_block_update_meta' ),
+ 'permission_callback' => function () {
+ return current_user_can( 'edit_posts' );
+ },
+ )
+ );
+ }
+
+ /**
+ * Updates attachment meta and video metadata via the WPCOM REST API.
+ *
+ * @param WP_REST_Request $request the request object.
+ * @return object|WP_Error Success object or WP_Error with error details.
+ */
+ public function videopress_block_update_meta( $request ) {
+ $json_params = $request->get_json_params();
+ $post_id = $json_params['id'];
+
+ if ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) {
+ $guid = get_post_meta( $post_id, 'videopress_guid', true );
+ } else {
+ $blog_id = get_current_blog_id();
+ $info = video_get_info_by_blogpostid( $blog_id, $post_id );
+ $guid = $info->guid;
+ }
+
+ if ( ! $guid ) {
+ return rest_ensure_response(
+ new WP_Error(
+ 'error',
+ __( 'This attachment cannot be updated yet.', 'jetpack' )
+ )
+ );
+ }
+
+ $video_request_params = $json_params;
+ unset( $video_request_params['id'] );
+ $video_request_params['guid'] = $guid;
+
+ $endpoint = 'videos';
+ $args = array(
+ 'method' => 'POST',
+ 'headers' => array( 'content-type' => 'application/json' ),
+ );
+
+ $result = Client::wpcom_json_api_request_as_blog(
+ $endpoint,
+ '2',
+ $args,
+ wp_json_encode( $video_request_params ),
+ 'wpcom'
+ );
+
+ if ( is_wp_error( $result ) ) {
+ return rest_ensure_response( $result );
+ }
+
+ $response_body = json_decode( wp_remote_retrieve_body( $result ) );
+ if ( is_bool( $response_body ) && $response_body ) {
+
+ // VideoPress data is stored in attachment meta for Jetpack sites, but not on wpcom.
+ if ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) {
+ $meta = wp_get_attachment_metadata( $post_id );
+ $should_update_meta = false;
+
+ if ( ! $meta ) {
+ return rest_ensure_response(
+ new WP_Error(
+ 'error',
+ __( 'Attachment meta was not found.', 'jetpack' )
+ )
+ );
+ }
+
+ if ( isset( $json_params['display_embed'] ) && isset( $meta['videopress']['display_embed'] ) ) {
+ $meta['videopress']['display_embed'] = $json_params['display_embed'];
+ $should_update_meta = true;
+ }
+
+ if ( isset( $json_params['rating'] ) && isset( $meta['videopress']['rating'] ) && videopress_is_valid_video_rating( $json_params['rating'] ) ) {
+ $meta['videopress']['rating'] = $json_params['rating'];
+ $should_update_meta = true;
+ }
+
+ if ( isset( $json_params['allow_download'] ) ) {
+ $allow_download = (bool) $json_params['allow_download'];
+ if ( ! isset( $meta['videopress']['allow_download'] ) || $meta['videopress']['allow_download'] !== $allow_download ) {
+ $meta['videopress']['allow_download'] = $allow_download;
+ $should_update_meta = true;
+ }
+ }
+
+ if ( $should_update_meta ) {
+ wp_update_attachment_metadata( $post_id, $meta );
+ }
+ }
+
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'message' => __( 'Video meta updated successfully.', 'jetpack' ),
+ 'data' => 200,
+ )
+ );
+ } else {
+ return rest_ensure_response(
+ new WP_Error(
+ $response_body->code,
+ $response_body->message,
+ $response_body->data
+ )
+ );
+ }
+ }
+}
+
+wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_VideoPress' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/hello.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/hello.php
index a05769b2..ff3349b8 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/hello.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/hello.php
@@ -8,8 +8,9 @@ class WPCOM_REST_API_V2_Endpoint_Hello {
public function register_routes() {
register_rest_route( 'wpcom/v2', '/hello', array(
array(
- 'methods' => WP_REST_Server::READABLE,
- 'callback' => array( $this, 'get_data' ),
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_data' ),
+ 'permission_callback' => '__return_true',
),
) );
}
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php
index 028568db..f56178cc 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/memberships.php
@@ -37,6 +37,22 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
'methods' => WP_REST_Server::READABLE,
'callback' => array( $this, 'get_status' ),
'permission_callback' => array( $this, 'get_status_permission_check' ),
+ 'args' => array(
+ 'type' => array(
+ 'type' => 'string',
+ 'required' => false,
+ 'validate_callback' => function ( $param ) {
+ return in_array( $param, array( 'donation', 'all' ), true );
+ },
+ ),
+ 'source' => array(
+ 'type' => 'string',
+ 'required' => false,
+ 'validate_callback' => function ( $param ) {
+ return in_array( $param, array( 'calypso', 'earn', 'gutenberg', 'gutenberg-wpcom' ), true );
+ },
+ ),
+ ),
),
)
);
@@ -69,6 +85,17 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
),
)
);
+ register_rest_route(
+ $this->namespace,
+ $this->rest_base . '/products',
+ array(
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'create_products' ),
+ 'permission_callback' => array( $this, 'get_status_permission_check' ),
+ ),
+ )
+ );
}
/**
@@ -89,7 +116,7 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
*/
public function create_product( $request ) {
if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) {
- require_lib( 'memberships' );
+ jetpack_require_lib( 'memberships' );
$connected_destination_account_id = Jetpack_Memberships::get_connected_account_id();
if ( ! $connected_destination_account_id ) {
return new WP_Error( 'no-destination-account', __( 'Please set up a Stripe account for this site first', 'jetpack' ) );
@@ -141,22 +168,37 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
}
/**
- * Get a status of connection for the site. If this is Jetpack, pass the request to wpcom.
+ * Automatically generate products according to type.
*
- * @return WP_Error|array ['products','connected_account_id','connect_url','should_upgrade_to_access_memberships','upgrade_url']
+ * @param object $request - request passed from WP.
+ *
+ * @return array|WP_Error
*/
- public function get_status() {
+ public function create_products( $request ) {
if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) {
- require_lib( 'memberships' );
- $blog_id = get_current_blog_id();
- return (array) get_memberships_settings_for_site( $blog_id );
+ jetpack_require_lib( 'memberships' );
+ $connected_destination_account_id = Jetpack_Memberships::get_connected_account_id();
+ if ( ! $connected_destination_account_id ) {
+ return new WP_Error( 'no-destination-account', __( 'Please set up a Stripe account for this site first', 'jetpack' ) );
+ }
+ $result = Memberships_Product::generate_default_products( get_current_blog_id(), $request['type'], $request['currency'], $connected_destination_account_id );
+ if ( is_wp_error( $result ) ) {
+ $status = 'invalid_param' === $result->get_error_code() ? 400 : 500;
+ return new WP_Error( $result->get_error_code(), $result->get_error_message(), array( 'status' => $status ) );
+ }
+ return $result;
} else {
$blog_id = Jetpack_Options::get_option( 'id' );
$response = Client::wpcom_json_api_request_as_user(
- "/sites/$blog_id/{$this->rest_base}/status",
+ "/sites/$blog_id/{$this->rest_base}/products",
'v2',
- array(),
- null
+ array(
+ 'method' => 'POST',
+ ),
+ array(
+ 'type' => $request['type'],
+ 'currency' => $request['currency'],
+ )
);
if ( is_wp_error( $response ) ) {
if ( $response->get_error_code() === 'missing_token' ) {
@@ -165,6 +207,50 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
return new WP_Error( 'wpcom_connection_error', __( 'Could not connect to WordPress.com', 'jetpack' ), 404 );
}
$data = isset( $response['body'] ) ? json_decode( $response['body'], true ) : null;
+ // If endpoint returned error, we have to detect it.
+ if ( 200 !== $response['response']['code'] && $data['code'] ) {
+ return new WP_Error( $data['code'], $data['message'] ? $data['message'] : '', 401 );
+ }
+ return $data;
+ }
+
+ return $request;
+ }
+
+ /**
+ * Get a status of connection for the site. If this is Jetpack, pass the request to wpcom.
+ *
+ * @param \WP_REST_Request $request - request passed from WP.
+ *
+ * @return WP_Error|array ['products','connected_account_id','connect_url','should_upgrade_to_access_memberships','upgrade_url']
+ */
+ public function get_status( \WP_REST_Request $request ) {
+ $product_type = $request['type'];
+ $source = $request['source'];
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) {
+ jetpack_require_lib( 'memberships' );
+ $blog_id = get_current_blog_id();
+ return (array) get_memberships_settings_for_site( $blog_id, $product_type );
+ } else {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $path = "/sites/$blog_id/{$this->rest_base}/status";
+ if ( $product_type ) {
+ $path = add_query_arg(
+ array(
+ 'type' => $product_type,
+ 'source' => $source,
+ ),
+ $path
+ );
+ }
+ $response = Client::wpcom_json_api_request_as_user( $path, 'v2' );
+ if ( is_wp_error( $response ) ) {
+ if ( $response->get_error_code() === 'missing_token' ) {
+ return new WP_Error( 'missing_token', __( 'Please connect your user account to WordPress.com', 'jetpack' ), 404 );
+ }
+ return new WP_Error( 'wpcom_connection_error', __( 'Could not connect to WordPress.com', 'jetpack' ), 404 );
+ }
+ $data = isset( $response['body'] ) ? json_decode( $response['body'], true ) : null;
if ( 200 !== $response['response']['code'] && $data['code'] && $data['message'] ) {
return new WP_Error( $data['code'], $data['message'], 401 );
}
@@ -173,7 +259,6 @@ class WPCOM_REST_API_V2_Endpoint_Memberships extends WP_REST_Controller {
}
}
-if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_active() ) {
+if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_connection_ready() ) {
wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Memberships' );
}
-
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-connections.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-connections.php
index 34d6b2a6..78cb3178 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-connections.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-connections.php
@@ -58,19 +58,27 @@ class WPCOM_REST_API_V2_Endpoint_List_Publicize_Connections extends WP_REST_Cont
*/
protected function get_connection_schema_properties() {
return array(
- 'id' => array(
+ 'id' => array(
'description' => __( 'Unique identifier for the Publicize Connection', 'jetpack' ),
'type' => 'string',
),
- 'service_name' => array(
+ 'service_name' => array(
'description' => __( 'Alphanumeric identifier for the Publicize Service', 'jetpack' ),
'type' => 'string',
),
- 'display_name' => array(
+ 'display_name' => array(
'description' => __( 'Username of the connected account', 'jetpack' ),
'type' => 'string',
),
- 'global' => array(
+ 'profile_display_name' => array(
+ 'description' => __( 'The name to display in the profile of the connected account', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'profile_picture' => array(
+ 'description' => __( 'Profile picture of the connected account', 'jetpack' ),
+ 'type' => 'string',
+ ),
+ 'global' => array(
'description' => __( 'Is this connection available to all users?', 'jetpack' ),
'type' => 'boolean',
),
@@ -109,11 +117,13 @@ class WPCOM_REST_API_V2_Endpoint_List_Publicize_Connections extends WP_REST_Cont
$connection_data = $connection_meta['connection_data'];
$items[] = array(
- 'id' => (string) $publicize->get_connection_unique_id( $connection ),
- 'service_name' => $service_name,
- 'display_name' => $publicize->get_display_name( $service_name, $connection ),
- // We expect an integer, but do loose comparison below in case some other type is stored
- 'global' => 0 == $connection_data['user_id'],
+ 'id' => (string) $publicize->get_connection_unique_id( $connection ),
+ 'service_name' => $service_name,
+ 'display_name' => $publicize->get_display_name( $service_name, $connection ),
+ 'profile_display_name' => ! empty( $connection_meta['profile_display_name'] ) ? $connection_meta['profile_display_name'] : '',
+ 'profile_picture' => ! empty( $connection_meta['profile_picture'] ) ? $connection_meta['profile_picture'] : '',
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- We expect an integer, but do loose comparison below in case some other type is stored.
+ 'global' => 0 == $connection_data['user_id'],
);
}
}
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-services.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-services.php
index 4641b218..da93dd6e 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-services.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/publicize-services.php
@@ -86,17 +86,15 @@ class WPCOM_REST_API_V2_Endpoint_List_Publicize_Services extends WP_REST_Control
*/
public function get_items( $request ) {
global $publicize;
- /**
- * We need this because Publicize::get_available_service_data() uses `Jetpack_Keyring_Service_Helper`
- * and `Jetpack_Keyring_Service_Helper` relies on `menu_page_url()`.
- *
- * We also need add_submenu_page(), as the URLs for connecting each service
- * rely on the `sharing` menu subpage being present.
- */
- include_once ABSPATH . 'wp-admin/includes/plugin.php';
-
- // The `sharing` submenu page must exist for service connect URLs to be correct.
- add_submenu_page( 'options-general.php', '', '', 'manage_options', 'sharing', '__return_empty_string' );
+
+ if ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) {
+ /**
+ * We need this because Publicize::get_available_service_data() uses `Jetpack_Keyring_Service_Helper`
+ * and `Jetpack_Keyring_Service_Helper` needs a `sharing` page to be registered.
+ */
+ jetpack_require_lib( 'class.jetpack-keyring-service-helper' );
+ Jetpack_Keyring_Service_Helper::register_sharing_page();
+ }
$services_data = $publicize->get_available_service_data();
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php
index edf174cf..8f279ea9 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-endpoints/service-api-keys.php
@@ -32,6 +32,7 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
array(
'methods' => WP_REST_Server::READABLE,
'callback' => array( __CLASS__, 'get_service_api_key' ),
+ 'permission_callback' => '__return_true',
),
array(
'methods' => WP_REST_Server::EDITABLE,
@@ -40,7 +41,7 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
'args' => array(
'service_api_key' => array(
'required' => true,
- 'type' => 'text',
+ 'type' => 'string',
),
),
),
@@ -121,7 +122,10 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
switch ( $service ) {
case 'mapbox':
- $mapbox = self::get_service_api_key_mapbox();
+ if ( ! class_exists( 'Jetpack_Mapbox_Helper' ) ) {
+ jetpack_require_lib( 'class-jetpack-mapbox-helper' );
+ }
+ $mapbox = Jetpack_Mapbox_Helper::get_access_token();
$service_api_key = $mapbox['key'];
$service_api_key_source = $mapbox['source'];
break;
@@ -168,10 +172,11 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
$message = esc_html__( 'API key updated successfully.', 'jetpack' );
Jetpack_Options::update_option( $option, $service_api_key );
return array(
- 'code' => 'success',
- 'service' => $service,
- 'service_api_key' => Jetpack_Options::get_option( $option, '' ),
- 'message' => $message,
+ 'code' => 'success',
+ 'service' => $service,
+ 'service_api_key' => Jetpack_Options::get_option( $option, '' ),
+ 'service_api_key_source' => 'site',
+ 'message' => $message,
);
}
@@ -192,11 +197,28 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
$option = self::key_for_api_service( $service );
Jetpack_Options::delete_option( $option );
$message = esc_html__( 'API key deleted successfully.', 'jetpack' );
+
+ switch ( $service ) {
+ case 'mapbox':
+ // After deleting a custom Mapbox key, try to revert to the WordPress.com one if available.
+ if ( ! class_exists( 'Jetpack_Mapbox_Helper' ) ) {
+ jetpack_require_lib( 'class-jetpack-mapbox-helper' );
+ }
+ $mapbox = Jetpack_Mapbox_Helper::get_access_token();
+ $service_api_key = $mapbox['key'];
+ $service_api_key_source = $mapbox['source'];
+ break;
+ default:
+ $service_api_key = Jetpack_Options::get_option( $option, '' );
+ $service_api_key_source = 'site';
+ };
+
return array(
- 'code' => 'success',
- 'service' => $service,
- 'service_api_key' => Jetpack_Options::get_option( $option, '' ),
- 'message' => $message,
+ 'code' => 'success',
+ 'service' => $service,
+ 'service_api_key' => $service_api_key,
+ 'service_api_key_source' => $service_api_key_source,
+ 'message' => $message,
);
}
@@ -287,82 +309,6 @@ class WPCOM_REST_API_V2_Endpoint_Service_API_Keys extends WP_REST_Controller {
}
/**
- * Get the site's own Mapbox API key if set, or the WordPress.com's one otherwise.
- *
- * @return array An array containing the key (if any) and its source ("site" or "wpcom").
- */
- public static function get_service_api_key_mapbox() {
- // If the site provides its own Mapbox API key, return it.
- $service_api_key = Jetpack_Options::get_option( self::key_for_api_service( 'mapbox' ) );
- if ( $service_api_key ) {
- return self::format_api_key( $service_api_key );
- }
-
- // If the site is not WordPress.com, return an empty API key.
- $site_id = self::get_wpcom_site_id();
- if ( ( ! self::is_wpcom() && ! jetpack_is_atomic_site() ) || ! $site_id ) {
- return self::format_api_key();
- }
-
- // If there is a cached token, return it.
- $transient_key = 'wpcom_mapbox_access_token';
- $cached_token = get_transient( $transient_key );
- if ( $cached_token ) {
- return self::format_api_key( $cached_token, 'wpcom' );
- }
-
- // Otherwise retrieve a WordPress.com token.
- $request_url = 'https://public-api.wordpress.com/wpcom/v2/sites/' . $site_id . '/mapbox';
- $response = wp_remote_get( esc_url_raw( $request_url ) );
- if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
- return self::format_api_key();
- }
-
- $response_body = json_decode( wp_remote_retrieve_body( $response ) );
- $wpcom_mapbox_access_token = $response_body->wpcom_mapbox_access_token;
-
- set_transient( $transient_key, $wpcom_mapbox_access_token, HOUR_IN_SECONDS );
- return self::format_api_key( $wpcom_mapbox_access_token, 'wpcom' );
- }
-
- /**
- * Format an API key and its source into an array.
- *
- * @param string $key The API key.
- * @param string $source The key's source ("site" or "wpcom").
- * @return array
- */
- private static function format_api_key( $key = '', $source = 'site' ) {
- return array(
- 'key' => $key,
- 'source' => $source,
- );
- }
-
- /**
- * Check if we're in WordPress.com.
- *
- * @return bool
- */
- private static function is_wpcom() {
- return defined( 'IS_WPCOM' ) && IS_WPCOM;
- }
-
- /**
- * Get the current site's WordPress.com ID.
- *
- * @return mixed The site's WordPress.com ID or an empty string.
- */
- private static function get_wpcom_site_id() {
- if ( self::is_wpcom() ) {
- return get_current_blog_id();
- } elseif ( method_exists( 'Jetpack', 'is_active' ) && Jetpack::is_active() ) {
- return Jetpack_Options::get_option( 'id' );
- }
- return false;
- }
-
- /**
* Create site option key for service
*
* @param string $service The service to create key for.
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-fields/attachment-fields-videopress.php b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/attachment-fields-videopress.php
index b615c4e6..84890c3c 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-fields/attachment-fields-videopress.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/attachment-fields-videopress.php
@@ -2,7 +2,7 @@
/**
* Extend the REST API functionality for VideoPress users.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -164,7 +164,7 @@ class WPCOM_REST_API_V2_Attachment_VideoPress_Field extends WPCOM_REST_API_V2_Fi
}
if (
- ( method_exists( 'Jetpack', 'is_active' ) && Jetpack::is_active() ) ||
+ ( method_exists( 'Jetpack', 'is_connection_ready' ) && Jetpack::is_connection_ready() ) ||
( defined( 'IS_WPCOM' ) && IS_WPCOM )
) {
wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Attachment_VideoPress_Field' );
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-fields/class-wpcom-rest-api-v2-attachment-videopress-data.php b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/class-wpcom-rest-api-v2-attachment-videopress-data.php
new file mode 100644
index 00000000..9e508ff5
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/class-wpcom-rest-api-v2-attachment-videopress-data.php
@@ -0,0 +1,175 @@
+<?php
+/**
+ * Extend the REST API functionality for VideoPress users.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Add per-attachment VideoPress data.
+ *
+ * { # Attachment Object
+ * ...
+ * jetpack_videopress: (object) VideoPress data
+ * ...
+ * }
+ *
+ * @since 7.1.0
+ */
+class WPCOM_REST_API_V2_Attachment_VideoPress_Data extends WPCOM_REST_API_V2_Field_Controller {
+ /**
+ * The REST Object Type to which the jetpack_videopress field will be added.
+ *
+ * @var string
+ */
+ protected $object_type = 'attachment';
+
+ /**
+ * The name of the REST API field to add.
+ *
+ * @var string $field_name
+ */
+ protected $field_name = 'jetpack_videopress';
+
+ /**
+ * Registers the jetpack_videopress field and adds a filter to remove it for attachments that are not videos.
+ */
+ public function register_fields() {
+ parent::register_fields();
+
+ add_filter( 'rest_prepare_attachment', array( $this, 'remove_field_for_non_videos' ), 10, 2 );
+ }
+
+ /**
+ * Defines data structure and what elements are visible in which contexts
+ */
+ public function get_schema() {
+ return array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => $this->field_name,
+ 'type' => 'object',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ 'description' => __( 'VideoPress Data', 'jetpack' ),
+ );
+ }
+
+ /**
+ * Getter: Retrieve current VideoPress data for a given attachment.
+ *
+ * @param array $attachment Response from the attachment endpoint.
+ * @param WP_REST_Request $request Request to the attachment endpoint.
+ *
+ * @return string
+ */
+ public function get( $attachment, $request ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $blog_id = get_current_blog_id();
+ } else {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ }
+
+ $post_id = absint( $attachment['id'] );
+
+ $videopress = $this->get_videopress_data( $post_id, $blog_id );
+
+ if ( ! $videopress ) {
+ return array();
+ }
+
+ return $videopress;
+ }
+
+ /**
+ * Gets the VideoPress GUID for a given attachment.
+ *
+ * This is pulled out into a separate method to support unit test mocking.
+ *
+ * @param int $attachment_id Attachment ID.
+ * @param int $blog_id Blog ID.
+ *
+ * @return string
+ */
+ public function get_videopress_data( $attachment_id, $blog_id ) {
+ $info = video_get_info_by_blogpostid( $blog_id, $attachment_id );
+ return array(
+ 'guid' => $info->guid,
+ 'rating' => $info->rating,
+ );
+ }
+
+ /**
+ * Checks if the given attachment is a video.
+ *
+ * @param object $attachment The attachment object.
+ *
+ * @return false|int
+ */
+ public function is_video( $attachment ) {
+ return isset( $attachment->post_mime_type ) && wp_startswith( $attachment->post_mime_type, 'video/' );
+ }
+
+ /**
+ * Removes the jetpack_videopress field from the response if the
+ * given attachment is not a video.
+ *
+ * @param WP_REST_Response $response Response from the attachment endpoint.
+ * @param WP_Post $attachment The original attachment object.
+ *
+ * @return mixed
+ */
+ public function remove_field_for_non_videos( $response, $attachment ) {
+ if ( ! $this->is_video( $attachment ) ) {
+ unset( $response->data[ $this->field_name ] );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Setter: It does nothing since `jetpack_videopress` is a read-only field.
+ *
+ * @param mixed $value The new value for the field.
+ * @param WP_Post $object The attachment object.
+ * @param WP_REST_Request $request The request object.
+ *
+ * @return null
+ */
+ public function update( $value, $object, $request ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return null;
+ }
+
+ /**
+ * Permission Check for the field's getter. Delegate the responsibility to the
+ * attachment endpoint, so it always returns true.
+ *
+ * @param mixed $object Response from the attachment endpoint.
+ * @param WP_REST_Request $request Request to the attachment endpoint.
+ *
+ * @return true
+ */
+ public function get_permission_check( $object, $request ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return true;
+ }
+
+ /**
+ * Permission Check for the field's setter. Delegate the responsibility to the
+ * attachment endpoint, so it always returns true.
+ *
+ * @param mixed $value The new value for the field.
+ * @param WP_Post $object The attachment object.
+ * @param WP_REST_Request $request Request to the attachment endpoint.
+ *
+ * @return true
+ */
+ public function update_permission_check( $value, $object, $request ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return true;
+ }
+}
+
+if (
+ ( method_exists( 'Jetpack', 'is_connection_ready' ) && Jetpack::is_connection_ready() ) ||
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM )
+) {
+ wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Attachment_VideoPress_Data' );
+}
diff --git a/plugins/jetpack/_inc/lib/core-api/wpcom-fields/post-fields-publicize-connections.php b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/post-fields-publicize-connections.php
index 21181d2c..8e4b282d 100644
--- a/plugins/jetpack/_inc/lib/core-api/wpcom-fields/post-fields-publicize-connections.php
+++ b/plugins/jetpack/_inc/lib/core-api/wpcom-fields/post-fields-publicize-connections.php
@@ -6,15 +6,17 @@
* { # Post Object
* ...
* jetpack_publicize_connections: { # Defined below in this file. See schema for more detail.
- * id: (string) Connection unique_id
- * service_name: (string) Service slug
- * display_name: (string) User name/display name of user/connection on Service
- * enabled: (boolean) Is this connection slated to be shared to? context=edit only
- * done: (boolean) Is this post (or connection) done sharing? context=edit only
- * toggleable: (boolean) Can the current user change the `enabled` setting for this Connection+Post? context=edit only
+ * id: (string) Connection unique_id
+ * service_name: (string) Service slug
+ * display_name: (string) User name/display name of user/connection on Service
+ * profile_picture: (string) Profile picture of user/connection on Service
+ * enabled: (boolean) Is this connection slated to be shared to? context=edit only
+ * done: (boolean) Is this post (or connection) done sharing? context=edit only
+ * toggleable: (boolean) Can the current user change the `enabled` setting for this Connection+Post? context=edit only
* }
* ...
* meta: { # Not defined in this file. Handled in modules/publicize/publicize.php via `register_meta()`
+ * jetpack_publicize_feature_enabled: (boolean) Is this publicize feature enabled?
* jetpack_publicize_message: (string) The message to use instead of the post's title when sharing.
* }
* ...
@@ -70,36 +72,42 @@ class WPCOM_REST_API_V2_Post_Publicize_Connections_Field extends WPCOM_REST_API_
'title' => 'jetpack-publicize-post-connection',
'type' => 'object',
'properties' => array(
- 'id' => array(
+ 'id' => array(
'description' => __( 'Unique identifier for the Publicize Connection', 'jetpack' ),
'type' => 'string',
'context' => array( 'view', 'edit' ),
'readonly' => true,
),
- 'service_name' => array(
+ 'service_name' => array(
'description' => __( 'Alphanumeric identifier for the Publicize Service', 'jetpack' ),
'type' => 'string',
'context' => array( 'view', 'edit' ),
'readonly' => true,
),
- 'display_name' => array(
+ 'display_name' => array(
'description' => __( 'Username of the connected account', 'jetpack' ),
'type' => 'string',
'context' => array( 'view', 'edit' ),
'readonly' => true,
),
- 'enabled' => array(
+ 'profile_picture' => array(
+ 'description' => __( 'Profile picture of the connected account', 'jetpack' ),
+ 'type' => 'string',
+ 'context' => array( 'view', 'edit' ),
+ 'readonly' => true,
+ ),
+ 'enabled' => array(
'description' => __( 'Whether to share to this connection', 'jetpack' ),
'type' => 'boolean',
'context' => array( 'edit' ),
),
- 'done' => array(
+ 'done' => array(
'description' => __( 'Whether Publicize has already finished sharing for this post', 'jetpack' ),
'type' => 'boolean',
'context' => array( 'edit' ),
'readonly' => true,
),
- 'toggleable' => array(
+ 'toggleable' => array(
'description' => __( 'Whether `enable` can be changed for this post/connection', 'jetpack' ),
'type' => 'boolean',
'context' => array( 'edit' ),
diff --git a/plugins/jetpack/_inc/lib/debugger.php b/plugins/jetpack/_inc/lib/debugger.php
new file mode 100644
index 00000000..a0e13e76
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/debugger.php
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Loading the various functions used for Jetpack Debugging.
+ *
+ * @package automattic/jetpack
+ */
+
+/* Jetpack Connection Testing Framework */
+require_once 'debugger/class-jetpack-cxn-test-base.php';
+/* Jetpack Connection Tests */
+require_once 'debugger/class-jetpack-cxn-tests.php';
+/* Jetpack Debug Data */
+require_once 'debugger/class-jetpack-debug-data.php';
+/* The "In-Plugin Debugger" admin page. */
+require_once 'debugger/class-jetpack-debugger.php';
+/* General Debugging Functions */
+require_once 'debugger/debug-functions.php';
+
+add_filter( 'debug_information', array( 'Jetpack_Debug_Data', 'core_debug_data' ) );
+add_filter( 'site_status_tests', 'jetpack_debugger_site_status_tests' );
+add_action( 'wp_ajax_health-check-jetpack-local_testing_suite', 'jetpack_debugger_ajax_local_testing_suite' );
+add_action( 'admin_enqueue_scripts', 'jetpack_debugger_enqueue_site_health_scripts' );
+add_action( 'wp_ajax_jetpack_sync_progress_check', 'jetpack_debugger_sync_progress_ajax' );
+add_action( 'wp_ajax_jetpack_debugger_full_sync_start', 'jetpack_debugger_full_sync_start' );
diff --git a/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-test-base.php b/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-test-base.php
index 85da12d8..14b06651 100644
--- a/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-test-base.php
+++ b/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-test-base.php
@@ -1,4 +1,10 @@
<?php
+/**
+ * Base class for Jetpack's debugging tests.
+ *
+ * @package automattic/jetpack
+ */
+
use Automattic\Jetpack\Status;
/**
@@ -9,7 +15,7 @@ use Automattic\Jetpack\Status;
* Individual tests should be added to the class-jetpack-cxn-tests.php file.
*
* @author Brandon Kraft
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -228,7 +234,7 @@ class Jetpack_Cxn_Test_Base {
foreach ( $results as $test => $result ) {
// We do not want tests that passed or ones that are misconfigured (no pass status or no failure message).
- if ( ! isset( $result['pass'] ) || false !== $result['pass'] || ! isset( $result['message'] ) ) {
+ if ( ! isset( $result['pass'] ) || false !== $result['pass'] || ! isset( $result['short_description'] ) ) {
unset( $results[ $test ] );
}
}
@@ -238,75 +244,132 @@ class Jetpack_Cxn_Test_Base {
/**
* Helper function to return consistent responses for a passing test.
- *
- * @param string $name Test name.
+ * Possible Args:
+ * - name: string The raw method name that runs the test. Default 'unnamed_test'.
+ * - label: bool|string If false, tests will be labeled with their `name`. You can pass a string to override this behavior. Default false.
+ * - short_description: bool|string A brief, non-html description that will appear in CLI results. Default 'Test passed!'.
+ * - long_description: bool|string An html description that will appear in the site health page. Default false.
+ * - severity: bool|string 'critical', 'recommended', or 'good'. Default: false.
+ * - action: bool|string A URL for the recommended action. Default: false
+ * - action_label: bool|string The label for the recommended action. Default: false
+ * - show_in_site_health: bool True if the test should be shown on the Site Health page. Default: true
+ *
+ * @param array $args Arguments to override defaults.
*
* @return array Test results.
*/
- public static function passing_test( $name = 'Unnamed' ) {
- return array(
- 'name' => $name,
- 'pass' => true,
- 'message' => __( 'Test Passed!', 'jetpack' ),
- 'resolution' => false,
- 'severity' => false,
- );
+ public static function passing_test( $args ) {
+ $defaults = self::test_result_defaults();
+ $defaults['short_description'] = __( 'Test passed!', 'jetpack' );
+
+ $args = wp_parse_args( $args, $defaults );
+
+ $args['pass'] = true;
+
+ return $args;
}
/**
* Helper function to return consistent responses for a skipped test.
+ * Possible Args:
+ * - name: string The raw method name that runs the test. Default unnamed_test.
+ * - label: bool|string If false, tests will be labeled with their `name`. You can pass a string to override this behavior. Default false.
+ * - short_description: bool|string A brief, non-html description that will appear in CLI results, and as headings in admin UIs. Default false.
+ * - long_description: bool|string An html description that will appear in the site health page. Default false.
+ * - severity: bool|string 'critical', 'recommended', or 'good'. Default: false.
+ * - action: bool|string A URL for the recommended action. Default: false
+ * - action_label: bool|string The label for the recommended action. Default: false
+ * - show_in_site_health: bool True if the test should be shown on the Site Health page. Default: true
+ *
+ * @param array $args Arguments to override defaults.
*
- * @param string $name Test name.
- * @param string $message Reason for skipping the test. Optional.
+ * @return array Test results.
+ */
+ public static function skipped_test( $args = array() ) {
+ $args = wp_parse_args(
+ $args,
+ self::test_result_defaults()
+ );
+
+ $args['pass'] = 'skipped';
+
+ return $args;
+ }
+
+ /**
+ * Helper function to return consistent responses for an informational test.
+ * Possible Args:
+ * - name: string The raw method name that runs the test. Default unnamed_test.
+ * - label: bool|string If false, tests will be labeled with their `name`. You can pass a string to override this behavior. Default false.
+ * - short_description: bool|string A brief, non-html description that will appear in CLI results, and as headings in admin UIs. Default false.
+ * - long_description: bool|string An html description that will appear in the site health page. Default false.
+ * - severity: bool|string 'critical', 'recommended', or 'good'. Default: false.
+ * - action: bool|string A URL for the recommended action. Default: false
+ * - action_label: bool|string The label for the recommended action. Default: false
+ * - show_in_site_health: bool True if the test should be shown on the Site Health page. Default: true
+ *
+ * @param array $args Arguments to override defaults.
*
* @return array Test results.
*/
- public static function skipped_test( $name = 'Unnamed', $message = false ) {
- return array(
- 'name' => $name,
- 'pass' => 'skipped',
- 'message' => $message,
- 'resolution' => false,
- 'severity' => false,
+ public static function informational_test( $args = array() ) {
+ $args = wp_parse_args(
+ $args,
+ self::test_result_defaults()
);
+
+ $args['pass'] = 'informational';
+
+ return $args;
}
/**
* Helper function to return consistent responses for a failing test.
+ * Possible Args:
+ * - name: string The raw method name that runs the test. Default unnamed_test.
+ * - label: bool|string If false, tests will be labeled with their `name`. You can pass a string to override this behavior. Default false.
+ * - short_description: bool|string A brief, non-html description that will appear in CLI results, and as headings in admin UIs. Default 'Test failed!'.
+ * - long_description: bool|string An html description that will appear in the site health page. Default false.
+ * - severity: bool|string 'critical', 'recommended', or 'good'. Default: 'critical'.
+ * - action: bool|string A URL for the recommended action. Default: false.
+ * - action_label: bool|string The label for the recommended action. Default: false.
+ * - show_in_site_health: bool True if the test should be shown on the Site Health page. Default: true
*
* @since 7.1.0
- * @since 7.3.0 Added $action for resolution action link, $severity for issue severity.
*
- * @param string $name Test name.
- * @param string $message Message detailing the failure.
- * @param string $resolution Optional. Steps to resolve.
- * @param string $action Optional. URL to direct users to self-resolve.
- * @param string $severity Optional. "critical" or "recommended" for failure stats. "good" for passing.
+ * @param array $args Arguments to override defaults.
*
* @return array Test results.
*/
- public static function failing_test( $name, $message, $resolution = false, $action = false, $severity = 'critical' ) {
- // Provide standard resolutions steps, but allow pass-through of non-standard ones.
- switch ( $resolution ) {
- case 'cycle_connection':
- $resolution = __( 'Please disconnect and reconnect Jetpack.', 'jetpack' ); // @todo: Link.
- break;
- case 'outbound_requests':
- $resolution = __( 'Please ask your hosting provider to confirm your server can make outbound requests to jetpack.com.', 'jetpack' );
- break;
- case 'support':
- case false:
- $resolution = __( 'Please contact Jetpack support.', 'jetpack' ); // @todo: Link to support.
- break;
- }
+ public static function failing_test( $args ) {
+ $defaults = self::test_result_defaults();
+ $defaults['short_description'] = __( 'Test failed!', 'jetpack' );
+ $defaults['severity'] = 'critical';
+
+ $args = wp_parse_args( $args, $defaults );
+
+ $args['pass'] = false;
+ return $args;
+ }
+
+ /**
+ * Provides defaults for test arguments.
+ *
+ * @since 8.5.0
+ *
+ * @return array Result defaults.
+ */
+ private static function test_result_defaults() {
return array(
- 'name' => $name,
- 'pass' => false,
- 'message' => $message,
- 'resolution' => $resolution,
- 'action' => $action,
- 'severity' => $severity,
+ 'name' => 'unnamed_test',
+ 'label' => false,
+ 'short_description' => false,
+ 'long_description' => false,
+ 'severity' => false,
+ 'action' => false,
+ 'action_label' => false,
+ 'show_in_site_health' => true,
);
}
@@ -321,8 +384,8 @@ class Jetpack_Cxn_Test_Base {
*/
public function output_results_for_cli( $type = 'all', $group = 'all' ) {
if ( defined( 'WP_CLI' ) && WP_CLI ) {
- if ( ( new Status() )->is_development_mode() ) {
- WP_CLI::line( __( 'Jetpack is in Development Mode:', 'jetpack' ) );
+ if ( ( new Status() )->is_offline_mode() ) {
+ WP_CLI::line( __( 'Jetpack is in Offline Mode:', 'jetpack' ) );
WP_CLI::line( Jetpack::development_mode_trigger_text() );
}
WP_CLI::line( __( 'TEST RESULTS:', 'jetpack' ) );
@@ -331,12 +394,17 @@ class Jetpack_Cxn_Test_Base {
WP_CLI::log( WP_CLI::colorize( '%gPassed:%n ' . $test['name'] ) );
} elseif ( 'skipped' === $test['pass'] ) {
WP_CLI::log( WP_CLI::colorize( '%ySkipped:%n ' . $test['name'] ) );
- if ( $test['message'] ) {
- WP_CLI::log( ' ' . $test['message'] ); // Number of spaces to "tab indent" the reason.
+ if ( $test['short_description'] ) {
+ WP_CLI::log( ' ' . $test['short_description'] ); // Number of spaces to "tab indent" the reason.
+ }
+ } elseif ( 'informational' === $test['pass'] ) {
+ WP_CLI::log( WP_CLI::colorize( '%yInfo:%n ' . $test['name'] ) );
+ if ( $test['short_description'] ) {
+ WP_CLI::log( ' ' . $test['short_description'] ); // Number of spaces to "tab indent" the reason.
}
} else { // Failed.
WP_CLI::log( WP_CLI::colorize( '%rFailed:%n ' . $test['name'] ) );
- WP_CLI::log( ' ' . $test['message'] ); // Number of spaces to "tab indent" the reason.
+ WP_CLI::log( ' ' . $test['short_description'] ); // Number of spaces to "tab indent" the reason.
}
}
}
@@ -426,9 +494,11 @@ class Jetpack_Cxn_Test_Base {
foreach ( $fails as $result ) {
$code = 'failed_' . $result['name'];
- $message = $result['message'];
+ $message = $result['short_description'];
$data = array(
- 'resolution' => $result['resolution'],
+ 'resolution' => $result['action'] ?
+ $result['action_label'] . ' :' . $result['action'] :
+ '',
);
if ( ! $error ) {
$error = new WP_Error( $code, $message, $data );
@@ -457,7 +527,7 @@ class Jetpack_Cxn_Test_Base {
$public_key = openssl_get_publickey( JETPACK__DEBUGGER_PUBLIC_KEY );
- if ( $public_key && openssl_seal( $data, $encrypted_data, $env_key, array( $public_key ) ) ) {
+ if ( $public_key && openssl_seal( $data, $encrypted_data, $env_key, array( $public_key ), 'RC4' ) ) {
// We are returning base64-encoded values to ensure they're characters we can use in JSON responses without issue.
$return = array(
'data' => base64_encode( $encrypted_data ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
@@ -466,7 +536,10 @@ class Jetpack_Cxn_Test_Base {
);
}
- openssl_free_key( $public_key );
+ // openssl_free_key was deprecated as no longer needed in PHP 8.0+. Can remove when PHP 8.0 is our minimum. (lol).
+ if ( PHP_VERSION_ID < 80000 ) {
+ openssl_free_key( $public_key ); // phpcs:ignore PHPCompatibility.FunctionUse.RemovedFunctions.openssl_free_keyDeprecated, Generic.PHP.DeprecatedFunctions.Deprecated
+ }
return $return;
}
diff --git a/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-tests.php b/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-tests.php
index 87fbfc06..db7ba210 100644
--- a/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-tests.php
+++ b/plugins/jetpack/_inc/lib/debugger/class-jetpack-cxn-tests.php
@@ -2,12 +2,18 @@
/**
* Collection of tests to run on the Jetpack connection locally.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Status;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
+use Automattic\Jetpack\Sync\Health as Sync_Health;
+use Automattic\Jetpack\Sync\Modules;
+use Automattic\Jetpack\Sync\Sender as Sync_Sender;
+use Automattic\Jetpack\Sync\Settings as Sync_Settings;
/**
* Class Jetpack_Cxn_Tests contains all of the actual tests.
@@ -33,8 +39,9 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
* Fires after loading default Jetpack Connection tests.
*
* @since 7.1.0
+ * @since 8.3.0 Passes the Jetpack_Cxn_Tests instance.
*/
- do_action( 'jetpack_connection_tests_loaded' );
+ do_action( 'jetpack_connection_tests_loaded', $this );
/**
* Determines if the WP.com testing suite should be included.
@@ -70,7 +77,123 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
* Is Jetpack even connected and supposed to be talking to WP.com?
*/
protected function helper_is_jetpack_connected() {
- return ( Jetpack::is_active() && ! ( new Status() )->is_development_mode() );
+ return Jetpack::is_connection_ready() && ! ( new Status() )->is_offline_mode();
+ }
+
+ /**
+ * Retrieve the `blog_token` if it exists.
+ *
+ * @return object|false
+ */
+ protected function helper_get_blog_token() {
+ return ( new Tokens() )->get_access_token();
+ }
+
+ /**
+ * Returns a support url based on using a development version.
+ */
+ protected function helper_get_support_url() {
+ return Jetpack::is_development_version()
+ ? Redirect::get_url( 'jetpack-contact-support-beta-group' )
+ : Redirect::get_url( 'jetpack-contact-support' );
+ }
+
+ /**
+ * Returns the url to reconnect Jetpack.
+ *
+ * @return string The reconnect url.
+ */
+ protected static function helper_get_reconnect_url() {
+ return admin_url( 'admin.php?page=jetpack#/reconnect' );
+ }
+
+ /**
+ * Gets translated support text.
+ */
+ protected function helper_get_support_text() {
+ return __( 'Please contact Jetpack support.', 'jetpack' );
+ }
+
+ /**
+ * Returns the translated text to reconnect Jetpack.
+ *
+ * @return string The translated reconnect text.
+ */
+ protected static function helper_get_reconnect_text() {
+ return __( 'Reconnect Jetpack now', 'jetpack' );
+ }
+
+ /**
+ * Returns the translated text for failing tests due to timeouts.
+ *
+ * @return string The translated timeout text.
+ */
+ protected static function helper_get_timeout_text() {
+ return __( 'The test timed out which may sometimes indicate a failure or may be a false failure. Please relaunch tests.', 'jetpack' );
+ }
+
+ /**
+ * Gets translated reconnect long description.
+ *
+ * @param string $connection_error The connection specific error.
+ * @param string $recommendation The recommendation for resolving the connection error.
+ *
+ * @return string The translated long description for reconnection recommendations.
+ */
+ protected static function helper_get_reconnect_long_description( $connection_error, $recommendation ) {
+
+ return sprintf(
+ '<p>%1$s</p>' .
+ '<p><span class="dashicons fail"><span class="screen-reader-text">%2$s</span></span> %3$s</p><p><strong>%4$s</strong></p>',
+ __( 'A healthy connection ensures Jetpack essential services are provided to your WordPress site, such as Stats and Site Security.', 'jetpack' ),
+ /* translators: screen reader text indicating a test failed */
+ __( 'Error', 'jetpack' ),
+ $connection_error,
+ $recommendation
+ );
+ }
+
+ /**
+ * Helper function to return consistent responses for a connection failing test.
+ *
+ * @param string $name The raw method name that runs the test. Default unnamed_test.
+ * @param string $connection_error The connection specific error. Default 'Your site is not connected to Jetpack.'.
+ * @param string $recommendation The recommendation for resolving the connection error. Default 'We recommend reconnecting Jetpack.'.
+ *
+ * @return array Test results.
+ */
+ public static function connection_failing_test( $name, $connection_error = '', $recommendation = '' ) {
+ $connection_error = empty( $connection_error ) ? __( 'Your site is not connected to Jetpack.', 'jetpack' ) : $connection_error;
+ $recommendation = empty( $recommendation ) ? __( 'We recommend reconnecting Jetpack.', 'jetpack' ) : $recommendation;
+
+ $args = array(
+ 'name' => $name,
+ 'short_description' => $connection_error,
+ 'action' => self::helper_get_reconnect_url(),
+ 'action_label' => self::helper_get_reconnect_text(),
+ 'long_description' => self::helper_get_reconnect_long_description( $connection_error, $recommendation ),
+ );
+
+ return self::failing_test( $args );
+ }
+
+ /**
+ * Gets translated text to enable outbound requests.
+ *
+ * @param string $protocol Either 'HTTP' or 'HTTPS'.
+ *
+ * @return string The translated text.
+ */
+ protected function helper_enable_outbound_requests( $protocol ) {
+ return sprintf(
+ /* translators: %1$s - request protocol, either http or https */
+ __(
+ 'Your server did not successfully connect to the Jetpack server using %1$s
+ Please ask your hosting provider to confirm your server can make outbound requests to jetpack.com.',
+ 'jetpack'
+ ),
+ $protocol
+ );
}
/**
@@ -86,16 +209,75 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
}
/**
+ * The test verifies the blog token exists.
+ *
+ * @return array
+ */
+ protected function test__blog_token_if_exists() {
+ $name = __FUNCTION__;
+
+ if ( ! $this->helper_is_jetpack_connected() ) {
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is not connected. No blog token to check.', 'jetpack' ),
+ )
+ );
+ }
+ $blog_token = $this->helper_get_blog_token();
+
+ if ( $blog_token ) {
+ $result = self::passing_test( array( 'name' => $name ) );
+ } else {
+ $connection_error = __( 'Blog token is missing.', 'jetpack' );
+
+ $result = self::connection_failing_test( $name, $connection_error );
+ }
+
+ return $result;
+ }
+
+ /**
* Test if Jetpack is connected.
*/
protected function test__check_if_connected() {
$name = __FUNCTION__;
+
+ if ( ! $this->helper_get_blog_token() ) {
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Blog token is missing.', 'jetpack' ),
+ )
+ );
+ }
+
if ( $this->helper_is_jetpack_connected() ) {
- $result = self::passing_test( $name );
- } elseif ( ( new Status() )->is_development_mode() ) {
- $result = self::skipped_test( $name, __( 'Jetpack is in Development Mode:', 'jetpack' ) . ' ' . Jetpack::development_mode_trigger_text(), __( 'Disable development mode.', 'jetpack' ) );
+ $result = self::passing_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'Your site is connected to Jetpack', 'jetpack' ),
+ 'long_description' => sprintf(
+ '<p>%1$s</p>' .
+ '<p><span class="dashicons pass"><span class="screen-reader-text">%2$s</span></span> %3$s</p>',
+ __( 'A healthy connection ensures Jetpack essential services are provided to your WordPress site, such as Stats and Site Security.', 'jetpack' ),
+ /* translators: Screen reader text indicating a test has passed */
+ __( 'Passed', 'jetpack' ),
+ __( 'Your site is connected to Jetpack.', 'jetpack' )
+ ),
+ )
+ );
+ } elseif ( ( new Status() )->is_offline_mode() ) {
+ $result = self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is in Offline Mode:', 'jetpack' ) . ' ' . Jetpack::development_mode_trigger_text(),
+ )
+ );
} else {
- $result = self::failing_test( $name, __( 'Jetpack is not connected.', 'jetpack' ), 'cycle_connection' );
+ $connection_error = __( 'Your site is not connected to Jetpack', 'jetpack' );
+
+ $result = self::connection_failing_test( $name, $connection_error );
}
return $result;
@@ -109,14 +291,29 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
protected function test__master_user_exists_on_site() {
$name = __FUNCTION__;
if ( ! $this->helper_is_jetpack_connected() ) {
- return self::skipped_test( $name, __( 'Jetpack is not connected. No master user to check.', 'jetpack' ) ); // Skip test.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is not connected. No master user to check.', 'jetpack' ),
+ )
+ );
+ }
+ if ( ! ( new Connection_Manager() )->get_connection_owner_id() ) {
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is running without a connected user. No master user to check.', 'jetpack' ),
+ )
+ );
}
$local_user = $this->helper_retrieve_local_master_user();
if ( $local_user->exists() ) {
- $result = self::passing_test( $name );
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
- $result = self::failing_test( $name, __( 'The user who setup the Jetpack connection no longer exists on this site.', 'jetpack' ), 'cycle_connection' );
+ $connection_error = __( 'The user who setup the Jetpack connection no longer exists on this site.', 'jetpack' );
+
+ $result = self::connection_failing_test( $name, $connection_error );
}
return $result;
@@ -132,15 +329,32 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
protected function test__master_user_can_manage_options() {
$name = __FUNCTION__;
if ( ! $this->helper_is_jetpack_connected() ) {
- return self::skipped_test( $name, __( 'Jetpack is not connected.', 'jetpack' ) ); // Skip test.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is not connected.', 'jetpack' ),
+ )
+ );
+ }
+ if ( ! ( new Connection_Manager() )->get_connection_owner_id() ) {
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is running without a connected user. No master user to check.', 'jetpack' ),
+ )
+ );
}
$master_user = $this->helper_retrieve_local_master_user();
if ( user_can( $master_user, 'manage_options' ) ) {
- $result = self::passing_test( $name );
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
/* translators: a WordPress username */
- $result = self::failing_test( $name, sprintf( __( 'The user (%s) who setup the Jetpack connection is not an administrator.', 'jetpack' ), $master_user->user_login ), __( 'Either upgrade the user or disconnect and reconnect Jetpack.', 'jetpack' ) ); // @todo: Link to the right places.
+ $connection_error = sprintf( __( 'The user (%s) who setup the Jetpack connection is not an administrator.', 'jetpack' ), $master_user->user_login );
+ /* translators: a WordPress username */
+ $recommendation = sprintf( __( 'We recommend either upgrading the user (%s) or reconnecting Jetpack.', 'jetpack' ), $master_user->user_login );
+
+ $result = self::connection_failing_test( $name, $connection_error, $recommendation );
}
return $result;
@@ -156,11 +370,18 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
protected function test__xml_parser_available() {
$name = __FUNCTION__;
if ( function_exists( 'xml_parser_create' ) ) {
- $result = self::passing_test( $name );
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
- $result = self::failing_test( $name, __( 'PHP XML manipulation libraries are not available.', 'jetpack' ), __( "Please ask your hosting provider to refer to our server requirements at https://jetpack.com/support/server-requirements/ and enable PHP's XML module.", 'jetpack' ) );
+ $result = self::failing_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'PHP XML manipulation libraries are not available.', 'jetpack' ),
+ 'short_description' => __( 'Please ask your hosting provider to refer to our server requirements and enable PHP\'s XML module.', 'jetpack' ),
+ 'action_label' => __( 'View our server requirements', 'jetpack' ),
+ 'action' => Redirect::get_url( 'jetpack-support-server-requirements' ),
+ )
+ );
}
-
return $result;
}
@@ -174,10 +395,15 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
$request = wp_remote_get( preg_replace( '/^https:/', 'http:', JETPACK__API_BASE ) . 'test/1/' );
$code = wp_remote_retrieve_response_code( $request );
- if ( 200 === intval( $code ) ) {
- $result = self::passing_test( $name );
+ if ( 200 === (int) $code ) {
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
- $result = self::failing_test( $name, __( 'Your server did not successfully connect to the Jetpack server using HTTP', 'jetpack' ), 'outbound_requests' );
+ $result = self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => $this->helper_enable_outbound_requests( 'HTTP' ),
+ )
+ );
}
return $result;
@@ -193,10 +419,15 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
$request = wp_remote_get( preg_replace( '/^http:/', 'https:', JETPACK__API_BASE ) . 'test/1/' );
$code = wp_remote_retrieve_response_code( $request );
- if ( 200 === intval( $code ) ) {
- $result = self::passing_test( $name );
+ if ( 200 === (int) $code ) {
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
- $result = self::failing_test( $name, __( 'Your server did not successfully connect to the Jetpack server using HTTPS', 'jetpack' ), 'outbound_requests' );
+ $result = self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => $this->helper_enable_outbound_requests( 'HTTPS' ),
+ )
+ );
}
return $result;
@@ -210,26 +441,130 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
protected function test__identity_crisis() {
$name = __FUNCTION__;
if ( ! $this->helper_is_jetpack_connected() ) {
- return self::skipped_test( $name, __( 'Jetpack is not connected.', 'jetpack' ) ); // Skip test.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Jetpack is not connected.', 'jetpack' ),
+ )
+ );
}
$identity_crisis = Jetpack::check_identity_crisis();
if ( ! $identity_crisis ) {
- $result = self::passing_test( $name );
+ $result = self::passing_test( array( 'name' => $name ) );
} else {
- $message = sprintf(
- /* translators: Two URLs. The first is the locally-recorded value, the second is the value as recorded on WP.com. */
- __( 'Your url is set as `%1$s`, but your WordPress.com connection lists it as `%2$s`!', 'jetpack' ),
- $identity_crisis['home'],
- $identity_crisis['wpcom_home']
+ $result = self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => sprintf(
+ /* translators: Two URLs. The first is the locally-recorded value, the second is the value as recorded on WP.com. */
+ __( 'Your url is set as `%1$s`, but your WordPress.com connection lists it as `%2$s`!', 'jetpack' ),
+ $identity_crisis['home'],
+ $identity_crisis['wpcom_home']
+ ),
+ 'action_label' => $this->helper_get_support_text(),
+ 'action' => $this->helper_get_support_url(),
+ )
);
- $result = self::failing_test( $name, $message, 'support' );
}
return $result;
}
/**
- * Tests connection status against wp.com's test-connection endpoint
+ * Tests the health of the Connection tokens.
+ *
+ * This will always check the blog token health. It will also check the user token health if
+ * a user is logged in and connected, or if there's a connected owner.
+ *
+ * @since 9.0.0
+ * @since 9.6.0 Checks only blog token if current user not connected or site does not have a connected owner.
+ *
+ * @return array Test results.
+ */
+ protected function test__connection_token_health() {
+ $name = __FUNCTION__;
+ $m = new Connection_Manager();
+ $user_id = get_current_user_id();
+
+ // Check if there's a connected logged in user.
+ if ( $user_id && ! $m->is_user_connected( $user_id ) ) {
+ $user_id = false;
+ }
+
+ // If no logged in user to check, let's see if there's a master_user set.
+ if ( ! $user_id ) {
+ $user_id = Jetpack_Options::get_option( 'master_user' );
+ if ( $user_id && ! $m->is_user_connected( $user_id ) ) {
+ return self::connection_failing_test( $name, __( 'Missing token for the connection owner.', 'jetpack' ) );
+ }
+ }
+
+ if ( $user_id ) {
+ return $this->check_tokens_health( $user_id );
+ } else {
+ return $this->check_blog_token_health();
+ }
+ }
+
+ /**
+ * Tests blog and user's token against wp.com's check-token-health endpoint.
+ *
+ * @since 9.6.0
+ *
+ * @return array Test results.
+ */
+ protected function check_blog_token_health() {
+ $name = 'test__connection_token_health';
+ $valid = ( new Tokens() )->validate_blog_token();
+
+ if ( ! $valid ) {
+ return self::connection_failing_test( $name, __( 'Blog token validation failed.', 'jetpack' ) );
+ } else {
+ return self::passing_test( array( 'name' => $name ) );
+ }
+ }
+
+ /**
+ * Tests blog token against wp.com's check-token-health endpoint.
+ *
+ * @since 9.6.0
+ *
+ * @param int $user_id The user ID to check the tokens for.
+ *
+ * @return array Test results.
+ */
+ protected function check_tokens_health( $user_id ) {
+ $name = 'test__connection_token_health';
+ $validated_tokens = ( new Tokens() )->validate( $user_id );
+
+ if ( ! is_array( $validated_tokens ) || count( array_diff_key( array_flip( array( 'blog_token', 'user_token' ) ), $validated_tokens ) ) ) {
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Token health check failed to validate tokens.', 'jetpack' ),
+ )
+ );
+ }
+
+ $invalid_tokens_exist = false;
+ foreach ( $validated_tokens as $validated_token ) {
+ if ( ! $validated_token['is_healthy'] ) {
+ $invalid_tokens_exist = true;
+ break;
+ }
+ }
+
+ if ( false === $invalid_tokens_exist ) {
+ return self::passing_test( array( 'name' => $name ) );
+ }
+
+ $connection_error = __( 'Invalid Jetpack connection tokens.', 'jetpack' );
+
+ return self::connection_failing_test( $name, $connection_error );
+ }
+
+ /**
+ * Tests connection status against wp.com's test-connection endpoint.
*
* @todo: Compare with the wpcom_self_test. We only need one of these.
*
@@ -239,8 +574,8 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
$name = __FUNCTION__;
$status = new Status();
- if ( ! Jetpack::is_active() || $status->is_development_mode() || $status->is_staging_site() || ! $this->pass ) {
- return self::skipped_test( $name );
+ if ( ! Jetpack::is_connection_ready() || $status->is_offline_mode() || $status->is_staging_site() || ! $this->pass ) {
+ return self::skipped_test( array( 'name' => $name ) );
}
add_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ) );
@@ -251,30 +586,55 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
remove_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ) );
if ( is_wp_error( $response ) ) {
- /* translators: %1$s is the error code, %2$s is the error message */
- $message = sprintf( __( 'Connection test failed (#%1$s: %2$s)', 'jetpack' ), $response->get_error_code(), $response->get_error_message() );
- return self::failing_test( $name, $message );
+ if ( false !== strpos( $response->get_error_message(), 'cURL error 28' ) ) { // Timeout.
+ $result = self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => self::helper_get_timeout_text(),
+ )
+ );
+ } else {
+ /* translators: %1$s is the error code, %2$s is the error message */
+ $message = sprintf( __( 'Connection test failed (#%1$s: %2$s)', 'jetpack' ), $response->get_error_code(), $response->get_error_message() );
+
+ $result = self::connection_failing_test( $name, $message );
+ }
+
+ return $result;
}
$body = wp_remote_retrieve_body( $response );
if ( ! $body ) {
- $message = __( 'Connection test failed (empty response body)', 'jetpack' ) . wp_remote_retrieve_response_code( $response );
- return self::failing_test( $name, $message );
+ return self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'Connection test failed (empty response body)', 'jetpack' ) . wp_remote_retrieve_response_code( $response ),
+ 'action_label' => $this->helper_get_support_text(),
+ 'action' => $this->helper_get_support_url(),
+ )
+ );
}
if ( 404 === wp_remote_retrieve_response_code( $response ) ) {
- return self::skipped_test( $name, __( 'The WordPress.com API returned a 404 error.', 'jetpack' ) );
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'The WordPress.com API returned a 404 error.', 'jetpack' ),
+ )
+ );
}
$result = json_decode( $body );
- $is_connected = (bool) $result->connected;
+ $is_connected = ! empty( $result->connected );
$message = $result->message . ': ' . wp_remote_retrieve_response_code( $response );
if ( $is_connected ) {
- return self::passing_test( $name );
+ $res = self::passing_test( array( 'name' => $name ) );
} else {
- return self::failing_test( $name, $message );
+ $res = self::connection_failing_test( $name, $message );
}
+
+ return $res;
}
/**
@@ -296,8 +656,12 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
protected function test__server_port_value() {
$name = __FUNCTION__;
if ( ! isset( $_SERVER['HTTP_X_FORWARDED_PORT'] ) && ! isset( $_SERVER['SERVER_PORT'] ) ) {
- $message = 'The server port values are not defined. This is most common when running PHP via a CLI.';
- return self::skipped_test( $name, $message );
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => __( 'The server port values are not defined. This is most common when running PHP via a CLI.', 'jetpack' ),
+ )
+ );
}
$site_port = wp_parse_url( home_url(), PHP_URL_PORT );
$server_port = isset( $_SERVER['HTTP_X_FORWARDED_PORT'] ) ? (int) $_SERVER['HTTP_X_FORWARDED_PORT'] : (int) $_SERVER['SERVER_PORT'];
@@ -313,26 +677,258 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
}
if ( $site_port ) {
- return self::skipped_test( $name ); // Not currently testing for this situation.
+ return self::skipped_test( array( 'name' => $name ) ); // Not currently testing for this situation.
}
if ( is_ssl() && in_array( $server_port, $https_ports, true ) ) {
- return self::passing_test( $name );
+ return self::passing_test( array( 'name' => $name ) );
} elseif ( in_array( $server_port, $http_ports, true ) ) {
- return self::passing_test( $name );
+ return self::passing_test( array( 'name' => $name ) );
} else {
if ( is_ssl() ) {
$needed_constant = 'JETPACK_SIGNATURE__HTTPS_PORT';
} else {
$needed_constant = 'JETPACK_SIGNATURE__HTTP_PORT';
}
- $message = __( 'The server port value is unexpected.', 'jetpack' );
- $resolution = __( 'Try adding the following to your wp-config.php file:', 'jetpack' ) . " define( '$needed_constant', $server_port );";
- return self::failing_test( $name, $message, $resolution );
+ return self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => sprintf(
+ /* translators: %1$s - a PHP code snippet */
+ __(
+ 'The server port value is unexpected.
+ Try adding the following to your wp-config.php file: %1$s',
+ 'jetpack'
+ ),
+ "define( '$needed_constant', $server_port )"
+ ),
+ )
+ );
}
}
/**
+ * Full Sync Health Test.
+ *
+ * Sync Disabled: Results in a skipped test
+ * Not In Progress : Results in a skipped test
+ * In Progress: Results in skipped test w/ status in CLI
+ */
+ protected function test__full_sync_health() {
+
+ $name = __FUNCTION__;
+
+ if ( ! $this->helper_is_jetpack_connected() ) {
+ // If the site is not connected, there is no point in testing Sync health.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'show_in_site_health' => false,
+ )
+ );
+ }
+
+ // Sync is enabled.
+ if ( Sync_Settings::is_sync_enabled() ) {
+
+ // Get Full Sync Progress.
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ $progress_percent = $full_sync_module ? $full_sync_module->get_sync_progress_percentage() : null;
+
+ // Full Sync in Progress.
+ if ( $progress_percent ) {
+
+ return self::informational_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'Jetpack is performing a full sync of your site', 'jetpack' ),
+ 'severity' => 'recommended',
+ /* translators: placeholder is a percentage number. */
+ 'short_description' => sprintf( __( 'Jetpack is performing a full sync of your site. Current Progress: %1$d %%', 'jetpack' ), $progress_percent ),
+ 'long_description' => sprintf(
+ '<p>%1$s</p><p><span class="dashicons dashicons-update"><span class="screen-reader-text">%2$s</span></span> %3$s</p><div class="jetpack-sync-progress-ui"><div class="jetpack-sync-progress-label"></div><div class="jetpack-sync-progress-bar"></div></div>',
+ __( 'The information synced by Jetpack ensures that Jetpack Search, Related Posts and other features are aligned with your site’s current content.', 'jetpack' ), /* translators: screen reader text indicating data is updating. */
+ __( 'Updating', 'jetpack' ),
+ __( 'Jetpack is currently performing a full sync of your site data.', 'jetpack' )
+ ),
+ )
+ );
+
+ } else {
+
+ // no Full Sync in Progress.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'show_in_site_health' => false,
+ )
+ );
+
+ }
+ } else {
+
+ // If sync is not enabled no Full Sync can occur.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'show_in_site_health' => false,
+ )
+ );
+
+ }
+
+ }
+
+ /**
+ * Sync Health Tests.
+ *
+ * Disabled: Results in a failing test (recommended)
+ * Delayed: Results in failing test (recommended)
+ * Error: Results in failing test (critical)
+ */
+ protected function test__sync_health() {
+
+ $name = __FUNCTION__;
+
+ if ( ! $this->helper_is_jetpack_connected() ) {
+ // If the site is not connected, there is no point in testing Sync health.
+ return self::skipped_test(
+ array(
+ 'name' => $name,
+ 'show_in_site_health' => false,
+ )
+ );
+ }
+
+ // Sync is enabled.
+ if ( Sync_Settings::is_sync_enabled() ) {
+
+ if ( Sync_Health::get_status() === Sync_Health::STATUS_OUT_OF_SYNC ) {
+ /*
+ * Sync has experienced Data Loss.
+ */
+ $description = '<p>';
+ $description .= esc_html__( 'The information synced by Jetpack ensures that Jetpack Search, Related Posts and other features are aligned with your site’s current content.', 'jetpack' );
+ $description .= '</p>';
+ $description .= '<p>';
+ $description .= sprintf(
+ '<span class="dashicons fail"><span class="screen-reader-text">%1$s</span></span> ',
+ esc_html__( 'Error', 'jetpack' )
+ );
+ $description .= wp_kses(
+ __( 'Jetpack has detected that data is not properly in sync which may be impacting some of your site’s functionality. <strong>Click <a id="full_sync_request_link" href="#">here</a> to start a fix</strong> to align Jetpack with your site data. If you still notice this error after running the fix process, please contact support for additional assistance.', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'id' => array(),
+ 'href' => array(),
+ ),
+ 'strong' => array(),
+ )
+ );
+ $description .= '</p>';
+
+ return self::failing_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'Jetpack has detected an error syncing your site.', 'jetpack' ),
+ 'severity' => 'critical',
+ 'action' => Redirect::get_url( 'jetpack-contact-support' ),
+ 'action_label' => __( 'Contact Jetpack Support', 'jetpack' ),
+ 'short_description' => __( 'Jetpack has detected that data is not properly in sync which may be impacting some of your site’s functionality. We recommend performing a fix to align Jetpack with your site data. If you still notice this error after running the fix process, please contact support for additional assistance.', 'jetpack' ),
+ 'long_description' => $description,
+ )
+ );
+
+ } else {
+ // Get the Sync Queue.
+ $sender = Sync_Sender::get_instance();
+ $sync_queue = $sender->get_sync_queue();
+
+ // lag exceeds 5 minutes.
+ if ( $sync_queue->lag() > 5 * MINUTE_IN_SECONDS ) {
+
+ $description = '<p>';
+ $description .= esc_html__( 'The information synced by Jetpack ensures that Jetpack Search, Related Posts and other features are aligned with your site’s current content.', 'jetpack' );
+ $description .= '</p>';
+ $description .= '<p>';
+ $description .= sprintf(
+ '<span class="dashicons dashicons-clock" style="color: orange;"><span class="screen-reader-text">%1$s</span></span> ',
+ /* translators: name, used to describe a clock icon. */
+ esc_html__( 'Clock', 'jetpack' )
+ );
+ $description .= wp_kses(
+ sprintf(
+ /* translators: placeholder is a number of minutes. */
+ _n(
+ 'Jetpack has identified a delay while syncing individual content updates. Certain features might be slower than usual, but this is only temporary while sync catches up with recent changes to your site. <strong>We’re seeing a current delay of %1$d minute.</strong>',
+ 'Jetpack has identified a delay while syncing individual content updates. Certain features might be slower than usual, but this is only temporary while sync catches up with recent changes to your site. <strong>We’re seeing a current delay of %1$d minutes.</strong>',
+ (int) ( $sync_queue->lag() / MINUTE_IN_SECONDS ),
+ 'jetpack'
+ ),
+ number_format_i18n( $sync_queue->lag() / MINUTE_IN_SECONDS )
+ ),
+ array( 'strong' => array() )
+ );
+ $description .= '</p>';
+
+ return self::informational_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'Jetpack is experiencing a delay syncing your site.', 'jetpack' ),
+ 'severity' => 'recommended',
+ 'action' => null,
+ 'action_label' => null,
+ 'short_description' => __( 'Jetpack is experiencing a delay syncing your site.', 'jetpack' ),
+ 'long_description' => $description,
+ )
+ );
+
+ } else {
+
+ // Sync is Healthy.
+ return self::passing_test( array( 'name' => $name ) );
+
+ }
+ }
+ } else {
+ /*
+ * Sync is disabled.
+ */
+
+ $description = '<p>';
+ $description .= esc_html__( 'The information synced by Jetpack ensures that Jetpack Search, Related Posts and other features are aligned with your site’s current content.', 'jetpack' );
+ $description .= '</p>';
+ $description .= '<p>';
+ $description .= __( 'Developers may enable / disable syncing using the Sync Settings API.', 'jetpack' );
+ $description .= '</p>';
+ $description .= '<p>';
+ $description .= sprintf(
+ '<span class="dashicons fail"><span class="screen-reader-text">%1$s</span></span> ',
+ esc_html__( 'Error', 'jetpack' )
+ );
+ $description .= wp_kses(
+ __( 'Jetpack Sync has been disabled on your site. Without it, certain Jetpack features will not work. <strong>We recommend enabling Sync.</strong>', 'jetpack' ),
+ array( 'strong' => array() )
+ );
+ $description .= '</p>';
+
+ return self::failing_test(
+ array(
+ 'name' => $name,
+ 'label' => __( 'Jetpack Sync has been disabled on your site.', 'jetpack' ),
+ 'severity' => 'recommended',
+ 'action' => 'https://github.com/Automattic/jetpack/blob/master/packages/sync/src/class-settings.php',
+ 'action_label' => __( 'See Github for more on Sync Settings', 'jetpack' ),
+ 'short_description' => __( 'Jetpack Sync has been disabled on your site.', 'jetpack' ),
+ 'long_description' => $description,
+ )
+ );
+
+ }
+
+ }
+
+ /**
* Calls to WP.com to run the connection diagnostic testing suite.
*
* Intentionally added last as it will be skipped if any local failed conditions exist.
@@ -346,44 +942,45 @@ class Jetpack_Cxn_Tests extends Jetpack_Cxn_Test_Base {
$name = 'test__wpcom_self_test';
$status = new Status();
- if ( ! Jetpack::is_active() || $status->is_development_mode() || $status->is_staging_site() || ! $this->pass ) {
- return self::skipped_test( $name );
+ if ( ! Jetpack::is_connection_ready() || $status->is_offline_mode() || $status->is_staging_site() || ! $this->pass ) {
+ return self::skipped_test( array( 'name' => $name ) );
}
$self_xml_rpc_url = site_url( 'xmlrpc.php' );
- $testsite_url = Connection_Utils::fix_url_for_bad_hosts( JETPACK__API_BASE . 'testsite/1/?url=' );
+ $testsite_url = JETPACK__API_BASE . 'testsite/1/?url=';
- add_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ) );
+ // Using PHP_INT_MAX - 1 so that there is still a way to override this if needed and since it only impacts this one call.
+ add_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ), PHP_INT_MAX - 1 );
$response = wp_remote_get( $testsite_url . $self_xml_rpc_url );
- remove_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ) );
-
- $error_msg = wp_kses(
- sprintf(
- /* translators: Placeholder is a link to site's Jetpack debug page. */
- __(
- '<a target="_blank" rel="noopener noreferrer" href="%s">Visit the Jetpack.com debug page</a> for more information or <a target="_blank" rel="noopener noreferrer" href="https://jetpack.com/contact-support/">contact support</a>.',
- 'jetpack'
- ),
- esc_url( add_query_arg( 'url', rawurlencode( site_url() ), 'https://jetpack.com/support/debug/' ) )
- ),
- array(
- 'a' => array(
- 'href' => array(),
- 'target' => array(),
- 'rel' => array(),
- ),
- )
- );
+ remove_filter( 'http_request_timeout', array( 'Jetpack_Cxn_Tests', 'increase_timeout' ), PHP_INT_MAX - 1 );
if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
- return self::passing_test( $name );
+ $result = self::passing_test( array( 'name' => $name ) );
} elseif ( is_wp_error( $response ) && false !== strpos( $response->get_error_message(), 'cURL error 28' ) ) { // Timeout.
- return self::skipped_test( $name, __( 'The test timed out which may sometimes indicate a failure or may be a false failure.', 'jetpack' ) );
+ $result = self::skipped_test(
+ array(
+ 'name' => $name,
+ 'short_description' => self::helper_get_timeout_text(),
+ )
+ );
} else {
- return self::failing_test( $name, __( 'Jetpack.com detected an error on the WPcom Self Test.', 'jetpack' ), $error_msg );
+ $result = self::failing_test(
+ array(
+ 'name' => $name,
+ 'short_description' => sprintf(
+ /* translators: %1$s - A debugging url */
+ __( 'Jetpack.com detected an error on the WP.com Self Test. Visit the Jetpack Debug page for more info: %1$s, or contact support.', 'jetpack' ),
+ Redirect::get_url( 'jetpack-support-debug', array( 'query' => 'url=' . rawurlencode( site_url() ) ) )
+ ),
+ 'action_label' => $this->helper_get_support_text(),
+ 'action' => $this->helper_get_support_url(),
+ )
+ );
}
+
+ return $result;
}
}
diff --git a/plugins/jetpack/_inc/lib/debugger/class-jetpack-debug-data.php b/plugins/jetpack/_inc/lib/debugger/class-jetpack-debug-data.php
index f128d38d..b67fc472 100644
--- a/plugins/jetpack/_inc/lib/debugger/class-jetpack-debug-data.php
+++ b/plugins/jetpack/_inc/lib/debugger/class-jetpack-debug-data.php
@@ -1,13 +1,16 @@
<?php
/**
- * Jetpack Debug Data for the legacy Jetpack debugger page and the WP 5.2-era Site Health sections.
+ * Jetpack Debug Data for the Site Health sections.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Connection\Urls;
use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Sync\Modules;
-use Automattic\Jetpack\Sync\Functions;
use Automattic\Jetpack\Sync\Sender;
/**
@@ -42,7 +45,7 @@ class Jetpack_Debug_Data {
* @return string Human readable time.
*/
public static function seconds_to_time( $seconds ) {
- $seconds = intval( $seconds );
+ $seconds = (int) $seconds;
$units = array(
'week' => WEEK_IN_SECONDS,
'day' => DAY_IN_SECONDS,
@@ -56,7 +59,7 @@ class Jetpack_Debug_Data {
}
$human_readable = '';
foreach ( $units as $name => $divisor ) {
- $quot = intval( $seconds / $divisor );
+ $quot = (int) ( $seconds / $divisor );
if ( $quot ) {
$human_readable .= "$quot $name";
$human_readable .= ( abs( $quot ) > 1 ? 's' : '' ) . ', ';
@@ -95,8 +98,8 @@ class Jetpack_Debug_Data {
*/
public static function core_debug_data( $debug ) {
$support_url = Jetpack::is_development_version()
- ? 'https://jetpack.com/contact-support/beta-group/'
- : 'https://jetpack.com/contact-support/';
+ ? Redirect::get_url( 'jetpack-contact-support-beta-group' )
+ : Redirect::get_url( 'jetpack-contact-support' );
$jetpack = array(
'jetpack' => array(
@@ -165,7 +168,7 @@ class Jetpack_Debug_Data {
);
$debug_info['master_user'] = array(
'label' => 'Jetpack Master User',
- 'value' => self::human_readable_master_user(),
+ 'value' => self::human_readable_master_user(), // Only ID number and user name.
'private' => false,
);
@@ -179,8 +182,8 @@ class Jetpack_Debug_Data {
* If a token does not contain a period, then it is malformed and we report it as such.
*/
$user_id = get_current_user_id();
- $blog_token = Jetpack_Data::get_access_token();
- $user_token = Jetpack_Data::get_access_token( $user_id );
+ $blog_token = ( new Tokens() )->get_access_token();
+ $user_token = ( new Tokens() )->get_access_token( $user_id );
$tokenset = '';
if ( $blog_token ) {
@@ -263,7 +266,7 @@ class Jetpack_Debug_Data {
$debug_info[ $header ] = array(
'label' => 'Server Variable ' . $header,
'value' => ( $_SERVER[ $header ] ) ? $_SERVER[ $header ] : 'false',
- 'private' => false,
+ 'private' => true, // This isn't really 'private' information, but we don't want folks to easily paste these into public forums.
);
}
}
@@ -282,7 +285,7 @@ class Jetpack_Debug_Data {
foreach ( $sync_statuses as $sync_status => $sync_status_value ) {
$human_readable_sync_status[ $sync_status ] =
in_array( $sync_status, array( 'started', 'queue_finished', 'send_started', 'finished' ), true )
- ? date( 'r', $sync_status_value ) : $sync_status_value;
+ ? gmdate( 'r', $sync_status_value ) : $sync_status_value;
}
$debug_info['full_sync'] = array(
'label' => 'Full Sync Status',
@@ -323,8 +326,8 @@ class Jetpack_Debug_Data {
* Must follow sync debug since it depends on sync functionality.
*/
$idc_urls = array(
- 'home' => Functions::home_url(),
- 'siteurl' => Functions::site_url(),
+ 'home' => Urls::home_url(),
+ 'siteurl' => Urls::site_url(),
'WP_HOME' => Constants::is_defined( 'WP_HOME' ) ? Constants::get_constant( 'WP_HOME' ) : '',
'WP_SITEURL' => Constants::is_defined( 'WP_SITEURL' ) ? Constants::get_constant( 'WP_SITEURL' ) : '',
);
@@ -341,7 +344,7 @@ class Jetpack_Debug_Data {
);
$debug_info['idc_optin'] = array(
'label' => 'IDC Opt-in',
- 'value' => Jetpack::sync_idc_optin(),
+ 'value' => Identity_Crisis::should_handle_idc(),
'private' => false,
);
@@ -392,6 +395,6 @@ class Jetpack_Debug_Data {
private static function human_readable_user( $user ) {
$user = new WP_User( $user );
- return sprintf( '#%1$d %2$s (%3$s)', $user->ID, $user->user_login, $user->user_email ); // Format: "#1 username (user@example.com)".
+ return sprintf( '#%1$d %2$s', $user->ID, $user->user_login ); // Format: "#1 username".
}
}
diff --git a/plugins/jetpack/_inc/lib/debugger/class-jetpack-debugger.php b/plugins/jetpack/_inc/lib/debugger/class-jetpack-debugger.php
index afbbb4d1..6534c4d3 100644
--- a/plugins/jetpack/_inc/lib/debugger/class-jetpack-debugger.php
+++ b/plugins/jetpack/_inc/lib/debugger/class-jetpack-debugger.php
@@ -1,13 +1,13 @@
<?php
-
-use Automattic\Jetpack\Status;
-
/**
* Jetpack Debugger functionality allowing for self-service diagnostic information via the legacy jetpack debugger.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status;
+
/**
* Class Jetpack_Debugger
*
@@ -15,21 +15,6 @@ use Automattic\Jetpack\Status;
*/
class Jetpack_Debugger {
/**
- * Returns 30 for use with a filter.
- *
- * To allow time for WP.com to run upstream testing, this function exists to increase the http_request_timeout value
- * to 30.
- *
- * @deprecated 8.0.0
- *
- * @return int 30
- */
- public static function jetpack_increase_timeout() {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Jetpack_Cxn_Tests::increase_timeout' );
- return 30; // seconds.
- }
-
- /**
* Disconnect Jetpack and redirect user to connection flow.
*
* Used in class.jetpack-admin.php.
@@ -40,7 +25,7 @@ class Jetpack_Debugger {
}
if ( isset( $_GET['disconnect'] ) && $_GET['disconnect'] ) {
- if ( Jetpack::is_active() ) {
+ if ( Jetpack::is_connection_ready() ) {
Jetpack::disconnect();
wp_safe_redirect( Jetpack::admin_url() );
exit;
@@ -57,8 +42,8 @@ class Jetpack_Debugger {
}
$support_url = Jetpack::is_development_version()
- ? 'https://jetpack.com/contact-support/beta-group/'
- : 'https://jetpack.com/contact-support/';
+ ? Redirect::get_url( 'jetpack-contact-support-beta-group' )
+ : Redirect::get_url( 'jetpack-contact-support' );
$cxntests = new Jetpack_Cxn_Tests();
?>
@@ -72,11 +57,14 @@ class Jetpack_Debugger {
} else {
$failures = $cxntests->list_fails();
foreach ( $failures as $fail ) {
+ $action_link = $fail['action'];
+ $action_label = $fail['action_label'];
+ $action = ( $action_link ) ? '<a href="' . $action_link . '">' . $action_label . '</a>' : $action_label;
echo '<div class="jetpack-test-error">';
- echo '<p><a class="jetpack-test-heading" href="#">' . esc_html( $fail['message'] );
+ echo '<p><a class="jetpack-test-heading" href="#">' . esc_html( $fail['short_description'] );
echo '<span class="noticon noticon-collapse"></span></a></p>';
echo '<p class="jetpack-test-details">' . wp_kses(
- $fail['resolution'],
+ $action,
array(
'a' => array(
'href' => array(),
@@ -111,10 +99,10 @@ class Jetpack_Debugger {
),
)
),
- 'https://jetpack.com/support/getting-started-with-jetpack/known-issues/',
- 'https://jetpack.com/support/getting-started-with-jetpack/known-issues/',
- 'https://jetpack.com/support/',
- 'https://wordpress.org/support/plugin/jetpack'
+ esc_url( Redirect::get_url( 'jetpack-contact-support-known-issues' ) ),
+ esc_url( Redirect::get_url( 'jetpack-contact-support-known-issues' ) ),
+ esc_url( Redirect::get_url( 'jetpack-support' ) ),
+ esc_url( Redirect::get_url( 'wporg-support-plugin-jetpack' ) )
);
?>
</li>
@@ -149,7 +137,7 @@ class Jetpack_Debugger {
<li>- <?php esc_html_e( 'If you get a 404 message, contact your web host. Their security may block XMLRPC.', 'jetpack' ); ?></li>
</ul>
</li>
- <?php if ( current_user_can( 'jetpack_disconnect' ) && Jetpack::is_active() ) : ?>
+ <?php if ( current_user_can( 'jetpack_disconnect' ) && Jetpack::is_connection_ready() ) : ?>
<li>
<strong><em><?php esc_html_e( 'A connection problem with WordPress.com.', 'jetpack' ); ?></em></strong>
<?php
@@ -199,7 +187,7 @@ class Jetpack_Debugger {
?>
</p>
<hr />
- <?php if ( Jetpack::is_active() ) : ?>
+ <?php if ( Jetpack::is_connection_ready() ) : ?>
<div id="connected-user-details">
<h3><?php esc_html_e( 'More details about your Jetpack settings', 'jetpack' ); ?></h3>
<p>
@@ -222,10 +210,10 @@ class Jetpack_Debugger {
printf(
wp_kses(
/* translators: Link to a Jetpack support page. */
- __( 'Would you like to use Jetpack on your local development site? You can do so thanks to <a href="%s">Jetpack\'s development mode</a>.', 'jetpack' ),
+ __( 'Would you like to use Jetpack on your local development site? You can do so thanks to <a href="%s">Jetpack\'s offline mode</a>.', 'jetpack' ),
array( 'a' => array( 'href' => array() ) )
),
- 'https://jetpack.com/support/development-mode/'
+ esc_url( Redirect::get_url( 'jetpack-support-development-mode' ) )
);
?>
</p>
@@ -234,7 +222,7 @@ class Jetpack_Debugger {
<?php
if (
current_user_can( 'jetpack_manage_modules' )
- && ( ( new Status() )->is_development_mode() || Jetpack::is_active() )
+ && ( ( new Status() )->is_offline_mode() || Jetpack::is_connection_ready() )
) {
printf(
wp_kses(
@@ -313,10 +301,10 @@ class Jetpack_Debugger {
}
.formbox input[type="text"], .formbox input[type="email"], .formbox input[type="url"], .formbox textarea, #debug_info_div {
- border: 1px solid #e5e5e5;
+ border: 1px solid #dcdcde;
border-radius: 11px;
box-shadow: inset 0 1px 1px rgba(0,0,0,0.1);
- color: #666;
+ color: #646970;
font-size: 14px;
padding: 10px;
width: 97%;
@@ -336,7 +324,7 @@ class Jetpack_Debugger {
height: auto !important;
margin: 0 0 2em 10px !important;
padding: 8px 16px !important;
- background-color: #ddd;
+ background-color: #dcdcde;
border: 1px solid rgba(0,0,0,0.05);
border-top-color: rgba(255,255,255,0.1);
border-bottom-color: rgba(0,0,0,0.15);
diff --git a/plugins/jetpack/_inc/lib/debugger/debug-functions.php b/plugins/jetpack/_inc/lib/debugger/debug-functions.php
index a32d9fee..6f224a93 100644
--- a/plugins/jetpack/_inc/lib/debugger/debug-functions.php
+++ b/plugins/jetpack/_inc/lib/debugger/debug-functions.php
@@ -2,9 +2,10 @@
/**
* WP Site Health functionality temporarily stored in this file until all of Jetpack is PHP 5.3+
*
- * @package Jetpack.
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Sync\Modules;
/**
* Test runner for Core's Site Health module.
*
@@ -31,18 +32,55 @@ function jetpack_debugger_site_status_tests( $core_tests ) {
$cxn_tests = new Jetpack_Cxn_Tests();
$tests = $cxn_tests->list_tests( 'direct' );
foreach ( $tests as $test ) {
+
$core_tests['direct'][ $test['name'] ] = array(
'label' => __( 'Jetpack: ', 'jetpack' ) . $test['name'],
- 'test' => function() use ( $test, $cxn_tests ) { // phpcs:ignore PHPCompatibility.FunctionDeclarations.NewClosure.Found
+ /**
+ * Callable for Core's Site Health system to execute.
+ *
+ * @param array $test A Jetpack Testing Suite test array.
+ * @param Jetpack_Cxn_Tests $cxn_tests An instance of the Jetpack Test Suite.
+ *
+ * @return array {
+ * A results array to match the format expected by WordPress Core.
+ *
+ * @type string $label Name for the test.
+ * @type string $status 'critical', 'recommended', or 'good'.
+ * @type array $badge Array for Site Health status. Keys label and color.
+ * @type string $description Description of the test result.
+ * @type string $action HTML to a link to resolve issue.
+ * @type string $test Unique test identifier.
+ * }
+ */
+ 'test' => function () use ( $test, $cxn_tests ) {
$results = $cxn_tests->run_test( $test['name'] );
- // Test names are, by default, `test__some_string_of_text`. Let's convert to "Some String Of Text" for humans.
- $label = ucwords(
- str_replace(
- '_',
- ' ',
- str_replace( 'test__', '', $test['name'] )
- )
- );
+ if ( is_wp_error( $results ) ) {
+ return;
+ }
+
+ $label = $results['label'] ?
+ $results['label'] :
+ ucwords(
+ str_replace(
+ '_',
+ ' ',
+ str_replace( 'test__', '', $test['name'] )
+ )
+ );
+ if ( $results['long_description'] ) {
+ $description = $results['long_description'];
+ } elseif ( $results['short_description'] ) {
+ $description = sprintf(
+ '<p>%s</p>',
+ $results['short_description']
+ );
+ } else {
+ $description = sprintf(
+ '<p>%s</p>',
+ __( 'This test successfully passed!', 'jetpack' )
+ );
+ }
+
$return = array(
'label' => $label,
'status' => 'good',
@@ -50,28 +88,18 @@ function jetpack_debugger_site_status_tests( $core_tests ) {
'label' => __( 'Jetpack', 'jetpack' ),
'color' => 'green',
),
- 'description' => sprintf(
- '<p>%s</p>',
- __( 'This test successfully passed!', 'jetpack' )
- ),
+ 'description' => $description,
'actions' => '',
'test' => 'jetpack_' . $test['name'],
);
- if ( is_wp_error( $results ) ) {
- return;
- }
+
if ( false === $results['pass'] ) {
- $return['label'] = $results['message'];
- $return['status'] = $results['severity'];
- $return['description'] = sprintf(
- '<p>%s</p>',
- $results['resolution']
- );
+ $return['status'] = $results['severity'];
if ( ! empty( $results['action'] ) ) {
$return['actions'] = sprintf(
- '<a class="button button-primary" href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer">%2$s <span class="screen-reader-text">%3$s</span><span aria-hidden="true" class="dashicons dashicons-external"></span></a>',
esc_url( $results['action'] ),
- __( 'Resolve', 'jetpack' ),
+ $results['action_label'],
/* translators: accessibility text */
__( '(opens in a new tab)', 'jetpack' )
);
@@ -90,3 +118,76 @@ function jetpack_debugger_site_status_tests( $core_tests ) {
return $core_tests;
}
+/**
+ * Loads site health scripts if we are on the site health page.
+ *
+ * @param string $hook The current admin page hook.
+ */
+function jetpack_debugger_enqueue_site_health_scripts( $hook ) {
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ $progress_percent = $full_sync_module ? $full_sync_module->get_sync_progress_percentage() : false;
+
+ $ajax_nonce = wp_create_nonce( 'jetpack-site-health' );
+
+ if ( 'site-health.php' === $hook ) {
+ $wp_scripts = wp_scripts();
+ wp_enqueue_script( 'jquery-ui-progressbar' );
+ wp_enqueue_script(
+ 'jetpack_debug_site_health_script',
+ plugins_url( 'jetpack-debugger-site-health.js', __FILE__ ),
+ array( 'jquery-ui-progressbar' ),
+ JETPACK__VERSION,
+ false
+ );
+ wp_enqueue_style(
+ 'jetpack_debug_site_health_styles',
+ plugins_url( 'jetpack-debugger-site-health.css', __FILE__ ),
+ false,
+ JETPACK__VERSION,
+ false
+ );
+ /* WordPress is not bundled with jquery UI styles - we need to grab them from the Google API. */
+ wp_enqueue_style(
+ 'jetpack-jquery-ui-styles',
+ 'https://code.jquery.com/ui/' . $wp_scripts->registered['jquery-ui-core']->ver . '/themes/smoothness/jquery-ui.min.css',
+ false,
+ JETPACK__VERSION,
+ false
+ );
+ wp_localize_script(
+ 'jetpack_debug_site_health_script',
+ 'jetpackSiteHealth',
+ array(
+ 'ajaxUrl' => admin_url( 'admin-ajax.php' ),
+ 'syncProgressHeading' => __( 'Jetpack is performing a sync of your site', 'jetpack' ),
+ 'progressPercent' => $progress_percent,
+ 'fullSyncNonce' => $ajax_nonce,
+ )
+ );
+ }
+}
+
+/**
+ * Responds to ajax calls from the site health page. Echos a full sync percantage to update progress bar.
+ */
+function jetpack_debugger_sync_progress_ajax() {
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ $progress_percent = $full_sync_module ? $full_sync_module->get_sync_progress_percentage() : null;
+ if ( ! $progress_percent ) {
+ echo 'done';
+ wp_die();
+ }
+ echo (int) $progress_percent;
+ wp_die();
+}
+
+/**
+ * Responds to ajax calls from the site health page. Triggers a Full Sync
+ */
+function jetpack_debugger_full_sync_start() {
+ check_ajax_referer( 'jetpack-site-health', 'site-health-nonce' );
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ $full_sync_module->start();
+ echo 'requested';
+ wp_die();
+}
diff --git a/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.css b/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.css
new file mode 100644
index 00000000..670f0292
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.css
@@ -0,0 +1,21 @@
+.jetpack-sync-progress-ui {
+ display: flex;
+ align-items: baseline;
+}
+
+.jetpack-sync-progress-label {
+ width: 5%;
+ margin-right: 1%;
+ font-weight: 600;
+ color: #036699;
+}
+
+.ui-progressbar.jetpack-sync-progress-bar {
+ width: 94%;
+ background: #bfe7f3;
+ height: 8px;
+}
+
+.jetpack-sync-progress-bar .ui-progressbar-value {
+ background: #036699;
+}
diff --git a/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.js b/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.js
new file mode 100644
index 00000000..5d0641fc
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/debugger/jetpack-debugger-site-health.js
@@ -0,0 +1,80 @@
+/* global jetpackSiteHealth */
+/**
+ * This script runs on the site health page.
+ */
+
+jQuery( document ).ready( function ( $ ) {
+ var JetpackSync = {
+ inProgress: true,
+ progressPercent: 0,
+ interval: false,
+ init: function () {
+ JetpackSync.progressPercent = parseInt( jetpackSiteHealth.progressPercent );
+ JetpackSync.setProgress();
+ JetpackSync.interval = setInterval( JetpackSync.checkProgress, 3000 );
+ $( 'body' ).on(
+ 'click',
+ '[aria-controls=health-check-accordion-block-jetpack_test__full_sync_health]',
+ JetpackSync.setProgress
+ );
+ },
+ accordionButton: function () {
+ return $( '[aria-controls=health-check-accordion-block-jetpack_test__full_sync_health]' );
+ },
+ accordionIsOpen: function () {
+ return JetpackSync.accordionButton().attr( 'aria-expanded' );
+ },
+ checkProgress: function () {
+ $.post( jetpackSiteHealth.ajaxUrl, { action: 'jetpack_sync_progress_check' }, function (
+ response
+ ) {
+ if ( 'done' === response ) {
+ clearInterval( JetpackSync.interval );
+ if ( JetpackSync.inProgress ) {
+ JetpackSync.progressPercent = 100;
+ JetpackSync.setProgress();
+ }
+ JetpackSync.inProgress = false;
+ return;
+ }
+ JetpackSync.inProgress = true;
+ JetpackSync.progressPercent = parseInt( response );
+ JetpackSync.setProgress();
+ } );
+ },
+ setProgress: function () {
+ if ( 'true' === JetpackSync.accordionIsOpen() ) {
+ // When the accordion is open, we remove the progress percentage from the accordion heading,
+ // and show a progress bar in the accordion body.
+ $( '.jetpack-sync-progress-bar' ).progressbar( { value: JetpackSync.progressPercent } );
+ $( '.jetpack-sync-progress-label' ).text( JetpackSync.progressPercent + '%' );
+ JetpackSync.accordionButton()
+ .find( '.title' )
+ .text( jetpackSiteHealth.syncProgressHeading );
+ } else {
+ // When the accordion is closed, we show the progress percentage in the accordion heading.
+ JetpackSync.accordionButton()
+ .find( '.title' )
+ .text(
+ jetpackSiteHealth.syncProgressHeading + ' - ' + JetpackSync.progressPercent + '%'
+ );
+ }
+ },
+ };
+
+ if ( jetpackSiteHealth.progressPercent ) {
+ setTimeout( function () {
+ JetpackSync.init();
+ }, 5000 );
+ }
+
+ $( 'body' ).on( 'click', '#full_sync_request_link', function () {
+ var data = {
+ action: 'jetpack_debugger_full_sync_start',
+ 'site-health-nonce': jetpackSiteHealth.fullSyncNonce,
+ };
+ $.post( jetpackSiteHealth.ajaxUrl, data, function ( response ) {
+ window.location.reload( true );
+ } );
+ } );
+} );
diff --git a/plugins/jetpack/_inc/lib/functions.wp-notify.php b/plugins/jetpack/_inc/lib/functions.wp-notify.php
index 6be0c3ac..4963b0f1 100644
--- a/plugins/jetpack/_inc/lib/functions.wp-notify.php
+++ b/plugins/jetpack/_inc/lib/functions.wp-notify.php
@@ -1,353 +1,419 @@
<?php
+/** phpcs:disable Squiz.Commenting.FileComment.MissingPackageTag,Generic.Commenting.DocComment.MissingShort
+ *
+ * Declare two functions to handle notification emails to authors and moderators.
+ *
+ * These functions are hooked into filters to short circuit the regular flow and send the emails.
+ * Code was copied from the original pluggable functions and slightly modified (modifications are commented).
+ *
+ * In the past, we used to overwrite the whole pluggable function, but we started using filters to avoid having
+ * to check for Jetpack::is_active() too early in the load flow.
+ */
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Redirect;
+
+// phpcs:disable WordPress.WP.I18n.MissingArgDomain --reason: WP Core string.
+
+/**
+ * Short circuits the {@see `wp_notify_postauthor`} function via the `comment_notification_recipients` filter.
+ *
+ * Notify an author (and/or others) of a comment/trackback/pingback on a post.
+ *
+ * @since 5.8.0
+ * @since 9.3.0 Switched from pluggable function to filter callback
+ *
+ * @param array $emails List of recipients.
+ * @param int|WP_Comment $comment_id Comment ID or WP_Comment object.
+ * @return array Empty array to shortcircuit wp_notify_postauthor execution. $emails if we want to disable the filter.
+ */
+function jetpack_notify_postauthor( $emails, $comment_id ) {
+ // Don't do anything if Jetpack isn't connected.
+ if ( ! Jetpack::is_connection_ready() || empty( $emails ) ) {
+ return $emails;
+ }
-if ( ! function_exists( 'wp_notify_postauthor' ) && Jetpack::is_active() ) :
- /**
- * Notify an author (and/or others) of a comment/trackback/pingback on a post.
- *
- * @since 1.0.0
- *
- * @param int|WP_Comment $comment_id Comment ID or WP_Comment object.
- * @param string $deprecated Not used
- * @return bool True on completion. False if no email addresses were specified.
- */
- function wp_notify_postauthor( $comment_id, $deprecated = null ) {
- if ( null !== $deprecated ) {
- _deprecated_argument( __FUNCTION__, '3.8.0' );
- }
-
- $comment = get_comment( $comment_id );
-
- if ( empty( $comment ) || empty( $comment->comment_post_ID ) ) {
- return false;
- }
-
- $post = get_post( $comment->comment_post_ID );
- $author = get_userdata( $post->post_author );
-
- // Who to notify? By default, just the post author, but others can be added.
- $emails = array();
- if ( $author ) {
- $emails[] = $author->user_email;
- }
-
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $emails = apply_filters( 'comment_notification_recipients', $emails, $comment->comment_ID );
- $emails = array_filter( $emails );
-
- // If there are no addresses to send the comment to, bail.
- if ( ! count( $emails ) ) {
- return false;
- }
+ // Original function modified: Code before the comment_notification_recipients filter removed.
- // Facilitate unsetting below without knowing the keys.
- $emails = array_flip( $emails );
+ $comment = get_comment( $comment_id );
+ if ( ! $comment ) {
+ return $emails;
+ }
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $notify_author = apply_filters( 'comment_notification_notify_author', false, $comment->comment_ID );
+ $post = get_post( $comment->comment_post_ID );
+ $author = get_userdata( $post->post_author );
- // The comment was left by the author
- if ( $author && ! $notify_author && $comment->user_id == $post->post_author ) {
- unset( $emails[ $author->user_email ] );
- }
+ // Facilitate unsetting below without knowing the keys.
+ $emails = array_flip( $emails );
- // The author moderated a comment on their own post
- if ( $author && ! $notify_author && $post->post_author == get_current_user_id() ) {
- unset( $emails[ $author->user_email ] );
- }
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $notify_author = apply_filters( 'comment_notification_notify_author', false, $comment->comment_ID );
- // The post author is no longer a member of the blog
- if ( $author && ! $notify_author && ! user_can( $post->post_author, 'read_post', $post->ID ) ) {
- unset( $emails[ $author->user_email ] );
- }
+ // The comment was left by the author.
+ if ( $author && ! $notify_author && $comment->user_id == $post->post_author ) {
+ unset( $emails[ $author->user_email ] );
+ }
- // If there's no email to send the comment to, bail, otherwise flip array back around for use below
- if ( ! count( $emails ) ) {
- return false;
- } else {
- $emails = array_flip( $emails );
- }
+ // The author moderated a comment on their own post.
+ if ( $author && ! $notify_author && get_current_user_id() == $post->post_author ) {
+ unset( $emails[ $author->user_email ] );
+ }
- $switched_locale = switch_to_locale( get_locale() );
+ // The post author is no longer a member of the blog.
+ if ( $author && ! $notify_author && ! user_can( $post->post_author, 'read_post', $post->ID ) ) {
+ unset( $emails[ $author->user_email ] );
+ }
- $comment_author_domain = @gethostbyaddr( $comment->comment_author_IP );
+ // If there's no email to send the comment to, bail, otherwise flip array back around for use below.
+ if ( ! count( $emails ) ) {
+ return array(); // Original function modified. Return empty array instead of false.
+ } else {
+ $emails = array_flip( $emails );
+ }
- // The blogname option is escaped with esc_html on the way into the database in sanitize_option
- // we want to reverse this for the plain text arena of emails.
- $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
- $comment_content = wp_specialchars_decode( $comment->comment_content );
+ $switched_locale = switch_to_locale( get_locale() );
- function is_user_connected( $email ) {
- $user = get_user_by( 'email', $email );
- return Jetpack::is_user_connected( $user->ID );
- }
+ $comment_author_domain = '';
+ if ( WP_Http::is_ip_address( $comment->comment_author_IP ) ) {
+ $comment_author_domain = gethostbyaddr( $comment->comment_author_IP );
+ }
- $moderate_on_wpcom = ! in_array( false, array_map( 'is_user_connected', $emails ) );
-
- $primary_site_slug = Jetpack::build_raw_urls( get_home_url() );
-
- switch ( $comment->comment_type ) {
- case 'trackback':
- /* translators: 1: Post title */
- $notify_message = sprintf( __( 'New trackback on your post "%s"' ), $post->post_title ) . "\r\n";
- /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
- $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
- $notify_message .= __( 'You can see all trackbacks on this post here:' ) . "\r\n";
- /* translators: 1: blog name, 2: post title */
- $subject = sprintf( __( '[%1$s] Trackback: "%2$s"' ), $blogname, $post->post_title );
- break;
- case 'pingback':
- /* translators: 1: Post title */
- $notify_message = sprintf( __( 'New pingback on your post "%s"' ), $post->post_title ) . "\r\n";
- /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
- $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
- $notify_message .= __( 'You can see all pingbacks on this post here:' ) . "\r\n";
- /* translators: 1: blog name, 2: post title */
- $subject = sprintf( __( '[%1$s] Pingback: "%2$s"' ), $blogname, $post->post_title );
- break;
- default: // Comments
- $notify_message = sprintf( __( 'New comment on your post "%s"' ), $post->post_title ) . "\r\n";
- /* translators: 1: comment author, 2: comment author's IP address, 3: comment author's hostname */
- $notify_message .= sprintf( __( 'Author: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- $notify_message .= sprintf( __( 'Email: %s' ), $comment->comment_author_email ) . "\r\n";
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
- $notify_message .= __( 'You can see all comments on this post here:' ) . "\r\n";
+ // The blogname option is escaped with esc_html on the way into the database in sanitize_option
+ // we want to reverse this for the plain text arena of emails.
+ $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
+ $comment_content = wp_specialchars_decode( $comment->comment_content );
+
+ // Original function modified.
+ $moderate_on_wpcom = ! in_array( false, array_map( 'jetpack_notify_is_user_connected_by_email', $emails ) );
+
+ switch ( $comment->comment_type ) {
+ case 'trackback':
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'New trackback on your post "%s"' ), $post->post_title ) . "\r\n";
+ /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
+ $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: %s: Site URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ /* translators: %s: Comment Content */
+ $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
+ $notify_message .= __( 'You can see all trackbacks on this post here:' ) . "\r\n";
/* translators: 1: blog name, 2: post title */
- $subject = sprintf( __( '[%1$s] Comment: "%2$s"' ), $blogname, $post->post_title );
- break;
- }
+ $subject = sprintf( __( '[%1$s] Trackback: "%2$s"' ), $blogname, $post->post_title );
+ break;
+ case 'pingback':
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'New pingback on your post "%s"' ), $post->post_title ) . "\r\n";
+ /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
+ $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: %s: Site URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ /* translators: %s: Comment Content */
+ $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
+ $notify_message .= __( 'You can see all pingbacks on this post here:' ) . "\r\n";
+ /* translators: 1: blog name, 2: post title */
+ $subject = sprintf( __( '[%1$s] Pingback: "%2$s"' ), $blogname, $post->post_title );
+ break;
+ default: // Comments.
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'New comment on your post "%s"' ), $post->post_title ) . "\r\n";
+ /* translators: 1: comment author, 2: comment author's IP address, 3: comment author's hostname */
+ $notify_message .= sprintf( __( 'Author: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: %s: Email address */
+ $notify_message .= sprintf( __( 'Email: %s' ), $comment->comment_author_email ) . "\r\n";
+ /* translators: %s: Site URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ /* translators: %s: Comment Content */
+ $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
+ $notify_message .= __( 'You can see all comments on this post here:' ) . "\r\n";
+ /* translators: 1: blog name, 2: post title */
+ $subject = sprintf( __( '[%1$s] Comment: "%2$s"' ), $blogname, $post->post_title );
+ break;
+ }
- $notify_message .= $moderate_on_wpcom
- ? "https://wordpress.com/comments/all/{$primary_site_slug}/{$comment->comment_post_ID}/\r\n\r\n"
- : get_permalink( $comment->comment_post_ID ) . "#comments\r\n\r\n";
-
- $notify_message .= sprintf( __( 'Permalink: %s' ), get_comment_link( $comment ) ) . "\r\n";
-
- if ( user_can( $post->post_author, 'edit_comment', $comment->comment_ID ) ) {
- if ( EMPTY_TRASH_DAYS ) {
- $notify_message .= sprintf(
- __( 'Trash it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=trash"
- : admin_url( "comment.php?action=trash&c={$comment->comment_ID}#wpbody-content" )
- ) . "\r\n";
- } else {
- $notify_message .= sprintf(
- __( 'Delete it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=delete"
- : admin_url( "comment.php?action=delete&c={$comment->comment_ID}#wpbody-content" )
- ) . "\r\n";
- }
+ // Original function modified: Consider $moderate_on_wpcom when building $notify_message.
+ $notify_message .= $moderate_on_wpcom
+ ? Redirect::get_url(
+ 'calypso-comments-all',
+ array(
+ 'path' => $comment->comment_post_ID,
+ )
+ ) . "/\r\n\r\n"
+ : get_permalink( $comment->comment_post_ID ) . "#comments\r\n\r\n";
+
+ /* translators: %s: URL */
+ $notify_message .= sprintf( __( 'Permalink: %s' ), get_comment_link( $comment ) ) . "\r\n";
+
+ $base_wpcom_edit_comment_url = Redirect::get_url(
+ 'calypso-edit-comment',
+ array(
+ 'path' => $comment_id,
+ 'query' => 'action=__action__', // __action__ will be replaced by the actual action.
+ )
+ );
+
+ // Original function modified: Consider $moderate_on_wpcom when building $notify_message.
+ if ( user_can( $post->post_author, 'edit_comment', $comment->comment_ID ) ) {
+ if ( EMPTY_TRASH_DAYS ) {
$notify_message .= sprintf(
- __( 'Spam it: %s' ), $moderate_on_wpcom ?
- "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=spam"
- : admin_url( "comment.php?action=spam&c={$comment->comment_ID}#wpbody-content" )
+ /* translators: Placeholder is the edit URL */
+ __( 'Trash it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'trash', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=trash&c={$comment->comment_ID}#wpbody-content" )
) . "\r\n";
- }
-
- $wp_email = 'wordpress@' . preg_replace( '#^www\.#', '', strtolower( $_SERVER['SERVER_NAME'] ) );
-
- if ( '' == $comment->comment_author ) {
- $from = "From: \"$blogname\" <$wp_email>";
- if ( '' != $comment->comment_author_email ) {
- $reply_to = "Reply-To: $comment->comment_author_email";
- }
} else {
- $from = "From: \"$comment->comment_author\" <$wp_email>";
- if ( '' != $comment->comment_author_email ) {
- $reply_to = "Reply-To: \"$comment->comment_author_email\" <$comment->comment_author_email>";
- }
+ $notify_message .= sprintf(
+ /* translators: Placeholder is the edit URL */
+ __( 'Delete it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'delete', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=delete&c={$comment->comment_ID}#wpbody-content" )
+ ) . "\r\n";
}
+ $notify_message .= sprintf(
+ /* translators: Placeholder is the edit URL */
+ __( 'Spam it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'spam', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=spam&c={$comment->comment_ID}#wpbody-content" )
+ ) . "\r\n";
+ }
- $message_headers = "$from\n"
- . 'Content-Type: text/plain; charset="' . get_option( 'blog_charset' ) . "\"\n";
+ $wp_email = 'wordpress@' . preg_replace( '#^www\.#', '', strtolower( $_SERVER['SERVER_NAME'] ) );
- if ( isset( $reply_to ) ) {
- $message_headers .= $reply_to . "\n";
+ if ( '' == $comment->comment_author ) {
+ $from = "From: \"$blogname\" <$wp_email>";
+ if ( '' != $comment->comment_author_email ) {
+ $reply_to = "Reply-To: $comment->comment_author_email";
+ }
+ } else {
+ $from = "From: \"$comment->comment_author\" <$wp_email>";
+ if ( '' != $comment->comment_author_email ) {
+ $reply_to = "Reply-To: \"$comment->comment_author_email\" <$comment->comment_author_email>";
}
+ }
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $notify_message = apply_filters( 'comment_notification_text', $notify_message, $comment->comment_ID );
+ $message_headers = "$from\n"
+ . 'Content-Type: text/plain; charset="' . get_option( 'blog_charset' ) . "\"\n";
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $subject = apply_filters( 'comment_notification_subject', $subject, $comment->comment_ID );
+ if ( isset( $reply_to ) ) {
+ $message_headers .= $reply_to . "\n";
+ }
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $message_headers = apply_filters( 'comment_notification_headers', $message_headers, $comment->comment_ID );
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $notify_message = apply_filters( 'comment_notification_text', $notify_message, $comment->comment_ID );
- foreach ( $emails as $email ) {
- @wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
- }
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $subject = apply_filters( 'comment_notification_subject', $subject, $comment->comment_ID );
- if ( $switched_locale ) {
- restore_previous_locale();
- }
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $message_headers = apply_filters( 'comment_notification_headers', $message_headers, $comment->comment_ID );
- return true;
+ foreach ( $emails as $email ) {
+ wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
}
-endif;
-if ( ! function_exists( 'wp_notify_moderator' ) && Jetpack::is_active() ) :
- /**
- * Notifies the moderator of the site about a new comment that is awaiting approval.
- *
- * @since 1.0.0
- *
- * @global wpdb $wpdb WordPress database abstraction object.
+ if ( $switched_locale ) {
+ restore_previous_locale();
+ }
+
+ return array();
+}
+
+/**
+ * Short circuits the {@see `wp_notify_moderator`} function via the `notify_moderator` filter.
+ *
+ * Notifies the moderator of the site about a new comment that is awaiting approval.
+ *
+ * @since 5.8.0
+ * @since 9.2.0 Switched from pluggable function to filter callback
+ * @since 9.5.0 Updated the passing condition to call get_option( 'moderation_notify' ); directly.
+ *
+ * @global wpdb $wpdb WordPress database abstraction object.
+ *
+ * @param string $notify_moderator The value of the moderation_notify option OR if the comment is awaiting moderation.
+ * @param int $comment_id Comment ID.
+ * @return boolean Returns false to shortcircuit the execution of wp_notify_moderator
+ */
+function jetpack_notify_moderator( $notify_moderator, $comment_id ) {
+ /*
+ * $notify_moderator is a tricky one. This filter is called in two places in Core. One is just to pass if a comment
+ * is being held for moderation. See https://core.trac.wordpress.org/browser/tags/5.6/src/wp-includes/comment.php#L2296
*
- * Uses the {@see 'notify_moderator'} filter to determine whether the site moderator
- * should be notified, overriding the site setting.
+ * So we can't just assume that a true value here is what we need. The second time the filter is called, it checks
+ * the option -- which is what we expected here. See https://core.trac.wordpress.org/browser/tags/5.6/src/wp-includes/pluggable.php#L1737
*
- * @param int $comment_id Comment ID.
- * @return true Always returns true.
+ * It's possible another plugin would be filtering this value to true despite the option setting; however, since we're running at priority 1,
+ * they can still do that. They'll just get the Core flow instead of this one.
*/
- function wp_notify_moderator( $comment_id ) {
- global $wpdb;
- $maybe_notify = get_option( 'moderation_notify' );
+ // If Jetpack is not active, or if Notify moderators options is not set, let the default flow go on.
+ if ( ! $notify_moderator || ! get_option( 'moderation_notify' ) || ! Jetpack::is_connection_ready() ) {
+ return $notify_moderator;
+ }
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $maybe_notify = apply_filters( 'notify_moderator', $maybe_notify, $comment_id );
+ // Original function modified: Removed code before the notify_moderator filter.
- if ( ! $maybe_notify ) {
- return true;
- }
+ global $wpdb;
- $comment = get_comment( $comment_id );
- $post = get_post( $comment->comment_post_ID );
- $user = get_userdata( $post->post_author );
- // Send to the administration and to the post author if the author can modify the comment.
- $emails = array( get_option( 'admin_email' ) );
- if ( $user && user_can( $user->ID, 'edit_comment', $comment_id ) && ! empty( $user->user_email ) ) {
- if ( 0 !== strcasecmp( $user->user_email, get_option( 'admin_email' ) ) ) {
- $emails[] = $user->user_email;
- }
- }
+ $comment = get_comment( $comment_id );
+ if ( ! $comment ) {
+ return $notify_moderator;
+ }
- $switched_locale = switch_to_locale( get_locale() );
-
- $comment_author_domain = @gethostbyaddr( $comment->comment_author_IP );
- $comments_waiting = $wpdb->get_var( "SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'" );
-
- // The blogname option is escaped with esc_html on the way into the database in sanitize_option
- // we want to reverse this for the plain text arena of emails.
- $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
- $comment_content = wp_specialchars_decode( $comment->comment_content );
-
- switch ( $comment->comment_type ) {
- case 'trackback':
- /* translators: 1: Post title */
- $notify_message = sprintf( __( 'A new trackback on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
- $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
- /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
- $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- /* translators: 1: Trackback/pingback/comment author URL */
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- $notify_message .= __( 'Trackback excerpt: ' ) . "\r\n" . $comment_content . "\r\n\r\n";
- break;
- case 'pingback':
- /* translators: 1: Post title */
- $notify_message = sprintf( __( 'A new pingback on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
- $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
- /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
- $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- /* translators: 1: Trackback/pingback/comment author URL */
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- $notify_message .= __( 'Pingback excerpt: ' ) . "\r\n" . $comment_content . "\r\n\r\n";
- break;
- default: // Comments
- /* translators: 1: Post title */
- $notify_message = sprintf( __( 'A new comment on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
- $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
- /* translators: 1: Comment author name, 2: comment author's IP address, 3: comment author's hostname */
- $notify_message .= sprintf( __( 'Author: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
- /* translators: 1: Comment author URL */
- $notify_message .= sprintf( __( 'Email: %s' ), $comment->comment_author_email ) . "\r\n";
- /* translators: 1: Trackback/pingback/comment author URL */
- $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
- /* translators: 1: Comment text */
- $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
- break;
+ $post = get_post( $comment->comment_post_ID );
+ $user = get_userdata( $post->post_author );
+ // Send to the administration and to the post author if the author can modify the comment.
+ $emails = array( get_option( 'admin_email' ) );
+ if ( $user && user_can( $user->ID, 'edit_comment', $comment_id ) && ! empty( $user->user_email ) ) {
+ if ( 0 !== strcasecmp( $user->user_email, get_option( 'admin_email' ) ) ) {
+ $emails[] = $user->user_email;
}
+ }
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $emails = apply_filters( 'comment_moderation_recipients', $emails, $comment_id );
+ $switched_locale = switch_to_locale( get_locale() );
- function is_user_connected( $email ) {
- $user = get_user_by( 'email', $email );
- return Jetpack::is_user_connected( $user->ID );
- }
+ $comment_author_domain = '';
+ if ( WP_Http::is_ip_address( $comment->comment_author_IP ) ) {
+ $comment_author_domain = gethostbyaddr( $comment->comment_author_IP );
+ }
+ $comments_waiting = $wpdb->get_var( "SELECT count(comment_ID) FROM $wpdb->comments WHERE comment_approved = '0'" );
+
+ // The blogname option is escaped with esc_html on the way into the database in sanitize_option
+ // we want to reverse this for the plain text arena of emails.
+ $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
+ $comment_content = wp_specialchars_decode( $comment->comment_content );
+
+ switch ( $comment->comment_type ) {
+ case 'trackback':
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'A new trackback on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
+ $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
+ /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
+ $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: 1: Trackback/pingback/comment author URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ $notify_message .= __( 'Trackback excerpt: ' ) . "\r\n" . $comment_content . "\r\n\r\n";
+ break;
+ case 'pingback':
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'A new pingback on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
+ $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
+ /* translators: 1: Trackback/pingback website name, 2: website IP address, 3: website hostname */
+ $notify_message .= sprintf( __( 'Website: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: 1: Trackback/pingback/comment author URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ $notify_message .= __( 'Pingback excerpt: ' ) . "\r\n" . $comment_content . "\r\n\r\n";
+ break;
+ default: // Comments.
+ /* translators: 1: Post title */
+ $notify_message = sprintf( __( 'A new comment on the post "%s" is waiting for your approval' ), $post->post_title ) . "\r\n";
+ $notify_message .= get_permalink( $comment->comment_post_ID ) . "\r\n\r\n";
+ /* translators: 1: Comment author name, 2: comment author's IP address, 3: comment author's hostname */
+ $notify_message .= sprintf( __( 'Author: %1$s (IP address: %2$s, %3$s)' ), $comment->comment_author, $comment->comment_author_IP, $comment_author_domain ) . "\r\n";
+ /* translators: 1: Comment author URL */
+ $notify_message .= sprintf( __( 'Email: %s' ), $comment->comment_author_email ) . "\r\n";
+ /* translators: 1: Trackback/pingback/comment author URL */
+ $notify_message .= sprintf( __( 'URL: %s' ), $comment->comment_author_url ) . "\r\n";
+ /* translators: 1: Comment text */
+ $notify_message .= sprintf( __( 'Comment: %s' ), "\r\n" . $comment_content ) . "\r\n\r\n";
+ break;
+ }
+
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $emails = apply_filters( 'comment_moderation_recipients', $emails, $comment_id );
- $moderate_on_wpcom = ! in_array( false, array_map( 'is_user_connected', $emails ) );
+ // Original function modified.
+ $moderate_on_wpcom = ! in_array( false, array_map( 'jetpack_notify_is_user_connected_by_email', $emails ) );
- $primary_site_slug = Jetpack::build_raw_urls( get_home_url() );
+ $base_wpcom_edit_comment_url = Redirect::get_url(
+ 'calypso-edit-comment',
+ array(
+ 'path' => $comment_id,
+ 'query' => 'action=__action__', // __action__ will be replaced by the actual action.
+ )
+ );
+ // Original function modified: Consider $moderate_on_wpcom when building $notify_message.
+ $notify_message .= sprintf(
/* translators: Comment moderation. 1: Comment action URL */
- $notify_message .= sprintf(
- __( 'Approve it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=approve"
- : admin_url( "comment.php?action=approve&c={$comment_id}#wpbody-content" )
- ) . "\r\n";
+ __( 'Approve it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'approve', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=approve&c={$comment_id}#wpbody-content" )
+ ) . "\r\n";
- if ( EMPTY_TRASH_DAYS ) {
+ if ( EMPTY_TRASH_DAYS ) {
+ $notify_message .= sprintf(
/* translators: Comment moderation. 1: Comment action URL */
- $notify_message .= sprintf(
- __( 'Trash it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=trash"
- : admin_url( "comment.php?action=trash&c={$comment_id}#wpbody-content" )
- ) . "\r\n";
- } else {
+ __( 'Trash it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'trash', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=trash&c={$comment_id}#wpbody-content" )
+ ) . "\r\n";
+ } else {
+ $notify_message .= sprintf(
/* translators: Comment moderation. 1: Comment action URL */
- $notify_message .= sprintf(
- __( 'Delete it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=delete"
- : admin_url( "comment.php?action=delete&c={$comment_id}#wpbody-content" )
- ) . "\r\n";
- }
+ __( 'Delete it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'delete', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=delete&c={$comment_id}#wpbody-content" )
+ ) . "\r\n";
+ }
+ $notify_message .= sprintf(
/* translators: Comment moderation. 1: Comment action URL */
- $notify_message .= sprintf(
- __( 'Spam it: %s' ), $moderate_on_wpcom
- ? "https://wordpress.com/comment/{$primary_site_slug}/{$comment_id}?action=spam"
- : admin_url( "comment.php?action=spam&c={$comment_id}#wpbody-content" )
- ) . "\r\n";
+ __( 'Spam it: %s' ),
+ $moderate_on_wpcom
+ ? str_replace( '__action__', 'spam', $base_wpcom_edit_comment_url )
+ : admin_url( "comment.php?action=spam&c={$comment_id}#wpbody-content" )
+ ) . "\r\n";
+ $notify_message .= sprintf(
/* translators: Comment moderation. 1: Number of comments awaiting approval */
- $notify_message .= sprintf(
- _n(
- 'Currently %s comment is waiting for approval. Please visit the moderation panel:',
- 'Currently %s comments are waiting for approval. Please visit the moderation panel:', $comments_waiting
- ), number_format_i18n( $comments_waiting )
- ) . "\r\n";
+ _n(
+ 'Currently %s comment is waiting for approval. Please visit the moderation panel:',
+ 'Currently %s comments are waiting for approval. Please visit the moderation panel:',
+ $comments_waiting
+ ),
+ number_format_i18n( $comments_waiting )
+ ) . "\r\n";
- $notify_message .= $moderate_on_wpcom
- ? "https://wordpress.com/comments/pending/{$primary_site_slug}/"
- : admin_url( 'edit-comments.php?comment_status=moderated#wpbody-content' ) . "\r\n";
+ $notify_message .= $moderate_on_wpcom
+ ? Redirect::get_url( 'calypso-comments-pending' )
+ : admin_url( 'edit-comments.php?comment_status=moderated#wpbody-content' ) . "\r\n";
- /* translators: Comment moderation notification email subject. 1: Site name, 2: Post title */
- $subject = sprintf( __( '[%1$s] Please moderate: "%2$s"' ), $blogname, $post->post_title );
- $message_headers = '';
+ /* translators: Comment moderation notification email subject. 1: Site name, 2: Post title */
+ $subject = sprintf( __( '[%1$s] Please moderate: "%2$s"' ), $blogname, $post->post_title );
+ $message_headers = '';
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $notify_message = apply_filters( 'comment_moderation_text', $notify_message, $comment_id );
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $notify_message = apply_filters( 'comment_moderation_text', $notify_message, $comment_id );
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $subject = apply_filters( 'comment_moderation_subject', $subject, $comment_id );
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $subject = apply_filters( 'comment_moderation_subject', $subject, $comment_id );
- /** This filter is documented in core/src/wp-includes/pluggable.php */
- $message_headers = apply_filters( 'comment_moderation_headers', $message_headers, $comment_id );
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ $message_headers = apply_filters( 'comment_moderation_headers', $message_headers, $comment_id );
- foreach ( $emails as $email ) {
- @wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
- }
-
- if ( $switched_locale ) {
- restore_previous_locale();
- }
+ foreach ( $emails as $email ) {
+ wp_mail( $email, wp_specialchars_decode( $subject ), $notify_message, $message_headers );
+ }
- return true;
+ if ( $switched_locale ) {
+ restore_previous_locale();
}
-endif;
+
+ return false;
+}
+
+/**
+ * Gets an user by email and verify if it's connected
+ *
+ * @param string $email The user email.
+ * @return boolean
+ */
+function jetpack_notify_is_user_connected_by_email( $email ) {
+ $user = get_user_by( 'email', $email );
+ return ( new Connection_Manager( 'jetpack' ) )->is_user_connected( $user->ID );
+}
diff --git a/plugins/jetpack/_inc/lib/markdown.php b/plugins/jetpack/_inc/lib/markdown.php
new file mode 100644
index 00000000..9edc4ef7
--- /dev/null
+++ b/plugins/jetpack/_inc/lib/markdown.php
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Loader for the Markdown library.
+ *
+ * This file loads in a couple specific things from the markdown dir.
+ *
+ * @package automattic/jetpack
+ */
+
+if ( ! class_exists( 'MarkdownExtra_Parser' ) ) {
+ jetpack_require_lib( 'markdown/extra' );
+}
+
+jetpack_require_lib( 'markdown/gfm' );
diff --git a/plugins/jetpack/_inc/lib/markdown/extra.php b/plugins/jetpack/_inc/lib/markdown/extra.php
index 1f8f854d..f1fe911d 100644
--- a/plugins/jetpack/_inc/lib/markdown/extra.php
+++ b/plugins/jetpack/_inc/lib/markdown/extra.php
@@ -21,15 +21,17 @@ define( 'MARKDOWNEXTRA_VERSION', "1.2.8" ); # 29 Nov 2013
# Global default settings:
#
+// phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged
+
# Change to ">" for HTML output
@define( 'MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />");
# Define the width of a tab for code blocks.
@define( 'MARKDOWN_TAB_WIDTH', 4 );
-# Optional title attribute for footnote links and backlinks.
-@define( 'MARKDOWN_FN_LINK_TITLE', "" );
-@define( 'MARKDOWN_FN_BACKLINK_TITLE', "" );
+// Optional title attribute for footnote links and backlinks.
+@define( 'MARKDOWN_FN_LINK_TITLE', esc_attr__( 'Read footnote.', 'jetpack' ) );
+@define( 'MARKDOWN_FN_BACKLINK_TITLE', esc_attr__( 'Return to main content.', 'jetpack' ) );
# Optional class attribute for footnote links and backlinks.
@define( 'MARKDOWN_FN_LINK_CLASS', "jetpack-footnote" );
@@ -48,6 +50,8 @@ define( 'MARKDOWNEXTRA_VERSION', "1.2.8" ); # 29 Nov 2013
@define( 'MARKDOWN_PARSER_CLASS', 'MarkdownExtra_Parser' );
+// phpcs:enable WordPress.PHP.NoSilencedErrors.Discouraged
+
function Markdown($text) {
#
# Initialize the parser and return the result of its transform method.
@@ -1528,13 +1532,13 @@ class Markdown_Parser {
}
return $line;
}
+
+ /**
+ * Check for the availability of the function in the `utf8_strlen` property
+ * (initially `mb_strlen`). If the function is not available, use jetpack_utf8_strlen
+ * that will loosely count the number of UTF-8 characters with a regular expression.
+ */
function _initDetab() {
- #
- # Check for the availability of the function in the `utf8_strlen` property
- # (initially `mb_strlen`). If the function is not available, use jetpack_utf8_strlen
- # that will loosely count the number of UTF-8 characters with a
- # regular expression.
- #
if ( function_exists( $this->utf8_strlen ) ) {
return;
}
diff --git a/plugins/jetpack/_inc/lib/markdown/gfm.php b/plugins/jetpack/_inc/lib/markdown/gfm.php
index c382b427..dc71d49f 100644
--- a/plugins/jetpack/_inc/lib/markdown/gfm.php
+++ b/plugins/jetpack/_inc/lib/markdown/gfm.php
@@ -99,6 +99,9 @@ class WPCom_GHF_Markdown_Parser extends MarkdownExtra_Parser {
$text = $this->latex_preserve( $text );
}
+ // Do not process characters inside URLs.
+ $text = $this->urls_preserve( $text );
+
// escape line-beginning # chars that do not have a space after them.
$text = preg_replace_callback( '|^#{1,6}( )?|um', array( $this, '_doEscapeForHashWithoutSpacing' ), $text );
@@ -229,6 +232,22 @@ class WPCom_GHF_Markdown_Parser extends MarkdownExtra_Parser {
}
/**
+ * Avoid characters inside URLs from being formatted by Markdown in any way.
+ *
+ * @param string $text Text in which to preserve URLs.
+ *
+ * @return string Text with URLs replaced by a hash that will be restored later.
+ */
+ protected function urls_preserve( $text ) {
+ $text = preg_replace_callback(
+ '#(?<!<)(?:https?|ftp)://([^\s<>"\'\[\]()]+|\[(?1)*+\]|\((?1)*+\))+(?<![_*.?])#i',
+ array( $this, '_doRemoveText' ),
+ $text
+ );
+ return $text;
+ }
+
+ /**
* Restores any text preserved by $this->hash_block()
* @param string $text Text that may have hashed preservation placeholders
* @return string Text with hashed preseravtion placeholders replaced by original text
diff --git a/plugins/jetpack/_inc/lib/plans.php b/plugins/jetpack/_inc/lib/plans.php
index 1fa3503e..6dc43fca 100644
--- a/plugins/jetpack/_inc/lib/plans.php
+++ b/plugins/jetpack/_inc/lib/plans.php
@@ -7,7 +7,7 @@
* Not to be confused with the `Jetpack_Plan` (singular)
* class, which stores and syncs data about the site's _current_ plan.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
class Jetpack_Plans {
/**
@@ -23,7 +23,7 @@ class Jetpack_Plans {
require WP_CONTENT_DIR . '/admin-plugins/wpcom-billing/store-product-list.php';
}
- return Store_Product_List::get_active_plans_v1_5();
+ return Store_Product_List::api_only_get_active_plans_v1_4();
}
// We're on Jetpack, so it's safe to use this namespace.
diff --git a/plugins/jetpack/_inc/lib/plugins.php b/plugins/jetpack/_inc/lib/plugins.php
index 9c8e3bc4..0bffc529 100644
--- a/plugins/jetpack/_inc/lib/plugins.php
+++ b/plugins/jetpack/_inc/lib/plugins.php
@@ -1,4 +1,4 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Plugins Library
*
@@ -9,8 +9,13 @@
* @autounit api plugins
*/
-include_once( 'class.jetpack-automatic-install-skin.php' );
+require_once 'class.jetpack-automatic-install-skin.php';
+use Automattic\Jetpack\A8c_Mc_Stats;
+
+/**
+ * Plugins management tools.
+ */
class Jetpack_Plugins {
/**
@@ -31,14 +36,13 @@ class Jetpack_Plugins {
return $installed;
}
$plugin_id = self::get_plugin_id_by_slug( $slug );
- } else if ( is_plugin_active( $plugin_id ) ) {
- return true; // Already installed and active
+ } elseif ( is_plugin_active( $plugin_id ) ) {
+ return true; // Already installed and active.
}
if ( ! current_user_can( 'activate_plugins' ) ) {
return new WP_Error( 'not_allowed', __( 'You are not allowed to activate plugins on this site.', 'jetpack' ) );
}
-
$activated = activate_plugin( $plugin_id );
if ( is_wp_error( $activated ) ) {
return $activated;
@@ -64,23 +68,25 @@ class Jetpack_Plugins {
$skin = new Jetpack_Automatic_Install_Skin();
$upgrader = new Plugin_Upgrader( $skin );
$zip_url = self::generate_wordpress_org_plugin_download_link( $slug );
+ $mc_stats = new A8c_Mc_Stats();
$result = $upgrader->install( $zip_url );
if ( is_wp_error( $result ) ) {
- return $result;
+ $mc_stats->add( 'install-plugin', "fail-$slug" );
+ return $result;
}
- $plugin = Jetpack_Plugins::get_plugin_id_by_slug( $slug );
+ $plugin = self::get_plugin_id_by_slug( $slug );
$error_code = 'install_error';
if ( ! $plugin ) {
- $error = __( 'There was an error installing your plugin', 'jetpack' );
+ $error = __( 'There was an error installing your plugin', 'jetpack' );
}
if ( ! $result ) {
- $error_code = $upgrader->skin->get_main_error_code();
- $message = $upgrader->skin->get_main_error_message();
- $error = $message ? $message : __( 'An unknown error occurred during installation', 'jetpack' );
+ $error_code = $upgrader->skin->get_main_error_code();
+ $message = $upgrader->skin->get_main_error_message();
+ $error = $message ? $message : __( 'An unknown error occurred during installation', 'jetpack' );
}
if ( ! empty( $error ) ) {
@@ -89,17 +95,29 @@ class Jetpack_Plugins {
$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();
}
- protected static function generate_wordpress_org_plugin_download_link( $plugin_slug ) {
+ /**
+ * 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";
- }
+ }
- public static function get_plugin_id_by_slug( $slug ) {
+ /**
+ * 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' ) ) {
@@ -111,6 +129,7 @@ class Jetpack_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;
@@ -120,13 +139,67 @@ class Jetpack_Plugins {
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 );
+ $slug = preg_replace( '/(.+)\.php$/', '$1', $plugin_file );
}
return $slug;
}
+
+ /**
+ * Get the activation status for a plugin.
+ *
+ * @since 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 ( is_plugin_active_for_network( $plugin_file ) ) {
+ return 'network-active';
+ }
+
+ if ( is_plugin_active( $plugin_file ) ) {
+ return 'active';
+ }
+
+ return 'inactive';
+ }
+
+ /**
+ * Returns a list of all plugins in the site.
+ *
+ * @since 8.9.0
+ * @uses get_plugins()
+ *
+ * @return array
+ */
+ public static function get_plugins() {
+ 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 ) && ! 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();
+ }
}
diff --git a/plugins/jetpack/_inc/lib/widgets.php b/plugins/jetpack/_inc/lib/widgets.php
index 8bdd7b76..6215a98a 100644
--- a/plugins/jetpack/_inc/lib/widgets.php
+++ b/plugins/jetpack/_inc/lib/widgets.php
@@ -100,7 +100,7 @@ class Jetpack_Widgets {
// Grab all numbers from the end of the id.
preg_match('/(\d+)$/', $widget_id, $matches );
- return intval( $matches[0] );
+ return (int) $matches[0];
}
/**
@@ -352,8 +352,8 @@ class Jetpack_Widgets {
$last_position = 0;
foreach ( $widgets as $widget_id ) {
$widget = self::get_widget_by_id( $widget_id );
- if ( intval( $widget['position'] ) > intval( $last_position ) ) {
- $last_position = intval( $widget['position'] );
+ if ( (int) $widget['position'] > (int) $last_position ) {
+ $last_position = (int) $widget['position'];
}
}
return $last_position;
@@ -609,7 +609,7 @@ class Jetpack_Widgets {
usort( $similar_widgets, __CLASS__ . '::sort_widgets' );
$last_widget = array_pop( $similar_widgets );
- $last_val = intval( self::get_widget_instance_key( $last_widget['id'] ) );
+ $last_val = (int) self::get_widget_instance_key( $last_widget['id'] );
return $last_val;
}
@@ -628,8 +628,8 @@ class Jetpack_Widgets {
* @return int
*/
public static function sort_widgets( $a, $b ) {
- $a_val = intval( self::get_widget_instance_key( $a['id'] ) );
- $b_val = intval( self::get_widget_instance_key( $b['id'] ) );
+ $a_val = (int) self::get_widget_instance_key( $a['id'] );
+ $b_val = (int) self::get_widget_instance_key( $b['id'] );
if ( $a_val > $b_val ) {
return 1;
}
diff --git a/plugins/jetpack/_inc/polldaddy-shortcode.js b/plugins/jetpack/_inc/polldaddy-shortcode.js
index 55c28fdf..73fc0e3a 100644
--- a/plugins/jetpack/_inc/polldaddy-shortcode.js
+++ b/plugins/jetpack/_inc/polldaddy-shortcode.js
@@ -1,11 +1,11 @@
-( function( $ ) {
+( function ( $ ) {
window.polldaddyshortcode = {
- render: function() {
+ render: function () {
var ratings = $( 'div.pd-rating[data-settings]' );
var polls = $( 'div.PDS_Poll[data-settings]' );
if ( polls ) {
- $.each( polls, function() {
+ $.each( polls, function () {
var poll = $( this ).data( 'settings' );
if ( poll ) {
@@ -34,7 +34,7 @@
if ( ratings ) {
var script = '';
- $.each( ratings, function() {
+ $.each( ratings, function () {
var rating = $( this ).data( 'settings' );
if ( rating ) {
@@ -67,7 +67,7 @@
},
};
- $( 'body' ).on( 'post-load pd-script-load', function() {
+ $( 'body' ).on( 'post-load pd-script-load', function () {
window.polldaddyshortcode.render();
} );
$( 'body' ).trigger( 'pd-script-load' );
diff --git a/plugins/jetpack/_inc/social-logos.php b/plugins/jetpack/_inc/social-logos.php
index c7c7187e..3e4fdc6d 100644
--- a/plugins/jetpack/_inc/social-logos.php
+++ b/plugins/jetpack/_inc/social-logos.php
@@ -1,14 +1,40 @@
<?php
/**
+ * Social Logos
+ * Icon Font of the social logos we use on WordPress.com and in Jetpack
+ *
+ * Reference: https://github.com/Automattic/social-logos
+ *
+ * @package automattic/jetpack
+ */
+
+/*
+ * Those references to the social logos location can be updated
+ * in other environments such as WordPress.com.
+ */
+if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ define( 'JETPACK_SOCIAL_LOGOS_URL', '/wp-content/mu-plugins/social-logos/' );
+ define( 'JETPACK_SOCIAL_LOGOS_DIR', ABSPATH . JETPACK_SOCIAL_LOGOS_URL );
+} else {
+ define( 'JETPACK_SOCIAL_LOGOS_URL', plugin_dir_url( __FILE__ ) . 'social-logos/' );
+ define( 'JETPACK_SOCIAL_LOGOS_DIR', plugin_dir_path( __FILE__ ) . 'social-logos/' );
+}
+
+/**
* Globally registers the 'social-logos' style and font.
*
* This ensures any theme or plugin using it is on the latest version of Social Logos, and helps to avoid conflicts.
*/
-add_action( 'init', 'jetpack_register_social_logos', 1 );
function jetpack_register_social_logos() {
if ( ! wp_style_is( 'social-logos', 'registered' ) ) {
- $post_fix = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
- wp_register_style( 'social-logos', plugins_url( 'social-logos/social-logos' . $post_fix . '.css', __FILE__ ), false, '1' );
+ /** This filter is documented in modules/sharedaddy/sharing.php */
+ $post_fix = apply_filters( 'jetpack_should_use_minified_assets', true ) ? '.min' : '';
+ wp_register_style(
+ 'social-logos',
+ JETPACK_SOCIAL_LOGOS_URL . 'social-logos' . $post_fix . '.css',
+ false,
+ JETPACK__VERSION
+ );
}
}
-
+add_action( 'init', 'jetpack_register_social_logos', 1 );
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.css b/plugins/jetpack/_inc/social-logos/social-logos.css
index 2f2955f5..5aa7eef3 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.css
+++ b/plugins/jetpack/_inc/social-logos/social-logos.css
@@ -4,16 +4,16 @@
@font-face {
font-family:"social-logos";
- src:url("social-logos.eot?51b607ee5b5cb2a0e4517176475a424c");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6");
font-weight:normal;
font-style:normal;
}
@font-face {
font-family:"social-logos";
- src:url("social-logos.eot?51b607ee5b5cb2a0e4517176475a424c");
- src:url("social-logos.eot?#iefix") format("embedded-opentype"),
- url("data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAEZAAAoAAAAAfBAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAQsUAAHZfa1y5A0ZGVE0AAEO8AAAAGQAAABx4Dt9ZT1MvMgAAQ9gAAABKAAAAYEC7Yj5jbWFwAABEJAAAAIUAAAG6pEWcoGhlYWQAAESsAAAALwAAADYHEbeJaGhlYQAARNwAAAAdAAAAJAOvAd5obXR4AABE/AAAADgAAABeCDEE521heHAAAEU0AAAABgAAAAYALVAAbmFtZQAARTwAAADrAAAB5koHYmpwb3N0AABGKAAAABYAAAAg/8MAGnicrZ13mJXFFfDn3XbvVnb37i596SC9d8uLDQyKFXtD7F0RYzSGay9LDCpqjB1REaPR2CXCFbGB2ACR3otLWdje5zu/M++9QGK+fH98Dzyz804vZ86cOtczKSnG87zsKTdMvmrStX2vveGKG6YYL8l45qTaFqZ2rFc7Lqn2hOTaVinTs7zibW36ZyUXd3vVZqUUZ5jWp+fbkpJEJCv04mW102p7pbZLat2inTG57ZJuzmtn+rSb2jLf9KfJsGlhikx709X0NoPMSOObsWaCmWjON5PN1eYmc5uZZu43fzYzzTNmlnndvG0+NPPNF+Zbs8ysNpvMTlNmqk2Tl+Jlevlea6+j18Pr5w2Vf2O8k6Zef9XxAwcM5M+gAQPcn+BrkPsz2P0Z6v4Mc3+Guz8j9c9AV2+gqzfQ1Rvo6g0c4v646gNd9YGu+sAR7o9rZZBrZZCrPshVH+SqD3LVB2n1Ia6/Ia6HIa7pIcO0laHua6jraJib0TA3o2FuRsPcjIYNGOL+DHV/ggrD3Z8R7o+2Ocz1N2zgMfpn0OCDd/0QCDDGe8B70HvIe9gr8aZ7f/Ye8f7izfAe9R7zHvdmek94T3pPeX/1nvb+5j3jPes95z3vveC96L3kzfJe9mZ7r3iveq95c7zXvbneG97fvTe9t7x/eG9773j/NH2BhM5p96T3yXojZ11u18hThd1aprSe33Zru1uK7+w4otO5XWb1OXzIE0Orh/965AXH3nF8vxMyT2g48dyTcid0O3n/qS+fXnVG5TkF526/YPCkYya3vTx6xQ1Xzry2/Lpzb/joxqtvHlsyu2b6bG/27NoBs5NnF9VeUjO/8ZK02Q2vFNZMrx3QMD2UY83oVsaa7ta3dt3OmDV93ola0+1rSeu4WmLebAl63GystY9Jbo9r5bPoFAn6fChpy++Qcq23m3xres2V7JGLJbhgoWSPyJTsnx4i7QUpk5cpsSE3mshlF1vz6iRjveNv8gutvfeEmG2ue0Qypw2NpVmT+ZlfIuHtvvR8m6RmZkvlpEZih0la0m75TG+UIOV+CcLvSZDWVXLDz0ufaW34lJmYUKkEqV0lSF8guamtiTGOpL/42rx0kv27qIS518k4G1tJoezmmLW1qdJO5geyGLW5lHwxam1lWGLh3pJbtkFiKa9Gw5KzUlpLfZacjRILDaPrFozp+2g4ctmLklnH1woJkpN8nQmdDqHTrCHSaXOKZGWcLl01NNHMGOmqYYd0Hz5fuqofJ2lpsySt9nXmkkzsaSbeLHVr6C75FSlX9aHUSOprwhKdxQSPYMR/l5hXJLGKG/yScGToi1L5Qfl8oo5F/2K6ZB9xssx5WAtZL5NaHJNBpdRKATtHUlO+kkHZFsR+ItZNukjpJ7nNt0paMqvTBIAkz5MBNP3CAHZLWuMeYsMlrbGYkfQgFvGDkdTvl5nbuu2y9LayiazPYvdIwgUSbejC+OtOkpk15EtLNQ/Q8KNSq+pTxn+TAE3yCEmbMdbI+BfKoplxY6WPI5dFZfxZN7K0Ge2oxJ6H/ipt1B9BjIbq+0osWfbLVl8sE7Xl0wwjYVDN6xnZOAmaXmMjnpFCTX9nRDMAi28Z5n06IeZ8I7HD6OVcitxAA0Pp6oeYNiVzqGchXKszJdHeKc3UTzAlAjEfvCaLZzYygVoBJhN62bjyJkcaMQbIa9EiJiUf6uTLrEwDWZ/S9NdSPKdAGm18UtKy7yA2A5C9iyb+IBWzwoCsgJDJuDcajwms2+oOQNR1EqsAytKG+uHI6x3la7fUTxsv6ft3saktAe9SFmb/FDaq/GdmfJmkVrZiNmuIRZjsj9JnlWy/rd3HVp0pGTUZxCZJuZo28lk3hZ27mAU9Bhh8m9U6Q2pUKMCw0uXztKvF7Mf+kzjZ40i9HkgrYbCf+bIQKU/6rrpJu5wm7+JEnUg3gGT4TmK9TbD1dYdLuSwG2wCqcLERrNKtTOUpKZdTycEvvAtwyb8e+N4pqS3aSGPpG1n+8ZKWvgJsM1iayD1L0kJXSJEi3dyfQnJabPMoYKodrV9I7HTW+2Zi7xO7hDV6m5XfCjBNlFjVHazo/guYbCXoVYGxtjetv8w8R9dKH5NXCmiYtFHSSF2eCdahur8MxpOZ2fK5Ahr2jVYcWDMs6s6hMd/H3Nk03tnUecnEYws5gieRewP7ew4rO4RDexVpXfi8mlbuA49dww78SOx+zvAaVvxXGr2SdT6N9cr6ibXLmMa5ONZBkgy0hwlHugg4/X2qJJ1wT0xmcPXZMb0TBNu85qflWK9fL8m7orfxgkvipCFR6+UOlMSTjo0l18y03hMTQUsP95U6L94ZCwL57CAL9tInUvCIYkl4O1cGcwa4acuX0kzGXI5GAXPYxHgfY5SpfweVpYY5e9/LfLI5s3ar5Od9IRUXvQo8HgZUccX0vN6USBfV46Vkq7dY5LSgJUnd/QywM0qyCtaBBedHSzjGhdeAu/8IRj9Gaux6WJKtiSRJ6oZJUqO4TGqkT5Ygi0VOvZUd2c9QlvIJCKdfILG01lI4FUTyw2wW/jxp4Dt2O/9spnDqAsKWx/u6/tIBF2H2a6AEhStt7Bo/uB4K/w7MCvYy7c+NhRlQ3i4KfCophy2Q8lsvM8ElrICRD3JMYqPyOwNFhUHMWi5OcvWYag09xOawjyVoSw9524HwY1gjk8kVtPmVYBi2lEPctAyk9ELMDdfuLwKEDpfY7lqOwc6PZYDWvtWC+crVbfdUsAa3+e4AmdCcqMMgJm0ZO9JIpd3ZnJ0tAquyD1JyZxXfdZnkyVA4UUAjq57xM1NrKcEZHLV2IwGfHAlO3sqKXjiUAzd1WQBq5qK7fQW14hwZPtBZvExqzftRgg4fS3MzdknQYVI0DrwdBPN4Vwu+MZ2u9AFeahV2zLDm3T1S8qOOcgRszQZpfunJrM12CZZz3a/sKB1tPRfggWDJFKpLAE/GNRQUsRNkMOZP8jmS9UrvIW0N6svypXHWQDnN6eCgx4+UelP7c4uUsmHVb8py7SgDRYOxt3/O/bpiHcuzqo+0lCO0lt3UDgBnk5NPkFjauxJ03SyfY4Gvy7+Wcl2YsbmEoKNkmCsIuvvxGGmtZ0pTn4IgMp6Q2NdcwEngvH2pjGwge9Z3J/PfvF2iHUHUe31potc8KWmEIDT9lrEH3hoT3HfeGnqA0tK0UBUguFpiZ5/IPbpKYudBPLU9kiMyJOpuHkcDKbmTItegrQLOmp7kpJ+aiB1PbBYAM1pis+Rg200vSGxpnQRv9peMhs3uEpOxr0iWTl7oFhX0lclCjHhE2u4OOdnPyucgCNBWGZweSII6sGLHx2U0P22SesVyau1iCLm5MUn7FYrmPWghcyp34yrWry1Q9wDEVclKwXUmG7IteQIbBAx4X3Cw/8ni9BsPHuvFrbL3ORlAR4EMu+UWaakRirtBELndyqzXtJceFwghaHcIoNrNnaXwMFkxux7M3beAU1gD8HwKTfHh51JlYR4IurWgH7vJSKEWgrDsL/cEu2yXQ5bVQV17YyX2+WcmIFU/v8gEN1vzR1I4mZ6bAaLkLsAzhE0ySLWRCya8AZxR7jvi1zZ8RkyQqzlGWjFtp3HGpkvnPbjDk5WM7u+H5Z5YLaSrN+YFQHsfsFMH8inrSBsCtXbvePDeFvBTXoxzLtWzt0iQ110+0x6QhgpulCJlhVy57PKe4xj2e6Ce7Ci0qHzu4xLJk0Nlf4VeyBA8ZbcvA498P4dD88v3UQ00QSnWTuzkIsZzGhD7J2JPcxd/6McCInzB3ZLTWQZklwvBbIZASdfeJr1V5Eus4Q3OiGKssirInk1wIi3gqbZxvbT8YyyY8X6YLQMtUX4viyOLaCu53NOm02HzVhPidD/JEsqlatdyRR0mM7I19dEABzcpGwMz0bw3pgwNOPJC0EI9jZpHAIxX2GRQSyY7uI5hdDwL/PFPabE7K22PlyY2Z0mwE85hNXdCuSfBz5YW5dywOGkmgJ06MJb5HtaoOzTrDuiyfilgsHukyYHXAdsvGcKz2YL7LoacmPIOwJ78Lf2VAk9fcnSXA2OATR54K+tkCXLkLjAtrgVxCg1p8h6JhnOk5kw5EmYkV92Y4VJ+WDf5HOX5+UusWQrPN3qtZP0e6nSRYF4z+lUTqbTe3B9NbUGhbZ57IfRc5cmg0btiQSCfHSRrcjQkceFOTfqfgnyT+XasWE4SVyQd26Vyc5mR1SCILNDc+zAjA5+W72IoirZgrj5HGalT2F9JzhGclmukUip3gx2vN+G3PcHQp5FQH02N1AboXA96JQe9bJjpIMc9ialONqGAlfsyXYLvCqA+7DVCXJtJa/ySVB2kG7ML5LMDc544S2pqppuLzkrmmrj3CgWxe21nAJnfAY/QZ8TMGUe63DiPrwXHjJVZHtZWgiJolsJH/cjz1kvmhP9jNGh01H4Z3oV/9FMD+LAZYBluedsRSLmHLR8Q1atdZiS8ji2FY2rsAgqdyzHZ05Mjs+cXqZgEYt37ncRSc8DXt04yNScWypK2BVsrp91mMsdZSBHTchUI7zwh8GzqKSbV2hhXTQeh8u0yQflmzNPw4OP3CM/p5pH+j2ghh/OxmLKiQtSx9tXHSbCjBVfbbgjAWJHkfPK2NCBkWmpkvqzmw6B2mPKMqzhPw31oogzIKokHfFsLJqk3lL3CsN8bS2MBc7urPFocWS9T7Cotb4TZSLo+WtLBFdeGtQm7D3KfZq2dFKOL9MWxoHWVH9CwUH6CGu1bwu7Znzl2d8OhfNJDan6/yLjhsrluuJNjB4YLM/3vw4UFllaBrY1wecFwOfKNl7E3itUhG20DCF0phc5wG0NkO2XzJeg8Wfo+JgnAH7iLFe8L37p7JyXh1zYuYmmBAaUNglhbXwUOie0vB0HLzkh07yR6VsBMbxtzWSb9E5DrQJlUSJg3WwHDFwa4yv7KaHeOZWm6gz1OO5vLL6dOSm1FPhLmFG0EZVrIjvVzaP1jWK1Vc6X+Qg7rl5Re/zmX9yiBTvP6ZIEnk8H02p4DlnpVGircwuwit4DbQi2kUftnX1G2xMCCaW2Qbpz1btQ2fzcrKrRi/Mj9SRC0kJEy7a5TJeh4uBTuFiFNCBVy40TnxGbuF/j8wT/K5+khzl2KSfBOnTKEvmwRs83Lj4WR+oG7ZNVJ0lp3Lun+0rML9DOe1kFOypmMOQJZXXMzWFZ4F5C8DHfH78H83eX82jqIk9R1Mp0qYcOUMbRlq2LCDNktl8rK7YRz2gmFv3lTENAyadJmuycFn5pORSr34i4rEv7FJMGAZD8KBPygRGch0r+OgNEpG2KhACLr/0LWPumvfjsQUIs0zaRKzndv+o7QsWv3gAe7qYhlvhxZc/zlgn/stolRAv8awQwwihJ9w0UJ3tAEotE07pERi6XhD8dI0DoTSAemS4RRtks6A9Pr9EYZsU2yvkJYMOQiCY6AEu7COSDDHDWfWJUUH7HAjzwlOHL2sb5eMx/+Xu4Fu49VqngiGgTy2UGzQi7LZF0dZJkWp/rF1hv3ILeJxF2WC+Szg2aFXJaroFWlkWJrs18SKPhosSmMLOGOgHjVaY00jGHLfb7OsDCyUnL3CA1q90MF5YBZuZ0cY4jQyeSADfInmCAj52sKDxL42IPsZ89CPodr4GuabPL+HyQqkCXL/5WcA3NOO4QVhUdxJF72OTKQFF9K9c0XSskGMPROaMSdbWXG9hWYYV1fHfIwWUO7vRI8s9iEIi9HnWDP5FwusfwnjMNVpu0HPls/ci54ba5UWZ0FfMzhznxmWjQUP2znCaFm3kQ03WelxLr9TmIndzwglIBc6MEl1R2uY8xMiZ1qovM0538KKV55iX0XcLf/XEK75/sBnldeL3cjmByhOWIRkwJVoeKnZK6j3JclVojc8pwrETFAVkEgZn3FpnCY2isrPlCKFSFKKbyM+oOkufBi6accVqHsuSjj2PNPbnWYzK0v+Y6Wt9uFPBdOQGKlMUDoLYntBQcUVOjKdUPq376nZPUQItKMfF+yBiOFXQN70gVp7xIg9vMJnLaLpLGfBBPZH/a5Hv8eDbDe7jNAvd+DJk6RJrwFsYBcN0qMwupbkAoCY9t8ngR1R/t6nzgaEXpIclV0I7hMhfJS2HdY1DYgI/M2cqrP5bhQrUywjOleCWrpMJ5L/xjY2wHbpNMjEJCcz2X0OyFazUg6WII08uOHpMUP/ijBj0Jt20VIuBfM4eyUTgbH7HpDimcibK4TVGCyj9NbkCnZlcpTIhOtTmFEfSW2B+FiBdKfnYtBo8yBc2AiNTSBLLEQvrWRK6ewGayp0gcVPLhAP/9TItFBWKI02W8HeGaSsGRmPPqIT5+V4LWh0vzLN0jRz+n8fYbxxi2CU+yWJ7g9tyHez+kgqdVcfrkfQzjY/ful7LfvMJ6XJFYBiqvmolrXH3wK/fu90OG2iTPbeAdgizyy6VOJNSIwMLtMcL8lvU2sI1dDusSqRwE78C9hxFldHpZYKndZQYV8tkVgd+PzAXjX/BWwRxzR8hsp1g1MXPQcCAIRSjvEZi3hBiBY7N7PZWS7LowBbDshE/fB0K1D8l0L57MRigGO3G4bQnfPSKwUjNX24SiLPZAt6H6cBIMulNRx4FqfC/L7b6THPrBq85DFvM3p/VEOmf0Skcqiz1yPiH/S4YZ3jAYu7uPAcSshWlXprjGnmUBp4KQPMJ1NcqZsDXxdw5FxlOmA+liAnyk1ZNEAoNFcL7n1IKEk0OLaZlDbc0wDln5gHoxSj0kA+RlfSc++3LTmpJ+k+B+MzDBHyAOGsWJi1HuDP2AIufyIJVvzsLTrCYZD7TPRP+88/aPBvPOEqKHXUXOj8+Yl4rHz5pENeVA6N1qk8f+sFtWi/1nN78B1+hAc2RNg1ItLhYjx1sn8vR69kW8nQaGPlD2xpdAz7ZHV/CTTVqm1XXgLhxys9bOgS7vud6wCGPcjIdZM5gm+U0mZDEFnJonCwsBLh0Uq/EUxaCtAUyp2384+Ns+RtH0vA+cwTL/+Q4I9yE1VarkHJcVmSEwkv3a/cPi2+iPgxlaGoQerBLYFNo2rbvoeFT/K2WxzvSdpnWSyqvwww6ZHAw3ioL8wcMReLZ/jdHE6qWb3TzbBmEq5psoRn+mNuB2YoIbd/a+o4iJipLUkbSFkrMqht7WGp4qgKMwGc6OidErP5NNZihZjWIocJIY7ixjo76TSD1BimYJB7fLB1Nkdc1JJk1keDdLykNj/MAx8BSOxUyV+22mr5xdA4OB8bojREhx+rnQ24SYJRsH2jG/vO3GEGY3ehd0zvUfEAMx+vqCvLrcnLtnXx0aTrfdjnkBD4cmxQjBSAwKg9uDUClQuWYItbBlYIc+AXcHiBsarZg6xBokt4vpMgWl/9SbhYNgr+71JozESXAHbAKdbw13XbNly0CsiBlu2iCAl6NBWZBs3CLv5b75DTw3z4lu27g45BnbDy35I49LtsaTeakqKYZ1Semo1Sc9CLFiRBaIFjeyF7irkFkTa4nhtNIWmc2cQqWyruR5SW06+TEBaOgfqRYWso2HfU84Aj8IQerIKJr+vcaugrZtcWQXtUVbLd6OQFXS4VUdoOiPo6fwwNFnH86GmSdB5mc4PxUrkrkuCUp9yDqSarZfk36MimYKY7fOVwmNLQyfL2pmy34NwVkc9IX+fFHrMjIblfXNdLFmvJSFvOwvr8ZCQhc3fv4Xgbonw49aiBNyN2KB7CwCozRLEQhN8aX2HrD4qEhlTV+iFbJBEeIEkdlwEAkSOkg92UY4SMaRbAuQFxjyuGL0LusqFiGT7l8os1swDmRN7/0aYCIPAtAqttGqqVaUT6RtvI+08Gkf/Gkbu6XE7pKC8SurMEVMEv+6XqLA9DS9ysYAvdk/lXIND9qKGtG8ZgLuPgKBpDxPQh+16XEVZJ6xATnItIApqM33Yjsc/iDq2RbKlkc3gLakYedZ6j6PEWzedpVv/mEmL/A0ZAMgKCak3xVcFbomKvQXO5yNZW9JexrCEK0s/gzRpZshmqTNmbKwYrp4b0EMir4rNJBSr6VNgt9Y/II1ecD/sgIqm00BuqjkJ9xYqyEtfAd+BuYNmuSDcHSZu1h+ioci/AtH9FZMQ80hGUFvbqVkOIb/sAz9oXbNcIJ9ylpa9gwDr3zvuLrVMnxNiv91x5BdrWVF4FVmnlYi81yPbXC/MgfskMJ3yfJdhDoOd04A0F8inTOEwBLlaRktLvWJmxDY0V3dFQNDqZuAFrKRBq9vguOT6DUU+0S8Bh55Bpt3xgKxY8y9PI0bc8ecgywWSJfzdL7OZ7g6oPK2gVaWHYva+x7XCfApmRAPX9TPp9Xn4rq7o51zsQyPHbIVQFl7yVczcVnEIxoLJymIBXe3SxsQCLadBqGHLgDe043ZVLC5r0xqQKi7NtUI5aCG7nBhWAi5XY4hhzW2JGloXAxhXV9NcXT9eA7xtsF6x81174UO6g+A6qAqY0hVEs2DBDOaCRJo2802iO21aJ6xpGnvLj9dAU6faFvuWObRGYjCHJ8q5uiY+pZcTNea4RQ3HqwyLxqsMix2StpVYbjS+5iqz0lghYvrDMc24O0tFJ4peYGRqVPLPt23YwbocfrtE72yOpbq6uhlBzAVR1cYGIjKkcamOjdYhyWBJfDdYhiBtvqbFAiWp/TwWT/smUe4tEy+sMW1AG50fjWd848drLPfjRRYFKxV8PheLF3nZj5fTugdi37sBhePjeODQKsiYsShTkAoGA8JwlQ/EllPjwUTaA4kajyVWSsttTSxHWSw+V60BN6UXv707scCwobY+UaM0sVia5gatnfQ28QZHg4XlW7L+lKJqGAvOQXd5sORS01SaiTjIwYhCUEYsHtNydycg6E7jLjsdVdCeAmfb6CE15kfj5R6IOVrBWeSZgfT250Su1u2Y6K27H8xIL72gioLzcwkUomnd/XiV3sHCBOUWJc7Mc4lz9HLiDGpsWKI7PR7zE2k6aD1belb1hOp5OzExuTHReDkkiAf15gZ9WuLYKkLQ2Z11YE6IG+z5qmXQVSpL7ERpYv3LKPn57dLQnXWUTIZvR7BgkrntoQ9N8gxVRLkQKZmHfhRFp0nKi2l9id4dCrAGE011U9OZyoR8N/vgU4NL/HiR82Nu9sHnmOghsTExN/uggTHReI3TzCENjDWHdDnWHFJjWOyQli/x458XJMqdHwvg4ODKJwago1sbDOa6xGC0md6JtO6JKXWMHVJ3bAA5quMJ0q5L1L05APegnOaeGID7wWkPJsrdGSBWbq+wOz9BwdzEoDMTc9BmkMIqlWwWs41OGXlXI7SmEl9mRXCanTrX3WUrONGHo0a84Fyu/xlC29gXAd4FYNgVOQIhb7MPQ3uCqteMkE4mPuqjL5qLGIw8uxhh6wKOTK/9lNqPwGDdPxHb9MW6ZRN85U9pLiZDO+I81AjPfyRt+49A+90IRXUR2jafvnptjzkC3C7+GY5m7i3AbT5s8lRGaefD7/XGkmsM1HHvS30Xs8ufof8fIbguGo1Wy0yEQlVifigyPv8sZqU8ZA66/M4n0d5PyMiKhV82fZtjGkuNy03zMbk9KtU4WaTXmZJdViZYunw48enCmJoshOJbEV60vu0Qsy5Y2RdBAhro58NM5SIQ94vs5FTsaKciQ72IRdRAP8lwRbSwVOvgZKV2bU+kCYMQmChnNQDWcIcwHmq2bFdCJaTB8ddinpt6l5SrFbzhrFzh0e2mR6TZ7lix/Qh92ErYAbvkQkSASz8k/KlRCv36OpuG8HDt3/34rVCWuDT0hsHYRz+blafD+POg2FYTtw11t5/epAeuWP3k7ikVXtrufF7SylF2bgSG7bpPCT8EPY4Cxr5AxDVujOpSegLkmd/K0D1M5DKBTLXM+AUN/942EnyP9sCrloqrkOoWYR3yC4ZcLYWPt1uQHPTuLH3XXyXl+tWrES5t9UcOnvu4ZA9skA47Yw/YGbVmZ9iKztisDkTEE8GkdJCaz97FKR0rxKj93TFAdHMljYNpNwyQQj2Y8c8YA6Vhx/ozOqAQ4rIV06XKdtiqymek8CqWuh7V2x6glZnZXTf4zgjOaYDD3CJ7sbLLuYnVwhYrD1Fu3XUS6zKNNNjInhjdReCvMlGSdEIukfWqFOkka2FLOWI9GMEGVBWhB6DcNnATYquiQji1YbAWc5KN3FfNqJv2fSxF0hAf70PXoxqH6lHEsPms4lZpASfQgCgzG7O8pP3SfjZmS0nvxwL7ovQ+PtZ5nBq4yFTUElmwOPRhcpDD1mH+noH5WJ2qNtCnVyZJWgjqpQLeRJCzDLoClaABcDBXsPWIGLCFtdWIlBBi2+p3jbOmUomvk2KoYbCKVgC/gGRQmllj4KKUYsktV/NipO3VmLejFnIknOrslUKCNXZGqrDLJnlaLCisFlu1SFwzkGzpQZXNCDsjWmewmIzAI+tVqRdmacNAHQpcDOklA4Pn1AK2DvBQKwIKO6P0LCx6lIUMMaKqrsQ4UVUYtOph2I90rgk5Yjn2OU33E0PgVgNVXdlPilQgqa9dILFKJlyLveS+hJK+HPYsWQddjjw2GZl7BWClYp1ablcV/9SCubOQrTdhTtMCMzZIDVWdmWSEQzlqG4pZXvZRDB+0mY7hSmvh9E0+Fk09oMOb+nNaORQ7IChbYs+OFY5J+SDmDo/dfa6kbcGoeg8CPpVm/gK3s2+1xNaxEhnTONDrkGCmz5TErUhOOzP3JmRZ3VCtNGMLkr/WBIKjCFROOvCmWim1IFE80ILlzsbOIu/6+Bw6C4I0+dKe6XctjSLt74hwfgc6vDboB3YjCMmLSWwjF3MyCpj1bcBpDujAwwJ0JQpwMtiFmDQuRZa+FIuJhe2ixbKFZ6utOOcXy2RbgU42tScD5wZu4HRHbgByMYXNWyGx1BslKLzVd0fV5OsRROOn9rx5KPey+1P4dQ5UIaudHguQViGozM7i5I1ZgYBsJiqiOUDjWRD614xAM2AuR+J5MttzOkf9UuxM1aS/qSeAOgf46RkNGJWmITFH6tuv2MvqMyW2FNnzWkS8WwdL7nfrJdiKhf134JlmpGUL0Vi0xBDrOyybih4wavIjC87Vsupo6XIogk38JcxQJNLVCE1QRJoI56oL+rDuX0P2dZX7y3SXjp0F1Siwdhn27gMgrCuwDemORGYzjicdsUFbgy1FC4zcxm0D5jEyGoX1/1fKy76nNrlqtKPeAaWYotRg5bpLMJLdCMcTg1Sfj03Kco7Wu02+KiyUchjOWfahEQcPlpbHVbk0D/WFr1r0ZGvmUnKF0hHfLjVq0xvCDQIMDj31KypnvUMW7USbaZcmS8LPqIh7ocpWcxQNej4dTxvUGBMqon0yUu3I1SBFLsJMpIpVEzH1OIyj1iMDBn5bnVRoxd2zHpMuSCa78i3t6U2BMfupwJML3sTSnMAc/WWQZk5DU3QmBlIjQfiHy7DNxInoTU06A4dMEHzuB3aVgtml9382SkMrJgJ5KHMOBLps5BA7EMQSGa6IGjQ8jHZhKvZpJ2FxPhsCtx0S2a445Jx0q8Gg4XSgoxva1C63xALh/tHolXsA55IbmXawmHeO7JDNO9ovjCxA0sfRQ4+gtk2NqCaqn1JR5WuQrFVY1Cr3Vo3uLeUdEGjp3GhI2rRbLwPZgrzLcBrZ0sUUq+wQ8x6waJKKq1E/h+5mQzpt94WIT+ESqgfppIEBG0t8NUZBJIyfj+abFKjQ0J9RX01lQZiU/aQRg4k0DArUcF5j6uAkLVG/NYaGhcmSlbtPKrWBPO0paXYtnbRALLAG36D1UFVr1xkn3rarz1YlYeVl8TFXPxULZKI1DNxu4bLY8SCiG51Ynmq8QRXZSwG/ol/Z8dHcgwNBSp02cgiYzAj4phG0tAUK7bOj/WKMsf4q8T3YUW1nCbbi4yL3mpwpW4MgYUIHaeQwEDYKb6eQGQ7q7oWt1HG/JIz4boDyeUG56fPRGhm5e70+kBfXPyYNPwqSv+RnP7JP/q6UK8m7/xq4oxQZurVnqtAK2tJJ7sAiBr7CxeAynTLf0cfgL4y6g7QNJhwpl69LcBa46E7IeHq3DV/GUiOVJi6ZUMMsHSD0mEt7S/lX5TyhFRx/iPIgnha2Xgly1vdOBmPQM9YWCRtEzAWcEEIHeknUpQXj9GNxSREwE0+Tuagp4aSHYOew3cCinAXAGsAxBGNMXLI0OpGmff3b8uiSXRELRyBN34V4vvxNWElTwG1ej3lGgeyBre4lsbx/RP/nyP4fZxiOCNdjkjjamfTqYTGddSwQ6MK2qMJUBd1mclQdlgTrwS5X/RJ9We5e6IBCsCywZ/JxAtoDXskH6EsxZcm5S2I7YWMz8PtT8191RdsGb6f2rlu/5cKo6BuEgXFjBdRi07Mq6KxXSkCFcBpUKR+v+69yJsDEqiIwgIlw3BLxdRUBvefHBQkKHgoU8TS7F7uedA41GlaTAsbafTuD2dgdzLMZlKm2Wb/eFosHWHtroBmb04LiYQFUbEUgA5XI3R0xgVnm3kkOvv8HnAYw/5mfGqn6HzDvXEVtJc5wUCi28gz1JDuXIWxFD5jKFbHt2Wiw5G7xO/tTZFsgGUpROB20aYmYbun+Kb5scdWWxJazxQoGChACGiXO3xV2E3tq3DkdT4W67v8O6YGmVqD1f50YIdxiDENiBdBD9RgKFLwEdHbYQNh+rx8IGYoekFgRJvFKEpkiiFhYFNO+IurKhwMc1r8KRLA8DO7GnncDVP88nIU+QmOxAYunLoPjKD8bWUk6LG863Ff2Quy9i2cBHWprshwEObIHK9H+KPUeRuLVQh2LcpUrT8fLDMMg9U8IIO0z4DR2liuaGhEq2n6LDjhrZczxZqbtPJpok8VlNwy3k0FQrAVYvvdHNdMnW4LB6Op3wOhsgMMsb+kHvEsNwofyI6CVt61TV16Aoiu8zZJz1BhoC1NQI6vKfiSUtVBvhEK3xIG7Fi5jTjlh+uN1UTUdKdVgdYGOsjpC4NtNG9UT6xlVgWZDhOc+Lnnt0Frl3imjHA2ZqBdP51v8IDcNvj0XxVqR9QOOoh+0T+5fY/EbSQumYmCai4nyqT3izRwHLzcaEjFDyz2YqIyBtLo656JlhyigwYitt54SQ5/v4XJps8QPLIIKMcPZNgRbr4pzWJFKrPjrUYXX4AmjYqGN+DsVcNZWAIvZ2Ir8iJFkku5OK7xyJ9TJ9zFcNPsyWSMVrZfilZKHgdpe+NzCOj03RZDredXxoIjNJc3uTdc0af3XXVgZOHvl/dSHd3aqov0rAJ33EYXkvQAVgS+JasRtA5p25VDxxLENayGwtsgy2dkVlPzuKU4X4L4Mi5jye6Wn9eiKS2EV1dw3BGuihJr6eQtTW6LrU+LWiyCRsHeWFEuHx9+HQC0b+8+aaznq6F/VQcc6eycaaejMuD/GcHgiQ/xSmBtzVR+/OGKriURduhnZSUocP0oZKnXlUl1ECoZnikxSbuCQ58wxgTlEuqwX8hWcKUKwafPgUZ4/0xSy6yYLr6uMhwMk5mw7NNDP30gzGbxQkLUnFq97b9AAhii4gcDETpoLGCFiMjlnSv85mBDIp+CGtDcZioq0mpYG8GsbMRfYg5Xjftju8lekjb0wbLVIJvdwXdQNki5SYd0a/hZToUeJuiGgaMAr7ZwfkKG9wCX4Di5yA5GrHIGthAYTkN1o2sUZsQ66phcjDCfdfofl1ELYVw3eWWOCNGlOqOKPIXWn7wQt4mBl8hFzlmOqlHeSjHYPQJ/zGMODX04W/GLSsPVJ4jSH2oBeZO4lbhnwWAI41KiC01P1TxP48FfrjCFK6nsADCFUcmvegIjKRWafjcWrBvqZi8i9HEFjNiZhmABJwPJdFQ/0U22DtIgWlmoyp+cQTLRX+b1rB4FG0E5Qx5Zf+BvtvHSgnWAMMiRzYFyCKbZjPvThVqTkjVjkJh8JvlT3db55xkAQyWYCKAq1KKv/mx8nd2wp58GJjPWid9+J1EBbqN+uBi04115aNZlIsVzPGKXWqy8lS90oKJfew8EY5LskICJ1jCSanIvBIpgTFyEsrUNb0AFGC111SVyboooU912kJJdqIasSqR2Ws+FFvP6glmY4lbog+UgNaDD1qGBQJHI7qLfweHjM92A/xy1OKA3GLZJe+yKAGYdYpS/4bRz2P337u4KqPrj0MrUoQsa1AgGeBvIpyPK227CrqEB9B8Xgggr8GBJp+iiAybqdK/xwmLUPoZ2Fjwq5NnHXcm2aIdwhGvRCQksGn1Lx4RDaI2mE5qLxNnn0JEiLJfpW/kzdrIs5heUQ28qhZy9l8WQxUh1Zqz25jnUIMhi9KOBJz4hwLhfee9AgY/85yLfNIYM8/Chp70PQ8Oef/eayxNdGabzEsqCHuiMWyBdkuKmyZUk4jE4NY7O57EvhCC9/gPHUQz+2gFDbrx7WR7izWRKOC+/WnCBQ0/zVtdGSVPWw5CKDfFYvzHrkQvvzjDOBdy9r2G5cFZdSUNh8jO6mIWfiyReUAXKlpuFU+wVy8WJMGZdCGPRDoL32vlhclXe+DNaAUy3Wly52Ppe0s4J5jnZa0/Ee5PDtkDeov0TxcTF9iQSJph9IW3PweWyeHtPXOHioRd9EyVYlBBJaNbVLUjcv9EaqgPQe8uMxmHf00oHSU7WQt5m4+lNVouoMg3osDSFcG9RqvFFhWsGwCEoNx/Wfl6hqmcd3zPN+IhZ1s3ZCTlZCVR26OmbQJolhK25GDefC1KdzWj/NDKIfK3MIY4aZm7Vc/Lz8YJtvIu1cSOVXEOH8YSMip2fwZ31hPgZwunH6jIn60Kphc+3H6ofznu9CWRIE+/XohgRlSVPPvCiJF4+hfiUGfpkwesrJwCvqp8lUE3sXi5LhOwZCP23lt0zhFLQQ71LmFLinE3+CwdPiWpE6rlntAJcHfSFIO3X2KXA4kuG7FnPAKEd0BZznsCcnoJK9G07orRRp/8zvJPbJvfD1rw/SKNZtd96l+dL2WVgsnXC2NHYXazuhA8P5E6Z072zk2jkLe5YPZsnw7oSHOA1HWRoyx93BbtK8RLlE7kafcqrwGHbOQCn0AUpX19AaMMRd70nOLPy07WuQ9R8gDF6NZ12rp5Xfw1bxTgjZ96L0hjhr/DTFMA9LzdXHSM6OKwyHeQpCvf7s93j8MvugYxmPprh/Cp5lV4OJ+1k/2Xq3CukcaGvbXY1l4EbUSdVQizsRIexvBzH05E0+di9lnNR0E407huFo3oSYFHN/2wSXlo3SuxmBaZhtTZ+tXovXoHv6I6NQt3/1+E/6IaYvj5Cf9KUiwuOm4zXUXj1mU3jCoQB/nWTMj7PQUXioJ9LwTlLj0aOBvUwmOPI2JRYvl8Sxq4D6EALNLugceKBGn9DAyhK89Ssk9IzZqqnU13qwAa/D+l+hvi6mpV47FUNGNRxX2q0OX6eqZgwZq3oiiFaj8NAAH3/oqBqgCz4efwwWlCFYLOcsV4vem7eTnFN4EPODRlfHHSncgwQotlxMH8+pReha85x62y38C8OpXMkRbFRpgBqcg+yqP0rE8Iz7F2qof4xW52D1SnAiJOXUe+s9v03wjdemJdebmsSm8iYUqkUTHsskPngNa8y0j4CsNHAjWkjb7EtbNYvkeq9Zrne5l5BAR603MRBNC0Qht/euxu2gee5cIGon7DbOnxIY/ezQMDPk0k0E2TvppuVj2KBKQ2kad1km0spldaiRKpru/EhJp4Vi9cBKsRZPCPsU8jH1ibgSwY66PtJkScKm4WruZYX/saiqxuLFIrH4ZP5LdrLL9kJtQJQfbUOmPBXXrIuw1HgRWffDZ0OOSlkZ/nMchyjOMNPOl6xLdmPk+sgohunqLoKpfwGrtIux1RxdHk3U3YXtsY9GZAHO6wUXQcUMneg3LOd1DWQ8OxFp7cRGbDPPPBHg+OzSTPs74gFppiUGi+3RTRBoXU2jqQ5uUWoKVO+S+OPVLK8pSC7YWFugSyHdlg3gut7HzasGvSqPqroMtvMqcOJZz3HmPH26aGf83krZyTF2D4wpc+QeEwMEVPkhJeXMPom+5qy3YKUzlVBh81A5OuVu7mpn9w3+aIdCWAP97IL+ZovLkNhaxqQBaXbL1ZqmLnqw+Y5GaACaGCcxRv+0JM45FQlVJaSdPiy0j9GriXJZN/UHOahVgkRPOhg3BBlRBzfaQGGqJszMiDaZJyzTHHWqbUbdp85BejRlJCXq5UpPoMh2KLm38GpTl0TQLp4RT/ODIu1ejWm1hDP/oaoh9/nEQYqjhNQFUD9IpXQgVhjEIhU1Z8QhYIWDD6kYojlfFTqFqqT7b8eyNFBUpf1mfqTG2l7/DT24cTmdUcN/KSGnPBSpWTI+7VBE4geIhPkcikgIQCRLQg0zNbvwoJnToaAkWZOUhgIdmfRcUxCynq7G73QR9qK73T83HuhnIs3kQNvlzY0H+vkbaYm6xYE2VBBm9GB3bjNpRcw2f3uCsp3Yk9dhtFKDeW0z15Ga6egzYktxAioGUGNcQWlYHr2Pv576uOgNo86WtXoc1aVPeEITwnCDDBPSEzk1Hguh+/PgGE9Fv6yOtsd9GL0HtbL0vg6zrDSU0439/MBXqwZbXzfKTzjObWCVRrVj7OojyXN3tmqhBE0lfOKtn7LUOE8704VDMAeRIE4L9l88sLeLI6YWGk04XnK7Ocst9bgLL0rEvg8y1EdP/WFNkrrzKu7D7v5itCHYFpkxQnXYlfguhqDWVEqLVMNWsVwNiM5qh3FMeUPRHH47dB1yYF5PEdpDuCyT3F5yUlkCFRDr+49apHFnUMRW3xUUsW9DrvfjYc275/kB0f0ex/rXThJUoT7WFwbr82JOeOAsU8kwyShkqjBgUKq2HoMmFU6RYcYARxFe8LvpepYexe6xyABW9lbOuwOC3SOwx5iAqPxKVA/HrZeg8/YYrjyStSuw49JSnTGG4o01YnJ7XyRsqhe5AXpwXWtu1DGurhyzF+EkpEGyuOBc1m4Ik3NheX/kDTi7TchS+0lfuMKdcAnSIKQIfsRmCA9ImCE4kQ2BXZ7wAN9XLmCg8BWm8kYIYe24fY7ywyrM2uT3pgnhHQiCJuw7V+r7a7z76HVMPeiO74SWoj8QfQR63SuR2w74s2QcwyD8E7ntb+B6Pxu59Lm4WE1sDenSaYEcx7wpdLwWAX0jD5T8hKajCdnOBpybVLC3GiK/DHsOPJLt+uncj999DXX2GXKWHki8NmLKNFjf/uzdkltQkVEG3XUCZFXjm4kL7z6MWJPRMkMvmgIeQiljdVN4gbLpUclNxYpMGcmUsCscjttrbYAhyeId0wwscopgWiJAq+pFMniLIwUJZwr6RXXbTXvMd8+t6KN0tlKfQoRWrBwZVQmBDLbdZfRw4U1RIfzNYRjRJvG8Gj4qSoYYHoyxOzEpLIJIXIXOJYSGR3JlHb48hXAB7FgpJ41njexHH0fjpCs4mycHbSOalRSc/5q30uUobCDrZsM76ZN5avqbjO4yFe93D8llKmecp/5MK+T/Bbhd6LOsLTuqZnMqYQ5yhIarGRYi/kp4CX04suLhaGCdubdM7YsegZKpRBtye2c2v3qSywuebqhimHvrlBDfibFYOWuaJ+yaacMLdOhJTD+c/PXxv95rEeqXb/JDgbhup5pwY5q5G42YvqW5K4m5zsJ65i/16k6FMCGtGzCAE3s6DEkN3g/qJf8V3go4ZtqFmOFUImf+GvW9fVNfmHwb7WIRb8Yu4JnebghAlTXn1TfbgFVOPWcUrsrpTXkfyX6DKefJPI+zQboyZ61i5498EypmHD5UakM5CAVKNx7fMdnC4tk1r6puhZdQivBVS+Ohhv4IoVRalLZMmqtHkJ6G0OaH0lgg796CaHIXugvstgKncvC5eic6wpG7IJdLQt9N7Aqoq0dkGmZmNXgIpF0TczF9MtSux8+9Dt/2fXrf9aI9KDJ9QasZ2yl98TL5dh4ac1K4S3iooS8c5Hkg0v44/1xagvnRGLQ9l3AHfALanTQcFvkVbGl2fwje25Wvamp0cLzYJGPQx0mqjuOg9YhiMmrUuC8cdCXAK3B8LHfv19i1Y+Bh501DuvzZFKifeRC9X8MRfg1ozpsW69DQLkS69D8cDuFrhEnHRmEh7rsDmobWnKXIcDbt2NshPVWQe1apH5c08spcIEWG5Co/SaEX9arp9ynX2/FDeWlW1XhK9VapLBDNpb7/qp9BGuTWx4u5AjRfSXRVyGltlZrrJ3awyM1kONPRKo09lcM0JRsfuQpEFFUQLBk80Jg1VYNo8BlPo2YFMoBEltZxJzbRRCJNPc5PWCyNHoEgry2e0foii/pmHimkihl3s157v2M7D+dt4hPAz1dwS56wgAtvFLq7mXs4giEOWR2vRqfB7NaeyDbN+ZiJ154YZLlAP2v1xFJS64T0XZ2zjmdZaUmzXKBZ9m9oG45fhRqk9+2UwlroUIfH//SqVNfJ5ffFftOr8rfcKWUMuxCY/OERphRQ3uZgyrxZSeM4VW0OpqqbHRnsCOpW5hDO/AAp75jyBGdu7QfYec06Wx0VUVx98whnY8VTxhGNLljxJNrXN88DGnjHztGTnXmPqtdklu6MIYgkeiFo7QzZpUGvqwD87p8ikkhkBQ0+hVunMyRdrkYgoNhaDkIabvZ1IOhwW9XFOv8RCJisCsNbaVwEJg1OjFf+bM3dAkwv3mrN7WDJgUi3egHNfW5HIH4tVoSnl4MMohuNfHeRtW3GTtNE1jLVdfglbMF5XAP5lLVsHsVaruOMtDs2yMegXtbS+yIaVFVWzvkitwUtt7ke5CulZNCrQ3ibqQ2+3YZaqg1U8hqaUY20Xiz2lUeRSah4BsQXPGfN+8SN2D404c3e0BQNni+p4yVPdUIQgClRewJCqAIeBbQbMvhWrdI+TD9V1bSP548asX3bB9Ud4e0afTi2gKtMX9uNNHHltvgjF0iLd2OBIDoJBWjFGUqrKP+NzYIKvOrl+nBm9ZrWpEplrEJwkXe+18o7NIHHlA5rXuXH2Wbsoep3M9Ad+jyYOhGoZfoO9flD5abXZpleoJiPl50ZdS9n2zJ0B50wa1LjnA7OKyimr7oGJmwmG0WcmhOlf8EQ8SaHd7LlXjQwHKvHaaMZiznsEvWRafeCnD6C6x4R30yf0P5qaNAMVeHmfTlzxExPPd94QNH5I9bpYzga4zgrfaeHXb0r664MVjtIwy+m7mlF7NuOYzO3q/kw1Ni2o4IJ2IouwWbZGp4xScVgVR/4VSuV5k+D25nnyXm5TLbXw/4iFR19Jk+5DEcbrw/IDef5vkzePRuunCLPEqXSFA4AqgTUZ0zkxo45ctaZYKtFtj5PHQJSktqxwiEQV5Iq1lg+qDGe30bkeJeG0/VYc0hvcgdcYAx3f9ViREIx6/z81LcaT0/nmaEux/p2vkJl2uWq0FGDHX3avxl9tvd0zJFQTplUh5qc16SV17LNGAs1XKqWlaXI1o5E4NznRmluBP4M74Dsj9rgc60czeWh+ccxyalDXEzwxPUs7CV/Adnr67i8imY6ovykJXdHD/8zNNUNcBXPQsEObhnE7HM85jQHf8tFEO1P3orOzq68OY7adjxuHL6wm6bQxiDG2fsMmKf9j0hLObCeDexe7uusgBDIUupo7KqO1McoMKU9HMJbrbCZgd3yjkFTKhV/5EXK1fpYF3zOshnY6FZ8C4TxYqaK4Z3eJXkzRxucaT/h3ZMBY0B55foqNKPXoHyumt18CelUwWtAaWhJyeIHFAR4P2+CVFY3n3IUnG15FFRHn3OTiv8G44xZCMHWHr54wGqui25fc13kobLhsQ9e4QugI/905uxmnq/6qUe1LakaGsrrJJ6aaNePgKTbAMTw+pxdspYR8k0g4/ojnkASpKoPd9yRuxxFaRjVPS+vBjEU5tlhAJdvAhn23ayyBILlc/UJD1Bmmzw1GUPNXgYAk0MMcxt0J2X6Ukkp6zIN7DUNE2KtqllYipXE2yuil8mC6glSg0f0Oqrkewg8ZHxu0tZylGMSFAaDDWOjL1MpScyNUndiQi9BqhucC7btpVQZeFKH4eoz7fIaFqSmPnZggf7LKnXsboLhyMBKDoxUVykWX6UwF3SYZ2tNdk40vsD6xPRyuIB7kg7sGK7KB+/Y8qiOPxoff3xWOhbzGzvmJ3ZMe83ghNzDS6syoEN3zK242wH/v+/4oeMPH7RSB9Y/Wnjo+un6QzJJYnz8DuICOPiN9VcwyEXVDjAdGKmMPwqvEL0tvn+ufLx+VBOll2e5EJ99FcIlWDsKLOFW14Nw4Ej8tx1ze8GO5R6Ycbo5AFvhQBaDcFMIqCvwKbvu/kPlnGPeN7b5i/6+PgZUjzS6nGC/PpF/Odv5DaR9TwQu60b5uOL5qZRtwu2picPShIeTN1YfOGsCA6uPOqI1jGAlhuNIBm5xZTgdDeVFN2l3MYYQ+S1dazW4WOqvmKgzv/KXdmjM/fCEs5lIviWmPwCwAl3n6btjqVhCzeRC4wquGOyjSVF2ezyK1znQFUNAHkt4rvPIAmzvP8AQ8jIG/dnRUvOoDD/ytvUu4622EzdzLGtRtzZexApwzzfCQVWp3oRONqhDIraZdVijtdSXCT6WJvMmgwSmgQFPw2dIegtF5gihjTb2SnjKz3dA7tsUKKVm7B+UAFPP06al0XDkh+C9t428rrk/TWJfIcb5DJPmX2cCMEs4Fj2xhf5Doz6A8BMXdyfuzfk8MXcOPzvhQc8Uw3DrazudoP+yXgLnXiFBxiblv9VcrMsbvvUu4kHHLh/AdfflhxK6yPXjXYQWUhKT5TbjFSce2LfmRtaz/TXAW/FWsBJGzp0RE+FzZLrwEqlcqGEbvCV6y/3I3C7E6FsD5Y1v4YZVZ/ARvN5Yij//0GJp4xfOeA/egf2Fg9QDvLGYV+wRpNmvbvYDHqPkFpDNS9BqGqhNV4leOiDA1Vhn8ZNDdg3iILW03qDvD5yF7fPPbUBdn2KHuBfBLJ5xPK/krDlN2mvooPbyQHTbJj8wDe6I3aMyLZ0gtdQR/mLY2wks+oRlEruYt7hNP0zDlaTog68VT0GaTn2kmfWQJp36RINY/tEyvGVKMTHkH3EQ1Wm8AA3yDjU0eKGbEpVCR2MQcDOAs0l/ywE5xTasRnNBymYR8plLa5X/QJ6Pm4FtxDzKw8aiHpMqXn1zP++gse2ozXnf0v1Ui6dG04dFicXrGl6RV4ikAU1zP7BStd4Ev0nD7w25Ii5GEeTwTjSjhnL/1u/eeuPoALsLOWG+vnTLy+smhyeTqy6LYgVpAnF+6nFB084Ukjeo3U+j6Bt2SZhMK6XrAoTpPGTuMpJbGcf46C/rOLpa/S/0pX/3woSLsQ9tghqygH4wVLeUxKrQ27aBBlNb0YyZ6vXwDjhtggmeqWrGeExt79QUWQdtuG0blcDlmmlUVwdZrhL341Lag66/W1fV1GisnJemK0ZQfFuzC4FlkOP2rfFF1YZdjO3qjMXj4lfiKO/XduCjLN5i1Dd8+U0d9+5ZCF05Zsvqi618n9OQqtQP9wzjgfvxInHYREm+zGOigYNXFnyFi13EjZMBydnMs/VJI0w4p6SmwP3PXxKPRU6pOaNmZmFkRkNBKPJgTUFaZFyNxAY0zCySLPkcUFNA1riamQ0FhZGuNQV8p0XubSxIIZ4WeZDPGQ1kB5nInC7E3GchwHXhHAMjcCpmLUsR1F/8ePSQF9K+QTZ542qEMepy7d5FhfxrUtP8pvVsi+r6v+M5zvdRfrzyJIu/9UhlbvEICsMJluLCiIGN+80TfYszGT88fToluUZ1DKngPt4ddSxWLpqobH7zonSaCVyF9F11fnkKYxcegeZST0YRYREeJ2PDq6/AJB/GMqeoPiAFrY0+IY5vuPGQmvzKJqmOogyPugjkmGn5nfq4PK9+d7OAEnwZQo+bwAMvrBam+DqX87ND6PFsDU4jLRA9mDx99BIjI/d0WRgdTYq62KIRaaWPTQseM11xSNsNW3YYaFTpAX10WxUpbnHUtyJZh9UW1+EiDL5UQSKf3Og5XSmRhZCjnhshjGd7NZxC5uD4uVXlWwr2euoUrQq+Rsi5yvsNekPpvBo1Kw/P2Tok6ukIr5U9Tr8tjjRUX5m8ww+Yd/y8hG/xg5/RqlaJQJ6q8NQw90TMfoOATyx65VNoqSkjXFTuyFX6dmAusEVRe7kM3L47Ihay3rRvXCOCmi+HlX6XWk8jcnZPpmw/U+6j5ijo4d0RUSlfhVzuctxptp8CQm89O15r+3nUevohP94gqS5LvtNy5LQJxC8Q4snr1l99+vTlmNnsAnSfe3JF71F8i/XXHpzps4peCg9KC15fcudjOi+mjdwFmYrzW+DSxg67d4U0xuo360vR+tRwWRwPNqtmp2GGhqgb+Nk6nM30J+qkn0/RLj/OVX3627GGdtLJA4g2X3wrxgMv9yKuuA5J2jd9lH/j5qtZxOzO5RL9aZMaJcKB8+qCSdeT0Eqx0n7gf9VA2YVmdYbqom8tPrI+qj8uk+pA1UnbmnkqQZ9rax6lV24Dhmrud+dUqf4I4tXMeTGILn0WQn+gT3/jLRVwa4rQ2eRXjf6CVKr7lUPb/FFweng7TKEYWE8bwOGFbVcnIeFAhItuuBTLPn10J/F0m42/FRUN59TOLCgpfDorY2XGMzOfeGzGzBl/+9tjr7+YlfVW5jMznn7sL0/MeHLG48+8mpXdzvSJgEM8c7p5xcv/L2+6cHTcmy7IuHgKxgWkuSCR5oq4N2JeinXI/K33t13gnk3WB5QT7yn/P7yxnPn/XxBOVug3he6Z/wc6K4ayAAAAeJxjYGBgZACCS9IZNmD65+4+GA0ARvgHuwAAAHicY2BhYmCcwMDKwMDow5jGwMDgDqW/MkgytDAwMDGwcjLAgQCCyRCQ5prC0PCR8Zsy44H/Bxj0GKcyqAKFGeEKFICQEQAJOQuTAAB4nN3OPQ7CMAwF4OcWaJMmaSRUJFCHqEjcjRtxkF4MEzywtOZ3hZknWfaTvsEASjynB+GeURs9+gIn3QOSXsWZuOSKDW858SHHvM5dPl43YiRKL/tpAtSAl2qimuFjOsHbtAhFoAB/89lfnHW1q5qxMTbZnW2tef3wJbTCb/CPMwM4ACwLAAAAeJxjYGRgYADi0OesrfH8Nl8ZuJkYQODSz919cFr0/23GV4xTgVwOBrA0AFr7DRcAeJxjYGRgYJz6/zaDHhMDCDC+YmBkQAVMAF+2A5AAAAB4nGNiYGBgYmDQAkN9BgcwDSJ9GBQYlMBsiJgolNZi0AbiLLg6ECnF4AhWB+H3AlVAeA4AdyMJHQAAUAAALQAAeJyNkD1qw0AQRt/KkiHGmKRzE9jSxEistjDYuFadyr0xQgiEFiSfI0dJm3PkAj5LRtIE3Bi8MMybH775WGDFN4b/FykblrwrRyTslGds+FKOZedXOeHVoDxnabayaeIXVZ3YsBaaOGLBh/KMT47Ksez8KCdYbspz1uZtkOoJXKg505BKBCqJXgbhUp+btAlVkOpuoJ1CqpbrmDuZlaLuyXCSDxKPhKepZy9dP4Yjl/+gCO21CF1VWp85e7D3BqT0+9Sn3uW7pz2fxFMn7Xp0auXOcCkb8+CSU9n1dWitc3nmnLPPKv8Br9RH5wB4nGNgZgCD/wcYJIEUIwMaAAArwwHdAAA=") format("woff"),
- url("social-logos.ttf?51b607ee5b5cb2a0e4517176475a424c") format("truetype");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6#iefix") format("embedded-opentype"),
+ url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABtUAAsAAAAAKlgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAAPQAAAFZAuk/9Y21hcAAAAXwAAAGWAAAEWDeg0QRnbHlmAAADFAAAFNMAAB686Rw5FWhlYWQAABfoAAAAKwAAADYWJB25aGhlYQAAGBQAAAAbAAAAJAQaAi9obXR4AAAYMAAAAA8AAAC4WgAAAGxvY2EAABhAAAAAXgAAAF607K3cbWF4cAAAGKAAAAAfAAAAIAFAAKBuYW1lAAAYwAAAATQAAAJGA4c4LHBvc3QAABn0AAABXgAAAg1QKrNaeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/Mo4gYGVgYOBnzGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHD4yflNmAnH1mCDCjCACAIwbCEIAAAB4nN3UzW7TQBTF8b9jJ6lLAbep3QABQtKGj6ZSF30ElogVS16gj+8rZxZsypmcqCzpuh79ItsZxTO+5wYYA6VspYLRlkJnFBvdLfb3S4739yv+6PqSpc6qvooyplHHPJaxGZphNrTD/a5LZapTkxZp/fAAfRHEWLMazVo9zmoTafxv1n+PQk/9xi13Gt81fjyOn/zi935oibzmTPNeMWFDzTWnnDPnghd84Ua/MdNu39LwgQWfeMOUE1rt7j3v+MiVnlNqb0fa4Yo1X7X3z7yk0wImT1jlcz9O8sdoe7i6ydU1vXn6A9WAvjRVg74y1YXAVCGiMNWKGJmqRpSm+ik5pkoSE1NNiampukRtqjPRmCpOnJpqT5yZUkDMLK8/zk3JIFojf99Z7o24MOWGmBv5OUtTloiVKVXE2pQv4tKUNOLKyGvfWH6jQ2PKIcPMcr8NrSmbDPemlLJrTXll15mSS8Jyz6aD3NdpZLm3U2lKuPrPlHXSxJR60tSUf9KRqRNIteX/idSYuoO0MPUJaW10fwHJHpItAAB4nHVZeYwlR3nvququ6rtf393vnPf6vdcz82bezDt77mOP2bXXe3p3vbZjWK+x8AGYgDly2F4wshyQcxBhK84dEyOxKJESFMgfwFog+CMCgZRdJRAlSoKMkkiJIiX5IyTjfNVvZ2fWkHk91VXV1XV89X2/7/dVC6IAf+hH6KawJZwWHhY+BKUGo5Of74XBoD/OwoD/st44Gw8XUDttr6Nh2ua/JG8b1NAGyjbQoF9FYeAzEyWN9miYjQe+x2gILaCctsdhFZpk4yCkbeiszaA2gz6rCFqgBtUahYpTtZ1iPD3ViUVZZLpMw4gQUSWUUKdQCuN+Y1ZFVFwVKSIlR3NUjHQWGLZbDqYx/s3msLe4/aF5URJ7H1q//zxlMhGRZwwRQcTwChUmUQWdRSIRFT0uNufjyI2ZJsmKRH2XKKJkyIb9eFIo2gWZulGPUsQQlWxXtnRqfkq3Ii+xtEKgFp4tWeb8DKG4UkuIOkMI6dlMwoqIRVa1HC5Wmsv279AfCbZQFqaFI8Ip4V5BcPtV7FFWRb5n4g6yw/54NOxCzg/7G3g0bENukOWCH3BJdvFwA4NoMUu8IMxA5ib2B202GCX+624t0B07Cq1i3XnuacujuiFnO3JBY4F7bOOrelAISFebrwfN2DSLTT9OIhX9GqNrqqfbqngBf/qJJ9AL1IrbJZklsVdxFESfsGxFp2RDIrKh+vZxpBeURtUqtjqtkuVMTQe6Jz2iyYZJXcsrCiRf59fQG0JJSIUB5Pl294Zd1EENE1WQV0WrqL+BQG3a6aAfeBQetIfjMOEpPIIa9LqvmqixXN+sLzfg9gLcrP/aUU1T5ckrLymmqfAEzRsqPIfHL05ul1Sra7omXF82XAMuPp2JXr8Bc9KFCGS/JQitvWH5gDCNMZd0g3pBZns0qYPG2sPxoN4PWP6AryBvAPMP4JXxCK3I9D4q58mjHaoolCf/Hju7N504dtCsE9+tUAM0bL6WTs3PT52bmr8B7XVZ3pYNGa6f228Zv8o74K3O84RPV87nfBNs0RVCkGVVaAhtYVaYh9rRAm43LLGGgv4mSUO2gHyWspCFaRZm8M9G+R3dJOSboi5+A9Re+hbPUPT1X9060zyzZXW7vws5Z3t7eyEvocNgSJ8g5OOYfVLjd0Z+dLkzunhx1GnUah+H7FSn0/n9SZFPjd2eny74wpSwICwJh4UzINlGFw03EFi/Z6IMLJ0F4QZi7TThMAKanIKVbwJwcCTwvSAFEIBm0DYI4UnWBYUJ86Y1NAaoGSJh5cry8pWnefLzhSBtFdXazLu1MtqeC7XeZusLZrG3yqiyfCQpRV44tTquNdPxc63aTLWgxBuN4DXFmeowSUznY6dzqyNIviwRSTq67m8+euh4OB8F7bW42HexVbApkZKNF4hkLvXdw1d6K4XI1IPosGEVHcNQJQCMLUG6tf5vgcYzQRMKoFkCYmnGQPQ1BOKHHckslPphNmJIeO7iM888c+m55y49c/Ei3C/euNR+9tk2eubU0XN/c+6uU6fuOnd05+xdp46+dldcPnGiHPPucT7GdXRdsIQ1yLUa1Le9YNCaWA+H1pQN+hyPOfJ2EMvGUAly5SCbtjcRF+i4xjcDfWx3t9hqFREuNZsDohhX1G2DyhhhUZGUE+ojIUaMierZkumJCCcYU41aj+smRl/wWkX+soeaxe8Xm/crFM1jLEuyiXEfIYBD6AUVmPa6KqkEI0RNmOxt/WhxL2ICwIE/GCWjwQgMq19DPncXFTRgic+BrovyfV441x+N5lqWbZUdha0pvf65heUr6MbylZXhg2vyZzYW0jmMR5pitTc+I689OIR3bmEOH0sTYrATwfVhxf5g4pf8XEC3SoTbeG7t8OKxtLV96OTle88sLh5bWXr4kc2gVpur1dCxYzDcyUPbrfSXjy0unrn38tOPPLy0snudP5yr7e3L36MnQfdho1xYHSwOMA1WMThY+FSlV6n0Vnrlcu/bFZ6u8DJ6sjLJ3JHc3u/fg3WUhA2OnLnftcHxgsVggB3YzRHYzphv/T4ahYGFJmULUY5bHNMY+sgPVV1WTYmp0nsJ2XFUiWDfofYCUsT7maqyE4whFbRlXZGlE0imfyaBOnCMUunuyy7lG/kc1mEo+sQDpdJTIlNkDTqTpJ7IRPYAQqjIAVC4ZQtcTye2YAFmCVkyWkWJPxjV/XoK9wz+v//qq2+++uruVXT11TfffPXkya2TJ9+8582TJ08e1Jfze/oCuzZeR5RvW0400h4whEEPqgH5uEw4ugCzaI/aWW4F4z5HkLAXMI8FnG2wgEsIyMht/Tq7zZhvGQoTCVVFERybBMgrEcM3TaLNBbVAxDKVNcuNl+Kiq4oMiUEt7JhM3jp7SxF3nvIxk5oiIbLEmKXCG6D1kkQlHyPqqpJbzOqRojmuSHXGbBEj19GUqJ4VXUkvr0gM+0/tcMW9vecTHJ2erPy2+pAJlMLaGDh6rriwZrAgWBs9iIqryWqjsZr0my2vAv5j27XIzkfJET7ZPbDbvdZY3Vlt1Jtud6sLjnrB1LOd/fH/Bb2c+2vBzTtPfurArQRIBuwi7Ong2kv49NbM0enpozMrszNRko7HpyKHnEdbnc7sbAdYi6Ftn50+cu7IdJqG2akscoIBPOp0YDhyYM1NYfEnVg1umY/8thWDAiU5fsAEDq7+kWa/vxPFxkyt1jFUsngWd3+jOFUqTRXvEMCN/vF+EBlgwIZq1FW5tbADbUolYU/3vgPzAeMG3Mg56p4Eco7FZzfocz1KkfBhGtXHyWoC12JjbfXelSsrcK09NJBQeqYe1ZO1Y2tJbTXLxx29c80Dz3DARqaEZWEH+PUlKPfDKgkDj5mE0UbaJWl7mG0QWHPDFL2q2N8Qh12RTTALyCBwbD+XDnCkbA/JkDCK/ZKrgj0i1S358RN3FkfjYVopYFyopMP37GfHMysr51bKflQstVrjVuuEwlmTiX77p/eyV0ze3s8ke3Xl7MrKdHnTC1/jnY1bX52wsAPci6NCWRhCqX7Lj9VhUfawTWBT071lhQnIuJ27hoTvNBg0t20ffXb3y3qhoKPjkO4uL1cMzyu57g+XRTotS8tjRI2COw3Prxf0/Za7f/6l2C27cH33fuDpphY88KUYULHodg7Y3jWYm/eT8wLnPaqja7uft+PYRhd5eu0auoiuxc5bQk7dIH3wsccW9znmdfQaMDcNOH5jwgbGA8Aq5tcwh7IWj5E4InHmBuUh+trT5w+LjD6N/vV9hQcVffetnwVQodIjokzRo1958T0Mr6DKL44VCGLkv24uYfU/RQ18LqX/g27r7RdBbw/lkRoHTe7rwEOkXdDVXHYTe85jqyE3Zt+rAeZDM48jKHiTPc0GhKQrc9Mdy44ZlhFR9Fqpmg4O9dt+Ecg/RBZ+VZTqlGDgk8zwqM1a/syhdvc0uhEGd3dq1SlNZDWRaA27OirY64vjoxVPC6drQRviI+2FoO3bwBSUoB5sGc78Pd25Y9MHcP/4Pu4Dc+HIzmfv5THlIFd/zhhytwB+bn+BOdHkQcaEXuYYkuPDiTVRigkJCoapSlh0C5V2P+2UY4UBTANQR/Vqfb65lpQHtUJZMiW/Ws9RJQf5w++JpoMnZE0PqnZcc5VCmHXavUqxbZRkQmII7npxsmo7U0vH1puWOggaSm7vBzH9OrD2BcgBpQXV4ioNQW/uu/qwRZsQJ2/CImAxDfBvoP5AG8EGKPpL0TN2X9M9kWCx0yTteX/WpXNN0uyI+KF3yZH8qGJHypkzSmQj9DnNNDXGrhY7J0q4rIgiUou4dKJTvCp/7LIsX1YiRz55UnaiPR3d8zUfFH79bcjLeMQedidEws8hL6NdsoHDLjZBTzZgJZR5VbyBu8TEYQ9awEbgPGw34eEGqkLDLt6ANUJfvXxjUu6AWYPv1wbKAOr4+7B9KWdlAH3oIJi32juRIodH7jkUikmynjh29chKqkTDY+9FnY0luzgeucXeHJILgV9QkFpwCyomxNF0RVaxxIyZSE47kTI9BHY0GjXFyngz9mJcHVZ9r1yqz75zdP9w4d6e3Dk2SxqHT58e24YyW15qpWb80EF/0URJVdMrjVpJbA9ASUSDJOs7O8Pyl6aGan0l86JBX69Fmm9R0XD8gopk0wa6hSTRsh1qkcZsqM3MV8Rm1vGshZV+RXKs+WJtUFOYrGa/Nbx/1L84FjHr33XfiZFRWj7TqnQ1NZ1eqk0trgq344s3wFvWgUPPCH3gVAMfvLA/iV3XASA51xtNCB9QabD11mCUhJxtDSfuc3z96lXkb8X2TTuGNMgzgR3vXr/J/7bckuOU3Gsdf4vD29Y1J+bhqDMLkdLs9at/Ybhu0XUPxqN/mkd628Ip4T7hsvC48CzUwlgQ32XhxB8BxrC0TTknZRPACcJcmyb+cwOlHOc53kvcwiHWa4dvixknsCXddnWT5kBqORwkPQhtOEMIBj2gB310o5ya/Z34SFiPooLhSicIRZXmdtF0vLKu4eF9j903RJpxZOLgdr/oGqpc1rRvLJxZWDjzDp58Ui3LmuHu/lh3nMi2P23HNlwxxsHCoo8lSgozMwXoVfQqZp2cLhRCGMvQbETIg8gt6GXPCKhMJzQMDD28Znh8sN8xXBqUlVeq/fV+NU9eKofUNQpdPkxsVyfjnScMBwFwSmzb+DauvwF22uDxNEvBg2e5bLk0bzMjLtUJA7gaO69g/LI75J53ch+6L2Puia85lxRdueS0R61WiSr32VBpX2IMnP6offtc6ia6AajFABds8CUfBR6YhWwR8Eoa9kYp6/urKPNMDMY8SENOjiBiy8LUB5Dmx1EhG6Q9DsUYDDoNR0E6ORrMd4n/DuJ3Tt9BhxuTU8OJggT8LPCvMP4DhD6FPosQ+WOnPhfVygRk4szctVQjCFm8qlrEInbdmbuzKRGq3re94MhGkJqyQkXKNGs9mSnVNCvZjKKOKatMpK4ZBnGjVyqibyIIrhA+Dt2/ht4dzjWcAmRr2d0ztgO9lmq8CvBInIIqx4WxS/aSqYkiiwpM0hgWdTVs2F47tDy5QD3DVSRDIZKhmmVFDbx9HjDB2JIwl8dxBzHWNcG1MdrloTlgZAZFAN5JmYMmF8neY16+Ex6niSbe835JxVT6hfMSCUWDdj4yoDosfeUTPSri3j07I9mUZHnt1IVlJiqFOzjwtyVCujGSNAWXh0QbU0JKZgEzQ8dOoSoa4wqlBSIXLOxQVpcKpnh7PZ8XAsCgVeEclNoN8A9e7sTAPC2U54Ysr27wHfUmHo4Tuf2WIdfVW43aw82DvQzRV6Ij0fNUt+nzeiPSr+oN/ZHoMHV4Uae2TqMj8fO0n6f67do+vaP9Iu8CrUSQwhvP61FD/5iuvys64lL6vGHwF/kz55fyVL9V16YHmy7ylw/68D8UKkKX7yEPtmmOurnVAXsbc9ANM1BsdquKQzNvwpAwnZmOeXzpNL9VZzM7O710HLKz6LPZ9IuKYSjrm9NZNv1JfpJZNozydPaFdV6xtsZr1o23x4att+sRBc+5gFhCwdIWCMTAIEegyQeURQblVug4wfmfOxYlpP5Aku/QiG9i8J5kZgpoPqFbDlA7Kl7ARLqFQT8PuFAFDKIJ5Qf94FxGScPnp3MQBuZccwA+HT1quoHKzp1bI6Lpz87qZlydDTr0JYZM1b668Ripxy1r9EIclS0HWfL+2iZxwexPiQny8ZJRfoC1CjEZBJ5BBpgH9vCZAwenLza9QhwZMobIZHERBbqskSK6fvAYdve7KHCjUzU5sFy83jwRIbEhKQc5+1fycwubn+XwEwt+WpEyG4KPbJCNLJQwWHYdXU4SuF4vXh6OTj2erF8enkZT6N7HHnvsezu7/zQcPv4f/7g+HP6vcBu/fwBxBY9tKRtnlPFjTQ5+wHtA6cNGmrtFAFTgSfyWA2AGOjRG34+KZbVY0etuc0jG76jrvuM708BGZEWZLy+uq+r6XfesjWqVGH1cI3bNooY1bKoQ+s743bauoalFSlCxgVooTZPVpTXNvVPeaz8pb+aB6vIYlM8DuDS4ly5aR8EAHHMGU+RsnJ+u5Iu5YweOA4s+n1DaKBViSdKoHai6qjNnVEWVGcs2AUVM9c4d+RWR1Lc9P0C+ayFMyjYENEFRC0rgav2yRRT+3cHak+M/oK9DzMzlCHICZU+4Q8wm+Jh/GBlDDRTQ35JLD2ympaYbSlW/UZsLBrohWY65hMVGwa7/zFH07u33f/j488f9UrXcwtKJc96RS2GbPUnw3pnEDbA1B7jxBUEAgMoPALhPAxoLpCPLGUceKuEkj1Qgkmq1F4D45l++eCY/dIWLzzPNAa6Wc2GI6tO5amX5yvLsqdWp5YeXxwsSnV1cPLNY6m8li2cXSqKDDERJVZWIqEuMBA2DUBlDwEQKItMgILR9NN0za64cUYw77+194OHlqbWTsysPLxfbYrRwdjHZ6pegx0GHbn8AE2yBMZsSwUo1kKhCRCxKqQLY5PYraDmgCsaWbeE7cMYRNie6cetkkX8ZyY+aOanxWO6zOfAw/gkv5Xy+7wdh/rUvzI/v4eZx9Sg3m+ULV/0n4L5hURUCGVepebGiOExiku0iCZynOYRgt0BUTYUwQKHoRrP8z+Xm1lZ+u1wbLlc1UVFqhweW42Mm956llEnO9tJlRr1e5cI0hJuWIOxz5ZvAZnTwuMf5/rV4MJgtwDrClEoTPsJDyjC3RDYAvwOxVsKP6xtpr9GGJ8F+3TgDimIhvtnkIDlFZLlYrtfw7trigzbatohMJMckpUOt3oWibniOJIlSsDNbVVX+ecHx4r0q10yxtTo3vL4P0P/2OUCrP1l6KPpxqxaXick01fBRVFqYRliW8XefPcdvKC98Z6v1pKJNNT9fvDTs7f73PoQL/8/5qwuQmQJgS/Bv37pDMAB/SODpW5CirbxilycH9OAVYPir3M9PGBqIroN4SDj5EAwZ0I4a5sEiV25+hpDb4ybmupKyUYi+h7EkKwbTyOoDw7UW0ZihyBJB3BGJkq3LOm08tf9AhOq3PoguyIojqyKsGCpg2aIqO4rsF4OpoOjbtsNrgQeiyTPFtiePPvLRdeH/AKeeOU4AeJxjYGRgYABiW9k+nXh+m68M3EwMIHCrN68YmWZ8zXgNSHEwgKUB+Z8JIAB4nGNgZGBgYgACPTDJwPiagZEBFegBABdZAU8AeJxjYGBgYBqCGAAhEABbAAAAAAAArgEiAWwBxgIWApYCyAMmA1wDlAPABBwEPgS6BPoFNAV8Ba4GKgZ4Bp4G2Ac6B6QH8AjGCQ4JxAn6CqILCguGC8gMBgw2DHgMpAzuDUgNfg38DlwO3A8AD14AAHicY2BkYGDQY5jCwMEAAkxAzAWEDAz/wXwGABxQAeEAeJx1kT9OwzAYxV/atIgWISQkxIYnFtT0z8DQkaHdO3RgS1MnTeXGUexW6sYxOAHHYOQInIJD8BK+oUKqIzs///LetwTADb4QoF4BrpqzXi1c8PbHbdKtcEh+EO6gjyfhLv2zcI/2RbjP5o4TgvCS5h5vwi1c4124Tf8hHJI/hTu4w7dwl/5HuIdlEAr38Ri8OpvksRkYm1m30NnexNWpOuWlrlxuCzWORqd6rgtdxV6v1eqo3CGbeJ+qtLI7NbOF18ZYVVZ2qxMfbbwvp8NhKj5K7A4OFglyxDAYcFtk3A4LaNKeJkZ1NnXOL9muWzlvBRTGiDA6m54zXTSNGJ7vNRsrHHk6HJiZ0HqkvKfMWP4VhVkzuU6bZpJC2Xzb0iT0ETZNq8QUQz7pv3zEFCf9AkQtapF4nG2Q13LcMAxFdZ0VpZXiOL333ux8EylCEkcUQbN4vfn6SN6dTB6CF5wLDOYCKE6KQ5TF/+MCJ7iFDUoIVKixRYMWt3GKOzjDXdzDfTzAQzzCYzzBUzzDc7zAS7zCa7zBW7zDe3zAR3zCZ3zBV3zDd/zAT5zjAr8KIWf5m12laJSuo1ZZHgYK59Km6shVx5o8uVoHo5SyVOnAXvF1Q1fkkgomUd3LjhTztOmJtOit6abQ9JxDvMwyUDmMHJMYTBqzagbmwdLqcXZEb3NcdfuPFgfeGheTHIKca2vcRNq4zSyNFfOCeT71xiUKFNM6v/2rhOduoqXA1mqp9b70YemJQFqbVMZx3SpOe09V9JxMv28Pq0a/nNLGlOfl1OzZ1Yksrf7NTe3mN+KAIu1M6sZ2Ten4tSOXV2YmrnejTFF63+6YO55nCh1tdxy0X5xieS3dIKs955QVFcUfQjyYFwAA") format("woff"),
+ url("social-logos.ttf?5d3b4da4f6c2460dd842dbf9e0992ea6") format("truetype");
font-weight:normal;
font-style:normal;
}
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.eot b/plugins/jetpack/_inc/social-logos/social-logos.eot
index 9b8a76f2..e79823e9 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.eot
+++ b/plugins/jetpack/_inc/social-logos/social-logos.eot
Binary files differ
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.html b/plugins/jetpack/_inc/social-logos/social-logos.html
index 94119b4d..dc5a5767 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.html
+++ b/plugins/jetpack/_inc/social-logos/social-logos.html
@@ -57,16 +57,16 @@
@font-face {
font-family:"social-logos";
- src:url("social-logos.eot?51b607ee5b5cb2a0e4517176475a424c");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6");
font-weight:normal;
font-style:normal;
}
@font-face {
font-family:"social-logos";
- src:url("social-logos.eot?51b607ee5b5cb2a0e4517176475a424c");
- src:url("social-logos.eot?#iefix") format("embedded-opentype"),
- url("data:application/x-font-woff;charset=utf-8;base64,d09GRk9UVE8AAEZAAAoAAAAAfBAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAQsUAAHZfa1y5A0ZGVE0AAEO8AAAAGQAAABx4Dt9ZT1MvMgAAQ9gAAABKAAAAYEC7Yj5jbWFwAABEJAAAAIUAAAG6pEWcoGhlYWQAAESsAAAALwAAADYHEbeJaGhlYQAARNwAAAAdAAAAJAOvAd5obXR4AABE/AAAADgAAABeCDEE521heHAAAEU0AAAABgAAAAYALVAAbmFtZQAARTwAAADrAAAB5koHYmpwb3N0AABGKAAAABYAAAAg/8MAGnicrZ13mJXFFfDn3XbvVnb37i596SC9d8uLDQyKFXtD7F0RYzSGay9LDCpqjB1REaPR2CXCFbGB2ACR3otLWdje5zu/M++9QGK+fH98Dzyz804vZ86cOtczKSnG87zsKTdMvmrStX2vveGKG6YYL8l45qTaFqZ2rFc7Lqn2hOTaVinTs7zibW36ZyUXd3vVZqUUZ5jWp+fbkpJEJCv04mW102p7pbZLat2inTG57ZJuzmtn+rSb2jLf9KfJsGlhikx709X0NoPMSOObsWaCmWjON5PN1eYmc5uZZu43fzYzzTNmlnndvG0+NPPNF+Zbs8ysNpvMTlNmqk2Tl+Jlevlea6+j18Pr5w2Vf2O8k6Zef9XxAwcM5M+gAQPcn+BrkPsz2P0Z6v4Mc3+Guz8j9c9AV2+gqzfQ1Rvo6g0c4v646gNd9YGu+sAR7o9rZZBrZZCrPshVH+SqD3LVB2n1Ia6/Ia6HIa7pIcO0laHua6jraJib0TA3o2FuRsPcjIYNGOL+DHV/ggrD3Z8R7o+2Ocz1N2zgMfpn0OCDd/0QCDDGe8B70HvIe9gr8aZ7f/Ye8f7izfAe9R7zHvdmek94T3pPeX/1nvb+5j3jPes95z3vveC96L3kzfJe9mZ7r3iveq95c7zXvbneG97fvTe9t7x/eG9773j/NH2BhM5p96T3yXojZ11u18hThd1aprSe33Zru1uK7+w4otO5XWb1OXzIE0Orh/965AXH3nF8vxMyT2g48dyTcid0O3n/qS+fXnVG5TkF526/YPCkYya3vTx6xQ1Xzry2/Lpzb/joxqtvHlsyu2b6bG/27NoBs5NnF9VeUjO/8ZK02Q2vFNZMrx3QMD2UY83oVsaa7ta3dt3OmDV93ola0+1rSeu4WmLebAl63GystY9Jbo9r5bPoFAn6fChpy++Qcq23m3xres2V7JGLJbhgoWSPyJTsnx4i7QUpk5cpsSE3mshlF1vz6iRjveNv8gutvfeEmG2ue0Qypw2NpVmT+ZlfIuHtvvR8m6RmZkvlpEZih0la0m75TG+UIOV+CcLvSZDWVXLDz0ufaW34lJmYUKkEqV0lSF8guamtiTGOpL/42rx0kv27qIS518k4G1tJoezmmLW1qdJO5geyGLW5lHwxam1lWGLh3pJbtkFiKa9Gw5KzUlpLfZacjRILDaPrFozp+2g4ctmLklnH1woJkpN8nQmdDqHTrCHSaXOKZGWcLl01NNHMGOmqYYd0Hz5fuqofJ2lpsySt9nXmkkzsaSbeLHVr6C75FSlX9aHUSOprwhKdxQSPYMR/l5hXJLGKG/yScGToi1L5Qfl8oo5F/2K6ZB9xssx5WAtZL5NaHJNBpdRKATtHUlO+kkHZFsR+ItZNukjpJ7nNt0paMqvTBIAkz5MBNP3CAHZLWuMeYsMlrbGYkfQgFvGDkdTvl5nbuu2y9LayiazPYvdIwgUSbejC+OtOkpk15EtLNQ/Q8KNSq+pTxn+TAE3yCEmbMdbI+BfKoplxY6WPI5dFZfxZN7K0Ge2oxJ6H/ipt1B9BjIbq+0osWfbLVl8sE7Xl0wwjYVDN6xnZOAmaXmMjnpFCTX9nRDMAi28Z5n06IeZ8I7HD6OVcitxAA0Pp6oeYNiVzqGchXKszJdHeKc3UTzAlAjEfvCaLZzYygVoBJhN62bjyJkcaMQbIa9EiJiUf6uTLrEwDWZ/S9NdSPKdAGm18UtKy7yA2A5C9iyb+IBWzwoCsgJDJuDcajwms2+oOQNR1EqsAytKG+uHI6x3la7fUTxsv6ft3saktAe9SFmb/FDaq/GdmfJmkVrZiNmuIRZjsj9JnlWy/rd3HVp0pGTUZxCZJuZo28lk3hZ27mAU9Bhh8m9U6Q2pUKMCw0uXztKvF7Mf+kzjZ40i9HkgrYbCf+bIQKU/6rrpJu5wm7+JEnUg3gGT4TmK9TbD1dYdLuSwG2wCqcLERrNKtTOUpKZdTycEvvAtwyb8e+N4pqS3aSGPpG1n+8ZKWvgJsM1iayD1L0kJXSJEi3dyfQnJabPMoYKodrV9I7HTW+2Zi7xO7hDV6m5XfCjBNlFjVHazo/guYbCXoVYGxtjetv8w8R9dKH5NXCmiYtFHSSF2eCdahur8MxpOZ2fK5Ahr2jVYcWDMs6s6hMd/H3Nk03tnUecnEYws5gieRewP7ew4rO4RDexVpXfi8mlbuA49dww78SOx+zvAaVvxXGr2SdT6N9cr6ibXLmMa5ONZBkgy0hwlHugg4/X2qJJ1wT0xmcPXZMb0TBNu85qflWK9fL8m7orfxgkvipCFR6+UOlMSTjo0l18y03hMTQUsP95U6L94ZCwL57CAL9tInUvCIYkl4O1cGcwa4acuX0kzGXI5GAXPYxHgfY5SpfweVpYY5e9/LfLI5s3ar5Od9IRUXvQo8HgZUccX0vN6USBfV46Vkq7dY5LSgJUnd/QywM0qyCtaBBedHSzjGhdeAu/8IRj9Gaux6WJKtiSRJ6oZJUqO4TGqkT5Ygi0VOvZUd2c9QlvIJCKdfILG01lI4FUTyw2wW/jxp4Dt2O/9spnDqAsKWx/u6/tIBF2H2a6AEhStt7Bo/uB4K/w7MCvYy7c+NhRlQ3i4KfCophy2Q8lsvM8ElrICRD3JMYqPyOwNFhUHMWi5OcvWYag09xOawjyVoSw9524HwY1gjk8kVtPmVYBi2lEPctAyk9ELMDdfuLwKEDpfY7lqOwc6PZYDWvtWC+crVbfdUsAa3+e4AmdCcqMMgJm0ZO9JIpd3ZnJ0tAquyD1JyZxXfdZnkyVA4UUAjq57xM1NrKcEZHLV2IwGfHAlO3sqKXjiUAzd1WQBq5qK7fQW14hwZPtBZvExqzftRgg4fS3MzdknQYVI0DrwdBPN4Vwu+MZ2u9AFeahV2zLDm3T1S8qOOcgRszQZpfunJrM12CZZz3a/sKB1tPRfggWDJFKpLAE/GNRQUsRNkMOZP8jmS9UrvIW0N6svypXHWQDnN6eCgx4+UelP7c4uUsmHVb8py7SgDRYOxt3/O/bpiHcuzqo+0lCO0lt3UDgBnk5NPkFjauxJ03SyfY4Gvy7+Wcl2YsbmEoKNkmCsIuvvxGGmtZ0pTn4IgMp6Q2NdcwEngvH2pjGwge9Z3J/PfvF2iHUHUe31potc8KWmEIDT9lrEH3hoT3HfeGnqA0tK0UBUguFpiZ5/IPbpKYudBPLU9kiMyJOpuHkcDKbmTItegrQLOmp7kpJ+aiB1PbBYAM1pis+Rg200vSGxpnQRv9peMhs3uEpOxr0iWTl7oFhX0lclCjHhE2u4OOdnPyucgCNBWGZweSII6sGLHx2U0P22SesVyau1iCLm5MUn7FYrmPWghcyp34yrWry1Q9wDEVclKwXUmG7IteQIbBAx4X3Cw/8ni9BsPHuvFrbL3ORlAR4EMu+UWaakRirtBELndyqzXtJceFwghaHcIoNrNnaXwMFkxux7M3beAU1gD8HwKTfHh51JlYR4IurWgH7vJSKEWgrDsL/cEu2yXQ5bVQV17YyX2+WcmIFU/v8gEN1vzR1I4mZ6bAaLkLsAzhE0ySLWRCya8AZxR7jvi1zZ8RkyQqzlGWjFtp3HGpkvnPbjDk5WM7u+H5Z5YLaSrN+YFQHsfsFMH8inrSBsCtXbvePDeFvBTXoxzLtWzt0iQ110+0x6QhgpulCJlhVy57PKe4xj2e6Ce7Ci0qHzu4xLJk0Nlf4VeyBA8ZbcvA498P4dD88v3UQ00QSnWTuzkIsZzGhD7J2JPcxd/6McCInzB3ZLTWQZklwvBbIZASdfeJr1V5Eus4Q3OiGKssirInk1wIi3gqbZxvbT8YyyY8X6YLQMtUX4viyOLaCu53NOm02HzVhPidD/JEsqlatdyRR0mM7I19dEABzcpGwMz0bw3pgwNOPJC0EI9jZpHAIxX2GRQSyY7uI5hdDwL/PFPabE7K22PlyY2Z0mwE85hNXdCuSfBz5YW5dywOGkmgJ06MJb5HtaoOzTrDuiyfilgsHukyYHXAdsvGcKz2YL7LoacmPIOwJ78Lf2VAk9fcnSXA2OATR54K+tkCXLkLjAtrgVxCg1p8h6JhnOk5kw5EmYkV92Y4VJ+WDf5HOX5+UusWQrPN3qtZP0e6nSRYF4z+lUTqbTe3B9NbUGhbZ57IfRc5cmg0btiQSCfHSRrcjQkceFOTfqfgnyT+XasWE4SVyQd26Vyc5mR1SCILNDc+zAjA5+W72IoirZgrj5HGalT2F9JzhGclmukUip3gx2vN+G3PcHQp5FQH02N1AboXA96JQe9bJjpIMc9ialONqGAlfsyXYLvCqA+7DVCXJtJa/ySVB2kG7ML5LMDc544S2pqppuLzkrmmrj3CgWxe21nAJnfAY/QZ8TMGUe63DiPrwXHjJVZHtZWgiJolsJH/cjz1kvmhP9jNGh01H4Z3oV/9FMD+LAZYBluedsRSLmHLR8Q1atdZiS8ji2FY2rsAgqdyzHZ05Mjs+cXqZgEYt37ncRSc8DXt04yNScWypK2BVsrp91mMsdZSBHTchUI7zwh8GzqKSbV2hhXTQeh8u0yQflmzNPw4OP3CM/p5pH+j2ghh/OxmLKiQtSx9tXHSbCjBVfbbgjAWJHkfPK2NCBkWmpkvqzmw6B2mPKMqzhPw31oogzIKokHfFsLJqk3lL3CsN8bS2MBc7urPFocWS9T7Cotb4TZSLo+WtLBFdeGtQm7D3KfZq2dFKOL9MWxoHWVH9CwUH6CGu1bwu7Znzl2d8OhfNJDan6/yLjhsrluuJNjB4YLM/3vw4UFllaBrY1wecFwOfKNl7E3itUhG20DCF0phc5wG0NkO2XzJeg8Wfo+JgnAH7iLFe8L37p7JyXh1zYuYmmBAaUNglhbXwUOie0vB0HLzkh07yR6VsBMbxtzWSb9E5DrQJlUSJg3WwHDFwa4yv7KaHeOZWm6gz1OO5vLL6dOSm1FPhLmFG0EZVrIjvVzaP1jWK1Vc6X+Qg7rl5Re/zmX9yiBTvP6ZIEnk8H02p4DlnpVGircwuwit4DbQi2kUftnX1G2xMCCaW2Qbpz1btQ2fzcrKrRi/Mj9SRC0kJEy7a5TJeh4uBTuFiFNCBVy40TnxGbuF/j8wT/K5+khzl2KSfBOnTKEvmwRs83Lj4WR+oG7ZNVJ0lp3Lun+0rML9DOe1kFOypmMOQJZXXMzWFZ4F5C8DHfH78H83eX82jqIk9R1Mp0qYcOUMbRlq2LCDNktl8rK7YRz2gmFv3lTENAyadJmuycFn5pORSr34i4rEv7FJMGAZD8KBPygRGch0r+OgNEpG2KhACLr/0LWPumvfjsQUIs0zaRKzndv+o7QsWv3gAe7qYhlvhxZc/zlgn/stolRAv8awQwwihJ9w0UJ3tAEotE07pERi6XhD8dI0DoTSAemS4RRtks6A9Pr9EYZsU2yvkJYMOQiCY6AEu7COSDDHDWfWJUUH7HAjzwlOHL2sb5eMx/+Xu4Fu49VqngiGgTy2UGzQi7LZF0dZJkWp/rF1hv3ILeJxF2WC+Szg2aFXJaroFWlkWJrs18SKPhosSmMLOGOgHjVaY00jGHLfb7OsDCyUnL3CA1q90MF5YBZuZ0cY4jQyeSADfInmCAj52sKDxL42IPsZ89CPodr4GuabPL+HyQqkCXL/5WcA3NOO4QVhUdxJF72OTKQFF9K9c0XSskGMPROaMSdbWXG9hWYYV1fHfIwWUO7vRI8s9iEIi9HnWDP5FwusfwnjMNVpu0HPls/ci54ba5UWZ0FfMzhznxmWjQUP2znCaFm3kQ03WelxLr9TmIndzwglIBc6MEl1R2uY8xMiZ1qovM0538KKV55iX0XcLf/XEK75/sBnldeL3cjmByhOWIRkwJVoeKnZK6j3JclVojc8pwrETFAVkEgZn3FpnCY2isrPlCKFSFKKbyM+oOkufBi6accVqHsuSjj2PNPbnWYzK0v+Y6Wt9uFPBdOQGKlMUDoLYntBQcUVOjKdUPq376nZPUQItKMfF+yBiOFXQN70gVp7xIg9vMJnLaLpLGfBBPZH/a5Hv8eDbDe7jNAvd+DJk6RJrwFsYBcN0qMwupbkAoCY9t8ngR1R/t6nzgaEXpIclV0I7hMhfJS2HdY1DYgI/M2cqrP5bhQrUywjOleCWrpMJ5L/xjY2wHbpNMjEJCcz2X0OyFazUg6WII08uOHpMUP/ijBj0Jt20VIuBfM4eyUTgbH7HpDimcibK4TVGCyj9NbkCnZlcpTIhOtTmFEfSW2B+FiBdKfnYtBo8yBc2AiNTSBLLEQvrWRK6ewGayp0gcVPLhAP/9TItFBWKI02W8HeGaSsGRmPPqIT5+V4LWh0vzLN0jRz+n8fYbxxi2CU+yWJ7g9tyHez+kgqdVcfrkfQzjY/ful7LfvMJ6XJFYBiqvmolrXH3wK/fu90OG2iTPbeAdgizyy6VOJNSIwMLtMcL8lvU2sI1dDusSqRwE78C9hxFldHpZYKndZQYV8tkVgd+PzAXjX/BWwRxzR8hsp1g1MXPQcCAIRSjvEZi3hBiBY7N7PZWS7LowBbDshE/fB0K1D8l0L57MRigGO3G4bQnfPSKwUjNX24SiLPZAt6H6cBIMulNRx4FqfC/L7b6THPrBq85DFvM3p/VEOmf0Skcqiz1yPiH/S4YZ3jAYu7uPAcSshWlXprjGnmUBp4KQPMJ1NcqZsDXxdw5FxlOmA+liAnyk1ZNEAoNFcL7n1IKEk0OLaZlDbc0wDln5gHoxSj0kA+RlfSc++3LTmpJ+k+B+MzDBHyAOGsWJi1HuDP2AIufyIJVvzsLTrCYZD7TPRP+88/aPBvPOEqKHXUXOj8+Yl4rHz5pENeVA6N1qk8f+sFtWi/1nN78B1+hAc2RNg1ItLhYjx1sn8vR69kW8nQaGPlD2xpdAz7ZHV/CTTVqm1XXgLhxys9bOgS7vud6wCGPcjIdZM5gm+U0mZDEFnJonCwsBLh0Uq/EUxaCtAUyp2384+Ns+RtH0vA+cwTL/+Q4I9yE1VarkHJcVmSEwkv3a/cPi2+iPgxlaGoQerBLYFNo2rbvoeFT/K2WxzvSdpnWSyqvwww6ZHAw3ioL8wcMReLZ/jdHE6qWb3TzbBmEq5psoRn+mNuB2YoIbd/a+o4iJipLUkbSFkrMqht7WGp4qgKMwGc6OidErP5NNZihZjWIocJIY7ixjo76TSD1BimYJB7fLB1Nkdc1JJk1keDdLykNj/MAx8BSOxUyV+22mr5xdA4OB8bojREhx+rnQ24SYJRsH2jG/vO3GEGY3ehd0zvUfEAMx+vqCvLrcnLtnXx0aTrfdjnkBD4cmxQjBSAwKg9uDUClQuWYItbBlYIc+AXcHiBsarZg6xBokt4vpMgWl/9SbhYNgr+71JozESXAHbAKdbw13XbNly0CsiBlu2iCAl6NBWZBs3CLv5b75DTw3z4lu27g45BnbDy35I49LtsaTeakqKYZ1Semo1Sc9CLFiRBaIFjeyF7irkFkTa4nhtNIWmc2cQqWyruR5SW06+TEBaOgfqRYWso2HfU84Aj8IQerIKJr+vcaugrZtcWQXtUVbLd6OQFXS4VUdoOiPo6fwwNFnH86GmSdB5mc4PxUrkrkuCUp9yDqSarZfk36MimYKY7fOVwmNLQyfL2pmy34NwVkc9IX+fFHrMjIblfXNdLFmvJSFvOwvr8ZCQhc3fv4Xgbonw49aiBNyN2KB7CwCozRLEQhN8aX2HrD4qEhlTV+iFbJBEeIEkdlwEAkSOkg92UY4SMaRbAuQFxjyuGL0LusqFiGT7l8os1swDmRN7/0aYCIPAtAqttGqqVaUT6RtvI+08Gkf/Gkbu6XE7pKC8SurMEVMEv+6XqLA9DS9ysYAvdk/lXIND9qKGtG8ZgLuPgKBpDxPQh+16XEVZJ6xATnItIApqM33Yjsc/iDq2RbKlkc3gLakYedZ6j6PEWzedpVv/mEmL/A0ZAMgKCak3xVcFbomKvQXO5yNZW9JexrCEK0s/gzRpZshmqTNmbKwYrp4b0EMir4rNJBSr6VNgt9Y/II1ecD/sgIqm00BuqjkJ9xYqyEtfAd+BuYNmuSDcHSZu1h+ioci/AtH9FZMQ80hGUFvbqVkOIb/sAz9oXbNcIJ9ylpa9gwDr3zvuLrVMnxNiv91x5BdrWVF4FVmnlYi81yPbXC/MgfskMJ3yfJdhDoOd04A0F8inTOEwBLlaRktLvWJmxDY0V3dFQNDqZuAFrKRBq9vguOT6DUU+0S8Bh55Bpt3xgKxY8y9PI0bc8ecgywWSJfzdL7OZ7g6oPK2gVaWHYva+x7XCfApmRAPX9TPp9Xn4rq7o51zsQyPHbIVQFl7yVczcVnEIxoLJymIBXe3SxsQCLadBqGHLgDe043ZVLC5r0xqQKi7NtUI5aCG7nBhWAi5XY4hhzW2JGloXAxhXV9NcXT9eA7xtsF6x81174UO6g+A6qAqY0hVEs2DBDOaCRJo2802iO21aJ6xpGnvLj9dAU6faFvuWObRGYjCHJ8q5uiY+pZcTNea4RQ3HqwyLxqsMix2StpVYbjS+5iqz0lghYvrDMc24O0tFJ4peYGRqVPLPt23YwbocfrtE72yOpbq6uhlBzAVR1cYGIjKkcamOjdYhyWBJfDdYhiBtvqbFAiWp/TwWT/smUe4tEy+sMW1AG50fjWd848drLPfjRRYFKxV8PheLF3nZj5fTugdi37sBhePjeODQKsiYsShTkAoGA8JwlQ/EllPjwUTaA4kajyVWSsttTSxHWSw+V60BN6UXv707scCwobY+UaM0sVia5gatnfQ28QZHg4XlW7L+lKJqGAvOQXd5sORS01SaiTjIwYhCUEYsHtNydycg6E7jLjsdVdCeAmfb6CE15kfj5R6IOVrBWeSZgfT250Su1u2Y6K27H8xIL72gioLzcwkUomnd/XiV3sHCBOUWJc7Mc4lz9HLiDGpsWKI7PR7zE2k6aD1belb1hOp5OzExuTHReDkkiAf15gZ9WuLYKkLQ2Z11YE6IG+z5qmXQVSpL7ERpYv3LKPn57dLQnXWUTIZvR7BgkrntoQ9N8gxVRLkQKZmHfhRFp0nKi2l9id4dCrAGE011U9OZyoR8N/vgU4NL/HiR82Nu9sHnmOghsTExN/uggTHReI3TzCENjDWHdDnWHFJjWOyQli/x458XJMqdHwvg4ODKJwago1sbDOa6xGC0md6JtO6JKXWMHVJ3bAA5quMJ0q5L1L05APegnOaeGID7wWkPJsrdGSBWbq+wOz9BwdzEoDMTc9BmkMIqlWwWs41OGXlXI7SmEl9mRXCanTrX3WUrONGHo0a84Fyu/xlC29gXAd4FYNgVOQIhb7MPQ3uCqteMkE4mPuqjL5qLGIw8uxhh6wKOTK/9lNqPwGDdPxHb9MW6ZRN85U9pLiZDO+I81AjPfyRt+49A+90IRXUR2jafvnptjzkC3C7+GY5m7i3AbT5s8lRGaefD7/XGkmsM1HHvS30Xs8ufof8fIbguGo1Wy0yEQlVifigyPv8sZqU8ZA66/M4n0d5PyMiKhV82fZtjGkuNy03zMbk9KtU4WaTXmZJdViZYunw48enCmJoshOJbEV60vu0Qsy5Y2RdBAhro58NM5SIQ94vs5FTsaKciQ72IRdRAP8lwRbSwVOvgZKV2bU+kCYMQmChnNQDWcIcwHmq2bFdCJaTB8ddinpt6l5SrFbzhrFzh0e2mR6TZ7lix/Qh92ErYAbvkQkSASz8k/KlRCv36OpuG8HDt3/34rVCWuDT0hsHYRz+blafD+POg2FYTtw11t5/epAeuWP3k7ikVXtrufF7SylF2bgSG7bpPCT8EPY4Cxr5AxDVujOpSegLkmd/K0D1M5DKBTLXM+AUN/942EnyP9sCrloqrkOoWYR3yC4ZcLYWPt1uQHPTuLH3XXyXl+tWrES5t9UcOnvu4ZA9skA47Yw/YGbVmZ9iKztisDkTEE8GkdJCaz97FKR0rxKj93TFAdHMljYNpNwyQQj2Y8c8YA6Vhx/ozOqAQ4rIV06XKdtiqymek8CqWuh7V2x6glZnZXTf4zgjOaYDD3CJ7sbLLuYnVwhYrD1Fu3XUS6zKNNNjInhjdReCvMlGSdEIukfWqFOkka2FLOWI9GMEGVBWhB6DcNnATYquiQji1YbAWc5KN3FfNqJv2fSxF0hAf70PXoxqH6lHEsPms4lZpASfQgCgzG7O8pP3SfjZmS0nvxwL7ovQ+PtZ5nBq4yFTUElmwOPRhcpDD1mH+noH5WJ2qNtCnVyZJWgjqpQLeRJCzDLoClaABcDBXsPWIGLCFtdWIlBBi2+p3jbOmUomvk2KoYbCKVgC/gGRQmllj4KKUYsktV/NipO3VmLejFnIknOrslUKCNXZGqrDLJnlaLCisFlu1SFwzkGzpQZXNCDsjWmewmIzAI+tVqRdmacNAHQpcDOklA4Pn1AK2DvBQKwIKO6P0LCx6lIUMMaKqrsQ4UVUYtOph2I90rgk5Yjn2OU33E0PgVgNVXdlPilQgqa9dILFKJlyLveS+hJK+HPYsWQddjjw2GZl7BWClYp1ablcV/9SCubOQrTdhTtMCMzZIDVWdmWSEQzlqG4pZXvZRDB+0mY7hSmvh9E0+Fk09oMOb+nNaORQ7IChbYs+OFY5J+SDmDo/dfa6kbcGoeg8CPpVm/gK3s2+1xNaxEhnTONDrkGCmz5TErUhOOzP3JmRZ3VCtNGMLkr/WBIKjCFROOvCmWim1IFE80ILlzsbOIu/6+Bw6C4I0+dKe6XctjSLt74hwfgc6vDboB3YjCMmLSWwjF3MyCpj1bcBpDujAwwJ0JQpwMtiFmDQuRZa+FIuJhe2ixbKFZ6utOOcXy2RbgU42tScD5wZu4HRHbgByMYXNWyGx1BslKLzVd0fV5OsRROOn9rx5KPey+1P4dQ5UIaudHguQViGozM7i5I1ZgYBsJiqiOUDjWRD614xAM2AuR+J5MttzOkf9UuxM1aS/qSeAOgf46RkNGJWmITFH6tuv2MvqMyW2FNnzWkS8WwdL7nfrJdiKhf134JlmpGUL0Vi0xBDrOyybih4wavIjC87Vsupo6XIogk38JcxQJNLVCE1QRJoI56oL+rDuX0P2dZX7y3SXjp0F1Siwdhn27gMgrCuwDemORGYzjicdsUFbgy1FC4zcxm0D5jEyGoX1/1fKy76nNrlqtKPeAaWYotRg5bpLMJLdCMcTg1Sfj03Kco7Wu02+KiyUchjOWfahEQcPlpbHVbk0D/WFr1r0ZGvmUnKF0hHfLjVq0xvCDQIMDj31KypnvUMW7USbaZcmS8LPqIh7ocpWcxQNej4dTxvUGBMqon0yUu3I1SBFLsJMpIpVEzH1OIyj1iMDBn5bnVRoxd2zHpMuSCa78i3t6U2BMfupwJML3sTSnMAc/WWQZk5DU3QmBlIjQfiHy7DNxInoTU06A4dMEHzuB3aVgtml9382SkMrJgJ5KHMOBLps5BA7EMQSGa6IGjQ8jHZhKvZpJ2FxPhsCtx0S2a445Jx0q8Gg4XSgoxva1C63xALh/tHolXsA55IbmXawmHeO7JDNO9ovjCxA0sfRQ4+gtk2NqCaqn1JR5WuQrFVY1Cr3Vo3uLeUdEGjp3GhI2rRbLwPZgrzLcBrZ0sUUq+wQ8x6waJKKq1E/h+5mQzpt94WIT+ESqgfppIEBG0t8NUZBJIyfj+abFKjQ0J9RX01lQZiU/aQRg4k0DArUcF5j6uAkLVG/NYaGhcmSlbtPKrWBPO0paXYtnbRALLAG36D1UFVr1xkn3rarz1YlYeVl8TFXPxULZKI1DNxu4bLY8SCiG51Ynmq8QRXZSwG/ol/Z8dHcgwNBSp02cgiYzAj4phG0tAUK7bOj/WKMsf4q8T3YUW1nCbbi4yL3mpwpW4MgYUIHaeQwEDYKb6eQGQ7q7oWt1HG/JIz4boDyeUG56fPRGhm5e70+kBfXPyYNPwqSv+RnP7JP/q6UK8m7/xq4oxQZurVnqtAK2tJJ7sAiBr7CxeAynTLf0cfgL4y6g7QNJhwpl69LcBa46E7IeHq3DV/GUiOVJi6ZUMMsHSD0mEt7S/lX5TyhFRx/iPIgnha2Xgly1vdOBmPQM9YWCRtEzAWcEEIHeknUpQXj9GNxSREwE0+Tuagp4aSHYOew3cCinAXAGsAxBGNMXLI0OpGmff3b8uiSXRELRyBN34V4vvxNWElTwG1ej3lGgeyBre4lsbx/RP/nyP4fZxiOCNdjkjjamfTqYTGddSwQ6MK2qMJUBd1mclQdlgTrwS5X/RJ9We5e6IBCsCywZ/JxAtoDXskH6EsxZcm5S2I7YWMz8PtT8191RdsGb6f2rlu/5cKo6BuEgXFjBdRi07Mq6KxXSkCFcBpUKR+v+69yJsDEqiIwgIlw3BLxdRUBvefHBQkKHgoU8TS7F7uedA41GlaTAsbafTuD2dgdzLMZlKm2Wb/eFosHWHtroBmb04LiYQFUbEUgA5XI3R0xgVnm3kkOvv8HnAYw/5mfGqn6HzDvXEVtJc5wUCi28gz1JDuXIWxFD5jKFbHt2Wiw5G7xO/tTZFsgGUpROB20aYmYbun+Kb5scdWWxJazxQoGChACGiXO3xV2E3tq3DkdT4W67v8O6YGmVqD1f50YIdxiDENiBdBD9RgKFLwEdHbYQNh+rx8IGYoekFgRJvFKEpkiiFhYFNO+IurKhwMc1r8KRLA8DO7GnncDVP88nIU+QmOxAYunLoPjKD8bWUk6LG863Ff2Quy9i2cBHWprshwEObIHK9H+KPUeRuLVQh2LcpUrT8fLDMMg9U8IIO0z4DR2liuaGhEq2n6LDjhrZczxZqbtPJpok8VlNwy3k0FQrAVYvvdHNdMnW4LB6Op3wOhsgMMsb+kHvEsNwofyI6CVt61TV16Aoiu8zZJz1BhoC1NQI6vKfiSUtVBvhEK3xIG7Fi5jTjlh+uN1UTUdKdVgdYGOsjpC4NtNG9UT6xlVgWZDhOc+Lnnt0Frl3imjHA2ZqBdP51v8IDcNvj0XxVqR9QOOoh+0T+5fY/EbSQumYmCai4nyqT3izRwHLzcaEjFDyz2YqIyBtLo656JlhyigwYitt54SQ5/v4XJps8QPLIIKMcPZNgRbr4pzWJFKrPjrUYXX4AmjYqGN+DsVcNZWAIvZ2Ir8iJFkku5OK7xyJ9TJ9zFcNPsyWSMVrZfilZKHgdpe+NzCOj03RZDredXxoIjNJc3uTdc0af3XXVgZOHvl/dSHd3aqov0rAJ33EYXkvQAVgS+JasRtA5p25VDxxLENayGwtsgy2dkVlPzuKU4X4L4Mi5jye6Wn9eiKS2EV1dw3BGuihJr6eQtTW6LrU+LWiyCRsHeWFEuHx9+HQC0b+8+aaznq6F/VQcc6eycaaejMuD/GcHgiQ/xSmBtzVR+/OGKriURduhnZSUocP0oZKnXlUl1ECoZnikxSbuCQ58wxgTlEuqwX8hWcKUKwafPgUZ4/0xSy6yYLr6uMhwMk5mw7NNDP30gzGbxQkLUnFq97b9AAhii4gcDETpoLGCFiMjlnSv85mBDIp+CGtDcZioq0mpYG8GsbMRfYg5Xjftju8lekjb0wbLVIJvdwXdQNki5SYd0a/hZToUeJuiGgaMAr7ZwfkKG9wCX4Di5yA5GrHIGthAYTkN1o2sUZsQ66phcjDCfdfofl1ELYVw3eWWOCNGlOqOKPIXWn7wQt4mBl8hFzlmOqlHeSjHYPQJ/zGMODX04W/GLSsPVJ4jSH2oBeZO4lbhnwWAI41KiC01P1TxP48FfrjCFK6nsADCFUcmvegIjKRWafjcWrBvqZi8i9HEFjNiZhmABJwPJdFQ/0U22DtIgWlmoyp+cQTLRX+b1rB4FG0E5Qx5Zf+BvtvHSgnWAMMiRzYFyCKbZjPvThVqTkjVjkJh8JvlT3db55xkAQyWYCKAq1KKv/mx8nd2wp58GJjPWid9+J1EBbqN+uBi04115aNZlIsVzPGKXWqy8lS90oKJfew8EY5LskICJ1jCSanIvBIpgTFyEsrUNb0AFGC111SVyboooU912kJJdqIasSqR2Ws+FFvP6glmY4lbog+UgNaDD1qGBQJHI7qLfweHjM92A/xy1OKA3GLZJe+yKAGYdYpS/4bRz2P337u4KqPrj0MrUoQsa1AgGeBvIpyPK227CrqEB9B8Xgggr8GBJp+iiAybqdK/xwmLUPoZ2Fjwq5NnHXcm2aIdwhGvRCQksGn1Lx4RDaI2mE5qLxNnn0JEiLJfpW/kzdrIs5heUQ28qhZy9l8WQxUh1Zqz25jnUIMhi9KOBJz4hwLhfee9AgY/85yLfNIYM8/Chp70PQ8Oef/eayxNdGabzEsqCHuiMWyBdkuKmyZUk4jE4NY7O57EvhCC9/gPHUQz+2gFDbrx7WR7izWRKOC+/WnCBQ0/zVtdGSVPWw5CKDfFYvzHrkQvvzjDOBdy9r2G5cFZdSUNh8jO6mIWfiyReUAXKlpuFU+wVy8WJMGZdCGPRDoL32vlhclXe+DNaAUy3Wly52Ppe0s4J5jnZa0/Ee5PDtkDeov0TxcTF9iQSJph9IW3PweWyeHtPXOHioRd9EyVYlBBJaNbVLUjcv9EaqgPQe8uMxmHf00oHSU7WQt5m4+lNVouoMg3osDSFcG9RqvFFhWsGwCEoNx/Wfl6hqmcd3zPN+IhZ1s3ZCTlZCVR26OmbQJolhK25GDefC1KdzWj/NDKIfK3MIY4aZm7Vc/Lz8YJtvIu1cSOVXEOH8YSMip2fwZ31hPgZwunH6jIn60Kphc+3H6ofznu9CWRIE+/XohgRlSVPPvCiJF4+hfiUGfpkwesrJwCvqp8lUE3sXi5LhOwZCP23lt0zhFLQQ71LmFLinE3+CwdPiWpE6rlntAJcHfSFIO3X2KXA4kuG7FnPAKEd0BZznsCcnoJK9G07orRRp/8zvJPbJvfD1rw/SKNZtd96l+dL2WVgsnXC2NHYXazuhA8P5E6Z072zk2jkLe5YPZsnw7oSHOA1HWRoyx93BbtK8RLlE7kafcqrwGHbOQCn0AUpX19AaMMRd70nOLPy07WuQ9R8gDF6NZ12rp5Xfw1bxTgjZ96L0hjhr/DTFMA9LzdXHSM6OKwyHeQpCvf7s93j8MvugYxmPprh/Cp5lV4OJ+1k/2Xq3CukcaGvbXY1l4EbUSdVQizsRIexvBzH05E0+di9lnNR0E407huFo3oSYFHN/2wSXlo3SuxmBaZhtTZ+tXovXoHv6I6NQt3/1+E/6IaYvj5Cf9KUiwuOm4zXUXj1mU3jCoQB/nWTMj7PQUXioJ9LwTlLj0aOBvUwmOPI2JRYvl8Sxq4D6EALNLugceKBGn9DAyhK89Ssk9IzZqqnU13qwAa/D+l+hvi6mpV47FUNGNRxX2q0OX6eqZgwZq3oiiFaj8NAAH3/oqBqgCz4efwwWlCFYLOcsV4vem7eTnFN4EPODRlfHHSncgwQotlxMH8+pReha85x62y38C8OpXMkRbFRpgBqcg+yqP0rE8Iz7F2qof4xW52D1SnAiJOXUe+s9v03wjdemJdebmsSm8iYUqkUTHsskPngNa8y0j4CsNHAjWkjb7EtbNYvkeq9Zrne5l5BAR603MRBNC0Qht/euxu2gee5cIGon7DbOnxIY/ezQMDPk0k0E2TvppuVj2KBKQ2kad1km0spldaiRKpru/EhJp4Vi9cBKsRZPCPsU8jH1ibgSwY66PtJkScKm4WruZYX/saiqxuLFIrH4ZP5LdrLL9kJtQJQfbUOmPBXXrIuw1HgRWffDZ0OOSlkZ/nMchyjOMNPOl6xLdmPk+sgohunqLoKpfwGrtIux1RxdHk3U3YXtsY9GZAHO6wUXQcUMneg3LOd1DWQ8OxFp7cRGbDPPPBHg+OzSTPs74gFppiUGi+3RTRBoXU2jqQ5uUWoKVO+S+OPVLK8pSC7YWFugSyHdlg3gut7HzasGvSqPqroMtvMqcOJZz3HmPH26aGf83krZyTF2D4wpc+QeEwMEVPkhJeXMPom+5qy3YKUzlVBh81A5OuVu7mpn9w3+aIdCWAP97IL+ZovLkNhaxqQBaXbL1ZqmLnqw+Y5GaACaGCcxRv+0JM45FQlVJaSdPiy0j9GriXJZN/UHOahVgkRPOhg3BBlRBzfaQGGqJszMiDaZJyzTHHWqbUbdp85BejRlJCXq5UpPoMh2KLm38GpTl0TQLp4RT/ODIu1ejWm1hDP/oaoh9/nEQYqjhNQFUD9IpXQgVhjEIhU1Z8QhYIWDD6kYojlfFTqFqqT7b8eyNFBUpf1mfqTG2l7/DT24cTmdUcN/KSGnPBSpWTI+7VBE4geIhPkcikgIQCRLQg0zNbvwoJnToaAkWZOUhgIdmfRcUxCynq7G73QR9qK73T83HuhnIs3kQNvlzY0H+vkbaYm6xYE2VBBm9GB3bjNpRcw2f3uCsp3Yk9dhtFKDeW0z15Ga6egzYktxAioGUGNcQWlYHr2Pv576uOgNo86WtXoc1aVPeEITwnCDDBPSEzk1Hguh+/PgGE9Fv6yOtsd9GL0HtbL0vg6zrDSU0439/MBXqwZbXzfKTzjObWCVRrVj7OojyXN3tmqhBE0lfOKtn7LUOE8704VDMAeRIE4L9l88sLeLI6YWGk04XnK7Ocst9bgLL0rEvg8y1EdP/WFNkrrzKu7D7v5itCHYFpkxQnXYlfguhqDWVEqLVMNWsVwNiM5qh3FMeUPRHH47dB1yYF5PEdpDuCyT3F5yUlkCFRDr+49apHFnUMRW3xUUsW9DrvfjYc275/kB0f0ex/rXThJUoT7WFwbr82JOeOAsU8kwyShkqjBgUKq2HoMmFU6RYcYARxFe8LvpepYexe6xyABW9lbOuwOC3SOwx5iAqPxKVA/HrZeg8/YYrjyStSuw49JSnTGG4o01YnJ7XyRsqhe5AXpwXWtu1DGurhyzF+EkpEGyuOBc1m4Ik3NheX/kDTi7TchS+0lfuMKdcAnSIKQIfsRmCA9ImCE4kQ2BXZ7wAN9XLmCg8BWm8kYIYe24fY7ywyrM2uT3pgnhHQiCJuw7V+r7a7z76HVMPeiO74SWoj8QfQR63SuR2w74s2QcwyD8E7ntb+B6Pxu59Lm4WE1sDenSaYEcx7wpdLwWAX0jD5T8hKajCdnOBpybVLC3GiK/DHsOPJLt+uncj999DXX2GXKWHki8NmLKNFjf/uzdkltQkVEG3XUCZFXjm4kL7z6MWJPRMkMvmgIeQiljdVN4gbLpUclNxYpMGcmUsCscjttrbYAhyeId0wwscopgWiJAq+pFMniLIwUJZwr6RXXbTXvMd8+t6KN0tlKfQoRWrBwZVQmBDLbdZfRw4U1RIfzNYRjRJvG8Gj4qSoYYHoyxOzEpLIJIXIXOJYSGR3JlHb48hXAB7FgpJ41njexHH0fjpCs4mycHbSOalRSc/5q30uUobCDrZsM76ZN5avqbjO4yFe93D8llKmecp/5MK+T/Bbhd6LOsLTuqZnMqYQ5yhIarGRYi/kp4CX04suLhaGCdubdM7YsegZKpRBtye2c2v3qSywuebqhimHvrlBDfibFYOWuaJ+yaacMLdOhJTD+c/PXxv95rEeqXb/JDgbhup5pwY5q5G42YvqW5K4m5zsJ65i/16k6FMCGtGzCAE3s6DEkN3g/qJf8V3go4ZtqFmOFUImf+GvW9fVNfmHwb7WIRb8Yu4JnebghAlTXn1TfbgFVOPWcUrsrpTXkfyX6DKefJPI+zQboyZ61i5498EypmHD5UakM5CAVKNx7fMdnC4tk1r6puhZdQivBVS+Ohhv4IoVRalLZMmqtHkJ6G0OaH0lgg796CaHIXugvstgKncvC5eic6wpG7IJdLQt9N7Aqoq0dkGmZmNXgIpF0TczF9MtSux8+9Dt/2fXrf9aI9KDJ9QasZ2yl98TL5dh4ac1K4S3iooS8c5Hkg0v44/1xagvnRGLQ9l3AHfALanTQcFvkVbGl2fwje25Wvamp0cLzYJGPQx0mqjuOg9YhiMmrUuC8cdCXAK3B8LHfv19i1Y+Bh501DuvzZFKifeRC9X8MRfg1ozpsW69DQLkS69D8cDuFrhEnHRmEh7rsDmobWnKXIcDbt2NshPVWQe1apH5c08spcIEWG5Co/SaEX9arp9ynX2/FDeWlW1XhK9VapLBDNpb7/qp9BGuTWx4u5AjRfSXRVyGltlZrrJ3awyM1kONPRKo09lcM0JRsfuQpEFFUQLBk80Jg1VYNo8BlPo2YFMoBEltZxJzbRRCJNPc5PWCyNHoEgry2e0foii/pmHimkihl3s157v2M7D+dt4hPAz1dwS56wgAtvFLq7mXs4giEOWR2vRqfB7NaeyDbN+ZiJ154YZLlAP2v1xFJS64T0XZ2zjmdZaUmzXKBZ9m9oG45fhRqk9+2UwlroUIfH//SqVNfJ5ffFftOr8rfcKWUMuxCY/OERphRQ3uZgyrxZSeM4VW0OpqqbHRnsCOpW5hDO/AAp75jyBGdu7QfYec06Wx0VUVx98whnY8VTxhGNLljxJNrXN88DGnjHztGTnXmPqtdklu6MIYgkeiFo7QzZpUGvqwD87p8ikkhkBQ0+hVunMyRdrkYgoNhaDkIabvZ1IOhwW9XFOv8RCJisCsNbaVwEJg1OjFf+bM3dAkwv3mrN7WDJgUi3egHNfW5HIH4tVoSnl4MMohuNfHeRtW3GTtNE1jLVdfglbMF5XAP5lLVsHsVaruOMtDs2yMegXtbS+yIaVFVWzvkitwUtt7ke5CulZNCrQ3ibqQ2+3YZaqg1U8hqaUY20Xiz2lUeRSah4BsQXPGfN+8SN2D404c3e0BQNni+p4yVPdUIQgClRewJCqAIeBbQbMvhWrdI+TD9V1bSP548asX3bB9Ud4e0afTi2gKtMX9uNNHHltvgjF0iLd2OBIDoJBWjFGUqrKP+NzYIKvOrl+nBm9ZrWpEplrEJwkXe+18o7NIHHlA5rXuXH2Wbsoep3M9Ad+jyYOhGoZfoO9flD5abXZpleoJiPl50ZdS9n2zJ0B50wa1LjnA7OKyimr7oGJmwmG0WcmhOlf8EQ8SaHd7LlXjQwHKvHaaMZiznsEvWRafeCnD6C6x4R30yf0P5qaNAMVeHmfTlzxExPPd94QNH5I9bpYzga4zgrfaeHXb0r664MVjtIwy+m7mlF7NuOYzO3q/kw1Ni2o4IJ2IouwWbZGp4xScVgVR/4VSuV5k+D25nnyXm5TLbXw/4iFR19Jk+5DEcbrw/IDef5vkzePRuunCLPEqXSFA4AqgTUZ0zkxo45ctaZYKtFtj5PHQJSktqxwiEQV5Iq1lg+qDGe30bkeJeG0/VYc0hvcgdcYAx3f9ViREIx6/z81LcaT0/nmaEux/p2vkJl2uWq0FGDHX3avxl9tvd0zJFQTplUh5qc16SV17LNGAs1XKqWlaXI1o5E4NznRmluBP4M74Dsj9rgc60czeWh+ccxyalDXEzwxPUs7CV/Adnr67i8imY6ovykJXdHD/8zNNUNcBXPQsEObhnE7HM85jQHf8tFEO1P3orOzq68OY7adjxuHL6wm6bQxiDG2fsMmKf9j0hLObCeDexe7uusgBDIUupo7KqO1McoMKU9HMJbrbCZgd3yjkFTKhV/5EXK1fpYF3zOshnY6FZ8C4TxYqaK4Z3eJXkzRxucaT/h3ZMBY0B55foqNKPXoHyumt18CelUwWtAaWhJyeIHFAR4P2+CVFY3n3IUnG15FFRHn3OTiv8G44xZCMHWHr54wGqui25fc13kobLhsQ9e4QugI/905uxmnq/6qUe1LakaGsrrJJ6aaNePgKTbAMTw+pxdspYR8k0g4/ojnkASpKoPd9yRuxxFaRjVPS+vBjEU5tlhAJdvAhn23ayyBILlc/UJD1Bmmzw1GUPNXgYAk0MMcxt0J2X6Ukkp6zIN7DUNE2KtqllYipXE2yuil8mC6glSg0f0Oqrkewg8ZHxu0tZylGMSFAaDDWOjL1MpScyNUndiQi9BqhucC7btpVQZeFKH4eoz7fIaFqSmPnZggf7LKnXsboLhyMBKDoxUVykWX6UwF3SYZ2tNdk40vsD6xPRyuIB7kg7sGK7KB+/Y8qiOPxoff3xWOhbzGzvmJ3ZMe83ghNzDS6syoEN3zK242wH/v+/4oeMPH7RSB9Y/Wnjo+un6QzJJYnz8DuICOPiN9VcwyEXVDjAdGKmMPwqvEL0tvn+ufLx+VBOll2e5EJ99FcIlWDsKLOFW14Nw4Ej8tx1ze8GO5R6Ycbo5AFvhQBaDcFMIqCvwKbvu/kPlnGPeN7b5i/6+PgZUjzS6nGC/PpF/Odv5DaR9TwQu60b5uOL5qZRtwu2picPShIeTN1YfOGsCA6uPOqI1jGAlhuNIBm5xZTgdDeVFN2l3MYYQ+S1dazW4WOqvmKgzv/KXdmjM/fCEs5lIviWmPwCwAl3n6btjqVhCzeRC4wquGOyjSVF2ezyK1znQFUNAHkt4rvPIAmzvP8AQ8jIG/dnRUvOoDD/ytvUu4622EzdzLGtRtzZexApwzzfCQVWp3oRONqhDIraZdVijtdSXCT6WJvMmgwSmgQFPw2dIegtF5gihjTb2SnjKz3dA7tsUKKVm7B+UAFPP06al0XDkh+C9t428rrk/TWJfIcb5DJPmX2cCMEs4Fj2xhf5Doz6A8BMXdyfuzfk8MXcOPzvhQc8Uw3DrazudoP+yXgLnXiFBxiblv9VcrMsbvvUu4kHHLh/AdfflhxK6yPXjXYQWUhKT5TbjFSce2LfmRtaz/TXAW/FWsBJGzp0RE+FzZLrwEqlcqGEbvCV6y/3I3C7E6FsD5Y1v4YZVZ/ARvN5Yij//0GJp4xfOeA/egf2Fg9QDvLGYV+wRpNmvbvYDHqPkFpDNS9BqGqhNV4leOiDA1Vhn8ZNDdg3iILW03qDvD5yF7fPPbUBdn2KHuBfBLJ5xPK/krDlN2mvooPbyQHTbJj8wDe6I3aMyLZ0gtdQR/mLY2wks+oRlEruYt7hNP0zDlaTog68VT0GaTn2kmfWQJp36RINY/tEyvGVKMTHkH3EQ1Wm8AA3yDjU0eKGbEpVCR2MQcDOAs0l/ywE5xTasRnNBymYR8plLa5X/QJ6Pm4FtxDzKw8aiHpMqXn1zP++gse2ozXnf0v1Ui6dG04dFicXrGl6RV4ikAU1zP7BStd4Ev0nD7w25Ii5GEeTwTjSjhnL/1u/eeuPoALsLOWG+vnTLy+smhyeTqy6LYgVpAnF+6nFB084Ukjeo3U+j6Bt2SZhMK6XrAoTpPGTuMpJbGcf46C/rOLpa/S/0pX/3woSLsQ9tghqygH4wVLeUxKrQ27aBBlNb0YyZ6vXwDjhtggmeqWrGeExt79QUWQdtuG0blcDlmmlUVwdZrhL341Lag66/W1fV1GisnJemK0ZQfFuzC4FlkOP2rfFF1YZdjO3qjMXj4lfiKO/XduCjLN5i1Dd8+U0d9+5ZCF05Zsvqi618n9OQqtQP9wzjgfvxInHYREm+zGOigYNXFnyFi13EjZMBydnMs/VJI0w4p6SmwP3PXxKPRU6pOaNmZmFkRkNBKPJgTUFaZFyNxAY0zCySLPkcUFNA1riamQ0FhZGuNQV8p0XubSxIIZ4WeZDPGQ1kB5nInC7E3GchwHXhHAMjcCpmLUsR1F/8ePSQF9K+QTZ542qEMepy7d5FhfxrUtP8pvVsi+r6v+M5zvdRfrzyJIu/9UhlbvEICsMJluLCiIGN+80TfYszGT88fToluUZ1DKngPt4ddSxWLpqobH7zonSaCVyF9F11fnkKYxcegeZST0YRYREeJ2PDq6/AJB/GMqeoPiAFrY0+IY5vuPGQmvzKJqmOogyPugjkmGn5nfq4PK9+d7OAEnwZQo+bwAMvrBam+DqX87ND6PFsDU4jLRA9mDx99BIjI/d0WRgdTYq62KIRaaWPTQseM11xSNsNW3YYaFTpAX10WxUpbnHUtyJZh9UW1+EiDL5UQSKf3Og5XSmRhZCjnhshjGd7NZxC5uD4uVXlWwr2euoUrQq+Rsi5yvsNekPpvBo1Kw/P2Tok6ukIr5U9Tr8tjjRUX5m8ww+Yd/y8hG/xg5/RqlaJQJ6q8NQw90TMfoOATyx65VNoqSkjXFTuyFX6dmAusEVRe7kM3L47Ihay3rRvXCOCmi+HlX6XWk8jcnZPpmw/U+6j5ijo4d0RUSlfhVzuctxptp8CQm89O15r+3nUevohP94gqS5LvtNy5LQJxC8Q4snr1l99+vTlmNnsAnSfe3JF71F8i/XXHpzps4peCg9KC15fcudjOi+mjdwFmYrzW+DSxg67d4U0xuo360vR+tRwWRwPNqtmp2GGhqgb+Nk6nM30J+qkn0/RLj/OVX3627GGdtLJA4g2X3wrxgMv9yKuuA5J2jd9lH/j5qtZxOzO5RL9aZMaJcKB8+qCSdeT0Eqx0n7gf9VA2YVmdYbqom8tPrI+qj8uk+pA1UnbmnkqQZ9rax6lV24Dhmrud+dUqf4I4tXMeTGILn0WQn+gT3/jLRVwa4rQ2eRXjf6CVKr7lUPb/FFweng7TKEYWE8bwOGFbVcnIeFAhItuuBTLPn10J/F0m42/FRUN59TOLCgpfDorY2XGMzOfeGzGzBl/+9tjr7+YlfVW5jMznn7sL0/MeHLG48+8mpXdzvSJgEM8c7p5xcv/L2+6cHTcmy7IuHgKxgWkuSCR5oq4N2JeinXI/K33t13gnk3WB5QT7yn/P7yxnPn/XxBOVug3he6Z/wc6K4ayAAAAeJxjYGBgZACCS9IZNmD65+4+GA0ARvgHuwAAAHicY2BhYmCcwMDKwMDow5jGwMDgDqW/MkgytDAwMDGwcjLAgQCCyRCQ5prC0PCR8Zsy44H/Bxj0GKcyqAKFGeEKFICQEQAJOQuTAAB4nN3OPQ7CMAwF4OcWaJMmaSRUJFCHqEjcjRtxkF4MEzywtOZ3hZknWfaTvsEASjynB+GeURs9+gIn3QOSXsWZuOSKDW858SHHvM5dPl43YiRKL/tpAtSAl2qimuFjOsHbtAhFoAB/89lfnHW1q5qxMTbZnW2tef3wJbTCb/CPMwM4ACwLAAAAeJxjYGRgYADi0OesrfH8Nl8ZuJkYQODSz919cFr0/23GV4xTgVwOBrA0AFr7DRcAeJxjYGRgYJz6/zaDHhMDCDC+YmBkQAVMAF+2A5AAAAB4nGNiYGBgYmDQAkN9BgcwDSJ9GBQYlMBsiJgolNZi0AbiLLg6ECnF4AhWB+H3AlVAeA4AdyMJHQAAUAAALQAAeJyNkD1qw0AQRt/KkiHGmKRzE9jSxEistjDYuFadyr0xQgiEFiSfI0dJm3PkAj5LRtIE3Bi8MMybH775WGDFN4b/FykblrwrRyTslGds+FKOZedXOeHVoDxnabayaeIXVZ3YsBaaOGLBh/KMT47Ksez8KCdYbspz1uZtkOoJXKg505BKBCqJXgbhUp+btAlVkOpuoJ1CqpbrmDuZlaLuyXCSDxKPhKepZy9dP4Yjl/+gCO21CF1VWp85e7D3BqT0+9Sn3uW7pz2fxFMn7Xp0auXOcCkb8+CSU9n1dWitc3nmnLPPKv8Br9RH5wB4nGNgZgCD/wcYJIEUIwMaAAArwwHdAAA=") format("woff"),
- url("social-logos.ttf?51b607ee5b5cb2a0e4517176475a424c") format("truetype");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6");
+ src:url("social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6#iefix") format("embedded-opentype"),
+ url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABtUAAsAAAAAKlgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAAPQAAAFZAuk/9Y21hcAAAAXwAAAGWAAAEWDeg0QRnbHlmAAADFAAAFNMAAB686Rw5FWhlYWQAABfoAAAAKwAAADYWJB25aGhlYQAAGBQAAAAbAAAAJAQaAi9obXR4AAAYMAAAAA8AAAC4WgAAAGxvY2EAABhAAAAAXgAAAF607K3cbWF4cAAAGKAAAAAfAAAAIAFAAKBuYW1lAAAYwAAAATQAAAJGA4c4LHBvc3QAABn0AAABXgAAAg1QKrNaeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/Mo4gYGVgYOBnzGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHD4yflNmAnH1mCDCjCACAIwbCEIAAAB4nN3UzW7TQBTF8b9jJ6lLAbep3QABQtKGj6ZSF30ElogVS16gj+8rZxZsypmcqCzpuh79ItsZxTO+5wYYA6VspYLRlkJnFBvdLfb3S4739yv+6PqSpc6qvooyplHHPJaxGZphNrTD/a5LZapTkxZp/fAAfRHEWLMazVo9zmoTafxv1n+PQk/9xi13Gt81fjyOn/zi935oibzmTPNeMWFDzTWnnDPnghd84Ua/MdNu39LwgQWfeMOUE1rt7j3v+MiVnlNqb0fa4Yo1X7X3z7yk0wImT1jlcz9O8sdoe7i6ydU1vXn6A9WAvjRVg74y1YXAVCGiMNWKGJmqRpSm+ik5pkoSE1NNiampukRtqjPRmCpOnJpqT5yZUkDMLK8/zk3JIFojf99Z7o24MOWGmBv5OUtTloiVKVXE2pQv4tKUNOLKyGvfWH6jQ2PKIcPMcr8NrSmbDPemlLJrTXll15mSS8Jyz6aD3NdpZLm3U2lKuPrPlHXSxJR60tSUf9KRqRNIteX/idSYuoO0MPUJaW10fwHJHpItAAB4nHVZeYwlR3nvququ6rtf393vnPf6vdcz82bezDt77mOP2bXXe3p3vbZjWK+x8AGYgDly2F4wshyQcxBhK84dEyOxKJESFMgfwFog+CMCgZRdJRAlSoKMkkiJIiX5IyTjfNVvZ2fWkHk91VXV1XV89X2/7/dVC6IAf+hH6KawJZwWHhY+BKUGo5Of74XBoD/OwoD/st44Gw8XUDttr6Nh2ua/JG8b1NAGyjbQoF9FYeAzEyWN9miYjQe+x2gILaCctsdhFZpk4yCkbeiszaA2gz6rCFqgBtUahYpTtZ1iPD3ViUVZZLpMw4gQUSWUUKdQCuN+Y1ZFVFwVKSIlR3NUjHQWGLZbDqYx/s3msLe4/aF5URJ7H1q//zxlMhGRZwwRQcTwChUmUQWdRSIRFT0uNufjyI2ZJsmKRH2XKKJkyIb9eFIo2gWZulGPUsQQlWxXtnRqfkq3Ii+xtEKgFp4tWeb8DKG4UkuIOkMI6dlMwoqIRVa1HC5Wmsv279AfCbZQFqaFI8Ip4V5BcPtV7FFWRb5n4g6yw/54NOxCzg/7G3g0bENukOWCH3BJdvFwA4NoMUu8IMxA5ib2B202GCX+624t0B07Cq1i3XnuacujuiFnO3JBY4F7bOOrelAISFebrwfN2DSLTT9OIhX9GqNrqqfbqngBf/qJJ9AL1IrbJZklsVdxFESfsGxFp2RDIrKh+vZxpBeURtUqtjqtkuVMTQe6Jz2iyYZJXcsrCiRf59fQG0JJSIUB5Pl294Zd1EENE1WQV0WrqL+BQG3a6aAfeBQetIfjMOEpPIIa9LqvmqixXN+sLzfg9gLcrP/aUU1T5ckrLymmqfAEzRsqPIfHL05ul1Sra7omXF82XAMuPp2JXr8Bc9KFCGS/JQitvWH5gDCNMZd0g3pBZns0qYPG2sPxoN4PWP6AryBvAPMP4JXxCK3I9D4q58mjHaoolCf/Hju7N504dtCsE9+tUAM0bL6WTs3PT52bmr8B7XVZ3pYNGa6f228Zv8o74K3O84RPV87nfBNs0RVCkGVVaAhtYVaYh9rRAm43LLGGgv4mSUO2gHyWspCFaRZm8M9G+R3dJOSboi5+A9Re+hbPUPT1X9060zyzZXW7vws5Z3t7eyEvocNgSJ8g5OOYfVLjd0Z+dLkzunhx1GnUah+H7FSn0/n9SZFPjd2eny74wpSwICwJh4UzINlGFw03EFi/Z6IMLJ0F4QZi7TThMAKanIKVbwJwcCTwvSAFEIBm0DYI4UnWBYUJ86Y1NAaoGSJh5cry8pWnefLzhSBtFdXazLu1MtqeC7XeZusLZrG3yqiyfCQpRV44tTquNdPxc63aTLWgxBuN4DXFmeowSUznY6dzqyNIviwRSTq67m8+euh4OB8F7bW42HexVbApkZKNF4hkLvXdw1d6K4XI1IPosGEVHcNQJQCMLUG6tf5vgcYzQRMKoFkCYmnGQPQ1BOKHHckslPphNmJIeO7iM888c+m55y49c/Ei3C/euNR+9tk2eubU0XN/c+6uU6fuOnd05+xdp46+dldcPnGiHPPucT7GdXRdsIQ1yLUa1Le9YNCaWA+H1pQN+hyPOfJ2EMvGUAly5SCbtjcRF+i4xjcDfWx3t9hqFREuNZsDohhX1G2DyhhhUZGUE+ojIUaMierZkumJCCcYU41aj+smRl/wWkX+soeaxe8Xm/crFM1jLEuyiXEfIYBD6AUVmPa6KqkEI0RNmOxt/WhxL2ICwIE/GCWjwQgMq19DPncXFTRgic+BrovyfV441x+N5lqWbZUdha0pvf65heUr6MbylZXhg2vyZzYW0jmMR5pitTc+I689OIR3bmEOH0sTYrATwfVhxf5g4pf8XEC3SoTbeG7t8OKxtLV96OTle88sLh5bWXr4kc2gVpur1dCxYzDcyUPbrfSXjy0unrn38tOPPLy0snudP5yr7e3L36MnQfdho1xYHSwOMA1WMThY+FSlV6n0Vnrlcu/bFZ6u8DJ6sjLJ3JHc3u/fg3WUhA2OnLnftcHxgsVggB3YzRHYzphv/T4ahYGFJmULUY5bHNMY+sgPVV1WTYmp0nsJ2XFUiWDfofYCUsT7maqyE4whFbRlXZGlE0imfyaBOnCMUunuyy7lG/kc1mEo+sQDpdJTIlNkDTqTpJ7IRPYAQqjIAVC4ZQtcTye2YAFmCVkyWkWJPxjV/XoK9wz+v//qq2+++uruVXT11TfffPXkya2TJ9+8582TJ08e1Jfze/oCuzZeR5RvW0400h4whEEPqgH5uEw4ugCzaI/aWW4F4z5HkLAXMI8FnG2wgEsIyMht/Tq7zZhvGQoTCVVFERybBMgrEcM3TaLNBbVAxDKVNcuNl+Kiq4oMiUEt7JhM3jp7SxF3nvIxk5oiIbLEmKXCG6D1kkQlHyPqqpJbzOqRojmuSHXGbBEj19GUqJ4VXUkvr0gM+0/tcMW9vecTHJ2erPy2+pAJlMLaGDh6rriwZrAgWBs9iIqryWqjsZr0my2vAv5j27XIzkfJET7ZPbDbvdZY3Vlt1Jtud6sLjnrB1LOd/fH/Bb2c+2vBzTtPfurArQRIBuwi7Ong2kv49NbM0enpozMrszNRko7HpyKHnEdbnc7sbAdYi6Ftn50+cu7IdJqG2akscoIBPOp0YDhyYM1NYfEnVg1umY/8thWDAiU5fsAEDq7+kWa/vxPFxkyt1jFUsngWd3+jOFUqTRXvEMCN/vF+EBlgwIZq1FW5tbADbUolYU/3vgPzAeMG3Mg56p4Eco7FZzfocz1KkfBhGtXHyWoC12JjbfXelSsrcK09NJBQeqYe1ZO1Y2tJbTXLxx29c80Dz3DARqaEZWEH+PUlKPfDKgkDj5mE0UbaJWl7mG0QWHPDFL2q2N8Qh12RTTALyCBwbD+XDnCkbA/JkDCK/ZKrgj0i1S358RN3FkfjYVopYFyopMP37GfHMysr51bKflQstVrjVuuEwlmTiX77p/eyV0ze3s8ke3Xl7MrKdHnTC1/jnY1bX52wsAPci6NCWRhCqX7Lj9VhUfawTWBT071lhQnIuJ27hoTvNBg0t20ffXb3y3qhoKPjkO4uL1cMzyu57g+XRTotS8tjRI2COw3Prxf0/Za7f/6l2C27cH33fuDpphY88KUYULHodg7Y3jWYm/eT8wLnPaqja7uft+PYRhd5eu0auoiuxc5bQk7dIH3wsccW9znmdfQaMDcNOH5jwgbGA8Aq5tcwh7IWj5E4InHmBuUh+trT5w+LjD6N/vV9hQcVffetnwVQodIjokzRo1958T0Mr6DKL44VCGLkv24uYfU/RQ18LqX/g27r7RdBbw/lkRoHTe7rwEOkXdDVXHYTe85jqyE3Zt+rAeZDM48jKHiTPc0GhKQrc9Mdy44ZlhFR9Fqpmg4O9dt+Ecg/RBZ+VZTqlGDgk8zwqM1a/syhdvc0uhEGd3dq1SlNZDWRaA27OirY64vjoxVPC6drQRviI+2FoO3bwBSUoB5sGc78Pd25Y9MHcP/4Pu4Dc+HIzmfv5THlIFd/zhhytwB+bn+BOdHkQcaEXuYYkuPDiTVRigkJCoapSlh0C5V2P+2UY4UBTANQR/Vqfb65lpQHtUJZMiW/Ws9RJQf5w++JpoMnZE0PqnZcc5VCmHXavUqxbZRkQmII7npxsmo7U0vH1puWOggaSm7vBzH9OrD2BcgBpQXV4ioNQW/uu/qwRZsQJ2/CImAxDfBvoP5AG8EGKPpL0TN2X9M9kWCx0yTteX/WpXNN0uyI+KF3yZH8qGJHypkzSmQj9DnNNDXGrhY7J0q4rIgiUou4dKJTvCp/7LIsX1YiRz55UnaiPR3d8zUfFH79bcjLeMQedidEws8hL6NdsoHDLjZBTzZgJZR5VbyBu8TEYQ9awEbgPGw34eEGqkLDLt6ANUJfvXxjUu6AWYPv1wbKAOr4+7B9KWdlAH3oIJi32juRIodH7jkUikmynjh29chKqkTDY+9FnY0luzgeucXeHJILgV9QkFpwCyomxNF0RVaxxIyZSE47kTI9BHY0GjXFyngz9mJcHVZ9r1yqz75zdP9w4d6e3Dk2SxqHT58e24YyW15qpWb80EF/0URJVdMrjVpJbA9ASUSDJOs7O8Pyl6aGan0l86JBX69Fmm9R0XD8gopk0wa6hSTRsh1qkcZsqM3MV8Rm1vGshZV+RXKs+WJtUFOYrGa/Nbx/1L84FjHr33XfiZFRWj7TqnQ1NZ1eqk0trgq344s3wFvWgUPPCH3gVAMfvLA/iV3XASA51xtNCB9QabD11mCUhJxtDSfuc3z96lXkb8X2TTuGNMgzgR3vXr/J/7bckuOU3Gsdf4vD29Y1J+bhqDMLkdLs9at/Ybhu0XUPxqN/mkd628Ip4T7hsvC48CzUwlgQ32XhxB8BxrC0TTknZRPACcJcmyb+cwOlHOc53kvcwiHWa4dvixknsCXddnWT5kBqORwkPQhtOEMIBj2gB310o5ya/Z34SFiPooLhSicIRZXmdtF0vLKu4eF9j903RJpxZOLgdr/oGqpc1rRvLJxZWDjzDp58Ui3LmuHu/lh3nMi2P23HNlwxxsHCoo8lSgozMwXoVfQqZp2cLhRCGMvQbETIg8gt6GXPCKhMJzQMDD28Znh8sN8xXBqUlVeq/fV+NU9eKofUNQpdPkxsVyfjnScMBwFwSmzb+DauvwF22uDxNEvBg2e5bLk0bzMjLtUJA7gaO69g/LI75J53ch+6L2Puia85lxRdueS0R61WiSr32VBpX2IMnP6offtc6ia6AajFABds8CUfBR6YhWwR8Eoa9kYp6/urKPNMDMY8SENOjiBiy8LUB5Dmx1EhG6Q9DsUYDDoNR0E6ORrMd4n/DuJ3Tt9BhxuTU8OJggT8LPCvMP4DhD6FPosQ+WOnPhfVygRk4szctVQjCFm8qlrEInbdmbuzKRGq3re94MhGkJqyQkXKNGs9mSnVNCvZjKKOKatMpK4ZBnGjVyqibyIIrhA+Dt2/ht4dzjWcAmRr2d0ztgO9lmq8CvBInIIqx4WxS/aSqYkiiwpM0hgWdTVs2F47tDy5QD3DVSRDIZKhmmVFDbx9HjDB2JIwl8dxBzHWNcG1MdrloTlgZAZFAN5JmYMmF8neY16+Ex6niSbe835JxVT6hfMSCUWDdj4yoDosfeUTPSri3j07I9mUZHnt1IVlJiqFOzjwtyVCujGSNAWXh0QbU0JKZgEzQ8dOoSoa4wqlBSIXLOxQVpcKpnh7PZ8XAsCgVeEclNoN8A9e7sTAPC2U54Ysr27wHfUmHo4Tuf2WIdfVW43aw82DvQzRV6Ij0fNUt+nzeiPSr+oN/ZHoMHV4Uae2TqMj8fO0n6f67do+vaP9Iu8CrUSQwhvP61FD/5iuvys64lL6vGHwF/kz55fyVL9V16YHmy7ylw/68D8UKkKX7yEPtmmOurnVAXsbc9ANM1BsdquKQzNvwpAwnZmOeXzpNL9VZzM7O710HLKz6LPZ9IuKYSjrm9NZNv1JfpJZNozydPaFdV6xtsZr1o23x4att+sRBc+5gFhCwdIWCMTAIEegyQeURQblVug4wfmfOxYlpP5Aku/QiG9i8J5kZgpoPqFbDlA7Kl7ARLqFQT8PuFAFDKIJ5Qf94FxGScPnp3MQBuZccwA+HT1quoHKzp1bI6Lpz87qZlydDTr0JYZM1b668Ripxy1r9EIclS0HWfL+2iZxwexPiQny8ZJRfoC1CjEZBJ5BBpgH9vCZAwenLza9QhwZMobIZHERBbqskSK6fvAYdve7KHCjUzU5sFy83jwRIbEhKQc5+1fycwubn+XwEwt+WpEyG4KPbJCNLJQwWHYdXU4SuF4vXh6OTj2erF8enkZT6N7HHnvsezu7/zQcPv4f/7g+HP6vcBu/fwBxBY9tKRtnlPFjTQ5+wHtA6cNGmrtFAFTgSfyWA2AGOjRG34+KZbVY0etuc0jG76jrvuM708BGZEWZLy+uq+r6XfesjWqVGH1cI3bNooY1bKoQ+s743bauoalFSlCxgVooTZPVpTXNvVPeaz8pb+aB6vIYlM8DuDS4ly5aR8EAHHMGU+RsnJ+u5Iu5YweOA4s+n1DaKBViSdKoHai6qjNnVEWVGcs2AUVM9c4d+RWR1Lc9P0C+ayFMyjYENEFRC0rgav2yRRT+3cHak+M/oK9DzMzlCHICZU+4Q8wm+Jh/GBlDDRTQ35JLD2ympaYbSlW/UZsLBrohWY65hMVGwa7/zFH07u33f/j488f9UrXcwtKJc96RS2GbPUnw3pnEDbA1B7jxBUEAgMoPALhPAxoLpCPLGUceKuEkj1Qgkmq1F4D45l++eCY/dIWLzzPNAa6Wc2GI6tO5amX5yvLsqdWp5YeXxwsSnV1cPLNY6m8li2cXSqKDDERJVZWIqEuMBA2DUBlDwEQKItMgILR9NN0za64cUYw77+194OHlqbWTsysPLxfbYrRwdjHZ6pegx0GHbn8AE2yBMZsSwUo1kKhCRCxKqQLY5PYraDmgCsaWbeE7cMYRNie6cetkkX8ZyY+aOanxWO6zOfAw/gkv5Xy+7wdh/rUvzI/v4eZx9Sg3m+ULV/0n4L5hURUCGVepebGiOExiku0iCZynOYRgt0BUTYUwQKHoRrP8z+Xm1lZ+u1wbLlc1UVFqhweW42Mm956llEnO9tJlRr1e5cI0hJuWIOxz5ZvAZnTwuMf5/rV4MJgtwDrClEoTPsJDyjC3RDYAvwOxVsKP6xtpr9GGJ8F+3TgDimIhvtnkIDlFZLlYrtfw7trigzbatohMJMckpUOt3oWibniOJIlSsDNbVVX+ecHx4r0q10yxtTo3vL4P0P/2OUCrP1l6KPpxqxaXick01fBRVFqYRliW8XefPcdvKC98Z6v1pKJNNT9fvDTs7f73PoQL/8/5qwuQmQJgS/Bv37pDMAB/SODpW5CirbxilycH9OAVYPir3M9PGBqIroN4SDj5EAwZ0I4a5sEiV25+hpDb4ybmupKyUYi+h7EkKwbTyOoDw7UW0ZihyBJB3BGJkq3LOm08tf9AhOq3PoguyIojqyKsGCpg2aIqO4rsF4OpoOjbtsNrgQeiyTPFtiePPvLRdeH/AKeeOU4AeJxjYGRgYABiW9k+nXh+m68M3EwMIHCrN68YmWZ8zXgNSHEwgKUB+Z8JIAB4nGNgZGBgYgACPTDJwPiagZEBFegBABdZAU8AeJxjYGBgYBqCGAAhEABbAAAAAAAArgEiAWwBxgIWApYCyAMmA1wDlAPABBwEPgS6BPoFNAV8Ba4GKgZ4Bp4G2Ac6B6QH8AjGCQ4JxAn6CqILCguGC8gMBgw2DHgMpAzuDUgNfg38DlwO3A8AD14AAHicY2BkYGDQY5jCwMEAAkxAzAWEDAz/wXwGABxQAeEAeJx1kT9OwzAYxV/atIgWISQkxIYnFtT0z8DQkaHdO3RgS1MnTeXGUexW6sYxOAHHYOQInIJD8BK+oUKqIzs///LetwTADb4QoF4BrpqzXi1c8PbHbdKtcEh+EO6gjyfhLv2zcI/2RbjP5o4TgvCS5h5vwi1c4124Tf8hHJI/hTu4w7dwl/5HuIdlEAr38Ri8OpvksRkYm1m30NnexNWpOuWlrlxuCzWORqd6rgtdxV6v1eqo3CGbeJ+qtLI7NbOF18ZYVVZ2qxMfbbwvp8NhKj5K7A4OFglyxDAYcFtk3A4LaNKeJkZ1NnXOL9muWzlvBRTGiDA6m54zXTSNGJ7vNRsrHHk6HJiZ0HqkvKfMWP4VhVkzuU6bZpJC2Xzb0iT0ETZNq8QUQz7pv3zEFCf9AkQtapF4nG2Q13LcMAxFdZ0VpZXiOL333ux8EylCEkcUQbN4vfn6SN6dTB6CF5wLDOYCKE6KQ5TF/+MCJ7iFDUoIVKixRYMWt3GKOzjDXdzDfTzAQzzCYzzBUzzDc7zAS7zCa7zBW7zDe3zAR3zCZ3zBV3zDd/zAT5zjAr8KIWf5m12laJSuo1ZZHgYK59Km6shVx5o8uVoHo5SyVOnAXvF1Q1fkkgomUd3LjhTztOmJtOit6abQ9JxDvMwyUDmMHJMYTBqzagbmwdLqcXZEb3NcdfuPFgfeGheTHIKca2vcRNq4zSyNFfOCeT71xiUKFNM6v/2rhOduoqXA1mqp9b70YemJQFqbVMZx3SpOe09V9JxMv28Pq0a/nNLGlOfl1OzZ1Yksrf7NTe3mN+KAIu1M6sZ2Ten4tSOXV2YmrnejTFF63+6YO55nCh1tdxy0X5xieS3dIKs955QVFcUfQjyYFwAA") format("woff"),
+ url("social-logos.ttf?5d3b4da4f6c2460dd842dbf9e0992ea6") format("truetype");
font-weight:normal;
font-style:normal;
}
@@ -315,102 +315,102 @@
<h1>social-logos</h1>
<div class="icons" id="icons">
-
+
<div class="icons__item" data-name="amazon"><i class="social-logo social-logo__amazon"></i> social-logo__amazon</div>
-
+
<div class="icons__item" data-name="behance"><i class="social-logo social-logo__behance"></i> social-logo__behance</div>
-
+
<div class="icons__item" data-name="blogger-alt"><i class="social-logo social-logo__blogger-alt"></i> social-logo__blogger-alt</div>
-
+
<div class="icons__item" data-name="blogger"><i class="social-logo social-logo__blogger"></i> social-logo__blogger</div>
-
+
<div class="icons__item" data-name="codepen"><i class="social-logo social-logo__codepen"></i> social-logo__codepen</div>
-
+
<div class="icons__item" data-name="dribbble"><i class="social-logo social-logo__dribbble"></i> social-logo__dribbble</div>
-
+
<div class="icons__item" data-name="dropbox"><i class="social-logo social-logo__dropbox"></i> social-logo__dropbox</div>
-
+
<div class="icons__item" data-name="eventbrite"><i class="social-logo social-logo__eventbrite"></i> social-logo__eventbrite</div>
-
+
<div class="icons__item" data-name="facebook"><i class="social-logo social-logo__facebook"></i> social-logo__facebook</div>
-
+
<div class="icons__item" data-name="feed"><i class="social-logo social-logo__feed"></i> social-logo__feed</div>
-
+
<div class="icons__item" data-name="flickr"><i class="social-logo social-logo__flickr"></i> social-logo__flickr</div>
-
+
<div class="icons__item" data-name="foursquare"><i class="social-logo social-logo__foursquare"></i> social-logo__foursquare</div>
-
+
<div class="icons__item" data-name="ghost"><i class="social-logo social-logo__ghost"></i> social-logo__ghost</div>
-
+
<div class="icons__item" data-name="github"><i class="social-logo social-logo__github"></i> social-logo__github</div>
-
+
<div class="icons__item" data-name="google-plus-alt"><i class="social-logo social-logo__google-plus-alt"></i> social-logo__google-plus-alt</div>
-
+
<div class="icons__item" data-name="google-plus"><i class="social-logo social-logo__google-plus"></i> social-logo__google-plus</div>
-
+
<div class="icons__item" data-name="instagram"><i class="social-logo social-logo__instagram"></i> social-logo__instagram</div>
-
+
<div class="icons__item" data-name="linkedin"><i class="social-logo social-logo__linkedin"></i> social-logo__linkedin</div>
-
+
<div class="icons__item" data-name="mail"><i class="social-logo social-logo__mail"></i> social-logo__mail</div>
-
+
<div class="icons__item" data-name="medium"><i class="social-logo social-logo__medium"></i> social-logo__medium</div>
-
+
<div class="icons__item" data-name="path-alt"><i class="social-logo social-logo__path-alt"></i> social-logo__path-alt</div>
-
+
<div class="icons__item" data-name="path"><i class="social-logo social-logo__path"></i> social-logo__path</div>
-
+
<div class="icons__item" data-name="pinterest-alt"><i class="social-logo social-logo__pinterest-alt"></i> social-logo__pinterest-alt</div>
-
+
<div class="icons__item" data-name="pinterest"><i class="social-logo social-logo__pinterest"></i> social-logo__pinterest</div>
-
+
<div class="icons__item" data-name="pocket"><i class="social-logo social-logo__pocket"></i> social-logo__pocket</div>
-
+
<div class="icons__item" data-name="polldaddy"><i class="social-logo social-logo__polldaddy"></i> social-logo__polldaddy</div>
-
+
<div class="icons__item" data-name="print"><i class="social-logo social-logo__print"></i> social-logo__print</div>
-
+
<div class="icons__item" data-name="reddit"><i class="social-logo social-logo__reddit"></i> social-logo__reddit</div>
-
+
<div class="icons__item" data-name="share"><i class="social-logo social-logo__share"></i> social-logo__share</div>
-
+
<div class="icons__item" data-name="skype"><i class="social-logo social-logo__skype"></i> social-logo__skype</div>
-
+
<div class="icons__item" data-name="spotify"><i class="social-logo social-logo__spotify"></i> social-logo__spotify</div>
-
+
<div class="icons__item" data-name="squarespace"><i class="social-logo social-logo__squarespace"></i> social-logo__squarespace</div>
-
+
<div class="icons__item" data-name="stumbleupon"><i class="social-logo social-logo__stumbleupon"></i> social-logo__stumbleupon</div>
-
+
<div class="icons__item" data-name="telegram"><i class="social-logo social-logo__telegram"></i> social-logo__telegram</div>
-
+
<div class="icons__item" data-name="tumblr-alt"><i class="social-logo social-logo__tumblr-alt"></i> social-logo__tumblr-alt</div>
-
+
<div class="icons__item" data-name="tumblr"><i class="social-logo social-logo__tumblr"></i> social-logo__tumblr</div>
-
+
<div class="icons__item" data-name="twitch"><i class="social-logo social-logo__twitch"></i> social-logo__twitch</div>
-
+
<div class="icons__item" data-name="twitter-alt"><i class="social-logo social-logo__twitter-alt"></i> social-logo__twitter-alt</div>
-
+
<div class="icons__item" data-name="twitter"><i class="social-logo social-logo__twitter"></i> social-logo__twitter</div>
-
+
<div class="icons__item" data-name="vimeo"><i class="social-logo social-logo__vimeo"></i> social-logo__vimeo</div>
-
+
<div class="icons__item" data-name="whatsapp"><i class="social-logo social-logo__whatsapp"></i> social-logo__whatsapp</div>
-
+
<div class="icons__item" data-name="wordpress"><i class="social-logo social-logo__wordpress"></i> social-logo__wordpress</div>
-
+
<div class="icons__item" data-name="xanga"><i class="social-logo social-logo__xanga"></i> social-logo__xanga</div>
-
+
<div class="icons__item" data-name="youtube"><i class="social-logo social-logo__youtube"></i> social-logo__youtube</div>
-
+
</div>
-
+
<h1>Usage</h1>
<pre><code>&lt;i class=&quot;social-logo social-logo__<span id="name">name</span>&quot;&gt;&lt;/i&gt;</code></pre>
-
+
<footer>Generated by <a href="https://github.com/sapegin/grunt-webfont">grunt-webfont</a>.</footer>
@@ -420,7 +420,7 @@
e = e || window.event;
var name = e.target.getAttribute('data-name') || e.target.parentNode.getAttribute('data-name');
document.getElementById('name').innerHTML = name;
-
+
}
})();
</script>
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.min.css b/plugins/jetpack/_inc/social-logos/social-logos.min.css
index f5223f30..abe0dd13 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.min.css
+++ b/plugins/jetpack/_inc/social-logos/social-logos.min.css
@@ -1 +1 @@
-@font-face{font-family:social-logos;src:url(social-logos.eot?51b607ee5b5cb2a0e4517176475a424c);font-weight:400;font-style:normal}@font-face{font-family:social-logos;src:url(social-logos.eot?51b607ee5b5cb2a0e4517176475a424c);src:url(social-logos.eot?#iefix) format("embedded-opentype"),url("data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAEZAAAoAAAAAfBAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAQsUAAHZfa1y5A0ZGVE0AAEO8AAAAGQAAABx4Dt9ZT1MvMgAAQ9gAAABKAAAAYEC7Yj5jbWFwAABEJAAAAIUAAAG6pEWcoGhlYWQAAESsAAAALwAAADYHEbeJaGhlYQAARNwAAAAdAAAAJAOvAd5obXR4AABE/AAAADgAAABeCDEE521heHAAAEU0AAAABgAAAAYALVAAbmFtZQAARTwAAADrAAAB5koHYmpwb3N0AABGKAAAABYAAAAg/8MAGnicrZ13mJXFFfDn3XbvVnb37i596SC9d8uLDQyKFXtD7F0RYzSGay9LDCpqjB1REaPR2CXCFbGB2ACR3otLWdje5zu/M++9QGK+fH98Dzyz804vZ86cOtczKSnG87zsKTdMvmrStX2vveGKG6YYL8l45qTaFqZ2rFc7Lqn2hOTaVinTs7zibW36ZyUXd3vVZqUUZ5jWp+fbkpJEJCv04mW102p7pbZLat2inTG57ZJuzmtn+rSb2jLf9KfJsGlhikx709X0NoPMSOObsWaCmWjON5PN1eYmc5uZZu43fzYzzTNmlnndvG0+NPPNF+Zbs8ysNpvMTlNmqk2Tl+Jlevlea6+j18Pr5w2Vf2O8k6Zef9XxAwcM5M+gAQPcn+BrkPsz2P0Z6v4Mc3+Guz8j9c9AV2+gqzfQ1Rvo6g0c4v646gNd9YGu+sAR7o9rZZBrZZCrPshVH+SqD3LVB2n1Ia6/Ia6HIa7pIcO0laHua6jraJib0TA3o2FuRsPcjIYNGOL+DHV/ggrD3Z8R7o+2Ocz1N2zgMfpn0OCDd/0QCDDGe8B70HvIe9gr8aZ7f/Ye8f7izfAe9R7zHvdmek94T3pPeX/1nvb+5j3jPes95z3vveC96L3kzfJe9mZ7r3iveq95c7zXvbneG97fvTe9t7x/eG9773j/NH2BhM5p96T3yXojZ11u18hThd1aprSe33Zru1uK7+w4otO5XWb1OXzIE0Orh/965AXH3nF8vxMyT2g48dyTcid0O3n/qS+fXnVG5TkF526/YPCkYya3vTx6xQ1Xzry2/Lpzb/joxqtvHlsyu2b6bG/27NoBs5NnF9VeUjO/8ZK02Q2vFNZMrx3QMD2UY83oVsaa7ta3dt3OmDV93ola0+1rSeu4WmLebAl63GystY9Jbo9r5bPoFAn6fChpy++Qcq23m3xres2V7JGLJbhgoWSPyJTsnx4i7QUpk5cpsSE3mshlF1vz6iRjveNv8gutvfeEmG2ue0Qypw2NpVmT+ZlfIuHtvvR8m6RmZkvlpEZih0la0m75TG+UIOV+CcLvSZDWVXLDz0ufaW34lJmYUKkEqV0lSF8guamtiTGOpL/42rx0kv27qIS518k4G1tJoezmmLW1qdJO5geyGLW5lHwxam1lWGLh3pJbtkFiKa9Gw5KzUlpLfZacjRILDaPrFozp+2g4ctmLklnH1woJkpN8nQmdDqHTrCHSaXOKZGWcLl01NNHMGOmqYYd0Hz5fuqofJ2lpsySt9nXmkkzsaSbeLHVr6C75FSlX9aHUSOprwhKdxQSPYMR/l5hXJLGKG/yScGToi1L5Qfl8oo5F/2K6ZB9xssx5WAtZL5NaHJNBpdRKATtHUlO+kkHZFsR+ItZNukjpJ7nNt0paMqvTBIAkz5MBNP3CAHZLWuMeYsMlrbGYkfQgFvGDkdTvl5nbuu2y9LayiazPYvdIwgUSbejC+OtOkpk15EtLNQ/Q8KNSq+pTxn+TAE3yCEmbMdbI+BfKoplxY6WPI5dFZfxZN7K0Ge2oxJ6H/ipt1B9BjIbq+0osWfbLVl8sE7Xl0wwjYVDN6xnZOAmaXmMjnpFCTX9nRDMAi28Z5n06IeZ8I7HD6OVcitxAA0Pp6oeYNiVzqGchXKszJdHeKc3UTzAlAjEfvCaLZzYygVoBJhN62bjyJkcaMQbIa9EiJiUf6uTLrEwDWZ/S9NdSPKdAGm18UtKy7yA2A5C9iyb+IBWzwoCsgJDJuDcajwms2+oOQNR1EqsAytKG+uHI6x3la7fUTxsv6ft3saktAe9SFmb/FDaq/GdmfJmkVrZiNmuIRZjsj9JnlWy/rd3HVp0pGTUZxCZJuZo28lk3hZ27mAU9Bhh8m9U6Q2pUKMCw0uXztKvF7Mf+kzjZ40i9HkgrYbCf+bIQKU/6rrpJu5wm7+JEnUg3gGT4TmK9TbD1dYdLuSwG2wCqcLERrNKtTOUpKZdTycEvvAtwyb8e+N4pqS3aSGPpG1n+8ZKWvgJsM1iayD1L0kJXSJEi3dyfQnJabPMoYKodrV9I7HTW+2Zi7xO7hDV6m5XfCjBNlFjVHazo/guYbCXoVYGxtjetv8w8R9dKH5NXCmiYtFHSSF2eCdahur8MxpOZ2fK5Ahr2jVYcWDMs6s6hMd/H3Nk03tnUecnEYws5gieRewP7ew4rO4RDexVpXfi8mlbuA49dww78SOx+zvAaVvxXGr2SdT6N9cr6ibXLmMa5ONZBkgy0hwlHugg4/X2qJJ1wT0xmcPXZMb0TBNu85qflWK9fL8m7orfxgkvipCFR6+UOlMSTjo0l18y03hMTQUsP95U6L94ZCwL57CAL9tInUvCIYkl4O1cGcwa4acuX0kzGXI5GAXPYxHgfY5SpfweVpYY5e9/LfLI5s3ar5Od9IRUXvQo8HgZUccX0vN6USBfV46Vkq7dY5LSgJUnd/QywM0qyCtaBBedHSzjGhdeAu/8IRj9Gaux6WJKtiSRJ6oZJUqO4TGqkT5Ygi0VOvZUd2c9QlvIJCKdfILG01lI4FUTyw2wW/jxp4Dt2O/9spnDqAsKWx/u6/tIBF2H2a6AEhStt7Bo/uB4K/w7MCvYy7c+NhRlQ3i4KfCophy2Q8lsvM8ElrICRD3JMYqPyOwNFhUHMWi5OcvWYag09xOawjyVoSw9524HwY1gjk8kVtPmVYBi2lEPctAyk9ELMDdfuLwKEDpfY7lqOwc6PZYDWvtWC+crVbfdUsAa3+e4AmdCcqMMgJm0ZO9JIpd3ZnJ0tAquyD1JyZxXfdZnkyVA4UUAjq57xM1NrKcEZHLV2IwGfHAlO3sqKXjiUAzd1WQBq5qK7fQW14hwZPtBZvExqzftRgg4fS3MzdknQYVI0DrwdBPN4Vwu+MZ2u9AFeahV2zLDm3T1S8qOOcgRszQZpfunJrM12CZZz3a/sKB1tPRfggWDJFKpLAE/GNRQUsRNkMOZP8jmS9UrvIW0N6svypXHWQDnN6eCgx4+UelP7c4uUsmHVb8py7SgDRYOxt3/O/bpiHcuzqo+0lCO0lt3UDgBnk5NPkFjauxJ03SyfY4Gvy7+Wcl2YsbmEoKNkmCsIuvvxGGmtZ0pTn4IgMp6Q2NdcwEngvH2pjGwge9Z3J/PfvF2iHUHUe31potc8KWmEIDT9lrEH3hoT3HfeGnqA0tK0UBUguFpiZ5/IPbpKYudBPLU9kiMyJOpuHkcDKbmTItegrQLOmp7kpJ+aiB1PbBYAM1pis+Rg200vSGxpnQRv9peMhs3uEpOxr0iWTl7oFhX0lclCjHhE2u4OOdnPyucgCNBWGZweSII6sGLHx2U0P22SesVyau1iCLm5MUn7FYrmPWghcyp34yrWry1Q9wDEVclKwXUmG7IteQIbBAx4X3Cw/8ni9BsPHuvFrbL3ORlAR4EMu+UWaakRirtBELndyqzXtJceFwghaHcIoNrNnaXwMFkxux7M3beAU1gD8HwKTfHh51JlYR4IurWgH7vJSKEWgrDsL/cEu2yXQ5bVQV17YyX2+WcmIFU/v8gEN1vzR1I4mZ6bAaLkLsAzhE0ySLWRCya8AZxR7jvi1zZ8RkyQqzlGWjFtp3HGpkvnPbjDk5WM7u+H5Z5YLaSrN+YFQHsfsFMH8inrSBsCtXbvePDeFvBTXoxzLtWzt0iQ110+0x6QhgpulCJlhVy57PKe4xj2e6Ce7Ci0qHzu4xLJk0Nlf4VeyBA8ZbcvA498P4dD88v3UQ00QSnWTuzkIsZzGhD7J2JPcxd/6McCInzB3ZLTWQZklwvBbIZASdfeJr1V5Eus4Q3OiGKssirInk1wIi3gqbZxvbT8YyyY8X6YLQMtUX4viyOLaCu53NOm02HzVhPidD/JEsqlatdyRR0mM7I19dEABzcpGwMz0bw3pgwNOPJC0EI9jZpHAIxX2GRQSyY7uI5hdDwL/PFPabE7K22PlyY2Z0mwE85hNXdCuSfBz5YW5dywOGkmgJ06MJb5HtaoOzTrDuiyfilgsHukyYHXAdsvGcKz2YL7LoacmPIOwJ78Lf2VAk9fcnSXA2OATR54K+tkCXLkLjAtrgVxCg1p8h6JhnOk5kw5EmYkV92Y4VJ+WDf5HOX5+UusWQrPN3qtZP0e6nSRYF4z+lUTqbTe3B9NbUGhbZ57IfRc5cmg0btiQSCfHSRrcjQkceFOTfqfgnyT+XasWE4SVyQd26Vyc5mR1SCILNDc+zAjA5+W72IoirZgrj5HGalT2F9JzhGclmukUip3gx2vN+G3PcHQp5FQH02N1AboXA96JQe9bJjpIMc9ialONqGAlfsyXYLvCqA+7DVCXJtJa/ySVB2kG7ML5LMDc544S2pqppuLzkrmmrj3CgWxe21nAJnfAY/QZ8TMGUe63DiPrwXHjJVZHtZWgiJolsJH/cjz1kvmhP9jNGh01H4Z3oV/9FMD+LAZYBluedsRSLmHLR8Q1atdZiS8ji2FY2rsAgqdyzHZ05Mjs+cXqZgEYt37ncRSc8DXt04yNScWypK2BVsrp91mMsdZSBHTchUI7zwh8GzqKSbV2hhXTQeh8u0yQflmzNPw4OP3CM/p5pH+j2ghh/OxmLKiQtSx9tXHSbCjBVfbbgjAWJHkfPK2NCBkWmpkvqzmw6B2mPKMqzhPw31oogzIKokHfFsLJqk3lL3CsN8bS2MBc7urPFocWS9T7Cotb4TZSLo+WtLBFdeGtQm7D3KfZq2dFKOL9MWxoHWVH9CwUH6CGu1bwu7Znzl2d8OhfNJDan6/yLjhsrluuJNjB4YLM/3vw4UFllaBrY1wecFwOfKNl7E3itUhG20DCF0phc5wG0NkO2XzJeg8Wfo+JgnAH7iLFe8L37p7JyXh1zYuYmmBAaUNglhbXwUOie0vB0HLzkh07yR6VsBMbxtzWSb9E5DrQJlUSJg3WwHDFwa4yv7KaHeOZWm6gz1OO5vLL6dOSm1FPhLmFG0EZVrIjvVzaP1jWK1Vc6X+Qg7rl5Re/zmX9yiBTvP6ZIEnk8H02p4DlnpVGircwuwit4DbQi2kUftnX1G2xMCCaW2Qbpz1btQ2fzcrKrRi/Mj9SRC0kJEy7a5TJeh4uBTuFiFNCBVy40TnxGbuF/j8wT/K5+khzl2KSfBOnTKEvmwRs83Lj4WR+oG7ZNVJ0lp3Lun+0rML9DOe1kFOypmMOQJZXXMzWFZ4F5C8DHfH78H83eX82jqIk9R1Mp0qYcOUMbRlq2LCDNktl8rK7YRz2gmFv3lTENAyadJmuycFn5pORSr34i4rEv7FJMGAZD8KBPygRGch0r+OgNEpG2KhACLr/0LWPumvfjsQUIs0zaRKzndv+o7QsWv3gAe7qYhlvhxZc/zlgn/stolRAv8awQwwihJ9w0UJ3tAEotE07pERi6XhD8dI0DoTSAemS4RRtks6A9Pr9EYZsU2yvkJYMOQiCY6AEu7COSDDHDWfWJUUH7HAjzwlOHL2sb5eMx/+Xu4Fu49VqngiGgTy2UGzQi7LZF0dZJkWp/rF1hv3ILeJxF2WC+Szg2aFXJaroFWlkWJrs18SKPhosSmMLOGOgHjVaY00jGHLfb7OsDCyUnL3CA1q90MF5YBZuZ0cY4jQyeSADfInmCAj52sKDxL42IPsZ89CPodr4GuabPL+HyQqkCXL/5WcA3NOO4QVhUdxJF72OTKQFF9K9c0XSskGMPROaMSdbWXG9hWYYV1fHfIwWUO7vRI8s9iEIi9HnWDP5FwusfwnjMNVpu0HPls/ci54ba5UWZ0FfMzhznxmWjQUP2znCaFm3kQ03WelxLr9TmIndzwglIBc6MEl1R2uY8xMiZ1qovM0538KKV55iX0XcLf/XEK75/sBnldeL3cjmByhOWIRkwJVoeKnZK6j3JclVojc8pwrETFAVkEgZn3FpnCY2isrPlCKFSFKKbyM+oOkufBi6accVqHsuSjj2PNPbnWYzK0v+Y6Wt9uFPBdOQGKlMUDoLYntBQcUVOjKdUPq376nZPUQItKMfF+yBiOFXQN70gVp7xIg9vMJnLaLpLGfBBPZH/a5Hv8eDbDe7jNAvd+DJk6RJrwFsYBcN0qMwupbkAoCY9t8ngR1R/t6nzgaEXpIclV0I7hMhfJS2HdY1DYgI/M2cqrP5bhQrUywjOleCWrpMJ5L/xjY2wHbpNMjEJCcz2X0OyFazUg6WII08uOHpMUP/ijBj0Jt20VIuBfM4eyUTgbH7HpDimcibK4TVGCyj9NbkCnZlcpTIhOtTmFEfSW2B+FiBdKfnYtBo8yBc2AiNTSBLLEQvrWRK6ewGayp0gcVPLhAP/9TItFBWKI02W8HeGaSsGRmPPqIT5+V4LWh0vzLN0jRz+n8fYbxxi2CU+yWJ7g9tyHez+kgqdVcfrkfQzjY/ful7LfvMJ6XJFYBiqvmolrXH3wK/fu90OG2iTPbeAdgizyy6VOJNSIwMLtMcL8lvU2sI1dDusSqRwE78C9hxFldHpZYKndZQYV8tkVgd+PzAXjX/BWwRxzR8hsp1g1MXPQcCAIRSjvEZi3hBiBY7N7PZWS7LowBbDshE/fB0K1D8l0L57MRigGO3G4bQnfPSKwUjNX24SiLPZAt6H6cBIMulNRx4FqfC/L7b6THPrBq85DFvM3p/VEOmf0Skcqiz1yPiH/S4YZ3jAYu7uPAcSshWlXprjGnmUBp4KQPMJ1NcqZsDXxdw5FxlOmA+liAnyk1ZNEAoNFcL7n1IKEk0OLaZlDbc0wDln5gHoxSj0kA+RlfSc++3LTmpJ+k+B+MzDBHyAOGsWJi1HuDP2AIufyIJVvzsLTrCYZD7TPRP+88/aPBvPOEqKHXUXOj8+Yl4rHz5pENeVA6N1qk8f+sFtWi/1nN78B1+hAc2RNg1ItLhYjx1sn8vR69kW8nQaGPlD2xpdAz7ZHV/CTTVqm1XXgLhxys9bOgS7vud6wCGPcjIdZM5gm+U0mZDEFnJonCwsBLh0Uq/EUxaCtAUyp2384+Ns+RtH0vA+cwTL/+Q4I9yE1VarkHJcVmSEwkv3a/cPi2+iPgxlaGoQerBLYFNo2rbvoeFT/K2WxzvSdpnWSyqvwww6ZHAw3ioL8wcMReLZ/jdHE6qWb3TzbBmEq5psoRn+mNuB2YoIbd/a+o4iJipLUkbSFkrMqht7WGp4qgKMwGc6OidErP5NNZihZjWIocJIY7ixjo76TSD1BimYJB7fLB1Nkdc1JJk1keDdLykNj/MAx8BSOxUyV+22mr5xdA4OB8bojREhx+rnQ24SYJRsH2jG/vO3GEGY3ehd0zvUfEAMx+vqCvLrcnLtnXx0aTrfdjnkBD4cmxQjBSAwKg9uDUClQuWYItbBlYIc+AXcHiBsarZg6xBokt4vpMgWl/9SbhYNgr+71JozESXAHbAKdbw13XbNly0CsiBlu2iCAl6NBWZBs3CLv5b75DTw3z4lu27g45BnbDy35I49LtsaTeakqKYZ1Semo1Sc9CLFiRBaIFjeyF7irkFkTa4nhtNIWmc2cQqWyruR5SW06+TEBaOgfqRYWso2HfU84Aj8IQerIKJr+vcaugrZtcWQXtUVbLd6OQFXS4VUdoOiPo6fwwNFnH86GmSdB5mc4PxUrkrkuCUp9yDqSarZfk36MimYKY7fOVwmNLQyfL2pmy34NwVkc9IX+fFHrMjIblfXNdLFmvJSFvOwvr8ZCQhc3fv4Xgbonw49aiBNyN2KB7CwCozRLEQhN8aX2HrD4qEhlTV+iFbJBEeIEkdlwEAkSOkg92UY4SMaRbAuQFxjyuGL0LusqFiGT7l8os1swDmRN7/0aYCIPAtAqttGqqVaUT6RtvI+08Gkf/Gkbu6XE7pKC8SurMEVMEv+6XqLA9DS9ysYAvdk/lXIND9qKGtG8ZgLuPgKBpDxPQh+16XEVZJ6xATnItIApqM33Yjsc/iDq2RbKlkc3gLakYedZ6j6PEWzedpVv/mEmL/A0ZAMgKCak3xVcFbomKvQXO5yNZW9JexrCEK0s/gzRpZshmqTNmbKwYrp4b0EMir4rNJBSr6VNgt9Y/II1ecD/sgIqm00BuqjkJ9xYqyEtfAd+BuYNmuSDcHSZu1h+ioci/AtH9FZMQ80hGUFvbqVkOIb/sAz9oXbNcIJ9ylpa9gwDr3zvuLrVMnxNiv91x5BdrWVF4FVmnlYi81yPbXC/MgfskMJ3yfJdhDoOd04A0F8inTOEwBLlaRktLvWJmxDY0V3dFQNDqZuAFrKRBq9vguOT6DUU+0S8Bh55Bpt3xgKxY8y9PI0bc8ecgywWSJfzdL7OZ7g6oPK2gVaWHYva+x7XCfApmRAPX9TPp9Xn4rq7o51zsQyPHbIVQFl7yVczcVnEIxoLJymIBXe3SxsQCLadBqGHLgDe043ZVLC5r0xqQKi7NtUI5aCG7nBhWAi5XY4hhzW2JGloXAxhXV9NcXT9eA7xtsF6x81174UO6g+A6qAqY0hVEs2DBDOaCRJo2802iO21aJ6xpGnvLj9dAU6faFvuWObRGYjCHJ8q5uiY+pZcTNea4RQ3HqwyLxqsMix2StpVYbjS+5iqz0lghYvrDMc24O0tFJ4peYGRqVPLPt23YwbocfrtE72yOpbq6uhlBzAVR1cYGIjKkcamOjdYhyWBJfDdYhiBtvqbFAiWp/TwWT/smUe4tEy+sMW1AG50fjWd848drLPfjRRYFKxV8PheLF3nZj5fTugdi37sBhePjeODQKsiYsShTkAoGA8JwlQ/EllPjwUTaA4kajyVWSsttTSxHWSw+V60BN6UXv707scCwobY+UaM0sVia5gatnfQ28QZHg4XlW7L+lKJqGAvOQXd5sORS01SaiTjIwYhCUEYsHtNydycg6E7jLjsdVdCeAmfb6CE15kfj5R6IOVrBWeSZgfT250Su1u2Y6K27H8xIL72gioLzcwkUomnd/XiV3sHCBOUWJc7Mc4lz9HLiDGpsWKI7PR7zE2k6aD1belb1hOp5OzExuTHReDkkiAf15gZ9WuLYKkLQ2Z11YE6IG+z5qmXQVSpL7ERpYv3LKPn57dLQnXWUTIZvR7BgkrntoQ9N8gxVRLkQKZmHfhRFp0nKi2l9id4dCrAGE011U9OZyoR8N/vgU4NL/HiR82Nu9sHnmOghsTExN/uggTHReI3TzCENjDWHdDnWHFJjWOyQli/x458XJMqdHwvg4ODKJwago1sbDOa6xGC0md6JtO6JKXWMHVJ3bAA5quMJ0q5L1L05APegnOaeGID7wWkPJsrdGSBWbq+wOz9BwdzEoDMTc9BmkMIqlWwWs41OGXlXI7SmEl9mRXCanTrX3WUrONGHo0a84Fyu/xlC29gXAd4FYNgVOQIhb7MPQ3uCqteMkE4mPuqjL5qLGIw8uxhh6wKOTK/9lNqPwGDdPxHb9MW6ZRN85U9pLiZDO+I81AjPfyRt+49A+90IRXUR2jafvnptjzkC3C7+GY5m7i3AbT5s8lRGaefD7/XGkmsM1HHvS30Xs8ufof8fIbguGo1Wy0yEQlVifigyPv8sZqU8ZA66/M4n0d5PyMiKhV82fZtjGkuNy03zMbk9KtU4WaTXmZJdViZYunw48enCmJoshOJbEV60vu0Qsy5Y2RdBAhro58NM5SIQ94vs5FTsaKciQ72IRdRAP8lwRbSwVOvgZKV2bU+kCYMQmChnNQDWcIcwHmq2bFdCJaTB8ddinpt6l5SrFbzhrFzh0e2mR6TZ7lix/Qh92ErYAbvkQkSASz8k/KlRCv36OpuG8HDt3/34rVCWuDT0hsHYRz+blafD+POg2FYTtw11t5/epAeuWP3k7ikVXtrufF7SylF2bgSG7bpPCT8EPY4Cxr5AxDVujOpSegLkmd/K0D1M5DKBTLXM+AUN/942EnyP9sCrloqrkOoWYR3yC4ZcLYWPt1uQHPTuLH3XXyXl+tWrES5t9UcOnvu4ZA9skA47Yw/YGbVmZ9iKztisDkTEE8GkdJCaz97FKR0rxKj93TFAdHMljYNpNwyQQj2Y8c8YA6Vhx/ozOqAQ4rIV06XKdtiqymek8CqWuh7V2x6glZnZXTf4zgjOaYDD3CJ7sbLLuYnVwhYrD1Fu3XUS6zKNNNjInhjdReCvMlGSdEIukfWqFOkka2FLOWI9GMEGVBWhB6DcNnATYquiQji1YbAWc5KN3FfNqJv2fSxF0hAf70PXoxqH6lHEsPms4lZpASfQgCgzG7O8pP3SfjZmS0nvxwL7ovQ+PtZ5nBq4yFTUElmwOPRhcpDD1mH+noH5WJ2qNtCnVyZJWgjqpQLeRJCzDLoClaABcDBXsPWIGLCFtdWIlBBi2+p3jbOmUomvk2KoYbCKVgC/gGRQmllj4KKUYsktV/NipO3VmLejFnIknOrslUKCNXZGqrDLJnlaLCisFlu1SFwzkGzpQZXNCDsjWmewmIzAI+tVqRdmacNAHQpcDOklA4Pn1AK2DvBQKwIKO6P0LCx6lIUMMaKqrsQ4UVUYtOph2I90rgk5Yjn2OU33E0PgVgNVXdlPilQgqa9dILFKJlyLveS+hJK+HPYsWQddjjw2GZl7BWClYp1ablcV/9SCubOQrTdhTtMCMzZIDVWdmWSEQzlqG4pZXvZRDB+0mY7hSmvh9E0+Fk09oMOb+nNaORQ7IChbYs+OFY5J+SDmDo/dfa6kbcGoeg8CPpVm/gK3s2+1xNaxEhnTONDrkGCmz5TErUhOOzP3JmRZ3VCtNGMLkr/WBIKjCFROOvCmWim1IFE80ILlzsbOIu/6+Bw6C4I0+dKe6XctjSLt74hwfgc6vDboB3YjCMmLSWwjF3MyCpj1bcBpDujAwwJ0JQpwMtiFmDQuRZa+FIuJhe2ixbKFZ6utOOcXy2RbgU42tScD5wZu4HRHbgByMYXNWyGx1BslKLzVd0fV5OsRROOn9rx5KPey+1P4dQ5UIaudHguQViGozM7i5I1ZgYBsJiqiOUDjWRD614xAM2AuR+J5MttzOkf9UuxM1aS/qSeAOgf46RkNGJWmITFH6tuv2MvqMyW2FNnzWkS8WwdL7nfrJdiKhf134JlmpGUL0Vi0xBDrOyybih4wavIjC87Vsupo6XIogk38JcxQJNLVCE1QRJoI56oL+rDuX0P2dZX7y3SXjp0F1Siwdhn27gMgrCuwDemORGYzjicdsUFbgy1FC4zcxm0D5jEyGoX1/1fKy76nNrlqtKPeAaWYotRg5bpLMJLdCMcTg1Sfj03Kco7Wu02+KiyUchjOWfahEQcPlpbHVbk0D/WFr1r0ZGvmUnKF0hHfLjVq0xvCDQIMDj31KypnvUMW7USbaZcmS8LPqIh7ocpWcxQNej4dTxvUGBMqon0yUu3I1SBFLsJMpIpVEzH1OIyj1iMDBn5bnVRoxd2zHpMuSCa78i3t6U2BMfupwJML3sTSnMAc/WWQZk5DU3QmBlIjQfiHy7DNxInoTU06A4dMEHzuB3aVgtml9382SkMrJgJ5KHMOBLps5BA7EMQSGa6IGjQ8jHZhKvZpJ2FxPhsCtx0S2a445Jx0q8Gg4XSgoxva1C63xALh/tHolXsA55IbmXawmHeO7JDNO9ovjCxA0sfRQ4+gtk2NqCaqn1JR5WuQrFVY1Cr3Vo3uLeUdEGjp3GhI2rRbLwPZgrzLcBrZ0sUUq+wQ8x6waJKKq1E/h+5mQzpt94WIT+ESqgfppIEBG0t8NUZBJIyfj+abFKjQ0J9RX01lQZiU/aQRg4k0DArUcF5j6uAkLVG/NYaGhcmSlbtPKrWBPO0paXYtnbRALLAG36D1UFVr1xkn3rarz1YlYeVl8TFXPxULZKI1DNxu4bLY8SCiG51Ynmq8QRXZSwG/ol/Z8dHcgwNBSp02cgiYzAj4phG0tAUK7bOj/WKMsf4q8T3YUW1nCbbi4yL3mpwpW4MgYUIHaeQwEDYKb6eQGQ7q7oWt1HG/JIz4boDyeUG56fPRGhm5e70+kBfXPyYNPwqSv+RnP7JP/q6UK8m7/xq4oxQZurVnqtAK2tJJ7sAiBr7CxeAynTLf0cfgL4y6g7QNJhwpl69LcBa46E7IeHq3DV/GUiOVJi6ZUMMsHSD0mEt7S/lX5TyhFRx/iPIgnha2Xgly1vdOBmPQM9YWCRtEzAWcEEIHeknUpQXj9GNxSREwE0+Tuagp4aSHYOew3cCinAXAGsAxBGNMXLI0OpGmff3b8uiSXRELRyBN34V4vvxNWElTwG1ej3lGgeyBre4lsbx/RP/nyP4fZxiOCNdjkjjamfTqYTGddSwQ6MK2qMJUBd1mclQdlgTrwS5X/RJ9We5e6IBCsCywZ/JxAtoDXskH6EsxZcm5S2I7YWMz8PtT8191RdsGb6f2rlu/5cKo6BuEgXFjBdRi07Mq6KxXSkCFcBpUKR+v+69yJsDEqiIwgIlw3BLxdRUBvefHBQkKHgoU8TS7F7uedA41GlaTAsbafTuD2dgdzLMZlKm2Wb/eFosHWHtroBmb04LiYQFUbEUgA5XI3R0xgVnm3kkOvv8HnAYw/5mfGqn6HzDvXEVtJc5wUCi28gz1JDuXIWxFD5jKFbHt2Wiw5G7xO/tTZFsgGUpROB20aYmYbun+Kb5scdWWxJazxQoGChACGiXO3xV2E3tq3DkdT4W67v8O6YGmVqD1f50YIdxiDENiBdBD9RgKFLwEdHbYQNh+rx8IGYoekFgRJvFKEpkiiFhYFNO+IurKhwMc1r8KRLA8DO7GnncDVP88nIU+QmOxAYunLoPjKD8bWUk6LG863Ff2Quy9i2cBHWprshwEObIHK9H+KPUeRuLVQh2LcpUrT8fLDMMg9U8IIO0z4DR2liuaGhEq2n6LDjhrZczxZqbtPJpok8VlNwy3k0FQrAVYvvdHNdMnW4LB6Op3wOhsgMMsb+kHvEsNwofyI6CVt61TV16Aoiu8zZJz1BhoC1NQI6vKfiSUtVBvhEK3xIG7Fi5jTjlh+uN1UTUdKdVgdYGOsjpC4NtNG9UT6xlVgWZDhOc+Lnnt0Frl3imjHA2ZqBdP51v8IDcNvj0XxVqR9QOOoh+0T+5fY/EbSQumYmCai4nyqT3izRwHLzcaEjFDyz2YqIyBtLo656JlhyigwYitt54SQ5/v4XJps8QPLIIKMcPZNgRbr4pzWJFKrPjrUYXX4AmjYqGN+DsVcNZWAIvZ2Ir8iJFkku5OK7xyJ9TJ9zFcNPsyWSMVrZfilZKHgdpe+NzCOj03RZDredXxoIjNJc3uTdc0af3XXVgZOHvl/dSHd3aqov0rAJ33EYXkvQAVgS+JasRtA5p25VDxxLENayGwtsgy2dkVlPzuKU4X4L4Mi5jye6Wn9eiKS2EV1dw3BGuihJr6eQtTW6LrU+LWiyCRsHeWFEuHx9+HQC0b+8+aaznq6F/VQcc6eycaaejMuD/GcHgiQ/xSmBtzVR+/OGKriURduhnZSUocP0oZKnXlUl1ECoZnikxSbuCQ58wxgTlEuqwX8hWcKUKwafPgUZ4/0xSy6yYLr6uMhwMk5mw7NNDP30gzGbxQkLUnFq97b9AAhii4gcDETpoLGCFiMjlnSv85mBDIp+CGtDcZioq0mpYG8GsbMRfYg5Xjftju8lekjb0wbLVIJvdwXdQNki5SYd0a/hZToUeJuiGgaMAr7ZwfkKG9wCX4Di5yA5GrHIGthAYTkN1o2sUZsQ66phcjDCfdfofl1ELYVw3eWWOCNGlOqOKPIXWn7wQt4mBl8hFzlmOqlHeSjHYPQJ/zGMODX04W/GLSsPVJ4jSH2oBeZO4lbhnwWAI41KiC01P1TxP48FfrjCFK6nsADCFUcmvegIjKRWafjcWrBvqZi8i9HEFjNiZhmABJwPJdFQ/0U22DtIgWlmoyp+cQTLRX+b1rB4FG0E5Qx5Zf+BvtvHSgnWAMMiRzYFyCKbZjPvThVqTkjVjkJh8JvlT3db55xkAQyWYCKAq1KKv/mx8nd2wp58GJjPWid9+J1EBbqN+uBi04115aNZlIsVzPGKXWqy8lS90oKJfew8EY5LskICJ1jCSanIvBIpgTFyEsrUNb0AFGC111SVyboooU912kJJdqIasSqR2Ws+FFvP6glmY4lbog+UgNaDD1qGBQJHI7qLfweHjM92A/xy1OKA3GLZJe+yKAGYdYpS/4bRz2P337u4KqPrj0MrUoQsa1AgGeBvIpyPK227CrqEB9B8Xgggr8GBJp+iiAybqdK/xwmLUPoZ2Fjwq5NnHXcm2aIdwhGvRCQksGn1Lx4RDaI2mE5qLxNnn0JEiLJfpW/kzdrIs5heUQ28qhZy9l8WQxUh1Zqz25jnUIMhi9KOBJz4hwLhfee9AgY/85yLfNIYM8/Chp70PQ8Oef/eayxNdGabzEsqCHuiMWyBdkuKmyZUk4jE4NY7O57EvhCC9/gPHUQz+2gFDbrx7WR7izWRKOC+/WnCBQ0/zVtdGSVPWw5CKDfFYvzHrkQvvzjDOBdy9r2G5cFZdSUNh8jO6mIWfiyReUAXKlpuFU+wVy8WJMGZdCGPRDoL32vlhclXe+DNaAUy3Wly52Ppe0s4J5jnZa0/Ee5PDtkDeov0TxcTF9iQSJph9IW3PweWyeHtPXOHioRd9EyVYlBBJaNbVLUjcv9EaqgPQe8uMxmHf00oHSU7WQt5m4+lNVouoMg3osDSFcG9RqvFFhWsGwCEoNx/Wfl6hqmcd3zPN+IhZ1s3ZCTlZCVR26OmbQJolhK25GDefC1KdzWj/NDKIfK3MIY4aZm7Vc/Lz8YJtvIu1cSOVXEOH8YSMip2fwZ31hPgZwunH6jIn60Kphc+3H6ofznu9CWRIE+/XohgRlSVPPvCiJF4+hfiUGfpkwesrJwCvqp8lUE3sXi5LhOwZCP23lt0zhFLQQ71LmFLinE3+CwdPiWpE6rlntAJcHfSFIO3X2KXA4kuG7FnPAKEd0BZznsCcnoJK9G07orRRp/8zvJPbJvfD1rw/SKNZtd96l+dL2WVgsnXC2NHYXazuhA8P5E6Z072zk2jkLe5YPZsnw7oSHOA1HWRoyx93BbtK8RLlE7kafcqrwGHbOQCn0AUpX19AaMMRd70nOLPy07WuQ9R8gDF6NZ12rp5Xfw1bxTgjZ96L0hjhr/DTFMA9LzdXHSM6OKwyHeQpCvf7s93j8MvugYxmPprh/Cp5lV4OJ+1k/2Xq3CukcaGvbXY1l4EbUSdVQizsRIexvBzH05E0+di9lnNR0E407huFo3oSYFHN/2wSXlo3SuxmBaZhtTZ+tXovXoHv6I6NQt3/1+E/6IaYvj5Cf9KUiwuOm4zXUXj1mU3jCoQB/nWTMj7PQUXioJ9LwTlLj0aOBvUwmOPI2JRYvl8Sxq4D6EALNLugceKBGn9DAyhK89Ssk9IzZqqnU13qwAa/D+l+hvi6mpV47FUNGNRxX2q0OX6eqZgwZq3oiiFaj8NAAH3/oqBqgCz4efwwWlCFYLOcsV4vem7eTnFN4EPODRlfHHSncgwQotlxMH8+pReha85x62y38C8OpXMkRbFRpgBqcg+yqP0rE8Iz7F2qof4xW52D1SnAiJOXUe+s9v03wjdemJdebmsSm8iYUqkUTHsskPngNa8y0j4CsNHAjWkjb7EtbNYvkeq9Zrne5l5BAR603MRBNC0Qht/euxu2gee5cIGon7DbOnxIY/ezQMDPk0k0E2TvppuVj2KBKQ2kad1km0spldaiRKpru/EhJp4Vi9cBKsRZPCPsU8jH1ibgSwY66PtJkScKm4WruZYX/saiqxuLFIrH4ZP5LdrLL9kJtQJQfbUOmPBXXrIuw1HgRWffDZ0OOSlkZ/nMchyjOMNPOl6xLdmPk+sgohunqLoKpfwGrtIux1RxdHk3U3YXtsY9GZAHO6wUXQcUMneg3LOd1DWQ8OxFp7cRGbDPPPBHg+OzSTPs74gFppiUGi+3RTRBoXU2jqQ5uUWoKVO+S+OPVLK8pSC7YWFugSyHdlg3gut7HzasGvSqPqroMtvMqcOJZz3HmPH26aGf83krZyTF2D4wpc+QeEwMEVPkhJeXMPom+5qy3YKUzlVBh81A5OuVu7mpn9w3+aIdCWAP97IL+ZovLkNhaxqQBaXbL1ZqmLnqw+Y5GaACaGCcxRv+0JM45FQlVJaSdPiy0j9GriXJZN/UHOahVgkRPOhg3BBlRBzfaQGGqJszMiDaZJyzTHHWqbUbdp85BejRlJCXq5UpPoMh2KLm38GpTl0TQLp4RT/ODIu1ejWm1hDP/oaoh9/nEQYqjhNQFUD9IpXQgVhjEIhU1Z8QhYIWDD6kYojlfFTqFqqT7b8eyNFBUpf1mfqTG2l7/DT24cTmdUcN/KSGnPBSpWTI+7VBE4geIhPkcikgIQCRLQg0zNbvwoJnToaAkWZOUhgIdmfRcUxCynq7G73QR9qK73T83HuhnIs3kQNvlzY0H+vkbaYm6xYE2VBBm9GB3bjNpRcw2f3uCsp3Yk9dhtFKDeW0z15Ga6egzYktxAioGUGNcQWlYHr2Pv576uOgNo86WtXoc1aVPeEITwnCDDBPSEzk1Hguh+/PgGE9Fv6yOtsd9GL0HtbL0vg6zrDSU0439/MBXqwZbXzfKTzjObWCVRrVj7OojyXN3tmqhBE0lfOKtn7LUOE8704VDMAeRIE4L9l88sLeLI6YWGk04XnK7Ocst9bgLL0rEvg8y1EdP/WFNkrrzKu7D7v5itCHYFpkxQnXYlfguhqDWVEqLVMNWsVwNiM5qh3FMeUPRHH47dB1yYF5PEdpDuCyT3F5yUlkCFRDr+49apHFnUMRW3xUUsW9DrvfjYc275/kB0f0ex/rXThJUoT7WFwbr82JOeOAsU8kwyShkqjBgUKq2HoMmFU6RYcYARxFe8LvpepYexe6xyABW9lbOuwOC3SOwx5iAqPxKVA/HrZeg8/YYrjyStSuw49JSnTGG4o01YnJ7XyRsqhe5AXpwXWtu1DGurhyzF+EkpEGyuOBc1m4Ik3NheX/kDTi7TchS+0lfuMKdcAnSIKQIfsRmCA9ImCE4kQ2BXZ7wAN9XLmCg8BWm8kYIYe24fY7ywyrM2uT3pgnhHQiCJuw7V+r7a7z76HVMPeiO74SWoj8QfQR63SuR2w74s2QcwyD8E7ntb+B6Pxu59Lm4WE1sDenSaYEcx7wpdLwWAX0jD5T8hKajCdnOBpybVLC3GiK/DHsOPJLt+uncj999DXX2GXKWHki8NmLKNFjf/uzdkltQkVEG3XUCZFXjm4kL7z6MWJPRMkMvmgIeQiljdVN4gbLpUclNxYpMGcmUsCscjttrbYAhyeId0wwscopgWiJAq+pFMniLIwUJZwr6RXXbTXvMd8+t6KN0tlKfQoRWrBwZVQmBDLbdZfRw4U1RIfzNYRjRJvG8Gj4qSoYYHoyxOzEpLIJIXIXOJYSGR3JlHb48hXAB7FgpJ41njexHH0fjpCs4mycHbSOalRSc/5q30uUobCDrZsM76ZN5avqbjO4yFe93D8llKmecp/5MK+T/Bbhd6LOsLTuqZnMqYQ5yhIarGRYi/kp4CX04suLhaGCdubdM7YsegZKpRBtye2c2v3qSywuebqhimHvrlBDfibFYOWuaJ+yaacMLdOhJTD+c/PXxv95rEeqXb/JDgbhup5pwY5q5G42YvqW5K4m5zsJ65i/16k6FMCGtGzCAE3s6DEkN3g/qJf8V3go4ZtqFmOFUImf+GvW9fVNfmHwb7WIRb8Yu4JnebghAlTXn1TfbgFVOPWcUrsrpTXkfyX6DKefJPI+zQboyZ61i5498EypmHD5UakM5CAVKNx7fMdnC4tk1r6puhZdQivBVS+Ohhv4IoVRalLZMmqtHkJ6G0OaH0lgg796CaHIXugvstgKncvC5eic6wpG7IJdLQt9N7Aqoq0dkGmZmNXgIpF0TczF9MtSux8+9Dt/2fXrf9aI9KDJ9QasZ2yl98TL5dh4ac1K4S3iooS8c5Hkg0v44/1xagvnRGLQ9l3AHfALanTQcFvkVbGl2fwje25Wvamp0cLzYJGPQx0mqjuOg9YhiMmrUuC8cdCXAK3B8LHfv19i1Y+Bh501DuvzZFKifeRC9X8MRfg1ozpsW69DQLkS69D8cDuFrhEnHRmEh7rsDmobWnKXIcDbt2NshPVWQe1apH5c08spcIEWG5Co/SaEX9arp9ynX2/FDeWlW1XhK9VapLBDNpb7/qp9BGuTWx4u5AjRfSXRVyGltlZrrJ3awyM1kONPRKo09lcM0JRsfuQpEFFUQLBk80Jg1VYNo8BlPo2YFMoBEltZxJzbRRCJNPc5PWCyNHoEgry2e0foii/pmHimkihl3s157v2M7D+dt4hPAz1dwS56wgAtvFLq7mXs4giEOWR2vRqfB7NaeyDbN+ZiJ154YZLlAP2v1xFJS64T0XZ2zjmdZaUmzXKBZ9m9oG45fhRqk9+2UwlroUIfH//SqVNfJ5ffFftOr8rfcKWUMuxCY/OERphRQ3uZgyrxZSeM4VW0OpqqbHRnsCOpW5hDO/AAp75jyBGdu7QfYec06Wx0VUVx98whnY8VTxhGNLljxJNrXN88DGnjHztGTnXmPqtdklu6MIYgkeiFo7QzZpUGvqwD87p8ikkhkBQ0+hVunMyRdrkYgoNhaDkIabvZ1IOhwW9XFOv8RCJisCsNbaVwEJg1OjFf+bM3dAkwv3mrN7WDJgUi3egHNfW5HIH4tVoSnl4MMohuNfHeRtW3GTtNE1jLVdfglbMF5XAP5lLVsHsVaruOMtDs2yMegXtbS+yIaVFVWzvkitwUtt7ke5CulZNCrQ3ibqQ2+3YZaqg1U8hqaUY20Xiz2lUeRSah4BsQXPGfN+8SN2D404c3e0BQNni+p4yVPdUIQgClRewJCqAIeBbQbMvhWrdI+TD9V1bSP548asX3bB9Ud4e0afTi2gKtMX9uNNHHltvgjF0iLd2OBIDoJBWjFGUqrKP+NzYIKvOrl+nBm9ZrWpEplrEJwkXe+18o7NIHHlA5rXuXH2Wbsoep3M9Ad+jyYOhGoZfoO9flD5abXZpleoJiPl50ZdS9n2zJ0B50wa1LjnA7OKyimr7oGJmwmG0WcmhOlf8EQ8SaHd7LlXjQwHKvHaaMZiznsEvWRafeCnD6C6x4R30yf0P5qaNAMVeHmfTlzxExPPd94QNH5I9bpYzga4zgrfaeHXb0r664MVjtIwy+m7mlF7NuOYzO3q/kw1Ni2o4IJ2IouwWbZGp4xScVgVR/4VSuV5k+D25nnyXm5TLbXw/4iFR19Jk+5DEcbrw/IDef5vkzePRuunCLPEqXSFA4AqgTUZ0zkxo45ctaZYKtFtj5PHQJSktqxwiEQV5Iq1lg+qDGe30bkeJeG0/VYc0hvcgdcYAx3f9ViREIx6/z81LcaT0/nmaEux/p2vkJl2uWq0FGDHX3avxl9tvd0zJFQTplUh5qc16SV17LNGAs1XKqWlaXI1o5E4NznRmluBP4M74Dsj9rgc60czeWh+ccxyalDXEzwxPUs7CV/Adnr67i8imY6ovykJXdHD/8zNNUNcBXPQsEObhnE7HM85jQHf8tFEO1P3orOzq68OY7adjxuHL6wm6bQxiDG2fsMmKf9j0hLObCeDexe7uusgBDIUupo7KqO1McoMKU9HMJbrbCZgd3yjkFTKhV/5EXK1fpYF3zOshnY6FZ8C4TxYqaK4Z3eJXkzRxucaT/h3ZMBY0B55foqNKPXoHyumt18CelUwWtAaWhJyeIHFAR4P2+CVFY3n3IUnG15FFRHn3OTiv8G44xZCMHWHr54wGqui25fc13kobLhsQ9e4QugI/905uxmnq/6qUe1LakaGsrrJJ6aaNePgKTbAMTw+pxdspYR8k0g4/ojnkASpKoPd9yRuxxFaRjVPS+vBjEU5tlhAJdvAhn23ayyBILlc/UJD1Bmmzw1GUPNXgYAk0MMcxt0J2X6Ukkp6zIN7DUNE2KtqllYipXE2yuil8mC6glSg0f0Oqrkewg8ZHxu0tZylGMSFAaDDWOjL1MpScyNUndiQi9BqhucC7btpVQZeFKH4eoz7fIaFqSmPnZggf7LKnXsboLhyMBKDoxUVykWX6UwF3SYZ2tNdk40vsD6xPRyuIB7kg7sGK7KB+/Y8qiOPxoff3xWOhbzGzvmJ3ZMe83ghNzDS6syoEN3zK242wH/v+/4oeMPH7RSB9Y/Wnjo+un6QzJJYnz8DuICOPiN9VcwyEXVDjAdGKmMPwqvEL0tvn+ufLx+VBOll2e5EJ99FcIlWDsKLOFW14Nw4Ej8tx1ze8GO5R6Ycbo5AFvhQBaDcFMIqCvwKbvu/kPlnGPeN7b5i/6+PgZUjzS6nGC/PpF/Odv5DaR9TwQu60b5uOL5qZRtwu2picPShIeTN1YfOGsCA6uPOqI1jGAlhuNIBm5xZTgdDeVFN2l3MYYQ+S1dazW4WOqvmKgzv/KXdmjM/fCEs5lIviWmPwCwAl3n6btjqVhCzeRC4wquGOyjSVF2ezyK1znQFUNAHkt4rvPIAmzvP8AQ8jIG/dnRUvOoDD/ytvUu4622EzdzLGtRtzZexApwzzfCQVWp3oRONqhDIraZdVijtdSXCT6WJvMmgwSmgQFPw2dIegtF5gihjTb2SnjKz3dA7tsUKKVm7B+UAFPP06al0XDkh+C9t428rrk/TWJfIcb5DJPmX2cCMEs4Fj2xhf5Doz6A8BMXdyfuzfk8MXcOPzvhQc8Uw3DrazudoP+yXgLnXiFBxiblv9VcrMsbvvUu4kHHLh/AdfflhxK6yPXjXYQWUhKT5TbjFSce2LfmRtaz/TXAW/FWsBJGzp0RE+FzZLrwEqlcqGEbvCV6y/3I3C7E6FsD5Y1v4YZVZ/ARvN5Yij//0GJp4xfOeA/egf2Fg9QDvLGYV+wRpNmvbvYDHqPkFpDNS9BqGqhNV4leOiDA1Vhn8ZNDdg3iILW03qDvD5yF7fPPbUBdn2KHuBfBLJ5xPK/krDlN2mvooPbyQHTbJj8wDe6I3aMyLZ0gtdQR/mLY2wks+oRlEruYt7hNP0zDlaTog68VT0GaTn2kmfWQJp36RINY/tEyvGVKMTHkH3EQ1Wm8AA3yDjU0eKGbEpVCR2MQcDOAs0l/ywE5xTasRnNBymYR8plLa5X/QJ6Pm4FtxDzKw8aiHpMqXn1zP++gse2ozXnf0v1Ui6dG04dFicXrGl6RV4ikAU1zP7BStd4Ev0nD7w25Ii5GEeTwTjSjhnL/1u/eeuPoALsLOWG+vnTLy+smhyeTqy6LYgVpAnF+6nFB084Ukjeo3U+j6Bt2SZhMK6XrAoTpPGTuMpJbGcf46C/rOLpa/S/0pX/3woSLsQ9tghqygH4wVLeUxKrQ27aBBlNb0YyZ6vXwDjhtggmeqWrGeExt79QUWQdtuG0blcDlmmlUVwdZrhL341Lag66/W1fV1GisnJemK0ZQfFuzC4FlkOP2rfFF1YZdjO3qjMXj4lfiKO/XduCjLN5i1Dd8+U0d9+5ZCF05Zsvqi618n9OQqtQP9wzjgfvxInHYREm+zGOigYNXFnyFi13EjZMBydnMs/VJI0w4p6SmwP3PXxKPRU6pOaNmZmFkRkNBKPJgTUFaZFyNxAY0zCySLPkcUFNA1riamQ0FhZGuNQV8p0XubSxIIZ4WeZDPGQ1kB5nInC7E3GchwHXhHAMjcCpmLUsR1F/8ePSQF9K+QTZ542qEMepy7d5FhfxrUtP8pvVsi+r6v+M5zvdRfrzyJIu/9UhlbvEICsMJluLCiIGN+80TfYszGT88fToluUZ1DKngPt4ddSxWLpqobH7zonSaCVyF9F11fnkKYxcegeZST0YRYREeJ2PDq6/AJB/GMqeoPiAFrY0+IY5vuPGQmvzKJqmOogyPugjkmGn5nfq4PK9+d7OAEnwZQo+bwAMvrBam+DqX87ND6PFsDU4jLRA9mDx99BIjI/d0WRgdTYq62KIRaaWPTQseM11xSNsNW3YYaFTpAX10WxUpbnHUtyJZh9UW1+EiDL5UQSKf3Og5XSmRhZCjnhshjGd7NZxC5uD4uVXlWwr2euoUrQq+Rsi5yvsNekPpvBo1Kw/P2Tok6ukIr5U9Tr8tjjRUX5m8ww+Yd/y8hG/xg5/RqlaJQJ6q8NQw90TMfoOATyx65VNoqSkjXFTuyFX6dmAusEVRe7kM3L47Ihay3rRvXCOCmi+HlX6XWk8jcnZPpmw/U+6j5ijo4d0RUSlfhVzuctxptp8CQm89O15r+3nUevohP94gqS5LvtNy5LQJxC8Q4snr1l99+vTlmNnsAnSfe3JF71F8i/XXHpzps4peCg9KC15fcudjOi+mjdwFmYrzW+DSxg67d4U0xuo360vR+tRwWRwPNqtmp2GGhqgb+Nk6nM30J+qkn0/RLj/OVX3627GGdtLJA4g2X3wrxgMv9yKuuA5J2jd9lH/j5qtZxOzO5RL9aZMaJcKB8+qCSdeT0Eqx0n7gf9VA2YVmdYbqom8tPrI+qj8uk+pA1UnbmnkqQZ9rax6lV24Dhmrud+dUqf4I4tXMeTGILn0WQn+gT3/jLRVwa4rQ2eRXjf6CVKr7lUPb/FFweng7TKEYWE8bwOGFbVcnIeFAhItuuBTLPn10J/F0m42/FRUN59TOLCgpfDorY2XGMzOfeGzGzBl/+9tjr7+YlfVW5jMznn7sL0/MeHLG48+8mpXdzvSJgEM8c7p5xcv/L2+6cHTcmy7IuHgKxgWkuSCR5oq4N2JeinXI/K33t13gnk3WB5QT7yn/P7yxnPn/XxBOVug3he6Z/wc6K4ayAAAAeJxjYGBgZACCS9IZNmD65+4+GA0ARvgHuwAAAHicY2BhYmCcwMDKwMDow5jGwMDgDqW/MkgytDAwMDGwcjLAgQCCyRCQ5prC0PCR8Zsy44H/Bxj0GKcyqAKFGeEKFICQEQAJOQuTAAB4nN3OPQ7CMAwF4OcWaJMmaSRUJFCHqEjcjRtxkF4MEzywtOZ3hZknWfaTvsEASjynB+GeURs9+gIn3QOSXsWZuOSKDW858SHHvM5dPl43YiRKL/tpAtSAl2qimuFjOsHbtAhFoAB/89lfnHW1q5qxMTbZnW2tef3wJbTCb/CPMwM4ACwLAAAAeJxjYGRgYADi0OesrfH8Nl8ZuJkYQODSz919cFr0/23GV4xTgVwOBrA0AFr7DRcAeJxjYGRgYJz6/zaDHhMDCDC+YmBkQAVMAF+2A5AAAAB4nGNiYGBgYmDQAkN9BgcwDSJ9GBQYlMBsiJgolNZi0AbiLLg6ECnF4AhWB+H3AlVAeA4AdyMJHQAAUAAALQAAeJyNkD1qw0AQRt/KkiHGmKRzE9jSxEistjDYuFadyr0xQgiEFiSfI0dJm3PkAj5LRtIE3Bi8MMybH775WGDFN4b/FykblrwrRyTslGds+FKOZedXOeHVoDxnabayaeIXVZ3YsBaaOGLBh/KMT47Ksez8KCdYbspz1uZtkOoJXKg505BKBCqJXgbhUp+btAlVkOpuoJ1CqpbrmDuZlaLuyXCSDxKPhKepZy9dP4Yjl/+gCO21CF1VWp85e7D3BqT0+9Sn3uW7pz2fxFMn7Xp0auXOcCkb8+CSU9n1dWitc3nmnLPPKv8Br9RH5wB4nGNgZgCD/wcYJIEUIwMaAAArwwHdAAA=") format("woff"),url(social-logos.ttf?51b607ee5b5cb2a0e4517176475a424c) format("truetype");font-weight:400;font-style:normal}.social-logo{font-family:social-logos;display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.social-logo__amazon:before{content:"\f600"}.social-logo__behance:before{content:"\f101"}.social-logo__blogger-alt:before{content:"\f601"}.social-logo__blogger:before{content:"\f602"}.social-logo__codepen:before{content:"\f216"}.social-logo__dribbble:before{content:"\f201"}.social-logo__dropbox:before{content:"\f225"}.social-logo__eventbrite:before{content:"\f603"}.social-logo__facebook:before{content:"\f203"}.social-logo__feed:before{content:"\f413"}.social-logo__flickr:before{content:"\f211"}.social-logo__foursquare:before{content:"\f226"}.social-logo__ghost:before{content:"\f61c"}.social-logo__github:before{content:"\f200"}.social-logo__google-plus-alt:before{content:"\f218"}.social-logo__google-plus:before{content:"\f206"}.social-logo__instagram:before{content:"\f215"}.social-logo__linkedin:before{content:"\f207"}.social-logo__mail:before{content:"\f410"}.social-logo__medium:before{content:"\f623"}.social-logo__path-alt:before{content:"\f604"}.social-logo__path:before{content:"\f219"}.social-logo__pinterest-alt:before{content:"\f210"}.social-logo__pinterest:before{content:"\f209"}.social-logo__pocket:before{content:"\f224"}.social-logo__polldaddy:before{content:"\f217"}.social-logo__print:before{content:"\f469"}.social-logo__reddit:before{content:"\f222"}.social-logo__share:before{content:"\f415"}.social-logo__skype:before{content:"\f220"}.social-logo__spotify:before{content:"\f515"}.social-logo__squarespace:before{content:"\f605"}.social-logo__stumbleupon:before{content:"\f223"}.social-logo__telegram:before{content:"\f606"}.social-logo__tumblr-alt:before{content:"\f607"}.social-logo__tumblr:before{content:"\f214"}.social-logo__twitch:before{content:"\f516"}.social-logo__twitter-alt:before{content:"\f202"}.social-logo__twitter:before{content:"\f610"}.social-logo__vimeo:before{content:"\f212"}.social-logo__whatsapp:before{content:"\f608"}.social-logo__wordpress:before{content:"\f205"}.social-logo__xanga:before{content:"\f609"}.social-logo__youtube:before{content:"\f213"}
+@font-face{font-family:social-logos;src:url(social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6);font-weight:400;font-style:normal}@font-face{font-family:social-logos;src:url(social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6);src:url(social-logos.eot?5d3b4da4f6c2460dd842dbf9e0992ea6#iefix) format("embedded-opentype"),url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABtUAAsAAAAAKlgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADMAAABCsP6z7U9TLzIAAAE8AAAAPQAAAFZAuk/9Y21hcAAAAXwAAAGWAAAEWDeg0QRnbHlmAAADFAAAFNMAAB686Rw5FWhlYWQAABfoAAAAKwAAADYWJB25aGhlYQAAGBQAAAAbAAAAJAQaAi9obXR4AAAYMAAAAA8AAAC4WgAAAGxvY2EAABhAAAAAXgAAAF607K3cbWF4cAAAGKAAAAAfAAAAIAFAAKBuYW1lAAAYwAAAATQAAAJGA4c4LHBvc3QAABn0AAABXgAAAg1QKrNaeJxjYGRgYOBikGPQYWB0cfMJYeBgYGGAAJAMY05meiJQDMoDyrGAaQ4gZoOIAgCKIwNPAHicY2Bk/Mo4gYGVgYOBnzGNgYHBHUp/ZZBkaGFgYGJgZWbACgLSXFMYHD4yflNmAnH1mCDCjCACAIwbCEIAAAB4nN3UzW7TQBTF8b9jJ6lLAbep3QABQtKGj6ZSF30ElogVS16gj+8rZxZsypmcqCzpuh79ItsZxTO+5wYYA6VspYLRlkJnFBvdLfb3S4739yv+6PqSpc6qvooyplHHPJaxGZphNrTD/a5LZapTkxZp/fAAfRHEWLMazVo9zmoTafxv1n+PQk/9xi13Gt81fjyOn/zi935oibzmTPNeMWFDzTWnnDPnghd84Ua/MdNu39LwgQWfeMOUE1rt7j3v+MiVnlNqb0fa4Yo1X7X3z7yk0wImT1jlcz9O8sdoe7i6ydU1vXn6A9WAvjRVg74y1YXAVCGiMNWKGJmqRpSm+ik5pkoSE1NNiampukRtqjPRmCpOnJpqT5yZUkDMLK8/zk3JIFojf99Z7o24MOWGmBv5OUtTloiVKVXE2pQv4tKUNOLKyGvfWH6jQ2PKIcPMcr8NrSmbDPemlLJrTXll15mSS8Jyz6aD3NdpZLm3U2lKuPrPlHXSxJR60tSUf9KRqRNIteX/idSYuoO0MPUJaW10fwHJHpItAAB4nHVZeYwlR3nvququ6rtf393vnPf6vdcz82bezDt77mOP2bXXe3p3vbZjWK+x8AGYgDly2F4wshyQcxBhK84dEyOxKJESFMgfwFog+CMCgZRdJRAlSoKMkkiJIiX5IyTjfNVvZ2fWkHk91VXV1XV89X2/7/dVC6IAf+hH6KawJZwWHhY+BKUGo5Of74XBoD/OwoD/st44Gw8XUDttr6Nh2ua/JG8b1NAGyjbQoF9FYeAzEyWN9miYjQe+x2gILaCctsdhFZpk4yCkbeiszaA2gz6rCFqgBtUahYpTtZ1iPD3ViUVZZLpMw4gQUSWUUKdQCuN+Y1ZFVFwVKSIlR3NUjHQWGLZbDqYx/s3msLe4/aF5URJ7H1q//zxlMhGRZwwRQcTwChUmUQWdRSIRFT0uNufjyI2ZJsmKRH2XKKJkyIb9eFIo2gWZulGPUsQQlWxXtnRqfkq3Ii+xtEKgFp4tWeb8DKG4UkuIOkMI6dlMwoqIRVa1HC5Wmsv279AfCbZQFqaFI8Ip4V5BcPtV7FFWRb5n4g6yw/54NOxCzg/7G3g0bENukOWCH3BJdvFwA4NoMUu8IMxA5ib2B202GCX+624t0B07Cq1i3XnuacujuiFnO3JBY4F7bOOrelAISFebrwfN2DSLTT9OIhX9GqNrqqfbqngBf/qJJ9AL1IrbJZklsVdxFESfsGxFp2RDIrKh+vZxpBeURtUqtjqtkuVMTQe6Jz2iyYZJXcsrCiRf59fQG0JJSIUB5Pl294Zd1EENE1WQV0WrqL+BQG3a6aAfeBQetIfjMOEpPIIa9LqvmqixXN+sLzfg9gLcrP/aUU1T5ckrLymmqfAEzRsqPIfHL05ul1Sra7omXF82XAMuPp2JXr8Bc9KFCGS/JQitvWH5gDCNMZd0g3pBZns0qYPG2sPxoN4PWP6AryBvAPMP4JXxCK3I9D4q58mjHaoolCf/Hju7N504dtCsE9+tUAM0bL6WTs3PT52bmr8B7XVZ3pYNGa6f228Zv8o74K3O84RPV87nfBNs0RVCkGVVaAhtYVaYh9rRAm43LLGGgv4mSUO2gHyWspCFaRZm8M9G+R3dJOSboi5+A9Re+hbPUPT1X9060zyzZXW7vws5Z3t7eyEvocNgSJ8g5OOYfVLjd0Z+dLkzunhx1GnUah+H7FSn0/n9SZFPjd2eny74wpSwICwJh4UzINlGFw03EFi/Z6IMLJ0F4QZi7TThMAKanIKVbwJwcCTwvSAFEIBm0DYI4UnWBYUJ86Y1NAaoGSJh5cry8pWnefLzhSBtFdXazLu1MtqeC7XeZusLZrG3yqiyfCQpRV44tTquNdPxc63aTLWgxBuN4DXFmeowSUznY6dzqyNIviwRSTq67m8+euh4OB8F7bW42HexVbApkZKNF4hkLvXdw1d6K4XI1IPosGEVHcNQJQCMLUG6tf5vgcYzQRMKoFkCYmnGQPQ1BOKHHckslPphNmJIeO7iM888c+m55y49c/Ei3C/euNR+9tk2eubU0XN/c+6uU6fuOnd05+xdp46+dldcPnGiHPPucT7GdXRdsIQ1yLUa1Le9YNCaWA+H1pQN+hyPOfJ2EMvGUAly5SCbtjcRF+i4xjcDfWx3t9hqFREuNZsDohhX1G2DyhhhUZGUE+ojIUaMierZkumJCCcYU41aj+smRl/wWkX+soeaxe8Xm/crFM1jLEuyiXEfIYBD6AUVmPa6KqkEI0RNmOxt/WhxL2ICwIE/GCWjwQgMq19DPncXFTRgic+BrovyfV441x+N5lqWbZUdha0pvf65heUr6MbylZXhg2vyZzYW0jmMR5pitTc+I689OIR3bmEOH0sTYrATwfVhxf5g4pf8XEC3SoTbeG7t8OKxtLV96OTle88sLh5bWXr4kc2gVpur1dCxYzDcyUPbrfSXjy0unrn38tOPPLy0snudP5yr7e3L36MnQfdho1xYHSwOMA1WMThY+FSlV6n0Vnrlcu/bFZ6u8DJ6sjLJ3JHc3u/fg3WUhA2OnLnftcHxgsVggB3YzRHYzphv/T4ahYGFJmULUY5bHNMY+sgPVV1WTYmp0nsJ2XFUiWDfofYCUsT7maqyE4whFbRlXZGlE0imfyaBOnCMUunuyy7lG/kc1mEo+sQDpdJTIlNkDTqTpJ7IRPYAQqjIAVC4ZQtcTye2YAFmCVkyWkWJPxjV/XoK9wz+v//qq2+++uruVXT11TfffPXkya2TJ9+8582TJ08e1Jfze/oCuzZeR5RvW0400h4whEEPqgH5uEw4ugCzaI/aWW4F4z5HkLAXMI8FnG2wgEsIyMht/Tq7zZhvGQoTCVVFERybBMgrEcM3TaLNBbVAxDKVNcuNl+Kiq4oMiUEt7JhM3jp7SxF3nvIxk5oiIbLEmKXCG6D1kkQlHyPqqpJbzOqRojmuSHXGbBEj19GUqJ4VXUkvr0gM+0/tcMW9vecTHJ2erPy2+pAJlMLaGDh6rriwZrAgWBs9iIqryWqjsZr0my2vAv5j27XIzkfJET7ZPbDbvdZY3Vlt1Jtud6sLjnrB1LOd/fH/Bb2c+2vBzTtPfurArQRIBuwi7Ong2kv49NbM0enpozMrszNRko7HpyKHnEdbnc7sbAdYi6Ftn50+cu7IdJqG2akscoIBPOp0YDhyYM1NYfEnVg1umY/8thWDAiU5fsAEDq7+kWa/vxPFxkyt1jFUsngWd3+jOFUqTRXvEMCN/vF+EBlgwIZq1FW5tbADbUolYU/3vgPzAeMG3Mg56p4Eco7FZzfocz1KkfBhGtXHyWoC12JjbfXelSsrcK09NJBQeqYe1ZO1Y2tJbTXLxx29c80Dz3DARqaEZWEH+PUlKPfDKgkDj5mE0UbaJWl7mG0QWHPDFL2q2N8Qh12RTTALyCBwbD+XDnCkbA/JkDCK/ZKrgj0i1S358RN3FkfjYVopYFyopMP37GfHMysr51bKflQstVrjVuuEwlmTiX77p/eyV0ze3s8ke3Xl7MrKdHnTC1/jnY1bX52wsAPci6NCWRhCqX7Lj9VhUfawTWBT071lhQnIuJ27hoTvNBg0t20ffXb3y3qhoKPjkO4uL1cMzyu57g+XRTotS8tjRI2COw3Prxf0/Za7f/6l2C27cH33fuDpphY88KUYULHodg7Y3jWYm/eT8wLnPaqja7uft+PYRhd5eu0auoiuxc5bQk7dIH3wsccW9znmdfQaMDcNOH5jwgbGA8Aq5tcwh7IWj5E4InHmBuUh+trT5w+LjD6N/vV9hQcVffetnwVQodIjokzRo1958T0Mr6DKL44VCGLkv24uYfU/RQ18LqX/g27r7RdBbw/lkRoHTe7rwEOkXdDVXHYTe85jqyE3Zt+rAeZDM48jKHiTPc0GhKQrc9Mdy44ZlhFR9Fqpmg4O9dt+Ecg/RBZ+VZTqlGDgk8zwqM1a/syhdvc0uhEGd3dq1SlNZDWRaA27OirY64vjoxVPC6drQRviI+2FoO3bwBSUoB5sGc78Pd25Y9MHcP/4Pu4Dc+HIzmfv5THlIFd/zhhytwB+bn+BOdHkQcaEXuYYkuPDiTVRigkJCoapSlh0C5V2P+2UY4UBTANQR/Vqfb65lpQHtUJZMiW/Ws9RJQf5w++JpoMnZE0PqnZcc5VCmHXavUqxbZRkQmII7npxsmo7U0vH1puWOggaSm7vBzH9OrD2BcgBpQXV4ioNQW/uu/qwRZsQJ2/CImAxDfBvoP5AG8EGKPpL0TN2X9M9kWCx0yTteX/WpXNN0uyI+KF3yZH8qGJHypkzSmQj9DnNNDXGrhY7J0q4rIgiUou4dKJTvCp/7LIsX1YiRz55UnaiPR3d8zUfFH79bcjLeMQedidEws8hL6NdsoHDLjZBTzZgJZR5VbyBu8TEYQ9awEbgPGw34eEGqkLDLt6ANUJfvXxjUu6AWYPv1wbKAOr4+7B9KWdlAH3oIJi32juRIodH7jkUikmynjh29chKqkTDY+9FnY0luzgeucXeHJILgV9QkFpwCyomxNF0RVaxxIyZSE47kTI9BHY0GjXFyngz9mJcHVZ9r1yqz75zdP9w4d6e3Dk2SxqHT58e24YyW15qpWb80EF/0URJVdMrjVpJbA9ASUSDJOs7O8Pyl6aGan0l86JBX69Fmm9R0XD8gopk0wa6hSTRsh1qkcZsqM3MV8Rm1vGshZV+RXKs+WJtUFOYrGa/Nbx/1L84FjHr33XfiZFRWj7TqnQ1NZ1eqk0trgq344s3wFvWgUPPCH3gVAMfvLA/iV3XASA51xtNCB9QabD11mCUhJxtDSfuc3z96lXkb8X2TTuGNMgzgR3vXr/J/7bckuOU3Gsdf4vD29Y1J+bhqDMLkdLs9at/Ybhu0XUPxqN/mkd628Ip4T7hsvC48CzUwlgQ32XhxB8BxrC0TTknZRPACcJcmyb+cwOlHOc53kvcwiHWa4dvixknsCXddnWT5kBqORwkPQhtOEMIBj2gB310o5ya/Z34SFiPooLhSicIRZXmdtF0vLKu4eF9j903RJpxZOLgdr/oGqpc1rRvLJxZWDjzDp58Ui3LmuHu/lh3nMi2P23HNlwxxsHCoo8lSgozMwXoVfQqZp2cLhRCGMvQbETIg8gt6GXPCKhMJzQMDD28Znh8sN8xXBqUlVeq/fV+NU9eKofUNQpdPkxsVyfjnScMBwFwSmzb+DauvwF22uDxNEvBg2e5bLk0bzMjLtUJA7gaO69g/LI75J53ch+6L2Puia85lxRdueS0R61WiSr32VBpX2IMnP6offtc6ia6AajFABds8CUfBR6YhWwR8Eoa9kYp6/urKPNMDMY8SENOjiBiy8LUB5Dmx1EhG6Q9DsUYDDoNR0E6ORrMd4n/DuJ3Tt9BhxuTU8OJggT8LPCvMP4DhD6FPosQ+WOnPhfVygRk4szctVQjCFm8qlrEInbdmbuzKRGq3re94MhGkJqyQkXKNGs9mSnVNCvZjKKOKatMpK4ZBnGjVyqibyIIrhA+Dt2/ht4dzjWcAmRr2d0ztgO9lmq8CvBInIIqx4WxS/aSqYkiiwpM0hgWdTVs2F47tDy5QD3DVSRDIZKhmmVFDbx9HjDB2JIwl8dxBzHWNcG1MdrloTlgZAZFAN5JmYMmF8neY16+Ex6niSbe835JxVT6hfMSCUWDdj4yoDosfeUTPSri3j07I9mUZHnt1IVlJiqFOzjwtyVCujGSNAWXh0QbU0JKZgEzQ8dOoSoa4wqlBSIXLOxQVpcKpnh7PZ8XAsCgVeEclNoN8A9e7sTAPC2U54Ysr27wHfUmHo4Tuf2WIdfVW43aw82DvQzRV6Ij0fNUt+nzeiPSr+oN/ZHoMHV4Uae2TqMj8fO0n6f67do+vaP9Iu8CrUSQwhvP61FD/5iuvys64lL6vGHwF/kz55fyVL9V16YHmy7ylw/68D8UKkKX7yEPtmmOurnVAXsbc9ANM1BsdquKQzNvwpAwnZmOeXzpNL9VZzM7O710HLKz6LPZ9IuKYSjrm9NZNv1JfpJZNozydPaFdV6xtsZr1o23x4att+sRBc+5gFhCwdIWCMTAIEegyQeURQblVug4wfmfOxYlpP5Aku/QiG9i8J5kZgpoPqFbDlA7Kl7ARLqFQT8PuFAFDKIJ5Qf94FxGScPnp3MQBuZccwA+HT1quoHKzp1bI6Lpz87qZlydDTr0JYZM1b668Ripxy1r9EIclS0HWfL+2iZxwexPiQny8ZJRfoC1CjEZBJ5BBpgH9vCZAwenLza9QhwZMobIZHERBbqskSK6fvAYdve7KHCjUzU5sFy83jwRIbEhKQc5+1fycwubn+XwEwt+WpEyG4KPbJCNLJQwWHYdXU4SuF4vXh6OTj2erF8enkZT6N7HHnvsezu7/zQcPv4f/7g+HP6vcBu/fwBxBY9tKRtnlPFjTQ5+wHtA6cNGmrtFAFTgSfyWA2AGOjRG34+KZbVY0etuc0jG76jrvuM708BGZEWZLy+uq+r6XfesjWqVGH1cI3bNooY1bKoQ+s743bauoalFSlCxgVooTZPVpTXNvVPeaz8pb+aB6vIYlM8DuDS4ly5aR8EAHHMGU+RsnJ+u5Iu5YweOA4s+n1DaKBViSdKoHai6qjNnVEWVGcs2AUVM9c4d+RWR1Lc9P0C+ayFMyjYENEFRC0rgav2yRRT+3cHak+M/oK9DzMzlCHICZU+4Q8wm+Jh/GBlDDRTQ35JLD2ympaYbSlW/UZsLBrohWY65hMVGwa7/zFH07u33f/j488f9UrXcwtKJc96RS2GbPUnw3pnEDbA1B7jxBUEAgMoPALhPAxoLpCPLGUceKuEkj1Qgkmq1F4D45l++eCY/dIWLzzPNAa6Wc2GI6tO5amX5yvLsqdWp5YeXxwsSnV1cPLNY6m8li2cXSqKDDERJVZWIqEuMBA2DUBlDwEQKItMgILR9NN0za64cUYw77+194OHlqbWTsysPLxfbYrRwdjHZ6pegx0GHbn8AE2yBMZsSwUo1kKhCRCxKqQLY5PYraDmgCsaWbeE7cMYRNie6cetkkX8ZyY+aOanxWO6zOfAw/gkv5Xy+7wdh/rUvzI/v4eZx9Sg3m+ULV/0n4L5hURUCGVepebGiOExiku0iCZynOYRgt0BUTYUwQKHoRrP8z+Xm1lZ+u1wbLlc1UVFqhweW42Mm956llEnO9tJlRr1e5cI0hJuWIOxz5ZvAZnTwuMf5/rV4MJgtwDrClEoTPsJDyjC3RDYAvwOxVsKP6xtpr9GGJ8F+3TgDimIhvtnkIDlFZLlYrtfw7trigzbatohMJMckpUOt3oWibniOJIlSsDNbVVX+ecHx4r0q10yxtTo3vL4P0P/2OUCrP1l6KPpxqxaXick01fBRVFqYRliW8XefPcdvKC98Z6v1pKJNNT9fvDTs7f73PoQL/8/5qwuQmQJgS/Bv37pDMAB/SODpW5CirbxilycH9OAVYPir3M9PGBqIroN4SDj5EAwZ0I4a5sEiV25+hpDb4ybmupKyUYi+h7EkKwbTyOoDw7UW0ZihyBJB3BGJkq3LOm08tf9AhOq3PoguyIojqyKsGCpg2aIqO4rsF4OpoOjbtsNrgQeiyTPFtiePPvLRdeH/AKeeOU4AeJxjYGRgYABiW9k+nXh+m68M3EwMIHCrN68YmWZ8zXgNSHEwgKUB+Z8JIAB4nGNgZGBgYgACPTDJwPiagZEBFegBABdZAU8AeJxjYGBgYBqCGAAhEABbAAAAAAAArgEiAWwBxgIWApYCyAMmA1wDlAPABBwEPgS6BPoFNAV8Ba4GKgZ4Bp4G2Ac6B6QH8AjGCQ4JxAn6CqILCguGC8gMBgw2DHgMpAzuDUgNfg38DlwO3A8AD14AAHicY2BkYGDQY5jCwMEAAkxAzAWEDAz/wXwGABxQAeEAeJx1kT9OwzAYxV/atIgWISQkxIYnFtT0z8DQkaHdO3RgS1MnTeXGUexW6sYxOAHHYOQInIJD8BK+oUKqIzs///LetwTADb4QoF4BrpqzXi1c8PbHbdKtcEh+EO6gjyfhLv2zcI/2RbjP5o4TgvCS5h5vwi1c4124Tf8hHJI/hTu4w7dwl/5HuIdlEAr38Ri8OpvksRkYm1m30NnexNWpOuWlrlxuCzWORqd6rgtdxV6v1eqo3CGbeJ+qtLI7NbOF18ZYVVZ2qxMfbbwvp8NhKj5K7A4OFglyxDAYcFtk3A4LaNKeJkZ1NnXOL9muWzlvBRTGiDA6m54zXTSNGJ7vNRsrHHk6HJiZ0HqkvKfMWP4VhVkzuU6bZpJC2Xzb0iT0ETZNq8QUQz7pv3zEFCf9AkQtapF4nG2Q13LcMAxFdZ0VpZXiOL333ux8EylCEkcUQbN4vfn6SN6dTB6CF5wLDOYCKE6KQ5TF/+MCJ7iFDUoIVKixRYMWt3GKOzjDXdzDfTzAQzzCYzzBUzzDc7zAS7zCa7zBW7zDe3zAR3zCZ3zBV3zDd/zAT5zjAr8KIWf5m12laJSuo1ZZHgYK59Km6shVx5o8uVoHo5SyVOnAXvF1Q1fkkgomUd3LjhTztOmJtOit6abQ9JxDvMwyUDmMHJMYTBqzagbmwdLqcXZEb3NcdfuPFgfeGheTHIKca2vcRNq4zSyNFfOCeT71xiUKFNM6v/2rhOduoqXA1mqp9b70YemJQFqbVMZx3SpOe09V9JxMv28Pq0a/nNLGlOfl1OzZ1Yksrf7NTe3mN+KAIu1M6sZ2Ten4tSOXV2YmrnejTFF63+6YO55nCh1tdxy0X5xieS3dIKs955QVFcUfQjyYFwAA") format("woff"),url(social-logos.ttf?5d3b4da4f6c2460dd842dbf9e0992ea6) format("truetype");font-weight:400;font-style:normal}.social-logo{font-family:social-logos;display:inline-block;vertical-align:middle;line-height:1;font-weight:400;font-style:normal;speak:none;text-decoration:inherit;text-transform:none;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.social-logo__amazon:before{content:"\f600"}.social-logo__behance:before{content:"\f101"}.social-logo__blogger-alt:before{content:"\f601"}.social-logo__blogger:before{content:"\f602"}.social-logo__codepen:before{content:"\f216"}.social-logo__dribbble:before{content:"\f201"}.social-logo__dropbox:before{content:"\f225"}.social-logo__eventbrite:before{content:"\f603"}.social-logo__facebook:before{content:"\f203"}.social-logo__feed:before{content:"\f413"}.social-logo__flickr:before{content:"\f211"}.social-logo__foursquare:before{content:"\f226"}.social-logo__ghost:before{content:"\f61c"}.social-logo__github:before{content:"\f200"}.social-logo__google-plus-alt:before{content:"\f218"}.social-logo__google-plus:before{content:"\f206"}.social-logo__instagram:before{content:"\f215"}.social-logo__linkedin:before{content:"\f207"}.social-logo__mail:before{content:"\f410"}.social-logo__medium:before{content:"\f623"}.social-logo__path-alt:before{content:"\f604"}.social-logo__path:before{content:"\f219"}.social-logo__pinterest-alt:before{content:"\f210"}.social-logo__pinterest:before{content:"\f209"}.social-logo__pocket:before{content:"\f224"}.social-logo__polldaddy:before{content:"\f217"}.social-logo__print:before{content:"\f469"}.social-logo__reddit:before{content:"\f222"}.social-logo__share:before{content:"\f415"}.social-logo__skype:before{content:"\f220"}.social-logo__spotify:before{content:"\f515"}.social-logo__squarespace:before{content:"\f605"}.social-logo__stumbleupon:before{content:"\f223"}.social-logo__telegram:before{content:"\f606"}.social-logo__tumblr-alt:before{content:"\f607"}.social-logo__tumblr:before{content:"\f214"}.social-logo__twitch:before{content:"\f516"}.social-logo__twitter-alt:before{content:"\f202"}.social-logo__twitter:before{content:"\f610"}.social-logo__vimeo:before{content:"\f212"}.social-logo__whatsapp:before{content:"\f608"}.social-logo__wordpress:before{content:"\f205"}.social-logo__xanga:before{content:"\f609"}.social-logo__youtube:before{content:"\f213"}
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.ttf b/plugins/jetpack/_inc/social-logos/social-logos.ttf
index 9b7f5289..370d7295 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.ttf
+++ b/plugins/jetpack/_inc/social-logos/social-logos.ttf
Binary files differ
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.woff b/plugins/jetpack/_inc/social-logos/social-logos.woff
index cbb3616e..d8cbf7bd 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.woff
+++ b/plugins/jetpack/_inc/social-logos/social-logos.woff
Binary files differ
diff --git a/plugins/jetpack/_inc/social-logos/social-logos.woff2 b/plugins/jetpack/_inc/social-logos/social-logos.woff2
index 51f2a4f9..107cfcec 100644
--- a/plugins/jetpack/_inc/social-logos/social-logos.woff2
+++ b/plugins/jetpack/_inc/social-logos/social-logos.woff2
Binary files differ
diff --git a/plugins/jetpack/_inc/twitter-timeline.js b/plugins/jetpack/_inc/twitter-timeline.js
index 16cd6dd7..ff3dc79f 100644
--- a/plugins/jetpack/_inc/twitter-timeline.js
+++ b/plugins/jetpack/_inc/twitter-timeline.js
@@ -1,4 +1,4 @@
-! ( function( d, s, id ) {
+! ( function ( d, s, id ) {
var js,
fjs = d.getElementsByTagName( s )[ 0 ],
p = /^http:/.test( d.location ) ? 'http' : 'https';
diff --git a/plugins/jetpack/class-jetpack-connection-status.php b/plugins/jetpack/class-jetpack-connection-status.php
new file mode 100644
index 00000000..97870d52
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-connection-status.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Jetpack Connection Status.
+ *
+ * Filters the Connection Status API response
+ *
+ * @package jetpack
+ */
+
+/**
+ * Filters the Connection Status API response
+ */
+class Jetpack_Connection_Status {
+
+ /**
+ * Initialize the main hooks.
+ */
+ public static function init() {
+ add_filter( 'jetpack_connection_status', array( __CLASS__, 'filter_connection_status' ) );
+ }
+
+ /**
+ * Filters the connection status API response of the Connection package and modifies isActive value expected by the UI.
+ *
+ * @param array $status An array containing the connection status data.
+ */
+ public static function filter_connection_status( $status ) {
+
+ $status['isActive'] = Jetpack::is_connection_ready();
+
+ return $status;
+ }
+
+}
diff --git a/plugins/jetpack/class-jetpack-pre-connection-jitms.php b/plugins/jetpack/class-jetpack-pre-connection-jitms.php
new file mode 100644
index 00000000..255b439a
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-pre-connection-jitms.php
@@ -0,0 +1,163 @@
+<?php
+/**
+ * Jetpack's Pre-Connection JITMs class.
+ *
+ * @package jetpack
+ */
+
+use Automattic\Jetpack\Partner_Coupon as Jetpack_Partner_Coupon;
+use Automattic\Jetpack\Redirect;
+
+/**
+ * Jetpack's Pre-Connection JITMs. These can be displayed with the JITM package.
+ */
+class Jetpack_Pre_Connection_JITMs {
+
+ /**
+ * Returns all the pre-connection messages.
+ *
+ * @return array An array containing the pre-connection JITM messages.
+ */
+ private function get_raw_messages() {
+ $button_caption = __( 'Set up Jetpack', 'jetpack' );
+ /* Translators: placeholders are links. */
+ $media_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to Site Accelerator.', 'jetpack' );
+ /* Translators: placeholders are links. */
+ $widgets_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to great additional widgets.', 'jetpack' );
+ /* Translators: placeholders are links. */
+ $posts_description = __( 'Click on the <strong>Set up Jetpack</strong> button to agree to our <a href="%1$s" target="_blank" rel="noopener noreferrer">Terms of Service</a> and to <a href="%2$s" target="_blank" rel="noopener noreferrer">share details</a> with WordPress.com, and gain access to in-depth stats about your site.', 'jetpack' );
+
+ $messages = array(
+ array(
+ 'id' => 'jpsetup-upload',
+ 'message_path' => '/wp:upload:admin_notices/',
+ 'message' => __( 'Do you want lightning-fast images?', 'jetpack' ),
+ 'description' => $this->generate_description_with_tos( $media_description ),
+ 'button_caption' => $button_caption,
+ ),
+ array(
+ 'id' => 'jpsetup-widgets',
+ 'message_path' => '/wp:widgets:admin_notices/',
+ 'message' => __( 'Looking for even more widgets?', 'jetpack' ),
+ 'description' => $this->generate_description_with_tos( $widgets_description ),
+ 'button_caption' => $button_caption,
+ ),
+ );
+
+ if ( wp_count_posts()->publish >= 5 ) {
+ $messages[] = array(
+ 'id' => 'jpsetup-posts',
+ 'message_path' => '/wp:edit-post:admin_notices/',
+ 'message' => __( 'Do you know which of these posts gets the most traffic?', 'jetpack' ),
+ 'description' => $this->generate_description_with_tos( $posts_description ),
+ 'button_caption' => $button_caption,
+ );
+ }
+
+ foreach ( $messages as $key => $message ) {
+ /*
+ * Add Connect URL to each message, with from including jitm id.
+ */
+ $jetpack_setup_url = $this->generate_admin_url(
+ array(
+ 'page' => 'jetpack#/setup',
+ 'from' => sprintf( 'pre-connection-jitm-%s', $message['id'] ),
+ )
+ );
+ $messages[ $key ]['button_link'] = $jetpack_setup_url;
+ }
+
+ return $messages;
+ }
+
+ /**
+ * Generate a description text with links to ToS documents.
+ *
+ * Those messages must mention the ToS agreement message,
+ * but do not use the standard message defined in jetpack_render_tos_blurb.
+ * Instead, they use their own custom messages.
+ *
+ * @param string $description Description string with placeholders.
+ *
+ * @return string
+ */
+ private function generate_description_with_tos( $description ) {
+ return sprintf(
+ wp_kses(
+ $description,
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'target' => array(),
+ 'rel' => array(),
+ ),
+ 'strong' => true,
+ )
+ ),
+ esc_url( Redirect::get_url( 'wpcom-tos' ) ),
+ esc_url( Redirect::get_url( 'jetpack-support-what-data-does-jetpack-sync' ) )
+ );
+ }
+
+ /**
+ * Returns partnership related pre-connection messages.
+ *
+ * @since 10.4
+ *
+ * @return array An array containing the pre-connection JITM messages.
+ */
+ private function maybe_get_raw_partnership_messages() {
+ $partner_coupon = Jetpack_Partner_Coupon::get_coupon();
+
+ if ( ! $partner_coupon ) {
+ return array();
+ }
+
+ return array(
+ array(
+ 'id' => 'jpsetup-partner-coupon',
+ 'message_path' => '/wp:(plugin-install|themes|update-core|upload|users|tools|options-general):admin_notices/',
+ /* Translators: 1: Product name, 2: Partner name. */
+ 'message' => sprintf( esc_html__( 'Get %1$s with your %2$s account', 'jetpack' ), $partner_coupon['product']['title'], $partner_coupon['partner']['name'] ),
+ 'description' => $partner_coupon['product']['description'],
+ 'button_caption' => esc_html__( 'Redeem coupon', 'jetpack' ),
+ 'button_link' => $this->generate_admin_url(
+ array(
+ 'page' => 'jetpack#/dashboard',
+ 'from' => 'pre-connection-jitm--jpsetup-partner-coupon',
+ )
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Adds the input query arguments to the admin url.
+ *
+ * @param array $args The query arguments.
+ *
+ * @return string The admin url.
+ */
+ private function generate_admin_url( $args ) {
+ $url = add_query_arg( $args, admin_url( 'admin.php' ) );
+ return $url;
+ }
+
+ /**
+ * Add the Jetpack pre-connection JITMs to the list of pre-connection JITM messages.
+ *
+ * @param array $pre_connection_messages An array of pre-connection JITMs.
+ *
+ * @return array The array of pre-connection JITMs.
+ */
+ public function add_pre_connection_jitms( $pre_connection_messages ) {
+ $jetpack_messages = array_merge( $this->get_raw_messages(), $this->maybe_get_raw_partnership_messages() );
+
+ if ( ! is_array( $pre_connection_messages ) ) {
+ // The incoming messages aren't an array, so just return Jetpack's messages.
+ return $jetpack_messages;
+ }
+
+ return array_merge( $pre_connection_messages, $jetpack_messages );
+ }
+}
diff --git a/plugins/jetpack/class-jetpack-recommendations-banner.php b/plugins/jetpack/class-jetpack-recommendations-banner.php
new file mode 100644
index 00000000..c880ffc3
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-recommendations-banner.php
@@ -0,0 +1,277 @@
+<?php
+/**
+ * Displays the site type recommendations question as a banner.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Tracking;
+
+/**
+ * Jetpack_Recommendations_Banner
+ **/
+class Jetpack_Recommendations_Banner {
+ /**
+ * Jetpack_Recommendations_Banner
+ *
+ * @var Jetpack_Recommendations_Banner
+ **/
+ private static $instance = null;
+
+ /**
+ * Factory method
+ */
+ public static function init() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Jetpack_Recommendations_Banner();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Jetpack_Recommendations_Banner constructor.
+ */
+ private function __construct() {
+ add_action( 'current_screen', array( $this, 'maybe_initialize_hooks' ) );
+ }
+
+ /**
+ * Initialize hooks to display the banner
+ *
+ * @since 9.7 Added the $current_screen parameter.
+ *
+ * @param \WP_Screen $current_screen Current WordPress screen.
+ */
+ public function maybe_initialize_hooks( $current_screen ) {
+ if ( ! $this->can_be_displayed() ) {
+ return;
+ }
+
+ if ( Jetpack_Connection_Banner::can_be_displayed( $current_screen ) ) {
+ // We don't want to overcrowd the screen with both the Connection banner and the Recommendations banner.
+ return;
+ }
+
+ add_action( 'admin_print_styles', array( $this, 'admin_banner_styles' ) );
+ add_action( 'admin_notices', array( $this, 'render_banner' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_banner_scripts' ) );
+ }
+
+ /**
+ * Determines if the banner can be displayed
+ */
+ public static function can_be_displayed() {
+ if ( ! Jetpack_Recommendations::is_banner_enabled() ) {
+ return false;
+ }
+
+ // Only the dashboard and plugins pages should see the banner.
+ if ( ! in_array( get_current_screen()->id, array( 'dashboard', 'plugins' ), true ) ) {
+ return false;
+ }
+
+ if ( ! current_user_can( 'jetpack_manage_modules' ) ) {
+ return false;
+ }
+
+ if ( Jetpack_Options::get_option( 'recommendations_banner_dismissed' ) ) {
+ return false;
+ }
+
+ if ( ! in_array(
+ Jetpack_Options::get_option( 'recommendations_step', 'not-started' ),
+ array(
+ 'not-started',
+ 'site-type-question',
+ ),
+ true
+ ) ) {
+ return false;
+ }
+
+ if ( Identity_Crisis::has_identity_crisis() ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Handles storing the user responses in the banner.
+ */
+ public static function ajax_callback() {
+ check_ajax_referer( 'jp-recommendations-banner-nonce', 'nonce' );
+
+ if ( ! current_user_can( 'jetpack_manage_modules' ) ) {
+ wp_die();
+ }
+
+ $tracking = new Tracking();
+
+ if ( isset( $_REQUEST['dismissBanner'] ) && 'true' === $_REQUEST['dismissBanner'] ) {
+ Jetpack_Options::update_option( 'recommendations_banner_dismissed', 1 );
+ $tracking->record_user_event( 'recommendations_banner_dismissed' );
+ wp_send_json_success();
+ wp_die();
+ }
+
+ $data = Jetpack_Recommendations::get_recommendations_data();
+
+ $tracking_answers = array();
+
+ if ( isset( $_REQUEST['personal'] ) && is_string( $_REQUEST['personal'] ) ) {
+ $value = 'true' === $_REQUEST['personal'] ? true : false;
+ $data['site-type-personal'] = $value;
+ $tracking_answers['personal'] = $value;
+ }
+
+ if ( isset( $_REQUEST['business'] ) && is_string( $_REQUEST['business'] ) ) {
+ $value = 'true' === $_REQUEST['business'] ? true : false;
+ $data['site-type-business'] = $value;
+ $tracking_answers['business'] = $value;
+ }
+
+ if ( isset( $_REQUEST['store'] ) && is_string( $_REQUEST['store'] ) ) {
+ $value = 'true' === $_REQUEST['store'] ? true : false;
+ $data['site-type-store'] = $value;
+ $tracking_answers['store'] = $value;
+ }
+
+ if ( isset( $_REQUEST['other'] ) && is_string( $_REQUEST['other'] ) ) {
+ $value = 'true' === $_REQUEST['other'] ? true : false;
+ $data['site-type-other'] = $value;
+ $tracking_answers['other'] = $value;
+ }
+
+ Jetpack_Recommendations::update_recommendations_data( $data );
+ Jetpack_Options::update_option( 'recommendations_step', 'banner-completed' );
+
+ $tracking->record_user_event( 'recommendations_banner_answered', $tracking_answers );
+
+ wp_send_json_success();
+ wp_die();
+ }
+
+ /**
+ * Enqueue JavaScript files.
+ */
+ public function enqueue_banner_scripts() {
+ wp_enqueue_script(
+ 'jetpack-recommendations-banner-js',
+ Assets::get_file_url_for_environment(
+ '_inc/build/jetpack-recommendations-banner.min.js',
+ '_inc/jetpack-recommendations-banner.js'
+ ),
+ array( 'jquery' ),
+ JETPACK__VERSION,
+ true
+ );
+
+ wp_localize_script(
+ 'jetpack-recommendations-banner-js',
+ 'jp_banner',
+ array(
+ 'nonce' => wp_create_nonce( 'jp-recommendations-banner-nonce' ),
+ 'ajax_url' => admin_url( 'admin-ajax.php' ),
+ 'recommendations_url' => admin_url( 'admin.php?page=jetpack#/recommendations' ),
+ )
+ );
+ }
+
+ /**
+ * Include the needed styles
+ */
+ public function admin_banner_styles() {
+ wp_enqueue_style(
+ 'jetpack-recommendations-banner',
+ Assets::get_file_url_for_environment(
+ 'css/jetpack-recommendations-banner.min.css',
+ 'css/jetpack-recommendations-banner.css'
+ ),
+ array(),
+ JETPACK__VERSION
+ );
+ }
+
+ /**
+ * Renders the Recommendations Banner
+ */
+ public function render_banner() {
+ $jetpack_logo = new Jetpack_Logo();
+ $site_name = get_bloginfo( 'name' );
+ ?>
+ <div id="jp-recommendations-banner-main" class="jp-recommendations-banner-main">
+ <div class="jp-recommendations-banner__content">
+ <div class="jp-recommendations-banner__logo">
+ <?php
+ echo $jetpack_logo->get_jp_emblem_larger(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ </div>
+ <h1 class="jp-recommendations-banner__question">
+ <?php
+ /* translators: placeholder is the name of the website */
+ echo sprintf( esc_html__( 'What type of site is %s?', 'jetpack' ), esc_html( $site_name ) );
+ ?>
+ </h1>
+ <p class="jp-recommendations-banner__description">
+ <?php esc_html_e( 'This assistant will help you get the most from Jetpack. Tell us more about your goals and we’ll recommend relevant features to help you succeed.', 'jetpack' ); ?>
+ </p>
+ <div class="jp-recommendations-banner__answer">
+ <form id="jp-recommendations-banner__form" class="jp-recommendations-banner__form">
+ <div class="jp-recommendations-banner__checkboxes">
+ <?php $this->render_checkbox( 'personal', __( 'Personal', 'jetpack' ) ); ?>
+ <?php $this->render_checkbox( 'business', __( 'Business', 'jetpack' ) ); ?>
+ <?php $this->render_checkbox( 'store', __( 'Store', 'jetpack' ) ); ?>
+ <?php $this->render_checkbox( 'other', __( 'Other', 'jetpack' ) ); ?>
+ </div>
+ </form>
+ <a id="jp-recommendations-banner__continue-button" class="jp-recommendations-banner__continue-button">
+ <?php esc_html_e( 'Continue', 'jetpack' ); ?>
+ </a>
+ <div class="jp-recommendations-banner__continue-description">
+ <?php esc_html_e( 'The following Jetpack recommendations are available to you later in the Jetpack dashboard.', 'jetpack' ); ?>
+ </div>
+ </div>
+ </div>
+ <div class="jp-recommendations-banner__illustration-container">
+ <div id="jp-recommendations-banner__notice-dismiss" class="jp-recommendations-banner__notice-dismiss">
+ <svg class="jp-recommendations-banner__svg-dismiss" width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="jp-dismiss-mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.5232 2C7.02034 2 2.57227 6.47 2.57227 12C2.57227 17.53 7.02034 22 12.5232 22C18.0261 22 22.4742 17.53 22.4742 12C22.4742 6.47 18.0261 2 12.5232 2ZM15.1005 8L12.5232 10.59L9.94591 8L8.54283 9.41L11.1201 12L8.54283 14.59L9.94591 16L12.5232 13.41L15.1005 16L16.5036 14.59L13.9263 12L16.5036 9.41L15.1005 8ZM4.56245 12C4.56245 16.41 8.13484 20 12.5232 20C16.9116 20 20.484 16.41 20.484 12C20.484 7.59 16.9116 4 12.5232 4C8.13484 4 4.56245 7.59 4.56245 12Z" />
+ </mask><g mask="url(#jp-dismiss-mask0)"><rect x="0.582031" width="23.8823" height="24" /></g></svg>
+ <span><?php esc_attr_e( 'Dismiss', 'jetpack' ); ?></span>
+ </div>
+ <img
+ src="<?php echo esc_url( plugins_url( 'images/recommendations/background.svg', JETPACK__PLUGIN_FILE ), 'jetpack' ); ?>"
+ class="jp-recommendations-banner__illustration-background"
+ />
+ <img
+ src="<?php echo esc_url( plugins_url( 'images/recommendations/site-type-illustration.jpg', JETPACK__PLUGIN_FILE ), 'jetpack' ); ?>"
+ class="jp-recommendations-banner__illustration-foreground"
+ />
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Renders a checkbox.
+ *
+ * @param string $name The name to give the form input.
+ * @param string $title The title to put on the checkbox.
+ */
+ private function render_checkbox( $name, $title ) {
+ ?>
+ <label for="<?php echo esc_html( $name ); ?>" class="jp-recommendations-answer__checkbox-label">
+ <input id="<?php echo esc_html( $name ); ?>" name="<?php echo esc_html( $name ); ?>" type="checkbox" tabindex="-1"/>
+ <div class="jp-recommendations-answer__title">
+ <?php echo esc_html( $title ); ?>
+ </div>
+ </label>
+ <?php
+ }
+}
diff --git a/plugins/jetpack/class-jetpack-stats-dashboard-widget.php b/plugins/jetpack/class-jetpack-stats-dashboard-widget.php
new file mode 100644
index 00000000..29167a3b
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-stats-dashboard-widget.php
@@ -0,0 +1,151 @@
+<?php
+/**
+ * Adds the Jetpack stats widget to the WordPress admin dashboard.
+ *
+ * @package jetpack
+ */
+
+use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
+use Automattic\Jetpack\Status;
+
+/**
+ * Class that adds the Jetpack stats widget to the WordPress admin dashboard.
+ */
+class Jetpack_Stats_Dashboard_Widget {
+
+ /**
+ * Indicates whether the class initialized or not.
+ *
+ * @var bool
+ */
+ private static $initialized = false;
+
+ /**
+ * Initialize the class by calling the setup static function.
+ *
+ * @return void
+ */
+ public static function init() {
+ if ( ! self::$initialized ) {
+ self::$initialized = true;
+ self::wp_dashboard_setup();
+ }
+ }
+
+ /**
+ * Sets up the Jetpack Stats widget in the WordPress admin dashboard.
+ */
+ public static function wp_dashboard_setup() {
+ if ( Jetpack::is_connection_ready() ) {
+ add_action( 'jetpack_dashboard_widget', array( __CLASS__, 'dashboard_widget_footer' ), 999 );
+ }
+
+ if ( has_action( 'jetpack_dashboard_widget' ) ) {
+ $jetpack_logo = new Jetpack_Logo();
+ $widget_title = sprintf(
+ // translators: Placeholder is a Jetpack logo.
+ __( 'Stats by %s', 'jetpack' ),
+ $jetpack_logo->get_jp_emblem( true )
+ );
+
+ // Wrap title in span so Logo can be properly styled.
+ $widget_title = sprintf(
+ '<span>%s</span>',
+ $widget_title
+ );
+
+ wp_add_dashboard_widget(
+ 'jetpack_summary_widget',
+ $widget_title,
+ array( __CLASS__, 'dashboard_widget' )
+ );
+ wp_enqueue_style( 'jetpack-dashboard-widget', plugins_url( 'css/dashboard-widget.css', JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
+ wp_style_add_data( 'jetpack-dashboard-widget', 'rtl', 'replace' );
+ }
+ }
+
+ /**
+ * Fires dashboard widget action.
+ * Both the footer from this file and the stats graph from modules/stats.php hook into this action.
+ */
+ public static function dashboard_widget() {
+ /**
+ * Fires when the dashboard is loaded.
+ *
+ * @since 3.4.0
+ */
+ do_action( 'jetpack_dashboard_widget' );
+ }
+
+ /**
+ * Load the widget footer showing Akismet stats.
+ */
+ public static function dashboard_widget_footer() {
+ ?>
+ <footer>
+
+ <div class="protect">
+ <h3><?php esc_html_e( 'Brute force attack protection', 'jetpack' ); ?></h3>
+ <?php if ( Jetpack::is_module_active( 'protect' ) ) : ?>
+ <p class="blocked-count">
+ <?php echo esc_html( number_format_i18n( get_site_option( 'jetpack_protect_blocked_attempts', 0 ) ) ); ?>
+ </p>
+ <p><?php echo esc_html_x( 'Blocked malicious login attempts', '{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
+ <?php elseif ( current_user_can( 'jetpack_activate_modules' ) && ! ( new Status() )->is_offline_mode() ) : ?>
+ <a href="
+ <?php
+ echo esc_url(
+ wp_nonce_url(
+ Jetpack::admin_url(
+ array(
+ 'action' => 'activate',
+ 'module' => 'protect',
+ )
+ ),
+ 'jetpack_activate-protect'
+ )
+ );
+ ?>
+ " class="button button-jetpack" title="<?php esc_attr_e( 'Protect helps to keep you secure from brute-force login attacks.', 'jetpack' ); ?>">
+ <?php esc_html_e( 'Activate brute force attack protection', 'jetpack' ); ?>
+ </a>
+ <?php else : ?>
+ <?php esc_html_e( 'Brute force attack protection is inactive.', 'jetpack' ); ?>
+ <?php endif; ?>
+ </div>
+
+ <div class="akismet">
+ <h3><?php esc_html_e( 'Anti-spam', 'jetpack' ); ?></h3>
+ <?php if ( is_plugin_active( 'akismet/akismet.php' ) ) : ?>
+ <p class="blocked-count">
+ <?php echo esc_html( number_format_i18n( get_option( 'akismet_spam_count', 0 ) ) ); ?>
+ </p>
+ <p><?php echo esc_html_x( 'Blocked spam comments.', '{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
+ <?php elseif ( current_user_can( 'activate_plugins' ) && ! is_wp_error( validate_plugin( 'akismet/akismet.php' ) ) ) : ?>
+ <a href="
+ <?php
+ echo esc_url(
+ wp_nonce_url(
+ add_query_arg(
+ array(
+ 'action' => 'activate',
+ 'plugin' => 'akismet/akismet.php',
+ ),
+ admin_url( 'plugins.php' )
+ ),
+ 'activate-plugin_akismet/akismet.php'
+ )
+ );
+ ?>
+ " class="button button-jetpack">
+ <?php esc_html_e( 'Activate Anti-spam', 'jetpack' ); ?>
+ </a>
+ <?php else : ?>
+ <p><a href="<?php echo esc_url( 'https://akismet.com/?utm_source=jetpack&utm_medium=link&utm_campaign=Jetpack%20Dashboard%20Widget%20Footer%20Link' ); ?>"><?php esc_html_e( 'Anti-spam can help to keep your blog safe from spam!', 'jetpack' ); ?></a></p>
+ <?php endif; ?>
+ </div>
+
+ </footer>
+ <?php
+ }
+}
diff --git a/plugins/jetpack/class-jetpack-wizard-banner.php b/plugins/jetpack/class-jetpack-wizard-banner.php
new file mode 100644
index 00000000..41b3e9ec
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-wizard-banner.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Deprecated since 9.5.0
+ *
+ * @deprecated
+ * @package automattic/jetpack
+ */
+
+// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+_deprecated_file( basename( __FILE__ ), 'jetpack-9.5.0' );
diff --git a/plugins/jetpack/class-jetpack-xmlrpc-methods.php b/plugins/jetpack/class-jetpack-xmlrpc-methods.php
new file mode 100644
index 00000000..7f20cee9
--- /dev/null
+++ b/plugins/jetpack/class-jetpack-xmlrpc-methods.php
@@ -0,0 +1,270 @@
+<?php
+/**
+ * Jetpack XMLRPC Methods.
+ *
+ * Registers the Jetpack specific XMLRPC methods
+ *
+ * @package jetpack
+ */
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Tokens;
+
+/**
+ * XMLRPC Methods registration and callbacks
+ */
+class Jetpack_XMLRPC_Methods {
+
+ /**
+ * Initialize the main hooks.
+ */
+ public static function init() {
+ add_filter( 'jetpack_xmlrpc_unauthenticated_methods', array( __CLASS__, 'xmlrpc_methods' ) );
+ add_filter( 'jetpack_xmlrpc_test_connection_response', array( __CLASS__, 'test_connection' ) );
+ add_filter( 'jetpack_remote_xmlrpc_provision_response', array( __CLASS__, 'remote_provision_response' ), 10, 2 );
+ add_action( 'jetpack_xmlrpc_server_event', array( __CLASS__, 'jetpack_xmlrpc_server_event' ), 10, 4 );
+ add_action( 'jetpack_remote_connect_end', array( __CLASS__, 'remote_connect_end' ) );
+ add_filter( 'jetpack_xmlrpc_remote_register_redirect_uri', array( __CLASS__, 'remote_register_redirect_uri' ) );
+ }
+
+ /**
+ * Adds Jetpack specific methods to the methods added by the Connection package.
+ *
+ * @param array $methods Methods added by the Connection package.
+ */
+ public static function xmlrpc_methods( $methods ) {
+
+ $methods['jetpack.featuresAvailable'] = array( __CLASS__, 'features_available' );
+ $methods['jetpack.featuresEnabled'] = array( __CLASS__, 'features_enabled' );
+ $methods['jetpack.disconnectBlog'] = array( __CLASS__, 'disconnect_blog' );
+ $methods['jetpack.jsonAPI'] = array( __CLASS__, 'json_api' );
+
+ return $methods;
+ }
+
+ /**
+ * Returns what features are available. Uses the slug of the module files.
+ *
+ * @return array
+ */
+ public static function features_available() {
+ $raw_modules = Jetpack::get_available_modules();
+ $modules = array();
+ foreach ( $raw_modules as $module ) {
+ $modules[] = Jetpack::get_module_slug( $module );
+ }
+
+ return $modules;
+ }
+
+ /**
+ * Returns what features are enabled. Uses the slug of the modules files.
+ *
+ * @return array
+ */
+ public static function features_enabled() {
+ $raw_modules = Jetpack::get_active_modules();
+ $modules = array();
+ foreach ( $raw_modules as $module ) {
+ $modules[] = Jetpack::get_module_slug( $module );
+ }
+
+ return $modules;
+ }
+
+ /**
+ * Filters the result of test_connection XMLRPC method
+ *
+ * @return string The current Jetpack version number
+ */
+ public static function test_connection() {
+ return JETPACK__VERSION;
+ }
+
+ /**
+ * Disconnect this blog from the connected wordpress.com account
+ *
+ * @return boolean
+ */
+ public static function disconnect_blog() {
+
+ /**
+ * Fired when we want to log an event to the Jetpack event log.
+ *
+ * @since 7.7.0
+ *
+ * @param string $code Unique name for the event.
+ * @param string $data Optional data about the event.
+ */
+ do_action( 'jetpack_event_log', 'disconnect' );
+ Jetpack::disconnect();
+
+ return true;
+ }
+
+ /**
+ * Serve a JSON API request.
+ *
+ * @param array $args request arguments.
+ */
+ public static function json_api( $args = array() ) {
+ $json_api_args = $args[0];
+ $verify_api_user_args = $args[1];
+
+ $method = (string) $json_api_args[0];
+ $url = (string) $json_api_args[1];
+ $post_body = is_null( $json_api_args[2] ) ? null : (string) $json_api_args[2];
+ $user_details = (array) $json_api_args[4];
+ $locale = (string) $json_api_args[5];
+
+ if ( ! $verify_api_user_args ) {
+ $user_id = 0;
+ } elseif ( 'internal' === $verify_api_user_args[0] ) {
+ $user_id = (int) $verify_api_user_args[1];
+ if ( $user_id ) {
+ $user = get_user_by( 'id', $user_id );
+ if ( ! $user || is_wp_error( $user ) ) {
+ return false;
+ }
+ }
+ } else {
+ $user_id = call_user_func( array( new Jetpack_XMLRPC_Server(), 'test_api_user_code' ), $verify_api_user_args );
+ if ( ! $user_id ) {
+ return false;
+ }
+ }
+
+ if ( 'en' !== $locale ) {
+ // .org mo files are named slightly different from .com, and all we have is this the locale -- try to guess them.
+ $new_locale = $locale;
+ if ( strpos( $locale, '-' ) !== false ) {
+ $locale_pieces = explode( '-', $locale );
+ $new_locale = $locale_pieces[0];
+ $new_locale .= ( ! empty( $locale_pieces[1] ) ) ? '_' . strtoupper( $locale_pieces[1] ) : '';
+ } else {
+ // .com might pass 'fr' because thats what our language files are named as, where core seems
+ // to do fr_FR - so try that if we don't think we can load the file.
+ if ( ! file_exists( WP_LANG_DIR . '/' . $locale . '.mo' ) ) {
+ $new_locale = $locale . '_' . strtoupper( $locale );
+ }
+ }
+
+ if ( file_exists( WP_LANG_DIR . '/' . $new_locale . '.mo' ) ) {
+ unload_textdomain( 'default' );
+ load_textdomain( 'default', WP_LANG_DIR . '/' . $new_locale . '.mo' );
+ }
+ }
+
+ $old_user = wp_get_current_user();
+ wp_set_current_user( $user_id );
+
+ if ( $user_id ) {
+ $token_key = false;
+ } else {
+ $verified = ( new Connection_Manager() )->verify_xml_rpc_signature();
+ $token_key = $verified['token_key'];
+ }
+
+ $token = ( new Tokens() )->get_access_token( $user_id, $token_key );
+ if ( ! $token || is_wp_error( $token ) ) {
+ return false;
+ }
+
+ define( 'REST_API_REQUEST', true );
+ define( 'WPCOM_JSON_API__BASE', 'public-api.wordpress.com/rest/v1' );
+
+ // needed?
+ require_once ABSPATH . 'wp-admin/includes/admin.php';
+
+ require_once JETPACK__PLUGIN_DIR . 'class.json-api.php';
+ $api = WPCOM_JSON_API::init( $method, $url, $post_body );
+ $api->token_details['user'] = $user_details;
+ require_once JETPACK__PLUGIN_DIR . 'class.json-api-endpoints.php';
+
+ $display_errors = ini_set( 'display_errors', 0 ); // phpcs:ignore WordPress.PHP.IniSet
+ ob_start();
+ $api->serve( false );
+ $output = ob_get_clean();
+ ini_set( 'display_errors', $display_errors ); // phpcs:ignore WordPress.PHP.IniSet
+
+ $nonce = wp_generate_password( 10, false );
+ $hmac = hash_hmac( 'md5', $nonce . $output, $token->secret );
+
+ wp_set_current_user( isset( $old_user->ID ) ? $old_user->ID : 0 );
+
+ return array(
+ (string) $output,
+ (string) $nonce,
+ (string) $hmac,
+ );
+ }
+
+ /**
+ * Filters the response of the remote_provision XMLRPC method
+ *
+ * @param array $response The response.
+ * @param array $request An array containing at minimum a nonce key and a local_username key.
+ *
+ * @since 9.8.0
+ * @return array
+ */
+ public static function remote_provision_response( $response, $request ) {
+ if ( ! empty( $request['onboarding'] ) ) {
+ Jetpack::create_onboarding_token();
+ $response['onboarding_token'] = Jetpack_Options::get_option( 'onboarding' );
+ }
+ return $response;
+ }
+
+ /**
+ * Runs Jetpack specific action in xmlrpc server events
+ *
+ * @param String $action the action name, i.e., 'remote_authorize'.
+ * @param String $stage the execution stage, can be 'begin', 'success', 'error', etc.
+ * @param array $parameters extra parameters from the event.
+ * @param WP_User $user the acting user.
+ * @return void
+ */
+ public static function jetpack_xmlrpc_server_event( $action, $stage, $parameters = array(), $user = null ) { //phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( 'remote_register' === $action && 'begin' === $stage ) {
+ Jetpack::maybe_set_version_option();
+ }
+ }
+
+ /**
+ * Hooks into the remote_connect XMLRPC endpoint and triggers Jetpack::handle_post_authorization_actions
+ *
+ * @since 9.8.0
+ * @return void
+ */
+ public static function remote_connect_end() {
+ /** This filter is documented in class.jetpack-cli.php */
+ $enable_sso = apply_filters( 'jetpack_start_enable_sso', true );
+ Jetpack::handle_post_authorization_actions( $enable_sso, false, false );
+ }
+
+ /**
+ * Filters the Redirect URI returned by the remote_register XMLRPC method
+ *
+ * @since 9.8.0
+ *
+ * @param string $redirect_uri The Redirect URI.
+ * @return string
+ */
+ public static function remote_register_redirect_uri( $redirect_uri ) {
+ $auto_enable_sso = ( ! ( new Connection_Manager() )->has_connected_owner() || Jetpack::is_module_active( 'sso' ) );
+
+ /** This filter is documented in class.jetpack-cli.php */
+ if ( apply_filters( 'jetpack_start_enable_sso', $auto_enable_sso ) ) {
+ $redirect_uri = add_query_arg(
+ array(
+ 'action' => 'jetpack-sso',
+ 'redirect_to' => rawurlencode( admin_url() ),
+ ),
+ wp_login_url() // TODO: come back to Jetpack dashboard?
+ );
+ }
+
+ return $redirect_uri;
+ }
+}
diff --git a/plugins/jetpack/class.jetpack-admin.php b/plugins/jetpack/class.jetpack-admin.php
index 700f9889..40cabfdb 100644
--- a/plugins/jetpack/class.jetpack-admin.php
+++ b/plugins/jetpack/class.jetpack-admin.php
@@ -1,5 +1,7 @@
<?php
+use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
+use Automattic\Jetpack\Partner_Coupon as Jetpack_Partner_Coupon;
use Automattic\Jetpack\Status;
// Build the Jetpack admin menu as a whole
@@ -36,7 +38,12 @@ class Jetpack_Admin {
jetpack_require_lib( 'admin-pages/class-jetpack-about-page' );
$this->jetpack_about = new Jetpack_About_Page();
+ jetpack_require_lib( 'admin-pages/class-jetpack-search-dashboard-page' );
+ $this->jetpack_search = new Jetpack_Search_Dashboard_Page();
+
+ add_action( 'admin_init', array( $this->jetpack_react, 'react_redirects' ), 0 );
add_action( 'admin_menu', array( $this->jetpack_react, 'add_actions' ), 998 );
+ add_action( 'admin_menu', array( $this->jetpack_search, 'add_actions' ), 999 );
add_action( 'jetpack_admin_menu', array( $this->jetpack_react, 'jetpack_add_dashboard_sub_nav_item' ) );
add_action( 'jetpack_admin_menu', array( $this->jetpack_react, 'jetpack_add_settings_sub_nav_item' ) );
add_action( 'jetpack_admin_menu', array( $this, 'admin_menu_debugger' ) );
@@ -49,6 +56,48 @@ class Jetpack_Admin {
// Add module bulk actions handler
add_action( 'jetpack_unrecognized_action', array( $this, 'handle_unrecognized_action' ) );
+
+ if ( class_exists( 'Akismet_Admin' ) ) {
+ // If the site has Jetpack Anti-Spam, change the Akismet menu label accordingly.
+ $site_products = Jetpack_Plan::get_products();
+ $anti_spam_products = array( 'jetpack_anti_spam_monthly', 'jetpack_anti_spam' );
+ if ( ! empty( array_intersect( $anti_spam_products, array_column( $site_products, 'product_slug' ) ) ) ) {
+ // Prevent Akismet from adding a menu item.
+ add_action(
+ 'admin_menu',
+ function () {
+ remove_action( 'admin_menu', array( 'Akismet_Admin', 'admin_menu' ), 5 );
+ },
+ 4
+ );
+
+ // Add an Anti-spam menu item for Jetpack.
+ add_action(
+ 'jetpack_admin_menu',
+ function () {
+ add_submenu_page( 'jetpack', __( 'Anti-Spam', 'jetpack' ), __( 'Anti-Spam', 'jetpack' ), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) );
+ }
+ );
+ add_action( 'admin_enqueue_scripts', array( $this, 'akismet_logo_replacement_styles' ) );
+ }
+ }
+
+ add_filter( 'jetpack_display_jitms_on_screen', array( $this, 'should_display_jitms_on_screen' ), 10, 2 );
+
+ // Register Jetpack partner coupon hooks.
+ Jetpack_Partner_Coupon::register_coupon_admin_hooks( 'jetpack', Jetpack::admin_url() );
+ }
+
+ /**
+ * Generate styles to replace Akismet logo for the Jetpack logo. It's a workaround until we create a proper settings page for
+ * Jetpack Anti-Spam. Without this, we would have to change the logo from Akismet codebase and we want to avoid that.
+ */
+ public function akismet_logo_replacement_styles() {
+ $logo = new Jetpack_Logo();
+ $logo_base64 = base64_encode( $logo->get_jp_emblem_larger() );
+ $logo_base64_url = "data:image/svg+xml;base64,{$logo_base64}";
+ $style = ".akismet-masthead__logo-container { background: url({$logo_base64_url}) no-repeat .25rem; height: 1.8125rem; } .akismet-masthead__logo { display: none; }";
+ wp_add_inline_style( 'admin-bar', $style );
}
static function sort_requires_connection_last( $module1, $module2 ) {
@@ -70,7 +119,7 @@ class Jetpack_Admin {
$available_modules = Jetpack::get_available_modules();
$active_modules = Jetpack::get_active_modules();
$modules = array();
- $jetpack_active = Jetpack::is_active() || ( new Status() )->is_development_mode();
+ $jetpack_active = Jetpack::is_connection_ready() || ( new Status() )->is_offline_mode();
$overrides = Jetpack_Modules_Overrides::instance();
foreach ( $available_modules as $module ) {
if ( $module_array = Jetpack::get_module( $module ) ) {
@@ -92,14 +141,18 @@ class Jetpack_Admin {
? substr( $short_desc, 0, 140 ) . '...'
: $short_desc );
- $module_array['module'] = $module;
- $module_array['activated'] = ( $jetpack_active ? in_array( $module, $active_modules ) : false );
- $module_array['deactivate_nonce'] = wp_create_nonce( 'jetpack_deactivate-' . $module );
- $module_array['activate_nonce'] = wp_create_nonce( 'jetpack_activate-' . $module );
- $module_array['available'] = self::is_module_available( $module_array );
- $module_array['short_description'] = $short_desc_trunc;
- $module_array['configure_url'] = Jetpack::module_configuration_url( $module );
- $module_array['override'] = $overrides->get_module_override( $module );
+ $module_array['module'] = $module;
+
+ $is_available = self::is_module_available( $module_array );
+
+ $module_array['activated'] = ( $jetpack_active ? in_array( $module, $active_modules, true ) : false );
+ $module_array['deactivate_nonce'] = wp_create_nonce( 'jetpack_deactivate-' . $module );
+ $module_array['activate_nonce'] = wp_create_nonce( 'jetpack_activate-' . $module );
+ $module_array['available'] = $is_available;
+ $module_array['unavailable_reason'] = $is_available ? false : self::get_module_unavailable_reason( $module_array );
+ $module_array['short_description'] = $short_desc_trunc;
+ $module_array['configure_url'] = Jetpack::module_configuration_url( $module );
+ $module_array['override'] = $overrides->get_module_override( $module );
ob_start();
/**
@@ -172,7 +225,7 @@ class Jetpack_Admin {
uasort( $modules, array( 'Jetpack', 'sort_modules' ) );
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
uasort( $modules, array( __CLASS__, 'sort_requires_connection_last' ) );
}
@@ -191,15 +244,115 @@ class Jetpack_Admin {
return false;
}
- if ( ( new Status() )->is_development_mode() ) {
- return ! ( $module['requires_connection'] );
- } else {
- if ( ! Jetpack::is_active() ) {
- return false;
+ /*
+ * WooCommerce Analytics should only be available
+ * when running WooCommerce 3+
+ */
+ if (
+ 'woocommerce-analytics' === $module['module']
+ && (
+ ! class_exists( 'WooCommerce' )
+ || version_compare( WC_VERSION, '3.0', '<' )
+ )
+ ) {
+ return false;
+ }
+
+ /*
+ * In Offline mode, modules that require a site or user
+ * level connection should be unavailable.
+ */
+ if ( ( new Status() )->is_offline_mode() ) {
+ return ! ( $module['requires_connection'] || $module['requires_user_connection'] );
+ }
+
+ /*
+ * Jetpack not connected.
+ */
+ if ( ! Jetpack::is_connection_ready() ) {
+ return false;
+ }
+
+ /*
+ * Jetpack connected at a site level only. Make sure to make
+ * modules that require a user connection unavailable.
+ */
+ if ( ! Jetpack::connection()->has_connected_owner() && $module['requires_user_connection'] ) {
+ return false;
+ }
+
+ return Jetpack_Plan::supports( $module['module'] );
+
+ }
+
+ /**
+ * Returns why a module is unavailable.
+ *
+ * @param array $module The module.
+ * @return string|false A string stating why the module is not available or false if the module is available.
+ */
+ public static function get_module_unavailable_reason( $module ) {
+ if ( ! is_array( $module ) || empty( $module ) ) {
+ return false;
+ }
+
+ if ( self::is_module_available( $module ) ) {
+ return false;
+ }
+
+ /**
+ * We never want to show VaultPress as activatable through Jetpack so return an empty string.
+ */
+ if ( 'vaultpress' === $module['module'] ) {
+ return '';
+ }
+
+ /*
+ * WooCommerce Analytics should only be available
+ * when running WooCommerce 3+
+ */
+ if (
+ 'woocommerce-analytics' === $module['module']
+ && (
+ ! class_exists( 'WooCommerce' )
+ || version_compare( WC_VERSION, '3.0', '<' )
+ )
+ ) {
+ return __( 'Requires WooCommerce 3+ plugin', 'jetpack' );
+ }
+
+ /*
+ * In Offline mode, modules that require a site or user
+ * level connection should be unavailable.
+ */
+ if ( ( new Status() )->is_offline_mode() ) {
+ if ( $module['requires_connection'] || $module['requires_user_connection'] ) {
+ return __( 'Offline mode', 'jetpack' );
}
+ }
+
+ /*
+ * Jetpack not connected.
+ */
+ if ( ! Jetpack::is_connection_ready() ) {
+ return __( 'Jetpack is not connected', 'jetpack' );
+ }
+
+ /*
+ * Jetpack connected at a site level only and module requires a user connection.
+ */
+ if ( ! Jetpack::connection()->has_connected_owner() && $module['requires_user_connection'] ) {
+ return __( 'Requires a connected WordPress.com account', 'jetpack' );
+ }
- return Jetpack_Plan::supports( $module['module'] );
+ /*
+ * Plan restrictions.
+ */
+ if ( ! Jetpack_Plan::supports( $module['module'] ) ) {
+ return __( 'Not supported by current plan', 'jetpack' );
}
+
+ return '';
}
function handle_unrecognized_action( $action ) {
@@ -275,5 +428,46 @@ class Jetpack_Admin {
jetpack_require_lib( 'debugger' );
Jetpack_Debugger::jetpack_debug_display_handler();
}
+
+ /**
+ * Determines if JITMs should display on a particular screen.
+ *
+ * @param bool $value The default value of the filter.
+ * @param string $screen_id The ID of the screen being tested for JITM display.
+ *
+ * @return bool True if JITMs should display, false otherwise.
+ */
+ public function should_display_jitms_on_screen( $value, $screen_id ) {
+ // Disable all JITMs on these pages.
+ if (
+ in_array(
+ $screen_id,
+ array(
+ 'jetpack_page_akismet-key-config',
+ 'admin_page_jetpack_modules',
+ ),
+ true
+ ) ) {
+ return false;
+ }
+
+ // Disable all JITMs on pages where the recommendations banner is displaying.
+ if (
+ in_array(
+ $screen_id,
+ array(
+ 'dashboard',
+ 'plugins',
+ 'jetpack_page_stats',
+ ),
+ true
+ )
+ && \Jetpack_Recommendations_Banner::can_be_displayed()
+ ) {
+ return false;
+ }
+
+ return $value;
+ }
}
Jetpack_Admin::init();
diff --git a/plugins/jetpack/class.jetpack-autoupdate.php b/plugins/jetpack/class.jetpack-autoupdate.php
index fde4a210..c94b9225 100644
--- a/plugins/jetpack/class.jetpack-autoupdate.php
+++ b/plugins/jetpack/class.jetpack-autoupdate.php
@@ -74,7 +74,7 @@ class Jetpack_Autoupdate {
// Plugins
$autoupdate_plugin_translations = Jetpack_Options::get_option( 'autoupdate_plugins_translations', array() );
- $autoupdate_plugin_list = Jetpack_Options::get_option( 'autoupdate_plugins', array() );
+ $autoupdate_plugin_list = (array) get_site_option( 'auto_update_plugins', array() );
$plugin_files = array_unique( array_merge( $autoupdate_plugin_list, $autoupdate_plugin_translations ) );
$plugin_slugs = array_map( array( __CLASS__, 'get_plugin_slug' ), $plugin_files );
diff --git a/plugins/jetpack/class.jetpack-bbpress-json-api.compat.php b/plugins/jetpack/class.jetpack-bbpress-json-api.compat.php
new file mode 100644
index 00000000..2cff7e5f
--- /dev/null
+++ b/plugins/jetpack/class.jetpack-bbpress-json-api.compat.php
@@ -0,0 +1,8 @@
+<?php
+/**
+ * Deprecated. Moved to /3rd-party/ directory.
+ *
+ * @package automattic/jetpack
+ */
+
+// See 3rd-party/class.jetpack-bbpress-json-api.compat.php.
diff --git a/plugins/jetpack/class.jetpack-cli.php b/plugins/jetpack/class.jetpack-cli.php
index f1da8000..0d19310c 100644
--- a/plugins/jetpack/class.jetpack-cli.php
+++ b/plugins/jetpack/class.jetpack-cli.php
@@ -1,16 +1,18 @@
<?php
-WP_CLI::add_command( 'jetpack', 'Jetpack_CLI' );
-
use Automattic\Jetpack\Connection\Client;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Identity_Crisis;
use Automattic\Jetpack\Status;
use Automattic\Jetpack\Sync\Actions;
use Automattic\Jetpack\Sync\Listener;
+use Automattic\Jetpack\Sync\Modules;
use Automattic\Jetpack\Sync\Queue;
use Automattic\Jetpack\Sync\Settings;
+WP_CLI::add_command( 'jetpack', 'Jetpack_CLI' );
+
/**
* Control your local Jetpack installation.
*/
@@ -63,7 +65,7 @@ class Jetpack_CLI extends WP_CLI_Command {
$cxntests->output_results_for_cli();
- WP_CLI::error( __( 'Jetpack connection is broken.', 'jetpack' ) ); // Exit CLI.
+ WP_CLI::error( __( 'One or more tests did not pass. Please investigate!', 'jetpack' ) ); // Exit CLI.
}
/* translators: %s is current version of Jetpack, for example 7.3 */
@@ -131,7 +133,7 @@ class Jetpack_CLI extends WP_CLI_Command {
/* translators: %s is the site URL */
WP_CLI::line( sprintf( __( 'Testing connection for %s', 'jetpack' ), esc_url( get_site_url() ) ) );
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
WP_CLI::error( __( 'Jetpack is not currently connected to WordPress.com', 'jetpack' ) );
}
@@ -170,21 +172,21 @@ class Jetpack_CLI extends WP_CLI_Command {
*
* user <user_identifier>: Disconnect a specific user from WordPress.com.
*
- * Please note, the primary account that the blog is connected
- * to WordPress.com with cannot be disconnected without
- * disconnecting the entire blog.
+ * [--force]
+ * If the user ID provided is the connection owner, it will only be disconnected if --force is passed
*
* ## EXAMPLES
*
* wp jetpack disconnect blog
* wp jetpack disconnect user 13
+ * wp jetpack disconnect user 1 --force
* wp jetpack disconnect user username
* wp jetpack disconnect user email@domain.com
*
- * @synopsis <blog|user> [<user_identifier>]
+ * @synopsis <blog|user> [<user_identifier>] [--force]
*/
public function disconnect( $args, $assoc_args ) {
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
WP_CLI::success( __( 'The site is not currently connected, so nothing to do!', 'jetpack' ) );
return;
}
@@ -216,6 +218,8 @@ class Jetpack_CLI extends WP_CLI_Command {
}
}
+ $force_user_disconnect = ! empty( $assoc_args['force'] );
+
switch ( $action ) {
case 'blog':
Jetpack::log( 'disconnect' );
@@ -229,12 +233,23 @@ class Jetpack_CLI extends WP_CLI_Command {
);
break;
case 'user':
- if ( Connection_Manager::disconnect_user( $user->ID ) ) {
+ $connection_manager = new Connection_Manager( 'jetpack' );
+ $disconnected = $connection_manager->disconnect_user( $user->ID, $force_user_disconnect );
+ if ( $disconnected ) {
Jetpack::log( 'unlink', $user->ID );
WP_CLI::success( __( 'User has been successfully disconnected.', 'jetpack' ) );
} else {
- /* translators: %s is a username */
- WP_CLI::error( sprintf( __( "User %s could not be disconnected. Are you sure they're connected currently?", 'jetpack' ), "{$user->login} <{$user->email}>" ) );
+ if ( ! $connection_manager->is_user_connected( $user->ID ) ) {
+ /* translators: %s is a username */
+ $error_message = sprintf( __( 'User %s could not be disconnected because it is not connected!', 'jetpack' ), "{$user->data->user_login} <{$user->data->user_email}>" );
+ } elseif ( ! $force_user_disconnect && $connection_manager->is_connection_owner( $user->ID ) ) {
+ /* translators: %s is a username */
+ $error_message = sprintf( __( 'User %s could not be disconnected because it is the connection owner! If you want to disconnect in anyway, use the --force parameter.', 'jetpack' ), "{$user->data->user_login} <{$user->data->user_email}>" );
+ } else {
+ /* translators: %s is a username */
+ $error_message = sprintf( __( 'User %s could not be disconnected.', 'jetpack' ), "{$user->data->user_login} <{$user->data->user_email}>" );
+ }
+ WP_CLI::error( $error_message );
}
break;
case 'prompt':
@@ -563,20 +578,20 @@ class Jetpack_CLI extends WP_CLI_Command {
*
* ## OPTIONS
*
- * whitelist: Whitelist an IP address. You can also read or clear the whitelist.
+ * allow: Add an IP address to an always allow list. You can also read or clear the allow list.
*
*
* ## EXAMPLES
*
- * wp jetpack protect whitelist <ip address>
- * wp jetpack protect whitelist list
- * wp jetpack protect whitelist clear
+ * wp jetpack protect allow <ip address>
+ * wp jetpack protect allow list
+ * wp jetpack protect allow clear
*
- * @synopsis <whitelist> [<ip|ip_low-ip_high|list|clear>]
+ * @synopsis <allow> [<ip|ip_low-ip_high|list|clear>]
*/
public function protect( $args, $assoc_args ) {
$action = isset( $args[0] ) ? $args[0] : 'prompt';
- if ( ! in_array( $action, array( 'whitelist' ) ) ) {
+ if ( ! in_array( $action, array( 'whitelist', 'allow' ), true ) ) { // Still allow "whitelist" for legacy support.
/* translators: %s is a command like "prompt" */
WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) );
}
@@ -585,96 +600,96 @@ class Jetpack_CLI extends WP_CLI_Command {
/* translators: %s is a module name */
WP_CLI::error( sprintf( _x( '%1$s is not active. You can activate it with "wp jetpack module activate %2$s"', '"wp jetpack module activate" is a command - do not translate', 'jetpack' ), __FUNCTION__, __FUNCTION__ ) );
}
- if ( in_array( $action, array( 'whitelist' ) ) ) {
+ if ( in_array( $action, array( 'allow', 'whitelist' ), true ) ) {
if ( isset( $args[1] ) ) {
- $action = 'whitelist';
+ $action = 'allow';
} else {
$action = 'prompt';
}
}
switch ( $action ) {
- case 'whitelist':
- $whitelist = array();
- $new_ip = $args[1];
- $current_whitelist = get_site_option( 'jetpack_protect_whitelist', array() );
+ case 'allow':
+ $allow = array();
+ $new_ip = $args[1];
+ $current_allow = get_site_option( 'jetpack_protect_whitelist', array() ); // @todo Update the option name.
- // Build array of IPs that are already whitelisted.
+ // Build array of IPs that are already on the allowed list.
// Re-build manually instead of using jetpack_protect_format_whitelist() so we can easily get
// low & high range params for jetpack_protect_ip_address_is_in_range();
- foreach ( $current_whitelist as $whitelisted ) {
+ foreach ( $current_allow as $allowed ) {
// IP ranges
- if ( $whitelisted->range ) {
+ if ( $allowed->range ) {
- // Is it already whitelisted?
- if ( jetpack_protect_ip_address_is_in_range( $new_ip, $whitelisted->range_low, $whitelisted->range_high ) ) {
+ // Is it already on the allowed list?
+ if ( jetpack_protect_ip_address_is_in_range( $new_ip, $allowed->range_low, $allowed->range_high ) ) {
/* translators: %s is an IP address */
- WP_CLI::error( sprintf( __( '%s has already been whitelisted', 'jetpack' ), $new_ip ) );
+ WP_CLI::error( sprintf( __( '%s is already on the always allow list.', 'jetpack' ), $new_ip ) );
break;
}
- $whitelist[] = $whitelisted->range_low . ' - ' . $whitelisted->range_high;
+ $allow[] = $allowed->range_low . ' - ' . $allowed->range_high;
} else { // Individual IPs
- // Check if the IP is already whitelisted (single IP only)
- if ( $new_ip == $whitelisted->ip_address ) {
+ // Check if the IP is already on the allow list (single IP only).
+ if ( $new_ip === $allowed->ip_address ) {
/* translators: %s is an IP address */
- WP_CLI::error( sprintf( __( '%s has already been whitelisted', 'jetpack' ), $new_ip ) );
+ WP_CLI::error( sprintf( __( '%s is already on the always allow list.', 'jetpack' ), $new_ip ) );
break;
}
- $whitelist[] = $whitelisted->ip_address;
+ $allow[] = $allowed->ip_address;
}
}
/*
- * List the whitelist
- * Done here because it's easier to read the $whitelist array after it's been rebuilt
+ * List the allowed IPs.
+ * Done here because it's easier to read the $allow array after it's been rebuilt.
*/
if ( isset( $args[1] ) && 'list' == $args[1] ) {
- if ( ! empty( $whitelist ) ) {
- WP_CLI::success( __( 'Here are your whitelisted IPs:', 'jetpack' ) );
- foreach ( $whitelist as $ip ) {
+ if ( ! empty( $allow ) ) {
+ WP_CLI::success( __( 'Here are your always allowed IPs:', 'jetpack' ) );
+ foreach ( $allow as $ip ) {
WP_CLI::line( "\t" . str_pad( $ip, 24 ) );
}
} else {
- WP_CLI::line( __( 'Whitelist is empty.', 'jetpack' ) );
+ WP_CLI::line( __( 'Always allow list is empty.', 'jetpack' ) );
}
break;
}
/*
- * Clear the whitelist
+ * Clear the always allow list.
*/
if ( isset( $args[1] ) && 'clear' == $args[1] ) {
- if ( ! empty( $whitelist ) ) {
- $whitelist = array();
- jetpack_protect_save_whitelist( $whitelist );
- WP_CLI::success( __( 'Cleared all whitelisted IPs', 'jetpack' ) );
+ if ( ! empty( $allow ) ) {
+ $allow = array();
+ jetpack_protect_save_whitelist( $allow ); // @todo Need to update function name in the Protect module.
+ WP_CLI::success( __( 'Cleared all IPs from the always allow list.', 'jetpack' ) );
} else {
- WP_CLI::line( __( 'Whitelist is empty.', 'jetpack' ) );
+ WP_CLI::line( __( 'Always allow list is empty.', 'jetpack' ) );
}
break;
}
- // Append new IP to whitelist array
- array_push( $whitelist, $new_ip );
+ // Append new IP to allow array.
+ array_push( $allow, $new_ip );
- // Save whitelist if there are no errors
- $result = jetpack_protect_save_whitelist( $whitelist );
+ // Save allow list if there are no errors.
+ $result = jetpack_protect_save_whitelist( $allow ); // @todo Need to update function name in the Protect module.
if ( is_wp_error( $result ) ) {
WP_CLI::error( $result );
}
/* translators: %s is an IP address */
- WP_CLI::success( sprintf( __( '%s has been whitelisted.', 'jetpack' ), $new_ip ) );
+ WP_CLI::success( sprintf( __( '%s has been added to the always allowed list.', 'jetpack' ), $new_ip ) );
break;
case 'prompt':
WP_CLI::error(
__( 'No command found.', 'jetpack' ) . "\n" .
- __( 'Please enter the IP address you want to whitelist.', 'jetpack' ) . "\n" .
- _x( 'You can save a range of IPs {low_range}-{high_range}. No spaces allowed. (example: 1.1.1.1-2.2.2.2)', 'Instructions on how to whitelist IP ranges - low_range/high_range should be translated.', 'jetpack' ) . "\n" .
- _x( "You can also 'list' or 'clear' the whitelist.", "'list' and 'clear' are commands and should not be translated", 'jetpack' ) . "\n"
+ __( 'Please enter the IP address you want to always allow.', 'jetpack' ) . "\n" .
+ _x( 'You can save a range of IPs {low_range}-{high_range}. No spaces allowed. (example: 1.1.1.1-2.2.2.2)', 'Instructions on how to add IP ranges - low_range/high_range should be translated.', 'jetpack' ) . "\n" .
+ _x( "You can also 'list' or 'clear' the always allowed list.", "'list' and 'clear' are commands and should not be translated", 'jetpack' ) . "\n"
);
break;
}
@@ -728,7 +743,7 @@ class Jetpack_CLI extends WP_CLI_Command {
// Bail if the option isn't found
$option = isset( $args[1] ) ? Jetpack_Options::get_option( $args[1] ) : false;
if ( isset( $args[1] ) && ! $option && 'update' !== $args[0] ) {
- WP_CLI::error( __( 'Option not found or is empty. Use "list" to list option names', 'jetpack' ) );
+ WP_CLI::error( __( 'Option not found or is empty. Use "list" to list option names', 'jetpack' ) );
}
// Let's print_r the option if it's an array
@@ -896,19 +911,22 @@ class Jetpack_CLI extends WP_CLI_Command {
break;
case 'start':
if ( ! Actions::sync_allowed() ) {
- if ( ! Settings::get_setting( 'disable' ) ) {
+ if ( Settings::get_setting( 'disable' ) ) {
WP_CLI::error( __( 'Jetpack sync is not currently allowed for this site. It is currently disabled. Run `wp jetpack sync enable` to enable it.', 'jetpack' ) );
return;
}
- if ( doing_action( 'jetpack_user_authorized' ) || Jetpack::is_active() ) {
- WP_CLI::error( __( 'Jetpack sync is not currently allowed for this site. Jetpack is not connected.', 'jetpack' ) );
- return;
+ $connection = new Connection_Manager();
+ if ( ! $connection->is_connected() ) {
+ if ( ! doing_action( 'jetpack_site_registered' ) ) {
+ WP_CLI::error( __( 'Jetpack sync is not currently allowed for this site. Jetpack is not connected.', 'jetpack' ) );
+ return;
+ }
}
$status = new Status();
- if ( $status->is_development_mode() ) {
- WP_CLI::error( __( 'Jetpack sync is not currently allowed for this site. The site is in development mode.', 'jetpack' ) );
+ if ( $status->is_offline_mode() ) {
+ WP_CLI::error( __( 'Jetpack sync is not currently allowed for this site. The site is in offline mode.', 'jetpack' ) );
return;
}
if ( $status->is_staging_site() ) {
@@ -997,6 +1015,11 @@ class Jetpack_CLI extends WP_CLI_Command {
} else {
WP_CLI::log( __( 'Sent more data to WordPress.com', 'jetpack' ) );
}
+
+ // Immediate Full Sync does not wait for WP.com to process data so we need to enforce a wait.
+ if ( false !== strpos( get_class( Modules::get_module( 'full-sync' ) ), 'Full_Sync_Immediately' ) ) {
+ sleep( 15 );
+ }
}
$i++;
} while ( $result && ! is_wp_error( $result ) );
@@ -1101,7 +1124,7 @@ class Jetpack_CLI extends WP_CLI_Command {
$this->partner_provision_error( new WP_Error( 'missing_access_token', __( 'Missing or invalid access token', 'jetpack' ) ) );
}
- if ( Jetpack::validate_sync_error_idc_option() ) {
+ if ( Identity_Crisis::validate_sync_error_idc_option() ) {
$this->partner_provision_error(
new WP_Error(
'site_in_safe_mode',
@@ -1113,7 +1136,8 @@ class Jetpack_CLI extends WP_CLI_Command {
$site_identifier = Jetpack_Options::get_option( 'id' );
if ( ! $site_identifier ) {
- $site_identifier = Jetpack::build_raw_urls( get_home_url() );
+ $status = new Status();
+ $site_identifier = $status->get_site_suffix();
}
$request = array(
@@ -1125,7 +1149,7 @@ class Jetpack_CLI extends WP_CLI_Command {
'method' => 'POST',
);
- $url = sprintf( 'https://%s/rest/v1.3/jpphp/%s/partner-cancel', $this->get_api_host(), $site_identifier );
+ $url = sprintf( '%s/rest/v1.3/jpphp/%s/partner-cancel', $this->get_api_host(), $site_identifier );
if ( ! empty( $named_args ) && ! empty( $named_args['partner_tracking_id'] ) ) {
$url = esc_url_raw( add_query_arg( 'partner_tracking_id', $named_args['partner_tracking_id'], $url ) );
}
@@ -1231,7 +1255,7 @@ class Jetpack_CLI extends WP_CLI_Command {
* @synopsis <rebuild> [--purge]
*/
public function sitemap( $args, $assoc_args ) {
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
WP_CLI::error( __( 'Jetpack is not currently connected to WordPress.com', 'jetpack' ) );
}
if ( ! Jetpack::is_module_active( 'sitemaps' ) ) {
@@ -1268,14 +1292,14 @@ class Jetpack_CLI extends WP_CLI_Command {
WP_CLI::error( __( 'A non-empty token argument must be passed.', 'jetpack' ) );
}
- $is_master_user = ! Jetpack::is_active();
- $current_user_id = get_current_user_id();
+ $is_connection_owner = ! Jetpack::connection()->has_connected_owner();
+ $current_user_id = get_current_user_id();
- Connection_Utils::update_user_token( $current_user_id, sprintf( '%s.%d', $named_args['token'], $current_user_id ), $is_master_user );
+ ( new Tokens() )->update_user_token( $current_user_id, sprintf( '%s.%d', $named_args['token'], $current_user_id ), $is_connection_owner );
WP_CLI::log( wp_json_encode( $named_args ) );
- if ( $is_master_user ) {
+ if ( $is_connection_owner ) {
/**
* Auto-enable SSO module for new Jetpack Start connections
*
@@ -1327,7 +1351,7 @@ class Jetpack_CLI extends WP_CLI_Command {
* wp jetpack call_api --resource='/sites/%d'
*/
public function call_api( $args, $named_args ) {
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
WP_CLI::error( __( 'Jetpack is not currently connected to WordPress.com', 'jetpack' ) );
}
@@ -1426,7 +1450,7 @@ class Jetpack_CLI extends WP_CLI_Command {
* wp jetpack updload_ssh_creds --host=example.com --ssh-user=example --kpri=key
*/
public function upload_ssh_creds( $args, $named_args ) {
- if ( ! Jetpack::is_active() ) {
+ if ( ! Jetpack::is_connection_ready() ) {
WP_CLI::error( __( 'Jetpack is not currently connected to WordPress.com', 'jetpack' ) );
}
@@ -1606,24 +1630,25 @@ class Jetpack_CLI extends WP_CLI_Command {
* $ wp jetpack publicize disconnect twitter
*/
public function publicize( $args, $named_args ) {
- if ( ! Jetpack::is_active() ) {
- WP_CLI::error( __( 'Jetpack is not currently connected to WordPress.com', 'jetpack' ) );
+ if ( ! Jetpack::connection()->has_connected_owner() ) {
+ WP_CLI::error( __( 'Publicize requires a user-level connection to WordPress.com', 'jetpack' ) );
}
if ( ! Jetpack::is_module_active( 'publicize' ) ) {
WP_CLI::error( __( 'The publicize module is not active.', 'jetpack' ) );
}
- if ( ( new Status() )->is_development_mode() ) {
+ if ( ( new Status() )->is_offline_mode() ) {
if (
! defined( 'JETPACK_DEV_DEBUG' ) &&
! has_filter( 'jetpack_development_mode' ) &&
+ ! has_filter( 'jetpack_offline_mode' ) &&
false === strpos( site_url(), '.' )
) {
- WP_CLI::error( __( "Jetpack is current in development mode because the site url does not contain a '.', which often occurs when dynamically setting the WP_SITEURL constant. While in development mode, the publicize module will not load.", 'jetpack' ) );
+ WP_CLI::error( __( "Jetpack is current in offline mode because the site url does not contain a '.', which often occurs when dynamically setting the WP_SITEURL constant. While in offline mode, the publicize module will not load.", 'jetpack' ) );
}
- WP_CLI::error( __( 'Jetpack is currently in development mode, so the publicize module will not load.', 'jetpack' ) );
+ WP_CLI::error( __( 'Jetpack is currently in offline mode, so the publicize module will not load.', 'jetpack' ) );
}
if ( ! class_exists( 'Publicize' ) ) {
@@ -1783,7 +1808,7 @@ class Jetpack_CLI extends WP_CLI_Command {
private function get_api_host() {
$env_api_host = getenv( 'JETPACK_START_API_HOST', true );
- return $env_api_host ? $env_api_host : JETPACK__WPCOM_JSON_API_HOST;
+ return $env_api_host ? 'https://' . $env_api_host : JETPACK__WPCOM_JSON_API_BASE;
}
private function partner_provision_error( $error ) {
@@ -1890,16 +1915,17 @@ class Jetpack_CLI extends WP_CLI_Command {
$hasKeywords = isset( $assoc_args['keywords'] );
$files = array(
- "$path/$slug.php" => $this->render_block_file(
+ "$path/$slug.php" => $this->render_block_file(
'block-register-php',
array(
- 'slug' => $slug,
- 'title' => $title,
- 'underscoredSlug' => str_replace( '-', '_', $slug ),
- 'jetpackVersion' => substr( JETPACK__VERSION, 0, strpos( JETPACK__VERSION, '.' ) ) . '.x',
+ 'slug' => $slug,
+ 'title' => $title,
+ 'underscoredSlug' => str_replace( '-', '_', $slug ),
+ 'underscoredTitle' => str_replace( ' ', '_', $title ),
+ 'jetpackVersion' => substr( JETPACK__VERSION, 0, strpos( JETPACK__VERSION, '.' ) ) . '.x',
)
),
- "$path/index.js" => $this->render_block_file(
+ "$path/index.js" => $this->render_block_file(
'block-index-js',
array(
'slug' => $slug,
@@ -1919,21 +1945,23 @@ class Jetpack_CLI extends WP_CLI_Command {
'hasKeywords' => $hasKeywords,
)
),
- "$path/editor.js" => $this->render_block_file( 'block-editor-js' ),
- "$path/editor.scss" => $this->render_block_file(
+ "$path/editor.js" => $this->render_block_file( 'block-editor-js' ),
+ "$path/editor.scss" => $this->render_block_file(
'block-editor-scss',
array(
'slug' => $slug,
'title' => $title,
)
),
- "$path/edit.js" => $this->render_block_file(
+ "$path/edit.js" => $this->render_block_file(
'block-edit-js',
array(
'title' => $title,
'className' => str_replace( ' ', '', ucwords( str_replace( '-', ' ', $slug ) ) ),
)
),
+ "$path/icon.js" => $this->render_block_file( 'block-icon-js' ),
+ "$path/attributes.js" => $this->render_block_file( 'block-attributes-js' ),
);
$files_written = array();
@@ -1995,7 +2023,7 @@ class Jetpack_CLI extends WP_CLI_Command {
"--------------------------------------------------------------------------------------------------------------------\n" .
/* translators: the placeholder is a directory path */
esc_html__( 'The files were created at %3$s', 'jetpack' ) . "\n" .
- esc_html__( 'To start using the block, build the blocks with yarn run build-extensions', 'jetpack' ) . "\n" .
+ esc_html__( 'To start using the block, build the blocks with pnpm run build-extensions', 'jetpack' ) . "\n" .
/* translators: the placeholder is a file path */
esc_html__( 'The block slug has been added to the %4$s list at %5$s', 'jetpack' ) . "\n" .
'%6$s' . "\n" .
@@ -2051,7 +2079,7 @@ function jetpack_cli_are_you_sure( $flagged = false, $error_msg = false ) {
if ( ! $flagged ) {
$prompt_message = _x( 'Are you sure? This cannot be undone. Type "yes" to continue:', '"yes" is a command - do not translate.', 'jetpack' );
} else {
- $prompt_message = _x( 'Are you sure? Modifying this option may disrupt your Jetpack connection. Type "yes" to continue.', '"yes" is a command - do not translate.', 'jetpack' );
+ $prompt_message = _x( 'Are you sure? Modifying this option may disrupt your Jetpack connection. Type "yes" to continue.', '"yes" is a command - do not translate.', 'jetpack' );
}
WP_CLI::line( $prompt_message );
diff --git a/plugins/jetpack/class.jetpack-client-server.php b/plugins/jetpack/class.jetpack-client-server.php
index f5e617e0..352c0050 100644
--- a/plugins/jetpack/class.jetpack-client-server.php
+++ b/plugins/jetpack/class.jetpack-client-server.php
@@ -1,10 +1,6 @@
<?php
-use Automattic\Jetpack\Connection\Client;
-use Automattic\Jetpack\Connection\Manager as Connection_Manager;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
-use Automattic\Jetpack\Roles;
-use Automattic\Jetpack\Tracking;
+use Automattic\Jetpack\Connection\Webhooks;
/**
* Client = Plugin
@@ -13,63 +9,52 @@ use Automattic\Jetpack\Tracking;
class Jetpack_Client_Server {
/**
- * Authorizations
+ * Handle the client authorization error.
+ *
+ * @param WP_Error $error The error object.
*/
- function client_authorize() {
- $data = stripslashes_deep( $_GET );
- $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();
-
- $manager = new Connection_Manager();
- $result = $manager->authorize( $data );
-
- if ( is_wp_error( $result ) ) {
- Jetpack::state( 'error', $result->get_error_code() );
-
- $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.
- *
- * @since 4.2.0
- *
- * @param int Jetpack Blog ID.
- */
- do_action( 'jetpack_client_authorized', Jetpack_Options::get_option( 'id' ) );
+ public static function client_authorize_error( $error ) {
+ if ( $error instanceof WP_Error ) {
+ Jetpack::state( 'error', $error->get_error_code() );
}
+ }
- if ( wp_validate_redirect( $redirect ) ) {
- // Exit happens below in $this->do_exit()
- wp_safe_redirect( $redirect );
- } else {
- // Exit happens below in $this->do_exit()
- wp_safe_redirect( Jetpack::admin_url() );
- }
+ /**
+ * The user is already authorized, we set the Jetpack state and adjust the redirect URL.
+ *
+ * @return string
+ */
+ public static function client_authorize_already_authorized_url() {
+ Jetpack::state( 'message', 'already_authorized' );
+ return Jetpack::admin_url();
+ }
- $tracking->record_user_event( 'jpc_client_authorize_success' );
+ /**
+ * The authorization processing has started.
+ */
+ public static function client_authorize_processing() {
+ Jetpack::log( 'authorize' );
+ }
- $this->do_exit();
+ /**
+ * The authorization has completed (successfully or not), and the redirect URL is empty.
+ * We set the Jetpack Dashboard as the default URL.
+ *
+ * @return string
+ */
+ public static function client_authorize_fallback_url() {
+ return Jetpack::admin_url();
}
- /*
- * @deprecated 8.0 Use Automattic\Jetpack\Connection\Manager::authorize() instead.
+ /**
+ * Authorization handler.
+ *
+ * @deprecated since Jetpack 9.5.0
+ * @see Webhooks::handle_authorize()
*/
- function authorize( $data = array() ) {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Automattic\\Jetpack\\Connection\\Manager::authorize' );
- $manager = new Connection_Manager();
- return $manager->authorize( $data );
+ public function client_authorize() {
+ _deprecated_function( __METHOD__, 'jetpack-9.5.0', 'Automattic\\Jetpack\\Connection\\Webhooks::handle_authorize' );
+ ( new Webhooks() )->handle_authorize();
}
public static function deactivate_plugin( $probable_file, $probable_title ) {
@@ -93,20 +78,21 @@ class Jetpack_Client_Server {
}
/**
- * @deprecated since 8.0.0 Use Automattic\Jetpack\Connection\Manager::get_token() instead.
- *
- * @return object|WP_Error
+ * @deprecated since Jetpack 9.5.0
+ * @see Jetpack::init()
*/
- function get_token( $data ) {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Automattic\\Jetpack\\Connection\\Manager\\get_token' );
- return Jetpack::connection()->get_token( $data );
- }
-
public function get_jetpack() {
+ _deprecated_function( __METHOD__, 'jetpack-9.5.0', 'Jetpack::init' );
return Jetpack::init();
}
+ /**
+ * No longer used.
+ *
+ * @deprecated since Jetpack 9.5.0
+ */
public function do_exit() {
+ _deprecated_function( __METHOD__, 'jetpack-9.5.0' );
exit;
}
}
diff --git a/plugins/jetpack/class.jetpack-connection-banner.php b/plugins/jetpack/class.jetpack-connection-banner.php
index 6a0511d3..73317eca 100644
--- a/plugins/jetpack/class.jetpack-connection-banner.php
+++ b/plugins/jetpack/class.jetpack-connection-banner.php
@@ -3,6 +3,9 @@
use Automattic\Jetpack\Assets;
use Automattic\Jetpack\Assets\Logo;
use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+use Automattic\Jetpack\Licensing;
+use Automattic\Jetpack\Redirect;
class Jetpack_Connection_Banner {
/**
@@ -29,6 +32,66 @@ class Jetpack_Connection_Banner {
}
/**
+ * The banner is forcibly displayed.
+ *
+ * @return bool
+ */
+ public static function force_display() {
+ /**
+ * This is an experiment for partners to test. Allow customization of the behavior of pre-connection banners.
+ *
+ * @since 8.6.0
+ *
+ * @param bool $always_show_prompt Should this prompt always appear? Default to false.
+ */
+ return apply_filters( 'jetpack_pre_connection_prompt_helpers', false );
+ }
+
+ /**
+ * Can the banner be displayed for the given screen?
+ *
+ * @param \WP_Screen $current_screen Current WordPress screen.
+ *
+ * @return bool
+ */
+ public static function can_be_displayed( $current_screen ) {
+ $has_connected_owner = Jetpack::connection()->has_connected_owner();
+ $is_connected = Jetpack::is_connection_ready();
+ $has_licenses = ! empty( Licensing::instance()->stored_licenses() );
+
+ // Don't show the connect notice if the site has a connected owner.
+ if ( $has_connected_owner ) {
+ return false;
+ }
+
+ // Don't show the connect notice if a site connection is established and there are no stored licenses.
+ // Stored licenses indicate that a purchased product may not be provisioned yet hence we need to keep
+ // showing the notice to nudge the user to connect in order to have their product(s) provisioned.
+ if ( $is_connected && ! $has_licenses ) {
+ return false;
+ }
+
+ // Kill if banner has been dismissed and the pre-connection helpers filter is not set.
+ if (
+ Jetpack_Options::get_option( 'dismissed_connection_banner' ) &&
+ ! self::force_display()
+ ) {
+ return false;
+ }
+
+ // Don't show the connect notice anywhere but the plugins.php after activating.
+ if ( 'plugins' !== $current_screen->base && 'dashboard' !== $current_screen->base ) {
+ return false;
+ }
+
+ if ( ! current_user_can( 'jetpack_connect' ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
* Given a string for the the banner was added, and an int that represents the slide to
* a URL for, this function returns a connection URL with a from parameter that will
* support split testing.
@@ -48,11 +111,6 @@ class Jetpack_Connection_Banner {
false,
sprintf( 'connect-banner-%s-%s', $jp_version_banner_added, $current_screen->base )
);
- // Add a tracks event corresponding to the A/B version displayed
- $ab_test = Jetpack_Options::get_option( 'ab_connect_banner_green_bar' );
- if ( in_array( $ab_test, array( 'a', 'b' ), true ) ) {
- $url = add_query_arg( 'ab_connect_banner_green_bar', $ab_test, $url );
- }
return add_query_arg( 'auth_approved', 'true', $url );
}
@@ -60,32 +118,25 @@ class Jetpack_Connection_Banner {
* Will initialize hooks to display the new (as of 4.4) connection banner if the current user can
* connect Jetpack, if Jetpack has not been deactivated, and if the current page is the plugins page.
*
- * This method should not be called if the site is connected to WordPress.com or if the site is in development mode.
- *
* @since 4.4.0
* @since 4.5.0 Made the new (as of 4.4) connection banner display to everyone by default.
* @since 5.3.0 Running another split test between 4.4 banner and a new one in 5.3.
* @since 7.2 B test was removed.
+ * @since 9.7 Moved the connection condition checking to this method to fulfill Licensing requirements.
*
* @param $current_screen
*/
function maybe_initialize_hooks( $current_screen ) {
-
- // Kill if banner has been dismissed
- if ( Jetpack_Options::get_option( 'dismissed_connection_banner' ) ) {
- return;
- }
-
- // Don't show the connect notice anywhere but the plugins.php after activating
- if ( 'plugins' !== $current_screen->base && 'dashboard' !== $current_screen->base ) {
+ if ( ! self::can_be_displayed( $current_screen ) ) {
return;
}
- if ( ! current_user_can( 'jetpack_connect' ) ) {
- return;
+ if ( ! empty( Licensing::instance()->stored_licenses() ) ) {
+ add_action( 'admin_notices', array( $this, 'render_license_aware_banner' ) );
+ } else {
+ add_action( 'admin_notices', array( $this, 'render_banner' ) );
}
- add_action( 'admin_notices', array( $this, 'render_banner' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_banner_scripts' ) );
add_action( 'admin_print_styles', array( Jetpack::init(), 'admin_banner_styles' ) );
@@ -95,7 +146,14 @@ class Jetpack_Connection_Banner {
// Only fires immediately after plugin activation
if ( get_transient( 'activated_jetpack' ) ) {
- add_action( 'admin_notices', array( $this, 'render_connect_prompt_full_screen' ) );
+ if (
+ ! \Jetpack_Options::get_option( 'has_seen_wc_connection_modal', false )
+ && in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', Jetpack::get_active_plugins() ), true )
+ ) {
+ wp_safe_redirect( Jetpack::admin_url( 'page=jetpack#/woo-setup' ) );
+ } else {
+ add_action( 'admin_notices', array( $this, 'render_connect_prompt_full_screen' ) );
+ }
delete_transient( 'activated_jetpack' );
}
}
@@ -156,16 +214,12 @@ class Jetpack_Connection_Banner {
$jetpackApiUrl = wp_parse_url( Jetpack::connection()->api_url( '' ) );
- // Due to the limitation in how 3rd party cookies are handled in Safari,
- // we're falling back to the original flow on Safari desktop and mobile.
- if ( $is_safari ) {
- $force_variation = 'original';
- } elseif ( Constants::is_true( 'JETPACK_SHOULD_USE_CONNECTION_IFRAME' ) ) {
- $force_variation = 'in_place';
- } elseif ( Constants::is_defined( 'JETPACK_SHOULD_USE_CONNECTION_IFRAME' ) ) {
+ // Due to the limitation in how 3rd party cookies are handled in Safari and Opera,
+ // we're falling back to the original flow.
+ if ( $is_safari || User_Agent_Info::is_opera_desktop() || Constants::is_true( 'JETPACK_SHOULD_NOT_USE_CONNECTION_IFRAME' ) ) {
$force_variation = 'original';
} else {
- $force_variation = null;
+ $force_variation = 'in_place';
}
$tracking = new Automattic\Jetpack\Tracking();
@@ -184,7 +238,7 @@ class Jetpack_Connection_Banner {
'forceVariation' => $force_variation,
'connectInPlaceUrl' => Jetpack::admin_url( 'page=jetpack#/setup' ),
'dashboardUrl' => Jetpack::admin_url( 'page=jetpack#/dashboard' ),
- 'plansPromptUrl' => Jetpack::admin_url( 'page=jetpack#/plans-prompt' ),
+ 'plansPromptUrl' => Redirect::get_url( 'jetpack-connect-plans' ),
'identity' => $identity,
'preFetchScript' => plugins_url( '_inc/build/admin.js', JETPACK__PLUGIN_FILE ) . '?ver=' . JETPACK__VERSION,
)
@@ -192,47 +246,34 @@ class Jetpack_Connection_Banner {
}
/**
- * Performs an A/B test showing or hiding the green bar at the top of the connection dialog displayed in Dashboard or Plugins.
- * We save which version we're showing so we always show the same to the same user.
- * The "A" version displays the green bar at the top.
- * The "B" version doesn't display it.
+ * Renders the new connection banner as of 4.4.0.
*
- * @return void
+ * @since 7.2 Copy and visual elements reduced to show the new focus of Jetpack on Security and Performance.
+ * @since 4.4.0
*/
- function get_ab_banner_top_bar() {
- $ab_test = Jetpack_Options::get_option( 'ab_connect_banner_green_bar' );
- // If it doesn't exist yet, generate it for later use and save it, so we always show the same to this user
- if ( ! $ab_test ) {
- $ab_test = 1 === rand( 1, 2 ) ? 'a' : 'b';
- Jetpack_Options::update_option( 'ab_connect_banner_green_bar', $ab_test );
- }
- if ( 'a' === $ab_test ) {
- ?>
+ public function render_banner() {
+ ?>
+ <div id="message" class="updated jp-wpcom-connect__container">
<div class="jp-wpcom-connect__container-top-text">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><rect x="0" fill="none" width="24" height="24"/><g><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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"/></g></svg>
<span>
<?php esc_html_e( 'You’re almost done. Set up Jetpack to enable powerful security and performance tools for WordPress.', 'jetpack' ); ?>
</span>
</div>
- <?php
- }
- }
-
- /**
- * Renders the new connection banner as of 4.4.0.
- *
- * @since 7.2 Copy and visual elements reduced to show the new focus of Jetpack on Security and Performance.
- * @since 4.4.0
- */
- function render_banner() {
- ?>
- <div id="message" class="updated jp-wpcom-connect__container">
- <?php $this->get_ab_banner_top_bar(); ?>
<div class="jp-wpcom-connect__inner-container">
- <span
- class="notice-dismiss connection-banner-dismiss"
- title="<?php esc_attr_e( 'Dismiss this notice', 'jetpack' ); ?>">
- </span>
+
+ <?php
+ if ( ! $this->force_display() ) :
+ ?>
+
+ <span
+ class="notice-dismiss connection-banner-dismiss"
+ title="<?php esc_attr_e( 'Dismiss this notice', 'jetpack' ); ?>">
+ </span>
+
+ <?php
+ endif;
+ ?>
<div class="jp-wpcom-connect__content-container">
@@ -304,6 +345,74 @@ class Jetpack_Connection_Banner {
}
/**
+ * Renders the license-away version of the connection banner.
+ *
+ * @since 9.0.0
+ */
+ public function render_license_aware_banner() {
+ ?>
+ <div id="message" class="updated jp-wpcom-connect__container">
+ <div class="jp-wpcom-connect__inner-container">
+ <div class="jp-wpcom-connect__content-container">
+ <!-- slide 1: intro -->
+ <div class="jp-wpcom-connect__slide jp-wpcom-connect__slide-one jp__slide-is-active">
+
+ <div class="jp-wpcom-connect__content-icon jp-connect-illo">
+ <?php echo ( new Logo() )->render(); ?>
+ <img
+ src="<?php echo esc_url( plugins_url( 'images/jetpack-powering-up.svg', JETPACK__PLUGIN_FILE ) ); ?>"
+ class="jp-wpcom-connect__hide-phone-and-smaller"
+ alt="
+ <?php
+ esc_attr_e(
+ 'Jetpack premium services offer even more powerful performance, security, and revenue tools to help you keep your site safe, fast, and help generate income.',
+ 'jetpack'
+ );
+ ?>
+ "
+ height="auto"
+ width="225"
+ />
+ </div>
+
+ <div class="jp-wpcom-connect__slide-text">
+ <h2 class="jp-wpcom-connect__quest">
+ <svg class="gridicon gridicons-notice jp-wpcom-connect__quest-marker" height="38" width="38" viewBox="0 0 24 24">
+ <g>
+ <rect x="8" y="6" width="8" height="12" style="fill:#000000" />
+ <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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"></path>
+ </g>
+ </svg>
+ <?php esc_html_e( 'Your Jetpack purchase needs completion! Please set up the plugin for your subscription.', 'jetpack' ); ?>
+ </h2>
+
+ <p>
+ <?php
+ esc_html_e(
+ 'Jetpack offers security, performance, and marketing tools made for WordPress sites by WordPress experts. Set up Jetpack to enable new features for this site; don\'t let your subscription go to waste!',
+ 'jetpack'
+ );
+ ?>
+ </p>
+
+ <div class="jp-banner__button-container">
+ <span class="jp-banner__tos-blurb"><?php jetpack_render_tos_blurb(); ?></span>
+ <a
+ href="<?php echo esc_url( $this->build_connect_url_for_slide( '90' ) ); ?>"
+ class="dops-button is-primary jp-banner__alt-connect-button">
+ <?php esc_html_e( 'Set up Jetpack', 'jetpack' ); ?>
+ </a>
+ </div>
+
+ </div>
+ </div> <!-- end slide 1 -->
+ </div>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
* Renders the full-screen connection prompt. Only shown once and on plugin activation.
*/
public static function render_connect_prompt_full_screen() {
@@ -313,8 +422,10 @@ class Jetpack_Connection_Banner {
} else {
$bottom_connect_url_from = 'landing-page-bottom';
}
+
+ $has_no_owner = ! Jetpack::connection()->has_connected_owner();
?>
- <div class="jp-connect-full__container"><div class="jp-connect-full__container-card">
+ <div class="jp-connect-full__container <?php echo $has_no_owner ? 'jp-jetpack-connect__site_connection' : ''; ?>"><div class="jp-connect-full__container-card">
<?php if ( 'plugins' === $current_screen->base ) : ?>
<?php
@@ -322,15 +433,28 @@ class Jetpack_Connection_Banner {
echo $logo->render();
?>
- <div class="jp-connect-full__dismiss">
- <svg class="jp-connect-full__svg-dismiss" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>Dismiss Jetpack Connection Window</title><rect x="0" fill="none" /><g><path d="M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"/></g></svg>
- </div>
+ <?php
+ if ( ! self::force_display() ) :
+ ?>
+
+ <div class="jp-connect-full__dismiss">
+ <svg class="jp-connect-full__svg-dismiss" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><title>Dismiss Jetpack Connection Window</title><rect x="0" fill="none" /><g><path d="M17.705 7.705l-1.41-1.41L12 10.59 7.705 6.295l-1.41 1.41L10.59 12l-4.295 4.295 1.41 1.41L12 13.41l4.295 4.295 1.41-1.41L13.41 12l4.295-4.295z"/></g></svg>
+ </div>
+
+ <?php
+ endif;
+ ?>
+
<?php endif; ?>
- <div class="jp-connect-full__step-header">
+ <div id="jp-connect-full__step1-header" class="jp-connect-full__step-header">
<h2 class="jp-connect-full__step-header-title"><?php esc_html_e( 'Activate essential WordPress security and performance tools by setting up Jetpack', 'jetpack' ); ?></h2>
</div>
+ <div id="jp-connect-full__step2-header" class="jp-connect-full__step-header">
+ <h2 class="jp-connect-full__step-header-title"><?php esc_html_e( 'Jetpack is activated!', 'jetpack' ); ?><br /><?php esc_html_e( 'Unlock more amazing features by connecting a user account', 'jetpack' ); ?></h2>
+ </div>
+
<p class="jp-connect-full__tos-blurb">
<?php jetpack_render_tos_blurb(); ?>
</p>
@@ -346,57 +470,61 @@ class Jetpack_Connection_Banner {
<div class="jp-connect-full__slide">
<div class="jp-connect-full__slide-card illustration">
<img
- src="<?php echo plugins_url( 'images/security.svg', JETPACK__PLUGIN_FILE ); ?>"
+ src="<?php echo plugins_url( 'images/jetpack-connection-security.svg', JETPACK__PLUGIN_FILE ); ?>"
alt="<?php esc_attr_e( 'Security & Backups', 'jetpack' ); ?>"
/>
</div>
<div class="jp-connect-full__slide-card">
- <p>
- <?php
- esc_html_e(
- 'Jetpack protects you against brute force attacks and unauthorized logins. ' .
- 'Basic protection is always free, while premium plans add unlimited backups of your whole site, ' .
- 'spam protection, malware scanning, and automated fixes.',
- 'jetpack'
- );
- ?>
- </p>
+ <h3><?php esc_html_e( 'Always-on Security', 'jetpack' ); ?></h3>
+ <ul>
+ <li><?php esc_html_e( 'Stay one step ahead of security threats with automatic scanning, one-click fixes, and spam protection.', 'jetpack' ); ?></li>
+ <li><?php esc_html_e( 'Real-time backups save every change and one-click restores get you back online quickly.', 'jetpack' ); ?></li>
+ <li><?php esc_html_e( 'Free protection against brute force attacks and instant notifications if your site goes down.', 'jetpack' ); ?></li>
+ </ul>
</div>
</div>
<div class="jp-connect-full__slide">
<div class="jp-connect-full__slide-card illustration">
<img
- src="<?php echo plugins_url( 'images/jetpack-speed.svg', JETPACK__PLUGIN_FILE ); ?>"
+ src="<?php echo plugins_url( 'images/jetpack-connection-performance.svg', JETPACK__PLUGIN_FILE ); ?>"
alt="<?php esc_attr_e( 'Built-in Performance', 'jetpack' ); ?>"
/>
</div>
<div class="jp-connect-full__slide-card">
- <p>
- <?php
- esc_html_e(
- 'Activate site accelerator tools and watch your page load times decrease—' .
- "we'll optimize your images and serve them from our own powerful global network of servers, " .
- 'and speed up your mobile site to reduce bandwidth usage.',
- 'jetpack'
- );
- ?>
- </p>
+ <h3><?php esc_html_e( 'Built-in Performance', 'jetpack' ); ?></h3>
+ <ul>
+ <li><?php esc_html_e( 'Keep people on your site longer with lightning-fast page load times through our free global CDN.', 'jetpack' ); ?></li>
+ <li><?php esc_html_e( 'Speed up your mobile site and reduce bandwidth usage automatically.', 'jetpack' ); ?></li>
+ <li><?php esc_html_e( 'Improve visitor engagement and sales with a customized search experience.', 'jetpack' ); ?></li>
+ </ul>
</div>
</div>
</div>
+ <h2 class="jp-connect-full__testimonial"><?php esc_html_e( 'More than 5 million WordPress sites trust Jetpack for their website security and performance.', 'jetpack' ); ?></h2>
+
<?php if ( 'plugins' === $current_screen->base ) : ?>
- <p class="jp-connect-full__dismiss-paragraph">
- <a>
- <?php
- echo esc_html_x(
- 'Not now, thank you.',
- 'a link that closes the modal window that offers to connect Jetpack',
- 'jetpack'
- );
- ?>
- </a>
- </p>
+
+ <?php
+ if ( ! self::force_display() ) :
+ ?>
+
+ <p class="jp-connect-full__dismiss-paragraph">
+ <a>
+ <?php
+ echo esc_html_x(
+ 'Not now, thank you.',
+ 'a link that closes the modal window that offers to connect Jetpack',
+ 'jetpack'
+ );
+ ?>
+ </a>
+ </p>
+
+ <?php
+ endif;
+ ?>
+
<?php endif; ?>
</div>
</div>
diff --git a/plugins/jetpack/class.jetpack-data.php b/plugins/jetpack/class.jetpack-data.php
index 6dbb8de2..44b4645f 100644
--- a/plugins/jetpack/class.jetpack-data.php
+++ b/plugins/jetpack/class.jetpack-data.php
@@ -1,13 +1,10 @@
<?php
+/**
+ * Deprecated since 9.5.
+ *
+ * @deprecated
+ * @package automattic/jetpack
+ */
-use Automattic\Jetpack\Connection\Manager as Connection_Manager;
-
-class Jetpack_Data {
- /**
- * @deprecated 7.5 Use Connection_Manager instead.
- */
- public static function get_access_token( $user_id = false, $token_key = false, $suppress_errors = true ) {
- $connection = new Connection_Manager();
- return $connection->get_access_token( $user_id, $token_key, $suppress_errors );
- }
-}
+// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+_deprecated_file( basename( __FILE__ ), 'jetpack-9.5' );
diff --git a/plugins/jetpack/class.jetpack-gutenberg.php b/plugins/jetpack/class.jetpack-gutenberg.php
index 93e6da63..90d25a64 100644
--- a/plugins/jetpack/class.jetpack-gutenberg.php
+++ b/plugins/jetpack/class.jetpack-gutenberg.php
@@ -3,71 +3,33 @@
* Handles server-side registration and use of all blocks and plugins available in Jetpack for the block editor, aka Gutenberg.
* Works in tandem with client-side block registration via `index.json`
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
use Automattic\Jetpack\Constants;
use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Status\Host;
/**
* Wrapper function to safely register a gutenberg block type
*
- * @param string $slug Slug of the block.
- * @param array $args Arguments that are passed into register_block_type.
+ * @deprecated 9.1.0 Use Automattic\\Jetpack\\Blocks::jetpack_register_block instead
*
* @see register_block_type
*
* @since 6.7.0
*
- * @return WP_Block_Type|false The registered block type on success, or false on failure.
- */
-function jetpack_register_block( $slug, $args = array() ) {
- if ( 0 !== strpos( $slug, 'jetpack/' ) && ! strpos( $slug, '/' ) ) {
- _doing_it_wrong( 'jetpack_register_block', 'Prefix the block with jetpack/ ', '7.1.0' );
- $slug = 'jetpack/' . $slug;
- }
-
- // Checking whether block is registered to ensure it isn't registered twice.
- if ( Jetpack_Gutenberg::is_registered( $slug ) ) {
- return false;
- }
-
- return register_block_type( $slug, $args );
-}
-
-/**
- * Helper function to register a Jetpack Gutenberg plugin
- *
- * @deprecated 7.1.0 Use Jetpack_Gutenberg::set_extension_available() instead
- *
- * @param string $slug Slug of the plugin.
- *
- * @since 6.9.0
- *
- * @return void
- */
-function jetpack_register_plugin( $slug ) {
- _deprecated_function( __FUNCTION__, '7.1', 'Jetpack_Gutenberg::set_extension_available' );
-
- Jetpack_Gutenberg::register_plugin( $slug );
-}
-
-/**
- * Set the reason why an extension (block or plugin) is unavailable
- *
- * @deprecated 7.1.0 Use Jetpack_Gutenberg::set_extension_unavailable() instead
- *
* @param string $slug Slug of the block.
- * @param string $reason A string representation of why the extension is unavailable.
- *
- * @since 7.0.0
+ * @param array $args Arguments that are passed into register_block_type.
*
- * @return void
+ * @return WP_Block_Type|false The registered block type on success, or false on failure.
*/
-function jetpack_set_extension_unavailability_reason( $slug, $reason ) {
- _deprecated_function( __FUNCTION__, '7.1', 'Jetpack_Gutenberg::set_extension_unavailable' );
-
- Jetpack_Gutenberg::set_extension_unavailability_reason( $slug, $reason );
+function jetpack_register_block( $slug, $args = array() ) {
+ _deprecated_function( __METHOD__, '9.1.0', 'Automattic\\Jetpack\\Blocks::jetpack_register_block' );
+ return Blocks::jetpack_register_block( $slug, $args );
}
/**
@@ -78,7 +40,7 @@ class Jetpack_Gutenberg {
/**
* Only these extensions can be registered. Used to control availability of beta blocks.
*
- * @var array Extensions whitelist
+ * @var array Extensions allowed list.
*/
private static $extensions = array();
@@ -90,6 +52,67 @@ class Jetpack_Gutenberg {
private static $availability = array();
/**
+ * A cached array of the fully processed availability data. Keeps track of
+ * reasons why an extension is unavailable or missing.
+ *
+ * @var array Extensions availability information.
+ */
+ private static $cached_availability = null;
+
+ /**
+ * Check to see if a minimum version of Gutenberg is available. Because a Gutenberg version is not available in
+ * php if the Gutenberg plugin is not installed, if we know which minimum WP release has the required version we can
+ * optionally fall back to that.
+ *
+ * @param array $version_requirements An array containing the required Gutenberg version and, if known, the WordPress version that was released with this minimum version.
+ * @param string $slug The slug of the block or plugin that has the gutenberg version requirement.
+ *
+ * @since 8.3.0
+ *
+ * @return boolean True if the version of gutenberg required by the block or plugin is available.
+ */
+ public static function is_gutenberg_version_available( $version_requirements, $slug ) {
+ global $wp_version;
+
+ // Bail if we don't at least have the gutenberg version requirement, the WP version is optional.
+ if ( empty( $version_requirements['gutenberg'] ) ) {
+ return false;
+ }
+
+ // If running a local dev build of gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version.
+ if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) {
+ return true;
+ }
+
+ $version_available = false;
+
+ // If running a production build of the gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version
+ // with required version of Gutenberg is known check that.
+ if ( defined( 'GUTENBERG_VERSION' ) ) {
+ $version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' );
+ } elseif ( ! empty( $version_requirements['wp'] ) ) {
+ $version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' );
+ }
+
+ if ( ! $version_available ) {
+ self::set_extension_unavailable(
+ $slug,
+ 'incorrect_gutenberg_version',
+ array(
+ 'required_feature' => $slug,
+ 'required_version' => $version_requirements,
+ 'current_version' => array(
+ 'wp' => $wp_version,
+ 'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null,
+ ),
+ )
+ );
+ }
+
+ return $version_available;
+ }
+
+ /**
* Prepend the 'jetpack/' prefix to a block name
*
* @param string $block_name The block name.
@@ -107,8 +130,8 @@ class Jetpack_Gutenberg {
*
* @return string The unprefixed extension name.
*/
- private static function remove_extension_prefix( $extension_name ) {
- if ( wp_startswith( $extension_name, 'jetpack/' ) || wp_startswith( $extension_name, 'jetpack-' ) ) {
+ public static function remove_extension_prefix( $extension_name ) {
+ if ( 0 === strpos( $extension_name, 'jetpack/' ) || 0 === strpos( $extension_name, 'jetpack-' ) ) {
return substr( $extension_name, strlen( 'jetpack/' ) );
}
return $extension_name;
@@ -127,52 +150,6 @@ class Jetpack_Gutenberg {
}
/**
- * Register a block
- *
- * @deprecated 7.1.0 Use jetpack_register_block() instead
- *
- * @param string $slug Slug of the block.
- * @param array $args Arguments that are passed into register_block_type().
- */
- public static function register_block( $slug, $args ) {
- _deprecated_function( __METHOD__, '7.1', 'jetpack_register_block' );
-
- jetpack_register_block( 'jetpack/' . $slug, $args );
- }
-
- /**
- * Register a plugin
- *
- * @deprecated 7.1.0 Use Jetpack_Gutenberg::set_extension_available() instead
- *
- * @param string $slug Slug of the plugin.
- */
- public static function register_plugin( $slug ) {
- _deprecated_function( __METHOD__, '7.1', 'Jetpack_Gutenberg::set_extension_available' );
-
- self::set_extension_available( $slug );
- }
-
- /**
- * Register a block
- *
- * @deprecated 7.0.0 Use jetpack_register_block() instead
- *
- * @param string $slug Slug of the block.
- * @param array $args Arguments that are passed into the register_block_type.
- * @param array $availability array containing if a block is available and the reason when it is not.
- */
- public static function register( $slug, $args, $availability ) {
- _deprecated_function( __METHOD__, '7.0', 'jetpack_register_block' );
-
- if ( isset( $availability['available'] ) && ! $availability['available'] ) {
- self::set_extension_unavailability_reason( $slug, $availability['unavailable_reason'] );
- } else {
- self::register_block( $slug, $args );
- }
- }
-
- /**
* Set a (non-block) extension as available
*
* @param string $slug Slug of the extension.
@@ -221,21 +198,7 @@ class Jetpack_Gutenberg {
}
/**
- * Set the reason why an extension (block or plugin) is unavailable
- *
- * @deprecated 7.1.0 Use set_extension_unavailable() instead
- *
- * @param string $slug Slug of the extension.
- * @param string $reason A string representation of why the extension is unavailable.
- */
- public static function set_extension_unavailability_reason( $slug, $reason ) {
- _deprecated_function( __METHOD__, '7.1', 'Jetpack_Gutenberg::set_extension_unavailable' );
-
- self::set_extension_unavailable( $slug, $reason );
- }
-
- /**
- * Set up a whitelist of allowed block editor extensions
+ * Set up a list of allowed block editor extensions
*
* @return void
*/
@@ -256,7 +219,18 @@ class Jetpack_Gutenberg {
}
/**
- * Filter the whitelist of block editor extensions that are available through Jetpack.
+ * Alternative to `JETPACK_EXPERIMENTAL_BLOCKS`, set to `true` to load Experimental Blocks.
+ *
+ * @since 8.4.0
+ *
+ * @param boolean
+ */
+ if ( apply_filters( 'jetpack_load_experimental_blocks', false ) ) {
+ Constants::set_constant( 'JETPACK_EXPERIMENTAL_BLOCKS', true );
+ }
+
+ /**
+ * Filter the list of block editor extensions that are available through Jetpack.
*
* @since 7.0.0
*
@@ -265,7 +239,7 @@ class Jetpack_Gutenberg {
self::$extensions = apply_filters( 'jetpack_set_available_extensions', self::get_available_extensions() );
/**
- * Filter the whitelist of block editor plugins that are available through Jetpack.
+ * Filter the list of block editor plugins that are available through Jetpack.
*
* @deprecated 7.0.0 Use jetpack_set_available_extensions instead
*
@@ -276,7 +250,7 @@ class Jetpack_Gutenberg {
self::$extensions = apply_filters( 'jetpack_set_available_blocks', self::$extensions );
/**
- * Filter the whitelist of block editor plugins that are available through Jetpack.
+ * Filter the list of block editor plugins that are available through Jetpack.
*
* @deprecated 7.0.0 Use jetpack_set_available_extensions instead
*
@@ -295,8 +269,9 @@ class Jetpack_Gutenberg {
* @return void
*/
public static function reset() {
- self::$extensions = array();
- self::$availability = array();
+ self::$extensions = array();
+ self::$availability = array();
+ self::$cached_availability = null;
}
/**
@@ -341,11 +316,11 @@ class Jetpack_Gutenberg {
}
/**
- * Returns a whitelist of Jetpack Gutenberg extensions (blocks and plugins), based on index.json
+ * Returns a list of Jetpack Gutenberg extensions (blocks and plugins), based on index.json
*
* @return array A list of blocks: eg [ 'publicize', 'markdown' ]
*/
- public static function get_jetpack_gutenberg_extensions_whitelist() {
+ public static function get_jetpack_gutenberg_extensions_allowed_list() {
$preset_extensions_manifest = self::preset_exists( 'index' )
? self::get_preset( 'index' )
: (object) array();
@@ -355,17 +330,53 @@ class Jetpack_Gutenberg {
}
/**
- * Returns a diff from a combined list of whitelisted extensions and extensions determined to be excluded
+ * Returns a diff from a combined list of allowed extensions and extensions determined to be excluded
*
- * @param array $whitelisted_extensions An array of whitelisted extensions.
+ * @param array $allowed_extensions An array of allowed extensions.
*
* @return array A list of blocks: eg array( 'publicize', 'markdown' )
*/
- public static function get_available_extensions( $whitelisted_extensions = null ) {
- $exclusions = get_option( 'jetpack_excluded_extensions', array() );
- $whitelisted_extensions = is_null( $whitelisted_extensions ) ? self::get_jetpack_gutenberg_extensions_whitelist() : $whitelisted_extensions;
+ public static function get_available_extensions( $allowed_extensions = null ) {
+ $exclusions = get_option( 'jetpack_excluded_extensions', array() );
+ $allowed_extensions = is_null( $allowed_extensions ) ? self::get_jetpack_gutenberg_extensions_allowed_list() : $allowed_extensions;
- return array_diff( $whitelisted_extensions, $exclusions );
+ return array_diff( $allowed_extensions, $exclusions );
+ }
+
+ /**
+ * Return true if the extension has been registered and there's nothing in the availablilty array.
+ *
+ * @param string $extension The name of the extension.
+ *
+ * @return bool whether the extension has been registered and there's nothing in the availablilty array.
+ */
+ public static function is_registered_and_no_entry_in_availability( $extension ) {
+ return self::is_registered( 'jetpack/' . $extension ) && ! isset( self::$availability[ $extension ] );
+ }
+
+ /**
+ * Return true if the extension has a true entry in the availablilty array.
+ *
+ * @param string $extension The name of the extension.
+ *
+ * @return bool whether the extension has a true entry in the availablilty array.
+ */
+ public static function is_available( $extension ) {
+ return isset( self::$availability[ $extension ] ) && true === self::$availability[ $extension ];
+ }
+
+ /**
+ * Get the availability of each block / plugin, or return the cached availability
+ * if it has already been calculated. Avoids re-registering extensions when not
+ * necessary.
+ *
+ * @return array A list of block and plugins and their availability status.
+ */
+ public static function get_cached_availability() {
+ if ( null === self::$cached_availability ) {
+ self::$cached_availability = self::get_availability();
+ }
+ return self::$cached_availability;
}
/**
@@ -377,7 +388,7 @@ class Jetpack_Gutenberg {
/**
* Fires before Gutenberg extensions availability is computed.
*
- * In the function call you supply, use `jetpack_register_block()` to set a block as available.
+ * In the function call you supply, use `Blocks::jetpack_register_block()` to set a block as available.
* Alternatively, use `Jetpack_Gutenberg::set_extension_available()` (for a non-block plugin), and
* `Jetpack_Gutenberg::set_extension_unavailable()` (if the block or plugin should not be registered
* but marked as unavailable).
@@ -389,9 +400,7 @@ class Jetpack_Gutenberg {
$available_extensions = array();
foreach ( self::$extensions as $extension ) {
- $is_available = self::is_registered( 'jetpack/' . $extension ) ||
- ( isset( self::$availability[ $extension ] ) && true === self::$availability[ $extension ] );
-
+ $is_available = self::is_registered_and_no_entry_in_availability( $extension ) || self::is_available( $extension );
$available_extensions[ $extension ] = array(
'available' => $is_available,
);
@@ -442,7 +451,7 @@ class Jetpack_Gutenberg {
* @return bool
*/
public static function should_load() {
- if ( ! Jetpack::is_active() && ! ( new Status() )->is_development_mode() ) {
+ if ( ! Jetpack::is_connection_ready() && ! ( new Status() )->is_offline_mode() ) {
return false;
}
@@ -496,7 +505,16 @@ class Jetpack_Gutenberg {
if ( self::block_has_asset( $style_relative_path ) ) {
$style_version = self::get_asset_version( $style_relative_path );
$view_style = plugins_url( $style_relative_path, JETPACK__PLUGIN_FILE );
- wp_enqueue_style( 'jetpack-block-' . $type, $view_style, array(), $style_version );
+ $view_style = add_query_arg( 'minify', 'false', $view_style );
+
+ // If this is a customizer preview, render the style directly to the preview after autosave.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( is_customize_preview() && ! empty( $_GET['customize_autosaved'] ) ) {
+ // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet
+ echo '<link rel="stylesheet" id="jetpack-block-' . esc_attr( $type ) . '" href="' . esc_attr( $view_style ) . '&amp;ver=' . esc_attr( $style_version ) . '" media="all">';
+ } else {
+ wp_enqueue_style( 'jetpack-block-' . $type, $view_style, array(), $style_version );
+ }
}
}
@@ -505,38 +523,58 @@ class Jetpack_Gutenberg {
* Only enqueue block scripts when needed.
*
* @param string $type Slug of the block.
- * @param array $dependencies Script dependencies. Will be merged with automatically
+ * @param array $script_dependencies Script dependencies. Will be merged with automatically
* detected script dependencies from the webpack build.
*
* @since 7.2.0
*
* @return void
*/
- public static function load_scripts_as_required( $type, $dependencies = array() ) {
+ public static function load_scripts_as_required( $type, $script_dependencies = array() ) {
if ( is_admin() ) {
// A block's view assets will not be required in wp-admin.
return;
}
// Enqueue script.
- $script_relative_path = self::get_blocks_directory() . $type . '/view.js';
- $script_deps_path = JETPACK__PLUGIN_DIR . self::get_blocks_directory() . $type . '/view.asset.php';
- $script_dependencies = array( 'wp-polyfill' );
+ $script_relative_path = self::get_blocks_directory() . $type . '/view.js';
+ $script_deps_path = JETPACK__PLUGIN_DIR . self::get_blocks_directory() . $type . '/view.asset.php';
+ $script_dependencies[] = 'wp-polyfill';
if ( file_exists( $script_deps_path ) ) {
$asset_manifest = include $script_deps_path;
- $script_dependencies = $asset_manifest['dependencies'];
+ $script_dependencies = array_unique( array_merge( $script_dependencies, $asset_manifest['dependencies'] ) );
}
- if ( ( ! class_exists( 'Jetpack_AMP_Support' ) || ! Jetpack_AMP_Support::is_amp_request() ) && self::block_has_asset( $script_relative_path ) ) {
+ if ( ! Blocks::is_amp_request() && self::block_has_asset( $script_relative_path ) ) {
$script_version = self::get_asset_version( $script_relative_path );
$view_script = plugins_url( $script_relative_path, JETPACK__PLUGIN_FILE );
+ $view_script = add_query_arg( 'minify', 'false', $view_script );
+
+ // Enqueue dependencies.
wp_enqueue_script( 'jetpack-block-' . $type, $view_script, $script_dependencies, $script_version, false );
+
+ // If this is a customizer preview, enqueue the dependencies and render the script directly to the preview after autosave.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( is_customize_preview() && ! empty( $_GET['customize_autosaved'] ) ) {
+ // The Map block is dependent on wp-element, and it doesn't appear to to be possible to load
+ // this dynamically into the customizer iframe currently.
+ if ( 'map' === $type ) {
+ echo '<div>' . esc_html_e( 'No map preview available. Publish and refresh to see this widget.', 'jetpack' ) . '</div>';
+ echo '<script>';
+ echo 'Array.from(document.getElementsByClassName(\'wp-block-jetpack-map\')).forEach(function(element){element.style.display = \'none\';})';
+ echo '</script>';
+ } else {
+ echo '<script id="jetpack-block-' . esc_attr( $type ) . '" src="' . esc_attr( $view_script ) . '&amp;ver=' . esc_attr( $script_version ) . '"></script>';
+ }
+ }
}
wp_localize_script(
'jetpack-block-' . $type,
'Jetpack_Block_Assets_Base_Url',
- plugins_url( self::get_blocks_directory(), JETPACK__PLUGIN_FILE )
+ array(
+ 'url' => plugins_url( self::get_blocks_directory(), JETPACK__PLUGIN_FILE ),
+ )
);
}
@@ -576,12 +614,13 @@ class Jetpack_Gutenberg {
return;
}
+ $status = new Status();
+
// Required for Analytics. See _inc/lib/admin-pages/class.jetpack-admin-page.php.
- if ( ! ( new Status() )->is_development_mode() && Jetpack::is_active() ) {
+ if ( ! $status->is_offline_mode() && Jetpack::is_connection_ready() ) {
wp_enqueue_script( 'jp-tracks', '//stats.wp.com/w.js', array(), gmdate( 'YW' ), true );
}
- $rtl = is_rtl() ? '.rtl' : '';
$blocks_dir = self::get_blocks_directory();
$blocks_variation = self::blocks_variation();
@@ -591,52 +630,41 @@ class Jetpack_Gutenberg {
$blocks_env = '';
}
- $editor_script = plugins_url( "{$blocks_dir}editor{$blocks_env}.js", JETPACK__PLUGIN_FILE );
- $editor_style = plugins_url( "{$blocks_dir}editor{$blocks_env}{$rtl}.css", JETPACK__PLUGIN_FILE );
-
- $editor_deps_path = JETPACK__PLUGIN_DIR . $blocks_dir . "editor{$blocks_env}.asset.php";
- $editor_deps = array( 'wp-polyfill' );
- if ( file_exists( $editor_deps_path ) ) {
- $asset_manifest = include $editor_deps_path;
- $editor_deps = $asset_manifest['dependencies'];
- }
-
- $version = Jetpack::is_development_version() && file_exists( JETPACK__PLUGIN_DIR . $blocks_dir . 'editor.js' )
- ? filemtime( JETPACK__PLUGIN_DIR . $blocks_dir . 'editor.js' )
- : JETPACK__VERSION;
-
- if ( method_exists( 'Jetpack', 'build_raw_urls' ) ) {
- $site_fragment = Jetpack::build_raw_urls( home_url() );
- } elseif ( class_exists( 'WPCOM_Masterbar' ) && method_exists( 'WPCOM_Masterbar', 'get_calypso_site_slug' ) ) {
- $site_fragment = WPCOM_Masterbar::get_calypso_site_slug( get_current_blog_id() );
- } else {
- $site_fragment = '';
- }
-
- wp_enqueue_script(
+ Assets::register_script(
'jetpack-blocks-editor',
- $editor_script,
- $editor_deps,
- $version,
- false
+ "{$blocks_dir}editor{$blocks_env}.js",
+ JETPACK__PLUGIN_FILE,
+ array( 'textdomain' => 'jetpack' )
);
+ // Hack around #20357 (specifically, that the editor bundle depends on
+ // wp-edit-post but wp-edit-post's styles break the Widget Editor and
+ // Site Editor) until a real fix gets unblocked.
+ // @todo Remove this once #20357 is properly fixed.
+ wp_styles()->query( 'jetpack-blocks-editor', 'registered' )->deps = array();
+
+ Assets::enqueue_script( 'jetpack-blocks-editor' );
+
wp_localize_script(
'jetpack-blocks-editor',
'Jetpack_Block_Assets_Base_Url',
- plugins_url( $blocks_dir . '/', JETPACK__PLUGIN_FILE )
+ array(
+ 'url' => plugins_url( $blocks_dir . '/', JETPACK__PLUGIN_FILE ),
+ )
);
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $user = wp_get_current_user();
- $user_data = array(
+ $user = wp_get_current_user();
+ $user_data = array(
'userid' => $user->ID,
'username' => $user->user_login,
);
- $blog_id = get_current_blog_id();
+ $blog_id = get_current_blog_id();
+ $is_current_user_connected = true;
} else {
- $user_data = Jetpack_Tracks_Client::get_connected_user_tracks_identity();
- $blog_id = Jetpack_Options::get_option( 'id', 0 );
+ $user_data = Jetpack_Tracks_Client::get_connected_user_tracks_identity();
+ $blog_id = Jetpack_Options::get_option( 'id', 0 );
+ $is_current_user_connected = ( new Connection_Manager( 'jetpack' ) )->is_user_connected();
}
wp_localize_script(
@@ -644,16 +672,31 @@ class Jetpack_Gutenberg {
'Jetpack_Editor_Initial_State',
array(
'available_blocks' => self::get_availability(),
- 'jetpack' => array( 'is_active' => Jetpack::is_active() ),
- 'siteFragment' => $site_fragment,
+ 'jetpack' => array(
+ 'is_active' => Jetpack::is_connection_ready(),
+ 'is_current_user_connected' => $is_current_user_connected,
+ /** This filter is documented in class.jetpack-gutenberg.php */
+ 'enable_upgrade_nudge' => apply_filters( 'jetpack_block_editor_enable_upgrade_nudge', false ),
+ 'is_private_site' => '-1' === get_option( 'blog_public' ),
+ 'is_offline_mode' => $status->is_offline_mode(),
+ /**
+ * Enable the RePublicize UI in the block editor context.
+ *
+ * @module publicize
+ *
+ * @since 10.3.0
+ *
+ * @param bool true Enable the RePublicize UI in the block editor context. Defaults to true.
+ */
+ 'republicize_enabled' => apply_filters( 'jetpack_block_editor_republicize_feature', true ),
+ ),
+ 'siteFragment' => $status->get_site_suffix(),
+ 'adminUrl' => esc_url( admin_url() ),
'tracksUserData' => $user_data,
'wpcomBlogId' => $blog_id,
+ 'allowedMimeTypes' => wp_get_mime_types(),
)
);
-
- wp_set_script_translations( 'jetpack-blocks-editor', 'jetpack' );
-
- wp_enqueue_style( 'jetpack-blocks-editor', $editor_style, array(), $version );
}
/**
@@ -679,6 +722,37 @@ class Jetpack_Gutenberg {
}
/**
+ * Loads PHP components of block editor extensions.
+ *
+ * @since 8.9.0
+ */
+ public static function load_block_editor_extensions() {
+ if ( self::should_load() ) {
+ // Block editor extensions to load.
+ $extensions_to_load = array(
+ 'extended-blocks',
+ 'plugins',
+ );
+
+ // Collect the extension paths.
+ foreach ( $extensions_to_load as $extension_to_load ) {
+ $extensions_folder = glob( JETPACK__PLUGIN_DIR . 'extensions/' . $extension_to_load . '/*' );
+
+ // Require each of the extension files, in case it exists.
+ foreach ( $extensions_folder as $extension_folder ) {
+ $name = basename( $extension_folder );
+ $extension_file_path = JETPACK__PLUGIN_DIR . 'extensions/' . $extension_to_load . '/' . $name . '/' . $name . '.php';
+
+ if ( file_exists( $extension_file_path ) ) {
+ include_once $extension_file_path;
+ }
+ }
+ };
+
+ }
+ }
+
+ /**
* Get CSS classes for a block.
*
* @since 7.7.0
@@ -689,35 +763,9 @@ class Jetpack_Gutenberg {
*
* @return string $classes List of CSS classes for a block.
*/
- public static function block_classes( $slug = '', $attr, $extra = array() ) {
- if ( empty( $slug ) ) {
- return '';
- }
-
- // Basic block name class.
- $classes = array(
- 'wp-block-jetpack-' . $slug,
- );
-
- // Add alignment if provided.
- if (
- ! empty( $attr['align'] )
- && in_array( $attr['align'], array( 'left', 'center', 'right', 'wide', 'full' ), true )
- ) {
- array_push( $classes, 'align' . $attr['align'] );
- }
-
- // Add custom classes if provided in the block editor.
- if ( ! empty( $attr['className'] ) ) {
- array_push( $classes, $attr['className'] );
- }
-
- // Add any extra classes.
- if ( is_array( $extra ) && ! empty( $extra ) ) {
- $classes = array_merge( $classes, $extra );
- }
-
- return implode( ' ', $classes );
+ public static function block_classes( $slug, $attr, $extra = array() ) {
+ _deprecated_function( __METHOD__, '9.0.0', 'Automattic\\Jetpack\\Blocks::classes' );
+ return Blocks::classes( $slug, $attr, $extra );
}
/**
@@ -801,4 +849,257 @@ class Jetpack_Gutenberg {
return $preset_extensions;
}
+
+ /**
+ * Validate a URL used in a SSR block.
+ *
+ * @since 8.3.0
+ *
+ * @param string $url URL saved as an attribute in block.
+ * @param array $allowed Array of allowed hosts for that block, or regexes to check against.
+ * @param bool $is_regex Array of regexes matching the URL that could be used in block.
+ *
+ * @return bool|string
+ */
+ public static function validate_block_embed_url( $url, $allowed = array(), $is_regex = false ) {
+ if (
+ empty( $url )
+ || ! is_array( $allowed )
+ || empty( $allowed )
+ ) {
+ return false;
+ }
+
+ $url_components = wp_parse_url( $url );
+
+ // Bail early if we cannot find a host.
+ if ( empty( $url_components['host'] ) ) {
+ return false;
+ }
+
+ // Normalize URL.
+ $url = sprintf(
+ '%s://%s%s%s',
+ isset( $url_components['scheme'] ) ? $url_components['scheme'] : 'https',
+ $url_components['host'],
+ isset( $url_components['path'] ) ? $url_components['path'] : '/',
+ isset( $url_components['query'] ) ? '?' . $url_components['query'] : ''
+ );
+
+ if ( ! empty( $url_components['fragment'] ) ) {
+ $url = $url . '#' . rawurlencode( $url_components['fragment'] );
+ }
+
+ /*
+ * If we're using an allowed list of hosts,
+ * check if the URL belongs to one of the domains allowed for that block.
+ */
+ if (
+ false === $is_regex
+ && in_array( $url_components['host'], $allowed, true )
+ ) {
+ return $url;
+ }
+
+ /*
+ * If we are using an array of regexes to check against,
+ * loop through that.
+ */
+ if ( true === $is_regex ) {
+ foreach ( $allowed as $regex ) {
+ if ( 1 === preg_match( $regex, $url ) ) {
+ return $url;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Determines whether a preview of the block with an upgrade nudge should
+ * be displayed for admins on the site frontend.
+ *
+ * @since 8.4.0
+ *
+ * @param array $availability_for_block The availability for the block.
+ *
+ * @return bool
+ */
+ public static function should_show_frontend_preview( $availability_for_block ) {
+ return (
+ isset( $availability_for_block['details']['required_plan'] )
+ && current_user_can( 'manage_options' )
+ && ! is_feed()
+ );
+ }
+
+ /**
+ * Output an UpgradeNudge Component on the frontend of a site.
+ *
+ * @since 8.4.0
+ *
+ * @param string $plan The plan that users need to purchase to make the block work.
+ *
+ * @return string
+ */
+ public static function upgrade_nudge( $plan ) {
+ jetpack_require_lib( 'components' );
+ return Jetpack_Components::render_upgrade_nudge(
+ array(
+ 'plan' => $plan,
+ )
+ );
+ }
+
+ /**
+ * Output a notice within a block.
+ *
+ * @since 8.6.0
+ *
+ * @param string $message Notice we want to output.
+ * @param string $status Status of the notice. Can be one of success, info, warning, error. info by default.
+ * @param string $classes List of CSS classes.
+ *
+ * @return string
+ */
+ public static function notice( $message, $status = 'info', $classes = '' ) {
+ if (
+ empty( $message )
+ || ! in_array( $status, array( 'success', 'info', 'warning', 'error' ), true )
+ ) {
+ return '';
+ }
+
+ $color = '';
+ switch ( $status ) {
+ case 'success':
+ $color = '#00a32a';
+ break;
+ case 'warning':
+ $color = '#dba617';
+ break;
+ case 'error':
+ $color = '#d63638';
+ break;
+ case 'info':
+ default:
+ $color = '#72aee6';
+ break;
+ }
+
+ return sprintf(
+ '<div class="jetpack-block__notice %1$s %3$s" style="border-left:5px solid %4$s;padding:1em;background-color:#f8f9f9;">%2$s</div>',
+ esc_attr( $status ),
+ wp_kses(
+ $message,
+ array(
+ 'br' => array(),
+ 'p' => array(),
+ )
+ ),
+ esc_attr( $classes ),
+ sanitize_hex_color( $color )
+ );
+ }
+
+ /**
+ * Set the availability of the block as the editor
+ * is loaded.
+ *
+ * @param string $slug Slug of the block.
+ */
+ public static function set_availability_for_plan( $slug ) {
+ $is_available = true;
+ $plan = '';
+ $slug = self::remove_extension_prefix( $slug );
+ $features_data = array();
+ $is_simple_site = defined( 'IS_WPCOM' ) && IS_WPCOM;
+ $is_atomic_site = ( new Host() )->is_woa_site();
+
+ // Check feature availability for Simple and Atomic sites.
+ if ( $is_simple_site || $is_atomic_site ) {
+
+ // Simple sites.
+ if ( $is_simple_site ) {
+ if ( ! class_exists( 'Store_Product_List' ) ) {
+ require WP_CONTENT_DIR . '/admin-plugins/wpcom-billing/store-product-list.php';
+ }
+ $features_data = Store_Product_List::get_site_specific_features_data();
+ } else {
+ // Atomic sites.
+ $option = get_option( 'jetpack_active_plan' );
+ if ( isset( $option['features'] ) ) {
+ $features_data = $option['features'];
+ }
+ }
+
+ $is_available = isset( $features_data['active'] ) && in_array( $slug, $features_data['active'], true );
+ if ( ! empty( $features_data['available'][ $slug ] ) ) {
+ $plan = $features_data['available'][ $slug ][0];
+ }
+ } else {
+ // Jetpack sites.
+ $is_available = Jetpack_Plan::supports( $slug );
+ $plan = Jetpack_Plan::get_minimum_plan_for_feature( $slug );
+ }
+
+ if ( $is_available ) {
+ self::set_extension_available( $slug );
+ } else {
+ self::set_extension_unavailable(
+ $slug,
+ 'missing_plan',
+ array(
+ 'required_feature' => $slug,
+ 'required_plan' => $plan,
+ )
+ );
+ }
+ }
+
+ /**
+ * Wraps the suplied render_callback in a function to check
+ * the availability of the block before rendering it.
+ *
+ * @param string $slug The block slug, used to check for availability.
+ * @param callable $render_callback The render_callback that will be called if the block is available.
+ */
+ public static function get_render_callback_with_availability_check( $slug, $render_callback ) {
+ return function ( $prepared_attributes, $block_content, $block ) use ( $render_callback, $slug ) {
+ $availability = self::get_cached_availability();
+ $bare_slug = self::remove_extension_prefix( $slug );
+ if ( isset( $availability[ $bare_slug ] ) && $availability[ $bare_slug ]['available'] ) {
+ return call_user_func( $render_callback, $prepared_attributes, $block_content );
+ }
+
+ // A preview of the block is rendered for admins on the frontend with an upgrade nudge.
+ if ( isset( $availability[ $bare_slug ] ) ) {
+ if ( self::should_show_frontend_preview( $availability[ $bare_slug ] ) ) {
+ $block_preview = call_user_func( $render_callback, $prepared_attributes, $block_content );
+
+ // If the upgrade nudge isn't already being displayed by a parent block, display the nudge.
+ if ( isset( $block->attributes['shouldDisplayFrontendBanner'] ) && $block->attributes['shouldDisplayFrontendBanner'] ) {
+ $upgrade_nudge = self::upgrade_nudge( $availability[ $bare_slug ]['details']['required_plan'] );
+ return $upgrade_nudge . $block_preview;
+ }
+
+ return $block_preview;
+ }
+ }
+
+ return null;
+ };
+ }
+}
+
+/*
+ * Enable upgrade nudge for Atomic sites.
+ * This feature is false as default,
+ * so let's enable it through this filter.
+ *
+ * More doc: https://github.com/Automattic/jetpack/tree/master/projects/plugins/jetpack/extensions#upgrades-for-blocks
+ */
+if ( ( new Host() )->is_woa_site() ) {
+ add_filter( 'jetpack_block_editor_enable_upgrade_nudge', '__return_true' );
}
diff --git a/plugins/jetpack/class.jetpack-heartbeat.php b/plugins/jetpack/class.jetpack-heartbeat.php
index 8cd8a2a7..5af7f50a 100644
--- a/plugins/jetpack/class.jetpack-heartbeat.php
+++ b/plugins/jetpack/class.jetpack-heartbeat.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Heartbeat;
class Jetpack_Heartbeat {
@@ -12,7 +13,13 @@ class Jetpack_Heartbeat {
*/
private static $instance = false;
- private $cron_name = 'jetpack_v2_heartbeat';
+ /**
+ * Holds the singleton instance of the proxied class
+ *
+ * @since 8.9.0
+ * @var Automattic\Jetpack\Heartbeat
+ */
+ private static $proxied_instance = false;
/**
* Singleton
@@ -23,7 +30,8 @@ class Jetpack_Heartbeat {
*/
public static function init() {
if ( ! self::$instance ) {
- self::$instance = new Jetpack_Heartbeat();
+ self::$instance = new Jetpack_Heartbeat();
+ self::$proxied_instance = Heartbeat::init();
}
return self::$instance;
@@ -36,70 +44,7 @@ class Jetpack_Heartbeat {
* @return Jetpack_Heartbeat
*/
private function __construct() {
- if ( ! Jetpack::is_active() ) {
- return;
- }
-
- // Schedule the task
- add_action( $this->cron_name, array( $this, 'cron_exec' ) );
-
- if ( ! wp_next_scheduled( $this->cron_name ) ) {
- // Deal with the old pre-3.0 weekly one.
- if ( $timestamp = wp_next_scheduled( 'jetpack_heartbeat' ) ) {
- wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
- }
-
- wp_schedule_event( time(), 'daily', $this->cron_name );
- }
-
- add_filter( 'jetpack_xmlrpc_methods', array( __CLASS__, 'jetpack_xmlrpc_methods' ) );
- }
-
- /**
- * Method that gets executed on the wp-cron call
- *
- * @since 2.3.3
- * @global string $wp_version
- */
- public function cron_exec() {
-
- $jetpack = Jetpack::init();
-
- /*
- * 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 ) {
- $jetpack->stat( $key, $value );
- }
-
- Jetpack_Options::update_option( 'last_heartbeat', time() );
-
- $jetpack->do_stats( 'server_side' );
-
- /**
- * Fires when we synchronize all registered options on heartbeat.
- *
- * @since 3.3.0
- */
- do_action( 'jetpack_heartbeat' );
+ add_filter( 'jetpack_heartbeat_stats_array', array( $this, 'add_stats_to_heartbeat' ) );
}
/**
@@ -115,9 +60,9 @@ class Jetpack_Heartbeat {
$return[ "{$prefix}version" ] = JETPACK__VERSION;
$return[ "{$prefix}wp-version" ] = get_bloginfo( 'version' );
$return[ "{$prefix}php-version" ] = PHP_VERSION;
- $return[ "{$prefix}branch" ] = floatval( JETPACK__VERSION );
- $return[ "{$prefix}wp-branch" ] = floatval( get_bloginfo( 'version' ) );
- $return[ "{$prefix}php-branch" ] = floatval( PHP_VERSION );
+ $return[ "{$prefix}branch" ] = (float) JETPACK__VERSION;
+ $return[ "{$prefix}wp-branch" ] = (float) get_bloginfo( 'version' );
+ $return[ "{$prefix}php-branch" ] = (float) PHP_VERSION;
$return[ "{$prefix}public" ] = Jetpack_Options::get_option( 'public' );
$return[ "{$prefix}ssl" ] = Jetpack::permit_ssl();
$return[ "{$prefix}is-https" ] = is_ssl() ? 'https' : 'http';
@@ -131,6 +76,16 @@ class Jetpack_Heartbeat {
}
$return[ "{$prefix}manage-enabled" ] = true;
+ if ( function_exists( 'get_space_used' ) ) { // Only available in multisite.
+ $space_used = get_space_used();
+ } else {
+ // This is the same as `get_space_used`, except it does not apply the short-circuit filter.
+ $upload_dir = wp_upload_dir();
+ $space_used = get_dirsize( $upload_dir['basedir'] ) / MB_IN_BYTES;
+ }
+
+ $return[ "{$prefix}space-used" ] = $space_used;
+
$xmlrpc_errors = Jetpack_Options::get_option( 'xmlrpc_errors', array() );
if ( $xmlrpc_errors ) {
$return[ "{$prefix}xmlrpc-errors" ] = implode( ',', array_keys( $xmlrpc_errors ) );
@@ -162,27 +117,23 @@ class Jetpack_Heartbeat {
return $return;
}
- public static function jetpack_xmlrpc_methods( $methods ) {
- $methods['jetpack.getHeartbeatData'] = array( __CLASS__, 'xmlrpc_data_response' );
- return $methods;
- }
-
- 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 );
- }
+ /**
+ * Add Jetpack Stats array to Heartbeat if Jetpack is connected
+ *
+ * @since 8.9.0
+ *
+ * @param array $stats Jetpack Heartbeat stats.
+ * @return array $stats
+ */
+ public function add_stats_to_heartbeat( $stats ) {
- public function deactivate() {
- // Deal with the old pre-3.0 weekly one.
- if ( $timestamp = wp_next_scheduled( 'jetpack_heartbeat' ) ) {
- wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
+ if ( ! Jetpack::is_connection_ready() ) {
+ return $stats;
}
- $timestamp = wp_next_scheduled( $this->cron_name );
- wp_unschedule_event( $timestamp, $this->cron_name );
+ $jetpack_stats = self::generate_stats_array();
+
+ return array_merge( $stats, $jetpack_stats );
}
}
diff --git a/plugins/jetpack/class.jetpack-idc.php b/plugins/jetpack/class.jetpack-idc.php
index 1b4f51dc..c00d23cb 100644
--- a/plugins/jetpack/class.jetpack-idc.php
+++ b/plugins/jetpack/class.jetpack-idc.php
@@ -1,719 +1,10 @@
-<?php
-
-use Automattic\Jetpack\Assets;
-use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
-
+<?php // phpcs:disable Squiz.Commenting.FileComment.SpacingAfterComment
/**
- * This class will handle everything involved with fixing an Identity Crisis.
+ * Identity Crisis handler.
*
- * @since 4.4.0
+ * @deprecated 9.8.0. Functionality moved to the automattic/identity-crisis package.
+ * @package automattic/jetpack
*/
-class Jetpack_IDC {
-
- /**
- * @var Jetpack_IDC
- **/
- private static $instance = null;
-
- /**
- * The wpcom value of the home URL
- *
- * @var string
- */
- static $wpcom_home_url;
-
- /**
- * Has safe mode been confirmed?
- *
- * @var bool
- */
- static $is_safe_mode_confirmed;
-
- /**
- * The current screen, which is set if the current user is a non-admin and this is an admin page.
- *
- * @var WP_Screen
- */
- static $current_screen;
-
- /**
- * The link to the support document used to explain Safe Mode to users
- *
- * @var string
- */
- const SAFE_MODE_DOC_LINK = 'https://jetpack.com/support/safe-mode';
-
- static function init() {
- if ( is_null( self::$instance ) ) {
- self::$instance = new Jetpack_IDC();
- }
-
- return self::$instance;
- }
-
- private function __construct() {
- add_action( 'jetpack_sync_processed_actions', array( $this, 'maybe_clear_migrate_option' ) );
- if ( false === $urls_in_crisis = Jetpack::check_identity_crisis() ) {
- return;
- }
-
- self::$wpcom_home_url = $urls_in_crisis['wpcom_home'];
- add_action( 'init', array( $this, 'wordpress_init' ) );
- }
-
- /**
- * 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 $processed_items array Array of processed items that were synced to WordPress.com
- */
- 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], $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, $callable_args[0] )
- && ( 'home_url' === $callable_args[0] || 'site_url' === $callable_args[1] )
- ) {
- Jetpack_Options::delete_option( 'migrate_for_idc' );
- break;
- }
- }
- }
-
- function wordpress_init() {
- if ( ! current_user_can( 'jetpack_disconnect' ) && is_admin() ) {
- add_action( 'admin_notices', array( $this, 'display_non_admin_idc_notice' ) );
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_idc_notice_files' ) );
- add_action( 'current_screen', array( $this, 'non_admins_current_screen_check' ) );
- return;
- }
-
- if (
- isset( $_GET['jetpack_idc_clear_confirmation'], $_GET['_wpnonce'] ) &&
- wp_verify_nonce( $_GET['_wpnonce'], 'jetpack_idc_clear_confirmation' )
- ) {
- 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 );
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_bar_css' ) );
-
- if ( is_admin() && ! self::$is_safe_mode_confirmed ) {
- add_action( 'admin_notices', array( $this, 'display_idc_notice' ) );
- add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_idc_notice_files' ) );
- }
- }
-
- function non_admins_current_screen_check( $current_screen ) {
- self::$current_screen = $current_screen;
- if ( isset( $current_screen->id ) && 'toplevel_page_jetpack' == $current_screen->id ) {
- return null;
- }
-
- // If the user has dismissed the notice, and we're not currently on a Jetpack page,
- // then do not show the non-admin notice.
- if ( isset( $_COOKIE, $_COOKIE['jetpack_idc_dismiss_notice'] ) ) {
- remove_action( 'admin_notices', array( $this, 'display_non_admin_idc_notice' ) );
- remove_action( 'admin_enqueue_scripts', array( $this, 'enqueue_idc_notice_files' ) );
- }
- }
-
- 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' );
-
- $title = sprintf(
- '<span class="jp-idc-admin-bar">%s %s</span>',
- '<span class="dashicons dashicons-warning"></span>',
- esc_html__( 'Jetpack Safe Mode', 'jetpack' )
- );
-
- $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 );
- }
-
- static function prepare_url_for_display( $url ) {
- return untrailingslashit( Jetpack::normalize_url_protocol_agnostic( $url ) );
- }
-
- /**
- * Clears all IDC specific options. This method is used on disconnect and reconnect.
- */
- 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 ( Jetpack::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',
- )
- );
- }
-
- /**
- * Does the current admin page have help tabs?
- *
- * @return bool
- */
- function admin_page_has_help_tabs() {
- if ( ! function_exists( 'get_current_screen' ) ) {
- return false;
- }
-
- $current_screen = get_current_screen();
- $tabs = $current_screen->get_help_tabs();
-
- return ! empty( $tabs );
- }
-
- function display_non_admin_idc_notice() {
- $classes = 'jp-idc-notice inline is-non-admin notice notice-warning';
- if ( isset( self::$current_screen ) && 'toplevel_page_jetpack' != self::$current_screen->id ) {
- $classes .= ' is-dismissible';
- }
-
- if ( $this->admin_page_has_help_tabs() ) {
- $classes .= ' has-help-tabs';
- }
- ?>
-
- <div class="<?php echo $classes; ?>">
- <?php $this->render_notice_header(); ?>
- <div class="jp-idc-notice__content-header">
- <h3 class="jp-idc-notice__content-header__lead">
- <?php echo $this->get_non_admin_notice_text(); ?>
- </h3>
-
- <p class="jp-idc-notice__content-header__explanation">
- <?php echo $this->get_non_admin_contact_admin_text(); ?>
- </p>
- </div>
- </div>
- <?php
- }
-
- /**
- * First "step" of the IDC mitigation. Will provide some messaging and two options/buttons.
- * "Confirm Staging" - Dismiss the notice and continue on with our lives in staging mode.
- * "Fix Jetpack Connection" - Will disconnect the site and start the mitigation...
- */
- function display_idc_notice() {
- $classes = 'jp-idc-notice inline notice notice-warning';
- if ( $this->admin_page_has_help_tabs() ) {
- $classes .= ' has-help-tabs';
- }
- ?>
- <div class="<?php echo $classes; ?>">
- <?php $this->render_notice_header(); ?>
- <?php $this->render_notice_first_step(); ?>
- <?php $this->render_notice_second_step(); ?>
- </div>
- <?php
- }
-
- function enqueue_admin_bar_css() {
- wp_enqueue_style(
- 'jetpack-idc-admin-bar-css',
- plugins_url( 'css/jetpack-idc-admin-bar.css', JETPACK__PLUGIN_FILE ),
- array( 'dashicons' ),
- JETPACK__VERSION
- );
- }
-
- /**
- * Enqueue scripts for the notice
- */
- function enqueue_idc_notice_files() {
-
- wp_enqueue_script(
- 'jetpack-idc-js',
- Assets::get_file_url_for_environment( '_inc/build/idc-notice.min.js', '_inc/idc-notice.js' ),
- array( 'jquery' ),
- JETPACK__VERSION,
- true
- );
-
- wp_localize_script(
- 'jetpack-idc-js',
- 'idcL10n',
- array(
- 'apiRoot' => esc_url_raw( rest_url() ),
- 'nonce' => wp_create_nonce( 'wp_rest' ),
- 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
- 'currentUrl' => remove_query_arg( '_wpnonce', remove_query_arg( 'jetpack_idc_clear_confirmation' ) ),
- 'tracksEventData' => array(
- 'isAdmin' => current_user_can( 'jetpack_disconnect' ),
- 'currentScreen' => self::$current_screen ? self::$current_screen->id : false,
- ),
- )
- );
-
- if ( ! wp_style_is( 'jetpack-dops-style' ) ) {
- wp_register_style(
- 'jetpack-dops-style',
- plugins_url( '_inc/build/admin.css', JETPACK__PLUGIN_FILE ),
- array(),
- JETPACK__VERSION
- );
- }
-
- wp_enqueue_style(
- 'jetpack-idc-css',
- plugins_url( 'css/jetpack-idc.css', JETPACK__PLUGIN_FILE ),
- array( 'jetpack-dops-style' ),
- JETPACK__VERSION
- );
-
- // Required for Tracks
- wp_enqueue_script(
- 'jp-tracks',
- '//stats.wp.com/w.js',
- array(),
- gmdate( 'YW' ),
- true
- );
-
- wp_enqueue_script(
- 'jp-tracks-functions',
- plugins_url( '_inc/lib/tracks/tracks-callables.js', JETPACK__PLUGIN_FILE ),
- array(),
- JETPACK__VERSION,
- false
- );
- }
-
- function render_notice_header() {
- ?>
- <div class="jp-idc-notice__header">
- <div class="jp-idc-notice__header__emblem">
- <?php
- $jetpack_logo = new Jetpack_Logo();
- echo $jetpack_logo->get_jp_emblem();
- ?>
- </div>
- <p class="jp-idc-notice__header__text">
- <?php esc_html_e( 'Jetpack Safe Mode', 'jetpack' ); ?>
- </p>
- </div>
-
- <div class="jp-idc-notice__separator"></div>
- <?php
- }
-
- /**
- * Is a container for the error notices.
- * Will be shown/controlled by jQuery in idc-notice.js
- */
- function render_error_notice() {
- ?>
- <div class="jp-idc-error__notice dops-notice is-error">
- <svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" viewBox="0 0 24 24">
- <g>
- <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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"></path>
- </g>
- </svg>
- <div class="dops-notice__content">
- <span class="dops-notice__text">
- <?php esc_html_e( 'Something went wrong:', 'jetpack' ); ?>
- <span class="jp-idc-error__desc"></span>
- </span>
- <a class="dops-notice__action" href="javascript:void(0);">
- <span id="jp-idc-error__action">
- <?php esc_html_e( 'Try Again', 'jetpack' ); ?>
- </span>
- </a>
- </div>
- </div>
- <?php
- }
-
- function render_notice_first_step() {
- ?>
- <div class="jp-idc-notice__first-step">
- <div class="jp-idc-notice__content-header">
- <h3 class="jp-idc-notice__content-header__lead">
- <?php echo $this->get_first_step_header_lead(); ?>
- </h3>
-
- <p class="jp-idc-notice__content-header__explanation">
- <?php echo $this->get_first_step_header_explanation(); ?>
- </p>
- </div>
-
- <?php $this->render_error_notice(); ?>
-
- <div class="jp-idc-notice__actions">
- <div class="jp-idc-notice__action">
- <p class="jp-idc-notice__action__explanation">
- <?php echo $this->get_confirm_safe_mode_action_explanation(); ?>
- </p>
- <button id="jp-idc-confirm-safe-mode-action" class="dops-button">
- <?php echo $this->get_confirm_safe_mode_button_text(); ?>
- </button>
- </div>
-
- <div class="jp-idc-notice__action">
- <p class="jp-idc-notice__action__explanation">
- <?php echo $this->get_first_step_fix_connection_action_explanation(); ?>
- </p>
- <button id="jp-idc-fix-connection-action" class="dops-button">
- <?php echo $this->get_first_step_fix_connection_button_text(); ?>
- </button>
- </div>
- </div>
- </div>
- <?php
- }
-
- function render_notice_second_step() {
- ?>
- <div class="jp-idc-notice__second-step">
- <div class="jp-idc-notice__content-header">
- <h3 class="jp-idc-notice__content-header__lead">
- <?php echo $this->get_second_step_header_lead(); ?>
- </h3>
- </div>
-
- <?php $this->render_error_notice(); ?>
-
- <div class="jp-idc-notice__actions">
- <div class="jp-idc-notice__action">
- <p class="jp-idc-notice__action__explanation">
- <?php echo $this->get_migrate_site_action_explanation(); ?>
- </p>
- <button id="jp-idc-migrate-action" class="dops-button">
- <?php echo $this->get_migrate_site_button_text(); ?>
- </button>
- </div>
-
- <div class="jp-idc-notice__action">
- <p class="jp-idc-notice__action__explanation">
- <?php echo $this->get_start_fresh_action_explanation(); ?>
- </p>
- <button id="jp-idc-reconnect-site-action" class="dops-button">
- <?php echo $this->get_start_fresh_button_text(); ?>
- </button>
- </div>
-
- </div>
-
- <p class="jp-idc-notice__unsure-prompt">
- <?php echo $this->get_unsure_prompt(); ?>
- </p>
- </div>
- <?php
- }
-
- function get_first_step_header_lead() {
- $html = wp_kses(
- sprintf(
- __(
- 'Jetpack has been placed into <a href="%1$s">Safe mode</a> because we noticed this is an exact copy of <a href="%2$s">%3$s</a>.',
- 'jetpack'
- ),
- esc_url( self::SAFE_MODE_DOC_LINK ),
- esc_url( self::$wpcom_home_url ),
- self::prepare_url_for_display( esc_url_raw( self::$wpcom_home_url ) )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default header text in the first step of the Safe Mode notice.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_first_step_header_lead', $html );
- }
-
- function get_first_step_header_explanation() {
- $html = wp_kses(
- sprintf(
- __(
- 'Please confirm Safe Mode or fix the Jetpack connection. Select one of the options below or <a href="%1$s">learn
- more about Safe Mode</a>.',
- 'jetpack'
- ),
- esc_url( self::SAFE_MODE_DOC_LINK )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default header explanation text in the first step of the Safe Mode notice.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_first_step_header_explanation', $html );
- }
-
- function get_confirm_safe_mode_action_explanation() {
- $html = wp_kses(
- sprintf(
- __(
- 'Is this website a temporary duplicate of <a href="%1$s">%2$s</a> for the purposes
- of testing, staging or development? If so, we recommend keeping it in Safe Mode.',
- 'jetpack'
- ),
- esc_url( untrailingslashit( self::$wpcom_home_url ) ),
- self::prepare_url_for_display( esc_url( self::$wpcom_home_url ) )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text used to explain the confirm safe mode action.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_confirm_safe_mode_explanation', $html );
- }
-
- function get_confirm_safe_mode_button_text() {
- $string = esc_html__( 'Confirm Safe Mode', 'jetpack' );
-
- /**
- * Allows overriding of the default text used for the confirm safe mode action button.
- *
- * @since 4.4.0
- *
- * @param string $string The string to be displayed
- */
- return apply_filters( 'jetpack_idc_confirm_safe_mode_button_text', $string );
- }
-
- function get_first_step_fix_connection_action_explanation() {
- $html = wp_kses(
- sprintf(
- __(
- 'If this is a separate and new website, or the new home of <a href="%1$s">%2$s</a>,
- we recommend turning Safe Mode off, and re-establishing your connection to WordPress.com.',
- 'jetpack'
- ),
- esc_url( untrailingslashit( self::$wpcom_home_url ) ),
- self::prepare_url_for_display( esc_url( self::$wpcom_home_url ) )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text used to explain the fix Jetpack connection action.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_first_fix_connection_explanation', $html );
- }
-
- function get_first_step_fix_connection_button_text() {
- $string = esc_html__( "Fix Jetpack's Connection", 'jetpack' );
-
- /**
- * Allows overriding of the default text used for the fix Jetpack connection action button.
- *
- * @since 4.4.0
- *
- * @param string $string The string to be displayed
- */
- return apply_filters( 'jetpack_idc_first_step_fix_connection_button_text', $string );
- }
-
- function get_second_step_header_lead() {
- $string = sprintf(
- esc_html__(
- 'Is %1$s the new home of %2$s?',
- 'jetpack'
- ),
- untrailingslashit( Jetpack::normalize_url_protocol_agnostic( get_home_url() ) ),
- untrailingslashit( Jetpack::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
- );
-
- /**
- * Allows overriding of the default header text in the second step of the Safe Mode notice.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_second_step_header_lead', $string );
- }
-
- function get_migrate_site_action_explanation() {
- $html = wp_kses(
- sprintf(
- __(
- 'Yes. <a href="%1$s">%2$s</a> is replacing <a href="%3$s">%4$s</a>. I would like to
- migrate my stats and subscribers from <a href="%3$s">%4$s</a> to <a href="%1$s">%2$s</a>.',
- 'jetpack'
- ),
- esc_url( get_home_url() ),
- self::prepare_url_for_display( get_home_url() ),
- esc_url( self::$wpcom_home_url ),
- untrailingslashit( Jetpack::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text for explaining the migrate site action.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_migrate_site_explanation', $html );
- }
-
- function get_migrate_site_button_text() {
- $string = esc_html__( 'Migrate Stats &amp; Subscribers', 'jetpack' );
-
- /**
- * Allows overriding of the default text used for the migrate site action button.
- *
- * @since 4.4.0
- *
- * @param string $string The string to be displayed
- */
- return apply_filters( 'jetpack_idc_migrate_site_button_text', $string );
- }
-
- function get_start_fresh_action_explanation() {
- $html = wp_kses(
- sprintf(
- __(
- 'No. <a href="%1$s">%2$s</a> is a new and different website that\'s separate from
- <a href="%3$s">%4$s</a>. It requires a new connection to WordPress.com for new stats and subscribers.',
- 'jetpack'
- ),
- esc_url( get_home_url() ),
- self::prepare_url_for_display( get_home_url() ),
- esc_url( self::$wpcom_home_url ),
- untrailingslashit( Jetpack::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text for explaining the start fresh action.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_start_fresh_explanation', $html );
- }
-
- function get_start_fresh_button_text() {
- $string = esc_html__( 'Start Fresh &amp; Create New Connection', 'jetpack' );
-
- /**
- * Allows overriding of the default text used for the start fresh action button.
- *
- * @since 4.4.0
- *
- * @param string $string The string to be displayed
- */
- return apply_filters( 'jetpack_idc_start_fresh_button_text', $string );
- }
-
- function get_unsure_prompt() {
- $html = wp_kses(
- sprintf(
- __(
- 'Unsure what to do? <a href="%1$s">Read more about Jetpack Safe Mode</a>',
- 'jetpack'
- ),
- esc_url( self::SAFE_MODE_DOC_LINK )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text using in the "Unsure what to do?" prompt.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_unsure_prompt', $html );
- }
-
- function get_non_admin_notice_text() {
- $html = wp_kses(
- sprintf(
- __(
- 'Jetpack has been placed into Safe Mode. Learn more about <a href="%1$s">Safe Mode</a>.',
- 'jetpack'
- ),
- esc_url( self::SAFE_MODE_DOC_LINK )
- ),
- array( 'a' => array( 'href' => array() ) )
- );
-
- /**
- * Allows overriding of the default text that is displayed to non-admin on the Jetpack admin page.
- *
- * @since 4.4.0
- *
- * @param string $html The HTML to be displayed
- */
- return apply_filters( 'jetpack_idc_non_admin_notice_text', $html );
- }
-
- function get_non_admin_contact_admin_text() {
- $string = esc_html__( 'An administrator of this site can take Jetpack out of Safe Mode.', 'jetpack' );
-
- /**
- * Allows overriding of the default text that is displayed to non-admins prompting them to contact an admin.
- *
- * @since 4.4.0
- *
- * @param string $string The string to be displayed
- */
- return apply_filters( 'jetpack_idc_non_admin_contact_admin_text', $string );
- }
-}
-add_action( 'plugins_loaded', array( 'Jetpack_IDC', 'init' ) );
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+_deprecated_file( basename( __FILE__ ), 'jetpack-9.8' );
diff --git a/plugins/jetpack/class.jetpack-modules-list-table.php b/plugins/jetpack/class.jetpack-modules-list-table.php
index f8db51a9..004a2dff 100644
--- a/plugins/jetpack/class.jetpack-modules-list-table.php
+++ b/plugins/jetpack/class.jetpack-modules-list-table.php
@@ -17,16 +17,16 @@ class Jetpack_Modules_List_Table extends WP_List_Table {
array_push( $this->compat_fields, 'all_items' );
}
- $this->items = $this->all_items = Jetpack_Admin::init()->get_modules();
- $this->items = $this->filter_displayed_table_items( $this->items );
/**
* Filters the list of modules available to be displayed in the Jetpack Settings screen.
*
* @since 3.0.0
*
- * @param array $this->items Array of Jetpack modules.
+ * @param array $modules Array of Jetpack modules.
*/
- $this->items = apply_filters( 'jetpack_modules_list_table_items', $this->items );
+ $this->all_items = apply_filters( 'jetpack_modules_list_table_items', Jetpack_Admin::init()->get_modules() );
+ $this->items = $this->all_items;
+ $this->items = $this->filter_displayed_table_items( $this->items );
$this->_column_headers = array( $this->get_columns(), array(), array(), 'name' );
$modal_info = isset( $_GET['info'] ) ? $_GET['info'] : false;
@@ -96,14 +96,10 @@ class Jetpack_Modules_List_Table extends WP_List_Table {
<# var i = 0;
if ( data.items.length ) {
_.each( data.items, function( item, key, list ) {
- if ( item === undefined ) return;
- if ( 'minileven' == item.module && ! item.activated ) return;
- if ( 'manage' == item.module && item.activated ) return; #>
+ if ( item === undefined ) return; #>
<tr class="jetpack-module <# if ( ++i % 2 ) { #> alternate<# } #><# if ( item.activated ) { #> active<# } #><# if ( ! item.available ) { #> unavailable<# } #>" id="{{{ item.module }}}">
<th scope="row" class="check-column">
- <# if ( 'videopress' !== item.module ) { #>
<input type="checkbox" name="modules[]" value="{{{ item.module }}}" />
- <# } #>
</th>
<td class='name column-name'>
<span class='info'><a href="{{{item.learn_more_button}}}" target="blank">{{{ item.name }}}</a></span>
@@ -111,11 +107,14 @@ class Jetpack_Modules_List_Table extends WP_List_Table {
<# if ( item.configurable ) { #>
<span class='configure'>{{{ item.configurable }}}</span>
<# } #>
- <# if ( item.activated && 'vaultpress' !== item.module && item.available && 'videopress' !== item.module ) { #>
+ <# if ( item.activated && 'vaultpress' !== item.module && item.available ) { #>
<span class='delete'><a href="<?php echo admin_url( 'admin.php' ); ?>?page=jetpack&#038;action=deactivate&#038;module={{{ item.module }}}&#038;_wpnonce={{{ item.deactivate_nonce }}}"><?php _e( 'Deactivate', 'jetpack' ); ?></a></span>
- <# } else if ( item.available && 'videopress' !== item.module ) { #>
+ <# } else if ( item.available ) { #>
<span class='activate'><a href="<?php echo admin_url( 'admin.php' ); ?>?page=jetpack&#038;action=activate&#038;module={{{ item.module }}}&#038;_wpnonce={{{ item.activate_nonce }}}"><?php _e( 'Activate', 'jetpack' ); ?></a></span>
<# } #>
+ <# if ( ! item.available ) { #>
+ <span class='unavailable_reason'>{{{ item.unavailable_reason }}}</span>
+ <# } #>
</div>
</td>
</tr>
@@ -134,9 +133,10 @@ class Jetpack_Modules_List_Table extends WP_List_Table {
}
function get_views() {
- $modules = Jetpack_Admin::init()->get_modules();
+ /** This filter is already documented in class.jetpack-modules-list-table.php */
+ $modules = apply_filters( 'jetpack_modules_list_table_items', Jetpack_Admin::init()->get_modules() );
$array_of_module_tags = wp_list_pluck( $modules, 'module_tags' );
- $module_tags = call_user_func_array( 'array_merge', $array_of_module_tags );
+ $module_tags = array_merge( ...array_values( $array_of_module_tags ) );
$module_tags_unique = array_count_values( $module_tags );
ksort( $module_tags_unique );
@@ -333,7 +333,7 @@ class Jetpack_Modules_List_Table extends WP_List_Table {
}
// Check if the info parameter provided in the URL corresponds to an actual module
- function module_info_check( $info = false, $modules ) {
+ function module_info_check( $info, $modules ) {
if ( false == $info ) {
return false;
} elseif ( array_key_exists( $info, $modules ) ) {
diff --git a/plugins/jetpack/class.jetpack-network-sites-list-table.php b/plugins/jetpack/class.jetpack-network-sites-list-table.php
index a2967055..7b533083 100644
--- a/plugins/jetpack/class.jetpack-network-sites-list-table.php
+++ b/plugins/jetpack/class.jetpack-network-sites-list-table.php
@@ -30,6 +30,7 @@ class Jetpack_Network_Sites_List_Table extends WP_List_Table {
'site__not_in' => array( get_current_blog_id() ),
'archived' => false,
'number' => 0,
+ 'network_id' => get_current_network_id(),
)
);
@@ -82,7 +83,8 @@ class Jetpack_Network_Sites_List_Table extends WP_List_Table {
switch_to_blog( $item->blog_id );
- if ( ! is_plugin_active( 'jetpack/jetpack.php' ) ) {
+ // Checks for both the stock version of Jetpack and the one managed by the Jetpack Beta Plugin.
+ if ( ! is_plugin_active( 'jetpack/jetpack.php' ) && ! is_plugin_active( 'jetpack-dev/jetpack.php' ) ) {
$title = __( 'Jetpack is not active on this site.', 'jetpack' );
$action = array(
'manage-plugins' => '<a href="' . get_admin_url( $item->blog_id, 'plugins.php', 'admin' ) . '">' . __( 'Manage Plugins', 'jetpack' ) . '</a>',
@@ -91,7 +93,7 @@ class Jetpack_Network_Sites_List_Table extends WP_List_Table {
return sprintf( '%1$s %2$s', $title, $this->row_actions( $action ) );
}
- if ( $jp->is_active() ) {
+ if ( $jp->is_connection_ready() ) {
// Build url for disconnecting
$url = $jpms->get_url(
array(
diff --git a/plugins/jetpack/class.jetpack-network.php b/plugins/jetpack/class.jetpack-network.php
index 00218ed1..026ee1c7 100644
--- a/plugins/jetpack/class.jetpack-network.php
+++ b/plugins/jetpack/class.jetpack-network.php
@@ -2,13 +2,11 @@
/**
* Jetpack Network Manager class file.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
-use Automattic\Jetpack\Connection\Client;
use Automattic\Jetpack\Connection\Manager;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
-use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Connection\Tokens;
use Automattic\Jetpack\Status;
/**
@@ -85,6 +83,7 @@ class Jetpack_Network {
*/
if ( is_multisite() && is_plugin_active_for_network( 'jetpack/jetpack.php' ) ) {
add_action( 'wp_before_admin_bar_render', array( $this, 'add_to_menubar' ) );
+ add_filter( 'jetpack_disconnect_cap', array( $this, 'set_multisite_disconnect_cap' ) );
/*
* If admin wants to automagically register new sites set the hook here
@@ -107,19 +106,6 @@ class Jetpack_Network {
}
/**
- * Sets which modules get activated by default on subsite connection.
- * Modules can be set in Network Admin > Jetpack > Settings
- *
- * @since 2.9
- * @deprecated since 7.7.0
- *
- * @param array $modules List of modules.
- */
- public function set_auto_activated_modules( $modules ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
- _deprecated_function( __METHOD__, 'jetpack-7.7' );
- }
-
- /**
* Registers new sites upon creation
*
* @since 2.9
@@ -203,9 +189,11 @@ class Jetpack_Network {
*/
if ( ! in_array( 'jetpack/jetpack.php', $active_plugins, true ) ) {
Jetpack::disconnect();
+ Jetpack_Options::delete_option( 'version' );
}
+ restore_current_blog();
}
- restore_current_blog();
+
}
/**
@@ -385,6 +373,26 @@ class Jetpack_Network {
}
/**
+ * Set the disconnect capability for multisite.
+ *
+ * @param array $caps The capabilities array.
+ */
+ public function set_multisite_disconnect_cap( $caps ) {
+ // Can individual site admins manage their own connection?
+ if ( ! is_super_admin() && ! $this->get_option( 'sub-site-connection-override' ) ) {
+ /*
+ * We need to update the option name -- it's terribly unclear which
+ * direction the override goes.
+ *
+ * @todo: Update the option name to `sub-sites-can-manage-own-connections`
+ */
+ return array( 'do_not_allow' );
+ }
+
+ return $caps;
+ }
+
+ /**
* Shows the Jetpack plugin notices.
*/
public function show_jetpack_notice() {
@@ -434,7 +442,7 @@ class Jetpack_Network {
return;
}
- if ( ( new Status() )->is_development_mode() ) {
+ if ( ( new Status() )->is_offline_mode() ) {
return;
}
@@ -471,19 +479,19 @@ class Jetpack_Network {
* @param Object $token the received token.
*/
public function filter_register_user_token( $token ) {
- $is_master_user = ! Jetpack::is_active();
- Connection_Utils::update_user_token(
+ $is_connection_owner = ! $this->connection->has_connected_owner();
+ ( new Tokens() )->update_user_token(
get_current_user_id(),
sprintf( '%s.%d', $token->secret, get_current_user_id() ),
- $is_master_user
+ $is_connection_owner
);
}
/**
* Filters the registration request body to include additional properties.
*
- * @param Array $properties standard register request body properties.
- * @return Array amended properties.
+ * @param array $properties standard register request body properties.
+ * @return array amended properties.
*/
public function filter_register_request_body( $properties ) {
$blog_details = get_blog_details();
@@ -541,11 +549,11 @@ class Jetpack_Network {
// We should be, but ensure we are on the main blog.
switch_to_blog( $current_site->blog_id );
- $main_active = $jp->is_active();
+ $main_active = $jp->is_connection_ready();
restore_current_blog();
// If we are in dev mode, just show the notice and bail.
- if ( ( new Status() )->is_development_mode() ) {
+ if ( ( new Status() )->is_offline_mode() ) {
Jetpack::show_development_mode_notice();
return;
}
@@ -584,7 +592,7 @@ class Jetpack_Network {
* @since 2.9
*/
public function network_admin_page_header() {
- $is_connected = Jetpack::is_active();
+ $is_connected = Jetpack::is_connection_ready();
$data = array(
'is_connected' => $is_connected,
diff --git a/plugins/jetpack/class.jetpack-plan.php b/plugins/jetpack/class.jetpack-plan.php
index 69acfe8d..333653b3 100644
--- a/plugins/jetpack/class.jetpack-plan.php
+++ b/plugins/jetpack/class.jetpack-plan.php
@@ -1,17 +1,17 @@
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
- * Handles fetching of the site's plan from WordPress.com and caching the value locally.
+ * Handles fetching of the site's plan and products from WordPress.com and caching values locally.
*
* Not to be confused with the `Jetpack_Plans` class (in `_inc/lib/plans.php`), which
* fetches general information about all available plans from WordPress.com, side-effect free.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Connection\Client;
/**
- * Provides methods methods for fetching the plan from WordPress.com.
+ * Provides methods methods for fetching the site's plan and products from WordPress.com.
*/
class Jetpack_Plan {
/**
@@ -21,11 +21,105 @@ class Jetpack_Plan {
*/
private static $active_plan_cache;
+ /**
+ * The name of the option that will store the site's plan.
+ *
+ * @var string
+ */
const PLAN_OPTION = 'jetpack_active_plan';
/**
+ * The name of the option that will store the site's products.
+ *
+ * @var string
+ */
+ const SITE_PRODUCTS_OPTION = 'jetpack_site_products';
+
+ const PLAN_DATA = array(
+ 'free' => array(
+ 'plans' => array(
+ 'jetpack_free',
+ ),
+ 'supports' => array(
+ 'opentable',
+ 'calendly',
+ 'send-a-message',
+ 'whatsapp-button',
+ 'social-previews',
+ 'videopress',
+
+ 'core/video',
+ 'core/cover',
+ 'core/audio',
+ ),
+ ),
+ 'personal' => array(
+ 'plans' => array(
+ 'jetpack_personal',
+ 'jetpack_personal_monthly',
+ 'personal-bundle',
+ 'personal-bundle-monthly',
+ 'personal-bundle-2y',
+ ),
+ 'supports' => array(
+ 'akismet',
+ 'recurring-payments',
+ 'premium-content/container',
+ 'videopress',
+ ),
+ ),
+ 'premium' => array(
+ 'plans' => array(
+ 'jetpack_premium',
+ 'jetpack_premium_monthly',
+ 'value_bundle',
+ 'value_bundle-monthly',
+ 'value_bundle-2y',
+ ),
+ 'supports' => array(
+ 'donations',
+ 'simple-payments',
+ 'vaultpress',
+ 'videopress',
+ 'republicize',
+ ),
+ ),
+ 'security' => array(
+ 'plans' => array(
+ 'jetpack_security_daily',
+ 'jetpack_security_daily_monthly',
+ 'jetpack_security_realtime',
+ 'jetpack_security_realtime_monthly',
+ ),
+ 'supports' => array(),
+ ),
+ 'business' => array(
+ 'plans' => array(
+ 'jetpack_business',
+ 'jetpack_business_monthly',
+ 'business-bundle',
+ 'business-bundle-monthly',
+ 'business-bundle-2y',
+ 'ecommerce-bundle',
+ 'ecommerce-bundle-monthly',
+ 'ecommerce-bundle-2y',
+ ),
+ 'supports' => array(),
+ ),
+
+ 'complete' => array(
+ 'plans' => array(
+ 'jetpack_complete',
+ 'jetpack_complete_monthly',
+ 'vip',
+ ),
+ 'supports' => array(),
+ ),
+ );
+
+ /**
* Given a response to the `/sites/%d` endpoint, will parse the response and attempt to set the
- * plan from the response.
+ * site's plan and products from the response.
*
* @param array $response The response from `/sites/%d`.
* @return bool Was the plan successfully updated?
@@ -44,20 +138,29 @@ class Jetpack_Plan {
// Decode the results.
$results = json_decode( $body, true );
- // Bail if there were no results or plan details returned.
- if ( ! is_array( $results ) || ! isset( $results['plan'] ) ) {
+ if ( ! is_array( $results ) ) {
return false;
}
- // Store the new plan in an option and return true if updated.
- $result = update_option( self::PLAN_OPTION, $results['plan'], true );
- if ( ! $result ) {
- // If we got to this point, then we know we need to update. So, assume there is an issue
- // with caching. To fix that issue, we can delete the current option and then update.
- delete_option( self::PLAN_OPTION );
- $result = update_option( self::PLAN_OPTION, $results['plan'], true );
+ if ( isset( $results['products'] ) ) {
+ // Store the site's products in an option and return true if updated.
+ self::store_data_in_option( self::SITE_PRODUCTS_OPTION, $results['products'] );
+ }
+
+ if ( ! isset( $results['plan'] ) ) {
+ return false;
+ }
+
+ $current_plan = get_option( self::PLAN_OPTION, array() );
+
+ if ( ! empty( $current_plan ) && $current_plan === $results['plan'] ) {
+ // Bail if the plans array hasn't changed.
+ return false;
}
+ // Store the new plan in an option and return true if updated.
+ $result = self::store_data_in_option( self::PLAN_OPTION, $results['plan'] );
+
if ( $result ) {
// Reset the cache since we've just updated the plan.
self::$active_plan_cache = null;
@@ -67,6 +170,25 @@ class Jetpack_Plan {
}
/**
+ * Store data in an option.
+ *
+ * @param string $option The name of the option that will store the data.
+ * @param array $data Data to be store in an option.
+ * @return bool Were the subscriptions successfully updated?
+ */
+ private static function store_data_in_option( $option, $data ) {
+ $result = update_option( $option, $data, true );
+
+ // If something goes wrong with the update, so delete the current option and then update it.
+ if ( ! $result ) {
+ delete_option( $option );
+ $result = update_option( $option, $data, true );
+ }
+
+ return $result;
+ }
+
+ /**
* Make an API call to WordPress.com for plan status
*
* @uses Jetpack_Options::get_option()
@@ -116,63 +238,7 @@ class Jetpack_Plan {
)
);
- $supports = array();
-
- // Define what paid modules are supported by personal plans.
- $personal_plans = array(
- 'jetpack_personal',
- 'jetpack_personal_monthly',
- 'personal-bundle',
- 'personal-bundle-monthly',
- 'personal-bundle-2y',
- );
-
- if ( in_array( $plan['product_slug'], $personal_plans, true ) ) {
- // special support value, not a module but a separate plugin.
- $supports[] = 'akismet';
- $supports[] = 'recurring-payments';
- $plan['class'] = 'personal';
- }
-
- // Define what paid modules are supported by premium plans.
- $premium_plans = array(
- 'jetpack_premium',
- 'jetpack_premium_monthly',
- 'value_bundle',
- 'value_bundle-monthly',
- 'value_bundle-2y',
- );
-
- if ( in_array( $plan['product_slug'], $premium_plans, true ) ) {
- $supports[] = 'akismet';
- $supports[] = 'recurring-payments';
- $supports[] = 'simple-payments';
- $supports[] = 'vaultpress';
- $supports[] = 'videopress';
- $plan['class'] = 'premium';
- }
-
- // Define what paid modules are supported by professional plans.
- $business_plans = array(
- 'jetpack_business',
- 'jetpack_business_monthly',
- 'business-bundle',
- 'business-bundle-monthly',
- 'business-bundle-2y',
- 'ecommerce-bundle',
- 'ecommerce-bundle-monthly',
- 'ecommerce-bundle-2y',
- 'vip',
- );
-
- if ( in_array( $plan['product_slug'], $business_plans, true ) ) {
- $supports[] = 'akismet';
- $supports[] = 'recurring-payments';
- $supports[] = 'simple-payments';
- $supports[] = 'vaultpress';
- $supports[] = 'videopress';
- $plan['class'] = 'business';
- }
+ list( $plan['class'], $supports ) = self::get_class_and_features( $plan['product_slug'] );
// get available features.
foreach ( Jetpack::get_available_modules() as $module_slug ) {
@@ -193,6 +259,53 @@ class Jetpack_Plan {
}
/**
+ * Get the site's products.
+ *
+ * @uses get_option()
+ *
+ * @access public
+ * @static
+ *
+ * @return array Active Jetpack products
+ */
+ public static function get_products() {
+ return get_option( self::SITE_PRODUCTS_OPTION, array() );
+ }
+
+ /**
+ * Get the class of plan and a list of features it supports
+ *
+ * @param string $plan_slug The plan that we're interested in.
+ * @return array Two item array, the plan class and the an array of features.
+ */
+ private static function get_class_and_features( $plan_slug ) {
+ $features = array();
+ foreach ( self::PLAN_DATA as $class => $details ) {
+ $features = array_merge( $features, $details['supports'] );
+ if ( in_array( $plan_slug, $details['plans'], true ) ) {
+ return array( $class, $features );
+ }
+ }
+ return array( 'free', self::PLAN_DATA['free']['supports'] );
+ }
+
+ /**
+ * Gets the minimum plan slug that supports the given feature
+ *
+ * @param string $feature The name of the feature.
+ * @return string|bool The slug for the minimum plan that supports.
+ * the feature or false if not found
+ */
+ public static function get_minimum_plan_for_feature( $feature ) {
+ foreach ( self::PLAN_DATA as $details ) {
+ if ( in_array( $feature, $details['supports'], true ) ) {
+ return $details['plans'][0];
+ }
+ }
+ return false;
+ }
+
+ /**
* Determine whether the active plan supports a particular feature
*
* @uses Jetpack_Plan::get()
@@ -205,6 +318,16 @@ class Jetpack_Plan {
* @return bool True if plan supports feature, false if not
*/
public static function supports( $feature ) {
+ // Search product bypasses plan feature check.
+ if ( 'search' === $feature && (bool) get_option( 'has_jetpack_search_product' ) ) {
+ return true;
+ }
+
+ // As of Q3 2021 - a videopress free tier is available to all plans.
+ if ( 'videopress' === $feature ) {
+ return true;
+ }
+
$plan = self::get();
// Manually mapping WordPress.com features to Jetpack module slugs.
diff --git a/plugins/jetpack/class.jetpack-post-images.php b/plugins/jetpack/class.jetpack-post-images.php
index 784d193a..ddfd77d9 100644
--- a/plugins/jetpack/class.jetpack-post-images.php
+++ b/plugins/jetpack/class.jetpack-post-images.php
@@ -232,7 +232,7 @@ class Jetpack_PostImages {
* format to the other images?_from_*() methods.
*
* @param int $post_id The post ID to check
- * @return Array containing details of the Featured Image, or empty array if none.
+ * @return array containing details of the Featured Image, or empty array if none.
*/
static function from_thumbnail( $post_id, $width = 200, $height = 200 ) {
$images = array();
@@ -385,7 +385,7 @@ class Jetpack_PostImages {
*
* @uses DOMDocument
*
- * @return Array containing images
+ * @return array containing images
*/
static function from_html( $html_or_id, $width = 200, $height = 200 ) {
$images = array();
@@ -472,7 +472,7 @@ class Jetpack_PostImages {
/**
* @param int $post_id The post ID to check
* @param int $size
- * @return Array containing details of the image, or empty array if none.
+ * @return array containing details of the image, or empty array if none.
*/
static function from_blavatar( $post_id, $size = 96 ) {
@@ -512,7 +512,7 @@ class Jetpack_PostImages {
* @param int $post_id The post ID to check.
* @param int $size The size of the avatar to get.
* @param string $default The default image to use.
- * @return Array containing details of the image, or empty array if none.
+ * @return array containing details of the image, or empty array if none.
*/
static function from_gravatar( $post_id, $size = 96, $default = false ) {
$post = get_post( $post_id );
@@ -552,7 +552,7 @@ class Jetpack_PostImages {
*
* @param int $post_id
* @param array $args Other arguments (currently width and height required for images where possible to determine)
- * @return Array containing details of the best image to be used
+ * @return array containing details of the best image to be used
*/
static function get_image( $post_id, $args = array() ) {
$image = '';
@@ -594,7 +594,7 @@ class Jetpack_PostImages {
*
* @param int $post_id
* @param array $args Optional args, see defaults list for details
- * @return Array containing images that would be good for representing this post
+ * @return array containing images that would be good for representing this post
*/
static function get_images( $post_id, $args = array() ) {
// Figure out which image to attach to this post.
@@ -778,29 +778,51 @@ class Jetpack_PostImages {
* @param int $height Minimum Image height.
* @return array|bool Image data or false if unavailable.
*/
- public static function get_attachment_data( $attachment_id, $post_url = '', $width, $height ) {
+ public static function get_attachment_data( $attachment_id, $post_url, $width, $height ) {
if ( empty( $attachment_id ) ) {
return false;
}
$meta = wp_get_attachment_metadata( $attachment_id );
- // The image must be larger than 200x200.
- if ( ! isset( $meta['width'] ) || $meta['width'] < $width ) {
+ if ( empty( $meta ) ) {
return false;
}
- if ( ! isset( $meta['height'] ) || $meta['height'] < $height ) {
+
+ if ( ! empty( $meta['videopress'] ) ) {
+ // Use poster image for VideoPress videos.
+ $url = $meta['videopress']['poster'];
+ $meta_width = $meta['videopress']['width'];
+ $meta_height = $meta['videopress']['height'];
+ } elseif ( ! empty( $meta['thumb'] ) ) {
+ // On WordPress.com, VideoPress videos have a 'thumb' property with the
+ // poster image filename instead.
+ $media_url = wp_get_attachment_url( $attachment_id );
+ $url = str_replace( wp_basename( $media_url ), $meta['thumb'], $media_url );
+ $meta_width = $meta['width'];
+ $meta_height = $meta['height'];
+ } elseif ( wp_attachment_is( 'video', $attachment_id ) ) {
+ // We don't have thumbnail images for non-VideoPress videos - skip them.
return false;
+ } else {
+ if ( ! isset( $meta['width'] ) || ! isset( $meta['height'] ) ) {
+ return false;
+ }
+ $url = wp_get_attachment_url( $attachment_id );
+ $meta_width = $meta['width'];
+ $meta_height = $meta['height'];
}
- $url = wp_get_attachment_url( $attachment_id );
+ if ( $meta_width < $width || $meta_height < $height ) {
+ return false;
+ }
return array(
'type' => 'image',
'from' => 'attachment',
'src' => $url,
- 'src_width' => $meta['width'],
- 'src_height' => $meta['height'],
+ 'src_width' => $meta_width,
+ 'src_height' => $meta_height,
'href' => $post_url,
'alt_text' => self::get_alt_text( $attachment_id ),
);
@@ -812,10 +834,10 @@ class Jetpack_PostImages {
* @since 7.1
*
* @param int $attachment_id The Post ID of the media.
- * @return string The alt text value or an emptry string.
+ * @return string The alt text value or an empty string.
*/
public static function get_alt_text( $attachment_id ) {
- return get_post_meta( $attachment_id, '_wp_attachment_image_alt', true );
+ return (string) get_post_meta( $attachment_id, '_wp_attachment_image_alt', true );
}
/**
@@ -859,6 +881,18 @@ class Jetpack_PostImages {
foreach ( $block['attrs']['ids'] as $img_id ) {
$images[] = self::get_attachment_data( $img_id, $html_info['post_url'], $width, $height );
}
+ } elseif (
+ /**
+ * Parse content from Jetpack's Story block.
+ */
+ 'jetpack/story' === $block['blockName']
+ && ! empty( $block['attrs']['mediaFiles'] )
+ ) {
+ foreach ( $block['attrs']['mediaFiles'] as $media_file ) {
+ if ( ! empty( $media_file['id'] ) ) {
+ $images[] = self::get_attachment_data( $media_file['id'], $html_info['post_url'], $width, $height );
+ }
+ }
}
return $images;
diff --git a/plugins/jetpack/class.jetpack-twitter-cards.php b/plugins/jetpack/class.jetpack-twitter-cards.php
index b5c98c05..d8b286f3 100644
--- a/plugins/jetpack/class.jetpack-twitter-cards.php
+++ b/plugins/jetpack/class.jetpack-twitter-cards.php
@@ -1,6 +1,11 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Jetpack Twitter Card handling.
+ *
+ * @package automattic/jetpack
+ */
-/*
+/**
* Twitter Cards
*
* Hooks onto the Open Graph protocol and extends it by adding only the tags
@@ -11,8 +16,16 @@
*/
class Jetpack_Twitter_Cards {
- static function twitter_cards_tags( $og_tags ) {
+ /**
+ * Adds Twitter Card tags.
+ *
+ * @param array $og_tags Existing OG tags.
+ *
+ * @return array OG tags inclusive of Twitter Card output.
+ */
+ public static function twitter_cards_tags( $og_tags ) {
global $post;
+ $post_id = ( $post instanceof WP_Post ) ? $post->ID : null;
/**
* Maximum alt text length.
@@ -31,13 +44,13 @@ class Jetpack_Twitter_Cards {
}
/*
- * These tags apply to any page (home, archives, etc)
+ * These tags apply to any page (home, archives, etc).
*/
- // If we have information on the author/creator, then include that as well
+ // If we have information on the author/creator, then include that as well.
if ( ! empty( $post ) && ! empty( $post->post_author ) ) {
/** This action is documented in modules/sharedaddy/sharing-sources.php */
- $handle = apply_filters( 'jetpack_sharing_twitter_via', '', $post->ID );
+ $handle = apply_filters( 'jetpack_sharing_twitter_via', '', $post_id );
if ( ! empty( $handle ) && ! self::is_default_site_tag( $handle ) ) {
$og_tags['twitter:creator'] = self::sanitize_twitter_user( $handle );
}
@@ -45,7 +58,7 @@ class Jetpack_Twitter_Cards {
$site_tag = self::site_tag();
/** This action is documented in modules/sharedaddy/sharing-sources.php */
- $site_tag = apply_filters( 'jetpack_sharing_twitter_via', $site_tag, ( is_singular() ? $post->ID : null ) );
+ $site_tag = apply_filters( 'jetpack_sharing_twitter_via', $site_tag, ( is_singular() ? $post_id : null ) );
/** This action is documented in modules/sharedaddy/sharing-sources.php */
$site_tag = apply_filters( 'jetpack_twitter_cards_site_tag', $site_tag, $og_tags );
if ( ! empty( $site_tag ) ) {
@@ -82,24 +95,38 @@ class Jetpack_Twitter_Cards {
$card_type = 'summary';
- // Try to give priority to featured images
- if ( class_exists( 'Jetpack_PostImages' ) ) {
- $featured = Jetpack_PostImages::from_thumbnail( $post->ID, 240, 240 );
- if ( ! empty( $featured ) && count( $featured ) > 0 ) {
- if ( (int) $featured[0]['src_width'] >= 280 && (int) $featured[0]['src_height'] >= 150 ) {
- $card_type = 'summary_large_image';
- $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 640, $featured[0]['src'] ) );
- } else {
- $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 240, $featured[0]['src'] ) );
- }
-
- // Add the alt tag if we have one.
- if ( ! empty( $featured[0]['alt_text'] ) ) {
- // Shorten it if it is too long.
- if ( strlen( $featured[0]['alt_text'] ) > $alt_length ) {
- $og_tags['twitter:image:alt'] = esc_attr( mb_substr( $featured[0]['alt_text'], 0, $alt_length ) . '…' );
+ // Try to give priority to featured images.
+ if ( class_exists( 'Jetpack_PostImages' ) && ! empty( $post_id ) ) {
+ $post_image = Jetpack_PostImages::get_image(
+ $post_id,
+ array(
+ 'width' => 144,
+ 'height' => 144,
+ )
+ );
+ if ( ! empty( $post_image ) && is_array( $post_image ) ) {
+ // 4096 is the maximum size for an image per https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/summary .
+ if (
+ isset( $post_image['src_width'], $post_image['src_height'] )
+ && (int) $post_image['src_width'] <= 4096
+ && (int) $post_image['src_height'] <= 4096
+ ) {
+ // 300x157 is the minimum size for a summary_large_image per https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/summary-card-with-large-image .
+ if ( (int) $post_image['src_width'] >= 300 && (int) $post_image['src_height'] >= 157 ) {
+ $card_type = 'summary_large_image';
+ $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 640, $post_image['src'] ) );
} else {
- $og_tags['twitter:image:alt'] = esc_attr( $featured[0]['alt_text'] );
+ $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 144, $post_image['src'] ) );
+ }
+
+ // Add the alt tag if we have one.
+ if ( ! empty( $post_image['alt_text'] ) ) {
+ // Shorten it if it is too long.
+ if ( strlen( $post_image['alt_text'] ) > $alt_length ) {
+ $og_tags['twitter:image:alt'] = esc_attr( mb_substr( $post_image['alt_text'], 0, $alt_length ) . '…' );
+ } else {
+ $og_tags['twitter:image:alt'] = esc_attr( $post_image['alt_text'] );
+ }
}
}
}
@@ -116,14 +143,14 @@ class Jetpack_Twitter_Cards {
}
// Test again, class should already be auto-loaded in Jetpack.
- // If not, skip extra media analysis and stick with a summary card
- if ( class_exists( 'Jetpack_Media_Summary' ) ) {
- $extract = Jetpack_Media_Summary::get( $post->ID );
+ // If not, skip extra media analysis and stick with a summary card.
+ if ( class_exists( 'Jetpack_Media_Summary' ) && ! empty( $post_id ) ) {
+ $extract = Jetpack_Media_Summary::get( $post_id );
- if ( 'gallery' == $extract['type'] ) {
+ if ( 'gallery' === $extract['type'] ) {
list( $og_tags, $card_type ) = self::twitter_cards_define_type_based_on_image_count( $og_tags, $extract );
- } elseif ( 'video' == $extract['type'] ) {
- // Leave as summary, but with large pict of poster frame (we know those comply to Twitter's size requirements)
+ } elseif ( 'video' === $extract['type'] ) {
+ // Leave as summary, but with large pict of poster frame (we know those comply to Twitter's size requirements).
$card_type = 'summary_large_image';
$og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 640, $extract['image'] ) );
} else {
@@ -135,9 +162,9 @@ class Jetpack_Twitter_Cards {
$og_tags['twitter:card'] = $card_type;
// Make sure we have a description for Twitter, their validator isn't happy without some content (single space not valid).
- if ( ! isset( $og_tags['og:description'] ) || '' == trim( $og_tags['og:description'] ) || __( 'Visit the post for more.', 'jetpack' ) == $og_tags['og:description'] ) { // empty( trim( $og_tags['og:description'] ) ) isn't valid php
- $has_creator = ( ! empty( $og_tags['twitter:creator'] ) && '@wordpressdotcom' != $og_tags['twitter:creator'] ) ? true : false;
- if ( ! empty( $extract ) && 'video' == $extract['type'] ) { // use $extract['type'] since $card_type is 'summary' for video posts
+ if ( ! isset( $og_tags['og:description'] ) || '' === trim( $og_tags['og:description'] ) || __( 'Visit the post for more.', 'jetpack' ) === $og_tags['og:description'] ) { // empty( trim( $og_tags['og:description'] ) ) isn't valid php.
+ $has_creator = ( ! empty( $og_tags['twitter:creator'] ) && '@wordpressdotcom' !== $og_tags['twitter:creator'] ) ? true : false;
+ if ( ! empty( $extract ) && 'video' === $extract['type'] ) { // use $extract['type'] since $card_type is 'summary' for video posts.
/* translators: %s is the post author */
$og_tags['twitter:description'] = ( $has_creator ) ? sprintf( __( 'Video post by %s.', 'jetpack' ), $og_tags['twitter:creator'] ) : __( 'Video post.', 'jetpack' );
} else {
@@ -157,22 +184,52 @@ class Jetpack_Twitter_Cards {
return $og_tags;
}
- static function sanitize_twitter_user( $str ) {
+ /**
+ * Sanitize the Twitter user by normalizing the @.
+ *
+ * @param string $str Twitter user value.
+ *
+ * @return string Twitter user value.
+ */
+ public static function sanitize_twitter_user( $str ) {
return '@' . preg_replace( '/^@/', '', $str );
}
- static function is_default_site_tag( $site_tag ) {
- return in_array( $site_tag, array( '@wordpressdotcom', '@jetpack', 'wordpressdotcom', 'jetpack' ) );
+ /**
+ * Determines if a site tag is one of the default WP.com/Jetpack ones.
+ *
+ * @param string $site_tag Site tag.
+ *
+ * @return bool True if the default site tag is being used.
+ */
+ public static function is_default_site_tag( $site_tag ) {
+ return in_array( $site_tag, array( '@wordpressdotcom', '@jetpack', 'wordpressdotcom', 'jetpack' ), true );
}
- static function prioritize_creator_over_default_site( $site_tag, $og_tags = array() ) {
+ /**
+ * Give priority to the creator tag if using the default site tag.
+ *
+ * @param string $site_tag Site tag.
+ * @param array $og_tags OG tags.
+ *
+ * @return string Site tag.
+ */
+ public static function prioritize_creator_over_default_site( $site_tag, $og_tags = array() ) {
if ( ! empty( $og_tags['twitter:creator'] ) && self::is_default_site_tag( $site_tag ) ) {
return $og_tags['twitter:creator'];
}
return $site_tag;
}
- static function twitter_cards_define_type_based_on_image_count( $og_tags, $extract ) {
+ /**
+ * Define the Twitter Card type based on image count.
+ *
+ * @param array $og_tags Existing OG tags.
+ * @param array $extract Result of the Image Extractor class.
+ *
+ * @return array
+ */
+ public static function twitter_cards_define_type_based_on_image_count( $og_tags, $extract ) {
$card_type = 'summary';
$img_count = $extract['count']['image'];
@@ -186,19 +243,19 @@ class Jetpack_Twitter_Cards {
}
}
- // Second fall back, Site Logo
+ // Second fall back, Site Logo.
if ( empty( $og_tags['twitter:image'] ) && ( function_exists( 'jetpack_has_site_logo' ) && jetpack_has_site_logo() ) ) {
$og_tags['twitter:image'] = jetpack_get_site_logo( 'url' );
}
- // Third fall back, Site Icon
+ // Third fall back, Site Icon.
if ( empty( $og_tags['twitter:image'] ) && has_site_icon() ) {
$og_tags['twitter:image'] = get_site_icon_url( '240' );
}
// Not falling back on Gravatar, because there's no way to know if we end up with an auto-generated one.
- } elseif ( $img_count && ( 'image' == $extract['type'] || 'gallery' == $extract['type'] ) ) {
+ } elseif ( $img_count && ( 'image' === $extract['type'] || 'gallery' === $extract['type'] ) ) {
// Test for $extract['type'] to limit to image and gallery, so we don't send a potential fallback image like a Gravatar as a photo post.
$card_type = 'summary_large_image';
$og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 1400, ( empty( $extract['images'] ) ) ? $extract['image'] : $extract['images'][0]['url'] ) );
@@ -207,11 +264,21 @@ class Jetpack_Twitter_Cards {
return array( $og_tags, $card_type );
}
- static function twitter_cards_output( $og_tag ) {
+ /**
+ * Updates the Twitter Card output.
+ *
+ * @param string $og_tag A single OG tag.
+ *
+ * @return string Result of the OG tag.
+ */
+ public static function twitter_cards_output( $og_tag ) {
return ( false !== strpos( $og_tag, 'twitter:' ) ) ? preg_replace( '/property="([^"]+)"/', 'name="\1"', $og_tag ) : $og_tag;
}
- static function settings_init() {
+ /**
+ * Adds settings section and field.
+ */
+ public static function settings_init() {
add_settings_section( 'jetpack-twitter-cards-settings', 'Twitter Cards', '__return_false', 'sharing' );
add_settings_field(
'jetpack-twitter-cards-site-tag',
@@ -225,11 +292,19 @@ class Jetpack_Twitter_Cards {
);
}
- static function sharing_global_options() {
+ /**
+ * Add global sharing options.
+ */
+ public static function sharing_global_options() {
do_settings_fields( 'sharing', 'jetpack-twitter-cards-settings' );
}
- static function site_tag() {
+ /**
+ * Get the Twitter Via tag.
+ *
+ * @return string Twitter via tag.
+ */
+ public static function site_tag() {
$site_tag = ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ?
trim( get_option( 'twitter_via' ) ) :
Jetpack_Options::get_option_and_ensure_autoload( 'jetpack-twitter-cards-site-tag', '' );
@@ -240,7 +315,10 @@ class Jetpack_Twitter_Cards {
return $site_tag;
}
- static function settings_field() {
+ /**
+ * Output the settings field.
+ */
+ public static function settings_field() {
wp_nonce_field( 'jetpack-twitter-cards-settings', 'jetpack_twitter_cards_nonce', false );
?>
<input type="text" id="jetpack-twitter-cards-site-tag" class="regular-text" name="jetpack-twitter-cards-site-tag" value="<?php echo esc_attr( get_option( 'jetpack-twitter-cards-site-tag' ) ); ?>" />
@@ -248,13 +326,19 @@ class Jetpack_Twitter_Cards {
<?php
}
- static function settings_validate() {
+ /**
+ * Validate the settings submission.
+ */
+ public static function settings_validate() {
if ( wp_verify_nonce( $_POST['jetpack_twitter_cards_nonce'], 'jetpack-twitter-cards-settings' ) ) {
- update_option( 'jetpack-twitter-cards-site-tag', trim( ltrim( strip_tags( $_POST['jetpack-twitter-cards-site-tag'] ), '@' ) ) );
+ update_option( 'jetpack-twitter-cards-site-tag', trim( ltrim( wp_strip_all_tags( $_POST['jetpack-twitter-cards-site-tag'] ), '@' ) ) );
}
}
- static function init() {
+ /**
+ * Initiates the class.
+ */
+ public static function init() {
add_filter( 'jetpack_open_graph_tags', array( __CLASS__, 'twitter_cards_tags' ) );
add_filter( 'jetpack_open_graph_output', array( __CLASS__, 'twitter_cards_output' ) );
add_filter( 'jetpack_twitter_cards_site_tag', array( __CLASS__, 'site_tag' ), -99 );
diff --git a/plugins/jetpack/class.jetpack-user-agent.php b/plugins/jetpack/class.jetpack-user-agent.php
index cbf7a21e..50d4f81c 100644
--- a/plugins/jetpack/class.jetpack-user-agent.php
+++ b/plugins/jetpack/class.jetpack-user-agent.php
@@ -1,284 +1,59 @@
<?php
-
/**
- * Determine if the current User Agent matches the passed $kind
+ * Deprecated. Use Automattic\Jetpack\Device_Detection\User_Agent_Info instead.
+ *
+ * @package automattic/jetpack
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*
- * @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
+ * Note: we cannot get rid of the class and its methods yet as multiple plugins
+ * still use it. See https://github.com/Automattic/jetpack/pull/16434/files#r667190852
*
- * @return bool|string Boolean indicating if current UA matches $kind. If
- * $return_matched_agent is true, returns the UA string
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.PropertyNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
+ * @phpcs:disable WordPress.Files.FileName
*/
-function jetpack_is_mobile( $kind = 'any', $return_matched_agent = false ) {
- static $kinds = array(
- 'smart' => false,
- 'dumb' => false,
- 'any' => false,
- );
- static $first_run = true;
- static $matched_agent = '';
-
- // If an invalid kind is passed in, reset it to default.
- if ( ! isset( $kinds[ $kind ] ) ) {
- $kind = 'any';
- }
-
- if ( function_exists( 'apply_filters' ) ) {
- /**
- * Filter the value of jetpack_is_mobile before it is calculated.
- *
- * Passing a truthy value to the filter will short-circuit determining the
- * mobile type, returning the passed value instead.
- *
- * @since 4.2.0
- *
- * @param bool|string $matches Boolean if current UA matches $kind or not. If
- * $return_matched_agent is true, should return the UA string
- * @param string $kind Category of mobile device being checked
- * @param bool $return_matched_agent Boolean indicating if the UA should be returned
- */
- $pre = apply_filters( 'pre_jetpack_is_mobile', null, $kind, $return_matched_agent );
-
- if ( null !== $pre ) {
- return $pre;
- }
- }
-
- $ua_info = new Jetpack_User_Agent_Info();
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) || strpos( strtolower( $_SERVER['HTTP_USER_AGENT'] ), 'ipad' ) ) {
- return false;
- }
-
- // Remove Samsung Galaxy tablets (SCH-I800) from being mobile devices
- if ( strpos( strtolower( $_SERVER['HTTP_USER_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;
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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' ) ) ) {
- $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;
- }
-
- if ( function_exists( 'apply_filters' ) ) {
- /**
- * Filter the value of jetpack_is_mobile
- *
- * @since 4.2.0
- *
- * @param bool|string $matches Boolean if current UA matches $kind or not. If
- * $return_matched_agent is true, should return the UA string
- * @param string $kind Category of mobile device being checked
- * @param bool $return_matched_agent Boolean indicating if the UA should be returned
- */
- $value = apply_filters( 'jetpack_is_mobile', $value, $kind, $return_matched_agent );
- }
-
- return $value;
-}
+use \Automattic\Jetpack\Device_Detection\User_Agent_Info;
+/**
+ * A class providing device properties detection.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
class Jetpack_User_Agent_Info {
- public $useragent;
- public $matched_agent;
- public $isTierIphone; // Stores whether is the iPhone tier of devices.
- public $isTierRichCss; // Stores whether the device can probably support Rich CSS, but JavaScript (jQuery) support is not assumed.
- public $isTierGenericMobile; // Stores whether it is another mobile device, which cannot be assumed to support CSS or JS (eg, older BlackBerry, RAZR)
-
- private $_platform = null; // Stores the device platform name
- const PLATFORM_WINDOWS = 'windows';
- const PLATFORM_IPHONE = 'iphone';
- const PLATFORM_IPOD = 'ipod';
- const PLATFORM_IPAD = 'ipad';
- const PLATFORM_BLACKBERRY = 'blackberry';
- const PLATFORM_BLACKBERRY_10 = 'blackberry_10';
- const PLATFORM_SYMBIAN = 'symbian_series60';
- const PLATFORM_SYMBIAN_S40 = 'symbian_series40';
- const PLATFORM_J2ME_MIDP = 'j2me_midp';
- const PLATFORM_ANDROID = 'android';
- const PLATFORM_ANDROID_TABLET = 'android_tablet';
- const PLATFORM_FIREFOX_OS = 'firefoxOS';
-
- public $dumb_agents = array(
- 'nokia',
- 'blackberry',
- 'philips',
- 'samsung',
- 'sanyo',
- 'sony',
- 'panasonic',
- 'webos',
- 'ericsson',
- 'alcatel',
- 'palm',
- 'windows ce',
- 'opera mini',
- 'series60',
- 'series40',
- 'au-mic,',
- 'audiovox',
- 'avantgo',
- 'blazer',
- 'danger',
- 'docomo',
- 'epoc',
- 'ericy',
- 'i-mode',
- 'ipaq',
- 'midp-',
- 'mot-',
- 'netfront',
- 'nitro',
- 'palmsource',
- 'pocketpc',
- 'portalmmm',
- 'rover',
- 'sie-',
- 'symbian',
- 'cldc-',
- 'j2me',
- 'smartphone',
- 'up.browser',
- 'up.link',
- 'up.link',
- 'vodafone/',
- 'wap1.',
- 'wap2.',
- 'mobile',
- 'googlebot-mobile',
- );
+ /**
+ * User_Agent_Info instance from the `jetpack-device-detection` package.
+ *
+ * @var User_Agent_Info
+ */
+ private $ua_info;
- // The constructor. Initializes default variables.
- function __construct() {
- if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- $this->useragent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- }
+ /**
+ * The constructor.
+ *
+ * @param string $ua (Optional) User agent.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public function __construct( $ua = '' ) {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info from the `automattic/jetpack-device-detection` package' );
+ $this->ua_info = new User_Agent_Info( $ua );
}
/**
* This method detects the mobile User Agent name.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return string The matched User Agent name, false otherwise.
*/
- function get_mobile_user_agent_name() {
- if ( $this->is_chrome_for_iOS() ) { // keep this check before the safari rule
- return 'chrome-for-ios';
- } elseif ( $this->is_iphone_or_ipod( 'iphone-safari' ) ) {
- return 'iphone';
- } elseif ( $this->is_ipad( 'ipad-safari' ) ) {
- return 'ipad';
- } elseif ( $this->is_android_tablet() ) { // keep this check before the android rule
- return 'android_tablet';
- } elseif ( $this->is_android() ) {
- return 'android';
- } elseif ( $this->is_blackberry_10() ) {
- return 'blackberry_10';
- } elseif ( $this->is_blackbeberry() ) {
- return 'blackberry';
- } elseif ( $this->is_WindowsPhone7() ) {
- return 'win7';
- } elseif ( $this->is_windows_phone_8() ) {
- return 'winphone8';
- } elseif ( $this->is_opera_mini() ) {
- return 'opera-mini';
- } elseif ( $this->is_opera_mini_dumb() ) {
- return 'opera-mini-dumb';
- } elseif ( $this->is_opera_mobile() ) {
- return 'opera-mobi';
- } elseif ( $this->is_blackberry_tablet() ) {
- return 'blackberry_tablet';
- } elseif ( $this->is_kindle_fire() ) {
- return 'kindle-fire';
- } elseif ( $this->is_PalmWebOS() ) {
- return 'webos';
- } elseif ( $this->is_S60_OSSBrowser() ) {
- return 'series60';
- } elseif ( $this->is_firefox_os() ) {
- return 'firefoxOS';
- } elseif ( $this->is_firefox_mobile() ) {
- return 'firefox_mobile';
- } elseif ( $this->is_MaemoTablet() ) {
- return 'maemo';
- } elseif ( $this->is_MeeGo() ) {
- return 'meego';
- } elseif ( $this->is_TouchPad() ) {
- return 'hp_tablet';
- } elseif ( $this->is_facebook_for_iphone() ) {
- return 'facebook-for-iphone';
- } elseif ( $this->is_facebook_for_ipad() ) {
- return 'facebook-for-ipad';
- } elseif ( $this->is_twitter_for_iphone() ) {
- return 'twitter-for-iphone';
- } elseif ( $this->is_twitter_for_ipad() ) {
- return 'twitter-for-ipad';
- } elseif ( $this->is_wordpress_for_ios() ) {
- return 'ios-app';
- } elseif ( $this->is_iphone_or_ipod( 'iphone-not-safari' ) ) {
- return 'iphone-unknown';
- } elseif ( $this->is_ipad( 'ipad-not-safari' ) ) {
- return 'ipad-unknown';
- } elseif ( $this->is_Nintendo_3DS() ) {
- return 'nintendo-3ds';
- } else {
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $dumb_agents = $this->dumb_agents;
- foreach ( $dumb_agents as $dumb_agent ) {
- if ( false !== strpos( $agent, $dumb_agent ) ) {
- return $dumb_agent;
- }
- }
- }
-
- return false;
+ public function get_mobile_user_agent_name() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->get_mobile_user_agent_name from the `automattic/jetpack-device-detection` package' );
+ return $this->ua_info->get_mobile_user_agent_name();
}
/**
@@ -286,226 +61,62 @@ class Jetpack_User_Agent_Info {
* 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.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return string Name of the platform, false otherwise.
*/
public function get_platform() {
- if ( isset( $this->_platform ) ) {
- return $this->_platform;
- }
-
- 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 ( $this->is_android_tablet() ) {
- $this->_platform = self::PLATFORM_ANDROID_TABLET;
- } else {
- $this->_platform = self::PLATFORM_ANDROID;
- }
- } elseif ( $this->is_kindle_fire() ) {
- $this->_platform = self::PLATFORM_ANDROID_TABLET;
- } elseif ( $this->is_blackberry_10() ) {
- $this->_platform = self::PLATFORM_BLACKBERRY_10;
- } elseif ( strpos( $this->useragent, 'blackberry' ) !== false ) {
- $this->_platform = self::PLATFORM_BLACKBERRY;
- } elseif ( $this->is_blackberry_tablet() ) {
- $this->_platform = self::PLATFORM_BLACKBERRY;
- } elseif ( $this->is_symbian_platform() ) {
- $this->_platform = self::PLATFORM_SYMBIAN;
- } elseif ( $this->is_symbian_s40_platform() ) {
- $this->_platform = self::PLATFORM_SYMBIAN_S40;
- } elseif ( $this->is_J2ME_platform() ) {
- $this->_platform = self::PLATFORM_J2ME_MIDP;
- } elseif ( $this->is_firefox_os() ) {
- $this->_platform = self::PLATFORM_FIREFOX_OS;
- } else {
- $this->_platform = false;
- }
-
- return $this->_platform;
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->get_platform from the `automattic/jetpack-device-detection` package' );
+ return $this->ua_info->get_platform();
}
- /*
+ /**
* This method detects for UA which can display iPhone-optimized web content.
* Includes iPhone, iPod Touch, Android, WebOS, Fennec (Firefox mobile), etc.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- 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 ( $this->is_android() ) {
- $this->matched_agent = 'android';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_windows_phone_8() ) {
- $this->matched_agent = 'winphone8';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_WindowsPhone7() ) {
- $this->matched_agent = 'win7';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_blackberry_10() ) {
- $this->matched_agent = 'blackberry-10';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_blackbeberry() && $this->detect_blackberry_browser_version() == 'blackberry-webkit' ) {
- $this->matched_agent = 'blackberry-webkit';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_blackberry_tablet() ) {
- $this->matched_agent = 'blackberry_tablet';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_PalmWebOS() ) {
- $this->matched_agent = 'webos';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_TouchPad() ) {
- $this->matched_agent = 'hp_tablet';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_firefox_os() ) {
- $this->matched_agent = 'firefoxOS';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_firefox_mobile() ) {
- $this->matched_agent = 'fennec';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_opera_mobile() ) {
- $this->matched_agent = 'opera-mobi';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_MaemoTablet() ) {
- $this->matched_agent = 'maemo';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_MeeGo() ) {
- $this->matched_agent = 'meego';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_kindle_touch() ) {
- $this->matched_agent = 'kindle-touch';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_Nintendo_3DS() ) {
- $this->matched_agent = 'nintendo-3ds';
- $this->isTierIphone = true;
- $this->isTierRichCss = false;
- $this->isTierGenericMobile = false;
- } else {
- $this->isTierIphone = false;
- }
- return $this->isTierIphone;
+ public function isTierIphone() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->isTierIphone from the `automattic/jetpack-device-detection` package' );
+ return $this->ua_info->isTierIphone();
}
- /*
+ /**
* This method detects for UA which are likely to be capable
* but may not necessarily support JavaScript.
* Excludes all iPhone Tier UA.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- function isTierRichCss() {
- if ( isset( $this->isTierRichCss ) ) {
- return $this->isTierRichCss;
- }
- if ( $this->isTierIphone() ) {
- return false;
- }
-
- // The following devices are explicitly ok.
- if ( $this->is_S60_OSSBrowser() ) {
- $this->matched_agent = 'series60';
- $this->isTierIphone = false;
- $this->isTierRichCss = true;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_opera_mini() ) {
- $this->matched_agent = 'opera-mini';
- $this->isTierIphone = false;
- $this->isTierRichCss = true;
- $this->isTierGenericMobile = false;
- } elseif ( $this->is_blackbeberry() ) {
- $detectedDevice = $this->detect_blackberry_browser_version();
- if ( $detectedDevice === 'blackberry-5' || $detectedDevice == 'blackberry-4.7' || $detectedDevice === 'blackberry-4.6' ) {
- $this->matched_agent = $detectedDevice;
- $this->isTierIphone = false;
- $this->isTierRichCss = true;
- $this->isTierGenericMobile = false;
- }
- } else {
- $this->isTierRichCss = false;
- }
-
- return $this->isTierRichCss;
+ public function isTierRichCss() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->isTierRichCss from the `automattic/jetpack-device-detection` package' );
+ return $this->ua_info->isTierRichCss();
}
- // Detects if the user is using a tablet.
- // props Corey Gilmore, BGR.com
- static 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 user is using a tablet.
+ * props Corey Gilmore, BGR.com
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
+ * @return bool
+ */
+ public static function is_tablet() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->is_tablet from the `automattic/jetpack-device-detection` package' );
+ return ( new User_Agent_Info() )->is_tablet();
}
- /*
+ /**
* Detects if the current UA is the default iPhone or iPod Touch Browser.
*
- * DEPRECATED: use is_iphone_or_ipod
- *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_iphoneOrIpod() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- 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;
- }
+ public static function is_iphoneOrIpod() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info->is_iphone_or_ipod from the `automattic/jetpack-device-detection` package' );
+ return ( new User_Agent_Info() )->is_iphoneOrIpod();
}
-
- /*
+ /**
* 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.
@@ -514,170 +125,91 @@ class Jetpack_User_Agent_Info {
* 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.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_iphone_or_ipod( $type = 'iphone-any' ) {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $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;
- }
+ public static function is_iphone_or_ipod( $type = 'iphone-any' ) {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_iphone_or_ipod from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_iphone_or_ipod( $type );
}
-
- /*
- * 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/<ChromeRevision> instead of Version/<VersionNum>.
- * - 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
- */
- 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( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'crios/' ) !== false ) {
- return true;
- } else {
- return false;
- }
+ /**
+ * 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/<ChromeRevision> instead of Version/<VersionNum>.
+ * - 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
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_chrome_for_iOS() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_chrome_for_iOS from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_chrome_for_iOS();
}
-
- /*
+ /**
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_twitter_for_iphone() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'ipad' ) !== false ) {
- return false;
- }
-
- if ( strpos( $ua, 'twitter for iphone' ) !== false ) {
- return true;
- } else {
- return false;
- }
+ public static function is_twitter_for_iphone() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_twitter_for_iphone from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_twitter_for_iphone();
}
- /*
+ /**
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_twitter_for_ipad() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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;
- }
+ public static function is_twitter_for_ipad() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_twitter_for_ipad from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_twitter_for_ipad();
}
-
- /*
+ /**
* 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]
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_facebook_for_iphone() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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;
- }
+ public static function is_facebook_for_iphone() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_facebook_for_iphone from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_facebook_for_iphone();
}
- /*
+ /**
* 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]
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_facebook_for_ipad() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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;
- }
+ public static function is_facebook_for_ipad() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_facebook_for_ipad from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_facebook_for_ipad();
}
- /*
- * Detects if the current UA is WordPress for iOS
+ /**
+ * Detects if the current UA is WordPress for iOS.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_wordpress_for_ios() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- if ( false !== strpos( $ua, 'wp-iphone' ) ) {
- return true;
- } else {
- return false;
- }
+ public static function is_wordpress_for_ios() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_wordpress_for_ios from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_wordpress_for_ios();
}
- /*
+ /**
* 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.
*
@@ -685,95 +217,56 @@ class Jetpack_User_Agent_Info {
* 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.
*
- */
- static function is_ipad( $type = 'ipad-any' ) {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $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;
- }
+ * @param string $type iPad type.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_ipad( $type = 'ipad-any' ) {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_ipad from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_ipad( $type );
}
- /*
+ /**
* Detects if the current browser is Firefox Mobile (Fennec)
*
- * http://www.useragentstring.com/pages/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
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_firefox_mobile() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'fennec' ) !== false ) {
- return true;
- } else {
- return false;
- }
+ public static function is_firefox_mobile() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_firefox_mobile from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_firefox_mobile();
}
- /*
+ /**
* Detects if the current browser is Firefox for desktop
*
- * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
+ * 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.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_firefox_desktop() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( false !== strpos( $ua, 'firefox' ) && false === strpos( $ua, 'mobile' ) && false === strpos( $ua, 'tablet' ) ) {
- return true;
- } else {
- return false;
- }
+ public static function is_firefox_desktop() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_firefox_desktop from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_firefox_desktop();
}
- /*
+ /**
* Detects if the current browser is FirefoxOS Native browser
- *
- * Mozilla/5.0 (Mobile; rv:14.0) Gecko/14.0 Firefox/14.0
- *
- */
- static function is_firefox_os() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'mozilla' ) !== false && strpos( $ua, 'mobile' ) !== false && strpos( $ua, 'gecko' ) !== false && strpos( $ua, 'firefox' ) !== false ) {
- return true;
- } else {
- return false;
- }
+ *
+ * Mozilla/5.0 (Mobile; rv:14.0) Gecko/14.0 Firefox/14.0
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_firefox_os() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_firefox_os from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_firefox_os();
}
-
- /*
+ /**
* Detects if the current browser is Opera Mobile
*
* What is the difference between Opera Mobile and Opera Mini?
@@ -784,26 +277,15 @@ class Jetpack_User_Agent_Info {
*
* 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)
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_opera_mobile() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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;
- }
+ public static function is_opera_mobile() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_opera_mobile from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_opera_mobile();
}
-
- /*
+ /**
* Detects if the current browser is Opera Mini
*
* Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; en; U; ssr)
@@ -814,163 +296,86 @@ class Jetpack_User_Agent_Info {
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_opera_mini() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'opera' ) !== false && strpos( $ua, 'mini' ) !== false ) {
- return true;
- } else {
- return false;
- }
+ public static function is_opera_mini() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_opera_mini from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_opera_mini();
}
- /*
+ /**
* 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
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_opera_mini_dumb() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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;
- }
+ public static function is_opera_mini_dumb() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_opera_mini_dumb from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_opera_mini_dumb();
}
- /*
+ /**
* Detects if the current browser is Opera Mobile or Mini.
- * DEPRECATED: use is_opera_mobile or is_opera_mini
*
* Opera Mini 5 Beta: Opera/9.80 (J2ME/MIDP; Opera Mini/5.0.15650/756; U; en) Presto/2.2.0
* Opera Mini 8: Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; en; U; ssr)
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_OperaMobile() {
- _deprecated_function( __FUNCTION__, 'always', 'is_opera_mini() or is_opera_mobile()' );
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $ua, 'opera' ) !== false ) {
- if ( ( strpos( $ua, 'mini' ) !== false ) || ( strpos( $ua, 'mobi' ) !== false ) ) {
- return true;
- } else {
- return false;
- }
- } else {
- return false;
- }
+ public static function is_OperaMobile() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_opera_mini() or \Automattic\Jetpack\Device_Detection\User_Agent_Info::is_opera_mobile() from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_OperaMobile();
}
- /*
+ /**
* 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)
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_WindowsPhone7() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( false === strpos( $ua, 'windows phone os 7' ) ) {
- return false;
- } else {
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- } else {
- return true;
- }
- }
+ public static function is_WindowsPhone7() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_WindowsPhone7 from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_WindowsPhone7();
}
- /*
+ /**
* 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; <Manufacturer>; <Device> [;<Operator>])
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_windows_phone_8() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- if ( strpos( $ua, 'windows phone 8' ) === false ) {
- return false;
- } else {
- return true;
- }
+ public static function is_windows_phone_8() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_windows_phone_8 from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_windows_phone_8();
}
-
- /*
+ /**
* 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
+ * 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_PalmWebOS() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( false === strpos( $ua, 'webos' ) ) {
- return false;
- } else {
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- } else {
- return true;
- }
- }
+ public static function is_PalmWebOS() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_PalmWebOS from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_PalmWebOS();
}
- /*
+ /**
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_TouchPad() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $http_user_agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- 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;
- }
+ public static function is_TouchPad() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_TouchPad from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_TouchPad();
}
-
- /*
+ /**
* 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
@@ -979,232 +384,100 @@ class Jetpack_User_Agent_Info {
*
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_S60_OSSBrowser() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- }
-
- $pos_webkit = strpos( $agent, 'webkit' );
- if ( $pos_webkit !== false ) {
- // 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;
+ public static function is_S60_OSSBrowser() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_S60_OSSBrowser from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_S60_OSSBrowser();
}
- /*
- *
+ /**
* Detects if the device platform is the Symbian Series 60.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_symbian_platform() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $pos_webkit = strpos( $agent, 'webkit' );
- if ( $pos_webkit !== false ) {
- // 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;
+ public static function is_symbian_platform() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_symbian_platform from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_symbian_platform();
}
- /*
- *
+ /**
* 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'.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_symbian_s40_platform() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $agent, 'series40' ) !== false ) {
- if ( strpos( $agent, 'nokia' ) !== false || strpos( $agent, 'ovibrowser' ) !== false || strpos( $agent, 'nokiabrowser' ) !== false ) {
- return true;
- }
- }
-
- return false;
+ public static function is_symbian_s40_platform() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_symbian_s40_platform from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_symbian_s40_platform();
}
- static function is_J2ME_platform() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( strpos( $agent, 'j2me/midp' ) !== false ) {
- return true;
- } elseif ( strpos( $agent, 'midp' ) !== false && strpos( $agent, 'cldc' ) ) {
- return true;
- }
-
- return false;
+ /**
+ * Returns if the device belongs to J2ME capable family.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
+ * @return bool
+ */
+ public static function is_J2ME_platform() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_J2ME_platform from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_J2ME_platform();
}
-
- /*
+ /**
* Detects if the current UA is on one of the Maemo-based Nokia Internet Tablets.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_MaemoTablet() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $pos_maemo = strpos( $agent, 'maemo' );
- if ( $pos_maemo === false ) {
- 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;
- }
+ public static function is_MaemoTablet() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_MaemoTablet from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_MaemoTablet();
}
- /*
+ /**
* Detects if the current UA is a MeeGo device (Nokia Smartphone).
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_MeeGo() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( false === strpos( $ua, 'meego' ) ) {
- return false;
- } else {
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- } else {
- return true;
- }
- }
+ public static function is_MeeGo() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_MeeGo from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_MeeGo();
}
-
- /*
- is_webkit() can be used to check the User Agent for an webkit generic browser
+ /**
+ * The is_webkit() method can be used to check the User Agent for an webkit generic browser.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_webkit() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $pos_webkit = strpos( $agent, 'webkit' );
-
- if ( $pos_webkit !== false ) {
- return true;
- } else {
- return false;
- }
+ public static function is_webkit() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_webkit from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_webkit();
}
/**
* Detects if the current browser is the Native Android browser.
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return boolean true if the browser is Android otherwise false
*/
- static function is_android() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos_android = strpos( $agent, 'android' );
- if ( $pos_android !== false ) {
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- } else {
- return true;
- }
- } else {
- return false;
- }
+ public static function is_android() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_android from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_android();
}
-
/**
* Detects if the current browser is the Native Android Tablet browser.
- * Assumes 'Android' should be in the user agent, but not 'mobile'
+ * Assumes 'Android' should be in the user agent, but not 'mobile'
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*
* @return boolean true if the browser is Android and not 'mobile' otherwise false
*/
- static function is_android_tablet() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $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;
- }
+ public static function is_android_tablet() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_android_tablet from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_android_tablet();
}
/**
@@ -1213,145 +486,90 @@ class Jetpack_User_Agent_Info {
* 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
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return boolean true if the browser is Kindle Fire Native browser otherwise false
*/
- static function is_kindle_fire() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos_silk = strpos( $agent, 'silk/' );
- $pos_silk_acc = strpos( $agent, 'silk-accelerated=' );
- if ( $pos_silk !== false && $pos_silk_acc !== false ) {
- return true;
- } else {
- return false;
- }
+ public static function is_kindle_fire() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_kindle_fire from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_kindle_fire();
}
-
/**
* 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+
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return boolean true if the browser is Kindle monochrome Native browser otherwise false
*/
- static function is_kindle_touch() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos_kindle_touch = strpos( $agent, 'kindle/3.0+' );
- if ( false !== $pos_kindle_touch && false === self::is_kindle_fire() ) {
- return true;
- } else {
- return false;
- }
+ public static function is_kindle_touch() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_kindle_touch from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_kindle_touch();
}
-
- // Detect if user agent is the WordPress.com Windows 8 app (used ONLY on the custom oauth stylesheet)
- static function is_windows8_auth() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos = strpos( $agent, 'msauthhost' );
- if ( false !== $pos ) {
- return true;
- } else {
- return false;
- }
+ /**
+ * Detect if user agent is the WordPress.com Windows 8 app (used ONLY on the custom oauth stylesheet)
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_windows8_auth() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_windows8_auth from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_windows8_auth();
}
- // Detect if user agent is the WordPress.com Windows 8 app.
- static function is_wordpress_for_win8() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos = strpos( $agent, 'wp-windows8' );
- if ( false !== $pos ) {
- return true;
- } else {
- return false;
- }
+ /**
+ * Detect if user agent is the WordPress.com Windows 8 app.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_wordpress_for_win8() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_wordpress_for_win8 from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_wordpress_for_win8();
}
-
- // Detect if user agent is the WordPress.com Desktop app.
- static function is_wordpress_desktop_app() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $pos = strpos( $agent, 'WordPressDesktop' );
- if ( false !== $pos ) {
- return true;
- } else {
- return false;
- }
+ /**
+ * Detect if user agent is the WordPress.com Desktop app.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_wordpress_desktop_app() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_wordpress_desktop_app from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_wordpress_desktop_app();
}
-
- /*
- * is_blackberry_tablet() can be used to check the User Agent for a RIM blackberry tablet
+ /**
+ * 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+
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_blackberry_tablet() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- $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;
- }
+ public static function is_blackberry_tablet() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_blackberry_tablet from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_blackberry_tablet();
}
- /*
- is_blackbeberry() can be used to check the User Agent for a blackberry device
- Note that opera mini on BB matches this rule.
+ /**
+ * 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.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_blackbeberry() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $pos_blackberry = strpos( $agent, 'blackberry' );
- if ( $pos_blackberry !== false ) {
- if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
- return false;
- } else {
- return true;
- }
- } else {
- return false;
- }
+ public static function is_blackbeberry() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_blackbeberry from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_blackbeberry();
}
- /*
- is_blackberry_10() can be used to check the User Agent for a BlackBerry 10 device.
- */
- static function is_blackberry_10() {
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- return ( strpos( $agent, 'bb10' ) !== false ) && ( strpos( $agent, 'mobile' ) !== false );
+ /**
+ * The is_blackberry_10() method can be used to check the User Agent for a BlackBerry 10 device.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ */
+ public static function is_blackberry_10() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_blackberry_10 from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_blackberry_10();
}
/**
@@ -1367,79 +585,13 @@ class Jetpack_User_Agent_Info {
* - 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.
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
+ * @return string Version of the BB OS. If version is not found, get_blackbeberry_OS_version will return boolean false.
*/
- static function get_blackbeberry_OS_version() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- if ( self::is_blackberry_10() ) {
- return 'blackberry-10';
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- $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
- } else {
- // detecting the BB OS version for devices running OS 6.0 or higher
- if ( preg_match( '#Version\/([\d\.]+)#i', $agent, $matches ) ) {
- $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;
- }
- if ( $version_num[0] == 5 ) {
- return 'blackberry-5';
- } elseif ( $version_num[0] == 4 && $version_num[1] == 7 ) {
- return 'blackberry-4.7';
- } elseif ( $version_num[0] == 4 && $version_num[1] == 6 ) {
- return 'blackberry-4.6';
- } elseif ( $version_num[0] == 4 && $version_num[1] == 5 ) {
- return 'blackberry-4.5';
- } else {
- return false;
- }
-
+ public static function get_blackbeberry_OS_version() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::get_blackbeberry_OS_version from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::get_blackbeberry_OS_version();
}
/**
@@ -1452,202 +604,64 @@ class Jetpack_User_Agent_Info {
* - 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.
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
+ * @return string Type of the BB browser. If browser's version is not found, detect_blackbeberry_browser_version will return boolean false.
*/
- static function detect_blackberry_browser_version() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- 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 ) ) {
- $version = $matches[1];
- } else {
- return false; // not a BB device that match our rule.
- }
-
- $version_num = explode( '.', $version );
-
- if ( false === is_array( $version_num ) || count( $version_num ) <= 1 ) {
- return false;
- }
-
- if ( $version_num[0] == 5 ) {
- return 'blackberry-5';
- } elseif ( $version_num[0] == 4 && $version_num[1] == 7 ) {
- return 'blackberry-4.7';
- } elseif ( $version_num[0] == 4 && $version_num[1] == 6 ) {
- 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;
- }
- }
-
+ public static function detect_blackberry_browser_version() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::detect_blackberry_browser_version from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::detect_blackberry_browser_version();
}
- // Checks if a visitor is coming from one of the WordPress mobile apps
- static function is_mobile_app() {
-
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
-
- if ( isset( $_SERVER['X_USER_AGENT'] ) && preg_match( '|wp-webos|', $_SERVER['X_USER_AGENT'] ) ) {
- 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;
+ /**
+ * Checks if a visitor is coming from one of the WordPress mobile apps.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
+ * @return bool
+ */
+ public static function is_mobile_app() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_mobile_app from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_mobile_app();
}
- /*
+ /**
* Detects if the current browser is Nintendo 3DS handheld.
*
- * example: Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US
+ * Example: Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US
* can differ in language, version and region
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
*/
- static function is_Nintendo_3DS() {
- if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
- return false;
- }
-
- $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
- if ( strpos( $ua, 'nintendo 3ds' ) !== false ) {
- return true;
- }
- return false;
+ public static function is_Nintendo_3DS() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_Nintendo_3DS from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_Nintendo_3DS();
}
/**
* Was the current request made by a known bot?
*
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return boolean
*/
- static function is_bot() {
- static $is_bot = null;
-
- if ( is_null( $is_bot ) ) {
- $is_bot = self::is_bot_user_agent( $_SERVER['HTTP_USER_AGENT'] );
- }
-
- return $is_bot;
+ public static function is_bot() {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_bot from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::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 $ua (string) A user-agent string
+ * @param string $ua A user-agent string.
+ *
+ * @deprecated 8.7.0 Use Automattic\Jetpack\Device_Detection\User_Agent_Info
+ *
* @return boolean
*/
- 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',
- );
-
- foreach ( $bot_agents as $bot_agent ) {
- if ( false !== stripos( $ua, $bot_agent ) ) {
- return true;
- }
- }
-
- return false;
+ public static function is_bot_user_agent( $ua = null ) {
+ _deprecated_function( __METHOD__, 'Jetpack 8.7', '\Automattic\Jetpack\Device_Detection\User_Agent_Info::is_bot_user_agent from the `automattic/jetpack-device-detection` package' );
+ return User_Agent_Info::is_bot_user_agent( $ua );
}
-
-
-
}
diff --git a/plugins/jetpack/class.jetpack.php b/plugins/jetpack/class.jetpack.php
index ff8aa073..acd8c33e 100644
--- a/plugins/jetpack/class.jetpack.php
+++ b/plugins/jetpack/class.jetpack.php
@@ -1,20 +1,38 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * The mega-class.
+ *
+ * This contains too much, so please think twice before adding more.
+ *
+ * @package automattic/jetpack
+ */
+
use Automattic\Jetpack\Assets;
use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
use Automattic\Jetpack\Config;
use Automattic\Jetpack\Connection\Client;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Nonce_Handler;
+use Automattic\Jetpack\Connection\Rest_Authentication as Connection_Rest_Authentication;
+use Automattic\Jetpack\Connection\Secrets;
+use Automattic\Jetpack\Connection\Tokens;
use Automattic\Jetpack\Connection\Utils as Connection_Utils;
+use Automattic\Jetpack\Connection\Webhooks as Connection_Webhooks;
use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Licensing;
+use Automattic\Jetpack\My_Jetpack\Initializer as My_Jetpack_Initializer;
use Automattic\Jetpack\Partner;
-use Automattic\Jetpack\Roles;
+use Automattic\Jetpack\Plugin\Tracking as Plugin_Tracking;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Status;
-use Automattic\Jetpack\Sync\Functions;
+use Automattic\Jetpack\Status\Host;
+use Automattic\Jetpack\Sync\Actions as Sync_Actions;
+use Automattic\Jetpack\Sync\Health;
use Automattic\Jetpack\Sync\Sender;
-use Automattic\Jetpack\Sync\Users;
use Automattic\Jetpack\Terms_Of_Service;
use Automattic\Jetpack\Tracking;
-use Automattic\Jetpack\Plugin\Tracking as Plugin_Tracking;
/*
Options:
@@ -40,19 +58,26 @@ jetpack_do_activate (bool)
require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.media.php';
+/**
+ * The Jetpack class.
+ */
class Jetpack {
+ /**
+ * XMLRPC server instance.
+ *
+ * @var null|Jetpack_XMLRPC_Server XMLRPC server used by Jetpack.
+ */
public $xmlrpc_server = null;
- private $rest_authentication_status = null;
-
- public $HTTP_RAW_POST_DATA = null; // copy of $GLOBALS['HTTP_RAW_POST_DATA']
-
/**
- * @var array The handles of styles that are concatenated into jetpack.css.
+ * The handles of styles that are concatenated into jetpack.css.
*
* When making changes to that list, you must also update concat_list in tools/builder/frontend-css.js.
+ *
+ * @var array The handles of styles that are concatenated into jetpack.css.
*/
public $concatenated_style_handles = array(
+ 'jetpack-carousel-swiper-css',
'jetpack-carousel',
'grunion.css',
'the-neverending-homepage',
@@ -80,24 +105,22 @@ class Jetpack {
'jetpack-search-widget',
'jetpack-simple-payments-widget-style',
'jetpack-widget-social-icons-styles',
+ 'wpcom_instagram_widget',
+ 'milestone-widget',
);
/**
- * The handles of scripts that can be loaded asynchronously.
+ * Contains all assets that have had their URL rewritten to minified versions.
*
* @var array
*/
- public $async_script_handles = array(
- 'woocommerce-analytics',
- );
+ static $min_assets = array();
/**
- * Contains all assets that have had their URL rewritten to minified versions.
+ * Plugins to deactivate.
*
- * @var array
+ * @var array Plugins to deactivate by module.
*/
- static $min_assets = array();
-
public $plugins_to_deactivate = array(
'stats' => array( 'stats/stats.php', 'WordPress.com Stats' ),
'shortlinks' => array( 'stats/stats.php', 'WordPress.com Stats' ),
@@ -167,9 +190,6 @@ class Jetpack {
'Fast Secure Contact Form' => 'si-contact-form/si-contact-form.php',
'Ninja Forms' => 'ninja-forms/ninja-forms.php',
),
- 'minileven' => array(
- 'WPtouch' => 'wptouch/wptouch.php',
- ),
'latex' => array(
'LaTeX for WordPress' => 'latex/latex.php',
'Youngwhans Simple Latex' => 'youngwhans-simple-latex/yw-latex.php',
@@ -218,6 +238,8 @@ class Jetpack {
'All in One SEO Pack' => 'all-in-one-seo-pack/all_in_one_seo_pack.php',
'All in One SEO Pack Pro' => 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php',
'The SEO Framework' => 'autodescription/autodescription.php',
+ 'Rank Math' => 'seo-by-rank-math/rank-math.php',
+ 'Slim SEO' => 'slim-seo/slim-seo.php',
),
'verification-tools' => array(
'WordPress SEO by Yoast' => 'wordpress-seo/wp-seo.php',
@@ -225,6 +247,8 @@ class Jetpack {
'All in One SEO Pack' => 'all-in-one-seo-pack/all_in_one_seo_pack.php',
'All in One SEO Pack Pro' => 'all-in-one-seo-pack-pro/all_in_one_seo_pack.php',
'The SEO Framework' => 'autodescription/autodescription.php',
+ 'Rank Math' => 'seo-by-rank-math/rank-math.php',
+ 'Slim SEO' => 'slim-seo/slim-seo.php',
),
'widget-visibility' => array(
'Widget Logic' => 'widget-logic/widget_logic.php',
@@ -246,6 +270,8 @@ class Jetpack {
'Simple Sitemap' => 'simple-sitemap/simple-sitemap.php',
'XML Sitemaps' => 'xml-sitemaps/xml-sitemaps.php',
'MSM Sitemaps' => 'msm-sitemap/msm-sitemap.php',
+ 'Rank Math' => 'seo-by-rank-math/rank-math.php',
+ 'Slim SEO' => 'slim-seo/slim-seo.php',
),
'lazy-images' => array(
'Lazy Load' => 'lazy-load/lazy-load.php',
@@ -262,74 +288,73 @@ class Jetpack {
*
* Plugin authors: If you'd like to prevent Jetpack's Open Graph tag generation in your plugin, you can do so via this filter:
* add_filter( 'jetpack_enable_open_graph', '__return_false' );
+ *
+ * @var array Array of plugin slugs.
*/
private $open_graph_conflicting_plugins = array(
- '2-click-socialmedia-buttons/2-click-socialmedia-buttons.php',
- // 2 Click Social Media Buttons
- 'add-link-to-facebook/add-link-to-facebook.php', // Add Link to Facebook
- 'add-meta-tags/add-meta-tags.php', // Add Meta Tags
- 'complete-open-graph/complete-open-graph.php', // Complete Open Graph
- 'easy-facebook-share-thumbnails/esft.php', // Easy Facebook Share Thumbnail
- 'heateor-open-graph-meta-tags/heateor-open-graph-meta-tags.php',
- // Open Graph Meta Tags by Heateor
- 'facebook/facebook.php', // Facebook (official plugin)
- 'facebook-awd/AWD_facebook.php', // Facebook AWD All in one
- 'facebook-featured-image-and-open-graph-meta-tags/fb-featured-image.php',
- // Facebook Featured Image & OG Meta Tags
- 'facebook-meta-tags/facebook-metatags.php', // Facebook Meta Tags
- 'wonderm00ns-simple-facebook-open-graph-tags/wonderm00n-open-graph.php',
- // Facebook Open Graph Meta Tags for WordPress
- 'facebook-revised-open-graph-meta-tag/index.php', // Facebook Revised Open Graph Meta Tag
- 'facebook-thumb-fixer/_facebook-thumb-fixer.php', // Facebook Thumb Fixer
- 'facebook-and-digg-thumbnail-generator/facebook-and-digg-thumbnail-generator.php',
- // Fedmich's Facebook Open Graph Meta
- 'network-publisher/networkpub.php', // Network Publisher
- 'nextgen-facebook/nextgen-facebook.php', // NextGEN Facebook OG
- 'social-networks-auto-poster-facebook-twitter-g/NextScripts_SNAP.php',
- // NextScripts SNAP
- 'og-tags/og-tags.php', // OG Tags
- 'opengraph/opengraph.php', // Open Graph
- 'open-graph-protocol-framework/open-graph-protocol-framework.php',
- // Open Graph Protocol Framework
- 'seo-facebook-comments/seofacebook.php', // SEO Facebook Comments
- 'seo-ultimate/seo-ultimate.php', // SEO Ultimate
- 'sexybookmarks/sexy-bookmarks.php', // Shareaholic
- 'shareaholic/sexy-bookmarks.php', // Shareaholic
- 'sharepress/sharepress.php', // SharePress
- 'simple-facebook-connect/sfc.php', // Simple Facebook Connect
- 'social-discussions/social-discussions.php', // Social Discussions
- 'social-sharing-toolkit/social_sharing_toolkit.php', // Social Sharing Toolkit
- 'socialize/socialize.php', // Socialize
- 'squirrly-seo/squirrly.php', // SEO by SQUIRRLY™
- 'only-tweet-like-share-and-google-1/tweet-like-plusone.php',
- // Tweet, Like, Google +1 and Share
- 'wordbooker/wordbooker.php', // Wordbooker
- 'wpsso/wpsso.php', // WordPress Social Sharing Optimization
- 'wp-caregiver/wp-caregiver.php', // WP Caregiver
- 'wp-facebook-like-send-open-graph-meta/wp-facebook-like-send-open-graph-meta.php',
- // WP Facebook Like Send & Open Graph Meta
- 'wp-facebook-open-graph-protocol/wp-facebook-ogp.php', // WP Facebook Open Graph protocol
- 'wp-ogp/wp-ogp.php', // WP-OGP
- 'zoltonorg-social-plugin/zosp.php', // Zolton.org Social Plugin
- 'wp-fb-share-like-button/wp_fb_share-like_widget.php', // WP Facebook Like Button
- 'open-graph-metabox/open-graph-metabox.php', // Open Graph Metabox
+ '2-click-socialmedia-buttons/2-click-socialmedia-buttons.php', // 2 Click Social Media Buttons.
+ 'add-link-to-facebook/add-link-to-facebook.php', // Add Link to Facebook.
+ 'add-meta-tags/add-meta-tags.php', // Add Meta Tags.
+ 'complete-open-graph/complete-open-graph.php', // Complete Open Graph.
+ 'easy-facebook-share-thumbnails/esft.php', // Easy Facebook Share Thumbnail.
+ 'heateor-open-graph-meta-tags/heateor-open-graph-meta-tags.php', // Open Graph Meta Tags by Heateor.
+ 'facebook/facebook.php', // Facebook (official plugin).
+ 'facebook-awd/AWD_facebook.php', // Facebook AWD All in one.
+ 'facebook-featured-image-and-open-graph-meta-tags/fb-featured-image.php', // Facebook Featured Image & OG Meta Tags.
+ 'facebook-meta-tags/facebook-metatags.php', // Facebook Meta Tags.
+ 'wonderm00ns-simple-facebook-open-graph-tags/wonderm00n-open-graph.php', // Facebook Open Graph Meta Tags for WordPress.
+ 'facebook-revised-open-graph-meta-tag/index.php', // Facebook Revised Open Graph Meta Tag.
+ 'facebook-thumb-fixer/_facebook-thumb-fixer.php', // Facebook Thumb Fixer.
+ 'facebook-and-digg-thumbnail-generator/facebook-and-digg-thumbnail-generator.php', // Fedmich's Facebook Open Graph Meta.
+ 'network-publisher/networkpub.php', // Network Publisher.
+ 'nextgen-facebook/nextgen-facebook.php', // NextGEN Facebook OG.
+ 'social-networks-auto-poster-facebook-twitter-g/NextScripts_SNAP.php', // NextScripts SNAP.
+ 'og-tags/og-tags.php', // OG Tags.
+ 'opengraph/opengraph.php', // Open Graph.
+ 'open-graph-protocol-framework/open-graph-protocol-framework.php', // Open Graph Protocol Framework.
+ 'seo-facebook-comments/seofacebook.php', // SEO Facebook Comments.
+ 'seo-ultimate/seo-ultimate.php', // SEO Ultimate.
+ 'sexybookmarks/sexy-bookmarks.php', // Shareaholic.
+ 'shareaholic/sexy-bookmarks.php', // Shareaholic.
+ 'sharepress/sharepress.php', // SharePress.
+ 'simple-facebook-connect/sfc.php', // Simple Facebook Connect.
+ 'social-discussions/social-discussions.php', // Social Discussions.
+ 'social-sharing-toolkit/social_sharing_toolkit.php', // Social Sharing Toolkit.
+ 'socialize/socialize.php', // Socialize.
+ 'squirrly-seo/squirrly.php', // SEO by SQUIRRLY™.
+ 'only-tweet-like-share-and-google-1/tweet-like-plusone.php', // Tweet, Like, Google +1 and Share.
+ 'wordbooker/wordbooker.php', // Wordbooker.
+ 'wpsso/wpsso.php', // WordPress Social Sharing Optimization.
+ 'wp-caregiver/wp-caregiver.php', // WP Caregiver.
+ 'wp-facebook-like-send-open-graph-meta/wp-facebook-like-send-open-graph-meta.php', // WP Facebook Like Send & Open Graph Meta.
+ 'wp-facebook-open-graph-protocol/wp-facebook-ogp.php', // WP Facebook Open Graph protocol.
+ 'wp-ogp/wp-ogp.php', // WP-OGP.
+ 'zoltonorg-social-plugin/zosp.php', // Zolton.org Social Plugin.
+ 'wp-fb-share-like-button/wp_fb_share-like_widget.php', // WP Facebook Like Button.
+ 'open-graph-metabox/open-graph-metabox.php', // Open Graph Metabox.
+ 'seo-by-rank-math/rank-math.php', // Rank Math.
+ 'slim-seo/slim-seo.php', // Slim SEO.
);
/**
* Plugins for which we turn off our Twitter Cards Tags implementation.
+ *
+ * @var array Plugins that conflict with Twitter cards.
*/
private $twitter_cards_conflicting_plugins = array(
+ // phpcs:ignore Squiz.PHP.CommentedOutCode.Found
// 'twitter/twitter.php', // The official one handles this on its own.
// https://github.com/twitter/wordpress/blob/master/src/Twitter/WordPress/Cards/Compatibility.php
- 'eewee-twitter-card/index.php', // Eewee Twitter Card
- 'ig-twitter-cards/ig-twitter-cards.php', // IG:Twitter Cards
- 'jm-twitter-cards/jm-twitter-cards.php', // JM Twitter Cards
- 'kevinjohn-gallagher-pure-web-brilliants-social-graph-twitter-cards-extention/kevinjohn_gallagher___social_graph_twitter_output.php',
- // Pure Web Brilliant's Social Graph Twitter Cards Extension
- 'twitter-cards/twitter-cards.php', // Twitter Cards
- 'twitter-cards-meta/twitter-cards-meta.php', // Twitter Cards Meta
- 'wp-to-twitter/wp-to-twitter.php', // WP to Twitter
- 'wp-twitter-cards/twitter_cards.php', // WP Twitter Cards
+ 'eewee-twitter-card/index.php', // Eewee Twitter Card.
+ 'ig-twitter-cards/ig-twitter-cards.php', // IG:Twitter Cards.
+ 'jm-twitter-cards/jm-twitter-cards.php', // JM Twitter Cards.
+ 'kevinjohn-gallagher-pure-web-brilliants-social-graph-twitter-cards-extention/kevinjohn_gallagher___social_graph_twitter_output.php', // Pure Web Brilliant's Social Graph Twitter Cards Extension.
+ 'twitter-cards/twitter-cards.php', // Twitter Cards.
+ 'twitter-cards-meta/twitter-cards-meta.php', // Twitter Cards Meta.
+ 'wp-to-twitter/wp-to-twitter.php', // WP to Twitter.
+ 'wp-twitter-cards/twitter_cards.php', // WP Twitter Cards.
+ 'seo-by-rank-math/rank-math.php', // Rank Math.
+ 'slim-seo/slim-seo.php', // Slim SEO.
);
/**
@@ -362,25 +387,50 @@ class Jetpack {
/**
* Jetpack_Sync object
+ *
+ * @todo This is also seemingly unused.
+ *
+ * @var object
*/
public $sync;
/**
* Verified data for JSON authorization request
+ *
+ * @var array
*/
public $json_api_authorization_request = array();
/**
+ * Connection manager.
+ *
* @var Automattic\Jetpack\Connection\Manager
*/
protected $connection_manager;
/**
+ * Plugin lock key.
+ *
* @var string Transient key used to prevent multiple simultaneous plugin upgrades
*/
public static $plugin_upgrade_lock_key = 'jetpack_upgrade_lock';
/**
+ * Holds an instance of Automattic\Jetpack\A8c_Mc_Stats
+ *
+ * @var Automattic\Jetpack\A8c_Mc_Stats
+ */
+ public $a8c_mc_stats_instance;
+
+ /**
+ * Constant for login redirect key.
+ *
+ * @var string
+ * @since 8.4.0
+ */
+ public static $jetpack_redirect_login = 'jetpack_connect_login_redirect';
+
+ /**
* Holds the singleton instance of this class
*
* @since 2.3.3
@@ -397,6 +447,7 @@ class Jetpack {
if ( ! self::$instance ) {
self::$instance = new Jetpack();
add_action( 'plugins_loaded', array( self::$instance, 'plugin_upgrade' ) );
+ add_action( 'jetpack_idc_disconnect', array( __CLASS__, 'on_idc_disconnect' ) );
}
return self::$instance;
@@ -406,19 +457,19 @@ class Jetpack {
* Must never be called statically
*/
function plugin_upgrade() {
- if ( self::is_active() ) {
+ if ( self::is_connection_ready() ) {
list( $version ) = explode( ':', Jetpack_Options::get_option( 'version' ) );
if ( JETPACK__VERSION != $version ) {
// Prevent multiple upgrades at once - only a single process should trigger
- // an upgrade to avoid stampedes
+ // an upgrade to avoid stampedes.
if ( false !== get_transient( self::$plugin_upgrade_lock_key ) ) {
return;
}
- // Set a short lock to prevent multiple instances of the upgrade
+ // Set a short lock to prevent multiple instances of the upgrade.
set_transient( self::$plugin_upgrade_lock_key, 1, 10 );
- // check which active modules actually exist and remove others from active_modules list
+ // check which active modules actually exist and remove others from active_modules list.
$unfiltered_modules = self::get_active_modules();
$modules = array_filter( $unfiltered_modules, array( 'Jetpack', 'is_module' ) );
if ( array_diff( $unfiltered_modules, $modules ) ) {
@@ -427,16 +478,61 @@ class Jetpack {
add_action( 'init', array( __CLASS__, 'activate_new_modules' ) );
- // Upgrade to 4.3.0
+ // Upgrade to 4.3.0.
if ( Jetpack_Options::get_option( 'identity_crisis_whitelist' ) ) {
Jetpack_Options::delete_option( 'identity_crisis_whitelist' );
}
- // Make sure Markdown for posts gets turned back on
+ // Make sure Markdown for posts gets turned back on.
if ( ! get_option( 'wpcom_publish_posts_with_markdown' ) ) {
update_option( 'wpcom_publish_posts_with_markdown', true );
}
+ /*
+ * Minileven deprecation. 8.3.0.
+ * Only delete options if not using
+ * the replacement standalone Minileven plugin.
+ */
+ if (
+ ! self::is_plugin_active( 'minileven-master/minileven.php' )
+ && ! self::is_plugin_active( 'minileven/minileven.php' )
+ ) {
+ if ( get_option( 'wp_mobile_custom_css' ) ) {
+ delete_option( 'wp_mobile_custom_css' );
+ }
+ if ( get_option( 'wp_mobile_excerpt' ) ) {
+ delete_option( 'wp_mobile_excerpt' );
+ }
+ if ( get_option( 'wp_mobile_featured_images' ) ) {
+ delete_option( 'wp_mobile_featured_images' );
+ }
+ if ( get_option( 'wp_mobile_app_promos' ) ) {
+ delete_option( 'wp_mobile_app_promos' );
+ }
+ }
+
+ // Upgrade to 8.4.0.
+ if ( Jetpack_Options::get_option( 'ab_connect_banner_green_bar' ) ) {
+ Jetpack_Options::delete_option( 'ab_connect_banner_green_bar' );
+ }
+
+ // Update to 8.8.x (WordPress 5.5 Compatibility).
+ if ( Jetpack_Options::get_option( 'autoupdate_plugins' ) ) {
+ $updated = update_site_option(
+ 'auto_update_plugins',
+ array_unique(
+ array_merge(
+ (array) Jetpack_Options::get_option( 'autoupdate_plugins', array() ),
+ (array) get_site_option( 'auto_update_plugins', array() )
+ )
+ )
+ );
+
+ if ( $updated ) {
+ Jetpack_Options::delete_option( 'autoupdate_plugins' );
+ } // Should we have some type of fallback if something fails here?
+ }
+
if ( did_action( 'wp_loaded' ) ) {
self::upgrade_on_load();
} else {
@@ -477,7 +573,7 @@ class Jetpack {
do_action( 'jetpack_sitemaps_purge_data' );
}
- // Delete old stats cache
+ // Delete old stats cache.
delete_option( 'jetpack_restapi_stats_cache' );
delete_transient( self::$plugin_upgrade_lock_key );
@@ -487,7 +583,7 @@ class Jetpack {
* Saves all the currently active modules to options.
* Also fires Action hooks for each newly activated and deactivated module.
*
- * @param $modules Array Array of active modules to be saved in options.
+ * @param array $modules Array of active modules to be saved in options.
*
* @return $success bool true for success, false for failure.
*/
@@ -545,11 +641,42 @@ class Jetpack {
return $success;
}
+ /**
+ * Remove all active modules.
+ *
+ * @return void
+ */
static function delete_active_modules() {
self::update_active_modules( array() );
}
/**
+ * Adds a hook to plugins_loaded at a priority that's currently the earliest
+ * available.
+ */
+ public function add_configure_hook() {
+ global $wp_filter;
+
+ $current_priority = has_filter( 'plugins_loaded', array( $this, 'configure' ) );
+ if ( false !== $current_priority ) {
+ remove_action( 'plugins_loaded', array( $this, 'configure' ), $current_priority );
+ }
+
+ $taken_priorities = array_map( 'intval', array_keys( $wp_filter['plugins_loaded']->callbacks ) );
+ sort( $taken_priorities );
+
+ $first_priority = array_shift( $taken_priorities );
+
+ if ( defined( 'PHP_INT_MAX' ) && $first_priority <= - PHP_INT_MAX ) {
+ $new_priority = - PHP_INT_MAX;
+ } else {
+ $new_priority = $first_priority - 1;
+ }
+
+ add_action( 'plugins_loaded', array( $this, 'configure' ), $new_priority );
+ }
+
+ /**
* Constructor. Initializes WordPress hooks
*/
private function __construct() {
@@ -558,18 +685,12 @@ class Jetpack {
*/
add_action( 'init', array( $this, 'deprecated_hooks' ) );
- add_action( 'plugins_loaded', array( $this, 'configure' ), 1 );
+ // Note how this runs at an earlier plugin_loaded hook intentionally to accomodate for other plugins.
+ add_action( 'plugin_loaded', array( $this, 'add_configure_hook' ), 90 );
+ add_action( 'network_plugin_loaded', array( $this, 'add_configure_hook' ), 90 );
+ add_action( 'mu_plugin_loaded', array( $this, 'add_configure_hook' ), 90 );
add_action( 'plugins_loaded', array( $this, 'late_initialization' ), 90 );
- add_filter(
- 'jetpack_connection_secret_generator',
- function( $callable ) {
- return function() {
- return wp_generate_password( 32, false );
- };
- }
- );
-
add_action( 'jetpack_verify_signature_error', array( $this, 'track_xmlrpc_error' ) );
add_filter(
@@ -585,43 +706,50 @@ class Jetpack {
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-gutenberg.php';
add_action( 'plugins_loaded', array( 'Jetpack_Gutenberg', 'init' ) );
add_action( 'plugins_loaded', array( 'Jetpack_Gutenberg', 'load_independent_blocks' ) );
+ add_action( 'plugins_loaded', array( 'Jetpack_Gutenberg', 'load_block_editor_extensions' ), 9 );
add_action( 'enqueue_block_editor_assets', array( 'Jetpack_Gutenberg', 'enqueue_block_editor_assets' ) );
add_action( 'set_user_role', array( $this, 'maybe_clear_other_linked_admins_transient' ), 10, 3 );
// Unlink user before deleting the user from WP.com.
- add_action( 'deleted_user', array( 'Automattic\\Jetpack\\Connection\\Manager', 'disconnect_user' ), 10, 1 );
- add_action( 'remove_user_from_blog', array( 'Automattic\\Jetpack\\Connection\\Manager', 'disconnect_user' ), 10, 1 );
+ add_action( 'deleted_user', array( $this, 'disconnect_user' ), 10, 1 );
+ add_action( 'remove_user_from_blog', array( $this, 'disconnect_user' ), 10, 1 );
add_action( 'jetpack_event_log', array( 'Jetpack', 'log' ), 10, 2 );
- add_filter( 'determine_current_user', array( $this, 'wp_rest_authenticate' ) );
- add_filter( 'rest_authentication_errors', array( $this, 'wp_rest_authentication_errors' ) );
+ add_filter( 'login_url', array( $this, 'login_url' ), 10, 2 );
+ add_action( 'login_init', array( $this, 'login_init' ) );
+
+ // Set up the REST authentication hooks.
+ Connection_Rest_Authentication::init();
add_action( 'admin_init', array( $this, 'admin_init' ) );
add_action( 'admin_init', array( $this, 'dismiss_jetpack_notice' ) );
add_filter( 'admin_body_class', array( $this, 'admin_body_class' ), 20 );
- add_action( 'wp_dashboard_setup', array( $this, 'wp_dashboard_setup' ) );
// Filter the dashboard meta box order to swap the new one in in place of the old one.
add_filter( 'get_user_option_meta-box-order_dashboard', array( $this, 'get_user_option_meta_box_order_dashboard' ) );
- // returns HTTPS support status
+ // WordPress dashboard widget.
+ require_once JETPACK__PLUGIN_DIR . 'class-jetpack-stats-dashboard-widget.php';
+ add_action( 'wp_dashboard_setup', array( new Jetpack_Stats_Dashboard_Widget(), 'init' ) );
+
+ // Returns HTTPS support status.
add_action( 'wp_ajax_jetpack-recheck-ssl', array( $this, 'ajax_recheck_ssl' ) );
add_action( 'wp_ajax_jetpack_connection_banner', array( $this, 'jetpack_connection_banner_callback' ) );
- add_action( 'wp_loaded', array( $this, 'register_assets' ) );
+ add_action( 'wp_ajax_jetpack_recommendations_banner', array( 'Jetpack_Recommendations_Banner', 'ajax_callback' ) );
- add_action( 'plugins_loaded', array( $this, 'extra_oembed_providers' ), 100 );
+ add_action( 'wp_loaded', array( $this, 'register_assets' ) );
/**
* These actions run checks to load additional files.
* They check for external files or plugins, so they need to run as late as possible.
*/
add_action( 'wp_head', array( $this, 'check_open_graph' ), 1 );
- add_action( 'amp_story_head', array( $this, 'check_open_graph' ), 1 );
+ add_action( 'web_stories_story_head', array( $this, 'check_open_graph' ), 1 );
add_action( 'plugins_loaded', array( $this, 'check_twitter_tags' ), 999 );
add_action( 'plugins_loaded', array( $this, 'check_rest_api_compat' ), 1000 );
@@ -634,54 +762,97 @@ class Jetpack {
add_filter( 'jetpack_get_default_modules', array( $this, 'filter_default_modules' ) );
add_filter( 'jetpack_get_default_modules', array( $this, 'handle_deprecated_modules' ), 99 );
- // A filter to control all just in time messages
- add_filter( 'jetpack_just_in_time_msgs', array( $this, 'is_active_and_not_development_mode' ), 9 );
+ require_once JETPACK__PLUGIN_DIR . 'class-jetpack-pre-connection-jitms.php';
+ $jetpack_jitm_messages = ( new Jetpack_Pre_Connection_JITMs() );
+ add_filter( 'jetpack_pre_connection_jitms', array( $jetpack_jitm_messages, 'add_pre_connection_jitms' ) );
- add_filter( 'jetpack_just_in_time_msg_cache', '__return_true', 9 );
+ /*
+ * If enabled, point edit post, page, and comment links to Calypso instead of WP-Admin.
+ * We should make sure to only do this for front end links.
+ */
+ if ( self::get_option( 'edit_links_calypso_redirect' ) && ! is_admin() ) {
+ add_filter( 'get_edit_post_link', array( $this, 'point_edit_post_links_to_calypso' ), 1, 2 );
+ add_filter( 'get_edit_comment_link', array( $this, 'point_edit_comment_links_to_calypso' ), 1 );
- // Hide edit post link if mobile app.
- if ( Jetpack_User_Agent_Info::is_mobile_app() ) {
- add_filter( 'edit_post_link', '__return_empty_string' );
+ /*
+ * We'll shortcircuit wp_notify_postauthor and wp_notify_moderator pluggable functions
+ * so they point moderation links on emails to Calypso.
+ */
+ jetpack_require_lib( 'functions.wp-notify' );
+ add_filter( 'comment_notification_recipients', 'jetpack_notify_postauthor', 1, 2 );
+ add_filter( 'notify_moderator', 'jetpack_notify_moderator', 1, 2 );
}
- // Update the Jetpack plan from API on heartbeats
+ add_action(
+ 'plugins_loaded',
+ function () {
+ if ( User_Agent_Info::is_mobile_app() ) {
+ add_filter( 'get_edit_post_link', '__return_empty_string' );
+ }
+ }
+ );
+
+ // Update the site's Jetpack plan and products from API on heartbeats.
add_action( 'jetpack_heartbeat', array( 'Jetpack_Plan', 'refresh_from_wpcom' ) );
/**
* This is the hack to concatenate all css files into one.
- * For description and reasoning see the implode_frontend_css method
+ * For description and reasoning see the implode_frontend_css method.
*
- * Super late priority so we catch all the registered styles
+ * Super late priority so we catch all the registered styles.
*/
if ( ! is_admin() ) {
- add_action( 'wp_print_styles', array( $this, 'implode_frontend_css' ), -1 ); // Run first
- add_action( 'wp_print_footer_scripts', array( $this, 'implode_frontend_css' ), -1 ); // Run first to trigger before `print_late_styles`
+ add_action( 'wp_print_styles', array( $this, 'implode_frontend_css' ), -1 ); // Run first.
+ add_action( 'wp_print_footer_scripts', array( $this, 'implode_frontend_css' ), -1 ); // Run first to trigger before `print_late_styles`.
}
- /**
- * 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 );
-
// Actually push the stats on shutdown.
if ( ! has_action( 'shutdown', array( $this, 'push_stats' ) ) ) {
add_action( 'shutdown', array( $this, 'push_stats' ) );
}
- /*
- * Load some scripts asynchronously.
- */
- add_action( 'script_loader_tag', array( $this, 'script_add_async' ), 10, 3 );
+ // After a successful connection.
+ add_action( 'jetpack_site_registered', array( $this, 'activate_default_modules_on_site_register' ) );
+ add_action( 'jetpack_site_registered', array( $this, 'handle_unique_registrations_stats' ) );
// Actions for Manager::authorize().
add_action( 'jetpack_authorize_starting', array( $this, 'authorize_starting' ) );
add_action( 'jetpack_authorize_ending_linked', array( $this, 'authorize_ending_linked' ) );
add_action( 'jetpack_authorize_ending_authorized', array( $this, 'authorize_ending_authorized' ) );
+ add_action( 'jetpack_client_authorize_error', array( Jetpack_Client_Server::class, 'client_authorize_error' ) );
+ add_filter( 'jetpack_client_authorize_already_authorized_url', array( Jetpack_Client_Server::class, 'client_authorize_already_authorized_url' ) );
+ add_action( 'jetpack_client_authorize_processing', array( Jetpack_Client_Server::class, 'client_authorize_processing' ) );
+ add_filter( 'jetpack_client_authorize_fallback_url', array( Jetpack_Client_Server::class, 'client_authorize_fallback_url' ) );
+
// Filters for the Manager::get_token() urls and request body.
- add_filter( 'jetpack_token_processing_url', array( __CLASS__, 'filter_connect_processing_url' ) );
add_filter( 'jetpack_token_redirect_url', array( __CLASS__, 'filter_connect_redirect_url' ) );
add_filter( 'jetpack_token_request_body', array( __CLASS__, 'filter_token_request_body' ) );
+
+ // Filter for the `jetpack/v4/connection/data` API response.
+ add_filter( 'jetpack_current_user_connection_data', array( __CLASS__, 'filter_jetpack_current_user_connection_data' ) );
+
+ // Actions for successful reconnect.
+ add_action( 'jetpack_reconnection_completed', array( $this, 'reconnection_completed' ) );
+
+ // Actions for successful disconnect.
+ add_action( 'jetpack_site_disconnected', array( $this, 'jetpack_site_disconnected' ) );
+
+ // Actions for licensing.
+ Licensing::instance()->initialize();
+
+ // Filters for Sync Callables.
+ add_filter( 'jetpack_sync_callable_whitelist', array( $this, 'filter_sync_callable_whitelist' ), 10, 1 );
+ add_filter( 'jetpack_sync_multisite_callable_whitelist', array( $this, 'filter_sync_multisite_callable_whitelist' ), 10, 1 );
+
+ // Make resources use static domain when possible.
+ add_filter( 'jetpack_static_url', array( 'Automattic\\Jetpack\\Assets', 'staticize_subdomain' ) );
+
+ // Validate the domain names in Jetpack development versions.
+ add_action( 'jetpack_pre_register', array( get_called_class(), 'registration_check_domains' ) );
+
+ // Register product descriptions for partner coupon usage.
+ add_filter( 'jetpack_partner_coupon_products', array( $this, 'get_partner_coupon_product_descriptions' ) );
}
/**
@@ -693,21 +864,34 @@ class Jetpack {
foreach (
array(
- 'connection',
'sync',
- 'tracking',
- 'tos',
+ 'jitm',
)
as $feature
) {
$config->ensure( $feature );
}
- if ( is_admin() ) {
- $config->ensure( 'jitm' );
- }
+ $config->ensure(
+ 'connection',
+ array(
+ 'slug' => 'jetpack',
+ 'name' => 'Jetpack',
+ )
+ );
- $this->connection_manager = new Connection_Manager();
+ // Identity crisis package.
+ $config->ensure(
+ 'identity_crisis',
+ array(
+ 'slug' => 'jetpack',
+ 'admin_page' => '/wp-admin/admin.php?page=jetpack',
+ )
+ );
+
+ if ( ! $this->connection_manager ) {
+ $this->connection_manager = new Connection_Manager( 'jetpack' );
+ }
/*
* Load things that should only be in Network Admin.
@@ -721,7 +905,7 @@ class Jetpack {
$network->set_connection( $this->connection_manager );
}
- if ( $this->connection_manager->is_active() ) {
+ if ( self::is_connection_ready() ) {
add_action( 'login_form_jetpack_json_api_authorization', array( $this, 'login_form_json_api_authorization' ) );
Jetpack_Heartbeat::init();
@@ -737,28 +921,21 @@ class Jetpack {
/*
* Enable enhanced handling of previewing sites in Calypso
*/
- if ( self::is_active() ) {
+ if ( self::is_connection_ready() ) {
require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.jetpack-iframe-embed.php';
add_action( 'init', array( 'Jetpack_Iframe_Embed', 'init' ), 9, 0 );
require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.jetpack-keyring-service-helper.php';
add_action( 'init', array( 'Jetpack_Keyring_Service_Helper', 'init' ), 9, 0 );
}
- /*
- * If enabled, point edit post, page, and comment links to Calypso instead of WP-Admin.
- * We should make sure to only do this for front end links.
- */
- if ( self::get_option( 'edit_links_calypso_redirect' ) && ! is_admin() ) {
- add_filter( 'get_edit_post_link', array( $this, 'point_edit_post_links_to_calypso' ), 1, 2 );
- add_filter( 'get_edit_comment_link', array( $this, 'point_edit_comment_links_to_calypso' ), 1 );
-
- /*
- * We'll override wp_notify_postauthor and wp_notify_moderator pluggable functions
- * so they point moderation links on emails to Calypso.
+ if ( ( new Tracking( 'jetpack', $this->connection_manager ) )->should_enable_tracking( new Terms_Of_Service(), new Status() ) ) {
+ add_action( 'init', array( new Plugin_Tracking(), 'init' ) );
+ } else {
+ /**
+ * Initialize tracking right after the user agrees to the terms of service.
*/
- jetpack_require_lib( 'functions.wp-notify' );
+ add_action( 'jetpack_agreed_to_terms_of_service', array( new Plugin_Tracking(), 'init' ) );
}
-
}
/**
@@ -768,10 +945,10 @@ class Jetpack {
* @action plugins_loaded
*/
public function late_initialization() {
- add_action( 'plugins_loaded', array( 'Jetpack', 'plugin_textdomain' ), 99 );
add_action( 'plugins_loaded', array( 'Jetpack', 'load_modules' ), 100 );
Partner::init();
+ My_Jetpack_Initializer::init();
/**
* Fires when Jetpack is fully loaded and ready. This is the point where it's safe
@@ -787,48 +964,9 @@ class Jetpack {
}
/**
- * Sets up the XMLRPC request handlers.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::setup_xmlrpc_handlers()
- *
- * @param Array $request_params Incoming request parameters.
- * @param Boolean $is_active Whether the connection is currently active.
- * @param Boolean $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(
- $request_params,
- $is_active,
- $is_signed,
- Jetpack_XMLRPC_Server $xmlrpc_server = null
- ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::setup_xmlrpc_handlers' );
- return $this->connection_manager->setup_xmlrpc_handlers(
- $request_params,
- $is_active,
- $is_signed,
- $xmlrpc_server
- );
- }
-
- /**
- * Initialize REST API registration connector.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::initialize_rest_api_registration_connector()
- */
- public function initialize_rest_api_registration_connector() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::initialize_rest_api_registration_connector' );
- $this->connection_manager->initialize_rest_api_registration_connector();
- }
-
- /**
* This is ported over from the manage module, which has been deprecated and baked in here.
- *
- * @param $domains
*/
- function add_wpcom_to_allowed_redirect_hosts( $domains ) {
+ public function add_wpcom_to_allowed_redirect_hosts() {
add_filter( 'allowed_redirect_hosts', array( $this, 'allow_wpcom_domain' ) );
}
@@ -836,7 +974,8 @@ class Jetpack {
* Return $domains, with 'wordpress.com' appended.
* This is ported over from the manage module, which has been deprecated and baked in here.
*
- * @param $domains
+ * @param array $domains Array of domains allowed for redirect.
+ *
* @return array
*/
function allow_wpcom_domain( $domains ) {
@@ -847,6 +986,14 @@ class Jetpack {
return array_unique( $domains );
}
+ /**
+ * Redirect edit post links to Calypso.
+ *
+ * @param string $default_url Post edit URL.
+ * @param int $post_id Post ID.
+ *
+ * @return string
+ */
function point_edit_post_links_to_calypso( $default_url, $post_id ) {
$post = get_post( $post_id );
@@ -857,109 +1004,128 @@ class Jetpack {
$post_type = $post->post_type;
// Mapping the allowed CPTs on WordPress.com to corresponding paths in Calypso.
- // https://en.support.wordpress.com/custom-post-types/
+ // https://en.support.wordpress.com/custom-post-types/.
$allowed_post_types = array(
- 'post' => 'post',
- 'page' => 'page',
- 'jetpack-portfolio' => 'edit/jetpack-portfolio',
- 'jetpack-testimonial' => 'edit/jetpack-testimonial',
+ 'post',
+ 'page',
+ 'jetpack-portfolio',
+ 'jetpack-testimonial',
);
- if ( ! in_array( $post_type, array_keys( $allowed_post_types ) ) ) {
+ if ( ! in_array( $post_type, $allowed_post_types, true ) ) {
return $default_url;
}
- $path_prefix = $allowed_post_types[ $post_type ];
-
- $site_slug = self::build_raw_urls( get_home_url() );
-
- return esc_url( sprintf( 'https://wordpress.com/%s/%s/%d', $path_prefix, $site_slug, $post_id ) );
+ return Redirect::get_url(
+ 'calypso-edit-' . $post_type,
+ array(
+ 'path' => $post_id,
+ )
+ );
}
+ /**
+ * Redirect edit comment links to Calypso.
+ *
+ * @param string $url Comment edit URL.
+ *
+ * @return string
+ */
function point_edit_comment_links_to_calypso( $url ) {
// Take the `query` key value from the URL, and parse its parts to the $query_args. `amp;c` matches the comment ID.
wp_parse_str( wp_parse_url( $url, PHP_URL_QUERY ), $query_args );
- return esc_url(
- sprintf(
- 'https://wordpress.com/comment/%s/%d',
- self::build_raw_urls( get_home_url() ),
- $query_args['amp;c']
+
+ return Redirect::get_url(
+ 'calypso-edit-comment',
+ array(
+ 'path' => $query_args['amp;c'],
)
);
- }
-
- function jetpack_track_last_sync_callback( $params ) {
- /**
- * Filter to turn off jitm caching
- *
- * @since 5.4.0
- *
- * @param bool false Whether to cache just in time messages
- */
- if ( ! apply_filters( 'jetpack_just_in_time_msg_cache', false ) ) {
- 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;
}
- function jetpack_connection_banner_callback() {
- check_ajax_referer( 'jp-connection-banner-nonce', 'nonce' );
+ /**
+ * Extend Sync callables with Jetpack Plugin functions.
+ *
+ * @param array $callables list of callables.
+ *
+ * @return array list of callables.
+ */
+ public function filter_sync_callable_whitelist( $callables ) {
- if ( isset( $_REQUEST['dismissBanner'] ) ) {
- Jetpack_Options::update_option( 'dismissed_connection_banner', 1 );
- wp_send_json_success();
+ // Jetpack Functions.
+ $jetpack_callables = array(
+ 'single_user_site' => array( 'Jetpack', 'is_single_user_site' ),
+ 'updates' => array( 'Jetpack', 'get_updates' ),
+ 'active_modules' => array( 'Jetpack', 'get_active_modules' ),
+ 'available_jetpack_blocks' => array( 'Jetpack_Gutenberg', 'get_availability' ), // Includes both Gutenberg blocks *and* plugins.
+ );
+ $callables = array_merge( $callables, $jetpack_callables );
+
+ // Jetpack_SSO_Helpers.
+ if ( include_once JETPACK__PLUGIN_DIR . 'modules/sso/class.jetpack-sso-helpers.php' ) {
+ $sso_helpers = array(
+ 'sso_is_two_step_required' => array( 'Jetpack_SSO_Helpers', 'is_two_step_required' ),
+ 'sso_should_hide_login_form' => array( 'Jetpack_SSO_Helpers', 'should_hide_login_form' ),
+ 'sso_match_by_email' => array( 'Jetpack_SSO_Helpers', 'match_by_email' ),
+ 'sso_new_user_override' => array( 'Jetpack_SSO_Helpers', 'new_user_override' ),
+ 'sso_bypass_default_login_form' => array( 'Jetpack_SSO_Helpers', 'bypass_login_forward_wpcom' ),
+ );
+ $callables = array_merge( $callables, $sso_helpers );
}
- wp_die();
+ return $callables;
}
/**
- * 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.
+ * Extend Sync multisite callables with Jetpack Plugin functions.
*
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::remove_non_jetpack_xmlrpc_methods()
+ * @param array $callables list of callables.
*
- * @param array $methods A list of registered WordPress XMLRPC methods.
- * @return array Filtered $methods
+ * @return array list of callables.
*/
- public function remove_non_jetpack_xmlrpc_methods( $methods ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::remove_non_jetpack_xmlrpc_methods' );
- return $this->connection_manager->remove_non_jetpack_xmlrpc_methods( $methods );
+ public function filter_sync_multisite_callable_whitelist( $callables ) {
+
+ // Jetpack Funtions.
+ $jetpack_multisite_callables = array(
+ 'network_name' => array( 'Jetpack', 'network_name' ),
+ 'network_allow_new_registrations' => array( 'Jetpack', 'network_allow_new_registrations' ),
+ 'network_add_new_users' => array( 'Jetpack', 'network_add_new_users' ),
+ 'network_site_upload_space' => array( 'Jetpack', 'network_site_upload_space' ),
+ 'network_upload_file_types' => array( 'Jetpack', 'network_upload_file_types' ),
+ 'network_enable_administration_menus' => array( 'Jetpack', 'network_enable_administration_menus' ),
+ );
+ $callables = array_merge( $callables, $jetpack_multisite_callables );
+
+ return $callables;
}
/**
- * 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.
+ * Deprecated
+ * Please use Automattic\Jetpack\JITMS\JITM::jetpack_track_last_sync_callback instead.
*
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::alternate_xmlrpc()
+ * @param array $params The action parameters.
+ *
+ * @deprecated since 9.8.
*/
- public function alternate_xmlrpc() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::alternate_xmlrpc' );
- $this->connection_manager->alternate_xmlrpc();
+ function jetpack_track_last_sync_callback( $params ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.8', '\Automattic\Jetpack\JITMS\JITM->jetpack_track_last_sync_callback' );
+ return Automattic\Jetpack\JITMS\JITM::get_instance()->jetpack_track_last_sync_callback( $params );
}
- /**
- * The callback for the JITM ajax requests.
- *
- * @deprecated since 7.9.0
- */
- function jetpack_jitm_ajax_callback() {
- _deprecated_function( __METHOD__, 'jetpack-7.9' );
+ function jetpack_connection_banner_callback() {
+ check_ajax_referer( 'jp-connection-banner-nonce', 'nonce' );
+
+ // Disable the banner dismiss functionality if the pre-connection prompt helpers filter is set.
+ if (
+ isset( $_REQUEST['dismissBanner'] ) &&
+ ! Jetpack_Connection_Banner::force_display()
+ ) {
+ Jetpack_Options::update_option( 'dismissed_connection_banner', 1 );
+ wp_send_json_success();
+ }
+
+ wp_die();
}
/**
@@ -971,40 +1137,16 @@ class Jetpack {
}
}
- function jetpack_custom_caps( $caps, $cap, $user_id, $args ) {
- $is_development_mode = ( new Status() )->is_development_mode();
+ /**
+ * Sets the Jetpack 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_custom_caps( $caps, $cap, $user_id, $args ) {
switch ( $cap ) {
- case 'jetpack_connect':
- case 'jetpack_reconnect':
- if ( $is_development_mode ) {
- $caps = array( 'do_not_allow' );
- break;
- }
- /**
- * Pass through. If it's not development mode, these should match disconnect.
- * Let users disconnect if it's development mode, just in case things glitch.
- */
- case 'jetpack_disconnect':
- /**
- * In multisite, can individual site admins manage their own connection?
- *
- * Ideally, this should be extracted out to a separate filter in the Jetpack_Network class.
- */
- if ( is_multisite() && ! is_super_admin() && is_plugin_active_for_network( 'jetpack/jetpack.php' ) ) {
- if ( ! Jetpack_Network::init()->get_option( 'sub-site-connection-override' ) ) {
- /**
- * We need to update the option name -- it's terribly unclear which
- * direction the override goes.
- *
- * @todo: Update the option name to `sub-sites-can-manage-own-connections`
- */
- $caps = array( 'do_not_allow' );
- break;
- }
- }
-
- $caps = array( 'manage_options' );
- break;
case 'jetpack_manage_modules':
case 'jetpack_activate_modules':
case 'jetpack_deactivate_modules':
@@ -1027,71 +1169,26 @@ class Jetpack {
$caps = array( 'manage_sites' );
break;
case 'jetpack_admin_page':
- if ( $is_development_mode ) {
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ if ( $is_offline_mode ) {
$caps = array( 'manage_options' );
break;
} else {
$caps = array( 'read' );
}
break;
- case 'jetpack_connect_user':
- if ( $is_development_mode ) {
- $caps = array( 'do_not_allow' );
- break;
- }
- $caps = array( 'read' );
- break;
}
return $caps;
}
/**
- * Require a Jetpack authentication.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::require_jetpack_authentication()
- */
- public function require_jetpack_authentication() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::require_jetpack_authentication' );
- $this->connection_manager->require_jetpack_authentication();
- }
-
- /**
- * Load language files
- *
- * @action plugins_loaded
- */
- public static function plugin_textdomain() {
- // Note to self, the third argument must not be hardcoded, to account for relocated folders.
- load_plugin_textdomain( 'jetpack', false, dirname( plugin_basename( JETPACK__PLUGIN_FILE ) ) . '/languages/' );
- }
-
- /**
* Register assets for use in various modules and the Jetpack admin page.
*
* @uses wp_script_is, wp_register_script, plugins_url
* @action wp_loaded
- * @return null
+ * @return void
*/
public function register_assets() {
- if ( ! wp_script_is( 'spin', 'registered' ) ) {
- wp_register_script(
- 'spin',
- Assets::get_file_url_for_environment( '_inc/build/spin.min.js', '_inc/spin.js' ),
- false,
- '1.3'
- );
- }
-
- if ( ! wp_script_is( 'jquery.spin', 'registered' ) ) {
- wp_register_script(
- 'jquery.spin',
- Assets::get_file_url_for_environment( '_inc/build/jquery.spin.min.js', '_inc/jquery.spin.js' ),
- array( 'jquery', 'spin' ),
- '1.3'
- );
- }
-
if ( ! wp_script_is( 'jetpack-gallery-settings', 'registered' ) ) {
wp_register_script(
'jetpack-gallery-settings',
@@ -1115,7 +1212,7 @@ class Jetpack {
wp_register_script(
'jetpack-facebook-embed',
Assets::get_file_url_for_environment( '_inc/build/facebook-embed.min.js', '_inc/facebook-embed.js' ),
- array( 'jquery' ),
+ array(),
null,
true
);
@@ -1174,10 +1271,10 @@ class Jetpack {
}
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- // WP.com: get_locale() returns 'it'
+ // WP.com: get_locale() returns 'it'.
$locale = GP_Locales::by_slug( $lang );
} else {
- // Jetpack: get_locale() returns 'it_IT';
+ // Jetpack: get_locale() returns 'it_IT';.
$locale = GP_Locales::by_field( 'facebook_locale', $lang );
}
@@ -1218,16 +1315,15 @@ class Jetpack {
/**
* Return the network_site_url so that .com knows what network this site is a part of.
*
- * @param bool $option
* @return string
*/
- public function jetpack_main_network_site_option( $option ) {
+ public function jetpack_main_network_site_option() {
return network_site_url();
}
/**
* Network Name.
*/
- static function network_name( $option = null ) {
+ public static function network_name() {
global $current_site;
return $current_site->site_name;
}
@@ -1236,7 +1332,7 @@ class Jetpack {
*
* @return string
*/
- static function network_allow_new_registrations( $option = null ) {
+ public static function network_allow_new_registrations() {
return ( in_array( get_site_option( 'registration' ), array( 'none', 'user', 'blog', 'all' ) ) ? get_site_option( 'registration' ) : 'none' );
}
/**
@@ -1244,7 +1340,7 @@ class Jetpack {
*
* @return boolian
*/
- static function network_add_new_users( $option = null ) {
+ public static function network_add_new_users() {
return (bool) get_site_option( 'add_new_users' );
}
/**
@@ -1253,8 +1349,8 @@ class Jetpack {
*
* @return number
*/
- static function network_site_upload_space( $option = null ) {
- // value in MB
+ public static function network_site_upload_space() {
+ // value in MB.
return ( get_site_option( 'upload_space_check_disabled' ) ? -1 : get_space_allowed() );
}
@@ -1263,7 +1359,7 @@ class Jetpack {
*
* @return string
*/
- static function network_upload_file_types( $option = null ) {
+ public static function network_upload_file_types() {
return get_site_option( 'upload_filetypes', 'jpg jpeg png gif' );
}
@@ -1272,8 +1368,8 @@ class Jetpack {
*
* @return number
*/
- static function network_max_upload_file_size( $option = null ) {
- // value in KB
+ public static function network_max_upload_file_size() {
+ // value in KB.
return get_site_option( 'fileupload_maxk', 300 );
}
@@ -1282,7 +1378,7 @@ class Jetpack {
*
* @return array
*/
- static function network_enable_administration_menus( $option = null ) {
+ public static function network_enable_administration_menus() {
return get_site_option( 'menu_items' );
}
@@ -1322,7 +1418,7 @@ class Jetpack {
if ( count( $admins ) > 1 ) {
$available = array();
foreach ( $admins as $admin ) {
- if ( self::is_user_connected( $admin->ID ) ) {
+ if ( self::connection()->is_user_connected( $admin->ID ) ) {
$available[] = $admin->ID;
}
}
@@ -1350,22 +1446,19 @@ class Jetpack {
* the rest the get_option( 'jetpack_is_multi_network' ); to return the value that is set in the
* database which could be set to anything as opposed to what this function returns.
*
- * @param bool $option
- *
* @return boolean
*/
- public function is_main_network_option( $option ) {
- // return '1' or ''
+ public function is_main_network_option() {
+ // returns either an '1' or an empty string.
return (string) (bool) self::is_multi_network();
}
/**
* Return true if we are with multi-site or multi-network false if we are dealing with single site.
*
- * @param string $option
- * @return boolean
+ * @return string
*/
- public function is_multisite( $option ) {
+ public function is_multisite() {
return (string) (bool) is_multisite();
}
@@ -1379,7 +1472,7 @@ class Jetpack {
public static function is_multi_network() {
global $wpdb;
- // if we don't have a multi site setup no need to do any more
+ // if we don't have a multi site setup no need to do any more.
if ( ! is_multisite() ) {
return false;
}
@@ -1393,22 +1486,6 @@ class Jetpack {
}
/**
- * Trigger an update to the main_network_site when we update the siteurl of a site.
- *
- * @return null
- */
- function update_jetpack_main_network_site_option() {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
- }
- /**
- * Triggered after a user updates the network settings via Network Settings Admin Page
- */
- function update_jetpack_network_settings() {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
- // Only sync this info for the main network site.
- }
-
- /**
* Get back if the current site is single user site.
*
* @return bool
@@ -1449,56 +1526,16 @@ class Jetpack {
return 0;
}
+// phpcs:disable WordPress.WP.CapitalPDangit.Misspelled
/**
- * Finds out if a site is using a version control system.
- *
- * @return string ( '1' | '0' )
- **/
- public static function is_version_controlled() {
- _deprecated_function( __METHOD__, 'jetpack-4.2', 'Functions::is_version_controlled' );
- return (string) (int) Functions::is_version_controlled();
- }
-
- /**
- * Determines whether the current theme supports featured images or not.
- *
- * @return string ( '1' | '0' )
- */
- public static function featured_images_enabled() {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
- return current_theme_supports( 'post-thumbnails' ) ? '1' : '0';
- }
-
- /**
- * Wrapper for core's get_avatar_url(). This one is deprecated.
+ * Gets updates and stores in jetpack_updates.
*
- * @deprecated 4.7 use get_avatar_url instead.
- * @param int|string|object $id_or_email A user ID, email address, or comment object
- * @param int $size Size of the avatar image
- * @param string $default URL to a default image to use if no avatar is available
- * @param bool $force_display Whether to force it to return an avatar even if show_avatars is disabled
- *
- * @return array
- */
- public static function get_avatar_url( $id_or_email, $size = 96, $default = '', $force_display = false ) {
- _deprecated_function( __METHOD__, 'jetpack-4.7', 'get_avatar_url' );
- return get_avatar_url(
- $id_or_email,
- array(
- 'size' => $size,
- 'default' => $default,
- 'force_default' => $force_display,
- )
- );
- }
-
- /**
- * jetpack_updates is saved in the following schema:
+ * The jetpack_updates option is saved in the following schema:
*
* array (
* 'plugins' => (int) Number of plugin updates available.
* 'themes' => (int) Number of theme updates available.
- * 'wordpress' => (int) Number of WordPress core updates available. // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
+ * 'wordpress' => (int) Number of WordPress core updates available.
* 'translations' => (int) Number of translation updates available.
* 'total' => (int) Total of all available updates.
* 'wp_update_version' => (string) The latest available version of WordPress, only present if a WordPress update is needed.
@@ -1523,7 +1560,13 @@ class Jetpack {
}
return isset( $updates ) ? $updates : array();
}
+ // phpcs:enable
+ /**
+ * Get update details for core, plugins, and themes.
+ *
+ * @return array
+ */
public static function get_update_details() {
$update_details = array(
'update_core' => get_site_transient( 'update_core' ),
@@ -1533,54 +1576,55 @@ class Jetpack {
return $update_details;
}
- public static function refresh_update_data() {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
-
- }
-
- public static function refresh_theme_data() {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
- }
-
/**
* Is Jetpack active?
+ * The method only checks if there's an existing token for the master user. It doesn't validate the token.
+ *
+ * This method is deprecated since 9.6.0. Please use one of the methods provided by the Manager class in the Connection package,
+ * or Jetpack::is_connection_ready if you want to know when the Jetpack plugin starts considering the connection ready to be used.
+ *
+ * Since this method has a wide spread use, we decided not to throw any deprecation warnings for now.
+ *
+ * @deprecated 9.6.0
+ *
+ * @return bool
*/
public static function is_active() {
- return (bool) Jetpack_Data::get_access_token( JETPACK_MASTER_USER );
+ return self::connection()->is_active();
}
/**
- * Make an API call to WordPress.com for plan status
+ * Returns true if the current site is connected to WordPress.com and has the minimum requirements to enable Jetpack UI
*
- * @deprecated 7.2.0 Use Jetpack_Plan::refresh_from_wpcom.
+ * This method was introduced just before the release of the possibility to use Jetpack without a user connection, while
+ * it was available only when no_user_testing_mode was enabled. In the near future, this will return is_connected for all
+ * users and this option will be available by default for everybody.
*
- * @return bool True if plan is updated, false if no update
- */
- public static function refresh_active_plan_from_wpcom() {
- _deprecated_function( __METHOD__, 'jetpack-7.2.0', 'Jetpack_Plan::refresh_from_wpcom' );
- return Jetpack_Plan::refresh_from_wpcom();
- }
-
- /**
- * Get the plan that this Jetpack site is currently using
+ * @since 9.6.0
+ * @since 9.7.0 returns is_connected in all cases and adds filter to the returned value
*
- * @deprecated 7.2.0 Use Jetpack_Plan::get.
- * @return array Active Jetpack plan details.
+ * @return bool is the site connection ready to be used?
*/
- public static function get_active_plan() {
- _deprecated_function( __METHOD__, 'jetpack-7.2.0', 'Jetpack_Plan::get' );
- return Jetpack_Plan::get();
- }
+ public static function is_connection_ready() {
+ $is_connected = false;
- /**
- * Determine whether the active plan supports a particular feature
- *
- * @deprecated 7.2.0 Use Jetpack_Plan::supports.
- * @return bool True if plan supports feature, false if not.
- */
- public static function active_plan_supports( $feature ) {
- _deprecated_function( __METHOD__, 'jetpack-7.2.0', 'Jetpack_Plan::supports' );
- return Jetpack_Plan::supports( $feature );
+ if ( method_exists( self::connection(), 'is_connected' ) ) {
+ $is_connected = self::connection()->is_connected();
+ } elseif ( method_exists( self::connection(), 'is_registered' ) ) {
+ $is_connected = self::connection()->is_registered();
+ }
+
+ /**
+ * Allows filtering whether the connection is ready to be used. If true, this will enable the Jetpack UI and modules
+ *
+ * Modules will be enabled depending on the connection status and if the module requires a connection or user connection.
+ *
+ * @since 9.7.0
+ *
+ * @param bool $is_connection_ready Is the connection ready?
+ * @param Automattic\Jetpack\Connection\Manager $connection_manager Instance of the Manager class, can be used to check the connection status.
+ */
+ return apply_filters( 'jetpack_is_connection_ready', $is_connected, self::connection() );
}
/**
@@ -1589,12 +1633,13 @@ class Jetpack {
* This static method is being left here intentionally without the use of _deprecated_function(), as other plugins
* and themes still use it, and we do not want to flood them with notices.
*
- * Please use Automattic\Jetpack\Status()->is_development_mode() instead.
+ * Please use Automattic\Jetpack\Status()->is_offline_mode() instead.
*
* @deprecated since 8.0.
*/
public static function is_development_mode() {
- return ( new Status() )->is_development_mode();
+ _deprecated_function( __METHOD__, 'jetpack-8.0', '\Automattic\Jetpack\Status->is_offline_mode' );
+ return ( new Status() )->is_offline_mode();
}
/**
@@ -1613,35 +1658,42 @@ class Jetpack {
}
/**
- * Determines reason for Jetpack development mode.
+ * Determines reason for Jetpack offline mode.
*/
public static function development_mode_trigger_text() {
- if ( ! ( new Status() )->is_development_mode() ) {
- return __( 'Jetpack is not in Development Mode.', 'jetpack' );
+ $status = new Status();
+
+ if ( ! $status->is_offline_mode() ) {
+ return __( 'Jetpack is not in Offline Mode.', 'jetpack' );
}
if ( defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG ) {
$notice = __( 'The JETPACK_DEV_DEBUG constant is defined in wp-config.php or elsewhere.', 'jetpack' );
- } elseif ( site_url() && false === strpos( site_url(), '.' ) ) {
- $notice = __( 'The site URL lacking a dot (e.g. http://localhost).', 'jetpack' );
- } else {
+ } elseif ( defined( 'WP_LOCAL_DEV' ) && WP_LOCAL_DEV ) {
+ $notice = __( 'The WP_LOCAL_DEV constant is defined in wp-config.php or elsewhere.', 'jetpack' );
+ } elseif ( $status->is_local_site() ) {
+ $notice = __( 'The site URL is a known local development environment URL (e.g. http://localhost).', 'jetpack' );
+ /** This filter is documented in packages/status/src/class-status.php */
+ } elseif ( has_filter( 'jetpack_development_mode' ) && apply_filters( 'jetpack_development_mode', false ) ) { // This is a deprecated filter name.
$notice = __( 'The jetpack_development_mode filter is set to true.', 'jetpack' );
+ } else {
+ $notice = __( 'The jetpack_offline_mode filter is set to true.', 'jetpack' );
}
return $notice;
}
/**
- * Get Jetpack development mode notice text and notice class.
+ * Get Jetpack offline mode notice text and notice class.
*
- * Mirrors the checks made in Automattic\Jetpack\Status->is_development_mode
+ * Mirrors the checks made in Automattic\Jetpack\Status->is_offline_mode
*/
public static function show_development_mode_notice() {
- if ( ( new Status() )->is_development_mode() ) {
+ if ( ( new Status() )->is_offline_mode() ) {
$notice = sprintf(
/* translators: %s is a URL */
- __( 'In <a href="%s" target="_blank">Development Mode</a>:', 'jetpack' ),
- 'https://jetpack.com/support/development-mode/'
+ __( 'In <a href="%s" target="_blank">Offline Mode</a>:', 'jetpack' ),
+ Redirect::get_url( 'jetpack-support-development-mode' )
);
$notice .= ' ' . self::development_mode_trigger_text();
@@ -1652,14 +1704,14 @@ class Jetpack {
// Throw up a notice if using a development version and as for feedback.
if ( self::is_development_version() ) {
/* translators: %s is a URL */
- $notice = sprintf( __( 'You are currently running a development version of Jetpack. <a href="%s" target="_blank">Submit your feedback</a>', 'jetpack' ), 'https://jetpack.com/contact-support/beta-group/' );
+ $notice = sprintf( __( 'You are currently running a development version of Jetpack. <a href="%s" target="_blank">Submit your feedback</a>', 'jetpack' ), Redirect::get_url( 'jetpack-contact-support-beta-group' ) );
echo '<div class="updated" style="border-color: #f0821e;"><p>' . $notice . '</p></div>';
}
- // Throw up a notice if using staging mode
+ // Throw up a notice if using staging mode.
if ( ( new Status() )->is_staging_site() ) {
/* translators: %s is a URL */
- $notice = sprintf( __( 'You are running Jetpack on a <a href="%s" target="_blank">staging server</a>.', 'jetpack' ), 'https://jetpack.com/support/staging-sites/' );
+ $notice = sprintf( __( 'You are running Jetpack on a <a href="%s" target="_blank">staging server</a>.', 'jetpack' ), Redirect::get_url( 'jetpack-support-staging-sites' ) );
echo '<div class="updated" style="border-color: #f0821e;"><p>' . $notice . '</p></div>';
}
@@ -1686,43 +1738,28 @@ class Jetpack {
/**
* Is a given user (or the current user if none is specified) linked to a WordPress.com user?
+ *
+ * @param int $user_id User ID or will use get_current_user_id if false/not provided.
*/
public static function is_user_connected( $user_id = false ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.5', 'Automattic\\Jetpack\\Connection\\Manager\\is_user_connected' );
return self::connection()->is_user_connected( $user_id );
}
/**
* Get the wpcom user data of the current|specified connected user.
+ *
+ * @param null|int $user_id User ID or will use get_current_user_id if null.
*/
public static function get_connected_user_data( $user_id = null ) {
- // TODO: remove in favor of Connection_Manager->get_connected_user_data
- if ( ! $user_id ) {
- $user_id = get_current_user_id();
- }
-
- $transient_key = "jetpack_connected_user_data_$user_id";
-
- if ( $cached_user_data = get_transient( $transient_key ) ) {
- 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;
+ _deprecated_function( __METHOD__, 'jetpack-9.5', 'Automattic\\Jetpack\\Connection\\Manager\\get_connected_user_data' );
+ return self::connection()->get_connected_user_data( $user_id );
}
/**
* Get the wpcom email of the current|specified connected user.
+ *
+ * @param null|int $user_id User ID or will use get_current_user_id if null.
*/
public static function get_connected_user_email( $user_id = null ) {
if ( ! $user_id ) {
@@ -1753,18 +1790,6 @@ class Jetpack {
}
/**
- * Whether the current user is the connection owner.
- *
- * @deprecated since 7.7
- *
- * @return bool Whether the current user is the connection owner.
- */
- public function current_user_is_connection_owner() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::is_connection_owner' );
- return self::connection()->is_connection_owner();
- }
-
- /**
* Gets current user IP address.
*
* @param bool $check_all_headers Check all headers? Default is `false`.
@@ -1793,35 +1818,13 @@ class Jetpack {
}
/**
- * Add any extra oEmbed providers that we know about and use on wpcom for feature parity.
- */
- function extra_oembed_providers() {
- // Cloudup: https://dev.cloudup.com/#oembed
- wp_oembed_add_provider( 'https://cloudup.com/*', 'https://cloudup.com/oembed' );
- wp_oembed_add_provider( 'https://me.sh/*', 'https://me.sh/oembed?format=json' );
- wp_oembed_add_provider( '#https?://(www\.)?gfycat\.com/.*#i', 'https://api.gfycat.com/v1/oembed', true );
- wp_oembed_add_provider( '#https?://[^.]+\.(wistia\.com|wi\.st)/(medias|embed)/.*#', 'https://fast.wistia.com/oembed', true );
- wp_oembed_add_provider( '#https?://sketchfab\.com/.*#i', 'https://sketchfab.com/oembed', true );
- wp_oembed_add_provider( '#https?://(www\.)?icloud\.com/keynote/.*#i', 'https://iwmb.icloud.com/iwmb/oembed', true );
- wp_oembed_add_provider( 'https://song.link/*', 'https://song.link/oembed', false );
- }
-
- /**
- * Synchronize connected user role changes
- */
- function user_role_change( $user_id ) {
- _deprecated_function( __METHOD__, 'jetpack-4.2', 'Users::user_role_change()' );
- Users::user_role_change( $user_id );
- }
-
- /**
* Loads the currently active modules.
*/
public static function load_modules() {
- $is_development_mode = ( new Status() )->is_development_mode();
+ $is_offline_mode = ( new Status() )->is_offline_mode();
if (
- ! self::is_active()
- && ! $is_development_mode
+ ! self::is_connection_ready()
+ && ! $is_offline_mode
&& ! self::is_onboarding()
&& (
! is_multisite()
@@ -1863,15 +1866,25 @@ class Jetpack {
$modules = array_diff( $modules, $updated_modules );
}
+ $is_site_connection = false;
+
+ if ( method_exists( self::connection(), 'is_site_connection' ) ) {
+ $is_site_connection = self::connection()->is_site_connection();
+ }
+
foreach ( $modules as $index => $module ) {
- // If we're in dev mode, disable modules requiring a connection
- if ( $is_development_mode ) {
- // Prime the pump if we need to
+ // If we're in offline/site-connection mode, disable modules requiring a connection/user connection.
+ if ( $is_offline_mode || $is_site_connection ) {
+ // Prime the pump if we need to.
if ( empty( $modules_data[ $module ] ) ) {
$modules_data[ $module ] = self::get_module( $module );
}
// If the module requires a connection, but we're in local mode, don't include it.
- if ( $modules_data[ $module ]['requires_connection'] ) {
+ if ( $is_offline_mode && $modules_data[ $module ]['requires_connection'] ) {
+ continue;
+ }
+
+ if ( $is_site_connection && $modules_data[ $module ]['requires_user_connection'] ) {
continue;
}
}
@@ -1910,7 +1923,7 @@ class Jetpack {
* Check if Jetpack's REST API compat file should be included
*
* @action plugins_loaded
- * @return null
+ * @return void
*/
public function check_rest_api_compat() {
/**
@@ -1922,10 +1935,6 @@ class Jetpack {
*/
$_jetpack_rest_api_compat_includes = apply_filters( 'jetpack_rest_api_compat', array() );
- if ( function_exists( 'bbpress' ) ) {
- $_jetpack_rest_api_compat_includes[] = JETPACK__PLUGIN_DIR . 'class.jetpack-bbpress-json-api-compat.php';
- }
-
foreach ( $_jetpack_rest_api_compat_includes as $_jetpack_rest_api_compat_include ) {
require_once $_jetpack_rest_api_compat_include;
}
@@ -2018,6 +2027,8 @@ class Jetpack {
*
* We don't want to store these in a static variable, in case
* there are switch_to_blog() calls involved.
+ *
+ * @param string $plugin Plugin to check in 'folder/file.php` format.
*/
public static function is_plugin_active( $plugin = 'jetpack/jetpack.php' ) {
return in_array( $plugin, self::get_active_plugins() );
@@ -2029,7 +2040,7 @@ class Jetpack {
*
* @uses Jetpack::get_active_modules, add_filter, get_option, apply_filters
* @action plugins_loaded
- * @return null
+ * @return void
*/
public function check_open_graph() {
if ( in_array( 'publicize', self::get_active_modules() ) || in_array( 'sharedaddy', self::get_active_modules() ) ) {
@@ -2065,7 +2076,7 @@ class Jetpack {
*
* @uses Jetpack::get_active_modules, add_filter, get_option, apply_filters
* @action plugins_loaded
- * @return null
+ * @return void
*/
public function check_twitter_tags() {
@@ -2092,81 +2103,29 @@ class Jetpack {
}
}
- /**
- * Allows plugins to submit security reports.
- *
- * @param string $type Report type (login_form, backup, file_scanning, spam)
- * @param string $plugin_file Plugin __FILE__, so that we can pull plugin data
- * @param array $args See definitions above
- */
- public static function submit_security_report( $type = '', $plugin_file = '', $args = array() ) {
- _deprecated_function( __FUNCTION__, 'jetpack-4.2', null );
- }
-
/* Jetpack Options API */
- public static function get_option_names( $type = 'compact' ) {
- return Jetpack_Options::get_option_names( $type );
- }
-
/**
- * Returns the requested option. Looks in jetpack_options or jetpack_$name as appropriate.
+ * Gets the option names from Jetpack_Options.
*
- * @param string $name Option name
- * @param mixed $default (optional)
- */
- public static function get_option( $name, $default = false ) {
- return Jetpack_Options::get_option( $name, $default );
- }
-
- /**
- * Updates the single given option. Updates jetpack_options or jetpack_$name as appropriate.
- *
- * @deprecated 3.4 use Jetpack_Options::update_option() instead.
- * @param string $name Option name
- * @param mixed $value Option value
- */
- public static function update_option( $name, $value ) {
- _deprecated_function( __METHOD__, 'jetpack-3.4', 'Jetpack_Options::update_option()' );
- return Jetpack_Options::update_option( $name, $value );
- }
-
- /**
- * Updates the multiple given options. Updates jetpack_options and/or jetpack_$name as appropriate.
- *
- * @deprecated 3.4 use Jetpack_Options::update_options() instead.
- * @param array $array array( option name => option value, ... )
- */
- public static function update_options( $array ) {
- _deprecated_function( __METHOD__, 'jetpack-3.4', 'Jetpack_Options::update_options()' );
- return Jetpack_Options::update_options( $array );
- }
-
- /**
- * Deletes the given option. May be passed multiple option names as an array.
- * Updates jetpack_options and/or deletes jetpack_$name as appropriate.
+ * @param string $type Jetpack option type.
*
- * @deprecated 3.4 use Jetpack_Options::delete_option() instead.
- * @param string|array $names
+ * @return array
*/
- public static function delete_option( $names ) {
- _deprecated_function( __METHOD__, 'jetpack-3.4', 'Jetpack_Options::delete_option()' );
- return Jetpack_Options::delete_option( $names );
+ public static function get_option_names( $type = 'compact' ) {
+ return Jetpack_Options::get_option_names( $type );
}
/**
- * @deprecated 8.0 Use Automattic\Jetpack\Connection\Utils::update_user_token() instead.
+ * Returns the requested option.
*
- * Enters a user token into the user_tokens option
+ * Looks in jetpack_options or jetpack_$name as appropriate.
*
- * @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
+ * @param string $name Option name.
+ * @param mixed $default Default value.
*/
- public static function update_user_token( $user_id, $token, $is_master_user ) {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Automattic\\Jetpack\\Connection\\Utils::update_user_token' );
- return Connection_Utils::update_user_token( $user_id, $token, $is_master_user );
+ public static function get_option( $name, $default = false ) {
+ return Jetpack_Options::get_option( $name, $default );
}
/**
@@ -2206,12 +2165,19 @@ class Jetpack {
return $files;
}
+ /**
+ * Activate new modules.
+ *
+ * @param bool $redirect Should this function redirect after activation.
+ *
+ * @return void
+ */
public static function activate_new_modules( $redirect = false ) {
- if ( ! self::is_active() && ! ( new Status() )->is_development_mode() ) {
+ if ( ! self::is_connection_ready() && ! ( new Status() )->is_offline_mode() ) {
return;
}
- $jetpack_old_version = Jetpack_Options::get_option( 'version' ); // [sic]
+ $jetpack_old_version = Jetpack_Options::get_option( 'version' );
if ( ! $jetpack_old_version ) {
$jetpack_old_version = $version = $old_version = '1.1:' . time();
/** This action is documented in class.jetpack.php */
@@ -2219,7 +2185,7 @@ class Jetpack {
Jetpack_Options::update_options( compact( 'version', 'old_version' ) );
}
- list( $jetpack_version ) = explode( ':', $jetpack_old_version ); // [sic]
+ list( $jetpack_version ) = explode( ':', $jetpack_old_version );
if ( version_compare( JETPACK__VERSION, $jetpack_version, '<=' ) ) {
return;
@@ -2252,10 +2218,11 @@ class Jetpack {
);
self::state( 'message', 'modules_activated' );
+
self::activate_default_modules( $jetpack_version, JETPACK__VERSION, $reactivate_modules, $redirect );
if ( $redirect ) {
- $page = 'jetpack'; // make sure we redirect to either settings or the jetpack page
+ $page = 'jetpack'; // make sure we redirect to either settings or the jetpack page.
if ( isset( $_GET['page'] ) && in_array( $_GET['page'], array( 'jetpack', 'jetpack_modules' ) ) ) {
$page = $_GET['page'];
}
@@ -2268,8 +2235,15 @@ class Jetpack {
/**
* List available Jetpack modules. Simply lists .php files in /modules/.
* Make sure to tuck away module "library" files in a sub-directory.
+ *
+ * @param bool|string $min_version Only return modules introduced in this version or later. Default is false, do not filter.
+ * @param bool|string $max_version Only return modules introduced before this version. Default is false, do not filter.
+ * @param bool|null $requires_connection Pass a boolean value to only return modules that require (or do not require) a connection.
+ * @param bool|null $requires_user_connection Pass a boolean value to only return modules that require (or do not require) a user connection.
+ *
+ * @return array $modules Array of module slugs
*/
- public static function get_available_modules( $min_version = false, $max_version = false ) {
+ public static function get_available_modules( $min_version = false, $max_version = false, $requires_connection = null, $requires_user_connection = null ) {
static $modules = null;
if ( ! isset( $modules ) ) {
@@ -2283,11 +2257,14 @@ class Jetpack {
$modules = array();
foreach ( $files as $file ) {
- if ( ! $headers = self::get_module( $file ) ) {
+ $slug = self::get_module_slug( $file );
+ $headers = self::get_module( $slug );
+
+ if ( ! $headers ) {
continue;
}
- $modules[ self::get_module_slug( $file ) ] = $headers['introduced'];
+ $modules[ $slug ] = $headers['introduced'];
}
Jetpack_Options::update_option(
@@ -2307,10 +2284,12 @@ class Jetpack {
* @param array $modules Array of available modules.
* @param string $min_version Minimum version number required to use modules.
* @param string $max_version Maximum version number required to use modules.
+ * @param bool|null $requires_connection Value of the Requires Connection filter.
+ * @param bool|null $requires_user_connection Value of the Requires User Connection filter.
*/
- $mods = apply_filters( 'jetpack_get_available_modules', $modules, $min_version, $max_version );
+ $mods = apply_filters( 'jetpack_get_available_modules', $modules, $min_version, $max_version, $requires_connection, $requires_user_connection );
- if ( ! $min_version && ! $max_version ) {
+ if ( ! $min_version && ! $max_version && is_null( $requires_connection ) && is_null( $requires_user_connection ) ) {
return array_keys( $mods );
}
@@ -2324,6 +2303,16 @@ class Jetpack {
continue;
}
+ $mod_details = self::get_module( $slug );
+
+ if ( null !== $requires_connection && (bool) $requires_connection !== $mod_details['requires_connection'] ) {
+ continue;
+ }
+
+ if ( null !== $requires_user_connection && (bool) $requires_user_connection !== $mod_details['requires_user_connection'] ) {
+ continue;
+ }
+
$r[] = $slug;
}
@@ -2331,12 +2320,19 @@ class Jetpack {
}
/**
- * Default modules loaded on activation.
+ * Get default modules loaded on activation.
+ *
+ * @param bool|string $min_version Only return modules introduced in this version or later. Default is false, do not filter.
+ * @param bool|string $max_version Only return modules introduced before this version. Default is false, do not filter.
+ * @param bool|null $requires_connection Pass a boolean value to only return modules that require (or do not require) a connection.
+ * @param bool|null $requires_user_connection Pass a boolean value to only return modules that require (or do not require) a user connection.
+ *
+ * @return array $modules Array of module slugs
*/
- public static function get_default_modules( $min_version = false, $max_version = false ) {
+ public static function get_default_modules( $min_version = false, $max_version = false, $requires_connection = null, $requires_user_connection = null ) {
$return = array();
- foreach ( self::get_available_modules( $min_version, $max_version ) as $module ) {
+ foreach ( self::get_available_modules( $min_version, $max_version, $requires_connection, $requires_user_connection ) as $module ) {
$module_data = self::get_module( $module );
switch ( strtolower( $module_data['auto_activate'] ) ) {
@@ -2361,8 +2357,10 @@ class Jetpack {
* @param array $return Array of default modules.
* @param string $min_version Minimum version number required to use modules.
* @param string $max_version Maximum version number required to use modules.
+ * @param bool|null $requires_connection Value of the Requires Connection filter.
+ * @param bool|null $requires_user_connection Value of the Requires User Connection filter.
*/
- return apply_filters( 'jetpack_get_default_modules', $return, $min_version, $max_version );
+ return apply_filters( 'jetpack_get_default_modules', $return, $min_version, $max_version, $requires_connection, $requires_user_connection );
}
/**
@@ -2379,7 +2377,7 @@ class Jetpack {
*
* @since 2.6
* @uses jetpack_get_default_modules filter
- * @param array $modules
+ * @param array $modules Array of Jetpack modules.
* @return array
*/
function handle_deprecated_modules( $modules ) {
@@ -2387,6 +2385,7 @@ class Jetpack {
'debug' => null, // Closed out and moved to the debugger library.
'wpcc' => 'sso', // Closed out in 2.6 -- SSO provides the same functionality.
'gplus-authorship' => null, // Closed out in 3.2 -- Google dropped support.
+ 'minileven' => null, // Closed out in 8.3 -- Responsive themes are common now, and so is AMP.
);
// Don't activate SSO if they never completed activating WPCC.
@@ -2417,7 +2416,7 @@ class Jetpack {
*
* @since 2.6
* @uses jetpack_get_default_modules filter
- * @param array $modules
+ * @param array $modules Array of Jetpack modules.
* @return array
*/
function filter_default_modules( $modules ) {
@@ -2447,6 +2446,10 @@ class Jetpack {
/**
* Extract a module's slug from its full path.
+ *
+ * @param string $file Full path to a file.
+ *
+ * @return string Module slug.
*/
public static function get_module_slug( $file ) {
return str_replace( '.php', '', basename( $file ) );
@@ -2454,6 +2457,8 @@ class Jetpack {
/**
* Generate a module's path from its slug.
+ *
+ * @param string $slug Module slug.
*/
public static function get_module_path( $slug ) {
/**
@@ -2471,64 +2476,70 @@ class Jetpack {
* Load module data from module file. Headers differ from WordPress
* plugin headers to avoid them being identified as standalone
* plugins on the WordPress plugins page.
+ *
+ * @param string $module The module slug.
*/
public static function get_module( $module ) {
- $headers = array(
- 'name' => 'Module Name',
- 'description' => 'Module Description',
- 'sort' => 'Sort Order',
- 'recommendation_order' => 'Recommendation Order',
- 'introduced' => 'First Introduced',
- 'changed' => 'Major Changes In',
- 'deactivate' => 'Deactivate',
- 'free' => 'Free',
- 'requires_connection' => 'Requires Connection',
- 'auto_activate' => 'Auto Activate',
- 'module_tags' => 'Module Tags',
- 'feature' => 'Feature',
- 'additional_search_queries' => 'Additional Search Queries',
- 'plan_classes' => 'Plans',
- );
-
- $file = self::get_module_path( self::get_module_slug( $module ) );
+ static $modules_details;
- $mod = self::get_file_data( $file, $headers );
- if ( empty( $mod['name'] ) ) {
+ if ( jetpack_has_no_module_info( $module ) ) {
return false;
}
- $mod['sort'] = empty( $mod['sort'] ) ? 10 : (int) $mod['sort'];
- $mod['recommendation_order'] = empty( $mod['recommendation_order'] ) ? 20 : (int) $mod['recommendation_order'];
- $mod['deactivate'] = empty( $mod['deactivate'] );
- $mod['free'] = empty( $mod['free'] );
- $mod['requires_connection'] = ( ! empty( $mod['requires_connection'] ) && 'No' == $mod['requires_connection'] ) ? false : true;
+ $file = self::get_module_path( self::get_module_slug( $module ) );
- if ( empty( $mod['auto_activate'] ) || ! in_array( strtolower( $mod['auto_activate'] ), array( 'yes', 'no', 'public' ) ) ) {
- $mod['auto_activate'] = 'No';
+ if ( isset( $modules_details[ $module ] ) ) {
+ $mod = $modules_details[ $module ];
} else {
- $mod['auto_activate'] = (string) $mod['auto_activate'];
- }
+ $mod = jetpack_get_module_info( $module );
- if ( $mod['module_tags'] ) {
- $mod['module_tags'] = explode( ',', $mod['module_tags'] );
- $mod['module_tags'] = array_map( 'trim', $mod['module_tags'] );
- $mod['module_tags'] = array_map( array( __CLASS__, 'translate_module_tag' ), $mod['module_tags'] );
- } else {
- $mod['module_tags'] = array( self::translate_module_tag( 'Other' ) );
- }
+ if ( null === $mod ) {
+ // Try to get the module info from the file as a fallback.
+ $mod = self::get_file_data( $file, jetpack_get_all_module_header_names() );
- if ( $mod['plan_classes'] ) {
- $mod['plan_classes'] = explode( ',', $mod['plan_classes'] );
- $mod['plan_classes'] = array_map( 'strtolower', array_map( 'trim', $mod['plan_classes'] ) );
- } else {
- $mod['plan_classes'] = array( 'free' );
- }
+ if ( empty( $mod['name'] ) ) {
+ // No info for this module.
+ return false;
+ }
+ }
+
+ $mod['sort'] = empty( $mod['sort'] ) ? 10 : (int) $mod['sort'];
+ $mod['recommendation_order'] = empty( $mod['recommendation_order'] ) ? 20 : (int) $mod['recommendation_order'];
+ $mod['deactivate'] = empty( $mod['deactivate'] );
+ $mod['free'] = empty( $mod['free'] );
+ $mod['requires_connection'] = ( ! empty( $mod['requires_connection'] ) && 'No' === $mod['requires_connection'] ) ? false : true;
+ $mod['requires_user_connection'] = ( empty( $mod['requires_user_connection'] ) || 'No' === $mod['requires_user_connection'] ) ? false : true;
+
+ if ( empty( $mod['auto_activate'] ) || ! in_array( strtolower( $mod['auto_activate'] ), array( 'yes', 'no', 'public' ), true ) ) {
+ $mod['auto_activate'] = 'No';
+ } else {
+ $mod['auto_activate'] = (string) $mod['auto_activate'];
+ }
+
+ if ( $mod['module_tags'] ) {
+ $mod['module_tags'] = explode( ',', $mod['module_tags'] );
+ $mod['module_tags'] = array_map( 'trim', $mod['module_tags'] );
+ $mod['module_tags'] = array_map( array( __CLASS__, 'translate_module_tag' ), $mod['module_tags'] );
+ } else {
+ $mod['module_tags'] = array( self::translate_module_tag( 'Other' ) );
+ }
+
+ if ( $mod['plan_classes'] ) {
+ $mod['plan_classes'] = explode( ',', $mod['plan_classes'] );
+ $mod['plan_classes'] = array_map( 'strtolower', array_map( 'trim', $mod['plan_classes'] ) );
+ } else {
+ $mod['plan_classes'] = array( 'free' );
+ }
+
+ if ( $mod['feature'] ) {
+ $mod['feature'] = explode( ',', $mod['feature'] );
+ $mod['feature'] = array_map( 'trim', $mod['feature'] );
+ } else {
+ $mod['feature'] = array( self::translate_module_tag( 'Other' ) );
+ }
+
+ $modules_details[ $module ] = $mod;
- if ( $mod['feature'] ) {
- $mod['feature'] = explode( ',', $mod['feature'] );
- $mod['feature'] = array_map( 'trim', $mod['feature'] );
- } else {
- $mod['feature'] = array( self::translate_module_tag( 'Other' ) );
}
/**
@@ -2564,9 +2575,12 @@ class Jetpack {
/**
* Like core's get_file_data implementation, but caches the result.
+ *
+ * @param string $file Absolute path to the file.
+ * @param array $headers List of headers, in the format array( 'HeaderKey' => 'Header Name' ).
*/
public static function get_file_data( $file, $headers ) {
- // Get just the filename from $file (i.e. exclude full path) so that a consistent hash is generated
+ // Get just the filename from $file (i.e. exclude full path) so that a consistent hash is generated.
$file_name = basename( $file );
$cache_key = 'jetpack_file_data_' . JETPACK__VERSION;
@@ -2599,7 +2613,6 @@ class Jetpack {
return $data;
}
-
/**
* Return translated module tag.
*
@@ -2612,68 +2625,11 @@ class Jetpack {
}
/**
- * Get i18n strings as a JSON-encoded string
- *
- * @return string The locale as JSON
- */
- public static function get_i18n_data_json() {
-
- // WordPress 5.0 uses md5 hashes of file paths to associate translation
- // JSON files with the file they should be included for. This is an md5
- // of '_inc/build/admin.js'.
- $path_md5 = '1bac79e646a8bf4081a5011ab72d5807';
-
- $i18n_json =
- JETPACK__PLUGIN_DIR
- . 'languages/json/jetpack-'
- . get_user_locale()
- . '-'
- . $path_md5
- . '.json';
-
- if ( is_file( $i18n_json ) && is_readable( $i18n_json ) ) {
- $locale_data = @file_get_contents( $i18n_json );
- if ( $locale_data ) {
- return $locale_data;
- }
- }
-
- // Return valid empty Jed locale
- return '{ "locale_data": { "messages": { "": {} } } }';
- }
-
- /**
- * Add locale data setup to wp-i18n
- *
- * Any Jetpack script that depends on wp-i18n should use this method to set up the locale.
- *
- * The locale setup depends on an adding inline script. This is error-prone and could easily
- * result in multiple additions of the same script when exactly 0 or 1 is desireable.
- *
- * This method provides a safe way to request the setup multiple times but add the script at
- * most once.
- *
- * @since 6.7.0
- *
- * @return void
- */
- public static function setup_wp_i18n_locale_data() {
- static $script_added = false;
- if ( ! $script_added ) {
- $script_added = true;
- wp_add_inline_script(
- 'wp-i18n',
- 'wp.i18n.setLocaleData( ' . self::get_i18n_data_json() . ', \'jetpack\' );'
- );
- }
- }
-
- /**
* Return module name translation. Uses matching string created in modules/module-headings.php.
*
* @since 3.9.2
*
- * @param array $modules
+ * @param array $modules Array of Jetpack modules.
*
* @return string|void
*/
@@ -2739,6 +2695,13 @@ class Jetpack {
return in_array( $module, self::get_active_modules() );
}
+ /**
+ * Is slug a valid module.
+ *
+ * @param string $module Module slug.
+ *
+ * @return bool
+ */
public static function is_module( $module ) {
return ! empty( $module ) && ! validate_file( $module, self::get_available_modules() );
}
@@ -2777,7 +2740,7 @@ class Jetpack {
* Rewrites ABSPATH (eg `/home/jetpack/wordpress/`) to ABSPATH, and if WP_CONTENT_DIR
* is located outside of ABSPATH, rewrites that to WP_CONTENT_DIR.
*
- * @param $string
+ * @param string $string String to attempt rewrite.
* @return mixed
*/
public static function alias_directories( $string ) {
@@ -2789,12 +2752,27 @@ class Jetpack {
return $string;
}
+ /**
+ * Activates default Jetpack modules.
+ *
+ * @param null|string $min_version Only return modules introduced in this version or later. Default is false, do not filter.
+ * @param null|string $max_version Only return modules introduced before this version. Default is false, do not filter.
+ * @param array $other_modules Other modules to activate.
+ * @param null|bool $redirect Should there be a redirection after activation.
+ * @param bool $send_state_messages If a state message should be sent.
+ * @param bool|null $requires_connection Pass a boolean value to only return modules that require (or do not require) a connection.
+ * @param bool|null $requires_user_connection Pass a boolean value to only return modules that require (or do not require) a user connection.
+ *
+ * @return void
+ */
public static function activate_default_modules(
$min_version = false,
$max_version = false,
$other_modules = array(),
$redirect = null,
- $send_state_messages = null
+ $send_state_messages = null,
+ $requires_connection = null,
+ $requires_user_connection = null
) {
$jetpack = self::init();
@@ -2822,7 +2800,7 @@ class Jetpack {
$send_state_messages = current_user_can( 'jetpack_activate_modules' );
}
- $modules = self::get_default_modules( $min_version, $max_version );
+ $modules = self::get_default_modules( $min_version, $max_version, $requires_connection, $requires_user_connection );
$modules = array_merge( $other_modules, $modules );
// Look for standalone plugins and disable if active.
@@ -2865,13 +2843,15 @@ class Jetpack {
*
* @since 1.9.0
*
- * @param string $min_version Minimum version number required to use modules.
- * @param string $max_version Maximum version number required to use modules.
- * @param array $other_modules Array of other modules to activate alongside the default modules.
+ * @param string $min_version Minimum version number required to use modules.
+ * @param string $max_version Maximum version number required to use modules.
+ * @param array $other_modules Array of other modules to activate alongside the default modules.
+ * @param bool|null $requires_connection Value of the Requires Connection filter.
+ * @param bool|null $requires_user_connection Value of the Requires User Connection filter.
*/
- do_action( 'jetpack_before_activate_default_modules', $min_version, $max_version, $other_modules );
+ do_action( 'jetpack_before_activate_default_modules', $min_version, $max_version, $other_modules, $requires_connection, $requires_user_connection );
- // Check each module for fatal errors, a la wp-admin/plugins.php::activate before activating
+ // Check each module for fatal errors, a la wp-admin/plugins.php::activate before activating.
if ( $send_state_messages ) {
self::restate();
self::catch_errors( true );
@@ -2906,7 +2886,7 @@ class Jetpack {
continue;
}
- // we'll override this later if the plugin can be included without fatal error
+ // we'll override this later if the plugin can be included without fatal error.
if ( $redirect ) {
wp_safe_redirect( self::admin_url( 'page=jetpack' ) );
}
@@ -2949,13 +2929,24 @@ class Jetpack {
*
* @since 1.9.0
*
- * @param string $min_version Minimum version number required to use modules.
- * @param string $max_version Maximum version number required to use modules.
- * @param array $other_modules Array of other modules to activate alongside the default modules.
+ * @param string $min_version Minimum version number required to use modules.
+ * @param string $max_version Maximum version number required to use modules.
+ * @param array $other_modules Array of other modules to activate alongside the default modules.
+ * @param bool|null $requires_connection Value of the Requires Connection filter.
+ * @param bool|null $requires_user_connection Value of the Requires User Connection filter.
*/
- do_action( 'jetpack_activate_default_modules', $min_version, $max_version, $other_modules );
+ do_action( 'jetpack_activate_default_modules', $min_version, $max_version, $other_modules, $requires_connection, $requires_user_connection );
}
+ /**
+ * Activate a module.
+ *
+ * @param string $module Module slug.
+ * @param bool $exit Should exit be called after deactivation.
+ * @param bool $redirect Should there be a redirection after activation.
+ *
+ * @return bool|void
+ */
public static function activate_module( $module, $exit = true, $redirect = true ) {
/**
* Fires before a module is activated.
@@ -2978,7 +2969,7 @@ class Jetpack {
return false;
}
- // If it's already active, then don't do it again
+ // If it's already active, then don't do it again.
$active = self::get_active_modules();
foreach ( $active as $act ) {
if ( $act == $module ) {
@@ -2988,21 +2979,21 @@ class Jetpack {
$module_data = self::get_module( $module );
- $is_development_mode = ( new Status() )->is_development_mode();
- if ( ! self::is_active() ) {
- if ( ! $is_development_mode && ! self::is_onboarding() ) {
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ if ( ! self::is_connection_ready() ) {
+ if ( ! $is_offline_mode && ! self::is_onboarding() ) {
return false;
}
- // If we're not connected but in development mode, make sure the module doesn't require a connection
- if ( $is_development_mode && $module_data['requires_connection'] ) {
+ // If we're not connected but in offline mode, make sure the module doesn't require a connection.
+ if ( $is_offline_mode && $module_data['requires_connection'] ) {
return false;
}
}
- // Check and see if the old plugin is active
+ // Check and see if the old plugin is active.
if ( isset( $jetpack->plugins_to_deactivate[ $module ] ) ) {
- // Deactivate the old plugin
+ // Deactivate the old plugin.
if ( Jetpack_Client_Server::deactivate_plugin( $jetpack->plugins_to_deactivate[ $module ][0], $jetpack->plugins_to_deactivate[ $module ][1] ) ) {
// If we deactivated the old plugin, remembere that with ::state() and redirect back to this page to activate the module
// We can't activate the module on this page load since the newly deactivated old plugin is still loaded on this page load.
@@ -3012,7 +3003,7 @@ class Jetpack {
}
}
- // Protect won't work with mis-configured IPs
+ // Protect won't work with mis-configured IPs.
if ( 'protect' === $module ) {
include_once JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php';
if ( ! jetpack_protect_get_ip() ) {
@@ -3025,9 +3016,9 @@ class Jetpack {
return false;
}
- // Check the file for fatal errors, a la wp-admin/plugins.php::activate
+ // Check the file for fatal errors, a la wp-admin/plugins.php::activate.
self::state( 'module', $module );
- self::state( 'error', 'module_activation_failed' ); // we'll override this later if the plugin can be included without fatal error
+ self::state( 'error', 'module_activation_failed' ); // we'll override this later if the plugin can be included without fatal error.
self::catch_errors( true );
ob_start();
@@ -3037,7 +3028,7 @@ class Jetpack {
$active[] = $module;
self::update_active_modules( $active );
- self::state( 'error', false ); // the override
+ self::state( 'error', false ); // the override.
ob_end_clean();
self::catch_errors( false );
@@ -3050,10 +3041,13 @@ class Jetpack {
return true;
}
- function activate_module_actions( $module ) {
- _deprecated_function( __METHOD__, 'jetpack-4.2' );
- }
-
+ /**
+ * Deactivate module.
+ *
+ * @param string $module Module slug.
+ *
+ * @return bool
+ */
public static function deactivate_module( $module ) {
/**
* Fires when a module is deactivated.
@@ -3072,6 +3066,13 @@ class Jetpack {
return self::update_active_modules( $new );
}
+ /**
+ * Enable a configuable module.
+ *
+ * @param string $module Module slug.
+ *
+ * @return void
+ */
public static function enable_module_configurable( $module ) {
$module = self::get_module_slug( $module );
add_filter( 'jetpack_module_configurable_' . $module, '__return_true' );
@@ -3081,8 +3082,8 @@ class Jetpack {
* Composes a module configure URL. It uses Jetpack settings search as default value
* It is possible to redefine resulting URL by using "jetpack_module_configuration_url_$module" filter
*
- * @param string $module Module slug
- * @return string $url module configuration URL
+ * @param string $module Module slug.
+ * @return string $url module configuration URL.
*/
public static function module_configuration_url( $module ) {
$module = self::get_module_slug( $module );
@@ -3100,6 +3101,14 @@ class Jetpack {
}
/* Installation */
+ /**
+ * Bail on activation if there is an issue.
+ *
+ * @param string $message Error message.
+ * @param bool $deactivate Deactivate Jetpack or not.
+ *
+ * @return void
+ */
public static function bail_on_activation( $message, $deactivate = true ) {
?>
<!doctype html>
@@ -3144,12 +3153,13 @@ p {
/**
* Attached to activate_{ plugin_basename( __FILES__ ) } by register_activation_hook()
*
- * @static
+ * @param bool $network_wide Network-wide activation.
*/
public static function plugin_activation( $network_wide ) {
Jetpack_Options::update_option( 'activated', 1 );
if ( version_compare( $GLOBALS['wp_version'], JETPACK__MINIMUM_WP_VERSION, '<' ) ) {
+ /* translator: Jetpack version number. */
self::bail_on_activation( sprintf( __( 'Jetpack requires WordPress version %s or later.', 'jetpack' ), JETPACK__MINIMUM_WP_VERSION ) );
}
@@ -3157,16 +3167,28 @@ p {
self::state( 'network_nag', true );
}
- // For firing one-off events (notices) immediately after activation
- set_transient( 'activated_jetpack', true, .1 * MINUTE_IN_SECONDS );
+ // For firing one-off events (notices) immediately after activation.
+ set_transient( 'activated_jetpack', true, 0.1 * MINUTE_IN_SECONDS );
update_option( 'jetpack_activation_source', self::get_activation_source( wp_get_referer() ) );
+ Health::on_jetpack_activated();
+
+ if ( self::is_connection_ready() && method_exists( 'Automattic\Jetpack\Sync\Actions', 'do_only_first_initial_sync' ) ) {
+ Sync_Actions::do_only_first_initial_sync();
+ }
+
self::plugin_initialize();
}
+ /**
+ * Returns the activation source.
+ *
+ * @param string $referer_url URL.
+ *
+ * @return array source_type, source_query.
+ */
public static function get_activation_source( $referer_url ) {
-
if ( defined( 'WP_CLI' ) && WP_CLI ) {
return array( 'wp-cli', null );
}
@@ -3176,7 +3198,7 @@ p {
$source_type = 'unknown';
$source_query = null;
- if ( ! is_array( $referer ) ) {
+ if ( ! is_array( $referer ) || ! isset( $referer['path'] ) ) {
return array( $source_type, $source_query );
}
@@ -3218,13 +3240,37 @@ p {
/**
* Runs before bumping version numbers up to a new version
*
- * @param string $version Version:timestamp
- * @param string $old_version Old Version:timestamp or false if not set yet.
- * @return null [description]
+ * @param string $version Version:timestamp.
+ * @param string $old_version Old Version:timestamp or false if not set yet.
*/
public static function do_version_bump( $version, $old_version ) {
- if ( ! $old_version ) { // For new sites
- // There used to be stuff here, but this seems like it might be useful to someone in the future...
+ if ( $old_version ) { // For existing Jetpack installations.
+ add_action( 'admin_enqueue_scripts', __CLASS__ . '::enqueue_block_style' );
+
+ // If a front end page is visited after the update, the 'wp' action will fire.
+ add_action( 'wp', 'Jetpack::set_update_modal_display' );
+
+ // If an admin page is visited after the update, the 'current_screen' action will fire.
+ add_action( 'current_screen', 'Jetpack::set_update_modal_display' );
+ }
+ }
+
+ /**
+ * Sets the display_update_modal state.
+ */
+ public static function set_update_modal_display() {
+ self::state( 'display_update_modal', true );
+
+ }
+
+ /**
+ * Enqueues the block library styles.
+ *
+ * @param string $hook The current admin page.
+ */
+ public static function enqueue_block_style( $hook ) {
+ if ( 'toplevel_page_jetpack' === $hook ) {
+ wp_enqueue_style( 'wp-block-library' );
}
}
@@ -3245,6 +3291,10 @@ p {
Jetpack_Options::update_options( compact( 'version', 'old_version' ) );
}
+ if ( self::is_connection_ready() ) {
+ self::handle_default_module_activation( true );
+ }
+
self::load_modules();
Jetpack_Options::delete_option( 'do_activate' );
@@ -3252,98 +3302,129 @@ p {
}
/**
+ * Handles the activation of the default modules depending on the current state of the site:
+ * - If the site already has the jetpack_active_modules option, activate those.
+ * - If the site has a site-only connection, only activate the default modules that require only a site connection.
+ * - If the site has a user connection, activate the default modules that require a user connection.
+ *
+ * @param bool $should_activate_user_modules Whether the status of the user connection should be checked and the default modules that
+ * require a user connection activated.
+ */
+ private static function handle_default_module_activation( $should_activate_user_modules ) {
+ $active_modules = Jetpack_Options::get_option( 'active_modules' );
+ if ( $active_modules ) {
+ self::delete_active_modules();
+
+ // If there was previously activated modules (a reconnection), re-activate them all including those that require a user, and do not re-activate those that have been deactivated.
+ self::activate_default_modules( 999, 1, $active_modules, false );
+ } else {
+ // Check for a user connection.
+ if ( $should_activate_user_modules && ( new Connection_Manager() )->get_connection_owner_id() ) {
+ self::activate_default_modules( false, false, array(), false, null, null, null );
+ Jetpack_Options::update_option( 'active_modules_initialized', true );
+ } else {
+ self::activate_default_modules( false, false, array(), false, null, null, false );
+ }
+ }
+ }
+
+ /**
* Removes all connection options
*
* @static
*/
public static function plugin_deactivation() {
require_once ABSPATH . '/wp-admin/includes/plugin.php';
+ $tracking = new Tracking();
+ $tracking->record_user_event( 'deactivate_plugin', array() );
if ( is_plugin_active_for_network( 'jetpack/jetpack.php' ) ) {
Jetpack_Network::init()->deactivate();
} else {
- self::disconnect( false );
- // Jetpack_Heartbeat::init()->deactivate();
+ add_filter( 'jetpack_update_activated_state_on_disconnect', '__return_false' );
+ self::disconnect();
+ Jetpack_Options::delete_option( 'version' );
}
}
/**
+ * Set activated option to 4 on jetpack_idc_disconnect action.
+ */
+ public static function on_idc_disconnect() {
+ \Jetpack_Options::update_option( 'activated', 4 );
+ }
+
+ /**
* Disconnects from the Jetpack servers.
* Forgets all connection details and tells the Jetpack servers to do the same.
*
* @static
*/
- public static function disconnect( $update_activated_state = true ) {
- wp_clear_scheduled_hook( 'jetpack_clean_nonces' );
+ public static function disconnect() {
+
$connection = self::connection();
- $connection->clean_nonces( true );
// If the site is in an IDC because sync is not allowed,
// let's make sure to not disconnect the production site.
- if ( ! self::validate_sync_error_idc_option() ) {
- $tracking = new Tracking();
- $tracking->record_user_event( 'disconnect_site', array() );
+ $connection->disconnect_site( ! Identity_Crisis::validate_sync_error_idc_option() );
+ }
- $connection->disconnect_site_wpcom();
- }
+ /**
+ * Happens after a successfull disconnection.
+ *
+ * @static
+ */
+ public static function jetpack_site_disconnected() {
+ Identity_Crisis::clear_all_idc_options();
- $connection->delete_all_connection_tokens();
- Jetpack_IDC::clear_all_idc_options();
+ // Delete all the sync related data. Since it could be taking up space.
+ Sender::get_instance()->uninstall();
+
+ /**
+ * Filters whether the Jetpack activated state should be updated after disconnecting.
+ *
+ * @since 10.0.0
+ *
+ * @param bool $update_activated_state Whether activated state should be updated after disconnecting, defaults to true.
+ */
+ $update_activated_state = apply_filters( 'jetpack_update_activated_state_on_disconnect', true );
if ( $update_activated_state ) {
Jetpack_Options::update_option( 'activated', 4 );
}
-
- if ( $jetpack_unique_connection = Jetpack_Options::get_option( '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'] ) {
- // track unique disconnect
- $jetpack = self::init();
-
- $jetpack->stat( 'connections', 'unique-disconnect' );
- $jetpack->do_stats( 'server_side' );
- }
- // increment number of times disconnected
- $jetpack_unique_connection['disconnected'] += 1;
- }
-
- Jetpack_Options::update_option( 'unique_connection', $jetpack_unique_connection );
- }
-
- // Delete all the sync related data. Since it could be taking up space.
- Sender::get_instance()->uninstall();
-
- // Disable the Heartbeat cron
- Jetpack_Heartbeat::init()->deactivate();
}
/**
- * Unlinks the current user from the linked WordPress.com user.
- *
- * @deprecated since 7.7
- * @see Automattic\Jetpack\Connection\Manager::disconnect_user()
+ * Disconnects the user
*
- * @param Integer $user_id the user identifier.
- * @return Boolean Whether the disconnection of the user was successful.
+ * @param int $user_id The user ID to disconnect.
*/
- public static function unlink_user( $user_id = null ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::disconnect_user' );
- return Connection_Manager::disconnect_user( $user_id );
+ public function disconnect_user( $user_id ) {
+ $this->connection_manager->disconnect_user( $user_id );
}
/**
* Attempts Jetpack registration. If it fail, a state flag is set: @see ::admin_page_load()
+ *
+ * @deprecated since Jetpack 9.7.0
+ * @see Automattic\Jetpack\Connection\Manager::try_registration()
+ *
+ * @return bool|WP_Error
*/
public static function try_registration() {
- $terms_of_service = new Terms_Of_Service();
- // The user has agreed to the TOS at some point by now.
- $terms_of_service->agree();
+ _deprecated_function( __METHOD__, 'jetpack-9.7', 'Automattic\\Jetpack\\Connection\\Manager::try_registration' );
+ return static::connection()->try_registration();
+ }
- // Let's get some testing in beta versions and such.
- if ( self::is_development_version() && defined( 'PHP_URL_HOST' ) ) {
- // Before attempting to connect, let's make sure that the domains are viable.
+ /**
+ * Checking the domain names in beta versions.
+ * If this is a development version, before attempting to connect, let's make sure that the domains are viable.
+ *
+ * @param null|\WP_Error $error The domain validation error, or `null` if everything's fine.
+ *
+ * @return null|\WP_Error The domain validation error, or `null` if everything's fine.
+ */
+ public static function registration_check_domains( $error ) {
+ if ( static::is_development_version() && defined( 'PHP_URL_HOST' ) ) {
$domains_to_check = array_unique(
array(
'siteurl' => wp_parse_url( get_site_url(), PHP_URL_HOST ),
@@ -3351,33 +3432,29 @@ p {
)
);
foreach ( $domains_to_check as $domain ) {
- $result = self::connection()->is_usable_domain( $domain );
+ $result = static::connection()->is_usable_domain( $domain );
if ( is_wp_error( $result ) ) {
return $result;
}
}
}
- $result = self::register();
-
- // 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;
- } else {
- return true;
- }
+ return $error;
}
/**
* Tracking an internal event log. Try not to put too much chaff in here.
*
* [Everyone Loves a Log!](https://www.youtube.com/watch?v=2C7mNr5WMjA)
+ *
+ * @param mixed $code Error code to log.
+ * @param mixed $data Data to log.
*/
public static function log( $code, $data = null ) {
- // only grab the latest 200 entries
+ // only grab the latest 200 entries.
$log = array_slice( Jetpack_Options::get_option( 'log', array() ), -199, 199 );
- // Append our event to the log
+ // Append our event to the log.
$log_entry = array(
'time' => time(),
'user_id' => get_current_user_id(),
@@ -3391,7 +3468,7 @@ p {
$log[] = $log_entry;
// Try add_option first, to make sure it's not autoloaded.
- // @todo: Add an add_option method to Jetpack_Options
+ // @todo: Add an add_option method to Jetpack_Options.
if ( ! add_option( 'jetpack_log', $log, null, 'no' ) ) {
Jetpack_Options::update_option( 'log', $log );
}
@@ -3417,8 +3494,8 @@ p {
/**
* Get the internal event log.
*
- * @param $event (string) - only return the specific log events
- * @param $num (int) - get specific number of latest results, limited to 200
+ * @param string $event only return the specific log events.
+ * @param int $num - get specific number of latest results, limited to 200.
*
* @return array of log events || WP_Error for invalid params
*/
@@ -3433,7 +3510,7 @@ p {
$entire_log = Jetpack_Options::get_option( 'log', array() );
- // If nothing set - act as it did before, otherwise let's start customizing the output
+ // If nothing set - act as it did before, otherwise let's start customizing the output.
if ( ! $num && ! $event ) {
return $entire_log;
} else {
@@ -3461,6 +3538,10 @@ p {
/**
* Log modification of important settings.
+ *
+ * @param string $option Option name.
+ * @param string $old_value Old value of option.
+ * @param string $value New value of option.
*/
public static function log_settings_change( $option, $old_value, $value ) {
switch ( $option ) {
@@ -3471,7 +3552,12 @@ p {
}
/**
- * Return stat data for WPCOM sync
+ * Return stat data for WPCOM sync.
+ *
+ * @param bool $encode JSON encode the result.
+ * @param bool $extended Adds additional stats data.
+ *
+ * @return array|string Stats data. Array if $encode is false. JSON-encoded string is $encode is true.
*/
public static function get_stat_data( $encode = true, $extended = true ) {
$data = Jetpack_Heartbeat::generate_stats_array();
@@ -3490,6 +3576,10 @@ p {
/**
* Get additional stat data to sync to WPCOM
+ *
+ * @param string $prefix Stats prefix.
+ *
+ * @return array stats values.
*/
public static function get_additional_stat_data( $prefix = '' ) {
$return[ "{$prefix}themes" ] = self::get_parsed_theme_data();
@@ -3503,6 +3593,11 @@ p {
return $return;
}
+ /**
+ * Get current site's user count.
+ *
+ * @return int|string|null Number of users on the site. -1 for a large network.
+ */
private static function get_site_user_count() {
global $wpdb;
@@ -3512,7 +3607,7 @@ p {
}
}
if ( false === ( $user_count = get_transient( 'jetpack_site_user_count' ) ) ) {
- // It wasn't there, so regenerate the data and save the transient
+ // It wasn't there, so regenerate the data and save the transient.
$user_count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->usermeta WHERE meta_key = '{$wpdb->prefix}capabilities'" );
set_transient( 'jetpack_site_user_count', $user_count, DAY_IN_SECONDS );
}
@@ -3521,43 +3616,60 @@ p {
/* Admin Pages */
+ /**
+ * Admin init function.
+ *
+ * Runs on admin_init hook.
+ *
+ * @return void
+ */
function admin_init() {
// If the plugin is not connected, display a connect message.
if (
- // the plugin was auto-activated and needs its candy
+ // the plugin was auto-activated and needs its candy.
Jetpack_Options::get_option_and_ensure_autoload( 'do_activate', '0' )
||
- // the plugin is active, but was never activated. Probably came from a site-wide network activation
+ // the plugin is active, but was never activated. Probably came from a site-wide network activation.
! Jetpack_Options::get_option( 'activated' )
) {
self::plugin_initialize();
}
- $is_development_mode = ( new Status() )->is_development_mode();
- if ( ! self::is_active() && ! $is_development_mode ) {
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ $fallback_no_verify_ssl_certs = Jetpack_Options::get_option( 'fallback_no_verify_ssl_certs' );
+ /** Already documented in automattic/jetpack-connection::src/class-client.php */
+ $client_verify_ssl_certs = apply_filters( 'jetpack_client_verify_ssl_certs', false );
+
+ if ( ! $is_offline_mode ) {
Jetpack_Connection_Banner::init();
- } elseif ( false === Jetpack_Options::get_option( 'fallback_no_verify_ssl_certs' ) ) {
+ }
+
+ if ( ( self::is_connection_ready() || $is_offline_mode ) && false === $fallback_no_verify_ssl_certs && ! $client_verify_ssl_certs ) {
// Upgrade: 1.1 -> 1.1.1
- // Check and see if host can verify the Jetpack servers' SSL certificate
- $args = array();
- $connection = self::connection();
- Client::_wp_remote_request(
- Connection_Utils::fix_url_for_bad_hosts( $connection->api_url( 'test' ) ),
- $args,
- true
- );
+ // Check and see if host can verify the Jetpack servers' SSL certificate.
+ $args = array();
+ Client::_wp_remote_request( self::connection()->api_url( 'test' ), $args, true );
}
- if ( current_user_can( 'manage_options' ) && 'AUTO' == JETPACK_CLIENT__HTTPS && ! self::permit_ssl() ) {
+ Jetpack_Recommendations_Banner::init();
+
+ if ( current_user_can( 'manage_options' ) && ! self::permit_ssl() ) {
add_action( 'jetpack_notices', array( $this, 'alert_auto_ssl_fail' ) );
}
add_action( 'load-plugins.php', array( $this, 'intercept_plugin_error_scrape_init' ) );
+ add_action( 'load-plugins.php', array( $this, 'plugins_page_init_jetpack_state' ) );
add_action( 'admin_enqueue_scripts', array( $this, 'admin_menu_css' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'deactivate_dialog' ) );
+
+ if ( isset( $_COOKIE['jetpackState']['display_update_modal'] ) ) {
+ add_action( 'admin_enqueue_scripts', __CLASS__ . '::enqueue_block_style' );
+ }
+
add_filter( 'plugin_action_links_' . plugin_basename( JETPACK__PLUGIN_DIR . 'jetpack.php' ), array( $this, 'plugin_action_links' ) );
- if ( self::is_active() || $is_development_mode ) {
- // Artificially throw errors in certain whitelisted cases during plugin activation
+ if ( self::is_connection_ready() || $is_offline_mode ) {
+ // Artificially throw errors in certain specific cases during plugin activation.
add_action( 'activate_plugin', array( $this, 'throw_error_on_activate_plugin' ) );
}
@@ -3567,22 +3679,36 @@ p {
add_action( 'admin_print_styles', array( $this, 'jetpack_user_col_style' ) );
}
+ /**
+ * Adds body classes.
+ *
+ * @param string $admin_body_class Body classes.
+ *
+ * @return string
+ */
function admin_body_class( $admin_body_class = '' ) {
$classes = explode( ' ', trim( $admin_body_class ) );
- $classes[] = self::is_active() ? 'jetpack-connected' : 'jetpack-disconnected';
+ $classes[] = self::is_connection_ready() ? 'jetpack-connected' : 'jetpack-disconnected';
$admin_body_class = implode( ' ', array_unique( $classes ) );
return " $admin_body_class ";
}
+ /**
+ * Adds Jetpack Page styles by appending class to the admin body class.
+ *
+ * @param string $admin_body_class Existing admin body class string.
+ *
+ * @return string
+ */
static function add_jetpack_pagestyles( $admin_body_class = '' ) {
return $admin_body_class . ' jetpack-pagestyles ';
}
/**
* Sometimes a plugin can activate without causing errors, but it will cause errors on the next page load.
- * This function artificially throws errors for such cases (whitelisted).
+ * This function artificially throws errors for such cases (per a specific list).
*
* @param string $plugin The activated plugin.
*/
@@ -3593,7 +3719,7 @@ p {
if ( function_exists( 'stats_get_api_key' ) && in_array( 'shortlinks', $active_modules ) ) {
$throw = false;
- // Try and make sure it really was the stats plugin
+ // Try and make sure it really was the stats plugin.
if ( ! class_exists( 'ReflectionFunction' ) ) {
if ( 'stats.php' == basename( $plugin ) ) {
$throw = true;
@@ -3606,15 +3732,37 @@ p {
}
if ( $throw ) {
+ /* translators: Plugin name to deactivate. */
trigger_error( sprintf( __( 'Jetpack contains the most recent version of the old &#8220;%1$s&#8221; plugin.', 'jetpack' ), 'WordPress.com Stats' ), E_USER_ERROR );
}
}
}
+ /**
+ * Call to Jetpack::state on the load-plugins.php hook.
+ * In case the jetpackState cookie is populated, this call will read and re-set the cookie before HTTP headers are sent.
+ */
+ public function plugins_page_init_jetpack_state() {
+ self::state( 'message' );
+ }
+
+ /**
+ * Adds the intercept action to the check_admin_referer hook.
+ *
+ * @return void
+ */
function intercept_plugin_error_scrape_init() {
add_action( 'check_admin_referer', array( $this, 'intercept_plugin_error_scrape' ), 10, 2 );
}
+ /**
+ * Detect if conflicting plugin is being deactivated.
+ *
+ * @param string $action The nonce action.
+ * @param bool|int $result False if the nonce is invalid, 1 if the nonce is valid and generated between 0-12 hours ago, 2 if the nonce is valid and generated between 12-24 hours ago.
+ *
+ * @return void
+ */
function intercept_plugin_error_scrape( $action, $result ) {
if ( ! $result ) {
return;
@@ -3622,6 +3770,7 @@ p {
foreach ( $this->plugins_to_deactivate as $deactivate_me ) {
if ( "plugin-activation-error_{$deactivate_me[0]}" == $action ) {
+ /* translators: Plugin name to deactivate. */
self::bail_on_activation( sprintf( __( 'Jetpack contains the most recent version of the old &#8220;%1$s&#8221; plugin.', 'jetpack' ), $deactivate_me[1] ), false );
}
}
@@ -3650,6 +3799,10 @@ p {
}
// Require Jetpack authentication for the remote file upload AJAX requests.
+ if ( ! $this->connection_manager ) {
+ $this->connection_manager = new Connection_Manager();
+ }
+
$this->connection_manager->require_jetpack_authentication();
// Register the remote file upload AJAX handlers.
@@ -3675,12 +3828,12 @@ p {
$response = $this->upload_handler( true );
break;
default:
- $response = new Jetpack_Error( 'unknown_handler', 'Unknown Handler', 400 );
+ $response = new WP_Error( 'unknown_handler', 'Unknown Handler', 400 );
break;
}
if ( ! $response ) {
- $response = new Jetpack_Error( 'unknown_error', 'Unknown Error', 400 );
+ $response = new WP_Error( 'unknown_error', 'Unknown Error', 400 );
}
if ( is_wp_error( $response ) ) {
@@ -3710,40 +3863,40 @@ p {
* the attachment file of the media item (gotten through of the post_id)
* will be updated instead of add a new one.
*
- * @param boolean $update_media_item - update media attachment
- * @return array - An array describing the uploadind files process
+ * @param boolean $update_media_item - update media attachment.
+ * @return array - An array describing the uploadind files process.
*/
function upload_handler( $update_media_item = false ) {
if ( 'POST' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
- return new Jetpack_Error( 405, get_status_header_desc( 405 ), 405 );
+ return new WP_Error( 405, get_status_header_desc( 405 ), 405 );
}
$user = wp_authenticate( '', '' );
if ( ! $user || is_wp_error( $user ) ) {
- return new Jetpack_Error( 403, get_status_header_desc( 403 ), 403 );
+ return new WP_Error( 403, get_status_header_desc( 403 ), 403 );
}
wp_set_current_user( $user->ID );
if ( ! current_user_can( 'upload_files' ) ) {
- return new Jetpack_Error( 'cannot_upload_files', 'User does not have permission to upload files', 403 );
+ return new WP_Error( 'cannot_upload_files', 'User does not have permission to upload files', 403 );
}
if ( empty( $_FILES ) ) {
- return new Jetpack_Error( 'no_files_uploaded', 'No files were uploaded: nothing to process', 400 );
+ return new WP_Error( 'no_files_uploaded', 'No files were uploaded: nothing to process', 400 );
}
foreach ( array_keys( $_FILES ) as $files_key ) {
if ( ! isset( $_POST[ "_jetpack_file_hmac_{$files_key}" ] ) ) {
- return new Jetpack_Error( 'missing_hmac', 'An HMAC for one or more files is missing', 400 );
+ return new WP_Error( 'missing_hmac', 'An HMAC for one or more files is missing', 400 );
}
}
$media_keys = array_keys( $_FILES['media'] );
- $token = Jetpack_Data::get_access_token( get_current_user_id() );
+ $token = ( new Tokens() )->get_access_token( get_current_user_id() );
if ( ! $token || is_wp_error( $token ) ) {
- return new Jetpack_Error( 'unknown_token', 'Unknown Jetpack token', 403 );
+ return new WP_Error( 'unknown_token', 'Unknown Jetpack token', 403 );
}
$uploaded_files = array();
@@ -3774,7 +3927,7 @@ p {
if ( $update_media_item ) {
if ( ! isset( $post_id ) || $post_id === 0 ) {
- return new Jetpack_Error( 'invalid_input', 'Media ID must be defined.', 400 );
+ return new WP_Error( 'invalid_input', 'Media ID must be defined.', 400 );
}
$media_array = $_FILES['media'];
@@ -3830,12 +3983,6 @@ p {
'type' => $attachment->post_mime_type,
'meta' => wp_get_attachment_metadata( $attachment_id ),
);
- // Zip files uploads are not supported unless they are done for installation purposed
- // lets delete them in case something goes wrong in this whole process
- if ( 'application/zip' === $attachment->post_mime_type ) {
- // Schedule a cleanup for 2 hours from now in case of failed install.
- wp_schedule_single_event( time() + 2 * HOUR_IN_SECONDS, 'upgrader_scheduled_cleanup', array( $attachment_id ) );
- }
}
}
if ( ! is_null( $global_post ) ) {
@@ -3849,31 +3996,31 @@ p {
* Add help to the Jetpack page
*
* @since Jetpack (1.2.3)
- * @return false if not the Jetpack page
+ * @return void
*/
function admin_help() {
$current_screen = get_current_screen();
- // Overview
+ // Overview.
$current_screen->add_help_tab(
array(
'id' => 'home',
'title' => __( 'Home', 'jetpack' ),
'content' =>
- '<p><strong>' . __( 'Jetpack by WordPress.com', 'jetpack' ) . '</strong></p>' .
+ '<p><strong>' . __( 'Jetpack', 'jetpack' ) . '</strong></p>' .
'<p>' . __( 'Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.', 'jetpack' ) . '</p>' .
'<p>' . __( 'On this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.', 'jetpack' ) . '</p>',
)
);
- // Screen Content
+ // Screen Content.
if ( current_user_can( 'manage_options' ) ) {
$current_screen->add_help_tab(
array(
'id' => 'settings',
'title' => __( 'Settings', 'jetpack' ),
'content' =>
- '<p><strong>' . __( 'Jetpack by WordPress.com', 'jetpack' ) . '</strong></p>' .
+ '<p><strong>' . __( 'Jetpack', 'jetpack' ) . '</strong></p>' .
'<p>' . __( 'You can activate or deactivate individual Jetpack modules to suit your needs.', 'jetpack' ) . '</p>' .
'<ol>' .
'<li>' . __( 'Each module has an Activate or Deactivate link so you can toggle one individually.', 'jetpack' ) . '</li>' .
@@ -3884,23 +4031,44 @@ p {
);
}
- // Help Sidebar
+ // Help Sidebar.
+ $support_url = Redirect::get_url( 'jetpack-support' );
+ $faq_url = Redirect::get_url( 'jetpack-faq' );
$current_screen->set_help_sidebar(
'<p><strong>' . __( 'For more information:', 'jetpack' ) . '</strong></p>' .
- '<p><a href="https://jetpack.com/faq/" target="_blank">' . __( 'Jetpack FAQ', 'jetpack' ) . '</a></p>' .
- '<p><a href="https://jetpack.com/support/" target="_blank">' . __( 'Jetpack Support', 'jetpack' ) . '</a></p>' .
+ '<p><a href="' . $faq_url . '" rel="noopener noreferrer" target="_blank">' . __( 'Jetpack FAQ', 'jetpack' ) . '</a></p>' .
+ '<p><a href="' . $support_url . '" rel="noopener noreferrer" target="_blank">' . __( 'Jetpack Support', 'jetpack' ) . '</a></p>' .
'<p><a href="' . self::admin_url( array( 'page' => 'jetpack-debugger' ) ) . '">' . __( 'Jetpack Debugging Center', 'jetpack' ) . '</a></p>'
);
}
+ /**
+ * Enqueues the jetpack-icons style.
+ *
+ * @return void
+ */
function admin_menu_css() {
wp_enqueue_style( 'jetpack-icons' );
}
+ /**
+ * Returns true.
+ *
+ * @todo This is seemingly unused.
+ *
+ * @return bool
+ */
function admin_menu_order() {
return true;
}
+ /**
+ * Sorts the order of wp-admin menu items.
+ *
+ * @param array $menu_order Existing menu order.
+ *
+ * @return array
+ */
function jetpack_menu_order( $menu_order ) {
$jp_menu_order = array();
@@ -3917,6 +4085,11 @@ p {
return $jp_menu_order;
}
+ /**
+ * Registers/enqueues Jetpack banner styles.
+ *
+ * @return void
+ */
function admin_banner_styles() {
$min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min';
@@ -3924,7 +4097,7 @@ p {
wp_register_style(
'jetpack-dops-style',
plugins_url( '_inc/build/admin.css', JETPACK__PLUGIN_FILE ),
- array(),
+ array(), // Load styles for components so the modal can be used.
JETPACK__VERSION
);
}
@@ -3939,15 +4112,23 @@ p {
wp_style_add_data( 'jetpack', 'suffix', $min );
}
+ /**
+ * Add action links for the Jetpack plugin.
+ *
+ * @param array $actions Plugin actions.
+ *
+ * @return array
+ */
function plugin_action_links( $actions ) {
- $jetpack_home = array( 'jetpack-home' => sprintf( '<a href="%s">%s</a>', self::admin_url( 'page=jetpack' ), 'Jetpack' ) );
+ $jetpack_home = array( 'jetpack-home' => sprintf( '<a href="%s">%s</a>', self::admin_url( 'page=jetpack' ), __( 'My Jetpack', 'jetpack' ) ) );
+ $support_link = ( new Host() )->is_woa_site() ? 'https://wordpress.com/help/contact/' : self::admin_url( 'page=jetpack-debugger' );
- if ( current_user_can( 'jetpack_manage_modules' ) && ( self::is_active() || ( new Status() )->is_development_mode() ) ) {
+ if ( current_user_can( 'jetpack_manage_modules' ) && ( self::is_connection_ready() || ( new Status() )->is_offline_mode() ) ) {
return array_merge(
$jetpack_home,
array( 'settings' => sprintf( '<a href="%s">%s</a>', self::admin_url( 'page=jetpack#/settings' ), __( 'Settings', 'jetpack' ) ) ),
- array( 'support' => sprintf( '<a href="%s">%s</a>', self::admin_url( 'page=jetpack-debugger ' ), __( 'Support', 'jetpack' ) ) ),
+ array( 'support' => sprintf( '<a href="%s">%s</a>', $support_link, __( 'Support', 'jetpack' ) ) ),
$actions
);
}
@@ -3955,6 +4136,95 @@ p {
return array_merge( $jetpack_home, $actions );
}
+ /**
+ * Adds the deactivation warning modal for Jetpack.
+ *
+ * @param string $hook The current admin page.
+ *
+ * @return void
+ */
+ public function deactivate_dialog( $hook ) {
+ if (
+ 'plugins.php' === $hook
+ && self::is_connection_ready()
+ ) {
+
+ // Register jp-tracks-functions dependency.
+ Tracking::register_tracks_functions_scripts( true );
+
+ // add a deactivation script that will pick up deactivation actions for the Jetpack plugin.
+ Assets::register_script(
+ 'jetpack-plugins-page-js',
+ '_inc/build/plugins-page.js',
+ JETPACK__PLUGIN_FILE,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack',
+ 'dependencies' => array(
+ 'wp-polyfill',
+ 'wp-components',
+ ),
+ )
+ );
+ Assets::enqueue_script( 'jetpack-plugins-page-js' );
+
+ // Add objects to be passed to the initial state of the app.
+ // Use wp_add_inline_script instead of wp_localize_script, see https://core.trac.wordpress.org/ticket/25280.
+ wp_add_inline_script( 'jetpack-plugins-page-js', 'var Initial_State=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( Jetpack_Redux_State_Helper::get_initial_state() ) ) . '"));', 'before' );
+
+ add_action( 'admin_footer', array( $this, 'jetpack_plugin_portal_containers' ) );
+ }
+ }
+
+ /**
+ * Outputs the wrapper for the plugin deactivation modal
+ * Contents are loaded by React script
+ *
+ * @return void
+ */
+ public function jetpack_plugin_portal_containers() {
+ $this->load_view( 'admin/jetpack-plugin-portal-containers.php' );
+ }
+
+ /**
+ * Filters the login URL to include the registration flow in case the user isn't logged in.
+ *
+ * @param string $login_url The wp-login URL.
+ * @param string $redirect URL to redirect users after logging in.
+ * @since Jetpack 8.4
+ * @return string
+ */
+ public function login_url( $login_url, $redirect ) {
+ parse_str( (string) wp_parse_url( $redirect, PHP_URL_QUERY ), $redirect_parts );
+ if ( ! empty( $redirect_parts[ self::$jetpack_redirect_login ] ) ) {
+ $login_url = add_query_arg( self::$jetpack_redirect_login, 'true', $login_url );
+ }
+ return $login_url;
+ }
+
+ /**
+ * Redirects non-authenticated users to authenticate with Calypso if redirect flag is set.
+ *
+ * @since Jetpack 8.4
+ */
+ public function login_init() {
+ // phpcs:ignore WordPress.Security.NonceVerification
+ if ( ! empty( $_GET[ self::$jetpack_redirect_login ] ) ) {
+ add_filter( 'allowed_redirect_hosts', array( &$this, 'allow_wpcom_environments' ) );
+ wp_safe_redirect(
+ add_query_arg(
+ array(
+ 'forceInstall' => 1,
+ 'url' => rawurlencode( get_site_url() ),
+ ),
+ // @todo provide way to go to specific calypso env.
+ self::get_calypso_host() . 'jetpack/connect'
+ )
+ );
+ exit;
+ }
+ }
+
/*
* Registration flow:
* 1 - ::admin_page_load() action=register
@@ -3997,15 +4267,15 @@ p {
add_filter( 'admin_body_class', array( __CLASS__, 'add_jetpack_pagestyles' ), 20 );
if ( ! empty( $_GET['jetpack_restate'] ) ) {
- // Should only be used in intermediate redirects to preserve state across redirects
+ // Should only be used in intermediate redirects to preserve state across redirects.
self::restate();
}
if ( isset( $_GET['connect_url_redirect'] ) ) {
- // @todo: Add validation against a known whitelist
+ // @todo: Add validation against a known allowed list.
$from = ! empty( $_GET['from'] ) ? $_GET['from'] : 'iframe';
- // User clicked in the iframe to link their accounts
- if ( ! self::is_user_connected() ) {
+ // User clicked in the iframe to link their accounts.
+ if ( ! self::connection()->is_user_connected() ) {
$redirect = ! empty( $_GET['redirect_after_auth'] ) ? $_GET['redirect_after_auth'] : false;
add_filter( 'allowed_redirect_hosts', array( &$this, 'allow_wpcom_environments' ) );
@@ -4033,15 +4303,54 @@ p {
if ( isset( $_GET['action'] ) ) {
switch ( $_GET['action'] ) {
- case 'authorize':
- if ( self::is_active() && self::is_user_connected() ) {
- self::state( 'message', 'already_authorized' );
- wp_safe_redirect( self::admin_url() );
+ case 'authorize_redirect':
+ self::log( 'authorize_redirect' );
+
+ add_filter(
+ 'allowed_redirect_hosts',
+ function ( $domains ) {
+ $domains[] = 'jetpack.com';
+ $domains[] = 'jetpack.wordpress.com';
+ $domains[] = 'wordpress.com';
+ $domains[] = wp_parse_url( static::get_calypso_host(), PHP_URL_HOST ); // May differ from `wordpress.com`.
+ return array_unique( $domains );
+ }
+ );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $dest_url = empty( $_GET['dest_url'] ) ? null : $_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;
}
- self::log( 'authorize' );
- $client_server = new Jetpack_Client_Server();
- $client_server->client_authorize();
+
+ if ( static::connection()->is_connected() && static::connection()->is_user_connected() ) {
+ // The user is either already connected, or finished the connection process.
+ 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( self::admin_url( 'page=jetpack' ) );
+ exit;
+ }
+
+ $redirect_args = array(
+ 'page' => 'jetpack',
+ 'action' => 'authorize_redirect',
+ 'dest_url' => rawurlencode( $dest_url ),
+ 'done' => '1',
+ );
+
+ if ( ! empty( $_GET['from'] ) && 'jetpack_site_only_checkout' === $_GET['from'] ) {
+ $redirect_args['from'] = 'jetpack_site_only_checkout';
+ }
+
+ wp_safe_redirect( static::build_authorize_url( self::admin_url( $redirect_args ) ) );
+ exit;
+ case 'authorize':
+ _doing_it_wrong( __METHOD__, 'The `page=jetpack&action=authorize` webhook is deprecated. Use `handler=jetpack-connection-webhooks&action=authorize` instead', 'Jetpack 9.5.0' );
+ ( new Connection_Webhooks( $this->connection_manager ) )->handle_authorize();
exit;
case 'register':
if ( ! current_user_can( 'jetpack_connect' ) ) {
@@ -4051,7 +4360,11 @@ p {
check_admin_referer( 'jetpack-register' );
self::log( 'register' );
self::maybe_set_version_option();
- $registered = self::try_registration();
+ $from = isset( $_GET['from'] ) ? $_GET['from'] : false;
+ if ( $from ) {
+ static::connection()->add_register_request_param( 'from', (string) $from );
+ }
+ $registered = static::connection()->try_registration();
if ( is_wp_error( $registered ) ) {
$error = $registered->get_error_code();
self::state( 'error', $error );
@@ -4069,7 +4382,6 @@ p {
break;
}
- $from = isset( $_GET['from'] ) ? $_GET['from'] : false;
$redirect = isset( $_GET['redirect'] ) ? $_GET['redirect'] : false;
/**
@@ -4103,6 +4415,7 @@ p {
check_admin_referer( "jetpack_activate-$module" );
self::log( 'activate', $module );
if ( ! self::activate_module( $module ) ) {
+ /* translators: module/feature name */
self::state( 'error', sprintf( __( 'Could not activate %s', 'jetpack' ), $module ) );
}
// The following two lines will rarely happen, as Jetpack::activate_module normally exits at the end.
@@ -4137,7 +4450,7 @@ p {
check_admin_referer( 'jetpack-reconnect' );
self::log( 'reconnect' );
- $this->disconnect();
+ self::disconnect();
wp_redirect( $this->build_connect_url( true, false, 'reconnect' ) );
exit;
case 'deactivate':
@@ -4160,7 +4473,7 @@ p {
$redirect = isset( $_GET['redirect'] ) ? $_GET['redirect'] : '';
check_admin_referer( 'jetpack-unlink' );
self::log( 'unlink' );
- Connection_Manager::disconnect_user();
+ $this->connection_manager->disconnect_user();
self::state( 'message', 'unlinked' );
if ( 'sub-unlink' == $redirect ) {
wp_safe_redirect( admin_url() );
@@ -4212,7 +4525,9 @@ p {
switch ( $message_code ) {
case 'jetpack-manage':
- $this->message = '<strong>' . sprintf( __( 'You are all set! Your site can now be managed from <a href="%s" target="_blank">wordpress.com/sites</a>.', 'jetpack' ), 'https://wordpress.com/sites' ) . '</strong>';
+ $sites_url = esc_url( Redirect::get_url( 'calypso-sites' ) );
+ // translators: %s is the URL to the "Sites" panel on wordpress.com.
+ $this->message = '<strong>' . sprintf( __( 'You are all set! Your site can now be managed from <a href="%s" target="_blank">wordpress.com/sites</a>.', 'jetpack' ), $sites_url ) . '</strong>';
if ( $activated_manage ) {
$this->message .= '<br /><strong>' . __( 'Manage has been activated for you!', 'jetpack' ) . '</strong>';
}
@@ -4268,6 +4583,11 @@ p {
add_filter( 'jetpack_short_module_description', 'wptexturize' );
}
+ /**
+ * Display admin notice upon error.
+ *
+ * @return void
+ */
function admin_notices() {
if ( $this->error ) {
@@ -4360,6 +4680,7 @@ p {
echo wp_kses(
sprintf(
+ /* translators: URL to deactivate Jetpack features. */
_nx(
'If your site is not publicly accessible, consider <a href="%1$s" title="%2$s">deactivating this feature</a>.',
'If your site is not publicly accessible, consider <a href="%1$s" title="%2$s">deactivating these features</a>.',
@@ -4424,152 +4745,72 @@ endif;
}
/**
+ * Initialize the jetpack stats instance only when needed
+ *
+ * @return void
+ */
+ private function initialize_stats() {
+ if ( is_null( $this->a8c_mc_stats_instance ) ) {
+ $this->a8c_mc_stats_instance = new Automattic\Jetpack\A8c_Mc_Stats();
+ }
+ }
+
+ /**
* Record a stat for later output. This will only currently output in the admin_footer.
+ *
+ * @param string $group Stats group.
+ * @param string $detail Stats detail.
*/
function stat( $group, $detail ) {
- if ( ! isset( $this->stats[ $group ] ) ) {
- $this->stats[ $group ] = array();
- }
- $this->stats[ $group ][] = $detail;
+ $this->initialize_stats();
+ $this->a8c_mc_stats_instance->add( $group, $detail );
+
+ // Keep a local copy for backward compatibility (there are some direct checks on this).
+ $this->stats = $this->a8c_mc_stats_instance->get_current_stats();
}
/**
* Load stats pixels. $group is auto-prefixed with "x_jetpack-"
+ *
+ * @param string $method Used to check if method is "server-side".
*/
function do_stats( $method = '' ) {
- if ( is_array( $this->stats ) && count( $this->stats ) ) {
- foreach ( $this->stats as $group => $stats ) {
- if ( is_array( $stats ) && count( $stats ) ) {
- $args = array( "x_jetpack-{$group}" => implode( ',', $stats ) );
- if ( 'server_side' === $method ) {
- self::do_server_side_stat( $args );
- } else {
- echo '<img src="' . esc_url( self::build_stats_url( $args ) ) . '" width="1" height="1" style="display:none;" />';
- }
- }
- unset( $this->stats[ $group ] );
- }
+ $this->initialize_stats();
+ if ( 'server_side' === $method ) {
+ $this->a8c_mc_stats_instance->do_server_side_stats();
+ } else {
+ $this->a8c_mc_stats_instance->do_stats();
}
+
+ // Keep a local copy for backward compatibility (there are some direct checks on this).
+ $this->stats = array();
}
/**
* Runs stats code for a one-off, server-side.
*
- * @param $args array|string The arguments to append to the URL. Should include `x_jetpack-{$group}={$stats}` or whatever we want to store.
+ * @param array|string $args The arguments to append to the URL. Should include `x_jetpack-{$group}={$stats}` or whatever we want to store.
*
* @return bool If it worked.
*/
static function do_server_side_stat( $args ) {
- $response = wp_remote_get( esc_url_raw( self::build_stats_url( $args ) ) );
- if ( is_wp_error( $response ) ) {
- return false;
- }
-
- if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
- return false;
- }
-
- return true;
+ $url = self::build_stats_url( $args );
+ $a8c_mc_stats_instance = new Automattic\Jetpack\A8c_Mc_Stats();
+ return $a8c_mc_stats_instance->do_server_side_stat( $url );
}
/**
* Builds the stats url.
*
- * @param $args array|string The arguments to append to the URL.
+ * @param array|string $args The arguments to append to the URL.
*
* @return string The URL to be pinged.
*/
static function build_stats_url( $args ) {
- $defaults = array(
- 'v' => 'wpcom2',
- 'rand' => md5( mt_rand( 0, 999 ) . time() ),
- );
- $args = wp_parse_args( $args, $defaults );
- /**
- * Filter the URL used as the Stats tracking pixel.
- *
- * @since 2.3.2
- *
- * @param string $url Base URL used as the Stats tracking pixel.
- */
- $base_url = apply_filters(
- 'jetpack_stats_base_url',
- 'https://pixel.wp.com/g.gif'
- );
- $url = add_query_arg( $args, $base_url );
- return $url;
- }
- /**
- * Get the role of the current user.
- *
- * @deprecated 7.6 Use Automattic\Jetpack\Roles::translate_current_user_to_role() instead.
- *
- * @access public
- * @static
- *
- * @return string|boolean Current user's role, false if not enough capabilities for any of the roles.
- */
- public static function translate_current_user_to_role() {
- _deprecated_function( __METHOD__, 'jetpack-7.6.0' );
+ $a8c_mc_stats_instance = new Automattic\Jetpack\A8c_Mc_Stats();
+ return $a8c_mc_stats_instance->build_stats_url( $args );
- $roles = new Roles();
- return $roles->translate_current_user_to_role();
- }
-
- /**
- * Get the role of a particular user.
- *
- * @deprecated 7.6 Use Automattic\Jetpack\Roles::translate_user_to_role() instead.
- *
- * @access public
- * @static
- *
- * @param \WP_User $user User object.
- * @return string|boolean User's role, false if not enough capabilities for any of the roles.
- */
- public static function translate_user_to_role( $user ) {
- _deprecated_function( __METHOD__, 'jetpack-7.6.0' );
-
- $roles = new Roles();
- return $roles->translate_user_to_role( $user );
- }
-
- /**
- * Get the minimum capability for a role.
- *
- * @deprecated 7.6 Use Automattic\Jetpack\Roles::translate_role_to_cap() instead.
- *
- * @access public
- * @static
- *
- * @param string $role Role name.
- * @return string|boolean Capability, false if role isn't mapped to any capabilities.
- */
- public static function translate_role_to_cap( $role ) {
- _deprecated_function( __METHOD__, 'jetpack-7.6.0' );
-
- $roles = new Roles();
- return $roles->translate_role_to_cap( $role );
- }
-
- /**
- * Sign a user role with the master access token.
- * If not specified, will default to the current user.
- *
- * @deprecated since 7.7
- * @see Automattic\Jetpack\Connection\Manager::sign_role()
- *
- * @access public
- * @static
- *
- * @param string $role User role.
- * @param int $user_id ID of the user.
- * @return string Signed user role.
- */
- public static function sign_role( $role, $user_id = null ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::sign_role' );
- return self::connection()->sign_role( $role, $user_id );
}
/**
@@ -4581,13 +4822,13 @@ endif;
* @param bool|string $redirect If true, will redirect back to Jetpack wp-admin landing page after connection.
* If string, will be a custom redirect.
* @param bool|string $from If not false, adds 'from=$from' param to the connect URL.
- * @param bool $register If true, will generate a register URL regardless of the existing token, since 4.9.0
+ * @param bool $register If true, will generate a register URL regardless of the existing token, since 4.9.0.
*
* @return string Connect URL
*/
function build_connect_url( $raw = false, $redirect = false, $from = false, $register = false ) {
$site_id = Jetpack_Options::get_option( 'id' );
- $blog_token = Jetpack_Data::get_access_token();
+ $blog_token = ( new Tokens() )->get_access_token();
if ( $register || ! $blog_token || ! $site_id ) {
$url = self::nonce_url_no_esc( self::admin_url( 'action=register' ), 'jetpack-register' );
@@ -4613,7 +4854,7 @@ endif;
// Let's check the existing blog token to see if we need to re-register. We only check once per minute
// because otherwise this logic can get us in to a loop.
- $last_connect_url_check = intval( Jetpack_Options::get_raw_option( 'jetpack_last_connect_url_check' ) );
+ $last_connect_url_check = (int) Jetpack_Options::get_raw_option( 'jetpack_last_connect_url_check' );
if ( ! $last_connect_url_check || ( time() - $last_connect_url_check ) > MINUTE_IN_SECONDS ) {
Jetpack_Options::update_raw_option( 'jetpack_last_connect_url_check', time() );
@@ -4624,7 +4865,7 @@ endif;
if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
- // Generating a register URL instead to refresh the existing token
+ // Generating a register URL instead to refresh the existing token.
return $this->build_connect_url( $raw, $redirect, $from, true );
}
}
@@ -4648,14 +4889,23 @@ endif;
return apply_filters( 'jetpack_build_connection_url', $url, $raw );
}
+ /**
+ * Create the Jetpack authorization URL.
+ *
+ * @param bool|string $redirect URL to redirect to.
+ * @param bool $iframe Whether to use the iframe version.
+ *
+ * @todo Update default value for redirect since the called function expects a string.
+ *
+ * @return mixed|void
+ */
public static function build_authorize_url( $redirect = false, $iframe = 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' ) );
- add_filter( 'jetpack_connect_processing_url', array( __CLASS__, 'filter_connect_processing_url' ) );
if ( $iframe ) {
- add_filter( 'jetpack_api_url', array( __CLASS__, 'filter_connect_api_iframe_url' ), 10, 2 );
+ add_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
}
$c8n = self::connection();
@@ -4663,27 +4913,33 @@ endif;
remove_filter( 'jetpack_connect_request_body', array( __CLASS__, 'filter_connect_request_body' ) );
remove_filter( 'jetpack_connect_redirect_url', array( __CLASS__, 'filter_connect_redirect_url' ) );
- remove_filter( 'jetpack_connect_processing_url', array( __CLASS__, 'filter_connect_processing_url' ) );
if ( $iframe ) {
- remove_filter( 'jetpack_api_url', array( __CLASS__, 'filter_connect_api_iframe_url' ) );
+ remove_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
}
- return $url;
+ /**
+ * Filter the URL used when authorizing a user to a WordPress.com account.
+ *
+ * @since 8.9.0
+ *
+ * @param string $url Connection URL.
+ */
+ return apply_filters( 'jetpack_build_authorize_url', $url );
}
/**
* Filters the connection URL parameter array.
*
- * @param Array $args default URL parameters used by the package.
- * @return Array the modified URL arguments 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() );
+ $gp_locale = GP_Locales::by_field( 'wp_locale', get_locale() );
$args['locale'] = isset( $gp_locale ) && isset( $gp_locale->slug )
? $gp_locale->slug
: '';
@@ -4710,13 +4966,52 @@ endif;
}
/**
+ * Filters the `jetpack/v4/connection/data` API response of the Connection package in order to
+ * add Jetpack-the-plugin related permissions.
+ *
+ * @since 10.0
+ *
+ * @param array $current_user_connection_data An array containing the current user connection data.
+ * @return array
+ */
+ public static function filter_jetpack_current_user_connection_data( $current_user_connection_data ) {
+ $jetpack_permissions = array(
+ 'admin_page' => current_user_can( 'jetpack_admin_page' ),
+ 'manage_modules' => current_user_can( 'jetpack_manage_modules' ),
+ 'network_admin' => current_user_can( 'jetpack_network_admin_page' ),
+ 'network_sites_page' => current_user_can( 'jetpack_network_sites_page' ),
+ 'edit_posts' => current_user_can( 'edit_posts' ),
+ 'publish_posts' => current_user_can( 'publish_posts' ),
+ 'manage_options' => current_user_can( 'manage_options' ),
+ 'view_stats' => current_user_can( 'view_stats' ),
+ 'manage_plugins' => current_user_can( 'install_plugins' )
+ && current_user_can( 'activate_plugins' )
+ && current_user_can( 'update_plugins' )
+ && current_user_can( 'delete_plugins' ),
+ );
+
+ if ( isset( $current_user_connection_data['permissions'] ) &&
+ is_array( $current_user_connection_data['permissions'] ) ) {
+ $current_user_connection_data['permissions'] = array_merge( $current_user_connection_data['permissions'], $jetpack_permissions );
+ } else {
+ $current_user_connection_data['permissions'] = $jetpack_permissions;
+ }
+
+ return $current_user_connection_data;
+ }
+
+ /**
* Filters the URL that will process the connection data. It can be different from the URL
* that we send the user to after everything is done.
*
* @param String $processing_url the default redirect URL used by the package.
* @return String the modified URL.
+ *
+ * @deprecated since Jetpack 9.5.0
*/
public static function filter_connect_processing_url( $processing_url ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.5' );
+
$processing_url = admin_url( 'admin.php?page=jetpack' ); // Making PHPCS happy.
return $processing_url;
}
@@ -4742,26 +5037,6 @@ endif;
}
/**
- * Filters the API URL that is used for connect requests. The method
- * intercepts only the authorize URL and replaces it with another if needed.
- *
- * @param String $api_url the default redirect API URL used by the package.
- * @param String $relative_url the path of the URL that's being used.
- * @return String the modified URL.
- */
- public static function filter_connect_api_iframe_url( $api_url, $relative_url ) {
-
- // Short-circuit on anything that is not related to connect requests.
- if ( 'authorize' !== $relative_url ) {
- return $api_url;
- }
-
- $c8n = self::connection();
-
- return $c8n->api_url( 'authorize_iframe' );
- }
-
- /**
* This action fires at the beginning of the Manager::authorize method.
*/
public static function authorize_starting() {
@@ -4790,6 +5065,25 @@ endif;
}
/**
+ * This action fires when the site is registered (connected at a site level).
+ */
+ public function handle_unique_registrations_stats() {
+ $jetpack_unique_registrations = Jetpack_Options::get_option( 'unique_registrations' );
+ // Checking if site has been registered previously before recording unique connection.
+ if ( ! $jetpack_unique_registrations ) {
+
+ $jetpack_unique_registrations = 0;
+
+ $this->stat( 'connections', 'unique-registrations' );
+ $this->do_stats( 'server_side' );
+ }
+
+ // Increment number of times connected.
+ $jetpack_unique_registrations ++;
+ Jetpack_Options::update_option( 'unique_registrations', $jetpack_unique_registrations );
+ }
+
+ /**
* This action fires at the end of the Manager::authorize method when a secondary user is
* linked.
*/
@@ -4826,21 +5120,33 @@ endif;
}
/**
- * 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 7.2.0
- * @deprecated since 7.8.0
- *
- * @return string Assumed site creation date and time.
+ * Fires on the jetpack_site_registered hook and acitvates default modules
+ */
+ public static function activate_default_modules_on_site_register() {
+ self::handle_default_module_activation( false );
+
+ // Since this is a fresh connection, be sure to clear out IDC options.
+ Identity_Crisis::clear_all_idc_options();
+ }
+
+ /**
+ * This action fires at the end of the REST_Connector connection_reconnect method when the
+ * reconnect process is completed.
+ * Note that this currently only happens when we don't need the user to re-authorize
+ * their WP.com account, eg in cases where we are restoring a connection with
+ * unhealthy blog token.
*/
- public static function get_assumed_site_creation_date() {
- _deprecated_function( __METHOD__, 'jetpack-7.8', 'Automattic\\Jetpack\\Connection\\Manager' );
- return self::connection()->get_assumed_site_creation_date();
+ public static function reconnection_completed() {
+ self::state( 'message', 'reconnection_completed' );
}
+ /**
+ * Apply activation source to a query string array.
+ *
+ * @param array $args Args used for a query string.
+ *
+ * @return void
+ */
public static function apply_activation_source_to_args( &$args ) {
list( $activation_source_name, $activation_source_keyword ) = get_option( 'jetpack_activation_source' );
@@ -4853,24 +5159,51 @@ endif;
}
}
+ /**
+ * Returns the reconnection URL.
+ *
+ * @param bool $raw True to return an unescaped URL. False returns value after `esc_url`.
+ *
+ * @return string|null
+ */
function build_reconnect_url( $raw = false ) {
$url = wp_nonce_url( self::admin_url( 'action=reconnect' ), 'jetpack-reconnect' );
return $raw ? $url : esc_url( $url );
}
+ /**
+ * Jetpack Admin URL.
+ *
+ * @param array $args Query string args.
+ *
+ * @return string Jetpack admin URL.
+ */
public static function admin_url( $args = null ) {
$args = wp_parse_args( $args, array( 'page' => 'jetpack' ) );
$url = add_query_arg( $args, admin_url( 'admin.php' ) );
return $url;
}
+ /**
+ * Creates a nonce from an URL.
+ *
+ * @param string $actionurl URL for action.
+ * @param string $action Nonce action.
+ * @param string $name Query arg name.
+ *
+ * @return string
+ */
public static function nonce_url_no_esc( $actionurl, $action = -1, $name = '_wpnonce' ) {
$actionurl = str_replace( '&amp;', '&', $actionurl );
return add_query_arg( $name, wp_create_nonce( $action ), $actionurl );
}
+ /**
+ * Dismiss Jetpack notices.
+ *
+ * @return void
+ */
function dismiss_jetpack_notice() {
-
if ( ! isset( $_GET['jetpack-notice'] ) ) {
return;
}
@@ -4887,6 +5220,14 @@ endif;
}
}
+ /**
+ * Determines which module has a higher sort order.
+ *
+ * @param array $a Modules array.
+ * @param array $b Modules array.
+ *
+ * @return int 0 if the same sort or (+/-) to indicate which is greater.
+ */
public static function sort_modules( $a, $b ) {
if ( $a['sort'] == $b['sort'] ) {
return 0;
@@ -4895,6 +5236,13 @@ endif;
return ( $a['sort'] < $b['sort'] ) ? -1 : 1;
}
+ /**
+ * Recheck SSL status for use via an AJAX call.
+ *
+ * Sends data back via `wp_send_json`.
+ *
+ * @return void
+ */
function ajax_recheck_ssl() {
check_ajax_referer( 'recheck-ssl', 'ajax-nonce' );
$result = self::permit_ssl( true );
@@ -4909,27 +5257,14 @@ endif;
/* Client API */
/**
- * Returns the requested Jetpack API URL
+ * Verify the onboarding token.
*
- * @deprecated since 7.7
- * @return string
- */
- public static function api_url( $relative_url ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::api_url' );
- $connection = self::connection();
- return $connection->api_url( $relative_url );
- }
-
- /**
- * @deprecated 8.0 Use Automattic\Jetpack\Connection\Utils::fix_url_for_bad_hosts() instead.
+ * @param array $token_data Token data.
+ * @param string $token Token value.
+ * @param string $request_data JSON-encoded request data.
*
- * Some hosts disable the OpenSSL extension and so cannot make outgoing HTTPS requsets
+ * @return mixed
*/
- public static function fix_url_for_bad_hosts( $url ) {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Automattic\\Jetpack\\Connection\\Utils::fix_url_for_bad_hosts' );
- return Connection_Utils::fix_url_for_bad_hosts( $url );
- }
-
public static function verify_onboarding_token( $token_data, $token, $request_data ) {
// Default to a blog token.
$token_type = 'blog';
@@ -5002,20 +5337,23 @@ endif;
/**
* Validate an onboarding token for a specific action
*
+ * @param string $token Onboarding token.
+ * @param string $action Action name.
+ *
* @return boolean True if token/action pair is accepted, false if not
*/
public static function validate_onboarding_token_action( $token, $action ) {
- // Compare tokens, bail if tokens do not match
+ // Compare tokens, bail if tokens do not match.
if ( ! hash_equals( $token, Jetpack_Options::get_option( 'onboarding' ) ) ) {
return false;
}
- // List of valid actions we can take
+ // List of valid actions we can take.
$valid_actions = array(
'/jetpack/v4/settings',
);
- // Whitelist the action
+ // Only allow valid actions.
if ( ! in_array( $action, $valid_actions ) ) {
return false;
}
@@ -5026,42 +5364,31 @@ endif;
/**
* Checks to see if the URL is using SSL to connect with Jetpack
*
- * @since 2.3.3
+ * @param bool $force_recheck Force SSL recheck.
+ *
* @return boolean
+ * @since 2.3.3
*/
public static function permit_ssl( $force_recheck = false ) {
- // Do some fancy tests to see if ssl is being supported
+ // Do some fancy tests to see if ssl is being supported.
if ( $force_recheck || false === ( $ssl = get_transient( 'jetpack_https_test' ) ) ) {
$message = '';
if ( 'https' !== substr( JETPACK__API_BASE, 0, 5 ) ) {
$ssl = 0;
} else {
- switch ( JETPACK_CLIENT__HTTPS ) {
- case 'NEVER':
- $ssl = 0;
- $message = __( 'JETPACK_CLIENT__HTTPS is set to NEVER', 'jetpack' );
- break;
- case 'ALWAYS':
- case 'AUTO':
- default:
- $ssl = 1;
- break;
- }
+ $ssl = 1;
- // If it's not 'NEVER', test to see
- if ( $ssl ) {
- if ( ! wp_http_supports( array( 'ssl' => true ) ) ) {
+ if ( ! wp_http_supports( array( 'ssl' => true ) ) ) {
+ $ssl = 0;
+ $message = __( 'WordPress reports no SSL support', 'jetpack' );
+ } else {
+ $response = wp_remote_get( JETPACK__API_BASE . 'test/1/' );
+ if ( is_wp_error( $response ) ) {
$ssl = 0;
$message = __( 'WordPress reports no SSL support', 'jetpack' );
- } else {
- $response = wp_remote_get( JETPACK__API_BASE . 'test/1/' );
- if ( is_wp_error( $response ) ) {
- $ssl = 0;
- $message = __( 'WordPress reports no SSL support', 'jetpack' );
- } elseif ( 'OK' !== wp_remote_retrieve_body( $response ) ) {
- $ssl = 0;
- $message = __( 'Response was not OK: ', 'jetpack' ) . wp_remote_retrieve_body( $response );
- }
+ } elseif ( 'OK' !== wp_remote_retrieve_body( $response ) ) {
+ $ssl = 0;
+ $message = __( 'Response was not OK: ', 'jetpack' ) . wp_remote_retrieve_body( $response );
}
}
}
@@ -5072,8 +5399,8 @@ endif;
return (bool) $ssl;
}
- /*
- * Displays an admin_notice, alerting the user to their JETPACK_CLIENT__HTTPS constant being 'AUTO' but SSL isn't working.
+ /**
+ * Displays an admin_notice, alerting the user that outbound SSL isn't working.
*/
public function alert_auto_ssl_fail() {
if ( ! current_user_can( 'manage_options' ) ) {
@@ -5095,9 +5422,10 @@ endif;
<p>
<?php
printf(
+ /* translators: Both are URLs. First for the connection debug tool and the second for a support page. */
__( 'For more help, try our <a href="%1$s">connection debugger</a> or <a href="%2$s" target="_blank">troubleshooting tips</a>.', 'jetpack' ),
esc_url( self::admin_url( array( 'page' => 'jetpack-debugger' ) ) ),
- esc_url( 'https://jetpack.com/support/getting-started-with-jetpack/troubleshooting-tips/' )
+ esc_url( Redirect::get_url( 'jetpack-support-getting-started-troubleshooting-tips' ) )
);
?>
</p>
@@ -5115,14 +5443,14 @@ endif;
e.preventDefault();
var data = { action: 'jetpack-recheck-ssl', 'ajax-nonce': '<?php echo $ajax_nonce; ?>' };
$.post( ajaxurl, data )
- .done( function( response ) {
- if ( response.enabled ) {
- $( '#jetpack-ssl-warning' ).hide();
- } else {
- this.html( <?php echo json_encode( __( 'Try again', 'jetpack' ) ); ?> );
- $( '#jetpack-recheck-ssl-output' ).html( 'SSL Failed: ' + response.message );
- }
- }.bind( $this ) );
+ .done( function( response ) {
+ if ( response.enabled ) {
+ $( '#jetpack-ssl-warning' ).hide();
+ } else {
+ this.html( <?php echo wp_json_encode( __( 'Try again', 'jetpack' ) ); ?> );
+ $( '#jetpack-recheck-ssl-output' ).html( 'SSL Failed: ' + response.message );
+ }
+ }.bind( $this ) );
} );
} );
</script>
@@ -5131,23 +5459,19 @@ endif;
}
/**
- * Returns the Jetpack XML-RPC API
- *
- * @deprecated 8.0 Use Connection_Manager instead.
- * @return string
- */
- public static function xmlrpc_api_url() {
- _deprecated_function( __METHOD__, 'jetpack-8.0', 'Automattic\\Jetpack\\Connection\\Manager::xmlrpc_api_url()' );
- return self::connection()->xmlrpc_api_url();
- }
-
- /**
* Returns the connection manager object.
*
* @return Automattic\Jetpack\Connection\Manager
*/
public static function connection() {
- return self::init()->connection_manager;
+ $jetpack = static::init();
+
+ // If the connection manager hasn't been instantiated, do that now.
+ if ( ! $jetpack->connection_manager ) {
+ $jetpack->connection_manager = new Connection_Manager( 'jetpack' );
+ }
+
+ return $jetpack->connection_manager;
}
/**
@@ -5155,6 +5479,8 @@ endif;
*
* Note these tokens are unique per call, NOT static per site for connecting.
*
+ * @deprecated 9.5 Use Automattic\Jetpack\Connection\Secrets->generate() instead.
+ *
* @since 2.6
* @param String $action The action name.
* @param Integer $user_id The user identifier.
@@ -5162,17 +5488,26 @@ endif;
* @return array
*/
public static function generate_secrets( $action, $user_id = false, $exp = 600 ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.5', 'Automattic\\Jetpack\\Connection\\Secrets->generate' );
return self::connection()->generate_secrets( $action, $user_id, $exp );
}
+ /**
+ * Get verification secrets.
+ *
+ * @param string $action Action name.
+ * @param int $user_id User ID.
+ *
+ * @return array|string|WP_Error
+ */
public static function get_secrets( $action, $user_id ) {
- $secrets = self::connection()->get_secrets( $action, $user_id );
+ $secrets = ( new Secrets() )->get( $action, $user_id );
- if ( Connection_Manager::SECRETS_MISSING === $secrets ) {
+ if ( Secrets::SECRETS_MISSING === $secrets ) {
return new WP_Error( 'verify_secrets_missing', 'Verification secrets not found' );
}
- if ( Connection_Manager::SECRETS_EXPIRED === $secrets ) {
+ if ( Secrets::SECRETS_EXPIRED === $secrets ) {
return new WP_Error( 'verify_secrets_expired', 'Verification took too long' );
}
@@ -5180,118 +5515,38 @@ endif;
}
/**
- * @deprecated 7.5 Use Connection_Manager instead.
+ * Register a connection.
*
- * @param $action
- * @param $user_id
- */
- public static function delete_secrets( $action, $user_id ) {
- return self::connection()->delete_secrets( $action, $user_id );
- }
-
- /**
- * Builds the timeout limit for queries talking with the wpcom servers.
+ * @deprecated Jetpack 9.7.0
+ * @see Automattic\Jetpack\Connection\Manager::try_registration()
*
- * Based on local php max_execution_time in php.ini
- *
- * @since 2.6
- * @return int
- * @deprecated
- **/
- public function get_remote_query_timeout_limit() {
- _deprecated_function( __METHOD__, 'jetpack-5.4' );
- return self::get_max_execution_time();
- }
-
- /**
- * Builds the timeout limit for queries talking with the wpcom servers.
- *
- * Based on local php max_execution_time in php.ini
- *
- * @since 5.4
- * @return int
- **/
- public static 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 5.4
- **/
- public static function set_min_time_limit( $min_timeout ) {
- $timeout = self::get_max_execution_time();
- if ( $timeout < $min_timeout ) {
- $timeout = $min_timeout;
- set_time_limit( $timeout );
- }
- return $timeout;
- }
-
- /**
- * Takes the response from the Jetpack register new site endpoint and
- * verifies it worked properly.
- *
- * @since 2.6
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::validate_remote_register_response()
- **/
- public function validate_remote_register_response() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::validate_remote_register_response' );
- }
-
- /**
* @return bool|WP_Error
*/
public static function register() {
- $tracking = new Tracking();
- $tracking->record_user_event( 'jpc_register_begin' );
-
- add_filter( 'jetpack_register_request_body', array( __CLASS__, 'filter_register_request_body' ) );
-
- $connection = self::connection();
- $registration = $connection->register();
-
- remove_filter( 'jetpack_register_request_body', array( __CLASS__, 'filter_register_request_body' ) );
-
- if ( ! $registration || is_wp_error( $registration ) ) {
- return $registration;
- }
-
- return true;
+ _deprecated_function( __METHOD__, 'jetpack-9.7', 'Automattic\\Jetpack\\Connection\\Manager::try_registration' );
+ return static::connection()->try_registration( false );
}
/**
* Filters the registration request body to include tracking properties.
*
- * @param Array $properties
- * @return Array amended properties.
+ * @deprecated Jetpack 9.7.0
+ * @see Automattic\Jetpack\Connection\Utils::filter_register_request_body()
+ *
+ * @param array $properties Token request 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'],
- )
- );
+ _deprecated_function( __METHOD__, 'jetpack-9.7', 'Automattic\\Jetpack\\Connection\\Utils::filter_register_request_body' );
+ return Connection_Utils::filter_register_request_body( $properties );
}
/**
* Filters the token request body to include tracking properties.
*
- * @param Array $properties
- * @return Array amended properties.
+ * @param array $properties
+ *
+ * @return array amended properties.
*/
public static function filter_token_request_body( $properties ) {
$tracking = new Tracking();
@@ -5332,6 +5587,9 @@ endif;
* Loads the Jetpack XML-RPC client.
* No longer necessary, as the XML-RPC client will be automagically loaded.
*
+ * Note: we cannot remove this function yet as it is used in this plugin:
+ * https://wordpress.org/plugins/jetpack-subscription-form/
+ *
* @deprecated since 7.7.0
*/
public static function load_xml_rpc_client() {
@@ -5339,234 +5597,13 @@ endif;
}
/**
- * 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();
- }
-
- /**
- * Verifies the signature of the current request.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::verify_xml_rpc_signature()
- *
- * @return false|array
- */
- public function verify_xml_rpc_signature() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::verify_xml_rpc_signature' );
- return self::connection()->verify_xml_rpc_signature();
- }
-
- /**
- * 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()`.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::internal_verify_xml_rpc_signature()
- * @internal
- */
- private function internal_verify_xml_rpc_signature() {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::internal_verify_xml_rpc_signature' );
- }
-
- /**
- * Authenticates XML-RPC and other requests from the Jetpack Server.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::authenticate_jetpack()
- *
- * @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 ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::authenticate_jetpack' );
- return $this->connection_manager->authenticate_jetpack( $user, $username, $password );
- }
-
- // Authenticates requests from Jetpack server to WP REST API endpoints.
- // Uses the existing XMLRPC request signing implementation.
- function wp_rest_authenticate( $user ) {
- if ( ! empty( $user ) ) {
- // Another authentication method is in effect.
- return $user;
- }
-
- if ( ! isset( $_GET['_for'] ) || $_GET['_for'] !== 'jetpack' ) {
- // Nothing to do for this authentication method.
- return null;
- }
-
- if ( ! isset( $_GET['token'] ) && ! isset( $_GET['signature'] ) ) {
- // Nothing to do for this authentication method.
- return null;
- }
-
- // Ensure that we always have the request body available. At this
- // point, the WP REST API code to determine the request body has not
- // run yet. That code may try to read from 'php://input' later, but
- // this can only be done once per request in PHP versions prior to 5.6.
- // So we will go ahead and perform this read now if needed, and save
- // the request body where both the Jetpack signature verification code
- // and the WP REST API code can see it.
- if ( ! isset( $GLOBALS['HTTP_RAW_POST_DATA'] ) ) {
- $GLOBALS['HTTP_RAW_POST_DATA'] = file_get_contents( 'php://input' );
- }
- $this->HTTP_RAW_POST_DATA = $GLOBALS['HTTP_RAW_POST_DATA'];
-
- // 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 ( $_SERVER['REQUEST_METHOD'] !== 'GET' && $_SERVER['REQUEST_METHOD'] !== 'POST' ) {
- $this->rest_authentication_status = new WP_Error(
- 'rest_invalid_request',
- __( 'This request method is not supported.', 'jetpack' ),
- array( 'status' => 400 )
- );
- return null;
- }
- if ( $_SERVER['REQUEST_METHOD'] !== 'POST' && ! empty( $this->HTTP_RAW_POST_DATA ) ) {
- $this->rest_authentication_status = new WP_Error(
- 'rest_invalid_request',
- __( 'This request method does not support body parameters.', 'jetpack' ),
- array( 'status' => 400 )
- );
- return null;
- }
-
- $verified = $this->connection_manager->verify_xml_rpc_signature();
-
- if (
- $verified &&
- isset( $verified['type'] ) &&
- 'user' === $verified['type'] &&
- ! empty( $verified['user_id'] )
- ) {
- // Authentication successful.
- $this->rest_authentication_status = true;
- 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' ),
- array( 'status' => 400 )
- );
- return null;
- }
-
- /**
- * Report authentication status to the WP REST API.
- *
- * @param WP_Error|mixed $result 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 ( $value !== null ) {
- return $value;
- }
- return $this->rest_authentication_status;
- }
-
- /**
- * Add our nonce to this request.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::add_nonce()
- *
- * @param int $timestamp Timestamp of the request.
- * @param string $nonce Nonce string.
- */
- public function add_nonce( $timestamp, $nonce ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::add_nonce' );
- return $this->connection_manager->add_nonce( $timestamp, $nonce );
- }
-
- /**
- * 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.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::xmlrpc_methods()
- *
- * @param array $methods XMLRPC methods.
- * @return array XMLRPC methods, with the $HTTP_RAW_POST_DATA one.
- */
- public function xmlrpc_methods( $methods ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::xmlrpc_methods' );
- return $this->connection_manager->xmlrpc_methods( $methods );
- }
-
- /**
- * Register additional public XMLRPC methods.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::public_xmlrpc_methods()
- *
- * @param array $methods Public XMLRPC methods.
- * @return array Public XMLRPC methods, with the getOptions one.
- */
- public function public_xmlrpc_methods( $methods ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::public_xmlrpc_methods' );
- return $this->connection_manager->public_xmlrpc_methods( $methods );
- }
-
- /**
- * Handles a getOptions XMLRPC method call.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::jetpack_getOptions()
- *
- * @param array $args method call arguments.
- * @return array an amended XMLRPC server options array.
- */
- public function jetpack_getOptions( $args ) { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::jetpack_getOptions' );
- return $this->connection_manager->jetpack_getOptions( $args );
- }
-
- /**
- * Adds Jetpack-specific options to the output of the XMLRPC options method.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::xmlrpc_options()
- *
- * @param array $options Standard Core options.
- * @return array Amended options.
- */
- public function xmlrpc_options( $options ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::xmlrpc_options' );
- return $this->connection_manager->xmlrpc_options( $options );
- }
-
- /**
- * Cleans nonces that were saved when calling ::add_nonce.
- *
- * @deprecated since 7.7.0
- * @see Automattic\Jetpack\Connection\Manager::clean_nonces()
- *
- * @param bool $all whether to clean even non-expired nonces.
- */
- public static function clean_nonces( $all = false ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::clean_nonces' );
- return self::connection()->clean_nonces( $all );
- }
-
- /**
* State is passed via cookies from one request to the next, but never to subsequent requests.
* SET: state( $key, $value );
* GET: $value = state( $key );
*
- * @param string $key
- * @param string $value
- * @param bool $restate private
+ * @param string $key State key.
+ * @param string $value Value.
+ * @param bool $restate Reset the cookie (private).
*/
public static function state( $key = null, $value = null, $restate = false ) {
static $state = array();
@@ -5584,9 +5621,9 @@ endif;
}
}
- // Extract state from cookies and delete cookies
+ // Extract state from cookies and delete cookies.
if ( isset( $_COOKIE['jetpackState'] ) && is_array( $_COOKIE['jetpackState'] ) ) {
- $yum = $_COOKIE['jetpackState'];
+ $yum = wp_unslash( $_COOKIE['jetpackState'] );
unset( $_COOKIE['jetpackState'] );
foreach ( $yum as $k => $v ) {
if ( strlen( $v ) ) {
@@ -5603,7 +5640,7 @@ endif;
return;
}
- // Get a state variable
+ // Get a state variable.
if ( isset( $key ) && ! isset( $value ) ) {
if ( array_key_exists( $key, $state ) ) {
return $state[ $key ];
@@ -5611,22 +5648,55 @@ endif;
return null;
}
- // Set a state variable
+ // Set a state variable.
if ( isset( $key ) && isset( $value ) ) {
if ( is_array( $value ) && isset( $value[0] ) ) {
$value = $value[0];
}
$state[ $key ] = $value;
if ( ! headers_sent() ) {
- setcookie( "jetpackState[$key]", $value, 0, $path, $domain );
+ if ( self::should_set_cookie( $key ) ) {
+ setcookie( "jetpackState[$key]", $value, 0, $path, $domain );
+ }
}
}
}
+ /**
+ * Set an empty state.
+ *
+ * @return void
+ */
public static function restate() {
self::state( null, null, true );
}
+ /**
+ * Determines whether the jetpackState[$key] value should be added to the
+ * cookie.
+ *
+ * @param string $key The state key.
+ *
+ * @return boolean Whether the value should be added to the cookie.
+ */
+ public static function should_set_cookie( $key ) {
+ global $current_screen;
+ $page = isset( $current_screen->base ) ? $current_screen->base : null;
+
+ if ( 'toplevel_page_jetpack' === $page && 'display_update_modal' === $key ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Check if site is publicly accessible.
+ *
+ * @param string $file Module file.
+ *
+ * @return void
+ */
public static function check_privacy( $file ) {
static $is_site_publicly_accessible = null;
@@ -5663,84 +5733,15 @@ endif;
}
/**
- * Helper method for multicall XMLRPC.
+ * Serve a WordPress.com static resource via a randomized wp.com subdomain.
+ *
+ * @deprecated 9.3.0 Use Assets::staticize_subdomain.
*
- * @param ...$args Args for the async_call.
+ * @param string $url WordPress.com static resource URL.
*/
- public static function xmlrpc_async_call( ...$args ) {
- global $blog_id;
- static $clients = array();
-
- $client_blog_id = is_multisite() ? $blog_id : 0;
-
- if ( ! isset( $clients[ $client_blog_id ] ) ) {
- $clients[ $client_blog_id ] = new Jetpack_IXR_ClientMulticall( array( 'user_id' => JETPACK_MASTER_USER ) );
- if ( function_exists( 'ignore_user_abort' ) ) {
- ignore_user_abort( true );
- }
- add_action( 'shutdown', array( 'Jetpack', 'xmlrpc_async_call' ) );
- }
-
- if ( ! empty( $args[0] ) ) {
- call_user_func_array( array( $clients[ $client_blog_id ], 'addCall' ), $args );
- } elseif ( is_multisite() ) {
- foreach ( $clients as $client_blog_id => $client ) {
- if ( ! $client_blog_id || empty( $client->calls ) ) {
- continue;
- }
-
- $switch_success = switch_to_blog( $client_blog_id, true );
- if ( ! $switch_success ) {
- continue;
- }
-
- flush();
- $client->query();
-
- restore_current_blog();
- }
- } else {
- if ( isset( $clients[0] ) && ! empty( $clients[0]->calls ) ) {
- flush();
- $clients[0]->query();
- }
- }
- }
-
public static function staticize_subdomain( $url ) {
-
- // Extract hostname from URL
- $host = wp_parse_url( $url, PHP_URL_HOST );
-
- // Explode hostname on '.'
- $exploded_host = explode( '.', $host );
-
- // Retrieve the name and TLD
- if ( count( $exploded_host ) > 1 ) {
- $name = $exploded_host[ count( $exploded_host ) - 2 ];
- $tld = $exploded_host[ count( $exploded_host ) - 1 ];
- // Rebuild domain excluding subdomains
- $domain = $name . '.' . $tld;
- } else {
- $domain = $host;
- }
- // Array of Automattic domains
- $domain_whitelist = array( 'wordpress.com', 'wp.com' );
-
- // Return $url if not an Automattic domain
- if ( ! in_array( $domain, $domain_whitelist ) ) {
- return $url;
- }
-
- if ( is_ssl() ) {
- return preg_replace( '|https?://[^/]++/|', 'https://s-ssl.wordpress.com/', $url );
- }
-
- srand( crc32( basename( $url ) ) );
- $static_counter = rand( 0, 2 );
- srand(); // this resets everything that relies on this, like array_rand() and shuffle()
-
- return preg_replace( '|://[^/]+?/|', "://s$static_counter.wp.com/", $url );
+ _deprecated_function( __METHOD__, 'jetpack-9.3.0', 'Automattic\Jetpack\Assets::staticize_subdomain' );
+ return Assets::staticize_subdomain( $url );
}
/* JSON API Authorization */
@@ -5758,7 +5759,13 @@ endif;
add_filter( 'site_url', array( &$this, 'post_login_form_to_signed_url' ), 10, 3 );
}
- // Make sure the login form is POSTed to the signed URL so we can reverify the request
+ /**
+ * Make sure the login form is POSTed to the signed URL so we can reverify the request.
+ *
+ * @param string $url Redirect URL.
+ * @param string $path Path.
+ * @param string $scheme URL Scheme.
+ */
function post_login_form_to_signed_url( $url, $path, $scheme ) {
if ( 'wp-login.php' !== $path || ( 'login_post' !== $scheme && 'login' !== $scheme ) ) {
return $url;
@@ -5774,13 +5781,20 @@ endif;
return $url;
}
- // Make sure the POSTed request is handled by the same action
+ /**
+ * Make sure the POSTed request is handled by the same action.
+ */
function preserve_action_in_login_form_for_json_api_authorization() {
echo "<input type='hidden' name='action' value='jetpack_json_api_authorization' />\n";
echo "<input type='hidden' name='jetpack_json_api_original_query' value='" . esc_url( set_url_scheme( $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) ) . "' />\n";
}
- // If someone logs in to approve API access, store the Access Code in usermeta
+ /**
+ * If someone logs in to approve API access, store the Access Code in usermeta.
+ *
+ * @param string $user_login Unused.
+ * @param WP_User $user User logged in.
+ */
function store_json_api_authorization_token( $user_login, $user ) {
add_filter( 'login_redirect', array( &$this, 'add_token_to_login_redirect_json_api_authorization' ), 10, 3 );
add_filter( 'allowed_redirect_hosts', array( &$this, 'allow_wpcom_public_api_domain' ) );
@@ -5788,17 +5802,36 @@ endif;
update_user_meta( $user->ID, 'jetpack_json_api_' . $this->json_api_authorization_request['client_id'], $token );
}
- // Add public-api.wordpress.com to the safe redirect whitelist - only added when someone allows API access
+ /**
+ * Add public-api.wordpress.com to the safe redirect allowed list - only added when someone allows API access.
+ *
+ * To be used with a filter of allowed domains for a redirect.
+ *
+ * @param array $domains Allowed WP.com Environments.
+ */
function allow_wpcom_public_api_domain( $domains ) {
$domains[] = 'public-api.wordpress.com';
return $domains;
}
+ /**
+ * Check if the redirect is encoded.
+ *
+ * @param string $redirect_url Redirect URL.
+ *
+ * @return bool If redirect has been encoded.
+ */
static function is_redirect_encoded( $redirect_url ) {
return preg_match( '/https?%3A%2F%2F/i', $redirect_url ) > 0;
}
- // Add all wordpress.com environments to the safe redirect whitelist
+ /**
+ * Add all wordpress.com environments to the safe redirect allowed list.
+ *
+ * To be used with a filter of allowed domains for a redirect.
+ *
+ * @param array $domains Allowed WP.com Environments.
+ */
function allow_wpcom_environments( $domains ) {
$domains[] = 'wordpress.com';
$domains[] = 'wpcalypso.wordpress.com';
@@ -5807,7 +5840,15 @@ endif;
return $domains;
}
- // Add the Access Code details to the public-api.wordpress.com redirect
+ /**
+ * Add the Access Code details to the public-api.wordpress.com redirect.
+ *
+ * @param string $redirect_to URL.
+ * @param string $original_redirect_to URL.
+ * @param WP_User $user WP_User for the redirect.
+ *
+ * @return string
+ */
function add_token_to_login_redirect_json_api_authorization( $redirect_to, $original_redirect_to, $user ) {
return add_query_arg(
urlencode_deep(
@@ -5821,29 +5862,28 @@ endif;
);
}
-
/**
* Verifies the request by checking the signature
*
* @since 4.6.0 Method was updated to use `$_REQUEST` instead of `$_GET` and `$_POST`. Method also updated to allow
* passing in an `$environment` argument that overrides `$_REQUEST`. This was useful for integrating with SSO.
*
- * @param null|array $environment
+ * @param null|array $environment Value to override $_REQUEST.
*/
function verify_json_api_authorization_request( $environment = null ) {
$environment = is_null( $environment )
? $_REQUEST
: $environment;
- list( $envToken, $envVersion, $envUserId ) = explode( ':', $environment['token'] );
- $token = Jetpack_Data::get_access_token( $envUserId, $envToken );
+ list( $env_token,, $env_user_id ) = explode( ':', $environment['token'] );
+ $token = ( new Tokens() )->get_access_token( $env_user_id, $env_token );
if ( ! $token || empty( $token->secret ) ) {
wp_die( __( 'You must connect your Jetpack plugin to WordPress.com to use this feature.', 'jetpack' ) );
}
- $die_error = __( 'Someone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.', 'jetpack' );
+ $die_error = __( 'Someone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.', 'jetpack' );
- // Host has encoded the request URL, probably as a result of a bad http => https redirect
+ // Host has encoded the request URL, probably as a result of a bad http => https redirect.
if ( self::is_redirect_encoded( $_GET['redirect_to'] ) ) {
/**
* Jetpack authorisation request Error.
@@ -5854,7 +5894,7 @@ endif;
$die_error = sprintf(
/* translators: %s is a URL */
__( 'Your site is incorrectly double-encoding redirects from http to https. This is preventing Jetpack from authenticating your connection. Please visit our <a href="%s">support page</a> for details about how to resolve this.', 'jetpack' ),
- 'https://jetpack.com/support/double-encoding/'
+ Redirect::get_url( 'jetpack-support-double-encoding' )
);
}
@@ -5886,7 +5926,7 @@ endif;
wp_die( $die_error );
} elseif ( ! hash_equals( $signature, $environment['signature'] ) ) {
if ( is_ssl() ) {
- // If we signed an HTTP request on the Jetpack Servers, but got redirected to HTTPS by the local blog, check the HTTP signature as well
+ // If we signed an HTTP request on the Jetpack Servers, but got redirected to HTTPS by the local blog, check the HTTP signature as well.
$signature = $jetpack_signature->sign_current_request(
array(
'scheme' => 'http',
@@ -5905,12 +5945,16 @@ endif;
$timestamp = (int) $environment['timestamp'];
$nonce = stripslashes( (string) $environment['nonce'] );
- if ( ! $this->connection_manager->add_nonce( $timestamp, $nonce ) ) {
+ if ( ! $this->connection_manager ) {
+ $this->connection_manager = new Connection_Manager();
+ }
+
+ if ( ! ( new Nonce_Handler() )->add( $timestamp, $nonce ) ) {
// De-nonce the nonce, at least for 5 minutes.
- // We have to reuse this nonce at least once (used the first time when the initial request is made, used a second time when the login form is POSTed)
+ // We have to reuse this nonce at least once (used the first time when the initial request is made, used a second time when the login form is POSTed).
$old_nonce_time = get_option( "jetpack_nonce_{$timestamp}_{$nonce}" );
if ( $old_nonce_time < time() - 300 ) {
- wp_die( __( 'The authorization process expired. Please go back and try again.', 'jetpack' ) );
+ wp_die( esc_html__( 'The authorization process expired. Please go back and try again.', 'jetpack' ) );
}
}
@@ -5948,9 +5992,17 @@ endif;
}
}
+ /**
+ * HTML for the JSON API authorization notice.
+ *
+ * @param string $message Authorization message. Unused.
+ *
+ * @return string
+ */
function login_message_json_api_authorization( $message ) {
return '<p class="message">' . sprintf(
- esc_html__( '%s wants to access your site&#8217;s data. Log in to authorize that access.', 'jetpack' ),
+ /* translators: Name/image of the client requesting authorization */
+ esc_html__( '%s wants to access your site’s data. Log in to authorize that access.', 'jetpack' ),
'<strong>' . esc_html( $this->json_api_authorization_request['client_title'] ) . '</strong>'
) . '<img src="' . esc_url( $this->json_api_authorization_request['client_image'] ) . '" /></p>';
}
@@ -5975,14 +6027,14 @@ endif;
/**
* Pings the WordPress.com Mirror Site for the specified options.
*
- * @param string|array $option_names The option names to request from the WordPress.com Mirror Site
+ * @param string|array $option_names The option names to request from the WordPress.com Mirror Site.
*
* @return array An associative array of the option values as stored in the WordPress.com Mirror Site
*/
public function get_cloud_site_options( $option_names ) {
$option_names = array_filter( (array) $option_names, 'is_string' );
- $xml = new Jetpack_IXR_Client( array( 'user_id' => JETPACK_MASTER_USER ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.fetchSiteOptions', $option_names );
if ( $xml->isError() ) {
return array(
@@ -6001,7 +6053,7 @@ endif;
* @return array|bool Array of options that are in a crisis, or false if everything is OK.
*/
public static function check_identity_crisis() {
- if ( ! self::is_active() || ( new Status() )->is_development_mode() || ! self::validate_sync_error_idc_option() ) {
+ if ( ! self::is_connection_ready() || ( new Status() )->is_offline_mode() || ! Identity_Crisis::validate_sync_error_idc_option() ) {
return false;
}
@@ -6009,19 +6061,6 @@ endif;
}
/**
- * Checks whether the home and siteurl specifically are whitelisted
- * Written so that we don't have re-check $key and $value params every time
- * we want to check if this site is whitelisted, for example in footer.php
- *
- * @since 3.8.0
- * @return bool True = already whitelisted False = not whitelisted
- */
- public static function is_staging_site() {
- _deprecated_function( 'Jetpack::is_staging_site', 'jetpack-8.1', '/Automattic/Jetpack/Status->is_staging_site' );
- return ( new Status() )->is_staging_site();
- }
-
- /**
* Checks whether the sync_error_idc option is valid or not, and if not, will do cleanup.
*
* @since 4.4.0
@@ -6030,52 +6069,8 @@ endif;
* @return bool
*/
public static function validate_sync_error_idc_option() {
- $is_valid = false;
-
- $idc_allowed = get_transient( 'jetpack_idc_allowed' );
- if ( false === $idc_allowed ) {
- $response = wp_remote_get( 'https://jetpack.com/is-idc-allowed/' );
- if ( 200 === (int) wp_remote_retrieve_response_code( $response ) ) {
- $json = json_decode( wp_remote_retrieve_body( $response ) );
- $idc_allowed = isset( $json, $json->result ) && $json->result ? '1' : '0';
- $transient_duration = HOUR_IN_SECONDS;
- } else {
- // If the request failed for some reason, then assume IDC is allowed and set shorter transient.
- $idc_allowed = '1';
- $transient_duration = 5 * MINUTE_IN_SECONDS;
- }
-
- set_transient( 'jetpack_idc_allowed', $idc_allowed, $transient_duration );
- }
-
- // 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 ( $idc_allowed && $sync_error && self::sync_idc_optin() ) {
- $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 ( $sync_error['home'] === $local_options['home'] && $sync_error['siteurl'] === $local_options['siteurl'] ) {
- $is_valid = true;
- }
- }
-
- }
-
- /**
- * Filters whether the sync_error_idc option is valid.
- *
- * @since 4.4.0
- *
- * @param bool $is_valid If the sync_error_idc is valid or not.
- */
- $is_valid = (bool) apply_filters( 'jetpack_sync_error_idc_validation', $is_valid );
-
- if ( ! $idc_allowed || ( ! $is_valid && $sync_error ) ) {
- // Since the option exists, and did not validate, delete it
- Jetpack_Options::delete_option( 'sync_error_idc' );
- }
-
- return $is_valid;
+ _deprecated_function( __METHOD__, 'jetpack-9.8', '\\Automattic\\Jetpack\\Identity_Crisis::validate_sync_error_idc_option' );
+ return Identity_Crisis::validate_sync_error_idc_option();
}
/**
@@ -6085,16 +6080,17 @@ endif;
* - Adds a trailing slash
*
* @since 4.4.0
- * @param string $url
+ * @param string $url URL.
* @return WP_Error|string
*/
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'] ) ) {
+ /* translators: URL string */
return new WP_Error( 'cannot_parse_url', sprintf( esc_html__( 'Cannot parse URL %s', 'jetpack' ), $url ) );
}
- // Strip www and protocols
+ // Strip www and protocols.
$url = preg_replace( '/^www\./i', '', $parsed_url['host'] . $parsed_url['path'] );
return $url;
}
@@ -6104,41 +6100,14 @@ endif;
*
* @since 4.4.0
* @since 5.4.0 Add transient since home/siteurl retrieved directly from DB
+ * @deprecated 9.8.0 Use \\Automattic\\Jetpack\\Identity_Crisis::get_sync_error_idc_option
*
- * @param array $response
+ * @param array $response HTTP response.
* @return array Array of the local urls, wpcom urls, and error code
*/
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' => Functions::home_url(),
- 'siteurl' => Functions::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;
- }
-
- if ( is_wp_error( $normalized_url = self::normalize_url_protocol_agnostic( $option ) ) ) {
- continue;
- }
-
- $returned_values[ $key ] = $normalized_url;
- }
-
- set_transient( 'jetpack_idc_option', $returned_values, MINUTE_IN_SECONDS );
-
- return $returned_values;
+ _deprecated_function( __METHOD__, 'jetpack-9.8', '\\Automattic\\Jetpack\\Identity_Crisis::get_sync_error_idc_option' );
+ return Identity_Crisis::get_sync_error_idc_option( $response );
}
/**
@@ -6149,28 +6118,20 @@ endif;
* @return bool
*/
public static function sync_idc_optin() {
- if ( Constants::is_defined( 'JETPACK_SYNC_IDC_OPTIN' ) ) {
- $default = Constants::get_constant( 'JETPACK_SYNC_IDC_OPTIN' );
- } else {
- $default = ! Constants::is_defined( 'SUNRISE' ) && ! is_multisite();
- }
-
- /**
- * Allows sites to optin to 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 false, or the value of
- * JETPACK_SYNC_IDC_OPTIN constant if set.
- *
- * @since 4.3.2
- *
- * @param bool $default Whether the site is opted in to IDC mitigation.
- */
- return (bool) apply_filters( 'jetpack_sync_idc_optin', $default );
+ _deprecated_function( __METHOD__, 'jetpack-9.8', '\\Automattic\\Jetpack\\Identity_Crisis::sync_idc_optin' );
+ return Identity_Crisis::sync_idc_optin();
}
/**
* Maybe Use a .min.css stylesheet, maybe not.
*
* Hooks onto `plugins_url` filter at priority 1, and accepts all 3 args.
+ *
+ * @param string $url URL.
+ * @param string $path File path.
+ * @param string $plugin Plugin.
+ *
+ * @return mixed
*/
public static function maybe_min_asset( $url, $path, $plugin ) {
// Short out on things trying to find actual paths.
@@ -6220,9 +6181,10 @@ endif;
*
* Attached to `style_loader_src` filter.
*
- * @param string $tag The tag that would link to the external asset.
+ * @param string $src source file.
* @param string $handle The registered handle of the script in question.
- * @param string $href The url of the asset in question.
+ *
+ * @return mixed
*/
public static function set_suffix_on_min( $src, $handle ) {
if ( false === strpos( $src, '.min.css' ) ) {
@@ -6264,11 +6226,11 @@ endif;
if ( preg_match( '# href=\'([^\']+)\' #i', $tag, $matches ) ) {
$href = $matches[1];
- // Strip off query string
+ // Strip off query string.
if ( $pos = strpos( $href, '?' ) ) {
$href = substr( $href, 0, $pos );
}
- // Strip off fragment
+ // Strip off fragment.
if ( $pos = strpos( $href, '#' ) ) {
$href = substr( $href, 0, $pos );
}
@@ -6311,9 +6273,9 @@ endif;
* Data passed in with the $data parameter will be available in the
* template file as $data['value']
*
- * @param string $template - Template file to load
- * @param array $data - Any data to pass along to the template
- * @return boolean - If template file was found
+ * @param string $template - Template file to load.
+ * @param array $data - Any data to pass along to the template.
+ * @return boolean - If template file was found.
**/
public function load_view( $template, $data = array() ) {
$views_dir = JETPACK__PLUGIN_DIR . 'views/';
@@ -6328,77 +6290,262 @@ endif;
}
/**
- * Throws warnings for deprecated hooks to be removed from Jetpack
+ * Throws warnings for deprecated hooks to be removed from Jetpack that cannot remain in the original place in the code.
*/
public function deprecated_hooks() {
- global $wp_filter;
+ $filter_deprecated_list = array(
+ 'jetpack_bail_on_shortcode' => array(
+ 'replacement' => 'jetpack_shortcodes_to_include',
+ 'version' => 'jetpack-3.1.0',
+ ),
+ 'wpl_sharing_2014_1' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-3.6.0',
+ ),
+ 'jetpack-tools-to-include' => array(
+ 'replacement' => 'jetpack_tools_to_include',
+ 'version' => 'jetpack-3.9.0',
+ ),
+ 'jetpack_identity_crisis_options_to_check' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.0.0',
+ ),
+ 'update_option_jetpack_single_user_site' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'audio_player_default_colors' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_featured_images_enabled' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_update_details' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_updates' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_name' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_allow_new_registrations' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_add_new_users' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_site_upload_space' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_upload_file_types' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_network_enable_administration_menus' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_is_multi_site' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_is_main_network' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'add_option_jetpack_main_network_site' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'jetpack_sync_all_registered_options' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.3.0',
+ ),
+ 'jetpack_has_identity_crisis' => array(
+ 'replacement' => 'jetpack_sync_error_idc_validation',
+ 'version' => 'jetpack-4.4.0',
+ ),
+ 'jetpack_is_post_mailable' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-4.4.0',
+ ),
+ 'jetpack_seo_site_host' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-5.1.0',
+ ),
+ 'jetpack_installed_plugin' => array(
+ 'replacement' => 'jetpack_plugin_installed',
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_holiday_snow_option_name' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_holiday_chance_of_snow' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_holiday_snow_js_url' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_is_holiday_snow_season' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_holiday_snow_option_updated' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_holiday_snowing' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.0.0',
+ ),
+ 'jetpack_sso_auth_cookie_expirtation' => array(
+ 'replacement' => 'jetpack_sso_auth_cookie_expiration',
+ 'version' => 'jetpack-6.1.0',
+ ),
+ 'jetpack_cache_plans' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.1.0',
+ ),
- /*
- * Format:
- * deprecated_filter_name => replacement_name
- *
- * If there is no replacement, use null for replacement_name
- */
- $deprecated_list = array(
- 'jetpack_bail_on_shortcode' => 'jetpack_shortcodes_to_include',
- 'wpl_sharing_2014_1' => null,
- 'jetpack-tools-to-include' => 'jetpack_tools_to_include',
- 'jetpack_identity_crisis_options_to_check' => null,
- 'update_option_jetpack_single_user_site' => null,
- 'audio_player_default_colors' => null,
- 'add_option_jetpack_featured_images_enabled' => null,
- 'add_option_jetpack_update_details' => null,
- 'add_option_jetpack_updates' => null,
- 'add_option_jetpack_network_name' => null,
- 'add_option_jetpack_network_allow_new_registrations' => null,
- 'add_option_jetpack_network_add_new_users' => null,
- 'add_option_jetpack_network_site_upload_space' => null,
- 'add_option_jetpack_network_upload_file_types' => null,
- 'add_option_jetpack_network_enable_administration_menus' => null,
- 'add_option_jetpack_is_multi_site' => null,
- 'add_option_jetpack_is_main_network' => null,
- 'add_option_jetpack_main_network_site' => null,
- 'jetpack_sync_all_registered_options' => null,
- 'jetpack_has_identity_crisis' => 'jetpack_sync_error_idc_validation',
- 'jetpack_is_post_mailable' => null,
- 'jetpack_seo_site_host' => null,
- 'jetpack_installed_plugin' => 'jetpack_plugin_installed',
- 'jetpack_holiday_snow_option_name' => null,
- 'jetpack_holiday_chance_of_snow' => null,
- 'jetpack_holiday_snow_js_url' => null,
- 'jetpack_is_holiday_snow_season' => null,
- 'jetpack_holiday_snow_option_updated' => null,
- 'jetpack_holiday_snowing' => null,
- 'jetpack_sso_auth_cookie_expirtation' => 'jetpack_sso_auth_cookie_expiration',
- 'jetpack_cache_plans' => null,
- 'jetpack_updated_theme' => 'jetpack_updated_themes',
- 'jetpack_lazy_images_skip_image_with_atttributes' => 'jetpack_lazy_images_skip_image_with_attributes',
- 'jetpack_enable_site_verification' => null,
- 'can_display_jetpack_manage_notice' => null,
- // Removed in Jetpack 7.3.0
- 'atd_load_scripts' => null,
- 'atd_http_post_timeout' => null,
- 'atd_http_post_error' => null,
- 'atd_service_domain' => null,
- 'jetpack_widget_authors_exclude' => 'jetpack_widget_authors_params',
- // Removed in Jetpack 7.9.0
- 'jetpack_pwa_manifest' => null,
- 'jetpack_pwa_background_color' => null,
+ 'jetpack_lazy_images_skip_image_with_atttributes' => array(
+ 'replacement' => 'jetpack_lazy_images_skip_image_with_attributes',
+ 'version' => 'jetpack-6.5.0',
+ ),
+ 'jetpack_enable_site_verification' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-6.5.0',
+ ),
+ 'can_display_jetpack_manage_notice' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.3.0',
+ ),
+ 'atd_http_post_timeout' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.3.0',
+ ),
+ 'atd_service_domain' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.3.0',
+ ),
+ 'atd_load_scripts' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.3.0',
+ ),
+ 'jetpack_widget_authors_exclude' => array(
+ 'replacement' => 'jetpack_widget_authors_params',
+ 'version' => 'jetpack-7.7.0',
+ ),
+ // Removed in Jetpack 7.9.0.
+ 'jetpack_pwa_manifest' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.9.0',
+ ),
+ 'jetpack_pwa_background_color' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.9.0',
+ ),
+ 'jetpack_check_mobile' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_stylesheet' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_template' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_theme_menu' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'minileven_show_featured_images' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'minileven_attachment_size' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'instagram_cache_oembed_api_response_body' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-9.1.0',
+ ),
+ 'jetpack_can_make_outbound_https' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-9.1.0',
+ ),
);
- // This is a silly loop depth. Better way?
- foreach ( $deprecated_list as $hook => $hook_alt ) {
- if ( has_action( $hook ) ) {
- foreach ( $wp_filter[ $hook ] as $func => $values ) {
- foreach ( $values as $hooked ) {
- if ( is_callable( $hooked['function'] ) ) {
- $function_name = 'an anonymous function';
- } else {
- $function_name = $hooked['function'];
- }
- _deprecated_function( $hook . ' used for ' . $function_name, null, $hook_alt );
- }
- }
+ foreach ( $filter_deprecated_list as $tag => $args ) {
+ if ( has_filter( $tag ) ) {
+ apply_filters_deprecated( $tag, array( null ), $args['version'], $args['replacement'] );
+ }
+ }
+
+ $action_deprecated_list = array(
+ 'jetpack_updated_theme' => array(
+ 'replacement' => 'jetpack_updated_themes',
+ 'version' => 'jetpack-6.2.0',
+ ),
+ 'atd_http_post_error' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-7.3.0',
+ ),
+ 'mobile_reject_mobile' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'mobile_force_mobile' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'mobile_app_promo_download' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'mobile_setup' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_footer_before' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'wp_mobile_theme_footer' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'minileven_credits' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_header_before' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ 'jetpack_mobile_header_after' => array(
+ 'replacement' => null,
+ 'version' => 'jetpack-8.3.0',
+ ),
+ );
+
+ foreach ( $action_deprecated_list as $tag => $args ) {
+ if ( has_action( $tag ) ) {
+ do_action_deprecated( $tag, array(), $args['version'], $args['replacement'] );
}
}
}
@@ -6413,8 +6560,8 @@ endif;
* - Absolute URLs `http://domain.com/feh.png`
* - Domain root relative URLs `/feh.png`
*
- * @param $css string: The raw CSS -- should be read in directly from the file.
- * @param $css_file_url : The URL that the file can be accessed at, for calculating paths from.
+ * @param string $css The raw CSS -- should be read in directly from the file.
+ * @param string $css_file_url The URL that the file can be accessed at, for calculating paths from.
*
* @return mixed|string
*/
@@ -6487,8 +6634,10 @@ endif;
*
* add_filter( 'jetpack_implode_frontend_css', '__return_false' );
*
+ * @param bool $travis_test Is this a test run.
+ *
* @since 3.2
- **/
+ */
public function implode_frontend_css( $travis_test = false ) {
$do_implode = true;
if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
@@ -6509,19 +6658,19 @@ endif;
*/
$do_implode = apply_filters( 'jetpack_implode_frontend_css', $do_implode );
- // Do not use the imploded file when default behavior was altered through the filter
+ // Do not use the imploded file when default behavior was altered through the filter.
if ( ! $do_implode ) {
return;
}
- // We do not want to use the imploded file in dev mode, or if not connected
- if ( ( new Status() )->is_development_mode() || ! self::is_active() ) {
+ // We do not want to use the imploded file in dev mode, or if not connected.
+ if ( ( new Status() )->is_offline_mode() || ! self::is_connection_ready() ) {
if ( ! $travis_test ) {
return;
}
}
- // Do not use the imploded file if sharing css was dequeued via the sharing settings screen
+ // Do not use the imploded file if sharing css was dequeued via the sharing settings screen.
if ( get_option( 'sharedaddy_disable_resources' ) ) {
return;
}
@@ -6547,6 +6696,14 @@ endif;
wp_style_add_data( 'jetpack_css', 'rtl', 'replace' );
}
+ /**
+ * Removes styles that are part of concatenated group.
+ *
+ * @param string $tag Style tag.
+ * @param string $handle Style handle.
+ *
+ * @return string
+ */
function concat_remove_style_loader_tag( $tag, $handle ) {
if ( in_array( $handle, $this->concatenated_style_handles ) ) {
$tag = '';
@@ -6559,24 +6716,6 @@ endif;
}
/**
- * Add an async attribute to scripts that can be loaded asynchronously.
- * https://www.w3schools.com/tags/att_script_async.asp
- *
- * @since 7.7.0
- *
- * @param string $tag The <script> tag for the enqueued script.
- * @param string $handle The script's registered handle.
- * @param string $src The script's source URL.
- */
- public function script_add_async( $tag, $handle, $src ) {
- if ( in_array( $handle, $this->async_script_handles, true ) ) {
- return preg_replace( '/^<script /i', '<script async ', $tag );
- }
-
- return $tag;
- }
-
- /*
* Check the heartbeat data
*
* Organizes the heartbeat data by severity. For example, if the site
@@ -6598,7 +6737,7 @@ endif;
foreach ( $raw_data as $stat => $value ) {
- // Check jetpack version
+ // Check jetpack version.
if ( 'version' == $stat ) {
if ( version_compare( $value, JETPACK__VERSION, '<' ) ) {
$caution[ $stat ] = $value . ' - min supported is ' . JETPACK__VERSION;
@@ -6606,7 +6745,7 @@ endif;
}
}
- // Check WP version
+ // Check WP version.
if ( 'wp-version' == $stat ) {
if ( version_compare( $value, JETPACK__MINIMUM_WP_VERSION, '<' ) ) {
$caution[ $stat ] = $value . ' - min supported is ' . JETPACK__MINIMUM_WP_VERSION;
@@ -6614,15 +6753,15 @@ endif;
}
}
- // Check PHP version
+ // Check PHP version.
if ( 'php-version' == $stat ) {
if ( version_compare( PHP_VERSION, JETPACK__MINIMUM_PHP_VERSION, '<' ) ) {
- $caution[ $stat ] = $value . " - min supported is " . JETPACK__MINIMUM_PHP_VERSION;
+ $caution[ $stat ] = $value . ' - min supported is ' . JETPACK__MINIMUM_PHP_VERSION;
continue;
}
}
- // Check ID crisis
+ // Check ID crisis.
if ( 'identitycrisis' == $stat ) {
if ( 'yes' == $value ) {
$bad[ $stat ] = $value;
@@ -6630,7 +6769,7 @@ endif;
}
}
- // The rest are good :)
+ // The rest are good :).
$good[ $stat ] = $value;
}
@@ -6643,8 +6782,7 @@ endif;
return $filtered_data;
}
-
- /*
+ /**
* This method is used to organize all options that can be reset
* without disconnecting Jetpack.
*
@@ -6658,81 +6796,25 @@ endif;
return Jetpack_Options::get_options_for_reset();
}
- /*
+ /**
* Strip http:// or https:// from a url, replaces forward slash with ::,
* so we can bring them directly to their site in calypso.
*
- * @param string | url
- * @return string | url without the guff
- */
- public static function build_raw_urls( $url ) {
- $strip_http = '/.*?:\/\//i';
- $url = preg_replace( $strip_http, '', $url );
- $url = str_replace( '/', '::', $url );
- return $url;
- }
-
- /**
- * Stores and prints out domains to prefetch for page speed optimization.
+ * @deprecated 9.2.0 Use Automattic\Jetpack\Status::get_site_suffix
*
- * @param mixed $new_urls
+ * @param string $url URL.
+ * @return string url without the guff.
*/
- public static function dns_prefetch( $new_urls = null ) {
- static $prefetch_urls = array();
- if ( empty( $new_urls ) && ! empty( $prefetch_urls ) ) {
- echo "\r\n";
- foreach ( $prefetch_urls as $this_prefetch_url ) {
- printf( "<link rel='dns-prefetch' href='%s'/>\r\n", esc_attr( $this_prefetch_url ) );
- }
- } elseif ( ! empty( $new_urls ) ) {
- if ( ! has_action( 'wp_head', array( __CLASS__, __FUNCTION__ ) ) ) {
- add_action( 'wp_head', array( __CLASS__, __FUNCTION__ ) );
- }
- foreach ( (array) $new_urls as $this_new_url ) {
- $prefetch_urls[] = strtolower( untrailingslashit( preg_replace( '#^https?://#i', '//', $this_new_url ) ) );
- }
- $prefetch_urls = array_unique( $prefetch_urls );
- }
- }
-
- public function wp_dashboard_setup() {
- if ( self::is_active() ) {
- add_action( 'jetpack_dashboard_widget', array( __CLASS__, 'dashboard_widget_footer' ), 999 );
- }
-
- if ( has_action( 'jetpack_dashboard_widget' ) ) {
- $jetpack_logo = new Jetpack_Logo();
- $widget_title = sprintf(
- wp_kses(
- /* translators: Placeholder is a Jetpack logo. */
- __( 'Stats <span>by %s</span>', 'jetpack' ),
- array( 'span' => array() )
- ),
- $jetpack_logo->get_jp_emblem( true )
- );
-
- wp_add_dashboard_widget(
- 'jetpack_summary_widget',
- $widget_title,
- array( __CLASS__, 'dashboard_widget' )
- );
- wp_enqueue_style( 'jetpack-dashboard-widget', plugins_url( 'css/dashboard-widget.css', JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
- wp_style_add_data( 'jetpack-dashboard-widget', 'rtl', 'replace' );
-
- // If we're inactive and not in development mode, sort our box to the top.
- if ( ! self::is_active() && ! ( new Status() )->is_development_mode() ) {
- global $wp_meta_boxes;
-
- $dashboard = $wp_meta_boxes['dashboard']['normal']['core'];
- $ours = array( 'jetpack_summary_widget' => $dashboard['jetpack_summary_widget'] );
+ public static function build_raw_urls( $url ) {
+ _deprecated_function( __METHOD__, 'jetpack-9.2.0', 'Automattic\Jetpack\Status::get_site_suffix' );
- $wp_meta_boxes['dashboard']['normal']['core'] = array_merge( $ours, $dashboard );
- }
- }
+ return ( new Status() )->get_site_suffix( $url );
}
/**
- * @param mixed $result Value for the user's option
+ * Get the user's meta box order.
+ *
+ * @param array $sorted Value for the user's option.
* @return mixed
*/
function get_user_option_meta_box_order_dashboard( $sorted ) {
@@ -6750,7 +6832,7 @@ endif;
$key = array_search( 'dashboard_stats', $ids_array );
if ( false !== $key ) {
- // If we've found that exact value in the option (and not `google_dashboard_stats` for example)
+ // If we've found that exact value in the option (and not `google_dashboard_stats` for example).
$ids_array[ $key ] = 'jetpack_summary_widget';
$sorted[ $box_context ] = implode( ',', $ids_array );
// We've found it, stop searching, and just return.
@@ -6761,91 +6843,29 @@ endif;
return $sorted;
}
- public static function dashboard_widget() {
- /**
- * Fires when the dashboard is loaded.
- *
- * @since 3.4.0
- */
- do_action( 'jetpack_dashboard_widget' );
- }
-
- public static function dashboard_widget_footer() {
- ?>
- <footer>
-
- <div class="protect">
- <?php if ( self::is_module_active( 'protect' ) ) : ?>
- <h3><?php echo number_format_i18n( get_site_option( 'jetpack_protect_blocked_attempts', 0 ) ); ?></h3>
- <p><?php echo esc_html_x( 'Blocked malicious login attempts', '{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
- <?php elseif ( current_user_can( 'jetpack_activate_modules' ) && ! ( new Status() )->is_development_mode() ) : ?>
- <a href="
- <?php
- echo esc_url(
- wp_nonce_url(
- self::admin_url(
- array(
- 'action' => 'activate',
- 'module' => 'protect',
- )
- ),
- 'jetpack_activate-protect'
- )
- );
- ?>
- " class="button button-jetpack" title="<?php esc_attr_e( 'Protect helps to keep you secure from brute-force login attacks.', 'jetpack' ); ?>">
- <?php esc_html_e( 'Activate Protect', 'jetpack' ); ?>
- </a>
- <?php else : ?>
- <?php esc_html_e( 'Protect is inactive.', 'jetpack' ); ?>
- <?php endif; ?>
- </div>
-
- <div class="akismet">
- <?php if ( is_plugin_active( 'akismet/akismet.php' ) ) : ?>
- <h3><?php echo number_format_i18n( get_option( 'akismet_spam_count', 0 ) ); ?></h3>
- <p><?php echo esc_html_x( 'Spam comments blocked by Akismet.', '{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.', 'jetpack' ); ?></p>
- <?php elseif ( current_user_can( 'activate_plugins' ) && ! is_wp_error( validate_plugin( 'akismet/akismet.php' ) ) ) : ?>
- <a href="
- <?php
- echo esc_url(
- wp_nonce_url(
- add_query_arg(
- array(
- 'action' => 'activate',
- 'plugin' => 'akismet/akismet.php',
- ),
- admin_url( 'plugins.php' )
- ),
- 'activate-plugin_akismet/akismet.php'
- )
- );
- ?>
- " class="button button-jetpack">
- <?php esc_html_e( 'Activate Akismet', 'jetpack' ); ?>
- </a>
- <?php else : ?>
- <p><a href="<?php echo esc_url( 'https://akismet.com/?utm_source=jetpack&utm_medium=link&utm_campaign=Jetpack%20Dashboard%20Widget%20Footer%20Link' ); ?>"><?php esc_html_e( 'Akismet can help to keep your blog safe from spam!', 'jetpack' ); ?></a></p>
- <?php endif; ?>
- </div>
-
- </footer>
- <?php
- }
-
- /*
+ /**
* Adds a "blank" column in the user admin table to display indication of user connection.
+ *
+ * @param array $columns User list table columns.
+ *
+ * @return array
*/
function jetpack_icon_user_connected( $columns ) {
$columns['user_jetpack'] = '';
return $columns;
}
- /*
+ /**
* Show Jetpack icon if the user is linked.
+ *
+ * @param string $val HTML for the icon.
+ * @param string $col User list table column.
+ * @param int $user_id User ID.
+ *
+ * @return string
*/
function jetpack_show_user_connected_icon( $val, $col, $user_id ) {
- if ( 'user_jetpack' == $col && self::is_user_connected( $user_id ) ) {
+ if ( 'user_jetpack' === $col && self::connection()->is_user_connected( $user_id ) ) {
$jetpack_logo = new Jetpack_Logo();
$emblem_html = sprintf(
'<a title="%1$s" class="jp-emblem-user-admin">%2$s</a>',
@@ -6858,7 +6878,7 @@ endif;
return $val;
}
- /*
+ /**
* Style the Jetpack user column
*/
function jetpack_user_col_style() {
@@ -6874,7 +6894,7 @@ endif;
height: 20px;
}
.jp-emblem-user-admin path {
- fill: #00BE28;
+ fill: #069e08;
}
</style>
<?php
@@ -6929,15 +6949,6 @@ endif;
}
/**
- * @deprecated
- *
- * @see Automattic\Jetpack\Sync\Modules\Users::is_function_in_backtrace
- */
- public static function is_function_in_backtrace() {
- _deprecated_function( __METHOD__, 'jetpack-7.6.0' );
- }
-
- /**
* Given a minified path, and a non-minified path, will return
* a minified or non-minified file URL based on whether SCRIPT_DEBUG is set and truthy.
*
@@ -6946,8 +6957,8 @@ endif;
*
* @since 5.6.0
*
- * @param string $min_path
- * @param string $non_min_path
+ * @param string $min_path Minimized path.
+ * @param string $non_min_path Non-minimized path.
* @return string The URL to the file
*/
public static function get_file_url_for_environment( $min_path, $non_min_path ) {
@@ -6955,13 +6966,14 @@ endif;
}
/**
- * Checks for whether Jetpack Backup & Scan is enabled.
- * Will return true if the state of Backup & Scan is anything except "unavailable".
+ * Checks for whether Jetpack Backup is enabled.
+ * Will return true if the state of Backup is anything except "unavailable".
*
* @return bool|int|mixed
*/
public static function is_rewind_enabled() {
- if ( ! self::is_active() ) {
+ // Rewind is a paid feature, therefore requires a user-level connection.
+ if ( ! static::connection()->has_connected_owner() ) {
return false;
}
@@ -7005,15 +7017,25 @@ endif;
}
/**
- * Checks whether or not TOS has been agreed upon.
- * Will return true if a user has clicked to register, or is already connected.
+ * Returns the hostname with protocol for Calypso.
+ * Used for developing Jetpack with Calypso.
+ *
+ * @since 8.4.0
+ *
+ * @return string Calypso host.
*/
- public static function jetpack_tos_agreed() {
- _deprecated_function( 'Jetpack::jetpack_tos_agreed', 'Jetpack 7.9.0', '\Automattic\Jetpack\Terms_Of_Service->has_agreed' );
-
- $terms_of_service = new Terms_Of_Service();
- return $terms_of_service->has_agreed();
-
+ public static function get_calypso_host() {
+ $calypso_env = self::get_calypso_env();
+ switch ( $calypso_env ) {
+ case 'development':
+ return 'http://calypso.localhost:3000/';
+ case 'wpcalypso':
+ return 'https://wpcalypso.wordpress.com/';
+ case 'horizon':
+ return 'https://horizon.wordpress.com/';
+ default:
+ return 'https://wordpress.com/';
+ }
}
/**
@@ -7033,21 +7055,20 @@ endif;
? array( 'sso' )
: array();
- if ( $active_modules = Jetpack_Options::get_option( 'active_modules' ) ) {
+ if ( Jetpack_Options::get_option( 'active_modules_initialized' ) ) {
+ $active_modules = Jetpack_Options::get_option( 'active_modules' );
self::delete_active_modules();
self::activate_default_modules( 999, 1, array_merge( $active_modules, $other_modules ), $redirect_on_activation_error, $send_state_messages );
} else {
- self::activate_default_modules( false, false, $other_modules, $redirect_on_activation_error, $send_state_messages );
+ // Default modules that don't require a user were already activated on site_register.
+ // This time let's activate only those that require a user, this assures we don't reactivate manually deactivated modules while the site was connected only at a site level.
+ self::activate_default_modules( false, false, $other_modules, $redirect_on_activation_error, $send_state_messages, null, true );
+ Jetpack_Options::update_option( 'active_modules_initialized', true );
}
- // Since this is a fresh connection, be sure to clear out IDC options
- Jetpack_IDC::clear_all_idc_options();
- Jetpack_Options::delete_raw_option( 'jetpack_last_connect_url_check' );
-
- // Start nonce cleaner
- wp_clear_scheduled_hook( 'jetpack_clean_nonces' );
- wp_schedule_event( time(), 'hourly', 'jetpack_clean_nonces' );
+ // Since this is a fresh connection, be sure to clear out IDC options.
+ Identity_Crisis::clear_all_idc_options();
if ( $send_state_messages ) {
self::state( 'message', 'authorized' );
@@ -7070,31 +7091,6 @@ endif;
return self::is_plugin_active( 'vaultpress/vaultpress.php' ) || apply_filters( 'jetpack_show_backups', true );
}
- /*
- * Deprecated manage functions
- */
- function prepare_manage_jetpack_notice() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function manage_activate_screen() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function admin_jetpack_manage_notice() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function opt_out_jetpack_manage_url() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function opt_in_jetpack_manage_url() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function opt_in_jetpack_manage_notice() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
- function can_display_jetpack_manage_notice() {
- _deprecated_function( __METHOD__, 'jetpack-7.3' );
- }
-
/**
* Clean leftoveruser meta.
*
@@ -7106,7 +7102,7 @@ endif;
*/
public static function user_meta_cleanup( $user_id ) {
$meta_keys = array(
- // AtD removed from Jetpack 7.3
+ // AtD removed from Jetpack 7.3.
'AtD_options',
'AtD_check_when',
'AtD_guess_lang',
@@ -7121,16 +7117,174 @@ endif;
}
/**
- * Checks if a Jetpack site is both active and not in development.
+ * Checks if a Jetpack site is both active and not in offline mode.
+ *
+ * This is a DRY function to avoid repeating `Jetpack::is_connection_ready && ! Automattic\Jetpack\Status->is_offline_mode`.
+ *
+ * @since 8.8.0
+ *
+ * @return bool True if Jetpack is active and not in offline mode.
+ */
+ public static function is_active_and_not_offline_mode() {
+ if ( ! self::is_connection_ready() || ( new Status() )->is_offline_mode() ) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Returns the list of products that we have available for purchase.
+ *
+ * This method will not take current purchases or upgrades into account
+ * but is instead a static list of products Jetpack offers with some
+ * corresponding sales text/materials.
+ *
+ * @param bool $show_legacy Determine if we should include legacy product/plan details.
+ * @return array
+ */
+ public static function get_products_for_purchase( $show_legacy = false ) {
+ $products = array();
+
+ $products['backup'] = array(
+ 'title' => __( 'Jetpack Backup', 'jetpack' ),
+ 'slug' => 'jetpack_backup_t1_yearly',
+ 'description' => __( 'Never lose a word, image, page, or time worrying about your site with automated backups & one-click restores.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array( 'security' ),
+ 'features' => array(
+ _x( 'Real-time cloud backups', 'Backup Product Feature', 'jetpack' ),
+ _x( '10GB of backup storage', 'Backup Product Feature', 'jetpack' ),
+ _x( '30-day archive & activity log', 'Backup Product Feature', 'jetpack' ),
+ _x( 'One-click restores', 'Backup Product Feature', 'jetpack' ),
+ ),
+ );
+
+ $products['scan'] = array(
+ 'title' => __( 'Jetpack Scan', 'jetpack' ),
+ 'slug' => 'jetpack_scan',
+ 'description' => __( 'Automatic scanning and one-click fixes keep your site one step ahead of security threats and malware.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array( 'security' ),
+ 'features' => array(
+ _x( 'Automated daily scanning', 'Scan Product Feature', 'jetpack' ),
+ _x( 'One-click fixes for most issues', 'Scan Product Feature', 'jetpack' ),
+ _x( 'Instant email notifications', 'Scan Product Feature', 'jetpack' ),
+ ),
+ );
+
+ $products['search'] = array(
+ 'title' => __( 'Jetpack Site Search', 'jetpack' ),
+ 'slug' => 'jetpack_search',
+ 'description' => __( 'Help your site visitors find answers instantly so they keep reading and buying. Great for sites with a lot of content.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array(),
+ 'features' => array(
+ _x( 'Instant search and indexing', 'Search Product Feature', 'jetpack' ),
+ _x( 'Powerful filtering', 'Search Product Feature', 'jetpack' ),
+ _x( 'Supports 29 languages', 'Search Product Feature', 'jetpack' ),
+ _x( 'Spelling correction', 'Search Product Feature', 'jetpack' ),
+ ),
+ );
+
+ $products['akismet'] = array(
+ 'title' => __( 'Jetpack Anti-Spam', 'jetpack' ),
+ 'slug' => 'jetpack_anti_spam',
+ 'description' => __( 'Save time and get better responses by automatically blocking spam from your comments and forms.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array( 'security' ),
+ 'features' => array(
+ _x( 'Comment and form spam protection', 'Anti-Spam Product Feature', 'jetpack' ),
+ _x( 'Powered by Akismet', 'Anti-Spam Product Feature', 'jetpack' ),
+ _x( 'Block spam without CAPTCHAs', 'Anti-Spam Product Feature', 'jetpack' ),
+ _x( 'Advanced stats', 'Anti-Spam Product Feature', 'jetpack' ),
+ ),
+ );
+
+ $products['security'] = array(
+ 'title' => __( 'Security', 'jetpack' ),
+ 'slug' => 'jetpack_security_t1_yearly',
+ 'description' => __( 'Comprehensive site security, including Backup, Scan, and Anti-spam.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array(),
+ 'features' => array(
+ _x( 'Real-time cloud backups with 10GB storage', 'Security Tier 1 Feature', 'jetpack' ),
+ _x( 'Automated real-time malware scan', 'Security Daily Plan Feature', 'jetpack' ),
+ _x( 'One-click fixes for most threats', 'Security Daily Plan Feature', 'jetpack' ),
+ _x( 'Comment & form spam protection', 'Security Daily Plan Feature', 'jetpack' ),
+ ),
+ );
+
+ $products['videopress'] = array(
+ 'title' => __( 'Jetpack VideoPress', 'jetpack' ),
+ 'slug' => 'jetpack_videopress',
+ 'description' => __( 'High-quality, ad-free video built specifically for WordPress.', 'jetpack' ),
+ 'show_promotion' => true,
+ 'discount_percent' => 50,
+ 'included_in_plans' => array(),
+ 'features' => array(
+ _x( '1TB of storage', 'VideoPress Product Feature', 'jetpack' ),
+ _x( 'Built into WordPress editor', 'VideoPress Product Feature', 'jetpack' ),
+ _x( 'Ad-free and brandable player', 'VideoPress Product Feature', 'jetpack' ),
+ _x( 'Unlimited users', 'VideoPress Product Feature', 'jetpack' ),
+ ),
+ );
+
+ if ( $show_legacy ) {
+ $products['jetpack_backup_daily'] = array(
+ 'title' => __( 'Jetpack Backup', 'jetpack' ),
+ 'slug' => 'jetpack_backup_daily',
+ 'description' => __( 'Never lose a word, image, page, or time worrying about your site with automated backups & one-click restores.', 'jetpack' ),
+ 'show_promotion' => false,
+ 'discount_percent' => 0,
+ 'included_in_plans' => array(),
+ 'features' => array(
+ _x( 'Automated daily backups (off-site)', 'Backup Product Feature', 'jetpack' ),
+ _x( 'One-click restores', 'Backup Product Feature', 'jetpack' ),
+ _x( 'Unlimited backup storage', 'Backup Product Feature', 'jetpack' ),
+ ),
+ );
+ }
+
+ return $products;
+ }
+
+ /**
+ * Register product descriptions for partner coupon usage.
+ *
+ * @since $$next_version$$
*
- * This is a DRY function to avoid repeating `Jetpack::is_active && ! Automattic\Jetpack\Status->is_development_mode`.
+ * @param array $products An array of registered products.
+ *
+ * @return array
+ */
+ public function get_partner_coupon_product_descriptions( $products ) {
+ return array_merge( $products, self::get_products_for_purchase( true ) );
+ }
+
+ /**
+ * Determine if the current user is allowed to make Jetpack purchases without
+ * a WordPress.com account
*
- * @return bool True if Jetpack is active and not in development.
+ * @return boolean True if the user can make purchases, false if not
*/
- public static function is_active_and_not_development_mode() {
- if ( ! self::is_active() || ( new Status() )->is_development_mode() ) {
+ public static function current_user_can_purchase() {
+
+ // The site must be site-connected to Jetpack (no users connected).
+ if ( ! self::connection()->is_site_connection() ) {
return false;
}
+
+ // Make sure only administrators can make purchases.
+ if ( ! current_user_can( 'manage_options' ) ) {
+ return false;
+ }
+
return true;
}
+
}
diff --git a/plugins/jetpack/class.json-api-endpoints.php b/plugins/jetpack/class.json-api-endpoints.php
index ca8b4608..22aeb295 100644
--- a/plugins/jetpack/class.json-api-endpoints.php
+++ b/plugins/jetpack/class.json-api-endpoints.php
@@ -132,37 +132,45 @@ abstract class WPCOM_JSON_API_Endpoint {
*/
public $require_rewind_auth = false;
+ /**
+ * Whether this endpoint allows falling back to a blog token for making requests to remote Jetpack sites.
+ *
+ * @var bool
+ */
+ public $allow_fallback_to_jetpack_blog_token = false;
+
function __construct( $args ) {
$defaults = array(
- 'in_testing' => false,
- 'allowed_if_flagged' => false,
- 'allowed_if_red_flagged' => false,
- 'allowed_if_deleted' => false,
- 'description' => '',
- 'group' => '',
- 'method' => 'GET',
- 'path' => '/',
- 'min_version' => '0',
- 'max_version' => WPCOM_JSON_API__CURRENT_VERSION,
- 'force' => '',
- 'deprecated' => false,
- 'new_version' => WPCOM_JSON_API__CURRENT_VERSION,
- 'jp_disabled' => false,
- 'path_labels' => array(),
- 'request_format' => array(),
- 'response_format' => array(),
- 'query_parameters' => array(),
- 'version' => 'v1',
- 'example_request' => '',
- 'example_request_data' => '',
- 'example_response' => '',
- 'required_scope' => '',
- 'pass_wpcom_user_details' => false,
- 'custom_fields_filtering' => false,
- 'allow_cross_origin_request' => false,
- 'allow_unauthorized_request' => false,
- 'allow_jetpack_site_auth' => false,
- 'allow_upload_token_auth' => false,
+ 'in_testing' => false,
+ 'allowed_if_flagged' => false,
+ 'allowed_if_red_flagged' => false,
+ 'allowed_if_deleted' => false,
+ 'description' => '',
+ 'group' => '',
+ 'method' => 'GET',
+ 'path' => '/',
+ 'min_version' => '0',
+ 'max_version' => WPCOM_JSON_API__CURRENT_VERSION,
+ 'force' => '',
+ 'deprecated' => false,
+ 'new_version' => WPCOM_JSON_API__CURRENT_VERSION,
+ 'jp_disabled' => false,
+ 'path_labels' => array(),
+ 'request_format' => array(),
+ 'response_format' => array(),
+ 'query_parameters' => array(),
+ 'version' => 'v1',
+ 'example_request' => '',
+ 'example_request_data' => '',
+ 'example_response' => '',
+ 'required_scope' => '',
+ 'pass_wpcom_user_details' => false,
+ 'custom_fields_filtering' => false,
+ 'allow_cross_origin_request' => false,
+ 'allow_unauthorized_request' => false,
+ 'allow_jetpack_site_auth' => false,
+ 'allow_upload_token_auth' => false,
+ 'allow_fallback_to_jetpack_blog_token' => false,
);
$args = wp_parse_args( $args, $defaults );
@@ -195,11 +203,12 @@ abstract class WPCOM_JSON_API_Endpoint {
$this->pass_wpcom_user_details = $args['pass_wpcom_user_details'];
$this->custom_fields_filtering = (bool) $args['custom_fields_filtering'];
- $this->allow_cross_origin_request = (bool) $args['allow_cross_origin_request'];
- $this->allow_unauthorized_request = (bool) $args['allow_unauthorized_request'];
- $this->allow_jetpack_site_auth = (bool) $args['allow_jetpack_site_auth'];
- $this->allow_upload_token_auth = (bool) $args['allow_upload_token_auth'];
- $this->require_rewind_auth = isset( $args['require_rewind_auth'] ) ? (bool) $args['require_rewind_auth'] : false;
+ $this->allow_cross_origin_request = (bool) $args['allow_cross_origin_request'];
+ $this->allow_unauthorized_request = (bool) $args['allow_unauthorized_request'];
+ $this->allow_jetpack_site_auth = (bool) $args['allow_jetpack_site_auth'];
+ $this->allow_upload_token_auth = (bool) $args['allow_upload_token_auth'];
+ $this->allow_fallback_to_jetpack_blog_token = (bool) $args['allow_fallback_to_jetpack_blog_token'];
+ $this->require_rewind_auth = isset( $args['require_rewind_auth'] ) ? (bool) $args['require_rewind_auth'] : false;
$this->version = $args['version'];
@@ -249,8 +258,8 @@ abstract class WPCOM_JSON_API_Endpoint {
// Get POST body data
function input( $return_default_values = true, $cast_and_filter = true ) {
- $input = trim( $this->api->post_body );
- $content_type = $this->api->content_type;
+ $input = trim( (string) $this->api->post_body );
+ $content_type = (string) $this->api->content_type;
if ( $content_type ) {
list ( $content_type ) = explode( ';', $content_type );
}
@@ -758,6 +767,17 @@ abstract class WPCOM_JSON_API_Endpoint {
$return[ $key ] = (array) $this->cast_and_filter( $value, $docs, false, $for_output );
break;
+ case 'visibility':
+ // This is needed to fix a bug in WPAndroid where `public: "PUBLIC"` is sent in place of `public: 1`
+ if ( 'public' === strtolower( $value ) ) {
+ $return[ $key ] = 1;
+ } else if ( 'private' === strtolower( $value ) ) {
+ $return[ $key ] = -1;
+ } else {
+ $return[ $key ] = (int) $value;
+ }
+ break;
+
default:
$method_name = $type['type'] . '_docs';
if ( method_exists( 'WPCOM_JSON_API_Jetpack_Overrides', $method_name ) ) {
@@ -834,7 +854,7 @@ abstract class WPCOM_JSON_API_Endpoint {
<?php endif; ?>
<?php if ( true === $this->deprecated ) { ?>
-<p><strong>This endpoint is deprecated in favor of version <?php echo floatval( $this->new_version ); ?></strong></p>
+<p><strong>This endpoint is deprecated in favor of version <?php echo (float) $this->new_version; ?></strong></p>
<?php } ?>
<section class="resource-info">
@@ -863,7 +883,7 @@ abstract class WPCOM_JSON_API_Endpoint {
$version = $this->max_version;
}
?>
- <td class="type api-index-item-title">https://public-api.wordpress.com/rest/v<?php echo floatval( $version ); ?><?php echo wp_kses_post( $doc['path_labeled'] ); ?></td>
+ <td class="type api-index-item-title">https://public-api.wordpress.com/rest/v<?php echo (float) $version; ?><?php echo wp_kses_post( $doc['path_labeled'] ); ?></td>
</tr>
<tr class="api-index-item">
@@ -1150,7 +1170,7 @@ abstract class WPCOM_JSON_API_Endpoint {
$ip_address = isset( $author->comment_author_IP ) ? $author->comment_author_IP : '';
if ( isset( $author->comment_author_email ) ) {
- $ID = 0;
+ $id = ( isset( $author->user_id ) && $author->user_id ) ? $author->user_id : 0;
$login = '';
$email = $author->comment_author_email;
$name = $author->comment_author;
@@ -1190,7 +1210,7 @@ abstract class WPCOM_JSON_API_Endpoint {
$is_jetpack = true === apply_filters( 'is_jetpack_site', false, get_current_blog_id() );
$post_id = $author->ID;
if ( $is_jetpack && ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) {
- $ID = get_post_meta( $post_id, '_jetpack_post_author_external_id', true );
+ $id = get_post_meta( $post_id, '_jetpack_post_author_external_id', true );
$email = get_post_meta( $post_id, '_jetpack_author_email', true );
$login = '';
$name = get_post_meta( $post_id, '_jetpack_author', true );
@@ -1203,14 +1223,14 @@ abstract class WPCOM_JSON_API_Endpoint {
}
}
- if ( ! isset( $ID ) ) {
+ if ( ! isset( $id ) ) {
$user = get_user_by( 'id', $author );
if ( ! $user || is_wp_error( $user ) ) {
trigger_error( 'Unknown user', E_USER_WARNING );
return null;
}
- $ID = $user->ID;
+ $id = $user->ID;
$email = $user->user_email;
$login = $user->user_login;
$name = $user->display_name;
@@ -1220,7 +1240,7 @@ abstract class WPCOM_JSON_API_Endpoint {
$nice = $user->user_nicename;
}
if ( defined( 'IS_WPCOM' ) && IS_WPCOM && ! $is_jetpack ) {
- $active_blog = get_active_blog_for_user( $ID );
+ $active_blog = get_active_blog_for_user( $id );
$site_id = $active_blog->blog_id;
if ( $site_id > -1 ) {
$site_visible = (
@@ -1246,7 +1266,7 @@ abstract class WPCOM_JSON_API_Endpoint {
}
$author = array(
- 'ID' => (int) $ID,
+ 'ID' => (int) $id,
'login' => (string) $login,
'email' => $email, // (string|bool)
'name' => (string) $name,
@@ -1275,7 +1295,7 @@ abstract class WPCOM_JSON_API_Endpoint {
}
$response = array(
- 'id' => strval( $media_item->ID ),
+ 'id' => (string) $media_item->ID,
'date' => (string) $this->format_date( $media_item->post_date_gmt, $media_item->post_date ),
'parent' => $media_item->post_parent,
'link' => wp_get_attachment_url( $media_item->ID ),
@@ -1318,6 +1338,16 @@ abstract class WPCOM_JSON_API_Endpoint {
$file_info = pathinfo( $file );
$ext = isset( $file_info['extension'] ) ? $file_info['extension'] : null;
+ // File operations are handled differently on WordPress.com.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $attachment_metadata = wp_get_attachment_metadata( $media_item->ID );
+ $filesize = ! empty( $attachment_metadata['filesize'] )
+ ? $attachment_metadata['filesize']
+ : 0;
+ } else {
+ $filesize = filesize( $attachment_file );
+ }
+
$response = array(
'ID' => $media_item->ID,
'URL' => wp_get_attachment_url( $media_item->ID ),
@@ -1333,10 +1363,11 @@ abstract class WPCOM_JSON_API_Endpoint {
'description' => $media_item->post_content,
'alt' => get_post_meta( $media_item->ID, '_wp_attachment_image_alt', true ),
'icon' => wp_mime_type_icon( $media_item->ID ),
+ 'size' => size_format( (int) $filesize, 2 ),
'thumbnails' => array(),
);
- if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
+ if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif', 'webp' ), true ) ) {
$metadata = wp_get_attachment_metadata( $media_item->ID );
if ( isset( $metadata['height'], $metadata['width'] ) ) {
$response['height'] = $metadata['height'];
@@ -1415,6 +1446,25 @@ abstract class WPCOM_JSON_API_Endpoint {
$info = (object) $metadata['videopress'];
}
+ if ( isset( $info->rating ) ) {
+ $response['rating'] = $info->rating;
+ }
+
+ if ( isset( $info->display_embed ) ) {
+ $response['display_embed'] = (string) (int) $info->display_embed;
+ // If not, default to metadata (for WPCOM).
+ } elseif ( isset( $metadata['videopress']['display_embed'] ) ) {
+ // We convert it to int then to string so that (bool) false to become "0".
+ $response['display_embed'] = (string) (int) $metadata['videopress']['display_embed'];
+ }
+
+ if ( isset( $info->allow_download ) ) {
+ $response['allow_download'] = (string) (int) $info->allow_download;
+ } elseif ( isset( $metadata['videopress']['allow_download'] ) ) {
+ // We convert it to int then to string so that (bool) false to become "0".
+ $response['allow_download'] = (string) (int) $metadata['videopress']['allow_download'];
+ }
+
// Thumbnails
if ( function_exists( 'video_format_done' ) && function_exists( 'video_image_url_by_guid' ) ) {
$response['thumbnails'] = array(
@@ -1576,6 +1626,10 @@ abstract class WPCOM_JSON_API_Endpoint {
// Load the functions.php file for the current theme to get its post formats, CPTs, etc.
function load_theme_functions() {
+ if ( false === defined( 'STYLESHEETPATH' ) ) {
+ wp_templating_constants();
+ }
+
// bail if we've done this already (can happen when calling /batch endpoint)
if ( defined( 'REST_API_THEME_FUNCTIONS_LOADED' ) ) {
return;
@@ -1583,7 +1637,7 @@ abstract class WPCOM_JSON_API_Endpoint {
// VIP context loading is handled elsewhere, so bail to prevent
// duplicate loading. See `switch_to_blog_and_validate_user()`
- if ( function_exists( 'wpcom_is_vip' ) && wpcom_is_vip() ) {
+ if ( defined( 'WPCOM_IS_VIP_ENV' ) && WPCOM_IS_VIP_ENV ) {
return;
}
@@ -2052,6 +2106,19 @@ abstract class WPCOM_JSON_API_Endpoint {
return 'GET' == $this->method || ( $this->allow_unauthorized_request && in_array( $origin, $complete_access_origins ) );
}
+ /**
+ * Whether this endpoint accepts site based authentication for the current request.
+ *
+ * @since 9.1.0
+ *
+ * @return bool true, if Jetpack blog token is used and `allow_jetpack_site_auth` is true,
+ * false otherwise.
+ */
+ public function accepts_site_based_authentication() {
+ return $this->allow_jetpack_site_auth &&
+ $this->api->is_jetpack_authorized_for_site();
+ }
+
function get_platform() {
return wpcom_get_sal_platform( $this->api->token_details );
}
@@ -2070,16 +2137,50 @@ abstract class WPCOM_JSON_API_Endpoint {
}
/**
+ * Get an array of all valid AMP origins for a blog's siteurl.
+ *
+ * @param string $siteurl Origin url of the API request.
+ * @return array
+ */
+ public function get_amp_cache_origins( $siteurl ) {
+ $host = parse_url( $siteurl, PHP_URL_HOST );
+
+ /*
+ * From AMP docs:
+ * "When possible, the Google AMP Cache will create a subdomain for each AMP document's domain by first converting it
+ * from IDN (punycode) to UTF-8. The caches replaces every - (dash) with -- (2 dashes) and replace every . (dot) with
+ * - (dash). For example, pub.com will map to pub-com.cdn.ampproject.org."
+ */
+ if ( function_exists( 'idn_to_utf8' ) ) {
+ // The third parameter is set explicitly to prevent issues with newer PHP versions compiled with an old ICU version.
+ // phpcs:ignore PHPCompatibility.Constants.RemovedConstants.intl_idna_variant_2003Deprecated, PHPCompatibility.Constants.RemovedConstants.intl_idna_variant_2003DeprecatedRemoved
+ $host = idn_to_utf8( $host, IDNA_DEFAULT, defined( 'INTL_IDNA_VARIANT_UTS46' ) ? INTL_IDNA_VARIANT_UTS46 : INTL_IDNA_VARIANT_2003 );
+ }
+ $subdomain = str_replace( array( '-', '.' ), array( '--', '-' ), $host );
+ return array(
+ $siteurl,
+ // Google AMP Cache (legacy).
+ 'https://cdn.ampproject.org',
+ // Google AMP Cache subdomain.
+ sprintf( 'https://%s.cdn.ampproject.org', $subdomain ),
+ // Cloudflare AMP Cache.
+ sprintf( 'https://%s.amp.cloudflare.com', $subdomain ),
+ // Bing AMP Cache.
+ sprintf( 'https://%s.bing-amp.com', $subdomain ),
+ );
+ }
+
+ /**
* Return endpoint response
*
- * @param ... determined by ->$path
+ * @param string $path ... determined by ->$path.
*
- * @return
+ * @return array|WP_Error
* falsy: HTTP 500, no response body
* WP_Error( $error_code, $error_message, $http_status_code ): HTTP $status_code, json_encode( array( 'error' => $error_code, 'message' => $error_message ) ) response body
* $data: HTTP 200, json_encode( $data ) response body
*/
- abstract function callback( $path = '' );
+ abstract public function callback( $path = '' );
}
diff --git a/plugins/jetpack/class.json-api.php b/plugins/jetpack/class.json-api.php
index 5ce15c50..7611b725 100644
--- a/plugins/jetpack/class.json-api.php
+++ b/plugins/jetpack/class.json-api.php
@@ -32,12 +32,14 @@ class WPCOM_JSON_API {
public $extra_headers = array();
+ public $amp_source_origin = null;
+
/**
* @return WPCOM_JSON_API instance
*/
static function init( $method = null, $url = null, $post_body = null ) {
if ( ! self::$self ) {
- $class = function_exists( 'get_called_class' ) ? get_called_class() : __CLASS__; // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.get_called_classFound
+ $class = function_exists( 'get_called_class' ) ? get_called_class() : __CLASS__; // phpcs:ignore PHPCompatibility.PHP.NewFunctions.get_called_classFound
self::$self = new $class( $method, $url, $post_body );
}
return self::$self;
@@ -143,6 +145,40 @@ class WPCOM_JSON_API {
$this->token_details['blog_id'] = Jetpack_Options::get_option( 'id' );
}
+ /**
+ * Checks if the current request is authorized with a blog token.
+ * This method is overridden by a child class in WPCOM.
+ *
+ * @since 9.1.0
+ *
+ * @param boolean|int $site_id The site id.
+ * @return boolean
+ */
+ public function is_jetpack_authorized_for_site( $site_id = false ) {
+ if ( ! $this->token_details ) {
+ return false;
+ }
+
+ $token_details = (object) $this->token_details;
+
+ $site_in_token = (int) $token_details->blog_id;
+
+ if ( $site_in_token < 1 ) {
+ return false;
+ }
+
+ if ( $site_id && $site_in_token !== (int) $site_id ) {
+ return false;
+ }
+
+ if ( (int) get_current_user_id() !== 0 ) {
+ // If Jetpack blog token is used, no logged-in user should exist.
+ return false;
+ }
+
+ return true;
+ }
+
function serve( $exit = true ) {
ini_set( 'display_errors', false );
@@ -379,13 +415,21 @@ class WPCOM_JSON_API {
header( 'Access-Control-Allow-Origin: *' );
}
+ /* Add headers for form submission from <amp-form/> */
+ if ( $this->amp_source_origin ) {
+ header( 'Access-Control-Allow-Origin: ' . wp_unslash( $this->amp_source_origin ) );
+ header( 'Access-Control-Allow-Credentials: true' );
+ }
+
+
if ( is_null( $response ) ) {
$response = new stdClass();
}
- if ( 'text/plain' === $content_type ) {
+ if ( 'text/plain' === $content_type ||
+ 'text/html' === $content_type ) {
status_header( (int) $status_code );
- header( 'Content-Type: text/plain' );
+ header( 'Content-Type: ' . $content_type );
foreach ( $extra as $key => $value ) {
header( "$key: $value" );
}
@@ -580,8 +624,15 @@ class WPCOM_JSON_API {
if ( $this->is_restricted_blog( $blog_id ) ) {
return new WP_Error( 'unauthorized', 'User cannot access this restricted blog', 403 );
}
-
- if ( -1 == get_option( 'blog_public' ) && ! current_user_can( 'read' ) ) {
+ /**
+ * If this is a private site we check for 2 things:
+ * 1. In case of user based authentication, we need to check if the logged-in user has the 'read' capability.
+ * 2. In case of site based authentication, make sure the endpoint accepts it.
+ */
+ if ( -1 === (int) get_option( 'blog_public' ) &&
+ ! current_user_can( 'read' ) &&
+ ! $this->endpoint->accepts_site_based_authentication()
+ ) {
return new WP_Error( 'unauthorized', 'User cannot access this private blog.', 403 );
}
@@ -723,10 +774,21 @@ class WPCOM_JSON_API {
* @param int $http_status HTTP status code, 400 by default.
*/
function trap_wp_die( $error_code = null, $http_status = 400 ) {
+ // Determine the filter name; based on the conditionals inside the wp_die function.
+ if ( wp_is_json_request() ) {
+ $die_handler = 'wp_die_json_handler';
+ } elseif ( wp_is_jsonp_request() ) {
+ $die_handler = 'wp_die_jsonp_handler';
+ } elseif ( wp_is_xml_request() ) {
+ $die_handler = 'wp_die_xml_handler';
+ } else {
+ $die_handler = 'wp_die_handler';
+ }
+
if ( is_null( $error_code ) ) {
$this->trapped_error = null;
// Stop trapping
- remove_filter( 'wp_die_handler', array( $this, 'wp_die_handler_callback' ) );
+ remove_filter( $die_handler, array( $this, 'wp_die_handler_callback' ) );
return;
}
@@ -747,7 +809,7 @@ class WPCOM_JSON_API {
'message' => '',
);
// Start trapping
- add_filter( 'wp_die_handler', array( $this, 'wp_die_handler_callback' ) );
+ add_filter( $die_handler, array( $this, 'wp_die_handler_callback' ) );
}
function wp_die_handler_callback() {
diff --git a/plugins/jetpack/class.photon.php b/plugins/jetpack/class.photon.php
index 9a7443c5..1d74c748 100644
--- a/plugins/jetpack/class.photon.php
+++ b/plugins/jetpack/class.photon.php
@@ -1,23 +1,43 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Class for photon functionality.
+ *
+ * @package automattic/jetpack
+ */
use Automattic\Jetpack\Assets;
+/**
+ * Class Jetpack_Photon
+ */
class Jetpack_Photon {
/**
- * Class variables
+ * Singleton.
+ *
+ * @var null
*/
- // Oh look, a singleton
- private static $__instance = null;
+ private static $instance = null;
- // Allowed extensions must match https://code.trac.wordpress.org/browser/photon/index.php#L31
+ /**
+ * Allowed extensions.
+ *
+ * @var string[] Allowed extensions must match https://code.trac.wordpress.org/browser/photon/index.php#L41
+ */
protected static $extensions = array(
'gif',
'jpg',
'jpeg',
'png',
+ 'webp', // Jetpack assumes Photon_OpenCV backend class is being used on the server. See link in docblock.
);
- // Don't access this directly. Instead, use self::image_sizes() so it's actually populated with something.
+ /**
+ * Image sizes.
+ *
+ * Don't access this directly. Instead, use self::image_sizes() so it's actually populated with something.
+ *
+ * @var array Image sizes.
+ */
protected static $image_sizes = null;
/**
@@ -26,12 +46,12 @@ class Jetpack_Photon {
* @return object
*/
public static function instance() {
- if ( ! is_a( self::$__instance, 'Jetpack_Photon' ) ) {
- self::$__instance = new Jetpack_Photon();
- self::$__instance->setup();
+ if ( ! is_a( self::$instance, 'Jetpack_Photon' ) ) {
+ self::$instance = new Jetpack_Photon();
+ self::$instance->setup();
}
- return self::$__instance;
+ return self::$instance;
}
/**
@@ -51,21 +71,22 @@ class Jetpack_Photon {
return;
}
- // Images in post content and galleries
+ // Images in post content and galleries.
add_filter( 'the_content', array( __CLASS__, 'filter_the_content' ), 999999 );
add_filter( 'get_post_galleries', array( __CLASS__, 'filter_the_galleries' ), 999999 );
add_filter( 'widget_media_image_instance', array( __CLASS__, 'filter_the_image_widget' ), 999999 );
- // Core image retrieval
+ // Core image retrieval.
add_filter( 'image_downsize', array( $this, 'filter_image_downsize' ), 10, 3 );
add_filter( 'rest_request_before_callbacks', array( $this, 'should_rest_photon_image_downsize' ), 10, 3 );
+ add_action( 'rest_after_insert_attachment', array( $this, 'should_rest_photon_image_downsize_insert_attachment' ), 10, 2 );
add_filter( 'rest_request_after_callbacks', array( $this, 'cleanup_rest_photon_image_downsize' ) );
- // Responsive image srcset substitution
+ // Responsive image srcset substitution.
add_filter( 'wp_calculate_image_srcset', array( $this, 'filter_srcset_array' ), 10, 5 );
add_filter( 'wp_calculate_image_sizes', array( $this, 'filter_sizes' ), 1, 2 ); // Early so themes can still easily filter.
- // Helpers for maniuplated images
+ // Helpers for maniuplated images.
add_action( 'wp_enqueue_scripts', array( $this, 'action_wp_enqueue_scripts' ), 9 );
/**
@@ -144,23 +165,29 @@ class Jetpack_Photon {
* Short circuits the Photon filter to enable Photon processing for any URL.
*
* @param String $photon_url a proposed Photon URL for the media file.
- * @param String $image_url the original media URL.
+ *
* @return String an URL to be used for the media file.
*/
- public static function filter_photon_norezise_domain( $photon_url, $image_url ) {
+ public static function filter_photon_norezise_domain( $photon_url ) {
return $photon_url;
}
/**
* Disables intermediate sizes to disallow resizing.
*
- * @param Array $sizes an array containing image sizes.
- * @return Boolean
+ * @return array Empty array.
*/
- public static function filter_photon_noresize_intermediate_sizes( $sizes ) {
+ public static function filter_photon_noresize_intermediate_sizes() {
return array();
}
+ /**
+ * Filter thumbnail URLS to not generate.
+ *
+ * @param array $sizes Image sizes.
+ *
+ * @return mixed
+ */
public static function filter_photon_noresize_thumbnail_urls( $sizes ) {
foreach ( $sizes as $size => $url ) {
$parts = explode( '?', $url );
@@ -215,7 +242,7 @@ class Jetpack_Photon {
/**
* Inject image sizes to Jetpack REST API responses. This wraps the filter_photon_norezise_maybe_inject_sizes function.
*
- * @param array $data Attachment sizes data.
+ * @param array $sizes Attachment sizes data.
* @param int $attachment_id Attachment's post ID.
*
* @return array Attachment sizes array.
@@ -277,9 +304,11 @@ class Jetpack_Photon {
/**
* Identify images in post content, and if images are local (uploaded to the current site), pass through Photon.
*
- * @param string $content
+ * @param string $content The content.
+ *
* @uses self::validate_image_url, apply_filters, jetpack_photon_url, esc_url
* @filter the_content
+ *
* @return string
*/
public static function filter_the_content( $content ) {
@@ -293,17 +322,18 @@ class Jetpack_Photon {
$upload_dir = wp_get_upload_dir();
foreach ( $images[0] as $index => $tag ) {
- // Default to resize, though fit may be used in certain cases where a dimension cannot be ascertained
+ // Default to resize, though fit may be used in certain cases where a dimension cannot be ascertained.
$transform = 'resize';
- // Start with a clean attachment ID each time
+ // Start with a clean attachment ID each time.
$attachment_id = false;
- // Flag if we need to munge a fullsize URL
+ // Flag if we need to munge a fullsize URL.
$fullsize_url = false;
- // Identify image source
- $src = $src_orig = $images['img_url'][ $index ];
+ // Identify image source.
+ $src_orig = $images['img_url'][ $index ];
+ $src = $src_orig;
/**
* Allow specific images to be skipped by Photon.
@@ -320,40 +350,41 @@ class Jetpack_Photon {
continue;
}
- // Support Automattic's Lazy Load plugin
- // Can't modify $tag yet as we need unadulterated version later
+ // Support Automattic's Lazy Load plugin.
+ // Can't modify $tag yet as we need unadulterated version later.
if ( preg_match( '#data-lazy-src=["|\'](.+?)["|\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) {
- $placeholder_src = $placeholder_src_orig = $src;
- $src = $src_orig = $lazy_load_src[1];
+ $placeholder_src_orig = $src;
+ $placeholder_src = $placeholder_src_orig;
+ $src_orig = $lazy_load_src[1];
+ $src = $src_orig;
} elseif ( preg_match( '#data-lazy-original=["|\'](.+?)["|\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) {
- $placeholder_src = $placeholder_src_orig = $src;
- $src = $src_orig = $lazy_load_src[1];
+ $placeholder_src_orig = $src;
+ $placeholder_src = $placeholder_src_orig;
+ $src_orig = $lazy_load_src[1];
+ $src = $src_orig;
}
- // Check if image URL should be used with Photon
+ // Check if image URL should be used with Photon.
if ( self::validate_image_url( $src ) ) {
- // Find the width and height attributes
- $width = $height = false;
+ // Find the width and height attributes.
+ $width = false;
+ $height = false;
- // First, check the image tag
+ // First, check the image tag. Note we only check for pixel sizes now; HTML4 percentages have never been correctly
+ // supported, so we stopped pretending to support them in JP 9.1.0.
if ( preg_match( '#[\s|"|\']width=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $width_string ) ) {
- $width = $width_string[1];
+ $width = false === strpos( $width_string[1], '%' ) ? $width_string[1] : false;
}
if ( preg_match( '#[\s|"|\']height=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $height_string ) ) {
- $height = $height_string[1];
+ $height = false === strpos( $height_string[1], '%' ) ? $height_string[1] : false;
}
- // Can't pass both a relative width and height, so unset the height in favor of not breaking the horizontal layout.
- if ( false !== strpos( $width, '%' ) && false !== strpos( $height, '%' ) ) {
- $width = $height = false;
- }
-
- // Detect WP registered image size from HTML class
+ // Detect WP registered image size from HTML class.
if ( preg_match( '#class=["|\']?[^"\']*size-([^"\'\s]+)[^"\']*["|\']?#i', $images['img_tag'][ $index ], $size ) ) {
$size = array_pop( $size );
- if ( false === $width && false === $height && 'full' != $size && array_key_exists( $size, $image_sizes ) ) {
+ if ( false === $width && false === $height && 'full' !== $size && array_key_exists( $size, $image_sizes ) ) {
$width = (int) $image_sizes[ $size ]['width'];
$height = (int) $image_sizes[ $size ]['height'];
$transform = $image_sizes[ $size ]['crop'] ? 'resize' : 'fit';
@@ -362,7 +393,7 @@ class Jetpack_Photon {
unset( $size );
}
- // WP Attachment ID, if uploaded to this site
+ // WP Attachment ID, if uploaded to this site.
if (
preg_match( '#class=["|\']?[^"\']*wp-image-([\d]+)[^"\']*["|\']?#i', $images['img_tag'][ $index ], $attachment_id ) &&
0 === strpos( $src, $upload_dir['baseurl'] ) &&
@@ -385,27 +416,27 @@ class Jetpack_Photon {
*/
apply_filters( 'jetpack_photon_image_is_local', false, compact( 'src', 'tag', 'images', 'index' ) )
) {
- $attachment_id = intval( array_pop( $attachment_id ) );
+ $attachment_id = (int) array_pop( $attachment_id );
if ( $attachment_id ) {
$attachment = get_post( $attachment_id );
- // Basic check on returned post object
- if ( is_object( $attachment ) && ! is_wp_error( $attachment ) && 'attachment' == $attachment->post_type ) {
+ // Basic check on returned post object.
+ if ( is_object( $attachment ) && ! is_wp_error( $attachment ) && 'attachment' === $attachment->post_type ) {
$src_per_wp = wp_get_attachment_image_src( $attachment_id, isset( $size ) ? $size : 'full' );
if ( self::validate_image_url( $src_per_wp[0] ) ) {
$src = $src_per_wp[0];
$fullsize_url = true;
- // Prevent image distortion if a detected dimension exceeds the image's natural dimensions
+ // Prevent image distortion if a detected dimension exceeds the image's natural dimensions.
if ( ( false !== $width && $width > $src_per_wp[1] ) || ( false !== $height && $height > $src_per_wp[2] ) ) {
$width = false === $width ? false : min( $width, $src_per_wp[1] );
$height = false === $height ? false : min( $height, $src_per_wp[2] );
}
- // If no width and height are found, max out at source image's natural dimensions
- // Otherwise, respect registered image sizes' cropping setting
+ // If no width and height are found, max out at source image's natural dimensions.
+ // Otherwise, respect registered image sizes' cropping setting.
if ( false === $width && false === $height ) {
$width = $src_per_wp[1];
$height = $src_per_wp[2];
@@ -430,18 +461,16 @@ class Jetpack_Photon {
$height_orig = $height;
$transform_orig = $transform;
- // If width is available, constrain to $content_width
- if ( false !== $width && false === strpos( $width, '%' ) && is_numeric( $content_width ) ) {
- if ( $width > $content_width && false !== $height && false === strpos( $height, '%' ) ) {
+ // If width is available, constrain to $content_width.
+ if ( false !== $width && is_numeric( $content_width ) && $width > $content_width ) {
+ if ( false !== $height ) {
$height = round( ( $content_width * $height ) / $width );
- $width = $content_width;
- } elseif ( $width > $content_width ) {
- $width = $content_width;
}
+ $width = $content_width;
}
- // Set a width if none is found and $content_width is available
- // If width is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing
+ // Set a width if none is found and $content_width is available.
+ // If width is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing.
if ( false === $width && is_numeric( $content_width ) ) {
$width = (int) $content_width;
@@ -455,15 +484,15 @@ class Jetpack_Photon {
$fullsize_url = true;
}
- // Build URL, first maybe removing WP's resized string so we pass the original image to Photon
+ // Build URL, first maybe removing WP's resized string so we pass the original image to Photon.
if ( ! $fullsize_url && 0 === strpos( $src, $upload_dir['baseurl'] ) ) {
$src = self::strip_image_dimensions_maybe( $src );
}
- // Build array of Photon args and expose to filter before passing to Photon URL function
+ // Build array of Photon args and expose to filter before passing to Photon URL function.
$args = array();
- if ( false !== $width && false !== $height && false === strpos( $width, '%' ) && false === strpos( $height, '%' ) ) {
+ if ( false !== $width && false !== $height ) {
$args[ $transform ] = $width . ',' . $height;
} elseif ( false !== $width ) {
$args['w'] = $width;
@@ -502,23 +531,23 @@ class Jetpack_Photon {
// Modify image tag if Photon function provides a URL
// Ensure changes are only applied to the current image by copying and modifying the matched tag, then replacing the entire tag with our modified version.
- if ( $src != $photon_url ) {
+ if ( $src !== $photon_url ) {
$new_tag = $tag;
// If present, replace the link href with a Photoned URL for the full-size image.
if ( ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) {
- $new_tag = preg_replace( '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $new_tag, 1 );
+ $new_tag = preg_replace( '#(href=["|\'])' . preg_quote( $images['link_url'][ $index ], '#' ) . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $new_tag, 1 );
}
- // Supplant the original source value with our Photon URL
+ // Supplant the original source value with our Photon URL.
$photon_url = esc_url( $photon_url );
$new_tag = str_replace( $src_orig, $photon_url, $new_tag );
- // If Lazy Load is in use, pass placeholder image through Photon
+ // If Lazy Load is in use, pass placeholder image through Photon.
if ( isset( $placeholder_src ) && self::validate_image_url( $placeholder_src ) ) {
$placeholder_src = jetpack_photon_url( $placeholder_src );
- if ( $placeholder_src != $placeholder_src_orig ) {
+ if ( $placeholder_src !== $placeholder_src_orig ) {
$new_tag = str_replace( $placeholder_src_orig, esc_url( $placeholder_src ), $new_tag );
}
@@ -526,20 +555,21 @@ class Jetpack_Photon {
}
// If we are not transforming the image with resize, fit, or letterbox (lb), then we should remove
- // the width and height arguments from the image to prevent distortion. Even if $args['w'] and $args['h']
- // are present, Photon does not crop to those dimensions. Instead, it appears to favor height.
+ // the width and height arguments (including HTML4 percentages) from the image to prevent distortion.
+ // Even if $args['w'] and $args['h'] are present, Photon does not crop to those dimensions. Instead,
+ // it appears to favor height.
//
// If we are transforming the image via one of those methods, let's update the width and height attributes.
if ( empty( $args['resize'] ) && empty( $args['fit'] ) && empty( $args['lb'] ) ) {
$new_tag = preg_replace( '#(?<=\s)(width|height)=["|\']?[\d%]+["|\']?\s?#i', '', $new_tag );
} else {
$resize_args = isset( $args['resize'] ) ? $args['resize'] : false;
- if ( false == $resize_args ) {
+ if ( false === $resize_args ) {
$resize_args = ( ! $resize_args && isset( $args['fit'] ) )
? $args['fit']
: false;
}
- if ( false == $resize_args ) {
+ if ( false === $resize_args ) {
$resize_args = ( ! $resize_args && isset( $args['lb'] ) )
? $args['lb']
: false;
@@ -549,23 +579,23 @@ class Jetpack_Photon {
// (?<=\s) - Ensure width or height attribute is preceded by a space
// (width=["|\']?) - Matches, and captures, width=, width=", or width='
- // [\d%]+ - Matches 1 or more digits
+ // [\d%]+ - Matches 1 or more digits or percent signs
// (["|\']?) - Matches, and captures, ", ', or empty string
// \s - Ensures there's a space after the attribute
$new_tag = preg_replace( '#(?<=\s)(width=["|\']?)[\d%]+(["|\']?)\s?#i', sprintf( '${1}%d${2} ', $resize_args[0] ), $new_tag );
$new_tag = preg_replace( '#(?<=\s)(height=["|\']?)[\d%]+(["|\']?)\s?#i', sprintf( '${1}%d${2} ', $resize_args[1] ), $new_tag );
}
- // Tag an image for dimension checking
+ // Tag an image for dimension checking.
if ( ! self::is_amp_endpoint() ) {
$new_tag = preg_replace( '#(\s?/)?>(\s*</a>)?$#i', ' data-recalc-dims="1"\1>\2', $new_tag );
}
- // Replace original tag with modified version
+ // Replace original tag with modified version.
$content = str_replace( $tag, $new_tag, $content );
}
} elseif ( preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) && ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) {
- $new_tag = preg_replace( '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $tag, 1 );
+ $new_tag = preg_replace( '#(href=["|\'])' . preg_quote( $images['link_url'][ $index ], '#' ) . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $tag, 1 );
$content = str_replace( $tag, $new_tag, $content );
}
@@ -575,6 +605,13 @@ class Jetpack_Photon {
return $content;
}
+ /**
+ * Filter Core galleries
+ *
+ * @param array $galleries Gallery array.
+ *
+ * @return array
+ */
public static function filter_the_galleries( $galleries ) {
if ( empty( $galleries ) || ! is_array( $galleries ) ) {
return $galleries;
@@ -584,13 +621,6 @@ class Jetpack_Photon {
foreach ( $galleries as &$this_gallery ) {
if ( is_string( $this_gallery ) ) {
$this_gallery = self::filter_the_content( $this_gallery );
- // LEAVING COMMENTED OUT as for the moment it doesn't seem
- // necessary and I'm not sure how it would propagate through.
- // } elseif ( is_array( $this_gallery )
- // && ! empty( $this_gallery['src'] )
- // && ! empty( $this_gallery['type'] )
- // && in_array( $this_gallery['type'], array( 'rectangle', 'square', 'circle' ) ) ) {
- // $this_gallery['src'] = array_map( 'jetpack_photon_url', $this_gallery['src'] );
}
}
unset( $this_gallery ); // break the reference.
@@ -598,7 +628,6 @@ class Jetpack_Photon {
return $galleries;
}
-
/**
* Runs the image widget through photon.
*
@@ -626,9 +655,9 @@ class Jetpack_Photon {
/**
* Filter post thumbnail image retrieval, passing images through Photon
*
- * @param string|bool $image
- * @param int $attachment_id
- * @param string|array $size
+ * @param string|bool $image Image URL.
+ * @param int $attachment_id Attachment ID.
+ * @param string|array $size Declared size or a size array.
* @uses is_admin, apply_filters, wp_get_attachment_url, self::validate_image_url, this::image_sizes, jetpack_photon_url
* @filter image_downsize
* @return string|bool
@@ -679,14 +708,14 @@ class Jetpack_Photon {
return $image;
}
- // Get the image URL and proceed with Photon-ification if successful
+ // Get the image URL and proceed with Photon-ification if successful.
$image_url = wp_get_attachment_url( $attachment_id );
// Set this to true later when we know we have size meta.
$has_size_meta = false;
if ( $image_url ) {
- // Check if image URL should be used with Photon
+ // Check if image URL should be used with Photon.
if ( ! self::validate_image_url( $image_url ) ) {
return $image;
}
@@ -705,7 +734,7 @@ class Jetpack_Photon {
$image_meta = image_get_intermediate_size( $attachment_id, $size );
// 'full' is a special case: We need consistent data regardless of the requested size.
- if ( 'full' == $size ) {
+ if ( 'full' === $size ) {
$image_meta = wp_get_attachment_metadata( $attachment_id );
$intermediate = false;
} elseif ( ! $image_meta ) {
@@ -723,27 +752,28 @@ class Jetpack_Photon {
}
if ( isset( $image_meta['width'], $image_meta['height'] ) ) {
- $image_args['width'] = $image_meta['width'];
- $image_args['height'] = $image_meta['height'];
+ $image_args['width'] = (int) $image_meta['width'];
+ $image_args['height'] = (int) $image_meta['height'];
list( $image_args['width'], $image_args['height'] ) = image_constrain_size_for_editor( $image_args['width'], $image_args['height'], $size, 'display' );
$has_size_meta = true;
}
- // Expose determined arguments to a filter before passing to Photon
+ // Expose determined arguments to a filter before passing to Photon.
$transform = $image_args['crop'] ? 'resize' : 'fit';
// Check specified image dimensions and account for possible zero values; photon fails to resize if a dimension is zero.
- if ( 0 == $image_args['width'] || 0 == $image_args['height'] ) {
- if ( 0 == $image_args['width'] && 0 < $image_args['height'] ) {
+ if ( 0 === $image_args['width'] || 0 === $image_args['height'] ) {
+ if ( 0 === $image_args['width'] && 0 < $image_args['height'] ) {
$photon_args['h'] = $image_args['height'];
- } elseif ( 0 == $image_args['height'] && 0 < $image_args['width'] ) {
+ } elseif ( 0 === $image_args['height'] && 0 < $image_args['width'] ) {
$photon_args['w'] = $image_args['width'];
}
} else {
- if ( ( 'resize' === $transform ) && $image_meta = wp_get_attachment_metadata( $attachment_id ) ) {
+ $image_meta = wp_get_attachment_metadata( $attachment_id );
+ if ( ( 'resize' === $transform ) && $image_meta ) {
if ( isset( $image_meta['width'], $image_meta['height'] ) ) {
- // Lets make sure that we don't upscale images since wp never upscales them as well
+ // Lets make sure that we don't upscale images since wp never upscales them as well.
$smaller_width = ( ( $image_meta['width'] < $image_args['width'] ) ? $image_meta['width'] : $image_args['width'] );
$smaller_height = ( ( $image_meta['height'] < $image_args['height'] ) ? $image_meta['height'] : $image_args['height'] );
@@ -766,17 +796,17 @@ class Jetpack_Photon {
* @param array $args {
* Array of image details.
*
- * @type $image_args Array of Image arguments (width, height, crop).
- * @type $image_url Image URL.
- * @type $attachment_id Attachment ID of the image.
- * @type $size Image size. Can be a string (name of the image size, e.g. full) or an integer.
- * @type $transform Value can be resize or fit.
+ * @type array $image_args Array of Image arguments (width, height, crop).
+ * @type string $image_url Image URL.
+ * @type int $attachment_id Attachment ID of the image.
+ * @type string|int $size Image size. Can be a string (name of the image size, e.g. full) or an integer.
+ * @type string $transform Value can be resize or fit.
* @see https://developer.wordpress.com/docs/photon/api
* }
*/
$photon_args = apply_filters( 'jetpack_photon_image_downsize_string', $photon_args, compact( 'image_args', 'image_url', 'attachment_id', 'size', 'transform' ) );
- // Generate Photon URL
+ // Generate Photon URL.
$image = array(
jetpack_photon_url( $image_url, $photon_args ),
$has_size_meta ? $image_args['width'] : false,
@@ -784,7 +814,7 @@ class Jetpack_Photon {
$intermediate,
);
} elseif ( is_array( $size ) ) {
- // Pull width and height values from the provided array, if possible
+ // Pull width and height values from the provided array, if possible.
$width = isset( $size[0] ) ? (int) $size[0] : false;
$height = isset( $size[1] ) ? (int) $size[1] : false;
@@ -810,7 +840,7 @@ class Jetpack_Photon {
list( $width, $height ) = image_constrain_size_for_editor( $width, $height, $size );
- // Expose arguments to a filter before passing to Photon
+ // Expose arguments to a filter before passing to Photon.
$photon_args = array(
'fit' => $width . ',' . $height,
);
@@ -835,7 +865,7 @@ class Jetpack_Photon {
*/
$photon_args = apply_filters( 'jetpack_photon_image_downsize_array', $photon_args, compact( 'width', 'height', 'image_url', 'attachment_id' ) );
- // Generate Photon URL
+ // Generate Photon URL.
$image = array(
jetpack_photon_url( $image_url, $photon_args ),
$has_size_meta ? $width : false,
@@ -853,9 +883,16 @@ class Jetpack_Photon {
*
* @since 3.8.0
* @since 4.0.4 Added automatically additional sizes beyond declared image sizes.
+ *
* @param array $sources An array of image urls and widths.
+ * @param array $size_array The size array for srcset.
+ * @param array $image_src The image srcs.
+ * @param array $image_meta The image meta.
+ * @param int $attachment_id Attachment ID.
+ *
* @uses self::validate_image_url, jetpack_photon_url, Jetpack_Photon::parse_from_filename
* @uses Jetpack_Photon::strip_image_dimensions_maybe, Jetpack::get_content_width
+ *
* @return array An array of Photon image urls and widths.
*/
public function filter_srcset_array( $sources = array(), $size_array = array(), $image_src = array(), $image_meta = array(), $attachment_id = 0 ) {
@@ -877,7 +914,7 @@ class Jetpack_Photon {
$url = $source['url'];
list( $width, $height ) = self::parse_dimensions_from_filename( $url );
- // It's quicker to get the full size with the data we have already, if available
+ // It's quicker to get the full size with the data we have already, if available.
if ( ! empty( $attachment_id ) ) {
$url = wp_get_attachment_url( $attachment_id );
} else {
@@ -886,7 +923,7 @@ class Jetpack_Photon {
$args = array();
if ( 'w' === $source['descriptor'] ) {
- if ( $height && ( $source['value'] == $width ) ) {
+ if ( $height && ( (int) $source['value'] === $width ) ) {
$args['resize'] = $width . ',' . $height;
} else {
$args['w'] = $source['value'];
@@ -951,15 +988,15 @@ class Jetpack_Photon {
foreach ( $currentwidths as $currentwidth ) {
// If a new width would be within 100 pixes of an existing one or larger than the full size image, skip.
if ( abs( $currentwidth - $newwidth ) < 50 || ( $newwidth > $fullwidth ) ) {
- continue 2; // Back to the foreach ( $multipliers as $multiplier )
+ continue 2; // Bump out back to the $multipliers as $multiplier.
}
- } // foreach ( $currentwidths as $currentwidth ){
+ } //end foreach ( $currentwidths as $currentwidth ){
- if ( 'soft' == $crop ) {
+ if ( 'soft' === $crop ) {
$args = array(
'w' => $newwidth,
);
- } else { // hard crop, e.g. add_image_size( 'example', 200, 200, true );
+ } else { // hard crop, e.g. add_image_size( 'example', 200, 200, true ).
$args = array(
'zoom' => $multiplier,
'resize' => $reqwidth . ',' . $reqheight,
@@ -971,11 +1008,11 @@ class Jetpack_Photon {
'descriptor' => 'w',
'value' => $newwidth,
);
- } // foreach ( $multipliers as $multiplier )
+ } //end foreach ( $multipliers as $multiplier )
if ( is_array( $newsources ) ) {
$sources = array_replace( $sources, $newsources );
}
- } // if ( isset( $image_meta['width'] ) && isset( $image_meta['file'] ) )
+ } //end if isset( $image_meta['width'] ) && isset( $image_meta['file'] ) )
return $sources;
}
@@ -986,7 +1023,7 @@ class Jetpack_Photon {
* @since 4.0.4
* @since 4.1.0 Returns early for images not within the_content.
* @param array $sizes An array of media query breakpoints.
- * @param array $size Width and height of the image
+ * @param array $size Width and height of the image.
* @uses Jetpack::get_content_width
* @return array An array of media query breakpoints.
*/
@@ -1014,7 +1051,7 @@ class Jetpack_Photon {
* Ensure image URL is valid for Photon.
* Though Photon functions address some of the URL issues, we should avoid unnecessary processing if we know early on that the image isn't supported.
*
- * @param string $url
+ * @param string $url Image URL.
* @uses wp_parse_args
* @return bool
*/
@@ -1036,9 +1073,9 @@ class Jetpack_Photon {
)
);
- // Bail if scheme isn't http or port is set that isn't port 80
+ // Bail if scheme isn't http or port is set that isn't port 80.
if (
- ( 'http' != $url_info['scheme'] || ! in_array( $url_info['port'], array( 80, null ) ) ) &&
+ ( 'http' !== $url_info['scheme'] || ! in_array( $url_info['port'], array( 80, null ), true ) ) &&
/**
* Allow Photon to fetch images that are served via HTTPS.
*
@@ -1054,23 +1091,23 @@ class Jetpack_Photon {
return false;
}
- // Bail if no host is found
+ // Bail if no host is found.
if ( is_null( $url_info['host'] ) ) {
return false;
}
- // Bail if the image alredy went through Photon
+ // Bail if the image already went through Photon.
if ( preg_match( '#^i[\d]{1}.wp.com$#i', $url_info['host'] ) ) {
return false;
}
- // Bail if no path is found
+ // Bail if no path is found.
if ( is_null( $url_info['path'] ) ) {
return false;
}
- // Ensure image extension is acceptable
- if ( ! in_array( strtolower( pathinfo( $url_info['path'], PATHINFO_EXTENSION ) ), self::$extensions ) ) {
+ // Ensure image extension is acceptable.
+ if ( ! in_array( strtolower( pathinfo( $url_info['path'], PATHINFO_EXTENSION ) ), self::$extensions, true ) ) {
return false;
}
@@ -1091,20 +1128,20 @@ class Jetpack_Photon {
}
/**
- * Checks if the file exists before it passes the file to photon
+ * Checks if the file exists before it passes the file to photon.
*
- * @param string $src The image URL
+ * @param string $src The image URL.
* @return string
**/
public static function strip_image_dimensions_maybe( $src ) {
$stripped_src = $src;
- // Build URL, first removing WP's resized string so we pass the original image to Photon
+ // Build URL, first removing WP's resized string so we pass the original image to Photon.
if ( preg_match( '#(-\d+x\d+)\.(' . implode( '|', self::$extensions ) . '){1}$#i', $src, $src_parts ) ) {
$stripped_src = str_replace( $src_parts[1], '', $src );
$upload_dir = wp_get_upload_dir();
- // Extracts the file path to the image minus the base url
+ // Extracts the file path to the image minus the base url.
$file_path = substr( $stripped_src, strlen( $upload_dir['baseurl'] ) );
if ( file_exists( $upload_dir['basedir'] . $file_path ) ) {
@@ -1124,29 +1161,29 @@ class Jetpack_Photon {
* @return array
*/
protected static function image_sizes() {
- if ( null == self::$image_sizes ) {
+ if ( null === self::$image_sizes ) {
global $_wp_additional_image_sizes;
- // Populate an array matching the data structure of $_wp_additional_image_sizes so we have a consistent structure for image sizes
+ // Populate an array matching the data structure of $_wp_additional_image_sizes so we have a consistent structure for image sizes.
$images = array(
'thumb' => array(
- 'width' => intval( get_option( 'thumbnail_size_w' ) ),
- 'height' => intval( get_option( 'thumbnail_size_h' ) ),
+ 'width' => (int) get_option( 'thumbnail_size_w' ),
+ 'height' => (int) get_option( 'thumbnail_size_h' ),
'crop' => (bool) get_option( 'thumbnail_crop' ),
),
'medium' => array(
- 'width' => intval( get_option( 'medium_size_w' ) ),
- 'height' => intval( get_option( 'medium_size_h' ) ),
+ 'width' => (int) get_option( 'medium_size_w' ),
+ 'height' => (int) get_option( 'medium_size_h' ),
'crop' => false,
),
'medium_large' => array(
- 'width' => intval( get_option( 'medium_large_size_w' ) ),
- 'height' => intval( get_option( 'medium_large_size_h' ) ),
+ 'width' => (int) get_option( 'medium_large_size_w' ),
+ 'height' => (int) get_option( 'medium_large_size_h' ),
'crop' => false,
),
'large' => array(
- 'width' => intval( get_option( 'large_size_w' ) ),
- 'height' => intval( get_option( 'large_size_h' ) ),
+ 'width' => (int) get_option( 'large_size_w' ),
+ 'height' => (int) get_option( 'large_size_h' ),
'crop' => false,
),
'full' => array(
@@ -1156,10 +1193,10 @@ class Jetpack_Photon {
),
);
- // Compatibility mapping as found in wp-includes/media.php
+ // Compatibility mapping as found in wp-includes/media.php.
$images['thumbnail'] = $images['thumb'];
- // Update class variable, merging in $_wp_additional_image_sizes if any are set
+ // Update class variable, merging in $_wp_additional_image_sizes if any are set.
if ( is_array( $_wp_additional_image_sizes ) && ! empty( $_wp_additional_image_sizes ) ) {
self::$image_sizes = array_merge( $images, $_wp_additional_image_sizes );
} else {
@@ -1173,12 +1210,12 @@ class Jetpack_Photon {
/**
* Pass og:image URLs through Photon
*
- * @param array $tags
- * @param array $parameters
+ * @param array $tags Open graph tags.
+ * @param array $parameters Image parameters.
* @uses jetpack_photon_url
- * @return array
+ * @return array Open graph tags.
*/
- function filter_open_graph_tags( $tags, $parameters ) {
+ public function filter_open_graph_tags( $tags, $parameters ) {
if ( empty( $tags['og:image'] ) ) {
return $tags;
}
@@ -1200,10 +1237,6 @@ class Jetpack_Photon {
return $tags;
}
- public function noresize_intermediate_sizes( $sizes ) {
- return __return_empty_array();
- }
-
/**
* Enqueue Photon helper script
*
@@ -1240,8 +1273,8 @@ class Jetpack_Photon {
*
* @see Jetpack_Photon::filter_image_downsize()
*
- * @param null|WP_Error $response
- * @param array $endpoint_data
+ * @param null|WP_Error $response REST API response.
+ * @param array $endpoint_data Endpoint data. Not used, but part of the filter.
* @param WP_REST_Request $request Request used to generate the response.
*
* @return null|WP_Error The original response object without modification.
@@ -1256,15 +1289,55 @@ class Jetpack_Photon {
return $response;
}
+ $this->should_rest_photon_image_downsize_override( $request );
+
+ return $response;
+
+ }
+
+ /**
+ * Helper function to check if a WP_REST_Request is the media endpoint in the edit context.
+ *
+ * @param WP_REST_Request $request The current REST request.
+ */
+ private function should_rest_photon_image_downsize_override( WP_REST_Request $request ) {
$route = $request->get_route();
- if ( false !== strpos( $route, 'wp/v2/media' ) && 'edit' === $request['context'] ) {
+ if (
+ (
+ false !== strpos( $route, 'wp/v2/media' )
+ && 'edit' === $request->get_param( 'context' )
+ )
+ || false !== strpos( $route, 'wpcom/v2/external-media/copy' )
+ ) {
// Don't use `__return_true()`: Use something unique. See ::_override_image_downsize_in_rest_edit_context()
// Late execution to avoid conflict with other plugins as we really don't want to run in this situation.
- add_filter( 'jetpack_photon_override_image_downsize', array( $this, '_override_image_downsize_in_rest_edit_context' ), 999999 );
+ add_filter(
+ 'jetpack_photon_override_image_downsize',
+ array(
+ $this,
+ 'override_image_downsize_in_rest_edit_context',
+ ),
+ 999999
+ );
}
+ }
- return $response;
+ /**
+ * Brings in should_rest_photon_image_downsize for the rest_after_insert_attachment hook.
+ *
+ * @since 8.7.0
+ *
+ * @param WP_Post $attachment Inserted or updated attachment object.
+ * @param WP_REST_Request $request Request object.
+ */
+ public function should_rest_photon_image_downsize_insert_attachment( WP_Post $attachment, WP_REST_Request $request ) {
+ if ( ! is_a( $request, 'WP_REST_Request' ) ) {
+ // Something odd is happening.
+ return;
+ }
+
+ $this->should_rest_photon_image_downsize_override( $request );
}
@@ -1274,11 +1347,18 @@ class Jetpack_Photon {
* every used here, we can always remove it without ever worrying
* about breaking any other configuration.
*
- * @param mixed $response
+ * @param mixed $response REST API Response.
* @return mixed Unchanged $response
*/
public function cleanup_rest_photon_image_downsize( $response ) {
- remove_filter( 'jetpack_photon_override_image_downsize', array( $this, '_override_image_downsize_in_rest_edit_context' ), 999999 );
+ remove_filter(
+ 'jetpack_photon_override_image_downsize',
+ array(
+ $this,
+ 'override_image_downsize_in_rest_edit_context',
+ ),
+ 999999
+ );
return $response;
}
@@ -1292,7 +1372,7 @@ class Jetpack_Photon {
* @internal
* @return true
*/
- public function _override_image_downsize_in_rest_edit_context() {
+ public function override_image_downsize_in_rest_edit_context() {
return true;
}
diff --git a/plugins/jetpack/composer.json b/plugins/jetpack/composer.json
index 338bad76..9cff56df 100644
--- a/plugins/jetpack/composer.json
+++ b/plugins/jetpack/composer.json
@@ -11,45 +11,79 @@
"ext-fileinfo": "*",
"ext-json": "*",
"ext-openssl": "*",
- "automattic/jetpack-abtest": "^1.0",
- "automattic/jetpack-assets": "^1.1",
- "automattic/jetpack-autoloader": "^1.4",
- "automattic/jetpack-backup": "^1.0",
- "automattic/jetpack-compat": "^1.0",
- "automattic/jetpack-config": "^1.1",
- "automattic/jetpack-connection": "^1.8",
- "automattic/jetpack-constants": "^1.1",
- "automattic/jetpack-error": "^1.0",
- "automattic/jetpack-jitm": "^1.1",
- "automattic/jetpack-logo": "^1.1",
- "automattic/jetpack-options": "^1.1",
- "automattic/jetpack-partner": "^1.0",
- "automattic/jetpack-roles": "^1.0",
- "automattic/jetpack-status": "^1.1",
- "automattic/jetpack-sync": "dev-fork/jetpack-sync-v1.7.4+vip",
- "automattic/jetpack-terms-of-service": "^1.0",
- "automattic/jetpack-tracking": "^1.2"
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-abtest": "^1.9",
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-autoloader": "^2.10",
+ "automattic/jetpack-backup": "^1.2",
+ "automattic/jetpack-blocks": "^1.4",
+ "automattic/jetpack-compat": "^1.6",
+ "automattic/jetpack-composer-plugin": "^1.0",
+ "automattic/jetpack-config": "^1.6",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-connection-ui": "^2.3",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-device-detection": "^1.4",
+ "automattic/jetpack-error": "^1.3",
+ "automattic/jetpack-heartbeat": "^1.4",
+ "automattic/jetpack-identity-crisis": "^0.6",
+ "automattic/jetpack-jitm": "^2.2",
+ "automattic/jetpack-lazy-images": "^2.1",
+ "automattic/jetpack-licensing": "^1.6",
+ "automattic/jetpack-logo": "^1.5",
+ "automattic/jetpack-my-jetpack": "^0.3",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-partner": "^1.6",
+ "automattic/jetpack-redirect": "^1.7",
+ "automattic/jetpack-roles": "^1.4",
+ "automattic/jetpack-search": "^0.4",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-sync": "^1.28",
+ "automattic/jetpack-terms-of-service": "^1.9",
+ "automattic/jetpack-tracking": "^1.14",
+ "nojimage/twitter-text-php": "3.1.2"
},
"require-dev": {
- "dealerdirect/phpcodesniffer-composer-installer": "0.5.0",
- "phpcompatibility/phpcompatibility-wp": "2.1.0",
- "sirbrillig/phpcs-changed": "2.2.7",
- "sirbrillig/phpcs-variable-analysis": "2.7.0",
- "wp-coding-standards/wpcs": "2.2.0"
+ "antecedent/patchwork": "2.1.17",
+ "automattic/jetpack-changelogger": "^3.0",
+ "johnkary/phpunit-speedtrap": "^4.0.0 || ^2.0.0 || ^1.1.0",
+ "yoast/phpunit-polyfills": "1.0.3"
},
"scripts": {
- "php:compatibility": "vendor/bin/phpcs -p -s --runtime-set testVersion '5.6-' --standard=PHPCompatibilityWP --ignore=docker,tools,tests,node_modules,vendor --extensions=php",
- "php:lint": "vendor/bin/phpcs -p -s",
- "php:changed": "vendor/sirbrillig/phpcs-changed/bin/phpcs-changed --git",
- "php:autofix": "vendor/bin/phpcbf",
- "php:lint:errors": "vendor/bin/phpcs -p -s --runtime-set ignore_warnings_on_exit 1"
+ "build-production": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run build-production-concurrently"
+ ],
+ "build-development": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run build-concurrently"
+ ],
+ "phpunit": [
+ "tests/action-phpunit.sh"
+ ],
+ "test-coverage": [
+ "Composer\\Config::disableProcessTimeout",
+ "@composer install",
+ "@php tools/build-module-headings-translations.php",
+ "tests/action-test-coverage.sh"
+ ],
+ "test-js": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm install",
+ "pnpx concurrently 'pnpm:test-adminpage' 'pnpm:test-extensions' 'pnpm:test-search'"
+ ],
+ "test-php": [
+ "Composer\\Config::disableProcessTimeout",
+ "@composer install",
+ "@php tools/build-module-headings-translations.php",
+ "tests/action-test-php.sh"
+ ],
+ "watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run watch"
+ ]
},
- "repositories": [
- {
- "type": "path",
- "url": "./packages/*"
- }
- ],
+ "repositories": [],
"autoload": {
"classmap": [
"src"
@@ -58,6 +92,30 @@
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
- "sort-packages": true
+ "sort-packages": true,
+ "platform": {
+ "ext-intl": "0.0.0"
+ },
+ "autoloader-suffix": "f11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5"
+ },
+ "extra": {
+ "mirror-repo": "Automattic/jetpack-production",
+ "release-branch-prefix": "jetpack",
+ "version-constants": {
+ "JETPACK__VERSION": "jetpack.php"
+ },
+ "wp-plugin-slug": "jetpack",
+ "dev-releases": true,
+ "changelogger-default-type": "other",
+ "changelogger": {
+ "versioning": "wordpress",
+ "types": {
+ "major": "Major Enhancements",
+ "enhancement": "Enhancements",
+ "compat": "Improved compatibility",
+ "bugfix": "Bug fixes",
+ "other": "Other changes <!-- Non-user-facing changes go here. This section will not be copied to readme.txt. -->"
+ }
+ }
}
}
diff --git a/plugins/jetpack/css/cleanslate-rtl.css b/plugins/jetpack/css/cleanslate-rtl.css
new file mode 100644
index 00000000..42143ba2
--- /dev/null
+++ b/plugins/jetpack/css/cleanslate-rtl.css
@@ -0,0 +1,482 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+/*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/
+/*
+ An extreme CSS reset stylesheet, for normalising the styling of a container element and its children.
+
+ by Premasagar Rose
+ dharmafly.com
+
+ license
+ opensource.org/licenses/mit-license.php
+
+ **
+
+ v0.10.1
+
+*/
+/* == BLANKET RESET RULES == */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6, .cleanslate p, .cleanslate td, .cleanslate dl, .cleanslate tr, .cleanslate dt, .cleanslate ol, .cleanslate form, .cleanslate select, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate table, .cleanslate th, .cleanslate tbody, .cleanslate tfoot, .cleanslate caption, .cleanslate thead, .cleanslate ul, .cleanslate li, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate li, .cleanslate iframe, .cleanslate strong, .cleanslate legend, .cleanslate em, .cleanslate summary, .cleanslate cite, .cleanslate span, .cleanslate input, .cleanslate sup, .cleanslate label, .cleanslate dfn, .cleanslate object, .cleanslate big, .cleanslate q, .cleanslate samp, .cleanslate acronym, .cleanslate small, .cleanslate img, .cleanslate strike, .cleanslate code, .cleanslate sub, .cleanslate ins, .cleanslate textarea, .cleanslate button, .cleanslate var, .cleanslate a, .cleanslate abbr, .cleanslate applet, .cleanslate del, .cleanslate kbd, .cleanslate tt, .cleanslate b, .cleanslate i, .cleanslate hr,
+.cleanslate article, .cleanslate aside, .cleanslate figure, .cleanslate figcaption, .cleanslate footer, .cleanslate header, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate time, .cleanslate mark, .cleanslate audio, .cleanslate video, .cleanslate abbr, .cleanslate address, .cleanslate area, .cleanslate blockquote, .cleanslate canvas, .cleanslate caption, .cleanslate cite, .cleanslate code, .cleanslate colgroup, .cleanslate col, .cleanslate datalist, .cleanslate fieldset, .cleanslate main, .cleanslate map, .cleanslate meta, .cleanslate optgroup, .cleanslate output, .cleanslate progress, .cleanslate svg {
+ background-attachment: scroll !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ /* This rule affects the use of pngfix JavaScript http://dillerdesign.com/experiment/DD_BelatedPNG for IE6, which is used to force the browser to recognise alpha-transparent PNGs files that replace the IE6 lack of PNG transparency. (The rule overrides the VML image that is used to replace the given CSS background-image). If you don't know what that means, then you probably haven't used the pngfix script, and this comment may be ignored :) */
+ background-position: 100% 0 !important;
+ background-repeat: repeat !important;
+ border-color: black !important;
+ border-color: currentColor !important;
+ /* `border-color` should match font color. Modern browsers (incl. IE9) allow the use of "currentColor" to match the current font 'color' value <http://www.w3.org/TR/css3-color/#currentcolor>. For older browsers, a default of 'black' is given before this rule. Guideline to support older browsers: if you haven't already declared a border-color for an element, be sure to do so, e.g. when you first declare the border-width. */
+ border-radius: 0 !important;
+ border-style: none !important;
+ border-width: medium !important;
+ bottom: auto !important;
+ clear: none !important;
+ clip: auto !important;
+ color: inherit !important;
+ counter-increment: none !important;
+ counter-reset: none !important;
+ cursor: auto !important;
+ direction: inherit !important;
+ display: inline !important;
+ float: none !important;
+ font-family: inherit !important;
+ /* As with other inherit values, this needs to be set on the root container element */
+ font-size: inherit !important;
+ font-style: inherit !important;
+ font-variant: normal !important;
+ font-weight: inherit !important;
+ height: auto !important;
+ right: auto !important;
+ letter-spacing: normal !important;
+ line-height: inherit !important;
+ list-style-type: inherit !important;
+ /* Could set list-style-type to none */
+ list-style-position: outside !important;
+ list-style-image: none !important;
+ margin: 0 !important;
+ max-height: none !important;
+ max-width: none !important;
+ min-height: 0 !important;
+ min-width: 0 !important;
+ opacity: 1;
+ outline: invert none medium !important;
+ overflow: visible !important;
+ padding: 0 !important;
+ position: static !important;
+ quotes: "" "" !important;
+ left: auto !important;
+ table-layout: auto !important;
+ text-align: inherit !important;
+ text-decoration: inherit !important;
+ text-indent: 0 !important;
+ text-transform: none !important;
+ top: auto !important;
+ unicode-bidi: normal !important;
+ vertical-align: baseline !important;
+ visibility: inherit !important;
+ white-space: normal !important;
+ width: auto !important;
+ word-spacing: normal !important;
+ z-index: auto !important;
+ /* CSS3 */
+ /* Including all prefixes according to http://caniuse.com/ */
+ /* CSS Animations don't cascade, so don't require resetting */
+ background-origin: padding-box !important;
+ -webkit-background-clip: border-box !important;
+ background-clip: border-box !important;
+ background-size: auto !important;
+ -o-border-image: none !important;
+ border-image: none !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ box-sizing: content-box !important;
+ column-count: auto !important;
+ column-gap: normal !important;
+ column-rule: medium none black !important;
+ /* doesn't exist yet but probably will */
+ column-span: 1 !important;
+ column-width: auto !important;
+ font-feature-settings: normal !important;
+ overflow-x: visible !important;
+ overflow-y: visible !important;
+ -webkit-hyphens: manual !important;
+ hyphens: manual !important;
+ -ms-perspective: none !important;
+ -o-perspective: none !important;
+ perspective: none !important;
+ -ms-perspective-origin: 50% 50% !important;
+ -o-perspective-origin: 50% 50% !important;
+ perspective-origin: 50% 50% !important;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ text-shadow: none !important;
+ transition: all 0s ease 0s !important;
+ transform: none !important;
+ transform-origin: 50% 50% !important;
+ transform-style: flat !important;
+ word-break: normal !important;
+}
+
+/* == BLOCK-LEVEL == */
+/* Actually, some of these should be inline-block and other values, but block works fine (TODO: rigorously verify this) */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h3, .cleanslate h5, .cleanslate p, .cleanslate h1, .cleanslate dl, .cleanslate dt, .cleanslate h6, .cleanslate ol, .cleanslate form, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate h2, .cleanslate caption, .cleanslate h4, .cleanslate ul, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate hr,
+.cleanslate article, .cleanslate dialog, .cleanslate figure, .cleanslate footer, .cleanslate header, .cleanslate hgroup, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate audio, .cleanslate video, .cleanslate address, .cleanslate blockquote, .cleanslate colgroup, .cleanslate main, .cleanslate progress, .cleanslate summary {
+ display: block !important;
+}
+
+.cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6 {
+ font-weight: bold !important;
+}
+
+.cleanslate h1:before, .cleanslate h2:before {
+ display: none !important;
+}
+
+.cleanslate h1 {
+ font-size: 2em !important;
+ padding: 0.67em 0 !important;
+}
+
+.cleanslate h2 {
+ font-size: 1.5em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h3 {
+ font-size: 1.17em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h4 {
+ font-size: 1em !important;
+}
+
+.cleanslate h5 {
+ font-size: 0.83em !important;
+}
+
+.cleanslate p {
+ margin: 1em 0 !important;
+}
+
+.cleanslate table {
+ display: table !important;
+}
+
+.cleanslate thead {
+ display: table-header-group !important;
+}
+
+.cleanslate tbody {
+ display: table-row-group !important;
+}
+
+.cleanslate tfoot {
+ display: table-footer-group !important;
+}
+
+.cleanslate tr {
+ display: table-row !important;
+}
+
+.cleanslate th, .cleanslate td {
+ display: table-cell !important;
+ padding: 2px !important;
+}
+
+/* == SPECIFIC ELEMENTS == */
+/* Some of these are browser defaults; some are just useful resets */
+.cleanslate ol, .cleanslate ul {
+ margin: 1em 0 !important;
+}
+
+.cleanslate ul li, .cleanslate ul ul li, .cleanslate ul ul ul li, .cleanslate ol li, .cleanslate ol ol li, .cleanslate ol ol ol li, .cleanslate ul ol ol li, .cleanslate ul ul ol li, .cleanslate ol ul ul li, .cleanslate ol ol ul li {
+ list-style-position: inside !important;
+ margin-top: 0.08em !important;
+}
+
+.cleanslate ol ol, .cleanslate ol ol ol, .cleanslate ul ul, .cleanslate ul ul ul, .cleanslate ol ul, .cleanslate ol ul ul, .cleanslate ol ol ul, .cleanslate ul ol, .cleanslate ul ol ol, .cleanslate ul ul ol {
+ padding-right: 40px !important;
+ margin: 0 !important;
+}
+
+/* helper for general navigation */
+.cleanslate nav ul, .cleanslate nav ol {
+ list-style-type: none !important;
+}
+
+.cleanslate ul, .cleanslate menu {
+ list-style-type: disc !important;
+}
+
+.cleanslate ol {
+ list-style-type: decimal !important;
+}
+
+.cleanslate ol ul, .cleanslate ul ul, .cleanslate menu ul, .cleanslate ol menu, .cleanslate ul menu, .cleanslate menu menu {
+ list-style-type: circle !important;
+}
+
+.cleanslate ol ol ul, .cleanslate ol ul ul, .cleanslate ol menu ul, .cleanslate ol ol menu, .cleanslate ol ul menu, .cleanslate ol menu menu, .cleanslate ul ol ul, .cleanslate ul ul ul, .cleanslate ul menu ul, .cleanslate ul ol menu, .cleanslate ul ul menu, .cleanslate ul menu menu, .cleanslate menu ol ul, .cleanslate menu ul ul, .cleanslate menu menu ul, .cleanslate menu ol menu, .cleanslate menu ul menu, .cleanslate menu menu menu {
+ list-style-type: square !important;
+}
+
+.cleanslate li {
+ display: list-item !important;
+ /* Fixes IE7 issue with positioning of nested bullets */
+ min-height: auto !important;
+ min-width: auto !important;
+ padding-right: 20px !important;
+ /* replace -webkit-padding-start: 40px; */
+}
+
+.cleanslate strong {
+ font-weight: bold !important;
+}
+
+.cleanslate em {
+ font-style: italic !important;
+}
+
+.cleanslate kbd, .cleanslate samp, .cleanslate code, .cleanslate pre {
+ font-family: monospace !important;
+}
+
+.cleanslate a {
+ color: blue !important;
+ text-decoration: underline !important;
+}
+
+.cleanslate a:visited {
+ color: #529 !important;
+}
+
+.cleanslate a, .cleanslate a *, .cleanslate input[type=submit], .cleanslate input[type=button], .cleanslate input[type=radio], .cleanslate input[type=checkbox], .cleanslate select, .cleanslate button {
+ cursor: pointer !important;
+}
+
+.cleanslate button, .cleanslate input[type=submit] {
+ text-align: center !important;
+ padding: 2px 6px 3px !important;
+ border-radius: 4px !important;
+ text-decoration: none !important;
+ font-family: inherit !important;
+ font-size: small !important;
+ background: white !important;
+ -webkit-appearance: push-button !important;
+ color: buttontext !important;
+ border: 1px #a6a6a6 solid !important;
+ background: lightgrey !important;
+ /* Old browsers */
+ background: white;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, white 0%, #dddddd 100%, #d1d1d1 100%, #dddddd 100%) !important;
+ /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#dddddd",GradientType=0 ) !important;
+ /* IE6-9 */
+ -o-box-shadow: -1px 1px 0px #eee !important;
+ box-shadow: -1px 1px 0px #eee !important;
+ outline: initial !important;
+}
+
+.cleanslate button:active, .cleanslate input[type=submit]:active, .cleanslate input[type=button]:active, .cleanslate button:active {
+ background: #3b679e !important;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, #3b679e 0%, #2b88d9 50%, #207cca 51%, #7db9e8 100%) !important;
+ /* W3C */
+ border-color: #5259b0 !important;
+}
+
+.cleanslate button {
+ padding: 1px 6px 2px 6px !important;
+ margin-left: 5px !important;
+}
+
+.cleanslate input[type=hidden] {
+ display: none !important;
+}
+
+/* restore form defaults */
+.cleanslate textarea {
+ -webkit-appearance: textarea !important;
+ background: white !important;
+ padding: 2px !important;
+ margin-right: 4px !important;
+ word-wrap: break-word !important;
+ white-space: pre-wrap !important;
+ font-size: 11px !important;
+ font-family: inherit !important;
+ line-height: 13px !important;
+ resize: both !important;
+}
+
+.cleanslate select, .cleanslate textarea, .cleanslate input {
+ border: 1px solid #ccc !important;
+}
+
+.cleanslate select {
+ font-size: 11px !important;
+ font-family: inherit !important;
+ display: inline-block;
+}
+
+.cleanslate textarea:focus, .cleanslate input:focus {
+ outline: auto 5px -webkit-focus-ring-color !important;
+ outline: initial !important;
+}
+
+.cleanslate input[type=text] {
+ background: white !important;
+ padding: 1px !important;
+ font-family: initial !important;
+ font-size: small !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ border: 1px #2b2b2b solid !important;
+ border-radius: 4px !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ outline: initial !important;
+}
+
+.cleanslate input[type=radio] {
+ margin: 2px 2px 3px 2px !important;
+}
+
+.cleanslate abbr[title], .cleanslate acronym[title], .cleanslate dfn[title] {
+ cursor: help !important;
+ border-bottom-width: 1px !important;
+ border-bottom-style: dotted !important;
+}
+
+.cleanslate ins {
+ background-color: #ff9 !important;
+ color: black !important;
+}
+
+.cleanslate del {
+ text-decoration: line-through !important;
+}
+
+.cleanslate blockquote, .cleanslate q {
+ quotes: none !important;
+ /* HTML5 */
+}
+
+.cleanslate blockquote:before, .cleanslate blockquote:after, .cleanslate q:before, .cleanslate q:after, .cleanslate li:before, .cleanslate li:after {
+ content: "" !important;
+}
+
+.cleanslate input, .cleanslate select {
+ vertical-align: middle !important;
+}
+
+.cleanslate table {
+ border-collapse: collapse !important;
+ border-spacing: 0 !important;
+}
+
+.cleanslate hr {
+ display: block !important;
+ height: 1px !important;
+ border: 0 !important;
+ border-top: 1px solid #ccc !important;
+ margin: 1em 0 !important;
+}
+
+.cleanslate *[dir=rtl] {
+ direction: ltr !important;
+}
+
+.cleanslate mark {
+ background-color: #ff9 !important;
+ color: black !important;
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+.cleanslate menu {
+ padding-right: 40px !important;
+ padding-top: 8px !important;
+}
+
+/* additional helpers */
+.cleanslate [hidden],
+.cleanslate template {
+ display: none !important;
+}
+
+.cleanslate abbr[title] {
+ border-bottom: 1px dotted !important;
+}
+
+.cleanslate sub, .cleanslate sup {
+ font-size: 75% !important;
+ line-height: 0 !important;
+ position: relative !important;
+ vertical-align: baseline !important;
+}
+
+.cleanslate sup {
+ top: -0.5em !important;
+}
+
+.cleanslate sub {
+ bottom: -0.25em !important;
+}
+
+.cleanslate img {
+ border: 0 !important;
+}
+
+.cleanslate figure {
+ margin: 0 !important;
+}
+
+.cleanslate textarea {
+ overflow: auto !important;
+ vertical-align: top !important;
+}
+
+/* == ROOT CONTAINER ELEMENT == */
+/* This contains default values for child elements to inherit */
+.cleanslate {
+ font-size: medium !important;
+ line-height: 1 !important;
+ direction: rtl !important;
+ text-align: right !important;
+ /* for IE, Opera */
+ text-align: start !important;
+ /* recommended W3C Spec */
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
+ color: black !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ text-decoration: none !important;
+ list-style-type: disc !important;
+}
+
+.cleanslate pre {
+ white-space: pre !important;
+}
+/*# sourceMappingURL=cleanslate-rtl.css.map */
diff --git a/plugins/jetpack/css/cleanslate-rtl.min.css b/plugins/jetpack/css/cleanslate-rtl.min.css
new file mode 100644
index 00000000..207b630a
--- /dev/null
+++ b/plugins/jetpack/css/cleanslate-rtl.min.css
@@ -0,0 +1,7 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*//*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/.cleanslate,.cleanslate a,.cleanslate abbr,.cleanslate acronym,.cleanslate address,.cleanslate applet,.cleanslate area,.cleanslate article,.cleanslate aside,.cleanslate audio,.cleanslate b,.cleanslate big,.cleanslate blockquote,.cleanslate button,.cleanslate canvas,.cleanslate caption,.cleanslate cite,.cleanslate code,.cleanslate col,.cleanslate colgroup,.cleanslate datalist,.cleanslate dd,.cleanslate del,.cleanslate dfn,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate em,.cleanslate fieldset,.cleanslate figcaption,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hr,.cleanslate i,.cleanslate iframe,.cleanslate img,.cleanslate input,.cleanslate ins,.cleanslate kbd,.cleanslate label,.cleanslate legend,.cleanslate li,.cleanslate main,.cleanslate map,.cleanslate mark,.cleanslate menu,.cleanslate meta,.cleanslate nav,.cleanslate object,.cleanslate ol,.cleanslate optgroup,.cleanslate option,.cleanslate output,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate q,.cleanslate samp,.cleanslate section,.cleanslate select,.cleanslate small,.cleanslate span,.cleanslate strike,.cleanslate strong,.cleanslate sub,.cleanslate summary,.cleanslate sup,.cleanslate svg,.cleanslate table,.cleanslate tbody,.cleanslate td,.cleanslate textarea,.cleanslate tfoot,.cleanslate th,.cleanslate thead,.cleanslate time,.cleanslate tr,.cleanslate tt,.cleanslate ul,.cleanslate var,.cleanslate video{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:100% 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline!important;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto!important;right:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;left:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;background-origin:padding-box!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;background-size:auto!important;-o-border-image:none!important;border-image:none!important;border-radius:0!important;box-shadow:none!important;box-sizing:content-box!important;column-count:auto!important;column-gap:normal!important;column-rule:medium none #000!important;column-span:1!important;column-width:auto!important;font-feature-settings:normal!important;overflow-x:visible!important;overflow-y:visible!important;-webkit-hyphens:manual!important;hyphens:manual!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-ms-perspective-origin:50% 50%!important;-o-perspective-origin:50% 50%!important;perspective-origin:50% 50%!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;text-shadow:none!important;transition:all 0s ease 0s!important;transform:none!important;transform-origin:50% 50%!important;transform-style:flat!important;word-break:normal!important}.cleanslate,.cleanslate address,.cleanslate article,.cleanslate audio,.cleanslate blockquote,.cleanslate caption,.cleanslate colgroup,.cleanslate dd,.cleanslate dialog,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate fieldset,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hgroup,.cleanslate hr,.cleanslate main,.cleanslate menu,.cleanslate nav,.cleanslate ol,.cleanslate option,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate section,.cleanslate summary,.cleanslate ul,.cleanslate video{display:block!important}.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6{font-weight:700!important}.cleanslate h1:before,.cleanslate h2:before{display:none!important}.cleanslate h1{font-size:2em!important;padding:.67em 0!important}.cleanslate h2{font-size:1.5em!important;padding:.83em 0!important}.cleanslate h3{font-size:1.17em!important;padding:.83em 0!important}.cleanslate h4{font-size:1em!important}.cleanslate h5{font-size:.83em!important}.cleanslate p{margin:1em 0!important}.cleanslate table{display:table!important}.cleanslate thead{display:table-header-group!important}.cleanslate tbody{display:table-row-group!important}.cleanslate tfoot{display:table-footer-group!important}.cleanslate tr{display:table-row!important}.cleanslate td,.cleanslate th{display:table-cell!important;padding:2px!important}.cleanslate ol,.cleanslate ul{margin:1em 0!important}.cleanslate ol li,.cleanslate ol ol li,.cleanslate ol ol ol li,.cleanslate ol ol ul li,.cleanslate ol ul ul li,.cleanslate ul li,.cleanslate ul ol ol li,.cleanslate ul ul li,.cleanslate ul ul ol li,.cleanslate ul ul ul li{list-style-position:inside!important;margin-top:.08em!important}.cleanslate ol ol,.cleanslate ol ol ol,.cleanslate ol ol ul,.cleanslate ol ul,.cleanslate ol ul ul,.cleanslate ul ol,.cleanslate ul ol ol,.cleanslate ul ul,.cleanslate ul ul ol,.cleanslate ul ul ul{padding-right:40px!important;margin:0!important}.cleanslate nav ol,.cleanslate nav ul{list-style-type:none!important}.cleanslate menu,.cleanslate ul{list-style-type:disc!important}.cleanslate ol{list-style-type:decimal!important}.cleanslate menu menu,.cleanslate menu ul,.cleanslate ol menu,.cleanslate ol ul,.cleanslate ul menu,.cleanslate ul ul{list-style-type:circle!important}.cleanslate menu menu menu,.cleanslate menu menu ul,.cleanslate menu ol menu,.cleanslate menu ol ul,.cleanslate menu ul menu,.cleanslate menu ul ul,.cleanslate ol menu menu,.cleanslate ol menu ul,.cleanslate ol ol menu,.cleanslate ol ol ul,.cleanslate ol ul menu,.cleanslate ol ul ul,.cleanslate ul menu menu,.cleanslate ul menu ul,.cleanslate ul ol menu,.cleanslate ul ol ul,.cleanslate ul ul menu,.cleanslate ul ul ul{list-style-type:square!important}.cleanslate li{display:list-item!important;min-height:auto!important;min-width:auto!important;padding-right:20px!important}.cleanslate strong{font-weight:700!important}.cleanslate em{font-style:italic!important}.cleanslate code,.cleanslate kbd,.cleanslate pre,.cleanslate samp{font-family:monospace!important}.cleanslate a{color:#00f!important;text-decoration:underline!important}.cleanslate a:visited{color:#529!important}.cleanslate a,.cleanslate a *,.cleanslate button,.cleanslate input[type=button],.cleanslate input[type=checkbox],.cleanslate input[type=radio],.cleanslate input[type=submit],.cleanslate select{cursor:pointer!important}.cleanslate button,.cleanslate input[type=submit]{text-align:center!important;padding:2px 6px 3px!important;border-radius:4px!important;text-decoration:none!important;font-family:inherit!important;font-size:small!important;background:#fff!important;-webkit-appearance:push-button!important;color:buttontext!important;border:1px #a6a6a6 solid!important;background:#d3d3d3!important;background:#fff;background:linear-gradient(to bottom,#fff 0,#ddd 100%,#d1d1d1 100%,#ddd 100%)!important;-o-box-shadow:-1px 1px 0 #eee!important;box-shadow:-1px 1px 0 #eee!important;outline:initial!important}.cleanslate button:active,.cleanslate input[type=button]:active,.cleanslate input[type=submit]:active{background:#3b679e!important;background:linear-gradient(to bottom,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8 100%)!important;border-color:#5259b0!important}.cleanslate button{padding:1px 6px 2px 6px!important;margin-left:5px!important}.cleanslate input[type=hidden]{display:none!important}.cleanslate textarea{-webkit-appearance:textarea!important;background:#fff!important;padding:2px!important;margin-right:4px!important;word-wrap:break-word!important;white-space:pre-wrap!important;font-size:11px!important;font-family:inherit!important;line-height:13px!important;resize:both!important}.cleanslate input,.cleanslate select,.cleanslate textarea{border:1px solid #ccc!important}.cleanslate select{font-size:11px!important;font-family:inherit!important;display:inline-block}.cleanslate input:focus,.cleanslate textarea:focus{outline:auto 5px -webkit-focus-ring-color!important;outline:initial!important}.cleanslate input[type=text]{background:#fff!important;padding:1px!important;font-family:initial!important;font-size:small!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{border:1px #2b2b2b solid!important;border-radius:4px!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{outline:initial!important}.cleanslate input[type=radio]{margin:2px 2px 3px 2px!important}.cleanslate abbr[title],.cleanslate acronym[title],.cleanslate dfn[title]{cursor:help!important;border-bottom-width:1px!important;border-bottom-style:dotted!important}.cleanslate ins{background-color:#ff9!important;color:#000!important}.cleanslate del{text-decoration:line-through!important}.cleanslate blockquote,.cleanslate q{quotes:none!important}.cleanslate blockquote:after,.cleanslate blockquote:before,.cleanslate li:after,.cleanslate li:before,.cleanslate q:after,.cleanslate q:before{content:""!important}.cleanslate input,.cleanslate select{vertical-align:middle!important}.cleanslate table{border-collapse:collapse!important;border-spacing:0!important}.cleanslate hr{display:block!important;height:1px!important;border:0!important;border-top:1px solid #ccc!important;margin:1em 0!important}.cleanslate [dir=rtl]{direction:ltr!important}.cleanslate mark{background-color:#ff9!important;color:#000!important;font-style:italic!important;font-weight:700!important}.cleanslate menu{padding-right:40px!important;padding-top:8px!important}.cleanslate [hidden],.cleanslate template{display:none!important}.cleanslate abbr[title]{border-bottom:1px dotted!important}.cleanslate sub,.cleanslate sup{font-size:75%!important;line-height:0!important;position:relative!important;vertical-align:baseline!important}.cleanslate sup{top:-.5em!important}.cleanslate sub{bottom:-.25em!important}.cleanslate img{border:0!important}.cleanslate figure{margin:0!important}.cleanslate textarea{overflow:auto!important;vertical-align:top!important}.cleanslate{font-size:medium!important;line-height:1!important;direction:rtl!important;text-align:right!important;text-align:start!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;color:#000!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.cleanslate pre{white-space:pre!important} \ No newline at end of file
diff --git a/plugins/jetpack/css/cleanslate.css b/plugins/jetpack/css/cleanslate.css
new file mode 100644
index 00000000..aa7c2657
--- /dev/null
+++ b/plugins/jetpack/css/cleanslate.css
@@ -0,0 +1,482 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+/*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/
+/*
+ An extreme CSS reset stylesheet, for normalising the styling of a container element and its children.
+
+ by Premasagar Rose
+ dharmafly.com
+
+ license
+ opensource.org/licenses/mit-license.php
+
+ **
+
+ v0.10.1
+
+*/
+/* == BLANKET RESET RULES == */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6, .cleanslate p, .cleanslate td, .cleanslate dl, .cleanslate tr, .cleanslate dt, .cleanslate ol, .cleanslate form, .cleanslate select, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate table, .cleanslate th, .cleanslate tbody, .cleanslate tfoot, .cleanslate caption, .cleanslate thead, .cleanslate ul, .cleanslate li, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate li, .cleanslate iframe, .cleanslate strong, .cleanslate legend, .cleanslate em, .cleanslate summary, .cleanslate cite, .cleanslate span, .cleanslate input, .cleanslate sup, .cleanslate label, .cleanslate dfn, .cleanslate object, .cleanslate big, .cleanslate q, .cleanslate samp, .cleanslate acronym, .cleanslate small, .cleanslate img, .cleanslate strike, .cleanslate code, .cleanslate sub, .cleanslate ins, .cleanslate textarea, .cleanslate button, .cleanslate var, .cleanslate a, .cleanslate abbr, .cleanslate applet, .cleanslate del, .cleanslate kbd, .cleanslate tt, .cleanslate b, .cleanslate i, .cleanslate hr,
+.cleanslate article, .cleanslate aside, .cleanslate figure, .cleanslate figcaption, .cleanslate footer, .cleanslate header, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate time, .cleanslate mark, .cleanslate audio, .cleanslate video, .cleanslate abbr, .cleanslate address, .cleanslate area, .cleanslate blockquote, .cleanslate canvas, .cleanslate caption, .cleanslate cite, .cleanslate code, .cleanslate colgroup, .cleanslate col, .cleanslate datalist, .cleanslate fieldset, .cleanslate main, .cleanslate map, .cleanslate meta, .cleanslate optgroup, .cleanslate output, .cleanslate progress, .cleanslate svg {
+ background-attachment: scroll !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ /* This rule affects the use of pngfix JavaScript http://dillerdesign.com/experiment/DD_BelatedPNG for IE6, which is used to force the browser to recognise alpha-transparent PNGs files that replace the IE6 lack of PNG transparency. (The rule overrides the VML image that is used to replace the given CSS background-image). If you don't know what that means, then you probably haven't used the pngfix script, and this comment may be ignored :) */
+ background-position: 0 0 !important;
+ background-repeat: repeat !important;
+ border-color: black !important;
+ border-color: currentColor !important;
+ /* `border-color` should match font color. Modern browsers (incl. IE9) allow the use of "currentColor" to match the current font 'color' value <http://www.w3.org/TR/css3-color/#currentcolor>. For older browsers, a default of 'black' is given before this rule. Guideline to support older browsers: if you haven't already declared a border-color for an element, be sure to do so, e.g. when you first declare the border-width. */
+ border-radius: 0 !important;
+ border-style: none !important;
+ border-width: medium !important;
+ bottom: auto !important;
+ clear: none !important;
+ clip: auto !important;
+ color: inherit !important;
+ counter-increment: none !important;
+ counter-reset: none !important;
+ cursor: auto !important;
+ direction: inherit !important;
+ display: inline !important;
+ float: none !important;
+ font-family: inherit !important;
+ /* As with other inherit values, this needs to be set on the root container element */
+ font-size: inherit !important;
+ font-style: inherit !important;
+ font-variant: normal !important;
+ font-weight: inherit !important;
+ height: auto !important;
+ left: auto !important;
+ letter-spacing: normal !important;
+ line-height: inherit !important;
+ list-style-type: inherit !important;
+ /* Could set list-style-type to none */
+ list-style-position: outside !important;
+ list-style-image: none !important;
+ margin: 0 !important;
+ max-height: none !important;
+ max-width: none !important;
+ min-height: 0 !important;
+ min-width: 0 !important;
+ opacity: 1;
+ outline: invert none medium !important;
+ overflow: visible !important;
+ padding: 0 !important;
+ position: static !important;
+ quotes: "" "" !important;
+ right: auto !important;
+ table-layout: auto !important;
+ text-align: inherit !important;
+ text-decoration: inherit !important;
+ text-indent: 0 !important;
+ text-transform: none !important;
+ top: auto !important;
+ unicode-bidi: normal !important;
+ vertical-align: baseline !important;
+ visibility: inherit !important;
+ white-space: normal !important;
+ width: auto !important;
+ word-spacing: normal !important;
+ z-index: auto !important;
+ /* CSS3 */
+ /* Including all prefixes according to http://caniuse.com/ */
+ /* CSS Animations don't cascade, so don't require resetting */
+ background-origin: padding-box !important;
+ -webkit-background-clip: border-box !important;
+ background-clip: border-box !important;
+ background-size: auto !important;
+ -o-border-image: none !important;
+ border-image: none !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ box-sizing: content-box !important;
+ column-count: auto !important;
+ column-gap: normal !important;
+ column-rule: medium none black !important;
+ /* doesn't exist yet but probably will */
+ column-span: 1 !important;
+ column-width: auto !important;
+ font-feature-settings: normal !important;
+ overflow-x: visible !important;
+ overflow-y: visible !important;
+ -webkit-hyphens: manual !important;
+ hyphens: manual !important;
+ -ms-perspective: none !important;
+ -o-perspective: none !important;
+ perspective: none !important;
+ -ms-perspective-origin: 50% 50% !important;
+ -o-perspective-origin: 50% 50% !important;
+ perspective-origin: 50% 50% !important;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ text-shadow: none !important;
+ transition: all 0s ease 0s !important;
+ transform: none !important;
+ transform-origin: 50% 50% !important;
+ transform-style: flat !important;
+ word-break: normal !important;
+}
+
+/* == BLOCK-LEVEL == */
+/* Actually, some of these should be inline-block and other values, but block works fine (TODO: rigorously verify this) */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h3, .cleanslate h5, .cleanslate p, .cleanslate h1, .cleanslate dl, .cleanslate dt, .cleanslate h6, .cleanslate ol, .cleanslate form, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate h2, .cleanslate caption, .cleanslate h4, .cleanslate ul, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate hr,
+.cleanslate article, .cleanslate dialog, .cleanslate figure, .cleanslate footer, .cleanslate header, .cleanslate hgroup, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate audio, .cleanslate video, .cleanslate address, .cleanslate blockquote, .cleanslate colgroup, .cleanslate main, .cleanslate progress, .cleanslate summary {
+ display: block !important;
+}
+
+.cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6 {
+ font-weight: bold !important;
+}
+
+.cleanslate h1:before, .cleanslate h2:before {
+ display: none !important;
+}
+
+.cleanslate h1 {
+ font-size: 2em !important;
+ padding: 0.67em 0 !important;
+}
+
+.cleanslate h2 {
+ font-size: 1.5em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h3 {
+ font-size: 1.17em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h4 {
+ font-size: 1em !important;
+}
+
+.cleanslate h5 {
+ font-size: 0.83em !important;
+}
+
+.cleanslate p {
+ margin: 1em 0 !important;
+}
+
+.cleanslate table {
+ display: table !important;
+}
+
+.cleanslate thead {
+ display: table-header-group !important;
+}
+
+.cleanslate tbody {
+ display: table-row-group !important;
+}
+
+.cleanslate tfoot {
+ display: table-footer-group !important;
+}
+
+.cleanslate tr {
+ display: table-row !important;
+}
+
+.cleanslate th, .cleanslate td {
+ display: table-cell !important;
+ padding: 2px !important;
+}
+
+/* == SPECIFIC ELEMENTS == */
+/* Some of these are browser defaults; some are just useful resets */
+.cleanslate ol, .cleanslate ul {
+ margin: 1em 0 !important;
+}
+
+.cleanslate ul li, .cleanslate ul ul li, .cleanslate ul ul ul li, .cleanslate ol li, .cleanslate ol ol li, .cleanslate ol ol ol li, .cleanslate ul ol ol li, .cleanslate ul ul ol li, .cleanslate ol ul ul li, .cleanslate ol ol ul li {
+ list-style-position: inside !important;
+ margin-top: 0.08em !important;
+}
+
+.cleanslate ol ol, .cleanslate ol ol ol, .cleanslate ul ul, .cleanslate ul ul ul, .cleanslate ol ul, .cleanslate ol ul ul, .cleanslate ol ol ul, .cleanslate ul ol, .cleanslate ul ol ol, .cleanslate ul ul ol {
+ padding-left: 40px !important;
+ margin: 0 !important;
+}
+
+/* helper for general navigation */
+.cleanslate nav ul, .cleanslate nav ol {
+ list-style-type: none !important;
+}
+
+.cleanslate ul, .cleanslate menu {
+ list-style-type: disc !important;
+}
+
+.cleanslate ol {
+ list-style-type: decimal !important;
+}
+
+.cleanslate ol ul, .cleanslate ul ul, .cleanslate menu ul, .cleanslate ol menu, .cleanslate ul menu, .cleanslate menu menu {
+ list-style-type: circle !important;
+}
+
+.cleanslate ol ol ul, .cleanslate ol ul ul, .cleanslate ol menu ul, .cleanslate ol ol menu, .cleanslate ol ul menu, .cleanslate ol menu menu, .cleanslate ul ol ul, .cleanslate ul ul ul, .cleanslate ul menu ul, .cleanslate ul ol menu, .cleanslate ul ul menu, .cleanslate ul menu menu, .cleanslate menu ol ul, .cleanslate menu ul ul, .cleanslate menu menu ul, .cleanslate menu ol menu, .cleanslate menu ul menu, .cleanslate menu menu menu {
+ list-style-type: square !important;
+}
+
+.cleanslate li {
+ display: list-item !important;
+ /* Fixes IE7 issue with positioning of nested bullets */
+ min-height: auto !important;
+ min-width: auto !important;
+ padding-left: 20px !important;
+ /* replace -webkit-padding-start: 40px; */
+}
+
+.cleanslate strong {
+ font-weight: bold !important;
+}
+
+.cleanslate em {
+ font-style: italic !important;
+}
+
+.cleanslate kbd, .cleanslate samp, .cleanslate code, .cleanslate pre {
+ font-family: monospace !important;
+}
+
+.cleanslate a {
+ color: blue !important;
+ text-decoration: underline !important;
+}
+
+.cleanslate a:visited {
+ color: #529 !important;
+}
+
+.cleanslate a, .cleanslate a *, .cleanslate input[type=submit], .cleanslate input[type=button], .cleanslate input[type=radio], .cleanslate input[type=checkbox], .cleanslate select, .cleanslate button {
+ cursor: pointer !important;
+}
+
+.cleanslate button, .cleanslate input[type=submit] {
+ text-align: center !important;
+ padding: 2px 6px 3px !important;
+ border-radius: 4px !important;
+ text-decoration: none !important;
+ font-family: inherit !important;
+ font-size: small !important;
+ background: white !important;
+ -webkit-appearance: push-button !important;
+ color: buttontext !important;
+ border: 1px #a6a6a6 solid !important;
+ background: lightgrey !important;
+ /* Old browsers */
+ background: white;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, white 0%, #dddddd 100%, #d1d1d1 100%, #dddddd 100%) !important;
+ /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#dddddd",GradientType=0 ) !important;
+ /* IE6-9 */
+ -o-box-shadow: 1px 1px 0px #eee !important;
+ box-shadow: 1px 1px 0px #eee !important;
+ outline: initial !important;
+}
+
+.cleanslate button:active, .cleanslate input[type=submit]:active, .cleanslate input[type=button]:active, .cleanslate button:active {
+ background: #3b679e !important;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, #3b679e 0%, #2b88d9 50%, #207cca 51%, #7db9e8 100%) !important;
+ /* W3C */
+ border-color: #5259b0 !important;
+}
+
+.cleanslate button {
+ padding: 1px 6px 2px 6px !important;
+ margin-right: 5px !important;
+}
+
+.cleanslate input[type=hidden] {
+ display: none !important;
+}
+
+/* restore form defaults */
+.cleanslate textarea {
+ -webkit-appearance: textarea !important;
+ background: white !important;
+ padding: 2px !important;
+ margin-left: 4px !important;
+ word-wrap: break-word !important;
+ white-space: pre-wrap !important;
+ font-size: 11px !important;
+ font-family: inherit !important;
+ line-height: 13px !important;
+ resize: both !important;
+}
+
+.cleanslate select, .cleanslate textarea, .cleanslate input {
+ border: 1px solid #ccc !important;
+}
+
+.cleanslate select {
+ font-size: 11px !important;
+ font-family: inherit !important;
+ display: inline-block;
+}
+
+.cleanslate textarea:focus, .cleanslate input:focus {
+ outline: auto 5px -webkit-focus-ring-color !important;
+ outline: initial !important;
+}
+
+.cleanslate input[type=text] {
+ background: white !important;
+ padding: 1px !important;
+ font-family: initial !important;
+ font-size: small !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ border: 1px #2b2b2b solid !important;
+ border-radius: 4px !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ outline: initial !important;
+}
+
+.cleanslate input[type=radio] {
+ margin: 2px 2px 3px 2px !important;
+}
+
+.cleanslate abbr[title], .cleanslate acronym[title], .cleanslate dfn[title] {
+ cursor: help !important;
+ border-bottom-width: 1px !important;
+ border-bottom-style: dotted !important;
+}
+
+.cleanslate ins {
+ background-color: #ff9 !important;
+ color: black !important;
+}
+
+.cleanslate del {
+ text-decoration: line-through !important;
+}
+
+.cleanslate blockquote, .cleanslate q {
+ quotes: none !important;
+ /* HTML5 */
+}
+
+.cleanslate blockquote:before, .cleanslate blockquote:after, .cleanslate q:before, .cleanslate q:after, .cleanslate li:before, .cleanslate li:after {
+ content: "" !important;
+}
+
+.cleanslate input, .cleanslate select {
+ vertical-align: middle !important;
+}
+
+.cleanslate table {
+ border-collapse: collapse !important;
+ border-spacing: 0 !important;
+}
+
+.cleanslate hr {
+ display: block !important;
+ height: 1px !important;
+ border: 0 !important;
+ border-top: 1px solid #ccc !important;
+ margin: 1em 0 !important;
+}
+
+.cleanslate *[dir=rtl] {
+ direction: rtl !important;
+}
+
+.cleanslate mark {
+ background-color: #ff9 !important;
+ color: black !important;
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+.cleanslate menu {
+ padding-left: 40px !important;
+ padding-top: 8px !important;
+}
+
+/* additional helpers */
+.cleanslate [hidden],
+.cleanslate template {
+ display: none !important;
+}
+
+.cleanslate abbr[title] {
+ border-bottom: 1px dotted !important;
+}
+
+.cleanslate sub, .cleanslate sup {
+ font-size: 75% !important;
+ line-height: 0 !important;
+ position: relative !important;
+ vertical-align: baseline !important;
+}
+
+.cleanslate sup {
+ top: -0.5em !important;
+}
+
+.cleanslate sub {
+ bottom: -0.25em !important;
+}
+
+.cleanslate img {
+ border: 0 !important;
+}
+
+.cleanslate figure {
+ margin: 0 !important;
+}
+
+.cleanslate textarea {
+ overflow: auto !important;
+ vertical-align: top !important;
+}
+
+/* == ROOT CONTAINER ELEMENT == */
+/* This contains default values for child elements to inherit */
+.cleanslate {
+ font-size: medium !important;
+ line-height: 1 !important;
+ direction: ltr !important;
+ text-align: left !important;
+ /* for IE, Opera */
+ text-align: start !important;
+ /* recommended W3C Spec */
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
+ color: black !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ text-decoration: none !important;
+ list-style-type: disc !important;
+}
+
+.cleanslate pre {
+ white-space: pre !important;
+}
+/*# sourceMappingURL=cleanslate.css.map */
diff --git a/plugins/jetpack/css/cleanslate.min.css b/plugins/jetpack/css/cleanslate.min.css
new file mode 100644
index 00000000..a5abcab9
--- /dev/null
+++ b/plugins/jetpack/css/cleanslate.min.css
@@ -0,0 +1,7 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*//*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/.cleanslate,.cleanslate a,.cleanslate abbr,.cleanslate acronym,.cleanslate address,.cleanslate applet,.cleanslate area,.cleanslate article,.cleanslate aside,.cleanslate audio,.cleanslate b,.cleanslate big,.cleanslate blockquote,.cleanslate button,.cleanslate canvas,.cleanslate caption,.cleanslate cite,.cleanslate code,.cleanslate col,.cleanslate colgroup,.cleanslate datalist,.cleanslate dd,.cleanslate del,.cleanslate dfn,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate em,.cleanslate fieldset,.cleanslate figcaption,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hr,.cleanslate i,.cleanslate iframe,.cleanslate img,.cleanslate input,.cleanslate ins,.cleanslate kbd,.cleanslate label,.cleanslate legend,.cleanslate li,.cleanslate main,.cleanslate map,.cleanslate mark,.cleanslate menu,.cleanslate meta,.cleanslate nav,.cleanslate object,.cleanslate ol,.cleanslate optgroup,.cleanslate option,.cleanslate output,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate q,.cleanslate samp,.cleanslate section,.cleanslate select,.cleanslate small,.cleanslate span,.cleanslate strike,.cleanslate strong,.cleanslate sub,.cleanslate summary,.cleanslate sup,.cleanslate svg,.cleanslate table,.cleanslate tbody,.cleanslate td,.cleanslate textarea,.cleanslate tfoot,.cleanslate th,.cleanslate thead,.cleanslate time,.cleanslate tr,.cleanslate tt,.cleanslate ul,.cleanslate var,.cleanslate video{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline!important;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto!important;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;background-origin:padding-box!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;background-size:auto!important;-o-border-image:none!important;border-image:none!important;border-radius:0!important;box-shadow:none!important;box-sizing:content-box!important;column-count:auto!important;column-gap:normal!important;column-rule:medium none #000!important;column-span:1!important;column-width:auto!important;font-feature-settings:normal!important;overflow-x:visible!important;overflow-y:visible!important;-webkit-hyphens:manual!important;hyphens:manual!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-ms-perspective-origin:50% 50%!important;-o-perspective-origin:50% 50%!important;perspective-origin:50% 50%!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;text-shadow:none!important;transition:all 0s ease 0s!important;transform:none!important;transform-origin:50% 50%!important;transform-style:flat!important;word-break:normal!important}.cleanslate,.cleanslate address,.cleanslate article,.cleanslate audio,.cleanslate blockquote,.cleanslate caption,.cleanslate colgroup,.cleanslate dd,.cleanslate dialog,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate fieldset,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hgroup,.cleanslate hr,.cleanslate main,.cleanslate menu,.cleanslate nav,.cleanslate ol,.cleanslate option,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate section,.cleanslate summary,.cleanslate ul,.cleanslate video{display:block!important}.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6{font-weight:700!important}.cleanslate h1:before,.cleanslate h2:before{display:none!important}.cleanslate h1{font-size:2em!important;padding:.67em 0!important}.cleanslate h2{font-size:1.5em!important;padding:.83em 0!important}.cleanslate h3{font-size:1.17em!important;padding:.83em 0!important}.cleanslate h4{font-size:1em!important}.cleanslate h5{font-size:.83em!important}.cleanslate p{margin:1em 0!important}.cleanslate table{display:table!important}.cleanslate thead{display:table-header-group!important}.cleanslate tbody{display:table-row-group!important}.cleanslate tfoot{display:table-footer-group!important}.cleanslate tr{display:table-row!important}.cleanslate td,.cleanslate th{display:table-cell!important;padding:2px!important}.cleanslate ol,.cleanslate ul{margin:1em 0!important}.cleanslate ol li,.cleanslate ol ol li,.cleanslate ol ol ol li,.cleanslate ol ol ul li,.cleanslate ol ul ul li,.cleanslate ul li,.cleanslate ul ol ol li,.cleanslate ul ul li,.cleanslate ul ul ol li,.cleanslate ul ul ul li{list-style-position:inside!important;margin-top:.08em!important}.cleanslate ol ol,.cleanslate ol ol ol,.cleanslate ol ol ul,.cleanslate ol ul,.cleanslate ol ul ul,.cleanslate ul ol,.cleanslate ul ol ol,.cleanslate ul ul,.cleanslate ul ul ol,.cleanslate ul ul ul{padding-left:40px!important;margin:0!important}.cleanslate nav ol,.cleanslate nav ul{list-style-type:none!important}.cleanslate menu,.cleanslate ul{list-style-type:disc!important}.cleanslate ol{list-style-type:decimal!important}.cleanslate menu menu,.cleanslate menu ul,.cleanslate ol menu,.cleanslate ol ul,.cleanslate ul menu,.cleanslate ul ul{list-style-type:circle!important}.cleanslate menu menu menu,.cleanslate menu menu ul,.cleanslate menu ol menu,.cleanslate menu ol ul,.cleanslate menu ul menu,.cleanslate menu ul ul,.cleanslate ol menu menu,.cleanslate ol menu ul,.cleanslate ol ol menu,.cleanslate ol ol ul,.cleanslate ol ul menu,.cleanslate ol ul ul,.cleanslate ul menu menu,.cleanslate ul menu ul,.cleanslate ul ol menu,.cleanslate ul ol ul,.cleanslate ul ul menu,.cleanslate ul ul ul{list-style-type:square!important}.cleanslate li{display:list-item!important;min-height:auto!important;min-width:auto!important;padding-left:20px!important}.cleanslate strong{font-weight:700!important}.cleanslate em{font-style:italic!important}.cleanslate code,.cleanslate kbd,.cleanslate pre,.cleanslate samp{font-family:monospace!important}.cleanslate a{color:#00f!important;text-decoration:underline!important}.cleanslate a:visited{color:#529!important}.cleanslate a,.cleanslate a *,.cleanslate button,.cleanslate input[type=button],.cleanslate input[type=checkbox],.cleanslate input[type=radio],.cleanslate input[type=submit],.cleanslate select{cursor:pointer!important}.cleanslate button,.cleanslate input[type=submit]{text-align:center!important;padding:2px 6px 3px!important;border-radius:4px!important;text-decoration:none!important;font-family:inherit!important;font-size:small!important;background:#fff!important;-webkit-appearance:push-button!important;color:buttontext!important;border:1px #a6a6a6 solid!important;background:#d3d3d3!important;background:#fff;background:linear-gradient(to bottom,#fff 0,#ddd 100%,#d1d1d1 100%,#ddd 100%)!important;-o-box-shadow:1px 1px 0 #eee!important;box-shadow:1px 1px 0 #eee!important;outline:initial!important}.cleanslate button:active,.cleanslate input[type=button]:active,.cleanslate input[type=submit]:active{background:#3b679e!important;background:linear-gradient(to bottom,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8 100%)!important;border-color:#5259b0!important}.cleanslate button{padding:1px 6px 2px 6px!important;margin-right:5px!important}.cleanslate input[type=hidden]{display:none!important}.cleanslate textarea{-webkit-appearance:textarea!important;background:#fff!important;padding:2px!important;margin-left:4px!important;word-wrap:break-word!important;white-space:pre-wrap!important;font-size:11px!important;font-family:inherit!important;line-height:13px!important;resize:both!important}.cleanslate input,.cleanslate select,.cleanslate textarea{border:1px solid #ccc!important}.cleanslate select{font-size:11px!important;font-family:inherit!important;display:inline-block}.cleanslate input:focus,.cleanslate textarea:focus{outline:auto 5px -webkit-focus-ring-color!important;outline:initial!important}.cleanslate input[type=text]{background:#fff!important;padding:1px!important;font-family:initial!important;font-size:small!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{border:1px #2b2b2b solid!important;border-radius:4px!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{outline:initial!important}.cleanslate input[type=radio]{margin:2px 2px 3px 2px!important}.cleanslate abbr[title],.cleanslate acronym[title],.cleanslate dfn[title]{cursor:help!important;border-bottom-width:1px!important;border-bottom-style:dotted!important}.cleanslate ins{background-color:#ff9!important;color:#000!important}.cleanslate del{text-decoration:line-through!important}.cleanslate blockquote,.cleanslate q{quotes:none!important}.cleanslate blockquote:after,.cleanslate blockquote:before,.cleanslate li:after,.cleanslate li:before,.cleanslate q:after,.cleanslate q:before{content:""!important}.cleanslate input,.cleanslate select{vertical-align:middle!important}.cleanslate table{border-collapse:collapse!important;border-spacing:0!important}.cleanslate hr{display:block!important;height:1px!important;border:0!important;border-top:1px solid #ccc!important;margin:1em 0!important}.cleanslate [dir=rtl]{direction:rtl!important}.cleanslate mark{background-color:#ff9!important;color:#000!important;font-style:italic!important;font-weight:700!important}.cleanslate menu{padding-left:40px!important;padding-top:8px!important}.cleanslate [hidden],.cleanslate template{display:none!important}.cleanslate abbr[title]{border-bottom:1px dotted!important}.cleanslate sub,.cleanslate sup{font-size:75%!important;line-height:0!important;position:relative!important;vertical-align:baseline!important}.cleanslate sup{top:-.5em!important}.cleanslate sub{bottom:-.25em!important}.cleanslate img{border:0!important}.cleanslate figure{margin:0!important}.cleanslate textarea{overflow:auto!important;vertical-align:top!important}.cleanslate{font-size:medium!important;line-height:1!important;direction:ltr!important;text-align:left!important;text-align:start!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;color:#000!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.cleanslate pre{white-space:pre!important} \ No newline at end of file
diff --git a/plugins/jetpack/css/dashboard-widget-rtl.css b/plugins/jetpack/css/dashboard-widget-rtl.css
index 1399fa13..c9c829b1 100644
--- a/plugins/jetpack/css/dashboard-widget-rtl.css
+++ b/plugins/jetpack/css/dashboard-widget-rtl.css
@@ -22,156 +22,215 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
https://github.com/thoughtbot/bourbon
*/
+#jetpack_summary_widget {
+ /* Widget settings */
+}
#jetpack_summary_widget * {
box-sizing: border-box;
}
-
-#jetpack_summary_widget h2.hndle span.js-toggle-stats_dashboard_widget_control {
- position: absolute;
- top: 8px;
- left: 36px;
-}
-
-#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) {
+#jetpack_summary_widget h2.hndle span {
display: flex;
align-items: center;
}
-
-#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) span {
+#jetpack_summary_widget h2.hndle span span {
padding: 0 0.4em;
}
-
#jetpack_summary_widget h2.hndle svg {
height: 20px;
- margin: .15em .5em 0 0;
+ margin: 0.15em 0.5em 0 0;
+}
+#jetpack_summary_widget .js-toggle-stats_dashboard_widget_control .toggle-indicator:before {
+ content: "\f111";
+ display: inline-block;
+ font: normal 20px/1 dashicons;
}
-
#jetpack_summary_widget .inside {
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget .inside .stats-view-all {
text-align: center;
margin: 1em 0;
}
-
+#jetpack_summary_widget .inside #stats_dashboard_widget_control {
+ display: none;
+ padding: 0 10px;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #stats_dashboard_widget_control .button-primary {
+ float: left;
+}
+#jetpack_summary_widget .inside #dashboard_stats {
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0 10px;
+ /* Widget graph contents */
+}
+#jetpack_summary_widget .inside #dashboard_stats .inside {
+ margin: 10px 0 0 0 !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-graph {
+ margin: 0;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stat-chart {
+ background: none !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info {
+ border-top: 1px solid #dcdcde;
+ margin: 7px -10px 0 -10px;
+ padding: 10px;
+ background: #fcfcfc;
+ box-shadow: inset 0 1px 0 #fff;
+ overflow: hidden;
+ border-radius: 0 0 2px 2px;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info div#active {
+ border-top: 1px solid #dcdcde;
+ margin: 0 -10px;
+ padding: 10px 10px 0 10px;
+ box-shadow: inset 0 1px 0 #fff;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info h3 {
+ font-size: 1em;
+ margin: 0 0 0.5em 0 !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p {
+ margin: 0 0 0.25em;
+ color: #999;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p.widget-loading {
+ margin: 1em 0 0;
+ color: #333;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p a {
+ display: block;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p a.button {
+ display: inline;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts {
+ float: right;
+ width: 50%;
+ padding-left: 3%;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p {
+ white-space: nowrap;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search {
+ float: right;
+ width: 50%;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search p {
+ color: #999;
+}
#jetpack_summary_widget .stats,
#jetpack_summary_widget .widgets,
#jetpack_summary_widget .wpcom-connect {
- padding: .75em;
+ padding: 0.75em;
}
-
#jetpack_summary_widget .wpcom-connect {
- background: #fafafa;
+ background: #f6f7f7;
text-align: center;
}
-
#jetpack_summary_widget .wpcom-connect .jp-emblem {
padding: 5px 0 0 0;
}
-
#jetpack_summary_widget .wpcom-connect svg {
width: 40px;
height: 40px;
}
-
#jetpack_summary_widget .wpcom-connect svg path {
- fill: #00BE28;
+ fill: #069e08;
}
-
#jetpack_summary_widget .wpcom-connect .jp-emblem,
#jetpack_summary_widget .wpcom-connect h3,
#jetpack_summary_widget .wpcom-connect p {
width: 100%;
}
-
#jetpack_summary_widget .wpcom-connect h3 {
font-size: 1.25em;
font-weight: 400;
}
-
#jetpack_summary_widget .wpcom-connect p {
- color: #555d66;
+ color: #50575e;
margin-top: 0;
padding: 0 15px;
}
-
#jetpack_summary_widget .wpcom-connect .actions {
text-align: center;
padding: 15px 0 10px 0;
}
-
#jetpack_summary_widget .wpcom-connect .actions small {
display: block;
}
-
#jetpack_summary_widget .wpcom-connect .actions small a {
color: #999;
}
-
#jetpack_summary_widget .button-jetpack {
- background: #00BE28;
- border-color: #008b1d;
+ background: #069e08;
+ border-color: #046d06;
color: white;
- box-shadow: inset 0 1px 0 #0cff3f, 0 1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 1px 0 #09e80c, 0 1px 0 rgba(0, 0, 0, 0.15);
}
-
#jetpack_summary_widget .button-jetpack:hover, #jetpack_summary_widget .button-jetpack:focus {
- background: #00a523;
- border-color: #007218;
+ background: #058507;
+ border-color: #035404;
color: white;
- box-shadow: inset 0 1px 0 #00f133;
+ box-shadow: inset 0 1px 0 #08cf0a;
}
-
#jetpack_summary_widget .button-jetpack:focus {
- box-shadow: inset 0 1px 0 #00f133, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+ box-shadow: inset 0 1px 0 #08cf0a, 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(30, 140, 190, 0.8);
}
-
#jetpack_summary_widget .button-jetpack:active {
- background: #008b1d;
- border-color: #007218;
+ background: #046d06;
+ border-color: #035404;
color: white;
- box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+ box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(30, 140, 190, 0.8);
}
-
#jetpack_summary_widget .button-jetpack[disabled], #jetpack_summary_widget .button-jetpack:disabled, #jetpack_summary_widget .button-jetpack.button-primary-disabled, #jetpack_summary_widget .button-jetpack.disabled {
- color: #c7d1c9 !important;
- background: #00951f !important;
- border-color: #007218 !important;
+ color: #c7d1c7 !important;
+ background: #057706 !important;
+ border-color: #035404 !important;
text-shadow: none !important;
}
-
#jetpack_summary_widget footer {
- background: #fafafa;
- padding: .75em;
+ background: #f6f7f7;
+ padding: 0.75em 0.75em 0 0.75em;
overflow: hidden;
border-top: 1px solid #ccc;
}
-
#jetpack_summary_widget footer .protect,
#jetpack_summary_widget footer .akismet {
- width: 50%;
float: right;
text-align: right;
+ margin-bottom: 0.75em;
}
-
#jetpack_summary_widget footer .protect {
padding-left: 3%;
+ min-width: 50%;
}
-
#jetpack_summary_widget footer h3 {
+ font-size: 1em;
+ font-weight: normal;
+ margin: 0 0 0.25em 0;
+ padding: 0;
+}
+#jetpack_summary_widget footer p.blocked-count {
font-size: 1.5em;
font-weight: normal;
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget footer p {
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget footer section {
margin: 0;
padding: 0;
@@ -179,8 +238,7 @@ https://github.com/thoughtbot/bourbon
}
/* Hide the widget title's SVG in the Screen Options tab */
-.metabox-prefs label[for="jetpack_summary_widget-hide"] span {
+.metabox-prefs label[for=jetpack_summary_widget-hide] span {
display: none;
}
-
/*# sourceMappingURL=dashboard-widget-rtl.css.map */
diff --git a/plugins/jetpack/css/dashboard-widget-rtl.min.css b/plugins/jetpack/css/dashboard-widget-rtl.min.css
index 458b7ce2..22069e44 100644
--- a/plugins/jetpack/css/dashboard-widget-rtl.min.css
+++ b/plugins/jetpack/css/dashboard-widget-rtl.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/#jetpack_summary_widget *{box-sizing:border-box}#jetpack_summary_widget h2.hndle span.js-toggle-stats_dashboard_widget_control{position:absolute;top:8px;left:36px}#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control){display:flex;align-items:center}#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) span{padding:0 .4em}#jetpack_summary_widget h2.hndle svg{height:20px;margin:.15em .5em 0 0}#jetpack_summary_widget .inside{margin:0;padding:0}#jetpack_summary_widget .inside .stats-view-all{text-align:center;margin:1em 0}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#fafafa;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#00be28}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#555d66;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#00be28;border-color:#008b1d;color:#fff;box-shadow:inset 0 1px 0 #0cff3f,0 1px 0 rgba(0,0,0,.15)}#jetpack_summary_widget .button-jetpack:focus,#jetpack_summary_widget .button-jetpack:hover{background:#00a523;border-color:#007218;color:#fff;box-shadow:inset 0 1px 0 #00f133}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #00f133,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack:active{background:#008b1d;border-color:#007218;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled,#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack[disabled]{color:#c7d1c9!important;background:#00951f!important;border-color:#007218!important;text-shadow:none!important}#jetpack_summary_widget footer{background:#fafafa;padding:.75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .akismet,#jetpack_summary_widget footer .protect{width:50%;float:right;text-align:right}#jetpack_summary_widget footer .protect{padding-left:3%}#jetpack_summary_widget footer h3{font-size:1.5em;font-weight:400;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center}.metabox-prefs label[for=jetpack_summary_widget-hide] span{display:none} \ No newline at end of file
+*/#jetpack_summary_widget *{box-sizing:border-box}#jetpack_summary_widget h2.hndle span{display:flex;align-items:center}#jetpack_summary_widget h2.hndle span span{padding:0 .4em}#jetpack_summary_widget h2.hndle svg{height:20px;margin:.15em .5em 0 0}#jetpack_summary_widget .js-toggle-stats_dashboard_widget_control .toggle-indicator:before{content:"\f111";display:inline-block;font:normal 20px/1 dashicons}#jetpack_summary_widget .inside{margin:0;padding:0}#jetpack_summary_widget .inside .stats-view-all{text-align:center;margin:1em 0}#jetpack_summary_widget .inside #stats_dashboard_widget_control{display:none;padding:0 10px;overflow:hidden}#jetpack_summary_widget .inside #stats_dashboard_widget_control .button-primary{float:left}#jetpack_summary_widget .inside #dashboard_stats{box-sizing:border-box;width:100%;padding:0 10px}#jetpack_summary_widget .inside #dashboard_stats .inside{margin:10px 0 0 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-graph{margin:0}#jetpack_summary_widget .inside #dashboard_stats #stat-chart{background:0 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-info{border-top:1px solid #dcdcde;margin:7px -10px 0 -10px;padding:10px;background:#fcfcfc;box-shadow:inset 0 1px 0 #fff;overflow:hidden;border-radius:0 0 2px 2px}#jetpack_summary_widget .inside #dashboard_stats #stats-info div#active{border-top:1px solid #dcdcde;margin:0 -10px;padding:10px 10px 0 10px;box-shadow:inset 0 1px 0 #fff;overflow:hidden}#jetpack_summary_widget .inside #dashboard_stats #stats-info h3{font-size:1em;margin:0 0 .5em 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-info p{margin:0 0 .25em;color:#999}#jetpack_summary_widget .inside #dashboard_stats #stats-info p.widget-loading{margin:1em 0 0;color:#333}#jetpack_summary_widget .inside #dashboard_stats #stats-info p a{display:block}#jetpack_summary_widget .inside #dashboard_stats #stats-info p a.button{display:inline}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts{float:right;width:50%;padding-left:3%}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p{white-space:nowrap;overflow:hidden}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p a{overflow:hidden;text-overflow:ellipsis}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search{float:right;width:50%}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search p{color:#999}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#f6f7f7;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#069e08}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#50575e;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#069e08;border-color:#046d06;color:#fff;box-shadow:inset 0 1px 0 #09e80c,0 1px 0 rgba(0,0,0,.15)}#jetpack_summary_widget .button-jetpack:focus,#jetpack_summary_widget .button-jetpack:hover{background:#058507;border-color:#035404;color:#fff;box-shadow:inset 0 1px 0 #08cf0a}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #08cf0a,0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack:active{background:#046d06;border-color:#035404;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled,#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack[disabled]{color:#c7d1c7!important;background:#057706!important;border-color:#035404!important;text-shadow:none!important}#jetpack_summary_widget footer{background:#f6f7f7;padding:.75em .75em 0 .75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .akismet,#jetpack_summary_widget footer .protect{float:right;text-align:right;margin-bottom:.75em}#jetpack_summary_widget footer .protect{padding-left:3%;min-width:50%}#jetpack_summary_widget footer h3{font-size:1em;font-weight:400;margin:0 0 .25em 0;padding:0}#jetpack_summary_widget footer p.blocked-count{font-size:1.5em;font-weight:400;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center}.metabox-prefs label[for=jetpack_summary_widget-hide] span{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/css/dashboard-widget.css b/plugins/jetpack/css/dashboard-widget.css
index 369644f3..b5776501 100644
--- a/plugins/jetpack/css/dashboard-widget.css
+++ b/plugins/jetpack/css/dashboard-widget.css
@@ -22,156 +22,215 @@ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
https://github.com/thoughtbot/bourbon
*/
+#jetpack_summary_widget {
+ /* Widget settings */
+}
#jetpack_summary_widget * {
box-sizing: border-box;
}
-
-#jetpack_summary_widget h2.hndle span.js-toggle-stats_dashboard_widget_control {
- position: absolute;
- top: 8px;
- right: 36px;
-}
-
-#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) {
+#jetpack_summary_widget h2.hndle span {
display: flex;
align-items: center;
}
-
-#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) span {
+#jetpack_summary_widget h2.hndle span span {
padding: 0 0.4em;
}
-
#jetpack_summary_widget h2.hndle svg {
height: 20px;
- margin: .15em 0 0 .5em;
+ margin: 0.15em 0 0 0.5em;
+}
+#jetpack_summary_widget .js-toggle-stats_dashboard_widget_control .toggle-indicator:before {
+ content: "\f111";
+ display: inline-block;
+ font: normal 20px/1 dashicons;
}
-
#jetpack_summary_widget .inside {
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget .inside .stats-view-all {
text-align: center;
margin: 1em 0;
}
-
+#jetpack_summary_widget .inside #stats_dashboard_widget_control {
+ display: none;
+ padding: 0 10px;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #stats_dashboard_widget_control .button-primary {
+ float: right;
+}
+#jetpack_summary_widget .inside #dashboard_stats {
+ box-sizing: border-box;
+ width: 100%;
+ padding: 0 10px;
+ /* Widget graph contents */
+}
+#jetpack_summary_widget .inside #dashboard_stats .inside {
+ margin: 10px 0 0 0 !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-graph {
+ margin: 0;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stat-chart {
+ background: none !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info {
+ border-top: 1px solid #dcdcde;
+ margin: 7px -10px 0 -10px;
+ padding: 10px;
+ background: #fcfcfc;
+ box-shadow: inset 0 1px 0 #fff;
+ overflow: hidden;
+ border-radius: 0 0 2px 2px;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info div#active {
+ border-top: 1px solid #dcdcde;
+ margin: 0 -10px;
+ padding: 10px 10px 0 10px;
+ box-shadow: inset 0 1px 0 #fff;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info h3 {
+ font-size: 1em;
+ margin: 0 0 0.5em 0 !important;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p {
+ margin: 0 0 0.25em;
+ color: #999;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p.widget-loading {
+ margin: 1em 0 0;
+ color: #333;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p a {
+ display: block;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info p a.button {
+ display: inline;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts {
+ float: left;
+ width: 50%;
+ padding-right: 3%;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p {
+ white-space: nowrap;
+ overflow: hidden;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search {
+ float: left;
+ width: 50%;
+}
+#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search p {
+ color: #999;
+}
#jetpack_summary_widget .stats,
#jetpack_summary_widget .widgets,
#jetpack_summary_widget .wpcom-connect {
- padding: .75em;
+ padding: 0.75em;
}
-
#jetpack_summary_widget .wpcom-connect {
- background: #fafafa;
+ background: #f6f7f7;
text-align: center;
}
-
#jetpack_summary_widget .wpcom-connect .jp-emblem {
padding: 5px 0 0 0;
}
-
#jetpack_summary_widget .wpcom-connect svg {
width: 40px;
height: 40px;
}
-
#jetpack_summary_widget .wpcom-connect svg path {
- fill: #00BE28;
+ fill: #069e08;
}
-
#jetpack_summary_widget .wpcom-connect .jp-emblem,
#jetpack_summary_widget .wpcom-connect h3,
#jetpack_summary_widget .wpcom-connect p {
width: 100%;
}
-
#jetpack_summary_widget .wpcom-connect h3 {
font-size: 1.25em;
font-weight: 400;
}
-
#jetpack_summary_widget .wpcom-connect p {
- color: #555d66;
+ color: #50575e;
margin-top: 0;
padding: 0 15px;
}
-
#jetpack_summary_widget .wpcom-connect .actions {
text-align: center;
padding: 15px 0 10px 0;
}
-
#jetpack_summary_widget .wpcom-connect .actions small {
display: block;
}
-
#jetpack_summary_widget .wpcom-connect .actions small a {
color: #999;
}
-
#jetpack_summary_widget .button-jetpack {
- background: #00BE28;
- border-color: #008b1d;
+ background: #069e08;
+ border-color: #046d06;
color: white;
- box-shadow: inset 0 1px 0 #0cff3f, 0 1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 1px 0 #09e80c, 0 1px 0 rgba(0, 0, 0, 0.15);
}
-
#jetpack_summary_widget .button-jetpack:hover, #jetpack_summary_widget .button-jetpack:focus {
- background: #00a523;
- border-color: #007218;
+ background: #058507;
+ border-color: #035404;
color: white;
- box-shadow: inset 0 1px 0 #00f133;
+ box-shadow: inset 0 1px 0 #08cf0a;
}
-
#jetpack_summary_widget .button-jetpack:focus {
- box-shadow: inset 0 1px 0 #00f133, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+ box-shadow: inset 0 1px 0 #08cf0a, 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(30, 140, 190, 0.8);
}
-
#jetpack_summary_widget .button-jetpack:active {
- background: #008b1d;
- border-color: #007218;
+ background: #046d06;
+ border-color: #035404;
color: white;
- box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);
+ box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #4f94d4, 0 0 2px 1px rgba(30, 140, 190, 0.8);
}
-
#jetpack_summary_widget .button-jetpack[disabled], #jetpack_summary_widget .button-jetpack:disabled, #jetpack_summary_widget .button-jetpack.button-primary-disabled, #jetpack_summary_widget .button-jetpack.disabled {
- color: #c7d1c9 !important;
- background: #00951f !important;
- border-color: #007218 !important;
+ color: #c7d1c7 !important;
+ background: #057706 !important;
+ border-color: #035404 !important;
text-shadow: none !important;
}
-
#jetpack_summary_widget footer {
- background: #fafafa;
- padding: .75em;
+ background: #f6f7f7;
+ padding: 0.75em 0.75em 0 0.75em;
overflow: hidden;
border-top: 1px solid #ccc;
}
-
#jetpack_summary_widget footer .protect,
#jetpack_summary_widget footer .akismet {
- width: 50%;
float: left;
text-align: left;
+ margin-bottom: 0.75em;
}
-
#jetpack_summary_widget footer .protect {
padding-right: 3%;
+ min-width: 50%;
}
-
#jetpack_summary_widget footer h3 {
+ font-size: 1em;
+ font-weight: normal;
+ margin: 0 0 0.25em 0;
+ padding: 0;
+}
+#jetpack_summary_widget footer p.blocked-count {
font-size: 1.5em;
font-weight: normal;
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget footer p {
margin: 0;
padding: 0;
}
-
#jetpack_summary_widget footer section {
margin: 0;
padding: 0;
@@ -179,8 +238,7 @@ https://github.com/thoughtbot/bourbon
}
/* Hide the widget title's SVG in the Screen Options tab */
-.metabox-prefs label[for="jetpack_summary_widget-hide"] span {
+.metabox-prefs label[for=jetpack_summary_widget-hide] span {
display: none;
}
-
/*# sourceMappingURL=dashboard-widget.css.map */
diff --git a/plugins/jetpack/css/dashboard-widget.min.css b/plugins/jetpack/css/dashboard-widget.min.css
index 2693413b..144c71df 100644
--- a/plugins/jetpack/css/dashboard-widget.min.css
+++ b/plugins/jetpack/css/dashboard-widget.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/#jetpack_summary_widget *{box-sizing:border-box}#jetpack_summary_widget h2.hndle span.js-toggle-stats_dashboard_widget_control{position:absolute;top:8px;right:36px}#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control){display:flex;align-items:center}#jetpack_summary_widget h2.hndle span:not(.js-toggle-stats_dashboard_widget_control) span{padding:0 .4em}#jetpack_summary_widget h2.hndle svg{height:20px;margin:.15em 0 0 .5em}#jetpack_summary_widget .inside{margin:0;padding:0}#jetpack_summary_widget .inside .stats-view-all{text-align:center;margin:1em 0}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#fafafa;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#00be28}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#555d66;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#00be28;border-color:#008b1d;color:#fff;box-shadow:inset 0 1px 0 #0cff3f,0 1px 0 rgba(0,0,0,.15)}#jetpack_summary_widget .button-jetpack:focus,#jetpack_summary_widget .button-jetpack:hover{background:#00a523;border-color:#007218;color:#fff;box-shadow:inset 0 1px 0 #00f133}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #00f133,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack:active{background:#008b1d;border-color:#007218;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled,#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack[disabled]{color:#c7d1c9!important;background:#00951f!important;border-color:#007218!important;text-shadow:none!important}#jetpack_summary_widget footer{background:#fafafa;padding:.75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .akismet,#jetpack_summary_widget footer .protect{width:50%;float:left;text-align:left}#jetpack_summary_widget footer .protect{padding-right:3%}#jetpack_summary_widget footer h3{font-size:1.5em;font-weight:400;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center}.metabox-prefs label[for=jetpack_summary_widget-hide] span{display:none} \ No newline at end of file
+*/#jetpack_summary_widget *{box-sizing:border-box}#jetpack_summary_widget h2.hndle span{display:flex;align-items:center}#jetpack_summary_widget h2.hndle span span{padding:0 .4em}#jetpack_summary_widget h2.hndle svg{height:20px;margin:.15em 0 0 .5em}#jetpack_summary_widget .js-toggle-stats_dashboard_widget_control .toggle-indicator:before{content:"\f111";display:inline-block;font:normal 20px/1 dashicons}#jetpack_summary_widget .inside{margin:0;padding:0}#jetpack_summary_widget .inside .stats-view-all{text-align:center;margin:1em 0}#jetpack_summary_widget .inside #stats_dashboard_widget_control{display:none;padding:0 10px;overflow:hidden}#jetpack_summary_widget .inside #stats_dashboard_widget_control .button-primary{float:right}#jetpack_summary_widget .inside #dashboard_stats{box-sizing:border-box;width:100%;padding:0 10px}#jetpack_summary_widget .inside #dashboard_stats .inside{margin:10px 0 0 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-graph{margin:0}#jetpack_summary_widget .inside #dashboard_stats #stat-chart{background:0 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-info{border-top:1px solid #dcdcde;margin:7px -10px 0 -10px;padding:10px;background:#fcfcfc;box-shadow:inset 0 1px 0 #fff;overflow:hidden;border-radius:0 0 2px 2px}#jetpack_summary_widget .inside #dashboard_stats #stats-info div#active{border-top:1px solid #dcdcde;margin:0 -10px;padding:10px 10px 0 10px;box-shadow:inset 0 1px 0 #fff;overflow:hidden}#jetpack_summary_widget .inside #dashboard_stats #stats-info h3{font-size:1em;margin:0 0 .5em 0!important}#jetpack_summary_widget .inside #dashboard_stats #stats-info p{margin:0 0 .25em;color:#999}#jetpack_summary_widget .inside #dashboard_stats #stats-info p.widget-loading{margin:1em 0 0;color:#333}#jetpack_summary_widget .inside #dashboard_stats #stats-info p a{display:block}#jetpack_summary_widget .inside #dashboard_stats #stats-info p a.button{display:inline}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts{float:left;width:50%;padding-right:3%}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p{white-space:nowrap;overflow:hidden}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-posts .stats-section-inner p a{overflow:hidden;text-overflow:ellipsis}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search{float:left;width:50%}#jetpack_summary_widget .inside #dashboard_stats #stats-info #top-search p{color:#999}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#f6f7f7;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#069e08}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#50575e;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#069e08;border-color:#046d06;color:#fff;box-shadow:inset 0 1px 0 #09e80c,0 1px 0 rgba(0,0,0,.15)}#jetpack_summary_widget .button-jetpack:focus,#jetpack_summary_widget .button-jetpack:hover{background:#058507;border-color:#035404;color:#fff;box-shadow:inset 0 1px 0 #08cf0a}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #08cf0a,0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack:active{background:#046d06;border-color:#035404;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5),0 0 0 1px #4f94d4,0 0 2px 1px rgba(30,140,190,.8)}#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled,#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack[disabled]{color:#c7d1c7!important;background:#057706!important;border-color:#035404!important;text-shadow:none!important}#jetpack_summary_widget footer{background:#f6f7f7;padding:.75em .75em 0 .75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .akismet,#jetpack_summary_widget footer .protect{float:left;text-align:left;margin-bottom:.75em}#jetpack_summary_widget footer .protect{padding-right:3%;min-width:50%}#jetpack_summary_widget footer h3{font-size:1em;font-weight:400;margin:0 0 .25em 0;padding:0}#jetpack_summary_widget footer p.blocked-count{font-size:1.5em;font-weight:400;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center}.metabox-prefs label[for=jetpack_summary_widget-hide] span{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-admin-rtl.css b/plugins/jetpack/css/jetpack-admin-rtl.css
index e6c5b174..c9bf7b29 100644
--- a/plugins/jetpack/css/jetpack-admin-rtl.css
+++ b/plugins/jetpack/css/jetpack-admin-rtl.css
@@ -5,12 +5,10 @@
width: 100%;
margin: 0 auto;
}
-
.j-row:before, .j-row:after {
content: " ";
display: table;
}
-
.j-row:after {
clear: both;
}
@@ -26,50 +24,57 @@
.j-sm-5 {
width: 41.66667%;
}
+
.j-sm-7 {
width: 58.33333%;
}
+
.j-sm-12 {
width: 100%;
}
}
-
@media (min-width: 530px) {
.j-md-4 {
width: 33.33333%;
}
+
.j-md-6 {
width: 50%;
}
+
.j-md-8 {
width: 66.66667%;
}
+
.j-md-12 {
width: 100%;
}
}
-
@media (min-width: 782px) {
.j-lrg-4 {
width: 33.33333%;
}
+
.j-lrg-5 {
width: 41.66667%;
}
+
.j-lrg-6 {
width: 50%;
}
+
.j-lrg-7 {
width: 58.33333%;
}
+
.j-lrg-8 {
width: 66.66667%;
}
+
.j-lrg-12 {
width: 100%;
}
}
-
@keyframes jetpack-candy {
0% {
transform: scale(1);
@@ -84,34 +89,31 @@
transform: scale(1);
}
}
-
@keyframes jetpack-loading-fade {
0% {
- opacity: .5;
+ opacity: 0.5;
}
50% {
opacity: 1;
}
100% {
- opacity: .5;
+ opacity: 0.5;
}
}
-
@keyframes jetpack-rotate {
to {
transform: rotate(-1turn);
}
}
-
.button,
.download-jetpack {
- transition: all .1s ease-in-out;
+ transition: all 0.1s ease-in-out;
}
.jp-button, .jp-button--settings {
display: inline-block;
position: relative;
- padding: 0.76923em 1.46154em;
+ padding: 0.7692307692em 1.4615384615em;
color: #efefef;
font-weight: bold;
font-size: 0.9285714286em;
@@ -120,16 +122,13 @@
background: #6f7476;
border-radius: 3px;
}
-
.jp-button:visited, .jp-button--settings:visited {
color: #efefef;
}
-
.jp-button:hover, .jp-button--settings:hover, .jp-button:focus, .jp-button--settings:focus {
color: #fff;
background: #57972d;
}
-
.jp-button:active, .jp-button--settings:active {
background: #57972d;
opacity: 0.8;
@@ -139,16 +138,13 @@
background: #93b45f;
color: #e8eedf;
}
-
.jp-button--settings:visited {
color: #e8eedf;
}
-
.jp-button--settings:hover, .jp-button--settings:focus {
background: #9fbd72;
color: #fff;
}
-
.jp-button--settings.current {
background: #3c6621;
color: #fff;
@@ -158,7 +154,7 @@
.download-jetpack {
display: inline-block;
position: relative;
- padding: 0.64286em 1.08696em 0.53571em;
+ padding: 0.6428571429em 1.0869565217em 0.5357142857em;
color: #fff;
font-weight: 400;
font-size: 20px;
@@ -168,28 +164,23 @@
border-radius: 6px;
box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:visited {
color: #fff;
}
-
.download-jetpack:hover, .download-jetpack:focus {
color: #fff;
background: #57972d;
box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:active {
top: 6px;
box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:active:after {
top: -6px;
}
-
.download-jetpack:before {
- content: '';
+ content: "";
display: inline-block;
position: relative;
top: -2px;
@@ -200,19 +191,17 @@
background: url("../images/connect-plug.svg") center center no-repeat;
background-size: 100%;
}
-
.download-jetpack:after {
- content: '';
+ content: "";
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
}
-
@media (max-width: 1147px) {
.download-jetpack {
- font-size: 1.28571em;
+ font-size: 1.2857142857em;
}
.download-jetpack:before {
top: -1px;
@@ -220,16 +209,14 @@
height: 23px;
}
}
-
@media (max-width: 900px) {
.download-jetpack:active {
top: 0;
}
}
-
@media (max-width: 530px) {
.download-jetpack {
- font-size: 1.21429em;
+ font-size: 1.2142857143em;
font-weight: 600;
}
.download-jetpack:before {
@@ -248,7 +235,7 @@
.jp-spinner__outer {
margin: auto;
box-sizing: border-box;
- border: .1em solid transparent;
+ border: 0.1em solid transparent;
border-radius: 50%;
border-top-color: #00aadc;
animation: 3s linear infinite;
@@ -265,17 +252,16 @@
width: 100%;
height: 100%;
border-left-color: #00aadc;
- opacity: .4;
+ opacity: 0.4;
}
@font-face {
- font-family: 'automatticons';
+ font-family: "automatticons";
src: url("../_inc/fonts/automatticons/automatticons.eot");
src: url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/automatticons/automatticons.woff") format("woff"), url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"), url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg");
font-weight: normal;
font-style: normal;
}
-
.nav-horizontal:after {
content: ".";
display: block;
@@ -283,16 +269,13 @@
clear: both;
visibility: hidden;
}
-
.nav-horizontal a {
display: inline-block;
}
-
.nav-horizontal li {
position: relative;
float: right;
}
-
.nav-horizontal ul {
margin: 0;
padding: 0;
@@ -309,7 +292,6 @@
max-width: 950px;
margin: 0 auto;
}
-
.wrap.inner li,
.page-content li {
line-height: 23px;
@@ -323,14 +305,13 @@
@media (max-width: 1147px) {
.wrap.inner {
- background: #f9f9f9;
+ background: #f6f7f7;
padding: 15px;
}
}
-
@media (max-width: 530px) {
.wrap.inner {
- margin-top: 1.71429em;
+ margin-top: 1.7142857143em;
}
}
@@ -338,17 +319,16 @@
position: relative;
z-index: 10;
}
-
@media (max-width: 1147px) {
.page-content.about {
- background: #f9f9f9;
+ background: #f6f7f7;
padding: 15px;
}
}
@media (max-width: 1147px) {
.page-content.configure {
- background: #f9f9f9;
+ background: #f6f7f7;
}
}
@@ -366,12 +346,10 @@
.header-nav li {
line-height: 60px;
}
-
.header-nav a {
- padding: 0 0.71429em;
+ padding: 0 0.7142857143em;
line-height: 24px;
}
-
.header-nav .jetpack-logo a {
display: inline-block;
position: relative;
@@ -384,14 +362,12 @@
line-height: 60px;
font-weight: normal;
}
-
.header-nav .jetpack-logo a span {
text-indent: -9999px;
visibility: hidden;
}
-
.header-nav .jetpack-logo a:before {
- content: '';
+ content: "";
position: absolute;
top: 0;
right: 0;
@@ -399,7 +375,6 @@
height: 100%;
background-size: 183px 32px;
}
-
.header-nav .jetpack-modules + .jetpack-modules {
margin-right: 15px;
}
@@ -407,11 +382,9 @@
.main-nav {
float: right;
}
-
.main-nav li {
margin: 0;
}
-
@media (max-width: 900px) {
.main-nav {
font-size: 13px;
@@ -421,15 +394,12 @@
.jetpack-pagestyles #screen-meta {
margin: 0;
}
-
.jetpack-pagestyles #screen-meta-links .screen-meta-toggle {
z-index: 2;
}
-
.jetpack-pagestyles #screen-options-link-wrap, .jetpack-pagestyles #contextual-help-link-wrap {
border: none;
}
-
.jetpack-pagestyles .update-nag {
display: none;
}
@@ -440,7 +410,6 @@
top: 50%;
width: 100%;
}
-
.loading span {
color: #999;
}
@@ -457,29 +426,25 @@
box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1);
z-index: 500;
}
-
.modal .close {
position: absolute;
top: 0;
left: 0;
- font: 300 1.71429em "genericons" !important;
+ font: 300 1.7142857143em "genericons" !important;
color: #777;
- content: '\f405';
+ content: "\f405";
display: inline-block;
- padding: 0.28571em 0.71429em 0.42857em;
+ padding: 0.2857142857em 0.7142857143em 0.4285714286em;
z-index: 5;
}
-
.modal .close:hover {
- background: #eee;
+ background: #f0f0f1;
opacity: 0.8;
}
-
.modal .close:active {
- background: #eee;
+ background: #f0f0f1;
opacity: 0.4;
}
-
.modal .content-container {
position: absolute;
top: 0;
@@ -487,15 +452,13 @@
bottom: 0;
right: 0;
overflow: auto;
- padding: 2.14286em;
+ padding: 2.1428571429em;
}
-
.modal .content {
margin: 0 auto;
max-width: 900px;
text-align: right;
}
-
.modal h2 {
text-align: right;
margin-top: 0;
@@ -504,46 +467,38 @@
line-height: 32px;
text-shadow: 0 1px 1px #fff;
}
-
@media (max-width: 530px) {
.modal h2 {
font-size: 26px;
}
}
-
.modal h5 {
clear: right;
}
-
.modal p {
- font-size: 1.23077em;
+ font-size: 1.2307692308em;
}
-
.modal footer {
position: absolute;
right: 0;
bottom: 0;
width: 100%;
padding: 12px 20px;
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
background: #fff;
text-align: left;
}
-
.modal footer ul {
margin: 0;
}
-
.modal footer li {
display: inline-block;
margin: 0;
}
-
.modal .button-secondary,
.modal .button-primary:active {
vertical-align: baseline;
}
-
@media (max-width: 900px) {
.modal {
bottom: 5%;
@@ -554,14 +509,12 @@
top: 38px;
}
}
-
@media (max-width: 782px) {
.modal {
top: 66px;
margin-right: 0;
}
}
-
@media (max-width: 600px) {
.modal {
top: 10px;
@@ -575,17 +528,14 @@
float: left;
margin: 0 30px 8px 0;
}
-
.jp-info-img img {
- border: 1px solid #ddd;
+ border: 1px solid #dcdcde;
max-width: 100%;
height: auto;
}
-
.jp-info-img img:first-child {
margin-top: 0;
}
-
@media (max-width: 782px) {
.jp-info-img {
float: none;
@@ -611,40 +561,34 @@
}
.footer {
- margin-top: 1.42857em;
+ margin-top: 1.4285714286em;
position: relative;
- padding: 10em 0 4.28571em;
+ padding: 10em 0 4.2857142857em;
text-align: center;
}
-
.footer:before, .footer:after {
- content: '';
+ content: "";
position: absolute;
right: 0;
pointer-events: none;
}
-
.footer:before {
top: 0;
margin-top: -1px;
width: 100%;
height: 195px;
}
-
.footer:after {
display: none;
}
-
.footer .download-jetpack {
margin-bottom: 33px;
}
-
@media (min-width: 1147px) {
.footer {
padding-bottom: 35px;
}
}
-
@media (max-width: 1147px) {
.footer {
padding-top: 165px;
@@ -658,26 +602,22 @@
overflow: hidden;
}
}
-
@media (max-width: 900px) {
.footer {
padding-top: 146px;
}
}
-
@media (max-width: 782px) {
.footer {
margin-top: 0;
}
}
-
@media (max-width: 530px) {
.footer {
margin-top: 0;
padding-top: 135px;
}
}
-
@media (max-width: 320px) {
.footer {
padding-top: 76px;
@@ -687,27 +627,23 @@
.footer nav {
max-width: 100%;
}
-
.footer nav a,
.footer nav a:visited {
padding: 4px 6px;
color: #999;
}
-
.footer nav a:hover, .footer nav a:focus,
.footer nav a:visited:hover,
.footer nav a:visited:focus {
color: #81A844;
}
-
@media (max-width: 1147px) {
.footer nav a:hover, .footer nav a:focus,
- .footer nav a:visited:hover,
- .footer nav a:visited:focus {
+.footer nav a:visited:hover,
+.footer nav a:visited:focus {
color: #81a844;
}
}
-
@media (max-width: 530px) {
.footer nav li {
display: block;
@@ -724,38 +660,33 @@
.primary {
padding: 25px 15px 10px 15px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
.secondary-footer {
margin: 0 auto;
}
-
.secondary-footer li {
margin-left: 5px;
}
-
@media (min-width: 782px) {
.secondary-footer {
padding: 8px 15px 10px;
margin-bottom: 30px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
}
-
@media (min-width: 1147px) {
.secondary-footer {
margin-bottom: 0;
}
}
-
@media (max-width: 782px) {
.secondary-footer {
padding: 8px 15px 8px;
border-bottom: none;
}
}
-
@media (max-width: 530px) {
.secondary-footer {
margin: 0;
@@ -764,7 +695,7 @@
font-weight: 400;
}
.secondary-footer a {
- border-top: 1px solid #eee;
+ border-top: 1px solid #f0f0f1;
}
}
@@ -772,11 +703,10 @@
margin: 0;
padding: 0 6px;
color: #bbb;
- font-size: 0.78571em;
+ font-size: 0.7857142857em;
font-family: "Gill Sans", "Gill Sans MT", Helvetica, Arial, sans-serif;
text-transform: uppercase;
}
-
.footer .a8c-attribution a {
display: inline-block;
position: relative;
@@ -784,30 +714,27 @@
left: 9999px;
outline: 0;
}
-
.footer .a8c-attribution a:after {
- content: 'A';
+ content: "A";
position: absolute;
top: 2px;
left: -9999px;
height: 100%;
color: #999;
- font-size: 1.54545em;
+ font-size: 1.5454545455em;
font-family: "automatticons";
text-align: center;
}
-
.footer .a8c-attribution a:hover:after {
- animation: jetpack-candy .4s ease-in-out;
+ animation: jetpack-candy 0.4s ease-in-out;
}
@media (min-width: 782px) {
.secondary {
padding: 0 15px 10px 15px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
}
-
@media (min-width: 1147px) {
.secondary {
padding: 0 15px 10px 15px;
@@ -823,7 +750,6 @@
position: relative;
z-index: 2;
}
-
.jetpack-message.is-opt-in {
margin: 50px 0 0;
max-width: 100%;
@@ -834,61 +760,51 @@
font-size: 13px;
text-align: center;
}
-
.subhead .jetpack-message.is-opt-in {
margin: 0;
padding-bottom: 0;
background: transparent;
box-shadow: none;
}
-
.subhead .jetpack-message.is-opt-in .jp-button, .subhead .jetpack-message.is-opt-in .jp-button--settings {
display: inline-block;
}
-
.jetpack-message.is-opt-in p {
color: #3c4549;
}
-
.jetpack-message.is-opt-in .jp-button, .jetpack-message.is-opt-in .jp-button--settings {
margin-top: 15px;
display: none;
}
-
.jetpack-message .squeezer h2 {
font-size: 1em;
}
-
.jetpack-message h2 {
color: #fff;
margin: 0;
}
-
.jetpack-message p {
color: #fff;
margin: 0;
opacity: 0.7;
}
-
.jetpack-message .squeezer {
padding: 23px 80px 23px 23px;
position: relative;
text-align: right;
}
-
.jetpack-message .squeezer:before {
color: #fff;
- content: '\f418';
- font-family: 'Genericons';
+ content: "\f418";
+ font-family: "Genericons";
font-size: 33px;
height: 33px;
right: 25px;
opacity: 0.6;
position: absolute;
top: 23px;
- top: calc( 50% - 22px);
+ top: calc( 50% - 22px );
}
-
@media (max-width: 530px) {
.jetpack-message .squeezer {
padding: 23px;
@@ -897,19 +813,15 @@
display: none;
}
}
-
.jetpack-message .squeezer a {
color: #FFF;
border-bottom: 1px solid #D5E4BD;
}
-
.jetpack-message .squeezer a:hover {
border-bottom: 1px solid #F1F6E9;
}
-
-.jetpack-message.error .squeezer:before,
-.jetpack-message.jetpack-err .squeezer:before {
- content: '\f414';
+.jetpack-message.error .squeezer:before, .jetpack-message.jetpack-err .squeezer:before {
+ content: "\f414";
}
.configure-module .jetpack-message {
@@ -928,7 +840,6 @@
width: 100%;
}
}
-
@media screen and (max-width: 515px) {
.jp-frame .header-nav {
padding-bottom: 10px;
@@ -958,7 +869,6 @@
padding: 0 10px;
}
}
-
#ie-legacy-notice .dops-notice__content {
display: inline-block;
margin-right: 10px;
@@ -971,13 +881,12 @@
.configure .frame.top {
border: none;
box-shadow: none;
- padding-top: 1.42857em;
+ padding-top: 1.4285714286em;
position: relative;
top: auto;
}
-
.configure .frame.top.fixed {
- background: #f9f9f9;
+ background: #f6f7f7;
border-bottom: 1px solid #e9e9e9;
padding-right: 160px;
margin-top: -6px;
@@ -986,19 +895,17 @@
top: 32px;
width: 100%;
z-index: 4;
- box-shadow: 0 2px 2px -2px #eee;
+ box-shadow: 0 2px 2px -2px #f0f0f1;
}
-
@media (max-width: 782px) {
.configure .frame.top.fixed {
border: none;
box-shadow: none;
- padding-top: 1.42857em;
+ padding-top: 1.4285714286em;
position: relative;
top: auto;
}
}
-
@media (max-width: 600px) {
.configure .frame.top.fixed {
top: 0;
@@ -1014,13 +921,11 @@
float: left;
margin-top: 10px;
}
-
@media (max-width: 782px) {
.filter-search {
display: block;
}
}
-
@media (max-width: 530px) {
.filter-search {
display: none;
@@ -1031,80 +936,64 @@
border: none;
margin-bottom: 0;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th {
border-right: 0;
padding: 14px 4px 0;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th input {
display: block;
}
-
.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon {
display: inline-block;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active th,
.table-bordered.jetpack-modules tr.jetpack-module.active td {
background: #f7fcfe;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active th {
border-right: 4px solid #2ea2cc;
padding-right: 0px;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child {
border-right: 4px solid #2ea2cc;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.unavailable input {
display: none;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.deprecated span {
color: #888;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg {
margin-left: 10px;
color: #555;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th,
.table-bordered.jetpack-modules tr.jetpack-module td {
background: #fff;
margin: 0;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}
-
.table-bordered.jetpack-modules tr.jetpack-module td {
padding: 10px 14px 8px 10px;
line-height: 25px;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td:first-child {
border-right: 4px solid #fff;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
float: left;
padding: 0 0 1px;
visibility: visible;
position: static;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span {
margin-right: 5px;
}
-
@media (max-width: 530px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: none;
}
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: block;
@@ -1112,72 +1001,60 @@
visibility: visible;
}
}
-
+.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span.unavailable_reason {
+ color: #000;
+}
.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a {
opacity: 1;
}
-
.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable {
opacity: 0.3;
}
-
.table-bordered.jetpack-modules > thead > tr > th {
border: 0;
vertical-align: middle;
}
-
.table-bordered.jetpack-modules > thead > tr > th:last-child {
padding-left: 0;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules > thead > tr > th:last-child {
padding-right: 0;
}
}
-
.table-bordered.jetpack-modules td {
background: #fff;
}
-
.table-bordered.jetpack-modules #doaction {
margin-top: 0;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules #doaction {
padding: 10px 7px;
}
}
-
.table-bordered.jetpack-modules .checkall {
margin-top: 1px;
}
-
.table-bordered.jetpack-modules .filter-search {
margin-top: 8px;
}
-
.table-bordered.jetpack-modules .genericon {
color: #999;
display: none;
margin: 7px 3px 0;
}
-
@media (max-width: 900px) {
.table-bordered.jetpack-modules .genericon {
display: inline-block;
}
}
-
.table-bordered.jetpack-modules .med {
width: 70px;
}
-
.table-bordered.jetpack-modules .sm {
width: 30px;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules .check-column {
width: 50px;
@@ -1194,33 +1071,27 @@
padding: 0 1.5em 1em;
overflow: hidden;
}
-
.wrap h2 {
font-size: 24px;
font-weight: 400;
}
-
.wrap .manage-left {
float: right;
margin: 0;
padding: 0;
width: 63%;
}
-
.wrap .manage-left table {
width: 100%;
}
-
.wrap .manage-left th {
font-weight: 400;
}
-
@media (max-width: 782px) {
.wrap .manage-left {
width: 100%;
}
}
-
.wrap .manage-right {
margin: 0;
padding: 0;
@@ -1228,7 +1099,6 @@
width: 35%;
z-index: 1;
}
-
.wrap .manage-right p {
font-size: 12px;
font-weight: bold;
@@ -1238,11 +1108,9 @@
letter-spacing: 1px;
clear: right;
}
-
.wrap .manage-right .bumper {
margin-right: 33px;
}
-
.wrap .manage-right.show {
display: block;
overflow-y: auto;
@@ -1250,50 +1118,41 @@
position: absolute;
z-index: 100000;
}
-
.wrap .manage-right .search-bar {
margin-bottom: 18px;
max-width: 300px;
}
-
.wrap .manage-right p.search-box {
float: none;
height: auto;
margin-bottom: 0;
position: relative;
}
-
-.wrap .manage-right p.search-box input[type='search'] {
+.wrap .manage-right p.search-box input[type=search] {
padding: 0 8px;
width: 90%;
line-height: initial;
}
-
@media (max-width: 782px) {
- .wrap .manage-right p.search-box input[type='search'] {
+ .wrap .manage-right p.search-box input[type=search] {
float: right;
padding: 9px 8px;
}
}
-
-.wrap .manage-right p.search-box input[type="submit"] {
+.wrap .manage-right p.search-box input[type=submit] {
display: none;
}
-
.wrap .manage-right .button-group .button {
outline: none;
}
-
.wrap .manage-right .subsubsub {
margin: 0;
padding: 0;
}
-
.wrap .manage-right .subsubsub a {
padding: 0;
line-height: inherit;
}
-
.wrap .manage-right .subsubsub .current {
padding: 1px 5px;
border-radius: 2px;
@@ -1301,17 +1160,14 @@
background: #0D72B2;
color: #fff;
}
-
.wrap .manage-right .subsubsub .current .count {
color: #BCD7E7;
font-weight: 200;
}
-
.wrap .manage-right .subsubsub li {
display: block;
text-align: right;
}
-
@media (max-width: 782px) {
.wrap .manage-right {
background: #fff;
@@ -1338,41 +1194,37 @@
padding: 11px 10px;
display: block;
}
+
.manage-right.show .subsubsub li {
padding: 5px;
}
}
-
@media (max-width: 650px) {
.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions {
float: none;
padding-right: 18px;
}
}
-
@media (max-width: 430px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: none;
}
+
.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions {
display: block;
}
}
-
/* 'Pages' is a temporary location for these styles, until we can break them up into their proper atmoic locations */
.configure-module p {
font-size: 14px;
}
-
.configure-module p.success, .configure-module p.error {
color: #fff;
padding: 10px;
}
-
.configure-module p.success {
background-color: #81a844;
}
-
.configure-module p.error {
background-color: #d94f4f;
}
@@ -1380,22 +1232,19 @@
.protect-status p {
font-size: 16px;
}
-
.protect-status strong {
display: inline-block;
margin-top: 10px;
background: #fff;
padding: 10px;
- border: 1px #ddd solid;
+ border: 1px #dcdcde solid;
font-size: 16px;
color: #000;
max-width: 100%;
}
-
.protect-status.attn {
color: #d94f4f;
}
-
.protect-status.working {
color: #81a844;
}
@@ -1407,9 +1256,8 @@
/* btns + inputs */
.configure-module input[disabled] {
- opacity: .5;
+ opacity: 0.5;
}
-
.configure-module input.button-primary {
font-weight: bold;
}
@@ -1421,7 +1269,6 @@
float: right;
}
}
-
/* end > 1065px */
@media only screen and (max-width: 400px) {
.protect-status strong {
@@ -1429,7 +1276,6 @@
overflow: auto;
}
}
-
/* end < 400px */
.manage__icon {
width: 155px;
@@ -1444,7 +1290,6 @@
color: #999;
margin: 20px auto;
}
-
.manage-page .manage__button {
font-size: 16px;
padding: 0 20px;
@@ -1464,7 +1309,6 @@
line-height: 40px;
font-weight: normal;
}
-
.manage__link .genericon {
font-size: 28px;
vertical-align: middle;
@@ -1474,13 +1318,11 @@
.jp-content .hide {
display: none;
}
-
.jp-content .landing {
margin: 0 auto;
z-index: 2;
position: relative;
}
-
.jp-content h1 {
font-weight: 400;
line-height: 1.75em;
@@ -1489,21 +1331,17 @@
width: 100%;
text-align: center;
}
-
.jp-content h1.success {
color: #81a844;
}
-
.jp-content .footer {
padding-top: 0;
margin-top: 0;
background-image: none;
}
-
.jp-content .footer:before {
height: inherit;
}
-
.jp-content .more-info:before {
content: none;
}
@@ -1524,11 +1362,9 @@
padding-top: 1.5em;
}
}
-
@media (max-width: 530px) {
.jp-content .landing {
- padding: 0 .5em;
+ padding: 0 0.5em;
}
}
-
/*# sourceMappingURL=jetpack-admin-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-admin-rtl.min.css b/plugins/jetpack/css/jetpack-admin-rtl.min.css
index edde8b6c..2b128463 100644
--- a/plugins/jetpack/css/jetpack-admin-rtl.min.css
+++ b/plugins/jetpack/css/jetpack-admin-rtl.min.css
@@ -1,3 +1,3 @@
/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.j-row{width:100%;margin:0 auto}.j-row:after,.j-row:before{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:.85em;width:100%;float:right;position:relative}@media only screen{.j-sm-5{width:41.66667%}.j-sm-7{width:58.33333%}.j-sm-12{width:100%}}@media (min-width:530px){.j-md-4{width:33.33333%}.j-md-6{width:50%}.j-md-8{width:66.66667%}.j-md-12{width:100%}}@media (min-width:782px){.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-12{width:100%}}@keyframes jetpack-candy{0%{transform:scale(1)}20%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes jetpack-loading-fade{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}@keyframes jetpack-rotate{to{transform:rotate(-1turn)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:.76923em 1.46154em;color:#efefef;font-weight:700;font-size:.9285714286em;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#6f7476;border-radius:3px}.jp-button--settings:visited,.jp-button:visited{color:#efefef}.jp-button--settings:focus,.jp-button--settings:hover,.jp-button:focus,.jp-button:hover{color:#fff;background:#57972d}.jp-button--settings:active,.jp-button:active{background:#57972d;opacity:.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:focus,.jp-button--settings:hover{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365a1f,inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:.64286em 1.08696em .53571em;color:#fff;font-weight:400;font-size:20px;line-height:1;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:visited{color:#fff}.download-jetpack:focus,.download-jetpack:hover{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:active{top:6px;box-shadow:0 0 0 #3e6c20,0 0 0 rgba(0,0,0,.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:'';display:inline-block;position:relative;top:-2px;margin-left:13px;width:30px;height:30px;vertical-align:middle;background:url(../images/connect-plug.svg) center center no-repeat;background-size:100%}.download-jetpack:after{content:'';position:absolute;top:0;right:0;width:100%;height:100%}@media (max-width:1147px){.download-jetpack{font-size:1.28571em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width:900px){.download-jetpack:active{top:0}}@media (max-width:530px){.download-jetpack{font-size:1.21429em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-left:9px}}.jp-spinner{display:flex;align-items:center}.jp-spinner__inner,.jp-spinner__outer{margin:auto;box-sizing:border-box;border:.1em solid transparent;border-radius:50%;border-top-color:#00aadc;animation:3s linear infinite;animation-name:jetpack-rotate}.jp-spinner__outer{width:20px;height:20px;font-size:20px}.jp-spinner__inner{width:100%;height:100%;border-left-color:#00aadc;opacity:.4}@font-face{font-family:automatticons;src:url(../_inc/fonts/automatticons/automatticons.eot);src:url(../_inc/fonts/automatticons/automatticons.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/automatticons/automatticons.woff) format("woff"),url(../_inc/fonts/automatticons/automatticons.ttf) format("truetype"),url(../_inc/fonts/automatticons/automatticons.svg#automatticonsregular) format("svg");font-weight:400;font-style:normal}.nav-horizontal:after{content:".";display:block;height:0;clear:both;visibility:hidden}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:right}.nav-horizontal ul{margin:0;padding:0}@media (max-width:782px){.configure .frame.top.fixed{padding-right:0}}.page-content,.wrap.inner{max-width:950px;margin:0 auto}.page-content li,.wrap.inner li{line-height:23px}@media (max-width:530px){.page-content{margin-top:0}}@media (max-width:1147px){.wrap.inner{background:#f9f9f9;padding:15px}}@media (max-width:530px){.wrap.inner{margin-top:1.71429em}}.page-content.about{position:relative;z-index:10}@media (max-width:1147px){.page-content.about{background:#f9f9f9;padding:15px}}@media (max-width:1147px){.page-content.configure{background:#f9f9f9}}.footer nav{max-width:550px;margin:0 auto}.header{right:0;left:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 .71429em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-left:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:400}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:'';position:absolute;top:0;right:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-right:15px}.main-nav{float:right}.main-nav li{margin:0}@media (max-width:900px){.main-nav{font-size:13px}}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #contextual-help-link-wrap,.jetpack-pagestyles #screen-options-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;left:20px;right:20px;margin-right:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:500}.modal .close{position:absolute;top:0;left:0;font:300 1.71429em genericons!important;color:#777;content:'\f405';display:inline-block;padding:.28571em .71429em .42857em;z-index:5}.modal .close:hover{background:#eee;opacity:.8}.modal .close:active{background:#eee;opacity:.4}.modal .content-container{position:absolute;top:0;left:0;bottom:0;right:0;overflow:auto;padding:2.14286em}.modal .content{margin:0 auto;max-width:900px;text-align:right}.modal h2{text-align:right;margin-top:0;color:#5d6d74;font-weight:300;line-height:32px;text-shadow:0 1px 1px #fff}@media (max-width:530px){.modal h2{font-size:26px}}.modal h5{clear:right}.modal p{font-size:1.23077em}.modal footer{position:absolute;right:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #ddd;background:#fff;text-align:left}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-primary:active,.modal .button-secondary{vertical-align:baseline}@media (max-width:900px){.modal{bottom:5%;margin-right:36px;font-size:80%}.modal .content{top:38px}}@media (max-width:782px){.modal{top:66px;margin-right:0}}@media (max-width:600px){.modal{top:10px;left:10px;bottom:10px;right:10px}}.jp-info-img{float:left;margin:0 30px 8px 0}.jp-info-img img{border:1px solid #ddd;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width:782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;right:0;opacity:.2;position:fixed;left:0;top:0;z-index:11}.footer{margin-top:1.42857em;position:relative;padding:10em 0 4.28571em;text-align:center}.footer:after,.footer:before{content:'';position:absolute;right:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width:1147px){.footer{padding-bottom:35px}}@media (max-width:1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width:900px){.footer{padding-top:146px}}@media (max-width:782px){.footer{margin-top:0}}@media (max-width:530px){.footer{margin-top:0;padding-top:135px}}@media (max-width:320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}@media (max-width:1147px){.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}}@media (max-width:530px){.footer nav li{display:block;float:none;margin:0;text-align:right}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #eee}.secondary-footer{margin:0 auto}.secondary-footer li{margin-left:5px}@media (min-width:782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #eee}}@media (min-width:1147px){.secondary-footer{margin-bottom:0}}@media (max-width:782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width:530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #eee}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:.78571em;font-family:"Gill Sans","Gill Sans MT",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;left:9999px;outline:0}.footer .a8c-attribution a:after{content:'A';position:absolute;top:2px;left:-9999px;height:100%;color:#999;font-size:1.54545em;font-family:automatticons;text-align:center}.footer .a8c-attribution a:hover:after{animation:jetpack-candy .4s ease-in-out}@media (min-width:782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #eee}}@media (min-width:1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:0 0;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:.7}.jetpack-message .squeezer{padding:23px 80px 23px 23px;position:relative;text-align:right}.jetpack-message .squeezer:before{color:#fff;content:'\f418';font-family:Genericons;font-size:33px;height:33px;right:25px;opacity:.6;position:absolute;top:23px;top:calc(50% - 22px)}@media (max-width:530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#fff;border-bottom:1px solid #d5e4bd}.jetpack-message .squeezer a:hover{border-bottom:1px solid #f1f6e9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:'\f414'}.configure-module .jetpack-message{max-width:100%}@media (max-width:530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-left:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width:515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:left;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:right}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}#ie-legacy-notice .dops-notice__content{display:inline-block;margin-right:10px}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}.configure .frame.top.fixed{background:#f9f9f9;border-bottom:1px solid #e9e9e9;padding-right:160px;margin-top:-6px;position:fixed;left:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #eee}@media (max-width:782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}}@media (max-width:600px){.configure .frame.top.fixed{top:0}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:left;margin-top:10px}@media (max-width:782px){.filter-search{display:block}}@media (max-width:530px){.filter-search{display:none}}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-right:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module.active td,.table-bordered.jetpack-modules tr.jetpack-module.active th{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-right:4px solid #2ea2cc;padding-right:0}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-right:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-left:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module td,.table-bordered.jetpack-modules tr.jetpack-module th{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 14px 8px 10px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-right:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:left;padding:0 0 1px;visibility:visible;position:static}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-right:5px}@media (max-width:530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width:782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-right:10px;visibility:visible}}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable{opacity:.3}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}@media (max-width:782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width:782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width:900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width:782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:right;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width:782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:left;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:700;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:right}.wrap .manage-right .bumper{margin-right:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type=search]{padding:0 8px;width:90%;line-height:initial}@media (max-width:782px){.wrap .manage-right p.search-box input[type=search]{float:right;padding:9px 8px}}.wrap .manage-right p.search-box input[type=submit]{display:none}.wrap .manage-right .button-group .button{outline:0}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-right:-5px;background:#0d72b2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#bcd7e7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:right}@media (max-width:782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;left:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width:782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.manage-right.show .subsubsub li{padding:5px}}@media (max-width:650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-right:18px}}@media (max-width:430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.error,.configure-module p.success{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #ddd solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}.protect-whitelist textarea{width:100%;min-height:150px}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:700}@media only screen and (min-width:1100px){.protect-whitelist{width:65%;float:right}}@media only screen and (max-width:400px){.protect-status strong{font-size:12px;overflow:auto}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81a944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:400}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font-weight:400;line-height:1.75em;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}@media (max-width:1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}}@media (max-width:530px){.jp-content .landing{padding:0 .5em}} \ No newline at end of file
+*/.j-row{width:100%;margin:0 auto}.j-row:after,.j-row:before{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:.85em;width:100%;float:right;position:relative}@media only screen{.j-sm-5{width:41.66667%}.j-sm-7{width:58.33333%}.j-sm-12{width:100%}}@media (min-width:530px){.j-md-4{width:33.33333%}.j-md-6{width:50%}.j-md-8{width:66.66667%}.j-md-12{width:100%}}@media (min-width:782px){.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-12{width:100%}}@keyframes jetpack-candy{0%{transform:scale(1)}20%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes jetpack-loading-fade{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}@keyframes jetpack-rotate{to{transform:rotate(-1turn)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:.7692307692em 1.4615384615em;color:#efefef;font-weight:700;font-size:.9285714286em;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#6f7476;border-radius:3px}.jp-button--settings:visited,.jp-button:visited{color:#efefef}.jp-button--settings:focus,.jp-button--settings:hover,.jp-button:focus,.jp-button:hover{color:#fff;background:#57972d}.jp-button--settings:active,.jp-button:active{background:#57972d;opacity:.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:focus,.jp-button--settings:hover{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365a1f,inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:.6428571429em 1.0869565217em .5357142857em;color:#fff;font-weight:400;font-size:20px;line-height:1;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:visited{color:#fff}.download-jetpack:focus,.download-jetpack:hover{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:active{top:6px;box-shadow:0 0 0 #3e6c20,0 0 0 rgba(0,0,0,.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:"";display:inline-block;position:relative;top:-2px;margin-left:13px;width:30px;height:30px;vertical-align:middle;background:url(../images/connect-plug.svg) center center no-repeat;background-size:100%}.download-jetpack:after{content:"";position:absolute;top:0;right:0;width:100%;height:100%}@media (max-width:1147px){.download-jetpack{font-size:1.2857142857em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width:900px){.download-jetpack:active{top:0}}@media (max-width:530px){.download-jetpack{font-size:1.2142857143em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-left:9px}}.jp-spinner{display:flex;align-items:center}.jp-spinner__inner,.jp-spinner__outer{margin:auto;box-sizing:border-box;border:.1em solid transparent;border-radius:50%;border-top-color:#00aadc;animation:3s linear infinite;animation-name:jetpack-rotate}.jp-spinner__outer{width:20px;height:20px;font-size:20px}.jp-spinner__inner{width:100%;height:100%;border-left-color:#00aadc;opacity:.4}@font-face{font-family:automatticons;src:url(../_inc/fonts/automatticons/automatticons.eot);src:url(../_inc/fonts/automatticons/automatticons.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/automatticons/automatticons.woff) format("woff"),url(../_inc/fonts/automatticons/automatticons.ttf) format("truetype"),url(../_inc/fonts/automatticons/automatticons.svg#automatticonsregular) format("svg");font-weight:400;font-style:normal}.nav-horizontal:after{content:".";display:block;height:0;clear:both;visibility:hidden}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:right}.nav-horizontal ul{margin:0;padding:0}@media (max-width:782px){.configure .frame.top.fixed{padding-right:0}}.page-content,.wrap.inner{max-width:950px;margin:0 auto}.page-content li,.wrap.inner li{line-height:23px}@media (max-width:530px){.page-content{margin-top:0}}@media (max-width:1147px){.wrap.inner{background:#f6f7f7;padding:15px}}@media (max-width:530px){.wrap.inner{margin-top:1.7142857143em}}.page-content.about{position:relative;z-index:10}@media (max-width:1147px){.page-content.about{background:#f6f7f7;padding:15px}}@media (max-width:1147px){.page-content.configure{background:#f6f7f7}}.footer nav{max-width:550px;margin:0 auto}.header{right:0;left:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 .7142857143em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-left:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:400}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:"";position:absolute;top:0;right:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-right:15px}.main-nav{float:right}.main-nav li{margin:0}@media (max-width:900px){.main-nav{font-size:13px}}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #contextual-help-link-wrap,.jetpack-pagestyles #screen-options-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;left:20px;right:20px;margin-right:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:500}.modal .close{position:absolute;top:0;left:0;font:300 1.7142857143em genericons!important;color:#777;content:"\f405";display:inline-block;padding:.2857142857em .7142857143em .4285714286em;z-index:5}.modal .close:hover{background:#f0f0f1;opacity:.8}.modal .close:active{background:#f0f0f1;opacity:.4}.modal .content-container{position:absolute;top:0;left:0;bottom:0;right:0;overflow:auto;padding:2.1428571429em}.modal .content{margin:0 auto;max-width:900px;text-align:right}.modal h2{text-align:right;margin-top:0;color:#5d6d74;font-weight:300;line-height:32px;text-shadow:0 1px 1px #fff}@media (max-width:530px){.modal h2{font-size:26px}}.modal h5{clear:right}.modal p{font-size:1.2307692308em}.modal footer{position:absolute;right:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #dcdcde;background:#fff;text-align:left}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-primary:active,.modal .button-secondary{vertical-align:baseline}@media (max-width:900px){.modal{bottom:5%;margin-right:36px;font-size:80%}.modal .content{top:38px}}@media (max-width:782px){.modal{top:66px;margin-right:0}}@media (max-width:600px){.modal{top:10px;left:10px;bottom:10px;right:10px}}.jp-info-img{float:left;margin:0 30px 8px 0}.jp-info-img img{border:1px solid #dcdcde;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width:782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;right:0;opacity:.2;position:fixed;left:0;top:0;z-index:11}.footer{margin-top:1.4285714286em;position:relative;padding:10em 0 4.2857142857em;text-align:center}.footer:after,.footer:before{content:"";position:absolute;right:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width:1147px){.footer{padding-bottom:35px}}@media (max-width:1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width:900px){.footer{padding-top:146px}}@media (max-width:782px){.footer{margin-top:0}}@media (max-width:530px){.footer{margin-top:0;padding-top:135px}}@media (max-width:320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}@media (max-width:1147px){.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}}@media (max-width:530px){.footer nav li{display:block;float:none;margin:0;text-align:right}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #f0f0f1}.secondary-footer{margin:0 auto}.secondary-footer li{margin-left:5px}@media (min-width:782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #f0f0f1}}@media (min-width:1147px){.secondary-footer{margin-bottom:0}}@media (max-width:782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width:530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #f0f0f1}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:.7857142857em;font-family:"Gill Sans","Gill Sans MT",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;left:9999px;outline:0}.footer .a8c-attribution a:after{content:"A";position:absolute;top:2px;left:-9999px;height:100%;color:#999;font-size:1.5454545455em;font-family:automatticons;text-align:center}.footer .a8c-attribution a:hover:after{animation:jetpack-candy .4s ease-in-out}@media (min-width:782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #f0f0f1}}@media (min-width:1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:0 0;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:.7}.jetpack-message .squeezer{padding:23px 80px 23px 23px;position:relative;text-align:right}.jetpack-message .squeezer:before{color:#fff;content:"\f418";font-family:Genericons;font-size:33px;height:33px;right:25px;opacity:.6;position:absolute;top:23px;top:calc(50% - 22px)}@media (max-width:530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#fff;border-bottom:1px solid #d5e4bd}.jetpack-message .squeezer a:hover{border-bottom:1px solid #f1f6e9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:"\f414"}.configure-module .jetpack-message{max-width:100%}@media (max-width:530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-left:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width:515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:left;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:right}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}#ie-legacy-notice .dops-notice__content{display:inline-block;margin-right:10px}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.4285714286em;position:relative;top:auto}.configure .frame.top.fixed{background:#f6f7f7;border-bottom:1px solid #e9e9e9;padding-right:160px;margin-top:-6px;position:fixed;left:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #f0f0f1}@media (max-width:782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.4285714286em;position:relative;top:auto}}@media (max-width:600px){.configure .frame.top.fixed{top:0}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:left;margin-top:10px}@media (max-width:782px){.filter-search{display:block}}@media (max-width:530px){.filter-search{display:none}}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-right:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module.active td,.table-bordered.jetpack-modules tr.jetpack-module.active th{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-right:4px solid #2ea2cc;padding-right:0}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-right:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-left:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module td,.table-bordered.jetpack-modules tr.jetpack-module th{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 14px 8px 10px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-right:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:left;padding:0 0 1px;visibility:visible;position:static}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-right:5px}@media (max-width:530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width:782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-right:10px;visibility:visible}}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span.unavailable_reason{color:#000}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable{opacity:.3}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}@media (max-width:782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width:782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width:900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width:782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:right;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width:782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:left;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:700;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:right}.wrap .manage-right .bumper{margin-right:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type=search]{padding:0 8px;width:90%;line-height:initial}@media (max-width:782px){.wrap .manage-right p.search-box input[type=search]{float:right;padding:9px 8px}}.wrap .manage-right p.search-box input[type=submit]{display:none}.wrap .manage-right .button-group .button{outline:0}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-right:-5px;background:#0d72b2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#bcd7e7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:right}@media (max-width:782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;left:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width:782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.manage-right.show .subsubsub li{padding:5px}}@media (max-width:650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-right:18px}}@media (max-width:430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.error,.configure-module p.success{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #dcdcde solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}.protect-whitelist textarea{width:100%;min-height:150px}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:700}@media only screen and (min-width:1100px){.protect-whitelist{width:65%;float:right}}@media only screen and (max-width:400px){.protect-status strong{font-size:12px;overflow:auto}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81a944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:400}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font-weight:400;line-height:1.75em;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}@media (max-width:1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}}@media (max-width:530px){.jp-content .landing{padding:0 .5em}} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-admin.css b/plugins/jetpack/css/jetpack-admin.css
index 8f8a802e..1182fcd5 100644
--- a/plugins/jetpack/css/jetpack-admin.css
+++ b/plugins/jetpack/css/jetpack-admin.css
@@ -5,12 +5,10 @@
width: 100%;
margin: 0 auto;
}
-
.j-row:before, .j-row:after {
content: " ";
display: table;
}
-
.j-row:after {
clear: both;
}
@@ -26,50 +24,57 @@
.j-sm-5 {
width: 41.66667%;
}
+
.j-sm-7 {
width: 58.33333%;
}
+
.j-sm-12 {
width: 100%;
}
}
-
@media (min-width: 530px) {
.j-md-4 {
width: 33.33333%;
}
+
.j-md-6 {
width: 50%;
}
+
.j-md-8 {
width: 66.66667%;
}
+
.j-md-12 {
width: 100%;
}
}
-
@media (min-width: 782px) {
.j-lrg-4 {
width: 33.33333%;
}
+
.j-lrg-5 {
width: 41.66667%;
}
+
.j-lrg-6 {
width: 50%;
}
+
.j-lrg-7 {
width: 58.33333%;
}
+
.j-lrg-8 {
width: 66.66667%;
}
+
.j-lrg-12 {
width: 100%;
}
}
-
@keyframes jetpack-candy {
0% {
transform: scale(1);
@@ -84,34 +89,31 @@
transform: scale(1);
}
}
-
@keyframes jetpack-loading-fade {
0% {
- opacity: .5;
+ opacity: 0.5;
}
50% {
opacity: 1;
}
100% {
- opacity: .5;
+ opacity: 0.5;
}
}
-
@keyframes jetpack-rotate {
to {
transform: rotate(1turn);
}
}
-
.button,
.download-jetpack {
- transition: all .1s ease-in-out;
+ transition: all 0.1s ease-in-out;
}
.jp-button, .jp-button--settings {
display: inline-block;
position: relative;
- padding: 0.76923em 1.46154em;
+ padding: 0.7692307692em 1.4615384615em;
color: #efefef;
font-weight: bold;
font-size: 0.9285714286em;
@@ -120,16 +122,13 @@
background: #6f7476;
border-radius: 3px;
}
-
.jp-button:visited, .jp-button--settings:visited {
color: #efefef;
}
-
.jp-button:hover, .jp-button--settings:hover, .jp-button:focus, .jp-button--settings:focus {
color: #fff;
background: #57972d;
}
-
.jp-button:active, .jp-button--settings:active {
background: #57972d;
opacity: 0.8;
@@ -139,16 +138,13 @@
background: #93b45f;
color: #e8eedf;
}
-
.jp-button--settings:visited {
color: #e8eedf;
}
-
.jp-button--settings:hover, .jp-button--settings:focus {
background: #9fbd72;
color: #fff;
}
-
.jp-button--settings.current {
background: #3c6621;
color: #fff;
@@ -158,7 +154,7 @@
.download-jetpack {
display: inline-block;
position: relative;
- padding: 0.64286em 1.08696em 0.53571em;
+ padding: 0.6428571429em 1.0869565217em 0.5357142857em;
color: #fff;
font-weight: 400;
font-size: 20px;
@@ -168,28 +164,23 @@
border-radius: 6px;
box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:visited {
color: #fff;
}
-
.download-jetpack:hover, .download-jetpack:focus {
color: #fff;
background: #57972d;
box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:active {
top: 6px;
box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.4);
}
-
.download-jetpack:active:after {
top: -6px;
}
-
.download-jetpack:before {
- content: '';
+ content: "";
display: inline-block;
position: relative;
top: -2px;
@@ -200,19 +191,17 @@
background: url("../images/connect-plug.svg") center center no-repeat;
background-size: 100%;
}
-
.download-jetpack:after {
- content: '';
+ content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
-
@media (max-width: 1147px) {
.download-jetpack {
- font-size: 1.28571em;
+ font-size: 1.2857142857em;
}
.download-jetpack:before {
top: -1px;
@@ -220,16 +209,14 @@
height: 23px;
}
}
-
@media (max-width: 900px) {
.download-jetpack:active {
top: 0;
}
}
-
@media (max-width: 530px) {
.download-jetpack {
- font-size: 1.21429em;
+ font-size: 1.2142857143em;
font-weight: 600;
}
.download-jetpack:before {
@@ -248,7 +235,7 @@
.jp-spinner__outer {
margin: auto;
box-sizing: border-box;
- border: .1em solid transparent;
+ border: 0.1em solid transparent;
border-radius: 50%;
border-top-color: #00aadc;
animation: 3s linear infinite;
@@ -265,17 +252,16 @@
width: 100%;
height: 100%;
border-right-color: #00aadc;
- opacity: .4;
+ opacity: 0.4;
}
@font-face {
- font-family: 'automatticons';
+ font-family: "automatticons";
src: url("../_inc/fonts/automatticons/automatticons.eot");
src: url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/automatticons/automatticons.woff") format("woff"), url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"), url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg");
font-weight: normal;
font-style: normal;
}
-
.nav-horizontal:after {
content: ".";
display: block;
@@ -283,16 +269,13 @@
clear: both;
visibility: hidden;
}
-
.nav-horizontal a {
display: inline-block;
}
-
.nav-horizontal li {
position: relative;
float: left;
}
-
.nav-horizontal ul {
margin: 0;
padding: 0;
@@ -309,7 +292,6 @@
max-width: 950px;
margin: 0 auto;
}
-
.wrap.inner li,
.page-content li {
line-height: 23px;
@@ -323,14 +305,13 @@
@media (max-width: 1147px) {
.wrap.inner {
- background: #f9f9f9;
+ background: #f6f7f7;
padding: 15px;
}
}
-
@media (max-width: 530px) {
.wrap.inner {
- margin-top: 1.71429em;
+ margin-top: 1.7142857143em;
}
}
@@ -338,17 +319,16 @@
position: relative;
z-index: 10;
}
-
@media (max-width: 1147px) {
.page-content.about {
- background: #f9f9f9;
+ background: #f6f7f7;
padding: 15px;
}
}
@media (max-width: 1147px) {
.page-content.configure {
- background: #f9f9f9;
+ background: #f6f7f7;
}
}
@@ -366,12 +346,10 @@
.header-nav li {
line-height: 60px;
}
-
.header-nav a {
- padding: 0 0.71429em;
+ padding: 0 0.7142857143em;
line-height: 24px;
}
-
.header-nav .jetpack-logo a {
display: inline-block;
position: relative;
@@ -384,14 +362,12 @@
line-height: 60px;
font-weight: normal;
}
-
.header-nav .jetpack-logo a span {
text-indent: -9999px;
visibility: hidden;
}
-
.header-nav .jetpack-logo a:before {
- content: '';
+ content: "";
position: absolute;
top: 0;
left: 0;
@@ -399,7 +375,6 @@
height: 100%;
background-size: 183px 32px;
}
-
.header-nav .jetpack-modules + .jetpack-modules {
margin-left: 15px;
}
@@ -407,11 +382,9 @@
.main-nav {
float: left;
}
-
.main-nav li {
margin: 0;
}
-
@media (max-width: 900px) {
.main-nav {
font-size: 13px;
@@ -421,15 +394,12 @@
.jetpack-pagestyles #screen-meta {
margin: 0;
}
-
.jetpack-pagestyles #screen-meta-links .screen-meta-toggle {
z-index: 2;
}
-
.jetpack-pagestyles #screen-options-link-wrap, .jetpack-pagestyles #contextual-help-link-wrap {
border: none;
}
-
.jetpack-pagestyles .update-nag {
display: none;
}
@@ -440,7 +410,6 @@
top: 50%;
width: 100%;
}
-
.loading span {
color: #999;
}
@@ -457,29 +426,25 @@
box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1);
z-index: 500;
}
-
.modal .close {
position: absolute;
top: 0;
right: 0;
- font: 300 1.71429em "genericons" !important;
+ font: 300 1.7142857143em "genericons" !important;
color: #777;
- content: '\f405';
+ content: "\f405";
display: inline-block;
- padding: 0.28571em 0.71429em 0.42857em;
+ padding: 0.2857142857em 0.7142857143em 0.4285714286em;
z-index: 5;
}
-
.modal .close:hover {
- background: #eee;
+ background: #f0f0f1;
opacity: 0.8;
}
-
.modal .close:active {
- background: #eee;
+ background: #f0f0f1;
opacity: 0.4;
}
-
.modal .content-container {
position: absolute;
top: 0;
@@ -487,15 +452,13 @@
bottom: 0;
left: 0;
overflow: auto;
- padding: 2.14286em;
+ padding: 2.1428571429em;
}
-
.modal .content {
margin: 0 auto;
max-width: 900px;
text-align: left;
}
-
.modal h2 {
text-align: left;
margin-top: 0;
@@ -504,46 +467,38 @@
line-height: 32px;
text-shadow: 0 1px 1px #fff;
}
-
@media (max-width: 530px) {
.modal h2 {
font-size: 26px;
}
}
-
.modal h5 {
clear: left;
}
-
.modal p {
- font-size: 1.23077em;
+ font-size: 1.2307692308em;
}
-
.modal footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
padding: 12px 20px;
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
background: #fff;
text-align: right;
}
-
.modal footer ul {
margin: 0;
}
-
.modal footer li {
display: inline-block;
margin: 0;
}
-
.modal .button-secondary,
.modal .button-primary:active {
vertical-align: baseline;
}
-
@media (max-width: 900px) {
.modal {
bottom: 5%;
@@ -554,14 +509,12 @@
top: 38px;
}
}
-
@media (max-width: 782px) {
.modal {
top: 66px;
margin-left: 0;
}
}
-
@media (max-width: 600px) {
.modal {
top: 10px;
@@ -575,17 +528,14 @@
float: right;
margin: 0 0 8px 30px;
}
-
.jp-info-img img {
- border: 1px solid #ddd;
+ border: 1px solid #dcdcde;
max-width: 100%;
height: auto;
}
-
.jp-info-img img:first-child {
margin-top: 0;
}
-
@media (max-width: 782px) {
.jp-info-img {
float: none;
@@ -611,40 +561,34 @@
}
.footer {
- margin-top: 1.42857em;
+ margin-top: 1.4285714286em;
position: relative;
- padding: 10em 0 4.28571em;
+ padding: 10em 0 4.2857142857em;
text-align: center;
}
-
.footer:before, .footer:after {
- content: '';
+ content: "";
position: absolute;
left: 0;
pointer-events: none;
}
-
.footer:before {
top: 0;
margin-top: -1px;
width: 100%;
height: 195px;
}
-
.footer:after {
display: none;
}
-
.footer .download-jetpack {
margin-bottom: 33px;
}
-
@media (min-width: 1147px) {
.footer {
padding-bottom: 35px;
}
}
-
@media (max-width: 1147px) {
.footer {
padding-top: 165px;
@@ -658,26 +602,22 @@
overflow: hidden;
}
}
-
@media (max-width: 900px) {
.footer {
padding-top: 146px;
}
}
-
@media (max-width: 782px) {
.footer {
margin-top: 0;
}
}
-
@media (max-width: 530px) {
.footer {
margin-top: 0;
padding-top: 135px;
}
}
-
@media (max-width: 320px) {
.footer {
padding-top: 76px;
@@ -687,27 +627,23 @@
.footer nav {
max-width: 100%;
}
-
.footer nav a,
.footer nav a:visited {
padding: 4px 6px;
color: #999;
}
-
.footer nav a:hover, .footer nav a:focus,
.footer nav a:visited:hover,
.footer nav a:visited:focus {
color: #81A844;
}
-
@media (max-width: 1147px) {
.footer nav a:hover, .footer nav a:focus,
- .footer nav a:visited:hover,
- .footer nav a:visited:focus {
+.footer nav a:visited:hover,
+.footer nav a:visited:focus {
color: #81a844;
}
}
-
@media (max-width: 530px) {
.footer nav li {
display: block;
@@ -724,38 +660,33 @@
.primary {
padding: 25px 15px 10px 15px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
.secondary-footer {
margin: 0 auto;
}
-
.secondary-footer li {
margin-right: 5px;
}
-
@media (min-width: 782px) {
.secondary-footer {
padding: 8px 15px 10px;
margin-bottom: 30px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
}
-
@media (min-width: 1147px) {
.secondary-footer {
margin-bottom: 0;
}
}
-
@media (max-width: 782px) {
.secondary-footer {
padding: 8px 15px 8px;
border-bottom: none;
}
}
-
@media (max-width: 530px) {
.secondary-footer {
margin: 0;
@@ -764,7 +695,7 @@
font-weight: 400;
}
.secondary-footer a {
- border-top: 1px solid #eee;
+ border-top: 1px solid #f0f0f1;
}
}
@@ -772,11 +703,10 @@
margin: 0;
padding: 0 6px;
color: #bbb;
- font-size: 0.78571em;
+ font-size: 0.7857142857em;
font-family: "Gill Sans", "Gill Sans MT", Helvetica, Arial, sans-serif;
text-transform: uppercase;
}
-
.footer .a8c-attribution a {
display: inline-block;
position: relative;
@@ -784,30 +714,27 @@
right: 9999px;
outline: 0;
}
-
.footer .a8c-attribution a:after {
- content: 'A';
+ content: "A";
position: absolute;
top: 2px;
right: -9999px;
height: 100%;
color: #999;
- font-size: 1.54545em;
+ font-size: 1.5454545455em;
font-family: "automatticons";
text-align: center;
}
-
.footer .a8c-attribution a:hover:after {
- animation: jetpack-candy .4s ease-in-out;
+ animation: jetpack-candy 0.4s ease-in-out;
}
@media (min-width: 782px) {
.secondary {
padding: 0 15px 10px 15px;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid #f0f0f1;
}
}
-
@media (min-width: 1147px) {
.secondary {
padding: 0 15px 10px 15px;
@@ -823,7 +750,6 @@
position: relative;
z-index: 2;
}
-
.jetpack-message.is-opt-in {
margin: 50px 0 0;
max-width: 100%;
@@ -834,61 +760,51 @@
font-size: 13px;
text-align: center;
}
-
.subhead .jetpack-message.is-opt-in {
margin: 0;
padding-bottom: 0;
background: transparent;
box-shadow: none;
}
-
.subhead .jetpack-message.is-opt-in .jp-button, .subhead .jetpack-message.is-opt-in .jp-button--settings {
display: inline-block;
}
-
.jetpack-message.is-opt-in p {
color: #3c4549;
}
-
.jetpack-message.is-opt-in .jp-button, .jetpack-message.is-opt-in .jp-button--settings {
margin-top: 15px;
display: none;
}
-
.jetpack-message .squeezer h2 {
font-size: 1em;
}
-
.jetpack-message h2 {
color: #fff;
margin: 0;
}
-
.jetpack-message p {
color: #fff;
margin: 0;
opacity: 0.7;
}
-
.jetpack-message .squeezer {
padding: 23px 23px 23px 80px;
position: relative;
text-align: left;
}
-
.jetpack-message .squeezer:before {
color: #fff;
- content: '\f418';
- font-family: 'Genericons';
+ content: "\f418";
+ font-family: "Genericons";
font-size: 33px;
height: 33px;
left: 25px;
opacity: 0.6;
position: absolute;
top: 23px;
- top: calc( 50% - 22px);
+ top: calc( 50% - 22px );
}
-
@media (max-width: 530px) {
.jetpack-message .squeezer {
padding: 23px;
@@ -897,19 +813,15 @@
display: none;
}
}
-
.jetpack-message .squeezer a {
color: #FFF;
border-bottom: 1px solid #D5E4BD;
}
-
.jetpack-message .squeezer a:hover {
border-bottom: 1px solid #F1F6E9;
}
-
-.jetpack-message.error .squeezer:before,
-.jetpack-message.jetpack-err .squeezer:before {
- content: '\f414';
+.jetpack-message.error .squeezer:before, .jetpack-message.jetpack-err .squeezer:before {
+ content: "\f414";
}
.configure-module .jetpack-message {
@@ -928,7 +840,6 @@
width: 100%;
}
}
-
@media screen and (max-width: 515px) {
.jp-frame .header-nav {
padding-bottom: 10px;
@@ -958,7 +869,6 @@
padding: 0 10px;
}
}
-
#ie-legacy-notice .dops-notice__content {
display: inline-block;
margin-left: 10px;
@@ -971,13 +881,12 @@
.configure .frame.top {
border: none;
box-shadow: none;
- padding-top: 1.42857em;
+ padding-top: 1.4285714286em;
position: relative;
top: auto;
}
-
.configure .frame.top.fixed {
- background: #f9f9f9;
+ background: #f6f7f7;
border-bottom: 1px solid #e9e9e9;
padding-left: 160px;
margin-top: -6px;
@@ -986,19 +895,17 @@
top: 32px;
width: 100%;
z-index: 4;
- box-shadow: 0 2px 2px -2px #eee;
+ box-shadow: 0 2px 2px -2px #f0f0f1;
}
-
@media (max-width: 782px) {
.configure .frame.top.fixed {
border: none;
box-shadow: none;
- padding-top: 1.42857em;
+ padding-top: 1.4285714286em;
position: relative;
top: auto;
}
}
-
@media (max-width: 600px) {
.configure .frame.top.fixed {
top: 0;
@@ -1014,13 +921,11 @@
float: right;
margin-top: 10px;
}
-
@media (max-width: 782px) {
.filter-search {
display: block;
}
}
-
@media (max-width: 530px) {
.filter-search {
display: none;
@@ -1031,80 +936,64 @@
border: none;
margin-bottom: 0;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th {
border-left: 0;
padding: 14px 4px 0;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th input {
display: block;
}
-
.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon {
display: inline-block;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active th,
.table-bordered.jetpack-modules tr.jetpack-module.active td {
background: #f7fcfe;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active th {
border-left: 4px solid #2ea2cc;
padding-left: 0px;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child {
border-left: 4px solid #2ea2cc;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.unavailable input {
display: none;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.deprecated span {
color: #888;
}
-
.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg {
margin-right: 10px;
color: #555;
}
-
.table-bordered.jetpack-modules tr.jetpack-module th,
.table-bordered.jetpack-modules tr.jetpack-module td {
background: #fff;
margin: 0;
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}
-
.table-bordered.jetpack-modules tr.jetpack-module td {
padding: 10px 10px 8px 14px;
line-height: 25px;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td:first-child {
border-left: 4px solid #fff;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
float: right;
padding: 0 0 1px;
visibility: visible;
position: static;
}
-
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span {
margin-left: 5px;
}
-
@media (max-width: 530px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: none;
}
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: block;
@@ -1112,72 +1001,60 @@
visibility: visible;
}
}
-
+.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span.unavailable_reason {
+ color: #000;
+}
.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a {
opacity: 1;
}
-
.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable {
opacity: 0.3;
}
-
.table-bordered.jetpack-modules > thead > tr > th {
border: 0;
vertical-align: middle;
}
-
.table-bordered.jetpack-modules > thead > tr > th:last-child {
padding-right: 0;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules > thead > tr > th:last-child {
padding-left: 0;
}
}
-
.table-bordered.jetpack-modules td {
background: #fff;
}
-
.table-bordered.jetpack-modules #doaction {
margin-top: 0;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules #doaction {
padding: 10px 7px;
}
}
-
.table-bordered.jetpack-modules .checkall {
margin-top: 1px;
}
-
.table-bordered.jetpack-modules .filter-search {
margin-top: 8px;
}
-
.table-bordered.jetpack-modules .genericon {
color: #999;
display: none;
margin: 7px 3px 0;
}
-
@media (max-width: 900px) {
.table-bordered.jetpack-modules .genericon {
display: inline-block;
}
}
-
.table-bordered.jetpack-modules .med {
width: 70px;
}
-
.table-bordered.jetpack-modules .sm {
width: 30px;
}
-
@media (max-width: 782px) {
.table-bordered.jetpack-modules .check-column {
width: 50px;
@@ -1194,33 +1071,27 @@
padding: 0 1.5em 1em;
overflow: hidden;
}
-
.wrap h2 {
font-size: 24px;
font-weight: 400;
}
-
.wrap .manage-left {
float: left;
margin: 0;
padding: 0;
width: 63%;
}
-
.wrap .manage-left table {
width: 100%;
}
-
.wrap .manage-left th {
font-weight: 400;
}
-
@media (max-width: 782px) {
.wrap .manage-left {
width: 100%;
}
}
-
.wrap .manage-right {
margin: 0;
padding: 0;
@@ -1228,7 +1099,6 @@
width: 35%;
z-index: 1;
}
-
.wrap .manage-right p {
font-size: 12px;
font-weight: bold;
@@ -1238,11 +1108,9 @@
letter-spacing: 1px;
clear: left;
}
-
.wrap .manage-right .bumper {
margin-left: 33px;
}
-
.wrap .manage-right.show {
display: block;
overflow-y: auto;
@@ -1250,50 +1118,41 @@
position: absolute;
z-index: 100000;
}
-
.wrap .manage-right .search-bar {
margin-bottom: 18px;
max-width: 300px;
}
-
.wrap .manage-right p.search-box {
float: none;
height: auto;
margin-bottom: 0;
position: relative;
}
-
-.wrap .manage-right p.search-box input[type='search'] {
+.wrap .manage-right p.search-box input[type=search] {
padding: 0 8px;
width: 90%;
line-height: initial;
}
-
@media (max-width: 782px) {
- .wrap .manage-right p.search-box input[type='search'] {
+ .wrap .manage-right p.search-box input[type=search] {
float: left;
padding: 9px 8px;
}
}
-
-.wrap .manage-right p.search-box input[type="submit"] {
+.wrap .manage-right p.search-box input[type=submit] {
display: none;
}
-
.wrap .manage-right .button-group .button {
outline: none;
}
-
.wrap .manage-right .subsubsub {
margin: 0;
padding: 0;
}
-
.wrap .manage-right .subsubsub a {
padding: 0;
line-height: inherit;
}
-
.wrap .manage-right .subsubsub .current {
padding: 1px 5px;
border-radius: 2px;
@@ -1301,17 +1160,14 @@
background: #0D72B2;
color: #fff;
}
-
.wrap .manage-right .subsubsub .current .count {
color: #BCD7E7;
font-weight: 200;
}
-
.wrap .manage-right .subsubsub li {
display: block;
text-align: left;
}
-
@media (max-width: 782px) {
.wrap .manage-right {
background: #fff;
@@ -1338,41 +1194,37 @@
padding: 11px 10px;
display: block;
}
+
.manage-right.show .subsubsub li {
padding: 5px;
}
}
-
@media (max-width: 650px) {
.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions {
float: none;
padding-left: 18px;
}
}
-
@media (max-width: 430px) {
.table-bordered.jetpack-modules tr.jetpack-module td .row-actions {
display: none;
}
+
.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions {
display: block;
}
}
-
/* 'Pages' is a temporary location for these styles, until we can break them up into their proper atmoic locations */
.configure-module p {
font-size: 14px;
}
-
.configure-module p.success, .configure-module p.error {
color: #fff;
padding: 10px;
}
-
.configure-module p.success {
background-color: #81a844;
}
-
.configure-module p.error {
background-color: #d94f4f;
}
@@ -1380,22 +1232,19 @@
.protect-status p {
font-size: 16px;
}
-
.protect-status strong {
display: inline-block;
margin-top: 10px;
background: #fff;
padding: 10px;
- border: 1px #ddd solid;
+ border: 1px #dcdcde solid;
font-size: 16px;
color: #000;
max-width: 100%;
}
-
.protect-status.attn {
color: #d94f4f;
}
-
.protect-status.working {
color: #81a844;
}
@@ -1407,9 +1256,8 @@
/* btns + inputs */
.configure-module input[disabled] {
- opacity: .5;
+ opacity: 0.5;
}
-
.configure-module input.button-primary {
font-weight: bold;
}
@@ -1421,7 +1269,6 @@
float: left;
}
}
-
/* end > 1065px */
@media only screen and (max-width: 400px) {
.protect-status strong {
@@ -1429,7 +1276,6 @@
overflow: auto;
}
}
-
/* end < 400px */
.manage__icon {
width: 155px;
@@ -1444,7 +1290,6 @@
color: #999;
margin: 20px auto;
}
-
.manage-page .manage__button {
font-size: 16px;
padding: 0 20px;
@@ -1464,7 +1309,6 @@
line-height: 40px;
font-weight: normal;
}
-
.manage__link .genericon {
font-size: 28px;
vertical-align: middle;
@@ -1474,13 +1318,11 @@
.jp-content .hide {
display: none;
}
-
.jp-content .landing {
margin: 0 auto;
z-index: 2;
position: relative;
}
-
.jp-content h1 {
font-weight: 400;
line-height: 1.75em;
@@ -1489,21 +1331,17 @@
width: 100%;
text-align: center;
}
-
.jp-content h1.success {
color: #81a844;
}
-
.jp-content .footer {
padding-top: 0;
margin-top: 0;
background-image: none;
}
-
.jp-content .footer:before {
height: inherit;
}
-
.jp-content .more-info:before {
content: none;
}
@@ -1524,11 +1362,9 @@
padding-top: 1.5em;
}
}
-
@media (max-width: 530px) {
.jp-content .landing {
- padding: 0 .5em;
+ padding: 0 0.5em;
}
}
-
/*# sourceMappingURL=jetpack-admin.css.map */
diff --git a/plugins/jetpack/css/jetpack-admin.min.css b/plugins/jetpack/css/jetpack-admin.min.css
index 2cd824c0..da0d8cfe 100644
--- a/plugins/jetpack/css/jetpack-admin.min.css
+++ b/plugins/jetpack/css/jetpack-admin.min.css
@@ -1,3 +1,3 @@
/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.j-row{width:100%;margin:0 auto}.j-row:after,.j-row:before{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:.85em;width:100%;float:left;position:relative}@media only screen{.j-sm-5{width:41.66667%}.j-sm-7{width:58.33333%}.j-sm-12{width:100%}}@media (min-width:530px){.j-md-4{width:33.33333%}.j-md-6{width:50%}.j-md-8{width:66.66667%}.j-md-12{width:100%}}@media (min-width:782px){.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-12{width:100%}}@keyframes jetpack-candy{0%{transform:scale(1)}20%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes jetpack-loading-fade{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}@keyframes jetpack-rotate{to{transform:rotate(1turn)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:.76923em 1.46154em;color:#efefef;font-weight:700;font-size:.9285714286em;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#6f7476;border-radius:3px}.jp-button--settings:visited,.jp-button:visited{color:#efefef}.jp-button--settings:focus,.jp-button--settings:hover,.jp-button:focus,.jp-button:hover{color:#fff;background:#57972d}.jp-button--settings:active,.jp-button:active{background:#57972d;opacity:.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:focus,.jp-button--settings:hover{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365a1f,inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:.64286em 1.08696em .53571em;color:#fff;font-weight:400;font-size:20px;line-height:1;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:visited{color:#fff}.download-jetpack:focus,.download-jetpack:hover{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:active{top:6px;box-shadow:0 0 0 #3e6c20,0 0 0 rgba(0,0,0,.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:'';display:inline-block;position:relative;top:-2px;margin-right:13px;width:30px;height:30px;vertical-align:middle;background:url(../images/connect-plug.svg) center center no-repeat;background-size:100%}.download-jetpack:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%}@media (max-width:1147px){.download-jetpack{font-size:1.28571em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width:900px){.download-jetpack:active{top:0}}@media (max-width:530px){.download-jetpack{font-size:1.21429em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-right:9px}}.jp-spinner{display:flex;align-items:center}.jp-spinner__inner,.jp-spinner__outer{margin:auto;box-sizing:border-box;border:.1em solid transparent;border-radius:50%;border-top-color:#00aadc;animation:3s linear infinite;animation-name:jetpack-rotate}.jp-spinner__outer{width:20px;height:20px;font-size:20px}.jp-spinner__inner{width:100%;height:100%;border-right-color:#00aadc;opacity:.4}@font-face{font-family:automatticons;src:url(../_inc/fonts/automatticons/automatticons.eot);src:url(../_inc/fonts/automatticons/automatticons.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/automatticons/automatticons.woff) format("woff"),url(../_inc/fonts/automatticons/automatticons.ttf) format("truetype"),url(../_inc/fonts/automatticons/automatticons.svg#automatticonsregular) format("svg");font-weight:400;font-style:normal}.nav-horizontal:after{content:".";display:block;height:0;clear:both;visibility:hidden}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:left}.nav-horizontal ul{margin:0;padding:0}@media (max-width:782px){.configure .frame.top.fixed{padding-left:0}}.page-content,.wrap.inner{max-width:950px;margin:0 auto}.page-content li,.wrap.inner li{line-height:23px}@media (max-width:530px){.page-content{margin-top:0}}@media (max-width:1147px){.wrap.inner{background:#f9f9f9;padding:15px}}@media (max-width:530px){.wrap.inner{margin-top:1.71429em}}.page-content.about{position:relative;z-index:10}@media (max-width:1147px){.page-content.about{background:#f9f9f9;padding:15px}}@media (max-width:1147px){.page-content.configure{background:#f9f9f9}}.footer nav{max-width:550px;margin:0 auto}.header{left:0;right:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 .71429em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-right:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:400}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-left:15px}.main-nav{float:left}.main-nav li{margin:0}@media (max-width:900px){.main-nav{font-size:13px}}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #contextual-help-link-wrap,.jetpack-pagestyles #screen-options-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;right:20px;left:20px;margin-left:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:500}.modal .close{position:absolute;top:0;right:0;font:300 1.71429em genericons!important;color:#777;content:'\f405';display:inline-block;padding:.28571em .71429em .42857em;z-index:5}.modal .close:hover{background:#eee;opacity:.8}.modal .close:active{background:#eee;opacity:.4}.modal .content-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;padding:2.14286em}.modal .content{margin:0 auto;max-width:900px;text-align:left}.modal h2{text-align:left;margin-top:0;color:#5d6d74;font-weight:300;line-height:32px;text-shadow:0 1px 1px #fff}@media (max-width:530px){.modal h2{font-size:26px}}.modal h5{clear:left}.modal p{font-size:1.23077em}.modal footer{position:absolute;left:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #ddd;background:#fff;text-align:right}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-primary:active,.modal .button-secondary{vertical-align:baseline}@media (max-width:900px){.modal{bottom:5%;margin-left:36px;font-size:80%}.modal .content{top:38px}}@media (max-width:782px){.modal{top:66px;margin-left:0}}@media (max-width:600px){.modal{top:10px;right:10px;bottom:10px;left:10px}}.jp-info-img{float:right;margin:0 0 8px 30px}.jp-info-img img{border:1px solid #ddd;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width:782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;left:0;opacity:.2;position:fixed;right:0;top:0;z-index:11}.footer{margin-top:1.42857em;position:relative;padding:10em 0 4.28571em;text-align:center}.footer:after,.footer:before{content:'';position:absolute;left:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width:1147px){.footer{padding-bottom:35px}}@media (max-width:1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width:900px){.footer{padding-top:146px}}@media (max-width:782px){.footer{margin-top:0}}@media (max-width:530px){.footer{margin-top:0;padding-top:135px}}@media (max-width:320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}@media (max-width:1147px){.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}}@media (max-width:530px){.footer nav li{display:block;float:none;margin:0;text-align:left}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #eee}.secondary-footer{margin:0 auto}.secondary-footer li{margin-right:5px}@media (min-width:782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #eee}}@media (min-width:1147px){.secondary-footer{margin-bottom:0}}@media (max-width:782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width:530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #eee}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:.78571em;font-family:"Gill Sans","Gill Sans MT",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;right:9999px;outline:0}.footer .a8c-attribution a:after{content:'A';position:absolute;top:2px;right:-9999px;height:100%;color:#999;font-size:1.54545em;font-family:automatticons;text-align:center}.footer .a8c-attribution a:hover:after{animation:jetpack-candy .4s ease-in-out}@media (min-width:782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #eee}}@media (min-width:1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:0 0;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:.7}.jetpack-message .squeezer{padding:23px 23px 23px 80px;position:relative;text-align:left}.jetpack-message .squeezer:before{color:#fff;content:'\f418';font-family:Genericons;font-size:33px;height:33px;left:25px;opacity:.6;position:absolute;top:23px;top:calc(50% - 22px)}@media (max-width:530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#fff;border-bottom:1px solid #d5e4bd}.jetpack-message .squeezer a:hover{border-bottom:1px solid #f1f6e9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:'\f414'}.configure-module .jetpack-message{max-width:100%}@media (max-width:530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-right:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width:515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:right;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:left}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}#ie-legacy-notice .dops-notice__content{display:inline-block;margin-left:10px}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}.configure .frame.top.fixed{background:#f9f9f9;border-bottom:1px solid #e9e9e9;padding-left:160px;margin-top:-6px;position:fixed;right:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #eee}@media (max-width:782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}}@media (max-width:600px){.configure .frame.top.fixed{top:0}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:right;margin-top:10px}@media (max-width:782px){.filter-search{display:block}}@media (max-width:530px){.filter-search{display:none}}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-left:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module.active td,.table-bordered.jetpack-modules tr.jetpack-module.active th{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-left:4px solid #2ea2cc;padding-left:0}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-left:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-right:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module td,.table-bordered.jetpack-modules tr.jetpack-module th{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 10px 8px 14px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-left:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:right;padding:0 0 1px;visibility:visible;position:static}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-left:5px}@media (max-width:530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width:782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-left:10px;visibility:visible}}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable{opacity:.3}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}@media (max-width:782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width:782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width:900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width:782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:left;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width:782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:right;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:700;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:left}.wrap .manage-right .bumper{margin-left:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type=search]{padding:0 8px;width:90%;line-height:initial}@media (max-width:782px){.wrap .manage-right p.search-box input[type=search]{float:left;padding:9px 8px}}.wrap .manage-right p.search-box input[type=submit]{display:none}.wrap .manage-right .button-group .button{outline:0}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-left:-5px;background:#0d72b2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#bcd7e7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:left}@media (max-width:782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;right:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width:782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.manage-right.show .subsubsub li{padding:5px}}@media (max-width:650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-left:18px}}@media (max-width:430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.error,.configure-module p.success{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #ddd solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}.protect-whitelist textarea{width:100%;min-height:150px}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:700}@media only screen and (min-width:1100px){.protect-whitelist{width:65%;float:left}}@media only screen and (max-width:400px){.protect-status strong{font-size:12px;overflow:auto}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81a944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:400}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font-weight:400;line-height:1.75em;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}@media (max-width:1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}}@media (max-width:530px){.jp-content .landing{padding:0 .5em}} \ No newline at end of file
+*/.j-row{width:100%;margin:0 auto}.j-row:after,.j-row:before{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:.85em;width:100%;float:left;position:relative}@media only screen{.j-sm-5{width:41.66667%}.j-sm-7{width:58.33333%}.j-sm-12{width:100%}}@media (min-width:530px){.j-md-4{width:33.33333%}.j-md-6{width:50%}.j-md-8{width:66.66667%}.j-md-12{width:100%}}@media (min-width:782px){.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-12{width:100%}}@keyframes jetpack-candy{0%{transform:scale(1)}20%{transform:scale(1.15)}60%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes jetpack-loading-fade{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}@keyframes jetpack-rotate{to{transform:rotate(1turn)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:.7692307692em 1.4615384615em;color:#efefef;font-weight:700;font-size:.9285714286em;line-height:1;text-shadow:0 1px 1px rgba(0,0,0,.2);background:#6f7476;border-radius:3px}.jp-button--settings:visited,.jp-button:visited{color:#efefef}.jp-button--settings:focus,.jp-button--settings:hover,.jp-button:focus,.jp-button:hover{color:#fff;background:#57972d}.jp-button--settings:active,.jp-button:active{background:#57972d;opacity:.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:focus,.jp-button--settings:hover{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365a1f,inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:.6428571429em 1.0869565217em .5357142857em;color:#fff;font-weight:400;font-size:20px;line-height:1;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:visited{color:#fff}.download-jetpack:focus,.download-jetpack:hover{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,.4)}.download-jetpack:active{top:6px;box-shadow:0 0 0 #3e6c20,0 0 0 rgba(0,0,0,.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:"";display:inline-block;position:relative;top:-2px;margin-right:13px;width:30px;height:30px;vertical-align:middle;background:url(../images/connect-plug.svg) center center no-repeat;background-size:100%}.download-jetpack:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%}@media (max-width:1147px){.download-jetpack{font-size:1.2857142857em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width:900px){.download-jetpack:active{top:0}}@media (max-width:530px){.download-jetpack{font-size:1.2142857143em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-right:9px}}.jp-spinner{display:flex;align-items:center}.jp-spinner__inner,.jp-spinner__outer{margin:auto;box-sizing:border-box;border:.1em solid transparent;border-radius:50%;border-top-color:#00aadc;animation:3s linear infinite;animation-name:jetpack-rotate}.jp-spinner__outer{width:20px;height:20px;font-size:20px}.jp-spinner__inner{width:100%;height:100%;border-right-color:#00aadc;opacity:.4}@font-face{font-family:automatticons;src:url(../_inc/fonts/automatticons/automatticons.eot);src:url(../_inc/fonts/automatticons/automatticons.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/automatticons/automatticons.woff) format("woff"),url(../_inc/fonts/automatticons/automatticons.ttf) format("truetype"),url(../_inc/fonts/automatticons/automatticons.svg#automatticonsregular) format("svg");font-weight:400;font-style:normal}.nav-horizontal:after{content:".";display:block;height:0;clear:both;visibility:hidden}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:left}.nav-horizontal ul{margin:0;padding:0}@media (max-width:782px){.configure .frame.top.fixed{padding-left:0}}.page-content,.wrap.inner{max-width:950px;margin:0 auto}.page-content li,.wrap.inner li{line-height:23px}@media (max-width:530px){.page-content{margin-top:0}}@media (max-width:1147px){.wrap.inner{background:#f6f7f7;padding:15px}}@media (max-width:530px){.wrap.inner{margin-top:1.7142857143em}}.page-content.about{position:relative;z-index:10}@media (max-width:1147px){.page-content.about{background:#f6f7f7;padding:15px}}@media (max-width:1147px){.page-content.configure{background:#f6f7f7}}.footer nav{max-width:550px;margin:0 auto}.header{left:0;right:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 .7142857143em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-right:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:400}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-left:15px}.main-nav{float:left}.main-nav li{margin:0}@media (max-width:900px){.main-nav{font-size:13px}}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #contextual-help-link-wrap,.jetpack-pagestyles #screen-options-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;right:20px;left:20px;margin-left:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,.1);z-index:500}.modal .close{position:absolute;top:0;right:0;font:300 1.7142857143em genericons!important;color:#777;content:"\f405";display:inline-block;padding:.2857142857em .7142857143em .4285714286em;z-index:5}.modal .close:hover{background:#f0f0f1;opacity:.8}.modal .close:active{background:#f0f0f1;opacity:.4}.modal .content-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;padding:2.1428571429em}.modal .content{margin:0 auto;max-width:900px;text-align:left}.modal h2{text-align:left;margin-top:0;color:#5d6d74;font-weight:300;line-height:32px;text-shadow:0 1px 1px #fff}@media (max-width:530px){.modal h2{font-size:26px}}.modal h5{clear:left}.modal p{font-size:1.2307692308em}.modal footer{position:absolute;left:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #dcdcde;background:#fff;text-align:right}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-primary:active,.modal .button-secondary{vertical-align:baseline}@media (max-width:900px){.modal{bottom:5%;margin-left:36px;font-size:80%}.modal .content{top:38px}}@media (max-width:782px){.modal{top:66px;margin-left:0}}@media (max-width:600px){.modal{top:10px;right:10px;bottom:10px;left:10px}}.jp-info-img{float:right;margin:0 0 8px 30px}.jp-info-img img{border:1px solid #dcdcde;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width:782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;left:0;opacity:.2;position:fixed;right:0;top:0;z-index:11}.footer{margin-top:1.4285714286em;position:relative;padding:10em 0 4.2857142857em;text-align:center}.footer:after,.footer:before{content:"";position:absolute;left:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width:1147px){.footer{padding-bottom:35px}}@media (max-width:1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width:900px){.footer{padding-top:146px}}@media (max-width:782px){.footer{margin-top:0}}@media (max-width:530px){.footer{margin-top:0;padding-top:135px}}@media (max-width:320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}@media (max-width:1147px){.footer nav a:focus,.footer nav a:hover,.footer nav a:visited:focus,.footer nav a:visited:hover{color:#81a844}}@media (max-width:530px){.footer nav li{display:block;float:none;margin:0;text-align:left}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #f0f0f1}.secondary-footer{margin:0 auto}.secondary-footer li{margin-right:5px}@media (min-width:782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #f0f0f1}}@media (min-width:1147px){.secondary-footer{margin-bottom:0}}@media (max-width:782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width:530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #f0f0f1}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:.7857142857em;font-family:"Gill Sans","Gill Sans MT",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;right:9999px;outline:0}.footer .a8c-attribution a:after{content:"A";position:absolute;top:2px;right:-9999px;height:100%;color:#999;font-size:1.5454545455em;font-family:automatticons;text-align:center}.footer .a8c-attribution a:hover:after{animation:jetpack-candy .4s ease-in-out}@media (min-width:782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #f0f0f1}}@media (min-width:1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:0 0;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:.7}.jetpack-message .squeezer{padding:23px 23px 23px 80px;position:relative;text-align:left}.jetpack-message .squeezer:before{color:#fff;content:"\f418";font-family:Genericons;font-size:33px;height:33px;left:25px;opacity:.6;position:absolute;top:23px;top:calc(50% - 22px)}@media (max-width:530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#fff;border-bottom:1px solid #d5e4bd}.jetpack-message .squeezer a:hover{border-bottom:1px solid #f1f6e9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:"\f414"}.configure-module .jetpack-message{max-width:100%}@media (max-width:530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-right:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width:515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:right;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:left}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}#ie-legacy-notice .dops-notice__content{display:inline-block;margin-left:10px}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.4285714286em;position:relative;top:auto}.configure .frame.top.fixed{background:#f6f7f7;border-bottom:1px solid #e9e9e9;padding-left:160px;margin-top:-6px;position:fixed;right:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #f0f0f1}@media (max-width:782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.4285714286em;position:relative;top:auto}}@media (max-width:600px){.configure .frame.top.fixed{top:0}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:right;margin-top:10px}@media (max-width:782px){.filter-search{display:block}}@media (max-width:530px){.filter-search{display:none}}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-left:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module.active td,.table-bordered.jetpack-modules tr.jetpack-module.active th{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-left:4px solid #2ea2cc;padding-left:0}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-left:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-right:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module td,.table-bordered.jetpack-modules tr.jetpack-module th{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 10px 8px 14px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-left:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:right;padding:0 0 1px;visibility:visible;position:static}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-left:5px}@media (max-width:530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width:782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-left:10px;visibility:visible}}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span.unavailable_reason{color:#000}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules.with-transparency tr.jetpack-module.unavailable{opacity:.3}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}@media (max-width:782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width:782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width:900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width:782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:left;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width:782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:right;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:700;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:left}.wrap .manage-right .bumper{margin-left:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type=search]{padding:0 8px;width:90%;line-height:initial}@media (max-width:782px){.wrap .manage-right p.search-box input[type=search]{float:left;padding:9px 8px}}.wrap .manage-right p.search-box input[type=submit]{display:none}.wrap .manage-right .button-group .button{outline:0}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-left:-5px;background:#0d72b2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#bcd7e7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:left}@media (max-width:782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;right:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width:782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.manage-right.show .subsubsub li{padding:5px}}@media (max-width:650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-left:18px}}@media (max-width:430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.error,.configure-module p.success{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #dcdcde solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}.protect-whitelist textarea{width:100%;min-height:150px}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:700}@media only screen and (min-width:1100px){.protect-whitelist{width:65%;float:left}}@media only screen and (max-width:400px){.protect-status strong{font-size:12px;overflow:auto}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81a944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:400}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font-weight:400;line-height:1.75em;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}@media (max-width:1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}}@media (max-width:530px){.jp-content .landing{padding:0 .5em}} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-banners-rtl.css b/plugins/jetpack/css/jetpack-banners-rtl.css
index 8f156f16..a965349d 100644
--- a/plugins/jetpack/css/jetpack-banners-rtl.css
+++ b/plugins/jetpack/css/jetpack-banners-rtl.css
@@ -26,40 +26,34 @@ https://github.com/thoughtbot/bourbon
position: relative;
padding: 0;
}
-
.updated .jp-banner__header {
- font-size: 1.125rem;
+ font-size: 1.25rem;
font-weight: 400;
margin-top: 0;
}
-
.updated .jp-banner__button-container {
padding: 2rem 0 0;
flex-direction: row-reverse;
align-items: center;
justify-content: flex-end;
}
-
@media (min-width: 600px) {
.updated .jp-banner__button-container {
display: flex;
}
}
-
.updated .jp-banner__tos-blurb {
display: block;
padding: 0.375rem 0;
line-height: 1.5;
- font-size: 0.6875rem;
+ font-size: 0.75rem;
color: #414141;
}
-
@media (min-width: 600px) {
.updated .jp-banner__tos-blurb {
margin-right: 1.125rem;
}
}
-
.updated .jp-banner__tos-blurb a {
color: inherit;
}
@@ -87,80 +81,66 @@ https://github.com/thoughtbot/bourbon
background: #f1f1f1;
text-align: center;
}
-
@media (max-width: 530px) {
.jetpack-disconnected .jp-connect-full__container {
top: 42px;
}
}
-
@media (min-width: 782px) {
.jetpack-disconnected .jp-connect-full__container {
right: -20px;
}
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card {
padding: 4rem 4rem 6rem;
background: white;
margin: 1em;
}
-
@media (max-width: 530px) {
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card {
padding: 2rem 2rem;
}
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo {
width: 160px;
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters {
margin-top: 1.5rem;
width: 50%;
}
-
.jetpack-disconnected .jp-connect-full__container h4 {
line-height: 1.25;
- font-size: 1.375rem;
+ font-size: 1.5rem;
font-weight: normal;
margin: 1em 0;
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
position: relative;
bottom: 0;
- box-shadow: 0 0 0 1px #ccd0d4, 0 1px 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 0 0 1px #c3c4c7, 0 1px 1px 1px rgba(0, 0, 0, 0.04);
display: none;
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card {
margin: 0;
}
-
@media (min-width: 782px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
right: 0;
}
}
-
@media (max-width: 782px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
top: 32px;
}
}
-
@media (max-width: 530px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
top: 0px;
}
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container {
display: block;
}
-
@media (max-width: 530px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2 {
margin: 0;
@@ -182,39 +162,40 @@ https://github.com/thoughtbot/bourbon
margin: 0 auto 40px auto;
line-height: 1.5;
}
-
@media (max-width: 530px) {
.jp-connect-full__step-header {
margin-bottom: 1.5rem;
}
}
-
.jp-connect-full__step-header h2 {
margin: 1.5rem 10% 0;
- font-size: 1.375rem;
+ font-size: 2rem;
font-weight: bold;
+ line-height: 1.2;
color: black;
}
-
@media (max-width: 530px) {
.jp-connect-full__step-header h2 {
margin-top: 1rem;
+ font-size: 1.5rem;
}
}
-
.jp-connect-full__step-header h3 {
color: #747474;
font-size: 1rem;
font-weight: normal;
margin: 0.625rem 0 1.5rem;
}
-
.jp-connect-full__step-header.bottom {
margin-top: 5rem;
}
+#jp-connect-full__step2-header {
+ display: none;
+}
+
.jp-connect-full__tos-blurb {
- font-size: 0.6875rem;
+ font-size: 0.75rem;
margin: 0 auto 1rem;
}
@@ -223,7 +204,7 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__dismiss-paragraph {
- font-size: .6875rem;
+ font-size: 0.75rem;
}
.jp-connect-full__tos-blurb a,
@@ -244,27 +225,27 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__slide {
- max-width: 35%;
+ max-width: 38%;
margin: 3rem 0;
}
-
@media (max-width: 782px) {
.jp-connect-full__slide {
margin: 1.875rem 0;
}
}
-
-.jp-connect-full__slide p {
- font-size: 0.875rem;
+.jp-connect-full__slide h3 {
+ font-size: 1.25rem;
}
-
-.jp-connect-full__slide .illustration {
- padding: 0.75rem;
+.jp-connect-full__slide img {
+ max-width: 100%;
+}
+.jp-connect-full__slide ul {
+ list-style: disc;
+ margin-right: 16px;
}
-
@media (min-width: 600px) {
.jp-connect-full__slide .illustration {
- margin-bottom: 2.625rem;
+ margin-bottom: 2rem;
}
}
@@ -273,14 +254,12 @@ https://github.com/thoughtbot/bourbon
margin: 0 auto;
line-height: 1.25;
}
-
.jp-connect-full__step-support h2 {
margin: 1rem 0 0;
- font-size: 1.375rem;
+ font-size: 1.5rem;
font-weight: normal;
color: black;
}
-
.jp-connect-full__step-support h3 {
color: #747474;
font-size: 1rem;
@@ -289,7 +268,7 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__button-container-loading {
- font-size: 14px;
+ font-size: 0.875rem;
animation: jetpack-loading-fade 1.6s ease-in-out infinite;
}
@@ -301,19 +280,18 @@ https://github.com/thoughtbot/bourbon
.jp-connect-full__row {
display: block;
}
+
.jp-connect-full__slide {
margin: 2em 0;
max-width: 100%;
}
}
-
.updated.jp-wpcom-connect__container {
border-right: none;
padding: 0;
- border: 1px solid #ccd0d4;
+ border: 1px solid #c3c4c7;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}
-
@media screen and (max-width: 782px) {
.updated.jp-wpcom-connect__container {
padding: 0 !important;
@@ -335,12 +313,11 @@ https://github.com/thoughtbot/bourbon
.jp-wpcom-connect__container-top-text {
padding: 15px 15px 25px 35px;
- background-color: #00BE28;
+ background-color: #069e08;
color: white;
display: flex;
align-items: baseline;
}
-
.jp-wpcom-connect__container-top-text svg {
width: 24px;
height: 24px;
@@ -348,21 +325,17 @@ https://github.com/thoughtbot/bourbon
position: relative;
top: 7px;
}
-
@media (max-width: 530px) {
.jp-wpcom-connect__container-top-text svg {
flex: 1;
}
}
-
.jp-wpcom-connect__container-top-text svg path {
fill: #fff;
}
-
.jp-wpcom-connect__container-top-text span {
display: inline-block;
}
-
@media (max-width: 530px) {
.jp-wpcom-connect__container-top-text span {
flex: 9;
@@ -373,7 +346,7 @@ https://github.com/thoughtbot/bourbon
display: block;
position: relative;
box-sizing: border-box;
- background-color: #00BE28;
+ background-color: #069e08;
}
.jp-wpcom-connect__inner-container > a:first-child {
@@ -423,17 +396,14 @@ https://github.com/thoughtbot/bourbon
display: block;
margin: 0 auto;
}
-
.jp-connect-illo .jetpack-logo {
margin-bottom: 2.25rem;
}
-
@media (max-width: 530px) {
.jp-connect-illo .jetpack-logo {
margin-right: 0;
}
}
-
@media (max-width: 782px) {
.jp-connect-illo {
width: 100%;
@@ -451,12 +421,10 @@ https://github.com/thoughtbot/bourbon
.jp-wpcom-connect__slide {
display: none;
}
-
.jp-wpcom-connect__slide.jp__slide-is-active {
display: flex;
align-items: flex-start;
}
-
@media (max-width: 782px) {
.jp-wpcom-connect__slide.jp__slide-is-active {
display: block;
@@ -476,22 +444,31 @@ https://github.com/thoughtbot/bourbon
.jp-banner__button-container .dops-button {
margin: 0.3125rem 0;
}
-
.jp-banner__button-container .dops-button.is-primary {
- background: #00BE28;
+ background: #069e08;
border-color: #00a523;
padding-right: 1.5rem;
padding-left: 1.5rem;
flex-shrink: 0;
}
-
.jp-banner__button-container .dops-button.is-primary:hover, .jp-banner__button-container .dops-button.is-primary:focus {
background: #00a523;
border-color: #008b1d;
}
-
.jp-banner__button-container .dops-button.is-primary:focus {
box-shadow: 0 0 0 1px white, 0 0 0 3px #008b1d;
}
+.jp-wpcom-connect__quest {
+ position: relative;
+ padding-right: 2.8125rem;
+ font-size: 1.25rem;
+}
+
+.jp-wpcom-connect__quest-marker.gridicon {
+ position: absolute;
+ right: 0;
+ top: -0.1875rem;
+ fill: #eec74f;
+}
/*# sourceMappingURL=jetpack-banners-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-banners-rtl.min.css b/plugins/jetpack/css/jetpack-banners-rtl.min.css
index bdbaab9f..0de24445 100644
--- a/plugins/jetpack/css/jetpack-banners-rtl.min.css
+++ b/plugins/jetpack/css/jetpack-banners-rtl.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.updated.jp-banner{position:relative;padding:0}.updated .jp-banner__header{font-size:1.125rem;font-weight:400;margin-top:0}.updated .jp-banner__button-container{padding:2rem 0 0;flex-direction:row-reverse;align-items:center;justify-content:flex-end}@media (min-width:600px){.updated .jp-banner__button-container{display:flex}}.updated .jp-banner__tos-blurb{display:block;padding:.375rem 0;line-height:1.5;font-size:.6875rem;color:#414141}@media (min-width:600px){.updated .jp-banner__tos-blurb{margin-right:1.125rem}}.updated .jp-banner__tos-blurb a{color:inherit}.jp-banner .notice-dismiss{text-decoration:none}.jp-banner__description{font-size:.875rem}.jp-banner__description-container{padding:1rem}.jetpack-disconnected .jp-connect-full__container{box-sizing:border-box;position:absolute;top:0;left:0;bottom:1.25rem;right:0;z-index:999;background:#f1f1f1;text-align:center}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container{top:42px}}@media (min-width:782px){.jetpack-disconnected .jp-connect-full__container{right:-20px}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:4rem 4rem 6rem;background:#fff;margin:1em}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:2rem 2rem}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo{width:160px}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters{margin-top:1.5rem;width:50%}.jetpack-disconnected .jp-connect-full__container h4{line-height:1.25;font-size:1.375rem;font-weight:400;margin:1em 0}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{position:relative;bottom:0;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04);display:none}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card{margin:0}@media (min-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{right:0}}@media (max-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:32px}}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:0}}.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container{display:block}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2{margin:0}}.jp-connect-full__svg-dismiss{position:absolute;left:0;top:0;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-connect-full__step-header{max-width:700px;margin:0 auto 40px auto;line-height:1.5}@media (max-width:530px){.jp-connect-full__step-header{margin-bottom:1.5rem}}.jp-connect-full__step-header h2{margin:1.5rem 10% 0;font-size:1.375rem;font-weight:700;color:#000}@media (max-width:530px){.jp-connect-full__step-header h2{margin-top:1rem}}.jp-connect-full__step-header h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__step-header.bottom{margin-top:5rem}.jp-connect-full__tos-blurb{font-size:.6875rem;margin:0 auto 1rem}.jp-connect-full__dismiss{cursor:pointer}.jp-connect-full__dismiss-paragraph{font-size:.6875rem}.jp-connect-full__dismiss-paragraph a,.jp-connect-full__tos-blurb a{cursor:pointer;color:inherit;text-decoration:underline}.jp-connect-full__row{display:flex;justify-content:space-around;justify-content:space-evenly;text-align:right;align-items:baseline;margin:0 auto;max-width:1000px}.jp-connect-full__slide{max-width:35%;margin:3rem 0}@media (max-width:782px){.jp-connect-full__slide{margin:1.875rem 0}}.jp-connect-full__slide p{font-size:.875rem}.jp-connect-full__slide .illustration{padding:.75rem}@media (min-width:600px){.jp-connect-full__slide .illustration{margin-bottom:2.625rem}}.jp-connect-full__step-support{max-width:700px;margin:0 auto;line-height:1.25}.jp-connect-full__step-support h2{margin:1rem 0 0;font-size:1.375rem;font-weight:400;color:#000}.jp-connect-full__step-support h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__button-container-loading{font-size:14px;animation:jetpack-loading-fade 1.6s ease-in-out infinite}.jp-connect-full__button-container .jp-spinner{width:100%}@media screen and (max-width:480px){.jp-connect-full__row{display:block}.jp-connect-full__slide{margin:2em 0;max-width:100%}}.updated.jp-wpcom-connect__container{border-right:none;padding:0;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,.04)}@media screen and (max-width:782px){.updated.jp-wpcom-connect__container{padding:0!important}}.updated.jp-wpcom-connect__container .dops-button{padding:7px 14px 9px}.updated .notice-dismiss{z-index:1;text-decoration:none}.jp-wpcom-connect__container-top-text+.jp-wpcom-connect__inner-container .notice-dismiss::before{color:#fff}.jp-wpcom-connect__container-top-text{padding:15px 15px 25px 35px;background-color:#00be28;color:#fff;display:flex;align-items:baseline}.jp-wpcom-connect__container-top-text svg{width:24px;height:24px;margin-left:10px;position:relative;top:7px}@media (max-width:530px){.jp-wpcom-connect__container-top-text svg{flex:1}}.jp-wpcom-connect__container-top-text svg path{fill:#fff}.jp-wpcom-connect__container-top-text span{display:inline-block}@media (max-width:530px){.jp-wpcom-connect__container-top-text span{flex:9}}.jp-wpcom-connect__container{display:block;position:relative;box-sizing:border-box;background-color:#00be28}.jp-wpcom-connect__inner-container>a:first-child{z-index:1}.jp-wpcom-connect__inner-container{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left;background:#fff}.jp-wpcom-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}.jp-wpcom-connect__content-container p{color:#6f6f6f;font-size:.875rem}.jp-wpcom-connect__content-container h2{margin-top:0;line-height:1.6;display:block;margin-bottom:1.5rem}@media (max-width:530px){.jp-wpcom-connect__hide-phone-and-smaller{display:none!important}}.jp-wpcom-connect__content-icon{margin:0 1.5rem;display:flex;flex-direction:column}.jp-connect-illo img{display:block;margin:0 auto}.jp-connect-illo .jetpack-logo{margin-bottom:2.25rem}@media (max-width:530px){.jp-connect-illo .jetpack-logo{margin-right:0}}@media (max-width:782px){.jp-connect-illo{width:100%;margin:.5rem 0;display:block}}@media (min-width:900px){.jp-wpcom-connect__slide-text{padding-right:2.8125rem}}.jp-wpcom-connect__slide{display:none}.jp-wpcom-connect__slide.jp__slide-is-active{display:flex;align-items:flex-start}@media (max-width:782px){.jp-wpcom-connect__slide.jp__slide-is-active{display:block}}.jp-wpcom-connect__slide ul{list-style:disc;padding:0 .9375rem 0 0}.jp-wpcom-connect__slide ul li{color:#6f6f6f;font-size:.75rem}.jp-banner__button-container .dops-button{margin:.3125rem 0}.jp-banner__button-container .dops-button.is-primary{background:#00be28;border-color:#00a523;padding-right:1.5rem;padding-left:1.5rem;flex-shrink:0}.jp-banner__button-container .dops-button.is-primary:focus,.jp-banner__button-container .dops-button.is-primary:hover{background:#00a523;border-color:#008b1d}.jp-banner__button-container .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #008b1d} \ No newline at end of file
+*/.updated.jp-banner{position:relative;padding:0}.updated .jp-banner__header{font-size:1.25rem;font-weight:400;margin-top:0}.updated .jp-banner__button-container{padding:2rem 0 0;flex-direction:row-reverse;align-items:center;justify-content:flex-end}@media (min-width:600px){.updated .jp-banner__button-container{display:flex}}.updated .jp-banner__tos-blurb{display:block;padding:.375rem 0;line-height:1.5;font-size:.75rem;color:#414141}@media (min-width:600px){.updated .jp-banner__tos-blurb{margin-right:1.125rem}}.updated .jp-banner__tos-blurb a{color:inherit}.jp-banner .notice-dismiss{text-decoration:none}.jp-banner__description{font-size:.875rem}.jp-banner__description-container{padding:1rem}.jetpack-disconnected .jp-connect-full__container{box-sizing:border-box;position:absolute;top:0;left:0;bottom:1.25rem;right:0;z-index:999;background:#f1f1f1;text-align:center}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container{top:42px}}@media (min-width:782px){.jetpack-disconnected .jp-connect-full__container{right:-20px}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:4rem 4rem 6rem;background:#fff;margin:1em}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:2rem 2rem}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo{width:160px}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters{margin-top:1.5rem;width:50%}.jetpack-disconnected .jp-connect-full__container h4{line-height:1.25;font-size:1.5rem;font-weight:400;margin:1em 0}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{position:relative;bottom:0;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);display:none}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card{margin:0}@media (min-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{right:0}}@media (max-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:32px}}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:0}}.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container{display:block}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2{margin:0}}.jp-connect-full__svg-dismiss{position:absolute;left:0;top:0;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-connect-full__step-header{max-width:700px;margin:0 auto 40px auto;line-height:1.5}@media (max-width:530px){.jp-connect-full__step-header{margin-bottom:1.5rem}}.jp-connect-full__step-header h2{margin:1.5rem 10% 0;font-size:2rem;font-weight:700;line-height:1.2;color:#000}@media (max-width:530px){.jp-connect-full__step-header h2{margin-top:1rem;font-size:1.5rem}}.jp-connect-full__step-header h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__step-header.bottom{margin-top:5rem}#jp-connect-full__step2-header{display:none}.jp-connect-full__tos-blurb{font-size:.75rem;margin:0 auto 1rem}.jp-connect-full__dismiss{cursor:pointer}.jp-connect-full__dismiss-paragraph{font-size:.75rem}.jp-connect-full__dismiss-paragraph a,.jp-connect-full__tos-blurb a{cursor:pointer;color:inherit;text-decoration:underline}.jp-connect-full__row{display:flex;justify-content:space-around;justify-content:space-evenly;text-align:right;align-items:baseline;margin:0 auto;max-width:1000px}.jp-connect-full__slide{max-width:38%;margin:3rem 0}@media (max-width:782px){.jp-connect-full__slide{margin:1.875rem 0}}.jp-connect-full__slide h3{font-size:1.25rem}.jp-connect-full__slide img{max-width:100%}.jp-connect-full__slide ul{list-style:disc;margin-right:16px}@media (min-width:600px){.jp-connect-full__slide .illustration{margin-bottom:2rem}}.jp-connect-full__step-support{max-width:700px;margin:0 auto;line-height:1.25}.jp-connect-full__step-support h2{margin:1rem 0 0;font-size:1.5rem;font-weight:400;color:#000}.jp-connect-full__step-support h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__button-container-loading{font-size:.875rem;animation:jetpack-loading-fade 1.6s ease-in-out infinite}.jp-connect-full__button-container .jp-spinner{width:100%}@media screen and (max-width:480px){.jp-connect-full__row{display:block}.jp-connect-full__slide{margin:2em 0;max-width:100%}}.updated.jp-wpcom-connect__container{border-right:none;padding:0;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}@media screen and (max-width:782px){.updated.jp-wpcom-connect__container{padding:0!important}}.updated.jp-wpcom-connect__container .dops-button{padding:7px 14px 9px}.updated .notice-dismiss{z-index:1;text-decoration:none}.jp-wpcom-connect__container-top-text+.jp-wpcom-connect__inner-container .notice-dismiss::before{color:#fff}.jp-wpcom-connect__container-top-text{padding:15px 15px 25px 35px;background-color:#069e08;color:#fff;display:flex;align-items:baseline}.jp-wpcom-connect__container-top-text svg{width:24px;height:24px;margin-left:10px;position:relative;top:7px}@media (max-width:530px){.jp-wpcom-connect__container-top-text svg{flex:1}}.jp-wpcom-connect__container-top-text svg path{fill:#fff}.jp-wpcom-connect__container-top-text span{display:inline-block}@media (max-width:530px){.jp-wpcom-connect__container-top-text span{flex:9}}.jp-wpcom-connect__container{display:block;position:relative;box-sizing:border-box;background-color:#069e08}.jp-wpcom-connect__inner-container>a:first-child{z-index:1}.jp-wpcom-connect__inner-container{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left;background:#fff}.jp-wpcom-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}.jp-wpcom-connect__content-container p{color:#6f6f6f;font-size:.875rem}.jp-wpcom-connect__content-container h2{margin-top:0;line-height:1.6;display:block;margin-bottom:1.5rem}@media (max-width:530px){.jp-wpcom-connect__hide-phone-and-smaller{display:none!important}}.jp-wpcom-connect__content-icon{margin:0 1.5rem;display:flex;flex-direction:column}.jp-connect-illo img{display:block;margin:0 auto}.jp-connect-illo .jetpack-logo{margin-bottom:2.25rem}@media (max-width:530px){.jp-connect-illo .jetpack-logo{margin-right:0}}@media (max-width:782px){.jp-connect-illo{width:100%;margin:.5rem 0;display:block}}@media (min-width:900px){.jp-wpcom-connect__slide-text{padding-right:2.8125rem}}.jp-wpcom-connect__slide{display:none}.jp-wpcom-connect__slide.jp__slide-is-active{display:flex;align-items:flex-start}@media (max-width:782px){.jp-wpcom-connect__slide.jp__slide-is-active{display:block}}.jp-wpcom-connect__slide ul{list-style:disc;padding:0 .9375rem 0 0}.jp-wpcom-connect__slide ul li{color:#6f6f6f;font-size:.75rem}.jp-banner__button-container .dops-button{margin:.3125rem 0}.jp-banner__button-container .dops-button.is-primary{background:#069e08;border-color:#00a523;padding-right:1.5rem;padding-left:1.5rem;flex-shrink:0}.jp-banner__button-container .dops-button.is-primary:focus,.jp-banner__button-container .dops-button.is-primary:hover{background:#00a523;border-color:#008b1d}.jp-banner__button-container .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #008b1d}.jp-wpcom-connect__quest{position:relative;padding-right:2.8125rem;font-size:1.25rem}.jp-wpcom-connect__quest-marker.gridicon{position:absolute;right:0;top:-.1875rem;fill:#eec74f} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-banners.css b/plugins/jetpack/css/jetpack-banners.css
index 5232bb5a..3dd658c7 100644
--- a/plugins/jetpack/css/jetpack-banners.css
+++ b/plugins/jetpack/css/jetpack-banners.css
@@ -26,40 +26,34 @@ https://github.com/thoughtbot/bourbon
position: relative;
padding: 0;
}
-
.updated .jp-banner__header {
- font-size: 1.125rem;
+ font-size: 1.25rem;
font-weight: 400;
margin-top: 0;
}
-
.updated .jp-banner__button-container {
padding: 2rem 0 0;
flex-direction: row-reverse;
align-items: center;
justify-content: flex-end;
}
-
@media (min-width: 600px) {
.updated .jp-banner__button-container {
display: flex;
}
}
-
.updated .jp-banner__tos-blurb {
display: block;
padding: 0.375rem 0;
line-height: 1.5;
- font-size: 0.6875rem;
+ font-size: 0.75rem;
color: #414141;
}
-
@media (min-width: 600px) {
.updated .jp-banner__tos-blurb {
margin-left: 1.125rem;
}
}
-
.updated .jp-banner__tos-blurb a {
color: inherit;
}
@@ -87,80 +81,66 @@ https://github.com/thoughtbot/bourbon
background: #f1f1f1;
text-align: center;
}
-
@media (max-width: 530px) {
.jetpack-disconnected .jp-connect-full__container {
top: 42px;
}
}
-
@media (min-width: 782px) {
.jetpack-disconnected .jp-connect-full__container {
left: -20px;
}
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card {
padding: 4rem 4rem 6rem;
background: white;
margin: 1em;
}
-
@media (max-width: 530px) {
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card {
padding: 2rem 2rem;
}
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo {
width: 160px;
}
-
.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters {
margin-top: 1.5rem;
width: 50%;
}
-
.jetpack-disconnected .jp-connect-full__container h4 {
line-height: 1.25;
- font-size: 1.375rem;
+ font-size: 1.5rem;
font-weight: normal;
margin: 1em 0;
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
position: relative;
bottom: 0;
- box-shadow: 0 0 0 1px #ccd0d4, 0 1px 1px 1px rgba(0, 0, 0, 0.04);
+ box-shadow: 0 0 0 1px #c3c4c7, 0 1px 1px 1px rgba(0, 0, 0, 0.04);
display: none;
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card {
margin: 0;
}
-
@media (min-width: 782px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
left: 0;
}
}
-
@media (max-width: 782px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
top: 32px;
}
}
-
@media (max-width: 530px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container {
top: 0px;
}
}
-
.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container {
display: block;
}
-
@media (max-width: 530px) {
.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2 {
margin: 0;
@@ -182,39 +162,40 @@ https://github.com/thoughtbot/bourbon
margin: 0 auto 40px auto;
line-height: 1.5;
}
-
@media (max-width: 530px) {
.jp-connect-full__step-header {
margin-bottom: 1.5rem;
}
}
-
.jp-connect-full__step-header h2 {
margin: 1.5rem 10% 0;
- font-size: 1.375rem;
+ font-size: 2rem;
font-weight: bold;
+ line-height: 1.2;
color: black;
}
-
@media (max-width: 530px) {
.jp-connect-full__step-header h2 {
margin-top: 1rem;
+ font-size: 1.5rem;
}
}
-
.jp-connect-full__step-header h3 {
color: #747474;
font-size: 1rem;
font-weight: normal;
margin: 0.625rem 0 1.5rem;
}
-
.jp-connect-full__step-header.bottom {
margin-top: 5rem;
}
+#jp-connect-full__step2-header {
+ display: none;
+}
+
.jp-connect-full__tos-blurb {
- font-size: 0.6875rem;
+ font-size: 0.75rem;
margin: 0 auto 1rem;
}
@@ -223,7 +204,7 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__dismiss-paragraph {
- font-size: .6875rem;
+ font-size: 0.75rem;
}
.jp-connect-full__tos-blurb a,
@@ -244,27 +225,27 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__slide {
- max-width: 35%;
+ max-width: 38%;
margin: 3rem 0;
}
-
@media (max-width: 782px) {
.jp-connect-full__slide {
margin: 1.875rem 0;
}
}
-
-.jp-connect-full__slide p {
- font-size: 0.875rem;
+.jp-connect-full__slide h3 {
+ font-size: 1.25rem;
}
-
-.jp-connect-full__slide .illustration {
- padding: 0.75rem;
+.jp-connect-full__slide img {
+ max-width: 100%;
+}
+.jp-connect-full__slide ul {
+ list-style: disc;
+ margin-left: 16px;
}
-
@media (min-width: 600px) {
.jp-connect-full__slide .illustration {
- margin-bottom: 2.625rem;
+ margin-bottom: 2rem;
}
}
@@ -273,14 +254,12 @@ https://github.com/thoughtbot/bourbon
margin: 0 auto;
line-height: 1.25;
}
-
.jp-connect-full__step-support h2 {
margin: 1rem 0 0;
- font-size: 1.375rem;
+ font-size: 1.5rem;
font-weight: normal;
color: black;
}
-
.jp-connect-full__step-support h3 {
color: #747474;
font-size: 1rem;
@@ -289,7 +268,7 @@ https://github.com/thoughtbot/bourbon
}
.jp-connect-full__button-container-loading {
- font-size: 14px;
+ font-size: 0.875rem;
animation: jetpack-loading-fade 1.6s ease-in-out infinite;
}
@@ -301,19 +280,18 @@ https://github.com/thoughtbot/bourbon
.jp-connect-full__row {
display: block;
}
+
.jp-connect-full__slide {
margin: 2em 0;
max-width: 100%;
}
}
-
.updated.jp-wpcom-connect__container {
border-left: none;
padding: 0;
- border: 1px solid #ccd0d4;
+ border: 1px solid #c3c4c7;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
}
-
@media screen and (max-width: 782px) {
.updated.jp-wpcom-connect__container {
padding: 0 !important;
@@ -335,12 +313,11 @@ https://github.com/thoughtbot/bourbon
.jp-wpcom-connect__container-top-text {
padding: 15px 35px 25px 15px;
- background-color: #00BE28;
+ background-color: #069e08;
color: white;
display: flex;
align-items: baseline;
}
-
.jp-wpcom-connect__container-top-text svg {
width: 24px;
height: 24px;
@@ -348,21 +325,17 @@ https://github.com/thoughtbot/bourbon
position: relative;
top: 7px;
}
-
@media (max-width: 530px) {
.jp-wpcom-connect__container-top-text svg {
flex: 1;
}
}
-
.jp-wpcom-connect__container-top-text svg path {
fill: #fff;
}
-
.jp-wpcom-connect__container-top-text span {
display: inline-block;
}
-
@media (max-width: 530px) {
.jp-wpcom-connect__container-top-text span {
flex: 9;
@@ -373,7 +346,7 @@ https://github.com/thoughtbot/bourbon
display: block;
position: relative;
box-sizing: border-box;
- background-color: #00BE28;
+ background-color: #069e08;
}
.jp-wpcom-connect__inner-container > a:first-child {
@@ -423,17 +396,14 @@ https://github.com/thoughtbot/bourbon
display: block;
margin: 0 auto;
}
-
.jp-connect-illo .jetpack-logo {
margin-bottom: 2.25rem;
}
-
@media (max-width: 530px) {
.jp-connect-illo .jetpack-logo {
margin-left: 0;
}
}
-
@media (max-width: 782px) {
.jp-connect-illo {
width: 100%;
@@ -451,12 +421,10 @@ https://github.com/thoughtbot/bourbon
.jp-wpcom-connect__slide {
display: none;
}
-
.jp-wpcom-connect__slide.jp__slide-is-active {
display: flex;
align-items: flex-start;
}
-
@media (max-width: 782px) {
.jp-wpcom-connect__slide.jp__slide-is-active {
display: block;
@@ -476,22 +444,31 @@ https://github.com/thoughtbot/bourbon
.jp-banner__button-container .dops-button {
margin: 0.3125rem 0;
}
-
.jp-banner__button-container .dops-button.is-primary {
- background: #00BE28;
+ background: #069e08;
border-color: #00a523;
padding-left: 1.5rem;
padding-right: 1.5rem;
flex-shrink: 0;
}
-
.jp-banner__button-container .dops-button.is-primary:hover, .jp-banner__button-container .dops-button.is-primary:focus {
background: #00a523;
border-color: #008b1d;
}
-
.jp-banner__button-container .dops-button.is-primary:focus {
box-shadow: 0 0 0 1px white, 0 0 0 3px #008b1d;
}
+.jp-wpcom-connect__quest {
+ position: relative;
+ padding-left: 2.8125rem;
+ font-size: 1.25rem;
+}
+
+.jp-wpcom-connect__quest-marker.gridicon {
+ position: absolute;
+ left: 0;
+ top: -0.1875rem;
+ fill: #eec74f;
+}
/*# sourceMappingURL=jetpack-banners.css.map */
diff --git a/plugins/jetpack/css/jetpack-banners.min.css b/plugins/jetpack/css/jetpack-banners.min.css
index e355090e..12228c3d 100644
--- a/plugins/jetpack/css/jetpack-banners.min.css
+++ b/plugins/jetpack/css/jetpack-banners.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.updated.jp-banner{position:relative;padding:0}.updated .jp-banner__header{font-size:1.125rem;font-weight:400;margin-top:0}.updated .jp-banner__button-container{padding:2rem 0 0;flex-direction:row-reverse;align-items:center;justify-content:flex-end}@media (min-width:600px){.updated .jp-banner__button-container{display:flex}}.updated .jp-banner__tos-blurb{display:block;padding:.375rem 0;line-height:1.5;font-size:.6875rem;color:#414141}@media (min-width:600px){.updated .jp-banner__tos-blurb{margin-left:1.125rem}}.updated .jp-banner__tos-blurb a{color:inherit}.jp-banner .notice-dismiss{text-decoration:none}.jp-banner__description{font-size:.875rem}.jp-banner__description-container{padding:1rem}.jetpack-disconnected .jp-connect-full__container{box-sizing:border-box;position:absolute;top:0;right:0;bottom:1.25rem;left:0;z-index:999;background:#f1f1f1;text-align:center}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container{top:42px}}@media (min-width:782px){.jetpack-disconnected .jp-connect-full__container{left:-20px}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:4rem 4rem 6rem;background:#fff;margin:1em}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:2rem 2rem}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo{width:160px}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters{margin-top:1.5rem;width:50%}.jetpack-disconnected .jp-connect-full__container h4{line-height:1.25;font-size:1.375rem;font-weight:400;margin:1em 0}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{position:relative;bottom:0;box-shadow:0 0 0 1px #ccd0d4,0 1px 1px 1px rgba(0,0,0,.04);display:none}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card{margin:0}@media (min-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{left:0}}@media (max-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:32px}}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:0}}.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container{display:block}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2{margin:0}}.jp-connect-full__svg-dismiss{position:absolute;right:0;top:0;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-connect-full__step-header{max-width:700px;margin:0 auto 40px auto;line-height:1.5}@media (max-width:530px){.jp-connect-full__step-header{margin-bottom:1.5rem}}.jp-connect-full__step-header h2{margin:1.5rem 10% 0;font-size:1.375rem;font-weight:700;color:#000}@media (max-width:530px){.jp-connect-full__step-header h2{margin-top:1rem}}.jp-connect-full__step-header h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__step-header.bottom{margin-top:5rem}.jp-connect-full__tos-blurb{font-size:.6875rem;margin:0 auto 1rem}.jp-connect-full__dismiss{cursor:pointer}.jp-connect-full__dismiss-paragraph{font-size:.6875rem}.jp-connect-full__dismiss-paragraph a,.jp-connect-full__tos-blurb a{cursor:pointer;color:inherit;text-decoration:underline}.jp-connect-full__row{display:flex;justify-content:space-around;justify-content:space-evenly;text-align:left;align-items:baseline;margin:0 auto;max-width:1000px}.jp-connect-full__slide{max-width:35%;margin:3rem 0}@media (max-width:782px){.jp-connect-full__slide{margin:1.875rem 0}}.jp-connect-full__slide p{font-size:.875rem}.jp-connect-full__slide .illustration{padding:.75rem}@media (min-width:600px){.jp-connect-full__slide .illustration{margin-bottom:2.625rem}}.jp-connect-full__step-support{max-width:700px;margin:0 auto;line-height:1.25}.jp-connect-full__step-support h2{margin:1rem 0 0;font-size:1.375rem;font-weight:400;color:#000}.jp-connect-full__step-support h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__button-container-loading{font-size:14px;animation:jetpack-loading-fade 1.6s ease-in-out infinite}.jp-connect-full__button-container .jp-spinner{width:100%}@media screen and (max-width:480px){.jp-connect-full__row{display:block}.jp-connect-full__slide{margin:2em 0;max-width:100%}}.updated.jp-wpcom-connect__container{border-left:none;padding:0;border:1px solid #ccd0d4;box-shadow:0 1px 1px rgba(0,0,0,.04)}@media screen and (max-width:782px){.updated.jp-wpcom-connect__container{padding:0!important}}.updated.jp-wpcom-connect__container .dops-button{padding:7px 14px 9px}.updated .notice-dismiss{z-index:1;text-decoration:none}.jp-wpcom-connect__container-top-text+.jp-wpcom-connect__inner-container .notice-dismiss::before{color:#fff}.jp-wpcom-connect__container-top-text{padding:15px 35px 25px 15px;background-color:#00be28;color:#fff;display:flex;align-items:baseline}.jp-wpcom-connect__container-top-text svg{width:24px;height:24px;margin-right:10px;position:relative;top:7px}@media (max-width:530px){.jp-wpcom-connect__container-top-text svg{flex:1}}.jp-wpcom-connect__container-top-text svg path{fill:#fff}.jp-wpcom-connect__container-top-text span{display:inline-block}@media (max-width:530px){.jp-wpcom-connect__container-top-text span{flex:9}}.jp-wpcom-connect__container{display:block;position:relative;box-sizing:border-box;background-color:#00be28}.jp-wpcom-connect__inner-container>a:first-child{z-index:1}.jp-wpcom-connect__inner-container{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left;background:#fff}.jp-wpcom-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}.jp-wpcom-connect__content-container p{color:#6f6f6f;font-size:.875rem}.jp-wpcom-connect__content-container h2{margin-top:0;line-height:1.6;display:block;margin-bottom:1.5rem}@media (max-width:530px){.jp-wpcom-connect__hide-phone-and-smaller{display:none!important}}.jp-wpcom-connect__content-icon{margin:0 1.5rem;display:flex;flex-direction:column}.jp-connect-illo img{display:block;margin:0 auto}.jp-connect-illo .jetpack-logo{margin-bottom:2.25rem}@media (max-width:530px){.jp-connect-illo .jetpack-logo{margin-left:0}}@media (max-width:782px){.jp-connect-illo{width:100%;margin:.5rem 0;display:block}}@media (min-width:900px){.jp-wpcom-connect__slide-text{padding-left:2.8125rem}}.jp-wpcom-connect__slide{display:none}.jp-wpcom-connect__slide.jp__slide-is-active{display:flex;align-items:flex-start}@media (max-width:782px){.jp-wpcom-connect__slide.jp__slide-is-active{display:block}}.jp-wpcom-connect__slide ul{list-style:disc;padding:0 0 0 .9375rem}.jp-wpcom-connect__slide ul li{color:#6f6f6f;font-size:.75rem}.jp-banner__button-container .dops-button{margin:.3125rem 0}.jp-banner__button-container .dops-button.is-primary{background:#00be28;border-color:#00a523;padding-left:1.5rem;padding-right:1.5rem;flex-shrink:0}.jp-banner__button-container .dops-button.is-primary:focus,.jp-banner__button-container .dops-button.is-primary:hover{background:#00a523;border-color:#008b1d}.jp-banner__button-container .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #008b1d} \ No newline at end of file
+*/.updated.jp-banner{position:relative;padding:0}.updated .jp-banner__header{font-size:1.25rem;font-weight:400;margin-top:0}.updated .jp-banner__button-container{padding:2rem 0 0;flex-direction:row-reverse;align-items:center;justify-content:flex-end}@media (min-width:600px){.updated .jp-banner__button-container{display:flex}}.updated .jp-banner__tos-blurb{display:block;padding:.375rem 0;line-height:1.5;font-size:.75rem;color:#414141}@media (min-width:600px){.updated .jp-banner__tos-blurb{margin-left:1.125rem}}.updated .jp-banner__tos-blurb a{color:inherit}.jp-banner .notice-dismiss{text-decoration:none}.jp-banner__description{font-size:.875rem}.jp-banner__description-container{padding:1rem}.jetpack-disconnected .jp-connect-full__container{box-sizing:border-box;position:absolute;top:0;right:0;bottom:1.25rem;left:0;z-index:999;background:#f1f1f1;text-align:center}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container{top:42px}}@media (min-width:782px){.jetpack-disconnected .jp-connect-full__container{left:-20px}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:4rem 4rem 6rem;background:#fff;margin:1em}@media (max-width:530px){.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card{padding:2rem 2rem}}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.jetpack-logo{width:160px}.jetpack-disconnected .jp-connect-full__container .jp-connect-full__container-card img.support-characters{margin-top:1.5rem;width:50%}.jetpack-disconnected .jp-connect-full__container h4{line-height:1.25;font-size:1.5rem;font-weight:400;margin:1em 0}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{position:relative;bottom:0;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);display:none}.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container .jp-connect-full__container-card{margin:0}@media (min-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{left:0}}@media (max-width:782px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:32px}}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-connect-full__container{top:0}}.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container{display:block}@media (max-width:530px){.jetpack-disconnected.toplevel_page_jetpack .jp-jetpack-connect__container .jp-connect-full__container .jp-connect-full__step-header h2{margin:0}}.jp-connect-full__svg-dismiss{position:absolute;right:0;top:0;fill:#a2a2a2;padding:1rem;height:1.5rem;width:1.5rem}.jp-connect-full__step-header{max-width:700px;margin:0 auto 40px auto;line-height:1.5}@media (max-width:530px){.jp-connect-full__step-header{margin-bottom:1.5rem}}.jp-connect-full__step-header h2{margin:1.5rem 10% 0;font-size:2rem;font-weight:700;line-height:1.2;color:#000}@media (max-width:530px){.jp-connect-full__step-header h2{margin-top:1rem;font-size:1.5rem}}.jp-connect-full__step-header h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__step-header.bottom{margin-top:5rem}#jp-connect-full__step2-header{display:none}.jp-connect-full__tos-blurb{font-size:.75rem;margin:0 auto 1rem}.jp-connect-full__dismiss{cursor:pointer}.jp-connect-full__dismiss-paragraph{font-size:.75rem}.jp-connect-full__dismiss-paragraph a,.jp-connect-full__tos-blurb a{cursor:pointer;color:inherit;text-decoration:underline}.jp-connect-full__row{display:flex;justify-content:space-around;justify-content:space-evenly;text-align:left;align-items:baseline;margin:0 auto;max-width:1000px}.jp-connect-full__slide{max-width:38%;margin:3rem 0}@media (max-width:782px){.jp-connect-full__slide{margin:1.875rem 0}}.jp-connect-full__slide h3{font-size:1.25rem}.jp-connect-full__slide img{max-width:100%}.jp-connect-full__slide ul{list-style:disc;margin-left:16px}@media (min-width:600px){.jp-connect-full__slide .illustration{margin-bottom:2rem}}.jp-connect-full__step-support{max-width:700px;margin:0 auto;line-height:1.25}.jp-connect-full__step-support h2{margin:1rem 0 0;font-size:1.5rem;font-weight:400;color:#000}.jp-connect-full__step-support h3{color:#747474;font-size:1rem;font-weight:400;margin:.625rem 0 1.5rem}.jp-connect-full__button-container-loading{font-size:.875rem;animation:jetpack-loading-fade 1.6s ease-in-out infinite}.jp-connect-full__button-container .jp-spinner{width:100%}@media screen and (max-width:480px){.jp-connect-full__row{display:block}.jp-connect-full__slide{margin:2em 0;max-width:100%}}.updated.jp-wpcom-connect__container{border-left:none;padding:0;border:1px solid #c3c4c7;box-shadow:0 1px 1px rgba(0,0,0,.04)}@media screen and (max-width:782px){.updated.jp-wpcom-connect__container{padding:0!important}}.updated.jp-wpcom-connect__container .dops-button{padding:7px 14px 9px}.updated .notice-dismiss{z-index:1;text-decoration:none}.jp-wpcom-connect__container-top-text+.jp-wpcom-connect__inner-container .notice-dismiss::before{color:#fff}.jp-wpcom-connect__container-top-text{padding:15px 35px 25px 15px;background-color:#069e08;color:#fff;display:flex;align-items:baseline}.jp-wpcom-connect__container-top-text svg{width:24px;height:24px;margin-right:10px;position:relative;top:7px}@media (max-width:530px){.jp-wpcom-connect__container-top-text svg{flex:1}}.jp-wpcom-connect__container-top-text svg path{fill:#fff}.jp-wpcom-connect__container-top-text span{display:inline-block}@media (max-width:530px){.jp-wpcom-connect__container-top-text span{flex:9}}.jp-wpcom-connect__container{display:block;position:relative;box-sizing:border-box;background-color:#069e08}.jp-wpcom-connect__inner-container>a:first-child{z-index:1}.jp-wpcom-connect__inner-container{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:left;background:#fff}.jp-wpcom-connect__content-container{width:1250px;position:relative;padding:2rem;z-index:0}.jp-wpcom-connect__content-container p{color:#6f6f6f;font-size:.875rem}.jp-wpcom-connect__content-container h2{margin-top:0;line-height:1.6;display:block;margin-bottom:1.5rem}@media (max-width:530px){.jp-wpcom-connect__hide-phone-and-smaller{display:none!important}}.jp-wpcom-connect__content-icon{margin:0 1.5rem;display:flex;flex-direction:column}.jp-connect-illo img{display:block;margin:0 auto}.jp-connect-illo .jetpack-logo{margin-bottom:2.25rem}@media (max-width:530px){.jp-connect-illo .jetpack-logo{margin-left:0}}@media (max-width:782px){.jp-connect-illo{width:100%;margin:.5rem 0;display:block}}@media (min-width:900px){.jp-wpcom-connect__slide-text{padding-left:2.8125rem}}.jp-wpcom-connect__slide{display:none}.jp-wpcom-connect__slide.jp__slide-is-active{display:flex;align-items:flex-start}@media (max-width:782px){.jp-wpcom-connect__slide.jp__slide-is-active{display:block}}.jp-wpcom-connect__slide ul{list-style:disc;padding:0 0 0 .9375rem}.jp-wpcom-connect__slide ul li{color:#6f6f6f;font-size:.75rem}.jp-banner__button-container .dops-button{margin:.3125rem 0}.jp-banner__button-container .dops-button.is-primary{background:#069e08;border-color:#00a523;padding-left:1.5rem;padding-right:1.5rem;flex-shrink:0}.jp-banner__button-container .dops-button.is-primary:focus,.jp-banner__button-container .dops-button.is-primary:hover{background:#00a523;border-color:#008b1d}.jp-banner__button-container .dops-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #008b1d}.jp-wpcom-connect__quest{position:relative;padding-left:2.8125rem;font-size:1.25rem}.jp-wpcom-connect__quest-marker.gridicon{position:absolute;left:0;top:-.1875rem;fill:#eec74f} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-connect-rtl.css b/plugins/jetpack/css/jetpack-connect-rtl.css
index 552d60c1..c5639550 100644
--- a/plugins/jetpack/css/jetpack-connect-rtl.css
+++ b/plugins/jetpack/css/jetpack-connect-rtl.css
@@ -27,17 +27,15 @@ https://github.com/thoughtbot/bourbon
width: 380px;
max-width: 100%;
margin: 1rem auto 0;
+ background: #FFFFFF;
}
-
-@media (min-width: 491px) {
- .jp-jetpack-connect__iframe {
- height: 390px;
- }
+.jp-jetpack-connect__site_connection .jp-jetpack-connect__iframe {
+ width: 600px;
+ height: 600px;
}
.jp-connect-full__button-container-loading {
margin-top: 84px;
display: block;
}
-
/*# sourceMappingURL=jetpack-connect-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-connect-rtl.min.css b/plugins/jetpack/css/jetpack-connect-rtl.min.css
index 4b44e3c4..e8aea43d 100644
--- a/plugins/jetpack/css/jetpack-connect-rtl.min.css
+++ b/plugins/jetpack/css/jetpack-connect-rtl.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.jp-jetpack-connect__iframe{height:340px;width:380px;max-width:100%;margin:1rem auto 0}@media (min-width:491px){.jp-jetpack-connect__iframe{height:390px}}.jp-connect-full__button-container-loading{margin-top:84px;display:block} \ No newline at end of file
+*/.jp-jetpack-connect__iframe{height:340px;width:380px;max-width:100%;margin:1rem auto 0;background:#fff}.jp-jetpack-connect__site_connection .jp-jetpack-connect__iframe{width:600px;height:600px}.jp-connect-full__button-container-loading{margin-top:84px;display:block} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-connect.css b/plugins/jetpack/css/jetpack-connect.css
index c73e8830..b14e5f79 100644
--- a/plugins/jetpack/css/jetpack-connect.css
+++ b/plugins/jetpack/css/jetpack-connect.css
@@ -27,17 +27,15 @@ https://github.com/thoughtbot/bourbon
width: 380px;
max-width: 100%;
margin: 1rem auto 0;
+ background: #FFFFFF;
}
-
-@media (min-width: 491px) {
- .jp-jetpack-connect__iframe {
- height: 390px;
- }
+.jp-jetpack-connect__site_connection .jp-jetpack-connect__iframe {
+ width: 600px;
+ height: 600px;
}
.jp-connect-full__button-container-loading {
margin-top: 84px;
display: block;
}
-
/*# sourceMappingURL=jetpack-connect.css.map */
diff --git a/plugins/jetpack/css/jetpack-connect.min.css b/plugins/jetpack/css/jetpack-connect.min.css
index 4b44e3c4..e8aea43d 100644
--- a/plugins/jetpack/css/jetpack-connect.min.css
+++ b/plugins/jetpack/css/jetpack-connect.min.css
@@ -1,3 +1,3 @@
@charset "UTF-8";/*!
* Do not modify this file directly. It is compiled SASS code.
-*/.jp-jetpack-connect__iframe{height:340px;width:380px;max-width:100%;margin:1rem auto 0}@media (min-width:491px){.jp-jetpack-connect__iframe{height:390px}}.jp-connect-full__button-container-loading{margin-top:84px;display:block} \ No newline at end of file
+*/.jp-jetpack-connect__iframe{height:340px;width:380px;max-width:100%;margin:1rem auto 0;background:#fff}.jp-jetpack-connect__site_connection .jp-jetpack-connect__iframe{width:600px;height:600px}.jp-connect-full__button-container-loading{margin-top:84px;display:block} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.css b/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.css
new file mode 100644
index 00000000..cd799724
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.css
@@ -0,0 +1,182 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+@charset "UTF-8";
+/*
+The MIT License (MIT)
+
+Copyright © 2011–2015 thoughtbot, inc.
+
+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.
+
+https://github.com/thoughtbot/bourbon
+*/
+#TB_window.jetpack-disconnect-modal {
+ max-width: 635px;
+ max-height: 600px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal {
+ max-height: 360px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_title {
+ font-size: 28px;
+ line-height: 24px;
+ font-weight: 600;
+ height: 24px;
+ padding: 24px;
+ color: #1d2327;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxWindowTitle {
+ padding-right: 0px;
+ margin-top: -2px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent {
+ width: auto !important;
+ padding: 0px;
+ max-height: 435px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal #TB_ajaxContent {
+ max-height: 203px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content {
+ padding: 24px;
+ padding-bottom: 80px;
+ margin-top: 0px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content {
+ padding-bottom: 24px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content p {
+ font-size: 16px;
+ line-height: 24px;
+ margin-top: 0px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul {
+ font-size: 16px;
+ line-height: 24px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li {
+ margin-bottom: 10px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span {
+ vertical-align: middle;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span.dashicons {
+ color: #eb0001;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton {
+ right: auto;
+ left: 22px;
+ color: #50575e;
+ top: 22px;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:after {
+ content: "\f335";
+ font: normal 32px/29px dashicons;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:hover, #TB_window.jetpack-disconnect-modal #TB_closeWindowButton:focus {
+ color: #a2a2a2;
+ outline: none;
+ box-shadow: none;
+}
+#TB_window.jetpack-disconnect-modal .tb-close-icon {
+ display: none;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row-container {
+ position: absolute;
+ bottom: 0px;
+ width: 100%;
+ border-top: 1px solid #c3c4c7;
+ background-color: white;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row {
+ position: relative;
+ margin: 24px;
+ text-align: right;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row {
+ flex-direction: row;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p {
+ font-size: 13px;
+ line-height: 1.5;
+ margin-top: auto;
+ margin-bottom: 0px;
+ margin-top: 0px;
+ padding-top: 0px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p {
+ padding-top: 5px;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button {
+ background: #f6f7f7;
+ border-color: #2271b1;
+ border-style: solid;
+ border-width: 1px;
+ color: #2271b1;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0;
+ outline: 0;
+ overflow: hidden;
+ font-size: 14px;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ vertical-align: top;
+ box-sizing: border-box;
+ font-size: 13px;
+ border-radius: 3px;
+ padding: 7px 14px 9px;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 100%;
+ margin-bottom: 18px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button {
+ margin-bottom: 0px;
+ margin-right: 18px;
+ width: auto;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate {
+ background: #d94f4f;
+ border-color: #a02222;
+ color: white;
+ margin-bottom: 0px;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate[disabled], #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate:disabled {
+ background: #eba3a3;
+ border-color: #e48484;
+}
+
+#jetpack_deactivation_dialog {
+ display: none;
+}
+/*# sourceMappingURL=jetpack-deactivate-dialog-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.min.css b/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.min.css
new file mode 100644
index 00000000..32e64776
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-deactivate-dialog-rtl.min.css
@@ -0,0 +1,3 @@
+@charset "UTF-8";/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/#TB_window.jetpack-disconnect-modal{max-width:635px;max-height:600px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal{max-height:360px}}#TB_window.jetpack-disconnect-modal #TB_title{font-size:28px;line-height:24px;font-weight:600;height:24px;padding:24px;color:#1d2327}#TB_window.jetpack-disconnect-modal #TB_ajaxWindowTitle{padding-right:0;margin-top:-2px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent{width:auto!important;padding:0;max-height:435px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal #TB_ajaxContent{max-height:203px}}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content{padding:24px;padding-bottom:80px;margin-top:0}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content{padding-bottom:24px}}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content p{font-size:16px;line-height:24px;margin-top:0}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul{font-size:16px;line-height:24px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li{margin-bottom:10px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span{vertical-align:middle}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span.dashicons{color:#eb0001}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton{right:auto;left:22px;color:#50575e;top:22px}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:focus,#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:hover{color:#a2a2a2;outline:0;box-shadow:none}#TB_window.jetpack-disconnect-modal .tb-close-icon{display:none}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row-container{position:absolute;bottom:0;width:100%;border-top:1px solid #c3c4c7;background-color:#fff}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row{position:relative;margin:24px;text-align:right;display:flex;flex-direction:column;justify-content:space-between}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row{flex-direction:row}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p{font-size:13px;line-height:1.5;margin-top:auto;margin-bottom:0;margin-top:0;padding-top:0}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p{padding-top:5px}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button{background:#f6f7f7;border-color:#2271b1;border-style:solid;border-width:1px;color:#2271b1;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:13px;border-radius:3px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none;width:100%;margin-bottom:18px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button{margin-bottom:0;margin-right:18px;width:auto}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate{background:#d94f4f;border-color:#a02222;color:#fff;margin-bottom:0}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate:disabled,#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate[disabled]{background:#eba3a3;border-color:#e48484}#jetpack_deactivation_dialog{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-deactivate-dialog.css b/plugins/jetpack/css/jetpack-deactivate-dialog.css
new file mode 100644
index 00000000..a5be42cc
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-deactivate-dialog.css
@@ -0,0 +1,182 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+@charset "UTF-8";
+/*
+The MIT License (MIT)
+
+Copyright © 2011–2015 thoughtbot, inc.
+
+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.
+
+https://github.com/thoughtbot/bourbon
+*/
+#TB_window.jetpack-disconnect-modal {
+ max-width: 635px;
+ max-height: 600px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal {
+ max-height: 360px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_title {
+ font-size: 28px;
+ line-height: 24px;
+ font-weight: 600;
+ height: 24px;
+ padding: 24px;
+ color: #1d2327;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxWindowTitle {
+ padding-left: 0px;
+ margin-top: -2px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent {
+ width: auto !important;
+ padding: 0px;
+ max-height: 435px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal #TB_ajaxContent {
+ max-height: 203px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content {
+ padding: 24px;
+ padding-bottom: 80px;
+ margin-top: 0px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content {
+ padding-bottom: 24px;
+ }
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content p {
+ font-size: 16px;
+ line-height: 24px;
+ margin-top: 0px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul {
+ font-size: 16px;
+ line-height: 24px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li {
+ margin-bottom: 10px;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span {
+ vertical-align: middle;
+}
+#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span.dashicons {
+ color: #eb0001;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton {
+ left: auto;
+ right: 22px;
+ color: #50575e;
+ top: 22px;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:after {
+ content: "\f335";
+ font: normal 32px/29px dashicons;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:hover, #TB_window.jetpack-disconnect-modal #TB_closeWindowButton:focus {
+ color: #a2a2a2;
+ outline: none;
+ box-shadow: none;
+}
+#TB_window.jetpack-disconnect-modal .tb-close-icon {
+ display: none;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row-container {
+ position: absolute;
+ bottom: 0px;
+ width: 100%;
+ border-top: 1px solid #c3c4c7;
+ background-color: white;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row {
+ position: relative;
+ margin: 24px;
+ text-align: left;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row {
+ flex-direction: row;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p {
+ font-size: 13px;
+ line-height: 1.5;
+ margin-top: auto;
+ margin-bottom: 0px;
+ margin-top: 0px;
+ padding-top: 0px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p {
+ padding-top: 5px;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button {
+ background: #f6f7f7;
+ border-color: #2271b1;
+ border-style: solid;
+ border-width: 1px;
+ color: #2271b1;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0;
+ outline: 0;
+ overflow: hidden;
+ font-size: 14px;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ vertical-align: top;
+ box-sizing: border-box;
+ font-size: 13px;
+ border-radius: 3px;
+ padding: 7px 14px 9px;
+ -webkit-appearance: none;
+ appearance: none;
+ width: 100%;
+ margin-bottom: 18px;
+}
+@media screen and (min-width: 661px) {
+ #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button {
+ margin-bottom: 0px;
+ margin-left: 18px;
+ width: auto;
+ }
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate {
+ background: #d94f4f;
+ border-color: #a02222;
+ color: white;
+ margin-bottom: 0px;
+}
+#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate[disabled], #TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate:disabled {
+ background: #eba3a3;
+ border-color: #e48484;
+}
+
+#jetpack_deactivation_dialog {
+ display: none;
+}
+/*# sourceMappingURL=jetpack-deactivate-dialog.css.map */
diff --git a/plugins/jetpack/css/jetpack-deactivate-dialog.min.css b/plugins/jetpack/css/jetpack-deactivate-dialog.min.css
new file mode 100644
index 00000000..50a12857
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-deactivate-dialog.min.css
@@ -0,0 +1,3 @@
+@charset "UTF-8";/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/#TB_window.jetpack-disconnect-modal{max-width:635px;max-height:600px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal{max-height:360px}}#TB_window.jetpack-disconnect-modal #TB_title{font-size:28px;line-height:24px;font-weight:600;height:24px;padding:24px;color:#1d2327}#TB_window.jetpack-disconnect-modal #TB_ajaxWindowTitle{padding-left:0;margin-top:-2px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent{width:auto!important;padding:0;max-height:435px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal #TB_ajaxContent{max-height:203px}}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content{padding:24px;padding-bottom:80px;margin-top:0}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content{padding-bottom:24px}}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content p{font-size:16px;line-height:24px;margin-top:0}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul{font-size:16px;line-height:24px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li{margin-bottom:10px}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span{vertical-align:middle}#TB_window.jetpack-disconnect-modal #TB_ajaxContent .jetpack_deactivation_dialog_content ul li span.dashicons{color:#eb0001}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton{left:auto;right:22px;color:#50575e;top:22px}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:after{content:"\f335";font:normal 32px/29px dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:focus,#TB_window.jetpack-disconnect-modal #TB_closeWindowButton:hover{color:#a2a2a2;outline:0;box-shadow:none}#TB_window.jetpack-disconnect-modal .tb-close-icon{display:none}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row-container{position:absolute;bottom:0;width:100%;border-top:1px solid #c3c4c7;background-color:#fff}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row{position:relative;margin:24px;text-align:left;display:flex;flex-direction:column;justify-content:space-between}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row{flex-direction:row}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p{font-size:13px;line-height:1.5;margin-top:auto;margin-bottom:0;margin-top:0;padding-top:0}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row p{padding-top:5px}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button{background:#f6f7f7;border-color:#2271b1;border-style:solid;border-width:1px;color:#2271b1;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:13px;border-radius:3px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none;width:100%;margin-bottom:18px}@media screen and (min-width:661px){#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button{margin-bottom:0;margin-left:18px;width:auto}}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate{background:#d94f4f;border-color:#a02222;color:#fff;margin-bottom:0}#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate:disabled,#TB_window.jetpack-disconnect-modal .jetpack_deactivation_dialog_content__buttons-row .jetpack_deactivation_dialog_content__buttons button#jetpack_deactivation_dialog_content__button-deactivate[disabled]{background:#eba3a3;border-color:#e48484}#jetpack_deactivation_dialog{display:none} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-icons-rtl.css b/plugins/jetpack/css/jetpack-icons-rtl.css
index 6286b54a..eb9c35c5 100644
--- a/plugins/jetpack/css/jetpack-icons-rtl.css
+++ b/plugins/jetpack/css/jetpack-icons-rtl.css
@@ -8,17 +8,24 @@
font-weight: normal;
font-style: normal;
}
-
@media screen and (-webkit-min-device-pixel-ratio: 0) {
@font-face {
font-family: "jetpack";
src: url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");
}
}
-
li.toplevel_page_jetpack .wp-menu-image:before {
- font-family: 'jetpack' !important;
- content: '\f100';
+ font-family: "jetpack" !important;
+ content: "\f100";
}
+#menu-posts-feedback .wp-menu-image:before {
+ font-family: dashicons !important;
+ content: "\f175";
+}
+
+#adminmenu #menu-posts-feedback div.wp-menu-image {
+ background: none !important;
+ background-repeat: no-repeat;
+}
/*# sourceMappingURL=jetpack-icons-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-icons-rtl.min.css b/plugins/jetpack/css/jetpack-icons-rtl.min.css
index 631977a4..8a2e8a7d 100644
--- a/plugins/jetpack/css/jetpack-icons-rtl.min.css
+++ b/plugins/jetpack/css/jetpack-icons-rtl.min.css
@@ -1,3 +1,3 @@
/*!
* Do not modify this file directly. It is compiled SASS code.
-*/@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.eot);src:url(../_inc/fonts/jetpack/jetpack.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/jetpack/jetpack.woff) format("woff"),url(../_inc/fonts/jetpack/jetpack.ttf) format("truetype"),url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg")}}li.toplevel_page_jetpack .wp-menu-image:before{font-family:jetpack!important;content:'\f100'} \ No newline at end of file
+*/@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.eot);src:url(../_inc/fonts/jetpack/jetpack.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/jetpack/jetpack.woff) format("woff"),url(../_inc/fonts/jetpack/jetpack.ttf) format("truetype"),url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg")}}li.toplevel_page_jetpack .wp-menu-image:before{font-family:jetpack!important;content:"\f100"}#menu-posts-feedback .wp-menu-image:before{font-family:dashicons!important;content:"\f175"}#adminmenu #menu-posts-feedback div.wp-menu-image{background:0 0!important;background-repeat:no-repeat} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-icons.css b/plugins/jetpack/css/jetpack-icons.css
index 16605acd..6eeb2d04 100644
--- a/plugins/jetpack/css/jetpack-icons.css
+++ b/plugins/jetpack/css/jetpack-icons.css
@@ -8,17 +8,24 @@
font-weight: normal;
font-style: normal;
}
-
@media screen and (-webkit-min-device-pixel-ratio: 0) {
@font-face {
font-family: "jetpack";
src: url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");
}
}
-
li.toplevel_page_jetpack .wp-menu-image:before {
- font-family: 'jetpack' !important;
- content: '\f100';
+ font-family: "jetpack" !important;
+ content: "\f100";
}
+#menu-posts-feedback .wp-menu-image:before {
+ font-family: dashicons !important;
+ content: "\f175";
+}
+
+#adminmenu #menu-posts-feedback div.wp-menu-image {
+ background: none !important;
+ background-repeat: no-repeat;
+}
/*# sourceMappingURL=jetpack-icons.css.map */
diff --git a/plugins/jetpack/css/jetpack-icons.min.css b/plugins/jetpack/css/jetpack-icons.min.css
index 631977a4..8a2e8a7d 100644
--- a/plugins/jetpack/css/jetpack-icons.min.css
+++ b/plugins/jetpack/css/jetpack-icons.min.css
@@ -1,3 +1,3 @@
/*!
* Do not modify this file directly. It is compiled SASS code.
-*/@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.eot);src:url(../_inc/fonts/jetpack/jetpack.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/jetpack/jetpack.woff) format("woff"),url(../_inc/fonts/jetpack/jetpack.ttf) format("truetype"),url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg")}}li.toplevel_page_jetpack .wp-menu-image:before{font-family:jetpack!important;content:'\f100'} \ No newline at end of file
+*/@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.eot);src:url(../_inc/fonts/jetpack/jetpack.eot?#iefix) format("embedded-opentype"),url(../_inc/fonts/jetpack/jetpack.woff) format("woff"),url(../_inc/fonts/jetpack/jetpack.ttf) format("truetype"),url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:jetpack;src:url(../_inc/fonts/jetpack/jetpack.svg#jetpack) format("svg")}}li.toplevel_page_jetpack .wp-menu-image:before{font-family:jetpack!important;content:"\f100"}#menu-posts-feedback .wp-menu-image:before{font-family:dashicons!important;content:"\f175"}#adminmenu #menu-posts-feedback div.wp-menu-image{background:0 0!important;background-repeat:no-repeat} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-recommendations-banner-rtl.css b/plugins/jetpack/css/jetpack-recommendations-banner-rtl.css
new file mode 100644
index 00000000..360a9f66
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-recommendations-banner-rtl.css
@@ -0,0 +1,241 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+.jp-recommendations-banner-main {
+ position: relative;
+ display: grid;
+ grid-template-columns: 55% 45%;
+ max-width: 1600px;
+ min-height: 480px;
+ background: linear-gradient(-120deg, white 0%, white 55%, #c5d9ed 55%);
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.03), 0px 1px 2px rgba(0, 0, 0, 0.03);
+ border: 1px solid #d5d5d5;
+ margin: 3rem 0 1.25rem 1.25rem;
+}
+@media (max-width: 1152px) {
+ .jp-recommendations-banner-main {
+ margin: 4rem 0 1.25rem 1.25rem;
+ grid-template-columns: 100% 0%;
+ }
+}
+@media (min-width: 1688px) {
+ .jp-recommendations-banner-main {
+ grid-template-columns: 65% 35%;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner-main .notice-dismiss {
+ padding: 16px;
+ }
+}
+
+.jp-recommendations-banner__content {
+ display: flex;
+ flex-direction: column;
+ padding-left: 48px;
+}
+@media (min-width: 1688px) {
+ .jp-recommendations-banner__content {
+ max-width: 600px;
+ }
+}
+@media (max-width: 660px) {
+ .jp-recommendations-banner__content {
+ padding-left: 32px;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__content {
+ padding-left: 16px;
+ }
+}
+
+.jp-recommendations-banner__logo {
+ margin: 32px 32px 0 32px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__logo {
+ margin: 16px 16px 32px 16px;
+ }
+}
+
+.jp-recommendations-banner__question {
+ font-size: 1.5rem;
+ line-height: 1.4;
+ margin: 32px 32px 0 32px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__question {
+ margin: 0 16px 32px 16px;
+ }
+}
+
+.jp-recommendations-banner__description {
+ font-size: 16px;
+ margin: 32px 32px 24px 0;
+}
+@media (min-width: 1152px) {
+ .jp-recommendations-banner__description {
+ max-width: 600px;
+ }
+}
+@media (max-width: 660px) {
+ .jp-recommendations-banner__description {
+ margin: 32px 32px 24px 32px;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__description {
+ margin: 0 16px 16px 16px;
+ }
+}
+
+.jp-recommendations-banner__answer {
+ max-width: 600px;
+ text-align: center;
+ margin: 0 32px 32px 0;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__answer {
+ margin: 0 16px 16px 0;
+ }
+}
+
+.jp-recommendations-banner__checkboxes {
+ display: grid;
+ gap: 16px;
+ grid-template-rows: auto auto;
+ grid-template-columns: auto auto;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__checkboxes {
+ grid-template-rows: auto auto auto auto;
+ grid-template-columns: auto;
+ }
+}
+
+.jp-recommendations-answer__checkbox-label {
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+ border: 1px solid #d5d5d5;
+ border-radius: 4px;
+ cursor: pointer;
+ background: white;
+}
+.jp-recommendations-answer__checkbox-label.checked {
+ background: #f8fbff;
+ border: 1px solid #3582c4;
+}
+.jp-recommendations-answer__checkbox-label input {
+ margin: 16px 16px 16px 8px;
+}
+
+.jp-recommendations-answer__title {
+ margin-left: 8px;
+ padding: 15px 0;
+ text-align: right;
+}
+
+.jp-recommendations-banner__form {
+ margin-bottom: 16px;
+}
+
+.jp-recommendations-banner__continue-button {
+ background: #2271b1;
+ border-color: #2271b1;
+ color: white;
+ border-style: solid;
+ border-width: 1px;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0 0 8px 0;
+ outline: 0;
+ overflow: hidden;
+ font-size: 0.875rem;
+ text-overflow: ellipsis;
+ vertical-align: top;
+ box-sizing: border-box;
+ border-radius: 3px;
+ padding: 7px 14px 9px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__continue-button {
+ width: 100%;
+ }
+}
+.jp-recommendations-banner__continue-button:hover {
+ background: #0a4b78;
+ border-color: #0a4b78;
+ color: white;
+}
+
+.jp-recommendations-banner__continue-description {
+ color: #646970;
+ margin: 24px auto 0 auto;
+ max-width: 300px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__continue-description {
+ display: none;
+ }
+}
+
+.jp-recommendations-banner__illustration-container {
+ width: 100%;
+ position: relative;
+}
+.jp-recommendations-banner__illustration-container img {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+}
+@media (min-width: 1152px) {
+ .jp-recommendations-banner__illustration-container {
+ overflow: hidden;
+ }
+}
+@media (max-width: 1688px) {
+ .jp-recommendations-banner__illustration-container img {
+ bottom: -24px;
+ }
+}
+@media (max-width: 1600px) {
+ .jp-recommendations-banner__illustration-container img {
+ bottom: 0;
+ }
+}
+
+.jp-recommendations-banner__illustration-background {
+ width: 100%;
+ max-height: 480px;
+}
+
+.jp-recommendations-banner__illustration-foreground {
+ width: 75%;
+ margin: 10%;
+}
+
+.jp-recommendations-banner__notice-dismiss {
+ background: 100% 0;
+ border: none;
+ color: #3c434a;
+ cursor: pointer;
+ display: flex;
+ font-size: 16px;
+ line-height: 1.5;
+ margin: 0;
+ padding: 32px 0 32px 32px;
+ float: left;
+}
+.jp-recommendations-banner__notice-dismiss:hover, .jp-recommendations-banner__notice-dismiss:active {
+ color: #101517;
+}
+.jp-recommendations-banner__notice-dismiss:hover .jp-recommendations-banner__svg-dismiss, .jp-recommendations-banner__notice-dismiss:active .jp-recommendations-banner__svg-dismiss {
+ fill: #101517;
+}
+.jp-recommendations-banner__notice-dismiss .jp-recommendations-banner__svg-dismiss {
+ fill: #3c434a;
+ margin-left: 4px;
+}
+/*# sourceMappingURL=jetpack-recommendations-banner-rtl.css.map */
diff --git a/plugins/jetpack/css/jetpack-recommendations-banner-rtl.min.css b/plugins/jetpack/css/jetpack-recommendations-banner-rtl.min.css
new file mode 100644
index 00000000..115a8a42
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-recommendations-banner-rtl.min.css
@@ -0,0 +1,3 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/.jp-recommendations-banner-main{position:relative;display:grid;grid-template-columns:55% 45%;max-width:1600px;min-height:480px;background:linear-gradient(-120deg,#fff 0,#fff 55%,#c5d9ed 55%);box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);border:1px solid #d5d5d5;margin:3rem 0 1.25rem 1.25rem}@media (max-width:1152px){.jp-recommendations-banner-main{margin:4rem 0 1.25rem 1.25rem;grid-template-columns:100% 0}}@media (min-width:1688px){.jp-recommendations-banner-main{grid-template-columns:65% 35%}}@media (max-width:480px){.jp-recommendations-banner-main .notice-dismiss{padding:16px}}.jp-recommendations-banner__content{display:flex;flex-direction:column;padding-left:48px}@media (min-width:1688px){.jp-recommendations-banner__content{max-width:600px}}@media (max-width:660px){.jp-recommendations-banner__content{padding-left:32px}}@media (max-width:480px){.jp-recommendations-banner__content{padding-left:16px}}.jp-recommendations-banner__logo{margin:32px 32px 0 32px}@media (max-width:480px){.jp-recommendations-banner__logo{margin:16px 16px 32px 16px}}.jp-recommendations-banner__question{font-size:1.5rem;line-height:1.4;margin:32px 32px 0 32px}@media (max-width:480px){.jp-recommendations-banner__question{margin:0 16px 32px 16px}}.jp-recommendations-banner__description{font-size:16px;margin:32px 32px 24px 0}@media (min-width:1152px){.jp-recommendations-banner__description{max-width:600px}}@media (max-width:660px){.jp-recommendations-banner__description{margin:32px 32px 24px 32px}}@media (max-width:480px){.jp-recommendations-banner__description{margin:0 16px 16px 16px}}.jp-recommendations-banner__answer{max-width:600px;text-align:center;margin:0 32px 32px 0}@media (max-width:480px){.jp-recommendations-banner__answer{margin:0 16px 16px 0}}.jp-recommendations-banner__checkboxes{display:grid;gap:16px;grid-template-rows:auto auto;grid-template-columns:auto auto}@media (max-width:480px){.jp-recommendations-banner__checkboxes{grid-template-rows:auto auto auto auto;grid-template-columns:auto}}.jp-recommendations-answer__checkbox-label{display:flex;align-items:center;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:4px;cursor:pointer;background:#fff}.jp-recommendations-answer__checkbox-label.checked{background:#f8fbff;border:1px solid #3582c4}.jp-recommendations-answer__checkbox-label input{margin:16px 16px 16px 8px}.jp-recommendations-answer__title{margin-left:8px;padding:15px 0;text-align:right}.jp-recommendations-banner__form{margin-bottom:16px}.jp-recommendations-banner__continue-button{background:#2271b1;border-color:#2271b1;color:#fff;border-style:solid;border-width:1px;cursor:pointer;display:inline-block;margin:0 0 8px 0;outline:0;overflow:hidden;font-size:.875rem;text-overflow:ellipsis;vertical-align:top;box-sizing:border-box;border-radius:3px;padding:7px 14px 9px}@media (max-width:480px){.jp-recommendations-banner__continue-button{width:100%}}.jp-recommendations-banner__continue-button:hover{background:#0a4b78;border-color:#0a4b78;color:#fff}.jp-recommendations-banner__continue-description{color:#646970;margin:24px auto 0 auto;max-width:300px}@media (max-width:480px){.jp-recommendations-banner__continue-description{display:none}}.jp-recommendations-banner__illustration-container{width:100%;position:relative}.jp-recommendations-banner__illustration-container img{position:absolute;bottom:0;left:0}@media (min-width:1152px){.jp-recommendations-banner__illustration-container{overflow:hidden}}@media (max-width:1688px){.jp-recommendations-banner__illustration-container img{bottom:-24px}}@media (max-width:1600px){.jp-recommendations-banner__illustration-container img{bottom:0}}.jp-recommendations-banner__illustration-background{width:100%;max-height:480px}.jp-recommendations-banner__illustration-foreground{width:75%;margin:10%}.jp-recommendations-banner__notice-dismiss{background:100% 0;border:none;color:#3c434a;cursor:pointer;display:flex;font-size:16px;line-height:1.5;margin:0;padding:32px 0 32px 32px;float:left}.jp-recommendations-banner__notice-dismiss:active,.jp-recommendations-banner__notice-dismiss:hover{color:#101517}.jp-recommendations-banner__notice-dismiss:active .jp-recommendations-banner__svg-dismiss,.jp-recommendations-banner__notice-dismiss:hover .jp-recommendations-banner__svg-dismiss{fill:#101517}.jp-recommendations-banner__notice-dismiss .jp-recommendations-banner__svg-dismiss{fill:#3c434a;margin-left:4px} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-recommendations-banner.css b/plugins/jetpack/css/jetpack-recommendations-banner.css
new file mode 100644
index 00000000..6a6fed18
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-recommendations-banner.css
@@ -0,0 +1,241 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+.jp-recommendations-banner-main {
+ position: relative;
+ display: grid;
+ grid-template-columns: 55% 45%;
+ max-width: 1600px;
+ min-height: 480px;
+ background: linear-gradient(120deg, white 0%, white 55%, #c5d9ed 55%);
+ box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.03), 0px 1px 2px rgba(0, 0, 0, 0.03);
+ border: 1px solid #d5d5d5;
+ margin: 3rem 1.25rem 1.25rem 0;
+}
+@media (max-width: 1152px) {
+ .jp-recommendations-banner-main {
+ margin: 4rem 1.25rem 1.25rem 0;
+ grid-template-columns: 100% 0%;
+ }
+}
+@media (min-width: 1688px) {
+ .jp-recommendations-banner-main {
+ grid-template-columns: 65% 35%;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner-main .notice-dismiss {
+ padding: 16px;
+ }
+}
+
+.jp-recommendations-banner__content {
+ display: flex;
+ flex-direction: column;
+ padding-right: 48px;
+}
+@media (min-width: 1688px) {
+ .jp-recommendations-banner__content {
+ max-width: 600px;
+ }
+}
+@media (max-width: 660px) {
+ .jp-recommendations-banner__content {
+ padding-right: 32px;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__content {
+ padding-right: 16px;
+ }
+}
+
+.jp-recommendations-banner__logo {
+ margin: 32px 32px 0 32px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__logo {
+ margin: 16px 16px 32px 16px;
+ }
+}
+
+.jp-recommendations-banner__question {
+ font-size: 1.5rem;
+ line-height: 1.4;
+ margin: 32px 32px 0 32px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__question {
+ margin: 0 16px 32px 16px;
+ }
+}
+
+.jp-recommendations-banner__description {
+ font-size: 16px;
+ margin: 32px 0 24px 32px;
+}
+@media (min-width: 1152px) {
+ .jp-recommendations-banner__description {
+ max-width: 600px;
+ }
+}
+@media (max-width: 660px) {
+ .jp-recommendations-banner__description {
+ margin: 32px 32px 24px 32px;
+ }
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__description {
+ margin: 0 16px 16px 16px;
+ }
+}
+
+.jp-recommendations-banner__answer {
+ max-width: 600px;
+ text-align: center;
+ margin: 0 0 32px 32px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__answer {
+ margin: 0 0 16px 16px;
+ }
+}
+
+.jp-recommendations-banner__checkboxes {
+ display: grid;
+ gap: 16px;
+ grid-template-rows: auto auto;
+ grid-template-columns: auto auto;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__checkboxes {
+ grid-template-rows: auto auto auto auto;
+ grid-template-columns: auto;
+ }
+}
+
+.jp-recommendations-answer__checkbox-label {
+ display: flex;
+ align-items: center;
+ box-sizing: border-box;
+ border: 1px solid #d5d5d5;
+ border-radius: 4px;
+ cursor: pointer;
+ background: white;
+}
+.jp-recommendations-answer__checkbox-label.checked {
+ background: #f8fbff;
+ border: 1px solid #3582c4;
+}
+.jp-recommendations-answer__checkbox-label input {
+ margin: 16px 8px 16px 16px;
+}
+
+.jp-recommendations-answer__title {
+ margin-right: 8px;
+ padding: 15px 0;
+ text-align: left;
+}
+
+.jp-recommendations-banner__form {
+ margin-bottom: 16px;
+}
+
+.jp-recommendations-banner__continue-button {
+ background: #2271b1;
+ border-color: #2271b1;
+ color: white;
+ border-style: solid;
+ border-width: 1px;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0 0 8px 0;
+ outline: 0;
+ overflow: hidden;
+ font-size: 0.875rem;
+ text-overflow: ellipsis;
+ vertical-align: top;
+ box-sizing: border-box;
+ border-radius: 3px;
+ padding: 7px 14px 9px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__continue-button {
+ width: 100%;
+ }
+}
+.jp-recommendations-banner__continue-button:hover {
+ background: #0a4b78;
+ border-color: #0a4b78;
+ color: white;
+}
+
+.jp-recommendations-banner__continue-description {
+ color: #646970;
+ margin: 24px auto 0 auto;
+ max-width: 300px;
+}
+@media (max-width: 480px) {
+ .jp-recommendations-banner__continue-description {
+ display: none;
+ }
+}
+
+.jp-recommendations-banner__illustration-container {
+ width: 100%;
+ position: relative;
+}
+.jp-recommendations-banner__illustration-container img {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+}
+@media (min-width: 1152px) {
+ .jp-recommendations-banner__illustration-container {
+ overflow: hidden;
+ }
+}
+@media (max-width: 1688px) {
+ .jp-recommendations-banner__illustration-container img {
+ bottom: -24px;
+ }
+}
+@media (max-width: 1600px) {
+ .jp-recommendations-banner__illustration-container img {
+ bottom: 0;
+ }
+}
+
+.jp-recommendations-banner__illustration-background {
+ width: 100%;
+ max-height: 480px;
+}
+
+.jp-recommendations-banner__illustration-foreground {
+ width: 75%;
+ margin: 10%;
+}
+
+.jp-recommendations-banner__notice-dismiss {
+ background: 0 0;
+ border: none;
+ color: #3c434a;
+ cursor: pointer;
+ display: flex;
+ font-size: 16px;
+ line-height: 1.5;
+ margin: 0;
+ padding: 32px 32px 32px 0;
+ float: right;
+}
+.jp-recommendations-banner__notice-dismiss:hover, .jp-recommendations-banner__notice-dismiss:active {
+ color: #101517;
+}
+.jp-recommendations-banner__notice-dismiss:hover .jp-recommendations-banner__svg-dismiss, .jp-recommendations-banner__notice-dismiss:active .jp-recommendations-banner__svg-dismiss {
+ fill: #101517;
+}
+.jp-recommendations-banner__notice-dismiss .jp-recommendations-banner__svg-dismiss {
+ fill: #3c434a;
+ margin-right: 4px;
+}
+/*# sourceMappingURL=jetpack-recommendations-banner.css.map */
diff --git a/plugins/jetpack/css/jetpack-recommendations-banner.min.css b/plugins/jetpack/css/jetpack-recommendations-banner.min.css
new file mode 100644
index 00000000..5aadf673
--- /dev/null
+++ b/plugins/jetpack/css/jetpack-recommendations-banner.min.css
@@ -0,0 +1,3 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/.jp-recommendations-banner-main{position:relative;display:grid;grid-template-columns:55% 45%;max-width:1600px;min-height:480px;background:linear-gradient(120deg,#fff 0,#fff 55%,#c5d9ed 55%);box-shadow:0 2px 6px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.03);border:1px solid #d5d5d5;margin:3rem 1.25rem 1.25rem 0}@media (max-width:1152px){.jp-recommendations-banner-main{margin:4rem 1.25rem 1.25rem 0;grid-template-columns:100% 0}}@media (min-width:1688px){.jp-recommendations-banner-main{grid-template-columns:65% 35%}}@media (max-width:480px){.jp-recommendations-banner-main .notice-dismiss{padding:16px}}.jp-recommendations-banner__content{display:flex;flex-direction:column;padding-right:48px}@media (min-width:1688px){.jp-recommendations-banner__content{max-width:600px}}@media (max-width:660px){.jp-recommendations-banner__content{padding-right:32px}}@media (max-width:480px){.jp-recommendations-banner__content{padding-right:16px}}.jp-recommendations-banner__logo{margin:32px 32px 0 32px}@media (max-width:480px){.jp-recommendations-banner__logo{margin:16px 16px 32px 16px}}.jp-recommendations-banner__question{font-size:1.5rem;line-height:1.4;margin:32px 32px 0 32px}@media (max-width:480px){.jp-recommendations-banner__question{margin:0 16px 32px 16px}}.jp-recommendations-banner__description{font-size:16px;margin:32px 0 24px 32px}@media (min-width:1152px){.jp-recommendations-banner__description{max-width:600px}}@media (max-width:660px){.jp-recommendations-banner__description{margin:32px 32px 24px 32px}}@media (max-width:480px){.jp-recommendations-banner__description{margin:0 16px 16px 16px}}.jp-recommendations-banner__answer{max-width:600px;text-align:center;margin:0 0 32px 32px}@media (max-width:480px){.jp-recommendations-banner__answer{margin:0 0 16px 16px}}.jp-recommendations-banner__checkboxes{display:grid;gap:16px;grid-template-rows:auto auto;grid-template-columns:auto auto}@media (max-width:480px){.jp-recommendations-banner__checkboxes{grid-template-rows:auto auto auto auto;grid-template-columns:auto}}.jp-recommendations-answer__checkbox-label{display:flex;align-items:center;box-sizing:border-box;border:1px solid #d5d5d5;border-radius:4px;cursor:pointer;background:#fff}.jp-recommendations-answer__checkbox-label.checked{background:#f8fbff;border:1px solid #3582c4}.jp-recommendations-answer__checkbox-label input{margin:16px 8px 16px 16px}.jp-recommendations-answer__title{margin-right:8px;padding:15px 0;text-align:left}.jp-recommendations-banner__form{margin-bottom:16px}.jp-recommendations-banner__continue-button{background:#2271b1;border-color:#2271b1;color:#fff;border-style:solid;border-width:1px;cursor:pointer;display:inline-block;margin:0 0 8px 0;outline:0;overflow:hidden;font-size:.875rem;text-overflow:ellipsis;vertical-align:top;box-sizing:border-box;border-radius:3px;padding:7px 14px 9px}@media (max-width:480px){.jp-recommendations-banner__continue-button{width:100%}}.jp-recommendations-banner__continue-button:hover{background:#0a4b78;border-color:#0a4b78;color:#fff}.jp-recommendations-banner__continue-description{color:#646970;margin:24px auto 0 auto;max-width:300px}@media (max-width:480px){.jp-recommendations-banner__continue-description{display:none}}.jp-recommendations-banner__illustration-container{width:100%;position:relative}.jp-recommendations-banner__illustration-container img{position:absolute;bottom:0;right:0}@media (min-width:1152px){.jp-recommendations-banner__illustration-container{overflow:hidden}}@media (max-width:1688px){.jp-recommendations-banner__illustration-container img{bottom:-24px}}@media (max-width:1600px){.jp-recommendations-banner__illustration-container img{bottom:0}}.jp-recommendations-banner__illustration-background{width:100%;max-height:480px}.jp-recommendations-banner__illustration-foreground{width:75%;margin:10%}.jp-recommendations-banner__notice-dismiss{background:0 0;border:none;color:#3c434a;cursor:pointer;display:flex;font-size:16px;line-height:1.5;margin:0;padding:32px 32px 32px 0;float:right}.jp-recommendations-banner__notice-dismiss:active,.jp-recommendations-banner__notice-dismiss:hover{color:#101517}.jp-recommendations-banner__notice-dismiss:active .jp-recommendations-banner__svg-dismiss,.jp-recommendations-banner__notice-dismiss:hover .jp-recommendations-banner__svg-dismiss{fill:#101517}.jp-recommendations-banner__notice-dismiss .jp-recommendations-banner__svg-dismiss{fill:#3c434a;margin-right:4px} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack-rtl.css b/plugins/jetpack/css/jetpack-rtl.css
index c61b196c..9f60c922 100644
--- a/plugins/jetpack/css/jetpack-rtl.css
+++ b/plugins/jetpack/css/jetpack-rtl.css
@@ -1,30 +1,33 @@
/*!
* Do not modify this file directly. It is concatenated from individual module CSS files.
*/
-[data-carousel-extra]{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-overlay{background:#000}div.jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background:-webkit-gradient(linear,right bottom,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));position:fixed;bottom:0;z-index:2147483647;width:100%;height:15px}.jp-carousel-next-button span,.jp-carousel-previous-button span{background:url(../modules/carousel/images/arrows.png) no-repeat center center;background-size:200px 126px}.jp-carousel-msg{font-family:"Open Sans",sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.jp-carousel-next-button span,.jp-carousel-previous-button span{background-image:url(../modules/carousel/images/arrows-2x.png)}}.jp-carousel-wrap{font-family:"Helvetica Neue",sans-serif!important}.jp-carousel-info{position:absolute;bottom:0;text-align:right!important;-webkit-font-smoothing:subpixel-antialiased!important}.jp-carousel-info ::selection{background:#68c9e8;color:#fff}.jp-carousel-info ::-moz-selection{background:#68c9e8;color:#fff}.jp-carousel-photo-info{position:relative;right:25%;width:50%}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-info h2{background:100% 0!important;border:none!important;color:#999;display:block!important;font:normal 13px/1.25em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;margin:7px 0 0 0!important;padding:10px 0 0!important;overflow:hidden;text-align:right;text-shadow:none!important;text-transform:none!important;-webkit-font-smoothing:subpixel-antialiased}.jp-carousel-next-button,.jp-carousel-previous-button{text-indent:-9999px;overflow:hidden;cursor:pointer}.jp-carousel-next-button span,.jp-carousel-previous-button span{position:absolute;top:0;bottom:0;width:82px;zoom:1;opacity:.2}.jp-carousel-transitions .jp-carousel-next-button span,.jp-carousel-transitions .jp-carousel-previous-button span{transition:.5s opacity ease-out}.jp-carousel-next-button:hover span,.jp-carousel-previous-button:hover span{opacity:.6}.jp-carousel-next-button span{background-position:-110px center;left:0}.jp-carousel-previous-button span{background-position:-10px center;right:0}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:#999;font:normal 11px/1.2em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;padding:5px 0 5px 2px;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:#68c9e8;border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-next-button,.jp-carousel-previous-button,.jp-carousel-slide,.jp-carousel-slide img{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.jp-carousel-slide{position:fixed;width:0;bottom:0;background-color:#000;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}.jp-carousel-transitions .jp-carousel-slide{transition:.3s ease-out}.jp-carousel-slide.selected{position:absolute!important;opacity:1}.jp-carousel-slide{opacity:.25}.jp-carousel-slide img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;background:100% 0!important;border:none!important;padding:0!important;box-shadow:0 2px 8px rgba(0,0,0,.1);zoom:1}.jp-carousel-transitions .jp-carousel-slide{transition:opacity .4s linear}.jp-carousel-close-hint{color:#999;cursor:default;letter-spacing:0!important;padding:.35em 0 0;position:absolute;text-align:left;width:90%}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint span{cursor:pointer;background-color:#000;background-color:rgba(0,0,0,.8);display:inline-block;height:22px;font:400 24px/1 "Helvetica Neue",sans-serif!important;line-height:22px;margin:0 .4em 0 0;text-align:center;vertical-align:middle;width:22px;border-radius:4px}.jp-carousel-transitions .jp-carousel-close-hint span{transition:border-color .2s linear}.jp-carousel-close-hint:hover{cursor:default;color:#fff}.jp-carousel-close-hint:hover span{border-color:#fff}a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background:url(../modules/carousel/images/carousel-sprite.png?5) no-repeat;background-size:16px 200px}div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{margin:0 0 0 14px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#303030;padding-left:8px!important;border-radius:2px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{margin:0 -12px 0 2px!important}div.jp-carousel-buttons a.jp-carousel-reblog,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{background-position:6px -36px;padding-left:auto!important;padding-right:26px!important;color:#999}div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:100% -156px;padding-right:19px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{cursor:default}div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:6px -56px;color:#68c9e8}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background-image:url(../modules/carousel/images/carousel-sprite-2x.png?5)}}div#carousel-reblog-box{background:#222;background:-moz-linear-gradient(bottom,#222,#333);background:-webkit-gradient(linear,right bottom,right top,from(#222),to(#333));padding:3px 0 0;display:none;margin:5px auto 0;border-radius:2px;box-shadow:0 0 20px rgba(0,0,0,.9);height:74px;width:565px}#carousel-reblog-box textarea{background:#999;font:13px/1.4 "Helvetica Neue",sans-serif!important;color:#444;padding:3px 6px;width:370px;height:48px;float:right;margin:6px 9px 0 9px;border:1px solid #666;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px}#carousel-reblog-box textarea:focus{background:#ccc;color:#222}#carousel-reblog-box label{color:#aaa;font-size:11px;padding-left:2px;padding-right:2px;display:inline;font-weight:400}#carousel-reblog-box select{width:110px;padding:0;font-size:12px;font-family:"Helvetica Neue",sans-serif!important;background:#333;color:#eee;border:1px solid #444;margin-top:5px}#carousel-reblog-box .submit,#wrapper #carousel-reblog-box p.response{float:right;width:154px;padding-top:0;padding-right:1px;overflow:hidden;height:34px;margin:3px 2px 0 0!important}#wrapper #carousel-reblog-box p.response{font-size:13px;clear:none;padding-right:2px;height:34px;color:#aaa}#carousel-reblog-box input#carousel-reblog-submit,#jp-carousel-comment-form-button-submit{font:13px/24px "Helvetica Neue",sans-serif!important;margin-top:8px;padding:0 10px!important;border-radius:1em;height:24px;color:#333;cursor:pointer;font-weight:400;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#ccc);background:-webkit-gradient(linear,right bottom,right top,from(#aaa),to(#ccc));border:1px solid #444}#carousel-reblog-box input#carousel-reblog-submit:hover,#jp-carousel-comment-form-button-submit:hover{background:#ccc;background:-moz-linear-gradient(bottom,#ccc,#eee);background:-webkit-gradient(linear,right bottom,right top,from(#ccc),to(#eee))}#carousel-reblog-box .canceltext{color:#aaa;font-size:11px;line-height:24px}#carousel-reblog-box .canceltext a{color:#fff}.jp-carousel-titleanddesc{border-top:1px solid #222;color:#999;font-size:15px;padding-top:24px;margin-bottom:20px;font-weight:400}.jp-carousel-titleanddesc-title{font:300 1.5em/1.1 "Helvetica Neue",sans-serif!important;text-transform:none!important;color:#fff;margin:0 0 15px;padding:0}.jp-carousel-titleanddesc-desc p{color:#999;line-height:1.4;margin-bottom:.75em}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-titleanddesc p a{color:#fff!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-titleanddesc p b,.jp-carousel-titleanddesc p strong{font-weight:700;color:#999}.jp-carousel-titleanddesc p em,.jp-carousel-titleanddesc p i{font-style:italic;color:#999}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-titleanddesc p a:hover{color:#68c9e8!important}.jp-carousel-titleanddesc p:empty{display:none}.jp-carousel-left-column-wrapper h1:after,.jp-carousel-left-column-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-image-meta{background:#111;border:1px solid #222;color:#fff;font-size:13px;font:12px/1.4 "Helvetica Neue",sans-serif!important;overflow:hidden;padding:18px 20px;width:209px!important}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:"Helvetica Neue",sans-serif!important;position:inherit!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;background:100% 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 0 15px 2%!important;color:#fff!important;font-size:13px!important}.jp-carousel-image-meta h5{color:#999!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{padding-right:23px;display:inline-block;clear:both;color:#999;line-height:1;font-weight:400;font-size:13px;text-decoration:none;background-position:100% -82px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-right:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 2px 0 1px}a.jp-carousel-image-download:hover{background-position:100% -122px;color:#68c9e8;border:none!important}.jp-carousel-image-map{position:relative;margin:-20px -20px 20px;border-bottom:1px solid rgba(255,255,255,.17);height:154px}.jp-carousel-image-map img.gmap-main{border-top-right-radius:6px;border-left:1px solid rgba(255,255,255,.17)}.jp-carousel-image-map div.gmap-topright{width:94px;height:154px;position:absolute;top:0;left:0}.jp-carousel-image-map div.imgclip{overflow:hidden;border-top-left-radius:6px}.jp-carousel-image-map div.gmap-topright img{margin-right:-40px}.jp-carousel-image-map img.gmap-bottomright{position:absolute;top:96px;left:0}.jp-carousel-comments{font:15px/1.7 "Helvetica Neue",sans-serif!important;font-weight:400;background:none transparent}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:#68c9e8!important}.jp-carousel-comment{background:none transparent;color:#999;margin-bottom:20px;clear:right;overflow:auto;width:100%}.jp-carousel-comment p{color:#999!important}.jp-carousel-comment .comment-author{font-size:13px;font-weight:400;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:#fff}.jp-carousel-comment .comment-gravatar{float:right}.jp-carousel-comment .comment-content{border:none;margin-right:85px;padding:0}.jp-carousel-comment .avatar{margin:0 0 0 20px;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important}.jp-carousel-comment .comment-date{color:#999;margin-top:4px;font-size:11px;display:inline;float:left}#jp-carousel-comment-form{margin:0 0 10px!important;float:right;width:100%}textarea#jp-carousel-comment-form-comment-field{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:15px/1.4 "Helvetica Neue",sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:#ccc;color:#222}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#aaa}#jp-carousel-comment-form-spinner{color:#fff;margin:22px 10px 0 0;display:block;width:20px;height:20px;float:right}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:13px/1.4 "Helvetica Neue",sans-serif!important;padding:3px 6px;float:right;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:#ccc;color:#222}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:22px 0 0;float:right}#jp-carousel-comment-form-commenting-as fieldset{float:right;border:none;margin:20px 0 0 0;padding:0}#jp-carousel-comment-form-commenting-as fieldset{clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:0 0 3px 20px;float:right;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;float:left}#js-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;background:rgba(0,0,0,.7);border-radius:2px;font:13px/1.4 "Helvetica Neue",sans-serif!important;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 5px 5px rgba(0,0,0,1)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:#999}#jp-carousel-comments-loading{font:400 15px/1.7 "Helvetica Neue",sans-serif!important;display:none;color:#999;text-align:right;margin-bottom:20px}.jp-carousel-light .jp-carousel-overlay{background:#fff}.jp-carousel-light .jp-carousel-next-button:hover span,.jp-carousel-light .jp-carousel-previous-button:hover span{opacity:.8}.jp-carousel-light .jp-carousel-close-hint:hover,.jp-carousel-light .jp-carousel-titleanddesc div{color:#000!important}.jp-carousel-light .jp-carousel-comment .comment-author a,.jp-carousel-light .jp-carousel-comments p a,.jp-carousel-light .jp-carousel-info h2 a,.jp-carousel-light .jp-carousel-titleanddesc p a{color:#1e8cbe!important}.jp-carousel-light .jp-carousel-comment .comment-author a:hover,.jp-carousel-light .jp-carousel-comments p a:hover,.jp-carousel-light .jp-carousel-info h2 a:hover,.jp-carousel-light .jp-carousel-titleanddesc p a:hover{color:#f1831e!important}.jp-carousel-light .jp-carousel-comment,.jp-carousel-light .jp-carousel-comment p,.jp-carousel-light .jp-carousel-info h2,.jp-carousel-light .jp-carousel-titleanddesc,.jp-carousel-light .jp-carousel-titleanddesc p,.jp-carousel-light .jp-carousel-titleanddesc p b,.jp-carousel-light .jp-carousel-titleanddesc p em,.jp-carousel-light .jp-carousel-titleanddesc p i,.jp-carousel-light .jp-carousel-titleanddesc p strong,.jp-carousel-light div.jp-carousel-buttons a{color:#666}.jp-carousel-light .jp-carousel-buttons{border-bottom-color:#f0f0f0;background:#f5f5f5}.jp-carousel-light div.jp-carousel-buttons a:hover{text-decoration:none;color:#f1831e}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:4px -56px;padding-right:24px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#2ea2cc;color:#fff}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:100% -176px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-position:5px -36px}.jp-carousel-light div#carousel-reblog-box{background:#eee;background:-moz-linear-gradient(bottom,#ececec,#f7f7f7);background:-webkit-gradient(linear,right bottom,right top,from(#ececec),to(#f7f7f7));box-shadow:0 2px 10px rgba(0,0,0,.1);border:1px solid #ddd}.jp-carousel-light #carousel-reblog-box textarea{border:1px inset #ccc;color:#666;border:1px solid #cfcfcf;background:#fff}.jp-carousel-light #carousel-reblog-box .canceltext{color:#888}.jp-carousel-light #carousel-reblog-box .canceltext a{color:#666}.jp-carousel-light #carousel-reblog-box select{background:#eee;color:#333;border:1px solid #aaa}#jp-carousel-comment-form-button-submit,.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit{color:#333;background:#fff;background:-moz-linear-gradient(bottom,#ddd,#fff);background:-webkit-gradient(linear,right bottom,right top,from(#ddd),to(#fff));border:1px solid #aaa}.jp-carousel-light .jp-carousel-image-meta{background:#fafafa;border:1px solid #eee;border-top-color:#f5f5f5;border-right-color:#f5f5f5;color:#333}.jp-carousel-light .jp-carousel-image-meta li{color:#000!important}.jp-carousel-light .jp-carousel-close-hint{color:#ccc}.jp-carousel-light .jp-carousel-close-hint span{background-color:#fff;border-color:#ccc}.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#aaa}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus{color:#333}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#ddd}.jp-carousel-light a.jp-carousel-image-download{background-position:100% -122px}.jp-carousel-light a.jp-carousel-image-download:hover{background-position:100% -122px;color:#f1831e}.jp-carousel-light textarea#jp-carousel-comment-form-comment-field{background:#fbfbfb;color:#333;border:1px solid #dfdfdf;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input{background:#fbfbfb;border:1px solid #dfdfdf;color:#333;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus{background:#fbfbfb;color:#333}.jp-carousel-light #jp-carousel-comment-post-results span{background:#f7f7f7;border:1px solid #dfdfdf;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.jp-carousel-light .jp-carousel-slide{background-color:#fff}.jp-carousel-light .jp-carousel-titleanddesc{border-top:1px solid #eee}.jp-carousel-light .jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(255,255,255,.75),rgba(255,255,255,0));background:-webkit-gradient(linear,right bottom,right top,from(rgba(255,255,255,.75)),to(rgba(255,255,255,0)))}@media only screen and (max-width:760px){.jp-carousel-info{margin:0 10px!important}.jp-carousel-next-button,.jp-carousel-previous-button{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box}.jp-carousel-close-hint{font-weight:800!important;font-size:26px!important;position:fixed!important;top:-10px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:#000}.jp-carousel-fadeaway{display:none}#jp-carousel-comment-form-container{display:none!important}.jp-carousel-titleanddesc{padding-top:0!important;border:none!important}.jp-carousel-titleanddesc-title{font-size:1em!important}.jp-carousel-left-column-wrapper{padding:0;width:100%!important}.jp-carousel-photo-info{right:0!important;width:100%!important}}
-.contact-form .clear-form{clear:both}.contact-form input:-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover:-ms-input-placeholder{opacity:.5}.contact-form input:hover::-ms-input-placeholder{opacity:.5}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus:-ms-input-placeholder{opacity:.3}.contact-form input:focus::-ms-input-placeholder{opacity:.3}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:.75em;width:100%}.contact-form select{margin-bottom:.75em}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:.75em;width:100%}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin-bottom:.75em;vertical-align:bottom;vertical-align:-webkit-baseline-middle;vertical-align:-moz-middle-with-baseline}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-block}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:.5em}.contact-form label span{color:#aaa;margin-right:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 0 0 8px}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}}
-.infinite-loader{color:#000;display:block;height:28px;text-indent:-9999px}#infinite-handle span{background:#333;border-radius:1px;color:#eee;cursor:pointer;font-size:13px;padding:6px 16px}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:100% 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;right:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:right;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:left;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:left}#infinite-footer .blog-credits a{color:#666}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}
-@font-face{font-family:Noticons;src:url(https://wordpress.com/i/noticons/Noticons.woff)}#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-likes-widget-wrapper.slim-likes-widget{width:1px;min-height:0}div.jetpack-comment-likes-widget-wrapper{width:100%;position:relative;min-height:31px}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px 10px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:right;margin:0 0 5px 5px}#likes-other-gravatars ul.wpl-avatars li a{margin:0 0 0 2px;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:100% 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.comment-likes-widget-placeholder{height:18px;position:absolute;display:flex;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:4px}.comment-likes-widget-placeholder::before{-webkit-font-smoothing:antialiased;font-family:Noticons;font-size:20px;line-height:.9;color:#5cb5d4;content:'\f408';width:16px;display:inline-block;vertical-align:middle}.post-likes-widget-placeholder .button{display:none}.comment-likes-widget-placeholder .loading,.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{padding-right:5px;margin-top:2px;align-self:center;color:#4e4e4e}.slim-likes-widget .post-likes-widget{width:auto;float:none}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}
-.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-right:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:right;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:right;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;right:0;left:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:right;overflow:hidden;max-width:33%;margin-left:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-left:0}}
-#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-content ul{padding:0!important;margin:0 0 .7em 0!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-content ul li.share-deprecated{opacity:.5}.sd-content ul li.share-deprecated a span{text-decoration:line-through}.sd-block.sd-gplus{margin:0 0 .5em 0}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#656565!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 5px 0 8px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button>a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content ul li a.sd-button>span{line-height:17px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#fafafa;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:normal 18px/1 social-logos;vertical-align:top;text-align:center}.sd-social-icon-text ul li a.sd-button:before{position:relative;top:2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-content ul li a.sd-button:before{position:relative;top:2px}}.sd-social-official ul li a.sd-button:before{position:relative;top:-2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-official ul li a.sd-button:before{top:0}}.sd-content ul li{margin:0 0 5px 5px;padding:0}.jp-sharing-input-touch .sd-content ul li{padding-right:10px}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-right:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-right:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-right:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:-4px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-icon .sd-content ul li a.share-more{top:2px}}@-moz-document url-prefix(){.sd-social-icon .sd-content ul li a.share-more{top:2px}}.sd-social-icon .sd-content ul li a.share-more span{margin-right:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f607'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f210'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f203'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.share-telegram div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-telegram a:before,.sd-social-icon-text .sd-content li.share-telegram a:before,.sd-social-official .sd-content li.share-telegram a:before,.sd-social-text .sd-content ul li.share-telegram a:before{content:'\f606'}.sd-social-official .sd-content li.share-telegram a:before{color:#08c}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-content ul li.share-jetpack-whatsapp div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-jetpack-whatsapp a:before,.sd-social-icon-text .sd-content li.share-jetpack-whatsapp a:before,.sd-social-official .sd-content li.share-jetpack-whatsapp a:before,.sd-social-text .sd-content ul li.share-jetpack-whatsapp a:before{content:'\f608'}.sd-social-official .sd-content li.share-jetpack-whatsapp a:before{color:#43d854}.sd-social-icon .sd-content ul li[class*=share-].share-jetpack-whatsapp a.sd-button{background:#43d854;color:#fff!important}.sd-content ul li.share-deprecated div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-deprecated a:before,.sd-social-icon-text .sd-content li.share-deprecated a:before,.sd-social-official .sd-content li.share-deprecated a:before{width:1em;height:1em;content:"\1F6AB"}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px 0}.sd-social-official .sd-content ul>li{display:block;float:right;margin:0 0 5px 10px!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.reddit_button iframe{margin-top:1px}.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}.linkedin_button>span,.pinterest_button a{display:block!important}.sd-social-official .sd-content .share-skype{width:55px}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0 3px;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-right:0;padding:0 19px 0 0;display:inline-block;height:21px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-right:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0!important;height:0!important}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;right:20px;width:0;height:0;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:7px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:1px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px 8px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-right:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-right:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;left:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#1877f2;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#1e8cbe;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-telegram a.sd-button{background:#08c;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00aff0;color:#fff!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:right}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px 0;text-align:right;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;right:-9000px}#sharing_email .sharing_cancel{padding:0 1em 0 0;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em 0}
-.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;right:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 -1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;right:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:rtl;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}
-body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;left:0!important;bottom:0!important;right:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:grey;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #e5e5e5;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{right:0;background-position:4px 50%}.presentation .nav-arrow-right{left:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;left:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#e5e5e5;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}
-div.jetpack-quiz{border:1px solid #deede3;background-color:#f3f3f3;padding:1em;line-height:1.3em;margin-bottom:2em;border-radius:.2em}div.jetpack-quiz div.jetpack-quiz-question{margin-bottom:.5em;font-weight:700}div.jetpack-quiz div.jetpack-quiz-answer{cursor:pointer;margin-bottom:.5em;padding:1em 1em 1em 0;border-bottom:1px dotted #999}div.jetpack-quiz div.jetpack-quiz-answer.last{padding-bottom:0;margin-bottom:0;border-bottom:0}div.jetpack-quiz div.jetpack-quiz-answer.correct{color:green}div.jetpack-quiz div.jetpack-quiz-answer.wrong{color:red}div.jetpack-quiz div.jetpack-quiz-answer div.jetpack-quiz-explanation{display:none}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation{display:block;color:#000;font-size:90%;margin-top:1em}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation tt,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation tt{font-size:85%}div.jetpack-quiz pre{font:15px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;background:100% 0;margin:0;padding:0}
+@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format( 'woff' );font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.jp-carousel-overlay .swiper-container{margin-right:auto;margin-left:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.jp-carousel-overlay .swiper-container-vertical>.swiper-wrapper{flex-direction:column}.jp-carousel-overlay .swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.jp-carousel-overlay .swiper-container-android .swiper-slide,.jp-carousel-overlay .swiper-wrapper{transform:translate3d(0,0,0)}.jp-carousel-overlay .swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.jp-carousel-overlay .swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.jp-carousel-overlay .swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.jp-carousel-overlay .swiper-container-pointer-events{touch-action:pan-y}.jp-carousel-overlay .swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.jp-carousel-overlay .swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.jp-carousel-overlay .swiper-slide-invisible-blank{visibility:hidden}.jp-carousel-overlay .swiper-container-autoheight,.jp-carousel-overlay .swiper-container-autoheight .swiper-slide{height:auto}.jp-carousel-overlay .swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.jp-carousel-overlay .swiper-container-3d{perspective:1200px}.jp-carousel-overlay .swiper-container-3d .swiper-cube-shadow,.jp-carousel-overlay .swiper-container-3d .swiper-slide,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top,.jp-carousel-overlay .swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top{position:absolute;right:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.jp-carousel-overlay .swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.jp-carousel-overlay .swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.jp-carousel-overlay .swiper-button-next.swiper-button-disabled,.jp-carousel-overlay .swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.jp-carousel-overlay .swiper-button-prev,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next{right:10px;left:auto}.jp-carousel-overlay .swiper-button-prev:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after{content:'prev'}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev{left:10px;right:auto}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after{content:'next'}.jp-carousel-overlay .swiper-button-next.swiper-button-white,.jp-carousel-overlay .swiper-button-prev.swiper-button-white{--swiper-navigation-color:#ffffff}.jp-carousel-overlay .swiper-button-next.swiper-button-black,.jp-carousel-overlay .swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000000}.jp-carousel-overlay .swiper-button-lock{display:none}.jp-carousel-overlay .swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.jp-carousel-overlay .swiper-pagination.swiper-pagination-hidden{opacity:0}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets,.jp-carousel-overlay .swiper-pagination-custom,.jp-carousel-overlay .swiper-pagination-fraction{bottom:10px;right:0;width:100%}.jp-carousel-overlay .swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.jp-carousel-overlay .swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:50%;background:#000;opacity:.2}.jp-carousel-overlay button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.jp-carousel-overlay .swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.jp-carousel-overlay .swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets{left:10px;top:50%;transform:translate3d(0,-50%,0)}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{right:50%;transform:translateX(50%);white-space:nowrap}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.jp-carousel-overlay .swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.jp-carousel-overlay .swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.jp-carousel-overlay .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;right:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:right top}.jp-carousel-overlay .swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:left top}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-progressbar,.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;right:0;top:0}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;right:0;top:0}.jp-carousel-overlay .swiper-pagination-white{--swiper-pagination-color:#ffffff}.jp-carousel-overlay .swiper-pagination-black{--swiper-pagination-color:#000000}.jp-carousel-overlay .swiper-pagination-lock{display:none}.jp-carousel-overlay .swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.jp-carousel-overlay .swiper-zoom-container>canvas,.jp-carousel-overlay .swiper-zoom-container>img,.jp-carousel-overlay .swiper-zoom-container>svg{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.jp-carousel-overlay .swiper-slide-zoomed{cursor:move}.jp-carousel-overlay .swiper-container .swiper-notification{position:absolute;right:0;top:0;pointer-events:none;opacity:0;z-index:-1000}
+:root{--jp-carousel-primary-color:#fff;--jp-carousel-primary-subtle-color:#999;--jp-carousel-bg-color:#000;--jp-carousel-bg-faded-color:#222;--jp-carousel-border-color:#3a3a3a}:root .jp-carousel-light{--jp-carousel-primary-color:#000;--jp-carousel-primary-subtle-color:#646970;--jp-carousel-bg-color:#fff;--jp-carousel-bg-faded-color:#fbfbfb;--jp-carousel-border-color:#dcdcde}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev{background-image:none}[data-carousel-extra]:not(.jp-carousel-wrap) img,[data-carousel-extra]:not(.jp-carousel-wrap) img+figcaption{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-wrap.swiper-container{height:auto;width:100vw}.jp-carousel-overlay .swiper-zoom-container{background-size:200%;background-repeat:no-repeat;background-position:center}.jp-carousel-overlay .swiper-slide.swiper-slide-next .swiper-zoom-container img,.jp-carousel-overlay .swiper-slide.swiper-slide-prev .swiper-zoom-container img{transition:none!important}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev{opacity:.5;transition:.5s opacity ease-out;height:initial;width:initial;padding:20px 40px;background-image:none}.jp-carousel-overlay .swiper-button-next:hover,.jp-carousel-overlay .swiper-button-prev:hover{opacity:1}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-button-prev:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after{content:none}.jp-carousel-overlay .swiper-button-next svg,.jp-carousel-overlay .swiper-button-prev svg{height:30px;width:28px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-overlay{font-family:'Helvetica Neue',sans-serif!important;z-index:2147483647;overflow-x:hidden;overflow-y:auto;direction:rtl;position:fixed;top:0;left:0;bottom:0;right:0;background:var(--jp-carousel-bg-color)}.jp-carousel-overlay *{box-sizing:border-box}.jp-carousel-overlay h1:before,.jp-carousel-overlay h2:before,.jp-carousel-overlay h3:before{content:none;display:none}.jp-carousel-overlay .swiper-container .swiper-button-prev{right:0;left:auto}.jp-carousel-overlay .swiper-container .swiper-button-next{left:0;right:auto}.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-prev{transform:scaleX(-1)}.jp-carousel-container{display:grid;grid-template-rows:1fr 64px;height:100%}.jp-carousel-hide-controls .jp-carousel-container{grid-template-rows:1fr}.jp-carousel-hide-controls .swiper-wrapper{margin-top:-32px}.jp-carousel-hide-controls .jp-swiper-button-next,.jp-carousel-hide-controls .jp-swiper-button-prev{margin-top:-54px}.jp-carousel-msg{font-family:'Open Sans',sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 2px 0 20px;background-color:var(--jp-carousel-primary-color);border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.jp-carousel-info{display:flex;flex-direction:column;text-align:right!important;-webkit-font-smoothing:subpixel-antialiased!important;z-index:100;background-color:var(--jp-carousel-bg-color);transition:opacity .2s ease-out;opacity:1}.jp-carousel-hide-controls .jp-carousel-info{visibility:hidden;height:0;overflow:hidden}.jp-carousel-info-footer{position:relative;background-color:var(--jp-carousel-bg-color);height:64px;display:flex;align-items:center;justify-content:space-between;width:100vw}.jp-carousel-info-extra{display:none;background-color:var(--jp-carousel-bg-color);padding:35px;width:100vw;border-top:1px solid var(--jp-carousel-bg-faded-color)}.jp-carousel-title-and-caption{margin-bottom:15px}.jp-carousel-info-extra.jp-carousel-show{display:block}.jp-carousel-info ::selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-info ::-moz-selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-photo-info{right:0!important;width:100%!important}.jp-carousel-comments-wrapper{padding:0;width:100%!important;display:none}.jp-carousel-comments-wrapper.jp-carousel-show{display:block}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:none}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:var(--jp-carousel-primary-subtle-color);font:normal 11px/1.2em 'Helvetica Neue',sans-serif!important;letter-spacing:0!important;padding:5px 0 5px 2px;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:var(--jp-carousel-primary-color);border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-slide,.jp-carousel-slide img{transform:translate3d(0,0,0)}.jp-carousel-close-hint{cursor:default;letter-spacing:0!important;position:fixed;top:20px;left:30px;padding:10px;text-align:left;width:45px;height:45px;z-index:15;color:var(--jp-carousel-primary-color);cursor:pointer;transition:opacity .2s ease-out}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint svg{padding:3px 2px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-close-hint:hover{color:var(--jp-carousel-primary-color)}.jp-carousel-close-hint:hover span{border-color:var(--jp-carousel-primary-color)}.jp-carousel-pagination-container{flex:1;margin:0 35px 0 15px}.jp-carousel-pagination,.jp-swiper-pagination{color:var(--jp-carousel-primary-color);font-size:15px;font-weight:400;white-space:nowrap;display:none;position:static!important}.jp-carousel-pagination-container .swiper-pagination{text-align:right;line-height:8px}.jp-carousel-pagination{padding-right:5px}.jp-swiper-pagination .swiper-pagination-bullet{background:var(--jp-carousel-primary-subtle-color);margin:0 9px}.jp-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background:var(--jp-carousel-primary-color)}.jp-swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active){background:var(--jp-carousel-primary-color);opacity:.5}.jp-carousel-info-footer .jp-carousel-photo-title-container{flex-basis:50vw;flex:4;justify-content:center;overflow:hidden;margin:0}.jp-carousel-photo-caption,.jp-carousel-photo-title{background:100% 0!important;border:none!important;display:inline-block;font:normal 20px/1.3em 'Helvetica Neue',sans-serif;line-height:normal;letter-spacing:0!important;margin:0 0 10px 0;padding:0;overflow:hidden;text-shadow:none!important;text-transform:none!important;color:var(--jp-carousel-primary-color)}.jp-carousel-info-footer .jp-carousel-photo-caption{text-align:center;font-size:15px;white-space:nowrap;color:var(--jp-carousel-primary-subtle-color);cursor:pointer;margin:0;text-overflow:ellipsis}.jp-carousel-info-footer .jp-carousel-photo-caption p{margin:0}.jp-carousel-photo-title{font-size:32px;margin-bottom:2px}.jp-carousel-photo-description{color:var(--jp-carousel-primary-subtle-color);font-size:16px;margin:25px 0;width:100%}.jp-carousel-photo-description{overflow:hidden;overflow-wrap:break-word}.jp-carousel-photo-description p{color:var(--jp-carousel-primary-subtle-color);line-height:1.4;margin-bottom:0}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-photo-description p a{color:var(--jp-carousel-primary-color)!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-photo-description p b,.jp-carousel-photo-description p strong{font-weight:700;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-photo-description p em,.jp-carousel-photo-description p i{font-style:italic;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-photo-description p a:hover{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-photo-description p:empty{display:none}.jp-carousel-comments-wrapper h1:after,.jp-carousel-comments-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-caption{font-size:14px;font-weight:400;margin:0}.jp-carousel-image-meta{color:var(--jp-carousel-primary-color);font-size:13px;font:12px/1.4 'Helvetica Neue',sans-serif!important;width:100%;display:none}.jp-carousel-image-meta.jp-carousel-show{display:block}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:'Helvetica Neue',sans-serif!important;position:inherit!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;background:100% 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 0 15px 2%!important;color:var(--jp-carousel-primary-color)!important;font-size:13px!important}.jp-carousel-image-meta h5{color:var(--jp-carousel-primary-subtle-color)!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{display:inline-block;clear:both;color:var(--jp-carousel-primary-subtle-color);line-height:1;font-weight:400;font-size:14px;text-decoration:none}a.jp-carousel-image-download svg{display:inline-block;vertical-align:middle;margin:0 3px;padding-bottom:2px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-right:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 2px 0 1px}.jp-carousel-comments{font:15px/1.7 'Helvetica Neue',sans-serif!important;font-weight:400;background:none transparent;width:100%;bottom:10px;margin-top:20px}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:var(--jp-carousel-primary-color)!important}.jp-carousel-comment{background:none transparent;color:var(--jp-carousel-primary-subtle-color);overflow:auto;width:100%;display:flex}.jp-carousel-comment+.jp-carousel-comment{margin-top:20px}.jp-carousel-comment:last-of-type{margin-bottom:20px}.jp-carousel-comment p{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-comment .comment-author{font-size:15px;font-weight:500;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:var(--jp-carousel-primary-color)}.jp-carousel-comment .comment-gravatar{float:none;margin-left:10px}.jp-carousel-comment .comment-content{border:none;padding:0}.jp-carousel-comment .avatar{margin:0;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important;min-width:64px;min-height:64px;width:64px;height:64px}.jp-carousel-comment .comment-date{color:var(--jp-carousel-primary-subtle-color);font-size:11px;border-bottom:1px solid var(--jp-carousel-bg-faded-color);margin-bottom:6px}#jp-carousel-comment-form{margin:0 0 10px!important;width:100%}#jp-carousel-comment-form.jp-carousel-is-disabled{opacity:.5;pointer-events:none}textarea#jp-carousel-comment-form-comment-field{background:var(--jp-carousel-bg-faded-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-loading-overlay{display:none;position:fixed;top:0;bottom:0;right:0;left:0}#jp-carousel-loading-wrapper{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw}#jp-carousel-library-loading,#jp-carousel-library-loading:after{border-radius:50%;width:40px;height:40px}#jp-carousel-library-loading{float:right;margin:22px 10px 0 0;font-size:10px;position:relative;text-indent:-9999em;border-top:8px solid rgba(255,255,255,.2);border-left:8px solid rgba(255,255,255,.2);border-bottom:8px solid rgba(255,255,255,.2);border-right:8px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear}#jp-carousel-comment-form-spinner,#jp-carousel-comment-form-spinner:after{border-radius:50%;width:20px;height:20px}#jp-carousel-comment-form-spinner{display:none;float:right;margin:22px 10px 0 0;font-size:10px;position:absolute;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-left:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-right:4px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear;margin:0 auto;top:calc(50% - 15px);right:0;bottom:0;left:0}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.jp-carousel-info-content-wrapper{max-width:800px;margin:auto}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:var(--jp-carousel-bg-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;padding:10px;float:right;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:22px 0 0;float:right}#jp-carousel-comment-form-commenting-as fieldset{float:right;border:none;margin:20px 0 0 0;padding:0;clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:0 0 3px 20px;float:right;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;margin-right:auto;display:block;border:solid 1px var(--jp-carousel-primary-color);background:var(--jp-carousel-bg-color);border-radius:3px;padding:8px 16px;font-size:14px;color:var(--jp-carousel-primary-color)}#jp-carousel-comment-form-button-submit:active,#jp-carousel-comment-form-button-submit:focus{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color)}#jp-carousel-comment-form-container{margin-bottom:15px;width:100%;margin-top:20px;color:var(--jp-carousel-primary-subtle-color);position:relative;overflow:hidden}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;border-radius:2px;font:13px/1.4 'Helvetica Neue',sans-serif!important;border:1px solid var(--jp-carousel-border-color);box-shadow:inset 0 0 5px 0 rgba(0,0,0,.2)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comments-loading{font:400 15px/1.7 'Helvetica Neue',sans-serif!important;display:none;color:var(--jp-carousel-primary-subtle-color);text-align:right;margin-bottom:20px;width:100%;bottom:10px;margin-top:20px}.jp-carousel-photo-icons-container{flex:1;display:block;text-align:left;margin:0 30px 0 20px;white-space:nowrap}.jp-carousel-icon-btn{padding:16px;text-decoration:none;border:none;background:100% 0;display:inline-block;height:64px}.jp-carousel-icon{border:none;pointer-events:none;display:inline-block;line-height:0;font-weight:400;font-style:normal;border-radius:4px;width:31px;padding:4px 3px 3px}.jp-carousel-icon svg{display:inline-block}.jp-carousel-overlay rect{fill:var(--jp-carousel-primary-color)}.jp-carousel-selected .jp-carousel-icon{background:var(--jp-carousel-primary-color)}.jp-carousel-selected rect{fill:var(--jp-carousel-bg-color)}.jp-carousel-icon-comments.jp-carousel-show{display:inline-block}.jp-carousel-icon .jp-carousel-has-comments-indicator{display:none;font-size:12px;vertical-align:top;margin-right:-16px;line-height:1;padding:2px 4px;border-radius:4px;background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color);font-weight:400;font-family:'Helvetica Neue',sans-serif!important;position:relative}.jp-carousel-selected .jp-carousel-icon .jp-carousel-has-comments-indicator{background:var(--jp-carousel-bg-color);color:var(--jp-carousel-primary-color)}.jp-carousel-has-comments-indicator.jp-carousel-show{display:inline-block}@media only screen and (max-width:760px){.jp-carousel-overlay .swiper-container .swiper-button-next,.jp-carousel-overlay .swiper-container .swiper-button-prev{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box;margin-right:0}.jp-carousel-close-hint{font-size:26px!important;position:fixed!important;top:10px;left:10px}.admin-bar .jp-carousel-close-hint{top:40px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:var(--jp-carousel-bg-color)}.jp-carousel-fadeaway{display:none}.jp-carousel-info>.jp-carousel-photo-info{display:none}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:block}.jp-carousel-caption{overflow:visible!important}.jp-carousel-info-footer .jp-carousel-photo-title-container{display:none}.jp-carousel-photo-icons-container{margin:0 0 0 10px;white-space:nowrap}.jp-carousel-icon-btn{padding-right:20px}.jp-carousel-pagination{padding-right:5px}.jp-carousel-pagination-container{margin-right:25px}.jp-carousel-comment .avatar{min-width:48px}#jp-carousel-comment-form-commenting-as fieldset,#jp-carousel-comment-form-commenting-as input{width:100%;float:none}}
+.contact-form .clear-form{clear:both}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:1.5em;width:100%;padding:14px 7px}.contact-form select{margin-bottom:1.5em;padding:14px 7px;min-width:150px}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:1.5em;width:100%;padding:7px;font:inherit}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin:0 5px 0 .75rem}.contact-form input[type=checkbox]{top:0;margin-right:0}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.consent-implicit input{display:none}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-flex;align-items:center}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-consent-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:1em}.contact-form label span{font-size:85%;margin-right:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 0 0 8px}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form{display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:row}.wp-block-jetpack-button,.wp-block-jetpack-contact-form .grunion-field-wrap{flex:0 0 100%}.wp-block-jetpack-button button{padding:20px 30px;border:inherit;font:inherit}.wp-block-jetpack-button.alignright button{float:left}.wp-block-jetpack-contact-form .grunion-field-wrap{border-left:15px solid transparent}.wp-block-jetpack-contact-form .grunion-field-width-25-wrap{flex:0 0 25%}.wp-block-jetpack-contact-form .grunion-field-width-50-wrap{flex:0 0 50%}.wp-block-jetpack-contact-form .grunion-field-width-75-wrap{flex:0 0 75%}.grunion-field-checkbox-wrap,.grunion-field-consent-wrap{align-self:center}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}.wp-block-jetpack-contact-form input[type=email],.wp-block-jetpack-contact-form input[type=tel],.wp-block-jetpack-contact-form input[type=text],.wp-block-jetpack-contact-form input[type=url]{width:100%}}.jetpack-empty-spam-container{display:inline-block}.jetpack-empty-spam{display:inline-block}.jetpack-empty-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form .wp-block-spacer{width:100%}
+.infinite-loader{color:#000;display:block;height:28px;text-align:center}#infinite-handle span{background:#333;border-radius:1px;color:#f0f0f1;cursor:pointer;font-size:13px;padding:6px 16px}@keyframes spinner-inner{0%{opacity:1}100%{opacity:0}}.infinite-loader .spinner-inner div{right:47px;top:24px;position:absolute;animation:spinner-inner linear 1s infinite;background:#000;outline:1px solid #fff;width:6px;height:12px;border-radius:3px/6px;transform-origin:3px 26px}.infinite-loader .spinner-inner div:nth-child(1){transform:rotate(0);animation-delay:-.9166666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(2){transform:rotate(-30deg);animation-delay:-.8333333333333334s;background:#000}.infinite-loader .spinner-inner div:nth-child(3){transform:rotate(-60deg);animation-delay:-.75s;background:#000}.infinite-loader .spinner-inner div:nth-child(4){transform:rotate(-90deg);animation-delay:-.6666666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(5){transform:rotate(-120deg);animation-delay:-.5833333333333334s;background:#000}.infinite-loader .spinner-inner div:nth-child(6){transform:rotate(-150deg);animation-delay:-.5s;background:#000}.infinite-loader .spinner-inner div:nth-child(7){transform:rotate(-180deg);animation-delay:-.4166666666666667s;background:#000}.infinite-loader .spinner-inner div:nth-child(8){transform:rotate(-210deg);animation-delay:-.3333333333333333s;background:#000}.infinite-loader .spinner-inner div:nth-child(9){transform:rotate(-240deg);animation-delay:-.25s;background:#000}.infinite-loader .spinner-inner div:nth-child(10){transform:rotate(-270deg);animation-delay:-.16666666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(11){transform:rotate(-300deg);animation-delay:-83.33333333333333ms;background:#000}.infinite-loader .spinner-inner div:nth-child(12){transform:rotate(-330deg);animation-delay:0s;background:#000}.infinite-loader .spinner{width:28px;height:28px;display:inline-block;overflow:hidden;background:100% 0}.infinite-loader .spinner-inner{width:100%;height:100%;position:relative;transform:translateZ(0) scale(.28);-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:100% 0}.infinite-loader .spinner-inner div{box-sizing:content-box}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:100% 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;right:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:right;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:left;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:left}#infinite-footer .blog-credits a{color:#646970}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}#infinite-aria{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.infinite-wrap:focus{outline:0!important}
+#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;margin-bottom:1em}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-comment-likes-widget-wrapper{width:100%;position:relative;min-height:31px}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px 10px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:right;margin:0 0 5px 5px}#likes-other-gravatars ul.wpl-avatars li a{margin:0 0 0 2px;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:100% 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #dcdcde;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.comment-likes-widget-placeholder{height:18px;position:absolute;display:flex;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.comment-likes-widget-placeholder::before{color:#2ea2cc;width:16px;height:16px;content:'';display:inline-block;position:relative;top:3px;padding-left:5px;background-repeat:no-repeat;background-size:16px 16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='0' fill='none' width='24' height='24'/%3E%3Cg%3E%3Cpath fill='%232EA2CC' 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'/%3E%3C/g%3E%3C/svg%3E")}.post-likes-widget-placeholder .button{display:none}.comment-likes-widget-placeholder .loading,.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{padding-right:5px;margin-top:4px;align-self:center;color:#4e4e4e}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}@media print{.jetpack-likes-widget-wrapper{display:none}}
+.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-right:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:right;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:right;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;right:0;left:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{height:auto;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:right;overflow:hidden;max-width:33%;margin-left:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-left:0}}@media print{.jp-relatedposts{display:none!important}}
+#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-sharing{margin-bottom:1em}.sd-content ul{padding:0!important;margin:0!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-content ul li.share-deprecated{opacity:.5}.sd-content ul li.share-deprecated a span{text-decoration:line-through}.sd-block.sd-gplus{margin:0 0 .5em 0}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#656565!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 5px 0 8px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button>a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content ul li a.sd-button>span{line-height:17px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#f6f7f7;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:normal 18px/1 social-logos;vertical-align:top;text-align:center}.sd-social-icon-text ul li a.sd-button:before{position:relative;top:2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-content ul li a.sd-button:before{position:relative;top:2px}}.sd-social-official ul li a.sd-button:before{position:relative;top:-2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-official ul li a.sd-button:before{top:0}}.sd-content ul li{margin:0 0 5px 5px;padding:0}.jp-sharing-input-touch .sd-content ul li{padding-right:10px}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-right:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-right:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-right:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:-4px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-icon .sd-content ul li a.share-more{top:2px}}@-moz-document url-prefix(){.sd-social-icon .sd-content ul li a.share-more{top:2px}}.sd-social-icon .sd-content ul li a.share-more span{margin-right:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f607'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f210'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f203'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.share-telegram div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-telegram a:before,.sd-social-icon-text .sd-content li.share-telegram a:before,.sd-social-official .sd-content li.share-telegram a:before,.sd-social-text .sd-content ul li.share-telegram a:before{content:'\f606'}.sd-social-official .sd-content li.share-telegram a:before{color:#08c}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-content ul li.share-jetpack-whatsapp div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-jetpack-whatsapp a:before,.sd-social-icon-text .sd-content li.share-jetpack-whatsapp a:before,.sd-social-official .sd-content li.share-jetpack-whatsapp a:before,.sd-social-text .sd-content ul li.share-jetpack-whatsapp a:before{content:'\f608'}.sd-social-official .sd-content li.share-jetpack-whatsapp a:before{color:#43d854}.sd-social-icon .sd-content ul li[class*=share-].share-jetpack-whatsapp a.sd-button{background:#43d854;color:#fff!important}.sd-content ul li.share-deprecated div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-deprecated a:before,.sd-social-icon-text .sd-content li.share-deprecated a:before,.sd-social-official .sd-content li.share-deprecated a:before{width:1em;height:1em;content:"\1F6AB"}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px 0}.sd-social-official .sd-content ul>li{display:block;float:right;margin:0 0 5px 10px!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.reddit_button iframe{margin-top:1px}.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}.linkedin_button>span,.pinterest_button a{display:block!important}.sd-social-official .sd-content .share-skype{width:55px}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0 3px;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-right:0;padding:0 19px 0 0;display:inline-block;height:21px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-right:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0!important;height:0!important}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;right:20px;width:0;height:0;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:7px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px 8px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-right:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-right:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;left:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#1877f2;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#4f94d4;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-telegram a.sd-button{background:#08c;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00aff0;color:#fff!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f0f0f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:right}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px 0;text-align:right;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;right:-9000px}#sharing_email .sharing_cancel{padding:0 1em 0 0;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em 0}.sd-content .share-customize-link{margin-top:0;line-height:11px}.sd-content .share-customize-link a{font-size:11px;font-family:"Open Sans",sans-serif}@media print{.sharedaddy.sd-sharing-enabled{display:none}}
+.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;right:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f6f7f7;text-shadow:#222 -1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;right:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:rtl;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:#fff!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}
+body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;left:0!important;bottom:0!important;right:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:grey;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #dcdcde;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{right:0;background-position:4px 50%}.presentation .nav-arrow-right{left:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;left:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#dcdcde;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}
+div.jetpack-quiz{border:1px solid #deede3;background-color:#f3f3f3;padding:1em;line-height:1.3em;margin-bottom:2em;border-radius:.2em}div.jetpack-quiz div.jetpack-quiz-question{margin-bottom:.5em;font-weight:700}div.jetpack-quiz div.jetpack-quiz-answer{cursor:pointer;margin-bottom:.5em;padding:1em 1em 1em 0;border-bottom:1px dotted #999}div.jetpack-quiz div.jetpack-quiz-answer.last{padding-bottom:0;margin-bottom:0;border-bottom:0}div.jetpack-quiz div.jetpack-quiz-answer.correct{color:green}div.jetpack-quiz div.jetpack-quiz-answer.wrong{color:red}div.jetpack-quiz div.jetpack-quiz-answer div.jetpack-quiz-explanation{display:none}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation{display:block;color:#000;font-size:90%;margin-top:1em}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation tt,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation tt{font-size:85%}div.jetpack-quiz pre{font:15px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;background:100% 0;margin:0;padding:0}.jetpack-quiz-options{margin-top:12px;text-align:left}.jetpack-quiz-count{color:#646970;float:right;font-size:12px}.jetpack-quiz-option-button{cursor:pointer;margin-right:12px}.jetpack-quiz-option-button:hover svg{background:#3c434a}.jetpack-quiz-option-button svg{background:#000;border-radius:50%;display:inline-block;fill:#fff;height:24px;width:24px}.jetpack-quiz-wrapper .jetpack-quiz:first-of-type .jetpack-quiz-option-button:first-of-type,.jetpack-quiz-wrapper .jetpack-quiz:last-of-type .jetpack-quiz-option-button:last-of-type{display:none}
#subscribe-email input{width:95%}.comment-subscription-form{margin-bottom:1em}.comment-subscription-form .subscribe-label{display:inline!important}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.jetpack-video-wrapper{margin-bottom:1.6em}.jetpack-video-wrapper>.wp-video,.jetpack-video-wrapper>embed,.jetpack-video-wrapper>iframe,.jetpack-video-wrapper>object{margin-bottom:0}
.jetpack-social-navigation ul{display:block;margin:0 0 1.5em;padding:0}.jetpack-social-navigation li{display:inline-block;margin:0;line-height:1}.jetpack-social-navigation a{border:0;height:1em;text-decoration:none;width:1em}.jetpack-social-navigation-svg .icon{color:inherit;fill:currentColor;height:1em;vertical-align:middle;width:1em}.jetpack-social-navigation-genericons a:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:Genericons;font-size:1em;font-style:normal;font-weight:400;height:1em;line-height:1;speak:none;text-decoration:inherit;vertical-align:top;width:1em}.jetpack-social-navigation-genericons a:before{content:"\f415"}.jetpack-social-navigation-genericons a[href*="codepen.io"]:before{content:"\f216"}.jetpack-social-navigation-genericons a[href*="digg.com"]:before{content:"\f221"}.jetpack-social-navigation-genericons a[href*="dribbble.com"]:before{content:"\f201"}.jetpack-social-navigation-genericons a[href*="dropbox.com"]:before{content:"\f225"}.jetpack-social-navigation-genericons a[href*="mailto:"]:before{content:"\f410"}.jetpack-social-navigation-genericons a[href*="facebook.com"]:before{content:"\f203"}.jetpack-social-navigation-genericons a[href*="flickr.com"]:before{content:"\f211"}.jetpack-social-navigation-genericons a[href*="foursquare.com"]:before{content:"\f226"}.jetpack-social-navigation-genericons a[href*="github.com"]:before{content:"\f200"}.jetpack-social-navigation-genericons a[href*="plus.google.com"]:before{content:"\f206"}.jetpack-social-navigation-genericons a[href*="instagram.com"]:before{content:"\f215"}.jetpack-social-navigation-genericons a[href*="linkedin.com"]:before{content:"\f208"}.jetpack-social-navigation-genericons a[href*="path.com"]:before{content:"\f219"}.jetpack-social-navigation-genericons a[href*="pinterest."]:before{content:"\f210"}.jetpack-social-navigation-genericons a[href*="getpocket.com"]:before{content:"\f224"}.jetpack-social-navigation-genericons a[href*="polldaddy.com"]:before{content:"\f217"}.jetpack-social-navigation-genericons a[href*="reddit.com"]:before{content:"\f222"}.jetpack-social-navigation-genericons a[href$="/feed/"]:before{content:"\f413"}.jetpack-social-navigation-genericons a[href*="skype:"]:before{content:"\f220"}.jetpack-social-navigation-genericons a[href*="spotify.com"]:before{content:"\f515"}.jetpack-social-navigation-genericons a[href*="stumbleupon.com"]:before{content:"\f223"}.jetpack-social-navigation-genericons a[href*="tumblr.com"]:before{content:"\f214"}.jetpack-social-navigation-genericons a[href*="twitch.tv"]:before{content:"\f516"}.jetpack-social-navigation-genericons a[href*="twitter.com"]:before{content:"\f202"}.jetpack-social-navigation-genericons a[href*="vimeo.com"]:before{content:"\f212"}.jetpack-social-navigation-genericons a[href*="vine.co"]:before{content:"\f517"}.jetpack-social-navigation-genericons a[href*="wordpress.com"]:before,.jetpack-social-navigation-genericons a[href*="wordpress.org"]:before{content:"\f205"}.jetpack-social-navigation-genericons a[href*="youtube.com"]:before{content:"\f213"}
-.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:right;position:relative}.tiled-gallery .tiled-gallery-item{float:right;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:100% 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:100% 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#eee;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;right:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none;opacity:0}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover}
+.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:right;position:relative}.tiled-gallery .tiled-gallery-item{float:right;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:100% 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:100% 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#f0f0f1;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;right:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover}
.jetpack-display-remote-posts{margin:5px 0 20px 0}.jetpack-display-remote-posts h4{margin:5px 0;padding:0}.jetpack-display-remote-posts p{margin:0;padding:0}.jetpack-display-remote-posts img{max-width:100%}
.widget-grofile h4{margin:1em 0 .5em}.widget-grofile ul.grofile-urls{margin-right:0;overflow:hidden}.widget-grofile ul.grofile-accounts li{list-style:none;display:inline}.widget-grofile ul.grofile-accounts li::before{content:""!important}.widget-grofile .grofile-accounts-logo{background-image:url(https://secure.gravatar.com/images/grav-share-sprite.png);background-repeat:no-repeat;width:16px;height:16px;float:right;margin-left:8px;margin-bottom:8px}.rtl .widget-grofile .grofile-accounts-logo{margin-right:8px;margin-left:0}.grofile-thumbnail{width:500px;max-width:100%}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.widget-grofile .grofile-accounts-logo{background-image:url(https://secure.gravatar.com/images/grav-share-sprite-2x.png);background-size:16px 784px}}
-div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px 10px 5px;background-color:#fff;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #aaa}div[class^=gr_custom_book_container]{float:left;overflow:hidden;height:60px;margin-right:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}
-.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-right:0}.widget_wpcom_social_media_icons_widget ul li{border:0 none;display:inline;margin-left:.5em}.widget_wpcom_social_media_icons_widget li a{border:0 none;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
+div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px 10px 5px;background-color:#fff;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #a7aaad}div[class^=gr_custom_book_container]{float:left;overflow:hidden;height:60px;margin-right:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}
+.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-right:0}.widget_wpcom_social_media_icons_widget ul li{border:0 none;display:inline;margin-left:.5em}.widget_wpcom_social_media_icons_widget li a{border:0 none;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f0f0f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
.widgets-grid-layout{width:100%}.widgets-grid-layout:after,.widgets-grid-layout:before{content:" ";display:table}.widgets-grid-layout:after{clear:both}.widget-grid-view-image{float:right;max-width:50%}.widget-grid-view-image a{display:block;margin:0 0 4px 2px}.widget-grid-view-image:nth-child(even){float:left}.widget-grid-view-image:nth-child(even) a{margin:0 2px 4px 0}.widgets-grid-layout .widget-grid-view-image img{max-width:100%;height:auto}.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:100% 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:100% 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widgets-list-layout{padding:0;margin:0;list-style-type:none}.widgets-list-layout li:after,.widgets-list-layout li:before{content:"";display:table}.widgets-list-layout li:after{clear:both}.widgets-list-layout li{zoom:1;margin-bottom:1em;list-style-type:none!important}.widgets-list-layout .widgets-list-layout-blavatar{float:right;width:21.276596%;max-width:40px;height:auto}.widgets-list-layout-links{float:left;width:73.404255%}.widgets-list-layout span{opacity:.5}.widgets-list-layout span:hover{opacity:.8}
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:100% 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:100% 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
.widget.widget_authors li>ul,.widget_authors>ul{margin-right:inherit;padding-right:0}.widget_authors ul li li{padding-right:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-left:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;right:0;left:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:right!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
-.widget_eu_cookie_law_widget{border:none;bottom:1em;display:none;right:1em;margin:0;padding:0;position:fixed;left:1em;width:auto;z-index:50001}.widget_eu_cookie_law_widget.widget.top{bottom:auto;top:1em}.admin-bar .widget_eu_cookie_law_widget.widget.top{top:3em}#eu-cookie-law{background-color:#fff;border:1px solid #dedede;color:#2e4467;font-size:12px;line-height:1.5;overflow:hidden;padding:6px 15px 6px 6px;position:relative}#eu-cookie-law a,#eu-cookie-law a:active,#eu-cookie-law a:visited{color:inherit;cursor:inherit;text-decoration:underline}#eu-cookie-law a:hover{cursor:pointer;text-decoration:none}#eu-cookie-law.negative{background-color:#000;border:none;color:#fff}#eu-cookie-law form{margin-bottom:0;position:static}#eu-cookie-law input,#eu-cookie-law input:focus,#eu-cookie-law input:hover{background:#f3f3f3;border:1px solid #dedede;border-radius:4px;-moz-border-radius:3px;-webkit-border-radius:3px;color:#2e4453;cursor:pointer;display:inline;float:left;font-family:inherit;font-size:14px;font-weight:inherit;line-height:inherit;margin:0 5% 0 0;padding:8px 12px;position:static;text-transform:none}#eu-cookie-law.negative input,#eu-cookie-law.negative input:focus,#eu-cookie-law.negative input:hover{background:#282828;border-color:#535353;color:#fff}@media (max-width:600px){#eu-cookie-law{padding-bottom:55px}#eu-cookie-law input.accept{bottom:8px;position:absolute;left:8px}}
+.widget_eu_cookie_law_widget{animation:fadeIn .8s;border:none;bottom:1em;right:1em;margin:0;padding:0;position:fixed;left:1em;width:auto;z-index:50001}@keyframes fadeIn{from{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}.widget_eu_cookie_law_widget.widget.top{bottom:auto;top:1em}.admin-bar .widget_eu_cookie_law_widget.widget.top{top:3em}amp-consent.widget_eu_cookie_law_widget.widget.top{top:1em;margin:0}.admin-bar amp-consent.widget_eu_cookie_law_widget.widget.top{top:0;margin-top:3em}#eu-cookie-law{background-color:#fff;border:1px solid #dedede;color:#2e4467;font-size:12px;line-height:1.5;overflow:hidden;padding:6px 15px 6px 6px;position:relative}#eu-cookie-law a,#eu-cookie-law a:active,#eu-cookie-law a:visited{color:inherit;cursor:inherit;text-decoration:underline}#eu-cookie-law a:hover{cursor:pointer;text-decoration:none}#eu-cookie-law.negative{background-color:#000;border:none;color:#fff}#eu-cookie-law.hide{opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}#eu-cookie-law form{margin-bottom:0;position:static}#eu-cookie-law input,#eu-cookie-law input:focus,#eu-cookie-law input:hover{background:#f3f3f3;border:1px solid #dedede;border-radius:4px;-moz-border-radius:3px;-webkit-border-radius:3px;color:#2e4453;cursor:pointer;display:inline;float:left;font-family:inherit;font-size:14px;font-weight:inherit;line-height:inherit;margin:0 5% 0 0;padding:8px 12px;position:static;text-transform:none}#eu-cookie-law.negative input,#eu-cookie-law.negative input:focus,#eu-cookie-law.negative input:hover{background:#282828;border-color:#535353;color:#fff}@media (max-width:600px){#eu-cookie-law{padding-bottom:55px}#eu-cookie-law input.accept{bottom:8px;position:absolute;left:8px}}.widget_eu_cookie_law_widget .customize-partial-edit-shortcut>button{right:0}
.flickr-images{text-align:center}.flickr-size-thumbnail .flickr-images{align-content:space-between;align-items:center;display:flex;flex-flow:row wrap;justify-content:center}.flickr-images img{max-width:100%;margin:5px}
-.jetpack-search-filters-widget__sub-heading{font-size:inherit;font-weight:700;margin:0 0 .5em;padding:0}.jetpack-search-form+.jetpack-search-filters-widget__sub-heading{margin-top:1.5em;margin-bottom:.5em!important}.jetpack-search-filters-widget__clear{margin-top:.5em;margin-bottom:.5em}.jetpack-search-sort-wrapper{margin-top:1em;margin-bottom:1.5em}.jetpack-search-sort-wrapper label{display:inherit}.widget_search .jetpack-search-filters-widget__filter-list input[type=checkbox]{width:auto;height:auto}ul.jetpack-search-filters-widget__filter-list li{border:none;padding:0;list-style:none}ul.jetpack-search-filters-widget__filter-list li a{text-decoration:none}ul.jetpack-search-filters-widget__filter-list li a:hover{box-shadow:none}ul.jetpack-search-filters-widget__filter-list li label{font-weight:inherit;display:inherit}.jetpack-search-filters-widget__filter-list{list-style:none}ul.jetpack-search-filters-widget__filter-list{margin-bottom:1.5em}body.search .jetpack-search-form input[name="s"]:-ms-input-placeholder{color:transparent}body.search .jetpack-search-form input[name="s"]::-ms-input-placeholder{color:transparent}body.search .jetpack-search-form input[name="s"]::placeholder{color:transparent}body.search .jetpack-search-form input[name="s"].show-placeholder:-ms-input-placeholder{color:inherit}body.search .jetpack-search-form input[name="s"].show-placeholder::-ms-input-placeholder{color:inherit}body.search .jetpack-search-form input[name="s"].show-placeholder::placeholder{color:inherit}
+.wpcom-instagram-images{display:grid;grid-gap:.5rem;grid-auto-columns:1fr}.wpcom-instagram-images:after,.wpcom-instagram-images:before{content:none}.wpcom-instagram-images a{display:block;margin:4px 2px}.wpcom-instagram-columns-2 a,.wpcom-instagram-columns-3 a{display:inline-block;vertical-align:top}.wpcom-instagram-columns-2 a{width:calc(50% - 8px)}.wpcom-instagram-columns-3 a{width:calc(33.3333% - 8px)}.wpcom-instagram-images .sq-bg-image{background-position:center;background-repeat:no-repeat;background-size:cover;height:0;overflow:hidden;padding-bottom:100%}.wpcom-instagram-columns-2{grid-template-columns:repeat(2,1fr)}.wpcom-instagram-columns-3{grid-template-columns:repeat(3,1fr)}@supports (display:grid){.wpcom-instagram-images a{display:block;margin:0}.wpcom-instagram-columns-2 a,.wpcom-instagram-columns-3 a{width:auto}}
+.jetpack-search-filters-widget__sub-heading{font-size:inherit;font-weight:700;margin:0 0 .5em;padding:0}.jetpack-search-form+.jetpack-search-filters-widget__sub-heading{margin-top:1.5em;margin-bottom:.5em!important}.jetpack-search-filters-widget__clear{margin-top:.5em;margin-bottom:.5em}.jetpack-search-sort-wrapper{margin-top:1em;margin-bottom:1.5em}.jetpack-search-sort-wrapper label{display:inherit}.widget_search .jetpack-search-filters-widget__filter-list input[type=checkbox]{width:auto;height:auto}ul.jetpack-search-filters-widget__filter-list li{border:none;padding:0;list-style:none}ul.jetpack-search-filters-widget__filter-list li a{text-decoration:none}ul.jetpack-search-filters-widget__filter-list li a:hover{box-shadow:none}ul.jetpack-search-filters-widget__filter-list li label{font-weight:inherit;display:inherit}.jetpack-search-filters-widget__filter-list{list-style:none}ul.jetpack-search-filters-widget__filter-list{margin-bottom:1.5em}body.search .jetpack-search-form input[name="s"]::placeholder{color:transparent}body.search .jetpack-search-form input[name="s"].show-placeholder::placeholder{color:inherit}
@media screen and (min-width:400px){.widget.jetpack-simple-payments .jetpack-simple-payments-product{flex-direction:column}.widget.jetpack-simple-payments .jetpack-simple-payments-details{padding-right:0}}
-.jetpack_widget_social_icons li,.jetpack_widget_social_icons ul{list-style:none}.jetpack_widget_social_icons ul{display:block;margin:0 0 1.5em;padding:0}.jetpack_widget_social_icons ul li{border:0;display:inline-block;line-height:1;margin:0;padding:0}.jetpack_widget_social_icons ul li:after,.jetpack_widget_social_icons ul li:before{display:none}.jetpack_widget_social_icons a{border:0;box-shadow:none;display:block;height:24px;text-decoration:none;width:24px}.jetpack_widget_social_icons svg{color:inherit;fill:currentColor;height:inherit;vertical-align:middle;width:inherit}.jetpack_widget_social_icons ul.size-small a{height:24px;width:24px}.jetpack_widget_social_icons ul.size-medium a{height:32px;width:32px}.jetpack_widget_social_icons ul.size-large a{height:48px;width:48px}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important} \ No newline at end of file
+.jetpack_widget_social_icons li,.jetpack_widget_social_icons ul{list-style:none}.jetpack_widget_social_icons ul{display:block;margin:0 0 1.5em;padding:0}.jetpack_widget_social_icons ul li{border:0;display:inline-block;line-height:1;margin:0;padding:0}.jetpack_widget_social_icons ul li:after,.jetpack_widget_social_icons ul li:before{display:none}.jetpack_widget_social_icons a{border:0;box-shadow:none;display:block;height:24px;text-decoration:none;width:24px}.jetpack_widget_social_icons svg{color:inherit;fill:currentColor;height:inherit;vertical-align:middle;width:inherit}.jetpack_widget_social_icons ul.size-small a{height:24px;width:24px}.jetpack_widget_social_icons ul.size-medium a{height:32px;width:32px}.jetpack_widget_social_icons ul.size-large a{height:48px;width:48px}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
+.milestone-widget{margin-bottom:1em}.milestone-content{line-height:2;margin-top:5px;max-width:100%;padding:0;text-align:center}.milestone-header{background-color:var(--milestone-text-color,#111);color:var(--milestone-bg-color,#fff);line-height:1.3;margin:0;padding:.8em}.milestone-header .date,.milestone-header .event{display:block}.milestone-header .event{font-size:120%}.milestone-countdown .difference{display:block;font-size:500%;font-weight:700;line-height:1.2}.milestone-countdown,.milestone-message{background-color:var(--milestone-bg-color,#fff);border:1px solid var(--milestone-border-color,#767676);border-top:0;color:var(--milestone-text-color,#111);padding-bottom:1em}.milestone-message{padding-top:1em} \ No newline at end of file
diff --git a/plugins/jetpack/css/jetpack.css b/plugins/jetpack/css/jetpack.css
index f83a94d3..a9536b61 100644
--- a/plugins/jetpack/css/jetpack.css
+++ b/plugins/jetpack/css/jetpack.css
@@ -1,30 +1,33 @@
/*!
* Do not modify this file directly. It is concatenated from individual module CSS files.
*/
-[data-carousel-extra]{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-overlay{background:#000}div.jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));position:fixed;bottom:0;z-index:2147483647;width:100%;height:15px}.jp-carousel-next-button span,.jp-carousel-previous-button span{background:url(../modules/carousel/images/arrows.png) no-repeat center center;background-size:200px 126px}.jp-carousel-msg{font-family:"Open Sans",sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.jp-carousel-next-button span,.jp-carousel-previous-button span{background-image:url(../modules/carousel/images/arrows-2x.png)}}.jp-carousel-wrap{font-family:"Helvetica Neue",sans-serif!important}.jp-carousel-info{position:absolute;bottom:0;text-align:left!important;-webkit-font-smoothing:subpixel-antialiased!important}.jp-carousel-info ::selection{background:#68c9e8;color:#fff}.jp-carousel-info ::-moz-selection{background:#68c9e8;color:#fff}.jp-carousel-photo-info{position:relative;left:25%;width:50%}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-info h2{background:0 0!important;border:none!important;color:#999;display:block!important;font:normal 13px/1.25em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;margin:7px 0 0 0!important;padding:10px 0 0!important;overflow:hidden;text-align:left;text-shadow:none!important;text-transform:none!important;-webkit-font-smoothing:subpixel-antialiased}.jp-carousel-next-button,.jp-carousel-previous-button{text-indent:-9999px;overflow:hidden;cursor:pointer}.jp-carousel-next-button span,.jp-carousel-previous-button span{position:absolute;top:0;bottom:0;width:82px;zoom:1;opacity:.2}.jp-carousel-transitions .jp-carousel-next-button span,.jp-carousel-transitions .jp-carousel-previous-button span{transition:.5s opacity ease-out}.jp-carousel-next-button:hover span,.jp-carousel-previous-button:hover span{opacity:.6}.jp-carousel-next-button span{background-position:-110px center;right:0}.jp-carousel-previous-button span{background-position:-10px center;left:0}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:#999;font:normal 11px/1.2em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;padding:5px 2px 5px 0;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:#68c9e8;border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-next-button,.jp-carousel-previous-button,.jp-carousel-slide,.jp-carousel-slide img{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.jp-carousel-slide{position:fixed;width:0;bottom:0;background-color:#000;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}.jp-carousel-transitions .jp-carousel-slide{transition:.3s ease-out}.jp-carousel-slide.selected{position:absolute!important;opacity:1}.jp-carousel-slide{opacity:.25}.jp-carousel-slide img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;background:0 0!important;border:none!important;padding:0!important;box-shadow:0 2px 8px rgba(0,0,0,.1);zoom:1}.jp-carousel-transitions .jp-carousel-slide{transition:opacity .4s linear}.jp-carousel-close-hint{color:#999;cursor:default;letter-spacing:0!important;padding:.35em 0 0;position:absolute;text-align:right;width:90%}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint span{cursor:pointer;background-color:#000;background-color:rgba(0,0,0,.8);display:inline-block;height:22px;font:400 24px/1 "Helvetica Neue",sans-serif!important;line-height:22px;margin:0 0 0 .4em;text-align:center;vertical-align:middle;width:22px;border-radius:4px}.jp-carousel-transitions .jp-carousel-close-hint span{transition:border-color .2s linear}.jp-carousel-close-hint:hover{cursor:default;color:#fff}.jp-carousel-close-hint:hover span{border-color:#fff}a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background:url(../modules/carousel/images/carousel-sprite.png?5) no-repeat;background-size:16px 200px}div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{margin:0 14px 0 0!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#303030;padding-right:8px!important;border-radius:2px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{margin:0 2px 0 -12px!important}div.jp-carousel-buttons a.jp-carousel-reblog,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{background-position:6px -36px;padding-right:auto!important;padding-left:26px!important;color:#999}div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -156px;padding-left:19px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{cursor:default}div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:6px -56px;color:#68c9e8}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background-image:url(../modules/carousel/images/carousel-sprite-2x.png?5)}}div#carousel-reblog-box{background:#222;background:-moz-linear-gradient(bottom,#222,#333);background:-webkit-gradient(linear,left bottom,left top,from(#222),to(#333));padding:3px 0 0;display:none;margin:5px auto 0;border-radius:2px;box-shadow:0 0 20px rgba(0,0,0,.9);height:74px;width:565px}#carousel-reblog-box textarea{background:#999;font:13px/1.4 "Helvetica Neue",sans-serif!important;color:#444;padding:3px 6px;width:370px;height:48px;float:left;margin:6px 9px 0 9px;border:1px solid #666;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:2px}#carousel-reblog-box textarea:focus{background:#ccc;color:#222}#carousel-reblog-box label{color:#aaa;font-size:11px;padding-right:2px;padding-left:2px;display:inline;font-weight:400}#carousel-reblog-box select{width:110px;padding:0;font-size:12px;font-family:"Helvetica Neue",sans-serif!important;background:#333;color:#eee;border:1px solid #444;margin-top:5px}#carousel-reblog-box .submit,#wrapper #carousel-reblog-box p.response{float:left;width:154px;padding-top:0;padding-left:1px;overflow:hidden;height:34px;margin:3px 0 0 2px!important}#wrapper #carousel-reblog-box p.response{font-size:13px;clear:none;padding-left:2px;height:34px;color:#aaa}#carousel-reblog-box input#carousel-reblog-submit,#jp-carousel-comment-form-button-submit{font:13px/24px "Helvetica Neue",sans-serif!important;margin-top:8px;padding:0 10px!important;border-radius:1em;height:24px;color:#333;cursor:pointer;font-weight:400;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#ccc);background:-webkit-gradient(linear,left bottom,left top,from(#aaa),to(#ccc));border:1px solid #444}#carousel-reblog-box input#carousel-reblog-submit:hover,#jp-carousel-comment-form-button-submit:hover{background:#ccc;background:-moz-linear-gradient(bottom,#ccc,#eee);background:-webkit-gradient(linear,left bottom,left top,from(#ccc),to(#eee))}#carousel-reblog-box .canceltext{color:#aaa;font-size:11px;line-height:24px}#carousel-reblog-box .canceltext a{color:#fff}.jp-carousel-titleanddesc{border-top:1px solid #222;color:#999;font-size:15px;padding-top:24px;margin-bottom:20px;font-weight:400}.jp-carousel-titleanddesc-title{font:300 1.5em/1.1 "Helvetica Neue",sans-serif!important;text-transform:none!important;color:#fff;margin:0 0 15px;padding:0}.jp-carousel-titleanddesc-desc p{color:#999;line-height:1.4;margin-bottom:.75em}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-titleanddesc p a{color:#fff!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-titleanddesc p b,.jp-carousel-titleanddesc p strong{font-weight:700;color:#999}.jp-carousel-titleanddesc p em,.jp-carousel-titleanddesc p i{font-style:italic;color:#999}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-titleanddesc p a:hover{color:#68c9e8!important}.jp-carousel-titleanddesc p:empty{display:none}.jp-carousel-left-column-wrapper h1:after,.jp-carousel-left-column-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-image-meta{background:#111;border:1px solid #222;color:#fff;font-size:13px;font:12px/1.4 "Helvetica Neue",sans-serif!important;overflow:hidden;padding:18px 20px;width:209px!important}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:"Helvetica Neue",sans-serif!important;position:inherit!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;background:0 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 2% 15px 0!important;color:#fff!important;font-size:13px!important}.jp-carousel-image-meta h5{color:#999!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{padding-left:23px;display:inline-block;clear:both;color:#999;line-height:1;font-weight:400;font-size:13px;text-decoration:none;background-position:0 -82px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-left:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 1px 0 2px}a.jp-carousel-image-download:hover{background-position:0 -122px;color:#68c9e8;border:none!important}.jp-carousel-image-map{position:relative;margin:-20px -20px 20px;border-bottom:1px solid rgba(255,255,255,.17);height:154px}.jp-carousel-image-map img.gmap-main{border-top-left-radius:6px;border-right:1px solid rgba(255,255,255,.17)}.jp-carousel-image-map div.gmap-topright{width:94px;height:154px;position:absolute;top:0;right:0}.jp-carousel-image-map div.imgclip{overflow:hidden;border-top-right-radius:6px}.jp-carousel-image-map div.gmap-topright img{margin-left:-40px}.jp-carousel-image-map img.gmap-bottomright{position:absolute;top:96px;right:0}.jp-carousel-comments{font:15px/1.7 "Helvetica Neue",sans-serif!important;font-weight:400;background:none transparent}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:#68c9e8!important}.jp-carousel-comment{background:none transparent;color:#999;margin-bottom:20px;clear:left;overflow:auto;width:100%}.jp-carousel-comment p{color:#999!important}.jp-carousel-comment .comment-author{font-size:13px;font-weight:400;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:#fff}.jp-carousel-comment .comment-gravatar{float:left}.jp-carousel-comment .comment-content{border:none;margin-left:85px;padding:0}.jp-carousel-comment .avatar{margin:0 20px 0 0;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important}.jp-carousel-comment .comment-date{color:#999;margin-top:4px;font-size:11px;display:inline;float:right}#jp-carousel-comment-form{margin:0 0 10px!important;float:left;width:100%}textarea#jp-carousel-comment-form-comment-field{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:15px/1.4 "Helvetica Neue",sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:#ccc;color:#222}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#aaa}#jp-carousel-comment-form-spinner{color:#fff;margin:22px 0 0 10px;display:block;width:20px;height:20px;float:left}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:13px/1.4 "Helvetica Neue",sans-serif!important;padding:3px 6px;float:left;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:#ccc;color:#222}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:22px 0 0;float:left}#jp-carousel-comment-form-commenting-as fieldset{float:left;border:none;margin:20px 0 0 0;padding:0}#jp-carousel-comment-form-commenting-as fieldset{clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:0 20px 3px 0;float:left;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;float:right}#js-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;background:rgba(0,0,0,.7);border-radius:2px;font:13px/1.4 "Helvetica Neue",sans-serif!important;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 5px 5px rgba(0,0,0,1)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:#999}#jp-carousel-comments-loading{font:400 15px/1.7 "Helvetica Neue",sans-serif!important;display:none;color:#999;text-align:left;margin-bottom:20px}.jp-carousel-light .jp-carousel-overlay{background:#fff}.jp-carousel-light .jp-carousel-next-button:hover span,.jp-carousel-light .jp-carousel-previous-button:hover span{opacity:.8}.jp-carousel-light .jp-carousel-close-hint:hover,.jp-carousel-light .jp-carousel-titleanddesc div{color:#000!important}.jp-carousel-light .jp-carousel-comment .comment-author a,.jp-carousel-light .jp-carousel-comments p a,.jp-carousel-light .jp-carousel-info h2 a,.jp-carousel-light .jp-carousel-titleanddesc p a{color:#1e8cbe!important}.jp-carousel-light .jp-carousel-comment .comment-author a:hover,.jp-carousel-light .jp-carousel-comments p a:hover,.jp-carousel-light .jp-carousel-info h2 a:hover,.jp-carousel-light .jp-carousel-titleanddesc p a:hover{color:#f1831e!important}.jp-carousel-light .jp-carousel-comment,.jp-carousel-light .jp-carousel-comment p,.jp-carousel-light .jp-carousel-info h2,.jp-carousel-light .jp-carousel-titleanddesc,.jp-carousel-light .jp-carousel-titleanddesc p,.jp-carousel-light .jp-carousel-titleanddesc p b,.jp-carousel-light .jp-carousel-titleanddesc p em,.jp-carousel-light .jp-carousel-titleanddesc p i,.jp-carousel-light .jp-carousel-titleanddesc p strong,.jp-carousel-light div.jp-carousel-buttons a{color:#666}.jp-carousel-light .jp-carousel-buttons{border-bottom-color:#f0f0f0;background:#f5f5f5}.jp-carousel-light div.jp-carousel-buttons a:hover{text-decoration:none;color:#f1831e}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:4px -56px;padding-left:24px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#2ea2cc;color:#fff}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -176px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-position:5px -36px}.jp-carousel-light div#carousel-reblog-box{background:#eee;background:-moz-linear-gradient(bottom,#ececec,#f7f7f7);background:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f7f7f7));box-shadow:0 2px 10px rgba(0,0,0,.1);border:1px solid #ddd}.jp-carousel-light #carousel-reblog-box textarea{border:1px inset #ccc;color:#666;border:1px solid #cfcfcf;background:#fff}.jp-carousel-light #carousel-reblog-box .canceltext{color:#888}.jp-carousel-light #carousel-reblog-box .canceltext a{color:#666}.jp-carousel-light #carousel-reblog-box select{background:#eee;color:#333;border:1px solid #aaa}#jp-carousel-comment-form-button-submit,.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit{color:#333;background:#fff;background:-moz-linear-gradient(bottom,#ddd,#fff);background:-webkit-gradient(linear,left bottom,left top,from(#ddd),to(#fff));border:1px solid #aaa}.jp-carousel-light .jp-carousel-image-meta{background:#fafafa;border:1px solid #eee;border-top-color:#f5f5f5;border-left-color:#f5f5f5;color:#333}.jp-carousel-light .jp-carousel-image-meta li{color:#000!important}.jp-carousel-light .jp-carousel-close-hint{color:#ccc}.jp-carousel-light .jp-carousel-close-hint span{background-color:#fff;border-color:#ccc}.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#aaa}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus{color:#333}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#ddd}.jp-carousel-light a.jp-carousel-image-download{background-position:0 -122px}.jp-carousel-light a.jp-carousel-image-download:hover{background-position:0 -122px;color:#f1831e}.jp-carousel-light textarea#jp-carousel-comment-form-comment-field{background:#fbfbfb;color:#333;border:1px solid #dfdfdf;box-shadow:inset 2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input{background:#fbfbfb;border:1px solid #dfdfdf;color:#333;box-shadow:inset 2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus{background:#fbfbfb;color:#333}.jp-carousel-light #jp-carousel-comment-post-results span{background:#f7f7f7;border:1px solid #dfdfdf;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.jp-carousel-light .jp-carousel-slide{background-color:#fff}.jp-carousel-light .jp-carousel-titleanddesc{border-top:1px solid #eee}.jp-carousel-light .jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(255,255,255,.75),rgba(255,255,255,0));background:-webkit-gradient(linear,left bottom,left top,from(rgba(255,255,255,.75)),to(rgba(255,255,255,0)))}@media only screen and (max-width:760px){.jp-carousel-info{margin:0 10px!important}.jp-carousel-next-button,.jp-carousel-previous-button{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box}.jp-carousel-close-hint{font-weight:800!important;font-size:26px!important;position:fixed!important;top:-10px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:#000}.jp-carousel-fadeaway{display:none}#jp-carousel-comment-form-container{display:none!important}.jp-carousel-titleanddesc{padding-top:0!important;border:none!important}.jp-carousel-titleanddesc-title{font-size:1em!important}.jp-carousel-left-column-wrapper{padding:0;width:100%!important}.jp-carousel-photo-info{left:0!important;width:100%!important}}
-.contact-form .clear-form{clear:both}.contact-form input:-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover:-ms-input-placeholder{opacity:.5}.contact-form input:hover::-ms-input-placeholder{opacity:.5}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus:-ms-input-placeholder{opacity:.3}.contact-form input:focus::-ms-input-placeholder{opacity:.3}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:.75em;width:100%}.contact-form select{margin-bottom:.75em}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:.75em;width:100%}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin-bottom:.75em;vertical-align:bottom;vertical-align:-webkit-baseline-middle;vertical-align:-moz-middle-with-baseline}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-block}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:.5em}.contact-form label span{color:#aaa;margin-left:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 8px 0 0}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}}
-.infinite-loader{color:#000;display:block;height:28px;text-indent:-9999px}#infinite-handle span{background:#333;border-radius:1px;color:#eee;cursor:pointer;font-size:13px;padding:6px 16px}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:0 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;left:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:left;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:right;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:right}#infinite-footer .blog-credits a{color:#666}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}
-@font-face{font-family:Noticons;src:url(https://wordpress.com/i/noticons/Noticons.woff)}#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-likes-widget-wrapper.slim-likes-widget{width:1px;min-height:0}div.jetpack-comment-likes-widget-wrapper{width:100%;position:relative;min-height:31px}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px 10px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:left;margin:0 5px 5px 0}#likes-other-gravatars ul.wpl-avatars li a{margin:0 2px 0 0;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:0 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.comment-likes-widget-placeholder{height:18px;position:absolute;display:flex;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin-top:4px}.comment-likes-widget-placeholder::before{-webkit-font-smoothing:antialiased;font-family:Noticons;font-size:20px;line-height:.9;color:#5cb5d4;content:'\f408';width:16px;display:inline-block;vertical-align:middle}.post-likes-widget-placeholder .button{display:none}.comment-likes-widget-placeholder .loading,.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{padding-left:5px;margin-top:2px;align-self:center;color:#4e4e4e}.slim-likes-widget .post-likes-widget{width:auto;float:none}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}
-.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-left:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:left;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:left;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-right:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;left:0;right:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:left;overflow:hidden;max-width:33%;margin-right:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-right:0}}
-#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-content ul{padding:0!important;margin:0 0 .7em 0!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-content ul li.share-deprecated{opacity:.5}.sd-content ul li.share-deprecated a span{text-decoration:line-through}.sd-block.sd-gplus{margin:0 0 .5em 0}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#656565!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 8px 0 5px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button>a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content ul li a.sd-button>span{line-height:17px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#fafafa;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:normal 18px/1 social-logos;vertical-align:top;text-align:center}.sd-social-icon-text ul li a.sd-button:before{position:relative;top:2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-content ul li a.sd-button:before{position:relative;top:2px}}.sd-social-official ul li a.sd-button:before{position:relative;top:-2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-official ul li a.sd-button:before{top:0}}.sd-content ul li{margin:0 5px 5px 0;padding:0}.jp-sharing-input-touch .sd-content ul li{padding-left:10px}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-left:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-left:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-left:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:-4px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-icon .sd-content ul li a.share-more{top:2px}}@-moz-document url-prefix(){.sd-social-icon .sd-content ul li a.share-more{top:2px}}.sd-social-icon .sd-content ul li a.share-more span{margin-left:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f607'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f210'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f203'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.share-telegram div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-telegram a:before,.sd-social-icon-text .sd-content li.share-telegram a:before,.sd-social-official .sd-content li.share-telegram a:before,.sd-social-text .sd-content ul li.share-telegram a:before{content:'\f606'}.sd-social-official .sd-content li.share-telegram a:before{color:#08c}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-content ul li.share-jetpack-whatsapp div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-jetpack-whatsapp a:before,.sd-social-icon-text .sd-content li.share-jetpack-whatsapp a:before,.sd-social-official .sd-content li.share-jetpack-whatsapp a:before,.sd-social-text .sd-content ul li.share-jetpack-whatsapp a:before{content:'\f608'}.sd-social-official .sd-content li.share-jetpack-whatsapp a:before{color:#43d854}.sd-social-icon .sd-content ul li[class*=share-].share-jetpack-whatsapp a.sd-button{background:#43d854;color:#fff!important}.sd-content ul li.share-deprecated div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-deprecated a:before,.sd-social-icon-text .sd-content li.share-deprecated a:before,.sd-social-official .sd-content li.share-deprecated a:before{width:1em;height:1em;content:"\1F6AB"}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px 0}.sd-social-official .sd-content ul>li{display:block;float:left;margin:0 10px 5px 0!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.reddit_button iframe{margin-top:1px}.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}.linkedin_button>span,.pinterest_button a{display:block!important}.sd-social-official .sd-content .share-skype{width:55px}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0 3px;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-left:0;padding:0 0 0 19px;display:inline-block;height:21px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-left:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0!important;height:0!important}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;left:20px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:7px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:1px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px 8px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-left:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-left:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;right:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#1877f2;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#1e8cbe;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-telegram a.sd-button{background:#08c;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00aff0;color:#fff!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:left}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px 0;text-align:left;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;left:-9000px}#sharing_email .sharing_cancel{padding:0 0 0 1em;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em 0}
-.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;left:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;left:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}
-body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:grey;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #e5e5e5;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{left:0;background-position:4px 50%}.presentation .nav-arrow-right{right:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;right:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#e5e5e5;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}
-div.jetpack-quiz{border:1px solid #deede3;background-color:#f3f3f3;padding:1em;line-height:1.3em;margin-bottom:2em;border-radius:.2em}div.jetpack-quiz div.jetpack-quiz-question{margin-bottom:.5em;font-weight:700}div.jetpack-quiz div.jetpack-quiz-answer{cursor:pointer;margin-bottom:.5em;padding:1em 0 1em 1em;border-bottom:1px dotted #999}div.jetpack-quiz div.jetpack-quiz-answer.last{padding-bottom:0;margin-bottom:0;border-bottom:0}div.jetpack-quiz div.jetpack-quiz-answer.correct{color:green}div.jetpack-quiz div.jetpack-quiz-answer.wrong{color:red}div.jetpack-quiz div.jetpack-quiz-answer div.jetpack-quiz-explanation{display:none}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation{display:block;color:#000;font-size:90%;margin-top:1em}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation tt,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation tt{font-size:85%}div.jetpack-quiz pre{font:15px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;background:0 0;margin:0;padding:0}
+@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format( 'woff' );font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.jp-carousel-overlay .swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.jp-carousel-overlay .swiper-container-vertical>.swiper-wrapper{flex-direction:column}.jp-carousel-overlay .swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.jp-carousel-overlay .swiper-container-android .swiper-slide,.jp-carousel-overlay .swiper-wrapper{transform:translate3d(0,0,0)}.jp-carousel-overlay .swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.jp-carousel-overlay .swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.jp-carousel-overlay .swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.jp-carousel-overlay .swiper-container-pointer-events{touch-action:pan-y}.jp-carousel-overlay .swiper-container-pointer-events.swiper-container-vertical{touch-action:pan-x}.jp-carousel-overlay .swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.jp-carousel-overlay .swiper-slide-invisible-blank{visibility:hidden}.jp-carousel-overlay .swiper-container-autoheight,.jp-carousel-overlay .swiper-container-autoheight .swiper-slide{height:auto}.jp-carousel-overlay .swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.jp-carousel-overlay .swiper-container-3d{perspective:1200px}.jp-carousel-overlay .swiper-container-3d .swiper-cube-shadow,.jp-carousel-overlay .swiper-container-3d .swiper-slide,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top,.jp-carousel-overlay .swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.jp-carousel-overlay .swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.jp-carousel-overlay .swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.jp-carousel-overlay .swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}:root{--swiper-navigation-size:44px}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.jp-carousel-overlay .swiper-button-next.swiper-button-disabled,.jp-carousel-overlay .swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.jp-carousel-overlay .swiper-button-prev,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next{left:10px;right:auto}.jp-carousel-overlay .swiper-button-prev:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after{content:'prev'}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after{content:'next'}.jp-carousel-overlay .swiper-button-next.swiper-button-white,.jp-carousel-overlay .swiper-button-prev.swiper-button-white{--swiper-navigation-color:#ffffff}.jp-carousel-overlay .swiper-button-next.swiper-button-black,.jp-carousel-overlay .swiper-button-prev.swiper-button-black{--swiper-navigation-color:#000000}.jp-carousel-overlay .swiper-button-lock{display:none}.jp-carousel-overlay .swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.jp-carousel-overlay .swiper-pagination.swiper-pagination-hidden{opacity:0}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets,.jp-carousel-overlay .swiper-pagination-custom,.jp-carousel-overlay .swiper-pagination-fraction{bottom:10px;left:0;width:100%}.jp-carousel-overlay .swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.jp-carousel-overlay .swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:50%;background:#000;opacity:.2}.jp-carousel-overlay button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.jp-carousel-overlay .swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.jp-carousel-overlay .swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0,-50%,0)}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.jp-carousel-overlay .swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.jp-carousel-overlay .swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.jp-carousel-overlay .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.jp-carousel-overlay .swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-progressbar,.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.jp-carousel-overlay .swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.jp-carousel-overlay .swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.jp-carousel-overlay .swiper-pagination-white{--swiper-pagination-color:#ffffff}.jp-carousel-overlay .swiper-pagination-black{--swiper-pagination-color:#000000}.jp-carousel-overlay .swiper-pagination-lock{display:none}.jp-carousel-overlay .swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.jp-carousel-overlay .swiper-zoom-container>canvas,.jp-carousel-overlay .swiper-zoom-container>img,.jp-carousel-overlay .swiper-zoom-container>svg{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.jp-carousel-overlay .swiper-slide-zoomed{cursor:move}.jp-carousel-overlay .swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}
+:root{--jp-carousel-primary-color:#fff;--jp-carousel-primary-subtle-color:#999;--jp-carousel-bg-color:#000;--jp-carousel-bg-faded-color:#222;--jp-carousel-border-color:#3a3a3a}:root .jp-carousel-light{--jp-carousel-primary-color:#000;--jp-carousel-primary-subtle-color:#646970;--jp-carousel-bg-color:#fff;--jp-carousel-bg-faded-color:#fbfbfb;--jp-carousel-border-color:#dcdcde}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev{background-image:none}[data-carousel-extra]:not(.jp-carousel-wrap) img,[data-carousel-extra]:not(.jp-carousel-wrap) img+figcaption{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-wrap.swiper-container{height:auto;width:100vw}.jp-carousel-overlay .swiper-zoom-container{background-size:200%;background-repeat:no-repeat;background-position:center}.jp-carousel-overlay .swiper-slide.swiper-slide-next .swiper-zoom-container img,.jp-carousel-overlay .swiper-slide.swiper-slide-prev .swiper-zoom-container img{transition:none!important}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev{opacity:.5;transition:.5s opacity ease-out;height:initial;width:initial;padding:20px 40px;background-image:none}.jp-carousel-overlay .swiper-button-next:hover,.jp-carousel-overlay .swiper-button-prev:hover{opacity:1}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-button-prev:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after{content:none}.jp-carousel-overlay .swiper-button-next svg,.jp-carousel-overlay .swiper-button-prev svg{height:30px;width:28px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-overlay{font-family:'Helvetica Neue',sans-serif!important;z-index:2147483647;overflow-x:hidden;overflow-y:auto;direction:ltr;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--jp-carousel-bg-color)}.jp-carousel-overlay *{box-sizing:border-box}.jp-carousel-overlay h1:before,.jp-carousel-overlay h2:before,.jp-carousel-overlay h3:before{content:none;display:none}.jp-carousel-overlay .swiper-container .swiper-button-prev{left:0;right:auto}.jp-carousel-overlay .swiper-container .swiper-button-next{right:0;left:auto}.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-prev{transform:scaleX(-1)}.jp-carousel-container{display:grid;grid-template-rows:1fr 64px;height:100%}.jp-carousel-hide-controls .jp-carousel-container{grid-template-rows:1fr}.jp-carousel-hide-controls .swiper-wrapper{margin-top:-32px}.jp-carousel-hide-controls .jp-swiper-button-next,.jp-carousel-hide-controls .jp-swiper-button-prev{margin-top:-54px}.jp-carousel-msg{font-family:'Open Sans',sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 20px 0 2px;background-color:var(--jp-carousel-primary-color);border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.jp-carousel-info{display:flex;flex-direction:column;text-align:left!important;-webkit-font-smoothing:subpixel-antialiased!important;z-index:100;background-color:var(--jp-carousel-bg-color);transition:opacity .2s ease-out;opacity:1}.jp-carousel-hide-controls .jp-carousel-info{visibility:hidden;height:0;overflow:hidden}.jp-carousel-info-footer{position:relative;background-color:var(--jp-carousel-bg-color);height:64px;display:flex;align-items:center;justify-content:space-between;width:100vw}.jp-carousel-info-extra{display:none;background-color:var(--jp-carousel-bg-color);padding:35px;width:100vw;border-top:1px solid var(--jp-carousel-bg-faded-color)}.jp-carousel-title-and-caption{margin-bottom:15px}.jp-carousel-info-extra.jp-carousel-show{display:block}.jp-carousel-info ::selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-info ::-moz-selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-photo-info{left:0!important;width:100%!important}.jp-carousel-comments-wrapper{padding:0;width:100%!important;display:none}.jp-carousel-comments-wrapper.jp-carousel-show{display:block}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:none}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:var(--jp-carousel-primary-subtle-color);font:normal 11px/1.2em 'Helvetica Neue',sans-serif!important;letter-spacing:0!important;padding:5px 2px 5px 0;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:var(--jp-carousel-primary-color);border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-slide,.jp-carousel-slide img{transform:translate3d(0,0,0)}.jp-carousel-close-hint{cursor:default;letter-spacing:0!important;position:fixed;top:20px;right:30px;padding:10px;text-align:right;width:45px;height:45px;z-index:15;color:var(--jp-carousel-primary-color);cursor:pointer;transition:opacity .2s ease-out}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint svg{padding:3px 2px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-close-hint:hover{color:var(--jp-carousel-primary-color)}.jp-carousel-close-hint:hover span{border-color:var(--jp-carousel-primary-color)}.jp-carousel-pagination-container{flex:1;margin:0 15px 0 35px}.jp-carousel-pagination,.jp-swiper-pagination{color:var(--jp-carousel-primary-color);font-size:15px;font-weight:400;white-space:nowrap;display:none;position:static!important}.jp-carousel-pagination-container .swiper-pagination{text-align:left;line-height:8px}.jp-carousel-pagination{padding-left:5px}.jp-swiper-pagination .swiper-pagination-bullet{background:var(--jp-carousel-primary-subtle-color);margin:0 9px}.jp-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background:var(--jp-carousel-primary-color)}.jp-swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active){background:var(--jp-carousel-primary-color);opacity:.5}.jp-carousel-info-footer .jp-carousel-photo-title-container{flex-basis:50vw;flex:4;justify-content:center;overflow:hidden;margin:0}.jp-carousel-photo-caption,.jp-carousel-photo-title{background:0 0!important;border:none!important;display:inline-block;font:normal 20px/1.3em 'Helvetica Neue',sans-serif;line-height:normal;letter-spacing:0!important;margin:0 0 10px 0;padding:0;overflow:hidden;text-shadow:none!important;text-transform:none!important;color:var(--jp-carousel-primary-color)}.jp-carousel-info-footer .jp-carousel-photo-caption{text-align:center;font-size:15px;white-space:nowrap;color:var(--jp-carousel-primary-subtle-color);cursor:pointer;margin:0;text-overflow:ellipsis}.jp-carousel-info-footer .jp-carousel-photo-caption p{margin:0}.jp-carousel-photo-title{font-size:32px;margin-bottom:2px}.jp-carousel-photo-description{color:var(--jp-carousel-primary-subtle-color);font-size:16px;margin:25px 0;width:100%}.jp-carousel-photo-description{overflow:hidden;overflow-wrap:break-word}.jp-carousel-photo-description p{color:var(--jp-carousel-primary-subtle-color);line-height:1.4;margin-bottom:0}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-photo-description p a{color:var(--jp-carousel-primary-color)!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-photo-description p b,.jp-carousel-photo-description p strong{font-weight:700;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-photo-description p em,.jp-carousel-photo-description p i{font-style:italic;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-photo-description p a:hover{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-photo-description p:empty{display:none}.jp-carousel-comments-wrapper h1:after,.jp-carousel-comments-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-caption{font-size:14px;font-weight:400;margin:0}.jp-carousel-image-meta{color:var(--jp-carousel-primary-color);font-size:13px;font:12px/1.4 'Helvetica Neue',sans-serif!important;width:100%;display:none}.jp-carousel-image-meta.jp-carousel-show{display:block}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:'Helvetica Neue',sans-serif!important;position:inherit!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;background:0 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 2% 15px 0!important;color:var(--jp-carousel-primary-color)!important;font-size:13px!important}.jp-carousel-image-meta h5{color:var(--jp-carousel-primary-subtle-color)!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{display:inline-block;clear:both;color:var(--jp-carousel-primary-subtle-color);line-height:1;font-weight:400;font-size:14px;text-decoration:none}a.jp-carousel-image-download svg{display:inline-block;vertical-align:middle;margin:0 3px;padding-bottom:2px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-left:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 1px 0 2px}.jp-carousel-comments{font:15px/1.7 'Helvetica Neue',sans-serif!important;font-weight:400;background:none transparent;width:100%;bottom:10px;margin-top:20px}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:var(--jp-carousel-primary-color)!important}.jp-carousel-comment{background:none transparent;color:var(--jp-carousel-primary-subtle-color);overflow:auto;width:100%;display:flex}.jp-carousel-comment+.jp-carousel-comment{margin-top:20px}.jp-carousel-comment:last-of-type{margin-bottom:20px}.jp-carousel-comment p{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-comment .comment-author{font-size:15px;font-weight:500;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:var(--jp-carousel-primary-color)}.jp-carousel-comment .comment-gravatar{float:none;margin-right:10px}.jp-carousel-comment .comment-content{border:none;padding:0}.jp-carousel-comment .avatar{margin:0;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important;min-width:64px;min-height:64px;width:64px;height:64px}.jp-carousel-comment .comment-date{color:var(--jp-carousel-primary-subtle-color);font-size:11px;border-bottom:1px solid var(--jp-carousel-bg-faded-color);margin-bottom:6px}#jp-carousel-comment-form{margin:0 0 10px!important;width:100%}#jp-carousel-comment-form.jp-carousel-is-disabled{opacity:.5;pointer-events:none}textarea#jp-carousel-comment-form-comment-field{background:var(--jp-carousel-bg-faded-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset 2px 2px 2px rgba(0,0,0,.1);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-loading-overlay{display:none;position:fixed;top:0;bottom:0;left:0;right:0}#jp-carousel-loading-wrapper{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw}#jp-carousel-library-loading,#jp-carousel-library-loading:after{border-radius:50%;width:40px;height:40px}#jp-carousel-library-loading{float:left;margin:22px 0 0 10px;font-size:10px;position:relative;text-indent:-9999em;border-top:8px solid rgba(255,255,255,.2);border-right:8px solid rgba(255,255,255,.2);border-bottom:8px solid rgba(255,255,255,.2);border-left:8px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear}#jp-carousel-comment-form-spinner,#jp-carousel-comment-form-spinner:after{border-radius:50%;width:20px;height:20px}#jp-carousel-comment-form-spinner{display:none;float:left;margin:22px 0 0 10px;font-size:10px;position:absolute;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-right:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-left:4px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear;margin:0 auto;top:calc(50% - 15px);left:0;bottom:0;right:0}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.jp-carousel-info-content-wrapper{max-width:800px;margin:auto}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:var(--jp-carousel-bg-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;padding:10px;float:left;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:22px 0 0;float:left}#jp-carousel-comment-form-commenting-as fieldset{float:left;border:none;margin:20px 0 0 0;padding:0;clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:0 20px 3px 0;float:left;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;margin-left:auto;display:block;border:solid 1px var(--jp-carousel-primary-color);background:var(--jp-carousel-bg-color);border-radius:3px;padding:8px 16px;font-size:14px;color:var(--jp-carousel-primary-color)}#jp-carousel-comment-form-button-submit:active,#jp-carousel-comment-form-button-submit:focus{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color)}#jp-carousel-comment-form-container{margin-bottom:15px;width:100%;margin-top:20px;color:var(--jp-carousel-primary-subtle-color);position:relative;overflow:hidden}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;border-radius:2px;font:13px/1.4 'Helvetica Neue',sans-serif!important;border:1px solid var(--jp-carousel-border-color);box-shadow:inset 0 0 5px 0 rgba(0,0,0,.2)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comments-loading{font:400 15px/1.7 'Helvetica Neue',sans-serif!important;display:none;color:var(--jp-carousel-primary-subtle-color);text-align:left;margin-bottom:20px;width:100%;bottom:10px;margin-top:20px}.jp-carousel-photo-icons-container{flex:1;display:block;text-align:right;margin:0 20px 0 30px;white-space:nowrap}.jp-carousel-icon-btn{padding:16px;text-decoration:none;border:none;background:0 0;display:inline-block;height:64px}.jp-carousel-icon{border:none;pointer-events:none;display:inline-block;line-height:0;font-weight:400;font-style:normal;border-radius:4px;width:31px;padding:4px 3px 3px}.jp-carousel-icon svg{display:inline-block}.jp-carousel-overlay rect{fill:var(--jp-carousel-primary-color)}.jp-carousel-selected .jp-carousel-icon{background:var(--jp-carousel-primary-color)}.jp-carousel-selected rect{fill:var(--jp-carousel-bg-color)}.jp-carousel-icon-comments.jp-carousel-show{display:inline-block}.jp-carousel-icon .jp-carousel-has-comments-indicator{display:none;font-size:12px;vertical-align:top;margin-left:-16px;line-height:1;padding:2px 4px;border-radius:4px;background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color);font-weight:400;font-family:'Helvetica Neue',sans-serif!important;position:relative}.jp-carousel-selected .jp-carousel-icon .jp-carousel-has-comments-indicator{background:var(--jp-carousel-bg-color);color:var(--jp-carousel-primary-color)}.jp-carousel-has-comments-indicator.jp-carousel-show{display:inline-block}@media only screen and (max-width:760px){.jp-carousel-overlay .swiper-container .swiper-button-next,.jp-carousel-overlay .swiper-container .swiper-button-prev{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box;margin-left:0}.jp-carousel-close-hint{font-size:26px!important;position:fixed!important;top:10px;right:10px}.admin-bar .jp-carousel-close-hint{top:40px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:var(--jp-carousel-bg-color)}.jp-carousel-fadeaway{display:none}.jp-carousel-info>.jp-carousel-photo-info{display:none}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:block}.jp-carousel-caption{overflow:visible!important}.jp-carousel-info-footer .jp-carousel-photo-title-container{display:none}.jp-carousel-photo-icons-container{margin:0 10px 0 0;white-space:nowrap}.jp-carousel-icon-btn{padding-left:20px}.jp-carousel-pagination{padding-left:5px}.jp-carousel-pagination-container{margin-left:25px}.jp-carousel-comment .avatar{min-width:48px}#jp-carousel-comment-form-commenting-as fieldset,#jp-carousel-comment-form-commenting-as input{width:100%;float:none}}
+.contact-form .clear-form{clear:both}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:1.5em;width:100%;padding:14px 7px}.contact-form select{margin-bottom:1.5em;padding:14px 7px;min-width:150px}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:1.5em;width:100%;padding:7px;font:inherit}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin:0 .75rem 0 5px}.contact-form input[type=checkbox]{top:0;margin-left:0}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.consent-implicit input{display:none}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-flex;align-items:center}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-consent-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:1em}.contact-form label span{font-size:85%;margin-left:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 8px 0 0}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form{display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:row}.wp-block-jetpack-button,.wp-block-jetpack-contact-form .grunion-field-wrap{flex:0 0 100%}.wp-block-jetpack-button button{padding:20px 30px;border:inherit;font:inherit}.wp-block-jetpack-button.alignright button{float:right}.wp-block-jetpack-contact-form .grunion-field-wrap{border-right:15px solid transparent}.wp-block-jetpack-contact-form .grunion-field-width-25-wrap{flex:0 0 25%}.wp-block-jetpack-contact-form .grunion-field-width-50-wrap{flex:0 0 50%}.wp-block-jetpack-contact-form .grunion-field-width-75-wrap{flex:0 0 75%}.grunion-field-checkbox-wrap,.grunion-field-consent-wrap{align-self:center}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}.wp-block-jetpack-contact-form input[type=email],.wp-block-jetpack-contact-form input[type=tel],.wp-block-jetpack-contact-form input[type=text],.wp-block-jetpack-contact-form input[type=url]{width:100%}}.jetpack-empty-spam-container{display:inline-block}.jetpack-empty-spam{display:inline-block}.jetpack-empty-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form .wp-block-spacer{width:100%}
+.infinite-loader{color:#000;display:block;height:28px;text-align:center}#infinite-handle span{background:#333;border-radius:1px;color:#f0f0f1;cursor:pointer;font-size:13px;padding:6px 16px}@keyframes spinner-inner{0%{opacity:1}100%{opacity:0}}.infinite-loader .spinner-inner div{left:47px;top:24px;position:absolute;animation:spinner-inner linear 1s infinite;background:#000;outline:1px solid #fff;width:6px;height:12px;border-radius:3px/6px;transform-origin:3px 26px}.infinite-loader .spinner-inner div:nth-child(1){transform:rotate(0);animation-delay:-.9166666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(2){transform:rotate(30deg);animation-delay:-.8333333333333334s;background:#000}.infinite-loader .spinner-inner div:nth-child(3){transform:rotate(60deg);animation-delay:-.75s;background:#000}.infinite-loader .spinner-inner div:nth-child(4){transform:rotate(90deg);animation-delay:-.6666666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(5){transform:rotate(120deg);animation-delay:-.5833333333333334s;background:#000}.infinite-loader .spinner-inner div:nth-child(6){transform:rotate(150deg);animation-delay:-.5s;background:#000}.infinite-loader .spinner-inner div:nth-child(7){transform:rotate(180deg);animation-delay:-.4166666666666667s;background:#000}.infinite-loader .spinner-inner div:nth-child(8){transform:rotate(210deg);animation-delay:-.3333333333333333s;background:#000}.infinite-loader .spinner-inner div:nth-child(9){transform:rotate(240deg);animation-delay:-.25s;background:#000}.infinite-loader .spinner-inner div:nth-child(10){transform:rotate(270deg);animation-delay:-.16666666666666666s;background:#000}.infinite-loader .spinner-inner div:nth-child(11){transform:rotate(300deg);animation-delay:-83.33333333333333ms;background:#000}.infinite-loader .spinner-inner div:nth-child(12){transform:rotate(330deg);animation-delay:0s;background:#000}.infinite-loader .spinner{width:28px;height:28px;display:inline-block;overflow:hidden;background:0 0}.infinite-loader .spinner-inner{width:100%;height:100%;position:relative;transform:translateZ(0) scale(.28);-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-origin:0 0}.infinite-loader .spinner-inner div{box-sizing:content-box}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:0 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;left:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:left;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:right;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:right}#infinite-footer .blog-credits a{color:#646970}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}#infinite-aria{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}.infinite-wrap:focus{outline:0!important}
+#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;margin-bottom:1em}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-comment-likes-widget-wrapper{width:100%;position:relative;min-height:31px}div.jetpack-comment-likes-widget-wrapper iframe{margin-bottom:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px 10px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:left;margin:0 5px 5px 0}#likes-other-gravatars ul.wpl-avatars li a{margin:0 2px 0 0;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:0 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #dcdcde;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.comment-likes-widget-placeholder,.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.comment-likes-widget-placeholder{height:18px;position:absolute;display:flex;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.comment-likes-widget-placeholder::before{color:#2ea2cc;width:16px;height:16px;content:'';display:inline-block;position:relative;top:3px;padding-right:5px;background-repeat:no-repeat;background-size:16px 16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='0' fill='none' width='24' height='24'/%3E%3Cg%3E%3Cpath fill='%232EA2CC' 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'/%3E%3C/g%3E%3C/svg%3E")}.post-likes-widget-placeholder .button{display:none}.comment-likes-widget-placeholder .loading,.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.comment-likes-widget-placeholder .loading{padding-left:5px;margin-top:4px;align-self:center;color:#4e4e4e}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.cs-rating,.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}@media print{.jetpack-likes-widget-wrapper{display:none}}
+.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-left:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:left;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:left;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-right:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;left:0;right:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{height:auto;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:left;overflow:hidden;max-width:33%;margin-right:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-right:0}}@media print{.jp-relatedposts{display:none!important}}
+#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em 0;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-sharing{margin-bottom:1em}.sd-content ul{padding:0!important;margin:0!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-content ul li.share-deprecated{opacity:.5}.sd-content ul li.share-deprecated a span{text-decoration:line-through}.sd-block.sd-gplus{margin:0 0 .5em 0}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#656565!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 8px 0 5px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button>a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content ul li a.sd-button>span{line-height:17px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#f6f7f7;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:normal 18px/1 social-logos;vertical-align:top;text-align:center}.sd-social-icon-text ul li a.sd-button:before{position:relative;top:2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-content ul li a.sd-button:before{position:relative;top:2px}}.sd-social-official ul li a.sd-button:before{position:relative;top:-2px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-official ul li a.sd-button:before{top:0}}.sd-content ul li{margin:0 5px 5px 0;padding:0}.jp-sharing-input-touch .sd-content ul li{padding-left:10px}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-left:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-left:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-left:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:-4px}@media screen and (-webkit-min-device-pixel-ratio:0){.sd-social-icon .sd-content ul li a.share-more{top:2px}}@-moz-document url-prefix(){.sd-social-icon .sd-content ul li a.share-more{top:2px}}.sd-social-icon .sd-content ul li a.share-more span{margin-left:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f607'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f210'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f203'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.share-telegram div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-telegram a:before,.sd-social-icon-text .sd-content li.share-telegram a:before,.sd-social-official .sd-content li.share-telegram a:before,.sd-social-text .sd-content ul li.share-telegram a:before{content:'\f606'}.sd-social-official .sd-content li.share-telegram a:before{color:#08c}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-content ul li.share-jetpack-whatsapp div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-jetpack-whatsapp a:before,.sd-social-icon-text .sd-content li.share-jetpack-whatsapp a:before,.sd-social-official .sd-content li.share-jetpack-whatsapp a:before,.sd-social-text .sd-content ul li.share-jetpack-whatsapp a:before{content:'\f608'}.sd-social-official .sd-content li.share-jetpack-whatsapp a:before{color:#43d854}.sd-social-icon .sd-content ul li[class*=share-].share-jetpack-whatsapp a.sd-button{background:#43d854;color:#fff!important}.sd-content ul li.share-deprecated div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-deprecated a:before,.sd-social-icon-text .sd-content li.share-deprecated a:before,.sd-social-official .sd-content li.share-deprecated a:before{width:1em;height:1em;content:"\1F6AB"}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px 0}.sd-social-official .sd-content ul>li{display:block;float:left;margin:0 10px 5px 0!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.reddit_button iframe{margin-top:1px}.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}.linkedin_button>span,.pinterest_button a{display:block!important}.sd-social-official .sd-content .share-skype{width:55px}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0 3px;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-left:0;padding:0 0 0 19px;display:inline-block;height:21px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-left:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0!important;height:0!important}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;left:20px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:7px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px 8px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-left:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-left:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;right:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#1877f2;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#4f94d4;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-telegram a.sd-button{background:#08c;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00aff0;color:#fff!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f0f0f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:left}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px 0;text-align:left;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;left:-9000px}#sharing_email .sharing_cancel{padding:0 0 0 1em;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em 0}.sd-content .share-customize-link{margin-top:0;line-height:11px}.sd-content .share-customize-link a{font-size:11px;font-family:"Open Sans",sans-serif}@media print{.sharedaddy.sd-sharing-enabled{display:none}}
+.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;left:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f6f7f7;text-shadow:#222 1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;left:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:#fff!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}
+body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:grey;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #dcdcde;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{left:0;background-position:4px 50%}.presentation .nav-arrow-right{right:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;right:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#dcdcde;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}
+div.jetpack-quiz{border:1px solid #deede3;background-color:#f3f3f3;padding:1em;line-height:1.3em;margin-bottom:2em;border-radius:.2em}div.jetpack-quiz div.jetpack-quiz-question{margin-bottom:.5em;font-weight:700}div.jetpack-quiz div.jetpack-quiz-answer{cursor:pointer;margin-bottom:.5em;padding:1em 0 1em 1em;border-bottom:1px dotted #999}div.jetpack-quiz div.jetpack-quiz-answer.last{padding-bottom:0;margin-bottom:0;border-bottom:0}div.jetpack-quiz div.jetpack-quiz-answer.correct{color:green}div.jetpack-quiz div.jetpack-quiz-answer.wrong{color:red}div.jetpack-quiz div.jetpack-quiz-answer div.jetpack-quiz-explanation{display:none}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation{display:block;color:#000;font-size:90%;margin-top:1em}div.jetpack-quiz div.jetpack-quiz-answer.correct div.jetpack-quiz-explanation tt,div.jetpack-quiz div.jetpack-quiz-answer.wrong div.jetpack-quiz-explanation tt{font-size:85%}div.jetpack-quiz pre{font:15px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace;background:0 0;margin:0;padding:0}.jetpack-quiz-options{margin-top:12px;text-align:right}.jetpack-quiz-count{color:#646970;float:left;font-size:12px}.jetpack-quiz-option-button{cursor:pointer;margin-left:12px}.jetpack-quiz-option-button:hover svg{background:#3c434a}.jetpack-quiz-option-button svg{background:#000;border-radius:50%;display:inline-block;fill:#fff;height:24px;width:24px}.jetpack-quiz-wrapper .jetpack-quiz:first-of-type .jetpack-quiz-option-button:first-of-type,.jetpack-quiz-wrapper .jetpack-quiz:last-of-type .jetpack-quiz-option-button:last-of-type{display:none}
#subscribe-email input{width:95%}.comment-subscription-form{margin-bottom:1em}.comment-subscription-form .subscribe-label{display:inline!important}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.jetpack-video-wrapper{margin-bottom:1.6em}.jetpack-video-wrapper>.wp-video,.jetpack-video-wrapper>embed,.jetpack-video-wrapper>iframe,.jetpack-video-wrapper>object{margin-bottom:0}
.jetpack-social-navigation ul{display:block;margin:0 0 1.5em;padding:0}.jetpack-social-navigation li{display:inline-block;margin:0;line-height:1}.jetpack-social-navigation a{border:0;height:1em;text-decoration:none;width:1em}.jetpack-social-navigation-svg .icon{color:inherit;fill:currentColor;height:1em;vertical-align:middle;width:1em}.jetpack-social-navigation-genericons a:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:Genericons;font-size:1em;font-style:normal;font-weight:400;height:1em;line-height:1;speak:none;text-decoration:inherit;vertical-align:top;width:1em}.jetpack-social-navigation-genericons a:before{content:"\f415"}.jetpack-social-navigation-genericons a[href*="codepen.io"]:before{content:"\f216"}.jetpack-social-navigation-genericons a[href*="digg.com"]:before{content:"\f221"}.jetpack-social-navigation-genericons a[href*="dribbble.com"]:before{content:"\f201"}.jetpack-social-navigation-genericons a[href*="dropbox.com"]:before{content:"\f225"}.jetpack-social-navigation-genericons a[href*="mailto:"]:before{content:"\f410"}.jetpack-social-navigation-genericons a[href*="facebook.com"]:before{content:"\f203"}.jetpack-social-navigation-genericons a[href*="flickr.com"]:before{content:"\f211"}.jetpack-social-navigation-genericons a[href*="foursquare.com"]:before{content:"\f226"}.jetpack-social-navigation-genericons a[href*="github.com"]:before{content:"\f200"}.jetpack-social-navigation-genericons a[href*="plus.google.com"]:before{content:"\f206"}.jetpack-social-navigation-genericons a[href*="instagram.com"]:before{content:"\f215"}.jetpack-social-navigation-genericons a[href*="linkedin.com"]:before{content:"\f208"}.jetpack-social-navigation-genericons a[href*="path.com"]:before{content:"\f219"}.jetpack-social-navigation-genericons a[href*="pinterest."]:before{content:"\f210"}.jetpack-social-navigation-genericons a[href*="getpocket.com"]:before{content:"\f224"}.jetpack-social-navigation-genericons a[href*="polldaddy.com"]:before{content:"\f217"}.jetpack-social-navigation-genericons a[href*="reddit.com"]:before{content:"\f222"}.jetpack-social-navigation-genericons a[href$="/feed/"]:before{content:"\f413"}.jetpack-social-navigation-genericons a[href*="skype:"]:before{content:"\f220"}.jetpack-social-navigation-genericons a[href*="spotify.com"]:before{content:"\f515"}.jetpack-social-navigation-genericons a[href*="stumbleupon.com"]:before{content:"\f223"}.jetpack-social-navigation-genericons a[href*="tumblr.com"]:before{content:"\f214"}.jetpack-social-navigation-genericons a[href*="twitch.tv"]:before{content:"\f516"}.jetpack-social-navigation-genericons a[href*="twitter.com"]:before{content:"\f202"}.jetpack-social-navigation-genericons a[href*="vimeo.com"]:before{content:"\f212"}.jetpack-social-navigation-genericons a[href*="vine.co"]:before{content:"\f517"}.jetpack-social-navigation-genericons a[href*="wordpress.com"]:before,.jetpack-social-navigation-genericons a[href*="wordpress.org"]:before{content:"\f205"}.jetpack-social-navigation-genericons a[href*="youtube.com"]:before{content:"\f213"}
-.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:left;position:relative}.tiled-gallery .tiled-gallery-item{float:left;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:0 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:0 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#eee;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;left:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none;opacity:0}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover}
+.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:left;position:relative}.tiled-gallery .tiled-gallery-item{float:left;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:0 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:0 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#f0f0f1;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;left:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover}
.jetpack-display-remote-posts{margin:5px 0 20px 0}.jetpack-display-remote-posts h4{margin:5px 0;padding:0}.jetpack-display-remote-posts p{margin:0;padding:0}.jetpack-display-remote-posts img{max-width:100%}
.widget-grofile h4{margin:1em 0 .5em}.widget-grofile ul.grofile-urls{margin-left:0;overflow:hidden}.widget-grofile ul.grofile-accounts li{list-style:none;display:inline}.widget-grofile ul.grofile-accounts li::before{content:""!important}.widget-grofile .grofile-accounts-logo{background-image:url(https://secure.gravatar.com/images/grav-share-sprite.png);background-repeat:no-repeat;width:16px;height:16px;float:left;margin-right:8px;margin-bottom:8px}.rtl .widget-grofile .grofile-accounts-logo{margin-left:8px;margin-right:0}.grofile-thumbnail{width:500px;max-width:100%}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.widget-grofile .grofile-accounts-logo{background-image:url(https://secure.gravatar.com/images/grav-share-sprite-2x.png);background-size:16px 784px}}
-div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px 10px 5px;background-color:#fff;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #aaa}div[class^=gr_custom_book_container]{float:right;overflow:hidden;height:60px;margin-left:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}
-.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-left:0}.widget_wpcom_social_media_icons_widget ul li{border:0 none;display:inline;margin-right:.5em}.widget_wpcom_social_media_icons_widget li a{border:0 none;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
+div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px 10px 5px;background-color:#fff;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #a7aaad}div[class^=gr_custom_book_container]{float:right;overflow:hidden;height:60px;margin-left:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}
+.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-left:0}.widget_wpcom_social_media_icons_widget ul li{border:0 none;display:inline;margin-right:.5em}.widget_wpcom_social_media_icons_widget li a{border:0 none;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f0f0f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
.widgets-grid-layout{width:100%}.widgets-grid-layout:after,.widgets-grid-layout:before{content:" ";display:table}.widgets-grid-layout:after{clear:both}.widget-grid-view-image{float:left;max-width:50%}.widget-grid-view-image a{display:block;margin:0 2px 4px 0}.widget-grid-view-image:nth-child(even){float:right}.widget-grid-view-image:nth-child(even) a{margin:0 0 4px 2px}.widgets-grid-layout .widget-grid-view-image img{max-width:100%;height:auto}.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widgets-list-layout{padding:0;margin:0;list-style-type:none}.widgets-list-layout li:after,.widgets-list-layout li:before{content:"";display:table}.widgets-list-layout li:after{clear:both}.widgets-list-layout li{zoom:1;margin-bottom:1em;list-style-type:none!important}.widgets-list-layout .widgets-list-layout-blavatar{float:left;width:21.276596%;max-width:40px;height:auto}.widgets-list-layout-links{float:right;width:73.404255%}.widgets-list-layout span{opacity:.5}.widgets-list-layout span:hover{opacity:.8}
.jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
.widget.widget_authors li>ul,.widget_authors>ul{margin-left:inherit;padding-left:0}.widget_authors ul li li{padding-left:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-right:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
.wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;left:0;right:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:left!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
-.widget_eu_cookie_law_widget{border:none;bottom:1em;display:none;left:1em;margin:0;padding:0;position:fixed;right:1em;width:auto;z-index:50001}.widget_eu_cookie_law_widget.widget.top{bottom:auto;top:1em}.admin-bar .widget_eu_cookie_law_widget.widget.top{top:3em}#eu-cookie-law{background-color:#fff;border:1px solid #dedede;color:#2e4467;font-size:12px;line-height:1.5;overflow:hidden;padding:6px 6px 6px 15px;position:relative}#eu-cookie-law a,#eu-cookie-law a:active,#eu-cookie-law a:visited{color:inherit;cursor:inherit;text-decoration:underline}#eu-cookie-law a:hover{cursor:pointer;text-decoration:none}#eu-cookie-law.negative{background-color:#000;border:none;color:#fff}#eu-cookie-law form{margin-bottom:0;position:static}#eu-cookie-law input,#eu-cookie-law input:focus,#eu-cookie-law input:hover{background:#f3f3f3;border:1px solid #dedede;border-radius:4px;-moz-border-radius:3px;-webkit-border-radius:3px;color:#2e4453;cursor:pointer;display:inline;float:right;font-family:inherit;font-size:14px;font-weight:inherit;line-height:inherit;margin:0 0 0 5%;padding:8px 12px;position:static;text-transform:none}#eu-cookie-law.negative input,#eu-cookie-law.negative input:focus,#eu-cookie-law.negative input:hover{background:#282828;border-color:#535353;color:#fff}@media (max-width:600px){#eu-cookie-law{padding-bottom:55px}#eu-cookie-law input.accept{bottom:8px;position:absolute;right:8px}}
+.widget_eu_cookie_law_widget{animation:fadeIn .8s;border:none;bottom:1em;left:1em;margin:0;padding:0;position:fixed;right:1em;width:auto;z-index:50001}@keyframes fadeIn{from{opacity:0;visibility:hidden}to{opacity:1;visibility:visible}}.widget_eu_cookie_law_widget.widget.top{bottom:auto;top:1em}.admin-bar .widget_eu_cookie_law_widget.widget.top{top:3em}amp-consent.widget_eu_cookie_law_widget.widget.top{top:1em;margin:0}.admin-bar amp-consent.widget_eu_cookie_law_widget.widget.top{top:0;margin-top:3em}#eu-cookie-law{background-color:#fff;border:1px solid #dedede;color:#2e4467;font-size:12px;line-height:1.5;overflow:hidden;padding:6px 6px 6px 15px;position:relative}#eu-cookie-law a,#eu-cookie-law a:active,#eu-cookie-law a:visited{color:inherit;cursor:inherit;text-decoration:underline}#eu-cookie-law a:hover{cursor:pointer;text-decoration:none}#eu-cookie-law.negative{background-color:#000;border:none;color:#fff}#eu-cookie-law.hide{opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}#eu-cookie-law form{margin-bottom:0;position:static}#eu-cookie-law input,#eu-cookie-law input:focus,#eu-cookie-law input:hover{background:#f3f3f3;border:1px solid #dedede;border-radius:4px;-moz-border-radius:3px;-webkit-border-radius:3px;color:#2e4453;cursor:pointer;display:inline;float:right;font-family:inherit;font-size:14px;font-weight:inherit;line-height:inherit;margin:0 0 0 5%;padding:8px 12px;position:static;text-transform:none}#eu-cookie-law.negative input,#eu-cookie-law.negative input:focus,#eu-cookie-law.negative input:hover{background:#282828;border-color:#535353;color:#fff}@media (max-width:600px){#eu-cookie-law{padding-bottom:55px}#eu-cookie-law input.accept{bottom:8px;position:absolute;right:8px}}.widget_eu_cookie_law_widget .customize-partial-edit-shortcut>button{left:0}
.flickr-images{text-align:center}.flickr-size-thumbnail .flickr-images{align-content:space-between;align-items:center;display:flex;flex-flow:row wrap;justify-content:center}.flickr-images img{max-width:100%;margin:5px}
-.jetpack-search-filters-widget__sub-heading{font-size:inherit;font-weight:700;margin:0 0 .5em;padding:0}.jetpack-search-form+.jetpack-search-filters-widget__sub-heading{margin-top:1.5em;margin-bottom:.5em!important}.jetpack-search-filters-widget__clear{margin-top:.5em;margin-bottom:.5em}.jetpack-search-sort-wrapper{margin-top:1em;margin-bottom:1.5em}.jetpack-search-sort-wrapper label{display:inherit}.widget_search .jetpack-search-filters-widget__filter-list input[type=checkbox]{width:auto;height:auto}ul.jetpack-search-filters-widget__filter-list li{border:none;padding:0;list-style:none}ul.jetpack-search-filters-widget__filter-list li a{text-decoration:none}ul.jetpack-search-filters-widget__filter-list li a:hover{box-shadow:none}ul.jetpack-search-filters-widget__filter-list li label{font-weight:inherit;display:inherit}.jetpack-search-filters-widget__filter-list{list-style:none}ul.jetpack-search-filters-widget__filter-list{margin-bottom:1.5em}body.search .jetpack-search-form input[name="s"]:-ms-input-placeholder{color:transparent}body.search .jetpack-search-form input[name="s"]::-ms-input-placeholder{color:transparent}body.search .jetpack-search-form input[name="s"]::placeholder{color:transparent}body.search .jetpack-search-form input[name="s"].show-placeholder:-ms-input-placeholder{color:inherit}body.search .jetpack-search-form input[name="s"].show-placeholder::-ms-input-placeholder{color:inherit}body.search .jetpack-search-form input[name="s"].show-placeholder::placeholder{color:inherit}
+.wpcom-instagram-images{display:grid;grid-gap:.5rem;grid-auto-columns:1fr}.wpcom-instagram-images:after,.wpcom-instagram-images:before{content:none}.wpcom-instagram-images a{display:block;margin:4px 2px}.wpcom-instagram-columns-2 a,.wpcom-instagram-columns-3 a{display:inline-block;vertical-align:top}.wpcom-instagram-columns-2 a{width:calc(50% - 8px)}.wpcom-instagram-columns-3 a{width:calc(33.3333% - 8px)}.wpcom-instagram-images .sq-bg-image{background-position:center;background-repeat:no-repeat;background-size:cover;height:0;overflow:hidden;padding-bottom:100%}.wpcom-instagram-columns-2{grid-template-columns:repeat(2,1fr)}.wpcom-instagram-columns-3{grid-template-columns:repeat(3,1fr)}@supports (display:grid){.wpcom-instagram-images a{display:block;margin:0}.wpcom-instagram-columns-2 a,.wpcom-instagram-columns-3 a{width:auto}}
+.jetpack-search-filters-widget__sub-heading{font-size:inherit;font-weight:700;margin:0 0 .5em;padding:0}.jetpack-search-form+.jetpack-search-filters-widget__sub-heading{margin-top:1.5em;margin-bottom:.5em!important}.jetpack-search-filters-widget__clear{margin-top:.5em;margin-bottom:.5em}.jetpack-search-sort-wrapper{margin-top:1em;margin-bottom:1.5em}.jetpack-search-sort-wrapper label{display:inherit}.widget_search .jetpack-search-filters-widget__filter-list input[type=checkbox]{width:auto;height:auto}ul.jetpack-search-filters-widget__filter-list li{border:none;padding:0;list-style:none}ul.jetpack-search-filters-widget__filter-list li a{text-decoration:none}ul.jetpack-search-filters-widget__filter-list li a:hover{box-shadow:none}ul.jetpack-search-filters-widget__filter-list li label{font-weight:inherit;display:inherit}.jetpack-search-filters-widget__filter-list{list-style:none}ul.jetpack-search-filters-widget__filter-list{margin-bottom:1.5em}body.search .jetpack-search-form input[name="s"]::placeholder{color:transparent}body.search .jetpack-search-form input[name="s"].show-placeholder::placeholder{color:inherit}
@media screen and (min-width:400px){.widget.jetpack-simple-payments .jetpack-simple-payments-product{flex-direction:column}.widget.jetpack-simple-payments .jetpack-simple-payments-details{padding-left:0}}
-.jetpack_widget_social_icons li,.jetpack_widget_social_icons ul{list-style:none}.jetpack_widget_social_icons ul{display:block;margin:0 0 1.5em;padding:0}.jetpack_widget_social_icons ul li{border:0;display:inline-block;line-height:1;margin:0;padding:0}.jetpack_widget_social_icons ul li:after,.jetpack_widget_social_icons ul li:before{display:none}.jetpack_widget_social_icons a{border:0;box-shadow:none;display:block;height:24px;text-decoration:none;width:24px}.jetpack_widget_social_icons svg{color:inherit;fill:currentColor;height:inherit;vertical-align:middle;width:inherit}.jetpack_widget_social_icons ul.size-small a{height:24px;width:24px}.jetpack_widget_social_icons ul.size-medium a{height:32px;width:32px}.jetpack_widget_social_icons ul.size-large a{height:48px;width:48px}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important} \ No newline at end of file
+.jetpack_widget_social_icons li,.jetpack_widget_social_icons ul{list-style:none}.jetpack_widget_social_icons ul{display:block;margin:0 0 1.5em;padding:0}.jetpack_widget_social_icons ul li{border:0;display:inline-block;line-height:1;margin:0;padding:0}.jetpack_widget_social_icons ul li:after,.jetpack_widget_social_icons ul li:before{display:none}.jetpack_widget_social_icons a{border:0;box-shadow:none;display:block;height:24px;text-decoration:none;width:24px}.jetpack_widget_social_icons svg{color:inherit;fill:currentColor;height:inherit;vertical-align:middle;width:inherit}.jetpack_widget_social_icons ul.size-small a{height:24px;width:24px}.jetpack_widget_social_icons ul.size-medium a{height:32px;width:32px}.jetpack_widget_social_icons ul.size-large a{height:48px;width:48px}.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
+.milestone-widget{margin-bottom:1em}.milestone-content{line-height:2;margin-top:5px;max-width:100%;padding:0;text-align:center}.milestone-header{background-color:var(--milestone-text-color,#111);color:var(--milestone-bg-color,#fff);line-height:1.3;margin:0;padding:.8em}.milestone-header .date,.milestone-header .event{display:block}.milestone-header .event{font-size:120%}.milestone-countdown .difference{display:block;font-size:500%;font-weight:700;line-height:1.2}.milestone-countdown,.milestone-message{background-color:var(--milestone-bg-color,#fff);border:1px solid var(--milestone-border-color,#767676);border-top:0;color:var(--milestone-text-color,#111);padding-bottom:1em}.milestone-message{padding-top:1em} \ No newline at end of file
diff --git a/plugins/jetpack/css/wordads-ccpa-rtl.css b/plugins/jetpack/css/wordads-ccpa-rtl.css
new file mode 100644
index 00000000..824de5b6
--- /dev/null
+++ b/plugins/jetpack/css/wordads-ccpa-rtl.css
@@ -0,0 +1,881 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+/* Include Cleanslate */
+/*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/
+/*
+ An extreme CSS reset stylesheet, for normalising the styling of a container element and its children.
+
+ by Premasagar Rose
+ dharmafly.com
+
+ license
+ opensource.org/licenses/mit-license.php
+
+ **
+
+ v0.10.1
+
+*/
+/* == BLANKET RESET RULES == */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6, .cleanslate p, .cleanslate td, .cleanslate dl, .cleanslate tr, .cleanslate dt, .cleanslate ol, .cleanslate form, .cleanslate select, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate table, .cleanslate th, .cleanslate tbody, .cleanslate tfoot, .cleanslate caption, .cleanslate thead, .cleanslate ul, .cleanslate li, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate li, .cleanslate iframe, .cleanslate strong, .cleanslate legend, .cleanslate em, .cleanslate summary, .cleanslate cite, .cleanslate span, .cleanslate input, .cleanslate sup, .cleanslate label, .cleanslate dfn, .cleanslate object, .cleanslate big, .cleanslate q, .cleanslate samp, .cleanslate acronym, .cleanslate small, .cleanslate img, .cleanslate strike, .cleanslate code, .cleanslate sub, .cleanslate ins, .cleanslate textarea, .cleanslate button, .cleanslate var, .cleanslate a, .cleanslate abbr, .cleanslate applet, .cleanslate del, .cleanslate kbd, .cleanslate tt, .cleanslate b, .cleanslate i, .cleanslate hr,
+.cleanslate article, .cleanslate aside, .cleanslate figure, .cleanslate figcaption, .cleanslate footer, .cleanslate header, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate time, .cleanslate mark, .cleanslate audio, .cleanslate video, .cleanslate abbr, .cleanslate address, .cleanslate area, .cleanslate blockquote, .cleanslate canvas, .cleanslate caption, .cleanslate cite, .cleanslate code, .cleanslate colgroup, .cleanslate col, .cleanslate datalist, .cleanslate fieldset, .cleanslate main, .cleanslate map, .cleanslate meta, .cleanslate optgroup, .cleanslate output, .cleanslate progress, .cleanslate svg {
+ background-attachment: scroll !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ /* This rule affects the use of pngfix JavaScript http://dillerdesign.com/experiment/DD_BelatedPNG for IE6, which is used to force the browser to recognise alpha-transparent PNGs files that replace the IE6 lack of PNG transparency. (The rule overrides the VML image that is used to replace the given CSS background-image). If you don't know what that means, then you probably haven't used the pngfix script, and this comment may be ignored :) */
+ background-position: 100% 0 !important;
+ background-repeat: repeat !important;
+ border-color: black !important;
+ border-color: currentColor !important;
+ /* `border-color` should match font color. Modern browsers (incl. IE9) allow the use of "currentColor" to match the current font 'color' value <http://www.w3.org/TR/css3-color/#currentcolor>. For older browsers, a default of 'black' is given before this rule. Guideline to support older browsers: if you haven't already declared a border-color for an element, be sure to do so, e.g. when you first declare the border-width. */
+ border-radius: 0 !important;
+ border-style: none !important;
+ border-width: medium !important;
+ bottom: auto !important;
+ clear: none !important;
+ clip: auto !important;
+ color: inherit !important;
+ counter-increment: none !important;
+ counter-reset: none !important;
+ cursor: auto !important;
+ direction: inherit !important;
+ display: inline !important;
+ float: none !important;
+ font-family: inherit !important;
+ /* As with other inherit values, this needs to be set on the root container element */
+ font-size: inherit !important;
+ font-style: inherit !important;
+ font-variant: normal !important;
+ font-weight: inherit !important;
+ height: auto !important;
+ right: auto !important;
+ letter-spacing: normal !important;
+ line-height: inherit !important;
+ list-style-type: inherit !important;
+ /* Could set list-style-type to none */
+ list-style-position: outside !important;
+ list-style-image: none !important;
+ margin: 0 !important;
+ max-height: none !important;
+ max-width: none !important;
+ min-height: 0 !important;
+ min-width: 0 !important;
+ opacity: 1;
+ outline: invert none medium !important;
+ overflow: visible !important;
+ padding: 0 !important;
+ position: static !important;
+ quotes: "" "" !important;
+ left: auto !important;
+ table-layout: auto !important;
+ text-align: inherit !important;
+ text-decoration: inherit !important;
+ text-indent: 0 !important;
+ text-transform: none !important;
+ top: auto !important;
+ unicode-bidi: normal !important;
+ vertical-align: baseline !important;
+ visibility: inherit !important;
+ white-space: normal !important;
+ width: auto !important;
+ word-spacing: normal !important;
+ z-index: auto !important;
+ /* CSS3 */
+ /* Including all prefixes according to http://caniuse.com/ */
+ /* CSS Animations don't cascade, so don't require resetting */
+ background-origin: padding-box !important;
+ -webkit-background-clip: border-box !important;
+ background-clip: border-box !important;
+ background-size: auto !important;
+ -o-border-image: none !important;
+ border-image: none !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ box-sizing: content-box !important;
+ column-count: auto !important;
+ column-gap: normal !important;
+ column-rule: medium none black !important;
+ /* doesn't exist yet but probably will */
+ column-span: 1 !important;
+ column-width: auto !important;
+ font-feature-settings: normal !important;
+ overflow-x: visible !important;
+ overflow-y: visible !important;
+ -webkit-hyphens: manual !important;
+ hyphens: manual !important;
+ -ms-perspective: none !important;
+ -o-perspective: none !important;
+ perspective: none !important;
+ -ms-perspective-origin: 50% 50% !important;
+ -o-perspective-origin: 50% 50% !important;
+ perspective-origin: 50% 50% !important;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ text-shadow: none !important;
+ transition: all 0s ease 0s !important;
+ transform: none !important;
+ transform-origin: 50% 50% !important;
+ transform-style: flat !important;
+ word-break: normal !important;
+}
+
+/* == BLOCK-LEVEL == */
+/* Actually, some of these should be inline-block and other values, but block works fine (TODO: rigorously verify this) */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h3, .cleanslate h5, .cleanslate p, .cleanslate h1, .cleanslate dl, .cleanslate dt, .cleanslate h6, .cleanslate ol, .cleanslate form, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate h2, .cleanslate caption, .cleanslate h4, .cleanslate ul, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate hr,
+.cleanslate article, .cleanslate dialog, .cleanslate figure, .cleanslate footer, .cleanslate header, .cleanslate hgroup, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate audio, .cleanslate video, .cleanslate address, .cleanslate blockquote, .cleanslate colgroup, .cleanslate main, .cleanslate progress, .cleanslate summary {
+ display: block !important;
+}
+
+.cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6 {
+ font-weight: bold !important;
+}
+
+.cleanslate h1:before, .cleanslate h2:before {
+ display: none !important;
+}
+
+.cleanslate h1 {
+ font-size: 2em !important;
+ padding: 0.67em 0 !important;
+}
+
+.cleanslate h2 {
+ font-size: 1.5em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h3 {
+ font-size: 1.17em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h4 {
+ font-size: 1em !important;
+}
+
+.cleanslate h5 {
+ font-size: 0.83em !important;
+}
+
+.cleanslate p {
+ margin: 1em 0 !important;
+}
+
+.cleanslate table {
+ display: table !important;
+}
+
+.cleanslate thead {
+ display: table-header-group !important;
+}
+
+.cleanslate tbody {
+ display: table-row-group !important;
+}
+
+.cleanslate tfoot {
+ display: table-footer-group !important;
+}
+
+.cleanslate tr {
+ display: table-row !important;
+}
+
+.cleanslate th, .cleanslate td {
+ display: table-cell !important;
+ padding: 2px !important;
+}
+
+/* == SPECIFIC ELEMENTS == */
+/* Some of these are browser defaults; some are just useful resets */
+.cleanslate ol, .cleanslate ul {
+ margin: 1em 0 !important;
+}
+
+.cleanslate ul li, .cleanslate ul ul li, .cleanslate ul ul ul li, .cleanslate ol li, .cleanslate ol ol li, .cleanslate ol ol ol li, .cleanslate ul ol ol li, .cleanslate ul ul ol li, .cleanslate ol ul ul li, .cleanslate ol ol ul li {
+ list-style-position: inside !important;
+ margin-top: 0.08em !important;
+}
+
+.cleanslate ol ol, .cleanslate ol ol ol, .cleanslate ul ul, .cleanslate ul ul ul, .cleanslate ol ul, .cleanslate ol ul ul, .cleanslate ol ol ul, .cleanslate ul ol, .cleanslate ul ol ol, .cleanslate ul ul ol {
+ padding-right: 40px !important;
+ margin: 0 !important;
+}
+
+/* helper for general navigation */
+.cleanslate nav ul, .cleanslate nav ol {
+ list-style-type: none !important;
+}
+
+.cleanslate ul, .cleanslate menu {
+ list-style-type: disc !important;
+}
+
+.cleanslate ol {
+ list-style-type: decimal !important;
+}
+
+.cleanslate ol ul, .cleanslate ul ul, .cleanslate menu ul, .cleanslate ol menu, .cleanslate ul menu, .cleanslate menu menu {
+ list-style-type: circle !important;
+}
+
+.cleanslate ol ol ul, .cleanslate ol ul ul, .cleanslate ol menu ul, .cleanslate ol ol menu, .cleanslate ol ul menu, .cleanslate ol menu menu, .cleanslate ul ol ul, .cleanslate ul ul ul, .cleanslate ul menu ul, .cleanslate ul ol menu, .cleanslate ul ul menu, .cleanslate ul menu menu, .cleanslate menu ol ul, .cleanslate menu ul ul, .cleanslate menu menu ul, .cleanslate menu ol menu, .cleanslate menu ul menu, .cleanslate menu menu menu {
+ list-style-type: square !important;
+}
+
+.cleanslate li {
+ display: list-item !important;
+ /* Fixes IE7 issue with positioning of nested bullets */
+ min-height: auto !important;
+ min-width: auto !important;
+ padding-right: 20px !important;
+ /* replace -webkit-padding-start: 40px; */
+}
+
+.cleanslate strong {
+ font-weight: bold !important;
+}
+
+.cleanslate em {
+ font-style: italic !important;
+}
+
+.cleanslate kbd, .cleanslate samp, .cleanslate code, .cleanslate pre {
+ font-family: monospace !important;
+}
+
+.cleanslate a {
+ color: blue !important;
+ text-decoration: underline !important;
+}
+
+.cleanslate a:visited {
+ color: #529 !important;
+}
+
+.cleanslate a, .cleanslate a *, .cleanslate input[type=submit], .cleanslate input[type=button], .cleanslate input[type=radio], .cleanslate input[type=checkbox], .cleanslate select, .cleanslate button {
+ cursor: pointer !important;
+}
+
+.cleanslate button, .cleanslate input[type=submit] {
+ text-align: center !important;
+ padding: 2px 6px 3px !important;
+ border-radius: 4px !important;
+ text-decoration: none !important;
+ font-family: inherit !important;
+ font-size: small !important;
+ background: white !important;
+ -webkit-appearance: push-button !important;
+ color: buttontext !important;
+ border: 1px #a6a6a6 solid !important;
+ background: lightgrey !important;
+ /* Old browsers */
+ background: white;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, white 0%, #dddddd 100%, #d1d1d1 100%, #dddddd 100%) !important;
+ /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#dddddd",GradientType=0 ) !important;
+ /* IE6-9 */
+ -o-box-shadow: -1px 1px 0px #eee !important;
+ box-shadow: -1px 1px 0px #eee !important;
+ outline: initial !important;
+}
+
+.cleanslate button:active, .cleanslate input[type=submit]:active, .cleanslate input[type=button]:active, .cleanslate button:active {
+ background: #3b679e !important;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, #3b679e 0%, #2b88d9 50%, #207cca 51%, #7db9e8 100%) !important;
+ /* W3C */
+ border-color: #5259b0 !important;
+}
+
+.cleanslate button {
+ padding: 1px 6px 2px 6px !important;
+ margin-left: 5px !important;
+}
+
+.cleanslate input[type=hidden] {
+ display: none !important;
+}
+
+/* restore form defaults */
+.cleanslate textarea {
+ -webkit-appearance: textarea !important;
+ background: white !important;
+ padding: 2px !important;
+ margin-right: 4px !important;
+ word-wrap: break-word !important;
+ white-space: pre-wrap !important;
+ font-size: 11px !important;
+ font-family: inherit !important;
+ line-height: 13px !important;
+ resize: both !important;
+}
+
+.cleanslate select, .cleanslate textarea, .cleanslate input {
+ border: 1px solid #ccc !important;
+}
+
+.cleanslate select {
+ font-size: 11px !important;
+ font-family: inherit !important;
+ display: inline-block;
+}
+
+.cleanslate textarea:focus, .cleanslate input:focus {
+ outline: auto 5px -webkit-focus-ring-color !important;
+ outline: initial !important;
+}
+
+.cleanslate input[type=text] {
+ background: white !important;
+ padding: 1px !important;
+ font-family: initial !important;
+ font-size: small !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ border: 1px #2b2b2b solid !important;
+ border-radius: 4px !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ outline: initial !important;
+}
+
+.cleanslate input[type=radio] {
+ margin: 2px 2px 3px 2px !important;
+}
+
+.cleanslate abbr[title], .cleanslate acronym[title], .cleanslate dfn[title] {
+ cursor: help !important;
+ border-bottom-width: 1px !important;
+ border-bottom-style: dotted !important;
+}
+
+.cleanslate ins {
+ background-color: #ff9 !important;
+ color: black !important;
+}
+
+.cleanslate del {
+ text-decoration: line-through !important;
+}
+
+.cleanslate blockquote, .cleanslate q {
+ quotes: none !important;
+ /* HTML5 */
+}
+
+.cleanslate blockquote:before, .cleanslate blockquote:after, .cleanslate q:before, .cleanslate q:after, .cleanslate li:before, .cleanslate li:after {
+ content: "" !important;
+}
+
+.cleanslate input, .cleanslate select {
+ vertical-align: middle !important;
+}
+
+.cleanslate table {
+ border-collapse: collapse !important;
+ border-spacing: 0 !important;
+}
+
+.cleanslate hr {
+ display: block !important;
+ height: 1px !important;
+ border: 0 !important;
+ border-top: 1px solid #ccc !important;
+ margin: 1em 0 !important;
+}
+
+.cleanslate *[dir=rtl] {
+ direction: ltr !important;
+}
+
+.cleanslate mark {
+ background-color: #ff9 !important;
+ color: black !important;
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+.cleanslate menu {
+ padding-right: 40px !important;
+ padding-top: 8px !important;
+}
+
+/* additional helpers */
+.cleanslate [hidden],
+.cleanslate template {
+ display: none !important;
+}
+
+.cleanslate abbr[title] {
+ border-bottom: 1px dotted !important;
+}
+
+.cleanslate sub, .cleanslate sup {
+ font-size: 75% !important;
+ line-height: 0 !important;
+ position: relative !important;
+ vertical-align: baseline !important;
+}
+
+.cleanslate sup {
+ top: -0.5em !important;
+}
+
+.cleanslate sub {
+ bottom: -0.25em !important;
+}
+
+.cleanslate img {
+ border: 0 !important;
+}
+
+.cleanslate figure {
+ margin: 0 !important;
+}
+
+.cleanslate textarea {
+ overflow: auto !important;
+ vertical-align: top !important;
+}
+
+/* == ROOT CONTAINER ELEMENT == */
+/* This contains default values for child elements to inherit */
+.cleanslate {
+ font-size: medium !important;
+ line-height: 1 !important;
+ direction: rtl !important;
+ text-align: right !important;
+ /* for IE, Opera */
+ text-align: start !important;
+ /* recommended W3C Spec */
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
+ color: black !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ text-decoration: none !important;
+ list-style-type: disc !important;
+}
+
+.cleanslate pre {
+ white-space: pre !important;
+}
+
+@media (max-width: 599px) {
+ body.admin-bar .cleanslate .components-modal__frame {
+ top: 46px !important;
+ }
+}
+
+.cleanslate {
+ /* Modal */
+ /* Form Toggle */
+}
+.cleanslate .components-modal__screen-overlay, .cleanslate .ccpa__loading-overlay {
+ position: fixed !important;
+ top: 0 !important;
+ left: 0 !important;
+ bottom: 0 !important;
+ right: 0 !important;
+ background-color: rgba(0, 0, 0, 0.7) !important;
+ z-index: 2147483647 !important;
+ animation: edit-post__fade-in-animation 0.2s ease-out 0s !important;
+ animation-fill-mode: forwards !important;
+}
+.cleanslate .components-modal__frame {
+ position: absolute !important;
+ top: 0 !important;
+ left: 0 !important;
+ bottom: 0 !important;
+ right: 0 !important;
+ box-sizing: border-box !important;
+ margin: 0 !important;
+ border: 1px solid #e2e4e7 !important;
+ background: #fff !important;
+ box-shadow: 0 3px 30px rgba(25, 30, 35, 0.2) !important;
+ overflow: auto !important;
+}
+.cleanslate .ccpa__loading-message {
+ position: absolute !important;
+ top: 50% !important;
+ left: 0 !important;
+ bottom: 0 !important;
+ right: 0 !important;
+ box-sizing: border-box !important;
+ margin: 0 !important;
+ text-align: center !important;
+ color: #ffffff !important;
+}
+@media (min-width: 600px) {
+ .cleanslate .components-modal__frame {
+ top: 50% !important;
+ left: auto !important;
+ bottom: auto !important;
+ right: 50% !important;
+ min-width: 360px !important;
+ max-width: 580px !important;
+ max-height: calc(100% - 56px - 56px) !important;
+ transform: translate(50%, -50%) !important;
+ animation: components-modal__appear-animation 0.1s ease-out !important;
+ animation-fill-mode: forwards !important;
+ }
+}
+@keyframes components-modal__appear-animation {
+ from {
+ margin-top: 32px !important;
+ }
+ to {
+ margin-top: 0 !important;
+ }
+}
+.cleanslate .components-modal__header {
+ box-sizing: border-box !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+ padding: 0 16px !important;
+ display: flex !important;
+ flex-direction: row !important;
+ justify-content: space-between !important;
+ background: #fff !important;
+ align-items: center !important;
+ height: 56px !important;
+ position: sticky !important;
+ top: 0 !important;
+ z-index: 10 !important;
+ margin: 0 -16px 16px !important;
+}
+.cleanslate .components-modal__header .components-modal__header-heading {
+ font-size: 16px !important;
+ font-weight: 600 !important;
+}
+.cleanslate .components-modal__header h1 {
+ line-height: 1 !important;
+ margin: 0 !important;
+}
+.cleanslate .components-modal__header-heading-container {
+ align-items: center !important;
+ flex-grow: 1 !important;
+ display: flex !important;
+ flex-direction: row !important;
+ justify-content: left !important;
+}
+.cleanslate .components-modal__content {
+ box-sizing: border-box !important;
+ height: 100% !important;
+ padding: 0 16px !important;
+}
+.cleanslate .components-modal__footer {
+ box-sizing: border-box !important;
+ border-top: 1px solid #e2e4e7 !important;
+ padding: 0 16px !important;
+ background: #fff !important;
+ height: 110px !important;
+ position: sticky !important;
+ bottom: 0 !important;
+ z-index: 10 !important;
+ margin: 0 -16px !important;
+}
+.cleanslate .components-modal__footer-bottom {
+ display: flex !important;
+ flex-direction: row-reverse !important;
+ justify-content: space-between !important;
+ align-items: center !important;
+}
+.cleanslate .components-button {
+ display: inline-flex !important;
+ text-decoration: none !important;
+ font-size: 13px !important;
+ margin: 0 !important;
+ border: 0 !important;
+ cursor: pointer !important;
+ -webkit-appearance: none !important;
+ background: none !important;
+ /* Buttons that look like links, for a cross of good semantics with the visual */
+ /* Link buttons that are red to indicate destructive behavior. */
+}
+.cleanslate .components-icon-button {
+ display: flex !important;
+ align-items: center !important;
+ padding: 8px !important;
+ margin: 0 !important;
+ border: none !important;
+ background: none !important;
+ color: #50575e !important;
+ position: relative !important;
+ overflow: hidden !important;
+ border-radius: 4px !important;
+ /* Override Cleanslate */
+ box-shadow: none !important;
+ outline: none !important;
+}
+.cleanslate .components-icon-button:active {
+ background: none !important;
+}
+.cleanslate .components-icon-button .dashicon {
+ display: inline-block !important;
+ flex: 0 0 auto !important;
+}
+.cleanslate .components-icon-button svg {
+ fill: currentColor !important;
+ outline: none !important;
+ cursor: pointer !important;
+}
+.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover, .cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):focus {
+ background-color: #fff !important;
+ color: #1d2327 !important;
+ box-shadow: inset 0 0 0 1px #e2e4e7, inset 0 0 0 2px #fff, 0 1px 1px rgba(25, 30, 35, 0.2) !important;
+}
+.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):active {
+ outline: none !important;
+ background-color: #fff !important;
+ color: #1d2327 !important;
+ box-shadow: inset 0 0 0 1px #c3c4c7, inset 0 0 0 2px #fff !important;
+}
+.cleanslate .components-icon-button[aria-disabled=true]:focus, .cleanslate .components-icon-button:disabled:focus {
+ box-shadow: none !important;
+}
+.cleanslate .components-form-toggle {
+ position: relative !important;
+ display: inline-block !important;
+}
+.cleanslate .components-form-toggle.disabled {
+ opacity: 0.5 !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on,
+.cleanslate .components-form-toggle .components-form-toggle__off {
+ position: absolute !important;
+ top: 6px !important;
+ box-sizing: border-box !important;
+ width: 2px !important;
+ height: 6px !important;
+ overflow: hidden !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__on {
+ display: block !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__off {
+ display: none !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__off {
+ color: #787c82 !important;
+ fill: currentColor !important;
+ left: 6px !important;
+ width: 6px !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on {
+ right: 8px !important;
+ display: none !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__track {
+ content: "" !important;
+ display: inline-block !important;
+ box-sizing: border-box !important;
+ vertical-align: top !important;
+ background-color: #fff !important;
+ border: 2px solid #787c82 !important;
+ width: 36px !important;
+ height: 18px !important;
+ border-radius: 9px !important;
+ transition: 0.2s background ease !important;
+}
+@media (prefers-reduced-motion: reduce) {
+ .cleanslate .components-form-toggle .components-form-toggle__track {
+ transition-duration: 0s !important;
+ }
+}
+.cleanslate .components-form-toggle .components-form-toggle__thumb {
+ display: block !important;
+ position: absolute !important;
+ box-sizing: border-box !important;
+ top: 4px !important;
+ right: 4px !important;
+ width: 10px !important;
+ height: 10px !important;
+ border-radius: 50% !important;
+ transition: 0.1s transform ease !important;
+ background-color: #787c82 !important;
+ border: 5px solid #787c82 !important;
+}
+@media (prefers-reduced-motion: reduce) {
+ .cleanslate .components-form-toggle .components-form-toggle__thumb {
+ transition-duration: 0s !important;
+ }
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__track {
+ border: 2px solid #50575e !important;
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__thumb {
+ background-color: #50575e !important;
+ border: 5px solid #787c82 !important;
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__off {
+ color: #50575e !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__track {
+ background-color: #11a0d2 !important;
+ border: 2px solid #11a0d2 !important;
+ border: 9px solid transparent !important;
+}
+.cleanslate .components-form-toggle__input:focus + .components-form-toggle__track {
+ box-shadow: 0 0 0 2px #fff, 0 0 0 3px #787c82 !important;
+ outline: 2px solid transparent !important;
+ outline-offset: 2px !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__thumb {
+ background-color: #fff !important;
+ border-width: 0 !important;
+ transform: translateX(-18px) !important;
+}
+.cleanslate .components-form-toggle.is-checked::before {
+ background-color: #11a0d2 !important;
+ border: 2px solid #11a0d2 !important;
+}
+.cleanslate .components-disabled .components-form-toggle {
+ opacity: 0.3 !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox] {
+ position: absolute !important;
+ top: 0 !important;
+ right: 0 !important;
+ width: 100% !important;
+ height: 100% !important;
+ opacity: 0 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ z-index: 1 !important;
+ border: none !important;
+}
+.cleanslate .components-form-toggle.disabled input.components-form-toggle__input[type=checkbox] {
+ cursor: default !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]:checked {
+ background: none !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]::before {
+ content: "" !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on {
+ outline: 1px solid transparent !important;
+ outline-offset: -1px !important;
+ border: 1px solid #000 !important;
+ filter: invert(100%) contrast(500%) !important;
+}
+.cleanslate .components-button {
+ display: inline-flex !important;
+ text-decoration: none !important;
+ font-size: 13px !important;
+ margin: 0 !important;
+ border: 0 !important;
+ cursor: pointer !important;
+ -webkit-appearance: none !important;
+ background: none !important;
+ /* Buttons that look like links, for a cross of good semantics with the visual */
+ /* Link buttons that are red to indicate destructive behavior. */
+}
+.cleanslate .components-button.is-button {
+ padding: 0 10px 1px !important;
+ line-height: 26px !important;
+ height: 28px !important;
+ border-radius: 3px !important;
+ white-space: nowrap !important;
+ border-width: 1px !important;
+ border-style: solid !important;
+}
+.cleanslate .components-button.is-primary {
+ background: #0085ba !important;
+ border-color: #006a95 #00648c #00648c !important;
+ box-shadow: inset 0 -1px 0 #00648c !important;
+ color: #fff !important;
+ text-decoration: none !important;
+ text-shadow: 0 -1px 1px #005d82, -1px 0 1px #005d82, 0 1px 1px #005d82, 1px 0 1px #005d82 !important;
+}
+.cleanslate .components-button.is-primary:hover, .cleanslate .components-button.is-primary:focus:enabled {
+ background: #007eb1 !important;
+ border-color: #00435d !important;
+ color: #fff !important;
+}
+.cleanslate .components-button.is-primary:hover {
+ box-shadow: inset 0 -1px 0 #00435d !important;
+}
+.cleanslate .components-button.is-primary:active:enabled {
+ background: #006a95 !important;
+ border-color: #00435d !important;
+ box-shadow: inset 0 1px 0 #00435d !important;
+ vertical-align: top !important;
+}
+.cleanslate .components-button.is-primary:disabled, .cleanslate .components-button.is-primary:disabled:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true], .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled {
+ color: #66b6d6 !important;
+ background: #0085ba !important;
+ border-color: #007cad !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ opacity: 1 !important;
+}
+.cleanslate .components-button.is-primary:disabled.is-button, .cleanslate .components-button.is-primary:disabled.is-button:hover, .cleanslate .components-button.is-primary:disabled:active:enabled, .cleanslate .components-button.is-primary:disabled:active:enabled.is-button, .cleanslate .components-button.is-primary:disabled:active:enabled.is-button:hover, .cleanslate .components-button.is-primary:disabled:active:enabled:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true].is-button, .cleanslate .components-button.is-primary[aria-disabled=true].is-button:hover, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button:hover, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:active:enabled {
+ box-shadow: none !important;
+ text-shadow: none !important;
+}
+.cleanslate .components-button.is-primary:disabled:focus:enabled, .cleanslate .components-button.is-primary:disabled:active:enabled:focus:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:focus:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled {
+ color: #66b6d6 !important;
+ border-color: #007cad !important;
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba !important;
+}
+.cleanslate .ccpa-settings {
+ font-size: 13px !important;
+ line-height: 20px !important;
+ color: #1a1a1a !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+}
+.cleanslate .ccpa-setting {
+ margin: 0 -16px 10px -16px !important;
+ padding: 16px !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+}
+.cleanslate .ccpa-setting__header {
+ font-weight: bold !important;
+}
+.cleanslate .ccpa-setting__text {
+ padding-left: 50px !important;
+}
+.cleanslate .ccpa-setting__toggle {
+ float: left !important;
+}
+.cleanslate .ccpa-setting__toggle-text {
+ float: left !important;
+ margin-left: 8px !important;
+ margin-top: -2px !important;
+ display: none !important;
+}
+.cleanslate .ccpa-setting__toggle-text-off {
+ display: inline-block !important;
+}
+.cleanslate .is-checked > .ccpa-setting__toggle-text-off {
+ display: none !important;
+}
+.cleanslate .is-checked > .ccpa-setting__toggle-text-on {
+ display: inline-block !important;
+}
+.cleanslate .ccpa-privacy, .cleanslate .ccpa-privacy:visited {
+ color: #0085ba !important;
+ text-decoration: none !important;
+}
+/*# sourceMappingURL=wordads-ccpa-rtl.css.map */
diff --git a/plugins/jetpack/css/wordads-ccpa-rtl.min.css b/plugins/jetpack/css/wordads-ccpa-rtl.min.css
new file mode 100644
index 00000000..7b96dadd
--- /dev/null
+++ b/plugins/jetpack/css/wordads-ccpa-rtl.min.css
@@ -0,0 +1,7 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*//*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/.cleanslate,.cleanslate a,.cleanslate abbr,.cleanslate acronym,.cleanslate address,.cleanslate applet,.cleanslate area,.cleanslate article,.cleanslate aside,.cleanslate audio,.cleanslate b,.cleanslate big,.cleanslate blockquote,.cleanslate button,.cleanslate canvas,.cleanslate caption,.cleanslate cite,.cleanslate code,.cleanslate col,.cleanslate colgroup,.cleanslate datalist,.cleanslate dd,.cleanslate del,.cleanslate dfn,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate em,.cleanslate fieldset,.cleanslate figcaption,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hr,.cleanslate i,.cleanslate iframe,.cleanslate img,.cleanslate input,.cleanslate ins,.cleanslate kbd,.cleanslate label,.cleanslate legend,.cleanslate li,.cleanslate main,.cleanslate map,.cleanslate mark,.cleanslate menu,.cleanslate meta,.cleanslate nav,.cleanslate object,.cleanslate ol,.cleanslate optgroup,.cleanslate option,.cleanslate output,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate q,.cleanslate samp,.cleanslate section,.cleanslate select,.cleanslate small,.cleanslate span,.cleanslate strike,.cleanslate strong,.cleanslate sub,.cleanslate summary,.cleanslate sup,.cleanslate svg,.cleanslate table,.cleanslate tbody,.cleanslate td,.cleanslate textarea,.cleanslate tfoot,.cleanslate th,.cleanslate thead,.cleanslate time,.cleanslate tr,.cleanslate tt,.cleanslate ul,.cleanslate var,.cleanslate video{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:100% 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline!important;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto!important;right:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;left:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;background-origin:padding-box!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;background-size:auto!important;-o-border-image:none!important;border-image:none!important;border-radius:0!important;box-shadow:none!important;box-sizing:content-box!important;column-count:auto!important;column-gap:normal!important;column-rule:medium none #000!important;column-span:1!important;column-width:auto!important;font-feature-settings:normal!important;overflow-x:visible!important;overflow-y:visible!important;-webkit-hyphens:manual!important;hyphens:manual!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-ms-perspective-origin:50% 50%!important;-o-perspective-origin:50% 50%!important;perspective-origin:50% 50%!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;text-shadow:none!important;transition:all 0s ease 0s!important;transform:none!important;transform-origin:50% 50%!important;transform-style:flat!important;word-break:normal!important}.cleanslate,.cleanslate address,.cleanslate article,.cleanslate audio,.cleanslate blockquote,.cleanslate caption,.cleanslate colgroup,.cleanslate dd,.cleanslate dialog,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate fieldset,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hgroup,.cleanslate hr,.cleanslate main,.cleanslate menu,.cleanslate nav,.cleanslate ol,.cleanslate option,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate section,.cleanslate summary,.cleanslate ul,.cleanslate video{display:block!important}.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6{font-weight:700!important}.cleanslate h1:before,.cleanslate h2:before{display:none!important}.cleanslate h1{font-size:2em!important;padding:.67em 0!important}.cleanslate h2{font-size:1.5em!important;padding:.83em 0!important}.cleanslate h3{font-size:1.17em!important;padding:.83em 0!important}.cleanslate h4{font-size:1em!important}.cleanslate h5{font-size:.83em!important}.cleanslate p{margin:1em 0!important}.cleanslate table{display:table!important}.cleanslate thead{display:table-header-group!important}.cleanslate tbody{display:table-row-group!important}.cleanslate tfoot{display:table-footer-group!important}.cleanslate tr{display:table-row!important}.cleanslate td,.cleanslate th{display:table-cell!important;padding:2px!important}.cleanslate ol,.cleanslate ul{margin:1em 0!important}.cleanslate ol li,.cleanslate ol ol li,.cleanslate ol ol ol li,.cleanslate ol ol ul li,.cleanslate ol ul ul li,.cleanslate ul li,.cleanslate ul ol ol li,.cleanslate ul ul li,.cleanslate ul ul ol li,.cleanslate ul ul ul li{list-style-position:inside!important;margin-top:.08em!important}.cleanslate ol ol,.cleanslate ol ol ol,.cleanslate ol ol ul,.cleanslate ol ul,.cleanslate ol ul ul,.cleanslate ul ol,.cleanslate ul ol ol,.cleanslate ul ul,.cleanslate ul ul ol,.cleanslate ul ul ul{padding-right:40px!important;margin:0!important}.cleanslate nav ol,.cleanslate nav ul{list-style-type:none!important}.cleanslate menu,.cleanslate ul{list-style-type:disc!important}.cleanslate ol{list-style-type:decimal!important}.cleanslate menu menu,.cleanslate menu ul,.cleanslate ol menu,.cleanslate ol ul,.cleanslate ul menu,.cleanslate ul ul{list-style-type:circle!important}.cleanslate menu menu menu,.cleanslate menu menu ul,.cleanslate menu ol menu,.cleanslate menu ol ul,.cleanslate menu ul menu,.cleanslate menu ul ul,.cleanslate ol menu menu,.cleanslate ol menu ul,.cleanslate ol ol menu,.cleanslate ol ol ul,.cleanslate ol ul menu,.cleanslate ol ul ul,.cleanslate ul menu menu,.cleanslate ul menu ul,.cleanslate ul ol menu,.cleanslate ul ol ul,.cleanslate ul ul menu,.cleanslate ul ul ul{list-style-type:square!important}.cleanslate li{display:list-item!important;min-height:auto!important;min-width:auto!important;padding-right:20px!important}.cleanslate strong{font-weight:700!important}.cleanslate em{font-style:italic!important}.cleanslate code,.cleanslate kbd,.cleanslate pre,.cleanslate samp{font-family:monospace!important}.cleanslate a{color:#00f!important;text-decoration:underline!important}.cleanslate a:visited{color:#529!important}.cleanslate a,.cleanslate a *,.cleanslate button,.cleanslate input[type=button],.cleanslate input[type=checkbox],.cleanslate input[type=radio],.cleanslate input[type=submit],.cleanslate select{cursor:pointer!important}.cleanslate button,.cleanslate input[type=submit]{text-align:center!important;padding:2px 6px 3px!important;border-radius:4px!important;text-decoration:none!important;font-family:inherit!important;font-size:small!important;background:#fff!important;-webkit-appearance:push-button!important;color:buttontext!important;border:1px #a6a6a6 solid!important;background:#d3d3d3!important;background:#fff;background:linear-gradient(to bottom,#fff 0,#ddd 100%,#d1d1d1 100%,#ddd 100%)!important;-o-box-shadow:-1px 1px 0 #eee!important;box-shadow:-1px 1px 0 #eee!important;outline:initial!important}.cleanslate button:active,.cleanslate input[type=button]:active,.cleanslate input[type=submit]:active{background:#3b679e!important;background:linear-gradient(to bottom,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8 100%)!important;border-color:#5259b0!important}.cleanslate button{padding:1px 6px 2px 6px!important;margin-left:5px!important}.cleanslate input[type=hidden]{display:none!important}.cleanslate textarea{-webkit-appearance:textarea!important;background:#fff!important;padding:2px!important;margin-right:4px!important;word-wrap:break-word!important;white-space:pre-wrap!important;font-size:11px!important;font-family:inherit!important;line-height:13px!important;resize:both!important}.cleanslate input,.cleanslate select,.cleanslate textarea{border:1px solid #ccc!important}.cleanslate select{font-size:11px!important;font-family:inherit!important;display:inline-block}.cleanslate input:focus,.cleanslate textarea:focus{outline:auto 5px -webkit-focus-ring-color!important;outline:initial!important}.cleanslate input[type=text]{background:#fff!important;padding:1px!important;font-family:initial!important;font-size:small!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{border:1px #2b2b2b solid!important;border-radius:4px!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{outline:initial!important}.cleanslate input[type=radio]{margin:2px 2px 3px 2px!important}.cleanslate abbr[title],.cleanslate acronym[title],.cleanslate dfn[title]{cursor:help!important;border-bottom-width:1px!important;border-bottom-style:dotted!important}.cleanslate ins{background-color:#ff9!important;color:#000!important}.cleanslate del{text-decoration:line-through!important}.cleanslate blockquote,.cleanslate q{quotes:none!important}.cleanslate blockquote:after,.cleanslate blockquote:before,.cleanslate li:after,.cleanslate li:before,.cleanslate q:after,.cleanslate q:before{content:""!important}.cleanslate input,.cleanslate select{vertical-align:middle!important}.cleanslate table{border-collapse:collapse!important;border-spacing:0!important}.cleanslate hr{display:block!important;height:1px!important;border:0!important;border-top:1px solid #ccc!important;margin:1em 0!important}.cleanslate [dir=rtl]{direction:ltr!important}.cleanslate mark{background-color:#ff9!important;color:#000!important;font-style:italic!important;font-weight:700!important}.cleanslate menu{padding-right:40px!important;padding-top:8px!important}.cleanslate [hidden],.cleanslate template{display:none!important}.cleanslate abbr[title]{border-bottom:1px dotted!important}.cleanslate sub,.cleanslate sup{font-size:75%!important;line-height:0!important;position:relative!important;vertical-align:baseline!important}.cleanslate sup{top:-.5em!important}.cleanslate sub{bottom:-.25em!important}.cleanslate img{border:0!important}.cleanslate figure{margin:0!important}.cleanslate textarea{overflow:auto!important;vertical-align:top!important}.cleanslate{font-size:medium!important;line-height:1!important;direction:rtl!important;text-align:right!important;text-align:start!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;color:#000!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.cleanslate pre{white-space:pre!important}@media (max-width:599px){body.admin-bar .cleanslate .components-modal__frame{top:46px!important}}.cleanslate .ccpa__loading-overlay,.cleanslate .components-modal__screen-overlay{position:fixed!important;top:0!important;left:0!important;bottom:0!important;right:0!important;background-color:rgba(0,0,0,.7)!important;z-index:2147483647!important;animation:edit-post__fade-in-animation .2s ease-out 0s!important;animation-fill-mode:forwards!important}.cleanslate .components-modal__frame{position:absolute!important;top:0!important;left:0!important;bottom:0!important;right:0!important;box-sizing:border-box!important;margin:0!important;border:1px solid #e2e4e7!important;background:#fff!important;box-shadow:0 3px 30px rgba(25,30,35,.2)!important;overflow:auto!important}.cleanslate .ccpa__loading-message{position:absolute!important;top:50%!important;left:0!important;bottom:0!important;right:0!important;box-sizing:border-box!important;margin:0!important;text-align:center!important;color:#fff!important}@media (min-width:600px){.cleanslate .components-modal__frame{top:50%!important;left:auto!important;bottom:auto!important;right:50%!important;min-width:360px!important;max-width:580px!important;max-height:calc(100% - 56px - 56px)!important;transform:translate(50%,-50%)!important;animation:components-modal__appear-animation .1s ease-out!important;animation-fill-mode:forwards!important}}@keyframes components-modal__appear-animation{from{margin-top:32px!important}to{margin-top:0!important}}.cleanslate .components-modal__header{box-sizing:border-box!important;border-bottom:1px solid #e2e4e7!important;padding:0 16px!important;display:flex!important;flex-direction:row!important;justify-content:space-between!important;background:#fff!important;align-items:center!important;height:56px!important;position:sticky!important;top:0!important;z-index:10!important;margin:0 -16px 16px!important}.cleanslate .components-modal__header .components-modal__header-heading{font-size:16px!important;font-weight:600!important}.cleanslate .components-modal__header h1{line-height:1!important;margin:0!important}.cleanslate .components-modal__header-heading-container{align-items:center!important;flex-grow:1!important;display:flex!important;flex-direction:row!important;justify-content:left!important}.cleanslate .components-modal__content{box-sizing:border-box!important;height:100%!important;padding:0 16px!important}.cleanslate .components-modal__footer{box-sizing:border-box!important;border-top:1px solid #e2e4e7!important;padding:0 16px!important;background:#fff!important;height:110px!important;position:sticky!important;bottom:0!important;z-index:10!important;margin:0 -16px!important}.cleanslate .components-modal__footer-bottom{display:flex!important;flex-direction:row-reverse!important;justify-content:space-between!important;align-items:center!important}.cleanslate .components-button{display:inline-flex!important;text-decoration:none!important;font-size:13px!important;margin:0!important;border:0!important;cursor:pointer!important;-webkit-appearance:none!important;background:0 0!important}.cleanslate .components-icon-button{display:flex!important;align-items:center!important;padding:8px!important;margin:0!important;border:none!important;background:0 0!important;color:#50575e!important;position:relative!important;overflow:hidden!important;border-radius:4px!important;box-shadow:none!important;outline:0!important}.cleanslate .components-icon-button:active{background:0 0!important}.cleanslate .components-icon-button .dashicon{display:inline-block!important;flex:0 0 auto!important}.cleanslate .components-icon-button svg{fill:currentColor!important;outline:0!important;cursor:pointer!important}.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):focus,.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{background-color:#fff!important;color:#1d2327!important;box-shadow:inset 0 0 0 1px #e2e4e7,inset 0 0 0 2px #fff,0 1px 1px rgba(25,30,35,.2)!important}.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):active{outline:0!important;background-color:#fff!important;color:#1d2327!important;box-shadow:inset 0 0 0 1px #c3c4c7,inset 0 0 0 2px #fff!important}.cleanslate .components-icon-button:disabled:focus,.cleanslate .components-icon-button[aria-disabled=true]:focus{box-shadow:none!important}.cleanslate .components-form-toggle{position:relative!important;display:inline-block!important}.cleanslate .components-form-toggle.disabled{opacity:.5!important}.cleanslate .components-form-toggle .components-form-toggle__off,.cleanslate .components-form-toggle .components-form-toggle__on{position:absolute!important;top:6px!important;box-sizing:border-box!important;width:2px!important;height:6px!important;overflow:hidden!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__on{display:block!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__off{display:none!important}.cleanslate .components-form-toggle .components-form-toggle__off{color:#787c82!important;fill:currentColor!important;left:6px!important;width:6px!important}.cleanslate .components-form-toggle .components-form-toggle__on{right:8px!important;display:none!important}.cleanslate .components-form-toggle .components-form-toggle__track{content:""!important;display:inline-block!important;box-sizing:border-box!important;vertical-align:top!important;background-color:#fff!important;border:2px solid #787c82!important;width:36px!important;height:18px!important;border-radius:9px!important;transition:.2s background ease!important}@media (prefers-reduced-motion:reduce){.cleanslate .components-form-toggle .components-form-toggle__track{transition-duration:0s!important}}.cleanslate .components-form-toggle .components-form-toggle__thumb{display:block!important;position:absolute!important;box-sizing:border-box!important;top:4px!important;right:4px!important;width:10px!important;height:10px!important;border-radius:50%!important;transition:.1s transform ease!important;background-color:#787c82!important;border:5px solid #787c82!important}@media (prefers-reduced-motion:reduce){.cleanslate .components-form-toggle .components-form-toggle__thumb{transition-duration:0s!important}}.cleanslate .components-form-toggle:hover .components-form-toggle__track{border:2px solid #50575e!important}.cleanslate .components-form-toggle:hover .components-form-toggle__thumb{background-color:#50575e!important;border:5px solid #787c82!important}.cleanslate .components-form-toggle:hover .components-form-toggle__off{color:#50575e!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__track{background-color:#11a0d2!important;border:2px solid #11a0d2!important;border:9px solid transparent!important}.cleanslate .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 2px #fff,0 0 0 3px #787c82!important;outline:2px solid transparent!important;outline-offset:2px!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff!important;border-width:0!important;transform:translateX(-18px)!important}.cleanslate .components-form-toggle.is-checked::before{background-color:#11a0d2!important;border:2px solid #11a0d2!important}.cleanslate .components-disabled .components-form-toggle{opacity:.3!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]{position:absolute!important;top:0!important;right:0!important;width:100%!important;height:100%!important;opacity:0!important;margin:0!important;padding:0!important;z-index:1!important;border:none!important}.cleanslate .components-form-toggle.disabled input.components-form-toggle__input[type=checkbox]{cursor:default!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:0 0!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]::before{content:""!important}.cleanslate .components-form-toggle .components-form-toggle__on{outline:1px solid transparent!important;outline-offset:-1px!important;border:1px solid #000!important;filter:invert(100%) contrast(500%)!important}.cleanslate .components-button{display:inline-flex!important;text-decoration:none!important;font-size:13px!important;margin:0!important;border:0!important;cursor:pointer!important;-webkit-appearance:none!important;background:0 0!important}.cleanslate .components-button.is-button{padding:0 10px 1px!important;line-height:26px!important;height:28px!important;border-radius:3px!important;white-space:nowrap!important;border-width:1px!important;border-style:solid!important}.cleanslate .components-button.is-primary{background:#0085ba!important;border-color:#006a95 #00648c #00648c!important;box-shadow:inset 0 -1px 0 #00648c!important;color:#fff!important;text-decoration:none!important;text-shadow:0 -1px 1px #005d82,-1px 0 1px #005d82,0 1px 1px #005d82,1px 0 1px #005d82!important}.cleanslate .components-button.is-primary:focus:enabled,.cleanslate .components-button.is-primary:hover{background:#007eb1!important;border-color:#00435d!important;color:#fff!important}.cleanslate .components-button.is-primary:hover{box-shadow:inset 0 -1px 0 #00435d!important}.cleanslate .components-button.is-primary:active:enabled{background:#006a95!important;border-color:#00435d!important;box-shadow:inset 0 1px 0 #00435d!important;vertical-align:top!important}.cleanslate .components-button.is-primary:disabled,.cleanslate .components-button.is-primary:disabled:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true],.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled{color:#66b6d6!important;background:#0085ba!important;border-color:#007cad!important;box-shadow:none!important;text-shadow:none!important;opacity:1!important}.cleanslate .components-button.is-primary:disabled.is-button,.cleanslate .components-button.is-primary:disabled.is-button:hover,.cleanslate .components-button.is-primary:disabled:active:enabled,.cleanslate .components-button.is-primary:disabled:active:enabled.is-button,.cleanslate .components-button.is-primary:disabled:active:enabled.is-button:hover,.cleanslate .components-button.is-primary:disabled:active:enabled:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true].is-button,.cleanslate .components-button.is-primary[aria-disabled=true].is-button:hover,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button:hover,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:active:enabled{box-shadow:none!important;text-shadow:none!important}.cleanslate .components-button.is-primary:disabled:active:enabled:focus:enabled,.cleanslate .components-button.is-primary:disabled:focus:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:focus:enabled{color:#66b6d6!important;border-color:#007cad!important;box-shadow:0 0 0 1px #fff,0 0 0 3px #007cba!important}.cleanslate .ccpa-settings{font-size:13px!important;line-height:20px!important;color:#1a1a1a!important;border-bottom:1px solid #e2e4e7!important}.cleanslate .ccpa-setting{margin:0 -16px 10px -16px!important;padding:16px!important;border-bottom:1px solid #e2e4e7!important}.cleanslate .ccpa-setting__header{font-weight:700!important}.cleanslate .ccpa-setting__text{padding-left:50px!important}.cleanslate .ccpa-setting__toggle{float:left!important}.cleanslate .ccpa-setting__toggle-text{float:left!important;margin-left:8px!important;margin-top:-2px!important;display:none!important}.cleanslate .ccpa-setting__toggle-text-off{display:inline-block!important}.cleanslate .is-checked>.ccpa-setting__toggle-text-off{display:none!important}.cleanslate .is-checked>.ccpa-setting__toggle-text-on{display:inline-block!important}.cleanslate .ccpa-privacy,.cleanslate .ccpa-privacy:visited{color:#0085ba!important;text-decoration:none!important} \ No newline at end of file
diff --git a/plugins/jetpack/css/wordads-ccpa.css b/plugins/jetpack/css/wordads-ccpa.css
new file mode 100644
index 00000000..3d072174
--- /dev/null
+++ b/plugins/jetpack/css/wordads-ccpa.css
@@ -0,0 +1,881 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*/
+/* Include Cleanslate */
+/*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/
+/*
+ An extreme CSS reset stylesheet, for normalising the styling of a container element and its children.
+
+ by Premasagar Rose
+ dharmafly.com
+
+ license
+ opensource.org/licenses/mit-license.php
+
+ **
+
+ v0.10.1
+
+*/
+/* == BLANKET RESET RULES == */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6, .cleanslate p, .cleanslate td, .cleanslate dl, .cleanslate tr, .cleanslate dt, .cleanslate ol, .cleanslate form, .cleanslate select, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate table, .cleanslate th, .cleanslate tbody, .cleanslate tfoot, .cleanslate caption, .cleanslate thead, .cleanslate ul, .cleanslate li, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate li, .cleanslate iframe, .cleanslate strong, .cleanslate legend, .cleanslate em, .cleanslate summary, .cleanslate cite, .cleanslate span, .cleanslate input, .cleanslate sup, .cleanslate label, .cleanslate dfn, .cleanslate object, .cleanslate big, .cleanslate q, .cleanslate samp, .cleanslate acronym, .cleanslate small, .cleanslate img, .cleanslate strike, .cleanslate code, .cleanslate sub, .cleanslate ins, .cleanslate textarea, .cleanslate button, .cleanslate var, .cleanslate a, .cleanslate abbr, .cleanslate applet, .cleanslate del, .cleanslate kbd, .cleanslate tt, .cleanslate b, .cleanslate i, .cleanslate hr,
+.cleanslate article, .cleanslate aside, .cleanslate figure, .cleanslate figcaption, .cleanslate footer, .cleanslate header, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate time, .cleanslate mark, .cleanslate audio, .cleanslate video, .cleanslate abbr, .cleanslate address, .cleanslate area, .cleanslate blockquote, .cleanslate canvas, .cleanslate caption, .cleanslate cite, .cleanslate code, .cleanslate colgroup, .cleanslate col, .cleanslate datalist, .cleanslate fieldset, .cleanslate main, .cleanslate map, .cleanslate meta, .cleanslate optgroup, .cleanslate output, .cleanslate progress, .cleanslate svg {
+ background-attachment: scroll !important;
+ background-color: transparent !important;
+ background-image: none !important;
+ /* This rule affects the use of pngfix JavaScript http://dillerdesign.com/experiment/DD_BelatedPNG for IE6, which is used to force the browser to recognise alpha-transparent PNGs files that replace the IE6 lack of PNG transparency. (The rule overrides the VML image that is used to replace the given CSS background-image). If you don't know what that means, then you probably haven't used the pngfix script, and this comment may be ignored :) */
+ background-position: 0 0 !important;
+ background-repeat: repeat !important;
+ border-color: black !important;
+ border-color: currentColor !important;
+ /* `border-color` should match font color. Modern browsers (incl. IE9) allow the use of "currentColor" to match the current font 'color' value <http://www.w3.org/TR/css3-color/#currentcolor>. For older browsers, a default of 'black' is given before this rule. Guideline to support older browsers: if you haven't already declared a border-color for an element, be sure to do so, e.g. when you first declare the border-width. */
+ border-radius: 0 !important;
+ border-style: none !important;
+ border-width: medium !important;
+ bottom: auto !important;
+ clear: none !important;
+ clip: auto !important;
+ color: inherit !important;
+ counter-increment: none !important;
+ counter-reset: none !important;
+ cursor: auto !important;
+ direction: inherit !important;
+ display: inline !important;
+ float: none !important;
+ font-family: inherit !important;
+ /* As with other inherit values, this needs to be set on the root container element */
+ font-size: inherit !important;
+ font-style: inherit !important;
+ font-variant: normal !important;
+ font-weight: inherit !important;
+ height: auto !important;
+ left: auto !important;
+ letter-spacing: normal !important;
+ line-height: inherit !important;
+ list-style-type: inherit !important;
+ /* Could set list-style-type to none */
+ list-style-position: outside !important;
+ list-style-image: none !important;
+ margin: 0 !important;
+ max-height: none !important;
+ max-width: none !important;
+ min-height: 0 !important;
+ min-width: 0 !important;
+ opacity: 1;
+ outline: invert none medium !important;
+ overflow: visible !important;
+ padding: 0 !important;
+ position: static !important;
+ quotes: "" "" !important;
+ right: auto !important;
+ table-layout: auto !important;
+ text-align: inherit !important;
+ text-decoration: inherit !important;
+ text-indent: 0 !important;
+ text-transform: none !important;
+ top: auto !important;
+ unicode-bidi: normal !important;
+ vertical-align: baseline !important;
+ visibility: inherit !important;
+ white-space: normal !important;
+ width: auto !important;
+ word-spacing: normal !important;
+ z-index: auto !important;
+ /* CSS3 */
+ /* Including all prefixes according to http://caniuse.com/ */
+ /* CSS Animations don't cascade, so don't require resetting */
+ background-origin: padding-box !important;
+ -webkit-background-clip: border-box !important;
+ background-clip: border-box !important;
+ background-size: auto !important;
+ -o-border-image: none !important;
+ border-image: none !important;
+ border-radius: 0 !important;
+ box-shadow: none !important;
+ box-sizing: content-box !important;
+ column-count: auto !important;
+ column-gap: normal !important;
+ column-rule: medium none black !important;
+ /* doesn't exist yet but probably will */
+ column-span: 1 !important;
+ column-width: auto !important;
+ font-feature-settings: normal !important;
+ overflow-x: visible !important;
+ overflow-y: visible !important;
+ -webkit-hyphens: manual !important;
+ hyphens: manual !important;
+ -ms-perspective: none !important;
+ -o-perspective: none !important;
+ perspective: none !important;
+ -ms-perspective-origin: 50% 50% !important;
+ -o-perspective-origin: 50% 50% !important;
+ perspective-origin: 50% 50% !important;
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ text-shadow: none !important;
+ transition: all 0s ease 0s !important;
+ transform: none !important;
+ transform-origin: 50% 50% !important;
+ transform-style: flat !important;
+ word-break: normal !important;
+}
+
+/* == BLOCK-LEVEL == */
+/* Actually, some of these should be inline-block and other values, but block works fine (TODO: rigorously verify this) */
+/* HTML 4.01 */
+.cleanslate, .cleanslate h3, .cleanslate h5, .cleanslate p, .cleanslate h1, .cleanslate dl, .cleanslate dt, .cleanslate h6, .cleanslate ol, .cleanslate form, .cleanslate option, .cleanslate pre, .cleanslate div, .cleanslate h2, .cleanslate caption, .cleanslate h4, .cleanslate ul, .cleanslate address, .cleanslate blockquote, .cleanslate dd, .cleanslate fieldset, .cleanslate hr,
+.cleanslate article, .cleanslate dialog, .cleanslate figure, .cleanslate footer, .cleanslate header, .cleanslate hgroup, .cleanslate menu, .cleanslate nav, .cleanslate section, .cleanslate audio, .cleanslate video, .cleanslate address, .cleanslate blockquote, .cleanslate colgroup, .cleanslate main, .cleanslate progress, .cleanslate summary {
+ display: block !important;
+}
+
+.cleanslate h1, .cleanslate h2, .cleanslate h3, .cleanslate h4, .cleanslate h5, .cleanslate h6 {
+ font-weight: bold !important;
+}
+
+.cleanslate h1:before, .cleanslate h2:before {
+ display: none !important;
+}
+
+.cleanslate h1 {
+ font-size: 2em !important;
+ padding: 0.67em 0 !important;
+}
+
+.cleanslate h2 {
+ font-size: 1.5em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h3 {
+ font-size: 1.17em !important;
+ padding: 0.83em 0 !important;
+}
+
+.cleanslate h4 {
+ font-size: 1em !important;
+}
+
+.cleanslate h5 {
+ font-size: 0.83em !important;
+}
+
+.cleanslate p {
+ margin: 1em 0 !important;
+}
+
+.cleanslate table {
+ display: table !important;
+}
+
+.cleanslate thead {
+ display: table-header-group !important;
+}
+
+.cleanslate tbody {
+ display: table-row-group !important;
+}
+
+.cleanslate tfoot {
+ display: table-footer-group !important;
+}
+
+.cleanslate tr {
+ display: table-row !important;
+}
+
+.cleanslate th, .cleanslate td {
+ display: table-cell !important;
+ padding: 2px !important;
+}
+
+/* == SPECIFIC ELEMENTS == */
+/* Some of these are browser defaults; some are just useful resets */
+.cleanslate ol, .cleanslate ul {
+ margin: 1em 0 !important;
+}
+
+.cleanslate ul li, .cleanslate ul ul li, .cleanslate ul ul ul li, .cleanslate ol li, .cleanslate ol ol li, .cleanslate ol ol ol li, .cleanslate ul ol ol li, .cleanslate ul ul ol li, .cleanslate ol ul ul li, .cleanslate ol ol ul li {
+ list-style-position: inside !important;
+ margin-top: 0.08em !important;
+}
+
+.cleanslate ol ol, .cleanslate ol ol ol, .cleanslate ul ul, .cleanslate ul ul ul, .cleanslate ol ul, .cleanslate ol ul ul, .cleanslate ol ol ul, .cleanslate ul ol, .cleanslate ul ol ol, .cleanslate ul ul ol {
+ padding-left: 40px !important;
+ margin: 0 !important;
+}
+
+/* helper for general navigation */
+.cleanslate nav ul, .cleanslate nav ol {
+ list-style-type: none !important;
+}
+
+.cleanslate ul, .cleanslate menu {
+ list-style-type: disc !important;
+}
+
+.cleanslate ol {
+ list-style-type: decimal !important;
+}
+
+.cleanslate ol ul, .cleanslate ul ul, .cleanslate menu ul, .cleanslate ol menu, .cleanslate ul menu, .cleanslate menu menu {
+ list-style-type: circle !important;
+}
+
+.cleanslate ol ol ul, .cleanslate ol ul ul, .cleanslate ol menu ul, .cleanslate ol ol menu, .cleanslate ol ul menu, .cleanslate ol menu menu, .cleanslate ul ol ul, .cleanslate ul ul ul, .cleanslate ul menu ul, .cleanslate ul ol menu, .cleanslate ul ul menu, .cleanslate ul menu menu, .cleanslate menu ol ul, .cleanslate menu ul ul, .cleanslate menu menu ul, .cleanslate menu ol menu, .cleanslate menu ul menu, .cleanslate menu menu menu {
+ list-style-type: square !important;
+}
+
+.cleanslate li {
+ display: list-item !important;
+ /* Fixes IE7 issue with positioning of nested bullets */
+ min-height: auto !important;
+ min-width: auto !important;
+ padding-left: 20px !important;
+ /* replace -webkit-padding-start: 40px; */
+}
+
+.cleanslate strong {
+ font-weight: bold !important;
+}
+
+.cleanslate em {
+ font-style: italic !important;
+}
+
+.cleanslate kbd, .cleanslate samp, .cleanslate code, .cleanslate pre {
+ font-family: monospace !important;
+}
+
+.cleanslate a {
+ color: blue !important;
+ text-decoration: underline !important;
+}
+
+.cleanslate a:visited {
+ color: #529 !important;
+}
+
+.cleanslate a, .cleanslate a *, .cleanslate input[type=submit], .cleanslate input[type=button], .cleanslate input[type=radio], .cleanslate input[type=checkbox], .cleanslate select, .cleanslate button {
+ cursor: pointer !important;
+}
+
+.cleanslate button, .cleanslate input[type=submit] {
+ text-align: center !important;
+ padding: 2px 6px 3px !important;
+ border-radius: 4px !important;
+ text-decoration: none !important;
+ font-family: inherit !important;
+ font-size: small !important;
+ background: white !important;
+ -webkit-appearance: push-button !important;
+ color: buttontext !important;
+ border: 1px #a6a6a6 solid !important;
+ background: lightgrey !important;
+ /* Old browsers */
+ background: white;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, white 0%, #dddddd 100%, #d1d1d1 100%, #dddddd 100%) !important;
+ /* W3C */
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr="#ffffff", endColorstr="#dddddd",GradientType=0 ) !important;
+ /* IE6-9 */
+ -o-box-shadow: 1px 1px 0px #eee !important;
+ box-shadow: 1px 1px 0px #eee !important;
+ outline: initial !important;
+}
+
+.cleanslate button:active, .cleanslate input[type=submit]:active, .cleanslate input[type=button]:active, .cleanslate button:active {
+ background: #3b679e !important;
+ /* Old browsers */
+ /* FF3.6+ */
+ /* Chrome,Safari4+ */
+ /* Chrome10+,Safari5.1+ */
+ /* Opera 11.10+ */
+ /* IE10+ */
+ background: linear-gradient(to bottom, #3b679e 0%, #2b88d9 50%, #207cca 51%, #7db9e8 100%) !important;
+ /* W3C */
+ border-color: #5259b0 !important;
+}
+
+.cleanslate button {
+ padding: 1px 6px 2px 6px !important;
+ margin-right: 5px !important;
+}
+
+.cleanslate input[type=hidden] {
+ display: none !important;
+}
+
+/* restore form defaults */
+.cleanslate textarea {
+ -webkit-appearance: textarea !important;
+ background: white !important;
+ padding: 2px !important;
+ margin-left: 4px !important;
+ word-wrap: break-word !important;
+ white-space: pre-wrap !important;
+ font-size: 11px !important;
+ font-family: inherit !important;
+ line-height: 13px !important;
+ resize: both !important;
+}
+
+.cleanslate select, .cleanslate textarea, .cleanslate input {
+ border: 1px solid #ccc !important;
+}
+
+.cleanslate select {
+ font-size: 11px !important;
+ font-family: inherit !important;
+ display: inline-block;
+}
+
+.cleanslate textarea:focus, .cleanslate input:focus {
+ outline: auto 5px -webkit-focus-ring-color !important;
+ outline: initial !important;
+}
+
+.cleanslate input[type=text] {
+ background: white !important;
+ padding: 1px !important;
+ font-family: initial !important;
+ font-size: small !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ border: 1px #2b2b2b solid !important;
+ border-radius: 4px !important;
+}
+
+.cleanslate input[type=checkbox], .cleanslate input[type=radio] {
+ outline: initial !important;
+}
+
+.cleanslate input[type=radio] {
+ margin: 2px 2px 3px 2px !important;
+}
+
+.cleanslate abbr[title], .cleanslate acronym[title], .cleanslate dfn[title] {
+ cursor: help !important;
+ border-bottom-width: 1px !important;
+ border-bottom-style: dotted !important;
+}
+
+.cleanslate ins {
+ background-color: #ff9 !important;
+ color: black !important;
+}
+
+.cleanslate del {
+ text-decoration: line-through !important;
+}
+
+.cleanslate blockquote, .cleanslate q {
+ quotes: none !important;
+ /* HTML5 */
+}
+
+.cleanslate blockquote:before, .cleanslate blockquote:after, .cleanslate q:before, .cleanslate q:after, .cleanslate li:before, .cleanslate li:after {
+ content: "" !important;
+}
+
+.cleanslate input, .cleanslate select {
+ vertical-align: middle !important;
+}
+
+.cleanslate table {
+ border-collapse: collapse !important;
+ border-spacing: 0 !important;
+}
+
+.cleanslate hr {
+ display: block !important;
+ height: 1px !important;
+ border: 0 !important;
+ border-top: 1px solid #ccc !important;
+ margin: 1em 0 !important;
+}
+
+.cleanslate *[dir=rtl] {
+ direction: rtl !important;
+}
+
+.cleanslate mark {
+ background-color: #ff9 !important;
+ color: black !important;
+ font-style: italic !important;
+ font-weight: bold !important;
+}
+
+.cleanslate menu {
+ padding-left: 40px !important;
+ padding-top: 8px !important;
+}
+
+/* additional helpers */
+.cleanslate [hidden],
+.cleanslate template {
+ display: none !important;
+}
+
+.cleanslate abbr[title] {
+ border-bottom: 1px dotted !important;
+}
+
+.cleanslate sub, .cleanslate sup {
+ font-size: 75% !important;
+ line-height: 0 !important;
+ position: relative !important;
+ vertical-align: baseline !important;
+}
+
+.cleanslate sup {
+ top: -0.5em !important;
+}
+
+.cleanslate sub {
+ bottom: -0.25em !important;
+}
+
+.cleanslate img {
+ border: 0 !important;
+}
+
+.cleanslate figure {
+ margin: 0 !important;
+}
+
+.cleanslate textarea {
+ overflow: auto !important;
+ vertical-align: top !important;
+}
+
+/* == ROOT CONTAINER ELEMENT == */
+/* This contains default values for child elements to inherit */
+.cleanslate {
+ font-size: medium !important;
+ line-height: 1 !important;
+ direction: ltr !important;
+ text-align: left !important;
+ /* for IE, Opera */
+ text-align: start !important;
+ /* recommended W3C Spec */
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
+ color: black !important;
+ font-style: normal !important;
+ font-weight: normal !important;
+ text-decoration: none !important;
+ list-style-type: disc !important;
+}
+
+.cleanslate pre {
+ white-space: pre !important;
+}
+
+@media (max-width: 599px) {
+ body.admin-bar .cleanslate .components-modal__frame {
+ top: 46px !important;
+ }
+}
+
+.cleanslate {
+ /* Modal */
+ /* Form Toggle */
+}
+.cleanslate .components-modal__screen-overlay, .cleanslate .ccpa__loading-overlay {
+ position: fixed !important;
+ top: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ left: 0 !important;
+ background-color: rgba(0, 0, 0, 0.7) !important;
+ z-index: 2147483647 !important;
+ animation: edit-post__fade-in-animation 0.2s ease-out 0s !important;
+ animation-fill-mode: forwards !important;
+}
+.cleanslate .components-modal__frame {
+ position: absolute !important;
+ top: 0 !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ left: 0 !important;
+ box-sizing: border-box !important;
+ margin: 0 !important;
+ border: 1px solid #e2e4e7 !important;
+ background: #fff !important;
+ box-shadow: 0 3px 30px rgba(25, 30, 35, 0.2) !important;
+ overflow: auto !important;
+}
+.cleanslate .ccpa__loading-message {
+ position: absolute !important;
+ top: 50% !important;
+ right: 0 !important;
+ bottom: 0 !important;
+ left: 0 !important;
+ box-sizing: border-box !important;
+ margin: 0 !important;
+ text-align: center !important;
+ color: #ffffff !important;
+}
+@media (min-width: 600px) {
+ .cleanslate .components-modal__frame {
+ top: 50% !important;
+ right: auto !important;
+ bottom: auto !important;
+ left: 50% !important;
+ min-width: 360px !important;
+ max-width: 580px !important;
+ max-height: calc(100% - 56px - 56px) !important;
+ transform: translate(-50%, -50%) !important;
+ animation: components-modal__appear-animation 0.1s ease-out !important;
+ animation-fill-mode: forwards !important;
+ }
+}
+@keyframes components-modal__appear-animation {
+ from {
+ margin-top: 32px !important;
+ }
+ to {
+ margin-top: 0 !important;
+ }
+}
+.cleanslate .components-modal__header {
+ box-sizing: border-box !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+ padding: 0 16px !important;
+ display: flex !important;
+ flex-direction: row !important;
+ justify-content: space-between !important;
+ background: #fff !important;
+ align-items: center !important;
+ height: 56px !important;
+ position: sticky !important;
+ top: 0 !important;
+ z-index: 10 !important;
+ margin: 0 -16px 16px !important;
+}
+.cleanslate .components-modal__header .components-modal__header-heading {
+ font-size: 16px !important;
+ font-weight: 600 !important;
+}
+.cleanslate .components-modal__header h1 {
+ line-height: 1 !important;
+ margin: 0 !important;
+}
+.cleanslate .components-modal__header-heading-container {
+ align-items: center !important;
+ flex-grow: 1 !important;
+ display: flex !important;
+ flex-direction: row !important;
+ justify-content: left !important;
+}
+.cleanslate .components-modal__content {
+ box-sizing: border-box !important;
+ height: 100% !important;
+ padding: 0 16px !important;
+}
+.cleanslate .components-modal__footer {
+ box-sizing: border-box !important;
+ border-top: 1px solid #e2e4e7 !important;
+ padding: 0 16px !important;
+ background: #fff !important;
+ height: 110px !important;
+ position: sticky !important;
+ bottom: 0 !important;
+ z-index: 10 !important;
+ margin: 0 -16px !important;
+}
+.cleanslate .components-modal__footer-bottom {
+ display: flex !important;
+ flex-direction: row-reverse !important;
+ justify-content: space-between !important;
+ align-items: center !important;
+}
+.cleanslate .components-button {
+ display: inline-flex !important;
+ text-decoration: none !important;
+ font-size: 13px !important;
+ margin: 0 !important;
+ border: 0 !important;
+ cursor: pointer !important;
+ -webkit-appearance: none !important;
+ background: none !important;
+ /* Buttons that look like links, for a cross of good semantics with the visual */
+ /* Link buttons that are red to indicate destructive behavior. */
+}
+.cleanslate .components-icon-button {
+ display: flex !important;
+ align-items: center !important;
+ padding: 8px !important;
+ margin: 0 !important;
+ border: none !important;
+ background: none !important;
+ color: #50575e !important;
+ position: relative !important;
+ overflow: hidden !important;
+ border-radius: 4px !important;
+ /* Override Cleanslate */
+ box-shadow: none !important;
+ outline: none !important;
+}
+.cleanslate .components-icon-button:active {
+ background: none !important;
+}
+.cleanslate .components-icon-button .dashicon {
+ display: inline-block !important;
+ flex: 0 0 auto !important;
+}
+.cleanslate .components-icon-button svg {
+ fill: currentColor !important;
+ outline: none !important;
+ cursor: pointer !important;
+}
+.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover, .cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):focus {
+ background-color: #fff !important;
+ color: #1d2327 !important;
+ box-shadow: inset 0 0 0 1px #e2e4e7, inset 0 0 0 2px #fff, 0 1px 1px rgba(25, 30, 35, 0.2) !important;
+}
+.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):active {
+ outline: none !important;
+ background-color: #fff !important;
+ color: #1d2327 !important;
+ box-shadow: inset 0 0 0 1px #c3c4c7, inset 0 0 0 2px #fff !important;
+}
+.cleanslate .components-icon-button[aria-disabled=true]:focus, .cleanslate .components-icon-button:disabled:focus {
+ box-shadow: none !important;
+}
+.cleanslate .components-form-toggle {
+ position: relative !important;
+ display: inline-block !important;
+}
+.cleanslate .components-form-toggle.disabled {
+ opacity: 0.5 !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on,
+.cleanslate .components-form-toggle .components-form-toggle__off {
+ position: absolute !important;
+ top: 6px !important;
+ box-sizing: border-box !important;
+ width: 2px !important;
+ height: 6px !important;
+ overflow: hidden !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__on {
+ display: block !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__off {
+ display: none !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__off {
+ color: #787c82 !important;
+ fill: currentColor !important;
+ right: 6px !important;
+ width: 6px !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on {
+ left: 8px !important;
+ display: none !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__track {
+ content: "" !important;
+ display: inline-block !important;
+ box-sizing: border-box !important;
+ vertical-align: top !important;
+ background-color: #fff !important;
+ border: 2px solid #787c82 !important;
+ width: 36px !important;
+ height: 18px !important;
+ border-radius: 9px !important;
+ transition: 0.2s background ease !important;
+}
+@media (prefers-reduced-motion: reduce) {
+ .cleanslate .components-form-toggle .components-form-toggle__track {
+ transition-duration: 0s !important;
+ }
+}
+.cleanslate .components-form-toggle .components-form-toggle__thumb {
+ display: block !important;
+ position: absolute !important;
+ box-sizing: border-box !important;
+ top: 4px !important;
+ left: 4px !important;
+ width: 10px !important;
+ height: 10px !important;
+ border-radius: 50% !important;
+ transition: 0.1s transform ease !important;
+ background-color: #787c82 !important;
+ border: 5px solid #787c82 !important;
+}
+@media (prefers-reduced-motion: reduce) {
+ .cleanslate .components-form-toggle .components-form-toggle__thumb {
+ transition-duration: 0s !important;
+ }
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__track {
+ border: 2px solid #50575e !important;
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__thumb {
+ background-color: #50575e !important;
+ border: 5px solid #787c82 !important;
+}
+.cleanslate .components-form-toggle:hover .components-form-toggle__off {
+ color: #50575e !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__track {
+ background-color: #11a0d2 !important;
+ border: 2px solid #11a0d2 !important;
+ border: 9px solid transparent !important;
+}
+.cleanslate .components-form-toggle__input:focus + .components-form-toggle__track {
+ box-shadow: 0 0 0 2px #fff, 0 0 0 3px #787c82 !important;
+ outline: 2px solid transparent !important;
+ outline-offset: 2px !important;
+}
+.cleanslate .components-form-toggle.is-checked .components-form-toggle__thumb {
+ background-color: #fff !important;
+ border-width: 0 !important;
+ transform: translateX(18px) !important;
+}
+.cleanslate .components-form-toggle.is-checked::before {
+ background-color: #11a0d2 !important;
+ border: 2px solid #11a0d2 !important;
+}
+.cleanslate .components-disabled .components-form-toggle {
+ opacity: 0.3 !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox] {
+ position: absolute !important;
+ top: 0 !important;
+ left: 0 !important;
+ width: 100% !important;
+ height: 100% !important;
+ opacity: 0 !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ z-index: 1 !important;
+ border: none !important;
+}
+.cleanslate .components-form-toggle.disabled input.components-form-toggle__input[type=checkbox] {
+ cursor: default !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]:checked {
+ background: none !important;
+}
+.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]::before {
+ content: "" !important;
+}
+.cleanslate .components-form-toggle .components-form-toggle__on {
+ outline: 1px solid transparent !important;
+ outline-offset: -1px !important;
+ border: 1px solid #000 !important;
+ filter: invert(100%) contrast(500%) !important;
+}
+.cleanslate .components-button {
+ display: inline-flex !important;
+ text-decoration: none !important;
+ font-size: 13px !important;
+ margin: 0 !important;
+ border: 0 !important;
+ cursor: pointer !important;
+ -webkit-appearance: none !important;
+ background: none !important;
+ /* Buttons that look like links, for a cross of good semantics with the visual */
+ /* Link buttons that are red to indicate destructive behavior. */
+}
+.cleanslate .components-button.is-button {
+ padding: 0 10px 1px !important;
+ line-height: 26px !important;
+ height: 28px !important;
+ border-radius: 3px !important;
+ white-space: nowrap !important;
+ border-width: 1px !important;
+ border-style: solid !important;
+}
+.cleanslate .components-button.is-primary {
+ background: #0085ba !important;
+ border-color: #006a95 #00648c #00648c !important;
+ box-shadow: inset 0 -1px 0 #00648c !important;
+ color: #fff !important;
+ text-decoration: none !important;
+ text-shadow: 0 -1px 1px #005d82, 1px 0 1px #005d82, 0 1px 1px #005d82, -1px 0 1px #005d82 !important;
+}
+.cleanslate .components-button.is-primary:hover, .cleanslate .components-button.is-primary:focus:enabled {
+ background: #007eb1 !important;
+ border-color: #00435d !important;
+ color: #fff !important;
+}
+.cleanslate .components-button.is-primary:hover {
+ box-shadow: inset 0 -1px 0 #00435d !important;
+}
+.cleanslate .components-button.is-primary:active:enabled {
+ background: #006a95 !important;
+ border-color: #00435d !important;
+ box-shadow: inset 0 1px 0 #00435d !important;
+ vertical-align: top !important;
+}
+.cleanslate .components-button.is-primary:disabled, .cleanslate .components-button.is-primary:disabled:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true], .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled {
+ color: #66b6d6 !important;
+ background: #0085ba !important;
+ border-color: #007cad !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ opacity: 1 !important;
+}
+.cleanslate .components-button.is-primary:disabled.is-button, .cleanslate .components-button.is-primary:disabled.is-button:hover, .cleanslate .components-button.is-primary:disabled:active:enabled, .cleanslate .components-button.is-primary:disabled:active:enabled.is-button, .cleanslate .components-button.is-primary:disabled:active:enabled.is-button:hover, .cleanslate .components-button.is-primary:disabled:active:enabled:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true].is-button, .cleanslate .components-button.is-primary[aria-disabled=true].is-button:hover, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button:hover, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:active:enabled {
+ box-shadow: none !important;
+ text-shadow: none !important;
+}
+.cleanslate .components-button.is-primary:disabled:focus:enabled, .cleanslate .components-button.is-primary:disabled:active:enabled:focus:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:focus:enabled, .cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled {
+ color: #66b6d6 !important;
+ border-color: #007cad !important;
+ box-shadow: 0 0 0 1px #fff, 0 0 0 3px #007cba !important;
+}
+.cleanslate .ccpa-settings {
+ font-size: 13px !important;
+ line-height: 20px !important;
+ color: #1a1a1a !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+}
+.cleanslate .ccpa-setting {
+ margin: 0 -16px 10px -16px !important;
+ padding: 16px !important;
+ border-bottom: 1px solid #e2e4e7 !important;
+}
+.cleanslate .ccpa-setting__header {
+ font-weight: bold !important;
+}
+.cleanslate .ccpa-setting__text {
+ padding-right: 50px !important;
+}
+.cleanslate .ccpa-setting__toggle {
+ float: right !important;
+}
+.cleanslate .ccpa-setting__toggle-text {
+ float: right !important;
+ margin-right: 8px !important;
+ margin-top: -2px !important;
+ display: none !important;
+}
+.cleanslate .ccpa-setting__toggle-text-off {
+ display: inline-block !important;
+}
+.cleanslate .is-checked > .ccpa-setting__toggle-text-off {
+ display: none !important;
+}
+.cleanslate .is-checked > .ccpa-setting__toggle-text-on {
+ display: inline-block !important;
+}
+.cleanslate .ccpa-privacy, .cleanslate .ccpa-privacy:visited {
+ color: #0085ba !important;
+ text-decoration: none !important;
+}
+/*# sourceMappingURL=wordads-ccpa.css.map */
diff --git a/plugins/jetpack/css/wordads-ccpa.min.css b/plugins/jetpack/css/wordads-ccpa.min.css
new file mode 100644
index 00000000..3bd677ee
--- /dev/null
+++ b/plugins/jetpack/css/wordads-ccpa.min.css
@@ -0,0 +1,7 @@
+/*!
+* Do not modify this file directly. It is compiled SASS code.
+*//*!
+* CleanSlate
+* github.com/premasagar/cleanslate
+*
+*/.cleanslate,.cleanslate a,.cleanslate abbr,.cleanslate acronym,.cleanslate address,.cleanslate applet,.cleanslate area,.cleanslate article,.cleanslate aside,.cleanslate audio,.cleanslate b,.cleanslate big,.cleanslate blockquote,.cleanslate button,.cleanslate canvas,.cleanslate caption,.cleanslate cite,.cleanslate code,.cleanslate col,.cleanslate colgroup,.cleanslate datalist,.cleanslate dd,.cleanslate del,.cleanslate dfn,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate em,.cleanslate fieldset,.cleanslate figcaption,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hr,.cleanslate i,.cleanslate iframe,.cleanslate img,.cleanslate input,.cleanslate ins,.cleanslate kbd,.cleanslate label,.cleanslate legend,.cleanslate li,.cleanslate main,.cleanslate map,.cleanslate mark,.cleanslate menu,.cleanslate meta,.cleanslate nav,.cleanslate object,.cleanslate ol,.cleanslate optgroup,.cleanslate option,.cleanslate output,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate q,.cleanslate samp,.cleanslate section,.cleanslate select,.cleanslate small,.cleanslate span,.cleanslate strike,.cleanslate strong,.cleanslate sub,.cleanslate summary,.cleanslate sup,.cleanslate svg,.cleanslate table,.cleanslate tbody,.cleanslate td,.cleanslate textarea,.cleanslate tfoot,.cleanslate th,.cleanslate thead,.cleanslate time,.cleanslate tr,.cleanslate tt,.cleanslate ul,.cleanslate var,.cleanslate video{background-attachment:scroll!important;background-color:transparent!important;background-image:none!important;background-position:0 0!important;background-repeat:repeat!important;border-color:#000!important;border-color:currentColor!important;border-radius:0!important;border-style:none!important;border-width:medium!important;bottom:auto!important;clear:none!important;clip:auto!important;color:inherit!important;counter-increment:none!important;counter-reset:none!important;cursor:auto!important;direction:inherit!important;display:inline!important;float:none!important;font-family:inherit!important;font-size:inherit!important;font-style:inherit!important;font-variant:normal!important;font-weight:inherit!important;height:auto!important;left:auto!important;letter-spacing:normal!important;line-height:inherit!important;list-style-type:inherit!important;list-style-position:outside!important;list-style-image:none!important;margin:0!important;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:1;outline:invert none medium!important;overflow:visible!important;padding:0!important;position:static!important;quotes:"" ""!important;right:auto!important;table-layout:auto!important;text-align:inherit!important;text-decoration:inherit!important;text-indent:0!important;text-transform:none!important;top:auto!important;unicode-bidi:normal!important;vertical-align:baseline!important;visibility:inherit!important;white-space:normal!important;width:auto!important;word-spacing:normal!important;z-index:auto!important;background-origin:padding-box!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;background-size:auto!important;-o-border-image:none!important;border-image:none!important;border-radius:0!important;box-shadow:none!important;box-sizing:content-box!important;column-count:auto!important;column-gap:normal!important;column-rule:medium none #000!important;column-span:1!important;column-width:auto!important;font-feature-settings:normal!important;overflow-x:visible!important;overflow-y:visible!important;-webkit-hyphens:manual!important;hyphens:manual!important;-ms-perspective:none!important;-o-perspective:none!important;perspective:none!important;-ms-perspective-origin:50% 50%!important;-o-perspective-origin:50% 50%!important;perspective-origin:50% 50%!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important;text-shadow:none!important;transition:all 0s ease 0s!important;transform:none!important;transform-origin:50% 50%!important;transform-style:flat!important;word-break:normal!important}.cleanslate,.cleanslate address,.cleanslate article,.cleanslate audio,.cleanslate blockquote,.cleanslate caption,.cleanslate colgroup,.cleanslate dd,.cleanslate dialog,.cleanslate div,.cleanslate dl,.cleanslate dt,.cleanslate fieldset,.cleanslate figure,.cleanslate footer,.cleanslate form,.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6,.cleanslate header,.cleanslate hgroup,.cleanslate hr,.cleanslate main,.cleanslate menu,.cleanslate nav,.cleanslate ol,.cleanslate option,.cleanslate p,.cleanslate pre,.cleanslate progress,.cleanslate section,.cleanslate summary,.cleanslate ul,.cleanslate video{display:block!important}.cleanslate h1,.cleanslate h2,.cleanslate h3,.cleanslate h4,.cleanslate h5,.cleanslate h6{font-weight:700!important}.cleanslate h1:before,.cleanslate h2:before{display:none!important}.cleanslate h1{font-size:2em!important;padding:.67em 0!important}.cleanslate h2{font-size:1.5em!important;padding:.83em 0!important}.cleanslate h3{font-size:1.17em!important;padding:.83em 0!important}.cleanslate h4{font-size:1em!important}.cleanslate h5{font-size:.83em!important}.cleanslate p{margin:1em 0!important}.cleanslate table{display:table!important}.cleanslate thead{display:table-header-group!important}.cleanslate tbody{display:table-row-group!important}.cleanslate tfoot{display:table-footer-group!important}.cleanslate tr{display:table-row!important}.cleanslate td,.cleanslate th{display:table-cell!important;padding:2px!important}.cleanslate ol,.cleanslate ul{margin:1em 0!important}.cleanslate ol li,.cleanslate ol ol li,.cleanslate ol ol ol li,.cleanslate ol ol ul li,.cleanslate ol ul ul li,.cleanslate ul li,.cleanslate ul ol ol li,.cleanslate ul ul li,.cleanslate ul ul ol li,.cleanslate ul ul ul li{list-style-position:inside!important;margin-top:.08em!important}.cleanslate ol ol,.cleanslate ol ol ol,.cleanslate ol ol ul,.cleanslate ol ul,.cleanslate ol ul ul,.cleanslate ul ol,.cleanslate ul ol ol,.cleanslate ul ul,.cleanslate ul ul ol,.cleanslate ul ul ul{padding-left:40px!important;margin:0!important}.cleanslate nav ol,.cleanslate nav ul{list-style-type:none!important}.cleanslate menu,.cleanslate ul{list-style-type:disc!important}.cleanslate ol{list-style-type:decimal!important}.cleanslate menu menu,.cleanslate menu ul,.cleanslate ol menu,.cleanslate ol ul,.cleanslate ul menu,.cleanslate ul ul{list-style-type:circle!important}.cleanslate menu menu menu,.cleanslate menu menu ul,.cleanslate menu ol menu,.cleanslate menu ol ul,.cleanslate menu ul menu,.cleanslate menu ul ul,.cleanslate ol menu menu,.cleanslate ol menu ul,.cleanslate ol ol menu,.cleanslate ol ol ul,.cleanslate ol ul menu,.cleanslate ol ul ul,.cleanslate ul menu menu,.cleanslate ul menu ul,.cleanslate ul ol menu,.cleanslate ul ol ul,.cleanslate ul ul menu,.cleanslate ul ul ul{list-style-type:square!important}.cleanslate li{display:list-item!important;min-height:auto!important;min-width:auto!important;padding-left:20px!important}.cleanslate strong{font-weight:700!important}.cleanslate em{font-style:italic!important}.cleanslate code,.cleanslate kbd,.cleanslate pre,.cleanslate samp{font-family:monospace!important}.cleanslate a{color:#00f!important;text-decoration:underline!important}.cleanslate a:visited{color:#529!important}.cleanslate a,.cleanslate a *,.cleanslate button,.cleanslate input[type=button],.cleanslate input[type=checkbox],.cleanslate input[type=radio],.cleanslate input[type=submit],.cleanslate select{cursor:pointer!important}.cleanslate button,.cleanslate input[type=submit]{text-align:center!important;padding:2px 6px 3px!important;border-radius:4px!important;text-decoration:none!important;font-family:inherit!important;font-size:small!important;background:#fff!important;-webkit-appearance:push-button!important;color:buttontext!important;border:1px #a6a6a6 solid!important;background:#d3d3d3!important;background:#fff;background:linear-gradient(to bottom,#fff 0,#ddd 100%,#d1d1d1 100%,#ddd 100%)!important;-o-box-shadow:1px 1px 0 #eee!important;box-shadow:1px 1px 0 #eee!important;outline:initial!important}.cleanslate button:active,.cleanslate input[type=button]:active,.cleanslate input[type=submit]:active{background:#3b679e!important;background:linear-gradient(to bottom,#3b679e 0,#2b88d9 50%,#207cca 51%,#7db9e8 100%)!important;border-color:#5259b0!important}.cleanslate button{padding:1px 6px 2px 6px!important;margin-right:5px!important}.cleanslate input[type=hidden]{display:none!important}.cleanslate textarea{-webkit-appearance:textarea!important;background:#fff!important;padding:2px!important;margin-left:4px!important;word-wrap:break-word!important;white-space:pre-wrap!important;font-size:11px!important;font-family:inherit!important;line-height:13px!important;resize:both!important}.cleanslate input,.cleanslate select,.cleanslate textarea{border:1px solid #ccc!important}.cleanslate select{font-size:11px!important;font-family:inherit!important;display:inline-block}.cleanslate input:focus,.cleanslate textarea:focus{outline:auto 5px -webkit-focus-ring-color!important;outline:initial!important}.cleanslate input[type=text]{background:#fff!important;padding:1px!important;font-family:initial!important;font-size:small!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{border:1px #2b2b2b solid!important;border-radius:4px!important}.cleanslate input[type=checkbox],.cleanslate input[type=radio]{outline:initial!important}.cleanslate input[type=radio]{margin:2px 2px 3px 2px!important}.cleanslate abbr[title],.cleanslate acronym[title],.cleanslate dfn[title]{cursor:help!important;border-bottom-width:1px!important;border-bottom-style:dotted!important}.cleanslate ins{background-color:#ff9!important;color:#000!important}.cleanslate del{text-decoration:line-through!important}.cleanslate blockquote,.cleanslate q{quotes:none!important}.cleanslate blockquote:after,.cleanslate blockquote:before,.cleanslate li:after,.cleanslate li:before,.cleanslate q:after,.cleanslate q:before{content:""!important}.cleanslate input,.cleanslate select{vertical-align:middle!important}.cleanslate table{border-collapse:collapse!important;border-spacing:0!important}.cleanslate hr{display:block!important;height:1px!important;border:0!important;border-top:1px solid #ccc!important;margin:1em 0!important}.cleanslate [dir=rtl]{direction:rtl!important}.cleanslate mark{background-color:#ff9!important;color:#000!important;font-style:italic!important;font-weight:700!important}.cleanslate menu{padding-left:40px!important;padding-top:8px!important}.cleanslate [hidden],.cleanslate template{display:none!important}.cleanslate abbr[title]{border-bottom:1px dotted!important}.cleanslate sub,.cleanslate sup{font-size:75%!important;line-height:0!important;position:relative!important;vertical-align:baseline!important}.cleanslate sup{top:-.5em!important}.cleanslate sub{bottom:-.25em!important}.cleanslate img{border:0!important}.cleanslate figure{margin:0!important}.cleanslate textarea{overflow:auto!important;vertical-align:top!important}.cleanslate{font-size:medium!important;line-height:1!important;direction:ltr!important;text-align:left!important;text-align:start!important;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif!important;color:#000!important;font-style:normal!important;font-weight:400!important;text-decoration:none!important;list-style-type:disc!important}.cleanslate pre{white-space:pre!important}@media (max-width:599px){body.admin-bar .cleanslate .components-modal__frame{top:46px!important}}.cleanslate .ccpa__loading-overlay,.cleanslate .components-modal__screen-overlay{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background-color:rgba(0,0,0,.7)!important;z-index:2147483647!important;animation:edit-post__fade-in-animation .2s ease-out 0s!important;animation-fill-mode:forwards!important}.cleanslate .components-modal__frame{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;box-sizing:border-box!important;margin:0!important;border:1px solid #e2e4e7!important;background:#fff!important;box-shadow:0 3px 30px rgba(25,30,35,.2)!important;overflow:auto!important}.cleanslate .ccpa__loading-message{position:absolute!important;top:50%!important;right:0!important;bottom:0!important;left:0!important;box-sizing:border-box!important;margin:0!important;text-align:center!important;color:#fff!important}@media (min-width:600px){.cleanslate .components-modal__frame{top:50%!important;right:auto!important;bottom:auto!important;left:50%!important;min-width:360px!important;max-width:580px!important;max-height:calc(100% - 56px - 56px)!important;transform:translate(-50%,-50%)!important;animation:components-modal__appear-animation .1s ease-out!important;animation-fill-mode:forwards!important}}@keyframes components-modal__appear-animation{from{margin-top:32px!important}to{margin-top:0!important}}.cleanslate .components-modal__header{box-sizing:border-box!important;border-bottom:1px solid #e2e4e7!important;padding:0 16px!important;display:flex!important;flex-direction:row!important;justify-content:space-between!important;background:#fff!important;align-items:center!important;height:56px!important;position:sticky!important;top:0!important;z-index:10!important;margin:0 -16px 16px!important}.cleanslate .components-modal__header .components-modal__header-heading{font-size:16px!important;font-weight:600!important}.cleanslate .components-modal__header h1{line-height:1!important;margin:0!important}.cleanslate .components-modal__header-heading-container{align-items:center!important;flex-grow:1!important;display:flex!important;flex-direction:row!important;justify-content:left!important}.cleanslate .components-modal__content{box-sizing:border-box!important;height:100%!important;padding:0 16px!important}.cleanslate .components-modal__footer{box-sizing:border-box!important;border-top:1px solid #e2e4e7!important;padding:0 16px!important;background:#fff!important;height:110px!important;position:sticky!important;bottom:0!important;z-index:10!important;margin:0 -16px!important}.cleanslate .components-modal__footer-bottom{display:flex!important;flex-direction:row-reverse!important;justify-content:space-between!important;align-items:center!important}.cleanslate .components-button{display:inline-flex!important;text-decoration:none!important;font-size:13px!important;margin:0!important;border:0!important;cursor:pointer!important;-webkit-appearance:none!important;background:0 0!important}.cleanslate .components-icon-button{display:flex!important;align-items:center!important;padding:8px!important;margin:0!important;border:none!important;background:0 0!important;color:#50575e!important;position:relative!important;overflow:hidden!important;border-radius:4px!important;box-shadow:none!important;outline:0!important}.cleanslate .components-icon-button:active{background:0 0!important}.cleanslate .components-icon-button .dashicon{display:inline-block!important;flex:0 0 auto!important}.cleanslate .components-icon-button svg{fill:currentColor!important;outline:0!important;cursor:pointer!important}.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):focus,.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{background-color:#fff!important;color:#1d2327!important;box-shadow:inset 0 0 0 1px #e2e4e7,inset 0 0 0 2px #fff,0 1px 1px rgba(25,30,35,.2)!important}.cleanslate .components-icon-button:not(:disabled):not([aria-disabled=true]):not(.is-default):active{outline:0!important;background-color:#fff!important;color:#1d2327!important;box-shadow:inset 0 0 0 1px #c3c4c7,inset 0 0 0 2px #fff!important}.cleanslate .components-icon-button:disabled:focus,.cleanslate .components-icon-button[aria-disabled=true]:focus{box-shadow:none!important}.cleanslate .components-form-toggle{position:relative!important;display:inline-block!important}.cleanslate .components-form-toggle.disabled{opacity:.5!important}.cleanslate .components-form-toggle .components-form-toggle__off,.cleanslate .components-form-toggle .components-form-toggle__on{position:absolute!important;top:6px!important;box-sizing:border-box!important;width:2px!important;height:6px!important;overflow:hidden!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__on{display:block!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__off{display:none!important}.cleanslate .components-form-toggle .components-form-toggle__off{color:#787c82!important;fill:currentColor!important;right:6px!important;width:6px!important}.cleanslate .components-form-toggle .components-form-toggle__on{left:8px!important;display:none!important}.cleanslate .components-form-toggle .components-form-toggle__track{content:""!important;display:inline-block!important;box-sizing:border-box!important;vertical-align:top!important;background-color:#fff!important;border:2px solid #787c82!important;width:36px!important;height:18px!important;border-radius:9px!important;transition:.2s background ease!important}@media (prefers-reduced-motion:reduce){.cleanslate .components-form-toggle .components-form-toggle__track{transition-duration:0s!important}}.cleanslate .components-form-toggle .components-form-toggle__thumb{display:block!important;position:absolute!important;box-sizing:border-box!important;top:4px!important;left:4px!important;width:10px!important;height:10px!important;border-radius:50%!important;transition:.1s transform ease!important;background-color:#787c82!important;border:5px solid #787c82!important}@media (prefers-reduced-motion:reduce){.cleanslate .components-form-toggle .components-form-toggle__thumb{transition-duration:0s!important}}.cleanslate .components-form-toggle:hover .components-form-toggle__track{border:2px solid #50575e!important}.cleanslate .components-form-toggle:hover .components-form-toggle__thumb{background-color:#50575e!important;border:5px solid #787c82!important}.cleanslate .components-form-toggle:hover .components-form-toggle__off{color:#50575e!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__track{background-color:#11a0d2!important;border:2px solid #11a0d2!important;border:9px solid transparent!important}.cleanslate .components-form-toggle__input:focus+.components-form-toggle__track{box-shadow:0 0 0 2px #fff,0 0 0 3px #787c82!important;outline:2px solid transparent!important;outline-offset:2px!important}.cleanslate .components-form-toggle.is-checked .components-form-toggle__thumb{background-color:#fff!important;border-width:0!important;transform:translateX(18px)!important}.cleanslate .components-form-toggle.is-checked::before{background-color:#11a0d2!important;border:2px solid #11a0d2!important}.cleanslate .components-disabled .components-form-toggle{opacity:.3!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;opacity:0!important;margin:0!important;padding:0!important;z-index:1!important;border:none!important}.cleanslate .components-form-toggle.disabled input.components-form-toggle__input[type=checkbox]{cursor:default!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]:checked{background:0 0!important}.cleanslate .components-form-toggle input.components-form-toggle__input[type=checkbox]::before{content:""!important}.cleanslate .components-form-toggle .components-form-toggle__on{outline:1px solid transparent!important;outline-offset:-1px!important;border:1px solid #000!important;filter:invert(100%) contrast(500%)!important}.cleanslate .components-button{display:inline-flex!important;text-decoration:none!important;font-size:13px!important;margin:0!important;border:0!important;cursor:pointer!important;-webkit-appearance:none!important;background:0 0!important}.cleanslate .components-button.is-button{padding:0 10px 1px!important;line-height:26px!important;height:28px!important;border-radius:3px!important;white-space:nowrap!important;border-width:1px!important;border-style:solid!important}.cleanslate .components-button.is-primary{background:#0085ba!important;border-color:#006a95 #00648c #00648c!important;box-shadow:inset 0 -1px 0 #00648c!important;color:#fff!important;text-decoration:none!important;text-shadow:0 -1px 1px #005d82,1px 0 1px #005d82,0 1px 1px #005d82,-1px 0 1px #005d82!important}.cleanslate .components-button.is-primary:focus:enabled,.cleanslate .components-button.is-primary:hover{background:#007eb1!important;border-color:#00435d!important;color:#fff!important}.cleanslate .components-button.is-primary:hover{box-shadow:inset 0 -1px 0 #00435d!important}.cleanslate .components-button.is-primary:active:enabled{background:#006a95!important;border-color:#00435d!important;box-shadow:inset 0 1px 0 #00435d!important;vertical-align:top!important}.cleanslate .components-button.is-primary:disabled,.cleanslate .components-button.is-primary:disabled:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true],.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled{color:#66b6d6!important;background:#0085ba!important;border-color:#007cad!important;box-shadow:none!important;text-shadow:none!important;opacity:1!important}.cleanslate .components-button.is-primary:disabled.is-button,.cleanslate .components-button.is-primary:disabled.is-button:hover,.cleanslate .components-button.is-primary:disabled:active:enabled,.cleanslate .components-button.is-primary:disabled:active:enabled.is-button,.cleanslate .components-button.is-primary:disabled:active:enabled.is-button:hover,.cleanslate .components-button.is-primary:disabled:active:enabled:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true].is-button,.cleanslate .components-button.is-primary[aria-disabled=true].is-button:hover,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled.is-button:hover,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:active:enabled{box-shadow:none!important;text-shadow:none!important}.cleanslate .components-button.is-primary:disabled:active:enabled:focus:enabled,.cleanslate .components-button.is-primary:disabled:focus:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:active:enabled:focus:enabled,.cleanslate .components-button.is-primary[aria-disabled=true]:focus:enabled{color:#66b6d6!important;border-color:#007cad!important;box-shadow:0 0 0 1px #fff,0 0 0 3px #007cba!important}.cleanslate .ccpa-settings{font-size:13px!important;line-height:20px!important;color:#1a1a1a!important;border-bottom:1px solid #e2e4e7!important}.cleanslate .ccpa-setting{margin:0 -16px 10px -16px!important;padding:16px!important;border-bottom:1px solid #e2e4e7!important}.cleanslate .ccpa-setting__header{font-weight:700!important}.cleanslate .ccpa-setting__text{padding-right:50px!important}.cleanslate .ccpa-setting__toggle{float:right!important}.cleanslate .ccpa-setting__toggle-text{float:right!important;margin-right:8px!important;margin-top:-2px!important;display:none!important}.cleanslate .ccpa-setting__toggle-text-off{display:inline-block!important}.cleanslate .is-checked>.ccpa-setting__toggle-text-off{display:none!important}.cleanslate .is-checked>.ccpa-setting__toggle-text-on{display:inline-block!important}.cleanslate .ccpa-privacy,.cleanslate .ccpa-privacy:visited{color:#0085ba!important;text-decoration:none!important} \ No newline at end of file
diff --git a/plugins/jetpack/extensions/blocks/amazon/amazon.php b/plugins/jetpack/extensions/blocks/amazon/amazon.php
index a368ab79..53af15d6 100644
--- a/plugins/jetpack/extensions/blocks/amazon/amazon.php
+++ b/plugins/jetpack/extensions/blocks/amazon/amazon.php
@@ -4,13 +4,29 @@
*
* @since 8.x
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/amazon',
- array( 'render_callback' => 'jetpack_amazon_block_load_assets' )
-);
+namespace Automattic\Jetpack\Extensions\Amazon;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'amazon';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Amazon block registration/dependency declaration.
@@ -20,7 +36,7 @@ jetpack_register_block(
*
* @return string
*/
-function jetpack_amazon_block_load_assets( $attr, $content ) {
- Jetpack_Gutenberg::load_assets_as_required( 'amazon' );
+function load_assets( $attr, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
return $content;
}
diff --git a/plugins/jetpack/extensions/blocks/anchor-fm/anchor-fm.php b/plugins/jetpack/extensions/blocks/anchor-fm/anchor-fm.php
new file mode 100644
index 00000000..f3e0bafe
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/anchor-fm/anchor-fm.php
@@ -0,0 +1,191 @@
+<?php
+/**
+ * Anchor.fm integration.
+ *
+ * @since 9.3.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\AnchorFm;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Blocks;
+use Jetpack_Podcast_Helper;
+
+const FEATURE_NAME = 'anchor-fm';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+if ( ! class_exists( 'Jetpack_Podcast_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-podcast-helper' );
+}
+
+/**
+ * Registers Anchor.fm integration for the block editor.
+ */
+function register_extension() {
+ Blocks::jetpack_register_block( BLOCK_NAME );
+
+ // Register post_meta for connecting Anchor podcasts with posts.
+ register_post_meta(
+ 'post',
+ 'jetpack_anchor_podcast',
+ array(
+ 'show_in_rest' => true,
+ 'single' => true,
+ 'type' => 'string',
+ )
+ );
+ register_post_meta(
+ 'post',
+ 'jetpack_anchor_episode',
+ array(
+ 'show_in_rest' => true,
+ 'single' => true,
+ 'type' => 'string',
+ )
+ );
+ register_post_meta(
+ 'post',
+ 'jetpack_anchor_spotify_show',
+ array(
+ 'show_in_rest' => true,
+ 'single' => true,
+ 'type' => 'string',
+ )
+ );
+}
+
+/**
+ * Checks URL params to determine the Anchor integration action to perform.
+ */
+function process_anchor_params() {
+ if (
+ ! function_exists( 'get_current_screen' )
+ || is_null( \get_current_screen() )
+ ) {
+ return;
+ }
+
+ // Return early if we are not in the block editor.
+ if ( ! wp_should_load_block_editor_scripts_and_styles() ) {
+ return;
+ }
+
+ $post = get_post();
+ if ( ! $post || ! $post->ID ) {
+ return;
+ }
+
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ $podcast_id = isset( $_GET['anchor_podcast'] ) ? sanitize_text_field( wp_unslash( $_GET['anchor_podcast'] ) ) : null;
+ $episode_id = isset( $_GET['anchor_episode'] ) ? sanitize_text_field( wp_unslash( $_GET['anchor_episode'] ) ) : null;
+ $spotify_url = isset( $_GET['spotify_url'] ) ? wp_unslash( $_GET['spotify_url'] ) : null;
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ $data = array(
+ 'actions' => array(),
+ );
+
+ // add / update Spotify Badge URL.
+ $valid_spotify_url = \Jetpack_Gutenberg::validate_block_embed_url( $spotify_url, array( 'open.spotify.com' ) );
+ if ( $valid_spotify_url ) {
+ $data['spotifyShowUrl'] = $valid_spotify_url;
+ if ( get_post_meta( $post->ID, 'jetpack_anchor_spotify_show', true ) !== $valid_spotify_url ) {
+ update_post_meta( $post->ID, 'jetpack_anchor_spotify_show', $valid_spotify_url );
+ }
+ }
+
+ if ( ! empty( $podcast_id ) ) {
+ $feed = 'https://anchor.fm/s/' . $podcast_id . '/podcast/rss';
+ $podcast_helper = new Jetpack_Podcast_Helper( $feed );
+ $rss = $podcast_helper->load_feed();
+ if ( ! \is_wp_error( $rss ) ) {
+ update_post_meta( $post->ID, 'jetpack_anchor_podcast', $podcast_id );
+
+ // If we haven't got an episode ID, try and get the latest episode.
+ if ( empty( $episode_id ) && $rss->get_item_quantity() ) {
+ $latest_episode = $rss->get_item( 0 );
+ if ( $latest_episode ) {
+ $episode_id = $latest_episode->get_id();
+ }
+ }
+
+ if ( ! empty( $episode_id ) ) {
+ $track = $podcast_helper->get_track_data( $episode_id, true );
+ if ( ! \is_wp_error( $track ) ) {
+ update_post_meta( $post->ID, 'jetpack_anchor_episode', $track['guid'] );
+
+ if ( 'post-new.php' === $GLOBALS['pagenow'] ) {
+ $data['actions'][] = array(
+ 'set-episode-title',
+ array(
+ 'title' => $track['title'],
+ ),
+ );
+
+ $self_links = $rss->get_links( 'self' );
+ $cover = $rss->get_image_url();
+
+ // Add insert basic template action.
+ $data['actions'][] = array(
+ 'insert-episode-template',
+ array(
+ 'feedUrl' => ! empty( $self_links ) ? esc_url_raw( $self_links[0] ) : $feed,
+ 'coverImage' => ! empty( $cover ) ? esc_url( $cover ) : null,
+ 'episodeTrack' => $track,
+ 'spotifyImageUrl' => Assets::staticize_subdomain( 'https://wordpress.com/i/spotify-badge.svg' ),
+ 'spotifyShowUrl' => esc_url_raw( $valid_spotify_url ),
+ ),
+ );
+ }
+ } else {
+ $retry_url = add_query_arg(
+ array(
+ 'anchor_episode' => $episode_id,
+ 'anchor_podcast' => $podcast_id,
+ 'spotify_url' => $valid_spotify_url ? rawurlencode( $spotify_url ) : false,
+ ),
+ admin_url( 'post-new.php' )
+ );
+ $data['actions'][] = array(
+ 'create-episode-error-notice',
+ array(
+ 'retry_url' => esc_url_raw( $retry_url ),
+ ),
+ );
+ }
+ }
+ }
+ }
+
+ // Add Spotify Badge template action.
+ if (
+ $valid_spotify_url && (
+ 'post-new.php' !== $GLOBALS['pagenow'] // Delegate badge insertion to podcast template.
+ )
+ ) {
+ $data['actions'][] = array(
+ 'insert-spotify-badge',
+ array(
+ 'spotifyImageUrl' => Assets::staticize_subdomain( 'https://wordpress.com/i/spotify-badge.svg' ),
+ 'spotifyShowUrl' => esc_url_raw( $valid_spotify_url ),
+ ),
+ );
+ }
+
+ // Display an outbound link after publishing a post (only to English-speaking users since Anchor
+ // is English only).
+ if (
+ 'post' === get_post_type() &&
+ ! get_post_meta( $post->ID, 'jetpack_anchor_spotify_show', true ) &&
+ 0 === strpos( get_user_locale(), 'en' )
+ ) {
+ $data['actions'][] = 'show-post-publish-outbound-link';
+ }
+
+ wp_localize_script( 'jetpack-blocks-editor', 'Jetpack_AnchorFm', $data );
+}
+
+add_action( 'init', __NAMESPACE__ . '\register_extension' );
+add_action( 'enqueue_block_assets', __NAMESPACE__ . '\process_anchor_params' );
diff --git a/plugins/jetpack/extensions/blocks/business-hours/business-hours.php b/plugins/jetpack/extensions/blocks/business-hours/business-hours.php
index d3afa01d..4de0593a 100644
--- a/plugins/jetpack/extensions/blocks/business-hours/business-hours.php
+++ b/plugins/jetpack/extensions/blocks/business-hours/business-hours.php
@@ -4,20 +4,36 @@
*
* @since 7.1.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/business-hours',
- array( 'render_callback' => 'jetpack_business_hours_render' )
-);
+namespace Automattic\Jetpack\Extensions\Business_Hours;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'business-hours';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Get's default days / hours to render a business hour block with no data provided.
*
* @return array
*/
-function jetpack_business_hours_get_default_days() {
+function get_default_days() {
return array(
array(
'name' => 'Sun',
@@ -82,11 +98,11 @@ function jetpack_business_hours_get_default_days() {
*
* @return string
*/
-function jetpack_business_hours_render( $attributes ) {
+function render( $attributes ) {
global $wp_locale;
if ( empty( $attributes['days'] ) || ! is_array( $attributes['days'] ) ) {
- $attributes['days'] = jetpack_business_hours_get_default_days();
+ $attributes['days'] = get_default_days();
}
$start_of_week = (int) get_option( 'start_of_week', 0 );
@@ -119,8 +135,8 @@ function jetpack_business_hours_render( $attributes ) {
}
$days_hours .= sprintf(
'%1$s - %2$s',
- date( $time_format, $opening ),
- date( $time_format, $closing )
+ gmdate( $time_format, $opening ),
+ gmdate( $time_format, $closing )
);
if ( $key + 1 < count( $day['hours'] ) ) {
$days_hours .= ', ';
@@ -136,7 +152,7 @@ function jetpack_business_hours_render( $attributes ) {
$content .= '</dl>';
- Jetpack_Gutenberg::load_assets_as_required( 'business-hours' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
/**
* Allows folks to filter the HTML content for the Business Hours block
diff --git a/plugins/jetpack/extensions/blocks/button/button.php b/plugins/jetpack/extensions/blocks/button/button.php
new file mode 100644
index 00000000..451a2938
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/button/button.php
@@ -0,0 +1,244 @@
+<?php
+/**
+ * Button Block.
+ *
+ * @since 8.5.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Button;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'button';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Button block render callback.
+ *
+ * @param array $attributes Array containing the Button block attributes.
+ * @param string $content The Button block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ $save_in_post_content = get_attribute( $attributes, 'saveInPostContent' );
+
+ // The Jetpack Button block depends on the core button block styles.
+ // The following ensures that those styles are enqueued when rendering this block.
+ enqueue_existing_button_style_dependency( 'core/button' );
+ enqueue_existing_button_style_dependency( 'core/buttons' );
+
+ Jetpack_Gutenberg::load_styles_as_required( FEATURE_NAME );
+
+ if ( $save_in_post_content || ! class_exists( 'DOMDocument' ) ) {
+ return $content;
+ }
+
+ $element = get_attribute( $attributes, 'element' );
+ $text = get_attribute( $attributes, 'text' );
+ $unique_id = get_attribute( $attributes, 'uniqueId' );
+ $url = get_attribute( $attributes, 'url' );
+ $classes = Blocks::classes( FEATURE_NAME, $attributes, array( 'wp-block-button' ) );
+
+ $button_classes = get_button_classes( $attributes );
+ $button_styles = get_button_styles( $attributes );
+ $wrapper_styles = get_button_wrapper_styles( $attributes );
+
+ $wrapper_attributes = sprintf( ' class="%s" style="%s"', esc_attr( $classes ), esc_attr( $wrapper_styles ) );
+ $button_attributes = sprintf( ' class="%s" style="%s"', esc_attr( $button_classes ), esc_attr( $button_styles ) );
+
+ if ( empty( $unique_id ) ) {
+ $button_attributes .= ' data-id-attr="placeholder"';
+ } else {
+ $button_attributes .= sprintf( ' data-id-attr="%1$s" id="%1$s"', esc_attr( $unique_id ) );
+ }
+
+ if ( 'a' === $element ) {
+ $button_attributes .= sprintf( ' href="%s" target="_blank" role="button" rel="noopener noreferrer"', esc_url( $url ) );
+ } elseif ( 'button' === $element ) {
+ $button_attributes .= ' type="submit"';
+ } elseif ( 'input' === $element ) {
+ $button_attributes .= sprintf( ' type="submit" value="%s"', wp_strip_all_tags( $text, true ) );
+ }
+
+ $button = 'input' === $element
+ ? '<' . $element . $button_attributes . ' />'
+ : '<' . $element . $button_attributes . '>' . $text . '</' . $element . '>';
+
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ return '<div' . $wrapper_attributes . '>' . $button . '</div>';
+}
+
+/**
+ * Get the Button block classes.
+ *
+ * @param array $attributes Array containing the block attributes.
+ *
+ * @return string
+ */
+function get_button_classes( $attributes ) {
+ $classes = array( 'wp-block-button__link' );
+ $has_class_name = array_key_exists( 'className', $attributes );
+ $has_named_text_color = array_key_exists( 'textColor', $attributes );
+ $has_custom_text_color = array_key_exists( 'customTextColor', $attributes );
+ $has_named_background_color = array_key_exists( 'backgroundColor', $attributes );
+ $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes );
+ $has_named_gradient = array_key_exists( 'gradient', $attributes );
+ $has_custom_gradient = array_key_exists( 'customGradient', $attributes );
+ $has_border_radius = array_key_exists( 'borderRadius', $attributes );
+
+ if ( $has_class_name ) {
+ $classes[] = $attributes['className'];
+ }
+
+ if ( $has_named_text_color || $has_custom_text_color ) {
+ $classes[] = 'has-text-color';
+ }
+ if ( $has_named_text_color ) {
+ $classes[] = sprintf( 'has-%s-color', $attributes['textColor'] );
+ }
+
+ if (
+ $has_named_background_color ||
+ $has_custom_background_color ||
+ $has_named_gradient ||
+ $has_custom_gradient
+ ) {
+ $classes[] = 'has-background';
+ }
+ if ( $has_named_background_color && ! $has_custom_gradient ) {
+ $classes[] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] );
+ }
+ if ( $has_named_gradient ) {
+ $classes[] = sprintf( 'has-%s-gradient-background', $attributes['gradient'] );
+ }
+
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ if ( $has_border_radius && 0 == $attributes['borderRadius'] ) {
+ $classes[] = 'no-border-radius';
+ }
+
+ return implode( ' ', $classes );
+}
+
+/**
+ * Get the Button block styles.
+ *
+ * @param array $attributes Array containing the block attributes.
+ *
+ * @return string
+ */
+function get_button_styles( $attributes ) {
+ $styles = array();
+ $has_named_text_color = array_key_exists( 'textColor', $attributes );
+ $has_custom_text_color = array_key_exists( 'customTextColor', $attributes );
+ $has_named_background_color = array_key_exists( 'backgroundColor', $attributes );
+ $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes );
+ $has_named_gradient = array_key_exists( 'gradient', $attributes );
+ $has_custom_gradient = array_key_exists( 'customGradient', $attributes );
+ $has_border_radius = array_key_exists( 'borderRadius', $attributes );
+ $has_width = array_key_exists( 'width', $attributes );
+
+ if ( ! $has_named_text_color && $has_custom_text_color ) {
+ $styles[] = sprintf( 'color: %s;', $attributes['customTextColor'] );
+ }
+
+ if ( ! $has_named_background_color && ! $has_named_gradient && $has_custom_gradient ) {
+ $styles[] = sprintf( 'background: %s;', $attributes['customGradient'] );
+ }
+
+ if (
+ $has_custom_background_color &&
+ ! $has_named_background_color &&
+ ! $has_named_gradient &&
+ ! $has_custom_gradient
+ ) {
+ $styles[] = sprintf( 'background-color: %s;', $attributes['customBackgroundColor'] );
+ }
+
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ if ( $has_border_radius && 0 != $attributes['borderRadius'] ) {
+ $styles[] = sprintf( 'border-radius: %spx;', $attributes['borderRadius'] );
+ }
+
+ if ( $has_width ) {
+ $styles[] = sprintf( 'width: %s;', $attributes['width'] );
+ $styles[] = 'max-width: 100%';
+ }
+
+ return implode( ' ', $styles );
+}
+
+/**
+ * Get the Button wrapper block styles.
+ *
+ * @param array $attributes Array containing the block attributes.
+ *
+ * @return string
+ */
+function get_button_wrapper_styles( $attributes ) {
+ $styles = array();
+ $has_width = array_key_exists( 'width', $attributes );
+
+ if ( $has_width ) {
+ $styles[] = 'max-width: 100%';
+ }
+
+ return implode( ' ', $styles );
+}
+
+/**
+ * Get filtered attributes.
+ *
+ * @param array $attributes Array containing the Button block attributes.
+ * @param string $attribute_name String containing the attribute name to get.
+ *
+ * @return string
+ */
+function get_attribute( $attributes, $attribute_name ) {
+ if ( isset( $attributes[ $attribute_name ] ) ) {
+ return $attributes[ $attribute_name ];
+ }
+
+ $default_attributes = array(
+ 'url' => '#',
+ 'element' => 'a',
+ 'saveInPostContent' => false,
+ );
+
+ if ( isset( $default_attributes[ $attribute_name ] ) ) {
+ return $default_attributes[ $attribute_name ];
+ }
+}
+
+/**
+ * Enqueue style for an existing block.
+ *
+ * The Jetpack Button block depends on styles from the core button block.
+ * In case that block is not already within the post content, we can use
+ * this function to ensure the block's style assets are enqueued.
+ *
+ * @param string $block_name Block type name including namespace.
+ */
+function enqueue_existing_button_style_dependency( $block_name ) {
+ $existing_block = \WP_Block_Type_Registry::get_instance()->get_registered( $block_name );
+ if ( isset( $existing_block ) && ! empty( $existing_block->style ) ) {
+ wp_enqueue_style( $existing_block->style );
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/calendly/calendly.php b/plugins/jetpack/extensions/blocks/calendly/calendly.php
index 0875a04e..42653ff5 100644
--- a/plugins/jetpack/extensions/blocks/calendly/calendly.php
+++ b/plugins/jetpack/extensions/blocks/calendly/calendly.php
@@ -4,71 +4,32 @@
*
* @since 8.2.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-namespace Jetpack\Calendly_Block;
+namespace Automattic\Jetpack\Extensions\Calendly;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
const FEATURE_NAME = 'calendly';
const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
/**
- * Check if the block should be available on the site.
- *
- * @return bool
- */
-function is_available() {
- if (
- defined( 'IS_WPCOM' )
- && IS_WPCOM
- && function_exists( 'has_any_blog_stickers' )
- ) {
- if ( has_any_blog_stickers(
- array( 'premium-plan', 'business-plan', 'ecommerce-plan' ),
- get_current_blog_id()
- ) ) {
- return true;
- }
- return false;
- }
-
- return true;
-}
-
-/**
* Registers the block for use in Gutenberg
* This is done via an action so that we can disable
* registration if we need to.
*/
function register_block() {
- if ( is_available() ) {
- jetpack_register_block(
- BLOCK_NAME,
- array( 'render_callback' => 'Jetpack\Calendly_Block\load_assets' )
- );
- }
-}
-add_action( 'init', 'Jetpack\Calendly_Block\register_block' );
-
-/**
- * Set the availability of the block as the editor
- * is loaded
- */
-function set_availability() {
- if ( is_available() ) {
- \Jetpack_Gutenberg::set_extension_available( BLOCK_NAME );
- } else {
- \Jetpack_Gutenberg::set_extension_unavailable(
- BLOCK_NAME,
- 'missing_plan',
- array(
- 'required_feature' => 'calendly',
- 'required_plan' => 'value_bundle',
- )
- );
- }
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\load_assets',
+ 'plan_check' => true,
+ )
+ );
}
-add_action( 'init', 'Jetpack\Calendly_Block\set_availability' );
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Calendly block registration/dependency declaration.
@@ -79,7 +40,14 @@ add_action( 'init', 'Jetpack\Calendly_Block\set_availability' );
* @return string
*/
function load_assets( $attr, $content ) {
- $url = get_attribute( $attr, 'url' );
+
+ if ( is_admin() ) {
+ return;
+ }
+ $url = Jetpack_Gutenberg::validate_block_embed_url(
+ get_attribute( $attr, 'url' ),
+ array( 'calendly.com' )
+ );
if ( empty( $url ) ) {
return;
}
@@ -87,27 +55,23 @@ function load_assets( $attr, $content ) {
/*
* Enqueue necessary scripts and styles.
*/
- \Jetpack_Gutenberg::load_assets_as_required( 'calendly' );
- wp_enqueue_script(
- 'jetpack-calendly-external-js',
- 'https://assets.calendly.com/assets/external/widget.js',
- null,
- JETPACK__VERSION,
- false
- );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
- $style = get_attribute( $attr, 'style' );
- $hide_event_type_details = get_attribute( $attr, 'hideEventTypeDetails' );
- $background_color = get_attribute( $attr, 'backgroundColor' );
- $text_color = get_attribute( $attr, 'textColor' );
- $primary_color = get_attribute( $attr, 'primaryColor' );
- $submit_button_text = get_attribute( $attr, 'submitButtonText' );
- $submit_button_text_color = get_attribute( $attr, 'customTextButtonColor' );
- $submit_button_background_color = get_attribute( $attr, 'customBackgroundButtonColor' );
- $classes = \Jetpack_Gutenberg::block_classes( 'calendly', $attr );
- $block_id = wp_unique_id( 'calendly-block-' );
-
- $url = add_query_arg(
+ $style = get_attribute( $attr, 'style' );
+ $hide_event_type_details = get_attribute( $attr, 'hideEventTypeDetails' );
+ $background_color = get_attribute( $attr, 'backgroundColor' );
+ $text_color = get_attribute( $attr, 'textColor' );
+ $primary_color = get_attribute( $attr, 'primaryColor' );
+ $classes = Blocks::classes( FEATURE_NAME, $attr, array( 'calendly-style-' . $style ) );
+ $block_id = wp_unique_id( 'calendly-block-' );
+ $is_amp_request = Blocks::is_amp_request();
+
+ if ( ! wp_script_is( 'jetpack-calendly-external-js' ) && ! $is_amp_request ) {
+ enqueue_calendly_js();
+ }
+
+ $base_url = $url;
+ $url = add_query_arg(
array(
'hide_event_type_details' => (int) $hide_event_type_details,
'background_color' => sanitize_hex_color_no_hash( $background_color ),
@@ -118,40 +82,44 @@ function load_assets( $attr, $content ) {
);
if ( 'link' === $style ) {
- wp_enqueue_style( 'jetpack-calendly-external-css', 'https://assets.calendly.com/assets/external/widget.css', null, JETPACK__VERSION );
-
- /*
- * If we have some additional styles from the editor
- * (a custom text color, custom bg color, or both )
- * Let's add that CSS inline.
- */
- if ( ! empty( $submit_button_text_color ) || ! empty( $submit_button_background_color ) ) {
- $inline_styles = sprintf(
- '#%1$s .wp-block-button__link{%2$s%3$s}',
- esc_attr( $block_id ),
- ! empty( $submit_button_text_color )
- ? 'color:#' . sanitize_hex_color_no_hash( $submit_button_text_color ) . ';'
- : '',
- ! empty( $submit_button_background_color )
- ? 'background-color:#' . sanitize_hex_color_no_hash( $submit_button_background_color ) . ';'
- : ''
- );
- wp_add_inline_style( 'jetpack-calendly-external-css', $inline_styles );
+ if ( ! wp_style_is( 'jetpack-calendly-external-css' ) ) {
+ wp_enqueue_style( 'jetpack-calendly-external-css', 'https://assets.calendly.com/assets/external/widget.css', null, JETPACK__VERSION );
}
- $content = sprintf(
- '<div class="%1$s" id="%2$s"><a class="wp-block-button__link" role="button" onclick="Calendly.initPopupWidget({url:\'%3$s\'});return false;">%4$s</a></div>',
- esc_attr( $classes ),
- esc_attr( $block_id ),
- esc_js( $url ),
- wp_kses_post( $submit_button_text )
- );
+ // Render deprecated version of Calendly block if needed. New markup block button class before rendering here.
+ if ( false === strpos( $content, 'wp-block-jetpack-button' ) ) {
+ $content = deprecated_render_button_v1( $attr, $block_id, $classes, $url );
+ } else {
+ $content = str_replace( 'calendly-widget-id', esc_attr( $block_id ), $content );
+ $content = str_replace( $base_url, $url, $content );
+ }
+
+ if ( ! $is_amp_request ) {
+ wp_add_inline_script(
+ 'jetpack-calendly-external-js',
+ sprintf( "calendly_attach_link_events( '%s' )", esc_js( $block_id ) )
+ );
+ }
} else { // Inline style.
- $content = sprintf(
- '<div class="calendly-inline-widget %1$s" data-url="%2$s" style="min-width:320px;height:630px;"></div>',
- esc_attr( $classes ),
- esc_url( $url )
- );
+ if ( $is_amp_request ) {
+ $content = sprintf(
+ '<div class="%1$s" id="%2$s"><a href="%3$s" role="button" target="_blank">%4$s</a></div>',
+ esc_attr( Blocks::classes( FEATURE_NAME, $attr ) ),
+ esc_attr( $block_id ),
+ esc_js( $url ),
+ wp_kses_post( get_attribute( $attr, 'submitButtonText' ) )
+ );
+ } else {
+ $content = sprintf(
+ '<div class="%1$s" id="%2$s"></div>',
+ esc_attr( $classes ),
+ esc_attr( $block_id )
+ );
+ $script = <<<JS_END
+jetpackInitCalendly( '%s', '%s' );
+JS_END;
+ wp_add_inline_script( 'jetpack-calendly-external-js', sprintf( $script, esc_url( $url ), esc_js( $block_id ) ) );
+ }
}
return $content;
@@ -183,3 +151,106 @@ function get_attribute( $attributes, $attribute_name ) {
return $default_attributes[ $attribute_name ];
}
}
+
+/**
+ * Enqueues the Calendly JS library and inline function to attach event
+ * handlers to the button.
+ *
+ * @return void
+ */
+function enqueue_calendly_js() {
+ wp_enqueue_script(
+ 'jetpack-calendly-external-js',
+ 'https://assets.calendly.com/assets/external/widget.js',
+ null,
+ JETPACK__VERSION,
+ false
+ );
+
+ wp_add_inline_script(
+ 'jetpack-calendly-external-js',
+ "function jetpackInitCalendly( url, elementId ) {
+ function initCalendlyWidget() {
+ if ( ! document.getElementById( elementId ) ) {
+ return;
+ }
+ Calendly.initInlineWidget({
+ url: url,
+ parentElement: document.getElementById( elementId ),
+ inlineStyles: false,
+ });
+ };
+ // For P2s only: wait until after o2 has
+ // replaced main#content to initialize widget.
+ if ( window.jQuery && window.o2 ) {
+ jQuery( 'body' ).on( 'ready_o2', function() { initCalendlyWidget() } );
+ // Else initialize widget without waiting.
+ } else {
+ initCalendlyWidget();
+ }
+ };
+
+ function calendly_attach_link_events( elementId ) {
+ var widget = document.getElementById( elementId );
+ if ( widget ) {
+ widget.addEventListener( 'click', function( event ) {
+ event.preventDefault();
+ Calendly.initPopupWidget( { url: event.target.href } );
+ } );
+ widget.addEventListener( 'keydown', function( event ) {
+ // Enter and space keys.
+ if ( event.keyCode === 13 || event.keyCode === 32 ) {
+ event.preventDefault();
+ event.target && event.target.click();
+ }
+ } );
+ }
+ }"
+ );
+}
+
+/**
+ * Renders a deprecated legacy version of the button HTML.
+ *
+ * @param array $attributes Array containing the Calendly block attributes.
+ * @param string $block_id The value for the ID attribute of the link.
+ * @param string $classes The CSS classes for the wrapper div.
+ * @param string $url Calendly URL for the link HREF.
+ *
+ * @return string
+ */
+function deprecated_render_button_v1( $attributes, $block_id, $classes, $url ) {
+ // This is the legacy version, so create the full link content.
+ $submit_button_text = get_attribute( $attributes, 'submitButtonText' );
+ $submit_button_classes = get_attribute( $attributes, 'submitButtonClasses' );
+ $submit_button_text_color = get_attribute( $attributes, 'customTextButtonColor' );
+ $submit_button_background_color = get_attribute( $attributes, 'customBackgroundButtonColor' );
+
+ /*
+ * If we have some additional styles from the editor
+ * (a custom text color, custom bg color, or both )
+ * Let's add that CSS inline.
+ */
+ if ( ! empty( $submit_button_text_color ) || ! empty( $submit_button_background_color ) ) {
+ $inline_styles = sprintf(
+ '#%1$s{%2$s%3$s}',
+ esc_attr( $block_id ),
+ ! empty( $submit_button_text_color )
+ ? 'color:#' . sanitize_hex_color_no_hash( $submit_button_text_color ) . ';'
+ : '',
+ ! empty( $submit_button_background_color )
+ ? 'background-color:#' . sanitize_hex_color_no_hash( $submit_button_background_color ) . ';'
+ : ''
+ );
+ wp_add_inline_style( 'jetpack-calendly-external-css', $inline_styles );
+ }
+
+ return sprintf(
+ '<div class="wp-block-button %1$s"><a id="%2$s" class="%3$s" href="%4$s" role="button">%5$s</a></div>',
+ esc_attr( $classes ),
+ esc_attr( $block_id ),
+ ! empty( $submit_button_classes ) ? esc_attr( $submit_button_classes ) : 'wp-block-button__link',
+ esc_js( $url ),
+ wp_kses_post( $submit_button_text )
+ );
+}
diff --git a/plugins/jetpack/extensions/blocks/contact-info/class-jetpack-contact-info-block.php b/plugins/jetpack/extensions/blocks/contact-info/class-jetpack-contact-info-block.php
index cecf6949..74386291 100644
--- a/plugins/jetpack/extensions/blocks/contact-info/class-jetpack-contact-info-block.php
+++ b/plugins/jetpack/extensions/blocks/contact-info/class-jetpack-contact-info-block.php
@@ -2,7 +2,7 @@
/**
* Class Jetpack_Contact_Info_Block
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/extensions/blocks/contact-info/contact-info.php b/plugins/jetpack/extensions/blocks/contact-info/contact-info.php
index c7414517..37d969ee 100644
--- a/plugins/jetpack/extensions/blocks/contact-info/contact-info.php
+++ b/plugins/jetpack/extensions/blocks/contact-info/contact-info.php
@@ -4,17 +4,19 @@
*
* @since 7.1.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
+use Automattic\Jetpack\Blocks;
+
+Blocks::jetpack_register_block(
'jetpack/contact-info',
array(
'render_callback' => array( 'Jetpack_Contact_Info_Block', 'render' ),
)
);
-jetpack_register_block(
+Blocks::jetpack_register_block(
'jetpack/address',
array(
'parent' => array( 'jetpack/contact-info' ),
@@ -22,7 +24,7 @@ jetpack_register_block(
)
);
-jetpack_register_block(
+Blocks::jetpack_register_block(
'jetpack/email',
array(
'parent' => array( 'jetpack/contact-info' ),
@@ -30,11 +32,11 @@ jetpack_register_block(
)
);
-jetpack_register_block(
+Blocks::jetpack_register_block(
'jetpack/phone',
array(
'parent' => array( 'jetpack/contact-info' ),
'render_callback' => array( 'Jetpack_Contact_Info_Block', 'render_phone' ),
)
);
-require_once dirname( __FILE__ ) . '/class-jetpack-contact-info-block.php';
+require_once __DIR__ . '/class-jetpack-contact-info-block.php';
diff --git a/plugins/jetpack/extensions/blocks/conversation/conversation.php b/plugins/jetpack/extensions/blocks/conversation/conversation.php
new file mode 100644
index 00000000..b9de4caa
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/conversation/conversation.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Conversation Block.
+ *
+ * @since 9.3.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Conversation;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'conversation';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $provides = $deprecated ? 'providesContext' : 'provides_context';
+
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ $provides => array(
+ 'jetpack/conversation-participants' => 'participants',
+ 'jetpack/conversation-showTimestamps' => 'showTimestamps',
+ ),
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Conversation block registration/dependency declaration.
+ *
+ * @param array $attr Array containing the Conversation block attributes.
+ * @param string $content String containing the Conversation block content.
+ *
+ * @return string
+ */
+function render_block( $attr, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/dialogue/dialogue.php b/plugins/jetpack/extensions/blocks/dialogue/dialogue.php
new file mode 100644
index 00000000..4ee09653
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/dialogue/dialogue.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Dialogue Block.
+ *
+ * @since 9.3.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Dialogue;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'dialogue';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $uses = $deprecated ? 'context' : 'uses_context';
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ $uses => array(
+ 'jetpack/conversation-participants',
+ 'jetpack/conversation-showTimestamps',
+ ),
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Dialogue block registration/dependency declaration.
+ *
+ * @param array $attrs Array containing the Dialogue block attributes.
+ * @param string $content String containing the Dialogue block content.
+ *
+ * @return string
+ */
+function render_block( $attrs, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/donations/donations.php b/plugins/jetpack/extensions/blocks/donations/donations.php
new file mode 100644
index 00000000..e93a1fe4
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/donations/donations.php
@@ -0,0 +1,256 @@
+<?php
+/**
+ * Donations Block.
+ *
+ * @since 8.x
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Donations;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'donations';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'plan_check' => true,
+ 'attributes' => array(
+ 'currency' => array(
+ 'type' => 'string',
+ 'default' => 'USD',
+ ),
+ 'oneTimeDonation' => array(
+ 'type' => 'object',
+ 'default' => array(
+ 'show' => true,
+ 'planId' => null,
+ 'amounts' => array( 5, 15, 100 ),
+ 'heading' => __( 'Make a one-time donation', 'jetpack' ),
+ 'extraText' => __( 'Your contribution is appreciated.', 'jetpack' ),
+ 'buttonText' => __( 'Donate', 'jetpack' ),
+ ),
+ ),
+ 'monthlyDonation' => array(
+ 'type' => 'object',
+ 'default' => array(
+ 'show' => true,
+ 'planId' => null,
+ 'amounts' => array( 5, 15, 100 ),
+ 'heading' => __( 'Make a monthly donation', 'jetpack' ),
+ 'extraText' => __( 'Your contribution is appreciated.', 'jetpack' ),
+ 'buttonText' => __( 'Donate monthly', 'jetpack' ),
+ ),
+ ),
+ 'annualDonation' => array(
+ 'type' => 'object',
+ 'default' => array(
+ 'show' => true,
+ 'planId' => null,
+ 'amounts' => array( 5, 15, 100 ),
+ 'heading' => __( 'Make a yearly donation', 'jetpack' ),
+ 'extraText' => __( 'Your contribution is appreciated.', 'jetpack' ),
+ 'buttonText' => __( 'Donate yearly', 'jetpack' ),
+ ),
+ ),
+ 'showCustomAmount' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ 'chooseAmountText' => array(
+ 'type' => 'string',
+ 'default' => __( 'Choose an amount', 'jetpack' ),
+ ),
+ 'customAmountText' => array(
+ 'type' => 'string',
+ 'default' => __( 'Or enter a custom amount', 'jetpack' ),
+ ),
+ 'fallbackLinkUrl' => array(
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Donations block dynamic rendering.
+ *
+ * @param array $attr Array containing the Donations block attributes.
+ * @param string $content String containing the Donations block content.
+ *
+ * @return string
+ */
+function render_block( $attr, $content ) {
+ // Keep content as-is if rendered in other contexts than frontend (i.e. feed, emails, API, etc.).
+ if ( ! jetpack_is_frontend() ) {
+ return $content;
+ }
+
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME, array( 'thickbox' ) );
+ add_thickbox();
+
+ require_once JETPACK__PLUGIN_DIR . 'modules/memberships/class-jetpack-memberships.php';
+ jetpack_require_lib( 'class-jetpack-currencies' );
+
+ $donations = array(
+ 'one-time' => array_merge(
+ array(
+ 'title' => __( 'One-Time', 'jetpack' ),
+ 'class' => 'donations__one-time-item',
+ ),
+ $attr['oneTimeDonation']
+ ),
+ );
+ if ( $attr['monthlyDonation']['show'] ) {
+ $donations['1 month'] = array_merge(
+ array(
+ 'title' => __( 'Monthly', 'jetpack' ),
+ 'class' => 'donations__monthly-item',
+ ),
+ $attr['monthlyDonation']
+ );
+ }
+ if ( $attr['annualDonation']['show'] ) {
+ $donations['1 year'] = array_merge(
+ array(
+ 'title' => __( 'Yearly', 'jetpack' ),
+ 'class' => 'donations__annual-item',
+ ),
+ $attr['annualDonation']
+ );
+ }
+
+ $currency = $attr['currency'];
+ $nav = '';
+ $headings = '';
+ $amounts = '';
+ $extra_text = '';
+ $buttons = '';
+ foreach ( $donations as $interval => $donation ) {
+ $plan_id = (int) $donation['planId'];
+ $plan = get_post( $plan_id );
+ if ( ! $plan || is_wp_error( $plan ) ) {
+ continue;
+ }
+
+ if ( count( $donations ) > 1 ) {
+ if ( ! $nav ) {
+ $nav .= '<div class="donations__nav">';
+ }
+ $nav .= sprintf(
+ '<div role="button" tabindex="0" class="donations__nav-item" data-interval="%1$s">%2$s</div>',
+ esc_attr( $interval ),
+ esc_html( $donation['title'] )
+ );
+ }
+ $headings .= sprintf(
+ '<h4 class="%1$s">%2$s</h4>',
+ esc_attr( $donation['class'] ),
+ wp_kses_post( $donation['heading'] )
+ );
+ $amounts .= sprintf(
+ '<div class="donations__amounts %s">',
+ esc_attr( $donation['class'] )
+ );
+ foreach ( $donation['amounts'] as $amount ) {
+ $amounts .= sprintf(
+ '<div class="donations__amount" data-amount="%1$s">%2$s</div>',
+ esc_attr( $amount ),
+ esc_html( \Jetpack_Currencies::format_price( $amount, $currency ) )
+ );
+ }
+ $amounts .= '</div>';
+ $extra_text .= sprintf(
+ '<p class="%1$s">%2$s</p>',
+ esc_attr( $donation['class'] ),
+ wp_kses_post( $donation['extraText'] )
+ );
+ $buttons .= sprintf(
+ '<a class="wp-block-button__link donations__donate-button %1$s" href="%2$s">%3$s</a>',
+ esc_attr( $donation['class'] ),
+ esc_url( \Jetpack_Memberships::get_instance()->get_subscription_url( $plan_id ) ),
+ wp_kses_post( $donation['buttonText'] )
+ );
+ }
+ if ( $nav ) {
+ $nav .= '</div>';
+ }
+
+ $custom_amount = '';
+ if ( $attr['showCustomAmount'] ) {
+ $custom_amount .= sprintf(
+ '<p>%s</p>',
+ wp_kses_post( $attr['customAmountText'] )
+ );
+ $default_custom_amount = \Jetpack_Memberships::SUPPORTED_CURRENCIES[ $currency ] * 100;
+ $custom_amount .= sprintf(
+ '<div class="donations__amount donations__custom-amount">
+ %1$s
+ <div class="donations__amount-value" data-currency="%2$s" data-empty-text="%3$s"></div>
+ </div>',
+ esc_html( \Jetpack_Currencies::CURRENCIES[ $attr['currency'] ]['symbol'] ),
+ esc_attr( $attr['currency'] ),
+ esc_attr( \Jetpack_Currencies::format_price( $default_custom_amount, $currency, false ) )
+ );
+ }
+
+ return sprintf(
+ '
+<div class="%1$s">
+ <div class="donations__container">
+ %2$s
+ <div class="donations__content">
+ <div class="donations__tab">
+ %3$s
+ <p>%4$s</p>
+ %5$s
+ %6$s
+ <hr class="donations__separator">
+ %7$s
+ %8$s
+ </div>
+ </div>
+</div>
+',
+ esc_attr( Blocks::classes( FEATURE_NAME, $attr ) ),
+ $nav,
+ $headings,
+ $attr['chooseAmountText'],
+ $amounts,
+ $custom_amount,
+ $extra_text,
+ $buttons
+ );
+}
+
+/**
+ * Determine if AMP should be disabled on posts having Donations blocks.
+ *
+ * @param bool $skip Skipped.
+ * @param int $post_id Post ID.
+ * @param WP_Post $post Post.
+ *
+ * @return bool Whether to skip the post from AMP.
+ */
+function amp_skip_post( $skip, $post_id, $post ) {
+ // When AMP is on standard mode, there are no non-AMP posts to link to where the donation can be completed, so let's
+ // prevent the post from being available in AMP.
+ if ( function_exists( 'amp_is_canonical' ) && \amp_is_canonical() && has_block( BLOCK_NAME, $post->post_content ) ) {
+ return true;
+ }
+ return $skip;
+}
+add_filter( 'amp_skip_post', __NAMESPACE__ . '\amp_skip_post', 10, 3 );
diff --git a/plugins/jetpack/extensions/blocks/eventbrite/eventbrite.php b/plugins/jetpack/extensions/blocks/eventbrite/eventbrite.php
index 0135837e..b68ba64d 100644
--- a/plugins/jetpack/extensions/blocks/eventbrite/eventbrite.php
+++ b/plugins/jetpack/extensions/blocks/eventbrite/eventbrite.php
@@ -4,15 +4,48 @@
*
* @since 8.2.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/eventbrite',
- array(
- 'render_callback' => 'jetpack_render_eventbrite_block',
- )
-);
+namespace Automattic\Jetpack\Extensions\Eventbrite;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'eventbrite';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Get current URL.
+ *
+ * @return string Current URL.
+ */
+function get_current_url() {
+ if ( isset( $_SERVER['HTTP_HOST'] ) ) {
+ $host = wp_unslash( $_SERVER['HTTP_HOST'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ } else {
+ $host = wp_parse_url( home_url(), PHP_URL_HOST );
+ }
+ if ( isset( $_SERVER['REQUEST_URI'] ) ) {
+ $path = wp_unslash( $_SERVER['REQUEST_URI'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ } else {
+ $path = '/';
+ }
+ return esc_url_raw( ( is_ssl() ? 'https' : 'http' ) . '://' . $host . $path );
+}
/**
* Eventbrite block registration/dependency delclaration.
@@ -20,22 +53,75 @@ jetpack_register_block(
* @param array $attr Eventbrite block attributes.
* @param string $content Rendered embed element (without scripts) from the block editor.
*
- * @return string
+ * @return string Rendered block.
*/
-function jetpack_render_eventbrite_block( $attr, $content ) {
+function render_block( $attr, $content ) {
if ( is_admin() || empty( $attr['eventId'] ) || empty( $attr['url'] ) ) {
return '';
}
+ $attr['url'] = Jetpack_Gutenberg::validate_block_embed_url(
+ $attr['url'],
+ array( '#^https?:\/\/(?:[0-9a-z]+\.)?eventbrite\.(?:com|co\.uk|com\.ar|com\.au|be|com\.br|ca|cl|co|dk|de|es|fi|fr|hk|ie|it|com\.mx|nl|co\.nz|at|com\.pe|pt|ch|sg|se)\/e\/[^\/]*?(?:\d+)\/?(?:\?[^\/]*)?$#' ),
+ true
+ );
+
$widget_id = wp_unique_id( 'eventbrite-widget-' );
- wp_enqueue_script( 'eventbrite-widget', 'https://www.eventbrite.com/static/widgets/eb_widgets.js', array(), JETPACK__VERSION, true );
+ // Show the embedded version.
+ if ( empty( $attr['useModal'] ) && ( empty( $attr['style'] ) || 'modal' !== $attr['style'] ) ) {
+ return render_embed_block( $widget_id, Blocks::is_amp_request(), $attr );
+ } else {
+ return render_modal_block( $widget_id, Blocks::is_amp_request(), $attr, $content );
+ }
+}
- // Add CSS to hide direct link.
- Jetpack_Gutenberg::load_assets_as_required( 'eventbrite' );
+/**
+ * Render block with embed style.
+ *
+ * @param string $widget_id Widget ID to use.
+ * @param bool $is_amp Whether AMP page.
+ * @param array $attr Eventbrite block attributes.
+ * @return string Rendered block.
+ */
+function render_embed_block( $widget_id, $is_amp, $attr ) {
+
+ // $content contains a fallback link to the event that's saved in the post_content.
+ // Append a div that will hold the iframe embed created by the Eventbrite widget.js.
+ $classes = Blocks::classes( FEATURE_NAME, $attr );
+
+ $classes .= ' wp-block-jetpack-eventbrite--embed';
+
+ $direct_link = sprintf(
+ '<a href="%s" rel="noopener noreferrer" target="_blank" class="eventbrite__direct-link" %s>%s</a>',
+ esc_url( $attr['url'] ),
+ $is_amp ? 'placeholder fallback' : '',
+ esc_html__( 'Register on Eventbrite', 'jetpack' )
+ );
+
+ if ( $is_amp ) {
+ $embed = sprintf(
+ '<amp-iframe src="%s" layout="responsive" resizable width="1" height="1" sandbox="allow-scripts allow-same-origin allow-forms"><button overflow>%s</button>%s</amp-iframe>',
+ esc_url(
+ add_query_arg(
+ array(
+ 'eid' => $attr['eventId'],
+ 'parent' => rawurlencode( get_current_url() ),
+ ),
+ 'https://www.eventbrite.com/checkout-external'
+ )
+ ),
+ esc_html__( 'Expand', 'jetpack' ),
+ $direct_link
+ );
+ } else {
+ $embed = $direct_link;
+
+ wp_enqueue_script( 'eventbrite-widget', 'https://www.eventbrite.com/static/widgets/eb_widgets.js', array(), JETPACK__VERSION, true );
+
+ // Add CSS to hide direct link.
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
- // Show the embedded version.
- if ( empty( $attr['useModal'] ) ) {
wp_add_inline_script(
'eventbrite-widget',
"window.EBWidgets.createWidget( {
@@ -44,22 +130,84 @@ function jetpack_render_eventbrite_block( $attr, $content ) {
iframeContainerId: '" . esc_js( $widget_id ) . "',
} );"
);
+ }
+
+ return sprintf(
+ '<div id="%1$s" class="%2$s">%3$s</div>',
+ esc_attr( $widget_id ),
+ esc_attr( $classes ),
+ $embed
+ );
+}
+
+/**
+ * Render block with modal style.
+ *
+ * @param string $widget_id Widget ID to use.
+ * @param bool $is_amp Whether AMP page.
+ * @param array $attr Eventbrite block attributes.
+ * @param string $content Rendered embed element (without scripts) from the block editor.
+ * @return string Rendered block.
+ */
+function render_modal_block( $widget_id, $is_amp, $attr, $content ) {
+
+ if ( $is_amp ) {
+ $lightbox_id = "{$widget_id}-lightbox";
+
+ // Add CSS to for lightbox.
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ $content = preg_replace(
+ '/\shref="#" target="_blank/',
+ sprintf( ' on="%s" ', esc_attr( "tap:{$lightbox_id}.open" ) ),
+ $content
+ );
+
+ $iframe_src = add_query_arg(
+ array(
+ // Note that modal=1 is intentionally omitted here since we need to put the close button inside the amp-lightbox.
+ 'eid' => $attr['eventId'],
+ 'parent' => rawurlencode( get_current_url() ),
+ ),
+ 'https://www.eventbrite.com/checkout-external'
+ );
- // $content contains a fallback link to the event that's saved in the post_content.
- // Append a div that will hold the iframe embed created by the Eventbrite widget.js.
- $content .= sprintf(
- '<div id="%s" class="eventbrite__in-page-checkout"></div>',
- esc_attr( $widget_id )
+ $lightbox = sprintf(
+ '<amp-lightbox id="%1$s" on="%2$s" class="eventbrite__lightbox" layout="nodisplay">%3$s</amp-lightbox>',
+ esc_attr( $lightbox_id ),
+ esc_attr( "tap:{$lightbox_id}.close" ),
+ sprintf(
+ '
+ <div class="eventbrite__lighbox-inside">
+ <div class="eventbrite__lighbox-iframe-wrapper">
+ <amp-iframe class="eventbrite__lighbox-iframe" src="%s" layout="fill" sandbox="allow-scripts allow-same-origin allow-forms">
+ <span placeholder=""></span>
+ </amp-iframe>
+ <span class="eventbrite__lighbox-close" on="%s" role="button" tabindex="0" aria-label="%s">
+ <svg viewBox="0 0 24 24">
+ <path d="M13.4 12l3.5-3.5-1.4-1.4-3.5 3.5-3.5-3.5-1.4 1.4 3.5 3.5-3.5 3.5 1.4 1.4 3.5-3.5 3.5 3.5 1.4-1.4z"></path>
+ </svg>
+ </span>
+ </div>
+ </div>
+ ',
+ esc_url( $iframe_src ),
+ esc_attr( "tap:{$lightbox_id}.close" ),
+ esc_attr__( 'Close', 'jetpack' )
+ )
);
- return sprintf(
- '%s<noscript><a href="%s" rel="noopener noreferrer" target="_blank">%s</a></noscript>',
- $content,
- esc_url( $attr['url'] ),
- esc_html__( 'Register on Eventbrite', 'jetpack' )
+ $content = preg_replace(
+ ':(?=</div>\s*$):',
+ $lightbox,
+ $content
);
+
+ return $content;
}
+ wp_enqueue_script( 'eventbrite-widget', 'https://www.eventbrite.com/static/widgets/eb_widgets.js', array(), JETPACK__VERSION, true );
+
// Show the modal version.
wp_add_inline_script(
'eventbrite-widget',
@@ -95,7 +243,20 @@ function jetpack_render_eventbrite_block( $attr, $content ) {
);
// Replace the placeholder id saved in the post_content with a unique id used by widget.js.
- $content = preg_replace( '/eventbrite-widget-\d+/', $widget_id, $content );
+ $content = str_replace( 'eventbrite-widget-id', esc_attr( $widget_id ), $content );
+
+ // Fallback for block version deprecated/v2.
+ $content = preg_replace( '/eventbrite-widget-\d+/', esc_attr( $widget_id ), $content );
+
+ // Inject URL to event in case the JS for the lightbox fails to load.
+ $content = preg_replace(
+ '/\shref="#"/',
+ sprintf(
+ ' href="%s" rel="noopener noreferrer" target="_blank"',
+ esc_url( $attr['url'] )
+ ),
+ $content
+ );
return $content;
}
diff --git a/plugins/jetpack/extensions/blocks/gif/gif.php b/plugins/jetpack/extensions/blocks/gif/gif.php
index 1ababeeb..cb860e9a 100644
--- a/plugins/jetpack/extensions/blocks/gif/gif.php
+++ b/plugins/jetpack/extensions/blocks/gif/gif.php
@@ -4,15 +4,29 @@
*
* @since 7.0.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/gif',
- array(
- 'render_callback' => 'jetpack_gif_block_render',
- )
-);
+namespace Automattic\Jetpack\Extensions\Gif;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'gif';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Gif block registration/dependency declaration.
@@ -21,10 +35,12 @@ jetpack_register_block(
*
* @return string
*/
-function jetpack_gif_block_render( $attr ) {
+function render_block( $attr ) {
$padding_top = isset( $attr['paddingTop'] ) ? $attr['paddingTop'] : 0;
$style = 'padding-top:' . $padding_top;
- $giphy_url = isset( $attr['giphyUrl'] ) ? $attr['giphyUrl'] : null;
+ $giphy_url = isset( $attr['giphyUrl'] )
+ ? Jetpack_Gutenberg::validate_block_embed_url( $attr['giphyUrl'], array( 'giphy.com' ) )
+ : null;
$search_text = isset( $attr['searchText'] ) ? $attr['searchText'] : '';
$caption = isset( $attr['caption'] ) ? $attr['caption'] : null;
@@ -32,7 +48,7 @@ function jetpack_gif_block_render( $attr ) {
return null;
}
- $classes = Jetpack_Gutenberg::block_classes( 'gif', $attr );
+ $classes = Blocks::classes( FEATURE_NAME, $attr );
$placeholder = sprintf( '<a href="%s">%s</a>', esc_url( $giphy_url ), esc_attr( $search_text ) );
@@ -40,7 +56,7 @@ function jetpack_gif_block_render( $attr ) {
?>
<div class="<?php echo esc_attr( $classes ); ?>">
<figure>
- <?php if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) : ?>
+ <?php if ( Blocks::is_amp_request() ) : ?>
<amp-iframe src="<?php echo esc_url( $giphy_url ); ?>" width="100" height="<?php echo absint( $padding_top ); ?>" sandbox="allow-scripts allow-same-origin" layout="responsive">
<div placeholder>
<?php echo wp_kses_post( $placeholder ); ?>
@@ -59,7 +75,7 @@ function jetpack_gif_block_render( $attr ) {
<?php
$html = ob_get_clean();
- Jetpack_Gutenberg::load_assets_as_required( 'gif' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
return $html;
}
diff --git a/plugins/jetpack/extensions/blocks/google-calendar/google-calendar.php b/plugins/jetpack/extensions/blocks/google-calendar/google-calendar.php
new file mode 100644
index 00000000..1a77b001
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/google-calendar/google-calendar.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * Google Calendar Block.
+ *
+ * @since 8.3.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Google_Calendar;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'google-calendar';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\load_assets',
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Google Calendar block registration/dependency declaration.
+ *
+ * @param array $attr Array containing the Google Calendar block attributes.
+ * @return string
+ */
+function load_assets( $attr ) {
+ $height = isset( $attr['height'] ) ? $attr['height'] : '600';
+ $url = isset( $attr['url'] )
+ ? Jetpack_Gutenberg::validate_block_embed_url( $attr['url'], array( 'calendar.google.com' ) ) :
+ '';
+ $classes = Blocks::classes( FEATURE_NAME, $attr );
+
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ if ( empty( $url ) ) {
+ return '';
+ }
+
+ $sandbox = 'allow-scripts allow-same-origin allow-popups';
+ if ( Blocks::is_amp_request() ) {
+ $noscript_src = str_replace(
+ '//calendar.google.com/calendar/embed',
+ '//calendar.google.com/calendar/htmlembed',
+ $url
+ );
+
+ $iframe = sprintf(
+ '<amp-iframe src="%1$s" frameborder="0" scrolling="no" height="%2$d" layout="fixed-height" sandbox="%3$s">%4$s%5$s</amp-iframe>',
+ esc_url( $url ),
+ absint( $height ),
+ esc_attr( $sandbox ),
+ sprintf(
+ '<a href="%s" placeholder>%s</a>',
+ esc_url( $url ),
+ esc_html__( 'Google Calendar', 'jetpack' )
+ ),
+ sprintf(
+ '<noscript><iframe src="%1$s" frameborder="0" scrolling="no" sandbox="%2$s"></iframe></noscript>',
+ esc_url( $noscript_src ),
+ esc_attr( $sandbox )
+ )
+ );
+ } else {
+ $iframe = sprintf(
+ '<iframe src="%1$s" frameborder="0" style="border:0" scrolling="no" height="%2$d" width="100%%" sandbox="%3$s"></iframe>',
+ esc_url( $url ),
+ absint( $height ),
+ esc_attr( $sandbox )
+ );
+ }
+
+ return sprintf( '<div class="%s">%s</div>', esc_attr( $classes ), $iframe );
+}
diff --git a/plugins/jetpack/extensions/blocks/image-compare/image-compare.php b/plugins/jetpack/extensions/blocks/image-compare/image-compare.php
new file mode 100644
index 00000000..54683841
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/image-compare/image-compare.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * Image Compare Block.
+ *
+ * @since 8.6
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\ImageCompare;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'image-compare';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Image Compare block registration/dependency declaration.
+ *
+ * @param array $attr Array containing the image-compare block attributes.
+ * @param string $content String containing the image-compare block content.
+ *
+ * @return string
+ */
+function load_assets( $attr, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+ wp_localize_script(
+ 'jetpack-block-' . sanitize_title_with_dashes( FEATURE_NAME ),
+ 'imageCompareHandle',
+ array(
+ 'msg' => __( 'Slide to compare images', 'jetpack' ),
+ )
+ );
+ if ( Blocks::is_amp_request() ) {
+ $content = preg_replace(
+ '#<div class="juxtapose".+?</div>#s',
+ render_amp( $attr ),
+ $content
+ );
+ }
+
+ return $content;
+}
+
+/**
+ * Render image compare block for AMP
+ *
+ * @param array $attr Array containing the image-compare block attributes.
+ *
+ * @return string Markup for amp-image-slider.
+ */
+function render_amp( $attr ) {
+ $img_before = $attr['imageBefore'];
+ $img_after = $attr['imageAfter'];
+
+ $width = ! empty( $img_before['width'] ) ? absint( $img_before['width'] ) : 0;
+ $height = ! empty( $img_before['height'] ) ? absint( $img_before['height'] ) : 0;
+
+ // As fallback, give 1:1 aspect ratio.
+ if ( ! $width || ! $height ) {
+ $width = 1;
+ $height = 1;
+ }
+
+ return sprintf(
+ '<amp-image-slider layout="responsive" width="%1$s" height="%2$s"> <amp-img id="%3$d" src="%4$s" alt="%5$s" layout="fill"></amp-img> <amp-img id="%6$d" src="%7$s" alt="%8$s" layout="fill"></amp-img></amp-image-slider>',
+ esc_attr( $width ),
+ esc_attr( $height ),
+ absint( $img_before['id'] ),
+ esc_url( $img_before['url'] ),
+ esc_attr( $img_before['alt'] ),
+ absint( $img_after['id'] ),
+ esc_url( $img_after['url'] ),
+ esc_attr( $img_after['alt'] )
+ );
+}
diff --git a/plugins/jetpack/extensions/blocks/instagram-gallery/instagram-gallery.php b/plugins/jetpack/extensions/blocks/instagram-gallery/instagram-gallery.php
new file mode 100644
index 00000000..586c71e1
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/instagram-gallery/instagram-gallery.php
@@ -0,0 +1,151 @@
+<?php
+/**
+ * Instagram Gallery Block.
+ *
+ * @since 8.5.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Instagram_Gallery;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack;
+use Jetpack_Gutenberg;
+use Jetpack_Instagram_Gallery_Helper;
+
+const FEATURE_NAME = 'instagram-gallery';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_connection_ready() ) {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Instagram Gallery block render callback.
+ *
+ * @param array $attributes Array containing the Instagram Gallery block attributes.
+ * @param string $content The Instagram Gallery block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( ! array_key_exists( 'accessToken', $attributes ) ) {
+ return '';
+ }
+
+ $access_token = $attributes['accessToken'];
+ $columns = get_instagram_gallery_attribute( 'columns', $attributes );
+ $count = get_instagram_gallery_attribute( 'count', $attributes );
+ $is_stacked_on_mobile = get_instagram_gallery_attribute( 'isStackedOnMobile', $attributes );
+ $spacing = get_instagram_gallery_attribute( 'spacing', $attributes );
+
+ $grid_classes = Blocks::classes(
+ FEATURE_NAME,
+ $attributes,
+ array(
+ 'wp-block-jetpack-instagram-gallery__grid',
+ 'wp-block-jetpack-instagram-gallery__grid-columns-' . $columns,
+ ( $is_stacked_on_mobile ? 'is-stacked-on-mobile' : null ),
+ )
+ );
+
+ $grid_style = sprintf(
+ 'grid-gap: %1$spx; --latest-instagram-posts-spacing: %1$spx;',
+ $spacing
+ );
+
+ if ( ! class_exists( 'Jetpack_Instagram_Gallery_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-instagram-gallery-helper' );
+ }
+ $gallery = Jetpack_Instagram_Gallery_Helper::get_instagram_gallery( $access_token, $count );
+
+ if ( is_wp_error( $gallery ) || ! property_exists( $gallery, 'images' ) || 'ERROR' === $gallery->images ) {
+ if ( ! current_user_can( 'edit_post', get_the_ID() ) ) {
+ return '';
+ }
+
+ $connection_unavailable = is_wp_error( $gallery ) && 'instagram_connection_unavailable' === $gallery->get_error_code();
+
+ $error_message = $connection_unavailable
+ ? $gallery->get_error_message()
+ : esc_html__( 'An error occurred in the Latest Instagram Posts block. Please try again later.', 'jetpack' );
+
+ $message = $error_message
+ . '<br />'
+ . esc_html__( '(Only administrators and the post author will see this message.)', 'jetpack' );
+ return Jetpack_Gutenberg::notice( $message, 'error', Blocks::classes( FEATURE_NAME, $attributes ) );
+ }
+
+ if ( empty( $gallery->images ) ) {
+ return '';
+ }
+
+ $images = array_slice( $gallery->images, 0, $count );
+
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ ob_start();
+ ?>
+ <?php if ( Blocks::is_amp_request() ) : ?>
+ <style>
+ .wp-block-jetpack-instagram-gallery__grid .wp-block-jetpack-instagram-gallery__grid-post amp-img img {
+ object-fit: cover;
+ }
+ </style>
+ <?php endif; ?>
+ <div class="<?php echo esc_attr( $grid_classes ); ?>" style="<?php echo esc_attr( $grid_style ); ?>">
+ <?php foreach ( $images as $image ) : ?>
+ <a
+ class="wp-block-jetpack-instagram-gallery__grid-post"
+ href="<?php echo esc_url( $image->link ); ?>"
+ rel="noopener noreferrer"
+ target="_blank"
+ >
+ <img
+ alt="<?php echo esc_attr( $image->title ? $image->title : $image->link ); ?>"
+ src="<?php echo esc_url( $image->url ); ?>"
+ />
+ </a>
+ <?php endforeach; ?>
+ </div>
+
+ <?php
+ return ob_get_clean();
+}
+
+/**
+ * Get Instagram Gallery block attribute.
+ *
+ * @param string $attribute String containing the attribute name to get.
+ * @param array $attributes Array containing the Instagram Gallery block attributes.
+ *
+ * @return mixed
+ */
+function get_instagram_gallery_attribute( $attribute, $attributes ) {
+ if ( array_key_exists( $attribute, $attributes ) ) {
+ return $attributes[ $attribute ];
+ }
+
+ $default_attributes = array(
+ 'columns' => 3,
+ 'count' => 9,
+ 'isStackedOnMobile' => true,
+ 'spacing' => 10,
+ );
+
+ if ( array_key_exists( $attribute, $default_attributes ) ) {
+ return $default_attributes[ $attribute ];
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/mailchimp/mailchimp.php b/plugins/jetpack/extensions/blocks/mailchimp/mailchimp.php
index 80641a1c..1640e136 100644
--- a/plugins/jetpack/extensions/blocks/mailchimp/mailchimp.php
+++ b/plugins/jetpack/extensions/blocks/mailchimp/mailchimp.php
@@ -4,39 +4,185 @@
*
* @since 7.1.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_active() ) {
- jetpack_register_block(
- 'jetpack/mailchimp',
- array(
- 'render_callback' => 'jetpack_mailchimp_block_load_assets',
- )
- );
+namespace Automattic\Jetpack\Extensions\Mailchimp;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack;
+use Jetpack_Gutenberg;
+use Jetpack_Options;
+
+const FEATURE_NAME = 'mailchimp';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ if (
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM )
+ || Jetpack::is_connection_ready()
+ ) {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\load_assets',
+ )
+ );
+ }
}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Mailchimp block registration/dependency declaration.
*
- * @param array $attr - Array containing the map block attributes.
+ * @param array $attr - Array containing the Mailchimp block attributes.
+ * @param string $content - Mailchimp block content.
*
* @return string
*/
-function jetpack_mailchimp_block_load_assets( $attr ) {
+function load_assets( $attr, $content ) {
- if ( ! jetpack_mailchimp_verify_connection() ) {
+ if ( ! verify_connection() ) {
return null;
}
- $values = array();
+ $values = get_attributes_with_defaults( $attr );
$blog_id = ( defined( 'IS_WPCOM' ) && IS_WPCOM )
? get_current_blog_id()
: Jetpack_Options::get_option( 'id' );
- Jetpack_Gutenberg::load_assets_as_required( 'mailchimp' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+ $classes = Blocks::classes( FEATURE_NAME, $attr );
+ $amp_form_action = sprintf( 'https://public-api.wordpress.com/rest/v1.1/sites/%s/email_follow/amp/subscribe/', $blog_id );
+ $is_amp_request = Blocks::is_amp_request();
+
+ ob_start();
+ ?>
+
+ <div class="<?php echo esc_attr( $classes ); ?>" data-blog-id="<?php echo esc_attr( $blog_id ); ?>">
+ <form
+ aria-describedby="wp-block-jetpack-mailchimp_consent-text"
+ <?php if ( $is_amp_request ) : ?>
+ action-xhr="<?php echo esc_url( $amp_form_action ); ?>"
+ method="post"
+ id="mailchimp_form"
+ target="_top"
+ on="submit-success:AMP.setState( { mailing_list_status: 'subscribed', mailing_list_email: event.response.email } )"
+ <?php endif; ?>
+ >
+ <p>
+ <input
+ aria-label="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
+ placeholder="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
+ required
+ title="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
+ type="email"
+ name="email"
+ />
+ </p>
+ <?php foreach ( is_array( $values['interests'] ) ? $values['interests'] : array() as $interest ) : ?>
+ <input
+ name="interests[<?php echo esc_attr( $interest ); ?>]"
+ type="hidden"
+ class="mc-submit-param"
+ value="1"
+ />
+ <?php endforeach; ?>
+ <?php
+ if (
+ ! empty( $values['signupFieldTag'] )
+ && ! empty( $values['signupFieldValue'] )
+ ) :
+ ?>
+ <input
+ name="merge_fields[<?php echo esc_attr( $values['signupFieldTag'] ); ?>]"
+ type="hidden"
+ class="mc-submit-param"
+ value="<?php echo esc_attr( $values['signupFieldValue'] ); ?>"
+ />
+ <?php endif; ?>
+ <?php echo render_button( $attr, $content ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ <p id="wp-block-jetpack-mailchimp_consent-text">
+ <?php echo wp_kses_post( $values['consentText'] ); ?>
+ </p>
+
+ <?php if ( $is_amp_request ) : ?>
+
+ <div submit-success>
+ <template type="amp-mustache">
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_success wp-block-jetpack-mailchimp__is-amp">
+ <?php echo esc_html( $values['successLabel'] ); ?>
+ </div>
+ </template>
+ </div>
+ <div submit-error>
+ <template type="amp-mustache">
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_error wp-block-jetpack-mailchimp__is-amp">
+ <?php echo esc_html( $values['errorLabel'] ); ?>
+ </div>
+ </template>
+ </div>
+ <div submitting>
+ <template type="amp-mustache">
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_processing wp-block-jetpack-mailchimp__is-amp" role="status">
+ <?php echo esc_html( $values['processingLabel'] ); ?>
+ </div>
+ </template>
+ </div>
+
+ <?php endif; ?>
+
+ </form>
+ <?php if ( ! $is_amp_request ) : ?>
+
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_processing" role="status">
+ <?php echo esc_html( $values['processingLabel'] ); ?>
+ </div>
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_success" role="status">
+ <?php echo esc_html( $values['successLabel'] ); ?>
+ </div>
+ <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_error" role="alert">
+ <?php echo esc_html( $values['errorLabel'] ); ?>
+ </div>
+
+ <?php endif; ?>
+ </div>
+ <?php
+ $html = ob_get_clean();
+ return $html;
+}
+
+/**
+ * Mailchimp connection/list selection verification.
+ *
+ * @return boolean
+ */
+function verify_connection() {
+ $option = get_option( 'jetpack_mailchimp' );
+ if ( ! $option ) {
+ return false;
+ }
+ $data = json_decode( $option, true );
+ if ( ! $data ) {
+ return false;
+ }
+ return isset( $data['follower_list_id'], $data['keyring_id'] );
+}
+
+/**
+ * Builds complete set of attributes using default values where needed.
+ *
+ * @param array $attr Saved set of attributes for the Mailchimp block.
+ * @return array
+ */
+function get_attributes_with_defaults( $attr ) {
+ $values = array();
$defaults = array(
'emailPlaceholder' => esc_html__( 'Enter your email', 'jetpack' ),
- 'submitButtonText' => esc_html__( 'Join my email list', 'jetpack' ),
'consentText' => esc_html__( 'By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.', 'jetpack' ),
'processingLabel' => esc_html__( 'Processing…', 'jetpack' ),
'successLabel' => esc_html__( 'Success! You\'re on the list.', 'jetpack' ),
@@ -45,15 +191,43 @@ function jetpack_mailchimp_block_load_assets( $attr ) {
'signupFieldTag' => '',
'signupFieldValue' => '',
);
+
foreach ( $defaults as $id => $default ) {
$values[ $id ] = isset( $attr[ $id ] ) ? $attr[ $id ] : $default;
}
- $values['submitButtonText'] = empty( $values['submitButtonText'] ) ? $defaults['submitButtonText'] : $values['submitButtonText'];
+ return $values;
+}
- $classes = Jetpack_Gutenberg::block_classes( 'mailchimp', $attr );
+/**
+ * Renders the Mailchimp block button using inner block content if available
+ * otherwise generating the HTML button from deprecated attributes.
+ *
+ * @param array $attr Attributes for the Mailchimp block.
+ * @param string $content Mailchimp block content.
+ *
+ * @return string
+ */
+function render_button( $attr, $content ) {
+ if ( ! empty( $content ) ) {
+ $block_id = wp_unique_id( 'mailchimp-button-block-' );
+ return str_replace( 'mailchimp-widget-id', $block_id, $content );
+ }
+
+ return render_deprecated_button( $attr );
+}
+/**
+ * Renders HTML button from deprecated Mailchimp block attributes.
+ *
+ * @param array $attr Mailchimp block attributes.
+ * @return string
+ */
+function render_deprecated_button( $attr ) {
+ $default = esc_html__( 'Join my email list', 'jetpack' );
+ $text = empty( $attr['submitButtonText'] ) ? $default : $attr['submitButtonText'];
$button_styles = array();
+
if ( ! empty( $attr['customBackgroundButtonColor'] ) ) {
array_push(
$button_styles,
@@ -63,6 +237,7 @@ function jetpack_mailchimp_block_load_assets( $attr ) {
)
);
}
+
if ( ! empty( $attr['customTextButtonColor'] ) ) {
array_push(
$button_styles,
@@ -72,127 +247,18 @@ function jetpack_mailchimp_block_load_assets( $attr ) {
)
);
}
- $button_styles = implode( ';', $button_styles );
- $amp_form_action = sprintf( 'https://public-api.wordpress.com/rest/v1.1/sites/%s/email_follow/amp/subscribe/', $blog_id );
- $is_amp_request = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
- ob_start();
- ?>
+ $button_styles = implode( ';', $button_styles );
+ $button_classes = 'components-button is-button is-primary ';
- <div class="<?php echo esc_attr( $classes ); ?>" data-blog-id="<?php echo esc_attr( $blog_id ); ?>">
- <div class="components-placeholder">
- <form
- aria-describedby="wp-block-jetpack-mailchimp_consent-text"
- <?php if ( $is_amp_request ) : ?>
- action-xhr="<?php echo esc_url( $amp_form_action ); ?>"
- method="post"
- id="mailchimp_form"
- target="_top"
- <?php if ( $is_amp_request ) : ?>
- on="submit-success:AMP.setState( { mailing_list_status: 'subscribed', mailing_list_email: event.response.email } )"
- <?php endif; ?>
- <?php endif; ?>
- >
- <p>
- <input
- aria-label="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
- placeholder="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
- required
- title="<?php echo esc_attr( $values['emailPlaceholder'] ); ?>"
- type="email"
- name="email"
- />
- </p>
- <?php foreach ( is_array( $values['interests'] ) ? $values['interests'] : array() as $interest ) : ?>
- <input
- name="interests[<?php echo esc_attr( $interest ); ?>]"
- type="hidden"
- class="mc-submit-param"
- value="1"
- />
- <?php endforeach; ?>
- <?php
- if (
- ! empty( $values['signupFieldTag'] )
- && ! empty( $values['signupFieldValue'] )
- ) :
- ?>
- <input
- name="merge_fields[<?php echo esc_attr( $values['signupFieldTag'] ); ?>]"
- type="hidden"
- class="mc-submit-param"
- value="<?php echo esc_attr( $values['signupFieldValue'] ); ?>"
- />
- <?php endif; ?>
- <p>
- <button type="submit" class="components-button is-button is-primary" style="<?php echo esc_attr( $button_styles ); ?>">
- <?php echo wp_kses_post( $values['submitButtonText'] ); ?>
- </button>
- </p>
- <p id="wp-block-jetpack-mailchimp_consent-text">
- <?php echo wp_kses_post( $values['consentText'] ); ?>
- </p>
-
- <?php if ( $is_amp_request ) : ?>
-
- <div submit-success>
- <template type="amp-mustache">
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_success wp-block-jetpack-mailchimp__is-amp">
- <?php echo esc_html( $values['successLabel'] ); ?>
- </div>
- </template>
- </div>
- <div submit-error>
- <template type="amp-mustache">
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_error wp-block-jetpack-mailchimp__is-amp">
- <?php echo esc_html( $values['errorLabel'] ); ?>
- </div>
- </template>
- </div>
- <div submitting>
- <template type="amp-mustache">
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_processing wp-block-jetpack-mailchimp__is-amp" role="status">
- <?php echo esc_html( $values['processingLabel'] ); ?>
- </div>
- </template>
- </div>
-
- <?php endif; ?>
-
- </form>
- <?php if ( ! $is_amp_request ) : ?>
-
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_processing" role="status">
- <?php echo esc_html( $values['processingLabel'] ); ?>
- </div>
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_success" role="status">
- <?php echo esc_html( $values['successLabel'] ); ?>
- </div>
- <div class="wp-block-jetpack-mailchimp_notification wp-block-jetpack-mailchimp_error" role="alert">
- <?php echo esc_html( $values['errorLabel'] ); ?>
- </div>
-
- <?php endif; ?>
- </div>
- </div>
- <?php
- $html = ob_get_clean();
- return $html;
-}
-
-/**
- * Mailchimp connection/list selection verification.
- *
- * @return boolean
- */
-function jetpack_mailchimp_verify_connection() {
- $option = get_option( 'jetpack_mailchimp' );
- if ( ! $option ) {
- return false;
- }
- $data = json_decode( $option, true );
- if ( ! $data ) {
- return false;
+ if ( ! empty( $attr['submitButtonClasses'] ) ) {
+ $button_classes .= $attr['submitButtonClasses'];
}
- return isset( $data['follower_list_id'], $data['keyring_id'] );
+
+ return sprintf(
+ '<p><button type="submit" class="%s" style="%s">%s</button></p>',
+ esc_attr( $button_classes ),
+ esc_attr( $button_styles ),
+ wp_kses_post( $text )
+ );
}
diff --git a/plugins/jetpack/extensions/blocks/map/map.php b/plugins/jetpack/extensions/blocks/map/map.php
index d3b881be..3925b487 100644
--- a/plugins/jetpack/extensions/blocks/map/map.php
+++ b/plugins/jetpack/extensions/blocks/map/map.php
@@ -4,40 +4,58 @@
*
* @since 6.8.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/map',
- array(
- 'render_callback' => 'jetpack_map_block_load_assets',
- )
-);
+namespace Automattic\Jetpack\Extensions\Map;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Automattic\Jetpack\Tracking;
+use Jetpack;
+use Jetpack_Gutenberg;
+use Jetpack_Mapbox_Helper;
+
+const FEATURE_NAME = 'map';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+if ( ! class_exists( 'Jetpack_Mapbox_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-mapbox-helper' );
+}
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\load_assets',
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
- * Return the site's own Mapbox API key if set, or the WordPress.com's one otherwise.
+ * Record a Tracks event every time the Map block is loaded on WordPress.com and Atomic.
*
- * @return string
+ * @param string $access_token_source The Mapbox API access token source.
*/
-function jetpack_get_mapbox_api_key() {
- if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $endpoint = sprintf(
- 'https://public-api.wordpress.com/wpcom/v2/sites/%d/service-api-keys/mapbox',
- get_current_blog_id()
- );
- } else {
- $endpoint = rest_url( 'wpcom/v2/service-api-keys/mapbox' );
+function wpcom_load_event( $access_token_source ) {
+ if ( 'wpcom' !== $access_token_source ) {
+ return;
}
- $response = wp_remote_get( esc_url_raw( $endpoint ) );
- $response_code = wp_remote_retrieve_response_code( $response );
-
- if ( 200 === $response_code ) {
- $response_body = json_decode( wp_remote_retrieve_body( $response ) );
- return $response_body->service_api_key;
+ $event_name = 'map_block_mapbox_wpcom_key_load';
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ jetpack_require_lib( 'tracks/client' );
+ tracks_record_event( wp_get_current_user(), $event_name );
+ } elseif ( ( new Host() )->is_woa_site() && Jetpack::is_connection_ready() ) {
+ $tracking = new Tracking();
+ $tracking->record_user_event( $event_name );
}
-
- return Jetpack_Options::get_option( 'mapbox_api_key' );
}
/**
@@ -48,10 +66,12 @@ function jetpack_get_mapbox_api_key() {
*
* @return string
*/
-function jetpack_map_block_load_assets( $attr, $content ) {
- $api_key = jetpack_get_mapbox_api_key();
+function load_assets( $attr, $content ) {
+ $access_token = Jetpack_Mapbox_Helper::get_access_token();
- if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ wpcom_load_event( $access_token['source'] );
+
+ if ( Blocks::is_amp_request() ) {
static $map_block_counter = array();
$id = get_the_ID();
@@ -79,15 +99,15 @@ function jetpack_map_block_load_assets( $attr, $content ) {
);
}
- Jetpack_Gutenberg::load_assets_as_required( 'map' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
- return preg_replace( '/<div /', '<div data-api-key="' . esc_attr( $api_key ) . '" ', $content, 1 );
+ return preg_replace( '/<div /', '<div data-api-key="' . esc_attr( $access_token['key'] ) . '" ', $content, 1 );
}
/**
* Render a page containing only a single Map block.
*/
-function jetpack_map_block_render_single_block_page() {
+function render_single_block_page() {
// phpcs:ignore WordPress.Security.NonceVerification
$map_block_counter = isset( $_GET, $_GET['map-block-counter'] ) ? absint( $_GET['map-block-counter'] ) : null;
// phpcs:ignore WordPress.Security.NonceVerification
@@ -104,7 +124,7 @@ function jetpack_map_block_render_single_block_page() {
return;
}
- $post_html = new DOMDocument();
+ $post_html = new \DOMDocument();
/** This filter is already documented in core/wp-includes/post-template.php */
$content = apply_filters( 'the_content', $post->post_content );
@@ -113,7 +133,7 @@ function jetpack_map_block_render_single_block_page() {
@$post_html->loadHTML( $content ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
libxml_use_internal_errors( false );
- $xpath = new DOMXPath( $post_html );
+ $xpath = new \DOMXPath( $post_html );
$container = $xpath->query( '//div[ contains( @class, "wp-block-jetpack-map" ) ]' )->item( $map_block_counter - 1 );
/* Check that we have a block matching the counter position */
@@ -126,7 +146,7 @@ function jetpack_map_block_render_single_block_page() {
add_filter( 'jetpack_is_amp_request', '__return_false' );
- Jetpack_Gutenberg::load_assets_as_required( 'map' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
wp_scripts()->do_items();
wp_styles()->do_items();
@@ -136,14 +156,58 @@ function jetpack_map_block_render_single_block_page() {
/* Put together a new complete document containing only the requested block markup and the scripts/styles needed to render it */
$block_markup = $post_html->saveHTML( $container );
- $api_key = jetpack_get_mapbox_api_key();
+ $access_token = Jetpack_Mapbox_Helper::get_access_token();
$page_html = sprintf(
'<!DOCTYPE html><head><style>html, body { margin: 0; padding: 0; }</style>%s</head><body>%s</body>',
$head_content,
- preg_replace( '/(?<=<div\s)/', 'data-api-key="' . esc_attr( $api_key ) . '" ', $block_markup, 1 )
+ preg_replace( '/(?<=<div\s)/', 'data-api-key="' . esc_attr( $access_token['key'] ) . '" ', $block_markup, 1 )
);
echo $page_html; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
exit;
}
+add_action( 'wp', __NAMESPACE__ . '\render_single_block_page' );
+
+/**
+ * Helper function to generate the markup of the block in PHP.
+ *
+ * @param Array $points - Array containing geo location points.
+ *
+ * @return string Markup for the jetpack/map block.
+ */
+function map_block_from_geo_points( $points ) {
+ $map_block_data = array(
+ 'points' => $points,
+ 'zoom' => 8,
+ 'mapCenter' => array(
+ 'lng' => $points[0]['coordinates']['longitude'],
+ 'lat' => $points[0]['coordinates']['latitude'],
+ ),
+ );
+
+ $list_items = array_map(
+ function ( $point ) {
+ $link = add_query_arg(
+ array(
+ 'api' => 1,
+ 'query' => $point['coordinates']['latitude'] . ',' . $point['coordinates']['longitude'],
+ ),
+ 'https://www.google.com/maps/search/'
+ );
+ return sprintf( '<li><a href="%s">%s</a></li>', esc_url( $link ), $point['title'] );
+ },
+ $points
+ );
-add_action( 'wp', 'jetpack_map_block_render_single_block_page' );
+ $map_block = '<!-- wp:jetpack/map ' . wp_json_encode( $map_block_data ) . ' -->' . PHP_EOL;
+ $map_block .= sprintf(
+ '<div class="wp-block-jetpack-map" data-map-style="default" data-map-details="true" data-points="%1$s" data-zoom="%2$d" data-map-center="%3$s" data-marker-color="red" data-show-fullscreen-button="true">',
+ esc_html( wp_json_encode( $map_block_data['points'] ) ),
+ (int) $map_block_data['zoom'],
+ esc_html( wp_json_encode( $map_block_data['mapCenter'] ) )
+ );
+ $map_block .= '<ul>' . implode( "\n", $list_items ) . '</ul>';
+ $map_block .= '</div>' . PHP_EOL;
+ $map_block .= '<!-- /wp:jetpack/map -->';
+
+ return $map_block;
+}
diff --git a/plugins/jetpack/extensions/blocks/markdown/markdown.php b/plugins/jetpack/extensions/blocks/markdown/markdown.php
index 27978dcb..13a81fc8 100644
--- a/plugins/jetpack/extensions/blocks/markdown/markdown.php
+++ b/plugins/jetpack/extensions/blocks/markdown/markdown.php
@@ -4,7 +4,22 @@
*
* @since 6.8.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block( 'jetpack/markdown' );
+namespace Automattic\Jetpack\Extensions\Markdown;
+
+use Automattic\Jetpack\Blocks;
+
+const FEATURE_NAME = 'markdown';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block( BLOCK_NAME );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
diff --git a/plugins/jetpack/extensions/blocks/opentable/opentable.php b/plugins/jetpack/extensions/blocks/opentable/opentable.php
index 1ea9cef1..e92f9308 100644
--- a/plugins/jetpack/extensions/blocks/opentable/opentable.php
+++ b/plugins/jetpack/extensions/blocks/opentable/opentable.php
@@ -4,71 +4,32 @@
*
* @since 8.2
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-namespace Jetpack\OpenTable_Block;
+namespace Automattic\Jetpack\Extensions\OpenTable;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
const FEATURE_NAME = 'opentable';
const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
/**
- * Check if the block should be available on the site.
- *
- * @return bool
- */
-function is_available() {
- if (
- defined( 'IS_WPCOM' )
- && IS_WPCOM
- && function_exists( 'has_any_blog_stickers' )
- ) {
- if ( has_any_blog_stickers(
- array( 'premium-plan', 'business-plan', 'ecommerce-plan' ),
- get_current_blog_id()
- ) ) {
- return true;
- }
- return false;
- }
-
- return true;
-}
-
-/**
* Registers the block for use in Gutenberg
* This is done via an action so that we can disable
* registration if we need to.
*/
function register_block() {
- if ( is_available() ) {
- jetpack_register_block(
- BLOCK_NAME,
- array( 'render_callback' => 'Jetpack\OpenTable_Block\load_assets' )
- );
- }
-}
-add_action( 'init', 'Jetpack\OpenTable_Block\register_block' );
-
-/**
- * Set the availability of the block as the editor
- * is loaded.
- */
-function set_availability() {
- if ( is_available() ) {
- \Jetpack_Gutenberg::set_extension_available( BLOCK_NAME );
- } else {
- \Jetpack_Gutenberg::set_extension_unavailable(
- BLOCK_NAME,
- 'missing_plan',
- array(
- 'required_feature' => 'opentable',
- 'required_plan' => 'premium-plan',
- )
- );
- }
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\load_assets',
+ 'plan_check' => true,
+ )
+ );
}
-add_action( 'jetpack_register_gutenberg_extensions', 'Jetpack\OpenTable_Block\set_availability' );
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Adds an inline script which updates the block editor settings to
@@ -79,7 +40,7 @@ add_action( 'jetpack_register_gutenberg_extensions', 'Jetpack\OpenTable_Block\se
function add_language_setting() {
wp_add_inline_script( 'jetpack-blocks-editor', sprintf( "wp.data.dispatch( 'core/block-editor' ).updateSettings( { siteLocale: '%s' } )", str_replace( '_', '-', get_locale() ) ), 'before' );
}
-add_action( 'enqueue_block_assets', 'Jetpack\OpenTable_Block\add_language_setting' );
+add_action( 'enqueue_block_assets', __NAMESPACE__ . '\add_language_setting' );
/**
* OpenTable block registration/dependency declaration.
@@ -89,23 +50,69 @@ add_action( 'enqueue_block_assets', 'Jetpack\OpenTable_Block\add_language_settin
* @return string
*/
function load_assets( $attributes ) {
- \Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
- $classes = array( sprintf( 'wp-block-jetpack-%s-theme-%s', FEATURE_NAME, get_attribute( $attributes, 'style' ) ) );
- if ( count( $attributes['rid'] ) > 1 ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ $classes = array();
+ $class_name = get_attribute( $attributes, 'className' );
+ $style = get_attribute( $attributes, 'style' );
+
+ if ( 'wide' === $style && jetpack_is_mobile() ) {
+ $attributes = array_merge( $attributes, array( 'style' => 'standard' ) );
+ $classes[] = 'is-style-mobile';
+ }
+
+ // Handles case of deprecated version using theme instead of block styles.
+ if ( ! $class_name || strpos( $class_name, 'is-style-' ) === false ) {
+ $classes[] = sprintf( 'is-style-%s', $style );
+ }
+
+ if ( array_key_exists( 'rid', $attributes ) && is_array( $attributes['rid'] ) && count( $attributes['rid'] ) > 1 ) {
$classes[] = 'is-multi';
}
- $classes = \Jetpack_Gutenberg::block_classes(
- FEATURE_NAME,
- $attributes,
- $classes
- );
+ if ( array_key_exists( 'negativeMargin', $attributes ) && $attributes['negativeMargin'] ) {
+ $classes[] = 'has-no-margin';
+ }
+ $classes = Blocks::classes( FEATURE_NAME, $attributes, $classes );
$content = '<div class="' . esc_attr( $classes ) . '">';
- // The OpenTable script uses multiple `rid` paramters,
- // so we can't use WordPress to output it, as WordPress attempts to validate it and removes them.
- // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
- $content .= '<script type="text/javascript" src="' . esc_url( build_embed_url( $attributes ) ) . '"></script>';
+
+ $script_url = build_embed_url( $attributes );
+
+ if ( Blocks::is_amp_request() ) {
+ // Extract params from URL since it had jetpack_opentable_block_url filters applied.
+ $url_query = \wp_parse_url( $script_url, PHP_URL_QUERY ) . '&overlay=false&disablega=false';
+
+ $src = "https://www.opentable.com/widget/reservation/canvas?$url_query";
+
+ $params = array();
+ wp_parse_str( $url_query, $params );
+
+ // Note an iframe is similarly constructed in the block edit function.
+ $content .= sprintf(
+ '<amp-iframe src="%s" layout="fill" sandbox="allow-scripts allow-forms allow-same-origin allow-popups">%s</amp-iframe>',
+ esc_url( $src ),
+ sprintf(
+ '<a placeholder href="%s">%s</a>',
+ esc_url(
+ add_query_arg(
+ array(
+ 'rid' => $params['rid'],
+ ),
+ 'https://www.opentable.com/restref/client/'
+ )
+ ),
+ esc_html__( 'Make a reservation', 'jetpack' )
+ )
+ );
+ } else {
+ // The OpenTable script uses multiple `rid` paramters,
+ // so we can't use WordPress to output it, as WordPress attempts to validate it and removes them.
+ // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
+ $content .= '<script src="' . esc_url( $script_url ) . '"></script>';
+ }
+
$content .= '</div>';
+
return $content;
}
diff --git a/plugins/jetpack/extensions/blocks/pinterest/pinterest.php b/plugins/jetpack/extensions/blocks/pinterest/pinterest.php
index a3b6e616..b12ba8b0 100644
--- a/plugins/jetpack/extensions/blocks/pinterest/pinterest.php
+++ b/plugins/jetpack/extensions/blocks/pinterest/pinterest.php
@@ -4,13 +4,210 @@
*
* @since 8.0.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/pinterest',
- array( 'render_callback' => 'jetpack_pinterest_block_load_assets' )
-);
+namespace Automattic\Jetpack\Extensions\Pinterest;
+
+use Automattic\Jetpack\Blocks;
+use WP_Error;
+
+const FEATURE_NAME = 'pinterest';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+const URL_PATTERN = '#^https?://(?:www\.)?(?:[a-z]{2}\.)?pinterest\.[a-z.]+/pin/(?P<pin_id>[^/]+)/?#i'; // Taken from AMP plugin, originally from Jetpack.
+// This is the validate Pinterest URLs, converted from URL_REGEX in extensions/blocks/pinterest/index.js.
+const PINTEREST_URL_REGEX = '/^https?:\/\/(?:www\.)?(?:[a-z]{2}\.)?(?:pinterest\.[a-z.]+|pin\.it)\/([^\/]+)(\/[^\/]+)?/i';
+// This looks for matches in /foo/ of https://www.pinterest.ca/foo/.
+const REMAINING_URL_PATH_REGEX = '/^\/([^\/]+)\/?$/';
+// This looks for matches with /foo/bar/ of https://www.pinterest.ca/foo/bar/.
+const REMAINING_URL_PATH_WITH_SUBPATH_REGEX = '/^\/([^\/]+)\/([^\/]+)\/?$/';
+
+/**
+ * Determines the Pinterest embed type from the URL.
+ *
+ * @param string $url the URL to check.
+ * @returns {string} The pin type. Empty string if it isn't a valid Pinterest URL.
+ */
+function pin_type( $url ) {
+ if ( null === $url || ! preg_match( PINTEREST_URL_REGEX, $url ) ) {
+ return '';
+ }
+
+ $path = wp_parse_url( $url, PHP_URL_PATH );
+
+ if ( ! $path ) {
+ return '';
+ }
+
+ if ( substr( $path, 0, 5 ) === '/pin/' ) {
+ return 'embedPin';
+ }
+
+ if ( preg_match( REMAINING_URL_PATH_REGEX, $path ) ) {
+ return 'embedUser';
+ }
+
+ if ( preg_match( REMAINING_URL_PATH_WITH_SUBPATH_REGEX, $path ) ) {
+ return 'embedBoard';
+ }
+
+ return '';
+}
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Fetch info for a Pin.
+ *
+ * This is using the same pin info API as AMP is using client-side in the amp-pinterest component.
+ * Successful API responses are cached in a transient for 1 month. Unsuccessful responses are cached for 1 hour.
+ *
+ * @link https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/pin-widget.js#L83-L97
+ * @param string $pin_id Pin ID.
+ * @return array|WP_Error Pin info or error on failure.
+ */
+function fetch_pin_info( $pin_id ) {
+ $transient_id = substr( "jetpack_pin_info_{$pin_id}", 0, 172 );
+
+ $info = get_transient( $transient_id );
+ if ( is_array( $info ) || is_wp_error( $info ) ) {
+ return $info;
+ }
+
+ $pin_info_api_url = add_query_arg(
+ array(
+ 'pin_ids' => rawurlencode( $pin_id ),
+ 'sub' => 'wwww',
+ 'base_scheme' => 'https',
+ ),
+ 'https://widgets.pinterest.com/v3/pidgets/pins/info/'
+ );
+
+ $response = wp_remote_get( esc_url_raw( $pin_info_api_url ) );
+ if ( is_wp_error( $response ) ) {
+ set_transient( $transient_id, $response, HOUR_IN_SECONDS );
+ return $response;
+ }
+
+ $error = null;
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+ if ( ! is_array( $body ) || ! isset( $body['status'] ) ) {
+ $error = new WP_Error( 'bad_json_response', '', compact( 'pin_id' ) );
+ } elseif ( 'success' !== $body['status'] || ! isset( $body['data'][0] ) ) {
+ $error = new WP_Error( 'unsuccessful_request', '', compact( 'pin_id' ) );
+ } elseif ( ! isset( $body['data'][0]['images']['237x'] ) ) {
+ // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/pin-widget.js#L106>.
+ $error = new WP_Error( 'missing_required_image', '', compact( 'pin_id' ) );
+ }
+
+ if ( $error ) {
+ set_transient( $transient_id, $error, HOUR_IN_SECONDS );
+ return $error;
+ } else {
+ $data = $body['data'][0];
+ set_transient( $transient_id, $data, MONTH_IN_SECONDS );
+ return $data;
+ }
+}
+
+/**
+ * Render a Pin using the amp-pinterest component.
+ *
+ * This does not render boards or user profiles.
+ *
+ * Since AMP components need to be statically sized to be valid (so as to avoid layout shifting), there are quite a few
+ * hard-coded numbers as taken from the CSS for the AMP component.
+ *
+ * @param array $attr Block attributes.
+ * @return string Markup for <amp-pinterest>.
+ */
+function render_amp_pin( $attr ) {
+ $info = null;
+ if ( preg_match( URL_PATTERN, $attr['url'], $matches ) ) {
+ $info = fetch_pin_info( $matches['pin_id'] );
+ }
+
+ if ( is_array( $info ) ) {
+ $image = $info['images']['237x'];
+ $title = isset( $info['rich_metadata']['title'] ) ? $info['rich_metadata']['title'] : null;
+ $description = isset( $info['rich_metadata']['description'] ) ? $info['rich_metadata']['description'] : null;
+
+ // This placeholder will appear while waiting for the amp-pinterest component to initialize (or if it fails to initialize due to JS being disabled).
+ $placeholder = sprintf(
+ // The AMP_Img_Sanitizer will convert his to <amp-img> while also supplying `noscript > img` as fallback when JS is disabled.
+ '<a href="%s" placeholder><img src="%s" alt="%s" layout="fill" object-fit="contain" object-position="top left"></a>',
+ esc_url( $attr['url'] ),
+ esc_url( $image['url'] ),
+ esc_attr( $title )
+ );
+
+ $amp_padding = 5; // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/amp-pinterest.css#L269>.
+ $amp_fixed_width = 237; // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/amp-pinterest.css#L270>.
+ $pin_info_height = 60; // Minimum Obtained by measuring the height of the .-amp-pinterest-embed-pin-text element.
+
+ // Add height based on how much description there is. There are roughly 30 characters on a line of description text.
+ $has_description = false;
+ if ( ! empty( $info['description'] ) ) {
+ $desc_padding_top = 5; // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/amp-pinterest.css#L342>.
+ $pin_info_height += $desc_padding_top;
+
+ // Trim whitespace on description if there is any left, use to calculate the likely rows of text.
+ $description = trim( $info['description'] );
+ if ( strlen( $description ) > 0 ) {
+ $has_description = true;
+ $desc_line_height = 17; // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/amp-pinterest.css#L341>.
+ $pin_info_height += ceil( strlen( $description ) / 30 ) * $desc_line_height;
+ }
+ }
+
+ if ( ! empty( $info['repin_count'] ) ) {
+ $pin_stats_height = 16; // See <https://github.com/ampproject/amphtml/blob/b5dea36e0b8bd012585d50839766a084f99a3685/extensions/amp-pinterest/0.1/amp-pinterest.css#L322>.
+ $pin_info_height += $pin_stats_height;
+ }
+
+ // When Pin description is empty, make sure title and description from rich metadata are supplied for accessibility and discoverability.
+ $title = $has_description ? '' : implode( "\n", array_filter( array( $title, $description ) ) );
+
+ $amp_pinterest = sprintf(
+ '<amp-pinterest style="%1$s" data-do="embedPin" data-url="%2$s" width="%3$d" height="%4$d" title="%5$s">%6$s</amp-pinterest>',
+ esc_attr( 'line-height:1.5; font-size:21px' ), // Override styles from theme due to precise height calculations above.
+ esc_url( $attr['url'] ),
+ $amp_fixed_width + ( $amp_padding * 2 ),
+ $image['height'] + $pin_info_height + ( $amp_padding * 2 ),
+ esc_attr( $title ),
+ $placeholder
+ );
+ } else {
+ // Fallback embed when info is not available.
+ $amp_pinterest = sprintf(
+ '<amp-pinterest data-do="embedPin" data-url="%1$s" width="%2$d" height="%3$d">%4$s</amp-pinterest>',
+ esc_url( $attr['url'] ),
+ 450, // Fallback width.
+ 750, // Fallback height.
+ sprintf(
+ '<a placeholder href="%s">%s</a>',
+ esc_url( $attr['url'] ),
+ esc_html( $attr['url'] )
+ )
+ );
+ }
+
+ return sprintf(
+ '<div class="wp-block-jetpack-pinterest">%s</div>',
+ $amp_pinterest
+ );
+}
/**
* Pinterest block registration/dependency declaration.
@@ -20,7 +217,30 @@ jetpack_register_block(
*
* @return string
*/
-function jetpack_pinterest_block_load_assets( $attr, $content ) {
- wp_enqueue_script( 'pinterest-pinit', 'https://assets.pinterest.com/js/pinit.js', array(), JETPACK__VERSION, true );
- return $content;
+function load_assets( $attr, $content ) {
+ if ( ! jetpack_is_frontend() ) {
+ return $content;
+ }
+ if ( Blocks::is_amp_request() ) {
+ return render_amp_pin( $attr );
+ } else {
+ $url = $attr['url'];
+ $type = pin_type( $url );
+
+ if ( ! $type ) {
+ return '';
+ }
+
+ wp_enqueue_script( 'pinterest-pinit', 'https://assets.pinterest.com/js/pinit.js', array(), JETPACK__VERSION, true );
+ return sprintf(
+ '
+ <div class="%1$s">
+ <a data-pin-do="%2$s" href="%3$s"></a>
+ </div>
+ ',
+ esc_attr( Blocks::classes( FEATURE_NAME, $attr ) ),
+ esc_attr( $type ),
+ esc_url( $url )
+ );
+ }
}
diff --git a/plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php b/plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php
new file mode 100644
index 00000000..9b3af865
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/podcast-player/podcast-player.php
@@ -0,0 +1,312 @@
+<?php
+/**
+ * Podcast Player Block.
+ *
+ * @since 8.4.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Podcast_Player;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+use Jetpack_Podcast_Helper;
+
+const FEATURE_NAME = 'podcast-player';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+if ( ! class_exists( 'Jetpack_Podcast_Helper' ) ) {
+ \jetpack_require_lib( 'class-jetpack-podcast-helper' );
+}
+
+/**
+ * Registers the block for use in Gutenberg. This is done via an action so that
+ * we can disable registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'attributes' => array(
+ 'url' => array(
+ 'type' => 'string',
+ ),
+ 'itemsToShow' => array(
+ 'type' => 'integer',
+ 'default' => 5,
+ ),
+ 'showCoverArt' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ 'showEpisodeTitle' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ 'showEpisodeDescription' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ ),
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ // Since Gutenberg #31873.
+ 'style' => 'wp-mediaelement',
+
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Returns the error message wrapped in HTML if current user
+ * has the capability to edit the post. Public visitors will
+ * never see errors.
+ *
+ * @param string $message The error message to display.
+ * @return string
+ */
+function render_error( $message ) {
+ // Suppress errors for users unable to address them.
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ return '';
+ }
+ return '<p>' . esc_html( $message ) . '</p>';
+}
+
+/**
+ * Podcast Player block registration/dependency declaration.
+ *
+ * @param array $attributes Array containing the Podcast Player block attributes.
+ * @param string $content Fallback content - a direct link to RSS, as rendered by save.js.
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ // Don't render an interactive version of the block outside the frontend context.
+ if ( ! jetpack_is_frontend() ) {
+ return $content;
+ }
+
+ // Test for empty URLS.
+ if ( empty( $attributes['url'] ) ) {
+ return render_error( __( 'No Podcast URL provided. Please enter a valid Podcast RSS feed URL.', 'jetpack' ) );
+ }
+
+ // Test for invalid URLs.
+ if ( ! wp_http_validate_url( $attributes['url'] ) ) {
+ return render_error( __( 'Your podcast URL is invalid and couldn\'t be embedded. Please double check your URL.', 'jetpack' ) );
+ }
+
+ if ( isset( $attributes['selectedEpisodes'] ) && count( $attributes['selectedEpisodes'] ) ) {
+ $guids = array_map(
+ function ( $episode ) {
+ return $episode['guid'];
+ },
+ $attributes['selectedEpisodes']
+ );
+ $player_args = array( 'guids' => $guids );
+ } else {
+ $player_args = array();
+ }
+
+ // Sanitize the URL.
+ $attributes['url'] = esc_url_raw( $attributes['url'] );
+ $player_data = ( new Jetpack_Podcast_Helper( $attributes['url'] ) )->get_player_data( $player_args );
+
+ if ( is_wp_error( $player_data ) ) {
+ return render_error( $player_data->get_error_message() );
+ }
+
+ return render_player( $player_data, $attributes );
+}
+
+/**
+ * Renders the HTML for the Podcast player and tracklist.
+ *
+ * @param array $player_data The player data details.
+ * @param array $attributes Array containing the Podcast Player block attributes.
+ * @return string The HTML for the podcast player.
+ */
+function render_player( $player_data, $attributes ) {
+ // If there are no tracks (it is possible) then display appropriate user facing error message.
+ if ( empty( $player_data['tracks'] ) ) {
+ return render_error( __( 'No tracks available to play.', 'jetpack' ) );
+ }
+
+ // Only use the amount of tracks requested.
+ $player_data['tracks'] = array_slice(
+ $player_data['tracks'],
+ 0,
+ absint( $attributes['itemsToShow'] )
+ );
+
+ // Generate a unique id for the block instance.
+ $instance_id = wp_unique_id( 'jetpack-podcast-player-block-' . get_the_ID() . '-' );
+ $player_data['playerId'] = $instance_id;
+
+ // Generate object to be used as props for PodcastPlayer.
+ $player_props = array_merge(
+ // Add all attributes.
+ array( 'attributes' => $attributes ),
+ // Add all player data.
+ $player_data
+ );
+
+ $primary_colors = get_colors( 'primary', $attributes, 'color' );
+ $secondary_colors = get_colors( 'secondary', $attributes, 'color' );
+ $background_colors = get_colors( 'background', $attributes, 'background-color' );
+
+ $player_classes_name = trim( "{$secondary_colors['class']} {$background_colors['class']}" );
+ $player_inline_style = trim( "{$secondary_colors['style']} ${background_colors['style']}" );
+ $player_inline_style .= get_css_vars( $attributes );
+
+ $block_classname = Blocks::classes( FEATURE_NAME, $attributes, array( 'is-default' ) );
+ $is_amp = Blocks::is_amp_request();
+
+ ob_start();
+ ?>
+ <div class="<?php echo esc_attr( $block_classname ); ?>" id="<?php echo esc_attr( $instance_id ); ?>">
+ <section
+ class="jetpack-podcast-player <?php echo esc_attr( $player_classes_name ); ?>"
+ style="<?php echo esc_attr( $player_inline_style ); ?>"
+ >
+ <?php
+ render(
+ 'podcast-header',
+ array_merge(
+ $player_props,
+ array(
+ 'primary_colors' => $primary_colors,
+ 'player_id' => $player_data['playerId'],
+ )
+ )
+ );
+ ?>
+ <?php if ( count( $player_data['tracks'] ) > 1 ) : ?>
+ <ol class="jetpack-podcast-player__tracks">
+ <?php foreach ( $player_data['tracks'] as $track_index => $attachment ) : ?>
+ <?php
+ render(
+ 'playlist-track',
+ array(
+ 'is_active' => 0 === $track_index,
+ 'attachment' => $attachment,
+ 'primary_colors' => $primary_colors,
+ 'secondary_colors' => $secondary_colors,
+ )
+ );
+ ?>
+ <?php endforeach; ?>
+ </ol>
+ <?php endif; ?>
+ </section>
+ <?php if ( ! $is_amp ) : ?>
+ <script type="application/json"><?php echo wp_json_encode( $player_props ); ?></script>
+ <?php endif; ?>
+ </div>
+ <?php
+ /**
+ * Enqueue necessary scripts and styles.
+ */
+ if ( ! $is_amp ) {
+ wp_enqueue_style( 'wp-mediaelement' );
+ }
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME, array( 'mediaelement' ) );
+
+ return ob_get_clean();
+}
+
+/**
+ * Given the color name, block attributes and the CSS property,
+ * the function will return an array with the `class` and `style`
+ * HTML attributes to be used straight in the markup.
+ *
+ * @example
+ * $color = get_colors( 'secondary', $attributes, 'border-color'
+ * => array( 'class' => 'has-secondary', 'style' => 'border-color: #333' )
+ *
+ * @param string $name Color attribute name, for instance `primary`, `secondary`, ...
+ * @param array $attrs Block attributes.
+ * @param string $property Color CSS property, fo instance `color`, `background-color`, ...
+ * @return array Colors array.
+ */
+function get_colors( $name, $attrs, $property ) {
+ $attr_color = "{$name}Color";
+ $attr_custom = 'custom' . ucfirst( $attr_color );
+
+ $color = isset( $attrs[ $attr_color ] ) ? $attrs[ $attr_color ] : null;
+ $custom_color = isset( $attrs[ $attr_custom ] ) ? $attrs[ $attr_custom ] : null;
+
+ $colors = array(
+ 'class' => '',
+ 'style' => '',
+ );
+
+ if ( $color || $custom_color ) {
+ $colors['class'] .= "has-{$name}";
+
+ if ( $color ) {
+ $colors['class'] .= " has-{$color}-{$property}";
+ } elseif ( $custom_color ) {
+ $colors['style'] .= "{$property}: {$custom_color};";
+ }
+ }
+
+ return $colors;
+}
+
+/**
+ * It generates a string with CSS variables according to the
+ * block colors, prefixing each one with `--jetpack-podcast-player'.
+ *
+ * @param array $attrs Podcast Block attributes object.
+ * @return string CSS variables depending on block colors.
+ */
+function get_css_vars( $attrs ) {
+ $colors_name = array( 'primary', 'secondary', 'background' );
+
+ $inline_style = '';
+ foreach ( $colors_name as $color ) {
+ $hex_color = 'hex' . ucfirst( $color ) . 'Color';
+ if ( ! empty( $attrs[ $hex_color ] ) ) {
+ $inline_style .= " --jetpack-podcast-player-{$color}: {$attrs[ $hex_color ]};";
+ }
+ }
+ return $inline_style;
+}
+
+/**
+ * Render the given template in server-side.
+ * Important note:
+ * The $template_props array will be extracted.
+ * This means it will create a var for each array item.
+ * Keep it mind when using this param to pass
+ * properties to the template.
+ *
+ * @param string $name Template name, available in `./templates` folder.
+ * @param array $template_props Template properties. Optional.
+ * @param bool $print Render template. True as default.
+ * @return false|string HTML markup or false.
+ */
+function render( $name, $template_props = array(), $print = true ) {
+ if ( ! strpos( $name, '.php' ) ) {
+ $name = $name . '.php';
+ }
+
+ $template_path = __DIR__ . '/templates/' . $name;
+
+ if ( ! file_exists( $template_path ) ) {
+ return '';
+ }
+
+ if ( $print ) {
+ include $template_path;
+ } else {
+ ob_start();
+ include $template_path;
+ $markup = ob_get_contents();
+ ob_end_clean();
+
+ return $markup;
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/podcast-player/templates/playlist-track.php b/plugins/jetpack/extensions/blocks/podcast-player/templates/playlist-track.php
new file mode 100644
index 00000000..0789816e
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/podcast-player/templates/playlist-track.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Podcast Title template.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Podcast_Player;
+
+/**
+ * Template variables.
+ *
+ * @var array $template_props
+ */
+
+$track_title = $template_props['attachment']['title'];
+$track_link = empty( $template_props['attachment']['link'] ) ? $template_props['attachment']['src'] : $template_props['attachment']['link'];
+$track_duration = ! empty( $template_props['attachment']['duration'] ) ? $template_props['attachment']['duration'] : '';
+
+$class = 'jetpack-podcast-player__track ' . $template_props['secondary_colors']['class'];
+$style = $template_props['secondary_colors']['style'];
+if ( $template_props['is_active'] ) {
+ $class = 'jetpack-podcast-player__track is-active ' . $template_props['primary_colors']['class'];
+ $style = $template_props['primary_colors']['style'];
+}
+
+?>
+
+<li
+ class="<?php echo esc_attr( trim( $class ) ); ?>"
+ style="<?php echo esc_attr( $style ); ?>"
+>
+ <a
+ class="jetpack-podcast-player__track-link jetpack-podcast-player__link"
+ href="<?php echo esc_url( $track_link ); ?>"
+ role="button"
+ <?php echo $template_props['is_active'] ? 'aria-current="track"' : ''; ?>
+ >
+ <span class="jetpack-podcast-player__track-status-icon"></span>
+ <span class="jetpack-podcast-player__track-title"><?php echo esc_html( $track_title ); ?></span>
+ <time class="jetpack-podcast-player__track-duration"><?php echo esc_html( $track_duration ); ?></time>
+ </a>
+</li>
diff --git a/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header-title.php b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header-title.php
new file mode 100644
index 00000000..763aa83a
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header-title.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Podcast Header Title template.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Podcast_Player;
+
+/**
+ * Template variables.
+ *
+ * @var string $template_props
+ */
+
+if ( ! isset( $template_props['title'] ) && empty( $template_props['track']['title'] ) ) {
+ return;
+}
+
+$track_link = empty( $template_props['track']['link'] ) ? $template_props['track']['src'] : $template_props['track']['link'];
+?>
+
+<h2 id="<?php echo esc_attr( $template_props['player_id'] ); ?>__title" class="jetpack-podcast-player__title">
+ <span
+ class="jetpack-podcast-player__current-track-title <?php echo esc_attr( $template_props['primary_colors']['class'] ); ?>"
+ <?php echo isset( $template_props['primary_colors']['style'] ) ? 'style="' . esc_attr( $template_props['primary_colors']['style'] ) . '"' : ''; ?>
+ >
+ <?php
+ echo esc_html( $template_props['track']['title'] );
+ if ( ! empty( $track_link ) ) :
+ // Prevent whitespace between title and link to cause a jump when JS kicks in.
+ // phpcs:disable Squiz.PHP.EmbeddedPhp.ContentAfterEnd
+ ?><a
+ class="jetpack-podcast-player__track-title-link"
+ href="<?php echo esc_url( $track_link ); ?>"
+ target="_blank"
+ rel="noopener noreferrer nofollow"
+ >
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">
+ <path d="M15.6 7.2H14v1.5h1.6c2 0 3.7 1.7 3.7 3.7s-1.7 3.7-3.7 3.7H14v1.5h1.6c2.8 0 5.2-2.3 5.2-5.2 0-2.9-2.3-5.2-5.2-5.2zM4.7 12.4c0-2 1.7-3.7 3.7-3.7H10V7.2H8.4c-2.9 0-5.2 2.3-5.2 5.2 0 2.9 2.3 5.2 5.2 5.2H10v-1.5H8.4c-2 0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z" />
+ </svg>
+ </a>
+ <?php endif; // phpcs:enable ?>
+ </span>
+
+ <?php if ( ! empty( $template_props['title'] ) ) : ?>
+ <span class="jetpack-podcast-player--visually-hidden"> - </span>
+
+ <?php
+ render(
+ 'podcast-title',
+ array(
+ 'title' => $template_props['title'],
+ 'link' => $template_props['link'],
+ )
+ );
+ ?>
+ <?php endif; ?>
+</h2>
diff --git a/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header.php b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header.php
new file mode 100644
index 00000000..b6167df2
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-header.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Podcast Header template.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Podcast_Player;
+
+/**
+ * Template variables.
+ *
+ * @var array $template_props
+ */
+
+/**
+ * Block attributes.
+ */
+$attributes = (array) $template_props['attributes']; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+$show_cover_art = (bool) $attributes['showCoverArt'];
+$show_episode_title = (bool) $attributes['showEpisodeTitle'];
+$show_episode_description = (bool) $attributes['showEpisodeDescription'];
+
+// Current track.
+$tracks = $template_props['tracks'];
+$track = ( is_array( $tracks ) && ! empty( $tracks ) ) ? $tracks[0] : array();
+?>
+
+<div class="jetpack-podcast-player__header">
+ <div class="jetpack-podcast-player__current-track-info">
+ <?php if ( $show_cover_art && isset( $template_props['cover'] ) ) : ?>
+ <div class="jetpack-podcast-player__cover">
+ <img class="jetpack-podcast-player__cover-image" src="<?php echo esc_url( $template_props['cover'] ); ?>" alt="" />
+ </div>
+ <?php endif; ?>
+
+ <?php
+ if ( $show_episode_title ) {
+ render(
+ 'podcast-header-title',
+ array(
+ 'player_id' => $template_props['player_id'],
+ 'title' => $template_props['title'],
+ 'link' => $template_props['link'],
+ 'track' => $track,
+ 'primary_colors' => $template_props['primary_colors'],
+ )
+ );
+ }
+ ?>
+ </div>
+
+ <?php
+ if ( $show_episode_description && ! empty( $track ) && isset( $track['description'] ) ) :
+ ?>
+ <div
+ id="<?php echo esc_attr( $template_props['player_id'] ); ?>__track-description"
+ class="jetpack-podcast-player__track-description"
+ >
+ <?php echo esc_html( $track['description'] ); ?>
+ </div>
+ <?php endif; ?>
+
+ <div class="jetpack-podcast-player__audio-player">
+ <div class="jetpack-podcast-player--audio-player-loading"></div>
+ </div>
+</div>
diff --git a/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-title.php b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-title.php
new file mode 100644
index 00000000..ce5b59ca
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/podcast-player/templates/podcast-title.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Podcast Title template.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Podcast_Player;
+
+/**
+ * Template variables.
+ *
+ * @var string $template_props
+ */
+
+if ( empty( $template_props['title'] ) ) {
+ return;
+}
+
+?>
+<span class="jetpack-podcast-player__podcast-title">
+ <?php if ( ! empty( $template_props['link'] ) ) : ?>
+ <a
+ class="jetpack-podcast-player__link"
+ href="<?php echo esc_url( $template_props['link'] ); ?>"
+ target="_blank"
+ rel="noopener noreferrer nofollow"
+ >
+ <?php echo esc_html( $template_props['title'] ); ?>
+ </a>
+ <?php
+ else :
+ echo esc_html( $template_props['title'] );
+ endif;
+ ?>
+</span>
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/access-check.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/access-check.php
new file mode 100644
index 00000000..77ab96a1
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/access-check.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * Determine access to premium content.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+require __DIR__ . '/subscription-service/include.php';
+
+/**
+ * Determines if the memberships module is set up.
+ *
+ * @return bool Whether the memberships module is set up.
+ */
+function membership_checks() {
+ // If Jetpack is not yet configured, don't show anything ...
+ if ( ! class_exists( '\Jetpack_Memberships' ) ) {
+ return false;
+ }
+ // if stripe not connected don't show anything...
+ if ( empty( \Jetpack_Memberships::get_connected_account_id() ) ) {
+ return false;
+ }
+ return true;
+}
+
+/**
+ * Determines if the site has a plan that supports the
+ * Premium Content block.
+ *
+ * @return bool
+ */
+function required_plan_checks() {
+ $availability = \Jetpack_Gutenberg::get_cached_availability();
+ $slug = 'premium-content/container';
+ return ( isset( $availability[ $slug ] ) && $availability[ $slug ]['available'] );
+}
+
+/**
+ * Determines if the block should be rendered. Returns true
+ * if the block passes all required checks, or if the user is
+ * an editor.
+ *
+ * @return bool Whether the block should be rendered.
+ */
+function pre_render_checks() {
+ return ( current_user_can_edit() || membership_checks() );
+}
+
+/**
+ * Determines whether the current user can edit.
+ *
+ * @return bool Whether the user can edit.
+ */
+function current_user_can_edit() {
+ $user = wp_get_current_user();
+
+ return 0 !== $user->ID && current_user_can( 'edit_post', get_the_ID() );
+}
+
+/**
+ * Determines if the current user can view the protected content of the given block.
+ *
+ * @param array $attributes Block attributes.
+ * @param object $block Block to check.
+ *
+ * @return bool Whether the use can view the content.
+ */
+function current_visitor_can_access( $attributes, $block ) {
+ /**
+ * If the current WordPress install has as signed in user
+ * they can see the content.
+ */
+ if ( current_user_can_edit() ) {
+ return true;
+ }
+
+ $selected_plan_id = null;
+
+ if ( isset( $attributes['selectedPlanId'] ) ) {
+ $selected_plan_id = (int) $attributes['selectedPlanId'];
+ }
+
+ if ( isset( $block ) && isset( $block->context['premium-content/planId'] ) ) {
+ $selected_plan_id = (int) $block->context['premium-content/planId'];
+ }
+
+ if ( empty( $selected_plan_id ) ) {
+ return false;
+ }
+
+ $paywall = subscription_service();
+ $can_view = $paywall->visitor_can_view_content( array( $selected_plan_id ) );
+
+ if ( $can_view ) {
+ /**
+ * Fires when a visitor can view protected content on a site.
+ *
+ * @since 9.4.0
+ */
+ do_action( 'jetpack_earn_remove_cache_headers' );
+ }
+
+ return $can_view;
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/legacy-buttons.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/legacy-buttons.php
new file mode 100644
index 00000000..1124160f
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/legacy-buttons.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Create legacy buttons markup.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+/**
+ * Creates a subscribe/login buttons markup for legacy blocks.
+ *
+ * @param array $attributes Block attributes.
+ * @param string $content String containing the block content.
+ * @param object $block Legacy block.
+ *
+ * @return string Subscribe/login buttons markup.
+ */
+function create_legacy_buttons_markup( $attributes, $content, $block ) {
+ $button_styles = array();
+ if ( ! empty( $attributes['customBackgroundButtonColor'] ) ) {
+ array_push(
+ $button_styles,
+ sprintf(
+ 'background-color: %s',
+ isset( $attributes['customBackgroundButtonColor'] ) ? sanitize_hex_color( $attributes['customBackgroundButtonColor'] ) : 'transparent'
+ )
+ );
+ }
+ if ( ! empty( $attributes['customTextButtonColor'] ) ) {
+ array_push(
+ $button_styles,
+ sprintf(
+ 'color: %s',
+ isset( $attributes['customTextButtonColor'] ) ? sanitize_hex_color( $attributes['customTextButtonColor'] ) : 'inherit'
+ )
+ );
+ }
+ $button_styles = implode( ';', $button_styles );
+
+ $login_button = sprintf(
+ '<div class="wp-block-button"><a role="button" href="%1$s" class="%2$s" style="%3$s">%4$s</a></div>',
+ subscription_service()->access_url(),
+ empty( $attributes['buttonClasses'] ) ? 'wp-block-button__link' : esc_attr( $attributes['buttonClasses'] ),
+ esc_attr( $button_styles ),
+ empty( $attributes['loginButtonText'] ) ? __( 'Log In', 'jetpack' ) : $attributes['loginButtonText']
+ );
+
+ $subscribe_button = \Jetpack_Memberships::get_instance()->render_button(
+ array(
+ 'planId' => empty( $block->context['premium-content/planId'] ) ? 0 : $block->context['premium-content/planId'],
+ 'submitButtonClasses' => empty( $attributes['buttonClasses'] ) ? 'wp-block-button__link' : esc_attr( $attributes['buttonClasses'] ),
+ 'customTextButtonColor' => empty( $attributes['customTextButtonColor'] ) ? '' : esc_attr( $attributes['customTextButtonColor'] ),
+ 'customBackgroundButtonColor' => empty( $attributes['customBackgroundButtonColor'] ) ? '' : esc_attr( $attributes['customBackgroundButtonColor'] ),
+ 'submitButtonText' => empty( $attributes['subscribeButtonText'] ) ? __( 'Subscribe', 'jetpack' ) : esc_attr( $attributes['subscribeButtonText'] ),
+ ),
+ $content,
+ $block
+ );
+
+ return "<div class='wp-block-premium-content-logged-out-view__buttons'>{$subscribe_button}{$login_button}</div>";
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jetpack-token-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jetpack-token-subscription-service.php
new file mode 100644
index 00000000..2dc8cfb3
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jetpack-token-subscription-service.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * A paywall that exchanges JWT tokens from WordPress.com to allow
+ * a current visitor to view content that has been deemed "Premium content".
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+use Automattic\Jetpack\Connection\Tokens;
+
+/**
+ * Class Jetpack_Token_Subscription_Service
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+class Jetpack_Token_Subscription_Service extends Token_Subscription_Service {
+
+ /**
+ * Is the Jetpack_Options class available?
+ *
+ * @return bool Whether Jetpack_Options class exists.
+ */
+ public static function available() {
+ return class_exists( '\Jetpack_Options' );
+ }
+
+ /**
+ * Get the site ID.
+ *
+ * @return int The site ID.
+ */
+ public function get_site_id() {
+ return \Jetpack_Options::get_option( 'id' );
+ }
+
+ /**
+ * Get the key.
+ *
+ * @return string The key.
+ */
+ public function get_key() {
+ $token = ( new Tokens() )->get_access_token();
+ if ( ! isset( $token->secret ) ) {
+ return false;
+ }
+ return $token->secret;
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jwt.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jwt.php
new file mode 100644
index 00000000..f2d1f1d8
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-jwt.php
@@ -0,0 +1,441 @@
+<?php
+/**
+ * JSON Web Token implementation, based on this spec:
+ * https://tools.ietf.org/html/rfc7519
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use \DateTime;
+use \DomainException;
+use \InvalidArgumentException;
+use \UnexpectedValueException;
+
+/**
+ * JSON Web Token implementation, based on this spec:
+ * https://tools.ietf.org/html/rfc7519
+ *
+ * PHP version 5
+ *
+ * @category Authentication
+ * @package Authentication_JWT
+ * @author Neuman Vong <neuman@twilio.com>
+ * @author Anant Narayanan <anant@php.net>
+ * @license http://opensource.org/licenses/BSD-3-Clause 3-clause BSD
+ * @link https://github.com/firebase/php-jwt
+ */
+class JWT {
+ /**
+ * When checking nbf, iat or expiration times,
+ * we want to provide some extra leeway time to
+ * account for clock skew.
+ *
+ * @var int $leeway The leeway value.
+ */
+ public static $leeway = 0;
+
+ /**
+ * Allow the current timestamp to be specified.
+ * Useful for fixing a value within unit testing.
+ *
+ * Will default to PHP time() value if null.
+ *
+ * @var string $timestamp The timestamp.
+ */
+ public static $timestamp = null;
+
+ /**
+ * Supported algorithms.
+ *
+ * @var array $supported_algs Supported algorithms.
+ */
+ public static $supported_algs = array(
+ 'HS256' => array( 'hash_hmac', 'SHA256' ),
+ 'HS512' => array( 'hash_hmac', 'SHA512' ),
+ 'HS384' => array( 'hash_hmac', 'SHA384' ),
+ 'RS256' => array( 'openssl', 'SHA256' ),
+ 'RS384' => array( 'openssl', 'SHA384' ),
+ 'RS512' => array( 'openssl', 'SHA512' ),
+ );
+
+ /**
+ * Decodes a JWT string into a PHP object.
+ *
+ * @param string $jwt The JWT.
+ * @param string|array $key The key, or map of keys.
+ * If the algorithm used is asymmetric, this is the public key.
+ * @param array $allowed_algs List of supported verification algorithms.
+ * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'.
+ *
+ * @return object The JWT's payload as a PHP object
+ *
+ * @throws UnexpectedValueException Provided JWT was invalid.
+ * @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed.
+ * @throws InvalidArgumentException Provided JWT is trying to be used before it's eligible as defined by 'nbf'.
+ * @throws BeforeValidException Provided JWT is trying to be used before it's been created as defined by 'iat'.
+ * @throws ExpiredException Provided JWT has since expired, as defined by the 'exp' claim.
+ *
+ * @uses json_decode
+ * @uses urlsafe_b64_decode
+ */
+ public static function decode( $jwt, $key, array $allowed_algs = array() ) {
+ $timestamp = is_null( static::$timestamp ) ? time() : static::$timestamp;
+
+ if ( empty( $key ) ) {
+ throw new InvalidArgumentException( 'Key may not be empty' );
+ }
+
+ $tks = explode( '.', $jwt );
+ if ( count( $tks ) !== 3 ) {
+ throw new UnexpectedValueException( 'Wrong number of segments' );
+ }
+
+ list( $headb64, $bodyb64, $cryptob64 ) = $tks;
+
+ $header = static::json_decode( static::urlsafe_b64_decode( $headb64 ) );
+ if ( null === $header ) {
+ throw new UnexpectedValueException( 'Invalid header encoding' );
+ }
+
+ $payload = static::json_decode( static::urlsafe_b64_decode( $bodyb64 ) );
+ if ( null === $payload ) {
+ throw new UnexpectedValueException( 'Invalid claims encoding' );
+ }
+
+ $sig = static::urlsafe_b64_decode( $cryptob64 );
+ if ( false === $sig ) {
+ throw new UnexpectedValueException( 'Invalid signature encoding' );
+ }
+
+ if ( empty( $header->alg ) ) {
+ throw new UnexpectedValueException( 'Empty algorithm' );
+ }
+
+ if ( empty( static::$supported_algs[ $header->alg ] ) ) {
+ throw new UnexpectedValueException( 'Algorithm not supported' );
+ }
+
+ if ( ! in_array( $header->alg, $allowed_algs, true ) ) {
+ throw new UnexpectedValueException( 'Algorithm not allowed' );
+ }
+
+ if ( is_array( $key ) || $key instanceof \ArrayAccess ) {
+ if ( isset( $header->kid ) ) {
+ if ( ! isset( $key[ $header->kid ] ) ) {
+ throw new UnexpectedValueException( '"kid" invalid, unable to lookup correct key' );
+ }
+ $key = $key[ $header->kid ];
+ } else {
+ throw new UnexpectedValueException( '"kid" empty, unable to lookup correct key' );
+ }
+ }
+
+ // Check the signature.
+ if ( ! static::verify( "$headb64.$bodyb64", $sig, $key, $header->alg ) ) {
+ throw new SignatureInvalidException( 'Signature verification failed' );
+ }
+
+ // Check if the nbf if it is defined. This is the time that the
+ // token can actually be used. If it's not yet that time, abort.
+ if ( isset( $payload->nbf ) && $payload->nbf > ( $timestamp + static::$leeway ) ) {
+ throw new BeforeValidException(
+ 'Cannot handle token prior to ' . gmdate( DateTime::ISO8601, $payload->nbf )
+ );
+ }
+
+ // Check that this token has been created before 'now'. This prevents
+ // using tokens that have been created for later use (and haven't
+ // correctly used the nbf claim).
+ if ( isset( $payload->iat ) && $payload->iat > ( $timestamp + static::$leeway ) ) {
+ throw new BeforeValidException(
+ 'Cannot handle token prior to ' . gmdate( DateTime::ISO8601, $payload->iat )
+ );
+ }
+
+ // Check if this token has expired.
+ if ( isset( $payload->exp ) && ( $timestamp - static::$leeway ) >= $payload->exp ) {
+ throw new ExpiredException( 'Expired token' );
+ }
+
+ return $payload;
+ }
+
+ /**
+ * Converts and signs a PHP object or array into a JWT string.
+ *
+ * @param object|array $payload PHP object or array.
+ * @param string $key The secret key.
+ * If the algorithm used is asymmetric, this is the private key.
+ * @param string $alg The signing algorithm.
+ * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'.
+ * @param mixed $key_id The key ID.
+ * @param array $head An array with header elements to attach.
+ *
+ * @return string A signed JWT
+ *
+ * @uses json_encode
+ * @uses urlsafe_b64_decode
+ */
+ public static function encode( $payload, $key, $alg = 'HS256', $key_id = null, $head = null ) {
+ $header = array(
+ 'typ' => 'JWT',
+ 'alg' => $alg,
+ );
+
+ if ( null !== $key_id ) {
+ $header['kid'] = $key_id;
+ }
+
+ if ( isset( $head ) && is_array( $head ) ) {
+ $header = array_merge( $head, $header );
+ }
+
+ $segments = array();
+ $segments[] = static::urlsafe_b64_decode( static::json_encode( $header ) );
+ $segments[] = static::urlsafe_b64_decode( static::json_encode( $payload ) );
+ $signing_input = implode( '.', $segments );
+
+ $signature = static::sign( $signing_input, $key, $alg );
+ $segments[] = static::urlsafe_b64_decode( $signature );
+
+ return implode( '.', $segments );
+ }
+
+ /**
+ * Sign a string with a given key and algorithm.
+ *
+ * @param string $msg The message to sign.
+ * @param string|resource $key The secret key.
+ * @param string $alg The signing algorithm.
+ * Supported algorithms are 'HS256', 'HS384', 'HS512' and 'RS256'.
+ *
+ * @return string An encrypted message
+ *
+ * @throws DomainException Unsupported algorithm was specified.
+ */
+ public static function sign( $msg, $key, $alg = 'HS256' ) {
+ if ( empty( static::$supported_algs[ $alg ] ) ) {
+ throw new DomainException( 'Algorithm not supported' );
+ }
+ list($function, $algorithm) = static::$supported_algs[ $alg ];
+ switch ( $function ) {
+ case 'hash_hmac':
+ return hash_hmac( $algorithm, $msg, $key, true );
+ case 'openssl':
+ $signature = '';
+ $success = openssl_sign( $msg, $signature, $key, $algorithm );
+ if ( ! $success ) {
+ throw new DomainException( 'OpenSSL unable to sign data' );
+ } else {
+ return $signature;
+ }
+ }
+ }
+
+ /**
+ * Verify a signature with the message, key and method. Not all methods
+ * are symmetric, so we must have a separate verify and sign method.
+ *
+ * @param string $msg The original message (header and body).
+ * @param string $signature The original signature.
+ * @param string|resource $key For HS*, a string key works. for RS*, must be a resource of an openssl public key.
+ * @param string $alg The algorithm.
+ *
+ * @return bool
+ *
+ * @throws DomainException Invalid Algorithm or OpenSSL failure.
+ */
+ private static function verify( $msg, $signature, $key, $alg ) {
+ if ( empty( static::$supported_algs[ $alg ] ) ) {
+ throw new DomainException( 'Algorithm not supported' );
+ }
+
+ list($function, $algorithm) = static::$supported_algs[ $alg ];
+ switch ( $function ) {
+ case 'openssl':
+ $success = openssl_verify( $msg, $signature, $key, $algorithm );
+
+ if ( 1 === $success ) {
+ return true;
+ } elseif ( 0 === $success ) {
+ return false;
+ }
+
+ // returns 1 on success, 0 on failure, -1 on error.
+ throw new DomainException(
+ 'OpenSSL error: ' . openssl_error_string()
+ );
+ case 'hash_hmac':
+ default:
+ $hash = hash_hmac( $algorithm, $msg, $key, true );
+
+ if ( function_exists( 'hash_equals' ) ) {
+ return hash_equals( $signature, $hash );
+ }
+
+ $len = min( static::safe_strlen( $signature ), static::safe_strlen( $hash ) );
+
+ $status = 0;
+
+ for ( $i = 0; $i < $len; $i++ ) {
+ $status |= ( ord( $signature[ $i ] ) ^ ord( $hash[ $i ] ) );
+ }
+
+ $status |= ( static::safe_strlen( $signature ) ^ static::safe_strlen( $hash ) );
+
+ return ( 0 === $status );
+ }
+ }
+
+ /**
+ * Decode a JSON string into a PHP object.
+ *
+ * @param string $input JSON string.
+ *
+ * @return object Object representation of JSON string
+ *
+ * @throws DomainException Provided string was invalid JSON.
+ */
+ public static function json_decode( $input ) {
+ if ( version_compare( PHP_VERSION, '5.4.0', '>=' ) && ! ( defined( 'JSON_C_VERSION' ) && PHP_INT_SIZE > 4 ) ) {
+ /** In PHP >=5.4.0, json_decode() accepts an options parameter, that allows you
+ * to specify that large ints (like Steam Transaction IDs) should be treated as
+ * strings, rather than the PHP default behaviour of converting them to floats.
+ */
+ $obj = json_decode( $input, false, 512, JSON_BIGINT_AS_STRING );
+ } else {
+ /** Not all servers will support that, however, so for older versions we must
+ * manually detect large ints in the JSON string and quote them (thus converting
+ *them to strings) before decoding, hence the preg_replace() call.
+ */
+ $max_int_length = strlen( (string) PHP_INT_MAX ) - 1;
+ $json_without_bigints = preg_replace( '/:\s*(-?\d{' . $max_int_length . ',})/', ': "$1"', $input );
+ $obj = json_decode( $json_without_bigints );
+ }
+
+ $errno = json_last_error();
+
+ if ( $errno && function_exists( 'json_last_error' ) ) {
+ static::handle_json_error( $errno );
+ } elseif ( null === $obj && 'null' !== $input ) {
+ throw new DomainException( 'Null result with non-null input' );
+ }
+ return $obj;
+ }
+
+ /**
+ * Encode a PHP object into a JSON string.
+ *
+ * @param object|array $input A PHP object or array.
+ *
+ * @return string JSON representation of the PHP object or array.
+ *
+ * @throws DomainException Provided object could not be encoded to valid JSON.
+ */
+ public static function json_encode( $input ) {
+ $json = wp_json_encode( $input );
+ $errno = json_last_error();
+
+ if ( $errno && function_exists( 'json_last_error' ) ) {
+ static::handle_json_error( $errno );
+ } elseif ( 'null' === $json && null !== $input ) {
+ throw new DomainException( 'Null result with non-null input' );
+ }
+ return $json;
+ }
+
+ /**
+ * Decode a string with URL-safe Base64.
+ *
+ * @param string $input A Base64 encoded string.
+ *
+ * @return string A decoded string
+ */
+ public static function urlsafe_b64_decode( $input ) {
+ $remainder = strlen( $input ) % 4;
+ if ( $remainder ) {
+ $padlen = 4 - $remainder;
+ $input .= str_repeat( '=', $padlen );
+ }
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ return base64_decode( strtr( $input, '-_', '+/' ) );
+ }
+
+ /**
+ * Encode a string with URL-safe Base64.
+ *
+ * @param string $input The string you want encoded.
+ *
+ * @return string The base64 encode of what you passed in
+ */
+ public static function urlsafe_b64_encode( $input ) {
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ return str_replace( '=', '', strtr( base64_encode( $input ), '+/', '-_' ) );
+ }
+
+ /**
+ * Helper method to create a JSON error.
+ *
+ * @param int $errno An error number from json_last_error().
+ * @throws DomainException .
+ *
+ * @return void
+ */
+ private static function handle_json_error( $errno ) {
+ $messages = array(
+ JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
+ JSON_ERROR_STATE_MISMATCH => 'Invalid or malformed JSON',
+ JSON_ERROR_CTRL_CHAR => 'Unexpected control character found',
+ JSON_ERROR_SYNTAX => 'Syntax error, malformed JSON',
+ JSON_ERROR_UTF8 => 'Malformed UTF-8 characters',
+ );
+ throw new DomainException(
+ isset( $messages[ $errno ] )
+ ? $messages[ $errno ]
+ : 'Unknown JSON error: ' . $errno
+ );
+ }
+
+ /**
+ * Get the number of bytes in cryptographic strings.
+ *
+ * @param string $str .
+ *
+ * @return int
+ */
+ private static function safe_strlen( $str ) {
+ if ( function_exists( 'mb_strlen' ) ) {
+ return mb_strlen( $str, '8bit' );
+ }
+ return strlen( $str );
+ }
+}
+
+// phpcs:disable
+if ( ! class_exists( 'SignatureInvalidException' ) ) {
+ /**
+ * SignatureInvalidException
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+ class SignatureInvalidException extends \UnexpectedValueException { }
+}
+if ( ! class_exists( 'ExpiredException' ) ) {
+ /**
+ * ExpiredException
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+ class ExpiredException extends \UnexpectedValueException { }
+}
+if ( ! class_exists( 'BeforeValidException' ) ) {
+ /**
+ * BeforeValidException
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+ class BeforeValidException extends \UnexpectedValueException { }
+}
+// phpcs:enable
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-subscription-service.php
new file mode 100644
index 00000000..b433182a
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-subscription-service.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * The Subscription Service represents the entity responsible for making sure a visitor
+ * can see blocks that are considered premium content.
+ *
+ * If a visitor is not allowed to see they need to be given a way gain access.
+ *
+ * It is assumed that it will be a monetary exchange but that is up to the host
+ * that brokers the content exchange.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content;
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+interface Subscription_Service {
+
+ /**
+ * The subscription service can be used.
+ *
+ * @return boolean
+ */
+ public static function available();
+
+ /**
+ * Allows a Subscription Service to setup anything it needs to provide its features.
+ *
+ * This is called during an `init` action hook callback.
+ *
+ * Examples of things a Service may want to do here:
+ * - Determine a visitor is arriving with a new token to unlock content and
+ * store the token for future browsing (e.g. in a cookie)
+ * - Set up WP-API endpoints necessary for the function to work
+ * - Token refreshes
+ *
+ * @return void
+ */
+ public function initialize();
+
+ /**
+ * Given a token (this could be from a cookie, a querystring, or some other means)
+ * can the visitor see the premium content?
+ *
+ * @param array $valid_plan_ids .
+ *
+ * @return boolean
+ */
+ public function visitor_can_view_content( $valid_plan_ids );
+
+ /**
+ * The current visitor would like to obtain access. Where do they go?
+ *
+ * @param string $mode .
+ * @return string
+ */
+ public function access_url( $mode = 'subscribe' );
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription-service.php
new file mode 100644
index 00000000..05791022
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription-service.php
@@ -0,0 +1,264 @@
+<?php
+/**
+ * A paywall that exchanges JWT tokens from WordPress.com to allow
+ * a current visitor to view content that has been deemed "Premium content".
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+use Automattic\Jetpack\Extensions\Premium_Content\JWT;
+
+/**
+ * Class Token_Subscription_Service
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+abstract class Token_Subscription_Service implements Subscription_Service {
+
+ const JWT_AUTH_TOKEN_COOKIE_NAME = 'jp-premium-content-session';
+ const DECODE_EXCEPTION_FEATURE = 'memberships';
+ const DECODE_EXCEPTION_MESSAGE = 'Problem decoding provided token';
+ const REST_URL_ORIGIN = 'https://subscribe.wordpress.com/';
+
+ /**
+ * Initialize the token subscription service.
+ *
+ * @inheritDoc
+ */
+ public function initialize() {
+ $token = $this->token_from_request();
+ if ( null !== $token ) {
+ $this->set_token_cookie( $token );
+ }
+ }
+
+ /**
+ * The user is visiting with a subscriber token cookie.
+ *
+ * This is theoretically where the cookie JWT signature verification
+ * thing will happen.
+ *
+ * How to obtain one of these (or what exactly it is) is
+ * still a WIP (see api/auth branch)
+ *
+ * @inheritDoc
+ *
+ * @param array $valid_plan_ids List of valid plan IDs.
+ */
+ public function visitor_can_view_content( $valid_plan_ids ) {
+
+ // URL token always has a precedence, so it can overwrite the cookie when new data available.
+ $token = $this->token_from_request();
+ if ( $token ) {
+ $this->set_token_cookie( $token );
+ } else {
+ $token = $this->token_from_cookie();
+ }
+
+ $is_valid_token = true;
+
+ if ( empty( $token ) ) {
+ // no token, no access.
+ $is_valid_token = false;
+ } else {
+ $payload = $this->decode_token( $token );
+ if ( empty( $payload ) ) {
+ $is_valid_token = false;
+ }
+ }
+
+ if ( $is_valid_token ) {
+ $subscriptions = (array) $payload['subscriptions'];
+ } elseif ( is_user_logged_in() ) {
+ /*
+ * If there is no token, but the user is logged in,
+ * get current subscriptions and determine if the user has
+ * a valid subscription to match the plan ID.
+ */
+
+ /**
+ * Filter the subscriptions attached to a specific user on a given site.
+ *
+ * @since 9.4.0
+ *
+ * @param array $subscriptions Array of subscriptions.
+ * @param int $user_id The user's ID.
+ * @param int $site_id ID of the current site.
+ */
+ $subscriptions = apply_filters(
+ 'earn_get_user_subscriptions_for_site_id',
+ array(),
+ wp_get_current_user()->ID,
+ $this->get_site_id()
+ );
+
+ if ( empty( $subscriptions ) ) {
+ return false;
+ }
+ // format the subscriptions so that they can be validated.
+ $subscriptions = self::abbreviate_subscriptions( $subscriptions );
+ } else {
+ return false;
+ }
+
+ return $this->validate_subscriptions( $valid_plan_ids, $subscriptions );
+ }
+
+ /**
+ * Decode the given token.
+ *
+ * @param string $token Token to decode.
+ *
+ * @return array|false
+ */
+ public function decode_token( $token ) {
+ try {
+ $key = $this->get_key();
+ return $key ? (array) JWT::decode( $token, $key, array( 'HS256' ) ) : false;
+ } catch ( \Exception $exception ) {
+ return false;
+ }
+ }
+
+ /**
+ * Get the key for decoding the auth token.
+ *
+ * @return string|false
+ */
+ abstract public function get_key();
+
+ /**
+ * Get the ID of the current site.
+ *
+ * @return int
+ */
+ abstract public function get_site_id();
+
+ // phpcs:disable
+ /**
+ * Get the URL to access the protected content.
+ *
+ * @param string $mode Access mode (either "subscribe" or "login").
+ */
+ public function access_url( $mode = 'subscribe' ) {
+ global $wp;
+ $permalink = get_permalink();
+ if ( empty( $permalink ) ) {
+ $permalink = add_query_arg( $wp->query_vars, home_url( $wp->request ) );
+ }
+
+ $login_url = $this->get_rest_api_token_url( $this->get_site_id(), $permalink );
+ return $login_url;
+ }
+ // phpcs:enable
+
+ /**
+ * Get the token stored in the auth cookie.
+ *
+ * @return ?string
+ */
+ private function token_from_cookie() {
+ if ( isset( $_COOKIE[ self::JWT_AUTH_TOKEN_COOKIE_NAME ] ) ) {
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ return $_COOKIE[ self::JWT_AUTH_TOKEN_COOKIE_NAME ];
+ }
+ }
+
+ /**
+ * Store the auth cookie.
+ *
+ * @param string $token Auth token.
+ * @return void
+ */
+ private function set_token_cookie( $token ) {
+ if ( ! empty( $token ) ) {
+ setcookie( self::JWT_AUTH_TOKEN_COOKIE_NAME, $token, 0, '/' );
+ }
+ }
+
+ /**
+ * Get the token if present in the current request.
+ *
+ * @return ?string
+ */
+ private function token_from_request() {
+ $token = null;
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( isset( $_GET['token'] ) ) {
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.NonceVerification.Recommended
+ if ( preg_match( '/^[a-zA-Z0-9\-_]+?\.[a-zA-Z0-9\-_]+?\.([a-zA-Z0-9\-_]+)?$/', $_GET['token'], $matches ) ) {
+ // token matches a valid JWT token pattern.
+ $token = reset( $matches );
+ }
+ }
+ return $token;
+ }
+
+ /**
+ * Return true if any ID/date pairs are valid. Otherwise false.
+ *
+ * @param int[] $valid_plan_ids List of valid plan IDs.
+ * @param array<int, Token_Subscription> $token_subscriptions : ID must exist in the provided <code>$valid_subscriptions</code> parameter.
+ * The provided end date needs to be greater than <code>now()</code>.
+ *
+ * @return bool
+ */
+ protected function validate_subscriptions( $valid_plan_ids, $token_subscriptions ) {
+ // Create a list of product_ids to compare against.
+ $product_ids = array();
+ foreach ( $valid_plan_ids as $plan_id ) {
+ $product_id = (int) get_post_meta( $plan_id, 'jetpack_memberships_product_id', true );
+ if ( isset( $product_id ) ) {
+ $product_ids[] = $product_id;
+ }
+ }
+
+ foreach ( $token_subscriptions as $product_id => $token_subscription ) {
+ if ( in_array( $product_id, $product_ids, true ) ) {
+ $end = is_int( $token_subscription->end_date ) ? $token_subscription->end_date : strtotime( $token_subscription->end_date );
+ if ( $end > time() ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Get the URL of the JWT endpoint.
+ *
+ * @param int $site_id Site ID.
+ * @param string $redirect_url URL to redirect after checking the token validity.
+ * @return string URL of the JWT endpoint.
+ */
+ private function get_rest_api_token_url( $site_id, $redirect_url ) {
+ return sprintf( '%smemberships/jwt?site_id=%d&redirect_url=%s', self::REST_URL_ORIGIN, $site_id, rawurlencode( $redirect_url ) );
+ }
+
+ /**
+ * Report the subscriptions as an ID => [ 'end_date' => ]. mapping
+ *
+ * @param array $subscriptions_from_bd List of subscriptions from BD.
+ *
+ * @return array<int, array>
+ */
+ public static function abbreviate_subscriptions( $subscriptions_from_bd ) {
+ $subscriptions = array();
+ foreach ( $subscriptions_from_bd as $subscription ) {
+ // We are picking the expiry date that is the most in the future.
+ if (
+ 'active' === $subscription['status'] && (
+ ! isset( $subscriptions[ $subscription['product_id'] ] ) ||
+ empty( $subscription['end_date'] ) || // Special condition when subscription has no expiry date - we will default to a year from now for the purposes of the token.
+ strtotime( $subscription['end_date'] ) > strtotime( (string) $subscriptions[ $subscription['product_id'] ]->end_date )
+ )
+ ) {
+ $subscriptions[ $subscription['product_id'] ] = new \stdClass();
+ $subscriptions[ $subscription['product_id'] ]->end_date = empty( $subscription['end_date'] ) ? ( time() + 365 * 24 * 3600 ) : $subscription['end_date'];
+ }
+ }
+ return $subscriptions;
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription.php
new file mode 100644
index 00000000..d9c81e8c
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Token subscription management.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+/**
+ * Class Token_Subscription
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+class Token_Subscription {
+
+ /**
+ * End date.
+ *
+ * @var string $end_date .
+ */
+ public $end_date = '';
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-unconfigured-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-unconfigured-subscription-service.php
new file mode 100644
index 00000000..a89662a2
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-unconfigured-subscription-service.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * The environment does not have a subscription service available.
+ * This represents this scenario.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+use function site_url;
+// phpcs:disable
+
+/**
+ * Class Unconfigured_Subscription_Service
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+class Unconfigured_Subscription_Service implements Subscription_Service {
+
+ /**
+ * Is always available because it is the fallback.
+ *
+ * @inheritDoc
+ */
+ public static function available() {
+ return true;
+ }
+
+ /**
+ * Function: initialize()
+ *
+ * @inheritDoc
+ */
+ public function initialize() {
+ // noop.
+ }
+
+ /**
+ * No subscription service available, no users can see this content.
+ *
+ * @param array $valid_plan_ids .
+ */
+ public function visitor_can_view_content( $valid_plan_ids ) {
+ return false;
+ }
+
+ /**
+ * The current visitor would like to obtain access. Where do they go?
+ *
+ * @param string $mode .
+ */
+ public function access_url( $mode = 'subscribe' ) {
+ return site_url();
+ }
+
+}
+// phpcs:enable
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-offline-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-offline-subscription-service.php
new file mode 100644
index 00000000..12283a96
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-offline-subscription-service.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * This subscription service is used when a subscriber is offline and a token is not available.
+ * This subscription service will be used when rendering content in email and reader on WPCOM only.
+ * When content is being rendered, the current user and site are set.
+ * This allows us to lookup a users subscriptions and determine if the
+ * offline visitor can view content that has been deemed "Premium content".
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+/**
+ * Class WPCOM_Offline_Subscription_Service
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+class WPCOM_Offline_Subscription_Service extends WPCOM_Token_Subscription_Service {
+
+ /**
+ * Is available()
+ *
+ * @return bool
+ */
+ public static function available() {
+ // Return available if the user is logged in and either
+ // running a job (sending email subscription) OR
+ // handling API request on WPCOM (reader).
+ return (
+ ( defined( 'WPCOM_JOBS' ) && WPCOM_JOBS ) ||
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM === true && ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) )
+ ) && is_user_logged_in();
+ }
+
+ /**
+ * Lookup users subscriptions for a site and determine if the user has a valid subscription to match the plan ID
+ *
+ * @param array $valid_plan_ids .
+ * @return bool
+ */
+ public function visitor_can_view_content( $valid_plan_ids ) {
+ /** This filter is already documented in projects/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-token-subscription-service.php */
+ $subscriptions = apply_filters( 'earn_get_user_subscriptions_for_site_id', array(), wp_get_current_user()->ID, $this->get_site_id() );
+ if ( empty( $subscriptions ) ) {
+ return false;
+ }
+ // format the subscriptions so that they can be validated.
+ $subscriptions = self::abbreviate_subscriptions( $subscriptions );
+ return $this->validate_subscriptions( $valid_plan_ids, $subscriptions );
+ }
+
+ /**
+ * Report the subscriptions as an ID => [ 'end_date' => ]. mapping
+ *
+ * @param array $subscriptions_from_bd .
+ *
+ * @return array<int, array>
+ */
+ public static function abbreviate_subscriptions( $subscriptions_from_bd ) {
+ $subscriptions = array();
+ foreach ( $subscriptions_from_bd as $subscription ) {
+ // We are picking the expiry date that is the most in the future.
+ if (
+ 'active' === $subscription['status'] && (
+ ! isset( $subscriptions[ $subscription['product_id'] ] ) ||
+ empty( $subscription['end_date'] ) || // Special condition when subscription has no expiry date - we will default to a year from now for the purposes of the token.
+ strtotime( $subscription['end_date'] ) > strtotime( (string) $subscriptions[ $subscription['product_id'] ]->end_date )
+ )
+ ) {
+ $subscriptions[ $subscription['product_id'] ] = new \stdClass();
+ $subscriptions[ $subscription['product_id'] ]->end_date = empty( $subscription['end_date'] ) ? ( time() + 365 * 24 * 3600 ) : $subscription['end_date'];
+ }
+ }
+ return $subscriptions;
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-token-subscription-service.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-token-subscription-service.php
new file mode 100644
index 00000000..1bb80b6b
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/class-wpcom-token-subscription-service.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * A paywall that exchanges JWT tokens from WordPress.com to allow
+ * a current visitor to view content that has been deemed "Premium content".
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service;
+
+/**
+ * Class WPCOM_Token_Subscription_Service
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service
+ */
+class WPCOM_Token_Subscription_Service extends Token_Subscription_Service {
+
+ /**
+ * Is available()
+ *
+ * @inheritDoc
+ */
+ public static function available() {
+ // phpcs:ignore ImportDetection.Imports.RequireImports.Symbol
+ return defined( 'IS_WPCOM' ) && IS_WPCOM === true;
+ }
+
+ /**
+ * Is get_site_id()
+ *
+ * @inheritDoc
+ */
+ public function get_site_id() {
+ return get_current_blog_id();
+ }
+
+ /**
+ * Is get_key()
+ *
+ * @inheritDoc
+ */
+ public function get_key() {
+ // phpcs:ignore ImportDetection.Imports.RequireImports.Symbol
+ return defined( 'EARN_JWT_SIGNING_KEY' ) ? EARN_JWT_SIGNING_KEY : false;
+ }
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/include.php b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/include.php
new file mode 100644
index 00000000..34bf3f20
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/_inc/subscription-service/include.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Subcription service includes to build out the service.
+ *
+ * @package Automattic\Jetpack\Extensions\Premium_Content
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+require_once __DIR__ . '/class-jwt.php';
+require_once __DIR__ . '/class-subscription-service.php';
+require_once __DIR__ . '/class-token-subscription.php';
+require_once __DIR__ . '/class-token-subscription-service.php';
+require_once __DIR__ . '/class-wpcom-token-subscription-service.php';
+require_once __DIR__ . '/class-wpcom-offline-subscription-service.php';
+require_once __DIR__ . '/class-jetpack-token-subscription-service.php';
+require_once __DIR__ . '/class-unconfigured-subscription-service.php';
+
+use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\Jetpack_Token_Subscription_Service;
+use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\Unconfigured_Subscription_Service;
+use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\WPCOM_Offline_Subscription_Service;
+use Automattic\Jetpack\Extensions\Premium_Content\Subscription_Service\WPCOM_Token_Subscription_Service;
+
+const PAYWALL_FILTER = 'earn_premium_content_subscription_service';
+
+/**
+ * Initializes the premium content subscription service.
+ */
+function paywall_initialize() {
+ $paywall = subscription_service();
+ if ( $paywall ) {
+ $paywall->initialize();
+ }
+}
+add_action( 'init', 'Automattic\Jetpack\Extensions\Premium_Content\paywall_initialize', 9 );
+
+/**
+ * Gets the service handling the premium content subscriptions.
+ *
+ * @return Subscription_Service Service that will handle the premium content subscriptions.
+ */
+function subscription_service() {
+ /**
+ * Filter the Jetpack_Token_Subscription_Service class.
+ *
+ * @since 9.4.0
+ *
+ * @param null|Jetpack_Token_Subscription_Service $interface Registered Subscription_Service.
+ */
+ $interface = apply_filters( PAYWALL_FILTER, null );
+ if ( ! $interface instanceof Jetpack_Token_Subscription_Service ) {
+ _doing_it_wrong( __FUNCTION__, 'No Subscription_Service registered for the ' . esc_html( PAYWALL_FILTER ) . ' filter', 'jetpack' );
+ }
+ return $interface;
+}
+
+/**
+ * Gets the default service handling the premium content.
+ *
+ * @param Subscription_Service $service If set, this service will be used by default.
+ * @return Subscription_Service Service that will handle the premium content.
+ */
+function default_service( $service ) {
+ if ( null !== $service ) {
+ return $service;
+ }
+
+ if ( WPCOM_Offline_Subscription_Service::available() ) {
+ return new WPCOM_Offline_Subscription_Service();
+ }
+
+ if ( WPCOM_Token_Subscription_Service::available() ) {
+ return new WPCOM_Token_Subscription_Service();
+ }
+
+ if ( Jetpack_Token_Subscription_Service::available() ) {
+ return new Jetpack_Token_Subscription_Service();
+ }
+
+ return new Unconfigured_Subscription_Service();
+}
+add_filter( PAYWALL_FILTER, 'Automattic\Jetpack\Extensions\Premium_Content\default_service' );
diff --git a/plugins/jetpack/extensions/blocks/premium-content/buttons/buttons.php b/plugins/jetpack/extensions/blocks/premium-content/buttons/buttons.php
new file mode 100644
index 00000000..4cb602ff
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/buttons/buttons.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Premium Content Buttons Child Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Jetpack_Gutenberg;
+
+const BUTTONS_NAME = 'premium-content/buttons';
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_buttons_block() {
+ // Only load this block on WordPress.com.
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() ) {
+ Blocks::jetpack_register_block(
+ BUTTONS_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_buttons_block',
+ )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_buttons_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_buttons_block( $attributes, $content ) {
+ Jetpack_Gutenberg::load_styles_as_required( BUTTONS_NAME );
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/logged-out-view/logged-out-view.php b/plugins/jetpack/extensions/blocks/premium-content/logged-out-view/logged-out-view.php
new file mode 100644
index 00000000..80a68dab
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/logged-out-view/logged-out-view.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Premium Content Logged Out View Child Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Jetpack_Gutenberg;
+
+const LOGGEDOUT_VIEW_NAME = 'premium-content/logged-out-view';
+
+require_once dirname( __DIR__ ) . '/_inc/access-check.php';
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_loggedout_view_block() {
+ // Only load this block on WordPress.com.
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() ) {
+ // Determine required `context` key based on Gutenberg version.
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $uses = $deprecated ? 'context' : 'uses_context';
+
+ Blocks::jetpack_register_block(
+ LOGGEDOUT_VIEW_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_loggedout_view_block',
+ $uses => array( 'premium-content/planId' ),
+ )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_loggedout_view_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ * @param object $block Object containing block details.
+ *
+ * @return string
+ */
+function render_loggedout_view_block( $attributes, $content, $block = null ) {
+ if ( ! pre_render_checks() ) {
+ return '';
+ }
+
+ $visitor_has_access = current_visitor_can_access( $attributes, $block );
+
+ if ( $visitor_has_access ) {
+ // The viewer has access to premium content, so the viewer shouldn't see the logged out view.
+ return '';
+ }
+
+ Jetpack_Gutenberg::load_styles_as_required( LOGGEDOUT_VIEW_NAME );
+
+ // Old versions of the block were rendering the subscribe/login button server-side, so we need to still support them.
+ if ( ! empty( $attributes['buttonClasses'] ) ) {
+ require_once __DIR__ . '/../_inc/legacy-buttons.php';
+
+ $buttons = create_legacy_buttons_markup( $attributes, $content, $block );
+ return $content . $buttons;
+ }
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/login-button/login-button.php b/plugins/jetpack/extensions/blocks/premium-content/login-button/login-button.php
new file mode 100644
index 00000000..3238d8a9
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/login-button/login-button.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Premium Content Login Button Child Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Jetpack_Gutenberg;
+
+require_once dirname( __DIR__ ) . '/_inc/subscription-service/include.php';
+
+const LOGIN_BUTTON_NAME = 'premium-content/login-button';
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_login_button_block() {
+ // Only load this block on WordPress.com.
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() ) {
+ Blocks::jetpack_register_block(
+ LOGIN_BUTTON_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_login_button_block',
+ )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_login_button_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_login_button_block( $attributes, $content ) {
+ if ( ! pre_render_checks() ) {
+ return '';
+ }
+
+ if ( is_user_logged_in() ) {
+ // The viewer is logged it, so they shouldn't see the login button.
+ return '';
+ }
+
+ Jetpack_Gutenberg::load_styles_as_required( LOGIN_BUTTON_NAME );
+
+ $url = subscription_service()->access_url();
+
+ return preg_replace( '/(<a\b[^><]*)>/i', '$1 href="' . esc_url( $url ) . '">', $content );
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/premium-content.php b/plugins/jetpack/extensions/blocks/premium-content/premium-content.php
new file mode 100644
index 00000000..41915978
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/premium-content.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * Premium Content Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Jetpack_Gutenberg;
+
+require_once __DIR__ . '/_inc/access-check.php';
+require_once __DIR__ . '/logged-out-view/logged-out-view.php';
+require_once __DIR__ . '/subscriber-view/subscriber-view.php';
+require_once __DIR__ . '/buttons/buttons.php';
+require_once __DIR__ . '/login-button/login-button.php';
+
+const FEATURE_NAME = 'premium-content/container';
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ // Only load this block on WordPress.com.
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() ) {
+ // Determine required `context` key based on Gutenberg version.
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $provides = $deprecated ? 'providesContext' : 'provides_context';
+
+ Blocks::jetpack_register_block(
+ FEATURE_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'plan_check' => true,
+ 'attributes' => array(
+ 'isPremiumContentChild' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ ),
+ $provides => array(
+ 'premium-content/planId' => 'selectedPlanId',
+ 'isPremiumContentChild' => 'isPremiumContentChild',
+ ),
+ )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ if ( ! pre_render_checks() ) {
+ return '';
+ }
+
+ if (
+ ! membership_checks()
+ // Only display Stripe nudge if Upgrade nudge isn't displaying.
+ && required_plan_checks()
+ ) {
+ $stripe_nudge = render_stripe_nudge();
+ return $stripe_nudge . $content;
+ }
+
+ // We don't use FEATURE_NAME here because styles are not in /container folder.
+ Jetpack_Gutenberg::load_styles_as_required( 'premium-content' );
+ return $content;
+}
+
+/**
+ * Server-side rendering for the stripe connection nudge.
+ *
+ * @return string Final content to render.
+ */
+function render_stripe_nudge() {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ \jetpack_require_lib( 'memberships' );
+ $blog_id = get_current_blog_id();
+ $settings = (array) \get_memberships_settings_for_site( $blog_id );
+
+ return stripe_nudge(
+ $settings['connect_url'],
+ __( 'Connect to Stripe to use this block on your site.', 'jetpack' ),
+ __( 'Connect', 'jetpack' )
+ );
+ } elseif ( ( new Host() )->is_woa_site() ) {
+ // On WoA sites, the Stripe connection url is not easily available
+ // server-side, so we redirect them to the post in the editor in order
+ // to connect.
+ return stripe_nudge(
+ get_edit_post_link( get_the_ID() ),
+ __( 'Connect to Stripe in the editor to use this block on your site.', 'jetpack' ),
+ __( 'Edit post', 'jetpack' )
+ );
+ }
+
+ // The Premium Content block is not supported on Jetpack sites.
+ return '';
+}
+
+/**
+ * Render the stripe nudge.
+ *
+ * @param string $checkout_url Url for the CTA.
+ * @param string $description Text of the nudge.
+ * @param string $button_text Text of the button.
+ *
+ * @return string Final content to render.
+ */
+function stripe_nudge( $checkout_url, $description, $button_text ) {
+ \jetpack_require_lib( 'components' );
+ return \Jetpack_Components::render_frontend_nudge(
+ array(
+ 'checkoutUrl' => $checkout_url,
+ 'description' => $description,
+ 'buttonText' => $button_text,
+ )
+ );
+}
diff --git a/plugins/jetpack/extensions/blocks/premium-content/subscriber-view/subscriber-view.php b/plugins/jetpack/extensions/blocks/premium-content/subscriber-view/subscriber-view.php
new file mode 100644
index 00000000..28b13255
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/premium-content/subscriber-view/subscriber-view.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Premium Content Subscriber View Child Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Premium_Content;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status\Host;
+use Jetpack_Gutenberg;
+
+const SUBSCRIBER_VIEW_NAME = 'premium-content/subscriber-view';
+
+require_once dirname( __DIR__ ) . '/_inc/access-check.php';
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_subscriber_view_block() {
+ // Only load this block on WordPress.com.
+ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() ) {
+ // Determine required `context` key based on Gutenberg version.
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $uses = $deprecated ? 'context' : 'uses_context';
+
+ Blocks::jetpack_register_block(
+ SUBSCRIBER_VIEW_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_subscriber_view_block',
+ $uses => array( 'premium-content/planId' ),
+ )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_subscriber_view_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ * @param object $block Object containing the full block.
+ *
+ * @return string
+ */
+function render_subscriber_view_block( $attributes, $content, $block = null ) {
+ if ( ! pre_render_checks() ) {
+ return '';
+ }
+
+ $visitor_has_access = current_visitor_can_access( $attributes, $block );
+
+ if ( $visitor_has_access ) {
+ Jetpack_Gutenberg::load_styles_as_required( SUBSCRIBER_VIEW_NAME );
+
+ // The viewer has access to premium content, so the viewer can see the subscriber view content.
+ return $content;
+ }
+
+ return '';
+}
diff --git a/plugins/jetpack/extensions/blocks/rating-star/rating-meta.php b/plugins/jetpack/extensions/blocks/rating-star/rating-meta.php
index dfbf3003..3d843101 100644
--- a/plugins/jetpack/extensions/blocks/rating-star/rating-meta.php
+++ b/plugins/jetpack/extensions/blocks/rating-star/rating-meta.php
@@ -4,7 +4,7 @@
*
* @since 8.0.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! function_exists( 'jetpack_rating_meta_get_symbol_low_fidelity' ) ) {
@@ -14,7 +14,7 @@ if ( ! function_exists( 'jetpack_rating_meta_get_symbol_low_fidelity' ) ) {
* @return string
*/
function jetpack_rating_meta_get_symbol_low_fidelity() {
- return '⭐';
+ return '<span aria-hidden="true">⭐</span>';
}
}
@@ -61,6 +61,26 @@ if ( ! function_exists( 'jetpack_rating_meta_get_symbol_high_fidelity' ) ) {
}
}
+if ( ! function_exists( 'jetpack_rating_get_schema_for_symbol' ) ) {
+ /**
+ * Returns an itemprop and content for rating symbols
+ *
+ * @param integer $position the position of the symbol.
+ * @param integer $max_rating the maximum symbol score.
+ *
+ * @return string
+ */
+ function jetpack_rating_get_schema_for_symbol( $position, $max_rating ) {
+ $schema = '';
+ if ( 1 === $position ) {
+ $schema = 'itemprop="worstRating" content="0.5"';
+ } elseif ( $max_rating === $position ) {
+ $schema = 'itemprop="bestRating" content="' . esc_attr( $max_rating ) . '"';
+ }
+ return $schema;
+ }
+}
+
if ( ! function_exists( 'jetpack_rating_meta_get_symbols' ) ) {
/**
* Returns the symbol for the block.
@@ -74,7 +94,7 @@ if ( ! function_exists( 'jetpack_rating_meta_get_symbols' ) ) {
// These are hidden by default, then unhid when CSS loads.
$symbols_hifi = array();
for ( $pos = 1; $pos <= $attributes['maxRating']; $pos++ ) {
- $symbols_hifi[] = '<span style="display: none;">' . jetpack_rating_meta_get_symbol_high_fidelity( $attributes, $pos ) . '</span>';
+ $symbols_hifi[] = '<span style="display: none;" ' . jetpack_rating_get_schema_for_symbol( $pos, $attributes['maxRating'] ) . '>' . jetpack_rating_meta_get_symbol_high_fidelity( $attributes, $pos ) . '</span>';
}
// Output fallback symbols for low fidelity contexts, like AMP,
@@ -99,9 +119,11 @@ if ( ! function_exists( 'jetpack_rating_meta_render_block' ) ) {
function jetpack_rating_meta_render_block( $attributes ) {
$classname = empty( $attributes['className'] ) ? '' : ' ' . $attributes['className'];
return sprintf(
- '<div class="%1$s" style="text-align:%3$s">%2$s</div>',
+ '<div class="%1$s" style="text-align:%4$s" itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating">%2$s%3$s</div>',
esc_attr( 'wp-block-jetpack-rating-' . $attributes['ratingStyle'] . $classname ),
jetpack_rating_meta_get_symbols( $attributes ),
+ // translators: %1$s is awarded rating score, %2$s is the best possible rating.
+ '<span itemprop="ratingValue" class="screen-reader-text" content="' . esc_attr( $attributes['rating'] ) . '">' . sprintf( __( 'Rating: %1$s out of %2$s.', 'jetpack' ), esc_attr( $attributes['rating'] ), esc_attr( $attributes['maxRating'] ) ) . '</span>',
( isset( $attributes['align'] ) ) ? esc_attr( $attributes['align'] ) : ''
);
}
diff --git a/plugins/jetpack/extensions/blocks/rating-star/rating-star.php b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php
index 8b351e9b..3a5597dd 100644
--- a/plugins/jetpack/extensions/blocks/rating-star/rating-star.php
+++ b/plugins/jetpack/extensions/blocks/rating-star/rating-star.php
@@ -4,63 +4,82 @@
*
* @since 8.0.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+namespace Automattic\Jetpack\Extensions\Rating_Star;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'rating-star';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
// Load generic function definitions.
require_once __DIR__ . '/rating-meta.php';
/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'attributes' => array(
+ 'rating' => array(
+ 'type' => 'number',
+ 'default' => 1,
+ ),
+ 'maxRating' => array(
+ 'type' => 'number',
+ 'default' => 5,
+ ),
+ 'color' => array(
+ 'type' => 'string',
+ ),
+ 'ratingStyle' => array(
+ 'type' => 'string',
+ 'default' => 'star',
+ ),
+ 'className' => array(
+ 'type' => 'string',
+ ),
+ 'align' => array(
+ 'type' => 'string',
+ 'default' => 'left',
+ ),
+ ),
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
* Dynamic rendering of the block.
*
* @param array $attributes Array containing the block attributes.
*
* @return string
*/
-function jetpack_rating_star_render_block( $attributes ) {
+function render_block( $attributes ) {
// Tell Jetpack to load the assets registered via jetpack_register_block.
- Jetpack_Gutenberg::load_assets_as_required( 'rating-star' );
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
return jetpack_rating_meta_render_block( $attributes );
}
/**
- * The following filter is added only to support the old 0.6.2 version of the AMP plugin.
- * This entire section can be removed once we're on version a newer version.
- * Confirmed that version 1.4.1 (or presumably newer) does not need this filter.
+ * Older versions of AMP (0.6.2) are unable to render the markup, so we hide it
+ * Newer versions of AMP (1.4.1+) seem OK, but need the screen-reader text hidden
*/
-function jetpack_rating_star_amp_add_inline_css() {
- echo '.wp-block-jetpack-rating-star span { display: none; }';
+function amp_add_inline_css() {
+ if ( defined( 'AMP__VERSION' ) && version_compare( AMP__VERSION, '1.4.1', '>=' ) ) {
+ echo '.wp-block-jetpack-rating-star span.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal; }';
+ } else {
+ echo '.wp-block-jetpack-rating-star span:not([aria-hidden="true"]) { display: none; }';
+ }
}
-add_action( 'amp_post_template_css', 'jetpack_rating_star_amp_add_inline_css', 11 );
-
-jetpack_register_block(
- 'jetpack/rating-star',
- array(
- 'render_callback' => 'jetpack_rating_star_render_block',
- 'attributes' => array(
- 'rating' => array(
- 'type' => 'number',
- 'default' => 1,
- ),
- 'maxRating' => array(
- 'type' => 'number',
- 'default' => 5,
- ),
- 'color' => array(
- 'type' => 'string',
- ),
- 'ratingStyle' => array(
- 'type' => 'string',
- 'default' => 'star',
- ),
- 'className' => array(
- 'type' => 'string',
- ),
- 'align' => array(
- 'type' => 'string',
- 'default' => 'left',
- ),
- ),
- )
-);
+add_action( 'amp_post_template_css', __NAMESPACE__ . '\amp_add_inline_css', 11 );
diff --git a/plugins/jetpack/extensions/blocks/recurring-payments/recurring-payments.php b/plugins/jetpack/extensions/blocks/recurring-payments/recurring-payments.php
index d5d461e9..7740379e 100644
--- a/plugins/jetpack/extensions/blocks/recurring-payments/recurring-payments.php
+++ b/plugins/jetpack/extensions/blocks/recurring-payments/recurring-payments.php
@@ -4,10 +4,10 @@
*
* @since 7.3.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_active() ) {
+if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || Jetpack::is_connection_ready() ) {
require_once JETPACK__PLUGIN_DIR . '/modules/memberships/class-jetpack-memberships.php';
Jetpack_Memberships::get_instance()->register_gutenberg_block();
}
diff --git a/plugins/jetpack/extensions/blocks/repeat-visitor/repeat-visitor.php b/plugins/jetpack/extensions/blocks/repeat-visitor/repeat-visitor.php
index 2facf626..ba3c16c2 100644
--- a/plugins/jetpack/extensions/blocks/repeat-visitor/repeat-visitor.php
+++ b/plugins/jetpack/extensions/blocks/repeat-visitor/repeat-visitor.php
@@ -4,15 +4,29 @@
*
* @since 7.2.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/repeat-visitor',
- array(
- 'render_callback' => 'jetpack_repeat_visitor_block_render',
- )
-);
+namespace Automattic\Jetpack\Extensions\Repeat_Visitor;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'repeat-visitor';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Repeat Visitor block dependency declaration.
@@ -22,14 +36,14 @@ jetpack_register_block(
*
* @return string
*/
-function jetpack_repeat_visitor_block_render( $attributes, $content ) {
- Jetpack_Gutenberg::load_assets_as_required( 'repeat-visitor' );
+function render_block( $attributes, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
- $classes = Jetpack_Gutenberg::block_classes( 'repeat-visitor', $attributes );
+ $classes = Blocks::classes( FEATURE_NAME, $attributes );
- $count = isset( $_COOKIE['jp-visit-counter'] ) ? intval( $_COOKIE['jp-visit-counter'] ) : 0;
+ $count = isset( $_COOKIE['jp-visit-counter'] ) ? (int) $_COOKIE['jp-visit-counter'] : 0;
$criteria = isset( $attributes['criteria'] ) ? $attributes['criteria'] : 'after-visits';
- $threshold = isset( $attributes['threshold'] ) ? intval( $attributes['threshold'] ) : 3;
+ $threshold = isset( $attributes['threshold'] ) ? (int) $attributes['threshold'] : 3;
if (
( 'after-visits' === $criteria && $count >= $threshold ) ||
diff --git a/plugins/jetpack/extensions/blocks/revue/revue.php b/plugins/jetpack/extensions/blocks/revue/revue.php
new file mode 100644
index 00000000..d0313af0
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/revue/revue.php
@@ -0,0 +1,253 @@
+<?php
+/**
+ * Revue Block.
+ *
+ * @since 8.3.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Revue;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'revue';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Revue block render callback.
+ *
+ * @param array $attributes Array containing the Revue block attributes.
+ * @param string $content The Revue block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ if ( ! array_key_exists( 'revueUsername', $attributes ) ) {
+ return '';
+ }
+
+ $email_label = get_revue_attribute( 'emailLabel', $attributes );
+ $email_placeholder = get_revue_attribute( 'emailPlaceholder', $attributes );
+ $first_name_label = get_revue_attribute( 'firstNameLabel', $attributes );
+ $first_name_placeholder = get_revue_attribute( 'firstNamePlaceholder', $attributes );
+ $first_name_show = get_revue_attribute( 'firstNameShow', $attributes );
+ $last_name_label = get_revue_attribute( 'lastNameLabel', $attributes );
+ $last_name_placeholder = get_revue_attribute( 'lastNamePlaceholder', $attributes );
+ $last_name_show = get_revue_attribute( 'lastNameShow', $attributes );
+ $url = sprintf( 'https://www.getrevue.co/profile/%s/add_subscriber', $attributes['revueUsername'] );
+ $base_class = Blocks::classes( FEATURE_NAME, array() ) . '__';
+ $classes = Blocks::classes( FEATURE_NAME, $attributes );
+
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ ob_start();
+ ?>
+
+<div class="<?php echo esc_attr( $classes ); ?>">
+ <form
+ action="<?php echo esc_url( $url ); ?>"
+ class="<?php echo esc_attr( $base_class . 'form is-visible' ); ?>"
+ method="post"
+ name="revue-form"
+ target="_blank"
+ >
+ <div>
+ <label>
+ <?php echo esc_html( $email_label ); ?>
+ <span class="required"><?php esc_html_e( '(required)', 'jetpack' ); ?></span>
+ <input
+ class="<?php echo esc_attr( $base_class . 'email' ); ?>"
+ name="member[email]"
+ placeholder="<?php echo esc_attr( $email_placeholder ); ?>"
+ required
+ type="email"
+ />
+ </label>
+ </div>
+ <?php if ( $first_name_show ) : ?>
+ <div>
+ <label>
+ <?php echo esc_html( $first_name_label ); ?>
+ <input
+ class="<?php echo esc_attr( $base_class . 'first-name' ); ?>"
+ name="member[first_name]"
+ placeholder="<?php echo esc_attr( $first_name_placeholder ); ?>"
+ type="text"
+ />
+ </label>
+ </div>
+ <?php
+ endif;
+ if ( $last_name_show ) :
+ ?>
+ <div>
+ <label>
+ <?php echo esc_html( $last_name_label ); ?>
+ <input
+ class="<?php echo esc_attr( $base_class . 'last-name' ); ?>"
+ name="member[last_name]"
+ placeholder="<?php echo esc_attr( $last_name_placeholder ); ?>"
+ type="text"
+ />
+ </label>
+ </div>
+ <?php
+ endif;
+
+ // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
+ if ( false !== strpos( $content, 'wp-block-jetpack-revue__fallback' ) ) {
+ echo $content;
+ } else {
+ echo get_deprecated_v1_revue_button( $attributes );
+ }
+ // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ </form>
+ <div class="<?php echo esc_attr( $base_class . 'message' ); ?>">
+ <p>
+ <strong><?php esc_html_e( 'Subscription received!', 'jetpack' ); ?></strong>
+ </p>
+ <p>
+ <?php esc_html_e( 'Please check your email to confirm your newsletter subscription.', 'jetpack' ); ?>
+ </p>
+ </div>
+</div>
+
+ <?php
+ return ob_get_clean();
+}
+
+/**
+ * Get Revue block attribute.
+ *
+ * @param string $attribute String containing the attribute name to get.
+ * @param array $attributes Array containing the Revue block attributes.
+ *
+ * @return mixed
+ */
+function get_revue_attribute( $attribute, $attributes ) {
+ if ( array_key_exists( $attribute, $attributes ) ) {
+ return $attributes[ $attribute ];
+ }
+
+ $default_attributes = array(
+ 'text' => __( 'Subscribe', 'jetpack' ),
+ 'emailLabel' => __( 'Email address', 'jetpack' ),
+ 'emailPlaceholder' => __( 'Enter your email address', 'jetpack' ),
+ 'firstNameLabel' => __( 'First name', 'jetpack' ),
+ 'firstNamePlaceholder' => __( 'Enter your first name', 'jetpack' ),
+ 'firstNameShow' => true,
+ 'lastNameLabel' => __( 'Last name', 'jetpack' ),
+ 'lastNamePlaceholder' => __( 'Enter your last name', 'jetpack' ),
+ 'lastNameShow' => true,
+ );
+
+ if ( array_key_exists( $attribute, $default_attributes ) ) {
+ return $default_attributes[ $attribute ];
+ }
+}
+
+/**
+ * DEPRECATED V1
+ */
+
+/**
+ * Create the Revue subscribe button.
+ *
+ * @param array $attributes Array containing the Revue block attributes.
+ *
+ * @return string
+ */
+function get_deprecated_v1_revue_button( $attributes ) {
+ $classes = array( 'wp-block-button__link' );
+ $styles = array();
+
+ $text = get_revue_attribute( 'text', $attributes );
+ $has_class_name = array_key_exists( 'className', $attributes );
+ $has_named_text_color = array_key_exists( 'textColor', $attributes );
+ $has_custom_text_color = array_key_exists( 'customTextColor', $attributes );
+ $has_named_background_color = array_key_exists( 'backgroundColor', $attributes );
+ $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes );
+ $has_named_gradient = array_key_exists( 'gradient', $attributes );
+ $has_custom_gradient = array_key_exists( 'customGradient', $attributes );
+ $has_border_radius = array_key_exists( 'borderRadius', $attributes );
+
+ if ( $has_class_name ) {
+ $classes[] = $attributes['className'];
+ }
+
+ if ( $has_named_text_color || $has_custom_text_color ) {
+ $classes[] = 'has-text-color';
+ }
+ if ( $has_named_text_color ) {
+ $classes[] = sprintf( 'has-%s-color', $attributes['textColor'] );
+ } elseif ( $has_custom_text_color ) {
+ $styles[] = sprintf( 'color: %s;', $attributes['customTextColor'] );
+ }
+
+ if (
+ $has_named_background_color ||
+ $has_custom_background_color ||
+ $has_named_gradient ||
+ $has_custom_gradient
+ ) {
+ $classes[] = 'has-background';
+ }
+ if ( $has_named_background_color && ! $has_custom_gradient ) {
+ $classes[] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] );
+ }
+ if ( $has_named_gradient ) {
+ $classes[] = sprintf( 'has-%s-gradient-background', $attributes['gradient'] );
+ } elseif ( $has_custom_gradient ) {
+ $styles[] = sprintf( 'background: %s;', $attributes['customGradient'] );
+ }
+ if (
+ $has_custom_background_color &&
+ ! $has_named_background_color &&
+ ! $has_named_gradient &&
+ ! $has_custom_gradient
+ ) {
+ $styles[] = sprintf( 'background-color: %s;', $attributes['customBackgroundColor'] );
+ }
+
+ if ( $has_border_radius ) {
+ // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ if ( 0 == $attributes['borderRadius'] ) {
+ $classes[] = 'no-border-radius';
+ } else {
+ $styles[] = sprintf( 'border-radius: %spx;', $attributes['borderRadius'] );
+ }
+ }
+
+ ob_start();
+ ?>
+
+<div class="wp-block-button">
+ <button
+ class="<?php echo esc_attr( implode( ' ', $classes ) ); ?>"
+ name="member[subscribe]"
+ style="<?php echo esc_attr( implode( ' ', $styles ) ); ?>"
+ type="submit"
+ >
+ <?php echo wp_kses_post( $text ); ?>
+ </button>
+</div>
+
+ <?php
+ return ob_get_clean();
+}
diff --git a/plugins/jetpack/extensions/blocks/send-a-message/send-a-message.php b/plugins/jetpack/extensions/blocks/send-a-message/send-a-message.php
new file mode 100644
index 00000000..5c3c8605
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/send-a-message/send-a-message.php
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Send a Message Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Send_A_Message;
+
+require_once __DIR__ . '/whatsapp-button/whatsapp-button.php';
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'send-a-message';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'plan_check' => true,
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ Jetpack_Gutenberg::load_styles_as_required( FEATURE_NAME );
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/send-a-message/whatsapp-button/whatsapp-button.php b/plugins/jetpack/extensions/blocks/send-a-message/whatsapp-button/whatsapp-button.php
new file mode 100644
index 00000000..fa30a228
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/send-a-message/whatsapp-button/whatsapp-button.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * WhatsApp Button Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\WhatsApp_Button;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const PARENT_NAME = 'send-a-message';
+const FEATURE_NAME = 'whatsapp-button';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'plan_check' => true,
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ Jetpack_Gutenberg::load_styles_as_required( PARENT_NAME );
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/simple-payments/simple-payments.php b/plugins/jetpack/extensions/blocks/simple-payments/simple-payments.php
new file mode 100644
index 00000000..b30d3045
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/simple-payments/simple-payments.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Pay with PayPal block (aka Simple Payments).
+ *
+ * @since 9.0.0
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\SimplePayments;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Simple_Payments;
+
+const FEATURE_NAME = 'simple-payments';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'render_callback' => __NAMESPACE__ . '\render_block',
+ 'plan_check' => true,
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Pay with PayPal block dynamic rendering.
+ *
+ * @param array $attr Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_block( $attr, $content ) {
+ // Do nothing if block content is a `simple-payment` shortcode.
+ if ( preg_match( '/\[simple-payment(.*)]/', $content ) ) {
+ return $content;
+ }
+
+ // Keep content as-is if rendered in other contexts than frontend (i.e. feed, emails, API, etc.).
+ if ( ! jetpack_is_frontend() ) {
+ return $content;
+ }
+
+ $simple_payments = Jetpack_Simple_Payments::getInstance();
+ $simple_payments->enqueue_frontend_assets();
+
+ // For AMP requests, make sure the purchase link redirects to the non-AMP post URL.
+ if ( Blocks::is_amp_request() ) {
+ $content = preg_replace(
+ '#(<a class="jetpack-simple-payments-purchase".*)rel="(.*)"(.*>.*</a>)#i',
+ '$1rel="$2 noamphtml"$3',
+ $content
+ );
+ return $content;
+ }
+
+ // Augment block UI with a PayPal button if rendered on the frontend.
+ $product_id = $attr['productId'];
+ $dom_id = wp_unique_id( "jetpack-simple-payments-{$product_id}_" );
+ $is_multiple = get_post_meta( $product_id, 'spay_multiple', true ) || '0';
+
+ $simple_payments->setup_paypal_checkout_button( $product_id, $dom_id, $is_multiple );
+
+ $purchase_box = $simple_payments->output_purchase_box( $dom_id, $is_multiple );
+ $content = preg_replace( '#<a class="jetpack-simple-payments-purchase(.*)</a>#i', $purchase_box, $content );
+
+ return $content;
+}
+
+/**
+ * Determine if AMP should be disabled on posts having "Pay with PayPal" blocks.
+ *
+ * @param bool $skip Skipped.
+ * @param int $post_id Post ID.
+ * @param WP_Post $post Post.
+ *
+ * @return bool Whether to skip the post from AMP.
+ */
+function amp_skip_post( $skip, $post_id, $post ) {
+ // When AMP is on standard mode, there are no non-AMP posts to link to where the purchase can be completed, so let's
+ // prevent the post from being available in AMP.
+ if ( function_exists( 'amp_is_canonical' ) && \amp_is_canonical() && has_block( BLOCK_NAME, $post->post_content ) ) {
+ return true;
+ }
+ return $skip;
+}
+add_filter( 'amp_skip_post', __NAMESPACE__ . '\amp_skip_post', 10, 3 );
diff --git a/plugins/jetpack/extensions/blocks/slideshow/slideshow.php b/plugins/jetpack/extensions/blocks/slideshow/slideshow.php
index ba18661c..bef76ed3 100644
--- a/plugins/jetpack/extensions/blocks/slideshow/slideshow.php
+++ b/plugins/jetpack/extensions/blocks/slideshow/slideshow.php
@@ -4,15 +4,29 @@
*
* @since 7.1.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-jetpack_register_block(
- 'jetpack/slideshow',
- array(
- 'render_callback' => 'jetpack_slideshow_block_load_assets',
- )
-);
+namespace Automattic\Jetpack\Extensions\Slideshow;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'slideshow';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\load_assets' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
/**
* Slideshow block registration/dependency declaration.
@@ -22,10 +36,10 @@ jetpack_register_block(
*
* @return string
*/
-function jetpack_slideshow_block_load_assets( $attr, $content ) {
- Jetpack_Gutenberg::load_assets_as_required( 'slideshow' );
- if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
- return jetpack_slideshow_block_render_amp( $attr );
+function load_assets( $attr, $content ) {
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+ if ( Blocks::is_amp_request() ) {
+ return render_amp( $attr );
}
return $content;
}
@@ -37,27 +51,30 @@ function jetpack_slideshow_block_load_assets( $attr, $content ) {
*
* @return string
*/
-function jetpack_slideshow_block_render_amp( $attr ) {
+function render_amp( $attr ) {
+ if ( empty( $attr['ids'] ) ) {
+ return '';
+ }
+
static $wp_block_jetpack_slideshow_id = 0;
$wp_block_jetpack_slideshow_id++;
- $ids = empty( $attr['ids'] ) ? array() : $attr['ids'];
- $autoplay = empty( $attr['autoplay'] ) ? false : $attr['autoplay'];
-
- $extras = array(
+ $ids = $attr['ids'];
+ $autoplay = empty( $attr['autoplay'] ) ? false : true;
+ $extras = array(
'wp-amp-block',
$autoplay ? 'wp-block-jetpack-slideshow__autoplay' : null,
$autoplay ? 'wp-block-jetpack-slideshow__autoplay-playing' : null,
);
- $classes = Jetpack_Gutenberg::block_classes( 'slideshow', $attr, $extras );
+ $classes = Blocks::classes( FEATURE_NAME, $attr, $extras );
return sprintf(
'<div class="%1$s" id="wp-block-jetpack-slideshow__%2$d"><div class="wp-block-jetpack-slideshow_container swiper-container">%3$s%4$s%5$s</div></div>',
esc_attr( $classes ),
absint( $wp_block_jetpack_slideshow_id ),
- jetpack_slideshow_block_amp_carousel( $attr, $wp_block_jetpack_slideshow_id ),
- $autoplay ? jetpack_slideshow_block_autoplay_ui( $wp_block_jetpack_slideshow_id ) : '',
- jetpack_slideshow_block_bullets( $ids, $wp_block_jetpack_slideshow_id )
+ amp_carousel( $attr, $wp_block_jetpack_slideshow_id ),
+ $autoplay ? autoplay_ui( $wp_block_jetpack_slideshow_id ) : '',
+ bullets( $ids, $wp_block_jetpack_slideshow_id )
);
}
@@ -69,7 +86,7 @@ function jetpack_slideshow_block_render_amp( $attr ) {
*
* @return string amp-carousel markup.
*/
-function jetpack_slideshow_block_amp_carousel( $attr, $block_ordinal ) {
+function amp_carousel( $attr, $block_ordinal ) {
$ids = empty( $attr['ids'] ) ? array() : $attr['ids'];
$first_image = wp_get_attachment_metadata( $ids[0] );
$delay = empty( $attr['delay'] ) ? 3 : absint( $attr['delay'] );
@@ -84,7 +101,7 @@ function jetpack_slideshow_block_amp_carousel( $attr, $block_ordinal ) {
esc_attr__( 'Previous Slide', 'jetpack' ),
$autoplay ? 'autoplay delay=' . esc_attr( $delay * 1000 ) : '',
absint( $block_ordinal ),
- implode( '', jetpack_slideshow_block_slides( $ids, $width, $height ) )
+ implode( '', slides( $ids, $width, $height ) )
);
}
@@ -97,9 +114,9 @@ function jetpack_slideshow_block_amp_carousel( $attr, $block_ordinal ) {
*
* @return array Array of slides markup.
*/
-function jetpack_slideshow_block_slides( $ids = array(), $width = 400, $height = 300 ) {
+function slides( $ids = array(), $width = 400, $height = 300 ) {
return array_map(
- function( $id ) use ( $width, $height ) {
+ function ( $id ) use ( $width, $height ) {
$caption = wp_get_attachment_caption( $id );
$figcaption = $caption ? sprintf(
'<figcaption class="wp-block-jetpack-slideshow_caption gallery-caption">%s</figcaption>',
@@ -132,9 +149,9 @@ function jetpack_slideshow_block_slides( $ids = array(), $width = 400, $height =
*
* @return array Array of bullets markup.
*/
-function jetpack_slideshow_block_bullets( $ids = array(), $block_ordinal = 0 ) {
+function bullets( $ids = array(), $block_ordinal = 0 ) {
$buttons = array_map(
- function( $index ) {
+ function ( $index ) {
$aria_label = sprintf(
/* translators: %d: Slide number. */
__( 'Go to slide %d', 'jetpack' ),
@@ -164,7 +181,7 @@ function jetpack_slideshow_block_bullets( $ids = array(), $block_ordinal = 0 ) {
*
* @return string Autoplay UI markup.
*/
-function jetpack_slideshow_block_autoplay_ui( $block_ordinal = 0 ) {
+function autoplay_ui( $block_ordinal = 0 ) {
$block_id = sprintf(
'wp-block-jetpack-slideshow__%d',
absint( $block_ordinal )
diff --git a/plugins/jetpack/extensions/blocks/social-previews/social-previews.php b/plugins/jetpack/extensions/blocks/social-previews/social-previews.php
new file mode 100644
index 00000000..fb9b53d9
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/social-previews/social-previews.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Social Previews Block.
+ *
+ * @since 8.x
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Social_Previews;
+
+use Automattic\Jetpack\Blocks;
+
+const FEATURE_NAME = 'social-previews';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the Social Previews feature with the block editor.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array(
+ 'plan_check' => true,
+ )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
diff --git a/plugins/jetpack/extensions/blocks/story/story.php b/plugins/jetpack/extensions/blocks/story/story.php
new file mode 100644
index 00000000..b24e5f07
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/story/story.php
@@ -0,0 +1,493 @@
+<?php
+/**
+ * Story Block.
+ *
+ * @since 8.6.1
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Story;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack;
+use Jetpack_Gutenberg;
+use Jetpack_PostImages;
+
+const FEATURE_NAME = 'story';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+const EMBED_SIZE = array( 360, 640 ); // twice as many pixels for retina displays.
+const CROP_UP_TO = 0.2;
+const MAX_BULLETS = 7;
+const IMAGE_BREAKPOINTS = '(max-width: 460px) 576w, (max-width: 614px) 768w, 120vw'; // 120vw to match the 20% CROP_UP_TO ratio
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+}
+add_action( 'init', __NAMESPACE__ . '\register_block' );
+
+/**
+ * Compare 2 urls and return true if they likely correspond to the same resource.
+ * Ignore scheme, ports, query params and hashes and only compare hostname and pathname.
+ *
+ * @param string $url1 - First url used in comparison.
+ * @param string $url2 - Second url used in comparison.
+ *
+ * @returns boolean
+ */
+function is_same_resource( $url1, $url2 ) {
+ $url1_parsed = wp_parse_url( $url1 );
+ $url2_parsed = wp_parse_url( $url2 );
+ return isset( $url1_parsed['host'] ) &&
+ isset( $url2_parsed['host'] ) &&
+ isset( $url1_parsed['path'] ) &&
+ isset( $url2_parsed['path'] ) &&
+ $url1_parsed['host'] === $url2_parsed['host'] &&
+ $url1_parsed['path'] === $url2_parsed['path'];
+}
+
+/**
+ * Enrich media files retrieved from the story block attributes
+ * with extra information we can retrieve from the media library.
+ *
+ * @param array $media_files - List of media, each as an array containing the media attributes.
+ *
+ * @returns array $media_files
+ */
+function enrich_media_files( $media_files ) {
+ return array_filter(
+ array_map(
+ function ( $media_file ) {
+ if ( 'image' === $media_file['type'] ) {
+ return enrich_image_meta( $media_file );
+ }
+ // VideoPress videos can sometimes have type 'file', and mime 'video/videopress' or 'video/mp4'.
+ // Let's fix `type` for those.
+ if ( 'file' === $media_file['type'] && 'video' === substr( $media_file['mime'], 0, 5 ) ) {
+ $media_file['type'] = 'video';
+ }
+ if ( 'video' !== $media_file['type'] ) { // we only support images and videos at this point.
+ return null;
+ }
+ return enrich_video_meta( $media_file );
+ },
+ $media_files
+ )
+ );
+}
+
+/**
+ * Enrich image information with extra data we can retrieve from the media library.
+ * Add missing `width`, `height`, `srcset`, `sizes`, `title`, `alt` and `caption` properties to the image.
+ *
+ * @param array $media_file - An array containing the media attributes for a specific image.
+ *
+ * @returns array $media_file_enriched
+ */
+function enrich_image_meta( $media_file ) {
+ $attachment_id = isset( $media_file['id'] ) ? $media_file['id'] : null;
+ $image = wp_get_attachment_image_src( $attachment_id, 'full', false );
+ if ( ! $image ) {
+ return $media_file;
+ }
+ list( $src, $width, $height ) = $image;
+ // Bail if url stored in block attributes is different than the media library one for that id.
+ if ( isset( $media_file['url'] ) && ! is_same_resource( $media_file['url'], $src ) ) {
+ return $media_file;
+ }
+ $image_meta = wp_get_attachment_metadata( $attachment_id );
+ if ( ! is_array( $image_meta ) ) {
+ return $media_file;
+ }
+ $size_array = array( absint( $width ), absint( $height ) );
+ return array_merge(
+ $media_file,
+ array(
+ 'width' => absint( $width ),
+ 'height' => absint( $height ),
+ 'srcset' => wp_calculate_image_srcset( $size_array, $src, $image_meta, $attachment_id ),
+ 'sizes' => IMAGE_BREAKPOINTS,
+ 'title' => get_the_title( $attachment_id ),
+ 'alt' => get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ),
+ 'caption' => wp_get_attachment_caption( $attachment_id ),
+ )
+ );
+}
+
+/**
+ * Enrich video information with extra data we can retrieve from the media library.
+ * Add missing `width`, `height`, `alt`, `url`, `title`, `caption` and `poster` properties to the image.
+ *
+ * @param array $media_file - An array containing the media attributes for a specific video.
+ *
+ * @returns array $media_file_enriched
+ */
+function enrich_video_meta( $media_file ) {
+ $attachment_id = isset( $media_file['id'] ) ? $media_file['id'] : null;
+ $video_meta = wp_get_attachment_metadata( $attachment_id );
+ if ( ! $video_meta ) {
+ return $media_file;
+ }
+
+ $video_url = ! empty( $video_meta['original']['url'] ) ? $video_meta['original']['url'] : wp_get_attachment_url( $attachment_id );
+
+ // Set the poster attribute for the video tag if a poster image is available.
+ $poster_url = null;
+ if ( ! empty( $video_meta['videopress']['poster'] ) ) {
+ $poster_url = $video_meta['videopress']['poster'];
+ } elseif ( ! empty( $video_meta['thumb'] ) ) {
+ $poster_url = str_replace( wp_basename( $video_url ), $video_meta['thumb'], $video_url );
+ }
+
+ if ( $poster_url ) {
+ // Use the global content width for thumbnail resize so we match the `w=` query parameter
+ // that jetpack is going to add when "Enable site accelerator" is enabled for images.
+ $content_width = (int) Jetpack::get_content_width();
+ $new_width = $content_width > 0 ? $content_width : EMBED_SIZE[0];
+ $poster_url = add_query_arg( 'w', $new_width, $poster_url );
+ }
+
+ return array_merge(
+ $media_file,
+ array(
+ 'width' => absint( ! empty( $video_meta['width'] ) ? $video_meta['width'] : $media_file['width'] ),
+ 'height' => absint( ! empty( $video_meta['height'] ) ? $video_meta['height'] : $media_file['height'] ),
+ 'alt' => ! empty( $video_meta['videopress']['description'] ) ? $video_meta['videopress']['description'] : $media_file['alt'],
+ 'url' => $video_url,
+ 'title' => get_the_title( $attachment_id ),
+ 'caption' => wp_get_attachment_caption( $attachment_id ),
+ 'poster' => $poster_url,
+ )
+ );
+}
+
+/**
+ * Render an image inside a slide
+ *
+ * @param array $media - Image information.
+ *
+ * @returns string
+ */
+function render_image( $media ) {
+ if ( empty( $media['id'] ) || empty( $media['url'] ) ) {
+ return __( 'Error retrieving media', 'jetpack' );
+ }
+ $image = wp_get_attachment_image_src( $media['id'], 'full', false );
+ if ( $image ) {
+ list( $src, $width, $height ) = $image;
+ }
+
+ // if image does not match.
+ if ( ! $image || isset( $media['url'] ) && ! is_same_resource( $media['url'], $src ) ) {
+ $width = isset( $media['width'] ) ? $media['width'] : null;
+ $height = isset( $media['height'] ) ? $media['height'] : null;
+ $title = isset( $media['title'] ) ? $media['title'] : '';
+ $alt = isset( $media['alt'] ) ? $media['alt'] : '';
+ return sprintf(
+ '<img
+ title="%1$s"
+ alt="%2$s"
+ class="wp-block-jetpack-story_image wp-story-image %3$s"
+ src="%4$s"
+ />',
+ esc_attr( $title ),
+ esc_attr( $alt ),
+ $width && $height ? get_image_crop_class( $width, $height ) : '',
+ esc_attr( $media['url'] )
+ );
+ }
+
+ $crop_class = get_image_crop_class( $width, $height );
+ // need to specify the size of the embed so it picks an image that is large enough for the `src` attribute
+ // `sizes` is optimized for 1080x1920 (9:16) images
+ // Note that the Story block does not have thumbnail support, it will load the right
+ // image based on the viewport size only.
+ return wp_get_attachment_image(
+ $media['id'],
+ EMBED_SIZE,
+ false,
+ array(
+ 'class' => sprintf( 'wp-story-image wp-image-%d %s', $media['id'], $crop_class ),
+ 'sizes' => IMAGE_BREAKPOINTS,
+ 'title' => get_the_title( $media['id'] ),
+ )
+ );
+}
+
+/**
+ * Return the css crop class if image width and height requires it
+ *
+ * @param int $width - Image width.
+ * @param int $height - Image height.
+ *
+ * @returns string The CSS class which will display a cropped image
+ */
+function get_image_crop_class( $width, $height ) {
+ $crop_class = '';
+ $media_aspect_ratio = $width / $height;
+ $target_aspect_ratio = EMBED_SIZE[0] / EMBED_SIZE[1];
+ if ( $media_aspect_ratio >= $target_aspect_ratio ) {
+ // image wider than canvas.
+ $media_too_wide_to_crop = $media_aspect_ratio > $target_aspect_ratio / ( 1 - CROP_UP_TO );
+ if ( ! $media_too_wide_to_crop ) {
+ $crop_class = 'wp-story-crop-wide';
+ }
+ } else {
+ // image narrower than canvas.
+ $media_too_narrow_to_crop = $media_aspect_ratio < $target_aspect_ratio * ( 1 - CROP_UP_TO );
+ if ( ! $media_too_narrow_to_crop ) {
+ $crop_class = 'wp-story-crop-narrow';
+ }
+ }
+ return $crop_class;
+}
+
+/**
+ * Returns a URL for the site icon.
+ *
+ * @param int $size - Size for (square) sitei icon.
+ * @param string $fallback - Fallback URL to use if no site icon is found.
+ *
+ * @returns string
+ */
+function get_blavatar_or_site_icon_url( $size, $fallback ) {
+ $image_array = Jetpack_PostImages::from_blavatar( get_the_ID(), $size );
+ if ( ! empty( $image_array ) ) {
+ return $image_array[0]['src'];
+ } else {
+ return $fallback;
+ }
+}
+
+/**
+ * Render a video inside a slide
+ *
+ * @param array $media - Video information.
+ *
+ * @returns string
+ */
+function render_video( $media ) {
+ if ( empty( $media['id'] ) || empty( $media['mime'] ) || empty( $media['url'] ) ) {
+ return __( 'Error retrieving media', 'jetpack' );
+ }
+
+ if ( ! empty( $media['poster'] ) ) {
+ return render_image(
+ array_merge(
+ $media,
+ array(
+ 'type' => 'image',
+ 'url' => $media['poster'],
+ )
+ )
+ );
+ }
+
+ return sprintf(
+ '<video
+ title="%1$s"
+ type="%2$s"
+ class="wp-story-video intrinsic-ignore wp-video-%3$s"
+ data-id="%3$s"
+ src="%4$s">
+ </video>',
+ esc_attr( get_the_title( $media['id'] ) ),
+ esc_attr( $media['mime'] ),
+ $media['id'],
+ esc_attr( $media['url'] )
+ );
+}
+
+/**
+ * Pick a thumbnail to render a static/embedded story
+ *
+ * @param array $media_files - list of Media files.
+ *
+ * @returns string
+ */
+function render_static_slide( $media_files ) {
+ $media_template = '';
+ if ( empty( $media_files ) ) {
+ return '';
+ }
+
+ // find an image to showcase.
+ foreach ( $media_files as $media ) {
+ switch ( $media['type'] ) {
+ case 'image':
+ $media_template = render_image( $media );
+ break 2;
+ case 'video':
+ // ignore videos without a poster image.
+ if ( empty( $media['poster'] ) ) {
+ continue 2;
+ }
+ $media_template = render_video( $media );
+ break 2;
+ }
+ }
+
+ // if no "static" media was found for the thumbnail try to render a video tag without poster.
+ if ( empty( $media_template ) && ! empty( $media_files ) ) {
+ $media_template = render_video( $media_files[0] );
+ }
+
+ return sprintf(
+ '<div class="wp-story-slide" style="display: block;">
+ <figure>%s</figure>
+ </div>',
+ $media_template
+ );
+}
+
+/**
+ * Render the top right icon on top of the story embed
+ *
+ * @param array $settings - The block settings.
+ *
+ * @returns string
+ */
+function render_top_right_icon( $settings ) {
+ $show_slide_count = isset( $settings['showSlideCount'] ) ? $settings['showSlideCount'] : false;
+ $slide_count = isset( $settings['slides'] ) ? count( $settings['slides'] ) : 0;
+ if ( $show_slide_count ) {
+ // Render the story block icon along with the slide count.
+ return sprintf(
+ '<div class="wp-story-embed-icon">
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" role="img" aria-hidden="true" focusable="false">
+ <path d="M0 0h24v24H0z" fill="none"></path>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M6 3H14V17H6L6 3ZM4 3C4 1.89543 4.89543 1 6 1H14C15.1046 1 16 1.89543 16 3V17C16 18.1046 15.1046 19 14 19H6C4.89543 19 4 18.1046 4 17V3ZM18 5C19.1046 5 20 5.89543 20 7V21C20 22.1046 19.1046 23 18 23H10C8.89543 23 8 22.1046 8 21H18V5Z"></path>
+ </svg>
+ <span>%d</span>
+ </div>',
+ $slide_count
+ );
+ } else {
+ // Render the Fullscreen Gridicon.
+ return (
+ '<div class="wp-story-embed-icon-expand">
+ <svg class="gridicon gridicons-fullscreen" role="img" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
+ <g>
+ <path d="M21 3v6h-2V6.41l-3.29 3.3-1.42-1.42L17.59 5H15V3zM3 3v6h2V6.41l3.29 3.3 1.42-1.42L6.41 5H9V3zm18 18v-6h-2v2.59l-3.29-3.29-1.41 1.41L17.59 19H15v2zM9 21v-2H6.41l3.29-3.29-1.41-1.42L5 17.59V15H3v6z"></path>
+ </g>
+ </svg>
+ </div>'
+ );
+ }
+}
+
+/**
+ * Render a pagination bullet
+ *
+ * @param int $slide_index - The slide index it corresponds to.
+ * @param string $class_name - Optional css class name(s) to customize the bullet element.
+ *
+ * @returns string
+ */
+function render_pagination_bullet( $slide_index, $class_name = '' ) {
+ return sprintf(
+ '<div class="wp-story-pagination-bullet %s" aria-label="%s">
+ <div class="wp-story-pagination-bullet-bar"></div>
+ </div>',
+ esc_attr( $class_name ),
+ /* translators: %d is the slide number (1, 2, 3...) */
+ sprintf( __( 'Go to slide %d', 'jetpack' ), $slide_index )
+ );
+}
+
+/**
+ * Render pagination on top of the story embed
+ *
+ * @param array $settings - The block settings.
+ *
+ * @returns string
+ */
+function render_pagination( $settings ) {
+ $show_slide_count = isset( $settings['showSlideCount'] ) ? $settings['showSlideCount'] : false;
+ if ( $show_slide_count ) {
+ return '';
+ }
+ $slide_count = isset( $settings['slides'] ) ? count( $settings['slides'] ) : 0;
+ $bullet_count = min( $slide_count, MAX_BULLETS );
+ $bullet_ellipsis = $slide_count > $bullet_count
+ ? render_pagination_bullet( $bullet_count + 1, 'wp-story-pagination-ellipsis' )
+ : '';
+ return sprintf(
+ '<div class="wp-story-pagination wp-story-pagination-bullets">
+ %s
+ </div>',
+ join( "\n", array_map( __NAMESPACE__ . '\render_pagination_bullet', range( 1, $bullet_count ) ) ) . $bullet_ellipsis
+ );
+}
+
+/**
+ * Render story block
+ *
+ * @param array $attributes - Block attributes.
+ *
+ * @returns string
+ */
+function render_block( $attributes ) {
+ // Let's use a counter to have a different id for each story rendered in the same context.
+ static $story_block_counter = 0;
+
+ Jetpack_Gutenberg::load_assets_as_required( FEATURE_NAME );
+
+ $media_files = isset( $attributes['mediaFiles'] ) ? enrich_media_files( $attributes['mediaFiles'] ) : array();
+ $settings_from_attributes = isset( $attributes['settings'] ) ? $attributes['settings'] : array();
+
+ $settings = array_merge(
+ $settings_from_attributes,
+ array(
+ 'slides' => $media_files,
+ )
+ );
+
+ return sprintf(
+ '<div class="%1$s" data-id="%2$s" data-settings="%3$s">
+ <div class="wp-story-app">
+ <div class="wp-story-display-contents" style="display: contents;">
+ <a class="wp-story-container" href="%4$s" title="%5$s">
+ <div class="wp-story-meta">
+ <div class="wp-story-icon">
+ <img alt="%6$s" src="%7$s" width="40" height="40">
+ </div>
+ <div>
+ <div class="wp-story-title">
+ %8$s
+ </div>
+ </div>
+ </div>
+ <div class="wp-story-wrapper">
+ %9$s
+ </div>
+ <div class="wp-story-overlay">
+ %10$s
+ </div>
+ %11$s
+ </a>
+ </div>
+ </div>
+ </div>',
+ esc_attr( Blocks::classes( FEATURE_NAME, $attributes, array( 'wp-story', 'aligncenter' ) ) ),
+ esc_attr( 'wp-story-' . get_the_ID() . '-' . strval( ++$story_block_counter ) ),
+ filter_var( wp_json_encode( $settings ), FILTER_SANITIZE_SPECIAL_CHARS ),
+ get_permalink() . '?wp-story-load-in-fullscreen=true&amp;wp-story-play-on-load=true',
+ __( 'Play story in new tab', 'jetpack' ),
+ __( 'Site icon', 'jetpack' ),
+ esc_attr( get_blavatar_or_site_icon_url( 80, includes_url( 'images/w-logo-blue.png' ) ) ),
+ esc_html( get_the_title() ),
+ render_static_slide( $media_files ),
+ render_top_right_icon( $settings ),
+ render_pagination( $settings )
+ );
+}
diff --git a/plugins/jetpack/extensions/blocks/subscriptions/subscriptions.php b/plugins/jetpack/extensions/blocks/subscriptions/subscriptions.php
new file mode 100644
index 00000000..9fa2ab3c
--- /dev/null
+++ b/plugins/jetpack/extensions/blocks/subscriptions/subscriptions.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Subscriptions Block.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Extensions\Subscriptions;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack;
+use Jetpack_Gutenberg;
+
+const FEATURE_NAME = 'subscriptions';
+const BLOCK_NAME = 'jetpack/' . FEATURE_NAME;
+
+/**
+ * Registers the block for use in Gutenberg
+ * This is done via an action so that we can disable
+ * registration if we need to.
+ */
+function register_block() {
+ if (
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM )
+ || ( Jetpack::is_connection_ready() && Jetpack::is_module_active( 'subscriptions' ) )
+ ) {
+ Blocks::jetpack_register_block(
+ BLOCK_NAME,
+ array( 'render_callback' => __NAMESPACE__ . '\render_block' )
+ );
+ }
+}
+add_action( 'init', __NAMESPACE__ . '\register_block', 9 );
+
+/**
+ * Subscriptions block render callback.
+ *
+ * @param array $attributes Array containing the block attributes.
+ * @param string $content String containing the block content.
+ *
+ * @return string
+ */
+function render_block( $attributes, $content ) {
+ Jetpack_Gutenberg::load_styles_as_required( FEATURE_NAME );
+
+ return $content;
+}
diff --git a/plugins/jetpack/extensions/blocks/tiled-gallery/tiled-gallery.php b/plugins/jetpack/extensions/blocks/tiled-gallery/tiled-gallery.php
index 7900e9b6..bd7cb88b 100644
--- a/plugins/jetpack/extensions/blocks/tiled-gallery/tiled-gallery.php
+++ b/plugins/jetpack/extensions/blocks/tiled-gallery/tiled-gallery.php
@@ -1,19 +1,30 @@
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
-
/**
- * Tiled Gallery block. Depends on the Photon module.
+ * Tiled Gallery block.
+ * Relies on Photon, but can be used even when the module is not active.
*
* @since 6.9.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+namespace Automattic\Jetpack\Extensions;
+
+use Automattic\Jetpack\Blocks;
+use Automattic\Jetpack\Status;
+use Jetpack;
+use Jetpack_Gutenberg;
+use Jetpack_Plan;
+
/**
* Jetpack Tiled Gallery Block class
*
* @since 7.3
*/
-class Jetpack_Tiled_Gallery_Block {
+class Tiled_Gallery {
+ const FEATURE_NAME = 'tiled-gallery';
+ const BLOCK_NAME = 'jetpack/' . self::FEATURE_NAME;
+
/* Values for building srcsets */
const IMG_SRCSET_WIDTH_MAX = 2000;
const IMG_SRCSET_WIDTH_MIN = 600;
@@ -23,12 +34,18 @@ class Jetpack_Tiled_Gallery_Block {
* Register the block
*/
public static function register() {
- jetpack_register_block(
- 'jetpack/tiled-gallery',
- array(
- 'render_callback' => array( __CLASS__, 'render' ),
- )
- );
+ if (
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM )
+ || Jetpack::is_connection_ready()
+ || ( new Status() )->is_offline_mode()
+ ) {
+ Blocks::jetpack_register_block(
+ self::BLOCK_NAME,
+ array(
+ 'render_callback' => array( __CLASS__, 'render' ),
+ )
+ );
+ }
}
/**
@@ -40,7 +57,7 @@ class Jetpack_Tiled_Gallery_Block {
* @return string
*/
public static function render( $attr, $content ) {
- Jetpack_Gutenberg::load_assets_as_required( 'tiled-gallery' );
+ Jetpack_Gutenberg::load_assets_as_required( self::FEATURE_NAME );
$is_squareish_layout = self::is_squareish_layout( $attr );
@@ -63,8 +80,8 @@ class Jetpack_Tiled_Gallery_Block {
foreach ( $images[0] as $image_html ) {
if (
- preg_match( '/data-width="([0-9]+)"/', $image_html, $img_height )
- && preg_match( '/data-height="([0-9]+)"/', $image_html, $img_width )
+ preg_match( '/data-width="([0-9]+)"/', $image_html, $img_width )
+ && preg_match( '/data-height="([0-9]+)"/', $image_html, $img_height )
&& preg_match( '/src="([^"]+)"/', $image_html, $img_src )
) {
// Drop img src query string so it can be used as a base to add photon params
@@ -169,4 +186,4 @@ class Jetpack_Tiled_Gallery_Block {
}
}
-Jetpack_Tiled_Gallery_Block::register();
+Tiled_Gallery::register();
diff --git a/plugins/jetpack/extensions/blocks/wordads/wordads.php b/plugins/jetpack/extensions/blocks/wordads/wordads.php
index 9f67d58b..0b76558c 100644
--- a/plugins/jetpack/extensions/blocks/wordads/wordads.php
+++ b/plugins/jetpack/extensions/blocks/wordads/wordads.php
@@ -4,10 +4,23 @@
*
* @since 7.1.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-class Jetpack_WordAds_Gutenblock {
- const BLOCK_NAME = 'jetpack/wordads';
+
+namespace Automattic\Jetpack\Extensions;
+
+use Automattic\Jetpack\Blocks;
+use Jetpack;
+use Jetpack_Gutenberg;
+
+/**
+ * Jetpack's Ads Block class.
+ *
+ * @since 7.1.0
+ */
+class WordAds {
+ const FEATURE_NAME = 'wordads';
+ const BLOCK_NAME = 'jetpack/' . self::FEATURE_NAME;
/**
* Check if site is on WP.com Simple.
@@ -44,10 +57,10 @@ class Jetpack_WordAds_Gutenblock {
*/
public static function register() {
if ( self::is_available() ) {
- jetpack_register_block(
+ Blocks::jetpack_register_block(
self::BLOCK_NAME,
array(
- 'render_callback' => array( 'Jetpack_WordAds_Gutenblock', 'gutenblock_render' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render' ),
)
);
}
@@ -61,7 +74,7 @@ class Jetpack_WordAds_Gutenblock {
Jetpack_Gutenberg::set_extension_unavailable( self::BLOCK_NAME, 'WordAds unavailable' );
return;
}
- // Make the block available. Just in case it wasn't registed before.
+ // Make the block available. Just in case it wasn't registered before.
Jetpack_Gutenberg::set_extension_available( self::BLOCK_NAME );
}
@@ -75,7 +88,7 @@ class Jetpack_WordAds_Gutenblock {
public static function gutenblock_render( $attr ) {
global $wordads;
- /** This filter is already documented in modules/wordads/wordads.php `insert_ad()` */
+ /** This filter is already documented in modules/wordads/class-wordads.php `insert_ad()` */
if (
empty( $wordads )
|| empty( $wordads->params )
@@ -93,7 +106,7 @@ class Jetpack_WordAds_Gutenblock {
return $wordads->get_ad( 'inline', 'house' );
}
- // section_id is mostly depricated at this point, but it helps us (devs) keep track of which ads end up where
+ // section_id is mostly deprecated at this point, but it helps us (devs) keep track of which ads end up where
// 6 is to keep track of gutenblock ads.
$section_id = $wordads->params->blog_id . '6';
$align = 'center';
@@ -104,7 +117,7 @@ class Jetpack_WordAds_Gutenblock {
$ad_tag_ids = $wordads->get_ad_tags();
$format = 'mrec';
- if ( isset( $attr['format'] ) && in_array( $attr['format'], array_keys( $ad_tag_ids ), true ) ) {
+ if ( isset( $attr['format'] ) && isset( $ad_tag_ids[ $attr['format'] ] ) ) {
$format = $attr['format'];
}
@@ -115,12 +128,5 @@ class Jetpack_WordAds_Gutenblock {
}
}
-add_action(
- 'init',
- array( 'Jetpack_WordAds_Gutenblock', 'register' )
-);
-
-add_action(
- 'jetpack_register_gutenberg_extensions',
- array( 'Jetpack_WordAds_Gutenblock', 'set_availability' )
-);
+add_action( 'init', array( 'Automattic\\Jetpack\\Extensions\\WordAds', 'register' ) );
+add_action( 'jetpack_register_gutenberg_extensions', array( 'Automattic\\Jetpack\\Extensions\\WordAds', 'set_availability' ) );
diff --git a/plugins/jetpack/extensions/extended-blocks/core-audio/core-audio.php b/plugins/jetpack/extensions/extended-blocks/core-audio/core-audio.php
new file mode 100644
index 00000000..34f837aa
--- /dev/null
+++ b/plugins/jetpack/extensions/extended-blocks/core-audio/core-audio.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Plan checks for uploading audio files to core/audio.
+ *
+ * @package automattic/jetpack
+ **/
+
+// Populate the available extensions with core/audio.
+add_filter(
+ 'jetpack_set_available_extensions',
+ function ( $extensions ) {
+ return array_merge(
+ $extensions,
+ array(
+ 'core/audio',
+ )
+ );
+ }
+);
+
+// Set the core/audio block availability, depending on the site plan.
+add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () {
+ \Jetpack_Gutenberg::set_availability_for_plan( 'core/audio' );
+ }
+);
diff --git a/plugins/jetpack/extensions/extended-blocks/core-cover/core-cover.php b/plugins/jetpack/extensions/extended-blocks/core-cover/core-cover.php
new file mode 100644
index 00000000..54e151e6
--- /dev/null
+++ b/plugins/jetpack/extensions/extended-blocks/core-cover/core-cover.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Plan checks for uploading video files to core/cover.
+ *
+ * @package automattic/jetpack
+ **/
+
+// Populate the available extensions with core/cover.
+add_filter(
+ 'jetpack_set_available_extensions',
+ function ( $extensions ) {
+ return array_merge(
+ $extensions,
+ array(
+ 'core/cover',
+ )
+ );
+ }
+);
+
+// Set the core/cover block availability, depending on the site plan.
+add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () {
+ \Jetpack_Gutenberg::set_availability_for_plan( 'core/cover' );
+ }
+);
diff --git a/plugins/jetpack/extensions/extended-blocks/core-video/core-video.php b/plugins/jetpack/extensions/extended-blocks/core-video/core-video.php
new file mode 100644
index 00000000..524a5a3e
--- /dev/null
+++ b/plugins/jetpack/extensions/extended-blocks/core-video/core-video.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Plan checks for uploading video files to core/video.
+ *
+ * @package automattic/jetpack
+ **/
+
+// Populate the available extensions with core/video.
+add_filter(
+ 'jetpack_set_available_extensions',
+ function ( $extensions ) {
+ return array_merge(
+ $extensions,
+ array(
+ 'core/video',
+ )
+ );
+ }
+);
+
+// Set the core/video block availability, depending on the site plan.
+add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () {
+ \Jetpack_Gutenberg::set_availability_for_plan( 'core/video' );
+ }
+);
diff --git a/plugins/jetpack/extensions/extended-blocks/premium-content-container/premium-content-container.php b/plugins/jetpack/extensions/extended-blocks/premium-content-container/premium-content-container.php
new file mode 100644
index 00000000..ca386885
--- /dev/null
+++ b/plugins/jetpack/extensions/extended-blocks/premium-content-container/premium-content-container.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Plan checks for uploading video files to premium-content/container.
+ *
+ * @package automattic/jetpack
+ **/
+
+// Populate the available extensions with premium-content/container.
+add_filter(
+ 'jetpack_set_available_extensions',
+ function ( $extensions ) {
+ return array_merge(
+ $extensions,
+ array(
+ 'premium-content/container',
+ )
+ );
+ }
+);
+
+// Set the premium-content/container block availability, depending on the site plan.
+add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () {
+ \Jetpack_Gutenberg::set_availability_for_plan( 'premium-content/container' );
+ }
+);
diff --git a/plugins/jetpack/extensions/plugins/publicize/publicize.php b/plugins/jetpack/extensions/plugins/publicize/publicize.php
new file mode 100644
index 00000000..1c1fcaff
--- /dev/null
+++ b/plugins/jetpack/extensions/plugins/publicize/publicize.php
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Block Editor - Republicize feature.
+ *
+ * @package automattic/jetpack
+ **/
+
+// Populate the available extensions with republicize.
+add_filter(
+ 'jetpack_set_available_extensions',
+ function ( $extensions ) {
+ return array_merge(
+ $extensions,
+ array(
+ 'republicize',
+ )
+ );
+ }
+);
+
+// Set the republicize availability, depending on the site plan.
+add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () {
+ \Jetpack_Gutenberg::set_availability_for_plan( 'republicize' );
+ }
+);
diff --git a/plugins/jetpack/functions.compat.php b/plugins/jetpack/functions.compat.php
index 4d97448b..2629ff00 100644
--- a/plugins/jetpack/functions.compat.php
+++ b/plugins/jetpack/functions.compat.php
@@ -14,7 +14,7 @@ function jetpack_shortcode_get_youtube_id( $url ) {
}
/**
-* @param $url Can be just the $url or the whole $atts array
+* @param string $url Can be just the $url or the whole $atts array
* @return bool|mixed The Youtube video ID
*/
function jetpack_get_youtube_id( $url ) {
diff --git a/plugins/jetpack/functions.cookies.php b/plugins/jetpack/functions.cookies.php
index d6cad5cf..a9b38754 100644
--- a/plugins/jetpack/functions.cookies.php
+++ b/plugins/jetpack/functions.cookies.php
@@ -5,7 +5,7 @@
*
* This file is loaded whether or not Jetpack is connected to WP.com.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/functions.global.php b/plugins/jetpack/functions.global.php
index 9d983fd9..fd403dda 100644
--- a/plugins/jetpack/functions.global.php
+++ b/plugins/jetpack/functions.global.php
@@ -3,14 +3,18 @@
* This file is meant to be the home for any generic & reusable functions
* that can be accessed anywhere within Jetpack.
*
- * This file is loaded whether or not Jetpack is active.
+ * This file is loaded whether Jetpack is active.
*
* Please namespace with jetpack_
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Device_Detection;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status\Host;
+use Automattic\Jetpack\Sync\Functions;
/**
* Disable direct access.
@@ -19,62 +23,138 @@ if ( ! defined( 'ABSPATH' ) ) {
exit;
}
-if ( ! function_exists( 'wp_timezone' ) ) {
- /**
- * Shim for WordPress 5.3's wp_timezone() function.
- *
- * This is a mix of wp_timezone(), which calls wp_timezone_string().
- * We don't need both in Jetpack, so providing only one function.
- *
- * @since 7.9.0
- * @todo Remove when WP 5.3 is Jetpack's minimum
- *
- * @return DateTimeZone Site's DateTimeZone
- */
- function wp_timezone() {
- $timezone_string = get_option( 'timezone_string' );
+/**
+ * Hook into Core's _deprecated_function
+ * Add more details about when a deprecated function will be removed.
+ *
+ * @since 8.8.0
+ *
+ * @param string $function The function that was called.
+ * @param string $replacement Optional. The function that should have been called. Default null.
+ * @param string $version The version of Jetpack that deprecated the function.
+ */
+function jetpack_deprecated_function( $function, $replacement, $version ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Bail early for non-Jetpack deprecations.
+ if ( 0 !== strpos( $version, 'jetpack-' ) ) {
+ return;
+ }
- if ( $timezone_string ) {
- return new DateTimeZone( $timezone_string );
- }
+ // Look for when a function will be removed based on when it was deprecated.
+ $removed_version = jetpack_get_future_removed_version( $version );
+
+ // If we could find a version, let's log a message about when removal will happen.
+ if (
+ ! empty( $removed_version )
+ && ( defined( 'WP_DEBUG' ) && WP_DEBUG )
+ /** This filter is documented in core/src/wp-includes/functions.php */
+ && apply_filters( 'deprecated_function_trigger_error', true )
+ ) {
+ error_log( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ sprintf(
+ /* Translators: 1. Function name. 2. Jetpack version number. */
+ __( 'The %1$s function will be removed from the Jetpack plugin in version %2$s.', 'jetpack' ),
+ $function,
+ $removed_version
+ )
+ );
- $offset = (float) get_option( 'gmt_offset' );
- $hours = (int) $offset;
- $minutes = ( $offset - $hours );
+ }
+}
+add_action( 'deprecated_function_run', 'jetpack_deprecated_function', 10, 3 );
+
+/**
+ * Hook into Core's _deprecated_file
+ * Add more details about when a deprecated file will be removed.
+ *
+ * @since 8.8.0
+ *
+ * @param string $file The file that was called.
+ * @param string $replacement The file that should have been included based on ABSPATH.
+ * @param string $version The version of WordPress that deprecated the file.
+ * @param string $message A message regarding the change.
+ */
+function jetpack_deprecated_file( $file, $replacement, $version, $message ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Bail early for non-Jetpack deprecations.
+ if ( 0 !== strpos( $version, 'jetpack-' ) ) {
+ return;
+ }
- $sign = ( $offset < 0 ) ? '-' : '+';
- $abs_hour = abs( $hours );
- $abs_mins = abs( $minutes * 60 );
- $tz_offset = sprintf( '%s%02d:%02d', $sign, $abs_hour, $abs_mins );
+ // Look for when a file will be removed based on when it was deprecated.
+ $removed_version = jetpack_get_future_removed_version( $version );
+
+ // If we could find a version, let's log a message about when removal will happen.
+ if (
+ ! empty( $removed_version )
+ && ( defined( 'WP_DEBUG' ) && WP_DEBUG )
+ /** This filter is documented in core/src/wp-includes/functions.php */
+ && apply_filters( 'deprecated_file_trigger_error', true )
+ ) {
+ error_log( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ sprintf(
+ /* Translators: 1. File name. 2. Jetpack version number. */
+ __( 'The %1$s file will be removed from the Jetpack plugin in version %2$s.', 'jetpack' ),
+ $file,
+ $removed_version
+ )
+ );
- return new DateTimeZone( $tz_offset );
}
}
+add_action( 'deprecated_file_included', 'jetpack_deprecated_file', 10, 4 );
/**
- * Set the admin language, based on user language.
+ * Get the major version number of Jetpack 6 months after provided version.
+ * Useful to indicate when a deprecated function will be removed from Jetpack.
+ *
+ * @since 8.8.0
*
- * @since 4.5.0
- * @deprecated 6.6.0 Use Core function instead.
+ * @param string $version The version of WordPress that deprecated the function.
*
- * @return string
+ * @return bool|float Return a Jetpack Major version number, or false.
*/
-function jetpack_get_user_locale() {
- _deprecated_function( __FUNCTION__, 'jetpack-6.6.0', 'get_user_locale' );
- return get_user_locale();
+function jetpack_get_future_removed_version( $version ) {
+ /*
+ * Extract the version number from a deprecation notice.
+ * (let's only keep the first decimal, e.g. 8.8 and not 8.8.0)
+ */
+ preg_match( '#(([0-9]+\.([0-9]+))(?:\.[0-9]+)*)#', $version, $matches );
+
+ if ( isset( $matches[2], $matches[3] ) ) {
+ $deprecated_version = (float) $matches[2];
+ $deprecated_minor = (float) $matches[3];
+
+ /*
+ * If the detected minor version number
+ * (e.g. "7" in "8.7")
+ * is higher than 9, we know the version number is malformed.
+ * Jetpack does not use semver yet.
+ * Bail.
+ */
+ if ( 10 <= $deprecated_minor ) {
+ return false;
+ }
+
+ // We'll remove the function from the code 6 months later, thus 6 major versions later.
+ $removed_version = $deprecated_version + 0.6;
+
+ return (float) $removed_version;
+ }
+
+ return false;
}
/**
- * Determine if this site is an Atomic site or not looking first at the 'at_options' option.
+ * Determine if this site is an WoA site or not looking first at the 'at_options' option.
* As a fallback, check for presence of wpcomsh plugin to determine if a current site has undergone AT.
*
* @since 4.8.1
+ * @deprecated $$next_version$$
*
* @return bool
*/
function jetpack_is_atomic_site() {
- $at_options = get_option( 'at_options', array() );
- return ! empty( $at_options ) || defined( 'WPCOMSH__PLUGIN_FILE' );
+ jetpack_deprecated_function( __FUNCTION__, 'Automattic/Jetpack/Status/Host::is_woa_site', '$$next_version$$' );
+ return ( new Host() )->is_woa_site();
}
/**
@@ -113,7 +193,7 @@ function jetpack_store_migration_data( $option_name, $option_value ) {
'post_title' => $option_name,
'post_content_filtered' => $option_value,
'post_type' => 'jetpack_migration',
- 'post_date' => date( 'Y-m-d H:i:s', time() ),
+ 'post_date' => gmdate( 'Y-m-d H:i:s', time() ),
);
$post = get_page_by_title( $option_name, 'OBJECT', 'jetpack_migration' );
@@ -143,6 +223,8 @@ function jetpack_get_migration_data( $option_name ) {
/**
* Prints a TOS blurb used throughout the connection prompts.
*
+ * Note: custom ToS messages are also defined in Jetpack_Pre_Connection_JITMs->get_raw_messages()
+ *
* @since 5.3
*
* @echo string
@@ -161,8 +243,8 @@ function jetpack_render_tos_blurb() {
'strong' => true,
)
),
- 'https://wordpress.com/tos',
- 'https://jetpack.com/support/what-data-does-jetpack-sync'
+ esc_url( Redirect::get_url( 'wpcom-tos' ) ),
+ esc_url( Redirect::get_url( 'jetpack-support-what-data-does-jetpack-sync' ) )
);
}
@@ -178,7 +260,7 @@ function jetpack_render_tos_blurb() {
* @return array|bool|WP_Error
*/
function jetpack_theme_update( $preempt, $r, $url ) {
- if ( false !== stripos( $url, JETPACK__WPCOM_JSON_API_HOST . '/rest/v1/themes/download' ) ) {
+ if ( 0 === stripos( $url, JETPACK__WPCOM_JSON_API_BASE . '/rest/v1/themes/download' ) ) {
$file = $r['filename'];
if ( ! $file ) {
return new WP_Error( 'problem_creating_theme_file', esc_html__( 'Problem creating file for theme download', 'jetpack' ) );
@@ -220,11 +302,12 @@ function jetpack_upgrader_pre_download( $reply ) {
add_filter( 'upgrader_pre_download', 'jetpack_upgrader_pre_download' );
-
/**
* Wraps data in a way so that we can distinguish between objects and array and also prevent object recursion.
*
* @since 6.1.0
+
+ * @deprecated Automattic\Jetpack\Sync\Functions::json_wrap
*
* @param array|obj $any Source data to be cleaned up.
* @param array $seen_nodes Built array of nodes.
@@ -232,33 +315,9 @@ add_filter( 'upgrader_pre_download', 'jetpack_upgrader_pre_download' );
* @return array
*/
function jetpack_json_wrap( &$any, $seen_nodes = array() ) {
- if ( is_object( $any ) ) {
- $input = get_object_vars( $any );
- $input['__o'] = 1;
- } else {
- $input = &$any;
- }
-
- if ( is_array( $input ) ) {
- $seen_nodes[] = &$any;
+ _deprecated_function( __METHOD__, 'jetpack-9.5', 'Automattic\Jetpack\Sync\Functions' );
- $return = array();
-
- foreach ( $input as $k => &$v ) {
- if ( ( is_array( $v ) || is_object( $v ) ) ) {
- if ( in_array( $v, $seen_nodes, true ) ) {
- continue;
- }
- $return[ $k ] = jetpack_json_wrap( $v, $seen_nodes );
- } else {
- $return[ $k ] = $v;
- }
- }
-
- return $return;
- }
-
- return $any;
+ return Functions::json_wrap( $any, $seen_nodes );
}
/**
@@ -314,6 +373,7 @@ function jetpack_is_file_supported_for_sideloading( $file ) {
'image/jpeg',
'image/gif',
'image/bmp',
+ 'image/webp',
'video/quicktime',
'video/mp4',
'video/mpeg',
@@ -336,3 +396,94 @@ function jetpack_is_file_supported_for_sideloading( $file ) {
return in_array( $type, $supported_mime_types, true );
}
+
+/**
+ * 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.
+ *
+ * @return bool|string Boolean indicating if current UA matches $kind. If
+ * $return_matched_agent is true, returns the UA string
+ */
+function jetpack_is_mobile( $kind = 'any', $return_matched_agent = false ) {
+
+ /**
+ * Filter the value of jetpack_is_mobile before it is calculated.
+ *
+ * Passing a truthy value to the filter will short-circuit determining the
+ * mobile type, returning the passed value instead.
+ *
+ * @since 4.2.0
+ *
+ * @param bool|string $matches Boolean if current UA matches $kind or not. If
+ * $return_matched_agent is true, should return the UA string
+ * @param string $kind Category of mobile device being checked
+ * @param bool $return_matched_agent Boolean indicating if the UA should be returned
+ */
+ $pre = apply_filters( 'pre_jetpack_is_mobile', null, $kind, $return_matched_agent );
+ if ( $pre ) {
+ return $pre;
+ }
+
+ $return = false;
+ $device_info = Device_Detection::get_info();
+
+ if ( 'any' === $kind ) {
+ $return = $device_info['is_phone'];
+ } elseif ( 'smart' === $kind ) {
+ $return = $device_info['is_smartphone'];
+ } elseif ( 'dumb' === $kind ) {
+ $return = $device_info['is_phone'] && ! $device_info['is_smartphone'];
+ }
+
+ if ( $return_matched_agent && true === $return ) {
+ $return = $device_info['is_phone_matched_ua'];
+ }
+
+ /**
+ * Filter the value of jetpack_is_mobile
+ *
+ * @since 4.2.0
+ *
+ * @param bool|string $matches Boolean if current UA matches $kind or not. If
+ * $return_matched_agent is true, should return the UA string
+ * @param string $kind Category of mobile device being checked
+ * @param bool $return_matched_agent Boolean indicating if the UA should be returned
+ */
+ return apply_filters( 'jetpack_is_mobile', $return, $kind, $return_matched_agent );
+}
+
+/**
+ * Determine whether the current request is for accessing the frontend.
+ *
+ * @return bool True if it's a frontend request, false otherwise.
+ */
+function jetpack_is_frontend() {
+ $is_frontend = true;
+
+ if (
+ is_admin() ||
+ wp_doing_ajax() ||
+ wp_doing_cron() ||
+ wp_is_json_request() ||
+ wp_is_jsonp_request() ||
+ wp_is_xml_request() ||
+ is_feed() ||
+ ( defined( 'REST_REQUEST' ) && REST_REQUEST ) ||
+ ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) ||
+ ( defined( 'WP_CLI' ) && WP_CLI )
+ ) {
+ $is_frontend = false;
+ }
+
+ /**
+ * Filter whether the current request is for accessing the frontend.
+ *
+ * @since 9.0.0
+ *
+ * @param bool $is_frontend Whether the current request is for accessing the frontend.
+ */
+ return (bool) apply_filters( 'jetpack_is_frontend', $is_frontend );
+}
diff --git a/plugins/jetpack/functions.opengraph.php b/plugins/jetpack/functions.opengraph.php
index 1a7617a0..0f0366a8 100644
--- a/plugins/jetpack/functions.opengraph.php
+++ b/plugins/jetpack/functions.opengraph.php
@@ -8,30 +8,18 @@
* @link https://ogp.me/
* @link https://developers.facebook.com/docs/opengraph/
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_action( 'wp_head', 'jetpack_og_tags' );
-add_action( 'amp_story_head', 'jetpack_og_tags' );
+add_action( 'web_stories_story_head', 'jetpack_og_tags' );
/**
* Outputs Open Graph tags generated by Jetpack.
*/
function jetpack_og_tags() {
- /**
- * Allow Jetpack to output Open Graph Meta Tags.
- *
- * @module sharedaddy, publicize
- *
- * @since 2.0.0
- * @deprecated 2.0.3 Duplicative filter. Use `jetpack_enable_open_graph`.
- *
- * @param bool true Should Jetpack's Open Graph Meta Tags be enabled. Default to true.
- */
- if ( false === apply_filters( 'jetpack_enable_opengraph', true ) ) {
- _deprecated_function( 'jetpack_enable_opengraph', '2.0.3', 'jetpack_enable_open_graph' );
- return;
- }
+ global $post;
+ $data = $post; // so that we don't accidentally explode the global.
$is_amp_response = ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() );
@@ -114,10 +102,7 @@ function jetpack_og_tags() {
$tags['og:description'] = $archive->description;
}
}
- } elseif ( is_singular() ) {
- global $post;
- $data = $post; // so that we don't accidentally explode the global.
-
+ } elseif ( is_singular() && is_a( $data, 'WP_Post' ) ) {
$tags['og:type'] = 'article';
if ( empty( $data->post_title ) ) {
$tags['og:title'] = ' ';
@@ -128,40 +113,32 @@ function jetpack_og_tags() {
$tags['og:url'] = get_permalink( $data->ID );
if ( ! post_password_required() ) {
+ /*
+ * If the post author set an excerpt, use that.
+ * Otherwise, pick the post content that comes before the More tag if there is one.
+ * Do not use the post content if it contains premium content.
+ */
if ( ! empty( $data->post_excerpt ) ) {
- $tags['og:description'] = preg_replace( '@https?://[\S]+@', '', strip_shortcodes( wp_kses( $data->post_excerpt, array() ) ) );
- } else {
- $exploded_content_on_more_tag = explode( '<!--more-->', $data->post_content );
- $tags['og:description'] = wp_trim_words( preg_replace( '@https?://[\S]+@', '', strip_shortcodes( wp_kses( $exploded_content_on_more_tag[0], array() ) ) ) );
+ $tags['og:description'] = jetpack_og_get_description( $data->post_excerpt );
+ } elseif ( ! has_block( 'premium-content/container', $data->post_content ) ) {
+ $excerpt = explode( '<!--more-->', $data->post_content )[0];
+ $tags['og:description'] = jetpack_og_get_description( $excerpt );
}
}
- if ( empty( $tags['og:description'] ) ) {
- /**
- * Filter the fallback `og:description` used when no excerpt information is provided.
- *
- * @module sharedaddy, publicize
- *
- * @since 3.9.0
- *
- * @param string $var Fallback og:description. Default is translated `Visit the post for more'.
- * @param object $data Post object for the current post.
- */
- $tags['og:description'] = apply_filters( 'jetpack_open_graph_fallback_description', __( 'Visit the post for more.', 'jetpack' ), $data );
- } else {
- // Intentionally not using a filter to prevent pollution. @see https://github.com/Automattic/jetpack/pull/2899#issuecomment-151957382 .
- $tags['og:description'] = wp_kses( trim( convert_chars( wptexturize( $tags['og:description'] ) ) ), array() );
- }
- $tags['article:published_time'] = date( 'c', strtotime( $data->post_date_gmt ) );
- $tags['article:modified_time'] = date( 'c', strtotime( $data->post_modified_gmt ) );
+ $tags['article:published_time'] = gmdate( 'c', strtotime( $data->post_date_gmt ) );
+ $tags['article:modified_time'] = gmdate( 'c', strtotime( $data->post_modified_gmt ) );
if ( post_type_supports( get_post_type( $data ), 'author' ) && isset( $data->post_author ) ) {
$publicize_facebook_user = get_post_meta( $data->ID, '_publicize_facebook_user', true );
if ( ! empty( $publicize_facebook_user ) ) {
$tags['article:author'] = esc_url( $publicize_facebook_user );
}
}
+ } elseif ( is_search() ) {
+ if ( '' !== get_query_var( 's', '' ) ) {
+ $tags['og:title'] = wp_get_document_title();
+ }
}
-
/**
* Allow plugins to inject additional template-specific Open Graph tags.
*
@@ -205,7 +182,8 @@ function jetpack_og_tags() {
if ( ! empty( $image_info['height'] ) ) {
$tags['og:image:height'] = (int) $image_info['height'];
}
- if ( ! empty( $image_info['alt_text'] ) ) {
+ // If we have an image, add the alt text even if it's empty.
+ if ( ! empty( $image_info['src'] ) && isset( $image_info['alt_text'] ) ) {
$tags['og:image:alt'] = esc_attr( $image_info['alt_text'] );
}
}
@@ -255,16 +233,36 @@ function jetpack_og_tags() {
unset( $tags['og:image:secure_url'] );
$secure_image_num = 0;
+ $allowed_empty_tags = array(
+ 'og:image:alt',
+ );
+
foreach ( (array) $tags as $tag_property => $tag_content ) {
// to accommodate multiple images.
$tag_content = (array) $tag_content;
$tag_content = array_unique( $tag_content );
foreach ( $tag_content as $tag_content_single ) {
- if ( empty( $tag_content_single ) ) {
- continue; // Don't ever output empty tags.
+ if ( empty( $tag_content_single ) && ! in_array( $tag_property, $allowed_empty_tags, true ) ) {
+ continue; // Only allow certain empty tags.
+ }
+
+ switch ( $tag_property ) {
+ case 'og:url':
+ case 'og:image':
+ case 'og:image:url':
+ case 'og:image:secure_url':
+ case 'og:audio':
+ case 'og:audio:url':
+ case 'og:audio:secure_url':
+ case 'og:video':
+ case 'og:video:url':
+ case 'og:video:secure_url':
+ $og_tag = sprintf( '<meta property="%s" content="%s" />', esc_attr( $tag_property ), esc_url( $tag_content_single ) );
+ break;
+ default:
+ $og_tag = sprintf( '<meta property="%s" content="%s" />', esc_attr( $tag_property ), esc_attr( $tag_content_single ) );
}
- $og_tag = sprintf( '<meta property="%s" content="%s" />', esc_attr( $tag_property ), esc_attr( $tag_content_single ) );
/**
* Filter the HTML Output of each Open Graph Meta tag.
*
@@ -315,47 +313,47 @@ function jetpack_og_tags() {
*/
function jetpack_og_get_image( $width = 200, $height = 200, $deprecated = null ) {
if ( ! empty( $deprecated ) ) {
- _deprecated_argument( __FUNCTION__, '6.6.0' );
+ _deprecated_argument( __FUNCTION__, 'jetpack-6.6.0' );
}
$image = array();
if ( is_singular() && ! is_home() ) {
// Grab obvious image if post is an attachment page for an image.
if ( is_attachment( get_the_ID() ) && 'image' === substr( get_post_mime_type(), 0, 5 ) ) {
- $image['src'] = wp_get_attachment_url( get_the_ID() );
+ $image['src'] = wp_get_attachment_url( get_the_ID() );
+ $image['alt_text'] = Jetpack_PostImages::get_alt_text( get_the_ID() );
}
// Attempt to find something good for this post using our generalized PostImages code.
if ( empty( $image ) && class_exists( 'Jetpack_PostImages' ) ) {
- $post_images = Jetpack_PostImages::get_images(
+ $post_image = Jetpack_PostImages::get_image(
get_the_ID(),
array(
'width' => $width,
'height' => $height,
)
);
- if ( $post_images && ! is_wp_error( $post_images ) ) {
- foreach ( (array) $post_images as $post_image ) {
- $image['src'] = $post_image['src'];
- if ( isset( $post_image['src_width'], $post_image['src_height'] ) ) {
- $image['width'] = $post_image['src_width'];
- $image['height'] = $post_image['src_height'];
- }
- if ( ! empty( $post_image['alt_text'] ) ) {
- $image['alt_text'] = $post_image['alt_text'];
- }
+ if ( ! empty( $post_image ) && is_array( $post_image ) ) {
+ $image['src'] = $post_image['src'];
+ if ( isset( $post_image['src_width'], $post_image['src_height'] ) ) {
+ $image['width'] = $post_image['src_width'];
+ $image['height'] = $post_image['src_height'];
+ }
+ if ( ! empty( $post_image['alt_text'] ) ) {
+ $image['alt_text'] = $post_image['alt_text'];
}
}
}
} elseif ( is_author() ) {
$author = get_queried_object();
if ( is_a( $author, 'WP_User' ) ) {
- $image['src'] = get_avatar_url(
+ $image['src'] = get_avatar_url(
$author->user_email,
array(
'size' => $width,
)
);
+ $image['alt_text'] = $author->display_name;
}
}
@@ -377,9 +375,10 @@ function jetpack_og_get_image( $width = 200, $height = 200, $deprecated = null )
isset( $logo[0], $logo[1], $logo[2] )
&& ( _jetpack_og_get_image_validate_size( $logo[1], $logo[2], $width, $height ) )
) {
- $image['src'] = $logo[0];
- $image['width'] = $logo[1];
- $image['height'] = $logo[2];
+ $image['src'] = $logo[0];
+ $image['width'] = $logo[1];
+ $image['height'] = $logo[2];
+ $image['alt_text'] = Jetpack_PostImages::get_alt_text( $image_id );
}
}
@@ -391,9 +390,10 @@ function jetpack_og_get_image( $width = 200, $height = 200, $deprecated = null )
isset( $icon[0], $icon[1], $icon[2] )
&& ( _jetpack_og_get_image_validate_size( $icon[1], $icon[2], $width, $height ) )
) {
- $image['src'] = $icon[0];
- $image['width'] = $icon[1];
- $image['height'] = $icon[2];
+ $image['src'] = $icon[0];
+ $image['width'] = $icon[1];
+ $image['height'] = $icon[2];
+ $image['alt_text'] = Jetpack_PostImages::get_alt_text( $image_id );
}
}
@@ -409,10 +409,21 @@ function jetpack_og_get_image( $width = 200, $height = 200, $deprecated = null )
$image['src'] = apply_filters( 'jetpack_open_graph_image_default', 'https://s0.wp.com/i/blank.jpg' );
}
+ // If we didn't get an explicit alt tag from the image, set a default.
+ if ( empty( $image['alt_text'] ) ) {
+ /**
+ * Filter the default Open Graph image alt text, used when the Open Graph image from the post does not have an alt text.
+ *
+ * @since 10.4
+ *
+ * @param string $str Default Open Graph image alt text.
+ */
+ $image['alt_text'] = apply_filters( 'jetpack_open_graph_image_default_alt_text', '' );
+ }
+
return $image;
}
-
/**
* Validate the width and height against required width and height
*
@@ -450,3 +461,75 @@ function jetpack_og_get_image_gravatar( $email, $width ) {
)
);
}
+
+/**
+ * Clean up text meant to be used as Description Open Graph tag.
+ *
+ * There should be:
+ * - no links
+ * - no shortcodes
+ * - no html tags or their contents
+ * - not too many words.
+ *
+ * @param string $description Text coming from WordPress (autogenerated or manually generated by author).
+ * @param WP_Post|null $data Information about our post.
+ *
+ * @return string $description Cleaned up description string.
+ */
+function jetpack_og_get_description( $description = '', $data = null ) {
+ // Remove tags such as <style or <script.
+ $description = wp_strip_all_tags( $description );
+
+ /*
+ * Clean up any plain text entities left into formatted entities.
+ * Intentionally not using a filter to prevent pollution.
+ * @see https://github.com/Automattic/jetpack/pull/2899#issuecomment-151957382
+ */
+ $description = wp_kses(
+ trim(
+ convert_chars(
+ wptexturize( $description )
+ )
+ ),
+ array()
+ );
+
+ // Remove shortcodes.
+ $description = strip_shortcodes( $description );
+
+ // Remove links.
+ $description = preg_replace(
+ '@https?://[\S]+@',
+ '',
+ $description
+ );
+
+ /*
+ * Limit things to a small text blurb.
+ * There isn't a hard limit set by Facebook, so let's rely on WP's own limit.
+ * (55 words or the localized equivalent).
+ * This limit can be customized with the wp_trim_words filter.
+ */
+ $description = wp_trim_words( $description );
+
+ // Let's set a default if we have no text by now.
+ if ( empty( $description ) ) {
+ /**
+ * Filter the fallback `og:description` used when no excerpt information is provided.
+ *
+ * @module sharedaddy, publicize
+ *
+ * @since 3.9.0
+ *
+ * @param string $var Fallback og:description. Default is translated `Visit the post for more'.
+ * @param object $data Post object for the current post.
+ */
+ $description = apply_filters(
+ 'jetpack_open_graph_fallback_description',
+ __( 'Visit the post for more.', 'jetpack' ),
+ $data
+ );
+ }
+
+ return $description;
+}
diff --git a/plugins/jetpack/functions.photon.php b/plugins/jetpack/functions.photon.php
index a038b702..5cbc2e5b 100644
--- a/plugins/jetpack/functions.photon.php
+++ b/plugins/jetpack/functions.photon.php
@@ -7,7 +7,7 @@ use Automattic\Jetpack\Status;
*
* Some are used outside of the Photon module being active, so intentionally not within the module.
*
- * @package jetpack
+ * @package automattic/jetpack
*/
/**
@@ -31,9 +31,9 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
*
* @since 4.1.0
*
- * @param bool false Result of Automattic\Jetpack\Status->is_development_mode().
+ * @param bool false Result of Automattic\Jetpack\Status->is_offline_mode().
*/
- if ( true === apply_filters( 'jetpack_photon_development_mode', ( new Status() )->is_development_mode() ) ) {
+ if ( true === apply_filters( 'jetpack_photon_development_mode', ( new Status() )->is_offline_mode() ) ) {
return $image_url;
}
}
@@ -125,16 +125,6 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
|| wp_parse_url( $custom_photon_url, PHP_URL_HOST ) === $image_url_parts['host']
|| $is_wpcom_image
) {
- /*
- * VideoPress Poster images should only keep one param, ssl.
- */
- if (
- is_array( $args )
- && 'videos.files.wordpress.com' === strtolower( $image_url_parts['host'] )
- ) {
- $args = array_intersect_key( array( 'ssl' => 1 ), $args );
- }
-
$photon_url = add_query_arg( $args, $image_url );
return jetpack_photon_url_scheme( $photon_url, $scheme );
}
@@ -154,7 +144,7 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
if ( ! apply_filters( 'jetpack_photon_any_extension_for_domain', false, $image_url_parts['host'] ) ) {
// Photon doesn't support query strings so we ignore them and look only at the path.
// However some source images are served via PHP so check the no-query-string extension.
- // For future proofing, this is a blacklist of common issues rather than a whitelist.
+ // For future proofing, this is an excluded list of common issues rather than an allow list.
$extension = pathinfo( $image_url_parts['path'], PATHINFO_EXTENSION );
if ( empty( $extension ) || in_array( $extension, array( 'php', 'ashx' ), true ) ) {
return $image_url;
@@ -163,18 +153,6 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
$image_host_path = $image_url_parts['host'] . $image_url_parts['path'];
- /*
- * Figure out which CDN subdomain to use.
- *
- * The goal is to have the same subdomain for any particular image to prevent multiple runs resulting in multiple
- * images needing to be downloaded by the browser.
- *
- * We are providing our own generated value by taking the modulus of the crc32 value of the URL.
- *
- * Valid values are 0, 1, and 2.
- */
- $subdomain = abs( crc32( $image_host_path ) % 3 );
-
/**
* Filters the domain used by the Photon module.
*
@@ -182,10 +160,10 @@ function jetpack_photon_url( $image_url, $args = array(), $scheme = null ) {
*
* @since 3.4.2
*
- * @param string https://i{$subdomain}.wp.com Domain used by Photon. $subdomain is a random number between 0 and 2.
+ * @param string https://i0.wp.com Domain used by Photon.
* @param string $image_url URL of the image to be photonized.
*/
- $photon_domain = apply_filters( 'jetpack_photon_domain', "https://i{$subdomain}.wp.com", $image_url );
+ $photon_domain = apply_filters( 'jetpack_photon_domain', 'https://i0.wp.com', $image_url );
$photon_domain = trailingslashit( esc_url( $photon_domain ) );
$photon_url = $photon_domain . $image_host_path;
@@ -315,24 +293,6 @@ function jetpack_photon_url_scheme( $url, $scheme ) {
return preg_replace( '#^([a-z:]+)?//#i', $scheme_slashes, $url );
}
-/**
- * A wrapper for PHP's parse_url, prepending assumed scheme for network path
- * URLs. PHP versions 5.4.6 and earlier do not correctly parse without scheme.
- *
- * WP ships with a wrapper for parse_url, wp_parse_url, that should be used instead.
- *
- * @see https://php.net/manual/en/function.parse-url.php#refsect1-function.parse-url-changelog
- * @deprecated 7.8.0 Use wp_parse_url instead.
- *
- * @param string $url The URL to parse.
- * @param integer $component Retrieve specific URL component.
- * @return mixed Result of parse_url
- */
-function jetpack_photon_parse_url( $url, $component = -1 ) {
- _deprecated_function( 'jetpack_photon_parse_url', 'jetpack-7.8.0', 'wp_parse_url' );
- return wp_parse_url( $url, $component );
-}
-
add_filter( 'jetpack_photon_skip_for_url', 'jetpack_photon_banned_domains', 9, 2 );
/**
@@ -352,6 +312,8 @@ function jetpack_photon_banned_domains( $skip, $image_url ) {
'/\.paypalobjects\.com$/',
'/\.dropbox\.com$/',
'/\.cdninstagram\.com$/',
+ '/^(commons|upload)\.wikimedia\.org$/',
+ '/\.wikipedia\.org$/',
);
$host = wp_parse_url( $image_url, PHP_URL_HOST );
diff --git a/plugins/jetpack/images/connect-plug.svg b/plugins/jetpack/images/connect-plug.svg
index 94f2e608..eed74115 100644
--- a/plugins/jetpack/images/connect-plug.svg
+++ b/plugins/jetpack/images/connect-plug.svg
@@ -1,19 +1,19 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- width="59.998px" height="59.997px" viewBox="0 0 59.998 59.997" enable-background="new 0 0 59.998 59.997" xml:space="preserve">
-<path fill="#FFFFFF" d="M29.999,0C13.431,0,0,13.431,0,29.999s13.431,30,29.999,30c16.568,0,29.999-13.431,29.999-30
- C59.998,13.431,46.567,0,29.999,0z M29.999,56C15.639,56,3.998,44.359,3.998,29.999S15.639,3.998,29.999,3.998
- C44.358,3.998,56,15.639,56,29.999S44.358,56,29.999,56z"/>
-<g>
- <path fill="#FFFFFF" d="M20.96,20.884l1.886-2.321l18.681,18.68l-2.47,1.742c-0.688,0.689-1.847,1.264-3.47,1.72
- c-1.624,0.456-3.105,0.685-4.449,0.685h-8.044l-1.571,1.568c-0.606,0.609-1.339,0.912-2.197,0.912c-0.856,0-1.59-0.303-2.196-0.912
- c-0.608-0.593-0.913-1.322-0.913-2.188c0-0.861,0.302-1.598,0.913-2.205l1.569-1.571V28.95c0-1.327,0.212-2.833,0.633-4.519
- C19.756,22.744,20.296,21.562,20.96,20.884z M37.546,17.215l-6.717,6.717l-3.878-3.876l6.716-6.718
- c0.362-0.357,0.86-0.474,1.496-0.341s1.214,0.466,1.74,1.005c0.539,0.526,0.871,1.104,0.996,1.732
- C38.021,16.361,37.904,16.857,37.546,17.215z M36.013,29.114l6.717-6.716c0.343-0.358,0.834-0.478,1.469-0.353
- c0.636,0.125,1.215,0.456,1.742,0.995c0.538,0.525,0.871,1.104,0.994,1.732c0.127,0.629,0.008,1.124-0.352,1.482l-6.717,6.737
- L36.013,29.114z"/>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ width="59.998px" height="59.997px" viewBox="0 0 59.998 59.997" enable-background="new 0 0 59.998 59.997" xml:space="preserve">
+<path fill="#FFFFFF" d="M29.999,0C13.431,0,0,13.431,0,29.999s13.431,30,29.999,30c16.568,0,29.999-13.431,29.999-30
+ C59.998,13.431,46.567,0,29.999,0z M29.999,56C15.639,56,3.998,44.359,3.998,29.999S15.639,3.998,29.999,3.998
+ C44.358,3.998,56,15.639,56,29.999S44.358,56,29.999,56z"/>
+<g>
+ <path fill="#FFFFFF" d="M20.96,20.884l1.886-2.321l18.681,18.68l-2.47,1.742c-0.688,0.689-1.847,1.264-3.47,1.72
+ c-1.624,0.456-3.105,0.685-4.449,0.685h-8.044l-1.571,1.568c-0.606,0.609-1.339,0.912-2.197,0.912c-0.856,0-1.59-0.303-2.196-0.912
+ c-0.608-0.593-0.913-1.322-0.913-2.188c0-0.861,0.302-1.598,0.913-2.205l1.569-1.571V28.95c0-1.327,0.212-2.833,0.633-4.519
+ C19.756,22.744,20.296,21.562,20.96,20.884z M37.546,17.215l-6.717,6.717l-3.878-3.876l6.716-6.718
+ c0.362-0.357,0.86-0.474,1.496-0.341s1.214,0.466,1.74,1.005c0.539,0.526,0.871,1.104,0.996,1.732
+ C38.021,16.361,37.904,16.857,37.546,17.215z M36.013,29.114l6.717-6.716c0.343-0.358,0.834-0.478,1.469-0.353
+ c0.636,0.125,1.215,0.456,1.742,0.995c0.538,0.525,0.871,1.104,0.994,1.732c0.127,0.629,0.008,1.124-0.352,1.482l-6.717,6.737
+ L36.013,29.114z"/>
+</g>
+</svg>
diff --git a/plugins/jetpack/images/connect-right-partner-backup.png b/plugins/jetpack/images/connect-right-partner-backup.png
new file mode 100644
index 00000000..d3ffcb13
--- /dev/null
+++ b/plugins/jetpack/images/connect-right-partner-backup.png
Binary files differ
diff --git a/plugins/jetpack/images/connect-right-secondary.png b/plugins/jetpack/images/connect-right-secondary.png
new file mode 100644
index 00000000..66f8710a
--- /dev/null
+++ b/plugins/jetpack/images/connect-right-secondary.png
Binary files differ
diff --git a/plugins/jetpack/images/connect-right.jpg b/plugins/jetpack/images/connect-right.jpg
new file mode 100644
index 00000000..69c558e3
--- /dev/null
+++ b/plugins/jetpack/images/connect-right.jpg
Binary files differ
diff --git a/plugins/jetpack/images/customize-theme.svg b/plugins/jetpack/images/customize-theme.svg
index 979e34b1..7c672633 100644
--- a/plugins/jetpack/images/customize-theme.svg
+++ b/plugins/jetpack/images/customize-theme.svg
@@ -1 +1 @@
-<svg id="customizeTheme" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 596.8 370"><style>.st0{fill:none}.st1{fill:#F6F6F6}.st2{fill:#00be28}.st3{fill:#D8DEE4}.st4{fill:#E1E2E2}.st5{fill:#B0B5B8}.st6{fill:#6F93AD}.st7{fill:#204A69}.st8{fill:#204A69}.st9{fill:#BBC9D5}.st10{opacity:.26;fill:#969CA1;enable-background:new}.st11{fill:#CCCED0}.st12{fill:#F6F6F6}</style><title>customizeTheme</title><path class="st0" d="M391.8 161.5v116.2h71.4V154.1h-64c-4.1 0-7.4 3.3-7.4 7.4z"/><path class="st1" d="M358.1 82V56.6H280c.5.9 1.1 1.9 1.5 2.9 8.8 18.5 1 40.7-17.5 49.6l-.4.2-.6.3c-1.5.7-3.1 1.2-4.7 1.7l-.7.2c-.3.1-.6.1-.9.2-.4.1-.9.2-1.3.3-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8-20.5-2-35.4-20.3-33.4-40.7.4-4.3 1.6-8.4 3.4-12.3.5-1 1-1.9 1.5-2.9h-81.2v131.9c11.7.2 34.8-4.1 35.1 6.8v-39.2h151v46.6c12-.1 24.1 2.8 36.1.8.5-.1 1 .2 1.1.7 1.2 7 5.8 70.6 6.3 76.9.4 5.7 1.4 11.3.2 17.1-.1.4-.5.7-1 .7-4.3.2-8.6.8-12.9.8-4 0-19.4-.4-20.5-.8-1.4-.5-8 1.1-11.4 1.3-3.2.2-16.1 1.1-19.2 1.1-4 .1-8.1 0-8.2-3.9-.1-2.1-2.1-17.6-1.8-19.8H170.9c0 .5-24.5-.1-36.3-.2v34.8h353V82H358.1zm105.1 195.6h-71.4V161.5c0-4.1 3.3-7.4 7.4-7.4h64v123.5z"/><path class="st2" d="M281.5 59.4c-.5-1-1-1.9-1.5-2.9-.4-.7-.9-1.5-1.4-2.2-11.6-17-34.8-21.3-51.8-9.7-3.8 2.6-7.1 5.9-9.7 9.7-.5.7-.9 1.4-1.4 2.2-.5.9-1.1 1.9-1.5 2.9-8.8 18.6-.9 40.8 17.7 49.6 3.9 1.8 8 3 12.3 3.4-.1-2.7.5-5.3 1.6-7.8 1.8-3.9 4.5-6.1 6.6-5.2 1.3.5 1.4 2.3 1.7 5.6.1 2 .4 5.5 1.1 6.8.4-.1.9-.2 1.3-.3.3-.1.6-.1.9-.2l.7-.2c1.6-.5 3.2-1 4.7-1.7l.6-.3.4-.2c18.7-8.8 26.5-30.9 17.7-49.5z"/><path class="st0" d="M463.1 154.4h-64c-4.1 0-7.4 3.3-7.4 7.4V278h71.4V154.4z"/><path class="st3" d="M358 27.2V82.3h149.3V27.2z"/><path class="st1" d="M144.9 242.9l19.9-.1 1.4 15.8-16.2-1.5c.1 0-6.4-1.3-5.1-14.2z"/><path class="st4" d="M140.8 59.4h-6.4c-1.4 0-2.6-1.1-2.6-2.6v-6.4c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v3.8h3.8c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zM134.3 40c-1.4 0-2.6-1.1-2.6-2.6v-13c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v13.1c0 1.3-1.1 2.5-2.6 2.5zm3.5-25.4c-1.4 0-2.6-1.1-2.6-2.6 0-.5.1-1 .4-1.4 2.7-4.1 6.6-7.3 11.2-9 1.3-.5 2.8.2 3.3 1.5s-.2 2.8-1.5 3.3c-3.6 1.4-6.7 3.9-8.8 7.1-.3.6-1.1 1.1-2 1.1zm346.1-.1c-.9 0-1.7-.4-2.1-1.1-2.1-3.2-5.2-5.7-8.8-7-1.3-.5-2-2-1.5-3.3s2-2 3.3-1.5c4.6 1.7 8.5 4.9 11.3 9 .8 1.2.5 2.8-.7 3.6-.5.1-1 .3-1.5.3zM461 5.1h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6H461c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6s-1.1 2.6-2.5 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.2 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6.1 1.5-1.1 2.6-2.5 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.1 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0H239c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6z"/><path class="st5" d="M320.5 299.2s-1.8 39.6-7.8 63.8l-35 .5s-2.8-1.8.9-3.7c3.9-2 14.4-4.1 15.5-6.4 2.3-4.6 1.4-51.7 1.4-51.7M334.2 300.4s1.8 37 7.8 61.3l30.6.5s2.8-1.8-.9-3.7c-3.9-2-14.4-4.1-15.5-6.4-2.3-4.6 4.5-54.3 4.5-54.3"/><path class="st0" d="M256.6 113.3s.8.7 1.1-2c-1.2.3-2.4.6-3.6.8.6 1.1 1.3 1.6 2.5 1.2z"/><path class="st5" d="M256.6 113.3c-1.2.4-2-.1-2.5-1.2-2.1.4-4.2.5-6.3.5-.8 0-1.5 0-2.2-.1.3 4.2 2.4 8.5 8.1 11.5l4.2 2.3 7-4.3c.7-5.8-.5-10-1.8-12.6-1.7.8-3.5 1.4-5.3 1.9-.4 2.7-1.2 2-1.2 2z"/><path class="st5" d="M254.1 112.1c-1.6-3.2-.9-11.2-2.1-11.7-2.3-.9-6.9 5.4-6.4 12.2.7 0 1.5.1 2.2.1 2.2 0 4.3-.2 6.3-.6z"/><path class="st6" d="M348.8 244.7c-.7 0-1.3-.6-1.2-1.3 0-.6.5-1.2 1.1-1.2l14.2-1.5c.7-.1 1.4.4 1.5 1.1.1.7-.4 1.4-1.1 1.5h-.1l-14.2 1.5-.2-.1z"/><path class="st6" d="M358.6 252.3c-2.4.1-4.8-.9-6.6-2.5-1.6-1.5-2.4-3.5-2.3-5.7 0-.7.6-1.2 1.2-1.2h.1c.7 0 1.2.6 1.2 1.4-.1 1.4.5 2.7 1.5 3.7 1.5 1.4 3.5 2 5.5 1.8l2.5-.7c.7-.2 1.4.2 1.6.9s-.2 1.4-.9 1.6l-2.7.7h-1.1z"/><path class="st7" d="M288 167.6c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2l11.1-5c.6-.3 1.4-.1 1.7.5.3.6.1 1.4-.5 1.7 0 0-.1 0-.1.1l-11.1 5c-.3.1-.5.2-.6.2z"/><path class="st0" d="M301.7 91.5c.1 1.5.5 2.7 1 3 .4.2.9 0 1.3-.3-.1-.6-.1-1.3-.1-1.9l-2.2-.8zM303.2 87.2c-.5.4-.9 1-1.1 1.7l2 .7c.1-.8.2-1.7.3-2.5-.1-.1-.3-.2-.4-.3-.3.1-.6.2-.8.4z"/><path class="st5" d="M314.7 104.7c-2.4-1.4-3.8-3.9-3.9-6.6l.4-3.5-4.6-1.5c.1 1.2.2 2.4.5 3.5 1.3 6.1 2.8 10.8 9.4 11.8.6.1 1 .5 1.1 1.1l.8 7c.1.7-.4 1.3-1.1 1.4h-.2c-.3 0-.6-.1-.8-.3v3.2l16 .9v-14.3c-.7.4-1.4.6-2.2.8-6.6 1.7-11.9-1.5-15.4-3.5zM328.5 94.7l-4.1-11.1s-5.5-3.1-10.6-2.7c2.6 6.1 8 12.1 14.7 13.8zM307.2 85.8c-.4 1.5-.6 3-.6 4.6l4.9 1.6.6-5.5s-3 .4-4.9-.7z"/><path class="st8" d="M338.2 93.9c-3.1 1.3-6.5 1.6-9.7.8-6.7-1.7-12.1-7.7-14.7-13.8-1.5-3.4-2.1-6.9-1.6-9.8-2.6 2-4.7 5.2-6.3 10.2-.1.3-.2.7-.3 1-.3.7-.5 1.4-.7 2.2-.5-.2-1-.2-1.5-.1-1.7.4-3.7 2.2-4.1 5.2-.3 2.5.1 5.8 2.2 7.1.5.3 1.1.5 1.7.5.5 0 1-.1 1.4-.3 0 .1 0 .2.1.3 1.3 6.3 3.1 12 10.6 13.7l.7 6.1c.1.6.6 1.1 1.3 1.1h.2c.7-.1 1.2-.7 1.1-1.4l-.8-7c-.1-.6-.5-1-1.1-1.1-6.7-1.1-8.2-5.8-9.4-11.8-.2-1.2-.4-2.3-.5-3.5l4.6 1.5-.4 3.5c0 2.7 1.5 5.2 3.9 6.6 3.5 2 8.7 5.2 15.4 3.6.8-.2 1.5-.4 2.2-.8 4.5-2.3 7.1-8.2 7.9-14.6-.8.2-1.5.5-2.2.8zm-35.4.6c-.5-.3-1-1.5-1-3l2.2.7c0 .6.1 1.3.1 1.9-.4.4-1 .6-1.3.4zm1.2-4.9l-2-.7c.2-.7.6-1.2 1.1-1.7.2-.2.5-.3.8-.4.1.1.2.2.4.3-.1.8-.2 1.6-.3 2.5zm7.5 2.5l-4.9-1.6c.1-1.5.3-3.1.6-4.6 1.9 1.1 4.9.7 4.9.7l-.6 5.5z"/><path class="st9" d="M316.2 65.8c-2.2 1-3.5 2.9-3.9 5.3-1.8 10.2 10.8 29.1 26 22.8.7-.3 1.4-.6 2-1 15-8.9-5.8-35.1-24.1-27.1z"/><path class="st10" d="M105.2 237.9h57.4c1.8 0 3.3-1.5 3.3-3.3v-.1l-1.6-38.2c-.1-1.3-1.1-2.4-2.5-2.3h-57.3l.8 38.9"/><path class="st11" d="M166 258.5c-1.1-6.1-1.6-12.2-2.1-18.4l-.3-4.6-.2-2.3v-.6-.8c.1-.7.3-1.3.7-1.8.8-.9 1.9-1.4 3.1-1.5H181c1.2 0 2.3.5 3.1 1.4.4.5.7 1.1.7 1.8l.1 1.2.1 2.3.2 4.6c.2 6.2.4 12.3.3 18.5 0 .3-.3.5-.5.5s-.4-.2-.5-.4c-.8-6.1-1.3-12.3-1.8-18.4l-.3-4.6-.2-2.3-.1-1.1c0-.1-.1-.2-.1-.3-.3-.3-.6-.4-1-.4h-13.8c-.4 0-.7.1-1 .4-.1.1-.1.2-.1.3v1l.1 2.3.2 4.6c.2 6.2.4 12.3 0 18.5 0 .1-.1.2-.3.2 0 .2-.1.1-.1-.1z"/><path class="st1" d="M180.3 251.4l-1-17h-10l.9 17z"/><path class="st0" d="M150.1 268.2h13.8"/><path class="st12" d="M150.1 267.9c1.1-.6 2.2-1 3.5-1 1.2-.1 2.3-.2 3.5-.2 1.1 0 2.3.1 3.5.2s2.3.4 3.5.8c.3.1.4.4.3.7-.1.1-.2.3-.3.3-1.1.4-2.3.7-3.5.8-1.1.1-2.3.2-3.5.2s-2.3 0-3.5-.2c-1.2-.1-2.4-.4-3.5-1-.1-.1-.2-.3-.1-.4 0-.1 0-.2.1-.2zM162.2 256.6c-6.6-.5-13.2-.6-19.7-.7l-9.9-.1h-7.4c-.7 0-1.3-.1-2-.3-2.6-.9-4.4-3.4-4.4-6.1l-.1-6.7c-.9 0-1.8-.1-2.6-.1l-.1 6.8c-.1 4 2.4 7.6 6.2 8.9.9.3 1.9.4 2.9.4h7.4l9.9-.1c6.6-.1 13.2-.3 19.7-.7.3 0 .5-.3.5-.6 0-.5-.2-.7-.4-.7z"/><path class="st12" d="M152.7 256.6c-3.3-.4-5.8-2.9-6.3-5.8-.2-1.3 0-3.3 0-5l.1-3.7h-2.9l.1 3.7c.1 1.8-.1 3.4.3 5.5.5 2 1.7 3.7 3.3 4.9 1.6 1.1 3.5 1.7 5.5 1.4.2 0 .4-.2.5-.5-.2-.2-.4-.5-.6-.5z"/><path class="st11" d="M165.1 241.3c-.7.2-1.4.3-2.1.3h-2c-10.8 0-21.6.2-32.4.3-11.6.2-23.3.4-34.9.8-.1 0-.3.1-.3.3 0 .1.1.3.3.3 11.6.4 23.3.6 34.9.8 11.6.1 23.3.3 34.9.3H163.8c.4 0 .9-.1 1.3-.2v-2.9z"/><path class="st11" d="M172.1 227.1l-.9-23.4-.2-5.8c-.1-1 0-1.8-.2-3.1-.5-3.6-3.3-6.5-6.9-7.1-.8-.1-1.6-.1-2.3-.1h-.3l-60.8.2h-3.8c-1.6-.1-3.1.5-4.3 1.5-1.2 1-1.9 2.5-2.1 4.1 0 1.5 0 2.6.1 3.9l.4 15.2c.2 10.1.6 20.3.9 30.4 0 .3.2.5.5.5s.5-.2.5-.5c0-10.1.1-20.3-.1-30.4l-.1-15.2v-3.7c.1-1 .6-1.9 1.3-2.5.8-.6 1.8-.9 2.8-.9h1.5l.6 21c.2 7.4.5 14.8.8 22.2 0 .3.2.5.5.5s.5-.2.5-.5c0-7.4 0-14.8-.1-22.2l-.2-21h.1l59.4.2h.8c.9 0 1.8 0 2.7.1 1.5.3 2.9 1.2 3.7 2.5.4.7.7 1.4.8 2.2.1.7.1 1.9.1 2.8l.3 5.8.5 11.7.5 11.7.1 2.3c.9 0 1.8 0 2.7.1l.2-2.5z"/><path class="st11" d="M166 258.5c-1.1-6.1-1.6-12.2-2.1-18.4l-.3-4.6-.2-2.3v-.6-.8c.1-.7.3-1.3.7-1.8.8-.9 1.9-1.4 3.1-1.5H181c1.2 0 2.3.5 3.1 1.4.4.5.7 1.1.7 1.8l.1 1.2.1 2.3.2 4.6c.2 6.2.4 12.3.3 18.5 0 .3-.3.5-.5.5s-.4-.2-.5-.4c-.8-6.1-1.3-12.3-1.8-18.4l-.3-4.6-.2-2.3-.1-1.1c0-.1-.1-.2-.1-.3-.3-.3-.6-.4-1-.4h-13.8c-.4 0-.7.1-1 .4-.1.1-.1.2-.1.3v1l.1 2.3.2 4.6c.2 6.2.4 12.3 0 18.5 0 .1-.1.2-.3.2 0 .2-.1.1-.1-.1z"/><path class="st1" d="M180.3 251.4l-1-17h-10l.9 17z"/><path class="st0" d="M150.1 268.2h13.8"/><path class="st12" d="M150.1 267.9c1.1-.6 2.2-1 3.5-1 1.2-.1 2.3-.2 3.5-.2 1.1 0 2.3.1 3.5.2s2.3.4 3.5.8c.3.1.4.4.3.7-.1.1-.2.3-.3.3-1.1.4-2.3.7-3.5.8-1.1.1-2.3.2-3.5.2s-2.3 0-3.5-.2c-1.2-.1-2.4-.4-3.5-1-.1-.1-.2-.3-.1-.4 0-.1 0-.2.1-.2zM.5 366.6c49.6-1.4 99.2-1.7 148.8-2.1l148.8-.3c99.2.3 198.4.1 297.7 1.9.6 0 1 .5 1 1.1 0 .5-.4.9-1 1-99.2 1.7-198.4 1.6-297.7 1.9l-148.8-.3c-49.6-.4-99.2-.6-148.8-2.1-.3 0-.5-.2-.5-.5 0-.4.2-.6.5-.6z"/><path class="st7" d="M296.1 350.4c-.7 0-1.3-.6-1.3-1.3 0-.1 0-.2.1-.4 1.9-6.1 1.1-18.6.3-30.6-.4-5.9-.8-11.5-.8-16.4 0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3.1 4.8.4 10.3.8 16.2.8 12.3 1.6 24.9-.4 31.5-.3.7-.8 1-1.3 1zM341.9 363c-.6 0-1.2-.5-1.3-1.1 0-.3-4.6-31-7.8-61.3-.1-.7.4-1.4 1.1-1.5s1.4.4 1.5 1.1v.2c3.1 30.3 7.7 60.9 7.8 61.2.1.7-.4 1.4-1.1 1.5 0-.1-.1-.1-.2-.1z"/><path class="st4" d="M484.9 26.9v-2.6c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v2.8"/><path class="st5" d="M397.9 82.3v-.7c-1 .8-2.2 1.4-3.4 1.7 0 0 2.9-10.4-.2-11.1-3-.7-14.7 19.9-14.7 19.9l4.2 10.1s4.5-4.1 19.1-11.5c3.3-3.1 5.2-6 6.2-8.4h-11.2z"/><path class="st7" d="M391.7 97.7c-.7 0-1.3-.6-1.2-1.4 0-.7.6-1.2 1.2-1.2 1.4-.1 11.5-5.3 16.4-14.6.3-.6 1.1-.9 1.7-.6s.9 1.1.6 1.7v.1c-5.2 9.7-16.1 16-18.7 16zM383.8 89.5c-.7 0-1.3-.6-1.3-1.3 0-.4.2-.7.4-1 1.1-.9 2.8-4.4 4.3-7.5 3.1-6.2 4.5-8.8 6.3-9 .6-.1 1.3.2 1.7.7 1.8 2.1 1.3 7.1.8 10.1 1.1-.5 2.3-1.2 3-2.1.4-.6 1.2-.8 1.8-.4.6.4.8 1.2.4 1.8 0 0 0 .1-.1.1-2 2.8-6.3 3.7-6.4 3.8-.7.2-1.4-.3-1.5-1v-.5c.6-2.9 1.1-7.6.4-9.5-1 1.2-2.8 4.8-4 7.3-1.8 3.6-3.5 7-4.9 8.3-.3 0-.6.2-.9.2z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5zM252 100.4c1.2.5.5 8.5 2.1 11.7.4-.1.7-.1 1.1-.2-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8.5 0 .9.1 1.4.1-.4-6.8 4.2-13.1 6.4-12.2z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5zM256.5 111.6l.9-.2c-.3.1-.6.2-.9.2zM263.9 109l-.4.2.4-.2z"/><path class="st4" d="M166 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6H166c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM191.2 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM317.2 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6 0-1.4-1.2-2.6-2.6-2.6zM355 54.3c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h3.1v-5.1l-3.1-.1zM342.4 52.1h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM216.4 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h10.5c.8-1.7 1.8-3.4 2.9-5-.3-.2-.6-.2-.8-.2zM292 54.3h-12.6c-.3 0-.5 0-.8.1 1.1 1.6 2.1 3.3 2.9 5H292c1.4 0 2.6-1.1 2.6-2.6-.1-1.3-1.2-2.5-2.6-2.5z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5z"/><path class="st7" d="M257.4 111.4l-.9.2c-.1.4-.2.7-.4.8-.4.1-.5 0-.5 0-.2-.1-.3-.3-.4-.5-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8.1 4.8 2.5 9.7 8.9 13 .2.1.4.1.6.1.7 0 1.3-.6 1.3-1.3 0-.5-.3-.9-.7-1.1-9.1-4.8-7.8-12.5-6.8-15.7 1.1-3.4 2.9-5.3 3.7-5.6.2 1.1.3 2.2.3 3.3.2 3.7.5 7.8 2.6 9.3.8.5 1.8.6 2.8.3 1.9-.6 2.2-2.1 2.2-3.9-.2.1-.6.2-1 .3l-.4.1-.3.1z"/><path class="st7" d="M257.7 111.3l.4-.1-.7.2.3-.1zM263.1 109.4l-.2.1c-.5.2-1 .4-1.3.5 1.2 2.9 1.8 6 1.8 9.2 0 .7.6 1.3 1.3 1.3.7 0 1.3-.6 1.3-1.3.1-3.5-.6-7-2-10.2l-.4.2-.5.2z"/><path class="st7" d="M263.5 109.2l-.6.3.2-.1.4-.2z"/><path class="st6" d="M301.9 303.2c-4.4 0-8.3-.5-10.4-2.2-1.1-.8-1.7-2-1.8-3.3-.1-1.1-.2-2.8-.4-4.9-1.1-13-3.8-43.6 1.7-78.3.1-.7.8-1.2 1.5-1 .7.1 1.1.7 1 1.4-5.5 34.4-2.8 64.7-1.7 77.7.2 2.2.3 3.9.4 5 0 .6.3 1.1.8 1.4 4.4 3.4 22.1.6 28.6-.7.7-.1 1.4.4 1.5 1.1s-.3 1.3-.9 1.5c-1.7.2-11.8 2.3-20.3 2.3zM338.6 301.3c-4.8 0-8.8-.4-10.6-1.6-4-2.6-3.2-38.8-2.7-54.2 0-.7.5-1.2 1.2-1.2h.1c.7 0 1.3.6 1.2 1.3-.8 23.8-.4 49.8 1.6 52 3.5 2.3 22.2.7 34-1l-2.2-39.1c0-.7.5-1.3 1.2-1.4s1.3.4 1.3 1.1v.1l2.3 40.3c0 .7-.4 1.2-1.1 1.3-2 .4-15.9 2.4-26.3 2.4zM360.8 237.7c-.7 0-1.2-.5-1.3-1.2l-2.7-33.8c-.1-.7.5-1.3 1.2-1.4.7-.1 1.3.5 1.4 1.2l2.7 33.8c.1.7-.5 1.3-1.2 1.4h-.1z"/><path class="st9" d="M395.1 99.7l-12.3-12.8c-6 12.1-23.9 30-37.5 33.4-.3-.1-.6-.2-1-.4-4.3-1.6-29.2-3.3-35.2-.8-3.8 1.6-6.5 2.9-8.2 4.5-11.7 9.2-19.1 17.2-19.1 17.2l-14.3-22.4-12.8 9.1s11 40.2 27.9 39.3c5.6-.3 11-1.8 16-4.3L300 203l56.7-1-1.4-57.9c21.1-10.7 39.8-44.4 39.8-44.4z"/><path class="st7" d="M297.4 204.4c-.7 0-1.3-.6-1.2-1.4 0-.7.6-1.2 1.2-1.2l60.7-.6c.7 0 1.3.5 1.3 1.2v.1c0 .7-.6 1.3-1.3 1.3l-60.7.6zM288 167.6c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2l11.1-5c.6-.3 1.4-.1 1.7.5.3.6.1 1.4-.5 1.7 0 0-.1 0-.1.1l-11.1 5c-.3.1-.5.2-.6.2z"/><path class="st11" d="M231.9 278.8h-.2l-36.9.6-37.2.4-74.8.2c-.8 0-1.4-.6-1.4-1.4v-20.9c0-.8.6-1.4 1.4-1.5l74.4.2 74.4.6c.4 0 .7.3.7.7l-.4 21.1zm-.8-.4v-.2l-.4-20.5.7.7-74.4.6-74.4.2 1.5-1.5v20.9l-1.4-1.4 73.9.3 37.1.4 37.4.5z"/><path class="st0" d="M82.7 270.9v91.3"/><path class="st11" d="M83 270.9c.7 7.6.9 15.2 1 22.8l.2 22.8c-.2 15.2-.1 30.4-.9 45.6 0 .3-.3.5-.6.5-.2 0-.4-.2-.5-.5-.9-15.2-.8-30.4-.9-45.6l.2-22.8c.2-7.6.3-15.2 1-22.8 0-.1.1-.3.3-.3.1.1.2.2.2.3z"/><path class="st0" d="M231.5 278.6v83.6"/><path class="st11" d="M231.7 278.6c.7 7 .9 13.9 1 20.9l.2 20.9c-.2 13.9-.1 27.9-.9 41.8 0 .3-.3.5-.6.5-.2 0-.4-.2-.5-.5-.9-13.9-.8-27.9-.9-41.8l.2-20.9c.2-7 .3-13.9 1-20.9 0-.1.1-.3.3-.3.1.1.2.2.2.3z"/></svg> \ No newline at end of file
+<svg id="customizeTheme" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 596.8 370"><style>.st0{fill:none}.st1{fill:#F6F6F6}.st2{fill:#069e08}.st3{fill:#D8DEE4}.st4{fill:#E1E2E2}.st5{fill:#B0B5B8}.st6{fill:#6F93AD}.st7{fill:#204A69}.st8{fill:#204A69}.st9{fill:#BBC9D5}.st10{opacity:.26;fill:#969CA1;enable-background:new}.st11{fill:#CCCED0}.st12{fill:#F6F6F6}</style><title>customizeTheme</title><path class="st0" d="M391.8 161.5v116.2h71.4V154.1h-64c-4.1 0-7.4 3.3-7.4 7.4z"/><path class="st1" d="M358.1 82V56.6H280c.5.9 1.1 1.9 1.5 2.9 8.8 18.5 1 40.7-17.5 49.6l-.4.2-.6.3c-1.5.7-3.1 1.2-4.7 1.7l-.7.2c-.3.1-.6.1-.9.2-.4.1-.9.2-1.3.3-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8-20.5-2-35.4-20.3-33.4-40.7.4-4.3 1.6-8.4 3.4-12.3.5-1 1-1.9 1.5-2.9h-81.2v131.9c11.7.2 34.8-4.1 35.1 6.8v-39.2h151v46.6c12-.1 24.1 2.8 36.1.8.5-.1 1 .2 1.1.7 1.2 7 5.8 70.6 6.3 76.9.4 5.7 1.4 11.3.2 17.1-.1.4-.5.7-1 .7-4.3.2-8.6.8-12.9.8-4 0-19.4-.4-20.5-.8-1.4-.5-8 1.1-11.4 1.3-3.2.2-16.1 1.1-19.2 1.1-4 .1-8.1 0-8.2-3.9-.1-2.1-2.1-17.6-1.8-19.8H170.9c0 .5-24.5-.1-36.3-.2v34.8h353V82H358.1zm105.1 195.6h-71.4V161.5c0-4.1 3.3-7.4 7.4-7.4h64v123.5z"/><path class="st2" d="M281.5 59.4c-.5-1-1-1.9-1.5-2.9-.4-.7-.9-1.5-1.4-2.2-11.6-17-34.8-21.3-51.8-9.7-3.8 2.6-7.1 5.9-9.7 9.7-.5.7-.9 1.4-1.4 2.2-.5.9-1.1 1.9-1.5 2.9-8.8 18.6-.9 40.8 17.7 49.6 3.9 1.8 8 3 12.3 3.4-.1-2.7.5-5.3 1.6-7.8 1.8-3.9 4.5-6.1 6.6-5.2 1.3.5 1.4 2.3 1.7 5.6.1 2 .4 5.5 1.1 6.8.4-.1.9-.2 1.3-.3.3-.1.6-.1.9-.2l.7-.2c1.6-.5 3.2-1 4.7-1.7l.6-.3.4-.2c18.7-8.8 26.5-30.9 17.7-49.5z"/><path class="st0" d="M463.1 154.4h-64c-4.1 0-7.4 3.3-7.4 7.4V278h71.4V154.4z"/><path class="st3" d="M358 27.2V82.3h149.3V27.2z"/><path class="st1" d="M144.9 242.9l19.9-.1 1.4 15.8-16.2-1.5c.1 0-6.4-1.3-5.1-14.2z"/><path class="st4" d="M140.8 59.4h-6.4c-1.4 0-2.6-1.1-2.6-2.6v-6.4c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v3.8h3.8c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zM134.3 40c-1.4 0-2.6-1.1-2.6-2.6v-13c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v13.1c0 1.3-1.1 2.5-2.6 2.5zm3.5-25.4c-1.4 0-2.6-1.1-2.6-2.6 0-.5.1-1 .4-1.4 2.7-4.1 6.6-7.3 11.2-9 1.3-.5 2.8.2 3.3 1.5s-.2 2.8-1.5 3.3c-3.6 1.4-6.7 3.9-8.8 7.1-.3.6-1.1 1.1-2 1.1zm346.1-.1c-.9 0-1.7-.4-2.1-1.1-2.1-3.2-5.2-5.7-8.8-7-1.3-.5-2-2-1.5-3.3s2-2 3.3-1.5c4.6 1.7 8.5 4.9 11.3 9 .8 1.2.5 2.8-.7 3.6-.5.1-1 .3-1.5.3zM461 5.1h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6H461c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6s-1.1 2.6-2.5 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6-.1 1.5-1.2 2.6-2.6 2.6zm-26.2 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6.1 1.5-1.1 2.6-2.5 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.1 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0H239c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6zm-26.1 0h-13.1c-1.4 0-2.6-1.1-2.6-2.6 0-1.4 1.1-2.6 2.6-2.6h13.1c1.4 0 2.6 1.1 2.6 2.6s-1.2 2.6-2.6 2.6z"/><path class="st5" d="M320.5 299.2s-1.8 39.6-7.8 63.8l-35 .5s-2.8-1.8.9-3.7c3.9-2 14.4-4.1 15.5-6.4 2.3-4.6 1.4-51.7 1.4-51.7M334.2 300.4s1.8 37 7.8 61.3l30.6.5s2.8-1.8-.9-3.7c-3.9-2-14.4-4.1-15.5-6.4-2.3-4.6 4.5-54.3 4.5-54.3"/><path class="st0" d="M256.6 113.3s.8.7 1.1-2c-1.2.3-2.4.6-3.6.8.6 1.1 1.3 1.6 2.5 1.2z"/><path class="st5" d="M256.6 113.3c-1.2.4-2-.1-2.5-1.2-2.1.4-4.2.5-6.3.5-.8 0-1.5 0-2.2-.1.3 4.2 2.4 8.5 8.1 11.5l4.2 2.3 7-4.3c.7-5.8-.5-10-1.8-12.6-1.7.8-3.5 1.4-5.3 1.9-.4 2.7-1.2 2-1.2 2z"/><path class="st5" d="M254.1 112.1c-1.6-3.2-.9-11.2-2.1-11.7-2.3-.9-6.9 5.4-6.4 12.2.7 0 1.5.1 2.2.1 2.2 0 4.3-.2 6.3-.6z"/><path class="st6" d="M348.8 244.7c-.7 0-1.3-.6-1.2-1.3 0-.6.5-1.2 1.1-1.2l14.2-1.5c.7-.1 1.4.4 1.5 1.1.1.7-.4 1.4-1.1 1.5h-.1l-14.2 1.5-.2-.1z"/><path class="st6" d="M358.6 252.3c-2.4.1-4.8-.9-6.6-2.5-1.6-1.5-2.4-3.5-2.3-5.7 0-.7.6-1.2 1.2-1.2h.1c.7 0 1.2.6 1.2 1.4-.1 1.4.5 2.7 1.5 3.7 1.5 1.4 3.5 2 5.5 1.8l2.5-.7c.7-.2 1.4.2 1.6.9s-.2 1.4-.9 1.6l-2.7.7h-1.1z"/><path class="st7" d="M288 167.6c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2l11.1-5c.6-.3 1.4-.1 1.7.5.3.6.1 1.4-.5 1.7 0 0-.1 0-.1.1l-11.1 5c-.3.1-.5.2-.6.2z"/><path class="st0" d="M301.7 91.5c.1 1.5.5 2.7 1 3 .4.2.9 0 1.3-.3-.1-.6-.1-1.3-.1-1.9l-2.2-.8zM303.2 87.2c-.5.4-.9 1-1.1 1.7l2 .7c.1-.8.2-1.7.3-2.5-.1-.1-.3-.2-.4-.3-.3.1-.6.2-.8.4z"/><path class="st5" d="M314.7 104.7c-2.4-1.4-3.8-3.9-3.9-6.6l.4-3.5-4.6-1.5c.1 1.2.2 2.4.5 3.5 1.3 6.1 2.8 10.8 9.4 11.8.6.1 1 .5 1.1 1.1l.8 7c.1.7-.4 1.3-1.1 1.4h-.2c-.3 0-.6-.1-.8-.3v3.2l16 .9v-14.3c-.7.4-1.4.6-2.2.8-6.6 1.7-11.9-1.5-15.4-3.5zM328.5 94.7l-4.1-11.1s-5.5-3.1-10.6-2.7c2.6 6.1 8 12.1 14.7 13.8zM307.2 85.8c-.4 1.5-.6 3-.6 4.6l4.9 1.6.6-5.5s-3 .4-4.9-.7z"/><path class="st8" d="M338.2 93.9c-3.1 1.3-6.5 1.6-9.7.8-6.7-1.7-12.1-7.7-14.7-13.8-1.5-3.4-2.1-6.9-1.6-9.8-2.6 2-4.7 5.2-6.3 10.2-.1.3-.2.7-.3 1-.3.7-.5 1.4-.7 2.2-.5-.2-1-.2-1.5-.1-1.7.4-3.7 2.2-4.1 5.2-.3 2.5.1 5.8 2.2 7.1.5.3 1.1.5 1.7.5.5 0 1-.1 1.4-.3 0 .1 0 .2.1.3 1.3 6.3 3.1 12 10.6 13.7l.7 6.1c.1.6.6 1.1 1.3 1.1h.2c.7-.1 1.2-.7 1.1-1.4l-.8-7c-.1-.6-.5-1-1.1-1.1-6.7-1.1-8.2-5.8-9.4-11.8-.2-1.2-.4-2.3-.5-3.5l4.6 1.5-.4 3.5c0 2.7 1.5 5.2 3.9 6.6 3.5 2 8.7 5.2 15.4 3.6.8-.2 1.5-.4 2.2-.8 4.5-2.3 7.1-8.2 7.9-14.6-.8.2-1.5.5-2.2.8zm-35.4.6c-.5-.3-1-1.5-1-3l2.2.7c0 .6.1 1.3.1 1.9-.4.4-1 .6-1.3.4zm1.2-4.9l-2-.7c.2-.7.6-1.2 1.1-1.7.2-.2.5-.3.8-.4.1.1.2.2.4.3-.1.8-.2 1.6-.3 2.5zm7.5 2.5l-4.9-1.6c.1-1.5.3-3.1.6-4.6 1.9 1.1 4.9.7 4.9.7l-.6 5.5z"/><path class="st9" d="M316.2 65.8c-2.2 1-3.5 2.9-3.9 5.3-1.8 10.2 10.8 29.1 26 22.8.7-.3 1.4-.6 2-1 15-8.9-5.8-35.1-24.1-27.1z"/><path class="st10" d="M105.2 237.9h57.4c1.8 0 3.3-1.5 3.3-3.3v-.1l-1.6-38.2c-.1-1.3-1.1-2.4-2.5-2.3h-57.3l.8 38.9"/><path class="st11" d="M166 258.5c-1.1-6.1-1.6-12.2-2.1-18.4l-.3-4.6-.2-2.3v-.6-.8c.1-.7.3-1.3.7-1.8.8-.9 1.9-1.4 3.1-1.5H181c1.2 0 2.3.5 3.1 1.4.4.5.7 1.1.7 1.8l.1 1.2.1 2.3.2 4.6c.2 6.2.4 12.3.3 18.5 0 .3-.3.5-.5.5s-.4-.2-.5-.4c-.8-6.1-1.3-12.3-1.8-18.4l-.3-4.6-.2-2.3-.1-1.1c0-.1-.1-.2-.1-.3-.3-.3-.6-.4-1-.4h-13.8c-.4 0-.7.1-1 .4-.1.1-.1.2-.1.3v1l.1 2.3.2 4.6c.2 6.2.4 12.3 0 18.5 0 .1-.1.2-.3.2 0 .2-.1.1-.1-.1z"/><path class="st1" d="M180.3 251.4l-1-17h-10l.9 17z"/><path class="st0" d="M150.1 268.2h13.8"/><path class="st12" d="M150.1 267.9c1.1-.6 2.2-1 3.5-1 1.2-.1 2.3-.2 3.5-.2 1.1 0 2.3.1 3.5.2s2.3.4 3.5.8c.3.1.4.4.3.7-.1.1-.2.3-.3.3-1.1.4-2.3.7-3.5.8-1.1.1-2.3.2-3.5.2s-2.3 0-3.5-.2c-1.2-.1-2.4-.4-3.5-1-.1-.1-.2-.3-.1-.4 0-.1 0-.2.1-.2zM162.2 256.6c-6.6-.5-13.2-.6-19.7-.7l-9.9-.1h-7.4c-.7 0-1.3-.1-2-.3-2.6-.9-4.4-3.4-4.4-6.1l-.1-6.7c-.9 0-1.8-.1-2.6-.1l-.1 6.8c-.1 4 2.4 7.6 6.2 8.9.9.3 1.9.4 2.9.4h7.4l9.9-.1c6.6-.1 13.2-.3 19.7-.7.3 0 .5-.3.5-.6 0-.5-.2-.7-.4-.7z"/><path class="st12" d="M152.7 256.6c-3.3-.4-5.8-2.9-6.3-5.8-.2-1.3 0-3.3 0-5l.1-3.7h-2.9l.1 3.7c.1 1.8-.1 3.4.3 5.5.5 2 1.7 3.7 3.3 4.9 1.6 1.1 3.5 1.7 5.5 1.4.2 0 .4-.2.5-.5-.2-.2-.4-.5-.6-.5z"/><path class="st11" d="M165.1 241.3c-.7.2-1.4.3-2.1.3h-2c-10.8 0-21.6.2-32.4.3-11.6.2-23.3.4-34.9.8-.1 0-.3.1-.3.3 0 .1.1.3.3.3 11.6.4 23.3.6 34.9.8 11.6.1 23.3.3 34.9.3H163.8c.4 0 .9-.1 1.3-.2v-2.9z"/><path class="st11" d="M172.1 227.1l-.9-23.4-.2-5.8c-.1-1 0-1.8-.2-3.1-.5-3.6-3.3-6.5-6.9-7.1-.8-.1-1.6-.1-2.3-.1h-.3l-60.8.2h-3.8c-1.6-.1-3.1.5-4.3 1.5-1.2 1-1.9 2.5-2.1 4.1 0 1.5 0 2.6.1 3.9l.4 15.2c.2 10.1.6 20.3.9 30.4 0 .3.2.5.5.5s.5-.2.5-.5c0-10.1.1-20.3-.1-30.4l-.1-15.2v-3.7c.1-1 .6-1.9 1.3-2.5.8-.6 1.8-.9 2.8-.9h1.5l.6 21c.2 7.4.5 14.8.8 22.2 0 .3.2.5.5.5s.5-.2.5-.5c0-7.4 0-14.8-.1-22.2l-.2-21h.1l59.4.2h.8c.9 0 1.8 0 2.7.1 1.5.3 2.9 1.2 3.7 2.5.4.7.7 1.4.8 2.2.1.7.1 1.9.1 2.8l.3 5.8.5 11.7.5 11.7.1 2.3c.9 0 1.8 0 2.7.1l.2-2.5z"/><path class="st11" d="M166 258.5c-1.1-6.1-1.6-12.2-2.1-18.4l-.3-4.6-.2-2.3v-.6-.8c.1-.7.3-1.3.7-1.8.8-.9 1.9-1.4 3.1-1.5H181c1.2 0 2.3.5 3.1 1.4.4.5.7 1.1.7 1.8l.1 1.2.1 2.3.2 4.6c.2 6.2.4 12.3.3 18.5 0 .3-.3.5-.5.5s-.4-.2-.5-.4c-.8-6.1-1.3-12.3-1.8-18.4l-.3-4.6-.2-2.3-.1-1.1c0-.1-.1-.2-.1-.3-.3-.3-.6-.4-1-.4h-13.8c-.4 0-.7.1-1 .4-.1.1-.1.2-.1.3v1l.1 2.3.2 4.6c.2 6.2.4 12.3 0 18.5 0 .1-.1.2-.3.2 0 .2-.1.1-.1-.1z"/><path class="st1" d="M180.3 251.4l-1-17h-10l.9 17z"/><path class="st0" d="M150.1 268.2h13.8"/><path class="st12" d="M150.1 267.9c1.1-.6 2.2-1 3.5-1 1.2-.1 2.3-.2 3.5-.2 1.1 0 2.3.1 3.5.2s2.3.4 3.5.8c.3.1.4.4.3.7-.1.1-.2.3-.3.3-1.1.4-2.3.7-3.5.8-1.1.1-2.3.2-3.5.2s-2.3 0-3.5-.2c-1.2-.1-2.4-.4-3.5-1-.1-.1-.2-.3-.1-.4 0-.1 0-.2.1-.2zM.5 366.6c49.6-1.4 99.2-1.7 148.8-2.1l148.8-.3c99.2.3 198.4.1 297.7 1.9.6 0 1 .5 1 1.1 0 .5-.4.9-1 1-99.2 1.7-198.4 1.6-297.7 1.9l-148.8-.3c-49.6-.4-99.2-.6-148.8-2.1-.3 0-.5-.2-.5-.5 0-.4.2-.6.5-.6z"/><path class="st7" d="M296.1 350.4c-.7 0-1.3-.6-1.3-1.3 0-.1 0-.2.1-.4 1.9-6.1 1.1-18.6.3-30.6-.4-5.9-.8-11.5-.8-16.4 0-.7.6-1.3 1.3-1.3.7 0 1.3.6 1.3 1.3.1 4.8.4 10.3.8 16.2.8 12.3 1.6 24.9-.4 31.5-.3.7-.8 1-1.3 1zM341.9 363c-.6 0-1.2-.5-1.3-1.1 0-.3-4.6-31-7.8-61.3-.1-.7.4-1.4 1.1-1.5s1.4.4 1.5 1.1v.2c3.1 30.3 7.7 60.9 7.8 61.2.1.7-.4 1.4-1.1 1.5 0-.1-.1-.1-.2-.1z"/><path class="st4" d="M484.9 26.9v-2.6c0-1.4 1.1-2.6 2.6-2.6 1.4 0 2.6 1.1 2.6 2.6v2.8"/><path class="st5" d="M397.9 82.3v-.7c-1 .8-2.2 1.4-3.4 1.7 0 0 2.9-10.4-.2-11.1-3-.7-14.7 19.9-14.7 19.9l4.2 10.1s4.5-4.1 19.1-11.5c3.3-3.1 5.2-6 6.2-8.4h-11.2z"/><path class="st7" d="M391.7 97.7c-.7 0-1.3-.6-1.2-1.4 0-.7.6-1.2 1.2-1.2 1.4-.1 11.5-5.3 16.4-14.6.3-.6 1.1-.9 1.7-.6s.9 1.1.6 1.7v.1c-5.2 9.7-16.1 16-18.7 16zM383.8 89.5c-.7 0-1.3-.6-1.3-1.3 0-.4.2-.7.4-1 1.1-.9 2.8-4.4 4.3-7.5 3.1-6.2 4.5-8.8 6.3-9 .6-.1 1.3.2 1.7.7 1.8 2.1 1.3 7.1.8 10.1 1.1-.5 2.3-1.2 3-2.1.4-.6 1.2-.8 1.8-.4.6.4.8 1.2.4 1.8 0 0 0 .1-.1.1-2 2.8-6.3 3.7-6.4 3.8-.7.2-1.4-.3-1.5-1v-.5c.6-2.9 1.1-7.6.4-9.5-1 1.2-2.8 4.8-4 7.3-1.8 3.6-3.5 7-4.9 8.3-.3 0-.6.2-.9.2z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5zM252 100.4c1.2.5.5 8.5 2.1 11.7.4-.1.7-.1 1.1-.2-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8.5 0 .9.1 1.4.1-.4-6.8 4.2-13.1 6.4-12.2z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5zM256.5 111.6l.9-.2c-.3.1-.6.2-.9.2zM263.9 109l-.4.2.4-.2z"/><path class="st4" d="M166 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6H166c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM191.2 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM317.2 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6 0-1.4-1.2-2.6-2.6-2.6zM355 54.3c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h3.1v-5.1l-3.1-.1zM342.4 52.1h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h12.6c1.4 0 2.6-1.1 2.6-2.6-.1-1.4-1.2-2.6-2.6-2.6zM216.4 54.3h-12.6c-1.4 0-2.6 1.1-2.6 2.6 0 1.4 1.1 2.6 2.6 2.6h10.5c.8-1.7 1.8-3.4 2.9-5-.3-.2-.6-.2-.8-.2zM292 54.3h-12.6c-.3 0-.5 0-.8.1 1.1 1.6 2.1 3.3 2.9 5H292c1.4 0 2.6-1.1 2.6-2.6-.1-1.3-1.2-2.5-2.6-2.5z"/><path class="st0" d="M255.6 112.4c.1 0 .2.1.5 0 .2-.1.3-.4.4-.8-.4.1-.9.2-1.3.3.1.2.2.4.4.5z"/><path class="st7" d="M257.4 111.4l-.9.2c-.1.4-.2.7-.4.8-.4.1-.5 0-.5 0-.2-.1-.3-.3-.4-.5-.8-1.4-1-4.8-1.1-6.8-.2-3.3-.3-5.1-1.7-5.6-2.1-.8-4.8 1.3-6.6 5.2-1.1 2.4-1.7 5.1-1.6 7.8.1 4.8 2.5 9.7 8.9 13 .2.1.4.1.6.1.7 0 1.3-.6 1.3-1.3 0-.5-.3-.9-.7-1.1-9.1-4.8-7.8-12.5-6.8-15.7 1.1-3.4 2.9-5.3 3.7-5.6.2 1.1.3 2.2.3 3.3.2 3.7.5 7.8 2.6 9.3.8.5 1.8.6 2.8.3 1.9-.6 2.2-2.1 2.2-3.9-.2.1-.6.2-1 .3l-.4.1-.3.1z"/><path class="st7" d="M257.7 111.3l.4-.1-.7.2.3-.1zM263.1 109.4l-.2.1c-.5.2-1 .4-1.3.5 1.2 2.9 1.8 6 1.8 9.2 0 .7.6 1.3 1.3 1.3.7 0 1.3-.6 1.3-1.3.1-3.5-.6-7-2-10.2l-.4.2-.5.2z"/><path class="st7" d="M263.5 109.2l-.6.3.2-.1.4-.2z"/><path class="st6" d="M301.9 303.2c-4.4 0-8.3-.5-10.4-2.2-1.1-.8-1.7-2-1.8-3.3-.1-1.1-.2-2.8-.4-4.9-1.1-13-3.8-43.6 1.7-78.3.1-.7.8-1.2 1.5-1 .7.1 1.1.7 1 1.4-5.5 34.4-2.8 64.7-1.7 77.7.2 2.2.3 3.9.4 5 0 .6.3 1.1.8 1.4 4.4 3.4 22.1.6 28.6-.7.7-.1 1.4.4 1.5 1.1s-.3 1.3-.9 1.5c-1.7.2-11.8 2.3-20.3 2.3zM338.6 301.3c-4.8 0-8.8-.4-10.6-1.6-4-2.6-3.2-38.8-2.7-54.2 0-.7.5-1.2 1.2-1.2h.1c.7 0 1.3.6 1.2 1.3-.8 23.8-.4 49.8 1.6 52 3.5 2.3 22.2.7 34-1l-2.2-39.1c0-.7.5-1.3 1.2-1.4s1.3.4 1.3 1.1v.1l2.3 40.3c0 .7-.4 1.2-1.1 1.3-2 .4-15.9 2.4-26.3 2.4zM360.8 237.7c-.7 0-1.2-.5-1.3-1.2l-2.7-33.8c-.1-.7.5-1.3 1.2-1.4.7-.1 1.3.5 1.4 1.2l2.7 33.8c.1.7-.5 1.3-1.2 1.4h-.1z"/><path class="st9" d="M395.1 99.7l-12.3-12.8c-6 12.1-23.9 30-37.5 33.4-.3-.1-.6-.2-1-.4-4.3-1.6-29.2-3.3-35.2-.8-3.8 1.6-6.5 2.9-8.2 4.5-11.7 9.2-19.1 17.2-19.1 17.2l-14.3-22.4-12.8 9.1s11 40.2 27.9 39.3c5.6-.3 11-1.8 16-4.3L300 203l56.7-1-1.4-57.9c21.1-10.7 39.8-44.4 39.8-44.4z"/><path class="st7" d="M297.4 204.4c-.7 0-1.3-.6-1.2-1.4 0-.7.6-1.2 1.2-1.2l60.7-.6c.7 0 1.3.5 1.3 1.2v.1c0 .7-.6 1.3-1.3 1.3l-60.7.6zM288 167.6c-.7 0-1.3-.6-1.3-1.3 0-.5.3-1 .8-1.2l11.1-5c.6-.3 1.4-.1 1.7.5.3.6.1 1.4-.5 1.7 0 0-.1 0-.1.1l-11.1 5c-.3.1-.5.2-.6.2z"/><path class="st11" d="M231.9 278.8h-.2l-36.9.6-37.2.4-74.8.2c-.8 0-1.4-.6-1.4-1.4v-20.9c0-.8.6-1.4 1.4-1.5l74.4.2 74.4.6c.4 0 .7.3.7.7l-.4 21.1zm-.8-.4v-.2l-.4-20.5.7.7-74.4.6-74.4.2 1.5-1.5v20.9l-1.4-1.4 73.9.3 37.1.4 37.4.5z"/><path class="st0" d="M82.7 270.9v91.3"/><path class="st11" d="M83 270.9c.7 7.6.9 15.2 1 22.8l.2 22.8c-.2 15.2-.1 30.4-.9 45.6 0 .3-.3.5-.6.5-.2 0-.4-.2-.5-.5-.9-15.2-.8-30.4-.9-45.6l.2-22.8c.2-7.6.3-15.2 1-22.8 0-.1.1-.3.3-.3.1.1.2.2.2.3z"/><path class="st0" d="M231.5 278.6v83.6"/><path class="st11" d="M231.7 278.6c.7 7 .9 13.9 1 20.9l.2 20.9c-.2 13.9-.1 27.9-.9 41.8 0 .3-.3.5-.6.5-.2 0-.4-.2-.5-.5-.9-13.9-.8-27.9-.9-41.8l.2-20.9c.2-7 .3-13.9 1-20.9 0-.1.1-.3.3-.3.1.1.2.2.2.3z"/></svg>
diff --git a/plugins/jetpack/images/generating-cash-2.svg b/plugins/jetpack/images/generating-cash-2.svg
index 53601e03..e2545876 100644
--- a/plugins/jetpack/images/generating-cash-2.svg
+++ b/plugins/jetpack/images/generating-cash-2.svg
@@ -1 +1 @@
-<svg id="generatingCash-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1495 856.6"><style>.st0{fill:#fff}.st1{fill:#BBC9D5}.st2{fill:#CCCED0}.st3{fill:#BBC9D5}.st4{fill:#6F93AD}.st5{fill:none}.st6{fill:#00be28}.st7{display:none;fill:#fff}.st8,.st9{fill:none;stroke:#CCCED0;stroke-width:7.5622;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st9{fill:#fff}.st10{fill:#CCCED0}.st11{fill:#005083}.st12{fill:#969CA1}.st13{fill:#204A69}.st14{fill:#6F93AD}.st15{fill:#BBC9D5}.st16,.st17{fill:none;stroke:#CCCED0;stroke-width:3.7811;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st17{stroke:#969CA1;stroke-width:4.2772}</style><path class="st0" d="M401 688.9h683.1v167.8H401zM720.4 522.6c-18.8 15-23.3 34.3-23.3 34.3l-5.6 120.4h110.6l-24-120.4-57.7-34.3zM887.7 197.1c-45-5-85.2 36.7-91.9 57.1-5.8 17.8-20.8 74.9-10.2 107.9s.8 65 43.9 74.5 109.7 8.5 109.1-19.4c-.6-27.8-16.5-179.6-19.5-196.1s-4.2-21-31.4-24z"/><path class="st0" d="M1136.1 856.6c6.8-25 10.8-56.2 10.8-90.1 0-81.9-23.6-148.4-52.7-148.4s-52.7 66.4-52.7 148.4c0 33.9 4 65.1 10.8 90.1h83.8z"/><title>jetpack-generatingCash-2</title><path class="st1" d="M29.3 436.6z"/><circle class="st2" cx="533.9" cy="417.2" r="6.1"/><circle class="st2" cx="533.9" cy="443.6" r="6.1"/><circle class="st2" cx="533.9" cy="470" r="6.1"/><circle class="st2" cx="533.9" cy="274" r="6.1"/><circle class="st2" cx="533.9" cy="301.5" r="6.1"/><path class="st2" d="M535 230.5c15-.4 30.1-.8 45.2-.8l45.2-.1-2.1 1.5c2.4-8.9 3.3-18.6 2-27.6-1.2-9.1-5.6-17.7-13.1-22.8-3.6-2.6-7.9-4.3-12.3-5.4-4.5-1.1-9.2-1.9-13.6-1.7-2.2 0-4.3.4-6.3 1.1l-.4.1c-.3.1-.5.2-.8.2-.6.1-1.2.1-1.8 0-1.2-.2-2.3-.9-3-2-.3-.5-.6-1.2-.6-1.9l-.1-.9-.2-1.7c-.6-4.6-2-8.9-4-13-4.1-8.2-11.4-14.3-20.3-16.8-9-2.5-18.4-2.8-27.5-.8-18.3 3.9-33.7 17.7-42 34.2-.5 1-1.8 1.5-2.8.9-.3-.1-.5-.3-.7-.6-5-6.6-12.8-12.1-21.3-13.2-8.7-1.1-17.8-.1-25.8 3.6s-14.8 9.8-20 17.1c-5.2 7.3-9.2 15.5-11.6 24.2-.1.3-.4.5-.8.3-.2-.1-.4-.4-.4-.6 2.2-9 5.9-17.5 11-25.2 5.2-7.6 12.1-14.3 20.6-18.4s18.1-5.4 27.4-4.5c9.7 1.1 18.3 6.6 24.2 14.3l-3.6.3c4.7-9 11.1-16.4 18.6-22.9 7.5-6.4 16.6-11.2 26.2-13.4 9.7-2.2 19.9-2 29.6.7 4.8 1.5 9.5 3.7 13.5 7s7.2 7.3 9.5 11.9c2.3 4.5 3.8 9.4 4.6 14.4l.2 1.9.1.9v-.2c0-.1 0 0 0 0l.5-.2c2.5-.9 5.1-1.4 7.8-1.5 5.1-.2 10.1.6 14.9 1.9 4.8 1.2 9.7 3.2 13.9 6.2 8.6 5.9 13.5 16 14.8 25.9 1.4 10 .4 19.9-2.3 29.5-.2.9-1.1 1.5-2 1.5l-45.2-.4c-15-.1-30.1-.5-45.2-1.1-.5 0-.9-.4-.9-.9 0-.6.4-1 .9-1z"/><ellipse class="st3" cx="655.8" cy="144.3" rx="64.6" ry="64.5"/><path class="st4" d="M616.6 94.6c-12.1 10.6-20.1 25.2-22.3 40.7-2.1 15.5 1.4 31.6 10.3 44.5 8.9 12.9 22.4 22 37.7 25.3 15.1 3.3 31.4.7 44.7-7.2 13.3-7.9 23.6-20.8 27.9-35.7 4.5-15 2.9-31.2-4.2-45.2-7.2-14-19.3-24.7-34.1-30.1-7.3-2.7-15-3.9-23-4-4 0-8 0-11.7.6s-7.4 2-10.9 3.8h-.1c-.8.4-1.8.1-2.2-.7-.2-.5-.2-1.1.1-1.6 3.6-5.6 7.2-11.2 11-16.7.2-.3.6-.4.9-.1.2.2.3.5.2.8-3 6-6.1 11.9-9.3 17.7l-2.3-2.3c3.6-2.1 7.5-4 11.7-4.9s8.4-1.2 12.5-1.2c8.3-.1 16.8.8 24.8 3.6 33.6 11.8 52.1 47.7 42.3 82-4.7 16.4-15.8 30.8-30.5 39.3-14.7 8.7-32.6 11.4-49.2 7.6-16.7-3.8-31.4-13.8-41-28-9.6-14.2-13.4-31.5-10.4-48.3 2.7-16.7 12.7-31.8 26.2-41 .3-.2.7-.1.9.2.3.3.2.7 0 .9z"/><path class="st3" d="M641 127l16.7 20.9-32.5 28.7"/><path class="st4" d="M642.4 125.9c2.4 1 3.4 3 4.9 4.7l4.3 5.2c2.8 3.5 5.8 6.9 8.5 10.4 1 1.3.8 3.1-.3 4.1-5.4 4.8-10.9 9.5-16.5 14.2-5.5 4.7-11 9.4-17.5 12.9-.4.2-1 .1-1.2-.3-.1-.3-.1-.7 0-1 4.3-6 9.6-10.9 15-15.7s10.7-9.7 16.1-14.5l-.3 4.1c-2.8-3.5-5.5-7.1-8.3-10.6l-4.1-5.3c-1.3-1.9-3-3.3-3.5-5.8-.2-1.1.5-2.2 1.7-2.4.4-.2.8-.2 1.2 0z"/><path class="st5" d="M630.2 85.8l17.1 9.9"/><path class="st4" d="M630.6 85.3c2.5-1.1 3.8-.1 5.3.5s3 1.4 4.4 2.2c1.4.9 2.8 1.7 4.1 2.7 1.3 1 2.8 1.7 3.2 4.4 0 .5-.2 1-.7 1.2-2.5 1.1-3.8.1-5.3-.5s-3-1.4-4.4-2.2c-1.4-.9-2.8-1.7-4.1-2.7-1.3-1-2.8-1.7-3.2-4.4-.1-.6.2-1 .7-1.2z"/><circle class="st4" cx="655.8" cy="106.2" r="3.2"/><circle class="st4" cx="655.8" cy="189.2" r="3.2"/><circle class="st4" cx="698.6" cy="146.4" r="3.2"/><circle class="st4" cx="612.9" cy="146.4" r="3.2"/><path class="st5" d="M395.4 181.4c-19.7 0-34.1.1-34.1.1s-9.3-30.3 15.3-36.7c7.3-1.9 11.7-1.2 13.8-.2.7.3 1.5 0 1.9-.7 0-.1.1-.2.1-.4.5-6.1 4-22.7 26.2-22.7 24.4 0 35.2 23 35.2 23s5.4-7.9 15.1-8.7c10.5-.8 18.1 2.9 23.5 8"/><path class="st2" d="M395.4 182.3c-5.7.5-11.4.9-17 1l-17 .3c-.9 0-1.8-.6-2-1.5-1.8-6.1-2.3-12.5-1.5-18.8.8-6.3 4-12.9 9.5-16.7 2.7-1.9 5.7-3.2 9-4 3.1-.9 6.4-1.3 9.6-1.2 1.8 0 3.5.4 5.1 1l.3.1h-.4c-.2 0-.4.2-.6.4-.1.1-.1.3-.1.5v-.5l.1-1.2c.4-3.2 1.5-6.4 2.9-9.3 3-6 8.4-10.4 14.9-12.1 6.2-1.7 12.6-1.8 18.9-.4 12.6 2.9 22.4 12.1 28.6 23.1l-3.6-.3c2.4-3.2 5.6-5.7 9.3-7.3 3.6-1.7 7.7-2.2 11.5-1.9 7.6.4 15 3.8 20.1 9.3.2.2.2.6 0 .8-.2.2-.6.2-.8 0-5.4-4.6-12.3-7.1-19.3-6.9-3.5.1-6.8.5-9.7 2.1-2.9 1.5-5.5 3.7-7.4 6.3v.1c-.7.9-2 1.1-2.9.4-.2-.2-.4-.4-.6-.7-4.9-10.2-14.6-18.7-25.7-21-5.6-1.2-11.3-1-16.8.5-5.3 1.5-9.7 5.2-12.1 10.1-1.2 2.5-2.1 5.1-2.4 7.9l-.1 1v.5c0 .5-.2 1.1-.5 1.5-.5.8-1.5 1.4-2.4 1.6-.5.1-.9.1-1.4 0-.2 0-.4-.1-.7-.2l-.2-.1c-1.2-.4-2.4-.6-3.7-.6-5.3 0-11.4 1.3-15.7 4.3-4.4 3-7.1 8.1-7.8 13.7-.8 5.6-.2 11.5 1.2 16.9l-2.1-1.5 17 .2c5.7.1 11.4.4 17 .9.5 0 .9.5.8 1-.5.3-.9.7-1.3.7z"/><path class="st5" d="M535 231.4c48.3.1 90.3.3 90.3.3s14.8-48.4-24.5-58.6c-11.8-3-18.6-1.9-22.1-.4-1.4.6-3-.2-3.1-1.7-.8-9.7-6.4-36.3-41.9-36.3-39.1 0-56.2 36.7-56.2 36.7s-8.7-12.7-24.1-13.9c-45.6-3.7-56.8 46.7-56.8 46.7"/><path class="st2" d="M391.6 230.8c4.2-1 7.5-1.2 11.3-1.4l11-.4c3.7-.2 7.3.3 11 .3 3.7-.6 7.3.4 11 1.2.3.1.5.4.4.7 0 .2-.2.4-.4.4-3.7.8-7.3 1.9-11 1.3-3.7 0-7.3.6-11 .4l-11-.2c-3.6 0-7.2-.3-10.8-.8l-.5-.1c-.4-.1-.7-.5-.7-1 .1-.1.3-.3.7-.4z"/><ellipse class="st3" cx="485.4" cy="237.3" rx="38" ry="37.9"/><path class="st5" d="M485.4 216.8v41.1"/><path class="st4" d="M486.1 216.8c2.2 3.4 2 6.9 2.2 10.3a177.08 177.08 0 0 1 0 20.6c-.1 3.4 0 6.9-2.2 10.3h-1.4c-2.2-3.4-2-6.9-2.2-10.3a177.08 177.08 0 0 1 0-20.6c.1-3.4 0-6.9 2.2-10.3h1.4z"/><path class="st5" d="M506 237.3h-41.2"/><path class="st4" d="M506 238c-3.4 2.2-6.9 2-10.3 2.2s-6.9.3-10.3.3-6.9-.1-10.3-.3-6.9 0-10.3-2.2v-1.4c3.4-2.2 6.9-2 10.3-2.2a177.08 177.08 0 0 1 20.6 0c3.4.2 6.9 0 10.3 2.2v1.4z"/><path class="st3" d="M510.5 8.6s-14.2 17.6-38.8 15.5c0 0-13.1 70.4 40.4 85.5 0 0 52.1-7.2 41.7-85.5 0 0-29.5 2.3-43.3-15.5z"/><path class="st6" d="M510.8 109.6s53.7-7.2 43.3-85.5c0 0-29.8.7-43.5-17.1 0 0-15.6 19.2-40.1 17.1-.1 0-13.2 70.4 40.3 85.5"/><path class="st6" d="M494.8 62.9l13.8 10.9 28-31.6"/><path class="st0" d="M495.6 61.9c1.7.2 2.6 1.4 3.9 2.3l3.5 2.7c2.3 1.8 4.7 3.5 7 5.4l-2.8.2 14.1-15.7c4.7-5.3 9.5-10.4 15-15 .2-.2.6-.2.9 0 .2.2.2.5 0 .7-3.8 6-8.4 11.4-13 16.7l-13.9 15.9c-.7.8-1.9.9-2.8.3-2.4-1.8-4.6-3.7-6.8-5.5l-3.4-2.8c-1.1-1-2.4-1.7-3-3.2-.3-.7 0-1.6.8-1.9 0-.1.3-.2.5-.1z"/><path class="st6" d="M533.9 323.3c-13 0-23.5 10.5-23.5 23.5s10.5 23.5 23.5 23.5 23.5-10.5 23.5-23.5-10.5-23.5-23.5-23.5zm-1.1 27.4H521l11.7-22.7v22.7zm2.3 14.9v-22.7h11.7l-11.7 22.7z"/><g id="Layer_1_2_"><path class="st7" d="M731.5 436.8c1.8 17.3 7.8 32.1-24.7 27.2v-18"/><path class="st8" d="M1049.4 680.8c9.9-38.8 26.3-64.1 44.8-64.1 30.2 0 54.8 68.4 54.8 152.4 0 31.1-3.4 60-9.1 84.2"/><path class="st9" d="M1046.5 483.9c-1.9 4.5.4 8.7 5.3 9.8l60.5 13.2c4.9 1.1 10.2-1.9 11.7-6 1.5-4.2-.4-8.7-5.3-9.8l-60.5-13.2c-4.5-1.2-9.8 1.9-11.7 6 0 0 1.9-4.1 0 0z"/><path class="st9" d="M1046.5 483.9c-1.9 4.5.4 8.7 5.3 9.8l60.5 13.2c4.9 1.1 10.2-1.9 11.7-6 1.5-4.2-.4-8.7-5.3-9.8l-60.5-13.2c-4.5-1.2-9.8 1.9-11.7 6 0 0 1.9-4.1 0 0z"/><path class="st9" d="M1050.3 657.9H834.4c-14.7 0-27.2-11.7-28-26.5l7.2-136.9c-.8-15.9 11.7-29.5 28-29.5h215.9c14.7 0 27.2 11.7 28 26.5l-7.2 136.9c.7 15.8-12.1 29.5-28 29.5z"/><path class="st10" d="M885.1 350.1V335c-19.3 3.4-36.3 4.9-51 0-15.2-5 23 15.5 51 15.1z"/><path class="st11" d="M834 281.3c-2.6 0-4.5-1.9-4.5-4.5v-7.2c0-2.6 1.9-4.5 4.5-4.5s4.5 1.9 4.5 4.5v7.2c.4 2.6-1.8 4.5-4.5 4.5z"/><path class="st12" d="M938 276.7c-2.3-24.2 6-35.5-6.4-70.3-7.9-21.9-45.8-47.3-84.7-37.8-42 5.7-59.7 43.9-59.7 86.6 0 57.1-34.8 55.6-34.8 95.7S780 397 780 397s13.6 2.3 27.6-1.5v-20c11-1.1 19.7-9.8 20.8-20.8l2.3-20c-23.4-4.2-29.9-74.5-29.9-74.5 45 3 54.8-30.2 65-49.9 3.8 7.2 12.9 18.1 24.6 26.5 25.7 19.3 23.4 54.4 12.9 74.5-10.2 18.9-21.6 21.2-21.6 21.2l.8 22.3c.4 9.8 7.9 18.1 17.8 19.7l4.9.8v20.8H926s20.4-10.2 30.2-38.9c11.3-29.4-16.7-65.7-18.2-80.5z"/><path class="st13" d="M803.8 259.3s0 3.4.4 9.5c.4 3 .4 6.4.8 10.6.4 1.9.4 4.2.8 6.4.4 2.3.8 4.5 1.1 7.2.4 2.6 1.1 4.9 1.9 7.6 1.1 2.6 1.5 5.3 3 7.9 2.3 5.3 5.7 10.2 10.2 14.4 4.5 4.2 10.2 7.2 16.3 8.7 6.4 1.5 12.9 2.6 19.7 2.6H862.8l5.3-.4c1.9 0 3.4-.4 4.9-.8s3-.4 4.5-.8c6.4-1.5 11.7-4.5 16.3-8.7 4.2-4.2 7.2-9.5 9.1-14.7 1.9-5.3 3-10.6 3.8-15.9.8-4.9 1.1-9.8 1.5-14 .4-4.2.4-7.9.4-11 0-6 .4-9.5.4-9.5 0-1.1.8-1.9 1.9-1.9s1.9.8 1.9 1.9v20.5c0 4.2-.4 9.1-1.1 14.4s-1.5 11-3.8 16.6c-1.9 6-5.3 12.1-10.2 17-4.9 4.9-11.7 8.7-18.5 10.2-1.5.8-3.4.8-5.3 1.1s-3.8.8-5.3.8l-5.3.4h-5.4c-7.2 0-14-1.1-21.2-3-6.8-1.9-13.2-5.3-18.5-9.8-4.9-4.5-8.7-10.6-11-16.3-1.5-2.6-1.9-5.7-3-8.3-.8-2.6-1.1-5.7-1.9-7.9-.4-2.6-.8-5.3-1.1-7.6-.4-2.3-.4-4.5-.8-6.8-.4-4.2-.4-7.9-.4-11v-9.5c0-1.1.8-1.9 1.9-1.9s1.9.9 1.9 2z"/><path class="st13" d="M862.8 265.4s.4 1.5.8 4.2c.4 2.3.8 5.7.8 8.7 0 3.4 0 6.4-.4 8.7-.4 2.3-.4 4.2-.4 4.2-.4 1.1-1.5 1.9-2.6 1.5-.8 0-1.5-.8-1.5-1.5 0 0-.4-1.5-.4-4.2-.4-2.3-.4-5.7-.4-8.7 0-3.4.4-6.4.8-8.7.4-2.3.8-4.2.8-4.2 0-.8 1.1-1.1 1.9-1.1-.2.3.2.7.6 1.1z"/><path class="st11" d="M887.3 281.3c-2.6 0-4.5-1.9-4.5-4.5v-7.2c0-2.6 1.9-4.5 4.5-4.5s4.5 1.9 4.5 4.5v7.2c.5 2.6-1.8 4.5-4.5 4.5z"/><path class="st13" d="M849.5 305.5s.4 0 1.1.4c.8 0 1.1.4 2.3.4 2.3.4 5.3.8 8.3.8s6 0 8.3-.4c1.1-.4 1.9-.4 2.3-.8.4-.4.8-.4.8-.4h.4c1.1-.4 1.9 0 2.3 1.1.4.8 0 1.5-.4 1.9l-1.1 1.1c-.8.4-1.9 1.1-3 1.5s-3 .8-4.5 1.1c-1.5.4-3.4.4-5.3.4-3.4 0-6.8-.8-9.5-1.9-.8-.4-1.1-.4-1.9-.8-.4-.4-1.1-.8-1.5-.8l-.8-.8c-.8-.8-.8-1.9-.4-2.6 1.1-.2 1.9-.6 2.6-.2zM875.6 245.3s0-.4.8-.8c.4-.4.8-.4 1.1-.8.4-.4.8-.4 1.5-.8 1.1-.4 2.3-.8 3.4-1.1 1.1-.4 2.6-.4 4.2-.4s2.6.4 4.2.4c1.1.4 2.3.8 3.4 1.1 1.9 1.1 3 2.3 3 2.3.8.8.8 1.9 0 2.6-.4.4-1.1.8-1.9.4h-.4s-.4 0-.8-.4c-.4 0-1.1-.4-1.9-.4-1.5-.4-3.8-.8-6-.8-2.3 0-4.5 0-6 .4h-1.5c-.4.4-.8.4-.8.4-1.1.4-2.3 0-2.6-1.1-.4.5-.1-.2.3-1zM843.1 248.4s-.4 0-.8-.4H840.9c-1.5 0-3.8-.4-6-.4s-4.5.4-6 .8c-.8 0-1.5.4-1.9.4-.4 0-.8.4-.8.4h-.4c-1.1.4-1.9-.4-2.3-1.5 0-.8 0-1.1.4-1.9 0 0 1.1-1.1 3-2.3 1.1-.4 2.3-.8 3.4-1.1s2.6-.4 4.2-.4c1.5 0 2.6 0 4.2.4 1.1.4 2.6.8 3.4 1.1.4 0 1.1.4 1.5.8.4.4.8.8 1.1.8l.8.8c.8.8.4 2.3-.4 2.6-.5.2-1.2.2-2-.1z"/><path class="st14" d="M1051.4 558.8s-14-159.9-142.5-183.4c0 0-20.8 29.9-52.9 29.9-32.1 0-48.4-29.9-48.4-29.9C679 415.9 685.8 561.1 685.8 561.1H766l-2.3 123.6h209.1l-5.7-124 84.3-1.9z"/><circle class="st15" cx="858.2" cy="430.6" r="4.9"/><path class="st0" d="M823.1 556.9h-12.9c-21.2 0-25.7-72.6-25.7-72.6h66.2s-8.3 72.6-27.6 72.6z"/><path class="st0" d="M985.3 693.4c-72.6 0-100.2-121.4-100.2-121.4s-12.9-2.3-25.7-10.6c-11.3-7.6-12.9-23.4-12.9-23.4s-17.4-1.5-32.1 2.3c-4.9 1.1-6.4-2.3-8.7-8.7s2.3-14.7 12.9-17c37.8-21.2 48-6.4 55.6 0 17 14.7 100.2 80.9 100.2 80.9"/><path class="st10" d="M835.2 307v-1.1c0-.7 0-1.5.4-2.3.4-.8.8-1.5 1.1-1.9l.8-.8 1.5.8v1.1c0 .7 0 1.5-.4 2.3s-.8 1.5-1.1 1.9l-.8.8-1.5-.8zM886.2 307.7l-.8-.8c-.4-.4-.8-1.1-1.1-1.9-.4-.8-.4-1.5-.4-2.3v-1.1l1.5-.8.8.8c.4.4.8 1.1 1.1 1.9.4.8.4 1.5.4 2.3v1.1l-1.5.8z"/><path class="st16" d="M893.4 595.1l34-31.8"/><path class="st15" d="M794.3 684.7H615.1V670h164.1c8.3 0 15.1 6.4 15.1 14.7z"/><path class="st15" d="M679.4 684.7H432.5l-21.9-158.1c-1.9-14.4 9.1-27.2 23.8-27.2h198.1c12.1 0 22.3 8.7 23.8 20.8l23.1 164.5z"/><path class="st10" d="M1015.1 683.2c11.7-1.9 23.1-2.3 34.8-2.3 11.7-.4 23.1-.4 34.8 0 2.3 0 4.2 1.9 3.8 4.2l-.4 25c0 4.2 0 8.3-.4 12.5-.4 4.2-.4 8.3-.8 12.5 0 1.5-1.5 2.3-2.6 2.3s-2.3-1.1-2.3-2.3c-.4-4.2-.8-8.3-.8-12.5-.4-4.2-.4-8.3-.4-12.5l-.4-25 4.2 4.2h-34.8c-11.7 0-23.1-.4-34.8-2.3-.8 0-1.5-1.1-1.1-1.9-.3-1.2.5-1.9 1.2-1.9z"/><path class="st0" d="M1003.4 690l27.6-25.7 7.2-17.4-23.1-14-35.1 6.4-5.7 52.6z"/><path class="st5" d="M402.6 734.6v-49.9h548.3"/><path class="st10" d="M401.1 734.6l-.8-25c-.4-8.3-.4-16.6-.4-25 0-1.5 1.1-3 2.6-3 22.7-.4 45.8-.8 68.4-.8l68.4-.4 136.9-.4 136.9.4 68.4.4 34.4.4 34.4.8c1.5 0 2.6 1.1 2.6 2.6s-1.1 2.3-2.6 2.6l-34.4.8-34.4.4-68.4.4-136.9.4-136.9-.4-68.4-.4c-22.7-.4-45.8-.4-68.4-.8l3-3c0 8.3-.4 16.6-.4 25l-.8 25c0 .8-.8 1.5-1.5 1.5-.9 0-1.7-.7-1.7-1.5z"/><path class="st13" d="M815.9 513s.8-.4 1.5-1.5c1.1-.8 2.6-2.3 4.9-3.4 1.1-.8 2.6-1.5 4.2-2.3 1.5-.8 3-1.5 4.9-2.3 3.4-1.5 7.9-2.3 12.9-2.6 4.9-.4 10.2 0 15.5 1.5 5.3 1.5 11 3.8 15.9 7.6 4.2 3.4 8.7 7.2 13.2 11s9.1 7.6 13.6 11.3c18.5 15.1 36.7 30.2 50.7 41.6 14 11.3 22.7 19.3 22.7 19.3 1.1 1.1 1.1 2.6 0 3.4-.8.8-2.3 1.1-3.4.4 0 0-9.8-6.8-23.8-17.8-7.2-5.3-15.1-12.1-24.2-18.9-8.7-6.8-18.1-14.4-27.2-21.9-4.5-3.8-9.1-7.6-13.6-11.3s-9.1-7.6-13.2-11c-3.8-3-8.3-5.3-12.9-6.4-4.5-1.1-9.1-1.9-13.2-1.9-4.2 0-7.9.4-11.3 1.1-3.4.8-6.4 1.5-8.7 2.6-2.3.8-4.2 1.9-5.7 2.3-1.1.4-1.9.8-1.9.8-.8.4-1.5 0-1.5-.8.2.4.2-.4.6-.8z"/><path class="st13" d="M811.3 537.6c1.1-.8 2.3-1.5 3.8-2.3 1.5-.8 3-1.1 4.5-1.9 3-1.1 6-1.5 9.1-1.9 3-.4 6.4 0 9.5.4 1.5.4 3 .4 4.5.8.8 0 1.5.4 2.3.4.8.4 1.5.4 2.3.8 1.5.4 2.3 1.5 2.3 3v.4c0 .8.4 1.9.4 3 .4 1.1.4 1.9.8 3 .8 1.9 1.5 3.8 2.3 5.7s1.9 3.4 3.4 4.9c.8.8 1.1 1.5 1.9 2.3.8.8 1.5 1.1 2.3 1.9 1.1.8 1.9 1.1 3 1.9.8.4 1.9 1.1 2.6 1.5 1.9 1.1 3.8 1.9 6 2.6 1.9.8 4.2 1.5 6 2.3 1.1.4 2.3.8 3 .8 1.1.4 2.3.4 3 .8 1.5.4 3 1.5 3.4 3 1.5 6.4 3.4 12.9 5.7 18.9 2.3 6.4 4.5 12.5 6.8 18.5 4.9 12.1 11 24.2 17.8 35.2 7.2 11 15.1 21.6 25 29.5 9.8 8.3 21.6 14 34 15.5 1.5 0 3 .4 4.5.4h4.9c3 0 6-.4 9.1-1.1 6-1.5 11.7-4.2 16.6-7.9 9.8-7.6 16.3-19.3 20-31.8 4.2-12.5 6.4-25.3 7.6-38.6.8-6.4 1.1-13.2 1.5-20 .4-6.8.4-13.2 0-20 0-.8.4-1.1 1.1-1.1.8 0 1.1.4 1.1 1.1 1.1 6.8 1.9 13.6 2.3 20.4.4 6.8.4 13.6 0 20.4-.8 13.6-2.6 27.2-6.8 40.5-2.3 6.4-4.9 13.2-8.7 19.3s-8.3 11.7-14 16.3c-5.7 4.5-12.5 7.6-19.7 9.5-3.4.8-7.2 1.1-10.6 1.5h-5.2c-1.9 0-3.4-.4-5.3-.4-7.2-.8-14-2.6-20.4-5.7-6.4-3-12.5-6.8-17.8-11.3-11-9.1-19.7-20-26.8-31.4-7.2-11.7-13.2-23.8-18.5-36.7-2.6-6.4-4.9-12.9-6.8-19.3-2.3-6.4-4.2-12.9-5.7-19.7l3.4 3c-1.5-.4-2.6-.4-3.8-.8-1.1-.4-2.3-.8-3.4-1.1-2.3-.8-4.5-1.5-6.8-2.6-2.3-.8-4.5-1.9-6.4-3-1.1-.4-2.3-1.1-3.4-1.9-1.1-.8-1.9-1.1-3-1.9-1.1-.8-2.3-1.5-3.4-2.6-1.1-.8-1.9-1.9-2.6-3-1.5-1.9-3-4.2-4.2-6.4s-2.3-4.5-2.6-7.2c-.4-1.1-.8-2.3-.8-3.8-.4-1.1-.4-2.3-.8-3.8l2.3 3.4c-.4 0-1.1-.4-1.9-.4l-1.9-.4c-1.1-.4-2.6-.4-4.2-.8-1.5 0-2.6-.4-4.2-.4h-4.2c-1.6 0-2.6 0-4.2.4s-2.6.4-4.2.8c-1.5.4-2.6.8-3.8.8-1.1.4-2.6.8-4.2 1.1-1.5.4-2.6-.4-3-1.9 1.7-1.4 2.5-2.5 3.2-2.9zM807.6 526.7s.8-.4 1.9-.8 3-1.1 5.3-1.9c2.3-.8 4.5-1.1 7.6-1.5 2.6-.4 5.7-.4 8.7-.4s6 .4 8.7.8 5.3 1.1 7.6 1.9c2.3.8 3.8 1.5 4.9 1.9 1.1.4 1.9.8 1.9.8 1.1.4 1.5 1.5 1.1 2.6-.4.8-1.1 1.1-2.3 1.1 0 0-.8 0-1.9-.4-1.1-.4-3-.8-4.9-1.1-4.2-.8-9.5-1.5-15.1-1.9-5.3-.4-11 .4-15.1 1.1-1.9.4-3.8.8-4.9 1.1s-1.9.4-1.9.4c-1.1.4-1.9-.4-2.3-1.5-.5-1.1-.1-1.9.7-2.2zM807.2 519.1s.8-.4 1.5-1.1c.4-.4 1.1-.8 2.3-1.1.8-.4 1.9-.8 3-1.1 2.3-.8 4.5-1.5 7.6-2.3 2.6-.4 5.7-.8 8.7-1.1 3 0 6 0 8.7.4 2.6.4 5.3.8 7.6 1.5s3.8 1.1 5.3 1.9c1.1.4 1.9.8 1.9.8 1.1.4 1.5 1.5 1.1 2.6-.4.8-1.1 1.1-2.3 1.1 0 0-.8 0-1.9-.4-1.1-.4-3-.4-4.9-.8s-4.5-.8-7.2-.8c-2.6-.4-5.3-.4-7.9-.4-5.7 0-11 1.1-14.7 1.9-.8.4-1.9.4-2.6.8-.8.4-1.5.4-1.9.8-1.1.4-1.9.8-1.9.8-1.1.4-1.9 0-2.6-1.1-.9-.9-.6-2 .2-2.4z"/><g><path class="st17" d="M834 288.1h-3.4c-8.7 0-16.3-6.4-16.6-14.7l-.4-4.2c-.4-6 4.9-11.3 11-11l13.2.4c7.6.4 13.6 6.4 13.2 13.6-.3 8.7-7.5 15.9-17 15.9zM886.6 290l3.4.4c8.7.8 16.6-5.3 17.8-13.6l.8-4.2c.8-6-3.8-11.3-10.2-11.7l-13.2-.4c-7.6-.4-14 5.3-14 12.5-.9 8.6 6.3 16.2 15.4 17zM850.7 265.8l20.4.3"/></g><g><path class="st13" d="M698.3 570.1s.8 1.1.8 2.6c.4 1.5 0 4.2 0 7.2 0 5.7 0 13.6-.4 21.2-.4 3.8-.4 7.6-.8 11.3-.4 3.8-.8 6.8-1.1 9.8-.4 3-1.1 5.3-1.5 6.8s-.8 2.6-.8 2.6c-.4.4-.8.8-1.5.4-.4 0-.4-.4-.4-.8 0 0-.4-1.1-.8-2.6-.4-1.9-.4-4.2-.4-7.2s.4-6.4.4-9.8c0-3.8.4-7.6.4-11.3.4-3.8.4-7.6.8-11.3 0-3.4.4-6.8.4-9.8s0-5.3.4-6.8.8-2.6.8-2.6c.8-1.1 1.9-1.5 3-.8.3.8.3.8.7 1.1z"/></g><g><path class="st13" d="M737.2 619.7s.8.4 1.5 1.5c.8.8 1.9 2.3 2.6 3.4.8 1.1 1.5 2.6 1.9 3.8.4 1.1.4 1.9.4 1.9 0 1.1-.8 2.3-1.9 2.3-.4 0-1.1 0-1.5-.4 0 0-.8-.4-1.5-1.5-.8-.8-1.9-2.3-2.6-3.4-.8-1.5-1.5-2.6-1.9-3.8-.4-1.1-.8-1.9-.8-1.9-.4-1.1.4-2.3 1.5-2.3 1.2 0 2 0 2.3.4z"/></g><g><path class="st13" d="M887.3 334.9s0 2.6.4 7.6c0 2.3 0 5.3.4 8.7V356.5c.4 1.5.8 3 1.1 4.5 1.5 3.4 3.8 6.4 7.2 8.3 1.9 1.1 3.8 1.5 5.7 1.9 2.3.4 4.9.8 7.6 1.5 10.2 2.3 21.2 5.3 31.8 9.8 10.6 4.2 20.4 9.5 29.1 15.5 8.7 5.7 16.3 12.5 22.3 18.1 6 6 10.6 11.3 13.2 15.5 1.5 1.9 2.6 3.4 3.4 4.5.8 1.1 1.1 1.5 1.1 1.5.8 1.1.4 2.6-.8 3.4-1.1.8-2.6.4-3.4-.4 0 0-1.5-2.3-4.9-5.7-3-3.8-7.6-8.7-13.6-14-6-5.7-13.2-11.3-21.9-17-8.3-5.7-18.1-10.6-28-14.7-9.8-4.2-20.4-7.6-30.2-9.5-2.6-.4-4.9-1.1-7.2-1.5-3-.4-5.7-1.5-7.9-3-4.9-3-7.9-7.2-9.8-11.7-.8-2.3-1.5-4.5-1.5-6.8V353.6 351c0-3.4 0-6.4.4-8.7 0-4.9.4-7.6.4-7.6 0-1.5 1.1-2.6 2.6-2.3 1.4.3 2.5 1.4 2.5 2.5z"/></g></g><circle class="st2" cx="533.7" cy="388.9" r="6.1"/></svg> \ No newline at end of file
+<svg id="generatingCash-2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1495 856.6"><style>.st0{fill:#fff}.st1{fill:#BBC9D5}.st2{fill:#CCCED0}.st3{fill:#BBC9D5}.st4{fill:#6F93AD}.st5{fill:none}.st6{fill:#069e08}.st7{display:none;fill:#fff}.st8,.st9{fill:none;stroke:#CCCED0;stroke-width:7.5622;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st9{fill:#fff}.st10{fill:#CCCED0}.st11{fill:#005083}.st12{fill:#969CA1}.st13{fill:#204A69}.st14{fill:#6F93AD}.st15{fill:#BBC9D5}.st16,.st17{fill:none;stroke:#CCCED0;stroke-width:3.7811;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10}.st17{stroke:#969CA1;stroke-width:4.2772}</style><path class="st0" d="M401 688.9h683.1v167.8H401zM720.4 522.6c-18.8 15-23.3 34.3-23.3 34.3l-5.6 120.4h110.6l-24-120.4-57.7-34.3zM887.7 197.1c-45-5-85.2 36.7-91.9 57.1-5.8 17.8-20.8 74.9-10.2 107.9s.8 65 43.9 74.5 109.7 8.5 109.1-19.4c-.6-27.8-16.5-179.6-19.5-196.1s-4.2-21-31.4-24z"/><path class="st0" d="M1136.1 856.6c6.8-25 10.8-56.2 10.8-90.1 0-81.9-23.6-148.4-52.7-148.4s-52.7 66.4-52.7 148.4c0 33.9 4 65.1 10.8 90.1h83.8z"/><title>jetpack-generatingCash-2</title><path class="st1" d="M29.3 436.6z"/><circle class="st2" cx="533.9" cy="417.2" r="6.1"/><circle class="st2" cx="533.9" cy="443.6" r="6.1"/><circle class="st2" cx="533.9" cy="470" r="6.1"/><circle class="st2" cx="533.9" cy="274" r="6.1"/><circle class="st2" cx="533.9" cy="301.5" r="6.1"/><path class="st2" d="M535 230.5c15-.4 30.1-.8 45.2-.8l45.2-.1-2.1 1.5c2.4-8.9 3.3-18.6 2-27.6-1.2-9.1-5.6-17.7-13.1-22.8-3.6-2.6-7.9-4.3-12.3-5.4-4.5-1.1-9.2-1.9-13.6-1.7-2.2 0-4.3.4-6.3 1.1l-.4.1c-.3.1-.5.2-.8.2-.6.1-1.2.1-1.8 0-1.2-.2-2.3-.9-3-2-.3-.5-.6-1.2-.6-1.9l-.1-.9-.2-1.7c-.6-4.6-2-8.9-4-13-4.1-8.2-11.4-14.3-20.3-16.8-9-2.5-18.4-2.8-27.5-.8-18.3 3.9-33.7 17.7-42 34.2-.5 1-1.8 1.5-2.8.9-.3-.1-.5-.3-.7-.6-5-6.6-12.8-12.1-21.3-13.2-8.7-1.1-17.8-.1-25.8 3.6s-14.8 9.8-20 17.1c-5.2 7.3-9.2 15.5-11.6 24.2-.1.3-.4.5-.8.3-.2-.1-.4-.4-.4-.6 2.2-9 5.9-17.5 11-25.2 5.2-7.6 12.1-14.3 20.6-18.4s18.1-5.4 27.4-4.5c9.7 1.1 18.3 6.6 24.2 14.3l-3.6.3c4.7-9 11.1-16.4 18.6-22.9 7.5-6.4 16.6-11.2 26.2-13.4 9.7-2.2 19.9-2 29.6.7 4.8 1.5 9.5 3.7 13.5 7s7.2 7.3 9.5 11.9c2.3 4.5 3.8 9.4 4.6 14.4l.2 1.9.1.9v-.2c0-.1 0 0 0 0l.5-.2c2.5-.9 5.1-1.4 7.8-1.5 5.1-.2 10.1.6 14.9 1.9 4.8 1.2 9.7 3.2 13.9 6.2 8.6 5.9 13.5 16 14.8 25.9 1.4 10 .4 19.9-2.3 29.5-.2.9-1.1 1.5-2 1.5l-45.2-.4c-15-.1-30.1-.5-45.2-1.1-.5 0-.9-.4-.9-.9 0-.6.4-1 .9-1z"/><ellipse class="st3" cx="655.8" cy="144.3" rx="64.6" ry="64.5"/><path class="st4" d="M616.6 94.6c-12.1 10.6-20.1 25.2-22.3 40.7-2.1 15.5 1.4 31.6 10.3 44.5 8.9 12.9 22.4 22 37.7 25.3 15.1 3.3 31.4.7 44.7-7.2 13.3-7.9 23.6-20.8 27.9-35.7 4.5-15 2.9-31.2-4.2-45.2-7.2-14-19.3-24.7-34.1-30.1-7.3-2.7-15-3.9-23-4-4 0-8 0-11.7.6s-7.4 2-10.9 3.8h-.1c-.8.4-1.8.1-2.2-.7-.2-.5-.2-1.1.1-1.6 3.6-5.6 7.2-11.2 11-16.7.2-.3.6-.4.9-.1.2.2.3.5.2.8-3 6-6.1 11.9-9.3 17.7l-2.3-2.3c3.6-2.1 7.5-4 11.7-4.9s8.4-1.2 12.5-1.2c8.3-.1 16.8.8 24.8 3.6 33.6 11.8 52.1 47.7 42.3 82-4.7 16.4-15.8 30.8-30.5 39.3-14.7 8.7-32.6 11.4-49.2 7.6-16.7-3.8-31.4-13.8-41-28-9.6-14.2-13.4-31.5-10.4-48.3 2.7-16.7 12.7-31.8 26.2-41 .3-.2.7-.1.9.2.3.3.2.7 0 .9z"/><path class="st3" d="M641 127l16.7 20.9-32.5 28.7"/><path class="st4" d="M642.4 125.9c2.4 1 3.4 3 4.9 4.7l4.3 5.2c2.8 3.5 5.8 6.9 8.5 10.4 1 1.3.8 3.1-.3 4.1-5.4 4.8-10.9 9.5-16.5 14.2-5.5 4.7-11 9.4-17.5 12.9-.4.2-1 .1-1.2-.3-.1-.3-.1-.7 0-1 4.3-6 9.6-10.9 15-15.7s10.7-9.7 16.1-14.5l-.3 4.1c-2.8-3.5-5.5-7.1-8.3-10.6l-4.1-5.3c-1.3-1.9-3-3.3-3.5-5.8-.2-1.1.5-2.2 1.7-2.4.4-.2.8-.2 1.2 0z"/><path class="st5" d="M630.2 85.8l17.1 9.9"/><path class="st4" d="M630.6 85.3c2.5-1.1 3.8-.1 5.3.5s3 1.4 4.4 2.2c1.4.9 2.8 1.7 4.1 2.7 1.3 1 2.8 1.7 3.2 4.4 0 .5-.2 1-.7 1.2-2.5 1.1-3.8.1-5.3-.5s-3-1.4-4.4-2.2c-1.4-.9-2.8-1.7-4.1-2.7-1.3-1-2.8-1.7-3.2-4.4-.1-.6.2-1 .7-1.2z"/><circle class="st4" cx="655.8" cy="106.2" r="3.2"/><circle class="st4" cx="655.8" cy="189.2" r="3.2"/><circle class="st4" cx="698.6" cy="146.4" r="3.2"/><circle class="st4" cx="612.9" cy="146.4" r="3.2"/><path class="st5" d="M395.4 181.4c-19.7 0-34.1.1-34.1.1s-9.3-30.3 15.3-36.7c7.3-1.9 11.7-1.2 13.8-.2.7.3 1.5 0 1.9-.7 0-.1.1-.2.1-.4.5-6.1 4-22.7 26.2-22.7 24.4 0 35.2 23 35.2 23s5.4-7.9 15.1-8.7c10.5-.8 18.1 2.9 23.5 8"/><path class="st2" d="M395.4 182.3c-5.7.5-11.4.9-17 1l-17 .3c-.9 0-1.8-.6-2-1.5-1.8-6.1-2.3-12.5-1.5-18.8.8-6.3 4-12.9 9.5-16.7 2.7-1.9 5.7-3.2 9-4 3.1-.9 6.4-1.3 9.6-1.2 1.8 0 3.5.4 5.1 1l.3.1h-.4c-.2 0-.4.2-.6.4-.1.1-.1.3-.1.5v-.5l.1-1.2c.4-3.2 1.5-6.4 2.9-9.3 3-6 8.4-10.4 14.9-12.1 6.2-1.7 12.6-1.8 18.9-.4 12.6 2.9 22.4 12.1 28.6 23.1l-3.6-.3c2.4-3.2 5.6-5.7 9.3-7.3 3.6-1.7 7.7-2.2 11.5-1.9 7.6.4 15 3.8 20.1 9.3.2.2.2.6 0 .8-.2.2-.6.2-.8 0-5.4-4.6-12.3-7.1-19.3-6.9-3.5.1-6.8.5-9.7 2.1-2.9 1.5-5.5 3.7-7.4 6.3v.1c-.7.9-2 1.1-2.9.4-.2-.2-.4-.4-.6-.7-4.9-10.2-14.6-18.7-25.7-21-5.6-1.2-11.3-1-16.8.5-5.3 1.5-9.7 5.2-12.1 10.1-1.2 2.5-2.1 5.1-2.4 7.9l-.1 1v.5c0 .5-.2 1.1-.5 1.5-.5.8-1.5 1.4-2.4 1.6-.5.1-.9.1-1.4 0-.2 0-.4-.1-.7-.2l-.2-.1c-1.2-.4-2.4-.6-3.7-.6-5.3 0-11.4 1.3-15.7 4.3-4.4 3-7.1 8.1-7.8 13.7-.8 5.6-.2 11.5 1.2 16.9l-2.1-1.5 17 .2c5.7.1 11.4.4 17 .9.5 0 .9.5.8 1-.5.3-.9.7-1.3.7z"/><path class="st5" d="M535 231.4c48.3.1 90.3.3 90.3.3s14.8-48.4-24.5-58.6c-11.8-3-18.6-1.9-22.1-.4-1.4.6-3-.2-3.1-1.7-.8-9.7-6.4-36.3-41.9-36.3-39.1 0-56.2 36.7-56.2 36.7s-8.7-12.7-24.1-13.9c-45.6-3.7-56.8 46.7-56.8 46.7"/><path class="st2" d="M391.6 230.8c4.2-1 7.5-1.2 11.3-1.4l11-.4c3.7-.2 7.3.3 11 .3 3.7-.6 7.3.4 11 1.2.3.1.5.4.4.7 0 .2-.2.4-.4.4-3.7.8-7.3 1.9-11 1.3-3.7 0-7.3.6-11 .4l-11-.2c-3.6 0-7.2-.3-10.8-.8l-.5-.1c-.4-.1-.7-.5-.7-1 .1-.1.3-.3.7-.4z"/><ellipse class="st3" cx="485.4" cy="237.3" rx="38" ry="37.9"/><path class="st5" d="M485.4 216.8v41.1"/><path class="st4" d="M486.1 216.8c2.2 3.4 2 6.9 2.2 10.3a177.08 177.08 0 0 1 0 20.6c-.1 3.4 0 6.9-2.2 10.3h-1.4c-2.2-3.4-2-6.9-2.2-10.3a177.08 177.08 0 0 1 0-20.6c.1-3.4 0-6.9 2.2-10.3h1.4z"/><path class="st5" d="M506 237.3h-41.2"/><path class="st4" d="M506 238c-3.4 2.2-6.9 2-10.3 2.2s-6.9.3-10.3.3-6.9-.1-10.3-.3-6.9 0-10.3-2.2v-1.4c3.4-2.2 6.9-2 10.3-2.2a177.08 177.08 0 0 1 20.6 0c3.4.2 6.9 0 10.3 2.2v1.4z"/><path class="st3" d="M510.5 8.6s-14.2 17.6-38.8 15.5c0 0-13.1 70.4 40.4 85.5 0 0 52.1-7.2 41.7-85.5 0 0-29.5 2.3-43.3-15.5z"/><path class="st6" d="M510.8 109.6s53.7-7.2 43.3-85.5c0 0-29.8.7-43.5-17.1 0 0-15.6 19.2-40.1 17.1-.1 0-13.2 70.4 40.3 85.5"/><path class="st6" d="M494.8 62.9l13.8 10.9 28-31.6"/><path class="st0" d="M495.6 61.9c1.7.2 2.6 1.4 3.9 2.3l3.5 2.7c2.3 1.8 4.7 3.5 7 5.4l-2.8.2 14.1-15.7c4.7-5.3 9.5-10.4 15-15 .2-.2.6-.2.9 0 .2.2.2.5 0 .7-3.8 6-8.4 11.4-13 16.7l-13.9 15.9c-.7.8-1.9.9-2.8.3-2.4-1.8-4.6-3.7-6.8-5.5l-3.4-2.8c-1.1-1-2.4-1.7-3-3.2-.3-.7 0-1.6.8-1.9 0-.1.3-.2.5-.1z"/><path class="st6" d="M533.9 323.3c-13 0-23.5 10.5-23.5 23.5s10.5 23.5 23.5 23.5 23.5-10.5 23.5-23.5-10.5-23.5-23.5-23.5zm-1.1 27.4H521l11.7-22.7v22.7zm2.3 14.9v-22.7h11.7l-11.7 22.7z"/><g id="Layer_1_2_"><path class="st7" d="M731.5 436.8c1.8 17.3 7.8 32.1-24.7 27.2v-18"/><path class="st8" d="M1049.4 680.8c9.9-38.8 26.3-64.1 44.8-64.1 30.2 0 54.8 68.4 54.8 152.4 0 31.1-3.4 60-9.1 84.2"/><path class="st9" d="M1046.5 483.9c-1.9 4.5.4 8.7 5.3 9.8l60.5 13.2c4.9 1.1 10.2-1.9 11.7-6 1.5-4.2-.4-8.7-5.3-9.8l-60.5-13.2c-4.5-1.2-9.8 1.9-11.7 6 0 0 1.9-4.1 0 0z"/><path class="st9" d="M1046.5 483.9c-1.9 4.5.4 8.7 5.3 9.8l60.5 13.2c4.9 1.1 10.2-1.9 11.7-6 1.5-4.2-.4-8.7-5.3-9.8l-60.5-13.2c-4.5-1.2-9.8 1.9-11.7 6 0 0 1.9-4.1 0 0z"/><path class="st9" d="M1050.3 657.9H834.4c-14.7 0-27.2-11.7-28-26.5l7.2-136.9c-.8-15.9 11.7-29.5 28-29.5h215.9c14.7 0 27.2 11.7 28 26.5l-7.2 136.9c.7 15.8-12.1 29.5-28 29.5z"/><path class="st10" d="M885.1 350.1V335c-19.3 3.4-36.3 4.9-51 0-15.2-5 23 15.5 51 15.1z"/><path class="st11" d="M834 281.3c-2.6 0-4.5-1.9-4.5-4.5v-7.2c0-2.6 1.9-4.5 4.5-4.5s4.5 1.9 4.5 4.5v7.2c.4 2.6-1.8 4.5-4.5 4.5z"/><path class="st12" d="M938 276.7c-2.3-24.2 6-35.5-6.4-70.3-7.9-21.9-45.8-47.3-84.7-37.8-42 5.7-59.7 43.9-59.7 86.6 0 57.1-34.8 55.6-34.8 95.7S780 397 780 397s13.6 2.3 27.6-1.5v-20c11-1.1 19.7-9.8 20.8-20.8l2.3-20c-23.4-4.2-29.9-74.5-29.9-74.5 45 3 54.8-30.2 65-49.9 3.8 7.2 12.9 18.1 24.6 26.5 25.7 19.3 23.4 54.4 12.9 74.5-10.2 18.9-21.6 21.2-21.6 21.2l.8 22.3c.4 9.8 7.9 18.1 17.8 19.7l4.9.8v20.8H926s20.4-10.2 30.2-38.9c11.3-29.4-16.7-65.7-18.2-80.5z"/><path class="st13" d="M803.8 259.3s0 3.4.4 9.5c.4 3 .4 6.4.8 10.6.4 1.9.4 4.2.8 6.4.4 2.3.8 4.5 1.1 7.2.4 2.6 1.1 4.9 1.9 7.6 1.1 2.6 1.5 5.3 3 7.9 2.3 5.3 5.7 10.2 10.2 14.4 4.5 4.2 10.2 7.2 16.3 8.7 6.4 1.5 12.9 2.6 19.7 2.6H862.8l5.3-.4c1.9 0 3.4-.4 4.9-.8s3-.4 4.5-.8c6.4-1.5 11.7-4.5 16.3-8.7 4.2-4.2 7.2-9.5 9.1-14.7 1.9-5.3 3-10.6 3.8-15.9.8-4.9 1.1-9.8 1.5-14 .4-4.2.4-7.9.4-11 0-6 .4-9.5.4-9.5 0-1.1.8-1.9 1.9-1.9s1.9.8 1.9 1.9v20.5c0 4.2-.4 9.1-1.1 14.4s-1.5 11-3.8 16.6c-1.9 6-5.3 12.1-10.2 17-4.9 4.9-11.7 8.7-18.5 10.2-1.5.8-3.4.8-5.3 1.1s-3.8.8-5.3.8l-5.3.4h-5.4c-7.2 0-14-1.1-21.2-3-6.8-1.9-13.2-5.3-18.5-9.8-4.9-4.5-8.7-10.6-11-16.3-1.5-2.6-1.9-5.7-3-8.3-.8-2.6-1.1-5.7-1.9-7.9-.4-2.6-.8-5.3-1.1-7.6-.4-2.3-.4-4.5-.8-6.8-.4-4.2-.4-7.9-.4-11v-9.5c0-1.1.8-1.9 1.9-1.9s1.9.9 1.9 2z"/><path class="st13" d="M862.8 265.4s.4 1.5.8 4.2c.4 2.3.8 5.7.8 8.7 0 3.4 0 6.4-.4 8.7-.4 2.3-.4 4.2-.4 4.2-.4 1.1-1.5 1.9-2.6 1.5-.8 0-1.5-.8-1.5-1.5 0 0-.4-1.5-.4-4.2-.4-2.3-.4-5.7-.4-8.7 0-3.4.4-6.4.8-8.7.4-2.3.8-4.2.8-4.2 0-.8 1.1-1.1 1.9-1.1-.2.3.2.7.6 1.1z"/><path class="st11" d="M887.3 281.3c-2.6 0-4.5-1.9-4.5-4.5v-7.2c0-2.6 1.9-4.5 4.5-4.5s4.5 1.9 4.5 4.5v7.2c.5 2.6-1.8 4.5-4.5 4.5z"/><path class="st13" d="M849.5 305.5s.4 0 1.1.4c.8 0 1.1.4 2.3.4 2.3.4 5.3.8 8.3.8s6 0 8.3-.4c1.1-.4 1.9-.4 2.3-.8.4-.4.8-.4.8-.4h.4c1.1-.4 1.9 0 2.3 1.1.4.8 0 1.5-.4 1.9l-1.1 1.1c-.8.4-1.9 1.1-3 1.5s-3 .8-4.5 1.1c-1.5.4-3.4.4-5.3.4-3.4 0-6.8-.8-9.5-1.9-.8-.4-1.1-.4-1.9-.8-.4-.4-1.1-.8-1.5-.8l-.8-.8c-.8-.8-.8-1.9-.4-2.6 1.1-.2 1.9-.6 2.6-.2zM875.6 245.3s0-.4.8-.8c.4-.4.8-.4 1.1-.8.4-.4.8-.4 1.5-.8 1.1-.4 2.3-.8 3.4-1.1 1.1-.4 2.6-.4 4.2-.4s2.6.4 4.2.4c1.1.4 2.3.8 3.4 1.1 1.9 1.1 3 2.3 3 2.3.8.8.8 1.9 0 2.6-.4.4-1.1.8-1.9.4h-.4s-.4 0-.8-.4c-.4 0-1.1-.4-1.9-.4-1.5-.4-3.8-.8-6-.8-2.3 0-4.5 0-6 .4h-1.5c-.4.4-.8.4-.8.4-1.1.4-2.3 0-2.6-1.1-.4.5-.1-.2.3-1zM843.1 248.4s-.4 0-.8-.4H840.9c-1.5 0-3.8-.4-6-.4s-4.5.4-6 .8c-.8 0-1.5.4-1.9.4-.4 0-.8.4-.8.4h-.4c-1.1.4-1.9-.4-2.3-1.5 0-.8 0-1.1.4-1.9 0 0 1.1-1.1 3-2.3 1.1-.4 2.3-.8 3.4-1.1s2.6-.4 4.2-.4c1.5 0 2.6 0 4.2.4 1.1.4 2.6.8 3.4 1.1.4 0 1.1.4 1.5.8.4.4.8.8 1.1.8l.8.8c.8.8.4 2.3-.4 2.6-.5.2-1.2.2-2-.1z"/><path class="st14" d="M1051.4 558.8s-14-159.9-142.5-183.4c0 0-20.8 29.9-52.9 29.9-32.1 0-48.4-29.9-48.4-29.9C679 415.9 685.8 561.1 685.8 561.1H766l-2.3 123.6h209.1l-5.7-124 84.3-1.9z"/><circle class="st15" cx="858.2" cy="430.6" r="4.9"/><path class="st0" d="M823.1 556.9h-12.9c-21.2 0-25.7-72.6-25.7-72.6h66.2s-8.3 72.6-27.6 72.6z"/><path class="st0" d="M985.3 693.4c-72.6 0-100.2-121.4-100.2-121.4s-12.9-2.3-25.7-10.6c-11.3-7.6-12.9-23.4-12.9-23.4s-17.4-1.5-32.1 2.3c-4.9 1.1-6.4-2.3-8.7-8.7s2.3-14.7 12.9-17c37.8-21.2 48-6.4 55.6 0 17 14.7 100.2 80.9 100.2 80.9"/><path class="st10" d="M835.2 307v-1.1c0-.7 0-1.5.4-2.3.4-.8.8-1.5 1.1-1.9l.8-.8 1.5.8v1.1c0 .7 0 1.5-.4 2.3s-.8 1.5-1.1 1.9l-.8.8-1.5-.8zM886.2 307.7l-.8-.8c-.4-.4-.8-1.1-1.1-1.9-.4-.8-.4-1.5-.4-2.3v-1.1l1.5-.8.8.8c.4.4.8 1.1 1.1 1.9.4.8.4 1.5.4 2.3v1.1l-1.5.8z"/><path class="st16" d="M893.4 595.1l34-31.8"/><path class="st15" d="M794.3 684.7H615.1V670h164.1c8.3 0 15.1 6.4 15.1 14.7z"/><path class="st15" d="M679.4 684.7H432.5l-21.9-158.1c-1.9-14.4 9.1-27.2 23.8-27.2h198.1c12.1 0 22.3 8.7 23.8 20.8l23.1 164.5z"/><path class="st10" d="M1015.1 683.2c11.7-1.9 23.1-2.3 34.8-2.3 11.7-.4 23.1-.4 34.8 0 2.3 0 4.2 1.9 3.8 4.2l-.4 25c0 4.2 0 8.3-.4 12.5-.4 4.2-.4 8.3-.8 12.5 0 1.5-1.5 2.3-2.6 2.3s-2.3-1.1-2.3-2.3c-.4-4.2-.8-8.3-.8-12.5-.4-4.2-.4-8.3-.4-12.5l-.4-25 4.2 4.2h-34.8c-11.7 0-23.1-.4-34.8-2.3-.8 0-1.5-1.1-1.1-1.9-.3-1.2.5-1.9 1.2-1.9z"/><path class="st0" d="M1003.4 690l27.6-25.7 7.2-17.4-23.1-14-35.1 6.4-5.7 52.6z"/><path class="st5" d="M402.6 734.6v-49.9h548.3"/><path class="st10" d="M401.1 734.6l-.8-25c-.4-8.3-.4-16.6-.4-25 0-1.5 1.1-3 2.6-3 22.7-.4 45.8-.8 68.4-.8l68.4-.4 136.9-.4 136.9.4 68.4.4 34.4.4 34.4.8c1.5 0 2.6 1.1 2.6 2.6s-1.1 2.3-2.6 2.6l-34.4.8-34.4.4-68.4.4-136.9.4-136.9-.4-68.4-.4c-22.7-.4-45.8-.4-68.4-.8l3-3c0 8.3-.4 16.6-.4 25l-.8 25c0 .8-.8 1.5-1.5 1.5-.9 0-1.7-.7-1.7-1.5z"/><path class="st13" d="M815.9 513s.8-.4 1.5-1.5c1.1-.8 2.6-2.3 4.9-3.4 1.1-.8 2.6-1.5 4.2-2.3 1.5-.8 3-1.5 4.9-2.3 3.4-1.5 7.9-2.3 12.9-2.6 4.9-.4 10.2 0 15.5 1.5 5.3 1.5 11 3.8 15.9 7.6 4.2 3.4 8.7 7.2 13.2 11s9.1 7.6 13.6 11.3c18.5 15.1 36.7 30.2 50.7 41.6 14 11.3 22.7 19.3 22.7 19.3 1.1 1.1 1.1 2.6 0 3.4-.8.8-2.3 1.1-3.4.4 0 0-9.8-6.8-23.8-17.8-7.2-5.3-15.1-12.1-24.2-18.9-8.7-6.8-18.1-14.4-27.2-21.9-4.5-3.8-9.1-7.6-13.6-11.3s-9.1-7.6-13.2-11c-3.8-3-8.3-5.3-12.9-6.4-4.5-1.1-9.1-1.9-13.2-1.9-4.2 0-7.9.4-11.3 1.1-3.4.8-6.4 1.5-8.7 2.6-2.3.8-4.2 1.9-5.7 2.3-1.1.4-1.9.8-1.9.8-.8.4-1.5 0-1.5-.8.2.4.2-.4.6-.8z"/><path class="st13" d="M811.3 537.6c1.1-.8 2.3-1.5 3.8-2.3 1.5-.8 3-1.1 4.5-1.9 3-1.1 6-1.5 9.1-1.9 3-.4 6.4 0 9.5.4 1.5.4 3 .4 4.5.8.8 0 1.5.4 2.3.4.8.4 1.5.4 2.3.8 1.5.4 2.3 1.5 2.3 3v.4c0 .8.4 1.9.4 3 .4 1.1.4 1.9.8 3 .8 1.9 1.5 3.8 2.3 5.7s1.9 3.4 3.4 4.9c.8.8 1.1 1.5 1.9 2.3.8.8 1.5 1.1 2.3 1.9 1.1.8 1.9 1.1 3 1.9.8.4 1.9 1.1 2.6 1.5 1.9 1.1 3.8 1.9 6 2.6 1.9.8 4.2 1.5 6 2.3 1.1.4 2.3.8 3 .8 1.1.4 2.3.4 3 .8 1.5.4 3 1.5 3.4 3 1.5 6.4 3.4 12.9 5.7 18.9 2.3 6.4 4.5 12.5 6.8 18.5 4.9 12.1 11 24.2 17.8 35.2 7.2 11 15.1 21.6 25 29.5 9.8 8.3 21.6 14 34 15.5 1.5 0 3 .4 4.5.4h4.9c3 0 6-.4 9.1-1.1 6-1.5 11.7-4.2 16.6-7.9 9.8-7.6 16.3-19.3 20-31.8 4.2-12.5 6.4-25.3 7.6-38.6.8-6.4 1.1-13.2 1.5-20 .4-6.8.4-13.2 0-20 0-.8.4-1.1 1.1-1.1.8 0 1.1.4 1.1 1.1 1.1 6.8 1.9 13.6 2.3 20.4.4 6.8.4 13.6 0 20.4-.8 13.6-2.6 27.2-6.8 40.5-2.3 6.4-4.9 13.2-8.7 19.3s-8.3 11.7-14 16.3c-5.7 4.5-12.5 7.6-19.7 9.5-3.4.8-7.2 1.1-10.6 1.5h-5.2c-1.9 0-3.4-.4-5.3-.4-7.2-.8-14-2.6-20.4-5.7-6.4-3-12.5-6.8-17.8-11.3-11-9.1-19.7-20-26.8-31.4-7.2-11.7-13.2-23.8-18.5-36.7-2.6-6.4-4.9-12.9-6.8-19.3-2.3-6.4-4.2-12.9-5.7-19.7l3.4 3c-1.5-.4-2.6-.4-3.8-.8-1.1-.4-2.3-.8-3.4-1.1-2.3-.8-4.5-1.5-6.8-2.6-2.3-.8-4.5-1.9-6.4-3-1.1-.4-2.3-1.1-3.4-1.9-1.1-.8-1.9-1.1-3-1.9-1.1-.8-2.3-1.5-3.4-2.6-1.1-.8-1.9-1.9-2.6-3-1.5-1.9-3-4.2-4.2-6.4s-2.3-4.5-2.6-7.2c-.4-1.1-.8-2.3-.8-3.8-.4-1.1-.4-2.3-.8-3.8l2.3 3.4c-.4 0-1.1-.4-1.9-.4l-1.9-.4c-1.1-.4-2.6-.4-4.2-.8-1.5 0-2.6-.4-4.2-.4h-4.2c-1.6 0-2.6 0-4.2.4s-2.6.4-4.2.8c-1.5.4-2.6.8-3.8.8-1.1.4-2.6.8-4.2 1.1-1.5.4-2.6-.4-3-1.9 1.7-1.4 2.5-2.5 3.2-2.9zM807.6 526.7s.8-.4 1.9-.8 3-1.1 5.3-1.9c2.3-.8 4.5-1.1 7.6-1.5 2.6-.4 5.7-.4 8.7-.4s6 .4 8.7.8 5.3 1.1 7.6 1.9c2.3.8 3.8 1.5 4.9 1.9 1.1.4 1.9.8 1.9.8 1.1.4 1.5 1.5 1.1 2.6-.4.8-1.1 1.1-2.3 1.1 0 0-.8 0-1.9-.4-1.1-.4-3-.8-4.9-1.1-4.2-.8-9.5-1.5-15.1-1.9-5.3-.4-11 .4-15.1 1.1-1.9.4-3.8.8-4.9 1.1s-1.9.4-1.9.4c-1.1.4-1.9-.4-2.3-1.5-.5-1.1-.1-1.9.7-2.2zM807.2 519.1s.8-.4 1.5-1.1c.4-.4 1.1-.8 2.3-1.1.8-.4 1.9-.8 3-1.1 2.3-.8 4.5-1.5 7.6-2.3 2.6-.4 5.7-.8 8.7-1.1 3 0 6 0 8.7.4 2.6.4 5.3.8 7.6 1.5s3.8 1.1 5.3 1.9c1.1.4 1.9.8 1.9.8 1.1.4 1.5 1.5 1.1 2.6-.4.8-1.1 1.1-2.3 1.1 0 0-.8 0-1.9-.4-1.1-.4-3-.4-4.9-.8s-4.5-.8-7.2-.8c-2.6-.4-5.3-.4-7.9-.4-5.7 0-11 1.1-14.7 1.9-.8.4-1.9.4-2.6.8-.8.4-1.5.4-1.9.8-1.1.4-1.9.8-1.9.8-1.1.4-1.9 0-2.6-1.1-.9-.9-.6-2 .2-2.4z"/><g><path class="st17" d="M834 288.1h-3.4c-8.7 0-16.3-6.4-16.6-14.7l-.4-4.2c-.4-6 4.9-11.3 11-11l13.2.4c7.6.4 13.6 6.4 13.2 13.6-.3 8.7-7.5 15.9-17 15.9zM886.6 290l3.4.4c8.7.8 16.6-5.3 17.8-13.6l.8-4.2c.8-6-3.8-11.3-10.2-11.7l-13.2-.4c-7.6-.4-14 5.3-14 12.5-.9 8.6 6.3 16.2 15.4 17zM850.7 265.8l20.4.3"/></g><g><path class="st13" d="M698.3 570.1s.8 1.1.8 2.6c.4 1.5 0 4.2 0 7.2 0 5.7 0 13.6-.4 21.2-.4 3.8-.4 7.6-.8 11.3-.4 3.8-.8 6.8-1.1 9.8-.4 3-1.1 5.3-1.5 6.8s-.8 2.6-.8 2.6c-.4.4-.8.8-1.5.4-.4 0-.4-.4-.4-.8 0 0-.4-1.1-.8-2.6-.4-1.9-.4-4.2-.4-7.2s.4-6.4.4-9.8c0-3.8.4-7.6.4-11.3.4-3.8.4-7.6.8-11.3 0-3.4.4-6.8.4-9.8s0-5.3.4-6.8.8-2.6.8-2.6c.8-1.1 1.9-1.5 3-.8.3.8.3.8.7 1.1z"/></g><g><path class="st13" d="M737.2 619.7s.8.4 1.5 1.5c.8.8 1.9 2.3 2.6 3.4.8 1.1 1.5 2.6 1.9 3.8.4 1.1.4 1.9.4 1.9 0 1.1-.8 2.3-1.9 2.3-.4 0-1.1 0-1.5-.4 0 0-.8-.4-1.5-1.5-.8-.8-1.9-2.3-2.6-3.4-.8-1.5-1.5-2.6-1.9-3.8-.4-1.1-.8-1.9-.8-1.9-.4-1.1.4-2.3 1.5-2.3 1.2 0 2 0 2.3.4z"/></g><g><path class="st13" d="M887.3 334.9s0 2.6.4 7.6c0 2.3 0 5.3.4 8.7V356.5c.4 1.5.8 3 1.1 4.5 1.5 3.4 3.8 6.4 7.2 8.3 1.9 1.1 3.8 1.5 5.7 1.9 2.3.4 4.9.8 7.6 1.5 10.2 2.3 21.2 5.3 31.8 9.8 10.6 4.2 20.4 9.5 29.1 15.5 8.7 5.7 16.3 12.5 22.3 18.1 6 6 10.6 11.3 13.2 15.5 1.5 1.9 2.6 3.4 3.4 4.5.8 1.1 1.1 1.5 1.1 1.5.8 1.1.4 2.6-.8 3.4-1.1.8-2.6.4-3.4-.4 0 0-1.5-2.3-4.9-5.7-3-3.8-7.6-8.7-13.6-14-6-5.7-13.2-11.3-21.9-17-8.3-5.7-18.1-10.6-28-14.7-9.8-4.2-20.4-7.6-30.2-9.5-2.6-.4-4.9-1.1-7.2-1.5-3-.4-5.7-1.5-7.9-3-4.9-3-7.9-7.2-9.8-11.7-.8-2.3-1.5-4.5-1.5-6.8V353.6 351c0-3.4 0-6.4.4-8.7 0-4.9.4-7.6.4-7.6 0-1.5 1.1-2.6 2.6-2.3 1.4.3 2.5 1.4 2.5 2.5z"/></g></g><circle class="st2" cx="533.7" cy="388.9" r="6.1"/></svg>
diff --git a/plugins/jetpack/images/generating-cash.svg b/plugins/jetpack/images/generating-cash.svg
new file mode 100644
index 00000000..63afb46f
--- /dev/null
+++ b/plugins/jetpack/images/generating-cash.svg
@@ -0,0 +1,397 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="generatingCash-2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
+ y="0px" viewBox="0 0 1495 856.6" style="enable-background:new 0 0 1495 856.6;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:#FFFFFF;}
+ .st1{fill:none;}
+ .st2{opacity:0.26;fill:#86A6BD;enable-background:new ;}
+ .st3{fill:#00A9DE;}
+ .st4{fill:#C2F4FF;}
+ .st5{fill:#0084C0;}
+ .st6{fill:#07A8DC;}
+ .st7{fill:#004F84;}
+ .st8{fill:#C7D6E1;}
+ .st9{fill:#005081;}
+ .st10{fill:#74DCFC;}
+ .st11{fill:#C8D7E2;}
+</style>
+<path class="st0" d="M770.5,755.5l-11.7-44.7l-19-73.3c0-0.2-0.1-0.3-0.1-0.5l-1.9-26.8l-1-13.4c-0.3-4.6-0.5-8.6-1.7-12.7
+ c-0.1-0.3-0.2-0.6-0.3-0.9c-2.6-4.8-5.2-9.6-7.8-14.4c-1.6-1.9-3.5-3.6-5.5-5.2c-3.3-2.5-7-4.4-11-5.4c-2-0.5-4-0.8-6-0.8h-41.6
+ h-0.5h-26.6h0h-2.4H631H483.4c-4.6-0.1-8.5,0-12.4,1.3c-3.9,1.3-7.4,3.4-10.3,6.3c-6.1,5.9-10.4,13.4-12.3,21.6
+ c-1,4.2-1.5,8.5-1.6,12.8l-0.9,13.4l-1.8,26.8c0,0.2,0,0.3-0.1,0.5l-29.4,116.2l177.4-0.6L770.5,755.5z M620.1,736.4
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C621.4,723.9,621,730.1,620.1,736.4z M620.1,706.9
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1V693v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C621.4,694.4,621,700.7,620.1,706.9z M620.1,677.5
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C621.4,665,621,671.3,620.1,677.5z M657,736.4
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C658.2,723.9,657.8,730.1,657,736.4z M657,706.9
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1V693v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C658.2,694.4,657.8,700.7,657,706.9z M657,677.5
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C658.2,665,657.8,671.3,657,677.5z M693.8,736.4
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C695.1,723.9,694.7,730.1,693.8,736.4z M693.8,706.9
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1V693v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C695.1,694.4,694.7,700.7,693.8,706.9z M693.8,677.5
+ c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1
+ c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C695.1,665,694.7,671.3,693.8,677.5z M475.6,639.7
+ c0-0.2,0.2-0.5,0.5-0.5v0c19.6-1.4,39.1-1.4,58.7-1.5l58.7-0.2l58.7,0.2c19.6,0.1,39.1,0.1,58.7,1.5c0.3,0,0.5,0.2,0.5,0.5
+ c0,0.2-0.2,0.5-0.5,0.5c-19.6,1.4-39.1,1.4-58.7,1.5l-58.7,0.2l-58.7-0.2c-19.6-0.1-39.1-0.1-58.7-1.5
+ C475.8,640.1,475.6,639.9,475.6,639.7z M509.6,736.4c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C510.8,723.9,510.4,730.1,509.6,736.4z M509.6,706.9c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1V693v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C510.8,694.4,510.4,700.7,509.6,706.9z M509.6,677.5c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C510.8,665,510.4,671.3,509.6,677.5z M546.4,736.4c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C547.7,723.9,547.3,730.1,546.4,736.4z M546.4,706.9c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1V693v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C547.7,694.4,547.3,700.7,546.4,706.9z M546.4,677.5c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4
+ c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3
+ C547.7,665,547.3,671.3,546.4,677.5z M563,693v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2
+ h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3c0.1,6.3-0.3,12.6-1.2,18.8c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.2V693
+ z M583.3,736.4c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3L563,727v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8
+ c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C584.5,723.9,584.1,730.1,583.3,736.4z
+ M583.3,677.5c-6.3,0.8-12.6,1.2-18.9,1.1c-0.7,0-1.3-0.6-1.3-1.3l-0.1-9.1v-4.6v-2.3v-1.4c0-0.3,0-0.5,0.1-0.8
+ c0.2-0.5,0.5-0.8,0.9-1.1c0.6-0.4,1.2-0.6,1.9-0.6h1.2h2.3h4.6l9.1,0.1c0.7,0,1.3,0.6,1.3,1.3C584.5,665,584.1,671.3,583.3,677.5z"
+ />
+<title>jetpack-generatingCash-2</title>
+<path class="st1" d="M876.9,732.7c-1.1,0.1-2.2,0.2-3.3,0.2c-41,0-90.4-64.7-131.2-135.9l1,13l1.9,26.5l18.3,73.2l11.3,45.9l4.9,0
+ c1.6,0,2.9,1.3,2.9,2.9c0.1,15.7-0.3,31.4-0.5,46.9c-0.1,7.8-0.5,15.5-0.8,23.1l-0.6,11.2l-0.6,8.8l97.9,0.1
+ C876.7,807.6,876,765,876.9,732.7z"/>
+<path class="st1" d="M898.9,330L897,332c0.7-0.2,1.4-0.3,2-0.4L898.9,330z"/>
+<g>
+ <path class="st2" d="M708.5,576.2c-0.1-1.3-1.6-2.3-3.5-2.3H549.3l1.1,45.1l-0.1,4.8h155.9c1.2,0,2.4-0.3,3.4-1
+ c0.8-0.5,1.3-1.4,1.3-2.3L708.5,576.2z"/>
+ <path class="st2" d="M524,573.9h-45.4l-2.6,45.1l0,4.8h45.5c1.2,0,2.4-0.3,3.4-1c0.8-0.5,1.3-1.4,1.3-2.3l1.3-44.4
+ C527.5,574.9,525.9,573.9,524,573.9z"/>
+</g>
+<path class="st3" d="M462.3,173.7l13-0.1l4.2,12.5c0.4,1.2,1.7,1.8,2.8,1.4c0.7-0.2,1.2-0.8,1.4-1.4l4.1-12.5l12.6-0.1
+ c1.2,0,2.3-1,2.3-2.2c0-0.8-0.4-1.5-1-1.9l-10.2-6.9l4.4-13.2c0.4-1.2-0.2-2.5-1.4-2.8c-0.7-0.2-1.5-0.1-2.1,0.3l-11,8.3l-11-8.2
+ c-1-0.7-2.4-0.5-3.2,0.4c-0.4,0.6-0.6,1.4-0.3,2.1l4.4,12.9l-10.4,7.3c-1,0.7-1.3,2.1-0.6,3.1C460.8,173.3,461.5,173.7,462.3,173.7z
+ "/>
+<circle class="st4" cx="573.7" cy="146.2" r="12"/>
+<path class="st3" d="M622.3,69.6l4.2,9l0.8-0.4c1.6-3.3,0.3-5.3-0.4-7.5c-0.3-1-0.7-1.9-1.1-2.9C624.7,68.5,623.5,69.1,622.3,69.6
+ C622.3,69.6,622.3,69.6,622.3,69.6z"/>
+<path class="st3" d="M614.7,53.3l4.2,9c0,0,0,0,0,0c1.2-0.6,2.4-1.1,3.6-1.5c-0.5-0.9-1-1.8-1.6-2.7c-1.2-2-2-4.2-5.5-5.1l-1.6,0.7
+ c-1.6,3.3-0.3,5.3,0.4,7.5c0.3,1,0.7,1.9,1.1,2.9c1.1-0.6,2.3-1.2,3.5-1.8L614.7,53.3z"/>
+<path class="st3" d="M618.8,71.2c0.5,0.9,1,1.8,1.5,2.7c1.2,2,2,4.2,5.5,5.1l0.8-0.4l-4.2-9C621.1,70.2,620,70.7,618.8,71.2z"/>
+<path class="st3" d="M615.9,72.2c1-0.3,1.9-0.7,2.9-1.1c-0.6-1.1-1.2-2.3-1.8-3.5l-9,4.2l9-4.2c0,0,0,0,0,0
+ c-0.6-1.2-1.1-2.4-1.5-3.6c-0.9,0.5-1.8,1-2.7,1.5c-2,1.2-4.2,2-5.1,5.5l0.7,1.6C611.6,74.2,613.6,73,615.9,72.2z"/>
+<path class="st3" d="M624.3,64.2l9-4.2L624.3,64.2c0.6,1.2,1.1,2.4,1.5,3.6c0.9-0.5,1.8-1,2.7-1.6c2-1.2,4.2-2,5.1-5.5l-0.7-1.6
+ c-3.3-1.6-5.3-0.3-7.5,0.4c-1,0.3-1.9,0.7-2.9,1.1C623.1,61.9,623.7,63,624.3,64.2C624.3,64.2,624.3,64.2,624.3,64.2z"/>
+<path class="st3" d="M620.6,66l-3.7,1.7c0.6,1.2,1.2,2.3,1.8,3.5c1.2-0.5,2.4-1,3.6-1.5L620.6,66z"/>
+<path class="st3" d="M617,67.7l3.7-1.7l-1.7-3.7c-1.2,0.6-2.3,1.2-3.5,1.8C615.9,65.3,616.4,66.5,617,67.7
+ C617,67.7,617,67.7,617,67.7z"/>
+<path class="st3" d="M618.9,62.3l1.7,3.7l3.7-1.7c0,0,0,0,0,0c-0.6-1.2-1.2-2.3-1.8-3.5C621.3,61.2,620.1,61.7,618.9,62.3
+ C618.9,62.3,618.9,62.3,618.9,62.3z"/>
+<path class="st3" d="M620.6,66l1.7,3.7c0,0,0,0,0,0c1.2-0.6,2.3-1.2,3.5-1.8c-0.5-1.2-1-2.4-1.5-3.6L620.6,66z"/>
+<path class="st5" d="M431.9,190.5c4.8,0.9,9.6,2.3,14.1,4.2c4.5,1.8,8.6,4.3,12.2,7.4c3.3,3.1,5.8,7.1,8.2,11.7
+ c1.3,2.5,2.8,4.9,4.5,7.1c2,2.5,4.5,4.5,7.4,5.9c5.6,2.8,12,2.8,17.4,2.1s10.4-1.7,14.7-1.5s8.3,2.2,12.6,5.4l1.4-1
+ c-2-5.7-7-9.9-13-11c-6-1-11.5,0.2-16.4,0.6s-9.4,0.2-13.1-1.8c-3.6-1.7-5.9-5.4-8.5-9.8s-5.6-9.6-10.1-13.5
+ c-8.9-6.9-19.6-11-30.8-11.8c-5.5-0.2-11.3,0.6-16.1,3.4l0.5,1.6C422,189.2,427,189.6,431.9,190.5z"/>
+<path class="st3" d="M502,115.5h7.7l2.5,7.7c0.1,0.4,0.5,0.7,0.9,0.9c0.7,0.2,1.5-0.2,1.7-0.9l2.6-7.6h8c0.5,0,0.9-0.2,1.2-0.6
+ c0.4-0.6,0.3-1.5-0.4-1.9l-6.4-4.4l2.7-7.8c0.1-0.4,0.1-0.9-0.2-1.3c-0.5-0.6-1.3-0.7-1.9-0.3l-6.8,5l-6.7-5.1
+ c-0.4-0.3-0.8-0.4-1.3-0.2c-0.7,0.2-1.1,1-0.9,1.7l2.7,8.1l-6.2,4.2c-0.4,0.3-0.6,0.7-0.6,1.1C500.6,114.9,501.2,115.5,502,115.5z"
+ />
+<path class="st4" d="M553.5,20.2c-1,3.7-1.4,8.6,0.2,13c0.8,2.3,2.2,4.4,3.9,6.1c1.5,1.4,3.1,2.7,4.9,3.8c2.8,1.7,5.3,3.8,7.4,6.3
+ c1.9,2.6,3.3,5.6,4.3,8.7c1,3.2,1.7,6.5,2.1,9.9c0.5,3.4,0.6,6.9,0.4,10.4l1.6,0.7c2.5-3.2,4-7.1,4.1-11.2c0.2-4-0.2-8-1.3-11.8
+ c-1-4-2.7-7.8-4.9-11.2c-2.5-3.6-6-6.2-9-8.3s-5.1-3.8-5.9-6c-1-2.5-0.9-5.3-0.4-8.7s1.8-7.2,1.4-11.8c-0.2-2.3-1.1-4.5-2.5-6.3
+ c-1.3-1.7-3.1-3-5.1-3.7l-1.1,1.3c1.6,3.6,2.4,6.2,2.1,9C555.5,13.1,554.5,16.5,553.5,20.2z"/>
+<path class="st6" d="M1277.2,849.3c0,0,0-0.1,0-0.1c-18.6-57.3-40.3-93.8-55-143.4c-0.8-2.7-1.6-5.4-2.3-8.2c-0.3-1.2-0.6-2.4-1-3.6
+ c-0.4-1.5-0.8-3.1-1.2-4.6c-29.6-118,18.1-152.1-68.5-283.7c-1.4-2.1-2.8-4.2-4.2-6.3c-2.8,2.3-5.7,4.5-8.8,6.4
+ c-4.1,2.5-8.4,4.6-12.9,6.3c-36.6,13.6-82.7-2.2-116.7-39c-7.2-7.8-13.8-16.4-19.7-26c-5.9-9.6-10.7-19.4-14.4-29.3
+ c-18.1,2.2-38,6.3-60,12.5c19.5,0.4,43.3,13.2,53.1,69.6c0.2,0.9,0.3,1.8,0.5,2.7c16.1,99.3-22.8,312.3-82.6,328.9
+ c-2.1,0.6-4.3,1-6.6,1.2c-0.9,32.3-0.3,74.9,1.3,116"/>
+<path class="st3" d="M637.6,282.5c1.1,0.1,2.3,0.3,3.5,0.5l-20.5-58.3l0,0l-0.2-0.4l76.6-26.9l6.4,18.2l0,0l39.8,113.1l-31.9,11.2
+ c7.3,8.4,14.3,17.3,21.1,26.1l19.3-6.8c8.5-3,12.9-12.2,9.9-20.7l-52.9-150.3c-3-8.5-12.2-12.9-20.7-9.9l-72.5,25.5
+ c-8.5,3-12.9,12.2-9.9,20.7l21.1,60C629.8,282.9,633.5,282.2,637.6,282.5z"/>
+<path class="st3" d="M677.3,385.2c-2-11.1-3.1-23.6-0.5-33.2l-10.2,3.6l-18.1-51.4c-4.7-2.9-8.9-4.6-12.2-4.8c-0.2,0-0.4,0-0.6,0
+ l0,0c-0.9-0.1-1.9,0.2-2.4,1c-0.2,0.3-0.4,0.6-0.6,0.9l25.8,73.5C661.1,382.6,669.3,387,677.3,385.2z"/>
+<path class="st3" d="M715.5,371.9c-0.1-0.1-0.2-0.2-0.3-0.3c0.1,0.1,0.1,0.3,0.2,0.4L715.5,371.9z"/>
+<path class="st3" d="M644.5,292.8L641,283c-1.2-0.2-2.3-0.4-3.5-0.5c-4.1-0.3-7.8,0.3-11,1.9l2.8,8.1
+ C633.3,290.2,638.4,290.5,644.5,292.8z"/>
+<path class="st3" d="M702.6,342.9c7.2,8.3,14.4,17.1,21.3,26l8.4-3c-6.7-8.8-13.8-17.6-21.1-26.1L702.6,342.9z"/>
+<path class="st3" d="M715.2,371.5c0.1,0.1,0.2,0.2,0.3,0.3l8.4-3c-6.9-8.9-14.1-17.7-21.3-26l-2.7,1
+ C703.7,348.2,708.8,356.3,715.2,371.5z"/>
+<path class="st3" d="M633.2,300.4c0.6-0.8,1.5-1.1,2.4-1l0,0c0.2,0,0.4,0,0.6,0c3.3,0.3,7.5,2,12.2,4.8l-4-11.4
+ c-6.1-2.4-11.2-2.7-15-0.3l3.1,8.7C632.7,301,633,300.6,633.2,300.4z"/>
+<path class="st0" d="M635.9,537.6l-0.1,14.3h25.7c-0.4-5.3-0.8-10.5-1-15.5c-3,0.2-5.9,0.5-8.9,0.7
+ C646.3,537.5,641.1,537.6,635.9,537.6z"/>
+<path class="st0" d="M500.2,660.2h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1
+ c-0.7-5.6-1-11.3-1.1-16.9L500.2,660.2z"/>
+<path class="st0" d="M537.1,660.2h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L537.1,660.2z"/>
+<path class="st0" d="M573.9,660.2h-4.6H567H566c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1c-0.7-5.6-1-11.3-1.1-16.9
+ L573.9,660.2z"/>
+<path class="st0" d="M610.8,660.2h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1
+ c-0.7-5.6-1-11.3-1.1-16.9L610.8,660.2z"/>
+<path class="st0" d="M647.6,660.2H643h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1
+ c-0.7-5.6-1-11.3-1.1-16.9L647.6,660.2z"/>
+<path class="st0" d="M684.5,660.2h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.1
+ c-0.7-5.6-1-11.3-1.1-16.9L684.5,660.2z"/>
+<path class="st0" d="M500.2,689.6h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.5,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L500.2,689.6z"/>
+<path class="st0" d="M537.1,689.6h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.5,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L537.1,689.6z"/>
+<path class="st0" d="M582.8,706.5c-0.7-5.6-1.1-11.3-1.1-16.9l-7.8,0.1h-4.6H567H566c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8
+ C571.5,705.4,577.2,705.8,582.8,706.5L582.8,706.5z"/>
+<path class="st0" d="M618.6,689.6l-7.8,0.1h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.5,17,1.2l0,0
+ C619,700.9,618.6,695.2,618.6,689.6z"/>
+<path class="st0" d="M655.4,689.6l-7.8,0.1H643h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.5,17.1,1.2l0,0
+ C655.8,700.9,655.5,695.2,655.4,689.6z"/>
+<path class="st0" d="M684.5,689.6h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.5,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L684.5,689.6z"/>
+<path class="st0" d="M500.2,719.1h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L500.2,719.1z"/>
+<path class="st0" d="M537.1,719.1h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L537.1,719.1z"/>
+<path class="st0" d="M573.9,719.1h-4.6H567H566c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2
+ c-0.7-5.6-1.1-11.3-1.1-16.9L573.9,719.1z"/>
+<path class="st0" d="M610.8,719.1h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2
+ c-0.7-5.6-1.1-11.3-1.1-16.9L610.8,719.1z"/>
+<path class="st0" d="M647.6,719.1H643h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2
+ c-0.7-5.6-1.1-11.3-1.1-16.9L647.6,719.1z"/>
+<path class="st0" d="M684.5,719.1h-4.6h-2.3h-1.1c0,0,0,0-0.1,0v1v2.3v4.6l-0.1,7.8c5.7,0.1,11.4,0.4,17,1.2l0,0
+ c-0.7-5.6-1.1-11.3-1.1-16.9L684.5,719.1z"/>
+<path class="st0" d="M779,850.2l-0.6-10.7l-0.5-11.7c-0.2-7.7-0.5-15.3-0.6-22.8c0-3.5,0-7-0.1-10.5c0-0.9,0-1.7,0-2.6
+ c0-1.1,0-2.2,0-3.3c0-2.2,0-4.4,0-6.6c0-2.8,0-5.7,0-8.5c0-2.9,0-5.7,0.1-8.6c0-0.7,0-1.4,0-2l-0.5,0l-2.2,0l-2.2,0l-180.1-1.8
+ L413.9,759l-2.8,0l-2.9,0l-1.7,0c0,2.3-0.1,4.6-0.1,6.9c-0.1,3.9-0.1,7.8-0.2,11.7c-0.1,4-0.1,8-0.2,12c0,1.3,0,2.7-0.1,4
+ c-0.3,17.8-0.7,35.6-1.1,53.5c0,0.2,0,0.3,0,0.5l374,3.7l0.4,0L779,850.2z M527.1,798.3C527.1,798.3,527.1,798.3,527.1,798.3l0.1,0
+ c10.8-0.3,21.6-0.5,32.4-0.4l32.4,0.1l32.4,0.5c10.8,0.1,21.6,0.5,32.4,0.8l0.1,0c1,0,1.8,0.9,1.7,1.9c0,0,0,0,0,0
+ c-0.1,3.1-0.2,6.1-0.4,9.2c0,0.9-0.1,1.7-0.1,2.6c0,0.9-0.1,1.7-0.1,2.6c-0.2,3.1-0.3,6.1-0.5,9.2c-0.1,0.5-0.5,0.9-1,0.8
+ c-0.4,0-0.8-0.4-0.8-0.8c-0.1-3.1-0.2-6.1-0.3-9.2c0-0.9-0.1-1.8-0.1-2.6c0-0.9,0-1.7-0.1-2.6c-0.1-2.4-0.1-4.9-0.2-7.3
+ c-10.2,0.1-20.4,0.2-30.6,0.2l-32.4-0.1l-32.4-0.5c-10.3-0.1-20.5-0.5-30.8-0.9c-0.1,2.4-0.3,4.9-0.4,7.3c-0.1,0.9-0.1,1.8-0.2,2.7
+ c-0.1,0.9-0.1,1.8-0.2,2.8c-0.2,2-0.3,3.9-0.5,5.9c0,0.3-0.3,0.4-0.5,0.4c-0.2,0-0.4-0.2-0.4-0.4l0,0c-0.2-2-0.3-3.9-0.4-5.9
+ c-0.1-0.9-0.1-1.8-0.2-2.8c0-0.9-0.1-1.8-0.1-2.8c-0.1-3-0.3-6-0.4-9.1C525.5,799,526.2,798.3,527.1,798.3z"/>
+<path class="st0" d="M615,528.5c0.5,1.4,1.5,2.5,2.9,3c0.3,0.1,0.7,0.2,1,0.3c0.2,0,0.4,0,0.5,0h0.9h3.5c2.4,0,4.7,0,7.1,0.1
+ c0.9,0,1.7,0,2.6,0c0.8,0,1.7,0,2.5,0c5.2,0,10.4,0.1,15.6,0.4c2.9,0.2,5.8,0.4,8.8,0.7c0.7,0.1,1.4,0.1,2.1,0.2
+ c0.7,0.1,1.4,0.1,2.1,0.2c5,0.4,9.9,0.8,14.9,0.8v0c2.1,0,4.1-1,5.4-2.8c0.6-0.8,1-1.8,1.1-2.8c0.1-1.1,0-2.1-0.1-3.2l-1.1-13.9
+ c-0.2-2.3-0.3-4.6-0.3-6.9c-0.2-2.2,0.1-5.1-0.4-6.1c-0.5-1.4-1.6-2.5-3-3c-0.3-0.1-0.7-0.2-1.1-0.2c-0.2,0-0.4,0-0.6,0h-0.9H675
+ l-55.6,0.4c-1.4,0-2.7,0.6-3.6,1.7c-0.4,0.5-0.7,1.1-0.9,1.8c-0.1,0.9-0.2,1.8-0.1,2.7l-0.1,13.9v7
+ C614.8,524.7,614.6,527.7,615,528.5z"/>
+<polygon class="st0" points="668.5,285.9 682.7,281.1 680.4,274.6 666.3,279.7 "/>
+<path class="st0" d="M653.7,272.9c-0.5,0.2-1.1,0.2-1.5,0c1.2,2.5,2.3,4.7,3.3,6.9c2.2-0.9,4.4-1.7,6.6-2.5c0.2-0.2,0.4-0.4,0.7-0.6
+ c0,0,0.1,0,0.2-0.1l6.6-2.3l-2.2-6.4L653.7,272.9z"/>
+<polygon class="st0" points="667.4,263.9 665.1,257.5 652.1,262.1 654.3,268.3 "/>
+<path class="st0" d="M692.2,255.6c-0.6-1.3-1.2-2.5-1.8-3.7l1.2,3.5C691.8,255.5,692,255.6,692.2,255.6z"/>
+<path class="st0" d="M644.5,292.8l4,11.4l18.1,51.4l10.2-3.6c1.1-4.3,3-8.1,5.9-10.7c1.3-1.3,3-2.1,4.7-2.5c1.5-0.4,3.1-0.4,4.6,0
+ c1.4,0.3,4,0.9,7.9,5.2l2.7-1l8.7-3l31.9-11.2l-39.8-113.1l-76.6,26.9l-6.2-17.8l0,0L641,283L644.5,292.8z M685.3,312.3
+ c2.1-0.8,4.2-1.6,6.3-2.5c2.6-1,5.2-1.8,7.8-2.7s5.2-1.9,8.2-1.6l0.3,0.7c-2.1,2.1-4.8,3-7.3,4s-5.1,2-7.7,3
+ c-1.6,0.6-3.2,1.2-4.8,1.7c-1,0.3-2,0.6-3,1c-2.1,0.7-4.2,1.5-6.6,1.6c-0.5,0-1.1,0-1.6,0l-0.1-0.4l-0.1-0.4
+ c0.2-0.2,0.4-0.3,0.6-0.5c2-1.8,4.4-2.6,6.8-3.5C684.4,312.7,684.8,312.5,685.3,312.3z M688,324.9c-0.5,0.2-1.1,0.3-1.6,0.5
+ c-2.1,0.7-4.2,1.3-6.6,1.1l-0.3-0.7c1.3-1.3,2.8-2.2,4.4-2.8c1-0.4,1.9-0.8,2.9-1.2c1.9-0.7,3.8-1.5,5.7-2.2c0.7-0.3,1.3-0.5,2-0.8
+ c2.6-1,5.2-1.8,7.8-2.7s5.2-1.9,8.2-1.6l0.1,0.4l0.1,0.4c-2.1,2.1-4.8,3-7.3,4s-5.1,2-7.7,3c-0.1,0.1-0.3,0.1-0.4,0.2
+ C693,323.4,690.5,324.2,688,324.9z M713.6,295.4c-2.9,2.1-6.3,3.2-9.5,4.5l-9.8,3.7l-9.9,3.4c-1.2,0.4-2.4,0.8-3.6,1.2
+ c-2.1,0.7-4.3,1.2-6.6,1.4l-0.1-0.3l-0.1-0.3c1.5-1.1,3.1-1.9,4.8-2.6c1.6-0.7,3.1-1.2,4.7-1.9l9.8-3.7l9.9-3.4
+ c3.3-1.1,6.6-2.3,10.2-2.6L713.6,295.4z M648.8,259.1C648.8,259.1,648.8,259.1,648.8,259.1l20.1-7c6.7-2.3,13.4-4.7,20.2-6.7h0.2
+ c0.8-0.2,1.6,0.2,1.8,1c0,0,0,0,0,0c1.1,3.8,2,7.5,2.6,10.8l0.1,0.3c-0.1,0-0.2,0.1-0.3,0.1l2.6,7.5c2.4-0.8,4.7-1.5,7.1-2.2h0.2
+ c0.8-0.2,1.6,0.2,1.8,1c0,0,0,0,0,0c1.1,3.8,2,7.5,2.6,10.8l0.1,0.4c-3,1.5-6,2.8-9.2,3.9l-10.2,3.8l-20.7,7.6
+ c-1,0.4-2.2-0.1-2.6-1.2c0,0,0,0,0-0.1l-3-8.4c-2.3,0.8-4.7,1.5-7.1,2.2h-0.2c-0.8,0.2-1.6-0.2-1.8-1c0,0,0,0,0,0
+ c-1.1-3.8-2-7.5-2.6-10.8l-0.1-0.3c0.1,0,0.2-0.1,0.3-0.1l-3.2-9.1C647.2,260.6,647.8,259.5,648.8,259.1z"/>
+<polygon class="st7" points="703.4,215.6 703.4,215.6 697,197.4 620.4,224.3 620.5,224.7 697.2,197.8 "/>
+<rect x="621.4" y="210.7" transform="matrix(0.9434 -0.3317 0.3317 0.9434 -35.5405 232.0163)" class="st7" width="81.2" height="18.8"/>
+<g>
+ <path class="st8" d="M964.2,247.4c-13-3.8-24.2-11.1-33.4-20.6c-15.5-16-25.2-38.2-27.7-59.8c-1.2-10-0.9-20,1.1-29.1
+ c-42.7-2.9-64.3-47.2-65.6-93.3c-11.9,9.7-20.4,22.9-23.2,39.8c-4.3,26.2-18.8,40.8-29.4,51.4c-7.6,7.6-12.2,12.6-12.5,18
+ c-0.2,3.4,4.1,6.2,11.1,10.5c7.7,4.7,16.4,10.1,18.8,20.2c2.1,8.8,4.9,16.9,8.5,24.5c4.5-3.1,10-8,13-14.9
+ c1.8-4.3,6.8-6.3,11.1-4.4c4.3,1.8,6.3,6.8,4.4,11.1c-4.8,11.3-13.7,18.7-20.3,23.1c16.8,25.4,42.7,41.4,74.4,44.9
+ c2.5,0.3,5,0.5,7.6,0.6c13.4,0.7,18.7,0.7,30.2-2.3c0.5-0.1,1-0.2,1.6-0.2c4-0.2,7.7,2.5,8.6,6.5c0.1,0.3,0.1,0.7,0.2,1
+ c0.3,0.5,0.6,1,0.8,1.6l1.8,5.2l-4.9,4.7L898.9,330l0.1,1.6c3.4-0.7,6.9-1.1,10.6-1.3c0.9,0,1.9-0.1,2.8,0
+ c22-6.2,41.8-10.3,60-12.5C963.4,293.6,960.8,269.1,964.2,247.4z M832.6,137.5c0,4.2-3.4,7.6-7.6,7.6h0c-4.2,0-7.6-3.4-7.6-7.6
+ v-12.8c0-4.2,3.4-7.6,7.6-7.6h0c4.2,0,7.6,3.4,7.6,7.6V137.5z"/>
+ <path class="st8" d="M1320.2,604.1c-20.6-54.2-109.8-169.1-167.9-212c-2.3,2.6-4.8,5-7.4,7.2c1.4,2.1,2.8,4.2,4.2,6.3
+ c86.6,131.6,38.9,165.7,68.5,283.7c37.2-12.1,86.7-33.3,100.9-59.8C1323,621.2,1323.5,612.8,1320.2,604.1z"/>
+ <path class="st8" d="M948.4,399.8c-4.8-25.9-14.9-53.9-38-52.7c-3.5,0.2-6.9,0.7-10.1,1.5c-2.6,0.6-5.2,1.5-7.6,2.5
+ c-70.6,28.9-77.4,203.5-77.5,205.4c-0.2,4.7-3.9,8.8-8.7,8.2c-4.7-0.2-8.3-4.1-8.2-8.7c0,0,0,0,0,0c1-22.4,3.4-44.7,7.1-66.9
+ c-3.8-2.8-30.3-23.7-51.3-60.6c-10.1-17.8-23.9-37.8-38.6-56.6l-0.1,0c0.2,0.4,0.3,0.8,0.5,1.2c1.8,4.3-0.3,9.3-4.6,11
+ c-2.5,1.1-5.3,0.8-7.5-0.5c-1.5-0.9-2.8-2.3-3.5-4.1c-0.3-0.7-0.6-1.3-0.9-2c-2.2-5.1-4.6-10.1-7.2-14.9c-0.1,4.6,0.4,10.5,1.5,17
+ c0.8,5,1.9,10.3,3.3,15.7c0.6,2.5,1.3,5,2.1,7.5c1.4,4.5-1.1,9.2-5.6,10.6c-0.8,0.2-1.6,0.4-2.5,0.4l0,0.1c-3.7,0-7-2.4-8.1-6
+ c-1.4-4.5-3.8-13-5.6-22.6c-7.9,1.8-16.1-2.6-18.9-10.4l-25.8-73.5c-4.3,6.6-4.7,20.6-0.8,37.8c7.6,34.3,28.7,71.6,45.1,79.8
+ c2.1,1,3.6,2.9,4.3,5.1c24.5,78.8,137.2,304.5,196.5,291.5c0.4-0.1,0.9-0.2,1.3-0.3c43.1-12,87.2-206.1,70.4-309.9
+ C949.1,403.4,948.7,401.7,948.4,399.8z"/>
+</g>
+<g>
+ <path class="st9" d="M1336,598.1c-18.4-48.3-107.5-170.8-174.1-219.3c19.9-34.7,16.8-87-11.5-132.8c-9.6-15.7-21.9-29.7-36.2-41.4
+ c-12.3-9.8-20.5-23.9-22.9-39.4c-3.3-21.6-10.8-42.6-21.1-57.5c-14.3-20.7-38.8-36.7-64.3-43.3c-23.2-41.2-44.2-47.3-73.4-56
+ c-48-14.4-92.9,12.8-92.9,12.8c-0.1,0.7-0.2,1.4-0.2,2.1c-21.8,13.3-36.6,33.5-40.7,58.2c-3.4,20.9-14.7,32.2-24.7,42.2
+ c-8.6,8.7-16.8,16.9-17.4,29.1c-0.6,13.6,10.8,20.6,19.1,25.8c5.1,3.2,10.5,6.4,11.2,9.7c3.1,13.1,7.7,25.1,13.6,35.9
+ c0.2,0.3,0.4,0.7,0.6,1c17.2,30.9,45.1,51.5,79.9,58.5l11.5,49.5C844,348,820.3,413.7,808.9,470c-15.9-14.4-29.4-31.2-40.1-49.8
+ c-8.6-15.1-21.6-34.6-36.5-54.2l-8.4,3l-8.4,3c14.7,18.8,28.5,38.8,38.6,56.6c20.9,36.8,47.5,57.7,51.3,60.6
+ c-3.7,22.1-6,44.4-7.1,66.9c0,0,0,0,0,0c-0.2,4.7,3.5,8.6,8.2,8.7c4.8,0.6,8.6-3.5,8.7-8.2c0.1-1.9,6.9-176.5,77.5-205.4
+ c2.5-1,5-1.8,7.6-2.5c3.3-0.8,6.6-1.3,10.1-1.5c23.1-1.2,33.2,26.9,38,52.7c0.3,1.8,0.6,3.6,0.9,5.4
+ c16.8,103.9-27.3,297.9-70.4,309.9c-0.4,0.1-0.9,0.2-1.3,0.3c-59.4,12.9-172-212.7-196.5-291.5c-0.7-2.2-2.2-4-4.3-5.1
+ c-16.4-8.2-37.4-45.5-45.1-79.8c-3.8-17.2-3.5-31.1,0.8-37.8l-3.1-8.7l-2.8-8.1c-2.6,1.3-4.8,3.1-6.7,5.5
+ c-10.6,13.4-8.4,36.2-4.7,52.9c7.4,33.2,28.5,75.4,50.7,89.4c8.5,25.9,28.5,73.9,54.4,124c0.9,1.7,1.7,3.3,2.6,5
+ c1.3,2.5,2.7,5.1,4,7.7c2.6,4.8,5.2,9.6,7.8,14.4c1.5,2.7,3,5.4,4.5,8.1c1,1.9,2.1,3.7,3.2,5.6c40.8,71.2,90.2,135.9,131.2,135.9
+ c1.1,0,2.2-0.1,3.3-0.2c2.2-0.2,4.4-0.6,6.6-1.2c59.8-16.6,98.7-229.7,82.6-328.9c-0.1-0.9-0.3-1.8-0.5-2.7
+ c-9.8-56.4-33.7-69.2-53.1-69.6c-1,0-1.9,0-2.8,0c-3.6,0.2-7.2,0.6-10.6,1.3c-0.7,0.1-1.4,0.3-2,0.4l1.9-2.1l41.4-44.2l4.9-4.7
+ l-1.8-5.2c-0.2-0.6-0.5-1.1-0.8-1.6c0-0.3-0.1-0.7-0.2-1c-0.9-4-4.6-6.7-8.6-6.5c-0.5,0-1,0.1-1.6,0.2c-11.5,3-16.8,3-30.2,2.3
+ c-2.6-0.1-5.1-0.3-7.6-0.6c-31.7-3.5-57.6-19.5-74.4-44.9c6.7-4.3,15.5-11.8,20.3-23.1c1.8-4.3-0.2-9.3-4.4-11.1
+ c-4.3-1.8-9.3,0.2-11.1,4.4c-3,6.9-8.5,11.8-13,14.9c-3.5-7.6-6.4-15.8-8.5-24.5c-2.4-10.1-11.1-15.4-18.8-20.2
+ c-7-4.3-11.2-7.2-11.1-10.5c0.3-5.4,4.9-10.4,12.5-18c10.6-10.6,25.1-25.2,29.4-51.4c2.8-16.9,11.4-30,23.2-39.8
+ c1.3,46.1,22.8,90.4,65.6,93.3c-2,9.2-2.3,19.1-1.1,29.1c2.6,21.7,12.2,43.8,27.7,59.8c9.2,9.5,20.4,16.8,33.4,20.6
+ c-3.4,21.7-0.8,46.2,8.3,70.3c3.7,9.9,8.5,19.7,14.4,29.3c5.9,9.5,12.5,18.2,19.7,26c34,36.8,80.1,52.7,116.7,39
+ c4.4-1.7,8.7-3.7,12.9-6.3c3.1-1.9,6.1-4.1,8.8-6.4c2.6-2.2,5.1-4.7,7.4-7.2c58.1,42.9,147.3,157.8,167.9,212
+ c3.3,8.7,2.8,17-1.7,25.4c-14.1,26.5-63.7,47.7-100.9,59.8c0.4,1.5,0.8,3,1.2,4.6c0.3,1.2,0.6,2.4,1,3.6c0.8,2.8,1.5,5.5,2.3,8.2
+ c36.8-11.8,93.4-34.8,111.3-68.2C1340.2,624.7,1341.1,611.5,1336,598.1z"/>
+ <path class="st9" d="M825.1,117.2c-4.2,0-7.6,3.4-7.6,7.6v12.8c0,4.2,3.4,7.6,7.6,7.6h0c4.2,0,7.6-3.4,7.6-7.6v-12.8
+ C832.6,120.6,829.2,117.2,825.1,117.2L825.1,117.2z"/>
+ <path class="st9" d="M682.8,407.8c1.1,3.6,4.4,6,8.1,6l0-0.1c0.8,0,1.7-0.1,2.5-0.4c4.5-1.4,7-6.1,5.6-10.6c-0.8-2.5-1.5-5-2.1-7.5
+ c-1.4-5.4-2.5-10.7-3.3-15.7c-1-6.5-1.5-12.4-1.5-17c2.6,4.9,5.1,9.8,7.2,14.9c0.3,0.7,0.6,1.3,0.9,2c0.7,1.8,2,3.2,3.5,4.1
+ c2.2,1.3,5,1.6,7.5,0.5c4.3-1.8,6.4-6.7,4.6-11c-0.2-0.4-0.3-0.8-0.5-1.2c-0.1-0.1-0.1-0.3-0.2-0.4c-6.4-15.3-11.5-23.3-15.4-27.6
+ c-3.8-4.3-6.4-4.9-7.9-5.2c-1.5-0.3-3.1-0.3-4.6,0c-1.7,0.4-3.4,1.3-4.7,2.5c-2.9,2.7-4.8,6.4-5.9,10.7c-2.5,9.6-1.5,22.1,0.5,33.2
+ C679,394.8,681.4,403.3,682.8,407.8z"/>
+</g>
+<path class="st3" d="M694.3,303.5l9.8-3.7c3.3-1.3,6.6-2.3,9.5-4.5l-0.2-0.6c-3.6,0.2-6.9,1.5-10.2,2.6l-9.9,3.4l-9.8,3.7
+ c-1.6,0.6-3.2,1.2-4.7,1.9c0.3,0.3,0.7,0.6,1,0.9l33.8-12l-33.8,12c0.3,0.3,0.7,0.6,1.1,0.9c1.2-0.4,2.4-0.8,3.6-1.2L694.3,303.5z"
+ />
+<path class="st3" d="M678.7,306.3c-1.7,0.7-3.3,1.5-4.8,2.6l0.1,0.3l5.7-2C679.4,306.8,679.1,306.5,678.7,306.3z"/>
+<path class="st3" d="M674,309.2l0.1,0.3c2.3-0.1,4.5-0.7,6.6-1.4c-0.4-0.3-0.7-0.6-1.1-0.9L674,309.2z"/>
+<path class="st3" d="M707.8,306l-21.1,7.7c0.5,0.5,0.9,0.9,1.4,1.4c1.6-0.5,3.2-1.1,4.8-1.7c2.6-1,5.1-2,7.7-3s5.2-1.9,7.3-4
+ l-0.3-0.7c-3-0.2-5.6,0.8-8.2,1.6s-5.2,1.7-7.8,2.7c-2.1,0.8-4.2,1.6-6.3,2.5c0.5,0.4,0.9,0.9,1.4,1.3L707.8,306z"/>
+<path class="st3" d="M688.1,315c-0.5-0.5-0.9-0.9-1.4-1.4l-8.9,3.2c0.3,0.2,0.5,0.5,0.8,0.7c2.3-0.1,4.4-0.9,6.6-1.6
+ C686.1,315.7,687.1,315.3,688.1,315z"/>
+<path class="st3" d="M686.7,313.6c-0.5-0.4-0.9-0.9-1.4-1.3c-0.5,0.2-0.9,0.4-1.4,0.5c-2.3,0.9-4.7,1.7-6.8,3.5
+ c0.2,0.2,0.4,0.4,0.6,0.5L686.7,313.6z"/>
+<path class="st3" d="M676.7,317.2l0.1,0.4c0.6,0,1.1,0,1.6,0c-0.3-0.2-0.5-0.5-0.8-0.7L676.7,317.2z"/>
+<path class="st3" d="M677.2,316.4c-0.2,0.2-0.4,0.3-0.6,0.5l0.1,0.4l1-0.4C677.5,316.7,677.4,316.5,677.2,316.4z"/>
+<path class="st3" d="M710.8,314.9l-0.1-0.4c-3-0.2-5.6,0.8-8.2,1.6s-5.2,1.7-7.8,2.7c-0.7,0.3-1.3,0.5-2,0.8
+ c0.5,0.5,0.9,0.9,1.4,1.4L710.8,314.9z"/>
+<path class="st3" d="M695.4,322.5c0.1-0.1,0.3-0.1,0.4-0.2c2.6-1,5.1-2,7.7-3s5.2-1.9,7.3-4l-0.1-0.4L694,321
+ C694.5,321.5,695,322,695.4,322.5z"/>
+<path class="st3" d="M685.2,324.2l8.8-3.2c-0.5-0.5-0.9-0.9-1.4-1.4c-1.9,0.7-3.8,1.5-5.7,2.2c-1,0.4-2,0.7-2.9,1.2
+ C684.4,323.4,684.8,323.8,685.2,324.2z"/>
+<path class="st3" d="M695.4,322.5c-0.5-0.5-0.9-1-1.4-1.5l-8.8,3.2c0.4,0.4,0.8,0.8,1.2,1.3c0.5-0.2,1.1-0.4,1.6-0.5
+ C690.5,324.2,693,323.4,695.4,322.5z"/>
+<path class="st3" d="M679.7,326.2l5.5-2c-0.4-0.4-0.8-0.8-1.2-1.2c-1.6,0.7-3.1,1.5-4.4,2.8l0.3,0.7c2.4,0.2,4.5-0.4,6.6-1.1
+ c-0.4-0.4-0.8-0.8-1.2-1.3L679.7,326.2z"/>
+<path class="st4" d="M671.8,262.4l1.3-0.4l17.5-6.4c0.3-0.1,0.6-0.1,1-0.1l-1.2-3.5c-0.5-1.1-1-2.2-1.5-3.2
+ c-6.1,2.5-12.4,4.6-18.7,6.9l-5.1,1.8l2.3,6.4L671.8,262.4z"/>
+<path class="st4" d="M690.1,260.1l-17.5,5.9l-1.3,0.4l-3.9,1.4l2.2,6.4l13.5-4.7c0.1,0,0.3-0.1,0.4-0.1l8.8-3.1L690.1,260.1z"/>
+<path class="st4" d="M695.8,276.8c3.4-1.2,6.9-2.2,10.4-3l0.4,0c-1.3-2.7-2.5-5.1-3.6-7.5c-2.2,0.9-4.5,1.8-6.7,2.6
+ c-0.2,0.2-0.4,0.3-0.7,0.4c0,0,0,0,0,0l-12.8,4.4l-2.3,0.8l2.3,6.5l3.3-1.1L695.8,276.8z"/>
+<path class="st10" d="M707.9,274.7c-0.6-3.3-1.5-7.1-2.6-10.8c0,0,0,0,0,0c-0.2-0.8-1-1.2-1.8-1h-0.2c-2.4,0.7-4.7,1.4-7.1,2.2
+ l-2.6-7.5c0.1,0,0.2-0.1,0.3-0.1l-0.1-0.3c-0.6-3.3-1.5-7.1-2.6-10.8c0,0,0,0,0,0c-0.2-0.8-1-1.2-1.8-1h-0.2
+ c-6.8,2-13.5,4.4-20.2,6.7l-20.1,6.9c0,0,0,0,0,0c-1,0.4-1.6,1.5-1.2,2.6l3.2,9.1c-0.1,0-0.2,0.1-0.3,0.1l0.1,0.3
+ c0.6,3.3,1.5,7.1,2.6,10.8c0,0,0,0,0,0c0.2,0.8,1,1.2,1.8,1h0.2c2.4-0.7,4.7-1.4,7.1-2.2l3,8.4c0,0,0,0,0,0.1c0.4,1,1.5,1.6,2.6,1.2
+ l20.7-7.6l10.2-3.8c3.1-1.1,6.2-2.4,9.2-3.9L707.9,274.7z M665.1,257.5l5.1-1.8c6.2-2.3,12.5-4.4,18.7-6.9c0.5,1.1,1,2.1,1.5,3.2
+ c0.6,1.2,1.2,2.4,1.8,3.7c-0.2-0.1-0.4-0.1-0.6-0.1c-0.3,0-0.6,0-1,0.1l-17.5,6.4l-1.3,0.4l-4.5,1.5l-13.1,4.4l-2.2-6.2L665.1,257.5
+ z M652.2,272.8c0.5,0.2,1,0.2,1.5,0l13.6-5l3.9-1.4l1.3-0.4l17.5-5.9l2.2,6.2l-8.8,3.1c-0.1,0-0.3,0.1-0.4,0.1l-13.5,4.7l-6.6,2.3
+ c-0.1,0-0.1,0-0.2,0.1c-0.3,0.1-0.5,0.3-0.7,0.6c-2.2,0.8-4.4,1.7-6.6,2.5C654.5,277.5,653.4,275.3,652.2,272.8z M668.5,285.9
+ l-2.2-6.2l14.1-5.1l2.3-0.8l12.8-4.4c0,0,0,0,0,0c0.3-0.1,0.5-0.3,0.7-0.4c2.3-0.8,4.5-1.7,6.7-2.6c1.1,2.4,2.3,4.8,3.6,7.5l-0.4,0
+ c-3.5,0.8-7,1.8-10.4,3L686,280l-3.3,1.1L668.5,285.9z"/>
+<g>
+ <path class="st11" d="M509.4,657.4l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C510.8,658,510.2,657.4,509.4,657.4z M492.1,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.7-0.7-11.3-1.1-17-1.1L492.1,668.1z"/>
+ <path class="st11" d="M546.3,657.4l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C547.6,658,547,657.4,546.3,657.4z M529,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.6-0.7-11.3-1.1-17-1.1L529,668.1z"/>
+ <path class="st11" d="M583.1,657.4l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C584.5,658,583.9,657.4,583.1,657.4z M565.9,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.6-0.7-11.3-1.1-17-1.1L565.9,668.1z"/>
+ <path class="st11" d="M620,657.4l-9.1-0.1h-4.6H604h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C621.3,658,620.7,657.4,620,657.4z M602.7,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.7-0.7-11.3-1.1-17-1.1L602.7,668.1z"/>
+ <path class="st11" d="M656.8,657.4l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C658.2,658,657.6,657.4,656.8,657.4z M639.5,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.7-0.7-11.3-1.1-17-1.1L639.5,668.1z"/>
+ <path class="st11" d="M693.7,657.4l-9.1-0.1H680h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C695,658,694.4,657.4,693.7,657.4z M676.4,668.1v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.7-0.7-11.3-1.1-17-1.1L676.4,668.1z"/>
+ <path class="st11" d="M509.4,686.8l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C510.8,687.4,510.2,686.8,509.4,686.8z M492.1,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.7-0.7-11.3-1.1-17-1.2L492.1,697.5z"/>
+ <path class="st11" d="M546.3,686.8l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C547.6,687.4,547,686.8,546.3,686.8z M529,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.6-0.7-11.3-1.1-17-1.2L529,697.5z"/>
+ <path class="st11" d="M564.4,708.1c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3l-9.1-0.1h-4.6h-2.3
+ h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.2
+ C563.1,707.5,563.7,708.1,564.4,708.1z M565.9,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9v0
+ c-5.6-0.7-11.3-1.1-17-1.2L565.9,697.5z"/>
+ <path class="st11" d="M620,686.8l-9.1-0.1h-4.6H604h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C621.3,687.4,620.7,686.8,620,686.8z M602.7,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.7-0.7-11.3-1.1-17-1.2L602.7,697.5z"/>
+ <path class="st11" d="M656.8,686.8l-9.1-0.1h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C658.2,687.4,657.6,686.8,656.8,686.8z M639.5,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.7-0.7-11.4-1.1-17.1-1.2L639.5,697.5z"/>
+ <path class="st11" d="M693.7,686.8l-9.1-0.1H680h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1
+ c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8
+ C695,687.4,694.4,686.8,693.7,686.8z M676.4,697.5v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0
+ c-5.7-0.7-11.3-1.1-17-1.2L676.4,697.5z"/>
+ <path class="st11" d="M500.3,716.2h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4
+ v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3L500.3,716.2z
+ M492.1,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0c-5.7-0.7-11.3-1.1-17-1.2L492.1,726.9z
+ "/>
+ <path class="st11" d="M537.1,716.2h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4
+ v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3L537.1,716.2z
+ M529,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0c-5.6-0.7-11.3-1.1-17-1.2L529,726.9z"/>
+ <path class="st11" d="M564.4,737.5c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3l-9.1-0.1h-4.6h-2.3
+ h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4v2.3v4.6l0.1,9.1
+ C563.1,736.9,563.7,737.5,564.4,737.5z M565.9,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9
+ c-5.6-0.7-11.3-1.1-17-1.2L565.9,726.9z"/>
+ <path class="st11" d="M610.8,716.2h-4.6H604h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4
+ v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3L610.8,716.2z
+ M602.7,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9c-5.7-0.7-11.3-1.1-17-1.2L602.7,726.9z"/>
+ <path class="st11" d="M647.7,716.2h-4.6h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4
+ v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3L647.7,716.2z
+ M639.5,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9c-5.7-0.7-11.3-1.1-17-1.2L639.5,726.9z"/>
+ <path class="st11" d="M684.6,716.2H680h-2.3h-1.2c-0.7,0-1.4,0.2-1.9,0.6c-0.4,0.3-0.7,0.7-0.9,1.1c-0.1,0.3-0.1,0.5-0.1,0.8v1.4
+ v2.3v4.6l0.1,9.1c0,0.7,0.6,1.3,1.3,1.3c6.3,0.1,12.6-0.3,18.9-1.1c0.8-6.2,1.2-12.5,1.2-18.8c0-0.7-0.6-1.3-1.3-1.3L684.6,716.2z
+ M676.4,726.9v-4.6v-2.3v-1c0,0,0,0,0.1,0h1.1h2.3h4.6l7.8-0.1c0,5.7,0.4,11.3,1.1,16.9l0,0c-5.7-0.7-11.3-1.1-17-1.2L676.4,726.9z
+ "/>
+ <path class="st11" d="M711.3,639.7c0-0.3-0.2-0.5-0.5-0.5c-19.6-1.4-39.1-1.4-58.7-1.5l-58.7-0.2l-58.7,0.2
+ c-19.6,0.1-39.1,0.1-58.7,1.5v0c-0.2,0-0.5,0.2-0.5,0.5c0,0.3,0.2,0.5,0.5,0.5c19.6,1.4,39.1,1.4,58.7,1.5l58.7,0.2l58.7-0.2
+ c19.6-0.1,39.1-0.1,58.7-1.5C711.1,640.1,711.3,639.9,711.3,639.7z"/>
+ <path class="st11" d="M656.8,798.7L656.8,798.7c-10.9-0.2-21.7-0.5-32.5-0.5l-32.4-0.2l-32.4,0.2c-10.8,0-21.6,0.3-32.4,0.7H527
+ c0,0,0,0,0,0c-0.9,0-1.6,0.8-1.5,1.7c0.1,3,0.3,6,0.4,9.1c0.1,0.9,0.1,1.8,0.2,2.8c0.1,0.9,0.1,1.8,0.2,2.8c0.1,2,0.3,3.9,0.4,5.9
+ l0,0c0,0.2,0.2,0.4,0.4,0.4c0.3,0,0.5-0.1,0.5-0.4c0.2-2,0.3-3.9,0.4-5.9c0.1-0.9,0.1-1.8,0.2-2.8c0.1-0.9,0.1-1.8,0.2-2.8
+ c0.1-2.4,0.3-4.9,0.4-7.3c10.3,0.4,20.5,0.6,30.8,0.6l32.4,0.2l32.4-0.2c10.2,0,20.4-0.2,30.6-0.5c0.1,2.4,0.2,4.9,0.2,7.3
+ c0,0.9,0.1,1.7,0.1,2.6c0,0.9,0.1,1.8,0.1,2.6c0.1,3.1,0.3,6.1,0.4,9.2c0,0.4,0.4,0.8,0.8,0.8c0.5,0.1,1-0.3,1-0.8
+ c0.2-3.1,0.3-6.1,0.4-9.2c0-0.9,0.1-1.7,0.1-2.6c0-0.9,0.1-1.7,0.1-2.6c0.1-3.1,0.2-6.1,0.3-9.2c0,0,0,0,0,0
+ C658.6,799.5,657.8,798.7,656.8,798.7z"/>
+ <path class="st11" d="M458.3,264.1c4.9,3.1,10.2,5.2,15.9,6.4c1.4,0.4,2.9,0.6,4.3,0.8c1.6-0.1,3.4-0.8,5.7-2.8l1.3-3.2
+ c-0.3-3.1-1.1-4.9-2.2-6c-1.1-0.9-2.3-1.8-3.6-2.5c-4.9-3.1-10.2-5.2-15.9-6.4c-1.4-0.4-2.9-0.7-4.3-0.8c-1.6,0.1-3.4,0.8-5.7,2.8
+ l-0.6,1.6l-0.7,1.6c0.3,3.1,1.1,4.9,2.2,6C455.8,262.6,457,263.4,458.3,264.1z"/>
+ <path class="st11" d="M1493.8,851.3c-72.2-1.2-144.5-1.9-216.7-2.2c0,0,0,0.1,0,0.1c-122.6,1.8-265.8,0.5-398.8-0.7
+ c0-0.9-0.1,0.9-0.1,0l-97.9-0.1l0.6-8.8l0.6-11.2c0.3-7.6,0.6-15.3,0.8-23.1c0.2-15.6,0.6-31.3,0.5-46.9c0-1.6-1.3-2.9-2.9-2.9
+ l-4.9,0l-11.3-45.9l-18.3-73.2l-1.9-26.5l-1-13c-1.1-1.8-2.1-3.7-3.2-5.6c-1.5-2.7-3-5.4-4.5-8.1c0.1,0.3,0.2,0.6,0.3,0.9
+ c1.2,4.1,1.4,8.1,1.7,12.7l1,13.4l1.9,26.8c0,0.2,0,0.3,0.1,0.5l19,73.3l11.7,44.7l-178.6,0.2l-177.4,0.6L444,640.1
+ c0-0.2,0.1-0.3,0.1-0.5l1.8-26.8l0.9-13.4c0.1-4.3,0.7-8.6,1.6-12.8c1.9-8.2,6.2-15.8,12.3-21.6c2.9-2.8,6.5-5,10.3-6.3
+ c3.9-1.3,7.8-1.3,12.4-1.3H631h2.4h2.4h0h26.6h0.5h41.6c2,0,4,0.3,6,0.8c4,1,7.7,2.9,11,5.4c2,1.6,3.8,3.3,5.5,5.2
+ c-1.4-2.6-2.7-5.1-4-7.7c-0.9-1.7-1.7-3.3-2.6-5c-2.6-1.5-5.4-2.6-8.3-3.3c-2.4-0.6-4.8-1-7.3-1h-41.4c0.4-4.5,0.7-9.2,0.9-14
+ c0-0.6,0-1.2,0.1-1.8c5-0.4,10-0.7,15-0.7c2.6,0,5.1-1.2,6.8-3.2c0.9-1,1.5-2.2,1.8-3.4c0.3-1.2,0.5-2.5,0.5-3.7l1.1-13.9
+ c0.1-2.3,0.2-4.7,0.3-7v-3.5c0-0.6,0-1.3,0-1.9c-0.1-0.8-0.2-1.6-0.5-2.3c-1-3-3.4-5.5-6.4-6.6c-0.7-0.3-1.5-0.5-2.3-0.6
+ c-0.4-0.1-0.8-0.1-1.2-0.1h-0.9H675l-55.6-0.4c-3.3,0-6.5,1.6-8.6,4.2c-1,1.3-1.7,2.8-2.1,4.4c-0.2,1.4-0.3,2.8-0.2,4.3l0.1,13.9
+ l0.1,7v3.5c0,0.6,0,1.3,0.1,1.9c0.1,0.8,0.3,1.6,0.5,2.4c1.1,3.1,3.5,5.5,6.6,6.6c0.8,0.3,1.5,0.5,2.3,0.5c0.4,0.1,0.8,0.1,1.2,0.1
+ h0.9h3.5c2.4,0,4.8,0,7.1,0l0.1,14.3H483.4c-4.3-0.1-9.5-0.1-14.1,1.5c-4.7,1.5-8.9,4.1-12.4,7.5c-6.9,6.6-11.7,15.1-13.9,24.4
+ c-1,4.5-1.6,9.1-1.8,13.8l-0.9,13.4l-1.8,26.5l-29.7,117.4l-4.9,0c0,0,0,0,0,0c-1.1,0-2.1,1-2.1,2.1c0.1,8.1,0.2,16.2,0.2,24.3
+ l-0.8,3.2c-0.1,0.3-0.1,0.6-0.1,0.8c0.1,1.3,0.4,2.5,1,3.6c0.2,19.4,0.4,38.8,0.7,58.2l-27.6,0l-186.4,0.1
+ c-62.1,0.2-124.3-0.4-186.4,1.3l0,0c-1.4,0-2.5,1.1-2.5,2.5c0,1.4,1.1,2.5,2.5,2.5c62.1,1.7,124.3,1.1,186.4,1.3l186.4,0.1
+ l372.9,0.1l372.9-0.3c124.3,0,248.6-0.4,372.9-2.5c0.6-0.1,1.1-0.5,1.1-1.1C1495,852,1494.5,851.4,1493.8,851.3z M405.1,848.6
+ c0.3-17.8,0.5-35.6,0.7-53.5c0-1.3,0-2.7,0-4c0-4,0.1-8,0.1-12c0-3.9,0.1-7.8,0.1-11.7c0-2.3,0-4.6,0.1-6.9l1.7,0l2.9,0l2.8,0
+ l178.5,0.6l180.1,0.2l2.2,0l2.2,0l0.5,0c0,0.7,0,1.4,0,2c0,2.9,0,5.7,0,8.6c0,2.8,0,5.6,0.1,8.5c0,2.2,0.1,4.4,0.1,6.6
+ c0,1.1,0,2.2,0.1,3.3c0,0.9,0,1.7,0,2.6c0.1,3.5,0.1,7,0.2,10.5c0.1,7.5,0.5,15.1,0.8,22.8l0.6,11.7l0.7,10.7l0.1,1l-0.4,0
+ l-374-0.4C405.1,849,405.1,848.8,405.1,848.6z M623.7,531.8h-3.5h-0.9c-0.2,0-0.4,0-0.5,0c-0.3,0-0.7-0.1-1-0.3
+ c-1.4-0.5-2.4-1.6-2.9-3c-0.4-0.9-0.2-3.8-0.2-6v-7l0.1-13.9c-0.1-0.9,0-1.8,0.1-2.7c0.2-0.7,0.5-1.3,0.9-1.8
+ c0.9-1.1,2.2-1.7,3.6-1.7l55.6-0.4h3.5h0.9c0.2,0,0.4,0,0.6,0c0.4,0,0.7,0.1,1.1,0.2c1.4,0.5,2.5,1.6,3,3c0.5,1,0.2,3.9,0.4,6.1
+ c0,2.3,0.1,4.6,0.3,6.9l1.1,13.9c0.1,1.1,0.2,2.1,0.1,3.2c-0.1,1-0.5,2-1.1,2.8c-1.3,1.7-3.3,2.8-5.4,2.8v0c-5,0-9.9-0.3-14.9-0.8
+ c-0.7-0.1-1.4-0.1-2.1-0.2c-0.7-0.1-1.4-0.1-2.1-0.2c-2.9-0.3-5.8-0.5-8.8-0.7c-5.2-0.3-10.4-0.4-15.6-0.4c-0.8,0-1.7,0-2.5,0
+ c-0.9,0-1.7,0-2.6,0C628.5,531.8,626.1,531.8,623.7,531.8z M635.9,537.6c5.2,0,10.4-0.1,15.6-0.4c3-0.2,5.9-0.5,8.9-0.7
+ c0.2,5,0.6,10.1,1,15.5h-25.7L635.9,537.6z"/>
+</g>
+</svg>
diff --git a/plugins/jetpack/images/get-apps-google-play.png b/plugins/jetpack/images/get-apps-google-play.png
new file mode 100644
index 00000000..2a9b3478
--- /dev/null
+++ b/plugins/jetpack/images/get-apps-google-play.png
Binary files differ
diff --git a/plugins/jetpack/images/get-apps-ios-store.svg b/plugins/jetpack/images/get-apps-ios-store.svg
new file mode 100644
index 00000000..364664b7
--- /dev/null
+++ b/plugins/jetpack/images/get-apps-ios-store.svg
@@ -0,0 +1 @@
+<svg enable-background="new 0 0 135 40" height="40" viewBox="0 0 135 40" width="135" xmlns="http://www.w3.org/2000/svg"><path d="m130.197 40h-125.468c-2.607 0-4.729-2.128-4.729-4.733v-30.541c0-2.606 2.122-4.726 4.729-4.726h125.468c2.606 0 4.803 2.12 4.803 4.726v30.541c0 2.605-2.197 4.733-4.803 4.733z" fill="#a6a6a6"/><path d="m134.032 35.268c0 2.116-1.714 3.83-3.834 3.83h-125.469c-2.119 0-3.839-1.714-3.839-3.83v-30.543c0-2.115 1.72-3.835 3.839-3.835h125.468c2.121 0 3.834 1.72 3.834 3.835z"/><g fill="#fff"><path d="m30.128 19.784c-.029-3.223 2.639-4.791 2.761-4.864-1.511-2.203-3.853-2.504-4.676-2.528-1.967-.207-3.875 1.177-4.877 1.177-1.022 0-2.565-1.157-4.228-1.123-2.14.033-4.142 1.272-5.24 3.196-2.266 3.923-.576 9.688 1.595 12.859 1.086 1.553 2.355 3.287 4.016 3.226 1.625-.067 2.232-1.036 4.193-1.036 1.943 0 2.513 1.036 4.207.997 1.744-.028 2.842-1.56 3.89-3.127 1.255-1.78 1.759-3.533 1.779-3.623-.041-.014-3.387-1.291-3.42-5.154z"/><path d="m26.928 10.306c.874-1.093 1.472-2.58 1.306-4.089-1.265.056-2.847.875-3.758 1.944-.806.942-1.526 2.486-1.34 3.938 1.421.106 2.88-.717 3.792-1.793z"/><path d="m53.645 31.504h-2.271l-1.244-3.909h-4.324l-1.185 3.909h-2.211l4.284-13.308h2.646zm-3.89-5.549-1.125-3.475c-.119-.355-.342-1.191-.671-2.507h-.04c-.131.566-.342 1.402-.632 2.507l-1.105 3.475z"/><path d="m64.662 26.588c0 1.632-.441 2.922-1.323 3.869-.79.843-1.771 1.264-2.942 1.264-1.264 0-2.172-.454-2.725-1.362h-.04v5.055h-2.132v-10.347c0-1.026-.027-2.079-.079-3.159h1.875l.119 1.521h.04c.711-1.146 1.79-1.718 3.238-1.718 1.132 0 2.077.447 2.833 1.342.758.896 1.136 2.074 1.136 3.535zm-2.172.078c0-.934-.21-1.704-.632-2.31-.461-.632-1.08-.948-1.856-.948-.526 0-1.004.176-1.431.523-.428.35-.708.807-.839 1.373-.066.264-.099.48-.099.65v1.6c0 .698.214 1.287.642 1.768s.984.721 1.668.721c.803 0 1.428-.31 1.875-.928.448-.619.672-1.435.672-2.449z"/><path d="m75.699 26.588c0 1.632-.441 2.922-1.324 3.869-.789.843-1.77 1.264-2.941 1.264-1.264 0-2.172-.454-2.724-1.362h-.04v5.055h-2.132v-10.347c0-1.026-.027-2.079-.079-3.159h1.875l.119 1.521h.04c.71-1.146 1.789-1.718 3.238-1.718 1.131 0 2.076.447 2.834 1.342.755.896 1.134 2.074 1.134 3.535zm-2.172.078c0-.934-.211-1.704-.633-2.31-.461-.632-1.078-.948-1.855-.948-.527 0-1.004.176-1.432.523-.428.35-.707.807-.838 1.373-.065.264-.099.48-.099.65v1.6c0 .698.214 1.287.64 1.768.428.48.984.721 1.67.721.803 0 1.428-.31 1.875-.928.448-.619.672-1.435.672-2.449z"/><path d="m88.039 27.772c0 1.132-.393 2.053-1.182 2.764-.867.777-2.074 1.165-3.625 1.165-1.432 0-2.58-.276-3.449-.829l.494-1.777c.936.566 1.963.85 3.082.85.803 0 1.428-.182 1.877-.544.447-.362.67-.848.67-1.454 0-.54-.184-.995-.553-1.364-.367-.369-.98-.712-1.836-1.029-2.33-.869-3.494-2.142-3.494-3.816 0-1.094.408-1.991 1.225-2.689.814-.699 1.9-1.048 3.258-1.048 1.211 0 2.217.211 3.02.632l-.533 1.738c-.75-.408-1.598-.612-2.547-.612-.75 0-1.336.185-1.756.553-.355.329-.533.73-.533 1.205 0 .526.203.961.611 1.303.355.316 1 .658 1.936 1.027 1.145.461 1.986 1 2.527 1.618.539.616.808 1.387.808 2.307z"/><path d="m95.088 23.508h-2.35v4.659c0 1.185.414 1.777 1.244 1.777.381 0 .697-.033.947-.099l.059 1.619c-.42.157-.973.236-1.658.236-.842 0-1.5-.257-1.975-.77-.473-.514-.711-1.376-.711-2.587v-4.837h-1.4v-1.6h1.4v-1.757l2.094-.632v2.389h2.35z"/><path d="m105.691 26.627c0 1.475-.422 2.686-1.264 3.633-.883.975-2.055 1.461-3.516 1.461-1.408 0-2.529-.467-3.365-1.401s-1.254-2.113-1.254-3.534c0-1.487.43-2.705 1.293-3.652.861-.948 2.023-1.422 3.484-1.422 1.408 0 2.541.467 3.396 1.402.818.907 1.226 2.078 1.226 3.513zm-2.212.069c0-.885-.189-1.644-.572-2.277-.447-.766-1.086-1.148-1.914-1.148-.857 0-1.508.383-1.955 1.148-.383.634-.572 1.405-.572 2.317 0 .885.189 1.644.572 2.276.461.766 1.105 1.148 1.936 1.148.814 0 1.453-.39 1.914-1.168.393-.645.591-1.412.591-2.296z"/><path d="m112.621 23.783c-.211-.039-.436-.059-.672-.059-.75 0-1.33.283-1.738.85-.355.5-.533 1.132-.533 1.895v5.035h-2.131l.02-6.574c0-1.106-.027-2.113-.08-3.021h1.857l.078 1.836h.059c.225-.631.58-1.139 1.066-1.52.475-.343.988-.514 1.541-.514.197 0 .375.014.533.039z"/><path d="m122.156 26.252c0 .382-.025.704-.078.967h-6.396c.025.948.334 1.673.928 2.173.539.447 1.236.671 2.092.671.947 0 1.811-.151 2.588-.454l.334 1.48c-.908.396-1.98.593-3.217.593-1.488 0-2.656-.438-3.506-1.313-.848-.875-1.273-2.05-1.273-3.524 0-1.447.395-2.652 1.186-3.613.828-1.026 1.947-1.539 3.355-1.539 1.383 0 2.43.513 3.141 1.539.563.815.846 1.823.846 3.02zm-2.033-.553c.014-.632-.125-1.178-.414-1.639-.369-.593-.936-.889-1.699-.889-.697 0-1.264.289-1.697.869-.355.461-.566 1.014-.631 1.658h4.441z"/><path d="m49.05 10.009c0 1.177-.353 2.063-1.058 2.658-.653.549-1.581.824-2.783.824-.596 0-1.106-.026-1.533-.078v-6.431c.557-.09 1.157-.136 1.805-.136 1.145 0 2.008.249 2.59.747.652.563.979 1.368.979 2.416zm-1.105.029c0-.763-.202-1.348-.606-1.756-.404-.407-.994-.611-1.771-.611-.33 0-.611.022-.844.068v4.889c.129.02.365.029.708.029.802 0 1.421-.223 1.857-.669s.656-1.096.656-1.95z"/><path d="m54.909 11.037c0 .725-.207 1.319-.621 1.785-.434.479-1.009.718-1.727.718-.692 0-1.243-.229-1.654-.689-.41-.459-.615-1.038-.615-1.736 0-.73.211-1.329.635-1.794s.994-.698 1.712-.698c.692 0 1.248.229 1.669.688.4.446.601 1.022.601 1.726zm-1.087.034c0-.435-.094-.808-.281-1.119-.22-.376-.533-.564-.94-.564-.421 0-.741.188-.961.564-.188.311-.281.69-.281 1.138 0 .435.094.808.281 1.119.227.376.543.564.951.564.4 0 .714-.191.94-.574.194-.317.291-.693.291-1.128z"/><path d="m62.765 8.719-1.475 4.714h-.96l-.611-2.047c-.155-.511-.281-1.019-.379-1.523h-.019c-.091.518-.217 1.025-.379 1.523l-.649 2.047h-.971l-1.387-4.714h1.077l.533 2.241c.129.53.235 1.035.32 1.513h.019c.078-.394.207-.896.389-1.503l.669-2.25h.854l.641 2.202c.155.537.281 1.054.378 1.552h.029c.071-.485.178-1.002.32-1.552l.572-2.202h1.029z"/><path d="m68.198 13.433h-1.048v-2.7c0-.832-.316-1.248-.95-1.248-.311 0-.562.114-.757.343-.193.229-.291.499-.291.808v2.796h-1.048v-3.366c0-.414-.013-.863-.038-1.349h.921l.049.737h.029c.122-.229.304-.418.543-.569.284-.176.602-.265.95-.265.44 0 .806.142 1.097.427.362.349.543.87.543 1.562z"/><path d="m71.088 13.433h-1.047v-6.877h1.047z"/><path d="m77.258 11.037c0 .725-.207 1.319-.621 1.785-.434.479-1.01.718-1.727.718-.693 0-1.244-.229-1.654-.689-.41-.459-.615-1.038-.615-1.736 0-.73.211-1.329.635-1.794s.994-.698 1.711-.698c.693 0 1.248.229 1.67.688.4.446.601 1.022.601 1.726zm-1.088.034c0-.435-.094-.808-.281-1.119-.219-.376-.533-.564-.939-.564-.422 0-.742.188-.961.564-.188.311-.281.69-.281 1.138 0 .435.094.808.281 1.119.227.376.543.564.951.564.4 0 .713-.191.939-.574.195-.317.291-.693.291-1.128z"/><path d="m82.33 13.433h-.941l-.078-.543h-.029c-.322.433-.781.65-1.377.65-.445 0-.805-.143-1.076-.427-.246-.258-.369-.579-.369-.96 0-.576.24-1.015.723-1.319.482-.304 1.16-.453 2.033-.446v-.088c0-.621-.326-.931-.979-.931-.465 0-.875.117-1.229.349l-.213-.688c.438-.271.979-.407 1.617-.407 1.232 0 1.85.65 1.85 1.95v1.736c0 .471.023.846.068 1.124zm-1.088-1.62v-.727c-1.156-.02-1.734.297-1.734.95 0 .246.066.43.201.553s.307.184.512.184c.23 0 .445-.073.641-.218.197-.146.318-.331.363-.558.011-.051.017-.113.017-.184z"/><path d="m88.285 13.433h-.93l-.049-.757h-.029c-.297.576-.803.864-1.514.864-.568 0-1.041-.223-1.416-.669s-.562-1.025-.562-1.736c0-.763.203-1.381.611-1.853.395-.44.879-.66 1.455-.66.633 0 1.076.213 1.328.64h.02v-2.706h1.049v5.607c0 .459.012.882.037 1.27zm-1.086-1.988v-.786c0-.136-.01-.246-.029-.33-.059-.252-.186-.464-.379-.635-.195-.171-.43-.257-.701-.257-.391 0-.697.155-.922.466-.223.311-.336.708-.336 1.193 0 .466.107.844.322 1.135.227.31.533.465.916.465.344 0 .619-.129.828-.388.202-.239.301-.527.301-.863z"/><path d="m97.248 11.037c0 .725-.207 1.319-.621 1.785-.434.479-1.008.718-1.727.718-.691 0-1.242-.229-1.654-.689-.41-.459-.615-1.038-.615-1.736 0-.73.211-1.329.635-1.794s.994-.698 1.713-.698c.691 0 1.248.229 1.668.688.4.446.601 1.022.601 1.726zm-1.086.034c0-.435-.094-.808-.281-1.119-.221-.376-.533-.564-.941-.564-.42 0-.74.188-.961.564-.188.311-.281.69-.281 1.138 0 .435.094.808.281 1.119.227.376.543.564.951.564.4 0 .715-.191.941-.574.193-.317.291-.693.291-1.128z"/><path d="m102.883 13.433h-1.047v-2.7c0-.832-.316-1.248-.951-1.248-.311 0-.562.114-.756.343s-.291.499-.291.808v2.796h-1.049v-3.366c0-.414-.012-.863-.037-1.349h.92l.049.737h.029c.123-.229.305-.418.543-.569.285-.176.602-.265.951-.265.439 0 .805.142 1.096.427.363.349.543.87.543 1.562z"/><path d="m109.936 9.504h-1.154v2.29c0 .582.205.873.611.873.188 0 .344-.016.467-.049l.027.795c-.207.078-.479.117-.814.117-.414 0-.736-.126-.969-.378-.234-.252-.35-.676-.35-1.271v-2.377h-.689v-.785h.689v-.864l1.027-.31v1.173h1.154v.786z"/><path d="m115.484 13.433h-1.049v-2.68c0-.845-.316-1.268-.949-1.268-.486 0-.818.245-1 .735-.031.103-.049.229-.049.377v2.835h-1.047v-6.876h1.047v2.841h.02c.33-.517.803-.775 1.416-.775.434 0 .793.142 1.078.427.355.355.533.883.533 1.581z"/><path d="m121.207 10.853c0 .188-.014.346-.039.475h-3.143c.014.466.164.821.455 1.067.266.22.609.33 1.029.33.465 0 .889-.074 1.271-.223l.164.728c-.447.194-.973.291-1.582.291-.73 0-1.305-.215-1.721-.645-.418-.43-.625-1.007-.625-1.731 0-.711.193-1.303.582-1.775.406-.504.955-.756 1.648-.756.678 0 1.193.252 1.541.756.281.4.42.895.42 1.483zm-1-.271c.008-.311-.061-.579-.203-.805-.182-.291-.459-.437-.834-.437-.342 0-.621.142-.834.427-.174.227-.277.498-.311.815z"/></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/green-star.svg b/plugins/jetpack/images/green-star.svg
index 0e389b6f..d350b348 100644
--- a/plugins/jetpack/images/green-star.svg
+++ b/plugins/jetpack/images/green-star.svg
@@ -1 +1 @@
-<svg width="105" height="105" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M85.16 71.382l.898 10.75-10.78.425-3.285 10.275-10.12-3.733-6.966 8.236-7.923-7.322-9.589 4.944-4.516-9.797-10.75.898-.426-10.78-10.274-3.285 3.733-10.12-8.236-6.966 7.322-7.923-4.943-9.589 9.796-4.516-.898-10.75 10.78-.426 3.285-10.274 10.12 3.733 6.966-8.236 7.923 7.322 9.589-4.943 4.516 9.796 10.75-.898.425 10.78 10.275 3.285-3.733 10.12 8.236 6.966-7.322 7.923 4.944 9.588-9.797 4.517z" fill="#00BE28"/></svg> \ No newline at end of file
+<svg width="105" height="105" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M85.16 71.382l.898 10.75-10.78.425-3.285 10.275-10.12-3.733-6.966 8.236-7.923-7.322-9.589 4.944-4.516-9.797-10.75.898-.426-10.78-10.274-3.285 3.733-10.12-8.236-6.966 7.322-7.923-4.943-9.589 9.796-4.516-.898-10.75 10.78-.426 3.285-10.274 10.12 3.733 6.966-8.236 7.923 7.322 9.589-4.943 4.516 9.796 10.75-.898.425 10.78 10.275 3.285-3.733 10.12 8.236 6.966-7.322 7.923 4.944 9.588-9.797 4.517z" fill="#069e08"/></svg>
diff --git a/plugins/jetpack/images/jetpack-connection-performance.svg b/plugins/jetpack/images/jetpack-connection-performance.svg
new file mode 100644
index 00000000..2ebcb26f
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-connection-performance.svg
@@ -0,0 +1 @@
+<svg width="360" height="200" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="360" height="200" rx="8" fill="#F4F8FD"/><path d="M112.51 130.42l1.011-78.823v-3.95a6.303 6.303 0 016.319-6.302h92.768c3.454 0 6.319 2.773 6.319 6.302v82.689h-95.885" fill="#C6DEF6"/><path d="M182.307 113.668c11.726-8.22 14.529-24.394 6.261-36.127-8.268-11.733-24.477-14.58-36.202-6.361-11.726 8.22-14.53 24.394-6.261 36.127 8.268 11.732 24.476 14.58 36.202 6.361z" fill="#fff"/><path d="M113.521 57.815V47.48c0-4.118 2.781-7.479 6.235-7.479h92.852c3.454 0 6.319 3.361 6.319 7.479v10.336H113.521zm50.302 8.824c-6.825.672-13.313 4.117-17.694 9.327-4.466 5.21-6.741 12.101-6.404 18.908a27.004 27.004 0 008.257 18.151c4.971 4.79 11.543 7.479 18.453 7.479 6.824.084 13.481-2.857 18.115-7.563.084-.084.084-.252 0-.42-.084-.084-.253-.084-.337 0-5.056 4.034-11.375 6.218-17.694 6.05-6.319-.252-12.47-2.689-16.936-7.142-4.55-4.37-7.162-10.337-7.414-16.64-.253-6.218 1.853-12.52 5.982-17.226 4.044-4.706 9.858-7.9 16.093-8.571 6.235-.757 12.554 1.008 17.61 4.79 5.055 3.781 8.51 9.327 9.605 15.546.59 3.109.505 6.218 0 9.328-.253 1.596-.59 3.193-1.011 4.621-.337.841 1.179 1.513 1.517.589.674-1.597 1.011-3.278 1.348-4.874.589-3.278.842-6.723.252-10.084-2.527-13.95-15.503-23.782-29.742-22.27z" fill="#5198D9"/><path d="M221.876 57.815c-9.269.757-18.537.672-27.889.757l-27.974.084-27.889-.169c-9.268 0-18.536 0-27.889-.756v-.42c9.268-.756 18.537-.672 27.889-.756l27.889-.084 27.889.084c9.269 0 18.537 0 27.89.756v.42h.084v.084zm-73.051 43.278c-.337-.841-1.264-1.261-2.022-.925-.843.336-1.264 1.261-.927 2.017.337.84 1.264 1.26 2.022.924.843-.336 1.264-1.26.927-2.016zm-3.033-6.723c-.843-.084-1.517-.84-1.517-1.68 0-.841.842-1.513 1.685-1.513.843.084 1.517.84 1.517 1.68-.085.925-.843 1.513-1.685 1.513zm1.769-8.908c-.758-.42-1.011-1.344-.59-2.185.421-.756 1.348-1.008 2.191-.588.758.42 1.011 1.345.59 2.185-.506.756-1.433 1.008-2.191.588zm5.308-7.31c-.505-.673-.337-1.681.337-2.186.674-.504 1.685-.336 2.191.337.505.672.337 1.68-.337 2.184-.674.589-1.685.42-2.191-.336zm7.92-4.37c-.168-.84.422-1.681 1.264-1.85.843-.167 1.685.421 1.854 1.261.168.84-.421 1.681-1.264 1.85-.843.167-1.685-.337-1.854-1.261zm9.016-.589c.168-.84 1.095-1.344 1.938-1.176.842.168 1.348 1.092 1.179 1.933-.168.84-1.095 1.344-1.938 1.176a1.684 1.684 0 01-1.179-1.933zm8.51 3.278c.59-.673 1.516-.757 2.275-.252.674.588.758 1.512.253 2.269-.506.756-1.517.756-2.275.252-.759-.589-.843-1.597-.253-2.27zm6.235 6.47a1.505 1.505 0 012.106.757 1.497 1.497 0 01-.758 2.1c-.843.337-1.769.084-2.106-.756-.338-.84 0-1.68.758-2.1zm2.949 8.572c.842 0 1.601.672 1.601 1.512s-.674 1.597-1.517 1.597c-.842 0-1.601-.672-1.601-1.513 0-.84.674-1.596 1.517-1.596zm-.927 8.991c.843.336 1.18 1.261.843 2.101-.337.84-1.264 1.177-2.107.84-.842-.336-1.179-1.26-.842-2.1.337-.841 1.263-1.177 2.106-.841z" fill="#2271B1"/><path d="M182.696 81.008c-.168-.084-.337-.084-.505-.084-3.202 1.513-5.983 3.698-8.679 5.799-.842.672-2.865 2.269-4.297 3.277-.674-.42-1.432-.588-2.275-.588-2.359.084-4.213 2.016-4.128 4.37.084 2.352 2.022 4.201 4.381 4.117 2.359-.084 4.213-2.017 4.129-4.37 0-.504-.085-.924-.253-1.344 1.179-.925 2.949-2.437 4.044-3.362 2.696-2.184 5.393-4.453 7.583-7.226a.405.405 0 000-.589zM167.193 96.05c-1.264.084-2.359-1.008-2.444-2.269-.084-1.26 1.012-2.353 2.275-2.437 1.264-.084 2.36 1.009 2.444 2.27 0 1.344-1.011 2.436-2.275 2.436z" fill="#2FB41F"/><path d="M268.133 135.126s-.421-4.958.084-8.571l.927-6.975c.421-2.941 2.865-5.21 5.73-5.21h9.352c3.455 0 6.235 3.109 5.73 6.722l-.927 6.975a6.148 6.148 0 01-1.77 3.614" fill="#fff"/><path d="M288.945 128.067c-7.584 1.009-13.819 4.874-14.493 8.488-.758 3.529-1.853 7.731-1.853 7.731h14.576l1.77-16.219z" fill="#fff"/><path d="M290.124 118.488c-.674-2.353-2.78-4.286-5.224-4.538-.674-.084-1.179-.084-1.769-.084h-8.51c-1.18 0-2.444.504-3.37 1.176-.927.756-1.686 1.765-2.107 2.857-.253.589-.337 1.177-.421 1.765l-.253 1.681-.421 3.361c-.169 1.092-.337 2.353-.337 3.445-.085 2.269.084 4.622.337 6.807 0 .084.084.084.084-.084.084 0 .084 0 .084-.084 0-2.269 0-4.538.169-6.723.084-1.092.253-2.269.421-3.361l.506-3.361.252-1.681c0-.588.169-1.008.337-1.513.337-.924 1.012-1.848 1.854-2.521a4.587 4.587 0 012.865-1.008h10.111c2.19.168 3.96 1.849 4.634 3.866.168.588.253 1.008.253 1.596.084.252 0 .588 0 .841l-.085.924-.421 3.361c-.168.925-.253 1.933-.337 2.857-.168 0-.421 0-.674.084l-.843.084c-.589.085-1.011.253-1.6.337-1.012.252-2.023.588-3.034.924-2.022.756-4.044 1.681-5.729 3.025-.927.672-1.601 1.429-2.275 2.437-.253.504-.506 1.009-.674 1.597l-.337 1.512c-.506 2.101-.927 4.202-1.517 6.219v.084c0 .084 0 .168.084.252-.252.84-.337 1.765-.505 2.689l-.506 3.782c-.252 2.521-.674 4.958-.674 7.563 0 .084.084.168.169.168a.18.18 0 00.168-.168c.59-2.521.927-5.042 1.18-7.563.168-1.261.337-2.521.421-3.782.084-.756.169-1.597.169-2.437l14.492-.084c.168 0 .421-.168.421-.42.337-2.773.59-5.462.843-8.235l.674-7.059c0-.084.084-.168.084-.252.337-1.093.421-2.269.59-3.362l.505-3.361.085-.924c.084-.336.084-.589.084-.925 0-.588-.084-1.26-.253-1.764zM288.692 130l-.843 6.387c-.421 2.521-.674 5.042-1.011 7.563l-13.65-.084c.506-1.849.927-3.782 1.433-5.715l.337-1.512c.084-.504.337-.925.59-1.345.505-.924 1.179-1.596 2.022-2.269 1.601-1.26 3.454-2.269 5.392-3.025.927-.42 1.938-.756 2.949-1.008.506-.168 1.011-.252 1.517-.42l.842-.168c.169-.084.338-.084.422-.084V130z" fill="#64CA43"/><path d="M91.698 128.235c4.045-3.025 4.213-9.664.506-16.975-3.707-7.311-14.24-14.706-19.042-7.395-4.803 7.311 9.858 28.572 16.009 25.295l2.527-.925zm6.32 4.034c-2.612-4.202-.927-11.177 4.213-15.714l1.432 4.958.758-5.715c1.938-.672 4.971-.672 6.657 1.093 6.74 7.143-5.393 18.403-10.954 16.05l-2.106-.672zm21.738 3.613c-1.769-.168-2.612-1.68-2.612-1.68s1.095-1.261 2.865-1.093c.927.084 1.517.588 1.938 1.009.337.42.253 1.008-.253 1.344-.506.336-1.095.588-1.938.42zm3.623-3.445c.59-.168.843-.84.59-1.261-.337-.588-.843-1.176-1.685-1.428-1.601-.588-2.949.42-2.949.42s.421 1.681 2.106 2.269c.759.252 1.348.168 1.938 0zm-6.403 1.681s0-1.849-1.517-2.69c-.758-.42-1.517-.504-2.106-.42-.59.084-.927.673-.759 1.093.169.588.59 1.176 1.348 1.68 1.686 1.009 3.034.337 3.034.337zm2.106-4.034s.253-1.765-1.011-2.857c-.59-.504-1.18-.672-1.769-.757-.759-.084-1.264.589-1.096 1.261.169.588.506 1.092 1.011 1.597 1.433 1.176 2.865.756 2.865.756z" fill="#fff"/><path d="M275.8 121.933a.664.664 0 00-.674.672c0 .42.253.672.674.672a.664.664 0 00.674-.672c0-.42-.252-.672-.674-.672zm6.994 0a.664.664 0 00-.674.672c0 .42.252.672.674.672.421 0 .674-.252.674-.672a.664.664 0 00-.674-.672zM78.133 107.395c-.084-.084-.084-.168-.084-.252.084-.084.168-.084.252-.084 2.612 1.428 4.803 3.277 6.741 5.462 1.938 2.185 3.455 4.706 4.634 7.479 1.18 2.773 1.854 5.546 2.36 8.487a34.97 34.97 0 01.252 8.404h3.96c.085-1.345.506-2.69 1.096-3.95.674-1.345 1.432-2.689 2.359-3.866 1.938-2.353 4.213-4.369 6.656-6.05.084-.084.169 0 .253 0 .084.084 0 .168 0 .252-2.106 2.101-4.381 4.034-6.067 6.387-.926 1.092-1.685 2.353-2.359 3.613a27.289 27.289 0 00-1.516 3.614h5.224c.168 0 .337.168.421.336l2.359 7.983v.084c.337 3.109-.59 6.47-2.528 8.907-.926 1.177-2.19 2.269-3.623 2.942-1.348.756-2.949 1.008-4.55.924-1.516.084-3.117-.252-4.55-.924-1.432-.757-2.696-1.681-3.623-2.942-1.938-2.521-2.864-5.798-2.527-8.907v-.084l2.359-7.983c.084-.168.253-.336.421-.336h5.983c-.253-2.774-.422-5.463-.843-8.236a40.007 40.007 0 00-2.36-8.235c-1.095-2.689-2.611-5.126-4.38-7.311-1.77-2.185-3.96-4.118-6.32-5.714zm8.173 30.336l-2.36 7.647v-.084a11.537 11.537 0 00.338 4.454c.421 1.428 1.01 2.857 1.938 4.033 1.77 2.437 4.634 4.118 7.667 4.202v-.168c1.517 0 2.95-.42 4.382-1.093 1.263-.756 2.527-1.68 3.37-2.857 1.769-2.437 2.612-5.462 2.19-8.487v.084l-2.359-7.647H86.306v-.084zm200.532 9.412c-.168-.841-.253-1.681-.505-2.521h-.506c0 .84.084 1.68.084 2.521.085 1.26.253 2.521.422 3.781.337 2.605.674 5.042 1.179 7.563 0 .084.084.168.169.168a.18.18 0 00.168-.168c-.084-2.521-.421-5.042-.674-7.563 0-1.26-.168-2.437-.337-3.781zm-5.055 11.344l-10.869-.168v.168c0 .084-.085.168-.169.168s-.169-.084-.169-.168v-.168h-1.348l-12.554-.084h-3.876c.506-2.437.843-4.874 1.18-7.311.168-1.26.337-2.521.421-3.781.169-.925.169-1.933.169-2.942.252.169.589.253.842.337.843.168 1.433.084 2.191.084h4.213c3.539-.084 6.993-.084 10.448-.168 0-.084-.085-.084-.085-.169v-.084c0-.084.085-.168.085-.252-3.455-.084-6.994-.084-10.448-.168h-4.213c-.758 0-1.432 0-2.022-.084a3.364 3.364 0 01-1.601-.924c-.927-.84-1.096-2.269-.674-3.361.505-1.093 1.685-1.933 2.865-1.933l16.851-.084h.758l.169-.757h-.927l-16.851-.084c-.843 0-1.77.337-2.444.841l.169-.673c.168-.504.252-.84.421-1.176.758-1.597 2.191-2.857 3.623-3.782 2.949-1.932 6.319-3.025 9.774-3.865v-.252c-1.77.168-3.539.504-5.224 1.008-1.77.588-3.455 1.261-5.056 2.353-1.601 1.009-3.117 2.269-4.044 4.118-.168.504-.337 1.008-.421 1.428l-.253 1.345c0 .252-.084.504-.084.672-.085.168-.169.252-.169.42-.674 1.429-.253 3.194.927 4.37.253.252.506.42.758.588-.252 1.093-.505 2.101-.589 3.194l-.506 3.781c-.253 2.437-.59 4.79-.674 7.311l-20.896-.168-50.386-.084-50.385.084c-16.768.084-33.62.168-50.386.588-.084 0-.169.084-.169.168s.085.168.169.168c16.767.421 33.618.505 50.386.589l50.385.084 50.386-.084 25.193-.168 12.554-.085 12.555-.168c.168-.084.337-.168.337-.336s-.169-.336-.337-.336z" fill="#64CA43"/><path d="M270.913 158.32l10.87.168c.168 0 .337.168.337.336s-.169.252-.337.336l-12.555.168-12.554.084-25.193.168-50.386.084-50.385-.084h-.064c-16.746-.084-33.576-.169-50.322-.588-.084 0-.169-.084-.169-.168s.085-.168.169-.168c16.746-.42 33.576-.504 50.322-.588l.064-.001 50.385-.084 50.386.084 20.896.169h4.297l12.554.084h1.685z" fill="#64CA43"/><path d="M84.368 128.908a22.184 22.184 0 01-3.791-3.026c-2.275-2.352-4.13-4.873-5.73-7.731-1.517-2.857-2.865-5.882-3.117-9.075-.169-1.597-.085-3.362.842-4.874.927-1.429 2.19-2.689 3.876-3.193 1.685-.505 3.37-.337 4.971.252 1.517.588 2.95 1.344 4.297 2.353 2.612 1.932 4.803 4.453 6.404 7.226 1.516 2.858 2.696 5.967 2.864 9.16.085 1.597 0 3.277-.59 4.79s-1.516 2.857-2.864 3.866h-.084c.168-.337.168-.337.252-.421 1.18-.924 2.107-2.437 2.528-3.865.421-1.513.506-3.025.337-4.706-.337-3.109-1.432-6.134-2.949-8.824-1.516-2.689-3.707-5.042-6.235-6.89a16.215 16.215 0 00-4.128-2.185c-1.433-.504-2.95-.672-4.466-.168-1.348.504-2.612 1.512-3.37 2.857-.759 1.26-.927 2.857-.759 4.37.337 3.025 1.517 6.05 2.95 8.823 1.432 2.773 3.285 5.378 5.392 7.731a20.327 20.327 0 003.539 3.025c.674.421 1.348.757 2.106.925.758.168 1.517.168 2.19-.168.085-.084.17 0 .254.084 0 .084 0 .168-.085.252-.758.42-1.6.504-2.443.336-.843-.168-1.517-.504-2.19-.924zm27.552-11.513c-.421-.588-.927-1.008-1.516-1.429-.675-.336-1.264-.588-2.023-.756-1.348-.252-2.78-.084-4.128.336-.169 0-.337.168-.337.336l-.506 3.698-.927-3.109c0-.084 0-.084-.084-.168a.408.408 0 00-.59 0c-2.19 2.016-3.876 4.621-4.718 7.395-.421 1.428-.674 2.941-.59 4.453.084 1.429.59 2.942 1.348 4.202 0 0 .084 0 .169-.168v-.084c-.759-1.177-1.011-2.689-1.011-4.118 0-1.344.252-2.857.758-4.201.927-2.521 2.359-4.79 4.297-6.555l1.18 4.202v.168h.084v.084c0 .168.168.336.337.336.253.084.506-.084.506-.336l.758-5.462c2.275-.589 5.055-.337 6.403 1.68.843.925 1.264 2.185 1.348 3.362.085 1.176-.168 2.437-.674 3.613-.926 2.437-2.78 4.454-4.718 5.966-1.011.841-2.191 1.429-3.37 1.849-1.18.42-2.528.672-3.708.168-.084 0-.252 0-.252.084s0 .252.084.252c1.264.589 2.78.505 4.044.084 1.264-.42 2.528-.924 3.623-1.764 2.191-1.597 4.045-3.698 5.056-6.219.59-1.176.842-2.689.758-4.033-.253-1.345-.674-2.689-1.601-3.866zm-6.993 23.529c-3.539-.336-7.078-.252-10.617-.336l-5.308.084c-1.77.084-3.539.084-5.308.337-.084.168-.084.168 0 .168 1.77.252 3.539.252 5.308.336l5.308.084c3.54-.084 7.078-.084 10.617-.336a.18.18 0 00.168-.168c0-.084-.084-.169-.168-.169zm19.21-10.084c-.337-.672-.758-1.092-1.348-1.428-.589-.252-1.264-.42-1.938-.336-.168 0-.252 0-.421.084 0-.084 0-.084-.084-.168-.084-.168-.169-.168-.169-.084l-.252-.252c-.169.084-.253.252-.337.336 0-.084 0-.168-.085-.252-.084-.589-.421-1.093-.842-1.513-.506-.42-.927-.756-1.517-.924-.084 0-.253-.084-.421-.084h-.506c-.421 0-.842.168-1.011.504-.253.336-.421.672-.421 1.008 0 .336.168.672.253.925a3.329 3.329 0 001.011 1.344c.421.336.927.588 1.516.672h.506c-.421.589-.843 1.261-1.095 1.849a2.521 2.521 0 00-1.011-1.26c-.506-.421-1.012-.589-1.601-.673h-.927c-.421 0-.843.252-1.011.589-.253.336-.253.756-.169 1.092.169.336.253.588.421.84.338.505.843.925 1.264 1.177.506.252 1.011.42 1.601.42.169 0 .422 0 .674-.084-.168.84-.337 1.765-.421 2.689-.084-.168-.253-.336-.337-.504a2.262 2.262 0 00-1.432-.925c-.506-.084-1.18-.168-1.77 0-.253.084-.59.169-.842.337-.337.168-.674.504-.759.924-.084.42 0 .84.253 1.092.253.253.421.505.674.673.506.42 1.011.672 1.601.756.59.084 1.095 0 1.685-.168.253-.168.506-.252.758-.42l.085-.084v2.857c-1.854-.084-3.708-.168-5.561-.168h-.169c-.168.084-.253.336-.168.504l1.685 3.361a18.666 18.666 0 00-1.348 3.614c-.337 1.344-.59 2.773-.422 4.117.169 1.429.843 2.858 1.938 3.782 1.011.756 2.275 1.176 3.539 1.26.084.084.169.084.337.084h.169c1.348 0 2.78-.336 3.876-1.26 1.095-.924 1.769-2.437 1.938-3.782.168-1.428-.085-2.857-.422-4.117-.337-1.177-.758-2.437-1.348-3.614.506-1.092 1.095-2.185 1.601-3.361v-.168c0-.168-.169-.336-.337-.336-1.348.084-2.781.084-4.213.168v-2.437c.084 0 .084.084.169.084.421.336.926.504 1.348.588.927.168 1.938-.168 2.696-.84.253-.168.505-.504.59-.925 0-.168 0-.42-.084-.588a1.291 1.291 0 00-.338-.504c-.505-.42-1.095-.84-1.769-.924-.674-.168-1.264 0-1.938.252l-.505.252c.084-.588.168-1.093.252-1.597l.422.42c.421.337.926.589 1.348.673.927.168 2.022-.084 2.78-.673.253-.168.59-.504.759-.84 0-.168 0-.42-.085-.588a1.28 1.28 0 00-.337-.504c-.421-.505-1.011-.925-1.685-1.009-.758-.168-1.348-.168-2.022.084l-.506.252c.337-.672.674-1.344 1.264-2.1.085.168.253.336.337.504.253.42.674.756 1.096.924.927.504 1.938.42 2.864.084l-.084-.084c.337 0 .674-.252.843-.588.084-.168.084-.42.084-.588 0-.084-.084-.252-.169-.421zm-5.392 3.026c.506-.168.927-.252 1.432-.168.422.084.927.336 1.264.672l.253.252c0 .084.084.168.084.252 0 .252-.084.504-.252.672-.843.252-1.686.336-2.275.084-.337-.168-.675-.336-.927-.588-.253-.168-.422-.336-.506-.588.337-.336.59-.504.927-.588zm-.421-3.866c-.169 0-.422-.084-.674-.168-.422-.168-.843-.336-1.096-.672a3.946 3.946 0 01-.758-1.009c-.253-.504-.169-.672 0-.924.084-.084.169-.168.337-.168h.253c.084 0 .253.084.337.084.421.084.842.336 1.095.588.337.252.674.672.843 1.009.084.168.168.42.253.672 0 .084 0 .084.084.168-.084.168-.253.252-.337.42h-.337zm-1.938 4.034c-.253 0-.506 0-.759-.084-.505-.084-.926-.252-1.263-.505-.422-.252-.674-.588-.927-.924-.084-.168-.169-.42-.253-.588 0-.168 0-.252.084-.336.085-.084.085-.168.253-.168h.674c.421.084.843.168 1.18.42.421.168.758.504.927.924l.252.504c0 .253-.084.505-.168.757zm-.843 4.285l-.168.084c-.085.085-.253.085-.337.169a1.596 1.596 0 01-.674.168c-.506.084-.927 0-1.348-.084-.422-.084-.843-.253-1.096-.589-.168-.168-.337-.336-.421-.504v-.336c.084-.084.084-.168.253-.252.252-.084.421-.168.674-.252a2.214 2.214 0 011.264-.084c.421.084.842.336 1.179.588.253.168.421.336.59.504l.253.252.084.084v.168l-.253.084zm5.056 14.79c-.169 1.177-.674 2.353-1.601 3.026-.759.672-1.938.924-3.033 1.008-.085 0-.169-.084-.253-.084-1.18 0-2.528-.336-3.371-1.008-.926-.757-1.432-1.849-1.6-3.026-.169-1.176 0-2.521.337-3.697.337-1.261.758-2.521 1.263-3.614a.253.253 0 000-.336l-1.6-3.025c1.853-.084 3.707-.084 5.561-.168h.084c1.432.084 2.78.084 4.213.168-.506 1.008-1.011 2.017-1.601 3.025-.084.168-.084.336 0 .42.59 1.093.927 2.437 1.264 3.614a11.23 11.23 0 01.337 3.697zm-2.781-15.462c.506-.168.927-.252 1.433-.252.505.084.926.252 1.348.588.084.084.168.084.252.168.085.084.169.168.169.252.084.169 0 .421-.169.673-.758.336-1.6.42-2.443.252-.421-.084-.758-.252-1.011-.504-.169-.168-.337-.336-.506-.421v-.084c.337-.252.674-.42.927-.672zm5.561-5.294c-.927 0-1.685-.168-2.359-.588a3.978 3.978 0 01-.843-.841c-.168-.168-.252-.336-.337-.588.337-.168.759-.252 1.096-.336.505-.084 1.011 0 1.432.168.421.252.843.588 1.095.925.085.084.169.168.169.252.084.084.084.252.084.336 0 .336-.084.504-.337.672z" fill="#64CA43"/><path d="M242.435 133.109s4.802 9.16 4.128 17.9l-.758 2.268-15.251-21.008" fill="#CDC9CD"/><path d="M242.435 133.109s4.802 9.16 4.128 17.9l-.758 2.268-15.251-21.008" stroke="#2271B1"/><path d="M224.067 131.428s1.095 21.765 2.274 25.463l4.55-.084c.253-7.648 2.865-17.395 3.118-27.227l-9.942 1.848zm9.352-39.832c2.528-.336 9.437 8.32 10.701 11.597 1.264 3.361-6.994 5.294-6.994 5.294" fill="#CDC9CD"/><path d="M233.419 91.596c2.528-.336 9.437 8.32 10.701 11.597 1.264 3.361-6.994 5.294-6.994 5.294m-13.059 22.941s1.095 21.765 2.274 25.463l4.55-.084c.253-7.648 2.865-17.395 3.118-27.227l-9.942 1.848z" stroke="#2271B1"/><path d="M222.213 87.227c1.095.252 2.359-.084 2.359-.084.084 0 .084.084.084.084l-1.938 2.017-.505-2.185" fill="#2271B1"/><path d="M222.213 87.227c1.095.252 2.359-.084 2.359-.084.084 0 .084.084.084.084l-1.938 2.017-.505-2.185" stroke="#2271B1" stroke-width=".876" stroke-miterlimit="10"/><path d="M228.111 93.193h-5.056l-.842-11.596h5.898v11.596z" fill="#CDC9CD"/><path d="M223.561 74.034c-2.612-.085-4.971 1.092-5.308 3.445-.337 2.017-2.022 2.437-2.107 3.53 0 .756 1.348.924 1.517 1.68.59 2.521 2.443 4.37 5.308 4.538.674 0 1.011 0 1.601-.168" fill="#CDC9CD"/><path d="M223.561 74.034c-2.612-.085-4.971 1.092-5.308 3.445-.337 2.017-2.022 2.437-2.107 3.53 0 .756 1.348.924 1.517 1.68.59 2.521 2.443 4.37 5.308 4.538.674 0 1.011 0 1.601-.168" stroke="#2271B1" stroke-linecap="round"/><path d="M219.432 83.11c-.337.84-1.179 1.176-1.179 1.176" stroke="#2271B1" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/><path d="M219.095 80.504a.362.362 0 00.337-.336v-.672a.361.361 0 00-.337-.336c-.168 0-.337.168-.337.336v.672c-.084.168.085.336.337.336z" fill="#2271B1"/><path d="M222.466 90c7.077-2.269 10.026-.588 12.723 3.445 4.381 6.639 1.853 8.32 3.454 14.37 1.601 6.051 5.308 8.656 4.634 25.883h-20.221s-1.938-19.916-1.349-25.715L222.466 90zm20.98 60.84s4.718 8.236 6.235 7.9c.927-.168-.59-4.202-1.096-6.051-.337-1.344-.674-2.185-2.022-2.017l-3.117.168zM226.089 155.966c-1.096.336-4.466 1.009-5.477 1.345-.843.252-.674 1.512.253 1.512h9.1c1.011 0 1.853-.924 1.685-1.932l-.169-1.009-5.392.084z" fill="#2FB41F"/><path d="M218.337 97.31s-1.348-1.008-2.443-2.856c-1.601-2.857-5.73-7.731-6.741-6.387-1.011 1.26.758 5.799 2.275 6.555 1.095 3.613 6.909 15.714 10.364 14.79 3.454-.925 6.235-19.328 1.432-19.076-4.803.252-5.14 10.84-5.14 10.84" fill="#CDC9CD"/><path d="M218.337 97.31s-1.348-1.008-2.443-2.856c-1.601-2.857-5.73-7.731-6.741-6.387-1.011 1.26.758 5.799 2.275 6.555 1.095 3.613 6.909 15.714 10.364 14.79 3.454-.925 6.235-19.328 1.432-19.076-4.803.252-5.14 10.84-5.14 10.84" stroke="#2271B1" stroke-linecap="round" stroke-linejoin="round"/><path d="M235.273 85.546c-.506-.84-1.096-1.513-1.77-2.017a3.574 3.574 0 01-1.179-1.932c-.169-1.093-.506-2.101-1.011-2.858-.674-1.008-1.938-1.848-3.202-2.184-1.18-2.017-2.191-2.353-3.623-2.774-2.359-.756-4.634.673-4.634.673-.337 2.689.758 5.63 3.201 5.798-.421 2.017.759 4.79 3.034 5.462-.253 1.513.084 3.362 1.095 4.958 1.854 3.025 5.224 4.286 7.415 2.941 2.275-1.512 2.527-5.042.674-8.067z" fill="#2271B1"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/jetpack-connection-security.svg b/plugins/jetpack/images/jetpack-connection-security.svg
new file mode 100644
index 00000000..bfec2124
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-connection-security.svg
@@ -0,0 +1 @@
+<svg width="360" height="200" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="360" height="200" rx="8" fill="#F4F8FD"/><path d="M75.23 154.692c12.623-.692 25.36-.807 37.983-.923l19.049-.115h19.049l37.984.231c12.623.115 25.361.23 37.984.692.229 0 .459.231.459.461 0 .231-.23.462-.459.462-12.623.462-25.361.577-37.984.692l-37.984.231h-19.049l-19.049-.115c-12.623-.116-25.36-.347-37.983-.923-.115 0-.23-.116-.23-.231 0-.346.115-.462.23-.462zm174.999 0c2.869-.577 5.738-.807 8.607-.923l4.246-.115h4.246c2.869 0 5.738.115 8.606.231 2.869.115 5.738.23 8.607.692.229 0 .459.231.459.577 0 .231-.23.346-.459.461-2.869.462-5.738.577-8.607.693-2.868.115-5.737.115-8.606.23h-4.246l-4.246-.115c-2.869-.115-5.738-.346-8.607-.923-.114 0-.229-.115-.229-.231 0-.461.115-.577.229-.577z" fill="#C6DEF6"/><path d="M127.787 135.308V68.615h80.442v66.693h-76.081" fill="#EFF3F7"/><path d="M240.475 68.846l1.033 66.116-33.164.115v-66.23h32.131zM127.787 68.27V52.576h112.688v15.577H133.984" fill="#C6DEF6"/><path d="M192.508 135.192h-55.311V98.154h60.934v37.038h-5.623zM198.131 94h-60.934V78.769h60.934v15.23z" fill="#fff"/><path d="M185.164 87.77c-.803.23-1.607.576-2.41.922-.688.462-1.492.808-2.18 1.27-.459.346-1.033.692-1.607 1.038.459-.577 1.033-1.27 1.492-1.846.574-.692 1.148-1.5 1.607-2.308.573-.808 1.032-1.615 1.377-2.538 0-.116 0-.116-.115-.116h-.115a11.21 11.21 0 00-2.065 1.962c-.574.692-1.148 1.5-1.722 2.192-.459.692-1.033 1.385-1.492 2.192.23-.807.574-1.615.804-2.538l.688-2.77c.23-.922.344-1.845.344-2.884v-.115h-.114c-.459.807-.918 1.73-1.148 2.538-.344.923-.574 1.846-.803 2.654-.23.692-.344 1.385-.459 2.077 0-.808-.115-1.73-.115-2.538-.115-1.039-.229-1.962-.344-3-.115-1.039-.344-1.962-.574-3 0-.116-.115-.231-.229-.116-.115 0-.115.115-.115.23-.115 1.04-.115 2.078-.115 3 0 1.04.115 1.962.115 3 .115 1.04.115 1.962.229 3a13.657 13.657 0 00-.918-1.845c-.344-.693-.803-1.5-1.147-2.193l-1.377-2.076c-.115-.116-.23-.116-.345 0-.114 0-.114.115-.114.23.229.808.459 1.616.803 2.423.344.808.689 1.5 1.033 2.308.229.346.344.692.574 1.038-.574-.576-1.148-1.269-1.722-1.846-.803-.692-1.492-1.5-2.295-2.192-.803-.692-1.606-1.385-2.524-1.962-.115-.115-.23 0-.345.116v.23c.574.924 1.263 1.731 1.951 2.424.689.807 1.492 1.5 2.18 2.307.689.693 1.492 1.5 2.296 2.193l.114.115c-.459-.23-.918-.461-1.377-.577-.688-.23-1.377-.577-2.18-.808-.689-.23-1.492-.461-2.18-.576-.115 0-.23.115-.23.23 0 .116 0 .116.115.231.574.462 1.262.808 1.951 1.154.688.346 1.377.692 2.065.923.689.346 1.377.577 2.181.808.688.23 1.377.346 2.18.461h.344c.803-.346 1.607-.692 2.295-1.038.689-.462 1.492-.808 2.181-1.27l2.065-1.384a9.153 9.153 0 001.951-1.73v-.116c-.344.115-.459.115-.459.115z" fill="#64CA43"/><path d="M244.262 68.5c-9.983 1.038-19.967 1.038-29.951 1.154l-29.95.346H154.41c-9.984 0-19.967.115-29.951-.808v-.576c9.984-1.039 19.967-1.039 29.951-1.154l29.951-.347h29.95c9.984 0 19.968-.115 29.951.808v.577z" fill="#2271B1"/><path d="M163.59 120.538c-1.262.693-2.41 1.5-3.328 2.539l.345-1.269c.459-1.962 1.147-3.923 1.836-5.885l-.345-.231c-.688.808-1.262 1.731-1.606 2.769-.459 1.039-.803 1.962-1.033 3-.229 1.039-.459 2.077-.574 3.231v.923c-.229.693-.344 1.616-.115 2.308h.23l.115-.115v.115h.229c.115-.577.345-1.038.459-1.615.115-.116.115-.231.23-.347.344-.576.803-1.153 1.147-1.73.459-.577.918-1.039 1.492-1.616.574-.577 1.033-1.038 1.492-1.73-.23 0-.574-.347-.574-.347zm28.23-12c-.574-1.038-1.492-2.307-3.213-2.884-.689-.231-1.492-.346-2.296-.346.345-.462.689-.808 1.033-1.27l-.344-.346c-.689.577-1.262 1.154-1.951 1.731a6.578 6.578 0 00-1.606.577c-.23-1.154-.689-2.654-2.066-3.808-.918-.807-2.18-1.269-3.328-1.384-1.262-.116-2.41.807-2.639 2.077 0 .346 0 .576.115.923a5.772 5.772 0 002.065 3.115c1.148.923 2.64 1.5 4.131 1.5.345 0 .689 0 1.033-.115-1.147 1.73-2.065 3.577-2.869 5.538l-.115.115c-.229-1.153-.803-3.23-2.868-4.384-1.263-.692-2.64-1.039-4.132-.808-1.147.116-1.95 1.154-1.836 2.423 0 .116 0 .346.115.462.459 1.384 1.377 2.538 2.64 3.346 1.606.923 3.442 1.154 5.163.577 0 .115.115.231.23.346-.574 1.962-.918 3.923-1.148 5.885-.229-.693-1.606-3.231-4.475-3.808-1.377-.231-2.869 0-4.131.577-1.033.577-1.492 1.846-.918 2.884.115.116.115.231.229.347.918 1.153 2.181 1.961 3.672 2.192.345.115.804.115 1.263.115 1.377 0 2.639-.461 3.787-1.154l-.115.231.229.346c.115.231.23.347.345.577-.115 1.731 0 3.577.229 5.308h.23c.229-1.5.344-2.885.459-4.385 1.032.923 2.41 1.385 3.901 1.385 1.377 0 2.64-.462 3.787-1.154.574-.346.918-.923.918-1.615 0-.693-.229-1.269-.688-1.731-.804-.808-2.181-1.731-4.017-1.731a6.043 6.043 0 00-3.442 1.039c.229-1.385.459-2.77.918-4.154 1.033.923 2.295 1.5 3.557 1.615h.574c1.147 0 2.295-.346 3.328-.923a2.266 2.266 0 001.033-1.5c.114-.692-.115-1.269-.574-1.731-.803-.807-2.066-1.846-3.787-1.961-.918-.116-1.951.115-2.869.461a24.37 24.37 0 011.721-3.461c.115-.116.115-.231.23-.462.688 1.039 1.836 1.962 3.098 2.308a6.462 6.462 0 002.066.346c.688 0 1.262-.115 1.836-.231.574-.23 1.147-.692 1.377-1.269.574-.461.459-1.154.115-1.731zm-17.443 5.654c-1.033-.577-1.721-1.5-2.18-2.654-.115-.461.114-1.038.573-1.269h.919c.918 0 1.836.231 2.639.692 1.721 1.039 2.18 3 2.295 3.808-1.377.346-2.984.116-4.246-.577zm-1.721 8.885a4.888 4.888 0 01-2.984-1.846c-.344-.462-.229-1.039.115-1.385l.115-.115c.803-.346 1.606-.577 2.524-.577.344 0 .574 0 .918.115 1.951.346 3.099 2.077 3.443 2.885-1.033.923-2.639 1.269-4.131.923zm10.098-1.5c1.492 0 2.525.692 3.213 1.384.344.347.459 1.039 0 1.385 0 0-.115.115-.229.115-.804.693-1.836 1.039-2.984 1.039-1.836 0-2.984-.923-3.672-1.731 0-.231.115-.461.115-.692.688-.577 1.951-1.5 3.557-1.5zm1.607-7.616c1.377.116 2.524.924 3.098 1.616.23.231.23.461.23.808 0 .346-.23.576-.459.692a5.62 5.62 0 01-3.328.692c-1.263-.115-2.525-.808-3.328-1.731v-.115c.115-.346.229-.808.344-1.154 1.033-.577 2.18-.923 3.443-.808zm-1.951-6.461c-1.492.231-2.984-.231-4.131-1.154-.804-.692-1.377-1.5-1.607-2.538-.229-.693.23-1.385.803-1.5h.459c1.033.115 1.951.461 2.755 1.153 1.606 1.154 1.721 3.116 1.721 4.039zm8.492 2.423a1.178 1.178 0 01-.689.577c-1.033.346-2.18.346-3.328-.115-1.147-.347-2.18-1.27-2.754-2.308l1.033-1.385c1.033-.231 2.065-.231 2.984.116 1.377.461 2.18 1.5 2.639 2.307.229.231.229.577.115.808z" fill="#64CA43"/><path d="M279.377 105.654c-.115-.577-.574-1.038-1.147-1.038-2.41 0-4.82-.231-7.23-.577a37.63 37.63 0 01-7.115-1.731 34.063 34.063 0 01-6.541-3.116c-2.065-1.269-3.787-2.884-5.278-4.73l-.115-.116c-.459-.346-1.148-.346-1.492.116-1.377 1.615-3.213 3.23-4.934 4.615a30.046 30.046 0 01-5.853 3.462 32.16 32.16 0 01-6.426 2.077c-2.18.461-4.476.577-6.771.346-.459 0-.803.346-.918.692a79.543 79.543 0 00-.688 16.5c.344 5.423 1.377 10.962 3.328 16.039 1.951 5.192 4.934 9.923 8.951 13.73 4.016 3.808 8.95 6.346 14.229 7.731h.115c2.869-.115 5.623-.923 8.147-2.077 2.525-1.154 5.05-2.654 7.115-4.615 4.361-3.693 7.689-8.539 9.869-13.846 2.295-5.308 3.213-10.962 3.557-16.616.345-5.654 0-11.307-.803-16.846z" fill="#2FB41F"/><path d="M267.787 116.962c-.115-.116-.344-.231-.574-.116-1.721 1.385-3.328 3-4.82 4.5l-4.475 4.846c-2.639 3-5.279 5.885-7.918 8.885-1.148-.923-2.18-1.731-3.328-2.654l-2.18-1.731c-.804-.577-1.377-1.269-2.41-1.384h-.459c-.459.23-.689.692-.459 1.154.344 1.038 1.147 1.384 1.836 2.076l2.066 1.731c1.377 1.154 2.754 2.308 4.245 3.462.574.461 1.263.346 1.722-.116 2.869-3.346 5.737-6.577 8.606-9.923 1.377-1.73 2.869-3.346 4.246-5.077 1.377-1.73 2.64-3.461 3.787-5.423.23.116.115-.115.115-.23z" fill="#fff"/><path d="M232.328 154.808c-5.738-.231-11.476-.462-17.213-.577-5.738-.116-11.476-.231-17.213-.231-11.476-.115-22.836-.115-34.312-.115l-34.311-.116H107.82c-.804 0-1.263 0-1.836-.115-.574-.116-1.033-.346-1.492-.692-.918-.693-1.492-1.616-1.722-2.77 0-.23-.114-.577-.114-.807v-1.847l60.705-.115h5.508v2.769c0 .346.229.577.574.577h28.114c.345 0 .574-.231.574-.577v-3.115c4.016 0 7.918-.115 11.935-.231 5.163-.115 10.327-.231 15.491-.461.115 0 .23-.116.23-.347a.247.247 0 00-.23-.23c-5.164-.231-10.328-.346-15.491-.462-5.164-.115-10.328-.231-15.492-.231C184.246 145 173.918 145 163.59 145l-62.197-.231c-.688 0-1.377.577-1.377 1.385v3.231c0 .461 0 .923.115 1.384.574 2.654 2.525 4.846 5.164 5.539.803.23 1.836.23 2.525.23h21.459l34.311-.115c11.476 0 22.836 0 34.312-.115 5.737 0 11.475-.116 17.213-.231 5.737-.115 11.475-.231 17.213-.577.115 0 .229-.115.229-.346 0-.231-.114-.346-.229-.346zm19.049-114.693L221.77 40h-97.655c-.689 0-1.377.115-2.066.346-1.377.346-2.639 1.039-3.787 1.962-2.18 1.846-3.557 4.615-3.442 7.5V145h2.524V49.923c0-3.346 2.181-6.23 5.279-7.038.459-.116 1.033-.231 1.606-.231h97.656l28.574-.116.229 22.731.115 11.885.23 11.885c0 .23.229.346.459.346.115 0 .344-.116.344-.347l.23-11.884.114-11.885.23-23.769c-.115-.808-.459-1.27-1.033-1.385z" fill="#5198D9"/><path d="M137.197 130.692c15.606-6.461 49.229-2.192 60.246 4.731l-60.246-.231v-4.5z" fill="#64CA43"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/jetpack-design.svg b/plugins/jetpack/images/jetpack-design.svg
index 1f9a6154..8581adcd 100644
--- a/plugins/jetpack/images/jetpack-design.svg
+++ b/plugins/jetpack/images/jetpack-design.svg
@@ -1 +1 @@
-<svg width="215" height="133" viewBox="0 0 215 133" xmlns="http://www.w3.org/2000/svg"><title>design &amp; customization image</title><g fill="none" fill-rule="evenodd"><path d="M141.14 58.004v41.725h25.726V55.355H143.81a2.657 2.657 0 0 0-2.67 2.649z"/><path d="M129 29.455v-9.128h-28.148c.192.33.385.673.55 1.03 3.18 6.657.344 14.618-6.317 17.816l-.152.068-.234.11c-.55.247-1.129.453-1.707.618l-.261.068c-.097.028-.207.055-.303.083-.151.04-.317.068-.468.11-.275-.495-.358-1.744-.413-2.457-.083-1.167-.124-1.812-.592-2.004-.743-.302-1.72.466-2.381 1.88a6.266 6.266 0 0 0-.592 2.786c-7.378-.727-12.76-7.288-12.03-14.631a13.002 13.002 0 0 1 1.239-4.42c.165-.357.358-.686.55-1.03H48.464V67.75c4.226.082 12.54-1.469 12.65 2.443V56.07h54.383v16.758c4.336-.027 8.7 1.002 13.021.289a.344.344 0 0 1 .413.26c.427 2.526 2.092 25.351 2.271 27.616.152 2.059.496 4.077.07 6.122a.368.368 0 0 1-.345.247c-1.555.082-3.11.288-4.666.274-1.46 0-7.006-.15-7.405-.288-.496-.178-2.877.398-4.102.48-1.17.07-5.795.385-6.937.412-1.432.028-2.932-.014-2.974-1.386-.013-.769-.743-6.314-.633-7.11H61.54c0 .179-8.836-.014-13.076-.055v12.504h127.17V29.455H129zm37.866 70.26H141.14V57.99a2.654 2.654 0 0 1 2.657-2.649h23.069v44.375z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M100.838 20.314a9.124 9.124 0 0 0-.495-.769c-4.185-6.094-12.526-7.659-18.637-3.486a13.386 13.386 0 0 0-3.497 3.486c-.179.247-.33.508-.495.782-.193.33-.386.673-.55 1.03-3.18 6.67-.331 14.659 6.358 17.83 1.39.658 2.89 1.07 4.433 1.22a6.121 6.121 0 0 1 .591-2.785c.661-1.4 1.638-2.17 2.382-1.88.468.191.523.836.592 2.003.055.714.137 1.963.412 2.457.166-.027.317-.069.468-.11a9.08 9.08 0 0 0 .303-.082l.262-.069c.578-.165 1.156-.37 1.707-.617l.234-.11.151-.069c6.69-3.17 9.525-11.145 6.332-17.802-.166-.357-.358-.686-.551-1.03z" fill="#00BE28" fill-rule="nonzero"/><path d="M166.825 55.451h-23.056a2.654 2.654 0 0 0-2.656 2.649v41.725h25.712V55.451z"/><path fill="#D8DEE4" fill-rule="nonzero" d="M128.972 9.759V29.55h53.778V9.759z"/><path d="M52.208 87.253l7.158-.055.523 5.669-5.836-.522s-2.313-.467-1.845-5.092z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M50.708 21.343h-2.312a.921.921 0 0 1-.923-.92v-2.305a.921.921 0 0 1 1.845 0v1.386h1.39a.921.921 0 0 1 0 1.84zm-2.312-6.986a.921.921 0 0 1-.923-.92V8.743a.921.921 0 0 1 1.845 0v4.694c0 .508-.413.92-.922.92zm1.252-9.128a.921.921 0 0 1-.77-1.427 8.532 8.532 0 0 1 4.046-3.24.932.932 0 0 1 1.198.536.928.928 0 0 1-.537 1.194 6.684 6.684 0 0 0-3.166 2.54.922.922 0 0 1-.77.397zm124.664-.027a.937.937 0 0 1-.77-.412 6.691 6.691 0 0 0-3.18-2.525.923.923 0 0 1-.537-1.194.927.927 0 0 1 1.198-.536 8.396 8.396 0 0 1 4.06 3.226.922.922 0 0 1-.248 1.276.878.878 0 0 1-.523.165zm-8.258-3.363h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.694a.92.92 0 0 1 .014 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.415 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.694a.92.92 0 0 1 .014 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.402 0h-4.707a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.414 0h-4.694a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707c.51 0 .923.412.923.92a.942.942 0 0 1-.936.92zm-9.401 0H86.11a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.402 0H76.71a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.4 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.415 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84z" fill="#E1E2E2" fill-rule="nonzero"/><path d="M115.47 107.484s-.661 14.234-2.808 22.936l-12.609.164s-1.018-.645.33-1.317c1.405-.7 5.176-1.455 5.603-2.306.826-1.647.495-18.557.495-18.557m13.889-.48s.66 13.3 2.808 22.015l11.025.165s1.019-.645-.33-1.318c-1.404-.7-5.176-1.455-5.603-2.306-.825-1.647 1.61-19.49 1.61-19.49" fill="#B0B5B8" fill-rule="nonzero"/><path d="M92.442 40.71s.289.247.399-.714c-.427.124-.867.22-1.294.288.193.37.468.563.895.426z"/><path d="M92.442 40.71c-.427.137-.702-.055-.895-.426-.743.124-1.5.192-2.257.192-.276 0-.537-.013-.812-.027.096 1.496.88 3.047 2.931 4.118l1.5.81 2.506-1.538c.261-2.086-.18-3.582-.647-4.53a13.29 13.29 0 0 1-1.927.687c-.11.96-.4.714-.4.714z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M91.547 40.284c-.592-1.153-.317-4.035-.757-4.213-.812-.33-2.478 1.935-2.312 4.378.261.014.536.027.812.027.757 0 1.514-.068 2.257-.192z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M125.641 87.898a.46.46 0 0 1-.454-.467c0-.233.18-.411.4-.439l5.106-.549a.466.466 0 1 1 .151.92h-.055l-5.106.549-.042-.014z" fill="#6F93AD" fill-rule="nonzero"/><path d="M129.179 90.63a3.344 3.344 0 0 1-2.368-.906 2.573 2.573 0 0 1-.825-2.032c0-.247.206-.44.454-.44h.041a.47.47 0 0 1 .44.481 1.72 1.72 0 0 0 .551 1.318 2.483 2.483 0 0 0 1.968.645l.895-.247a.46.46 0 0 1 .564.33.459.459 0 0 1-.33.562l-.963.261c-.166.014-.29.027-.427.027z" fill="#6F93AD" fill-rule="nonzero"/><path d="M103.729 60.2a.463.463 0 0 1-.468-.467c0-.178.11-.343.275-.425l3.992-1.784a.457.457 0 0 1 .619.192.454.454 0 0 1-.193.617c-.014.014-.027.014-.041.028l-3.992 1.784a.345.345 0 0 1-.192.055z" fill="#204A69" fill-rule="nonzero"/><path d="M108.698 32.873c.027.549.178.96.371 1.07.124.082.33-.014.482-.11a5.97 5.97 0 0 1-.041-.7l-.812-.26zm.522-1.551a1.4 1.4 0 0 0-.412.603l.715.248c.028-.302.055-.59.11-.879a.494.494 0 0 1-.137-.096.71.71 0 0 0-.275.124z"/><path d="M113.377 37.622a2.781 2.781 0 0 1-1.404-2.361l.138-1.25-1.665-.548a9.6 9.6 0 0 0 .165 1.262c.454 2.17.99 3.871 3.4 4.255a.452.452 0 0 1 .385.398l.303 2.526a.461.461 0 0 1-.4.508h-.054a.445.445 0 0 1-.29-.11v1.167l5.782.302V38.61c-.248.123-.51.22-.785.288-2.436.577-4.322-.576-5.575-1.276zm4.969-3.597l-1.486-3.98s-1.969-1.098-3.827-.988c.95 2.21 2.905 4.365 5.313 4.968zm-7.68-3.198a8.335 8.335 0 0 0-.234 1.648l1.775.59.207-1.99c.014 0-1.06.137-1.748-.248z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M121.843 33.737a5.558 5.558 0 0 1-3.497.275c-2.408-.604-4.35-2.76-5.299-4.969-.523-1.235-.743-2.498-.564-3.514-.923.714-1.707 1.88-2.285 3.651a3.9 3.9 0 0 0-.097.371c-.096.247-.178.508-.261.769a.948.948 0 0 0-.55-.042c-.62.138-1.35.77-1.487 1.88-.11.893.027 2.1.77 2.554.18.11.386.164.592.164.18 0 .345-.04.51-.096.014.042.014.083.027.11.468 2.251 1.129 4.324 3.813 4.914l.262 2.196a.46.46 0 0 0 .454.412h.055c.248-.028.44-.261.399-.508l-.303-2.526a.452.452 0 0 0-.385-.398c-2.395-.384-2.946-2.086-3.4-4.255a9.6 9.6 0 0 1-.165-1.262l1.665.549-.137 1.249a2.76 2.76 0 0 0 1.404 2.36c1.252.7 3.138 1.854 5.547 1.29.275-.068.537-.164.784-.287 1.638-.838 2.56-2.951 2.85-5.257a3.109 3.109 0 0 1-.702.37zm-12.774.206c-.179-.11-.344-.521-.371-1.07l.812.26c0 .234.013.467.04.7-.164.096-.357.192-.48.11zm.454-1.77l-.715-.248c.082-.233.22-.452.413-.603a.742.742 0 0 1 .275-.138.494.494 0 0 0 .137.096c-.055.302-.082.604-.11.893zm2.684.892l-1.775-.59a8.335 8.335 0 0 1 .234-1.648c.688.385 1.762.248 1.762.248l-.22 1.99z" fill="#204A69" fill-rule="nonzero"/><path d="M113.9 23.635c-.812.357-1.266 1.043-1.417 1.908-.661 3.651 3.895 10.445 9.36 8.194.247-.096.495-.22.715-.357 5.437-3.198-2.078-12.613-8.658-9.745z" fill="#BBC9D5" fill-rule="nonzero"/><path d="M37.907 85.455h20.674c.647 0 1.17-.522 1.17-1.167v-.055l-.592-13.711a.89.89 0 0 0-.88-.851H37.631l.275 13.986" fill="#969CA1" fill-rule="nonzero" opacity=".26"/><path d="M59.793 92.88c-.386-2.196-.565-4.392-.744-6.602l-.11-1.66-.055-.824-.014-.206v-.274c.014-.234.11-.467.262-.66a1.48 1.48 0 0 1 1.101-.52l.84-.014 1.665-.014 1.666.014.84.013a1.48 1.48 0 0 1 1.1.522c.152.178.248.412.262.645l.014.425.041.824.069 1.66c.082 2.21.151 4.42.11 6.63 0 .096-.096.179-.193.179a.19.19 0 0 1-.179-.151c-.289-2.196-.468-4.406-.647-6.602l-.123-1.647-.056-.824-.027-.398c0-.041-.028-.082-.055-.11a.533.533 0 0 0-.372-.15l-.812.013-1.665.014-1.666-.014h-.812a.533.533 0 0 0-.372.151c-.027.027-.04.069-.055.096v.137l.014.206.041.824.083 1.66c.055 2.21.138 4.42 0 6.644 0 .055-.055.082-.096.082-.014 0-.042-.027-.055-.069z" fill="#CCCED0" fill-rule="nonzero"/><path fill="#F6F6F6" fill-rule="nonzero" d="M64.94 90.3l-.344-6.08h-3.62l.344 6.066z"/><path d="M54.053 96.23a2.87 2.87 0 0 1 1.252-.371 12.56 12.56 0 0 1 1.253-.055c.413.014.826.041 1.252.069.427.04.84.123 1.253.274a.203.203 0 0 1 .11.26.15.15 0 0 1-.11.11c-.4.152-.826.234-1.253.275-.412.028-.825.055-1.252.069-.413 0-.826-.014-1.253-.055a2.883 2.883 0 0 1-1.252-.37c-.055-.028-.069-.097-.041-.152.013-.013.027-.04.04-.055zm4.363-4.077c-2.367-.165-4.735-.22-7.116-.26l-3.551-.042-1.776-.014-.895-.013a2.13 2.13 0 0 1-.715-.124 2.304 2.304 0 0 1-1.583-2.21l-.028-2.402c-.316-.013-.633-.027-.95-.027l-.027 2.43a3.315 3.315 0 0 0 2.244 3.197c.33.11.688.151 1.032.165l.895-.014 1.775-.014 3.551-.04c2.368-.042 4.735-.097 7.117-.261.096-.014.179-.097.165-.206.014-.083-.055-.151-.138-.165z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M54.989 92.153c-1.184-.165-2.106-1.043-2.285-2.1-.069-.467-.014-1.18-.014-1.784l.028-1.345h-1.033l.028 1.345c.041.645-.041 1.207.11 1.976a3.065 3.065 0 0 0 1.184 1.757 2.88 2.88 0 0 0 1.968.522.205.205 0 0 0 .165-.165c.028-.096-.055-.192-.151-.206z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M59.462 86.663c-.248.068-.51.096-.77.096h-.732c-3.88.014-7.776.055-11.658.096-4.198.069-8.382.15-12.58.288a.094.094 0 0 0-.097.096c0 .055.042.096.097.096 4.198.138 8.382.22 12.58.289 4.199.04 8.383.096 12.581.096h.014c.027 0 .055 0 .082-.014.152-.014.303-.028.468-.055l.014-.988z" fill="#CCCED0" fill-rule="nonzero"/><path d="M61.981 81.557l-.33-8.4-.083-2.1c-.014-.37-.014-.659-.055-1.098a2.989 2.989 0 0 0-2.505-2.54 4.306 4.306 0 0 0-.84-.04c-.027 0-.068-.014-.096-.014l-21.885.082-1.363.014a2.187 2.187 0 0 0-1.542.535 2.15 2.15 0 0 0-.743 1.469c-.014.535.014.933.028 1.4l.137 5.449c.083 3.637.207 7.274.344 10.898 0 .096.083.178.18.178a.182.182 0 0 0 .178-.178c.014-3.637.014-7.275-.027-10.912l-.042-5.449c0-.44-.013-.947 0-1.318a1.32 1.32 0 0 1 .482-.892c.275-.233.633-.343.991-.302h.537l.22 7.55c.069 2.662.193 5.311.303 7.974 0 .096.083.178.193.178.096 0 .179-.082.179-.192 0-2.663.013-5.325-.028-7.974l-.082-7.522h.04l21.377.069.014-.014h.289c.316-.014.647 0 .963.027a2 2 0 0 1 1.35.892c.15.234.233.495.275.77.027.246.027.672.055 1.001l.096 2.1.193 4.2.192 4.2.042.837a5.91 5.91 0 0 1 .977.028l-.014-.906z" fill="#CCCED0" fill-rule="nonzero"/><path d="M59.793 92.88c-.386-2.196-.565-4.392-.744-6.602l-.11-1.66-.055-.824-.014-.206v-.274c.014-.234.11-.467.262-.66a1.48 1.48 0 0 1 1.101-.52l.84-.014 1.665-.014 1.666.014.84.013a1.48 1.48 0 0 1 1.1.522c.152.178.248.412.262.645l.014.425.041.824.069 1.66c.082 2.21.151 4.42.11 6.63 0 .096-.096.179-.193.179a.19.19 0 0 1-.179-.151c-.289-2.196-.468-4.406-.647-6.602l-.123-1.647-.056-.824-.027-.398c0-.041-.028-.082-.055-.11a.533.533 0 0 0-.372-.15l-.812.013-1.665.014-1.666-.014h-.812a.533.533 0 0 0-.372.151c-.027.027-.04.069-.055.096v.137l.014.206.041.824.083 1.66c.055 2.21.138 4.42 0 6.644 0 .055-.055.082-.096.082-.014 0-.042-.027-.055-.069z" fill="#CCCED0" fill-rule="nonzero"/><path fill="#F6F6F6" fill-rule="nonzero" d="M64.94 90.3l-.344-6.08h-3.62l.344 6.066z"/><path d="M54.053 96.23a2.87 2.87 0 0 1 1.252-.371 12.56 12.56 0 0 1 1.253-.055c.413.014.826.041 1.252.069.427.04.84.123 1.253.274a.203.203 0 0 1 .11.26.15.15 0 0 1-.11.11c-.4.152-.826.234-1.253.275-.412.028-.825.055-1.252.069-.413 0-.826-.014-1.253-.055a2.883 2.883 0 0 1-1.252-.37c-.055-.028-.069-.097-.041-.152.013-.013.027-.04.04-.055zM.179 131.682c17.866-.507 35.746-.617 53.612-.74l53.613-.124c35.746.11 71.492.055 107.224.672a.366.366 0 0 1 .344.385.37.37 0 0 1-.344.343c-35.746.631-71.492.562-107.224.672l-53.613-.123c-17.866-.124-35.746-.234-53.612-.742a.182.182 0 0 1-.179-.178c0-.082.083-.165.179-.165z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M106.647 125.876a.463.463 0 0 1-.468-.466c0-.041 0-.096.013-.137.675-2.197.386-6.671.097-10.98-.138-2.128-.276-4.132-.29-5.875a.46.46 0 0 1 .455-.467.48.48 0 0 1 .468.453c.014 1.716.151 3.72.289 5.833.289 4.406.578 8.95-.138 11.31a.43.43 0 0 1-.426.33zm16.531 4.516a.449.449 0 0 1-.455-.398c-.013-.11-1.665-11.145-2.808-22.03a.465.465 0 0 1 .386-.535.466.466 0 0 1 .537.385v.055c1.128 10.87 2.78 21.878 2.794 21.988a.462.462 0 0 1-.386.521c-.027.014-.055.014-.068.014z" fill="#204A69" fill-rule="nonzero"/><path d="M174.657 9.663v-.947a.921.921 0 1 1 1.844 0V9.73" fill="#E1E2E2" fill-rule="nonzero"/><path d="M143.329 29.565v-.234a3.557 3.557 0 0 1-1.225.618s1.032-3.747-.055-4.008c-1.088-.26-5.286 7.151-5.286 7.151l1.514 3.624s1.624-1.455 6.869-4.132c1.183-1.111 1.885-2.14 2.243-3.02h-4.06z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M141.099 35.096a.46.46 0 0 1-.44-.48.473.473 0 0 1 .44-.44c.523-.013 4.13-1.894 5.891-5.243a.463.463 0 0 1 .62-.22.46.46 0 0 1 .22.618c0 .014-.014.028-.014.028-1.844 3.486-5.767 5.737-6.717 5.737zm-2.836-2.965a.444.444 0 0 1-.454-.466c0-.138.055-.261.152-.343.385-.33 1.004-1.593 1.541-2.69 1.115-2.238 1.624-3.157 2.271-3.24a.67.67 0 0 1 .606.247c.633.741.482 2.54.303 3.624.385-.165.826-.426 1.073-.755a.453.453 0 0 1 .634-.137.45.45 0 0 1 .137.631c-.014.014-.014.027-.027.041-.716 1.002-2.258 1.345-2.313 1.359a.468.468 0 0 1-.55-.55c.234-1.056.399-2.744.151-3.417-.372.44-1.018 1.716-1.459 2.608-.647 1.29-1.252 2.512-1.762 2.979a.482.482 0 0 1-.303.11z" fill="#204A69" fill-rule="nonzero"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165zm-1.28-4.31c.427.179.165 3.061.757 4.214.124-.027.262-.04.385-.068-.275-.494-.357-1.743-.412-2.457-.083-1.167-.124-1.812-.592-2.004-.744-.302-1.72.467-2.382 1.88a6.266 6.266 0 0 0-.591 2.787l.509.04c-.152-2.456 1.514-4.72 2.326-4.391z"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165z"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165zm.344-.274l.303-.082c-.11.027-.206.055-.303.082zm2.67-.947l-.15.069.15-.07z"/><path d="M59.779 19.504h-4.542a.921.921 0 0 0-.923.92c0 .507.413.92.923.92h4.542a.921.921 0 0 0 0-1.84zm9.084 0h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm45.395 0h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm13.613 0a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h1.101v-1.84h-1.1zm-4.541-.769h-4.543a.921.921 0 0 0-.922.92c0 .508.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm-45.396.769h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h3.771c.303-.632.647-1.236 1.046-1.799a.89.89 0 0 0-.275-.041zm27.24 0h-4.542a1.05 1.05 0 0 0-.29.041c.4.577.744 1.18 1.047 1.798h3.785a.921.921 0 0 0 0-1.84z" fill="#E1E2E2" fill-rule="nonzero"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165z"/><path d="M92.717 40.024l-.303.082c-.027.137-.069.247-.151.274-.124.042-.165.014-.193 0a.404.404 0 0 1-.138-.164c-.275-.494-.357-1.743-.412-2.457-.083-1.167-.124-1.812-.592-2.004-.744-.302-1.72.467-2.382 1.88a6.266 6.266 0 0 0-.591 2.787c.055 1.715.908 3.486 3.207 4.68a.578.578 0 0 0 .22.055.444.444 0 0 0 .454-.467.442.442 0 0 0-.248-.398c-3.29-1.716-2.808-4.502-2.45-5.627.4-1.236 1.06-1.894 1.35-2.018.054.398.096.796.123 1.194.083 1.318.193 2.814.95 3.322a1.1 1.1 0 0 0 .99.11c.675-.22.813-.742.8-1.4-.083.027-.221.068-.359.11l-.137.04h-.138z" fill="#204A69" fill-rule="nonzero"/><path fill="#204A69" fill-rule="nonzero" d="M92.84 39.996l.138-.041-.261.069zm1.928-.7l-.083.041c-.165.083-.358.151-.454.192.44 1.044.66 2.169.633 3.295 0 .26.207.466.455.466a.48.48 0 0 0 .467-.453 9.13 9.13 0 0 0-.715-3.678l-.152.068-.151.07z"/><path fill="#204A69" fill-rule="nonzero" d="M94.92 39.227l-.235.11.083-.04z"/><path d="M108.753 108.912c-1.57 0-2.987-.192-3.744-.769a1.54 1.54 0 0 1-.647-1.18c-.028-.412-.083-1.016-.138-1.77-.413-4.681-1.376-15.648.606-28.124a.467.467 0 0 1 .537-.371c.234.041.399.26.371.508-1.954 12.353-.99 23.237-.578 27.89.069.782.124 1.386.151 1.798a.643.643 0 0 0 .29.494c1.596 1.222 7.97.22 10.295-.26a.466.466 0 0 1 .537.384.458.458 0 0 1-.344.521c-.62.138-4.28.879-7.336.879zm13.227-.687c-1.707 0-3.152-.15-3.799-.576-1.431-.947-1.156-13.931-.963-19.463 0-.247.179-.439.426-.453h.055c.262.014.455.22.44.48-.288 8.552-.15 17.871.579 18.695 1.266.837 8.01.247 12.237-.357l-.799-14.041a.46.46 0 0 1 .44-.48.435.435 0 0 1 .482.384v.04l.826 14.454a.462.462 0 0 1-.399.48c-.784.124-5.78.837-9.525.837zm7.984-22.839a.452.452 0 0 1-.455-.425l-.99-12.161a.461.461 0 0 1 .426-.494c.261-.014.482.165.495.425l.991 12.161a.461.461 0 0 1-.426.494h-.041z" fill="#6F93AD" fill-rule="nonzero"/><path d="M142.324 35.81l-4.446-4.598c-2.175 4.337-8.63 10.788-13.503 11.996a5.975 5.975 0 0 1-.344-.137c-1.57-.577-10.53-1.18-12.663-.275-1.377.577-2.326 1.03-2.96 1.62-4.225 3.308-6.882 6.162-6.882 6.162l-5.175-8.043-4.611 3.28s3.95 14.454 10.048 14.124a14.78 14.78 0 0 0 5.753-1.55l.51 14.52 20.426-.356-.496-20.808c7.598-3.83 14.343-15.935 14.343-15.935z" fill="#BBC9D5" fill-rule="nonzero"/><path d="M107.115 73.445a.46.46 0 0 1-.44-.48.473.473 0 0 1 .44-.44l21.857-.22a.446.446 0 0 1 .468.426v.042a.46.46 0 0 1-.454.466l-21.871.206zM103.729 60.2a.463.463 0 0 1-.468-.467c0-.178.11-.343.275-.425l3.992-1.784a.457.457 0 0 1 .619.192.454.454 0 0 1-.193.617c-.014.014-.027.014-.041.028l-3.992 1.784a.345.345 0 0 1-.192.055z" fill="#204A69" fill-rule="nonzero"/><path d="M83.522 100.141h-.068l-13.283.206-13.407.137-26.964.11a.5.5 0 0 1-.51-.508l-.013-7.508c0-.288.234-.521.523-.521l26.785.055 26.786.192a.27.27 0 0 1 .262.26l-.11 7.577zm-.261-.123v-.069l-.138-7.384.262.26-26.786.206-26.785.055.523-.521-.014 7.508-.51-.508 26.621.11 13.38.137 13.447.206z" fill="#CCCED0" fill-rule="nonzero"/><path d="M29.896 97.314c.248 2.731.303 5.462.372 8.194l.055 8.194c-.055 5.463-.028 10.925-.344 16.388-.014.096-.096.179-.207.165-.096-.014-.165-.082-.165-.165-.316-5.463-.289-10.925-.33-16.388l.055-8.194c.069-2.732.11-5.463.372-8.194 0-.055.04-.096.096-.096.055 0 .096.04.096.096zm53.585 2.772c.262 2.498.303 4.996.372 7.508l.055 7.508c-.055 4.996-.028 10.006-.33 15.002a.188.188 0 0 1-.207.165c-.096-.014-.165-.083-.165-.165-.317-4.996-.29-10.006-.344-15.002l.055-7.508c.069-2.498.124-4.996.371-7.508 0-.055.042-.096.097-.096s.096.041.096.096z" fill="#CCCED0" fill-rule="nonzero"/></g></svg> \ No newline at end of file
+<svg width="215" height="133" viewBox="0 0 215 133" xmlns="http://www.w3.org/2000/svg"><title>design &amp; customization image</title><g fill="none" fill-rule="evenodd"><path d="M141.14 58.004v41.725h25.726V55.355H143.81a2.657 2.657 0 0 0-2.67 2.649z"/><path d="M129 29.455v-9.128h-28.148c.192.33.385.673.55 1.03 3.18 6.657.344 14.618-6.317 17.816l-.152.068-.234.11c-.55.247-1.129.453-1.707.618l-.261.068c-.097.028-.207.055-.303.083-.151.04-.317.068-.468.11-.275-.495-.358-1.744-.413-2.457-.083-1.167-.124-1.812-.592-2.004-.743-.302-1.72.466-2.381 1.88a6.266 6.266 0 0 0-.592 2.786c-7.378-.727-12.76-7.288-12.03-14.631a13.002 13.002 0 0 1 1.239-4.42c.165-.357.358-.686.55-1.03H48.464V67.75c4.226.082 12.54-1.469 12.65 2.443V56.07h54.383v16.758c4.336-.027 8.7 1.002 13.021.289a.344.344 0 0 1 .413.26c.427 2.526 2.092 25.351 2.271 27.616.152 2.059.496 4.077.07 6.122a.368.368 0 0 1-.345.247c-1.555.082-3.11.288-4.666.274-1.46 0-7.006-.15-7.405-.288-.496-.178-2.877.398-4.102.48-1.17.07-5.795.385-6.937.412-1.432.028-2.932-.014-2.974-1.386-.013-.769-.743-6.314-.633-7.11H61.54c0 .179-8.836-.014-13.076-.055v12.504h127.17V29.455H129zm37.866 70.26H141.14V57.99a2.654 2.654 0 0 1 2.657-2.649h23.069v44.375z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M100.838 20.314a9.124 9.124 0 0 0-.495-.769c-4.185-6.094-12.526-7.659-18.637-3.486a13.386 13.386 0 0 0-3.497 3.486c-.179.247-.33.508-.495.782-.193.33-.386.673-.55 1.03-3.18 6.67-.331 14.659 6.358 17.83 1.39.658 2.89 1.07 4.433 1.22a6.121 6.121 0 0 1 .591-2.785c.661-1.4 1.638-2.17 2.382-1.88.468.191.523.836.592 2.003.055.714.137 1.963.412 2.457.166-.027.317-.069.468-.11a9.08 9.08 0 0 0 .303-.082l.262-.069c.578-.165 1.156-.37 1.707-.617l.234-.11.151-.069c6.69-3.17 9.525-11.145 6.332-17.802-.166-.357-.358-.686-.551-1.03z" fill="#069e08" fill-rule="nonzero"/><path d="M166.825 55.451h-23.056a2.654 2.654 0 0 0-2.656 2.649v41.725h25.712V55.451z"/><path fill="#D8DEE4" fill-rule="nonzero" d="M128.972 9.759V29.55h53.778V9.759z"/><path d="M52.208 87.253l7.158-.055.523 5.669-5.836-.522s-2.313-.467-1.845-5.092z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M50.708 21.343h-2.312a.921.921 0 0 1-.923-.92v-2.305a.921.921 0 0 1 1.845 0v1.386h1.39a.921.921 0 0 1 0 1.84zm-2.312-6.986a.921.921 0 0 1-.923-.92V8.743a.921.921 0 0 1 1.845 0v4.694c0 .508-.413.92-.922.92zm1.252-9.128a.921.921 0 0 1-.77-1.427 8.532 8.532 0 0 1 4.046-3.24.932.932 0 0 1 1.198.536.928.928 0 0 1-.537 1.194 6.684 6.684 0 0 0-3.166 2.54.922.922 0 0 1-.77.397zm124.664-.027a.937.937 0 0 1-.77-.412 6.691 6.691 0 0 0-3.18-2.525.923.923 0 0 1-.537-1.194.927.927 0 0 1 1.198-.536 8.396 8.396 0 0 1 4.06 3.226.922.922 0 0 1-.248 1.276.878.878 0 0 1-.523.165zm-8.258-3.363h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.694a.92.92 0 0 1 .014 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.415 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.694a.92.92 0 0 1 .014 1.84zm-9.401 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.402 0h-4.707a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.414 0h-4.694a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707c.51 0 .923.412.923.92a.942.942 0 0 1-.936.92zm-9.401 0H86.11a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84zm-9.402 0H76.71a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.4 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.707a.921.921 0 0 1 0 1.84zm-9.415 0h-4.708a.921.921 0 0 1-.922-.92c0-.507.413-.919.922-.919h4.708a.921.921 0 0 1 0 1.84z" fill="#E1E2E2" fill-rule="nonzero"/><path d="M115.47 107.484s-.661 14.234-2.808 22.936l-12.609.164s-1.018-.645.33-1.317c1.405-.7 5.176-1.455 5.603-2.306.826-1.647.495-18.557.495-18.557m13.889-.48s.66 13.3 2.808 22.015l11.025.165s1.019-.645-.33-1.318c-1.404-.7-5.176-1.455-5.603-2.306-.825-1.647 1.61-19.49 1.61-19.49" fill="#B0B5B8" fill-rule="nonzero"/><path d="M92.442 40.71s.289.247.399-.714c-.427.124-.867.22-1.294.288.193.37.468.563.895.426z"/><path d="M92.442 40.71c-.427.137-.702-.055-.895-.426-.743.124-1.5.192-2.257.192-.276 0-.537-.013-.812-.027.096 1.496.88 3.047 2.931 4.118l1.5.81 2.506-1.538c.261-2.086-.18-3.582-.647-4.53a13.29 13.29 0 0 1-1.927.687c-.11.96-.4.714-.4.714z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M91.547 40.284c-.592-1.153-.317-4.035-.757-4.213-.812-.33-2.478 1.935-2.312 4.378.261.014.536.027.812.027.757 0 1.514-.068 2.257-.192z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M125.641 87.898a.46.46 0 0 1-.454-.467c0-.233.18-.411.4-.439l5.106-.549a.466.466 0 1 1 .151.92h-.055l-5.106.549-.042-.014z" fill="#6F93AD" fill-rule="nonzero"/><path d="M129.179 90.63a3.344 3.344 0 0 1-2.368-.906 2.573 2.573 0 0 1-.825-2.032c0-.247.206-.44.454-.44h.041a.47.47 0 0 1 .44.481 1.72 1.72 0 0 0 .551 1.318 2.483 2.483 0 0 0 1.968.645l.895-.247a.46.46 0 0 1 .564.33.459.459 0 0 1-.33.562l-.963.261c-.166.014-.29.027-.427.027z" fill="#6F93AD" fill-rule="nonzero"/><path d="M103.729 60.2a.463.463 0 0 1-.468-.467c0-.178.11-.343.275-.425l3.992-1.784a.457.457 0 0 1 .619.192.454.454 0 0 1-.193.617c-.014.014-.027.014-.041.028l-3.992 1.784a.345.345 0 0 1-.192.055z" fill="#204A69" fill-rule="nonzero"/><path d="M108.698 32.873c.027.549.178.96.371 1.07.124.082.33-.014.482-.11a5.97 5.97 0 0 1-.041-.7l-.812-.26zm.522-1.551a1.4 1.4 0 0 0-.412.603l.715.248c.028-.302.055-.59.11-.879a.494.494 0 0 1-.137-.096.71.71 0 0 0-.275.124z"/><path d="M113.377 37.622a2.781 2.781 0 0 1-1.404-2.361l.138-1.25-1.665-.548a9.6 9.6 0 0 0 .165 1.262c.454 2.17.99 3.871 3.4 4.255a.452.452 0 0 1 .385.398l.303 2.526a.461.461 0 0 1-.4.508h-.054a.445.445 0 0 1-.29-.11v1.167l5.782.302V38.61c-.248.123-.51.22-.785.288-2.436.577-4.322-.576-5.575-1.276zm4.969-3.597l-1.486-3.98s-1.969-1.098-3.827-.988c.95 2.21 2.905 4.365 5.313 4.968zm-7.68-3.198a8.335 8.335 0 0 0-.234 1.648l1.775.59.207-1.99c.014 0-1.06.137-1.748-.248z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M121.843 33.737a5.558 5.558 0 0 1-3.497.275c-2.408-.604-4.35-2.76-5.299-4.969-.523-1.235-.743-2.498-.564-3.514-.923.714-1.707 1.88-2.285 3.651a3.9 3.9 0 0 0-.097.371c-.096.247-.178.508-.261.769a.948.948 0 0 0-.55-.042c-.62.138-1.35.77-1.487 1.88-.11.893.027 2.1.77 2.554.18.11.386.164.592.164.18 0 .345-.04.51-.096.014.042.014.083.027.11.468 2.251 1.129 4.324 3.813 4.914l.262 2.196a.46.46 0 0 0 .454.412h.055c.248-.028.44-.261.399-.508l-.303-2.526a.452.452 0 0 0-.385-.398c-2.395-.384-2.946-2.086-3.4-4.255a9.6 9.6 0 0 1-.165-1.262l1.665.549-.137 1.249a2.76 2.76 0 0 0 1.404 2.36c1.252.7 3.138 1.854 5.547 1.29.275-.068.537-.164.784-.287 1.638-.838 2.56-2.951 2.85-5.257a3.109 3.109 0 0 1-.702.37zm-12.774.206c-.179-.11-.344-.521-.371-1.07l.812.26c0 .234.013.467.04.7-.164.096-.357.192-.48.11zm.454-1.77l-.715-.248c.082-.233.22-.452.413-.603a.742.742 0 0 1 .275-.138.494.494 0 0 0 .137.096c-.055.302-.082.604-.11.893zm2.684.892l-1.775-.59a8.335 8.335 0 0 1 .234-1.648c.688.385 1.762.248 1.762.248l-.22 1.99z" fill="#204A69" fill-rule="nonzero"/><path d="M113.9 23.635c-.812.357-1.266 1.043-1.417 1.908-.661 3.651 3.895 10.445 9.36 8.194.247-.096.495-.22.715-.357 5.437-3.198-2.078-12.613-8.658-9.745z" fill="#BBC9D5" fill-rule="nonzero"/><path d="M37.907 85.455h20.674c.647 0 1.17-.522 1.17-1.167v-.055l-.592-13.711a.89.89 0 0 0-.88-.851H37.631l.275 13.986" fill="#969CA1" fill-rule="nonzero" opacity=".26"/><path d="M59.793 92.88c-.386-2.196-.565-4.392-.744-6.602l-.11-1.66-.055-.824-.014-.206v-.274c.014-.234.11-.467.262-.66a1.48 1.48 0 0 1 1.101-.52l.84-.014 1.665-.014 1.666.014.84.013a1.48 1.48 0 0 1 1.1.522c.152.178.248.412.262.645l.014.425.041.824.069 1.66c.082 2.21.151 4.42.11 6.63 0 .096-.096.179-.193.179a.19.19 0 0 1-.179-.151c-.289-2.196-.468-4.406-.647-6.602l-.123-1.647-.056-.824-.027-.398c0-.041-.028-.082-.055-.11a.533.533 0 0 0-.372-.15l-.812.013-1.665.014-1.666-.014h-.812a.533.533 0 0 0-.372.151c-.027.027-.04.069-.055.096v.137l.014.206.041.824.083 1.66c.055 2.21.138 4.42 0 6.644 0 .055-.055.082-.096.082-.014 0-.042-.027-.055-.069z" fill="#CCCED0" fill-rule="nonzero"/><path fill="#F6F6F6" fill-rule="nonzero" d="M64.94 90.3l-.344-6.08h-3.62l.344 6.066z"/><path d="M54.053 96.23a2.87 2.87 0 0 1 1.252-.371 12.56 12.56 0 0 1 1.253-.055c.413.014.826.041 1.252.069.427.04.84.123 1.253.274a.203.203 0 0 1 .11.26.15.15 0 0 1-.11.11c-.4.152-.826.234-1.253.275-.412.028-.825.055-1.252.069-.413 0-.826-.014-1.253-.055a2.883 2.883 0 0 1-1.252-.37c-.055-.028-.069-.097-.041-.152.013-.013.027-.04.04-.055zm4.363-4.077c-2.367-.165-4.735-.22-7.116-.26l-3.551-.042-1.776-.014-.895-.013a2.13 2.13 0 0 1-.715-.124 2.304 2.304 0 0 1-1.583-2.21l-.028-2.402c-.316-.013-.633-.027-.95-.027l-.027 2.43a3.315 3.315 0 0 0 2.244 3.197c.33.11.688.151 1.032.165l.895-.014 1.775-.014 3.551-.04c2.368-.042 4.735-.097 7.117-.261.096-.014.179-.097.165-.206.014-.083-.055-.151-.138-.165z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M54.989 92.153c-1.184-.165-2.106-1.043-2.285-2.1-.069-.467-.014-1.18-.014-1.784l.028-1.345h-1.033l.028 1.345c.041.645-.041 1.207.11 1.976a3.065 3.065 0 0 0 1.184 1.757 2.88 2.88 0 0 0 1.968.522.205.205 0 0 0 .165-.165c.028-.096-.055-.192-.151-.206z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M59.462 86.663c-.248.068-.51.096-.77.096h-.732c-3.88.014-7.776.055-11.658.096-4.198.069-8.382.15-12.58.288a.094.094 0 0 0-.097.096c0 .055.042.096.097.096 4.198.138 8.382.22 12.58.289 4.199.04 8.383.096 12.581.096h.014c.027 0 .055 0 .082-.014.152-.014.303-.028.468-.055l.014-.988z" fill="#CCCED0" fill-rule="nonzero"/><path d="M61.981 81.557l-.33-8.4-.083-2.1c-.014-.37-.014-.659-.055-1.098a2.989 2.989 0 0 0-2.505-2.54 4.306 4.306 0 0 0-.84-.04c-.027 0-.068-.014-.096-.014l-21.885.082-1.363.014a2.187 2.187 0 0 0-1.542.535 2.15 2.15 0 0 0-.743 1.469c-.014.535.014.933.028 1.4l.137 5.449c.083 3.637.207 7.274.344 10.898 0 .096.083.178.18.178a.182.182 0 0 0 .178-.178c.014-3.637.014-7.275-.027-10.912l-.042-5.449c0-.44-.013-.947 0-1.318a1.32 1.32 0 0 1 .482-.892c.275-.233.633-.343.991-.302h.537l.22 7.55c.069 2.662.193 5.311.303 7.974 0 .096.083.178.193.178.096 0 .179-.082.179-.192 0-2.663.013-5.325-.028-7.974l-.082-7.522h.04l21.377.069.014-.014h.289c.316-.014.647 0 .963.027a2 2 0 0 1 1.35.892c.15.234.233.495.275.77.027.246.027.672.055 1.001l.096 2.1.193 4.2.192 4.2.042.837a5.91 5.91 0 0 1 .977.028l-.014-.906z" fill="#CCCED0" fill-rule="nonzero"/><path d="M59.793 92.88c-.386-2.196-.565-4.392-.744-6.602l-.11-1.66-.055-.824-.014-.206v-.274c.014-.234.11-.467.262-.66a1.48 1.48 0 0 1 1.101-.52l.84-.014 1.665-.014 1.666.014.84.013a1.48 1.48 0 0 1 1.1.522c.152.178.248.412.262.645l.014.425.041.824.069 1.66c.082 2.21.151 4.42.11 6.63 0 .096-.096.179-.193.179a.19.19 0 0 1-.179-.151c-.289-2.196-.468-4.406-.647-6.602l-.123-1.647-.056-.824-.027-.398c0-.041-.028-.082-.055-.11a.533.533 0 0 0-.372-.15l-.812.013-1.665.014-1.666-.014h-.812a.533.533 0 0 0-.372.151c-.027.027-.04.069-.055.096v.137l.014.206.041.824.083 1.66c.055 2.21.138 4.42 0 6.644 0 .055-.055.082-.096.082-.014 0-.042-.027-.055-.069z" fill="#CCCED0" fill-rule="nonzero"/><path fill="#F6F6F6" fill-rule="nonzero" d="M64.94 90.3l-.344-6.08h-3.62l.344 6.066z"/><path d="M54.053 96.23a2.87 2.87 0 0 1 1.252-.371 12.56 12.56 0 0 1 1.253-.055c.413.014.826.041 1.252.069.427.04.84.123 1.253.274a.203.203 0 0 1 .11.26.15.15 0 0 1-.11.11c-.4.152-.826.234-1.253.275-.412.028-.825.055-1.252.069-.413 0-.826-.014-1.253-.055a2.883 2.883 0 0 1-1.252-.37c-.055-.028-.069-.097-.041-.152.013-.013.027-.04.04-.055zM.179 131.682c17.866-.507 35.746-.617 53.612-.74l53.613-.124c35.746.11 71.492.055 107.224.672a.366.366 0 0 1 .344.385.37.37 0 0 1-.344.343c-35.746.631-71.492.562-107.224.672l-53.613-.123c-17.866-.124-35.746-.234-53.612-.742a.182.182 0 0 1-.179-.178c0-.082.083-.165.179-.165z" fill="#F6F6F6" fill-rule="nonzero"/><path d="M106.647 125.876a.463.463 0 0 1-.468-.466c0-.041 0-.096.013-.137.675-2.197.386-6.671.097-10.98-.138-2.128-.276-4.132-.29-5.875a.46.46 0 0 1 .455-.467.48.48 0 0 1 .468.453c.014 1.716.151 3.72.289 5.833.289 4.406.578 8.95-.138 11.31a.43.43 0 0 1-.426.33zm16.531 4.516a.449.449 0 0 1-.455-.398c-.013-.11-1.665-11.145-2.808-22.03a.465.465 0 0 1 .386-.535.466.466 0 0 1 .537.385v.055c1.128 10.87 2.78 21.878 2.794 21.988a.462.462 0 0 1-.386.521c-.027.014-.055.014-.068.014z" fill="#204A69" fill-rule="nonzero"/><path d="M174.657 9.663v-.947a.921.921 0 1 1 1.844 0V9.73" fill="#E1E2E2" fill-rule="nonzero"/><path d="M143.329 29.565v-.234a3.557 3.557 0 0 1-1.225.618s1.032-3.747-.055-4.008c-1.088-.26-5.286 7.151-5.286 7.151l1.514 3.624s1.624-1.455 6.869-4.132c1.183-1.111 1.885-2.14 2.243-3.02h-4.06z" fill="#B0B5B8" fill-rule="nonzero"/><path d="M141.099 35.096a.46.46 0 0 1-.44-.48.473.473 0 0 1 .44-.44c.523-.013 4.13-1.894 5.891-5.243a.463.463 0 0 1 .62-.22.46.46 0 0 1 .22.618c0 .014-.014.028-.014.028-1.844 3.486-5.767 5.737-6.717 5.737zm-2.836-2.965a.444.444 0 0 1-.454-.466c0-.138.055-.261.152-.343.385-.33 1.004-1.593 1.541-2.69 1.115-2.238 1.624-3.157 2.271-3.24a.67.67 0 0 1 .606.247c.633.741.482 2.54.303 3.624.385-.165.826-.426 1.073-.755a.453.453 0 0 1 .634-.137.45.45 0 0 1 .137.631c-.014.014-.014.027-.027.041-.716 1.002-2.258 1.345-2.313 1.359a.468.468 0 0 1-.55-.55c.234-1.056.399-2.744.151-3.417-.372.44-1.018 1.716-1.459 2.608-.647 1.29-1.252 2.512-1.762 2.979a.482.482 0 0 1-.303.11z" fill="#204A69" fill-rule="nonzero"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165zm-1.28-4.31c.427.179.165 3.061.757 4.214.124-.027.262-.04.385-.068-.275-.494-.357-1.743-.412-2.457-.083-1.167-.124-1.812-.592-2.004-.744-.302-1.72.467-2.382 1.88a6.266 6.266 0 0 0-.591 2.787l.509.04c-.152-2.456 1.514-4.72 2.326-4.391z"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165z"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165zm.344-.274l.303-.082c-.11.027-.206.055-.303.082zm2.67-.947l-.15.069.15-.07z"/><path d="M59.779 19.504h-4.542a.921.921 0 0 0-.923.92c0 .507.413.92.923.92h4.542a.921.921 0 0 0 0-1.84zm9.084 0h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm45.395 0h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm13.613 0a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h1.101v-1.84h-1.1zm-4.541-.769h-4.543a.921.921 0 0 0-.922.92c0 .508.413.92.922.92h4.542a.921.921 0 0 0 0-1.84zm-45.396.769h-4.542a.921.921 0 0 0-.922.92c0 .507.413.92.922.92h3.771c.303-.632.647-1.236 1.046-1.799a.89.89 0 0 0-.275-.041zm27.24 0h-4.542a1.05 1.05 0 0 0-.29.041c.4.577.744 1.18 1.047 1.798h3.785a.921.921 0 0 0 0-1.84z" fill="#E1E2E2" fill-rule="nonzero"/><path d="M92.07 40.38c.014.014.055.042.193 0 .082-.027.124-.123.151-.274-.151.041-.316.069-.468.11.014.055.07.11.124.165z"/><path d="M92.717 40.024l-.303.082c-.027.137-.069.247-.151.274-.124.042-.165.014-.193 0a.404.404 0 0 1-.138-.164c-.275-.494-.357-1.743-.412-2.457-.083-1.167-.124-1.812-.592-2.004-.744-.302-1.72.467-2.382 1.88a6.266 6.266 0 0 0-.591 2.787c.055 1.715.908 3.486 3.207 4.68a.578.578 0 0 0 .22.055.444.444 0 0 0 .454-.467.442.442 0 0 0-.248-.398c-3.29-1.716-2.808-4.502-2.45-5.627.4-1.236 1.06-1.894 1.35-2.018.054.398.096.796.123 1.194.083 1.318.193 2.814.95 3.322a1.1 1.1 0 0 0 .99.11c.675-.22.813-.742.8-1.4-.083.027-.221.068-.359.11l-.137.04h-.138z" fill="#204A69" fill-rule="nonzero"/><path fill="#204A69" fill-rule="nonzero" d="M92.84 39.996l.138-.041-.261.069zm1.928-.7l-.083.041c-.165.083-.358.151-.454.192.44 1.044.66 2.169.633 3.295 0 .26.207.466.455.466a.48.48 0 0 0 .467-.453 9.13 9.13 0 0 0-.715-3.678l-.152.068-.151.07z"/><path fill="#204A69" fill-rule="nonzero" d="M94.92 39.227l-.235.11.083-.04z"/><path d="M108.753 108.912c-1.57 0-2.987-.192-3.744-.769a1.54 1.54 0 0 1-.647-1.18c-.028-.412-.083-1.016-.138-1.77-.413-4.681-1.376-15.648.606-28.124a.467.467 0 0 1 .537-.371c.234.041.399.26.371.508-1.954 12.353-.99 23.237-.578 27.89.069.782.124 1.386.151 1.798a.643.643 0 0 0 .29.494c1.596 1.222 7.97.22 10.295-.26a.466.466 0 0 1 .537.384.458.458 0 0 1-.344.521c-.62.138-4.28.879-7.336.879zm13.227-.687c-1.707 0-3.152-.15-3.799-.576-1.431-.947-1.156-13.931-.963-19.463 0-.247.179-.439.426-.453h.055c.262.014.455.22.44.48-.288 8.552-.15 17.871.579 18.695 1.266.837 8.01.247 12.237-.357l-.799-14.041a.46.46 0 0 1 .44-.48.435.435 0 0 1 .482.384v.04l.826 14.454a.462.462 0 0 1-.399.48c-.784.124-5.78.837-9.525.837zm7.984-22.839a.452.452 0 0 1-.455-.425l-.99-12.161a.461.461 0 0 1 .426-.494c.261-.014.482.165.495.425l.991 12.161a.461.461 0 0 1-.426.494h-.041z" fill="#6F93AD" fill-rule="nonzero"/><path d="M142.324 35.81l-4.446-4.598c-2.175 4.337-8.63 10.788-13.503 11.996a5.975 5.975 0 0 1-.344-.137c-1.57-.577-10.53-1.18-12.663-.275-1.377.577-2.326 1.03-2.96 1.62-4.225 3.308-6.882 6.162-6.882 6.162l-5.175-8.043-4.611 3.28s3.95 14.454 10.048 14.124a14.78 14.78 0 0 0 5.753-1.55l.51 14.52 20.426-.356-.496-20.808c7.598-3.83 14.343-15.935 14.343-15.935z" fill="#BBC9D5" fill-rule="nonzero"/><path d="M107.115 73.445a.46.46 0 0 1-.44-.48.473.473 0 0 1 .44-.44l21.857-.22a.446.446 0 0 1 .468.426v.042a.46.46 0 0 1-.454.466l-21.871.206zM103.729 60.2a.463.463 0 0 1-.468-.467c0-.178.11-.343.275-.425l3.992-1.784a.457.457 0 0 1 .619.192.454.454 0 0 1-.193.617c-.014.014-.027.014-.041.028l-3.992 1.784a.345.345 0 0 1-.192.055z" fill="#204A69" fill-rule="nonzero"/><path d="M83.522 100.141h-.068l-13.283.206-13.407.137-26.964.11a.5.5 0 0 1-.51-.508l-.013-7.508c0-.288.234-.521.523-.521l26.785.055 26.786.192a.27.27 0 0 1 .262.26l-.11 7.577zm-.261-.123v-.069l-.138-7.384.262.26-26.786.206-26.785.055.523-.521-.014 7.508-.51-.508 26.621.11 13.38.137 13.447.206z" fill="#CCCED0" fill-rule="nonzero"/><path d="M29.896 97.314c.248 2.731.303 5.462.372 8.194l.055 8.194c-.055 5.463-.028 10.925-.344 16.388-.014.096-.096.179-.207.165-.096-.014-.165-.082-.165-.165-.316-5.463-.289-10.925-.33-16.388l.055-8.194c.069-2.732.11-5.463.372-8.194 0-.055.04-.096.096-.096.055 0 .096.04.096.096zm53.585 2.772c.262 2.498.303 4.996.372 7.508l.055 7.508c-.055 4.996-.028 10.006-.33 15.002a.188.188 0 0 1-.207.165c-.096-.014-.165-.083-.165-.165-.317-4.996-.29-10.006-.344-15.002l.055-7.508c.069-2.498.124-4.996.371-7.508 0-.055.042-.096.097-.096s.096.041.096.096z" fill="#CCCED0" fill-rule="nonzero"/></g></svg>
diff --git a/plugins/jetpack/images/jetpack-license-activation-with-lock.png b/plugins/jetpack/images/jetpack-license-activation-with-lock.png
new file mode 100644
index 00000000..ea421dc0
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-license-activation-with-lock.png
Binary files differ
diff --git a/plugins/jetpack/images/jetpack-license-activation-with-success.png b/plugins/jetpack/images/jetpack-license-activation-with-success.png
new file mode 100644
index 00000000..a2562d9b
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-license-activation-with-success.png
Binary files differ
diff --git a/plugins/jetpack/images/jetpack-logo.svg b/plugins/jetpack/images/jetpack-logo.svg
index e4948415..c1eb4bff 100644
--- a/plugins/jetpack/images/jetpack-logo.svg
+++ b/plugins/jetpack/images/jetpack-logo.svg
@@ -1,27 +1,27 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
- viewBox="0 0 183 32" enable-background="new 0 0 183 32" xml:space="preserve">
-<path display="none" opacity="0.32" d="M54-26.1c0-2.2-1.8-3.9-3.9-3.9h-6l5.5,4.9v6.1c0,1.1-0.2,1.9-0.6,2.4
- c-0.5,0.6-1.2,0.9-2.1,0.9c-1.1,0-1.9-0.3-2.9-1.1l0,0c-0.2-0.2-0.4-0.4-0.7-0.6l-2.1,3.5c0.1,0.1,0.2,0.2,0.3,0.3
- c0,0,0.4,0.3,0.4,0.3c1.5,1.1,3.3,1.6,5,1.6c2.2,0,4.1-0.6,5.3-1.9c1.1-1.1,1.6-2.7,1.6-5v-2.6l0,0V-26.1z"/>
-<g>
- <g>
- <path fill="#FFFFFF" d="M54,10.9v4.8v2.6c0,2.2-0.5,4.3-1.5,5.4c-1.3,1.4-3.3,1.9-5.5,1.9c-3.4,0-5.9-2.6-6-2.7l2-4
- c0.2,0.2,0.7,1.1,2,1.7c1.2,0.6,2.2,0.8,3,0.3c0.8-0.5,1-2,1-3v-6.1L44,7h6C52.2,7,54,8.7,54,10.9z M81,10.9h5V25h5V10.9h5V7H81
- V10.9z M115,8.9c1.1,1.1,2,2.8,2,4.6c0,2.1-1,3.8-2.2,4.9c-1.2,1.1-3,1.6-5.1,1.6h-2.6v5H102V7h7.8C112.1,7,113.8,7.7,115,8.9z
- M112.4,13.4c0-0.9-0.6-1.5-1-1.9c-0.6-0.5-1.4-0.6-2.1-0.6h-2.3V16h2.3c0.7,0,1.4-0.1,2-0.5C111.8,15.1,112.4,14.4,112.4,13.4z
- M135.8,8.9c1.4,1.4,2.1,3.5,2.1,5.4V25h-5v-5h-6v5h-5V14.3c0-1.9,0.7-4,2.1-5.4c1.3-1.3,3.4-2.4,5.9-2.4
- C132.5,6.5,134.6,7.7,135.8,8.9z M132.5,12c-0.7-0.7-1.6-1-2.5-1c-0.9,0-1.9,0.3-2.5,1c-0.5,0.6-0.5,1.5-0.5,2.6V16h6v-1.4
- C132.9,13.5,133,12.6,132.5,12z M61.1,25H75v-3.9h-9v-3.2h7V14h-7v-3.1h9V7H61.1V25z M157.6,20c-0.1,0-0.2,0.1-0.3,0.1
- c0,0,0,0,0,0c-1,0.5-2.1,0.8-3.4,0.8c-1.5,0-2.9-0.5-3.8-1.5c-1-0.9-1.5-2.2-1.5-3.8c0-1.3,0.5-2.5,1.2-3.4
- c0.9-1.1,2.3-1.8,4.1-1.8c1,0,1.8,0.2,2.7,0.5c0,0,0.1,0,0.2,0.1c0.1,0,0.2,0.1,0.3,0.1c0,0,0.1,0,0.1,0.1c0.1,0,0.1,0.1,0.2,0.1
- c0.2,0.1,0.4,0.2,0.6,0.3l1.7-3.6c-0.3-0.2-0.7-0.4-1.1-0.6c-1.3-0.6-2.8-1-4.9-1c-2.8,0-5.5,1.2-7.3,3.1
- c-1.5,1.6-2.4,3.7-2.4,6.1c0,2.9,1.1,5.2,2.8,6.8c1.7,1.6,4.1,2.5,6.9,2.5c2.3,0,4-0.5,5.4-1.3c0,0,0.1,0,0.1,0c0,0,0,0,0,0
- c0.2-0.1,0.5-0.3,0.7-0.4l-1.8-3.6C157.9,19.8,157.7,19.9,157.6,20z M182,7h-5.8l-5.2,5.7V7h-3v0h-2v18h2h2.4h0.6v-6.5l0.5-0.5
- l5.3,7h5.2l-7.5-10.1L182,7z M32,16c0,8.8-7.2,16-16,16S0,24.8,0,16C0,7.2,7.2,0,16,0S32,7.2,32,16z M15,4.7L8.7,15.5
- c-0.7,1.1,0,2.6,1.2,2.9l5,1.3V4.7z M22,13.5l-5-1.3v15l6.3-10.8C23.9,15.3,23.3,13.9,22,13.5z"/>
- </g>
-</g>
-</svg>
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 183 32" enable-background="new 0 0 183 32" xml:space="preserve">
+<path display="none" opacity="0.32" d="M54-26.1c0-2.2-1.8-3.9-3.9-3.9h-6l5.5,4.9v6.1c0,1.1-0.2,1.9-0.6,2.4
+ c-0.5,0.6-1.2,0.9-2.1,0.9c-1.1,0-1.9-0.3-2.9-1.1l0,0c-0.2-0.2-0.4-0.4-0.7-0.6l-2.1,3.5c0.1,0.1,0.2,0.2,0.3,0.3
+ c0,0,0.4,0.3,0.4,0.3c1.5,1.1,3.3,1.6,5,1.6c2.2,0,4.1-0.6,5.3-1.9c1.1-1.1,1.6-2.7,1.6-5v-2.6l0,0V-26.1z"/>
+<g>
+ <g>
+ <path fill="#FFFFFF" d="M54,10.9v4.8v2.6c0,2.2-0.5,4.3-1.5,5.4c-1.3,1.4-3.3,1.9-5.5,1.9c-3.4,0-5.9-2.6-6-2.7l2-4
+ c0.2,0.2,0.7,1.1,2,1.7c1.2,0.6,2.2,0.8,3,0.3c0.8-0.5,1-2,1-3v-6.1L44,7h6C52.2,7,54,8.7,54,10.9z M81,10.9h5V25h5V10.9h5V7H81
+ V10.9z M115,8.9c1.1,1.1,2,2.8,2,4.6c0,2.1-1,3.8-2.2,4.9c-1.2,1.1-3,1.6-5.1,1.6h-2.6v5H102V7h7.8C112.1,7,113.8,7.7,115,8.9z
+ M112.4,13.4c0-0.9-0.6-1.5-1-1.9c-0.6-0.5-1.4-0.6-2.1-0.6h-2.3V16h2.3c0.7,0,1.4-0.1,2-0.5C111.8,15.1,112.4,14.4,112.4,13.4z
+ M135.8,8.9c1.4,1.4,2.1,3.5,2.1,5.4V25h-5v-5h-6v5h-5V14.3c0-1.9,0.7-4,2.1-5.4c1.3-1.3,3.4-2.4,5.9-2.4
+ C132.5,6.5,134.6,7.7,135.8,8.9z M132.5,12c-0.7-0.7-1.6-1-2.5-1c-0.9,0-1.9,0.3-2.5,1c-0.5,0.6-0.5,1.5-0.5,2.6V16h6v-1.4
+ C132.9,13.5,133,12.6,132.5,12z M61.1,25H75v-3.9h-9v-3.2h7V14h-7v-3.1h9V7H61.1V25z M157.6,20c-0.1,0-0.2,0.1-0.3,0.1
+ c0,0,0,0,0,0c-1,0.5-2.1,0.8-3.4,0.8c-1.5,0-2.9-0.5-3.8-1.5c-1-0.9-1.5-2.2-1.5-3.8c0-1.3,0.5-2.5,1.2-3.4
+ c0.9-1.1,2.3-1.8,4.1-1.8c1,0,1.8,0.2,2.7,0.5c0,0,0.1,0,0.2,0.1c0.1,0,0.2,0.1,0.3,0.1c0,0,0.1,0,0.1,0.1c0.1,0,0.1,0.1,0.2,0.1
+ c0.2,0.1,0.4,0.2,0.6,0.3l1.7-3.6c-0.3-0.2-0.7-0.4-1.1-0.6c-1.3-0.6-2.8-1-4.9-1c-2.8,0-5.5,1.2-7.3,3.1
+ c-1.5,1.6-2.4,3.7-2.4,6.1c0,2.9,1.1,5.2,2.8,6.8c1.7,1.6,4.1,2.5,6.9,2.5c2.3,0,4-0.5,5.4-1.3c0,0,0.1,0,0.1,0c0,0,0,0,0,0
+ c0.2-0.1,0.5-0.3,0.7-0.4l-1.8-3.6C157.9,19.8,157.7,19.9,157.6,20z M182,7h-5.8l-5.2,5.7V7h-3v0h-2v18h2h2.4h0.6v-6.5l0.5-0.5
+ l5.3,7h5.2l-7.5-10.1L182,7z M32,16c0,8.8-7.2,16-16,16S0,24.8,0,16C0,7.2,7.2,0,16,0S32,7.2,32,16z M15,4.7L8.7,15.5
+ c-0.7,1.1,0,2.6,1.2,2.9l5,1.3V4.7z M22,13.5l-5-1.3v15l6.3-10.8C23.9,15.3,23.3,13.9,22,13.5z"/>
+ </g>
+</g>
+</svg>
diff --git a/plugins/jetpack/images/jetpack-logomark-blue.svg b/plugins/jetpack/images/jetpack-logomark-blue.svg
new file mode 100644
index 00000000..30990a91
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-logomark-blue.svg
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="105" height="105" fill="none" viewBox="0 0 105 105">
+ <path fill="#C5D9ED" d="M52.4 104.8c28.9397 0 52.4-23.4603 52.4-52.4S81.3397 0 52.4 0 0 23.4603 0 52.4s23.4603 52.4 52.4 52.4z"/>
+ <path fill="#fff" d="M55 43.6001v50.8l26.2-50.8H55z"/>
+ <path fill="#fff" d="M49.7001 61.0999v-50.7l-26.1 50.7h26.1z"/>
+</svg>
diff --git a/plugins/jetpack/images/jetpack-new-heights.svg b/plugins/jetpack/images/jetpack-new-heights.svg
new file mode 100644
index 00000000..4230ae26
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-new-heights.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="newHeights" viewBox="0 0 1283.8 959.6"><style>.st0{fill:#d5e5eb}.st1{fill:#e9eff4}</style><circle cx="815.3" cy="202.1" r="22.7" class="st0"/><circle cx="115.9" cy="750.2" r="11.3" class="st0"/><path d="M359.3 695.8C99.5 887 67.6 909.9 0 959.6h3.2l193.3-121.5L43.3 959.6h11.6l148.9-109.8L85.5 959.6h12.7c97.2-77.1 83.9-66.9 282.4-223.2l-21.3-40.6z" class="st1"/><path fill="none" d="M205.9 849.7l-150 109.8h31.7l118.3-109.8zm-9.5-11.6L3.2 959.6h41.2l152-121.5z"/><path d="M1207.2 63.7C995.3 220.8 843.7 328.5 843.7 328.5l21.1 26c277.1-219.6 223.3-190.9 344.6-288.5-.9-.6-1.6-1.4-2.2-2.3z" class="st1"/><path fill="#004f82" d="M1279.6 8.5c-.8-1.6-2.2-2.8-4-3.1-2-.9-4.3-1.2-6.5-.8-1.4-.2-2.8-.3-4.3-.3-5.3 0-9.5 0-13.7 1.1-8.7 1.1-17.2 3.2-25.3 6.3-16.9 5.3-31.7 12.7-47.5 20.1-3.7 1.2-6.2 4.6-6.3 8.5-1.1 6.3 3.2 11.6 9.5 12.7h1.1c2.1 0 5.3 0 7.4 1.1 3.2 1.1 5.3 1.1 7.4 2.1 5.3 2.1 8.4 4.2 10.6 6.3 2.1 1.1 3.2 5.3 4.2 10.6v7.4c0 2.1-1.1 5.3-1.1 7.4V89c-1.1 3.5.2 7.4 3.2 9.5 5.3 4.2 11.6 3.2 15.8-1.1 1.1-1.1 2.1-3.2 4.2-4.2v-1c10-10.9 19.2-22.6 27.5-34.8 5-7.2 9.5-14.6 13.7-22.2 1.9-3.8 3.8-7.6 4.9-11.4 3.4-4.7 3.2-11.1-.8-15.3z"/><path d="M270.7 403.9c-12.3-6.2-24.7-12-37.2-17.9-12.6-5.5-25.2-11-37.9-16.2s-25-11.3-40.2-11.2l-1.6 3.6c9.9 11.5 22.6 16.7 34.9 22.9s24.7 12 37.2 17.9c12.6 5.5 25.2 11 37.9 16.2s25 11.3 40.2 11.2l1.6-3.6c-9.9-11.5-22.6-16.7-34.9-22.9zM440 197.7c-1.3-1.8-3.2-3.1-5.4-3.6l-4.8-1.8-35.9-12.6-9-3c-2.9-.6-5.7-1.6-8.4-3-4.9-2.6-8.7-6.8-10.8-12l-12.5-35.9-6.6-18c-.5-1.9-1.3-3.7-2.4-5.4-.5-1.4-1.6-2.5-3-3-1.7-1-3.9-.8-5.4.6-1.8 1.3-3.1 3.2-3.6 5.4l-1.8 4.8-12.6 35.9-3 9c-.6 2.9-1.6 5.7-3 8.4-3 4.8-7.8 9.6-12.6 11.4l-35.9 13.2-18 6.6c-1.7.7-3.3 1.5-4.8 2.4-.9.9-1.7 1.9-2.4 3-.4 1.6-.2 3.3.6 4.8 1.3 1.8 3.2 3.1 5.4 3.6l4.8 1.8 36.5 12c6 1.8 12.6 3.6 18 6 5.4 3 10.2 7.2 12.6 13.2l10.1 35.9 6 18c.7 1.7 1.5 3.3 2.4 4.8.6.6 1.2 1.8 2.4 2.4s3 0 4.2-.6c1.8-1.2 2.4-3 3-4.8l1.8-4.8 13.2-35.9 3-9c1.2-3 2.4-6 3.6-8.4 2.8-5.1 7.2-9.1 12.6-11.4l35.9-12.6 18-6.6c1.9-.5 3.7-1.3 5.4-2.4 1.4-.5 2.5-1.6 3-3 1.1-1.7.8-3.9-.6-5.4zM1114.4 329.8l4.4-9.6c1.1-1.2 1.4-2.9.7-4.4 0-1.5-1.5-2.9-2.9-3.7-1.2-.5-2.4-.8-3.7-.7-2 .5-4 1.2-5.9 2.2l-18.4 8.8c-2.9 1.5-5.9 3.7-8.1 3.7-2.2.7-5.2 0-7.4-.7l-18.4-8.8-9.5-4.4c-1.5-.7-2.2-1.5-5.2-.7-1.5 0-2.9 1.5-3.7 2.9-.5 1.2-.8 2.4-.7 3.7.5 2 1.2 4 2.2 5.9l8.8 18.4c1.5 2.9 3.7 5.9 3.7 8.1.5 2.7.3 5.5-.7 8.1l-8.8 18.4-4.4 9.6c-.7 1.5-1.5 2.2-.7 4.4.2 1.3 1 2.4 2.2 2.9h2.9c2-.5 4-1.2 5.9-2.2l18.4-9.6c2.9-1.5 5.9-3.7 8.8-4.4 3.1-.7 6.4-.7 9.6 0l19.1 11.8 9.6 4.4c.7.7 1.5.7 3.7.7 1.5 0 2.2-.7 2.9-2.2v-2.9c-.5-2-1.2-4-2.2-5.9l-8.1-18.4c-1.5-3.7-3.7-6.6-3.7-8.8-.5-2.7-.3-5.5.7-8.1l8.9-18.5z" class="st0"/><linearGradient id="SVGID_1_" x1="742.84" x2="742.84" y1="840.8" y2="1315.8" gradientTransform="matrix(1 0 0 -1 -124.74 1591)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#00aadc"/><stop offset=".3" stop-color="#03abd9"/><stop offset=".49" stop-color="#0bafd1"/><stop offset=".65" stop-color="#1ab5c2"/><stop offset=".79" stop-color="#2fbeae"/><stop offset=".92" stop-color="#49ca93"/><stop offset="1" stop-color="#5ed37f"/></linearGradient><path d="M922.3 748c-.3-1.1-1.1-1.1-1.4-1.4-.7-.2-1.4-.4-2.1-.7l-7.4-2.8c-1.1-.2-2-.7-2.8-1.4-.7-.7-1.3-1.6-1.8-2.5l-2.5-7.4-.7-1.8c-.3-.9-.8-1.8-1.4-2.5-.3-.3-.7-.3-1.4-.7-.3 0-1.4 0-1.8.3-1.1.3-1.1 1.1-1.4 1.4-.2.7-.4 1.4-.7 2.1l-2.5 7.4c-.2 1.1-.7 2-1.4 2.8-.7.7-1.6 1.3-2.5 1.8l-7.4 2.8-1.8.7c-.8.2-1.5.5-2.1 1.1-.3.3-.7.7-.7 1.1-.4.4-.4 1 0 1.4.3.7 1.1.7 1.4 1.1.7.2 1.4.4 2.1.7l7.4 2.1c1.1.3 2.2.8 3.2 1.4 1 .8 1.8 1.7 2.5 2.8l2.1 8.1.7 1.8c.3.3.3 1.4 1.1 2.1.3.3.7.7 1.1.7.4.4 1 .4 1.4 0 .7-.7.7-1.1 1.1-1.4.2-.7.4-1.4.7-2.1l2.8-7.4c.2-1.1.7-2 1.4-2.8.7-.7 1.6-1.3 2.5-1.8l7.4-2.5 1.8-.7c.9.1 1.9-.3 2.5-1.1.3 0 .3-.3.7-1.1.2-.4.2-1.1-.1-1.6zM473.3 777.7c-1.3-.6-3-.1-3.6 1.3 0 .1-.1.1-.1.2l-4.1 12.2-12.2 4.1c-.9.2-1.7.9-1.8 1.8-.2 1.4.6 2.8 1.9 3.3L466 805c1.5 4.3 3.2 8.5 5.2 12.6l.4.4c-.1.5.3 1 .9 1.1h.2c1 0 1.9-.6 2.2-1.5 1.5-4.4 2.2-8.9 3.3-13.7 5.2-1.5 9.6-2.2 14.4-3.3l1.1-1.1c.4-1 0-2.1-1-2.5h-.1c-4.3-1.5-8.5-3.2-12.6-5.2-1.5-4.4-3.3-8.5-4.4-12.6-.7-.7-1.4-1.2-2.3-1.5zM960.9 479.6c-3-1.5-6 0-7.5 3l-8.2 24.6-24.6 8.2c-1.9.4-3.3 1.9-3.7 3.7-.7 2.2.7 5.2 3.7 6.7l25.4 9c3 8.6 6.5 17.1 10.5 25.4l.7.7c-.1 1.1.6 2.1 1.7 2.2h.5c2 .1 3.8-1.1 4.5-3 3-9 4.5-17.9 6.7-27.6 10.5-3 18.7-5.2 29.1-6.7l2.2-2.2c.7-2.2 0-4.5-2.2-5.2-8.6-3-17.1-6.5-25.4-10.5-3-9-6.7-17.2-9-25.4-1.1-1.4-2.6-2.4-4.4-2.9zM652.1 829.1c-.7-2-2-2-2.7-2.7-1.4-.3-2.8-.8-4.1-1.4l-14.3-5.4c-2.7-.7-4.1-1.4-5.4-2.7-1.4-1.4-2.5-3-3.4-4.8l-4.8-14.3-1.4-3.4c-.7-1.4-.7-2.7-2.7-4.8-.7-.7-1.4-.7-2.7-1.4-.7 0-2.7 0-3.4.7-2 .7-2 2-2.7 2.7-.3 1.4-.8 2.8-1.4 4.1l-4.8 14.3c-.7 2.7-1.4 4.1-2.7 5.4-1.4 1.4-3 2.5-4.8 3.4l-14.3 5.4-3.4 1.4c-.7 0-2 .7-4.1 2-.7.7-1.4 1.4-1.4 2-.7.8-.7 1.9 0 2.7.7 1.4 2 1.4 2.7 2 1.4.3 2.8.8 4.1 1.4l14.3 4.1c2.2.6 4.2 1.5 6.1 2.7 1.9 1.5 3.6 3.3 4.8 5.4l4.1 15.6 1.4 3.4c.7.7.7 2.7 2 4.1.7.7 1.4 1.4 2 1.4.8.7 1.9.7 2.7 0 1.4-1.4 1.4-2 2-2.7.3-1.4.8-2.8 1.4-4.1l5.4-14.3c.7-2.7 1.4-4.1 2.7-5.4 1.4-1.4 3-2.5 4.8-3.4l14.3-4.8 3.4-1.4c1.8.1 3.6-.6 4.8-2 .7 0 .7-.7 1.4-2 .6-.8.7-2.1.1-3.2zM240 540.6c-.8-2.5-2.5-2.5-3.4-3.4-2.5-.8-3.4-.9-5-1.7l-17.7-6.7c-3.4-.9-5-1.7-6.7-3.4-1.7-1.8-3.1-3.7-4.2-5.9l-5.9-17.7-1.7-4.2c-.8-1.7-.9-3.4-3.4-5.9-.8-.8-1.7-.8-3.4-1.7-.8 0-3.4 0-4.2.8-2.5.8-2.5 2.5-3.4 3.4-.8 2.5-.9 3.4-1.7 5l-5.9 17.7c-.9 3.4-1.7 5-3.4 6.7-1.8 1.7-3.7 3.1-5.9 4.2l-17.6 6.7-4.2 1.7c-.8 0-2.5.8-5 2.5-.8.8-1.7 1.7-1.7 2.5-.8 1-.8 2.4 0 3.4.8 1.7 2.5 1.7 3.4 2.5 2.5.8 3.4.9 5 1.7l17.7 5c2.7.8 5.2 1.9 7.6 3.3 2.5 1.7 4.2 4.2 5.9 6.7l5 19.3 1.7 4.2c.8.8.9 3.4 2.5 5 .8.8 1.7 1.7 2.5 1.7 1 .8 2.4.8 3.4 0 1.7-1.7 1.7-2.5 2.5-3.4.8-2.5.9-3.4 1.7-5l6.7-17.7c.9-3.4 1.7-5 3.4-6.7 1.8-1.7 3.7-3.1 5.9-4.2l17.7-5.9 4.2-1.7c1.7 0 3.4 0 5.9-2.5.8 0 .8-.8 1.7-2.5.9-.9.9-2.5 0-3.8z" class="st0"/><g><path fill="#069e08" d="M618.1 279.9c-129.2 0-234 104.8-234 234s104.8 234 234 234 234-104.8 234-234c0-129.3-104.8-234-234-234zM606.2 553H489.5l116.7-226.8V553zM630 701.5V474.7h116.7L630 701.5z"/></g></svg>
diff --git a/plugins/jetpack/images/jetpack-performance.svg b/plugins/jetpack/images/jetpack-performance.svg
index baabe990..247fbb19 100644
--- a/plugins/jetpack/images/jetpack-performance.svg
+++ b/plugins/jetpack/images/jetpack-performance.svg
@@ -1 +1 @@
-<svg width="192" height="152" viewBox="0 0 192 152" xmlns="http://www.w3.org/2000/svg"><title>marketing &amp; performance image</title><g transform="translate(0 -2)" fill="none"><path d="M.183 142.316c14.936-.51 29.873-.628 44.822-.746l44.822-.118c29.872.118 59.758.053 89.63.68a.38.38 0 0 1 0 .76c-29.872.64-59.758.575-89.63.68l-44.822-.118c-14.936-.13-29.873-.235-44.822-.746-.105-.013-.183-.104-.17-.196 0-.118.079-.196.17-.196z" fill="#F6F6F6"/><ellipse fill="#FFF" cx="44.769" cy="32.959" rx="1.373" ry="1.374"/><path d="M181.968 64.936c-.719-.013-1.059-.117-1.778-.353-2.97-.994-4.408-3.559-4.29-6.45.026-.825-1.387-1.374-1.099-2.212.366-1.085 2.302-1.02 3.283-3.114 1.099-2.355 4.002-2.957 6.736-2.04a7.292 7.292 0 0 1 4.59 9.21" fill="#FFF"/><path d="M181.968 65.407c-.81-.013-1.19-.13-1.922-.379-3.021-1.007-4.735-3.598-4.604-6.908.013-.184-.222-.445-.445-.68-.366-.393-.863-.943-.628-1.662.21-.642.772-.956 1.36-1.283.68-.38 1.452-.81 1.95-1.87 1.124-2.408 4.132-3.35 7.298-2.29a7.754 7.754 0 0 1 4.891 9.813.472.472 0 1 1-.902-.275c0-.013 0-.013.013-.026 1.19-3.572-.733-7.432-4.303-8.623-2.21-.745-5.088-.497-6.16 1.793-.628 1.321-1.61 1.884-2.329 2.29-.51.287-.837.484-.928.772-.066.183.118.392.431.732.34.367.72.785.694 1.361-.118 2.878 1.373 5.116 3.976 5.992.706.236.98.315 1.635.328a.451.451 0 0 1 .431.497.49.49 0 0 1-.458.418z" fill="#204A69"/><path d="M182.753 55.83c-1.06 2.656-.798 7.078 1.949 8.138 2.747 1.06 4.695-3.99 4.695-3.99l-6.644-4.148z" fill="#4E748F"/><path d="M190.417 94.35c2.38 18.435.38 57.831.38 57.831h-9.012l-.798-33.024" fill="#204A69"/><path d="M191.124 152.521h-9.679l-.798-33.364.68-.013.785 32.697h8.358c.183-3.82 1.844-40.142-.393-57.452l.68-.092c2.368 18.266.406 57.505.38 57.897l-.013.327z" fill="#204A69"/><path d="M190.797 151.252c-2.747.092-11.052.615-12.281 1.06-1.23.445-1.321.615.183.968 1.504.354 12.11 0 12.11 0l-.012-2.028z" fill="#204A69"/><path d="M182.557 153.778c-1.844 0-3.414-.04-3.95-.17-.955-.223-1.36-.38-1.386-.772-.026-.393.418-.59 1.164-.864 1.334-.471 9.914-.994 12.386-1.086l.353-.013v2.721l-.327.013c-.275.027-4.748.17-8.24.17zm-4.355-.982c.13.04.314.092.575.144 1.125.262 7.952.118 11.693 0v-1.347c-3.205.117-10.738.64-11.824 1.033-.196.079-.34.118-.444.17z" fill="#204A69"/><path d="M175.69 93.944s-.98 13.974-1.451 28.392c-.393 12.05 1.046 24.769.928 29.845h9.81c-.131-29.452 5.715-41.646 5.454-57.831" fill="#6F93AD"/><path d="M191.15 73.978c1.072 10.1-.733 20.358-.733 20.358l-14.87-.392.222-9.107 3.453-1.858-4.199-8.138 2.786-2.918 4.225-4.37c4.342-1.007 8.632 1.99 9.116 6.425z" fill="#6F93AD"/><path fill="#BBC9D5" d="M180.595 82.273l-.667 48.28h-6.226l.93-45.362z"/><path d="M182.322 80.284c-5.834 5.037-11.536 6.503-13.917 4.514-3.557-2.97 2.76-14.733 3.179-16.447 1.451-5.966 4.773-5.966 5.571-5.299.798.668-.798 4.37-.798 4.37l-1.451 7.956" fill="#FFF"/><path d="M171.165 86.107c-1.242 0-2.289-.314-3.073-.969-3.1-2.59.34-10.559 2.184-14.824.405-.955.771-1.766.837-2.08 1.033-4.213 2.956-5.43 4.015-5.784 1.007-.327 1.883-.117 2.302.236.942.785-.118 3.637-.64 4.867l-1.453 7.903a.478.478 0 0 1-.536.38.484.484 0 0 1-.38-.55l1.453-7.955c0-.04.013-.066.026-.105.732-1.714 1.177-3.533.928-3.833-.17-.144-.706-.288-1.412-.053-.876.288-2.485 1.335-3.4 5.116-.092.393-.432 1.165-.89 2.237-1.622 3.769-5.01 11.606-2.446 13.739 2.001 1.661 7.35.654 13.315-4.501a.459.459 0 0 1 .654.052.459.459 0 0 1-.053.654c-4.041 3.507-8.318 5.47-11.43 5.47z" fill="#204A69"/><path d="M172.905 77.837a.469.469 0 0 1-.471-.47.47.47 0 0 1 .144-.34l5.44-5.182a.458.458 0 0 1 .654.04.467.467 0 0 1-.013.64l-5.44 5.182a.457.457 0 0 1-.314.13z" fill="#204A69"/><path d="M184.963 151.252c-2.746.092-11.051.615-12.28 1.06-1.23.445-1.322 1.152.182 1.505s12.112 0 12.112 0l-.014-2.565z" fill="#6F93AD"/><path d="M181.524 68.011a.481.481 0 0 1-.445-.314l-.798-2.433a.464.464 0 0 1 .301-.59.382.382 0 0 1 .118-.025l1.425-.092a.446.446 0 0 1 .393.17.46.46 0 0 1 .091.406l-.614 2.512a.46.46 0 0 1-.432.353l-.04.013zm-.17-2.473l.104.314.079-.327-.183.013z" fill="#204A69"/><path d="M186.128 95.357c-2.747 0-5.978-.262-8.24-1.256a.46.46 0 0 1-.196-.628.466.466 0 0 1 .575-.223c4.342 1.91 12.935.903 13.014.89a.46.46 0 0 1 .497.432.47.47 0 0 1-.393.497c-1.74.196-3.505.301-5.257.288z" fill="#BBC9D5"/><path d="M174.932 107.748c-.693 0-1.386-.053-2.067-.17a.467.467 0 1 1 .17-.916c1.282.235 2.93.209 4.918-.092a.467.467 0 0 1 .523.393.468.468 0 0 1-.392.523 21.34 21.34 0 0 1-3.152.262z" fill="#FFF"/><path d="M186.834 68.548a5.315 5.315 0 0 1-1.635-.301c-.955-.327-.968-.942-.916-1.204.17-1.007 1.988-2.002 3.218-2.002.745 0 1.255.38 1.36 1.008.183 1.138-.21 1.74-.562 2.04-.353.302-.864.459-1.465.459zm-1.635-1.361c.078.078.183.13.3.157.982.34 1.806.34 2.185.013.262-.222.34-.615.248-1.178-.013-.065-.052-.274-.601-.222-1.007.13-2.132.955-2.132 1.23z" fill="#BBC9D5"/><path d="M179.928 69.738a.469.469 0 0 1-.47-.47.52.52 0 0 1 .13-.328c1.556-1.557 4.512-1.976 4.643-1.989a.47.47 0 0 1 .51.42.46.46 0 0 1-.38.496c-.025 0-2.785.393-4.106 1.727a.425.425 0 0 1-.327.144zm9.94-8.622a.471.471 0 0 1-.261-.079l-14.584-9.944a.474.474 0 0 1-.078-.654.465.465 0 0 1 .602-.118l14.583 9.944a.476.476 0 0 1 .117.655.458.458 0 0 1-.379.196z" fill="#BBC9D5"/><path d="M177.456 60.907c-.392 0-.772-.066-1.138-.197a.45.45 0 0 1-.222-.615.46.46 0 0 1 .575-.248c.314.104.654.157.981.13a.478.478 0 0 1 .497.445.461.461 0 0 1-.405.485c-.118-.014-.196 0-.288 0zm.837-3.507a.425.425 0 0 1-.34-.484l.13-.694a.425.425 0 0 1 .485-.34c.222.04.38.262.34.484l-.13.694a.425.425 0 0 1-.485.34z" fill="#204A69"/><path d="M80.567 112.353a63.189 63.189 0 0 1-4.172.275c-1.4.052-2.773.092-4.173.105-2.772.013-5.558-.053-8.331-.38a.777.777 0 0 1-.68-.863.791.791 0 0 1 .68-.68c2.773-.328 5.559-.393 8.331-.38 1.387.013 2.773.026 4.173.105 1.399.078 2.772.13 4.172.274a.765.765 0 0 1 .68.85.779.779 0 0 1-.68.694zm42.31-99.74c4.63-.157 9.26-.235 13.89-.288.602 0 1.125-.039 1.779-.013a8.818 8.818 0 0 1 1.936.249 9.736 9.736 0 0 1 7.39 8.23c.143 1.373.065 2.433.078 3.61l-.013 3.468-.053 6.948c-.065 4.632-.143 9.263-.313 13.895a.754.754 0 0 1-.798.733.758.758 0 0 1-.733-.733c-.17-4.632-.248-9.263-.314-13.895l-.052-6.948-.013-3.467c-.026-1.125.04-2.395-.065-3.323a7.526 7.526 0 0 0-5.637-6.386 8.205 8.205 0 0 0-1.491-.222c-.497-.04-1.138-.026-1.7-.04-4.63-.052-9.26-.13-13.89-.287a.754.754 0 0 1-.733-.798.767.767 0 0 1 .732-.733zm-58.973 0c3.204-.144 6.409-.222 9.626-.275 3.205-.078 6.409-.065 9.626-.091 3.218-.026 6.41.026 9.627.052 3.204.079 6.408.144 9.626.314.431.013.758.38.732.798a.758.758 0 0 1-.732.733c-3.205.17-6.409.249-9.626.314-3.205.026-6.41.078-9.627.052-3.217-.026-6.408-.013-9.626-.091a341.346 341.346 0 0 1-9.626-.275.754.754 0 0 1-.732-.798.767.767 0 0 1 .732-.733z" fill="#CCCED0"/><path d="M63.132 111.581c-.143-4.71-.222-9.407-.274-14.117-.079-4.71-.066-9.408-.092-14.118-.026-4.71.026-9.408.053-14.118.078-4.71.143-9.407.313-14.118a.754.754 0 0 1 .798-.732c.406.013.72.34.733.732.17 4.71.248 9.408.314 14.118.026 4.71.078 9.408.052 14.118-.026 4.71-.013 9.407-.092 14.118a722.49 722.49 0 0 1-.274 14.117.754.754 0 0 1-.798.733.758.758 0 0 1-.733-.733zm53.258-75.704a92.23 92.23 0 0 1 5.023-.275 214.35 214.35 0 0 1 5.022-.105c3.348-.013 6.696.04 10.045.38a.765.765 0 0 1 .693.837.768.768 0 0 1-.693.693c-3.349.328-6.697.393-10.045.38-1.674-.013-3.348-.026-5.022-.105-1.675-.078-3.349-.13-5.023-.275a.765.765 0 0 1-.693-.837.756.756 0 0 1 .693-.693zm-5.27 12.063a92.23 92.23 0 0 1 5.022-.275 214.35 214.35 0 0 1 5.022-.104c3.348-.013 6.696.052 10.045.38a.764.764 0 0 1 .693.837.768.768 0 0 1-.693.693c-3.349.327-6.697.393-10.045.38-1.674-.014-3.348-.027-5.022-.105-1.674-.079-3.349-.131-5.023-.275a.765.765 0 0 1-.693-.837c.026-.354.327-.655.693-.694zM76.905 72.224c2.066-.144 4.133-.222 6.2-.274 2.066-.079 4.132-.066 6.199-.092 2.066-.026 4.133.013 6.199.052 2.066.079 4.133.144 6.2.314.431.04.732.419.693.838a.768.768 0 0 1-.694.693c-2.066.17-4.133.249-6.199.314-2.066.052-4.133.079-6.2.052-2.066-.026-4.132-.013-6.199-.091-2.066-.052-4.133-.13-6.2-.275a.775.775 0 0 1-.719-.824.783.783 0 0 1 .72-.707zM72.876 84.3c1.753-.143 3.505-.221 5.258-.274 1.753-.052 3.505-.091 5.258-.105 3.505-.013 7.01.04 10.528.38a.768.768 0 1 1 0 1.53c-3.505.328-7.01.393-10.528.38-1.753-.013-3.505-.026-5.258-.104-1.753-.079-3.505-.131-5.258-.275a.775.775 0 0 1-.72-.825.796.796 0 0 1 .72-.706zm0 12.078c1.269-.249 2.55-.38 3.846-.38 1.281-.013 2.563.052 3.845.38.431.104.68.55.575.968a.824.824 0 0 1-.575.575c-1.282.328-2.564.393-3.845.38-1.295 0-2.577-.13-3.846-.38a.774.774 0 0 1-.614-.928.78.78 0 0 1 .614-.615z" fill="#CCCED0"/><path fill="#00BE28" d="M89.814 97.267h16.623v21.314H89.814zm25.046-27.79h16.623v49.105H114.86zm25.046-11.423h16.623v60.527h-16.623z"/><path fill="#204A69" d="M89.814 106.884h16.623v11.697H89.814zm25.046-14.641h16.623v26.338H114.86zm25.046-10.258h16.623v36.596h-16.623z"/><path d="M95.712 37.525a186.18 186.18 0 0 1 3.623-6.28c1.216-2.094 2.511-4.122 3.767-6.189 1.255-2.067 2.576-4.082 3.897-6.11a134.092 134.092 0 0 1 4.12-5.967.776.776 0 0 1 1.073-.222.76.76 0 0 1 .235 1.047c-1.138 2.132-2.367 4.226-3.583 6.306a165.945 165.945 0 0 1-3.806 6.163c-1.308 2.028-2.577 4.082-3.937 6.084a201.953 201.953 0 0 1-4.094 5.993.768.768 0 0 1-1.06.248.792.792 0 0 1-.235-1.073zm-20.625-5.547a46.624 46.624 0 0 1 5.1 3.166c1.635 1.151 3.231 2.355 4.657 3.781.3.314.287.811-.04 1.112a.782.782 0 0 1-.863.144c-1.818-.89-3.479-1.988-5.1-3.166a46.256 46.256 0 0 1-4.657-3.781.77.77 0 0 1-.026-1.1.793.793 0 0 1 .929-.156zM54.67 45.062a60.585 60.585 0 0 1 3.4-5.94c1.23-1.924 2.512-3.795 4.03-5.535a.77.77 0 0 1 1.098-.066c.261.223.34.59.196.903-.955 2.094-2.145 4.03-3.4 5.94a62.273 62.273 0 0 1-4.029 5.535.783.783 0 0 1-1.099.092.76.76 0 0 1-.196-.93z" fill="#46799A"/><ellipse fill="#BBC9D5" cx="115.383" cy="7.353" rx="3.231" ry="3.232"/><ellipse fill="#00BE28" transform="rotate(-51.77 115.381 6.729)" cx="115.381" cy="6.729" rx="4.748" ry="4.749"/><ellipse fill="#00BE28" transform="rotate(-51.77 91.589 44.353)" cx="91.589" cy="44.353" rx="4.748" ry="4.749"/><ellipse fill="#00BE28" transform="rotate(-51.77 68.215 27.09)" cx="68.215" cy="27.089" rx="4.748" ry="4.749"/><ellipse fill="#00BE28" transform="rotate(-51.77 51.33 51.8)" cx="51.331" cy="51.8" rx="4.748" ry="4.749"/><path d="M28.028 139.346c1.164.405 4.905 1.125 6.03 1.491.928.301.706 1.662-.262 1.662H23.738a1.91 1.91 0 0 1-1.91-1.897c0-.092 0-.183.027-.288l.157-1.138 6.016.17z" fill="#6F93AD"/><path fill="#CCCED0" d="M25.766 69.607h5.663l.928-12.848h-6.591z"/><path d="M19.867 67.815c-2.825-.353-10.437 9.198-11.85 12.914-1.412 3.716 7.782 5.835 7.782 5.835" fill="#204A69"/><path d="M15.8 87.022c-.04 0-.066 0-.105-.013-.262-.065-6.5-1.53-7.965-4.278a2.489 2.489 0 0 1-.144-2.172c1.308-3.428 9.064-13.634 12.333-13.215.262.026.432.262.406.523a.488.488 0 0 1-.523.406c-2.394-.301-9.914 8.832-11.353 12.613a1.64 1.64 0 0 0 .092 1.4c1.059 1.976 5.663 3.428 7.35 3.807a.47.47 0 0 1 .327.576.457.457 0 0 1-.419.353z" fill="#204A69"/><path d="M9.953 113.923s-5.35 10.206-4.578 19.862l.89 2.565 16.898-23.303" fill="#CCCED0"/><path d="M6.252 136.82h-.066a.452.452 0 0 1-.366-.313l-.89-2.565a.382.382 0 0 1-.025-.118c-.772-9.682 4.407-19.704 4.63-20.123a.449.449 0 0 1 .614-.222.45.45 0 0 1 .223.614c-.013.014-.013.027-.026.04-.053.104-5.258 10.166-4.539 19.547l.576 1.662L22.77 112.76a.46.46 0 0 1 .654-.066.482.482 0 0 1 .104.615L6.63 136.639a.483.483 0 0 1-.38.183z" fill="#204A69"/><path d="M30.291 112.118s-1.19 24.14-2.524 28.248l-5.036-.13c-.261-8.492-3.178-19.365-3.453-30.238" fill="#CCCED0"/><path d="M27.78 140.837l-5.049-.13a.482.482 0 0 1-.457-.458c-.118-3.9-.811-8.322-1.544-13.02-.863-5.586-1.765-11.356-1.91-17.23 0-.263.197-.472.458-.472.249 0 .458.196.484.458.144 5.822 1.034 11.553 1.897 17.114.706 4.54 1.373 8.845 1.53 12.692l4.238.117c1.255-4.84 2.393-27.568 2.406-27.803a.466.466 0 0 1 .484-.445.466.466 0 0 1 .445.484c-.052.994-1.216 24.258-2.537 28.38a.463.463 0 0 1-.445.313zm4.525-77.877c-1.216.302-2.59-.104-2.59-.104-.078 0-.117.092-.052.13l2.132 2.264.562-2.433" fill="#204A69"/><path d="M32.017 66.088l-2.825-3.01.053-.314a.479.479 0 0 1 .484-.327l.091.013c.013 0 1.282.367 2.38.105l.053.236.484.117-.72 3.18zm-1.373-2.643l.929.981.222-.955c-.38.026-.772.013-1.15-.026z" fill="#204A69"/><path d="M30.853 48.333c2.865-.144 5.507 1.23 5.925 3.794.38 2.277 2.263 2.735 2.315 3.886.04.89-1.465 1.034-1.66 1.832-.668 2.813-2.747 4.893-5.873 5.05-.759.04-1.112.04-1.805-.144" fill="#CCCED0"/><path d="M30.919 63.366a4.36 4.36 0 0 1-1.295-.183.457.457 0 0 1-.327-.562.475.475 0 0 1 .562-.34h.013c.641.17.93.156 1.662.13 2.746-.13 4.773-1.884 5.44-4.684.131-.563.615-.85 1.034-1.112.379-.236.614-.393.614-.576-.013-.3-.274-.575-.693-.994-.588-.589-1.386-1.387-1.622-2.84-.405-2.498-3.112-3.519-5.44-3.401a.442.442 0 0 1-.484-.406v-.04a.458.458 0 0 1 .444-.483c3.335-.157 5.977 1.557 6.409 4.187.183 1.151.81 1.78 1.36 2.329.471.484.929.929.955 1.609.04.746-.589 1.138-1.046 1.426-.288.17-.576.353-.615.537-.759 3.18-3.178 5.246-6.304 5.403-.262-.013-.471 0-.667 0z" fill="#204A69"/><path d="M36.713 60.187a.362.362 0 0 1-.17-.04c-.053-.012-1.151-.47-1.609-1.53a.47.47 0 0 1 .249-.615.47.47 0 0 1 .614.248c.301.707 1.086 1.034 1.099 1.034a.469.469 0 0 1 .261.602.482.482 0 0 1-.444.3zm-.929-6.176c.236 0 .419.183.419.419v.706a.413.413 0 0 1-.419.42.413.413 0 0 1-.418-.42v-.706c0-.236.183-.419.418-.419z" fill="#204A69"/><path d="M32.017 66.088c-7.808-2.473-11.143-.68-14.125 3.847-4.84 7.366-2.08 9.198-3.845 15.923-1.766 6.725-5.899 9.617-5.101 28.785H31.35s2.12-22.086 1.452-28.523M8.841 133.667s-5.205 9.146-6.945 8.767c-1.046-.236.615-4.671 1.164-6.765.393-1.452.707-2.407 2.198-2.25l3.583.248z" fill="#6F93AD"/><path d="M36.569 74.174a11.111 11.111 0 0 0 2.72-3.219c1.792-3.153 6.318-8.557 7.442-7.13 1.125 1.425-.863 6.397-2.563 7.248-1.243 3.977-7.651 17.454-11.497 16.394-3.845-1.06-6.892-21.497-1.595-21.235 5.297.261 5.702 12.011 5.702 12.011" fill="#CCCED0"/><path d="M33.103 88.004a1.99 1.99 0 0 1-.55-.079c-3.295-.916-5.44-12.678-4.55-18.16.548-3.402 1.974-4.057 3.112-3.991 3.322.17 4.852 4.265 5.559 7.706a11.468 11.468 0 0 0 2.21-2.747c1.426-2.5 5.258-7.445 7.246-7.602.366-.026.732.118.968.405.588.746.47 1.99.261 2.918-.405 1.832-1.57 4.161-2.799 4.946-1.255 3.86-7.18 16.59-11.457 16.604zm-2.106-21.301c-1.281 0-1.83 1.74-2.08 3.205-.928 5.731 1.505 16.447 3.885 17.114 3.257.916 9.56-11.697 10.921-16.08a.446.446 0 0 1 .236-.275c.902-.458 2.066-2.512 2.485-4.41.222-.993.196-1.792-.079-2.132-.026-.026-.052-.065-.17-.052-1.295.105-4.813 4.16-6.5 7.13a11.788 11.788 0 0 1-2.825 3.35c.209 1.217.34 2.46.392 3.69a.45.45 0 0 1-.47.458.459.459 0 0 1-.458-.432c0-.118-.445-11.318-5.258-11.553l-.079-.013zm-12.386 3.232c2.499 1.544 6.174.091 8.24-3.245 1.125-1.819 1.517-3.808 1.256-5.509 2.498-.732 3.793-3.807 3.309-6.045 2.76-.183 3.91-3.493 3.557-6.437 0 0-2.472-1.505-5.127-.706-1.608.484-2.772.81-4.054 3.087-1.413.367-2.76 1.243-3.558 2.395-.562.824-.98 1.989-1.164 3.18a3.419 3.419 0 0 1-1.268 2.171 9.245 9.245 0 0 0-2.001 2.277c-2.028 3.35-1.675 7.3.81 8.832z" fill="#204A69"/></g></svg> \ No newline at end of file
+<svg width="192" height="152" viewBox="0 0 192 152" xmlns="http://www.w3.org/2000/svg"><title>marketing &amp; performance image</title><g transform="translate(0 -2)" fill="none"><path d="M.183 142.316c14.936-.51 29.873-.628 44.822-.746l44.822-.118c29.872.118 59.758.053 89.63.68a.38.38 0 0 1 0 .76c-29.872.64-59.758.575-89.63.68l-44.822-.118c-14.936-.13-29.873-.235-44.822-.746-.105-.013-.183-.104-.17-.196 0-.118.079-.196.17-.196z" fill="#F6F6F6"/><ellipse fill="#FFF" cx="44.769" cy="32.959" rx="1.373" ry="1.374"/><path d="M181.968 64.936c-.719-.013-1.059-.117-1.778-.353-2.97-.994-4.408-3.559-4.29-6.45.026-.825-1.387-1.374-1.099-2.212.366-1.085 2.302-1.02 3.283-3.114 1.099-2.355 4.002-2.957 6.736-2.04a7.292 7.292 0 0 1 4.59 9.21" fill="#FFF"/><path d="M181.968 65.407c-.81-.013-1.19-.13-1.922-.379-3.021-1.007-4.735-3.598-4.604-6.908.013-.184-.222-.445-.445-.68-.366-.393-.863-.943-.628-1.662.21-.642.772-.956 1.36-1.283.68-.38 1.452-.81 1.95-1.87 1.124-2.408 4.132-3.35 7.298-2.29a7.754 7.754 0 0 1 4.891 9.813.472.472 0 1 1-.902-.275c0-.013 0-.013.013-.026 1.19-3.572-.733-7.432-4.303-8.623-2.21-.745-5.088-.497-6.16 1.793-.628 1.321-1.61 1.884-2.329 2.29-.51.287-.837.484-.928.772-.066.183.118.392.431.732.34.367.72.785.694 1.361-.118 2.878 1.373 5.116 3.976 5.992.706.236.98.315 1.635.328a.451.451 0 0 1 .431.497.49.49 0 0 1-.458.418z" fill="#204A69"/><path d="M182.753 55.83c-1.06 2.656-.798 7.078 1.949 8.138 2.747 1.06 4.695-3.99 4.695-3.99l-6.644-4.148z" fill="#4E748F"/><path d="M190.417 94.35c2.38 18.435.38 57.831.38 57.831h-9.012l-.798-33.024" fill="#204A69"/><path d="M191.124 152.521h-9.679l-.798-33.364.68-.013.785 32.697h8.358c.183-3.82 1.844-40.142-.393-57.452l.68-.092c2.368 18.266.406 57.505.38 57.897l-.013.327z" fill="#204A69"/><path d="M190.797 151.252c-2.747.092-11.052.615-12.281 1.06-1.23.445-1.321.615.183.968 1.504.354 12.11 0 12.11 0l-.012-2.028z" fill="#204A69"/><path d="M182.557 153.778c-1.844 0-3.414-.04-3.95-.17-.955-.223-1.36-.38-1.386-.772-.026-.393.418-.59 1.164-.864 1.334-.471 9.914-.994 12.386-1.086l.353-.013v2.721l-.327.013c-.275.027-4.748.17-8.24.17zm-4.355-.982c.13.04.314.092.575.144 1.125.262 7.952.118 11.693 0v-1.347c-3.205.117-10.738.64-11.824 1.033-.196.079-.34.118-.444.17z" fill="#204A69"/><path d="M175.69 93.944s-.98 13.974-1.451 28.392c-.393 12.05 1.046 24.769.928 29.845h9.81c-.131-29.452 5.715-41.646 5.454-57.831" fill="#6F93AD"/><path d="M191.15 73.978c1.072 10.1-.733 20.358-.733 20.358l-14.87-.392.222-9.107 3.453-1.858-4.199-8.138 2.786-2.918 4.225-4.37c4.342-1.007 8.632 1.99 9.116 6.425z" fill="#6F93AD"/><path fill="#BBC9D5" d="M180.595 82.273l-.667 48.28h-6.226l.93-45.362z"/><path d="M182.322 80.284c-5.834 5.037-11.536 6.503-13.917 4.514-3.557-2.97 2.76-14.733 3.179-16.447 1.451-5.966 4.773-5.966 5.571-5.299.798.668-.798 4.37-.798 4.37l-1.451 7.956" fill="#FFF"/><path d="M171.165 86.107c-1.242 0-2.289-.314-3.073-.969-3.1-2.59.34-10.559 2.184-14.824.405-.955.771-1.766.837-2.08 1.033-4.213 2.956-5.43 4.015-5.784 1.007-.327 1.883-.117 2.302.236.942.785-.118 3.637-.64 4.867l-1.453 7.903a.478.478 0 0 1-.536.38.484.484 0 0 1-.38-.55l1.453-7.955c0-.04.013-.066.026-.105.732-1.714 1.177-3.533.928-3.833-.17-.144-.706-.288-1.412-.053-.876.288-2.485 1.335-3.4 5.116-.092.393-.432 1.165-.89 2.237-1.622 3.769-5.01 11.606-2.446 13.739 2.001 1.661 7.35.654 13.315-4.501a.459.459 0 0 1 .654.052.459.459 0 0 1-.053.654c-4.041 3.507-8.318 5.47-11.43 5.47z" fill="#204A69"/><path d="M172.905 77.837a.469.469 0 0 1-.471-.47.47.47 0 0 1 .144-.34l5.44-5.182a.458.458 0 0 1 .654.04.467.467 0 0 1-.013.64l-5.44 5.182a.457.457 0 0 1-.314.13z" fill="#204A69"/><path d="M184.963 151.252c-2.746.092-11.051.615-12.28 1.06-1.23.445-1.322 1.152.182 1.505s12.112 0 12.112 0l-.014-2.565z" fill="#6F93AD"/><path d="M181.524 68.011a.481.481 0 0 1-.445-.314l-.798-2.433a.464.464 0 0 1 .301-.59.382.382 0 0 1 .118-.025l1.425-.092a.446.446 0 0 1 .393.17.46.46 0 0 1 .091.406l-.614 2.512a.46.46 0 0 1-.432.353l-.04.013zm-.17-2.473l.104.314.079-.327-.183.013z" fill="#204A69"/><path d="M186.128 95.357c-2.747 0-5.978-.262-8.24-1.256a.46.46 0 0 1-.196-.628.466.466 0 0 1 .575-.223c4.342 1.91 12.935.903 13.014.89a.46.46 0 0 1 .497.432.47.47 0 0 1-.393.497c-1.74.196-3.505.301-5.257.288z" fill="#BBC9D5"/><path d="M174.932 107.748c-.693 0-1.386-.053-2.067-.17a.467.467 0 1 1 .17-.916c1.282.235 2.93.209 4.918-.092a.467.467 0 0 1 .523.393.468.468 0 0 1-.392.523 21.34 21.34 0 0 1-3.152.262z" fill="#FFF"/><path d="M186.834 68.548a5.315 5.315 0 0 1-1.635-.301c-.955-.327-.968-.942-.916-1.204.17-1.007 1.988-2.002 3.218-2.002.745 0 1.255.38 1.36 1.008.183 1.138-.21 1.74-.562 2.04-.353.302-.864.459-1.465.459zm-1.635-1.361c.078.078.183.13.3.157.982.34 1.806.34 2.185.013.262-.222.34-.615.248-1.178-.013-.065-.052-.274-.601-.222-1.007.13-2.132.955-2.132 1.23z" fill="#BBC9D5"/><path d="M179.928 69.738a.469.469 0 0 1-.47-.47.52.52 0 0 1 .13-.328c1.556-1.557 4.512-1.976 4.643-1.989a.47.47 0 0 1 .51.42.46.46 0 0 1-.38.496c-.025 0-2.785.393-4.106 1.727a.425.425 0 0 1-.327.144zm9.94-8.622a.471.471 0 0 1-.261-.079l-14.584-9.944a.474.474 0 0 1-.078-.654.465.465 0 0 1 .602-.118l14.583 9.944a.476.476 0 0 1 .117.655.458.458 0 0 1-.379.196z" fill="#BBC9D5"/><path d="M177.456 60.907c-.392 0-.772-.066-1.138-.197a.45.45 0 0 1-.222-.615.46.46 0 0 1 .575-.248c.314.104.654.157.981.13a.478.478 0 0 1 .497.445.461.461 0 0 1-.405.485c-.118-.014-.196 0-.288 0zm.837-3.507a.425.425 0 0 1-.34-.484l.13-.694a.425.425 0 0 1 .485-.34c.222.04.38.262.34.484l-.13.694a.425.425 0 0 1-.485.34z" fill="#204A69"/><path d="M80.567 112.353a63.189 63.189 0 0 1-4.172.275c-1.4.052-2.773.092-4.173.105-2.772.013-5.558-.053-8.331-.38a.777.777 0 0 1-.68-.863.791.791 0 0 1 .68-.68c2.773-.328 5.559-.393 8.331-.38 1.387.013 2.773.026 4.173.105 1.399.078 2.772.13 4.172.274a.765.765 0 0 1 .68.85.779.779 0 0 1-.68.694zm42.31-99.74c4.63-.157 9.26-.235 13.89-.288.602 0 1.125-.039 1.779-.013a8.818 8.818 0 0 1 1.936.249 9.736 9.736 0 0 1 7.39 8.23c.143 1.373.065 2.433.078 3.61l-.013 3.468-.053 6.948c-.065 4.632-.143 9.263-.313 13.895a.754.754 0 0 1-.798.733.758.758 0 0 1-.733-.733c-.17-4.632-.248-9.263-.314-13.895l-.052-6.948-.013-3.467c-.026-1.125.04-2.395-.065-3.323a7.526 7.526 0 0 0-5.637-6.386 8.205 8.205 0 0 0-1.491-.222c-.497-.04-1.138-.026-1.7-.04-4.63-.052-9.26-.13-13.89-.287a.754.754 0 0 1-.733-.798.767.767 0 0 1 .732-.733zm-58.973 0c3.204-.144 6.409-.222 9.626-.275 3.205-.078 6.409-.065 9.626-.091 3.218-.026 6.41.026 9.627.052 3.204.079 6.408.144 9.626.314.431.013.758.38.732.798a.758.758 0 0 1-.732.733c-3.205.17-6.409.249-9.626.314-3.205.026-6.41.078-9.627.052-3.217-.026-6.408-.013-9.626-.091a341.346 341.346 0 0 1-9.626-.275.754.754 0 0 1-.732-.798.767.767 0 0 1 .732-.733z" fill="#CCCED0"/><path d="M63.132 111.581c-.143-4.71-.222-9.407-.274-14.117-.079-4.71-.066-9.408-.092-14.118-.026-4.71.026-9.408.053-14.118.078-4.71.143-9.407.313-14.118a.754.754 0 0 1 .798-.732c.406.013.72.34.733.732.17 4.71.248 9.408.314 14.118.026 4.71.078 9.408.052 14.118-.026 4.71-.013 9.407-.092 14.118a722.49 722.49 0 0 1-.274 14.117.754.754 0 0 1-.798.733.758.758 0 0 1-.733-.733zm53.258-75.704a92.23 92.23 0 0 1 5.023-.275 214.35 214.35 0 0 1 5.022-.105c3.348-.013 6.696.04 10.045.38a.765.765 0 0 1 .693.837.768.768 0 0 1-.693.693c-3.349.328-6.697.393-10.045.38-1.674-.013-3.348-.026-5.022-.105-1.675-.078-3.349-.13-5.023-.275a.765.765 0 0 1-.693-.837.756.756 0 0 1 .693-.693zm-5.27 12.063a92.23 92.23 0 0 1 5.022-.275 214.35 214.35 0 0 1 5.022-.104c3.348-.013 6.696.052 10.045.38a.764.764 0 0 1 .693.837.768.768 0 0 1-.693.693c-3.349.327-6.697.393-10.045.38-1.674-.014-3.348-.027-5.022-.105-1.674-.079-3.349-.131-5.023-.275a.765.765 0 0 1-.693-.837c.026-.354.327-.655.693-.694zM76.905 72.224c2.066-.144 4.133-.222 6.2-.274 2.066-.079 4.132-.066 6.199-.092 2.066-.026 4.133.013 6.199.052 2.066.079 4.133.144 6.2.314.431.04.732.419.693.838a.768.768 0 0 1-.694.693c-2.066.17-4.133.249-6.199.314-2.066.052-4.133.079-6.2.052-2.066-.026-4.132-.013-6.199-.091-2.066-.052-4.133-.13-6.2-.275a.775.775 0 0 1-.719-.824.783.783 0 0 1 .72-.707zM72.876 84.3c1.753-.143 3.505-.221 5.258-.274 1.753-.052 3.505-.091 5.258-.105 3.505-.013 7.01.04 10.528.38a.768.768 0 1 1 0 1.53c-3.505.328-7.01.393-10.528.38-1.753-.013-3.505-.026-5.258-.104-1.753-.079-3.505-.131-5.258-.275a.775.775 0 0 1-.72-.825.796.796 0 0 1 .72-.706zm0 12.078c1.269-.249 2.55-.38 3.846-.38 1.281-.013 2.563.052 3.845.38.431.104.68.55.575.968a.824.824 0 0 1-.575.575c-1.282.328-2.564.393-3.845.38-1.295 0-2.577-.13-3.846-.38a.774.774 0 0 1-.614-.928.78.78 0 0 1 .614-.615z" fill="#CCCED0"/><path fill="#069e08" d="M89.814 97.267h16.623v21.314H89.814zm25.046-27.79h16.623v49.105H114.86zm25.046-11.423h16.623v60.527h-16.623z"/><path fill="#204A69" d="M89.814 106.884h16.623v11.697H89.814zm25.046-14.641h16.623v26.338H114.86zm25.046-10.258h16.623v36.596h-16.623z"/><path d="M95.712 37.525a186.18 186.18 0 0 1 3.623-6.28c1.216-2.094 2.511-4.122 3.767-6.189 1.255-2.067 2.576-4.082 3.897-6.11a134.092 134.092 0 0 1 4.12-5.967.776.776 0 0 1 1.073-.222.76.76 0 0 1 .235 1.047c-1.138 2.132-2.367 4.226-3.583 6.306a165.945 165.945 0 0 1-3.806 6.163c-1.308 2.028-2.577 4.082-3.937 6.084a201.953 201.953 0 0 1-4.094 5.993.768.768 0 0 1-1.06.248.792.792 0 0 1-.235-1.073zm-20.625-5.547a46.624 46.624 0 0 1 5.1 3.166c1.635 1.151 3.231 2.355 4.657 3.781.3.314.287.811-.04 1.112a.782.782 0 0 1-.863.144c-1.818-.89-3.479-1.988-5.1-3.166a46.256 46.256 0 0 1-4.657-3.781.77.77 0 0 1-.026-1.1.793.793 0 0 1 .929-.156zM54.67 45.062a60.585 60.585 0 0 1 3.4-5.94c1.23-1.924 2.512-3.795 4.03-5.535a.77.77 0 0 1 1.098-.066c.261.223.34.59.196.903-.955 2.094-2.145 4.03-3.4 5.94a62.273 62.273 0 0 1-4.029 5.535.783.783 0 0 1-1.099.092.76.76 0 0 1-.196-.93z" fill="#46799A"/><ellipse fill="#BBC9D5" cx="115.383" cy="7.353" rx="3.231" ry="3.232"/><ellipse fill="#069e08" transform="rotate(-51.77 115.381 6.729)" cx="115.381" cy="6.729" rx="4.748" ry="4.749"/><ellipse fill="#069e08" transform="rotate(-51.77 91.589 44.353)" cx="91.589" cy="44.353" rx="4.748" ry="4.749"/><ellipse fill="#069e08" transform="rotate(-51.77 68.215 27.09)" cx="68.215" cy="27.089" rx="4.748" ry="4.749"/><ellipse fill="#069e08" transform="rotate(-51.77 51.33 51.8)" cx="51.331" cy="51.8" rx="4.748" ry="4.749"/><path d="M28.028 139.346c1.164.405 4.905 1.125 6.03 1.491.928.301.706 1.662-.262 1.662H23.738a1.91 1.91 0 0 1-1.91-1.897c0-.092 0-.183.027-.288l.157-1.138 6.016.17z" fill="#6F93AD"/><path fill="#CCCED0" d="M25.766 69.607h5.663l.928-12.848h-6.591z"/><path d="M19.867 67.815c-2.825-.353-10.437 9.198-11.85 12.914-1.412 3.716 7.782 5.835 7.782 5.835" fill="#204A69"/><path d="M15.8 87.022c-.04 0-.066 0-.105-.013-.262-.065-6.5-1.53-7.965-4.278a2.489 2.489 0 0 1-.144-2.172c1.308-3.428 9.064-13.634 12.333-13.215.262.026.432.262.406.523a.488.488 0 0 1-.523.406c-2.394-.301-9.914 8.832-11.353 12.613a1.64 1.64 0 0 0 .092 1.4c1.059 1.976 5.663 3.428 7.35 3.807a.47.47 0 0 1 .327.576.457.457 0 0 1-.419.353z" fill="#204A69"/><path d="M9.953 113.923s-5.35 10.206-4.578 19.862l.89 2.565 16.898-23.303" fill="#CCCED0"/><path d="M6.252 136.82h-.066a.452.452 0 0 1-.366-.313l-.89-2.565a.382.382 0 0 1-.025-.118c-.772-9.682 4.407-19.704 4.63-20.123a.449.449 0 0 1 .614-.222.45.45 0 0 1 .223.614c-.013.014-.013.027-.026.04-.053.104-5.258 10.166-4.539 19.547l.576 1.662L22.77 112.76a.46.46 0 0 1 .654-.066.482.482 0 0 1 .104.615L6.63 136.639a.483.483 0 0 1-.38.183z" fill="#204A69"/><path d="M30.291 112.118s-1.19 24.14-2.524 28.248l-5.036-.13c-.261-8.492-3.178-19.365-3.453-30.238" fill="#CCCED0"/><path d="M27.78 140.837l-5.049-.13a.482.482 0 0 1-.457-.458c-.118-3.9-.811-8.322-1.544-13.02-.863-5.586-1.765-11.356-1.91-17.23 0-.263.197-.472.458-.472.249 0 .458.196.484.458.144 5.822 1.034 11.553 1.897 17.114.706 4.54 1.373 8.845 1.53 12.692l4.238.117c1.255-4.84 2.393-27.568 2.406-27.803a.466.466 0 0 1 .484-.445.466.466 0 0 1 .445.484c-.052.994-1.216 24.258-2.537 28.38a.463.463 0 0 1-.445.313zm4.525-77.877c-1.216.302-2.59-.104-2.59-.104-.078 0-.117.092-.052.13l2.132 2.264.562-2.433" fill="#204A69"/><path d="M32.017 66.088l-2.825-3.01.053-.314a.479.479 0 0 1 .484-.327l.091.013c.013 0 1.282.367 2.38.105l.053.236.484.117-.72 3.18zm-1.373-2.643l.929.981.222-.955c-.38.026-.772.013-1.15-.026z" fill="#204A69"/><path d="M30.853 48.333c2.865-.144 5.507 1.23 5.925 3.794.38 2.277 2.263 2.735 2.315 3.886.04.89-1.465 1.034-1.66 1.832-.668 2.813-2.747 4.893-5.873 5.05-.759.04-1.112.04-1.805-.144" fill="#CCCED0"/><path d="M30.919 63.366a4.36 4.36 0 0 1-1.295-.183.457.457 0 0 1-.327-.562.475.475 0 0 1 .562-.34h.013c.641.17.93.156 1.662.13 2.746-.13 4.773-1.884 5.44-4.684.131-.563.615-.85 1.034-1.112.379-.236.614-.393.614-.576-.013-.3-.274-.575-.693-.994-.588-.589-1.386-1.387-1.622-2.84-.405-2.498-3.112-3.519-5.44-3.401a.442.442 0 0 1-.484-.406v-.04a.458.458 0 0 1 .444-.483c3.335-.157 5.977 1.557 6.409 4.187.183 1.151.81 1.78 1.36 2.329.471.484.929.929.955 1.609.04.746-.589 1.138-1.046 1.426-.288.17-.576.353-.615.537-.759 3.18-3.178 5.246-6.304 5.403-.262-.013-.471 0-.667 0z" fill="#204A69"/><path d="M36.713 60.187a.362.362 0 0 1-.17-.04c-.053-.012-1.151-.47-1.609-1.53a.47.47 0 0 1 .249-.615.47.47 0 0 1 .614.248c.301.707 1.086 1.034 1.099 1.034a.469.469 0 0 1 .261.602.482.482 0 0 1-.444.3zm-.929-6.176c.236 0 .419.183.419.419v.706a.413.413 0 0 1-.419.42.413.413 0 0 1-.418-.42v-.706c0-.236.183-.419.418-.419z" fill="#204A69"/><path d="M32.017 66.088c-7.808-2.473-11.143-.68-14.125 3.847-4.84 7.366-2.08 9.198-3.845 15.923-1.766 6.725-5.899 9.617-5.101 28.785H31.35s2.12-22.086 1.452-28.523M8.841 133.667s-5.205 9.146-6.945 8.767c-1.046-.236.615-4.671 1.164-6.765.393-1.452.707-2.407 2.198-2.25l3.583.248z" fill="#6F93AD"/><path d="M36.569 74.174a11.111 11.111 0 0 0 2.72-3.219c1.792-3.153 6.318-8.557 7.442-7.13 1.125 1.425-.863 6.397-2.563 7.248-1.243 3.977-7.651 17.454-11.497 16.394-3.845-1.06-6.892-21.497-1.595-21.235 5.297.261 5.702 12.011 5.702 12.011" fill="#CCCED0"/><path d="M33.103 88.004a1.99 1.99 0 0 1-.55-.079c-3.295-.916-5.44-12.678-4.55-18.16.548-3.402 1.974-4.057 3.112-3.991 3.322.17 4.852 4.265 5.559 7.706a11.468 11.468 0 0 0 2.21-2.747c1.426-2.5 5.258-7.445 7.246-7.602.366-.026.732.118.968.405.588.746.47 1.99.261 2.918-.405 1.832-1.57 4.161-2.799 4.946-1.255 3.86-7.18 16.59-11.457 16.604zm-2.106-21.301c-1.281 0-1.83 1.74-2.08 3.205-.928 5.731 1.505 16.447 3.885 17.114 3.257.916 9.56-11.697 10.921-16.08a.446.446 0 0 1 .236-.275c.902-.458 2.066-2.512 2.485-4.41.222-.993.196-1.792-.079-2.132-.026-.026-.052-.065-.17-.052-1.295.105-4.813 4.16-6.5 7.13a11.788 11.788 0 0 1-2.825 3.35c.209 1.217.34 2.46.392 3.69a.45.45 0 0 1-.47.458.459.459 0 0 1-.458-.432c0-.118-.445-11.318-5.258-11.553l-.079-.013zm-12.386 3.232c2.499 1.544 6.174.091 8.24-3.245 1.125-1.819 1.517-3.808 1.256-5.509 2.498-.732 3.793-3.807 3.309-6.045 2.76-.183 3.91-3.493 3.557-6.437 0 0-2.472-1.505-5.127-.706-1.608.484-2.772.81-4.054 3.087-1.413.367-2.76 1.243-3.558 2.395-.562.824-.98 1.989-1.164 3.18a3.419 3.419 0 0 1-1.268 2.171 9.245 9.245 0 0 0-2.001 2.277c-2.028 3.35-1.675 7.3.81 8.832z" fill="#204A69"/></g></svg>
diff --git a/plugins/jetpack/images/jetpack-publicize-1.svg b/plugins/jetpack/images/jetpack-publicize-1.svg
new file mode 100644
index 00000000..52564bd9
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-publicize-1.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 504 280"><defs><style>.cls-2{fill:#2271b1}.cls-4{fill:#cdc9cd}.cls-5{fill:#e3dfe2}</style></defs><path fill="#5198d9" d="M197.3 237.7c0-35.5-19.6-63.8-47-68.7-4 13.1-25.3 13.6-29.8.6l-.2-.6c-30.5 6.3-51.7 34.9-54.9 67.8-4.6 47.4-1 39.8-1 39.8h133.3z"/><path d="M103.7 217.5c.2 2.5-.2 4.8-.2 7.3l-.6 7.3-1.3 14.4-1.5 14.4a116.19 116.19 0 0 1-2.1 14.4c0 .2-.2.2-.4.2s-.2-.2-.2-.4a115.61 115.61 0 0 1 .6-14.4l1.3-14.4 1.3-14.4.6-7.3a43.34 43.34 0 0 1 1-7.1c.2-.4.4-.6.8-.4.2 0 .4.2.7.4zm45.9-59.3a13.61 13.61 0 0 1 .4 4 24.2 24.2 0 0 0 .2 3.8 3.94 3.94 0 0 0 1.7 2.5l1.5.6c.6.2 1.5.4 2.1.6 5.2 1.9 9.6 4.8 14 7.9a108.6 108.6 0 0 1 11.9 10.6 47.86 47.86 0 0 1 8.8 13.4c0 .2 0 .4-.2.4s-.4 0-.4-.2a104.1 104.1 0 0 0-9.6-12.3 80.71 80.71 0 0 0-11.7-10.2 72.24 72.24 0 0 0-6.5-4.2 55 55 0 0 0-6.9-3.4c-.6-.2-1.1-.4-1.7-.6a5.39 5.39 0 0 1-2.1-.8 6.57 6.57 0 0 1-2.7-3.8 9 9 0 0 1-.2-2.3v-1.9a9.13 9.13 0 0 1 .4-4c.1-.3.5-.5 1-.1-.3-.4-.3-.2 0 0z" class="cls-2"/><path d="M155.2 102.3a65 65 0 0 1 5.2 15.4 81.06 81.06 0 0 1 2.3 16.3c0 5.4-.8 11.3-3.8 16.1a20.86 20.86 0 0 1-5.9 6.3 22.08 22.08 0 0 1-7.9 3.1 26.83 26.83 0 0 1-16.5-2.3 44.56 44.56 0 0 1-13.3-9.8c-7.7-7.9-12.9-17.7-16.3-28 0-.2 0-.4.2-.4s.4 0 .4.2c4.6 9.8 9.8 19.2 17.3 26.9a42.12 42.12 0 0 0 12.7 9.2 25.16 25.16 0 0 0 15 1.9 22.15 22.15 0 0 0 7.1-2.9 17.84 17.84 0 0 0 5.2-5.4c2.7-4.4 3.6-9.8 3.6-15a67.44 67.44 0 0 0-2.1-15.9c-1.3-5.2-3.1-10.2-4.6-15.4-.2-.4 0-.8.4-.8.6.1.8.1 1 .5z" class="cls-2"/><path d="M123.5 86.6c16.7-6.7 31.3-2.9 30.3 5-.8 6.9-34.4 9.2-38.4 18.8-2.5 6.3 1.3 15.6 4.4 21.7a8.8 8.8 0 0 1-1.7 10.4l-2.9 3.6c-18.6-18.4-35.3-42.2 8.3-59.5zm20.4 36.3c1 1.7 1.9 3.6 2.7 5.2.6 1.9 1.5 3.8 1.9 5.6 0 .4-.2.8-.6.8s-.6 0-.8-.4a52.85 52.85 0 0 1-2.5-5.4c-.6-1.8-1.2-3.7-1.7-5.6 0-.2.2-.6.4-.6.2.2.4.2.6.4z" class="cls-2"/><path d="M154 124.6a2.21 2.21 0 0 0 1.3-2.7l-1.3-3.1a2.12 2.12 0 1 0-4 1.4l1.3 3.1a2.12 2.12 0 0 0 2.7 1.3zm-20.5 7.9a2.21 2.21 0 0 0 1.3-2.7l-1.3-3.1a2.12 2.12 0 1 0-4 1.4l1.3 3.1a1.88 1.88 0 0 0 2.5 1.3c.1.1.1.1.2 0zM145.1 146.7a5.61 5.61 0 0 1-3.1-.9 1.15 1.15 0 0 1 1.3-1.9 3.64 3.64 0 0 0 3.4.2 4.6 4.6 0 0 0 2.9-2.7 1.14 1.14 0 0 1 1.4-.8 1.2 1.2 0 0 1 .8 1.5 7 7 0 0 1-4.4 4.3 8 8 0 0 1-2.3.3zM128.5 119.2a12 12 0 0 0-1.7.6 17.38 17.38 0 0 0-1.9 1c-.6.4-1 .8-1.7 1.3a4.86 4.86 0 0 0-1.3 1.5c-.2.4-.6.4-1 .2-.2-.2-.4-.4-.2-.8.4-1.9 1.9-2.9 3.1-4a6.71 6.71 0 0 1 2.3-1 6.2 6.2 0 0 1 2.7-.2c.4 0 .6.4.4.8a2.17 2.17 0 0 1-.7.6zm16.5-8a7.85 7.85 0 0 1 2.1-1.7 4.65 4.65 0 0 1 2.3-.6 7.34 7.34 0 0 1 5 .8c.4.2.4.6.2 1-.2.2-.4.4-.8.2a5.84 5.84 0 0 0-1.9-.2 7.49 7.49 0 0 0-2.1.2c-.6.2-1.5.2-2.1.4s-1.1.4-1.7.6l-.2.2c-.4.2-.8 0-.8-.2z" class="cls-2"/><path fill="#2fb41f" d="M155.4 91.4c-16.7-29.2-72.4-6-58.4 29.9z"/><path d="M169.2 86.4c-5.9 3.6-12.1 6.7-18.1 9.8l-18.4 9.2-18.5 9.2c-6.3 3.1-12.3 6.1-18.5 9-.4.2-.8 0-.8-.4-.2-.4 0-.6.2-.8 6.1-3.4 12.1-6.5 18.3-9.6l18.3-9.2 18.5-9.2c6.3-3.1 12.3-6.1 18.8-8.6a.73.73 0 0 1 .6.2c-.2 0-.2.5-.4.4z" class="cls-4"/><path d="M123.9 107.5c11.9-11.3 31.3-29.6 44.9-21.5zm-.2-.2a92.68 92.68 0 0 1 9.4-9.4 118.75 118.75 0 0 1 10.6-8.1 43.7 43.7 0 0 1 12.3-5.9l1.7-.4c.6 0 1.3-.2 1.7-.2.6 0 1.3-.2 1.7-.2l1.7.2a9.42 9.42 0 0 1 3.4.8 29.62 29.62 0 0 1 3.1 1.5.74.74 0 0 1 .4.8c0 .2-.6.4-.8.4a16.87 16.87 0 0 0-12.1-.8c-4.2 1-7.9 3.4-11.5 5.6a81.28 81.28 0 0 0-10.4 7.9c-3.4 2.9-6.7 5.9-10.2 8.6a.35.35 0 0 1-.5.1.1.1 0 0 1-.1-.1c-.6-.4-.6-.6-.4-.8zm25.9 168.8h94.3v-7.9h-87.6a6.73 6.73 0 0 0-6.7 6.5v1.4z" class="cls-4"/><path d="M201.1 276.1h110.4l9.8-70.7a10.88 10.88 0 0 0-10.6-12.3H222a10.53 10.53 0 0 0-10.6 9.4z" class="cls-5"/><path fill="#c6def6" d="M503.8 278.3c-15.5.8-31 1-46.5 1.5L105 280c-31-.2-73.6 0-104.6-1.3-.1 0-.3-.3-.3-.6s.1-.6.2-.6h.1c31-1.3 73.6-1 104.6-1.3l352.4.2c15.5.2 31 .4 46.5 1.5.1 0 .2.2.2.4a.19.19 0 0 0-.3 0z"/><path d="M120.6 158.8a31.17 31.17 0 0 1 .8 5.2c0 1.7.2 3.4.2 5.2v-.4c.4.8.8 1.9 1.3 2.9a10.06 10.06 0 0 0 1.7 2.5 9.3 9.3 0 0 0 2.3 2.1 12.35 12.35 0 0 0 2.7 1.7.73.73 0 0 1 .2.6c0 .2-.2.2-.4.2a9.59 9.59 0 0 1-3.4-1 9.23 9.23 0 0 1-2.9-2.3 15.35 15.35 0 0 1-2.1-2.9 20.65 20.65 0 0 1-1.5-3.4v-.4a45.2 45.2 0 0 1 .2-5.2 50.58 50.58 0 0 1 .8-5.2c-.4.5-.2.3.1.4z" class="cls-2"/><path fill="#2c5da8" d="M250.2 81.8A12.25 12.25 0 0 0 238 69.6h-29a12.25 12.25 0 0 0-12.2 12.2v29A12.25 12.25 0 0 0 209 123h29a12.25 12.25 0 0 0 12.2-12.2zm-24.1 9.9c.1.1.1.1.2.1h5.5c.2 0 .2 0 .2.2-.1 1-.3 2-.4 3-.1.8-.2 1.7-.3 2.5 0 .3 0 .3-.3.3h-4.8v15.4H220V97.9h-5c-.2 0-.2 0-.2-.2v-5.6c0-.2.1-.2.2-.2h5v-4.8a9.37 9.37 0 0 1 .8-3.6 6.65 6.65 0 0 1 3.5-3.3 9.6 9.6 0 0 1 3.3-.6c1.3 0 2.6.1 3.9.1a1.7 1.7 0 0 1 .7.1.22.22 0 0 1 .2.2v5c0 .2 0 .2-.2.2h-3a5.85 5.85 0 0 0-1.3.2 1.92 1.92 0 0 0-1.5 1.6 3.4 3.4 0 0 0-.1 1 22.34 22.34 0 0 0-.2 3.7z"/><path fill="#3ca8e0" d="M296.2 15.5A12.25 12.25 0 0 0 284 3.3h-29a12.25 12.25 0 0 0-12.2 12.2v29A12.25 12.25 0 0 0 255 56.7h29a12.25 12.25 0 0 0 12.2-12.2zm-13.3 8.6c0 9.1-7 19.7-19.7 19.7a19.36 19.36 0 0 1-10.6-3.1 8.6 8.6 0 0 0 1.6.1 13.82 13.82 0 0 0 8.6-3 7.14 7.14 0 0 1-6.5-4.8 5.7 5.7 0 0 0 1.3.1 11 11 0 0 0 1.8-.2 6.8 6.8 0 0 1-5.5-6.8V26a8 8 0 0 0 3.1.9 6.85 6.85 0 0 1-3.1-5.8 6.76 6.76 0 0 1 .9-3.5 19.58 19.58 0 0 0 14.3 7.2 7.77 7.77 0 0 1-.2-1.6 6.91 6.91 0 0 1 6.9-6.9 6.5 6.5 0 0 1 5 2.2 13 13 0 0 0 4.4-1.7 6.72 6.72 0 0 1-3 3.8 14 14 0 0 0 4-1.1 13.3 13.3 0 0 1-3.5 3.6 2 2 0 0 1 .2 1z"/><path fill="#0678b6" d="M343.3 117.3a12.25 12.25 0 0 0-12.2-12.2h-29a12.25 12.25 0 0 0-12.2 12.2v29a12.25 12.25 0 0 0 12.2 12.2h29a12.25 12.25 0 0 0 12.2-12.2zm-21.4 14.4c-3.1 0-3.6 2.4-3.6 4.9v9.5h-6v-19.2h5.7v2.6h.1a6.27 6.27 0 0 1 5.7-3.1c6.1 0 7.2 4 7.2 9.2v10.6h-6v-9.4c0-2.2 0-5.1-3.1-5.1zm-16.3-7.4a3.5 3.5 0 1 1 3.5-3.5 3.54 3.54 0 0 1-3.5 3.5zm3 2.6v19.2h-6v-19.2z"/><path d="M223.4 189.4a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM223.4 172.5a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM223.4 154.5a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM223.4 138.4a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 189.4a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 172.5a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 154.5a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 138.4a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 123.6a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 106.8a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 88.7a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM269.5 72.2a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 239.9a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM361.1 239.9a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM345.1 239.9a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM330.1 239.9a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 209a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 224a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 191a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 174.9a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 160.1a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 143.3a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM376.1 125.2a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM316.6 189.4a4 4 0 1 0-4-4 4 4 0 0 0 4 4zM316.6 174.6a4 4 0 1 0-4-4 4 4 0 0 0 4 4z" class="cls-5"/><path fill="#001935" d="M392.3 55.1h-31.7a10.5 10.5 0 0 0-10.5 10.5v31.7a10.5 10.5 0 0 0 10.5 10.5h31.7a10.5 10.5 0 0 0 10.5-10.5V65.6a10.56 10.56 0 0 0-10.5-10.5z"/><path fill="#fff" d="M385.6 97.9H380c-5 0-8.7-2.6-8.7-8.7v-9.9h-4.5V74a9.81 9.81 0 0 0 7.3-9.3h5.2v8.5h6.1v6.2h-6.1V88c0 2.6 1.3 3.5 3.4 3.5h2.9v6.4z"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/jetpack-search.svg b/plugins/jetpack/images/jetpack-search.svg
index c2a779e8..5f70917a 100644
--- a/plugins/jetpack/images/jetpack-search.svg
+++ b/plugins/jetpack/images/jetpack-search.svg
@@ -6,7 +6,7 @@
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#CCCED0;}
- .st2{fill:#00BE28;}
+ .st2{fill:#069e08;}
.st3{fill:none;}
.st4{fill:#E1E2E2;}
.st5{fill:#84A5BC;}
diff --git a/plugins/jetpack/images/jetpack-updates.svg b/plugins/jetpack/images/jetpack-updates.svg
index 00c960df..eed8d267 100644
--- a/plugins/jetpack/images/jetpack-updates.svg
+++ b/plugins/jetpack/images/jetpack-updates.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1168"><defs><style>.cls-1{fill:#E1E2E2}.cls-2{fill:#CCCED0}.cls-3{fill:#05931f}.cls-4{fill:#00be28}.cls-5{fill:#fff}.cls-6{fill:#204A69}.cls-7{fill:none}</style></defs><title>jetpack-updates</title><g id="jetpack-updates"><path class="cls-1" d="M1139.66 1168H214.54V518.37a176.4 176.4 0 0 1 176.55-175.85h558.13c105 0 190.13 84.92 190.44 189.88z"/><path class="cls-2" d="M1135.17 266.6L736.18 390s-32.84-44.76 5.48-133.88S921.15 79.8 1064.72 55.24a1482.78 1482.78 0 0 1 190.86-14c87.58-2 154.38 82.24 139.08 174a340.06 340.06 0 0 1-51.22 129.25"/><circle class="cls-3" cx="683" cy="798.06" r="231.42"/><path class="cls-3" d="M451.71 662.92h462.71v135.14H451.71z"/><circle class="cls-4" cx="683" cy="666.7" r="231.42"/><path class="cls-5" d="M593.46 686.77c23.29 21.19 46 43 68.62 64.84l-14 .84c22.46-29.61 44.63-59.64 67.79-88.83S762 605.1 786 576.75a6.87 6.87 0 0 1 10.8 8.28c-20.91 30.59-43.22 60.76-65.82 90.52s-45.47 59.08-68.34 88.55a9.41 9.41 0 0 1-13.19 1.69l-1-1q-33-33.79-64.84-68.62a6.9 6.9 0 0 1 0-9.69 7 7 0 0 1 9.85.29z"/><path class="cls-2" d="M1061.63 205.27c-291.62 51.36-445.16 325.3-388 341.16s173.18-201.95 342.29-217.8c130.52-12.35 108.63 46.59 33.82 79.57C938.7 457 919.47 500.82 936.31 531.56s222.3-30.18 347.2-123.36a278.12 278.12 0 0 0 95.85-138.8"/><path class="cls-6" d="M1062.9 211.86a551.22 551.22 0 0 0-215.15 90.38A586.46 586.46 0 0 0 758.5 378a438.64 438.64 0 0 0-69.33 93.46 142.68 142.68 0 0 0-18.24 52.21 25.54 25.54 0 0 0 1.26 10.52 5.88 5.88 0 0 0 4.63 3.79 32.8 32.8 0 0 0 21.47-5.61 287.64 287.64 0 0 0 44.07-36.77l42.1-42.1A766.91 766.91 0 0 1 876 374.94 314.76 314.76 0 0 1 986.69 323a295.2 295.2 0 0 1 61.47-6.17 172.5 172.5 0 0 1 31.44 2.38 58.26 58.26 0 0 1 33.12 15 28.06 28.06 0 0 1 7.29 21.47 39.5 39.5 0 0 1-7 18.25 93 93 0 0 1-23.58 23.29 293.7 293.7 0 0 1-54.31 28.07 385 385 0 0 0-50.52 28.07A125.47 125.47 0 0 0 945.85 492a36.53 36.53 0 0 0-4.77 22.88 32.64 32.64 0 0 0 3.65 10.94 13.13 13.13 0 0 0 5.89 2.67 165.66 165.66 0 0 0 55.3-4.77 677.41 677.41 0 0 0 112.27-35.65 838.66 838.66 0 0 0 106-51.5 373.42 373.42 0 0 0 92.76-70.17 276 276 0 0 0 57.05-99.81 6.88 6.88 0 0 1 13 4.07A288.81 288.81 0 0 1 1327.72 378a280.29 280.29 0 0 1-45.19 41.26 603.68 603.68 0 0 1-50.38 33.26 869.26 869.26 0 0 1-107.92 53.33 717.52 717.52 0 0 1-114.8 37.19 302 302 0 0 1-30.18 5 111.3 111.3 0 0 1-32.7 0 35 35 0 0 1-9.4-3.09 21 21 0 0 1-9.26-9 51.24 51.24 0 0 1-5.75-17.68 55.28 55.28 0 0 1 6.73-34.53 142.27 142.27 0 0 1 44.49-45.47 390.2 390.2 0 0 1 53.05-30.31 290.52 290.52 0 0 0 50.94-26.95 76.84 76.84 0 0 0 18.65-18.14 20.37 20.37 0 0 0 3.65-9.12 7.17 7.17 0 0 0-2.11-5.9 42.16 42.16 0 0 0-21.19-8.7 179.49 179.49 0 0 0-28.07-2.24 284.71 284.71 0 0 0-57 5.61 292.47 292.47 0 0 0-103.15 48.42 751.11 751.11 0 0 0-89.53 76.2l-42.11 42.1a284.51 284.51 0 0 1-47.57 39 48.86 48.86 0 0 1-34.81 8.56 24.59 24.59 0 0 1-17.4-14 42 42 0 0 1-2.66-18.8 157.58 157.58 0 0 1 20.49-59.65 453.42 453.42 0 0 1 72.69-97.11 575.4 575.4 0 0 1 92.35-77.75 563.78 563.78 0 0 1 222.15-90.1 6.74 6.74 0 0 1 7.83 5.43v.19a6.73 6.73 0 0 1-6.59 6.87zm-22.74-64.13A542 542 0 0 0 953.71 175 564.57 564.57 0 0 0 873 215.65a503 503 0 0 0-72.28 53.75 323.65 323.65 0 0 0-58.52 67.65 6.73 6.73 0 0 1-9.27 2.18.57.57 0 0 1-.13-.08 6.87 6.87 0 0 1-2.39-8.84 288.6 288.6 0 0 1 57.4-75.08 446.3 446.3 0 0 1 74.8-57 488 488 0 0 1 84.21-40.7 442.33 442.33 0 0 1 90.8-23.3 6.73 6.73 0 0 1 7.69 5.62.59.59 0 0 1 0 .14 6.73 6.73 0 0 1-5.15 7.74zm-304.4 105A243.4 243.4 0 0 1 788.39 188a535.41 535.41 0 0 1 65.12-50.38 730.69 730.69 0 0 1 70.17-41.4A636.64 636.64 0 0 1 998.9 63.8a6.74 6.74 0 0 1 8.64 4l.06.18a7 7 0 0 1-3.51 8.42C980 88.08 956 100.15 932.66 113.2s-45.61 26.25-67.92 41.26a645.83 645.83 0 0 0-64.14 47.44 276.45 276.45 0 0 0-52.77 57.4 6.76 6.76 0 0 1-11.65-6.88z"/></g><g id="clear_rectangle" data-name="clear rectangle"><path id="Layer_4" data-name="Layer 4" class="cls-7" d="M0 0h1600v1168H0z"/></g></svg> \ No newline at end of file
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1168"><defs><style>.cls-1{fill:#E1E2E2}.cls-2{fill:#CCCED0}.cls-3{fill:#05931f}.cls-4{fill:#069e08}.cls-5{fill:#fff}.cls-6{fill:#204A69}.cls-7{fill:none}</style></defs><title>jetpack-updates</title><g id="jetpack-updates"><path class="cls-1" d="M1139.66 1168H214.54V518.37a176.4 176.4 0 0 1 176.55-175.85h558.13c105 0 190.13 84.92 190.44 189.88z"/><path class="cls-2" d="M1135.17 266.6L736.18 390s-32.84-44.76 5.48-133.88S921.15 79.8 1064.72 55.24a1482.78 1482.78 0 0 1 190.86-14c87.58-2 154.38 82.24 139.08 174a340.06 340.06 0 0 1-51.22 129.25"/><circle class="cls-3" cx="683" cy="798.06" r="231.42"/><path class="cls-3" d="M451.71 662.92h462.71v135.14H451.71z"/><circle class="cls-4" cx="683" cy="666.7" r="231.42"/><path class="cls-5" d="M593.46 686.77c23.29 21.19 46 43 68.62 64.84l-14 .84c22.46-29.61 44.63-59.64 67.79-88.83S762 605.1 786 576.75a6.87 6.87 0 0 1 10.8 8.28c-20.91 30.59-43.22 60.76-65.82 90.52s-45.47 59.08-68.34 88.55a9.41 9.41 0 0 1-13.19 1.69l-1-1q-33-33.79-64.84-68.62a6.9 6.9 0 0 1 0-9.69 7 7 0 0 1 9.85.29z"/><path class="cls-2" d="M1061.63 205.27c-291.62 51.36-445.16 325.3-388 341.16s173.18-201.95 342.29-217.8c130.52-12.35 108.63 46.59 33.82 79.57C938.7 457 919.47 500.82 936.31 531.56s222.3-30.18 347.2-123.36a278.12 278.12 0 0 0 95.85-138.8"/><path class="cls-6" d="M1062.9 211.86a551.22 551.22 0 0 0-215.15 90.38A586.46 586.46 0 0 0 758.5 378a438.64 438.64 0 0 0-69.33 93.46 142.68 142.68 0 0 0-18.24 52.21 25.54 25.54 0 0 0 1.26 10.52 5.88 5.88 0 0 0 4.63 3.79 32.8 32.8 0 0 0 21.47-5.61 287.64 287.64 0 0 0 44.07-36.77l42.1-42.1A766.91 766.91 0 0 1 876 374.94 314.76 314.76 0 0 1 986.69 323a295.2 295.2 0 0 1 61.47-6.17 172.5 172.5 0 0 1 31.44 2.38 58.26 58.26 0 0 1 33.12 15 28.06 28.06 0 0 1 7.29 21.47 39.5 39.5 0 0 1-7 18.25 93 93 0 0 1-23.58 23.29 293.7 293.7 0 0 1-54.31 28.07 385 385 0 0 0-50.52 28.07A125.47 125.47 0 0 0 945.85 492a36.53 36.53 0 0 0-4.77 22.88 32.64 32.64 0 0 0 3.65 10.94 13.13 13.13 0 0 0 5.89 2.67 165.66 165.66 0 0 0 55.3-4.77 677.41 677.41 0 0 0 112.27-35.65 838.66 838.66 0 0 0 106-51.5 373.42 373.42 0 0 0 92.76-70.17 276 276 0 0 0 57.05-99.81 6.88 6.88 0 0 1 13 4.07A288.81 288.81 0 0 1 1327.72 378a280.29 280.29 0 0 1-45.19 41.26 603.68 603.68 0 0 1-50.38 33.26 869.26 869.26 0 0 1-107.92 53.33 717.52 717.52 0 0 1-114.8 37.19 302 302 0 0 1-30.18 5 111.3 111.3 0 0 1-32.7 0 35 35 0 0 1-9.4-3.09 21 21 0 0 1-9.26-9 51.24 51.24 0 0 1-5.75-17.68 55.28 55.28 0 0 1 6.73-34.53 142.27 142.27 0 0 1 44.49-45.47 390.2 390.2 0 0 1 53.05-30.31 290.52 290.52 0 0 0 50.94-26.95 76.84 76.84 0 0 0 18.65-18.14 20.37 20.37 0 0 0 3.65-9.12 7.17 7.17 0 0 0-2.11-5.9 42.16 42.16 0 0 0-21.19-8.7 179.49 179.49 0 0 0-28.07-2.24 284.71 284.71 0 0 0-57 5.61 292.47 292.47 0 0 0-103.15 48.42 751.11 751.11 0 0 0-89.53 76.2l-42.11 42.1a284.51 284.51 0 0 1-47.57 39 48.86 48.86 0 0 1-34.81 8.56 24.59 24.59 0 0 1-17.4-14 42 42 0 0 1-2.66-18.8 157.58 157.58 0 0 1 20.49-59.65 453.42 453.42 0 0 1 72.69-97.11 575.4 575.4 0 0 1 92.35-77.75 563.78 563.78 0 0 1 222.15-90.1 6.74 6.74 0 0 1 7.83 5.43v.19a6.73 6.73 0 0 1-6.59 6.87zm-22.74-64.13A542 542 0 0 0 953.71 175 564.57 564.57 0 0 0 873 215.65a503 503 0 0 0-72.28 53.75 323.65 323.65 0 0 0-58.52 67.65 6.73 6.73 0 0 1-9.27 2.18.57.57 0 0 1-.13-.08 6.87 6.87 0 0 1-2.39-8.84 288.6 288.6 0 0 1 57.4-75.08 446.3 446.3 0 0 1 74.8-57 488 488 0 0 1 84.21-40.7 442.33 442.33 0 0 1 90.8-23.3 6.73 6.73 0 0 1 7.69 5.62.59.59 0 0 1 0 .14 6.73 6.73 0 0 1-5.15 7.74zm-304.4 105A243.4 243.4 0 0 1 788.39 188a535.41 535.41 0 0 1 65.12-50.38 730.69 730.69 0 0 1 70.17-41.4A636.64 636.64 0 0 1 998.9 63.8a6.74 6.74 0 0 1 8.64 4l.06.18a7 7 0 0 1-3.51 8.42C980 88.08 956 100.15 932.66 113.2s-45.61 26.25-67.92 41.26a645.83 645.83 0 0 0-64.14 47.44 276.45 276.45 0 0 0-52.77 57.4 6.76 6.76 0 0 1-11.65-6.88z"/></g><g id="clear_rectangle" data-name="clear rectangle"><path id="Layer_4" data-name="Layer 4" class="cls-7" d="M0 0h1600v1168H0z"/></g></svg>
diff --git a/plugins/jetpack/images/jetpack-woocommerce-logo.svg b/plugins/jetpack/images/jetpack-woocommerce-logo.svg
new file mode 100644
index 00000000..71f18442
--- /dev/null
+++ b/plugins/jetpack/images/jetpack-woocommerce-logo.svg
@@ -0,0 +1,17 @@
+<svg width="327" height="33" viewBox="0 0 327 33" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z" fill="#069E08"/>
+<path d="M16.7939 13.313V28.8244L24.7939 13.313H16.7939Z" fill="white"/>
+<path d="M15.1755 18.6565V3.17554L7.20605 18.6565H15.1755Z" fill="white"/>
+<path d="M41.3158 26.9306C40.8568 26.2278 40.4284 25.525 40 24.8528C42.2644 23.4778 43.0294 22.3778 43.0294 20.3V8.29167H40.3672V6H46.0282V19.6889C46.0282 23.1722 45.0184 25.1278 41.3158 26.9306Z" fill="black"/>
+<path d="M65.031 18.7418C65.031 19.9029 65.8572 20.0251 66.408 20.0251C66.9588 20.0251 67.7544 19.8418 68.3664 19.6584V21.7973C67.5096 22.0723 66.6222 22.2862 65.3982 22.2862C63.9294 22.2862 62.2158 21.7362 62.2158 19.1695V12.8751H60.6552V10.7056H62.2158V7.49731H65.031V10.7056H68.5806V12.8751H65.031V18.7418Z" fill="black"/>
+<path d="M70.9062 27.9999V10.6749H73.5991V11.7138C74.6701 10.8888 75.8635 10.3694 77.3323 10.3694C79.8721 10.3694 81.8917 12.1416 81.8917 15.9611C81.8917 19.7499 79.6885 22.2555 76.0471 22.2555C75.1597 22.2555 74.4559 22.1333 73.7215 21.9805V27.9694H70.9062V27.9999ZM76.5979 12.6916C75.7717 12.6916 74.7313 13.0888 73.7521 13.9444V19.8416C74.3641 19.9638 75.0067 20.0555 75.8635 20.0555C77.8525 20.0555 78.9847 18.8027 78.9847 16.1749C78.9847 13.7611 78.1585 12.6916 76.5979 12.6916Z" fill="black"/>
+<path d="M92.969 22.0111H90.3374V20.7583H90.2762C89.3581 21.4611 88.2259 22.2249 86.5429 22.2249C85.0741 22.2249 83.4829 21.1555 83.4829 18.9861C83.4829 16.0833 85.9615 15.5333 87.7057 15.2888L90.1844 14.9527V14.6166C90.1844 13.0888 89.5724 12.5999 88.1341 12.5999C87.4303 12.5999 85.7779 12.8138 84.4315 13.3638L84.1867 11.1027C85.4107 10.6749 87.0937 10.3694 88.5013 10.3694C91.2554 10.3694 93.0302 11.4694 93.0302 14.7388V22.0111H92.969ZM90.1538 16.7249L87.8281 17.0916C87.1243 17.1833 86.3899 17.6111 86.3899 18.6499C86.3899 19.5666 86.9101 20.0861 87.6751 20.0861C88.5013 20.0861 89.3888 19.5972 90.1538 19.0472V16.7249Z" fill="black"/>
+<path d="M104.597 21.6444C103.434 22.0416 102.394 22.2861 101.078 22.2861C96.8551 22.2861 95.1721 19.8722 95.1721 16.3583C95.1721 12.6611 97.4977 10.3694 101.262 10.3694C102.669 10.3694 103.526 10.6138 104.475 10.9194V13.3027C103.648 12.9972 102.455 12.6611 101.292 12.6611C99.5786 12.6611 98.1097 13.5777 98.1097 16.2055C98.1097 19.1083 99.5786 19.9944 101.445 19.9944C102.333 19.9944 103.312 19.8111 104.628 19.2916V21.6444H104.597Z" fill="black"/>
+<path d="M109.922 15.5639C110.166 15.2889 110.35 15.0139 113.9 10.7056H117.572L112.982 16.0833L118 22.0417H114.328L109.952 16.6639V22.0417H107.137V6H109.952V15.5639H109.922Z" fill="black"/>
+<path d="M58.5437 21.6444C57.0749 22.1027 55.8203 22.2861 54.3515 22.2861C50.7407 22.2861 48.5068 20.4833 48.5068 16.2666C48.5068 13.1805 50.404 10.3694 54.0455 10.3694C57.6563 10.3694 58.9109 12.8749 58.9109 15.2583C58.9109 16.0527 58.8497 16.4805 58.8191 16.9388H51.5363C51.5975 19.4138 53.0051 19.9944 55.1165 19.9944C56.2793 19.9944 57.3197 19.7194 58.5131 19.2916V21.6444H58.5437ZM55.9733 15.0749C55.9733 13.6999 55.5143 12.5083 54.0149 12.5083C52.6073 12.5083 51.7505 13.5166 51.5669 15.0749H55.9733Z" fill="black"/>
+<path d="M142 15H150" stroke="#1E1E1E" stroke-width="1.5"/>
+<path d="M146 11L146 19" stroke="#1E1E1E" stroke-width="1.5"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M240.984 8.79642C242.079 7.46415 243.596 6.7871 245.534 6.7871C247.598 6.7871 249.178 7.46415 250.295 8.79642C251.39 10.1505 251.938 12.0725 251.938 14.5623C251.938 17.0521 251.39 18.9959 250.316 20.3718C249.241 21.7478 247.704 22.4467 245.702 22.4467C243.638 22.4467 242.058 21.7478 240.984 20.3718C239.91 18.9959 239.362 17.0084 239.362 14.4094C239.362 12.007 239.888 10.1287 240.984 8.79642ZM228.808 14.4533C228.808 12.2256 229.503 10.391 230.915 8.94951C232.326 7.50804 234.096 6.7873 236.244 6.80914C237.066 6.80914 237.845 6.89651 238.54 7.09307V10.6312C237.782 10.4128 237.087 10.3036 236.434 10.3036C235.423 10.3036 234.601 10.6967 233.927 11.5048C233.274 12.2911 232.937 13.3176 232.937 14.5625C232.937 15.8948 233.274 16.9431 233.948 17.7294C234.622 18.4938 235.507 18.8869 236.623 18.8869C237.171 18.8869 237.803 18.7777 238.54 18.5593V22.0974C237.74 22.3377 237.003 22.4469 236.35 22.4469C234.096 22.4469 232.284 21.7043 230.894 20.241C229.503 18.7777 228.808 16.8339 228.808 14.4533ZM247.198 18.1441C246.819 18.7556 246.25 19.0614 245.534 19.0614C244.86 19.0614 244.354 18.7556 243.996 18.1441C243.638 17.5326 243.469 16.3095 243.469 14.4531C243.469 11.592 244.165 10.1724 245.576 10.1724C247.05 10.1724 247.809 11.6138 247.809 14.5186C247.788 16.3095 247.577 17.5326 247.198 18.1441ZM261.585 10.5437L262.344 7.20208H267.357L269.295 22.0754H265.461L264.429 11.8541L262.028 22.0754H259.416L256.909 11.8322L255.919 22.0754H252.253L254.086 7.20208H258.973C259.668 10.4126 260.216 13.1645 260.616 15.4796L261.038 13.1645C261.206 12.2691 261.396 11.3954 261.585 10.5437ZM279.891 7.20208L279.132 10.5437C278.943 11.3954 278.753 12.2691 278.585 13.1645L278.163 15.4796C277.763 13.1645 277.215 10.4126 276.52 7.20208H271.633L269.801 22.0754H273.466L274.456 11.8322L276.963 22.0754H279.575L281.955 11.8541L282.987 22.0754H286.821L284.883 7.20208H279.891ZM295.247 16.2003H291.813V18.9304H295.795V22.0972H287.937V7.2239H295.774V10.3908H291.813V13.1208H295.247V16.2003ZM306.706 13.8416C307.106 13.1645 307.317 12.4656 307.317 11.7449C307.317 10.3471 306.79 9.23324 305.737 8.42514C304.684 7.61705 303.23 7.20208 301.419 7.20208H296.911V22.0754H300.787V15.3049H300.85L303.989 22.0754H308.075L304.979 15.3704C305.716 15.0209 306.306 14.5186 306.706 13.8416ZM300.766 10.0632V13.6013C302.472 13.5795 303.336 13.0553 303.336 12.0288C303.336 11.3299 303.146 10.8494 302.746 10.5437C302.346 10.2379 301.693 10.085 300.766 10.0632ZM309.592 8.94929C308.181 10.3908 307.486 12.2253 307.486 14.4531C307.486 16.8337 308.181 18.7775 309.571 20.2408C310.961 21.7041 312.773 22.4467 315.027 22.4467C315.68 22.4467 316.417 22.3375 317.217 22.0972V18.5591C316.48 18.7775 315.848 18.8867 315.301 18.8867C314.184 18.8867 313.299 18.4935 312.625 17.7291C311.951 16.9429 311.614 15.8945 311.614 14.5623C311.614 13.3174 311.951 12.2909 312.604 11.5046C313.278 10.6965 314.1 10.3034 315.111 10.3034C315.764 10.3034 316.459 10.4126 317.217 10.631V7.09285C316.522 6.89629 315.743 6.80893 314.921 6.80893C312.794 6.78709 311.003 7.50782 309.592 8.94929ZM322.168 16.1785V18.8867V18.9085H326.17V22.0754H318.313V7.20208H326.149V10.3689H322.168V13.099H325.601V16.1785H322.168Z" fill="black"/>
+<rect x="175.332" y="2.33203" width="49.2828" height="23.9754" rx="5" fill="white"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M221.539 1H178.865C176.165 1 173.979 3.26374 174 6.01099V22.7143C174 25.4835 176.186 27.7253 178.887 27.7253H199.098L208.336 33L206.235 27.7253H221.539C224.239 27.7253 226.425 25.4835 226.425 22.7143V6.01099C226.425 3.24176 224.239 1 221.539 1ZM177.965 4.86813C177.365 4.91208 176.915 5.13186 176.615 5.54945C176.315 5.94505 176.208 6.45054 176.272 7.02197C177.537 15.2637 178.715 20.8242 179.809 23.7033C180.237 24.7582 180.73 25.2637 181.309 25.2198C182.209 25.1538 183.281 23.8791 184.545 21.3956C185.21 19.989 186.238 17.8791 187.632 15.0659C188.789 19.2198 190.375 22.3407 192.368 24.4286C192.926 25.022 193.504 25.2857 194.061 25.2418C194.554 25.1978 194.94 24.9341 195.197 24.4505C195.412 24.033 195.497 23.5494 195.455 23C195.326 21 195.519 18.2088 196.055 14.6264C196.612 10.9341 197.298 8.27472 198.134 6.6923C198.305 6.36263 198.37 6.03296 198.348 5.63736C198.305 5.13186 198.091 4.71428 197.684 4.38461C197.276 4.05494 196.826 3.90109 196.333 3.94505C195.712 3.98901 195.24 4.2967 194.919 4.91208C193.59 7.3956 192.647 11.4176 192.09 17C191.275 14.8901 190.589 12.4066 190.053 9.48351C189.818 8.18681 189.239 7.57142 188.296 7.63736C187.653 7.68131 187.117 8.12087 186.689 8.95604L181.995 18.1209C181.223 14.9341 180.494 11.044 179.83 6.45054C179.68 5.30769 179.058 4.78021 177.965 4.86813ZM209.258 8.99998C208.486 7.61537 207.329 6.7802 205.828 6.45053C205.421 6.36262 205.035 6.31866 204.671 6.31866C202.613 6.31866 200.941 7.41757 199.634 9.61537C198.52 11.4835 197.962 13.5494 197.962 15.8132C197.962 17.5055 198.305 18.956 198.991 20.1648C199.763 21.5494 200.899 22.3846 202.42 22.7143C202.828 22.8022 203.213 22.8461 203.578 22.8461C205.657 22.8461 207.329 21.7472 208.615 19.5494C209.729 17.6593 210.286 15.5934 210.286 13.3297C210.286 11.6154 209.943 10.1868 209.258 8.99998ZM219.267 6.45053C220.788 6.7802 221.924 7.61537 222.696 8.99998C223.382 10.1868 223.725 11.6154 223.725 13.3297C223.725 15.5934 223.168 17.6593 222.053 19.5494C220.767 21.7472 219.095 22.8461 217.016 22.8461C216.652 22.8461 216.266 22.8022 215.859 22.7143C214.337 22.3846 213.201 21.5494 212.43 20.1648C211.744 18.956 211.401 17.5055 211.401 15.8132C211.401 13.5494 211.958 11.4835 213.073 9.61537C214.38 7.41757 216.052 6.31866 218.109 6.31866C218.474 6.31866 218.86 6.36262 219.267 6.45053ZM206.557 15.0879C206.257 16.5385 205.721 17.6154 204.928 18.3407C204.306 18.9121 203.728 19.1539 203.192 19.044C202.678 18.9341 202.249 18.4725 201.927 17.6154C201.67 16.9341 201.542 16.2528 201.542 15.6154C201.542 15.0659 201.584 14.5165 201.692 14.011C201.884 13.1099 202.249 12.2308 202.828 11.3956C203.535 10.3187 204.285 9.87913 205.057 10.033C205.571 10.1429 206 10.6044 206.321 11.4615C206.578 12.1429 206.707 12.8242 206.707 13.4615C206.707 14.033 206.664 14.5824 206.557 15.0879ZM218.367 18.3407C219.16 17.6154 219.695 16.5385 219.995 15.0879C220.081 14.5824 220.145 14.033 220.145 13.4615C220.145 12.8242 220.017 12.1429 219.76 11.4615C219.438 10.6044 219.01 10.1429 218.495 10.033C217.724 9.87913 216.973 10.3187 216.266 11.3956C215.687 12.2308 215.323 13.1099 215.13 14.011C215.023 14.5165 214.98 15.0659 214.98 15.6154C214.98 16.2528 215.109 16.9341 215.366 17.6154C215.687 18.4725 216.116 18.9341 216.63 19.044C217.166 19.1539 217.745 18.9121 218.367 18.3407Z" fill="#7F54B3"/>
+</svg>
diff --git a/plugins/jetpack/images/people-around-page.svg b/plugins/jetpack/images/people-around-page.svg
index d2efb340..d6a8b045 100644
--- a/plugins/jetpack/images/people-around-page.svg
+++ b/plugins/jetpack/images/people-around-page.svg
@@ -1 +1 @@
-<svg id="Layer_3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1562 968.3" enable-background="new 0 0 1562 968.3"><style>.st0{fill:#fff}.st1{fill:#e8eef3}.st2{fill:#CCCED0}.st3{fill:#BBC9D5}.st4{fill:#def2fa}.st5{fill:#204A69}.st6{fill:#00be28}.st7{fill:#E1E2E2}.st8{filter:url(#Adobe_OpacityMaskFilter)}.st9{mask:url(#mask-2_1_)}.st10{fill:#204A69}.st11{fill:#6F93AD}.st12{fill:#204A69}</style><path class="st0" d="M1117.5 416.8l22.4-86.8-2.3-97.6L358 265l.5 559.1 214.6 3.2z" id="Fill-1"/><path class="st0" d="M1382.5 803.1c0-3.1 9.2-63.4 9.2-63.4l-47.3-26.7-9.2 81.7 13.8 6.7 33.5 1.7z" id="Fill-2"/><path class="st0" d="M1186.3 461.7s61.8 24.5 48.9 36.2c-17.3 15.7-1.8 32.3 7 37.2 9 5 7.1 20.1-5.5 37.5-19.3 26.7-34.4 29.6-44.3 23.1-9.9-6.5-25.1-23-23.6-34.5s15.9-7.2 23.3-22.1c6.1-12.4-.9-4.4-13.1-8-10.4-3-13.9-45-12-52.6 1.7-7.5 9.3-16.8 19.3-16.8" id="Fill-4"/><path class="st0" d="M210.8 817.6L146 906.1l53 54.9 38.1-61.7z" id="Fill-6"/><path class="st0" d="M251.8 367.2c-18.4-5.8-46.2 74.5-35.4 85.3 10.8 10.8 18.5 44.9 24.4 50.9 6 6 .8 25.7 7.6 25.7 6.9 0 22.1-26 23.7-36.6 1.5-10.7 9-26 7.9-36.6-1-10.7 9.5-31.6 9.5-47.1s4.2-26.9-8.9-36.9c-13-10-24-3.2-28.8-4.7" id="Fill-8"/><path class="st1" d="M58.7 232.1c12.4-.4 24.9-.9 37.3-1.1 12.4-.3 24.9-.6 37.3-.7L131 232c3.8-11.6 8.9-22.7 15.7-33.1 7-10.1 15.6-20 28-25.2 25.3-10.8 56.7 5.6 62.5 31.2.6 3.2.8 6.7 0 10.1-.8 3.4-2.8 7.1-6.2 9.2-3.3 2.2-7.3 2.8-10.7 2.8-3.4-.1-7.8-.8-10.8-4.3-2.9-3.5-2.7-8-1.5-11.3 1.1-3.4 3.1-6.2 5.4-8.7 4.6-4.9 10.5-8.3 16.8-10.4 6.3-2 13-2.7 19.6-2 6.6.4 13.4 2.7 18.6 7.1 5.3 4.4 8.3 10.6 9.8 16.7s1.8 12.5.9 18.7l-2.5-2.8c27.1.2 54.1.7 81.2 1.3.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1-27.1.6-54.1 1.1-81.2 1.3-1.4 0-2.5-1-2.6-2.4v-.4c1.1-10.9-1-23.6-9.5-30.5-4.2-3.4-9.7-5.3-15.4-5.6-5.8-.6-11.6 0-17.1 1.8-5.4 1.8-10.4 4.8-14.1 8.8-1.8 2-3.3 4.3-4 6.6-.8 2.3-.6 4.5.5 5.7 2 2.5 9.7 2.6 12.9.2 3.7-2.4 4.6-8 3.4-13.1-2.2-10.5-10.4-20-20.5-25.1-5.1-2.7-10.8-4.1-16.5-4.7-5.7-.1-11.5.2-16.6 2.7-10.7 4.3-18.9 13.4-25.6 22.9-6.7 9.6-11.9 20.4-15.8 31.4v.1c-.4 1-1.3 1.6-2.3 1.6-12.4-.1-24.9-.4-37.3-.7-12.4-.2-24.9-.8-37.3-1.1-.3 0-.6-.3-.6-.6 0 0 .2-.3.5-.3" id="Fill-10"/><path class="st2" d="M704.2 904.7c15.5-9.9 31.3-19.3 47.5-28.1 8-4.5 16.2-8.8 24.4-12.9s16.3-8.5 24.7-12.5c16.7-7.8 33.1-16.1 50.1-23.3 16.9-7.5 33.7-15 50.9-21.6l25.7-10.2c8.5-3.5 17.3-6.3 26-9.5 17.4-6.1 34.6-12.8 52.3-18.1 17.6-5.5 35.1-11.3 52.8-16.7l53.3-14.8 13.3-3.7 13.5-3.2 26.9-6.4c18-4.2 35.9-8.7 54.1-11.9l54.4-10.5c18.2-3.2 36.5-5.7 54.7-8.4 36.5-6 73.3-8.6 110-12.4 9.2-1 18.4-1.9 27.6-2.2l27.7-1.4 55.3-2.5c.6 0 1.2.4 1.2 1.1 0 .6-.4 1.1-1.1 1.2h-.1l-55.2 3.8c-18.4 1.4-36.8 1.8-55.1 4.2-36.6 4.2-73.3 7.3-109.6 13.7-18.2 3-36.4 5.3-54.6 8.5l-54.2 10.5c-18.1 3.2-36 7.7-53.9 11.9l-26.9 6.4-13.4 3.2-13.3 3.7-53.2 14.8c-17.6 5.3-35.1 11.1-52.6 16.6-17.6 5.3-34.8 12-52.1 18-8.6 3.2-17.4 6-25.9 9.5l-25.6 10.1c-8.5 3.5-17.2 6.5-25.6 10.1l-25.4 10.7c-17 6.9-33.6 14.9-50.4 22.4-8.4 3.8-16.5 8-24.8 12s-16.5 8.1-24.6 12.4c-16.4 8.3-32.5 17.1-48.3 26.4-.3.2-.6.1-.8-.2-.1-.2 0-.6.3-.7" id="Fill-12"/><path class="st0" d="M705.9 822.5c49.1 18.6 78.7 32.4 78.7 32.4" id="Fill-14"/><path class="st2" d="M706.6 822.5c7.5 1.3 14.6 3.6 21.5 6.2 7 2.6 13.9 5.3 20.7 8.3 13.5 6.2 27.2 12.1 39.8 20.3.6.4.7 1.1.3 1.7-.3.4-.9.6-1.4.5-14.2-4.6-27.6-10.8-41.4-16.3-6.8-2.9-13.6-5.9-20.3-9-6.7-3.1-13.4-6.4-19.7-10.6-.3-.2-.4-.6-.2-.8.2-.3.4-.4.7-.3" id="Fill-16"/><path class="st2" d="M-1.7 756.6c27-12.3 55.6-20.9 84.6-27.3 29.1-6.1 58.6-10 88.3-11.9 59.3-3.4 119-.3 177.4 9.3.6.1 1.1.7 1 1.3-.1.6-.7 1.1-1.3 1-58.8-5.7-117.9-9.2-176.7-5.1-29.4 1.8-58.7 5.3-87.5 11.1-28.9 5.5-57.3 13.3-85.4 22.7-.3.1-.6-.1-.7-.4-.1-.2.1-.6.3-.7" id="Fill-18"/><path class="st0" d="M355.1 831.7l-.9-582.7" id="Fill-20"/><path class="st2" d="M355.7 831.7c-4.8-48.6-4.6-97.1-5-145.7l-1.1-145.7.5-145.7c.2-48.6-.3-97.1 4.4-145.7h2.9c4.8 48.6 4.6 97.1 5 145.7l1.1 145.7L363 686c-.2 48.6.3 97.1-4.4 145.7h-2.9z" id="Fill-22"/><path class="st0" d="M1140.8 276.7v545.8H465.3" id="Fill-24"/><path class="st2" d="M1140.6 276.7c1.5 45.7 2.3 91.4 3 137.1.8 45.7.8 91.4 1.2 137.1l.6 274.1v6.2h-6.2l-168.5.5-168.5-.4-168.5-.5c-56.2-.6-112.3-1-168.5-4.3v-2.9c56.2-3.3 112.3-3.8 168.5-4.3l168.5-.5 168.5-.4 168.5.5-6.2 6.2.6-274.1c.4-45.7.4-91.4 1.2-137.1.7-45.7 1.5-91.4 3-137.1h2.8z" id="Fill-26"/><path class="st3" d="M349.6 276.7V203c0-25.7 21.1-46.6 47.1-46.6h696.9c26 0 47.1 20.8 47.1 46.6v73.7H349.6z" id="Fill-28"/><path class="st4" d="M1177.8 276.7H308" id="Fill-30"/><path class="st5" d="M1177.8 280.5c-72.5 4.5-145 4.4-217.5 4.7l-217.4.8-217.5-.8c-72.5-.3-145-.2-217.5-4.7v-2.9c72.5-4.5 145-4.4 217.5-4.7l217.5-.8 217.5.8c72.5.3 145 .2 217.5 4.7v2.9z" id="Fill-32"/><path class="st6" d="M423.6 757.7h175.9v-407H423.6" id="Fill-34"/><path class="st2" d="M1043.4 415.5H747.5v-64.7h314.6v46c0 10.3-8.3 18.7-18.7 18.7" id="Fill-36"/><path class="st7" d="M710.5 415.5h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-38"/><path class="st2" d="M1043.4 757.7H747.5v-111h314.6v92.6c0 10.2-8.4 18.4-18.7 18.4" id="Fill-40"/><path class="st7" d="M710.5 706.8h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-42"/><path class="st2" d="M1043.4 595.9H747.5V457.1h314.6v120.4c0 10.1-8.4 18.4-18.7 18.4" id="Fill-44"/><path class="st6" d="M710.5 517.2h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-46"/><path class="st0" d="M562.4 445.5c0 26.8-21.7 48.6-48.6 48.6s-48.6-21.7-48.6-48.6S487 397 513.9 397s48.5 21.7 48.5 48.5" id="Fill-48"/><g id="Group-52" transform="translate(.938 254.102)"><defs><filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="1.7" y="697.9" width="1563.8" height="13.9"><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/></filter></defs><mask maskUnits="userSpaceOnUse" x="1.7" y="697.9" width="1563.8" height="13.9" id="mask-2_1_"><g class="st8"><path id="path-1_1_" class="st0" d="M1.7 697.9h1563.8v13.8H1.7z"/></g></mask><g id="Fill-50" class="st9"><path class="st1" d="M2.8 703.6c130-3.4 260.1-4.1 390.1-4.9l390.1-.8c260.1.7 520.1.3 780.2 4.5 1.3 0 2.3 1.1 2.3 2.5 0 1.3-1 2.4-2.3 2.4-260.1 4.2-520.1 3.7-780.2 4.5l-390.1-.8c-130-.8-260.1-1.6-390.1-4.9-.6 0-1.1-.6-1.1-1.2 0-.8.5-1.3 1.1-1.3"/></g></g><path class="st2" d="M1302.2 434l-5.6-19.5c-16.6 2.2-23.4-6.7-29.7-20.8-1.8-4-9.8-3.3-10.5-8-.8-6.1 8.7-10.2 8.4-22.5-.1-6.9 1.3-15.9 7.9-17.1 0 0 31.5 13.1 47.3 29.3 7.1 18.9 11.3 27.8 11.3 27.8l8.3 19.3-37.4 11.5z" id="Fill-53"/><path class="st2" d="M394.3 873.5c-2.4-11.3-4.9-22.6-8-33.6-1.5-5.5-3.2-10.9-5.2-16.3-1.9-5.2-4.3-10.7-7.4-14-1.3-1.5-1.3-3.5 0-4.7 1.2-1.1 3.1-1.2 4.3-.1 9.6 8.8 17 19.1 23.8 29.8 6.7 10.7 12.6 21.9 17.7 33.5 5 11.6 9.5 23.5 12.7 35.8 3.3 12.2 5.6 24.9 5.3 37.7 0 .6-.5 1.1-1.1 1.1-.6 0-1.1-.5-1.1-1.1-.7-12.4-3.7-24.6-7.3-36.4-3.7-11.8-8.2-23.4-13.5-34.7-5.2-11.2-11.1-22.2-17.7-32.6-6.6-10.3-12.1-22.1-9.9-16.6 2 5.6 3.7 11.2 5.2 16.9 3 11.3 5.5 22.7 7.7 34.1 2.1 11.5 4 22.9 5.6 34.5 1.6 11.5 2.9 23.1 3.8 34.7 0 .3-.2.6-.5.6s-.5-.2-.6-.5c-4.8-22.7-8.9-45.5-13.8-68.1z" id="Fill-55"/><path class="st2" d="M432.3 883.8c-.7-9.2-1.6-18.3-3.2-27.3-.8-4.5-1.8-8.9-3.2-13.1-1.4-4.2-3.3-8.3-5.8-10.7-1.4-1.3-1.4-3.3-.2-4.6 1.3-1.3 3.3-1.4 4.6-.3 8.6 6.9 15.4 15.3 21.3 24.2 5.8 8.9 10.6 18.3 14.4 28.2 3.7 9.8 6.6 20 8.3 30.3 1.6 10.3 2.1 20.9.5 31.3-.1.6-.7 1.1-1.3 1-.6-.1-1-.6-1-1.2.6-10.1-.7-20.3-2.8-30.2-2.1-9.9-5.2-19.7-9.1-29-7.7-18.7-24.1-45.3-22.6-40.7 1.5 4.6 2.4 9.3 3.2 14 1.6 9.3 2.4 18.6 2.9 28 .3 9.3.5 18.6.2 27.9-.3 9.3-.9 18.6-2 27.8 0 .3-.3.6-.7.5-.3 0-.5-.3-.5-.6-1-18.6-1.4-37.1-3-55.5z" id="Fill-57"/><g id="Group-62" transform="translate(84.24 173.787)"><path class="st0" d="M185.6 524.6c26.2 48.1 30.4 67.7 26.2 95.5-4.2 27.7-32.1 63.6-32.1 63.6" id="Fill-59"/><path class="st3" d="M179.7 685.3c-.3 0-.7-.1-1-.3-.7-.5-.8-1.5-.3-2.2.3-.4 27.7-35.9 31.8-62.9 3.9-25.7 1.2-44.5-26-94.5-.4-.8-.1-1.7.6-2.1.8-.4 1.7-.1 2.1.6 25.2 46.3 30.9 67 26.4 96.4-4.2 27.8-31.3 62.9-32.4 64.4-.3.4-.7.6-1.2.6z" id="Stroke-61"/></g><path class="st3" d="M196.6 503.4c-7.3 40.5-8.9 117-8.9 117l78.7 3.2s15.1-88 6.7-104" id="Fill-63"/><g id="Group-68" transform="translate(81.285 96.027)"><path class="st0" d="M198.8 359.7c6.3 55.5-17.9 74.7-26.1 63.7" id="Fill-65"/><path class="st3" d="M178.4 428c-2.7 0-5.2-1.2-7-3.6-.5-.7-.4-1.7.3-2.2.7-.5 1.7-.4 2.2.3 1.7 2.3 4.2 2.9 7.1 1.8 9-3.6 20.8-23.7 16.2-64.4-.1-.9.5-1.6 1.4-1.7.9-.1 1.6.5 1.7 1.4 2.7 23.3 0 60.5-18.1 67.6-1.2.5-2.5.8-3.8.8z" id="Stroke-67"/></g><path class="st0" d="M284.5 379.1c6 3.9 10.2 9.6 11.1 16.9 1.7 13 12.4 16 12.5 22.5.1 5.1-8.6 5.6-9.9 10.1-4.4 15.8-16.7 27.3-34.7 27.5" id="Fill-69"/><path class="st10" d="M263.5 457.6c-.9 0-1.6-.7-1.6-1.5 0-.9.7-1.6 1.5-1.6 10.8-.1 19.8-4.5 26.1-12.2-2.2-1.7-4.7-4.2-6.1-7.7-.3-.8.1-1.7.9-2 .8-.3 1.7.1 2 .9 1.1 2.9 3.3 5 5.1 6.3 2.3-3.4 4-7.3 5.2-11.6.8-2.7 3.4-4.2 5.7-5.5 2.6-1.5 4.2-2.5 4.2-4.1 0-2.2-1.8-4.1-4-6.5-3.3-3.5-7.4-7.9-8.4-15.8-.8-6.5-4.4-11.9-10.4-15.8-.7-.5-.9-1.4-.5-2.2.5-.7 1.4-.9 2.2-.5 6.8 4.4 10.9 10.6 11.8 18 .9 6.9 4.5 10.7 7.6 14.1 2.5 2.7 4.8 5.2 4.9 8.6.1 3.6-3 5.4-5.8 6.9-1.9 1.1-3.8 2.1-4.2 3.6-1.3 4.7-3.2 8.8-5.6 12.5.4.2.7.3.7.3.8.3 1.2 1.3.8 2.1-.3.8-1.3 1.2-2.1.8-.1 0-.6-.2-1.3-.7-6.8 8.6-16.8 13.5-28.7 13.6z" id="Stroke-71"/><path class="st10" d="M212.8 480.9c21.8-9 66.4 74.2 66.4 74.2l45.2-74.7 25.2 10.3s-23.2 105.1-67.4 109.5c-44.3 4.4-79.7-62.6-79.7-62.6s-17.8-45 10.3-56.7m78.6-65.4c-1.1 0-1.9-1.2-1.9-2.6l.1-4.2c0-1.4.9-2.5 2-2.4 1.1 0 1.9 1.2 1.9 2.6l-.1 4.2c-.1 1.4-1 2.4-2 2.4" id="Fill-73"/><path class="st0" d="M192.2 619.4c-20.5 50.8 3.3 341.5 3.3 341.5h59.2s29.6-279.2 9-338.2" id="Fill-75"/><path class="st3" d="M254.7 962.4h-59.2c-.8 0-1.5-.6-1.6-1.4-1-11.9-23.6-291.6-3.2-342.2.3-.8 1.2-1.2 2-.9.8.3 1.2 1.2.9 2-19.4 48 1.5 317.1 3.3 339.3h56.3c2.2-21.5 28.4-280.3 9-336.1-.3-.8.1-1.7 1-2 .8-.3 1.7.1 2 1 20.4 58.6-7.7 327.4-8.9 338.9-.1.8-.8 1.4-1.6 1.4zm17.2-494.5h-.1c-4.4-.3-7.5-1.7-9.4-4.3-3.9-5.3-1.8-14.3.6-24.7.4-1.9.9-3.8 1.3-5.7.6-2.6 1.1-5.8 1.6-9.5 2.4-15.3 5.6-36.3 18-46.4.7-.5 1.7-.5 2.2.2.6.7.5 1.7-.2 2.2-11.4 9.4-14.5 29.7-16.9 44.5-.6 3.8-1.1 7-1.7 9.7-.4 1.9-.9 3.9-1.3 5.8-2.2 9.2-4.2 18-1.1 22.1 1.3 1.8 3.7 2.8 7.1 3 .9.1 1.5.8 1.5 1.7-.1.8-.8 1.4-1.6 1.4z" id="Stroke-77"/><path class="st0" d="M205 455.5c-15.1-32.9 1.4-87.8 36.6-94.9 11.6-2.3 26 3.3 32.7 5.6" id="Fill-79"/><path class="st3" d="M192.3 958.2c-.4 0-.8-.2-1.2-.5l-46.3-50.5c-.5-.6-.6-1.4-.1-2l37.5-51.3c.5-.7 1.5-.9 2.2-.3.7.5.8 1.5.3 2.2L148.1 906l45.4 49.5c.6.6.5 1.6-.1 2.2-.3.3-.7.5-1.1.5zM205 457c-.6 0-1.2-.3-1.4-.9-8.8-19.2-7.4-46.6 3.6-68.1 8.1-15.9 20.2-26.2 34.1-29 11.1-2.2 24.6 2.5 31.8 5l1.7.6c.8.3 1.3 1.2 1 2-.3.8-1.2 1.2-2 1l-1.8-.6c-6.9-2.4-19.8-7-30.1-4.9-13 2.6-24.3 12.3-32 27.3-10.5 20.7-12 47-3.5 65.4.4.8 0 1.7-.8 2.1-.1.1-.4.1-.6.1z" id="Stroke-81"/><path class="st0" d="M322 487.2c1.2-17 8.4-66.7 16.1-63.5 7.7 3.2 1.5 27.5 3.8 35.6 2.3 8.1 5.8 19.4-.8 34" id="Fill-83"/><path class="st10" d="M341.2 494.8c-.2 0-.4 0-.6-.1-.8-.4-1.1-1.3-.8-2.1 6.1-13.7 3.1-24.5.8-32.4l-.2-.5c-.9-3.3-.6-8.7-.3-14.4.5-8.3 1.1-18.6-2.7-20.2-.1 0-.2-.1-.4.1-5.5 3.4-12.1 42.3-13.6 62.1-.1.9-.8 1.5-1.7 1.4-.9-.1-1.5-.8-1.4-1.7.6-7.6 6.3-59.2 15-64.5 1.1-.6 2.2-.7 3.2-.3 5.8 2.5 5.2 13 4.6 23.2-.3 5.5-.6 10.6.2 13.4l.2.5c2.4 8.3 5.6 19.7-1 34.5-.1.7-.7 1-1.3 1zm9.4-26.9c-.2 0-.4 0-.6-.1-.8-.3-1.2-1.2-.9-2 .8-1.9 1.6-4.1 2.2-6-.1.2-.2.5-.3.7-.3.8-1.2 1.2-2 1-.8-.3-1.2-1.2-1-2 2.9-8.3 4.6-8.4 5.3-8.5.8-.1 1.5.3 2 1.1 1.4 2.4-1.5 10.4-3.3 14.9-.2.6-.8.9-1.4.9z" id="Stroke-85"/><path class="st0" d="M236 429.1c0 16 6.6 29.5 14.1 32.7" id="Fill-87"/><path class="st3" d="M220.1 689.9c-.5 0-1.1-.3-1.4-.8l-18.5-32.4c-.4-.7-.2-1.7.6-2.1.7-.4 1.7-.2 2.1.6l18.5 32.4c.4.7.2 1.7-.6 2.1-.2.1-.5.2-.7.2zm30-226.5c-.2 0-.4 0-.6-.1-8.6-3.7-15-18.4-15-34.2 0-.9.7-1.6 1.6-1.6s1.6.7 1.6 1.6c0 16.1 6.7 28.5 13.1 31.3.8.3 1.2 1.3.8 2.1-.3.6-.9.9-1.5.9z" id="Stroke-89"/><g id="Group-94" transform="translate(67.984 86.624)"><path class="st0" d="M147.3 339.2c-10.3 38.3-3.5 91.8 36.5 85.5" id="Fill-91"/><path class="st3" d="M177.5 426.7c-9.2 0-16.9-3.4-22.9-10.1-15.8-17.6-15.6-52.7-8.8-77.9.2-.8 1.1-1.3 1.9-1.1.8.2 1.3 1.1 1.1 1.9-6.8 25.2-6.2 59 8.1 75 6.6 7.4 15.6 10.3 26.6 8.6.9-.1 1.7.4 1.8 1.3.1.9-.4 1.7-1.3 1.8-2.2.3-4.4.5-6.5.5z" id="Stroke-93"/></g><path class="st0" d="M1187.2 596.7l5.1 53.8s29.8 76 5 47c32.7 38.2 72-9.3 72.9-53.7 1-49-16.1-82.4-35.7-92-10.8-5.3-26.5-.5-34.5 7.8-9.4 9.8-13.8 23.5-12.8 37.1" id="Fill-95"/><path class="st11" d="M1223.1 713c-6.9 0-14.9-2.5-23.1-10.5-1.1-1-2.4-2.4-3.7-4v-.1c-.6-.7-.5-1.6.2-2.2.7-.6 1.6-.5 2.2.2 1.3 1.5 2.5 2.8 3.8 4.1 2.2 2 3 2 3 2 2.4-2.6-5.7-28.8-14.6-51.5-.1-.1-.1-.3-.1-.4l-5.2-53.8c-1-14.5 3.8-28.4 13.3-38.3 8.2-8.5 24.7-13.8 36.3-8.1 19 9.2 37.6 41.7 36.6 93.4-.6 29.7-18 60-38.7 67.4-2.9 1.1-6.3 1.8-10 1.8zm-15.6-8.3c7.8 5.4 16.1 6.6 24.6 3.6 19.6-7 36.1-36 36.6-64.5 1-50.3-16.8-81.8-34.9-90.6-10.4-5.1-25.3-.2-32.7 7.4-8.9 9.2-13.4 22.3-12.4 35.9l5.1 53.6c16.1 40.9 15.9 51.9 13.7 54.6z" id="Stroke-97"/><path class="st3" d="M1174.7 578.9c-.3 0-.6-.1-.9-.3-5.5-3.9-7.7-12.2-6.6-17.5 1.7-8.2 9.9-11.6 18.5-12.7 1.5-4.5 10.5-27 33.9-23 .9.1 1.4 1 1.3 1.8-.1.9-1 1.4-1.8 1.3-19.6-3.3-27.8 13.7-30 19.6 4.3-.2 8.5 0 12 .5.9.1 1.4.9 1.3 1.8-.1.9-.9 1.4-1.8 1.3-9.5-1.4-28.1-1-30.4 10-.9 4.3 1.1 11.3 5.3 14.4.7.5.9 1.5.4 2.2-.2.4-.7.6-1.2.6zm64.5-18.5c-.5 0-.9-.2-1.2-.6-.5-.7-.4-1.7.3-2.2 4.1-3.1 6.9-8 7.3-13 .3-3-.3-5.6-1.6-7.1-10-11-26.3-.6-32.8 4.4-.7.5-1.7.4-2.2-.3-.5-.7-.4-1.7.3-2.2 15.2-11.6 28.7-13.1 37-4 1.9 2.1 2.8 5.5 2.5 9.5-.5 5.9-3.7 11.6-8.5 15.2-.4.2-.8.3-1.1.3z" id="Stroke-99"/><g id="Group-104" transform="translate(398.496 175.803)"><path class="st0" d="M884.5 595.2L848.7 783l59.3 7 56.4-222m35.5-37c-7.3 48.9 75.5 188.8 75.5 188.8l-38 56.3s-72.6-106.4-86.9-150.5" id="Fill-101"/><path class="st10" d="M907.9 791.6h-.2l-59.3-7c-.4 0-.8-.3-1.1-.6-.3-.3-.4-.8-.3-1.2l36-187.9c.2-.8 1-1.4 1.8-1.2.8.2 1.4 1 1.2 1.8l-35.5 186.1 56.2 6.7 56.1-220.7c.2-.8 1-1.4 1.9-1.1.8.2 1.3 1.1 1.1 1.9l-14.3 56.1c.2.2.3.4.4.6 13.1 40.2 75.6 133.7 85.4 148.2l36.1-53.5c-7.6-12.9-82.2-141.6-75.2-189 .1-.9.9-1.4 1.8-1.3.9.1 1.4.9 1.3 1.8-7.1 47.8 74.5 186.4 75.3 187.8.3.5.3 1.2-.1 1.7l-38 56.3c-.3.4-.8.7-1.3.7s-1-.3-1.3-.7c-.7-1-69-101.4-85.8-147.2l-40.8 160.6c0 .6-.6 1.1-1.4 1.1z" id="Stroke-103"/></g><path class="st11" d="M1325.5 448.9c-41.8 21.6-38.5 87.8-43.4 117.6-4.9 29.8-11.8 200.5-11.8 200.5l157.3-6.2s4.4-367-102.1-311.9" id="Fill-105"/><path class="st3" d="M1183.6 780.8l-27.8 157.6c-.8 4.6-4.5 8.2-9.2 8.9-8.1 1.2-19.8 4.6-19.8 14.7 0 2.5 20.5 3.5 36.2 3.8 10.4.2 19.7-6.6 22.8-16.7l47.4-154.1" id="Fill-107"/><path class="st3" d="M1220.3 796.6l85.9 132.3c2.6 3.9 2.2 9.1-.7 12.7-5.1 6.4-11.2 16.9-4.5 24.1 1.7 1.8 17.2-11.6 28.9-22.2 7.7-7 9.9-18.3 5.3-27.7L1266 772.5" id="Fill-109"/><path class="st10" d="M1270.3 403.2c-.4 0-.9-.2-1.2-.5-.6-.7-.5-1.6.2-2.2 0 0 3-2.7 4.1-8.4.2-.8 1-1.4 1.8-1.2.8.2 1.4 1 1.2 1.8-1.3 6.8-5 10-5.1 10.1-.3.3-.6.4-1 .4z" id="Stroke-113"/><path class="st0" d="M1191.9 648.7l-32.6 224.6 185-22-75.9-209.2z" id="Fill-115"/><path class="st11" d="M1159.3 874.9c-.4 0-.8-.2-1.1-.5-.3-.3-.5-.8-.4-1.3l32.7-224.7c.1-.7.7-1.3 1.4-1.3l76.5-6.6c.7 0 1.4.4 1.6 1l75.9 209.2c.2.4.1 1-.1 1.4-.3.4-.7.7-1.1.7l-185.1 22c-.2.1-.3.1-.3.1zm34-224.8l-32.2 221.4 181.1-21.5-74.8-206.2-74.1 6.3z" id="Stroke-117"/><path class="st3" d="M1215.6 564.4c-18.3 7-2.4 92.5-2.4 92.5l-16.8 75.6 6 1.4c13.3 3.1 26.6-4.9 30.4-18.2l14.5-51.8c-.1 0-.1-111.6-31.7-99.5" id="Fill-119"/><path class="st10" d="M1316.6 662.2c-.4 0-.8-.1-1.1-.4-.6-.6-.6-1.6 0-2.2.2-.2 23.5-24.6 36-44.2 23.8-37.3 21.5-54.2 14-110l-1.5-11c-.1-.9.5-1.6 1.3-1.8.8-.1 1.6.5 1.8 1.3l1.5 11c7.5 55.3 10 73.9-14.4 112.1-12.6 19.8-36.1 44.4-36.3 44.6-.5.4-.9.6-1.3.6zm-4.6-78.9c-.2 0-.5 0-.7-.1l-9.3-4.4c-.8-.4-1.1-1.3-.7-2.1.4-.8 1.3-1.1 2.1-.7l9.3 4.4c.8.4 1.1 1.3.7 2.1-.3.4-.9.8-1.4.8zm0-11.2c-.8 0-1.4-.6-1.5-1.4-.1-.9.5-1.6 1.3-1.8l18.5-2.4c.8-.1 1.6.5 1.8 1.3.1.9-.5 1.6-1.3 1.8l-18.5 2.4c-.2.1-.3.1-.3.1zm9.4-16.3c-.8 0-1.5-.7-1.6-1.5-.4-11.3 0-36.8 0-37.1 0-.9.7-1.5 1.6-1.5.9 0 1.6.7 1.5 1.6 0 .3-.4 25.7 0 36.9.1.8-.6 1.6-1.5 1.6z" id="Stroke-121"/><path class="st0" d="M1330.5 685.3c-.4 0-.9-.2-1.2-.6l-46.3-55.5c-.6-.7-.5-1.7.2-2.2.7-.6 1.6-.5 2.2.2l46.3 55.5c.6.7.5 1.7-.2 2.2-.3.3-.7.4-1 .4z" id="Stroke-123"/><path class="st10" d="M1284.2 629.8c-.2 0-.5-.1-.7-.2-.8-.4-1.1-1.3-.7-2.1l18.5-37c.4-.8 1.3-1.1 2.1-.7.8.4 1.1 1.3.7 2.1l-18.5 37c-.3.6-.8.9-1.4.9zm64.6-217.4c-.2 0-.5 0-.7-.2-.8-.4-1.1-1.3-.7-2.1.2-.4 18.4-39.4 3.1-64.4-7.2-11.8-22.7-16.3-34.8-16.6-11.7-.2-21.6 3.2-25.5 9.1-.5.7-1.5.9-2.2.4-.7-.5-.9-1.5-.4-2.2 4.5-6.8 15.3-10.8 28.2-10.5 12.9.3 29.6 5.2 37.4 18.1 16.2 26.5-2.1 65.7-2.9 67.4-.3.7-.9 1-1.5 1zm-23.6-9.2c-.2 0-.3 0-.5-.1-.8-.3-1.3-1.1-1-2 .1-.5 3.4-11.4-6.1-24.3-3.8-5.2-11.1-9.3-18.8-13.6-12.2-6.8-24.8-13.8-25.4-26.4 0-.9.6-1.6 1.5-1.6 1-.1 1.6.6 1.6 1.5.5 10.8 12.3 17.4 23.8 23.8 8 4.5 15.6 8.7 19.8 14.5 10.4 14.2 6.7 26.5 6.5 27.1-.2.6-.8 1.1-1.4 1.1zm-17.9-27.8h-.4l-52.5-13.1-1.1 7.2c-.1.9-1 1.4-1.8 1.3-.9-.1-1.4-.9-1.3-1.8l1.2-7.5c-.8-.2-1.3-1.1-1.1-1.9.2-.8.9-1.3 1.6-1.2l1.3-7.9c.1-.9 1-1.4 1.8-1.3.9.1 1.4.9 1.3 1.8l-1.3 8.2 52.7 13.2c.8.2 1.3 1.1 1.1 1.9-.1.7-.8 1.1-1.5 1.1z" id="Stroke-125"/><path class="st11" d="M1298.6 458.7c-.7 0-1.3-.4-1.5-1.1l-5.1-18.1c-.2-.8.2-1.7 1-1.9l60.1-18.9c.8-.3 1.7.2 2 1 .3.8-.2 1.7-1 2l-58.7 18.5 4.7 16.6c.2.8-.2 1.7-1.1 1.9h-.4z" id="Stroke-127"/><path class="st10" d="M1302.7 435.5c-.7 0-1.3-.4-1.5-1.1l-5.3-18.2c-16.3 1.6-23.7-7.2-30.3-21.8-.6-1.3-2.4-2-4.3-2.7-2.6-1-5.9-2.3-6.4-5.7-.4-3.2 1.4-5.9 3.4-8.7 2.5-3.5 5.2-7.5 5.1-14-.1-7 2.8-13.4 8.6-18.3.7-.6 1.6-.5 2.2.2.6.7.5 1.6-.2 2.2-5 4.4-7.6 9.9-7.5 15.9.1 7.5-3.1 12.1-5.7 15.9-1.7 2.5-3.1 4.5-2.8 6.5.2 1.5 1.8 2.2 4.4 3.2 2.3.9 5 1.9 6.1 4.4 6.3 14.1 13 21.9 28.3 19.9.8-.1 1.5.4 1.7 1.1l5.7 19.5c.2.8-.2 1.7-1.1 1.9-.1-.2-.3-.2-.4-.2z" id="Stroke-129"/><path class="st12" d="M1228.7 471h-9.3v-9.2c0-5.1 4.1-9.2 9.3-9.2 5.1 0 9.3 4.1 9.3 9.2-.1 5-4.2 9.2-9.3 9.2" id="Fill-131"/><g id="Group-136" transform="translate(367.46 98.443)"><path class="st0" d="M804.2 364.2c-7.6 3.3-10.1 8.2-11 15-1.6 12.1-11.4 14.8-11.5 20.9-.1 4.7 8 5.2 9.1 9.3 4.1 14.7 15.5 25.3 32 25.5" id="Fill-133"/><path class="st10" d="M822.9 436.4c-16.4-.2-29-10.2-33.6-26.6-.4-1.3-2-2.3-3.8-3.3-2.4-1.4-5.4-3.1-5.4-6.5 0-3.2 2.2-5.6 4.5-8.1 2.9-3.1 6.2-6.6 7-13 .7-5.8 2.7-12.3 11.9-16.2.8-.3 1.7 0 2.1.8.3.8 0 1.7-.8 2.1-7.3 3.1-9.3 7.7-10 13.7-1 7.4-4.8 11.5-7.8 14.8-2.1 2.2-3.7 4-3.7 6 0 1.5 1.4 2.4 3.8 3.7 2.1 1.2 4.6 2.6 5.3 5.1 4.2 15.1 15.6 24.2 30.6 24.3.9 0 1.6.7 1.5 1.6-.1.9-.8 1.6-1.6 1.6z" id="Stroke-135"/></g><path class="st10" d="M1163.9 521.1c-1 0-1.7-.8-1.7-1.7 0-1 .8-1.7 1.7-1.7 0 0 4.5 0 8.5-2 .9-.4 1.9-.1 2.3.8.4.9.1 1.9-.8 2.3-4.7 2.3-9.8 2.3-10 2.3z" id="Stroke-137"/><path class="st12" d="M1173.2 460zM1173.2 460l-4 2.1c-4.6 6.7-9.9 15.8-9.9 15.8l20.7 2.1 6.1 18.1c3.3 9.9 13.5 15.9 24 14.3l32.4-5c.1 0-17.4-64.6-69.3-47.4z"/><path class="st10" d="M1170.6 503.4c1 0 1.8-1.2 1.8-2.6l-.1-4.2c0-1.4-.9-2.5-1.9-2.4-1 0-1.8 1.2-1.8 2.6l.1 4.2c0 1.3.8 2.4 1.9 2.4" id="Fill-141"/><path class="st0" d="M446.8 214.3c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6" id="Fill-143"/><g id="Fill-145"><path class="st7" d="M571.7 214.3c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6m-64.8 0c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6"/></g></svg> \ No newline at end of file
+<svg id="Layer_3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1562 968.3" enable-background="new 0 0 1562 968.3"><style>.st0{fill:#fff}.st1{fill:#e8eef3}.st2{fill:#CCCED0}.st3{fill:#BBC9D5}.st4{fill:#def2fa}.st5{fill:#204A69}.st6{fill:#069e08}.st7{fill:#E1E2E2}.st8{filter:url(#Adobe_OpacityMaskFilter)}.st9{mask:url(#mask-2_1_)}.st10{fill:#204A69}.st11{fill:#6F93AD}.st12{fill:#204A69}</style><path class="st0" d="M1117.5 416.8l22.4-86.8-2.3-97.6L358 265l.5 559.1 214.6 3.2z" id="Fill-1"/><path class="st0" d="M1382.5 803.1c0-3.1 9.2-63.4 9.2-63.4l-47.3-26.7-9.2 81.7 13.8 6.7 33.5 1.7z" id="Fill-2"/><path class="st0" d="M1186.3 461.7s61.8 24.5 48.9 36.2c-17.3 15.7-1.8 32.3 7 37.2 9 5 7.1 20.1-5.5 37.5-19.3 26.7-34.4 29.6-44.3 23.1-9.9-6.5-25.1-23-23.6-34.5s15.9-7.2 23.3-22.1c6.1-12.4-.9-4.4-13.1-8-10.4-3-13.9-45-12-52.6 1.7-7.5 9.3-16.8 19.3-16.8" id="Fill-4"/><path class="st0" d="M210.8 817.6L146 906.1l53 54.9 38.1-61.7z" id="Fill-6"/><path class="st0" d="M251.8 367.2c-18.4-5.8-46.2 74.5-35.4 85.3 10.8 10.8 18.5 44.9 24.4 50.9 6 6 .8 25.7 7.6 25.7 6.9 0 22.1-26 23.7-36.6 1.5-10.7 9-26 7.9-36.6-1-10.7 9.5-31.6 9.5-47.1s4.2-26.9-8.9-36.9c-13-10-24-3.2-28.8-4.7" id="Fill-8"/><path class="st1" d="M58.7 232.1c12.4-.4 24.9-.9 37.3-1.1 12.4-.3 24.9-.6 37.3-.7L131 232c3.8-11.6 8.9-22.7 15.7-33.1 7-10.1 15.6-20 28-25.2 25.3-10.8 56.7 5.6 62.5 31.2.6 3.2.8 6.7 0 10.1-.8 3.4-2.8 7.1-6.2 9.2-3.3 2.2-7.3 2.8-10.7 2.8-3.4-.1-7.8-.8-10.8-4.3-2.9-3.5-2.7-8-1.5-11.3 1.1-3.4 3.1-6.2 5.4-8.7 4.6-4.9 10.5-8.3 16.8-10.4 6.3-2 13-2.7 19.6-2 6.6.4 13.4 2.7 18.6 7.1 5.3 4.4 8.3 10.6 9.8 16.7s1.8 12.5.9 18.7l-2.5-2.8c27.1.2 54.1.7 81.2 1.3.6 0 1.1.5 1.1 1.1 0 .6-.5 1.1-1.1 1.1-27.1.6-54.1 1.1-81.2 1.3-1.4 0-2.5-1-2.6-2.4v-.4c1.1-10.9-1-23.6-9.5-30.5-4.2-3.4-9.7-5.3-15.4-5.6-5.8-.6-11.6 0-17.1 1.8-5.4 1.8-10.4 4.8-14.1 8.8-1.8 2-3.3 4.3-4 6.6-.8 2.3-.6 4.5.5 5.7 2 2.5 9.7 2.6 12.9.2 3.7-2.4 4.6-8 3.4-13.1-2.2-10.5-10.4-20-20.5-25.1-5.1-2.7-10.8-4.1-16.5-4.7-5.7-.1-11.5.2-16.6 2.7-10.7 4.3-18.9 13.4-25.6 22.9-6.7 9.6-11.9 20.4-15.8 31.4v.1c-.4 1-1.3 1.6-2.3 1.6-12.4-.1-24.9-.4-37.3-.7-12.4-.2-24.9-.8-37.3-1.1-.3 0-.6-.3-.6-.6 0 0 .2-.3.5-.3" id="Fill-10"/><path class="st2" d="M704.2 904.7c15.5-9.9 31.3-19.3 47.5-28.1 8-4.5 16.2-8.8 24.4-12.9s16.3-8.5 24.7-12.5c16.7-7.8 33.1-16.1 50.1-23.3 16.9-7.5 33.7-15 50.9-21.6l25.7-10.2c8.5-3.5 17.3-6.3 26-9.5 17.4-6.1 34.6-12.8 52.3-18.1 17.6-5.5 35.1-11.3 52.8-16.7l53.3-14.8 13.3-3.7 13.5-3.2 26.9-6.4c18-4.2 35.9-8.7 54.1-11.9l54.4-10.5c18.2-3.2 36.5-5.7 54.7-8.4 36.5-6 73.3-8.6 110-12.4 9.2-1 18.4-1.9 27.6-2.2l27.7-1.4 55.3-2.5c.6 0 1.2.4 1.2 1.1 0 .6-.4 1.1-1.1 1.2h-.1l-55.2 3.8c-18.4 1.4-36.8 1.8-55.1 4.2-36.6 4.2-73.3 7.3-109.6 13.7-18.2 3-36.4 5.3-54.6 8.5l-54.2 10.5c-18.1 3.2-36 7.7-53.9 11.9l-26.9 6.4-13.4 3.2-13.3 3.7-53.2 14.8c-17.6 5.3-35.1 11.1-52.6 16.6-17.6 5.3-34.8 12-52.1 18-8.6 3.2-17.4 6-25.9 9.5l-25.6 10.1c-8.5 3.5-17.2 6.5-25.6 10.1l-25.4 10.7c-17 6.9-33.6 14.9-50.4 22.4-8.4 3.8-16.5 8-24.8 12s-16.5 8.1-24.6 12.4c-16.4 8.3-32.5 17.1-48.3 26.4-.3.2-.6.1-.8-.2-.1-.2 0-.6.3-.7" id="Fill-12"/><path class="st0" d="M705.9 822.5c49.1 18.6 78.7 32.4 78.7 32.4" id="Fill-14"/><path class="st2" d="M706.6 822.5c7.5 1.3 14.6 3.6 21.5 6.2 7 2.6 13.9 5.3 20.7 8.3 13.5 6.2 27.2 12.1 39.8 20.3.6.4.7 1.1.3 1.7-.3.4-.9.6-1.4.5-14.2-4.6-27.6-10.8-41.4-16.3-6.8-2.9-13.6-5.9-20.3-9-6.7-3.1-13.4-6.4-19.7-10.6-.3-.2-.4-.6-.2-.8.2-.3.4-.4.7-.3" id="Fill-16"/><path class="st2" d="M-1.7 756.6c27-12.3 55.6-20.9 84.6-27.3 29.1-6.1 58.6-10 88.3-11.9 59.3-3.4 119-.3 177.4 9.3.6.1 1.1.7 1 1.3-.1.6-.7 1.1-1.3 1-58.8-5.7-117.9-9.2-176.7-5.1-29.4 1.8-58.7 5.3-87.5 11.1-28.9 5.5-57.3 13.3-85.4 22.7-.3.1-.6-.1-.7-.4-.1-.2.1-.6.3-.7" id="Fill-18"/><path class="st0" d="M355.1 831.7l-.9-582.7" id="Fill-20"/><path class="st2" d="M355.7 831.7c-4.8-48.6-4.6-97.1-5-145.7l-1.1-145.7.5-145.7c.2-48.6-.3-97.1 4.4-145.7h2.9c4.8 48.6 4.6 97.1 5 145.7l1.1 145.7L363 686c-.2 48.6.3 97.1-4.4 145.7h-2.9z" id="Fill-22"/><path class="st0" d="M1140.8 276.7v545.8H465.3" id="Fill-24"/><path class="st2" d="M1140.6 276.7c1.5 45.7 2.3 91.4 3 137.1.8 45.7.8 91.4 1.2 137.1l.6 274.1v6.2h-6.2l-168.5.5-168.5-.4-168.5-.5c-56.2-.6-112.3-1-168.5-4.3v-2.9c56.2-3.3 112.3-3.8 168.5-4.3l168.5-.5 168.5-.4 168.5.5-6.2 6.2.6-274.1c.4-45.7.4-91.4 1.2-137.1.7-45.7 1.5-91.4 3-137.1h2.8z" id="Fill-26"/><path class="st3" d="M349.6 276.7V203c0-25.7 21.1-46.6 47.1-46.6h696.9c26 0 47.1 20.8 47.1 46.6v73.7H349.6z" id="Fill-28"/><path class="st4" d="M1177.8 276.7H308" id="Fill-30"/><path class="st5" d="M1177.8 280.5c-72.5 4.5-145 4.4-217.5 4.7l-217.4.8-217.5-.8c-72.5-.3-145-.2-217.5-4.7v-2.9c72.5-4.5 145-4.4 217.5-4.7l217.5-.8 217.5.8c72.5.3 145 .2 217.5 4.7v2.9z" id="Fill-32"/><path class="st6" d="M423.6 757.7h175.9v-407H423.6" id="Fill-34"/><path class="st2" d="M1043.4 415.5H747.5v-64.7h314.6v46c0 10.3-8.3 18.7-18.7 18.7" id="Fill-36"/><path class="st7" d="M710.5 415.5h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-38"/><path class="st2" d="M1043.4 757.7H747.5v-111h314.6v92.6c0 10.2-8.4 18.4-18.7 18.4" id="Fill-40"/><path class="st7" d="M710.5 706.8h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-42"/><path class="st2" d="M1043.4 595.9H747.5V457.1h314.6v120.4c0 10.1-8.4 18.4-18.7 18.4" id="Fill-44"/><path class="st6" d="M710.5 517.2h-60.1v-41.7c0-10.2 8.2-18.4 18.4-18.4h41.7v60.1z" id="Fill-46"/><path class="st0" d="M562.4 445.5c0 26.8-21.7 48.6-48.6 48.6s-48.6-21.7-48.6-48.6S487 397 513.9 397s48.5 21.7 48.5 48.5" id="Fill-48"/><g id="Group-52" transform="translate(.938 254.102)"><defs><filter id="Adobe_OpacityMaskFilter" filterUnits="userSpaceOnUse" x="1.7" y="697.9" width="1563.8" height="13.9"><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0"/></filter></defs><mask maskUnits="userSpaceOnUse" x="1.7" y="697.9" width="1563.8" height="13.9" id="mask-2_1_"><g class="st8"><path id="path-1_1_" class="st0" d="M1.7 697.9h1563.8v13.8H1.7z"/></g></mask><g id="Fill-50" class="st9"><path class="st1" d="M2.8 703.6c130-3.4 260.1-4.1 390.1-4.9l390.1-.8c260.1.7 520.1.3 780.2 4.5 1.3 0 2.3 1.1 2.3 2.5 0 1.3-1 2.4-2.3 2.4-260.1 4.2-520.1 3.7-780.2 4.5l-390.1-.8c-130-.8-260.1-1.6-390.1-4.9-.6 0-1.1-.6-1.1-1.2 0-.8.5-1.3 1.1-1.3"/></g></g><path class="st2" d="M1302.2 434l-5.6-19.5c-16.6 2.2-23.4-6.7-29.7-20.8-1.8-4-9.8-3.3-10.5-8-.8-6.1 8.7-10.2 8.4-22.5-.1-6.9 1.3-15.9 7.9-17.1 0 0 31.5 13.1 47.3 29.3 7.1 18.9 11.3 27.8 11.3 27.8l8.3 19.3-37.4 11.5z" id="Fill-53"/><path class="st2" d="M394.3 873.5c-2.4-11.3-4.9-22.6-8-33.6-1.5-5.5-3.2-10.9-5.2-16.3-1.9-5.2-4.3-10.7-7.4-14-1.3-1.5-1.3-3.5 0-4.7 1.2-1.1 3.1-1.2 4.3-.1 9.6 8.8 17 19.1 23.8 29.8 6.7 10.7 12.6 21.9 17.7 33.5 5 11.6 9.5 23.5 12.7 35.8 3.3 12.2 5.6 24.9 5.3 37.7 0 .6-.5 1.1-1.1 1.1-.6 0-1.1-.5-1.1-1.1-.7-12.4-3.7-24.6-7.3-36.4-3.7-11.8-8.2-23.4-13.5-34.7-5.2-11.2-11.1-22.2-17.7-32.6-6.6-10.3-12.1-22.1-9.9-16.6 2 5.6 3.7 11.2 5.2 16.9 3 11.3 5.5 22.7 7.7 34.1 2.1 11.5 4 22.9 5.6 34.5 1.6 11.5 2.9 23.1 3.8 34.7 0 .3-.2.6-.5.6s-.5-.2-.6-.5c-4.8-22.7-8.9-45.5-13.8-68.1z" id="Fill-55"/><path class="st2" d="M432.3 883.8c-.7-9.2-1.6-18.3-3.2-27.3-.8-4.5-1.8-8.9-3.2-13.1-1.4-4.2-3.3-8.3-5.8-10.7-1.4-1.3-1.4-3.3-.2-4.6 1.3-1.3 3.3-1.4 4.6-.3 8.6 6.9 15.4 15.3 21.3 24.2 5.8 8.9 10.6 18.3 14.4 28.2 3.7 9.8 6.6 20 8.3 30.3 1.6 10.3 2.1 20.9.5 31.3-.1.6-.7 1.1-1.3 1-.6-.1-1-.6-1-1.2.6-10.1-.7-20.3-2.8-30.2-2.1-9.9-5.2-19.7-9.1-29-7.7-18.7-24.1-45.3-22.6-40.7 1.5 4.6 2.4 9.3 3.2 14 1.6 9.3 2.4 18.6 2.9 28 .3 9.3.5 18.6.2 27.9-.3 9.3-.9 18.6-2 27.8 0 .3-.3.6-.7.5-.3 0-.5-.3-.5-.6-1-18.6-1.4-37.1-3-55.5z" id="Fill-57"/><g id="Group-62" transform="translate(84.24 173.787)"><path class="st0" d="M185.6 524.6c26.2 48.1 30.4 67.7 26.2 95.5-4.2 27.7-32.1 63.6-32.1 63.6" id="Fill-59"/><path class="st3" d="M179.7 685.3c-.3 0-.7-.1-1-.3-.7-.5-.8-1.5-.3-2.2.3-.4 27.7-35.9 31.8-62.9 3.9-25.7 1.2-44.5-26-94.5-.4-.8-.1-1.7.6-2.1.8-.4 1.7-.1 2.1.6 25.2 46.3 30.9 67 26.4 96.4-4.2 27.8-31.3 62.9-32.4 64.4-.3.4-.7.6-1.2.6z" id="Stroke-61"/></g><path class="st3" d="M196.6 503.4c-7.3 40.5-8.9 117-8.9 117l78.7 3.2s15.1-88 6.7-104" id="Fill-63"/><g id="Group-68" transform="translate(81.285 96.027)"><path class="st0" d="M198.8 359.7c6.3 55.5-17.9 74.7-26.1 63.7" id="Fill-65"/><path class="st3" d="M178.4 428c-2.7 0-5.2-1.2-7-3.6-.5-.7-.4-1.7.3-2.2.7-.5 1.7-.4 2.2.3 1.7 2.3 4.2 2.9 7.1 1.8 9-3.6 20.8-23.7 16.2-64.4-.1-.9.5-1.6 1.4-1.7.9-.1 1.6.5 1.7 1.4 2.7 23.3 0 60.5-18.1 67.6-1.2.5-2.5.8-3.8.8z" id="Stroke-67"/></g><path class="st0" d="M284.5 379.1c6 3.9 10.2 9.6 11.1 16.9 1.7 13 12.4 16 12.5 22.5.1 5.1-8.6 5.6-9.9 10.1-4.4 15.8-16.7 27.3-34.7 27.5" id="Fill-69"/><path class="st10" d="M263.5 457.6c-.9 0-1.6-.7-1.6-1.5 0-.9.7-1.6 1.5-1.6 10.8-.1 19.8-4.5 26.1-12.2-2.2-1.7-4.7-4.2-6.1-7.7-.3-.8.1-1.7.9-2 .8-.3 1.7.1 2 .9 1.1 2.9 3.3 5 5.1 6.3 2.3-3.4 4-7.3 5.2-11.6.8-2.7 3.4-4.2 5.7-5.5 2.6-1.5 4.2-2.5 4.2-4.1 0-2.2-1.8-4.1-4-6.5-3.3-3.5-7.4-7.9-8.4-15.8-.8-6.5-4.4-11.9-10.4-15.8-.7-.5-.9-1.4-.5-2.2.5-.7 1.4-.9 2.2-.5 6.8 4.4 10.9 10.6 11.8 18 .9 6.9 4.5 10.7 7.6 14.1 2.5 2.7 4.8 5.2 4.9 8.6.1 3.6-3 5.4-5.8 6.9-1.9 1.1-3.8 2.1-4.2 3.6-1.3 4.7-3.2 8.8-5.6 12.5.4.2.7.3.7.3.8.3 1.2 1.3.8 2.1-.3.8-1.3 1.2-2.1.8-.1 0-.6-.2-1.3-.7-6.8 8.6-16.8 13.5-28.7 13.6z" id="Stroke-71"/><path class="st10" d="M212.8 480.9c21.8-9 66.4 74.2 66.4 74.2l45.2-74.7 25.2 10.3s-23.2 105.1-67.4 109.5c-44.3 4.4-79.7-62.6-79.7-62.6s-17.8-45 10.3-56.7m78.6-65.4c-1.1 0-1.9-1.2-1.9-2.6l.1-4.2c0-1.4.9-2.5 2-2.4 1.1 0 1.9 1.2 1.9 2.6l-.1 4.2c-.1 1.4-1 2.4-2 2.4" id="Fill-73"/><path class="st0" d="M192.2 619.4c-20.5 50.8 3.3 341.5 3.3 341.5h59.2s29.6-279.2 9-338.2" id="Fill-75"/><path class="st3" d="M254.7 962.4h-59.2c-.8 0-1.5-.6-1.6-1.4-1-11.9-23.6-291.6-3.2-342.2.3-.8 1.2-1.2 2-.9.8.3 1.2 1.2.9 2-19.4 48 1.5 317.1 3.3 339.3h56.3c2.2-21.5 28.4-280.3 9-336.1-.3-.8.1-1.7 1-2 .8-.3 1.7.1 2 1 20.4 58.6-7.7 327.4-8.9 338.9-.1.8-.8 1.4-1.6 1.4zm17.2-494.5h-.1c-4.4-.3-7.5-1.7-9.4-4.3-3.9-5.3-1.8-14.3.6-24.7.4-1.9.9-3.8 1.3-5.7.6-2.6 1.1-5.8 1.6-9.5 2.4-15.3 5.6-36.3 18-46.4.7-.5 1.7-.5 2.2.2.6.7.5 1.7-.2 2.2-11.4 9.4-14.5 29.7-16.9 44.5-.6 3.8-1.1 7-1.7 9.7-.4 1.9-.9 3.9-1.3 5.8-2.2 9.2-4.2 18-1.1 22.1 1.3 1.8 3.7 2.8 7.1 3 .9.1 1.5.8 1.5 1.7-.1.8-.8 1.4-1.6 1.4z" id="Stroke-77"/><path class="st0" d="M205 455.5c-15.1-32.9 1.4-87.8 36.6-94.9 11.6-2.3 26 3.3 32.7 5.6" id="Fill-79"/><path class="st3" d="M192.3 958.2c-.4 0-.8-.2-1.2-.5l-46.3-50.5c-.5-.6-.6-1.4-.1-2l37.5-51.3c.5-.7 1.5-.9 2.2-.3.7.5.8 1.5.3 2.2L148.1 906l45.4 49.5c.6.6.5 1.6-.1 2.2-.3.3-.7.5-1.1.5zM205 457c-.6 0-1.2-.3-1.4-.9-8.8-19.2-7.4-46.6 3.6-68.1 8.1-15.9 20.2-26.2 34.1-29 11.1-2.2 24.6 2.5 31.8 5l1.7.6c.8.3 1.3 1.2 1 2-.3.8-1.2 1.2-2 1l-1.8-.6c-6.9-2.4-19.8-7-30.1-4.9-13 2.6-24.3 12.3-32 27.3-10.5 20.7-12 47-3.5 65.4.4.8 0 1.7-.8 2.1-.1.1-.4.1-.6.1z" id="Stroke-81"/><path class="st0" d="M322 487.2c1.2-17 8.4-66.7 16.1-63.5 7.7 3.2 1.5 27.5 3.8 35.6 2.3 8.1 5.8 19.4-.8 34" id="Fill-83"/><path class="st10" d="M341.2 494.8c-.2 0-.4 0-.6-.1-.8-.4-1.1-1.3-.8-2.1 6.1-13.7 3.1-24.5.8-32.4l-.2-.5c-.9-3.3-.6-8.7-.3-14.4.5-8.3 1.1-18.6-2.7-20.2-.1 0-.2-.1-.4.1-5.5 3.4-12.1 42.3-13.6 62.1-.1.9-.8 1.5-1.7 1.4-.9-.1-1.5-.8-1.4-1.7.6-7.6 6.3-59.2 15-64.5 1.1-.6 2.2-.7 3.2-.3 5.8 2.5 5.2 13 4.6 23.2-.3 5.5-.6 10.6.2 13.4l.2.5c2.4 8.3 5.6 19.7-1 34.5-.1.7-.7 1-1.3 1zm9.4-26.9c-.2 0-.4 0-.6-.1-.8-.3-1.2-1.2-.9-2 .8-1.9 1.6-4.1 2.2-6-.1.2-.2.5-.3.7-.3.8-1.2 1.2-2 1-.8-.3-1.2-1.2-1-2 2.9-8.3 4.6-8.4 5.3-8.5.8-.1 1.5.3 2 1.1 1.4 2.4-1.5 10.4-3.3 14.9-.2.6-.8.9-1.4.9z" id="Stroke-85"/><path class="st0" d="M236 429.1c0 16 6.6 29.5 14.1 32.7" id="Fill-87"/><path class="st3" d="M220.1 689.9c-.5 0-1.1-.3-1.4-.8l-18.5-32.4c-.4-.7-.2-1.7.6-2.1.7-.4 1.7-.2 2.1.6l18.5 32.4c.4.7.2 1.7-.6 2.1-.2.1-.5.2-.7.2zm30-226.5c-.2 0-.4 0-.6-.1-8.6-3.7-15-18.4-15-34.2 0-.9.7-1.6 1.6-1.6s1.6.7 1.6 1.6c0 16.1 6.7 28.5 13.1 31.3.8.3 1.2 1.3.8 2.1-.3.6-.9.9-1.5.9z" id="Stroke-89"/><g id="Group-94" transform="translate(67.984 86.624)"><path class="st0" d="M147.3 339.2c-10.3 38.3-3.5 91.8 36.5 85.5" id="Fill-91"/><path class="st3" d="M177.5 426.7c-9.2 0-16.9-3.4-22.9-10.1-15.8-17.6-15.6-52.7-8.8-77.9.2-.8 1.1-1.3 1.9-1.1.8.2 1.3 1.1 1.1 1.9-6.8 25.2-6.2 59 8.1 75 6.6 7.4 15.6 10.3 26.6 8.6.9-.1 1.7.4 1.8 1.3.1.9-.4 1.7-1.3 1.8-2.2.3-4.4.5-6.5.5z" id="Stroke-93"/></g><path class="st0" d="M1187.2 596.7l5.1 53.8s29.8 76 5 47c32.7 38.2 72-9.3 72.9-53.7 1-49-16.1-82.4-35.7-92-10.8-5.3-26.5-.5-34.5 7.8-9.4 9.8-13.8 23.5-12.8 37.1" id="Fill-95"/><path class="st11" d="M1223.1 713c-6.9 0-14.9-2.5-23.1-10.5-1.1-1-2.4-2.4-3.7-4v-.1c-.6-.7-.5-1.6.2-2.2.7-.6 1.6-.5 2.2.2 1.3 1.5 2.5 2.8 3.8 4.1 2.2 2 3 2 3 2 2.4-2.6-5.7-28.8-14.6-51.5-.1-.1-.1-.3-.1-.4l-5.2-53.8c-1-14.5 3.8-28.4 13.3-38.3 8.2-8.5 24.7-13.8 36.3-8.1 19 9.2 37.6 41.7 36.6 93.4-.6 29.7-18 60-38.7 67.4-2.9 1.1-6.3 1.8-10 1.8zm-15.6-8.3c7.8 5.4 16.1 6.6 24.6 3.6 19.6-7 36.1-36 36.6-64.5 1-50.3-16.8-81.8-34.9-90.6-10.4-5.1-25.3-.2-32.7 7.4-8.9 9.2-13.4 22.3-12.4 35.9l5.1 53.6c16.1 40.9 15.9 51.9 13.7 54.6z" id="Stroke-97"/><path class="st3" d="M1174.7 578.9c-.3 0-.6-.1-.9-.3-5.5-3.9-7.7-12.2-6.6-17.5 1.7-8.2 9.9-11.6 18.5-12.7 1.5-4.5 10.5-27 33.9-23 .9.1 1.4 1 1.3 1.8-.1.9-1 1.4-1.8 1.3-19.6-3.3-27.8 13.7-30 19.6 4.3-.2 8.5 0 12 .5.9.1 1.4.9 1.3 1.8-.1.9-.9 1.4-1.8 1.3-9.5-1.4-28.1-1-30.4 10-.9 4.3 1.1 11.3 5.3 14.4.7.5.9 1.5.4 2.2-.2.4-.7.6-1.2.6zm64.5-18.5c-.5 0-.9-.2-1.2-.6-.5-.7-.4-1.7.3-2.2 4.1-3.1 6.9-8 7.3-13 .3-3-.3-5.6-1.6-7.1-10-11-26.3-.6-32.8 4.4-.7.5-1.7.4-2.2-.3-.5-.7-.4-1.7.3-2.2 15.2-11.6 28.7-13.1 37-4 1.9 2.1 2.8 5.5 2.5 9.5-.5 5.9-3.7 11.6-8.5 15.2-.4.2-.8.3-1.1.3z" id="Stroke-99"/><g id="Group-104" transform="translate(398.496 175.803)"><path class="st0" d="M884.5 595.2L848.7 783l59.3 7 56.4-222m35.5-37c-7.3 48.9 75.5 188.8 75.5 188.8l-38 56.3s-72.6-106.4-86.9-150.5" id="Fill-101"/><path class="st10" d="M907.9 791.6h-.2l-59.3-7c-.4 0-.8-.3-1.1-.6-.3-.3-.4-.8-.3-1.2l36-187.9c.2-.8 1-1.4 1.8-1.2.8.2 1.4 1 1.2 1.8l-35.5 186.1 56.2 6.7 56.1-220.7c.2-.8 1-1.4 1.9-1.1.8.2 1.3 1.1 1.1 1.9l-14.3 56.1c.2.2.3.4.4.6 13.1 40.2 75.6 133.7 85.4 148.2l36.1-53.5c-7.6-12.9-82.2-141.6-75.2-189 .1-.9.9-1.4 1.8-1.3.9.1 1.4.9 1.3 1.8-7.1 47.8 74.5 186.4 75.3 187.8.3.5.3 1.2-.1 1.7l-38 56.3c-.3.4-.8.7-1.3.7s-1-.3-1.3-.7c-.7-1-69-101.4-85.8-147.2l-40.8 160.6c0 .6-.6 1.1-1.4 1.1z" id="Stroke-103"/></g><path class="st11" d="M1325.5 448.9c-41.8 21.6-38.5 87.8-43.4 117.6-4.9 29.8-11.8 200.5-11.8 200.5l157.3-6.2s4.4-367-102.1-311.9" id="Fill-105"/><path class="st3" d="M1183.6 780.8l-27.8 157.6c-.8 4.6-4.5 8.2-9.2 8.9-8.1 1.2-19.8 4.6-19.8 14.7 0 2.5 20.5 3.5 36.2 3.8 10.4.2 19.7-6.6 22.8-16.7l47.4-154.1" id="Fill-107"/><path class="st3" d="M1220.3 796.6l85.9 132.3c2.6 3.9 2.2 9.1-.7 12.7-5.1 6.4-11.2 16.9-4.5 24.1 1.7 1.8 17.2-11.6 28.9-22.2 7.7-7 9.9-18.3 5.3-27.7L1266 772.5" id="Fill-109"/><path class="st10" d="M1270.3 403.2c-.4 0-.9-.2-1.2-.5-.6-.7-.5-1.6.2-2.2 0 0 3-2.7 4.1-8.4.2-.8 1-1.4 1.8-1.2.8.2 1.4 1 1.2 1.8-1.3 6.8-5 10-5.1 10.1-.3.3-.6.4-1 .4z" id="Stroke-113"/><path class="st0" d="M1191.9 648.7l-32.6 224.6 185-22-75.9-209.2z" id="Fill-115"/><path class="st11" d="M1159.3 874.9c-.4 0-.8-.2-1.1-.5-.3-.3-.5-.8-.4-1.3l32.7-224.7c.1-.7.7-1.3 1.4-1.3l76.5-6.6c.7 0 1.4.4 1.6 1l75.9 209.2c.2.4.1 1-.1 1.4-.3.4-.7.7-1.1.7l-185.1 22c-.2.1-.3.1-.3.1zm34-224.8l-32.2 221.4 181.1-21.5-74.8-206.2-74.1 6.3z" id="Stroke-117"/><path class="st3" d="M1215.6 564.4c-18.3 7-2.4 92.5-2.4 92.5l-16.8 75.6 6 1.4c13.3 3.1 26.6-4.9 30.4-18.2l14.5-51.8c-.1 0-.1-111.6-31.7-99.5" id="Fill-119"/><path class="st10" d="M1316.6 662.2c-.4 0-.8-.1-1.1-.4-.6-.6-.6-1.6 0-2.2.2-.2 23.5-24.6 36-44.2 23.8-37.3 21.5-54.2 14-110l-1.5-11c-.1-.9.5-1.6 1.3-1.8.8-.1 1.6.5 1.8 1.3l1.5 11c7.5 55.3 10 73.9-14.4 112.1-12.6 19.8-36.1 44.4-36.3 44.6-.5.4-.9.6-1.3.6zm-4.6-78.9c-.2 0-.5 0-.7-.1l-9.3-4.4c-.8-.4-1.1-1.3-.7-2.1.4-.8 1.3-1.1 2.1-.7l9.3 4.4c.8.4 1.1 1.3.7 2.1-.3.4-.9.8-1.4.8zm0-11.2c-.8 0-1.4-.6-1.5-1.4-.1-.9.5-1.6 1.3-1.8l18.5-2.4c.8-.1 1.6.5 1.8 1.3.1.9-.5 1.6-1.3 1.8l-18.5 2.4c-.2.1-.3.1-.3.1zm9.4-16.3c-.8 0-1.5-.7-1.6-1.5-.4-11.3 0-36.8 0-37.1 0-.9.7-1.5 1.6-1.5.9 0 1.6.7 1.5 1.6 0 .3-.4 25.7 0 36.9.1.8-.6 1.6-1.5 1.6z" id="Stroke-121"/><path class="st0" d="M1330.5 685.3c-.4 0-.9-.2-1.2-.6l-46.3-55.5c-.6-.7-.5-1.7.2-2.2.7-.6 1.6-.5 2.2.2l46.3 55.5c.6.7.5 1.7-.2 2.2-.3.3-.7.4-1 .4z" id="Stroke-123"/><path class="st10" d="M1284.2 629.8c-.2 0-.5-.1-.7-.2-.8-.4-1.1-1.3-.7-2.1l18.5-37c.4-.8 1.3-1.1 2.1-.7.8.4 1.1 1.3.7 2.1l-18.5 37c-.3.6-.8.9-1.4.9zm64.6-217.4c-.2 0-.5 0-.7-.2-.8-.4-1.1-1.3-.7-2.1.2-.4 18.4-39.4 3.1-64.4-7.2-11.8-22.7-16.3-34.8-16.6-11.7-.2-21.6 3.2-25.5 9.1-.5.7-1.5.9-2.2.4-.7-.5-.9-1.5-.4-2.2 4.5-6.8 15.3-10.8 28.2-10.5 12.9.3 29.6 5.2 37.4 18.1 16.2 26.5-2.1 65.7-2.9 67.4-.3.7-.9 1-1.5 1zm-23.6-9.2c-.2 0-.3 0-.5-.1-.8-.3-1.3-1.1-1-2 .1-.5 3.4-11.4-6.1-24.3-3.8-5.2-11.1-9.3-18.8-13.6-12.2-6.8-24.8-13.8-25.4-26.4 0-.9.6-1.6 1.5-1.6 1-.1 1.6.6 1.6 1.5.5 10.8 12.3 17.4 23.8 23.8 8 4.5 15.6 8.7 19.8 14.5 10.4 14.2 6.7 26.5 6.5 27.1-.2.6-.8 1.1-1.4 1.1zm-17.9-27.8h-.4l-52.5-13.1-1.1 7.2c-.1.9-1 1.4-1.8 1.3-.9-.1-1.4-.9-1.3-1.8l1.2-7.5c-.8-.2-1.3-1.1-1.1-1.9.2-.8.9-1.3 1.6-1.2l1.3-7.9c.1-.9 1-1.4 1.8-1.3.9.1 1.4.9 1.3 1.8l-1.3 8.2 52.7 13.2c.8.2 1.3 1.1 1.1 1.9-.1.7-.8 1.1-1.5 1.1z" id="Stroke-125"/><path class="st11" d="M1298.6 458.7c-.7 0-1.3-.4-1.5-1.1l-5.1-18.1c-.2-.8.2-1.7 1-1.9l60.1-18.9c.8-.3 1.7.2 2 1 .3.8-.2 1.7-1 2l-58.7 18.5 4.7 16.6c.2.8-.2 1.7-1.1 1.9h-.4z" id="Stroke-127"/><path class="st10" d="M1302.7 435.5c-.7 0-1.3-.4-1.5-1.1l-5.3-18.2c-16.3 1.6-23.7-7.2-30.3-21.8-.6-1.3-2.4-2-4.3-2.7-2.6-1-5.9-2.3-6.4-5.7-.4-3.2 1.4-5.9 3.4-8.7 2.5-3.5 5.2-7.5 5.1-14-.1-7 2.8-13.4 8.6-18.3.7-.6 1.6-.5 2.2.2.6.7.5 1.6-.2 2.2-5 4.4-7.6 9.9-7.5 15.9.1 7.5-3.1 12.1-5.7 15.9-1.7 2.5-3.1 4.5-2.8 6.5.2 1.5 1.8 2.2 4.4 3.2 2.3.9 5 1.9 6.1 4.4 6.3 14.1 13 21.9 28.3 19.9.8-.1 1.5.4 1.7 1.1l5.7 19.5c.2.8-.2 1.7-1.1 1.9-.1-.2-.3-.2-.4-.2z" id="Stroke-129"/><path class="st12" d="M1228.7 471h-9.3v-9.2c0-5.1 4.1-9.2 9.3-9.2 5.1 0 9.3 4.1 9.3 9.2-.1 5-4.2 9.2-9.3 9.2" id="Fill-131"/><g id="Group-136" transform="translate(367.46 98.443)"><path class="st0" d="M804.2 364.2c-7.6 3.3-10.1 8.2-11 15-1.6 12.1-11.4 14.8-11.5 20.9-.1 4.7 8 5.2 9.1 9.3 4.1 14.7 15.5 25.3 32 25.5" id="Fill-133"/><path class="st10" d="M822.9 436.4c-16.4-.2-29-10.2-33.6-26.6-.4-1.3-2-2.3-3.8-3.3-2.4-1.4-5.4-3.1-5.4-6.5 0-3.2 2.2-5.6 4.5-8.1 2.9-3.1 6.2-6.6 7-13 .7-5.8 2.7-12.3 11.9-16.2.8-.3 1.7 0 2.1.8.3.8 0 1.7-.8 2.1-7.3 3.1-9.3 7.7-10 13.7-1 7.4-4.8 11.5-7.8 14.8-2.1 2.2-3.7 4-3.7 6 0 1.5 1.4 2.4 3.8 3.7 2.1 1.2 4.6 2.6 5.3 5.1 4.2 15.1 15.6 24.2 30.6 24.3.9 0 1.6.7 1.5 1.6-.1.9-.8 1.6-1.6 1.6z" id="Stroke-135"/></g><path class="st10" d="M1163.9 521.1c-1 0-1.7-.8-1.7-1.7 0-1 .8-1.7 1.7-1.7 0 0 4.5 0 8.5-2 .9-.4 1.9-.1 2.3.8.4.9.1 1.9-.8 2.3-4.7 2.3-9.8 2.3-10 2.3z" id="Stroke-137"/><path class="st12" d="M1173.2 460zM1173.2 460l-4 2.1c-4.6 6.7-9.9 15.8-9.9 15.8l20.7 2.1 6.1 18.1c3.3 9.9 13.5 15.9 24 14.3l32.4-5c.1 0-17.4-64.6-69.3-47.4z"/><path class="st10" d="M1170.6 503.4c1 0 1.8-1.2 1.8-2.6l-.1-4.2c0-1.4-.9-2.5-1.9-2.4-1 0-1.8 1.2-1.8 2.6l.1 4.2c0 1.3.8 2.4 1.9 2.4" id="Fill-141"/><path class="st0" d="M446.8 214.3c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6" id="Fill-143"/><g id="Fill-145"><path class="st7" d="M571.7 214.3c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6m-64.8 0c0 6.4-5.2 11.6-11.6 11.6-6.4 0-11.6-5.2-11.6-11.6s5.2-11.6 11.6-11.6c6.4 0 11.6 5.2 11.6 11.6"/></g></svg>
diff --git a/plugins/jetpack/images/plans/jetpack-complete.svg b/plugins/jetpack/images/plans/jetpack-complete.svg
new file mode 100644
index 00000000..f3e22ec7
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-complete.svg
@@ -0,0 +1,3 @@
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <path d="M27.5 0C12.333 0 0 12.333 0 27.5C0 42.667 12.333 55 27.5 55C42.667 55 55 42.667 55 27.5C55 12.333 42.667 0 27.5 0ZM26.083 32.0658H12.3855L26.083 5.40553V32.0658ZM28.8645 49.542V22.8817H42.562L28.8645 49.542Z" fill="#069E08"/>
+</svg>
diff --git a/plugins/jetpack/images/plans/jetpack-free.svg b/plugins/jetpack/images/plans/jetpack-free.svg
new file mode 100644
index 00000000..5b984640
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-free.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M.143 34.358l8.929 22.32a1 1 0 001.856 0l8.929-22.32a2 2 0 00.143-.743V0H0v33.615a2 2 0 00.143.743z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#5198D9" xlink:href="#a"/><rect fill="#2271B1" mask="url(#b)" x="-2" y="54" width="28" height="1" rx=".5"/><g mask="url(#b)"><g transform="rotate(30 26.73 85.51)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#135E96" xlink:href="#c"/><path d="M11.003 0v22.463c0 4.011.418 5.466 1.202 6.933a8.178 8.178 0 003.402 3.402c1.262.674 2.514 1.078 5.392 1.178L21 50H-1l.001-16.024c2.882-.1 4.136-.503 5.398-1.178A8.178 8.178 0 007.8 29.396c.784-1.467 1.202-2.922 1.202-6.933V0h2z" fill="#FFF" mask="url(#d)"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/jetpack-personal.svg b/plugins/jetpack/images/plans/jetpack-personal.svg
new file mode 100644
index 00000000..af6c57e7
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-personal.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M16.493 48C14.975 53.58 13.37 57.315 12 58c-1.37-.685-2.975-4.42-4.493-10H5.87C2.773 37.3 0 22.13 0 8V0h24v8c0 14.13-2.773 29.3-5.87 40h-1.637z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#deb100" fill-rule="nonzero" xlink:href="#a"/><rect fill="#c08c00" mask="url(#b)" x="-2" y="54" width="29" height="2" rx="1"/><g mask="url(#b)"><g transform="rotate(30 31.464 82.785)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#7d5600" xlink:href="#c"/><path fill="#FFF" mask="url(#d)" d="M-24 26h72v22h-72z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/jetpack-premium.svg b/plugins/jetpack/images/plans/jetpack-premium.svg
new file mode 100644
index 00000000..d51d6bdf
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-premium.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M14 50v2.959c0 .478-.027.649-.088.834a1.33 1.33 0 01-.283.49c-.13.145-.265.254-.68.493l-4.7 2.708A1.5 1.5 0 016 56.184V50H4c0-10.667-1.333-21-4-31V0h20v19c-2.667 10-4 20.333-4 31h-2z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#2FB41F" fill-rule="nonzero" xlink:href="#a"/><path fill="#008710" mask="url(#b)" d="M-4 54h32l-3 2H-4z"/><g mask="url(#b)"><g transform="rotate(30 26.732 85.517)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#007117" xlink:href="#c"/><path fill="#FFF" mask="url(#d)" d="M-4 22h28v28H-4z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/jetpack-professional.svg b/plugins/jetpack/images/plans/jetpack-professional.svg
new file mode 100644
index 00000000..c9c0f3d8
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-professional.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M4.273 31.063C2.62 22.838 1 6.94 1 4V0h20v4c0 2.94-1.62 18.838-3.273 27.063 2.64 2.01 3.881 5.288 3.273 8.937-.915 5.49-7 15-9 18h-2c-2-3-8-12-9-18-.608-3.649.633-6.927 3.273-8.937zm7.615 11.167a2.4 2.4 0 10-1.776 0l.588 11.777a.3.3 0 00.6 0l.588-11.777z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#C475BD" fill-rule="nonzero" xlink:href="#a"/><path d="M0 54h30c-22 1.306-24.667 6.63-8 15.973C7.333 69.973 0 64.649 0 54z" fill="#984A9C" mask="url(#b)"/><g mask="url(#b)"><g transform="rotate(30 30.964 84.65)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#FFF" xlink:href="#c"/><path fill="#662C6E" mask="url(#d)" d="M-1 0h24v26H-1z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/jetpack-security.svg b/plugins/jetpack/images/plans/jetpack-security.svg
new file mode 100644
index 00000000..d223e413
--- /dev/null
+++ b/plugins/jetpack/images/plans/jetpack-security.svg
@@ -0,0 +1,4 @@
+<svg width="55" height="55" viewBox="0 0 55 55" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="27.5" cy="27.5" r="27.5" fill="#984A9C"/>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M34.5106 20.7454H33.2601V19.5077C33.2601 16.0951 30.455 13.3188 27.0071 13.3188C23.5592 13.3188 20.7542 16.0951 20.7542 19.5077V20.7454H19.5036C18.1217 20.7454 17.0024 21.8532 17.0024 23.2209V35.5986C17.0024 36.9663 18.1217 38.0741 19.5036 38.0741H34.5106C35.8925 38.0741 37.0118 36.9663 37.0118 35.5986V23.2209C37.0118 21.8532 35.8925 20.7454 34.5106 20.7454ZM23.2554 19.5077C23.2554 17.4604 24.9386 15.7944 27.0071 15.7944C29.0756 15.7944 30.7589 17.4604 30.7589 19.5077V20.7454H23.2554V19.5077ZM28.2577 33.123V30.3047C29.0018 29.8751 29.5083 29.0855 29.5083 28.172C29.5083 26.8043 28.389 25.6965 27.0071 25.6965C25.6252 25.6965 24.5059 26.8043 24.5059 28.172C24.5059 29.0867 25.0124 29.8764 25.7565 30.3047V33.123H28.2577Z" fill="#fff"/>
+</svg>
diff --git a/plugins/jetpack/images/plans/wpcom-business.svg b/plugins/jetpack/images/plans/wpcom-business.svg
new file mode 100644
index 00000000..abbe8773
--- /dev/null
+++ b/plugins/jetpack/images/plans/wpcom-business.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M4.273 31.063C2.62 22.838 1 6.94 1 4V0h20v4c0 2.94-1.62 18.838-3.273 27.063 2.64 2.01 3.881 5.288 3.273 8.937-.915 5.49-7 15-9 18h-2c-2-3-8-12-9-18-.608-3.649.633-6.927 3.273-8.937zm7.615 11.167a2.4 2.4 0 10-1.776 0l.588 11.777a.3.3 0 00.6 0l.588-11.777z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#E68B28" fill-rule="nonzero" xlink:href="#a"/><path d="M0 54h30c-22 1.306-24.667 6.63-8 15.973C7.333 69.973 0 64.649 0 54z" fill="#B26200" mask="url(#b)"/><g mask="url(#b)"><g transform="rotate(30 30.964 84.65)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#FFF" xlink:href="#c"/><path fill="#8A4D00" mask="url(#d)" d="M-1 0h24v26H-1z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/wpcom-ecommerce.svg b/plugins/jetpack/images/plans/wpcom-ecommerce.svg
new file mode 100644
index 00000000..37374508
--- /dev/null
+++ b/plugins/jetpack/images/plans/wpcom-ecommerce.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M4.5 29.877C2.847 21.652 0 6.94 0 4V0h24v4c0 2.94-2.847 17.652-4.5 25.877C22.108 33 22.108 36.351 21.5 40c-.915 5.49-6.5 15-8.5 18h-2c-2-3-7.5-12-8.5-18-.608-3.649-.608-7 2-10.123zM11.989 38c-1.511 0-1.489 1-1.489 2 0 .667.425 5.336 1.275 14.007.006.154.098.277.214.285.124.008.23-.119.236-.285.85-8.671 1.275-13.34 1.275-14.007 0-1 0-2-1.511-2z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#C475BD" fill-rule="nonzero" xlink:href="#a"/><path fill="#984A9C" fill-rule="nonzero" mask="url(#b)" d="M-1 54h28.5L0 62z"/><g mask="url(#b)"><g transform="rotate(30 31.464 82.785)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#FFF" xlink:href="#c"/><path fill="#662C6E" mask="url(#d)" d="M0 0h24v26H0z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/wpcom-free.svg b/plugins/jetpack/images/plans/wpcom-free.svg
new file mode 100644
index 00000000..3cb0f89d
--- /dev/null
+++ b/plugins/jetpack/images/plans/wpcom-free.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M.143 34.358l8.929 22.32a1 1 0 001.856 0l8.929-22.32a2 2 0 00.143-.743V0H0v33.615a2 2 0 00.143.743z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#8c8f94" xlink:href="#a"/><rect fill="#646970" mask="url(#b)" x="-2" y="54" width="28" height="1" rx=".5"/><g mask="url(#b)"><g transform="rotate(30 26.73 85.51)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#50575E" xlink:href="#c"/><path d="M11.003 0v22.463c0 4.011.418 5.466 1.202 6.933a8.178 8.178 0 003.402 3.402c1.262.674 2.514 1.078 5.392 1.178L21 50H-1l.001-16.024c2.882-.1 4.136-.503 5.398-1.178A8.178 8.178 0 007.8 29.396c.784-1.467 1.202-2.922 1.202-6.933V0h2z" fill="#FFF" mask="url(#d)"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/wpcom-personal.svg b/plugins/jetpack/images/plans/wpcom-personal.svg
new file mode 100644
index 00000000..44179d59
--- /dev/null
+++ b/plugins/jetpack/images/plans/wpcom-personal.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M16.493 48C14.975 53.58 13.37 57.315 12 58c-1.37-.685-2.975-4.42-4.493-10H5.87C2.773 37.3 0 22.13 0 8V0h24v8c0 14.13-2.773 29.3-5.87 40h-1.637z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#5198D9" fill-rule="nonzero" xlink:href="#a"/><rect fill="#2271B1" mask="url(#b)" x="-2" y="54" width="29" height="2" rx="1"/><g mask="url(#b)"><g transform="rotate(30 31.464 82.785)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#135E96" xlink:href="#c"/><path fill="#FFF" mask="url(#d)" d="M-24 26h72v22h-72z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/plans/wpcom-premium.svg b/plugins/jetpack/images/plans/wpcom-premium.svg
new file mode 100644
index 00000000..46b34175
--- /dev/null
+++ b/plugins/jetpack/images/plans/wpcom-premium.svg
@@ -0,0 +1 @@
+<svg width="72" height="72" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><circle id="a" cx="36" cy="36" r="36"/><path d="M14 50v2.959c0 .478-.027.649-.088.834a1.33 1.33 0 01-.283.49c-.13.145-.265.254-.68.493l-4.7 2.708A1.5 1.5 0 016 56.184V50H4c0-10.667-1.333-21-4-31V0h20v19c-2.667 10-4 20.333-4 31h-2z" id="c"/></defs><g fill="none" fill-rule="evenodd"><mask id="b" fill="#fff"><use xlink:href="#a"/></mask><use fill="#deb100" fill-rule="nonzero" xlink:href="#a"/><path fill="#c08c00" mask="url(#b)" d="M-4 54h32l-3 2H-4z"/><g mask="url(#b)"><g transform="rotate(30 26.732 85.517)"><mask id="d" fill="#fff"><use xlink:href="#c"/></mask><use fill="#7d5600" xlink:href="#c"/><path fill="#FFF" mask="url(#d)" d="M-4 22h28v28H-4z"/></g></g></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/products/illustration-anti-spam.png b/plugins/jetpack/images/products/illustration-anti-spam.png
new file mode 100644
index 00000000..517ea0d2
--- /dev/null
+++ b/plugins/jetpack/images/products/illustration-anti-spam.png
Binary files differ
diff --git a/plugins/jetpack/images/products/illustration-backup.png b/plugins/jetpack/images/products/illustration-backup.png
new file mode 100644
index 00000000..0beb566c
--- /dev/null
+++ b/plugins/jetpack/images/products/illustration-backup.png
Binary files differ
diff --git a/plugins/jetpack/images/products/illustration-scan.png b/plugins/jetpack/images/products/illustration-scan.png
new file mode 100644
index 00000000..35d7d6f2
--- /dev/null
+++ b/plugins/jetpack/images/products/illustration-scan.png
Binary files differ
diff --git a/plugins/jetpack/images/products/illustration-search.png b/plugins/jetpack/images/products/illustration-search.png
new file mode 100644
index 00000000..1c053b11
--- /dev/null
+++ b/plugins/jetpack/images/products/illustration-search.png
Binary files differ
diff --git a/plugins/jetpack/images/products/illustration-videopress.png b/plugins/jetpack/images/products/illustration-videopress.png
new file mode 100644
index 00000000..d3c688c5
--- /dev/null
+++ b/plugins/jetpack/images/products/illustration-videopress.png
Binary files differ
diff --git a/plugins/jetpack/images/products/product-jetpack-anti-spam.svg b/plugins/jetpack/images/products/product-jetpack-anti-spam.svg
new file mode 100644
index 00000000..c7112ea6
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-anti-spam.svg
@@ -0,0 +1,4 @@
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="27.5" cy="27.5" r="27.5" fill="#3895BA"/>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M23 19.5C23 16.7386 25.2386 14.5 28 14.5C30.7614 14.5 33 16.7386 33 19.5H23ZM40.5 29.5H35.5V30.75C35.4975 31.1691 35.4599 31.5872 35.3875 32H36.75C38.1307 32 39.25 33.1193 39.25 34.5V37H36.75V34.5H34.4875C33.3697 36.4313 31.45 37.7645 29.25 38.1375V24.5H26.75V38.1375C24.55 37.7645 22.6303 36.4313 21.5125 34.5H19.25V37H16.75V34.5C16.75 33.1193 17.8693 32 19.25 32H20.6125C20.5401 31.5872 20.5025 31.1691 20.5 30.75V29.5H15.5V27H20.5V24.5H19.25C17.8693 24.5 16.75 23.3807 16.75 22V19.5H19.25V22H36.75V19.5H39.25V22C39.25 23.3807 38.1307 24.5 36.75 24.5H35.5V27H40.5V29.5Z" fill="#fff"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-backup.svg b/plugins/jetpack/images/products/product-jetpack-backup.svg
index fdebe39c..a1da128d 100644
--- a/plugins/jetpack/images/products/product-jetpack-backup.svg
+++ b/plugins/jetpack/images/products/product-jetpack-backup.svg
@@ -1 +1,4 @@
-<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 64 64"><circle cx="32" cy="32" r="32" fill="#2FB41F"/><path fill="#fff" fill-rule="evenodd" d="M32 17.6665c6.0667 0 11.1167 4.3167 12.25 10.0667 4.3333.3 7.75 3.8666 7.75 8.2666 0 4.6-3.7333 8.3334-8.3333 8.3334H22c-5.5167 0-10-4.4834-10-10 0-5.15 3.9-9.4 8.9167-9.9334 2.0833-4 6.2666-6.7333 11.0833-6.7333zm3.3333 21.6667v-6.6667h5L32 24.3332l-8.3333 8.3333h5v6.6667h6.6666z" clip-rule="evenodd"/><mask id="a" width="40" height="28" x="12" y="17" maskUnits="userSpaceOnUse"><path fill="#fff" fill-rule="evenodd" d="M32 17.6665c6.0667 0 11.1167 4.3167 12.25 10.0667 4.3333.3 7.75 3.8666 7.75 8.2666 0 4.6-3.7333 8.3334-8.3333 8.3334H22c-5.5167 0-10-4.4834-10-10 0-5.15 3.9-9.4 8.9167-9.9334 2.0833-4 6.2666-6.7333 11.0833-6.7333zm3.3333 21.6667v-6.6667h5L32 24.3332l-8.3333 8.3333h5v6.6667h6.6666z" clip-rule="evenodd"/></mask><g mask="url(#a)"><path fill="#fff" d="M12 11h40v40H12z"/></g></svg>
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="27.5" cy="27.5" r="27.5" fill="#3895BA"/>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M35.4688 24.5037C35.4788 24.5025 35.4875 24.5 35.5 24.5C38.95 24.5 41.75 27.3 41.75 30.75C41.75 32.8038 40.745 34.6125 39.2162 35.75H15.975C14.925 34.8337 14.25 33.5025 14.25 32C14.25 29.2375 16.4875 27 19.25 27C19.2978 27 19.3434 27.0067 19.3892 27.0134C19.42 27.018 19.4508 27.0225 19.4825 27.025C19.3375 26.4125 19.25 25.78 19.25 25.125C19.25 20.6375 22.8875 17 27.375 17C31.6525 17 35.15 20.3075 35.4688 24.5037ZM29.25 33.25V29.5H33L28 23.25L23 29.5H26.75V33.25H29.25Z" fill="#fff"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-boost.svg b/plugins/jetpack/images/products/product-jetpack-boost.svg
new file mode 100644
index 00000000..8a225891
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-boost.svg
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M32 16C32 24.8366 24.8366 32 16 32C7.16344 32 0 24.8366 0 16C0 7.16344 7.16344 0 16 0C24.8366 0 32 7.16344 32 16ZM15.445 11.0045L19.9864 16L15.445 20.9955L16.555 22.0045L21.555 16.5045L22.0136 16L21.555 15.4955L16.555 9.9955L15.445 11.0045ZM9.44504 11.0045L13.9864 16L9.44505 20.9955L10.555 22.0045L15.555 16.5045L16.0136 16L15.555 15.4955L10.555 9.9955L9.44504 11.0045Z" fill="#3895BA"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-crm.svg b/plugins/jetpack/images/products/product-jetpack-crm.svg
new file mode 100644
index 00000000..bbb800c3
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-crm.svg
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32ZM17.25 19V21H15.75V19C15.75 18.3096 15.1904 17.75 14.5 17.75H10.5C9.80964 17.75 9.25 18.3096 9.25 19V21H7.75V19C7.75 17.4812 8.98122 16.25 10.5 16.25H14.5C16.0188 16.25 17.25 17.4812 17.25 19ZM24.25 19V21H22.75V19C22.75 18.3096 22.1904 17.75 21.5 17.75H19V16.25H21.5C23.0188 16.25 24.25 17.4812 24.25 19ZM19.5 13.5C20.0523 13.5 20.5 13.0523 20.5 12.5C20.5 11.9477 20.0523 11.5 19.5 11.5C18.9477 11.5 18.5 11.9477 18.5 12.5C18.5 13.0523 18.9477 13.5 19.5 13.5ZM19.5 15C20.8807 15 22 13.8807 22 12.5C22 11.1193 20.8807 10 19.5 10C18.1193 10 17 11.1193 17 12.5C17 13.8807 18.1193 15 19.5 15ZM13.5 12.5C13.5 13.0523 13.0523 13.5 12.5 13.5C11.9477 13.5 11.5 13.0523 11.5 12.5C11.5 11.9477 11.9477 11.5 12.5 11.5C13.0523 11.5 13.5 11.9477 13.5 12.5ZM15 12.5C15 13.8807 13.8807 15 12.5 15C11.1193 15 10 13.8807 10 12.5C10 11.1193 11.1193 10 12.5 10C13.8807 10 15 11.1193 15 12.5Z" fill="#3895BA"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-scan.svg b/plugins/jetpack/images/products/product-jetpack-scan.svg
new file mode 100644
index 00000000..bcc578e2
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-scan.svg
@@ -0,0 +1,4 @@
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="27.5" cy="27.5" r="27.5" fill="#3895BA"/>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M17.5 18.8333L28 14.1667L38.5 18.8333V25.8333C38.5 32.3083 34.02 38.3633 28 39.8333C21.98 38.3633 17.5 32.3083 17.5 25.8333V18.8333ZM36.1667 26.9883H28V16.7217L19.8333 20.35V27H28V37.4183C32.34 36.0767 35.5483 31.795 36.1667 26.9883Z" fill="#fff"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-search.svg b/plugins/jetpack/images/products/product-jetpack-search.svg
new file mode 100644
index 00000000..121e586b
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-search.svg
@@ -0,0 +1,4 @@
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="27.5" cy="27.5" r="27.5" fill="#3895BA"/>
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M32.487 30.1537L38.5 36.1667L36.1667 38.5L30.1537 32.487C28.8657 33.3363 27.3245 33.8333 25.6667 33.8333C21.1563 33.8333 17.5 30.177 17.5 25.6667C17.5 21.1563 21.1563 17.5 25.6667 17.5C30.177 17.5 33.8333 21.1563 33.8333 25.6667C33.8333 27.3245 33.3363 28.8657 32.487 30.1537ZM25.6667 19.8333C22.4502 19.8333 19.8333 22.4502 19.8333 25.6667C19.8333 28.8832 22.4502 31.5 25.6667 31.5C28.8832 31.5 31.5 28.8832 31.5 25.6667C31.5 22.4502 28.8832 19.8333 25.6667 19.8333Z" fill="#fff"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-security-bundle.svg b/plugins/jetpack/images/products/product-jetpack-security-bundle.svg
new file mode 100644
index 00000000..13d0ad5f
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-security-bundle.svg
@@ -0,0 +1,3 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32ZM11.5 14C10.6716 14 10 14.6716 10 15.5V22.5C10 23.3284 10.6716 24 11.5 24H20.5C21.3284 24 22 23.3284 22 22.5V15.5C22 14.6716 21.3284 14 20.5 14H20.25V12.5C20.25 10.1528 18.3472 8.25 16 8.25C13.6528 8.25 11.75 10.1528 11.75 12.5V14H11.5ZM13.25 14H18.75V12.5C18.75 10.9812 17.5188 9.75 16 9.75C14.4812 9.75 13.25 10.9812 13.25 12.5V14ZM16 18C15.4477 18 15 18.4477 15 19C15 19.5523 15.4477 20 16 20C16.5523 20 17 19.5523 17 19C17 18.4477 16.5523 18 16 18Z" fill="#3895BA"/>
+</svg>
diff --git a/plugins/jetpack/images/products/product-jetpack-videopress.svg b/plugins/jetpack/images/products/product-jetpack-videopress.svg
new file mode 100644
index 00000000..ca29be5e
--- /dev/null
+++ b/plugins/jetpack/images/products/product-jetpack-videopress.svg
@@ -0,0 +1,4 @@
+<svg width="55" height="55" viewBox="0 0 55 55" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <path d="M27.5 55C42.6878 55 55 42.6878 55 27.5C55 12.3122 42.6878 0 27.5 0C12.3122 0 0 12.3122 0 27.5C0 42.6878 12.3122 55 27.5 55Z" fill="#3895BA"/>
+ <path d="M36.375 15.75H19.625C18 15.75 16.75 17 16.75 18.625V35.375C16.75 37 18 38.25 19.625 38.25H36.375C38 38.25 39.25 37 39.25 35.375V18.625C39.25 17 38 15.75 36.375 15.75ZM37.375 35.375C37.375 35.875 36.875 36.375 36.375 36.375H19.625C19.125 36.375 18.625 35.875 18.625 35.375V18.625C18.625 18.125 19.125 17.625 19.625 17.625H36.375C36.875 17.625 37.375 18.125 37.375 18.625V35.375ZM25.5 30.75L31.75 27L25.5 23.25V30.75Z" fill="white"/>
+</svg>
diff --git a/plugins/jetpack/images/recommendations/background-alt.svg b/plugins/jetpack/images/recommendations/background-alt.svg
new file mode 100644
index 00000000..8f63d14e
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/background-alt.svg
@@ -0,0 +1 @@
+<svg fill="none" height="428" viewBox="0 0 541 428" width="541" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><filter id="a" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse" height="428" width="541" x="0" y="0"><feFlood flood-opacity="0" result="BackgroundImageFix"/><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"/><feOffset dx="-20" dy="-5"/><feGaussianBlur stdDeviation="7.5"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/><feBlend in2="BackgroundImageFix" mode="normal" result="effect1_dropShadow"/><feBlend in="SourceGraphic" in2="effect1_dropShadow" mode="normal" result="shape"/></filter><g filter="url(#a)"><path d="m35 32c0-6.6274 5.3726-12 12-12h494v398h-506z" fill="#fff"/></g><path d="m21 32c0-6.6274 5.3726-12 12-12h508v406h-520z" fill="#fff"/><path clip-rule="evenodd" d="m51 45c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5zm18 0c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5zm13 5c2.7614 0 5-2.2386 5-5s-2.2386-5-5-5-5 2.2386-5 5 2.2386 5 5 5z" fill="#f0f0f1" fill-rule="evenodd"/></svg>
diff --git a/plugins/jetpack/images/recommendations/background.svg b/plugins/jetpack/images/recommendations/background.svg
new file mode 100644
index 00000000..e08a031a
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/background.svg
@@ -0,0 +1 @@
+<svg fill="none" height="402" viewBox="0 0 501 362" width="501" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><filter id="a" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse" height="402" width="501" x="0" y="0"><feFlood flood-opacity="0" result="BackgroundImageFix"/><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"/><feOffset dx="-20" dy="-5"/><feGaussianBlur stdDeviation="7.5"/><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0"/><feBlend in2="BackgroundImageFix" mode="normal" result="effect1_dropShadow"/><feBlend in="SourceGraphic" in2="effect1_dropShadow" mode="normal" result="shape"/></filter><g filter="url(#a)"><path d="m35 32c0-6.6274 5.3726-12 12-12h454v372h-466z" fill="#fff"/></g><path d="m20 32c0-6.6274 5.3726-12 12-12h469v372h-481z" fill="#fff"/><path clip-rule="evenodd" d="m51 45c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5zm18 0c0 2.7614-2.2386 5-5 5s-5-2.2386-5-5 2.2386-5 5-5 5 2.2386 5 5zm13 5c2.7614 0 5-2.2386 5-5s-2.2386-5-5-5-5 2.2386-5 5 2.2386 5 5 5z" fill="#f0f0f1" fill-rule="evenodd"/></svg>
diff --git a/plugins/jetpack/images/recommendations/creative-mail-illustration.svg b/plugins/jetpack/images/recommendations/creative-mail-illustration.svg
new file mode 100644
index 00000000..3e901c78
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/creative-mail-illustration.svg
@@ -0,0 +1 @@
+<svg fill="none" height="215" viewBox="0 0 327 215" width="327" xmlns="http://www.w3.org/2000/svg"><rect fill="#dcdcde" height="10" rx="5" width="76"/><g fill="#fff" stroke="#dcdcde" stroke-linejoin="round" stroke-width="4"><rect height="28" rx="3" width="322" x="2" y="40"/><rect height="28" rx="3" width="322" x="3" y="84"/><rect height="28" rx="3" width="322" x="2" y="128"/></g><rect fill="#64ca43" height="32" rx="2" width="80" y="183"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/manage-security.svg b/plugins/jetpack/images/recommendations/manage-security.svg
new file mode 100644
index 00000000..7f5d625b
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/manage-security.svg
@@ -0,0 +1 @@
+<svg fill="none" height="84" viewBox="0 0 120 84" width="120" xmlns="http://www.w3.org/2000/svg"><g fill="#dcdcde"><rect height="4.03306" rx="2.01653" width="120" y="63.3979"/><rect height="4.03306" rx="2.01653" width="120" y="71.7524"/><rect height="4.03306" rx="2.01653" width="67.5" x="26.25" y="79.8184"/></g><path d="m60.4554-.00097656-20.4554 9.09108656v13.63659c0 12.6139 8.7276 24.4096 20.4554 27.2733 11.7278-2.8637 20.4554-14.6594 20.4554-27.2733v-13.63659z" fill="#069e08"/><path d="m49.1331 25.9143 7.6556 7.6325 16.796-16.8193" stroke="#fff" stroke-width="4.66676"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/mobile-app.svg b/plugins/jetpack/images/recommendations/mobile-app.svg
new file mode 100644
index 00000000..0a1f1d47
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/mobile-app.svg
@@ -0,0 +1 @@
+<svg fill="none" height="88" viewBox="0 0 120 88" width="120" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><mask id="a" height="50" maskUnits="userSpaceOnUse" width="50" x="19" y="5"><path clip-rule="evenodd" d="m24 5h40c2.76 0 5 2.24 5 5v30c0 2.76-2.24 5-5 5h-15v5h7.5v5h-25v-5h7.5v-5h-15c-2.76 0-5-2.24-5-5v-30c0-2.76 2.24-5 5-5zm0 35h40v-30h-40z" fill="#fff" fill-rule="evenodd"/></mask><mask id="b" height="39" maskUnits="userSpaceOnUse" width="23" x="72" y="17"><path clip-rule="evenodd" d="m91 17.75h-15c-2.07 0-3.75 1.68-3.75 3.75v30c0 2.07 1.68 3.75 3.75 3.75h15c2.07 0 3.75-1.68 3.75-3.75v-30c0-2.07-1.68-3.75-3.75-3.75zm-5.625 35.625h-3.75v-1.875h3.75zm-9.375-3.75h15v-26.25h-15z" fill="#fff" fill-rule="evenodd"/></mask><g fill="#dcdcde"><rect height="4.03306" rx="2.01653" width="120" y="67.3979"/><rect height="4.03306" rx="2.01653" width="120" y="75.7524"/><rect height="4.03306" rx="2.01653" width="67.5" x="26.25" y="83.8184"/></g><g mask="url(#a)"><path d="m14 0h60v60h-60z" fill="#069e08"/></g><g mask="url(#b)"><path d="m61 14h45v45h-45z" fill="#069e08"/></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/monitor-illustration.svg b/plugins/jetpack/images/recommendations/monitor-illustration.svg
new file mode 100644
index 00000000..12f6b6a4
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/monitor-illustration.svg
@@ -0,0 +1 @@
+<svg fill="none" height="171" viewBox="0 0 280 171" width="280" xmlns="http://www.w3.org/2000/svg"><g fill="#dcdcde"><rect height="10" rx="5" width="280" y="108"/><rect height="10" rx="5" width="280" y="126"/><rect height="10" rx="5" width="280" y="143"/><rect height="10" rx="5" width="120" x="80" y="161"/></g><path d="m140.5.583496c-15.418 0-27.917 12.498304-27.917 27.916704 0 15.4183 12.499 27.9166 27.917 27.9166s27.917-12.4983 27.917-27.9166c0-15.4184-12.499-27.916704-27.917-27.916704zm2.792 41.875004h-5.584v-5.5833h5.584zm0-11.1667h-5.584l-1.395-16.75h8.375z" fill="#787c82"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/one-click-restores.svg b/plugins/jetpack/images/recommendations/one-click-restores.svg
new file mode 100644
index 00000000..1ffe49fe
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/one-click-restores.svg
@@ -0,0 +1 @@
+<svg fill="none" height="85" viewBox="0 0 120 85" width="120" xmlns="http://www.w3.org/2000/svg"><g fill="#dcdcde"><rect height="4.03306" rx="2.01653" width="120" y="64.3979"/><rect height="4.03306" rx="2.01653" width="120" y="72.7524"/><rect height="4.03306" rx="2.01653" width="67.5" x="26.25" y="80.8184"/></g><path d="m59.5 0c-11.825 0-21.5 9.675-21.5 21.5s9.675 21.5 21.5 21.5 21.5-9.675 21.5-21.5-9.675-21.5-21.5-21.5z" fill="#d63638"/><path d="m56.6997 15.5789 8.5252 8.5252 2.9096-3.4724-7.9505-1.796 2.287-10.12965z" fill="#fff"/><path d="m63.8355 25.7565-8.5252-8.5132-5.0648-5.0529-1.5206 1.5207 5.1965 5.1965-2.8976 3.4604 7.9504 1.796-2.2869 10.1297 5.7473-6.8729 5.1726 5.1726 1.5206-1.5206-5.3043-5.3043z" fill="#fff"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/product-purchased-illustration.svg b/plugins/jetpack/images/recommendations/product-purchased-illustration.svg
new file mode 100644
index 00000000..f6ff47ed
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/product-purchased-illustration.svg
@@ -0,0 +1,29 @@
+<svg fill="none" viewBox="0 0 393 260" xmlns="http://www.w3.org/2000/svg">
+<rect x="64" y="44" width="138" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="62" width="105" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="18" width="69.361" height="10" rx="5" fill="#DCDCDE"/>
+<mask id="c" x="4" y="32" width="38" height="28" mask-type="alpha" maskUnits="userSpaceOnUse">
+<path d="m17.25 59.21-12.855-12.855 2.7102-2.7102 10.145 10.145 21.645-21.645 2.7102 2.7102-24.355 24.355z" fill="#fff"/>
+</mask>
+<g mask="url(#c)">
+<rect y="22" width="46" height="46" fill="#DCDCDE"/>
+</g>
+<rect x="64" y="130" width="138" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="148" width="105" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="104" width="69.361" height="10" rx="5" fill="#DCDCDE"/>
+<mask id="b" x="4" y="118" width="38" height="28" mask-type="alpha" maskUnits="userSpaceOnUse">
+<path d="m17.25 145.21-12.855-12.855 2.7102-2.71 10.145 10.145 21.645-21.645 2.7102 2.71-24.355 24.355z" fill="#fff"/>
+</mask>
+<g mask="url(#b)">
+<rect y="108" width="46" height="46" fill="#DCDCDE"/>
+</g>
+<rect x="64" y="216" width="138" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="234" width="105" height="10" rx="5" fill="#DCDCDE" opacity=".5"/>
+<rect x="64" y="190" width="69.361" height="10" rx="5" fill="#DCDCDE"/>
+<mask id="a" x="4" y="204" width="38" height="28" mask-type="alpha" maskUnits="userSpaceOnUse">
+<path d="m17.25 231.21-12.855-12.855 2.7102-2.71 10.145 10.145 21.645-21.645 2.7102 2.71-24.355 24.355z" fill="#fff"/>
+</mask>
+<g mask="url(#a)">
+<rect y="194" width="46" height="46" fill="#DCDCDE"/>
+</g>
+</svg>
diff --git a/plugins/jetpack/images/recommendations/related-posts-illustration.jpg b/plugins/jetpack/images/recommendations/related-posts-illustration.jpg
new file mode 100644
index 00000000..f67cbee9
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/related-posts-illustration.jpg
Binary files differ
diff --git a/plugins/jetpack/images/recommendations/site-accelerator-illustration.svg b/plugins/jetpack/images/recommendations/site-accelerator-illustration.svg
new file mode 100644
index 00000000..1aa6ddb6
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/site-accelerator-illustration.svg
@@ -0,0 +1 @@
+<svg fill="none" height="160" viewBox="0 0 233 160" width="233" xmlns="http://www.w3.org/2000/svg"><g fill="#dcdcde"><rect height="80" rx="5" width="69" y="80"/><rect height="120" rx="5" width="69" x="82" y="40"/><rect height="160" rx="5" width="69" x="164"/></g></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/recommendations/site-type-illustration.jpg b/plugins/jetpack/images/recommendations/site-type-illustration.jpg
new file mode 100644
index 00000000..5f116c5c
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/site-type-illustration.jpg
Binary files differ
diff --git a/plugins/jetpack/images/recommendations/woocommerce-illustration.jpg b/plugins/jetpack/images/recommendations/woocommerce-illustration.jpg
new file mode 100644
index 00000000..fc7b4c77
--- /dev/null
+++ b/plugins/jetpack/images/recommendations/woocommerce-illustration.jpg
Binary files differ
diff --git a/plugins/jetpack/images/star.svg b/plugins/jetpack/images/star.svg
new file mode 100644
index 00000000..ba95326b
--- /dev/null
+++ b/plugins/jetpack/images/star.svg
@@ -0,0 +1,8 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="1" y="1" width="14" height="13">
+<path d="M7.99967 11.5133L12.1197 14L11.0263 9.31331L14.6663 6.15998L9.87301 5.75331L7.99967 1.33331L6.12634 5.75331L1.33301 6.15998L4.97301 9.31331L3.87967 14L7.99967 11.5133Z" fill="white"/>
+</mask>
+<g mask="url(#mask0)">
+<rect width="16" height="16" fill="white"/>
+</g>
+</svg>
diff --git a/plugins/jetpack/images/stars-left.svg b/plugins/jetpack/images/stars-left.svg
index 56c86f36..a7a36d06 100644
--- a/plugins/jetpack/images/stars-left.svg
+++ b/plugins/jetpack/images/stars-left.svg
@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 137 96" xml:space="preserve"><style type="text/css">
- .st0{fill:#F6F6F6;}
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 137 96" xml:space="preserve"><style type="text/css">
+ .st0{fill:#F6F6F6;}
</style><path class="st0" d="M33.5 6c0-2.8 2.2-5 5-5s5 2.2 5 5 -2.2 5-5 5S33.5 8.8 33.5 6"/><polyline class="st0" points="7 92.9 13 95.5 10.4 89.5 13 83.5 7 86.1 1 83.5 3.6 89.5 1 95.5 7 92.9 "/><polyline class="st0" points="128.2 36.7 137 33.2 128.2 29.7 124.6 20.8 121.1 29.7 112.3 33.2 121.1 36.7 124.6 45.6 128.2 36.7 "/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/stars-right.svg b/plugins/jetpack/images/stars-right.svg
index 4e2ec80c..83e9ec67 100644
--- a/plugins/jetpack/images/stars-right.svg
+++ b/plugins/jetpack/images/stars-right.svg
@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 111 77" xml:space="preserve"><style type="text/css">
- .st0{fill:#F6F6F6;}
+<svg xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" viewBox="0 0 111 77" xml:space="preserve"><style type="text/css">
+ .st0{fill:#F6F6F6;}
</style><path class="st0" d="M0 71.2c0-2.8 2.2-5 5-5s5 2.2 5 5c0 2.8-2.2 5-5 5S0 74 0 71.2"/><polyline class="st0" points="101.4 15.9 110.2 12.4 101.4 8.9 97.9 0 94.3 8.9 85.5 12.4 94.3 15.9 97.9 24.8 101.4 15.9 "/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/images/stats.svg b/plugins/jetpack/images/stats.svg
index 645cd97c..072dcbf0 100644
--- a/plugins/jetpack/images/stats.svg
+++ b/plugins/jetpack/images/stats.svg
@@ -1,32 +1,32 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="400" viewBox="0 0 400 400" version="1.1">
- <title>
- Stats
- </title>
- <desc>
- Created with Sketch.
- </desc>
- <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <g id="Stats">
- <circle id="Oval" fill="#D2DCE4" cx="200.21" cy="200" r="199.72"/>
- <rect id="Rectangle-path" fill="#8FACBF" x="77.77" y="173.77" width="70.26" height="152.63"/>
- <rect id="Rectangle-path" fill="#8FACBF" x="164.31" y="93.91" width="70.26" height="232.49"/>
- <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="199.44" y="93.63" width="35.13" height="232.77"/>
- <rect id="Rectangle-path" fill="#8FACBF" x="250.85" y="133.98" width="70.26" height="192.42"/>
- <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="113.46" y="173.77" width="34.57" height="152.63"/>
- <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="286.26" y="133.7" width="34.78" height="192.7"/>
- <path d="M202.09 250.09L182.96 263.72 171.06 253.5C170.5 254.26 169.95 255.1 169.46 255.93L164.31 252.66 164.31 266.71 166.75 268.31C167.72 279.37 176.9 288 188.17 288 200.07 288 209.74 278.33 209.74 266.43 209.74 262.89 208.9 259.62 207.37 256.7L234.5 215.51 234.5 193.95 200.14 245.98 202.09 250.09 202.09 250.09Z" id="Shape" fill="#647A88" opacity="0.4"/>
- <path d="M306.23 208L305.39 200C304.42 201.04 303.58 202.09 302.82 203.27L274.5 181.63C275.34 180.38 276.03 179.06 276.66 177.67L260.17 166.19 250.78 166.19 250.78 189.91C252.73 190.47 254.75 190.82 256.83 190.82 259.69 190.82 262.4 190.26 264.9 189.22L299.48 215.65C300.03 226.99 309.29 236.03 320.77 236.17L320.77 210.43 306.23 208 306.23 208Z" id="Shape" fill="#647A88" opacity="0.4"/>
- <path d="M128.35 221.01L89.39 222.4 87.03 221.15C87.65 223.23 88.56 225.11 89.67 226.85L77.77 238.75 77.77 255.51 98.71 234.64C101.43 235.9 104.42 236.59 107.62 236.59 110.75 236.59 113.74 235.9 116.45 234.64L147.97 254.75 147.97 240.7 125.77 226.57C126.89 224.83 127.72 222.96 128.35 221.01L128.35 221.01Z" id="Shape" fill="#647A88" opacity="0.4"/>
- <path d="M320.83 221.01L255.17 171.13 187.2 269.01 102.89 212.66 21.84 289.81C54.75 354.99 122.23 399.72 200.21 399.72 310.54 399.72 399.93 310.33 399.93 200 399.93 171.34 393.81 144.07 382.96 119.44L320.83 221.01 320.83 221.01Z" id="Shape" fill="#FFFFFF" opacity="0.17"/>
- <path d="M378.71 110.4L319.44 206.12 252.45 154.92 186.43 254.96 104 202.43 20.03 286.12C21.84 289.88 23.79 293.57 25.81 297.11L105.67 217.53 189.98 271.23 255.37 172.03 322.64 223.44 384.63 123.27C382.82 118.96 380.87 114.64 378.71 110.4L378.71 110.4Z" id="Shape" fill="#647A88"/>
- <ellipse id="Oval" fill="#FFFFFF" cx="188.17" cy="262.47" rx="17.53" ry="17.53"/>
- <ellipse id="Oval" fill="#FFFFFF" cx="107.62" cy="212.66" rx="17.53" ry="17.53"/>
- <path d="M107.62 195.2L107.62 230.19C117.29 230.19 125.15 222.33 125.15 212.66 125.15 202.99 117.29 195.2 107.62 195.2L107.62 195.2Z" id="Shape" fill="#F0F3F4"/>
- <path d="M188.17 244.94L188.17 279.93C197.84 279.93 205.7 272.07 205.7 262.4 205.7 252.8 197.84 244.94 188.17 244.94L188.17 244.94Z" id="Shape" fill="#F0F3F4"/>
- <ellipse id="Oval" fill="#FFFFFF" cx="256.9" cy="167.3" rx="17.53" ry="17.53"/>
- <path d="M256.9 149.84L256.9 184.83C266.57 184.83 274.43 176.97 274.43 167.3 274.43 157.63 266.57 149.84 256.9 149.84L256.9 149.84Z" id="Shape" fill="#F0F3F4"/>
- <ellipse id="Oval" fill="#FFFFFF" cx="321.04" cy="212.66" rx="17.53" ry="17.53"/>
- <path d="M320.83 195.2L320.83 230.19C330.5 230.19 338.37 222.33 338.37 212.66 338.37 202.99 330.5 195.2 320.83 195.2L320.83 195.2Z" id="Shape" fill="#F0F3F4"/>
- </g>
- </g>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="400" viewBox="0 0 400 400" version="1.1">
+ <title>
+ Stats
+ </title>
+ <desc>
+ Created with Sketch.
+ </desc>
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <g id="Stats">
+ <circle id="Oval" fill="#D2DCE4" cx="200.21" cy="200" r="199.72"/>
+ <rect id="Rectangle-path" fill="#8FACBF" x="77.77" y="173.77" width="70.26" height="152.63"/>
+ <rect id="Rectangle-path" fill="#8FACBF" x="164.31" y="93.91" width="70.26" height="232.49"/>
+ <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="199.44" y="93.63" width="35.13" height="232.77"/>
+ <rect id="Rectangle-path" fill="#8FACBF" x="250.85" y="133.98" width="70.26" height="192.42"/>
+ <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="113.46" y="173.77" width="34.57" height="152.63"/>
+ <rect id="Rectangle-path" fill="#485566" opacity="0.08" x="286.26" y="133.7" width="34.78" height="192.7"/>
+ <path d="M202.09 250.09L182.96 263.72 171.06 253.5C170.5 254.26 169.95 255.1 169.46 255.93L164.31 252.66 164.31 266.71 166.75 268.31C167.72 279.37 176.9 288 188.17 288 200.07 288 209.74 278.33 209.74 266.43 209.74 262.89 208.9 259.62 207.37 256.7L234.5 215.51 234.5 193.95 200.14 245.98 202.09 250.09 202.09 250.09Z" id="Shape" fill="#647A88" opacity="0.4"/>
+ <path d="M306.23 208L305.39 200C304.42 201.04 303.58 202.09 302.82 203.27L274.5 181.63C275.34 180.38 276.03 179.06 276.66 177.67L260.17 166.19 250.78 166.19 250.78 189.91C252.73 190.47 254.75 190.82 256.83 190.82 259.69 190.82 262.4 190.26 264.9 189.22L299.48 215.65C300.03 226.99 309.29 236.03 320.77 236.17L320.77 210.43 306.23 208 306.23 208Z" id="Shape" fill="#647A88" opacity="0.4"/>
+ <path d="M128.35 221.01L89.39 222.4 87.03 221.15C87.65 223.23 88.56 225.11 89.67 226.85L77.77 238.75 77.77 255.51 98.71 234.64C101.43 235.9 104.42 236.59 107.62 236.59 110.75 236.59 113.74 235.9 116.45 234.64L147.97 254.75 147.97 240.7 125.77 226.57C126.89 224.83 127.72 222.96 128.35 221.01L128.35 221.01Z" id="Shape" fill="#647A88" opacity="0.4"/>
+ <path d="M320.83 221.01L255.17 171.13 187.2 269.01 102.89 212.66 21.84 289.81C54.75 354.99 122.23 399.72 200.21 399.72 310.54 399.72 399.93 310.33 399.93 200 399.93 171.34 393.81 144.07 382.96 119.44L320.83 221.01 320.83 221.01Z" id="Shape" fill="#FFFFFF" opacity="0.17"/>
+ <path d="M378.71 110.4L319.44 206.12 252.45 154.92 186.43 254.96 104 202.43 20.03 286.12C21.84 289.88 23.79 293.57 25.81 297.11L105.67 217.53 189.98 271.23 255.37 172.03 322.64 223.44 384.63 123.27C382.82 118.96 380.87 114.64 378.71 110.4L378.71 110.4Z" id="Shape" fill="#647A88"/>
+ <ellipse id="Oval" fill="#FFFFFF" cx="188.17" cy="262.47" rx="17.53" ry="17.53"/>
+ <ellipse id="Oval" fill="#FFFFFF" cx="107.62" cy="212.66" rx="17.53" ry="17.53"/>
+ <path d="M107.62 195.2L107.62 230.19C117.29 230.19 125.15 222.33 125.15 212.66 125.15 202.99 117.29 195.2 107.62 195.2L107.62 195.2Z" id="Shape" fill="#F0F3F4"/>
+ <path d="M188.17 244.94L188.17 279.93C197.84 279.93 205.7 272.07 205.7 262.4 205.7 252.8 197.84 244.94 188.17 244.94L188.17 244.94Z" id="Shape" fill="#F0F3F4"/>
+ <ellipse id="Oval" fill="#FFFFFF" cx="256.9" cy="167.3" rx="17.53" ry="17.53"/>
+ <path d="M256.9 149.84L256.9 184.83C266.57 184.83 274.43 176.97 274.43 167.3 274.43 157.63 266.57 149.84 256.9 149.84L256.9 149.84Z" id="Shape" fill="#F0F3F4"/>
+ <ellipse id="Oval" fill="#FFFFFF" cx="321.04" cy="212.66" rx="17.53" ry="17.53"/>
+ <path d="M320.83 195.2L320.83 230.19C330.5 230.19 338.37 222.33 338.37 212.66 338.37 202.99 330.5 195.2 320.83 195.2L320.83 195.2Z" id="Shape" fill="#F0F3F4"/>
+ </g>
+ </g>
+</svg>
diff --git a/plugins/jetpack/images/themes.svg b/plugins/jetpack/images/themes.svg
index 0ed5e767..fa9e2295 100644
--- a/plugins/jetpack/images/themes.svg
+++ b/plugins/jetpack/images/themes.svg
@@ -1 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1562.02 968.34"> <path d="M1025.39 422.63v304h186.89V403.28h-167.54a19.34 19.34 0 0 0-19.35 19.35z" fill="none"/><path d="M937.22 214.55v-66.48H732.67c1.43 2.42 2.76 4.91 4 7.46a97.51 97.51 0 0 1-45.91 129.77l-1.12.53-1.7.78a103.66 103.66 0 0 1-12.4 4.49l-1.95.52c-.74.19-1.49.39-2.24.57q-1.71.41-3.44.76c-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29 97.48 97.48 0 0 1-78.41-138.84c1.22-2.55 2.55-5 4-7.46H352.13v345.3c30.68.61 91.09-10.69 91.91 17.83v-102.7h395.1v122.07c31.53-.25 63.17 7.34 94.57 2.12a2.54 2.54 0 0 1 3 1.87c3.06 18.42 15.24 184.72 16.49 201.18 1.13 15 3.61 29.66.47 44.63a2.57 2.57 0 0 1-2.49 1.75c-11.26.59-22.59 2.08-33.86 2-10.57 0-50.89-1.13-53.77-2.15-3.56-1.26-20.91 2.91-29.77 3.48-8.49.54-42.08 2.8-50.36 3-10.37.2-21.3-.12-21.55-10.11-.14-5.61-5.37-46-4.63-51.76h-310c0 1.3-64.18-.14-95-.4v91.12H1276V214.55zm275.06 512h-186.89v-304a19.34 19.34 0 0 1 19.34-19.34h167.55z" fill="#F6F6F6"/><path d="M736.65 155.53c-1.22-2.55-2.55-5-4-7.46a99.35 99.35 0 0 0-3.57-5.64 97.45 97.45 0 0 0-160.89 0c-1.26 1.84-2.45 3.74-3.59 5.67-1.43 2.42-2.76 4.91-4 7.46a97.48 97.48 0 0 0 78.42 138.82 45.49 45.49 0 0 1 4.29-20.29c4.75-10.25 11.85-15.85 17.3-13.66 3.44 1.4 3.76 6.1 4.33 14.63.36 5.22 1 14.32 3 17.89q1.73-.35 3.44-.76c.75-.18 1.49-.37 2.24-.57l1.95-.52a103.66 103.66 0 0 0 12.4-4.49l1.7-.78 1.12-.53a97.51 97.51 0 0 0 45.91-129.77z" fill="#D8DEE4"/><path d="M1212.02 404.03h-167.53a19.34 19.34 0 0 0-19.34 19.34v304h186.87z" fill="none"/><path fill="#6F93AD" d="M936.97 71.05V215.3H1327.68V71.05H936.97z"/><path d="M379.27 635.72l52-.38 3.78 41.27-42.35-3.82s-16.82-3.37-13.43-37.07z" fill="#F6F6F6"/><path d="M368.35 155.53h-16.79a6.71 6.71 0 0 1-6.71-6.71v-16.79a6.715 6.715 0 1 1 13.43 0v10.07h10.07a6.715 6.715 0 0 1 0 13.43zM351.57 104.59a6.71 6.71 0 0 1-6.71-6.71V63.72a6.715 6.715 0 0 1 13.43 0v34.16a6.71 6.71 0 0 1-6.72 6.71zm9.13-66.52a6.71 6.71 0 0 1-5.59-10.43 61.47 61.47 0 0 1 29.41-23.59 6.714 6.714 0 1 1 4.8 12.54 48.88 48.88 0 0 0-23 18.48 6.7 6.7 0 0 1-5.62 3zm905.71-.17a6.7 6.7 0 0 1-5.59-3 48.78 48.78 0 0 0-23.09-18.39 6.714 6.714 0 0 1 4.75-12.56 61.51 61.51 0 0 1 29.51 23.47 6.71 6.71 0 0 1-5.57 10.45zm-60-24.48h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.1a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 1 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 1 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.07a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0H762.3a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 1 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 1 1 0 13.43zm-68.32 0h-34.17a6.715 6.715 0 1 1 0-13.43h34.17a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43z" fill="#E1E2E2"/><path d="M838.89 783.14s-4.79 103.66-20.35 167.09l-91.65 1.2s-7.35-4.68 2.39-9.57c10.22-5.13 37.63-10.63 40.69-16.76 6-12 3.59-135.24 3.59-135.24M874.53 786.28s4.79 96.94 20.35 160.37l80.14 1.23s7.35-4.68-2.39-9.57c-10.22-5.13-37.63-10.63-40.69-16.76-6-12 11.69-142 11.69-142" fill="#B0B5B8"/><path d="M671.58 296.59s2.15 1.76 2.95-5.22a96.8 96.8 0 0 1-9.45 2.1c1.38 2.74 3.42 4.15 6.5 3.12z" fill="none"/><path d="M671.58 296.59c-3.08 1-5.12-.39-6.51-3.12a98.07 98.07 0 0 1-16.43 1.39c-2 0-3.92-.07-5.86-.18.71 10.87 6.35 22.22 21.32 30l10.92 5.91 18.25-11.25c1.85-15.18-1.32-26.11-4.73-33a96.7 96.7 0 0 1-14 5c-.8 7.02-2.96 5.25-2.96 5.25z" fill="#B0B5B8"/><path d="M665.08 293.47c-4.26-8.42-2.32-29.41-5.46-30.69-5.95-2.42-18 14.09-16.83 31.89 1.94.11 3.89.18 5.86.18a98.07 98.07 0 0 0 16.43-1.38z" fill="#B0B5B8"/><path d="M912.8 640.41a3.36 3.36 0 0 1-.35-6.69l37.1-4a3.36 3.36 0 1 1 .72 6.67l-37.1 4z" fill="#6F93AD"/><path d="M938.49 660.28a24.39 24.39 0 0 1-17.25-6.64 18.91 18.91 0 0 1-6-14.79 3.21 3.21 0 0 1 3.55-3.15 3.35 3.35 0 0 1 3.15 3.55 12.26 12.26 0 0 0 4 9.57 18.38 18.38 0 0 0 14.33 4.73l6.47-1.8a3.355 3.355 0 0 1 1.74 6.48l-7 1.9c-1.05.1-2.02.15-2.99.15z" fill="#6F93AD"/><path d="M753.59 438.56a3.36 3.36 0 0 1-1.38-6.42l29-13a3.36 3.36 0 1 1 2.75 6.12l-29 13a3.32 3.32 0 0 1-1.37.3z" fill="#204A69"/><path d="M789.68 239.5c.17 4 1.34 7 2.68 7.81.92.57 2.35-.09 3.47-.81q-.24-2.52-.3-5.06zM793.47 228.25a9.56 9.56 0 0 0-3 4.43l5.24 1.75c.16-2.17.43-4.32.79-6.45a3.31 3.31 0 0 1-1-.72 4.74 4.74 0 0 0-2.03.99z" fill="none"/><path d="M823.72 274.13a20.24 20.24 0 0 1-10.18-17.25l1-9.1-12.14-4a64.44 64.44 0 0 0 1.22 9.25c3.32 15.85 7.25 28.2 24.71 31a3.37 3.37 0 0 1 2.81 2.92l2.16 18.43a3.37 3.37 0 0 1-2.94 3.73h-.4a3.34 3.34 0 0 1-2.14-.78v8.46l42 2.24v-37.55a24.54 24.54 0 0 1-5.72 2.1c-17.57 4.04-31.3-4.34-40.38-9.45zM859.77 247.88l-10.75-29s-14.32-8-27.77-7.19c6.9 16.1 21.03 31.8 38.52 36.19zM804.02 224.64a62.57 62.57 0 0 0-1.69 12l12.91 4.3 1.53-14.5s-7.75.95-12.75-1.8z" fill="#B0B5B8"/><path d="M885.2 245.81a40.09 40.09 0 0 1-25.43 2c-17.49-4.36-31.61-20.06-38.5-36.2-3.84-9-5.43-18.16-4.09-25.55-6.69 5.25-12.38 13.71-16.59 26.57a18.47 18.47 0 0 0-.66 2.65c-.72 1.84-1.33 3.72-1.87 5.64a7.23 7.23 0 0 0-4-.26c-4.5 1-9.8 5.64-10.81 13.69-.81 6.49.17 15.26 5.63 18.63a8.18 8.18 0 0 0 4.33 1.21 10.19 10.19 0 0 0 3.69-.74c.06.28.1.57.16.85 3.44 16.44 8.2 31.53 27.7 35.78l1.87 16a3.39 3.39 0 0 0 3.33 3h.4a3.37 3.37 0 0 0 2.94-3.73l-2.16-18.43a3.37 3.37 0 0 0-2.81-2.92c-17.45-2.8-21.38-15.15-24.71-31a64.44 64.44 0 0 1-1.22-9.25l12.14 4-1 9.1a20.24 20.24 0 0 0 10.18 17.25c9.08 5.11 22.81 13.49 40.3 9.45a24.54 24.54 0 0 0 5.72-2.1c11.87-6.1 18.57-21.52 20.71-38.28a40.64 40.64 0 0 1-5.25 2.64zm-92.84 1.5c-1.34-.83-2.51-3.81-2.68-7.81l5.85 1.95q.06 2.53.3 5.06c-1.12.71-2.55 1.37-3.47.81zm3.34-12.89l-5.24-1.75a9.56 9.56 0 0 1 3-4.43 4.74 4.74 0 0 1 2-1 3.31 3.31 0 0 0 1 .72c-.34 2.14-.6 4.3-.76 6.47zm19.52 6.5l-12.91-4.3a62.57 62.57 0 0 1 1.69-12c5 2.75 12.75 1.79 12.75 1.79z" fill="#204A69"/><path d="M827.5 172.15c-5.88 2.56-9.17 7.61-10.32 13.94-4.83 26.63 28.33 76.05 68 59.72a40.64 40.64 0 0 0 5.24-2.61c39.47-23.32-15.1-91.88-62.92-71.05z" fill="#BBC9D5"/><path d="M275.36 622.55h150.18a8.52 8.52 0 0 0 8.52-8.89l-4.28-99.89a6.41 6.41 0 0 0-6.42-6.15H273.42l2 101.93" fill="#969CA1" opacity=".26"/><path d="M434.41 676.65c-2.76-16-4.06-32-5.43-48.07l-.8-12.05-.4-6-.1-1.51a14.89 14.89 0 0 1 0-2 8.56 8.56 0 0 1 1.94-4.75 10.8 10.8 0 0 1 8-3.8l6.15-.07 12.08-.07 12.08.12 6.15.07a10.76 10.76 0 0 1 8 3.78 8.47 8.47 0 0 1 1.92 4.72l.15 3.1.28 6 .52 12.07c.57 16.1 1.08 32.19.8 48.34a1.35 1.35 0 0 1-2.68.15c-2.1-16-3.41-32.06-4.67-48.12l-.85-12-.4-6-.2-2.93a1.39 1.39 0 0 0-.37-.76 3.69 3.69 0 0 0-2.7-1.08l-5.92.05-12.08.12-12.08-.07h-5.92a3.64 3.64 0 0 0-2.66 1.06 1.39 1.39 0 0 0-.37.73v1l.07 1.51.28 6 .57 12.06c.45 16.1 1 32.2 0 48.38a.68.68 0 0 1-1.34.08z" fill="#CCCED0"/><path fill="#F6F6F6" d="M471.79 657.89l-2.51-44.33h-26.31l2.51 44.27 26.31.06z"/><path fill="#fff" d="M392.72 701.82h36.26"/><path d="M392.73 701.14a21.59 21.59 0 0 1 9.06-2.71 83.69 83.69 0 0 1 9.06-.42c3 .08 6 .26 9.06.51a34.08 34.08 0 0 1 9.06 2 1.44 1.44 0 0 1 0 2.68 34.08 34.08 0 0 1-9.06 2c-3 .25-6 .44-9.06.51a83.69 83.69 0 0 1-9.06-.42 21.59 21.59 0 0 1-9.06-2.71.78.78 0 0 1-.28-1.06.8.8 0 0 1 .28-.38zM424.36 671.45c-17.22-1.19-34.44-1.6-51.66-1.94l-25.83-.28-12.92-.12-6.46-.06a18 18 0 0 1-5.17-.89 16.73 16.73 0 0 1-11.49-16.09l-.16-17.54c-2.3-.12-4.6-.15-6.9-.15l-.16 17.7a24 24 0 0 0 16.34 23.3 25.54 25.54 0 0 0 7.53 1.15l6.46-.06 12.92-.12 25.83-.28c17.22-.34 34.44-.74 51.66-1.94a1.35 1.35 0 0 0 0-2.69z" fill="#F6F6F6"/><path d="M399.49 671.45c-8.58-1.15-15.3-7.64-16.55-15.28-.52-3.45-.09-8.55-.11-13l.17-9.79h-7.46l.17 9.79c.28 4.67-.32 8.81.82 14.38a22.45 22.45 0 0 0 8.62 12.8 20.63 20.63 0 0 0 14.34 3.78 1.38 1.38 0 0 0 1.18-1.18 1.35 1.35 0 0 0-1.18-1.5z" fill="#F6F6F6"/><path d="M432.02 631.39a19.45 19.45 0 0 1-5.57.7h-5.27c-28.24.05-56.47.45-84.71.69-30.47.46-60.93 1.09-91.4 2.05a.67.67 0 0 0 0 1.34c30.47 1 60.93 1.59 91.4 2.05 30.47.26 60.93.72 91.4.71h.15a3.45 3.45 0 0 0 .65-.09 27.44 27.44 0 0 0 3.36-.4z" fill="#CCCED0"/><path d="M450.29 594.24l-2.43-61.2-.61-15.3c-.15-2.7-.09-4.75-.44-8a21.85 21.85 0 0 0-18.16-18.52 36.58 36.58 0 0 0-6.11-.28 3.76 3.76 0 0 0-.72-.07l-159 .55-9.94.09a16.26 16.26 0 0 0-11.19 3.89 15.82 15.82 0 0 0-5.41 10.68c-.07 3.91.13 6.79.18 10.23l1 39.73c.59 26.49 1.48 53 2.47 79.45a1.34 1.34 0 0 0 2.68 0c.11-26.5.14-53-.15-79.49l-.29-39.74c0-3.18-.1-6.93 0-9.63a9.79 9.79 0 0 1 3.47-6.54 10 10 0 0 1 7.22-2.24h3.91l1.63 55c.48 19.37 1.43 38.74 2.16 58.1a1.34 1.34 0 0 0 2.68-.05c0-19.38.13-38.77-.16-58.14l-.56-54.84h.27l155.34.54.13-.07h2.09a54.42 54.42 0 0 1 7 .23 14.2 14.2 0 0 1 9.76 6.53 14 14 0 0 1 2 5.63c.2 1.84.24 4.9.38 7.29l.7 15.29 1.41 30.59 1.41 30.59.28 6.14a47.87 47.87 0 0 1 7.11.15z" fill="#CCCED0"/><path d="M434.41 676.65c-2.76-16-4.06-32-5.43-48.07l-.8-12.05-.4-6-.1-1.51a14.89 14.89 0 0 1 0-2 8.56 8.56 0 0 1 1.94-4.75 10.8 10.8 0 0 1 8-3.8l6.15-.07 12.08-.07 12.08.12 6.15.07a10.76 10.76 0 0 1 8 3.78 8.47 8.47 0 0 1 1.92 4.72l.15 3.1.28 6 .52 12.07c.57 16.1 1.08 32.19.8 48.34a1.35 1.35 0 0 1-2.68.15c-2.1-16-3.41-32.06-4.67-48.12l-.85-12-.4-6-.2-2.93a1.39 1.39 0 0 0-.37-.76 3.69 3.69 0 0 0-2.7-1.08l-5.92.05-12.08.12-12.08-.07h-5.92a3.64 3.64 0 0 0-2.66 1.06 1.39 1.39 0 0 0-.37.73v1l.07 1.51.28 6 .57 12.06c.45 16.1 1 32.2 0 48.38a.68.68 0 0 1-1.34.08z" fill="#CCCED0"/><path fill="#F6F6F6" d="M471.79 657.89l-2.51-44.33h-26.31l2.51 44.27 26.31.06z"/><path fill="#fff" d="M392.72 701.82h36.26"/><path d="M392.73 701.14a21.59 21.59 0 0 1 9.06-2.71 83.69 83.69 0 0 1 9.06-.42c3 .08 6 .26 9.06.51a34.08 34.08 0 0 1 9.06 2 1.44 1.44 0 0 1 0 2.68 34.08 34.08 0 0 1-9.06 2c-3 .25-6 .44-9.06.51a83.69 83.69 0 0 1-9.06-.42 21.59 21.59 0 0 1-9.06-2.71.78.78 0 0 1-.28-1.06.8.8 0 0 1 .28-.38zM1.31 959.39c129.84-3.7 259.68-4.48 389.52-5.4l389.52-.85c259.68.81 519.36.35 779 4.91a2.69 2.69 0 0 1 0 5.37c-259.68 4.56-519.36 4.1-779 4.91l-389.52-.85c-129.84-.92-259.68-1.7-389.52-5.4a1.34 1.34 0 0 1 0-2.68z" fill="#F6F6F6"/><path d="M774.83 917.1a3.36 3.36 0 0 1-3.21-4.33c4.87-16 2.75-48.59.71-80-1-15.5-2-30.14-2.1-42.83a3.36 3.36 0 0 1 3.32-3.4 3.36 3.36 0 0 1 3.36 3.32c.14 12.51 1.09 27.07 2.09 42.47 2.09 32.06 4.24 65.22-1 82.44a3.36 3.36 0 0 1-3.17 2.33zM894.87 950a3.35 3.35 0 0 1-3.31-2.86c-.12-.81-12.12-81.19-20.37-160.52a3.36 3.36 0 1 1 6.67-.7c8.24 79.19 20.21 159.42 20.33 160.22a3.36 3.36 0 0 1-2.82 3.82 3.27 3.27 0 0 1-.5.04z" fill="#204A69"/><path d="M1268.93 70.38V63.5a6.715 6.715 0 0 1 13.43 0v7.38" fill="#E1E2E2"/><path d="M1041.27 215.38v-1.72a26.28 26.28 0 0 1-8.95 4.54s7.5-27.34-.45-29.17-38.4 52.06-38.4 52.06l11 26.43s11.83-10.63 49.88-30.13c8.64-8.13 13.71-15.59 16.29-22z" fill="#B0B5B8"/><path d="M1025.14 255.67a3.36 3.36 0 0 1 0-6.71c3.78-.14 30-13.82 42.82-38.15a3.36 3.36 0 1 1 5.94 3.13c-13.37 25.33-41.88 41.73-48.76 41.73zM1004.49 234.13a3.36 3.36 0 0 1-2.22-5.87c2.76-2.45 7.26-11.57 11.23-19.61 8.05-16.3 11.8-23 16.48-23.58a4.9 4.9 0 0 1 4.44 1.78c4.62 5.4 3.46 18.48 2.22 26.39 2.84-1.22 6-3.06 7.75-5.51a3.36 3.36 0 1 1 5.47 3.89c-5.18 7.26-16.36 9.76-16.83 9.86a3.36 3.36 0 0 1-4-4c1.66-7.7 2.93-20 1.06-24.9-2.73 3.15-7.36 12.54-10.58 19-4.66 9.44-9.05 18.35-12.81 21.66a3.31 3.31 0 0 1-2.21.89z" fill="#204A69"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24zM659.61 262.78c3.14 1.27 1.2 22.27 5.46 30.69.95-.16 1.89-.34 2.83-.53-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29c1.24.12 2.48.23 3.74.3-1.11-17.79 10.95-34.3 16.89-31.89z" fill="none"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24z" fill="none"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24zM671.35 292.18l2.24-.57c-.75.2-1.49.39-2.24.57zM690.75 285.3l-1.12.53z" fill="none"/><path d="M434.32 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM500.28 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM830.1 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM929.02 142.11a6.715 6.715 0 1 0 0 13.43h8v-13.43zM896.02 136.46h-33a6.715 6.715 0 0 0 0 13.43h33a6.715 6.715 0 0 0 0-13.43zM566.24 142.11h-33a6.715 6.715 0 0 0 0 13.43h27.37a97.31 97.31 0 0 1 7.57-13.14 6.72 6.72 0 0 0-1.94-.29zM764.13 142.11h-33a6.71 6.71 0 0 0-2.05.32 97.32 97.32 0 0 1 7.55 13.11h27.48a6.715 6.715 0 1 0 0-13.43z" fill="#E1E2E2"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24z" fill="none"/><path d="M673.59 291.61l-2.24.57c-.16 1-.49 1.78-1.08 2-.92.31-1.21.1-1.35 0a3.51 3.51 0 0 1-1-1.23c-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29c.39 12.48 6.62 25.37 23.26 34.07a3.4 3.4 0 0 0 1.55.38 3.36 3.36 0 0 0 1.55-6.33c-23.86-12.47-20.37-32.83-17.76-41 2.86-9 7.67-13.76 9.75-14.69a83.07 83.07 0 0 1 .87 8.7c.65 9.63 1.39 20.54 6.92 24.25a7.94 7.94 0 0 0 7.21.78c4.91-1.64 5.87-5.42 5.78-10.24-.57.2-1.57.5-2.65.8l-1 .28z" fill="#204A69"/><path d="M674.53 291.37l1-.28-1.95.52zM688.54 286.34l-.61.27c-1.23.56-2.56 1.13-3.32 1.39a57.89 57.89 0 0 1 4.6 24 3.36 3.36 0 0 0 3.31 3.4 3.36 3.36 0 0 0 3.36-3.31 66.28 66.28 0 0 0-5.19-26.75l-1.12.53z" fill="#204A69"/><path d="M689.63 285.83l-1.7.78.61-.27z" fill="#204A69"/><path d="M790.14 793.46c-11.43 0-21.7-1.43-27.18-5.63a11.37 11.37 0 0 1-4.7-8.56c-.17-3-.55-7.36-1-12.93-3-34.13-10-114 4.45-204.92a3.36 3.36 0 0 1 6.64 1c-14.33 90.06-7.37 169.4-4.39 203.28.5 5.66.89 10.09 1.06 13.15a4.69 4.69 0 0 0 2.09 3.6c11.59 8.87 57.88 1.65 74.75-1.89a3.36 3.36 0 0 1 1.38 6.57c-4.37.95-30.92 6.33-53.1 6.33zM886.22 788.54c-12.44 0-22.94-1.1-27.65-4.25-10.39-6.93-8.37-101.49-7-141.83a3.18 3.18 0 0 1 3.47-3.25 3.37 3.37 0 0 1 3.25 3.47c-2.09 62.26-1.09 130.21 4.2 136.16 9.2 6.1 58.16 1.8 88.94-2.62l-5.81-102.27a3.36 3.36 0 0 1 3.16-3.54 3.19 3.19 0 0 1 3.54 3.16l6 105.34a3.36 3.36 0 0 1-2.85 3.51c-5.76.86-42.12 6.12-69.25 6.12zM944.16 622.06a3.35 3.35 0 0 1-3.34-3.09l-7.19-88.58a3.356 3.356 0 1 1 6.69-.54l7.19 88.58a3.36 3.36 0 0 1-3.08 3.61z" fill="#6F93AD"/><path d="M1033.97 260.88l-32.31-33.51c-15.78 31.57-62.67 78.58-98.1 87.42-.81-.32-1.63-.64-2.49-1-11.37-4.19-76.46-8.61-92-2-10 4.25-16.9 7.49-21.52 11.79-30.74 24.06-50 44.9-50 44.9l-37.53-58.6-33.51 23.94s28.72 105.32 73 102.93a107.17 107.17 0 0 0 41.78-11.27l3.7 105.84 148.35-2.55-3.6-151.61c55.28-28.02 104.23-116.28 104.23-116.28z" fill="#BBC9D5"/><path d="M778.22 535.05a3.36 3.36 0 0 1 0-6.71l158.76-1.57a3.23 3.23 0 0 1 3.39 3.32 3.36 3.36 0 0 1-3.32 3.39l-158.76 1.57zM753.59 438.56a3.36 3.36 0 0 1-1.38-6.42l29-13a3.36 3.36 0 1 1 2.75 6.12l-29 13a3.32 3.32 0 0 1-1.37.3z" fill="#204A69"/><path d="M606.77 729.64h-.48l-96.46 1.48-97.41 1-195.87.76a3.72 3.72 0 0 1-3.73-3.7l-.07-54.71a3.79 3.79 0 0 1 3.78-3.8l194.63.42 194.63 1.45a1.9 1.9 0 0 1 1.89 1.92zm-1.9-.95v-.47l-1-53.76 1.93 1.93-194.63 1.49-194.63.42 3.8-3.8-.07 54.71-3.73-3.73 193.41.76 97.22 1z" fill="#CCCED0"/><path fill="#fff" d="M216.54 709.01v238.84"/><path d="M217.21 709.01c1.85 19.9 2.24 39.81 2.7 59.71l.42 59.71c-.4 39.8-.17 79.61-2.46 119.42a1.35 1.35 0 0 1-2.69 0c-2.28-39.8-2.05-79.61-2.45-119.42l.42-59.71c.46-19.9.85-39.8 2.7-59.71a.67.67 0 0 1 1.34 0z" fill="#CCCED0"/><path fill="#fff" d="M605.81 729.17v218.68"/><path d="M606.48 729.17c1.85 18.22 2.24 36.45 2.7 54.67l.42 54.67c-.4 36.45-.17 72.89-2.45 109.34a1.35 1.35 0 0 1-2.69 0c-2.28-36.45-2.05-72.89-2.46-109.34l.43-54.67c.46-18.22.85-36.45 2.7-54.67a.67.67 0 0 1 1.34 0z" fill="#CCCED0"/></svg>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1562.02 968.34"> <path d="M1025.39 422.63v304h186.89V403.28h-167.54a19.34 19.34 0 0 0-19.35 19.35z" fill="none"/><path d="M937.22 214.55v-66.48H732.67c1.43 2.42 2.76 4.91 4 7.46a97.51 97.51 0 0 1-45.91 129.77l-1.12.53-1.7.78a103.66 103.66 0 0 1-12.4 4.49l-1.95.52c-.74.19-1.49.39-2.24.57q-1.71.41-3.44.76c-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29 97.48 97.48 0 0 1-78.41-138.84c1.22-2.55 2.55-5 4-7.46H352.13v345.3c30.68.61 91.09-10.69 91.91 17.83v-102.7h395.1v122.07c31.53-.25 63.17 7.34 94.57 2.12a2.54 2.54 0 0 1 3 1.87c3.06 18.42 15.24 184.72 16.49 201.18 1.13 15 3.61 29.66.47 44.63a2.57 2.57 0 0 1-2.49 1.75c-11.26.59-22.59 2.08-33.86 2-10.57 0-50.89-1.13-53.77-2.15-3.56-1.26-20.91 2.91-29.77 3.48-8.49.54-42.08 2.8-50.36 3-10.37.2-21.3-.12-21.55-10.11-.14-5.61-5.37-46-4.63-51.76h-310c0 1.3-64.18-.14-95-.4v91.12H1276V214.55zm275.06 512h-186.89v-304a19.34 19.34 0 0 1 19.34-19.34h167.55z" fill="#F6F6F6"/><path d="M736.65 155.53c-1.22-2.55-2.55-5-4-7.46a99.35 99.35 0 0 0-3.57-5.64 97.45 97.45 0 0 0-160.89 0c-1.26 1.84-2.45 3.74-3.59 5.67-1.43 2.42-2.76 4.91-4 7.46a97.48 97.48 0 0 0 78.42 138.82 45.49 45.49 0 0 1 4.29-20.29c4.75-10.25 11.85-15.85 17.3-13.66 3.44 1.4 3.76 6.1 4.33 14.63.36 5.22 1 14.32 3 17.89q1.73-.35 3.44-.76c.75-.18 1.49-.37 2.24-.57l1.95-.52a103.66 103.66 0 0 0 12.4-4.49l1.7-.78 1.12-.53a97.51 97.51 0 0 0 45.91-129.77z" fill="#D8DEE4"/><path d="M1212.02 404.03h-167.53a19.34 19.34 0 0 0-19.34 19.34v304h186.87z" fill="none"/><path fill="#6F93AD" d="M936.97 71.05V215.3H1327.68V71.05H936.97z"/><path d="M379.27 635.72l52-.38 3.78 41.27-42.35-3.82s-16.82-3.37-13.43-37.07z" fill="#F6F6F6"/><path d="M368.35 155.53h-16.79a6.71 6.71 0 0 1-6.71-6.71v-16.79a6.715 6.715 0 1 1 13.43 0v10.07h10.07a6.715 6.715 0 0 1 0 13.43zM351.57 104.59a6.71 6.71 0 0 1-6.71-6.71V63.72a6.715 6.715 0 0 1 13.43 0v34.16a6.71 6.71 0 0 1-6.72 6.71zm9.13-66.52a6.71 6.71 0 0 1-5.59-10.43 61.47 61.47 0 0 1 29.41-23.59 6.714 6.714 0 1 1 4.8 12.54 48.88 48.88 0 0 0-23 18.48 6.7 6.7 0 0 1-5.62 3zm905.71-.17a6.7 6.7 0 0 1-5.59-3 48.78 48.78 0 0 0-23.09-18.39 6.714 6.714 0 0 1 4.75-12.56 61.51 61.51 0 0 1 29.51 23.47 6.71 6.71 0 0 1-5.57 10.45zm-60-24.48h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.1a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 1 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 1 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.07a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0H762.3a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.32 0h-34.16a6.715 6.715 0 1 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 1 1 0 13.43zm-68.32 0h-34.17a6.715 6.715 0 1 1 0-13.43h34.17a6.715 6.715 0 0 1 0 13.43zm-68.33 0h-34.16a6.715 6.715 0 0 1 0-13.43h34.16a6.715 6.715 0 0 1 0 13.43z" fill="#E1E2E2"/><path d="M838.89 783.14s-4.79 103.66-20.35 167.09l-91.65 1.2s-7.35-4.68 2.39-9.57c10.22-5.13 37.63-10.63 40.69-16.76 6-12 3.59-135.24 3.59-135.24M874.53 786.28s4.79 96.94 20.35 160.37l80.14 1.23s7.35-4.68-2.39-9.57c-10.22-5.13-37.63-10.63-40.69-16.76-6-12 11.69-142 11.69-142" fill="#B0B5B8"/><path d="M671.58 296.59s2.15 1.76 2.95-5.22a96.8 96.8 0 0 1-9.45 2.1c1.38 2.74 3.42 4.15 6.5 3.12z" fill="none"/><path d="M671.58 296.59c-3.08 1-5.12-.39-6.51-3.12a98.07 98.07 0 0 1-16.43 1.39c-2 0-3.92-.07-5.86-.18.71 10.87 6.35 22.22 21.32 30l10.92 5.91 18.25-11.25c1.85-15.18-1.32-26.11-4.73-33a96.7 96.7 0 0 1-14 5c-.8 7.02-2.96 5.25-2.96 5.25z" fill="#B0B5B8"/><path d="M665.08 293.47c-4.26-8.42-2.32-29.41-5.46-30.69-5.95-2.42-18 14.09-16.83 31.89 1.94.11 3.89.18 5.86.18a98.07 98.07 0 0 0 16.43-1.38z" fill="#B0B5B8"/><path d="M912.8 640.41a3.36 3.36 0 0 1-.35-6.69l37.1-4a3.36 3.36 0 1 1 .72 6.67l-37.1 4z" fill="#6F93AD"/><path d="M938.49 660.28a24.39 24.39 0 0 1-17.25-6.64 18.91 18.91 0 0 1-6-14.79 3.21 3.21 0 0 1 3.55-3.15 3.35 3.35 0 0 1 3.15 3.55 12.26 12.26 0 0 0 4 9.57 18.38 18.38 0 0 0 14.33 4.73l6.47-1.8a3.355 3.355 0 0 1 1.74 6.48l-7 1.9c-1.05.1-2.02.15-2.99.15z" fill="#6F93AD"/><path d="M753.59 438.56a3.36 3.36 0 0 1-1.38-6.42l29-13a3.36 3.36 0 1 1 2.75 6.12l-29 13a3.32 3.32 0 0 1-1.37.3z" fill="#204A69"/><path d="M789.68 239.5c.17 4 1.34 7 2.68 7.81.92.57 2.35-.09 3.47-.81q-.24-2.52-.3-5.06zM793.47 228.25a9.56 9.56 0 0 0-3 4.43l5.24 1.75c.16-2.17.43-4.32.79-6.45a3.31 3.31 0 0 1-1-.72 4.74 4.74 0 0 0-2.03.99z" fill="none"/><path d="M823.72 274.13a20.24 20.24 0 0 1-10.18-17.25l1-9.1-12.14-4a64.44 64.44 0 0 0 1.22 9.25c3.32 15.85 7.25 28.2 24.71 31a3.37 3.37 0 0 1 2.81 2.92l2.16 18.43a3.37 3.37 0 0 1-2.94 3.73h-.4a3.34 3.34 0 0 1-2.14-.78v8.46l42 2.24v-37.55a24.54 24.54 0 0 1-5.72 2.1c-17.57 4.04-31.3-4.34-40.38-9.45zM859.77 247.88l-10.75-29s-14.32-8-27.77-7.19c6.9 16.1 21.03 31.8 38.52 36.19zM804.02 224.64a62.57 62.57 0 0 0-1.69 12l12.91 4.3 1.53-14.5s-7.75.95-12.75-1.8z" fill="#B0B5B8"/><path d="M885.2 245.81a40.09 40.09 0 0 1-25.43 2c-17.49-4.36-31.61-20.06-38.5-36.2-3.84-9-5.43-18.16-4.09-25.55-6.69 5.25-12.38 13.71-16.59 26.57a18.47 18.47 0 0 0-.66 2.65c-.72 1.84-1.33 3.72-1.87 5.64a7.23 7.23 0 0 0-4-.26c-4.5 1-9.8 5.64-10.81 13.69-.81 6.49.17 15.26 5.63 18.63a8.18 8.18 0 0 0 4.33 1.21 10.19 10.19 0 0 0 3.69-.74c.06.28.1.57.16.85 3.44 16.44 8.2 31.53 27.7 35.78l1.87 16a3.39 3.39 0 0 0 3.33 3h.4a3.37 3.37 0 0 0 2.94-3.73l-2.16-18.43a3.37 3.37 0 0 0-2.81-2.92c-17.45-2.8-21.38-15.15-24.71-31a64.44 64.44 0 0 1-1.22-9.25l12.14 4-1 9.1a20.24 20.24 0 0 0 10.18 17.25c9.08 5.11 22.81 13.49 40.3 9.45a24.54 24.54 0 0 0 5.72-2.1c11.87-6.1 18.57-21.52 20.71-38.28a40.64 40.64 0 0 1-5.25 2.64zm-92.84 1.5c-1.34-.83-2.51-3.81-2.68-7.81l5.85 1.95q.06 2.53.3 5.06c-1.12.71-2.55 1.37-3.47.81zm3.34-12.89l-5.24-1.75a9.56 9.56 0 0 1 3-4.43 4.74 4.74 0 0 1 2-1 3.31 3.31 0 0 0 1 .72c-.34 2.14-.6 4.3-.76 6.47zm19.52 6.5l-12.91-4.3a62.57 62.57 0 0 1 1.69-12c5 2.75 12.75 1.79 12.75 1.79z" fill="#204A69"/><path d="M827.5 172.15c-5.88 2.56-9.17 7.61-10.32 13.94-4.83 26.63 28.33 76.05 68 59.72a40.64 40.64 0 0 0 5.24-2.61c39.47-23.32-15.1-91.88-62.92-71.05z" fill="#BBC9D5"/><path d="M275.36 622.55h150.18a8.52 8.52 0 0 0 8.52-8.89l-4.28-99.89a6.41 6.41 0 0 0-6.42-6.15H273.42l2 101.93" fill="#969CA1" opacity=".26"/><path d="M434.41 676.65c-2.76-16-4.06-32-5.43-48.07l-.8-12.05-.4-6-.1-1.51a14.89 14.89 0 0 1 0-2 8.56 8.56 0 0 1 1.94-4.75 10.8 10.8 0 0 1 8-3.8l6.15-.07 12.08-.07 12.08.12 6.15.07a10.76 10.76 0 0 1 8 3.78 8.47 8.47 0 0 1 1.92 4.72l.15 3.1.28 6 .52 12.07c.57 16.1 1.08 32.19.8 48.34a1.35 1.35 0 0 1-2.68.15c-2.1-16-3.41-32.06-4.67-48.12l-.85-12-.4-6-.2-2.93a1.39 1.39 0 0 0-.37-.76 3.69 3.69 0 0 0-2.7-1.08l-5.92.05-12.08.12-12.08-.07h-5.92a3.64 3.64 0 0 0-2.66 1.06 1.39 1.39 0 0 0-.37.73v1l.07 1.51.28 6 .57 12.06c.45 16.1 1 32.2 0 48.38a.68.68 0 0 1-1.34.08z" fill="#CCCED0"/><path fill="#F6F6F6" d="M471.79 657.89l-2.51-44.33h-26.31l2.51 44.27 26.31.06z"/><path fill="#fff" d="M392.72 701.82h36.26"/><path d="M392.73 701.14a21.59 21.59 0 0 1 9.06-2.71 83.69 83.69 0 0 1 9.06-.42c3 .08 6 .26 9.06.51a34.08 34.08 0 0 1 9.06 2 1.44 1.44 0 0 1 0 2.68 34.08 34.08 0 0 1-9.06 2c-3 .25-6 .44-9.06.51a83.69 83.69 0 0 1-9.06-.42 21.59 21.59 0 0 1-9.06-2.71.78.78 0 0 1-.28-1.06.8.8 0 0 1 .28-.38zM424.36 671.45c-17.22-1.19-34.44-1.6-51.66-1.94l-25.83-.28-12.92-.12-6.46-.06a18 18 0 0 1-5.17-.89 16.73 16.73 0 0 1-11.49-16.09l-.16-17.54c-2.3-.12-4.6-.15-6.9-.15l-.16 17.7a24 24 0 0 0 16.34 23.3 25.54 25.54 0 0 0 7.53 1.15l6.46-.06 12.92-.12 25.83-.28c17.22-.34 34.44-.74 51.66-1.94a1.35 1.35 0 0 0 0-2.69z" fill="#F6F6F6"/><path d="M399.49 671.45c-8.58-1.15-15.3-7.64-16.55-15.28-.52-3.45-.09-8.55-.11-13l.17-9.79h-7.46l.17 9.79c.28 4.67-.32 8.81.82 14.38a22.45 22.45 0 0 0 8.62 12.8 20.63 20.63 0 0 0 14.34 3.78 1.38 1.38 0 0 0 1.18-1.18 1.35 1.35 0 0 0-1.18-1.5z" fill="#F6F6F6"/><path d="M432.02 631.39a19.45 19.45 0 0 1-5.57.7h-5.27c-28.24.05-56.47.45-84.71.69-30.47.46-60.93 1.09-91.4 2.05a.67.67 0 0 0 0 1.34c30.47 1 60.93 1.59 91.4 2.05 30.47.26 60.93.72 91.4.71h.15a3.45 3.45 0 0 0 .65-.09 27.44 27.44 0 0 0 3.36-.4z" fill="#CCCED0"/><path d="M450.29 594.24l-2.43-61.2-.61-15.3c-.15-2.7-.09-4.75-.44-8a21.85 21.85 0 0 0-18.16-18.52 36.58 36.58 0 0 0-6.11-.28 3.76 3.76 0 0 0-.72-.07l-159 .55-9.94.09a16.26 16.26 0 0 0-11.19 3.89 15.82 15.82 0 0 0-5.41 10.68c-.07 3.91.13 6.79.18 10.23l1 39.73c.59 26.49 1.48 53 2.47 79.45a1.34 1.34 0 0 0 2.68 0c.11-26.5.14-53-.15-79.49l-.29-39.74c0-3.18-.1-6.93 0-9.63a9.79 9.79 0 0 1 3.47-6.54 10 10 0 0 1 7.22-2.24h3.91l1.63 55c.48 19.37 1.43 38.74 2.16 58.1a1.34 1.34 0 0 0 2.68-.05c0-19.38.13-38.77-.16-58.14l-.56-54.84h.27l155.34.54.13-.07h2.09a54.42 54.42 0 0 1 7 .23 14.2 14.2 0 0 1 9.76 6.53 14 14 0 0 1 2 5.63c.2 1.84.24 4.9.38 7.29l.7 15.29 1.41 30.59 1.41 30.59.28 6.14a47.87 47.87 0 0 1 7.11.15z" fill="#CCCED0"/><path d="M434.41 676.65c-2.76-16-4.06-32-5.43-48.07l-.8-12.05-.4-6-.1-1.51a14.89 14.89 0 0 1 0-2 8.56 8.56 0 0 1 1.94-4.75 10.8 10.8 0 0 1 8-3.8l6.15-.07 12.08-.07 12.08.12 6.15.07a10.76 10.76 0 0 1 8 3.78 8.47 8.47 0 0 1 1.92 4.72l.15 3.1.28 6 .52 12.07c.57 16.1 1.08 32.19.8 48.34a1.35 1.35 0 0 1-2.68.15c-2.1-16-3.41-32.06-4.67-48.12l-.85-12-.4-6-.2-2.93a1.39 1.39 0 0 0-.37-.76 3.69 3.69 0 0 0-2.7-1.08l-5.92.05-12.08.12-12.08-.07h-5.92a3.64 3.64 0 0 0-2.66 1.06 1.39 1.39 0 0 0-.37.73v1l.07 1.51.28 6 .57 12.06c.45 16.1 1 32.2 0 48.38a.68.68 0 0 1-1.34.08z" fill="#CCCED0"/><path fill="#F6F6F6" d="M471.79 657.89l-2.51-44.33h-26.31l2.51 44.27 26.31.06z"/><path fill="#fff" d="M392.72 701.82h36.26"/><path d="M392.73 701.14a21.59 21.59 0 0 1 9.06-2.71 83.69 83.69 0 0 1 9.06-.42c3 .08 6 .26 9.06.51a34.08 34.08 0 0 1 9.06 2 1.44 1.44 0 0 1 0 2.68 34.08 34.08 0 0 1-9.06 2c-3 .25-6 .44-9.06.51a83.69 83.69 0 0 1-9.06-.42 21.59 21.59 0 0 1-9.06-2.71.78.78 0 0 1-.28-1.06.8.8 0 0 1 .28-.38zM1.31 959.39c129.84-3.7 259.68-4.48 389.52-5.4l389.52-.85c259.68.81 519.36.35 779 4.91a2.69 2.69 0 0 1 0 5.37c-259.68 4.56-519.36 4.1-779 4.91l-389.52-.85c-129.84-.92-259.68-1.7-389.52-5.4a1.34 1.34 0 0 1 0-2.68z" fill="#F6F6F6"/><path d="M774.83 917.1a3.36 3.36 0 0 1-3.21-4.33c4.87-16 2.75-48.59.71-80-1-15.5-2-30.14-2.1-42.83a3.36 3.36 0 0 1 3.32-3.4 3.36 3.36 0 0 1 3.36 3.32c.14 12.51 1.09 27.07 2.09 42.47 2.09 32.06 4.24 65.22-1 82.44a3.36 3.36 0 0 1-3.17 2.33zM894.87 950a3.35 3.35 0 0 1-3.31-2.86c-.12-.81-12.12-81.19-20.37-160.52a3.36 3.36 0 1 1 6.67-.7c8.24 79.19 20.21 159.42 20.33 160.22a3.36 3.36 0 0 1-2.82 3.82 3.27 3.27 0 0 1-.5.04z" fill="#204A69"/><path d="M1268.93 70.38V63.5a6.715 6.715 0 0 1 13.43 0v7.38" fill="#E1E2E2"/><path d="M1041.27 215.38v-1.72a26.28 26.28 0 0 1-8.95 4.54s7.5-27.34-.45-29.17-38.4 52.06-38.4 52.06l11 26.43s11.83-10.63 49.88-30.13c8.64-8.13 13.71-15.59 16.29-22z" fill="#B0B5B8"/><path d="M1025.14 255.67a3.36 3.36 0 0 1 0-6.71c3.78-.14 30-13.82 42.82-38.15a3.36 3.36 0 1 1 5.94 3.13c-13.37 25.33-41.88 41.73-48.76 41.73zM1004.49 234.13a3.36 3.36 0 0 1-2.22-5.87c2.76-2.45 7.26-11.57 11.23-19.61 8.05-16.3 11.8-23 16.48-23.58a4.9 4.9 0 0 1 4.44 1.78c4.62 5.4 3.46 18.48 2.22 26.39 2.84-1.22 6-3.06 7.75-5.51a3.36 3.36 0 1 1 5.47 3.89c-5.18 7.26-16.36 9.76-16.83 9.86a3.36 3.36 0 0 1-4-4c1.66-7.7 2.93-20 1.06-24.9-2.73 3.15-7.36 12.54-10.58 19-4.66 9.44-9.05 18.35-12.81 21.66a3.31 3.31 0 0 1-2.21.89z" fill="#204A69"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24zM659.61 262.78c3.14 1.27 1.2 22.27 5.46 30.69.95-.16 1.89-.34 2.83-.53-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29c1.24.12 2.48.23 3.74.3-1.11-17.79 10.95-34.3 16.89-31.89z" fill="none"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24z" fill="none"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24zM671.35 292.18l2.24-.57c-.75.2-1.49.39-2.24.57zM690.75 285.3l-1.12.53z" fill="none"/><path d="M434.32 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM500.28 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM830.1 142.11h-33a6.715 6.715 0 1 0 0 13.43h33a6.715 6.715 0 1 0 0-13.43zM929.02 142.11a6.715 6.715 0 1 0 0 13.43h8v-13.43zM896.02 136.46h-33a6.715 6.715 0 0 0 0 13.43h33a6.715 6.715 0 0 0 0-13.43zM566.24 142.11h-33a6.715 6.715 0 0 0 0 13.43h27.37a97.31 97.31 0 0 1 7.57-13.14 6.72 6.72 0 0 0-1.94-.29zM764.13 142.11h-33a6.71 6.71 0 0 0-2.05.32 97.32 97.32 0 0 1 7.55 13.11h27.48a6.715 6.715 0 1 0 0-13.43z" fill="#E1E2E2"/><path d="M668.92 294.18c.14.09.43.29 1.35 0 .59-.19.91-.94 1.08-2q-1.71.41-3.44.76a3.51 3.51 0 0 0 1.01 1.24z" fill="none"/><path d="M673.59 291.61l-2.24.57c-.16 1-.49 1.78-1.08 2-.92.31-1.21.1-1.35 0a3.51 3.51 0 0 1-1-1.23c-2-3.57-2.59-12.67-3-17.89-.57-8.53-.89-13.23-4.33-14.63-5.44-2.19-12.54 3.41-17.3 13.66a45.49 45.49 0 0 0-4.29 20.29c.39 12.48 6.62 25.37 23.26 34.07a3.4 3.4 0 0 0 1.55.38 3.36 3.36 0 0 0 1.55-6.33c-23.86-12.47-20.37-32.83-17.76-41 2.86-9 7.67-13.76 9.75-14.69a83.07 83.07 0 0 1 .87 8.7c.65 9.63 1.39 20.54 6.92 24.25a7.94 7.94 0 0 0 7.21.78c4.91-1.64 5.87-5.42 5.78-10.24-.57.2-1.57.5-2.65.8l-1 .28z" fill="#204A69"/><path d="M674.53 291.37l1-.28-1.95.52zM688.54 286.34l-.61.27c-1.23.56-2.56 1.13-3.32 1.39a57.89 57.89 0 0 1 4.6 24 3.36 3.36 0 0 0 3.31 3.4 3.36 3.36 0 0 0 3.36-3.31 66.28 66.28 0 0 0-5.19-26.75l-1.12.53z" fill="#204A69"/><path d="M689.63 285.83l-1.7.78.61-.27z" fill="#204A69"/><path d="M790.14 793.46c-11.43 0-21.7-1.43-27.18-5.63a11.37 11.37 0 0 1-4.7-8.56c-.17-3-.55-7.36-1-12.93-3-34.13-10-114 4.45-204.92a3.36 3.36 0 0 1 6.64 1c-14.33 90.06-7.37 169.4-4.39 203.28.5 5.66.89 10.09 1.06 13.15a4.69 4.69 0 0 0 2.09 3.6c11.59 8.87 57.88 1.65 74.75-1.89a3.36 3.36 0 0 1 1.38 6.57c-4.37.95-30.92 6.33-53.1 6.33zM886.22 788.54c-12.44 0-22.94-1.1-27.65-4.25-10.39-6.93-8.37-101.49-7-141.83a3.18 3.18 0 0 1 3.47-3.25 3.37 3.37 0 0 1 3.25 3.47c-2.09 62.26-1.09 130.21 4.2 136.16 9.2 6.1 58.16 1.8 88.94-2.62l-5.81-102.27a3.36 3.36 0 0 1 3.16-3.54 3.19 3.19 0 0 1 3.54 3.16l6 105.34a3.36 3.36 0 0 1-2.85 3.51c-5.76.86-42.12 6.12-69.25 6.12zM944.16 622.06a3.35 3.35 0 0 1-3.34-3.09l-7.19-88.58a3.356 3.356 0 1 1 6.69-.54l7.19 88.58a3.36 3.36 0 0 1-3.08 3.61z" fill="#6F93AD"/><path d="M1033.97 260.88l-32.31-33.51c-15.78 31.57-62.67 78.58-98.1 87.42-.81-.32-1.63-.64-2.49-1-11.37-4.19-76.46-8.61-92-2-10 4.25-16.9 7.49-21.52 11.79-30.74 24.06-50 44.9-50 44.9l-37.53-58.6-33.51 23.94s28.72 105.32 73 102.93a107.17 107.17 0 0 0 41.78-11.27l3.7 105.84 148.35-2.55-3.6-151.61c55.28-28.02 104.23-116.28 104.23-116.28z" fill="#BBC9D5"/><path d="M778.22 535.05a3.36 3.36 0 0 1 0-6.71l158.76-1.57a3.23 3.23 0 0 1 3.39 3.32 3.36 3.36 0 0 1-3.32 3.39l-158.76 1.57zM753.59 438.56a3.36 3.36 0 0 1-1.38-6.42l29-13a3.36 3.36 0 1 1 2.75 6.12l-29 13a3.32 3.32 0 0 1-1.37.3z" fill="#204A69"/><path d="M606.77 729.64h-.48l-96.46 1.48-97.41 1-195.87.76a3.72 3.72 0 0 1-3.73-3.7l-.07-54.71a3.79 3.79 0 0 1 3.78-3.8l194.63.42 194.63 1.45a1.9 1.9 0 0 1 1.89 1.92zm-1.9-.95v-.47l-1-53.76 1.93 1.93-194.63 1.49-194.63.42 3.8-3.8-.07 54.71-3.73-3.73 193.41.76 97.22 1z" fill="#CCCED0"/><path fill="#fff" d="M216.54 709.01v238.84"/><path d="M217.21 709.01c1.85 19.9 2.24 39.81 2.7 59.71l.42 59.71c-.4 39.8-.17 79.61-2.46 119.42a1.35 1.35 0 0 1-2.69 0c-2.28-39.8-2.05-79.61-2.45-119.42l.42-59.71c.46-19.9.85-39.8 2.7-59.71a.67.67 0 0 1 1.34 0z" fill="#CCCED0"/><path fill="#fff" d="M605.81 729.17v218.68"/><path d="M606.48 729.17c1.85 18.22 2.24 36.45 2.7 54.67l.42 54.67c-.4 36.45-.17 72.89-2.45 109.34a1.35 1.35 0 0 1-2.69 0c-2.28-36.45-2.05-72.89-2.46-109.34l.43-54.67c.46-18.22.85-36.45 2.7-54.67a.67.67 0 0 1 1.34 0z" fill="#CCCED0"/></svg>
diff --git a/plugins/jetpack/images/white-clouds.svg b/plugins/jetpack/images/white-clouds.svg
index 45835881..00e52870 100644
--- a/plugins/jetpack/images/white-clouds.svg
+++ b/plugins/jetpack/images/white-clouds.svg
@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1125.1 53"><style type="text/css">
- .st0{fill:#FFFFFF;}
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1125.1 53"><style type="text/css">
+ .st0{fill:#FFFFFF;}
</style><path class="st0" d="M0 53h1125.1V27.5c-11.5 0.1-22.9 2.3-32.3 6.3 -11.5-15.1-33.3-25.4-58.2-25.4 -18.4 0-35 5.5-47.1 14.5 -6.5-3-14.1-4.7-22.2-4.7 -17.2 0-31.9 7.6-38.7 18.6 -4.3-1.1-8.9-1.7-13.7-1.7 -13.8 0-26 4.9-33.8 12.5 -7.1-3.9-15.8-6.2-25.2-6.2 -7.9 0-15.3 1.6-21.7 4.4 -12-13.7-32.6-22.7-56-22.7 -6.4 0-12.6 0.7-18.5 1.9 -12.3-10.2-30-16.7-49.8-16.7 -24.4 0-45.8 9.8-57.5 24.5 -9.1-3.5-19.5-5.5-30.5-5.5 -17.2 0-32.8 4.8-44.6 12.8 -8.9-3.2-18.8-5.1-29.3-5.1 -7.5 0-14.7 0.9-21.5 2.6 -10.6-17.3-33.9-29.4-60.9-29.4 -7.4 0-14.5 0.9-21.2 2.6C434.5 4.3 423 0 410.2 0S385.8 4.3 378 11c-6.7-1.7-13.8-2.6-21.2-2.6 -18.8 0-35.7 5.8-47.9 15.1 -2.7-0.3-5.5-0.4-8.3-0.4 -22.9 0-43.2 8.7-55.2 21.9 -12.1-13.2-32.3-21.9-55.2-21.9 -2.1 0-4.1 0.1-6.1 0.2C172.1 9.3 151.2 0 127.4 0c-16.9 0-32.3 4.7-44 12.4 -6.1-2.5-13.1-4-20.6-4 -18.6 0-34.4 8.9-40.2 21.4C16 28.3 7.2 27.4 0 27.4V53z"/></svg> \ No newline at end of file
diff --git a/plugins/jetpack/jest.config.js b/plugins/jetpack/jest.config.js
index 10058a9d..10b2da35 100644
--- a/plugins/jetpack/jest.config.js
+++ b/plugins/jetpack/jest.config.js
@@ -4,12 +4,26 @@
const path = require( 'path' );
module.exports = {
- preset: '@automattic/calypso-build',
- roots: [ '<rootDir>/extensions/' ],
+ testEnvironment: 'jsdom',
+ testMatch: [ '<rootDir>/**/test/*.[jt]s?(x)', '!**/.eslintrc.*' ],
+ roots: [ '<rootDir>/extensions/', '<rootDir>/modules/search/instant-search' ],
transform: {
'\\.[jt]sx?$': path.join( __dirname, 'tests', 'jest-extensions-babel-transform' ),
- '\\.(gif|jpg|jpeg|png|svg|scss|sass|css)$': require.resolve(
- '@automattic/calypso-build/jest/transform/asset'
+ '\\.(gif|jpg|jpeg|png|svg|scss|sass|css)$': path.join(
+ __dirname,
+ 'tests/jest-extensions-asset-stub'
),
},
+ coverageDirectory: 'coverage/extensions',
+ setupFiles: [ '<rootDir>/tests/jest-globals.js' ],
+ setupFilesAfterEnv: [
+ path.join( __dirname, 'tests/jest-enzyme-init.js' ),
+ require.resolve( 'jest-enzyme' ),
+ ],
+ snapshotSerializers: [ 'enzyme-to-json/serializer' ],
+ testPathIgnorePatterns: [ 'node_modules', 'extensions/shared/test/block-fixtures.js' ],
+ moduleNameMapper: {
+ 'tiny-lru/lib/tiny-lru.esm$':
+ '<rootDir>/modules/search/instant-search/lib/test-helpers/tiny-lru.mock.js',
+ },
};
diff --git a/plugins/jetpack/jetpack.php b/plugins/jetpack/jetpack.php
index 82933fbd..995c0dd5 100644
--- a/plugins/jetpack/jetpack.php
+++ b/plugins/jetpack/jetpack.php
@@ -1,32 +1,76 @@
<?php
/**
- * Plugin Name: Jetpack by WordPress.com
+ * Plugin Name: Jetpack
* Plugin URI: https://jetpack.com
- * Description: Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.
+ * Description: Security, performance, and marketing tools made by WordPress experts. Jetpack keeps your site protected so you can focus on more important things.
* Author: Automattic
- * Version: 8.2.1
+ * Version: 10.5
* Author URI: https://jetpack.com
* License: GPL2+
* Text Domain: jetpack
- * Domain Path: /languages/
+ * Requires at least: 5.8
+ * Requires PHP: 5.6
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-define( 'JETPACK__MINIMUM_WP_VERSION', '5.2' );
+/*
+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.
+*/
+
+define( 'JETPACK__MINIMUM_WP_VERSION', '5.8' );
define( 'JETPACK__MINIMUM_PHP_VERSION', '5.6' );
-define( 'JETPACK__VERSION', '8.2.1' );
+define( 'JETPACK__VERSION', '10.5' );
+
+/**
+ * Constant used to fetch the connection owner token
+ *
+ * @deprecated 9.0.0
+ * @var boolean
+ */
define( 'JETPACK_MASTER_USER', true );
+
define( 'JETPACK__API_VERSION', 1 );
define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'JETPACK__PLUGIN_FILE', __FILE__ );
+defined( 'JETPACK__RELEASE_POST_BLOG_SLUG' ) || define( 'JETPACK__RELEASE_POST_BLOG_SLUG', 'jetpackreleaseblog.wordpress.com' );
defined( 'JETPACK_CLIENT__AUTH_LOCATION' ) || define( 'JETPACK_CLIENT__AUTH_LOCATION', 'header' );
+
+/**
+ * WP.com API no longer supports `http://` protocol.
+ * This means Jetpack can't function properly on servers that can't send outbound HTTPS requests.
+ * The constant is no longer used.
+ *
+ * @deprecated 9.1.0
+ */
defined( 'JETPACK_CLIENT__HTTPS' ) || define( 'JETPACK_CLIENT__HTTPS', 'AUTO' );
+
defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) || define( 'JETPACK__GLOTPRESS_LOCALES_PATH', JETPACK__PLUGIN_DIR . 'locales.php' );
defined( 'JETPACK__API_BASE' ) || define( 'JETPACK__API_BASE', 'https://jetpack.wordpress.com/jetpack.' );
defined( 'JETPACK_PROTECT__API_HOST' ) || define( 'JETPACK_PROTECT__API_HOST', 'https://api.bruteprotect.com/' );
+defined( 'JETPACK__WPCOM_JSON_API_BASE' ) || define( 'JETPACK__WPCOM_JSON_API_BASE', 'https://public-api.wordpress.com' );
+
+/**
+ * WP.com API no longer supports `http://` protocol.
+ * Use `JETPACK__WPCOM_JSON_API_BASE` instead, which has the protocol hardcoded.
+ *
+ * @deprecated 9.1.0
+ */
defined( 'JETPACK__WPCOM_JSON_API_HOST' ) || define( 'JETPACK__WPCOM_JSON_API_HOST', 'public-api.wordpress.com' );
+
defined( 'JETPACK__SANDBOX_DOMAIN' ) || define( 'JETPACK__SANDBOX_DOMAIN', '' );
defined( 'JETPACK__DEBUGGER_PUBLIC_KEY' ) || define(
'JETPACK__DEBUGGER_PUBLIC_KEY',
@@ -91,9 +135,13 @@ if ( version_compare( $GLOBALS['wp_version'], JETPACK__MINIMUM_WP_VERSION, '<' )
* - If it succeeds, we require load-jetpack.php, where all legacy files are required,
* and where we add on to various hooks that we expect to always run.
*/
-$jetpack_autoloader = JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
-if ( is_readable( $jetpack_autoloader ) ) {
- require $jetpack_autoloader;
+$jetpack_autoloader = JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
+$jetpack_module_headings_file = JETPACK__PLUGIN_DIR . 'modules/module-headings.php'; // This file is loaded later in load-jetpack.php, but let's check here to pause before half-loading Jetpack.
+if ( is_readable( $jetpack_autoloader ) && is_readable( $jetpack_module_headings_file ) ) {
+ require_once $jetpack_autoloader;
+ if ( method_exists( '\Automattic\Jetpack\Assets', 'alias_textdomains_from_file' ) ) {
+ \Automattic\Jetpack\Assets::alias_textdomains_from_file( JETPACK__PLUGIN_DIR . 'jetpack_vendor/i18n-map.php' );
+ }
} else {
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
error_log( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
@@ -110,7 +158,7 @@ if ( is_readable( $jetpack_autoloader ) ) {
*
* @since 7.4.0
*/
- function jetpack_admin_missing_autoloader() {
+ function jetpack_admin_missing_files() {
?>
<div class="notice notice-error is-dismissible">
<p>
@@ -118,7 +166,7 @@ if ( is_readable( $jetpack_autoloader ) ) {
printf(
wp_kses(
/* translators: Placeholder is a link to a support document. */
- __( 'Your installation of Jetpack is incomplete. If you installed Jetpack from GitHub, please refer to <a href="%1$s" target="_blank" rel="noopener noreferrer">this document</a> to set up your development environment.', 'jetpack' ),
+ __( 'Your installation of Jetpack is incomplete. If you installed Jetpack from GitHub, please refer to <a href="%1$s" target="_blank" rel="noopener noreferrer">this document</a> to set up your development environment. Jetpack must have Composer dependencies installed and built via the build command.', 'jetpack' ),
array(
'a' => array(
'href' => array(),
@@ -127,7 +175,7 @@ if ( is_readable( $jetpack_autoloader ) ) {
),
)
),
- 'https://github.com/Automattic/jetpack/blob/master/docs/development-environment.md'
+ 'https://github.com/Automattic/jetpack/blob/master/docs/development-environment.md#building-your-project'
);
?>
</p>
@@ -135,7 +183,7 @@ if ( is_readable( $jetpack_autoloader ) ) {
<?php
}
- add_action( 'admin_notices', 'jetpack_admin_missing_autoloader' );
+ add_action( 'admin_notices', 'jetpack_admin_missing_files' );
return;
}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md
new file mode 100644
index 00000000..15ab7fa5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md
@@ -0,0 +1,101 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php
new file mode 100644
index 00000000..88635fbb
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php
@@ -0,0 +1,183 @@
+<?php
+/**
+ * Jetpack MC Stats package.
+ *
+ * @package automattic/jetpack-mc-stats
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class MC Stats, used to record stats using https://pixel.wp.com/g.gif
+ */
+class A8c_Mc_Stats {
+
+ /**
+ * Holds the stats to be processed
+ *
+ * @var array
+ */
+ private $stats = array();
+
+ /**
+ * Indicates whether to use the transparent pixel (b.gif) instead of the regular smiley (g.gif)
+ *
+ * @var boolean
+ */
+ public $use_transparent_pixel = true;
+
+ /**
+ * Class Constructor
+ *
+ * @param boolean $use_transparent_pixel Use the transparent pixel instead of the smiley.
+ */
+ public function __construct( $use_transparent_pixel = true ) {
+ $this->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 '<img src="' . esc_url( $url ) . '" width="1" height="1" style="display:none;" />';
+ }
+ $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/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/CHANGELOG.md
new file mode 100644
index 00000000..cdd96d24
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/CHANGELOG.md
@@ -0,0 +1,251 @@
+# 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).
+
+## [1.9.18] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.9.17] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.9.16] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.9.15] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [1.9.14] - 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.9.13] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.9.12] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.9.11] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.9.10] - 2021-08-31
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+## [1.9.9] - 2021-07-27
+### Changed
+- Updated package dependencies.
+
+## [1.9.8] - 2021-06-29
+### Changed
+- Updated package dependencies.
+
+## [1.9.7] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.9.6] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.9.5] - 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.9.4] - 2021-02-23
+
+- CI: Make tests more generic
+
+## [1.9.3] - 2021-02-08
+
+- Update dependencies to latest stable
+
+## [1.9.2] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.9.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.9.0] - 2021-01-05
+
+- Coverage Update whitelist for backend tests
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+- Tests: Try CodeCov coverage app
+- Add .gitignore to export-ignore for dist releases
+
+## [1.8.4] - 2020-11-24
+
+- Version packages for release
+
+## [1.8.3] - 2020-11-24
+
+- Fix remaining phpcs warnings in most of requirelist
+- Updated PHPCS: Packages and Debugger
+
+## [1.8.2] - 2020-11-05
+
+- Update dependencies to latest stable
+
+## [1.8.1] - 2020-10-29
+
+- Update dependencies to latest stable
+
+## [1.8.0] - 2020-10-27
+
+- Updated dependencies to latest stable
+
+## [1.7.4] - 2020-10-14
+
+- Update dependencies to latest stable
+
+## [1.7.3] - 2020-10-09
+
+- Update dependencies to latest stable
+
+## [1.7.2] - 2020-10-06
+
+- Update dependencies to latest stable
+
+## [1.7.1] - 2020-10-01
+
+- Update dependencies to latest stable
+
+## [1.7.0] - 2020-09-29
+
+- Update dependencies to latest stable
+
+## [1.6.1] - 2020-09-09
+
+- Update dependencies to latest stable
+
+## [1.6.0] - 2020-08-26
+
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.5.2] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.5.1] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.5.0] - 2020-07-28
+
+- Package Unit tests: update test file names to make sure they runs in Travis
+
+## [1.4.2] - 2020-07-06
+
+- Update dependencies to latest stable
+
+## [1.4.1] - 2020-07-01
+
+- Update dependencies to latest stable
+
+## [1.4.0] - 2020-06-30
+
+- PHPCS: Clean up the packages
+- PHPCS Updates after WPCS 2.3
+
+## [1.3.1] - 2020-06-01
+
+- Update dependencies to latest stable
+
+## [1.3.0] - 2020-05-26
+
+- Update dependencies to latest stable
+
+## [1.2.0] - 2020-04-28
+
+- Update dependencies to latest stable
+
+## [1.1.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.0.4] - 2019-12-04
+
+## [1.0.3] - 2019-12-04
+
+- Updating dependencies for 'abtest'
+
+## [1.0.2] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.1] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## 1.0.0 - 2019-09-14
+
+- Packages: Introduce a simple A/B test package
+
+[1.9.18]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.17...v1.9.18
+[1.9.17]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.16...v1.9.17
+[1.9.16]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.15...v1.9.16
+[1.9.15]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.14...v1.9.15
+[1.9.14]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.13...v1.9.14
+[1.9.13]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.12...v1.9.13
+[1.9.12]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.11...v1.9.12
+[1.9.11]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.10...v1.9.11
+[1.9.10]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.9...v1.9.10
+[1.9.9]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.8...v1.9.9
+[1.9.8]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.7...v1.9.8
+[1.9.7]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.6...v1.9.7
+[1.9.6]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.5...v1.9.6
+[1.9.5]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.4...v1.9.5
+[1.9.4]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.3...v1.9.4
+[1.9.3]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.2...v1.9.3
+[1.9.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.1...v1.9.2
+[1.9.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.8.4...v1.9.0
+[1.8.4]: https://github.com/Automattic/jetpack-abtest/compare/v1.8.3...v1.8.4
+[1.8.3]: https://github.com/Automattic/jetpack-abtest/compare/v1.8.2...v1.8.3
+[1.8.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.7.4...v1.8.0
+[1.7.4]: https://github.com/Automattic/jetpack-abtest/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-abtest/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.6.1...v1.7.0
+[1.6.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.5.2...v1.6.0
+[1.5.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.4.2...v1.5.0
+[1.4.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-abtest/compare/v1.0.4...v1.1.0
+[1.0.4]: https://github.com/Automattic/jetpack-abtest/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-abtest/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-abtest/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-abtest/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php
new file mode 100644
index 00000000..b69b4cae
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * A class that interacts with WP.com A/B tests.
+ *
+ * @package automattic/jetpack-abtest
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * This class provides an interface to the WP.com A/B tests.
+ */
+class Abtest {
+ /**
+ * A variable to hold the tests we fetched, and their variations for the current user.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $tests = array();
+
+ /**
+ * Retrieve the test variation for a provided A/B test.
+ *
+ * @access public
+ *
+ * @param string $test_name Name of the A/B test.
+ * @return mixed|null A/B test variation, or null on failure.
+ */
+ public function get_variation( $test_name ) {
+ $variation = $this->fetch_variation( $test_name );
+
+ // If there was an error retrieving a variation, conceal the error for the consumer.
+ if ( is_wp_error( $variation ) ) {
+ return null;
+ }
+
+ return $variation;
+ }
+
+ /**
+ * Fetch and cache the test variation for a provided A/B test from WP.com.
+ *
+ * @access protected
+ *
+ * @param string $test_name Name of the A/B test.
+ * @return mixed|Automattic\Jetpack\Error A/B test variation, or Automattic\Jetpack\Error on failure.
+ */
+ protected function fetch_variation( $test_name ) {
+ // Make sure test name exists.
+ if ( ! $test_name ) {
+ return new Error( 'test_name_not_provided', 'A/B test name has not been provided.' );
+ }
+
+ // Make sure test name is a valid one.
+ if ( ! preg_match( '/^[A-Za-z0-9_]+$/', $test_name ) ) {
+ return new Error( 'invalid_test_name', 'Invalid A/B test name.' );
+ }
+
+ // Return cached test variations.
+ if ( isset( $this->tests[ $test_name ] ) ) {
+ return $this->tests[ $test_name ];
+ }
+
+ // Make the request to the WP.com API.
+ $response = $this->request_variation( $test_name );
+
+ // Bail if there was an error or malformed response.
+ if ( is_wp_error( $response ) || ! is_array( $response ) || ! isset( $response['body'] ) ) {
+ return new Error( 'failed_to_fetch_data', 'Unable to fetch the requested data.' );
+ }
+
+ // Decode the results.
+ $results = json_decode( $response['body'], true );
+
+ // Bail if there were no results or there is no test variation returned.
+ if ( ! is_array( $results ) || empty( $results['variation'] ) ) {
+ return new Error( 'unexpected_data_format', 'Data was not returned in the expected format.' );
+ }
+
+ // Store the variation in our internal cache.
+ $this->tests[ $test_name ] = $results['variation'];
+
+ return $results['variation'];
+ }
+
+ /**
+ * Perform the request for a variation of a provided A/B test from WP.com.
+ *
+ * @access protected
+ *
+ * @param string $test_name Name of the A/B test.
+ * @return mixed|Automattic\Jetpack\Error A/B test variation, or Automattic\Jetpack\Error on failure.
+ */
+ protected function request_variation( $test_name ) {
+ return Client::wpcom_json_api_request_as_blog( sprintf( '/abtest/%s', $test_name ), '2', array(), null, 'wpcom' );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md
new file mode 100644
index 00000000..6215e5c5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md
@@ -0,0 +1,34 @@
+# 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] - 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.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/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php
new file mode 100644
index 00000000..140b40f6
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php
@@ -0,0 +1,174 @@
+<?php
+/**
+ * Admin Menu Registration
+ *
+ * @package automattic/jetpack-admin-ui
+ */
+
+namespace Automattic\Jetpack\Admin_UI;
+
+/**
+ * This class offers a wrapper to add_submenu_page and makes sure stand-alone plugin's menu items are always added under the Jetpack top level menu.
+ * If the Jetpack top level was not previously registered by other plugin, it will be registered here.
+ */
+class Admin_Menu {
+
+ const PACKAGE_VERSION = '0.2.1';
+
+ /**
+ * Whether this class has been initialized
+ *
+ * @var boolean
+ */
+ private static $initialized = false;
+
+ /**
+ * List of menu items enqueued to be added
+ *
+ * @var array
+ */
+ private static $menu_items = array();
+
+ /**
+ * Initialize the class and set up the main hook
+ *
+ * @return void
+ */
+ public static function init() {
+ if ( ! self::$initialized ) {
+ self::$initialized = true;
+ add_action( 'admin_menu', array( __CLASS__, 'admin_menu_hook_callback' ), 1000 ); // Jetpack uses 998.
+ }
+ }
+
+ /**
+ * Enqueue styles for the top level menu
+ *
+ * @return void
+ */
+ public static function enqueue_style() {
+ wp_enqueue_style(
+ 'jetpack-admin-ui',
+ plugin_dir_url( __FILE__ ) . 'css/jetpack-icon.css',
+ array(),
+ self::PACKAGE_VERSION
+ );
+ }
+
+ /**
+ * Callback to the admin_menu hook that will register the enqueued menu items
+ *
+ * @return void
+ */
+ public static function admin_menu_hook_callback() {
+ $can_see_toplevel_menu = true;
+ $jetpack_plugin_present = class_exists( 'Jetpack_React_Page' );
+
+ if ( ! $jetpack_plugin_present ) {
+ add_action( 'admin_print_scripts', array( __CLASS__, 'enqueue_style' ) );
+ add_menu_page(
+ 'Jetpack',
+ 'Jetpack',
+ 'read',
+ 'jetpack',
+ '__return_null',
+ 'div',
+ 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;
+ }
+
+ 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.
+ *
+ * @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/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/css/jetpack-icon.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/css/jetpack-icon.css
new file mode 100644
index 00000000..77d428e6
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/css/jetpack-icon.css
@@ -0,0 +1,14 @@
+@font-face {
+ font-family: 'jetpack';
+ src: url( '../fonts/jetpack/jetpack.eot' );
+ src: url( '../fonts/jetpack/jetpack.eot?#iefix' ) format( 'embedded-opentype' ),
+ url( '../fonts/jetpack/jetpack.woff' ) format( 'woff' ),
+ url( '../fonts/jetpack/jetpack.ttf' ) format( 'truetype' );
+ font-weight: normal;
+ font-style: normal;
+}
+
+li.toplevel_page_jetpack .wp-menu-image:before {
+ font-family: 'jetpack' !important;
+ content: '\f100';
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.eot b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.eot
new file mode 100644
index 00000000..f4becaf9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.eot
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.svg b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.svg
new file mode 100644
index 00000000..57a10c6e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.svg
@@ -0,0 +1,33 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2017-12-4: Created with FontForge (http://fontforge.org)
+-->
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata>
+Created by FontForge 20170925 at Mon Dec 4 15:18:51 2017
+ By Michael Arestad
+
+</metadata>
+<defs>
+<font id="jetpack" horiz-adv-x="200" >
+ <font-face
+ font-family="jetpack"
+ font-weight="400"
+ font-stretch="normal"
+ units-per-em="512"
+ panose-1="2 0 5 3 0 0 0 0 0 0"
+ ascent="448"
+ descent="-64"
+ bbox="51.2002 -12.7998 460.8 396.8"
+ underline-thickness="25.6"
+ underline-position="-51.2"
+ unicode-range="U+0020-F100"
+ />
+ <missing-glyph />
+ <glyph glyph-name="space" unicode=" "
+ />
+ <glyph glyph-name="jetpack-logo__icon" unicode="&#xf100;" horiz-adv-x="512"
+d="M256 396.8c112.64 0 204.8 -92.1602 204.8 -204.8s-92.1602 -204.8 -204.8 -204.8s-204.8 92.1602 -204.8 204.8s92.1602 204.8 204.8 204.8zM230.4 166.4v179.199l-102.4 -179.199h102.4zM281.6 38.4004l102.4 179.199h-102.4v-179.199z" />
+ </font>
+</defs></svg>
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.ttf b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.ttf
new file mode 100644
index 00000000..47936c43
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.ttf
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.woff b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.woff
new file mode 100644
index 00000000..347be333
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-admin-ui/src/fonts/jetpack/jetpack.woff
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md
new file mode 100644
index 00000000..422b57f5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md
@@ -0,0 +1,200 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/actions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/actions.php
new file mode 100644
index 00000000..1c8becda
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/actions.php
@@ -0,0 +1,19 @@
+<?php
+/**
+ * Action Hooks for Jetpack Assets module.
+ *
+ * @package automattic/jetpack-assets
+ */
+
+// If WordPress's plugin API is available already, use it. If not,
+// drop data into `$wp_filter` for `WP_Hook::build_preinitialized_hooks()`.
+if ( function_exists( 'add_action' ) ) {
+ add_action( 'wp_default_scripts', array( Automattic\Jetpack\Assets::class, 'wp_default_scripts_hook' ) );
+} else {
+ global $wp_filter;
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $wp_filter['wp_default_scripts'][10][] = array(
+ 'accepted_args' => 1,
+ 'function' => array( Automattic\Jetpack\Assets::class, 'wp_default_scripts_hook' ),
+ );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php
new file mode 100644
index 00000000..dd130a7b
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php
@@ -0,0 +1,704 @@
+<?php
+/**
+ * Jetpack Assets package.
+ *
+ * @package automattic/jetpack-assets
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Assets\Semver;
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+use InvalidArgumentException;
+
+/**
+ * Class Assets
+ */
+class Assets {
+ /**
+ * Holds all the scripts handles that should be loaded in a deferred fashion.
+ *
+ * @var array
+ */
+ private $defer_script_handles = array();
+
+ /**
+ * The singleton instance of this class.
+ *
+ * @var Assets
+ */
+ protected static $instance;
+
+ /**
+ * The registered textdomain mappings.
+ *
+ * @var array `array( mapped_domain => array( string target_domain, string target_type, string semver ) )`.
+ */
+ 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();
+ self::$instance->init_hooks();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Initalize the hooks as needed.
+ */
+ private function init_hooks() {
+ /*
+ * Load some scripts asynchronously.
+ */
+ add_filter( 'script_loader_tag', array( $this, 'script_add_async' ), 10, 2 );
+ }
+
+ /**
+ * A public method for adding the async script.
+ *
+ * @param string $script_handle Script handle.
+ */
+ public function add_async_script( $script_handle ) {
+ $this->defer_script_handles[] = $script_handle;
+ }
+
+ /**
+ * Add an async attribute to scripts that can be loaded deferred.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
+ *
+ * @param string $tag The <script> tag for the enqueued script.
+ * @param string $handle The script's registered handle.
+ */
+ public function script_add_async( $tag, $handle ) {
+ if ( empty( $this->defer_script_handles ) ) {
+ return $tag;
+ }
+
+ if ( in_array( $handle, $this->defer_script_handles, true ) ) {
+ return preg_replace( '/^<script /i', '<script defer ', $tag );
+ }
+
+ return $tag;
+ }
+
+ /**
+ * A helper function that lets you enqueue scripts in an async fashion.
+ *
+ * @param string $handle Name of the script. Should be unique.
+ * @param string $min_path Minimized script path.
+ * @param string $non_min_path Full Script path.
+ * @param array $deps Array of script dependencies.
+ * @param bool $ver The script version.
+ * @param bool $in_footer Should the script be included in the footer.
+ */
+ public static function enqueue_async_script( $handle, $min_path, $non_min_path, $deps = array(), $ver = false, $in_footer = true ) {
+ $assets_instance = self::instance();
+ $assets_instance->add_async_script( $handle );
+ wp_enqueue_script( $handle, self::get_file_url_for_environment( $min_path, $non_min_path ), $deps, $ver, $in_footer );
+ }
+
+ // endregion .
+
+ // ////////////////////
+ // region Utils
+
+ /**
+ * Given a minified path, and a non-minified path, will return
+ * a minified or non-minified file URL based on whether SCRIPT_DEBUG is set and truthy.
+ *
+ * If $package_path is provided, then the minified or non-minified file URL will be generated
+ * relative to the root package directory.
+ *
+ * Both `$min_base` and `$non_min_base` can be either full URLs, or are expected to be relative to the
+ * root Jetpack directory.
+ *
+ * @param string $min_path minified path.
+ * @param string $non_min_path non-minified path.
+ * @param string $package_path Optional. A full path to a file inside a package directory
+ * The URL will be relative to its directory. Default empty.
+ * Typically this is done by passing __FILE__ as the argument.
+ *
+ * @return string The URL to the file
+ * @since 1.0.3
+ * @since-jetpack 5.6.0
+ */
+ public static function get_file_url_for_environment( $min_path, $non_min_path, $package_path = '' ) {
+ $path = ( Jetpack_Constants::is_defined( 'SCRIPT_DEBUG' ) && Jetpack_Constants::get_constant( 'SCRIPT_DEBUG' ) )
+ ? $non_min_path
+ : $min_path;
+
+ /*
+ * If the path is actually a full URL, keep that.
+ * We look for a host value, since enqueues are sometimes without a scheme.
+ */
+ $file_parts = wp_parse_url( $path );
+ if ( ! empty( $file_parts['host'] ) ) {
+ $url = $path;
+ } else {
+ $plugin_path = empty( $package_path ) ? Jetpack_Constants::get_constant( 'JETPACK__PLUGIN_FILE' ) : $package_path;
+
+ $url = plugins_url( $path, $plugin_path );
+ }
+
+ /**
+ * Filters the URL for a file passed through the get_file_url_for_environment function.
+ *
+ * @since 1.0.3
+ *
+ * @package assets
+ *
+ * @param string $url The URL to the file.
+ * @param string $min_path The minified path.
+ * @param string $non_min_path The non-minified path.
+ */
+ return apply_filters( 'jetpack_get_file_for_environment', $url, $min_path, $non_min_path );
+ }
+
+ /**
+ * Passes an array of URLs to wp_resource_hints.
+ *
+ * @since 1.5.0
+ *
+ * @param string|array $urls URLs to hint.
+ * @param string $type One of the supported resource types: dns-prefetch (default), preconnect, prefetch, or prerender.
+ */
+ public static function add_resource_hint( $urls, $type = 'dns-prefetch' ) {
+ add_filter(
+ 'wp_resource_hints',
+ function ( $hints, $resource_type ) use ( $urls, $type ) {
+ if ( $resource_type === $type ) {
+ // Type casting to array required since the function accepts a single string.
+ foreach ( (array) $urls as $url ) {
+ $hints[] = $url;
+ }
+ }
+ return $hints;
+ },
+ 10,
+ 2
+ );
+ }
+
+ /**
+ * Serve a WordPress.com static resource via a randomized wp.com subdomain.
+ *
+ * @since 1.9.0
+ *
+ * @param string $url WordPress.com static resource URL.
+ *
+ * @return string $url
+ */
+ public static function staticize_subdomain( $url ) {
+ // Extract hostname from URL.
+ $host = wp_parse_url( $url, PHP_URL_HOST );
+
+ // Explode hostname on '.'.
+ $exploded_host = explode( '.', $host );
+
+ // Retrieve the name and TLD.
+ if ( count( $exploded_host ) > 1 ) {
+ $name = $exploded_host[ count( $exploded_host ) - 2 ];
+ $tld = $exploded_host[ count( $exploded_host ) - 1 ];
+ // Rebuild domain excluding subdomains.
+ $domain = $name . '.' . $tld;
+ } else {
+ $domain = $host;
+ }
+ // Array of Automattic domains.
+ $domains_allowed = array( 'wordpress.com', 'wp.com' );
+
+ // Return $url if not an Automattic domain.
+ if ( ! in_array( $domain, $domains_allowed, true ) ) {
+ return $url;
+ }
+
+ if ( \is_ssl() ) {
+ return preg_replace( '|https?://[^/]++/|', 'https://s-ssl.wordpress.com/', $url );
+ }
+
+ /*
+ * Generate a random subdomain id by taking the modulus of the crc32 value of the URL.
+ * Valid values are 0, 1, and 2.
+ */
+ $static_counter = abs( crc32( basename( $url ) ) % 3 );
+
+ return preg_replace( '|://[^/]+?/|', "://s$static_counter.wp.com/", $url );
+ }
+
+ /**
+ * Resolve '.' and '..' components in a path or URL.
+ *
+ * @since 1.12.0
+ * @param string $path Path or URL.
+ * @return string Normalized path or URL.
+ */
+ public static function normalize_path( $path ) {
+ $parts = wp_parse_url( $path );
+ if ( ! isset( $parts['path'] ) ) {
+ return $path;
+ }
+
+ $ret = '';
+ $ret .= isset( $parts['scheme'] ) ? $parts['scheme'] . '://' : '';
+ if ( isset( $parts['user'] ) || isset( $parts['pass'] ) ) {
+ $ret .= isset( $parts['user'] ) ? $parts['user'] : '';
+ $ret .= isset( $parts['pass'] ) ? ':' . $parts['pass'] : '';
+ $ret .= '@';
+ }
+ $ret .= isset( $parts['host'] ) ? $parts['host'] : '';
+ $ret .= isset( $parts['port'] ) ? ':' . $parts['port'] : '';
+
+ $pp = explode( '/', $parts['path'] );
+ if ( '' === $pp[0] ) {
+ $ret .= '/';
+ array_shift( $pp );
+ }
+ $i = 0;
+ while ( $i < count( $pp ) ) { // phpcs:ignore Squiz.PHP.DisallowSizeFunctionsInLoops.Found
+ if ( '' === $pp[ $i ] || '.' === $pp[ $i ] || 0 === $i && '..' === $pp[ $i ] ) {
+ array_splice( $pp, $i, 1 );
+ } elseif ( '..' === $pp[ $i ] ) {
+ array_splice( $pp, --$i, 2 );
+ } else {
+ $i++;
+ }
+ }
+ $ret .= join( '/', $pp );
+
+ $ret .= isset( $parts['query'] ) ? '?' . $parts['query'] : '';
+ $ret .= isset( $parts['fragment'] ) ? '#' . $parts['fragment'] : '';
+
+ return $ret;
+ }
+
+ // endregion .
+
+ // ////////////////////
+ // region Webpack-built script registration
+
+ /**
+ * Register a Webpack-built script.
+ *
+ * Our Webpack-built scripts tend to need a bunch of boilerplate:
+ * - A call to `Assets::get_file_url_for_environment()` for possible debugging.
+ * - A call to `wp_register_style()` for extracted CSS, possibly with detection of RTL.
+ * - Loading of dependencies and version provided by `@wordpress/dependency-extraction-webpack-plugin`.
+ * - Avoiding WPCom's broken minifier.
+ *
+ * This wrapper handles all of that.
+ *
+ * @since 1.12.0
+ * @param string $handle Name of the script. Should be unique across both scripts and styles.
+ * @param string $path Minimized script path.
+ * @param string $relative_to File that `$path` is relative to. Pass `__FILE__`.
+ * @param array $options Additional options:
+ * - `asset_path`: (string|null) `.asset.php` to load. Default is to base it on `$path`.
+ * - `async`: (bool) Set true to register the script as async, like `Assets::enqueue_async_script()`
+ * - `css_dependencies`: (string[]) Additional style dependencies to queue.
+ * - `css_path`: (string|null) `.css` to load. Default is to base it on `$path`.
+ * - `dependencies`: (string[]) Additional script dependencies to queue.
+ * - `enqueue`: (bool) Set true to enqueue the script immediately.
+ * - `in_footer`: (bool) Set true to register script for the footer.
+ * - `media`: (string) Media for the css file. Default 'all'.
+ * - `minify`: (bool|null) Set true to pass `minify=true` in the query string, or `null` to suppress the normal `minify=false`.
+ * - `nonmin_path`: (string) Non-minified script path.
+ * - `textdomain`: (string) Text domain for the script. Required if the script depends on wp-i18n.
+ * - `version`: (string) Override the version from the `asset_path` file.
+ * @throws \InvalidArgumentException If arguments are invalid.
+ */
+ public static function register_script( $handle, $path, $relative_to, array $options = array() ) {
+ if ( substr( $path, -3 ) !== '.js' ) {
+ throw new \InvalidArgumentException( '$path must end in ".js"' );
+ }
+
+ $dir = dirname( $relative_to );
+ $base = substr( $path, 0, -3 );
+ $options += array(
+ 'asset_path' => "$base.asset.php",
+ 'async' => false,
+ 'css_dependencies' => array(),
+ 'css_path' => "$base.css",
+ 'dependencies' => array(),
+ 'enqueue' => false,
+ 'in_footer' => false,
+ 'media' => 'all',
+ 'minify' => false,
+ 'textdomain' => null,
+ );
+
+ if ( $options['css_path'] && substr( $options['css_path'], -4 ) !== '.css' ) {
+ throw new \InvalidArgumentException( '$options[\'css_path\'] must end in ".css"' );
+ }
+
+ if ( isset( $options['nonmin_path'] ) ) {
+ $url = self::get_file_url_for_environment( $path, $options['nonmin_path'], $relative_to );
+ } else {
+ $url = plugins_url( $path, $relative_to );
+ }
+ $url = self::normalize_path( $url );
+ if ( null !== $options['minify'] ) {
+ $url = add_query_arg( 'minify', $options['minify'] ? 'true' : 'false', $url );
+ }
+
+ if ( $options['asset_path'] && file_exists( "$dir/{$options['asset_path']}" ) ) {
+ $asset = require "$dir/{$options['asset_path']}";
+ $options['dependencies'] = array_merge( $asset['dependencies'], $options['dependencies'] );
+ $options['css_dependencies'] = array_merge(
+ array_filter(
+ $asset['dependencies'],
+ function ( $d ) {
+ return wp_style_is( $d, 'registered' );
+ }
+ ),
+ $options['css_dependencies']
+ );
+ $ver = isset( $options['version'] ) ? $options['version'] : $asset['version'];
+ } else {
+ $ver = isset( $options['version'] ) ? $options['version'] : filemtime( "$dir/$path" );
+ }
+
+ wp_register_script( $handle, $url, $options['dependencies'], $ver, $options['in_footer'] );
+ if ( $options['async'] ) {
+ self::instance()->add_async_script( $handle );
+ }
+ if ( $options['textdomain'] ) {
+ // phpcs:ignore Jetpack.Functions.I18n.DomainNotLiteral
+ wp_set_script_translations( $handle, $options['textdomain'] );
+ } elseif ( in_array( 'wp-i18n', $options['dependencies'], true ) ) {
+ _doing_it_wrong(
+ __METHOD__,
+ /* translators: %s is the script handle. */
+ esc_html( sprintf( __( 'Script "%s" depends on wp-i18n but does not specify "textdomain"', 'jetpack-assets' ), $handle ) ),
+ ''
+ );
+ }
+
+ if ( $options['css_path'] && file_exists( "$dir/{$options['css_path']}" ) ) {
+ $csspath = $options['css_path'];
+ if ( is_rtl() ) {
+ $rtlcsspath = substr( $csspath, 0, -4 ) . '.rtl.css';
+ if ( file_exists( "$dir/$rtlcsspath" ) ) {
+ $csspath = $rtlcsspath;
+ }
+ }
+
+ $url = self::normalize_path( plugins_url( $csspath, $relative_to ) );
+ if ( null !== $options['minify'] ) {
+ $url = add_query_arg( 'minify', $options['minify'] ? 'true' : 'false', $url );
+ }
+ wp_register_style( $handle, $url, $options['css_dependencies'], $ver, $options['media'] );
+ wp_script_add_data( $handle, 'Jetpack::Assets::hascss', true );
+ } else {
+ wp_script_add_data( $handle, 'Jetpack::Assets::hascss', false );
+ }
+
+ if ( $options['enqueue'] ) {
+ self::enqueue_script( $handle );
+ }
+ }
+
+ /**
+ * Enqueue a script registered with `Assets::register_script`.
+ *
+ * @since 1.12.0
+ * @param string $handle Name of the script. Should be unique across both scripts and styles.
+ */
+ public static function enqueue_script( $handle ) {
+ wp_enqueue_script( $handle );
+ if ( wp_scripts()->get_data( $handle, 'Jetpack::Assets::hascss' ) ) {
+ wp_enqueue_style( $handle );
+ }
+ }
+
+ /**
+ * 'wp_default_scripts' action handler.
+ *
+ * This registers the `wp-jp-i18n-state` script for use by Webpack bundles built with
+ * `@automattic/i18n-loader-webpack-plugin`.
+ *
+ * @since 1.14.0
+ * @param \WP_Scripts $wp_scripts WP_Scripts instance.
+ */
+ public static function wp_default_scripts_hook( $wp_scripts ) {
+ $data = array(
+ 'baseUrl' => false,
+ 'locale' => determine_locale(),
+ 'domainMap' => array(),
+ );
+
+ $lang_dir = Jetpack_Constants::get_constant( 'WP_LANG_DIR' );
+ $abspath = Jetpack_Constants::get_constant( 'ABSPATH' );
+
+ if ( strpos( $lang_dir, $abspath ) === 0 ) {
+ $data['baseUrl'] = site_url( substr( trailingslashit( $lang_dir ), strlen( untrailingslashit( $abspath ) ) ) );
+ }
+
+ foreach ( self::$domain_map as $from => list( $to, $type ) ) {
+ $data['domainMap'][ $from ] = ( 'core' === $type ? '' : "{$type}/" ) . $to;
+ }
+
+ /**
+ * Filters the i18n state data for use by Webpack bundles built with
+ * `@automattic/i18n-loader-webpack-plugin`.
+ *
+ * @since 1.14.0
+ * @package assets
+ * @param array $data The state data to generate. Expected fields are:
+ * - `baseUrl`: (string|false) The URL to the languages directory. False if no URL could be determined.
+ * - `locale`: (string) The locale for the page.
+ * - `domainMap`: (string[]) A mapping from Composer package textdomains to the corresponding
+ * `plugins/textdomain` or `themes/textdomain` (or core `textdomain`, but that's unlikely).
+ */
+ $data = apply_filters( 'jetpack_i18n_state', $data );
+
+ if ( ! is_array( $data ) ||
+ ! isset( $data['baseUrl'] ) || ! ( is_string( $data['baseUrl'] ) || false === $data['baseUrl'] ) ||
+ ! isset( $data['locale'] ) || ! is_string( $data['locale'] ) ||
+ ! isset( $data['domainMap'] ) || ! is_array( $data['domainMap'] )
+ ) {
+ $js = 'console.warn( "I18n state deleted by jetpack_i18n_state hook" );';
+ } elseif ( ! $data['baseUrl'] ) {
+ $js = 'console.warn( "Failed to determine languages base URL. Is WP_LANG_DIR in the WordPress root?" );';
+ } else {
+ $data['domainMap'] = (object) $data['domainMap']; // Ensure it becomes a json object.
+ $js = 'wp.jpI18nState = ' . wp_json_encode( $data, JSON_UNESCAPED_SLASHES ) . ';';
+ }
+
+ // Depend on wp-i18n to ensure global `wp` exists and because anything needing this will need that too.
+ $wp_scripts->add( 'wp-jp-i18n-state', null, array( 'wp-i18n' ) );
+ $wp_scripts->add_inline_script( 'wp-jp-i18n-state', $js, 'before' );
+ }
+
+ // endregion .
+
+ // ////////////////////
+ // region Textdomain aliasing
+
+ /**
+ * Register a textdomain alias.
+ *
+ * Composer packages included in plugins will likely not use the textdomain of the plugin, while
+ * WordPress's i18n infrastructure will include the translations in the plugin's domain. This
+ * allows for mapping the package's domain to the plugin's.
+ *
+ * Since multiple plugins may use the same package, we include the package's version here so
+ * as to choose the most recent translations (which are most likely to match the package
+ * selected by jetpack-autoloader).
+ *
+ * @since 1.15.0
+ * @param string $from Domain to alias.
+ * @param string $to Domain to alias it to.
+ * @param string $totype What is the target of the alias: 'plugins', 'themes', or 'core'.
+ * @param string $ver Version of the `$from` domain.
+ * @throws InvalidArgumentException If arguments are invalid.
+ */
+ public static function alias_textdomain( $from, $to, $totype, $ver ) {
+ if ( ! in_array( $totype, array( 'plugins', 'themes', 'core' ), true ) ) {
+ throw new InvalidArgumentException( 'Type must be "plugins", "themes", or "core"' );
+ }
+
+ if (
+ did_action( 'wp_default_scripts' ) &&
+ // Don't complain during plugin activation.
+ ! defined( 'WP_SANDBOX_SCRAPING' )
+ ) {
+ _doing_it_wrong(
+ __METHOD__,
+ sprintf(
+ /* translators: 1: wp_default_scripts. 2: Name of the domain being aliased. */
+ esc_html__( 'Textdomain aliases should be registered before the %1$s hook. This notice was triggered by the %2$s domain.', 'jetpack-assets' ),
+ '<code>wp_default_scripts</code>',
+ '<code>' . esc_html( $from ) . '</code>'
+ ),
+ ''
+ );
+ }
+
+ if ( empty( self::$domain_map[ $from ] ) ) {
+ self::init_domain_map_hooks( $from, array() === self::$domain_map );
+ self::$domain_map[ $from ] = array( $to, $totype, $ver );
+ } elseif ( Semver::compare( $ver, self::$domain_map[ $from ][2] ) > 0 ) {
+ self::$domain_map[ $from ] = array( $to, $totype, $ver );
+ }
+ }
+
+ /**
+ * Register textdomain aliases from a mapping file.
+ *
+ * The mapping file is simply a PHP file that returns an array
+ * with the following properties:
+ * - 'domain': String, `$to`
+ * - 'type': String, `$totype`
+ * - 'packages': Array, mapping `$from` to `$ver`.
+ *
+ * @since 1.15.0
+ * @param string $file Mapping file.
+ */
+ public static function alias_textdomains_from_file( $file ) {
+ $data = require $file;
+ foreach ( $data['packages'] as $from => $ver ) {
+ self::alias_textdomain( $from, $data['domain'], $data['type'], $ver );
+ }
+ }
+
+ /**
+ * Register the hooks for textdomain aliasing.
+ *
+ * @param string $domain Domain to alias.
+ * @param bool $firstcall If this is the first call.
+ */
+ private static function init_domain_map_hooks( $domain, $firstcall ) {
+ // If WordPress's plugin API is available already, use it. If not,
+ // drop data into `$wp_filter` for `WP_Hook::build_preinitialized_hooks()`.
+ if ( function_exists( 'add_filter' ) ) {
+ $add_filter = 'add_filter';
+ } else {
+ $add_filter = function ( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) {
+ global $wp_filter;
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $wp_filter[ $hook_name ][ $priority ][] = array(
+ 'accepted_args' => $accepted_args,
+ 'function' => $callback,
+ );
+ };
+ }
+
+ $add_filter( "gettext_{$domain}", array( self::class, 'filter_gettext' ), 10, 3 );
+ $add_filter( "ngettext_{$domain}", array( self::class, 'filter_ngettext' ), 10, 5 );
+ $add_filter( "gettext_with_context_{$domain}", array( self::class, 'filter_gettext_with_context' ), 10, 4 );
+ $add_filter( "ngettext_with_context_{$domain}", array( self::class, 'filter_ngettext_with_context' ), 10, 6 );
+ if ( $firstcall ) {
+ $add_filter( 'load_script_translation_file', array( self::class, 'filter_load_script_translation_file' ), 10, 3 );
+ }
+ }
+
+ /**
+ * Filter for `gettext`.
+ *
+ * @since 1.15.0
+ * @param string $translation Translated text.
+ * @param string $text Text to translate.
+ * @param string $domain Text domain.
+ * @return string Translated text.
+ */
+ public static function filter_gettext( $translation, $text, $domain ) {
+ if ( $translation === $text ) {
+ // phpcs:ignore WordPress.WP.I18n
+ $newtext = __( $text, self::$domain_map[ $domain ][0] );
+ if ( $newtext !== $text ) {
+ return $newtext;
+ }
+ }
+ return $translation;
+ }
+
+ /**
+ * Filter for `ngettext`.
+ *
+ * @since 1.15.0
+ * @param string $translation Translated text.
+ * @param string $single The text to be used if the number is singular.
+ * @param string $plural The text to be used if the number is plural.
+ * @param string $number The number to compare against to use either the singular or plural form.
+ * @param string $domain Text domain.
+ * @return string Translated text.
+ */
+ public static function filter_ngettext( $translation, $single, $plural, $number, $domain ) {
+ if ( $translation === $single || $translation === $plural ) {
+ // phpcs:ignore WordPress.WP.I18n
+ $translation = _n( $single, $plural, $number, self::$domain_map[ $domain ][0] );
+ }
+ return $translation;
+ }
+
+ /**
+ * Filter for `gettext_with_context`.
+ *
+ * @since 1.15.0
+ * @param string $translation Translated text.
+ * @param string $text Text to translate.
+ * @param string $context Context information for the translators.
+ * @param string $domain Text domain.
+ * @return string Translated text.
+ */
+ public static function filter_gettext_with_context( $translation, $text, $context, $domain ) {
+ if ( $translation === $text ) {
+ // phpcs:ignore WordPress.WP.I18n
+ $translation = _x( $text, $context, self::$domain_map[ $domain ][0] );
+ }
+ return $translation;
+ }
+
+ /**
+ * Filter for `ngettext_with_context`.
+ *
+ * @since 1.15.0
+ * @param string $translation Translated text.
+ * @param string $single The text to be used if the number is singular.
+ * @param string $plural The text to be used if the number is plural.
+ * @param string $number The number to compare against to use either the singular or plural form.
+ * @param string $context Context information for the translators.
+ * @param string $domain Text domain.
+ * @return string Translated text.
+ */
+ public static function filter_ngettext_with_context( $translation, $single, $plural, $number, $context, $domain ) {
+ if ( $translation === $single || $translation === $plural ) {
+ // phpcs:ignore WordPress.WP.I18n
+ $translation = _nx( $single, $plural, $number, $context, self::$domain_map[ $domain ][0] );
+ }
+ return $translation;
+ }
+
+ /**
+ * Filter for `load_script_translation_file`.
+ *
+ * @since 1.15.0
+ * @param string|false $file Path to the translation file to load. False if there isn't one.
+ * @param string $handle Name of the script to register a translation domain to.
+ * @param string $domain The text domain.
+ */
+ public static function filter_load_script_translation_file( $file, $handle, $domain ) {
+ if ( false !== $file && isset( self::$domain_map[ $domain ] ) && ! is_readable( $file ) ) {
+ // Determine the part of the filename after the domain.
+ $suffix = basename( $file );
+ $l = strlen( $domain );
+ if ( substr( $suffix, 0, $l ) !== $domain || '-' !== $suffix[ $l ] ) {
+ return $file;
+ }
+ $suffix = substr( $suffix, $l );
+ $lang_dir = Jetpack_Constants::get_constant( 'WP_LANG_DIR' );
+
+ // Look for replacement files.
+ list( $newdomain, $type ) = self::$domain_map[ $domain ];
+ $newfile = $lang_dir . ( 'core' === $type ? '/' : "/{$type}/" ) . $newdomain . $suffix;
+ if ( is_readable( $newfile ) ) {
+ return $newfile;
+ }
+ }
+ return $file;
+ }
+
+ // endregion .
+
+}
+
+// Enable section folding in vim:
+// vim: foldmarker=//\ region,//\ endregion foldmethod=marker
+// .
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php
new file mode 100644
index 00000000..5a5c6591
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php
@@ -0,0 +1,122 @@
+<?php
+/**
+ * Simple semver version handling.
+ *
+ * We use this instead of something like `composer/semver` to avoid
+ * plugins needing to include yet-another dependency package. The
+ * amount of code we need here is pretty small.
+ *
+ * We use this instead of PHP's `version_compare()` because that doesn't
+ * handle prerelease versions in the way anyone other than PHP devs would
+ * expect, and silently breaks on various unexpected input.
+ *
+ * @package automattic/jetpack-assets
+ */
+
+namespace Automattic\Jetpack\Assets;
+
+use InvalidArgumentException;
+
+/**
+ * Simple semver version handling.
+ */
+class Semver {
+ /**
+ * Parse a semver version.
+ *
+ * @param string $version Version.
+ * @return array With components:
+ * - major: (int) Major version.
+ * - minor: (int) Minor version.
+ * - patch: (int) Patch version.
+ * - version: (string) Major.minor.patch.
+ * - prerelease: (string|null) Pre-release string.
+ * - buildinfo: (string|null) Build metadata string.
+ * @throws InvalidArgumentException If the version number is not in a recognized format.
+ */
+ public static function parse( $version ) {
+ // This is slightly looser than the official version from semver.org, in that leading zeros are allowed.
+ if ( ! preg_match( '/^(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(?:-(?P<prerelease>(?:[0-9a-zA-Z-]+)(?:\.(?:[0-9a-zA-Z-]+))*))?(?:\+(?P<buildinfo>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/', $version, $m ) ) {
+ throw new InvalidArgumentException( "Version number \"$version\" is not in a recognized format." );
+ }
+ $info = array(
+ 'major' => (int) $m['major'],
+ 'minor' => (int) $m['minor'],
+ 'patch' => (int) $m['patch'],
+ 'version' => sprintf( '%d.%d.%d', $m['major'], $m['minor'], $m['patch'] ),
+ 'prerelease' => isset( $m['prerelease'] ) && '' !== $m['prerelease'] ? $m['prerelease'] : null,
+ 'buildinfo' => isset( $m['buildinfo'] ) && '' !== $m['buildinfo'] ? $m['buildinfo'] : null,
+ );
+
+ if ( null !== $info['prerelease'] ) {
+ $sep = '';
+ $prerelease = '';
+ foreach ( explode( '.', $info['prerelease'] ) as $part ) {
+ if ( ctype_digit( $part ) ) {
+ $part = (int) $part;
+ }
+ $prerelease .= $sep . $part;
+ $sep = '.';
+ }
+ $info['prerelease'] = $prerelease;
+ }
+
+ return $info;
+ }
+
+ /**
+ * Compare two version numbers.
+ *
+ * @param string $a First version.
+ * @param string $b Second version.
+ * @return int Less than, equal to, or greater than 0 depending on whether `$a` is less than, equal to, or greater than `$b`.
+ * @throws InvalidArgumentException If the version numbers are not in a recognized format.
+ */
+ public static function compare( $a, $b ) {
+ $aa = self::parse( $a );
+ $bb = self::parse( $b );
+ if ( $aa['major'] !== $bb['major'] ) {
+ return $aa['major'] - $bb['major'];
+ }
+ if ( $aa['minor'] !== $bb['minor'] ) {
+ return $aa['minor'] - $bb['minor'];
+ }
+ if ( $aa['patch'] !== $bb['patch'] ) {
+ return $aa['patch'] - $bb['patch'];
+ }
+
+ if ( null === $aa['prerelease'] ) {
+ return null === $bb['prerelease'] ? 0 : 1;
+ }
+ if ( null === $bb['prerelease'] ) {
+ return -1;
+ }
+
+ $aaa = explode( '.', $aa['prerelease'] );
+ $bbb = explode( '.', $bb['prerelease'] );
+ $al = count( $aaa );
+ $bl = count( $bbb );
+ for ( $i = 0; $i < $al && $i < $bl; $i++ ) {
+ $a = $aaa[ $i ];
+ $b = $bbb[ $i ];
+ if ( ctype_digit( $a ) ) {
+ if ( ctype_digit( $b ) ) {
+ if ( (int) $a !== (int) $b ) {
+ return $a - $b;
+ }
+ } else {
+ return -1;
+ }
+ } elseif ( ctype_digit( $b ) ) {
+ return 1;
+ } else {
+ $tmp = strcmp( $a, $b );
+ if ( 0 !== $tmp ) {
+ return $tmp;
+ }
+ }
+ }
+ return $al - $bl;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/CHANGELOG.md
new file mode 100644
index 00000000..571fa485
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/CHANGELOG.md
@@ -0,0 +1,114 @@
+# 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).
+
+## [1.2.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-backup-pkg`.
+
+## [1.1.11] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.1.10] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.1.9] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [1.1.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.1.7] - 2021-10-26
+### Changed
+- Updated package dependencies.
+
+## [1.1.6] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.1.5] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.1.4] - 2021-09-28
+### Fixed
+- Register WP hooks even if WP isn't loaded yet.
+
+## [1.1.3] - 2021-08-31
+### Changed
+- Bump changelogger version
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- Updated package dependencies.
+
+## [1.1.2] - 2021-08-12
+### Added
+- Add package version tracking.
+
+## [1.1.1] - 2021-07-27
+### Added
+- Add a package version constant.
+
+### Changed
+- Updated package dependencies.
+
+## [1.1.0] - 2021-06-29
+### Added
+- Add backup-helper-script endpoints under the jetpack/v4 namespace.
+- Add backup real time endpoints.
+
+## [1.0.6] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.0.5] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.0.4] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+## [1.0.3] - 2021-01-19
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.0.2] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## 1.0.0 - 2019-10-29
+
+- Add API endpoints and Jetpack Backup package for managing Help…
+
+[1.2.0]: https://github.com/Automattic/jetpack-backup/compare/v1.1.11...v1.2.0
+[1.1.11]: https://github.com/Automattic/jetpack-backup/compare/v1.1.10...v1.1.11
+[1.1.10]: https://github.com/Automattic/jetpack-backup/compare/v1.1.9...v1.1.10
+[1.1.9]: https://github.com/Automattic/jetpack-backup/compare/v1.1.8...v1.1.9
+[1.1.8]: https://github.com/Automattic/jetpack-backup/compare/v1.1.7...v1.1.8
+[1.1.7]: https://github.com/Automattic/jetpack-backup/compare/v1.1.6...v1.1.7
+[1.1.6]: https://github.com/Automattic/jetpack-backup/compare/v1.1.5...v1.1.6
+[1.1.5]: https://github.com/Automattic/jetpack-backup/compare/v1.1.4...v1.1.5
+[1.1.4]: https://github.com/Automattic/jetpack-backup/compare/v1.1.3...v1.1.4
+[1.1.3]: https://github.com/Automattic/jetpack-backup/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/Automattic/jetpack-backup/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-backup/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-backup/compare/v1.0.6...v1.1.0
+[1.0.6]: https://github.com/Automattic/jetpack-backup/compare/v1.0.5...v1.0.6
+[1.0.5]: https://github.com/Automattic/jetpack-backup/compare/v1.0.4...v1.0.5
+[1.0.4]: https://github.com/Automattic/jetpack-backup/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-backup/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-backup/compare/v1.0.0...v1.0.2
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/actions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/actions.php
new file mode 100644
index 00000000..b9ae6aa5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/actions.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Action Hooks for Jetpack Backup module.
+ *
+ * @package automattic/jetpack-backup
+ */
+
+// If WordPress's plugin API is available already, use it. If not,
+// drop data into `$wp_filter` for `WP_Hook::build_preinitialized_hooks()`.
+if ( function_exists( 'add_filter' ) ) {
+ $add_filter = 'add_filter';
+ $add_action = 'add_action';
+} else {
+ $add_filter = function ( $name, $cb, $priority = 10, $accepted_args = 1 ) {
+ global $wp_filter;
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $wp_filter[ $name ][ $priority ][] = array(
+ 'accepted_args' => $accepted_args,
+ 'function' => $cb,
+ );
+ };
+ $add_action = $add_filter;
+}
+
+// Clean up expired Helper Scripts from a scheduled event.
+$add_action( 'jetpack_backup_cleanup_helper_scripts', array( 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager', 'cleanup_expired_helper_scripts' ) );
+
+// Register REST routes.
+$add_action( 'rest_api_init', array( 'Automattic\\Jetpack\\Backup\\REST_Controller', 'register_rest_routes' ) );
+
+// Set up package version hook.
+$add_filter( 'jetpack_package_versions', 'Automattic\\Jetpack\\Backup\\Package_Version::send_package_version_to_tracker' );
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php
new file mode 100644
index 00000000..58c54eb4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php
@@ -0,0 +1,347 @@
+<?php
+/**
+ * The Jetpack Backup Helper Script Manager class.
+ *
+ * @package automattic/jetpack-backup
+ */
+
+namespace Automattic\Jetpack\Backup;
+
+/**
+ * Helper_Script_Manager manages installation, deletion and cleanup of Helper Scripts
+ * to assist with backing up Jetpack Sites.
+ */
+class Helper_Script_Manager {
+
+ const TEMP_DIRECTORY = 'jetpack-temp';
+ const HELPER_HEADER = "<?php /* Jetpack Backup Helper Script */\n";
+ const EXPIRY_TIME = 8 * 3600; // 8 hours
+ const MAX_FILESIZE = 1024 * 1024; // 1 MiB
+
+ const README_LINES = array(
+ 'These files have been put on your server by Jetpack to assist with backups and restores of your site content. They are cleaned up automatically when we no longer need them.',
+ 'If you no longer have Jetpack connected to your site, you can delete them manually.',
+ 'If you have questions or need assistance, please contact Jetpack Support at https://jetpack.com/support/',
+ 'If you like to build amazing things with WordPress, you should visit automattic.com/jobs and apply to join the fun – mention this file when you apply!;',
+ );
+
+ const INDEX_FILE = '<?php // Silence is golden';
+
+ /**
+ * Installs a Helper Script, and returns its filesystem path and access url.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $script_body Helper Script file contents.
+ * @return array|WP_Error Either an array containing the path and url of the helper script, or an error.
+ */
+ public static function install_helper_script( $script_body ) {
+ // Check that the script body contains the correct header.
+ if ( strncmp( $script_body, self::HELPER_HEADER, strlen( self::HELPER_HEADER ) ) !== 0 ) {
+ return new \WP_Error( 'invalid_helper', 'Invalid Helper Script header' );
+ }
+
+ // Refuse to install a Helper Script that is too large.
+ if ( strlen( $script_body ) > self::MAX_FILESIZE ) {
+ return new \WP_Error( 'invalid_helper', 'Invalid Helper Script size' );
+ }
+
+ // Replace '[wp_path]' in the Helper Script with the WordPress installation location. Allows the Helper Script to find WordPress.
+ $script_body = str_replace( '[wp_path]', addslashes( ABSPATH ), $script_body );
+
+ // Create a jetpack-temp directory for the Helper Script.
+ $temp_directory = self::create_temp_directory();
+ if ( \is_wp_error( $temp_directory ) ) {
+ return $temp_directory;
+ }
+
+ // Generate a random filename, avoid clashes.
+ $max_attempts = 5;
+ for ( $attempt = 0; $attempt < $max_attempts; $attempt++ ) {
+ $file_key = wp_generate_password( 10, false );
+ $file_name = 'jp-helper-' . $file_key . '.php';
+ $file_path = trailingslashit( $temp_directory['path'] ) . $file_name;
+
+ if ( ! file_exists( $file_path ) ) {
+ // Attempt to write helper script.
+ if ( ! self::put_contents( $file_path, $script_body ) ) {
+ if ( file_exists( $file_path ) ) {
+ unlink( $file_path );
+ }
+
+ continue;
+ }
+
+ // Always schedule a cleanup run shortly after EXPIRY_TIME.
+ \wp_schedule_single_event( time() + self::EXPIRY_TIME + 60, 'jetpack_backup_cleanup_helper_scripts' );
+
+ // Success! Figure out the URL and return the path and URL.
+ return array(
+ 'path' => $file_path,
+ 'url' => trailingslashit( $temp_directory['url'] ) . $file_name,
+ );
+ }
+ }
+
+ return new \WP_Error( 'install_faied', 'Failed to install Helper Script' );
+ }
+
+ /**
+ * Given a path, verify it looks like a helper script and then delete it if so.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $path Path to Helper Script to delete.
+ * @return boolean True if the file is deleted (or does not exist).
+ */
+ public static function delete_helper_script( $path ) {
+ if ( ! file_exists( $path ) ) {
+ return true;
+ }
+
+ // Check this file looks like a JPR helper script.
+ if ( ! self::verify_file_header( $path, self::HELPER_HEADER ) ) {
+ return false;
+ }
+
+ return unlink( $path );
+ }
+
+ /**
+ * Search for Helper Scripts that are suspiciously old, and clean them out.
+ *
+ * @access public
+ * @static
+ */
+ public static function cleanup_expired_helper_scripts() {
+ self::cleanup_helper_scripts( time() - self::EXPIRY_TIME );
+ }
+
+ /**
+ * Search for and delete all Helper Scripts. Used during uninstallation.
+ *
+ * @access public
+ * @static
+ */
+ public static function delete_all_helper_scripts() {
+ self::cleanup_helper_scripts( null );
+ }
+
+ /**
+ * Search for and delete Helper Scripts. If an $expiry_time is specified, only delete Helper Scripts
+ * with an mtime older than $expiry_time. Otherwise, delete them all.
+ *
+ * @access public
+ * @static
+ *
+ * @param int|null $expiry_time If specified, only delete scripts older than $expiry_time.
+ */
+ public static function cleanup_helper_scripts( $expiry_time = null ) {
+ foreach ( self::get_install_locations() as $directory => $url ) {
+ $temp_dir = trailingslashit( $directory ) . self::TEMP_DIRECTORY;
+
+ if ( is_dir( $temp_dir ) ) {
+ // Find expired helper scripts and delete them.
+ $helper_scripts = glob( trailingslashit( $temp_dir ) . 'jp-helper-*.php' );
+ if ( is_array( $helper_scripts ) ) {
+ foreach ( $helper_scripts as $filename ) {
+ if ( null === $expiry_time || filemtime( $filename ) < $expiry_time ) {
+ self::delete_helper_script( $filename );
+ }
+ }
+ }
+
+ // Delete the directory if it's empty now.
+ self::delete_empty_helper_directory( $temp_dir );
+ }
+ }
+ }
+
+ /**
+ * Delete a helper script directory if it's empty
+ *
+ * @access public
+ * @static
+ *
+ * @param string $dir Path to Helper Script directory.
+ * @return boolean True if the directory is deleted
+ */
+ private static function delete_empty_helper_directory( $dir ) {
+ if ( ! is_dir( $dir ) ) {
+ return false;
+ }
+
+ // Tally the files in the target directory, and reject if there are too many.
+ $glob_path = trailingslashit( $dir ) . '*';
+ $dir_contents = glob( $glob_path );
+ if ( count( $dir_contents ) > 2 ) {
+ return false;
+ }
+
+ // Check that the only remaining files are a README and index.php generated by this system.
+ $allowed_files = array(
+ 'README' => self::README_LINES[0],
+ 'index.php' => self::INDEX_FILE,
+ );
+
+ foreach ( $dir_contents as $path ) {
+ $basename = basename( $path );
+ if ( ! isset( $allowed_files[ $basename ] ) ) {
+ return false;
+ }
+
+ // Verify the file starts with the expected contents.
+ if ( ! self::verify_file_header( $path, $allowed_files[ $basename ] ) ) {
+ return false;
+ }
+
+ if ( ! unlink( $path ) ) {
+ return false;
+ }
+ }
+
+ // If the directory is now empty, delete it.
+ if ( count( glob( $glob_path ) ) === 0 ) {
+ return rmdir( $dir );
+ }
+
+ return false;
+ }
+
+ /**
+ * Find an appropriate location for a jetpack-temp folder, and create one
+ *
+ * @access public
+ * @static
+ *
+ * @return WP_Error|array Array containing the url and path of the temp directory if successful, WP_Error if not.
+ */
+ private static function create_temp_directory() {
+ foreach ( self::get_install_locations() as $directory => $url ) {
+ // Check if the install location is writeable.
+ if ( ! is_writeable( $directory ) ) {
+ continue;
+ }
+
+ // Create if one doesn't already exist.
+ $temp_dir = trailingslashit( $directory ) . self::TEMP_DIRECTORY;
+ if ( ! is_dir( $temp_dir ) ) {
+ if ( ! mkdir( $temp_dir ) ) {
+ continue;
+ }
+
+ // Temp directory created. Drop a README and index.php file in there.
+ self::write_supplementary_temp_files( $temp_dir );
+ }
+
+ return array(
+ 'path' => trailingslashit( $directory ) . self::TEMP_DIRECTORY,
+ 'url' => trailingslashit( $url ) . self::TEMP_DIRECTORY,
+ );
+ }
+
+ return new \WP_Error( 'temp_directory', 'Failed to create jetpack-temp directory' );
+ }
+
+ /**
+ * Write out an index.php file and a README file for a new jetpack-temp directory.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $dir Path to Helper Script directory.
+ */
+ private static function write_supplementary_temp_files( $dir ) {
+ $readme_path = trailingslashit( $dir ) . 'README';
+ self::put_contents( $readme_path, implode( "\n\n", self::README_LINES ) );
+
+ $index_path = trailingslashit( $dir ) . 'index.php';
+ self::put_contents( $index_path, self::INDEX_FILE );
+ }
+
+ /**
+ * Write a file to the specified location with the specified contents.
+ *
+ * @access private
+ * @static
+ *
+ * @param string $file_path Path to write to.
+ * @param string $contents File contents to write.
+ * @return boolean True if successfully written.
+ */
+ private static function put_contents( $file_path, $contents ) {
+ global $wp_filesystem;
+
+ if ( ! function_exists( '\\WP_Filesystem' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ if ( ! \WP_Filesystem() ) {
+ return false;
+ }
+
+ return $wp_filesystem->put_contents( $file_path, $contents );
+ }
+
+ /**
+ * Checks that a file exists, is readable, and has the expected header.
+ *
+ * @access private
+ * @static
+ *
+ * @param string $file_path File to verify.
+ * @param string $expected_header Header that the file should have.
+ * @return boolean True if the file exists, is readable, and the header matches.
+ */
+ private static function verify_file_header( $file_path, $expected_header ) {
+ global $wp_filesystem;
+
+ if ( ! function_exists( '\\WP_Filesystem' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ if ( ! \WP_Filesystem() ) {
+ return false;
+ }
+
+ // Verify the file exists and is readable.
+ if ( ! $wp_filesystem->exists( $file_path ) || ! $wp_filesystem->is_readable( $file_path ) ) {
+ return false;
+ }
+
+ // Verify that the file isn't too big or small.
+ $file_size = $wp_filesystem->size( $file_path );
+ if ( $file_size < strlen( $expected_header ) || $file_size > self::MAX_FILESIZE ) {
+ return false;
+ }
+
+ // Read the file and verify its header.
+ $contents = $wp_filesystem->get_contents( $file_path );
+ return ( strncmp( $contents, $expected_header, strlen( $expected_header ) ) === 0 );
+ }
+
+ /**
+ * Gets an associative array of possible places to install a jetpack-temp directory, along with the URL to access each.
+ *
+ * @access private
+ * @static
+ *
+ * @return array Array, with keys specifying the full path of install locations, and values with the equivalent URL.
+ */
+ public static function get_install_locations() {
+ // Include WordPress root and wp-content.
+ $install_locations = array(
+ \ABSPATH => \get_site_url(),
+ \WP_CONTENT_DIR => \WP_CONTENT_URL,
+ );
+
+ // Include uploads folder.
+ $upload_dir_info = \wp_upload_dir();
+ $install_locations[ $upload_dir_info['basedir'] ] = $upload_dir_info['baseurl'];
+
+ return $install_locations;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php
new file mode 100644
index 00000000..b38415bf
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * The Package_Version class.
+ *
+ * @package automattic/jetpack-backup
+ */
+
+namespace Automattic\Jetpack\Backup;
+
+/**
+ * The Package_Version class.
+ */
+class Package_Version {
+
+ const PACKAGE_VERSION = '1.2.0';
+
+ const PACKAGE_SLUG = 'backup';
+
+ /**
+ * Adds the package slug and version to the package version tracker's data.
+ *
+ * @param array $package_versions The package version array.
+ *
+ * @return array The packge version array.
+ */
+ public static function send_package_version_to_tracker( $package_versions ) {
+ $package_versions[ self::PACKAGE_SLUG ] = self::PACKAGE_VERSION;
+ return $package_versions;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php
new file mode 100644
index 00000000..087aba84
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php
@@ -0,0 +1,526 @@
+<?php
+/**
+ * The Backup Rest Controller class.
+ * Registers the REST routes for Backup.
+ *
+ * @package automattic/jetpack-backup
+ */
+
+namespace Automattic\Jetpack\Backup;
+
+use Automattic\Jetpack\Connection\Rest_Authentication;
+use Automattic\Jetpack\Sync\Actions as Sync_Actions;
+use WP_Error;
+use WP_REST_Request;
+use WP_REST_Server;
+
+/**
+ * Registers the REST routes for Backup.
+ */
+class REST_Controller {
+ /**
+ * Registers the REST routes for Backup.
+ *
+ * @access public
+ * @static
+ */
+ public static function register_rest_routes() {
+ // Install a Helper Script to assist Jetpack Backup fetch data.
+ register_rest_route(
+ 'jetpack/v4',
+ '/backup-helper-script',
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => __CLASS__ . '::install_backup_helper_script',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ 'args' => array(
+ 'helper' => array(
+ 'description' => __( 'base64 encoded Backup Helper Script body.', 'jetpack-backup-pkg' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Delete a Backup Helper Script.
+ register_rest_route(
+ 'jetpack/v4',
+ '/backup-helper-script',
+ array(
+ 'methods' => WP_REST_Server::DELETABLE,
+ 'callback' => __CLASS__ . '::delete_backup_helper_script',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ 'args' => array(
+ 'path' => array(
+ 'description' => __( 'Path to Backup Helper Script', 'jetpack-backup-pkg' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Fetch a backup of a database object, along with all of its metadata.
+ register_rest_route(
+ 'jetpack/v4',
+ '/database-object/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_database_object_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ 'args' => array(
+ 'object_type' => array(
+ 'description' => __( 'Type of object to fetch from the database', 'jetpack-backup-pkg' ),
+ 'required' => true,
+ 'validate_callback' => function ( $value ) {
+ if ( ! is_string( $value ) ) {
+ return new WP_Error(
+ 'rest_invalid_param',
+ __( 'The object_type argument must be a non-empty string.', 'jetpack-backup-pkg' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ $allowed_object_types = array_keys( self::get_allowed_object_types() );
+
+ if ( ! in_array( $value, $allowed_object_types, true ) ) {
+ return new WP_Error(
+ 'rest_invalid_param',
+ sprintf(
+ /* translators: %s: comma-separated list of allowed object types */
+ __( 'The object_type argument should be one of %s', 'jetpack-backup-pkg' ),
+ implode( ', ', $allowed_object_types )
+ ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return true;
+ },
+ ),
+ 'object_id' => array(
+ 'description' => __( 'ID of the database object to fetch', 'jetpack-backup-pkg' ),
+ 'type' => 'integer',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Fetch a backup of an option.
+ register_rest_route(
+ 'jetpack/v4',
+ '/options/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_options_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ 'args' => array(
+ 'name' => array(
+ 'description' => __( 'One or more option names to include in the backup', 'jetpack-backup-pkg' ),
+ 'validate_callback' => function ( $value ) {
+ $is_valid = is_array( $value ) || is_string( $value );
+ if ( ! $is_valid ) {
+ return new WP_Error( 'rest_invalid_param', __( 'The name argument should be an option name or an array of option names', 'jetpack-backup-pkg' ), array( 'status' => 400 ) );
+ }
+
+ return true;
+ },
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Fetch a backup of a comment, along with all of its metadata.
+ register_rest_route(
+ 'jetpack/v4',
+ '/comments/(?P<id>\d+)/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_comment_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ )
+ );
+
+ // Fetch a backup of a post, along with all of its metadata.
+ register_rest_route(
+ 'jetpack/v4',
+ '/posts/(?P<id>\d+)/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_post_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ )
+ );
+
+ // Fetch a backup of a term, along with all of its metadata.
+ register_rest_route(
+ 'jetpack/v4',
+ '/terms/(?P<id>\d+)/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_term_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ )
+ );
+
+ // Fetch a backup of a user, along with all of its metadata.
+ register_rest_route(
+ 'jetpack/v4',
+ '/users/(?P<id>\d+)/backup',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::fetch_user_backup',
+ 'permission_callback' => __CLASS__ . '::backup_permissions_callback',
+ )
+ );
+ }
+
+ /**
+ * The Backup endpoints should only be available via site-level authentication.
+ * This means that the corresponding endpoints can only be accessible from WPCOM.
+ *
+ * @access public
+ * @static
+ *
+ * @return bool|WP_Error True if a blog token was used to sign the request, WP_Error otherwise.
+ */
+ public static function backup_permissions_callback() {
+ if ( Rest_Authentication::is_signed_with_blog_token() ) {
+ return true;
+ }
+
+ $error_msg = esc_html__(
+ 'You are not allowed to perform this action.',
+ 'jetpack-backup-pkg'
+ );
+
+ return new WP_Error( 'rest_forbidden', $error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Install the Backup Helper Script.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array|WP_Error Returns the result of Helper Script installation. Returns one of:
+ * - WP_Error on failure, or
+ * - An array with installation info on success:
+ * 'path' (string) The sinstallation path.
+ * 'url' (string) The access url.
+ * 'abspath' (string) The abspath.
+ */
+ public static function install_backup_helper_script( $request ) {
+ $helper_script = $request->get_param( 'helper' );
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ $helper_script = base64_decode( $helper_script );
+ if ( ! $helper_script ) {
+ return new WP_Error( 'invalid_args', __( 'Helper script body must be base64 encoded', 'jetpack-backup-pkg' ), 400 );
+ }
+
+ $installation_info = Helper_Script_Manager::install_helper_script( $helper_script );
+ Helper_Script_Manager::cleanup_expired_helper_scripts();
+
+ // Include ABSPATH with successful result.
+ if ( ! is_wp_error( $installation_info ) ) {
+ $installation_info['abspath'] = ABSPATH;
+ }
+
+ return rest_ensure_response( $installation_info );
+ }
+
+ /**
+ * Delete a Backup Helper Script.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array An array with 'success' key indicating the result of the delete operation.
+ */
+ public static function delete_backup_helper_script( $request ) {
+ $path_to_helper_script = $request->get_param( 'path' );
+
+ $deleted = Helper_Script_Manager::delete_helper_script( $path_to_helper_script );
+ Helper_Script_Manager::cleanup_expired_helper_scripts();
+
+ return rest_ensure_response(
+ array(
+ 'success' => $deleted,
+ )
+ );
+ }
+
+ /**
+ * Fetch a backup of a database object, along with all of its metadata.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_database_object_backup( $request ) {
+ global $wpdb;
+
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $allowed_object_types = self::get_allowed_object_types();
+ // Safe to do this as we have already validated the object_type key exists in self::get_allowed_object_types().
+ $object_type = $allowed_object_types[ $request->get_param( 'object_type' ) ];
+ $object_id = $request->get_param( 'object_id' );
+ $table = $wpdb->prefix . $object_type['table'];
+ $id_field = $object_type['id_field'];
+
+ // Fetch the requested object.
+ $object = $wpdb->get_row(
+ $wpdb->prepare(
+ 'SELECT * FROM `' . $table . '` WHERE `' . $id_field . '` = %d', // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $object_id
+ )
+ );
+
+ if ( empty( $object ) ) {
+ return new WP_Error( 'object_not_found', __( 'Object not found', 'jetpack-backup-pkg' ), array( 'status' => 404 ) );
+ }
+
+ $result = array( 'object' => $object );
+
+ // Fetch associated metadata (if this object type has any).
+ if ( ! empty( $object_type['meta_type'] ) ) {
+ $result['meta'] = get_metadata( $object_type['meta_type'], $object_id );
+ }
+
+ // If there is a child linked table (eg: woocommerce_tax_rate_locations), fetch linked records.
+ if ( ! empty( $object_type['child_table'] ) ) {
+ $child_table = $wpdb->prefix . $object_type['child_table'];
+ $child_id_field = $object_type['child_id_field'];
+
+ $result['children'] = $wpdb->get_results(
+ $wpdb->prepare(
+ 'SELECT * FROM `' . $child_table . '` where `' . $child_id_field . '` = %d', // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $object_id
+ )
+ );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Fetch a backup of an option.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_options_backup( $request ) {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $option_names = (array) $request->get_param( 'name' );
+
+ $options = array_map( 'self::get_option_row', $option_names );
+ return array( 'options' => $options );
+ }
+
+ /**
+ * Fetch a backup of a comment, along with all of its metadata.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_comment_backup( $request ) {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $comment_id = $request['id'];
+ $comment = get_comment( $comment_id );
+
+ if ( empty( $comment ) ) {
+ return new WP_Error( 'comment_not_found', __( 'Comment not found', 'jetpack-backup-pkg' ), array( 'status' => 404 ) );
+ }
+
+ $allowed_keys = array(
+ 'comment_ID',
+ 'comment_post_ID',
+ 'comment_author',
+ 'comment_author_email',
+ 'comment_author_url',
+ 'comment_author_IP',
+ 'comment_date',
+ 'comment_date_gmt',
+ 'comment_content',
+ 'comment_karma',
+ 'comment_approved',
+ 'comment_agent',
+ 'comment_type',
+ 'comment_parent',
+ 'user_id',
+ );
+
+ $comment = array_intersect_key( $comment->to_array(), array_flip( $allowed_keys ) );
+
+ $comment_meta = get_comment_meta( $comment['comment_ID'] );
+
+ return array(
+ 'comment' => $comment,
+ 'meta' => is_array( $comment_meta ) ? $comment_meta : array(),
+ );
+ }
+
+ /**
+ * Fetch a backup of a post, along with all of its metadata.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_post_backup( $request ) {
+ global $wpdb;
+
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $post_id = $request['id'];
+ $post = get_post( $post_id );
+
+ if ( empty( $post ) ) {
+ return new WP_Error( 'post_not_found', __( 'Post not found', 'jetpack-backup-pkg' ), array( 'status' => 404 ) );
+ }
+
+ // Fetch terms associated with this post object.
+ $terms = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT term_taxonomy_id, term_order FROM {$wpdb->term_relationships} WHERE object_id = %d;",
+ $post->ID
+ )
+ );
+
+ return array(
+ 'post' => (array) $post,
+ 'meta' => get_post_meta( $post->ID ),
+ 'terms' => (array) $terms,
+ );
+ }
+
+ /**
+ * Fetch a backup of a term, along with all of its metadata.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_term_backup( $request ) {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $term_id = $request['id'];
+ $term = get_term( $term_id );
+
+ if ( empty( $term ) ) {
+ return new WP_Error( 'term_not_found', __( 'Term not found', 'jetpack-backup-pkg' ), array( 'status' => 404 ) );
+ }
+
+ return array(
+ 'term' => (array) $term,
+ 'meta' => get_term_meta( $term_id ),
+ );
+ }
+
+ /**
+ * Fetch a backup of a user, along with all of its metadata.
+ *
+ * @access public
+ * @static
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @return array
+ */
+ public static function fetch_user_backup( $request ) {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ Sync_Actions::mark_sync_read_only();
+
+ $user_id = $request['id'];
+ $user = get_user_by( 'id', $user_id );
+
+ if ( empty( $user ) ) {
+ return new WP_Error( 'user_not_found', __( 'User not found', 'jetpack-backup-pkg' ), array( 'status' => 404 ) );
+ }
+
+ return array(
+ 'user' => $user->to_array(),
+ 'meta' => get_user_meta( $user->ID ),
+ );
+ }
+
+ /**
+ * Get allowed object types for the '/database-object/backup' endpoint.
+ *
+ * @access private
+ * @static
+ *
+ * @return array
+ */
+ private static function get_allowed_object_types() {
+ return array(
+ 'woocommerce_attribute' => array(
+ 'table' => 'woocommerce_attribute_taxonomies',
+ 'id_field' => 'attribute_id',
+ ),
+ 'woocommerce_downloadable_product_permission' => array(
+ 'table' => 'woocommerce_downloadable_product_permissions',
+ 'id_field' => 'permission_id',
+ ),
+ 'woocommerce_order_item' => array(
+ 'table' => 'woocommerce_order_items',
+ 'id_field' => 'order_item_id',
+ 'meta_type' => 'order_item',
+ ),
+ 'woocommerce_payment_token' => array(
+ 'table' => 'woocommerce_payment_tokens',
+ 'id_field' => 'token_id',
+ 'meta_type' => 'payment_token',
+ ),
+ 'woocommerce_tax_rate' => array(
+ 'table' => 'woocommerce_tax_rates',
+ 'id_field' => 'tax_rate_id',
+ 'child_table' => 'woocommerce_tax_rate_locations',
+ 'child_id_field' => 'tax_rate_id',
+ ),
+ 'woocommerce_webhook' => array(
+ 'table' => 'wc_webhooks',
+ 'id_field' => 'webhook_id',
+ ),
+ );
+ }
+
+ /**
+ * Fetch option row by option name.
+ *
+ * @access private
+ * @static
+ *
+ * @param string $name The option name.
+ * @return object|null Database query result as object format specified or null on failure.
+ */
+ private static function get_option_row( $name ) {
+ global $wpdb;
+ return $wpdb->get_row( $wpdb->prepare( "select * from `{$wpdb->options}` where option_name = %s", $name ) );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/CHANGELOG.md
new file mode 100644
index 00000000..83a23092
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/CHANGELOG.md
@@ -0,0 +1,110 @@
+# 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).
+
+## [1.4.9] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.4.8] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.4.7] - 2021-11-23
+### Changed
+- Updated package dependencies
+
+## [1.4.6] - 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.5] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.4.4] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.4.3] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.4.2] - 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.
+
+## [1.4.1] - 2021-06-29
+### Changed
+- Update docs to replace yarn with pnpm.
+
+## [1.4.0] - 2021-05-12
+### Added
+- Add helper method to determine if the current theme is an FSE/Site editor theme.
+- Adds an attribute to paid blocks to support hiding nested upgrade nudges on the frontend.
+
+### Changed
+- Updated package dependencies.
+
+## [1.3.0] - 2021-03-22
+### Added
+- Composer alias for dev-master, to improve dependencies
+- Enable GitHub action for auto-tagging releases from monorepo pushes.
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Add editor style dependency when registering Jetpack blocks to ensure support for the new site editor.
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.2.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.2.1] - 2021-01-20
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.2.0] - 2020-12-07
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.1.1] - 2020-11-13
+
+- Codecoverage: fix reports
+- Updated PHPCS: Packages and Debugger
+
+## [1.1.0] - 2020-09-25
+
+- Blocks: add block registration to package
+
+## 1.0.0 - 2020-09-17
+
+- Blocks: introduce new package for block management
+
+[1.4.9]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.8...v1.4.9
+[1.4.8]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.7...v1.4.8
+[1.4.7]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-blocks/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-blocks/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-blocks/compare/v1.2.2...v1.3.0
+[1.2.2]: https://github.com/Automattic/jetpack-blocks/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/Automattic/jetpack-blocks/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-blocks/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-blocks/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-blocks/compare/v1.0.0...v1.1.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php
new file mode 100644
index 00000000..2ddf6f3d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php
@@ -0,0 +1,291 @@
+<?php
+/** Blocks package.
+ *
+ * @since 1.1.0
+ *
+ * This package lifts elements from Jetpack's Jetpack_Gutenberg class.
+ * It is now an standalone package reusable outside Jetpack.
+ *
+ * @package automattic/jetpack-blocks
+ */
+
+namespace Automattic\Jetpack;
+
+use Jetpack_Gutenberg;
+
+/**
+ * Register and manage blocks within a plugin. Used to manage block registration, enqueues, and more.
+ *
+ * @since 1.1.0
+ */
+class Blocks {
+ /**
+ * Wrapper function to safely register a Gutenberg block type
+ *
+ * @see register_block_type
+ * @see Automattic\Jetpack\Blocks::is_gutenberg_version_available
+ *
+ * @since 1.1.0
+ *
+ * @param string $slug Slug of the block.
+ * @param array $args {
+ * Arguments that are passed into register_block_type.
+ * See register_block_type for full list of arguments.
+ * Can also include 2 extra arguments not currently supported by register_block_type.
+ *
+ * @type array $version_requirements Array containing required Gutenberg version and, if known, the WordPress version that was released with this minimum version.
+ * @type bool $plan_check Should we check for a specific plan before registering the block.
+ * }
+ *
+ * @return WP_Block_Type|false The registered block type on success, or false on failure.
+ */
+ public static function jetpack_register_block( $slug, $args = array() ) {
+ if ( 0 !== strpos( $slug, 'jetpack/' ) && ! strpos( $slug, '/' ) ) {
+ _doing_it_wrong( 'jetpack_register_block', 'Prefix the block with jetpack/ ', 'Jetpack 9.0.0' );
+ $slug = 'jetpack/' . $slug;
+ }
+
+ if (
+ isset( $args['version_requirements'] )
+ && ! self::is_gutenberg_version_available( $args['version_requirements'], $slug )
+ ) {
+ return false;
+ }
+
+ // Checking whether block is registered to ensure it isn't registered twice.
+ if ( self::is_registered( $slug ) ) {
+ return false;
+ }
+
+ $feature_name = self::remove_extension_prefix( $slug );
+
+ // This is only useful in Jetpack.
+ if ( ! self::is_standalone_block() ) {
+ // If the block is dynamic, and a Jetpack block, wrap the render_callback to check availability.
+ if ( ! empty( $args['plan_check'] ) ) {
+ // Set up attributes.
+ if ( ! isset( $args['attributes'] ) ) {
+ $args['attributes'] = array();
+ }
+ $args['attributes'] = array_merge(
+ $args['attributes'],
+ array(
+ // Indicates that this block should display an upgrade nudge on the frontend when applicable.
+ 'shouldDisplayFrontendBanner' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ ),
+ )
+ );
+ if ( isset( $args['render_callback'] ) ) {
+ $args['render_callback'] = Jetpack_Gutenberg::get_render_callback_with_availability_check( $feature_name, $args['render_callback'] );
+ }
+ $method_name = 'set_availability_for_plan';
+ } else {
+ $method_name = 'set_extension_available';
+ }
+
+ add_action(
+ 'jetpack_register_gutenberg_extensions',
+ function () use ( $feature_name, $method_name ) {
+ call_user_func( array( 'Jetpack_Gutenberg', $method_name ), $feature_name );
+ }
+ );
+
+ // Ensure editor styles are registered so that the site editor knows about the
+ // editor style dependency when copying styles to the editor iframe.
+ if ( ! isset( $args['editor_style'] ) ) {
+ $args['editor_style'] = 'jetpack-blocks-editor';
+ }
+ }
+
+ return register_block_type( $slug, $args );
+ }
+
+ /**
+ * Check if an extension/block is already registered
+ *
+ * @since 1.1.0
+ *
+ * @param string $slug Name of extension/block to check.
+ *
+ * @return bool
+ */
+ public static function is_registered( $slug ) {
+ return \WP_Block_Type_Registry::get_instance()->is_registered( $slug );
+ }
+
+ /**
+ * Remove the 'jetpack/' or jetpack-' prefix from an extension name
+ *
+ * @since 1.1.0
+ *
+ * @param string $extension_name The extension name.
+ *
+ * @return string The unprefixed extension name.
+ */
+ public static function remove_extension_prefix( $extension_name ) {
+ if ( 0 === strpos( $extension_name, 'jetpack/' ) || 0 === strpos( $extension_name, 'jetpack-' ) ) {
+ return substr( $extension_name, strlen( 'jetpack/' ) );
+ }
+ return $extension_name;
+ }
+
+ /**
+ * Check to see if a minimum version of Gutenberg is available. Because a Gutenberg version is not available in
+ * php if the Gutenberg plugin is not installed, if we know which minimum WP release has the required version we can
+ * optionally fall back to that.
+ *
+ * @since 1.1.0
+ *
+ * @param array $version_requirements {
+ * An array containing the required Gutenberg version and, if known, the WordPress version that was released with this minimum version.
+ *
+ * @type string $gutenberg Gutenberg version.
+ * @type string $wp Optional. WordPress version.
+ * }
+ * @param string $slug The slug of the block or plugin that has the Gutenberg version requirement.
+ *
+ * @return boolean True if the version of Gutenberg required by the block or plugin is available.
+ */
+ public static function is_gutenberg_version_available( $version_requirements, $slug ) {
+ global $wp_version;
+
+ // Bail if we don't at least have the Gutenberg version requirement, the WP version is optional.
+ if ( empty( $version_requirements['gutenberg'] ) ) {
+ return false;
+ }
+
+ // If running a local dev build of Gutenberg plugin GUTENBERG_DEVELOPMENT_MODE is set so assume correct version.
+ if ( defined( 'GUTENBERG_DEVELOPMENT_MODE' ) && GUTENBERG_DEVELOPMENT_MODE ) {
+ return true;
+ }
+
+ $version_available = false;
+
+ // If running a production build of the Gutenberg plugin then GUTENBERG_VERSION is set, otherwise if WP version
+ // with required version of Gutenberg is known check that.
+ if ( defined( 'GUTENBERG_VERSION' ) ) {
+ $version_available = version_compare( GUTENBERG_VERSION, $version_requirements['gutenberg'], '>=' );
+ } elseif ( ! empty( $version_requirements['wp'] ) ) {
+ $version_available = version_compare( $wp_version, $version_requirements['wp'], '>=' );
+ }
+
+ if (
+ ! $version_available
+ && ! self::is_standalone_block() // This is only useful in Jetpack.
+ ) {
+ Jetpack_Gutenberg::set_extension_unavailable(
+ $slug,
+ 'incorrect_gutenberg_version',
+ array(
+ 'required_feature' => $slug,
+ 'required_version' => $version_requirements,
+ 'current_version' => array(
+ 'wp' => $wp_version,
+ 'gutenberg' => defined( 'GUTENBERG_VERSION' ) ? GUTENBERG_VERSION : null,
+ ),
+ )
+ );
+ }
+
+ return $version_available;
+ }
+
+ /**
+ * Get CSS classes for a block.
+ *
+ * @since 1.1.0
+ *
+ * @param string $slug Block slug.
+ * @param array $attr Block attributes.
+ * @param array $extra Potential extra classes you may want to provide.
+ *
+ * @return string $classes List of CSS classes for a block.
+ */
+ public static function classes( $slug, $attr, $extra = array() ) {
+ if ( empty( $slug ) ) {
+ return '';
+ }
+
+ // Basic block name class.
+ $classes = array(
+ 'wp-block-jetpack-' . $slug,
+ );
+
+ // Add alignment if provided.
+ if (
+ ! empty( $attr['align'] )
+ && in_array( $attr['align'], array( 'left', 'center', 'right', 'wide', 'full' ), true )
+ ) {
+ $classes[] = 'align' . $attr['align'];
+ }
+
+ // Add custom classes if provided in the block editor.
+ if ( ! empty( $attr['className'] ) ) {
+ $classes[] = $attr['className'];
+ }
+
+ // Add any extra classes.
+ if ( is_array( $extra ) && ! empty( $extra ) ) {
+ $classes = array_merge( $classes, array_filter( $extra ) );
+ }
+
+ return implode( ' ', $classes );
+ }
+
+ /**
+ * Does the page return AMP content.
+ *
+ * @since 1.1.0
+ *
+ * @return bool $is_amp_request Are we on an AMP view.
+ */
+ public static function is_amp_request() {
+ $is_amp_request = ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() );
+
+ /** This filter is documented in 3rd-party/class.jetpack-amp-support.php */
+ return apply_filters( 'jetpack_is_amp_request', $is_amp_request );
+ }
+
+ /**
+ * Is the current theme an FSE/Site Editor theme.
+ *
+ * @since 1.4.0
+ *
+ * @return bool True if the current theme is an FSE/Site Editor theme.
+ */
+ public static function is_fse_theme() {
+ $is_fse_theme = function_exists( 'gutenberg_is_fse_theme' ) && gutenberg_is_fse_theme();
+
+ /**
+ * Returns true if the current theme is an FSE/Site Editor theme.
+ *
+ * @since 1.4.0
+ *
+ * @param boolean $is_fse_theme Is the theme an FSE theme.
+ */
+ return apply_filters( 'jetpack_is_fse_theme', $is_fse_theme );
+ }
+
+ /**
+ * Check whether or the block being registered is a standalone block,
+ * running in a context outside of the Jetpack plugin.
+ *
+ * @since 1.3.0
+ *
+ * @return bool
+ */
+ public static function is_standalone_block() {
+ $is_standalone_block = ! class_exists( Jetpack_Gutenberg::class );
+
+ /**
+ * Returns true if the block is not being registered within a Jetpack plugin context.
+ *
+ * @since 1.3.0
+ *
+ * @param boolean $is_standalone_block Is the block running standalone versus as part of the Jetpack plugin.
+ */
+ return apply_filters( 'jetpack_is_standalone_block', $is_standalone_block );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/CHANGELOG.md
new file mode 100644
index 00000000..76993fe5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/CHANGELOG.md
@@ -0,0 +1,119 @@
+# 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).
+
+## [1.6.8] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.6.7] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.6.6] - 2021-09-28
+### Fixed
+- Register WP hooks even if WP isn't loaded yet.
+
+## [1.6.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.6.4] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.6.3] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+## [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-07
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.5.1] - 2020-10-28
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.5.0] - 2020-10-01
+
+- API: Remove the constant `JETPACK_CLIENT__HTTPS`.
+
+## [1.4.0] - 2020-08-19
+
+- Compat Package: Fix method declaration compatibility
+
+## [1.3.0] - 2020-06-10
+
+- Various: Update use of whitelist/blacklist
+
+## [1.2.0] - 2020-04-28
+
+- Correct inline documentation "Array" type
+- Compat: use require_once instead of jetpack_require_lib()
+
+## [1.1.0] - 2020-03-10
+
+- Sync Package: Add readme skeleton (#14945)
+
+## [1.0.5] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.4] - 2019-11-08
+
+- Move fix_url_for_bad_hosts from Jetpack class to Connection pa…
+
+## [1.0.3] - 2019-10-29
+
+- PHPCS: Rest of the packages
+- Update Prettier and reformat files
+
+## [1.0.2] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+- Janitorial: Remove the leading backslash from namespaces
+
+## [1.0.1] - 2019-09-14
+
+- Sync: Add return for deprecated Jetpack_Sync_Settings functions with expected return value
+
+## 1.0.0 - 2019-09-14
+
+- Jetpack 7.5: Back compatibility package
+
+[1.6.8]: https://github.com/Automattic/jetpack-compat/compare/v1.6.7...v1.6.8
+[1.6.7]: https://github.com/Automattic/jetpack-compat/compare/v1.6.6...v1.6.7
+[1.6.6]: https://github.com/Automattic/jetpack-compat/compare/v1.6.5...v1.6.6
+[1.6.5]: https://github.com/Automattic/jetpack-compat/compare/v1.6.4...v1.6.5
+[1.6.4]: https://github.com/Automattic/jetpack-compat/compare/v1.6.3...v1.6.4
+[1.6.3]: https://github.com/Automattic/jetpack-compat/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-compat/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-compat/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-compat/compare/v1.5.1...v1.6.0
+[1.5.1]: https://github.com/Automattic/jetpack-compat/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-compat/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-compat/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-compat/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-compat/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-compat/compare/v1.0.5...v1.1.0
+[1.0.5]: https://github.com/Automattic/jetpack-compat/compare/v1.0.4...v1.0.5
+[1.0.4]: https://github.com/Automattic/jetpack-compat/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-compat/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-compat/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-compat/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/functions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/functions.php
new file mode 100644
index 00000000..42f73915
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/functions.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Legacy global scope functions.
+ *
+ * @package automattic/jetpack-compat
+ */
+
+// If WordPress's plugin API is available already, use it. If not,
+// drop data into `$wp_filter` for `WP_Hook::build_preinitialized_hooks()`.
+if ( function_exists( 'add_filter' ) ) {
+ $add_filter = 'add_filter';
+ $add_action = 'add_action';
+} else {
+ $add_filter = function ( $name, $cb, $priority = 10, $accepted_args = 1 ) {
+ global $wp_filter;
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $wp_filter[ $name ][ $priority ][] = array(
+ 'accepted_args' => $accepted_args,
+ 'function' => $cb,
+ );
+ };
+ $add_action = $add_filter;
+}
+
+/**
+ * Load necessary functions.
+ */
+function jetpack_compat_require_defined_functions() {
+ require_once __DIR__ . '/lib/tracks/client.php';
+}
+
+$add_action( 'plugins_loaded', 'jetpack_compat_require_defined_functions' );
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php
new file mode 100644
index 00000000..6e0a8941
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Jetpack Client
+ *
+ * Deprecated methods for Jetpack to act as client with wpcom, provided for back-compatibility.
+ *
+ * @category Connection
+ * @package automattic/jetpack-compat
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * Class Jetpack_Client
+ *
+ * @deprecated Use Automattic\Jetpack\Connection\Client
+ */
+class Jetpack_Client {
+
+ /**
+ * Jetpack API version.
+ *
+ * @deprecated use Automattic\Jetpack\Connection\Client::WPCOM_JSON_API_VERSION
+ */
+ const WPCOM_JSON_API_VERSION = '1.1';
+
+ /**
+ * Perform remote request.
+ *
+ * @deprecated use Automattic\Jetpack\Connection\Client::remote_request
+ *
+ * @param array $args Arguments.
+ * @param null $body Request body.
+ *
+ * @return array|WP_Error
+ */
+ public static function remote_request( $args, $body = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Connection\Client' );
+ return Client::remote_request( $args, $body );
+ }
+
+ /**
+ * Request to wpcom using the blog id.
+ *
+ * @deprecated use Automattic\Jetpack\Connection\Client::wpcom_json_api_request_as_blog
+ *
+ * @param string $path Endpoint path.
+ * @param string $version Endpoint version.
+ * @param array $args Arguments.
+ * @param null $body Request body.
+ * @param string $base_api_path Endpoint base prefix.
+ *
+ * @return array|WP_Error
+ */
+ public static function wpcom_json_api_request_as_blog(
+ $path,
+ $version = self::WPCOM_JSON_API_VERSION,
+ $args = array(),
+ $body = null,
+ $base_api_path = 'rest'
+ ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Connection\Client' );
+ return Client::wpcom_json_api_request_as_blog( $path, $version, $args, $body, $base_api_path );
+ }
+
+ /**
+ * Wrapper for wp_remote_request(). Turns off SSL verification for certain SSL errors.
+ * This is suboptimal, but many, many, many hosts have misconfigured SSL.
+ *
+ * @deprecated use Automattic\Jetpack\Connection\Client::_wp_remote_request
+ *
+ * When Jetpack is registered, the jetpack_fallback_no_verify_ssl_certs option is set to the current time if:
+ * 1. a certificate error is found AND
+ * 2. not verifying the certificate works around the problem.
+ *
+ * The option is checked on each request.
+ *
+ * @internal
+ *
+ * @param String $url the request URL.
+ * @param array $args request arguments.
+ * @param Boolean $set_fallback whether to allow flagging this request to use a fallback certficate override.
+ * @return array|WP_Error WP HTTP response on success
+ */
+ public static function _wp_remote_request( $url, $args, $set_fallback = false ) { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Connection\Client' );
+ return Client::_wp_remote_request( $url, $args, $set_fallback );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php
new file mode 100644
index 00000000..096b4cd5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php
@@ -0,0 +1,362 @@
+<?php
+/**
+ * A compatibility shim for the sync actions class.
+ *
+ * @package automattic/jetpack-compat
+ */
+
+use Automattic\Jetpack\Sync\Actions;
+
+/**
+ * Class Jetpack_Sync_Actions
+ *
+ * @deprecated Use Automattic\Jetpack\Sync\Actions
+ */
+class Jetpack_Sync_Actions extends Automattic\Jetpack\Sync\Actions {
+
+ /**
+ * Initializes the class.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::init
+ */
+ public static function init() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::init();
+ }
+
+ /**
+ * Adds a shutdown sender callback.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::add_sender_shutdown
+ */
+ public static function add_sender_shutdown() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::add_sender_shutdown();
+ }
+
+ /**
+ * Returns false or true based on whether this class should initialize the sender
+ * in current circumstances.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::should_initialize_sender
+ *
+ * @return Boolean should the object initialize sender?
+ */
+ public static function should_initialize_sender() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::should_initialize_sender();
+ }
+
+ /**
+ * Returns false or true based on whether sync is allowed.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::sync_allowed
+ *
+ * @return Boolean is sync allowed?
+ */
+ public static function sync_allowed() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::sync_allowed();
+ }
+
+ /**
+ * Returns false or true based on whether sync via cron is allowed.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::sync_via_cron_allowed
+ *
+ * @return Boolean is sync via cron allowed?
+ */
+ public static function sync_via_cron_allowed() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::sync_via_cron_allowed();
+ }
+
+ /**
+ * Filters a boolean value that determines whether blocklisted posts should be prevented
+ * from being publicized.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::prevent_publicize_blacklisted_posts
+ *
+ * @param Boolean $should_publicize initial setting value.
+ * @param WP_Post $post the post object.
+ * @return Boolean whether to prevent publicizing.
+ */
+ public static function prevent_publicize_blacklisted_posts( $should_publicize, $post ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::prevent_publicize_blacklisted_posts( $should_publicize, $post );
+ }
+
+ /**
+ * Set the importing flag to true.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::set_is_importing_true
+ */
+ public static function set_is_importing_true() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::set_is_importing_true();
+ }
+
+ /**
+ * Send the sync data.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::send_data
+ *
+ * @param Mixed $data the sync data.
+ * @param String $codec_name the codec slug.
+ * @param Integer $sent_timestamp the current server timestamp.
+ * @param Integer $queue_id the queue identifier.
+ * @param Integer $checkout_duration time spent retrieving items.
+ * @param Integer $preprocess_duration Time spent converting items into data.
+ * @param Integer $queue_size The current size of the sync queue.
+ * @param string $buffer_id The ID of the Queue buffer checked out for processing.
+ *
+ * @return WP_Response the response object.
+ */
+ public static function send_data( $data, $codec_name, $sent_timestamp, $queue_id, $checkout_duration, $preprocess_duration, $queue_size = null, $buffer_id = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::send_data( $data, $codec_name, $sent_timestamp, $queue_id, $checkout_duration, $preprocess_duration, $queue_size, $buffer_id );
+ }
+
+ /**
+ * Commence initial sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::do_initial_sync
+ */
+ public static function do_initial_sync() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::do_initial_sync();
+ }
+
+ /**
+ * Commence full sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::do_full_sync
+ *
+ * @param array $modules the modules list.
+ * @return Boolean whether the sync was initialized.
+ */
+ public static function do_full_sync( $modules = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::do_full_sync( $modules );
+ }
+
+ /**
+ * Schedule cron sessions.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::jetpack_cron_schedule
+ *
+ * @param array $schedules the schedules to add.
+ */
+ public static function jetpack_cron_schedule( $schedules ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::jetpack_cron_schedule( $schedules );
+ }
+
+ /**
+ * Commence cron sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::do_cron_sync
+ */
+ public static function do_cron_sync() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::do_cron_sync();
+ }
+
+ /**
+ * Commence cron full sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::do_cron_full_sync
+ */
+ public static function do_cron_full_sync() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::do_cron_full_sync();
+ }
+
+ /**
+ * Commence cron sync of a specific type of object.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::do_cron_sync_by_type
+ *
+ * @param array $type the type of object to sync.
+ */
+ public static function do_cron_sync_by_type( $type ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::do_cron_sync_by_type();
+ }
+
+ /**
+ * Initalize the listener of the object.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::initialize_listener
+ */
+ public static function initialize_listener() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::initialize_listener();
+ }
+
+ /**
+ * Initalize the sender of the object.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::initialize_sender
+ */
+ public static function initialize_sender() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::initialize_sender();
+ }
+
+ /**
+ * Initalize the woocommerce listeners.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::initialize_woocommerce
+ */
+ public static function initialize_woocommerce() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::initialize_woocommerce();
+ }
+
+ /**
+ * Add the woocommerce sync module.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::add_woocommerce_sync_module
+ *
+ * @param array $sync_modules an array of modules.
+ */
+ public static function add_woocommerce_sync_module( $sync_modules ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::add_woocommerce_sync_module( $sync_modules );
+ }
+
+ /**
+ * Initalize the WP Super Cache listener.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::initialize_wp_super_cache
+ */
+ public static function initialize_wp_super_cache() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::initialize_wp_super_cache();
+ }
+
+ /**
+ * Add the WP Super Cache sync module.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::add_wp_super_cache_sync_module
+ *
+ * @param array $sync_modules the list to be amended.
+ */
+ public static function add_wp_super_cache_sync_module( $sync_modules ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::add_wp_super_cache_sync_module( $sync_modules );
+ }
+
+ /**
+ * Sanitizes the filtered sync cron schedule.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::sanitize_filtered_sync_cron_schedule
+ *
+ * @param String $schedule the cron schedule to sanitize.
+ * @return String sanitized cron schedule.
+ */
+ public static function sanitize_filtered_sync_cron_schedule( $schedule ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::sanitize_filtered_sync_cron_schedule( $schedule );
+ }
+
+ /**
+ * Returns the time offset for a the start schedule.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::get_start_time_offset
+ *
+ * @param String $schedule the schedule string.
+ * @param String $hook hook slug.
+ * @return Integer start time offset.
+ */
+ public static function get_start_time_offset( $schedule = '', $hook = '' ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::get_start_time_offset( $schedule, $hook );
+ }
+
+ /**
+ * If needed, schedule a cron sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::maybe_schedule_sync_cron
+ *
+ * @param String $schedule the schedule string.
+ * @param String $hook hook slug.
+ */
+ public static function maybe_schedule_sync_cron( $schedule, $hook ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::maybe_schedule_sync_cron( $schedule, $hook );
+ }
+
+ /**
+ * Clears cron jobs scheduled for sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::clear_sync_cron_jobs
+ */
+ public static function clear_sync_cron_jobs() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::clear_sync_cron_jobs();
+ }
+
+ /**
+ * Initialize cron jobs for sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::init_sync_cron_jobs
+ */
+ public static function init_sync_cron_jobs() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::init_sync_cron_jobs();
+ }
+
+ /**
+ * Cleans up schedules on plugin upgrade.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::cleanup_on_upgrade
+ *
+ * @param String $new_version the new version.
+ * @param String $old_version the old version.
+ */
+ public static function cleanup_on_upgrade( $new_version = null, $old_version = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::cleanup_on_upgrade( $new_version, $old_version );
+ }
+
+ /**
+ * Clears cron jobs scheduled for sync.
+ *
+ * @deprecated Automattic\Jetpack\Sync\Actions::get_sync_status
+ *
+ * @param array $fields sync fields to get status of.
+ */
+ public static function get_sync_status( $fields = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Actions' );
+
+ return Actions::get_sync_status( $fields );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php
new file mode 100644
index 00000000..69bc8af5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * A compatibility shim for the sync modules class.
+ *
+ * @package automattic/jetpack-compat
+ */
+
+use Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class Jetpack_Sync_Modules
+ *
+ * @deprecated Use Automattic\Jetpack\Sync\Modules
+ */
+class Jetpack_Sync_Modules {
+
+ /**
+ * Returns the sync module object.
+ *
+ * @param String $module_name the module name.
+ * @return Automattic\Jetpack\Sync\Modules\Module the module object.
+ */
+ public static function get_module( $module_name ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Modules' );
+
+ return Modules::get_module( $module_name );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php
new file mode 100644
index 00000000..e31f79d9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php
@@ -0,0 +1,229 @@
+<?php
+/**
+ * Legacy/deprecated Sync Setting getter and setter.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class Jetpack_Sync_Settings
+ *
+ * @deprecated Use Automattic\Jetpack\Sync\Settings
+ */
+class Jetpack_Sync_Settings {
+
+ /**
+ * Return all settings
+ *
+ * @deprecated See Automattic/Jetpack/Sync/Settings
+ *
+ * @return array All Sync Settings.
+ */
+ public static function get_settings() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_settings();
+ }
+
+ /**
+ * Return a single setting.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param string $setting Setting to return.
+ *
+ * @return mixed Value of setting.
+ */
+ public static function get_setting( $setting ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_setting( $setting );
+ }
+
+ /**
+ * Update a sync setting
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param mixed $new_settings New setting to set.
+ */
+ public static function update_settings( $new_settings ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::update_settings( $new_settings );
+ }
+
+ /**
+ * Return is_network_setting result.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param string $setting Setting to check.
+ *
+ * @return bool
+ */
+ public static function is_network_setting( $setting ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_network_setting( $setting );
+ }
+
+ /**
+ * Return blocklisted post types SQL.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ */
+ public static function get_blacklisted_post_types_sql() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_blacklisted_post_types_sql();
+ }
+
+ /**
+ * Return allowed post meta SQL.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return string
+ */
+ public static function get_whitelisted_post_meta_sql() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_whitelisted_post_meta_sql();
+ }
+
+ /**
+ * Return allowed comment meta SQL
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ */
+ public static function get_whitelisted_comment_meta_sql() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_whitelisted_comment_meta_sql();
+ }
+
+ /**
+ * Return get_comments_filter_sql
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ */
+ public static function get_comments_filter_sql() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::get_comments_filter_sql();
+ }
+
+ /**
+ * Result data.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ */
+ public static function reset_data() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::reset_data();
+ }
+
+ /**
+ * Set importing status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param mixed $is_importing Value to set.
+ */
+ public static function set_importing( $is_importing ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::set_importing( $is_importing );
+ }
+
+ /**
+ * Return is_importing status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return bool
+ */
+ public static function is_importing() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_importing();
+ }
+
+ /**
+ * Return is_sync_enabled status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return bool
+ */
+ public static function is_sync_enabled() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_sync_enabled();
+ }
+
+ /**
+ * Set cron status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param mixed $is_doing_cron Value to set.
+ */
+ public static function set_doing_cron( $is_doing_cron ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::set_doing_cron( $is_doing_cron );
+ }
+
+ /**
+ * Return is_doing_cron status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return bool
+ */
+ public static function is_doing_cron() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_doing_cron();
+ }
+
+ /**
+ * Return is_syncing status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return bool
+ */
+ public static function is_syncing() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_syncing();
+ }
+
+ /**
+ * Set "is syncing" status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param mixed $is_syncing Is syncing value.
+ */
+ public static function set_is_syncing( $is_syncing ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::set_is_syncing( $is_syncing );
+ }
+
+ /**
+ * Return is_sending status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @return bool
+ */
+ public static function is_sending() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ return Settings::is_sending();
+ }
+
+ /**
+ * Set "is sending" status.
+ *
+ * @deprecated See Automattic\Jetpack\Sync\Settings
+ *
+ * @param mixed $is_sending Is sending value.
+ */
+ public static function set_is_sending( $is_sending ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Sync\Settings' );
+ Settings::set_is_sending( $is_sending );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php
new file mode 100644
index 00000000..abfe4f62
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Legacy and deprecated Jetpack Tracking class.
+ *
+ * @package automattic/jetpack-compat
+ */
+
+use Automattic\Jetpack\Tracking;
+
+/**
+ * Legacy class JetpackTracking
+ *
+ * @deprecated See Automattic\Jetpack\Tracking
+ */
+class JetpackTracking {
+
+ /**
+ * Enqueue tracks scripts.
+ *
+ * @deprecated See Automattic\Jetpack\Tracking
+ */
+ public static function enqueue_tracks_scripts() {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Tracking' );
+
+ $tracking = new Tracking();
+ return $tracking->enqueue_tracks_scripts();
+ }
+
+ /**
+ * Record user event.
+ *
+ * @deprecated See Automattic\Jetpack\Tracking
+ *
+ * @param mixed $event_type Event type.
+ * @param array $data Event data.
+ * @param mixed $user User who did the event.
+ *
+ * @return bool
+ */
+ public static function record_user_event( $event_type, $data = array(), $user = null ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Tracking' );
+
+ $tracking = new Tracking();
+ return $tracking->record_user_event( $event_type, $data, $user );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/lib/tracks/client.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/lib/tracks/client.php
new file mode 100644
index 00000000..41056897
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-compat/lib/tracks/client.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Deprecated Tracks client.
+ *
+ * @package automattic/jetpack-compat
+ */
+
+/**
+ * Get tracks identity for an user.
+ *
+ * @deprecated 7.5.0 use Automattic\Jetpack\Tracking->tracks_get_identity instead
+ *
+ * @param int $user_id User id.
+ *
+ * @return mixed tracks identity.
+ */
+function jetpack_tracks_get_identity( $user_id ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Tracking->tracks_get_identity' );
+
+ $tracking = new Automattic\Jetpack\Tracking( 'jetpack', Jetpack::connection() );
+ return $tracking->tracks_get_identity( $user_id );
+}
+
+/**
+ * Record Jetpack Tracks Event
+ *
+ * @deprecated 7.5.0 use Automattic\Jetpack\Tracking->tracks_record_event instead
+ *
+ * @param object $user User acting.
+ * @param string $event_name Event name.
+ * @param array $properties Properties.
+ * @param string|bool $event_timestamp_millis Timestamp.
+ *
+ * @return bool
+ */
+function jetpack_tracks_record_event( $user, $event_name, $properties = array(), $event_timestamp_millis = false ) {
+ _deprecated_function( __METHOD__, 'jetpack-7.5', 'Automattic\Jetpack\Tracking->tracks_record_event' );
+
+ $tracking = new Automattic\Jetpack\Tracking( 'jetpack', Jetpack::connection() );
+ return $tracking->tracks_record_event( $user, $event_name, $properties, $event_timestamp_millis );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/CHANGELOG.md
new file mode 100644
index 00000000..2774b4b4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/CHANGELOG.md
@@ -0,0 +1,113 @@
+# 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).
+
+## [1.6.0] - 2022-01-04
+### Added
+- Accept options for the IDC package.
+
+### Changed
+- Updated package textdomain from `jetpack` to `jetpack-config`.
+
+## [1.5.4] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.5.3] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.5.2] - 2021-10-12
+### Added
+- Add support for the identity-crisis package
+
+## [1.5.1] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.5.0] - 2021-09-22
+### Added
+- Allow for enabling and initializing new Post_List package from Config package.
+
+## [1.4.7] - 2021-08-31
+### Changed
+- updates annotations versions.
+
+## [1.4.6] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.5] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.4.4] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+## [1.4.3] - 2021-01-19
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.4.2] - 2020-10-28
+
+- Updated PHPCS: Packages and Debugger
+- Config: remove tos and tracking features
+- Config: add info about the package dependencies to the package docs
+
+## [1.4.1] - 2020-09-15
+
+- Config: remove tos and tracking features
+
+## [1.4.0] - 2020-08-26
+
+- Config: Remove composer dependencies
+- Config: Add connection status check
+
+## [1.3.0] - 2020-06-26
+
+- Config: check for both JITM namespaces
+
+## [1.2.0] - 2020-05-20
+
+- Store the list of active plugins that uses connection in an option
+- Implement pre-connection JITMs
+- Connection Package: Handle disconnections gracefully
+
+## [1.1.0] - 2020-01-23
+
+- Moved JITM initialization to plugins_loaded.
+
+## [1.0.1] - 2020-01-20
+
+- Move connection manager related logic to after plugins_loaded.
+
+## 1.0.0 - 2020-01-14
+
+- Trying to add deterministic initialization.
+
+[1.6.0]: https://github.com/Automattic/jetpack-config/compare/v1.5.4...v1.6.0
+[1.5.4]: https://github.com/Automattic/jetpack-config/compare/v1.5.3...v1.5.4
+[1.5.3]: https://github.com/Automattic/jetpack-config/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-config/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-config/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-config/compare/v1.4.7...v1.5.0
+[1.4.7]: https://github.com/Automattic/jetpack-config/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-config/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-config/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-config/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-config/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-config/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-config/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-config/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-config/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-config/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-config/compare/v1.0.1...v1.1.0
+[1.0.1]: https://github.com/Automattic/jetpack-config/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/src/class-config.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/src/class-config.php
new file mode 100644
index 00000000..8d275d68
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-config/src/class-config.php
@@ -0,0 +1,293 @@
+<?php
+/**
+ * The base Jetpack configuration class file.
+ *
+ * @package automattic/jetpack-config
+ */
+
+namespace Automattic\Jetpack;
+
+/*
+ * The Config package does not require the composer packages that
+ * contain the package classes shown below. The consumer plugin
+ * must require the corresponding packages to use these features.
+ */
+use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Connection\Plugin;
+use Automattic\Jetpack\JITM as JITM;
+use Automattic\Jetpack\JITMS\JITM as JITMS_JITM;
+use Automattic\Jetpack\Post_List\Post_List as Post_List;
+use Automattic\Jetpack\Sync\Main as Sync_Main;
+
+/**
+ * The configuration class.
+ */
+class Config {
+
+ const FEATURE_ENSURED = 1;
+ const FEATURE_NOT_AVAILABLE = 0;
+ const FEATURE_ALREADY_ENSURED = -1;
+
+ /**
+ * The initial setting values.
+ *
+ * @var Array
+ */
+ protected $config = array(
+ 'jitm' => false,
+ 'connection' => false,
+ 'sync' => false,
+ 'post_list' => false,
+ 'identity_crisis' => false,
+ );
+
+ /**
+ * Initialization options stored here.
+ *
+ * @var array
+ */
+ protected $feature_options = array();
+
+ /**
+ * Creates the configuration class instance.
+ */
+ public function __construct() {
+ /**
+ * Adding the config handler to run on priority 2 because the class itself is
+ * being constructed on priority 1.
+ */
+ add_action( 'plugins_loaded', array( $this, 'on_plugins_loaded' ), 2 );
+
+ }
+
+ /**
+ * Require a feature to be initialized. It's up to the package consumer to actually add
+ * the package to their composer project. Declaring a requirement using this method
+ * instructs the class to initialize it.
+ *
+ * @param String $feature the feature slug.
+ * @param array $options Additional options, optional.
+ */
+ public function ensure( $feature, array $options = array() ) {
+ $this->config[ $feature ] = true;
+
+ $this->set_feature_options( $feature, $options );
+ }
+
+ /**
+ * Runs on plugins_loaded hook priority with priority 2.
+ *
+ * @action plugins_loaded
+ */
+ public function on_plugins_loaded() {
+ if ( $this->config['connection'] ) {
+ $this->ensure_class( 'Automattic\Jetpack\Connection\Manager' )
+ && $this->ensure_feature( 'connection' );
+ }
+
+ if ( $this->config['sync'] ) {
+ $this->ensure_class( 'Automattic\Jetpack\Sync\Main' )
+ && $this->ensure_feature( 'sync' );
+ }
+
+ if ( $this->config['jitm'] ) {
+ // Check for the JITM class in both namespaces. The namespace was changed in jetpack-jitm v1.6.
+ ( $this->ensure_class( 'Automattic\Jetpack\JITMS\JITM', false )
+ || $this->ensure_class( 'Automattic\Jetpack\JITM' ) )
+ && $this->ensure_feature( 'jitm' );
+ }
+
+ if ( $this->config['post_list'] ) {
+ $this->ensure_class( 'Automattic\Jetpack\Post_List\Post_List' )
+ && $this->ensure_feature( 'post_list' );
+ }
+
+ if ( $this->config['identity_crisis'] ) {
+ $this->ensure_class( 'Automattic\Jetpack\Identity_Crisis' )
+ && $this->ensure_feature( 'identity_crisis' );
+ }
+ }
+
+ /**
+ * Returns true if the required class is available and alerts the user if it's not available
+ * in case the site is in debug mode.
+ *
+ * @param String $classname a fully qualified class name.
+ * @param Boolean $log_notice whether the E_USER_NOTICE should be generated if the class is not found.
+ *
+ * @return Boolean whether the class is available.
+ */
+ protected function ensure_class( $classname, $log_notice = true ) {
+ $available = class_exists( $classname );
+
+ if ( $log_notice && ! $available && defined( 'WP_DEBUG' ) && WP_DEBUG ) {
+ trigger_error( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
+ sprintf(
+ /* translators: %1$s is a PHP class name. */
+ esc_html__(
+ 'Unable to load class %1$s. Please add the package that contains it using composer and make sure you are requiring the Jetpack autoloader',
+ 'jetpack-config'
+ ),
+ esc_html( $classname )
+ ),
+ E_USER_NOTICE
+ );
+ }
+
+ return $available;
+ }
+
+ /**
+ * Ensures a feature is enabled, sets it up if it hasn't already been set up.
+ * Run the options method (if exists) every time the method is called.
+ *
+ * @param String $feature slug of the feature.
+ * @return Integer either FEATURE_ENSURED, FEATURE_ALREADY_ENSURED or FEATURE_NOT_AVAILABLE constants.
+ */
+ protected function ensure_feature( $feature ) {
+ $method = 'enable_' . $feature;
+ if ( ! method_exists( $this, $method ) ) {
+ return self::FEATURE_NOT_AVAILABLE;
+ }
+
+ $method_options = 'ensure_options_' . $feature;
+ if ( method_exists( $this, $method_options ) ) {
+ $this->{ $method_options }();
+ }
+
+ if ( did_action( 'jetpack_feature_' . $feature . '_enabled' ) ) {
+ return self::FEATURE_ALREADY_ENSURED;
+ }
+
+ $this->{ $method }();
+
+ /**
+ * Fires when a specific Jetpack package feature is initalized using the Config package.
+ *
+ * @since 1.1.0
+ */
+ do_action( 'jetpack_feature_' . $feature . '_enabled' );
+
+ return self::FEATURE_ENSURED;
+ }
+
+ /**
+ * Enables the JITM feature.
+ */
+ protected function enable_jitm() {
+ if ( class_exists( 'Automattic\Jetpack\JITMS\JITM' ) ) {
+ JITMS_JITM::configure();
+ } else {
+ // Provides compatibility with jetpack-jitm <v1.6.
+ JITM::configure();
+ }
+
+ return true;
+ }
+
+ /**
+ * Enables the Post_List feature.
+ */
+ protected function enable_post_list() {
+ Post_List::configure();
+
+ return true;
+ }
+
+ /**
+ * Enables the Sync feature.
+ */
+ protected function enable_sync() {
+ Sync_Main::configure();
+
+ return true;
+ }
+
+ /**
+ * Enables the Connection feature.
+ */
+ protected function enable_connection() {
+ Manager::configure();
+
+ return true;
+ }
+
+ /**
+ * Enables the identity-crisis feature.
+ */
+ protected function enable_identity_crisis() {
+ Identity_Crisis::init();
+ }
+
+ /**
+ * Setup the Connection options.
+ */
+ protected function ensure_options_connection() {
+ $options = $this->get_feature_options( 'connection' );
+
+ if ( ! empty( $options['slug'] ) ) {
+ // The `slug` and `name` are removed from the options because they need to be passed as arguments.
+ $slug = $options['slug'];
+ unset( $options['slug'] );
+
+ $name = $slug;
+ if ( ! empty( $options['name'] ) ) {
+ $name = $options['name'];
+ unset( $options['name'] );
+ }
+
+ ( new Plugin( $slug ) )->add( $name, $options );
+ }
+
+ return true;
+ }
+
+ /**
+ * Setup the Identity Crisis options.
+ *
+ * @return bool
+ */
+ protected function ensure_options_identity_crisis() {
+ $options = $this->get_feature_options( 'identity_crisis' );
+
+ if ( is_array( $options ) && count( $options ) ) {
+ add_filter(
+ 'jetpack_idc_consumers',
+ function ( $consumers ) use ( $options ) {
+ $consumers[] = $options;
+ return $consumers;
+ }
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Temporary save initialization options for a feature.
+ *
+ * @param string $feature The feature slug.
+ * @param array $options The options.
+ *
+ * @return bool
+ */
+ protected function set_feature_options( $feature, array $options ) {
+ if ( $options ) {
+ $this->feature_options[ $feature ] = $options;
+ }
+
+ return true;
+ }
+
+ /**
+ * Get initialization options for a feature from the temporary storage.
+ *
+ * @param string $feature The feature slug.
+ *
+ * @return array
+ */
+ protected function get_feature_options( $feature ) {
+ return empty( $this->feature_options[ $feature ] ) ? array() : $this->feature_options[ $feature ];
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/CHANGELOG.md
new file mode 100644
index 00000000..b6b82ab7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/CHANGELOG.md
@@ -0,0 +1,186 @@
+# 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.0] - 2022-01-04
+### Changed
+- Drop isRegistered and isUserConnected params from ConnectionStatusCard component
+- Replaced IDC screen rendering with site-wide IDC screen.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-connection-ui`.
+
+## [2.2.0] - 2021-12-14
+### Changed
+- Allow non-adimin access to the Connection Manager for proper IDC screen review.
+
+### Fixed
+- Build minimized JS for the production build.
+
+## [2.1.4] - 2021-12-07
+### Added
+- Pass tracking data into the RNA IDC package.
+
+### Changed
+- Updated package dependencies.
+
+## [2.1.3] - 2021-11-30
+### Changed
+- Remove now-redundant `output.filename` from Webpack config.
+
+## [2.1.2] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [2.1.1] - 2021-11-17
+### Changed
+- Updated package dependencies.
+
+## [2.1.0] - 2021-11-16
+### Added
+- Use monorepo `validate-es` script to validate Webpack builds.
+
+### Changed
+- Replace the withConnectionStatus HOC with withSelect HOC.
+- Updated package dependencies
+
+### Removed
+- Remove use of `gulp` in build, all it was doing was wrapping `webpack`.
+
+## [2.0.0] - 2021-11-09
+### Added
+- Initialize IDC package, properly display the RNA IDC screen.
+
+### Changed
+- Updated package dependencies.
+- Update webpack build config. Removes IE 11 support in the JavaScript.
+
+## [1.6.0] - 2021-11-02
+### Changed
+- Updated package dependencies
+- Use ConnectScreenRequiredPlan instead of ConnectScreen.
+
+## [1.5.3] - 2021-10-26
+### Added
+- Add the redirect URI for RNA IDC "Start Fresh" functionality.
+
+### Changed
+- Updated package dependencies.
+
+## [1.5.2] - 2021-10-19
+### Changed
+- Bump the RNA API version.
+
+## [1.5.1] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.5.0] - 2021-10-12
+### Added
+- Initialize REST API in the IDC package.
+- Temporarily force the IDC screen to appear for debugging purposes.
+
+### Changed
+- Use the "withConnectionStatus" HOC for ConnectScreen component.
+
+## [1.4.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.
+
+## [1.4.0] - 2021-08-31
+### Changed
+- Bump connection package version to 0.5.2-alpha.
+- Updated package dependencies.
+- Updated Package versions in annotations.
+- Update to latest webpack, webpack-cli and calypso-build.
+- Use Node 16.7.0 in tooling. This shouldn't change the behavior of the code itself.
+- Use the "withConnectionStatus" HOC for ConnectScreen component.
+
+### Removed
+- Removed unused method
+
+## [1.3.1] - 2021-08-12
+### Changed
+- Updated package dependencies
+- Update jest dependency to fix jetpack search tests
+
+## [1.3.0] - 2021-07-27
+### Added
+- Integrate ConnectionStatusCard component.
+- Integrate DisconnectDialog RNA component.
+- Integrate the RNA connection screen component.
+
+## [1.2.0] - 2021-06-29
+### Added
+- Add the Jetpack logo to the header.
+
+### Changed
+- Adjust the RNA Connection usage because 'Main' component has been removed to 'ConnectButton'
+- Clean up the code that used to be required for now removed In-Place Connection flow.
+- Updated package dependencies.
+- Update node version requirement to 14.16.1
+
+## [1.1.1] - 2021-06-15
+### Changed
+- Remove the 'authorizeUrl' RNA Connection parameter as it's no longer needed.
+- Update docs to replace yarn with pnpm.
+
+### Fixed
+- Remove dependency on @wordpress/url as it caused dependency issues in build test flows.
+- Use `absoluteRuntime` in babel JS build to avoid module not found errors.
+
+## [1.1.0] - 2021-05-25
+### Added
+- Integrate the connection flow using RNA Connection package.
+
+### Fixed
+- Add docblock for `jetpack_on_connection_ui_init` hook.
+- Fixing the Connection UI initialization logical error
+- Initialize the main connection-ui Admin class only once since it may be called multiple times.
+
+## [1.0.2] - 2021-04-27
+### Added
+- Add React initial state.
+
+### Changed
+- Updated package dependencies.
+
+## [1.0.1] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Connection UI: remove .github directory from production package
+- Pin dependencies
+- Update Node to match latest LTS 12
+- Update package dependencies.
+
+## 1.0.0 - 2021-02-23
+
+- Connection UI: Building the Framework
+
+[2.3.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.2.0...v2.3.0
+[2.2.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.1.4...v2.2.0
+[2.1.4]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.1.3...v2.1.4
+[2.1.3]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.1.2...v2.1.3
+[2.1.2]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.1.1...v2.1.2
+[2.1.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.1.0...v2.1.1
+[2.1.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v2.0.0...v2.1.0
+[2.0.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.6.0...v2.0.0
+[1.6.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.5.3...v1.6.0
+[1.5.3]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.4.1...v1.5.0
+[1.4.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.0.2...v1.1.0
+[1.0.2]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-connection-ui/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/babel.config.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/babel.config.js
new file mode 100644
index 00000000..0773ed0d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/babel.config.js
@@ -0,0 +1,10 @@
+const config = {
+ presets: [
+ [
+ '@automattic/jetpack-webpack-config/babel/preset',
+ { pluginReplaceTextdomain: { textdomain: 'jetpack-connection-ui' } },
+ ],
+ ],
+};
+
+module.exports = config;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
new file mode 100644
index 00000000..13f5651c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
new file mode 100644
index 00000000..a191ec9e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.asset.php
new file mode 100644
index 00000000..6486fa68
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'cf7c4416c6aebd1c4977dbe9905998f7'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.css
new file mode 100644
index 00000000..60f69f98
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.css
@@ -0,0 +1 @@
+#jetpack-connection-ui-container .jetpack-cui__header h1{font-size:4.6em;line-height:1.2em;text-align:left}#jetpack-connection-ui-container{margin:40px}#jetpack-connection-ui-container p{font-size:1.23em;line-height:1.5em}.jp-connection-status-card h3{color:var(--jp-black);font-size:36px;font-weight:400;line-height:40px;margin:0}.jp-connection-status-card a,.jp-connection-status-card a:active,.jp-connection-status-card a:hover{color:var(--jp-black)}.jp-connection-status-card p{color:var(--jp-black);margin:16px 0}.jp-connection-status-card a,.jp-connection-status-card li,.jp-connection-status-card p{font-size:16px;line-height:24px}.jp-connection-status-card--status{align-items:center;display:flex;margin:24px 0 24px -6px}.jp-connection-status-card--cloud{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjciIHk9IjkiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyMSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4zMzMgMTcuNjk3di0uMDhjMC00LjI1My0zLjc2LTcuNy04LjQtNy43LTMuOTE2IDAtNy4yMDYgMi40NTctOC4xMzYgNS43OGE2LjM4NiA2LjM4NiAwIDAgMC0uMjY0LS4wMDVDOS45MjUgMTUuNjkyIDcgMTguNzA4IDcgMjIuNDI5czIuOTI1IDYuNzM4IDYuNTMzIDYuNzM4SDI5LjRjMy4wOTMgMCA1LjYtMi41ODYgNS42LTUuNzc1IDAtMi44NjEtMi4wMTgtNS4yMzctNC42NjYtNS42OTVaIiBmaWxsPSIjZmZmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxwYXRoIGQ9Im0zMC4zMzMgMTcuNjk3LTIuNjI1LS4wMy0uMDI1IDIuMjM1IDIuMjAyLjM4MS40NDgtMi41ODZabS0xNi41MzctMi0uMTA3IDIuNjIzIDIuMDc1LjA4NS41Ni0yLTIuNTI4LS43MDhabS0uMjYzIDEzLjQ3djIuNjI1aC4wMDhsLS4wMDgtMi42MjVabS4wNCAwdi0yLjYyNWgtLjAwOWwuMDA4IDIuNjI1Wm0xNS43OTUgMCAuMDE1LTIuNjI1aC0uMDE1djIuNjI1Wm0zLjU5LTExLjQ0MXYtLjExaC01LjI1di4wNTJsNS4yNS4wNThabTAtLjExYzAtNS45MTItNS4xNTUtMTAuMzI0LTExLjAyNS0xMC4zMjR2NS4yNWMzLjQxIDAgNS43NzUgMi40ODIgNS43NzUgNS4wNzVoNS4yNVpNMjEuOTMzIDcuMjkzYy00Ljk4NCAwLTkuMzg4IDMuMTM5LTEwLjY2NCA3LjY5OGw1LjA1NSAxLjQxNWMuNTg1LTIuMDg5IDIuNzYyLTMuODYzIDUuNjEtMy44NjN2LTUuMjVabS04LjAzIDUuNzgyYTkuMTExIDkuMTExIDAgMCAwLS4zNy0uMDA3djUuMjVjLjA1MyAwIC4xMDUuMDAxLjE1Ni4wMDNsLjIxNS01LjI0NlptLS4zNy0uMDA3Yy01LjEzMyAwLTkuMTU4IDQuMjY4LTkuMTU4IDkuMzYyaDUuMjVjMC0yLjM0OCAxLjgyNS00LjExMiAzLjkwOC00LjExMnYtNS4yNVptLTkuMTU4IDkuMzYyYzAgNS4wOTUgNC4wMjUgOS4zNjMgOS4xNTggOS4zNjN2LTUuMjVjLTIuMDgzIDAtMy45MDgtMS43NjUtMy45MDgtNC4xMTNoLTUuMjVabTkuMTY2IDkuMzYzaC4wNGwtLjAxNy01LjI1aC0uMDM5bC4wMTYgNS4yNVptLjAzMSAwaDE1Ljc5NnYtNS4yNUgxMy41NzJ2NS4yNVptMTUuODI3LTUuMjVoLS4wMTZsLS4wMyA1LjI1aC4wNDZ2LTUuMjVabTIuOTc1LTMuMTVjMCAxLjgxNi0xLjQwNyAzLjE1LTIuOTc1IDMuMTV2NS4yNWM0LjYxOCAwIDguMjI1LTMuODM4IDguMjI1LTguNGgtNS4yNVptLTIuNDg5LTMuMTA5YzEuMzU1LjIzNSAyLjQ5IDEuNDg4IDIuNDkgMy4xMDloNS4yNWMwLTQuMTAyLTIuOTAyLTcuNi02Ljg0NC04LjI4MmwtLjg5NiA1LjE3M1oiIGZpbGw9IiMxRTFFMUUiLz48L2c+PC9zdmc+);height:42px;margin-right:4px;width:42px}.jp-connection-status-card--jetpack-logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZTMjQuODM3IDAgMTYgMCAwIDcuMTYzIDAgMTZzNy4xNjMgMTYgMTYgMTZaIiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTE2Ljc5NCAxMy4zMTN2MTUuNTExbDgtMTUuNTEyaC04Wk0xNS4xNzUgMTguNjU3VjMuMTc2bC03Ljk2OSAxNS40OGg3Ljk3WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);height:32px;margin-left:11px;width:32px}.jp-connection-status-card--btn-connect-user{background:var(--jp-black)!important;border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection-status-card--avatar{background-color:var(--jp-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.498 27.123C6.038 24.165 10.916 21.5 16 21.5c5.084 0 9.963 2.665 11.502 5.623a15.952 15.952 0 0 1-11.257 4.875L16 32l-.245-.002a15.952 15.952 0 0 1-11.257-4.875zM16 8a6 6 0 1 1 0 12 6 6 0 0 1 0-12z' fill='%23A2AAB2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;border:0;border-radius:20px;height:32px;margin-left:-10px;width:32px}.jp-connection-status-card--line{border-top:2px solid var(--jp-black);height:0;width:67px}.jp-connection-status-card--line.jp-connection-status-card--site-only{border-top-style:dashed}.jp-connection-status-card--list{list-style-type:none;margin:16px 0}.jp-connection-status-card--list li{color:var(--jp-black);margin:0 0 8px -3px;padding-left:25px}.jp-connection-status-card--list-item-success{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4LjkzNSA2LTguOSAxMS45Ny01LjE2Mi0zLjgzNyIgc3Ryb2tlPSIjMUUxRTFFIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==) no-repeat 0 0}.jp-connection-status-card--list-item-error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 0 0;color:var(--jp-red)!important}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-small);font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:var(--font-title-small);font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:var(--font-body);margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:var(--jp-white-off);border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:var(--jp-white);border-top:1px solid var(--jp-gray);bottom:0;padding:2rem 0;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(to bottom,transparent,var(--jp-white-off));bottom:calc(100% + 1px);content:"";display:block;height:80px;left:0;position:absolute;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:var(--jp-black)!important;margin-right:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:var(--jp-red)!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:var(--jp-black)!important}.jp-connection__disconnect-dialog__button-wrap{text-align:left}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:var(--jp-red)}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-large)}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-left:0}}.jp-connection__disconnect-card{background-color:var(--jp-white);border:none;border-radius:3px;box-shadow:0 0 15px var(--jp-gray-off);margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:left;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-right:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:right}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-right:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:1rem;margin-right:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px var(--jp-gray);display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:var(--jp-gray);background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;left:24px;position:absolute;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:var(--jp-red);border-radius:50px;height:80px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px var(--jp-gray-off);margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:left;width:800px}.jp-connect__disconnect-survey-card--selected{background:var(--jp-gray-off);border-color:var(--jp-black)}.jp-connect__disconnect-survey-card:after{border-right:2px solid var(--jp-black);border-top:2px solid var(--jp-black);content:"";display:block;height:5px;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%) rotate(45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:var(--jp-black-80)}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:var(--jp-black-80);flex-grow:1;max-width:calc(100% - 40px);padding-right:40px}@media(min-width:1080px){.jp-connection__connect-screen-layout__left{width:70%}.jp-connection__connect-screen-required-plan{background:linear-gradient(90deg,#fff 70%,#f9f9f6 0);position:relative}}.jp-connection__connect-screen-required-plan__loading{display:none}@media(min-width:1080px){.jp-connection__connect-screen-required-plan__pricing-card{left:62%;position:absolute;top:14%}}.jp-connection__connect-screen-required-plan__pricing-card .components-button{align-items:center;background:var(--jp-black)!important;border-radius:var(--jp-border-radius);color:var(--jp-white)!important;font-size:18px;font-weight:500;height:auto;justify-content:center;margin:24px 0 32px;padding:14px 24px;width:100%}.jp-connection__connect-screen-required-plan__with-subscription{margin-top:38px}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button{display:inline}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button{background:inherit!important;color:var(--jp-black)!important;display:inline;font-size:var(--font-title-small);font:inherit;height:auto;line-height:20px;min-width:0;padding:0;text-decoration:underline;width:auto}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button:hover{background:inherit;text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button:focus{background:inherit;box-shadow:none!important}.jp-connection__connect-screen-required-plan__with-subscription .jp-components-spinner__inner,.jp-connection__connect-screen-required-plan__with-subscription .jp-components-spinner__outer{border-right-color:var(--jp-black);border-top-color:var(--jp-black)}.jp-action-button--button{background:#000}.jp-action-button--button,.jp-action-button--button.components-button{border-radius:4px;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-style:normal;font-weight:600;height:40px;line-height:18px;min-width:264px;text-align:center}.jp-action-button__error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 0 0;color:var(--jp-red)!important;line-height:25px!important;padding-left:25px}@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-connection__connect-screen-layout{background:var(--jp-white);border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08)}.jp-connection__connect-screen-layout__loading{display:none}.jp-connection__connect-screen-layout__left,.jp-connection__connect-screen-layout__right{box-sizing:border-box}.jp-connection__connect-screen-layout__left{padding:25px}@media(min-width:600px){.jp-connection__connect-screen-layout__left{padding:64px 96px}}.jp-connection__connect-screen-layout__left .jetpack-logo{margin-bottom:24px}.jp-connection__connect-screen-layout__left h2{color:var(--jp-black);font-size:36px;font-style:normal;font-weight:700;line-height:40px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left h3{color:var(--jp-black);font-size:24px;font-style:normal;font-weight:500;line-height:32px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left li,.jp-connection__connect-screen-layout__left p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.jp-connection__connect-screen-layout__left p{color:#101517;margin:16px 0}.jp-connection__connect-screen-layout__left a{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__connect-screen-layout__left a:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__connect-screen-layout__left a:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__connect-screen-layout__left ul{list-style-type:none;padding:0}.jp-connection__connect-screen-layout__left ul li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:var(--jp-black);margin-bottom:9px;padding-left:30px}.jp-connection__connect-screen-layout__right{padding:64px 0}.jp-connection__connect-screen-layout__right img{max-width:100%}.jp-connection__connect-screen-layout__two-columns{display:flex;flex-wrap:wrap}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:100%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:52%}}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{background:#f9f9f6;display:none;flex-basis:47%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{display:block}}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-components__pricing-card{background:var(--jp-white);border-radius:var(--jp-border-radius);box-shadow:0 10px 40px rgba(0,0,0,.08);max-width:384px;padding:24px 24px 32px;width:-moz-fit-content;width:fit-content}@media screen and (min-width:600px){.jp-components__pricing-card{padding:32px 32px 44px}}.jp-components__pricing-card__icon img{height:32px;width:32px}.jp-components__pricing-card__title{color:#101517;font-size:32px;line-height:38px;margin:16px 0 24px}.jp-components__pricing-card__pricing{display:flex;flex-wrap:wrap}.jp-components__pricing-card__price-after,.jp-components__pricing-card__price-before{display:inline-block;font-size:54px;font-weight:700;line-height:40px;margin-bottom:8px;padding:0 2px}.jp-components__pricing-card__price-before{color:var(--jp-gray-20);margin-right:16px;position:relative}.jp-components__pricing-card__price-strikethrough{background:var(--jp-pink);border-radius:1.5px;height:3px;left:0;position:absolute;top:20px;width:100%}.jp-components__pricing-card__price-after{color:var(--jp-black)}.jp-components__pricing-card__currency{font-size:var(--font-title-small);font-weight:400;line-height:20px;vertical-align:super}.jp-components__pricing-card__price-details{align-self:flex-end;color:var(--jp-gray-50);font-size:14px;font-weight:400;letter-spacing:-.02em;line-height:17px;margin-bottom:8px}.jp-components__pricing-card__price-decimal{font-size:var(--font-label);line-height:14px;vertical-align:top}.jp-components__pricing-card__button{align-items:center;background:var(--jp-black);border-radius:var(--jp-border-radius);color:var(--jp-white)!important;font-size:18px;height:auto;justify-content:center;margin:24px 0 32px;padding:14px 24px;width:100%}.jp-components__pricing-card__info{color:var(--jp-gray-60);font-size:var(--font-label);letter-spacing:-.02em;line-height:20px} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js
new file mode 100644
index 00000000..c8a04c5d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js
@@ -0,0 +1,4 @@
+/*! For license information please see index.js.LICENSE.txt */
+!function(){var e={4728:function(e,t,n){"use strict";n.d(t,{X:function(){return o}});var i={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 o(e){return i[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},6078:function(e,t,n){"use strict";n.d(t,{LR:function(){return c}});var i=n(2141),o=n(3807),r=n(4728);function c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},c=(0,r.X)(t);if(!c||isNaN(e))return null;var s=(0,i.Z)({},c,n),a=s.decimal,u=s.grouping,l=s.precision,p=s.symbol,d=e<0?"-":"",g=Math.abs(e),m=Math.floor(g),f=(0,o.Y4)(m,{decimals:0,thousandsSep:u,decPoint:a}),h=l>0?(0,o.Y4)(g-m,{decimals:l,thousandsSep:u,decPoint:a}).slice(1):"";return{sign:d,symbol:p,integer:f,fraction:h}}},8772:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var i=n(9196),o=n(5592);function r(e,t){let n,o,c=[];for(let i=0;i<e.length;i++){const r=e[i];if("string"!==r.type){if(void 0===t[r.value])throw new Error(`Invalid interpolation, missing component node: \`${r.value}\``);if("object"!=typeof t[r.value])throw new Error(`Invalid interpolation, component node must be a ReactElement or null: \`${r.value}\``);if("componentClose"===r.type)throw new Error(`Missing opening component token: \`${r.value}\``);if("componentOpen"===r.type){n=t[r.value],o=i;break}c.push(t[r.value])}else c.push(r.value)}if(n){const s=function(e,t){const n=t[e];let i=0;for(let o=e+1;o<t.length;o++){const e=t[o];if(e.value===n.value){if("componentOpen"===e.type){i++;continue}if("componentClose"===e.type){if(0===i)return o;i--}}}throw new Error("Missing closing component token `"+n.value+"`")}(o,e),a=r(e.slice(o+1,s),t),u=(0,i.cloneElement)(n,{},a);if(c.push(u),s<e.length-1){const n=r(e.slice(s+1),t);c=c.concat(n)}}return c=c.filter(Boolean),0===c.length?null:1===c.length?c[0]:(0,i.createElement)(i.Fragment,null,...c)}function c(e){const{mixedString:t,components:n,throwErrors:i}=e;if(!n)return t;if("object"!=typeof n){if(i)throw new Error(`Interpolation Error: unable to process \`${t}\` because components is not an object`);return t}const c=(0,o.Z)(t);try{return r(c,n)}catch(e){if(i)throw new Error(`Interpolation Error: unable to process \`${t}\` because of error \`${e.message}\``);return t}}},5592:function(e,t,n){"use strict";function i(e){return e.startsWith("{{/")?{type:"componentClose",value:e.replace(/\W/g,"")}:e.endsWith("/}}")?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.startsWith("{{")?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}function o(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(i)}n.d(t,{Z:function(){return o}})},7538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},9183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},8172:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(1354),o=n(4803);function r(e){var t=(0,i.Z)(e);return function(e){return(0,o.Z)(t,e)}}},4803:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i={"!":function(e){return!e},"*":function(e,t){return e*t},"/":function(e,t){return e/t},"%":function(e,t){return e%t},"+":function(e,t){return e+t},"-":function(e,t){return e-t},"<":function(e,t){return e<t},"<=":function(e,t){return e<=t},">":function(e,t){return e>t},">=":function(e,t){return e>=t},"==":function(e,t){return e===t},"!=":function(e,t){return e!==t},"&&":function(e,t){return e&&t},"||":function(e,t){return e||t},"?:":function(e,t,n){if(e)throw t;return n}};function o(e,t){var n,o,r,c,s,a,u=[];for(n=0;n<e.length;n++){if(s=e[n],c=i[s]){for(o=c.length,r=Array(o);o--;)r[o]=u.pop();try{a=c.apply(null,r)}catch(e){return e}}else a=t.hasOwnProperty(s)?t[s]:+s;u.push(a)}return u[0]}},7478:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(8172);function o(e){var t=(0,i.Z)(e);return function(e){return+t({n:e})}}},1354:function(e,t,n){"use strict";var i,o,r,c;function s(e){for(var t,n,s,a,u=[],l=[];t=e.match(c);){for(n=t[0],(s=e.substr(0,t.index).trim())&&u.push(s);a=l.pop();){if(r[n]){if(r[n][0]===a){n=r[n][1]||n;break}}else if(o.indexOf(a)>=0||i[a]<i[n]){l.push(a);break}u.push(a)}r[n]||l.push(n),e=e.substr(t.index+n.length)}return(e=e.trim())&&u.push(e),u.concat(l.reverse())}n.d(t,{Z:function(){return s}}),i={"(":9,"!":8,"*":7,"/":7,"%":7,"+":6,"-":6,"<":5,"<=":5,">":5,">=":5,"==":4,"!=":4,"&&":3,"||":2,"?":1,"?:":1},o=["(","?"],r={")":["("],":":["?","?:"]},c=/<=|>=|==|!=|&&|\|\||\?:|\(|!|\*|\/|%|\+|-|<|>|\?|\)|:/},702:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=/%(((\d+)\$)|(\(([$_a-zA-Z][$_a-zA-Z0-9]*)\)))?[ +0#-]*\d*(\.(\d+|\*))?(ll|[lhqL])?([cduxXefgsp%])/g;function o(e,t){var n;if(!Array.isArray(t))for(t=new Array(arguments.length-1),n=1;n<arguments.length;n++)t[n-1]=arguments[n];return n=1,e.replace(i,(function(){var e,i,o,r,c;return e=arguments[3],i=arguments[5],"%"===(r=arguments[9])?"%":("*"===(o=arguments[7])&&(o=t[n-1],n++),void 0!==i?t[0]&&"object"==typeof t[0]&&t[0].hasOwnProperty(i)&&(c=t[0][i]):(void 0===e&&(e=n),n++,c=t[e-1]),"f"===r?c=parseFloat(c)||0:"d"===r&&(c=parseInt(c)||0),void 0!==o&&("f"===r?c=c.toFixed(o):"s"===r&&(c=c.substr(0,o))),null!=c?c:"")}))}},9105:function(e,t){var n;!function(){"use strict";var i={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var r=typeof n;if("string"===r||"number"===r)e.push(n);else if(Array.isArray(n)){if(n.length){var c=o.apply(null,n);c&&e.push(c)}}else if("object"===r)if(n.toString===Object.prototype.toString)for(var s in n)i.call(n,s)&&n[s]&&e.push(s);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},5771:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let i=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(i++,"%c"===e&&(o=i))})),t.splice(o,0,n)},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=n(1244)(t);const{formatters:i}=e.exports;i.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},1244:function(e,t,n){e.exports=function(e){function t(e){let n,o,r,c=null;function s(...e){if(!s.enabled)return;const i=s,o=Number(new Date),r=o-(n||o);i.diff=r,i.prev=n,i.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let c=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,o)=>{if("%%"===n)return"%";c++;const r=t.formatters[o];if("function"==typeof r){const t=e[c];n=r.call(i,t),e.splice(c,1),c--}return n})),t.formatArgs.call(i,e);(i.log||t.log).apply(i,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=i,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==c?c:(o!==t.namespaces&&(o=t.namespaces,r=t.enabled(e)),r),set:e=>{c=e}}),"function"==typeof t.init&&t.init(s),s}function i(e,n){const i=t(this.namespace+(void 0===n?":":n)+e);return i.log=this.log,i}function o(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(o),...t.skips.map(o).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const i=("string"==typeof e?e:"").split(/[\s,]+/),o=i.length;for(n=0;n<o;n++)i[n]&&("-"===(e=i[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,i;for(n=0,i=t.skips.length;n<i;n++)if(t.skips[n].test(e))return!1;for(n=0,i=t.names.length;n<i;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(2002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},2571:function(e){"use strict";var t,n="object"==typeof Reflect?Reflect:null,i=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var o=Number.isNaN||function(e){return e!=e};function r(){r.init.call(this)}e.exports=r,e.exports.once=function(e,t){return new Promise((function(n,i){function o(n){e.removeListener(t,r),i(n)}function r(){"function"==typeof e.removeListener&&e.removeListener("error",o),n([].slice.call(arguments))}f(e,t,r,{once:!0}),"error"!==t&&function(e,t,n){"function"==typeof e.on&&f(e,"error",t,n)}(e,o,{once:!0})}))},r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var c=10;function s(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function a(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function u(e,t,n,i){var o,r,c,u;if(s(n),void 0===(r=e._events)?(r=e._events=Object.create(null),e._eventsCount=0):(void 0!==r.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),r=e._events),c=r[t]),void 0===c)c=r[t]=n,++e._eventsCount;else if("function"==typeof c?c=r[t]=i?[n,c]:[c,n]:i?c.unshift(n):c.push(n),(o=a(e))>0&&c.length>o&&!c.warned){c.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=c.length,u=l,console&&console.warn&&console.warn(u)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},o=l.bind(i);return o.listener=n,i.wrapFn=o,o}function d(e,t,n){var i=e._events;if(void 0===i)return[];var o=i[t];return void 0===o?[]:"function"==typeof o?n?[o.listener||o]:[o]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(o):m(o,o.length)}function g(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e[i];return n}function f(e,t,n,i){if("function"==typeof e.on)i.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function o(r){i.once&&e.removeEventListener(t,o),n(r)}))}}Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");c=e}}),r.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||o(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},r.prototype.getMaxListeners=function(){return a(this)},r.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var o="error"===e,r=this._events;if(void 0!==r)o=o&&void 0===r.error;else if(!o)return!1;if(o){var c;if(t.length>0&&(c=t[0]),c instanceof Error)throw c;var s=new Error("Unhandled error."+(c?" ("+c.message+")":""));throw s.context=c,s}var a=r[e];if(void 0===a)return!1;if("function"==typeof a)i(a,this,t);else{var u=a.length,l=m(a,u);for(n=0;n<u;++n)i(l[n],this,t)}return!0},r.prototype.addListener=function(e,t){return u(this,e,t,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(e,t){return u(this,e,t,!0)},r.prototype.once=function(e,t){return s(t),this.on(e,p(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){return s(t),this.prependListener(e,p(this,e,t)),this},r.prototype.removeListener=function(e,t){var n,i,o,r,c;if(s(t),void 0===(i=this._events))return this;if(void 0===(n=i[e]))return this;if(n===t||n.listener===t)0==--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(o=-1,r=n.length-1;r>=0;r--)if(n[r]===t||n[r].listener===t){c=n[r].listener,o=r;break}if(o<0)return this;0===o?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,o),1===n.length&&(i[e]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",e,c||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,n,i;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var o,r=Object.keys(n);for(i=0;i<r.length;++i)"removeListener"!==(o=r[i])&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return d(this,e,!0)},r.prototype.rawListeners=function(e){return d(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},r.prototype.listenerCount=g,r.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},5949:function(e,t,n){"use strict";var i=n(3566),o=n(8282);function r(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=r,r.prototype.update=function(e,t){if(e=i.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=i.join32(e,0,e.length-n,this.endian);for(var o=0;o<e.length;o+=this._delta32)this._update(e,o,o+this._delta32)}return this},r.prototype.digest=function(e){return this.update(this._pad()),o(null===this.pending),this._digest(e)},r.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,i=new Array(n+this.padLength);i[0]=128;for(var o=1;o<n;o++)i[o]=0;if(e<<=3,"big"===this.endian){for(var r=8;r<this.padLength;r++)i[o++]=0;i[o++]=0,i[o++]=0,i[o++]=0,i[o++]=0,i[o++]=e>>>24&255,i[o++]=e>>>16&255,i[o++]=e>>>8&255,i[o++]=255&e}else for(i[o++]=255&e,i[o++]=e>>>8&255,i[o++]=e>>>16&255,i[o++]=e>>>24&255,i[o++]=0,i[o++]=0,i[o++]=0,i[o++]=0,r=8;r<this.padLength;r++)i[o++]=0;return i}},9016:function(e,t,n){"use strict";var i=n(3566),o=n(5949),r=n(7574),c=i.rotl32,s=i.sum32,a=i.sum32_5,u=r.ft_1,l=o.BlockHash,p=[1518500249,1859775393,2400959708,3395469782];function d(){if(!(this instanceof d))return new d;l.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}i.inherits(d,l),e.exports=d,d.blockSize=512,d.outSize=160,d.hmacStrength=80,d.padLength=64,d.prototype._update=function(e,t){for(var n=this.W,i=0;i<16;i++)n[i]=e[t+i];for(;i<n.length;i++)n[i]=c(n[i-3]^n[i-8]^n[i-14]^n[i-16],1);var o=this.h[0],r=this.h[1],l=this.h[2],d=this.h[3],g=this.h[4];for(i=0;i<n.length;i++){var m=~~(i/20),f=a(c(o,5),u(m,r,l,d),g,n[i],p[m]);g=d,d=l,l=c(r,30),r=o,o=f}this.h[0]=s(this.h[0],o),this.h[1]=s(this.h[1],r),this.h[2]=s(this.h[2],l),this.h[3]=s(this.h[3],d),this.h[4]=s(this.h[4],g)},d.prototype._digest=function(e){return"hex"===e?i.toHex32(this.h,"big"):i.split32(this.h,"big")}},7574:function(e,t,n){"use strict";var i=n(3566).rotr32;function o(e,t,n){return e&t^~e&n}function r(e,t,n){return e&t^e&n^t&n}function c(e,t,n){return e^t^n}t.ft_1=function(e,t,n,i){return 0===e?o(t,n,i):1===e||3===e?c(t,n,i):2===e?r(t,n,i):void 0},t.ch32=o,t.maj32=r,t.p32=c,t.s0_256=function(e){return i(e,2)^i(e,13)^i(e,22)},t.s1_256=function(e){return i(e,6)^i(e,11)^i(e,25)},t.g0_256=function(e){return i(e,7)^i(e,18)^e>>>3},t.g1_256=function(e){return i(e,17)^i(e,19)^e>>>10}},3566:function(e,t,n){"use strict";var i=n(8282),o=n(9503);function r(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function c(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function s(e){return 1===e.length?"0"+e:e}function a(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=o,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),o=0;o<e.length;o+=2)n.push(parseInt(e[o]+e[o+1],16))}else for(var i=0,o=0;o<e.length;o++){var c=e.charCodeAt(o);c<128?n[i++]=c:c<2048?(n[i++]=c>>6|192,n[i++]=63&c|128):r(e,o)?(c=65536+((1023&c)<<10)+(1023&e.charCodeAt(++o)),n[i++]=c>>18|240,n[i++]=c>>12&63|128,n[i++]=c>>6&63|128,n[i++]=63&c|128):(n[i++]=c>>12|224,n[i++]=c>>6&63|128,n[i++]=63&c|128)}else for(o=0;o<e.length;o++)n[o]=0|e[o];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=s(e[n].toString(16));return t},t.htonl=c,t.toHex32=function(e,t){for(var n="",i=0;i<e.length;i++){var o=e[i];"little"===t&&(o=c(o)),n+=a(o.toString(16))}return n},t.zero2=s,t.zero8=a,t.join32=function(e,t,n,o){var r=n-t;i(r%4==0);for(var c=new Array(r/4),s=0,a=t;s<c.length;s++,a+=4){var u;u="big"===o?e[a]<<24|e[a+1]<<16|e[a+2]<<8|e[a+3]:e[a+3]<<24|e[a+2]<<16|e[a+1]<<8|e[a],c[s]=u>>>0}return c},t.split32=function(e,t){for(var n=new Array(4*e.length),i=0,o=0;i<e.length;i++,o+=4){var r=e[i];"big"===t?(n[o]=r>>>24,n[o+1]=r>>>16&255,n[o+2]=r>>>8&255,n[o+3]=255&r):(n[o+3]=r>>>24,n[o+2]=r>>>16&255,n[o+1]=r>>>8&255,n[o]=255&r)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,i){return e+t+n+i>>>0},t.sum32_5=function(e,t,n,i,o){return e+t+n+i+o>>>0},t.sum64=function(e,t,n,i){var o=e[t],r=i+e[t+1]>>>0,c=(r<i?1:0)+n+o;e[t]=c>>>0,e[t+1]=r},t.sum64_hi=function(e,t,n,i){return(t+i>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,i){return t+i>>>0},t.sum64_4_hi=function(e,t,n,i,o,r,c,s){var a=0,u=t;return a+=(u=u+i>>>0)<t?1:0,a+=(u=u+r>>>0)<r?1:0,e+n+o+c+(a+=(u=u+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,i,o,r,c,s){return t+i+r+s>>>0},t.sum64_5_hi=function(e,t,n,i,o,r,c,s,a,u){var l=0,p=t;return l+=(p=p+i>>>0)<t?1:0,l+=(p=p+r>>>0)<r?1:0,l+=(p=p+s>>>0)<s?1:0,e+n+o+c+a+(l+=(p=p+u>>>0)<u?1:0)>>>0},t.sum64_5_lo=function(e,t,n,i,o,r,c,s,a,u){return t+i+r+s+u>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},8617:function(e,t,n){"use strict";var i=n(9128),o=n(8086),r=n(5771),c=n.n(r),s=n(8772),a=n(8090),u=n(5565),l=n.n(u),p=n(9016),d=n.n(p),g=n(2571),m=n(702),f=n(2846),h=c()("i18n-calypso"),y="number_format_decimals",v="number_format_thousands_sep",b="messages",_=[function(e){return e}],k={};function w(){N.throwErrors&&"undefined"!=typeof window&&window.console&&window.console.warn&&window.console.warn.apply(window.console,arguments)}function j(e){return Array.prototype.slice.call(e)}function C(e){var t=e[0];("string"!=typeof t||e.length>3||e.length>2&&"object"==typeof e[1]&&"object"==typeof e[2])&&w("Deprecated Invocation: `translate()` accepts ( string, [string], [object] ). These arguments passed:",j(e),". See https://github.com/Automattic/i18n-calypso#translate-method"),2===e.length&&"string"==typeof t&&"string"==typeof e[1]&&w("Invalid Invocation: `translate()` requires an options object for plural translations, but passed:",j(e));for(var n={},i=0;i<e.length;i++)"object"==typeof e[i]&&(n=e[i]);if("string"==typeof t?n.original=t:"object"==typeof n.original&&(n.plural=n.original.plural,n.count=n.original.count,n.original=n.original.single),"string"==typeof e[1]&&(n.plural=e[1]),void 0===n.original)throw new Error("Translate called without a `string` value as first argument.");return n}function E(e,t){return e.dcnpgettext(b,t.context,t.original,t.plural,t.count)}function S(e,t){for(var n=_.length-1;n>=0;n--){var i=_[n](Object.assign({},t)),o=i.context?i.context+""+i.original:i.original;if(e.state.locale[o])return E(e.state.tannin,i)}return null}function N(){if(!(this instanceof N))return new N;this.defaultLocaleSlug="en",this.defaultPluralForms=function(e){return 1===e?0:1},this.state={numberFormatSettings:{},tannin:void 0,locale:void 0,localeSlug:void 0,textDirection:void 0,translations:l()({max:100})},this.componentUpdateHooks=[],this.translateHooks=[],this.stateObserver=new g.EventEmitter,this.stateObserver.setMaxListeners(0),this.configure()}N.throwErrors=!1,N.prototype.on=function(){var e;(e=this.stateObserver).on.apply(e,arguments)},N.prototype.off=function(){var e;(e=this.stateObserver).off.apply(e,arguments)},N.prototype.emit=function(){var e;(e=this.stateObserver).emit.apply(e,arguments)},N.prototype.numberFormat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="number"==typeof t?t:t.decimals||0,i=t.decPoint||this.state.numberFormatSettings.decimal_point||".",o=t.thousandsSep||this.state.numberFormatSettings.thousands_sep||",";return(0,f.Z)(e,n,i,o)},N.prototype.configure=function(e){Object.assign(this,e||{}),this.setLocale()},N.prototype.setLocale=function(e){var t,n,i;if(e&&e[""]&&e[""]["key-hash"]){var r=e[""]["key-hash"],c=function(e,t){var n=!1===t?"":String(t);if(void 0!==k[n+e])return k[n+e];var i=d()().update(e).digest("hex");return k[n+e]=t?i.substr(0,t):i},s=function(e){return function(t){return t.context?(t.original=c(t.context+String.fromCharCode(4)+t.original,e),delete t.context):t.original=c(t.original,e),t}};if("sha1"===r.substr(0,4))if(4===r.length)_.push(s(!1));else{var u=r.substr(5).indexOf("-");if(u<0){var l=Number(r.substr(5));_.push(s(l))}else for(var p=Number(r.substr(5,u)),g=Number(r.substr(6+u)),m=p;m<=g;m++)_.push(s(m))}}if(e&&e[""].localeSlug)if(e[""].localeSlug===this.state.localeSlug){if(e===this.state.locale)return;Object.assign(this.state.locale,e)}else this.state.locale=Object.assign({},e);else this.state.locale={"":{localeSlug:this.defaultLocaleSlug,plural_forms:this.defaultPluralForms}};this.state.localeSlug=this.state.locale[""].localeSlug,this.state.textDirection=(null===(t=this.state.locale["text directionltr"])||void 0===t?void 0:t[0])||(null===(n=this.state.locale[""])||void 0===n||null===(i=n.momentjs_locale)||void 0===i?void 0:i.textDirection),this.state.tannin=new a.Z((0,o.Z)({},b,this.state.locale)),this.state.numberFormatSettings.decimal_point=E(this.state.tannin,C([y])),this.state.numberFormatSettings.thousands_sep=E(this.state.tannin,C([v])),this.state.numberFormatSettings.decimal_point===y&&(this.state.numberFormatSettings.decimal_point="."),this.state.numberFormatSettings.thousands_sep===v&&(this.state.numberFormatSettings.thousands_sep=","),this.stateObserver.emit("change")},N.prototype.getLocale=function(){return this.state.locale},N.prototype.getLocaleSlug=function(){return this.state.localeSlug},N.prototype.isRtl=function(){return"rtl"===this.state.textDirection},N.prototype.addTranslations=function(e){for(var t in e)""!==t&&(this.state.tannin.data.messages[t]=e[t]);this.stateObserver.emit("change")},N.prototype.hasTranslation=function(){return!!S(this,C(arguments))},N.prototype.translate=function(){var e=C(arguments),t=S(this,e);if(t||(t=E(this.state.tannin,e)),e.args){var n=Array.isArray(e.args)?e.args.slice(0):[e.args];n.unshift(t);try{t=m.Z.apply(void 0,(0,i.Z)(n))}catch(e){if(!window||!window.console)return;var o=this.throwErrors?"error":"warn";"string"!=typeof e?window.console[o](e):window.console[o]("i18n sprintf error:",n)}}return e.components&&(t=(0,s.Z)({mixedString:t,components:e.components,throwErrors:this.throwErrors})),this.translateHooks.forEach((function(n){t=n(t,e)})),t},N.prototype.reRenderTranslations=function(){h("Re-rendering all translations due to external request"),this.stateObserver.emit("change")},N.prototype.registerComponentUpdateHook=function(e){this.componentUpdateHooks.push(e)},N.prototype.registerTranslateHook=function(e){this.translateHooks.push(e)},t.Z=N},3807:function(e,t,n){"use strict";n.d(t,{Y4:function(){return a}});var i=n(8617),o=n(2928),r=n(975),c=n(4531),s=new i.Z,a=s.numberFormat.bind(s),u=(s.translate.bind(s),s.configure.bind(s),s.setLocale.bind(s),s.getLocale.bind(s),s.getLocaleSlug.bind(s),s.addTranslations.bind(s),s.reRenderTranslations.bind(s),s.registerComponentUpdateHook.bind(s),s.registerTranslateHook.bind(s),s.state,s.stateObserver,s.on.bind(s),s.off.bind(s),s.emit.bind(s),(0,o.Z)(s),(0,r.Z)(s),(0,c.Z)(s));u.useRtl,u.withRtl},2928:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var i=n(9591),o=n(1687),r=n(3772),c=n(5200),s=n(2104),a=n(9057),u=n(8086),l=n(9196),p=n.n(l);function d(e){var t={numberFormat:e.numberFormat.bind(e),translate:e.translate.bind(e)};return function(n){var l,d,g=n.displayName||n.name||"";return d=l=function(l){(0,s.Z)(g,l);var d=(0,a.Z)(g);function g(){var e;(0,o.Z)(this,g);for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return e=d.call.apply(d,[this].concat(n)),(0,u.Z)((0,c.Z)(e),"boundForceUpdate",e.forceUpdate.bind((0,c.Z)(e))),e}return(0,r.Z)(g,[{key:"componentDidMount",value:function(){e.on("change",this.boundForceUpdate)}},{key:"componentWillUnmount",value:function(){e.off("change",this.boundForceUpdate)}},{key:"render",value:function(){var o=(0,i.Z)({locale:e.getLocaleSlug()},this.props,{},t);return p().createElement(n,o)}}]),g}(p().Component),(0,u.Z)(l,"displayName","Localized("+g+")"),d}}},2846:function(e,t,n){"use strict";function i(e,t,n,i){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var o=isFinite(+e)?+e:0,r=isFinite(+t)?Math.abs(t):0,c=void 0===i?",":i,s=void 0===n?".":n,a="";return a=(r?function(e,t){var n=Math.pow(10,t);return""+(Math.round(e*n)/n).toFixed(t)}(o,r):""+Math.round(o)).split("."),a[0].length>3&&(a[0]=a[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,c)),(a[1]||"").length<r&&(a[1]=a[1]||"",a[1]+=new Array(r-a[1].length+1).join("0")),a.join(s)}n.d(t,{Z:function(){return i}})},4531:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});var i=n(5672),o=n(9196),r=n.n(o),c=n(36),s=n(4333);function a(e){var t={getCurrentValue:function(){return e.isRtl()},subscribe:function(t){return e.on("change",t),function(){return e.off("change",t)}}};function n(){return(0,c.useSubscription)(t)}var a=(0,s.createHigherOrderComponent)((function(e){return(0,o.forwardRef)((function(t,o){var c=n();return r().createElement(e,(0,i.Z)({},t,{isRtl:c,ref:o}))}))}),"WithRTL");return{useRtl:n,withRtl:a}}},975:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var i=n(572),o=n(9196),r=n.n(o);function c(e){function t(){var t=e.translate.bind(e);return Object.defineProperty(t,"localeSlug",{get:e.getLocaleSlug.bind(e)}),t}return function(){var n=r().useState(t),o=(0,i.Z)(n,2),c=o[0],s=o[1];return r().useEffect((function(){var n=function(){return s(t)};return e.on("change",n),function(){return e.off("change",n)}}),[]),c}}},9503:function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}},5565:function(e,t,n){var i=n(2571),o=n(9503);function r(e){if(!(this instanceof r))return new r(e);"number"==typeof e&&(e={max:e}),e||(e={}),i.EventEmitter.call(this),this.cache={},this.head=this.tail=null,this.length=0,this.max=e.max||1e3,this.maxAge=e.maxAge||0}e.exports=r,o(r,i.EventEmitter),Object.defineProperty(r.prototype,"keys",{get:function(){return Object.keys(this.cache)}}),r.prototype.clear=function(){this.cache={},this.head=this.tail=null,this.length=0},r.prototype.remove=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];return delete this.cache[e],this._unlink(e,t.prev,t.next),t.value}},r.prototype._unlink=function(e,t,n){this.length--,0===this.length?this.head=this.tail=null:this.head===e?(this.head=t,this.cache[this.head].next=null):this.tail===e?(this.tail=n,this.cache[this.tail].prev=null):(this.cache[t].next=n,this.cache[n].prev=t)},r.prototype.peek=function(e){if(this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return t.value}},r.prototype.set=function(e,t){var n;if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){if((n=this.cache[e]).value=t,this.maxAge&&(n.modified=Date.now()),e===this.head)return t;this._unlink(e,n.prev,n.next)}else n={value:t,modified:0,next:null,prev:null},this.maxAge&&(n.modified=Date.now()),this.cache[e]=n,this.length===this.max&&this.evict();return this.length++,n.next=null,n.prev=this.head,this.head&&(this.cache[this.head].next=e),this.head=e,this.tail||(this.tail=e),t},r.prototype._checkAge=function(e,t){return!(this.maxAge&&Date.now()-t.modified>this.maxAge)||(this.remove(e),this.emit("evict",{key:e,value:t.value}),!1)},r.prototype.get=function(e){if("string"!=typeof e&&(e=""+e),this.cache.hasOwnProperty(e)){var t=this.cache[e];if(this._checkAge(e,t))return this.head!==e&&(e===this.tail?(this.tail=t.next,this.cache[this.tail].prev=null):this.cache[t.prev].next=t.next,this.cache[t.next].prev=t.prev,this.cache[this.head].next=e,t.prev=this.head,t.next=null,this.head=e),t.value}},r.prototype.evict=function(){if(this.tail){var e=this.tail,t=this.remove(this.tail);this.emit("evict",{key:e,value:t})}}},4125:function(){},8776:function(){},7394:function(){},6212:function(){},4959:function(){},2961:function(){},404:function(){},1294:function(){},1545:function(){},843:function(){},8282:function(e){function t(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=t,t.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},2002:function(e){var t=1e3,n=60*t,i=60*n,o=24*i,r=7*o,c=365.25*o;function s(e,t,n,i){var o=t>=1.5*n;return Math.round(e/n)+" "+i+(o?"s":"")}e.exports=function(e,a){a=a||{};var u=typeof e;if("string"===u&&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 a=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return a*c;case"weeks":case"week":case"w":return a*r;case"days":case"day":case"d":return a*o;case"hours":case"hour":case"hrs":case"hr":case"h":return a*i;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}(e);if("number"===u&&isFinite(e))return a.long?function(e){var r=Math.abs(e);if(r>=o)return s(e,r,o,"day");if(r>=i)return s(e,r,i,"hour");if(r>=n)return s(e,r,n,"minute");if(r>=t)return s(e,r,t,"second");return e+" ms"}(e):function(e){var r=Math.abs(e);if(r>=o)return Math.round(e/o)+"d";if(r>=i)return Math.round(e/i)+"h";if(r>=n)return Math.round(e/n)+"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))}},1625:function(e){"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach((function(e){i[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(e){return!1}}()?Object.assign:function(e,r){for(var c,s,a=o(e),u=1;u<arguments.length;u++){for(var l in c=Object(arguments[u]))n.call(c,l)&&(a[l]=c[l]);if(t){s=t(c);for(var p=0;p<s.length;p++)i.call(c,s[p])&&(a[s[p]]=c[s[p]])}}return a}},9587:function(e,t,n){"use strict";var i=n(5843);function o(){}function r(){}r.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,r,c){if(c!==i){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 n={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:o};return n.PropTypes=n,n}},1268:function(e,t,n){e.exports=n(9587)()},5843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},8090:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(7478),o={contextDelimiter:"",onMissingKey:null};function r(e,t){var n;for(n in this.data=e,this.pluralForms={},this.options={},o)this.options[n]=void 0!==t&&n in t?t[n]:o[n]}r.prototype.getPluralForm=function(e,t){var n,o,r,c=this.pluralForms[e];return c||("function"!=typeof(r=(n=this.data[e][""])["Plural-Forms"]||n["plural-forms"]||n.plural_forms)&&(o=function(e){var t,n,i;for(t=e.split(";"),n=0;n<t.length;n++)if(0===(i=t[n].trim()).indexOf("plural="))return i.substr(7)}(n["Plural-Forms"]||n["plural-forms"]||n.plural_forms),r=(0,i.Z)(o)),c=this.pluralForms[e]=r),c(t)},r.prototype.dcnpgettext=function(e,t,n,i,o){var r,c,s;return r=void 0===o?0:this.getPluralForm(e,o),c=n,t&&(c=t+this.options.contextDelimiter+n),(s=this.data[e][c])&&s[r]?s[r]:(this.options.onMissingKey&&this.options.onMissingKey(n,e),0===r?n:i)}},816:function(e,t,n){"use strict";var i=n(5771),o=n.n(i),r=n(2819);const c=o()("dops:analytics");let s,a;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const u={initialize:function(e,t,n){u.setUser(e,t),u.setSuperProps(n),u.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){a={ID:e,username:t}},setSuperProps:function(e){s=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){u.tracks.recordPageView(e),u.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,i,o,r,c){u.ga.recordPurchase(e,t,n,i,o,r,c)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(s&&(c("- Super Props: %o",s),t=(0,r.assign)(t,s)),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};u.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){u.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={};u.ga.initialized||(a&&(e={userId:"u-"+a.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),u.ga.initialized=!0)},recordPageView:function(e,t){u.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,n,i){u.ga.initialize();let o="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(o+=" [Option Label: "+n+"]"),void 0!==i&&(o+=" [Option Value: "+i+"]"),c(o),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,i)},recordPurchase:function(e,t,n,i,o,r,c){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:i,currency:c}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:o,quantity:r}),window.ga("ecommerce:send")}},identifyUser:function(){a&&window._tkq.push(["identifyUser",a.ID,a.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}};t.Z=u},9570:function(e,t,n){"use strict";var i=n(2819),o=n(6483),r=n(6251);function c(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const s=c("JsonParseError"),a=c("JsonParseAfterRedirectError"),u=c("Api404Error"),l=c("Api404AfterRedirectError"),p=c("FetchNetworkError");const d=new function(e,t){let n=e,c={"X-WP-Nonce":t},s={credentials:"same-origin",headers:c},a={method:"post",credentials:"same-origin",headers:(0,i.assign)({},c,{"Content-type":"application/json"})},u=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",i=n.length?n.split("&"):[];return i.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+i.join("&")};const l={setApiRoot(e){n=e},setApiNonce(e){c={"X-WP-Nonce":e},s={credentials:"same-origin",headers:c},a={method:"post",credentials:"same-origin",headers:(0,i.assign)({},c,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{u=e},registerSite:(e,t)=>{const i={registration_nonce:e,no_iframe:!0};return(0,r.jetpackConfigHas)("consumer_slug")&&(i.plugin_slug=(0,r.jetpackConfigGet)("consumer_slug")),null!==t&&(i.redirect_uri=t),d(`${n}jetpack/v4/connection/register`,a,{body:JSON.stringify(i)}).then(g).then(m)},fetchAuthorizationUrl:e=>p((0,o.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),s).then(g).then(m),fetchSiteConnectionData:()=>p(`${n}jetpack/v4/connection/data`,s).then(m),fetchSiteConnectionStatus:()=>p(`${n}jetpack/v4/connection`,s).then(m),fetchSiteConnectionTest:()=>p(`${n}jetpack/v4/connection/test`,s).then(g).then(m),fetchUserConnectionData:()=>p(`${n}jetpack/v4/connection/data`,s).then(m),fetchUserTrackingSettings:()=>p(`${n}jetpack/v4/tracking/settings`,s).then(g).then(m),updateUserTrackingSettings:e=>d(`${n}jetpack/v4/tracking/settings`,a,{body:JSON.stringify(e)}).then(g).then(m),disconnectSite:()=>d(`${n}jetpack/v4/connection`,a,{body:JSON.stringify({isActive:!1})}).then(g).then(m),fetchConnectUrl:()=>p(`${n}jetpack/v4/connection/url`,s).then(g).then(m),unlinkUser:()=>d(`${n}jetpack/v4/connection/user`,a,{body:JSON.stringify({linked:!1})}).then(g).then(m),reconnect:()=>d(`${n}jetpack/v4/connection/reconnect`,a).then(g).then(m),fetchConnectedPlugins:()=>p(`${n}jetpack/v4/connection/plugins`,s).then(g).then(m),setHasSeenWCConnectionModal:()=>d(`${n}jetpack/v4/seen-wc-connection-modal`,a).then(g).then(m),fetchModules:()=>p(`${n}jetpack/v4/module/all`,s).then(g).then(m),fetchModule:e=>p(`${n}jetpack/v4/module/${e}`,s).then(g).then(m),activateModule:e=>d(`${n}jetpack/v4/module/${e}/active`,a,{body:JSON.stringify({active:!0})}).then(g).then(m),deactivateModule:e=>d(`${n}jetpack/v4/module/${e}/active`,a,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>d(`${n}jetpack/v4/module/${e}`,a,{body:JSON.stringify(t)}).then(g).then(m),updateSettings:e=>d(`${n}jetpack/v4/settings`,a,{body:JSON.stringify(e)}).then(g).then(m),getProtectCount:()=>p(`${n}jetpack/v4/module/protect/data`,s).then(g).then(m),resetOptions:e=>d(`${n}jetpack/v4/options/${e}`,a,{body:JSON.stringify({reset:!0})}).then(g).then(m),activateVaultPress:()=>d(`${n}jetpack/v4/plugins`,a,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(g).then(m),getVaultPressData:()=>p(`${n}jetpack/v4/module/vaultpress/data`,s).then(g).then(m),installPlugin:(e,t)=>{const i={slug:e,status:"active"};return t&&(i.source=t),d(`${n}jetpack/v4/plugins`,a,{body:JSON.stringify(i)}).then(g).then(m)},activateAkismet:()=>d(`${n}jetpack/v4/plugins`,a,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(g).then(m),getAkismetData:()=>p(`${n}jetpack/v4/module/akismet/data`,s).then(g).then(m),checkAkismetKey:()=>p(`${n}jetpack/v4/module/akismet/key/check`,s).then(g).then(m),checkAkismetKeyTyped:e=>d(`${n}jetpack/v4/module/akismet/key/check`,a,{body:JSON.stringify({api_key:e})}).then(g).then(m),fetchStatsData:e=>p(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),s).then(g).then(m).then(f),getPluginUpdates:()=>p(`${n}jetpack/v4/updates/plugins`,s).then(g).then(m),getPlans:()=>p(`${n}jetpack/v4/plans`,s).then(g).then(m),fetchSettings:()=>p(`${n}jetpack/v4/settings`,s).then(g).then(m),updateSetting:e=>d(`${n}jetpack/v4/settings`,a,{body:JSON.stringify(e)}).then(g).then(m),fetchSiteData:()=>p(`${n}jetpack/v4/site`,s).then(g).then(m).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>p(`${n}jetpack/v4/site/features`,s).then(g).then(m).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>p(`${n}jetpack/v4/site/products`,s).then(g).then(m),fetchSitePurchases:()=>p(`${n}jetpack/v4/site/purchases`,s).then(g).then(m).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>p(`${n}jetpack/v4/site/benefits`,s).then(g).then(m).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>p(`${n}jetpack/v4/setup/questionnaire`,s).then(g).then(m),fetchRecommendationsData:()=>p(`${n}jetpack/v4/recommendations/data`,s).then(g).then(m),fetchRecommendationsProductSuggestions:()=>p(`${n}jetpack/v4/recommendations/product-suggestions`,s).then(g).then(m),fetchRecommendationsUpsell:()=>p(`${n}jetpack/v4/recommendations/upsell`,s).then(g).then(m),saveRecommendationsData:e=>d(`${n}jetpack/v4/recommendations/data`,a,{body:JSON.stringify({data:e})}).then(g),fetchProducts:()=>p(`${n}jetpack/v4/products`,s).then(g).then(m),fetchRewindStatus:()=>p(`${n}jetpack/v4/rewind`,s).then(g).then(m).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>p(`${n}jetpack/v4/scan`,s).then(g).then(m).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>d(`${n}jetpack/v4/notice/${e}`,a,{body:JSON.stringify({dismissed:!0})}).then(g).then(m),fetchPluginsData:()=>p(`${n}jetpack/v4/plugins`,s).then(g).then(m),fetchVerifySiteGoogleStatus:e=>p(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,s).then(g).then(m),verifySiteGoogle:e=>d(`${n}jetpack/v4/verify-site/google`,a,{body:JSON.stringify({keyring_id:e})}).then(g).then(m),sendMobileLoginEmail:()=>d(`${n}jetpack/v4/mobile/send-login-email`,a).then(g).then(m),submitSurvey:e=>d(`${n}jetpack/v4/marketing/survey`,a,{body:JSON.stringify(e)}).then(g).then(m),saveSetupQuestionnaire:e=>d(`${n}jetpack/v4/setup/questionnaire`,a,{body:JSON.stringify(e)}).then(g).then(m),updateLicensingError:e=>d(`${n}jetpack/v4/licensing/error`,a,{body:JSON.stringify(e)}).then(g).then(m),updateLicenseKey:e=>d(`${n}jetpack/v4/licensing/set-license`,a,{body:JSON.stringify({license:e})}).then(g).then(m),getUserLicensesCounts:()=>p(`${n}jetpack/v4/licensing/user/counts`,s).then(g).then(m),updateLicensingActivationNoticeDismiss:e=>d(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,a,{body:JSON.stringify({last_detached_count:e})}).then(g).then(m),updateRecommendationsStep:e=>d(`${n}jetpack/v4/recommendations/step`,a,{body:JSON.stringify({step:e})}).then(g),confirmIDCSafeMode:()=>d(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,a).then(g),startIDCFresh:e=>d(`${n}jetpack/v4/identity-crisis/start-fresh`,a,{body:JSON.stringify({redirect_uri:e})}).then(g).then(m),migrateIDC:()=>d(`${n}jetpack/v4/identity-crisis/migrate`,a).then(g),attachLicenses:e=>d(`${n}jetpack/v4/licensing/attach-licenses`,a,{body:JSON.stringify({licenses:e})}).then(g).then(m),fetchSearchPlanInfo:()=>p(`${n}jetpack/v4/search/plan`,s).then(g).then(m),fetchSearchSettings:()=>p(`${n}jetpack/v4/search/settings`,s).then(g).then(m),updateSearchSettings:e=>d(`${n}jetpack/v4/search/settings`,a,{body:JSON.stringify(e)}).then(g).then(m)};function p(e,t){return fetch(u(e),t)}function d(e,t,n){return fetch(e,(0,i.assign)({},t,n)).catch(h)}function f(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,i.assign)(this,l)};function g(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new l(e.redirected):new u})):e.json().catch((e=>f(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function m(e){return e.json().catch((t=>f(t,e.redirected,e.url)))}function f(e,t,n){throw t?new a(n):new s}function h(){throw new p}t.ZP=d},1583:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(5736),c=n(5609),s=n(1268),a=n.n(s),u=(n(4125),n(7262));const __=r.__,l=e=>{const{label:t,onClick:n,isLoading:i,displayError:r,errorMessage:s}=e;return o().createElement("div",{className:"jp-action-button"},o().createElement(c.Button,{className:"jp-action-button--button",label:t,onClick:n,isPrimary:!0,disabled:i},i?o().createElement(u.Z,null):t),r&&o().createElement("p",{className:"jp-action-button__error"},s))};l.propTypes={label:a().string.isRequired,onClick:a().func,isLoading:a().bool,displayError:a().bool,errorMessage:a().string},l.defaultProps={isLoading:!1,displayError:!1,errorMessage:__("An error occurred. Please try again.","jetpack-connection-ui")},t.Z=l},9697:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r);n(8776);const s=e=>{const{format:t,icon:n,imageUrl:i}=e;return o().createElement("div",{className:"jp-components__decorative-card "+(t?"jp-components__decorative-card--"+t:"")},o().createElement("div",{className:"jp-components__decorative-card__image",style:{backgroundImage:i?`url( ${i} )`:""}}),o().createElement("div",{className:"jp-components__decorative-card__content"},o().createElement("div",{className:"jp-components__decorative-card__lines"})),(()=>{if(n)return o().createElement("div",{className:"jp-components__decorative-card__icon-container"},o().createElement("span",{className:"jp-components__decorative-card__icon jp-components__decorative-card__icon--"+n}))})())};s.propTypes={format:c().oneOf(["horizontal","vertical"]),icon:c().oneOf(["unlink"]),imageUrl:c().string},s.defaultProps={format:"horizontal"},t.Z=s},1546:function(e,t,n){"use strict";var i=n(9183),o=n.n(i),r=n(7538),c=n.n(r),s=n(1268),a=n.n(s),u=n(9196),l=n.n(u),p=n(9105),d=n.n(p),g=n(5736);const __=g.__;class m extends l().Component{render(){const{logoColor:e,showText:t,className:n,...i}=this.props,r=t?"0 0 118 32":"0 0 32 32";return l().createElement("svg",o()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:r,className:d()("jetpack-logo",n),"aria-labelledby":"jetpack-logo-title"},i),l().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack-connection-ui")),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(u.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"})))}}c()(m,"propTypes",{className:a().string,width:a().number,height:a().number,showText:a().bool,logoColor:a().string}),c()(m,"defaultProps",{className:"",height:32,showText:!0,logoColor:"#069e08"}),t.Z=m},2678:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5609),a=n(6078),u=n(5736);n(7394);const __=u.__,l=e=>-1===e.fraction.indexOf("00"),p=e=>{const t=(0,a.LR)(e.priceBefore,e.currencyCode),n=(0,a.LR)(e.priceAfter,e.currencyCode);return o().createElement("div",{className:"jp-components__pricing-card"},e.icon&&o().createElement("div",{className:"jp-components__pricing-card__icon"},o().createElement("img",{src:e.icon,alt:(0,u.sprintf)(
+/* translators: placeholder is a product name */
+__("Icon for the product %s","jetpack-connection-ui"),e.title)})),o().createElement("h1",{className:"jp-components__pricing-card__title"},e.title),o().createElement("div",{className:"jp-components__pricing-card__pricing"},e.priceBefore!==e.priceAfter&&o().createElement("div",{className:"jp-components__pricing-card__price-before"},o().createElement("span",{className:"jp-components__pricing-card__currency"},t.symbol),o().createElement("span",{className:"jp-components__pricing-card__price"},t.integer),l(t)&&o().createElement("span",{className:"jp-components__pricing-card__price-decimal"}," ",t.fraction),o().createElement("div",{className:"jp-components__pricing-card__price-strikethrough"})),o().createElement("div",{className:"jp-components__pricing-card__price-after"},o().createElement("span",{className:"jp-components__pricing-card__currency"},n.symbol),o().createElement("span",{className:"jp-components__pricing-card__price"},n.integer),l(n)&&o().createElement("span",{className:"jp-components__pricing-card__price-decimal"},n.fraction)),o().createElement("span",{className:"jp-components__pricing-card__price-details"},e.priceDetails)),e.children&&o().createElement("div",{className:"jp-components__pricing-card__extra-content-wrapper"},e.children),e.ctaText&&o().createElement("div",{className:"jp-components__pricing-card__cta"},o().createElement(s.Button,{className:"jp-components__pricing-card__button",label:e.ctaText,onClick:e.onCtaClick},e.ctaText)),e.infoText&&o().createElement("div",{className:"jp-components__pricing-card__info"},e.infoText))};p.propTypes={title:c().string.isRequired,icon:c().string,priceBefore:c().number.isRequired,priceAfter:c().number.isRequired,priceDetails:c().string,currencyCode:c().string,ctaText:c().string,onCtaClick:c().func,infoText:c().oneOfType([c().string,c().object])},p.defaultProps={currencyCode:"USD",priceDetails:__("/month, paid yearly","jetpack-connection-ui")},t.Z=p},7262:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r);n(6212);const s=e=>{const t=e.className+" jp-components-spinner",n={width:e.size,height:e.size,fontSize:e.size,borderTopColor:e.color},i={borderTopColor:e.color,borderRightColor:e.color};return o().createElement("div",{className:t},o().createElement("div",{className:"jp-components-spinner__outer",style:n},o().createElement("div",{className:"jp-components-spinner__inner",style:i})))};s.propTypes={color:c().string,className:c().string,size:c().number},s.defaultProps={color:"#FFFFFF",className:"",size:20},t.Z=s},1415:function(e,t,n){"use strict";function i(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let i;if("undefined"!=typeof window&&(i=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),i&&(n.calypso_env=i);const o=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+o}n.d(t,{Z:function(){return i}})},6251:function(e,t,n){let i={};try{i=n(Object(function(){var e=new Error("Cannot find module 'jetpackConfig'");throw e.code="MODULE_NOT_FOUND",e}()))}catch{console.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),i={missingConfig:!0}}const o=e=>i.hasOwnProperty(e);e.exports={jetpackConfigHas:o,jetpackConfigGet:e=>{if(!o(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 i[e]}}},4254:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r);const s=e=>{const{images:t,assetBaseUrl:n}=e;if(!t.length)return null;const i=t.map(((e,t)=>o().createElement(o().Fragment,{key:t},o().createElement("img",{src:n+e,alt:""}))));return o().createElement("div",{className:"jp-connection__connect-screen__image-slider"},i)};s.propTypes={images:c().arrayOf(c().string).isRequired,assetBaseUrl:c().string},s.defaultProps={assetBaseUrl:""},t.Z=s},7865:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(1546),a=n(4254);n(4959);const u=e=>{const{title:t,children:n,className:i,assetBaseUrl:r,images:c}=e,u=c?.length;return o().createElement("div",{className:"jp-connection__connect-screen-layout"+(u?" jp-connection__connect-screen-layout__two-columns":"")+(i?" "+i:"")},o().createElement("div",{className:"jp-connection__connect-screen-layout__left"},o().createElement(s.Z,null),o().createElement("h2",null,t),n),u?o().createElement("div",{className:"jp-connection__connect-screen-layout__right"},o().createElement(a.Z,{images:c,assetBaseUrl:r})):null)};u.propTypes={title:c().string,className:c().string,images:c().arrayOf(c().string),assetBaseUrl:c().string},t.Z=u},1213:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(9818),a=n(5736),u=n(5731),l=n(2199),p=n(1631);const __=a.__,d=e=>{const{title:t,autoTrigger:n,buttonLabel:i,apiRoot:r,apiNonce:c,registrationNonce:a,from:d,redirectUri:g,children:m,priceBefore:f,priceAfter:h,pricingIcon:y,pricingTitle:v,pricingCurrencyCode:b}=e,{handleRegisterSite:_,isRegistered:k,isUserConnected:w,siteIsRegistering:j,userIsConnecting:C,registrationError:E}=(0,p.Z)({registrationNonce:a,redirectUri:g,apiRoot:r,apiNonce:c,autoTrigger:n,from:d}),S=!k||!w,N=(0,s.useSelect)((e=>e(l.t).getConnectionStatusIsFetching())),O=Boolean(E),P=j||C;return o().createElement(u.Z,{title:t,buttonLabel:i,priceBefore:f,priceAfter:h,pricingIcon:y,pricingTitle:v,pricingCurrencyCode:b,isLoading:N,handleButtonClick:_,showConnectButton:S,displayButtonError:O,buttonIsLoading:P},m)};d.propTypes={title:c().string,buttonLabel:c().string,apiRoot:c().string.isRequired,apiNonce:c().string.isRequired,registrationNonce:c().string.isRequired,from:c().string,redirectUri:c().string.isRequired,autoTrigger:c().bool,pricingTitle:c().string.isRequired,icon:c().string,priceBefore:c().number.isRequired,priceAfter:c().number.isRequired,pricingCurrencyCode:c().string},d.defaultProps={title:__("Over 5 million WordPress sites are faster and more secure","jetpack-connection-ui"),buttonLabel:__("Set up Jetpack","jetpack-connection-ui"),pricingCurrencyCode:"USD",autoTrigger:!1},t.Z=d},5731:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5736),a=n(1415),u=n(1583),l=n(2678),p=n(9307),d=n(7865);n(2961);const __=s.__,g=e=>{const{title:t,buttonLabel:n,children:i,priceBefore:r,priceAfter:c,pricingIcon:s,pricingTitle:g,pricingCurrencyCode:m,isLoading:f,handleButtonClick:h,showConnectButton:y,displayButtonError:v,buttonIsLoading:b}=e,_=(0,p.createInterpolateElement)(__("By clicking the button above, you agree to our <tosLink>Terms of Service</tosLink> and to <shareDetailsLink>share details</shareDetailsLink> with WordPress.com.","jetpack-connection-ui"),{tosLink:o().createElement("a",{href:(0,a.Z)("wpcom-tos"),rel:"noopener noreferrer",target:"_blank"}),shareDetailsLink:o().createElement("a",{href:(0,a.Z)("jetpack-support-what-data-does-jetpack-sync"),rel:"noopener noreferrer",target:"_blank"})}),k=(0,p.createInterpolateElement)(__("Already have a subscription? <connectButton/> to get started.","jetpack-connection-ui"),{connectButton:o().createElement(u.Z,{label:__("Log in","jetpack-connection-ui"),onClick:h,isLoading:b})});return o().createElement(d.Z,{title:t,className:"jp-connection__connect-screen-required-plan"+(f?" jp-connection__connect-screen-required-plan__loading":"")},o().createElement("div",{className:"jp-connection__connect-screen-required-plan__content"},i,o().createElement("div",{className:"jp-connection__connect-screen-required-plan__pricing-card"},o().createElement(l.Z,{title:g,icon:s,priceBefore:r,currencyCode:m,priceAfter:c,infoText:y?_:""},y&&o().createElement(u.Z,{label:n,onClick:h,displayError:v,isLoading:b}))),y&&o().createElement("div",{className:"jp-connection__connect-screen-required-plan__with-subscription"},k)))};g.propTypes={pricingTitle:c().string.isRequired,priceBefore:c().number.isRequired,priceAfter:c().number.isRequired,pricingCurrencyCode:c().string,title:c().string,buttonLabel:c().string,pricingIcon:c().string,isLoading:c().bool,handleButtonClick:c().func,showConnectButton:c().bool,displayButtonError:c().bool,buttonIsLoading:c().bool},g.defaultProps={pricingCurrencyCode:"USD",showConnectButton:!0,isLoading:!1,buttonIsLoading:!1,displayButtonError:!1,handleButtonClick:()=>{}},t.Z=g},9565:function(e,t,n){"use strict";var i=n(9196),o=n(1268),r=n.n(o),c=n(9570);const s=e=>{const{redirectFunc:t,connectUrl:n,redirectUri:o,from:r}=e,[s,a]=(0,i.useState)(null);return n&&n!==s&&a(n),(0,i.useEffect)((()=>{s||c.ZP.fetchAuthorizationUrl(o).then((e=>a(e.authorizeUrl))).catch((e=>{throw e}))}),[]),s?(t(s+(r?(s.includes("?")?"&":"?")+"from="+encodeURIComponent(r):"")),null):null};s.propTypes={connectUrl:r().string,redirectUri:r().string.isRequired,from:r().string,redirectFunc:r().func},s.defaultProps={redirectFunc:e=>window.location.assign(e),redirectUri:null},t.Z=s},3593:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5736),a=n(2332);const __=s.__,u=e=>{const{connectedPlugins:t,disconnectingPlugin:n}=e,r=(0,i.useMemo)((()=>{if(t){return Object.keys(t).map((e=>Object.assign({slug:e},t[e]))).filter((e=>n!==e.slug))}return[]}),[t,n]);return t&&r.length>0?o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is powering other plugins on your site. If you disconnect, these plugins will no longer work.","jetpack-connection-ui"))),o().createElement("div",{className:"jp-connection__disconnect-card__group"},r.map((e=>o().createElement(a.Z,{title:e.name}))))):null};u.PropTypes={connectedPlugins:c().object,disconnectingPlugin:c().string},t.Z=u},7132:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(5736),c=n(5609),s=n(1268),a=n.n(s),u=n(9570),l=n(9818),p=n(9565),d=n(5628),g=n(2199),m=n(1631);n(404);const __=r.__,f=e=>{const{apiRoot:t,apiNonce:n,redirectUri:r,title:s,connectionInfoText:a,onDisconnected:f,connectedPlugins:h,connectedSiteId:y,context:v}=e,{isRegistered:b,isUserConnected:_}=(0,m.Z)({apiRoot:t,apiNonce:n}),[k,w]=(0,i.useState)(!1),[j,C]=(0,i.useState)({}),[E,S]=(0,i.useState)(!1),N=(0,l.useSelect)((e=>e(g.t).getUserIsConnecting()),[]),{setConnectionStatus:O,setUserIsConnecting:P}=(0,l.useDispatch)(g.t),Z=(0,i.useRef)();(0,i.useEffect)((()=>{u.ZP.setApiRoot(t),u.ZP.setApiNonce(n)}),[t,n]),(0,i.useEffect)((()=>{w(!0),u.ZP.fetchSiteConnectionData().then((e=>{w(!1),C(e.currentUser?.wpcomUser);const t=e.currentUser?.wpcomUser?.avatar;t&&(Z.current.style.backgroundImage=`url('${t}')`)})).catch((e=>{throw w(!1),e}))}),[w,C]);const R=(0,i.useCallback)((e=>{e&&e.preventDefault(),S(!0)}),[S]),x=(0,i.useCallback)((e=>{e&&e.preventDefault(),S(!1)}),[S]),F=(0,i.useCallback)((e=>{e&&e.preventDefault(),O({isActive:!1,isRegistered:!1,isUserConnected:!1}),f&&"[object Function]"==={}.toString.call(f)&&f()}),[f,O]);return b?o().createElement("div",{className:"jp-connection-status-card"},o().createElement("h3",null,s),o().createElement("p",null,a),o().createElement("div",{className:"jp-connection-status-card--status"},o().createElement("div",{className:"jp-connection-status-card--cloud"}),o().createElement("div",{className:"jp-connection-status-card--line"+(_?"":" jp-connection-status-card--site-only")}),o().createElement("div",{className:"jp-connection-status-card--jetpack-logo"}),o().createElement("div",{className:"jp-connection-status-card--avatar",ref:Z})),o().createElement("ul",{className:"jp-connection-status-card--list"},o().createElement("li",{className:"jp-connection-status-card--list-item-success"},__("Site connected.","jetpack-connection-ui")," ",o().createElement(c.Button,{variant:"link",onClick:R,className:"jp-connection__disconnect-dialog__link"},__("Disconnect","jetpack-connection-ui")),o().createElement(d.Z,{apiRoot:t,apiNonce:n,onDisconnected:F,connectedPlugins:h,connectedSiteId:y,connectedUser:j,isOpen:E,onClose:x,context:v})),_&&!k&&o().createElement("li",{className:"jp-connection-status-card--list-item-success"},__("Logged in as","jetpack-connection-ui")," ",j?.display_name),!_&&!k&&o().createElement("li",{className:"jp-connection-status-card--list-item-error"},__("Your WordPress.com account is not connected.","jetpack-connection-ui"))),!_&&!k&&o().createElement(c.Button,{isPrimary:!0,disabled:N,onClick:P,className:"jp-connection-status-card--btn-connect-user"},__("Connect your WordPress.com account","jetpack-connection-ui")),N&&o().createElement(p.Z,{redirectUri:r})):null};f.propTypes={apiRoot:a().string.isRequired,apiNonce:a().string.isRequired,redirectUri:a().string.isRequired,connectedPlugins:a().object,connectedSiteId:a().number,title:a().string,connectionInfoText:a().string,onDisconnected:a().func,context:a().string},f.defaultProps={title:__("Connection","jetpack-connection-ui"),connectionInfoText:__("Leverages the Jetpack Cloud for more features on your side.","jetpack-connection-ui")},t.Z=f},2332:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r);n(1294);const s=e=>{const{title:t,value:n,description:i}=e;return o().createElement("div",{className:"jp-connection__disconnect-card card"},o().createElement("div",{className:"jp-connection__disconnect-card__card-content"},o().createElement("p",{className:"jp-connection__disconnect-card__card-headline"},t),(n||i)&&o().createElement("div",{className:"jp-connection__disconnect-card__card-stat-block"},o().createElement("span",{className:"jp-connection__disconnect-card__card-stat"},n),o().createElement("div",{className:"jp-connection__disconnect-card__card-description"},i))))};s.propTypes={title:c().string,value:c().string|c().number,description:c().number},t.Z=s},5628:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5736),a=n(5609),u=n(9570),l=n(816),p=n(6251),d=(n(1545),n(163)),g=n(1496),m=n(4130),f=n(5700);const __=s.__,h=e=>{const[t,n]=(0,i.useState)(!1),[r,c]=(0,i.useState)(!1),[s,h]=(0,i.useState)(!1),[y,v]=(0,i.useState)(!1),[b,_]=(0,i.useState)(!1),[k,w]=(0,i.useState)(!1),{apiRoot:j,apiNonce:C,connectedPlugins:E,title:S,pluginScreenDisconnectCallback:N,onDisconnected:O,onError:P,disconnectStepComponent:Z,context:R,connectedUser:x,connectedSiteId:F,isOpen:T,onClose:I}=e;let A="";(0,p.jetpackConfigHas)("consumer_slug")&&(A=(0,p.jetpackConfigGet)("consumer_slug"));const L=(0,i.useMemo)((()=>({context:R,plugin:A})),[R,A]);(0,i.useEffect)((()=>{u.ZP.setApiRoot(j),u.ZP.setApiNonce(C)}),[j,C]),(0,i.useEffect)((()=>{x&&x.ID&&x.login&&l.Z.initialize(x.ID,x.login)}),[x,x.ID,x.login]),(0,i.useEffect)((()=>{T&&l.Z.tracks.recordEvent("jetpack_disconnect_dialog_open",L)}),[T,L]),(0,i.useEffect)((()=>{T&&(r?!r||y||b?y&&!b?l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"survey"},L)):b&&l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"thank_you"},L)):l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect_confirm"},L)):l.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect"},L)))}),[T,r,y,b,L]);const U=(0,i.useCallback)((()=>{u.ZP.disconnectSite().then((()=>{n(!1),c(!0)})).catch((e=>{n(!1),h(e),P&&P(e)}))}),[n,c,h,P]),D=(0,i.useCallback)(((e,t)=>{w(!0),fetch("https://public-api.wordpress.com/wpcom/v2/marketing/feedback-survey",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{if(!0!==e.success)throw new Error("Survey endpoint returned error code "+e.code);l.Z.tracks.recordEvent("jetpack_disconnect_survey_submit",t),_(!0),w(!1)})).catch((e=>{l.Z.tracks.recordEvent("jetpack_disconnect_survey_error",Object.assign({},{error:e.message},t)),_(!0),w(!1)}))}),[w,_]),$=(0,i.useCallback)((e=>{e&&e.preventDefault(),h(!1),n(!0),"plugins"!==R?U():N&&N(e)}),[h,n,N,R,U]),B=(0,i.useCallback)((()=>x.ID&&F),[x,F]),M=(0,i.useCallback)(((e,t,n)=>{if(n&&n.preventDefault(),!B())return void _(!0);const i={site_id:F,user_id:x.ID,survey_id:"jetpack-plugin-disconnect",survey_responses:{"why-cancel":{response:e,text:t||null}}},o=Object.assign({},L,{disconnect_reason:e});D(i,o)}),[D,_,B,F,x,L]),z=(0,i.useCallback)((e=>{e&&e.preventDefault(),O&&O(),I()}),[O,I]),J=(0,i.useCallback)((e=>{e&&e.preventDefault(),v(!0)}),[v]);return o().createElement(o().Fragment,null,T&&o().createElement(a.Modal,{title:"",contentLabel:S,aria:{labelledby:"jp-connection__disconnect-dialog__heading"},onRequestClose:I,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,isDismissible:!1,className:"jp-connection__disconnect-dialog"+(r?" jp-connection__disconnect-dialog__success":"")},r?!r||y||b?y&&!b?o().createElement(m.Z,{isSubmittingFeedback:k,onFeedBackProvided:M,onExit:z}):b?o().createElement(f.Z,{onExit:z}):void 0:o().createElement(g.Z,{canProvideFeedback:B(),onProvideFeedback:J,onExit:z}):o().createElement(d.Z,{title:S,connectedPlugins:E,disconnectStepComponent:Z,isDisconnecting:t,closeModal:I,onDisconnect:$,disconnectError:s,context:R,disconnectingPlugin:A})))};h.propTypes={apiRoot:c().string.isRequired,apiNonce:c().string.isRequired,title:c().string,onDisconnected:c().func,onError:c().func,context:c().string,connectedPlugins:c().object,pluginScreenDisconnectCallback:c().func,disconnectStepComponent:c().element,connectedUser:c().object,connectedSiteId:c().number,isOpen:c().bool,onClose:c().func},h.defaultProps={title:__("Are you sure you want to disconnect?","jetpack-connection-ui"),context:"jetpack-dashboard",connectedUser:{}},t.Z=h},1496:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(9307),a=n(5736),u=n(5609),l=n(9697),p=n(2042);const __=a.__,d=e=>{const{onExit:t,canProvideFeedback:n,onProvideFeedback:i}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(l.Z,{icon:"unlink",imageUrl:p}),o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy jp-connection__disconnect-dialog__step-copy--narrow"},o().createElement("h1",null,(0,s.createInterpolateElement)(__("Jetpack has been <br/>successfully disconnected.","jetpack-connection-ui"),{br:o().createElement("br",null)})),n&&o().createElement(o().Fragment,null,o().createElement("p",null,__("We’re sorry to see you go. Here at Jetpack, we’re always striving to provide the best experience for our customers. Please take our short survey (2 minutes, promise).","jetpack-connection-ui")),o().createElement("p",null,o().createElement(u.Button,{isPrimary:!0,onClick:i,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Help us improve","jetpack-connection-ui"))),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("No thank you","jetpack-connection-ui"))),!n&&o().createElement(o().Fragment,null,o().createElement("p",null,o().createElement(u.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack-connection-ui"))))))};d.PropTypes={onExit:c().func,onProvideFeedback:c().func,canProvideFeedback:c().bool},t.Z=d},163:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(9307),c=n(5736),s=n(1415),a=n(5609),u=n(1268),l=n.n(u),p=n(3593);const __=c.__,d=e=>{const{title:t,isDisconnecting:n,onDisconnect:i,disconnectError:c,disconnectStepComponent:u,connectedPlugins:l,disconnectingPlugin:d,closeModal:g,context:m}=e;return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",{id:"jp-connection__disconnect-dialog__heading"},t),o().createElement(p.Z,{connectedPlugins:l,disconnectingPlugin:d}),u,(()=>{if(!l&&!u)return o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering multiple products on your site.","jetpack-connection-ui"),o().createElement("br",null),__("Once you disconnect Jetpack, these will no longer work.","jetpack-connection-ui")))})()),o().createElement("div",{className:"jp-connection__disconnect-dialog__actions"},o().createElement("div",{className:"jp-row"},o().createElement("div",{className:"lg-col-span-7 md-col-span-8 sm-col-span-4"},o().createElement("p",null,(0,r.createInterpolateElement)(__("<strong>Need help?</strong> Learn more about the <jpConnectionInfoLink>Jetpack connection</jpConnectionInfoLink> or <jpSupportLink>contact Jetpack support</jpSupportLink>.","jetpack-connection-ui"),{strong:o().createElement("strong",null),jpConnectionInfoLink:o().createElement("a",{href:(0,s.Z)("why-the-wordpress-com-connection-is-important-for-jetpack"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"}),jpSupportLink:o().createElement("a",{href:(0,s.Z)("jetpack-support"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"})}))),o().createElement("div",{className:"jp-connection__disconnect-dialog__button-wrap lg-col-span-5 md-col-span-8 sm-col-span-4"},o().createElement(a.Button,{isPrimary:!0,disabled:n,onClick:g,className:"jp-connection__disconnect-dialog__btn-dismiss"},__("Stay connected","jetpack-connection-ui")),(()=>{let e=__("Disconnect","jetpack-connection-ui");return n?e=__("Disconnecting…","jetpack-connection-ui"):"plugins"===m&&(e=__("Disconnect and Deactivate","jetpack-connection-ui")),o().createElement(a.Button,{isPrimary:!0,disabled:n,onClick:i,className:"jp-connection__disconnect-dialog__btn-disconnect"},e)})())),c&&o().createElement("p",{className:"jp-connection__disconnect-dialog__error"},c)))};d.propTypes={title:l().string,isDisconnecting:l().bool,onDisconnect:l().func,disconnectError:l().bool,disconnectStepComponent:l().elementType,connectedPlugins:l().array,disconnectingPlugin:l().string,closeModal:l().func,context:l().string},t.Z=d},4130:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5736),a=(n(843),n(1194));const __=s.__,u=e=>{const{onExit:t,onFeedBackProvided:n,isSubmittingFeedback:i}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",null,__("Before you go, help us improve Jetpack","jetpack-connection-ui")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Let us know what didn‘t work for you","jetpack-connection-ui")),o().createElement(a.Z,{onSubmit:n,isSubmittingFeedback:i}),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("Skip for now","jetpack-connection-ui")))};u.PropTypes={onExit:c().func,onFeedBackProvided:c().func,isSubmittingFeedback:c().bool},t.Z=u},5700:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(9697),a=n(5736),u=n(5609),l=n(9307),p=n(724);const __=a.__,d=e=>{const{onExit:t}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(s.Z,{format:"vertical",imageUrl:p}),o().createElement("div",{className:"jp-connection__disconnect-dialog__copy"},o().createElement("h1",null,__("Thank you!","jetpack-connection-ui")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},(0,l.createInterpolateElement)(__("Your answer has been submitted. <br/>Thanks for your input on how we can improve Jetpack.","jetpack-connection-ui"),{br:o().createElement("br",null)})),o().createElement(u.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack-connection-ui"))))};d.PropTypes={onExit:c().func,assetBaseUrl:c().string},t.Z=d},1194:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(1268),c=n.n(r),s=n(5609),a=n(5736),u=n(7215);const __=a.__,l=e=>{const{onSubmit:t,isSubmittingFeedback:n}=e,[r,c]=(0,i.useState)(),[a,l]=(0,i.useState)(),p=[{id:"troubleshooting",answerText:__("Troubleshooting - I'll be reconnecting afterwards.","jetpack-connection-ui")},{id:"not-working",answerText:__("I can't get it to work.","jetpack-connection-ui")},{id:"slowed-down-site",answerText:__("It slowed down my site.","jetpack-connection-ui")},{id:"buggy",answerText:__("It's buggy.","jetpack-connection-ui")},{id:"what-does-it-do",answerText:__("I don't know what it does.","jetpack-connection-ui")}],d="another-reason",g=(0,i.useCallback)((()=>{t(r,r===d?a:"")}),[t,d,a,r]),m=(0,i.useCallback)((e=>{const t=e.target.value;e.stopPropagation(),l(t)}),[l]),f=e=>e===r?"jp-connect__disconnect-survey-card--selected":"",h=(0,i.useCallback)(((e,t)=>{switch(t.key){case"Enter":case"Space":case"Spacebar":case" ":c(e)}}),[c]);return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__survey"},p.map((e=>o().createElement(u.Z,{id:e.id,onClick:c,onKeyDown:h,className:"card jp-connect__disconnect-survey-card "+f(e.id)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},e.answerText)))),o().createElement(u.Z,{id:d,onClick:c,onKeyDown:h,className:"card jp-connect__disconnect-survey-card "+f(d)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},__("Other:","jetpack-connection-ui")," ",o().createElement("input",{placeholder:__("share your experience","jetpack-connection-ui"),className:"jp-connect__disconnect-survey-card__input",type:"text",value:a,onChange:m,maxLength:1e3})))),o().createElement("p",null,o().createElement(s.Button,{disabled:!r||n,isPrimary:!0,onClick:g,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},n?__("Submitting…","jetpack-connection-ui"):__("Submit Feedback","jetpack-connection-ui",0))))};l.PropTypes={onSubmit:c().func,isSubmittingFeedback:c().bool},t.Z=l},7215:function(e,t,n){"use strict";var i=n(9196),o=n.n(i);n(843);t.Z=e=>{const{id:t,onClick:n,onKeyDown:r,children:c,className:s}=e,a=(0,i.useCallback)((()=>{n(t)}),[t,n]),u=(0,i.useCallback)((e=>{r(t,e)}),[t,r]);return o().createElement("div",{tabIndex:"0",role:"button",onClick:a,onKeyDown:u,className:"card jp-connect__disconnect-survey-card "+s},c)}},1631:function(e,t,n){"use strict";var i=n(9196),o=n(9818),r=n(9570),c=n(2199);t.Z=e=>{let{registrationNonce:t,redirectUri:n,apiRoot:s,apiNonce:a,autoTrigger:u,from:l}=e;const{registerSite:p,connectUser:d}=(0,o.useDispatch)(c.t),g=(0,o.useSelect)((e=>e(c.t).getRegistrationError())),{siteIsRegistering:m,userIsConnecting:f,isRegistered:h,isUserConnected:y}=(0,o.useSelect)((e=>({siteIsRegistering:e(c.t).getSiteIsRegistering(),userIsConnecting:e(c.t).getUserIsConnecting(),...e(c.t).getConnectionStatus()}))),v=()=>d({from:l}),b=e=>{e&&e.preventDefault(),h?v():p({registrationNonce:t,redirectUri:n}).then((()=>{v()}))};return(0,i.useEffect)((()=>{r.ZP.setApiRoot(s),r.ZP.setApiNonce(a)}),[s,a]),(0,i.useEffect)((()=>{!u||m||f||b()}),[]),{handleRegisterSite:b,handleConnectUser:v,isRegistered:h,isUserConnected:y,siteIsRegistering:m,userIsConnecting:f,registrationError:g}}},6973:function(e,t,n){"use strict";n.d(t,{i6:function(){return i},LI:function(){return o},r7:function(){return r},N4:function(){return c},qV:function(){return s},T1:function(){return a},TS:function(){return u},ZP:function(){return y}});const i="SET_CONNECTION_STATUS",o="SET_CONNECTION_STATUS_IS_FETCHING",r="SET_SITE_IS_REGISTERING",c="SET_USER_IS_CONNECTING",s="SET_REGISTRATION_ERROR",a="CLEAR_REGISTRATION_ERROR",u="SET_AUTHORIZATION_URL",l="CONNECT_USER",p=e=>({type:i,connectionStatus:e}),d=e=>({type:r,isRegistering:e}),g=e=>({type:c,isConnecting:e}),m=e=>({type:s,registrationError:e}),f=()=>({type:a}),h=e=>({type:u,authorizationUrl:e});const y={setConnectionStatus:p,setConnectionStatusIsFetching:e=>({type:o,isFetching:e}),fetchConnectionStatus:()=>({type:"FETCH_CONNECTION_STATUS"}),fetchAuthorizationUrl:e=>({type:"FETCH_AUTHORIZATION_URL",redirectUri:e}),setSiteIsRegistering:d,setUserIsConnecting:g,setRegistrationError:m,clearRegistrationError:f,setAuthorizationUrl:h,registerSite:function*(e){let{registrationNonce:t,redirectUri:n}=e;yield f(),yield d(!0);try{const e=yield{type:"REGISTER_SITE",registrationNonce:t,redirectUri:n};return yield p({isRegistered:!0}),yield h(e.authorizeUrl),yield d(!1),Promise.resolve(e)}catch(e){return yield m(e),yield d(!1),Promise.reject(e)}},connectUser:function*(){let{from:e,redirectFunc:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};yield g(!0),yield{type:l,from:e,redirectFunc:t}}}},4213:function(e,t,n){"use strict";var i=n(9570),o=n(9818),r=n(2199);const c=(0,o.createRegistryControl)((e=>{let{resolveSelect:t}=e;return function(){let{from:e,redirectFunc:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(((i,o)=>{t(r.t).getAuthorizationUrl().then((t=>{const o=n||(e=>window.location.assign(e)),r=new URL(t);e&&r.searchParams.set("from",encodeURIComponent(e));const c=r.toString();o(c),i(c)})).catch((e=>{o(e)}))}))}}));t.Z={FETCH_CONNECTION_STATUS:()=>new Promise(((e,t)=>{i.ZP.fetchSiteConnectionStatus().then((t=>e(t))).catch((e=>t(e)))})),FETCH_AUTHORIZATION_URL:e=>{let{redirectUri:t}=e;return i.ZP.fetchAuthorizationUrl(t)},REGISTER_SITE:e=>{let{registrationNonce:t,redirectUri:n}=e;return i.ZP.registerSite(t,n)},CONNECT_USER:c}},1147:function(e,t,n){"use strict";var i=n(9818),o=n(6973);const r=(0,i.combineReducers)({connectionStatus:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.i6?{...e,...t.connectionStatus}:e},connectionStatusIsFetching:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.LI?t.isFetching:e},siteIsRegistering:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.r7?t.isRegistering:e},userIsConnecting:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.N4?t.isConnecting:e},registrationError:(e,t)=>{switch(t.type){case o.T1:return!1;case o.qV:return t.registrationError;default:return e}},authorizationUrl:(e,t)=>t.type===o.TS?t.authorizationUrl:e});t.Z=r},8310:function(e,t,n){"use strict";var i=n(9818),o=n(6973),r=n(2199);const c={*getConnectionStatus(){yield o.ZP.setConnectionStatusIsFetching(!0);const e=yield o.ZP.fetchConnectionStatus();return yield o.ZP.setConnectionStatusIsFetching(!1),o.ZP.setConnectionStatus(e)},getAuthorizationUrl:{isFulfilled:function(e){const t=Boolean(e.authorizationUrl);for(var n=arguments.length,o=new Array(n>1?n-1:0),c=1;c<n;c++)o[c-1]=arguments[c];const s=(0,i.select)(r.t).hasFinishedResolution("getAuthorizationUrl",o);return t&&!s&&(0,i.dispatch)(r.t).finishResolution("getAuthorizationUrl",o),t},*fulfill(e){const t=yield o.ZP.fetchAuthorizationUrl(e);yield o.ZP.setAuthorizationUrl(t.authorizeUrl)}}};t.Z={...c}},387:function(e,t){"use strict";const n={getConnectionStatus:e=>e.connectionStatus||{},getConnectionStatusIsFetching:e=>e.connectionStatusIsFetching||!1,getSiteIsRegistering:e=>e.siteIsRegistering||!1,getUserIsConnecting:e=>e.userIsConnecting||!1,getRegistrationError:e=>e.registrationError||!1,getAuthorizationUrl:e=>e.authorizationUrl||!1};t.Z=n},5333:function(e,t,n){"use strict";var i=n(7538),o=n.n(i),r=n(9818);class c{static mayBeInit(e,t){null===c.store&&(c.store=(0,r.createReduxStore)(e,t),(0,r.register)(c.store),c.resolveResolvers(e,t.initialState))}static resolveResolvers(e,t){t.connectionStatus&&t.connectionStatus.hasOwnProperty("isRegistered")&&(0,r.dispatch)(e).finishResolution("getConnectionStatus",[])}}o()(c,"store",null),t.Z=c},2199:function(e,t,n){"use strict";n.d(t,{t:function(){return u}});var i=n(1147),o=n(6973),r=n(387),c=n(5333),s=n(8310),a=n(4213);const u="jetpack-connection";c.Z.mayBeInit(u,{reducer:i.Z,actions:o.ZP,selectors:r.Z,resolvers:s.Z,controls:a.Z,initialState:window.JP_CONNECTION_INITIAL_STATE||{}})},8509:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(9818),c=n(5736),s=n(9570),a=n(7132),u=n(1213),l=n(2199),p=n(682),d=n(8547);const __=c.__;t.Z=(0,r.withSelect)((e=>({connectionStatus:e(l.t).getConnectionStatus()})))((e=>{const t=(0,r.useSelect)((e=>e(p.t).getAPINonce()),[]),n=(0,r.useSelect)((e=>e(p.t).getAPIRoot()),[]),c=(0,r.useSelect)((e=>e(p.t).getRegistrationNonce()),[]),{hasIDC:l,canManageConnection:g,isSafeModeConfirmed:m}=(0,r.useSelect)((e=>e(p.t).getIDCData()),[]),{connectionStatus:f}=e;return(0,i.useEffect)((()=>{s.ZP.setApiRoot(n),s.ZP.setApiNonce(t)}),[n,t]),o().createElement(o().Fragment,null,(!l||m)&&o().createElement(d.Z,null),(!l||m)&&g&&f.isRegistered&&o().createElement(a.Z,{apiRoot:n,apiNonce:t,redirectUri:"tools.php?page=wpcom-connection-manager"}),(!l||m)&&g&&!f.isRegistered&&o().createElement(u.Z,{connectionStatus:f,apiRoot:n,apiNonce:t,registrationNonce:c,from:"connection-ui",redirectUri:"tools.php?page=wpcom-connection-manager",pricingIcon:"data:image/svg+xml,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='m21.092 15.164.019-1.703v-.039c0-1.975-1.803-3.866-4.4-3.866-2.17 0-3.828 1.351-4.274 2.943l-.426 1.524-1.581-.065a2.92 2.92 0 0 0-.12-.002c-1.586 0-2.977 1.344-2.977 3.133 0 1.787 1.388 3.13 2.973 3.133H22.399c1.194 0 2.267-1.016 2.267-2.4 0-1.235-.865-2.19-1.897-2.368l-1.677-.29Zm-10.58-3.204a4.944 4.944 0 0 0-.201-.004c-2.75 0-4.978 2.298-4.978 5.133s2.229 5.133 4.978 5.133h12.088c2.357 0 4.267-1.97 4.267-4.4 0-2.18-1.538-3.99-3.556-4.339v-.06c0-3.24-2.865-5.867-6.4-5.867-2.983 0-5.49 1.871-6.199 4.404Z' fill='%23000'/%3E%3C/svg%3E",priceBefore:9,priceAfter:4.5,pricingTitle:__("Jetpack Backup","jetpack-connection-ui"),buttonLabel:__("Get Jetpack Backup","jetpack-connection-ui")},o().createElement("p",null,__("Secure and speed up your site for free with Jetpack's powerful WordPress tools.","jetpack-connection-ui")),o().createElement("ul",null,o().createElement("li",null,__("Measure your impact with beautiful stats","jetpack-connection-ui")),o().createElement("li",null,__("Speed up your site with optimized images","jetpack-connection-ui")),o().createElement("li",null,__("Protect your site against bot attacks","jetpack-connection-ui")),o().createElement("li",null,__("Get notifications if your site goes offline","jetpack-connection-ui")),o().createElement("li",null,__("Enhance your site with dozens of other features","jetpack-connection-ui")))),(!l||m)&&!g&&o().createElement("p",null,"You need to be an admin to access this page."))}))},8547:function(e,t,n){"use strict";var i=n(9196),o=n.n(i),r=n(5736);const __=r.__;t.Z=()=>o().createElement("div",{className:"jetpack-cui__header"},o().createElement("h1",null,__("Connection Manager","jetpack-connection-ui")))},5472:function(e,t){"use strict";t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e}},3379:function(e,t){"use strict";t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e}},2310:function(e,t){"use strict";t.Z=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e}},4665:function(e,t,n){"use strict";var i=n(9818),o=n(5472),r=n(3379),c=n(2310);const s=(0,i.combineReducers)({API:o.Z,assets:r.Z,IDC:c.Z});t.Z=s},6931:function(e,t){"use strict";t.Z={getAPIRoot:e=>e.API.WP_API_root||null,getAPINonce:e=>e.API.WP_API_nonce||null,getRegistrationNonce:e=>e.API.registrationNonce||null}},4447:function(e,t){"use strict";t.Z={getAssetBuildUrl:e=>e.assets.buildUrl||null}},9546:function(e,t){"use strict";t.Z={getIDCData:e=>e.IDC||{}}},246:function(e,t,n){"use strict";var i=n(6931),o=n(4447),r=n(9546);const c={...i.Z,...o.Z,...r.Z};t.Z=c},682:function(e,t,n){"use strict";n.d(t,{t:function(){return r},i:function(){return c}});var i=n(4665),o=n(246);const r="jetpack-connection-ui",c={reducer:i.Z,selectors:o.Z,initialState:window.CUI_INITIAL_STATE||{}}},1043:function(e,t,n){"use strict";var i=n(1625),o=n(9196);t.useSubscription=function(e){var t=e.getCurrentValue,n=e.subscribe,r=o.useState((function(){return{getCurrentValue:t,subscribe:n,value:t()}}));e=r[0];var c=r[1];return r=e.value,e.getCurrentValue===t&&e.subscribe===n||(r=t(),c({getCurrentValue:t,subscribe:n,value:r})),o.useDebugValue(r),o.useEffect((function(){function e(){if(!o){var e=t();c((function(o){return o.getCurrentValue!==t||o.subscribe!==n||o.value===e?o:i({},o,{value:e})}))}}var o=!1,r=n(e);return e(),function(){o=!0,r()}}),[t,n]),r}},36:function(e,t,n){"use strict";e.exports=n(1043)},2042:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg"},724:function(e,t,n){"use strict";e.exports=n.p+"images/disconnect-thanks-5873bfac56a9bd7322cd.jpg"},9196:function(e){"use strict";e.exports=window.React},1850:function(e){"use strict";e.exports=window.ReactDOM},2819:function(e){"use strict";e.exports=window.lodash},5609:function(e){"use strict";e.exports=window.wp.components},4333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},9307:function(e){"use strict";e.exports=window.wp.element},5736:function(e){"use strict";e.exports=window.wp.i18n},6483:function(e){"use strict";e.exports=window.wp.url},8134:function(e,t,n){"use strict";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}n.d(t,{Z:function(){return i}})},4316:function(e,t,n){"use strict";function i(e){if(Array.isArray(e))return e}n.d(t,{Z:function(){return i}})},7024:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(8134);function o(e){if(Array.isArray(e))return(0,i.Z)(e)}},5200:function(e,t,n){"use strict";function i(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}n.d(t,{Z:function(){return i}})},1687:function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,{Z:function(){return i}})},3772:function(e,t,n){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function o(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}n.d(t,{Z:function(){return o}})},9057:function(e,t,n){"use strict";n.d(t,{Z:function(){return c}});var i=n(2406),o=n(8189),r=n(4621);function c(e){var t=(0,o.Z)();return function(){var n,o=(0,i.Z)(e);if(t){var c=(0,i.Z)(this).constructor;n=Reflect.construct(o,arguments,c)}else n=o.apply(this,arguments);return(0,r.Z)(this,n)}}},8086:function(e,t,n){"use strict";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{Z:function(){return i}})},5672:function(e,t,n){"use strict";function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},i.apply(this,arguments)}n.d(t,{Z:function(){return i}})},2406:function(e,t,n){"use strict";function i(e){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},i(e)}n.d(t,{Z:function(){return i}})},2104:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(3051);function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&(0,i.Z)(e,t)}},8189:function(e,t,n){"use strict";function i(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}n.d(t,{Z:function(){return i}})},613:function(e,t,n){"use strict";function i(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}n.d(t,{Z:function(){return i}})},120:function(e,t,n){"use strict";function i(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var i,o,r=[],_n=!0,c=!1;try{for(n=n.call(e);!(_n=(i=n.next()).done)&&(r.push(i.value),!t||r.length!==t);_n=!0);}catch(e){c=!0,o=e}finally{try{_n||null==n.return||n.return()}finally{if(c)throw o}}return r}}n.d(t,{Z:function(){return i}})},1722:function(e,t,n){"use strict";function i(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return i}})},6083:function(e,t,n){"use strict";function i(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}n.d(t,{Z:function(){return i}})},2141:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(8086);function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?Object(arguments[t]):{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(n).filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach((function(t){(0,i.Z)(e,t,n[t])}))}return e}},9591:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(8086);function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function r(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},4621:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var i=n(9504),o=n(5200);function r(e,t){if(t&&("object"===(0,i.Z)(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return(0,o.Z)(e)}},3051:function(e,t,n){"use strict";function i(e,t){return i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},i(e,t)}n.d(t,{Z:function(){return i}})},572:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var i=n(4316),o=n(120),r=n(3611),c=n(1722);function s(e,t){return(0,i.Z)(e)||(0,o.Z)(e,t)||(0,r.Z)(e,t)||(0,c.Z)()}},9128:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var i=n(7024),o=n(613),r=n(3611),c=n(6083);function s(e){return(0,i.Z)(e)||(0,o.Z)(e)||(0,r.Z)(e)||(0,c.Z)()}},9504:function(e,t,n){"use strict";function i(e){return i="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},i(e)}n.d(t,{Z:function(){return i}})},3611:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var i=n(8134);function o(e,t){if(e){if("string"==typeof e)return(0,i.Z)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?(0,i.Z)(e,t):void 0}}}},t={};function n(i){var o=t[i];if(void 0!==o)return o.exports;var r=t[i]={exports:{}};return e[i](r,r.exports,n),r.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var i=t.getElementsByTagName("script");i.length&&(e=i[i.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e}(),function(){"use strict";var e=n(1850),t=n.n(e),i=n(9196),o=n.n(i),r=n(9818),c=n(8509),s=n(682);const a=(0,r.createReduxStore)(s.t,s.i);(0,r.register)(a),function(){const e=document.getElementById("jetpack-connection-ui-container");null!==e&&t().render(o().createElement(c.Z,null),e)}()}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js.LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..00db07be
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.js.LICENSE.txt
@@ -0,0 +1,28 @@
+/*
+ * 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
+ */
+
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+
+/** @license React vundefined
+ * use-subscription.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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.rtl.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.rtl.css
new file mode 100644
index 00000000..5924baa9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/build/index.rtl.css
@@ -0,0 +1 @@
+#jetpack-connection-ui-container .jetpack-cui__header h1{font-size:4.6em;line-height:1.2em;text-align:right}#jetpack-connection-ui-container{margin:40px}#jetpack-connection-ui-container p{font-size:1.23em;line-height:1.5em}.jp-connection-status-card h3{color:var(--jp-black);font-size:36px;font-weight:400;line-height:40px;margin:0}.jp-connection-status-card a,.jp-connection-status-card a:active,.jp-connection-status-card a:hover{color:var(--jp-black)}.jp-connection-status-card p{color:var(--jp-black);margin:16px 0}.jp-connection-status-card a,.jp-connection-status-card li,.jp-connection-status-card p{font-size:16px;line-height:24px}.jp-connection-status-card--status{align-items:center;display:flex;margin:24px -6px 24px 0}.jp-connection-status-card--cloud{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjciIHk9IjkiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyMSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4zMzMgMTcuNjk3di0uMDhjMC00LjI1My0zLjc2LTcuNy04LjQtNy43LTMuOTE2IDAtNy4yMDYgMi40NTctOC4xMzYgNS43OGE2LjM4NiA2LjM4NiAwIDAgMC0uMjY0LS4wMDVDOS45MjUgMTUuNjkyIDcgMTguNzA4IDcgMjIuNDI5czIuOTI1IDYuNzM4IDYuNTMzIDYuNzM4SDI5LjRjMy4wOTMgMCA1LjYtMi41ODYgNS42LTUuNzc1IDAtMi44NjEtMi4wMTgtNS4yMzctNC42NjYtNS42OTVaIiBmaWxsPSIjZmZmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxwYXRoIGQ9Im0zMC4zMzMgMTcuNjk3LTIuNjI1LS4wMy0uMDI1IDIuMjM1IDIuMjAyLjM4MS40NDgtMi41ODZabS0xNi41MzctMi0uMTA3IDIuNjIzIDIuMDc1LjA4NS41Ni0yLTIuNTI4LS43MDhabS0uMjYzIDEzLjQ3djIuNjI1aC4wMDhsLS4wMDgtMi42MjVabS4wNCAwdi0yLjYyNWgtLjAwOWwuMDA4IDIuNjI1Wm0xNS43OTUgMCAuMDE1LTIuNjI1aC0uMDE1djIuNjI1Wm0zLjU5LTExLjQ0MXYtLjExaC01LjI1di4wNTJsNS4yNS4wNThabTAtLjExYzAtNS45MTItNS4xNTUtMTAuMzI0LTExLjAyNS0xMC4zMjR2NS4yNWMzLjQxIDAgNS43NzUgMi40ODIgNS43NzUgNS4wNzVoNS4yNVpNMjEuOTMzIDcuMjkzYy00Ljk4NCAwLTkuMzg4IDMuMTM5LTEwLjY2NCA3LjY5OGw1LjA1NSAxLjQxNWMuNTg1LTIuMDg5IDIuNzYyLTMuODYzIDUuNjEtMy44NjN2LTUuMjVabS04LjAzIDUuNzgyYTkuMTExIDkuMTExIDAgMCAwLS4zNy0uMDA3djUuMjVjLjA1MyAwIC4xMDUuMDAxLjE1Ni4wMDNsLjIxNS01LjI0NlptLS4zNy0uMDA3Yy01LjEzMyAwLTkuMTU4IDQuMjY4LTkuMTU4IDkuMzYyaDUuMjVjMC0yLjM0OCAxLjgyNS00LjExMiAzLjkwOC00LjExMnYtNS4yNVptLTkuMTU4IDkuMzYyYzAgNS4wOTUgNC4wMjUgOS4zNjMgOS4xNTggOS4zNjN2LTUuMjVjLTIuMDgzIDAtMy45MDgtMS43NjUtMy45MDgtNC4xMTNoLTUuMjVabTkuMTY2IDkuMzYzaC4wNGwtLjAxNy01LjI1aC0uMDM5bC4wMTYgNS4yNVptLjAzMSAwaDE1Ljc5NnYtNS4yNUgxMy41NzJ2NS4yNVptMTUuODI3LTUuMjVoLS4wMTZsLS4wMyA1LjI1aC4wNDZ2LTUuMjVabTIuOTc1LTMuMTVjMCAxLjgxNi0xLjQwNyAzLjE1LTIuOTc1IDMuMTV2NS4yNWM0LjYxOCAwIDguMjI1LTMuODM4IDguMjI1LTguNGgtNS4yNVptLTIuNDg5LTMuMTA5YzEuMzU1LjIzNSAyLjQ5IDEuNDg4IDIuNDkgMy4xMDloNS4yNWMwLTQuMTAyLTIuOTAyLTcuNi02Ljg0NC04LjI4MmwtLjg5NiA1LjE3M1oiIGZpbGw9IiMxRTFFMUUiLz48L2c+PC9zdmc+);height:42px;margin-left:4px;width:42px}.jp-connection-status-card--jetpack-logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZTMjQuODM3IDAgMTYgMCAwIDcuMTYzIDAgMTZzNy4xNjMgMTYgMTYgMTZaIiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTE2Ljc5NCAxMy4zMTN2MTUuNTExbDgtMTUuNTEyaC04Wk0xNS4xNzUgMTguNjU3VjMuMTc2bC03Ljk2OSAxNS40OGg3Ljk3WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);height:32px;margin-right:11px;width:32px}.jp-connection-status-card--btn-connect-user{background:var(--jp-black)!important;border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection-status-card--avatar{background-color:var(--jp-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.498 27.123C6.038 24.165 10.916 21.5 16 21.5c5.084 0 9.963 2.665 11.502 5.623a15.952 15.952 0 0 1-11.257 4.875L16 32l-.245-.002a15.952 15.952 0 0 1-11.257-4.875zM16 8a6 6 0 1 1 0 12 6 6 0 0 1 0-12z' fill='%23A2AAB2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;border:0;border-radius:20px;height:32px;margin-right:-10px;width:32px}.jp-connection-status-card--line{border-top:2px solid var(--jp-black);height:0;width:67px}.jp-connection-status-card--line.jp-connection-status-card--site-only{border-top-style:dashed}.jp-connection-status-card--list{list-style-type:none;margin:16px 0}.jp-connection-status-card--list li{color:var(--jp-black);margin:0 -3px 8px 0;padding-right:25px}.jp-connection-status-card--list-item-success{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4LjkzNSA2LTguOSAxMS45Ny01LjE2Mi0zLjgzNyIgc3Ryb2tlPSIjMUUxRTFFIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==) no-repeat 100% 0}.jp-connection-status-card--list-item-error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 100% 0;color:var(--jp-red)!important}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-small);font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:var(--font-title-small);font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:var(--font-body);margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:var(--jp-white-off);border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:var(--jp-white);border-top:1px solid var(--jp-gray);bottom:0;padding:2rem 0;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(to bottom,transparent,var(--jp-white-off));bottom:calc(100% + 1px);content:"";display:block;height:80px;position:absolute;right:0;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:var(--jp-black)!important;margin-left:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:var(--jp-red)!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:var(--jp-black)!important}.jp-connection__disconnect-dialog__button-wrap{text-align:right}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:var(--jp-red)}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-large)}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-right:0}}.jp-connection__disconnect-card{background-color:var(--jp-white);border:none;border-radius:3px;box-shadow:0 0 15px var(--jp-gray-off);margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:right;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-left:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:left}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-left:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:0;margin-right:1rem}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px var(--jp-gray);display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:var(--jp-gray);background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;position:absolute;right:24px;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:var(--jp-red);border-radius:50px;height:80px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px var(--jp-gray-off);margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:right;width:800px}.jp-connect__disconnect-survey-card--selected{background:var(--jp-gray-off);border-color:var(--jp-black)}.jp-connect__disconnect-survey-card:after{border-left:2px solid var(--jp-black);border-top:2px solid var(--jp-black);content:"";display:block;height:5px;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%) rotate(-45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:var(--jp-black-80)}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:var(--jp-black-80);flex-grow:1;max-width:calc(100% - 40px);padding-left:40px}@media(min-width:1080px){.jp-connection__connect-screen-layout__left{width:70%}.jp-connection__connect-screen-required-plan{background:linear-gradient(270deg,#fff 70%,#f9f9f6 0);position:relative}}.jp-connection__connect-screen-required-plan__loading{display:none}@media(min-width:1080px){.jp-connection__connect-screen-required-plan__pricing-card{position:absolute;right:62%;top:14%}}.jp-connection__connect-screen-required-plan__pricing-card .components-button{align-items:center;background:var(--jp-black)!important;border-radius:var(--jp-border-radius);color:var(--jp-white)!important;font-size:18px;font-weight:500;height:auto;justify-content:center;margin:24px 0 32px;padding:14px 24px;width:100%}.jp-connection__connect-screen-required-plan__with-subscription{margin-top:38px}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button{display:inline}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button{background:inherit!important;color:var(--jp-black)!important;display:inline;font-size:var(--font-title-small);font:inherit;height:auto;line-height:20px;min-width:0;padding:0;text-decoration:underline;width:auto}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button:hover{background:inherit;text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__connect-screen-required-plan__with-subscription .jp-action-button--button:focus{background:inherit;box-shadow:none!important}.jp-connection__connect-screen-required-plan__with-subscription .jp-components-spinner__inner,.jp-connection__connect-screen-required-plan__with-subscription .jp-components-spinner__outer{border-left-color:var(--jp-black);border-top-color:var(--jp-black)}.jp-action-button--button{background:#000}.jp-action-button--button,.jp-action-button--button.components-button{border-radius:4px;display:block;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px;font-style:normal;font-weight:600;height:40px;line-height:18px;min-width:264px;text-align:center}.jp-action-button__error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 100% 0;color:var(--jp-red)!important;line-height:25px!important;padding-right:25px}@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-connection__connect-screen-layout{background:var(--jp-white);border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.08)}.jp-connection__connect-screen-layout__loading{display:none}.jp-connection__connect-screen-layout__left,.jp-connection__connect-screen-layout__right{box-sizing:border-box}.jp-connection__connect-screen-layout__left{padding:25px}@media(min-width:600px){.jp-connection__connect-screen-layout__left{padding:64px 96px}}.jp-connection__connect-screen-layout__left .jetpack-logo{margin-bottom:24px}.jp-connection__connect-screen-layout__left h2{color:var(--jp-black);font-size:36px;font-style:normal;font-weight:700;line-height:40px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left h3{color:var(--jp-black);font-size:24px;font-style:normal;font-weight:500;line-height:32px;margin-bottom:0;margin-top:32px}.jp-connection__connect-screen-layout__left li,.jp-connection__connect-screen-layout__left p{font-size:16px;font-style:normal;font-weight:400;line-height:24px}.jp-connection__connect-screen-layout__left p{color:#101517;margin:16px 0}.jp-connection__connect-screen-layout__left a{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__connect-screen-layout__left a:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__connect-screen-layout__left a:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__connect-screen-layout__left ul{list-style-type:none;padding:0}.jp-connection__connect-screen-layout__left ul li{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwFnwUInggGnggGnggHnAcAnwUFnQcAnwcGnwkFnQgGnQgFnwcGnQYFnQcFnAcGnQkDnwdhiL0pAAAAEnRSTlMAMF//f2Aw7yBQ3+9gcIBgcED+HDbkAAAAZklEQVR4Ae3LNwICARDDQC0+cv7/Y8mwV9odSfWIcf/+VegnGkIvDaGXKvTTn/Gz+Uf5xTL0K1XotS7fs5H6GHvvaO8d7c3j7rdgHne/A/PYt/cO+R42oYdN6OEQetiFHo4A//6dAXqtBEkmtWutAAAAAElFTkSuQmCC) no-repeat;background-size:24px;color:var(--jp-black);margin-bottom:9px;padding-right:30px}.jp-connection__connect-screen-layout__right{padding:64px 0}.jp-connection__connect-screen-layout__right img{max-width:100%}.jp-connection__connect-screen-layout__two-columns{display:flex;flex-wrap:wrap}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:100%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__left{flex-basis:52%}}.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{background:#f9f9f6;display:none;flex-basis:47%;flex-grow:1}@media(min-width:1080px){.jp-connection__connect-screen-layout__two-columns .jp-connection__connect-screen-layout__right{display:block}}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-components__pricing-card{background:var(--jp-white);border-radius:var(--jp-border-radius);box-shadow:0 10px 40px rgba(0,0,0,.08);max-width:384px;padding:24px 24px 32px;width:-moz-fit-content;width:fit-content}@media screen and (min-width:600px){.jp-components__pricing-card{padding:32px 32px 44px}}.jp-components__pricing-card__icon img{height:32px;width:32px}.jp-components__pricing-card__title{color:#101517;font-size:32px;line-height:38px;margin:16px 0 24px}.jp-components__pricing-card__pricing{display:flex;flex-wrap:wrap}.jp-components__pricing-card__price-after,.jp-components__pricing-card__price-before{display:inline-block;font-size:54px;font-weight:700;line-height:40px;margin-bottom:8px;padding:0 2px}.jp-components__pricing-card__price-before{color:var(--jp-gray-20);margin-left:16px;position:relative}.jp-components__pricing-card__price-strikethrough{background:var(--jp-pink);border-radius:1.5px;height:3px;position:absolute;right:0;top:20px;width:100%}.jp-components__pricing-card__price-after{color:var(--jp-black)}.jp-components__pricing-card__currency{font-size:var(--font-title-small);font-weight:400;line-height:20px;vertical-align:super}.jp-components__pricing-card__price-details{align-self:flex-end;color:var(--jp-gray-50);font-size:14px;font-weight:400;letter-spacing:-.02em;line-height:17px;margin-bottom:8px}.jp-components__pricing-card__price-decimal{font-size:var(--font-label);line-height:14px;vertical-align:top}.jp-components__pricing-card__button{align-items:center;background:var(--jp-black);border-radius:var(--jp-border-radius);color:var(--jp-white)!important;font-size:18px;height:auto;justify-content:center;margin:24px 0 32px;padding:14px 24px;width:100%}.jp-components__pricing-card__info{color:var(--jp-gray-60);font-size:var(--font-label);letter-spacing:-.02em;line-height:20px} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php
new file mode 100644
index 00000000..1a76c464
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php
@@ -0,0 +1,107 @@
+<?php
+/**
+ * The Connection UI Admin Area.
+ *
+ * @package automattic/jetpack-connection-ui
+ */
+
+namespace Automattic\Jetpack\ConnectionUI;
+
+use Automattic\Jetpack\Assets;
+
+/**
+ * The Connection UI Admin Area
+ */
+class Admin {
+
+ /**
+ * Construction.
+ */
+ public function __construct() {
+ if ( ! did_action( 'jetpack_on_connection_ui_init' ) ) {
+ add_action( 'admin_menu', array( $this, 'register_submenu_page' ), 1000 );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+
+ $this->maybe_init_idc();
+
+ /**
+ * Action called after initializing Connection UI Admin resources.
+ *
+ * @since 1.1.0
+ */
+ do_action( 'jetpack_on_connection_ui_init' );
+ }
+ }
+
+ /**
+ * Initialize the UI.
+ */
+ public static function init() {
+ new static();
+ }
+
+ /**
+ * Register's submenu.
+ */
+ public function register_submenu_page() {
+ add_submenu_page(
+ 'tools.php',
+ __( 'Connection Manager', 'jetpack-connection-ui' ),
+ __( 'Connection Manager', 'jetpack-connection-ui' ),
+ 'read',
+ 'wpcom-connection-manager',
+ array( $this, 'render_ui' ),
+ 4
+ );
+ }
+
+ /**
+ * Enqueue scripts!
+ *
+ * @param string $hook Page hook.
+ */
+ public function enqueue_scripts( $hook ) {
+ if ( strpos( $hook, 'tools_page_wpcom-connection-manager' ) === 0 ) {
+ Assets::register_script(
+ 'jetpack_connection_ui',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack-connection-ui',
+ )
+ );
+ Assets::enqueue_script( 'jetpack_connection_ui' );
+ wp_add_inline_script( 'jetpack_connection_ui', $this->get_initial_state(), 'before' );
+ }
+ }
+
+ /**
+ * Render UI.
+ */
+ public function render_ui() {
+ ?>
+ <div id="jetpack-connection-ui-container"></div>
+ <?php
+ }
+
+ /**
+ * Return the rendered initial state JavaScript code.
+ *
+ * @return string
+ */
+ private function get_initial_state() {
+ return ( new Initial_State() )->render();
+ }
+
+ /**
+ * If this is the Connection Manager UI page, activate IDC.
+ */
+ private function maybe_init_idc() {
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! empty( $_GET['page'] ) && 'wpcom-connection-manager' === $_GET['page'] ) {
+ add_action( 'plugins_loaded', array( 'Automattic\\Jetpack\\Identity_Crisis', 'init' ) );
+ }
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php
new file mode 100644
index 00000000..803b655f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * The React initial state.
+ *
+ * @package automattic/jetpack-connection-ui
+ */
+
+namespace Automattic\Jetpack\ConnectionUI;
+
+use Automattic\Jetpack\Identity_Crisis;
+
+/**
+ * The React initial state.
+ */
+class Initial_State {
+
+ const CONNECTION_MANAGER_URI = '/tools.php?page=wpcom-connection-manager';
+
+ /**
+ * Get the initial state data.
+ *
+ * @return array
+ */
+ private function get_data() {
+ return array(
+ 'API' => array(
+ 'WP_API_root' => esc_url_raw( rest_url() ),
+ 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ),
+ 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
+ ),
+ 'assets' => array(
+ 'buildUrl' => plugins_url( 'build/', __DIR__ ),
+ ),
+ 'IDC' => array(
+ 'hasIDC' => Identity_Crisis::has_identity_crisis(),
+ 'isSafeModeConfirmed' => Identity_Crisis::safe_mode_is_confirmed(),
+ 'canManageConnection' => current_user_can( 'jetpack_disconnect' ),
+ ),
+ );
+ }
+
+ /**
+ * Render the initial state into a JavaScript variable.
+ *
+ * @return string
+ */
+ public function render() {
+ add_action( 'jetpack_use_iframe_authorization_flow', '__return_true' );
+
+ return 'var CUI_INITIAL_STATE=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( $this->get_data() ) ) . '"));';
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/CHANGELOG.md
new file mode 100644
index 00000000..ffc65326
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/CHANGELOG.md
@@ -0,0 +1,571 @@
+# 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).
+
+## [1.34.0] - 2022-01-04
+### Added
+- Jetpack Connection: Added fallback for keeping `jetpack_connection_active_plugins` consistent on WPCOM when Sync is not present.
+
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-connection`.
+
+## [1.33.0] - 2021-12-14
+### Changed
+- Jetpack Connection: handle package versions on site registration.
+
+## [1.32.0] - 2021-11-30
+### Added
+- Added a way to set the has_seen_wc_connection_modal option from the API
+- Provides an Initial State that can be used by JS packages
+
+### Changed
+- Updated package dependencies.
+
+## [1.31.0] - 2021-11-22
+### Added
+- Added plugin_slug parameter to the v4/register endpoint
+
+### Changed
+- Updated package dependencies
+
+## [1.30.13] - 2021-11-09
+### Fixed
+- Fix PHP 8.1 deprecation warning.
+
+## [1.30.12] - 2021-11-02
+### Added
+- Client: add IDC query args to remote requests
+
+### 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.30.11] - 2021-10-26
+### Changed
+- Change the error code returned when a remoteRegister XMLRPC call is executed to the more helpful "already_registered" when the blog is already registered
+- Updated package dependencies.
+
+## [1.30.10] - 2021-10-19
+### Deprecated
+- General: remove numerous long-deprecated functions.
+
+### Fixed
+- Fix permission check for authorization_url endpoint.
+
+## [1.30.9] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.30.8] - 2021-10-12
+### Added
+- Add a new action to the Client::remote_request method, jetpack_received_remote_request_response
+
+### Changed
+- Updated package dependencies
+
+## [1.30.7] - 2021-10-04
+### Added
+- Sandbox Server: add the sandbox-server class to the connection package.
+
+## [1.30.6] - 2021-09-30
+### Changed
+- Moved the Package Tracker execution to the shutdown hook for performance improvement.
+
+## [1.30.5] - 2021-09-28
+### Changed
+- Package Version Tracker: send package versions to wpcom on the init hook instead of plugins_loaded
+- Updated package dependencies.
+
+### Fixed
+- Load WordPress's IXR classes on demand.
+
+## [1.30.4] - 2021-09-02
+### Fixed
+- Remove invalid user token before reconnect.
+
+## [1.30.3] - 2021-08-30
+### Added
+- Limit repeated failed attempts to update remote DNA package versions.
+
+### Changed
+- Make sure generated secrets have the required length
+- Remove tracked package versions when disconnecting the site.
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- update annotations versions
+
+## [1.30.2] - 2021-08-12
+### Added
+- Add package version tracking.
+
+## [1.30.1] - 2021-07-27
+### Added
+- Add a package version constant.
+
+### Changed
+- Move connection/data endpoint to Connection package.
+- Move site disconnection endpoint to Connection package.
+
+### Fixed
+- Fix `@covers` directives in tests.
+
+## [1.30.0] - 2021-07-13
+### Added
+- Added second parameter to Tokens::get_connected_users to allow any connected user to be returned.
+
+### Changed
+- Moved the get_connected_users logic back to the Manager class
+
+## [1.29.0] - 2021-06-29
+### Changed
+- Implement disconnect_site function.
+- Updated package dependencies.
+
+## [1.28.0] - 2021-06-15
+### Added
+- Added Urls class, migrated from Sync Functions.
+- Adding new REST endpoint /jetpack/v4/user-token that allows us to add/update user tokens remotely.
+- Add new 'connection/authorize_url' endpoint.
+- Adds information received from the server to the register_site REST response.
+- Enable site-level authentication (blog token) for REST API endpoints.
+- Move 'connection/owner' endpoint to Connection package.
+
+## [1.27.0] - 2021-05-25
+### Added
+- Add "isUserConnected" to the connection status data.
+- Connection: add the default value of JETPACK__WPCOM_JSON_API_BASE to the Connection Utils class.
+
+### Changed
+- Connection package independence: Move a Jetpack specfic connection routine out of the package and into the plugin
+- Package Independence: Add a filter to the remote_uri returned by remote_register XMLRPC method
+
+### Removed
+- Removed "user-less" jargon from code
+- Remove do_post_authorization routine and add a hook instead
+- Remove onboarding_token logic in the Remote provision XMLRPC method from the Connection package and add it to the Jetpack plugin
+
+### Fixed
+- Disconnection flow: disconnect users from WordPress.com before to delete data locally.
+
+## [1.26.0] - 2021-04-27
+### Added
+- Adds segmentation "from" parameter to the registration flow
+- Connection: moving the registration REST endpoint to the package.
+
+### Changed
+- Added "userless" parameter to the authorization URL.
+- Updated package dependencies.
+
+## [1.25.2] - 2021-04-13
+### Fixed
+- Connection: nonce cleanup safeguard against accidental option removal.
+
+## [1.25.1] - 2021-04-08
+### Fixed
+- Avoid determine_current_user going through infinite loops
+- Tokens: Fix token validation logic.
+
+## [1.25.0] - 2021-03-30
+### Added
+- Add new test for blog token health to support user-less sites
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- API Nonces: performance optimization and refactoring
+- Replace is_active usage towards gradually deprecating it.
+- Do not use is_active to determine the XMLRPC methods that should be registered
+- Make connected_plugins REST endpoint available for the Jetpack Debugger
+- Move Jetpack specific XMLRPC methods from the Connection package into the plugin
+- Update package dependencies.
+- User-less connection: Reconnect without asking the user to connect their WPCOM account
+
+### Deprecated
+- add deprecation notice and remove user-less check in is_active
+
+### Fixed
+- Only check offline mode when needed in map_meta_cap filters
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.24.0] - 2021-02-23
+
+- Refactor secrets and tokens
+- User-less connection: Restrict first connection to admins only
+- Connection: Prevent pointless calls to the test API
+- CI: Make tests more generic
+- Connection: extracting the Jetpack's authorization webhook
+- codesniffer: Update mediawiki-codesniffer dep to v35.0
+
+## [1.23.2] - 2021-02-08
+
+- Connection: Prevent pointless calls to the test API
+
+## [1.23.1] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.23.0] - 2021-01-26
+
+- Sync Concurrency / Race Conditions
+- Add mirror-repo information to all current composer packages
+- Mirroring: Fix auth, attempt 2
+- Monorepo: Reorganize all projects
+
+## [1.22.0] - 2021-01-05
+
+- Connection: setting valid connection owner.
+- userless testing mode: do not discard user tokens
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+- Connection: New methods and tests to the manager
+- Connection: refreshing connected plugin storage on multisite networks
+- Build: migrate from Travis to GH Actions
+- fix typos and add section to error handling docs
+
+## [1.21.1] - 2020-11-24
+
+- Version packages for release
+
+## [1.21.0] - 2020-11-24
+
+- Handle empty SERVER_PORT information on signature checks
+- Fix remaining phpcs warnings in most of requirelist
+- Add the no_user_testing mode
+- Clarified error message for non-writable options table.
+- Pass HTTP POST when making a wp.com api request
+
+## [1.20.0] - 2020-10-29
+
+- Connection: Plugin Tracking
+- Connection Package: Ensure a text/xml header is set
+- Updated PHPCS: Packages and Debugger
+
+## [1.19.2] - 2020-11-05
+
+- Pass HTTP POST when making a wp.com api request
+
+## [1.19.1] - 2020-10-29
+
+- Connection: Plugin Tracking
+
+## [1.19.0] - 2020-10-27
+
+- Connection Errors: Tracking additional error data
+- Replaced intval() with (int) as part of issue #17432.
+- Replaced strval() with type casting (string) as part of issue #17432.
+- Connection: Add wp.com function
+- Instagram oEmbed: Simplify
+- Client: Extract `validate_args_for_wpcom_json_api_request` helper.
+- Connection: add the constant filter hooks directly
+- Make XMLRPC methods available for blog token
+- API Nonces: Revert of the Runtime Cleanup.
+- PHPCS: Update directory structure, and modernize class usage
+- deprecates JETPACK_MASTER_USER and adds linter
+- API: Remove the constant `JETPACK_CLIENT__HTTPS`.
+
+## [1.18.4] - 2020-10-14
+
+- Connection: Add wp.com function
+
+## [1.18.3] - 2020-10-09
+
+- Connection: add the constant filter hooks directly
+
+## [1.18.2] - 2020-10-06
+
+- API Nonces: Revert of the Runtime Cleanup.
+
+## [1.18.1] - 2020-10-01
+
+- deprecates JETPACK_MASTER_USER and adds linter
+
+## [1.18.0] - 2020-09-29
+
+- API Nonces: Runtime cleanup
+- Packages: update list of files distributed in production packages
+- Connection: Add success message on completed partial reconnection
+- Jetpack_IXR_ClientMulticall: Fix sort_calls() producing undefined relative order between equal items
+- Connection: Initializing default constants for the REST authorization.
+- Trigger action jetpack_user_authorize after we save the token
+- Partial reconnect: Cleanup redundant actions
+- Signature Class: Adds support for nested query strings
+
+## [1.17.2] - 2020-09-16
+
+- Connection: Initializing default constants for the REST authorization.
+
+## [1.17.1] - 2020-09-09
+
+- Update dependencies to latest stable
+
+## [1.17.0] - 2020-08-26
+
+- Connection: move the rest authentication methods to the connection package
+- Connection: use heartbeat to send connected plugins info
+- clear xmlrpc error on site disconnect
+- add new features to debug helper
+- remove no longer needed check
+- disable xmlrpc errors out of JP dashboard
+- Connection REST API: Unit test for the `remote_authorize` request.
+- Simplify error notices for broken connections
+- Unit Tests: Fixing a failing `remote_authorize` test.
+- Reconnect Process: Partial Reconnect
+- Packages: Update filenames after #16810
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+- Remove usages of removed HTTP_RAW_POST_DATA
+- adds tracking for deleted but active master users
+- New class to handle async XML-RPC requests
+- Connection Register: Add current user email to connection register request
+
+## [1.15.2] - 2020-08-10
+
+- Connection Register: Add current user email to connection register request
+
+## [1.15.1] - 2020-08-10
+
+- adds tracking for deleted but active master users
+
+## [1.15.0] - 2020-07-28
+
+- Core Compat: Site Environment
+- Reconnect Notice: In-place Reconnect
+- add messages for some common connection errors
+- REST API: Move some endpoints to `jetpack-connection` package.
+- REST API: Add permission callback to all that lack one.
+- Secondary user in-place connection flow
+- Tests: Update WorDBless location
+- Connection Errors: Clear when there's a successful request to /sites
+- Connection: add unit tests for is_registered
+- only display connection errors to allowed users
+
+## [1.14.2] - 2020-07-06
+
+- Connection Errors: Clear when there's a successful request to /sites
+
+## [1.14.1] - 2020-07-01
+
+- only display connection errors to allowed users
+
+## [1.14.0] - 2020-06-30
+
+- Jetpack_XMLRPC_Server: set up jsonAPI and testConnection endpoint when Jetpack is active
+- Connection Error Handling
+- Connection: Update XMLRPC overload
+- Connection: move connection custom caps to the Connection package
+- Connection package: Don't throw warnings if the database is corrupted somehow
+- Check blog token when computing is_registered
+- Connection: add the api_constant filter before setup_xmlrpc_handlers is called
+- Connection Package: Soft Disconnects
+- Remove usage of the Jetpack_Error class in the connection package
+- Connection: Fix issue where ABSPATH not included with register
+
+## [1.13.1] - 2020-06-01
+
+- Connection: Fix issue where ABSPATH not included with register
+
+## [1.13.0] - 2020-05-26
+
+- Store the list of active plugins that uses connection in an option
+- Connection: increase timeout on the token request
+- Connection Package: Handle disconnections gracefully
+
+## [1.12.0] - 2020-04-28
+
+- Correct inline documentation "Array" type
+- Use jp.com redirect in all links
+- Docs: Update the Connection Manager namespace, a minor typo
+- Connection: add a filter for setting Jetpack api constants
+
+## [1.11.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.10.0] - 2020-03-31
+
+- Connection: move post authorization work to package
+
+## [1.9.0] - 2020-02-25
+
+## [1.8.3] - 2020-02-14
+
+## [1.8.2] - 2020-02-12
+
+## [1.8.1] - 2020-02-12
+
+- Added a specific filter to enable iframe authorization API URL.
+- Added better defaults for the connection package.
+
+## [1.8.0] - 2020-01-27
+
+- Connection\Utils: Add a new function which provides the Jetpack API version
+- Connection\Manager: Use jetpack_master_user class constant
+
+## [1.7.2] - 2020-01-20
+
+- Move connection manager related logic to after plugins_loaded.
+
+## [1.7.1] - 2020-01-14
+
+- Packages: Various improvements for wp.com or self-contained consumers
+
+## [1.7.0] - 2019-11-26
+
+- Connection package: Add new methods to for disconnecting/delet…
+
+## [1.6.1] - 2019-11-25
+
+- Connection: Loose Comparison for Port Number in Signatures
+
+## [1.6.0] - 2019-11-19
+
+## [1.5.0] - 2019-11-15
+
+- Removed Jetpack references in the IXR client.
+- Connection: Move get_token() to Connection package
+
+## [1.4.0] - 2019-11-15
+
+- Add connection authentication URL.
+- Connection: Move the authorize() method to the connection package
+- Connection: Move update_user_token to the Connection package
+- Connection: Set the value of user_id in Manager::generate_secrets
+
+## [1.3.1] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+- Moved tracking code to the Tracking file.
+
+## [1.3.0] - 2019-11-08
+
+- Move fix_url_for_bad_hosts from Jetpack class to Connection pa…
+
+## [1.2.0] - 2019-11-07
+
+- Connection: call verify_secrets() in verify_action()
+
+## [1.1.0] - 2019-10-31
+
+- Adds filter capability to the api_url method.
+
+## [1.0.7] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+- Replace parse_url with wp_parse_url
+
+## [1.0.6] - 2019-10-07
+
+- Update dependency phpcompatibility/phpcompatibility-wp to v2.1.0
+
+## [1.0.5] - 2019-09-26
+
+- XMLRPC: Fires clean_nonce action in all cases
+
+## [1.0.4] - 2019-09-24
+
+- Connection: Make sure port is an integer
+
+## [1.0.3] - 2019-09-23
+
+- Moves unreachable code to where it would be run.
+- Connection: Deprecate Manager interface
+
+## [1.0.2] - 2019-09-23
+
+- Connection: Fix all PHPCS errors in the connection package
+
+## [1.0.1] - 2019-09-20
+
+- Various: Remove pre-PHP 5.6 shims and fallbacks
+- Store "Assumed site creation date" in transient
+- Sync: Move sync_object XML-RPC method from connection to sync
+- Connection: Fix PHPCS errors in Jetpack_Signature
+- Docs: Unify usage of @package phpdoc tags
+- Janitorial: Remove the leading backslash from namespaces
+
+## 1.0.0 - 2019-09-14
+
+- Separate the connection library into its own package.
+
+[1.34.0]: https://github.com/Automattic/jetpack-connection/compare/v1.33.0...v1.34.0
+[1.33.0]: https://github.com/Automattic/jetpack-connection/compare/v1.32.0...v1.33.0
+[1.32.0]: https://github.com/Automattic/jetpack-connection/compare/v1.31.0...v1.32.0
+[1.31.0]: https://github.com/Automattic/jetpack-connection/compare/v1.30.13...v1.31.0
+[1.30.13]: https://github.com/Automattic/jetpack-connection/compare/v1.30.12...v1.30.13
+[1.30.12]: https://github.com/Automattic/jetpack-connection/compare/v1.30.11...v1.30.12
+[1.30.11]: https://github.com/Automattic/jetpack-connection/compare/v1.30.10...v1.30.11
+[1.30.10]: https://github.com/Automattic/jetpack-connection/compare/v1.30.9...v1.30.10
+[1.30.9]: https://github.com/Automattic/jetpack-connection/compare/v1.30.8...v1.30.9
+[1.30.8]: https://github.com/Automattic/jetpack-connection/compare/v1.30.7...v1.30.8
+[1.30.7]: https://github.com/Automattic/jetpack-connection/compare/v1.30.6...v1.30.7
+[1.30.6]: https://github.com/Automattic/jetpack-connection/compare/v1.30.5...v1.30.6
+[1.30.5]: https://github.com/Automattic/jetpack-connection/compare/v1.30.4...v1.30.5
+[1.30.4]: https://github.com/Automattic/jetpack-connection/compare/v1.30.3...v1.30.4
+[1.30.3]: https://github.com/Automattic/jetpack-connection/compare/v1.30.2...v1.30.3
+[1.30.2]: https://github.com/Automattic/jetpack-connection/compare/v1.30.1...v1.30.2
+[1.30.1]: https://github.com/Automattic/jetpack-connection/compare/v1.30.0...v1.30.1
+[1.30.0]: https://github.com/Automattic/jetpack-connection/compare/v1.29.0...v1.30.0
+[1.29.0]: https://github.com/Automattic/jetpack-connection/compare/v1.28.0...v1.29.0
+[1.28.0]: https://github.com/Automattic/jetpack-connection/compare/v1.27.0...v1.28.0
+[1.27.0]: https://github.com/Automattic/jetpack-connection/compare/v1.26.0...v1.27.0
+[1.26.0]: https://github.com/Automattic/jetpack-connection/compare/v1.25.2...v1.26.0
+[1.25.2]: https://github.com/Automattic/jetpack-connection/compare/v1.25.1...v1.25.2
+[1.25.1]: https://github.com/Automattic/jetpack-connection/compare/v1.25.0...v1.25.1
+[1.25.0]: https://github.com/Automattic/jetpack-connection/compare/v1.24.0...v1.25.0
+[1.24.0]: https://github.com/Automattic/jetpack-connection/compare/v1.23.2...v1.24.0
+[1.23.2]: https://github.com/Automattic/jetpack-connection/compare/v1.23.1...v1.23.2
+[1.23.1]: https://github.com/Automattic/jetpack-connection/compare/v1.23.0...v1.23.1
+[1.23.0]: https://github.com/Automattic/jetpack-connection/compare/v1.22.0...v1.23.0
+[1.22.0]: https://github.com/Automattic/jetpack-connection/compare/v1.21.1...v1.22.0
+[1.21.1]: https://github.com/Automattic/jetpack-connection/compare/v1.21.0...v1.21.1
+[1.21.0]: https://github.com/Automattic/jetpack-connection/compare/v1.20.0...v1.21.0
+[1.20.0]: https://github.com/Automattic/jetpack-connection/compare/v1.19.2...v1.20.0
+[1.19.2]: https://github.com/Automattic/jetpack-connection/compare/v1.19.1...v1.19.2
+[1.19.1]: https://github.com/Automattic/jetpack-connection/compare/v1.19.0...v1.19.1
+[1.19.0]: https://github.com/Automattic/jetpack-connection/compare/v1.18.4...v1.19.0
+[1.18.4]: https://github.com/Automattic/jetpack-connection/compare/v1.18.3...v1.18.4
+[1.18.3]: https://github.com/Automattic/jetpack-connection/compare/v1.18.2...v1.18.3
+[1.18.2]: https://github.com/Automattic/jetpack-connection/compare/v1.18.1...v1.18.2
+[1.18.1]: https://github.com/Automattic/jetpack-connection/compare/v1.18.0...v1.18.1
+[1.18.0]: https://github.com/Automattic/jetpack-connection/compare/v1.17.2...v1.18.0
+[1.17.2]: https://github.com/Automattic/jetpack-connection/compare/v1.17.1...v1.17.2
+[1.17.1]: https://github.com/Automattic/jetpack-connection/compare/v1.17.0...v1.17.1
+[1.17.0]: https://github.com/Automattic/jetpack-connection/compare/v1.15.2...v1.17.0
+[1.15.2]: https://github.com/Automattic/jetpack-connection/compare/v1.15.1...v1.15.2
+[1.15.1]: https://github.com/Automattic/jetpack-connection/compare/v1.15.0...v1.15.1
+[1.15.0]: https://github.com/Automattic/jetpack-connection/compare/v1.14.2...v1.15.0
+[1.14.2]: https://github.com/Automattic/jetpack-connection/compare/v1.14.1...v1.14.2
+[1.14.1]: https://github.com/Automattic/jetpack-connection/compare/v1.14.0...v1.14.1
+[1.14.0]: https://github.com/Automattic/jetpack-connection/compare/v1.13.1...v1.14.0
+[1.13.1]: https://github.com/Automattic/jetpack-connection/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-connection/compare/v1.12.0...v1.13.0
+[1.12.0]: https://github.com/Automattic/jetpack-connection/compare/v1.11.0...v1.12.0
+[1.11.0]: https://github.com/Automattic/jetpack-connection/compare/1.10.0...v1.11.0
+[1.10.0]: https://github.com/Automattic/jetpack-connection/compare/v1.9.0...1.10.0
+[1.9.0]: https://github.com/Automattic/jetpack-connection/compare/v1.8.3...v1.9.0
+[1.8.3]: https://github.com/Automattic/jetpack-connection/compare/v1.8.2...v1.8.3
+[1.8.2]: https://github.com/Automattic/jetpack-connection/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-connection/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-connection/compare/v1.7.2...v1.8.0
+[1.7.2]: https://github.com/Automattic/jetpack-connection/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-connection/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-connection/compare/v1.6.1...v1.7.0
+[1.6.1]: https://github.com/Automattic/jetpack-connection/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-connection/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-connection/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-connection/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-connection/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-connection/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-connection/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-connection/compare/v1.0.7...v1.1.0
+[1.0.7]: https://github.com/Automattic/jetpack-connection/compare/v1.0.6...v1.0.7
+[1.0.6]: https://github.com/Automattic/jetpack-connection/compare/v1.0.5...v1.0.6
+[1.0.5]: https://github.com/Automattic/jetpack-connection/compare/v1.0.4...v1.0.5
+[1.0.4]: https://github.com/Automattic/jetpack-connection/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-connection/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-connection/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-connection/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php
new file mode 100644
index 00000000..5349506c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php
@@ -0,0 +1,157 @@
+<?php
+/**
+ * IXR_Client
+ *
+ * @package automattic/jetpack-connection
+ *
+ * @since 1.7.0
+ * @since-jetpack 1.5
+ * @since-jetpack 7.7 Moved to the jetpack-connection package.
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager;
+
+if ( ! class_exists( IXR_Client::class ) ) {
+ require_once ABSPATH . WPINC . '/class-IXR.php';
+}
+
+/**
+ * A Jetpack implementation of the WordPress core IXR client.
+ */
+class Jetpack_IXR_Client extends IXR_Client {
+ /**
+ * Jetpack args, used for the remote requests.
+ *
+ * @var array
+ */
+ public $jetpack_args = null;
+
+ /**
+ * Remote Response Headers.
+ *
+ * @var array
+ */
+ public $response_headers = null;
+
+ /**
+ * Constructor.
+ * Initialize a new Jetpack IXR client instance.
+ *
+ * @param array $args Jetpack args, used for the remote requests.
+ * @param string|bool $path Path to perform the reuqest to.
+ * @param int $port Port number.
+ * @param int $timeout The connection timeout, in seconds.
+ */
+ public function __construct( $args = array(), $path = false, $port = 80, $timeout = 15 ) {
+ $connection = new Manager();
+
+ $defaults = array(
+ 'url' => $connection->xmlrpc_api_url(),
+ 'user_id' => 0,
+ 'headers' => array(),
+ );
+
+ $args = wp_parse_args( $args, $defaults );
+ $args['headers'] = array_merge( array( 'Content-Type' => 'text/xml' ), (array) $args['headers'] );
+
+ $this->jetpack_args = $args;
+
+ $this->IXR_Client( $args['url'], $path, $port, $timeout );
+ }
+
+ /**
+ * Perform the IXR request.
+ *
+ * @param string[] ...$args IXR args.
+ *
+ * @return bool True if request succeeded, false otherwise.
+ */
+ public function query( ...$args ) {
+ $method = array_shift( $args );
+ $request = new IXR_Request( $method, $args );
+ $xml = trim( $request->getXml() );
+
+ $response = Client::remote_request( $this->jetpack_args, $xml );
+
+ // Store response headers.
+ $this->response_headers = wp_remote_retrieve_headers( $response );
+
+ if ( is_wp_error( $response ) ) {
+ $this->error = new IXR_Error( -10520, sprintf( 'Jetpack: [%s] %s', $response->get_error_code(), $response->get_error_message() ) );
+ return false;
+ }
+
+ if ( ! $response ) {
+ $this->error = new IXR_Error( -10520, 'Jetpack: Unknown Error' );
+ return false;
+ }
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $this->error = new IXR_Error( -32300, 'transport error - HTTP status code was not 200' );
+ return false;
+ }
+
+ $content = wp_remote_retrieve_body( $response );
+
+ // Now parse what we've got back.
+ $this->message = new IXR_Message( $content );
+ if ( ! $this->message->parse() ) {
+ // XML error.
+ $this->error = new IXR_Error( -32700, 'parse error. not well formed' );
+ return false;
+ }
+
+ // Is the message a fault?
+ if ( 'fault' === $this->message->messageType ) {
+ $this->error = new IXR_Error( $this->message->faultCode, $this->message->faultString );
+ return false;
+ }
+
+ // Message must be OK.
+ return true;
+ }
+
+ /**
+ * Retrieve the Jetpack error from the result of the last request.
+ *
+ * @param int $fault_code Fault code.
+ * @param string $fault_string Fault string.
+ * @return WP_Error Error object.
+ */
+ public function get_jetpack_error( $fault_code = null, $fault_string = null ) {
+ if ( is_null( $fault_code ) ) {
+ $fault_code = $this->error->code;
+ }
+
+ if ( is_null( $fault_string ) ) {
+ $fault_string = $this->error->message;
+ }
+
+ if ( preg_match( '#jetpack:\s+\[(\w+)\]\s*(.*)?$#i', $fault_string, $match ) ) {
+ $code = $match[1];
+ $message = $match[2];
+ $status = $fault_code;
+ return new \WP_Error( $code, $message, $status );
+ }
+
+ return new \WP_Error( "IXR_{$fault_code}", $fault_string );
+ }
+
+ /**
+ * Retrieve a response header if set.
+ *
+ * @param string $name header name.
+ * @return string|bool Header value if set, false if not set.
+ */
+ public function get_response_header( $name ) {
+ if ( isset( $this->response_headers[ $name ] ) ) {
+ return $this->response_headers[ $name ];
+ }
+ // case-insensitive header names: http://www.ietf.org/rfc/rfc2616.txt.
+ if ( isset( $this->response_headers[ strtolower( $name ) ] ) ) {
+ return $this->response_headers[ strtolower( $name ) ];
+ }
+ return false;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php
new file mode 100644
index 00000000..3c52f05d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * IXR_ClientMulticall
+ *
+ * @package automattic/jetpack-connection
+ *
+ * @since 1.7.0
+ * @since-jetpack 1.5
+ * @since-jetpack 7.7 Moved to the jetpack-connection package.
+ */
+
+/**
+ * A Jetpack implementation of the WordPress core IXR client, capable of multiple calls in a single request.
+ */
+class Jetpack_IXR_ClientMulticall extends Jetpack_IXR_Client {
+ /**
+ * Storage for the IXR calls.
+ *
+ * @var array
+ */
+ public $calls = array();
+
+ /**
+ * Add a IXR call to the client.
+ * First argument is the method name.
+ * The rest of the arguments are the params specified to the method.
+ *
+ * @param string[] ...$args IXR args.
+ */
+ public function addCall( ...$args ) {
+ $method_name = array_shift( $args );
+ $struct = array(
+ 'methodName' => $method_name,
+ 'params' => $args,
+ );
+ $this->calls[] = $struct;
+ }
+
+ /**
+ * Perform the IXR multicall request.
+ *
+ * @param string[] ...$args IXR args.
+ *
+ * @return bool True if request succeeded, false otherwise.
+ */
+ public function query( ...$args ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->calls = $this->sort_calls( $this->calls );
+
+ // Prepare multicall, then call the parent::query() method.
+ return parent::query( 'system.multicall', $this->calls );
+ }
+
+ /**
+ * Sort the IXR calls.
+ * Make sure syncs are always done first preserving relative order.
+ *
+ * @param array $calls Calls to sort.
+ * @return array Sorted calls.
+ */
+ public function sort_calls( $calls ) {
+ $sync_calls = array();
+ $other_calls = array();
+
+ foreach ( $calls as $call ) {
+ if ( 'jetpack.syncContent' === $call['methodName'] ) {
+ $sync_calls[] = $call;
+ } else {
+ $other_calls[] = $call;
+ }
+ }
+
+ return array_merge( $sync_calls, $other_calls );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php
new file mode 100644
index 00000000..125aa20a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php
@@ -0,0 +1,404 @@
+<?php
+/**
+ * The Jetpack Connection signature class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+
+/**
+ * The Jetpack Connection signature class that is used to sign requests.
+ */
+class Jetpack_Signature {
+ /**
+ * Token part of the access token.
+ *
+ * @access public
+ * @var string
+ */
+ public $token;
+
+ /**
+ * Access token secret.
+ *
+ * @access public
+ * @var string
+ */
+ public $secret;
+
+ /**
+ * The current request URL.
+ *
+ * @access public
+ * @var string
+ */
+ public $current_request_url;
+
+ /**
+ * Constructor.
+ *
+ * @param array $access_token Access token.
+ * @param int $time_diff Timezone difference (in seconds).
+ */
+ public function __construct( $access_token, $time_diff = 0 ) {
+ $secret = explode( '.', $access_token );
+ if ( 2 !== count( $secret ) ) {
+ return;
+ }
+
+ $this->token = $secret[0];
+ $this->secret = $secret[1];
+ $this->time_diff = $time_diff;
+ }
+
+ /**
+ * Sign the current request.
+ *
+ * @todo Implement a proper nonce verification.
+ *
+ * @param array $override Optional arguments to override the ones from the current request.
+ * @return string|WP_Error Request signature, or a WP_Error on failure.
+ */
+ public function sign_current_request( $override = array() ) {
+ if ( isset( $override['scheme'] ) ) {
+ $scheme = $override['scheme'];
+ if ( ! in_array( $scheme, array( 'http', 'https' ), true ) ) {
+ return new WP_Error( 'invalid_scheme', 'Invalid URL scheme' );
+ }
+ } else {
+ if ( is_ssl() ) {
+ $scheme = 'https';
+ } else {
+ $scheme = 'http';
+ }
+ }
+
+ $port = $this->get_current_request_port();
+
+ $this->current_request_url = "{$scheme}://{$_SERVER['HTTP_HOST']}:{$port}" . stripslashes( $_SERVER['REQUEST_URI'] );
+
+ if ( array_key_exists( 'body', $override ) && ! empty( $override['body'] ) ) {
+ $body = $override['body'];
+ } elseif ( 'POST' === strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
+ $body = isset( $GLOBALS['HTTP_RAW_POST_DATA'] ) ? $GLOBALS['HTTP_RAW_POST_DATA'] : null;
+
+ // Convert the $_POST to the body, if the body was empty. This is how arrays are hashed
+ // and encoded on the Jetpack side.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ if ( empty( $body ) && is_array( $_POST ) && count( $_POST ) > 0 ) {
+ $body = $_POST; // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ }
+ }
+ } elseif ( 'PUT' === strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
+ // This is a little strange-looking, but there doesn't seem to be another way to get the PUT body.
+ $raw_put_data = file_get_contents( 'php://input' );
+ parse_str( $raw_put_data, $body );
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $put_data = json_decode( $raw_put_data, true );
+ if ( is_array( $put_data ) && count( $put_data ) > 0 ) {
+ $body = $put_data;
+ }
+ }
+ } else {
+ $body = null;
+ }
+
+ if ( empty( $body ) ) {
+ $body = null;
+ }
+
+ $a = array();
+ foreach ( array( 'token', 'timestamp', 'nonce', 'body-hash' ) as $parameter ) {
+ if ( isset( $override[ $parameter ] ) ) {
+ $a[ $parameter ] = $override[ $parameter ];
+ } else {
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $a[ $parameter ] = isset( $_GET[ $parameter ] ) ? stripslashes( $_GET[ $parameter ] ) : '';
+ }
+ }
+
+ $method = isset( $override['method'] ) ? $override['method'] : $_SERVER['REQUEST_METHOD'];
+ return $this->sign_request( $a['token'], $a['timestamp'], $a['nonce'], $a['body-hash'], $method, $this->current_request_url, $body, true );
+ }
+
+ /**
+ * Sign a specified request.
+ *
+ * @todo Having body_hash v. body-hash is annoying. Refactor to accept an array?
+ * @todo Use wp_json_encode() instead of json_encode()?
+ *
+ * @param string $token Request token.
+ * @param int $timestamp Timestamp of the request.
+ * @param string $nonce Request nonce.
+ * @param string $body_hash Request body hash.
+ * @param string $method Request method.
+ * @param string $url Request URL.
+ * @param mixed $body Request body.
+ * @param bool $verify_body_hash Whether to verify the body hash against the body.
+ * @return string|WP_Error Request signature, or a WP_Error on failure.
+ */
+ public function sign_request( $token = '', $timestamp = 0, $nonce = '', $body_hash = '', $method = '', $url = '', $body = null, $verify_body_hash = true ) {
+ if ( ! $this->secret ) {
+ return new WP_Error( 'invalid_secret', 'Invalid secret' );
+ }
+
+ if ( ! $this->token ) {
+ return new WP_Error( 'invalid_token', 'Invalid token' );
+ }
+
+ list( $token ) = explode( '.', $token );
+
+ $signature_details = compact( 'token', 'timestamp', 'nonce', 'body_hash', 'method', 'url' );
+
+ if ( 0 !== strpos( $token, "$this->token:" ) ) {
+ return new WP_Error( 'token_mismatch', 'Incorrect token', compact( 'signature_details' ) );
+ }
+
+ // If we got an array at this point, let's encode it, so we can see what it looks like as a string.
+ if ( is_array( $body ) ) {
+ if ( count( $body ) > 0 ) {
+ // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
+ $body = json_encode( $body );
+
+ } else {
+ $body = '';
+ }
+ }
+
+ $required_parameters = array( 'token', 'timestamp', 'nonce', 'method', 'url' );
+ if ( ! is_null( $body ) ) {
+ $required_parameters[] = 'body_hash';
+ if ( ! is_string( $body ) ) {
+ return new WP_Error( 'invalid_body', 'Body is malformed.', compact( 'signature_details' ) );
+ }
+ }
+
+ foreach ( $required_parameters as $required ) {
+ if ( ! is_scalar( $$required ) ) {
+ return new WP_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', str_replace( '_', '-', $required ) ), compact( 'signature_details' ) );
+ }
+
+ if ( ! strlen( $$required ) ) {
+ return new WP_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is missing.', str_replace( '_', '-', $required ) ), compact( 'signature_details' ) );
+ }
+ }
+
+ if ( empty( $body ) ) {
+ if ( $body_hash ) {
+ return new WP_Error( 'invalid_body_hash', 'Invalid body hash for empty body.', compact( 'signature_details' ) );
+ }
+ } else {
+ $connection = new Connection_Manager();
+ if ( $verify_body_hash && $connection->sha1_base64( $body ) !== $body_hash ) {
+ return new WP_Error( 'invalid_body_hash', 'The body hash does not match.', compact( 'signature_details' ) );
+ }
+ }
+
+ $parsed = wp_parse_url( $url );
+ if ( ! isset( $parsed['host'] ) ) {
+ return new WP_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'url' ), compact( 'signature_details' ) );
+ }
+
+ if ( ! empty( $parsed['port'] ) ) {
+ $port = $parsed['port'];
+ } else {
+ if ( 'http' === $parsed['scheme'] ) {
+ $port = 80;
+ } elseif ( 'https' === $parsed['scheme'] ) {
+ $port = 443;
+ } else {
+ return new WP_Error( 'unknown_scheme_port', "The scheme's port is unknown", compact( 'signature_details' ) );
+ }
+ }
+
+ if ( ! ctype_digit( "$timestamp" ) || 10 < strlen( $timestamp ) ) { // If Jetpack is around in 275 years, you can blame mdawaffe for the bug.
+ return new WP_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'timestamp' ), compact( 'signature_details' ) );
+ }
+
+ $local_time = $timestamp - $this->time_diff;
+ if ( $local_time < time() - 600 || $local_time > time() + 300 ) {
+ return new WP_Error( 'invalid_signature', 'The timestamp is too old.', compact( 'signature_details' ) );
+ }
+
+ if ( 12 < strlen( $nonce ) || preg_match( '/[^a-zA-Z0-9]/', $nonce ) ) {
+ return new WP_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'nonce' ), compact( 'signature_details' ) );
+ }
+
+ $normalized_request_pieces = array(
+ $token,
+ $timestamp,
+ $nonce,
+ $body_hash,
+ strtoupper( $method ),
+ strtolower( $parsed['host'] ),
+ $port,
+ empty( $parsed['path'] ) ? '' : $parsed['path'],
+ // Normalized Query String.
+ );
+
+ $normalized_request_pieces = array_merge( $normalized_request_pieces, $this->normalized_query_parameters( isset( $parsed['query'] ) ? $parsed['query'] : '' ) );
+ $flat_normalized_request_pieces = array();
+ foreach ( $normalized_request_pieces as $piece ) {
+ if ( is_array( $piece ) ) {
+ foreach ( $piece as $subpiece ) {
+ $flat_normalized_request_pieces[] = $subpiece;
+ }
+ } else {
+ $flat_normalized_request_pieces[] = $piece;
+ }
+ }
+ $normalized_request_pieces = $flat_normalized_request_pieces;
+
+ $normalized_request_string = join( "\n", $normalized_request_pieces ) . "\n";
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ return base64_encode( hash_hmac( 'sha1', $normalized_request_string, $this->secret, true ) );
+ }
+
+ /**
+ * Retrieve and normalize the parameters from a query string.
+ *
+ * @param string $query_string Query string.
+ * @return array Normalized query string parameters.
+ */
+ public function normalized_query_parameters( $query_string ) {
+ parse_str( $query_string, $array );
+
+ unset( $array['signature'] );
+
+ $names = array_keys( $array );
+ $values = array_values( $array );
+
+ $names = array_map( array( $this, 'encode_3986' ), $names );
+ $values = array_map( array( $this, 'encode_3986' ), $values );
+
+ $pairs = array_map( array( $this, 'join_with_equal_sign' ), $names, $values );
+
+ sort( $pairs );
+
+ return $pairs;
+ }
+
+ /**
+ * Encodes a string or array of strings according to RFC 3986.
+ *
+ * @param string|array $string_or_array String or array to encode.
+ * @return string|array URL-encoded string or array.
+ */
+ public function encode_3986( $string_or_array ) {
+ if ( is_array( $string_or_array ) ) {
+ return array_map( array( $this, 'encode_3986' ), $string_or_array );
+ }
+
+ return rawurlencode( $string_or_array );
+ }
+
+ /**
+ * Concatenates a parameter name and a parameter value with an equals sign between them.
+ *
+ * @param string $name Parameter name.
+ * @param string|array $value Parameter value.
+ * @return string|array A string pair (e.g. `name=value`) or an array of string pairs.
+ */
+ public function join_with_equal_sign( $name, $value ) {
+ if ( is_array( $value ) ) {
+ return $this->join_array_with_equal_sign( $name, $value );
+ }
+ return "{$name}={$value}";
+ }
+
+ /**
+ * Helper function for join_with_equal_sign for handling arrayed values.
+ * Explicitly supports nested arrays.
+ *
+ * @param string $name Parameter name.
+ * @param array $value Parameter value.
+ * @return array An array of string pairs (e.g. `[ name[example]=value ]`).
+ */
+ private function join_array_with_equal_sign( $name, $value ) {
+ $result = array();
+ foreach ( $value as $value_key => $value_value ) {
+ $joined_value = $this->join_with_equal_sign( $name . '[' . $value_key . ']', $value_value );
+ if ( is_array( $joined_value ) ) {
+ foreach ( array_values( $joined_value ) as $individual_joined_value ) {
+ $result[] = $individual_joined_value;
+ }
+ } elseif ( is_string( $joined_value ) ) {
+ $result[] = $joined_value;
+ }
+ }
+
+ sort( $result );
+ return $result;
+ }
+
+ /**
+ * Gets the port that should be considered to sign the current request.
+ *
+ * It will analyze the current request, as well as some Jetpack constants, to return the string
+ * to be concatenated in the URL representing the port of the current request.
+ *
+ * @since 1.8.4
+ *
+ * @return string The port to be used in the signature
+ */
+ public function get_current_request_port() {
+ $host_port = isset( $_SERVER['HTTP_X_FORWARDED_PORT'] ) ? $this->sanitize_host_post( $_SERVER['HTTP_X_FORWARDED_PORT'] ) : '';
+ if ( '' === $host_port && isset( $_SERVER['SERVER_PORT'] ) ) {
+ $host_port = $this->sanitize_host_post( $_SERVER['SERVER_PORT'] );
+ }
+
+ /**
+ * Note: This port logic is tested in the Jetpack_Cxn_Tests->test__server_port_value() test.
+ * Please update the test if any changes are made in this logic.
+ */
+ if ( is_ssl() ) {
+ // 443: Standard Port
+ // 80: Assume we're behind a proxy without X-Forwarded-Port. Hardcoding "80" here means most sites
+ // with SSL termination proxies (self-served, Cloudflare, etc.) don't need to fiddle with
+ // the JETPACK_SIGNATURE__HTTPS_PORT constant. The code also implies we can't talk to a
+ // site at https://example.com:80/ (which would be a strange configuration).
+ // JETPACK_SIGNATURE__HTTPS_PORT: Set this constant in wp-config.php to the back end webserver's port
+ // if the site is behind a proxy running on port 443 without
+ // X-Forwarded-Port and the back end's port is *not* 80. It's better,
+ // though, to configure the proxy to send X-Forwarded-Port.
+ $https_port = defined( 'JETPACK_SIGNATURE__HTTPS_PORT' ) ? $this->sanitize_host_post( JETPACK_SIGNATURE__HTTPS_PORT ) : '443';
+ $port = in_array( $host_port, array( '443', '80', $https_port ), true ) ? '' : $host_port;
+ } else {
+ // 80: Standard Port
+ // JETPACK_SIGNATURE__HTTPS_PORT: Set this constant in wp-config.php to the back end webserver's port
+ // if the site is behind a proxy running on port 80 without
+ // X-Forwarded-Port. It's better, though, to configure the proxy to
+ // send X-Forwarded-Port.
+ $http_port = defined( 'JETPACK_SIGNATURE__HTTP_PORT' ) ? $this->sanitize_host_post( JETPACK_SIGNATURE__HTTP_PORT ) : '80';
+ $port = in_array( $host_port, array( '80', $http_port ), true ) ? '' : $host_port;
+ }
+ return (string) $port;
+ }
+
+ /**
+ * Sanitizes a variable checking if it's a valid port number, which can be an integer or a numeric string
+ *
+ * @since 1.8.4
+ *
+ * @param mixed $port_number Variable representing a port number.
+ * @return string Always a string with a valid port number, or an empty string if input is invalid
+ */
+ public function sanitize_host_post( $port_number ) {
+
+ if ( ! is_int( $port_number ) && ! is_string( $port_number ) ) {
+ return '';
+ }
+ if ( is_string( $port_number ) && ! ctype_digit( $port_number ) ) {
+ return '';
+ }
+
+ if ( 0 >= (int) $port_number || 65535 < $port_number ) {
+ return '';
+ }
+ return (string) $port_number;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php
new file mode 100644
index 00000000..37acf8a4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php
@@ -0,0 +1,866 @@
+<?php
+/**
+ * Jetpack XMLRPC Server.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Secrets;
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Connection\Urls;
+use Automattic\Jetpack\Roles;
+
+/**
+ * Just a sack of functions. Not actually an IXR_Server
+ */
+class Jetpack_XMLRPC_Server {
+ /**
+ * The current error object
+ *
+ * @var \WP_Error
+ */
+ public $error = null;
+
+ /**
+ * The current user
+ *
+ * @var \WP_User
+ */
+ public $user = null;
+
+ /**
+ * The connection manager object.
+ *
+ * @var Automattic\Jetpack\Connection\Manager
+ */
+ private $connection;
+
+ /**
+ * Creates a new XMLRPC server object.
+ */
+ public function __construct() {
+ $this->connection = new Connection_Manager();
+ }
+
+ /**
+ * Whitelist of the XML-RPC methods available to the Jetpack Server. If the
+ * user is not authenticated (->login()) then the methods are never added,
+ * so they will get a "does not exist" error.
+ *
+ * @param array $core_methods Core XMLRPC methods.
+ */
+ public function xmlrpc_methods( $core_methods ) {
+ $jetpack_methods = array(
+ 'jetpack.verifyAction' => array( $this, 'verify_action' ),
+ 'jetpack.idcUrlValidation' => array( $this, 'validate_urls_for_idc_mitigation' ),
+ 'jetpack.unlinkUser' => array( $this, 'unlink_user' ),
+ 'jetpack.testConnection' => array( $this, 'test_connection' ),
+ );
+
+ $jetpack_methods = array_merge( $jetpack_methods, $this->provision_xmlrpc_methods() );
+
+ $this->user = $this->login();
+
+ if ( $this->user ) {
+ $jetpack_methods = array_merge(
+ $jetpack_methods,
+ array(
+ 'jetpack.testAPIUserCode' => array( $this, 'test_api_user_code' ),
+ )
+ );
+
+ if ( isset( $core_methods['metaWeblog.editPost'] ) ) {
+ $jetpack_methods['metaWeblog.newMediaObject'] = $core_methods['metaWeblog.newMediaObject'];
+ $jetpack_methods['jetpack.updateAttachmentParent'] = array( $this, 'update_attachment_parent' );
+ }
+
+ /**
+ * Filters the XML-RPC methods available to Jetpack for authenticated users.
+ *
+ * @since 1.7.0
+ * @since-jetpack 1.1.0
+ *
+ * @param array $jetpack_methods XML-RPC methods available to the Jetpack Server.
+ * @param array $core_methods Available core XML-RPC methods.
+ * @param \WP_User $user Information about the user authenticated in the request.
+ */
+ $jetpack_methods = apply_filters( 'jetpack_xmlrpc_methods', $jetpack_methods, $core_methods, $this->user );
+ }
+
+ /**
+ * Filters the XML-RPC methods available to Jetpack for requests signed both with a blog token or a user token.
+ *
+ * @since 1.7.0
+ * @since 1.9.5 Introduced the $user parameter.
+ * @since-jetpack 3.0.0
+ *
+ * @param array $jetpack_methods XML-RPC methods available to the Jetpack Server.
+ * @param array $core_methods Available core XML-RPC methods.
+ * @param \WP_User|bool $user Information about the user authenticated in the request. False if authenticated with blog token.
+ */
+ return apply_filters( 'jetpack_xmlrpc_unauthenticated_methods', $jetpack_methods, $core_methods, $this->user );
+ }
+
+ /**
+ * Whitelist of the bootstrap XML-RPC methods
+ */
+ public function bootstrap_xmlrpc_methods() {
+ return array(
+ 'jetpack.remoteAuthorize' => array( $this, 'remote_authorize' ),
+ 'jetpack.remoteRegister' => array( $this, 'remote_register' ),
+ );
+ }
+
+ /**
+ * Additional method needed for authorization calls.
+ */
+ public function authorize_xmlrpc_methods() {
+ return array(
+ 'jetpack.remoteAuthorize' => array( $this, 'remote_authorize' ),
+ 'jetpack.remoteRegister' => array( $this, 'remote_already_registered' ),
+ );
+ }
+
+ /**
+ * Remote provisioning methods.
+ */
+ public function provision_xmlrpc_methods() {
+ return array(
+ 'jetpack.remoteRegister' => array( $this, 'remote_register' ),
+ 'jetpack.remoteProvision' => array( $this, 'remote_provision' ),
+ 'jetpack.remoteConnect' => array( $this, 'remote_connect' ),
+ 'jetpack.getUser' => array( $this, 'get_user' ),
+ );
+ }
+
+ /**
+ * Used to verify whether a local user exists and what role they have.
+ *
+ * @param int|string|array $request One of:
+ * int|string The local User's ID, username, or email address.
+ * array A request array containing:
+ * 0: int|string The local User's ID, username, or email address.
+ *
+ * @return array|\IXR_Error Information about the user, or error if no such user found:
+ * roles: string[] The user's rols.
+ * login: string The user's username.
+ * email_hash string[] The MD5 hash of the user's normalized email address.
+ * caps string[] The user's capabilities.
+ * allcaps string[] The user's granular capabilities, merged from role capabilities.
+ * token_key string The Token Key of the user's Jetpack token. Empty string if none.
+ */
+ public function get_user( $request ) {
+ $user_id = is_array( $request ) ? $request[0] : $request;
+
+ if ( ! $user_id ) {
+ return $this->error(
+ new \WP_Error(
+ 'invalid_user',
+ __( 'Invalid user identifier.', 'jetpack-connection' ),
+ 400
+ ),
+ 'get_user'
+ );
+ }
+
+ $user = $this->get_user_by_anything( $user_id );
+
+ if ( ! $user ) {
+ return $this->error(
+ new \WP_Error(
+ 'user_unknown',
+ __( 'User not found.', 'jetpack-connection' ),
+ 404
+ ),
+ 'get_user'
+ );
+ }
+
+ $user_token = ( new Tokens() )->get_access_token( $user->ID );
+
+ if ( $user_token ) {
+ list( $user_token_key ) = explode( '.', $user_token->secret );
+ if ( $user_token_key === $user_token->secret ) {
+ $user_token_key = '';
+ }
+ } else {
+ $user_token_key = '';
+ }
+
+ return array(
+ 'id' => $user->ID,
+ 'login' => $user->user_login,
+ 'email_hash' => md5( strtolower( trim( $user->user_email ) ) ),
+ 'roles' => $user->roles,
+ 'caps' => $user->caps,
+ 'allcaps' => $user->allcaps,
+ 'token_key' => $user_token_key,
+ );
+ }
+
+ /**
+ * Remote authorization XMLRPC method handler.
+ *
+ * @param array $request the request.
+ */
+ public function remote_authorize( $request ) {
+ $user = get_user_by( 'id', $request['state'] );
+
+ /**
+ * Happens on various request handling events in the Jetpack XMLRPC server.
+ * The action combines several types of events:
+ * - remote_authorize
+ * - remote_provision
+ * - get_user.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param String $action the action name, i.e., 'remote_authorize'.
+ * @param String $stage the execution stage, can be 'begin', 'success', 'error', etc.
+ * @param array $parameters extra parameters from the event.
+ * @param WP_User $user the acting user.
+ */
+ do_action( 'jetpack_xmlrpc_server_event', 'remote_authorize', 'begin', array(), $user );
+
+ foreach ( array( 'secret', 'state', 'redirect_uri', 'code' ) as $required ) {
+ if ( ! isset( $request[ $required ] ) || empty( $request[ $required ] ) ) {
+ return $this->error(
+ new \WP_Error( 'missing_parameter', 'One or more parameters is missing from the request.', 400 ),
+ 'remote_authorize'
+ );
+ }
+ }
+
+ if ( ! $user ) {
+ return $this->error( new \WP_Error( 'user_unknown', 'User not found.', 404 ), 'remote_authorize' );
+ }
+
+ if ( $this->connection->has_connected_owner() && $this->connection->is_user_connected( $request['state'] ) ) {
+ return $this->error( new \WP_Error( 'already_connected', 'User already connected.', 400 ), 'remote_authorize' );
+ }
+
+ $verified = $this->verify_action( array( 'authorize', $request['secret'], $request['state'] ) );
+
+ if ( is_a( $verified, 'IXR_Error' ) ) {
+ return $this->error( $verified, 'remote_authorize' );
+ }
+
+ wp_set_current_user( $request['state'] );
+
+ $result = $this->connection->authorize( $request );
+
+ if ( is_wp_error( $result ) ) {
+ return $this->error( $result, 'remote_authorize' );
+ }
+
+ // This action is documented in class.jetpack-xmlrpc-server.php.
+ do_action( 'jetpack_xmlrpc_server_event', 'remote_authorize', 'success' );
+
+ return array(
+ 'result' => $result,
+ );
+ }
+
+ /**
+ * This XML-RPC method is called from the /jpphp/provision endpoint on WPCOM in order to
+ * register this site so that a plan can be provisioned.
+ *
+ * @param array $request An array containing at minimum nonce and local_user keys.
+ *
+ * @return \WP_Error|array
+ */
+ public function remote_register( $request ) {
+ // This action is documented in class.jetpack-xmlrpc-server.php.
+ do_action( 'jetpack_xmlrpc_server_event', 'remote_register', 'begin', array() );
+
+ $user = $this->fetch_and_verify_local_user( $request );
+
+ if ( ! $user ) {
+ return $this->error(
+ new WP_Error( 'input_error', __( 'Valid user is required', 'jetpack-connection' ), 400 ),
+ 'remote_register'
+ );
+ }
+
+ if ( is_wp_error( $user ) || is_a( $user, 'IXR_Error' ) ) {
+ return $this->error( $user, 'remote_register' );
+ }
+
+ if ( empty( $request['nonce'] ) ) {
+ return $this->error(
+ new \WP_Error(
+ 'nonce_missing',
+ __( 'The required "nonce" parameter is missing.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_register'
+ );
+ }
+
+ $nonce = sanitize_text_field( $request['nonce'] );
+ unset( $request['nonce'] );
+
+ $api_url = $this->connection->api_url( 'partner_provision_nonce_check' );
+ $response = Client::_wp_remote_request(
+ esc_url_raw( add_query_arg( 'nonce', $nonce, $api_url ) ),
+ array( 'method' => 'GET' ),
+ true
+ );
+
+ if (
+ 200 !== wp_remote_retrieve_response_code( $response ) ||
+ 'OK' !== trim( wp_remote_retrieve_body( $response ) )
+ ) {
+ return $this->error(
+ new \WP_Error(
+ 'invalid_nonce',
+ __( 'There was an issue validating this request.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_register'
+ );
+ }
+
+ if ( ! Jetpack_Options::get_option( 'id' ) || ! ( new Tokens() )->get_access_token() || ! empty( $request['force'] ) ) {
+ wp_set_current_user( $user->ID );
+
+ // This code mostly copied from Jetpack::admin_page_load.
+ if ( isset( $request['from'] ) ) {
+ $this->connection->add_register_request_param( 'from', (string) $request['from'] );
+ }
+ $registered = $this->connection->try_registration();
+ if ( is_wp_error( $registered ) ) {
+ return $this->error( $registered, 'remote_register' );
+ } elseif ( ! $registered ) {
+ return $this->error(
+ new \WP_Error(
+ 'registration_error',
+ __( 'There was an unspecified error registering the site', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_register'
+ );
+ }
+ }
+
+ // This action is documented in class.jetpack-xmlrpc-server.php.
+ do_action( 'jetpack_xmlrpc_server_event', 'remote_register', 'success' );
+
+ return array(
+ 'client_id' => Jetpack_Options::get_option( 'id' ),
+ );
+ }
+
+ /**
+ * This is a substitute for remote_register() when the blog is already registered which returns an error code
+ * signifying that state.
+ * This is an unauthorized call and we should not be responding with any data other than the error code.
+ *
+ * @return \IXR_Error
+ */
+ public function remote_already_registered() {
+ return $this->error(
+ new \WP_Error( 'already_registered', __( 'Blog is already registered', 'jetpack-connection' ), 400 ),
+ 'remote_register'
+ );
+ }
+
+ /**
+ * This XML-RPC method is called from the /jpphp/provision endpoint on WPCOM in order to
+ * register this site so that a plan can be provisioned.
+ *
+ * @param array $request An array containing at minimum a nonce key and a local_username key.
+ *
+ * @return \WP_Error|array
+ */
+ public function remote_provision( $request ) {
+ $user = $this->fetch_and_verify_local_user( $request );
+
+ if ( ! $user ) {
+ return $this->error(
+ new WP_Error( 'input_error', __( 'Valid user is required', 'jetpack-connection' ), 400 ),
+ 'remote_provision'
+ );
+ }
+
+ if ( is_wp_error( $user ) || is_a( $user, 'IXR_Error' ) ) {
+ return $this->error( $user, 'remote_provision' );
+ }
+
+ $site_icon = get_site_icon_url();
+
+ /**
+ * Filters the Redirect URI returned by the remote_register XMLRPC method
+ *
+ * @param string $redirect_uri The Redirect URI
+ *
+ * @since 1.9.7
+ */
+ $redirect_uri = apply_filters( 'jetpack_xmlrpc_remote_register_redirect_uri', admin_url() );
+
+ // Generate secrets.
+ $roles = new Roles();
+ $role = $roles->translate_user_to_role( $user );
+ $secrets = ( new Secrets() )->generate( 'authorize', $user->ID );
+
+ $response = array(
+ 'jp_version' => JETPACK__VERSION,
+ 'redirect_uri' => $redirect_uri,
+ 'user_id' => $user->ID,
+ 'user_email' => $user->user_email,
+ 'user_login' => $user->user_login,
+ 'scope' => $this->connection->sign_role( $role, $user->ID ),
+ 'secret' => $secrets['secret_1'],
+ 'is_active' => $this->connection->has_connected_owner(),
+ );
+
+ if ( $site_icon ) {
+ $response['site_icon'] = $site_icon;
+ }
+
+ /**
+ * Filters the response of the remote_provision XMLRPC method
+ *
+ * @param array $response The response.
+ * @param array $request An array containing at minimum a nonce key and a local_username key.
+ * @param \WP_User $user The local authenticated user.
+ *
+ * @since 1.9.7
+ */
+ $response = apply_filters( 'jetpack_remote_xmlrpc_provision_response', $response, $request, $user );
+
+ return $response;
+ }
+
+ /**
+ * Given an array containing a local user identifier and a nonce, will attempt to fetch and set
+ * an access token for the given user.
+ *
+ * @param array $request An array containing local_user and nonce keys at minimum.
+ * @param \IXR_Client $ixr_client The client object, optional.
+ * @return mixed
+ */
+ public function remote_connect( $request, $ixr_client = false ) {
+ if ( $this->connection->has_connected_owner() ) {
+ return $this->error(
+ new WP_Error(
+ 'already_connected',
+ __( 'Jetpack is already connected.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_connect'
+ );
+ }
+
+ $user = $this->fetch_and_verify_local_user( $request );
+
+ if ( ! $user || is_wp_error( $user ) || is_a( $user, 'IXR_Error' ) ) {
+ return $this->error(
+ new WP_Error(
+ 'input_error',
+ __( 'Valid user is required.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_connect'
+ );
+ }
+
+ if ( empty( $request['nonce'] ) ) {
+ return $this->error(
+ new WP_Error(
+ 'input_error',
+ __( 'A non-empty nonce must be supplied.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_connect'
+ );
+ }
+
+ if ( ! $ixr_client ) {
+ $ixr_client = new Jetpack_IXR_Client();
+ }
+ // TODO: move this query into the Tokens class?
+ $ixr_client->query(
+ 'jetpack.getUserAccessToken',
+ array(
+ 'nonce' => sanitize_text_field( $request['nonce'] ),
+ 'external_user_id' => $user->ID,
+ )
+ );
+
+ $token = $ixr_client->isError() ? false : $ixr_client->getResponse();
+ if ( empty( $token ) ) {
+ return $this->error(
+ new WP_Error(
+ 'token_fetch_failed',
+ __( 'Failed to fetch user token from WordPress.com.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_connect'
+ );
+ }
+ $token = sanitize_text_field( $token );
+
+ ( new Tokens() )->update_user_token( $user->ID, sprintf( '%s.%d', $token, $user->ID ), true );
+
+ /**
+ * Hook fired at the end of the jetpack.remoteConnect XML-RPC callback
+ *
+ * @since 1.9.7
+ */
+ do_action( 'jetpack_remote_connect_end' );
+
+ return $this->connection->has_connected_owner();
+ }
+
+ /**
+ * Getter for the local user to act as.
+ *
+ * @param array $request the current request data.
+ */
+ private function fetch_and_verify_local_user( $request ) {
+ if ( empty( $request['local_user'] ) ) {
+ return $this->error(
+ new \WP_Error(
+ 'local_user_missing',
+ __( 'The required "local_user" parameter is missing.', 'jetpack-connection' ),
+ 400
+ ),
+ 'remote_provision'
+ );
+ }
+
+ // Local user is used to look up by login, email or ID.
+ $local_user_info = $request['local_user'];
+
+ return $this->get_user_by_anything( $local_user_info );
+ }
+
+ /**
+ * Gets the user object by its data.
+ *
+ * @param string $user_id can be any identifying user data.
+ */
+ private function get_user_by_anything( $user_id ) {
+ $user = get_user_by( 'login', $user_id );
+
+ if ( ! $user ) {
+ $user = get_user_by( 'email', $user_id );
+ }
+
+ if ( ! $user ) {
+ $user = get_user_by( 'ID', $user_id );
+ }
+
+ return $user;
+ }
+
+ /**
+ * Possible error_codes:
+ *
+ * - verify_secret_1_missing
+ * - verify_secret_1_malformed
+ * - verify_secrets_missing: verification secrets are not found in database
+ * - verify_secrets_incomplete: verification secrets are only partially found in database
+ * - verify_secrets_expired: verification secrets have expired
+ * - verify_secrets_mismatch: stored secret_1 does not match secret_1 sent by Jetpack.WordPress.com
+ * - state_missing: required parameter of state not found
+ * - state_malformed: state is not a digit
+ * - invalid_state: state in request does not match the stored state
+ *
+ * The 'authorize' and 'register' actions have additional error codes
+ *
+ * state_missing: a state ( user id ) was not supplied
+ * state_malformed: state is not the correct data type
+ * invalid_state: supplied state does not match the stored state
+ *
+ * @param array $params action An array of 3 parameters:
+ * [0]: string action. Possible values are `authorize`, `publicize` and `register`.
+ * [1]: string secret_1.
+ * [2]: int state.
+ * @return \IXR_Error|string IXR_Error on failure, secret_2 on success.
+ */
+ public function verify_action( $params ) {
+ $action = isset( $params[0] ) ? $params[0] : '';
+ $verify_secret = isset( $params[1] ) ? $params[1] : '';
+ $state = isset( $params[2] ) ? $params[2] : '';
+
+ $result = ( new Secrets() )->verify( $action, $verify_secret, $state );
+
+ if ( is_wp_error( $result ) ) {
+ return $this->error( $result );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Wrapper for wp_authenticate( $username, $password );
+ *
+ * @return \WP_User|bool
+ */
+ public function login() {
+ $this->connection->require_jetpack_authentication();
+ $user = wp_authenticate( 'username', 'password' );
+ if ( is_wp_error( $user ) ) {
+ if ( 'authentication_failed' === $user->get_error_code() ) { // Generic error could mean most anything.
+ $this->error = new \WP_Error( 'invalid_request', 'Invalid Request', 403 );
+ } else {
+ $this->error = $user;
+ }
+ return false;
+ } elseif ( ! $user ) { // Shouldn't happen.
+ $this->error = new \WP_Error( 'invalid_request', 'Invalid Request', 403 );
+ return false;
+ }
+
+ wp_set_current_user( $user->ID );
+
+ return $user;
+ }
+
+ /**
+ * Returns the current error as an \IXR_Error
+ *
+ * @param \WP_Error|\IXR_Error $error The error object, optional.
+ * @param string $event_name The event name.
+ * @param \WP_User $user The user object.
+ * @return bool|\IXR_Error
+ */
+ public function error( $error = null, $event_name = null, $user = null ) {
+ if ( null !== $event_name ) {
+ // This action is documented in class.jetpack-xmlrpc-server.php.
+ do_action( 'jetpack_xmlrpc_server_event', $event_name, 'fail', $error, $user );
+ }
+
+ if ( ! is_null( $error ) ) {
+ $this->error = $error;
+ }
+
+ if ( is_wp_error( $this->error ) ) {
+ $code = $this->error->get_error_data();
+ if ( ! $code ) {
+ $code = -10520;
+ }
+ $message = sprintf( 'Jetpack: [%s] %s', $this->error->get_error_code(), $this->error->get_error_message() );
+ if ( ! class_exists( \IXR_Error::class ) ) {
+ require_once ABSPATH . WPINC . '/class-IXR.php';
+ }
+ return new \IXR_Error( $code, $message );
+ } elseif ( is_a( $this->error, 'IXR_Error' ) ) {
+ return $this->error;
+ }
+
+ return false;
+ }
+
+ /* API Methods */
+
+ /**
+ * Just authenticates with the given Jetpack credentials.
+ *
+ * @return string A success string. The Jetpack plugin filters it and make it return the Jetpack plugin version.
+ */
+ public function test_connection() {
+ /**
+ * Filters the successful response of the XMLRPC test_connection method
+ *
+ * @param string $response The response string.
+ */
+ return apply_filters( 'jetpack_xmlrpc_test_connection_response', 'success' );
+ }
+
+ /**
+ * Test the API user code.
+ *
+ * @param array $args arguments identifying the test site.
+ */
+ public function test_api_user_code( $args ) {
+ $client_id = (int) $args[0];
+ $user_id = (int) $args[1];
+ $nonce = (string) $args[2];
+ $verify = (string) $args[3];
+
+ if ( ! $client_id || ! $user_id || ! strlen( $nonce ) || 32 !== strlen( $verify ) ) {
+ return false;
+ }
+
+ $user = get_user_by( 'id', $user_id );
+ if ( ! $user || is_wp_error( $user ) ) {
+ return false;
+ }
+
+ /* phpcs:ignore
+ debugging
+ error_log( "CLIENT: $client_id" );
+ error_log( "USER: $user_id" );
+ error_log( "NONCE: $nonce" );
+ error_log( "VERIFY: $verify" );
+ */
+
+ $jetpack_token = ( new Tokens() )->get_access_token( $user_id );
+
+ $api_user_code = get_user_meta( $user_id, "jetpack_json_api_$client_id", true );
+ if ( ! $api_user_code ) {
+ return false;
+ }
+
+ $hmac = hash_hmac(
+ 'md5',
+ json_encode( // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
+ (object) array(
+ 'client_id' => (int) $client_id,
+ 'user_id' => (int) $user_id,
+ 'nonce' => (string) $nonce,
+ 'code' => (string) $api_user_code,
+ )
+ ),
+ $jetpack_token->secret
+ );
+
+ if ( ! hash_equals( $hmac, $verify ) ) {
+ return false;
+ }
+
+ return $user_id;
+ }
+
+ /**
+ * Unlink a user from WordPress.com
+ *
+ * When the request is done without any parameter, this XMLRPC callback gets an empty array as input.
+ *
+ * If $user_id is not provided, it will try to disconnect the current logged in user. This will fail if called by the Master User.
+ *
+ * If $user_id is is provided, it will try to disconnect the informed user, even if it's the Master User.
+ *
+ * @param mixed $user_id The user ID to disconnect from this site.
+ */
+ public function unlink_user( $user_id = array() ) {
+ $user_id = (int) $user_id;
+ if ( $user_id < 1 ) {
+ $user_id = null;
+ }
+ /**
+ * Fired when we want to log an event to the Jetpack event log.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.7.0
+ *
+ * @param string $code Unique name for the event.
+ * @param string $data Optional data about the event.
+ */
+ do_action( 'jetpack_event_log', 'unlink' );
+ return $this->connection->disconnect_user(
+ $user_id,
+ (bool) $user_id
+ );
+ }
+
+ /**
+ * Returns the home URL and site URL for the current site which can be used on the WPCOM side for
+ * IDC mitigation to decide whether sync should be allowed if the home and siteurl values differ between WPCOM
+ * and the remote Jetpack site.
+ *
+ * @return array
+ */
+ public function validate_urls_for_idc_mitigation() {
+ return array(
+ 'home' => Urls::home_url(),
+ 'siteurl' => Urls::site_url(),
+ );
+ }
+
+ /**
+ * Updates the attachment parent object.
+ *
+ * @param array $args attachment and parent identifiers.
+ */
+ public function update_attachment_parent( $args ) {
+ $attachment_id = (int) $args[0];
+ $parent_id = (int) $args[1];
+
+ return wp_update_post(
+ array(
+ 'ID' => $attachment_id,
+ 'post_parent' => $parent_id,
+ )
+ );
+ }
+
+ /**
+ * Deprecated: This method is no longer part of the Connection package and now lives on the Jetpack plugin.
+ *
+ * Disconnect this blog from the connected wordpress.com account
+ *
+ * @deprecated since 1.25.0
+ * @see Jetpack_XMLRPC_Methods::disconnect_blog() in the Jetpack plugin
+ *
+ * @return boolean
+ */
+ public function disconnect_blog() {
+ _deprecated_function( __METHOD__, '1.25.0', 'Jetpack_XMLRPC_Methods::disconnect_blog()' );
+ if ( class_exists( 'Jetpack_XMLRPC_Methods' ) ) {
+ return Jetpack_XMLRPC_Methods::disconnect_blog();
+ }
+ return false;
+ }
+
+ /**
+ * Deprecated: This method is no longer part of the Connection package and now lives on the Jetpack plugin.
+ *
+ * Returns what features are available. Uses the slug of the module files.
+ *
+ * @deprecated since 1.25.0
+ * @see Jetpack_XMLRPC_Methods::features_available() in the Jetpack plugin
+ *
+ * @return array
+ */
+ public function features_available() {
+ _deprecated_function( __METHOD__, '1.25.0', 'Jetpack_XMLRPC_Methods::features_available()' );
+ if ( class_exists( 'Jetpack_XMLRPC_Methods' ) ) {
+ return Jetpack_XMLRPC_Methods::features_available();
+ }
+ return array();
+ }
+
+ /**
+ * Deprecated: This method is no longer part of the Connection package and now lives on the Jetpack plugin.
+ *
+ * Returns what features are enabled. Uses the slug of the modules files.
+ *
+ * @deprecated since 1.25.0
+ * @see Jetpack_XMLRPC_Methods::features_enabled() in the Jetpack plugin
+ *
+ * @return array
+ */
+ public function features_enabled() {
+ _deprecated_function( __METHOD__, '1.25.0', 'Jetpack_XMLRPC_Methods::features_enabled()' );
+ if ( class_exists( 'Jetpack_XMLRPC_Methods' ) ) {
+ return Jetpack_XMLRPC_Methods::features_enabled();
+ }
+ return array();
+ }
+
+ /**
+ * Deprecated: This method is no longer part of the Connection package and now lives on the Jetpack plugin.
+ *
+ * Serve a JSON API request.
+ *
+ * @deprecated since 1.25.0
+ * @see Jetpack_XMLRPC_Methods::json_api() in the Jetpack plugin
+ *
+ * @param array $args request arguments.
+ */
+ public function json_api( $args = array() ) {
+ _deprecated_function( __METHOD__, '1.25.0', 'Jetpack_XMLRPC_Methods::json_api()' );
+ if ( class_exists( 'Jetpack_XMLRPC_Methods' ) ) {
+ return Jetpack_XMLRPC_Methods::json_api( $args );
+ }
+ return array();
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-client.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-client.php
new file mode 100644
index 00000000..fea9e9c7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-client.php
@@ -0,0 +1,488 @@
+<?php
+/**
+ * The Connection Client class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * The Client class that is used to connect to WordPress.com Jetpack API.
+ */
+class Client {
+ const WPCOM_JSON_API_VERSION = '1.1';
+
+ /**
+ * Makes an authorized remote request using Jetpack_Signature
+ *
+ * @param array $args the arguments for the remote request.
+ * @param array|String $body the request body.
+ * @return array|WP_Error WP HTTP response on success
+ */
+ public static function remote_request( $args, $body = null ) {
+ if ( isset( $args['url'] ) ) {
+ /**
+ * Filters the remote request url.
+ *
+ * @since 1.30.12
+ *
+ * @param string The remote request url.
+ */
+ $args['url'] = apply_filters( 'jetpack_remote_request_url', $args['url'] );
+ }
+
+ $result = self::build_signed_request( $args, $body );
+ if ( ! $result || is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ $response = self::_wp_remote_request( $result['url'], $result['request'] );
+
+ /**
+ * Fired when the remote request response has been received.
+ *
+ * @since 1.30.8
+ *
+ * @param array|WP_Error The HTTP response.
+ */
+ do_action( 'jetpack_received_remote_request_response', $response );
+
+ return $response;
+ }
+
+ /**
+ * Adds authorization signature to a remote request using Jetpack_Signature
+ *
+ * @param array $args the arguments for the remote request.
+ * @param array|String $body the request body.
+ * @return WP_Error|array {
+ * An array containing URL and request items.
+ *
+ * @type String $url The request URL.
+ * @type array $request Request arguments.
+ * }
+ */
+ public static function build_signed_request( $args, $body = null ) {
+ add_filter(
+ 'jetpack_constant_default_value',
+ __NAMESPACE__ . '\Utils::jetpack_api_constant_filter',
+ 10,
+ 2
+ );
+
+ $defaults = array(
+ 'url' => '',
+ 'user_id' => 0,
+ 'blog_id' => 0,
+ 'auth_location' => Constants::get_constant( 'JETPACK_CLIENT__AUTH_LOCATION' ),
+ 'method' => 'POST',
+ 'timeout' => 10,
+ 'redirection' => 0,
+ 'headers' => array(),
+ 'stream' => false,
+ 'filename' => null,
+ 'sslverify' => true,
+ );
+
+ $args = wp_parse_args( $args, $defaults );
+
+ $args['blog_id'] = (int) $args['blog_id'];
+
+ if ( 'header' !== $args['auth_location'] ) {
+ $args['auth_location'] = 'query_string';
+ }
+
+ $token = ( new Tokens() )->get_access_token( $args['user_id'] );
+ if ( ! $token ) {
+ return new \WP_Error( 'missing_token' );
+ }
+
+ $method = strtoupper( $args['method'] );
+
+ $timeout = (int) $args['timeout'];
+
+ $redirection = $args['redirection'];
+ $stream = $args['stream'];
+ $filename = $args['filename'];
+ $sslverify = $args['sslverify'];
+
+ $request = compact( 'method', 'body', 'timeout', 'redirection', 'stream', 'filename', 'sslverify' );
+
+ @list( $token_key, $secret ) = explode( '.', $token->secret ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ if ( empty( $token ) || empty( $secret ) ) {
+ return new \WP_Error( 'malformed_token' );
+ }
+
+ $token_key = sprintf(
+ '%s:%d:%d',
+ $token_key,
+ Constants::get_constant( 'JETPACK__API_VERSION' ),
+ $token->external_user_id
+ );
+
+ $time_diff = (int) \Jetpack_Options::get_option( 'time_diff' );
+ $jetpack_signature = new \Jetpack_Signature( $token->secret, $time_diff );
+
+ $timestamp = time() + $time_diff;
+
+ if ( function_exists( 'wp_generate_password' ) ) {
+ $nonce = wp_generate_password( 10, false );
+ } else {
+ $nonce = substr( sha1( wp_rand( 0, 1000000 ) ), 0, 10 );
+ }
+
+ // Kind of annoying. Maybe refactor Jetpack_Signature to handle body-hashing.
+ if ( is_null( $body ) ) {
+ $body_hash = '';
+
+ } else {
+ // Allow arrays to be used in passing data.
+ $body_to_hash = $body;
+
+ if ( is_array( $body ) ) {
+ // We cast this to a new variable, because the array form of $body needs to be
+ // maintained so it can be passed into the request later on in the code.
+ if ( count( $body ) > 0 ) {
+ $body_to_hash = wp_json_encode( self::_stringify_data( $body ) );
+ } else {
+ $body_to_hash = '';
+ }
+ }
+
+ if ( ! is_string( $body_to_hash ) ) {
+ return new \WP_Error( 'invalid_body', 'Body is malformed.' );
+ }
+
+ $body_hash = base64_encode( sha1( $body_to_hash, true ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ }
+
+ $auth = array(
+ 'token' => $token_key,
+ 'timestamp' => $timestamp,
+ 'nonce' => $nonce,
+ 'body-hash' => $body_hash,
+ );
+
+ if ( false !== strpos( $args['url'], 'xmlrpc.php' ) ) {
+ $url_args = array(
+ 'for' => 'jetpack',
+ 'wpcom_blog_id' => \Jetpack_Options::get_option( 'id' ),
+ );
+ } else {
+ $url_args = array();
+ }
+
+ if ( 'header' !== $args['auth_location'] ) {
+ $url_args += $auth;
+ }
+
+ $url = add_query_arg( urlencode_deep( $url_args ), $args['url'] );
+
+ $signature = $jetpack_signature->sign_request( $token_key, $timestamp, $nonce, $body_hash, $method, $url, $body, false );
+
+ if ( ! $signature || is_wp_error( $signature ) ) {
+ return $signature;
+ }
+
+ // Send an Authorization header so various caches/proxies do the right thing.
+ $auth['signature'] = $signature;
+ $auth['version'] = Constants::get_constant( 'JETPACK__VERSION' );
+ $header_pieces = array();
+ foreach ( $auth as $key => $value ) {
+ $header_pieces[] = sprintf( '%s="%s"', $key, $value );
+ }
+ $request['headers'] = array_merge(
+ $args['headers'],
+ array(
+ 'Authorization' => 'X_JETPACK ' . join( ' ', $header_pieces ),
+ )
+ );
+
+ if ( 'header' !== $args['auth_location'] ) {
+ $url = add_query_arg( 'signature', rawurlencode( $signature ), $url );
+ }
+
+ return compact( 'url', 'request' );
+ }
+
+ /**
+ * Wrapper for wp_remote_request(). Turns off SSL verification for certain SSL errors.
+ * This is lame, but many, many, many hosts have misconfigured SSL.
+ *
+ * When Jetpack is registered, the jetpack_fallback_no_verify_ssl_certs option is set to the current time if:
+ * 1. a certificate error is found AND
+ * 2. not verifying the certificate works around the problem.
+ *
+ * The option is checked on each request.
+ *
+ * @internal
+ *
+ * @param String $url the request URL.
+ * @param array $args request arguments.
+ * @param Boolean $set_fallback whether to allow flagging this request to use a fallback certficate override.
+ * @return array|WP_Error WP HTTP response on success
+ */
+ public static function _wp_remote_request( $url, $args, $set_fallback = false ) { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
+ $fallback = \Jetpack_Options::get_option( 'fallback_no_verify_ssl_certs' );
+ if ( false === $fallback ) {
+ \Jetpack_Options::update_option( 'fallback_no_verify_ssl_certs', 0 );
+ }
+
+ /**
+ * SSL verification (`sslverify`) for the JetpackClient remote request
+ * defaults to off, use this filter to force it on.
+ *
+ * Return `true` to ENABLE SSL verification, return `false`
+ * to DISABLE SSL verification.
+ *
+ * @since 1.7.0
+ * @since-jetpack 3.6.0
+ *
+ * @param bool Whether to force `sslverify` or not.
+ */
+ if ( apply_filters( 'jetpack_client_verify_ssl_certs', false ) ) {
+ return wp_remote_request( $url, $args );
+ }
+
+ if ( (int) $fallback ) {
+ // We're flagged to fallback.
+ $args['sslverify'] = false;
+ }
+
+ $response = wp_remote_request( $url, $args );
+
+ if (
+ ! $set_fallback // We're not allowed to set the flag on this request, so whatever happens happens.
+ ||
+ isset( $args['sslverify'] ) && ! $args['sslverify'] // No verification - no point in doing it again.
+ ||
+ ! is_wp_error( $response ) // Let it ride.
+ ) {
+ self::set_time_diff( $response, $set_fallback );
+ return $response;
+ }
+
+ // At this point, we're not flagged to fallback and we are allowed to set the flag on this request.
+
+ $message = $response->get_error_message();
+
+ // Is it an SSL Certificate verification error?
+ if (
+ false === strpos( $message, '14090086' ) // OpenSSL SSL3 certificate error.
+ &&
+ false === strpos( $message, '1407E086' ) // OpenSSL SSL2 certificate error.
+ &&
+ false === strpos( $message, 'error setting certificate verify locations' ) // cURL CA bundle not found.
+ &&
+ false === strpos( $message, 'Peer certificate cannot be authenticated with' ) // cURL CURLE_SSL_CACERT: CA bundle found, but not helpful
+ // Different versions of curl have different error messages
+ // this string should catch them all.
+ &&
+ false === strpos( $message, 'Problem with the SSL CA cert' ) // cURL CURLE_SSL_CACERT_BADFILE: probably access rights.
+ ) {
+ // No, it is not.
+ return $response;
+ }
+
+ // Redo the request without SSL certificate verification.
+ $args['sslverify'] = false;
+ $response = wp_remote_request( $url, $args );
+
+ if ( ! is_wp_error( $response ) ) {
+ // The request went through this time, flag for future fallbacks.
+ \Jetpack_Options::update_option( 'fallback_no_verify_ssl_certs', time() );
+ self::set_time_diff( $response, $set_fallback );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Sets the time difference for correct signature computation.
+ *
+ * @param HTTP_Response $response the response object.
+ * @param Boolean $force_set whether to force setting the time difference.
+ */
+ public static function set_time_diff( &$response, $force_set = false ) {
+ $code = wp_remote_retrieve_response_code( $response );
+
+ // Only trust the Date header on some responses.
+ if ( 200 != $code && 304 != $code && 400 != $code && 401 != $code ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ return;
+ }
+
+ $date = wp_remote_retrieve_header( $response, 'date' );
+ if ( ! $date ) {
+ return;
+ }
+
+ $time = (int) strtotime( $date );
+ if ( 0 >= $time ) {
+ return;
+ }
+
+ $time_diff = $time - time();
+
+ if ( $force_set ) { // During register.
+ \Jetpack_Options::update_option( 'time_diff', $time_diff );
+ } else { // Otherwise.
+ $old_diff = \Jetpack_Options::get_option( 'time_diff' );
+ if ( false === $old_diff || abs( $time_diff - (int) $old_diff ) > 10 ) {
+ \Jetpack_Options::update_option( 'time_diff', $time_diff );
+ }
+ }
+ }
+
+ /**
+ * Validate and build arguments for a WordPress.com REST API request.
+ *
+ * @param string $path REST API path.
+ * @param string $version REST API version. Default is `2`.
+ * @param array $args Arguments to {@see WP_Http}. Default is `array()`.
+ * @param string $base_api_path REST API root. Default is `wpcom`.
+ *
+ * @return array|WP_Error $response Response data, else {@see WP_Error} on failure.
+ */
+ public static function validate_args_for_wpcom_json_api_request(
+ $path,
+ $version = '2',
+ $args = array(),
+ $base_api_path = 'wpcom'
+ ) {
+ $base_api_path = trim( $base_api_path, '/' );
+ $version = ltrim( $version, 'v' );
+ $path = ltrim( $path, '/' );
+
+ $filtered_args = array_intersect_key(
+ $args,
+ array(
+ 'headers' => 'array',
+ 'method' => 'string',
+ 'timeout' => 'int',
+ 'redirection' => 'int',
+ 'stream' => 'boolean',
+ 'filename' => 'string',
+ 'sslverify' => 'boolean',
+ )
+ );
+
+ // Use GET by default whereas `remote_request` uses POST.
+ $request_method = isset( $filtered_args['method'] ) ? strtoupper( $filtered_args['method'] ) : 'GET';
+
+ $url = sprintf(
+ '%s/%s/v%s/%s',
+ Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ),
+ $base_api_path,
+ $version,
+ $path
+ );
+
+ $validated_args = array_merge(
+ $filtered_args,
+ array(
+ 'url' => $url,
+ 'method' => $request_method,
+ )
+ );
+
+ return $validated_args;
+ }
+
+ /**
+ * Queries the WordPress.com REST API with a user token.
+ *
+ * @param string $path REST API path.
+ * @param string $version REST API version. Default is `2`.
+ * @param array $args Arguments to {@see WP_Http}. Default is `array()`.
+ * @param string $body Body passed to {@see WP_Http}. Default is `null`.
+ * @param string $base_api_path REST API root. Default is `wpcom`.
+ *
+ * @return array|WP_Error $response Response data, else {@see WP_Error} on failure.
+ */
+ public static function wpcom_json_api_request_as_user(
+ $path,
+ $version = '2',
+ $args = array(),
+ $body = null,
+ $base_api_path = 'wpcom'
+ ) {
+ $args = self::validate_args_for_wpcom_json_api_request( $path, $version, $args, $base_api_path );
+ $args['user_id'] = get_current_user_id();
+
+ if ( isset( $body ) && ! isset( $args['headers'] ) && in_array( $args['method'], array( 'POST', 'PUT', 'PATCH' ), true ) ) {
+ $args['headers'] = array( 'Content-Type' => 'application/json' );
+ }
+
+ if ( isset( $body ) && ! is_string( $body ) ) {
+ $body = wp_json_encode( $body );
+ }
+
+ return self::remote_request( $args, $body );
+ }
+
+ /**
+ * Query the WordPress.com REST API using the blog token
+ *
+ * @param String $path The API endpoint relative path.
+ * @param String $version The API version.
+ * @param array $args Request arguments.
+ * @param String $body Request body.
+ * @param String $base_api_path (optional) the API base path override, defaults to 'rest'.
+ * @return array|WP_Error $response Data.
+ */
+ public static function wpcom_json_api_request_as_blog(
+ $path,
+ $version = self::WPCOM_JSON_API_VERSION,
+ $args = array(),
+ $body = null,
+ $base_api_path = 'rest'
+ ) {
+ $validated_args = self::validate_args_for_wpcom_json_api_request( $path, $version, $args, $base_api_path );
+ $validated_args['blog_id'] = (int) \Jetpack_Options::get_option( 'id' );
+
+ // For Simple sites get the response directly without any HTTP requests.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ add_filter( 'is_jetpack_authorized_for_site', '__return_true' );
+ require_lib( 'wpcom-api-direct' );
+ return \WPCOM_API_Direct::do_request( $validated_args, $body );
+ }
+
+ return self::remote_request( $validated_args, $body );
+ }
+
+ /**
+ * Takes an array or similar structure and recursively turns all values into strings. This is used to
+ * make sure that body hashes are made ith the string version, which is what will be seen after a
+ * server pulls up the data in the $_POST array.
+ *
+ * @param array|Mixed $data the data that needs to be stringified.
+ *
+ * @return array|string
+ */
+ public static function _stringify_data( $data ) { // phpcs:ignore PSR2.Methods.MethodDeclaration.Underscore
+
+ // Booleans are special, lets just makes them and explicit 1/0 instead of the 0 being an empty string.
+ if ( is_bool( $data ) ) {
+ return $data ? '1' : '0';
+ }
+
+ // Cast objects into arrays.
+ if ( is_object( $data ) ) {
+ $data = (array) $data;
+ }
+
+ // Non arrays at this point should be just converted to strings.
+ if ( ! is_array( $data ) ) {
+ return (string) $data;
+ }
+
+ foreach ( $data as &$value ) {
+ $value = self::_stringify_data( $value );
+ }
+
+ return $data;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php
new file mode 100644
index 00000000..9da55442
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php
@@ -0,0 +1,690 @@
+<?php
+/**
+ * The Jetpack Connection error class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The Jetpack Connection Errors that handles errors
+ *
+ * This class handles the following workflow:
+ *
+ * 1. A XML-RCP request with an invalid signature triggers a error
+ * 2. Applies a gate to only process each error code once an hour to avoid overflow
+ * 3. It stores the error on the database, but we don't know yet if this is a valid error, because
+ * we can't confirm it came from WP.com.
+ * 4. It encrypts the error details and send it to thw wp.com server
+ * 5. wp.com checks it and, if valid, sends a new request back to this site using the verify_xml_rpc_error REST endpoint
+ * 6. This endpoint add this error to the Verified errors in the database
+ * 7. Triggers a workflow depending on the error (display user an error message, do some self healing, etc.)
+ *
+ * Errors are stored in the database as options in the following format:
+ *
+ * [
+ * $error_code => [
+ * $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',
+ );
+
+ /**
+ * 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' ) );
+
+ $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_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':
+ 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 ( is_null( self::$instance ) ) {
+ self::$instance = new self();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Keep track of a connection error that was encountered
+ *
+ * @since 1.14.2
+ *
+ * @param \WP_Error $error the error object.
+ * @param boolean $force Force the report, even if should_report_error is false.
+ * @return void
+ */
+ public function report_error( \WP_Error $error, $force = 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 ) {
+ $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 XML-RPC error handling
+ *
+ * By default, we only process XML-RPC 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.
+ if ( count( $stored_errors[ $error_code ] ) > 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;
+ }
+
+ $data = $data['signature_details'];
+
+ if ( ! isset( $data['token'] ) || empty( $data['token'] ) ) {
+ return false;
+ }
+
+ $user_id = $this->get_user_id_from_token( $data['token'] );
+
+ $error_array = array(
+ 'error_code' => $error->get_error_code(),
+ 'user_id' => $user_id,
+ 'error_message' => $error->get_error_message(),
+ 'error_data' => $data,
+ 'timestamp' => time(),
+ 'nonce' => wp_generate_password( 10, false ),
+ );
+
+ 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 xml-rpc request.
+ * @return string $the user id or `invalid` if user id not present.
+ */
+ public function get_user_id_from_token( $token ) {
+ $parsed_token = explode( ':', wp_unslash( $token ) );
+
+ if ( isset( $parsed_token[2] ) && ctype_digit( $parsed_token[2] ) ) {
+ $user_id = $parsed_token[2];
+ } else {
+ $user_id = 'invalid';
+ }
+
+ 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 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 xmlrpc 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;
+ }
+
+ ?>
+ <div class="notice notice-error is-dismissible jetpack-message jp-connect" style="display:block !important;">
+ <p><?php echo esc_html( $message ); ?></p>
+ </div>
+ <?php
+ }
+
+ /**
+ * 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' => 'xmlrpc_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;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php
new file mode 100644
index 00000000..0ee6d7ab
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * The React initial state.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The React initial state.
+ */
+class Initial_State {
+
+ /**
+ * Whether the initial state was already rendered
+ *
+ * @var boolean
+ */
+ private static $rendered = false;
+
+ /**
+ * Get the initial state data.
+ *
+ * @return array
+ */
+ private static function get_data() {
+ return array(
+ 'WP_API_root' => esc_url_raw( rest_url() ),
+ 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ),
+ 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
+ 'connectionStatus' => REST_Connector::connection_status( false ),
+ );
+ }
+
+ /**
+ * Render the initial state into a JavaScript variable.
+ *
+ * @return string
+ */
+ public static function render() {
+ if ( self::$rendered ) {
+ return null;
+ }
+ self::$rendered = true;
+ return 'var JP_CONNECTION_INITIAL_STATE=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( self::get_data() ) ) . '"));';
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php
new file mode 100644
index 00000000..0c95bde8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php
@@ -0,0 +1,2484 @@
+<?php
+/**
+ * The Jetpack Connection manager class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\A8c_Mc_Stats as A8c_Mc_Stats;
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Heartbeat;
+use Automattic\Jetpack\Roles;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Terms_Of_Service;
+use Automattic\Jetpack\Tracking;
+use Jetpack_IXR_Client;
+use WP_Error;
+use WP_User;
+
+/**
+ * The Jetpack Connection Manager class that is used as a single gateway between WordPress.com
+ * and Jetpack.
+ */
+class Manager {
+ /**
+ * A copy of the raw POST data for signature verification purposes.
+ *
+ * @var String
+ */
+ protected $raw_post_data;
+
+ /**
+ * Verification data needs to be stored to properly verify everything.
+ *
+ * @var Object
+ */
+ private $xmlrpc_verification = null;
+
+ /**
+ * Plugin management object.
+ *
+ * @var Plugin
+ */
+ private $plugin = null;
+
+ /**
+ * Holds extra parameters that will be sent along in the register request body.
+ *
+ * Use Manager::add_register_request_param to add values to this array.
+ *
+ * @since 1.26.0
+ * @var array
+ */
+ private static $extra_register_params = array();
+
+ /**
+ * Initialize the object.
+ * Make sure to call the "Configure" first.
+ *
+ * @param string $plugin_slug Slug of the plugin using the connection (optional, but encouraged).
+ *
+ * @see \Automattic\Jetpack\Config
+ */
+ public function __construct( $plugin_slug = null ) {
+ if ( $plugin_slug && is_string( $plugin_slug ) ) {
+ $this->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(
+ $_GET, // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $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 );
+
+ // 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();
+ }
+ }
+
+ /**
+ * Sets up the XMLRPC request handlers.
+ *
+ * @since 1.25.0 Deprecate $is_active param.
+ *
+ * @param array $request_params incoming request parameters.
+ * @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(
+ $request_params,
+ $has_connected_owner,
+ $is_signed,
+ \Jetpack_XMLRPC_Server $xmlrpc_server = null
+ ) {
+ add_filter( 'xmlrpc_blog_options', array( $this, 'xmlrpc_options' ), 1000, 2 );
+
+ if (
+ ! isset( $request_params['for'] )
+ || 'jetpack' !== $request_params['for']
+ ) {
+ return false;
+ }
+
+ // Alternate XML-RPC, via ?for=jetpack&jetpack=comms.
+ if (
+ isset( $request_params['jetpack'] )
+ && 'comms' === $request_params['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.
+ @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.
+ */
+ 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 ( 0 === strpos( $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 ( is_null( $this->xmlrpc_verification ) ) {
+ $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
+ // 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' => wp_unslash( $_SERVER['REQUEST_METHOD'] ),
+ 'url' => wp_unslash( $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ), // Temp - will get real signature URL later.
+ 'signature' => isset( $_GET['signature'] ) ? wp_unslash( $_GET['signature'] ) : '',
+ );
+
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ @list( $token_key, $version, $user_id ) = explode( ':', wp_unslash( $_GET['token'] ) );
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ $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' ) );
+ }
+
+ 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' )
+ );
+ }
+ $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' )
+ );
+ }
+ }
+
+ $token = $this->get_tokens()->get_access_token( $user_id, $token_key, false );
+ if ( is_wp_error( $token ) ) {
+ $token->add_data( compact( 'signature_details' ) );
+ 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' )
+ );
+ }
+
+ $jetpack_signature = new \Jetpack_Signature( $token->secret, (int) \Jetpack_Options::get_option( 'time_diff' ) );
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
+ if ( isset( $_POST['_jetpack_is_multipart'] ) ) {
+ $post_data = $_POST;
+ $file_hashes = array();
+ foreach ( $post_data as $post_data_key => $post_data_value ) {
+ if ( 0 !== strpos( $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 ( is_null( $this->raw_post_data ) ) {
+ $body = file_get_contents( 'php://input' );
+ } else {
+ $body = null;
+ }
+ // phpcs:enable
+
+ $signature = $jetpack_signature->sign_current_request(
+ array( 'body' => is_null( $body ) ? $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' )
+ );
+ } elseif ( is_wp_error( $signature ) ) {
+ return $signature;
+ }
+
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ $timestamp = (int) $_GET['timestamp'];
+ $nonce = stripslashes( (string) $_GET['nonce'] );
+ // 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' )
+ );
+ }
+
+ // 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, $_GET['signature'] ) ) {
+ return new \WP_Error(
+ 'signature_mismatch',
+ 'Signature mismatch',
+ compact( 'signature_details' )
+ );
+ }
+
+ /**
+ * 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 );
+ }
+
+ 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();
+ }
+
+ /**
+ * 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;
+
+ // 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, $can_overwrite_primary_user );
+
+ 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 );
+ }
+ }
+
+ return $is_disconnected_from_wpcom && $is_disconnected_locally;
+ }
+
+ /**
+ * Request to wpcom for a user to be unlinked from their WordPress.com account
+ *
+ * @access public
+ *
+ * @param Integer $user_id the user identifier.
+ *
+ * @return Boolean 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( compact( 'user_id' ) );
+
+ $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 ) {
+ if ( ! user_can( $new_owner_id, '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 whether the connection manager should use the iframe authorization
+ * flow instead of the regular redirect-based flow.
+ *
+ * @since 1.9.0
+ *
+ * @param Boolean $is_iframe_flow_used should the iframe flow be used, defaults to false.
+ */
+ $iframe_flow = apply_filters( 'jetpack_use_iframe_authorization_flow', false );
+
+ // Do not modify anything that is not related to authorize requests.
+ if ( 'authorize' === $relative_url && $iframe_flow ) {
+ $relative_url = 'authorize_iframe';
+ }
+
+ /**
+ * 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' ) {
+ 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'] = $this->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 );
+
+ $allow_inplace_authorization = isset( $registration_details->allow_inplace_authorization ) ? $registration_details->allow_inplace_authorization : false;
+ $alternate_authorization_url = isset( $registration_details->alternate_authorization_url ) ? $registration_details->alternate_authorization_url : '';
+
+ if ( ! $allow_inplace_authorization ) {
+ // Forces register_site REST endpoint to return the Calypso authorization URL.
+ add_filter( 'jetpack_use_iframe_authorization_flow', '__return_false', 20 );
+ }
+
+ add_filter(
+ 'jetpack_register_site_rest_response',
+ function ( $response ) use ( $allow_inplace_authorization, $alternate_authorization_url ) {
+ $response['allowInplaceAuthorization'] = $allow_inplace_authorization;
+ $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;
+ }
+
+ /**
+ * 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::disable_plugin()
+ * @see Manager::disconnect_site_wpcom()
+ * @see Manager::delete_all_connection_tokens()
+ *
+ * @return bool
+ */
+ public function remove_connection() {
+ $this->disable_plugin();
+ $this->disconnect_site_wpcom();
+ $this->delete_all_connection_tokens();
+
+ 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 );
+ $this->delete_all_connection_tokens( 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.
+ *
+ * @param WP_User $user (optional) defaults to the current logged in user.
+ * @param String $redirect (optional) a redirect URL to use instead of the default.
+ * @return string Connect URL.
+ */
+ public function get_authorization_url( $user = null, $redirect = null ) {
+ 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->is_active(), // TODO Deprecate this.
+ 'jp_version' => 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(),
+ )
+ );
+
+ $body = $this->apply_activation_source_to_args( urlencode_deep( $body ) );
+
+ $api_url = $this->api_url( 'authorize' );
+
+ return add_query_arg( $body, $api_url );
+ }
+
+ /**
+ * 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.
+ */
+ public function disconnect_site( $disconnect_wpcom = true ) {
+ wp_clear_scheduled_hook( 'jetpack_clean_nonces' );
+
+ ( new Nonce_Handler() )->clean_all();
+
+ // 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( true );
+ }
+
+ $this->delete_all_connection_tokens( true );
+
+ // 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',
+ '127.0.0.1',
+ '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;
+ }
+
+ 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 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( true );
+
+ 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.
+ *
+ * @return bool
+ */
+ public function disable_plugin() {
+ if ( ! $this->plugin ) {
+ return false;
+ }
+
+ return $this->plugin->disable();
+ }
+
+ /**
+ * 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.
+ *
+ * @return bool
+ */
+ public function enable_plugin() {
+ if ( ! $this->plugin ) {
+ return false;
+ }
+
+ return $this->plugin->enable();
+ }
+
+ /**
+ * 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.
+ *
+ * @return bool
+ */
+ public function is_plugin_enabled() {
+ if ( ! $this->plugin ) {
+ return true;
+ }
+
+ return $this->plugin->is_enabled();
+ }
+
+ /**
+ * 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 );
+ }
+
+ 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;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php
new file mode 100644
index 00000000..d5790b1f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php
@@ -0,0 +1,213 @@
+<?php
+/**
+ * The nonce handler.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The nonce handler.
+ */
+class Nonce_Handler {
+
+ /**
+ * How long the scheduled cleanup can run (in seconds).
+ * Can be modified using the filter `jetpack_connection_nonce_scheduled_cleanup_limit`.
+ */
+ const SCHEDULED_CLEANUP_TIME_LIMIT = 5;
+
+ /**
+ * How many nonces should be removed per batch during the `clean_all()` run.
+ */
+ const CLEAN_ALL_LIMIT_PER_BATCH = 1000;
+
+ /**
+ * Nonce lifetime in seconds.
+ */
+ const LIFETIME = HOUR_IN_SECONDS;
+
+ /**
+ * The nonces used during the request are stored here to keep them valid.
+ * The property is static to keep the nonces accessible between the `Nonce_Handler` instances.
+ *
+ * @var array
+ */
+ private static $nonces_used_this_request = array();
+
+ /**
+ * The database object.
+ *
+ * @var \wpdb
+ */
+ private $db;
+
+ /**
+ * Initializing the object.
+ */
+ public function __construct() {
+ global $wpdb;
+
+ $this->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 ( is_null( $old_nonce ) ) {
+ $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 ( ! count( $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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php
new file mode 100644
index 00000000..2514b606
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * The Package_Version_Tracker class.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The Package_Version_Tracker class.
+ */
+class Package_Version_Tracker {
+
+ const PACKAGE_VERSION_OPTION = 'jetpack_package_versions';
+
+ /**
+ * The cache key for storing a failed request to update remote package versions.
+ * The caching logic is that when a failed request occurs, we cache it temporarily
+ * with a set expiration time.
+ * Only after the key has expired, we'll be able to repeat a remote request.
+ * This also implies that the cached value is redundant, however we chose the datetime
+ * of the failed request to avoid using booleans.
+ */
+ const CACHED_FAILED_REQUEST_KEY = 'jetpack_failed_update_remote_package_versions';
+
+ /**
+ * The min time difference in seconds for attempting to
+ * update remote tracked package versions after a failed remote request.
+ */
+ const CACHED_FAILED_REQUEST_EXPIRATION = 1 * HOUR_IN_SECONDS;
+
+ /**
+ * Uses the jetpack_package_versions filter to obtain the package versions from packages that need
+ * version tracking. If the package versions have changed, updates the option and notifies WPCOM.
+ */
+ public function maybe_update_package_versions() {
+ /**
+ * Obtains the package versions.
+ *
+ * @since $$next_version$$
+ *
+ * @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:
+ * - 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_option( $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 );
+ }
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php
new file mode 100644
index 00000000..4064bf62
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * The Package_Version class.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The Package_Version class.
+ */
+class Package_Version {
+
+ const PACKAGE_VERSION = '1.34.0';
+
+ const PACKAGE_SLUG = 'connection';
+
+ /**
+ * Adds the package slug and version to the package version tracker's data.
+ *
+ * @param array $package_versions The package version array.
+ *
+ * @return array The packge version array.
+ */
+ public static function send_package_version_to_tracker( $package_versions ) {
+ $package_versions[ self::PACKAGE_SLUG ] = self::PACKAGE_VERSION;
+ return $package_versions;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php
new file mode 100644
index 00000000..8bf1884f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php
@@ -0,0 +1,269 @@
+<?php
+/**
+ * Storage for plugin connection information.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use WP_Error;
+
+/**
+ * The class serves a single purpose - to store the data which plugins use the connection, along with some auxiliary information.
+ */
+class Plugin_Storage {
+
+ const ACTIVE_PLUGINS_OPTION_NAME = 'jetpack_connection_active_plugins';
+
+ const PLUGINS_DISABLED_OPTION_NAME = 'jetpack_connection_disabled_plugins';
+
+ /**
+ * Whether this class was configured for the first time or not.
+ *
+ * @var boolean
+ */
+ private static $configured = false;
+
+ /**
+ * Refresh list of connected plugins upon intialization.
+ *
+ * @var boolean
+ */
+ private static $refresh_connected_plugins = false;
+
+ /**
+ * Connected plugins.
+ *
+ * @var array
+ */
+ private static $plugins = array();
+
+ /**
+ * The blog ID the storage is setup for.
+ * The data will be refreshed if the blog ID changes.
+ * Used for the multisite networks.
+ *
+ * @var int
+ */
+ private static $current_blog_id = null;
+
+ /**
+ * Add or update the plugin information in the storage.
+ *
+ * @param string $slug Plugin slug.
+ * @param array $args Plugin arguments, optional.
+ *
+ * @return bool
+ */
+ public static function upsert( $slug, array $args = array() ) {
+ self::$plugins[ $slug ] = $args;
+
+ // if plugin is not in the list of active plugins, refresh the list.
+ if ( ! array_key_exists( $slug, (array) get_option( self::ACTIVE_PLUGINS_OPTION_NAME, array() ) ) ) {
+ self::$refresh_connected_plugins = true;
+ }
+
+ return true;
+ }
+
+ /**
+ * Retrieve the plugin information by slug.
+ * 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.
+ *
+ * @param string $slug The plugin slug.
+ *
+ * @return array|null|WP_Error
+ */
+ public static function get_one( $slug ) {
+ $plugins = self::get_all();
+
+ if ( $plugins instanceof WP_Error ) {
+ return $plugins;
+ }
+
+ return empty( $plugins[ $slug ] ) ? null : $plugins[ $slug ];
+ }
+
+ /**
+ * Retrieve info for all plugins that use the connection.
+ * 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.
+ *
+ * @param bool $connected_only Exclude plugins that were explicitly disconnected.
+ *
+ * @return array|WP_Error
+ */
+ public static function get_all( $connected_only = false ) {
+ $maybe_error = self::ensure_configured();
+
+ if ( $maybe_error instanceof WP_Error ) {
+ return $maybe_error;
+ }
+
+ return $connected_only ? array_diff_key( self::$plugins, array_flip( self::get_all_disabled_plugins() ) ) : self::$plugins;
+ }
+
+ /**
+ * Remove the plugin connection info from Jetpack.
+ * 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.
+ *
+ * @param string $slug The plugin slug.
+ *
+ * @return bool|WP_Error
+ */
+ public static function delete( $slug ) {
+ $maybe_error = self::ensure_configured();
+
+ if ( $maybe_error instanceof WP_Error ) {
+ return $maybe_error;
+ }
+
+ if ( array_key_exists( $slug, self::$plugins ) ) {
+ unset( self::$plugins[ $slug ] );
+ }
+
+ return true;
+ }
+
+ /**
+ * The method makes sure that `Jetpack\Config` has finished, and it's now safe to retrieve the list of plugins.
+ *
+ * @return bool|WP_Error
+ */
+ private static function ensure_configured() {
+ if ( ! self::$configured ) {
+ return new WP_Error( 'too_early', __( 'You cannot call this method until Jetpack Config is configured', 'jetpack-connection' ) );
+ }
+
+ if ( is_multisite() && get_current_blog_id() !== self::$current_blog_id ) {
+ self::$plugins = (array) get_option( self::ACTIVE_PLUGINS_OPTION_NAME, array() );
+ self::$current_blog_id = get_current_blog_id();
+ }
+
+ return true;
+ }
+
+ /**
+ * Called once to configure this class after plugins_loaded.
+ *
+ * @return void
+ */
+ public static function configure() {
+ if ( self::$configured ) {
+ return;
+ }
+
+ if ( is_multisite() ) {
+ self::$current_blog_id = get_current_blog_id();
+ }
+
+ // If a plugin was activated or deactivated.
+ $number_of_plugins_differ = count( self::$plugins ) !== count( (array) get_option( self::ACTIVE_PLUGINS_OPTION_NAME, array() ) );
+
+ if ( $number_of_plugins_differ || true === self::$refresh_connected_plugins ) {
+ self::update_active_plugins_option();
+ }
+
+ self::$configured = true;
+
+ }
+
+ /**
+ * Updates the active plugins option with current list of active plugins.
+ *
+ * @return void
+ */
+ public static function update_active_plugins_option() {
+ // Note: Since this options is synced to wpcom, if you change its structure, you have to update the sanitizer at wpcom side.
+ update_option( self::ACTIVE_PLUGINS_OPTION_NAME, self::$plugins );
+
+ if ( ! class_exists( 'Automattic\Jetpack\Sync\Settings' ) || ! \Automattic\Jetpack\Sync\Settings::is_sync_enabled() ) {
+ self::update_active_plugins_wpcom_no_sync_fallback();
+ }
+ }
+
+ /**
+ * Add the plugin to the set of disconnected ones.
+ *
+ * @param string $slug Plugin slug.
+ *
+ * @return bool
+ */
+ public static function disable_plugin( $slug ) {
+ $disconnects = self::get_all_disabled_plugins();
+
+ if ( ! in_array( $slug, $disconnects, true ) ) {
+ $disconnects[] = $slug;
+ update_option( self::PLUGINS_DISABLED_OPTION_NAME, $disconnects );
+ }
+
+ return true;
+ }
+
+ /**
+ * Remove the plugin from the set of disconnected ones.
+ *
+ * @param string $slug Plugin slug.
+ *
+ * @return bool
+ */
+ public static function enable_plugin( $slug ) {
+ $disconnects = self::get_all_disabled_plugins();
+
+ $slug_index = array_search( $slug, $disconnects, true );
+ if ( false !== $slug_index ) {
+ unset( $disconnects[ $slug_index ] );
+ update_option( self::PLUGINS_DISABLED_OPTION_NAME, $disconnects );
+ }
+
+ return true;
+ }
+
+ /**
+ * Get all plugins that were disconnected by user.
+ *
+ * @return array
+ */
+ public static function get_all_disabled_plugins() {
+ return (array) get_option( self::PLUGINS_DISABLED_OPTION_NAME, array() );
+ }
+
+ /**
+ * Update active plugins option with current list of active plugins on WPCOM.
+ * This is a fallback to ensure this option is always up to date on WPCOM in case
+ * Sync is not present or disabled.
+ *
+ * @since $$next_version$$
+ */
+ private static function update_active_plugins_wpcom_no_sync_fallback() {
+ $connection = new Manager();
+ if ( ! $connection->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php
new file mode 100644
index 00000000..92914350
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php
@@ -0,0 +1,118 @@
+<?php
+/**
+ * Plugin connection management class.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * Plugin connection management class.
+ * The class represents a single plugin that uses Jetpack connection.
+ * Its functionality has been pretty simplistic so far: add to the storage (`Plugin_Storage`), remove it from there,
+ * and determine whether it's the last active connection. As the component grows, there'll be more functionality added.
+ */
+class Plugin {
+
+ /**
+ * List of the keys allowed as arguments
+ *
+ * @var array
+ */
+ private $arguments_whitelist = array(
+ 'url_info',
+ );
+
+ /**
+ * Plugin slug.
+ *
+ * @var string
+ */
+ private $slug;
+
+ /**
+ * Initialize the plugin manager.
+ *
+ * @param string $slug Plugin slug.
+ */
+ public function __construct( $slug ) {
+ $this->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( true );
+
+ return ! $plugins || ( array_key_exists( $this->slug, $plugins ) && 1 === count( $plugins ) );
+ }
+
+ /**
+ * Add the plugin to the set of disconnected ones.
+ *
+ * @return bool
+ */
+ public function disable() {
+ return Plugin_Storage::disable_plugin( $this->slug );
+ }
+
+ /**
+ * Remove the plugin from the set of disconnected ones.
+ *
+ * @return bool
+ */
+ public function enable() {
+ return Plugin_Storage::enable_plugin( $this->slug );
+ }
+
+ /**
+ * Whether this plugin is allowed to use the connection.
+ *
+ * @return bool
+ */
+ public function is_enabled() {
+ return ! in_array( $this->slug, Plugin_Storage::get_all_disabled_plugins(), true );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php
new file mode 100644
index 00000000..c5a89f53
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php
@@ -0,0 +1,220 @@
+<?php
+/**
+ * The Jetpack Connection Rest Authentication file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * The Jetpack Connection Rest Authentication class.
+ */
+class Rest_Authentication {
+
+ /**
+ * The rest authentication status.
+ *
+ * @since 1.17.0
+ * @var boolean
+ */
+ private $rest_authentication_status = null;
+
+ /**
+ * The rest authentication type.
+ * Can be either 'user' or 'blog' depending on whether the request
+ * is signed with a user or a blog token.
+ *
+ * @since 1.29.0
+ * @var string
+ */
+ private $rest_authentication_type = null;
+
+ /**
+ * The Manager object.
+ *
+ * @since 1.17.0
+ * @var Object
+ */
+ private $connection_manager = null;
+
+ /**
+ * Holds the singleton instance of this class
+ *
+ * @since 1.17.0
+ * @var Object
+ */
+ private static $instance = false;
+
+ /**
+ * Flag used to avoid determine_current_user filter to enter an infinite loop
+ *
+ * @since 1.26.0
+ * @var boolean
+ */
+ private $doing_determine_current_user_filter = false;
+
+ /**
+ * The constructor.
+ */
+ private function __construct() {
+ $this->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php
new file mode 100644
index 00000000..c327d7df
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php
@@ -0,0 +1,860 @@
+<?php
+/**
+ * Sets up the Connection REST API endpoints.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status;
+use Jetpack_XMLRPC_Server;
+use WP_Error;
+use WP_REST_Request;
+use WP_REST_Response;
+use WP_REST_Server;
+
+/**
+ * Registers the REST routes for Connections.
+ */
+class REST_Connector {
+ /**
+ * The Connection Manager.
+ *
+ * @var Manager
+ */
+ private $connection;
+
+ /**
+ * This property stores the localized "Insufficient Permissions" error message.
+ *
+ * @var string Generic error message when user is not allowed to perform an action.
+ */
+ private static $user_permissions_error_msg;
+
+ const JETPACK__DEBUGGER_PUBLIC_KEY = "\r\n" . '-----BEGIN PUBLIC KEY-----' . "\r\n"
+ . 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm+uLLVoxGCY71LS6KFc6' . "\r\n"
+ . '1UnF6QGBAsi5XF8ty9kR3/voqfOkpW+gRerM2Kyjy6DPCOmzhZj7BFGtxSV2ZoMX' . "\r\n"
+ . '9ZwWxzXhl/Q/6k8jg8BoY1QL6L2K76icXJu80b+RDIqvOfJruaAeBg1Q9NyeYqLY' . "\r\n"
+ . 'lEVzN2vIwcFYl+MrP/g6Bc2co7Jcbli+tpNIxg4Z+Hnhbs7OJ3STQLmEryLpAxQO' . "\r\n"
+ . 'q8cbhQkMx+FyQhxzSwtXYI/ClCUmTnzcKk7SgGvEjoKGAmngILiVuEJ4bm7Q1yok' . "\r\n"
+ . 'xl9+wcfW6JAituNhml9dlHCWnn9D3+j8pxStHihKy2gVMwiFRjLEeD8K/7JVGkb/' . "\r\n"
+ . 'EwIDAQAB' . "\r\n"
+ . '-----END PUBLIC KEY-----' . "\r\n";
+
+ /**
+ * Constructor.
+ *
+ * @param Manager $connection The Connection Manager.
+ */
+ public function __construct( Manager $connection ) {
+ $this->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',
+ )
+ );
+
+ // 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( $this, '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,
+ ),
+ 'no_iframe' => array(
+ 'description' => __( 'Disable In-Place connection flow and go straight to Calypso', 'jetpack-connection' ),
+ 'type' => 'boolean',
+ ),
+ '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(
+ 'no_iframe' => array(
+ 'description' => __( 'Disable In-Place connection flow and go straight to Calypso', 'jetpack-connection' ),
+ 'type' => 'boolean',
+ ),
+ '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;
+ }
+
+ /**
+ * 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->is_active(), // TODO deprecate this.
+ 'isStaging' => $status->is_staging_site(),
+ '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 WordPress.PHP.StrictComparisons.LooseComparison
+ );
+
+ /**
+ * 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.
+ *
+ * @since 1.13.1
+ *
+ * @return WP_REST_Response|WP_Error Response or error object, depending on the request result.
+ */
+ public function get_connection_plugins() {
+ $plugins = $this->connection->get_connected_plugins();
+
+ if ( is_wp_error( $plugins ) ) {
+ return $plugins;
+ }
+
+ array_walk(
+ $plugins,
+ function ( &$data, $slug ) {
+ $data['slug'] = $slug;
+ }
+ );
+
+ return rest_ensure_response( 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.
+ *
+ * @since 1.30.1
+ *
+ * @return \WP_REST_Response
+ */
+ public static function get_user_connection_data() {
+ $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,
+ '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,
+ );
+ return rest_ensure_response( $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'], $_GET['timestamp'], $_GET['url'], $_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( $_GET['signature'] ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+
+ $signature_data = wp_json_encode(
+ array(
+ 'rest_route' => $_GET['rest_route'],
+ 'timestamp' => (int) $_GET['timestamp'],
+ 'url' => 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;
+
+ if ( class_exists( 'Jetpack' ) ) {
+ $authorize_url = \Jetpack::build_authorize_url( $redirect_uri, ! $request->get_param( 'no_iframe' ) );
+ } else {
+ if ( ! $request->get_param( 'no_iframe' ) ) {
+ add_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
+ }
+
+ $authorize_url = $this->connection->get_authorization_url( null, $redirect_uri );
+
+ if ( ! $request->get_param( 'no_iframe' ) ) {
+ remove_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
+ }
+ }
+
+ /**
+ * 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;
+
+ if ( ! $request->get_param( 'no_iframe' ) ) {
+ add_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
+ }
+
+ $authorize_url = $this->connection->get_authorization_url( null, $redirect_uri );
+
+ if ( ! $request->get_param( 'no_iframe' ) ) {
+ remove_filter( 'jetpack_use_iframe_authorization_flow', '__return_true' );
+ }
+
+ 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() ) );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php
new file mode 100644
index 00000000..f91acb43
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php
@@ -0,0 +1,281 @@
+<?php
+/**
+ * The Jetpack Connection Secrets class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * The Jetpack Connection Secrets class that is used to manage secrets.
+ */
+class Secrets {
+
+ const SECRETS_MISSING = 'secrets_missing';
+ const SECRETS_EXPIRED = 'secrets_expired';
+ const LEGACY_SECRETS_OPTION_NAME = 'jetpack_secrets';
+
+ /**
+ * Deletes all connection secrets from the local Jetpack site.
+ */
+ public function delete_all() {
+ Jetpack_Options::delete_raw_option( 'jetpack_secrets' );
+ }
+
+ /**
+ * Runs the wp_generate_password function with the required parameters. This is the
+ * default implementation of the secret callable, can be overridden using the
+ * jetpack_connection_secret_generator filter.
+ *
+ * @return String $secret value.
+ */
+ private function secret_callable_method() {
+ $secret = wp_generate_password( 32, false );
+
+ // Some sites may hook into the random_password filter and make the password shorter, let's make sure our secret has the required length.
+ $attempts = 1;
+ $secret_length = strlen( $secret );
+ while ( $secret_length < 32 && $attempts < 32 ) {
+ $attempts++;
+ $secret .= wp_generate_password( 32, false );
+ $secret_length = strlen( $secret );
+ }
+ return (string) substr( $secret, 0, 32 );
+ }
+
+ /**
+ * Generates two secret tokens and the end of life timestamp for them.
+ *
+ * @param String $action The action name.
+ * @param Integer|bool $user_id The user identifier. Defaults to `false`.
+ * @param Integer $exp Expiration time in seconds.
+ */
+ public function generate( $action, $user_id = false, $exp = 600 ) {
+ if ( false === $user_id ) {
+ $user_id = get_current_user_id();
+ }
+
+ $callable = apply_filters( 'jetpack_connection_secret_generator', array( get_called_class(), 'secret_callable_method' ) );
+
+ $secrets = Jetpack_Options::get_raw_option(
+ self::LEGACY_SECRETS_OPTION_NAME,
+ array()
+ );
+
+ $secret_name = 'jetpack_' . $action . '_' . $user_id;
+
+ if (
+ isset( $secrets[ $secret_name ] ) &&
+ $secrets[ $secret_name ]['exp'] > 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 );
+
+ $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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php
new file mode 100644
index 00000000..619194ad
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php
@@ -0,0 +1,132 @@
+<?php
+/**
+ * The Server_Sandbox class.
+ *
+ * This feature is only useful for Automattic developers.
+ * It configures Jetpack to talk to staging/sandbox servers
+ * on WordPress.com instead of production servers.
+ *
+ * @package automattic/jetpack-sandbox
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * The Server_Sandbox class.
+ */
+class Server_Sandbox {
+
+ /**
+ * Sets up the action hooks for the server sandbox.
+ */
+ public function init() {
+ if ( did_action( 'jetpack_server_sandbox_init' ) ) {
+ return;
+ }
+
+ add_action( 'requests-requests.before_request', array( $this, 'server_sandbox' ), 10, 2 );
+ add_action( 'admin_bar_menu', array( $this, 'admin_bar_add_sandbox_item' ), 999 );
+
+ /**
+ * Fires when the server sandbox is initialized. This action is used to ensure that
+ * the server sandbox action hooks are set up only once.
+ *
+ * @since $$next_version$$
+ */
+ do_action( 'jetpack_server_sandbox_init' );
+ }
+
+ /**
+ * Returns the new url and host values.
+ *
+ * @param string $sandbox Sandbox domain.
+ * @param string $url URL of request about to be made.
+ * @param array $headers Headers of request about to be made.
+ *
+ * @return array [ 'url' => new URL, 'host' => new Host ]
+ */
+ public function server_sandbox_request_parameters( $sandbox, $url, $headers ) {
+ $host = '';
+
+ if ( ! is_string( $sandbox ) || ! is_string( $url ) ) {
+ return array(
+ 'url' => $url,
+ 'host' => $host,
+ );
+ }
+
+ $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;
+ $url = preg_replace(
+ '@^(https?://)' . preg_quote( $url_host, '@' ) . '(?=[/?#].*|$)@',
+ '${1}' . $sandbox,
+ $url,
+ 1
+ );
+ }
+
+ return compact( 'url', 'host' );
+ }
+
+ /**
+ * 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.
+ * @return void
+ */
+ public function server_sandbox( &$url, &$headers ) {
+ 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 );
+
+ $url = $request_parameters['url'];
+
+ if ( $request_parameters['host'] ) {
+ $headers['Host'] = $request_parameters['host'];
+
+ 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php
new file mode 100644
index 00000000..38fb58d4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php
@@ -0,0 +1,595 @@
+<?php
+/**
+ * The Jetpack Connection Tokens class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Roles;
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * The Jetpack Connection Tokens class that manages tokens.
+ */
+class Tokens {
+
+ const MAGIC_NORMAL_TOKEN_KEY = ';normal;';
+
+ /**
+ * Deletes all connection tokens and transients from the local Jetpack site.
+ */
+ public function delete_all() {
+ Jetpack_Options::delete_option(
+ array(
+ 'blog_token',
+ 'user_token',
+ 'user_tokens',
+ )
+ );
+ }
+
+ /**
+ * 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
+ */
+ public function get_access_token( $user_id = false, $token_key = false, $suppress_errors = true ) {
+ $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 Integer $user_id the user identifier.
+ * @param bool $can_overwrite_primary_user Allow for the primary user to be disconnected.
+ * @return Boolean Whether the disconnection of the user was successful.
+ */
+ public function disconnect_user( $user_id, $can_overwrite_primary_user = false ) {
+ $tokens = $this->get_user_tokens();
+ if ( ! $tokens ) {
+ return false;
+ }
+
+ if ( Jetpack_Options::get_option( 'master_user' ) === $user_id && ! $can_overwrite_primary_user ) {
+ 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 = join(
+ "\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 join( ' ', $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 );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php
new file mode 100644
index 00000000..f9a29176
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php
@@ -0,0 +1,187 @@
+<?php
+/**
+ * The Jetpack Connection package Urls class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * Provides Url methods for the Connection package.
+ */
+class Urls {
+
+ const HTTPS_CHECK_OPTION_PREFIX = 'jetpack_sync_https_history_';
+ const HTTPS_CHECK_HISTORY = 5;
+
+ /**
+ * Return URL from option or PHP constant.
+ *
+ * @param string $option_name (e.g. 'home').
+ *
+ * @return mixed|null URL.
+ */
+ public static function get_raw_url( $option_name ) {
+ $value = null;
+ $constant = ( 'home' === $option_name )
+ ? 'WP_HOME'
+ : 'WP_SITEURL';
+
+ // Since we disregard the constant for multisites in ms-default-filters.php,
+ // let's also use the db value if this is a multisite.
+ if ( ! is_multisite() && Constants::is_defined( $constant ) ) {
+ $value = Constants::get_constant( $constant );
+ } else {
+ // Let's get the option from the database so that we can bypass filters. This will help
+ // ensure that we get more uniform values.
+ $value = \Jetpack_Options::get_raw_option( $option_name );
+ }
+
+ return $value;
+ }
+
+ /**
+ * Normalize domains by removing www unless declared in the site's option.
+ *
+ * @param string $option Option value from the site.
+ * @param callable $url_function Function retrieving the URL to normalize.
+ * @return mixed|string URL.
+ */
+ public static function normalize_www_in_url( $option, $url_function ) {
+ $url = wp_parse_url( call_user_func( $url_function ) );
+ $option_url = wp_parse_url( get_option( $option ) );
+
+ if ( ! $option_url || ! $url ) {
+ return $url;
+ }
+
+ if ( "www.{$option_url[ 'host' ]}" === $url['host'] ) {
+ // remove www if not present in option URL.
+ $url['host'] = $option_url['host'];
+ }
+ if ( "www.{$url[ 'host' ]}" === $option_url['host'] ) {
+ // add www if present in option URL.
+ $url['host'] = $option_url['host'];
+ }
+
+ $normalized_url = "{$url['scheme']}://{$url['host']}";
+ if ( isset( $url['path'] ) ) {
+ $normalized_url .= "{$url['path']}";
+ }
+
+ if ( isset( $url['query'] ) ) {
+ $normalized_url .= "?{$url['query']}";
+ }
+
+ return $normalized_url;
+ }
+
+ /**
+ * Return URL with a normalized protocol.
+ *
+ * @param callable $callable Function to retrieve URL option.
+ * @param string $new_value URL Protocol to set URLs to.
+ * @return string Normalized URL.
+ */
+ public static function get_protocol_normalized_url( $callable, $new_value ) {
+ $option_key = self::HTTPS_CHECK_OPTION_PREFIX . $callable;
+
+ $parsed_url = wp_parse_url( $new_value );
+ if ( ! $parsed_url ) {
+ return $new_value;
+ }
+ if ( array_key_exists( 'scheme', $parsed_url ) ) {
+ $scheme = $parsed_url['scheme'];
+ } else {
+ $scheme = '';
+ }
+ $scheme_history = get_option( $option_key, array() );
+ $scheme_history[] = $scheme;
+
+ // Limit length to self::HTTPS_CHECK_HISTORY.
+ $scheme_history = array_slice( $scheme_history, ( self::HTTPS_CHECK_HISTORY * -1 ) );
+
+ update_option( $option_key, $scheme_history );
+
+ $forced_scheme = in_array( 'https', $scheme_history, true ) ? 'https' : 'http';
+
+ return set_url_scheme( $new_value, $forced_scheme );
+ }
+
+ /**
+ * Helper function that is used when getting home or siteurl values. Decides
+ * whether to get the raw or filtered value.
+ *
+ * @param string $url_type URL to get, home or siteurl.
+ * @return string
+ */
+ public static function get_raw_or_filtered_url( $url_type ) {
+ $url_function = ( 'home' === $url_type )
+ ? 'home_url'
+ : 'site_url';
+
+ if (
+ ! Constants::is_defined( 'JETPACK_SYNC_USE_RAW_URL' ) ||
+ Constants::get_constant( 'JETPACK_SYNC_USE_RAW_URL' )
+ ) {
+ $scheme = is_ssl() ? 'https' : 'http';
+ $url = self::get_raw_url( $url_type );
+ $url = set_url_scheme( $url, $scheme );
+ } else {
+ $url = self::normalize_www_in_url( $url_type, $url_function );
+ }
+
+ return self::get_protocol_normalized_url( $url_function, $url );
+ }
+
+ /**
+ * Return the escaped home_url.
+ *
+ * @return string
+ */
+ public static function home_url() {
+ $url = self::get_raw_or_filtered_url( 'home' );
+
+ /**
+ * Allows overriding of the home_url value that is synced back to WordPress.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.2.0
+ *
+ * @param string $home_url
+ */
+ return esc_url_raw( apply_filters( 'jetpack_sync_home_url', $url ) );
+ }
+
+ /**
+ * Return the escaped siteurl.
+ *
+ * @return string
+ */
+ public static function site_url() {
+ $url = self::get_raw_or_filtered_url( 'siteurl' );
+
+ /**
+ * Allows overriding of the site_url value that is synced back to WordPress.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.2.0
+ *
+ * @param string $site_url
+ */
+ return esc_url_raw( apply_filters( 'jetpack_sync_site_url', $url ) );
+ }
+
+ /**
+ * Return main site URL with a normalized protocol.
+ *
+ * @return string
+ */
+ public static function main_network_site_url() {
+ return self::get_protocol_normalized_url( 'main_network_site_url', network_site_url() );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php
new file mode 100644
index 00000000..f8bd065b
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ * The Jetpack Connection package Utils class file.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Tracking;
+
+/**
+ * Provides utility methods for the Connection package.
+ */
+class Utils {
+
+ const DEFAULT_JETPACK__API_VERSION = 1;
+ const DEFAULT_JETPACK__API_BASE = 'https://jetpack.wordpress.com/jetpack.';
+ const DEFAULT_JETPACK__WPCOM_JSON_API_BASE = 'https://public-api.wordpress.com';
+
+ /**
+ * Enters a user token into the user_tokens option
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Tokens->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 ( ! is_null( $constant_value ) ) {
+ // 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'],
+ )
+ );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php
new file mode 100644
index 00000000..72225d19
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php
@@ -0,0 +1,127 @@
+<?php
+/**
+ * Connection Webhooks class.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Automattic\Jetpack\Roles;
+use Automattic\Jetpack\Tracking;
+use Jetpack_Options;
+
+/**
+ * Connection Webhooks class.
+ */
+class Webhooks {
+
+ /**
+ * The Connection Manager object.
+ *
+ * @var Manager
+ */
+ private $connection;
+
+ /**
+ * Webhooks constructor.
+ *
+ * @param Manager $connection The Connection Manager object.
+ */
+ public function __construct( $connection ) {
+ $this->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' ) );
+ }
+
+ /**
+ * The "controller" decides which handler we need to run.
+ */
+ public function controller() {
+ // The nonce is verified in specific handlers.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( empty( $_GET['handler'] ) || empty( $_GET['action'] ) || 'jetpack-connection-webhooks' !== $_GET['handler'] ) {
+ return;
+ }
+
+ // The nonce is verified in specific handlers.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ switch ( $_GET['action'] ) {
+ case 'authorize':
+ $this->handle_authorize();
+ break;
+ }
+
+ $this->do_exit();
+ }
+
+ /**
+ * 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 );
+ $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 `exit` is wrapped into a method so we could mock it.
+ */
+ protected function do_exit() {
+ exit;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php
new file mode 100644
index 00000000..f27090c9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php
@@ -0,0 +1,105 @@
+<?php
+/**
+ * XMLRPC Async Call class.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+use Jetpack_IXR_ClientMulticall;
+
+/**
+ * Make XMLRPC async calls to WordPress.com
+ *
+ * This class allows you to enqueue XMLRPC calls that will be grouped and sent
+ * at once in a multi-call request at shutdown.
+ *
+ * Usage:
+ *
+ * XMLRPC_Async_Call::add_call( 'methodName', get_current_user_id(), $arg1, $arg2, etc... )
+ *
+ * See XMLRPC_Async_Call::add_call for details
+ */
+class XMLRPC_Async_Call {
+
+ /**
+ * Hold the IXR Clients that will be dispatched at shutdown
+ *
+ * Clients are stored in the following schema:
+ * [
+ * $blog_id => [
+ * $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 ) );
+ }
+
+ 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, true );
+
+ 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php
new file mode 100644
index 00000000..c3d786d8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * Sets up the Connection XML-RPC methods.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * Registers the XML-RPC methods for Connections.
+ */
+class XMLRPC_Connector {
+ /**
+ * The Connection Manager.
+ *
+ * @var Manager
+ */
+ private $connection;
+
+ /**
+ * Constructor.
+ *
+ * @param Manager $connection The Connection Manager.
+ */
+ public function __construct( Manager $connection ) {
+ $this->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php
new file mode 100644
index 00000000..804f3848
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php
@@ -0,0 +1,17 @@
+<?php
+/**
+ * The Jetpack Connection Interface file.
+ * No longer used.
+ *
+ * @package automattic/jetpack-connection
+ */
+
+namespace Automattic\Jetpack\Connection;
+
+/**
+ * This interface is no longer used and is now deprecated.
+ *
+ * @deprecated since jetpack 7.8
+ */
+interface Manager_Interface {
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md
new file mode 100644
index 00000000..c4b42f45
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md
@@ -0,0 +1,144 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php
new file mode 100644
index 00000000..eaad50be
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php
@@ -0,0 +1,124 @@
+<?php
+/**
+ * A constants manager for Jetpack.
+ *
+ * @package automattic/jetpack-constants
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Automattic\Jetpack\Constants
+ *
+ * Testing constants is hard. Once you define a constant, it's defined. Constants Manager is an
+ * abstraction layer so that unit tests can set "constants" for tests.
+ *
+ * To test your code, you'll need to swap out `defined( 'CONSTANT' )` with `Automattic\Jetpack\Constants::is_defined( 'CONSTANT' )`
+ * and replace `CONSTANT` with `Automattic\Jetpack\Constants::get_constant( 'CONSTANT' )`. Then in the unit test, you can set the
+ * constant with `Automattic\Jetpack\Constants::set_constant( 'CONSTANT', $value )` and then clean up after each test with something like
+ * this:
+ *
+ * function tearDown() {
+ * Automattic\Jetpack\Constants::clear_constants();
+ * }
+ */
+class Constants {
+ /**
+ * A container for all defined constants.
+ *
+ * @access public
+ * @static
+ *
+ * @var array.
+ */
+ public static $set_constants = array();
+
+ /**
+ * Checks if a "constant" has been set in constants Manager
+ * and has a truthy value (e.g. not null, not false, not 0, any string).
+ *
+ * @param string $name The name of the constant.
+ *
+ * @return bool
+ */
+ public static function is_true( $name ) {
+ return self::is_defined( $name ) && self::get_constant( $name );
+ }
+
+ /**
+ * Checks if a "constant" has been set in constants Manager, and if not,
+ * checks if the constant was defined with define( 'name', 'value ).
+ *
+ * @param string $name The name of the constant.
+ *
+ * @return bool
+ */
+ public static function is_defined( $name ) {
+ return array_key_exists( $name, self::$set_constants )
+ ? true
+ : defined( $name );
+ }
+
+ /**
+ * Attempts to retrieve the "constant" from constants Manager, and if it hasn't been set,
+ * then attempts to get the constant with the constant() function. If that also hasn't
+ * been set, attempts to get a value from filters.
+ *
+ * @param string $name The name of the constant.
+ *
+ * @return mixed null if the constant does not exist or the value of the constant.
+ */
+ public static function get_constant( $name ) {
+ if ( array_key_exists( $name, self::$set_constants ) ) {
+ return self::$set_constants[ $name ];
+ }
+
+ if ( defined( $name ) ) {
+ return constant( $name );
+ }
+
+ /**
+ * Filters the value of the constant.
+ *
+ * @since 1.2.0
+ *
+ * @param null The constant value to be filtered. The default is null.
+ * @param String $name The constant name.
+ */
+ return apply_filters( 'jetpack_constant_default_value', null, $name );
+ }
+
+ /**
+ * Sets the value of the "constant" within constants Manager.
+ *
+ * @param string $name The name of the constant.
+ * @param string $value The value of the constant.
+ */
+ public static function set_constant( $name, $value ) {
+ self::$set_constants[ $name ] = $value;
+ }
+
+ /**
+ * Will unset a "constant" from constants Manager if the constant exists.
+ *
+ * @param string $name The name of the constant.
+ *
+ * @return bool Whether the constant was removed.
+ */
+ public static function clear_single_constant( $name ) {
+ if ( ! array_key_exists( $name, self::$set_constants ) ) {
+ return false;
+ }
+
+ unset( self::$set_constants[ $name ] );
+
+ return true;
+ }
+
+ /**
+ * Resets all of the constants within constants Manager.
+ */
+ public static function clear_constants() {
+ self::$set_constants = array();
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/CHANGELOG.md
new file mode 100644
index 00000000..7330dced
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/CHANGELOG.md
@@ -0,0 +1,116 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php
new file mode 100644
index 00000000..6760c4ef
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php
@@ -0,0 +1,211 @@
+<?php
+/**
+ * Device detection for Jetpack.
+ *
+ * @package automattic/jetpack-device-detection
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+
+/**
+ * Class Device_Detection
+ *
+ * Determine if the current User Agent matches the passed $kind.
+ */
+class Device_Detection {
+
+ /**
+ * Returns information about the current device accessing the page.
+ *
+ * @param string $ua (Optional) User-Agent string.
+ *
+ * @return array Device information.
+ *
+ * array(
+ * 'is_phone' => (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(),
+ );
+
+ $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'] ) || strpos( strtolower( $_SERVER['HTTP_USER_AGENT'] ), 'ipad' ) ) {
+ return false;
+ }
+
+ // Remove Samsung Galaxy tablets (SCH-I800) from being mobile devices.
+ if ( strpos( strtolower( $_SERVER['HTTP_USER_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;
+ $agent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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' ) ) ) {
+ $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/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php
new file mode 100644
index 00000000..e8d2f20a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php
@@ -0,0 +1,1579 @@
+<?php
+/**
+ * User agent detection for Jetpack.
+ *
+ * @package automattic/jetpack-device-detection
+ *
+ * We don't want to rename public members.
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidVariableName.PropertyNotSnakeCase
+ * @phpcs:disable WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
+ */
+
+namespace Automattic\Jetpack\Device_Detection;
+
+/**
+ * A class providing device properties detection.
+ */
+class User_Agent_Info {
+
+ /**
+ * Provided or fetched User-Agent string.
+ *
+ * @var string
+ */
+ public $useragent;
+
+ /**
+ * A device group matched user agent, e.g. 'iphone'.
+ *
+ * @var string
+ */
+ public $matched_agent;
+
+ /**
+ * Stores whether is the iPhone tier of devices.
+ *
+ * @var bool
+ */
+ public $isTierIphone;
+
+ /**
+ * Stores whether the device can probably support Rich CSS, but JavaScript (jQuery) support is not assumed.
+ *
+ * @var bool
+ */
+ public $isTierRichCss;
+
+ /**
+ * Stores whether it is another mobile device, which cannot be assumed to support CSS or JS (eg, older BlackBerry, RAZR)
+ *
+ * @var bool
+ */
+ public $isTierGenericMobile;
+
+ /**
+ * Stores the device platform name
+ *
+ * @var null|string
+ */
+ private $platform = null;
+ const PLATFORM_WINDOWS = 'windows';
+ const PLATFORM_IPHONE = 'iphone';
+ const PLATFORM_IPOD = 'ipod';
+ const PLATFORM_IPAD = 'ipad';
+ const PLATFORM_BLACKBERRY = 'blackberry';
+ const PLATFORM_BLACKBERRY_10 = 'blackberry_10';
+ const PLATFORM_SYMBIAN = 'symbian_series60';
+ const PLATFORM_SYMBIAN_S40 = 'symbian_series40';
+ const PLATFORM_J2ME_MIDP = 'j2me_midp';
+ const PLATFORM_ANDROID = 'android';
+ const PLATFORM_ANDROID_TABLET = 'android_tablet';
+ const PLATFORM_FIREFOX_OS = 'firefoxOS';
+
+ /**
+ * A list of dumb-phone user agent parts.
+ *
+ * @var array
+ */
+ public $dumb_agents = array(
+ 'nokia',
+ 'blackberry',
+ 'philips',
+ 'samsung',
+ 'sanyo',
+ 'sony',
+ 'panasonic',
+ 'webos',
+ 'ericsson',
+ 'alcatel',
+ 'palm',
+ 'windows ce',
+ 'opera mini',
+ 'series60',
+ 'series40',
+ 'au-mic,',
+ 'audiovox',
+ 'avantgo',
+ 'blazer',
+ 'danger',
+ 'docomo',
+ 'epoc',
+ 'ericy',
+ 'i-mode',
+ 'ipaq',
+ 'midp-',
+ 'mot-',
+ 'netfront',
+ 'nitro',
+ 'palmsource',
+ 'pocketpc',
+ 'portalmmm',
+ 'rover',
+ 'sie-',
+ 'symbian',
+ 'cldc-',
+ 'j2me',
+ 'smartphone',
+ 'up.browser',
+ 'up.link',
+ 'up.link',
+ 'vodafone/',
+ 'wap1.',
+ 'wap2.',
+ 'mobile',
+ 'googlebot-mobile',
+ );
+
+ /**
+ * The constructor.
+ *
+ * @param string $ua (Optional) User agent.
+ */
+ public function __construct( $ua = '' ) {
+ if ( $ua ) {
+ $this->useragent = $ua;
+ } else {
+ if ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ $this->useragent = strtolower( $_SERVER['HTTP_USER_AGENT'] );
+ }
+ }
+ }
+
+ /**
+ * 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 ( $this->is_chrome_for_iOS() ) { // Keep this check before the safari rule.
+ return 'chrome-for-ios';
+ } elseif ( $this->is_iphone_or_ipod( 'iphone-safari' ) ) {
+ return 'iphone';
+ } elseif ( $this->is_ipad( 'ipad-safari' ) ) {
+ return 'ipad';
+ } elseif ( $this->is_android_tablet() ) { // Keep this check before the android rule.
+ return 'android_tablet';
+ } elseif ( $this->is_android() ) {
+ return 'android';
+ } elseif ( $this->is_blackberry_10() ) {
+ return 'blackberry_10';
+ } elseif ( $this->is_blackbeberry() ) {
+ return 'blackberry';
+ } elseif ( $this->is_WindowsPhone7() ) {
+ return 'win7';
+ } elseif ( $this->is_windows_phone_8() ) {
+ return 'winphone8';
+ } elseif ( $this->is_opera_mini() ) {
+ return 'opera-mini';
+ } elseif ( $this->is_opera_mini_dumb() ) {
+ return 'opera-mini-dumb';
+ } elseif ( $this->is_opera_mobile() ) {
+ return 'opera-mobi';
+ } elseif ( $this->is_blackberry_tablet() ) {
+ return 'blackberry_tablet';
+ } elseif ( $this->is_kindle_fire() ) {
+ return 'kindle-fire';
+ } elseif ( $this->is_PalmWebOS() ) {
+ return 'webos';
+ } elseif ( $this->is_S60_OSSBrowser() ) {
+ return 'series60';
+ } elseif ( $this->is_firefox_os() ) {
+ return 'firefoxOS';
+ } elseif ( $this->is_firefox_mobile() ) {
+ return 'firefox_mobile';
+ } elseif ( $this->is_MaemoTablet() ) {
+ return 'maemo';
+ } elseif ( $this->is_MeeGo() ) {
+ return 'meego';
+ } elseif ( $this->is_TouchPad() ) {
+ return 'hp_tablet';
+ } elseif ( $this->is_facebook_for_iphone() ) {
+ return 'facebook-for-iphone';
+ } elseif ( $this->is_facebook_for_ipad() ) {
+ return 'facebook-for-ipad';
+ } elseif ( $this->is_twitter_for_iphone() ) {
+ return 'twitter-for-iphone';
+ } elseif ( $this->is_twitter_for_ipad() ) {
+ return 'twitter-for-ipad';
+ } elseif ( $this->is_wordpress_for_ios() ) {
+ return 'ios-app';
+ } elseif ( $this->is_iphone_or_ipod( 'iphone-not-safari' ) ) {
+ return 'iphone-unknown';
+ } elseif ( $this->is_ipad( 'ipad-not-safari' ) ) {
+ return 'ipad-unknown';
+ } elseif ( $this->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 Name of the platform, false otherwise.
+ */
+ public function get_platform() {
+ if ( isset( $this->platform ) ) {
+ return $this->platform;
+ }
+
+ 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 ( $this->is_android_tablet() ) {
+ $this->platform = self::PLATFORM_ANDROID_TABLET;
+ } else {
+ $this->platform = self::PLATFORM_ANDROID;
+ }
+ } elseif ( $this->is_kindle_fire() ) {
+ $this->platform = self::PLATFORM_ANDROID_TABLET;
+ } elseif ( $this->is_blackberry_10() ) {
+ $this->platform = self::PLATFORM_BLACKBERRY_10;
+ } elseif ( strpos( $this->useragent, 'blackberry' ) !== false ) {
+ $this->platform = self::PLATFORM_BLACKBERRY;
+ } elseif ( $this->is_blackberry_tablet() ) {
+ $this->platform = self::PLATFORM_BLACKBERRY;
+ } elseif ( $this->is_symbian_platform() ) {
+ $this->platform = self::PLATFORM_SYMBIAN;
+ } elseif ( $this->is_symbian_s40_platform() ) {
+ $this->platform = self::PLATFORM_SYMBIAN_S40;
+ } elseif ( $this->is_J2ME_platform() ) {
+ $this->platform = self::PLATFORM_J2ME_MIDP;
+ } elseif ( $this->is_firefox_os() ) {
+ $this->platform = self::PLATFORM_FIREFOX_OS;
+ } else {
+ $this->platform = false;
+ }
+
+ return $this->platform;
+ }
+
+ /**
+ * 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 ( $this->is_android() ) {
+ $this->matched_agent = 'android';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_windows_phone_8() ) {
+ $this->matched_agent = 'winphone8';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_WindowsPhone7() ) {
+ $this->matched_agent = 'win7';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_blackberry_10() ) {
+ $this->matched_agent = 'blackberry-10';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_blackbeberry() && 'blackberry-webkit' === $this->detect_blackberry_browser_version() ) {
+ $this->matched_agent = 'blackberry-webkit';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_blackberry_tablet() ) {
+ $this->matched_agent = 'blackberry_tablet';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_PalmWebOS() ) {
+ $this->matched_agent = 'webos';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_TouchPad() ) {
+ $this->matched_agent = 'hp_tablet';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_firefox_os() ) {
+ $this->matched_agent = 'firefoxOS';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_firefox_mobile() ) {
+ $this->matched_agent = 'fennec';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_opera_mobile() ) {
+ $this->matched_agent = 'opera-mobi';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_MaemoTablet() ) {
+ $this->matched_agent = 'maemo';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_MeeGo() ) {
+ $this->matched_agent = 'meego';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_kindle_touch() ) {
+ $this->matched_agent = 'kindle-touch';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->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 ( $this->is_S60_OSSBrowser() ) {
+ $this->matched_agent = 'series60';
+ $this->isTierIphone = false;
+ $this->isTierRichCss = true;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_opera_mini() ) {
+ $this->matched_agent = 'opera-mini';
+ $this->isTierIphone = false;
+ $this->isTierRichCss = true;
+ $this->isTierGenericMobile = false;
+ } elseif ( $this->is_blackbeberry() ) {
+ $detectedDevice = $this->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( $_SERVER['HTTP_USER_AGENT'] );
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+ $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/<ChromeRevision> instead of Version/<VersionNum>.
+ * - 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ if ( strpos( $ua, 'mozilla' ) !== false && strpos( $ua, 'mobile' ) !== false && strpos( $ua, 'gecko' ) !== false && strpos( $ua, 'firefox' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * 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( $_SERVER['HTTP_USER_AGENT'], 'OPR/' ) ) {
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ if ( false === strpos( $ua, 'windows phone os 7' ) ) {
+ return false;
+ } else {
+ if ( 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; <Manufacturer>; <Device> [;<Operator>])
+ */
+ public static function is_windows_phone_8() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( $_SERVER['HTTP_USER_AGENT'] );
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ if ( false === strpos( $ua, 'webos' ) ) {
+ return false;
+ } else {
+ if ( 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( $_SERVER['HTTP_USER_AGENT'] );
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ if ( false === strpos( $ua, 'meego' ) ) {
+ return false;
+ } else {
+ if ( 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+ return ( strpos( $agent, 'bb10' ) !== false ) && ( strpos( $agent, 'mobile' ) !== false );
+ }
+
+ /**
+ * 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ $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.
+ } else {
+ // Detecting the BB OS version for devices running OS 6.0 or higher.
+ if ( preg_match( '#Version\/([\d\.]+)#i', $agent, $matches ) ) {
+ $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( $_SERVER['HTTP_USER_AGENT'] );
+
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+
+ if ( isset( $_SERVER['X_USER_AGENT'] ) && preg_match( '|wp-webos|', $_SERVER['X_USER_AGENT'] ) ) {
+ 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( $_SERVER['HTTP_USER_AGENT'] );
+ 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_null( $is_bot ) ) {
+ $is_bot = self::is_bot_user_agent( $_SERVER['HTTP_USER_AGENT'] );
+ }
+
+ 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',
+ );
+
+ foreach ( $bot_agents as $bot_agent ) {
+ if ( false !== stripos( $ua, $bot_agent ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/CHANGELOG.md
new file mode 100644
index 00000000..ea0c6df4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/CHANGELOG.md
@@ -0,0 +1,112 @@
+# 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).
+
+## [1.3.12] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.3.11] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.3.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.3.9] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.3.8] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.3.7] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.3.6] - 2021-08-31
+### Changed
+- Run composer update on test-php command instead of phpunit.
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+## [1.3.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.3.4] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.3.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.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-07
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.2.0] - 2020-08-13
+
+- CI: Try collect js coverage
+
+## [1.1.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+
+## [1.0.4] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.2] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## [1.0.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## 1.0.0 - 2019-09-14
+
+- Packages: Introduce a jetpack-error package
+
+[1.3.12]: https://github.com/Automattic/jetpack-error/compare/v1.3.11...v1.3.12
+[1.3.11]: https://github.com/Automattic/jetpack-error/compare/v1.3.10...v1.3.11
+[1.3.10]: https://github.com/Automattic/jetpack-error/compare/v1.3.9...v1.3.10
+[1.3.9]: https://github.com/Automattic/jetpack-error/compare/v1.3.8...v1.3.9
+[1.3.8]: https://github.com/Automattic/jetpack-error/compare/v1.3.7...v1.3.8
+[1.3.7]: https://github.com/Automattic/jetpack-error/compare/v1.3.6...v1.3.7
+[1.3.6]: https://github.com/Automattic/jetpack-error/compare/v1.3.5...v1.3.6
+[1.3.5]: https://github.com/Automattic/jetpack-error/compare/v1.3.4...v1.3.5
+[1.3.4]: https://github.com/Automattic/jetpack-error/compare/v1.3.3...v1.3.4
+[1.3.3]: https://github.com/Automattic/jetpack-error/compare/v1.3.2...v1.3.3
+[1.3.2]: https://github.com/Automattic/jetpack-error/compare/v1.3.1...v1.3.2
+[1.3.1]: https://github.com/Automattic/jetpack-error/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-error/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-error/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-error/compare/v1.0.4...v1.1.0
+[1.0.4]: https://github.com/Automattic/jetpack-error/compare/v1.0.2...v1.0.4
+[1.0.2]: https://github.com/Automattic/jetpack-error/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-error/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/src/class-error.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/src/class-error.php
new file mode 100644
index 00000000..579b851f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-error/src/class-error.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Jetpack Error - a wrapper around WP_Error.
+ *
+ * @see https://codex.wordpress.org/Class_Reference/WP_Error
+ *
+ * @package automattic/jetpack-error
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Automattic\Jetpack\Error
+ */
+class Error extends \WP_Error {}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/CHANGELOG.md
new file mode 100644
index 00000000..ea1f7642
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/CHANGELOG.md
@@ -0,0 +1,123 @@
+# 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).
+
+## [1.4.0] - 2022-01-04
+### Changed
+- Updated package textdomain from `jetpack` to `jetpack-heartbeat`.
+
+## [1.3.15] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.3.14] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.3.13] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.3.12] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.3.11] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.3.10] - 2021-09-03
+
+- Clean up doc blocks.
+
+## [1.3.9] - 2021-08-30
+### Changed
+- Updated versions in annotations
+
+## [1.3.8] - 2021-06-15
+### Changed
+- Updated package dependencies.
+
+## [1.3.7] - 2021-05-25
+### Fixed
+- Fixed new PHPCS errors.
+
+## [1.3.6] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.3.5] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.3.4] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+## [1.3.3] - 2021-02-23
+
+- CI: Make tests more generic
+
+## [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.2] - 2020-11-24
+
+- Version packages for release
+
+## [1.2.1] - 2020-11-24
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.2.0] - 2020-10-27
+
+- Make XMLRPC methods available for blog token
+
+## [1.1.0] - 2020-09-29
+
+- Update dependencies to latest stable
+
+## 1.0.0 - 2020-08-26
+
+- Connection: use heartbeat to send connected plugins info
+- Use new heartbeat package
+- Creates the Jetpack Heartbeat package
+
+[1.4.0]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.15...v1.4.0
+[1.3.15]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.14...v1.3.15
+[1.3.14]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.13...v1.3.14
+[1.3.13]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.12...v1.3.13
+[1.3.12]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.11...v1.3.12
+[1.3.11]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.10...v1.3.11
+[1.3.10]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.9...v1.3.10
+[1.3.9]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.8...v1.3.9
+[1.3.8]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.7...v1.3.8
+[1.3.7]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.6...v1.3.7
+[1.3.6]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.5...v1.3.6
+[1.3.5]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.4...v1.3.5
+[1.3.4]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.3...v1.3.4
+[1.3.3]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.2...v1.3.3
+[1.3.2]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.1...v1.3.2
+[1.3.1]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.2.2...v1.3.0
+[1.2.2]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-heartbeat/compare/v1.0.0...v1.1.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php
new file mode 100644
index 00000000..0cca49bb
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php
@@ -0,0 +1,254 @@
+<?php
+/**
+ * Jetpack Heartbeat package.
+ *
+ * @package automattic/jetpack-heartbeat
+ */
+
+namespace Automattic\Jetpack;
+
+use Jetpack_Options;
+use WP_CLI;
+
+/**
+ * Heartbeat sends a batch of stats to wp.com once a day
+ */
+class Heartbeat {
+
+ /**
+ * Holds the singleton instance of this class
+ *
+ * @since 1.0.0
+ * @since-jetpack 2.3.3
+ * @var Heartbeat
+ */
+ private static $instance = false;
+
+ /**
+ * Cronjob identifier
+ *
+ * @var string
+ */
+ private $cron_name = 'jetpack_v2_heartbeat';
+
+ /**
+ * Singleton
+ *
+ * @since 1.0.0
+ * @since-jetpack 2.3.3
+ * @static
+ * @return Heartbeat
+ */
+ public static function init() {
+ if ( ! self::$instance ) {
+ self::$instance = new Heartbeat();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Constructor for singleton
+ *
+ * @since 1.0.0
+ * @since-jetpack 2.3.3
+ */
+ private function __construct() {
+
+ // Schedule the task.
+ add_action( $this->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' ) );
+ }
+ }
+
+ /**
+ * 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-heartbeat' ), $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-heartbeat' ), $last_date ) );
+ }
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/CHANGELOG.md
new file mode 100644
index 00000000..3039161a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/CHANGELOG.md
@@ -0,0 +1,144 @@
+# 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.6.1] - 2022-01-11
+### Fixed
+- Do not add IDC query args to authenticated request when in offline or staging mode.
+
+## [0.6.0] - 2022-01-04
+### Added
+- Build and display the new RNA IDC banner.
+
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+- Updated package textdomain from `jetpack` to `jetpack-idc`.
+- Updated references to '.jp-recommendations__app-badge' to its new name '.apps-badge'
+
+## [0.5.0] - 2021-12-14
+### Added
+- Add a method to determine the safe mode status.
+
+### Changed
+- Updated package dependencies.
+
+## [0.4.4] - 2021-11-30
+### Changed
+- Colors: update Jetpack Primary color to match latest brand book.
+- Remove now-redundant `output.filename` from Webpack config.
+
+## [0.4.3] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [0.4.2] - 2021-11-17
+
+## [0.4.1] - 2021-11-16
+### Added
+- Use monorepo `validate-es` script to validate Webpack builds.
+
+### Changed
+- Updated package dependencies
+
+## [0.4.0] - 2021-11-09
+### Added
+- Add a method to unambiguously determine whether the site is experiencing identity crisis.
+
+### Changed
+- Updated package dependencies.
+- Update webpack build config. Removes IE 11 support in the JavaScript.
+
+## [0.3.1] - 2021-11-02
+### Changed
+- Add the idc url query args to remote requests
+- 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.3.0] - 2021-10-26
+### Added
+- Add redirect_uri parameter for IDC Start Fresh endpoint.
+- Delete the migrate_for_idc option when a remote request returns migrated_for_idc
+
+### Changed
+- Updated package dependencies
+
+## [0.2.8] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [0.2.7] - 2021-10-12
+### Added
+- Add the new check_response_for_idc method to the Identity_Crisis class
+
+### Changed
+- Updated package dependencies
+
+## [0.2.6] - 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.
+- IDC: Rename the Identity_Crisis::sync_idc_optin method to Identity_Crisis:should_handle_idc. Add a new filter and constant that use the new name.
+- Updated package dependencies.
+
+## [0.2.5] - 2021-08-31
+### Changed
+- Updated package dependencies.
+
+## [0.2.4] - 2021-08-30
+### Changed
+- Bump changelogger version
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- update annotations versions
+- Update to latest webpack, webpack-cli and calypso-build
+- Use Node 16.7.0 in tooling. This shouldn't change the behavior of the code itself.
+
+## [0.2.3] - 2021-08-12
+### Changed
+- Updated package dependencies
+
+## [0.2.2] - 2021-07-27
+### Added
+- Add jetpack_connection_disconnect_site_wpcom filter.
+
+## [0.2.1] - 2021-07-13
+### Changed
+- Updated package dependencies.
+
+## [0.2.0] - 2021-06-29
+### Added
+- Add jetpack_idc_disconnect hook to properly disconnect based on IDC settings and clear IDC options.
+
+### Changed
+- Migrate jetpack/v4/identity-crisis endpoints into package.
+- Update node version requirement to 14.16.1
+
+## 0.1.0 - 2021-06-15
+### Added
+- Sync: Adding the Identity_Crisis package.
+
+### Changed
+- Updated package dependencies.
+- Use Connection/Urls for home_url and site_url functions migrated from Sync.
+
+[0.6.1]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.6.0...v0.6.1
+[0.6.0]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.5.0...v0.6.0
+[0.5.0]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.4.4...v0.5.0
+[0.4.4]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.4.3...v0.4.4
+[0.4.3]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.4.2...v0.4.3
+[0.4.2]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.4.1...v0.4.2
+[0.4.1]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.4.0...v0.4.1
+[0.4.0]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.3.1...v0.4.0
+[0.3.1]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.8...v0.3.0
+[0.2.8]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.7...v0.2.8
+[0.2.7]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.6...v0.2.7
+[0.2.6]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.5...v0.2.6
+[0.2.5]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.4...v0.2.5
+[0.2.4]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.3...v0.2.4
+[0.2.3]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.2...v0.2.3
+[0.2.2]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.1...v0.2.2
+[0.2.1]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-identity-crisis/compare/v0.1.0...v0.2.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/babel.config.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/babel.config.js
new file mode 100644
index 00000000..d730e3e8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/babel.config.js
@@ -0,0 +1,10 @@
+const config = {
+ presets: [
+ [
+ '@automattic/jetpack-webpack-config/babel/preset',
+ { pluginReplaceTextdomain: { textdomain: 'jetpack-idc' } },
+ ],
+ ],
+};
+
+module.exports = config;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.asset.php
new file mode 100644
index 00000000..4ed4784a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '472c28cf4d566875562ae0cb3c2e44b1'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.css
new file mode 100644
index 00000000..ea21ba25
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.css
@@ -0,0 +1 @@
+#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#1d2327;font-size:12px;padding:4px 8px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#1d2327;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#f0f0f1}#jp-identity-crisis-container .jp-idc__idc-screen{margin-bottom:40px;margin-top:40px}.jp-idc__idc-screen{background:#fff;border-left:4px solid #e68b28;border-radius:4px;box-shadow:0 0 40px rgba(0,0,0,.04);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0 auto;max-width:1128px;padding:10px}.jp-idc__idc-screen.jp-idc__idc-screen__success{border-color:#069e08}@media(min-width:600px){.jp-idc__idc-screen{padding:48px}}.jp-idc__idc-screen .jp-idc__idc-screen__header{align-items:center;display:flex}.jp-idc__idc-screen .jp-idc__idc-screen__header .jp-idc__idc-screen__logo-image{max-height:100px;max-width:100px}.jp-idc__idc-screen .jp-idc__idc-screen__header .jp-idc__idc-screen__logo-label{font-size:14px;line-height:22px;margin:-7px 0 0 8px}.jp-idc__idc-screen h2{font-size:24px;font-weight:600;line-height:28px;margin:32px 0 0}.jp-idc__idc-screen h3{font-size:20px;font-weight:600;line-height:28px;margin:24px 0 0}.jp-idc__idc-screen p{color:#2c3338;font-size:16px;line-height:24px;margin:16px 0 0;max-width:710px}.jp-idc__idc-screen a{color:#2c3338}.jp-idc__idc-screen .jp-idc__idc-screen__cards{align-items:center;display:flex;flex-direction:column;flex-wrap:wrap}@media only screen and (min-width:1403px){.jp-idc__idc-screen .jp-idc__idc-screen__cards{align-items:normal;flex-direction:row}}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__cards-separator{align-self:center;color:#23282d;font-size:20px;font-weight:600;line-height:28px;margin:0 24px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base{border:1px solid #c3c4c7;border-radius:4px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;margin:24px 0;max-width:100%;padding:10px;width:480px}@media(min-width:600px){.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base{padding:24px}}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base h4{font-size:20px;font-weight:400;line-height:28px;margin:0 0 8px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base p{margin:0 0 24px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-sitename{background:#f9f9f6;border-radius:33px;box-sizing:border-box;color:#2c3338;font-size:16px;font-weight:700;line-height:24px;overflow-wrap:anywhere;padding:16px;text-align:center;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-separator{display:block;margin:12px auto}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-button{padding:8px 24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-action-button{background:#000;border-radius:4px;color:#fff;font-size:16px;font-weight:600;height:auto;justify-content:center;line-height:24px;margin-top:24px;min-height:40px;padding:8px}.jp-idc__idc-screen .jp-idc__idc-screen__card-action-button-migrated{margin-top:64px;width:141px}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated{align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;margin-top:24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-hostname{border:1px solid #c3c4c7;border-radius:4px;color:#2c3338;flex-grow:1;font-size:16px;font-weight:700;line-height:24px;padding:24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{display:none}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator{display:block}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator,.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{margin:28px}@media only screen and (min-width:1400px){.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated{flex-direction:row;width:auto}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator{display:none}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{display:block}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-hostname{width:auto}}@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%}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-idc__idc-screen .jp-idc__error-message{align-items:center;color:var(--jp-red);display:flex;flex-direction:row;justify-content:center;margin:15px 0}.jp-idc__idc-screen .jp-idc__error-message .error-gridicon{fill:var(--jp-red);margin-right:8px}.jp-idc__idc-screen .jp-idc__error-message a,.jp-idc__idc-screen .jp-idc__error-message span{color:var(--jp-red);font-size:var(--font-body)}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__error-message{margin-top:5px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base{padding-bottom:75px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base.jp-idc__idc-screen__card-action-error{padding-bottom:5px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base .jp-idc__error-message{height:40px}.jp-idc__idc-screen .jp-idc__safe-mode{text-align:center}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__safe-mode__staying-safe{display:flex;justify-content:center;padding:6px}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__safe-mode__staying-safe .jp-components-spinner{margin:0 10px}.jp-idc__idc-screen .jp-idc__safe-mode,.jp-idc__idc-screen .jp-idc__safe-mode button{color:#2c3338;font-size:16px;line-height:24px}.jp-idc__idc-screen .jp-idc__safe-mode button{padding:0;text-decoration:underline} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js
new file mode 100644
index 00000000..7e9ca216
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js
@@ -0,0 +1,8 @@
+/*! For license information please see index.js.LICENSE.txt */
+!function(){var e={7538:function(e){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},9183:function(e){function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},9105:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function s(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var i=typeof n;if("string"===i||"number"===i)e.push(n);else if(Array.isArray(n)){if(n.length){var o=s.apply(null,n);o&&e.push(o)}}else if("object"===i)if(n.toString===Object.prototype.toString)for(var a in n)r.call(n,a)&&n[a]&&e.push(a);else e.push(n.toString())}}return e.join(" ")}e.exports?(s.default=s,e.exports=s):void 0===(n=function(){return s}.apply(t,[]))||(e.exports=n)}()},5771:function(e,t,n){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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,s=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(s=r))})),t.splice(s,0,n)},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=n(1244)(t);const{formatters:r}=e.exports;r.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},1244:function(e,t,n){e.exports=function(e){function t(e){let n,s,i,o=null;function a(...e){if(!a.enabled)return;const r=a,s=Number(new Date),i=s-(n||s);r.diff=i,r.prev=n,r.curr=s,n=s,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let o=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,s)=>{if("%%"===n)return"%";o++;const i=t.formatters[s];if("function"==typeof i){const t=e[o];n=i.call(r,t),e.splice(o,1),o--}return n})),t.formatArgs.call(r,e);(r.log||t.log).apply(r,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=r,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==o?o:(s!==t.namespaces&&(s=t.namespaces,i=t.enabled(e)),i),set:e=>{o=e}}),"function"==typeof t.init&&t.init(a),a}function r(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function s(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(s),...t.skips.map(s).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),s=r.length;for(n=0;n<s;n++)r[n]&&("-"===(e=r[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,r;for(n=0,r=t.skips.length;n<r;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;n<r;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(2002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},6212:function(){},4943:function(){},8911:function(){},2780:function(){},2002:function(e){var t=1e3,n=60*t,r=60*n,s=24*r,i=7*s,o=365.25*s;function a(e,t,n,r){var s=t>=1.5*n;return Math.round(e/n)+" "+r+(s?"s":"")}e.exports=function(e,c){c=c||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var a=/^(-?(?:\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(!a)return;var c=parseFloat(a[1]);switch((a[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*o;case"weeks":case"week":case"w":return c*i;case"days":case"day":case"d":return c*s;case"hours":case"hour":case"hrs":case"hr":case"h":return c*r;case"minutes":case"minute":case"mins":case"min":case"m":return c*n;case"seconds":case"second":case"secs":case"sec":case"s":return c*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(e);if("number"===l&&isFinite(e))return c.long?function(e){var i=Math.abs(e);if(i>=s)return a(e,i,s,"day");if(i>=r)return a(e,i,r,"hour");if(i>=n)return a(e,i,n,"minute");if(i>=t)return a(e,i,t,"second");return e+" ms"}(e):function(e){var i=Math.abs(e);if(i>=s)return Math.round(e/s)+"d";if(i>=r)return Math.round(e/r)+"h";if(i>=n)return Math.round(e/n)+"m";if(i>=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))}},9587:function(e,t,n){"use strict";var r=n(5843);function s(){}function i(){}i.resetWarningCache=s,e.exports=function(){function e(e,t,n,s,i,o){if(o!==r){var a=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 a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={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:i,resetWarningCache:s};return n.PropTypes=n,n}},1268:function(e,t,n){e.exports=n(9587)()},5843:function(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},816:function(e,t,n){"use strict";var r=n(5771),s=n.n(r),i=n(2819);const o=s()("dops:analytics");let a,c;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const l={initialize:function(e,t,n){l.setUser(e,t),l.setSuperProps(n),l.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){c={ID:e,username:t}},setSuperProps:function(e){a=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);o("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),o('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);o("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),o('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){l.tracks.recordPageView(e),l.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,r,s,i,o){l.ga.recordPurchase(e,t,n,r,s,i,o)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(a&&(o("- Super Props: %o",a),t=(0,i.assign)(t,a)),o('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):o('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};l.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){l.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){o("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};l.ga.initialized||(c&&(e={userId:"u-"+c.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),l.ga.initialized=!0)},recordPageView:function(e,t){l.ga.initialize(),o("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,n,r){l.ga.initialize();let s="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(s+=" [Option Label: "+n+"]"),void 0!==r&&(s+=" [Option Value: "+r+"]"),o(s),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,r)},recordPurchase:function(e,t,n,r,s,i,o){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:r,currency:o}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:s,quantity:i}),window.ga("ecommerce:send")}},identifyUser:function(){c&&window._tkq.push(["identifyUser",c.ID,c.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}};t.Z=l},9570:function(e,t,n){"use strict";var r=n(2819),s=n(6483),i=n(6251);function o(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const a=o("JsonParseError"),c=o("JsonParseAfterRedirectError"),l=o("Api404Error"),u=o("Api404AfterRedirectError"),d=o("FetchNetworkError");const p=new function(e,t){let n=e,o={"X-WP-Nonce":t},a={credentials:"same-origin",headers:o},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},o,{"Content-type":"application/json"})},l=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",r=n.length?n.split("&"):[];return r.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+r.join("&")};const u={setApiRoot(e){n=e},setApiNonce(e){o={"X-WP-Nonce":e},a={credentials:"same-origin",headers:o},c={method:"post",credentials:"same-origin",headers:(0,r.assign)({},o,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{l=e},registerSite:(e,t)=>{const r={registration_nonce:e,no_iframe:!0};return(0,i.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,i.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),p(`${n}jetpack/v4/connection/register`,c,{body:JSON.stringify(r)}).then(h).then(m)},fetchAuthorizationUrl:e=>d((0,s.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),a).then(h).then(m),fetchSiteConnectionData:()=>d(`${n}jetpack/v4/connection/data`,a).then(m),fetchSiteConnectionStatus:()=>d(`${n}jetpack/v4/connection`,a).then(m),fetchSiteConnectionTest:()=>d(`${n}jetpack/v4/connection/test`,a).then(h).then(m),fetchUserConnectionData:()=>d(`${n}jetpack/v4/connection/data`,a).then(m),fetchUserTrackingSettings:()=>d(`${n}jetpack/v4/tracking/settings`,a).then(h).then(m),updateUserTrackingSettings:e=>p(`${n}jetpack/v4/tracking/settings`,c,{body:JSON.stringify(e)}).then(h).then(m),disconnectSite:()=>p(`${n}jetpack/v4/connection`,c,{body:JSON.stringify({isActive:!1})}).then(h).then(m),fetchConnectUrl:()=>d(`${n}jetpack/v4/connection/url`,a).then(h).then(m),unlinkUser:()=>p(`${n}jetpack/v4/connection/user`,c,{body:JSON.stringify({linked:!1})}).then(h).then(m),reconnect:()=>p(`${n}jetpack/v4/connection/reconnect`,c).then(h).then(m),fetchConnectedPlugins:()=>d(`${n}jetpack/v4/connection/plugins`,a).then(h).then(m),setHasSeenWCConnectionModal:()=>p(`${n}jetpack/v4/seen-wc-connection-modal`,c).then(h).then(m),fetchModules:()=>d(`${n}jetpack/v4/module/all`,a).then(h).then(m),fetchModule:e=>d(`${n}jetpack/v4/module/${e}`,a).then(h).then(m),activateModule:e=>p(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!0})}).then(h).then(m),deactivateModule:e=>p(`${n}jetpack/v4/module/${e}/active`,c,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>p(`${n}jetpack/v4/module/${e}`,c,{body:JSON.stringify(t)}).then(h).then(m),updateSettings:e=>p(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(h).then(m),getProtectCount:()=>d(`${n}jetpack/v4/module/protect/data`,a).then(h).then(m),resetOptions:e=>p(`${n}jetpack/v4/options/${e}`,c,{body:JSON.stringify({reset:!0})}).then(h).then(m),activateVaultPress:()=>p(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(h).then(m),getVaultPressData:()=>d(`${n}jetpack/v4/module/vaultpress/data`,a).then(h).then(m),installPlugin:(e,t)=>{const r={slug:e,status:"active"};return t&&(r.source=t),p(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify(r)}).then(h).then(m)},activateAkismet:()=>p(`${n}jetpack/v4/plugins`,c,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(h).then(m),getAkismetData:()=>d(`${n}jetpack/v4/module/akismet/data`,a).then(h).then(m),checkAkismetKey:()=>d(`${n}jetpack/v4/module/akismet/key/check`,a).then(h).then(m),checkAkismetKeyTyped:e=>p(`${n}jetpack/v4/module/akismet/key/check`,c,{body:JSON.stringify({api_key:e})}).then(h).then(m),fetchStatsData:e=>d(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),a).then(h).then(m).then(g),getPluginUpdates:()=>d(`${n}jetpack/v4/updates/plugins`,a).then(h).then(m),getPlans:()=>d(`${n}jetpack/v4/plans`,a).then(h).then(m),fetchSettings:()=>d(`${n}jetpack/v4/settings`,a).then(h).then(m),updateSetting:e=>p(`${n}jetpack/v4/settings`,c,{body:JSON.stringify(e)}).then(h).then(m),fetchSiteData:()=>d(`${n}jetpack/v4/site`,a).then(h).then(m).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>d(`${n}jetpack/v4/site/features`,a).then(h).then(m).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>d(`${n}jetpack/v4/site/products`,a).then(h).then(m),fetchSitePurchases:()=>d(`${n}jetpack/v4/site/purchases`,a).then(h).then(m).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>d(`${n}jetpack/v4/site/benefits`,a).then(h).then(m).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>d(`${n}jetpack/v4/setup/questionnaire`,a).then(h).then(m),fetchRecommendationsData:()=>d(`${n}jetpack/v4/recommendations/data`,a).then(h).then(m),fetchRecommendationsProductSuggestions:()=>d(`${n}jetpack/v4/recommendations/product-suggestions`,a).then(h).then(m),fetchRecommendationsUpsell:()=>d(`${n}jetpack/v4/recommendations/upsell`,a).then(h).then(m),saveRecommendationsData:e=>p(`${n}jetpack/v4/recommendations/data`,c,{body:JSON.stringify({data:e})}).then(h),fetchProducts:()=>d(`${n}jetpack/v4/products`,a).then(h).then(m),fetchRewindStatus:()=>d(`${n}jetpack/v4/rewind`,a).then(h).then(m).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>d(`${n}jetpack/v4/scan`,a).then(h).then(m).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>p(`${n}jetpack/v4/notice/${e}`,c,{body:JSON.stringify({dismissed:!0})}).then(h).then(m),fetchPluginsData:()=>d(`${n}jetpack/v4/plugins`,a).then(h).then(m),fetchVerifySiteGoogleStatus:e=>d(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,a).then(h).then(m),verifySiteGoogle:e=>p(`${n}jetpack/v4/verify-site/google`,c,{body:JSON.stringify({keyring_id:e})}).then(h).then(m),sendMobileLoginEmail:()=>p(`${n}jetpack/v4/mobile/send-login-email`,c).then(h).then(m),submitSurvey:e=>p(`${n}jetpack/v4/marketing/survey`,c,{body:JSON.stringify(e)}).then(h).then(m),saveSetupQuestionnaire:e=>p(`${n}jetpack/v4/setup/questionnaire`,c,{body:JSON.stringify(e)}).then(h).then(m),updateLicensingError:e=>p(`${n}jetpack/v4/licensing/error`,c,{body:JSON.stringify(e)}).then(h).then(m),updateLicenseKey:e=>p(`${n}jetpack/v4/licensing/set-license`,c,{body:JSON.stringify({license:e})}).then(h).then(m),getUserLicensesCounts:()=>d(`${n}jetpack/v4/licensing/user/counts`,a).then(h).then(m),updateLicensingActivationNoticeDismiss:e=>p(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,c,{body:JSON.stringify({last_detached_count:e})}).then(h).then(m),updateRecommendationsStep:e=>p(`${n}jetpack/v4/recommendations/step`,c,{body:JSON.stringify({step:e})}).then(h),confirmIDCSafeMode:()=>p(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,c).then(h),startIDCFresh:e=>p(`${n}jetpack/v4/identity-crisis/start-fresh`,c,{body:JSON.stringify({redirect_uri:e})}).then(h).then(m),migrateIDC:()=>p(`${n}jetpack/v4/identity-crisis/migrate`,c).then(h),attachLicenses:e=>p(`${n}jetpack/v4/licensing/attach-licenses`,c,{body:JSON.stringify({licenses:e})}).then(h).then(m),fetchSearchPlanInfo:()=>d(`${n}jetpack/v4/search/plan`,a).then(h).then(m),fetchSearchSettings:()=>d(`${n}jetpack/v4/search/settings`,a).then(h).then(m),updateSearchSettings:e=>p(`${n}jetpack/v4/search/settings`,c,{body:JSON.stringify(e)}).then(h).then(m)};function d(e,t){return fetch(l(e),t)}function p(e,t,n){return fetch(e,(0,r.assign)({},t,n)).catch(f)}function g(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,r.assign)(this,u)};function h(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new u(e.redirected):new l})):e.json().catch((e=>g(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function m(e){return e.json().catch((t=>g(t,e.redirected,e.url)))}function g(e,t,n){throw t?new c(n):new a}function f(){throw new d}t.ZP=p},1546:function(e,t,n){"use strict";var r=n(9183),s=n.n(r),i=n(7538),o=n.n(i),a=n(1268),c=n.n(a),l=n(9196),u=n.n(l),d=n(9105),p=n.n(d),h=n(5736);const __=h.__;class m extends u().Component{render(){const{logoColor:e,showText:t,className:n,...r}=this.props,i=t?"0 0 118 32":"0 0 32 32";return u().createElement("svg",s()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:i,className:p()("jetpack-logo",n),"aria-labelledby":"jetpack-logo-title"},r),u().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack-idc")),u().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&&u().createElement(l.Fragment,null,u().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"}),u().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"}),u().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"}),u().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"}),u().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"}),u().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"}),u().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"})))}}o()(m,"propTypes",{className:c().string,width:c().number,height:c().number,showText:c().bool,logoColor:c().string}),o()(m,"defaultProps",{className:"",height:32,showText:!0,logoColor:"#069e08"}),t.Z=m},7262:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i);n(6212);const a=e=>{const t=e.className+" jp-components-spinner",n={width:e.size,height:e.size,fontSize:e.size,borderTopColor:e.color},r={borderTopColor:e.color,borderRightColor:e.color};return s().createElement("div",{className:t},s().createElement("div",{className:"jp-components-spinner__outer",style:n},s().createElement("div",{className:"jp-components-spinner__inner",style:r})))};a.propTypes={color:o().string,className:o().string,size:o().number},a.defaultProps={color:"#FFFFFF",className:"",size:20},t.Z=a},1415:function(e,t,n){"use strict";function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let r;if("undefined"!=typeof window&&(r=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),r&&(n.calypso_env=r);const s=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+s}n.d(t,{Z:function(){return r}})},6251:function(e,t,n){let r={};try{r=n(8510)}catch{console.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),r={missingConfig:!0}}const s=e=>r.hasOwnProperty(e);e.exports={jetpackConfigHas:s,jetpackConfigGet:e=>{if(!s(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 r[e]}}},7226:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(5609),c=n(9818),l=n(9307),u=n(5736),d=n(1415),p=n(7262),h=n(7619),m=n(2690),g=n(2665),f=n(8086);const __=u.__,C=e=>{const{isStartingFresh:t,startFreshCallback:n,customContent:r,hasError:i}=e,o=(0,m.Z)(e.wpcomHomeUrl),g=(0,m.Z)(e.currentUrl),C=(0,c.useSelect)((e=>e(h.t).getIsActionInProgress()),[]),y=__("Create a fresh connection","jetpack-idc");return s().createElement("div",{className:"jp-idc__idc-screen__card-action-base"+(i?" jp-idc__idc-screen__card-action-error":"")},s().createElement("div",{className:"jp-idc__idc-screen__card-action-top"},s().createElement("h4",null,r.startFreshCardTitle||__("Treat each site as independent sites","jetpack-idc")),s().createElement("p",null,r.startFreshCardBodyText||(0,l.createInterpolateElement)((0,u.sprintf)(
+/* translators: %1$s: The current site domain name. %2$s: The original site domain name. */
+__("<hostname>%1$s</hostname> settings, stats, and subscribers will start fresh. <hostname>%2$s</hostname> will keep its data as is.","jetpack-idc"),g,o),{hostname:s().createElement("strong",null)}))),s().createElement("div",{className:"jp-idc__idc-screen__card-action-bottom"},s().createElement("div",{className:"jp-idc__idc-screen__card-action-sitename"},o),s().createElement(a.Dashicon,{icon:"minus",className:"jp-idc__idc-screen__card-action-separator"}),s().createElement("div",{className:"jp-idc__idc-screen__card-action-sitename"},g),s().createElement(a.Button,{className:"jp-idc__idc-screen__card-action-button",label:y,onClick:n,disabled:C},t?s().createElement(p.Z,null):y),i&&s().createElement(f.Z,null,(0,l.createInterpolateElement)(__("Could not create the connection. Retry or find out more <a>here</a>.","jetpack-idc"),{a:s().createElement("a",{href:(0,d.Z)("jetpack-support-safe-mode"),rel:"noopener noreferrer",target:"_blank"})}))))};C.propTypes={wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,isStartingFresh:o().bool.isRequired,startFreshCallback:o().func.isRequired,customContent:o().shape(g.Z),hasError:o().bool.isRequired},C.defaultProps={isStartingFresh:!1,startFreshCallback:()=>{},customContent:{},hasError:!1},t.Z=C},3023:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(5609),c=n(9818),l=n(9307),u=n(5736),d=n(1415),p=n(7262),h=n(7619),m=n(2690),g=n(2665),f=n(8086);const __=u.__,C=e=>{const t=(0,m.Z)(e.wpcomHomeUrl),n=(0,m.Z)(e.currentUrl),r=(0,c.useSelect)((e=>e(h.t).getIsActionInProgress()),[]),{isMigrating:i,migrateCallback:o,customContent:g,hasError:C}=e,y=__("Move your settings","jetpack-idc");return s().createElement("div",{className:"jp-idc__idc-screen__card-action-base"+(C?" jp-idc__idc-screen__card-action-error":"")},s().createElement("div",{className:"jp-idc__idc-screen__card-action-top"},s().createElement("h4",null,g.migrateCardTitle||__("Move Jetpack data","jetpack-idc")),s().createElement("p",null,g.migrateCardBodyText||(0,l.createInterpolateElement)((0,u.sprintf)(
+/* translators: %1$s: The current site domain name. %2$s: The original site domain name. */
+__("Move all your settings, stats and subscribers to your other URL, <hostname>%1$s</hostname>. <hostname>%2$s</hostname> will be disconnected from Jetpack.","jetpack-idc"),n,t),{hostname:s().createElement("strong",null)}))),s().createElement("div",{className:"jp-idc__idc-screen__card-action-bottom"},s().createElement("div",{className:"jp-idc__idc-screen__card-action-sitename"},t),s().createElement(a.Dashicon,{icon:"arrow-down-alt",className:"jp-idc__idc-screen__card-action-separator"}),s().createElement("div",{className:"jp-idc__idc-screen__card-action-sitename"},n),s().createElement(a.Button,{className:"jp-idc__idc-screen__card-action-button",label:y,onClick:o,disabled:r},i?s().createElement(p.Z,null):y),C&&s().createElement(f.Z,null,(0,l.createInterpolateElement)(__("Could not move your settings. Retry or find out more <a>here</a>.","jetpack-idc"),{a:s().createElement("a",{href:(0,d.Z)("jetpack-support-safe-mode"),rel:"noopener noreferrer",target:"_blank"})}))))};C.propTypes={wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,isMigrating:o().bool.isRequired,migrateCallback:o().func.isRequired,customContent:o().shape(g.Z),hasError:o().bool.isRequired},C.defaultProps={isMigrating:!1,migrateCallback:()=>{},customContent:{},hasError:!1},t.Z=C},7090:function(e,t,n){"use strict";var r=n(9196),s=n.n(r);t.Z=()=>s().createElement("svg",{className:"error-gridicon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",height:24},s().createElement("rect",{x:"0",fill:"none",width:"24",height:"24"}),s().createElement("g",null,s().createElement("path",{d:"M12 4c4.411 0 8 3.589 8 8s-3.589 8-8 8-8-3.589-8-8 3.589-8 8-8m0-2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 13h-2v2h2v-2zm-2-2h2l.5-6h-3l.5 6z"})))},8086:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(7090);n(4943);t.Z=e=>{const{children:t}=e;return s().createElement("div",{className:"jp-idc__error-message"},s().createElement(i.Z,null),s().createElement("span",null,t))}},5643:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(816),c=n(9570),l=n(9818),u=n(7436),d=n(5853),p=n(463),h=n(8970),m=n(1517),g=n(2665),f=n(7619);const C=e=>{const{logo:t,customContent:n,wpcomHomeUrl:i,currentUrl:o,apiNonce:g,apiRoot:C,redirectUri:y,tracksUserData:k,tracksEventData:_,isAdmin:v}=e,[w,b]=(0,r.useState)(!1),E=(0,l.useSelect)((e=>e(f.t).getErrorType()),[]),{isMigrating:j,migrateCallback:S}=(0,p.Z)((0,r.useCallback)((()=>{b(!0)}),[b])),{isStartingFresh:F,startFreshCallback:I}=(0,m.Z)(y),{isFinishingMigration:R,finishMigrationCallback:P}=(0,h.Z)();return(0,r.useEffect)((()=>{c.ZP.setApiRoot(C),c.ZP.setApiNonce(g),k&&k.hasOwnProperty("userid")&&k.hasOwnProperty("username")&&a.Z.initialize(k.userid,k.username),_&&(_.hasOwnProperty("isAdmin")&&_.isAdmin?(0,d.Z)("notice_view"):(0,d.Z)("non_admin_notice_view",{page:!!_.hasOwnProperty("currentScreen")&&_.currentScreen}))}),[C,g,k,_]),s().createElement(u.Z,{logo:t,customContent:n,wpcomHomeUrl:i,currentUrl:o,redirectUri:y,isMigrating:j,migrateCallback:S,isMigrated:w,finishMigrationCallback:P,isFinishingMigration:R,isStartingFresh:F,startFreshCallback:I,isAdmin:v,hasStaySafeError:"safe-mode"===E,hasFreshError:"start-fresh"===E,hasMigrateError:"migrate"===E})};C.propTypes={logo:o().object,customContent:o().shape(g.Z),wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,redirectUri:o().string.isRequired,apiRoot:o().string.isRequired,apiNonce:o().string.isRequired,tracksUserData:o().object,tracksEventData:o().object,isAdmin:o().bool.isRequired},C.defaultProps={customContent:{}},t.Z=C},2027:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(9307),c=n(5736),l=n(1415),u=n(3023),d=n(7226),p=n(1693),h=n(2665);const __=c.__,m=e=>{const{wpcomHomeUrl:t,currentUrl:n,isMigrating:r,migrateCallback:i,isStartingFresh:o,startFreshCallback:c,customContent:h,hasMigrateError:m,hasFreshError:g,hasStaySafeError:f}=e;return s().createElement(s().Fragment,null,s().createElement("h2",null,h.mainTitle||__("Safe Mode has been activated","jetpack-idc")),s().createElement("p",null,h.mainBodyText||(0,a.createInterpolateElement)(__("Your site is in Safe Mode because you have 2 Jetpack-powered sites that appear to be duplicates. 2 sites that are telling Jetpack they’re the same site. <safeModeLink>Learn more about safe mode.</safeModeLink>","jetpack-idc"),{safeModeLink:s().createElement("a",{href:(0,l.Z)("jetpack-support-safe-mode"),rel:"noopener noreferrer",target:"_blank"})})),s().createElement("h3",null,__("Please select an option","jetpack-idc")),s().createElement("div",{className:"jp-idc__idc-screen__cards"+(m||g?" jp-idc__idc-screen__cards-error":"")},s().createElement(u.Z,{wpcomHomeUrl:t,currentUrl:n,isMigrating:r,migrateCallback:i,customContent:h,hasError:m}),s().createElement("div",{className:"jp-idc__idc-screen__cards-separator"},"or"),s().createElement(d.Z,{wpcomHomeUrl:t,currentUrl:n,isStartingFresh:o,startFreshCallback:c,customContent:h,hasError:g})),s().createElement(p.Z,{hasError:f}))};m.propTypes={wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,isMigrating:o().bool.isRequired,migrateCallback:o().func,isStartingFresh:o().bool.isRequired,startFreshCallback:o().func,customContent:o().shape(h.Z),hasMigrateError:o().bool.isRequired,hasFreshError:o().bool.isRequired,hasStaySafeError:o().bool.isRequired},m.defaultProps={isMigrating:!1,isStartingFresh:!1,customContent:{},hasMigrateError:!1,hasFreshError:!1,hasStaySafeError:!1},t.Z=m},4642:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(5609),c=n(9307),l=n(5736),u=n(7262),d=n(2690),p=n(2665);const __=l.__,h=e=>{const{finishCallback:t,isFinishing:n,customContent:r}=e,i=(0,d.Z)(e.wpcomHomeUrl),o=(0,d.Z)(e.currentUrl),p=__("Got it, thanks","jetpack-idc");return s().createElement(s().Fragment,null,s().createElement("h2",null,r.migratedTitle||__("Your Jetpack settings have migrated successfully","jetpack-idc")),s().createElement("p",null,r.migratedBodyText||(0,c.createInterpolateElement)((0,l.sprintf)(
+/* translators: %1$s: The current site domain name. */
+__("Safe Mode has been switched off for <hostname>%1$s</hostname> website and Jetpack is fully functional.","jetpack-idc"),o),{hostname:s().createElement("strong",null)})),s().createElement("div",{className:"jp-idc__idc-screen__card-migrated"},s().createElement("div",{className:"jp-idc__idc-screen__card-migrated-hostname"},i),s().createElement(a.Dashicon,{icon:"arrow-down-alt",className:"jp-idc__idc-screen__card-migrated-separator"}),s().createElement(a.Dashicon,{icon:"arrow-right-alt",className:"jp-idc__idc-screen__card-migrated-separator-wide"}),s().createElement("div",{className:"jp-idc__idc-screen__card-migrated-hostname"},o)),s().createElement(a.Button,{className:"jp-idc__idc-screen__card-action-button jp-idc__idc-screen__card-action-button-migrated",onClick:t,label:p},n?s().createElement(u.Z,null):p))};h.propTypes={wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,finishCallback:o().func,isFinishing:o().bool.isRequired,customContent:o().shape(p.Z)},h.defaultProps={finishCallback:()=>{},isFinishing:!1,customContent:{}},t.Z=h},4523:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(9307),c=n(5736),l=n(1415),u=n(2665);const __=c.__,d=e=>{const{customContent:t}=e;return s().createElement(s().Fragment,null,s().createElement("h2",null,t.nonAdminTitle||__("Safe Mode has been activated","jetpack-idc")),s().createElement("p",null,t.nonAdminBodyText||(0,a.createInterpolateElement)(__("This site is in Safe Mode because there are 2 Jetpack-powered sites that appear to be duplicates. 2 sites that are telling Jetpack they’re the same site. <safeModeLink>Learn more about safe mode.</safeModeLink>","jetpack-idc"),{safeModeLink:s().createElement("a",{href:(0,l.Z)("jetpack-support-safe-mode"),rel:"noopener noreferrer",target:"_blank"})})),t.nonAdminBodyText?"":s().createElement("p",null,__("An administrator of this site can take Jetpack out of Safe Mode.","jetpack-idc")))};d.propTypes={customContent:o().shape(u.Z)},d.defaultProps={customContent:{}},t.Z=d},7436:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(5736),c=n(1546),l=n(2027),u=n(4523),d=n(4642),p=n(2665);n(8911);const __=a.__,h=e=>{const{logo:t,customContent:n,wpcomHomeUrl:r,currentUrl:i,redirectUri:o,isMigrating:a,migrateCallback:c,isMigrated:p,finishMigrationCallback:h,isFinishingMigration:m,isStartingFresh:g,startFreshCallback:f,isAdmin:C,hasMigrateError:y,hasFreshError:k,hasStaySafeError:_}=e,v=C?"":s().createElement(u.Z,{customContent:n});let w="";return C&&(w=p?s().createElement(d.Z,{wpcomHomeUrl:r,currentUrl:i,finishCallback:h,isFinishing:m,customContent:n}):s().createElement(l.Z,{wpcomHomeUrl:r,currentUrl:i,redirectUri:o,customContent:n,isMigrating:a,migrateCallback:c,isStartingFresh:g,startFreshCallback:f,hasMigrateError:y,hasFreshError:k,hasStaySafeError:_})),s().createElement("div",{className:"jp-idc__idc-screen"+(p?" jp-idc__idc-screen__success":"")},s().createElement("div",{className:"jp-idc__idc-screen__header"},s().createElement("div",{className:"jp-idc__idc-screen__logo"},((e,t)=>"string"==typeof e||e instanceof String?s().createElement("img",{src:e,alt:t,className:"jp-idc__idc-screen__logo-image"}):e)(t,n.logoAlt||"")),s().createElement("div",{className:"jp-idc__idc-screen__logo-label"},n.headerText||__("Safe Mode","jetpack-idc"))),v,w)};h.propTypes={logo:o().object.isRequired,customContent:o().shape(p.Z),wpcomHomeUrl:o().string.isRequired,currentUrl:o().string.isRequired,redirectUri:o().string.isRequired,isMigrating:o().bool.isRequired,migrateCallback:o().func,isMigrated:o().bool.isRequired,finishMigrationCallback:o().func,isFinishingMigration:o().bool.isRequired,isStartingFresh:o().bool.isRequired,startFreshCallback:o().func,isAdmin:o().bool.isRequired,hasMigrateError:o().bool.isRequired,hasFreshError:o().bool.isRequired,hasStaySafeError:o().bool.isRequired},h.defaultProps={logo:s().createElement(c.Z,{height:24}),isMigrated:!1,isFinishingMigration:!1,isMigrating:!1,isStartingFresh:!1,customContent:{},hasMigrateError:!1,hasFreshError:!1,hasStaySafeError:!1},t.Z=h},1693:function(e,t,n){"use strict";var r=n(9196),s=n.n(r),i=n(1268),o=n.n(i),a=n(4333),c=n(9818),l=n(9307),u=n(5609),d=n(5736),p=n(6483),h=n(9570),m=n(7262),g=n(1415),f=n(7619),C=n(5853),y=n(8086);n(2780);const __=d.__,k=e=>{const{isActionInProgress:t,setIsActionInProgress:n,setErrorType:i,clearErrorType:o,hasError:a}=e,[c,d]=(0,r.useState)(!1),f=(0,r.useCallback)((()=>{t||(d(!0),n(!0),o(),(0,C.Z)("confirm_safe_mode"),h.ZP.confirmIDCSafeMode().then((()=>{window.location.href=(0,p.removeQueryArgs)(window.location.href,"jetpack_idc_clear_confirmation","_wpnonce")})).catch((e=>{throw n(!1),d(!1),i("safe-mode"),e})))}),[t,n,i,o]);return s().createElement("div",{className:"jp-idc__safe-mode"},c?s().createElement("div",{className:"jp-idc__safe-mode__staying-safe"},s().createElement(m.Z,{color:"black"}),s().createElement("span",null,__("Finishing setting up Safe mode…","jetpack-idc"))):(k=f,_=t,(0,l.createInterpolateElement)(__("Or decide later and stay in <button>Safe mode</button>","jetpack-idc"),{button:s().createElement(u.Button,{label:__("Safe mode","jetpack-idc"),variant:"link",onClick:k,disabled:_})})),a&&s().createElement(y.Z,null,(0,l.createInterpolateElement)(__("Could not stay in safe mode. Retry or find out more <a>here</a>.","jetpack-idc"),{a:s().createElement("a",{href:(0,g.Z)("jetpack-support-safe-mode"),rel:"noopener noreferrer",target:"_blank"})})));var k,_};k.propTypes={isActionInProgress:o().bool,setIsActionInProgress:o().func.isRequired,setErrorType:o().func.isRequired,clearErrorType:o().func.isRequired,hasError:o().bool.isRequired},k.defaultProps={hasError:!1},t.Z=(0,a.compose)([(0,c.withSelect)((e=>({isActionInProgress:e(f.t).getIsActionInProgress()}))),(0,c.withDispatch)((e=>({setIsActionInProgress:e(f.t).setIsActionInProgress,setErrorType:e(f.t).setErrorType,clearErrorType:e(f.t).clearErrorType})))])(k)},8970:function(e,t,n){"use strict";var r=n(9196);t.Z=()=>{const[e,t]=(0,r.useState)(!1),n=(0,r.useCallback)((()=>{e||(t(!0),window.location.reload())}),[e,t]);return{isFinishingMigration:e,finishMigrationCallback:n}}},463:function(e,t,n){"use strict";var r=n(9196),s=n(9818),i=n(9570),o=n(5853),a=n(7619);t.Z=e=>{const[t,n]=(0,r.useState)(!1),c=(0,s.useSelect)((e=>e(a.t).getIsActionInProgress()),[]),{setIsActionInProgress:l,setErrorType:u,clearErrorType:d}=(0,s.useDispatch)(a.t);return{isMigrating:t,migrateCallback:(0,r.useCallback)((()=>{c||((0,o.Z)("migrate"),l(!0),n(!0),d(),i.ZP.migrateIDC().then((()=>{n(!1),e&&"[object Function]"==={}.toString.call(e)&&e()})).catch((e=>{throw l(!1),n(!1),u("migrate"),e})))}),[n,e,c,l,u,d])}}},1517:function(e,t,n){"use strict";var r=n(9196),s=n(9818),i=n(9570),o=n(5853),a=n(7619);t.Z=e=>{const[t,n]=(0,r.useState)(!1),c=(0,s.useSelect)((e=>e(a.t).getIsActionInProgress()),[]),{setIsActionInProgress:l,setErrorType:u,clearErrorType:d}=(0,s.useDispatch)(a.t);return{isStartingFresh:t,startFreshCallback:(0,r.useCallback)((()=>{c||((0,o.Z)("start_fresh"),l(!0),n(!0),d(),i.ZP.startIDCFresh(e).then((e=>{window.location.href=e+"&from=idc-notice"})).catch((e=>{throw l(!1),n(!1),u("start-fresh"),e})))}),[n,c,l,e,u,d])}}},8401:function(e,t,n){"use strict";n.d(t,{hG:function(){return r},vC:function(){return s},jk:function(){return i},ZP:function(){return o}});const r="SET_IS_ACTION_IN_PROGRESS",s="SET_ERROR_TYPE",i="CLEAR_ERROR_TYPE",o={setIsActionInProgress:e=>({type:r,isInProgress:e}),setErrorType:e=>({type:s,errorType:e}),clearErrorType:()=>({type:i})}},2944:function(e,t,n){"use strict";var r=n(9818),s=n(8401);const i=(0,r.combineReducers)({isActionInProgress:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===s.hG?t.isInProgress:e},errorType:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case s.vC:return t.errorType;case s.jk:return null}return e}});t.Z=i},3642:function(e,t){"use strict";t.Z={getIsActionInProgress:e=>e.isActionInProgress||!1,getErrorType:e=>e.errorType||null}},9520:function(e,t,n){"use strict";var r=n(7538),s=n.n(r),i=n(9818);class o{static mayBeInit(e,t){null===o.store&&(o.store=(0,i.createReduxStore)(e,t),(0,i.register)(o.store))}}s()(o,"store",null),t.Z=o},7619:function(e,t,n){"use strict";n.d(t,{t:function(){return a}});var r=n(2944),s=n(8401),i=n(3642),o=n(9520);const a="jetpack-idc";o.Z.mayBeInit(a,{reducer:r.Z,actions:s.ZP,selectors:i.Z})},2665:function(e,t,n){"use strict";var r=n(1268),s=n.n(r);t.Z={headerText:s().string,logoAlt:s().string,mainTitle:s().string,mainBodyText:s().string,migratedTitle:s().string,migratedBodyText:s().string,migrateCardTitle:s().string,migrateCardBodyText:s().string,startFreshCardTitle:s().string,startFreshCardBodyText:s().string,nonAdminTitle:s().string,nonAdminBodyText:s().string}},2690:function(e,t){"use strict";t.Z=e=>/^https?:\/\//.test(e)?new URL(e).hostname:e.replace(/\/$/,"")},5853:function(e,t,n){"use strict";n.d(t,{Z:function(){return s}});var r=n(816);function s(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};void 0!==t&&"object"==typeof t||(t={}),e&&e.length&&void 0!==r.Z&&r.Z.tracks&&r.Z.mc&&(e=0!==(e=e.replace(/-/g,"_")).indexOf("jetpack_idc_")?"jetpack_idc_"+e:e,r.Z.tracks.recordEvent(e,t),e=(e=e.replace("jetpack_idc_","")).replace(/_/g,"-"),r.Z.mc.bumpStat("jetpack-idc",e))}},8510:function(e){"use strict";if(void 0==={consumer_slug:"identity_crisis"}){var t=new Error('Cannot find module \'{"consumer_slug":"identity_crisis"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"identity_crisis"}},9196:function(e){"use strict";e.exports=window.React},1850:function(e){"use strict";e.exports=window.ReactDOM},2819:function(e){"use strict";e.exports=window.lodash},5609:function(e){"use strict";e.exports=window.wp.components},4333:function(e){"use strict";e.exports=window.wp.compose},9818:function(e){"use strict";e.exports=window.wp.data},9307:function(e){"use strict";e.exports=window.wp.element},5736:function(e){"use strict";e.exports=window.wp.i18n},6483:function(e){"use strict";e.exports=window.wp.url}},t={};function n(r){var s=t[r];if(void 0!==s)return s.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(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=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){"use strict";var e=n(1850),t=n.n(e),r=n(9196),s=n.n(r),i=n(5643);!function(){const e=document.getElementById("jp-identity-crisis-container");if(null===e||!window.hasOwnProperty("JP_IDENTITY_CRISIS__INITIAL_STATE"))return;const{WP_API_root:n,WP_API_nonce:r,wpcomHomeUrl:o,currentUrl:a,redirectUri:c,tracksUserData:l,tracksEventData:u,isSafeModeConfirmed:d,consumerData:p,isAdmin:h}=window.JP_IDENTITY_CRISIS__INITIAL_STATE;d||t().render(s().createElement(i.Z,{wpcomHomeUrl:o,currentUrl:a,apiRoot:n,apiNonce:r,redirectUri:c,tracksUserData:l,tracksEventData:u,customContent:p.hasOwnProperty("customContent")?p.customContent:{},isAdmin:h,logo:p.hasOwnProperty("logo")?p.logo:void 0}),e)}()}()}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js.LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..0c20a875
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.rtl.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.rtl.css
new file mode 100644
index 00000000..5c2ffd77
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/build/index.rtl.css
@@ -0,0 +1 @@
+#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#1d2327;font-size:12px;padding:4px 8px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#1d2327;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#f0f0f1}#jp-identity-crisis-container .jp-idc__idc-screen{margin-bottom:40px;margin-top:40px}.jp-idc__idc-screen{background:#fff;border-radius:4px;border-right:4px solid #e68b28;box-shadow:0 0 40px rgba(0,0,0,.04);box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0 auto;max-width:1128px;padding:10px}.jp-idc__idc-screen.jp-idc__idc-screen__success{border-color:#069e08}@media(min-width:600px){.jp-idc__idc-screen{padding:48px}}.jp-idc__idc-screen .jp-idc__idc-screen__header{align-items:center;display:flex}.jp-idc__idc-screen .jp-idc__idc-screen__header .jp-idc__idc-screen__logo-image{max-height:100px;max-width:100px}.jp-idc__idc-screen .jp-idc__idc-screen__header .jp-idc__idc-screen__logo-label{font-size:14px;line-height:22px;margin:-7px 8px 0 0}.jp-idc__idc-screen h2{font-size:24px;font-weight:600;line-height:28px;margin:32px 0 0}.jp-idc__idc-screen h3{font-size:20px;font-weight:600;line-height:28px;margin:24px 0 0}.jp-idc__idc-screen p{color:#2c3338;font-size:16px;line-height:24px;margin:16px 0 0;max-width:710px}.jp-idc__idc-screen a{color:#2c3338}.jp-idc__idc-screen .jp-idc__idc-screen__cards{align-items:center;display:flex;flex-direction:column;flex-wrap:wrap}@media only screen and (min-width:1403px){.jp-idc__idc-screen .jp-idc__idc-screen__cards{align-items:normal;flex-direction:row}}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__cards-separator{align-self:center;color:#23282d;font-size:20px;font-weight:600;line-height:28px;margin:0 24px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base{border:1px solid #c3c4c7;border-radius:4px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;margin:24px 0;max-width:100%;padding:10px;width:480px}@media(min-width:600px){.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base{padding:24px}}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base h4{font-size:20px;font-weight:400;line-height:28px;margin:0 0 8px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base p{margin:0 0 24px}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-sitename{background:#f9f9f6;border-radius:33px;box-sizing:border-box;color:#2c3338;font-size:16px;font-weight:700;line-height:24px;overflow-wrap:anywhere;padding:16px;text-align:center;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-separator{display:block;margin:12px auto}.jp-idc__idc-screen .jp-idc__idc-screen__cards .jp-idc__idc-screen__card-action-base .jp-idc__idc-screen__card-action-button{padding:8px 24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-action-button{background:#000;border-radius:4px;color:#fff;font-size:16px;font-weight:600;height:auto;justify-content:center;line-height:24px;margin-top:24px;min-height:40px;padding:8px}.jp-idc__idc-screen .jp-idc__idc-screen__card-action-button-migrated{margin-top:64px;width:141px}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated{align-items:center;display:flex;flex-direction:column;flex-wrap:wrap;margin-top:24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-hostname{border:1px solid #c3c4c7;border-radius:4px;color:#2c3338;flex-grow:1;font-size:16px;font-weight:700;line-height:24px;padding:24px;width:100%}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{display:none}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator{display:block}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator,.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{margin:28px}@media only screen and (min-width:1400px){.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated{flex-direction:row;width:auto}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator{display:none}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-separator-wide{display:block}.jp-idc__idc-screen .jp-idc__idc-screen__card-migrated .jp-idc__idc-screen__card-migrated-hostname{width:auto}}@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%}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-idc__idc-screen .jp-idc__error-message{align-items:center;color:var(--jp-red);display:flex;flex-direction:row;justify-content:center;margin:15px 0}.jp-idc__idc-screen .jp-idc__error-message .error-gridicon{fill:var(--jp-red);margin-left:8px}.jp-idc__idc-screen .jp-idc__error-message a,.jp-idc__idc-screen .jp-idc__error-message span{color:var(--jp-red);font-size:var(--font-body)}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__error-message{margin-top:5px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base{padding-bottom:75px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base.jp-idc__idc-screen__card-action-error{padding-bottom:5px}.jp-idc__idc-screen .jp-idc__idc-screen__cards.jp-idc__idc-screen__cards-error .jp-idc__idc-screen__card-action-base .jp-idc__error-message{height:40px}.jp-idc__idc-screen .jp-idc__safe-mode{text-align:center}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__safe-mode__staying-safe{display:flex;justify-content:center;padding:6px}.jp-idc__idc-screen .jp-idc__safe-mode .jp-idc__safe-mode__staying-safe .jp-components-spinner{margin:0 10px}.jp-idc__idc-screen .jp-idc__safe-mode,.jp-idc__idc-screen .jp-idc__safe-mode button{color:#2c3338;font-size:16px;line-height:24px}.jp-idc__idc-screen .jp-idc__safe-mode button{padding:0;text-decoration:underline} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin-bar.scss b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin-bar.scss
new file mode 100644
index 00000000..cd2008cf
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin-bar.scss
@@ -0,0 +1,28 @@
+#wp-admin-bar-jetpack-idc.hide {
+ display: none;
+}
+
+#wp-admin-bar-jetpack-idc .jp-idc-admin-bar {
+ background: #fff;
+ border-radius: 2px;
+ color: #1d2327;
+ padding: 4px 8px;
+ font-size: 12px;
+}
+
+#wpadminbar #wp-admin-bar-jetpack-idc .dashicons {
+ color: #1d2327;
+ font-family: 'dashicons';
+}
+
+#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before {
+ font-size: 16px;
+}
+
+#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item {
+ background: inherit;
+}
+
+#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar {
+ background: #f0f0f1;
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin.jsx
new file mode 100644
index 00000000..296b1898
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/admin.jsx
@@ -0,0 +1,58 @@
+/**
+ * External dependencies
+ */
+import ReactDOM from 'react-dom';
+import React from 'react';
+import { IDCScreen } from '@automattic/jetpack-idc';
+
+/**
+ * Internal dependencies
+ */
+import './admin-bar.scss';
+import './style.scss';
+
+/**
+ * The initial renderer function.
+ */
+function render() {
+ const container = document.getElementById( 'jp-identity-crisis-container' );
+
+ if ( null === container || ! window.hasOwnProperty( 'JP_IDENTITY_CRISIS__INITIAL_STATE' ) ) {
+ return;
+ }
+
+ const {
+ WP_API_root,
+ WP_API_nonce,
+ wpcomHomeUrl,
+ currentUrl,
+ redirectUri,
+ tracksUserData,
+ tracksEventData,
+ isSafeModeConfirmed,
+ consumerData,
+ isAdmin,
+ } = window.JP_IDENTITY_CRISIS__INITIAL_STATE;
+
+ if ( ! isSafeModeConfirmed ) {
+ ReactDOM.render(
+ <IDCScreen
+ wpcomHomeUrl={ wpcomHomeUrl }
+ currentUrl={ currentUrl }
+ apiRoot={ WP_API_root }
+ apiNonce={ WP_API_nonce }
+ redirectUri={ redirectUri }
+ tracksUserData={ tracksUserData }
+ tracksEventData={ tracksEventData }
+ customContent={
+ consumerData.hasOwnProperty( 'customContent' ) ? consumerData.customContent : {}
+ }
+ isAdmin={ isAdmin }
+ logo={ consumerData.hasOwnProperty( 'logo' ) ? consumerData.logo : undefined }
+ />,
+ container
+ );
+ }
+}
+
+render();
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/style.scss b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/style.scss
new file mode 100644
index 00000000..0b9ccb86
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/_inc/style.scss
@@ -0,0 +1,4 @@
+#jp-identity-crisis-container .jp-idc__idc-screen {
+ margin-top: 40px;
+ margin-bottom: 40px;
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php
new file mode 100644
index 00000000..cae3ed16
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php
@@ -0,0 +1,1219 @@
+<?php
+/**
+ * Identity_Crisis package.
+ *
+ * @package automattic/jetpack-identity-crisis
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Urls;
+use Automattic\Jetpack\Constants as Constants;
+use Automattic\Jetpack\IdentityCrisis\UI;
+use Automattic\Jetpack\Status as Status;
+use Automattic\Jetpack\Tracking as Tracking;
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * This class will handle everything involved with fixing an Identity Crisis.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+class Identity_Crisis {
+
+ /**
+ * Package Version
+ */
+ const PACKAGE_VERSION = '0.6.1';
+
+ /**
+ * Instance of the object.
+ *
+ * @var Identity_Crisis
+ **/
+ private static $instance = null;
+
+ /**
+ * The wpcom value of the home URL.
+ *
+ * @var string
+ */
+ public static $wpcom_home_url;
+
+ /**
+ * Has safe mode been confirmed?
+ * Beware, it never contains `true` for non-admins, so doesn't always reflect the actual value.
+ *
+ * @var bool
+ */
+ public static $is_safe_mode_confirmed;
+
+ /**
+ * The current screen, which is set if the current user is a non-admin and this is an admin page.
+ *
+ * @var WP_Screen
+ */
+ public static $current_screen;
+
+ /**
+ * Initializer.
+ *
+ * @return object
+ */
+ public static function init() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Identity_Crisis();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Class constructor.
+ *
+ * @return void
+ */
+ private function __construct() {
+ add_action( 'jetpack_sync_processed_actions', array( $this, 'maybe_clear_migrate_option' ) );
+ add_action( 'rest_api_init', array( 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints', 'initialize_rest_api' ) );
+ add_action( 'jetpack_idc_disconnect', array( __CLASS__, 'do_jetpack_idc_disconnect' ) );
+ add_action( 'jetpack_received_remote_request_response', array( $this, 'check_http_response_for_idc_detected' ) );
+
+ add_filter( 'jetpack_connection_disconnect_site_wpcom', array( __CLASS__, 'jetpack_connection_disconnect_site_wpcom_filter' ) );
+
+ add_filter( 'jetpack_remote_request_url', array( $this, 'add_idc_query_args_to_url' ) );
+
+ $urls_in_crisis = self::check_identity_crisis();
+ if ( false === $urls_in_crisis ) {
+ return;
+ }
+
+ self::$wpcom_home_url = $urls_in_crisis['wpcom_home'];
+ add_action( 'init', array( $this, 'wordpress_init' ) );
+ }
+
+ /**
+ * Disconnect current connection and clear IDC options.
+ */
+ public static function do_jetpack_idc_disconnect() {
+ $connection = new Connection_Manager();
+
+ // If the site is in an IDC because sync is not allowed,
+ // let's make sure to not disconnect the production site.
+ if ( ! self::validate_sync_error_idc_option() ) {
+ $connection->disconnect_site( true );
+ } else {
+ $connection->disconnect_site( false );
+ }
+
+ // 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();
+ }
+
+ /**
+ * Gets the link to the support document used to explain Safe Mode to users.
+ *
+ * @return string
+ */
+ public static function get_safe_mod_doc_url() {
+ return Redirect::get_url( 'jetpack-support-safe-mode' );
+ }
+
+ /**
+ * 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], $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, $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'], $_GET['_wpnonce'] ) &&
+ wp_verify_nonce( $_GET['_wpnonce'], 'jetpack_idc_clear_confirmation' )
+ ) {
+ 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()
+ || $status->is_staging_site()
+ || self::validate_sync_error_idc_option() ) {
+ return $url;
+ }
+
+ $query_args = array(
+ 'home' => Urls::home_url(),
+ 'siteurl' => Urls::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;
+ }
+
+ return add_query_arg( $query_args, $url );
+ }
+
+ /**
+ * Non-admins current screen check.
+ *
+ * @param object $current_screen Current screen.
+ *
+ * @return null
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function non_admins_current_screen_check( $current_screen ) {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ self::$current_screen = $current_screen;
+ if ( isset( $current_screen->id ) && 'toplevel_page_jetpack' === $current_screen->id ) {
+ return null;
+ }
+
+ return null;
+ }
+
+ /**
+ * 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' );
+
+ $title = sprintf(
+ '<span class="jp-idc-admin-bar">%s %s</span>',
+ '<span class="dashicons dashicons-warning"></span>',
+ esc_html__( 'Jetpack Safe Mode', 'jetpack-idc' )
+ );
+
+ $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 ) ) {
+ return false;
+ }
+
+ 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;
+ }
+
+ /**
+ * Prepare URL for display.
+ *
+ * @param string $url URL to display.
+ *
+ * @return string
+ */
+ public static function prepare_url_for_display( $url ) {
+ return untrailingslashit( self::normalize_url_protocol_agnostic( $url ) );
+ }
+
+ /**
+ * 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',
+ )
+ );
+ }
+
+ /**
+ * 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']
+ ) {
+ $is_valid = false;
+ // 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;
+ }
+
+ /**
+ * 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-idc' ),
+ $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;
+ }
+
+ return $returned_values;
+ }
+
+ /**
+ * Returns the value of the jetpack_sync_idc_optin filter, or constant.
+ * If set to true, the site will be put into staging mode.
+ *
+ * @return bool
+ * @since 0.2.0
+ * @since-jetpack 4.3.2
+ * @deprecated 0.2.6 Use should_handle_idc()
+ * @see Automattic\Jetpack\Identity_Crisis::should_handle_idc
+ */
+ public static function sync_idc_optin() {
+ _deprecated_function( __METHOD__, '0.2.6', 'Automattic\\Jetpack\\Identity_Crisis::should_handle_idc' );
+ return self::should_handle_idc();
+ }
+
+ /**
+ * 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 and the
+ * legacy jetpack_sync_idc_optin 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' );
+ } elseif ( Constants::is_defined( 'JETPACK_SYNC_IDC_OPTIN' ) ) {
+ // Check the legacy constant. This constant should be considered deprecated as of version 0.2.6.
+ $default = Constants::get_constant( 'JETPACK_SYNC_IDC_OPTIN' );
+ } else {
+ $default = ! Constants::is_defined( 'SUNRISE' ) && ! is_multisite();
+ }
+
+ // Add a callback which uses the legacy filter 'jetpack_sync_idc_optin'.
+ add_filter( 'jetpack_should_handle_idc', array( __CLASS__, 'legacy_jetpack_sync_idc_optin_filter' ) );
+
+ /**
+ * 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 );
+ }
+
+ /**
+ * Returns the value for the deprecated filter, 'jetpack_sync_idc_optin'. That filter has been replaced with the
+ * 'jetpack_should_handle_idc' filter.
+ *
+ * @since 0.2.6
+ *
+ * @param bool $default Whether the site is opted in to IDC mitigation.
+ */
+ public static function legacy_jetpack_sync_idc_optin_filter( $default ) {
+ /**
+ * 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_SYNC_IDC_OPTIN constant if set.
+ *
+ * @param bool $default Whether the site is opted in to IDC mitigation.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.3.2
+ * @deprecated 0.2.6 Use jetpack_should_handle_idc
+ */
+ return (bool) apply_filters_deprecated( 'jetpack_sync_idc_optin', array( $default ), '0.2.6', 'jetpack_should_handle_idc' );
+ }
+
+ /**
+ * Does the current admin page have help tabs?
+ *
+ * @return bool
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function admin_page_has_help_tabs() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ if ( ! function_exists( 'get_current_screen' ) ) {
+ return false;
+ }
+
+ $current_screen = get_current_screen();
+ $tabs = $current_screen->get_help_tabs();
+
+ return ! empty( $tabs );
+ }
+
+ /**
+ * Renders the non-admin IDC notice.
+ *
+ * @return void
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function display_non_admin_idc_notice() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ $classes = 'jp-idc-notice inline is-non-admin notice notice-warning';
+ if ( isset( self::$current_screen ) && 'toplevel_page_jetpack' !== self::$current_screen->id ) {
+ $classes .= ' is-dismissible';
+ }
+
+ if ( $this->admin_page_has_help_tabs() ) {
+ $classes .= ' has-help-tabs';
+ }
+ ?>
+
+ <div class="<?php echo esc_attr( $classes ); ?>">
+ <?php $this->render_notice_header(); ?>
+ <div class="jp-idc-notice__content-header">
+ <h3 class="jp-idc-notice__content-header__lead">
+ <?php echo $this->get_non_admin_notice_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </h3>
+
+ <p class="jp-idc-notice__content-header__explanation">
+ <?php echo $this->get_non_admin_contact_admin_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * First "step" of the IDC mitigation. Will provide some messaging and two options/buttons.
+ * "Confirm Staging" - Dismiss the notice and continue on with our lives in staging mode.
+ * "Fix Jetpack Connection" - Will disconnect the site and start the mitigation...
+ *
+ * @return void
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function display_idc_notice() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ $classes = 'jp-idc-notice inline notice notice-warning';
+ if ( $this->admin_page_has_help_tabs() ) {
+ $classes .= ' has-help-tabs';
+ }
+ ?>
+ <div class="<?php echo esc_attr( $classes ); ?>">
+ <?php $this->render_notice_header(); ?>
+ <?php $this->render_notice_first_step(); ?>
+ <?php $this->render_notice_second_step(); ?>
+ </div>
+ <?php
+ }
+
+ /**
+ * Enqueue CSS for the admin bar.
+ *
+ * @return void
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function enqueue_admin_bar_css() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+ }
+
+ /**
+ * Enqueue scripts for the notice.
+ *
+ * @return void
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function enqueue_idc_notice_files() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ // Register and Enqueue jp-tracks-functions.
+ Tracking::register_tracks_functions_scripts( true );
+ }
+
+ /**
+ * Renders the notice header.
+ *
+ * @return void
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function render_notice_header() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ ?>
+ <div class="jp-idc-notice__header">
+ <div class="jp-idc-notice__header__emblem">
+ <?php
+ $jetpack_logo = new Jetpack_Logo();
+ echo $jetpack_logo->get_jp_emblem(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ </div>
+ <p class="jp-idc-notice__header__text">
+ <?php esc_html_e( 'Jetpack Safe Mode', 'jetpack-idc' ); ?>
+ </p>
+ </div>
+
+ <div class="jp-idc-notice__separator"></div>
+ <?php
+ }
+
+ /**
+ * Is a container for the error notices.
+ * Will be shown/controlled by jQuery in idc-notice.js.
+ *
+ * @return void
+ */
+ public function render_error_notice() {
+ ?>
+ <div class="jp-idc-error__notice dops-notice is-error">
+ <svg class="gridicon gridicons-notice dops-notice__icon" height="24" width="24" viewBox="0 0 24 24">
+ <g>
+ <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-2h2v2zm0-4h-2l-.5-6h3l-.5 6z"></path>
+ </g>
+ </svg>
+ <div class="dops-notice__content">
+ <span class="dops-notice__text">
+ <?php esc_html_e( 'Something went wrong:', 'jetpack-idc' ); ?>
+ <span class="jp-idc-error__desc"></span>
+ </span>
+ <a class="dops-notice__action" href="javascript:void(0);">
+ <span id="jp-idc-error__action">
+ <?php esc_html_e( 'Try Again', 'jetpack-idc' ); ?>
+ </span>
+ </a>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Renders the first step notice.
+ *
+ * @return void
+ */
+ public function render_notice_first_step() {
+ ?>
+ <div class="jp-idc-notice__first-step">
+ <div class="jp-idc-notice__content-header">
+ <h3 class="jp-idc-notice__content-header__lead">
+ <?php echo $this->get_first_step_header_lead(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </h3>
+
+ <p class="jp-idc-notice__content-header__explanation">
+ <?php echo $this->get_first_step_header_explanation(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ </div>
+
+ <?php $this->render_error_notice(); ?>
+
+ <div class="jp-idc-notice__actions">
+ <div class="jp-idc-notice__action">
+ <p class="jp-idc-notice__action__explanation">
+ <?php echo $this->get_confirm_safe_mode_action_explanation(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ <button id="jp-idc-confirm-safe-mode-action" class="dops-button">
+ <?php echo $this->get_confirm_safe_mode_button_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </button>
+ </div>
+
+ <div class="jp-idc-notice__action">
+ <p class="jp-idc-notice__action__explanation">
+ <?php echo $this->get_first_step_fix_connection_action_explanation(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ <button id="jp-idc-fix-connection-action" class="dops-button">
+ <?php echo $this->get_first_step_fix_connection_button_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </button>
+ </div>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Renders the second step notice.
+ *
+ * @return void
+ */
+ public function render_notice_second_step() {
+ ?>
+ <div class="jp-idc-notice__second-step">
+ <div class="jp-idc-notice__content-header">
+ <h3 class="jp-idc-notice__content-header__lead">
+ <?php echo $this->get_second_step_header_lead(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </h3>
+ </div>
+
+ <?php $this->render_error_notice(); ?>
+
+ <div class="jp-idc-notice__actions">
+ <div class="jp-idc-notice__action">
+ <p class="jp-idc-notice__action__explanation">
+ <?php echo $this->get_migrate_site_action_explanation(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ <button id="jp-idc-migrate-action" class="dops-button">
+ <?php echo $this->get_migrate_site_button_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </button>
+ </div>
+
+ <div class="jp-idc-notice__action">
+ <p class="jp-idc-notice__action__explanation">
+ <?php echo $this->get_start_fresh_action_explanation(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ <button id="jp-idc-reconnect-site-action" class="dops-button">
+ <?php echo $this->get_start_fresh_button_text(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </button>
+ </div>
+
+ </div>
+
+ <p class="jp-idc-notice__unsure-prompt">
+ <?php echo $this->get_unsure_prompt(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </p>
+ </div>
+ <?php
+ }
+
+ /**
+ * Returns the first step header lead.
+ *
+ * @return string
+ */
+ public function get_first_step_header_lead() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Safe mode docs URL and site URL. */
+ __( 'Jetpack has been placed into <a href="%1$s">Safe mode</a> because we noticed this is an exact copy of <a href="%2$s">%3$s</a>.', 'jetpack-idc' ),
+ esc_url( self::get_safe_mod_doc_url() ),
+ esc_url( self::$wpcom_home_url ),
+ self::prepare_url_for_display( esc_url_raw( self::$wpcom_home_url ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default header text in the first step of the Safe Mode notice.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_first_step_header_lead', $html );
+ }
+
+ /**
+ * Returns the first step header explanation.
+ *
+ * @return string
+ */
+ public function get_first_step_header_explanation() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Safe mode docs URL. */
+ __( 'Please confirm Safe Mode or fix the Jetpack connection. Select one of the options below or <a href="%1$s">learn more about Safe Mode</a>.', 'jetpack-idc' ),
+ esc_url( self::get_safe_mod_doc_url() )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default header explanation text in the first step of the Safe Mode notice.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_first_step_header_explanation', $html );
+ }
+
+ /**
+ * Returns the confirm safe mode explanation.
+ *
+ * @return string
+ */
+ public function get_confirm_safe_mode_action_explanation() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Site URL. */
+ __( 'Is this website a temporary duplicate of <a href="%1$s">%2$s</a> for the purposes of testing, staging or development? If so, we recommend keeping it in Safe Mode.', 'jetpack-idc' ),
+ esc_url( untrailingslashit( self::$wpcom_home_url ) ),
+ self::prepare_url_for_display( esc_url( self::$wpcom_home_url ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text used to explain the confirm safe mode action.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_confirm_safe_mode_explanation', $html );
+ }
+
+ /**
+ * Returns the confirm safe mode button text.
+ *
+ * @return string
+ */
+ public function get_confirm_safe_mode_button_text() {
+ $string = esc_html__( 'Confirm Safe Mode', 'jetpack-idc' );
+
+ /**
+ * Allows overriding of the default text used for the confirm safe mode action button.
+ *
+ * @param string $string The string to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_confirm_safe_mode_button_text', $string );
+ }
+
+ /**
+ * Returns the first step fix connection action explanation.
+ *
+ * @return string
+ */
+ public function get_first_step_fix_connection_action_explanation() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Site URL. */
+ __( 'If this is a separate and new website, or the new home of <a href="%1$s">%2$s</a>, we recommend turning Safe Mode off, and re-establishing your connection to WordPress.com.', 'jetpack-idc' ),
+ esc_url( untrailingslashit( self::$wpcom_home_url ) ),
+ self::prepare_url_for_display( esc_url( self::$wpcom_home_url ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text used to explain the fix Jetpack connection action.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_first_fix_connection_explanation', $html );
+ }
+
+ /**
+ * Returns the first step fix connection button text.
+ *
+ * @return string
+ */
+ public function get_first_step_fix_connection_button_text() {
+ $string = esc_html__( "Fix Jetpack's Connection", 'jetpack-idc' );
+
+ /**
+ * Allows overriding of the default text used for the fix Jetpack connection action button.
+ *
+ * @param string $string The string to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_first_step_fix_connection_button_text', $string );
+ }
+
+ /**
+ * Returns the second step header lead.
+ *
+ * @return string
+ */
+ public function get_second_step_header_lead() {
+ $string = sprintf(
+ /* translators: %s: Site URL. */
+ esc_html__( 'Is %1$s the new home of %2$s?', 'jetpack-idc' ),
+ untrailingslashit( self::normalize_url_protocol_agnostic( get_home_url() ) ),
+ untrailingslashit( self::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
+ );
+
+ /**
+ * Allows overriding of the default header text in the second step of the Safe Mode notice.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_second_step_header_lead', $string );
+ }
+
+ /**
+ * Returns the site action explanation.
+ *
+ * @return string
+ */
+ public function get_migrate_site_action_explanation() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Site URL. */
+ __( 'Yes. <a href="%1$s">%2$s</a> is replacing <a href="%3$s">%4$s</a>. I would like to migrate my stats and subscribers from <a href="%3$s">%4$s</a> to <a href="%1$s">%2$s</a>.', 'jetpack-idc' ),
+ esc_url( get_home_url() ),
+ self::prepare_url_for_display( get_home_url() ),
+ esc_url( self::$wpcom_home_url ),
+ untrailingslashit( self::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text for explaining the migrate site action.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_migrate_site_explanation', $html );
+ }
+
+ /**
+ * Returns the migrate site button text.
+ *
+ * @return string
+ */
+ public function get_migrate_site_button_text() {
+ $string = esc_html__( 'Migrate Stats &amp; Subscribers', 'jetpack-idc' );
+
+ /**
+ * Allows overriding of the default text used for the migrate site action button.
+ *
+ * @param string $string The string to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_migrate_site_button_text', $string );
+ }
+
+ /**
+ * Returns the start fresh explanation.
+ *
+ * @return string
+ */
+ public function get_start_fresh_action_explanation() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Site URL. */
+ __( 'No. <a href="%1$s">%2$s</a> is a new and different website that\'s separate from <a href="%3$s">%4$s</a>. It requires a new connection to WordPress.com for new stats and subscribers.', 'jetpack-idc' ),
+ esc_url( get_home_url() ),
+ self::prepare_url_for_display( get_home_url() ),
+ esc_url( self::$wpcom_home_url ),
+ untrailingslashit( self::normalize_url_protocol_agnostic( esc_url_raw( self::$wpcom_home_url ) ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text for explaining the start fresh action.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_start_fresh_explanation', $html );
+ }
+
+ /**
+ * Returns the start fresh button text.
+ *
+ * @return string
+ */
+ public function get_start_fresh_button_text() {
+ $string = esc_html__( 'Start Fresh &amp; Create New Connection', 'jetpack-idc' );
+
+ /**
+ * Allows overriding of the default text used for the start fresh action button.
+ *
+ * @param string $string The string to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_start_fresh_button_text', $string );
+ }
+
+ /**
+ * Returns the unsure prompt text.
+ *
+ * @return string
+ */
+ public function get_unsure_prompt() {
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Safe mode docs URL. */
+ __( 'Unsure what to do? <a href="%1$s">Read more about Jetpack Safe Mode</a>', 'jetpack-idc' ),
+ esc_url( self::get_safe_mod_doc_url() )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text using in the "Unsure what to do?" prompt.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_unsure_prompt', $html );
+ }
+
+ /**
+ * Returns the non-admin notice text.
+ *
+ * @return string
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function get_non_admin_notice_text() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ $html = wp_kses(
+ sprintf(
+ /* translators: %s: Safe mode docs URL. */
+ __( 'Jetpack has been placed into Safe Mode. Learn more about <a href="%1$s">Safe Mode</a>.', 'jetpack-idc' ),
+ esc_url( self::get_safe_mod_doc_url() )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+
+ /**
+ * Allows overriding of the default text that is displayed to non-admin on the Jetpack admin page.
+ *
+ * @param string $html The HTML to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_non_admin_notice_text', $html );
+ }
+
+ /**
+ * Returns the non-admin contact admin text.
+ *
+ * @return string
+ * @deprecated 0.5.0 Use `@automattic/jetpack-idc` instead.
+ */
+ public function get_non_admin_contact_admin_text() {
+ _deprecated_function( __METHOD__, '0.5.0' );
+
+ $string = esc_html__( 'An administrator of this site can take Jetpack out of Safe Mode.', 'jetpack-idc' );
+
+ /**
+ * Allows overriding of the default text that is displayed to non-admins prompting them to contact an admin.
+ *
+ * @param string $string The string to be displayed.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ return apply_filters( 'jetpack_idc_non_admin_contact_admin_text', $string );
+ }
+
+ /**
+ * 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'],
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php
new file mode 100644
index 00000000..496f53fa
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php
@@ -0,0 +1,188 @@
+<?php
+/**
+ * Identity_Crisis package.
+ *
+ * @package automattic/jetpack-identity-crisis
+ */
+
+namespace Automattic\Jetpack\IdentityCrisis;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Jetpack_Options;
+use WP_Error;
+use WP_REST_Server;
+
+/**
+ * This class will handle Identity Crisis Endpoints
+ *
+ * @since 0.2.0
+ */
+class REST_Endpoints {
+
+ /**
+ * Initialize REST routes.
+ */
+ public static function initialize_rest_api() {
+
+ // Confirm that a site in identity crisis should be in staging mode.
+ register_rest_route(
+ 'jetpack/v4',
+ '/identity-crisis/confirm-safe-mode',
+ array(
+ 'methods' => 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-idc' ),
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+
+ }
+
+ /**
+ * 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-idc' ),
+ 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-idc' ),
+ 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-idc' ),
+ 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-idc'
+ );
+
+ return new WP_Error( 'invalid_user_permission_identity_crisis', $error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php
new file mode 100644
index 00000000..a3c2694a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php
@@ -0,0 +1,151 @@
+<?php
+/**
+ * Identity_Crisis package.
+ *
+ * @package automattic/jetpack-identity-crisis
+ */
+
+namespace Automattic\Jetpack\IdentityCrisis;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Tracking as Tracking;
+use Jetpack_Tracks_Client;
+
+/**
+ * The Identity Crisis UI handling.
+ */
+class UI {
+
+ /**
+ * Initialization.
+ */
+ public static function init() {
+ if ( did_action( 'jetpack_identity_crisis_ui_init' ) ) {
+ return;
+ }
+
+ /**
+ * Action called after initializing Identity Crisis UI.
+ *
+ * @since 0.6.0
+ */
+ do_action( 'jetpack_identity_crisis_ui_init' );
+
+ $idc_data = Identity_Crisis::check_identity_crisis();
+
+ if ( false === $idc_data ) {
+ return;
+ }
+
+ add_action( 'admin_enqueue_scripts', array( static::class, 'enqueue_scripts' ) );
+
+ Tracking::register_tracks_functions_scripts( true );
+ }
+
+ /**
+ * Enqueue scripts!
+ */
+ public static function enqueue_scripts() {
+ if ( is_admin() ) {
+ Assets::register_script(
+ 'jp_identity_crisis_banner',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack-idc',
+ )
+ );
+ 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() {
+ ?>
+ <div id="jp-identity-crisis-container"></div>
+ <?php
+ }
+
+ /**
+ * Return the rendered initial state JavaScript code.
+ *
+ * @return string
+ */
+ private static function get_initial_state() {
+ return 'var JP_IDENTITY_CRISIS__INITIAL_STATE=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( static::get_initial_state_data() ) ) . '"));';
+ }
+
+ /**
+ * Get the initial state data.
+ *
+ * @return array
+ */
+ private static function get_initial_state_data() {
+ $idc_urls = Identity_Crisis::get_mismatched_urls();
+ $current_screen = get_current_screen();
+ $is_admin = current_user_can( 'jetpack_disconnect' );
+
+ return array(
+ 'WP_API_root' => 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' => str_replace( '/wp-admin/', '/', $_SERVER['REQUEST_URI'] ),
+ 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
+ 'tracksEventData' => array(
+ 'isAdmin' => $is_admin,
+ 'currentScreen' => $current_screen ? $current_screen->id : false,
+ ),
+ 'isSafeModeConfirmed' => Identity_Crisis::$is_safe_mode_confirmed,
+ 'consumerData' => static::get_consumer_data(),
+ 'isAdmin' => $is_admin,
+ );
+ }
+
+ /**
+ * Get the package consumer data.
+ *
+ * @return array
+ */
+ private static function get_consumer_data() {
+ $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 ? 1 : -1;
+ }
+ );
+
+ $consumer_chosen = null;
+ $consumer_url_length = 0;
+
+ foreach ( $consumers as $consumer ) {
+ if ( empty( $consumer['admin_page'] ) || ! is_string( $consumer['admin_page'] ) ) {
+ continue;
+ }
+
+ if ( 0 === strpos( $_SERVER['REQUEST_URI'], $consumer['admin_page'] ) && strlen( $consumer['admin_page'] ) > $consumer_url_length ) {
+ $consumer_chosen = $consumer;
+ $consumer_url_length = strlen( $consumer['admin_page'] );
+ }
+ }
+
+ return $consumer_chosen ? $consumer_chosen : array_shift( $consumers );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md
new file mode 100644
index 00000000..f734a12f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md
@@ -0,0 +1,431 @@
+# 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.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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php
new file mode 100644
index 00000000..72b05048
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('wp-polyfill'), 'version' => 'dd5a50b1bccd783c463742176b0af4b9'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.css
new file mode 100644
index 00000000..bace1249
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.css
@@ -0,0 +1 @@
+.jitm-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:4px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:14px;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}.jitm-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.jitm-button:disabled,.jitm-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.jitm-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.jitm-button.is-compact{font-size:11px;line-height:1;padding:7px;text-transform:uppercase;white-space:nowrap}.jitm-button.is-compact:disabled{color:#eee}.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.hidden{display:none}.jitm-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.jitm-button.is-primary:focus,.jitm-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.jitm-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.jitm-button.is-primary:disabled,.jitm-button.is-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}.jitm-button.is-primary.is-compact{color:#fff;white-space:nowrap}.jitm-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;clear:both;display:block;margin:3rem 1.25rem 0 auto;padding:1rem;position:relative}.jitm-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.jitm-card{margin-bottom:1rem;padding:1.5rem}}.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}#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{border-left:4px solid #4ab866;display:flex;padding:.75rem .375rem .75rem .75rem;position:relative;z-index:2}@media(max-width:480px){.jitm-banner.jitm-card{display:flex;flex-direction:column;padding:.75rem}}.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 .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-personal{border-left-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{border-left-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-business,.jitm-banner.jitm-card.woo-jitm{border-left-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:.75rem 1rem}.jitm-banner.jitm-card.is-dismissible{padding-right:1rem}}.jitm-banner__buttons_container{display:grid;height:50%;margin-bottom:auto;margin-top:auto}@media(min-width:481px){.jitm-banner__buttons_container{display:flex}}.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:.75rem}}.jitm-banner__icon-plan .jp-emblem svg{fill:#069e08;height:2rem;width:2rem}.jitm-banner__icon-plan .jp-emblem .jitm-jp-logo{fill:inherit;height:inherit;width:6rem}@media(min-width:481px){.jitm-banner__icon-plan{align-items:center}}@media(max-width:960px){.jitm-banner__icon-plan{margin-bottom:10px}}.jitm-banner__content{align-items:center;display:flex;flex-grow:1;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{display:grid;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__title{color:#414141}.jitm-banner__info .jitm-banner__title{font-size:14px;font-weight:500}.jitm-banner__info .jitm-banner__description{font-size:.75rem;line-height:1.5;margin-top:.375rem}.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;margin:.5rem 0 0;text-align:left;width:100%}.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{margin:0 .25rem 0 .5rem;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 16px/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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.js
new file mode 100644
index 00000000..718bf770
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.js
@@ -0,0 +1 @@
+!function(){"use strict";jQuery(document).ready((function(t){var a={default:function(a){var e='<div class="jitm-card jitm-banner '+(a.CTA.message?"has-call-to-action":"")+" is-upgrade-premium "+a.content.classes+'" data-stats_url="'+a.jitm_stats_url+'">';if(e+='<div class="jitm-banner__content">',e+='<div class="jitm-banner__icon-plan">'+a.content.icon+"</div>",e+='<div class="jitm-banner__info">',e+='<div class="jitm-banner__title">'+a.content.message+"</div>",a.content.description&&""!==a.content.description){if(e+='<div class="jitm-banner__description">'+a.content.description,a.content.list.length>0){e+='<ul class="banner__list">';for(var i=0;i<a.content.list.length;i++){var n=a.content.list[i].item;a.content.list[i].url&&(n='<a href="'+a.content.list[i].url+'" target="_blank" rel="noopener noreferrer" data-module="'+a.feature_class+'" data-jptracks-name="nudge_item_click" data-jptracks-prop="jitm-'+a.id+'">'+n+"</a>"),e+='<li><svg class="gridicon gridicons-checkmark" height="16" width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414" /></g></svg>'+n+"</li>"}}e+="</div>"}if(e+="</div>",e+="</div>",e+='<div class="jitm-banner__buttons_container">',a.activate_module&&(e+='<div class="jitm-banner__action" id="jitm-banner__activate">',e+='<a href="#" data-module="'+a.activate_module+'" type="button" class="jitm-button is-compact is-primary jptracks" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-'+a.id+'-activate_module">'+window.jitm_config.activate_module_text+"</a>",e+="</div>"),a.CTA.message){var c="jitm-button is-compact jptracks";a.CTA.primary&&null===a.activate_module&&(c+=" is-primary");var o=a.CTA.ajax_action;e+='<div class="jitm-banner__action">',e+='<a href="'+(a.CTA.hasOwnProperty("link")&&a.CTA.link.length?a.CTA.link:a.url)+'" target="'+(!1===a.CTA.newWindow||o?"_self":"_blank")+'" rel="noopener noreferrer" title="'+a.CTA.message+'" data-module="'+a.feature_class+'" type="button" class="'+c+'" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-'+a.id+'" '+(o?'data-ajax-action="'+o+'"':"")+">"+a.CTA.message+"</a>",e+="</div>"}return e+="</div>",a.is_dismissible&&(e+='<a href="#" data-module="'+a.feature_class+'" class="jitm-banner__dismiss"></a>'),t(e+="</div>")}},e=function(){t(".jetpack-jitm-message").each((function(){var e=t(this),i=e.data("message-path"),n=e.data("query"),c=e.data("redirect"),o=location.hash;"_dashboard"!==(o=o.replace(/#\//,"_"))&&(i=i.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:i,query:n,full_jp_logo_exists:r,_wpnonce:e.data("nonce")}).then((function(i){"object"==typeof i&&i[1]&&(i=[i[1]]),0!==i.length&&i[0].content&&function(e,i,n){var c;(c=i.template)&&a[c]||(c="default"),i.url=i.url+"&redirect="+n;var o,r=a[c](i);r.find(".jitm-banner__dismiss").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:i.id,feature_class:i.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").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(){t("#jitm-banner__activate a").text(window.jitm_config.activated_module_text),t("#jitm-banner__activate a").attr("disabled",!0),setTimeout((function(){r.fadeOut("slow")}),2e3)}))})),r.find(".jitm-button[data-ajax-action]").click((function(a){a.preventDefault();var i=t(this);return i.attr("disabled",!0),t.post(window.ajaxurl,{action:i.data("ajax-action"),_nonce:e.data("ajax-nonce")}).done((function(){r.fadeOut("slow")})).fail((function(){i.attr("disabled",!1)})),!1}))}(e,i[0],c)}))}))};e(),t(window).bind("hashchange",(function(t){if(t.originalEvent.newURL.indexOf("jetpack#/")>=0){var a=document.querySelector(".jitm-card");a&&a.remove(),e()}}))}))}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css
new file mode 100644
index 00000000..ca5911ef
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css
@@ -0,0 +1 @@
+.jitm-button{-webkit-appearance:none;appearance:none;background:#f6f7f7;border:1px solid #2271b1;border-radius:4px;box-sizing:border-box;color:#2271b1;cursor:pointer;display:inline-block;font-size:14px;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}.jitm-button:hover{background:#f0f0f1;border-color:#0a4b78;color:#0a4b78}.jitm-button:disabled,.jitm-button[disabled]{background:#fff;border-color:#eee;color:#eee;cursor:default}.jitm-button:focus{background:#fff;border-color:#2271b1;box-shadow:0 0 0 1px #2271b1}.jitm-button.is-compact{font-size:11px;line-height:1;padding:7px;text-transform:uppercase;white-space:nowrap}.jitm-button.is-compact:disabled{color:#eee}.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.hidden{display:none}.jitm-button.is-primary{background:#3582c4;border-color:#3582c4;color:#fff}.jitm-button.is-primary:focus,.jitm-button.is-primary:hover{background:#2271b1;border-color:#2271b1;color:#fff}.jitm-button.is-primary:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.jitm-button.is-primary:disabled,.jitm-button.is-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}.jitm-button.is-primary.is-compact{color:#fff;white-space:nowrap}.jitm-card{background:#fff;box-shadow:0 0 0 1px #c3c4c7,0 1px 1px 1px rgba(0,0,0,.04);box-sizing:border-box;clear:both;display:block;margin:3rem auto 0 1.25rem;padding:1rem;position:relative}.jitm-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media(min-width:481px){.jitm-card{margin-bottom:1rem;padding:1.5rem}}.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}#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{border-right:4px solid #4ab866;display:flex;padding:.75rem .75rem .75rem .375rem;position:relative;z-index:2}@media(max-width:480px){.jitm-banner.jitm-card{display:flex;flex-direction:column;padding:.75rem}}.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 .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-personal{border-right-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{border-right-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-business,.jitm-banner.jitm-card.woo-jitm{border-right-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:.75rem 1rem}.jitm-banner.jitm-card.is-dismissible{padding-left:1rem}}.jitm-banner__buttons_container{display:grid;height:50%;margin-bottom:auto;margin-top:auto}@media(min-width:481px){.jitm-banner__buttons_container{display:flex}}.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:.75rem}}.jitm-banner__icon-plan .jp-emblem svg{fill:#069e08;height:2rem;width:2rem}.jitm-banner__icon-plan .jp-emblem .jitm-jp-logo{fill:inherit;height:inherit;width:6rem}@media(min-width:481px){.jitm-banner__icon-plan{align-items:center}}@media(max-width:960px){.jitm-banner__icon-plan{margin-bottom:10px}}.jitm-banner__content{align-items:center;display:flex;flex-grow:1;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{display:grid;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__title{color:#414141}.jitm-banner__info .jitm-banner__title{font-size:14px;font-weight:500}.jitm-banner__info .jitm-banner__description{font-size:.75rem;line-height:1.5;margin-top:.375rem}.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;margin:.5rem 0 0;text-align:right;width:100%}.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{margin:0 .5rem 0 .25rem;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 16px/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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php
new file mode 100644
index 00000000..12577b09
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php
@@ -0,0 +1,312 @@
+<?php
+/**
+ * Jetpack's JITM class.
+ *
+ * @package automattic/jetpack-jitm
+ */
+
+namespace Automattic\Jetpack\JITMS;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Assets\Logo as Jetpack_Logo;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Status;
+
+/**
+ * Jetpack just in time messaging through out the admin
+ *
+ * @since 1.1.0
+ * @since-jetpack 5.6.0
+ */
+class JITM {
+
+ const PACKAGE_VERSION = '2.2.0';
+
+ /**
+ * The configuration method that is called from the jetpack-config package.
+ */
+ public static function configure() {
+ $jitm = self::get_instance();
+ $jitm->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' ) );
+ }
+ }
+
+ /**
+ * Function to enqueue jitm css and js
+ */
+ public function jitm_enqueue_files() {
+ if ( $this->is_gutenberg_page() ) {
+ return;
+ }
+
+ Assets::register_script(
+ 'jetpack-jitm',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'in_footer' => true,
+ 'dependencies' => array( 'jquery' ),
+ )
+ );
+ Assets::enqueue_script( 'jetpack-jitm' );
+ 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' ),
+ 'nonce' => wp_create_nonce( 'wp_rest' ),
+ )
+ );
+ }
+
+ /**
+ * Is the current page a block editor page?
+ *
+ * @since 1.1.0
+ * @since-jetpack 8.0.0
+ */
+ public function is_gutenberg_page() {
+ $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;
+ }
+
+ // do not display on Gutenberg pages.
+ if ( $this->is_gutenberg_page() ) {
+ return;
+ }
+
+ $message_path = $this->get_message_path();
+ $query_string = _http_build_query( $_GET, '', ',' ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $current_screen = wp_unslash( $_SERVER['REQUEST_URI'] );
+ ?>
+ <div class="jetpack-jitm-message"
+ data-nonce="<?php echo esc_attr( wp_create_nonce( 'wp_rest' ) ); ?>"
+ data-ajax-nonce="<?php echo esc_attr( wp_create_nonce( 'wp_ajax_action' ) ); ?>"
+ data-message-path="<?php echo esc_attr( $message_path ); ?>"
+ data-query="<?php echo urlencode_deep( $query_string ); ?>"
+ data-redirect="<?php echo urlencode_deep( $current_screen ); ?>"
+ ></div>
+ <?php
+ }
+
+ /**
+ * Generate the icon to display on the JITM.
+ *
+ * All icons supported in this method should be included in the array returned by
+ * JITM::get_supported_icons.
+ *
+ * @param string $content_icon Icon type name.
+ * @param bool $full_jp_logo_exists Is there a big JP logo already displayed on this screen.
+ */
+ public function generate_icon( $content_icon, $full_jp_logo_exists ) {
+ switch ( $content_icon ) {
+ case 'jetpack':
+ $jetpack_logo = new Jetpack_Logo();
+ $content_icon = '<div class="jp-emblem">' . ( ( $full_jp_logo_exists ) ? $jetpack_logo->get_jp_emblem() : $jetpack_logo->get_jp_emblem_larger() ) . '</div>';
+ break;
+ case 'woocommerce':
+ $content_icon = '<div class="jp-emblem"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 168 100" xml:space="preserve" enable-background="new 0 0 168 100" width="50" height="30"><style type="text/css">
+ .st0{clip-path:url(#SVGID_2_);enable-background:new ;}
+ .st1{clip-path:url(#SVGID_4_);}
+ .st2{clip-path:url(#SVGID_6_);}
+ .st3{clip-path:url(#SVGID_8_);fill:#8F567F;}
+ .st4{clip-path:url(#SVGID_10_);fill:#FFFFFE;}
+ .st5{clip-path:url(#SVGID_12_);fill:#FFFFFE;}
+ .st6{clip-path:url(#SVGID_14_);fill:#FFFFFE;}
+ </style><g><defs><polygon id="SVGID_1_" points="83.8 100 0 100 0 0.3 83.8 0.3 167.6 0.3 167.6 100 "/></defs><clipPath id="SVGID_2_"><use xlink:href="#SVGID_1_" overflow="visible"/></clipPath><g class="st0"><g><defs><rect id="SVGID_3_" width="168" height="100"/></defs><clipPath id="SVGID_4_"><use xlink:href="#SVGID_3_" overflow="visible"/></clipPath><g class="st1"><defs><path id="SVGID_5_" d="M15.6 0.3H152c8.6 0 15.6 7 15.6 15.6v52c0 8.6-7 15.6-15.6 15.6h-48.9l6.7 16.4L80.2 83.6H15.6C7 83.6 0 76.6 0 67.9v-52C0 7.3 7 0.3 15.6 0.3"/></defs><clipPath id="SVGID_6_"><use xlink:href="#SVGID_5_" overflow="visible"/></clipPath><g class="st2"><defs><rect id="SVGID_7_" width="168" height="100"/></defs><clipPath id="SVGID_8_"><use xlink:href="#SVGID_7_" overflow="visible"/></clipPath><rect x="-10" y="-9.7" class="st3" width="187.6" height="119.7"/></g></g></g></g></g><g><defs><path id="SVGID_9_" d="M8.4 14.5c1-1.3 2.4-2 4.3-2.1 3.5-0.2 5.5 1.4 6 4.9 2.1 14.3 4.4 26.4 6.9 36.4l15-28.6c1.4-2.6 3.1-3.9 5.2-4.1 3-0.2 4.9 1.7 5.6 5.7 1.7 9.1 3.9 16.9 6.5 23.4 1.8-17.4 4.8-30 9-37.7 1-1.9 2.5-2.9 4.5-3 1.6-0.1 3 0.3 4.3 1.4 1.3 1 2 2.3 2.1 3.9 0.1 1.2-0.1 2.3-0.7 3.3 -2.7 5-4.9 13.2-6.6 24.7 -1.7 11.1-2.3 19.8-1.9 26.1 0.1 1.7-0.1 3.2-0.8 4.5 -0.8 1.5-2 2.4-3.7 2.5 -1.8 0.1-3.6-0.7-5.4-2.5C52.4 66.7 47.4 57 43.7 44.1c-4.4 8.8-7.7 15.3-9.9 19.7 -4 7.7-7.5 11.7-10.3 11.9 -1.9 0.1-3.5-1.4-4.8-4.7 -3.5-9-7.3-26.3-11.3-52C7.1 17.3 7.5 15.8 8.4 14.5"/></defs><clipPath id="SVGID_10_"><use xlink:href="#SVGID_9_" overflow="visible"/></clipPath><rect x="-2.7" y="-0.6" class="st4" width="90.6" height="86.4"/></g><g><defs><path id="SVGID_11_" d="M155.6 25.2c-2.5-4.3-6.1-6.9-11-7.9 -1.3-0.3-2.5-0.4-3.7-0.4 -6.6 0-11.9 3.4-16.1 10.2 -3.6 5.8-5.3 12.3-5.3 19.3 0 5.3 1.1 9.8 3.3 13.6 2.5 4.3 6.1 6.9 11 7.9 1.3 0.3 2.5 0.4 3.7 0.4 6.6 0 12-3.4 16.1-10.2 3.6-5.9 5.3-12.4 5.3-19.4C159 33.4 157.9 28.9 155.6 25.2zM147 44.2c-0.9 4.5-2.7 7.9-5.2 10.1 -2 1.8-3.9 2.5-5.5 2.2 -1.7-0.3-3-1.8-4-4.4 -0.8-2.1-1.2-4.2-1.2-6.2 0-1.7 0.2-3.4 0.5-5 0.6-2.8 1.8-5.5 3.6-8.1 2.3-3.3 4.7-4.8 7.1-4.2 1.7 0.3 3 1.8 4 4.4 0.8 2.1 1.2 4.2 1.2 6.2C147.5 40.9 147.3 42.6 147 44.2z"/></defs><clipPath id="SVGID_12_"><use xlink:href="#SVGID_11_" overflow="visible"/></clipPath><rect x="109.6" y="6.9" class="st5" width="59.4" height="71.4"/></g><g><defs><path id="SVGID_13_" d="M112.7 25.2c-2.5-4.3-6.1-6.9-11-7.9 -1.3-0.3-2.5-0.4-3.7-0.4 -6.6 0-11.9 3.4-16.1 10.2 -3.5 5.8-5.3 12.3-5.3 19.3 0 5.3 1.1 9.8 3.3 13.6 2.5 4.3 6.1 6.9 11 7.9 1.3 0.3 2.5 0.4 3.7 0.4 6.6 0 12-3.4 16.1-10.2 3.5-5.9 5.3-12.4 5.3-19.4C116 33.4 114.9 28.9 112.7 25.2zM104.1 44.2c-0.9 4.5-2.7 7.9-5.2 10.1 -2 1.8-3.9 2.5-5.5 2.2 -1.7-0.3-3-1.8-4-4.4 -0.8-2.1-1.2-4.2-1.2-6.2 0-1.7 0.2-3.4 0.5-5 0.6-2.8 1.8-5.5 3.6-8.1 2.3-3.3 4.7-4.8 7.1-4.2 1.7 0.3 3 1.8 4 4.4 0.8 2.1 1.2 4.2 1.2 6.2C104.6 40.9 104.4 42.6 104.1 44.2z"/></defs><clipPath id="SVGID_14_"><use xlink:href="#SVGID_13_" overflow="visible"/></clipPath><rect x="66.7" y="6.9" class="st6" width="59.4" height="71.4"/></g></svg></div>';
+ 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php
new file mode 100644
index 00000000..79aaf3cf
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php
@@ -0,0 +1,607 @@
+<?php
+/**
+ * Jetpack's Post-Connection JITM class.
+ *
+ * @package automattic/jetpack-jitm
+ */
+
+namespace Automattic\Jetpack\JITMS;
+
+use Automattic\Jetpack\A8c_Mc_Stats;
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Device_Detection;
+use Automattic\Jetpack\Partner;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Tracking;
+
+/**
+ * Jetpack just in time messaging through out the admin
+ *
+ * @since 1.1.0
+ *
+ * @since-jetpack 5.6.0
+ */
+class Post_Connection_JITM extends JITM {
+
+ /**
+ * Tracking object.
+ *
+ * @var Automattic\Jetpack\Tracking
+ *
+ * @access private
+ */
+ public $tracking;
+
+ /**
+ * JITM constructor.
+ */
+ public function __construct() {
+ $this->tracking = new Tracking();
+ }
+
+ /**
+ * 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 ) {
+ parent::prepare_jitms( $screen );
+ if ( ! in_array(
+ $screen->id,
+ array(
+ 'jetpack_page_akismet-key-config',
+ 'admin_page_jetpack_modules',
+ ),
+ true
+ ) ) {
+ // Not really a JITM. Don't know where else to put this :) .
+ add_action( 'admin_notices', array( $this, 'delete_user_update_connection_owner_notice' ) );
+ }
+ }
+
+ /**
+ * A special filter for WooCommerce, to set a message based on local state.
+ *
+ * @param string $content The current message.
+ *
+ * @return array 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'
+ );
+ }
+
+ /**
+ * This is an entire admin notice dedicated to messaging and handling of the case where a user is trying to delete
+ * the connection owner.
+ */
+ public function delete_user_update_connection_owner_notice() {
+ global $current_screen;
+
+ /*
+ * phpcs:disable WordPress.Security.NonceVerification.Recommended
+ *
+ * This function is firing within wp-admin and checks (below) if it is in the midst of a deletion on the users
+ * page. Nonce will be already checked by WordPress, so we do not need to check ourselves.
+ */
+
+ if ( ! isset( $current_screen->base ) || 'users' !== $current_screen->base ) {
+ return;
+ }
+
+ if ( ! isset( $_REQUEST['action'] ) || 'delete' !== $_REQUEST['action'] ) {
+ return;
+ }
+
+ // Get connection owner or bail.
+ $connection_manager = new Manager();
+ $connection_owner_id = $connection_manager->get_connection_owner_id();
+ if ( ! $connection_owner_id ) {
+ return;
+ }
+ $connection_owner_userdata = get_userdata( $connection_owner_id );
+
+ // Bail if we're not trying to delete connection owner.
+ $user_ids_to_delete = array();
+ if ( isset( $_REQUEST['users'] ) ) {
+ $user_ids_to_delete = array_map( 'sanitize_text_field', wp_unslash( $_REQUEST['users'] ) );
+ } elseif ( isset( $_REQUEST['user'] ) ) {
+ $user_ids_to_delete[] = sanitize_text_field( wp_unslash( $_REQUEST['user'] ) );
+ }
+
+ // phpcs:enable
+ $user_ids_to_delete = array_map( 'absint', $user_ids_to_delete );
+ $deleting_connection_owner = in_array( $connection_owner_id, (array) $user_ids_to_delete, true );
+ if ( ! $deleting_connection_owner ) {
+ return;
+ }
+
+ // Bail if they're trying to delete themselves to avoid confusion.
+ if ( get_current_user_id() === $connection_owner_id ) {
+ return;
+ }
+
+ // Track it!
+ if ( method_exists( $this->tracking, 'record_user_event' ) ) {
+ $this->tracking->record_user_event( 'delete_connection_owner_notice_view' );
+ }
+
+ $connected_admins = $connection_manager->get_connected_users( 'jetpack_disconnect' );
+ $user = is_a( $connection_owner_userdata, 'WP_User' ) ? esc_html( $connection_owner_userdata->data->user_login ) : '';
+
+ echo "<div class='notice notice-warning' id='jetpack-notice-switch-connection-owner'>";
+ echo '<h2>' . esc_html__( 'Important notice about your Jetpack connection:', 'jetpack-jitm' ) . '</h2>';
+ echo '<p>' . sprintf(
+ /* translators: WordPress User, if available. */
+ esc_html__( 'Warning! You are about to delete the Jetpack connection owner (%s) for this site, which may cause some of your Jetpack features to stop working.', 'jetpack-jitm' ),
+ esc_html( $user )
+ ) . '</p>';
+
+ if ( ! empty( $connected_admins ) && count( $connected_admins ) > 1 ) {
+ echo '<form id="jp-switch-connection-owner" action="" method="post">';
+ echo "<label for='owner'>" . esc_html__( 'You can choose to transfer connection ownership to one of these already-connected admins:', 'jetpack-jitm' ) . ' </label>';
+
+ $connected_admin_ids = array_map(
+ function ( $connected_admin ) {
+ return $connected_admin->ID;
+ },
+ $connected_admins
+ );
+
+ wp_dropdown_users(
+ array(
+ 'name' => 'owner',
+ 'include' => array_diff( $connected_admin_ids, array( $connection_owner_id ) ),
+ 'show' => 'display_name_with_login',
+ )
+ );
+
+ echo '<p>';
+ submit_button( esc_html__( 'Set new connection owner', 'jetpack-jitm' ), 'primary', 'jp-switch-connection-owner-submit', false );
+ echo '</p>';
+
+ echo "<div id='jp-switch-user-results'></div>";
+ echo '</form>';
+ ?>
+ <script type="text/javascript">
+ jQuery( document ).ready( function( $ ) {
+ $( '#jp-switch-connection-owner' ).on( 'submit', function( e ) {
+ var formData = $( this ).serialize();
+ var submitBtn = document.getElementById( 'jp-switch-connection-owner-submit' );
+ var results = document.getElementById( 'jp-switch-user-results' );
+
+ submitBtn.disabled = true;
+
+ $.ajax( {
+ type : "POST",
+ url : "<?php echo esc_url( get_rest_url() . 'jetpack/v4/connection/owner' ); ?>",
+ data : formData,
+ headers : {
+ 'X-WP-Nonce': "<?php echo esc_js( wp_create_nonce( 'wp_rest' ) ); ?>",
+ },
+ success: function() {
+ results.innerHTML = "<?php esc_html_e( 'Success!', 'jetpack-jitm' ); ?>";
+ setTimeout( function() {
+ $( '#jetpack-notice-switch-connection-owner' ).hide( 'slow' );
+ }, 1000 );
+ }
+ } ).done( function() {
+ submitBtn.disabled = false;
+ } );
+
+ e.preventDefault();
+ return false;
+ } );
+ } );
+ </script>
+ <?php
+ } else {
+ echo '<p>' . 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-jitm' ) . '</p>';
+ $connect_url = $connection_manager->get_authorization_url();
+ $connect_url = add_query_arg( 'from', 'delete_connection_owner_notice', $connect_url );
+ echo "<a href='" . esc_url( $connect_url ) . "' target='_blank' rel='noopener noreferrer' class='button-primary'>" . esc_html__( 'Connect to WordPress.com', 'jetpack-jitm' ) . '</a>';
+ }
+
+ echo '<p>';
+ printf(
+ wp_kses(
+ /* translators: URL to Jetpack support doc regarding the primary user. */
+ __( "<a href='%s' target='_blank' rel='noopener noreferrer'>Learn more</a> about the connection owner and what will break if you do not have one.", 'jetpack-jitm' ),
+ array(
+ 'a' => array(
+ 'href' => true,
+ 'target' => true,
+ 'rel' => true,
+ ),
+ )
+ ),
+ esc_url( Redirect::get_url( 'jetpack-support-primary-user' ) )
+ );
+ echo '</p>';
+ echo '<p>';
+ printf(
+ wp_kses(
+ /* translators: URL to contact Jetpack support. */
+ __( 'As always, feel free to <a href="%s" target="_blank" rel="noopener noreferrer">contact our support team</a> if you have any questions.', 'jetpack-jitm' ),
+ array(
+ 'a' => array(
+ 'href' => true,
+ 'target' => true,
+ 'rel' => true,
+ ),
+ )
+ ),
+ esc_url( Redirect::get_url( 'jetpack-contact-support' ) )
+ );
+ echo '</p>';
+ echo '</div>';
+ }
+
+ /**
+ * 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( $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,
+ )
+ );
+
+ $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 );
+
+ $stats->add( 'jitm', $envelope->id . '-viewed' );
+ $stats->do_server_side_stats();
+ }
+
+ return $envelopes;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php
new file mode 100644
index 00000000..6a779873
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php
@@ -0,0 +1,171 @@
+<?php
+/**
+ * Jetpack's Pre-Connection JITM class.
+ *
+ * @package automattic/jetpack-jitm
+ */
+
+namespace Automattic\Jetpack\JITMS;
+
+/**
+ * Jetpack pre-connection just in time messaging through out the admin.
+ */
+class Pre_Connection_JITM extends JITM {
+
+ /**
+ * Filters and formats the messages for the client-side JS renderer
+ *
+ * @param string $message_path Current message path.
+ *
+ * @return array Formatted messages.
+ */
+ private function filter_messages( $message_path ) {
+ /**
+ * Allows filtering of the pre-connection JITMs.
+ *
+ * This filter allows plugins to add pre-connection JITMs that will be
+ * displayed by the JITM package.
+ *
+ * @since 1.14.1
+ *
+ * @param array An array of pre-connection messages.
+ */
+ $messages = apply_filters( 'jetpack_pre_connection_jitms', array() );
+
+ $messages = $this->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php
new file mode 100644
index 00000000..2fa3d2bf
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * JITM's REST API Endpoints
+ *
+ * @package automattic/jetpack-jitm
+ */
+
+namespace Automattic\Jetpack\JITMS;
+
+use Automattic\Jetpack\Connection\REST_Connector;
+use WP_REST_Server;
+
+/**
+ * Register the JITM's REST API Endpoints and their callbacks.
+ */
+class Rest_Api_Endpoints {
+
+ /**
+ * Declare the JITM's REST API endpoints.
+ */
+ public static function register_endpoints() {
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/jitm',
+ array(
+ 'methods' => 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();
+ }
+
+ return $jitm->get_messages( $request['message_path'], urldecode_deep( $request['query'] ), 'true' === $request['full_jp_logo_exists'] ? true : false );
+ }
+
+ /**
+ * 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/js/jetpack-jitm.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/js/jetpack-jitm.js
new file mode 100644
index 00000000..785a38a7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-jitm/src/js/jetpack-jitm.js
@@ -0,0 +1,267 @@
+import '../css/jetpack-admin-jitm.scss';
+
+jQuery( document ).ready( function ( $ ) {
+ var templates = {
+ default: function ( envelope ) {
+ var html =
+ '<div class="jitm-card jitm-banner ' +
+ ( envelope.CTA.message ? 'has-call-to-action' : '' ) +
+ ' is-upgrade-premium ' +
+ envelope.content.classes +
+ '" data-stats_url="' +
+ envelope.jitm_stats_url +
+ '">';
+ html += '<div class="jitm-banner__content">';
+ html += '<div class="jitm-banner__icon-plan">' + envelope.content.icon + '</div>';
+ html += '<div class="jitm-banner__info">';
+ html += '<div class="jitm-banner__title">' + envelope.content.message + '</div>';
+ if ( envelope.content.description && envelope.content.description !== '' ) {
+ html += '<div class="jitm-banner__description">' + envelope.content.description;
+ if ( envelope.content.list.length > 0 ) {
+ html += '<ul class="banner__list">';
+ for ( var i = 0; i < envelope.content.list.length; i++ ) {
+ var text = envelope.content.list[ i ].item;
+
+ if ( envelope.content.list[ i ].url ) {
+ text =
+ '<a href="' +
+ envelope.content.list[ i ].url +
+ '" target="_blank" rel="noopener noreferrer" data-module="' +
+ envelope.feature_class +
+ '" data-jptracks-name="nudge_item_click" data-jptracks-prop="jitm-' +
+ envelope.id +
+ '">' +
+ text +
+ '</a>';
+ }
+
+ html +=
+ '<li>' +
+ '<svg class="gridicon gridicons-checkmark" height="16" width="16" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g>' +
+ '<path d="M9 19.414l-6.707-6.707 1.414-1.414L9 16.586 20.293 5.293l1.414 1.414" /></g></svg>' +
+ text +
+ '</li>';
+ }
+ }
+ html += '</div>';
+ }
+ html += '</div>';
+ html += '</div>';
+
+ html += '<div class="jitm-banner__buttons_container">';
+
+ if ( envelope.activate_module ) {
+ html += '<div class="jitm-banner__action" id="jitm-banner__activate">';
+ html +=
+ '<a href="#" data-module="' +
+ envelope.activate_module +
+ '" type="button" class="jitm-button is-compact is-primary jptracks" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-' +
+ envelope.id +
+ '-activate_module">' +
+ window.jitm_config.activate_module_text +
+ '</a>';
+ html += '</div>';
+ }
+ if ( envelope.CTA.message ) {
+ var ctaClasses = 'jitm-button is-compact jptracks';
+ if ( envelope.CTA.primary && null === envelope.activate_module ) {
+ ctaClasses += ' is-primary';
+ }
+
+ var ajaxAction = envelope.CTA.ajax_action;
+
+ html += '<div class="jitm-banner__action">';
+ html +=
+ '<a href="' +
+ ( envelope.CTA.hasOwnProperty( 'link' ) && envelope.CTA.link.length ? envelope.CTA.link : envelope.url ) +
+ '" target="' +
+ ( envelope.CTA.newWindow === false || ajaxAction ? '_self' : '_blank' ) +
+ '" rel="noopener noreferrer" title="' +
+ envelope.CTA.message +
+ '" data-module="' +
+ envelope.feature_class +
+ '" type="button" class="' +
+ ctaClasses +
+ '" data-jptracks-name="nudge_click" data-jptracks-prop="jitm-' +
+ envelope.id +
+ '" ' +
+ ( ajaxAction ? 'data-ajax-action="' + ajaxAction + '"' : '' ) +
+ '>' +
+ envelope.CTA.message +
+ '</a>';
+ html += '</div>';
+ }
+
+ html += '</div>';
+
+ if ( envelope.is_dismissible ) {
+ html +=
+ '<a href="#" data-module="' +
+ envelope.feature_class +
+ '" class="jitm-banner__dismiss"></a>';
+ }
+ html += '</div>';
+
+ return $( html );
+ },
+ };
+
+ var setJITMContent = function ( $el, response, redirect ) {
+ var template;
+
+ var render = function ( $my_template ) {
+ return function ( e ) {
+ e.preventDefault();
+
+ $my_template.hide();
+
+ $.ajax( {
+ url: window.jitm_config.api_root + 'jetpack/v4/jitm',
+ method: 'POST', // using DELETE without permalinks is broken in default nginx configuration
+ beforeSend: function ( xhr ) {
+ xhr.setRequestHeader( 'X-WP-Nonce', window.jitm_config.nonce );
+ },
+ data: {
+ id: response.id,
+ feature_class: response.feature_class,
+ },
+ } );
+ };
+ };
+
+ template = response.template;
+
+ // if we don't have a template for this version, just use the default template
+ if ( ! template || ! templates[ template ] ) {
+ template = 'default';
+ }
+
+ response.url = response.url + '&redirect=' + redirect;
+
+ var $template = templates[ template ]( response );
+ $template.find( '.jitm-banner__dismiss' ).click( render( $template ) );
+
+ if ( $( '#jp-admin-notices' ).length > 0 ) {
+ // Add to Jetpack notices within the Jetpack settings app.
+ $el.innerHTML = $template;
+
+ // If we already have a message, replace it.
+ if ( $( '#jp-admin-notices' ).find( '.jitm-card' ) ) {
+ $( '.jitm-card' ).replaceWith( $template );
+ }
+
+ // No existing JITM? Add ours to the top of the Jetpack admin notices.
+ $template.prependTo( $( '#jp-admin-notices' ) );
+ } else {
+ // Replace placeholder div on other pages.
+ $el.replaceWith( $template );
+ }
+
+ // Handle Module activation button if it exists.
+ $template.find( '#jitm-banner__activate a' ).click( function () {
+ var $activate_button = $( this );
+
+ // Do not allow any requests if the button is disabled.
+ if ( $activate_button.attr( 'disabled' ) ) {
+ return false;
+ }
+
+ // Make request to activate module.
+ $.ajax( {
+ url:
+ window.jitm_config.api_root +
+ 'jetpack/v4/module/' +
+ $activate_button.data( 'module' ) +
+ '/active',
+ method: 'POST',
+ beforeSend: function ( xhr ) {
+ xhr.setRequestHeader( 'X-WP-Nonce', $el.data( 'nonce' ) );
+
+ // Change the button status to disabled as the change is in progress.
+ $( '#jitm-banner__activate a' ).text( window.jitm_config.activating_module_text );
+ $( '#jitm-banner__activate a' ).attr( 'disabled', true );
+ },
+ } ).done( function () {
+ $( '#jitm-banner__activate a' ).text( window.jitm_config.activated_module_text );
+ $( '#jitm-banner__activate a' ).attr( 'disabled', true );
+
+ // Hide the JITM after 2 seconds.
+ setTimeout( function () {
+ $template.fadeOut( 'slow' );
+ }, 2000 );
+ } );
+ } );
+
+ // Handle CTA ajax actions.
+ $template.find( '.jitm-button[data-ajax-action]' ).click( function ( e ) {
+ e.preventDefault();
+ var button = $( this );
+ button.attr( 'disabled', true );
+ $.post( window.ajaxurl, {
+ action: button.data( 'ajax-action' ),
+ _nonce: $el.data( 'ajax-nonce' ),
+ } )
+ .done( function () {
+ $template.fadeOut( 'slow' );
+ } )
+ .fail( function () {
+ button.attr( 'disabled', false );
+ } );
+ return false;
+ } );
+ };
+
+ var reFetch = function () {
+ $( '.jetpack-jitm-message' ).each( function () {
+ var $el = $( this );
+
+ var message_path = $el.data( 'message-path' );
+ var query = $el.data( 'query' );
+ var redirect = $el.data( 'redirect' );
+ var hash = location.hash;
+
+ hash = hash.replace( /#\//, '_' );
+ if ( '_dashboard' !== hash ) {
+ message_path = message_path.replace(
+ 'toplevel_page_jetpack',
+ 'toplevel_page_jetpack' + hash
+ );
+ }
+
+ var full_jp_logo_exists = $( '.jetpack-logo__masthead' ).length ? true : false;
+
+ $.get( window.jitm_config.api_root + 'jetpack/v4/jitm', {
+ message_path: message_path,
+ query: query,
+ full_jp_logo_exists: full_jp_logo_exists,
+ _wpnonce: $el.data( 'nonce' ),
+ } ).then( function ( response ) {
+ if ( 'object' === typeof response && response[ '1' ] ) {
+ response = [ response[ '1' ] ];
+ }
+
+ // properly handle the case of an empty array or no content set
+ if ( 0 === response.length || ! response[ 0 ].content ) {
+ return;
+ }
+
+ // for now, always take the first response
+ setJITMContent( $el, response[ 0 ], redirect );
+ } );
+ } );
+ };
+
+ reFetch();
+
+ $( window ).bind( 'hashchange', function ( e ) {
+ var newURL = e.originalEvent.newURL;
+
+ if ( newURL.indexOf( 'jetpack#/' ) >= 0 ) {
+ var jitm_card = document.querySelector( '.jitm-card' );
+ if ( jitm_card ) {
+ jitm_card.remove();
+ }
+ reFetch();
+ }
+ } );
+} );
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/CHANGELOG.md
new file mode 100644
index 00000000..fbeb8c83
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/CHANGELOG.md
@@ -0,0 +1,189 @@
+# 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.1.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+- Updated package textdomain from `jetpack` to `jetpack-lazy-images`.
+
+## [2.0.10] - 2021-12-14
+
+## [2.0.9] - 2021-11-30
+### Changed
+- Remove `.min` from built JS.
+- Updated package dependencies.
+
+## [2.0.8] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [2.0.7] - 2021-11-17
+### Changed
+- Updated package dependencies.
+
+## [2.0.6] - 2021-11-16
+### Added
+- Use monorepo `validate-es` script to validate Webpack builds.
+
+### Changed
+- Updated package dependencies.
+
+## [2.0.5] - 2021-11-09
+### Changed
+- Update webpack build config.
+
+## [2.0.4] - 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.3] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+### Deprecated
+- General: remove numerous long-deprecated functions.
+
+## [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.
+- Update to latest webpack, webpack-cli and calypso-build.
+- Use Node 16.7.0 in tooling. This shouldn't change the behavior of the code itself.
+
+### Removed
+- Removed IE11 support.
+
+## [1.5.1] - 2021-08-10
+### Changed
+- Updated package dependencies
+
+## [1.5.0] - 2021-06-29
+### Changed
+- Build using calypso-build, and use the intersection-observer npm module instead of bundling a copy.
+- Update docs to replace yarn with pnpm.
+- Update node version requirement to 14.16.1
+
+## [1.4.4] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.3] - 2021-04-27
+### Changed
+- Updated package dependencies
+
+## [1.4.2] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Update icon file used for tests, WP 5.7 no longer silences exif errors.
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.4.1] - 2021-02-23
+
+- Update dependency webpack to v4.46.0
+- Update dependency webpack-cli to v4.5.0
+- CI: Make tests more generic
+- CLI: Add install command
+
+## [1.4.0] - 2021-01-26
+
+- Mirroring: Move build command into composer
+- Mirroring: Fix vendor copy of lazy-images in jetpack-production
+- Add mirror-repo information to all current composer packages
+- Lazy Images: do not include js linting config in production
+- Monorepo: Reorganize all projects
+- Various PHPCS and Cleanup
+
+## [1.3.0] - 2021-01-05
+
+- Lazy-Images: Downgrade to ES5
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+- Reorganize composer scripts
+- General: update minimum required version to WordPress 5.5
+- Codecoverage: fix reports
+- Updated PHPCS: Packages and Debugger
+
+## [1.2.2] - 2020-12-09
+
+- Update dependencies to latest stable
+- Updated dependencies to latest stable
+
+## [1.2.1] - 2020-11-24
+
+- General: update minimum required version to WordPress 5.5
+- Codecoverage: fix reports
+- Updated PHPCS: Packages and Debugger
+
+## [1.2.0] - 2020-10-27
+
+- Lazy Images: Use a better name for wp_localize_script's l10n object
+- Lazy Images: Start linting lazy-images.js
+
+## [1.1.3] - 2020-12-09
+
+- Update dependencies to latest stable
+
+## [1.1.2] - 2020-11-24
+
+- Version packages for release
+
+## [1.1.1] - 2020-11-10
+
+- Update dependencies to latest stable
+
+## [1.1.0] - 2020-09-29
+
+- Consolidate the Lazy Images package to rely on the Assets package
+
+## 1.0.0 - 2020-08-25
+
+- Lazy Images: Move into a package
+
+[2.1.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.10...v2.1.0
+[2.0.10]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.9...v2.0.10
+[2.0.9]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.8...v2.0.9
+[2.0.8]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.7...v2.0.8
+[2.0.7]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.6...v2.0.7
+[2.0.6]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.5...v2.0.6
+[2.0.5]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.4...v2.0.5
+[2.0.4]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.5.1...v2.0.0
+[1.5.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.4.4...v1.5.0
+[1.4.4]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.2.2...v1.3.0
+[1.2.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.1.3...v1.2.0
+[1.1.3]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-lazy-images/compare/v1.0.0...v1.1.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.asset.php
new file mode 100644
index 00000000..d56f1d1f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '6ae6d91d4b64fe31e32c2797e7c3dd42'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js
new file mode 100644
index 00000000..5fa4e6e7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.js
@@ -0,0 +1 @@
+!function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",n,!0)),c(e,"scroll",n,!0),s&&s.disconnect()}));var u=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=u){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),s(),e!=n){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(n){var i=n.element,s=u(i),h=this._rootContainsTarget(i),c=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,f)&&this._queuedEntries.push(f):c&&c.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=u(_))}if(w&&(s=w,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=u(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100})),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){o(),i=null}),n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function c(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js
new file mode 100644
index 00000000..5fa4e6e7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/intersection-observer.src.js
@@ -0,0 +1 @@
+!function(){"use strict";if("object"==typeof window)if("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)"isIntersecting"in window.IntersectionObserverEntry.prototype||Object.defineProperty(window.IntersectionObserverEntry.prototype,"isIntersecting",{get:function(){return this.intersectionRatio>0}});else{var t=function(t){for(var e=window.document,o=i(e);o;)o=i(e=o.ownerDocument);return e}(),e=[],o=null,n=null;s.prototype.THROTTLE_TIMEOUT=100,s.prototype.POLL_INTERVAL=null,s.prototype.USE_MUTATION_OBSERVER=!0,s._setupCrossOriginUpdater=function(){return o||(o=function(t,o){n=t&&o?l(t,o):{top:0,bottom:0,left:0,right:0,width:0,height:0},e.forEach((function(t){t._checkForIntersections()}))}),o},s._resetCrossOriginUpdater=function(){o=null,n=null},s.prototype.observe=function(t){if(!this._observationTargets.some((function(e){return e.element==t}))){if(!t||1!=t.nodeType)throw new Error("target must be an Element");this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(t.ownerDocument),this._checkForIntersections()}},s.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter((function(e){return e.element!=t})),this._unmonitorIntersections(t.ownerDocument),0==this._observationTargets.length&&this._unregisterInstance()},s.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorAllIntersections(),this._unregisterInstance()},s.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},s.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter((function(t,e,o){if("number"!=typeof t||isNaN(t)||t<0||t>1)throw new Error("threshold must be a number between 0 and 1 inclusively");return t!==o[e-1]}))},s.prototype._parseRootMargin=function(t){var e=(t||"0px").split(/\s+/).map((function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error("rootMargin must be specified in pixels or percent");return{value:parseFloat(e[1]),unit:e[2]}}));return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},s.prototype._monitorIntersections=function(e){var o=e.defaultView;if(o&&-1==this._monitoringDocuments.indexOf(e)){var n=this._checkForIntersections,r=null,s=null;this.POLL_INTERVAL?r=o.setInterval(n,this.POLL_INTERVAL):(h(o,"resize",n,!0),h(e,"scroll",n,!0),this.USE_MUTATION_OBSERVER&&"MutationObserver"in o&&(s=new o.MutationObserver(n)).observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})),this._monitoringDocuments.push(e),this._monitoringUnsubscribes.push((function(){var t=e.defaultView;t&&(r&&t.clearInterval(r),c(t,"resize",n,!0)),c(e,"scroll",n,!0),s&&s.disconnect()}));var u=this.root&&(this.root.ownerDocument||this.root)||t;if(e!=u){var a=i(e);a&&this._monitorIntersections(a.ownerDocument)}}},s.prototype._unmonitorIntersections=function(e){var o=this._monitoringDocuments.indexOf(e);if(-1!=o){var n=this.root&&(this.root.ownerDocument||this.root)||t,r=this._observationTargets.some((function(t){var o=t.element.ownerDocument;if(o==e)return!0;for(;o&&o!=n;){var r=i(o);if((o=r&&r.ownerDocument)==e)return!0}return!1}));if(!r){var s=this._monitoringUnsubscribes[o];if(this._monitoringDocuments.splice(o,1),this._monitoringUnsubscribes.splice(o,1),s(),e!=n){var h=i(e);h&&this._unmonitorIntersections(h.ownerDocument)}}}},s.prototype._unmonitorAllIntersections=function(){var t=this._monitoringUnsubscribes.slice(0);this._monitoringDocuments.length=0,this._monitoringUnsubscribes.length=0;for(var e=0;e<t.length;e++)t[e]()},s.prototype._checkForIntersections=function(){if(this.root||!o||n){var t=this._rootIsInDom(),e=t?this._getRootRect():{top:0,bottom:0,left:0,right:0,width:0,height:0};this._observationTargets.forEach((function(n){var i=n.element,s=u(i),h=this._rootContainsTarget(i),c=n.entry,a=t&&h&&this._computeTargetAndRootIntersection(i,s,e),l=null;this._rootContainsTarget(i)?o&&!this.root||(l=e):l={top:0,bottom:0,left:0,right:0,width:0,height:0};var f=n.entry=new r({time:window.performance&&performance.now&&performance.now(),target:i,boundingClientRect:s,rootBounds:l,intersectionRect:a});c?t&&h?this._hasCrossedThreshold(c,f)&&this._queuedEntries.push(f):c&&c.isIntersecting&&this._queuedEntries.push(f):this._queuedEntries.push(f)}),this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)}},s.prototype._computeTargetAndRootIntersection=function(e,i,r){if("none"!=window.getComputedStyle(e).display){for(var s,h,c,a,f,d,g,m,v=i,_=p(e),b=!1;!b&&_;){var w=null,y=1==_.nodeType?window.getComputedStyle(_):{};if("none"==y.display)return null;if(_==this.root||9==_.nodeType)if(b=!0,_==this.root||_==t)o&&!this.root?!n||0==n.width&&0==n.height?(_=null,w=null,v=null):w=n:w=r;else{var I=p(_),E=I&&u(I),T=I&&this._computeTargetAndRootIntersection(I,E,r);E&&T?(_=I,w=l(E,T)):(_=null,v=null)}else{var R=_.ownerDocument;_!=R.body&&_!=R.documentElement&&"visible"!=y.overflow&&(w=u(_))}if(w&&(s=w,h=v,c=void 0,a=void 0,f=void 0,d=void 0,g=void 0,m=void 0,c=Math.max(s.top,h.top),a=Math.min(s.bottom,h.bottom),f=Math.max(s.left,h.left),d=Math.min(s.right,h.right),m=a-c,v=(g=d-f)>=0&&m>=0&&{top:c,bottom:a,left:f,right:d,width:g,height:m}||null),!v)break;_=_&&p(_)}return v}},s.prototype._getRootRect=function(){var e;if(this.root&&!d(this.root))e=u(this.root);else{var o=d(this.root)?this.root:t,n=o.documentElement,i=o.body;e={top:0,left:0,right:n.clientWidth||i.clientWidth,width:n.clientWidth||i.clientWidth,bottom:n.clientHeight||i.clientHeight,height:n.clientHeight||i.clientHeight}}return this._expandRectByRootMargin(e)},s.prototype._expandRectByRootMargin=function(t){var e=this._rootMarginValues.map((function(e,o){return"px"==e.unit?e.value:e.value*(o%2?t.width:t.height)/100})),o={top:t.top-e[0],right:t.right+e[1],bottom:t.bottom+e[2],left:t.left-e[3]};return o.width=o.right-o.left,o.height=o.bottom-o.top,o},s.prototype._hasCrossedThreshold=function(t,e){var o=t&&t.isIntersecting?t.intersectionRatio||0:-1,n=e.isIntersecting?e.intersectionRatio||0:-1;if(o!==n)for(var i=0;i<this.thresholds.length;i++){var r=this.thresholds[i];if(r==o||r==n||r<o!=r<n)return!0}},s.prototype._rootIsInDom=function(){return!this.root||f(t,this.root)},s.prototype._rootContainsTarget=function(e){var o=this.root&&(this.root.ownerDocument||this.root)||t;return f(o,e)&&(!this.root||o==e.ownerDocument)},s.prototype._registerInstance=function(){e.indexOf(this)<0&&e.push(this)},s.prototype._unregisterInstance=function(){var t=e.indexOf(this);-1!=t&&e.splice(t,1)},window.IntersectionObserver=s,window.IntersectionObserverEntry=r}function i(t){try{return t.defaultView&&t.defaultView.frameElement||null}catch(t){return null}}function r(t){this.time=t.time,this.target=t.target,this.rootBounds=a(t.rootBounds),this.boundingClientRect=a(t.boundingClientRect),this.intersectionRect=a(t.intersectionRect||{top:0,bottom:0,left:0,right:0,width:0,height:0}),this.isIntersecting=!!t.intersectionRect;var e=this.boundingClientRect,o=e.width*e.height,n=this.intersectionRect,i=n.width*n.height;this.intersectionRatio=o?Number((i/o).toFixed(4)):this.isIntersecting?1:0}function s(t,e){var o,n,i,r=e||{};if("function"!=typeof t)throw new Error("callback must be a function");if(r.root&&1!=r.root.nodeType&&9!=r.root.nodeType)throw new Error("root must be a Document or Element");this._checkForIntersections=(o=this._checkForIntersections.bind(this),n=this.THROTTLE_TIMEOUT,i=null,function(){i||(i=setTimeout((function(){o(),i=null}),n))}),this._callback=t,this._observationTargets=[],this._queuedEntries=[],this._rootMarginValues=this._parseRootMargin(r.rootMargin),this.thresholds=this._initThresholds(r.threshold),this.root=r.root||null,this.rootMargin=this._rootMarginValues.map((function(t){return t.value+t.unit})).join(" "),this._monitoringDocuments=[],this._monitoringUnsubscribes=[]}function h(t,e,o,n){"function"==typeof t.addEventListener?t.addEventListener(e,o,n||!1):"function"==typeof t.attachEvent&&t.attachEvent("on"+e,o)}function c(t,e,o,n){"function"==typeof t.removeEventListener?t.removeEventListener(e,o,n||!1):"function"==typeof t.detatchEvent&&t.detatchEvent("on"+e,o)}function u(t){var e;try{e=t.getBoundingClientRect()}catch(t){}return e?(e.width&&e.height||(e={top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.right-e.left,height:e.bottom-e.top}),e):{top:0,bottom:0,left:0,right:0,width:0,height:0}}function a(t){return!t||"x"in t?t:{top:t.top,y:t.top,bottom:t.bottom,left:t.left,x:t.left,right:t.right,width:t.width,height:t.height}}function l(t,e){var o=e.top-t.top,n=e.left-t.left;return{top:o,left:n,height:e.height,width:e.width,bottom:o+e.height,right:n+e.width}}function f(t,e){for(var o=e;o;){if(o==t)return!0;o=p(o)}return!1}function p(e){var o=e.parentNode;return 9==e.nodeType&&e!=t?i(e):(o&&o.assignedSlot&&(o=o.assignedSlot.parentNode),o&&11==o.nodeType&&o.host?o.host:o)}function d(t){return t&&9===t.nodeType}}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.asset.php
new file mode 100644
index 00000000..13eb125f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array(), 'version' => '22d8bb42bcd6edc9c8ef53eb9b087d17'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.js
new file mode 100644
index 00000000..d606a494
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/dist/lazy-images.js
@@ -0,0 +1 @@
+!function(){var e=function(){var e,t,n,a={rootMargin:"200px 0px",threshold:.01},i=[];d();var r=document.querySelector("body");function d(){e=[].slice.call(document.querySelectorAll("img.jetpack-lazy-image:not(.jetpack-lazy-image--handled)")),n&&n.disconnect(),"IntersectionObserver"in window?(n=new IntersectionObserver(l,a),e.forEach((function(e){e.getAttribute("data-lazy-loaded")||n.observe(e)})),window.addEventListener("beforeprint",c),window.matchMedia&&window.matchMedia("print").addListener((function(e){e.matches&&c()}))):o()}function o(){for(n&&n.disconnect();e.length>0;)s(e[0])}function l(t){for(var a=0;a<t.length;a++){var i=t[a];i.intersectionRatio>0&&(n.unobserve(i.target),s(i.target))}0===e.length&&n.disconnect()}function c(){if(!t&&(e.length>0||i.length>0)){(t=document.createElement("div")).id="loadingWarning",t.style.fontWeight="bold",t.innerText=jetpackLazyImagesL10n.loading_warning;var n=document.createElement("style");n.innerHTML="#loadingWarning { display: none; }\n@media print {\n#loadingWarning { display: block; }\nbody > #loadingWarning ~ * { display: none !important; }\n}",t.appendChild(n),r.insertBefore(t,r.firstChild)}e.length>0&&o(),t&&alert(jetpackLazyImagesL10n.loading_warning)}function s(t){var n;if(t instanceof HTMLImageElement){var a=t.getAttribute("data-lazy-srcset"),r=t.getAttribute("data-lazy-sizes");t.removeAttribute("data-lazy-srcset"),t.removeAttribute("data-lazy-sizes"),t.removeAttribute("data-lazy-src"),t.classList.add("jetpack-lazy-image--handled"),t.setAttribute("data-lazy-loaded",1),r&&t.setAttribute("sizes",r),a?t.setAttribute("srcset",a):t.removeAttribute("srcset"),t.setAttribute("loading","eager"),i.push(t);var d=e.indexOf(t);d>=0&&e.splice(d,1),t.complete?g.call(t,null):(t.addEventListener("load",g,{once:!0}),t.addEventListener("error",g,{once:!0}));try{n=new Event("jetpack-lazy-loaded-image",{bubbles:!0,cancelable:!0})}catch(e){(n=document.createEvent("Event")).initEvent("jetpack-lazy-loaded-image",!0,!0)}t.dispatchEvent(n)}}function g(){var n=i.indexOf(this);n>=0&&i.splice(n,1),t&&0===e.length&&0===i.length&&(t.parentNode.removeChild(t),t=null)}r&&(r.addEventListener("is.post-load",d),r.addEventListener("jetpack-lazy-images-load",d))};"interactive"===document.readyState||"complete"===document.readyState?e():document.addEventListener("DOMContentLoaded",e)}(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/images/1x1.trans.gif b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/images/1x1.trans.gif
new file mode 100644
index 00000000..f191b280
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/images/1x1.trans.gif
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/js/lazy-images.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/js/lazy-images.js
new file mode 100644
index 00000000..92b4f217
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/js/lazy-images.js
@@ -0,0 +1,219 @@
+/* global jetpackLazyImagesL10n */
+
+var jetpackLazyImagesModule = function () {
+ var config = {
+ // If the image gets within 200px in the Y axis, start the download.
+ rootMargin: '200px 0px',
+ threshold: 0.01,
+ };
+ var loadingImages = [];
+ var lazyImages, loadingWarning, observer;
+
+ lazy_load_init();
+
+ var bodyEl = document.querySelector( 'body' );
+ if ( bodyEl ) {
+ // Lazy load images that are brought in from Infinite Scroll
+ bodyEl.addEventListener( 'is.post-load', lazy_load_init );
+
+ // Add event to provide optional compatibility for other code.
+ bodyEl.addEventListener( 'jetpack-lazy-images-load', lazy_load_init );
+ }
+
+ /**
+ * Initialize the module.
+ */
+ function lazy_load_init() {
+ // @todo: Use Array.from once es6 is allowed.
+ lazyImages = [].slice.call(
+ document.querySelectorAll( 'img.jetpack-lazy-image:not(.jetpack-lazy-image--handled)' )
+ );
+
+ // If initialized, then disconnect the observer
+ if ( observer ) {
+ observer.disconnect();
+ }
+
+ // If we don't have support for intersection observer, loads the images immediately
+ if ( ! ( 'IntersectionObserver' in window ) ) {
+ loadAllImages();
+ } else {
+ // It is supported, load the images
+ observer = new IntersectionObserver( onIntersection, config );
+
+ lazyImages.forEach( function ( image ) {
+ if ( ! image.getAttribute( 'data-lazy-loaded' ) ) {
+ observer.observe( image );
+ }
+ } );
+
+ // Watch for attempts to print, and load all images. Most browsers
+ // support beforeprint, Safari needs a media listener. Doesn't hurt
+ // to double-fire if a browser supports both.
+ window.addEventListener( 'beforeprint', onPrint );
+ if ( window.matchMedia ) {
+ window.matchMedia( 'print' ).addListener( function ( mql ) {
+ if ( mql.matches ) {
+ onPrint();
+ }
+ } );
+ }
+ }
+ }
+
+ /**
+ * Load all of the images immediately
+ */
+ function loadAllImages() {
+ if ( observer ) {
+ observer.disconnect();
+ }
+
+ while ( lazyImages.length > 0 ) {
+ applyImage( lazyImages[ 0 ] );
+ }
+ }
+
+ /**
+ * On intersection
+ *
+ * @param {Array} entries - List of elements being observed.
+ */
+ function onIntersection( entries ) {
+ // Loop through the entries
+ for ( var i = 0; i < entries.length; i++ ) {
+ var entry = entries[ i ];
+
+ // Are we in viewport?
+ if ( entry.intersectionRatio > 0 ) {
+ // Stop watching and load the image
+ observer.unobserve( entry.target );
+ applyImage( entry.target );
+ }
+ }
+
+ // Disconnect if we've already loaded all of the images
+ if ( lazyImages.length === 0 ) {
+ observer.disconnect();
+ }
+ }
+
+ /**
+ * On print
+ */
+ function onPrint() {
+ if ( ! loadingWarning && ( lazyImages.length > 0 || loadingImages.length > 0 ) ) {
+ // Replace the printed page with a notice that images are still loading.
+ // Hopefully the user won't actually print this, but if they do at least it'll not
+ // waste too much ink.
+ loadingWarning = document.createElement( 'div' );
+ loadingWarning.id = 'loadingWarning';
+ loadingWarning.style.fontWeight = 'bold';
+ loadingWarning.innerText = jetpackLazyImagesL10n.loading_warning;
+
+ var s = document.createElement( 'style' );
+ s.innerHTML =
+ '#loadingWarning { display: none; }\n@media print {\n#loadingWarning { display: block; }\nbody > #loadingWarning ~ * { display: none !important; }\n}';
+ loadingWarning.appendChild( s );
+
+ bodyEl.insertBefore( loadingWarning, bodyEl.firstChild );
+ }
+
+ if ( lazyImages.length > 0 ) {
+ loadAllImages();
+ }
+
+ // May as well try an alert() too. The browser may block it, but if not
+ // it could save them some trouble.
+ if ( loadingWarning ) {
+ alert( jetpackLazyImagesL10n.loading_warning );
+ }
+ }
+
+ /**
+ * Apply the image
+ *
+ * @param {Element} image - The image object.
+ */
+ function applyImage( image ) {
+ var lazyLoadedImageEvent;
+
+ if ( ! ( image instanceof HTMLImageElement ) ) {
+ return;
+ }
+
+ var srcset = image.getAttribute( 'data-lazy-srcset' );
+ var sizes = image.getAttribute( 'data-lazy-sizes' );
+
+ // Remove lazy attributes.
+ image.removeAttribute( 'data-lazy-srcset' );
+ image.removeAttribute( 'data-lazy-sizes' );
+ image.removeAttribute( 'data-lazy-src' );
+
+ // Add the attributes we want.
+ image.classList.add( 'jetpack-lazy-image--handled' );
+ image.setAttribute( 'data-lazy-loaded', 1 );
+
+ if ( sizes ) {
+ image.setAttribute( 'sizes', sizes );
+ }
+
+ if ( ! srcset ) {
+ image.removeAttribute( 'srcset' );
+ } else {
+ image.setAttribute( 'srcset', srcset );
+ }
+
+ // Force eager loading, otherwise the browser-native loading=lazy support will still
+ // prevent the loading.
+ image.setAttribute( 'loading', 'eager' );
+
+ loadingImages.push( image );
+ var idx = lazyImages.indexOf( image );
+ if ( idx >= 0 ) {
+ lazyImages.splice( idx, 1 );
+ }
+
+ if ( image.complete ) {
+ loadedImage.call( image, null );
+ } else {
+ image.addEventListener( 'load', loadedImage, { once: true } );
+ image.addEventListener( 'error', loadedImage, { once: true } );
+ }
+
+ // Fire an event so that third-party code can perform actions after an image is loaded.
+ try {
+ lazyLoadedImageEvent = new Event( 'jetpack-lazy-loaded-image', {
+ bubbles: true,
+ cancelable: true,
+ } );
+ } catch ( e ) {
+ lazyLoadedImageEvent = document.createEvent( 'Event' );
+ lazyLoadedImageEvent.initEvent( 'jetpack-lazy-loaded-image', true, true );
+ }
+
+ image.dispatchEvent( lazyLoadedImageEvent );
+ }
+
+ /**
+ * An image from applyImage() finished loading.
+ */
+ function loadedImage() {
+ var idx = loadingImages.indexOf( this );
+ if ( idx >= 0 ) {
+ loadingImages.splice( idx, 1 );
+ }
+
+ if ( loadingWarning && lazyImages.length === 0 && loadingImages.length === 0 ) {
+ loadingWarning.parentNode.removeChild( loadingWarning );
+ loadingWarning = null;
+ }
+ }
+};
+
+// Let's kick things off now
+if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ jetpackLazyImagesModule();
+} else {
+ document.addEventListener( 'DOMContentLoaded', jetpackLazyImagesModule );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php
new file mode 100644
index 00000000..8be08ed5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php
@@ -0,0 +1,516 @@
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+
+/**
+ * The Lazy Images package.
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.8.0
+ *
+ * This package has been lifted from the Jetpack modules folder and adapted to be
+ * an standalone package reusable outside Jetpack.
+ *
+ * @package automattic/jetpack-lazy-images
+ */
+
+/**
+ * This package relies heavily upon the Lazy Load plugin which was worked on by
+ * Mohammad Jangda (batmoo), the WordPress.com VIP team, the TechCrunch 2011
+ * redesign team, and Jake Goldman of 10up LLC.
+ *
+ * The JavaScript has been updated to rely on InterSection observer instead of
+ * jQuery Sonar. Many thanks to Dean Hume (deanhume) and his example:
+ * https://github.com/deanhume/lazy-observer-load
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Automattic\Jetpack\Jetpack_Lazy_Images
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.8.0
+ */
+class Jetpack_Lazy_Images {
+
+ /**
+ * Class instance.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @var null
+ */
+ private static $instance = null;
+
+ /**
+ * Singleton implementation.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return object The class instance.
+ */
+ public static function instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Jetpack_Lazy_Images();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Check if the request is a AMP request.
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.8.0
+ *
+ * @return bool
+ */
+ public static function is_amp_request() {
+ $is_amp_request = ( function_exists( 'is_amp_endpoint' ) && is_amp_endpoint() );
+
+ /**
+ * Returns true if the current request should return valid AMP content.
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.8.0
+ *
+ * @param boolean $is_amp_request Is this request supposed to return valid AMP content?
+ */
+ return apply_filters( 'jetpack_lazy_images_is_amp_request', $is_amp_request );
+ }
+
+ /**
+ * Registers actions.
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.8.0
+ *
+ * @return void
+ */
+ private function __construct() {
+ if ( is_admin() ) {
+ return;
+ }
+
+ /**
+ * Whether the lazy-images module should load.
+ *
+ * This filter is not prefixed with jetpack_ to provide a smoother migration
+ * process from the WordPress Lazy Load plugin.
+ *
+ * @package automattic/jetpack-lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param bool true Whether lazy image loading should occur.
+ */
+ if ( ! apply_filters( 'lazyload_is_enabled', true ) ) {
+ return;
+ }
+
+ if ( self::is_amp_request() ) {
+ return;
+ }
+
+ add_action( 'wp_head', array( $this, 'setup_filters' ), 9999 ); // We don't really want to modify anything in <head> since it's mostly all metadata.
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_assets' ) );
+
+ // Do not lazy load avatar in admin bar.
+ add_action( 'admin_bar_menu', array( $this, 'remove_filters' ), 0 );
+
+ add_filter( 'wp_kses_allowed_html', array( $this, 'allow_lazy_attributes' ) );
+ add_action( 'wp_head', array( $this, 'add_nojs_fallback' ) );
+ }
+
+ /**
+ * Setup filters.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return void
+ */
+ public function setup_filters() {
+ add_filter( 'the_content', array( $this, 'add_image_placeholders' ), PHP_INT_MAX ); // Run this later, so other content filters have run, including image_add_wh on WP.com.
+ add_filter( 'post_thumbnail_html', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ add_filter( 'get_avatar', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ add_filter( 'widget_text', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ add_filter( 'get_image_tag', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ add_filter( 'wp_get_attachment_image_attributes', array( __CLASS__, 'process_image_attributes' ), PHP_INT_MAX );
+ }
+
+ /**
+ * Remove filters.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return void
+ */
+ public function remove_filters() {
+ remove_filter( 'the_content', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ remove_filter( 'post_thumbnail_html', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ remove_filter( 'get_avatar', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ remove_filter( 'widget_text', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ remove_filter( 'get_image_tag', array( $this, 'add_image_placeholders' ), PHP_INT_MAX );
+ remove_filter( 'wp_get_attachment_image_attributes', array( __CLASS__, 'process_image_attributes' ), PHP_INT_MAX );
+ }
+
+ /**
+ * Ensure that our lazy image attributes are not filtered out of image tags.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param array $allowed_tags The allowed tags and their attributes.
+ * @return array
+ */
+ public function allow_lazy_attributes( $allowed_tags ) {
+ if ( ! isset( $allowed_tags['img'] ) ) {
+ return $allowed_tags;
+ }
+
+ // But, if images are allowed, ensure that our attributes are allowed!
+ $img_attributes = array_merge(
+ $allowed_tags['img'],
+ array(
+ 'data-lazy-src' => 1,
+ 'data-lazy-srcset' => 1,
+ 'data-lazy-sizes' => 1,
+ )
+ );
+
+ $allowed_tags['img'] = $img_attributes;
+
+ return $allowed_tags;
+ }
+
+ /**
+ * Add image placeholders.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param string $content Content.
+ * @return string
+ */
+ public function add_image_placeholders( $content ) {
+ // Don't lazy load for feeds, previews.
+ if ( is_feed() || is_preview() ) {
+ return $content;
+ }
+
+ // Don't lazy-load if the content has already been run through previously.
+ if ( false !== strpos( $content, 'data-lazy-src' ) ) {
+ return $content;
+ }
+
+ // This is a pretty simple regex, but it works.
+ $content = preg_replace_callback( '#<(img)([^>]+?)(>(.*?)</\\1>|[\/]?>)#si', array( __CLASS__, 'process_image' ), $content );
+
+ return $content;
+ }
+
+ /**
+ * Returns true when a given string of classes contains a class signifying lazy images.
+ * should not process the image.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.9.0
+ *
+ * @param string $classes A string of space-separated classes.
+ * @return bool
+ */
+ public static function should_skip_image_with_blocked_class( $classes ) {
+ $blocked_classes = array(
+ 'skip-lazy',
+ 'gazette-featured-content-thumbnail',
+ );
+
+ /**
+ * Allow plugins and themes to tell lazy images to skip an image with a given class.
+ *
+ * @package automattic/jetpack-lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 8.7.0
+ *
+ * @param array An array of strings where each string is a class.
+ */
+ $blocked_classes = apply_filters( 'jetpack_lazy_images_blocked_classes', $blocked_classes );
+
+ if ( ! is_array( $blocked_classes ) || empty( $blocked_classes ) ) {
+ return false;
+ }
+
+ foreach ( $blocked_classes as $class ) {
+ if ( false !== strpos( $classes, $class ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Processes images in content by acting as the preg_replace_callback.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param array $matches Matches.
+ *
+ * @return string The image with updated lazy attributes.
+ */
+ public static function process_image( $matches ) {
+ $old_attributes_str = $matches[2];
+ $old_attributes_kses_hair = wp_kses_hair( $old_attributes_str, wp_allowed_protocols() );
+
+ if ( empty( $old_attributes_kses_hair['src'] ) ) {
+ return $matches[0];
+ }
+
+ $old_attributes = self::flatten_kses_hair_data( $old_attributes_kses_hair );
+
+ // If we didn't add lazy attributes, just return the original image source.
+ if ( ! empty( $old_attributes['class'] ) && false !== strpos( $old_attributes['class'], 'jetpack-lazy-image' ) ) {
+ return $matches[0];
+ }
+
+ $new_attributes = self::process_image_attributes( $old_attributes );
+ $new_attributes_str = self::build_attributes_string( $new_attributes );
+
+ return sprintf( '<img %1$s><noscript>%2$s</noscript>', $new_attributes_str, $matches[0] );
+ }
+
+ /**
+ * Given an array of image attributes, updates the `src`, `srcset`, and `sizes` attributes so
+ * that they load lazily.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.7.0
+ *
+ * @param array $attributes Attributes.
+ *
+ * @return array The updated image attributes array with lazy load attributes.
+ */
+ public static function process_image_attributes( $attributes ) {
+ if ( empty( $attributes['src'] ) ) {
+ return $attributes;
+ }
+
+ if ( ! empty( $attributes['class'] ) && self::should_skip_image_with_blocked_class( $attributes['class'] ) ) {
+ return $attributes;
+ }
+
+ if ( isset( $attributes['data-skip-lazy'] ) ) {
+ return $attributes;
+ }
+
+ /**
+ * Allow plugins and themes to conditionally skip processing an image via its attributes.
+ *
+ * @package automattic/jetpack-lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.9.0
+ * @deprecated-jetpack 6.5.0 Use jetpack_lazy_images_skip_image_with_attributes instead.
+ *
+ * @param bool Default to not skip processing the current image.
+ * @param array An array of attributes via wp_kses_hair() for the current image.
+ */
+ if ( apply_filters( 'jetpack_lazy_images_skip_image_with_atttributes', false, $attributes ) ) {
+ return $attributes;
+ }
+
+ /**
+ * Allow plugins and themes to conditionally skip processing an image via its attributes.
+ *
+ * @package automattic/jetpack-lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.9.0
+ * @since-jetpack 6.5.0 Filter name was updated from jetpack_lazy_images_skip_image_with_atttributes to correct typo.
+ *
+ * @param bool Default to not skip processing the current image.
+ * @param array An array of attributes via wp_kses_hair() for the current image.
+ */
+ if ( apply_filters( 'jetpack_lazy_images_skip_image_with_attributes', false, $attributes ) ) {
+ return $attributes;
+ }
+
+ $old_attributes = $attributes;
+
+ // Stash srcset and sizes in data attributes.
+ foreach ( array( 'srcset', 'sizes' ) as $attribute ) {
+ if ( isset( $old_attributes[ $attribute ] ) ) {
+ $attributes[ "data-lazy-$attribute" ] = $old_attributes[ $attribute ];
+ unset( $attributes[ $attribute ] );
+ }
+ }
+
+ // We set this, adding the query arg so that it doesn't exactly equal the src attribute, so that photon JavaScript
+ // will hold off on processing this image.
+ $attributes['data-lazy-src'] = esc_url_raw( add_query_arg( 'is-pending-load', true, $attributes['src'] ) );
+
+ $attributes['srcset'] = self::get_placeholder_image();
+ $attributes['class'] = sprintf(
+ '%s jetpack-lazy-image',
+ empty( $old_attributes['class'] )
+ ? ''
+ : $old_attributes['class']
+ );
+
+ /**
+ * Allow plugins and themes to override the attributes on the image before the content is updated.
+ *
+ * One potential use of this filter is for themes that set `height:auto` on the `img` tag.
+ * With this filter, the theme could get the width and height attributes from the
+ * $attributes array and then add a style tag that sets those values as well, which could
+ * minimize reflow as images load.
+ *
+ * @package automattic/jetpack-lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param array An array containing the attributes for the image, where the key is the attribute name
+ * and the value is the attribute value.
+ */
+ return apply_filters( 'jetpack_lazy_images_new_attributes', $attributes );
+ }
+
+ /**
+ * Adds JavaScript to check if the current browser supports JavaScript as well as some styles to hide lazy
+ * images when the browser does not support JavaScript.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return void
+ */
+ public function add_nojs_fallback() {
+ ?>
+ <style type="text/css">
+ /* If html does not have either class, do not show lazy loaded images. */
+ html:not( .jetpack-lazy-images-js-enabled ):not( .js ) .jetpack-lazy-image {
+ display: none;
+ }
+ </style>
+ <script>
+ document.documentElement.classList.add(
+ 'jetpack-lazy-images-js-enabled'
+ );
+ </script>
+ <?php
+ }
+
+ /**
+ * Retrieves the placeholder image after running it through the lazyload_images_placeholder_image filter.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return string The placeholder image source.
+ */
+ private static function get_placeholder_image() {
+ /**
+ * Allows plugins and themes to modify the placeholder image.
+ *
+ * This filter is not prefixed with jetpack_ to provide a smoother migration
+ * process from the WordPress Lazy Load plugin.
+ *
+ * @module lazy-images
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ * @since-jetpack 6.5.0 Default image is now a base64 encoded transparent gif.
+ *
+ * @param string The URL to the placeholder image.
+ */
+ return apply_filters(
+ 'lazyload_images_placeholder_image',
+ 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'
+ );
+ }
+
+ /**
+ * Flatter KSES hair data.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param array $attributes Attributes.
+ *
+ * @return array
+ */
+ private static function flatten_kses_hair_data( $attributes ) {
+ $flattened_attributes = array();
+ foreach ( $attributes as $name => $attribute ) {
+ $flattened_attributes[ $name ] = $attribute['value'];
+ }
+ return $flattened_attributes;
+ }
+
+ /**
+ * Build attributes string.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @param array $attributes Attributes.
+ *
+ * @return string
+ */
+ private static function build_attributes_string( $attributes ) {
+ $string = array();
+ foreach ( $attributes as $name => $value ) {
+ if ( '' === $value ) {
+ $string[] = sprintf( '%s', $name );
+ } else {
+ $string[] = sprintf( '%s="%s"', $name, esc_attr( $value ) );
+ }
+ }
+ return implode( ' ', $string );
+ }
+
+ /**
+ * Enqueue assets.
+ *
+ * @since 1.0.0
+ * @since-jetpack 5.6.0
+ *
+ * @return void
+ */
+ public function enqueue_assets() {
+ Assets::register_script(
+ 'jetpack-lazy-images-polyfill-intersectionobserver',
+ '../dist/intersection-observer.js',
+ __FILE__,
+ array(
+ 'nonmin_path' => '../dist/intersection-observer.src.js',
+ 'in_footer' => true,
+ )
+ );
+ Assets::register_script(
+ 'jetpack-lazy-images',
+ '../dist/lazy-images.js',
+ __FILE__,
+ array(
+ 'nonmin_path' => 'js/lazy-images.js',
+ 'dependencies' => array( 'jetpack-lazy-images-polyfill-intersectionobserver' ),
+ 'in_footer' => true,
+ )
+ );
+ Assets::enqueue_script( 'jetpack-lazy-images' );
+ wp_localize_script(
+ 'jetpack-lazy-images',
+ 'jetpackLazyImagesL10n',
+ array(
+ 'loading_warning' => __( 'Images are still loading. Please cancel your print and try again.', 'jetpack-lazy-images' ),
+ )
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/webpack.config.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/webpack.config.js
new file mode 100644
index 00000000..4d5d2bdb
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-lazy-images/webpack.config.js
@@ -0,0 +1,43 @@
+const jetpackWebpackConfig = require( '@automattic/jetpack-webpack-config/webpack' );
+const path = require( 'path' );
+const CopyWebpackPlugin = require( 'copy-webpack-plugin' );
+
+module.exports = [
+ {
+ entry: {
+ 'lazy-images': './src/js/lazy-images.js',
+ 'intersection-observer': require.resolve( 'intersection-observer/intersection-observer.js' ),
+ },
+ mode: jetpackWebpackConfig.mode,
+ devtool: jetpackWebpackConfig.devtool,
+ output: {
+ ...jetpackWebpackConfig.output,
+ path: path.resolve( './dist' ),
+ },
+ optimization: {
+ ...jetpackWebpackConfig.optimization,
+ },
+ resolve: {
+ ...jetpackWebpackConfig.resolve,
+ },
+ node: false,
+ plugins: [
+ ...jetpackWebpackConfig.StandardPlugins(),
+ new CopyWebpackPlugin( {
+ patterns: [
+ {
+ from: require.resolve( 'intersection-observer/intersection-observer.js' ),
+ to: 'intersection-observer.src.js',
+ },
+ ],
+ } ),
+ ],
+ module: {
+ strictExportPresence: true,
+ rules: [
+ // Transpile JavaScript, including node_modules.
+ jetpackWebpackConfig.TranspileRule(),
+ ],
+ },
+ },
+];
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md
new file mode 100644
index 00000000..259c8b2c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md
@@ -0,0 +1,184 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php
new file mode 100644
index 00000000..056004f5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php
@@ -0,0 +1,272 @@
+<?php
+/**
+ * A Terms of Service class for Jetpack.
+ *
+ * @package automattic/jetpack-licensing
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Jetpack_IXR_ClientMulticall;
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * Class Licensing.
+ * Helper class that is responsible for attaching licenses to the current site.
+ *
+ * @since 1.1.1
+ */
+class Licensing {
+ /**
+ * Name of the WordPress option that holds all known Jetpack licenses.
+ *
+ * @const string
+ */
+ const LICENSES_OPTION_NAME = 'jetpack_licenses';
+
+ /**
+ * Name of the WordPress transient that holds the last license attaching error, if any.
+ *
+ * @const string
+ */
+ const ERROR_TRANSIENT_NAME = 'jetpack_licenses_error';
+
+ /**
+ * Holds the singleton instance of this class.
+ *
+ * @var self
+ */
+ protected static $instance = false;
+
+ /**
+ * Singleton.
+ *
+ * @static
+ */
+ public static function instance() {
+ if ( ! self::$instance ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Initialize.
+ *
+ * @return void
+ */
+ public function initialize() {
+ add_action( 'add_option_' . self::LICENSES_OPTION_NAME, array( $this, 'attach_stored_licenses' ) );
+ add_action( 'update_option_' . self::LICENSES_OPTION_NAME, array( $this, 'attach_stored_licenses' ) );
+ add_action( 'jetpack_authorize_ending_authorized', array( $this, 'attach_stored_licenses_on_connection' ) );
+ }
+
+ /**
+ * 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;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md
new file mode 100644
index 00000000..c922a297
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md
@@ -0,0 +1,133 @@
+# 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).
+
+## [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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php
new file mode 100644
index 00000000..79fda33c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ * A logo for Jetpack.
+ *
+ * @package automattic/jetpack-logo
+ */
+
+namespace Automattic\Jetpack\Assets;
+
+/**
+ * Jetpack logo as SVG shapes.
+ *
+ * Initializes the logo property with a string describing the Jetpack logo.
+ * The Jetpack logo SVG string includes CSS classes to stylize it:
+ * - jetpack-logo: the wrapper <svg> 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 = <<<'EOSVG'
+<svg xmlns="http://www.w3.org/2000/svg" height="32" class="jetpack-logo" viewBox="0 0 118 32">
+ <path class="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" fill="#069e08" />
+ <polygon class="jetpack-logo__icon-triangle" points="15,19 7,19 15,3" fill="#fff" />
+ <polygon class="jetpack-logo__icon-triangle" points="17,29 17,13 25,13" fill="#fff" />
+ <path class="jetpack-logo__text" d="M41.3 26.6c-.5-.7-.9-1.4-1.3-2.1 2.3-1.4 3-2.5 3-4.6V8h-3V6h6v13.4C46 22.8 45 24.8 41.3 26.6zM58.5 21.3c-1.5.5-2.7.6-4.2.6-3.6 0-5.8-1.8-5.8-6 0-3.1 1.9-5.9 5.5-5.9s4.9 2.5 4.9 4.9c0 .8 0 1.5-.1 2h-7.3c.1 2.5 1.5 2.8 3.6 2.8 1.1 0 2.2-.3 3.4-.7C58.5 19 58.5 21.3 58.5 21.3zM56 15c0-1.4-.5-2.9-2-2.9-1.4 0-2.3 1.3-2.4 2.9C51.6 15 56 15 56 15zM65 18.4c0 1.1.8 1.3 1.4 1.3.5 0 2-.2 2.6-.4v2.1c-.9.3-2.5.5-3.7.5-1.5 0-3.2-.5-3.2-3.1V12H60v-2h2.1V7.1H65V10h4v2h-4V18.4zM71 10h3v1.3c1.1-.8 1.9-1.3 3.3-1.3 2.5 0 4.5 1.8 4.5 5.6s-2.2 6.3-5.8 6.3c-.9 0-1.3-.1-2-.3V28h-3V10zM76.5 12.3c-.8 0-1.6.4-2.5 1.2v5.9c.6.1.9.2 1.8.2 2 0 3.2-1.3 3.2-3.9C79 13.4 78.1 12.3 76.5 12.3zM93 22h-3v-1.5c-.9.7-1.9 1.5-3.5 1.5-1.5 0-3.1-1.1-3.1-3.2 0-2.9 2.5-3.4 4.2-3.7l2.4-.3v-.3c0-1.5-.5-2.3-2-2.3-.7 0-2.3.5-3.7 1.1L84 11c1.2-.4 3-1 4.4-1 2.7 0 4.6 1.4 4.6 4.7L93 22zM90 16.4l-2.2.4c-.7.1-1.4.5-1.4 1.6 0 .9.5 1.4 1.3 1.4s1.5-.5 2.3-1V16.4zM104.5 21.3c-1.1.4-2.2.6-3.5.6-4.2 0-5.9-2.4-5.9-5.9 0-3.7 2.3-6 6.1-6 1.4 0 2.3.2 3.2.5V13c-.8-.3-2-.6-3.2-.6-1.7 0-3.2.9-3.2 3.6 0 2.9 1.5 3.8 3.3 3.8.9 0 1.9-.2 3.2-.7V21.3zM110 15.2c.2-.3.2-.8 3.8-5.2h3.7l-4.6 5.7 5 6.3h-3.7l-4.2-5.8V22h-3V6h3V15.2z" />
+</svg>
+EOSVG;
+
+/**
+ * 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(
+ '<svg id="jetpack-logo__icon" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 %1$s 32">%2$s</svg>',
+ ( 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().
+ *
+ * @return string
+ */
+ public function get_jp_emblem_larger() {
+ $logo_text = $this->get_jp_logo_parts();
+ return '<svg class="jitm-jp-logo" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" height="32" viewBox="0 0 118 32">' . $logo_text['logo'] . $logo_text['text'] . '</svg>';
+ }
+
+ /**
+ * Return array containing the Jetpack logo and text
+ *
+ * @return array
+ */
+ private function get_jp_logo_parts() {
+ return array(
+ 'logo' => '<path fill="#069e08" d="M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16c8.8,0,16-7.2,16-16S24.8,0,16,0z M15.2,18.7h-8l8-15.5V18.7z M16.8,28.8 V13.3h8L16.8,28.8z"/>',
+ 'text' => '<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" />
+ <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" />
+ <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" />
+ <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" />
+ <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" />
+ <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" />
+ <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" />',
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/.babelrc b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/.babelrc
new file mode 100644
index 00000000..cf088480
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/.babelrc
@@ -0,0 +1,9 @@
+{
+ "presets": [
+ ["@babel/preset-env", {
+ "targets": {
+ "node": "current"
+ }
+ }]
+ ]
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md
new file mode 100644
index 00000000..117d759f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md
@@ -0,0 +1,50 @@
+# 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.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
+
+[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/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/admin.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/admin.jsx
new file mode 100644
index 00000000..feb7a69c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/admin.jsx
@@ -0,0 +1,25 @@
+/**
+ * External dependencies
+ */
+import ReactDOM from 'react-dom';
+import React from 'react';
+
+/**
+ * Internal dependencies
+ */
+import MyJetpackScreen from './components/my-jetpack-screen';
+
+/**
+ * The initial renderer function.
+ */
+function render() {
+ const container = document.getElementById( 'my-jetpack-container' );
+
+ if ( null === container ) {
+ return;
+ }
+
+ ReactDOM.render( <MyJetpackScreen />, container );
+}
+
+render();
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/index.jsx
new file mode 100644
index 00000000..8bfe39f5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/index.jsx
@@ -0,0 +1,63 @@
+/* global myJetpackInitialState */
+
+/**
+ * External dependencies
+ */
+import React, { useCallback } from 'react';
+import { __ } from '@wordpress/i18n';
+import {
+ AdminSection,
+ AdminSectionHero,
+ AdminPage,
+ Row,
+ Col,
+} from '@automattic/jetpack-components';
+import { ConnectionStatusCard } from '@automattic/jetpack-connection';
+
+import './style.scss';
+
+/**
+ * The My Jetpack App Main Screen.
+ *
+ * @returns {object} The MyJetpackScreen component.
+ */
+export default function MyJetpackScreen() {
+ const redirectAfterDisconnect = useCallback( () => {
+ window.location = myJetpackInitialState.topJetpackMenuItemUrl;
+ }, [] );
+
+ return (
+ <div className="jp-my-jetpack-screen">
+ <AdminPage>
+ <AdminSectionHero>
+ <Row>
+ <Col lg={ 12 } md={ 8 } sm={ 4 }>
+ <h1>
+ { __(
+ 'Manage your Jetpack plan and products all in one place',
+ 'jetpack-my-jetpack'
+ ) }
+ </h1>
+ </Col>
+ </Row>
+ </AdminSectionHero>
+
+ <AdminSection>
+ <Row>
+ <Col lg={ 6 } sm={ 4 }>
+ <h1>{ __( 'My Plan', 'jetpack-my-jetpack' ) }</h1>
+ </Col>
+ <Col lg={ 6 } sm={ 4 }>
+ <ConnectionStatusCard
+ apiRoot={ myJetpackInitialState.apiRoot }
+ apiNonce={ myJetpackInitialState.apiNonce }
+ redirectUri={ myJetpackInitialState.redirectUri }
+ onDisconnected={ redirectAfterDisconnect }
+ />
+ </Col>
+ </Row>
+ </AdminSection>
+ </AdminPage>
+ </div>
+ );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/style.scss b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/style.scss
new file mode 100644
index 00000000..358c0418
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/_inc/components/my-jetpack-screen/style.scss
@@ -0,0 +1 @@
+@import '~@automattic/jetpack-base-styles/style';
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/babel.config.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/babel.config.js
new file mode 100644
index 00000000..4f3daf51
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/babel.config.js
@@ -0,0 +1,10 @@
+const config = {
+ presets: [
+ [
+ '@automattic/jetpack-webpack-config/babel/preset',
+ { pluginReplaceTextdomain: { textdomain: 'jetpack-my-jetpack' } },
+ ],
+ ],
+};
+
+module.exports = config;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
new file mode 100644
index 00000000..13f5651c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
new file mode 100644
index 00000000..a191ec9e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/disconnect-thanks-5873bfac56a9bd7322cd.jpg
Binary files differ
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php
new file mode 100644
index 00000000..aefe6276
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '29d086a288ded38b2a57d1829d39cc12'); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css
new file mode 100644
index 00000000..319c91ee
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css
@@ -0,0 +1 @@
+.O5NYbFTsxmrm4P2SIdOC{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.rkV4U_hzC04NwXFQcTHl{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.rkV4U_hzC04NwXFQcTHl{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.rkV4U_hzC04NwXFQcTHl{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.G81E6mesnld_OhhOvz_F{grid-column-end:span 1}.SfCZpjwiu2F0KDjGIXEA{grid-column-end:span 2}.qPxwbSu_GTDTz_8jFHJD{grid-column-end:span 3}.xYAWQ0wk6FPfZOZQgFiw{grid-column-end:span 4}@media(min-width:600px){.zwZjA7ofpMucaB_UzG48{grid-column-end:span 1}.YfwKGGBEqiINFYy6ZpKM{grid-column-end:span 2}.pcHQbVFRxA_OvNRQ2OwP{grid-column-end:span 3}.U_LJMBlRZ8ItXZuvCXGg{grid-column-end:span 4}.st_7w_Ja1Gp2AgGaTysO{grid-column-end:span 5}.gQsaHmJo6Gp7Yq9IB9Sg{grid-column-end:span 6}.P0a4FWsiJJmR6bySI8QC{grid-column-end:span 7}.UxSHj7jyDp6sGKHILNRc{grid-column-end:span 8}}@media(min-width:960px){.TExt5ebNqUrEn2NzeDDh{grid-column-end:span 1}.cdwvRRac4c2djSpHfOpF{grid-column-end:span 2}.hvRpxlyFY9BQIDdEGTjg{grid-column-end:span 3}.Ev9JGJi3yKkBq6cW3Xge{grid-column-end:span 4}.mhL__tIHFH_tViX5718D{grid-column-end:span 5}.X1lGIxHHxsFl_39u4Px6{grid-column-end:span 6}.pc5UnY_DzsSDkyih78Ti{grid-column-end:span 7}.QCjBtfnG3u20FwoDd59Z{grid-column-end:span 8}.MX1aL3BeJpoSE0aXghp0{grid-column-end:span 9}.h_JAcO8a8ClV2LmTWsMz{grid-column-end:span 10}.gKlDMi0N7LOd9q8uJHi5{grid-column-end:span 11}.KZWhYB7r6TG75uJu2LsQ{grid-column-end:span 12}}@media(max-width:960px){.G6NxfG2gGwvEYb0aGdPJ{display:none}}@media(max-width:600px){.aceZPGfrg7IoR0Vu7ZJg{display:none}}.MZSHJVi991kNJhn_Xnip{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}.MZSHJVi991kNJhn_Xnip span{display:block}.MZSHJVi991kNJhn_Xnip span:last-of-type{font-weight:600}.MZSHJVi991kNJhn_Xnip:focus span:last-of-type,.MZSHJVi991kNJhn_Xnip:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.MZSHJVi991kNJhn_Xnip:focus:after,.MZSHJVi991kNJhn_Xnip:hover:after{transform:translateY(-50%) translateX(8px)}.MZSHJVi991kNJhn_Xnip: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}.EZ590eIMC5y_t1_gWRua{margin-left:-20px}.BYzOly4G7Gry9wdRH0AY{background-color:#fff;padding:40px 0}.iwMEh2CwJ_r23Y9sVcJ1,.O8YnwnZegI89S2Q3k5Qn{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.EC1Yirv2kOgRU77F2XRd{grid-column-end:span 1}.FHZqFvZXEDJ9mpOm7CeY{grid-column-end:span 2}.VOmONLKUkcSrIRYmX6YZ{grid-column-end:span 3}.eECO55N5YGkBB3tKa0If{grid-column-end:span 4}@media(min-width:600px){.u3ZB3zRkuglILO6FSIrx{grid-column-end:span 1}.iZnPl6piWO_GqHn16XKi{grid-column-end:span 2}.WWctfqi1wHZDWrue8GIt{grid-column-end:span 3}.p678NN_M0K78Kpprfndu{grid-column-end:span 4}._6D2TXtGKmepmwrxSf5DW{grid-column-end:span 5}.cWORs5VDjuStXsiVPtiO{grid-column-end:span 6}.yJsc8qt82L9miwDoe2Y2{grid-column-end:span 7}.hD6bXWfNn5elhKCaBFTD{grid-column-end:span 8}}@media(min-width:960px){.k9j6XIJdXbQ5YNyU8sNH{grid-column-end:span 1}.TnVGX0JHm_muRRcmYYwV{grid-column-end:span 2}.VILIswQXi8XzNJ3BqePc{grid-column-end:span 3}.h7mXuoRFWMGCiWYH4Ij1{grid-column-end:span 4}.uHYkk5STnhikqYMIxtE1{grid-column-end:span 5}.E8zp8nDOvAQ7VHsXKJJw{grid-column-end:span 6}.jwOhfvvsXGTCtHfB2854{grid-column-end:span 7}.DmSEZVFn_2XNNKJGgkXw{grid-column-end:span 8}.RdgOIY1qMZ8eqAeNSGNw{grid-column-end:span 9}.XBQd6xiLipeHg0O6cf7N{grid-column-end:span 10}.JyQ6Tbn3FCHfrCEyWrAr{grid-column-end:span 11}.fzJ_qaXYWs3EWQEupbLD{grid-column-end:span 12}}@media(max-width:960px){.LE2ZLIt_Y0slsr6TSmqe{display:none}}@media(max-width:600px){.vYxwZbK_covZoLjDe3BM{display:none}}.fmzqGXmbTSiUblRujgqB{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}.fmzqGXmbTSiUblRujgqB span{display:block}.fmzqGXmbTSiUblRujgqB span:last-of-type{font-weight:600}.fmzqGXmbTSiUblRujgqB:focus span:last-of-type,.fmzqGXmbTSiUblRujgqB:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.fmzqGXmbTSiUblRujgqB:focus:after,.fmzqGXmbTSiUblRujgqB:hover:after{transform:translateY(-50%) translateX(8px)}.fmzqGXmbTSiUblRujgqB: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}.HwO79godDUI97Xub9ey4{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.HwO79godDUI97Xub9ey4{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.HwO79godDUI97Xub9ey4{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.WcIPVMUrQMdwzisuVSh7{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.Nxx7T20LwPUQPXCSDMfA{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.Nxx7T20LwPUQPXCSDMfA{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.Nxx7T20LwPUQPXCSDMfA{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.MnTtKIHRyzXYoesgRCgm{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}.MnTtKIHRyzXYoesgRCgm span{display:block}.MnTtKIHRyzXYoesgRCgm span:last-of-type{font-weight:600}.MnTtKIHRyzXYoesgRCgm:focus span:last-of-type,.MnTtKIHRyzXYoesgRCgm:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.MnTtKIHRyzXYoesgRCgm:focus:after,.MnTtKIHRyzXYoesgRCgm:hover:after{transform:translateY(-50%) translateX(8px)}.MnTtKIHRyzXYoesgRCgm: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}.mmVmo1nZYrRywmnSKQFx{grid-column-end:span 1}.UrIp26XpdUSMJft8YxdC{grid-column-end:span 2}.pMXlFWglEDyK6MbwJ8sX{grid-column-end:span 3}.P5H1ohz9m5_rEqZFAkFm{grid-column-end:span 4}@media(min-width:600px){.ofLUn8LwR3LLeWl8tPdU{grid-column-end:span 1}.fq1Z8JYbcrrXavvSfzKk{grid-column-end:span 2}.jq9gui11HqTDfI7tXH1d{grid-column-end:span 3}.mVYkSRC7j44WiWLZHOnM{grid-column-end:span 4}.S3wOGmx7YLTrqz_bcLth{grid-column-end:span 5}.Y3GW3wokLgm9jnX78Uwk{grid-column-end:span 6}.ShMEdZjpjdYj7mCQzrSO{grid-column-end:span 7}.nfBAID75QGC1VZ8t0RfR{grid-column-end:span 8}}@media(min-width:960px){.Vr2EQcrmKOPJtFU72Vv2{grid-column-end:span 1}.CTS6MNweODFo4ZxcT0iV{grid-column-end:span 2}.XTISRluUo3o5xxnPNu09{grid-column-end:span 3}.c_EtRaSOJafAl5r9WkBm{grid-column-end:span 4}.HcpW_q5aO8Bf_ngIjyjv{grid-column-end:span 5}.XF3r0hMrFrrmxH5TJee0{grid-column-end:span 6}.Jl9ognyJ9XOZ6g0BTzLf{grid-column-end:span 7}._8w8oD2R9CVt9AU4PvUy{grid-column-end:span 8}.ltOXxurwUtxy7XIR_loo{grid-column-end:span 9}.bKUzzGEJ3wCoAOZZvVCK{grid-column-end:span 10}.GltQVCPa1x4tZ7sWFg1v{grid-column-end:span 11}.UzWicuFiKrGgMEjmRAFA{grid-column-end:span 12}}@media(max-width:960px){.CDwHAcVQxDeV2mFXS1Dz{display:none}}@media(max-width:600px){.sr1184KrdJ0UtgNsMQnR{display:none}}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-left:5px}.K6gniZequRm1zBi4xa2G{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.vickZxEIl6kGZp7KkFYF{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.vickZxEIl6kGZp7KkFYF{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.vickZxEIl6kGZp7KkFYF{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.U2ZD1antXfCcQlBdFwyw{grid-column-end:span 1}.caLSPVQ3JP3b2Ia68Seq{grid-column-end:span 2}.h6FKJdwoY_zIXh6pEj1U{grid-column-end:span 3}.GkjDOzh_5n5VxKrqEW_I{grid-column-end:span 4}@media(min-width:600px){.V2HSxZHesNOXMBWOmdFG{grid-column-end:span 1}.i3fz9zvErDyXYherb6Ew{grid-column-end:span 2}._3bKcKfanUgurPMcHEiV{grid-column-end:span 3}.U44hqBGsmVA1lI9R2ZnH{grid-column-end:span 4}.AzaRYYQQYJjKUF9D87mw{grid-column-end:span 5}.sag3QKXTxIQXPPjmbrAl{grid-column-end:span 6}.ifY5fUWFNROS_F7Jys9v{grid-column-end:span 7}.nZFgLvw9LsUJnEViXnJZ{grid-column-end:span 8}}@media(min-width:960px){.Tqir6CbiyHOgYmsAgY57{grid-column-end:span 1}.VeVLz3DEagxiXMMPEOCe{grid-column-end:span 2}.G3R07cw2eP3D3juW3A3l{grid-column-end:span 3}.eQ3UseyneBNu_ZLuqSzg{grid-column-end:span 4}.VlgV8xjgkGoOLJShoyNM{grid-column-end:span 5}.DJCwqamaIDFQoj0jEgBc{grid-column-end:span 6}.CxtXPQUYJfNUQVn3y2y_{grid-column-end:span 7}.BroOgbyuFxoSv48H70B5{grid-column-end:span 8}.KnUcRFDSsxeb_z46ajNY{grid-column-end:span 9}.bXiAAxiM2mhcI43ET0pp{grid-column-end:span 10}.ipYVW2jwG2cFjIHpnQk2{grid-column-end:span 11}.KcREgfiJ4ix9nAvNAXqQ{grid-column-end:span 12}}@media(max-width:960px){.qSfEJeFAh4WmcPtmo8qe{display:none}}@media(max-width:600px){._RxxiRFsUS3nYTZhkprA{display:none}}.RSw9xhnEr8xpkX3hPPaM{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}.RSw9xhnEr8xpkX3hPPaM span{display:block}.RSw9xhnEr8xpkX3hPPaM span:last-of-type{font-weight:600}.RSw9xhnEr8xpkX3hPPaM:focus span:last-of-type,.RSw9xhnEr8xpkX3hPPaM:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.RSw9xhnEr8xpkX3hPPaM:focus:after,.RSw9xhnEr8xpkX3hPPaM:hover:after{transform:translateY(-50%) translateX(8px)}.RSw9xhnEr8xpkX3hPPaM: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}.kEBaF5NOHtQsQn5jfOEA{background:var(--jp-white-off);padding:48px 0 64px}.kEBaF5NOHtQsQn5jfOEA h1,.kEBaF5NOHtQsQn5jfOEA h2,.kEBaF5NOHtQsQn5jfOEA h3,.kEBaF5NOHtQsQn5jfOEA h4,.kEBaF5NOHtQsQn5jfOEA h5,.kEBaF5NOHtQsQn5jfOEA h6{line-height:1.2;margin-top:0}._UqttTwRJeajPRpRGZPJ{background-color:#fff;padding:64px 0}._UqttTwRJeajPRpRGZPJ h1,._UqttTwRJeajPRpRGZPJ h2,._UqttTwRJeajPRpRGZPJ h3,._UqttTwRJeajPRpRGZPJ h4,._UqttTwRJeajPRpRGZPJ h5,._UqttTwRJeajPRpRGZPJ h6{line-height:1.2;margin-top:0}.jp-connection-status-card h3{color:var(--jp-black);font-size:36px;font-weight:400;line-height:40px;margin:0}.jp-connection-status-card a,.jp-connection-status-card a:active,.jp-connection-status-card a:hover{color:var(--jp-black)}.jp-connection-status-card p{color:var(--jp-black);margin:16px 0}.jp-connection-status-card a,.jp-connection-status-card li,.jp-connection-status-card p{font-size:16px;line-height:24px}.jp-connection-status-card--status{align-items:center;display:flex;margin:24px 0 24px -6px}.jp-connection-status-card--cloud{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjciIHk9IjkiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyMSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4zMzMgMTcuNjk3di0uMDhjMC00LjI1My0zLjc2LTcuNy04LjQtNy43LTMuOTE2IDAtNy4yMDYgMi40NTctOC4xMzYgNS43OGE2LjM4NiA2LjM4NiAwIDAgMC0uMjY0LS4wMDVDOS45MjUgMTUuNjkyIDcgMTguNzA4IDcgMjIuNDI5czIuOTI1IDYuNzM4IDYuNTMzIDYuNzM4SDI5LjRjMy4wOTMgMCA1LjYtMi41ODYgNS42LTUuNzc1IDAtMi44NjEtMi4wMTgtNS4yMzctNC42NjYtNS42OTVaIiBmaWxsPSIjZmZmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxwYXRoIGQ9Im0zMC4zMzMgMTcuNjk3LTIuNjI1LS4wMy0uMDI1IDIuMjM1IDIuMjAyLjM4MS40NDgtMi41ODZabS0xNi41MzctMi0uMTA3IDIuNjIzIDIuMDc1LjA4NS41Ni0yLTIuNTI4LS43MDhabS0uMjYzIDEzLjQ3djIuNjI1aC4wMDhsLS4wMDgtMi42MjVabS4wNCAwdi0yLjYyNWgtLjAwOWwuMDA4IDIuNjI1Wm0xNS43OTUgMCAuMDE1LTIuNjI1aC0uMDE1djIuNjI1Wm0zLjU5LTExLjQ0MXYtLjExaC01LjI1di4wNTJsNS4yNS4wNThabTAtLjExYzAtNS45MTItNS4xNTUtMTAuMzI0LTExLjAyNS0xMC4zMjR2NS4yNWMzLjQxIDAgNS43NzUgMi40ODIgNS43NzUgNS4wNzVoNS4yNVpNMjEuOTMzIDcuMjkzYy00Ljk4NCAwLTkuMzg4IDMuMTM5LTEwLjY2NCA3LjY5OGw1LjA1NSAxLjQxNWMuNTg1LTIuMDg5IDIuNzYyLTMuODYzIDUuNjEtMy44NjN2LTUuMjVabS04LjAzIDUuNzgyYTkuMTExIDkuMTExIDAgMCAwLS4zNy0uMDA3djUuMjVjLjA1MyAwIC4xMDUuMDAxLjE1Ni4wMDNsLjIxNS01LjI0NlptLS4zNy0uMDA3Yy01LjEzMyAwLTkuMTU4IDQuMjY4LTkuMTU4IDkuMzYyaDUuMjVjMC0yLjM0OCAxLjgyNS00LjExMiAzLjkwOC00LjExMnYtNS4yNVptLTkuMTU4IDkuMzYyYzAgNS4wOTUgNC4wMjUgOS4zNjMgOS4xNTggOS4zNjN2LTUuMjVjLTIuMDgzIDAtMy45MDgtMS43NjUtMy45MDgtNC4xMTNoLTUuMjVabTkuMTY2IDkuMzYzaC4wNGwtLjAxNy01LjI1aC0uMDM5bC4wMTYgNS4yNVptLjAzMSAwaDE1Ljc5NnYtNS4yNUgxMy41NzJ2NS4yNVptMTUuODI3LTUuMjVoLS4wMTZsLS4wMyA1LjI1aC4wNDZ2LTUuMjVabTIuOTc1LTMuMTVjMCAxLjgxNi0xLjQwNyAzLjE1LTIuOTc1IDMuMTV2NS4yNWM0LjYxOCAwIDguMjI1LTMuODM4IDguMjI1LTguNGgtNS4yNVptLTIuNDg5LTMuMTA5YzEuMzU1LjIzNSAyLjQ5IDEuNDg4IDIuNDkgMy4xMDloNS4yNWMwLTQuMTAyLTIuOTAyLTcuNi02Ljg0NC04LjI4MmwtLjg5NiA1LjE3M1oiIGZpbGw9IiMxRTFFMUUiLz48L2c+PC9zdmc+);height:42px;margin-right:4px;width:42px}.jp-connection-status-card--jetpack-logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZTMjQuODM3IDAgMTYgMCAwIDcuMTYzIDAgMTZzNy4xNjMgMTYgMTYgMTZaIiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTE2Ljc5NCAxMy4zMTN2MTUuNTExbDgtMTUuNTEyaC04Wk0xNS4xNzUgMTguNjU3VjMuMTc2bC03Ljk2OSAxNS40OGg3Ljk3WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);height:32px;margin-left:11px;width:32px}.jp-connection-status-card--btn-connect-user{background:var(--jp-black)!important;border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection-status-card--avatar{background-color:var(--jp-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.498 27.123C6.038 24.165 10.916 21.5 16 21.5c5.084 0 9.963 2.665 11.502 5.623a15.952 15.952 0 0 1-11.257 4.875L16 32l-.245-.002a15.952 15.952 0 0 1-11.257-4.875zM16 8a6 6 0 1 1 0 12 6 6 0 0 1 0-12z' fill='%23A2AAB2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;border:0;border-radius:20px;height:32px;margin-left:-10px;width:32px}.jp-connection-status-card--line{border-top:2px solid var(--jp-black);height:0;width:67px}.jp-connection-status-card--line.jp-connection-status-card--site-only{border-top-style:dashed}.jp-connection-status-card--list{list-style-type:none;margin:16px 0}.jp-connection-status-card--list li{color:var(--jp-black);margin:0 0 8px -3px;padding-left:25px}.jp-connection-status-card--list-item-success{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4LjkzNSA2LTguOSAxMS45Ny01LjE2Mi0zLjgzNyIgc3Ryb2tlPSIjMUUxRTFFIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==) no-repeat 0 0}.jp-connection-status-card--list-item-error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 0 0;color:var(--jp-red)!important}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-small);font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:var(--font-title-small);font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:var(--font-body);margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:var(--jp-white-off);border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:var(--jp-white);border-top:1px solid var(--jp-gray);bottom:0;padding:2rem 0;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(to bottom,transparent,var(--jp-white-off));bottom:calc(100% + 1px);content:"";display:block;height:80px;left:0;position:absolute;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:var(--jp-black)!important;margin-right:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:var(--jp-red)!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:var(--jp-black)!important}.jp-connection__disconnect-dialog__button-wrap{text-align:left}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:var(--jp-red)}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-large)}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-left:0}}.jp-connection__disconnect-card{background-color:var(--jp-white);border:none;border-radius:3px;box-shadow:0 0 15px var(--jp-gray-off);margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:left;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-right:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:right}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-right:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:1rem;margin-right:0}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px var(--jp-gray);display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:var(--jp-gray);background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;left:24px;position:absolute;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:var(--jp-red);border-radius:50px;height:80px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px var(--jp-gray-off);margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:left;width:800px}.jp-connect__disconnect-survey-card--selected{background:var(--jp-gray-off);border-color:var(--jp-black)}.jp-connect__disconnect-survey-card:after{border-right:2px solid var(--jp-black);border-top:2px solid var(--jp-black);content:"";display:block;height:5px;position:absolute;right:1.5rem;top:50%;transform:translateY(-50%) rotate(45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:var(--jp-black-80)}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:var(--jp-black-80);flex-grow:1;max-width:calc(100% - 40px);padding-right:40px} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js
new file mode 100644
index 00000000..b5192a4a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js
@@ -0,0 +1,2 @@
+/*! For license information please see index.js.LICENSE.txt */
+(()=>{var e={7538:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.default=e.exports,e.exports.__esModule=!0},9183:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var c in n)Object.prototype.hasOwnProperty.call(n,c)&&(e[c]=n[c])}return e},e.exports.default=e.exports,e.exports.__esModule=!0,t.apply(this,arguments)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0},9105:(e,t)=>{var n;!function(){"use strict";var c={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var s=typeof n;if("string"===s||"number"===s)e.push(n);else if(Array.isArray(n)){if(n.length){var a=o.apply(null,n);a&&e.push(a)}}else if("object"===s)if(n.toString===Object.prototype.toString)for(var r in n)c.call(n,r)&&n[r]&&e.push(r);else e.push(n.toString())}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},5771:(e,t,n)=>{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 n="color: "+this.color;t.splice(1,0,n,"color: inherit");let c=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(c++,"%c"===e&&(o=c))})),t.splice(o,0,n)},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=n(1244)(t);const{formatters:c}=e.exports;c.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},1244:(e,t,n)=>{e.exports=function(e){function t(e){let n,o,s,a=null;function r(...e){if(!r.enabled)return;const c=r,o=Number(new Date),s=o-(n||o);c.diff=s,c.prev=n,c.curr=o,n=o,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let a=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((n,o)=>{if("%%"===n)return"%";a++;const s=t.formatters[o];if("function"==typeof s){const t=e[a];n=s.call(c,t),e.splice(a,1),a--}return n})),t.formatArgs.call(c,e);(c.log||t.log).apply(c,e)}return r.namespace=e,r.useColors=t.useColors(),r.color=t.selectColor(e),r.extend=c,r.destroy=t.destroy,Object.defineProperty(r,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(o!==t.namespaces&&(o=t.namespaces,s=t.enabled(e)),s),set:e=>{a=e}}),"function"==typeof t.init&&t.init(r),r}function c(e,n){const c=t(this.namespace+(void 0===n?":":n)+e);return c.log=this.log,c}function o(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(o),...t.skips.map(o).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const c=("string"==typeof e?e:"").split(/[\s,]+/),o=c.length;for(n=0;n<o;n++)c[n]&&("-"===(e=c[n].replace(/\*/g,".*?"))[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))},t.enabled=function(e){if("*"===e[e.length-1])return!0;let n,c;for(n=0,c=t.skips.length;n<c;n++)if(t.skips[n].test(e))return!1;for(n=0,c=t.names.length;n<c;n++)if(t.names[n].test(e))return!0;return!1},t.humanize=n(2002),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach((n=>{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},6619:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-wrap":"O5NYbFTsxmrm4P2SIdOC","jp-row":"rkV4U_hzC04NwXFQcTHl","sm-col-span-1":"G81E6mesnld_OhhOvz_F","sm-col-span-2":"SfCZpjwiu2F0KDjGIXEA","sm-col-span-3":"qPxwbSu_GTDTz_8jFHJD","sm-col-span-4":"xYAWQ0wk6FPfZOZQgFiw","md-col-span-1":"zwZjA7ofpMucaB_UzG48","md-col-span-2":"YfwKGGBEqiINFYy6ZpKM","md-col-span-3":"pcHQbVFRxA_OvNRQ2OwP","md-col-span-4":"U_LJMBlRZ8ItXZuvCXGg","md-col-span-5":"st_7w_Ja1Gp2AgGaTysO","md-col-span-6":"gQsaHmJo6Gp7Yq9IB9Sg","md-col-span-7":"P0a4FWsiJJmR6bySI8QC","md-col-span-8":"UxSHj7jyDp6sGKHILNRc","lg-col-span-1":"TExt5ebNqUrEn2NzeDDh","lg-col-span-2":"cdwvRRac4c2djSpHfOpF","lg-col-span-3":"hvRpxlyFY9BQIDdEGTjg","lg-col-span-4":"Ev9JGJi3yKkBq6cW3Xge","lg-col-span-5":"mhL__tIHFH_tViX5718D","lg-col-span-6":"X1lGIxHHxsFl_39u4Px6","lg-col-span-7":"pc5UnY_DzsSDkyih78Ti","lg-col-span-8":"QCjBtfnG3u20FwoDd59Z","lg-col-span-9":"MX1aL3BeJpoSE0aXghp0","lg-col-span-10":"h_JAcO8a8ClV2LmTWsMz","lg-col-span-11":"gKlDMi0N7LOd9q8uJHi5","lg-col-span-12":"KZWhYB7r6TG75uJu2LsQ","md-col-span-0":"G6NxfG2gGwvEYb0aGdPJ","sm-col-span-0":"aceZPGfrg7IoR0Vu7ZJg","jp-cut":"MZSHJVi991kNJhn_Xnip","jp-admin-page":"EZ590eIMC5y_t1_gWRua","jp-admin-page-section":"BYzOly4G7Gry9wdRH0AY"}},9855:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-admin-section":"_UqttTwRJeajPRpRGZPJ"}},8459:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-wrap":"K6gniZequRm1zBi4xa2G","jp-row":"vickZxEIl6kGZp7KkFYF","sm-col-span-1":"U2ZD1antXfCcQlBdFwyw","sm-col-span-2":"caLSPVQ3JP3b2Ia68Seq","sm-col-span-3":"h6FKJdwoY_zIXh6pEj1U","sm-col-span-4":"GkjDOzh_5n5VxKrqEW_I","md-col-span-1":"V2HSxZHesNOXMBWOmdFG","md-col-span-2":"i3fz9zvErDyXYherb6Ew","md-col-span-3":"_3bKcKfanUgurPMcHEiV","md-col-span-4":"U44hqBGsmVA1lI9R2ZnH","md-col-span-5":"AzaRYYQQYJjKUF9D87mw","md-col-span-6":"sag3QKXTxIQXPPjmbrAl","md-col-span-7":"ifY5fUWFNROS_F7Jys9v","md-col-span-8":"nZFgLvw9LsUJnEViXnJZ","lg-col-span-1":"Tqir6CbiyHOgYmsAgY57","lg-col-span-2":"VeVLz3DEagxiXMMPEOCe","lg-col-span-3":"G3R07cw2eP3D3juW3A3l","lg-col-span-4":"eQ3UseyneBNu_ZLuqSzg","lg-col-span-5":"VlgV8xjgkGoOLJShoyNM","lg-col-span-6":"DJCwqamaIDFQoj0jEgBc","lg-col-span-7":"CxtXPQUYJfNUQVn3y2y_","lg-col-span-8":"BroOgbyuFxoSv48H70B5","lg-col-span-9":"KnUcRFDSsxeb_z46ajNY","lg-col-span-10":"bXiAAxiM2mhcI43ET0pp","lg-col-span-11":"ipYVW2jwG2cFjIHpnQk2","lg-col-span-12":"KcREgfiJ4ix9nAvNAXqQ","md-col-span-0":"qSfEJeFAh4WmcPtmo8qe","sm-col-span-0":"_RxxiRFsUS3nYTZhkprA","jp-cut":"RSw9xhnEr8xpkX3hPPaM","jp-admin-section-hero":"kEBaF5NOHtQsQn5jfOEA"}},8776:()=>{},3220:()=>{},4555:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-wrap":"WcIPVMUrQMdwzisuVSh7","jp-row":"Nxx7T20LwPUQPXCSDMfA","sm-col-span-1":"mmVmo1nZYrRywmnSKQFx","sm-col-span-2":"UrIp26XpdUSMJft8YxdC","sm-col-span-3":"pMXlFWglEDyK6MbwJ8sX","sm-col-span-4":"P5H1ohz9m5_rEqZFAkFm","md-col-span-1":"ofLUn8LwR3LLeWl8tPdU","md-col-span-2":"fq1Z8JYbcrrXavvSfzKk","md-col-span-3":"jq9gui11HqTDfI7tXH1d","md-col-span-4":"mVYkSRC7j44WiWLZHOnM","md-col-span-5":"S3wOGmx7YLTrqz_bcLth","md-col-span-6":"Y3GW3wokLgm9jnX78Uwk","md-col-span-7":"ShMEdZjpjdYj7mCQzrSO","md-col-span-8":"nfBAID75QGC1VZ8t0RfR","lg-col-span-1":"Vr2EQcrmKOPJtFU72Vv2","lg-col-span-2":"CTS6MNweODFo4ZxcT0iV","lg-col-span-3":"XTISRluUo3o5xxnPNu09","lg-col-span-4":"c_EtRaSOJafAl5r9WkBm","lg-col-span-5":"HcpW_q5aO8Bf_ngIjyjv","lg-col-span-6":"XF3r0hMrFrrmxH5TJee0","lg-col-span-7":"Jl9ognyJ9XOZ6g0BTzLf","lg-col-span-8":"_8w8oD2R9CVt9AU4PvUy","lg-col-span-9":"ltOXxurwUtxy7XIR_loo","lg-col-span-10":"bKUzzGEJ3wCoAOZZvVCK","lg-col-span-11":"GltQVCPa1x4tZ7sWFg1v","lg-col-span-12":"UzWicuFiKrGgMEjmRAFA","md-col-span-0":"CDwHAcVQxDeV2mFXS1Dz","sm-col-span-0":"sr1184KrdJ0UtgNsMQnR","jp-cut":"MnTtKIHRyzXYoesgRCgm"}},8422:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-container":"O8YnwnZegI89S2Q3k5Qn"}},7941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={"jp-wrap":"iwMEh2CwJ_r23Y9sVcJ1","jp-row":"HwO79godDUI97Xub9ey4","sm-col-span-1":"EC1Yirv2kOgRU77F2XRd","sm-col-span-2":"FHZqFvZXEDJ9mpOm7CeY","sm-col-span-3":"VOmONLKUkcSrIRYmX6YZ","sm-col-span-4":"eECO55N5YGkBB3tKa0If","md-col-span-1":"u3ZB3zRkuglILO6FSIrx","md-col-span-2":"iZnPl6piWO_GqHn16XKi","md-col-span-3":"WWctfqi1wHZDWrue8GIt","md-col-span-4":"p678NN_M0K78Kpprfndu","md-col-span-5":"_6D2TXtGKmepmwrxSf5DW","md-col-span-6":"cWORs5VDjuStXsiVPtiO","md-col-span-7":"yJsc8qt82L9miwDoe2Y2","md-col-span-8":"hD6bXWfNn5elhKCaBFTD","lg-col-span-1":"k9j6XIJdXbQ5YNyU8sNH","lg-col-span-2":"TnVGX0JHm_muRRcmYYwV","lg-col-span-3":"VILIswQXi8XzNJ3BqePc","lg-col-span-4":"h7mXuoRFWMGCiWYH4Ij1","lg-col-span-5":"uHYkk5STnhikqYMIxtE1","lg-col-span-6":"E8zp8nDOvAQ7VHsXKJJw","lg-col-span-7":"jwOhfvvsXGTCtHfB2854","lg-col-span-8":"DmSEZVFn_2XNNKJGgkXw","lg-col-span-9":"RdgOIY1qMZ8eqAeNSGNw","lg-col-span-10":"XBQd6xiLipeHg0O6cf7N","lg-col-span-11":"JyQ6Tbn3FCHfrCEyWrAr","lg-col-span-12":"fzJ_qaXYWs3EWQEupbLD","md-col-span-0":"LE2ZLIt_Y0slsr6TSmqe","sm-col-span-0":"vYxwZbK_covZoLjDe3BM","jp-cut":"fmzqGXmbTSiUblRujgqB"}},404:()=>{},1294:()=>{},1545:()=>{},843:()=>{},3498:()=>{},2002:e=>{var t=1e3,n=60*t,c=60*n,o=24*c,s=7*o,a=365.25*o;function r(e,t,n,c){var o=t>=1.5*n;return Math.round(e/n)+" "+c+(o?"s":"")}e.exports=function(e,i){i=i||{};var l=typeof e;if("string"===l&&e.length>0)return function(e){if((e=String(e)).length>100)return;var r=/^(-?(?:\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(!r)return;var i=parseFloat(r[1]);switch((r[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return i*a;case"weeks":case"week":case"w":return i*s;case"days":case"day":case"d":return i*o;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*n;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"===l&&isFinite(e))return i.long?function(e){var s=Math.abs(e);if(s>=o)return r(e,s,o,"day");if(s>=c)return r(e,s,c,"hour");if(s>=n)return r(e,s,n,"minute");if(s>=t)return r(e,s,t,"second");return e+" ms"}(e):function(e){var s=Math.abs(e);if(s>=o)return Math.round(e/o)+"d";if(s>=c)return Math.round(e/c)+"h";if(s>=n)return Math.round(e/n)+"m";if(s>=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))}},9587:(e,t,n)=>{"use strict";var c=n(5843);function o(){}function s(){}s.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,s,a){if(a!==c){var r=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 r.name="Invariant Violation",r}}function t(){return e}e.isRequired=e;var n={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:s,resetWarningCache:o};return n.PropTypes=n,n}},1268:(e,t,n)=>{e.exports=n(9587)()},5843:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},816:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var c=n(5771),o=n.n(c),s=n(2819);const a=o()("dops:analytics");let r,i;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const l={initialize:function(e,t,n){l.setUser(e,t),l.setSuperProps(n),l.identifyUser()},setGoogleAnalyticsEnabled:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){i={ID:e,username:t}},setSuperProps:function(e){r=e},mc:{bumpStat:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);a("Bumping stats %o",e)}else n="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),a('Bumping stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+n+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const n=function(e,t){let n="";if("object"==typeof e){for(const t in e)n+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);a("Built stats %o",e)}else n="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),a('Built stat "%s" in group "%s"',t,e);return n}(e,t);this.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+n+"&t="+Math.random())}},pageView:{record:function(e,t){l.tracks.recordPageView(e),l.ga.recordPageView(e,t)}},purchase:{record:function(e,t,n,c,o,s,a){l.ga.recordPurchase(e,t,n,c,o,s,a)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(r&&(a("- Super Props: %o",r),t=(0,s.assign)(t,r)),a('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):a('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};l.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){l.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){a("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};l.ga.initialized||(i&&(e={userId:"u-"+i.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),l.ga.initialized=!0)},recordPageView:function(e,t){l.ga.initialize(),a("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,n,c){l.ga.initialize();let o="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==n&&(o+=" [Option Label: "+n+"]"),void 0!==c&&(o+=" [Option Value: "+c+"]"),a(o),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,n,c)},recordPurchase:function(e,t,n,c,o,s,a){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:c,currency:a}),window.ga("ecommerce:addItem",{id:e,name:t,sku:n,price:o,quantity:s}),window.ga("ecommerce:send")}},identifyUser:function(){i&&window._tkq.push(["identifyUser",i.ID,i.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}},p=l},9570:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>u});var c=n(2819),o=n(6483),s=n(6251);function a(e){class t extends Error{constructor(){super(...arguments),this.name=e}}return t}const r=a("JsonParseError"),i=a("JsonParseAfterRedirectError"),l=a("Api404Error"),p=a("Api404AfterRedirectError"),d=a("FetchNetworkError");const u=new function(e,t){let n=e,a={"X-WP-Nonce":t},r={credentials:"same-origin",headers:a},i={method:"post",credentials:"same-origin",headers:(0,c.assign)({},a,{"Content-type":"application/json"})},l=function(e){const t=e.split("?"),n=t.length>1?t[1]:"",c=n.length?n.split("&"):[];return c.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+c.join("&")};const p={setApiRoot(e){n=e},setApiNonce(e){a={"X-WP-Nonce":e},r={credentials:"same-origin",headers:a},i={method:"post",credentials:"same-origin",headers:(0,c.assign)({},a,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{l=e},registerSite:(e,t)=>{const c={registration_nonce:e,no_iframe:!0};return(0,s.jetpackConfigHas)("consumer_slug")&&(c.plugin_slug=(0,s.jetpackConfigGet)("consumer_slug")),null!==t&&(c.redirect_uri=t),u(`${n}jetpack/v4/connection/register`,i,{body:JSON.stringify(c)}).then(m).then(g)},fetchAuthorizationUrl:e=>d((0,o.addQueryArgs)(`${n}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),r).then(m).then(g),fetchSiteConnectionData:()=>d(`${n}jetpack/v4/connection/data`,r).then(g),fetchSiteConnectionStatus:()=>d(`${n}jetpack/v4/connection`,r).then(g),fetchSiteConnectionTest:()=>d(`${n}jetpack/v4/connection/test`,r).then(m).then(g),fetchUserConnectionData:()=>d(`${n}jetpack/v4/connection/data`,r).then(g),fetchUserTrackingSettings:()=>d(`${n}jetpack/v4/tracking/settings`,r).then(m).then(g),updateUserTrackingSettings:e=>u(`${n}jetpack/v4/tracking/settings`,i,{body:JSON.stringify(e)}).then(m).then(g),disconnectSite:()=>u(`${n}jetpack/v4/connection`,i,{body:JSON.stringify({isActive:!1})}).then(m).then(g),fetchConnectUrl:()=>d(`${n}jetpack/v4/connection/url`,r).then(m).then(g),unlinkUser:()=>u(`${n}jetpack/v4/connection/user`,i,{body:JSON.stringify({linked:!1})}).then(m).then(g),reconnect:()=>u(`${n}jetpack/v4/connection/reconnect`,i).then(m).then(g),fetchConnectedPlugins:()=>d(`${n}jetpack/v4/connection/plugins`,r).then(m).then(g),setHasSeenWCConnectionModal:()=>u(`${n}jetpack/v4/seen-wc-connection-modal`,i).then(m).then(g),fetchModules:()=>d(`${n}jetpack/v4/module/all`,r).then(m).then(g),fetchModule:e=>d(`${n}jetpack/v4/module/${e}`,r).then(m).then(g),activateModule:e=>u(`${n}jetpack/v4/module/${e}/active`,i,{body:JSON.stringify({active:!0})}).then(m).then(g),deactivateModule:e=>u(`${n}jetpack/v4/module/${e}/active`,i,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>u(`${n}jetpack/v4/module/${e}`,i,{body:JSON.stringify(t)}).then(m).then(g),updateSettings:e=>u(`${n}jetpack/v4/settings`,i,{body:JSON.stringify(e)}).then(m).then(g),getProtectCount:()=>d(`${n}jetpack/v4/module/protect/data`,r).then(m).then(g),resetOptions:e=>u(`${n}jetpack/v4/options/${e}`,i,{body:JSON.stringify({reset:!0})}).then(m).then(g),activateVaultPress:()=>u(`${n}jetpack/v4/plugins`,i,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(m).then(g),getVaultPressData:()=>d(`${n}jetpack/v4/module/vaultpress/data`,r).then(m).then(g),installPlugin:(e,t)=>{const c={slug:e,status:"active"};return t&&(c.source=t),u(`${n}jetpack/v4/plugins`,i,{body:JSON.stringify(c)}).then(m).then(g)},activateAkismet:()=>u(`${n}jetpack/v4/plugins`,i,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(m).then(g),getAkismetData:()=>d(`${n}jetpack/v4/module/akismet/data`,r).then(m).then(g),checkAkismetKey:()=>d(`${n}jetpack/v4/module/akismet/key/check`,r).then(m).then(g),checkAkismetKeyTyped:e=>u(`${n}jetpack/v4/module/akismet/key/check`,i,{body:JSON.stringify({api_key:e})}).then(m).then(g),fetchStatsData:e=>d(function(e){let t=`${n}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),r).then(m).then(g).then(h),getPluginUpdates:()=>d(`${n}jetpack/v4/updates/plugins`,r).then(m).then(g),getPlans:()=>d(`${n}jetpack/v4/plans`,r).then(m).then(g),fetchSettings:()=>d(`${n}jetpack/v4/settings`,r).then(m).then(g),updateSetting:e=>u(`${n}jetpack/v4/settings`,i,{body:JSON.stringify(e)}).then(m).then(g),fetchSiteData:()=>d(`${n}jetpack/v4/site`,r).then(m).then(g).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>d(`${n}jetpack/v4/site/features`,r).then(m).then(g).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>d(`${n}jetpack/v4/site/products`,r).then(m).then(g),fetchSitePurchases:()=>d(`${n}jetpack/v4/site/purchases`,r).then(m).then(g).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>d(`${n}jetpack/v4/site/benefits`,r).then(m).then(g).then((e=>JSON.parse(e.data))),fetchSetupQuestionnaire:()=>d(`${n}jetpack/v4/setup/questionnaire`,r).then(m).then(g),fetchRecommendationsData:()=>d(`${n}jetpack/v4/recommendations/data`,r).then(m).then(g),fetchRecommendationsProductSuggestions:()=>d(`${n}jetpack/v4/recommendations/product-suggestions`,r).then(m).then(g),fetchRecommendationsUpsell:()=>d(`${n}jetpack/v4/recommendations/upsell`,r).then(m).then(g),saveRecommendationsData:e=>u(`${n}jetpack/v4/recommendations/data`,i,{body:JSON.stringify({data:e})}).then(m),fetchProducts:()=>d(`${n}jetpack/v4/products`,r).then(m).then(g),fetchRewindStatus:()=>d(`${n}jetpack/v4/rewind`,r).then(m).then(g).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>d(`${n}jetpack/v4/scan`,r).then(m).then(g).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>u(`${n}jetpack/v4/notice/${e}`,i,{body:JSON.stringify({dismissed:!0})}).then(m).then(g),fetchPluginsData:()=>d(`${n}jetpack/v4/plugins`,r).then(m).then(g),fetchVerifySiteGoogleStatus:e=>d(null!==e?`${n}jetpack/v4/verify-site/google/${e}`:`${n}jetpack/v4/verify-site/google`,r).then(m).then(g),verifySiteGoogle:e=>u(`${n}jetpack/v4/verify-site/google`,i,{body:JSON.stringify({keyring_id:e})}).then(m).then(g),sendMobileLoginEmail:()=>u(`${n}jetpack/v4/mobile/send-login-email`,i).then(m).then(g),submitSurvey:e=>u(`${n}jetpack/v4/marketing/survey`,i,{body:JSON.stringify(e)}).then(m).then(g),saveSetupQuestionnaire:e=>u(`${n}jetpack/v4/setup/questionnaire`,i,{body:JSON.stringify(e)}).then(m).then(g),updateLicensingError:e=>u(`${n}jetpack/v4/licensing/error`,i,{body:JSON.stringify(e)}).then(m).then(g),updateLicenseKey:e=>u(`${n}jetpack/v4/licensing/set-license`,i,{body:JSON.stringify({license:e})}).then(m).then(g),getUserLicensesCounts:()=>d(`${n}jetpack/v4/licensing/user/counts`,r).then(m).then(g),updateLicensingActivationNoticeDismiss:e=>u(`${n}jetpack/v4/licensing/user/activation-notice-dismiss`,i,{body:JSON.stringify({last_detached_count:e})}).then(m).then(g),updateRecommendationsStep:e=>u(`${n}jetpack/v4/recommendations/step`,i,{body:JSON.stringify({step:e})}).then(m),confirmIDCSafeMode:()=>u(`${n}jetpack/v4/identity-crisis/confirm-safe-mode`,i).then(m),startIDCFresh:e=>u(`${n}jetpack/v4/identity-crisis/start-fresh`,i,{body:JSON.stringify({redirect_uri:e})}).then(m).then(g),migrateIDC:()=>u(`${n}jetpack/v4/identity-crisis/migrate`,i).then(m),attachLicenses:e=>u(`${n}jetpack/v4/licensing/attach-licenses`,i,{body:JSON.stringify({licenses:e})}).then(m).then(g),fetchSearchPlanInfo:()=>d(`${n}jetpack/v4/search/plan`,r).then(m).then(g),fetchSearchSettings:()=>d(`${n}jetpack/v4/search/settings`,r).then(m).then(g),updateSearchSettings:e=>u(`${n}jetpack/v4/search/settings`,i,{body:JSON.stringify(e)}).then(m).then(g)};function d(e,t){return fetch(l(e),t)}function u(e,t,n){return fetch(e,(0,c.assign)({},t,n)).catch(f)}function h(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}(0,c.assign)(this,p)};function m(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new p(e.redirected):new l})):e.json().catch((e=>h(e))).then((t=>{const n=new Error(`${t.message} (Status ${e.status})`);throw n.response=t,n.name="ApiError",n}))}function g(e){return e.json().catch((t=>h(t,e.redirected,e.url)))}function h(e,t,n){throw t?new i(n):new r}function f(){throw new d}},2234:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var c=n(9196),o=n.n(c),s=n(5736),a=n(1268),r=n.n(a),i=n(6619),l=n(7967),p=n(69),d=n(4191),u=n(134);const __=s.__,m=e=>{const{moduleName:t,a8cLogoHref:n}=e;return o().createElement("div",{className:i.Z["jp-admin-page-section"]},o().createElement(d.Z,null,o().createElement(p.Z,null,o().createElement(u.Z,{lg:12,md:8,sm:4},o().createElement(l.Z,{moduleName:t,a8cLogoHref:n})))))};m.defaultProps={a8cLogoHref:"https://jetpack.com",moduleName:__("Jetpack","jetpack-my-jetpack")},m.propTypes={a8cLogoHref:r().string,moduleName:r().string};const g=m},4123:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var c=n(9196),o=n.n(c),s=n(6619),a=n(1546),r=n(69),i=n(4191),l=n(134);const p=()=>o().createElement("div",{className:s.Z["jp-admin-page-section"]},o().createElement(i.Z,null,o().createElement(r.Z,null,o().createElement(l.Z,{lg:12,md:8,sm:4},o().createElement(a.Z,null)))))},8670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var c=n(9196),o=n.n(c),s=n(5736),a=n(1268),r=n.n(a),i=n(6619),l=n(4123),p=n(2234);const __=s.__,d=e=>{const{children:t,moduleName:n,a8cLogoHref:c,showHeader:s,showFooter:a}=e;return o().createElement("div",{className:i.Z["jp-admin-page"]},s&&o().createElement(l.Z,null),t,a&&o().createElement(p.Z,{moduleName:n,a8cLogoHref:c}))};d.defaultProps={a8cLogoHref:"https://jetpack.com",moduleName:__("Jetpack","jetpack-my-jetpack"),showHeader:!0,showFooter:!0},d.propTypes={a8cLogoHref:r().string,moduleName:r().string,showHeader:r().bool,showFooter:r().bool};const u=d},6160:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var c=n(9196),o=n.n(c),s=n(9855),a=n(4191);const r=e=>{const{children:t}=e;return o().createElement("div",{className:s.Z["jp-admin-section"]},o().createElement(a.Z,null,t))}},4502:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var c=n(9196),o=n.n(c),s=n(8459),a=n(4191);const r=e=>{const{children:t}=e;return o().createElement("div",{className:s.Z["jp-admin-section-hero"]},o().createElement(a.Z,null,t))}},1824:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var c=n(9183),o=n.n(c),s=n(9196),a=n.n(s),r=n(9105),i=n.n(r),l=n(5736),p=n(1268),d=n.n(p);const __=l.__,u=e=>{const{title:t,height:n,className:c,...s}=e;return a().createElement("svg",o()({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:n,className:i()("jp-automattic-byline-logo",c)},s),a().createElement("title",{id:"jp-automattic-byline-logo-title"},t),a().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"}),a().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"}),a().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"}))};u.defaultProps={title:__("An Automattic Airline","jetpack-my-jetpack"),height:7,className:""},u.propTypes={title:d().string,height:d().number,className:d().string};const m=u},9697:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s);n(8776);const r=e=>{const{format:t,icon:n,imageUrl:c}=e;return o().createElement("div",{className:"jp-components__decorative-card "+(t?"jp-components__decorative-card--"+t:"")},o().createElement("div",{className:"jp-components__decorative-card__image",style:{backgroundImage:c?`url( ${c} )`:""}}),o().createElement("div",{className:"jp-components__decorative-card__content"},o().createElement("div",{className:"jp-components__decorative-card__lines"})),(()=>{if(n)return o().createElement("div",{className:"jp-components__decorative-card__icon-container"},o().createElement("span",{className:"jp-components__decorative-card__icon jp-components__decorative-card__icon--"+n}))})())};r.propTypes={format:a().oneOf(["horizontal","vertical"]),icon:a().oneOf(["unlink"]),imageUrl:a().string},r.defaultProps={format:"horizontal"};const i=r},7967:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var c=n(9183),o=n.n(c),s=n(9196),a=n.n(s),r=n(5736),i=n(9105),l=n.n(i),p=n(1268),d=n.n(p),u=n(1824),m=(n(3220),n(1546));const __=r.__,g=e=>{const{a8cLogoHref:t,moduleName:n,className:c,...s}=e;return a().createElement("div",o()({className:l()("jp-dashboard-footer",c)},s),a().createElement("div",{className:"jp-dashboard-footer__footer-left"},a().createElement(m.Z,{logoColor:"#000",showText:!1,height:16,className:"jp-dashboard-footer__jetpack-symbol","aria-label":__("Jetpack logo","jetpack-my-jetpack")}),a().createElement("span",{className:"jp-dashboard-footer__module-name"},n)),a().createElement("div",{className:"jp-dashboard-footer__footer-right"},a().createElement("a",{href:t,"aria-label":__("An Automattic Airline","jetpack-my-jetpack")},a().createElement(u.Z,null))))};g.defaultProps={a8cLogoHref:"https://jetpack.com",moduleName:__("Jetpack","jetpack-my-jetpack"),className:""},g.propTypes={a8cLogoHref:d().string,moduleName:d().string,className:d().string};const h=g},1546:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var c=n(9183),o=n.n(c),s=n(7538),a=n.n(s),r=n(1268),i=n.n(r),l=n(9196),p=n.n(l),d=n(9105),u=n.n(d),m=n(5736);const __=m.__;class g extends p().Component{render(){const{logoColor:e,showText:t,className:n,...c}=this.props,s=t?"0 0 118 32":"0 0 32 32";return p().createElement("svg",o()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:s,className:u()("jetpack-logo",n),"aria-labelledby":"jetpack-logo-title"},c),p().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack-my-jetpack")),p().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&&p().createElement(l.Fragment,null,p().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"}),p().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"}),p().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"}),p().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"}),p().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"}),p().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"}),p().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"})))}}a()(g,"propTypes",{className:i().string,width:i().number,height:i().number,showText:i().bool,logoColor:i().string}),a()(g,"defaultProps",{className:"",height:32,showText:!0,logoColor:"#069e08"});const h=g},134:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var c=n(9196),o=n.n(c),s=n(9105),a=n.n(s),r=n(1268),i=n.n(r),l=n(4555);const p=e=>{const{children:t,sm:n,md:c,lg:s}=e,r=Number.isInteger(n)?n:0,i=Number.isInteger(c)?c:0,p=Number.isInteger(s)?s:0,d=[r,i,p].reduce(((e,t)=>t>0&&t<e?t:e)),u=a()(r>0?l.Z["sm-col-span-"+r]:l.Z["sm-col-span-"+d],i>0?l.Z["md-col-span-"+i]:l.Z["md-col-span-"+d],p>0?l.Z["lg-col-span-"+p]:l.Z["lg-col-span-"+d]);return o().createElement("div",{className:u},t)};p.proptypes={sm:i().number,md:i().number,lg:i().number};const d=p},4191:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var c=n(9196),o=n.n(c),s=n(8422);const a=e=>{const{children:t}=e;return o().createElement("div",{className:s.Z["jp-container"]},t)}},69:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var c=n(9196),o=n.n(c),s=n(7941);const a=e=>{const{children:t}=e;return o().createElement("div",{className:s.Z["jp-row"]},t)}},1415:(e,t,n)=>{"use strict";function c(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const n={};let c;if("undefined"!=typeof window&&(c=window.Initial_State?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,n.url=encodeURIComponent(e)}else n.source=encodeURIComponent(e);Object.keys(t).map((e=>{n[e]=encodeURIComponent(t[e])})),!Object.keys(n).includes("site")&&"undefined"!=typeof jetpack_redirects&&jetpack_redirects.hasOwnProperty("currentSiteRawUrl")&&(n.site=jetpack_redirects.currentSiteRawUrl),c&&(n.calypso_env=c);const o=Object.keys(n).map((e=>e+"="+n[e])).join("&");return"https://jetpack.com/redirect/?"+o}n.d(t,{Z:()=>c})},6251:(e,t,n)=>{let c={};try{c=n(4462)}catch{console.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),c={missingConfig:!0}}const o=e=>c.hasOwnProperty(e);e.exports={jetpackConfigHas:o,jetpackConfigGet:e=>{if(!o(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]}}},9565:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var c=n(9196),o=n(1268),s=n.n(o),a=n(9570);const r=e=>{const{redirectFunc:t,connectUrl:n,redirectUri:o,from:s}=e,[r,i]=(0,c.useState)(null);return n&&n!==r&&i(n),(0,c.useEffect)((()=>{r||a.ZP.fetchAuthorizationUrl(o).then((e=>i(e.authorizeUrl))).catch((e=>{throw e}))}),[]),r?(t(r+(s?(r.includes("?")?"&":"?")+"from="+encodeURIComponent(s):"")),null):null};r.propTypes={connectUrl:s().string,redirectUri:s().string.isRequired,from:s().string,redirectFunc:s().func},r.defaultProps={redirectFunc:e=>window.location.assign(e),redirectUri:null};const i=r},3593:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(5736),i=n(2332);const __=r.__,l=e=>{const{connectedPlugins:t,disconnectingPlugin:n}=e,s=(0,c.useMemo)((()=>{if(t){return Object.keys(t).map((e=>Object.assign({slug:e},t[e]))).filter((e=>n!==e.slug))}return[]}),[t,n]);return t&&s.length>0?o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is powering other plugins on your site. If you disconnect, these plugins will no longer work.","jetpack-my-jetpack"))),o().createElement("div",{className:"jp-connection__disconnect-card__group"},s.map((e=>o().createElement(i.Z,{title:e.name}))))):null};l.PropTypes={connectedPlugins:a().object,disconnectingPlugin:a().string};const p=l},7132:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var c=n(9196),o=n.n(c),s=n(5736),a=n(5609),r=n(1268),i=n.n(r),l=n(9570),p=n(9818),d=n(9565),u=n(5628),m=n(2199),g=n(1631);n(404);const __=s.__,h=e=>{const{apiRoot:t,apiNonce:n,redirectUri:s,title:r,connectionInfoText:i,onDisconnected:h,connectedPlugins:f,connectedSiteId:k,context:_}=e,{isRegistered:y,isUserConnected:v}=(0,g.Z)({apiRoot:t,apiNonce:n}),[j,C]=(0,c.useState)(!1),[E,w]=(0,c.useState)({}),[b,S]=(0,c.useState)(!1),N=(0,p.useSelect)((e=>e(m.t).getUserIsConnecting()),[]),{setConnectionStatus:F,setUserIsConnecting:I}=(0,p.useDispatch)(m.t),Z=(0,c.useRef)();(0,c.useEffect)((()=>{l.ZP.setApiRoot(t),l.ZP.setApiNonce(n)}),[t,n]),(0,c.useEffect)((()=>{C(!0),l.ZP.fetchSiteConnectionData().then((e=>{C(!1),w(e.currentUser?.wpcomUser);const t=e.currentUser?.wpcomUser?.avatar;t&&(Z.current.style.backgroundImage=`url('${t}')`)})).catch((e=>{throw C(!1),e}))}),[C,w]);const O=(0,c.useCallback)((e=>{e&&e.preventDefault(),S(!0)}),[S]),R=(0,c.useCallback)((e=>{e&&e.preventDefault(),S(!1)}),[S]),P=(0,c.useCallback)((e=>{e&&e.preventDefault(),F({isActive:!1,isRegistered:!1,isUserConnected:!1}),h&&"[object Function]"==={}.toString.call(h)&&h()}),[h,F]);return y?o().createElement("div",{className:"jp-connection-status-card"},o().createElement("h3",null,r),o().createElement("p",null,i),o().createElement("div",{className:"jp-connection-status-card--status"},o().createElement("div",{className:"jp-connection-status-card--cloud"}),o().createElement("div",{className:"jp-connection-status-card--line"+(v?"":" jp-connection-status-card--site-only")}),o().createElement("div",{className:"jp-connection-status-card--jetpack-logo"}),o().createElement("div",{className:"jp-connection-status-card--avatar",ref:Z})),o().createElement("ul",{className:"jp-connection-status-card--list"},o().createElement("li",{className:"jp-connection-status-card--list-item-success"},__("Site connected.","jetpack-my-jetpack")," ",o().createElement(a.Button,{variant:"link",onClick:O,className:"jp-connection__disconnect-dialog__link"},__("Disconnect","jetpack-my-jetpack")),o().createElement(u.Z,{apiRoot:t,apiNonce:n,onDisconnected:P,connectedPlugins:f,connectedSiteId:k,connectedUser:E,isOpen:b,onClose:R,context:_})),v&&!j&&o().createElement("li",{className:"jp-connection-status-card--list-item-success"},__("Logged in as","jetpack-my-jetpack")," ",E?.display_name),!v&&!j&&o().createElement("li",{className:"jp-connection-status-card--list-item-error"},__("Your WordPress.com account is not connected.","jetpack-my-jetpack"))),!v&&!j&&o().createElement(a.Button,{isPrimary:!0,disabled:N,onClick:I,className:"jp-connection-status-card--btn-connect-user"},__("Connect your WordPress.com account","jetpack-my-jetpack")),N&&o().createElement(d.Z,{redirectUri:s})):null};h.propTypes={apiRoot:i().string.isRequired,apiNonce:i().string.isRequired,redirectUri:i().string.isRequired,connectedPlugins:i().object,connectedSiteId:i().number,title:i().string,connectionInfoText:i().string,onDisconnected:i().func,context:i().string},h.defaultProps={title:__("Connection","jetpack-my-jetpack"),connectionInfoText:__("Leverages the Jetpack Cloud for more features on your side.","jetpack-my-jetpack")};const f=h},2332:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s);n(1294);const r=e=>{const{title:t,value:n,description:c}=e;return o().createElement("div",{className:"jp-connection__disconnect-card card"},o().createElement("div",{className:"jp-connection__disconnect-card__card-content"},o().createElement("p",{className:"jp-connection__disconnect-card__card-headline"},t),(n||c)&&o().createElement("div",{className:"jp-connection__disconnect-card__card-stat-block"},o().createElement("span",{className:"jp-connection__disconnect-card__card-stat"},n),o().createElement("div",{className:"jp-connection__disconnect-card__card-description"},c))))};r.propTypes={title:a().string,value:a().string|a().number,description:a().number};const i=r},5628:(e,t,n)=>{"use strict";n.d(t,{Z:()=>k});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(5736),i=n(5609),l=n(9570),p=n(816),d=n(6251),u=(n(1545),n(163)),m=n(1496),g=n(4130),h=n(5700);const __=r.__,f=e=>{const[t,n]=(0,c.useState)(!1),[s,a]=(0,c.useState)(!1),[r,f]=(0,c.useState)(!1),[k,_]=(0,c.useState)(!1),[y,v]=(0,c.useState)(!1),[j,C]=(0,c.useState)(!1),{apiRoot:E,apiNonce:w,connectedPlugins:b,title:S,pluginScreenDisconnectCallback:N,onDisconnected:F,onError:I,disconnectStepComponent:Z,context:O,connectedUser:R,connectedSiteId:P,isOpen:x,onClose:U}=e;let T="";(0,d.jetpackConfigHas)("consumer_slug")&&(T=(0,d.jetpackConfigGet)("consumer_slug"));const A=(0,c.useMemo)((()=>({context:O,plugin:T})),[O,T]);(0,c.useEffect)((()=>{l.ZP.setApiRoot(E),l.ZP.setApiNonce(w)}),[E,w]),(0,c.useEffect)((()=>{R&&R.ID&&R.login&&p.Z.initialize(R.ID,R.login)}),[R,R.ID,R.login]),(0,c.useEffect)((()=>{x&&p.Z.tracks.recordEvent("jetpack_disconnect_dialog_open",A)}),[x,A]),(0,c.useEffect)((()=>{x&&(s?!s||k||y?k&&!y?p.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"survey"},A)):y&&p.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"thank_you"},A)):p.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect_confirm"},A)):p.Z.tracks.recordEvent("jetpack_disconnect_dialog_step",Object.assign({},{step:"disconnect"},A)))}),[x,s,k,y,A]);const J=(0,c.useCallback)((()=>{l.ZP.disconnectSite().then((()=>{n(!1),a(!0)})).catch((e=>{n(!1),f(e),I&&I(e)}))}),[n,a,f,I]),z=(0,c.useCallback)(((e,t)=>{C(!0),fetch("https://public-api.wordpress.com/wpcom/v2/marketing/feedback-survey",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(e)}).then((e=>e.json())).then((e=>{if(!0!==e.success)throw new Error("Survey endpoint returned error code "+e.code);p.Z.tracks.recordEvent("jetpack_disconnect_survey_submit",t),v(!0),C(!1)})).catch((e=>{p.Z.tracks.recordEvent("jetpack_disconnect_survey_error",Object.assign({},{error:e.message},t)),v(!0),C(!1)}))}),[C,v]),D=(0,c.useCallback)((e=>{e&&e.preventDefault(),f(!1),n(!0),"plugins"!==O?J():N&&N(e)}),[f,n,N,O,J]),M=(0,c.useCallback)((()=>R.ID&&P),[R,P]),H=(0,c.useCallback)(((e,t,n)=>{if(n&&n.preventDefault(),!M())return void v(!0);const c={site_id:P,user_id:R.ID,survey_id:"jetpack-plugin-disconnect",survey_responses:{"why-cancel":{response:e,text:t||null}}},o=Object.assign({},A,{disconnect_reason:e});z(c,o)}),[z,v,M,P,R,A]),L=(0,c.useCallback)((e=>{e&&e.preventDefault(),F&&F(),U()}),[F,U]),V=(0,c.useCallback)((e=>{e&&e.preventDefault(),_(!0)}),[_]);return o().createElement(o().Fragment,null,x&&o().createElement(i.Modal,{title:"",contentLabel:S,aria:{labelledby:"jp-connection__disconnect-dialog__heading"},onRequestClose:U,shouldCloseOnClickOutside:!1,shouldCloseOnEsc:!1,isDismissible:!1,className:"jp-connection__disconnect-dialog"+(s?" jp-connection__disconnect-dialog__success":"")},s?!s||k||y?k&&!y?o().createElement(g.Z,{isSubmittingFeedback:j,onFeedBackProvided:H,onExit:L}):y?o().createElement(h.Z,{onExit:L}):void 0:o().createElement(m.Z,{canProvideFeedback:M(),onProvideFeedback:V,onExit:L}):o().createElement(u.Z,{title:S,connectedPlugins:b,disconnectStepComponent:Z,isDisconnecting:t,closeModal:U,onDisconnect:D,disconnectError:r,context:O,disconnectingPlugin:T})))};f.propTypes={apiRoot:a().string.isRequired,apiNonce:a().string.isRequired,title:a().string,onDisconnected:a().func,onError:a().func,context:a().string,connectedPlugins:a().object,pluginScreenDisconnectCallback:a().func,disconnectStepComponent:a().element,connectedUser:a().object,connectedSiteId:a().number,isOpen:a().bool,onClose:a().func},f.defaultProps={title:__("Are you sure you want to disconnect?","jetpack-my-jetpack"),context:"jetpack-dashboard",connectedUser:{}};const k=f},1496:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(9307),i=n(5736),l=n(5609),p=n(9697),d=n(2042);const __=i.__,u=e=>{const{onExit:t,canProvideFeedback:n,onProvideFeedback:c}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(p.Z,{icon:"unlink",imageUrl:d}),o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy jp-connection__disconnect-dialog__step-copy--narrow"},o().createElement("h1",null,(0,r.createInterpolateElement)(__("Jetpack has been <br/>successfully disconnected.","jetpack-my-jetpack"),{br:o().createElement("br",null)})),n&&o().createElement(o().Fragment,null,o().createElement("p",null,__("We’re sorry to see you go. Here at Jetpack, we’re always striving to provide the best experience for our customers. Please take our short survey (2 minutes, promise).","jetpack-my-jetpack")),o().createElement("p",null,o().createElement(l.Button,{isPrimary:!0,onClick:c,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Help us improve","jetpack-my-jetpack"))),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("No thank you","jetpack-my-jetpack"))),!n&&o().createElement(o().Fragment,null,o().createElement("p",null,o().createElement(l.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack-my-jetpack"))))))};u.PropTypes={onExit:a().func,onProvideFeedback:a().func,canProvideFeedback:a().bool};const m=u},163:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var c=n(9196),o=n.n(c),s=n(9307),a=n(5736),r=n(1415),i=n(5609),l=n(1268),p=n.n(l),d=n(3593);const __=a.__,u=e=>{const{title:t,isDisconnecting:n,onDisconnect:c,disconnectError:a,disconnectStepComponent:l,connectedPlugins:p,disconnectingPlugin:u,closeModal:m,context:g}=e;return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",{id:"jp-connection__disconnect-dialog__heading"},t),o().createElement(d.Z,{connectedPlugins:p,disconnectingPlugin:u}),l,(()=>{if(!p&&!l)return o().createElement("div",{className:"jp-connection__disconnect-dialog__step-copy"},o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Jetpack is currently powering multiple products on your site.","jetpack-my-jetpack"),o().createElement("br",null),__("Once you disconnect Jetpack, these will no longer work.","jetpack-my-jetpack")))})()),o().createElement("div",{className:"jp-connection__disconnect-dialog__actions"},o().createElement("div",{className:"jp-row"},o().createElement("div",{className:"lg-col-span-7 md-col-span-8 sm-col-span-4"},o().createElement("p",null,(0,s.createInterpolateElement)(__("<strong>Need help?</strong> Learn more about the <jpConnectionInfoLink>Jetpack connection</jpConnectionInfoLink> or <jpSupportLink>contact Jetpack support</jpSupportLink>.","jetpack-my-jetpack"),{strong:o().createElement("strong",null),jpConnectionInfoLink:o().createElement("a",{href:(0,r.Z)("why-the-wordpress-com-connection-is-important-for-jetpack"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"}),jpSupportLink:o().createElement("a",{href:(0,r.Z)("jetpack-support"),rel:"noopener noreferrer",target:"_blank",className:"jp-connection__disconnect-dialog__link"})}))),o().createElement("div",{className:"jp-connection__disconnect-dialog__button-wrap lg-col-span-5 md-col-span-8 sm-col-span-4"},o().createElement(i.Button,{isPrimary:!0,disabled:n,onClick:m,className:"jp-connection__disconnect-dialog__btn-dismiss"},__("Stay connected","jetpack-my-jetpack")),(()=>{let e=__("Disconnect","jetpack-my-jetpack");return n?e=__("Disconnecting…","jetpack-my-jetpack"):"plugins"===g&&(e=__("Disconnect and Deactivate","jetpack-my-jetpack")),o().createElement(i.Button,{isPrimary:!0,disabled:n,onClick:c,className:"jp-connection__disconnect-dialog__btn-disconnect"},e)})())),a&&o().createElement("p",{className:"jp-connection__disconnect-dialog__error"},a)))};u.propTypes={title:p().string,isDisconnecting:p().bool,onDisconnect:p().func,disconnectError:p().bool,disconnectStepComponent:p().elementType,connectedPlugins:p().array,disconnectingPlugin:p().string,closeModal:p().func,context:p().string};const m=u},4130:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(5736),i=(n(843),n(1194));const __=r.__,l=e=>{const{onExit:t,onFeedBackProvided:n,isSubmittingFeedback:c}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement("h1",null,__("Before you go, help us improve Jetpack","jetpack-my-jetpack")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},__("Let us know what didn‘t work for you","jetpack-my-jetpack")),o().createElement(i.Z,{onSubmit:n,isSubmittingFeedback:c}),o().createElement("a",{className:"jp-connection__disconnect-dialog__link jp-connection__disconnect-dialog__link--bold",href:"#",onClick:t},__("Skip for now","jetpack-my-jetpack")))};l.PropTypes={onExit:a().func,onFeedBackProvided:a().func,isSubmittingFeedback:a().bool};const p=l},5700:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(9697),i=n(5736),l=n(5609),p=n(9307),d=n(724);const __=i.__,u=e=>{const{onExit:t}=e;return o().createElement("div",{className:"jp-connection__disconnect-dialog__content"},o().createElement(r.Z,{format:"vertical",imageUrl:d}),o().createElement("div",{className:"jp-connection__disconnect-dialog__copy"},o().createElement("h1",null,__("Thank you!","jetpack-my-jetpack")),o().createElement("p",{className:"jp-connection__disconnect-dialog__large-text"},(0,p.createInterpolateElement)(__("Your answer has been submitted. <br/>Thanks for your input on how we can improve Jetpack.","jetpack-my-jetpack"),{br:o().createElement("br",null)})),o().createElement(l.Button,{isPrimary:!0,onClick:t,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},__("Back to my website","jetpack-my-jetpack"))))};u.PropTypes={onExit:a().func,assetBaseUrl:a().string};const m=u},1194:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var c=n(9196),o=n.n(c),s=n(1268),a=n.n(s),r=n(5609),i=n(5736),l=n(7215);const __=i.__,p=e=>{const{onSubmit:t,isSubmittingFeedback:n}=e,[s,a]=(0,c.useState)(),[i,p]=(0,c.useState)(),d=[{id:"troubleshooting",answerText:__("Troubleshooting - I'll be reconnecting afterwards.","jetpack-my-jetpack")},{id:"not-working",answerText:__("I can't get it to work.","jetpack-my-jetpack")},{id:"slowed-down-site",answerText:__("It slowed down my site.","jetpack-my-jetpack")},{id:"buggy",answerText:__("It's buggy.","jetpack-my-jetpack")},{id:"what-does-it-do",answerText:__("I don't know what it does.","jetpack-my-jetpack")}],u="another-reason",m=(0,c.useCallback)((()=>{t(s,s===u?i:"")}),[t,u,i,s]),g=(0,c.useCallback)((e=>{const t=e.target.value;e.stopPropagation(),p(t)}),[p]),h=e=>e===s?"jp-connect__disconnect-survey-card--selected":"",f=(0,c.useCallback)(((e,t)=>{switch(t.key){case"Enter":case"Space":case"Spacebar":case" ":a(e)}}),[a]);return o().createElement(o().Fragment,null,o().createElement("div",{className:"jp-connection__disconnect-dialog__survey"},d.map((e=>o().createElement(l.Z,{id:e.id,onClick:a,onKeyDown:f,className:"card jp-connect__disconnect-survey-card "+h(e.id)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},e.answerText)))),o().createElement(l.Z,{id:u,onClick:a,onKeyDown:f,className:"card jp-connect__disconnect-survey-card "+h(u)},o().createElement("p",{className:"jp-connect__disconnect-survey-card__answer"},__("Other:","jetpack-my-jetpack")," ",o().createElement("input",{placeholder:__("share your experience","jetpack-my-jetpack"),className:"jp-connect__disconnect-survey-card__input",type:"text",value:i,onChange:g,maxLength:1e3})))),o().createElement("p",null,o().createElement(r.Button,{disabled:!s||n,isPrimary:!0,onClick:m,className:"jp-connection__disconnect-dialog__btn-back-to-wp"},n?__("Submitting…","jetpack-my-jetpack"):__("Submit Feedback","jetpack-my-jetpack",0))))};p.PropTypes={onSubmit:a().func,isSubmittingFeedback:a().bool};const d=p},7215:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var c=n(9196),o=n.n(c);n(843);const s=e=>{const{id:t,onClick:n,onKeyDown:s,children:a,className:r}=e,i=(0,c.useCallback)((()=>{n(t)}),[t,n]),l=(0,c.useCallback)((e=>{s(t,e)}),[t,s]);return o().createElement("div",{tabIndex:"0",role:"button",onClick:i,onKeyDown:l,className:"card jp-connect__disconnect-survey-card "+r},a)}},1631:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var c=n(9196),o=n(9818),s=n(9570),a=n(2199);const r=e=>{let{registrationNonce:t,redirectUri:n,apiRoot:r,apiNonce:i,autoTrigger:l,from:p}=e;const{registerSite:d,connectUser:u}=(0,o.useDispatch)(a.t),m=(0,o.useSelect)((e=>e(a.t).getRegistrationError())),{siteIsRegistering:g,userIsConnecting:h,isRegistered:f,isUserConnected:k}=(0,o.useSelect)((e=>({siteIsRegistering:e(a.t).getSiteIsRegistering(),userIsConnecting:e(a.t).getUserIsConnecting(),...e(a.t).getConnectionStatus()}))),_=()=>u({from:p}),y=e=>{e&&e.preventDefault(),f?_():d({registrationNonce:t,redirectUri:n}).then((()=>{_()}))};return(0,c.useEffect)((()=>{s.ZP.setApiRoot(r),s.ZP.setApiNonce(i)}),[r,i]),(0,c.useEffect)((()=>{!l||g||h||y()}),[]),{handleRegisterSite:y,handleConnectUser:_,isRegistered:f,isUserConnected:k,siteIsRegistering:g,userIsConnecting:h,registrationError:m}}},6973:(e,t,n)=>{"use strict";n.d(t,{i6:()=>c,LI:()=>o,r7:()=>s,N4:()=>a,qV:()=>r,T1:()=>i,TS:()=>l,ZP:()=>k});const c="SET_CONNECTION_STATUS",o="SET_CONNECTION_STATUS_IS_FETCHING",s="SET_SITE_IS_REGISTERING",a="SET_USER_IS_CONNECTING",r="SET_REGISTRATION_ERROR",i="CLEAR_REGISTRATION_ERROR",l="SET_AUTHORIZATION_URL",p="CONNECT_USER",d=e=>({type:c,connectionStatus:e}),u=e=>({type:s,isRegistering:e}),m=e=>({type:a,isConnecting:e}),g=e=>({type:r,registrationError:e}),h=()=>({type:i}),f=e=>({type:l,authorizationUrl:e});const k={setConnectionStatus:d,setConnectionStatusIsFetching:e=>({type:o,isFetching:e}),fetchConnectionStatus:()=>({type:"FETCH_CONNECTION_STATUS"}),fetchAuthorizationUrl:e=>({type:"FETCH_AUTHORIZATION_URL",redirectUri:e}),setSiteIsRegistering:u,setUserIsConnecting:m,setRegistrationError:g,clearRegistrationError:h,setAuthorizationUrl:f,registerSite:function*(e){let{registrationNonce:t,redirectUri:n}=e;yield h(),yield u(!0);try{const e=yield{type:"REGISTER_SITE",registrationNonce:t,redirectUri:n};return yield d({isRegistered:!0}),yield f(e.authorizeUrl),yield u(!1),Promise.resolve(e)}catch(e){return yield g(e),yield u(!1),Promise.reject(e)}},connectUser:function*(){let{from:e,redirectFunc:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};yield m(!0),yield{type:p,from:e,redirectFunc:t}}}},4213:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var c=n(9570),o=n(9818),s=n(2199);const a={FETCH_CONNECTION_STATUS:()=>new Promise(((e,t)=>{c.ZP.fetchSiteConnectionStatus().then((t=>e(t))).catch((e=>t(e)))})),FETCH_AUTHORIZATION_URL:e=>{let{redirectUri:t}=e;return c.ZP.fetchAuthorizationUrl(t)},REGISTER_SITE:e=>{let{registrationNonce:t,redirectUri:n}=e;return c.ZP.registerSite(t,n)},CONNECT_USER:(0,o.createRegistryControl)((e=>{let{resolveSelect:t}=e;return function(){let{from:e,redirectFunc:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(((c,o)=>{t(s.t).getAuthorizationUrl().then((t=>{const o=n||(e=>window.location.assign(e)),s=new URL(t);e&&s.searchParams.set("from",encodeURIComponent(e));const a=s.toString();o(a),c(a)})).catch((e=>{o(e)}))}))}}))}},1147:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var c=n(9818),o=n(6973);const s=(0,c.combineReducers)({connectionStatus:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return t.type===o.i6?{...e,...t.connectionStatus}:e},connectionStatusIsFetching:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.LI?t.isFetching:e},siteIsRegistering:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.r7?t.isRegistering:e},userIsConnecting:function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1?arguments[1]:void 0;return t.type===o.N4?t.isConnecting:e},registrationError:(e,t)=>{switch(t.type){case o.T1:return!1;case o.qV:return t.registrationError;default:return e}},authorizationUrl:(e,t)=>t.type===o.TS?t.authorizationUrl:e})},8310:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var c=n(9818),o=n(6973),s=n(2199);const a={...{*getConnectionStatus(){yield o.ZP.setConnectionStatusIsFetching(!0);const e=yield o.ZP.fetchConnectionStatus();return yield o.ZP.setConnectionStatusIsFetching(!1),o.ZP.setConnectionStatus(e)},getAuthorizationUrl:{isFulfilled:function(e){const t=Boolean(e.authorizationUrl);for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++)o[a-1]=arguments[a];const r=(0,c.select)(s.t).hasFinishedResolution("getAuthorizationUrl",o);return t&&!r&&(0,c.dispatch)(s.t).finishResolution("getAuthorizationUrl",o),t},*fulfill(e){const t=yield o.ZP.fetchAuthorizationUrl(e);yield o.ZP.setAuthorizationUrl(t.authorizeUrl)}}}}},387:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});const c={getConnectionStatus:e=>e.connectionStatus||{},getConnectionStatusIsFetching:e=>e.connectionStatusIsFetching||!1,getSiteIsRegistering:e=>e.siteIsRegistering||!1,getUserIsConnecting:e=>e.userIsConnecting||!1,getRegistrationError:e=>e.registrationError||!1,getAuthorizationUrl:e=>e.authorizationUrl||!1}},5333:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});var c=n(7538),o=n.n(c),s=n(9818);class a{static mayBeInit(e,t){null===a.store&&(a.store=(0,s.createReduxStore)(e,t),(0,s.register)(a.store),a.resolveResolvers(e,t.initialState))}static resolveResolvers(e,t){t.connectionStatus&&t.connectionStatus.hasOwnProperty("isRegistered")&&(0,s.dispatch)(e).finishResolution("getConnectionStatus",[])}}o()(a,"store",null);const r=a},2199:(e,t,n)=>{"use strict";n.d(t,{t:()=>l});var c=n(1147),o=n(6973),s=n(387),a=n(5333),r=n(8310),i=n(4213);const l="jetpack-connection";a.Z.mayBeInit(l,{reducer:c.Z,actions:o.ZP,selectors:s.Z,resolvers:r.Z,controls:i.Z,initialState:window.JP_CONNECTION_INITIAL_STATE||{}})},1046:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var c=n(9196),o=n.n(c),s=n(5736),a=n(8670),r=n(4502),i=n(69),l=n(134),p=n(6160),d=n(7132);n(3498);const __=s.__;function u(){const e=(0,c.useCallback)((()=>{window.location=myJetpackInitialState.topJetpackMenuItemUrl}),[]);return o().createElement("div",{className:"jp-my-jetpack-screen"},o().createElement(a.Z,null,o().createElement(r.Z,null,o().createElement(i.Z,null,o().createElement(l.Z,{lg:12,md:8,sm:4},o().createElement("h1",null,__("Manage your Jetpack plan and products all in one place","jetpack-my-jetpack"))))),o().createElement(p.Z,null,o().createElement(i.Z,null,o().createElement(l.Z,{lg:6,sm:4},o().createElement("h1",null,__("My Plan","jetpack-my-jetpack"))),o().createElement(l.Z,{lg:6,sm:4},o().createElement(d.Z,{apiRoot:myJetpackInitialState.apiRoot,apiNonce:myJetpackInitialState.apiNonce,redirectUri:myJetpackInitialState.redirectUri,onDisconnected:e}))))))}},2042:(e,t,n)=>{"use strict";e.exports=n.p+"images/disconnect-confirm-dc9fe8f5c68cfd1320e0.jpg"},724:(e,t,n)=>{"use strict";e.exports=n.p+"images/disconnect-thanks-5873bfac56a9bd7322cd.jpg"},4462: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"}},9196:e=>{"use strict";e.exports=window.React},1850:e=>{"use strict";e.exports=window.ReactDOM},2819:e=>{"use strict";e.exports=window.lodash},5609:e=>{"use strict";e.exports=window.wp.components},9818:e=>{"use strict";e.exports=window.wp.data},9307:e=>{"use strict";e.exports=window.wp.element},5736:e=>{"use strict";e.exports=window.wp.i18n},6483:e=>{"use strict";e.exports=window.wp.url}},t={};function n(c){var o=t[c];if(void 0!==o)return o.exports;var s=t[c]={exports:{}};return e[c](s,s.exports,n),s.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 c in t)n.o(t,c)&&!n.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:t[c]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;n.g.importScripts&&(e=n.g.location+"");var t=n.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var c=t.getElementsByTagName("script");c.length&&(e=c[c.length-1].src)}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),n.p=e})(),(()=>{"use strict";var e=n(1850),t=n.n(e),c=n(9196),o=n.n(c),s=n(1046);!function(){const e=document.getElementById("my-jetpack-container");null!==e&&t().render(o().createElement(s.Z,null),e)}()})()})(); \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..0c20a875
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt
@@ -0,0 +1,5 @@
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css
new file mode 100644
index 00000000..bd36f5b7
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css
@@ -0,0 +1 @@
+.O5NYbFTsxmrm4P2SIdOC{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.rkV4U_hzC04NwXFQcTHl{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.rkV4U_hzC04NwXFQcTHl{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.rkV4U_hzC04NwXFQcTHl{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.G81E6mesnld_OhhOvz_F{grid-column-end:span 1}.SfCZpjwiu2F0KDjGIXEA{grid-column-end:span 2}.qPxwbSu_GTDTz_8jFHJD{grid-column-end:span 3}.xYAWQ0wk6FPfZOZQgFiw{grid-column-end:span 4}@media(min-width:600px){.zwZjA7ofpMucaB_UzG48{grid-column-end:span 1}.YfwKGGBEqiINFYy6ZpKM{grid-column-end:span 2}.pcHQbVFRxA_OvNRQ2OwP{grid-column-end:span 3}.U_LJMBlRZ8ItXZuvCXGg{grid-column-end:span 4}.st_7w_Ja1Gp2AgGaTysO{grid-column-end:span 5}.gQsaHmJo6Gp7Yq9IB9Sg{grid-column-end:span 6}.P0a4FWsiJJmR6bySI8QC{grid-column-end:span 7}.UxSHj7jyDp6sGKHILNRc{grid-column-end:span 8}}@media(min-width:960px){.TExt5ebNqUrEn2NzeDDh{grid-column-end:span 1}.cdwvRRac4c2djSpHfOpF{grid-column-end:span 2}.hvRpxlyFY9BQIDdEGTjg{grid-column-end:span 3}.Ev9JGJi3yKkBq6cW3Xge{grid-column-end:span 4}.mhL__tIHFH_tViX5718D{grid-column-end:span 5}.X1lGIxHHxsFl_39u4Px6{grid-column-end:span 6}.pc5UnY_DzsSDkyih78Ti{grid-column-end:span 7}.QCjBtfnG3u20FwoDd59Z{grid-column-end:span 8}.MX1aL3BeJpoSE0aXghp0{grid-column-end:span 9}.h_JAcO8a8ClV2LmTWsMz{grid-column-end:span 10}.gKlDMi0N7LOd9q8uJHi5{grid-column-end:span 11}.KZWhYB7r6TG75uJu2LsQ{grid-column-end:span 12}}@media(max-width:960px){.G6NxfG2gGwvEYb0aGdPJ{display:none}}@media(max-width:600px){.aceZPGfrg7IoR0Vu7ZJg{display:none}}.MZSHJVi991kNJhn_Xnip{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}.MZSHJVi991kNJhn_Xnip span{display:block}.MZSHJVi991kNJhn_Xnip span:last-of-type{font-weight:600}.MZSHJVi991kNJhn_Xnip:focus span:last-of-type,.MZSHJVi991kNJhn_Xnip:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.MZSHJVi991kNJhn_Xnip:focus:after,.MZSHJVi991kNJhn_Xnip:hover:after{transform:translateY(-50%) translateX(-8px)}.MZSHJVi991kNJhn_Xnip: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}.EZ590eIMC5y_t1_gWRua{margin-right:-20px}.BYzOly4G7Gry9wdRH0AY{background-color:#fff;padding:40px 0}.iwMEh2CwJ_r23Y9sVcJ1,.O8YnwnZegI89S2Q3k5Qn{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.EC1Yirv2kOgRU77F2XRd{grid-column-end:span 1}.FHZqFvZXEDJ9mpOm7CeY{grid-column-end:span 2}.VOmONLKUkcSrIRYmX6YZ{grid-column-end:span 3}.eECO55N5YGkBB3tKa0If{grid-column-end:span 4}@media(min-width:600px){.u3ZB3zRkuglILO6FSIrx{grid-column-end:span 1}.iZnPl6piWO_GqHn16XKi{grid-column-end:span 2}.WWctfqi1wHZDWrue8GIt{grid-column-end:span 3}.p678NN_M0K78Kpprfndu{grid-column-end:span 4}._6D2TXtGKmepmwrxSf5DW{grid-column-end:span 5}.cWORs5VDjuStXsiVPtiO{grid-column-end:span 6}.yJsc8qt82L9miwDoe2Y2{grid-column-end:span 7}.hD6bXWfNn5elhKCaBFTD{grid-column-end:span 8}}@media(min-width:960px){.k9j6XIJdXbQ5YNyU8sNH{grid-column-end:span 1}.TnVGX0JHm_muRRcmYYwV{grid-column-end:span 2}.VILIswQXi8XzNJ3BqePc{grid-column-end:span 3}.h7mXuoRFWMGCiWYH4Ij1{grid-column-end:span 4}.uHYkk5STnhikqYMIxtE1{grid-column-end:span 5}.E8zp8nDOvAQ7VHsXKJJw{grid-column-end:span 6}.jwOhfvvsXGTCtHfB2854{grid-column-end:span 7}.DmSEZVFn_2XNNKJGgkXw{grid-column-end:span 8}.RdgOIY1qMZ8eqAeNSGNw{grid-column-end:span 9}.XBQd6xiLipeHg0O6cf7N{grid-column-end:span 10}.JyQ6Tbn3FCHfrCEyWrAr{grid-column-end:span 11}.fzJ_qaXYWs3EWQEupbLD{grid-column-end:span 12}}@media(max-width:960px){.LE2ZLIt_Y0slsr6TSmqe{display:none}}@media(max-width:600px){.vYxwZbK_covZoLjDe3BM{display:none}}.fmzqGXmbTSiUblRujgqB{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}.fmzqGXmbTSiUblRujgqB span{display:block}.fmzqGXmbTSiUblRujgqB span:last-of-type{font-weight:600}.fmzqGXmbTSiUblRujgqB:focus span:last-of-type,.fmzqGXmbTSiUblRujgqB:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.fmzqGXmbTSiUblRujgqB:focus:after,.fmzqGXmbTSiUblRujgqB:hover:after{transform:translateY(-50%) translateX(-8px)}.fmzqGXmbTSiUblRujgqB: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}.HwO79godDUI97Xub9ey4{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.HwO79godDUI97Xub9ey4{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.HwO79godDUI97Xub9ey4{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.WcIPVMUrQMdwzisuVSh7{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.Nxx7T20LwPUQPXCSDMfA{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.Nxx7T20LwPUQPXCSDMfA{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.Nxx7T20LwPUQPXCSDMfA{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.MnTtKIHRyzXYoesgRCgm{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}.MnTtKIHRyzXYoesgRCgm span{display:block}.MnTtKIHRyzXYoesgRCgm span:last-of-type{font-weight:600}.MnTtKIHRyzXYoesgRCgm:focus span:last-of-type,.MnTtKIHRyzXYoesgRCgm:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.MnTtKIHRyzXYoesgRCgm:focus:after,.MnTtKIHRyzXYoesgRCgm:hover:after{transform:translateY(-50%) translateX(-8px)}.MnTtKIHRyzXYoesgRCgm: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}.mmVmo1nZYrRywmnSKQFx{grid-column-end:span 1}.UrIp26XpdUSMJft8YxdC{grid-column-end:span 2}.pMXlFWglEDyK6MbwJ8sX{grid-column-end:span 3}.P5H1ohz9m5_rEqZFAkFm{grid-column-end:span 4}@media(min-width:600px){.ofLUn8LwR3LLeWl8tPdU{grid-column-end:span 1}.fq1Z8JYbcrrXavvSfzKk{grid-column-end:span 2}.jq9gui11HqTDfI7tXH1d{grid-column-end:span 3}.mVYkSRC7j44WiWLZHOnM{grid-column-end:span 4}.S3wOGmx7YLTrqz_bcLth{grid-column-end:span 5}.Y3GW3wokLgm9jnX78Uwk{grid-column-end:span 6}.ShMEdZjpjdYj7mCQzrSO{grid-column-end:span 7}.nfBAID75QGC1VZ8t0RfR{grid-column-end:span 8}}@media(min-width:960px){.Vr2EQcrmKOPJtFU72Vv2{grid-column-end:span 1}.CTS6MNweODFo4ZxcT0iV{grid-column-end:span 2}.XTISRluUo3o5xxnPNu09{grid-column-end:span 3}.c_EtRaSOJafAl5r9WkBm{grid-column-end:span 4}.HcpW_q5aO8Bf_ngIjyjv{grid-column-end:span 5}.XF3r0hMrFrrmxH5TJee0{grid-column-end:span 6}.Jl9ognyJ9XOZ6g0BTzLf{grid-column-end:span 7}._8w8oD2R9CVt9AU4PvUy{grid-column-end:span 8}.ltOXxurwUtxy7XIR_loo{grid-column-end:span 9}.bKUzzGEJ3wCoAOZZvVCK{grid-column-end:span 10}.GltQVCPa1x4tZ7sWFg1v{grid-column-end:span 11}.UzWicuFiKrGgMEjmRAFA{grid-column-end:span 12}}@media(max-width:960px){.CDwHAcVQxDeV2mFXS1Dz{display:none}}@media(max-width:600px){.sr1184KrdJ0UtgNsMQnR{display:none}}.jp-dashboard-footer{align-items:center;color:#000;display:flex;flex-flow:row wrap;justify-content:space-between;max-width:1128px;width:100%}.jp-dashboard-footer__jetpack-symbol,.jp-dashboard-footer__module-name{display:inline-block;vertical-align:middle}.jp-dashboard-footer__module-name{font-size:12px;font-weight:600;margin-right:5px}.K6gniZequRm1zBi4xa2G{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.vickZxEIl6kGZp7KkFYF{grid-gap:24px;display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.vickZxEIl6kGZp7KkFYF{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.vickZxEIl6kGZp7KkFYF{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.U2ZD1antXfCcQlBdFwyw{grid-column-end:span 1}.caLSPVQ3JP3b2Ia68Seq{grid-column-end:span 2}.h6FKJdwoY_zIXh6pEj1U{grid-column-end:span 3}.GkjDOzh_5n5VxKrqEW_I{grid-column-end:span 4}@media(min-width:600px){.V2HSxZHesNOXMBWOmdFG{grid-column-end:span 1}.i3fz9zvErDyXYherb6Ew{grid-column-end:span 2}._3bKcKfanUgurPMcHEiV{grid-column-end:span 3}.U44hqBGsmVA1lI9R2ZnH{grid-column-end:span 4}.AzaRYYQQYJjKUF9D87mw{grid-column-end:span 5}.sag3QKXTxIQXPPjmbrAl{grid-column-end:span 6}.ifY5fUWFNROS_F7Jys9v{grid-column-end:span 7}.nZFgLvw9LsUJnEViXnJZ{grid-column-end:span 8}}@media(min-width:960px){.Tqir6CbiyHOgYmsAgY57{grid-column-end:span 1}.VeVLz3DEagxiXMMPEOCe{grid-column-end:span 2}.G3R07cw2eP3D3juW3A3l{grid-column-end:span 3}.eQ3UseyneBNu_ZLuqSzg{grid-column-end:span 4}.VlgV8xjgkGoOLJShoyNM{grid-column-end:span 5}.DJCwqamaIDFQoj0jEgBc{grid-column-end:span 6}.CxtXPQUYJfNUQVn3y2y_{grid-column-end:span 7}.BroOgbyuFxoSv48H70B5{grid-column-end:span 8}.KnUcRFDSsxeb_z46ajNY{grid-column-end:span 9}.bXiAAxiM2mhcI43ET0pp{grid-column-end:span 10}.ipYVW2jwG2cFjIHpnQk2{grid-column-end:span 11}.KcREgfiJ4ix9nAvNAXqQ{grid-column-end:span 12}}@media(max-width:960px){.qSfEJeFAh4WmcPtmo8qe{display:none}}@media(max-width:600px){._RxxiRFsUS3nYTZhkprA{display:none}}.RSw9xhnEr8xpkX3hPPaM{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}.RSw9xhnEr8xpkX3hPPaM span{display:block}.RSw9xhnEr8xpkX3hPPaM span:last-of-type{font-weight:600}.RSw9xhnEr8xpkX3hPPaM:focus span:last-of-type,.RSw9xhnEr8xpkX3hPPaM:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.RSw9xhnEr8xpkX3hPPaM:focus:after,.RSw9xhnEr8xpkX3hPPaM:hover:after{transform:translateY(-50%) translateX(-8px)}.RSw9xhnEr8xpkX3hPPaM: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}.kEBaF5NOHtQsQn5jfOEA{background:var(--jp-white-off);padding:48px 0 64px}.kEBaF5NOHtQsQn5jfOEA h1,.kEBaF5NOHtQsQn5jfOEA h2,.kEBaF5NOHtQsQn5jfOEA h3,.kEBaF5NOHtQsQn5jfOEA h4,.kEBaF5NOHtQsQn5jfOEA h5,.kEBaF5NOHtQsQn5jfOEA h6{line-height:1.2;margin-top:0}._UqttTwRJeajPRpRGZPJ{background-color:#fff;padding:64px 0}._UqttTwRJeajPRpRGZPJ h1,._UqttTwRJeajPRpRGZPJ h2,._UqttTwRJeajPRpRGZPJ h3,._UqttTwRJeajPRpRGZPJ h4,._UqttTwRJeajPRpRGZPJ h5,._UqttTwRJeajPRpRGZPJ h6{line-height:1.2;margin-top:0}.jp-connection-status-card h3{color:var(--jp-black);font-size:36px;font-weight:400;line-height:40px;margin:0}.jp-connection-status-card a,.jp-connection-status-card a:active,.jp-connection-status-card a:hover{color:var(--jp-black)}.jp-connection-status-card p{color:var(--jp-black);margin:16px 0}.jp-connection-status-card a,.jp-connection-status-card li,.jp-connection-status-card p{font-size:16px;line-height:24px}.jp-connection-status-card--status{align-items:center;display:flex;margin:24px -6px 24px 0}.jp-connection-status-card--cloud{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PG1hc2sgaWQ9ImEiIG1hc2stdHlwZT0iYWxwaGEiIG1hc2tVbml0cz0idXNlclNwYWNlT25Vc2UiIHg9IjciIHk9IjkiIHdpZHRoPSIyOCIgaGVpZ2h0PSIyMSI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMC4zMzMgMTcuNjk3di0uMDhjMC00LjI1My0zLjc2LTcuNy04LjQtNy43LTMuOTE2IDAtNy4yMDYgMi40NTctOC4xMzYgNS43OGE2LjM4NiA2LjM4NiAwIDAgMC0uMjY0LS4wMDVDOS45MjUgMTUuNjkyIDcgMTguNzA4IDcgMjIuNDI5czIuOTI1IDYuNzM4IDYuNTMzIDYuNzM4SDI5LjRjMy4wOTMgMCA1LjYtMi41ODYgNS42LTUuNzc1IDAtMi44NjEtMi4wMTgtNS4yMzctNC42NjYtNS42OTVaIiBmaWxsPSIjZmZmIi8+PC9tYXNrPjxnIG1hc2s9InVybCgjYSkiPjxwYXRoIGQ9Im0zMC4zMzMgMTcuNjk3LTIuNjI1LS4wMy0uMDI1IDIuMjM1IDIuMjAyLjM4MS40NDgtMi41ODZabS0xNi41MzctMi0uMTA3IDIuNjIzIDIuMDc1LjA4NS41Ni0yLTIuNTI4LS43MDhabS0uMjYzIDEzLjQ3djIuNjI1aC4wMDhsLS4wMDgtMi42MjVabS4wNCAwdi0yLjYyNWgtLjAwOWwuMDA4IDIuNjI1Wm0xNS43OTUgMCAuMDE1LTIuNjI1aC0uMDE1djIuNjI1Wm0zLjU5LTExLjQ0MXYtLjExaC01LjI1di4wNTJsNS4yNS4wNThabTAtLjExYzAtNS45MTItNS4xNTUtMTAuMzI0LTExLjAyNS0xMC4zMjR2NS4yNWMzLjQxIDAgNS43NzUgMi40ODIgNS43NzUgNS4wNzVoNS4yNVpNMjEuOTMzIDcuMjkzYy00Ljk4NCAwLTkuMzg4IDMuMTM5LTEwLjY2NCA3LjY5OGw1LjA1NSAxLjQxNWMuNTg1LTIuMDg5IDIuNzYyLTMuODYzIDUuNjEtMy44NjN2LTUuMjVabS04LjAzIDUuNzgyYTkuMTExIDkuMTExIDAgMCAwLS4zNy0uMDA3djUuMjVjLjA1MyAwIC4xMDUuMDAxLjE1Ni4wMDNsLjIxNS01LjI0NlptLS4zNy0uMDA3Yy01LjEzMyAwLTkuMTU4IDQuMjY4LTkuMTU4IDkuMzYyaDUuMjVjMC0yLjM0OCAxLjgyNS00LjExMiAzLjkwOC00LjExMnYtNS4yNVptLTkuMTU4IDkuMzYyYzAgNS4wOTUgNC4wMjUgOS4zNjMgOS4xNTggOS4zNjN2LTUuMjVjLTIuMDgzIDAtMy45MDgtMS43NjUtMy45MDgtNC4xMTNoLTUuMjVabTkuMTY2IDkuMzYzaC4wNGwtLjAxNy01LjI1aC0uMDM5bC4wMTYgNS4yNVptLjAzMSAwaDE1Ljc5NnYtNS4yNUgxMy41NzJ2NS4yNVptMTUuODI3LTUuMjVoLS4wMTZsLS4wMyA1LjI1aC4wNDZ2LTUuMjVabTIuOTc1LTMuMTVjMCAxLjgxNi0xLjQwNyAzLjE1LTIuOTc1IDMuMTV2NS4yNWM0LjYxOCAwIDguMjI1LTMuODM4IDguMjI1LTguNGgtNS4yNVptLTIuNDg5LTMuMTA5YzEuMzU1LjIzNSAyLjQ5IDEuNDg4IDIuNDkgMy4xMDloNS4yNWMwLTQuMTAyLTIuOTAyLTcuNi02Ljg0NC04LjI4MmwtLjg5NiA1LjE3M1oiIGZpbGw9IiMxRTFFMUUiLz48L2c+PC9zdmc+);height:42px;margin-left:4px;width:42px}.jp-connection-status-card--jetpack-logo{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDMyYzguODM3IDAgMTYtNy4xNjMgMTYtMTZTMjQuODM3IDAgMTYgMCAwIDcuMTYzIDAgMTZzNy4xNjMgMTYgMTYgMTZaIiBmaWxsPSIjMDAwIi8+PHBhdGggZD0iTTE2Ljc5NCAxMy4zMTN2MTUuNTExbDgtMTUuNTEyaC04Wk0xNS4xNzUgMTguNjU3VjMuMTc2bC03Ljk2OSAxNS40OGg3Ljk3WiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==);height:32px;margin-right:11px;width:32px}.jp-connection-status-card--btn-connect-user{background:var(--jp-black)!important;border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection-status-card--avatar{background-color:var(--jp-white);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='32' height='32' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23fff'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M4.498 27.123C6.038 24.165 10.916 21.5 16 21.5c5.084 0 9.963 2.665 11.502 5.623a15.952 15.952 0 0 1-11.257 4.875L16 32l-.245-.002a15.952 15.952 0 0 1-11.257-4.875zM16 8a6 6 0 1 1 0 12 6 6 0 0 1 0-12z' fill='%23A2AAB2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:contain;border:0;border-radius:20px;height:32px;margin-right:-10px;width:32px}.jp-connection-status-card--line{border-top:2px solid var(--jp-black);height:0;width:67px}.jp-connection-status-card--line.jp-connection-status-card--site-only{border-top-style:dashed}.jp-connection-status-card--list{list-style-type:none;margin:16px 0}.jp-connection-status-card--list li{color:var(--jp-black);margin:0 -3px 8px 0;padding-right:25px}.jp-connection-status-card--list-item-success{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTE4LjkzNSA2LTguOSAxMS45Ny01LjE2Mi0zLjgzNyIgc3Ryb2tlPSIjMUUxRTFFIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==) no-repeat 100% 0}.jp-connection-status-card--list-item-error{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIgc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIvPjxwYXRoIGQ9Ik0xMyA3aC0ydjZoMlY3Wk0xMyAxNWgtMnYyaDJ2LTJaIiBmaWxsPSIjRDYzNjM5Ii8+PC9zdmc+) no-repeat 100% 0;color:var(--jp-red)!important}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-small);font-weight:600;line-height:1.2;margin-top:0}.jp-connection__disconnect-dialog h2{font-size:var(--font-title-small);font-weight:400;line-height:1.2;margin:0}.jp-connection__disconnect-dialog p{font-size:var(--font-body);margin-top:0}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.25rem}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link,.jp-connection__disconnect-dialog__link{color:var(--jp-black);font-size:var(--font-body);font:inherit;height:auto;padding:0;text-decoration:underline}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:hover,.jp-connection__disconnect-dialog__link:hover{color:var(--jp-black);text-decoration-thickness:var(--jp-underline-thickness)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link:focus,.jp-connection__disconnect-dialog__link:focus{box-shadow:none!important;color:var(--jp-black)}.jp-connection__disconnect-dialog .jp-connection__disconnect-dialog__link--bold,.jp-connection__disconnect-dialog__link--bold{font-weight:700}.jp-connection__disconnect-dialog .components-button{border-radius:4px;font-size:var(--font-body-small);height:40px}.jp-connection__disconnect-dialog .components-modal__content{display:flex;flex-direction:column;flex-grow:1;margin:0;padding:0}.jp-connection__disconnect-dialog .components-modal__content:before,.jp-connection__disconnect-dialog .components-modal__header{display:none}.jp-connection__disconnect-dialog .jp-row{align-items:center;width:calc(100% - 48px)}.jp-connection__disconnect-dialog__content{align-items:center;background:var(--jp-white-off);border-radius:4px;display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0;padding:2rem 1rem;text-align:center}.jp-connection__disconnect-dialog__actions{background:var(--jp-white);border-top:1px solid var(--jp-gray);bottom:0;padding:2rem 0;position:sticky}.jp-connection__disconnect-dialog__actions p{margin-bottom:0}.jp-connection__disconnect-dialog__actions:before{background:linear-gradient(to bottom,transparent,var(--jp-white-off));bottom:calc(100% + 1px);content:"";display:block;height:80px;position:absolute;right:0;width:100%}.jp-connection__disconnect-dialog__btn-dismiss,.jp-connection__disconnect-dialog__btn-dismiss.components-button{background:var(--jp-black)!important;margin-left:10px}.jp-connection__disconnect-dialog__btn-disconnect{background:var(--jp-red)!important}.jp-connection__disconnect-dialog__btn-back-to-wp{background:var(--jp-black)!important}.jp-connection__disconnect-dialog__button-wrap{text-align:right}@media(min-width:960px){.jp-connection__disconnect-dialog__button-wrap{text-align:center}}.jp-connection__disconnect-dialog__error{color:var(--jp-red)}.jp-connection__disconnect-dialog__survey{margin-bottom:1.5rem;max-width:100%}.jp-connection__disconnect-dialog__step-copy{margin:0 auto;max-width:800px}.jp-connection__disconnect-dialog__step-copy--narrow{max-width:600px}@media(max-height:900px){.jp-connection__disconnect-dialog__content .jp-components__decorative-card{display:none}}@media(min-width:600px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{max-width:calc(100% - 32px);width:100%}.jp-connection__disconnect-dialog__actions,.jp-connection__disconnect-dialog__content{padding:2rem}}@media(min-width:960px){.jp-connection__disconnect-dialog,.jp-connection__disconnect-dialog.components-modal__frame{display:flex;flex-direction:column;height:900px;width:1200px}.jp-connection__disconnect-dialog h1{font-size:var(--font-title-large)}.jp-connection__disconnect-dialog__large-text,.jp-connection__disconnect-dialog p.jp-connection__disconnect-dialog__large-text{font-size:1.5rem}.jp-connection__disconnect-dialog__content{padding:80px}.jp-connection__disconnect-dialog__actions{padding:2rem 3rem}.jp-row{margin-right:0}}.jp-connection__disconnect-card{background-color:var(--jp-white);border:none;border-radius:3px;box-shadow:0 0 15px var(--jp-gray-off);margin:0 auto 1rem;max-width:100%;padding:1rem 2rem;text-align:right;width:800px}.jp-connection__disconnect-card__group{margin-bottom:1rem;max-width:100%}.jp-connection__disconnect-card__card-content{display:block;font-size:.875rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-content{align-items:center;display:flex;justify-content:space-between}}.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{flex-shrink:0;font-size:1.25rem;font-weight:600;margin-bottom:0;margin-top:0}@media only screen and (min-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline,.jp-connection__disconnect-card__card-headline{font-size:1.5rem;margin-left:1.5rem}}@media only screen and (max-width:782px){.jp-connection__disconnect-card .jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block,.jp-connection__disconnect-card__card-headline+.jp-disconnect-card__card-stat-block{margin-top:.5rem}}.jp-connection__disconnect-card__card-stat-block{align-items:baseline;display:flex;flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat-block{flex-direction:row-reverse}}.jp-connection__disconnect-card__card-description{flex-grow:1}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-description{text-align:left}}.jp-connection__disconnect-card__card-stat{font-size:1rem;font-weight:600;margin-left:.5rem}@media only screen and (min-width:782px){.jp-connection__disconnect-card__card-stat{font-size:1.5rem;margin-left:0;margin-right:1rem}}.jp-components__decorative-card{border-radius:8px;box-shadow:0 0 15px var(--jp-gray);display:flex;height:280px;margin:0 auto 3rem;max-width:100%;overflow:hidden;position:relative;width:360px}.jp-components__decorative-card__content,.jp-components__decorative-card__image{width:50%}.jp-components__decorative-card__image{background:var(--jp-gray);background-size:cover;position:relative}.jp-components__decorative-card__image:before{background-image:url('data:image/svg+xml;uf8,<svg width="38" height="8" viewBox="0 0 38 8" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 7C1 7 2.37087 1 6.89831 1C11.4257 1 14.3709 7 18.8983 7C23.4257 7 26.7777 1 31.3051 1C35.912 1 37 7 37 7" stroke="white" stroke-width="1.5" stroke-linejoin="round"/></svg>');content:"";display:block;height:8px;position:absolute;right:24px;top:24px;width:38px}.jp-components__decorative-card__content{background:#fff;padding:2rem}.jp-components__decorative-card__icon-container{background:var(--jp-red);border-radius:50px;height:80px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:80px}.jp-components__decorative-card__icon{background-position:50%,50%;background-repeat:no-repeat;height:40px;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:40px}.jp-components__decorative-card__icon--unlink{background-image:url('data:image/svg+xml;uf8,<svg width="34" height="37" viewBox="0 0 34 37" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.3335 10.001H25.0002C29.4184 10.001 33.0002 13.5827 33.0002 18.001V19.7788C33.0002 24.197 29.4184 27.7788 25.0002 27.7788H22.3335" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M11.6675 27.7783L9.00082 27.7783C4.58254 27.7783 1.00081 24.1966 1.00081 19.7783L1.00081 18.0005C1.00081 13.5823 4.58253 10.0005 9.00081 10.0005L11.6675 10.0005" stroke="white" stroke-width="1.5" stroke-linecap="square"/> <path d="M10.9998 19.167L16.9998 19.167" stroke="white" stroke-width="1.5"/> <path d="M8.99951 35.998L24.9995 0.998048" stroke="white"/> </svg>')}.jp-components__decorative-card__lines,.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{background:#e9eff5;border-radius:6px;display:block;height:12px;position:relative;width:100%}.jp-components__decorative-card__lines:after,.jp-components__decorative-card__lines:before{content:"";top:calc(100% + 16px)}.jp-components__decorative-card__lines:after{top:calc(100% + 32px);width:75%}.jp-components__decorative-card--vertical{flex-direction:column}.jp-components__decorative-card--vertical .jp-components__decorative-card__content,.jp-components__decorative-card--vertical .jp-components__decorative-card__image{height:50%;width:100%}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines{margin-left:auto;margin-right:auto;max-width:135px}.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:after,.jp-components__decorative-card--vertical .jp-components__decorative-card__lines:before{margin-left:auto;margin-right:auto}: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-20:#a7aaad;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-80:#8a2424;--jp-gray-off:#e2e2df;--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-menu-border-height:1px;--jp-underline-thickness:2px}*{box-sizing:border-box}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{grid-gap:24px;display:grid;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}.jp-connect__disconnect-survey-card{border:2px solid transparent;border-radius:4px;box-shadow:0 0 15px var(--jp-gray-off);margin-left:auto;margin-right:auto;max-width:100%;padding:1rem;position:relative;text-align:right;width:800px}.jp-connect__disconnect-survey-card--selected{background:var(--jp-gray-off);border-color:var(--jp-black)}.jp-connect__disconnect-survey-card:after{border-left:2px solid var(--jp-black);border-top:2px solid var(--jp-black);content:"";display:block;height:5px;left:1.5rem;position:absolute;top:50%;transform:translateY(-50%) rotate(-45deg);width:5px}.jp-connect__disconnect-survey-card:hover{cursor:pointer}.jp-connect__disconnect-survey-card:focus:not(.jp-disconnect-survey-card--selected),.jp-connect__disconnect-survey-card:hover:not(.jp-disconnect-survey-card--selected){border-color:var(--jp-black-80)}.jp-connect__disconnect-survey-card__answer{align-items:center;display:flex;font-weight:700;margin:0}input.jp-connect__disconnect-survey-card__input{-webkit-appearance:none;background-color:transparent;border:none;color:var(--jp-black-80);flex-grow:1;max-width:calc(100% - 40px);padding-left:40px} \ No newline at end of file
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php
new file mode 100644
index 00000000..94f18ca4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php
@@ -0,0 +1,101 @@
+<?php
+/**
+ * WP Admin page with information and configuration shared among all Jetpack stand-alone plugins
+ *
+ * @package automattic/my-jetpack
+ */
+
+namespace Automattic\Jetpack\My_Jetpack;
+
+use Automattic\Jetpack\Admin_UI\Admin_Menu;
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Connection\Initial_State as Connection_Initial_State;
+
+/**
+ * The main Initializer class that registers the admin menu and eneuque the assets.
+ */
+class Initializer {
+
+ /**
+ * Initialize My Jetapack
+ *
+ * @return void
+ */
+ public static function init() {
+ if ( did_action( 'my_jetpack_init' ) ) {
+ return;
+ }
+
+ // Feature flag while we are developing it.
+ if ( ! defined( 'JETPACK_ENABLE_MY_JETPACK' ) || ! JETPACK_ENABLE_MY_JETPACK ) {
+ return;
+ }
+
+ $page_suffix = Admin_Menu::add_menu(
+ __( 'My Jetpack', 'jetpack-my-jetpack' ),
+ __( 'My Jetpack', 'jetpack-my-jetpack' ),
+ 'manage_options',
+ 'my-jetpack',
+ array( __CLASS__, 'admin_page' ),
+ 999
+ );
+
+ add_action( 'load-' . $page_suffix, array( __CLASS__, 'admin_init' ) );
+
+ /**
+ * Fires after the My Jetpack package is initialized
+ *
+ * @since $$next_version$$
+ */
+ do_action( 'my_jetpack_init' );
+ }
+
+ /**
+ * Callback for the load my jetpack page hook.
+ *
+ * @return void
+ */
+ public static function admin_init() {
+ add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_scritps' ) );
+ }
+
+ /**
+ * Enqueue admin page assets.
+ *
+ * @return void
+ */
+ public static function enqueue_scritps() {
+ Assets::register_script(
+ 'my_jetpack_main_app',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'enqueue' => true,
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack-my-jetpack',
+ )
+ );
+ wp_localize_script(
+ 'my_jetpack_main_app',
+ 'myJetpackInitialState',
+ array(
+ 'apiRoot' => esc_url_raw( rest_url() ),
+ 'apiNonce' => wp_create_nonce( 'wp_rest' ),
+ 'redirectUrl' => admin_url( '?page=my-jetpack' ),
+ 'topJetpackMenuItemUrl' => Admin_Menu::get_top_level_menu_item_url(),
+ )
+ );
+
+ // Connection Initial State.
+ wp_add_inline_script( 'my_jetpack_main_app', Connection_Initial_State::render(), 'before' );
+ }
+
+ /**
+ * Echos the admin page content.
+ *
+ * @return void
+ */
+ public static function admin_page() {
+ echo '<div id="my-jetpack-container"></div>';
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/webpack.config.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/webpack.config.js
new file mode 100644
index 00000000..ad461e3d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/webpack.config.js
@@ -0,0 +1,60 @@
+/**
+ * External dependencies
+ */
+const jetpackWebpackConfig = require( '@automattic/jetpack-webpack-config/webpack' );
+const path = require( 'path' );
+
+module.exports = [
+ {
+ entry: {
+ index: './_inc/admin.jsx',
+ },
+ mode: jetpackWebpackConfig.mode,
+ devtool: jetpackWebpackConfig.isDevelopment ? 'source-map' : false,
+ output: {
+ ...jetpackWebpackConfig.output,
+ path: path.resolve( './build' ),
+ },
+ optimization: {
+ ...jetpackWebpackConfig.optimization,
+ },
+ resolve: {
+ ...jetpackWebpackConfig.resolve,
+ },
+ node: false,
+ plugins: [
+ ...jetpackWebpackConfig.StandardPlugins( {
+ DependencyExtractionPlugin: { injectPolyfill: true },
+ } ),
+ ],
+ module: {
+ strictExportPresence: true,
+ rules: [
+ // Transpile JavaScript
+ jetpackWebpackConfig.TranspileRule( {
+ exclude: /node_modules\//,
+ } ),
+
+ // Transpile @automattic/jetpack-* in node_modules too.
+ jetpackWebpackConfig.TranspileRule( {
+ includeNodeModules: [ '@automattic/jetpack-' ],
+ } ),
+
+ // Handle CSS.
+ jetpackWebpackConfig.CssRule( {
+ extensions: [ 'css', 'sass', 'scss' ],
+ extraLoaders: [ 'sass-loader' ],
+ } ),
+
+ // Handle images.
+ jetpackWebpackConfig.FileRule(),
+ ],
+ },
+ externals: {
+ ...jetpackWebpackConfig.externals,
+ jetpackConfig: JSON.stringify( {
+ consumer_slug: 'my_jetpack',
+ } ),
+ },
+ },
+];
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/CHANGELOG.md
new file mode 100644
index 00000000..9f7ade0b
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/CHANGELOG.md
@@ -0,0 +1,178 @@
+# 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).
+
+## [1.14.2] - 2022-01-04
+### Changed
+- Updated package dependencies
+
+## [1.14.1] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.14.0] - 2021-11-30
+### Added
+- Added has_seen_wc_connection_modal option to the list of available options
+- Add new Jetpack plugin partner coupon options
+
+## [1.13.5] - 2021-11-16
+### Added
+- Added Jetpack Option 'licensing_activation_notice_dismiss'.
+
+## [1.13.4] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.13.3] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.13.2] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.13.1] - 2021-08-30
+### Changed
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- update annotations versions
+
+## [1.13.0] - 2021-06-15
+### Changed
+- Added 'purchaseToken' option for logged out user purchases on WordPress.com.
+
+## [1.12.1] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.12.0] - 2021-04-27
+### Added
+- Added unique_registrations option
+
+## [1.11.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.11.3] - 2021-03-30
+### Added
+- added active_modules_initialized option
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+## [1.11.2] - 2021-02-23
+
+- Setup Wizard: Remove setup wizard
+- Jetpack Recommendations: Add dashboard banner
+
+## [1.11.1] - 2021-01-28
+
+- Jetpack Recommendations: Show Recommendations tab for all users (#18576)\n\nCommitted via a GitHub action: https://github.com/automattic/jetpack/runs/518520328
+
+## [1.11.0] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.10.0] - 2021-01-05
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.9.1] - 2020-11-24
+
+- Version packages for release
+
+## [1.9.0] - 2020-09-29
+
+- Licensing: Add support for Jetpack licenses
+
+## [1.8.0] - 2020-08-25
+
+- Jetpack Anti-Spam: update Anti-Spam label in sidebar menu item
+
+## [1.7.0] - 2020-07-28
+
+- Add a filter to jetpack options
+
+## [1.6.0] - 2020-06-30
+
+- Various: Update use of whitelist/blacklist
+
+## [1.5.0] - 2020-05-26
+
+- Jetpack Setup Wizard: Add Setup Wizard status and routing memory
+- Implement Jetpack Wizard banner
+- Implemented /setup/questionnaire API endpoint for the new setup wizard
+
+## [1.4.0] - 2020-04-28
+
+- Update dependencies to latest stable
+
+## [1.3.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.2.0] - 2020-02-25
+
+- Mobile Theme: remove feature
+
+## [1.1.3] - 2020-02-14
+
+- Initial Sync Health Status Class and Data Loss Handler
+
+## [1.1.2] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.1.1] - 2019-10-29
+
+- PHPCS: Rest of the packages
+
+## [1.1.0] - 2019-09-14
+
+- Add Stats to XML-RPC Errors
+- Stats: Use Transient API to Improve Cache Performance
+
+## [1.0.1] - 2019-07-10
+
+- Adding a readme to the Jetpack Options package.
+
+## 1.0.0 - 2019-07-09
+
+- Initial release
+
+[1.14.2]: https://github.com/Automattic/jetpack-options/compare/v1.14.1...v1.14.2
+[1.14.1]: https://github.com/Automattic/jetpack-options/compare/v1.14.0...v1.14.1
+[1.14.0]: https://github.com/Automattic/jetpack-options/compare/v1.13.5...v1.14.0
+[1.13.5]: https://github.com/Automattic/jetpack-options/compare/v1.13.4...v1.13.5
+[1.13.4]: https://github.com/Automattic/jetpack-options/compare/v1.13.3...v1.13.4
+[1.13.3]: https://github.com/Automattic/jetpack-options/compare/v1.13.2...v1.13.3
+[1.13.2]: https://github.com/Automattic/jetpack-options/compare/v1.13.1...v1.13.2
+[1.13.1]: https://github.com/Automattic/jetpack-options/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-options/compare/v1.12.1...v1.13.0
+[1.12.1]: https://github.com/Automattic/jetpack-options/compare/v1.12.0...v1.12.1
+[1.12.0]: https://github.com/Automattic/jetpack-options/compare/v1.11.4...v1.12.0
+[1.11.4]: https://github.com/Automattic/jetpack-options/compare/v1.11.3...v1.11.4
+[1.11.3]: https://github.com/Automattic/jetpack-options/compare/v1.11.2...v1.11.3
+[1.11.2]: https://github.com/Automattic/jetpack-options/compare/v1.11.1...v1.11.2
+[1.11.1]: https://github.com/Automattic/jetpack-options/compare/v1.11.0...v1.11.1
+[1.11.0]: https://github.com/Automattic/jetpack-options/compare/v1.10.0...v1.11.0
+[1.10.0]: https://github.com/Automattic/jetpack-options/compare/v1.9.1...v1.10.0
+[1.9.1]: https://github.com/Automattic/jetpack-options/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-options/compare/v1.8.0...v1.9.0
+[1.8.0]: https://github.com/Automattic/jetpack-options/compare/v1.7.0...v1.8.0
+[1.7.0]: https://github.com/Automattic/jetpack-options/compare/v1.6.0...v1.7.0
+[1.6.0]: https://github.com/Automattic/jetpack-options/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-options/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-options/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-options/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-options/compare/v1.1.3...v1.2.0
+[1.1.3]: https://github.com/Automattic/jetpack-options/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/Automattic/jetpack-options/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-options/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-options/compare/v1.0.1...v1.1.0
+[1.0.1]: https://github.com/Automattic/jetpack-options/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php
new file mode 100644
index 00000000..164ff111
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php
@@ -0,0 +1,689 @@
+<?php
+/**
+ * Legacy Jetpack_Options class.
+ *
+ * @package automattic/jetpack-options
+ */
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * Class Jetpack_Options
+ */
+class Jetpack_Options {
+
+ /**
+ * An array that maps a grouped option type to an option name.
+ *
+ * @var array
+ */
+ private static $grouped_options = array(
+ 'compact' => 'jetpack_options',
+ 'private' => 'jetpack_private_options',
+ );
+
+ /**
+ * Returns an array of option names for a given type.
+ *
+ * @param string $type The type of option to return. Defaults to 'compact'.
+ *
+ * @return array
+ */
+ public static function get_option_names( $type = 'compact' ) {
+ switch ( $type ) {
+ case 'non-compact':
+ case 'non_compact':
+ return array(
+ 'activated',
+ 'active_modules',
+ 'active_modules_initialized', // (bool) used to determine that all the default modules were activated, so we know how to act on a reconnection.
+ 'allowed_xsite_search_ids', // (array) Array of WP.com blog ids that are allowed to search the content of this site
+ 'available_modules',
+ 'do_activate',
+ 'edit_links_calypso_redirect', // (bool) Whether post/page edit links on front end should point to Calypso.
+ 'log',
+ 'slideshow_background_color',
+ 'widget_twitter',
+ 'wpcc_options',
+ 'relatedposts',
+ 'file_data',
+ 'autoupdate_plugins', // (array) An array of plugin ids ( eg. jetpack/jetpack ) that should be autoupdated
+ 'autoupdate_plugins_translations', // (array) An array of plugin ids ( eg. jetpack/jetpack ) that should be autoupdated translation files.
+ 'autoupdate_themes', // (array) An array of theme ids ( eg. twentyfourteen ) that should be autoupdated
+ 'autoupdate_themes_translations', // (array) An array of theme ids ( eg. twentyfourteen ) that should autoupdated translation files.
+ 'autoupdate_core', // (bool) Whether or not to autoupdate core
+ 'autoupdate_translations', // (bool) Whether or not to autoupdate all translations
+ 'json_api_full_management', // (bool) Allow full management (eg. Activate, Upgrade plugins) of the site via the JSON API.
+ 'sync_non_public_post_stati', // (bool) Allow synchronisation of posts and pages with non-public status.
+ 'site_icon_url', // (string) url to the full site icon
+ 'site_icon_id', // (int) Attachment id of the site icon file
+ 'dismissed_manage_banner', // (bool) Dismiss Jetpack manage banner allows the user to dismiss the banner permanently
+ 'unique_connection', // (array) A flag to determine a unique connection to wordpress.com two values "connected" and "disconnected" with values for how many times each has occured
+ 'unique_registrations', // (integer) A counter of how many times the site was registered
+ 'protect_whitelist', // (array) IP Address for the Protect module to ignore
+ 'sync_error_idc', // (bool|array) false or array containing the site's home and siteurl at time of IDC error
+ 'sync_health_status', // (bool|array) An array of data relating to Jetpack's sync health.
+ 'safe_mode_confirmed', // (bool) True if someone confirms that this site was correctly put into safe mode automatically after an identity crisis is discovered.
+ 'migrate_for_idc', // (bool) True if someone confirms that this site should migrate stats and subscribers from its previous URL
+ 'dismissed_connection_banner', // (bool) True if the connection banner has been dismissed
+ 'ab_connect_banner_green_bar', // (int) Version displayed of the A/B test for the green bar at the top of the connect banner.
+ 'onboarding', // (string) Auth token to be used in the onboarding connection flow
+ 'tos_agreed', // (bool) Whether or not the TOS for connection has been agreed upon.
+ 'static_asset_cdn_files', // (array) An nested array of files that we can swap out for cdn versions.
+ 'mapbox_api_key', // (string) Mapbox API Key, for use with Map block.
+ 'mailchimp', // (string) Mailchimp keyring data, for mailchimp block.
+ 'xmlrpc_errors', // (array) Keys are XML-RPC signature error codes. Values are truthy.
+ 'dismissed_wizard_banner', // (int) (DEPRECATED) True if the Wizard banner has been dismissed.
+ );
+
+ case 'private':
+ return array(
+ 'blog_token', // (string) The Client Secret/Blog Token of this site.
+ 'user_token', // (string) The User Token of this site. (deprecated)
+ 'user_tokens', // (array) User Tokens for each user of this site who has connected to jetpack.wordpress.com.
+ 'purchase_token', // (string) Token for logged out user purchases.
+ );
+
+ case 'network':
+ return array(
+ 'onboarding', // (string) Auth token to be used in the onboarding connection flow
+ 'file_data', // (array) List of absolute paths to all Jetpack modules
+ );
+ }
+
+ return array(
+ 'id', // (int) The Client ID/WP.com Blog ID of this site.
+ 'publicize_connections', // (array) An array of Publicize connections from WordPress.com.
+ 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com.
+ 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time.
+ 'old_version', // (string) Used to determine which modules are the most recently added. previous_version:time.
+ 'fallback_no_verify_ssl_certs', // (int) Flag for determining if this host must skip SSL Certificate verification due to misconfigured SSL.
+ 'time_diff', // (int) Offset between Jetpack server's clocks and this server's clocks. Jetpack Server Time = time() + (int) Jetpack_Options::get_option( 'time_diff' )
+ 'public', // (int|bool) If we think this site is public or not (1, 0), false if we haven't yet tried to figure it out.
+ 'videopress', // (array) VideoPress options array.
+ 'is_network_site', // (int|bool) If we think this site is a network or a single blog (1, 0), false if we haven't yet tried to figue it out.
+ 'social_links', // (array) The specified links for each social networking site.
+ 'identity_crisis_whitelist', // (array) An array of options, each having an array of the values whitelisted for it.
+ 'gplus_authors', // (array) The Google+ authorship information for connected users.
+ 'last_heartbeat', // (int) The timestamp of the last heartbeat that fired.
+ 'hide_jitm', // (array) A list of just in time messages that we should not show because they have been dismissed by the user.
+ 'custom_css_4.7_migration', // (bool) Whether Custom CSS has scanned for and migrated any legacy CSS CPT entries to the new Core format.
+ 'image_widget_migration', // (bool) Whether any legacy Image Widgets have been converted to the new Core widget.
+ 'gallery_widget_migration', // (bool) Whether any legacy Gallery Widgets have been converted to the new Core widget.
+ 'sso_first_login', // (bool) Is this the first time the user logins via SSO.
+ 'dismissed_hints', // (array) Part of Plugin Search Hints. List of cards that have been dismissed.
+ 'first_admin_view', // (bool) Set to true the first time the user views the admin. Usually after the initial connection.
+ 'setup_wizard_questionnaire', // (array) (DEPRECATED) List of user choices from the setup wizard.
+ 'setup_wizard_status', // (string) (DEPRECATED) Status of the setup wizard.
+ 'licensing_error', // (string) Last error message occurred while attaching licenses that is yet to be surfaced to the user.
+ 'recommendations_banner_dismissed', // (bool) Determines if the recommendations dashboard banner is dismissed or not.
+ 'recommendations_banner_enabled', // (bool) Whether the recommendations are enabled or not.
+ 'recommendations_data', // (array) The user choice and other data for the recommendations.
+ 'recommendations_step', // (string) The current step of the recommendations.
+ 'licensing_activation_notice_dismiss', // (array) The `last_detached_count` and the `last_dismissed_time` for the user-license activation notice.
+ 'has_seen_wc_connection_modal', // (bool) Whether the site has displayed the WooCommerce Connection modal
+ 'partner_coupon', // (string) A Jetpack partner issued coupon to promote a sale together with Jetpack.
+ 'partner_coupon_added', // (string) A date for when `partner_coupon` was added, so we can auto-purge after a certain time interval.
+ );
+ }
+
+ /**
+ * Is the option name valid?
+ *
+ * @param string $name The name of the option.
+ * @param string|null $group The name of the group that the option is in. Default to null, which will search non_compact.
+ *
+ * @return bool Is the option name valid?
+ */
+ public static function is_valid( $name, $group = null ) {
+ if ( is_array( $name ) ) {
+ $compact_names = array();
+ foreach ( array_keys( self::$grouped_options ) as $_group ) {
+ $compact_names = array_merge( $compact_names, self::get_option_names( $_group ) );
+ }
+
+ $result = array_diff( $name, self::get_option_names( 'non_compact' ), $compact_names );
+
+ return empty( $result );
+ }
+
+ if ( is_null( $group ) || 'non_compact' === $group ) {
+ if ( in_array( $name, self::get_option_names( $group ), true ) ) {
+ return true;
+ }
+ }
+
+ foreach ( array_keys( self::$grouped_options ) as $_group ) {
+ if ( is_null( $group ) || $group === $_group ) {
+ if ( in_array( $name, self::get_option_names( $_group ), true ) ) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if an option must be saved for the whole network in WP Multisite
+ *
+ * @param string $option_name Option name. It must come _without_ `jetpack_%` prefix. The method will prefix the option name.
+ *
+ * @return bool
+ */
+ public static function is_network_option( $option_name ) {
+ if ( ! is_multisite() ) {
+ return false;
+ }
+ return in_array( $option_name, self::get_option_names( 'network' ), true );
+ }
+
+ /**
+ * Filters the requested option.
+ * This is a wrapper around `get_option_from_database` so that we can filter the option.
+ *
+ * @param string $name Option name. It must come _without_ `jetpack_%` prefix. The method will prefix the option name.
+ * @param mixed $default (optional).
+ *
+ * @return mixed
+ */
+ public static function get_option( $name, $default = false ) {
+ /**
+ * Filter Jetpack Options.
+ * Can be useful in environments when Jetpack is running with a different setup
+ *
+ * @since 1.7.0
+ *
+ * @param string $value The value from the database.
+ * @param string $name Option name, _without_ `jetpack_%` prefix.
+ * @return string $value, unless the filters modify it.
+ */
+ return apply_filters( 'jetpack_options', self::get_option_from_database( $name, $default ), $name );
+ }
+
+ /**
+ * Returns the requested option. Looks in jetpack_options or jetpack_$name as appropriate.
+ *
+ * @param string $name Option name. It must come _without_ `jetpack_%` prefix. The method will prefix the option name.
+ * @param mixed $default (optional).
+ *
+ * @return mixed
+ */
+ private static function get_option_from_database( $name, $default = false ) {
+ if ( self::is_valid( $name, 'non_compact' ) ) {
+ if ( self::is_network_option( $name ) ) {
+ return get_site_option( "jetpack_$name", $default );
+ }
+
+ return get_option( "jetpack_$name", $default );
+ }
+
+ foreach ( array_keys( self::$grouped_options ) as $group ) {
+ if ( self::is_valid( $name, $group ) ) {
+ return self::get_grouped_option( $group, $name, $default );
+ }
+ }
+
+ trigger_error( sprintf( 'Invalid Jetpack option name: %s', esc_html( $name ) ), E_USER_WARNING ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error -- Don't wish to change legacy behavior.
+
+ return $default;
+ }
+
+ /**
+ * Returns the requested option, and ensures it's autoloaded in the future.
+ * This does _not_ adjust the prefix in any way (does not prefix jetpack_%)
+ *
+ * @param string $name Option name.
+ * @param mixed $default (optional).
+ *
+ * @return mixed
+ */
+ public static function get_option_and_ensure_autoload( $name, $default ) {
+ // In this function the name is not adjusted by prefixing jetpack_
+ // so if it has already prefixed, we'll replace it and then
+ // check if the option name is a network option or not.
+ $jetpack_name = preg_replace( '/^jetpack_/', '', $name, 1 );
+ $is_network_option = self::is_network_option( $jetpack_name );
+ $value = $is_network_option ? get_site_option( $name ) : get_option( $name );
+
+ if ( false === $value && false !== $default ) {
+ if ( $is_network_option ) {
+ add_site_option( $name, $default );
+ } else {
+ add_option( $name, $default );
+ }
+ $value = $default;
+ }
+
+ return $value;
+ }
+
+ /**
+ * Update grouped option
+ *
+ * @param string $group Options group.
+ * @param string $name Options name.
+ * @param mixed $value Options value.
+ *
+ * @return bool Success or failure.
+ */
+ private static function update_grouped_option( $group, $name, $value ) {
+ $options = get_option( self::$grouped_options[ $group ] );
+ if ( ! is_array( $options ) ) {
+ $options = array();
+ }
+ $options[ $name ] = $value;
+
+ return update_option( self::$grouped_options[ $group ], $options );
+ }
+
+ /**
+ * Updates the single given option. Updates jetpack_options or jetpack_$name as appropriate.
+ *
+ * @param string $name Option name. It must come _without_ `jetpack_%` prefix. The method will prefix the option name.
+ * @param mixed $value Option value.
+ * @param string $autoload If not compact option, allows specifying whether to autoload or not.
+ *
+ * @return bool Was the option successfully updated?
+ */
+ public static function update_option( $name, $value, $autoload = null ) {
+ /**
+ * Fires before Jetpack updates a specific option.
+ *
+ * @since 1.1.2
+ * @since-jetpack 3.0.0
+ *
+ * @param str $name The name of the option being updated.
+ * @param mixed $value The new value of the option.
+ */
+ do_action( 'pre_update_jetpack_option_' . $name, $name, $value );
+ if ( self::is_valid( $name, 'non_compact' ) ) {
+ if ( self::is_network_option( $name ) ) {
+ return update_site_option( "jetpack_$name", $value );
+ }
+
+ return update_option( "jetpack_$name", $value, $autoload );
+
+ }
+
+ foreach ( array_keys( self::$grouped_options ) as $group ) {
+ if ( self::is_valid( $name, $group ) ) {
+ return self::update_grouped_option( $group, $name, $value );
+ }
+ }
+
+ trigger_error( sprintf( 'Invalid Jetpack option name: %s', esc_html( $name ) ), E_USER_WARNING ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error -- Don't want to change legacy behavior.
+
+ return false;
+ }
+
+ /**
+ * Updates the multiple given options. Updates jetpack_options and/or jetpack_$name as appropriate.
+ *
+ * @param array $array array( option name => option value, ... ).
+ */
+ public static function update_options( $array ) {
+ $names = array_keys( $array );
+
+ foreach ( array_diff( $names, self::get_option_names(), self::get_option_names( 'non_compact' ), self::get_option_names( 'private' ) ) as $unknown_name ) {
+ trigger_error( sprintf( 'Invalid Jetpack option name: %s', esc_html( $unknown_name ) ), E_USER_WARNING ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error -- Don't change legacy behavior.
+ unset( $array[ $unknown_name ] );
+ }
+
+ foreach ( $names as $name ) {
+ self::update_option( $name, $array[ $name ] );
+ }
+ }
+
+ /**
+ * Deletes the given option. May be passed multiple option names as an array.
+ * Updates jetpack_options and/or deletes jetpack_$name as appropriate.
+ *
+ * @param string|array $names Option names. They must come _without_ `jetpack_%` prefix. The method will prefix the option names.
+ *
+ * @return bool Was the option successfully deleted?
+ */
+ public static function delete_option( $names ) {
+ $result = true;
+ $names = (array) $names;
+
+ if ( ! self::is_valid( $names ) ) {
+ // phpcs:disable -- This line triggers a handful of errors; ignoring to avoid changing legacy behavior.
+ trigger_error( sprintf( 'Invalid Jetpack option names: %s', print_r( $names, 1 ) ), E_USER_WARNING );
+ // phpcs:enable
+ return false;
+ }
+
+ foreach ( array_intersect( $names, self::get_option_names( 'non_compact' ) ) as $name ) {
+ if ( self::is_network_option( $name ) ) {
+ $result = delete_site_option( "jetpack_$name" );
+ } else {
+ $result = delete_option( "jetpack_$name" );
+ }
+ }
+
+ foreach ( array_keys( self::$grouped_options ) as $group ) {
+ if ( ! self::delete_grouped_option( $group, $names ) ) {
+ $result = false;
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Get group option.
+ *
+ * @param string $group Option group name.
+ * @param string $name Option name.
+ * @param mixed $default Default option value.
+ *
+ * @return mixed Option.
+ */
+ private static function get_grouped_option( $group, $name, $default ) {
+ $options = get_option( self::$grouped_options[ $group ] );
+ if ( is_array( $options ) && isset( $options[ $name ] ) ) {
+ return $options[ $name ];
+ }
+
+ return $default;
+ }
+
+ /**
+ * Delete grouped option.
+ *
+ * @param string $group Option group name.
+ * @param array $names Option names.
+ *
+ * @return bool Success or failure.
+ */
+ private static function delete_grouped_option( $group, $names ) {
+ $options = get_option( self::$grouped_options[ $group ], array() );
+
+ $to_delete = array_intersect( $names, self::get_option_names( $group ), array_keys( $options ) );
+ if ( $to_delete ) {
+ foreach ( $to_delete as $name ) {
+ unset( $options[ $name ] );
+ }
+
+ return update_option( self::$grouped_options[ $group ], $options );
+ }
+
+ return true;
+ }
+
+ /*
+ * Raw option methods allow Jetpack to get / update / delete options via direct DB queries, including options
+ * that are not created by the Jetpack plugin. This is helpful only in rare cases when we need to bypass
+ * cache and filters.
+ */
+
+ /**
+ * Deletes an option via $wpdb query.
+ *
+ * @param string $name Option name.
+ *
+ * @return bool Is the option deleted?
+ */
+ public static function delete_raw_option( $name ) {
+ if ( self::bypass_raw_option( $name ) ) {
+ return delete_option( $name );
+ }
+ global $wpdb;
+ $result = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name = %s", $name ) );
+ return $result;
+ }
+
+ /**
+ * Updates an option via $wpdb query.
+ *
+ * @param string $name Option name.
+ * @param mixed $value Option value.
+ * @param bool $autoload Specifying whether to autoload or not.
+ *
+ * @return bool Is the option updated?
+ */
+ public static function update_raw_option( $name, $value, $autoload = false ) {
+ if ( self::bypass_raw_option( $name ) ) {
+ return update_option( $name, $value, $autoload );
+ }
+ global $wpdb;
+ $autoload_value = $autoload ? 'yes' : 'no';
+
+ $old_value = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1",
+ $name
+ )
+ );
+ if ( $old_value === $value ) {
+ return false;
+ }
+
+ $serialized_value = maybe_serialize( $value );
+ // below we used "insert ignore" to at least suppress the resulting error.
+ $updated_num = $wpdb->query(
+ $wpdb->prepare(
+ "UPDATE $wpdb->options SET option_value = %s WHERE option_name = %s",
+ $serialized_value,
+ $name
+ )
+ );
+
+ // Try inserting the option if the value doesn't exits.
+ if ( ! $updated_num ) {
+ $updated_num = $wpdb->query(
+ $wpdb->prepare(
+ "INSERT IGNORE INTO $wpdb->options ( option_name, option_value, autoload ) VALUES ( %s, %s, %s )",
+ $name,
+ $serialized_value,
+ $autoload_value
+ )
+ );
+ }
+ return (bool) $updated_num;
+ }
+
+ /**
+ * Gets an option via $wpdb query.
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.4.0
+ *
+ * @param string $name Option name.
+ * @param mixed $default Default option value if option is not found.
+ *
+ * @return mixed Option value, or null if option is not found and default is not specified.
+ */
+ public static function get_raw_option( $name, $default = null ) {
+ if ( self::bypass_raw_option( $name ) ) {
+ return get_option( $name, $default );
+ }
+
+ global $wpdb;
+ $value = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1",
+ $name
+ )
+ );
+ $value = maybe_unserialize( $value );
+
+ if ( null === $value && null !== $default ) {
+ return $default;
+ }
+
+ return $value;
+ }
+
+ /**
+ * This function checks for a constant that, if present, will disable direct DB queries Jetpack uses to manage certain options and force Jetpack to always use Options API instead.
+ * Options can be selectively managed via a blocklist by filtering option names via the jetpack_disabled_raw_option filter.
+ *
+ * @param string $name Option name.
+ *
+ * @return bool
+ */
+ public static function bypass_raw_option( $name ) {
+
+ if ( Constants::get_constant( 'JETPACK_DISABLE_RAW_OPTIONS' ) ) {
+ return true;
+ }
+ /**
+ * Allows to disable particular raw options.
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.5.0
+ *
+ * @param array $disabled_raw_options An array of option names that you can selectively blocklist from being managed via direct database queries.
+ */
+ $disabled_raw_options = apply_filters( 'jetpack_disabled_raw_options', array() );
+ return isset( $disabled_raw_options[ $name ] );
+ }
+
+ /**
+ * Gets all known options that are used by Jetpack and managed by Jetpack_Options.
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.4.0
+ *
+ * @param boolean $strip_unsafe_options If true, and by default, will strip out options necessary for the connection to WordPress.com.
+ * @return array An array of all options managed via the Jetpack_Options class.
+ */
+ public static function get_all_jetpack_options( $strip_unsafe_options = true ) {
+ $jetpack_options = self::get_option_names();
+ $jetpack_options_non_compat = self::get_option_names( 'non_compact' );
+ $jetpack_options_private = self::get_option_names( 'private' );
+
+ $all_jp_options = array_merge( $jetpack_options, $jetpack_options_non_compat, $jetpack_options_private );
+
+ if ( $strip_unsafe_options ) {
+ // Flag some Jetpack options as unsafe.
+ $unsafe_options = array(
+ 'id', // (int) The Client ID/WP.com Blog ID of this site.
+ 'master_user', // (int) The local User ID of the user who connected this site to jetpack.wordpress.com.
+ 'version', // (string) Used during upgrade procedure to auto-activate new modules. version:time
+
+ // non_compact.
+ 'activated',
+
+ // private.
+ 'register',
+ 'blog_token', // (string) The Client Secret/Blog Token of this site.
+ 'user_token', // (string) The User Token of this site. (deprecated)
+ 'user_tokens',
+ );
+
+ // Remove the unsafe Jetpack options.
+ foreach ( $unsafe_options as $unsafe_option ) {
+ $key = array_search( $unsafe_option, $all_jp_options, true );
+ if ( false !== $key ) {
+ unset( $all_jp_options[ $key ] );
+ }
+ }
+ }
+
+ return $all_jp_options;
+ }
+
+ /**
+ * Get all options that are not managed by the Jetpack_Options class that are used by Jetpack.
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.4.0
+ *
+ * @return array
+ */
+ public static function get_all_wp_options() {
+ // A manual build of the wp options.
+ return array(
+ 'sharing-options',
+ 'disabled_likes',
+ 'disabled_reblogs',
+ 'jetpack_comments_likes_enabled',
+ 'stats_options',
+ 'stats_dashboard_widget',
+ 'safecss_preview_rev',
+ 'safecss_rev',
+ 'safecss_revision_migrated',
+ 'nova_menu_order',
+ 'jetpack_portfolio',
+ 'jetpack_portfolio_posts_per_page',
+ 'jetpack_testimonial',
+ 'jetpack_testimonial_posts_per_page',
+ 'sharedaddy_disable_resources',
+ 'sharing-options',
+ 'sharing-services',
+ 'site_icon_temp_data',
+ 'featured-content',
+ 'site_logo',
+ 'jetpack_dismissed_notices',
+ 'jetpack-twitter-cards-site-tag',
+ 'jetpack-sitemap-state',
+ 'jetpack_sitemap_post_types',
+ 'jetpack_sitemap_location',
+ 'jetpack_protect_key',
+ 'jetpack_protect_blocked_attempts',
+ 'jetpack_protect_activating',
+ 'jetpack_connection_banner_ab',
+ 'jetpack_active_plan',
+ 'jetpack_activation_source',
+ 'jetpack_site_products',
+ 'jetpack_sso_match_by_email',
+ 'jetpack_sso_require_two_step',
+ 'jetpack_sso_remove_login_form',
+ 'jetpack_last_connect_url_check',
+ 'jpo_business_address',
+ 'jpo_site_type',
+ 'jpo_homepage_format',
+ 'jpo_contact_page',
+ 'jetpack_excluded_extensions',
+ );
+ }
+
+ /**
+ * Gets all options that can be safely reset by CLI.
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.4.0
+ *
+ * @return array array Associative array containing jp_options which are managed by the Jetpack_Options class and wp_options which are not.
+ */
+ public static function get_options_for_reset() {
+ $all_jp_options = self::get_all_jetpack_options();
+
+ $wp_options = self::get_all_wp_options();
+
+ $options = array(
+ 'jp_options' => $all_jp_options,
+ 'wp_options' => $wp_options,
+ );
+
+ return $options;
+ }
+
+ /**
+ * Delete all known options
+ *
+ * @since 1.1.2
+ * @since-jetpack 5.4.0
+ *
+ * @return void
+ */
+ public static function delete_all_known_options() {
+ // Delete all compact options.
+ foreach ( (array) self::$grouped_options as $option_name ) {
+ delete_option( $option_name );
+ }
+
+ // Delete all non-compact Jetpack options.
+ foreach ( (array) self::get_option_names( 'non-compact' ) as $option_name ) {
+ self::delete_option( $option_name );
+ }
+
+ // Delete all options that can be reset via CLI, that aren't Jetpack options.
+ foreach ( (array) self::get_all_wp_options() as $option_name ) {
+ delete_option( $option_name );
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/CHANGELOG.md
new file mode 100644
index 00000000..e9aef962
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/CHANGELOG.md
@@ -0,0 +1,130 @@
+# 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).
+
+## [1.6.2] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.6.1] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.6.0] - 2021-11-30
+### Added
+- Addde partner coupon logic
+
+## [1.5.7] - 2021-11-23
+### Changed
+- Updated package dependencies
+
+## [1.5.6] - 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.5] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.5.4] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.5.3] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.5.2] - 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.
+
+## [1.5.1] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.5.0] - 2021-04-27
+### Added
+- Adds segmentation "from" parameter to the registration flow
+
+## [1.4.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.4.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.4.1] - 2021-01-20
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.4.0] - 2020-12-14
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.3.1] - 2020-10-29
+
+- Update dependency brain/monkey to v2.5.0
+- Updated PHPCS: Packages and Debugger
+
+## [1.3.0] - 2020-08-25
+
+- Update Authorize URL iframe to include affiliate code
+- Packages: Update filenames after #16810
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.2.0] - 2020-07-01
+
+- Package Unit tests: update test file names to make sure they runs in Travis
+
+## [1.1.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+- PHPCS Updates after WPCS 2.3
+- Update README.md on partner package
+
+## [1.0.1] - 2020-01-27
+
+- Pin dependency brain/monkey to 2.4.0
+
+## 1.0.0 - 2019-12-16
+
+- Add partner subsidiary id to upgrade URLs.
+
+[1.6.2]: https://github.com/Automattic/jetpack-partner/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-partner/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-partner/compare/v1.5.7...v1.6.0
+[1.5.7]: https://github.com/Automattic/jetpack-partner/compare/v1.5.6...v1.5.7
+[1.5.6]: https://github.com/Automattic/jetpack-partner/compare/v1.5.5...v1.5.6
+[1.5.5]: https://github.com/Automattic/jetpack-partner/compare/v1.5.4...v1.5.5
+[1.5.4]: https://github.com/Automattic/jetpack-partner/compare/v1.5.3...v1.5.4
+[1.5.3]: https://github.com/Automattic/jetpack-partner/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-partner/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-partner/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-partner/compare/v1.4.3...v1.5.0
+[1.4.3]: https://github.com/Automattic/jetpack-partner/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-partner/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-partner/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-partner/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-partner/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-partner/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-partner/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-partner/compare/v1.0.1...v1.1.0
+[1.0.1]: https://github.com/Automattic/jetpack-partner/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php
new file mode 100644
index 00000000..a1619a2b
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php
@@ -0,0 +1,324 @@
+<?php
+/**
+ * Class for the Jetpack partner coupon logic.
+ *
+ * @package automattic/jetpack-partner
+ */
+
+namespace Automattic\Jetpack;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Jetpack_Options;
+
+/**
+ * Disable direct access.
+ */
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Class Jetpack_Partner_Coupon
+ *
+ * @since $$next_version$$
+ */
+class Partner_Coupon {
+
+ /**
+ * Name of the Jetpack_Option coupon option.
+ *
+ * @var string
+ */
+ public static $coupon_option = 'partner_coupon';
+
+ /**
+ * Name of the Jetpack_Option added option.
+ *
+ * @var string
+ */
+ public static $added_option = 'partner_coupon_added';
+
+ /**
+ * Jetpack_Partner_Coupon
+ *
+ * @var Partner_Coupon|null
+ **/
+ private static $instance = null;
+
+ /**
+ * A list of supported partners.
+ *
+ * @var array
+ */
+ private static $supported_partners = array(
+ 'IONOS' => 'IONOS',
+ );
+
+ /**
+ * A list of supported presets.
+ *
+ * @var array
+ */
+ private static $supported_presets = array(
+ 'IONA' => 'jetpack_backup_daily',
+ );
+
+ /**
+ * Get singleton instance of class.
+ */
+ public static function get_instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Partner_Coupon();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * 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();
+
+ add_action( 'admin_init', array( $instance, 'purge_coupon' ) );
+
+ // 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 );
+ }
+ );
+ }
+
+ /**
+ * 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( $_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 automatically purge partner coupons after a certain amount of time to prevent
+ * us from unnecessarily promoting a product for months or years in the future.
+ */
+ public function purge_coupon() {
+ $date = Jetpack_Options::get_option( self::$added_option, '' );
+
+ if ( empty( $date ) ) {
+ return;
+ }
+
+ $expire_date = strtotime( '+30 days', $date );
+ $today = time();
+
+ if ( $today >= $expire_date ) {
+ 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 ],
+ 'prefix' => $prefix,
+ );
+ }
+
+ /**
+ * 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 $$next_version$$
+ *
+ * @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<slug>.*?)_.+$/';
+ $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 $$next_version$$
+ *
+ * @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 $$next_version$$
+ *
+ * @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/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php
new file mode 100644
index 00000000..bec501bc
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php
@@ -0,0 +1,199 @@
+<?php
+/**
+ * Jetpack Partner package.
+ *
+ * @package automattic/jetpack-partner
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * This class introduces functionality used by Jetpack hosting partners.
+ *
+ * @since 1.0.0
+ */
+class Partner {
+
+ /**
+ * Affiliate code.
+ */
+ const AFFILIATE_CODE = 'affiliate';
+
+ /**
+ * Subsidiary id code.
+ */
+ const SUBSIDIARY_CODE = 'subsidiary';
+
+ /**
+ * Singleton instance.
+ *
+ * @since 1.0.0
+ *
+ * @var Partner This class instance.
+ */
+ private static $instance = null;
+
+ /**
+ * Partner constructor.
+ */
+ private function __construct() {
+ }
+
+ /**
+ * Initializes the class or returns the singleton.
+ *
+ * @return Partner | false
+ * @since 1.0.0
+ */
+ public static function init() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new Partner();
+ add_filter( 'jetpack_build_authorize_url', array( self::$instance, 'add_subsidiary_id_as_query_arg' ) );
+ add_filter( 'jetpack_build_authorize_url', array( self::$instance, 'add_affiliate_code_as_query_arg' ) );
+ add_filter( 'jetpack_build_connection_url', array( self::$instance, 'add_subsidiary_id_as_query_arg' ) );
+ add_filter( 'jetpack_build_connection_url', array( self::$instance, 'add_affiliate_code_as_query_arg' ) );
+
+ add_filter( 'jetpack_register_request_body', array( self::$instance, 'add_subsidiary_id_to_params_array' ) );
+ add_filter( 'jetpack_register_request_body', array( self::$instance, 'add_affiliate_code_to_params_array' ) );
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Adds the partner subsidiary code to the passed URL.
+ *
+ * @param string $url The URL.
+ *
+ * @return string
+ */
+ public function add_subsidiary_id_as_query_arg( $url ) {
+ return $this->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.
+ *
+ * @param array $params The parameters array.
+ *
+ * @return array
+ * @since 1.5.0
+ */
+ 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.
+ *
+ * @param array $params The parameters array.
+ *
+ * @return array
+ * @since 1.5.0
+ */
+ 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.
+ *
+ * @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.
+ * @since 1.0.0
+ */
+ 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
+ *
+ * @param string $type The partner code.
+ * @return array
+ * @since 1.5.0
+ */
+ 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.
+ *
+ * @param string $type This can be either 'affiliate' or 'subsidiary'. Returns empty string when code is unknown.
+ *
+ * @return string The partner code.
+ * @since 1.0.0
+ */
+ public function get_partner_code( $type ) {
+ switch ( $type ) {
+ case self::AFFILIATE_CODE:
+ /**
+ * Allow to filter the affiliate code.
+ *
+ * @param string $affiliate_code The affiliate code, blank by default.
+ *
+ * @since 1.0.0
+ * @since-jetpack 6.9.0
+ */
+ return apply_filters( 'jetpack_affiliate_code', get_option( 'jetpack_affiliate_code', '' ) );
+ case self::SUBSIDIARY_CODE:
+ /**
+ * Allow to filter the partner subsidiary id.
+ *
+ * @param string $subsidiary_id The partner subsidiary id, blank by default.
+ *
+ * @since 1.0.0
+ */
+ 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md
new file mode 100644
index 00000000..faa074b4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/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.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.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/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php
new file mode 100644
index 00000000..7c9cec39
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php
@@ -0,0 +1,1313 @@
+<?php
+/**
+ * Password Checker package.
+ *
+ * @package automattic/jetpack-password-checker
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Checks passwords strength.
+ */
+class Password_Checker {
+ /**
+ * Minimum entropy bits a password should contain. 36 bits of entropy is considered
+ * to be a reasonable password, 28 stands for a weak one.
+ *
+ * @var int
+ */
+ public $minimum_entropy_bits = 28;
+
+ /**
+ * Test results array.
+ *
+ * @var array
+ */
+ public $test_results = array();
+
+ /**
+ * Current password score.
+ *
+ * @var int
+ */
+ public $score = 0;
+
+ /**
+ * Current multiplier affecting the score.
+ *
+ * @var int
+ */
+ public $multiplier = 4;
+
+ /**
+ * A common password disallow list, which on match will immediately disqualify the password.
+ *
+ * @var array
+ */
+ public $common_passwords = array();
+
+ /**
+ * Minimum password length setting.
+ *
+ * @var int
+ */
+ public $minimum_password_length = 6;
+
+ /**
+ * User defined strings that passwords need to be tested for a match against.
+ *
+ * @var array
+ */
+ private $user_strings_to_test = array();
+
+ /**
+ * The user object for whom the password is being tested.
+ *
+ * @var mixed
+ */
+ protected $user = null;
+
+ /**
+ * The user identifier for whom the password is being tested, used if there's no user object.
+ *
+ * @var mixed
+ */
+ protected $user_id = null;
+
+ /**
+ * Creates an instance of the password checker class for the specified user, or
+ * defaults to the currently logged in user.
+ *
+ * @param mixed $user can be an integer ID, or a WP_User object.
+ */
+ public function __construct( $user = null ) {
+ if ( is_null( $user ) ) {
+ $this->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/CHANGELOG.md
new file mode 100644
index 00000000..5af72f2d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/CHANGELOG.md
@@ -0,0 +1,143 @@
+# 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).
+
+## [1.7.9] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.7.8] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.7.7] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.7.6] - 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.7.5] - 2021-10-26
+### Changed
+- Updated package dependencies.
+
+## [1.7.4] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.7.3] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.7.2] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.7.1] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+## [1.7.0] - 2021-06-29
+### Changed
+- Allow any argument to be passed.
+- Improve documentation.
+
+## [1.6.1] - 2021-06-15
+### Changed
+- Updated package dependencies.
+
+## [1.6.0] - 2021-05-25
+### Removed
+- Removed filter from the final Redirect URL
+
+## [1.5.5] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.5.4] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+- Userless Connection: Redirect "userless" users to the "Plans" page
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.5.3] - 2021-02-23
+
+- CI: Make tests more generic
+
+## [1.5.2] - 2021-01-26
+
+- Update dependencies to latest stable
+
+## [1.5.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.5.0] - 2021-01-05
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+- Pin dependency brain/monkey to 2.5.0
+
+## [1.4.1] - 2020-11-24
+
+- Status: Introduce get_site_suffix method
+
+## [1.4.0] - 2020-10-27
+
+- Masterbar: Add Admin Menu endpoint
+
+## [1.3.0] - 2020-08-14
+
+- Packages: Update filenames after #16810
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.2.0] - 2020-06-16
+
+- Add a trailing / to jetpack.com/redirect URLs.
+
+## [1.1.0] - 2020-05-22
+
+- add filter to Redirect::get_url
+
+## 1.0.0 - 2020-04-24
+
+- Create Jetpack Redirect package
+
+[1.7.9]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.8...v1.7.9
+[1.7.8]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.7...v1.7.8
+[1.7.7]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.6...v1.7.7
+[1.7.6]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.5...v1.7.6
+[1.7.5]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.4...v1.7.5
+[1.7.4]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-redirect/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.6.1...v1.7.0
+[1.6.1]: https://github.com/Automattic/jetpack-redirect/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.5...v1.6.0
+[1.5.5]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.4...v1.5.5
+[1.5.4]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.3...v1.5.4
+[1.5.3]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-redirect/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.4.1...v1.5.0
+[1.4.1]: https://github.com/Automattic/jetpack-redirect/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-redirect/compare/v1.0.0...v1.1.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php
new file mode 100644
index 00000000..da5979b3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Jetpack Redirect package.
+ *
+ * @package automattic/jetpack-redirect
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Redirect
+ */
+class Redirect {
+ /**
+ * Constructor.
+ *
+ * Static-only class, so nothing here.
+ */
+ private function __construct() {}
+
+ /**
+ * Builds and returns an URL using the jetpack.com/redirect/ service
+ *
+ * If $source is a simple slug, it will be sent using the source query parameter. e.g. jetpack.com/redirect/?source=slug
+ *
+ * If $source is a full URL, starting with https://, it will be sent using the url query parameter. e.g. jetpack.com/redirect/?url=https://wordpress.com
+ *
+ * Note: if using full URL, query parameters and anchor must be passed in $args. Any querystring of url fragment in the URL will be discarded.
+ *
+ * @param string $source The URL handler registered in the server or the full destination URL (starting with https://).
+ * @param array|string $args {
+ * Optional. Additional arguments to build the url. This is not a complete list as any argument passed here will be sent to as a query parameter to the Redirect server. These parameters will not necessarily be passed over to the final destination URL. If you want to add a parameter to the final destination URL, use the `query` argument.
+ *
+ * @type string $site URL of the site; Default is current site.
+ * @type string $path Additional path to be appended to the URL.
+ * @type string $query Query parameters to be added to the final destination URL. should be in query string format (e.g. 'key=value&foo=bar').
+ * @type string $anchor Anchor to be added to the URL.
+ * @type integer $u The user ID.
+ * }
+ *
+ * @return string The built URL
+ */
+ public static function get_url( $source, $args = array() ) {
+
+ $url = 'https://jetpack.com/redirect/';
+ $site_suffix = ( new Status() )->get_site_suffix();
+ $args = wp_parse_args( $args, array( 'site' => $site_suffix ) );
+
+ $source_key = 'source';
+
+ if ( 0 === strpos( $source, 'https://' ) ) {
+ $source_key = 'url';
+ $source_url = \wp_parse_url( $source );
+
+ // discard any query and fragments.
+ $source = 'https://' . $source_url['host'] . ( isset( $source_url['path'] ) ? $source_url['path'] : '' );
+ }
+
+ $to_be_added = array(
+ $source_key => rawurlencode( $source ),
+ );
+
+ foreach ( $args as $arg_name => $arg_value ) {
+
+ if ( empty( $arg_value ) ) {
+ continue;
+ }
+
+ $to_be_added[ $arg_name ] = rawurlencode( $arg_value );
+
+ }
+
+ if ( ! empty( $to_be_added ) ) {
+ $url = add_query_arg( $to_be_added, $url );
+ }
+
+ return $url;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/CHANGELOG.md
new file mode 100644
index 00000000..86d4e90e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/CHANGELOG.md
@@ -0,0 +1,130 @@
+# 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).
+
+## [1.4.13] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.4.12] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.4.11] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.4.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.4.9] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.4.8] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.4.7] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.4.6] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+## [1.4.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.4.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.4.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.4.1] - 2021-01-20
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.4.0] - 2020-12-14
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.3.1] - 2020-10-28
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.3.0] - 2020-08-13
+
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.2.0] - 2020-07-01
+
+- Package Unit tests: update test file names to make sure they runs in Travis
+
+## [1.1.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+- PHPCS Updates after WPCS 2.3
+
+## [1.0.4] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.2] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## [1.0.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## 1.0.0 - 2019-09-14
+
+- Jetpack DNA: Introduce a Roles package
+
+[1.4.13]: https://github.com/Automattic/jetpack-roles/compare/v1.4.12...v1.4.13
+[1.4.12]: https://github.com/Automattic/jetpack-roles/compare/v1.4.11...v1.4.12
+[1.4.11]: https://github.com/Automattic/jetpack-roles/compare/v1.4.10...v1.4.11
+[1.4.10]: https://github.com/Automattic/jetpack-roles/compare/v1.4.9...v1.4.10
+[1.4.9]: https://github.com/Automattic/jetpack-roles/compare/v1.4.8...v1.4.9
+[1.4.8]: https://github.com/Automattic/jetpack-roles/compare/v1.4.7...v1.4.8
+[1.4.7]: https://github.com/Automattic/jetpack-roles/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-roles/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-roles/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-roles/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-roles/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-roles/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-roles/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-roles/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-roles/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-roles/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-roles/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-roles/compare/v1.0.4...v1.1.0
+[1.0.4]: https://github.com/Automattic/jetpack-roles/compare/v1.0.2...v1.0.4
+[1.0.2]: https://github.com/Automattic/jetpack-roles/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-roles/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php
new file mode 100644
index 00000000..7bce3462
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php
@@ -0,0 +1,81 @@
+<?php
+/**
+ * A user roles class for Jetpack.
+ *
+ * @package automattic/jetpack-roles
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Automattic\Jetpack\Roles
+ *
+ * Contains utilities for translating user roles to capabilities and vice versa.
+ */
+class Roles {
+ /**
+ * Map of roles we care about, and their corresponding minimum capabilities.
+ *
+ * @access protected
+ *
+ * @var array
+ */
+ protected $capability_translations = array(
+ 'administrator' => 'manage_options',
+ 'editor' => 'edit_others_posts',
+ 'author' => 'publish_posts',
+ 'contributor' => 'edit_posts',
+ 'subscriber' => 'read',
+ );
+
+ /**
+ * Get the role of the current user.
+ *
+ * @access public
+ *
+ * @return string|boolean Current user's role, false if not enough capabilities for any of the roles.
+ */
+ public function translate_current_user_to_role() {
+ foreach ( $this->capability_translations as $role => $cap ) {
+ if ( current_user_can( $role ) || current_user_can( $cap ) ) {
+ return $role;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Get the role of a particular user.
+ *
+ * @access public
+ *
+ * @param \WP_User $user User object.
+ * @return string|boolean User's role, false if not enough capabilities for any of the roles.
+ */
+ public function translate_user_to_role( $user ) {
+ foreach ( $this->capability_translations as $role => $cap ) {
+ if ( user_can( $user, $role ) || user_can( $user, $cap ) ) {
+ return $role;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Get the minimum capability for a role.
+ *
+ * @access public
+ *
+ * @param string $role Role name.
+ * @return string|boolean Capability, false if role isn't mapped to any capabilities.
+ */
+ public function translate_role_to_cap( $role ) {
+ if ( ! isset( $this->capability_translations[ $role ] ) ) {
+ return false;
+ }
+
+ return $this->capability_translations[ $role ];
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/CHANGELOG.md
new file mode 100644
index 00000000..90de0b6a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/CHANGELOG.md
@@ -0,0 +1,51 @@
+# 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.0] - 2022-01-04
+### Changed
+- Do not escape widget title value
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+- Updated package textdomain from `jetpack` to `jetpack-search-pkg`.
+
+### Fixed
+- Add missing textdomains in JS code.
+
+## [0.3.0] - 2021-12-14
+### Changed
+- Search package: add new methods and update timing for `Plan` class.
+- Search package: refactored Module_Control class.
+
+## [0.2.1] - 2021-12-07
+### Changed
+- Updated package dependencies.
+
+## [0.2.0] - 2021-11-30
+### Added
+- Added essential scaffolding for package.
+- Migrate additional helper classes to package
+- Search: added new state store for search dashboard
+- Search package: duplicated search dashboard dependencies to the package
+
+### Changed
+- Search: migrate/create necessary APIs for the frontend
+- Search: removed other dependencies from copied code
+
+## 0.1.0 - 2021-11-09
+### Added
+- Add a new Search package with Helper and Options classes.
+- Search: Migrate helper classes from Jetpack plugin
+
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Updated package dependencies.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+[0.4.0]: https://github.com/Automattic/jetpack-search/compare/v0.3.0...v0.4.0
+[0.3.0]: https://github.com/Automattic/jetpack-search/compare/v0.2.1...v0.3.0
+[0.2.1]: https://github.com/Automattic/jetpack-search/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-search/compare/v0.1.0...v0.2.0
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-helper.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-helper.php
new file mode 100644
index 00000000..f7f85591
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-helper.php
@@ -0,0 +1,908 @@
+<?php
+/**
+ * Helper class providing various static utility functions for use in Search.
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use GP_Locales; // TODO: Migrate this to the package, or find an alternative.
+use Jetpack; // TODO: Remove this once migrated.
+
+/**
+ * Various helper functions for reuse throughout the Jetpack Search code.
+ */
+class Helper {
+
+ /**
+ * The search widget's base ID.
+ *
+ * @since 5.8.0
+ * @var string
+ */
+ const FILTER_WIDGET_BASE = 'jetpack-search-filters';
+
+ /**
+ * Create a URL for the current search that doesn't include the "paged" parameter.
+ *
+ * @since 5.8.0
+ *
+ * @return string The search URL.
+ */
+ public static function get_search_url() {
+ // WordPress search doesn't use nonces.
+ $query_args = stripslashes_deep( $_GET ); //phpcs:ignore WordPress.Security.NonceVerification.Recommended
+
+ // Handle the case where a permastruct is being used, such as /search/{$query}.
+ if ( ! isset( $query_args['s'] ) ) {
+ $query_args['s'] = get_search_query();
+ }
+
+ if ( isset( $query_args['paged'] ) ) {
+ unset( $query_args['paged'] );
+ }
+
+ $query = http_build_query( $query_args );
+
+ return home_url( "?{$query}" );
+ }
+
+ /**
+ * Wraps add_query_arg() with the URL defaulting to the current search URL.
+ *
+ * @see add_query_arg()
+ *
+ * @since 5.8.0
+ *
+ * @param string|array $key Either a query variable key, or an associative array of query variables.
+ * @param string $value Optional. A query variable value.
+ * @param bool|string $url Optional. A URL to act upon. Defaults to the current search URL.
+ *
+ * @return string New URL query string (unescaped).
+ */
+ public static function add_query_arg( $key, $value = false, $url = false ) {
+ $url = empty( $url ) ? self::get_search_url() : $url;
+ if ( is_array( $key ) ) {
+ return add_query_arg( $key, $url );
+ }
+
+ return add_query_arg( $key, $value, $url );
+ }
+
+ /**
+ * Wraps remove_query_arg() with the URL defaulting to the current search URL.
+ *
+ * @see remove_query_arg()
+ *
+ * @since 5.8.0
+ *
+ * @param string|array $key Query key or keys to remove.
+ * @param bool|string $url Optional. A URL to act upon. Defaults to the current search URL.
+ *
+ * @return string New URL query string (unescaped).
+ */
+ public static function remove_query_arg( $key, $url = false ) {
+ $url = empty( $url ) ? self::get_search_url() : $url;
+
+ return remove_query_arg( $key, $url );
+ }
+
+ /**
+ * Returns the name of the search widget's option.
+ *
+ * @since 5.8.0
+ *
+ * @return string The search widget option name.
+ */
+ public static function get_widget_option_name() {
+ return sprintf( 'widget_%s', self::FILTER_WIDGET_BASE );
+ }
+
+ /**
+ * Returns the search widget instances from the widget's option.
+ *
+ * @since 5.8.0
+ *
+ * @return array The widget options.
+ */
+ public static function get_widgets_from_option() {
+ $widget_options = get_option( self::get_widget_option_name(), array() );
+
+ // We don't need this.
+ if ( ! empty( $widget_options ) && isset( $widget_options['_multiwidget'] ) ) {
+ unset( $widget_options['_multiwidget'] );
+ }
+
+ return $widget_options;
+ }
+
+ /**
+ * Returns the widget ID (widget base plus the numeric ID).
+ *
+ * @param int $number The widget's numeric ID.
+ *
+ * @return string The widget's numeric ID prefixed with the search widget base.
+ */
+ public static function build_widget_id( $number ) {
+ return sprintf( '%s-%d', self::FILTER_WIDGET_BASE, $number );
+ }
+
+ /**
+ * Wrapper for is_active_widget() with the other parameters automatically supplied.
+ *
+ * @see is_active_widget()
+ *
+ * @since 5.8.0
+ *
+ * @param int $widget_id Widget ID.
+ *
+ * @return bool Whether the widget is active or not.
+ */
+ public static function is_active_widget( $widget_id ) {
+ return (bool) is_active_widget( false, $widget_id, self::FILTER_WIDGET_BASE, true );
+ }
+
+ /**
+ * Returns an array of the filters from all active search widgets.
+ *
+ * @since 5.8.0
+ *
+ * @param array|null $allowed_widget_ids array of allowed widget IDs.
+ *
+ * @return array Active filters.
+ */
+ public static function get_filters_from_widgets( $allowed_widget_ids = null ) {
+ $filters = array();
+
+ $widget_options = self::get_widgets_from_option();
+ if ( empty( $widget_options ) ) {
+ return $filters;
+ }
+
+ foreach ( (array) $widget_options as $number => $settings ) {
+ $widget_id = self::build_widget_id( $number );
+ if ( ! self::is_active_widget( $widget_id ) || empty( $settings['filters'] ) ) {
+ continue;
+ }
+ if ( isset( $allowed_widget_ids ) && ! in_array( $widget_id, $allowed_widget_ids, true ) ) {
+ continue;
+ }
+
+ foreach ( (array) $settings['filters'] as $widget_filter ) {
+ $widget_filter['widget_id'] = $widget_id;
+
+ if ( empty( $widget_filter['name'] ) ) {
+ $widget_filter['name'] = self::generate_widget_filter_name( $widget_filter );
+ }
+
+ $type = ( isset( $widget_filter['type'] ) ) ? $widget_filter['type'] : '';
+ $key = sprintf( '%s_%d', $type, count( $filters ) );
+
+ $filters[ $key ] = $widget_filter;
+ }
+ }
+
+ return $filters;
+ }
+
+ /**
+ * Get the localized default label for a date filter.
+ *
+ * @since 5.8.0
+ *
+ * @param string $type Date type, either year or month.
+ * @param bool $is_updated Whether the filter was updated or not (adds "Updated" to the end).
+ *
+ * @return string The filter label.
+ */
+ public static function get_date_filter_type_name( $type, $is_updated = false ) {
+ switch ( $type ) {
+ case 'year':
+ $string = ( $is_updated )
+ ? esc_html_x( 'Year Updated', 'label for filtering posts', 'jetpack-search-pkg' )
+ : esc_html_x( 'Year', 'label for filtering posts', 'jetpack-search-pkg' );
+ break;
+ case 'month':
+ default:
+ $string = ( $is_updated )
+ ? esc_html_x( 'Month Updated', 'label for filtering posts', 'jetpack-search-pkg' )
+ : esc_html_x( 'Month', 'label for filtering posts', 'jetpack-search-pkg' );
+ break;
+ }
+
+ return $string;
+ }
+
+ /**
+ * Creates a default name for a filter. Used when the filter label is blank.
+ *
+ * @since 5.8.0
+ *
+ * @param array $widget_filter The filter to generate the title for.
+ *
+ * @return string The suggested filter name.
+ */
+ public static function generate_widget_filter_name( $widget_filter ) {
+ $name = '';
+
+ if ( ! isset( $widget_filter['type'] ) ) {
+ return $name;
+ }
+
+ switch ( $widget_filter['type'] ) {
+ case 'post_type':
+ $name = _x( 'Post Types', 'label for filtering posts', 'jetpack-search-pkg' );
+ break;
+
+ case 'date_histogram':
+ $modified_fields = array(
+ 'post_modified',
+ 'post_modified_gmt',
+ );
+ switch ( $widget_filter['interval'] ) {
+ case 'year':
+ $name = self::get_date_filter_type_name(
+ 'year',
+ in_array( $widget_filter['field'], $modified_fields, true )
+ );
+ break;
+ case 'month':
+ default:
+ $name = self::get_date_filter_type_name(
+ 'month',
+ in_array( $widget_filter['field'], $modified_fields, true )
+ );
+ break;
+ }
+ break;
+
+ case 'taxonomy':
+ $tax = get_taxonomy( $widget_filter['taxonomy'] );
+ if ( ! $tax ) {
+ break;
+ }
+
+ if ( isset( $tax->label ) ) {
+ $name = $tax->label;
+ } elseif ( isset( $tax->labels ) && isset( $tax->labels->name ) ) {
+ $name = $tax->labels->name;
+ }
+ break;
+ }
+
+ return $name;
+ }
+
+ /**
+ * Whether we should rerun a search in the customizer preview or not.
+ *
+ * @since 5.8.0
+ *
+ * @return bool
+ */
+ public static function should_rerun_search_in_customizer_preview() {
+ // Only update when in a customizer preview and data is being posted.
+ // Check for $_POST removes an extra update when the customizer loads.
+ //
+ // Note: We use $GLOBALS['wp_customize'] here instead of is_customize_preview() to support unit tests.
+ return isset( $GLOBALS['wp_customize'] ) && $GLOBALS['wp_customize']->is_preview() && ! empty( $_POST ); // phpcs:ignore
+ }
+
+ /**
+ * Since PHP's built-in array_diff() works by comparing the values that are in array 1 to the other arrays,
+ * if there are less values in array 1, it's possible to get an empty diff where one might be expected.
+ *
+ * @since 5.8.0
+ *
+ * @param array $array_1 The first array.
+ * @param array $array_2 The second array.
+ *
+ * @return array
+ */
+ public static function array_diff( $array_1, $array_2 ) {
+ // If the array counts are the same, then the order doesn't matter. If the count of
+ // $array_1 is higher than $array_2, that's also fine. If the count of $array_2 is higher,
+ // we need to swap the array order though.
+ if ( count( $array_1 ) !== count( $array_2 ) && count( $array_2 ) > count( $array_1 ) ) {
+ $temp = $array_1;
+ $array_1 = $array_2;
+ $array_2 = $temp;
+ }
+
+ // Disregard keys.
+ return array_values( array_diff( $array_1, $array_2 ) );
+ }
+
+ /**
+ * Given the widget instance, will return true when selected post types differ from searchable post types.
+ *
+ * @since 5.8.0
+ *
+ * @param array $post_types An array of post types.
+ *
+ * @return bool
+ */
+ public static function post_types_differ_searchable( $post_types ) {
+ if ( empty( $post_types ) ) {
+ return false;
+ }
+
+ $searchable_post_types = get_post_types( array( 'exclude_from_search' => false ) );
+ $diff_of_searchable = self::array_diff( $searchable_post_types, (array) $post_types );
+
+ return ! empty( $diff_of_searchable );
+ }
+
+ /**
+ * Given the array of post types, will return true when these differ from the current search query.
+ *
+ * @since 5.8.0
+ *
+ * @param array $post_types An array of post types.
+ *
+ * @return bool
+ */
+ public static function post_types_differ_query( $post_types ) {
+ if ( empty( $post_types ) ) {
+ return false;
+ }
+
+ // WordPress search doesn't use nonces.
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ if ( empty( $_GET['post_type'] ) ) {
+ $post_types_from_query = array();
+ } elseif ( is_array( $_GET['post_type'] ) ) {
+ $post_types_from_query = $_GET['post_type'];
+ } else {
+ $post_types_from_query = (array) explode( ',', $_GET['post_type'] );
+ }
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ $post_types_from_query = array_map( 'trim', $post_types_from_query );
+
+ $diff_query = self::array_diff( (array) $post_types, $post_types_from_query );
+
+ return ! empty( $diff_query );
+ }
+
+ /**
+ * Determine what Tracks value should be used when updating a widget.
+ *
+ * @since 5.8.0
+ *
+ * @param mixed $old_value The old option value.
+ * @param mixed $new_value The new option value.
+ *
+ * @return array|false False if the widget wasn't updated, otherwise an array of the Tracks action and widget properties.
+ */
+ public static function get_widget_tracks_value( $old_value, $new_value ) {
+ $old_value = (array) $old_value;
+ if ( isset( $old_value['_multiwidget'] ) ) {
+ unset( $old_value['_multiwidget'] );
+ }
+
+ $new_value = (array) $new_value;
+ if ( isset( $new_value['_multiwidget'] ) ) {
+ unset( $new_value['_multiwidget'] );
+ }
+
+ $old_keys = array_keys( $old_value );
+ $new_keys = array_keys( $new_value );
+
+ if ( count( $new_keys ) > count( $old_keys ) ) { // This is the case for a widget being added.
+ $diff = self::array_diff( $new_keys, $old_keys );
+ $action = 'widget_added';
+ $widget = empty( $diff ) || ! isset( $new_value[ $diff[0] ] )
+ ? false
+ : $new_value[ $diff[0] ];
+ } elseif ( count( $old_keys ) > count( $new_keys ) ) { // This is the case for a widget being deleted.
+ $diff = self::array_diff( $old_keys, $new_keys );
+ $action = 'widget_deleted';
+ $widget = empty( $diff ) || ! isset( $old_value[ $diff[0] ] )
+ ? false
+ : $old_value[ $diff[0] ];
+ } else {
+ $action = 'widget_updated';
+ $widget = false;
+
+ // This is a bit crazy. Since there can be multiple widgets stored in a single option,
+ // we need to diff the old and new values to figure out which widget was updated.
+ foreach ( $new_value as $key => $new_instance ) {
+ if ( ! isset( $old_value[ $key ] ) ) {
+ continue;
+ }
+ $old_instance = $old_value[ $key ];
+
+ // First, let's test the keys of each instance.
+ $diff = self::array_diff( array_keys( $new_instance ), array_keys( $old_instance ) );
+ if ( ! empty( $diff ) ) {
+ $widget = $new_instance;
+ break;
+ }
+
+ // Next, lets's loop over each value and compare it.
+ foreach ( $new_instance as $k => $v ) {
+ if ( is_scalar( $v ) && (string) $v !== (string) $old_instance[ $k ] ) {
+ $widget = $new_instance;
+ break;
+ }
+
+ if ( 'filters' === $k ) {
+ if ( count( $new_instance['filters'] ) !== count( $old_instance['filters'] ) ) {
+ $widget = $new_instance;
+ break;
+ }
+
+ foreach ( $v as $filter_key => $new_filter_value ) {
+ $diff = self::array_diff( $new_filter_value, $old_instance['filters'][ $filter_key ] );
+ if ( ! empty( $diff ) ) {
+ $widget = $new_instance;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ if ( empty( $action ) || empty( $widget ) ) {
+ return false;
+ }
+
+ return array(
+ 'action' => $action,
+ 'widget' => self::get_widget_properties_for_tracks( $widget ),
+ );
+ }
+
+ /**
+ * Creates the widget properties for sending to Tracks.
+ *
+ * @since 5.8.0
+ *
+ * @param array $widget The widget instance.
+ *
+ * @return array The widget properties.
+ */
+ public static function get_widget_properties_for_tracks( $widget ) {
+ $sanitized = array();
+
+ foreach ( (array) $widget as $key => $value ) {
+ if ( '_multiwidget' === $key ) {
+ continue;
+ }
+
+ if ( is_scalar( $value ) ) {
+ $key = str_replace( '-', '_', sanitize_key( $key ) );
+ $key = "widget_{$key}";
+ $sanitized[ $key ] = $value;
+ }
+ }
+
+ $filters_properties = ! empty( $widget['filters'] )
+ ? self::get_filter_properties_for_tracks( $widget['filters'] )
+ : array();
+
+ return array_merge( $sanitized, $filters_properties );
+ }
+
+ /**
+ * Creates the filter properties for sending to Tracks.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters An array of filters.
+ *
+ * @return array The filter properties.
+ */
+ public static function get_filter_properties_for_tracks( $filters ) {
+ if ( empty( $filters ) ) {
+ return $filters;
+ }
+
+ $filters_properties = array(
+ 'widget_filter_count' => count( $filters ),
+ );
+
+ foreach ( $filters as $filter ) {
+ if ( empty( $filter['type'] ) ) {
+ continue;
+ }
+
+ $key = sprintf( 'widget_filter_type_%s', $filter['type'] );
+ if ( isset( $filters_properties[ $key ] ) ) {
+ $filters_properties[ $key ] ++;
+ } else {
+ $filters_properties[ $key ] = 1;
+ }
+ }
+
+ return $filters_properties;
+ }
+
+ /**
+ * Gets the active post types given a set of filters.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters The active filters for the current query.
+ *
+ * @return array The active post types.
+ */
+ public static function get_active_post_types( $filters ) {
+ $active_post_types = array();
+
+ foreach ( $filters as $item ) {
+ if ( ( 'post_type' === $item['type'] ) && isset( $item['query_vars']['post_type'] ) ) {
+ $active_post_types[] = $item['query_vars']['post_type'];
+ }
+ }
+
+ return $active_post_types;
+ }
+
+ /**
+ * Sets active to false on all post type buckets.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters The available filters for the current query.
+ *
+ * @return array The filters for the current query with modified active field.
+ */
+ public static function remove_active_from_post_type_buckets( $filters ) {
+ $modified = $filters;
+ foreach ( $filters as $key => $filter ) {
+ if ( 'post_type' === $filter['type'] && ! empty( $filter['buckets'] ) ) {
+ foreach ( $filter['buckets'] as $k => $bucket ) {
+ $bucket['active'] = false;
+ $modified[ $key ]['buckets'][ $k ] = $bucket;
+ }
+ }
+ }
+
+ return $modified;
+ }
+
+ /**
+ * Given a url and an array of post types, will ensure that the post types are properly applied to the URL as args.
+ *
+ * @since 5.8.0
+ *
+ * @param string $url The URL to add post types to.
+ * @param array $post_types An array of post types that should be added to the URL.
+ *
+ * @return string The URL with added post types.
+ */
+ public static function add_post_types_to_url( $url, $post_types ) {
+ $url = self::remove_query_arg( 'post_type', $url );
+ if ( empty( $post_types ) ) {
+ return $url;
+ }
+
+ $url = self::add_query_arg(
+ 'post_type',
+ implode( ',', $post_types ),
+ $url
+ );
+
+ return $url;
+ }
+
+ /**
+ * Since we provide support for the widget restricting post types by adding the selected post types as
+ * active filters, if removing a post type filter would result in there no longer be post_type args in the URL,
+ * we need to be sure to add them back.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters An array of possible filters for the current query.
+ * @param array $post_types The post types to ensure are on the link.
+ *
+ * @return array The updated array of filters with post typed added to the remove URLs.
+ */
+ public static function ensure_post_types_on_remove_url( $filters, $post_types ) {
+ $modified = $filters;
+
+ foreach ( (array) $filters as $filter_key => $filter ) {
+ if ( 'post_type' !== $filter['type'] || empty( $filter['buckets'] ) ) {
+ $modified[ $filter_key ] = $filter;
+ continue;
+ }
+
+ foreach ( (array) $filter['buckets'] as $bucket_key => $bucket ) {
+ if ( empty( $bucket['remove_url'] ) ) {
+ continue;
+ }
+
+ $parsed = wp_parse_url( $bucket['remove_url'] );
+ if ( ! $parsed ) {
+ continue;
+ }
+
+ $query = array();
+ if ( ! empty( $parsed['query'] ) ) {
+ wp_parse_str( $parsed['query'], $query );
+ }
+
+ if ( empty( $query['post_type'] ) ) {
+ $modified[ $filter_key ]['buckets'][ $bucket_key ]['remove_url'] = self::add_post_types_to_url(
+ $bucket['remove_url'],
+ $post_types
+ );
+ }
+ }
+ }
+
+ return $modified;
+ }
+
+ /**
+ * Wraps a WordPress filter called "jetpack_search_disable_widget_filters" that allows
+ * developers to disable filters supplied by the search widget. Useful if filters are
+ * being defined at the code level.
+ *
+ * @since 5.8.0
+ *
+ * @return bool
+ */
+ public static function are_filters_by_widget_disabled() {
+ /**
+ * Allows developers to disable filters being set by widget, in favor of manually
+ * setting filters via `Jetpack_Search::set_filters()`.
+ *
+ * @module search
+ *
+ * @since 5.7.0
+ *
+ * @param bool false
+ */
+ return apply_filters( 'jetpack_search_disable_widget_filters', false );
+ }
+
+ /**
+ * Returns the maximum posts per page for a search query.
+ *
+ * @since 5.8.0
+ *
+ * @return int
+ */
+ public static function get_max_posts_per_page() {
+ return Options::site_has_vip_index() ? 1000 : 100;
+ }
+
+ /**
+ * Returns the maximum offset for a search query.
+ *
+ * @since 5.8.0
+ *
+ * @return int
+ */
+ public static function get_max_offset() {
+ return Options::site_has_vip_index() ? 9000 : 1000;
+ }
+
+ /**
+ * Returns the maximum offset for a search query.
+ *
+ * @since 8.4.0
+ * @param string $locale A potentially valid locale string.
+ *
+ * @return bool
+ */
+ public static function is_valid_locale( $locale ) {
+ // TODO: Replace JETPACK__GLOTPRESS_LOCALES_PATH.
+ if ( ! class_exists( 'GP_Locales' ) ) {
+ if ( defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) && file_exists( JETPACK__GLOTPRESS_LOCALES_PATH ) ) {
+ require JETPACK__GLOTPRESS_LOCALES_PATH;
+ } else {
+ // Assume locale to be valid if we can't check with GlotPress.
+ return true;
+ }
+ }
+ return false !== GP_Locales::by_field( 'wp_locale', $locale );
+ }
+
+ /**
+ * Get the version number to use when loading the file. Allows us to bypass cache when developing.
+ *
+ * @since 8.6.0
+ * @param string $file Path of the file we are looking for.
+ * @return string $script_version Version number.
+ */
+ public static function get_asset_version( $file ) {
+ // TODO: Replace Jetpack:: invocation.
+ // TODO: Replace JETPACK__PLUGIN_DIR and JETPACK__VERSION.
+ return Jetpack::is_development_version() && file_exists( JETPACK__PLUGIN_DIR . $file )
+ ? filemtime( JETPACK__PLUGIN_DIR . $file )
+ : JETPACK__VERSION;
+ }
+
+ /**
+ * Generates a customizer settings ID for a given post type.
+ *
+ * @since 8.8.0
+ * @param object $post_type Post type object returned from get_post_types.
+ * @return string $customizer_id Customizer setting ID.
+ */
+ public static function generate_post_type_customizer_id( $post_type ) {
+ return Options::OPTION_PREFIX . 'disable_post_type_' . $post_type->name;
+ }
+
+ /**
+ * Generates an array of post types associated with their customizer IDs.
+ *
+ * @since 8.8.0
+ * @return array $ids Post type => post type customizer ID object.
+ */
+ public static function generate_post_type_customizer_ids() {
+ return array_map(
+ array( 'self', 'generate_post_type_customizer_id' ),
+ get_post_types( array( 'exclude_from_search' => false ), 'objects' )
+ );
+ }
+
+ /**
+ * Sanitizes a checkbox value for writing to the database.
+ *
+ * @since 8.9.0
+ *
+ * @param any $value from the customizer form.
+ * @return string either '0' or '1'.
+ */
+ public static function sanitize_checkbox_value( $value ) {
+ return true === $value ? '1' : '0';
+ }
+
+ /**
+ * Sanitizes a checkbox value for rendering the Customizer.
+ *
+ * @since 8.9.0
+ *
+ * @param any $value from the database.
+ * @return boolean
+ */
+ public static function sanitize_checkbox_value_for_js( $value ) {
+ return '1' === $value;
+ }
+
+ /**
+ * Passes all options to the JS app.
+ */
+ public static function generate_initial_javascript_state() {
+ $widget_options = self::get_widgets_from_option();
+ if ( is_array( $widget_options ) ) {
+ $widget_options = end( $widget_options );
+ }
+
+ $overlay_widget_ids = is_active_sidebar( 'jetpack-instant-search-sidebar' ) ?
+ wp_get_sidebars_widgets()['jetpack-instant-search-sidebar'] : array();
+ $filters = self::get_filters_from_widgets();
+ $widgets = array();
+ $widgets_outside_overlay = array();
+ foreach ( $filters as $key => &$filter ) {
+ $filter['filter_id'] = $key;
+
+ if ( in_array( $filter['widget_id'], $overlay_widget_ids, true ) ) {
+ if ( ! isset( $widgets[ $filter['widget_id'] ] ) ) {
+ $widgets[ $filter['widget_id'] ]['filters'] = array();
+ $widgets[ $filter['widget_id'] ]['widget_id'] = $filter['widget_id'];
+ }
+ $widgets[ $filter['widget_id'] ]['filters'][] = $filter;
+ } else {
+ if ( ! isset( $widgets_outside_overlay[ $filter['widget_id'] ] ) ) {
+ $widgets_outside_overlay[ $filter['widget_id'] ]['filters'] = array();
+ $widgets_outside_overlay[ $filter['widget_id'] ]['widget_id'] = $filter['widget_id'];
+ }
+ $widgets_outside_overlay[ $filter['widget_id'] ]['filters'][] = $filter;
+ }
+ }
+ unset( $filter );
+
+ $has_non_search_widgets = false;
+ foreach ( $overlay_widget_ids as $overlay_widget_id ) {
+ if ( strpos( $overlay_widget_id, self::FILTER_WIDGET_BASE ) === false ) {
+ $has_non_search_widgets = true;
+ break;
+ }
+ }
+
+ $post_type_objs = get_post_types( array( 'exclude_from_search' => false ), 'objects' );
+ $post_type_labels = array();
+ foreach ( $post_type_objs as $key => $obj ) {
+ $post_type_labels[ $key ] = array(
+ 'singular_name' => $obj->labels->singular_name,
+ 'name' => $obj->labels->name,
+ );
+ }
+
+ $prefix = Options::OPTION_PREFIX;
+ $posts_per_page = (int) get_option( 'posts_per_page' );
+ if ( ( $posts_per_page > 20 ) || ( $posts_per_page <= 0 ) ) {
+ $posts_per_page = 20;
+ }
+
+ $excluded_post_types = get_option( $prefix . 'excluded_post_types' ) ? explode( ',', get_option( $prefix . 'excluded_post_types', '' ) ) : array();
+ $post_types = array_values(
+ get_post_types(
+ array(
+ 'exclude_from_search' => false,
+ 'public' => true,
+ )
+ )
+ );
+ $unexcluded_post_types = array_diff( $post_types, $excluded_post_types );
+ // NOTE: If all post types are being excluded, ignore the option value.
+ if ( count( $unexcluded_post_types ) === 0 ) {
+ $excluded_post_types = array();
+ }
+
+ $is_wpcom = defined( 'IS_WPCOM' ) && constant( 'IS_WPCOM' );
+ $is_private_site = '-1' === get_option( 'blog_public' );
+ $is_jetpack_photon_enabled = method_exists( 'Jetpack', 'is_module_active' ) && Jetpack::is_module_active( 'photon' );
+
+ $options = array(
+ 'overlayOptions' => array(
+ 'colorTheme' => get_option( $prefix . 'color_theme', 'light' ),
+ 'enableInfScroll' => get_option( $prefix . 'inf_scroll', '1' ) === '1',
+ 'enableSort' => get_option( $prefix . 'enable_sort', '1' ) === '1',
+ 'highlightColor' => get_option( $prefix . 'highlight_color', '#FFC' ),
+ 'overlayTrigger' => get_option( $prefix . 'overlay_trigger', 'immediate' ),
+ 'resultFormat' => get_option( $prefix . 'result_format', Options::RESULT_FORMAT_MINIMAL ),
+ 'showPoweredBy' => get_option( $prefix . 'show_powered_by', '1' ) === '1',
+
+ // These options require kicking off a new search.
+ 'defaultSort' => get_option( $prefix . 'default_sort', 'relevance' ),
+ 'excludedPostTypes' => $excluded_post_types,
+ ),
+
+ // core config.
+ 'homeUrl' => home_url(),
+ 'locale' => str_replace( '_', '-', self::is_valid_locale( get_locale() ) ? get_locale() : 'en_US' ),
+ 'postsPerPage' => $posts_per_page,
+ 'siteId' => class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'get_option' ) ? Jetpack::get_option( 'id' ) : get_current_blog_id(),
+ 'postTypes' => $post_type_labels,
+ // TODO: Enable this once instant search build pipeline has been moved to the Search package.
+ // 'webpackPublicPath' => plugins_url( '/build/instant-search/', __DIR__ ).
+ 'webpackPublicPath' => plugins_url( '_inc/build/instant-search/', JETPACK__PLUGIN_FILE ),
+ 'isPhotonEnabled' => ( $is_wpcom || $is_jetpack_photon_enabled ) && ! $is_private_site,
+
+ // config values related to private site support.
+ 'apiRoot' => esc_url_raw( rest_url() ),
+ 'apiNonce' => wp_create_nonce( 'wp_rest' ),
+ 'isPrivateSite' => $is_private_site,
+ 'isWpcom' => $is_wpcom,
+
+ // widget info.
+ 'hasOverlayWidgets' => count( $overlay_widget_ids ) > 0,
+ 'widgets' => array_values( $widgets ),
+ 'widgetsOutsideOverlay' => array_values( $widgets_outside_overlay ),
+ 'hasNonSearchWidgets' => $has_non_search_widgets,
+ );
+
+ /**
+ * Customize Instant Search Options.
+ *
+ * @module search
+ *
+ * @since 7.7.0
+ *
+ * @param array $options Array of parameters used in Instant Search queries.
+ */
+ return apply_filters( 'jetpack_instant_search_options', $options );
+ }
+
+ /**
+ * Prints the Instant Search sidebar.
+ */
+ public static function print_instant_search_sidebar() {
+ ?>
+ <div class="jetpack-instant-search__widget-area" style="display: none">
+ <?php if ( is_active_sidebar( 'jetpack-instant-search-sidebar' ) ) { ?>
+ <?php dynamic_sidebar( 'jetpack-instant-search-sidebar' ); ?>
+ <?php } ?>
+ </div>
+ <?php
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php
new file mode 100644
index 00000000..ea97b03c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * Jetpack Search: Module_Control class
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use Automattic\Jetpack\Status;
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * To get and set Searh module settings
+ */
+class Module_Control {
+ /**
+ * Plan object
+ *
+ * @var Plan
+ */
+ protected $plan;
+
+ /**
+ * We use the same options as Jetpack the plugin to flag whether Search is active.
+ */
+ const JETPACK_ACTIVE_MODULES_OPTION_KEY = 'active_modules';
+ const JETPACK_SEARCH_MODULE_SLUG = 'search';
+ const SEARCH_MODULE_INSTANT_SEARCH_OPTION_KEY = 'instant_search_enabled';
+
+ /**
+ * Contructor
+ *
+ * @param Plan|null $plan - Plan object.
+ */
+ public function __construct( $plan = null ) {
+ $this->plan = is_null( $plan ) ? new Plan() : $plan;
+ }
+
+ /**
+ * Returns a boolean for whether of the module is enabled.
+ *
+ * @return bool
+ */
+ public function is_active() {
+ return in_array( self::JETPACK_SEARCH_MODULE_SLUG, $this->get_active_modules(), true );
+ }
+
+ /**
+ * Returns a boolean for whether instant search is enabled.
+ *
+ * @return bool
+ */
+ public function is_instant_search_enabled() {
+ return (bool) get_option( self::SEARCH_MODULE_INSTANT_SEARCH_OPTION_KEY );
+ }
+
+ /**
+ * Activiate Search module
+ */
+ public function activate() {
+ /**
+ * Fires before a module is activated.
+ *
+ * @since 2.6.0
+ *
+ * @param string $module Module slug.
+ * @param bool $exit Should we exit after the module has been activated. Default to true.
+ * @param bool $redirect Should the user be redirected after module activation? Default to true.
+ */
+ do_action( 'jetpack_pre_activate_module', self::JETPACK_SEARCH_MODULE_SLUG );
+
+ // If it's already active, then don't do it again.
+ if ( $this->is_active() ) {
+ return true;
+ }
+ // Not available for offline mode.
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ if ( $is_offline_mode ) {
+ return new WP_Error( 'offline_mode', __( 'Search module can not be activated in offline mode.', 'jetpack-search-pkg' ) );
+ }
+ // Return false if no plan supports search.
+ if ( ! $this->plan->supports_search() ) {
+ return new WP_Error( 'not_supported', __( 'Your plan does not support Jetpack Search.', 'jetpack-search-pkg' ) );
+ }
+
+ $active_modules = $this->get_active_modules();
+ $active_modules[] = self::JETPACK_SEARCH_MODULE_SLUG;
+
+ $success = Jetpack_Options::update_option( self::JETPACK_ACTIVE_MODULES_OPTION_KEY, $active_modules );
+
+ /**
+ * Fired after a module has been deactivated.
+ *
+ * @since 4.2.0
+ *
+ * @param string $module Module slug.
+ * @param boolean $success whether the module was deactivated.
+ */
+ do_action( 'jetpack_activate_module', self::JETPACK_SEARCH_MODULE_SLUG, $success );
+ /**
+ * Fires when a module is deactivated.
+ * The dynamic part of the filter, $module, is the module slug.
+ *
+ * @since 1.9.0
+ *
+ * @param string $module Module slug.
+ */
+ do_action( 'jetpack_activate_module_' . self::JETPACK_SEARCH_MODULE_SLUG );
+
+ return $success;
+ }
+
+ /**
+ * Deactiviate Search module
+ */
+ public function deactivate() {
+ /**
+ * Fires when a module is deactivated.
+ *
+ * @since 1.9.0
+ *
+ * @param string $module Module slug.
+ */
+ do_action( 'jetpack_pre_deactivate_module', self::JETPACK_SEARCH_MODULE_SLUG );
+
+ $active_modules = $this->get_active_modules();
+ $active_modules = array_values( array_diff( $active_modules, array( self::JETPACK_SEARCH_MODULE_SLUG ) ) );
+
+ $success = Jetpack_Options::update_option( self::JETPACK_ACTIVE_MODULES_OPTION_KEY, $active_modules );
+
+ /**
+ * Fired after a module has been deactivated.
+ *
+ * @since 4.2.0
+ *
+ * @param string $module Module slug.
+ * @param boolean $success whether the module was deactivated.
+ */
+ do_action( 'jetpack_deactivate_module', self::JETPACK_SEARCH_MODULE_SLUG, $success );
+ /**
+ * Fires when a module is deactivated.
+ * The dynamic part of the filter, $module, is the module slug.
+ *
+ * @since 1.9.0
+ *
+ * @param string $module Module slug.
+ */
+ do_action( 'jetpack_deactivate_module_' . self::JETPACK_SEARCH_MODULE_SLUG );
+
+ $this->disable_instant_search();
+
+ return $success;
+ }
+
+ /**
+ * Update module status
+ *
+ * @param boolean $active - true to activate, false to deactivate.
+ */
+ public function update_status( $active ) {
+ return $active ? $this->activate() : $this->deactivate();
+ }
+
+ /**
+ * Disable Instant Search Experience
+ */
+ public function disable_instant_search() {
+ return update_option( self::SEARCH_MODULE_INSTANT_SEARCH_OPTION_KEY, false );
+ }
+
+ /**
+ * Enable Instant Search Experience
+ */
+ public function enable_instant_search() {
+ if ( ! $this->is_active() ) {
+ return new WP_Error( 'search_module_inactive', __( 'Search module needs to be activated before enabling instant search.', 'jetpack-search-pkg' ) );
+ }
+ return update_option( self::SEARCH_MODULE_INSTANT_SEARCH_OPTION_KEY, true );
+ }
+
+ /**
+ * Update instant search status
+ *
+ * @param boolean $enabled - true to enable, false to disable.
+ */
+ public function update_instant_search_status( $enabled ) {
+ return $enabled ? $this->enable_instant_search() : $this->disable_instant_search();
+ }
+
+ /**
+ * Get a list of activated modules as an array of module slugs.
+ */
+ public function get_active_modules() {
+ $active_modules = Jetpack_Options::get_option( self::JETPACK_ACTIVE_MODULES_OPTION_KEY );
+
+ if ( ! is_array( $active_modules ) ) {
+ $active_modules = array();
+ }
+
+ /**
+ * Allow filtering of the active modules.
+ *
+ * Gives theme and plugin developers the power to alter the modules that
+ * are activated on the fly.
+ *
+ * @since 5.8.0
+ *
+ * @param array $active Array of active module slugs.
+ */
+ $active_modules = apply_filters( 'jetpack_active_modules', $active_modules );
+
+ return array_unique( $active_modules );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-options.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-options.php
new file mode 100644
index 00000000..0eca3283
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-options.php
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Another helper class for parsing Jetpack Search options.
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * Helpers for parsing the various Search options
+ */
+class Options {
+ /**
+ * The search widget's base ID.
+ *
+ * @since 5.8.0
+ * @var string
+ */
+ const FILTER_WIDGET_BASE = 'jetpack-search-filters';
+
+ /**
+ * Prefix for options in DB.
+ *
+ * @since 8.3.0
+ * @var string
+ */
+ const OPTION_PREFIX = 'jetpack_search_';
+
+ /**
+ * Available result formats.
+ *
+ * @since 9.6.0
+ * @var string
+ */
+ const RESULT_FORMAT_MINIMAL = 'minimal';
+ const RESULT_FORMAT_EXPANDED = 'expanded';
+ const RESULT_FORMAT_PRODUCT = 'product';
+
+ /**
+ * Available overlay triggers.
+ *
+ * @since 9.9.0
+ * @var string
+ */
+ const OVERLAY_TRIGGER_IMMEDIATE = 'immediate';
+ const OVERLAY_TRIGGER_RESULTS = 'results';
+ const OVERLAY_TRIGGER_SUBMIT = 'submit';
+
+ /**
+ * Returns a boolean for whether instant search is enabled.
+ *
+ * @since 8.3.0
+ *
+ * @return bool
+ */
+ public static function is_instant_enabled() {
+ return true === (bool) get_option( 'instant_search_enabled' );
+ }
+
+ /**
+ * Returns a boolean for whether the current site has a VIP index.
+ *
+ * @since 5.8.0
+ *
+ * @return bool
+ */
+ public static function site_has_vip_index() {
+ $has_vip_index = (
+ Constants::is_defined( 'JETPACK_SEARCH_VIP_INDEX' ) &&
+ Constants::get_constant( 'JETPACK_SEARCH_VIP_INDEX' )
+ );
+
+ /**
+ * Allows developers to filter whether the current site has a VIP index.
+ *
+ * @module search
+ *
+ * @since 5.8.0
+ *
+ * @param bool $has_vip_index Whether the current site has a VIP index.
+ */
+ return apply_filters( 'jetpack_search_has_vip_index', $has_vip_index );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-plan.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-plan.php
new file mode 100644
index 00000000..41134260
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-plan.php
@@ -0,0 +1,140 @@
+<?php
+/**
+ * The Search Plan class.
+ * Registers the REST routes for Search.
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use Automattic\Jetpack\Connection\Client;
+use Jetpack_Options;
+use WP_Error;
+
+/**
+ * Registers the REST routes for Search.
+ */
+class Plan {
+ const JETPACK_SEARCH_PLAN_INFO_OPTION_KEY = 'jetpack_search_plan_info';
+ const JETPACK_SEARCH_EVER_SUPPORTED_SEARCH = 'jetpack_search_ever_supported_search';
+
+ /**
+ * Whether we have hooked the actions.
+ *
+ * @var boolean
+ */
+ protected static $update_plan_hook_initialized = false;
+
+ /**
+ * Init hooks for updating plan info
+ */
+ public function init_hooks() {
+ // Update plan info from WPCOM on Jetpack heartbeat.
+ // TODO: implement heartbeart for search.
+ if ( ! static::$update_plan_hook_initialized ) {
+ add_action( 'jetpack_heartbeat', array( $this, 'get_plan_info_from_wpcom' ) );
+ static::$update_plan_hook_initialized = true;
+ }
+ }
+
+ /**
+ * Refresh plan info stored in options
+ */
+ public function get_plan_info_from_wpcom() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $response = Client::wpcom_json_api_request_as_user(
+ '/sites/' . $blog_id . '/jetpack-search/plan',
+ '2'
+ );
+
+ // store plan in options.
+ $this->update_search_plan_info( $response );
+
+ return $response;
+ }
+
+ /**
+ * Get plan info.
+ *
+ * @param {bool} $force_refresh - Default to false. Set true to load from WPCOM.
+ */
+ public function get_plan_info( $force_refresh = false ) {
+ if ( $force_refresh ) {
+ $this->get_plan_info_from_wpcom();
+ }
+ $plan_info = get_option( self::JETPACK_SEARCH_PLAN_INFO_OPTION_KEY );
+ if ( false === $plan_info && ! $force_refresh ) {
+ $plan_info = $this->get_plan_info( true );
+ }
+ return $plan_info;
+ }
+
+ /**
+ * Please use `supports_instant_search` instead.
+ *
+ * @deprecated
+ */
+ public function has_jetpack_search_product() {
+ return (bool) get_option( 'has_jetpack_search_product' );
+ }
+
+ /**
+ * Returns true if plan supports Instant Search.
+ */
+ public function supports_instant_search() {
+ $plan_info = $this->get_plan_info();
+ return isset( $plan_info['supports_instant_search'] ) && $plan_info['supports_instant_search'];
+ }
+
+ /**
+ * Returns true if the plan support either Instant Search or Classic Search.
+ */
+ public function supports_search() {
+ $plan_info = $this->get_plan_info();
+ return isset( $plan_info['supports_search'] ) && $plan_info['supports_search'];
+ }
+
+ /**
+ * Returns true if the plan only supports Classic Search.
+ */
+ public function supports_only_classic_search() {
+ $plan_info = $this->get_plan_info();
+ return isset( $plan_info['supports_only_classic_search'] ) && $plan_info['supports_only_classic_search'];
+ }
+
+ /**
+ * Whether the plan(s) ever supported search.
+ */
+ public function ever_supported_search() {
+ return (bool) get_option( self::JETPACK_SEARCH_EVER_SUPPORTED_SEARCH ) || $this->supports_search();
+ }
+
+ /**
+ * Update `has_jetpack_search_product` regarding the plan information
+ *
+ * @param array|WP_Error $response - Resopnse from WPCOM.
+ */
+ public function update_search_plan_info( $response ) {
+ if ( is_wp_error( $response ) ) {
+ return null;
+ }
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+ $status_code = wp_remote_retrieve_response_code( $response );
+
+ if ( 200 !== $status_code || ! isset( $body['supports_instant_search'] ) ) {
+ return null;
+ }
+ // set option whether has Jetpack Search plan for capability reason.
+ if ( get_option( 'has_jetpack_search_product' ) !== (bool) $body['supports_instant_search'] ) {
+ update_option( 'has_jetpack_search_product', (bool) $body['supports_instant_search'] );
+ }
+ // We use this option to determine the visibility of search submenu.
+ // If the site ever had search subscription, then we record it and show the menu after.
+ if ( $body['supports_instant_search'] ) {
+ update_option( self::JETPACK_SEARCH_EVER_SUPPORTED_SEARCH, true, false );
+ }
+ update_option( self::JETPACK_SEARCH_PLAN_INFO_OPTION_KEY, $body );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php
new file mode 100644
index 00000000..209e989e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php
@@ -0,0 +1,250 @@
+<?php
+/**
+ * The Search Rest Controller class.
+ * Registers the REST routes for Search.
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use Automattic\Jetpack\Connection\Client;
+use Jetpack_Options;
+use WP_Error;
+use WP_REST_Request;
+use WP_REST_Server;
+
+/**
+ * Registers the REST routes for Search.
+ */
+class REST_Controller {
+ /**
+ * Whether it's run on WPCOM.
+ *
+ * @var bool
+ */
+ protected $is_wpcom;
+
+ /**
+ * Module Control object.
+ *
+ * @var Module_Control
+ */
+ protected $search_module;
+
+ /**
+ * Constructor
+ *
+ * @param bool $is_wpcom - Whether it's run on WPCOM.
+ * @param Module_Control|null $module_control - Module_Control object if any.
+ */
+ public function __construct( $is_wpcom = false, $module_control = null ) {
+ $this->is_wpcom = $is_wpcom;
+ $this->search_module = is_null( $module_control ) ? new Module_Control() : $module_control;
+ }
+
+ /**
+ * Registers the REST routes for Search.
+ *
+ * @access public
+ * @static
+ */
+ public function register_rest_routes() {
+ register_rest_route(
+ 'jetpack/v4',
+ '/search/plan',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_search_plan' ),
+ 'permission_callback' => array( $this, 'search_permissions_callback' ),
+ )
+ );
+ register_rest_route(
+ 'jetpack/v4',
+ '/search/settings',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'update_settings' ),
+ 'permission_callback' => array( $this, 'search_permissions_callback' ),
+ )
+ );
+ register_rest_route(
+ 'jetpack/v4',
+ '/search/settings',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_settings' ),
+ 'permission_callback' => array( $this, 'search_permissions_callback' ),
+ )
+ );
+ register_rest_route(
+ 'jetpack/v4',
+ '/search',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_search_results' ),
+ 'permission_callback' => 'is_user_logged_in',
+ )
+ );
+ }
+
+ /**
+ * Only administrators can access the API.
+ *
+ * @return bool|WP_Error True if a blog token was used to sign the request, WP_Error otherwise.
+ */
+ public function search_permissions_callback() {
+ if ( current_user_can( 'manage_options' ) ) {
+ return true;
+ }
+
+ $error_msg = esc_html__(
+ 'You are not allowed to perform this action.',
+ 'jetpack-search-pkg'
+ );
+
+ return new WP_Error( 'rest_forbidden', $error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Proxy the request to WPCOM and return the response.
+ *
+ * GET `jetpack/v4/search/plan`
+ */
+ public function get_search_plan() {
+ $response = ( new Plan() )->get_plan_info_from_wpcom();
+ return $this->make_proper_response( $response );
+ }
+
+ /**
+ * POST `jetpack/v4/search/settings`
+ *
+ * @param WP_REST_Request $request - REST request.
+ */
+ public function update_settings( $request ) {
+ $request_body = $request->get_json_params();
+
+ $module_active = isset( $request_body['module_active'] ) ? (bool) $request_body['module_active'] : null;
+ $instant_search_enabled = isset( $request_body['instant_search_enabled'] ) ? (bool) $request_body['instant_search_enabled'] : null;
+
+ $error = $this->validate_search_settings( $module_active, $instant_search_enabled );
+
+ if ( is_wp_error( $error ) ) {
+ return $error;
+ }
+
+ // Enabling instant search should enable the module too.
+ if ( true === $instant_search_enabled && true !== $module_active ) {
+ $module_active = true;
+ }
+
+ $errors = array();
+ if ( ! is_null( $module_active ) ) {
+ $module_active_updated = $this->search_module->update_status( $module_active );
+ if ( is_wp_error( $module_active_updated ) ) {
+ $errors['module_active'] = $module_active_updated;
+ }
+ }
+
+ if ( ! is_null( $instant_search_enabled ) ) {
+ $instant_search_enabled_updated = $this->search_module->update_instant_search_status( $instant_search_enabled );
+ if ( is_wp_error( $instant_search_enabled_updated ) ) {
+ $errors['instant_search_enabled'] = $instant_search_enabled_updated;
+ }
+ }
+
+ if ( ! empty( $errors ) ) {
+ return new WP_Error(
+ 'some_updated',
+ sprintf(
+ /* translators: %s are the setting name that not updated. */
+ __( 'Some settings ( %s ) not updated.', 'jetpack-search-pkg' ),
+ implode(
+ ',',
+ array_keys( $errors )
+ )
+ ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return $this->get_settings();
+ }
+
+ /**
+ * Validate $module_active and $instant_search_enabled. Returns an WP_Error instance if invalid.
+ *
+ * @param boolean $module_active - Module status.
+ * @param boolean $instant_search_enabled - Instant Search status.
+ */
+ protected function validate_search_settings( $module_active, $instant_search_enabled ) {
+ if ( ( true === $instant_search_enabled && false === $module_active ) || ( is_null( $module_active ) && is_null( $instant_search_enabled ) ) ) {
+ return new WP_Error(
+ 'rest_invalid_arguments',
+ esc_html__( 'The arguments passed in are invalid.', 'jetpack-search-pkg' ),
+ array( 'status' => 400 )
+ );
+ }
+ return true;
+ }
+
+ /**
+ * GET `jetpack/v4/search/settings`
+ */
+ public function get_settings() {
+ return array(
+ 'module_active' => $this->search_module->is_active(),
+ 'instant_search_enabled' => $this->search_module->is_instant_search_enabled(),
+ );
+ }
+
+ /**
+ * Search Endpoint for private sites.
+ *
+ * GET `jetpack/v4/search`
+ *
+ * @param WP_REST_Request $request - REST request.
+ */
+ public function get_search_results( $request ) {
+ $blog_id = $this->get_blog_id();
+ $path = sprintf( '/sites/%d/search', absint( $blog_id ) );
+ $path = add_query_arg(
+ $request->get_query_params(),
+ sprintf( '/sites/%d/search', absint( $blog_id ) )
+ );
+ $response = Client::wpcom_json_api_request_as_user( $path, '1.3', array(), null, 'rest' );
+ return $this->make_proper_response( $response );
+ }
+
+ /**
+ * Forward remote response to client with error handling.
+ *
+ * @param array|WP_Error $response - Resopnse from WPCOM.
+ */
+ protected function make_proper_response( $response ) {
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+ $status_code = wp_remote_retrieve_response_code( $response );
+
+ if ( 200 === $status_code ) {
+ return $body;
+ }
+
+ return new WP_Error(
+ isset( $body['error'] ) ? 'remote-error-' . $body['error'] : 'remote-error',
+ isset( $body['message'] ) ? $body['message'] : 'unknown remote error',
+ array( 'status' => $status_code )
+ );
+ }
+
+ /**
+ * Get blog id
+ */
+ protected function get_blog_id() {
+ return $this->is_wpcom ? get_current_blog_id() : Jetpack_Options::get_option( 'id' );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-settings.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-settings.php
new file mode 100644
index 00000000..ec4a9ed8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-settings.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Jetpack Search Overlay Settings
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+// Exit if file is accessed directly.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Class to initialize search settings on the site.
+ */
+class Settings {
+
+ /**
+ * Class initialization.
+ */
+ public function __construct() {
+ add_action( 'admin_init', array( $this, 'settings_register' ) );
+ add_action( 'rest_api_init', array( $this, 'settings_register' ) );
+ }
+
+ /**
+ * Register requisite settings.
+ *
+ * @since 9.x.x
+ */
+ public function settings_register() {
+ // NOTE: This contains significant code overlap with class-jetpack-search-customize.
+ $setting_prefix = Options::OPTION_PREFIX;
+ $settings = array(
+ array( $setting_prefix . 'color_theme', 'string', 'light' ),
+ array( $setting_prefix . 'result_format', 'string', 'minimal' ),
+ array( $setting_prefix . 'default_sort', 'string', 'relevance' ),
+ array( $setting_prefix . 'overlay_trigger', 'string', 'results' ),
+ array( $setting_prefix . 'excluded_post_types', 'string', '' ),
+ array( $setting_prefix . 'highlight_color', 'string', '#FFC' ),
+ array( $setting_prefix . 'enable_sort', 'boolean', true ),
+ array( $setting_prefix . 'inf_scroll', 'boolean', true ),
+ array( $setting_prefix . 'show_powered_by', 'boolean', true ),
+ );
+ foreach ( $settings as $value ) {
+ register_setting(
+ 'options',
+ $value[0],
+ array(
+ 'default' => $value[2],
+ 'show_in_rest' => true,
+ 'type' => $value[1],
+ )
+ );
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php
new file mode 100644
index 00000000..a212af00
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php
@@ -0,0 +1,335 @@
+<?php
+/**
+ * Template tags class used primarily for rendering widget-related HTML.
+ *
+ * Currently, this package can only run in the Jetpack plugin due to its usage of Jetpack_Search.
+ * Once Jetpack_Search has been migrated to the package as Classic_Search,
+ * this library will be independent from the Jetpack plugin.
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search;
+
+/**
+ * Class that has various methods for outputting functionality into a theme that doesn't support widgets.
+ * Additionally the widget itself makes use of these class.
+ *
+ * @since 5.8.0
+ */
+class Template_Tags {
+
+ /**
+ * Renders all available filters that can be used to filter down search results on the frontend.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters The available filters for the current query.
+ * @param array $post_types An array of post types to make filterable.
+ */
+ public static function render_available_filters( $filters = null, $post_types = null ) {
+ if ( is_null( $filters ) ) {
+ // TODO: Must be migrated to use Classic_Search once the migration is underway.
+ $filters = \Jetpack_Search::instance()->get_filters();
+ }
+
+ if ( is_null( $post_types ) ) {
+ $post_types = get_post_types( array( 'exclude_from_search' => false ) );
+ }
+
+ /**
+ * If the post types specified by the widget differ from the default set of searchable post types,
+ * then we need to track their state.
+ */
+ $active_post_types = array();
+ if ( Helper::post_types_differ_searchable( $post_types ) ) {
+ // get the active filter buckets from the query.
+ // TODO: Must be migrated to use Classic_Search once the migration is underway.
+ $active_buckets = \Jetpack_Search::instance()->get_active_filter_buckets();
+ $post_types_differ_query = Helper::post_types_differ_query( $post_types );
+
+ // remove any post_type filters from display if the current query
+ // already specifies to match all post types.
+ if ( ! $post_types_differ_query ) {
+ $active_buckets = array_filter( $active_buckets, array( __CLASS__, 'is_not_post_type_filter' ) );
+ }
+
+ $active_post_types = Helper::get_active_post_types( $active_buckets );
+ if ( empty( $active_post_types ) ) {
+ $active_post_types = $post_types;
+ }
+
+ if ( $post_types_differ_query ) {
+ $filters = Helper::ensure_post_types_on_remove_url( $filters, $post_types );
+ } else {
+ $filters = Helper::remove_active_from_post_type_buckets( $filters );
+ }
+ } else {
+ $post_types = array();
+ }
+
+ foreach ( (array) $filters as $filter ) {
+ if ( 'post_type' === $filter['type'] ) {
+ self::render_filter( $filter, $post_types );
+ } else {
+ self::render_filter( $filter, $active_post_types );
+ }
+ }
+ }
+
+ /**
+ * Renders filters for instant search.
+ *
+ * @param array $filters The available filters for the current query.
+ */
+ public static function render_instant_filters( $filters = null ) {
+ if ( is_null( $filters ) ) {
+ // TODO: Must be migrated to use Classic_Search once the migration is underway.
+ $filters = \Jetpack_Search::instance()->get_filters();
+ }
+
+ foreach ( (array) $filters as $filter ) {
+ self::render_instant_filter( $filter );
+ }
+ }
+
+ /**
+ * Renders a single filter that can be applied to the current search.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filter The filter to render.
+ * @param array $default_post_types The default post types for this filter.
+ */
+ public static function render_filter( $filter, $default_post_types ) {
+ if ( empty( $filter ) || empty( $filter['buckets'] ) ) {
+ return;
+ }
+
+ $query_vars = null;
+ foreach ( $filter['buckets'] as $item ) {
+ if ( $item['active'] ) {
+ $query_vars = array_keys( $item['query_vars'] );
+ break;
+ }
+ }
+ $clear_url = null;
+ if ( ! empty( $query_vars ) ) {
+ $clear_url = Helper::remove_query_arg( $query_vars );
+ if ( ! empty( $default_post_types ) ) {
+ $clear_url = Helper::add_post_types_to_url( $clear_url, $default_post_types );
+ }
+ }
+
+ ?>
+ <h4 class="jetpack-search-filters-widget__sub-heading">
+ <?php echo esc_html( $filter['name'] ); ?>
+ </h4>
+ <?php if ( $clear_url ) : ?>
+ <div class="jetpack-search-filters-widget__clear">
+ <a href="<?php echo esc_url( $clear_url ); ?>">
+ <?php esc_html_e( '< Clear Filters', 'jetpack-search-pkg' ); ?>
+ </a>
+ </div>
+ <?php endif; ?>
+ <ul class="jetpack-search-filters-widget__filter-list">
+ <?php
+ foreach ( $filter['buckets'] as $item ) :
+ $url = ( empty( $item['active'] ) ) ? $item['url'] : $item['remove_url'];
+ ?>
+ <li>
+ <label>
+ <input type="checkbox"<?php checked( ! empty( $item['active'] ) ); ?> disabled="disabled" />&nbsp;
+ <a href="<?php echo esc_url( $url ); ?>">
+ <?php
+ echo esc_html( $item['name'] );
+ echo '&nbsp;';
+ echo esc_html(
+ sprintf(
+ '(%s)',
+ number_format_i18n( absint( $item['count'] ) )
+ )
+ );
+ ?>
+ </a>
+ </label>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <?php
+ }
+
+ /**
+ * Renders a single filter for instant search.
+ *
+ * @since 8.3.0
+ *
+ * @param array $filter The filter to render.
+ */
+ public static function render_instant_filter( $filter ) {
+ if ( empty( $filter ) || empty( $filter['buckets'] ) ) {
+ return;
+ }
+
+ $data_base = '';
+ $qv = $filter['buckets'][0]['query_vars'];
+ $tax_key = '';
+ switch ( $filter['buckets'][0]['type'] ) {
+ case 'taxonomy':
+ $data_base = 'data-filter-type="' . esc_attr( $filter['buckets'][0]['type'] ) . '" ';
+ $tax_key = key( $qv );
+ if ( 'category_name' === $tax_key ) {
+ $data_base .= 'data-taxonomy="category"';
+ } elseif ( 'tag' === $tax_key ) {
+ $data_base .= 'data-taxonomy="post_tag"';
+ } else {
+ $data_base .= 'data-taxonomy="' . esc_attr( $tax_key ) . '"';
+ }
+ break;
+ case 'post_type':
+ $data_base = 'data-filter-type="post_types" ';
+ break;
+ case 'date_histogram':
+ if ( $filter['buckets'][0]['query_vars']['monthnum'] ) {
+ $data_base = 'data-filter-type="month_post_date" ';
+ } else {
+ $data_base = 'data-filter-type="year_post_date" ';
+ }
+ break;
+ }
+
+ ?>
+ <h4 class="jetpack-search-filters-widget__sub-heading">
+ <?php echo esc_html( $filter['name'] ); ?>
+ </h4>
+ <ul class="jetpack-search-filters-widget__filter-list">
+ <?php
+ foreach ( $filter['buckets'] as $item ) :
+ $data_str = $data_base . ' ';
+ switch ( $filter['buckets'][0]['type'] ) {
+ case 'taxonomy':
+ $data_str .= 'data-val="' . esc_attr( $item['query_vars'][ $tax_key ] ) . '"';
+ break;
+ case 'post_type':
+ $data_str .= 'data-val="' . esc_attr( $item['query_vars']['post_type'] ) . '"';
+ break;
+ case 'date_histogram':
+ if ( $item['query_vars']['monthnum'] ) {
+ $d = sprintf( '%d-%02d-01 00:00:00', $item['query_vars']['year'], $item['query_vars']['monthnum'] );
+ } else {
+ $d = sprintf( '%d-01-01 00:00:00', $item['query_vars']['year'] );
+ }
+ $data_str .= 'data-val="' . esc_attr( $d ) . '" ';
+ break;
+ }
+ ?>
+ <li>
+ <?php // TODO: Figure out how to properly escape $data_str below. ?>
+ <a href="#" class="jetpack-search-filter__link" <?php echo $data_str; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>>
+ <?php
+ echo esc_html( $item['name'] );
+ echo '&nbsp;';
+ echo esc_html(
+ sprintf(
+ '(%s)',
+ number_format_i18n( absint( $item['count'] ) )
+ )
+ );
+ ?>
+ </a>
+ </li>
+ <?php endforeach; ?>
+ </ul>
+ <?php
+ }
+
+ /**
+ * Outputs the search widget's title.
+ *
+ * @since 5.8.0
+ *
+ * @param string $title The widget's title.
+ * @param string $before_title The HTML tag to display before the title.
+ * @param string $after_title The HTML tag to display after the title.
+ */
+ public static function render_widget_title( $title, $before_title, $after_title ) {
+ // This doesn't need to be escaped because it's provided by WP and goes through filters, where it is not escaped.
+ echo $before_title . $title . $after_title; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ /**
+ * Responsible for rendering the search box within our widget on the frontend.
+ *
+ * @since 5.8.0
+ *
+ * @param array $post_types Array of post types to limit search results to.
+ * @param string $orderby How to order the search results.
+ * @param string $order In what direction to order the search results.
+ */
+ public static function render_widget_search_form( $post_types, $orderby, $order ) {
+ $form = get_search_form( false );
+
+ $fields_to_inject = array(
+ 'orderby' => $orderby,
+ 'order' => $order,
+ );
+
+ // If the widget has specified post types to search within and IF the post types differ
+ // from the default post types that would have been searched, set the selected post
+ // types via hidden inputs.
+ if ( Helper::post_types_differ_searchable( $post_types ) ) {
+ $fields_to_inject['post_type'] = implode( ',', $post_types );
+ }
+
+ $form = self::inject_hidden_form_fields( $form, $fields_to_inject );
+
+ echo '<div class="jetpack-search-form">';
+ // TODO: Figure out how to properly escape this.
+ echo $form; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo '</div>';
+ }
+
+ /**
+ * Modifies an HTML form to add some additional hidden fields.
+ *
+ * @since 5.8.0
+ *
+ * @param string $form The form HTML to modify.
+ * @param array $fields Array of hidden fields to add. Key is field name and value is the field value.
+ *
+ * @return string The modified form HTML.
+ */
+ private static function inject_hidden_form_fields( $form, $fields ) {
+ $form_injection = '';
+
+ foreach ( $fields as $field_name => $field_value ) {
+ $form_injection .= sprintf(
+ '<input type="hidden" name="%s" value="%s" />',
+ esc_attr( $field_name ),
+ esc_attr( $field_value )
+ );
+ }
+
+ // This shouldn't need to be escaped since we've escaped above as we built $form_injection.
+ $form = str_replace(
+ '</form>',
+ $form_injection . '</form>',
+ $form
+ );
+
+ return $form;
+ }
+
+ /**
+ * Internal method for filtering out non-post_type filters.
+ *
+ * @since 5.8.0
+ *
+ * @param array $filter Filter object.
+ *
+ * @return bool
+ */
+ private static function is_not_post_type_filter( $filter ) {
+ return 'post_type' !== $filter['type'];
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/button/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/button/index.jsx
new file mode 100644
index 00000000..d945554f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/button/index.jsx
@@ -0,0 +1,52 @@
+/**
+ * External dependencies
+ */
+import PropTypes from 'prop-types';
+import React from 'react';
+import classNames from 'classnames';
+import { noop } from 'lodash';
+
+/**
+ * Internal dependencies
+ */
+import './style.scss';
+
+export default class Button extends React.Component {
+ static displayName = 'Button';
+
+ static propTypes = {
+ disabled: PropTypes.bool,
+ compact: PropTypes.bool,
+ primary: PropTypes.bool,
+ scary: PropTypes.bool,
+ type: PropTypes.string,
+ href: PropTypes.string,
+ onClick: PropTypes.func,
+ borderless: PropTypes.bool,
+ className: PropTypes.string,
+ };
+
+ static defaultProps = {
+ disabled: false,
+ type: 'button',
+ onClick: noop,
+ borderless: false,
+ };
+
+ render() {
+ const element = this.props.href ? 'a' : 'button';
+ const { primary, compact, scary, borderless, className, ...props } = this.props;
+
+ const buttonClasses = classNames( {
+ 'dops-button': true,
+ 'is-compact': compact,
+ 'is-primary': primary,
+ 'is-scary': scary,
+ 'is-borderless': borderless,
+ } );
+
+ props.className = classNames( className, buttonClasses );
+
+ return React.createElement( element, props, this.props.children );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/compact.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/compact.jsx
new file mode 100644
index 00000000..7bfacab4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/compact.jsx
@@ -0,0 +1,23 @@
+/**
+ * External dependencies
+ */
+import React from 'react';
+import { assign } from 'lodash';
+import classnames from 'classnames';
+
+/**
+ * Internal dependencies
+ */
+import Card from 'components/card';
+
+export default class CompactCard extends React.Component {
+ static displayName = 'CompactCard';
+
+ render() {
+ const props = assign( {}, this.props, {
+ className: classnames( this.props.className, 'is-compact' ),
+ } );
+
+ return <Card { ...props }>{ this.props.children }</Card>;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/index.jsx
new file mode 100644
index 00000000..e8dbf9e1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/card/index.jsx
@@ -0,0 +1,141 @@
+/**
+ * External dependencies
+ */
+import PropTypes from 'prop-types';
+import React from 'react';
+import classnames from 'classnames';
+import { assign, omit } from 'lodash';
+
+/**
+ * Internal dependencies
+ */
+// TODO change to our own gridicon component, when instant search is migrated.
+import Gridicon from 'gridicons';
+
+import './style.scss';
+
+class CardSection extends React.Component {
+ static propTypes = {
+ title: PropTypes.any,
+ vertical: PropTypes.any,
+ style: PropTypes.object,
+ className: PropTypes.string,
+ device: PropTypes.oneOf( [ 'desktop', 'tablet', 'phone' ] ),
+ };
+
+ static defaultProps = { vertical: null };
+
+ render() {
+ return (
+ <div
+ className={ classnames( 'dops-card-section', this.props.className ) }
+ style={ this.props.style }
+ >
+ { this.props.title ? this._renderWithTitle() : this.props.children }
+ </div>
+ );
+ }
+
+ _renderWithTitle = () => {
+ const orientation = this.props.vertical ? 'vertical' : 'horizontal';
+ const wrapperClassName = 'dops-card-section-orient-' + orientation;
+
+ return (
+ <div className={ wrapperClassName }>
+ <h4 ref="label" className="dops-card-section-label">
+ { this.props.title }
+ </h4>
+ <div ref="content" className="dops-card-section-content">
+ { this.props.children }
+ </div>
+ </div>
+ );
+ };
+}
+
+class CardFooter extends React.Component {
+ render() {
+ return <div className="dops-card-footer">{ this.props.children }</div>;
+ }
+}
+
+class Card extends React.Component {
+ static propTypes = {
+ meta: PropTypes.any,
+ icon: PropTypes.string,
+ iconLabel: PropTypes.any,
+ iconColor: PropTypes.string,
+ style: PropTypes.object,
+ className: PropTypes.string,
+ href: PropTypes.string,
+ onClick: PropTypes.func,
+ title: PropTypes.string,
+ tagName: PropTypes.string,
+ target: PropTypes.string,
+ compact: PropTypes.bool,
+ children: PropTypes.node,
+ };
+
+ static defaultProps = {
+ iconColor: '#787878',
+ className: '',
+ tagName: 'div',
+ onClick: () => {},
+ };
+
+ render() {
+ const className = classnames( 'dops-card', this.props.className, {
+ 'is-card-link': !! this.props.href,
+ 'is-compact': this.props.compact,
+ } );
+
+ const omitProps = [ 'compact', 'tagName', 'meta', 'iconColor' ];
+
+ let linkIndicator;
+ if ( this.props.href ) {
+ linkIndicator = (
+ <Gridicon
+ className="dops-card__link-indicator"
+ icon={ this.props.target ? 'external' : 'chevron-right' }
+ />
+ );
+ } else {
+ omitProps.push( 'href', 'target' );
+ }
+
+ let fancyTitle;
+ if ( this.props.title ) {
+ fancyTitle = (
+ <h2 className="dops-card-title">
+ { this.props.title }
+ { this.props.meta && <span className="dops-card-meta">{ this.props.meta }</span> }
+ { ( this.props.icon || this.props.iconLabel ) && this._renderIcon() }
+ </h2>
+ );
+ }
+
+ return React.createElement(
+ this.props.href ? 'a' : this.props.tagName,
+ assign( omit( this.props, omitProps ), { className } ),
+ linkIndicator,
+ fancyTitle,
+ this.props.children
+ );
+ }
+
+ _renderIcon = () => {
+ return (
+ <span className="dops-card-icon" style={ { color: this.props.iconColor } }>
+ { this.props.icon && (
+ <Gridicon icon={ this.props.icon } style={ { backgroundColor: this.props.iconColor } } />
+ ) }
+ { this.props.iconLabel }
+ </span>
+ );
+ };
+}
+
+Card.Section = CardSection;
+Card.Footer = CardFooter;
+
+export default Card;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/compact.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/compact.jsx
new file mode 100644
index 00000000..72341c8e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/compact.jsx
@@ -0,0 +1,26 @@
+/**
+ * External dependencies
+ */
+import React from 'react';
+import classNames from 'classnames';
+import { omit } from 'lodash';
+
+/**
+ * Internal dependencies
+ */
+import Toggle from 'components/form-toggle';
+
+export default class CompactFormToggle extends React.Component {
+ static displayName = 'CompactFormToggle';
+
+ render() {
+ return (
+ <Toggle
+ { ...omit( this.props, 'className' ) }
+ className={ classNames( this.props.className, 'is-compact' ) }
+ >
+ { this.props.children }
+ </Toggle>
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/index.jsx
new file mode 100644
index 00000000..31739fc8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/form-toggle/index.jsx
@@ -0,0 +1,126 @@
+/* eslint-disable jsx-a11y/click-events-have-key-events */
+/* eslint-disable jsx-a11y/no-static-element-interactions */
+
+/**
+ * External dependencies
+ */
+import PropTypes from 'prop-types';
+import React, { Component, Fragment } from 'react';
+import classNames from 'classnames';
+
+import './style.scss';
+
+export default class FormToggle extends Component {
+ static propTypes = {
+ onChange: PropTypes.func,
+ onKeyDown: PropTypes.func,
+ checked: PropTypes.bool,
+ disabled: PropTypes.bool,
+ id: PropTypes.string,
+ className: PropTypes.string,
+ toggling: PropTypes.bool,
+ 'aria-label': PropTypes.string,
+ children: PropTypes.node,
+ disabledReason: PropTypes.node,
+ switchClassNames: PropTypes.string,
+ labelClassNames: PropTypes.string,
+ };
+
+ static defaultProps = {
+ checked: false,
+ disabled: false,
+ onKeyDown: () => {},
+ onChange: () => {},
+ disabledReason: '',
+ };
+
+ state = {};
+
+ static idNum = 0;
+
+ constructor() {
+ super( ...arguments );
+
+ this.onKeyDown = this.onKeyDown.bind( this );
+ this.onClick = this.onClick.bind( this );
+ this.onLabelClick = this.onLabelClick.bind( this );
+ }
+
+ UNSAFE_componentWillMount() {
+ this.id = this.constructor.idNum++;
+ }
+
+ onKeyDown( event ) {
+ if ( this.props.disabled ) {
+ return;
+ }
+
+ if ( event.key === 'Enter' || event.key === ' ' ) {
+ event.preventDefault();
+ this.props.onChange();
+ }
+
+ this.props.onKeyDown( event );
+ }
+
+ onClick() {
+ if ( ! this.props.disabled ) {
+ this.props.onChange();
+ }
+ }
+
+ onLabelClick( event ) {
+ if ( this.props.disabled ) {
+ return;
+ }
+
+ const nodeName = event.target.nodeName.toLowerCase();
+ if ( nodeName !== 'a' && nodeName !== 'input' && nodeName !== 'select' ) {
+ event.preventDefault();
+ this.props.onChange();
+ }
+ }
+
+ render() {
+ const id = this.props.id || 'toggle-' + this.id;
+ const toggleClasses = classNames( 'form-toggle', this.props.className, {
+ 'is-toggling': this.props.toggling,
+ } );
+
+ return (
+ <Fragment>
+ <input
+ className={ toggleClasses }
+ type="checkbox"
+ checked={ this.props.checked }
+ readOnly={ true }
+ disabled={ this.props.disabled }
+ />
+
+ <span
+ className={ classNames( 'form-toggle__switch', this.props.switchClassNames ) }
+ disabled={ this.props.disabled }
+ id={ id }
+ onClick={ this.onClick }
+ onKeyDown={ this.onKeyDown }
+ role="checkbox"
+ aria-checked={ this.props.checked }
+ aria-label={ this.props[ 'aria-label' ] }
+ tabIndex={ this.props.disabled ? -1 : 0 }
+ ref="toggleSwitch"
+ />
+ <label
+ className={ classNames( 'form-toggle__label', this.props.labelClassNames ) }
+ htmlFor={ id }
+ >
+ <span
+ className={ classNames( 'form-toggle__label-content', this.props.labelClassNames ) }
+ onClick={ this.onLabelClick }
+ >
+ { this.props.children }
+ </span>
+ </label>
+ </Fragment>
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/index.jsx
new file mode 100644
index 00000000..c0df631a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/index.jsx
@@ -0,0 +1,55 @@
+/**
+ * External Dependencies
+ */
+import React from 'react';
+
+/**
+ * Internal Dependencies
+ */
+import SimpleNotice from 'components/notice/index.jsx';
+import NoticeAction from 'components/notice/notice-action';
+
+import './style.scss';
+
+/**
+ * NoticesList component
+ *
+ * @param {*} props - Props
+ * @returns {React.Component} - NoticesList component
+ */
+export default function NoticesList(
+ props = { handleLocalNoticeDismissClick: null, notices: Object.freeze( [] ) }
+) {
+ const noticesList = props.notices.map( function ( notice ) {
+ const onDismissClick = theNotice => () => {
+ theNotice && props.handleLocalNoticeDismissClick( theNotice.id );
+ };
+ return (
+ <SimpleNotice
+ key={ 'notice-' + notice.id }
+ status={ notice.status }
+ duration={ notice.duration || null }
+ text={ notice.text }
+ isCompact={ notice.isCompact }
+ onDismissClick={ onDismissClick( notice ) }
+ showDismiss={ notice.showDismiss }
+ >
+ { notice.button && (
+ <NoticeAction href={ notice.href } onClick={ onDismissClick( notice ) }>
+ { notice.button }
+ </NoticeAction>
+ ) }
+ </SimpleNotice>
+ );
+ } );
+
+ if ( ! noticesList.length ) {
+ return null;
+ }
+
+ return (
+ <div id={ props.id } className="global-notices">
+ { noticesList }
+ </div>
+ );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/actions.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/actions.js
new file mode 100644
index 00000000..09c739d0
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/actions.js
@@ -0,0 +1,61 @@
+/**
+ * External dependencies
+ */
+import { uniqueId } from 'lodash';
+import { __ } from '@wordpress/i18n';
+
+export const CREATE_NOTICE = 'CREATE_NOTICE';
+export const REMOVE_NOTICE = 'REMOVE_NOTICE';
+
+/**
+ * Create global notice
+ *
+ * @param {*} status - success, error, info or warning.
+ * @param {*} text - the text to show.
+ * @param {*} options - Options.
+ * @returns {object} - action object.
+ */
+export function createNotice( status, text, options = {} ) {
+ const notice = {
+ id: options.id || uniqueId(),
+ duration: options.duration ?? 2000,
+ showDismiss: typeof options.showDismiss === 'boolean' ? options.showDismiss : true,
+ isPersistent: options.isPersistent || false,
+ displayOnNextPage: options.displayOnNextPage || false,
+ status: status,
+ text: text,
+ };
+
+ return {
+ type: CREATE_NOTICE,
+ notice: notice,
+ };
+}
+
+/**
+ * Remove notice by ID
+ *
+ * @param {*} noticeId - noticeID.
+ * @returns {object} - action object.
+ */
+export function removeNotice( noticeId ) {
+ return { type: REMOVE_NOTICE, notice: { id: noticeId } };
+}
+
+export const successNotice = createNotice.bind( null, 'is-success' );
+export const errorNotice = createNotice.bind( null, 'is-error' );
+export const infoNotice = createNotice.bind( null, 'is-info' );
+export const warningNotice = createNotice.bind( null, 'is-warning' );
+export const updatingNotice = ( text = __( 'Updating settings…', 'jetpack-search-pkg' ) ) =>
+ createNotice( 'is-info', text, { duration: 30000, id: 'search-updating-settings' } );
+export const removeUpdatingNotice = () => removeNotice( 'search-updating-settings' );
+
+export default {
+ createNotice,
+ removeNotice,
+ successNotice,
+ errorNotice,
+ warningNotice,
+ updatingNotice,
+ removeUpdatingNotice,
+};
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/reducer.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/reducer.js
new file mode 100644
index 00000000..e0749197
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/reducer.js
@@ -0,0 +1,22 @@
+/**
+ * Internal dependencies
+ */
+import { CREATE_NOTICE, REMOVE_NOTICE } from './actions';
+
+const notices = ( state = { notices: [] }, action ) => {
+ switch ( action.type ) {
+ case CREATE_NOTICE:
+ return {
+ ...state,
+ notices: [ ...state.notices, action.notice ],
+ };
+ case REMOVE_NOTICE:
+ return {
+ ...state,
+ notices: state.notices.filter( notice => notice.id !== action.notice.id ),
+ };
+ }
+ return state;
+};
+
+export default notices;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/selectors.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/selectors.js
new file mode 100644
index 00000000..da2d9829
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/global-notices/store/selectors.js
@@ -0,0 +1,5 @@
+const noticeSelectors = {
+ getNotices: state => state.notices.notices ?? [],
+};
+
+export default noticeSelectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/index.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/index.jsx
new file mode 100644
index 00000000..9c1b2e88
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/index.jsx
@@ -0,0 +1,136 @@
+/**
+ * External dependencies
+ */
+import PropTypes from 'prop-types';
+import React from 'react';
+import classnames from 'classnames';
+import { noop } from 'lodash';
+
+/**
+ * Internal dependencies
+ */
+// TODO change to our own gridicon component, when instant search is migrated.
+import Gridicon from 'gridicons';
+import './style.scss';
+
+export default class SimpleNotice extends React.Component {
+ static displayName = 'SimpleNotice';
+
+ static defaultProps = {
+ duration: 0,
+ status: null,
+ showDismiss: true,
+ className: '',
+ onDismissClick: noop,
+ };
+
+ static propTypes = {
+ // we should validate the allowed statuses
+ status: PropTypes.string,
+ showDismiss: PropTypes.bool,
+ isCompact: PropTypes.bool,
+ duration: PropTypes.number,
+ text: PropTypes.oneOfType( [
+ PropTypes.oneOfType( [ PropTypes.string, PropTypes.node ] ),
+ PropTypes.arrayOf( PropTypes.oneOfType( [ PropTypes.string, PropTypes.node ] ) ),
+ ] ),
+ icon: PropTypes.string,
+ onDismissClick: PropTypes.func,
+ className: PropTypes.string,
+ };
+
+ dismissTimeout = null;
+
+ componentDidMount() {
+ if ( this.props.duration > 0 ) {
+ this.dismissTimeout = setTimeout( this.props.onDismissClick, this.props.duration );
+ }
+ }
+
+ componentWillUnmount() {
+ if ( this.dismissTimeout ) {
+ clearTimeout( this.dismissTimeout );
+ }
+ }
+
+ getIcon = () => {
+ let icon;
+
+ switch ( this.props.status ) {
+ case 'is-info':
+ icon = 'info';
+ break;
+ case 'is-success':
+ icon = 'checkmark';
+ break;
+ case 'is-error':
+ icon = 'notice';
+ break;
+ case 'is-warning':
+ icon = 'notice';
+ break;
+ default:
+ icon = 'info';
+ break;
+ }
+
+ return icon;
+ };
+
+ clearText = text => {
+ if ( 'string' === typeof text ) {
+ return text.replace( /(<([^>]+)>)/gi, '' );
+ }
+ return text;
+ };
+
+ onKeyDownCallback = callback => event => {
+ if ( event.which === 13 || event.which === 32 ) {
+ callback && callback( event );
+ }
+ };
+
+ render() {
+ const {
+ children,
+ className,
+ icon,
+ isCompact,
+ onDismissClick,
+ showDismiss = ! isCompact, // by default, show on normal notices, don't show on compact ones
+ status,
+ text,
+ dismissText,
+ } = this.props;
+ const classes = classnames( 'dops-notice', status, className, {
+ 'is-compact': isCompact,
+ 'is-dismissable': showDismiss,
+ } );
+
+ return (
+ <div className={ classes }>
+ <span className="dops-notice__icon-wrapper">
+ <Gridicon className="dops-notice__icon" icon={ icon || this.getIcon() } size={ 24 } />
+ </span>
+ <span className="dops-notice__content">
+ <span className="dops-notice__text">{ text ? this.clearText( text ) : children }</span>
+ </span>
+ { text ? children : null }
+ { showDismiss && (
+ <span
+ role="button"
+ onKeyDown={ this.onKeyDownCallback( onDismissClick ) }
+ tabIndex="0"
+ className="dops-notice__dismiss"
+ onClick={ onDismissClick }
+ >
+ <Gridicon icon="cross" size={ 24 } />
+ <span className="dops-notice__screen-reader-text screen-reader-text">
+ { dismissText }
+ </span>
+ </span>
+ ) }
+ </div>
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/notice-action.jsx b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/notice-action.jsx
new file mode 100644
index 00000000..5a3e8ebb
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/components/notice/notice-action.jsx
@@ -0,0 +1,48 @@
+/**
+ * External dependencies
+ */
+import PropTypes from 'prop-types';
+import React from 'react';
+
+/**
+ * Internal dependencies
+ */
+// TODO change to our own gridicon component, when instant search is migrated.
+import Gridicon from 'gridicons';
+
+import './style.scss';
+
+export default class NoticeAction extends React.Component {
+ static displayName = 'NoticeAction';
+
+ static propTypes = {
+ href: PropTypes.string,
+ onClick: PropTypes.func,
+ external: PropTypes.bool,
+ icon: PropTypes.string,
+ };
+
+ static defaultProps = {
+ external: false,
+ };
+
+ render() {
+ const attributes = {
+ className: 'dops-notice__action',
+ href: this.props.href,
+ onClick: this.props.onClick,
+ };
+
+ if ( this.props.external ) {
+ attributes.target = '_blank';
+ }
+
+ return (
+ <a { ...attributes }>
+ <span>{ this.props.children }</span>
+ { this.props.icon && <Gridicon icon={ this.props.icon } size={ 24 } /> }
+ { this.props.external && <Gridicon icon="external" size={ 24 } /> }
+ </a>
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/index.js
new file mode 100644
index 00000000..3b831225
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/index.js
@@ -0,0 +1,14 @@
+/**
+ * Internal dependencies
+ */
+import siteSettingActions from './jetpack-settings';
+import sitePlanActions from './site-plan';
+import noticeActions from 'components/global-notices/store/actions';
+
+const actions = {
+ ...siteSettingActions,
+ ...sitePlanActions,
+ ...noticeActions,
+};
+
+export default actions;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/jetpack-settings.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/jetpack-settings.js
new file mode 100644
index 00000000..acf807a9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/jetpack-settings.js
@@ -0,0 +1,73 @@
+/**
+ * Internal dependencies
+ */
+import {
+ fetchJetpackSettings,
+ updateJetpackSettings as updateJetpackSettingsControl,
+} from '../controls';
+import {
+ removeUpdatingNotice,
+ updatingNotice,
+ errorNotice,
+ successNotice,
+} from 'components/global-notices/store/actions';
+import { __ } from '@wordpress/i18n';
+
+export const SET_JETPACK_SETTINGS = 'SET_JETPACK_SETTINGS';
+export const TOGGLE_SEARCH_MODULE = 'TOGGLE_SEARCH_MODULE';
+
+/**
+ * Yield actions to update Search Settings
+ *
+ * @param {object} settings - settings to apply.
+ * @param {object} oldSettings - Old settings.
+ * @yields {object} - an action object.
+ * @returns {object} - an action object.
+ */
+export function* updateJetpackSettings( settings, oldSettings ) {
+ try {
+ yield updatingNotice();
+ yield setJetpackSettings( settings );
+ yield setUpdatingJetpackSettings();
+ yield updateJetpackSettingsControl( settings );
+ const updatedSettings = yield fetchJetpackSettings();
+ yield setJetpackSettings( updatedSettings );
+ return successNotice( __( 'Updated settings.', 'jetpack-search-pkg' ) );
+ } catch ( e ) {
+ yield setJetpackSettings( oldSettings );
+ return errorNotice( __( 'Error Update settings…', 'jetpack-search-pkg' ) );
+ } finally {
+ yield removeUpdatingNotice();
+ yield setUpdatingJetpackSettingsDone();
+ }
+}
+
+/**
+ * Set state updating action
+ *
+ * @returns {object} - an action object.
+ */
+export function setUpdatingJetpackSettings() {
+ return setJetpackSettings( { is_updating: true } );
+}
+
+/**
+ * Set state updating finished
+ *
+ * @returns {object} - an action object.
+ */
+export function setUpdatingJetpackSettingsDone() {
+ return setJetpackSettings( { is_updating: false } );
+}
+
+/**
+ * Set Jetpack settings action
+ *
+ * @param {object} options - Jetpack settings.
+ * @returns {object} - an action object.
+ */
+export function setJetpackSettings( options ) {
+ return { type: SET_JETPACK_SETTINGS, options };
+}
+
+export default { updateJetpackSettings, setJetpackSettings };
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/site-plan.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/site-plan.js
new file mode 100644
index 00000000..b59c630e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/actions/site-plan.js
@@ -0,0 +1,16 @@
+export const SET_SEARCH_PLAN_INFO = 'SET_SEARCH_PLAN_INFO';
+
+/**
+ * Action to set plan info
+ *
+ * @param {*} options - plan info.
+ * @returns {object} - an action object.
+ */
+export function setSearchPlanInfo( options ) {
+ return {
+ type: 'SET_SEARCH_PLAN_INFO',
+ options,
+ };
+}
+
+export default { setSearchPlanInfo };
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/controls.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/controls.js
new file mode 100644
index 00000000..055f975c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/controls.js
@@ -0,0 +1,55 @@
+/**
+ * Internal dependencies
+ */
+import restApi from '@automattic/jetpack-api';
+
+export const FETCH_JETPACK_SETTINGS = 'FETCH_JETPACK_SETTINGS';
+export const UPDATE_JETPACK_SETTINGS = 'UPDATE_JETPACK_SETTINGS';
+export const FETCH_SEARCH_PLAN_INFO = 'FETCH_SEARCH_PLAN_INFO';
+
+/**
+ * fetchJetpackSettings action
+ *
+ * @returns {object} - an action object.
+ */
+export const fetchJetpackSettings = () => {
+ return {
+ type: FETCH_JETPACK_SETTINGS,
+ };
+};
+
+/**
+ * updateJetpackSettings action
+ *
+ * @param {*} settings - Jetpack settings object.
+ * @returns {object} - an action object.
+ */
+export const updateJetpackSettings = settings => {
+ return {
+ type: UPDATE_JETPACK_SETTINGS,
+ settings,
+ };
+};
+
+/**
+ * fetchSearchPlanInfo action
+ *
+ * @returns {object} - an action object.
+ */
+export const fetchSearchPlanInfo = () => {
+ return {
+ type: FETCH_SEARCH_PLAN_INFO,
+ };
+};
+
+export default {
+ [ FETCH_JETPACK_SETTINGS ]: function () {
+ return restApi.fetchSearchSettings();
+ },
+ [ UPDATE_JETPACK_SETTINGS ]: function ( action ) {
+ return restApi.updateSearchSettings( action.settings );
+ },
+ [ FETCH_SEARCH_PLAN_INFO ]: function () {
+ return restApi.fetchSearchPlanInfo();
+ },
+};
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/index.js
new file mode 100644
index 00000000..56b96527
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/index.js
@@ -0,0 +1,18 @@
+/**
+ * Internal dependencies
+ */
+import reducer from './reducer';
+import actions from './actions';
+import selectors from './selectors';
+import resolvers from './resolvers';
+import controls from './controls';
+
+export const STORE_ID = 'jetpack-search-plugin';
+export const storeConfig = {
+ reducer,
+ actions,
+ selectors,
+ resolvers,
+ controls,
+ initialState: window.JETPACK_SEARCH_DASHBOARD_INITIAL_STATE || {},
+};
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/index.js
new file mode 100644
index 00000000..cf734005
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/index.js
@@ -0,0 +1,23 @@
+/**
+ * WordPress dependencies
+ */
+import { combineReducers } from '@wordpress/data';
+
+/**
+ * Internal dependencies
+ */
+import siteData from './site-data';
+import userData from './user-data';
+import jetpackSettings from './jetpack-settings';
+import sitePlan from './site-plan';
+import notices from 'components/global-notices/store/reducer';
+
+const reducer = combineReducers( {
+ siteData,
+ jetpackSettings,
+ sitePlan,
+ userData,
+ notices,
+} );
+
+export default reducer;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/jetpack-settings.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/jetpack-settings.js
new file mode 100644
index 00000000..1a1fc138
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/jetpack-settings.js
@@ -0,0 +1,22 @@
+/**
+ * Internal dependencies
+ */
+import { SET_JETPACK_SETTINGS } from '../actions/jetpack-settings';
+
+const jetpackSettings = ( state = {}, action ) => {
+ switch ( action.type ) {
+ case SET_JETPACK_SETTINGS:
+ return {
+ ...state,
+ ...action.options,
+ is_toggling_module:
+ state.module_active !== action.options.module_active && !! action.options.is_updating,
+ is_toggling_instant_search:
+ state.instant_search_enabled !== action.options.instant_search_enabled &&
+ !! action.options.is_updating,
+ };
+ }
+ return state;
+};
+
+export default jetpackSettings;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-data.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-data.js
new file mode 100644
index 00000000..8e1a578d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-data.js
@@ -0,0 +1,5 @@
+const siteData = ( state = {} ) => {
+ return state;
+};
+
+export default siteData;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-plan.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-plan.js
new file mode 100644
index 00000000..9fff3d43
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/site-plan.js
@@ -0,0 +1,18 @@
+/**
+ * Internal dependencies
+ */
+import { SET_SEARCH_PLAN_INFO } from '../actions/site-plan';
+
+const sitePlan = ( state = {}, action ) => {
+ switch ( action.type ) {
+ case SET_SEARCH_PLAN_INFO:
+ return {
+ ...state,
+ ...action.options,
+ };
+ }
+
+ return state;
+};
+
+export default sitePlan;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/user-data.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/user-data.js
new file mode 100644
index 00000000..17af1898
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/reducer/user-data.js
@@ -0,0 +1,5 @@
+const userData = ( state = {} ) => {
+ return state;
+};
+
+export default userData;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/resolvers.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/resolvers.js
new file mode 100644
index 00000000..3c5272bc
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/resolvers.js
@@ -0,0 +1,48 @@
+/**
+ * External dependencies
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Internal dependencies
+ */
+import { fetchJetpackSettings, fetchSearchPlanInfo } from './controls';
+import { setJetpackSettings } from './actions/jetpack-settings';
+import { setSearchPlanInfo } from './actions/site-plan';
+import { errorNotice } from '../components/global-notices/store/actions';
+
+/**
+ * Yield actions to get Search Module Status
+ *
+ * @yields {object} - an action object.
+ * @returns {object} - an action object.
+ */
+export function* getSearchModuleStatus() {
+ try {
+ const settings = yield fetchJetpackSettings();
+ if ( settings ) {
+ return setJetpackSettings( settings );
+ }
+ } catch ( e ) {
+ return errorNotice( __( 'Error fetching settings…', 'jetpack-search-pkg' ) );
+ }
+}
+
+/**
+ * Yield actions to get search plan info
+ *
+ * @yields {object} - an action object.
+ * @returns {object} - an action object.
+ */
+export function* getSearchPlanInfo() {
+ try {
+ const planInfo = yield fetchSearchPlanInfo();
+ if ( planInfo ) {
+ return setSearchPlanInfo( planInfo );
+ }
+ } catch ( e ) {
+ return errorNotice( __( 'Error fetching search plan…', 'jetpack-search-pkg' ) );
+ }
+}
+
+export default { getSearchModuleStatus, getSearchPlanInfo };
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/index.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/index.js
new file mode 100644
index 00000000..8020ea19
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/index.js
@@ -0,0 +1,18 @@
+/**
+ * Internal dependencies
+ */
+import siteDataSelectors from './site-data';
+import jetpackSettingSelectors from './jetpack-settings';
+import sitePlanSelectors from './site-plan';
+import userDataSelectors from './user-data';
+import noticeSelectors from 'components/global-notices/store/selectors';
+
+const selectors = {
+ ...siteDataSelectors,
+ ...jetpackSettingSelectors,
+ ...sitePlanSelectors,
+ ...userDataSelectors,
+ ...noticeSelectors,
+};
+
+export default selectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/jetpack-settings.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/jetpack-settings.js
new file mode 100644
index 00000000..6cd876c4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/jetpack-settings.js
@@ -0,0 +1,10 @@
+const jetpackSettingSelectors = {
+ getSearchModuleStatus: state => state.jetpackSettings,
+ isModuleEnabled: state => state.jetpackSettings.module_active,
+ isInstantSearchEnabled: state => state.jetpackSettings.instant_search_enabled,
+ isUpdatingJetpackSettings: state => state.jetpackSettings.is_updating,
+ isTogglingModule: state => state.jetpackSettings.is_toggling_module,
+ isTogglingInstantSearch: state => state.jetpackSettings.is_toggling_instant_search,
+};
+
+export default jetpackSettingSelectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-data.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-data.js
new file mode 100644
index 00000000..5669e52d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-data.js
@@ -0,0 +1,12 @@
+const siteDataSelectors = {
+ getAPIRootUrl: state => state.siteData?.WP_API_root ?? null,
+ getAPINonce: state => state.siteData?.WP_API_nonce ?? null,
+ getRegistrationNonce: state => state.siteData?.registrationNonce ?? null,
+ getSiteAdminUrl: state => state.siteData?.adminUrl ?? null,
+ isInstantSearchPromotionActive: state => state.siteData?.showPromotions ?? true,
+ getBlogId: state => state.siteData?.blogId ?? 0,
+ getVersion: state => state.siteData?.version ?? 'development',
+ getCalypsoSlug: state => state.siteData?.calypsoSlug,
+};
+
+export default siteDataSelectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-plan.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-plan.js
new file mode 100644
index 00000000..32d24989
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/site-plan.js
@@ -0,0 +1,12 @@
+const sitePlanSelectors = {
+ getSearchPlanInfo: state => state.sitePlan,
+ hasBusinessPlan: state => state.sitePlan.supports_only_classic_search,
+ hasActiveSearchPurchase: state => state.sitePlan.supports_instant_search,
+ supportsInstantSearch: state => state.sitePlan.supports_instant_search,
+ supportsOnlyClassicSearch: state => state.sitePlan.supports_only_classic_search,
+ getUpgradeBillPeriod: state => state.sitePlan?.default_upgrade_bill_period,
+ supportsSearch: state =>
+ state.sitePlan.supports_instant_search || state.sitePlan.supports_only_classic_search,
+};
+
+export default sitePlanSelectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/user-data.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/user-data.js
new file mode 100644
index 00000000..6e5ac9d3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/dashboard/store/selectors/user-data.js
@@ -0,0 +1,5 @@
+const userDataSelectors = {
+ getWpcomUser: state => state.userData?.currentUser?.wpcomUser,
+};
+
+export default userDataSelectors;
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php
new file mode 100644
index 00000000..faa405ad
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php
@@ -0,0 +1,430 @@
+<?php
+/**
+ * Provides an interface for easily building a complex search query that
+ * combines multiple ranking signals.
+ *
+ * $bldr = new Query_Builder();
+ * $bldr->add_filter( ... );
+ * $bldr->add_filter( ... );
+ * $bldr->add_query( ... );
+ * $es_query = $bldr->build_query();
+ *
+ *
+ * All ES queries take a standard form with main query (with some filters),
+ * wrapped in a function_score
+ *
+ * Most functions are chainable, e.g. $bldr->add_filter( ... )->add_query( ... )->build_query();
+ *
+ * Bucketed queries use an aggregation to diversify results. eg a bunch
+ * of separate filters where to get different sets of results.
+ *
+ * @package automattic/jetpack-search
+ */
+
+// Disables comment checks.
+// phpcs:disable Squiz.Commenting
+
+namespace Automattic\Jetpack\Search\WPES;
+
+/**
+ * Query builder class.
+ */
+class Query_Builder {
+ /**
+ * ElasticSerach filters.
+ *
+ * @var array
+ */
+ protected $es_filters = array();
+
+ //
+ // Variables for handling custom boosting with function_score.
+ //
+ protected $functions = array();
+ protected $weighting_functions = array();
+ protected $decays = array();
+ protected $scripts = array();
+ protected $functions_max_boost = 2.0;
+ protected $functions_score_mode = 'multiply';
+ protected $functions_boost_mode = 'multiply';
+ protected $query_bool_boost = null;
+
+ //
+ // General aggregations for buckets and metrics.
+ //
+ protected $aggs_query = false;
+ protected $aggs = array();
+
+ //
+ // The set of top level text queries to combine.
+ //
+ protected $must_queries = array();
+ protected $should_queries = array();
+ protected $dis_max_queries = array();
+
+ protected $diverse_buckets_query = false;
+ protected $bucket_filters = array();
+ protected $bucket_sub_aggs = array();
+
+ public function get_langs() {
+ if ( isset( $this->langs ) ) {
+ return $this->langs;
+ }
+ return false;
+ }
+
+ //
+ // Methods for building a query.
+ //
+ public function add_filter( $filter ) {
+ $this->es_filters[] = $filter;
+
+ return $this;
+ }
+
+ public function add_query( $query, $type = 'must' ) {
+ switch ( $type ) {
+ case 'dis_max':
+ $this->dis_max_queries[] = $query;
+ break;
+
+ case 'should':
+ $this->should_queries[] = $query;
+ break;
+
+ case 'must':
+ default:
+ $this->must_queries[] = $query;
+ break;
+ }
+
+ return $this;
+ }
+
+ /**
+ * Add any weighting function to the query
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
+ *
+ * @param $function array A function structure to apply to the query
+ *
+ * @return void
+ */
+ public function add_weighting_function( $function ) {
+ // check for danger.
+ if ( isset( $function['random_score'] ) ) {
+ return $this;
+ }
+ if ( isset( $function['script_score'] ) ) {
+ return $this;
+ }
+
+ $this->weighting_functions[] = $function;
+
+ return $this;
+ }
+
+ /**
+ * Add a scoring function to the query
+ *
+ * NOTE: For decays (linear, exp, or gauss), use Query_Builder::add_decay() instead
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
+ *
+ * @param $function string name of the function
+ * @param $params array functions parameters
+ *
+ * @return void
+ */
+ public function add_function( $function, $params ) {
+ $this->functions[ $function ][] = $params;
+
+ return $this;
+ }
+
+ /**
+ * Add a decay function to score results
+ *
+ * This method should be used instead of Query_Builder::add_function() for decays, as the internal ES structure
+ * is slightly different for them.
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/guide/current/decay-functions.html
+ *
+ * @param $function string name of the decay function - linear, exp, or gauss
+ * @param $params array The decay functions parameters, passed to ES directly
+ *
+ * @return void
+ */
+ public function add_decay( $function, $params ) {
+ $this->decays[ $function ][] = $params;
+
+ return $this;
+ }
+
+ /**
+ * Add a scoring mode to the query
+ *
+ * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html
+ *
+ * @param $mode string name of how to score
+ *
+ * @return void
+ */
+ public function add_score_mode_to_functions( $mode = 'multiply' ) {
+ $this->functions_score_mode = $mode;
+
+ return $this;
+ }
+
+ public function add_boost_mode_to_functions( $mode = 'multiply' ) {
+ $this->functions_boost_mode = $mode;
+
+ return $this;
+ }
+
+ public function add_max_boost_to_functions( $boost ) {
+ $this->functions_max_boost = $boost;
+
+ return $this;
+ }
+
+ public function add_boost_to_query_bool( $boost ) {
+ $this->query_bool_boost = $boost;
+
+ return $this;
+ }
+
+ public function add_aggs( $aggs_name, $aggs ) {
+ $this->aggs_query = true;
+ $this->aggs[ $aggs_name ] = $aggs;
+
+ return $this;
+ }
+
+ public function set_all_aggs( $aggs ) {
+ $this->aggs_query = true;
+ $this->aggs = $aggs;
+
+ return $this;
+ }
+
+ public function add_aggs_sub_aggs( $aggs_name, $sub_aggs ) {
+ if ( ! array_key_exists( 'aggs', $this->aggs[ $aggs_name ] ) ) {
+ $this->aggs[ $aggs_name ]['aggs'] = array();
+ }
+ $this->aggs[ $aggs_name ]['aggs'] = $sub_aggs;
+
+ return $this;
+ }
+
+ public function add_bucketed_query( $name, $query ) {
+ $this->add_bucket_filter( $name, $query );
+
+ $this->add_query( $query, 'dis_max' );
+
+ return $this;
+ }
+
+ public function add_bucketed_terms( $name, $field, $terms, $boost = 1 ) {
+ if ( ! is_array( $terms ) ) {
+ $terms = array( $terms );
+ }
+
+ $this->add_bucket_filter(
+ $name,
+ array(
+ 'terms' => array(
+ $field => $terms,
+ ),
+ )
+ );
+
+ $this->add_query(
+ array(
+ 'constant_score' => array(
+ 'filter' => array(
+ 'terms' => array(
+ $field => $terms,
+ ),
+ ),
+ 'boost' => $boost,
+ ),
+ ),
+ 'dis_max'
+ );
+
+ return $this;
+ }
+
+ public function add_bucket_sub_aggs( $agg ) {
+ $this->bucket_sub_aggs = array_merge( $this->bucket_sub_aggs, $agg );
+
+ return $this;
+ }
+
+ protected function add_bucket_filter( $name, $filter ) {
+ $this->diverse_buckets_query = true;
+ $this->bucket_filters[ $name ] = $filter;
+ }
+
+ ////////////////////////////////////
+ // Building Final Query
+
+ /**
+ * Combine all the queries, functions, decays, scripts, and max_boost into an ES query
+ *
+ * @return array Array representation of the built ES query
+ */
+ public function build_query() {
+ $query = array();
+
+ //dis_max queries just become a single must query
+ if ( ! empty( $this->dis_max_queries ) ) {
+ $this->must_queries[] = array(
+ 'dis_max' => array(
+ 'queries' => $this->dis_max_queries,
+ ),
+ );
+ }
+
+ if ( empty( $this->must_queries ) ) {
+ $this->must_queries = array(
+ array(
+ 'match_all' => array(),
+ ),
+ );
+ }
+
+ if ( empty( $this->should_queries ) ) {
+ $query = array(
+ 'bool' => array(
+ 'must' => $this->must_queries,
+ ),
+ );
+ } else {
+ $query = array(
+ 'bool' => array(
+ 'must' => $this->must_queries,
+ 'should' => $this->should_queries,
+ ),
+ );
+ }
+
+ if ( ! is_null( $this->query_bool_boost ) && isset( $query['bool'] ) ) {
+ $query['bool']['boost'] = $this->query_bool_boost;
+ }
+
+ // If there are any function score adjustments, then combine those
+ if ( $this->functions || $this->decays || $this->scripts || $this->weighting_functions ) {
+ $weighting_functions = $this->weighting_functions;
+
+ if ( $this->functions ) {
+ foreach ( $this->functions as $function_type => $configs ) {
+ foreach ( $configs as $config ) {
+ foreach ( $config as $field => $params ) {
+ $func_arr = $params;
+
+ $func_arr['field'] = $field;
+
+ $weighting_functions[] = array(
+ $function_type => $func_arr,
+ );
+ }
+ }
+ }
+ }
+
+ if ( $this->decays ) {
+ foreach ( $this->decays as $decay_type => $configs ) {
+ foreach ( $configs as $config ) {
+ foreach ( $config as $field => $params ) {
+ $weighting_functions[] = array(
+ $decay_type => array(
+ $field => $params,
+ ),
+ );
+ }
+ }
+ }
+ }
+
+ if ( $this->scripts ) {
+ foreach ( $this->scripts as $script ) {
+ $weighting_functions[] = array(
+ 'script_score' => array(
+ 'script' => $script,
+ ),
+ );
+ }
+ }
+
+ $query = array(
+ 'function_score' => array(
+ 'query' => $query,
+ 'functions' => $weighting_functions,
+ 'max_boost' => $this->functions_max_boost,
+ 'score_mode' => $this->functions_score_mode,
+ 'boost_mode' => $this->functions_boost_mode,
+ ),
+ );
+ }
+
+ return $query;
+ }
+
+ /**
+ * Assemble the 'filter' portion of an ES query, from all registered filters
+ *
+ * @return array|null Combined ES filters, or null if none have been defined
+ */
+ public function build_filter() {
+ if ( empty( $this->es_filters ) ) {
+ $filter = null;
+ } elseif ( 1 === count( $this->es_filters ) ) {
+ $filter = $this->es_filters[0];
+ } else {
+ $filter = array(
+ 'and' => $this->es_filters,
+ );
+ }
+
+ return $filter;
+ }
+
+ /**
+ * Assemble the 'aggregation' portion of an ES query, from all general aggregations.
+ *
+ * @return array An aggregation query as an array of topics, filters, and bucket names
+ */
+ public function build_aggregation() {
+ if ( empty( $this->bucket_sub_aggs ) && empty( $this->aggs_query ) ) {
+ return array();
+ }
+
+ if ( ! $this->diverse_buckets_query && empty( $this->aggs_query ) ) {
+ return $this->bucket_sub_aggs;
+ }
+
+ $aggregations = array(
+ 'topics' => array(
+ 'filters' => array(
+ 'filters' => array(),
+ ),
+ ),
+ );
+
+ if ( ! empty( $this->bucket_sub_aggs ) ) {
+ $aggregations['topics']['aggs'] = $this->bucket_sub_aggs;
+ }
+
+ foreach ( $this->bucket_filters as $bucket_name => $filter ) {
+ $aggregations['topics']['filters']['filters'][ $bucket_name ] = $filter;
+ }
+
+ if ( ! empty( $this->aggs_query ) ) {
+ $aggregations = $this->aggs;
+ }
+
+ return $aggregations;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php
new file mode 100644
index 00000000..8bd3970d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php
@@ -0,0 +1,703 @@
+<?php
+/**
+ * Parse a pure text query into WordPress Elasticsearch query. This builds on
+ * the Query_Builder() to provide search query parsing.
+ *
+ * The key part of this parser is taking a user's query string typed into a box
+ * and converting it into an ES search query.
+ *
+ * This varies by application, but roughly it means extracting some parts of the query
+ * (authors, tags, and phrases) that are treated as a filter. Then taking the
+ * remaining words and building the correct query (possibly with prefix searching
+ * if we are doing search as you type)
+ *
+ * This class only supports ES 2.x+
+ *
+ * Disables comment chehcks.
+ * phpcs:disable Squiz.Commenting
+ *
+ * This parser builds queries of the form:
+ * bool:
+ * must:
+ * AND match of a single field (ideally an edgengram field)
+ * filter:
+ * filter clauses from context (eg @gibrown, #news, etc)
+ * should:
+ * boosting of results by various fields
+ *
+ * Features supported:
+ * - search as you type
+ * - phrases
+ * - supports querying across multiple languages at once
+ *
+ * @package automattic/jetpack-search
+ */
+
+namespace Automattic\Jetpack\Search\WPES;
+
+/**
+ * Query parser class.
+ */
+class Query_Parser extends Query_Builder {
+ protected $orig_query = '';
+ protected $current_query = '';
+ protected $langs;
+ protected $avail_langs = array( 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'es', 'eu', 'fa', 'fi', 'fr', 'he', 'hi', 'hu', 'hy', 'id', 'it', 'ja', 'ko', 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' );
+
+ public function __construct( $user_query, $langs ) {
+ $this->orig_query = $user_query;
+ $this->current_query = $this->orig_query;
+ $this->langs = $this->norm_langs( $langs );
+ }
+
+ protected $extracted_phrases = array();
+
+ public function get_current_query() {
+ return $this->current_query;
+ }
+
+ public function set_current_query( $q ) {
+ $this->current_query = $q;
+ }
+
+ ///////////////////////////////////////////////////////
+ // Methods for Building arrays of multilingual fields
+
+ /*
+ * Normalize language codes
+ */
+ public function norm_langs( $langs ) {
+ $lst = array();
+ foreach ( $langs as $l ) {
+ $l = strtok( $l, '-_' );
+ if ( in_array( $l, $this->avail_langs, true ) ) {
+ $lst[ $l ] = true;
+ } else {
+ $lst['default'] = true;
+ }
+ }
+ return array_keys( $lst );
+ }
+
+ public function get_lang_field_suffix() {
+ if ( ! is_array( $this->langs ) || empty( $this->langs ) ) {
+ return;
+ }
+
+ // Returns the first language only
+ return $this->langs[0];
+ }
+
+ /*
+ * Take a list of field prefixes and expand them for multi-lingual
+ * with the provided boostings.
+ */
+ public function merge_ml_fields( $fields2boosts, $additional_fields ) {
+ $flds = array();
+ foreach ( $fields2boosts as $f => $b ) {
+ foreach ( $this->langs as $l ) {
+ $flds[] = $f . '.' . $l . '^' . $b;
+ }
+ }
+ foreach ( $additional_fields as $f ) {
+ $flds[] = $f;
+ }
+ return $flds;
+ }
+
+ ////////////////////////////////////
+ // Extract Fields for Filtering on
+
+ /*
+ * Extract any @mentions from the user query
+ * use them as a filter if we can find a wp.com id
+ * otherwise use them as a
+ *
+ * args:
+ * wpcom_id_field: wp.com id field
+ * must_query_fields: array of fields to search for matching results (optional)
+ * boost_query_fields: array of fields to search in for boosting results (optional)
+ * prefixes: array of prefixes that the user can use to indicate an author
+ *
+ * returns true/false of whether any were found
+ *
+ * See also: https://github.com/twitter/twitter-text/blob/master/java/src/com/twitter/Regex.java
+ */
+ public function author_field_filter( $args ) {
+ $defaults = array(
+ 'wpcom_id_field' => 'author_id',
+ 'must_query_fields' => null,
+ 'boost_query_fields' => null,
+ 'prefixes' => array( '@' ),
+ );
+ $args = wp_parse_args( $args, $defaults );
+
+ $names = array();
+ foreach ( $args['prefixes'] as $p ) {
+ $found = $this->get_fields( $p );
+ if ( $found ) {
+ foreach ( $found as $f ) {
+ $names[] = $f;
+ }
+ }
+ }
+
+ if ( empty( $names ) ) {
+ return false;
+ }
+
+ foreach ( $args['prefixes'] as $p ) {
+ $this->remove_fields( $p );
+ }
+
+ $user_ids = array();
+
+ //loop through the matches and separate into filters and queries
+ foreach ( $names as $n ) {
+ //check for exact match on login
+ $userdata = get_user_by( 'login', strtolower( $n ) );
+ $filtering = false;
+ if ( $userdata ) {
+ $user_ids[ $userdata->ID ] = true;
+ $filtering = true;
+ }
+
+ $is_phrase = false;
+ if ( preg_match( '/"/', $n ) ) {
+ $is_phrase = true;
+ $n = preg_replace( '/"/', '', $n );
+ }
+
+ if ( ! empty( $args['must_query_fields'] ) && ! $filtering ) {
+ if ( $is_phrase ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $n,
+ 'type' => 'phrase',
+ ),
+ )
+ );
+ } else {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $n,
+ ),
+ )
+ );
+ }
+ }
+
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ if ( $is_phrase ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $n,
+ 'type' => 'phrase',
+ ),
+ ),
+ 'should'
+ );
+ } else {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $n,
+ ),
+ ),
+ 'should'
+ );
+ }
+ }
+ }
+
+ if ( ! empty( $user_ids ) ) {
+ $user_ids = array_keys( $user_ids );
+ $this->add_filter( array( 'terms' => array( $args['wpcom_id_field'] => $user_ids ) ) );
+ }
+
+ return true;
+ }
+
+ /*
+ * Extract any prefix followed by text use them as a must clause,
+ * and optionally as a boost to the should query
+ * This can be used for hashtags. eg #News, or #"current events",
+ * but also works for any arbitrary field. eg from:Greg
+ *
+ * args:
+ * must_query_fields: array of fields that must match the tag (optional)
+ * boost_query_fields: array of fields to boost search on (optional)
+ * prefixes: array of prefixes that the user can use to indicate a tag
+ *
+ * returns true/false of whether any were found
+ *
+ */
+ public function text_field_filter( $args ) {
+ $defaults = array(
+ 'must_query_fields' => array( 'tag.name' ),
+ 'boost_query_fields' => array( 'tag.name' ),
+ 'prefixes' => array( '#' ),
+ );
+ $args = wp_parse_args( $args, $defaults );
+
+ $tags = array();
+ foreach ( $args['prefixes'] as $p ) {
+ $found = $this->get_fields( $p );
+ if ( $found ) {
+ foreach ( $found as $f ) {
+ $tags[] = $f;
+ }
+ }
+ }
+
+ if ( empty( $tags ) ) {
+ return false;
+ }
+
+ foreach ( $args['prefixes'] as $p ) {
+ $this->remove_fields( $p );
+ }
+
+ foreach ( $tags as $t ) {
+ $is_phrase = false;
+ if ( preg_match( '/"/', $t ) ) {
+ $is_phrase = true;
+ $t = preg_replace( '/"/', '', $t );
+ }
+
+ if ( ! empty( $args['must_query_fields'] ) ) {
+ if ( $is_phrase ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $t,
+ 'type' => 'phrase',
+ ),
+ )
+ );
+ } else {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $t,
+ ),
+ )
+ );
+ }
+ }
+
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ if ( $is_phrase ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $t,
+ 'type' => 'phrase',
+ ),
+ ),
+ 'should'
+ );
+ } else {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $t,
+ ),
+ ),
+ 'should'
+ );
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /*
+ * Extract anything surrounded by quotes or if there is an opening quote
+ * that is not complete, and add them to the query as a phrase query.
+ * Quotes can be either '' or ""
+ *
+ * args:
+ * must_query_fields: array of fields that must match the phrases
+ * boost_query_fields: array of fields to boost the phrases on (optional)
+ *
+ * returns true/false of whether any were found
+ *
+ */
+ public function phrase_filter( $args ) {
+ $defaults = array(
+ 'must_query_fields' => array( 'all_content' ),
+ 'boost_query_fields' => array( 'title' ),
+ );
+ $args = wp_parse_args( $args, $defaults );
+
+ $phrases = array();
+ if ( preg_match_all( '/"([^"]+)"/', $this->current_query, $matches ) ) {
+ foreach ( $matches[1] as $match ) {
+ $phrases[] = $match;
+ }
+ $this->current_query = preg_replace( '/"([^"]+)"/', '', $this->current_query );
+ }
+
+ if ( preg_match_all( "/'([^']+)'/", $this->current_query, $matches ) ) {
+ foreach ( $matches[1] as $match ) {
+ $phrases[] = $match;
+ }
+ $this->current_query = preg_replace( "/'([^']+)'/", '', $this->current_query );
+ }
+
+ //look for a final, uncompleted phrase
+ $phrase_prefix = false;
+ if ( preg_match_all( '/"([^"]+)$/', $this->current_query, $matches ) ) {
+ $phrase_prefix = $matches[1][0];
+ $this->current_query = preg_replace( '/"([^"]+)$/', '', $this->current_query );
+ }
+ if ( preg_match_all( "/(?:'\B|\B')([^']+)$/", $this->current_query, $matches ) ) {
+ $phrase_prefix = $matches[1][0];
+ $this->current_query = preg_replace( "/(?:'\B|\B')([^']+)$/", '', $this->current_query );
+ }
+
+ if ( $phrase_prefix ) {
+ $phrases[] = $phrase_prefix;
+ }
+ if ( empty( $phrases ) ) {
+ return false;
+ }
+
+ foreach ( $phrases as $p ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $p,
+ 'type' => 'phrase',
+ ),
+ )
+ );
+
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $p,
+ 'operator' => 'and',
+ ),
+ ),
+ 'should'
+ );
+ }
+ }
+
+ return true;
+ }
+
+ /*
+ * Query fields based on the remaining parts of the query
+ * This could be the final AND part of the query terms to match, or it
+ * could be boosting certain elements of the query
+ *
+ * args:
+ * must_query_fields: array of fields that must match the remaining terms (optional)
+ * boost_query_fields: array of fields to boost the remaining terms on (optional)
+ *
+ */
+ public function remaining_query( $args ) {
+ $defaults = array(
+ 'must_query_fields' => null,
+ 'boost_query_fields' => null,
+ 'boost_operator' => 'and',
+ 'boost_query_type' => 'best_fields',
+ );
+ $args = wp_parse_args( $args, $defaults );
+
+ if ( empty( $this->current_query ) || ctype_space( $this->current_query ) ) {
+ return;
+ }
+
+ if ( ! empty( $args['must_query_fields'] ) ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => 'and',
+ ),
+ )
+ );
+ }
+
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => $args['boost_operator'],
+ 'type' => $args['boost_query_type'],
+ ),
+ ),
+ 'should'
+ );
+ }
+
+ }
+
+ /*
+ * Query fields using a prefix query (alphabetical expansions on the index).
+ * This is not recommended. Slower performance and worse relevancy.
+ *
+ * (UNTESTED! Copied from old prefix expansion code)
+ *
+ * args:
+ * must_query_fields: array of fields that must match the remaining terms (optional)
+ * boost_query_fields: array of fields to boost the remaining terms on (optional)
+ *
+ */
+ public function remaining_prefix_query( $args ) {
+ $defaults = array(
+ 'must_query_fields' => array( 'all_content' ),
+ 'boost_query_fields' => array( 'title' ),
+ 'boost_operator' => 'and',
+ 'boost_query_type' => 'best_fields',
+ );
+ $args = wp_parse_args( $args, $defaults );
+
+ if ( empty( $this->current_query ) || ctype_space( $this->current_query ) ) {
+ return;
+ }
+
+ //////////////////////////////////
+ // Example cases to think about:
+ // "elasticse"
+ // "elasticsearch"
+ // "elasticsearch "
+ // "elasticsearch lucen"
+ // "elasticsearch lucene"
+ // "the future" - note the stopword which will match nothing!
+ // "F1" - an exact match that also has tons of expansions
+ // "こんにちは" ja "hello"
+ // "こんにちは友人" ja "hello friend" - we just rely on the prefix phrase and ES to split words
+ // - this could still be better I bet. Maybe we need to analyze with ES first?
+ //
+
+ /////////////////////////////
+ //extract pieces of query
+ // eg: "PREFIXREMAINDER PREFIXWORD"
+ // "elasticsearch lucen"
+
+ $prefix_word = false;
+ $prefix_remainder = false;
+ if ( preg_match_all( '/([^ ]+)$/', $this->current_query, $matches ) ) {
+ $prefix_word = $matches[1][0];
+ }
+
+ $prefix_remainder = preg_replace( '/([^ ]+)$/', '', $this->current_query );
+ if ( ctype_space( $prefix_remainder ) ) {
+ $prefix_remainder = false;
+ }
+
+ if ( ! $prefix_word ) {
+ //Space at the end of the query, so skip using a prefix query
+ if ( ! empty( $args['must_query_fields'] ) ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['must_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => 'and',
+ ),
+ )
+ );
+ }
+
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => $args['boost_operator'],
+ 'type' => $args['boost_query_type'],
+ ),
+ ),
+ 'should'
+ );
+ }
+ } else {
+
+ //must match the prefix word and the prefix remainder
+ if ( ! empty( $args['must_query_fields'] ) ) {
+ //need to do an OR across a few fields to handle all cases
+ $must_q = array(
+ 'bool' => array(
+ 'should' => array(),
+ 'minimum_should_match' => 1,
+ ),
+ );
+
+ //treat all words as an exact search (boosts complete word like "news"
+ //from prefixes of "newspaper")
+ $must_q['bool']['should'][] = array(
+ 'multi_match' => array(
+ 'fields' => $this->all_fields,
+ // NOTE: This line has been disabled since $full_text is not available.
+ // 'query' => $full_text,
+ 'operator' => 'and',
+ 'type' => 'cross_fields',
+ ),
+ );
+
+ //always optimistically try and match the full text as a phrase
+ //prefix "the futu" should try to match "the future"
+ //otherwise the first stopword kinda breaks
+ //This also works as the prefix match for a single word "elasticsea"
+ $must_q['bool']['should'][] = array(
+ 'multi_match' => array(
+ 'fields' => $this->phrase_fields,
+ // NOTE: This line has been disabled since $full_text is not available.
+ // 'query' => $full_text,
+ 'operator' => 'and',
+ 'type' => 'phrase_prefix',
+ 'max_expansions' => 100,
+ ),
+ );
+
+ if ( $prefix_remainder ) {
+ //Multiple words found, so treat each word on its own and not just as
+ //a part of a phrase
+ //"elasticsearch lucen" => "elasticsearch" exact AND "lucen" prefix
+ $must_q['bool']['should'][] = array(
+ 'bool' => array(
+ 'must' => array(
+ array(
+ 'multi_match' => array(
+ 'fields' => $this->phrase_fields,
+ 'query' => $prefix_word,
+ 'operator' => 'and',
+ 'type' => 'phrase_prefix',
+ 'max_expansions' => 100,
+ ),
+ ),
+ array(
+ 'multi_match' => array(
+ 'fields' => $this->all_fields,
+ 'query' => $prefix_remainder,
+ 'operator' => 'and',
+ 'type' => 'cross_fields',
+ ),
+ ),
+ ),
+ ),
+ );
+ }
+
+ $this->add_query( $must_q );
+ }
+
+ //Now add any boosting of the query
+ if ( ! empty( $args['boost_query_fields'] ) ) {
+ //treat all words as an exact search (boosts complete word like "news"
+ //from prefixes of "newspaper")
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => $args['boost_query_operator'],
+ 'type' => $args['boost_query_type'],
+ ),
+ ),
+ 'should'
+ );
+
+ //optimistically boost the full phrase prefix match
+ $this->add_query(
+ array(
+ 'multi_match' => array(
+ 'fields' => $args['boost_query_fields'],
+ 'query' => $this->current_query,
+ 'operator' => 'and',
+ 'type' => 'phrase_prefix',
+ 'max_expansions' => 100,
+ ),
+ )
+ );
+ }
+ }
+ }
+
+ /*
+ * Boost results based on the lang probability overlaps
+ *
+ * args:
+ * langs2prob: list of languages to search in with associated boosts
+ */
+ public function boost_lang_probs( $langs2prob ) {
+ foreach ( $langs2prob as $p ) {
+ $this->add_function(
+ 'field_value_factor',
+ array(
+ 'modifier' => 'none',
+ 'factor' => $p,
+ 'missing' => 0.01, //1% chance doc did not have right lang detected
+ )
+ );
+ }
+ }
+
+ ////////////////////////////////////
+ // Helper Methods
+
+ //Get the text after some prefix. eg @gibrown, or @"Greg Brown"
+ protected function get_fields( $field_prefix ) {
+ $regex = '/' . $field_prefix . '(("[^"]+")|([^\\p{Z}]+))/';
+ if ( preg_match_all( $regex, $this->current_query, $match ) ) {
+ return $match[1];
+ }
+ return false;
+ }
+
+ //Remove the prefix and text from the query
+ protected function remove_fields( $field_name ) {
+ $regex = '/' . $field_name . '(("[^"]+")|([^\\p{Z}]+))/';
+ $this->current_query = preg_replace( $regex, '', $this->current_query );
+ }
+
+ //Best effort string truncation that splits on word breaks
+ protected function truncate_string( $string, $limit, $break = ' ' ) {
+ if ( mb_strwidth( $string ) <= $limit ) {
+ return $string;
+ }
+
+ // walk backwards from $limit to find first break
+ $breakpoint = $limit;
+ $broken = false;
+ while ( $breakpoint > 0 ) {
+ if ( mb_strimwidth( $string, $breakpoint, 1 ) === $break ) {
+ $string = mb_strimwidth( $string, 0, $breakpoint );
+ $broken = true;
+ break;
+ }
+ $breakpoint--;
+ }
+ // if we weren't able to find a break, need to chop mid-word
+ if ( ! $broken ) {
+ $string = mb_strimwidth( $string, 0, $limit );
+ }
+ return $string;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/CHANGELOG.md
new file mode 100644
index 00000000..b05aac40
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/CHANGELOG.md
@@ -0,0 +1,177 @@
+# 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).
+
+## [1.9.5] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.9.4] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.9.3] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.9.2] - 2021-11-16
+### Changed
+- Add a function_exists check before calling wp_get_environment_type
+
+## [1.9.1] - 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.9.0] - 2021-10-26
+### Added
+- Added Host class for reporting known hosting environment information.
+
+## [1.8.4] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.8.3] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.8.2] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.8.1] - 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.8.0] - 2021-06-15
+### Changed
+- Update callback to Jetpack to new Identity_Crisis class.
+
+## [1.7.6] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.7.5] - 2021-04-27
+### Deprecated
+- Deprecates is_no_user_testing_mode
+
+## [1.7.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.7.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.7.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.7.1] - 2021-01-20
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.7.0] - 2020-12-14
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.6.0] - 2020-11-23
+
+- Status: Introduce get_site_suffix method
+- Status: Fix test failure
+- Status: Improve the staging site detection
+- General: update minimum required version to WordPress 5.5
+- Add the no_user_testing mode
+- Status: Add a couple of test cases for staging site detection
+- Update dependency brain/monkey to v2.5.0
+- Updated PHPCS: Packages and Debugger
+
+## [1.5.0] - 2020-10-13
+
+- Also use Core `wp_get_environment_type` for local
+
+## [1.4.0] - 2020-08-13
+
+- CI: Try collect js coverage
+
+## [1.3.0] - 2020-07-28
+
+- Core Compat: Site Environment
+
+## [1.2.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+- Staging Sites: add newspack staging to the list of known providers
+
+## [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.4] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.3] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## [1.0.2] - 2019-10-23
+
+- Use spread operator instead of func_get_args
+
+## [1.0.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## 1.0.0 - 2019-09-14
+
+- Packages: Introduce a status package
+
+[1.9.5]: https://github.com/Automattic/jetpack-status/compare/v1.9.4...v1.9.5
+[1.9.4]: https://github.com/Automattic/jetpack-status/compare/v1.9.3...v1.9.4
+[1.9.3]: https://github.com/Automattic/jetpack-status/compare/v1.9.2...v1.9.3
+[1.9.2]: https://github.com/Automattic/jetpack-status/compare/v1.9.1...v1.9.2
+[1.9.1]: https://github.com/Automattic/jetpack-status/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-status/compare/v1.8.4...v1.9.0
+[1.8.4]: https://github.com/Automattic/jetpack-status/compare/v1.8.3...v1.8.4
+[1.8.3]: https://github.com/Automattic/jetpack-status/compare/v1.8.2...v1.8.3
+[1.8.2]: https://github.com/Automattic/jetpack-status/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-status/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-status/compare/v1.7.6...v1.8.0
+[1.7.6]: https://github.com/Automattic/jetpack-status/compare/v1.7.5...v1.7.6
+[1.7.5]: https://github.com/Automattic/jetpack-status/compare/v1.7.4...v1.7.5
+[1.7.4]: https://github.com/Automattic/jetpack-status/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-status/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-status/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-status/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-status/compare/v1.6.0...v1.7.0
+[1.6.0]: https://github.com/Automattic/jetpack-status/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-status/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-status/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-status/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-status/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-status/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-status/compare/v1.0.4...v1.1.0
+[1.0.4]: https://github.com/Automattic/jetpack-status/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-status/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-status/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-status/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-host.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-host.php
new file mode 100644
index 00000000..a0765f6d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-host.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * A hosting provide class for Jetpack.
+ *
+ * @package automattic/jetpack-status
+ */
+
+namespace Automattic\Jetpack\Status;
+
+use Automattic\Jetpack\Constants;
+
+/**
+ * Hosting provider class.
+ */
+class Host {
+ /**
+ * Determine if this site is an WordPress.com on Atomic site or not looking first at the 'at_options' option.
+ * As a fallback, check for presence of wpcomsh plugin to determine if a current site has undergone AT.
+ *
+ * @since $$next_version$$
+ *
+ * @return bool
+ */
+ public function is_woa_site() {
+ $at_options = get_option( 'at_options', array() );
+ return $this->is_atomic_platform() && ( ! empty( $at_options ) || Constants::is_true( 'WPCOMSH__PLUGIN_FILE' ) );
+ }
+
+ /**
+ * Determine if site is hosted on the Atomic hosting platform.
+ *
+ * @since $$next_version$$
+ *
+ * @return bool;
+ */
+ public function is_atomic_platform() {
+ return Constants::is_true( 'ATOMIC_SITE_ID' ) && Constants::is_true( 'ATOMIC_CLIENT_ID' );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-status.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-status.php
new file mode 100644
index 00000000..ea161122
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-status/src/class-status.php
@@ -0,0 +1,288 @@
+<?php
+/**
+ * A status class for Jetpack.
+ *
+ * @package automattic/jetpack-status
+ */
+
+namespace Automattic\Jetpack;
+
+use WPCOM_Masterbar;
+
+/**
+ * Class Automattic\Jetpack\Status
+ *
+ * Used to retrieve information about the current status of Jetpack and the site overall.
+ */
+class Status {
+ /**
+ * Is Jetpack in development (offline) mode?
+ *
+ * @deprecated 1.3.0 Use Status->is_offline_mode().
+ *
+ * @return bool Whether Jetpack's offline mode is active.
+ */
+ public function is_development_mode() {
+ _deprecated_function( __FUNCTION__, '1.3.0', 'Automattic\Jetpack\Status->is_offline_mode' );
+ return $this->is_offline_mode();
+ }
+
+ /**
+ * Is Jetpack in offline mode?
+ *
+ * This was formerly called "Development Mode", but sites "in development" aren't always offline/localhost.
+ *
+ * @since 1.3.0
+ *
+ * @return bool Whether Jetpack's offline mode is active.
+ */
+ public function is_offline_mode() {
+ $offline_mode = false;
+
+ if ( defined( '\\JETPACK_DEV_DEBUG' ) ) {
+ $offline_mode = constant( '\\JETPACK_DEV_DEBUG' );
+ } elseif ( defined( '\\WP_LOCAL_DEV' ) ) {
+ $offline_mode = constant( '\\WP_LOCAL_DEV' );
+ } elseif ( $this->is_local_site() ) {
+ $offline_mode = true;
+ }
+
+ /**
+ * Filters Jetpack's offline mode.
+ *
+ * @see https://jetpack.com/support/development-mode/
+ * @todo Update documentation ^^.
+ *
+ * @since 1.1.1
+ * @since-jetpack 2.2.1
+ * @deprecated 1.3.0
+ *
+ * @param bool $offline_mode Is Jetpack's offline mode active.
+ */
+ $offline_mode = (bool) apply_filters_deprecated( 'jetpack_development_mode', array( $offline_mode ), '1.3.0', 'jetpack_offline_mode' );
+
+ /**
+ * Filters Jetpack's offline mode.
+ *
+ * @see https://jetpack.com/support/development-mode/
+ * @todo Update documentation ^^.
+ *
+ * @since 1.3.0
+ *
+ * @param bool $offline_mode Is Jetpack's offline mode active.
+ */
+ $offline_mode = (bool) apply_filters( 'jetpack_offline_mode', $offline_mode );
+
+ return $offline_mode;
+ }
+
+ /**
+ * Is Jetpack in "No User test mode"?
+ *
+ * This will make Jetpack act as if there were no connected users, but only a site connection (aka blog token)
+ *
+ * @since 1.6.0
+ * @deprecated 1.7.5 Since this version, Jetpack connection is considered active after registration, making no_user_testing_mode obsolete.
+ *
+ * @return bool Whether Jetpack's No User Testing Mode is active.
+ */
+ public function is_no_user_testing_mode() {
+ _deprecated_function( __METHOD__, '1.7.5' );
+ return true;
+ }
+
+ /**
+ * Whether this is a system with a multiple networks.
+ * Implemented since there is no core is_multi_network function.
+ * Right now there is no way to tell which network is the dominant network on the system.
+ *
+ * @return boolean
+ */
+ public function is_multi_network() {
+ global $wpdb;
+
+ // If we don't have a multi site setup no need to do any more.
+ if ( ! is_multisite() ) {
+ return false;
+ }
+
+ $num_sites = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->site}" );
+ if ( $num_sites > 1 ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Whether the current site is single user site.
+ *
+ * @return bool
+ */
+ public function is_single_user_site() {
+ global $wpdb;
+
+ $some_users = get_transient( 'jetpack_is_single_user' );
+ if ( false === $some_users ) {
+ $some_users = $wpdb->get_var( "SELECT COUNT(*) FROM (SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '{$wpdb->prefix}capabilities' LIMIT 2) AS someusers" );
+ set_transient( 'jetpack_is_single_user', (int) $some_users, 12 * HOUR_IN_SECONDS );
+ }
+ return 1 === (int) $some_users;
+ }
+
+ /**
+ * If the site is a local site.
+ *
+ * @since 1.3.0
+ *
+ * @return bool
+ */
+ public function is_local_site() {
+ // Check for localhost and sites using an IP only first.
+ $is_local = site_url() && false === strpos( site_url(), '.' );
+
+ // @todo Remove function_exists when the package has a documented minimum WP version.
+ // Use Core's environment check, if available. Added in 5.5.0 / 5.5.1 (for `local` return value).
+ if ( function_exists( 'wp_get_environment_type' ) && 'local' === wp_get_environment_type() ) {
+ $is_local = true;
+ }
+
+ // Then check for usual usual domains used by local dev tools.
+ $known_local = array(
+ '#\.local$#i',
+ '#\.localhost$#i',
+ '#\.test$#i',
+ '#\.docksal$#i', // Docksal.
+ '#\.docksal\.site$#i', // Docksal.
+ '#\.dev\.cc$#i', // ServerPress.
+ '#\.lndo\.site$#i', // Lando.
+ );
+
+ if ( ! $is_local ) {
+ foreach ( $known_local as $url ) {
+ if ( preg_match( $url, site_url() ) ) {
+ $is_local = true;
+ break;
+ }
+ }
+ }
+
+ /**
+ * Filters is_local_site check.
+ *
+ * @since 1.3.0
+ *
+ * @param bool $is_local If the current site is a local site.
+ */
+ return apply_filters( 'jetpack_is_local_site', $is_local );
+ }
+
+ /**
+ * If is a staging site.
+ *
+ * @todo Add IDC detection to a package.
+ *
+ * @return bool
+ */
+ public function is_staging_site() {
+ // @todo Remove function_exists when the package has a documented minimum WP version.
+ // Core's wp_get_environment_type allows for a few specific options. We should default to bowing out gracefully for anything other than production or local.
+ $is_staging = function_exists( 'wp_get_environment_type' ) && ! in_array( wp_get_environment_type(), array( 'production', 'local' ), true );
+
+ $known_staging = array(
+ 'urls' => array(
+ '#\.staging\.wpengine\.com$#i', // WP Engine.
+ '#\.staging\.kinsta\.com$#i', // Kinsta.com.
+ '#\.kinsta\.cloud$#i', // Kinsta.com.
+ '#\.stage\.site$#i', // DreamPress.
+ '#\.newspackstaging\.com$#i', // Newspack.
+ '#\.pantheonsite\.io$#i', // Pantheon.
+ '#\.flywheelsites\.com$#i', // Flywheel.
+ '#\.flywheelstaging\.com$#i', // Flywheel.
+ '#\.cloudwaysapps\.com$#i', // Cloudways.
+ '#\.azurewebsites\.net$#i', // Azure.
+ '#\.wpserveur\.net$#i', // WPServeur.
+ '#\-liquidwebsites\.com$#i', // Liquidweb.
+ ),
+ 'constants' => array(
+ 'IS_WPE_SNAPSHOT', // WP Engine.
+ 'KINSTA_DEV_ENV', // Kinsta.com.
+ 'WPSTAGECOACH_STAGING', // WP Stagecoach.
+ 'JETPACK_STAGING_MODE', // Generic.
+ 'WP_LOCAL_DEV', // Generic.
+ ),
+ );
+ /**
+ * Filters the flags of known staging sites.
+ *
+ * @since 1.1.1
+ * @since-jetpack 3.9.0
+ *
+ * @param array $known_staging {
+ * An array of arrays that each are used to check if the current site is staging.
+ * @type array $urls URLs of staging sites in regex to check against site_url.
+ * @type array $constants PHP constants of known staging/developement environments.
+ * }
+ */
+ $known_staging = apply_filters( 'jetpack_known_staging', $known_staging );
+
+ if ( isset( $known_staging['urls'] ) ) {
+ foreach ( $known_staging['urls'] as $url ) {
+ if ( preg_match( $url, wp_parse_url( site_url(), PHP_URL_HOST ) ) ) {
+ $is_staging = true;
+ break;
+ }
+ }
+ }
+
+ if ( isset( $known_staging['constants'] ) ) {
+ foreach ( $known_staging['constants'] as $constant ) {
+ if ( defined( $constant ) && constant( $constant ) ) {
+ $is_staging = true;
+ }
+ }
+ }
+
+ // Last, let's check if sync is erroring due to an IDC. If so, set the site to staging mode.
+ if ( ! $is_staging && method_exists( 'Automattic\\Jetpack\\Identity_Crisis', 'validate_sync_error_idc_option' ) && \Automattic\Jetpack\Identity_Crisis::validate_sync_error_idc_option() ) {
+ $is_staging = true;
+ }
+
+ /**
+ * Filters is_staging_site check.
+ *
+ * @since 1.1.1
+ * @since-jetpack 3.9.0
+ *
+ * @param bool $is_staging If the current site is a staging site.
+ */
+ return apply_filters( 'jetpack_is_staging_site', $is_staging );
+ }
+
+ /**
+ * Returns the site slug suffix to be used as part of Calypso URLs.
+ *
+ * Strips http:// or https:// from a url, replaces forward slash with ::.
+ *
+ * @since 1.6.0
+ *
+ * @param string $url Optional. URL to build the site suffix from. Default: Home URL.
+ *
+ * @return string
+ */
+ public function get_site_suffix( $url = '' ) {
+ // On WordPress.com, site suffixes are a bit different.
+ if ( method_exists( 'WPCOM_Masterbar', 'get_calypso_site_slug' ) ) {
+ return WPCOM_Masterbar::get_calypso_site_slug( get_current_blog_id() );
+ }
+
+ if ( empty( $url ) ) {
+ $url = \home_url();
+ }
+
+ $url = preg_replace( '#^.*?://#', '', $url );
+ $url = str_replace( '/', '::', $url );
+
+ return $url;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/CHANGELOG.md
new file mode 100644
index 00000000..aca0a702
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/CHANGELOG.md
@@ -0,0 +1,641 @@
+# 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).
+
+## [1.28.0] - 2022-01-04
+### Changed
+- Listener: Do not enqueue actions when the site is disconnected
+- Switch to pcov for code coverage.
+- Theme deletions: rely on Core WP hook now that the package requires WP 5.8.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-sync`.
+
+## [1.27.6] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.27.5] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.27.4] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [1.27.3] - 2021-11-16
+### Changed
+- Actions: add the do_only_first_initial_sync method which starts an initial sync only when one hasn't already been done
+
+## [1.27.2] - 2021-11-09
+### Added
+- Constants: Now syncing Atomic platform constant
+
+### Changed
+- Full Sync : limit included users to contributors and above (based on wp_user_limit)
+- Updated package dependencies.
+- User Checksums - limit scope to users with wp_user_level > 0
+
+### Fixed
+- Fix PHP 8.1 deprecation warnings.
+
+## [1.27.1] - 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.27.0] - 2021-10-26
+### Added
+- Added the _wpas_feature_enabled meta key to the sync list
+- Sync Error Log to capture failed sync requests.
+
+### Fixed
+- Check the return value of get_comment() before to use it.
+- Increase send timeout to 20 seconds allowing capture of WP.com 408 responses.
+
+## [1.26.4] - 2021-10-13
+### Changed
+- Sync Checksums: Convert text fields to latin1 before generating checksum.
+- Updated package dependencies.
+
+### Fixed
+- Sync Checksums - Update distinct clause to use $wpdb-> table names to accouunt for differences in prefixes.
+
+## [1.26.3] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+### Removed
+- Remove initialization of the identity-crisis package. That will be handled by the Config package.
+
+### Fixed
+- Reduce transient expiration for how often we check the state of the queue.
+- Sync Checksums - exclude locale from checksum if same as site setting
+- Sync Checksums - use distinct query when calculating count of Term Relationships
+
+## [1.26.2] - 2021-09-28
+### Added
+- Add support for checksumming user-related tabled: wp_users and wp_usermeta
+
+### Changed
+- Update annotations versions.
+- Updated package dependencies.
+
+### Fixed
+- Resolve indirect modification notice.
+- Sync Checksums: utilize distinct clause in term counts.
+- Sync Queue: better handling of serialization issues and empty actions.
+
+## [1.26.1] - 2021-09-03
+### Fixed
+- Add better checks if the WooCommerce tables should be enabled for checksum/fix.
+- Prevent PHP notices on queue_pull if all args are not set.
+
+## [1.26.0] - 2021-08-30
+### Added
+- Add support for WooCommerce table to the checksum/fix process.
+- Enable support for utf8 conversion during checksum calculation.
+
+### Changed
+- Don't run composer install on regular phpunit script
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+### Fixed
+- Sync Checksums - ensure last object is included in histogram
+
+## [1.25.0] - 2021-08-12
+### Added
+- Add package version tracking.
+- Add `wpcom_is_fse_activated` to sync list
+- Made /sync/object endpoint accessible over POST, not only GET, to allow fetching more items in a single request.
+
+## [1.24.2] - 2021-08-02
+
+- Reverted: Sync option for the Carousel to display colorized slide background.
+
+## [1.24.1] - 2021-07-29
+### Changed
+- Utilize an import for WP_Error in all instances.
+
+### Fixed
+- Fixed unqualified WP_Error use in the Rest_Sender class.
+
+## [1.24.0] - 2021-07-27
+### Added
+- Add a package version constant.
+- Add Full Site Editing support to callback options.
+- Sync option for the Carousel to display colorized slide background.
+
+### Fixed
+- Update Sender so it adheres to max upload bytes when not encoding items.
+
+## [1.23.3] - 2021-07-16
+### Fixed
+- Update Options module to return jetpack_sync_settings_* values from the Settings class vs direct option lookup.
+
+## [1.23.2] - 2021-07-13
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Performance of Sync checksums degraded with the update to correlated subquery. This restricts its usage to term_taxonomy joins only."
+
+## [1.23.1] - 2021-07-01
+### Changed
+- Checksum parent_table joins need distinct selection to account for possibility of multiple rows.
+
+### Fixed
+- Update term_taxonomy checksum query to an allowed list vs disallowed
+
+## [1.23.0] - 2021-06-29
+### Added
+- Add jetpack_idc_disonnect action to clear Sync options on disconnect.
+- Add support to callables to sync/object endpoint.
+- Enable sync/object endpoint support for theme-info.
+- Enhance updates module to support get_objects_by_id.
+- Expand sync/object to support constants.
+- Extend sync/object to support callables.
+- Implement v4 REST endpoints.
+- Initialize the IDC package in the Sync package.
+
+### Removed
+- Remove product_cat from blocked taxonomies
+
+## [1.22.0] - 2021-06-15
+### Changed
+- Sync: Adding the Identity_Crisis package.
+- Updated package dependencies.
+
+### Deprecated
+- Deprecated URL methods in `Automattic\Jetpack\Sync\Functions` in favor of `Automattic\Jetpack\Connection\Urls`.
+
+## [1.21.3] - 2021-05-25
+### Changed
+- Performance: If no Full Sync is in process early return before we update options.
+
+### Fixed
+- Janitorial: avoid PHP notices in some edge-cases
+- Update Meta Module so get_object_by_id returns all meta values.
+
+## [1.21.2] - 2021-04-27
+### Added
+- Added the password-checker package the the Sync package composer.json file.
+
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Sync: removed references to the JETPACK__PLUGIN_DIR constant.
+- Sync Checksums : updated postmeta range query performance #19337.
+
+## [1.21.1] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+- Implement a 60 second back-off for non-200 respones, if no retry-after header is present in the response.
+- Impose a max limit of 2MB on post meta values that are synced.
+- Impose a max limit of 5MB on post_content that can be synced.
+
+### Changed
+- Sync: Use the new Password_Checker package instead of Jetpack_Password_Checker.
+- Update package dependencies.
+- Use the Heartbeat package to generate the stats array
+
+### Fixed
+- Migrate locks to update_option to avaoid memcache inconsistencies that can be introduced by delete_option usage.
+- Update Sync Queue so that serialize is wrapped to catch errors
+
+## [1.21.0] - 2021-02-23
+
+- General: update WordPress version requirements to WP 5.6
+- Update Checksums to support blacklisted taxonomies.
+- Refactor Jetpack callables into the plugin using existing filter jetpack_sync_callable_whitelist
+- Wrap call_user_func in is_callable so that we don't trigger warnings for callables that don't exist.
+- Sync: Trigger initial sync on jetpack_site_registered
+- Update Comments checksum field to comment_date_gmt. We cannot use comment_content directly due to charset/filters.
+- Deprecate jetpack_json_wrap
+- Remove Sync's usage of wp_startswith
+
+## [1.20.2] - 2021-02-08
+
+- Update dependencies to latest stable
+
+## [1.20.1] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.20.0] - 2021-01-26
+
+- Sync Concurrency / Race Conditions
+- Sync: Prevent an PHP warning
+- Jetpack Sync: Checksums: Use a better way to fetch and validate fields against table
+- Add mirror-repo information to all current composer packages
+- Full Sync :: Reduce Concurrency.
+- Monorepo: Reorganize all projects
+- Various PHPCS and Cleanup
+
+## [1.19.4] - 2021-01-18
+
+- Update dependencies to latest stable
+
+## [1.19.3] - 2021-01-18
+
+- Full Sync :: Reduce Concurrency.
+
+## [1.19.2] - 2020-12-21
+
+- Update the do_full_sync function to early return if we are in SYNC READ ONLY mode.
+- Return an empty array if the specified range is empty. (It was returning the checksum for the WHOLE dataset).
+
+## [1.19.1] - 2020-12-17
+
+## [1.19.0] - 2020-12-17
+
+- sync: Improve sync checksum algorithm and endpoints
+- wp_get_environment_type as callable.
+- Disallow amp_validated_url as it is not site content but instead validation errors for amp mark-up.
+- Whitelist (allow) jetpack_sync_settings_* options to be synced
+- Re-order Sync default option whitelist (allowlist)
+
+## [1.18.1] - 2020-11-24
+
+- Version packages for release
+
+## [1.18.0] - 2020-11-24
+
+- Migrate jetpack_published_post to wp_after_insert_post hook
+- Check value to determine if we should enable sync after an action enqueuement.
+- General: update minimum required version to WordPress 5.5
+- Fix remaining phpcs warnings in most of requirelist
+- Update access of comment_status_to_approval_value to allow extension.
+- Update get_term Replicastore function to handle term_taxonomy_id option
+- Update get_terms to utilize ensure_taxonomy so that the Taxonomy is registered.
+- Addtion of note on explict return of null instead of false if option not found.
+- Alignment of comment_status_to_approval_value function. Addition of post-trashed status and cleanup of cases.
+- Alignment with implemenations. Call ensure_taxonomy to ensure Taxonomies have been initialized.
+- Call ensure_taxonomy within get_object_terms so that the taxonomy is registered before action is performed.
+- Updated PHPCS: Packages and Debugger
+
+## [1.17.2] - 2020-11-05
+
+- Update dependencies to latest stable
+
+## [1.17.1] - 2020-10-29
+
+- Update dependencies to latest stable
+
+## [1.17.0] - 2020-10-27
+
+- WPCOM Block Editor: Update meta key name
+- Resolve PHP Warning with array_filter usage in sync of action_links.
+- Sync: Seperate theme data ( name, version, slug and uri) from theme support data
+- Replaced intval() with (int) as part of issue #17432.
+- Replaced strval() with type casting (string) as part of issue #17432.
+- Replaced floatval() with type cast (float) as part of issue #17432.
+- Make XMLRPC methods available for blog token
+
+## [1.16.4] - 2020-10-14
+
+- Update dependencies to latest stable
+
+## [1.16.3] - 2020-10-09
+
+- Update dependencies to latest stable
+
+## [1.16.2] - 2020-10-06
+
+- Update dependencies to latest stable
+
+## [1.16.1] - 2020-10-01
+
+- Update dependencies to latest stable
+
+## [1.16.0] - 2020-09-29
+
+- Publicize: Allow publishing a post as a Twitter thread.
+- props @jmdodd - filter out set_object_terms actions that don't perform any update. Includes unit tests.
+- Sort Arrays by keys before generating callable checksums
+- Packages: avoid PHPCS warnings
+- Adding 'review' to whitelisted comment types
+- Disable Sync sending on Backup API Requests
+- Sync: stop trying to check for edit_comment capability
+- Added options to sync wc whitelist
+- Sync: Improve theme support syncing
+
+## [1.15.1] - 2020-09-09
+
+- Update dependencies to latest stable
+
+## [1.15.0] - 2020-08-26
+
+- Sync: add Creative Mail configuration option to synced options
+- Extend sync_status endpoint with optional debug_details field
+- REST API endpoints: expand management endpoints
+- Sync: Fix nonce action string in theme edit sync
+- WP 5.5 Compat: Align Jetpack and Core's plugin autoupdates
+- use current user token to updateRole request
+- Resolve Sync Errors from empty edge case and WP.com returning concurrent_request_error
+- Rework Sender to properly return state during do_full_sync
+
+## [1.14.4] - 2020-08-10
+
+- WP 5.5 Compat: Align Jetpack and Core's plugin autoupdates
+
+## [1.14.3] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.14.2] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.14.1] - 2020-08-10
+
+- Resolve Sync Errors from empty edge case and WP.com returning concurrent_request_error
+
+## [1.14.0] - 2020-07-28
+
+- Core Compat: Site Environment
+- Unit Tests: fix tests according to changes in Core
+- Utilize the blog token vs master user token to send sync actions.
+
+## [1.13.2] - 2020-07-06
+
+- Update dependencies to latest stable
+
+## [1.13.1] - 2020-07-01
+
+- Update dependencies to latest stable
+
+## [1.13.0] - 2020-06-30
+
+- Block Flamingo Plugin post types in Jetpack Sync
+- Explicit single execution of do_full_sync from cron
+- Update to reference the property defined in the Jetpack Connection Manager class
+- PHPCS: Clean up the packages
+- WordAds: Add consent support for California Consumer Privacy Act (CCPA)
+- Sync: Add additional support for theme_support_whitelist
+
+## [1.12.4] - 2020-06-02
+
+- Revert "Fix `jetpack sync start` CLI command (#16010)"
+
+## [1.12.3] - 2020-06-01
+
+- Update dependencies to latest stable
+
+## [1.12.2] - 2020-06-01
+
+- Fix `jetpack sync start` CLI command
+
+## [1.12.1] - 2020-05-29
+
+- Sync: Add additional support for theme_support_whitelist
+
+## [1.12.0] - 2020-05-26
+
+- Update ReplicaStore to call clean_comment_cache when comments are upserted or a reset is perofrmed.
+- Store the list of active plugins that uses connection in an option
+- Jetpack Sync :: Alternate non-blocking flow
+- Settings - Writing: add a toggle to Carousel so users can hide comment area
+- Sender needs to load consistently utilizing logic
+- Always delete items from the queue even if the buffer is no longer checked out.
+- Update the hook of Sync's Comment module to not send meta actions when the comment_type is not whitelisted.
+- Sync Comments apply whitelist to all actions
+
+## [1.11.0] - 2020-04-28
+
+- Correct inline documentation "Array" type
+- Filter out blacklisted post_types for deleted_post actions.
+- Publicize: Add jetpack_publicize_options
+- Blacklisting Post Types from Sync
+- Comments: update default comment type
+- Jetpack Sync: Split `jetpack_post_meta_batch_delete` in action to be called in chunks of 100 items, compared to all at once.
+- Update Sync limits based on analysis of data loss events.
+
+## [1.10.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.9.0] - 2020-03-31
+
+- Debugger: Add sync health progress bar
+- Add main network WPCOM blog ID to sync functions
+- Masterbar: send wpcom user ID to wpcom when attempting to log…
+- Sync: a better readme
+
+## [1.8.0] - 2020-02-25
+
+- Minileven: add options back as they still exist on sites
+- Sync: add queue size to actions
+- Mobile Theme: remove feature
+
+## [1.7.6] - 2020-02-14
+
+- get_sync_status does not properly account for unexpected states.
+
+## [1.7.5] - 2020-02-14
+
+- Empty Helper function for checkin handler
+- Sync Health: fix excessive data loss reports
+- Initial Sync Health Status Class and Data Loss Handler
+- Stop REST API Log entries from being synced
+
+## [1.7.4+vip] - 2020-02-14
+
+- Empty Helper function for checkin handler
+
+## [1.7.4] - 2020-01-23
+
+- Sync Chunk Keys need to be unique
+
+## [1.7.3] - 2020-01-20
+
+- Sync: ensure we run the initial sync on new connections
+
+## [1.7.2] - 2020-01-17
+
+- Sync Package: use Full_Sync_Immediately by default
+- Adding new managed WordPress hosts to be identified in class-functions.php.
+
+## [1.7.1] - 2020-01-14
+
+- Packages: Various improvements for wp.com or self-contained consumers
+
+## [1.7.0] - 2020-01-14
+
+- Trying to add deterministic initialization.
+
+## [1.6.3] - 2020-01-07
+
+- Fix git history.
+
+## [1.6.2] - 2019-12-31
+
+- Sync: Remove DEFAULT_SYNC_MODULES legacy map
+- Connection: Loose Comparison for Port Number in Signatures
+
+## [1.6.1] - 2019-12-13
+
+- tweak default sync settings
+
+## [1.6.0] - 2019-12-02
+
+- Sync: Full Sync: Send immediately.
+
+## [1.5.1] - 2019-11-26
+
+- Marked the xmlrpc_api_url method as deprecated.
+
+## [1.5.0] - 2019-11-25
+
+- Remove sync settings cache
+
+## [1.4.0] - 2019-11-19
+
+- Full Sync: Don't allow more than one request to enqueue
+- Sync: Update Max Int
+
+## [1.3.4] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.3.3] - 2019-11-08
+
+- Deprecate Jetpack::is_development_mode() in favor of the packaged Status()-&gt;is_development_mode()
+
+## [1.3.2] - 2019-11-01
+
+- Full Sync updates to allow full enqueuing of chunks.
+
+## [1.3.1] - 2019-10-29
+
+- PHPCS: Rest of the packages
+
+## [1.3.0] - 2019-10-29
+
+- Sync: Checkout Endpoint: Add `pop` argument 😱
+
+## [1.2.1] - 2019-10-28
+
+- Sync: Add Settings to enable/disable the sender for a particular queue
+
+## [1.2.0] - 2019-10-24
+
+- Sync: Fix how we enqueue term_relationships on full sync 🏝
+- WP 5.3: Use modern wp_timezone
+- Check for last_error when enqueuing IDs
+
+## [1.1.1] - 2019-10-23
+
+- Use spread operator instead of func_get_args
+
+## [1.1.0] - 2019-10-07
+
+- Sync: Ensure a post object is returned
+- PHPCS: Sync Functions
+- Sync: Bail initial sync if there is an ongoing full sync
+
+## [1.0.2] - 2019-09-25
+
+- Sync: Only allow white listed comment types to be inserted.
+- Sync: Move sync_object XML-RPC method from connection to sync
+- Sync: do not sync comments made via Action Scheduler
+- Docs: Unify usage of @package phpdoc tags
+
+## [1.0.1] - 2019-09-14
+
+## 1.0.0 - 2019-09-14
+
+- Packages: Move sync to a classmapped package
+
+[1.28.0]: https://github.com/Automattic/jetpack-sync/compare/v1.27.6...v1.28.0
+[1.27.6]: https://github.com/Automattic/jetpack-sync/compare/v1.27.5...v1.27.6
+[1.27.5]: https://github.com/Automattic/jetpack-sync/compare/v1.27.4...v1.27.5
+[1.27.4]: https://github.com/Automattic/jetpack-sync/compare/v1.27.3...v1.27.4
+[1.27.3]: https://github.com/Automattic/jetpack-sync/compare/v1.27.2...v1.27.3
+[1.27.2]: https://github.com/Automattic/jetpack-sync/compare/v1.27.1...v1.27.2
+[1.27.1]: https://github.com/Automattic/jetpack-sync/compare/v1.27.0...v1.27.1
+[1.27.0]: https://github.com/Automattic/jetpack-sync/compare/v1.26.4...v1.27.0
+[1.26.4]: https://github.com/Automattic/jetpack-sync/compare/v1.26.3...v1.26.4
+[1.26.3]: https://github.com/Automattic/jetpack-sync/compare/v1.26.2...v1.26.3
+[1.26.2]: https://github.com/Automattic/jetpack-sync/compare/v1.26.1...v1.26.2
+[1.26.1]: https://github.com/Automattic/jetpack-sync/compare/v1.26.0...v1.26.1
+[1.26.0]: https://github.com/Automattic/jetpack-sync/compare/v1.25.0...v1.26.0
+[1.25.0]: https://github.com/Automattic/jetpack-sync/compare/v1.24.2...v1.25.0
+[1.24.2]: https://github.com/Automattic/jetpack-sync/compare/v1.24.1...v1.24.2
+[1.24.1]: https://github.com/Automattic/jetpack-sync/compare/v1.24.0...v1.24.1
+[1.24.0]: https://github.com/Automattic/jetpack-sync/compare/v1.23.3...v1.24.0
+[1.23.3]: https://github.com/Automattic/jetpack-sync/compare/v1.23.2...v1.23.3
+[1.23.2]: https://github.com/Automattic/jetpack-sync/compare/v1.23.1...v1.23.2
+[1.23.1]: https://github.com/Automattic/jetpack-sync/compare/v1.23.0...v1.23.1
+[1.23.0]: https://github.com/Automattic/jetpack-sync/compare/v1.22.0...v1.23.0
+[1.22.0]: https://github.com/Automattic/jetpack-sync/compare/v1.21.3...v1.22.0
+[1.21.3]: https://github.com/Automattic/jetpack-sync/compare/v1.21.2...v1.21.3
+[1.21.2]: https://github.com/Automattic/jetpack-sync/compare/v1.21.1...v1.21.2
+[1.21.1]: https://github.com/Automattic/jetpack-sync/compare/v1.21.0...v1.21.1
+[1.21.0]: https://github.com/Automattic/jetpack-sync/compare/v1.20.2...v1.21.0
+[1.20.2]: https://github.com/Automattic/jetpack-sync/compare/v1.20.1...v1.20.2
+[1.20.1]: https://github.com/Automattic/jetpack-sync/compare/v1.20.0...v1.20.1
+[1.20.0]: https://github.com/Automattic/jetpack-sync/compare/v1.19.4...v1.20.0
+[1.19.4]: https://github.com/Automattic/jetpack-sync/compare/v1.19.3...v1.19.4
+[1.19.3]: https://github.com/Automattic/jetpack-sync/compare/v1.19.2...v1.19.3
+[1.19.2]: https://github.com/Automattic/jetpack-sync/compare/v1.19.1...v1.19.2
+[1.19.1]: https://github.com/Automattic/jetpack-sync/compare/v1.19.0...v1.19.1
+[1.19.0]: https://github.com/Automattic/jetpack-sync/compare/v1.18.1...v1.19.0
+[1.18.1]: https://github.com/Automattic/jetpack-sync/compare/v1.18.0...v1.18.1
+[1.18.0]: https://github.com/Automattic/jetpack-sync/compare/v1.17.2...v1.18.0
+[1.17.2]: https://github.com/Automattic/jetpack-sync/compare/v1.17.1...v1.17.2
+[1.17.1]: https://github.com/Automattic/jetpack-sync/compare/v1.17.0...v1.17.1
+[1.17.0]: https://github.com/Automattic/jetpack-sync/compare/v1.16.4...v1.17.0
+[1.16.4]: https://github.com/Automattic/jetpack-sync/compare/v1.16.3...v1.16.4
+[1.16.3]: https://github.com/Automattic/jetpack-sync/compare/v1.16.2...v1.16.3
+[1.16.2]: https://github.com/Automattic/jetpack-sync/compare/v1.16.1...v1.16.2
+[1.16.1]: https://github.com/Automattic/jetpack-sync/compare/v1.16.0...v1.16.1
+[1.16.0]: https://github.com/Automattic/jetpack-sync/compare/v1.15.1...v1.16.0
+[1.15.1]: https://github.com/Automattic/jetpack-sync/compare/v1.15.0...v1.15.1
+[1.15.0]: https://github.com/Automattic/jetpack-sync/compare/v1.14.4...v1.15.0
+[1.14.4]: https://github.com/Automattic/jetpack-sync/compare/v1.14.3...v1.14.4
+[1.14.3]: https://github.com/Automattic/jetpack-sync/compare/v1.14.2...v1.14.3
+[1.14.2]: https://github.com/Automattic/jetpack-sync/compare/v1.14.1...v1.14.2
+[1.14.1]: https://github.com/Automattic/jetpack-sync/compare/v1.14.0...v1.14.1
+[1.14.0]: https://github.com/Automattic/jetpack-sync/compare/v1.13.2...v1.14.0
+[1.13.2]: https://github.com/Automattic/jetpack-sync/compare/v1.13.1...v1.13.2
+[1.13.1]: https://github.com/Automattic/jetpack-sync/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-sync/compare/v1.12.4...v1.13.0
+[1.12.4]: https://github.com/Automattic/jetpack-sync/compare/v1.12.3...v1.12.4
+[1.12.3]: https://github.com/Automattic/jetpack-sync/compare/v1.12.2...v1.12.3
+[1.12.2]: https://github.com/Automattic/jetpack-sync/compare/v1.12.1...v1.12.2
+[1.12.1]: https://github.com/Automattic/jetpack-sync/compare/v1.12.0...v1.12.1
+[1.12.0]: https://github.com/Automattic/jetpack-sync/compare/v1.11.0...v1.12.0
+[1.11.0]: https://github.com/Automattic/jetpack-sync/compare/v1.10.0...v1.11.0
+[1.10.0]: https://github.com/Automattic/jetpack-sync/compare/v1.9.0...v1.10.0
+[1.9.0]: https://github.com/Automattic/jetpack-sync/compare/v1.8.0...v1.9.0
+[1.8.0]: https://github.com/Automattic/jetpack-sync/compare/v1.7.6...v1.8.0
+[1.7.6]: https://github.com/Automattic/jetpack-sync/compare/v1.7.5...v1.7.6
+[1.7.5]: https://github.com/Automattic/jetpack-sync/compare/v1.7.4+vip...v1.7.5
+[1.7.4+vip]: https://github.com/Automattic/jetpack-sync/compare/v1.7.4...v1.7.4+vip
+[1.7.4]: https://github.com/Automattic/jetpack-sync/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-sync/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-sync/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-sync/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-sync/compare/v1.6.3...v1.7.0
+[1.6.3]: https://github.com/Automattic/jetpack-sync/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-sync/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-sync/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-sync/compare/v1.5.1...v1.6.0
+[1.5.1]: https://github.com/Automattic/jetpack-sync/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-sync/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-sync/compare/v1.3.4...v1.4.0
+[1.3.4]: https://github.com/Automattic/jetpack-sync/compare/v1.3.3...v1.3.4
+[1.3.3]: https://github.com/Automattic/jetpack-sync/compare/v1.3.2...v1.3.3
+[1.3.2]: https://github.com/Automattic/jetpack-sync/compare/v1.3.1...v1.3.2
+[1.3.1]: https://github.com/Automattic/jetpack-sync/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-sync/compare/v1.2.1...v1.3.0
+[1.2.1]: https://github.com/Automattic/jetpack-sync/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-sync/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-sync/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-sync/compare/v1.0.2...v1.1.0
+[1.0.2]: https://github.com/Automattic/jetpack-sync/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-sync/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php
new file mode 100644
index 00000000..e2f05c98
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php
@@ -0,0 +1,942 @@
+<?php
+/**
+ * A class that defines syncable actions for Jetpack.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Manager as Jetpack_Connection;
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Identity_Crisis;
+use Automattic\Jetpack\Status;
+use WP_Error;
+
+/**
+ * The role of this class is to hook the Sync subsystem into WordPress - when to listen for actions,
+ * when to send, when to perform a full sync, etc.
+ *
+ * It also binds the action to send data to WPCOM to Jetpack's XMLRPC client object.
+ */
+class Actions {
+
+ /**
+ * Name of the retry-after option prefix.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const RETRY_AFTER_PREFIX = 'jp_sync_retry_after_';
+
+ /**
+ * Name of the error log option prefix.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const ERROR_LOG_PREFIX = 'jp_sync_error_log_';
+
+ /**
+ * Name of the last successful sync option prefix.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const LAST_SUCCESS_PREFIX = 'jp_sync_last_success_';
+
+ /**
+ * A variable to hold a sync sender object.
+ *
+ * @access public
+ * @static
+ *
+ * @var Automattic\Jetpack\Sync\Sender
+ */
+ public static $sender = null;
+
+ /**
+ * A variable to hold a sync listener object.
+ *
+ * @access public
+ * @static
+ *
+ * @var Automattic\Jetpack\Sync\Listener
+ */
+ public static $listener = null;
+
+ /**
+ * Name of the sync cron schedule.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const DEFAULT_SYNC_CRON_INTERVAL_NAME = 'jetpack_sync_interval';
+
+ /**
+ * Interval between the last and the next sync cron action.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const DEFAULT_SYNC_CRON_INTERVAL_VALUE = 300; // 5 * MINUTE_IN_SECONDS;
+
+ /**
+ * Initialize Sync for cron jobs, set up listeners for WordPress Actions,
+ * and set up a shut-down action for sending actions to WordPress.com
+ *
+ * @access public
+ * @static
+ */
+ public static function init() {
+ // Everything below this point should only happen if we're a valid sync site.
+ if ( ! self::sync_allowed() ) {
+ return;
+ }
+
+ if ( self::sync_via_cron_allowed() ) {
+ self::init_sync_cron_jobs();
+ } elseif ( wp_next_scheduled( 'jetpack_sync_cron' ) ) {
+ self::clear_sync_cron_jobs();
+ }
+ // When importing via cron, do not sync.
+ add_action( 'wp_cron_importer_hook', array( __CLASS__, 'set_is_importing_true' ), 1 );
+
+ // Sync connected user role changes to WordPress.com.
+ Users::init();
+
+ // Publicize filter to prevent publicizing blacklisted post types.
+ add_filter( 'publicize_should_publicize_published_post', array( __CLASS__, 'prevent_publicize_blacklisted_posts' ), 10, 2 );
+
+ /**
+ * Fires on every request before default loading sync listener code.
+ * Return false to not load sync listener code that monitors common
+ * WP actions to be serialized.
+ *
+ * By default this returns true for cron jobs, non-GET-requests, or requests where the
+ * user is logged-in.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param bool should we load sync listener code for this request
+ */
+ if ( apply_filters( 'jetpack_sync_listener_should_load', true ) ) {
+ self::initialize_listener();
+ }
+
+ add_action( 'init', array( __CLASS__, 'add_sender_shutdown' ), 90 );
+ }
+
+ /**
+ * Prepares sync to send actions on shutdown for the current request.
+ *
+ * @access public
+ * @static
+ */
+ public static function add_sender_shutdown() {
+ /**
+ * Fires on every request before default loading sync sender code.
+ * Return false to not load sync sender code that serializes pending
+ * data and sends it to WPCOM for processing.
+ *
+ * By default this returns true for cron jobs, POST requests, admin requests, or requests
+ * by users who can manage_options.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param bool should we load sync sender code for this request
+ */
+ if ( apply_filters(
+ 'jetpack_sync_sender_should_load',
+ self::should_initialize_sender()
+ ) ) {
+ self::initialize_sender();
+ add_action( 'shutdown', array( self::$sender, 'do_sync' ) );
+ add_action( 'shutdown', array( self::$sender, 'do_full_sync' ), 9999 );
+ }
+ }
+
+ /**
+ * Define JETPACK_SYNC_READ_ONLY constant if not defined.
+ * This notifies sync to not run in shutdown if it was initialized during init.
+ *
+ * @access public
+ * @static
+ */
+ public static function mark_sync_read_only() {
+ Constants::set_constant( 'JETPACK_SYNC_READ_ONLY', true );
+ }
+
+ /**
+ * Decides if the sender should run on shutdown for this request.
+ *
+ * @access public
+ * @static
+ *
+ * @return bool
+ */
+ public static function should_initialize_sender() {
+
+ // Allow for explicit disable of Sync from request param jetpack_sync_read_only.
+ if ( isset( $_REQUEST['jetpack_sync_read_only'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
+ self::mark_sync_read_only();
+ return false;
+ }
+
+ if ( Constants::is_true( 'DOING_CRON' ) ) {
+ return self::sync_via_cron_allowed();
+ }
+
+ if ( isset( $_SERVER['REQUEST_METHOD'] ) && 'POST' === $_SERVER['REQUEST_METHOD'] ) {
+ return true;
+ }
+
+ if ( current_user_can( 'manage_options' ) ) {
+ return true;
+ }
+
+ if ( is_admin() ) {
+ return true;
+ }
+
+ if ( defined( 'PHPUNIT_JETPACK_TESTSUITE' ) ) {
+ return true;
+ }
+
+ if ( Constants::get_constant( 'WP_CLI' ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Decides if the sender should run on shutdown when actions are queued.
+ *
+ * @access public
+ * @static
+ *
+ * @param bool $enable Should we initilize sender.
+ * @return bool
+ */
+ public static function should_initialize_sender_enqueue( $enable ) {
+
+ // If $enabled is false don't modify it, only check cron if enabled.
+ if ( false === $enable ) {
+ return $enable;
+ }
+
+ if ( Constants::is_true( 'DOING_CRON' ) ) {
+ return self::sync_via_cron_allowed();
+ }
+
+ return true;
+ }
+
+ /**
+ * Decides if sync should run at all during this request.
+ *
+ * @access public
+ * @static
+ *
+ * @return bool
+ */
+ public static function sync_allowed() {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ return false;
+ }
+
+ if ( defined( 'PHPUNIT_JETPACK_TESTSUITE' ) ) {
+ return true;
+ }
+
+ if ( ! Settings::is_sync_enabled() ) {
+ return false;
+ }
+
+ if ( ( new Status() )->is_offline_mode() ) {
+ return false;
+ }
+
+ if ( ( new Status() )->is_staging_site() ) {
+ return false;
+ }
+
+ $connection = new Jetpack_Connection();
+ if ( ! $connection->is_connected() ) {
+ if ( ! doing_action( 'jetpack_site_registered' ) ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Helper function to get details as to why sync is not allowed, if it is not allowed.
+ *
+ * @return array
+ */
+ public static function get_debug_details() {
+ $debug = array();
+ $debug['debug_details']['sync_allowed'] = self::sync_allowed();
+ $debug['debug_details']['sync_health'] = Health::get_status();
+ if ( false === $debug['debug_details']['sync_allowed'] ) {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $debug['debug_details']['is_wpcom'] = true;
+ }
+ if ( defined( 'PHPUNIT_JETPACK_TESTSUITE' ) ) {
+ $debug['debug_details']['PHPUNIT_JETPACK_TESTSUITE'] = true;
+ }
+ if ( ! Settings::is_sync_enabled() ) {
+ $debug['debug_details']['is_sync_enabled'] = false;
+ $debug['debug_details']['jetpack_sync_disable'] = Settings::get_setting( 'disable' );
+ $debug['debug_details']['jetpack_sync_network_disable'] = Settings::get_setting( 'network_disable' );
+ }
+ if ( ( new Status() )->is_offline_mode() ) {
+ $debug['debug_details']['is_offline_mode'] = true;
+ }
+ if ( ( new Status() )->is_staging_site() ) {
+ $debug['debug_details']['is_staging_site'] = true;
+ }
+ $connection = new Jetpack_Connection();
+ if ( ! $connection->is_connected() ) {
+ $debug['debug_details']['active_connection'] = false;
+ }
+ }
+
+ // Sync Logs.
+ $debug['debug_details']['last_succesful_sync'] = get_option( self::LAST_SUCCESS_PREFIX . 'sync', '' );
+ $debug['debug_details']['sync_error_log'] = get_option( self::ERROR_LOG_PREFIX . 'sync', '' );
+
+ return $debug;
+
+ }
+
+ /**
+ * Determines if syncing during a cron job is allowed.
+ *
+ * @access public
+ * @static
+ *
+ * @return bool|int
+ */
+ public static function sync_via_cron_allowed() {
+ return ( Settings::get_setting( 'sync_via_cron' ) );
+ }
+
+ /**
+ * Decides if the given post should be Publicized based on its type.
+ *
+ * @access public
+ * @static
+ *
+ * @param bool $should_publicize Publicize status prior to this filter running.
+ * @param \WP_Post $post The post to test for Publicizability.
+ * @return bool
+ */
+ public static function prevent_publicize_blacklisted_posts( $should_publicize, $post ) {
+ if ( in_array( $post->post_type, Settings::get_setting( 'post_types_blacklist' ), true ) ) {
+ return false;
+ }
+
+ return $should_publicize;
+ }
+
+ /**
+ * Set an importing flag to `true` in sync settings.
+ *
+ * @access public
+ * @static
+ */
+ public static function set_is_importing_true() {
+ Settings::set_importing( true );
+ }
+
+ /**
+ * Sends data to WordPress.com via an XMLRPC request.
+ *
+ * @access public
+ * @static
+ *
+ * @param object $data Data relating to a sync action.
+ * @param string $codec_name The name of the codec that encodes the data.
+ * @param float $sent_timestamp Current server time so we can compensate for clock differences.
+ * @param string $queue_id The queue the action belongs to, sync or full_sync.
+ * @param float $checkout_duration Time spent retrieving queue items from the DB.
+ * @param float $preprocess_duration Time spent converting queue items into data to send.
+ * @param int $queue_size The size of the sync queue at the time of processing.
+ * @param string $buffer_id The ID of the Queue buffer checked out for processing.
+ * @return mixed|WP_Error The result of the sending request.
+ */
+ public static function send_data( $data, $codec_name, $sent_timestamp, $queue_id, $checkout_duration, $preprocess_duration, $queue_size = null, $buffer_id = null ) {
+
+ $query_args = array(
+ 'sync' => '1', // Add an extra parameter to the URL so we can tell it's a sync action.
+ 'codec' => $codec_name,
+ 'timestamp' => $sent_timestamp,
+ 'queue' => $queue_id,
+ 'cd' => sprintf( '%.4f', $checkout_duration ),
+ 'pd' => sprintf( '%.4f', $preprocess_duration ),
+ 'queue_size' => $queue_size,
+ 'buffer_id' => $buffer_id,
+ );
+
+ $query_args['timeout'] = Settings::is_doing_cron() ? 30 : 20;
+
+ if ( 'immediate-send' === $queue_id ) {
+ $query_args['timeout'] = 30;
+ }
+
+ /**
+ * Filters query parameters appended to the Sync request URL sent to WordPress.com.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.7.0
+ *
+ * @param array $query_args associative array of query parameters.
+ */
+ $query_args = apply_filters( 'jetpack_sync_send_data_query_args', $query_args );
+
+ $connection = new Jetpack_Connection();
+ $url = add_query_arg( $query_args, $connection->xmlrpc_api_url() );
+
+ // If we're currently updating to Jetpack 7.7, the IXR client may be missing briefly
+ // because since 7.7 it's being autoloaded with Composer.
+ if ( ! class_exists( '\\Jetpack_IXR_Client' ) ) {
+ return new WP_Error(
+ 'ixr_client_missing',
+ esc_html__( 'Sync has been aborted because the IXR client is missing.', 'jetpack-sync' )
+ );
+ }
+
+ $rpc = new \Jetpack_IXR_Client(
+ array(
+ 'url' => $url,
+ 'timeout' => $query_args['timeout'],
+ )
+ );
+
+ $result = $rpc->query( 'jetpack.syncActions', $data );
+
+ // Adhere to Retry-After headers.
+ $retry_after = $rpc->get_response_header( 'Retry-After' );
+ if ( false !== $retry_after ) {
+ if ( (int) $retry_after > 0 ) {
+ update_option( self::RETRY_AFTER_PREFIX . $queue_id, microtime( true ) + (int) $retry_after, false );
+ } else {
+ // if unexpected value default to 3 minutes.
+ update_option( self::RETRY_AFTER_PREFIX . $queue_id, microtime( true ) + 180, false );
+ }
+ }
+
+ if ( ! $result ) {
+ if ( false === $retry_after ) {
+ // We received a non standard response from WP.com, lets backoff from sending requests for 1 minute.
+ update_option( self::RETRY_AFTER_PREFIX . $queue_id, microtime( true ) + 60, false );
+ }
+ // Record Sync Errors.
+ $error_log = get_option( self::ERROR_LOG_PREFIX . $queue_id, array() );
+ if ( ! is_array( $error_log ) ) {
+ $error_log = array();
+ }
+ // Trim existing array to last 4 entries.
+ if ( 5 <= count( $error_log ) ) {
+ $error_log = array_slice( $error_log, -4, null, true );
+ }
+ // Add new error indexed to time.
+ $error_log[ (string) microtime( true ) ] = $rpc->get_jetpack_error();
+ // Update the error log.
+ update_option( self::ERROR_LOG_PREFIX . $queue_id, $error_log );
+
+ // return request error.
+ return $rpc->get_jetpack_error();
+ }
+
+ $response = $rpc->getResponse();
+
+ // Check if WordPress.com IDC mitigation blocked the sync request.
+ if ( Identity_Crisis::init()->check_response_for_idc( $response ) ) {
+ return new WP_Error(
+ 'sync_error_idc',
+ esc_html__( 'Sync has been blocked from WordPress.com because it would cause an identity crisis', 'jetpack-sync' )
+ );
+ }
+
+ // Record last successful sync.
+ update_option( self::LAST_SUCCESS_PREFIX . $queue_id, microtime( true ), false );
+
+ return $response;
+ }
+
+ /**
+ * Kicks off the initial sync.
+ *
+ * @access public
+ * @static
+ *
+ * @return bool|null False if sync is not allowed.
+ */
+ public static function do_initial_sync() {
+ // Let's not sync if we are not supposed to.
+ if ( ! self::sync_allowed() ) {
+ return false;
+ }
+
+ // Don't start new sync if a full sync is in process.
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ if ( $full_sync_module && $full_sync_module->is_started() && ! $full_sync_module->is_finished() ) {
+ return false;
+ }
+
+ $initial_sync_config = array(
+ 'options' => true,
+ 'functions' => true,
+ 'constants' => true,
+ 'users' => array( get_current_user_id() ),
+ 'network_options' => true,
+ );
+
+ self::do_full_sync( $initial_sync_config );
+ }
+
+ /**
+ * Do an initial full sync only if one has not already been started.
+ *
+ * @return bool|null False if the initial full sync was already started, otherwise null.
+ */
+ public static function do_only_first_initial_sync() {
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ if ( $full_sync_module && $full_sync_module->is_started() ) {
+ return false;
+ }
+
+ static::do_initial_sync();
+ }
+
+ /**
+ * Kicks off a full sync.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $modules The sync modules should be included in this full sync. All will be included if null.
+ * @return bool True if full sync was successfully started.
+ */
+ public static function do_full_sync( $modules = null ) {
+ if ( ! self::sync_allowed() ) {
+ return false;
+ }
+
+ $full_sync_module = Modules::get_module( 'full-sync' );
+
+ if ( ! $full_sync_module ) {
+ return false;
+ }
+
+ self::initialize_listener();
+
+ $full_sync_module->start( $modules );
+
+ return true;
+ }
+
+ /**
+ * Adds a cron schedule for regular syncing via cron, unless the schedule already exists.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $schedules The list of WordPress cron schedules prior to this filter.
+ * @return array A list of WordPress cron schedules with the Jetpack sync interval added.
+ */
+ public static function jetpack_cron_schedule( $schedules ) {
+ if ( ! isset( $schedules[ self::DEFAULT_SYNC_CRON_INTERVAL_NAME ] ) ) {
+ $minutes = (int) ( self::DEFAULT_SYNC_CRON_INTERVAL_VALUE / 60 );
+ $display = ( 1 === $minutes ) ?
+ __( 'Every minute', 'jetpack-sync' ) :
+ /* translators: %d is an integer indicating the number of minutes. */
+ sprintf( __( 'Every %d minutes', 'jetpack-sync' ), $minutes );
+ $schedules[ self::DEFAULT_SYNC_CRON_INTERVAL_NAME ] = array(
+ 'interval' => self::DEFAULT_SYNC_CRON_INTERVAL_VALUE,
+ 'display' => $display,
+ );
+ }
+ return $schedules;
+ }
+
+ /**
+ * Starts an incremental sync via cron.
+ *
+ * @access public
+ * @static
+ */
+ public static function do_cron_sync() {
+ self::do_cron_sync_by_type( 'sync' );
+ }
+
+ /**
+ * Starts a full sync via cron.
+ *
+ * @access public
+ * @static
+ */
+ public static function do_cron_full_sync() {
+ self::do_cron_sync_by_type( 'full_sync' );
+ }
+
+ /**
+ * Try to send actions until we run out of things to send,
+ * or have to wait more than 15s before sending again,
+ * or we hit a lock or some other sending issue
+ *
+ * @access public
+ * @static
+ *
+ * @param string $type Sync type. Can be `sync` or `full_sync`.
+ */
+ public static function do_cron_sync_by_type( $type ) {
+ if ( ! self::sync_allowed() || ( 'sync' !== $type && 'full_sync' !== $type ) ) {
+ return;
+ }
+
+ self::initialize_sender();
+
+ $time_limit = Settings::get_setting( 'cron_sync_time_limit' );
+ $start_time = time();
+ $executions = 0;
+
+ do {
+ $next_sync_time = self::$sender->get_next_sync_time( $type );
+
+ if ( $next_sync_time ) {
+ $delay = $next_sync_time - time() + 1;
+ if ( $delay > 15 ) {
+ break;
+ } elseif ( $delay > 0 ) {
+ sleep( $delay );
+ }
+ }
+
+ // Explicitly only allow 1 do_full_sync call until issue with Immediate Full Sync is resolved.
+ // For more context see p1HpG7-9pe-p2.
+ if ( 'full_sync' === $type && $executions >= 1 ) {
+ break;
+ }
+
+ $result = 'full_sync' === $type ? self::$sender->do_full_sync() : self::$sender->do_sync();
+
+ // # of send actions performed.
+ $executions ++;
+
+ } while ( $result && ! is_wp_error( $result ) && ( $start_time + $time_limit ) > time() );
+
+ return $executions;
+ }
+
+ /**
+ * Initialize the sync listener.
+ *
+ * @access public
+ * @static
+ */
+ public static function initialize_listener() {
+ self::$listener = Listener::get_instance();
+ }
+
+ /**
+ * Initializes the sync sender.
+ *
+ * @access public
+ * @static
+ */
+ public static function initialize_sender() {
+ self::$sender = Sender::get_instance();
+ add_filter( 'jetpack_sync_send_data', array( __CLASS__, 'send_data' ), 10, 8 );
+ }
+
+ /**
+ * Initializes sync for WooCommerce.
+ *
+ * @access public
+ * @static
+ */
+ public static function initialize_woocommerce() {
+ if ( false === class_exists( 'WooCommerce' ) ) {
+ return;
+ }
+ add_filter( 'jetpack_sync_modules', array( __CLASS__, 'add_woocommerce_sync_module' ) );
+ }
+
+ /**
+ * Adds Woo's sync modules to existing modules for sending.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $sync_modules The list of sync modules declared prior to this filter.
+ * @return array A list of sync modules that now includes Woo's modules.
+ */
+ public static function add_woocommerce_sync_module( $sync_modules ) {
+ $sync_modules[] = 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce';
+ return $sync_modules;
+ }
+
+ /**
+ * Initializes sync for WP Super Cache.
+ *
+ * @access public
+ * @static
+ */
+ public static function initialize_wp_super_cache() {
+ if ( false === function_exists( 'wp_cache_is_enabled' ) ) {
+ return;
+ }
+ add_filter( 'jetpack_sync_modules', array( __CLASS__, 'add_wp_super_cache_sync_module' ) );
+ }
+
+ /**
+ * Adds WP Super Cache's sync modules to existing modules for sending.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $sync_modules The list of sync modules declared prior to this filer.
+ * @return array A list of sync modules that now includes WP Super Cache's modules.
+ */
+ public static function add_wp_super_cache_sync_module( $sync_modules ) {
+ $sync_modules[] = 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache';
+ return $sync_modules;
+ }
+
+ /**
+ * Sanitizes the name of sync's cron schedule.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $schedule The name of a WordPress cron schedule.
+ * @return string The sanitized name of sync's cron schedule.
+ */
+ public static function sanitize_filtered_sync_cron_schedule( $schedule ) {
+ $schedule = sanitize_key( $schedule );
+ $schedules = wp_get_schedules();
+
+ // Make sure that the schedule has actually been registered using the `cron_intervals` filter.
+ if ( isset( $schedules[ $schedule ] ) ) {
+ return $schedule;
+ }
+
+ return self::DEFAULT_SYNC_CRON_INTERVAL_NAME;
+ }
+
+ /**
+ * Allows offsetting of start times for sync cron jobs.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $schedule The name of a cron schedule.
+ * @param string $hook The hook that this method is responding to.
+ * @return int The offset for the sync cron schedule.
+ */
+ public static function get_start_time_offset( $schedule = '', $hook = '' ) {
+ $start_time_offset = is_multisite()
+ ? wp_rand( 0, ( 2 * self::DEFAULT_SYNC_CRON_INTERVAL_VALUE ) )
+ : 0;
+
+ /**
+ * Allows overriding the offset that the sync cron jobs will first run. This can be useful when scheduling
+ * cron jobs across multiple sites in a network.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.5.0
+ *
+ * @param int $start_time_offset
+ * @param string $hook
+ * @param string $schedule
+ */
+ return (int) apply_filters(
+ 'jetpack_sync_cron_start_time_offset',
+ $start_time_offset,
+ $hook,
+ $schedule
+ );
+ }
+
+ /**
+ * Decides if a sync cron should be scheduled.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $schedule The name of a cron schedule.
+ * @param string $hook The hook that this method is responding to.
+ */
+ public static function maybe_schedule_sync_cron( $schedule, $hook ) {
+ if ( ! $hook ) {
+ return;
+ }
+ $schedule = self::sanitize_filtered_sync_cron_schedule( $schedule );
+
+ $start_time = time() + self::get_start_time_offset( $schedule, $hook );
+ if ( ! wp_next_scheduled( $hook ) ) {
+ // Schedule a job to send pending queue items once a minute.
+ wp_schedule_event( $start_time, $schedule, $hook );
+ } elseif ( wp_get_schedule( $hook ) !== $schedule ) {
+ // If the schedule has changed, update the schedule.
+ wp_clear_scheduled_hook( $hook );
+ wp_schedule_event( $start_time, $schedule, $hook );
+ }
+ }
+
+ /**
+ * Clears Jetpack sync cron jobs.
+ *
+ * @access public
+ * @static
+ */
+ public static function clear_sync_cron_jobs() {
+ wp_clear_scheduled_hook( 'jetpack_sync_cron' );
+ wp_clear_scheduled_hook( 'jetpack_sync_full_cron' );
+ }
+
+ /**
+ * Initializes Jetpack sync cron jobs.
+ *
+ * @access public
+ * @static
+ */
+ public static function init_sync_cron_jobs() {
+ add_filter( 'cron_schedules', array( __CLASS__, 'jetpack_cron_schedule' ) ); // phpcs:ignore WordPress.WP.CronInterval.ChangeDetected
+
+ add_action( 'jetpack_sync_cron', array( __CLASS__, 'do_cron_sync' ) );
+ add_action( 'jetpack_sync_full_cron', array( __CLASS__, 'do_cron_full_sync' ) );
+
+ /**
+ * Allows overriding of the default incremental sync cron schedule which defaults to once every 5 minutes.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.3.2
+ *
+ * @param string self::DEFAULT_SYNC_CRON_INTERVAL_NAME
+ */
+ $incremental_sync_cron_schedule = apply_filters( 'jetpack_sync_incremental_sync_interval', self::DEFAULT_SYNC_CRON_INTERVAL_NAME );
+ self::maybe_schedule_sync_cron( $incremental_sync_cron_schedule, 'jetpack_sync_cron' );
+
+ /**
+ * Allows overriding of the full sync cron schedule which defaults to once every 5 minutes.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.3.2
+ *
+ * @param string self::DEFAULT_SYNC_CRON_INTERVAL_NAME
+ */
+ $full_sync_cron_schedule = apply_filters( 'jetpack_sync_full_sync_interval', self::DEFAULT_SYNC_CRON_INTERVAL_NAME );
+ self::maybe_schedule_sync_cron( $full_sync_cron_schedule, 'jetpack_sync_full_cron' );
+ }
+
+ /**
+ * Perform maintenance when a plugin upgrade occurs.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $new_version New version of the plugin.
+ * @param string $old_version Old version of the plugin.
+ */
+ public static function cleanup_on_upgrade( $new_version = '', $old_version = '' ) {
+ if ( wp_next_scheduled( 'jetpack_sync_send_db_checksum' ) ) {
+ wp_clear_scheduled_hook( 'jetpack_sync_send_db_checksum' );
+ }
+
+ $is_new_sync_upgrade = version_compare( $old_version, '4.2', '>=' );
+ if ( ! empty( $old_version ) && $is_new_sync_upgrade && version_compare( $old_version, '4.5', '<' ) ) {
+ self::clear_sync_cron_jobs();
+ Settings::update_settings(
+ array(
+ 'render_filtered_content' => Defaults::$default_render_filtered_content,
+ )
+ );
+ }
+
+ Health::on_jetpack_upgraded();
+ }
+
+ /**
+ * Get syncing status for the given fields.
+ *
+ * @access public
+ * @static
+ *
+ * @param string|null $fields A comma-separated string of the fields to include in the array from the JSON response.
+ * @return array An associative array with the status report.
+ */
+ public static function get_sync_status( $fields = null ) {
+ self::initialize_sender();
+
+ $sync_module = Modules::get_module( 'full-sync' );
+ $queue = self::$sender->get_sync_queue();
+
+ // _get_cron_array can be false
+ $cron_timestamps = ( _get_cron_array() ) ? array_keys( _get_cron_array() ) : array();
+ $next_cron = ( ! empty( $cron_timestamps ) ) ? $cron_timestamps[0] - time() : '';
+
+ $checksums = array();
+ $debug = array();
+
+ if ( ! empty( $fields ) ) {
+ $store = new Replicastore();
+ $fields_params = array_map( 'trim', explode( ',', $fields ) );
+
+ if ( in_array( 'posts_checksum', $fields_params, true ) ) {
+ $checksums['posts_checksum'] = $store->posts_checksum();
+ }
+ if ( in_array( 'comments_checksum', $fields_params, true ) ) {
+ $checksums['comments_checksum'] = $store->comments_checksum();
+ }
+ if ( in_array( 'post_meta_checksum', $fields_params, true ) ) {
+ $checksums['post_meta_checksum'] = $store->post_meta_checksum();
+ }
+ if ( in_array( 'comment_meta_checksum', $fields_params, true ) ) {
+ $checksums['comment_meta_checksum'] = $store->comment_meta_checksum();
+ }
+
+ if ( in_array( 'debug_details', $fields_params, true ) ) {
+ $debug = self::get_debug_details();
+ }
+ }
+
+ $full_sync_status = ( $sync_module ) ? $sync_module->get_status() : array();
+
+ $full_queue = self::$sender->get_full_sync_queue();
+
+ $result = array_merge(
+ $full_sync_status,
+ $checksums,
+ $debug,
+ array(
+ 'cron_size' => count( $cron_timestamps ),
+ 'next_cron' => $next_cron,
+ 'queue_size' => $queue->size(),
+ 'queue_lag' => $queue->lag(),
+ 'queue_next_sync' => ( self::$sender->get_next_sync_time( 'sync' ) - microtime( true ) ),
+ 'full_queue_next_sync' => ( self::$sender->get_next_sync_time( 'full_sync' ) - microtime( true ) ),
+ )
+ );
+
+ // Verify $sync_module is not false.
+ if ( ( $sync_module ) && false === strpos( get_class( $sync_module ), 'Full_Sync_Immediately' ) ) {
+ $result['full_queue_size'] = $full_queue->size();
+ $result['full_queue_lag'] = $full_queue->lag();
+ }
+ return $result;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php
new file mode 100644
index 00000000..c8c43501
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php
@@ -0,0 +1,1272 @@
+<?php
+/**
+ * Jetpack Sync Defaults
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Status;
+
+/**
+ * Just some defaults that we share with the server.
+ */
+class Defaults {
+
+ /**
+ * Default Options.
+ *
+ * @var array
+ */
+ public static $default_options_whitelist = array(
+ 'active_plugins',
+ 'admin_email',
+ 'advanced_seo_front_page_description', // Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION.
+ 'advanced_seo_title_formats', // Jetpack_SEO_Titles::TITLE_FORMATS_OPTION.
+ 'avatar_default',
+ 'avatar_rating',
+ 'blog_charset',
+ 'blog_public',
+ 'blogdescription',
+ 'blogname',
+ 'carousel_background_color',
+ 'carousel_display_comments',
+ 'carousel_display_exif',
+ 'category_base',
+ 'ce4wp_referred_by', // Creative Mail. See pbtFPC-H5-p2.
+ 'close_comments_days_old',
+ 'close_comments_for_old_posts',
+ 'comment_max_links',
+ 'comment_moderation',
+ 'comment_order',
+ 'comment_previously_approved',
+ 'comment_registration',
+ 'comments_notify',
+ 'comments_per_page',
+ 'date_format',
+ 'default_category',
+ 'default_comment_status',
+ 'default_comments_page',
+ 'default_email_category',
+ 'default_ping_status',
+ 'default_pingback_flag',
+ 'default_post_format',
+ 'default_role',
+ 'disabled_likes',
+ 'disabled_reblogs',
+ 'disallowed_keys',
+ 'enable_header_ad',
+ 'gmt_offset',
+ 'gravatar_disable_hovercards',
+ 'highlander_comment_form_prompt',
+ 'image_default_link_type',
+ 'infinite_scroll',
+ 'infinite_scroll_google_analytics',
+ 'jetpack-memberships-connected-account-id',
+ 'jetpack-twitter-cards-site-tag',
+ 'jetpack_activated',
+ 'jetpack_allowed_xsite_search_ids',
+ 'jetpack_api_cache_enabled',
+ 'jetpack_autoupdate_core',
+ 'jetpack_autoupdate_plugins',
+ 'jetpack_autoupdate_plugins_translations',
+ 'jetpack_autoupdate_themes',
+ 'jetpack_autoupdate_themes_translations',
+ 'jetpack_autoupdate_translations',
+ 'jetpack_available_modules',
+ 'jetpack_comment_form_color_scheme',
+ 'jetpack_comment_likes_enabled',
+ 'jetpack_connection_active_plugins',
+ 'jetpack_excluded_extensions',
+ 'jetpack_mailchimp',
+ 'jetpack_options',
+ 'jetpack_portfolio',
+ 'jetpack_portfolio_posts_per_page',
+ 'jetpack_protect_global_whitelist',
+ 'jetpack_protect_key',
+ 'jetpack_publicize_options',
+ 'jetpack_relatedposts',
+ 'jetpack_sso_match_by_email',
+ 'jetpack_sso_require_two_step',
+ 'jetpack_sync_non_blocking', // is non-blocking Jetpack Sync flow enabled.
+ 'jetpack_sync_non_public_post_stati',
+ 'jetpack_sync_settings_comment_meta_whitelist',
+ 'jetpack_sync_settings_post_meta_whitelist',
+ 'jetpack_sync_settings_post_types_blacklist',
+ 'jetpack_sync_settings_taxonomies_blacklist',
+ 'jetpack_testimonial',
+ 'jetpack_testimonial_posts_per_page',
+ 'jetpack_wga',
+ 'large_size_h',
+ 'large_size_w',
+ 'mailserver_login', // Not syncing contents, only the option name.
+ 'mailserver_pass', // Not syncing contents, only the option name.
+ 'mailserver_port',
+ 'mailserver_url',
+ 'medium_size_h',
+ 'medium_size_w',
+ 'moderation_keys',
+ 'moderation_notify',
+ 'monitor_receive_notifications',
+ 'new_admin_email',
+ 'page_comments',
+ 'page_for_posts',
+ 'page_on_front',
+ 'permalink_structure',
+ 'ping_sites',
+ 'post_by_email_address',
+ 'post_count',
+ 'posts_per_page',
+ 'posts_per_rss',
+ 'require_name_email',
+ 'rss_use_excerpt',
+ 'sharing-options',
+ 'sharing-services',
+ 'show_avatars',
+ 'show_on_front',
+ 'sidebars_widgets',
+ 'site_icon', // (int) - ID of core's Site Icon attachment ID
+ 'site_logo',
+ 'site_segment',
+ 'site_user_type',
+ 'site_vertical',
+ 'social_notifications_like',
+ 'social_notifications_reblog',
+ 'social_notifications_subscribe',
+ 'start_of_week',
+ 'stats_options',
+ 'stb_enabled',
+ 'stc_enabled',
+ 'sticky_posts',
+ 'stylesheet',
+ 'subscription_options',
+ 'tag_base',
+ 'thread_comments',
+ 'thread_comments_depth',
+ 'thumbnail_crop',
+ 'thumbnail_size_h',
+ 'thumbnail_size_w',
+ 'tiled_galleries',
+ 'time_format',
+ 'timezone_string',
+ 'twitter_via',
+ 'uninstall_plugins',
+ 'uploads_use_yearmonth_folders',
+ 'users_can_register',
+ 'verification_services_codes',
+ 'wordads_ccpa_enabled',
+ 'wordads_ccpa_privacy_policy_url',
+ 'wordads_custom_adstxt',
+ 'wordads_custom_adstxt_enabled',
+ 'wordads_display_archive',
+ 'wordads_display_front_page',
+ 'wordads_display_page',
+ 'wordads_display_post',
+ 'wordads_second_belowpost',
+ 'wp_mobile_app_promos',
+ 'wp_mobile_excerpt',
+ 'wp_mobile_featured_images',
+ 'wp_page_for_privacy_policy',
+ 'wpcom_is_fse_activated',
+ 'wpcom_publish_comments_with_markdown',
+ 'wpcom_publish_posts_with_markdown',
+ );
+
+ /**
+ * Return options whitelist filtered.
+ *
+ * @return array Options whitelist.
+ */
+ public static function get_options_whitelist() {
+ /** This filter is already documented in json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php */
+ $options_whitelist = apply_filters( 'jetpack_options_whitelist', self::$default_options_whitelist );
+ /**
+ * Filter the list of WordPress options that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.8.0
+ *
+ * @param array The default list of options.
+ */
+ return apply_filters( 'jetpack_sync_options_whitelist', $options_whitelist );
+ }
+
+ /**
+ * "Contentless" Options.
+ *
+ * Do not sync contents for these events, only the option name. Good for sensitive information that Sync does not need.
+ *
+ * @var array Options to sync name only.
+ */
+ public static $default_options_contentless = array(
+ 'mailserver_login',
+ 'mailserver_pass',
+ );
+
+ /**
+ * Return contentless options.
+ *
+ * These are options that Sync only uses the option names, not the content of the option.
+ *
+ * @return array
+ */
+ public static function get_options_contentless() {
+ /**
+ * Filter the list of WordPress options that should be synced without content
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 6.1.0
+ *
+ * @param array The list of options synced without content.
+ */
+ return apply_filters( 'jetpack_sync_options_contentless', self::$default_options_contentless );
+ }
+
+ /**
+ * Array of defaulted constants whitelisted.
+ *
+ * @var array Default constants whitelist
+ */
+ public static $default_constants_whitelist = array(
+ 'ABSPATH',
+ 'ALTERNATE_WP_CRON',
+ 'ATOMIC_CLIENT_ID',
+ 'AUTOMATIC_UPDATER_DISABLED',
+ 'DISABLE_WP_CRON',
+ 'DISALLOW_FILE_EDIT',
+ 'DISALLOW_FILE_MODS',
+ 'EMPTY_TRASH_DAYS',
+ 'FS_METHOD',
+ 'IS_PRESSABLE',
+ 'JETPACK__VERSION',
+ 'PHP_VERSION',
+ 'WP_ACCESSIBLE_HOSTS',
+ 'WP_AUTO_UPDATE_CORE',
+ 'WP_CONTENT_DIR',
+ 'WP_CRON_LOCK_TIMEOUT',
+ 'WP_DEBUG',
+ 'WP_HTTP_BLOCK_EXTERNAL',
+ 'WP_MAX_MEMORY_LIMIT',
+ 'WP_MEMORY_LIMIT',
+ 'WP_POST_REVISIONS',
+ );
+
+ /**
+ * Get constants whitelisted by Sync.
+ *
+ * @return array Constants accessible via sync.
+ */
+ public static function get_constants_whitelist() {
+ /**
+ * Filter the list of PHP constants that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.8.0
+ *
+ * @param array The default list of constants options.
+ */
+ return apply_filters( 'jetpack_sync_constants_whitelist', self::$default_constants_whitelist );
+ }
+
+ /**
+ * Callables able to be managed via JSON API.
+ *
+ * @var array Default whitelist of callables.
+ */
+ public static $default_callable_whitelist = array(
+ 'get_plugins' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_plugins' ),
+ 'get_plugins_action_links' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_plugins_action_links' ),
+ 'has_file_system_write_access' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'file_system_write_access' ),
+ 'home_url' => array( 'Automattic\\Jetpack\\Connection\\Urls', 'home_url' ),
+ 'hosting_provider' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_hosting_provider' ),
+ 'is_fse_theme' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_is_fse_theme' ),
+ 'is_main_network' => array( __CLASS__, 'is_multi_network' ),
+ 'is_multi_site' => 'is_multisite',
+ 'is_version_controlled' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'is_version_controlled' ),
+ 'locale' => 'get_locale',
+ 'main_network_site' => array( 'Automattic\\Jetpack\\Connection\\Urls', 'main_network_site_url' ),
+ 'main_network_site_wpcom_id' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'main_network_site_wpcom_id' ),
+ 'paused_plugins' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_paused_plugins' ),
+ 'paused_themes' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_paused_themes' ),
+ 'post_type_features' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_post_type_features' ),
+ 'post_types' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_post_types' ),
+ 'rest_api_allowed_post_types' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'rest_api_allowed_post_types' ),
+ 'rest_api_allowed_public_metadata' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'rest_api_allowed_public_metadata' ),
+ 'roles' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'roles' ),
+ 'shortcodes' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_shortcodes' ),
+ 'site_icon_url' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'site_icon_url' ),
+ 'site_url' => array( 'Automattic\\Jetpack\\Connection\\Urls', 'site_url' ),
+ 'taxonomies' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_taxonomies' ),
+ 'theme_support' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_theme_support' ),
+ 'timezone' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'get_timezone' ),
+ 'wp_get_environment_type' => 'wp_get_environment_type',
+ 'wp_max_upload_size' => 'wp_max_upload_size',
+ 'wp_version' => array( 'Automattic\\Jetpack\\Sync\\Functions', 'wp_version' ),
+ );
+
+ /**
+ * Array of post type attributes synced.
+ *
+ * @var array Default post type attributes.
+ */
+ public static $default_post_type_attributes = array(
+ '_builtin' => false,
+ '_edit_link' => 'post.php?post=%d',
+ 'can_export' => true,
+ 'cap' => array(),
+ 'capabilities' => array(),
+ 'capability_type' => 'post',
+ 'delete_with_user' => null,
+ 'description' => '',
+ 'exclude_from_search' => true,
+ 'has_archive' => false,
+ 'hierarchical' => false,
+ 'label' => '',
+ 'labels' => array(),
+ 'map_meta_cap' => true,
+ 'menu_icon' => null,
+ 'menu_position' => null,
+ 'name' => '',
+ 'public' => false,
+ 'publicly_queryable' => null,
+ 'query_var' => true,
+ 'rest_base' => false,
+ 'rewrite' => true,
+ 'show_in_admin_bar' => false,
+ 'show_in_menu' => null,
+ 'show_in_nav_menus' => null,
+ 'show_in_rest' => false,
+ 'show_ui' => false,
+ 'supports' => array(),
+ 'taxonomies' => array(),
+ );
+
+ /**
+ * Get the whitelist of callables allowed to be managed via the JSON API.
+ *
+ * @return array Whitelist of callables allowed to be managed via the JSON API.
+ */
+ public static function get_callable_whitelist() {
+ /**
+ * Filter the list of callables that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.8.0
+ *
+ * @param array The default list of callables.
+ */
+ return apply_filters( 'jetpack_sync_callable_whitelist', self::$default_callable_whitelist );
+ }
+
+ /**
+ * Post types that will not be synced.
+ *
+ * These are usually automated post types (sitemaps, logs, etc).
+ *
+ * @var array Blacklisted post types.
+ */
+ public static $blacklisted_post_types = array(
+ 'ai1ec_event',
+ 'ai_log', // Logger - https://github.com/alleyinteractive/logger.
+ 'amp_validated_url', // AMP Validation Errors.
+ 'bwg_album',
+ 'bwg_gallery',
+ 'customize_changeset', // WP built-in post type for Customizer changesets.
+ 'dn_wp_yt_log',
+ 'flamingo_contact', // https://wordpress.org/plugins/flamingo/.
+ 'flamingo_inbound',
+ 'flamingo_outbound',
+ 'http',
+ 'idx_page',
+ 'jetpack_migration',
+ 'jp_img_sitemap',
+ 'jp_img_sitemap_index',
+ 'jp_sitemap',
+ 'jp_sitemap_index',
+ 'jp_sitemap_master',
+ 'jp_vid_sitemap',
+ 'jp_vid_sitemap_index',
+ 'msm_sitemap', // Metro Sitemap Plugin.
+ 'postman_sent_mail',
+ 'rssap-feed',
+ 'rssmi_feed_item',
+ 'scheduled-action', // Action Scheduler - Job Queue for WordPress https://github.com/woocommerce/woocommerce/tree/e7762627c37ec1f7590e6cac4218ba0c6a20024d/includes/libraries/action-scheduler .
+ 'secupress_log_action',
+ 'sg_optimizer_jobs',
+ 'snitch',
+ 'vip-legacy-redirect',
+ 'wp-rest-api-log', // https://wordpress.org/plugins/wp-rest-api-log/.
+ 'wp_automatic',
+ 'wp_log', // WP Logging Plugin.
+ 'wpephpcompat_jobs',
+ 'wprss_feed_item',
+ );
+
+ /**
+ * Taxonomies that we're not syncing by default.
+ *
+ * The list is compiled by auditing the dynamic filters and actions that contain taxonomy slugs
+ * and could conflict with other existing filters/actions in WP core, Jetpack and WooCommerce.
+ *
+ * @var array
+ */
+ public static $blacklisted_taxonomies = array(
+ 'ancestors',
+ 'archives_link',
+ 'attached_file',
+ 'attached_media',
+ 'attached_media_args',
+ 'attachment',
+ 'available_languages',
+ 'avatar',
+ 'avatar_comment_types',
+ 'avatar_data',
+ 'avatar_url',
+ 'bloginfo_rss',
+ 'blogs_of_user',
+ 'bookmark_link',
+ 'bookmarks',
+ 'calendar',
+ 'canonical_url',
+ 'categories_per_page',
+ 'categories_taxonomy',
+ 'category_form',
+ 'category_form_fields',
+ 'category_form_pre',
+ 'comment',
+ 'comment_ID',
+ 'comment_author',
+ 'comment_author_IP',
+ 'comment_author_email',
+ 'comment_author_link',
+ 'comment_author_url',
+ 'comment_author_url_link',
+ 'comment_date',
+ 'comment_excerpt',
+ 'comment_link',
+ 'comment_misc_actions',
+ 'comment_text',
+ 'comment_time',
+ 'comment_type',
+ 'comments_link',
+ 'comments_number',
+ 'comments_pagenum_link',
+ 'custom_logo',
+ 'date_sql',
+ 'default_comment_status',
+ 'delete_post_link',
+ 'edit_bookmark_link',
+ 'edit_comment_link',
+ 'edit_post_link',
+ 'edit_tag_link',
+ 'edit_term_link',
+ 'edit_user_link',
+ 'enclosed',
+ 'feed_build_date',
+ 'form_advanced',
+ 'form_after_editor',
+ 'form_after_title',
+ 'form_before_permalink',
+ 'form_top',
+ 'handle_product_cat',
+ 'header_image_tag',
+ 'header_video_url',
+ 'image_tag',
+ 'image_tag_class',
+ 'lastpostdate',
+ 'lastpostmodified',
+ 'link',
+ 'link_category_form',
+ 'link_category_form_fields',
+ 'link_category_form_pre',
+ 'main_network_id',
+ 'media',
+ 'media_item_args',
+ 'ms_user',
+ 'network',
+ 'object_terms',
+ 'option',
+ 'page',
+ 'page_form',
+ 'page_of_comment',
+ 'page_uri',
+ 'pagenum_link',
+ 'pages',
+ 'plugin',
+ 'post',
+ 'post_galleries',
+ 'post_gallery',
+ 'post_link',
+ 'post_modified_time',
+ 'post_status',
+ 'post_time',
+ 'postmeta',
+ 'posts_per_page',
+ 'product_search_form',
+ 'profile_url',
+ 'pung',
+ 'role_list',
+ 'sample_permalink',
+ 'sample_permalink_html',
+ 'schedule',
+ 'search_form',
+ 'search_query',
+ 'shortlink',
+ 'site',
+ 'site_email_content',
+ 'site_icon_url',
+ 'site_option',
+ 'space_allowed',
+ 'tag',
+ 'tag_form',
+ 'tag_form_fields',
+ 'tag_form_pre',
+ 'tag_link',
+ 'tags',
+ 'tags_per_page',
+ 'term',
+ 'term_link',
+ 'term_relationships',
+ 'term_taxonomies',
+ 'term_taxonomy',
+ 'terms',
+ 'terms_args',
+ 'terms_defaults',
+ 'terms_fields',
+ 'terms_orderby',
+ 'the_archive_description',
+ 'the_archive_title',
+ 'the_categories',
+ 'the_date',
+ 'the_excerpt',
+ 'the_guid',
+ 'the_modified_date',
+ 'the_modified_time',
+ 'the_post_type_description',
+ 'the_tags',
+ 'the_terms',
+ 'the_time',
+ 'theme_starter_content',
+ 'to_ping',
+ 'user',
+ 'user_created_user',
+ 'user_form',
+ 'user_profile',
+ 'user_profile_update',
+ 'usermeta',
+ 'usernumposts',
+ 'users_drafts',
+ 'webhook',
+ 'widget',
+ 'woocommerce_archive',
+ 'wp_title_rss',
+ );
+
+ /**
+ * Default array of post table columns.
+ *
+ * @var array Post table columns.
+ */
+ public static $default_post_checksum_columns = array(
+ 'ID',
+ 'post_modified',
+ );
+
+ /**
+ * Default array of post meta table columns.
+ *
+ * @var array Post meta table columns.
+ */
+ public static $default_post_meta_checksum_columns = array(
+ 'meta_id',
+ 'meta_value',
+ );
+
+ /**
+ * Default array of comment table columns.
+ *
+ * @var array Default comment table columns.
+ */
+ public static $default_comment_checksum_columns = array(
+ 'comment_ID',
+ 'comment_content',
+ );
+
+ /**
+ * Default array of comment meta columns.
+ *
+ * @var array Comment meta table columns.
+ */
+ public static $default_comment_meta_checksum_columns = array(
+ 'meta_id',
+ 'meta_value',
+ );
+
+ /**
+ * Default array of option table columns.
+ *
+ * @var array Default array of option columns.
+ */
+ public static $default_option_checksum_columns = array(
+ 'option_name',
+ 'option_value',
+ );
+
+ /**
+ * Default array of term columns.
+ *
+ * @var array array of term columns.
+ */
+ public static $default_term_checksum_columns = array(
+ 'name',
+ 'slug',
+ 'term_id',
+ );
+
+ /**
+ * Default array of term taxonomy columns.
+ *
+ * @var array Array of term taxonomy columns.
+ */
+ public static $default_term_taxonomy_checksum_columns = array(
+ 'count',
+ 'parent',
+ 'taxonomy',
+ 'term_id',
+ 'term_taxonomy_id',
+ );
+
+ /**
+ * Default term relationship columns.
+ *
+ * @var array Array of term relationship columns.
+ */
+ public static $default_term_relationships_checksum_columns = array(
+ 'object_id',
+ 'term_order',
+ 'term_taxonomy_id',
+ );
+
+ /**
+ * Default multisite callables able to be managed via JSON API.
+ *
+ * @var array multsite callables whitelisted
+ */
+ public static $default_multisite_callable_whitelist = array();
+
+ /**
+ * Get array of multisite callables whitelisted.
+ *
+ * @return array Multisite callables managable via JSON API.
+ */
+ public static function get_multisite_callable_whitelist() {
+ /**
+ * Filter the list of multisite callables that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.8.0
+ *
+ * @param array The default list of multisite callables.
+ */
+ return apply_filters( 'jetpack_sync_multisite_callable_whitelist', self::$default_multisite_callable_whitelist );
+ }
+
+ /**
+ * Array of post meta keys whitelisted.
+ *
+ * @var array Post meta whitelist.
+ */
+ public static $post_meta_whitelist = array(
+ '_feedback_akismet_values',
+ '_feedback_email',
+ '_feedback_extra_fields',
+ '_g_feedback_shortcode',
+ '_jetpack_post_thumbnail',
+ '_last_editor_used_jetpack',
+ '_menu_item_classes',
+ '_menu_item_menu_item_parent',
+ '_menu_item_object',
+ '_menu_item_object_id',
+ '_menu_item_orphaned',
+ '_menu_item_type',
+ '_menu_item_xfn',
+ '_publicize_facebook_user',
+ '_publicize_twitter_user',
+ '_thumbnail_id',
+ '_wp_attached_file',
+ '_wp_attachment_backup_sizes',
+ '_wp_attachment_context',
+ '_wp_attachment_image_alt',
+ '_wp_attachment_is_custom_background',
+ '_wp_attachment_is_custom_header',
+ '_wp_attachment_metadata',
+ '_wp_page_template',
+ '_wp_trash_meta_comments_status',
+ '_wpas_feature_enabled',
+ '_wpas_is_tweetstorm',
+ '_wpas_mess',
+ 'advanced_seo_description', // Jetpack_SEO_Posts::DESCRIPTION_META_KEY.
+ 'content_width',
+ 'custom_css_add',
+ 'custom_css_preprocessor',
+ 'enclosure',
+ 'imagedata',
+ 'nova_price',
+ 'publicize_results',
+ 'sharing_disabled',
+ 'switch_like_status',
+ 'videopress_guid',
+ 'vimeo_poster_image',
+ );
+
+ /**
+ * Get the post meta key whitelist.
+ *
+ * @return array Post meta whitelist.
+ */
+ public static function get_post_meta_whitelist() {
+ /**
+ * Filter the list of post meta data that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.8.0
+ *
+ * @param array The default list of meta data keys.
+ */
+ return apply_filters( 'jetpack_sync_post_meta_whitelist', self::$post_meta_whitelist );
+ }
+
+ /**
+ * Comment meta whitelist.
+ *
+ * @var array Comment meta whitelist.
+ */
+ public static $comment_meta_whitelist = array(
+ 'hc_avatar',
+ 'hc_foreign_user_id',
+ 'hc_post_as',
+ 'hc_wpcom_id_sig',
+ );
+
+ /**
+ * Get the comment meta whitelist.
+ *
+ * @return array
+ */
+ public static function get_comment_meta_whitelist() {
+ /**
+ * Filter the list of comment meta data that are manageable via the JSON API.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.7.0
+ *
+ * @param array The default list of comment meta data keys.
+ */
+ return apply_filters( 'jetpack_sync_comment_meta_whitelist', self::$comment_meta_whitelist );
+ }
+
+ /**
+ * Default theme support whitelist.
+ *
+ * @todo move this to server? - these are theme support values
+ * that should be synced as jetpack_current_theme_supports_foo option values
+ *
+ * @var array Default theme support whitelist.
+ */
+ public static $default_theme_support_whitelist = array(
+ 'align-wide',
+ 'automatic-feed-links',
+ 'custom-background',
+ 'custom-header',
+ 'custom-logo',
+ 'customize-selective-refresh-widgets',
+ 'dark-editor-style',
+ 'disable-custom-colors',
+ 'disable-custom-font-sizes',
+ 'disable-custom-gradients',
+ 'editor-color-palette',
+ 'editor-font-sizes',
+ 'editor-gradient-presets',
+ 'editor-style', // deprecated.
+ 'editor-styles',
+ 'html5',
+ 'infinite-scroll',
+ 'jetpack-responsive-videos',
+ 'jetpack-social-menu',
+ 'menus',
+ 'post-formats',
+ 'post-thumbnails',
+ 'responsive-embeds',
+ 'site-logo',
+ 'title-tag',
+ 'widgets',
+ 'wp-block-styles',
+ );
+
+ /**
+ * Is an option whitelisted?
+ *
+ * @param string $option Option name.
+ * @return bool If option is on the whitelist.
+ */
+ public static function is_whitelisted_option( $option ) {
+ $whitelisted_options = self::get_options_whitelist();
+ foreach ( $whitelisted_options as $whitelisted_option ) {
+ if ( '/' === $whitelisted_option[0] && preg_match( $whitelisted_option, $option ) ) {
+ return true;
+ } elseif ( $whitelisted_option === $option ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Default whitelist of capabilities to sync.
+ *
+ * @var array Array of WordPress capabilities.
+ */
+ public static $default_capabilities_whitelist = array(
+ 'activate_plugins',
+ 'add_users',
+ 'create_users',
+ 'customize',
+ 'delete_others_pages',
+ 'delete_others_posts',
+ 'delete_pages',
+ 'delete_plugins',
+ 'delete_posts',
+ 'delete_private_pages',
+ 'delete_private_posts',
+ 'delete_published_pages',
+ 'delete_published_posts',
+ 'delete_site',
+ 'delete_themes',
+ 'delete_users',
+ 'edit_dashboard',
+ 'edit_files',
+ 'edit_others_pages',
+ 'edit_others_posts',
+ 'edit_pages',
+ 'edit_plugins',
+ 'edit_posts',
+ 'edit_private_pages',
+ 'edit_private_posts',
+ 'edit_published_pages',
+ 'edit_published_posts',
+ 'edit_theme_options',
+ 'edit_themes',
+ 'edit_users',
+ 'export',
+ 'import',
+ 'install_plugins',
+ 'install_themes',
+ 'list_users',
+ 'manage_categories',
+ 'manage_links',
+ 'manage_options',
+ 'moderate_comments',
+ 'promote_users',
+ 'publish_pages',
+ 'publish_posts',
+ 'read',
+ 'read_private_pages',
+ 'read_private_posts',
+ 'remove_users',
+ 'switch_themes',
+ 'unfiltered_html',
+ 'unfiltered_upload',
+ 'update_core',
+ 'update_plugins',
+ 'update_themes',
+ 'upload_files',
+ 'upload_plugins',
+ 'upload_themes',
+ );
+
+ /**
+ * Get default capabilities whitelist.
+ *
+ * @return array
+ */
+ public static function get_capabilities_whitelist() {
+ /**
+ * Filter the list of capabilities that we care about
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.5.0
+ *
+ * @param array The default list of capabilities.
+ */
+ return apply_filters( 'jetpack_sync_capabilities_whitelist', self::$default_capabilities_whitelist );
+ }
+
+ /**
+ * Get max execution sync time.
+ *
+ * @return float Number of seconds.
+ */
+ public static function get_max_sync_execution_time() {
+ $max_exec_time = (int) ini_get( 'max_execution_time' );
+ if ( 0 === $max_exec_time ) {
+ // 0 actually means "unlimited", but let's not treat it that way.
+ $max_exec_time = 60;
+ }
+ return floor( $max_exec_time / 3 );
+ }
+
+ /**
+ * Get default for a given setting.
+ *
+ * @param string $setting Setting to get.
+ * @return mixed Value will be a string, int, array, based on the particular setting requested.
+ */
+ public static function get_default_setting( $setting ) {
+ $default_name = "default_$setting"; // e.g. default_dequeue_max_bytes.
+ return self::$$default_name;
+ }
+
+ /**
+ * Default list of network options.
+ *
+ * @var array network options
+ */
+ public static $default_network_options_whitelist = array(
+ 'active_sitewide_plugins',
+ 'auto_update_plugins', // WordPress 5.5+ auto-updates.
+ 'jetpack_protect_global_whitelist',
+ 'jetpack_protect_key',
+ 'site_name',
+ );
+
+ /**
+ * A mapping of known importers to friendly names.
+ *
+ * Keys are the class name of the known importer.
+ * Values are the friendly name.
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.3.0
+ *
+ * @var array
+ */
+ public static $default_known_importers = array(
+ 'Blogger_Importer' => 'blogger',
+ 'LJ_API_Import' => 'livejournal',
+ 'MT_Import' => 'mt',
+ 'RSS_Import' => 'rss',
+ 'WC_Tax_Rate_Importer' => 'woo-tax-rate',
+ 'WP_Import' => 'wordpress',
+ );
+
+ /**
+ * Returns a list of known importers.
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.3.0
+ *
+ * @return array Known importers with importer class names as keys and friendly names as values.
+ */
+ public static function get_known_importers() {
+ /**
+ * Filter the list of known importers.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.3.0
+ *
+ * @param array The default list of known importers.
+ */
+ return apply_filters( 'jetpack_sync_known_importers', self::$default_known_importers );
+ }
+
+ /**
+ * Whether this is a system with a multiple networks.
+ * We currently need this static wrapper because we statically define our default list of callables.
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.6.0
+ *
+ * @uses Automattic\Jetpack\Status::is_multi_network
+ *
+ * @return boolean
+ */
+ public static function is_multi_network() {
+ $status = new Status();
+ return $status->is_multi_network();
+ }
+
+ /**
+ * Default bytes to dequeue.
+ *
+ * @var int Bytes.
+ */
+ public static $default_dequeue_max_bytes = 500000; // very conservative value, 1/2 MB.
+
+ /**
+ * Default upload bytes.
+ *
+ * This value is a little bigger than the upload limit to account for serialization.
+ *
+ * @var int Bytes.
+ */
+ public static $default_upload_max_bytes = 600000;
+
+ /**
+ * Default number of rows uploaded.
+ *
+ * @var int Number of rows.
+ */
+ public static $default_upload_max_rows = 500;
+
+ /**
+ * Default sync wait time.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_sync_wait_time = 10; // seconds, between syncs.
+
+ /**
+ * Only wait before next send if the current send took more than this number of seconds.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_sync_wait_threshold = 10;
+
+ /**
+ * Default wait between attempting to continue a full sync via requests.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_enqueue_wait_time = 1;
+
+ /**
+ * Maximum queue size.
+ *
+ * Each item is represented with a new row in the wp_options table.
+ *
+ * @var int Number of queue items.
+ */
+ public static $default_max_queue_size = 5000;
+
+ /**
+ * Default maximum lag allowed in the queue.
+ *
+ * @var int Number of seconds
+ */
+ public static $default_max_queue_lag = 7200; // 2 hours.
+
+ /**
+ * Default for default writes per sec.
+ *
+ * @var int Rows per second.
+ */
+ public static $default_queue_max_writes_sec = 100; // 100 rows a second.
+
+ /**
+ * Default for post types blacklist.
+ *
+ * @var array Empty array.
+ */
+ public static $default_post_types_blacklist = array();
+
+ /**
+ * Default for taxonomies blacklist.
+ *
+ * @var array Empty array.
+ */
+ public static $default_taxonomies_blacklist = array();
+
+ /**
+ * Default for taxonomies whitelist.
+ *
+ * @var array Empty array.
+ */
+ public static $default_taxonomy_whitelist = array();
+
+ /**
+ * Default for post meta whitelist.
+ *
+ * @var array Empty array.
+ */
+ public static $default_post_meta_whitelist = array();
+
+ /**
+ * Default for comment meta whitelist.
+ *
+ * @var array Empty array.
+ */
+ public static $default_comment_meta_whitelist = array();
+
+ /**
+ * Default for disabling sync across the site.
+ *
+ * @var int Bool-ish. Default to 0.
+ */
+ public static $default_disable = 0; // completely disable sending data to wpcom.
+
+ /**
+ * Default for disabling sync across the entire network on multisite.
+ *
+ * @var int Bool-ish. Default 0.
+ */
+ public static $default_network_disable = 0;
+
+ /**
+ * Default for disabling checksums.
+ *
+ * @var int Bool-ish. Default 0.
+ */
+ public static $default_checksum_disable = 0;
+
+ /**
+ * Should Sync use cron?
+ *
+ * @var int Bool-ish value. Default 1.
+ */
+ public static $default_sync_via_cron = 1;
+
+ /**
+ * Default if Sync should render content.
+ *
+ * @var int Bool-ish value. Default is 0.
+ */
+ public static $default_render_filtered_content = 0;
+
+ /**
+ * Default number of items to enqueue at a time when running full sync.
+ *
+ * @var int Number of items.
+ */
+ public static $default_max_enqueue_full_sync = 100;
+
+ /**
+ * Default for maximum queue size during a full sync.
+ *
+ * Each item will represent a value in the wp_options table.
+ *
+ * @var int Number of items.
+ */
+ public static $default_max_queue_size_full_sync = 1000; // max number of total items in the full sync queue.
+
+ /**
+ * Default max time for sending in immediate mode.
+ *
+ * @var float Number of Seconds
+ */
+ public static $default_full_sync_send_duration = 9;
+
+ /**
+ * Defaul for time between syncing callables.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_sync_callables_wait_time = MINUTE_IN_SECONDS; // seconds before sending callables again.
+
+ /**
+ * Default for time between syncing constants.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_sync_constants_wait_time = HOUR_IN_SECONDS; // seconds before sending constants again.
+ /**
+ * Default for sync queue lock timeout time.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_sync_queue_lock_timeout = 120; // 2 minutes.
+
+ /**
+ * Default for cron sync time limit.
+ *
+ * @var int Number of seconds.
+ */
+ public static $default_cron_sync_time_limit = 4 * MINUTE_IN_SECONDS;
+
+ /**
+ * Default for number of term relationship items sent in an full sync item.
+ *
+ * @var int Number of items.
+ */
+ public static $default_term_relationships_full_sync_item_size = 100;
+
+ /**
+ * Default for enabling incremental sync.
+ *
+ * @var int 1 for true.
+ */
+ public static $default_sync_sender_enabled = 1; // Should send incremental sync items.
+
+ /**
+ * Default for enabling Full Sync.
+ *
+ * @var int 1 for true.
+ */
+ public static $default_full_sync_sender_enabled = 1; // Should send full sync items.
+
+ /**
+ * Default Full Sync config
+ *
+ * @var array list of module names.
+ */
+ public static $default_full_sync_config = array(
+ 'comments' => 1,
+ 'constants' => 1,
+ 'functions' => 1,
+ 'options' => 1,
+ 'posts' => 1,
+ 'term_relationships' => 1,
+ 'terms' => 1,
+ 'themes' => 1,
+ 'updates' => 1,
+ 'users' => 1,
+ );
+
+ /**
+ * Default Full Sync max objects to send on a single request.
+ *
+ * @var array list of module => max.
+ */
+ public static $default_full_sync_limits = array(
+ 'comments' => array(
+ 'chunk_size' => 100,
+ 'max_chunks' => 10,
+ ),
+ 'posts' => array(
+ 'chunk_size' => 100,
+ 'max_chunks' => 1,
+ ),
+ 'term_relationships' => array(
+ 'chunk_size' => 1000,
+ 'max_chunks' => 10,
+ ),
+ 'terms' => array(
+ 'chunk_size' => 1000,
+ 'max_chunks' => 10,
+ ),
+ 'users' => array(
+ 'chunk_size' => 100,
+ 'max_chunks' => 10,
+ ),
+ );
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php
new file mode 100644
index 00000000..02de16cd
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php
@@ -0,0 +1,631 @@
+<?php
+/**
+ * Utility functions to generate data synced to wpcom
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Urls;
+use Automattic\Jetpack\Constants;
+
+/**
+ * Utility functions to generate data synced to wpcom
+ */
+class Functions {
+ const HTTPS_CHECK_OPTION_PREFIX = 'jetpack_sync_https_history_';
+ const HTTPS_CHECK_HISTORY = 5;
+
+ /**
+ * Return array of Jetpack modules.
+ *
+ * @return array
+ */
+ public static function get_modules() {
+ if ( defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ require_once JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php';
+
+ return \Jetpack_Admin::init()->get_modules();
+ }
+
+ return array();
+ }
+
+ /**
+ * Return array of taxonomies registered on the site.
+ *
+ * @return array
+ */
+ public static function get_taxonomies() {
+ global $wp_taxonomies;
+ $wp_taxonomies_without_callbacks = array();
+ foreach ( $wp_taxonomies as $taxonomy_name => $taxonomy ) {
+ $sanitized_taxonomy = self::sanitize_taxonomy( $taxonomy );
+ if ( ! empty( $sanitized_taxonomy ) ) {
+ $wp_taxonomies_without_callbacks[ $taxonomy_name ] = $sanitized_taxonomy;
+ }
+ }
+ return $wp_taxonomies_without_callbacks;
+ }
+
+ /**
+ * Return array of registered shortcodes.
+ *
+ * @return array
+ */
+ public static function get_shortcodes() {
+ global $shortcode_tags;
+ return array_keys( $shortcode_tags );
+ }
+
+ /**
+ * Removes any callback data since we will not be able to process it on our side anyways.
+ *
+ * @param \WP_Taxonomy $taxonomy \WP_Taxonomy item.
+ *
+ * @return mixed|null
+ */
+ public static function sanitize_taxonomy( $taxonomy ) {
+
+ // Lets clone the taxonomy object instead of modifing the global one.
+ $cloned_taxonomy = json_decode( wp_json_encode( $taxonomy ) );
+
+ // recursive taxonomies are no fun.
+ if ( is_null( $cloned_taxonomy ) ) {
+ return null;
+ }
+ // Remove any meta_box_cb if they are not the default wp ones.
+ if ( isset( $cloned_taxonomy->meta_box_cb ) &&
+ ! in_array( $cloned_taxonomy->meta_box_cb, array( 'post_tags_meta_box', 'post_categories_meta_box' ), true ) ) {
+ $cloned_taxonomy->meta_box_cb = null;
+ }
+ // Remove update call back.
+ if ( isset( $cloned_taxonomy->update_count_callback ) &&
+ ! is_null( $cloned_taxonomy->update_count_callback ) ) {
+ $cloned_taxonomy->update_count_callback = null;
+ }
+ // Remove rest_controller_class if it something other then the default.
+ if ( isset( $cloned_taxonomy->rest_controller_class ) &&
+ 'WP_REST_Terms_Controller' !== $cloned_taxonomy->rest_controller_class ) {
+ $cloned_taxonomy->rest_controller_class = null;
+ }
+ return $cloned_taxonomy;
+ }
+
+ /**
+ * Return array of registered post types.
+ *
+ * @return array
+ */
+ public static function get_post_types() {
+ global $wp_post_types;
+
+ $post_types_without_callbacks = array();
+ foreach ( $wp_post_types as $post_type_name => $post_type ) {
+ $sanitized_post_type = self::sanitize_post_type( $post_type );
+ if ( ! empty( $sanitized_post_type ) ) {
+ $post_types_without_callbacks[ $post_type_name ] = $sanitized_post_type;
+ }
+ }
+ return $post_types_without_callbacks;
+ }
+
+ /**
+ * Sanitizes by cloning post type object.
+ *
+ * @param object $post_type \WP_Post_Type.
+ *
+ * @return object
+ */
+ public static function sanitize_post_type( $post_type ) {
+ // Lets clone the post type object instead of modifing the global one.
+ $sanitized_post_type = array();
+ foreach ( Defaults::$default_post_type_attributes as $attribute_key => $default_value ) {
+ if ( isset( $post_type->{ $attribute_key } ) ) {
+ $sanitized_post_type[ $attribute_key ] = $post_type->{ $attribute_key };
+ }
+ }
+ return (object) $sanitized_post_type;
+ }
+
+ /**
+ * Return information about a synced post type.
+ *
+ * @param array $sanitized_post_type Array of args used in constructing \WP_Post_Type.
+ * @param string $post_type Post type name.
+ *
+ * @return object \WP_Post_Type
+ */
+ public static function expand_synced_post_type( $sanitized_post_type, $post_type ) {
+ $post_type = sanitize_key( $post_type );
+ $post_type_object = new \WP_Post_Type( $post_type, $sanitized_post_type );
+ $post_type_object->add_supports();
+ $post_type_object->add_rewrite_rules();
+ $post_type_object->add_hooks();
+ $post_type_object->register_taxonomies();
+ return (object) $post_type_object;
+ }
+
+ /**
+ * Returns site's post_type_features.
+ *
+ * @return array
+ */
+ public static function get_post_type_features() {
+ global $_wp_post_type_features;
+
+ return $_wp_post_type_features;
+ }
+
+ /**
+ * Return hosting provider.
+ *
+ * Uses a set of known constants, classes, or functions to help determine the hosting platform.
+ *
+ * @return string Hosting provider.
+ */
+ public static function get_hosting_provider() {
+ $hosting_provider_detection_methods = array(
+ 'get_hosting_provider_by_known_constant',
+ 'get_hosting_provider_by_known_class',
+ 'get_hosting_provider_by_known_function',
+ );
+
+ $functions = new Functions();
+ foreach ( $hosting_provider_detection_methods as $method ) {
+ $hosting_provider = call_user_func( array( $functions, $method ) );
+ if ( false !== $hosting_provider ) {
+ return $hosting_provider;
+ }
+ }
+
+ return 'unknown';
+ }
+
+ /**
+ * Return a hosting provider using a set of known constants.
+ *
+ * @return mixed A host identifier string or false.
+ */
+ public function get_hosting_provider_by_known_constant() {
+ $hosting_provider_constants = array(
+ 'GD_SYSTEM_PLUGIN_DIR' => 'gd-managed-wp',
+ 'MM_BASE_DIR' => 'bh',
+ 'PAGELYBIN' => 'pagely',
+ 'KINSTAMU_VERSION' => 'kinsta',
+ 'FLYWHEEL_CONFIG_DIR' => 'flywheel',
+ 'IS_PRESSABLE' => 'pressable',
+ 'VIP_GO_ENV' => 'vip-go',
+ );
+
+ foreach ( $hosting_provider_constants as $constant => $constant_value ) {
+ if ( Constants::is_defined( $constant ) ) {
+ if ( 'VIP_GO_ENV' === $constant && false === Constants::get_constant( 'VIP_GO_ENV' ) ) {
+ continue;
+ }
+ return $constant_value;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Return a hosting provider using a set of known classes.
+ *
+ * @return mixed A host identifier string or false.
+ */
+ public function get_hosting_provider_by_known_class() {
+ $hosting_provider = false;
+
+ switch ( true ) {
+ case ( class_exists( '\\WPaaS\\Plugin' ) ):
+ $hosting_provider = 'gd-managed-wp';
+ break;
+ }
+
+ return $hosting_provider;
+ }
+
+ /**
+ * Return a hosting provider using a set of known functions.
+ *
+ * @return mixed A host identifier string or false.
+ */
+ public function get_hosting_provider_by_known_function() {
+ $hosting_provider = false;
+
+ switch ( true ) {
+ case ( function_exists( 'is_wpe' ) || function_exists( 'is_wpe_snapshot' ) ):
+ $hosting_provider = 'wpe';
+ break;
+ }
+
+ return $hosting_provider;
+ }
+
+ /**
+ * Return array of allowed REST API post types.
+ *
+ * @return array Array of allowed post types.
+ */
+ public static function rest_api_allowed_post_types() {
+ /** This filter is already documented in class.json-api-endpoints.php */
+ return apply_filters( 'rest_api_allowed_post_types', array( 'post', 'page', 'revision' ) );
+ }
+
+ /**
+ * Return array of allowed REST API public metadata.
+ *
+ * @return array Array of allowed metadata.
+ */
+ public static function rest_api_allowed_public_metadata() {
+ /**
+ * Filters the meta keys accessible by the REST API.
+ *
+ * @see https://developer.wordpress.com/2013/04/26/custom-post-type-and-metadata-support-in-the-rest-api/
+ *
+ * @module json-api
+ *
+ * @since 1.6.3
+ * @since-jetpack 2.2.3
+ *
+ * @param array $whitelisted_meta Array of metadata that is accessible by the REST API.
+ */
+ return apply_filters( 'rest_api_allowed_public_metadata', array() );
+ }
+
+ /**
+ * Finds out if a site is using a version control system.
+ *
+ * @return bool
+ **/
+ public static function is_version_controlled() {
+
+ if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ }
+ $updater = new \WP_Automatic_Updater();
+
+ return (bool) (string) $updater->is_vcs_checkout( ABSPATH );
+ }
+
+ /**
+ * Returns true if the site has file write access false otherwise.
+ *
+ * @return bool
+ **/
+ public static function file_system_write_access() {
+ if ( ! function_exists( 'get_filesystem_method' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ require_once ABSPATH . 'wp-admin/includes/template.php';
+
+ $filesystem_method = get_filesystem_method();
+ if ( 'direct' === $filesystem_method ) {
+ return true;
+ }
+
+ ob_start();
+
+ if ( ! function_exists( 'request_filesystem_credentials' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ $filesystem_credentials_are_stored = request_filesystem_credentials( self_admin_url() );
+ ob_end_clean();
+ if ( $filesystem_credentials_are_stored ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Helper function that is used when getting home or siteurl values. Decides
+ * whether to get the raw or filtered value.
+ *
+ * @deprecated 1.23.1
+ *
+ * @param string $url_type URL to get, home or siteurl.
+ * @return string
+ */
+ public static function get_raw_or_filtered_url( $url_type ) {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::get_raw_or_filtered_url' );
+ return Urls::get_raw_or_filtered_url( $url_type );
+ }
+
+ /**
+ * Return the escaped home_url.
+ *
+ * @deprecated 1.23.1
+ *
+ * @return string
+ */
+ public static function home_url() {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::home_url' );
+ return Urls::home_url();
+ }
+
+ /**
+ * Return the escaped siteurl.
+ *
+ * @deprecated 1.23.1
+ *
+ * @return string
+ */
+ public static function site_url() {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::site_url' );
+ return Urls::site_url();
+ }
+
+ /**
+ * Return main site URL with a normalized protocol.
+ *
+ * @deprecated 1.23.1
+ *
+ * @return string
+ */
+ public static function main_network_site_url() {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::main_network_site_url' );
+ return Urls::main_network_site_url();
+ }
+
+ /**
+ * Return main site WordPress.com site ID.
+ *
+ * @return string
+ */
+ public static function main_network_site_wpcom_id() {
+ /**
+ * Return the current site WPCOM ID for single site installs
+ */
+ if ( ! is_multisite() ) {
+ return \Jetpack_Options::get_option( 'id' );
+ }
+
+ /**
+ * Return the main network site WPCOM ID for multi-site installs
+ */
+ $current_network = get_network();
+ switch_to_blog( $current_network->blog_id );
+ $wpcom_blog_id = \Jetpack_Options::get_option( 'id' );
+ restore_current_blog();
+ return $wpcom_blog_id;
+ }
+
+ /**
+ * Return URL with a normalized protocol.
+ *
+ * @deprecated 1.23.1
+ *
+ * @param callable $callable Function to retrieve URL option.
+ * @param string $new_value URL Protocol to set URLs to.
+ * @return string Normalized URL.
+ */
+ public static function get_protocol_normalized_url( $callable, $new_value ) {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::get_protocol_normalized_url' );
+ return Urls::get_protocol_normalized_url( $callable, $new_value );
+ }
+
+ /**
+ * Return URL from option or PHP constant.
+ *
+ * @deprecated 1.23.1
+ *
+ * @param string $option_name (e.g. 'home').
+ *
+ * @return mixed|null URL.
+ */
+ public static function get_raw_url( $option_name ) {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::get_raw_url' );
+ return Urls::get_raw_url( $option_name );
+ }
+
+ /**
+ * Normalize domains by removing www unless declared in the site's option.
+ *
+ * @deprecated 1.23.1
+ *
+ * @param string $option Option value from the site.
+ * @param callable $url_function Function retrieving the URL to normalize.
+ * @return mixed|string URL.
+ */
+ public static function normalize_www_in_url( $option, $url_function ) {
+ _deprecated_function( __METHOD__, '1.23.1', '\\Automattic\\Jetpack\\Connection\\Urls::normalize_www_in_url' );
+ return Urls::normalize_www_in_url( $option, $url_function );
+ }
+
+ /**
+ * Return filtered value of get_plugins.
+ *
+ * @return mixed|void
+ */
+ public static function get_plugins() {
+ 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 */
+ return apply_filters( 'all_plugins', get_plugins() );
+ }
+
+ /**
+ * Get custom action link tags that the plugin is using
+ * Ref: https://codex.wordpress.org/Plugin_API/Filter_Reference/plugin_action_links_(plugin_file_name)
+ *
+ * @param string $plugin_file_singular Particular plugin.
+ * @return array of plugin action links (key: link name value: url)
+ */
+ public static function get_plugins_action_links( $plugin_file_singular = null ) {
+ // Some sites may have DOM disabled in PHP fail early.
+ if ( ! class_exists( 'DOMDocument' ) ) {
+ return array();
+ }
+ $plugins_action_links = get_option( 'jetpack_plugin_api_action_links', array() );
+ if ( ! empty( $plugins_action_links ) ) {
+ if ( is_null( $plugin_file_singular ) ) {
+ return $plugins_action_links;
+ }
+ return ( isset( $plugins_action_links[ $plugin_file_singular ] ) ? $plugins_action_links[ $plugin_file_singular ] : null );
+ }
+ return array();
+ }
+
+ /**
+ * Return the WP version as defined in the $wp_version global.
+ *
+ * @return string
+ */
+ public static function wp_version() {
+ global $wp_version;
+ return $wp_version;
+ }
+
+ /**
+ * Return site icon url used on the site.
+ *
+ * @param int $size Size of requested icon in pixels.
+ * @return mixed|string|void
+ */
+ public static function site_icon_url( $size = 512 ) {
+ $site_icon = get_site_icon_url( $size );
+ return $site_icon ? $site_icon : get_option( 'jetpack_site_icon_url' );
+ }
+
+ /**
+ * Return roles registered on the site.
+ *
+ * @return array
+ */
+ public static function roles() {
+ $wp_roles = wp_roles();
+ return $wp_roles->roles;
+ }
+
+ /**
+ * Determine time zone from WordPress' options "timezone_string"
+ * and "gmt_offset".
+ *
+ * 1. Check if `timezone_string` is set and return it.
+ * 2. Check if `gmt_offset` is set, formats UTC-offset from it and return it.
+ * 3. Default to "UTC+0" if nothing is set.
+ *
+ * Note: This function is specifically not using wp_timezone() to keep consistency with
+ * the existing formatting of the timezone string.
+ *
+ * @return string
+ */
+ public static function get_timezone() {
+ $timezone_string = get_option( 'timezone_string' );
+
+ if ( ! empty( $timezone_string ) ) {
+ return str_replace( '_', ' ', $timezone_string );
+ }
+
+ $gmt_offset = get_option( 'gmt_offset', 0 );
+
+ $formatted_gmt_offset = sprintf( '%+g', (float) $gmt_offset );
+
+ $formatted_gmt_offset = str_replace(
+ array( '.25', '.5', '.75' ),
+ array( ':15', ':30', ':45' ),
+ (string) $formatted_gmt_offset
+ );
+
+ /* translators: %s is UTC offset, e.g. "+1" */
+ return sprintf( __( 'UTC%s', 'jetpack-sync' ), $formatted_gmt_offset );
+ }
+
+ /**
+ * Return list of paused themes.
+ *
+ * @return array|bool Array of paused themes or false if unsupported.
+ */
+ public static function get_paused_themes() {
+ $paused_themes = wp_paused_themes();
+ return $paused_themes->get_all();
+ }
+
+ /**
+ * Return list of paused plugins.
+ *
+ * @return array|bool Array of paused plugins or false if unsupported.
+ */
+ public static function get_paused_plugins() {
+ $paused_plugins = wp_paused_plugins();
+ return $paused_plugins->get_all();
+ }
+
+ /**
+ * Return the theme's supported features.
+ * Used for syncing the supported feature that we care about.
+ *
+ * @return array List of features that the theme supports.
+ */
+ public static function get_theme_support() {
+ global $_wp_theme_features;
+
+ $theme_support = array();
+ foreach ( Defaults::$default_theme_support_whitelist as $theme_feature ) {
+ $has_support = current_theme_supports( $theme_feature );
+ if ( $has_support ) {
+ $theme_support[ $theme_feature ] = $_wp_theme_features[ $theme_feature ];
+ }
+ }
+
+ return $theme_support;
+ }
+
+ /**
+ * Returns if the current theme is a Full Site Editing theme.
+ *
+ * @return bool Theme is a Full Site Editing theme.
+ */
+ public static function get_is_fse_theme() {
+ return function_exists( 'gutenberg_is_fse_theme' ) && gutenberg_is_fse_theme();
+ }
+
+ /**
+ * Wraps data in a way so that we can distinguish between objects and array and also prevent object recursion.
+ *
+ * @since 1.21.0
+ *
+ * @param array|obj $any Source data to be cleaned up.
+ * @param array $seen_nodes Built array of nodes.
+ *
+ * @return array
+ */
+ public static function json_wrap( &$any, $seen_nodes = array() ) {
+ if ( is_object( $any ) ) {
+ $input = get_object_vars( $any );
+ $input['__o'] = 1;
+ } else {
+ $input = &$any;
+ }
+
+ if ( is_array( $input ) ) {
+ $seen_nodes[] = &$any;
+
+ $return = array();
+
+ foreach ( $input as $k => &$v ) {
+ if ( ( is_array( $v ) || is_object( $v ) ) ) {
+ if ( in_array( $v, $seen_nodes, true ) ) {
+ continue;
+ }
+ $return[ $k ] = self::json_wrap( $v, $seen_nodes );
+ } else {
+ $return[ $k ] = $v;
+ }
+ }
+
+ return $return;
+ }
+
+ return $any;
+
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-health.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-health.php
new file mode 100644
index 00000000..ea3d7bd4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-health.php
@@ -0,0 +1,190 @@
+<?php
+/**
+ * Health class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * Health class.
+ */
+class Health {
+
+ /**
+ * Prefix of the blog lock transient.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const STATUS_OPTION = 'sync_health_status';
+
+ /**
+ * Status key in option array.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const OPTION_STATUS_KEY = 'status';
+
+ /**
+ * Timestamp key in option array.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const OPTION_TIMESTAMP_KEY = 'timestamp';
+
+ /**
+ * Unknown status code.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const STATUS_UNKNOWN = 'unknown';
+
+ /**
+ * Disabled status code.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const STATUS_DISABLED = 'disabled';
+
+ /**
+ * Out of sync status code.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const STATUS_OUT_OF_SYNC = 'out_of_sync';
+
+ /**
+ * In sync status code.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const STATUS_IN_SYNC = 'in_sync';
+
+ /**
+ * If sync is active, Health-related hooks will be initialized after plugins are loaded.
+ */
+ public static function init() {
+ add_action( 'jetpack_full_sync_end', array( __ClASS__, 'full_sync_end_update_status' ), 10, 2 );
+ }
+
+ /**
+ * Gets health status code.
+ *
+ * @return string Sync Health Status
+ */
+ public static function get_status() {
+ $status = \Jetpack_Options::get_option( self::STATUS_OPTION );
+
+ if ( false === $status || ! is_array( $status ) || empty( $status[ self::OPTION_STATUS_KEY ] ) ) {
+ return self::STATUS_UNKNOWN;
+ }
+
+ switch ( $status[ self::OPTION_STATUS_KEY ] ) {
+ case self::STATUS_DISABLED:
+ case self::STATUS_OUT_OF_SYNC:
+ case self::STATUS_IN_SYNC:
+ return $status[ self::OPTION_STATUS_KEY ];
+ default:
+ return self::STATUS_UNKNOWN;
+ }
+
+ }
+
+ /**
+ * When the Jetpack plugin is upgraded, set status to disabled if sync is not enabled,
+ * or to unknown, if the status has never been set before.
+ */
+ public static function on_jetpack_upgraded() {
+ if ( ! Settings::is_sync_enabled() ) {
+ self::update_status( self::STATUS_DISABLED );
+ return;
+ }
+ if ( false === self::is_status_defined() ) {
+ self::update_status( self::STATUS_UNKNOWN );
+ }
+ }
+
+ /**
+ * When the Jetpack plugin is activated, set status to disabled if sync is not enabled,
+ * or to unknown.
+ */
+ public static function on_jetpack_activated() {
+ if ( ! Settings::is_sync_enabled() ) {
+ self::update_status( self::STATUS_DISABLED );
+ return;
+ }
+ self::update_status( self::STATUS_UNKNOWN );
+ }
+
+ /**
+ * Updates sync health status with either a valid status, or an unknown status.
+ *
+ * @param string $status Sync Status.
+ *
+ * @return bool True if an update occoured, or false if the status didn't change.
+ */
+ public static function update_status( $status ) {
+ if ( self::get_status() === $status ) {
+ return false;
+ }
+ // Default Status Option.
+ $new_status = array(
+ self::OPTION_STATUS_KEY => self::STATUS_UNKNOWN,
+ self::OPTION_TIMESTAMP_KEY => microtime( true ),
+ );
+
+ switch ( $status ) {
+ case self::STATUS_DISABLED:
+ case self::STATUS_OUT_OF_SYNC:
+ case self::STATUS_IN_SYNC:
+ $new_status[ self::OPTION_STATUS_KEY ] = $status;
+ break;
+ }
+
+ \Jetpack_Options::update_option( self::STATUS_OPTION, $new_status );
+ return true;
+ }
+
+ /**
+ * Check if Status has been previously set.
+ *
+ * @return bool is a Status defined
+ */
+ public static function is_status_defined() {
+ $status = \Jetpack_Options::get_option( self::STATUS_OPTION );
+
+ if ( false === $status || ! is_array( $status ) || empty( $status[ self::OPTION_STATUS_KEY ] ) ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Update Sync Status if Full Sync ended of Posts
+ *
+ * @param string $checksum The checksum that's currently being processed.
+ * @param array $range The ranges of object types being processed.
+ */
+ public static function full_sync_end_update_status( $checksum, $range ) {
+ if ( isset( $range['posts'] ) ) {
+ self::update_status( self::STATUS_IN_SYNC );
+ }
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php
new file mode 100644
index 00000000..ecc33a94
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * An implementation of Automattic\Jetpack\Sync\Codec_Interface that uses gzip's DEFLATE
+ * algorithm to compress objects serialized using json_encode.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * An implementation of Automattic\Jetpack\Sync\Codec_Interface that uses gzip's DEFLATE
+ * algorithm to compress objects serialized using json_encode
+ */
+class JSON_Deflate_Array_Codec implements Codec_Interface {
+ const CODEC_NAME = 'deflate-json-array';
+
+ /**
+ * Return the name of the codec.
+ *
+ * @return string
+ */
+ public function name() {
+ return self::CODEC_NAME;
+ }
+
+ /**
+ * Encodes an object.
+ *
+ * @param object $object Item to encode.
+ * @return string
+ */
+ public function encode( $object ) {
+ return base64_encode( gzdeflate( $this->json_serialize( $object ) ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ }
+
+ /**
+ * Decode compressed serialized value.
+ *
+ * @param string $input Item to decode.
+ * @return array|mixed|object
+ */
+ public function decode( $input ) {
+ return $this->json_unserialize( gzinflate( base64_decode( $input ) ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ }
+
+ /**
+ * Serialize JSON
+ *
+ * @see https://gist.github.com/muhqu/820694
+ *
+ * @param string $any Value to serialize and wrap.
+ *
+ * @return false|string
+ */
+ protected function json_serialize( $any ) {
+ return wp_json_encode( Functions::json_wrap( $any ) );
+ }
+
+ /**
+ * Unserialize JSON
+ *
+ * @param string $str JSON string.
+ * @return array|object Unwrapped JSON.
+ */
+ protected function json_unserialize( $str ) {
+ return $this->json_unwrap( json_decode( $str, true ) );
+ }
+
+ /**
+ * Unwraps a json_decode return.
+ *
+ * @param array|object $any json_decode object.
+ * @return array|object
+ */
+ private function json_unwrap( $any ) {
+ if ( is_array( $any ) ) {
+ foreach ( $any as $k => $v ) {
+ if ( '__o' === $k ) {
+ continue;
+ }
+ $any[ $k ] = $this->json_unwrap( $v );
+ }
+
+ if ( isset( $any['__o'] ) ) {
+ unset( $any['__o'] );
+ $any = (object) $any;
+ }
+ }
+
+ return $any;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php
new file mode 100644
index 00000000..ce2862a4
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php
@@ -0,0 +1,487 @@
+<?php
+/**
+ * Jetpack's Sync Listener
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Roles;
+
+/**
+ * This class monitors actions and logs them to the queue to be sent.
+ */
+class Listener {
+ const QUEUE_STATE_CHECK_TRANSIENT = 'jetpack_sync_last_checked_queue_state';
+ const QUEUE_STATE_CHECK_TIMEOUT = 30; // 30 seconds.
+
+ /**
+ * Sync queue.
+ *
+ * @var object
+ */
+ private $sync_queue;
+
+ /**
+ * Full sync queue.
+ *
+ * @var object
+ */
+ private $full_sync_queue;
+
+ /**
+ * Sync queue size limit.
+ *
+ * @var int size limit.
+ */
+ private $sync_queue_size_limit;
+
+ /**
+ * Sync queue lag limit.
+ *
+ * @var int Lag limit.
+ */
+ private $sync_queue_lag_limit;
+
+ /**
+ * Singleton implementation.
+ *
+ * @var Listener
+ */
+ private static $instance;
+
+ /**
+ * Get the Listener instance.
+ *
+ * @return Listener
+ */
+ public static function get_instance() {
+ if ( null === self::$instance ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Listener constructor.
+ *
+ * This is necessary because you can't use "new" when you declare instance properties >:(
+ */
+ protected function __construct() {
+ $this->set_defaults();
+ $this->init();
+ }
+
+ /**
+ * Sync Listener init.
+ */
+ private function init() {
+ $handler = array( $this, 'action_handler' );
+ $full_sync_handler = array( $this, 'full_sync_action_handler' );
+
+ foreach ( Modules::get_modules() as $module ) {
+ $module->init_listeners( $handler );
+ $module->init_full_sync_listeners( $full_sync_handler );
+ }
+
+ // Module Activation.
+ add_action( 'jetpack_activate_module', $handler );
+ add_action( 'jetpack_deactivate_module', $handler );
+
+ // Jetpack Upgrade.
+ add_action( 'updating_jetpack_version', $handler, 10, 2 );
+
+ // Send periodic checksum.
+ add_action( 'jetpack_sync_checksum', $handler );
+ }
+
+ /**
+ * Get incremental sync queue.
+ */
+ public function get_sync_queue() {
+ return $this->sync_queue;
+ }
+
+ /**
+ * Gets the full sync queue.
+ */
+ public function get_full_sync_queue() {
+ return $this->full_sync_queue;
+ }
+
+ /**
+ * Sets queue size limit.
+ *
+ * @param int $limit Queue size limit.
+ */
+ public function set_queue_size_limit( $limit ) {
+ $this->sync_queue_size_limit = $limit;
+ }
+
+ /**
+ * Get queue size limit.
+ */
+ public function get_queue_size_limit() {
+ return $this->sync_queue_size_limit;
+ }
+
+ /**
+ * Sets the queue lag limit.
+ *
+ * @param int $age Queue lag limit.
+ */
+ public function set_queue_lag_limit( $age ) {
+ $this->sync_queue_lag_limit = $age;
+ }
+
+ /**
+ * Return value of queue lag limit.
+ */
+ public function get_queue_lag_limit() {
+ return $this->sync_queue_lag_limit;
+ }
+
+ /**
+ * Force a recheck of the queue limit.
+ */
+ public function force_recheck_queue_limit() {
+ delete_transient( self::QUEUE_STATE_CHECK_TRANSIENT . '_' . $this->sync_queue->id );
+ delete_transient( self::QUEUE_STATE_CHECK_TRANSIENT . '_' . $this->full_sync_queue->id );
+ }
+
+ /**
+ * Determine if an item can be added to the queue.
+ *
+ * Prevent adding items to the queue if it hasn't sent an item for 15 mins
+ * AND the queue is over 1000 items long (by default).
+ *
+ * @param object $queue Sync queue.
+ * @return bool
+ */
+ public function can_add_to_queue( $queue ) {
+ if ( ! Settings::is_sync_enabled() ) {
+ return false;
+ }
+
+ $state_transient_name = self::QUEUE_STATE_CHECK_TRANSIENT . '_' . $queue->id;
+
+ $queue_state = get_transient( $state_transient_name );
+
+ if ( false === $queue_state ) {
+ $queue_state = array( $queue->size(), $queue->lag() );
+ set_transient( $state_transient_name, $queue_state, self::QUEUE_STATE_CHECK_TIMEOUT );
+ }
+
+ list( $queue_size, $queue_age ) = $queue_state;
+
+ return ( $queue_age < $this->sync_queue_lag_limit )
+ ||
+ ( ( $queue_size + 1 ) < $this->sync_queue_size_limit );
+ }
+
+ /**
+ * Full sync action handler.
+ *
+ * @param mixed ...$args Args passed to the action.
+ */
+ public function full_sync_action_handler( ...$args ) {
+ $this->enqueue_action( current_filter(), $args, $this->full_sync_queue );
+ }
+
+ /**
+ * Action handler.
+ *
+ * @param mixed ...$args Args passed to the action.
+ */
+ public function action_handler( ...$args ) {
+ $this->enqueue_action( current_filter(), $args, $this->sync_queue );
+ }
+
+ // add many actions to the queue directly, without invoking them.
+
+ /**
+ * Bulk add action to the queue.
+ *
+ * @param string $action_name The name the full sync action.
+ * @param array $args_array Array of chunked arguments.
+ */
+ public function bulk_enqueue_full_sync_actions( $action_name, $args_array ) {
+ $queue = $this->get_full_sync_queue();
+
+ /*
+ * If we add any items to the queue, we should try to ensure that our script
+ * can't be killed before they are sent.
+ */
+ if ( function_exists( 'ignore_user_abort' ) ) {
+ ignore_user_abort( true );
+ }
+
+ $data_to_enqueue = array();
+ $user_id = get_current_user_id();
+ $currtime = microtime( true );
+ $is_importing = Settings::is_importing();
+
+ foreach ( $args_array as $args ) {
+ $previous_end = isset( $args['previous_end'] ) ? $args['previous_end'] : null;
+ $args = isset( $args['ids'] ) ? $args['ids'] : $args;
+
+ /**
+ * Modify or reject the data within an action before it is enqueued locally.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @module sync
+ *
+ * @param array The action parameters
+ */
+ $args = apply_filters( "jetpack_sync_before_enqueue_$action_name", $args );
+ $action_data = array( $args );
+ if ( ! is_null( $previous_end ) ) {
+ $action_data[] = $previous_end;
+ }
+ // allow listeners to abort.
+ if ( false === $args ) {
+ continue;
+ }
+
+ $data_to_enqueue[] = array(
+ $action_name,
+ $action_data,
+ $user_id,
+ $currtime,
+ $is_importing,
+ );
+ }
+
+ $queue->add_all( $data_to_enqueue );
+ }
+
+ /**
+ * Enqueue the action.
+ *
+ * @param string $current_filter Current WordPress filter.
+ * @param object $args Sync args.
+ * @param string $queue Sync queue.
+ */
+ public function enqueue_action( $current_filter, $args, $queue ) {
+ // don't enqueue an action during the outbound http request - this prevents recursion.
+ if ( Settings::is_sending() ) {
+ return;
+ }
+
+ if ( ! ( new Connection_Manager() )->is_connected() ) {
+ // Don't enqueue an action if the site is disconnected.
+ return;
+ }
+
+ /**
+ * Add an action hook to execute when anything on the whitelist gets sent to the queue to sync.
+ *
+ * @module sync
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.9.0
+ */
+ do_action( 'jetpack_sync_action_before_enqueue' );
+
+ /**
+ * Modify or reject the data within an action before it is enqueued locally.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array The action parameters
+ */
+ $args = apply_filters( "jetpack_sync_before_enqueue_$current_filter", $args );
+
+ // allow listeners to abort.
+ if ( false === $args ) {
+ return;
+ }
+
+ /*
+ * Periodically check the size of the queue, and disable adding to it if
+ * it exceeds some limit AND the oldest item exceeds the age limit (i.e. sending has stopped).
+ */
+ if ( ! $this->can_add_to_queue( $queue ) ) {
+ if ( 'sync' === $queue->id ) {
+ $this->sync_data_loss( $queue );
+ }
+ return;
+ }
+
+ /*
+ * If we add any items to the queue, we should try to ensure that our script
+ * can't be killed before they are sent.
+ */
+ if ( function_exists( 'ignore_user_abort' ) ) {
+ ignore_user_abort( true );
+ }
+
+ if (
+ 'sync' === $queue->id ||
+ in_array(
+ $current_filter,
+ array(
+ 'jetpack_full_sync_start',
+ 'jetpack_full_sync_end',
+ 'jetpack_full_sync_cancel',
+ ),
+ true
+ )
+ ) {
+ $queue->add(
+ array(
+ $current_filter,
+ $args,
+ get_current_user_id(),
+ microtime( true ),
+ Settings::is_importing(),
+ $this->get_actor( $current_filter, $args ),
+ )
+ );
+ } else {
+ $queue->add(
+ array(
+ $current_filter,
+ $args,
+ get_current_user_id(),
+ microtime( true ),
+ Settings::is_importing(),
+ )
+ );
+ }
+
+ // since we've added some items, let's try to load the sender so we can send them as quickly as possible.
+ if ( ! Actions::$sender ) {
+ add_filter( 'jetpack_sync_sender_should_load', __NAMESPACE__ . '\Actions::should_initialize_sender_enqueue', 10, 1 );
+ if ( did_action( 'init' ) ) {
+ Actions::add_sender_shutdown();
+ }
+ }
+ }
+
+ /**
+ * Sync Data Loss Handler
+ *
+ * @param Queue $queue Sync queue.
+ * @return boolean was send successful
+ */
+ public function sync_data_loss( $queue ) {
+ if ( ! Settings::is_sync_enabled() ) {
+ return;
+ }
+ $updated = Health::update_status( Health::STATUS_OUT_OF_SYNC );
+
+ if ( ! $updated ) {
+ return;
+ }
+
+ $data = array(
+ 'timestamp' => microtime( true ),
+ 'queue_size' => $queue->size(),
+ 'queue_lag' => $queue->lag(),
+ );
+
+ $sender = Sender::get_instance();
+ return $sender->send_action( 'jetpack_sync_data_loss', $data );
+ }
+
+ /**
+ * Get the event's actor.
+ *
+ * @param string $current_filter Current wp-admin page.
+ * @param object $args Sync event.
+ * @return array Actor information.
+ */
+ public function get_actor( $current_filter, $args ) {
+ if ( 'wp_login' === $current_filter ) {
+ $user = get_user_by( 'ID', $args[1]->data->ID );
+ } else {
+ $user = wp_get_current_user();
+ }
+
+ $roles = new Roles();
+ $translated_role = $roles->translate_user_to_role( $user );
+
+ $actor = array(
+ 'wpcom_user_id' => null,
+ 'external_user_id' => isset( $user->ID ) ? $user->ID : null,
+ 'display_name' => isset( $user->display_name ) ? $user->display_name : null,
+ 'user_email' => isset( $user->user_email ) ? $user->user_email : null,
+ 'user_roles' => isset( $user->roles ) ? $user->roles : null,
+ 'translated_role' => $translated_role ? $translated_role : null,
+ 'is_cron' => defined( 'DOING_CRON' ) ? DOING_CRON : false,
+ 'is_rest' => defined( 'REST_API_REQUEST' ) ? REST_API_REQUEST : false,
+ 'is_xmlrpc' => defined( 'XMLRPC_REQUEST' ) ? XMLRPC_REQUEST : false,
+ 'is_wp_rest' => defined( 'REST_REQUEST' ) ? REST_REQUEST : false,
+ 'is_ajax' => defined( 'DOING_AJAX' ) ? DOING_AJAX : false,
+ 'is_wp_admin' => is_admin(),
+ 'is_cli' => defined( 'WP_CLI' ) ? WP_CLI : false,
+ 'from_url' => $this->get_request_url(),
+ );
+
+ if ( $this->should_send_user_data_with_actor( $current_filter ) ) {
+ $ip = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : '';
+ if ( defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ if ( ! function_exists( 'jetpack_protect_get_ip' ) ) {
+ require_once JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php';
+ }
+ $ip = jetpack_protect_get_ip();
+ }
+
+ $actor['ip'] = $ip;
+ $actor['user_agent'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : 'unknown';
+ }
+
+ return $actor;
+ }
+
+ /**
+ * Should user data be sent as the actor?
+ *
+ * @param string $current_filter The current WordPress filter being executed.
+ * @return bool
+ */
+ public function should_send_user_data_with_actor( $current_filter ) {
+ $should_send = in_array( $current_filter, array( 'jetpack_wp_login', 'wp_logout', 'jetpack_valid_failed_login_attempt' ), true );
+ /**
+ * Allow or deny sending actor's user data ( IP and UA ) during a sync event
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.8.0
+ *
+ * @module sync
+ *
+ * @param bool True if we should send user data
+ * @param string The current filter that is performing the sync action
+ */
+ return apply_filters( 'jetpack_sync_actor_user_data', $should_send, $current_filter );
+ }
+
+ /**
+ * Sets Listener defaults.
+ */
+ public function set_defaults() {
+ $this->sync_queue = new Queue( 'sync' );
+ $this->full_sync_queue = new Queue( 'full_sync' );
+ $this->set_queue_size_limit( Settings::get_setting( 'max_queue_size' ) );
+ $this->set_queue_lag_limit( Settings::get_setting( 'max_queue_lag' ) );
+ }
+
+ /**
+ * Get the request URL.
+ *
+ * @return string Request URL, if known. Otherwise, wp-admin or home_url.
+ */
+ public function get_request_url() {
+ if ( isset( $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'] ) ) {
+ return 'http' . ( isset( $_SERVER['HTTPS'] ) ? 's' : '' ) . '://' . "{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
+ }
+ return is_admin() ? get_admin_url( get_current_blog_id() ) : home_url();
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php
new file mode 100644
index 00000000..61b89a1c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Lock class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * Lock class
+ */
+class Lock {
+ /**
+ * Prefix of the blog lock transient.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const LOCK_PREFIX = 'jp_sync_lock_';
+
+ /**
+ * Default Lifetime of the lock.
+ * This is the expiration value as such we are setting it high to handle cases where there are
+ * long running requests. Short expiration value leads to concurrent requests and performance issues.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const LOCK_TRANSIENT_EXPIRY = 180; // Seconds.
+
+ /**
+ * Attempt to lock.
+ *
+ * @access public
+ *
+ * @param string $name lock name.
+ * @param int $expiry lock duration in seconds.
+ *
+ * @return boolean True if succeeded, false otherwise.
+ */
+ public function attempt( $name, $expiry = self::LOCK_TRANSIENT_EXPIRY ) {
+ $lock_name = self::LOCK_PREFIX . $name;
+ $locked_time = get_option( $lock_name );
+
+ if ( $locked_time ) {
+ // If expired update to false but don't send. Send will occurr in new request to avoid race conditions.
+ if ( microtime( true ) > $locked_time ) {
+ update_option( $lock_name, false, false );
+ }
+ return false;
+ }
+
+ $locked_time = microtime( true ) + $expiry;
+ update_option( $lock_name, $locked_time, false );
+ return $locked_time;
+ }
+
+ /**
+ * Remove the lock.
+ *
+ * @access public
+ *
+ * @param string $name lock name.
+ * @param bool|float $lock_expiration lock expiration.
+ */
+ public function remove( $name, $lock_expiration = false ) {
+ $lock_name = self::LOCK_PREFIX . $name;
+
+ // Only remove lock if current value matches our lock.
+ if ( true === $lock_expiration || (string) get_option( $lock_name ) === (string) $lock_expiration ) {
+ update_option( $lock_name, false, false );
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-main.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-main.php
new file mode 100644
index 00000000..b7e590a9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-main.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ * This class hooks the main sync actions.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Sync\Actions as Sync_Actions;
+
+/**
+ * Jetpack Sync main class.
+ */
+class Main {
+
+ /**
+ * Sets up event handlers for the Sync package. Is used from the Config package.
+ *
+ * @action plugins_loaded
+ */
+ public static function configure() {
+ if ( Actions::sync_allowed() ) {
+ add_action( 'plugins_loaded', array( __CLASS__, 'on_plugins_loaded_early' ), 5 );
+ add_action( 'plugins_loaded', array( __CLASS__, 'on_plugins_loaded_late' ), 90 );
+ }
+
+ // Add REST endpoints.
+ add_action( 'rest_api_init', array( 'Automattic\\Jetpack\\Sync\\REST_Endpoints', 'initialize_rest_api' ) );
+
+ // Add IDC disconnect action.
+ add_action( 'jetpack_idc_disconnect', array( __CLASS__, 'on_jetpack_idc_disconnect' ), 100 );
+
+ // Any hooks below are special cases that need to be declared even if Sync is not allowed.
+ add_action( 'jetpack_site_registered', array( 'Automattic\\Jetpack\\Sync\\Actions', 'do_initial_sync' ), 10, 0 );
+
+ // Set up package version hook.
+ add_filter( 'jetpack_package_versions', __NAMESPACE__ . '\Package_Version::send_package_version_to_tracker' );
+ }
+
+ /**
+ * Delete all sync related data on Identity Crisis disconnect.
+ */
+ public static function on_jetpack_idc_disconnect() {
+ Sender::get_instance()->uninstall();
+ }
+
+ /**
+ * Initialize the main sync actions.
+ *
+ * @action plugins_loaded
+ */
+ public static function on_plugins_loaded_early() {
+ /**
+ * Additional Sync modules can be carried out into their own packages and they
+ * will get their own config settings.
+ *
+ * For now additional modules are enabled based on whether the third party plugin
+ * class exists or not.
+ */
+ Sync_Actions::initialize_woocommerce();
+ Sync_Actions::initialize_wp_super_cache();
+
+ // We need to define this here so that it's hooked before `updating_jetpack_version` is called.
+ add_action( 'updating_jetpack_version', array( 'Automattic\\Jetpack\\Sync\\Actions', 'cleanup_on_upgrade' ), 10, 2 );
+ }
+
+ /**
+ * Runs after most of plugins_loaded hook functions have been run.
+ *
+ * @action plugins_loaded
+ */
+ public static function on_plugins_loaded_late() {
+ /*
+ * Init after plugins loaded and before the `init` action. This helps with issues where plugins init
+ * with a high priority or sites that use alternate cron.
+ */
+ Sync_Actions::init();
+
+ // Enable non-blocking Jetpack Sync flow.
+ $non_block_enabled = (bool) get_option( 'jetpack_sync_non_blocking', false );
+
+ /**
+ * Filters the option to enable non-blocking sync.
+ *
+ * Default value is false, filter to true to enable non-blocking mode which will have
+ * WP.com return early and use the sync/close endpoint to check-in processed items.
+ *
+ * @since 1.12.3
+ *
+ * @param bool $enabled Should non-blocking flow be enabled.
+ */
+ $filtered = (bool) apply_filters( 'jetpack_sync_non_blocking', $non_block_enabled );
+
+ if ( $non_block_enabled !== $filtered ) {
+ update_option( 'jetpack_sync_non_blocking', $filtered, false );
+ }
+
+ // Initialize health-related hooks after plugins have loaded.
+ Health::init();
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php
new file mode 100644
index 00000000..993ebef5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php
@@ -0,0 +1,160 @@
+<?php
+/**
+ * Simple wrapper that allows enumerating cached static instances
+ * of sync modules.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Sync\Modules\Module;
+
+/**
+ * A class to handle loading of sync modules.
+ */
+class Modules {
+
+ /**
+ * Lists classnames of sync modules we load by default.
+ *
+ * @access public
+ *
+ * @var array
+ */
+ const DEFAULT_SYNC_MODULES = array(
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships',
+ );
+
+ /**
+ * Keeps track of initialized sync modules.
+ *
+ * @access private
+ * @static
+ *
+ * @var null|array
+ */
+ private static $initialized_modules = null;
+
+ /**
+ * Gets a list of initialized modules.
+ *
+ * @access public
+ * @static
+ *
+ * @return Module[]
+ */
+ public static function get_modules() {
+ if ( null === self::$initialized_modules ) {
+ self::$initialized_modules = self::initialize_modules();
+ }
+
+ return self::$initialized_modules;
+ }
+
+ /**
+ * Sets defaults for all initialized modules.
+ *
+ * @access public
+ * @static
+ */
+ public static function set_defaults() {
+ foreach ( self::get_modules() as $module ) {
+ $module->set_defaults();
+ }
+ }
+
+ /**
+ * Gets the name of an initialized module. Returns false if given module has not been initialized.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $module_name A module name.
+ *
+ * @return bool|Automattic\Jetpack\Sync\Modules\Module
+ */
+ public static function get_module( $module_name ) {
+ foreach ( self::get_modules() as $module ) {
+ if ( $module->name() === $module_name ) {
+ return $module;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Loads and sets defaults for all declared modules.
+ *
+ * @access public
+ * @static
+ *
+ * @return array
+ */
+ public static function initialize_modules() {
+ /**
+ * Filters the list of class names of sync modules.
+ * If you add to this list, make sure any classes implement the
+ * Jetpack_Sync_Module interface.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ $modules = apply_filters( 'jetpack_sync_modules', self::DEFAULT_SYNC_MODULES );
+
+ $modules = array_map( array( __CLASS__, 'load_module' ), $modules );
+
+ return array_map( array( __CLASS__, 'set_module_defaults' ), $modules );
+ }
+
+ /**
+ * Returns an instance of the given module class.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $module_class The classname of a Jetpack sync module.
+ *
+ * @return Automattic\Jetpack\Sync\Modules\Module
+ */
+ public static function load_module( $module_class ) {
+ return new $module_class();
+ }
+
+ /**
+ * Sets defaults for the given instance of a Jetpack sync module.
+ *
+ * @access public
+ * @static
+ *
+ * @param Automattic\Jetpack\Sync\Modules\Module $module Instance of a Jetpack sync module.
+ *
+ * @return Automattic\Jetpack\Sync\Modules\Module
+ */
+ public static function set_module_defaults( $module ) {
+ $module->set_defaults();
+ if ( method_exists( $module, 'set_late_default' ) ) {
+ add_action( 'init', array( $module, 'set_late_default' ), 90 );
+ }
+ return $module;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php
new file mode 100644
index 00000000..69a9faf3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php
@@ -0,0 +1,30 @@
+<?php
+/**
+ * The Package_Version class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * The Package_Version class.
+ */
+class Package_Version {
+
+ const PACKAGE_VERSION = '1.28.0';
+
+ const PACKAGE_SLUG = 'sync';
+
+ /**
+ * Adds the package slug and version to the package version tracker's data.
+ *
+ * @param array $package_versions The package version array.
+ *
+ * @return array The packge version array.
+ */
+ public static function send_package_version_to_tracker( $package_versions ) {
+ $package_versions[ self::PACKAGE_SLUG ] = self::PACKAGE_VERSION;
+ return $package_versions;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php
new file mode 100644
index 00000000..94735e3a
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ * Sync queue buffer.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * A buffer of items from the queue that can be checked out.
+ */
+class Queue_Buffer {
+ /**
+ * Sync queue buffer ID.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ public $id;
+
+ /**
+ * Sync items.
+ *
+ * @access public
+ *
+ * @var array
+ */
+ public $items_with_ids;
+
+ /**
+ * Constructor.
+ * Initializes the queue buffer.
+ *
+ * @access public
+ *
+ * @param int $id Sync queue buffer ID.
+ * @param array $items_with_ids Items for the buffer to work with.
+ */
+ public function __construct( $id, $items_with_ids ) {
+ $this->id = $id;
+ $this->items_with_ids = $items_with_ids;
+ }
+
+ /**
+ * Retrieve the sync items in the buffer, in an ID => value form.
+ *
+ * @access public
+ *
+ * @return bool|array Sync items in the buffer.
+ */
+ public function get_items() {
+ return array_combine( $this->get_item_ids(), $this->get_item_values() );
+ }
+
+ /**
+ * Retrieve the values of the sync items in the buffer.
+ *
+ * @access public
+ *
+ * @return array Sync items values.
+ */
+ public function get_item_values() {
+ return Utils::get_item_values( $this->items_with_ids );
+ }
+
+ /**
+ * Retrieve the IDs of the sync items in the buffer.
+ *
+ * @access public
+ *
+ * @return array Sync items IDs.
+ */
+ public function get_item_ids() {
+ return Utils::get_item_ids( $this->items_with_ids );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php
new file mode 100644
index 00000000..fe80cf90
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php
@@ -0,0 +1,744 @@
+<?php
+/**
+ * The class that describes the Queue for the sync package.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use WP_Error;
+
+/**
+ * A persistent queue that can be flushed in increments of N items,
+ * and which blocks reads until checked-out buffers are checked in or
+ * closed. This uses raw SQL for two reasons: speed, and not triggering
+ * tons of added_option callbacks.
+ */
+class Queue {
+ /**
+ * The queue id.
+ *
+ * @var string
+ */
+ public $id;
+ /**
+ * Keeps track of the rows.
+ *
+ * @var int
+ */
+ private $row_iterator;
+
+ /**
+ * Queue constructor.
+ *
+ * @param string $id Name of the queue.
+ */
+ public function __construct( $id ) {
+ $this->id = str_replace( '-', '_', $id ); // Necessary to ensure we don't have ID collisions in the SQL.
+ $this->row_iterator = 0;
+ $this->random_int = wp_rand( 1, 1000000 );
+ }
+
+ /**
+ * Add a single item to the queue.
+ *
+ * @param object $item Event object to add to queue.
+ */
+ public function add( $item ) {
+ global $wpdb;
+ $added = false;
+
+ // If empty, don't add.
+ if ( empty( $item ) ) {
+ return;
+ }
+
+ // Attempt to serialize data, if an exception (closures) return early.
+ try {
+ $item = serialize( $item ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
+ } catch ( \Exception $ex ) {
+ return;
+ }
+
+ // This basically tries to add the option until enough time has elapsed that
+ // it has a unique (microtime-based) option key.
+ while ( ! $added ) {
+ $rows_added = $wpdb->query(
+ $wpdb->prepare(
+ "INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES (%s, %s,%s)",
+ $this->get_next_data_row_option_name(),
+ $item,
+ 'no'
+ )
+ );
+ $added = ( 0 !== $rows_added );
+ }
+ }
+
+ /**
+ * Insert all the items in a single SQL query. May be subject to query size limits!
+ *
+ * @param array $items Array of events to add to the queue.
+ *
+ * @return bool|\WP_Error
+ */
+ public function add_all( $items ) {
+ global $wpdb;
+ $base_option_name = $this->get_next_data_row_option_name();
+
+ $query = "INSERT INTO $wpdb->options (option_name, option_value, autoload) VALUES ";
+
+ $rows = array();
+ $count_items = count( $items );
+ for ( $i = 0; $i < $count_items; ++$i ) {
+ // skip empty items.
+ if ( empty( $items[ $i ] ) ) {
+ continue;
+ }
+ try {
+ $option_name = esc_sql( $base_option_name . '-' . $i );
+ $option_value = esc_sql( serialize( $items[ $i ] ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
+ $rows[] = "('$option_name', '$option_value', 'no')";
+ } catch ( \Exception $e ) {
+ // Item cannot be serialized so skip.
+ continue;
+ }
+ }
+
+ $rows_added = $wpdb->query( $query . join( ',', $rows ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+
+ if ( count( $items ) !== $rows_added ) {
+ return new WP_Error( 'row_count_mismatch', "The number of rows inserted didn't match the size of the input array" );
+ }
+ return true;
+ }
+
+ /**
+ * Get the front-most item on the queue without checking it out.
+ *
+ * @param int $count Number of items to return when looking at the items.
+ *
+ * @return array
+ */
+ public function peek( $count = 1 ) {
+ $items = $this->fetch_items( $count );
+ if ( $items ) {
+ return Utils::get_item_values( $items );
+ }
+
+ return array();
+ }
+
+ /**
+ * Gets items with particular IDs.
+ *
+ * @param array $item_ids Array of item IDs to retrieve.
+ *
+ * @return array
+ */
+ public function peek_by_id( $item_ids ) {
+ $items = $this->fetch_items_by_id( $item_ids );
+ if ( $items ) {
+ return Utils::get_item_values( $items );
+ }
+
+ return array();
+ }
+
+ /**
+ * Gets the queue lag.
+ * Lag is the difference in time between the age of the oldest item
+ * (aka first or frontmost item) and the current time.
+ *
+ * @param microtime $now The current time in microtime.
+ *
+ * @return float|int|mixed|null
+ */
+ public function lag( $now = null ) {
+ global $wpdb;
+
+ $first_item_name = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT option_name FROM $wpdb->options WHERE option_name LIKE %s ORDER BY option_name ASC LIMIT 1",
+ "jpsq_{$this->id}-%"
+ )
+ );
+
+ if ( ! $first_item_name ) {
+ return 0;
+ }
+
+ if ( null === $now ) {
+ $now = microtime( true );
+ }
+
+ // Break apart the item name to get the timestamp.
+ $matches = null;
+ if ( preg_match( '/^jpsq_' . $this->id . '-(\d+\.\d+)-/', $first_item_name, $matches ) ) {
+ return $now - (float) $matches[1];
+ } else {
+ return 0;
+ }
+ }
+
+ /**
+ * Resets the queue.
+ */
+ public function reset() {
+ global $wpdb;
+ $this->delete_checkout_id();
+ $wpdb->query(
+ $wpdb->prepare(
+ "DELETE FROM $wpdb->options WHERE option_name LIKE %s",
+ "jpsq_{$this->id}-%"
+ )
+ );
+ }
+
+ /**
+ * Return the size of the queue.
+ *
+ * @return int
+ */
+ public function size() {
+ global $wpdb;
+
+ return (int) $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT count(*) FROM $wpdb->options WHERE option_name LIKE %s",
+ "jpsq_{$this->id}-%"
+ )
+ );
+ }
+
+ /**
+ * Lets you know if there is any items in the queue.
+ *
+ * We use this peculiar implementation because it's much faster than count(*).
+ *
+ * @return bool
+ */
+ public function has_any_items() {
+ global $wpdb;
+ $value = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT exists( SELECT option_name FROM $wpdb->options WHERE option_name LIKE %s )",
+ "jpsq_{$this->id}-%"
+ )
+ );
+
+ return ( '1' === $value );
+ }
+
+ /**
+ * Used to checkout the queue.
+ *
+ * @param int $buffer_size Size of the buffer to checkout.
+ *
+ * @return Automattic\Jetpack\Sync\Queue_Buffer|bool|int|\WP_Error
+ */
+ public function checkout( $buffer_size ) {
+ if ( $this->get_checkout_id() ) {
+ return new WP_Error( 'unclosed_buffer', 'There is an unclosed buffer' );
+ }
+
+ $buffer_id = uniqid();
+
+ $result = $this->set_checkout_id( $buffer_id );
+
+ if ( ! $result || is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ $items = $this->fetch_items( $buffer_size );
+
+ if ( count( $items ) === 0 ) {
+ return false;
+ }
+
+ $buffer = new Queue_Buffer( $buffer_id, array_slice( $items, 0, $buffer_size ) );
+
+ return $buffer;
+ }
+
+ /**
+ * Given a list of items return the items ids.
+ *
+ * @param array $items List of item objects.
+ *
+ * @return array Ids of the items.
+ */
+ public function get_ids( $items ) {
+ return array_map(
+ function ( $item ) {
+ return $item->id;
+ },
+ $items
+ );
+ }
+
+ /**
+ * Pop elements from the queue.
+ *
+ * @param int $limit Number of items to pop from the queue.
+ *
+ * @return array|object|null
+ */
+ public function pop( $limit ) {
+ $items = $this->fetch_items( $limit );
+
+ $ids = $this->get_ids( $items );
+
+ $this->delete( $ids );
+
+ return $items;
+ }
+
+ /**
+ * Get the items from the queue with a memory limit.
+ *
+ * This checks out rows until it either empties the queue or hits a certain memory limit
+ * it loads the sizes from the DB first so that it doesn't accidentally
+ * load more data into memory than it needs to.
+ * The only way it will load more items than $max_size is if a single queue item
+ * exceeds the memory limit, but in that case it will send that item by itself.
+ *
+ * @param int $max_memory (bytes) Maximum memory threshold.
+ * @param int $max_buffer_size Maximum buffer size (number of items).
+ *
+ * @return Automattic\Jetpack\Sync\Queue_Buffer|bool|int|\WP_Error
+ */
+ public function checkout_with_memory_limit( $max_memory, $max_buffer_size = 500 ) {
+ if ( $this->get_checkout_id() ) {
+ return new WP_Error( 'unclosed_buffer', 'There is an unclosed buffer' );
+ }
+
+ $buffer_id = uniqid();
+
+ $result = $this->set_checkout_id( $buffer_id );
+
+ if ( ! $result || is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ // Get the map of buffer_id -> memory_size.
+ global $wpdb;
+
+ $items_with_size = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT option_name AS id, LENGTH(option_value) AS value_size FROM $wpdb->options WHERE option_name LIKE %s ORDER BY option_name ASC LIMIT %d",
+ "jpsq_{$this->id}-%",
+ $max_buffer_size
+ ),
+ OBJECT
+ );
+
+ if ( count( $items_with_size ) === 0 ) {
+ return false;
+ }
+
+ $total_memory = 0;
+ $max_item_id = $items_with_size[0]->id;
+ $min_item_id = $max_item_id;
+
+ foreach ( $items_with_size as $id => $item_with_size ) {
+ $total_memory += $item_with_size->value_size;
+
+ // If this is the first item and it exceeds memory, allow loop to continue
+ // we will exit on the next iteration instead.
+ if ( $total_memory > $max_memory && $id > 0 ) {
+ break;
+ }
+
+ $max_item_id = $item_with_size->id;
+ }
+
+ $query = $wpdb->prepare(
+ "SELECT option_name AS id, option_value AS value FROM $wpdb->options WHERE option_name >= %s and option_name <= %s ORDER BY option_name ASC",
+ $min_item_id,
+ $max_item_id
+ );
+
+ $items = $wpdb->get_results( $query, OBJECT ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ foreach ( $items as $item ) {
+ // @codingStandardsIgnoreStart
+ $item->value = @unserialize( $item->value );
+ // @codingStandardsIgnoreEnd
+ }
+
+ if ( count( $items ) === 0 ) {
+ $this->delete_checkout_id();
+
+ return false;
+ }
+
+ $buffer = new Queue_Buffer( $buffer_id, $items );
+
+ return $buffer;
+ }
+
+ /**
+ * Check in the queue.
+ *
+ * @param Automattic\Jetpack\Sync\Queue_Buffer $buffer Queue_Buffer object.
+ *
+ * @return bool|\WP_Error
+ */
+ public function checkin( $buffer ) {
+ $is_valid = $this->validate_checkout( $buffer );
+
+ if ( is_wp_error( $is_valid ) ) {
+ return $is_valid;
+ }
+
+ $this->delete_checkout_id();
+
+ return true;
+ }
+
+ /**
+ * Close the buffer.
+ *
+ * @param Automattic\Jetpack\Sync\Queue_Buffer $buffer Queue_Buffer object.
+ * @param null|array $ids_to_remove Ids to remove from the queue.
+ *
+ * @return bool|\WP_Error
+ */
+ public function close( $buffer, $ids_to_remove = null ) {
+ $is_valid = $this->validate_checkout( $buffer );
+
+ if ( is_wp_error( $is_valid ) ) {
+ // Always delete ids_to_remove even when buffer is no longer checked-out.
+ // They were processed by WP.com so safe to remove from queue.
+ if ( ! is_null( $ids_to_remove ) ) {
+ $this->delete( $ids_to_remove );
+ }
+ return $is_valid;
+ }
+
+ $this->delete_checkout_id();
+
+ // By default clear all items in the buffer.
+ if ( is_null( $ids_to_remove ) ) {
+ $ids_to_remove = $buffer->get_item_ids();
+ }
+
+ $this->delete( $ids_to_remove );
+
+ return true;
+ }
+
+ /**
+ * Delete elements from the queue.
+ *
+ * @param array $ids Ids to delete.
+ *
+ * @return bool|int
+ */
+ private function delete( $ids ) {
+ if ( 0 === count( $ids ) ) {
+ return 0;
+ }
+ global $wpdb;
+ $sql = "DELETE FROM $wpdb->options WHERE option_name IN (" . implode( ', ', array_fill( 0, count( $ids ), '%s' ) ) . ')';
+ $query = call_user_func_array( array( $wpdb, 'prepare' ), array_merge( array( $sql ), $ids ) );
+
+ return $wpdb->query( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ }
+
+ /**
+ * Flushes all items from the queue.
+ *
+ * @return array
+ */
+ public function flush_all() {
+ $items = Utils::get_item_values( $this->fetch_items() );
+ $this->reset();
+
+ return $items;
+ }
+
+ /**
+ * Get all the items from the queue.
+ *
+ * @return array|object|null
+ */
+ public function get_all() {
+ return $this->fetch_items();
+ }
+
+ /**
+ * Forces Checkin of the queue.
+ * Use with caution, this could allow multiple processes to delete
+ * and send from the queue at the same time
+ */
+ public function force_checkin() {
+ $this->delete_checkout_id();
+ }
+
+ /**
+ * Locks checkouts from the queue
+ * tries to wait up to $timeout seconds for the queue to be empty.
+ *
+ * @param int $timeout The wait time in seconds for the queue to be empty.
+ *
+ * @return bool|int|\WP_Error
+ */
+ public function lock( $timeout = 30 ) {
+ $tries = 0;
+
+ while ( $this->has_any_items() && $tries < $timeout ) {
+ sleep( 1 );
+ ++$tries;
+ }
+
+ if ( 30 === $tries ) {
+ return new WP_Error( 'lock_timeout', 'Timeout waiting for sync queue to empty' );
+ }
+
+ if ( $this->get_checkout_id() ) {
+ return new WP_Error( 'unclosed_buffer', 'There is an unclosed buffer' );
+ }
+
+ // Hopefully this means we can acquire a checkout?
+ $result = $this->set_checkout_id( 'lock' );
+
+ if ( ! $result || is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Unlocks the queue.
+ *
+ * @return bool|int
+ */
+ public function unlock() {
+ return $this->delete_checkout_id();
+ }
+
+ /**
+ * This option is specifically chosen to, as much as possible, preserve time order
+ * and minimise the possibility of collisions between multiple processes working
+ * at the same time.
+ *
+ * @return string
+ */
+ protected function generate_option_name_timestamp() {
+ return sprintf( '%.6f', microtime( true ) );
+ }
+
+ /**
+ * Gets the checkout ID.
+ *
+ * @return bool|string
+ */
+ private function get_checkout_id() {
+ global $wpdb;
+ $checkout_value = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT option_value FROM $wpdb->options WHERE option_name = %s",
+ $this->get_lock_option_name()
+ )
+ );
+
+ if ( $checkout_value ) {
+ list( $checkout_id, $timestamp ) = explode( ':', $checkout_value );
+ if ( (int) $timestamp > time() ) {
+ return $checkout_id;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Sets the checkout id.
+ *
+ * @param string $checkout_id The ID of the checkout.
+ *
+ * @return bool|int
+ */
+ private function set_checkout_id( $checkout_id ) {
+ global $wpdb;
+
+ $expires = time() + Defaults::$default_sync_queue_lock_timeout;
+ $updated_num = $wpdb->query(
+ $wpdb->prepare(
+ "UPDATE $wpdb->options SET option_value = %s WHERE option_name = %s",
+ "$checkout_id:$expires",
+ $this->get_lock_option_name()
+ )
+ );
+
+ if ( ! $updated_num ) {
+ $updated_num = $wpdb->query(
+ $wpdb->prepare(
+ "INSERT INTO $wpdb->options ( option_name, option_value, autoload ) VALUES ( %s, %s, 'no' )",
+ $this->get_lock_option_name(),
+ "$checkout_id:$expires"
+ )
+ );
+ }
+
+ return $updated_num;
+ }
+
+ /**
+ * Deletes the checkout ID.
+ *
+ * @return bool|int
+ */
+ private function delete_checkout_id() {
+ global $wpdb;
+ // Rather than delete, which causes fragmentation, we update in place.
+ return $wpdb->query(
+ $wpdb->prepare(
+ "UPDATE $wpdb->options SET option_value = %s WHERE option_name = %s",
+ '0:0',
+ $this->get_lock_option_name()
+ )
+ );
+
+ }
+
+ /**
+ * Return the lock option name.
+ *
+ * @return string
+ */
+ private function get_lock_option_name() {
+ return "jpsq_{$this->id}_checkout";
+ }
+
+ /**
+ * Return the next data row option name.
+ *
+ * @return string
+ */
+ private function get_next_data_row_option_name() {
+ $timestamp = $this->generate_option_name_timestamp();
+
+ // Row iterator is used to avoid collisions where we're writing data waaay fast in a single process.
+ if ( PHP_INT_MAX === $this->row_iterator ) {
+ $this->row_iterator = 0;
+ } else {
+ $this->row_iterator += 1;
+ }
+
+ return 'jpsq_' . $this->id . '-' . $timestamp . '-' . $this->random_int . '-' . $this->row_iterator;
+ }
+
+ /**
+ * Return the items in the queue.
+ *
+ * @param null|int $limit Limit to the number of items we fetch at once.
+ *
+ * @return array|object|null
+ */
+ private function fetch_items( $limit = null ) {
+ global $wpdb;
+
+ if ( $limit ) {
+ $items = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT option_name AS id, option_value AS value FROM $wpdb->options WHERE option_name LIKE %s ORDER BY option_name ASC LIMIT %d",
+ "jpsq_{$this->id}-%",
+ $limit
+ ),
+ OBJECT
+ );
+ } else {
+ $items = $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT option_name AS id, option_value AS value FROM $wpdb->options WHERE option_name LIKE %s ORDER BY option_name ASC",
+ "jpsq_{$this->id}-%"
+ ),
+ OBJECT
+ );
+ }
+
+ return $this->unserialize_values( $items );
+
+ }
+
+ /**
+ * Return items with specific ids.
+ *
+ * @param array $items_ids Array of event ids.
+ *
+ * @return array|object|null
+ */
+ private function fetch_items_by_id( $items_ids ) {
+ global $wpdb;
+
+ // return early if $items_ids is empty or not an array.
+ if ( empty( $items_ids ) || ! is_array( $items_ids ) ) {
+ return null;
+ }
+
+ $ids_placeholders = implode( ', ', array_fill( 0, count( $items_ids ), '%s' ) );
+ $query_with_placeholders = "SELECT option_name AS id, option_value AS value
+ FROM $wpdb->options
+ WHERE option_name IN ( $ids_placeholders )";
+ $items = $wpdb->get_results(
+ $wpdb->prepare(
+ $query_with_placeholders, // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $items_ids
+ ),
+ OBJECT
+ );
+
+ return $this->unserialize_values( $items );
+ }
+
+ /**
+ * Unserialize item values.
+ *
+ * @param array $items Events from the Queue to be unserialized.
+ *
+ * @return mixed
+ */
+ private function unserialize_values( $items ) {
+ array_walk(
+ $items,
+ function ( $item ) {
+ // @codingStandardsIgnoreStart
+ $item->value = @unserialize( $item->value );
+ // @codingStandardsIgnoreEnd
+ }
+ );
+
+ return $items;
+
+ }
+
+ /**
+ * Return true if the buffer is still valid or an Error other wise.
+ *
+ * @param Automattic\Jetpack\Sync\Queue_Buffer $buffer The Queue_Buffer.
+ *
+ * @return bool|WP_Error
+ */
+ private function validate_checkout( $buffer ) {
+ if ( ! $buffer instanceof Queue_Buffer ) {
+ return new WP_Error( 'not_a_buffer', 'You must checkin an instance of Automattic\\Jetpack\\Sync\\Queue_Buffer' );
+ }
+
+ $checkout_id = $this->get_checkout_id();
+
+ if ( ! $checkout_id ) {
+ return new WP_Error( 'buffer_not_checked_out', 'There are no checked out buffers' );
+ }
+
+ // TODO: change to strict comparison.
+ if ( $checkout_id != $buffer->id ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ return new WP_Error( 'buffer_mismatch', 'The buffer you checked in was not checked out' );
+ }
+
+ return true;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php
new file mode 100644
index 00000000..6687fec5
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php
@@ -0,0 +1,1457 @@
+<?php
+/**
+ * Sync replicastore.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Sync\Replicastore\Table_Checksum;
+use Automattic\Jetpack\Sync\Replicastore\Table_Checksum_Usermeta;
+use Automattic\Jetpack\Sync\Replicastore\Table_Checksum_Users;
+use Exception;
+use WP_Error;
+
+/**
+ * An implementation of Replicastore Interface which returns data stored in a WordPress.org DB.
+ * This is useful to compare values in the local WP DB to values in the synced replica store
+ */
+class Replicastore implements Replicastore_Interface {
+ /**
+ * Empty and reset the replicastore.
+ *
+ * @access public
+ */
+ public function reset() {
+ global $wpdb;
+
+ $wpdb->query( "DELETE FROM $wpdb->posts" );
+
+ // Delete comments from cache.
+ $comment_ids = $wpdb->get_col( "SELECT comment_ID FROM $wpdb->comments" );
+ if ( ! empty( $comment_ids ) ) {
+ clean_comment_cache( $comment_ids );
+ }
+ $wpdb->query( "DELETE FROM $wpdb->comments" );
+
+ // Also need to delete terms from cache.
+ $term_ids = $wpdb->get_col( "SELECT term_id FROM $wpdb->terms" );
+ foreach ( $term_ids as $term_id ) {
+ wp_cache_delete( $term_id, 'terms' );
+ }
+
+ $wpdb->query( "DELETE FROM $wpdb->terms" );
+
+ $wpdb->query( "DELETE FROM $wpdb->term_taxonomy" );
+ $wpdb->query( "DELETE FROM $wpdb->term_relationships" );
+
+ // Callables and constants.
+ $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name LIKE 'jetpack_%'" );
+ $wpdb->query( "DELETE FROM $wpdb->postmeta WHERE meta_key NOT LIKE '\_%'" );
+ }
+
+ /**
+ * Ran when full sync has just started.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ */
+ public function full_sync_start( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->reset();
+ }
+
+ /**
+ * Ran when full sync has just finished.
+ *
+ * @access public
+ *
+ * @param string $checksum Deprecated since 7.3.0.
+ */
+ public function full_sync_end( $checksum ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Noop right now.
+ }
+
+ /**
+ * Retrieve the number of terms.
+ *
+ * @access public
+ *
+ * @return int Number of terms.
+ */
+ public function term_count() {
+ global $wpdb;
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->terms" );
+ }
+
+ /**
+ * Retrieve the number of rows in the `term_taxonomy` table.
+ *
+ * @access public
+ *
+ * @return int Number of terms.
+ */
+ public function term_taxonomy_count() {
+ global $wpdb;
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->term_taxonomy" );
+ }
+
+ /**
+ * Retrieve the number of term relationships.
+ *
+ * @access public
+ *
+ * @return int Number of rows in the term relationships table.
+ */
+ public function term_relationship_count() {
+ global $wpdb;
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->term_relationships" );
+ }
+
+ /**
+ * Retrieve the number of posts with a particular post status within a certain range.
+ *
+ * @access public
+ *
+ * @todo Prepare the SQL query before executing it.
+ *
+ * @param string $status Post status.
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ * @return int Number of posts.
+ */
+ public function post_count( $status = null, $min_id = null, $max_id = null ) {
+ global $wpdb;
+
+ $where = '';
+
+ if ( $status ) {
+ $where = "post_status = '" . esc_sql( $status ) . "'";
+ } else {
+ $where = '1=1';
+ }
+
+ if ( ! empty( $min_id ) ) {
+ $where .= ' AND ID >= ' . (int) $min_id;
+ }
+
+ if ( ! empty( $max_id ) ) {
+ $where .= ' AND ID <= ' . (int) $max_id;
+ }
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE $where" );
+ }
+
+ /**
+ * Retrieve the posts with a particular post status.
+ *
+ * @access public
+ *
+ * @todo Implement range and actually use max_id/min_id arguments.
+ *
+ * @param string $status Post status.
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ * @return array Array of posts.
+ */
+ public function get_posts( $status = null, $min_id = null, $max_id = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $args = array(
+ 'orderby' => 'ID',
+ 'posts_per_page' => -1,
+ );
+
+ if ( $status ) {
+ $args['post_status'] = $status;
+ } else {
+ $args['post_status'] = 'any';
+ }
+
+ return get_posts( $args );
+ }
+
+ /**
+ * Retrieve a post object by the post ID.
+ *
+ * @access public
+ *
+ * @param int $id Post ID.
+ * @return \WP_Post Post object.
+ */
+ public function get_post( $id ) {
+ return get_post( $id );
+ }
+
+ /**
+ * Update or insert a post.
+ *
+ * @access public
+ *
+ * @param \WP_Post $post Post object.
+ * @param bool $silent Whether to perform a silent action. Not used in this implementation.
+ */
+ public function upsert_post( $post, $silent = false ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ global $wpdb;
+
+ // Reject the post if it's not a \WP_Post.
+ if ( ! $post instanceof \WP_Post ) {
+ return;
+ }
+
+ $post = $post->to_array();
+
+ // Reject posts without an ID.
+ if ( ! isset( $post['ID'] ) ) {
+ return;
+ }
+
+ $now = current_time( 'mysql' );
+ $now_gmt = get_gmt_from_date( $now );
+
+ $defaults = array(
+ 'ID' => 0,
+ 'post_author' => '0',
+ 'post_content' => '',
+ 'post_content_filtered' => '',
+ 'post_title' => '',
+ 'post_name' => '',
+ 'post_excerpt' => '',
+ 'post_status' => 'draft',
+ 'post_type' => 'post',
+ 'comment_status' => 'closed',
+ 'comment_count' => '0',
+ 'ping_status' => '',
+ 'post_password' => '',
+ 'to_ping' => '',
+ 'pinged' => '',
+ 'post_parent' => 0,
+ 'menu_order' => 0,
+ 'guid' => '',
+ 'post_date' => $now,
+ 'post_date_gmt' => $now_gmt,
+ 'post_modified' => $now,
+ 'post_modified_gmt' => $now_gmt,
+ );
+
+ $post = array_intersect_key( $post, $defaults );
+
+ $post = sanitize_post( $post, 'db' );
+
+ unset( $post['filter'] );
+
+ $exists = $wpdb->get_var( $wpdb->prepare( "SELECT EXISTS( SELECT 1 FROM $wpdb->posts WHERE ID = %d )", $post['ID'] ) );
+
+ if ( $exists ) {
+ $wpdb->update( $wpdb->posts, $post, array( 'ID' => $post['ID'] ) );
+ } else {
+ $wpdb->insert( $wpdb->posts, $post );
+ }
+
+ clean_post_cache( $post['ID'] );
+ }
+
+ /**
+ * Delete a post by the post ID.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ */
+ public function delete_post( $post_id ) {
+ wp_delete_post( $post_id, true );
+ }
+
+ /**
+ * Retrieve the checksum for posts within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ * @return int The checksum.
+ */
+ public function posts_checksum( $min_id = null, $max_id = null ) {
+ return $this->summarize_checksum_histogram( $this->checksum_histogram( 'posts', null, $min_id, $max_id ) );
+ }
+
+ /**
+ * Retrieve the checksum for post meta within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum post meta ID.
+ * @param int $max_id Maximum post meta ID.
+ * @return int The checksum.
+ */
+ public function post_meta_checksum( $min_id = null, $max_id = null ) {
+ return $this->summarize_checksum_histogram( $this->checksum_histogram( 'postmeta', null, $min_id, $max_id ) );
+ }
+
+ /**
+ * Retrieve the number of comments with a particular comment status within a certain range.
+ *
+ * @access public
+ *
+ * @todo Prepare the SQL query before executing it.
+ *
+ * @param string $status Comment status.
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ * @return int Number of comments.
+ */
+ public function comment_count( $status = null, $min_id = null, $max_id = null ) {
+ global $wpdb;
+
+ $comment_approved = $this->comment_status_to_approval_value( $status );
+
+ if ( false !== $comment_approved ) {
+ $where = "comment_approved = '" . esc_sql( $comment_approved ) . "'";
+ } else {
+ $where = '1=1';
+ }
+
+ if ( ! empty( $min_id ) ) {
+ $where .= ' AND comment_ID >= ' . (int) $min_id;
+ }
+
+ if ( ! empty( $max_id ) ) {
+ $where .= ' AND comment_ID <= ' . (int) $max_id;
+ }
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->comments WHERE $where" );
+ }
+
+ /**
+ * Translate a comment status to a value of the comment_approved field.
+ *
+ * @access protected
+ *
+ * @param string $status Comment status.
+ * @return string|bool New comment_approved value, false if the status doesn't affect it.
+ */
+ protected function comment_status_to_approval_value( $status ) {
+ switch ( (string) $status ) {
+ case 'approve':
+ case '1':
+ return '1';
+ case 'hold':
+ case '0':
+ return '0';
+ case 'spam':
+ return 'spam';
+ case 'trash':
+ return 'trash';
+ case 'post-trashed':
+ return 'post-trashed';
+ case 'any':
+ case 'all':
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Retrieve the comments with a particular comment status.
+ *
+ * @access public
+ *
+ * @todo Implement range and actually use max_id/min_id arguments.
+ *
+ * @param string $status Comment status.
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ * @return array Array of comments.
+ */
+ public function get_comments( $status = null, $min_id = null, $max_id = null ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $args = array(
+ 'orderby' => 'ID',
+ 'status' => 'all',
+ );
+
+ if ( $status ) {
+ $args['status'] = $status;
+ }
+
+ return get_comments( $args );
+ }
+
+ /**
+ * Retrieve a comment object by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $id Comment ID.
+ * @return \WP_Comment Comment object.
+ */
+ public function get_comment( $id ) {
+ return \WP_Comment::get_instance( $id );
+ }
+
+ /**
+ * Update or insert a comment.
+ *
+ * @access public
+ *
+ * @param \WP_Comment $comment Comment object.
+ */
+ public function upsert_comment( $comment ) {
+ global $wpdb;
+
+ $comment = $comment->to_array();
+
+ // Filter by fields on comment table.
+ $comment_fields_whitelist = array(
+ 'comment_ID',
+ 'comment_post_ID',
+ 'comment_author',
+ 'comment_author_email',
+ 'comment_author_url',
+ 'comment_author_IP',
+ 'comment_date',
+ 'comment_date_gmt',
+ 'comment_content',
+ 'comment_karma',
+ 'comment_approved',
+ 'comment_agent',
+ 'comment_type',
+ 'comment_parent',
+ 'user_id',
+ );
+
+ foreach ( $comment as $key => $value ) {
+ if ( ! in_array( $key, $comment_fields_whitelist, true ) ) {
+ unset( $comment[ $key ] );
+ }
+ }
+
+ $exists = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT EXISTS( SELECT 1 FROM $wpdb->comments WHERE comment_ID = %d )",
+ $comment['comment_ID']
+ )
+ );
+
+ if ( $exists ) {
+ $wpdb->update( $wpdb->comments, $comment, array( 'comment_ID' => $comment['comment_ID'] ) );
+ } else {
+ $wpdb->insert( $wpdb->comments, $comment );
+ }
+ // Remove comment from cache.
+ clean_comment_cache( $comment['comment_ID'] );
+
+ wp_update_comment_count( $comment['comment_post_ID'] );
+ }
+
+ /**
+ * Trash a comment by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function trash_comment( $comment_id ) {
+ wp_delete_comment( $comment_id );
+ }
+
+ /**
+ * Delete a comment by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function delete_comment( $comment_id ) {
+ wp_delete_comment( $comment_id, true );
+ }
+
+ /**
+ * Mark a comment by the comment ID as spam.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function spam_comment( $comment_id ) {
+ wp_spam_comment( $comment_id );
+ }
+
+ /**
+ * Trash the comments of a post.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ * @param array $statuses Post statuses. Not used in this implementation.
+ */
+ public function trashed_post_comments( $post_id, $statuses ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ wp_trash_post_comments( $post_id );
+ }
+
+ /**
+ * Untrash the comments of a post.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ */
+ public function untrashed_post_comments( $post_id ) {
+ wp_untrash_post_comments( $post_id );
+ }
+
+ /**
+ * Retrieve the checksum for comments within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ * @return int The checksum.
+ */
+ public function comments_checksum( $min_id = null, $max_id = null ) {
+ return $this->summarize_checksum_histogram( $this->checksum_histogram( 'comments', null, $min_id, $max_id ) );
+ }
+
+ /**
+ * Retrieve the checksum for comment meta within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum comment meta ID.
+ * @param int $max_id Maximum comment meta ID.
+ * @return int The checksum.
+ */
+ public function comment_meta_checksum( $min_id = null, $max_id = null ) {
+ return $this->summarize_checksum_histogram( $this->checksum_histogram( 'commentmeta', null, $min_id, $max_id ) );
+ }
+
+ /**
+ * Update the value of an option.
+ *
+ * @access public
+ *
+ * @param string $option Option name.
+ * @param mixed $value Option value.
+ * @return bool False if value was not updated and true if value was updated.
+ */
+ public function update_option( $option, $value ) {
+ return update_option( $option, $value );
+ }
+
+ /**
+ * Retrieve an option value based on an option name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to retrieve.
+ * @param mixed $default Optional. Default value to return if the option does not exist.
+ * @return mixed Value set for the option.
+ */
+ public function get_option( $option, $default = false ) {
+ return get_option( $option, $default );
+ }
+
+ /**
+ * Remove an option by name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to remove.
+ * @return bool True, if option is successfully deleted. False on failure.
+ */
+ public function delete_option( $option ) {
+ return delete_option( $option );
+ }
+
+ /**
+ * Change the info of the current theme.
+ *
+ * @access public
+ *
+ * @param array $theme_info Theme info array.
+ */
+ public function set_theme_info( $theme_info ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Noop.
+ }
+
+ /**
+ * Whether the current theme supports a certain feature.
+ *
+ * @access public
+ *
+ * @param string $feature Name of the feature.
+ */
+ public function current_theme_supports( $feature ) {
+ return current_theme_supports( $feature );
+ }
+
+ /**
+ * Retrieve metadata for the specified object.
+ *
+ * @access public
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param string $meta_key Meta key.
+ * @param bool $single If true, return only the first value of the specified meta_key.
+ *
+ * @return mixed Single metadata value, or array of values.
+ */
+ public function get_metadata( $type, $object_id, $meta_key = '', $single = false ) {
+ return get_metadata( $type, $object_id, $meta_key, $single );
+ }
+
+ /**
+ * Stores remote meta key/values alongside an ID mapping key.
+ *
+ * @access public
+ *
+ * @todo Refactor to not use interpolated values when preparing the SQL query.
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value.
+ * @param int $meta_id ID of the meta.
+ *
+ * @return bool False if meta table does not exist, true otherwise.
+ */
+ public function upsert_metadata( $type, $object_id, $meta_key, $meta_value, $meta_id ) {
+ $table = _get_meta_table( $type );
+ if ( ! $table ) {
+ return false;
+ }
+
+ global $wpdb;
+
+ $exists = $wpdb->get_var(
+ $wpdb->prepare(
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ "SELECT EXISTS( SELECT 1 FROM $table WHERE meta_id = %d )",
+ $meta_id
+ )
+ );
+
+ if ( $exists ) {
+ $wpdb->update(
+ $table,
+ array(
+ 'meta_key' => $meta_key,
+ 'meta_value' => maybe_serialize( $meta_value ),
+ ),
+ array( 'meta_id' => $meta_id )
+ );
+ } else {
+ $object_id_field = $type . '_id';
+ $wpdb->insert(
+ $table,
+ array(
+ 'meta_id' => $meta_id,
+ $object_id_field => $object_id,
+ 'meta_key' => $meta_key,
+ 'meta_value' => maybe_serialize( $meta_value ),
+ )
+ );
+ }
+
+ wp_cache_delete( $object_id, $type . '_meta' );
+
+ return true;
+ }
+
+ /**
+ * Delete metadata for the specified object.
+ *
+ * @access public
+ *
+ * @todo Refactor to not use interpolated values when preparing the SQL query.
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param array $meta_ids IDs of the meta objects to delete.
+ */
+ public function delete_metadata( $type, $object_id, $meta_ids ) {
+ global $wpdb;
+
+ $table = _get_meta_table( $type );
+ if ( ! $table ) {
+ return false;
+ }
+
+ foreach ( $meta_ids as $meta_id ) {
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE meta_id = %d", $meta_id ) );
+ }
+
+ // If we don't have an object ID what do we do - invalidate ALL meta?
+ if ( $object_id ) {
+ wp_cache_delete( $object_id, $type . '_meta' );
+ }
+ }
+
+ /**
+ * Delete metadata with a certain key for the specified objects.
+ *
+ * @access public
+ *
+ * @todo Test this out to make sure it works as expected.
+ * @todo Refactor to not use interpolated values when preparing the SQL query.
+ *
+ * @param string $type Meta type.
+ * @param array $object_ids IDs of the objects.
+ * @param string $meta_key Meta key.
+ */
+ public function delete_batch_metadata( $type, $object_ids, $meta_key ) {
+ global $wpdb;
+
+ $table = _get_meta_table( $type );
+ if ( ! $table ) {
+ return false;
+ }
+ $column = sanitize_key( $type . '_id' );
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE $column IN (%s) && meta_key = %s", implode( ',', $object_ids ), $meta_key ) );
+
+ // If we don't have an object ID what do we do - invalidate ALL meta?
+ foreach ( $object_ids as $object_id ) {
+ wp_cache_delete( $object_id, $type . '_meta' );
+ }
+ }
+
+ /**
+ * Retrieve value of a constant based on the constant name.
+ *
+ * We explicitly return null instead of false if the constant doesn't exist.
+ *
+ * @access public
+ *
+ * @param string $constant Name of constant to retrieve.
+ * @return mixed Value set for the constant.
+ */
+ public function get_constant( $constant ) {
+ $value = get_option( 'jetpack_constant_' . $constant );
+
+ if ( $value ) {
+ return $value;
+ }
+
+ return null;
+ }
+
+ /**
+ * Set the value of a constant.
+ *
+ * @access public
+ *
+ * @param string $constant Name of constant to retrieve.
+ * @param mixed $value Value set for the constant.
+ */
+ public function set_constant( $constant, $value ) {
+ update_option( 'jetpack_constant_' . $constant, $value );
+ }
+
+ /**
+ * Retrieve the number of the available updates of a certain type.
+ * Type is one of: `plugins`, `themes`, `wordpress`, `translations`, `total`, `wp_update_version`.
+ *
+ * @access public
+ *
+ * @param string $type Type of updates to retrieve.
+ * @return int|null Number of updates available, `null` if type is invalid or missing.
+ */
+ public function get_updates( $type ) {
+ $all_updates = get_option( 'jetpack_updates', array() );
+
+ if ( isset( $all_updates[ $type ] ) ) {
+ return $all_updates[ $type ];
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Set the available updates of a certain type.
+ * Type is one of: `plugins`, `themes`, `wordpress`, `translations`, `total`, `wp_update_version`.
+ *
+ * @access public
+ *
+ * @param string $type Type of updates to set.
+ * @param int $updates Total number of updates.
+ */
+ public function set_updates( $type, $updates ) {
+ $all_updates = get_option( 'jetpack_updates', array() );
+ $all_updates[ $type ] = $updates;
+ update_option( 'jetpack_updates', $all_updates );
+ }
+
+ /**
+ * Retrieve a callable value based on its name.
+ *
+ * @access public
+ *
+ * @param string $name Name of the callable to retrieve.
+ * @return mixed Value of the callable.
+ */
+ public function get_callable( $name ) {
+ $value = get_option( 'jetpack_' . $name );
+
+ if ( $value ) {
+ return $value;
+ }
+
+ return null;
+ }
+
+ /**
+ * Update the value of a callable.
+ *
+ * @access public
+ *
+ * @param string $name Callable name.
+ * @param mixed $value Callable value.
+ */
+ public function set_callable( $name, $value ) {
+ update_option( 'jetpack_' . $name, $value );
+ }
+
+ /**
+ * Retrieve a network option value based on a network option name.
+ *
+ * @access public
+ *
+ * @param string $option Name of network option to retrieve.
+ * @return mixed Value set for the network option.
+ */
+ public function get_site_option( $option ) {
+ return get_option( 'jetpack_network_' . $option );
+ }
+
+ /**
+ * Update the value of a network option.
+ *
+ * @access public
+ *
+ * @param string $option Network option name.
+ * @param mixed $value Network option value.
+ * @return bool False if value was not updated and true if value was updated.
+ */
+ public function update_site_option( $option, $value ) {
+ return update_option( 'jetpack_network_' . $option, $value );
+ }
+
+ /**
+ * Remove a network option by name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to remove.
+ * @return bool True, if option is successfully deleted. False on failure.
+ */
+ public function delete_site_option( $option ) {
+ return delete_option( 'jetpack_network_' . $option );
+ }
+
+ /**
+ * Retrieve the terms from a particular taxonomy.
+ *
+ * @access public
+ *
+ * @param string $taxonomy Taxonomy slug.
+ *
+ * @return array|WP_Error Array of terms or WP_Error object on failure.
+ */
+ public function get_terms( $taxonomy ) {
+ $t = $this->ensure_taxonomy( $taxonomy );
+ if ( ! $t || is_wp_error( $t ) ) {
+ return $t;
+ }
+ return get_terms( $taxonomy );
+ }
+
+ /**
+ * Retrieve a particular term.
+ *
+ * @access public
+ *
+ * @param string $taxonomy Taxonomy slug.
+ * @param int $term_id ID of the term.
+ * @param string $term_key ID Field `term_id` or `term_taxonomy_id`.
+ *
+ * @return \WP_Term|WP_Error Term object on success, \WP_Error object on failure.
+ */
+ public function get_term( $taxonomy, $term_id, $term_key = 'term_id' ) {
+
+ // Full Sync will pass false for the $taxonomy so a check for term_taxonomy_id is needed before ensure_taxonomy.
+ if ( 'term_taxonomy_id' === $term_key ) {
+ return get_term_by( 'term_taxonomy_id', $term_id );
+ }
+
+ $t = $this->ensure_taxonomy( $taxonomy );
+ if ( ! $t || is_wp_error( $t ) ) {
+ return $t;
+ }
+
+ return get_term( $term_id, $taxonomy );
+ }
+
+ /**
+ * Verify a taxonomy is legitimate and register it if necessary.
+ *
+ * @access private
+ *
+ * @param string $taxonomy Taxonomy slug.
+ *
+ * @return bool|void|WP_Error True if already exists; void if it was registered; \WP_Error on error.
+ */
+ private function ensure_taxonomy( $taxonomy ) {
+ if ( ! taxonomy_exists( $taxonomy ) ) {
+ // Try re-registering synced taxonomies.
+ $taxonomies = $this->get_callable( 'taxonomies' );
+ if ( ! isset( $taxonomies[ $taxonomy ] ) ) {
+ // Doesn't exist, or somehow hasn't been synced.
+ return new WP_Error( 'invalid_taxonomy', "The taxonomy '$taxonomy' doesn't exist" );
+ }
+ $t = $taxonomies[ $taxonomy ];
+
+ return register_taxonomy(
+ $taxonomy,
+ $t->object_type,
+ (array) $t
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Retrieve all terms from a taxonomy that are related to an object with a particular ID.
+ *
+ * @access public
+ *
+ * @param int $object_id Object ID.
+ * @param string $taxonomy Taxonomy slug.
+ *
+ * @return array|bool|WP_Error Array of terms on success, `false` if no terms or post doesn't exist, \WP_Error on failure.
+ */
+ public function get_the_terms( $object_id, $taxonomy ) {
+ return get_the_terms( $object_id, $taxonomy );
+ }
+
+ /**
+ * Insert or update a term.
+ *
+ * @access public
+ *
+ * @param \WP_Term $term_object Term object.
+ *
+ * @return array|bool|WP_Error Array of term_id and term_taxonomy_id if updated, true if inserted, \WP_Error on failure.
+ */
+ public function update_term( $term_object ) {
+ $taxonomy = $term_object->taxonomy;
+ global $wpdb;
+ $exists = $wpdb->get_var(
+ $wpdb->prepare(
+ "SELECT EXISTS( SELECT 1 FROM $wpdb->terms WHERE term_id = %d )",
+ $term_object->term_id
+ )
+ );
+ if ( ! $exists ) {
+ $term_object = sanitize_term( clone $term_object, $taxonomy, 'db' );
+ $term = array(
+ 'term_id' => $term_object->term_id,
+ 'name' => $term_object->name,
+ 'slug' => $term_object->slug,
+ 'term_group' => $term_object->term_group,
+ );
+ $term_taxonomy = array(
+ 'term_taxonomy_id' => $term_object->term_taxonomy_id,
+ 'term_id' => $term_object->term_id,
+ 'taxonomy' => $term_object->taxonomy,
+ 'description' => $term_object->description,
+ 'parent' => (int) $term_object->parent,
+ 'count' => (int) $term_object->count,
+ );
+ $wpdb->insert( $wpdb->terms, $term );
+ $wpdb->insert( $wpdb->term_taxonomy, $term_taxonomy );
+
+ return true;
+ }
+
+ return wp_update_term( $term_object->term_id, $taxonomy, (array) $term_object );
+ }
+
+ /**
+ * Delete a term by the term ID and its corresponding taxonomy.
+ *
+ * @access public
+ *
+ * @param int $term_id Term ID.
+ * @param string $taxonomy Taxonomy slug.
+ *
+ * @return bool|int|WP_Error True on success, false if term doesn't exist. Zero if trying with default category. \WP_Error on invalid taxonomy.
+ */
+ public function delete_term( $term_id, $taxonomy ) {
+ $this->ensure_taxonomy( $taxonomy );
+ return wp_delete_term( $term_id, $taxonomy );
+ }
+
+ /**
+ * Add/update terms of a particular taxonomy of an object with the specified ID.
+ *
+ * @access public
+ *
+ * @param int $object_id The object to relate to.
+ * @param string $taxonomy The context in which to relate the term to the object.
+ * @param string|int|array $terms A single term slug, single term id, or array of either term slugs or ids.
+ * @param bool $append Optional. If false will delete difference of terms. Default false.
+ */
+ public function update_object_terms( $object_id, $taxonomy, $terms, $append ) {
+ $this->ensure_taxonomy( $taxonomy );
+ wp_set_object_terms( $object_id, $terms, $taxonomy, $append );
+ }
+
+ /**
+ * Remove certain term relationships from the specified object.
+ *
+ * @access public
+ *
+ * @todo Refactor to not use interpolated values when preparing the SQL query.
+ *
+ * @param int $object_id ID of the object.
+ * @param array $tt_ids Term taxonomy IDs.
+ * @return bool True on success, false on failure.
+ */
+ public function delete_object_terms( $object_id, $tt_ids ) {
+ global $wpdb;
+
+ if ( is_array( $tt_ids ) && ! empty( $tt_ids ) ) {
+ // Escape.
+ $tt_ids_sanitized = array_map( 'intval', $tt_ids );
+
+ $taxonomies = array();
+ foreach ( $tt_ids_sanitized as $tt_id ) {
+ $term = get_term_by( 'term_taxonomy_id', $tt_id );
+ $taxonomies[ $term->taxonomy ][] = $tt_id;
+ }
+ $in_tt_ids = implode( ', ', $tt_ids_sanitized );
+
+ /**
+ * Fires immediately before an object-term relationship is deleted.
+ *
+ * @since 1.6.3
+ * @since-jetpack 2.9.0
+ *
+ * @param int $object_id Object ID.
+ * @param array $tt_ids An array of term taxonomy IDs.
+ */
+ do_action( 'delete_term_relationships', $object_id, $tt_ids_sanitized );
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $deleted = $wpdb->query( $wpdb->prepare( "DELETE FROM $wpdb->term_relationships WHERE object_id = %d AND term_taxonomy_id IN ($in_tt_ids)", $object_id ) );
+ foreach ( $taxonomies as $taxonomy => $taxonomy_tt_ids ) {
+ $this->ensure_taxonomy( $taxonomy );
+ wp_cache_delete( $object_id, $taxonomy . '_relationships' );
+ /**
+ * Fires immediately after an object-term relationship is deleted.
+ *
+ * @since 1.6.3
+ * @since-jetpack 2.9.0
+ *
+ * @param int $object_id Object ID.
+ * @param array $tt_ids An array of term taxonomy IDs.
+ */
+ do_action( 'deleted_term_relationships', $object_id, $taxonomy_tt_ids );
+ wp_update_term_count( $taxonomy_tt_ids, $taxonomy );
+ }
+
+ return (bool) $deleted;
+ }
+
+ return false;
+ }
+
+ /**
+ * Retrieve the number of users.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ */
+ public function user_count() {
+ // Noop.
+ }
+
+ /**
+ * Retrieve a user object by the user ID.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ * @return \WP_User User object.
+ */
+ public function get_user( $user_id ) {
+ return \WP_User::get_instance( $user_id );
+ }
+
+ /**
+ * Insert or update a user.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ * @throws Exception If this method is invoked.
+ *
+ * @param \WP_User $user User object.
+ */
+ public function upsert_user( $user ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->invalid_call();
+ }
+
+ /**
+ * Delete a user.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ * @throws Exception If this method is invoked.
+ *
+ * @param int $user_id User ID.
+ */
+ public function delete_user( $user_id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->invalid_call();
+ }
+
+ /**
+ * Update/insert user locale.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ * @throws Exception If this method is invoked.
+ *
+ * @param int $user_id User ID.
+ * @param string $local The user locale.
+ */
+ public function upsert_user_locale( $user_id, $local ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->invalid_call();
+ }
+
+ /**
+ * Delete user locale.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ * @throws Exception If this method is invoked.
+ *
+ * @param int $user_id User ID.
+ */
+ public function delete_user_locale( $user_id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $this->invalid_call();
+ }
+
+ /**
+ * Retrieve the user locale.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ * @return string The user locale.
+ */
+ public function get_user_locale( $user_id ) {
+ return get_user_locale( $user_id );
+ }
+
+ /**
+ * Retrieve the allowed mime types for the user.
+ * Not supported in this replicastore.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function get_allowed_mime_types( $user_id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Noop.
+ }
+
+ /**
+ * Retrieve all the checksums we are interested in.
+ * Currently that is posts, comments, post meta and comment meta.
+ *
+ * @access public
+ *
+ * @param boolean $perform_text_conversion If text fields should be latin1 converted.
+ *
+ * @return array Checksums.
+ */
+ public function checksum_all( $perform_text_conversion = false ) {
+ $post_checksum = $this->checksum_histogram( 'posts', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $comments_checksum = $this->checksum_histogram( 'comments', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $post_meta_checksum = $this->checksum_histogram( 'postmeta', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $comment_meta_checksum = $this->checksum_histogram( 'commentmeta', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $terms_checksum = $this->checksum_histogram( 'terms', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $term_relationships_checksum = $this->checksum_histogram( 'term_relationships', null, null, null, null, true, '', false, false, $perform_text_conversion );
+ $term_taxonomy_checksum = $this->checksum_histogram( 'term_taxonomy', null, null, null, null, true, '', false, false, $perform_text_conversion );
+
+ $result = array(
+ 'posts' => $this->summarize_checksum_histogram( $post_checksum ),
+ 'comments' => $this->summarize_checksum_histogram( $comments_checksum ),
+ 'post_meta' => $this->summarize_checksum_histogram( $post_meta_checksum ),
+ 'comment_meta' => $this->summarize_checksum_histogram( $comment_meta_checksum ),
+ 'terms' => $this->summarize_checksum_histogram( $terms_checksum ),
+ 'term_relationships' => $this->summarize_checksum_histogram( $term_relationships_checksum ),
+ 'term_taxonomy' => $this->summarize_checksum_histogram( $term_taxonomy_checksum ),
+ );
+
+ /**
+ * WooCommerce tables
+ */
+
+ /**
+ * On WordPress.com, we can't directly check if the site has support for WooCommerce.
+ * Having the option to override the functionality here helps with syncing WooCommerce tables.
+ *
+ * @since 10.1
+ *
+ * @param bool If we should we force-enable WooCommerce tables support.
+ */
+ $force_woocommerce_support = apply_filters( 'jetpack_table_checksum_force_enable_woocommerce', false );
+
+ if ( $force_woocommerce_support || class_exists( 'WooCommerce' ) ) {
+ /**
+ * Guard in Try/Catch as it's possible for the WooCommerce class to exist, but
+ * the tables to not. If we don't do this, the response will be just the exception, without
+ * returning any valid data. This will prevent us from ever performing a checksum/fix
+ * for sites like this.
+ * It's better to just skip the tables in the response, instead of completely failing.
+ */
+
+ try {
+ $woocommerce_order_items_checksum = $this->checksum_histogram( 'woocommerce_order_items' );
+ $result['woocommerce_order_items'] = $this->summarize_checksum_histogram( $woocommerce_order_items_checksum );
+ } catch ( Exception $ex ) {
+ $result['woocommerce_order_items'] = null;
+ }
+
+ try {
+ $woocommerce_order_itemmeta_checksum = $this->checksum_histogram( 'woocommerce_order_itemmeta' );
+ $result['woocommerce_order_itemmeta'] = $this->summarize_checksum_histogram( $woocommerce_order_itemmeta_checksum );
+ } catch ( Exception $ex ) {
+ $result['woocommerce_order_itemmeta'] = null;
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Return the summarized checksum from buckets or the WP_Error.
+ *
+ * @param array $histogram checksum_histogram result.
+ *
+ * @return int|WP_Error checksum or Error.
+ */
+ protected function summarize_checksum_histogram( $histogram ) {
+ if ( is_wp_error( $histogram ) ) {
+ return $histogram;
+ } else {
+ return array_sum( $histogram );
+ }
+ }
+
+ /**
+ * Grabs the minimum and maximum object ids for the given parameters.
+ *
+ * @access public
+ *
+ * @param string $id_field The id column in the table to query.
+ * @param string $object_table The table to query.
+ * @param string $where A sql where clause without 'WHERE'.
+ * @param int $bucket_size The maximum amount of objects to include in the query.
+ * For `term_relationships` table, the bucket size will refer to the amount
+ * of distinct object ids. This will likely include more database rows than
+ * the bucket size implies.
+ *
+ * @return object An object with min_id and max_id properties.
+ */
+ public function get_min_max_object_id( $id_field, $object_table, $where, $bucket_size ) {
+ global $wpdb;
+
+ // The term relationship table's unique key is a combination of 2 columns. `DISTINCT` helps us get a more acurate query.
+ $distinct_sql = ( $wpdb->term_relationships === $object_table ) ? 'DISTINCT' : '';
+ $where_sql = $where ? "WHERE $where" : '';
+
+ // Since MIN() and MAX() do not work with LIMIT, we'll need to adjust the dataset we query if a limit is present.
+ // With a limit present, we'll look at a dataset consisting of object_ids that meet the constructs of the $where clause.
+ // Without a limit, we can use the actual table as a dataset.
+ $from = $bucket_size ?
+ "( SELECT $distinct_sql $id_field FROM $object_table $where_sql ORDER BY $id_field ASC LIMIT $bucket_size ) as ids" :
+ "$object_table $where_sql ORDER BY $id_field ASC";
+
+ return $wpdb->get_row(
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ "SELECT MIN($id_field) as min, MAX($id_field) as max FROM $from"
+ );
+ }
+
+ /**
+ * Retrieve the checksum histogram for a specific object type.
+ *
+ * @access public
+ *
+ * @param string $table Object type.
+ * @param null $buckets Number of buckets to split the objects to.
+ * @param null $start_id Minimum object ID.
+ * @param null $end_id Maximum object ID.
+ * @param null $columns Table columns to calculate the checksum from.
+ * @param bool $strip_non_ascii Whether to strip non-ASCII characters.
+ * @param string $salt Salt, used for $wpdb->prepare()'s args.
+ * @param bool $only_range_edges Only return the range edges and not the actual checksums.
+ * @param bool $detailed_drilldown If the call should return a detailed drilldown for the checksum or only the checksum.
+ * @param bool $perform_text_conversion If text fields should be converted to latin1 during the checksum calculation.
+ *
+ * @return array|WP_Error The checksum histogram.
+ * @throws Exception Throws an exception if data validation fails inside `Table_Checksum` calls.
+ */
+ public function checksum_histogram( $table, $buckets = null, $start_id = null, $end_id = null, $columns = null, $strip_non_ascii = true, $salt = '', $only_range_edges = false, $detailed_drilldown = false, $perform_text_conversion = false ) {
+ global $wpdb;
+
+ $wpdb->queries = array();
+ try {
+ $checksum_table = $this->get_table_checksum_instance( $table, $salt, $perform_text_conversion );
+ } catch ( Exception $ex ) {
+ return new WP_Error( 'checksum_disabled', $ex->getMessage() );
+ }
+
+ // Validate / Determine Buckets.
+ if ( is_null( $buckets ) || $buckets < 1 ) {
+ $buckets = $this->calculate_buckets( $table, $start_id, $end_id );
+ }
+ if ( is_wp_error( $buckets ) ) {
+ return $buckets;
+ }
+
+ $range_edges = $checksum_table->get_range_edges( $start_id, $end_id );
+
+ if ( $only_range_edges ) {
+ return $range_edges;
+ }
+
+ $object_count = (int) $range_edges['item_count'];
+
+ if ( 0 === $object_count ) {
+ return array();
+ }
+
+ $bucket_size = (int) ceil( $object_count / $buckets );
+ $previous_max_id = max( 0, $range_edges['min_range'] );
+ $histogram = array();
+
+ do {
+ $ids_range = $checksum_table->get_range_edges( $previous_max_id, null, $bucket_size );
+
+ if ( empty( $ids_range['min_range'] ) || empty( $ids_range['max_range'] ) ) {
+ // Nothing to checksum here...
+ break;
+ }
+
+ // Get the checksum value.
+ $batch_checksum = $checksum_table->calculate_checksum( $ids_range['min_range'], $ids_range['max_range'], null, $detailed_drilldown );
+
+ if ( is_wp_error( $batch_checksum ) ) {
+ return $batch_checksum;
+ }
+
+ if ( $ids_range['min_range'] === $ids_range['max_range'] ) {
+ $histogram[ $ids_range['min_range'] ] = $batch_checksum;
+ } else {
+ $histogram[ "{$ids_range[ 'min_range' ]}-{$ids_range[ 'max_range' ]}" ] = $batch_checksum;
+ }
+
+ $previous_max_id = $ids_range['max_range'] + 1;
+ // If we've reached the max_range lets bail out.
+ if ( $previous_max_id > $range_edges['max_range'] ) {
+ break;
+ }
+ } while ( true );
+
+ return $histogram;
+ }
+
+ /**
+ * Retrieve the type of the checksum.
+ *
+ * @access public
+ *
+ * @return string Type of the checksum.
+ */
+ public function get_checksum_type() {
+ return 'sum';
+ }
+
+ /**
+ * Used in methods that are not implemented and shouldn't be invoked.
+ *
+ * @access private
+ * @throws Exception If this method is invoked.
+ */
+ private function invalid_call() {
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+ $backtrace = debug_backtrace();
+ $caller = $backtrace[1]['function'];
+ throw new Exception( "This function $caller is not supported on the WP Replicastore" );
+ }
+
+ /**
+ * Determine number of buckets to use in full table checksum.
+ *
+ * @param string $table Object Type.
+ * @param int $start_id Min Object ID.
+ * @param int $end_id Max Object ID.
+ * @return int|WP_Error Number of Buckets to use.
+ */
+ private function calculate_buckets( $table, $start_id = null, $end_id = null ) {
+ // Get # of objects.
+ try {
+ $checksum_table = $this->get_table_checksum_instance( $table );
+ } catch ( Exception $ex ) {
+ return new WP_Error( 'checksum_disabled', $ex->getMessage() );
+ }
+ $range_edges = $checksum_table->get_range_edges( $start_id, $end_id );
+ $object_count = $range_edges['item_count'];
+
+ // Ensure no division by 0.
+ if ( 0 === (int) $object_count ) {
+ return 1;
+ }
+
+ // Default Bucket sizes.
+ $bucket_size = 10000; // Default bucket size is 10,000 items.
+ switch ( $table ) {
+ case 'postmeta':
+ case 'commentmeta':
+ case 'order_itemmeta':
+ $bucket_size = 1000; // Meta bucket size is restricted to 1000 items.
+ }
+
+ return (int) ceil( $object_count / $bucket_size );
+ }
+
+ /**
+ * Return an instance for `Table_Checksum`, depending on the table.
+ *
+ * Some tables require custom instances, due to different checksum logic.
+ *
+ * @param string $table The table that we want to get the instance for.
+ * @param null $salt Salt to be used when generating the checksums.
+ * @param false $perform_text_conversion Should we perform text encoding conversion when calculating the checksum.
+ *
+ * @return Table_Checksum|Table_Checksum_Usermeta
+ * @throws Exception Might throw an exception if any of the input parameters were invalid.
+ */
+ public function get_table_checksum_instance( $table, $salt = null, $perform_text_conversion = false ) {
+ if ( 'users' === $table ) {
+ return new Table_Checksum_Users( $table, $salt, $perform_text_conversion );
+ }
+ if ( 'usermeta' === $table ) {
+ return new Table_Checksum_Usermeta( $table, $salt, $perform_text_conversion );
+ }
+
+ return new Table_Checksum( $table, $salt, $perform_text_conversion );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php
new file mode 100644
index 00000000..ae12ff32
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php
@@ -0,0 +1,804 @@
+<?php
+/**
+ * Sync package.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Rest_Authentication;
+use WP_Error;
+use WP_REST_Server;
+
+/**
+ * This class will handle Sync v4 REST Endpoints.
+ *
+ * @since 1.23.1
+ */
+class REST_Endpoints {
+
+ /**
+ * Items pending send.
+ *
+ * @var array
+ */
+ public $items = array();
+
+ /**
+ * Initialize REST routes.
+ */
+ public static function initialize_rest_api() {
+
+ // Request a Full Sync.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/full-sync',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::full_sync_start',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'modules' => array(
+ 'description' => __( 'Data Modules that should be included in Full Sync', 'jetpack-sync' ),
+ 'type' => 'array',
+ 'required' => false,
+ ),
+ 'users' => array(
+ 'description' => __( 'User IDs to include in Full Sync or "initial"', 'jetpack-sync' ),
+ 'required' => false,
+ ),
+ 'posts' => array(
+ 'description' => __( 'Post IDs to include in Full Sync', 'jetpack-sync' ),
+ 'type' => 'array',
+ 'required' => false,
+ ),
+ 'comments' => array(
+ 'description' => __( 'Comment IDs to include in Full Sync', 'jetpack-sync' ),
+ 'type' => 'array',
+ 'required' => false,
+ ),
+ ),
+ )
+ );
+
+ // Obtain Sync status.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/status',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::sync_status',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'fields' => array(
+ 'description' => __( 'Comma seperated list of additional fields that should be included in status.', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => false,
+ ),
+ ),
+ )
+ );
+
+ // Update Sync health status.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/health',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::sync_health',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'status' => array(
+ 'description' => __( 'New Sync health status', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Obtain Sync settings.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/settings',
+ array(
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_sync_settings',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ ),
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_sync_settings',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ ),
+ )
+ );
+
+ // Retrieve Sync Object(s).
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/object',
+ array(
+ 'methods' => WP_REST_Server::ALLMETHODS,
+ 'callback' => __CLASS__ . '::get_sync_objects',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'module_name' => array(
+ 'description' => __( 'Name of Sync module', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => false,
+ ),
+ 'object_type' => array(
+ 'description' => __( 'Object Type', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => false,
+ ),
+ 'object_ids' => array(
+ 'description' => __( 'Objects Identifiers', 'jetpack-sync' ),
+ 'type' => 'array',
+ 'required' => false,
+ ),
+ ),
+ )
+ );
+
+ // Retrieve Sync Object(s).
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/now',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::do_sync',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'queue' => array(
+ 'description' => __( 'Name of Sync queue.', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Checkout Sync Objects.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/checkout',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::checkout',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ )
+ );
+
+ // Checkin Sync Objects.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/close',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::close',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ )
+ );
+
+ // Unlock Sync Queue.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/unlock',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::unlock_queue',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'queue' => array(
+ 'description' => __( 'Name of Sync queue.', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Retrieve range of Object Ids.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/object-id-range',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_object_id_range',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'sync_module' => array(
+ 'description' => __( 'Name of Sync module.', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ 'batch_size' => array(
+ 'description' => __( 'Size of batches', 'jetpack-sync' ),
+ 'type' => 'int',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // Obtain table checksums.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/data-check',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::data_check',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'perform_text_conversion' => array(
+ 'description' => __( 'If text fields should be converted to latin1 in checksum calculation.', 'jetpack-sync' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ ),
+ ),
+ )
+ );
+
+ // Obtain histogram.
+ register_rest_route(
+ 'jetpack/v4',
+ '/sync/data-histogram',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::data_histogram',
+ 'permission_callback' => __CLASS__ . '::verify_default_permissions',
+ 'args' => array(
+ 'columns' => array(
+ 'description' => __( 'Column mappings', 'jetpack-sync' ),
+ 'type' => 'array',
+ 'required' => false,
+ ),
+ 'object_type' => array(
+ 'description' => __( 'Object Type', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => false,
+ ),
+ 'buckets' => array(
+ 'description' => __( 'Number of histogram buckets.', 'jetpack-sync' ),
+ 'type' => 'int',
+ 'required' => false,
+ ),
+ 'start_id' => array(
+ 'description' => __( 'Start ID for the histogram', 'jetpack-sync' ),
+ 'type' => 'int',
+ 'required' => false,
+ ),
+ 'end_id' => array(
+ 'description' => __( 'End ID for the histogram', 'jetpack-sync' ),
+ 'type' => 'int',
+ 'required' => false,
+ ),
+ 'strip_non_ascii' => array(
+ 'description' => __( 'Strip non-ascii characters?', 'jetpack-sync' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ ),
+ 'shared_salt' => array(
+ 'description' => __( 'Shared Salt to use when generating checksum', 'jetpack-sync' ),
+ 'type' => 'string',
+ 'required' => false,
+ ),
+ 'only_range_edges' => array(
+ 'description' => __( 'Should only range endges be returned', 'jetpack-sync' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ ),
+ 'detailed_drilldown' => array(
+ 'description' => __( 'Do we want the checksum or object ids.', 'jetpack-sync' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ ),
+ 'perform_text_conversion' => array(
+ 'description' => __( 'If text fields should be converted to latin1 in checksum calculation.', 'jetpack-sync' ),
+ 'type' => 'boolean',
+ 'required' => false,
+ ),
+ ),
+ )
+ );
+
+ }
+
+ /**
+ * Trigger a Full Sync of specified modules.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public static function full_sync_start( $request ) {
+
+ $modules = $request->get_param( 'modules' );
+
+ // convert list of modules into array format of "$modulename => true".
+ if ( ! empty( $modules ) ) {
+ $modules = array_map( '__return_true', array_flip( $modules ) );
+ }
+
+ // Process additional options.
+ foreach ( array( 'posts', 'comments', 'users' ) as $module_name ) {
+ if ( 'users' === $module_name && 'initial' === $request->get_param( 'users' ) ) {
+ $modules['users'] = 'initial';
+ } elseif ( is_array( $request->get_param( $module_name ) ) ) {
+ $ids = $request->get_param( $module_name );
+ if ( count( $ids ) > 0 ) {
+ $modules[ $module_name ] = $ids;
+ }
+ }
+ }
+
+ if ( empty( $modules ) ) {
+ $modules = null;
+ }
+
+ return rest_ensure_response(
+ array(
+ 'scheduled' => Actions::do_full_sync( $modules ),
+ )
+ );
+ }
+
+ /**
+ * Return Sync's status.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function sync_status( $request ) {
+ $fields = $request->get_param( 'fields' );
+ return rest_ensure_response( Actions::get_sync_status( $fields ) );
+ }
+
+ /**
+ * Return table checksums.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function data_check( $request ) {
+ // Disable Sync during this call, so we can resolve faster.
+ Actions::mark_sync_read_only();
+ $store = new Replicastore();
+
+ $perform_text_conversion = false;
+ if ( true === $request->get_param( 'perform_text_conversion' ) ) {
+ $perform_text_conversion = true;
+ }
+
+ return rest_ensure_response( $store->checksum_all( $perform_text_conversion ) );
+ }
+
+ /**
+ * Return Histogram.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function data_histogram( $request ) {
+
+ // Disable Sync during this call, so we can resolve faster.
+ Actions::mark_sync_read_only();
+
+ $args = $request->get_params();
+
+ if ( empty( $args['columns'] ) ) {
+ $args['columns'] = null; // go with defaults.
+ }
+
+ if ( false !== $args['strip_non_ascii'] ) {
+ $args['strip_non_ascii'] = true;
+ }
+
+ if ( true !== $args['perform_text_conversion'] ) {
+ $args['perform_text_conversion'] = false;
+ }
+
+ /**
+ * Hack: nullify the values of `start_id` and `end_id` if we're only requesting ranges.
+ *
+ * The endpoint doesn't support nullable values :(
+ */
+ if ( true === $args['only_range_edges'] ) {
+ if ( 0 === $args['start_id'] ) {
+ $args['start_id'] = null;
+ }
+
+ if ( 0 === $args['end_id'] ) {
+ $args['end_id'] = null;
+ }
+ }
+
+ $store = new Replicastore();
+ $histogram = $store->checksum_histogram( $args['object_type'], $args['buckets'], $args['start_id'], $args['end_id'], $args['columns'], $args['strip_non_ascii'], $args['shared_salt'], $args['only_range_edges'], $args['detailed_drilldown'], $args['perform_text_conversion'] );
+
+ return rest_ensure_response(
+ array(
+ 'histogram' => $histogram,
+ 'type' => $store->get_checksum_type(),
+ )
+ );
+ }
+
+ /**
+ * Update Sync health.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function sync_health( $request ) {
+
+ switch ( $request->get_param( 'status' ) ) {
+ case Health::STATUS_IN_SYNC:
+ case Health::STATUS_OUT_OF_SYNC:
+ Health::update_status( $request->get_param( 'status' ) );
+ break;
+ default:
+ return new WP_Error( 'invalid_status', 'Invalid Sync Status Provided.' );
+ }
+
+ // re-fetch so we see what's really being stored.
+ return rest_ensure_response(
+ array(
+ 'success' => Health::get_status(),
+ )
+ );
+ }
+
+ /**
+ * Obtain Sync settings.
+ *
+ * @since 1.23.1
+ *
+ * @return \WP_REST_Response
+ */
+ public static function get_sync_settings() {
+ return rest_ensure_response( Settings::get_settings() );
+ }
+
+ /**
+ * Update Sync settings.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function update_sync_settings( $request ) {
+ $args = $request->get_params();
+ $sync_settings = Settings::get_settings();
+
+ foreach ( $args as $key => $value ) {
+ if ( false !== $value ) {
+ if ( is_numeric( $value ) ) {
+ $value = (int) $value;
+ }
+
+ // special case for sending empty arrays - a string with value 'empty'.
+ if ( 'empty' === $value ) {
+ $value = array();
+ }
+
+ $sync_settings[ $key ] = $value;
+ }
+ }
+
+ Settings::update_settings( $sync_settings );
+
+ // re-fetch so we see what's really being stored.
+ return rest_ensure_response( Settings::get_settings() );
+ }
+
+ /**
+ * Retrieve Sync Objects.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function get_sync_objects( $request ) {
+ $args = $request->get_params();
+
+ $module_name = $args['module_name'];
+ // Verify valid Sync Module.
+ $sync_module = Modules::get_module( $module_name );
+ if ( ! $sync_module ) {
+ return new WP_Error( 'invalid_module', 'You specified an invalid sync module' );
+ }
+
+ Actions::mark_sync_read_only();
+
+ $codec = Sender::get_instance()->get_codec();
+ Settings::set_is_syncing( true );
+ $objects = $codec->encode( $sync_module->get_objects_by_id( $args['object_type'], $args['object_ids'] ) );
+ Settings::set_is_syncing( false );
+
+ return rest_ensure_response(
+ array(
+ 'objects' => $objects,
+ 'codec' => $codec->name(),
+ )
+ );
+ }
+
+ /**
+ * Request Sync processing.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function do_sync( $request ) {
+
+ $queue_name = self::validate_queue( $request->get_param( 'queue' ) );
+ if ( is_wp_error( $queue_name ) ) {
+ return $queue_name;
+ }
+
+ $sender = Sender::get_instance();
+ $response = $sender->do_sync_for_queue( new Queue( $queue_name ) );
+
+ return rest_ensure_response(
+ array(
+ 'response' => $response,
+ )
+ );
+ }
+
+ /**
+ * Request sync data from specified queue.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function checkout( $request ) {
+ $args = $request->get_params();
+ $queue_name = self::validate_queue( $args['queue'] );
+
+ if ( is_wp_error( $queue_name ) ) {
+ return $queue_name;
+ }
+
+ $number_of_items = $args['number_of_items'];
+ if ( $number_of_items < 1 || $number_of_items > 100 ) {
+ return new WP_Error( 'invalid_number_of_items', 'Number of items needs to be an integer that is larger than 0 and less then 100', 400 );
+ }
+
+ // REST Sender.
+ $sender = new REST_Sender();
+
+ if ( 'immediate' === $queue_name ) {
+ return rest_ensure_response( $sender->immediate_full_sync_pull( $number_of_items ) );
+ }
+
+ return rest_ensure_response( $sender->queue_pull( $queue_name, $number_of_items, $args ) );
+ }
+
+ /**
+ * Unlock a Sync queue.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function unlock_queue( $request ) {
+
+ $queue_name = $request->get_param( 'queue' );
+
+ if ( ! in_array( $queue_name, array( 'sync', 'full_sync' ), true ) ) {
+ return new WP_Error( 'invalid_queue', 'Queue name should be sync or full_sync', 400 );
+ }
+ $queue = new Queue( $queue_name );
+
+ // False means that there was no lock to delete.
+ $response = $queue->unlock();
+ return rest_ensure_response(
+ array(
+ 'success' => $response,
+ )
+ );
+ }
+
+ /**
+ * Checkin Sync actions.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function close( $request ) {
+
+ $request_body = $request->get_params();
+ $queue_name = self::validate_queue( $request_body['queue'] );
+
+ if ( is_wp_error( $queue_name ) ) {
+ return $queue_name;
+ }
+
+ if ( empty( $request_body['buffer_id'] ) ) {
+ return new WP_Error( 'missing_buffer_id', 'Please provide a buffer id', 400 );
+ }
+
+ if ( ! is_array( $request_body['item_ids'] ) ) {
+ return new WP_Error( 'missing_item_ids', 'Please provide a list of item ids in the item_ids argument', 400 );
+ }
+
+ // Limit to A-Z,a-z,0-9,_,- .
+ $request_body['buffer_id'] = preg_replace( '/[^A-Za-z0-9]/', '', $request_body['buffer_id'] );
+ $request_body['item_ids'] = array_filter( array_map( array( 'Automattic\Jetpack\Sync\REST_Endpoints', 'sanitize_item_ids' ), $request_body['item_ids'] ) );
+
+ $queue = new Queue( $queue_name );
+
+ $items = $queue->peek_by_id( $request_body['item_ids'] );
+
+ // Update Full Sync Status if queue is "full_sync".
+ if ( 'full_sync' === $queue_name ) {
+ $full_sync_module = Modules::get_module( 'full-sync' );
+ $full_sync_module->update_sent_progress_action( $items );
+ }
+
+ $buffer = new Queue_Buffer( $request_body['buffer_id'], $request_body['item_ids'] );
+ $response = $queue->close( $buffer, $request_body['item_ids'] );
+
+ // Perform another checkout?
+ if ( isset( $request_body['continue'] ) && $request_body['continue'] ) {
+ if ( in_array( $queue_name, array( 'full_sync', 'immediate' ), true ) ) {
+ // Send Full Sync Actions.
+ Sender::get_instance()->do_full_sync();
+ } else {
+ // Send Incremental Sync Actions.
+ if ( $queue->has_any_items() ) {
+ Sender::get_instance()->do_sync();
+ }
+ }
+ }
+
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ return rest_ensure_response(
+ array(
+ 'success' => $response,
+ 'status' => Actions::get_sync_status(),
+ )
+ );
+ }
+
+ /**
+ * Retrieve range of Object Ids for a specified Sync module.
+ *
+ * @since 1.23.1
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function get_object_id_range( $request ) {
+
+ $module_name = $request->get_param( 'sync_module' );
+ $batch_size = $request->get_param( 'batch_size' );
+
+ if ( ! self::is_valid_sync_module( $module_name ) ) {
+ return new WP_Error( 'invalid_module', 'This sync module cannot be used to calculate a range.', 400 );
+ }
+ $module = Modules::get_module( $module_name );
+
+ return rest_ensure_response(
+ array(
+ 'ranges' => $module->get_min_max_object_ids_for_batches( $batch_size ),
+ )
+ );
+ }
+
+ /**
+ * Verify that request has default permissions to perform sync actions.
+ *
+ * @since 1.23.1
+ *
+ * @return bool Whether user has capability 'manage_options' or a blog token is used.
+ */
+ public static function verify_default_permissions() {
+ if ( current_user_can( 'manage_options' ) || Rest_Authentication::is_signed_with_blog_token() ) {
+ 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-sync'
+ );
+
+ return new WP_Error( 'invalid_user_permission_sync', $error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Validate Queue name.
+ *
+ * @param string $value Queue Name.
+ *
+ * @return WP_Error
+ */
+ protected static function validate_queue( $value ) {
+ if ( ! isset( $value ) ) {
+ return new WP_Error( 'invalid_queue', 'Queue name is required', 400 );
+ }
+
+ if ( ! in_array( $value, array( 'sync', 'full_sync', 'immediate' ), true ) ) {
+ return new WP_Error( 'invalid_queue', 'Queue name should be sync, full_sync or immediate', 400 );
+ }
+ return $value;
+ }
+
+ /**
+ * Validate name is a valid Sync module.
+ *
+ * @param string $module_name Name of Sync Module.
+ *
+ * @return bool
+ */
+ protected static function is_valid_sync_module( $module_name ) {
+ return in_array(
+ $module_name,
+ array(
+ 'comments',
+ 'posts',
+ 'terms',
+ 'term_relationships',
+ 'users',
+ ),
+ true
+ );
+ }
+
+ /**
+ * Sanitize Item Ids.
+ *
+ * @param string $item Sync item identifier.
+ *
+ * @return string|string[]|null
+ */
+ protected static function sanitize_item_ids( $item ) {
+ // lets not delete any options that don't start with jpsq_sync- .
+ if ( ! is_string( $item ) || substr( $item, 0, 5 ) !== 'jpsq_' ) {
+ return null;
+ }
+ // Limit to A-Z,a-z,0-9,_,-,. .
+ return preg_replace( '/[^A-Za-z0-9-_.]/', '', $item );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php
new file mode 100644
index 00000000..1c5a2a33
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php
@@ -0,0 +1,144 @@
+<?php
+/**
+ * Sync package.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use WP_Error;
+
+/**
+ * This class will handle checkout of Sync queues for REST Endpoints.
+ *
+ * @since 1.23.1
+ */
+class REST_Sender {
+
+ /**
+ * Items pending send.
+ *
+ * @var array
+ */
+ public $items = array();
+
+ /**
+ * Checkout objects from the queue
+ *
+ * @param string $queue_name Name of Queue.
+ * @param int $number_of_items Number of Items.
+ * @param array $args arguments.
+ *
+ * @return array|WP_Error
+ */
+ public function queue_pull( $queue_name, $number_of_items, $args ) {
+ $queue = new Queue( $queue_name );
+
+ if ( 0 === $queue->size() ) {
+ return new WP_Error( 'queue_size', 'The queue is empty and there is nothing to send', 400 );
+ }
+
+ $sender = Sender::get_instance();
+
+ // try to give ourselves as much time as possible.
+ set_time_limit( 0 );
+
+ if ( ! empty( $args['pop'] ) ) {
+ $buffer = new Queue_Buffer( 'pop', $queue->pop( $number_of_items ) );
+ } else {
+ // let's delete the checkin state.
+ if ( $args['force'] ) {
+ $queue->unlock();
+ }
+ $buffer = $this->get_buffer( $queue, $number_of_items );
+ }
+ // Check that the $buffer is not checkout out already.
+ if ( is_wp_error( $buffer ) ) {
+ return new WP_Error( 'buffer_open', "We couldn't get the buffer it is currently checked out", 400 );
+ }
+
+ if ( ! is_object( $buffer ) ) {
+ return new WP_Error( 'buffer_non-object', 'Buffer is not an object', 400 );
+ }
+
+ $encode = isset( $args['encode'] ) ? $args['encode'] : true;
+
+ Settings::set_is_syncing( true );
+ list( $items_to_send, $skipped_items_ids ) = $sender->get_items_to_send( $buffer, $encode );
+ Settings::set_is_syncing( false );
+
+ return array(
+ 'buffer_id' => $buffer->id,
+ 'items' => $items_to_send,
+ 'skipped_items' => $skipped_items_ids,
+ 'codec' => $encode ? $sender->get_codec()->name() : null,
+ 'sent_timestamp' => time(),
+ );
+ }
+
+ /**
+ * Adds Sync items to local property.
+ */
+ public function jetpack_sync_send_data_listener() {
+ foreach ( func_get_args()[0] as $key => $item ) {
+ $this->items[ $key ] = $item;
+ }
+ }
+
+ /**
+ * Check out a buffer of full sync actions.
+ *
+ * @return array Sync Actions to be returned to requestor
+ */
+ public function immediate_full_sync_pull() {
+ // try to give ourselves as much time as possible.
+ set_time_limit( 0 );
+
+ $original_send_data_cb = array( 'Automattic\Jetpack\Sync\Actions', 'send_data' );
+ $temp_send_data_cb = array( $this, 'jetpack_sync_send_data_listener' );
+
+ Sender::get_instance()->set_enqueue_wait_time( 0 );
+ remove_filter( 'jetpack_sync_send_data', $original_send_data_cb );
+ add_filter( 'jetpack_sync_send_data', $temp_send_data_cb, 10, 6 );
+ Sender::get_instance()->do_full_sync();
+ remove_filter( 'jetpack_sync_send_data', $temp_send_data_cb );
+ add_filter( 'jetpack_sync_send_data', $original_send_data_cb, 10, 6 );
+
+ return array(
+ 'items' => $this->items,
+ 'codec' => Sender::get_instance()->get_codec()->name(),
+ 'sent_timestamp' => time(),
+ 'status' => Actions::get_sync_status(),
+ );
+ }
+
+ /**
+ * Checkout items out of the sync queue.
+ *
+ * @param Queue $queue Sync Queue.
+ * @param int $number_of_items Number of items to checkout.
+ *
+ * @return WP_Error
+ */
+ protected function get_buffer( $queue, $number_of_items ) {
+ $start = time();
+ $max_duration = 5; // this will try to get the buffer.
+
+ $buffer = $queue->checkout( $number_of_items );
+ $duration = time() - $start;
+
+ while ( is_wp_error( $buffer ) && $duration < $max_duration ) {
+ sleep( 2 );
+ $duration = time() - $start;
+ $buffer = $queue->checkout( $number_of_items );
+ }
+
+ if ( false === $buffer ) {
+ return new WP_Error( 'queue_size', 'The queue is empty and there is nothing to send', 400 );
+ }
+
+ return $buffer;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php
new file mode 100644
index 00000000..6699dd61
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php
@@ -0,0 +1,916 @@
+<?php
+/**
+ * Sync sender.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Constants;
+use WP_Error;
+
+/**
+ * This class grabs pending actions from the queue and sends them
+ */
+class Sender {
+ /**
+ * Name of the option that stores the time of the next sync.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const NEXT_SYNC_TIME_OPTION_NAME = 'jetpack_next_sync_time';
+
+ /**
+ * Sync timeout after a WPCOM error.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const WPCOM_ERROR_SYNC_DELAY = 60;
+
+ /**
+ * Sync timeout after a queue has been locked.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const QUEUE_LOCKED_SYNC_DELAY = 10;
+
+ /**
+ * Maximum bytes to checkout without exceeding the memory limit.
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $dequeue_max_bytes;
+
+ /**
+ * Maximum bytes in a single encoded item.
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $upload_max_bytes;
+
+ /**
+ * Maximum number of sync items in a single action.
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $upload_max_rows;
+
+ /**
+ * Maximum time for perfirming a checkout of items from the queue (in seconds).
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $max_dequeue_time;
+
+ /**
+ * How many seconds to wait after sending sync items after exceeding the sync wait threshold (in seconds).
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $sync_wait_time;
+
+ /**
+ * How much maximum time to wait for the checkout to finish (in seconds).
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $sync_wait_threshold;
+
+ /**
+ * How much maximum time to wait for the sync items to be queued for sending (in seconds).
+ *
+ * @access private
+ *
+ * @var int
+ */
+ private $enqueue_wait_time;
+
+ /**
+ * Incremental sync queue object.
+ *
+ * @access private
+ *
+ * @var Automattic\Jetpack\Sync\Queue
+ */
+ private $sync_queue;
+
+ /**
+ * Full sync queue object.
+ *
+ * @access private
+ *
+ * @var Automattic\Jetpack\Sync\Queue
+ */
+ private $full_sync_queue;
+
+ /**
+ * Codec object for encoding and decoding sync items.
+ *
+ * @access private
+ *
+ * @var Automattic\Jetpack\Sync\Codec_Interface
+ */
+ private $codec;
+
+ /**
+ * The current user before we change or clear it.
+ *
+ * @access private
+ *
+ * @var \WP_User
+ */
+ private $old_user;
+
+ /**
+ * Container for the singleton instance of this class.
+ *
+ * @access private
+ * @static
+ *
+ * @var Automattic\Jetpack\Sync\Sender
+ */
+ private static $instance;
+
+ /**
+ * Retrieve the singleton instance of this class.
+ *
+ * @access public
+ * @static
+ *
+ * @return Sender
+ */
+ public static function get_instance() {
+ if ( null === self::$instance ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Constructor.
+ * This is necessary because you can't use "new" when you declare instance properties >:(
+ *
+ * @access protected
+ * @static
+ */
+ protected function __construct() {
+ $this->set_defaults();
+ $this->init();
+ }
+
+ /**
+ * Initialize the sender.
+ * Prepares the current user and initializes all sync modules.
+ *
+ * @access private
+ */
+ private function init() {
+ add_action( 'jetpack_sync_before_send_queue_sync', array( $this, 'maybe_set_user_from_token' ), 1 );
+ add_action( 'jetpack_sync_before_send_queue_sync', array( $this, 'maybe_clear_user_from_token' ), 20 );
+ add_filter( 'jetpack_xmlrpc_unauthenticated_methods', array( $this, 'register_jetpack_xmlrpc_methods' ) );
+ foreach ( Modules::get_modules() as $module ) {
+ $module->init_before_send();
+ }
+ }
+
+ /**
+ * Detect if this is a XMLRPC request with a valid signature.
+ * If so, changes the user to the new one.
+ *
+ * @access public
+ */
+ public function maybe_set_user_from_token() {
+ $connection = new Manager();
+ $verified_user = $connection->verify_xml_rpc_signature();
+ if ( Constants::is_true( 'XMLRPC_REQUEST' ) &&
+ ! is_wp_error( $verified_user )
+ && $verified_user
+ ) {
+ $old_user = wp_get_current_user();
+ $this->old_user = isset( $old_user->ID ) ? $old_user->ID : 0;
+ wp_set_current_user( $verified_user['user_id'] );
+ }
+ }
+
+ /**
+ * If we used to have a previous current user, revert back to it.
+ *
+ * @access public
+ */
+ public function maybe_clear_user_from_token() {
+ if ( isset( $this->old_user ) ) {
+ wp_set_current_user( $this->old_user );
+ }
+ }
+
+ /**
+ * Retrieve the next sync time.
+ *
+ * @access public
+ *
+ * @param string $queue_name Name of the queue.
+ * @return float Timestamp of the next sync.
+ */
+ public function get_next_sync_time( $queue_name ) {
+ return (float) get_option( self::NEXT_SYNC_TIME_OPTION_NAME . '_' . $queue_name, 0 );
+ }
+
+ /**
+ * Set the next sync time.
+ *
+ * @access public
+ *
+ * @param int $time Timestamp of the next sync.
+ * @param string $queue_name Name of the queue.
+ * @return boolean True if update was successful, false otherwise.
+ */
+ public function set_next_sync_time( $time, $queue_name ) {
+ return update_option( self::NEXT_SYNC_TIME_OPTION_NAME . '_' . $queue_name, $time, true );
+ }
+
+ /**
+ * Trigger a full sync.
+ *
+ * @access public
+ *
+ * @return boolean|WP_Error True if this sync sending was successful, error object otherwise.
+ */
+ public function do_full_sync() {
+ $sync_module = Modules::get_module( 'full-sync' );
+ if ( ! $sync_module ) {
+ return;
+ }
+ // Full Sync Disabled.
+ if ( ! Settings::get_setting( 'full_sync_sender_enabled' ) ) {
+ return;
+ }
+
+ // Don't sync if request is marked as read only.
+ if ( Constants::is_true( 'JETPACK_SYNC_READ_ONLY' ) ) {
+ return new WP_Error( 'jetpack_sync_read_only' );
+ }
+
+ // Sync not started or Sync finished.
+ $status = $sync_module->get_status();
+ if ( false === $status['started'] || ( ! empty( $status['started'] ) && ! empty( $status['finished'] ) ) ) {
+ return false;
+ }
+
+ $this->continue_full_sync_enqueue();
+ // immediate full sync sends data in continue_full_sync_enqueue.
+ if ( false === strpos( get_class( $sync_module ), 'Full_Sync_Immediately' ) ) {
+ return $this->do_sync_and_set_delays( $this->full_sync_queue );
+ } else {
+ $status = $sync_module->get_status();
+ // Sync not started or Sync finished.
+ if ( false === $status['started'] || ( ! empty( $status['started'] ) && ! empty( $status['finished'] ) ) ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ }
+
+ /**
+ * Enqueue the next sync items for sending.
+ * Will not be done if the current request is a WP import one.
+ * Will be delayed until the next sync time comes.
+ *
+ * @access private
+ */
+ private function continue_full_sync_enqueue() {
+ if ( defined( 'WP_IMPORTING' ) && WP_IMPORTING ) {
+ return false;
+ }
+
+ if ( $this->get_next_sync_time( 'full-sync-enqueue' ) > microtime( true ) ) {
+ return false;
+ }
+
+ Modules::get_module( 'full-sync' )->continue_enqueuing();
+
+ $this->set_next_sync_time( time() + $this->get_enqueue_wait_time(), 'full-sync-enqueue' );
+ }
+
+ /**
+ * Trigger incremental sync.
+ *
+ * @access public
+ *
+ * @return boolean|WP_Error True if this sync sending was successful, error object otherwise.
+ */
+ public function do_sync() {
+ return $this->do_sync_and_set_delays( $this->sync_queue );
+ }
+
+ /**
+ * Trigger sync for a certain sync queue.
+ * Responsible for setting next sync time.
+ * Will not be delayed if the current request is a WP import one.
+ * Will be delayed until the next sync time comes.
+ *
+ * @access public
+ *
+ * @param Automattic\Jetpack\Sync\Queue $queue Queue object.
+ *
+ * @return boolean|WP_Error True if this sync sending was successful, error object otherwise.
+ */
+ public function do_sync_and_set_delays( $queue ) {
+ // Don't sync if importing.
+ if ( defined( 'WP_IMPORTING' ) && WP_IMPORTING ) {
+ return new WP_Error( 'is_importing' );
+ }
+
+ // Don't sync if request is marked as read only.
+ if ( Constants::is_true( 'JETPACK_SYNC_READ_ONLY' ) ) {
+ return new WP_Error( 'jetpack_sync_read_only' );
+ }
+
+ if ( ! Settings::is_sender_enabled( $queue->id ) ) {
+ return new WP_Error( 'sender_disabled_for_queue_' . $queue->id );
+ }
+
+ // Return early if we've gotten a retry-after header response.
+ $retry_time = get_option( Actions::RETRY_AFTER_PREFIX . $queue->id );
+ if ( $retry_time ) {
+ // If expired update to false but don't send. Send will occurr in new request to avoid race conditions.
+ if ( microtime( true ) > $retry_time ) {
+ update_option( Actions::RETRY_AFTER_PREFIX . $queue->id, false, false );
+ }
+ return new WP_Error( 'retry_after' );
+ }
+
+ // Don't sync if we are throttled.
+ if ( $this->get_next_sync_time( $queue->id ) > microtime( true ) ) {
+ return new WP_Error( 'sync_throttled' );
+ }
+
+ $start_time = microtime( true );
+
+ Settings::set_is_syncing( true );
+
+ $sync_result = $this->do_sync_for_queue( $queue );
+
+ Settings::set_is_syncing( false );
+
+ $exceeded_sync_wait_threshold = ( microtime( true ) - $start_time ) > (float) $this->get_sync_wait_threshold();
+
+ if ( is_wp_error( $sync_result ) ) {
+ if ( 'unclosed_buffer' === $sync_result->get_error_code() ) {
+ $this->set_next_sync_time( time() + self::QUEUE_LOCKED_SYNC_DELAY, $queue->id );
+ }
+ if ( 'wpcom_error' === $sync_result->get_error_code() ) {
+ $this->set_next_sync_time( time() + self::WPCOM_ERROR_SYNC_DELAY, $queue->id );
+ }
+ } elseif ( $exceeded_sync_wait_threshold ) {
+ // If we actually sent data and it took a while, wait before sending again.
+ $this->set_next_sync_time( time() + $this->get_sync_wait_time(), $queue->id );
+ }
+
+ return $sync_result;
+ }
+
+ /**
+ * Retrieve the next sync items to send.
+ *
+ * @access public
+ *
+ * @param (array|Automattic\Jetpack\Sync\Queue_Buffer) $buffer_or_items Queue buffer or array of objects.
+ * @param boolean $encode Whether to encode the items.
+ * @return array Sync items to send.
+ */
+ public function get_items_to_send( $buffer_or_items, $encode = true ) {
+ // Track how long we've been processing so we can avoid request timeouts.
+ $start_time = microtime( true );
+ $upload_size = 0;
+ $items_to_send = array();
+ $items = is_array( $buffer_or_items ) ? $buffer_or_items : $buffer_or_items->get_items();
+ if ( ! is_array( $items ) ) {
+ $items = array();
+ }
+
+ // Set up current screen to avoid errors rendering content.
+ require_once ABSPATH . 'wp-admin/includes/class-wp-screen.php';
+ require_once ABSPATH . 'wp-admin/includes/screen.php';
+ set_current_screen( 'sync' );
+ $skipped_items_ids = array();
+ /**
+ * We estimate the total encoded size as we go by encoding each item individually.
+ * This is expensive, but the only way to really know :/
+ */
+ foreach ( $items as $key => $item ) {
+ // Suspending cache addition help prevent overloading in memory cache of large sites.
+ wp_suspend_cache_addition( true );
+ /**
+ * Modify the data within an action before it is serialized and sent to the server
+ * For example, during full sync this expands Post ID's into full Post objects,
+ * so that we don't have to serialize the whole object into the queue.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array The action parameters
+ * @param int The ID of the user who triggered the action
+ */
+ $item[1] = apply_filters( 'jetpack_sync_before_send_' . $item[0], $item[1], $item[2] );
+ wp_suspend_cache_addition( false );
+ // Serialization usage can lead to empty, null or false action_name. Lets skip as there is no information to send.
+ if ( empty( $item[0] ) || false === $item[1] ) {
+ $skipped_items_ids[] = $key;
+ continue;
+ }
+ $encoded_item = $this->codec->encode( $item );
+ $upload_size += strlen( $encoded_item );
+ if ( $upload_size > $this->upload_max_bytes && count( $items_to_send ) > 0 ) {
+ break;
+ }
+ $items_to_send[ $key ] = $encode ? $encoded_item : $item;
+ if ( microtime( true ) - $start_time > $this->max_dequeue_time ) {
+ break;
+ }
+ }
+
+ return array( $items_to_send, $skipped_items_ids, $items, microtime( true ) - $start_time );
+ }
+
+ /**
+ * If supported, flush all response data to the client and finish the request.
+ * This allows for time consuming tasks to be performed without leaving the connection open.
+ *
+ * @access private
+ */
+ private function fastcgi_finish_request() {
+ if ( function_exists( 'fastcgi_finish_request' ) && version_compare( phpversion(), '7.0.16', '>=' ) ) {
+ fastcgi_finish_request();
+ }
+ }
+
+ /**
+ * Perform sync for a certain sync queue.
+ *
+ * @access public
+ *
+ * @param Automattic\Jetpack\Sync\Queue $queue Queue object.
+ *
+ * @return boolean|WP_Error True if this sync sending was successful, error object otherwise.
+ */
+ public function do_sync_for_queue( $queue ) {
+ do_action( 'jetpack_sync_before_send_queue_' . $queue->id );
+ if ( $queue->size() === 0 ) {
+ return new WP_Error( 'empty_queue_' . $queue->id );
+ }
+
+ /**
+ * Now that we're sure we are about to sync, try to ignore user abort
+ * so we can avoid getting into a bad state.
+ */
+ if ( function_exists( 'ignore_user_abort' ) ) {
+ ignore_user_abort( true );
+ }
+
+ /* Don't make the request block till we finish, if possible. */
+ if ( Constants::is_true( 'REST_REQUEST' ) || Constants::is_true( 'XMLRPC_REQUEST' ) ) {
+ $this->fastcgi_finish_request();
+ }
+
+ $checkout_start_time = microtime( true );
+
+ $buffer = $queue->checkout_with_memory_limit( $this->dequeue_max_bytes, $this->upload_max_rows );
+
+ if ( ! $buffer ) {
+ // Buffer has no items.
+ return new WP_Error( 'empty_buffer' );
+ }
+
+ if ( is_wp_error( $buffer ) ) {
+ return $buffer;
+ }
+
+ $checkout_duration = microtime( true ) - $checkout_start_time;
+
+ list( $items_to_send, $skipped_items_ids, $items, $preprocess_duration ) = $this->get_items_to_send( $buffer, true );
+ if ( ! empty( $items_to_send ) ) {
+ /**
+ * Fires when data is ready to send to the server.
+ * Return false or WP_Error to abort the sync (e.g. if there's an error)
+ * The items will be automatically re-sent later
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array $data The action buffer
+ * @param string $codec The codec name used to encode the data
+ * @param double $time The current time
+ * @param string $queue The queue used to send ('sync' or 'full_sync')
+ * @param float $checkout_duration The duration of the checkout operation.
+ * @param float $preprocess_duration The duration of the pre-process operation.
+ * @param int $queue_size The size of the sync queue at the time of processing.
+ */
+ Settings::set_is_sending( true );
+ $processed_item_ids = apply_filters( 'jetpack_sync_send_data', $items_to_send, $this->codec->name(), microtime( true ), $queue->id, $checkout_duration, $preprocess_duration, $queue->size(), $buffer->id );
+ Settings::set_is_sending( false );
+ } else {
+ $processed_item_ids = $skipped_items_ids;
+ $skipped_items_ids = array();
+ }
+
+ if ( 'non-blocking' !== $processed_item_ids ) {
+ if ( ! $processed_item_ids || is_wp_error( $processed_item_ids ) ) {
+ $checked_in_item_ids = $queue->checkin( $buffer );
+ if ( is_wp_error( $checked_in_item_ids ) ) {
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ error_log( 'Error checking in buffer: ' . $checked_in_item_ids->get_error_message() );
+ $queue->force_checkin();
+ }
+ if ( is_wp_error( $processed_item_ids ) ) {
+ return new WP_Error( 'wpcom_error', $processed_item_ids->get_error_code() );
+ }
+
+ // Returning a wpcom_error is a sign to the caller that we should wait a while before syncing again.
+ return new WP_Error( 'wpcom_error', 'jetpack_sync_send_data_false' );
+ } else {
+ // Detect if the last item ID was an error.
+ $had_wp_error = is_wp_error( end( $processed_item_ids ) );
+ if ( $had_wp_error ) {
+ $wp_error = array_pop( $processed_item_ids );
+ }
+ // Also checkin any items that were skipped.
+ if ( count( $skipped_items_ids ) > 0 ) {
+ $processed_item_ids = array_merge( $processed_item_ids, $skipped_items_ids );
+ }
+ $processed_items = array_intersect_key( $items, array_flip( $processed_item_ids ) );
+ /**
+ * Allows us to keep track of all the actions that have been sent.
+ * Allows us to calculate the progress of specific actions.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array $processed_actions The actions that we send successfully.
+ */
+ do_action( 'jetpack_sync_processed_actions', $processed_items );
+ $queue->close( $buffer, $processed_item_ids );
+ // Returning a WP_Error is a sign to the caller that we should wait a while before syncing again.
+ if ( $had_wp_error ) {
+ return new WP_Error( 'wpcom_error', $wp_error->get_error_code() );
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Immediately sends a single item without firing or enqueuing it
+ *
+ * @param string $action_name The action.
+ * @param array $data The data associated with the action.
+ *
+ * @return Items processed. TODO: this doesn't make much sense anymore, it should probably be just a bool.
+ */
+ public function send_action( $action_name, $data = null ) {
+ if ( ! Settings::is_sender_enabled( 'full_sync' ) ) {
+ return array();
+ }
+
+ // Compose the data to be sent.
+ $action_to_send = $this->create_action_to_send( $action_name, $data );
+
+ list( $items_to_send, $skipped_items_ids, $items, $preprocess_duration ) = $this->get_items_to_send( $action_to_send, true ); // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ Settings::set_is_sending( true );
+ $processed_item_ids = apply_filters( 'jetpack_sync_send_data', $items_to_send, $this->get_codec()->name(), microtime( true ), 'immediate-send', 0, $preprocess_duration );
+ Settings::set_is_sending( false );
+
+ /**
+ * Allows us to keep track of all the actions that have been sent.
+ * Allows us to calculate the progress of specific actions.
+ *
+ * @param array $processed_actions The actions that we send successfully.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_sync_processed_actions', $action_to_send );
+
+ return $processed_item_ids;
+ }
+
+ /**
+ * Create an synthetic action for direct sending to WPCOM during full sync (for example)
+ *
+ * @access private
+ *
+ * @param string $action_name The action.
+ * @param array $data The data associated with the action.
+ * @return array An array of synthetic sync actions keyed by current microtime(true)
+ */
+ private function create_action_to_send( $action_name, $data ) {
+ return array(
+ (string) microtime( true ) => array(
+ $action_name,
+ $data,
+ get_current_user_id(),
+ microtime( true ),
+ Settings::is_importing(),
+ ),
+ );
+ }
+
+ /**
+ * Returns any object that is able to be synced.
+ *
+ * @access public
+ *
+ * @param array $args the synchronized object parameters.
+ * @return string Encoded sync object.
+ */
+ public function sync_object( $args ) {
+ // For example: posts, post, 5.
+ list( $module_name, $object_type, $id ) = $args;
+
+ $sync_module = Modules::get_module( $module_name );
+ $codec = $this->get_codec();
+
+ return $codec->encode( $sync_module->get_object_by_id( $object_type, $id ) );
+ }
+
+ /**
+ * Register additional sync XML-RPC methods available to Jetpack for authenticated users.
+ *
+ * @access public
+ * @since 1.6.3
+ * @since-jetpack 7.8.0
+ *
+ * @param array $jetpack_methods XML-RPC methods available to the Jetpack Server.
+ * @return array Filtered XML-RPC methods.
+ */
+ public function register_jetpack_xmlrpc_methods( $jetpack_methods ) {
+ $jetpack_methods['jetpack.syncObject'] = array( $this, 'sync_object' );
+ return $jetpack_methods;
+ }
+
+ /**
+ * Get the incremental sync queue object.
+ *
+ * @access public
+ *
+ * @return Automattic\Jetpack\Sync\Queue Queue object.
+ */
+ public function get_sync_queue() {
+ return $this->sync_queue;
+ }
+
+ /**
+ * Get the full sync queue object.
+ *
+ * @access public
+ *
+ * @return Automattic\Jetpack\Sync\Queue Queue object.
+ */
+ public function get_full_sync_queue() {
+ return $this->full_sync_queue;
+ }
+
+ /**
+ * Get the codec object.
+ *
+ * @access public
+ *
+ * @return Automattic\Jetpack\Sync\Codec_Interface Codec object.
+ */
+ public function get_codec() {
+ return $this->codec;
+ }
+
+ /**
+ * Determine the codec object.
+ * Use gzip deflate if supported.
+ *
+ * @access public
+ */
+ public function set_codec() {
+ if ( function_exists( 'gzinflate' ) ) {
+ $this->codec = new JSON_Deflate_Array_Codec();
+ } else {
+ $this->codec = new Simple_Codec();
+ }
+ }
+
+ /**
+ * Compute and send all the checksums.
+ *
+ * @access public
+ */
+ public function send_checksum() {
+ $store = new Replicastore();
+ do_action( 'jetpack_sync_checksum', $store->checksum_all() );
+ }
+
+ /**
+ * Reset the incremental sync queue.
+ *
+ * @access public
+ */
+ public function reset_sync_queue() {
+ $this->sync_queue->reset();
+ }
+
+ /**
+ * Reset the full sync queue.
+ *
+ * @access public
+ */
+ public function reset_full_sync_queue() {
+ $this->full_sync_queue->reset();
+ }
+
+ /**
+ * Set the maximum bytes to checkout without exceeding the memory limit.
+ *
+ * @access public
+ *
+ * @param int $size Maximum bytes to checkout.
+ */
+ public function set_dequeue_max_bytes( $size ) {
+ $this->dequeue_max_bytes = $size;
+ }
+
+ /**
+ * Set the maximum bytes in a single encoded item.
+ *
+ * @access public
+ *
+ * @param int $max_bytes Maximum bytes in a single encoded item.
+ */
+ public function set_upload_max_bytes( $max_bytes ) {
+ $this->upload_max_bytes = $max_bytes;
+ }
+
+ /**
+ * Set the maximum number of sync items in a single action.
+ *
+ * @access public
+ *
+ * @param int $max_rows Maximum number of sync items.
+ */
+ public function set_upload_max_rows( $max_rows ) {
+ $this->upload_max_rows = $max_rows;
+ }
+
+ /**
+ * Set the sync wait time (in seconds).
+ *
+ * @access public
+ *
+ * @param int $seconds Sync wait time.
+ */
+ public function set_sync_wait_time( $seconds ) {
+ $this->sync_wait_time = $seconds;
+ }
+
+ /**
+ * Get current sync wait time (in seconds).
+ *
+ * @access public
+ *
+ * @return int Sync wait time.
+ */
+ public function get_sync_wait_time() {
+ return $this->sync_wait_time;
+ }
+
+ /**
+ * Set the enqueue wait time (in seconds).
+ *
+ * @access public
+ *
+ * @param int $seconds Enqueue wait time.
+ */
+ public function set_enqueue_wait_time( $seconds ) {
+ $this->enqueue_wait_time = $seconds;
+ }
+
+ /**
+ * Get current enqueue wait time (in seconds).
+ *
+ * @access public
+ *
+ * @return int Enqueue wait time.
+ */
+ public function get_enqueue_wait_time() {
+ return $this->enqueue_wait_time;
+ }
+
+ /**
+ * Set the sync wait threshold (in seconds).
+ *
+ * @access public
+ *
+ * @param int $seconds Sync wait threshold.
+ */
+ public function set_sync_wait_threshold( $seconds ) {
+ $this->sync_wait_threshold = $seconds;
+ }
+
+ /**
+ * Get current sync wait threshold (in seconds).
+ *
+ * @access public
+ *
+ * @return int Sync wait threshold.
+ */
+ public function get_sync_wait_threshold() {
+ return $this->sync_wait_threshold;
+ }
+
+ /**
+ * Set the maximum time for perfirming a checkout of items from the queue (in seconds).
+ *
+ * @access public
+ *
+ * @param int $seconds Maximum dequeue time.
+ */
+ public function set_max_dequeue_time( $seconds ) {
+ $this->max_dequeue_time = $seconds;
+ }
+
+ /**
+ * Initialize the sync queues, codec and set the default settings.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ $this->sync_queue = new Queue( 'sync' );
+ $this->full_sync_queue = new Queue( 'full_sync' );
+ $this->set_codec();
+
+ // Saved settings.
+ Settings::set_importing( null );
+ $settings = Settings::get_settings();
+ $this->set_dequeue_max_bytes( $settings['dequeue_max_bytes'] );
+ $this->set_upload_max_bytes( $settings['upload_max_bytes'] );
+ $this->set_upload_max_rows( $settings['upload_max_rows'] );
+ $this->set_sync_wait_time( $settings['sync_wait_time'] );
+ $this->set_enqueue_wait_time( $settings['enqueue_wait_time'] );
+ $this->set_sync_wait_threshold( $settings['sync_wait_threshold'] );
+ $this->set_max_dequeue_time( Defaults::get_max_sync_execution_time() );
+ }
+
+ /**
+ * Reset sync queues, modules and settings.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ $this->reset_sync_queue();
+ $this->reset_full_sync_queue();
+
+ foreach ( Modules::get_modules() as $module ) {
+ $module->reset_data();
+ }
+
+ foreach ( array( 'sync', 'full_sync', 'full-sync-enqueue' ) as $queue_name ) {
+ delete_option( self::NEXT_SYNC_TIME_OPTION_NAME . '_' . $queue_name );
+ }
+
+ Settings::reset_data();
+ }
+
+ /**
+ * Perform cleanup at the event of plugin uninstallation.
+ *
+ * @access public
+ */
+ public function uninstall() {
+ // Lets delete all the other fun stuff like transient and option and the sync queue.
+ $this->reset_data();
+
+ // Delete the full sync status.
+ delete_option( 'jetpack_full_sync_status' );
+
+ // Clear the sync cron.
+ wp_clear_scheduled_hook( 'jetpack_sync_cron' );
+ wp_clear_scheduled_hook( 'jetpack_sync_full_cron' );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-server.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-server.php
new file mode 100644
index 00000000..7b6d0545
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-server.php
@@ -0,0 +1,195 @@
+<?php
+/**
+ * Sync server.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use WP_Error;
+
+/**
+ * Simple version of a Jetpack Sync Server - just receives arrays of events and
+ * issues them locally with the 'jetpack_sync_remote_action' action.
+ */
+class Server {
+ /**
+ * Codec used to decode sync events.
+ *
+ * @access private
+ *
+ * @var Automattic\Jetpack\Sync\Codec_Interface
+ */
+ private $codec;
+
+ /**
+ * Maximum time for processing sync actions.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const MAX_TIME_PER_REQUEST_IN_SECONDS = 15;
+
+ /**
+ * Prefix of the blog lock transient.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const BLOG_LOCK_TRANSIENT_PREFIX = 'jp_sync_req_lock_';
+
+ /**
+ * Lifetime of the blog lock transient.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const BLOG_LOCK_TRANSIENT_EXPIRY = 60; // Seconds.
+
+ /**
+ * Constructor.
+ *
+ * This is necessary because you can't use "new" when you declare instance properties >:(
+ *
+ * @access public
+ */
+ public function __construct() {
+ $this->codec = new JSON_Deflate_Array_Codec();
+ }
+
+ /**
+ * Set the codec instance.
+ *
+ * @access public
+ *
+ * @param Automattic\Jetpack\Sync\Codec_Interface $codec Codec instance.
+ */
+ public function set_codec( Codec_Interface $codec ) {
+ $this->codec = $codec;
+ }
+
+ /**
+ * Attempt to lock the request when the server receives concurrent requests from the same blog.
+ *
+ * @access public
+ *
+ * @param int $blog_id ID of the blog.
+ * @param int $expiry Blog lock transient lifetime.
+ * @return boolean True if succeeded, false otherwise.
+ */
+ public function attempt_request_lock( $blog_id, $expiry = self::BLOG_LOCK_TRANSIENT_EXPIRY ) {
+ $transient_name = $this->get_concurrent_request_transient_name( $blog_id );
+ $locked_time = get_site_transient( $transient_name );
+ if ( $locked_time ) {
+ return false;
+ }
+ set_site_transient( $transient_name, microtime( true ), $expiry );
+
+ return true;
+ }
+
+ /**
+ * Retrieve the blog lock transient name for a particular blog.
+ *
+ * @access public
+ *
+ * @param int $blog_id ID of the blog.
+ * @return string Name of the blog lock transient.
+ */
+ private function get_concurrent_request_transient_name( $blog_id ) {
+ return self::BLOG_LOCK_TRANSIENT_PREFIX . $blog_id;
+ }
+
+ /**
+ * Remove the request lock from a particular blog ID.
+ *
+ * @access public
+ *
+ * @param int $blog_id ID of the blog.
+ */
+ public function remove_request_lock( $blog_id ) {
+ delete_site_transient( $this->get_concurrent_request_transient_name( $blog_id ) );
+ }
+
+ /**
+ * Receive and process sync events.
+ *
+ * @access public
+ *
+ * @param array $data Sync events.
+ * @param object $token The auth token used to invoke the API.
+ * @param int $sent_timestamp Timestamp (in seconds) when the actions were transmitted.
+ * @param string $queue_id ID of the queue from which the event was sent (`sync` or `full_sync`).
+ * @return array Processed sync events.
+ */
+ public function receive( $data, $token = null, $sent_timestamp = null, $queue_id = null ) {
+ $start_time = microtime( true );
+ if ( ! is_array( $data ) ) {
+ return new WP_Error( 'action_decoder_error', 'Events must be an array' );
+ }
+
+ if ( $token && ! $this->attempt_request_lock( $token->blog_id ) ) {
+ /**
+ * Fires when the server receives two concurrent requests from the same blog
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param token The token object of the misbehaving site
+ */
+ do_action( 'jetpack_sync_multi_request_fail', $token );
+
+ return new WP_Error( 'concurrent_request_error', 'There is another request running for the same blog ID' );
+ }
+
+ $events = wp_unslash( array_map( array( $this->codec, 'decode' ), $data ) );
+ $events_processed = array();
+
+ /**
+ * Fires when an array of actions are received from a remote Jetpack site
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array Array of actions received from the remote site
+ */
+ do_action( 'jetpack_sync_remote_actions', $events, $token );
+
+ foreach ( $events as $key => $event ) {
+ list( $action_name, $args, $user_id, $timestamp, $silent ) = $event;
+
+ /**
+ * Fires when an action is received from a remote Jetpack site
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param string $action_name The name of the action executed on the remote site
+ * @param array $args The arguments passed to the action
+ * @param int $user_id The external_user_id who did the action
+ * @param bool $silent Whether the item was created via import
+ * @param double $timestamp Timestamp (in seconds) when the action occurred
+ * @param double $sent_timestamp Timestamp (in seconds) when the action was transmitted
+ * @param string $queue_id ID of the queue from which the event was sent (sync or full_sync)
+ * @param array $token The auth token used to invoke the API
+ */
+ do_action( 'jetpack_sync_remote_action', $action_name, $args, $user_id, $silent, $timestamp, $sent_timestamp, $queue_id, $token );
+
+ $events_processed[] = $key;
+
+ if ( microtime( true ) - $start_time > self::MAX_TIME_PER_REQUEST_IN_SECONDS ) {
+ break;
+ }
+ }
+
+ if ( $token ) {
+ $this->remove_request_lock( $token->blog_id );
+ }
+
+ return $events_processed;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php
new file mode 100644
index 00000000..a923fbf3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php
@@ -0,0 +1,568 @@
+<?php
+/**
+ * Sync settings.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * Class to manage the sync settings.
+ */
+class Settings {
+ /**
+ * Prefix, used for the sync settings option names.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const SETTINGS_OPTION_PREFIX = 'jetpack_sync_settings_';
+
+ /**
+ * A whitelist of valid settings.
+ *
+ * @access public
+ * @static
+ *
+ * @var array
+ */
+ public static $valid_settings = array(
+ 'dequeue_max_bytes' => true,
+ 'upload_max_bytes' => true,
+ 'upload_max_rows' => true,
+ 'sync_wait_time' => true,
+ 'sync_wait_threshold' => true,
+ 'enqueue_wait_time' => true,
+ 'max_queue_size' => true,
+ 'max_queue_lag' => true,
+ 'queue_max_writes_sec' => true,
+ 'post_types_blacklist' => true,
+ 'taxonomies_blacklist' => true,
+ 'disable' => true,
+ 'network_disable' => true,
+ 'render_filtered_content' => true,
+ 'post_meta_whitelist' => true,
+ 'comment_meta_whitelist' => true,
+ 'max_enqueue_full_sync' => true,
+ 'max_queue_size_full_sync' => true,
+ 'sync_via_cron' => true,
+ 'cron_sync_time_limit' => true,
+ 'known_importers' => true,
+ 'term_relationships_full_sync_item_size' => true,
+ 'sync_sender_enabled' => true,
+ 'full_sync_sender_enabled' => true,
+ 'full_sync_send_duration' => true,
+ 'full_sync_limits' => true,
+ 'checksum_disable' => true,
+ );
+
+ /**
+ * Whether WordPress is currently running an import.
+ *
+ * @access public
+ * @static
+ *
+ * @var null|boolean
+ */
+ public static $is_importing;
+
+ /**
+ * Whether WordPress is currently running a WP cron request.
+ *
+ * @access public
+ * @static
+ *
+ * @var null|boolean
+ */
+ public static $is_doing_cron;
+
+ /**
+ * Whether we're currently syncing.
+ *
+ * @access public
+ * @static
+ *
+ * @var null|boolean
+ */
+ public static $is_syncing;
+
+ /**
+ * Whether we're currently sending sync items.
+ *
+ * @access public
+ * @static
+ *
+ * @var null|boolean
+ */
+ public static $is_sending;
+
+ /**
+ * Retrieve all settings with their current values.
+ *
+ * @access public
+ * @static
+ *
+ * @return array All current settings.
+ */
+ public static function get_settings() {
+ $settings = array();
+ foreach ( array_keys( self::$valid_settings ) as $setting ) {
+ $settings[ $setting ] = self::get_setting( $setting );
+ }
+
+ return $settings;
+ }
+
+ /**
+ * Fetches the setting. It saves it if the setting doesn't exist, so that it gets
+ * autoloaded on page load rather than re-queried every time.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $setting The setting name.
+ * @return mixed The setting value.
+ */
+ public static function get_setting( $setting ) {
+ if ( ! isset( self::$valid_settings[ $setting ] ) ) {
+ return false;
+ }
+
+ if ( self::is_network_setting( $setting ) ) {
+ if ( is_multisite() ) {
+ $value = get_site_option( self::SETTINGS_OPTION_PREFIX . $setting );
+ } else {
+ // On single sites just return the default setting.
+ return Defaults::get_default_setting( $setting );
+ }
+ } else {
+ $value = get_option( self::SETTINGS_OPTION_PREFIX . $setting );
+ }
+
+ if ( false === $value ) { // No default value is set.
+ $value = Defaults::get_default_setting( $setting );
+ if ( self::is_network_setting( $setting ) ) {
+ update_site_option( self::SETTINGS_OPTION_PREFIX . $setting, $value );
+ } else {
+ // We set one so that it gets autoloaded.
+ update_option( self::SETTINGS_OPTION_PREFIX . $setting, $value, true );
+ }
+ }
+
+ if ( is_numeric( $value ) ) {
+ $value = (int) $value;
+ }
+ $default_array_value = null;
+ switch ( $setting ) {
+ case 'post_types_blacklist':
+ $default_array_value = Defaults::$blacklisted_post_types;
+ break;
+ case 'taxonomies_blacklist':
+ $default_array_value = Defaults::$blacklisted_taxonomies;
+ break;
+ case 'post_meta_whitelist':
+ $default_array_value = Defaults::get_post_meta_whitelist();
+ break;
+ case 'comment_meta_whitelist':
+ $default_array_value = Defaults::get_comment_meta_whitelist();
+ break;
+ case 'known_importers':
+ $default_array_value = Defaults::get_known_importers();
+ break;
+ }
+
+ if ( $default_array_value ) {
+ if ( is_array( $value ) ) {
+ $value = array_unique( array_merge( $value, $default_array_value ) );
+ } else {
+ $value = $default_array_value;
+ }
+ }
+
+ return $value;
+ }
+
+ /**
+ * Change multiple settings in the same time.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $new_settings The new settings.
+ */
+ public static function update_settings( $new_settings ) {
+ $validated_settings = array_intersect_key( $new_settings, self::$valid_settings );
+ foreach ( $validated_settings as $setting => $value ) {
+
+ if ( self::is_network_setting( $setting ) ) {
+ if ( is_multisite() && is_main_site() ) {
+ update_site_option( self::SETTINGS_OPTION_PREFIX . $setting, $value );
+ }
+ } else {
+ update_option( self::SETTINGS_OPTION_PREFIX . $setting, $value, true );
+ }
+
+ // If we set the disabled option to true, clear the queues.
+ if ( ( 'disable' === $setting || 'network_disable' === $setting ) && (bool) $value ) {
+ $listener = Listener::get_instance();
+ $listener->get_sync_queue()->reset();
+ $listener->get_full_sync_queue()->reset();
+ }
+ }
+ }
+
+ /**
+ * Whether the specified setting is a network setting.
+ *
+ * @access public
+ * @static
+ *
+ * @param string $setting Setting name.
+ * @return boolean Whether the setting is a network setting.
+ */
+ public static function is_network_setting( $setting ) {
+ return strpos( $setting, 'network_' ) === 0;
+ }
+
+ /**
+ * Returns escaped SQL for blacklisted post types.
+ * Can be injected directly into a WHERE clause.
+ *
+ * @access public
+ * @static
+ *
+ * @return string SQL WHERE clause.
+ */
+ public static function get_blacklisted_post_types_sql() {
+ return 'post_type NOT IN (\'' . join( '\', \'', array_map( 'esc_sql', self::get_setting( 'post_types_blacklist' ) ) ) . '\')';
+ }
+
+ /**
+ * Returns escaped values for disallowed post types.
+ *
+ * @access public
+ * @static
+ *
+ * @return array Post type filter values
+ */
+ public static function get_disallowed_post_types_structured() {
+ return array(
+ 'post_type' => array(
+ 'operator' => 'NOT IN',
+ 'values' => array_map( 'esc_sql', self::get_setting( 'post_types_blacklist' ) ),
+ ),
+ );
+ }
+
+ /**
+ * Returns escaped SQL for blacklisted taxonomies.
+ * Can be injected directly into a WHERE clause.
+ *
+ * @access public
+ * @static
+ *
+ * @return string SQL WHERE clause.
+ */
+ public static function get_blacklisted_taxonomies_sql() {
+ return "taxonomy NOT IN ('" . join( "', '", array_map( 'esc_sql', self::get_setting( 'taxonomies_blacklist' ) ) ) . "')";
+ }
+
+ /**
+ * Returns escaped SQL for blacklisted post meta.
+ * Can be injected directly into a WHERE clause.
+ *
+ * @access public
+ * @static
+ *
+ * @return string SQL WHERE clause.
+ */
+ public static function get_whitelisted_post_meta_sql() {
+ return 'meta_key IN (\'' . join( '\', \'', array_map( 'esc_sql', self::get_setting( 'post_meta_whitelist' ) ) ) . '\')';
+ }
+
+ /**
+ * Returns escaped SQL for allowed post meta keys.
+ *
+ * @access public
+ * @static
+ *
+ * @return array Meta keys filter values
+ */
+ public static function get_allowed_post_meta_structured() {
+ return array(
+ 'meta_key' => array(
+ 'operator' => 'IN',
+ 'values' => array_map( 'esc_sql', self::get_setting( 'post_meta_whitelist' ) ),
+ ),
+ );
+ }
+
+ /**
+ * Returns structured SQL clause for blacklisted taxonomies.
+ *
+ * @access public
+ * @static
+ *
+ * @return array taxonomies filter values
+ */
+ public static function get_blacklisted_taxonomies_structured() {
+ return array(
+ 'taxonomy' => array(
+ 'operator' => 'NOT IN',
+ 'values' => array_map( 'esc_sql', self::get_setting( 'taxonomies_blacklist' ) ),
+ ),
+ );
+ }
+
+ /**
+ * Returns structured SQL clause for allowed taxonomies.
+ *
+ * @access public
+ * @static
+ *
+ * @return array taxonomies filter values
+ */
+ public static function get_allowed_taxonomies_structured() {
+ global $wp_taxonomies;
+
+ $allowed_taxonomies = array_keys( $wp_taxonomies );
+ $allowed_taxonomies = array_diff( $allowed_taxonomies, self::get_setting( 'taxonomies_blacklist' ) );
+ return array(
+ 'taxonomy' => array(
+ 'operator' => 'IN',
+ 'values' => array_map( 'esc_sql', $allowed_taxonomies ),
+ ),
+ );
+ }
+
+ /**
+ * Returns escaped SQL for blacklisted comment meta.
+ * Can be injected directly into a WHERE clause.
+ *
+ * @access public
+ * @static
+ *
+ * @return string SQL WHERE clause.
+ */
+ public static function get_whitelisted_comment_meta_sql() {
+ return 'meta_key IN (\'' . join( '\', \'', array_map( 'esc_sql', self::get_setting( 'comment_meta_whitelist' ) ) ) . '\')';
+ }
+
+ /**
+ * Returns SQL-escaped values for allowed post meta keys.
+ *
+ * @access public
+ * @static
+ *
+ * @return array Meta keys filter values
+ */
+ public static function get_allowed_comment_meta_structured() {
+ return array(
+ 'meta_key' => array(
+ 'operator' => 'IN',
+ 'values' => array_map( 'esc_sql', self::get_setting( 'comment_meta_whitelist' ) ),
+ ),
+ );
+ }
+
+ /**
+ * Returns SQL-escaped values for allowed order_item meta keys.
+ *
+ * @access public
+ * @static
+ *
+ * @return array Meta keys filter values
+ */
+ public static function get_allowed_order_itemmeta_structured() {
+ // Make sure that we only try to add the properties when the class exists.
+ if ( ! class_exists( '\Automattic\Jetpack\Sync\Modules\WooCommerce' ) ) {
+ return array();
+ }
+
+ $values = \Automattic\Jetpack\Sync\Modules\WooCommerce::$order_item_meta_whitelist;
+
+ return array(
+ 'meta_key' => array(
+ 'operator' => 'IN',
+ 'values' => array_map( 'esc_sql', $values ),
+ ),
+ );
+ }
+
+ /**
+ * Returns escaped SQL for comments, excluding any spam comments.
+ * Can be injected directly into a WHERE clause.
+ *
+ * @access public
+ * @static
+ *
+ * @return string SQL WHERE clause.
+ */
+ public static function get_comments_filter_sql() {
+ return "comment_approved <> 'spam'";
+ }
+
+ /**
+ * Delete any settings options and clean up the current settings state.
+ *
+ * @access public
+ * @static
+ */
+ public static function reset_data() {
+ $valid_settings = self::$valid_settings;
+ foreach ( $valid_settings as $option => $value ) {
+ delete_option( self::SETTINGS_OPTION_PREFIX . $option );
+ }
+ self::set_importing( null );
+ self::set_doing_cron( null );
+ self::set_is_syncing( null );
+ self::set_is_sending( null );
+ }
+
+ /**
+ * Set the importing state.
+ *
+ * @access public
+ * @static
+ *
+ * @param boolean $is_importing Whether WordPress is currently importing.
+ */
+ public static function set_importing( $is_importing ) {
+ // Set to NULL to revert to WP_IMPORTING, the standard behavior.
+ self::$is_importing = $is_importing;
+ }
+
+ /**
+ * Whether WordPress is currently importing.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether WordPress is currently importing.
+ */
+ public static function is_importing() {
+ if ( ! is_null( self::$is_importing ) ) {
+ return self::$is_importing;
+ }
+
+ return defined( 'WP_IMPORTING' ) && WP_IMPORTING;
+ }
+
+ /**
+ * Whether sync is enabled.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether sync is enabled.
+ */
+ public static function is_sync_enabled() {
+ return ! ( self::get_setting( 'disable' ) || self::get_setting( 'network_disable' ) );
+ }
+
+ /**
+ * Set the WP cron state.
+ *
+ * @access public
+ * @static
+ *
+ * @param boolean $is_doing_cron Whether WordPress is currently doing WP cron.
+ */
+ public static function set_doing_cron( $is_doing_cron ) {
+ // Set to NULL to revert to WP_IMPORTING, the standard behavior.
+ self::$is_doing_cron = $is_doing_cron;
+ }
+
+ /**
+ * Whether WordPress is currently doing WP cron.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether WordPress is currently doing WP cron.
+ */
+ public static function is_doing_cron() {
+ if ( ! is_null( self::$is_doing_cron ) ) {
+ return self::$is_doing_cron;
+ }
+
+ return defined( 'DOING_CRON' ) && DOING_CRON;
+ }
+
+ /**
+ * Whether we are currently syncing.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether we are currently syncing.
+ */
+ public static function is_syncing() {
+ return (bool) self::$is_syncing || ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST );
+ }
+
+ /**
+ * Set the syncing state.
+ *
+ * @access public
+ * @static
+ *
+ * @param boolean $is_syncing Whether we are currently syncing.
+ */
+ public static function set_is_syncing( $is_syncing ) {
+ self::$is_syncing = $is_syncing;
+ }
+
+ /**
+ * Whether we are currently sending sync items.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether we are currently sending sync items.
+ */
+ public static function is_sending() {
+ return (bool) self::$is_sending;
+ }
+
+ /**
+ * Set the sending state.
+ *
+ * @access public
+ * @static
+ *
+ * @param boolean $is_sending Whether we are currently sending sync items.
+ */
+ public static function set_is_sending( $is_sending ) {
+ self::$is_sending = $is_sending;
+ }
+
+ /**
+ * Whether should send from the queue
+ *
+ * @access public
+ * @static
+ *
+ * @param string $queue_id The queue identifier.
+ *
+ * @return boolean Whether sync is enabled.
+ */
+ public static function is_sender_enabled( $queue_id ) {
+ return (bool) self::get_setting( $queue_id . '_sender_enabled' );
+ }
+
+ /**
+ * Whether checksums are enabled.
+ *
+ * @access public
+ * @static
+ *
+ * @return boolean Whether sync is enabled.
+ */
+ public static function is_checksum_enabled() {
+ return ! (bool) self::get_setting( 'checksum_disable' );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php
new file mode 100644
index 00000000..613323fd
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Simple codec for encoding and decoding sync objects.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * An implementation of Automattic\Jetpack\Sync\Codec_Interface that uses base64
+ * algorithm to compress objects serialized using json_encode.
+ */
+class Simple_Codec extends JSON_Deflate_Array_Codec {
+ /**
+ * Name of the codec.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const CODEC_NAME = 'simple';
+
+ /**
+ * Retrieve the name of the codec.
+ *
+ * @access public
+ *
+ * @return string Name of the codec.
+ */
+ public function name() {
+ return self::CODEC_NAME;
+ }
+
+ /**
+ * Encode a sync object.
+ *
+ * @access public
+ *
+ * @param mixed $object Sync object to encode.
+ * @return string Encoded sync object.
+ */
+ public function encode( $object ) {
+ // This is intentionally using base64_encode().
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ return base64_encode( $this->json_serialize( $object ) );
+ }
+
+ /**
+ * Encode a sync object.
+ *
+ * @access public
+ *
+ * @param string $input Encoded sync object to decode.
+ * @return mixed Decoded sync object.
+ */
+ public function decode( $input ) {
+ // This is intentionally using base64_decode().
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ return $this->json_unserialize( base64_decode( $input ) );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-users.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-users.php
new file mode 100644
index 00000000..8a8c83f8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-users.php
@@ -0,0 +1,152 @@
+<?php
+/**
+ * Sync for users.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+use Automattic\Jetpack\Connection\Manager as Jetpack_Connection;
+use Automattic\Jetpack\Connection\XMLRPC_Async_Call;
+use Automattic\Jetpack\Roles;
+
+/**
+ * Class Users.
+ *
+ * Responsible for syncing user data changes.
+ */
+class Users {
+ /**
+ * Roles of all users, indexed by user ID.
+ *
+ * @access public
+ * @static
+ *
+ * @var array
+ */
+ public static $user_roles = array();
+
+ /**
+ * Initialize sync for user data changes.
+ *
+ * @access public
+ * @static
+ * @todo Eventually, connection needs to be instantiated at the top level in the sync package.
+ */
+ public static function init() {
+ add_action( 'jetpack_user_authorized', array( 'Automattic\\Jetpack\\Sync\\Actions', 'do_initial_sync' ), 10, 0 );
+ $connection = new Jetpack_Connection();
+ if ( $connection->has_connected_user() ) {
+ // Kick off synchronization of user role when it changes.
+ add_action( 'set_user_role', array( __CLASS__, 'user_role_change' ) );
+ }
+ }
+
+ /**
+ * Synchronize connected user role changes.
+ *
+ * @access public
+ * @static
+ *
+ * @param int $user_id ID of the user.
+ */
+ public static function user_role_change( $user_id ) {
+ $connection = new Jetpack_Connection();
+ if ( $connection->is_user_connected( $user_id ) ) {
+ self::update_role_on_com( $user_id );
+ // Try to choose a new master if we're demoting the current one.
+ self::maybe_demote_master_user( $user_id );
+ }
+ }
+
+ /**
+ * Retrieve the role of a user by their ID.
+ *
+ * @access public
+ * @static
+ *
+ * @param int $user_id ID of the user.
+ * @return string Role of the user.
+ */
+ public static function get_role( $user_id ) {
+ if ( isset( self::$user_roles[ $user_id ] ) ) {
+ return self::$user_roles[ $user_id ];
+ }
+
+ $current_user_id = get_current_user_id();
+ wp_set_current_user( $user_id );
+ $roles = new Roles();
+ $role = $roles->translate_current_user_to_role();
+ wp_set_current_user( $current_user_id );
+ self::$user_roles[ $user_id ] = $role;
+
+ return $role;
+ }
+
+ /**
+ * Retrieve the signed role of a user by their ID.
+ *
+ * @access public
+ * @static
+ *
+ * @param int $user_id ID of the user.
+ * @return string Signed role of the user.
+ */
+ public static function get_signed_role( $user_id ) {
+ $connection = new Jetpack_Connection();
+ return $connection->sign_role( self::get_role( $user_id ), $user_id );
+ }
+
+ /**
+ * Retrieve the signed role and update it in WP.com for that user.
+ *
+ * @access public
+ * @static
+ *
+ * @param int $user_id ID of the user.
+ */
+ public static function update_role_on_com( $user_id ) {
+ $signed_role = self::get_signed_role( $user_id );
+ XMLRPC_Async_Call::add_call( 'jetpack.updateRole', get_current_user_id(), $user_id, $signed_role );
+ }
+
+ /**
+ * Choose a new master user if we're demoting the current one.
+ *
+ * @access public
+ * @static
+ * @todo Disconnect if there is no user with enough capabilities to be the master user.
+ * @uses \WP_User_Query
+ *
+ * @param int $user_id ID of the user.
+ */
+ public static function maybe_demote_master_user( $user_id ) {
+ $master_user_id = (int) \Jetpack_Options::get_option( 'master_user' );
+ $role = self::get_role( $user_id );
+ if ( $user_id === $master_user_id && 'administrator' !== $role ) {
+ $query = new \WP_User_Query(
+ array(
+ 'fields' => array( 'id' ),
+ 'role' => 'administrator',
+ 'orderby' => 'id',
+ 'exclude' => array( $master_user_id ),
+ )
+ );
+ $new_master = false;
+ $connection = new Jetpack_Connection();
+ foreach ( $query->results as $result ) {
+ $found_user_id = absint( $result->id );
+ if ( $found_user_id && $connection->is_user_connected( $found_user_id ) ) {
+ $new_master = $found_user_id;
+ break;
+ }
+ }
+
+ if ( $new_master ) {
+ \Jetpack_Options::update_option( 'master_user', $new_master );
+ }
+ // TODO: else disconnect..?
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php
new file mode 100644
index 00000000..23f24e95
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Sync utils.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * Class for sync utilities.
+ */
+class Utils {
+ /**
+ * Retrieve the values of sync items.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $items Array of sync items.
+ * @return array Array of sync item values.
+ */
+ public static function get_item_values( $items ) {
+ return array_map( array( __CLASS__, 'get_item_value' ), $items );
+ }
+
+ /**
+ * Retrieve the IDs of sync items.
+ *
+ * @access public
+ * @static
+ *
+ * @param array $items Array of sync items.
+ * @return array Array of sync item IDs.
+ */
+ public static function get_item_ids( $items ) {
+ return array_map( array( __CLASS__, 'get_item_id' ), $items );
+ }
+
+ /**
+ * Get the value of a sync item.
+ *
+ * @access private
+ * @static
+ *
+ * @param array $item Sync item.
+ * @return mixed Sync item value.
+ */
+ private static function get_item_value( $item ) {
+ return $item->value;
+ }
+
+ /**
+ * Get the ID of a sync item.
+ *
+ * @access private
+ * @static
+ *
+ * @param array $item Sync item.
+ * @return int Sync item ID.
+ */
+ private static function get_item_id( $item ) {
+ return $item->id;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php
new file mode 100644
index 00000000..7653f26d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Interface for encoding and decoding sync objects.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * Very simple interface for encoding and decoding input.
+ * This is used to provide compression and serialization to messages.
+ **/
+interface Codec_Interface {
+ /**
+ * Retrieve the name of the codec.
+ * We send this with the payload so we can select the appropriate decoder at the other end.
+ *
+ * @access public
+ *
+ * @return string Name of the codec.
+ */
+ public function name();
+
+ /**
+ * Encode a sync object.
+ *
+ * @access public
+ *
+ * @param mixed $object Sync object to encode.
+ * @return string Encoded sync object.
+ */
+ public function encode( $object );
+
+ /**
+ * Encode a sync object.
+ *
+ * @access public
+ *
+ * @param string $input Encoded sync object to decode.
+ * @return mixed Decoded sync object.
+ */
+ public function decode( $input );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php
new file mode 100644
index 00000000..5c57f49e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php
@@ -0,0 +1,566 @@
+<?php
+/**
+ * Sync architecture prototype.
+ *
+ * To run tests: phpunit --testsuite sync --filter New_Sync
+ *
+ * @author Dan Walmsley
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync;
+
+/**
+ * A high-level interface for objects that store synced WordPress data.
+ * Useful for ensuring that different storage mechanisms implement the
+ * required semantics for storing all the data that we sync.
+ */
+interface Replicastore_Interface {
+ /**
+ * Empty and reset the replicastore.
+ *
+ * @access public
+ */
+ public function reset();
+
+ /**
+ * Ran when full sync has just started.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ */
+ public function full_sync_start( $config );
+
+ /**
+ * Ran when full sync has just finished.
+ *
+ * @access public
+ *
+ * @param string $checksum Deprecated since 7.3.0.
+ */
+ public function full_sync_end( $checksum );
+
+ /**
+ * Retrieve the number of posts with a particular post status within a certain range.
+ *
+ * @access public
+ *
+ * @todo Prepare the SQL query before executing it.
+ *
+ * @param string $status Post status.
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ */
+ public function post_count( $status = null, $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve the posts with a particular post status.
+ *
+ * @access public
+ *
+ * @param string $status Post status.
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ */
+ public function get_posts( $status = null, $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve a post object by the post ID.
+ *
+ * @access public
+ *
+ * @param int $id Post ID.
+ */
+ public function get_post( $id );
+
+ /**
+ * Update or insert a post.
+ *
+ * @access public
+ *
+ * @param \WP_Post $post Post object.
+ * @param bool $silent Whether to perform a silent action.
+ */
+ public function upsert_post( $post, $silent = false );
+
+ /**
+ * Delete a post by the post ID.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ */
+ public function delete_post( $post_id );
+
+ /**
+ * Retrieve the checksum for posts within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum post ID.
+ * @param int $max_id Maximum post ID.
+ */
+ public function posts_checksum( $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve the checksum for post meta within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum post meta ID.
+ * @param int $max_id Maximum post meta ID.
+ */
+ public function post_meta_checksum( $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve the number of comments with a particular comment status within a certain range.
+ *
+ * @access public
+ *
+ * @param string $status Comment status.
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ */
+ public function comment_count( $status = null, $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve the comments with a particular comment status.
+ *
+ * @access public
+ *
+ * @param string $status Comment status.
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ */
+ public function get_comments( $status = null, $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve a comment object by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $id Comment ID.
+ */
+ public function get_comment( $id );
+
+ /**
+ * Update or insert a comment.
+ *
+ * @access public
+ *
+ * @param \WP_Comment $comment Comment object.
+ */
+ public function upsert_comment( $comment );
+
+ /**
+ * Trash a comment by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function trash_comment( $comment_id );
+
+ /**
+ * Mark a comment by the comment ID as spam.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function spam_comment( $comment_id );
+
+ /**
+ * Delete a comment by the comment ID.
+ *
+ * @access public
+ *
+ * @param int $comment_id Comment ID.
+ */
+ public function delete_comment( $comment_id );
+
+ /**
+ * Trash the comments of a post.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ * @param array $statuses Post statuses.
+ */
+ public function trashed_post_comments( $post_id, $statuses );
+
+ /**
+ * Untrash the comments of a post.
+ *
+ * @access public
+ *
+ * @param int $post_id Post ID.
+ */
+ public function untrashed_post_comments( $post_id );
+
+ /**
+ * Retrieve the checksum for comments within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum comment ID.
+ * @param int $max_id Maximum comment ID.
+ */
+ public function comments_checksum( $min_id = null, $max_id = null );
+
+ /**
+ * Retrieve the checksum for comment meta within a range.
+ *
+ * @access public
+ *
+ * @param int $min_id Minimum comment meta ID.
+ * @param int $max_id Maximum comment meta ID.
+ */
+ public function comment_meta_checksum( $min_id = null, $max_id = null );
+
+ /**
+ * Update the value of an option.
+ *
+ * @access public
+ *
+ * @param string $option Option name.
+ * @param mixed $value Option value.
+ */
+ public function update_option( $option, $value );
+
+ /**
+ * Retrieve an option value based on an option name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to retrieve.
+ * @param mixed $default Optional. Default value to return if the option does not exist.
+ */
+ public function get_option( $option, $default = false );
+
+ /**
+ * Remove an option by name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to remove.
+ */
+ public function delete_option( $option );
+
+ /**
+ * Change the info of the current theme.
+ *
+ * @access public
+ *
+ * @param array $theme_info Theme info array.
+ */
+ public function set_theme_info( $theme_info );
+
+ /**
+ * Whether the current theme supports a certain feature.
+ *
+ * @access public
+ *
+ * @param string $feature Name of the feature.
+ */
+ public function current_theme_supports( $feature );
+
+ /**
+ * Retrieve metadata for the specified object.
+ *
+ * @access public
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param string $meta_key Meta key.
+ * @param bool $single If true, return only the first value of the specified meta_key.
+ */
+ public function get_metadata( $type, $object_id, $meta_key = '', $single = false );
+
+ /**
+ * Stores remote meta key/values alongside an ID mapping key.
+ *
+ * @access public
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param string $meta_key Meta key.
+ * @param mixed $meta_value Meta value.
+ * @param int $meta_id ID of the meta.
+ */
+ public function upsert_metadata( $type, $object_id, $meta_key, $meta_value, $meta_id );
+
+ /**
+ * Delete metadata for the specified object.
+ *
+ * @access public
+ *
+ * @param string $type Meta type.
+ * @param int $object_id ID of the object.
+ * @param array $meta_ids IDs of the meta objects to delete.
+ */
+ public function delete_metadata( $type, $object_id, $meta_ids );
+
+ /**
+ * Delete metadata with a certain key for the specified objects.
+ *
+ * @access public
+ *
+ * @param string $type Meta type.
+ * @param array $object_ids IDs of the objects.
+ * @param string $meta_key Meta key.
+ */
+ public function delete_batch_metadata( $type, $object_ids, $meta_key );
+
+ /**
+ * Retrieve value of a constant based on the constant name.
+ *
+ * @access public
+ *
+ * @param string $constant Name of constant to retrieve.
+ */
+ public function get_constant( $constant );
+
+ /**
+ * Set the value of a constant.
+ *
+ * @access public
+ *
+ * @param string $constant Name of constant to retrieve.
+ * @param mixed $value Value set for the constant.
+ */
+ public function set_constant( $constant, $value );
+
+ /**
+ * Retrieve the number of the available updates of a certain type.
+ * Type is one of: `plugins`, `themes`, `wordpress`, `translations`, `total`, `wp_update_version`.
+ *
+ * @access public
+ *
+ * @param string $type Type of updates to retrieve.
+ */
+ public function get_updates( $type );
+
+ /**
+ * Set the available updates of a certain type.
+ * Type is one of: `plugins`, `themes`, `wordpress`, `translations`, `total`, `wp_update_version`.
+ *
+ * @access public
+ *
+ * @param string $type Type of updates to set.
+ * @param int $updates Total number of updates.
+ */
+ public function set_updates( $type, $updates );
+
+ /**
+ * Retrieve a callable value based on its name.
+ *
+ * @access public
+ *
+ * @param string $callable Name of the callable to retrieve.
+ */
+ public function get_callable( $callable );
+
+ /**
+ * Update the value of a callable.
+ *
+ * @access public
+ *
+ * @param string $callable Callable name.
+ * @param mixed $value Callable value.
+ */
+ public function set_callable( $callable, $value );
+
+ /**
+ * Retrieve a network option value based on a network option name.
+ *
+ * @access public
+ *
+ * @param string $option Name of network option to retrieve.
+ */
+ public function get_site_option( $option );
+
+ /**
+ * Update the value of a network option.
+ *
+ * @access public
+ *
+ * @param string $option Network option name.
+ * @param mixed $value Network option value.
+ */
+ public function update_site_option( $option, $value );
+
+ /**
+ * Remove a network option by name.
+ *
+ * @access public
+ *
+ * @param string $option Name of option to remove.
+ */
+ public function delete_site_option( $option );
+
+ /**
+ * Retrieve the terms from a particular taxonomy.
+ *
+ * @access public
+ *
+ * @param string $taxonomy Taxonomy slug.
+ */
+ public function get_terms( $taxonomy );
+
+ /**
+ * Retrieve a particular term.
+ *
+ * @access public
+ *
+ * @param string $taxonomy Taxonomy slug.
+ * @param int $term_id ID of the term.
+ * @param string $term_key ID Field `term_id` or `term_taxonomy_id`.
+ */
+ public function get_term( $taxonomy, $term_id, $term_key = 'term_id' );
+
+ /**
+ * Insert or update a term.
+ *
+ * @access public
+ *
+ * @param \WP_Term $term_object Term object.
+ */
+ public function update_term( $term_object );
+
+ /**
+ * Delete a term by the term ID and its corresponding taxonomy.
+ *
+ * @access public
+ *
+ * @param int $term_id Term ID.
+ * @param string $taxonomy Taxonomy slug.
+ */
+ public function delete_term( $term_id, $taxonomy );
+
+ /**
+ * Retrieve all terms from a taxonomy that are related to an object with a particular ID.
+ *
+ * @access public
+ *
+ * @param int $object_id Object ID.
+ * @param string $taxonomy Taxonomy slug.
+ */
+ public function get_the_terms( $object_id, $taxonomy );
+
+ /**
+ * Add/update terms of a particular taxonomy of an object with the specified ID.
+ *
+ * @access public
+ *
+ * @param int $object_id The object to relate to.
+ * @param string $taxonomy The context in which to relate the term to the object.
+ * @param string|int|array $terms A single term slug, single term id, or array of either term slugs or ids.
+ * @param bool $append Optional. If false will delete difference of terms. Default false.
+ */
+ public function update_object_terms( $object_id, $taxonomy, $terms, $append );
+
+ /**
+ * Remove certain term relationships from the specified object.
+ *
+ * @access public
+ *
+ * @todo Refactor to not use interpolated values when preparing the SQL query.
+ *
+ * @param int $object_id ID of the object.
+ * @param array $tt_ids Term taxonomy IDs.
+ */
+ public function delete_object_terms( $object_id, $tt_ids );
+
+ /**
+ * Retrieve the number of users.
+ *
+ * @access public
+ */
+ public function user_count();
+
+ /**
+ * Retrieve a user object by the user ID.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function get_user( $user_id );
+
+ /**
+ * Insert or update a user.
+ *
+ * @access public
+ *
+ * @param \WP_User $user User object.
+ */
+ public function upsert_user( $user );
+
+ /**
+ * Delete a user.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function delete_user( $user_id );
+
+ /**
+ * Update/insert user locale.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ * @param string $locale The user locale.
+ */
+ public function upsert_user_locale( $user_id, $locale );
+
+ /**
+ * Delete user locale.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function delete_user_locale( $user_id );
+
+ /**
+ * Retrieve the user locale.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function get_user_locale( $user_id );
+
+ /**
+ * Retrieve the allowed mime types for the user.
+ *
+ * @access public
+ *
+ * @param int $user_id User ID.
+ */
+ public function get_allowed_mime_types( $user_id );
+
+ /**
+ * Retrieve all the checksums we are interested in.
+ * Currently that is posts, comments, post meta and comment meta.
+ *
+ * @access public
+ */
+ public function checksum_all();
+
+ /**
+ * Retrieve the checksum histogram for a specific object type.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param int $buckets Number of buckets to split the objects to.
+ * @param int $start_id Minimum object ID.
+ * @param int $end_id Maximum object ID.
+ */
+ public function checksum_histogram( $object_type, $buckets, $start_id = null, $end_id = null );
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php
new file mode 100644
index 00000000..a111d105
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php
@@ -0,0 +1,98 @@
+<?php
+/**
+ * Attachments sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class to handle sync for attachments.
+ */
+class Attachments extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'attachments';
+ }
+
+ /**
+ * Initialize attachment action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'add_attachment', array( $this, 'process_add' ) );
+ add_action( 'attachment_updated', array( $this, 'process_update' ), 10, 3 );
+ add_action( 'jetpack_sync_save_update_attachment', $callable, 10, 2 );
+ add_action( 'jetpack_sync_save_add_attachment', $callable, 10, 2 );
+ add_action( 'jetpack_sync_save_attach_attachment', $callable, 10, 2 );
+ }
+
+ /**
+ * Handle the creation of a new attachment.
+ *
+ * @access public
+ *
+ * @param int $attachment_id ID of the attachment.
+ */
+ public function process_add( $attachment_id ) {
+ $attachment = get_post( $attachment_id );
+ /**
+ * Fires when the client needs to sync an new attachment
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param int Attachment ID.
+ * @param \WP_Post Attachment post object.
+ */
+ do_action( 'jetpack_sync_save_add_attachment', $attachment_id, $attachment );
+ }
+
+ /**
+ * Handle updating an existing attachment.
+ *
+ * @access public
+ *
+ * @param int $attachment_id Attachment ID.
+ * @param \WP_Post $attachment_after Attachment post object before the update.
+ * @param \WP_Post $attachment_before Attachment post object after the update.
+ */
+ public function process_update( $attachment_id, $attachment_after, $attachment_before ) {
+ // Check whether attachment was added to a post for the first time.
+ if ( 0 === $attachment_before->post_parent && 0 !== $attachment_after->post_parent ) {
+ /**
+ * Fires when an existing attachment is added to a post for the first time
+ *
+ * @since 1.6.3
+ * @since-jetpack 6.6.0
+ *
+ * @param int $attachment_id Attachment ID.
+ * @param \WP_Post $attachment_after Attachment post object after the update.
+ */
+ do_action( 'jetpack_sync_save_attach_attachment', $attachment_id, $attachment_after );
+ } else {
+ /**
+ * Fires when the client needs to sync an updated attachment
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param int $attachment_id Attachment ID.
+ * @param \WP_Post $attachment_after Attachment post object after the update.
+ *
+ * Previously this action was synced using jetpack_sync_save_add_attachment action.
+ */
+ do_action( 'jetpack_sync_save_update_attachment', $attachment_id, $attachment_after );
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php
new file mode 100644
index 00000000..436554c9
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php
@@ -0,0 +1,635 @@
+<?php
+/**
+ * Callables sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+use Automattic\Jetpack\Sync\Defaults;
+use Automattic\Jetpack\Sync\Functions;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for callables.
+ */
+class Callables extends Module {
+ /**
+ * Name of the callables checksum option.
+ *
+ * @var string
+ */
+ const CALLABLES_CHECKSUM_OPTION_NAME = 'jetpack_callables_sync_checksum';
+
+ /**
+ * Name of the transient for locking callables.
+ *
+ * @var string
+ */
+ const CALLABLES_AWAIT_TRANSIENT_NAME = 'jetpack_sync_callables_await';
+
+ /**
+ * Whitelist for callables we want to sync.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $callable_whitelist;
+
+ /**
+ * For some options, we should always send the change right away!
+ *
+ * @access public
+ *
+ * @var array
+ */
+ const ALWAYS_SEND_UPDATES_TO_THESE_OPTIONS = array(
+ 'jetpack_active_modules',
+ 'home', // option is home, callable is home_url.
+ 'siteurl',
+ 'jetpack_sync_error_idc',
+ 'paused_plugins',
+ 'paused_themes',
+
+ );
+
+ const ALWAYS_SEND_UPDATES_TO_THESE_OPTIONS_NEXT_TICK = array(
+ 'stylesheet',
+ );
+ /**
+ * Setting this value to true will make it so that the callables will not be unlocked
+ * but the lock will be removed after content is send so that callables will be
+ * sent in the next request.
+ *
+ * @var bool
+ */
+ private $force_send_callables_on_next_tick = false;
+
+ /**
+ * For some options, the callable key differs from the option name/key
+ *
+ * @access public
+ *
+ * @var array
+ */
+ const OPTION_NAMES_TO_CALLABLE_NAMES = array(
+ // @TODO: Audit the other option names for differences between the option names and callable names.
+ 'home' => 'home_url',
+ 'siteurl' => 'site_url',
+ );
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'functions';
+ }
+
+ /**
+ * Set module defaults.
+ * Define the callable whitelist based on whether this is a single site or a multisite installation.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ if ( is_multisite() ) {
+ $this->callable_whitelist = array_merge( Defaults::get_callable_whitelist(), Defaults::get_multisite_callable_whitelist() );
+ } else {
+ $this->callable_whitelist = Defaults::get_callable_whitelist();
+ }
+ $this->force_send_callables_on_next_tick = false; // Resets here as well mostly for tests.
+ }
+
+ /**
+ * Initialize callables action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'jetpack_sync_callable', $callable, 10, 2 );
+ add_action( 'current_screen', array( $this, 'set_plugin_action_links' ), 9999 ); // Should happen very late.
+
+ foreach ( self::ALWAYS_SEND_UPDATES_TO_THESE_OPTIONS as $option ) {
+ add_action( "update_option_{$option}", array( $this, 'unlock_sync_callable' ) );
+ add_action( "delete_option_{$option}", array( $this, 'unlock_sync_callable' ) );
+ }
+
+ foreach ( self::ALWAYS_SEND_UPDATES_TO_THESE_OPTIONS_NEXT_TICK as $option ) {
+ add_action( "update_option_{$option}", array( $this, 'unlock_sync_callable_next_tick' ) );
+ add_action( "delete_option_{$option}", array( $this, 'unlock_sync_callable_next_tick' ) );
+ }
+
+ // Provide a hook so that hosts can send changes to certain callables right away.
+ // Especially useful when a host uses constants to change home and siteurl.
+ add_action( 'jetpack_sync_unlock_sync_callable', array( $this, 'unlock_sync_callable' ) );
+
+ // get_plugins and wp_version
+ // gets fired when new code gets installed, updates etc.
+ add_action( 'upgrader_process_complete', array( $this, 'unlock_plugin_action_link_and_callables' ) );
+ add_action( 'update_option_active_plugins', array( $this, 'unlock_plugin_action_link_and_callables' ) );
+ }
+
+ /**
+ * Initialize callables action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_callables', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_action( 'jetpack_sync_before_send_queue_sync', array( $this, 'maybe_sync_callables' ) );
+
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_callables', array( $this, 'expand_callables' ) );
+ }
+
+ /**
+ * Perform module cleanup.
+ * Deletes any transients and options that this module uses.
+ * Usually triggered when uninstalling the plugin.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ delete_option( self::CALLABLES_CHECKSUM_OPTION_NAME );
+ delete_transient( self::CALLABLES_AWAIT_TRANSIENT_NAME );
+
+ $url_callables = array( 'home_url', 'site_url', 'main_network_site_url' );
+ foreach ( $url_callables as $callable ) {
+ delete_option( Functions::HTTPS_CHECK_OPTION_PREFIX . $callable );
+ }
+ }
+
+ /**
+ * Set the callable whitelist.
+ *
+ * @access public
+ *
+ * @param array $callables The new callables whitelist.
+ */
+ public function set_callable_whitelist( $callables ) {
+ $this->callable_whitelist = $callables;
+ }
+
+ /**
+ * Get the callable whitelist.
+ *
+ * @access public
+ *
+ * @return array The callables whitelist.
+ */
+ public function get_callable_whitelist() {
+ return $this->callable_whitelist;
+ }
+
+ /**
+ * Retrieve all callables as per the current callables whitelist.
+ *
+ * @access public
+ *
+ * @return array All callables.
+ */
+ public function get_all_callables() {
+ // get_all_callables should run as the master user always.
+ $current_user_id = get_current_user_id();
+ wp_set_current_user( \Jetpack_Options::get_option( 'master_user' ) );
+ $callables = array_combine(
+ array_keys( $this->get_callable_whitelist() ),
+ array_map( array( $this, 'get_callable' ), array_values( $this->get_callable_whitelist() ) )
+ );
+ wp_set_current_user( $current_user_id );
+ return $callables;
+ }
+
+ /**
+ * Invoke a particular callable.
+ * Used as a wrapper to standartize invocation.
+ *
+ * @access private
+ *
+ * @param callable $callable Callable to invoke.
+ * @return mixed Return value of the callable, null if not callable.
+ */
+ private function get_callable( $callable ) {
+ if ( is_callable( $callable ) ) {
+ return call_user_func( $callable );
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Enqueue the callable actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all callables to the server
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean Whether to expand callables (should always be true)
+ */
+ do_action( 'jetpack_full_sync_callables', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the callable actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $status This Module Full Sync Status.
+ *
+ * @return array This Module Full Sync Status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $status ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_callables', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_callables' );
+ }
+
+ /**
+ * Unlock callables so they would be available for syncing again.
+ *
+ * @access public
+ */
+ public function unlock_sync_callable() {
+ delete_transient( self::CALLABLES_AWAIT_TRANSIENT_NAME );
+ }
+
+ /**
+ * Unlock callables on the next tick.
+ * Sometime the true callable values are only present on the next tick.
+ * When switching themes for example.
+ *
+ * @access public
+ */
+ public function unlock_sync_callable_next_tick() {
+ $this->force_send_callables_on_next_tick = true;
+ }
+
+ /**
+ * Unlock callables and plugin action links.
+ *
+ * @access public
+ */
+ public function unlock_plugin_action_link_and_callables() {
+ delete_transient( self::CALLABLES_AWAIT_TRANSIENT_NAME );
+ delete_transient( 'jetpack_plugin_api_action_links_refresh' );
+ add_filter( 'jetpack_check_and_send_callables', '__return_true' );
+ }
+
+ /**
+ * Parse and store the plugin action links if on the plugins page.
+ *
+ * @uses \DOMDocument
+ * @uses libxml_use_internal_errors
+ * @uses mb_convert_encoding
+ *
+ * @access public
+ */
+ public function set_plugin_action_links() {
+ if (
+ ! class_exists( '\DOMDocument' ) ||
+ ! function_exists( 'libxml_use_internal_errors' ) ||
+ ! function_exists( 'mb_convert_encoding' )
+ ) {
+ return;
+ }
+
+ $current_screeen = get_current_screen();
+
+ $plugins_action_links = array();
+ // Is the transient lock in place?
+ $plugins_lock = get_transient( 'jetpack_plugin_api_action_links_refresh', false );
+ if ( ! empty( $plugins_lock ) && ( isset( $current_screeen->id ) && 'plugins' !== $current_screeen->id ) ) {
+ return;
+ }
+ $plugins = array_keys( Functions::get_plugins() );
+ foreach ( $plugins as $plugin_file ) {
+ /**
+ * Plugins often like to unset things but things break if they are not able to.
+ */
+ $action_links = array(
+ 'deactivate' => '',
+ 'activate' => '',
+ 'details' => '',
+ 'delete' => '',
+ 'edit' => '',
+ );
+ /** This filter is documented in src/wp-admin/includes/class-wp-plugins-list-table.php */
+ $action_links = apply_filters( 'plugin_action_links', $action_links, $plugin_file, null, 'all' );
+ /** This filter is documented in src/wp-admin/includes/class-wp-plugins-list-table.php */
+ $action_links = apply_filters( "plugin_action_links_{$plugin_file}", $action_links, $plugin_file, null, 'all' );
+ // Verify $action_links is still an array to resolve warnings from filters not returning an array.
+ if ( is_array( $action_links ) ) {
+ $action_links = array_filter( $action_links );
+ } else {
+ $action_links = array();
+ }
+ $formatted_action_links = null;
+ if ( ! empty( $action_links ) && count( $action_links ) > 0 ) {
+ $dom_doc = new \DOMDocument();
+ foreach ( $action_links as $action_link ) {
+ // The @ is not enough to suppress errors when dealing with libxml,
+ // we have to tell it directly how we want to handle errors.
+ libxml_use_internal_errors( true );
+ $dom_doc->loadHTML( mb_convert_encoding( $action_link, 'HTML-ENTITIES', 'UTF-8' ) );
+ libxml_use_internal_errors( false );
+
+ $link_elements = $dom_doc->getElementsByTagName( 'a' );
+ if ( 0 === $link_elements->length ) {
+ continue;
+ }
+
+ $link_element = $link_elements->item( 0 );
+ // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ if ( $link_element->hasAttribute( 'href' ) && $link_element->nodeValue ) {
+ $link_url = trim( $link_element->getAttribute( 'href' ) );
+
+ // Add the full admin path to the url if the plugin did not provide it.
+ $link_url_scheme = wp_parse_url( $link_url, PHP_URL_SCHEME );
+ if ( empty( $link_url_scheme ) ) {
+ $link_url = admin_url( $link_url );
+ }
+
+ // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ $formatted_action_links[ $link_element->nodeValue ] = $link_url;
+ }
+ }
+ }
+ if ( $formatted_action_links ) {
+ $plugins_action_links[ $plugin_file ] = $formatted_action_links;
+ }
+ }
+ // Cache things for a long time.
+ set_transient( 'jetpack_plugin_api_action_links_refresh', time(), DAY_IN_SECONDS );
+ update_option( 'jetpack_plugin_api_action_links', $plugins_action_links );
+ }
+
+ /**
+ * Whether a certain callable should be sent.
+ *
+ * @access public
+ *
+ * @param array $callable_checksums Callable checksums.
+ * @param string $name Name of the callable.
+ * @param string $checksum A checksum of the callable.
+ * @return boolean Whether to send the callable.
+ */
+ public function should_send_callable( $callable_checksums, $name, $checksum ) {
+ $idc_override_callables = array(
+ 'main_network_site',
+ 'home_url',
+ 'site_url',
+ );
+ if ( in_array( $name, $idc_override_callables, true ) && \Jetpack_Options::get_option( 'migrate_for_idc' ) ) {
+ return true;
+ }
+
+ return ! $this->still_valid_checksum( $callable_checksums, $name, $checksum );
+ }
+
+ /**
+ * Sync the callables if we're supposed to.
+ *
+ * @access public
+ */
+ public function maybe_sync_callables() {
+ $callables = $this->get_all_callables();
+ if ( ! apply_filters( 'jetpack_check_and_send_callables', false ) ) {
+ if ( ! is_admin() ) {
+ // If we're not an admin and we're not doing cron and this isn't WP_CLI, don't sync anything.
+ if ( ! Settings::is_doing_cron() && ! Jetpack_Constants::get_constant( 'WP_CLI' ) ) {
+ return;
+ }
+ // If we're not an admin and we are doing cron, sync the Callables that are always supposed to sync ( See https://github.com/Automattic/jetpack/issues/12924 ).
+ $callables = $this->get_always_sent_callables();
+ }
+ if ( get_transient( self::CALLABLES_AWAIT_TRANSIENT_NAME ) ) {
+ if ( $this->force_send_callables_on_next_tick ) {
+ $this->unlock_sync_callable();
+ }
+ return;
+ }
+ }
+
+ if ( empty( $callables ) ) {
+ return;
+ }
+ // No need to set the transiant we are trying to remove it anyways.
+ if ( ! $this->force_send_callables_on_next_tick ) {
+ set_transient( self::CALLABLES_AWAIT_TRANSIENT_NAME, microtime( true ), Defaults::$default_sync_callables_wait_time );
+ }
+
+ $callable_checksums = (array) \Jetpack_Options::get_raw_option( self::CALLABLES_CHECKSUM_OPTION_NAME, array() );
+ $has_changed = false;
+ // Only send the callables that have changed.
+ foreach ( $callables as $name => $value ) {
+ $checksum = $this->get_check_sum( $value );
+
+ // Explicitly not using Identical comparison as get_option returns a string.
+ if ( ! is_null( $value ) && $this->should_send_callable( $callable_checksums, $name, $checksum ) ) {
+
+ // Only send callable if the non sorted checksum also does not match.
+ if ( $this->should_send_callable( $callable_checksums, $name, $this->get_check_sum( $value, false ) ) ) {
+
+ /**
+ * Tells the client to sync a callable (aka function) to the server
+ *
+ * @param string The name of the callable
+ * @param mixed The value of the callable
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_sync_callable', $name, $value );
+ }
+
+ $callable_checksums[ $name ] = $checksum;
+ $has_changed = true;
+ } else {
+ $callable_checksums[ $name ] = $checksum;
+ }
+ }
+ if ( $has_changed ) {
+ \Jetpack_Options::update_raw_option( self::CALLABLES_CHECKSUM_OPTION_NAME, $callable_checksums );
+ }
+
+ if ( $this->force_send_callables_on_next_tick ) {
+ $this->unlock_sync_callable();
+ }
+ }
+
+ /**
+ * Get the callables that should always be sent, e.g. on cron.
+ *
+ * @return array Callables that should always be sent
+ */
+ protected function get_always_sent_callables() {
+ $callables = $this->get_all_callables();
+ $cron_callables = array();
+ foreach ( self::ALWAYS_SEND_UPDATES_TO_THESE_OPTIONS as $option_name ) {
+ if ( array_key_exists( $option_name, $callables ) ) {
+ $cron_callables[ $option_name ] = $callables[ $option_name ];
+ continue;
+ }
+
+ // Check for the Callable name/key for the option, if different from option name.
+ if ( array_key_exists( $option_name, self::OPTION_NAMES_TO_CALLABLE_NAMES ) ) {
+ $callable_name = self::OPTION_NAMES_TO_CALLABLE_NAMES[ $option_name ];
+ if ( array_key_exists( $callable_name, $callables ) ) {
+ $cron_callables[ $callable_name ] = $callables[ $callable_name ];
+ }
+ }
+ }
+ return $cron_callables;
+ }
+
+ /**
+ * Expand the callables within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function expand_callables( $args ) {
+ if ( $args[0] ) {
+ $callables = $this->get_all_callables();
+ $callables_checksums = array();
+ foreach ( $callables as $name => $value ) {
+ $callables_checksums[ $name ] = $this->get_check_sum( $value );
+ }
+ \Jetpack_Options::update_raw_option( self::CALLABLES_CHECKSUM_OPTION_NAME, $callables_checksums );
+ return $callables;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return count( $this->get_callable_whitelist() );
+ }
+
+ /**
+ * Retrieve a set of callables by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ if ( empty( $ids ) || empty( $object_type ) || 'callable' !== $object_type ) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ( (array) $ids as $id ) {
+ $object = $this->get_object_by_id( $object_type, $id );
+
+ if ( 'CALLABLE-DOES-NOT-EXIST' !== $object ) {
+ if ( 'all' === $id ) {
+ // If all was requested it contains all options and can simply be returned.
+ return $object;
+ }
+ $objects[ $id ] = $object;
+ }
+ }
+
+ return $objects;
+ }
+
+ /**
+ * Retrieve a callable by its name.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param string $id ID of the sync object.
+ * @return mixed Value of Callable.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'callable' === $object_type ) {
+
+ // Only whitelisted options can be returned.
+ if ( array_key_exists( $id, $this->get_callable_whitelist() ) ) {
+ // requires master user to be in context.
+ $current_user_id = get_current_user_id();
+ wp_set_current_user( \Jetpack_Options::get_option( 'master_user' ) );
+ $callable = $this->get_callable( $this->callable_whitelist[ $id ] );
+ wp_set_current_user( $current_user_id );
+ return $callable;
+ } elseif ( 'all' === $id ) {
+ return $this->get_all_callables();
+ }
+ }
+
+ return 'CALLABLE-DOES-NOT-EXIST';
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php
new file mode 100644
index 00000000..30268305
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php
@@ -0,0 +1,495 @@
+<?php
+/**
+ * Comments sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Modules;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for comments.
+ */
+class Comments extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'comments';
+ }
+
+ /**
+ * The id field in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function id_field() {
+ return 'comment_ID';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return 'comments';
+ }
+
+ /**
+ * Retrieve a comment by its ID.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param int $id ID of the sync object.
+ * @return \WP_Comment|bool Filtered \WP_Comment object, or false if the object is not a comment.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ $comment_id = (int) $id;
+ if ( 'comment' === $object_type ) {
+ $comment = get_comment( $comment_id );
+ if ( $comment ) {
+ return $this->filter_comment( $comment );
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Initialize comments action listeners.
+ * Also responsible for initializing comment meta listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'wp_insert_comment', $callable, 10, 2 );
+ add_action( 'deleted_comment', $callable );
+ add_action( 'trashed_comment', $callable );
+ add_action( 'spammed_comment', $callable );
+ add_action( 'trashed_post_comments', $callable, 10, 2 );
+ add_action( 'untrash_post_comments', $callable );
+ add_action( 'comment_approved_to_unapproved', $callable );
+ add_action( 'comment_unapproved_to_approved', $callable );
+ add_action( 'jetpack_modified_comment_contents', $callable, 10, 2 );
+ add_action( 'untrashed_comment', $callable, 10, 2 );
+ add_action( 'unspammed_comment', $callable, 10, 2 );
+ add_filter( 'wp_update_comment_data', array( $this, 'handle_comment_contents_modification' ), 10, 3 );
+
+ // comment actions.
+ add_filter( 'jetpack_sync_before_enqueue_wp_insert_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_deleted_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_trashed_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_untrashed_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_spammed_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_unspammed_comment', array( $this, 'only_allow_white_listed_comment_types' ) );
+
+ // comment status transitions.
+ add_filter( 'jetpack_sync_before_enqueue_comment_approved_to_unapproved', array( $this, 'only_allow_white_listed_comment_type_transitions' ) );
+ add_filter( 'jetpack_sync_before_enqueue_comment_unapproved_to_approved', array( $this, 'only_allow_white_listed_comment_type_transitions' ) );
+
+ // Post Actions.
+ add_filter( 'jetpack_sync_before_enqueue_trashed_post_comments', array( $this, 'filter_blacklisted_post_types' ) );
+ add_filter( 'jetpack_sync_before_enqueue_untrash_post_comments', array( $this, 'filter_blacklisted_post_types' ) );
+
+ /**
+ * Even though it's messy, we implement these hooks because
+ * the edit_comment hook doesn't include the data
+ * so this saves us a DB read for every comment event.
+ */
+ foreach ( $this->get_whitelisted_comment_types() as $comment_type ) {
+ foreach ( array( 'unapproved', 'approved' ) as $comment_status ) {
+ $comment_action_name = "comment_{$comment_status}_{$comment_type}";
+ add_action( $comment_action_name, $callable, 10, 2 );
+ }
+ }
+
+ // Listen for meta changes.
+ $this->init_listeners_for_meta_type( 'comment', $callable );
+ $this->init_meta_whitelist_handler( 'comment', array( $this, 'filter_meta' ) );
+ }
+
+ /**
+ * Handler for any comment content updates.
+ *
+ * @access public
+ *
+ * @param array $new_comment The new, processed comment data.
+ * @param array $old_comment The old, unslashed comment data.
+ * @param array $new_comment_with_slashes The new, raw comment data.
+ * @return array The new, processed comment data.
+ */
+ public function handle_comment_contents_modification( $new_comment, $old_comment, $new_comment_with_slashes ) {
+ $changes = array();
+ $content_fields = array(
+ 'comment_author',
+ 'comment_author_email',
+ 'comment_author_url',
+ 'comment_content',
+ );
+ foreach ( $content_fields as $field ) {
+ if ( $new_comment_with_slashes[ $field ] !== $old_comment[ $field ] ) {
+ $changes[ $field ] = array( $new_comment[ $field ], $old_comment[ $field ] );
+ }
+ }
+
+ if ( ! empty( $changes ) ) {
+ /**
+ * Signals to the sync listener that this comment's contents were modified and a sync action
+ * reflecting the change(s) to the content should be sent
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param int $new_comment['comment_ID'] ID of comment whose content was modified
+ * @param mixed $changes Array of changed comment fields with before and after values
+ */
+ do_action( 'jetpack_modified_comment_contents', $new_comment['comment_ID'], $changes );
+ }
+ return $new_comment;
+ }
+
+ /**
+ * Initialize comments action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_comments', $callable ); // Also send comments meta.
+ }
+
+ /**
+ * Gets a filtered list of comment types that sync can hook into.
+ *
+ * @access public
+ *
+ * @return array Defaults to [ '', 'trackback', 'pingback' ].
+ */
+ public function get_whitelisted_comment_types() {
+ /**
+ * Comment types present in this list will sync their status changes to WordPress.com.
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.6.0
+ *
+ * @param array A list of comment types.
+ */
+ return apply_filters(
+ 'jetpack_sync_whitelisted_comment_types',
+ array( '', 'comment', 'trackback', 'pingback', 'review' )
+ );
+ }
+
+ /**
+ * Prevents any comment types that are not in the whitelist from being enqueued and sent to WordPress.com.
+ *
+ * @param array $args Arguments passed to wp_insert_comment, deleted_comment, spammed_comment, etc.
+ *
+ * @return bool or array $args Arguments passed to wp_insert_comment, deleted_comment, spammed_comment, etc.
+ */
+ public function only_allow_white_listed_comment_types( $args ) {
+ $comment = false;
+
+ if ( isset( $args[1] ) ) {
+ // comment object is available.
+ $comment = $args[1];
+ } elseif ( is_numeric( $args[0] ) ) {
+ // comment_id is available.
+ $comment = get_comment( $args[0] );
+ }
+
+ if (
+ isset( $comment->comment_type )
+ && ! in_array( $comment->comment_type, $this->get_whitelisted_comment_types(), true )
+ ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter all blacklisted post types.
+ *
+ * @param array $args Hook arguments.
+ * @return array|false Hook arguments, or false if the post type is a blacklisted one.
+ */
+ public function filter_blacklisted_post_types( $args ) {
+ $post_id = $args[0];
+ $posts_module = Modules::get_module( 'posts' );
+
+ if ( false !== $posts_module && ! $posts_module->is_post_type_allowed( $post_id ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Prevents any comment types that are not in the whitelist from being enqueued and sent to WordPress.com.
+ *
+ * @param array $args Arguments passed to wp_{old_status}_to_{new_status}.
+ *
+ * @return bool or array $args Arguments passed to wp_{old_status}_to_{new_status}
+ */
+ public function only_allow_white_listed_comment_type_transitions( $args ) {
+ $comment = $args[0];
+
+ if ( ! in_array( $comment->comment_type, $this->get_whitelisted_comment_types(), true ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Whether a comment type is allowed.
+ * A comment type is allowed if it's present in the comment type whitelist.
+ *
+ * @param int $comment_id ID of the comment.
+ * @return boolean Whether the comment type is allowed.
+ */
+ public function is_comment_type_allowed( $comment_id ) {
+ $comment = get_comment( $comment_id );
+
+ if ( isset( $comment->comment_type ) ) {
+ return in_array( $comment->comment_type, $this->get_whitelisted_comment_types(), true );
+ }
+ return false;
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_wp_insert_comment', array( $this, 'expand_wp_insert_comment' ) );
+
+ foreach ( $this->get_whitelisted_comment_types() as $comment_type ) {
+ foreach ( array( 'unapproved', 'approved' ) as $comment_status ) {
+ $comment_action_name = "comment_{$comment_status}_{$comment_type}";
+ add_filter(
+ 'jetpack_sync_before_send_' . $comment_action_name,
+ array(
+ $this,
+ 'expand_wp_insert_comment',
+ )
+ );
+ }
+ }
+
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_comments', array( $this, 'expand_comment_ids' ) );
+ }
+
+ /**
+ * Enqueue the comments actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ global $wpdb;
+ return $this->enqueue_all_ids_as_action( 'jetpack_full_sync_comments', $wpdb->comments, 'comment_ID', $this->get_where_sql( $config ), $max_items_to_enqueue, $state );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return int Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ global $wpdb;
+
+ $query = "SELECT count(*) FROM $wpdb->comments";
+
+ $where_sql = $this->get_where_sql( $config );
+ if ( $where_sql ) {
+ $query .= ' WHERE ' . $where_sql;
+ }
+
+ // TODO: Call $wpdb->prepare on the following query.
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / self::ARRAY_CHUNK_SIZE );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause, or `null` if no comments are specified in the module config.
+ */
+ public function get_where_sql( $config ) {
+ if ( is_array( $config ) ) {
+ return 'comment_ID IN (' . implode( ',', array_map( 'intval', $config ) ) . ')';
+ }
+
+ return '1=1';
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_comments' );
+ }
+
+ /**
+ * Count all the actions that are going to be sent.
+ *
+ * @access public
+ *
+ * @param array $action_names Names of all the actions that will be sent.
+ * @return int Number of actions.
+ */
+ public function count_full_sync_actions( $action_names ) {
+ return $this->count_actions( $action_names, array( 'jetpack_full_sync_comments' ) );
+ }
+
+ /**
+ * Expand the comment status change before the data is serialized and sent to the server.
+ *
+ * @access public
+ * @todo This is not used currently - let's implement it.
+ *
+ * @param array $args The hook parameters.
+ * @return array The expanded hook parameters.
+ */
+ public function expand_wp_comment_status_change( $args ) {
+ return array( $args[0], $this->filter_comment( $args[1] ) );
+ }
+
+ /**
+ * Expand the comment creation before the data is serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array The expanded hook parameters.
+ */
+ public function expand_wp_insert_comment( $args ) {
+ return array( $args[0], $this->filter_comment( $args[1] ) );
+ }
+
+ /**
+ * Filter a comment object to the fields we need.
+ *
+ * @access public
+ *
+ * @param \WP_Comment $comment The unfiltered comment object.
+ * @return \WP_Comment Filtered comment object.
+ */
+ public function filter_comment( $comment ) {
+ /**
+ * Filters whether to prevent sending comment data to .com
+ *
+ * Passing true to the filter will prevent the comment data from being sent
+ * to the WordPress.com.
+ * Instead we pass data that will still enable us to do a checksum against the
+ * Jetpacks data but will prevent us from displaying the data on in the API as well as
+ * other services.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean false prevent post data from bing synced to WordPress.com
+ * @param mixed $comment WP_COMMENT object
+ */
+ if ( apply_filters( 'jetpack_sync_prevent_sending_comment_data', false, $comment ) ) {
+ $blocked_comment = new \stdClass();
+ $blocked_comment->comment_ID = $comment->comment_ID;
+ $blocked_comment->comment_date = $comment->comment_date;
+ $blocked_comment->comment_date_gmt = $comment->comment_date_gmt;
+ $blocked_comment->comment_approved = 'jetpack_sync_blocked';
+ return $blocked_comment;
+ }
+
+ return $comment;
+ }
+
+ /**
+ * Whether a certain comment meta key is whitelisted for sync.
+ *
+ * @access public
+ *
+ * @param string $meta_key Comment meta key.
+ * @return boolean Whether the meta key is whitelisted.
+ */
+ public function is_whitelisted_comment_meta( $meta_key ) {
+ return in_array( $meta_key, Settings::get_setting( 'comment_meta_whitelist' ), true );
+ }
+
+ /**
+ * Handler for filtering out non-whitelisted comment meta.
+ *
+ * @access public
+ *
+ * @param array $args Hook args.
+ * @return array|boolean False if not whitelisted, the original hook args otherwise.
+ */
+ public function filter_meta( $args ) {
+ if ( $this->is_comment_type_allowed( $args[1] ) && $this->is_whitelisted_comment_meta( $args[2] ) ) {
+ return $args;
+ }
+
+ return false;
+ }
+
+ /**
+ * Expand the comment IDs to comment objects and meta before being serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array The expanded hook parameters.
+ */
+ public function expand_comment_ids( $args ) {
+ list( $comment_ids, $previous_interval_end ) = $args;
+ $comments = get_comments(
+ array(
+ 'include_unapproved' => true,
+ 'comment__in' => $comment_ids,
+ 'orderby' => 'comment_ID',
+ 'order' => 'DESC',
+ )
+ );
+
+ return array(
+ $comments,
+ $this->get_metadata( $comment_ids, 'comment', Settings::get_setting( 'comment_meta_whitelist' ) ),
+ $previous_interval_end,
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php
new file mode 100644
index 00000000..d71a0fe1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php
@@ -0,0 +1,339 @@
+<?php
+/**
+ * Constants sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Defaults;
+
+/**
+ * Class to handle sync for constants.
+ */
+class Constants extends Module {
+ /**
+ * Name of the constants checksum option.
+ *
+ * @var string
+ */
+ const CONSTANTS_CHECKSUM_OPTION_NAME = 'jetpack_constants_sync_checksum';
+
+ /**
+ * Name of the transient for locking constants.
+ *
+ * @var string
+ */
+ const CONSTANTS_AWAIT_TRANSIENT_NAME = 'jetpack_sync_constants_await';
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'constants';
+ }
+
+ /**
+ * Initialize constants action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'jetpack_sync_constant', $callable, 10, 2 );
+ }
+
+ /**
+ * Initialize constants action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_constants', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_action( 'jetpack_sync_before_send_queue_sync', array( $this, 'maybe_sync_constants' ) );
+
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_constants', array( $this, 'expand_constants' ) );
+ }
+
+ /**
+ * Perform module cleanup.
+ * Deletes any transients and options that this module uses.
+ * Usually triggered when uninstalling the plugin.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ delete_option( self::CONSTANTS_CHECKSUM_OPTION_NAME );
+ delete_transient( self::CONSTANTS_AWAIT_TRANSIENT_NAME );
+ }
+
+ /**
+ * Set the constants whitelist.
+ *
+ * @access public
+ * @todo We don't seem to use this one. Should we remove it?
+ *
+ * @param array $constants The new constants whitelist.
+ */
+ public function set_constants_whitelist( $constants ) {
+ $this->constants_whitelist = $constants;
+ }
+
+ /**
+ * Get the constants whitelist.
+ *
+ * @access public
+ *
+ * @return array The constants whitelist.
+ */
+ public function get_constants_whitelist() {
+ return Defaults::get_constants_whitelist();
+ }
+
+ /**
+ * Enqueue the constants actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ *
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all constants to the server
+ *
+ * @param boolean Whether to expand constants (should always be true)
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_full_sync_constants', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the constants actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $state This module Full Sync status.
+ *
+ * @return array This module Full Sync status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_constants', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ *
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_constants' );
+ }
+
+ /**
+ * Sync the constants if we're supposed to.
+ *
+ * @access public
+ */
+ public function maybe_sync_constants() {
+ if ( get_transient( self::CONSTANTS_AWAIT_TRANSIENT_NAME ) ) {
+ return;
+ }
+
+ set_transient( self::CONSTANTS_AWAIT_TRANSIENT_NAME, microtime( true ), Defaults::$default_sync_constants_wait_time );
+
+ $constants = $this->get_all_constants();
+ if ( empty( $constants ) ) {
+ return;
+ }
+
+ $constants_checksums = (array) get_option( self::CONSTANTS_CHECKSUM_OPTION_NAME, array() );
+
+ foreach ( $constants as $name => $value ) {
+ $checksum = $this->get_check_sum( $value );
+ // Explicitly not using Identical comparison as get_option returns a string.
+ if ( ! $this->still_valid_checksum( $constants_checksums, $name, $checksum ) && ! is_null( $value ) ) {
+ /**
+ * Tells the client to sync a constant to the server
+ *
+ * @param string The name of the constant
+ * @param mixed The value of the constant
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_sync_constant', $name, $value );
+ $constants_checksums[ $name ] = $checksum;
+ } else {
+ $constants_checksums[ $name ] = $checksum;
+ }
+ }
+ update_option( self::CONSTANTS_CHECKSUM_OPTION_NAME, $constants_checksums );
+ }
+
+ /**
+ * Retrieve all constants as per the current constants whitelist.
+ * Public so that we don't have to store an option for each constant.
+ *
+ * @access public
+ *
+ * @return array All constants.
+ */
+ public function get_all_constants() {
+ $constants_whitelist = $this->get_constants_whitelist();
+
+ return array_combine(
+ $constants_whitelist,
+ array_map( array( $this, 'get_constant' ), $constants_whitelist )
+ );
+ }
+
+ /**
+ * Retrieve the value of a constant.
+ * Used as a wrapper to standartize access to constants.
+ *
+ * @access private
+ *
+ * @param string $constant Constant name.
+ *
+ * @return mixed Return value of the constant.
+ */
+ private function get_constant( $constant ) {
+ return ( defined( $constant ) ) ?
+ constant( $constant )
+ : null;
+ }
+
+ /**
+ * Expand the constants within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ *
+ * @return array $args The hook parameters.
+ */
+ public function expand_constants( $args ) {
+ if ( $args[0] ) {
+ $constants = $this->get_all_constants();
+ $constants_checksums = array();
+ foreach ( $constants as $name => $value ) {
+ $constants_checksums[ $name ] = $this->get_check_sum( $value );
+ }
+ update_option( self::CONSTANTS_CHECKSUM_OPTION_NAME, $constants_checksums );
+
+ return $constants;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return count( $this->get_constants_whitelist() );
+ }
+
+ /**
+ * Retrieve a set of constants by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ if ( empty( $ids ) || empty( $object_type ) || 'constant' !== $object_type ) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ( (array) $ids as $id ) {
+ $object = $this->get_object_by_id( $object_type, $id );
+
+ if ( 'all' === $id ) {
+ // If all was requested it contains all options and can simply be returned.
+ return $object;
+ }
+ $objects[ $id ] = $object;
+ }
+
+ return $objects;
+ }
+
+ /**
+ * Retrieve a constant by its name.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param string $id ID of the sync object.
+ * @return mixed Value of Constant.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'constant' === $object_type ) {
+
+ // Only whitelisted constants can be returned.
+ if ( in_array( $id, $this->get_constants_whitelist(), true ) ) {
+ return $this->get_constant( $id );
+ } elseif ( 'all' === $id ) {
+ return $this->get_all_constants();
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php
new file mode 100644
index 00000000..4017df16
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php
@@ -0,0 +1,467 @@
+<?php
+/**
+ * Full sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Actions;
+use Automattic\Jetpack\Sync\Defaults;
+use Automattic\Jetpack\Sync\Lock;
+use Automattic\Jetpack\Sync\Modules;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * This class does a full resync of the database by
+ * sending an outbound action for every single object
+ * that we care about.
+ */
+class Full_Sync_Immediately extends Module {
+ /**
+ * Prefix of the full sync status option name.
+ *
+ * @var string
+ */
+ const STATUS_OPTION = 'jetpack_sync_full_status';
+
+ /**
+ * Sync Lock name.
+ *
+ * @var string
+ */
+ const LOCK_NAME = 'full_sync';
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'full-sync';
+ }
+
+ /**
+ * Initialize action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ }
+
+ /**
+ * Start a full sync.
+ *
+ * @access public
+ *
+ * @param array $full_sync_config Full sync configuration.
+ *
+ * @return bool Always returns true at success.
+ */
+ public function start( $full_sync_config = null ) {
+ // There was a full sync in progress.
+ if ( $this->is_started() && ! $this->is_finished() ) {
+ /**
+ * Fires when a full sync is cancelled.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_full_sync_cancelled' );
+ $this->send_action( 'jetpack_full_sync_cancelled' );
+ }
+
+ // Remove all evidence of previous full sync items and status.
+ $this->reset_data();
+
+ if ( ! is_array( $full_sync_config ) ) {
+ $full_sync_config = Defaults::$default_full_sync_config;
+ if ( is_multisite() ) {
+ $full_sync_config['network_options'] = 1;
+ }
+ }
+
+ if ( isset( $full_sync_config['users'] ) && 'initial' === $full_sync_config['users'] ) {
+ $full_sync_config['users'] = Modules::get_module( 'users' )->get_initial_sync_user_config();
+ }
+
+ $this->update_status(
+ array(
+ 'started' => time(),
+ 'config' => $full_sync_config,
+ 'progress' => $this->get_initial_progress( $full_sync_config ),
+ )
+ );
+
+ $range = $this->get_content_range( $full_sync_config );
+ /**
+ * Fires when a full sync begins. This action is serialized
+ * and sent to the server so that it knows a full sync is coming.
+ *
+ * @param array $full_sync_config Sync configuration for all sync modules.
+ * @param array $range Range of the sync items, containing min and max IDs for some item types.
+ * @param array $empty The modules with no items to sync during a full sync.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ * @since-jetpack 7.3.0 Added $range arg.
+ * @since-jetpack 7.4.0 Added $empty arg.
+ */
+ do_action( 'jetpack_full_sync_start', $full_sync_config, $range );
+ $this->send_action( 'jetpack_full_sync_start', array( $full_sync_config, $range ) );
+
+ return true;
+ }
+
+ /**
+ * Whether full sync has started.
+ *
+ * @access public
+ *
+ * @return boolean
+ */
+ public function is_started() {
+ return (bool) $this->get_status()['started'];
+ }
+
+ /**
+ * Retrieve the status of the current full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync status.
+ */
+ public function get_status() {
+ $default = array(
+ 'started' => false,
+ 'finished' => false,
+ 'progress' => array(),
+ 'config' => array(),
+ );
+
+ return wp_parse_args( \Jetpack_Options::get_raw_option( self::STATUS_OPTION ), $default );
+ }
+
+ /**
+ * Returns the progress percentage of a full sync.
+ *
+ * @access public
+ *
+ * @return int|null
+ */
+ public function get_sync_progress_percentage() {
+ if ( ! $this->is_started() || $this->is_finished() ) {
+ return null;
+ }
+ $status = $this->get_status();
+ if ( empty( $status['progress'] ) ) {
+ return null;
+ }
+ $total_items = array_reduce(
+ array_values( $status['progress'] ),
+ function ( $sum, $sync_item ) {
+ return isset( $sync_item['total'] ) ? ( $sum + (int) $sync_item['total'] ) : $sum;
+ },
+ 0
+ );
+ $total_sent = array_reduce(
+ array_values( $status['progress'] ),
+ function ( $sum, $sync_item ) {
+ return isset( $sync_item['sent'] ) ? ( $sum + (int) $sync_item['sent'] ) : $sum;
+ },
+ 0
+ );
+ return floor( ( $total_sent / $total_items ) * 100 );
+ }
+
+ /**
+ * Whether full sync has finished.
+ *
+ * @access public
+ *
+ * @return boolean
+ */
+ public function is_finished() {
+ return (bool) $this->get_status()['finished'];
+ }
+
+ /**
+ * Clear all the full sync data.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ $this->clear_status();
+ ( new Lock() )->remove( self::LOCK_NAME, true );
+ }
+
+ /**
+ * Clear all the full sync status options.
+ *
+ * @access public
+ */
+ public function clear_status() {
+ \Jetpack_Options::delete_raw_option( self::STATUS_OPTION );
+ }
+
+ /**
+ * Updates the status of the current full sync.
+ *
+ * @access public
+ *
+ * @param array $values New values to set.
+ *
+ * @return bool True if success.
+ */
+ public function update_status( $values ) {
+ return $this->set_status( wp_parse_args( $values, $this->get_status() ) );
+ }
+
+ /**
+ * Retrieve the status of the current full sync.
+ *
+ * @param array $values New values to set.
+ *
+ * @access public
+ *
+ * @return boolean Full sync status.
+ */
+ public function set_status( $values ) {
+ return \Jetpack_Options::update_raw_option( self::STATUS_OPTION, $values );
+ }
+
+ /**
+ * Given an initial Full Sync configuration get the initial status.
+ *
+ * @param array $full_sync_config Full sync configuration.
+ *
+ * @return array Initial Sent status.
+ */
+ public function get_initial_progress( $full_sync_config ) {
+ // Set default configuration, calculate totals, and save configuration if totals > 0.
+ $status = array();
+ foreach ( $full_sync_config as $name => $config ) {
+ $module = Modules::get_module( $name );
+ $status[ $name ] = array(
+ 'total' => $module->total( $config ),
+ 'sent' => 0,
+ 'finished' => false,
+ );
+ }
+
+ return $status;
+ }
+
+ /**
+ * Get the range for content (posts and comments) to sync.
+ *
+ * @access private
+ *
+ * @return array Array of range (min ID, max ID, total items) for all content types.
+ */
+ private function get_content_range() {
+ $range = array();
+ $config = $this->get_status()['config'];
+ // Add range only when syncing all objects.
+ if ( true === isset( $config['posts'] ) && $config['posts'] ) {
+ $range['posts'] = $this->get_range( 'posts' );
+ }
+
+ if ( true === isset( $config['comments'] ) && $config['comments'] ) {
+ $range['comments'] = $this->get_range( 'comments' );
+ }
+
+ return $range;
+ }
+
+ /**
+ * Get the range (min ID, max ID and total items) of items to sync.
+ *
+ * @access public
+ *
+ * @param string $type Type of sync item to get the range for.
+ *
+ * @return array Array of min ID, max ID and total items in the range.
+ */
+ public function get_range( $type ) {
+ global $wpdb;
+ if ( ! in_array( $type, array( 'comments', 'posts' ), true ) ) {
+ return array();
+ }
+
+ switch ( $type ) {
+ case 'posts':
+ $table = $wpdb->posts;
+ $id = 'ID';
+ $where_sql = Settings::get_blacklisted_post_types_sql();
+
+ break;
+ case 'comments':
+ $table = $wpdb->comments;
+ $id = 'comment_ID';
+ $where_sql = Settings::get_comments_filter_sql();
+ break;
+ }
+
+ // TODO: Call $wpdb->prepare on the following query.
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $results = $wpdb->get_results( "SELECT MAX({$id}) as max, MIN({$id}) as min, COUNT({$id}) as count FROM {$table} WHERE {$where_sql}" );
+ if ( isset( $results[0] ) ) {
+ return $results[0];
+ }
+
+ return array();
+ }
+
+ /**
+ * Continue sending instead of enqueueing.
+ *
+ * @access public
+ */
+ public function continue_enqueuing() {
+ $this->continue_sending();
+ }
+
+ /**
+ * Continue sending.
+ *
+ * @access public
+ */
+ public function continue_sending() {
+ // Return early if Full Sync is not running.
+ if ( ! $this->is_started() || $this->get_status()['finished'] ) {
+ return;
+ }
+
+ // Return early if we've gotten a retry-after header response.
+ $retry_time = get_option( Actions::RETRY_AFTER_PREFIX . 'immediate-send' );
+ if ( $retry_time ) {
+ // If expired delete but don't send. Send will occurr in new request to avoid race conditions.
+ if ( microtime( true ) > $retry_time ) {
+ update_option( Actions::RETRY_AFTER_PREFIX . 'immediate-send', false, false );
+ }
+ return false;
+ }
+
+ // Obtain send Lock.
+ $lock = new Lock();
+ $lock_expiration = $lock->attempt( self::LOCK_NAME );
+
+ // Return if unable to obtain lock.
+ if ( false === $lock_expiration ) {
+ return;
+ }
+
+ // Send Full Sync actions.
+ $success = $this->send();
+
+ // Remove lock.
+ if ( $success ) {
+ $lock->remove( self::LOCK_NAME, $lock_expiration );
+ }
+ }
+
+ /**
+ * Immediately send the next items to full sync.
+ *
+ * @access public
+ */
+ public function send() {
+ $config = $this->get_status()['config'];
+
+ $max_duration = Settings::get_setting( 'full_sync_send_duration' );
+ $send_until = microtime( true ) + $max_duration;
+
+ $progress = $this->get_status()['progress'];
+
+ foreach ( $this->get_remaining_modules_to_send() as $module ) {
+ $progress[ $module->name() ] = $module->send_full_sync_actions( $config[ $module->name() ], $progress[ $module->name() ], $send_until );
+ if ( isset( $progress[ $module->name() ]['error'] ) ) {
+ unset( $progress[ $module->name() ]['error'] );
+ $this->update_status( array( 'progress' => $progress ) );
+ return false;
+ } elseif ( ! $progress[ $module->name() ]['finished'] ) {
+ $this->update_status( array( 'progress' => $progress ) );
+ return true;
+ }
+ }
+
+ $this->send_full_sync_end();
+ $this->update_status( array( 'progress' => $progress ) );
+ return true;
+ }
+
+ /**
+ * Get Modules that are configured to Full Sync and haven't finished sending
+ *
+ * @return array
+ */
+ public function get_remaining_modules_to_send() {
+ $status = $this->get_status();
+
+ return array_filter(
+ Modules::get_modules(),
+ /**
+ * Select configured and not finished modules.
+ *
+ * @return bool
+ * @var $module Module
+ */
+ function ( $module ) use ( $status ) {
+ // Skip module if not configured for this sync or module is done.
+ if ( ! isset( $status['config'][ $module->name() ] ) ) {
+ return false;
+ }
+ if ( ! $status['config'][ $module->name() ] ) {
+ return false;
+ }
+ if ( isset( $status['progress'][ $module->name() ]['finished'] ) ) {
+ if ( true === $status['progress'][ $module->name() ]['finished'] ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ );
+ }
+
+ /**
+ * Send 'jetpack_full_sync_end' and update 'finished' status.
+ *
+ * @access public
+ */
+ public function send_full_sync_end() {
+ $range = $this->get_content_range();
+
+ /**
+ * Fires when a full sync ends. This action is serialized
+ * and sent to the server.
+ *
+ * @param string $checksum Deprecated since 7.3.0 - @see https://github.com/Automattic/jetpack/pull/11945/
+ * @param array $range Range of the sync items, containing min and max IDs for some item types.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ * @since-jetpack 7.3.0 Added $range arg.
+ */
+ do_action( 'jetpack_full_sync_end', '', $range );
+ $this->send_action( 'jetpack_full_sync_end', array( '', $range ) );
+
+ // Setting autoload to true means that it's faster to check whether we should continue enqueuing.
+ $this->update_status( array( 'finished' => time() ) );
+ }
+
+ /**
+ * Empty Function as we don't close buffers on Immediate Full Sync.
+ *
+ * @param array $actions an array of actions, ignored for queueless sync.
+ */
+ public function update_sent_progress_action( $actions ) { } // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php
new file mode 100644
index 00000000..0fe9245c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php
@@ -0,0 +1,730 @@
+<?php
+/**
+ * Full sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Listener;
+use Automattic\Jetpack\Sync\Lock;
+use Automattic\Jetpack\Sync\Modules;
+use Automattic\Jetpack\Sync\Queue;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * This class does a full resync of the database by
+ * enqueuing an outbound action for every single object
+ * that we care about.
+ *
+ * This class, and its related class Jetpack_Sync_Module, contain a few non-obvious optimisations that should be explained:
+ * - we fire an action called jetpack_full_sync_start so that WPCOM can erase the contents of the cached database
+ * - for each object type, we page through the object IDs and enqueue them by firing some monitored actions
+ * - we load the full objects for those IDs in chunks of Jetpack_Sync_Module::ARRAY_CHUNK_SIZE (to reduce the number of MySQL calls)
+ * - we fire a trigger for the entire array which the Automattic\Jetpack\Sync\Listener then serializes and queues.
+ */
+class Full_Sync extends Module {
+ /**
+ * Prefix of the full sync status option name.
+ *
+ * @var string
+ */
+ const STATUS_OPTION_PREFIX = 'jetpack_sync_full_';
+
+ /**
+ * Enqueue Lock name.
+ *
+ * @var string
+ */
+ const ENQUEUE_LOCK_NAME = 'full_sync_enqueue';
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'full-sync';
+ }
+
+ /**
+ * Initialize action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ // Synthetic actions for full sync.
+ add_action( 'jetpack_full_sync_start', $callable, 10, 3 );
+ add_action( 'jetpack_full_sync_end', $callable, 10, 2 );
+ add_action( 'jetpack_full_sync_cancelled', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // This is triggered after actions have been processed on the server.
+ add_action( 'jetpack_sync_processed_actions', array( $this, 'update_sent_progress_action' ) );
+ }
+
+ /**
+ * Start a full sync.
+ *
+ * @access public
+ *
+ * @param array $module_configs Full sync configuration for all sync modules.
+ * @return bool Always returns true at success.
+ */
+ public function start( $module_configs = null ) {
+ $was_already_running = $this->is_started() && ! $this->is_finished();
+
+ // Remove all evidence of previous full sync items and status.
+ $this->reset_data();
+
+ if ( $was_already_running ) {
+ /**
+ * Fires when a full sync is cancelled.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_full_sync_cancelled' );
+ }
+
+ $this->update_status_option( 'started', time() );
+ $this->update_status_option( 'params', $module_configs );
+
+ $enqueue_status = array();
+ $full_sync_config = array();
+ $include_empty = false;
+ $empty = array();
+
+ // Default value is full sync.
+ if ( ! is_array( $module_configs ) ) {
+ $module_configs = array();
+ $include_empty = true;
+ foreach ( Modules::get_modules() as $module ) {
+ $module_configs[ $module->name() ] = true;
+ }
+ }
+
+ // Set default configuration, calculate totals, and save configuration if totals > 0.
+ foreach ( Modules::get_modules() as $module ) {
+ $module_name = $module->name();
+ $module_config = isset( $module_configs[ $module_name ] ) ? $module_configs[ $module_name ] : false;
+
+ if ( ! $module_config ) {
+ continue;
+ }
+
+ if ( 'users' === $module_name && 'initial' === $module_config ) {
+ $module_config = $module->get_initial_sync_user_config();
+ }
+
+ $enqueue_status[ $module_name ] = false;
+
+ $total_items = $module->estimate_full_sync_actions( $module_config );
+
+ // If there's information to process, configure this module.
+ if ( ! is_null( $total_items ) && $total_items > 0 ) {
+ $full_sync_config[ $module_name ] = $module_config;
+ $enqueue_status[ $module_name ] = array(
+ $total_items, // Total.
+ 0, // Queued.
+ false, // Current state.
+ );
+ } elseif ( $include_empty && 0 === $total_items ) {
+ $empty[ $module_name ] = true;
+ }
+ }
+
+ $this->set_config( $full_sync_config );
+ $this->set_enqueue_status( $enqueue_status );
+
+ $range = $this->get_content_range( $full_sync_config );
+ /**
+ * Fires when a full sync begins. This action is serialized
+ * and sent to the server so that it knows a full sync is coming.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ * @since-jetpack 7.3.0 Added $range arg.
+ * @since-jetpack 7.4.0 Added $empty arg.
+ *
+ * @param array $full_sync_config Sync configuration for all sync modules.
+ * @param array $range Range of the sync items, containing min and max IDs for some item types.
+ * @param array $empty The modules with no items to sync during a full sync.
+ */
+ do_action( 'jetpack_full_sync_start', $full_sync_config, $range, $empty );
+
+ $this->continue_enqueuing( $full_sync_config );
+
+ return true;
+ }
+
+ /**
+ * Enqueue the next items to sync.
+ *
+ * @access public
+ *
+ * @param array $configs Full sync configuration for all sync modules.
+ */
+ public function continue_enqueuing( $configs = null ) {
+ // Return early if not in progress.
+ if ( ! $this->get_status_option( 'started' ) || $this->get_status_option( 'queue_finished' ) ) {
+ return;
+ }
+
+ // Attempt to obtain lock.
+ $lock = new Lock();
+ $lock_expiration = $lock->attempt( self::ENQUEUE_LOCK_NAME );
+
+ // Return if unable to obtain lock.
+ if ( false === $lock_expiration ) {
+ return;
+ }
+
+ // enqueue full sync actions.
+ $this->enqueue( $configs );
+
+ // Remove lock.
+ $lock->remove( self::ENQUEUE_LOCK_NAME, $lock_expiration );
+ }
+
+ /**
+ * Get Modules that are configured to Full Sync and haven't finished enqueuing
+ *
+ * @param array $configs Full sync configuration for all sync modules.
+ *
+ * @return array
+ */
+ public function get_remaining_modules_to_enqueue( $configs ) {
+ $enqueue_status = $this->get_enqueue_status();
+ return array_filter(
+ Modules::get_modules(),
+ /**
+ * Select configured and not finished modules.
+ *
+ * @var $module Module
+ * @return bool
+ */
+ function ( $module ) use ( $configs, $enqueue_status ) {
+ // Skip module if not configured for this sync or module is done.
+ if ( ! isset( $configs[ $module->name() ] ) ) {
+ return false;
+ }
+ if ( ! $configs[ $module->name() ] ) {
+ return false;
+ }
+ if ( isset( $enqueue_status[ $module->name() ][2] ) ) {
+ if ( true === $enqueue_status[ $module->name() ][2] ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+ );
+ }
+
+ /**
+ * Enqueue the next items to sync.
+ *
+ * @access public
+ *
+ * @param array $configs Full sync configuration for all sync modules.
+ */
+ public function enqueue( $configs = null ) {
+ if ( ! $configs ) {
+ $configs = $this->get_config();
+ }
+
+ $enqueue_status = $this->get_enqueue_status();
+ $full_sync_queue = new Queue( 'full_sync' );
+ $available_queue_slots = Settings::get_setting( 'max_queue_size_full_sync' ) - $full_sync_queue->size();
+
+ if ( $available_queue_slots <= 0 ) {
+ return;
+ }
+
+ $remaining_items_to_enqueue = min( Settings::get_setting( 'max_enqueue_full_sync' ), $available_queue_slots );
+
+ /**
+ * If a module exits early (e.g. because it ran out of full sync queue slots, or we ran out of request time)
+ * then it should exit early
+ */
+ foreach ( $this->get_remaining_modules_to_enqueue( $configs ) as $module ) {
+ list( $items_enqueued, $next_enqueue_state ) = $module->enqueue_full_sync_actions( $configs[ $module->name() ], $remaining_items_to_enqueue, $enqueue_status[ $module->name() ][2] );
+
+ $enqueue_status[ $module->name() ][2] = $next_enqueue_state;
+
+ // If items were processed, subtract them from the limit.
+ if ( ! is_null( $items_enqueued ) && $items_enqueued > 0 ) {
+ $enqueue_status[ $module->name() ][1] += $items_enqueued;
+ $remaining_items_to_enqueue -= $items_enqueued;
+ }
+
+ if ( 0 >= $remaining_items_to_enqueue || true !== $next_enqueue_state ) {
+ $this->set_enqueue_status( $enqueue_status );
+ return;
+ }
+ }
+
+ $this->queue_full_sync_end( $configs );
+ $this->set_enqueue_status( $enqueue_status );
+ }
+
+ /**
+ * Enqueue 'jetpack_full_sync_end' and update 'queue_finished' status.
+ *
+ * @access public
+ *
+ * @param array $configs Full sync configuration for all sync modules.
+ */
+ public function queue_full_sync_end( $configs ) {
+ $range = $this->get_content_range( $configs );
+
+ /**
+ * Fires when a full sync ends. This action is serialized
+ * and sent to the server.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ * @since-jetpack 7.3.0 Added $range arg.
+ *
+ * @param string $checksum Deprecated since 7.3.0 - @see https://github.com/Automattic/jetpack/pull/11945/
+ * @param array $range Range of the sync items, containing min and max IDs for some item types.
+ */
+ do_action( 'jetpack_full_sync_end', '', $range );
+
+ // Setting autoload to true means that it's faster to check whether we should continue enqueuing.
+ $this->update_status_option( 'queue_finished', time(), true );
+ }
+
+ /**
+ * Get the range (min ID, max ID and total items) of items to sync.
+ *
+ * @access public
+ *
+ * @param string $type Type of sync item to get the range for.
+ * @return array Array of min ID, max ID and total items in the range.
+ */
+ public function get_range( $type ) {
+ global $wpdb;
+ if ( ! in_array( $type, array( 'comments', 'posts' ), true ) ) {
+ return array();
+ }
+
+ switch ( $type ) {
+ case 'posts':
+ $table = $wpdb->posts;
+ $id = 'ID';
+ $where_sql = Settings::get_blacklisted_post_types_sql();
+
+ break;
+ case 'comments':
+ $table = $wpdb->comments;
+ $id = 'comment_ID';
+ $where_sql = Settings::get_comments_filter_sql();
+ break;
+ }
+
+ // TODO: Call $wpdb->prepare on the following query.
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $results = $wpdb->get_results( "SELECT MAX({$id}) as max, MIN({$id}) as min, COUNT({$id}) as count FROM {$table} WHERE {$where_sql}" );
+ if ( isset( $results[0] ) ) {
+ return $results[0];
+ }
+
+ return array();
+ }
+
+ /**
+ * Get the range for content (posts and comments) to sync.
+ *
+ * @access private
+ *
+ * @param array $config Full sync configuration for this all sync modules.
+ * @return array Array of range (min ID, max ID, total items) for all content types.
+ */
+ private function get_content_range( $config ) {
+ $range = array();
+ // Only when we are sending the whole range do we want to send also the range.
+ if ( true === isset( $config['posts'] ) && $config['posts'] ) {
+ $range['posts'] = $this->get_range( 'posts' );
+ }
+
+ if ( true === isset( $config['comments'] ) && $config['comments'] ) {
+ $range['comments'] = $this->get_range( 'comments' );
+ }
+ return $range;
+ }
+
+ /**
+ * Update the progress after sync modules actions have been processed on the server.
+ *
+ * @access public
+ *
+ * @param array $actions Actions that have been processed on the server.
+ */
+ public function update_sent_progress_action( $actions ) {
+ // Quick way to map to first items with an array of arrays.
+ $actions_with_counts = array_count_values( array_filter( array_map( array( $this, 'get_action_name' ), $actions ) ) );
+
+ // Total item counts for each action.
+ $actions_with_total_counts = $this->get_actions_totals( $actions );
+
+ if ( ! $this->is_started() || $this->is_finished() ) {
+ return;
+ }
+
+ if ( isset( $actions_with_counts['jetpack_full_sync_start'] ) ) {
+ $this->update_status_option( 'send_started', time() );
+ }
+
+ foreach ( Modules::get_modules() as $module ) {
+ $module_actions = $module->get_full_sync_actions();
+ $status_option_name = "{$module->name()}_sent";
+ $total_option_name = "{$status_option_name}_total";
+ $items_sent = $this->get_status_option( $status_option_name, 0 );
+ $items_sent_total = $this->get_status_option( $total_option_name, 0 );
+
+ foreach ( $module_actions as $module_action ) {
+ if ( isset( $actions_with_counts[ $module_action ] ) ) {
+ $items_sent += $actions_with_counts[ $module_action ];
+ }
+
+ if ( ! empty( $actions_with_total_counts[ $module_action ] ) ) {
+ $items_sent_total += $actions_with_total_counts[ $module_action ];
+ }
+ }
+
+ if ( $items_sent > 0 ) {
+ $this->update_status_option( $status_option_name, $items_sent );
+ }
+
+ if ( 0 !== $items_sent_total ) {
+ $this->update_status_option( $total_option_name, $items_sent_total );
+ }
+ }
+
+ if ( isset( $actions_with_counts['jetpack_full_sync_end'] ) ) {
+ $this->update_status_option( 'finished', time() );
+ }
+ }
+
+ /**
+ * Returns the progress percentage of a full sync.
+ *
+ * @access public
+ *
+ * @return int|null
+ */
+ public function get_sync_progress_percentage() {
+ if ( ! $this->is_started() || $this->is_finished() ) {
+ return null;
+ }
+ $status = $this->get_status();
+ if ( ! $status['queue'] || ! $status['sent'] || ! $status['total'] ) {
+ return null;
+ }
+ $queued_multiplier = 0.1;
+ $sent_multiplier = 0.9;
+ $count_queued = array_reduce(
+ $status['queue'],
+ function ( $sum, $value ) {
+ return $sum + $value;
+ },
+ 0
+ );
+ $count_sent = array_reduce(
+ $status['sent'],
+ function ( $sum, $value ) {
+ return $sum + $value;
+ },
+ 0
+ );
+ $count_total = array_reduce(
+ $status['total'],
+ function ( $sum, $value ) {
+ return $sum + $value;
+ },
+ 0
+ );
+ $percent_queued = ( $count_queued / $count_total ) * $queued_multiplier * 100;
+ $percent_sent = ( $count_sent / $count_total ) * $sent_multiplier * 100;
+ return ceil( $percent_queued + $percent_sent );
+ }
+
+ /**
+ * Get the name of the action for an item in the sync queue.
+ *
+ * @access public
+ *
+ * @param array $queue_item Item of the sync queue.
+ * @return string|boolean Name of the action, false if queue item is invalid.
+ */
+ public function get_action_name( $queue_item ) {
+ if ( is_array( $queue_item ) && isset( $queue_item[0] ) ) {
+ return $queue_item[0];
+ }
+ return false;
+ }
+
+ /**
+ * Retrieve the total number of items we're syncing in a particular queue item (action).
+ * `$queue_item[1]` is expected to contain chunks of items, and `$queue_item[1][0]`
+ * represents the first (and only) chunk of items to sync in that action.
+ *
+ * @access public
+ *
+ * @param array $queue_item Item of the sync queue that corresponds to a particular action.
+ * @return int Total number of items in the action.
+ */
+ public function get_action_totals( $queue_item ) {
+ if ( is_array( $queue_item ) && isset( $queue_item[1][0] ) ) {
+ if ( is_array( $queue_item[1][0] ) ) {
+ // Let's count the items we sync in this action.
+ return count( $queue_item[1][0] );
+ }
+ // -1 indicates that this action syncs all items by design.
+ return -1;
+ }
+ return 0;
+ }
+
+ /**
+ * Retrieve the total number of items for a set of actions, grouped by action name.
+ *
+ * @access public
+ *
+ * @param array $actions An array of actions.
+ * @return array An array, representing the total number of items, grouped per action.
+ */
+ public function get_actions_totals( $actions ) {
+ $totals = array();
+
+ foreach ( $actions as $action ) {
+ $name = $this->get_action_name( $action );
+ $action_totals = $this->get_action_totals( $action );
+ if ( ! isset( $totals[ $name ] ) ) {
+ $totals[ $name ] = 0;
+ }
+ $totals[ $name ] += $action_totals;
+ }
+
+ return $totals;
+ }
+
+ /**
+ * Whether full sync has started.
+ *
+ * @access public
+ *
+ * @return boolean
+ */
+ public function is_started() {
+ return (bool) $this->get_status_option( 'started' );
+ }
+
+ /**
+ * Whether full sync has finished.
+ *
+ * @access public
+ *
+ * @return boolean
+ */
+ public function is_finished() {
+ return (bool) $this->get_status_option( 'finished' );
+ }
+
+ /**
+ * Retrieve the status of the current full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync status.
+ */
+ public function get_status() {
+ $status = array(
+ 'started' => $this->get_status_option( 'started' ),
+ 'queue_finished' => $this->get_status_option( 'queue_finished' ),
+ 'send_started' => $this->get_status_option( 'send_started' ),
+ 'finished' => $this->get_status_option( 'finished' ),
+ 'sent' => array(),
+ 'sent_total' => array(),
+ 'queue' => array(),
+ 'config' => $this->get_status_option( 'params' ),
+ 'total' => array(),
+ );
+
+ $enqueue_status = $this->get_enqueue_status();
+
+ foreach ( Modules::get_modules() as $module ) {
+ $name = $module->name();
+
+ if ( ! isset( $enqueue_status[ $name ] ) ) {
+ continue;
+ }
+
+ list( $total, $queued ) = $enqueue_status[ $name ];
+
+ if ( $total ) {
+ $status['total'][ $name ] = $total;
+ }
+
+ if ( $queued ) {
+ $status['queue'][ $name ] = $queued;
+ }
+
+ $sent = $this->get_status_option( "{$name}_sent" );
+ if ( $sent ) {
+ $status['sent'][ $name ] = $sent;
+ }
+
+ $sent_total = $this->get_status_option( "{$name}_sent_total" );
+ if ( $sent_total ) {
+ $status['sent_total'][ $name ] = $sent_total;
+ }
+ }
+
+ return $status;
+ }
+
+ /**
+ * Clear all the full sync status options.
+ *
+ * @access public
+ */
+ public function clear_status() {
+ $prefix = self::STATUS_OPTION_PREFIX;
+ \Jetpack_Options::delete_raw_option( "{$prefix}_started" );
+ \Jetpack_Options::delete_raw_option( "{$prefix}_params" );
+ \Jetpack_Options::delete_raw_option( "{$prefix}_queue_finished" );
+ \Jetpack_Options::delete_raw_option( "{$prefix}_send_started" );
+ \Jetpack_Options::delete_raw_option( "{$prefix}_finished" );
+
+ $this->delete_enqueue_status();
+
+ foreach ( Modules::get_modules() as $module ) {
+ \Jetpack_Options::delete_raw_option( "{$prefix}_{$module->name()}_sent" );
+ \Jetpack_Options::delete_raw_option( "{$prefix}_{$module->name()}_sent_total" );
+ }
+ }
+
+ /**
+ * Clear all the full sync data.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ $this->clear_status();
+ $this->delete_config();
+ ( new Lock() )->remove( self::ENQUEUE_LOCK_NAME, true );
+
+ $listener = Listener::get_instance();
+ $listener->get_full_sync_queue()->reset();
+ }
+
+ /**
+ * Get the value of a full sync status option.
+ *
+ * @access private
+ *
+ * @param string $name Name of the option.
+ * @param mixed $default Default value of the option.
+ * @return mixed Option value.
+ */
+ private function get_status_option( $name, $default = null ) {
+ $value = \Jetpack_Options::get_raw_option( self::STATUS_OPTION_PREFIX . "_$name", $default );
+
+ return is_numeric( $value ) ? (int) $value : $value;
+ }
+
+ /**
+ * Update the value of a full sync status option.
+ *
+ * @access private
+ *
+ * @param string $name Name of the option.
+ * @param mixed $value Value of the option.
+ * @param boolean $autoload Whether the option should be autoloaded at the beginning of the request.
+ */
+ private function update_status_option( $name, $value, $autoload = false ) {
+ \Jetpack_Options::update_raw_option( self::STATUS_OPTION_PREFIX . "_$name", $value, $autoload );
+ }
+
+ /**
+ * Set the full sync enqueue status.
+ *
+ * @access private
+ *
+ * @param array $new_status The new full sync enqueue status.
+ */
+ private function set_enqueue_status( $new_status ) {
+ \Jetpack_Options::update_raw_option( 'jetpack_sync_full_enqueue_status', $new_status );
+ }
+
+ /**
+ * Delete full sync enqueue status.
+ *
+ * @access private
+ *
+ * @return boolean Whether the status was deleted.
+ */
+ private function delete_enqueue_status() {
+ return \Jetpack_Options::delete_raw_option( 'jetpack_sync_full_enqueue_status' );
+ }
+
+ /**
+ * Retrieve the current full sync enqueue status.
+ *
+ * @access private
+ *
+ * @return array Full sync enqueue status.
+ */
+ public function get_enqueue_status() {
+ return \Jetpack_Options::get_raw_option( 'jetpack_sync_full_enqueue_status' );
+ }
+
+ /**
+ * Set the full sync enqueue configuration.
+ *
+ * @access private
+ *
+ * @param array $config The new full sync enqueue configuration.
+ */
+ private function set_config( $config ) {
+ \Jetpack_Options::update_raw_option( 'jetpack_sync_full_config', $config );
+ }
+
+ /**
+ * Delete full sync configuration.
+ *
+ * @access private
+ *
+ * @return boolean Whether the configuration was deleted.
+ */
+ private function delete_config() {
+ return \Jetpack_Options::delete_raw_option( 'jetpack_sync_full_config' );
+ }
+
+ /**
+ * Retrieve the current full sync enqueue config.
+ *
+ * @access private
+ *
+ * @return array Full sync enqueue config.
+ */
+ private function get_config() {
+ return \Jetpack_Options::get_raw_option( 'jetpack_sync_full_config' );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php
new file mode 100644
index 00000000..839434dd
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php
@@ -0,0 +1,220 @@
+<?php
+/**
+ * Import sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for imports.
+ */
+class Import extends Module {
+
+ /**
+ * Tracks which actions have already been synced for the import
+ * to prevent the same event from being triggered a second time.
+ *
+ * @var array
+ */
+ private $synced_actions = array();
+
+ /**
+ * A mapping of action types to sync action name.
+ * Keys are the name of the import action.
+ * Values are the resulting sync action.
+ *
+ * Note: import_done and import_end both intentionally map to
+ * jetpack_sync_import_end, as they both track the same type of action,
+ * the successful completion of an import. Different import plugins use
+ * differently named actions, and this is an attempt to consolidate.
+ *
+ * @var array
+ */
+ private static $import_sync_action_map = array(
+ 'import_start' => 'jetpack_sync_import_start',
+ 'import_done' => 'jetpack_sync_import_end',
+ 'import_end' => 'jetpack_sync_import_end',
+ );
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'import';
+ }
+
+ /**
+ * Initialize imports action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'export_wp', $callable );
+ add_action( 'jetpack_sync_import_start', $callable, 10, 2 );
+ add_action( 'jetpack_sync_import_end', $callable, 10, 2 );
+
+ // WordPress.
+ add_action( 'import_start', array( $this, 'sync_import_action' ) );
+
+ // Movable type, RSS, Livejournal.
+ add_action( 'import_done', array( $this, 'sync_import_action' ) );
+
+ // WordPress, Blogger, Livejournal, woo tax rate.
+ add_action( 'import_end', array( $this, 'sync_import_action' ) );
+ }
+
+ /**
+ * Set module defaults.
+ * Define an empty list of synced actions for us to fill later.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ $this->synced_actions = array();
+ }
+
+ /**
+ * Generic handler for import actions.
+ *
+ * @access public
+ *
+ * @param string $importer Either a string reported by the importer, the class name of the importer, or 'unknown'.
+ */
+ public function sync_import_action( $importer ) {
+ $import_action = current_filter();
+ // Map action to event name.
+ $sync_action = self::$import_sync_action_map[ $import_action ];
+
+ // Only sync each action once per import.
+ if ( array_key_exists( $sync_action, $this->synced_actions ) && $this->synced_actions[ $sync_action ] ) {
+ return;
+ }
+
+ // Mark this action as synced.
+ $this->synced_actions[ $sync_action ] = true;
+
+ // Prefer self-reported $importer value.
+ if ( ! $importer ) {
+ // Fall back to inferring by calling class name.
+ $importer = self::get_calling_importer_class();
+ }
+
+ // Get $importer from known_importers.
+ $known_importers = Settings::get_setting( 'known_importers' );
+ if ( is_string( $importer ) && isset( $known_importers[ $importer ] ) ) {
+ $importer = $known_importers[ $importer ];
+ }
+
+ $importer_name = $this->get_importer_name( $importer );
+
+ switch ( $sync_action ) {
+ case 'jetpack_sync_import_start':
+ /**
+ * Used for syncing the start of an import
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.3.0
+ *
+ * @module sync
+ *
+ * @param string $importer Either a string reported by the importer, the class name of the importer, or 'unknown'.
+ * @param string $importer_name The name reported by the importer, or 'Unknown Importer'.
+ */
+ do_action( 'jetpack_sync_import_start', $importer, $importer_name );
+ break;
+
+ case 'jetpack_sync_import_end':
+ /**
+ * Used for syncing the end of an import
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.3.0
+ *
+ * @module sync
+ *
+ * @param string $importer Either a string reported by the importer, the class name of the importer, or 'unknown'.
+ * @param string $importer_name The name reported by the importer, or 'Unknown Importer'.
+ */
+ do_action( 'jetpack_sync_import_end', $importer, $importer_name );
+ break;
+ }
+ }
+
+ /**
+ * Retrieve the name of the importer.
+ *
+ * @access private
+ *
+ * @param string $importer Either a string reported by the importer, the class name of the importer, or 'unknown'.
+ * @return string Name of the importer, or "Unknown Importer" if importer is unknown.
+ */
+ private function get_importer_name( $importer ) {
+ $importers = get_importers();
+ return isset( $importers[ $importer ] ) ? $importers[ $importer ][0] : 'Unknown Importer';
+ }
+
+ /**
+ * Determine the class that extends `WP_Importer` which is responsible for
+ * the current action. Designed to be used within an action handler.
+ *
+ * @access private
+ * @static
+ *
+ * @return string The name of the calling class, or 'unknown'.
+ */
+ private static function get_calling_importer_class() {
+ // If WP_Importer doesn't exist, neither will any importer that extends it.
+ if ( ! class_exists( 'WP_Importer', false ) ) {
+ return 'unknown';
+ }
+
+ $action = current_filter();
+ $backtrace = debug_backtrace( false ); //phpcs:ignore PHPCompatibility.FunctionUse.NewFunctionParameters.debug_backtrace_optionsFound,WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+
+ $do_action_pos = -1;
+ $backtrace_len = count( $backtrace );
+ for ( $i = 0; $i < $backtrace_len; $i++ ) {
+ // Find the location in the stack of the calling action.
+ if ( 'do_action' === $backtrace[ $i ]['function'] && $action === $backtrace[ $i ]['args'][0] ) {
+ $do_action_pos = $i;
+ break;
+ }
+ }
+
+ // If the action wasn't called, the calling class is unknown.
+ if ( -1 === $do_action_pos ) {
+ return 'unknown';
+ }
+
+ // Continue iterating the stack looking for a caller that extends WP_Importer.
+ for ( $i = $do_action_pos + 1; $i < $backtrace_len; $i++ ) {
+ // If there is no class on the trace, continue.
+ if ( ! isset( $backtrace[ $i ]['class'] ) ) {
+ continue;
+ }
+
+ $class_name = $backtrace[ $i ]['class'];
+
+ // Check if the class extends WP_Importer.
+ if ( class_exists( $class_name, false ) ) {
+ $parents = class_parents( $class_name, false );
+ if ( $parents && in_array( 'WP_Importer', $parents, true ) ) {
+ return $class_name;
+ }
+ }
+ }
+
+ // If we've exhausted the stack without a match, the calling class is unknown.
+ return 'unknown';
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php
new file mode 100644
index 00000000..bf6c5620
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php
@@ -0,0 +1,146 @@
+<?php
+/**
+ * Menus sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class to handle sync for menus.
+ */
+class Menus extends Module {
+ /**
+ * Navigation menu items that were added but not synced yet.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $nav_items_just_added = array();
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'menus';
+ }
+
+ /**
+ * Initialize menus action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'wp_create_nav_menu', $callable, 10, 2 );
+ add_action( 'wp_update_nav_menu', array( $this, 'update_nav_menu' ), 10, 2 );
+ add_action( 'wp_add_nav_menu_item', array( $this, 'update_nav_menu_add_item' ), 10, 3 );
+ add_action( 'wp_update_nav_menu_item', array( $this, 'update_nav_menu_update_item' ), 10, 3 );
+ add_action( 'post_updated', array( $this, 'remove_just_added_menu_item' ), 10, 2 );
+
+ add_action( 'jetpack_sync_updated_nav_menu', $callable, 10, 2 );
+ add_action( 'jetpack_sync_updated_nav_menu_add_item', $callable, 10, 4 );
+ add_action( 'jetpack_sync_updated_nav_menu_update_item', $callable, 10, 4 );
+ add_action( 'delete_nav_menu', $callable, 10, 3 );
+ }
+
+ /**
+ * Nav menu update handler.
+ *
+ * @access public
+ *
+ * @param int $menu_id ID of the menu.
+ * @param array $menu_data An array of menu data.
+ */
+ public function update_nav_menu( $menu_id, $menu_data = array() ) {
+ if ( empty( $menu_data ) ) {
+ return;
+ }
+ /**
+ * Helps sync log that a nav menu was updated.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param int $menu_id ID of the menu.
+ * @param array $menu_data An array of menu data.
+ */
+ do_action( 'jetpack_sync_updated_nav_menu', $menu_id, $menu_data );
+ }
+
+ /**
+ * Nav menu item addition handler.
+ *
+ * @access public
+ *
+ * @param int $menu_id ID of the menu.
+ * @param int $nav_item_id ID of the new menu item.
+ * @param array $nav_item_args Arguments used to add the menu item.
+ */
+ public function update_nav_menu_add_item( $menu_id, $nav_item_id, $nav_item_args ) {
+ $menu_data = wp_get_nav_menu_object( $menu_id );
+ $this->nav_items_just_added[] = $nav_item_id;
+ /**
+ * Helps sync log that a new menu item was added.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param int $menu_id ID of the menu.
+ * @param array $menu_data An array of menu data.
+ * @param int $nav_item_id ID of the new menu item.
+ * @param array $nav_item_args Arguments used to add the menu item.
+ */
+ do_action( 'jetpack_sync_updated_nav_menu_add_item', $menu_id, $menu_data, $nav_item_id, $nav_item_args );
+ }
+
+ /**
+ * Nav menu item update handler.
+ *
+ * @access public
+ *
+ * @param int $menu_id ID of the menu.
+ * @param int $nav_item_id ID of the new menu item.
+ * @param array $nav_item_args Arguments used to update the menu item.
+ */
+ public function update_nav_menu_update_item( $menu_id, $nav_item_id, $nav_item_args ) {
+ if ( in_array( $nav_item_id, $this->nav_items_just_added, true ) ) {
+ return;
+ }
+ $menu_data = wp_get_nav_menu_object( $menu_id );
+ /**
+ * Helps sync log that an update to the menu item happened.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param int $menu_id ID of the menu.
+ * @param array $menu_data An array of menu data.
+ * @param int $nav_item_id ID of the new menu item.
+ * @param array $nav_item_args Arguments used to update the menu item.
+ */
+ do_action( 'jetpack_sync_updated_nav_menu_update_item', $menu_id, $menu_data, $nav_item_id, $nav_item_args );
+ }
+
+ /**
+ * Remove menu items that have already been saved from the "just added" list.
+ *
+ * @access public
+ *
+ * @param int $nav_item_id ID of the new menu item.
+ * @param \WP_Post $post_after Nav menu item post object after the update.
+ */
+ public function remove_just_added_menu_item( $nav_item_id, $post_after ) {
+ if ( 'nav_menu_item' !== $post_after->post_type ) {
+ return;
+ }
+ $this->nav_items_just_added = array_diff( $this->nav_items_just_added, array( $nav_item_id ) );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php
new file mode 100644
index 00000000..de293a9b
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Meta sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class to handle sync for meta.
+ */
+class Meta extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'meta';
+ }
+
+ /**
+ * This implementation of get_objects_by_id() is a bit hacky since we're not passing in an array of meta IDs,
+ * but instead an array of post or comment IDs for which to retrieve meta for. On top of that,
+ * we also pass in an associative array where we expect there to be 'meta_key' and 'ids' keys present.
+ *
+ * This seemed to be required since if we have missing meta on WP.com and need to fetch it, we don't know what
+ * the meta key is, but we do know that we have missing meta for a given post or comment.
+ *
+ * @todo Refactor the $wpdb->prepare call to use placeholders.
+ *
+ * @param string $object_type The type of object for which we retrieve meta. Either 'post' or 'comment'.
+ * @param array $config Must include 'meta_key' and 'ids' keys.
+ *
+ * @return array
+ */
+ public function get_objects_by_id( $object_type, $config ) {
+ $table = _get_meta_table( $object_type );
+
+ if ( ! $table ) {
+ return array();
+ }
+
+ if ( ! is_array( $config ) ) {
+ return array();
+ }
+
+ $meta_objects = array();
+ foreach ( $config as $item ) {
+ $meta = null;
+ if ( isset( $item['id'] ) && isset( $item['meta_key'] ) ) {
+ $meta = $this->get_object_by_id( $object_type, (int) $item['id'], (string) $item['meta_key'] );
+ }
+ $meta_objects[ $item['id'] . '-' . $item['meta_key'] ] = $meta;
+ }
+
+ return $meta_objects;
+ }
+
+ /**
+ * Get a single Meta Result.
+ *
+ * @param string $object_type post, comment, term, user.
+ * @param null $id Object ID.
+ * @param null $meta_key Meta Key.
+ *
+ * @return mixed|null
+ */
+ public function get_object_by_id( $object_type, $id = null, $meta_key = null ) {
+ global $wpdb;
+
+ if ( ! is_int( $id ) || ! is_string( $meta_key ) ) {
+ return null;
+ }
+
+ $table = _get_meta_table( $object_type );
+ $object_id_column = $object_type . '_id';
+
+ // Sanitize so that the array only has integer values.
+ $meta = $wpdb->get_results(
+ $wpdb->prepare(
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ "SELECT * FROM {$table} WHERE {$object_id_column} = %d AND meta_key = %s",
+ $id,
+ $meta_key
+ ),
+ ARRAY_A
+ );
+
+ $meta_objects = null;
+
+ if ( ! is_wp_error( $meta ) && ! empty( $meta ) ) {
+ foreach ( $meta as $meta_entry ) {
+ if ( 'post' === $object_type && strlen( $meta_entry['meta_value'] ) >= Posts::MAX_POST_META_LENGTH ) {
+ $meta_entry['meta_value'] = '';
+ }
+ $meta_objects[] = array(
+ 'meta_type' => $object_type,
+ 'meta_id' => $meta_entry['meta_id'],
+ 'meta_key' => $meta_key,
+ 'meta_value' => $meta_entry['meta_value'],
+ 'object_id' => $meta_entry[ $object_id_column ],
+ );
+ }
+ }
+
+ return $meta_objects;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php
new file mode 100644
index 00000000..b69de80e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php
@@ -0,0 +1,604 @@
+<?php
+/**
+ * A base abstraction of a sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Functions;
+use Automattic\Jetpack\Sync\Listener;
+use Automattic\Jetpack\Sync\Replicastore;
+use Automattic\Jetpack\Sync\Sender;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Basic methods implemented by Jetpack Sync extensions.
+ *
+ * @abstract
+ */
+abstract class Module {
+ /**
+ * Number of items per chunk when grouping objects for performance reasons.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const ARRAY_CHUNK_SIZE = 10;
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ abstract public function name();
+
+ /**
+ * The id field in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function id_field() {
+ return 'ID';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string|bool
+ */
+ public function table_name() {
+ return false;
+ }
+
+ // phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+
+ /**
+ * Retrieve a sync object by its ID.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param int $id ID of the sync object.
+ * @return mixed Object, or false if the object is invalid.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ return false;
+ }
+
+ /**
+ * Initialize callables action listeners.
+ * Override these to set up listeners and set/reset data/defaults.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ }
+
+ /**
+ * Initialize module action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ }
+
+ /**
+ * Set module defaults.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ }
+
+ /**
+ * Perform module cleanup.
+ * Usually triggered when uninstalling the plugin.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ }
+
+ /**
+ * Enqueue the module actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ // In subclasses, return the number of actions enqueued, and next module state (true == done).
+ return array( null, true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ // In subclasses, return the number of items yet to be enqueued.
+ return null;
+ }
+
+ // phpcs:enable VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array();
+ }
+
+ /**
+ * Get the number of actions that we care about.
+ *
+ * @access protected
+ *
+ * @param array $action_names Action names we're interested in.
+ * @param array $actions_to_count Unfiltered list of actions we want to count.
+ * @return array Number of actions that we're interested in.
+ */
+ protected function count_actions( $action_names, $actions_to_count ) {
+ return count( array_intersect( $action_names, $actions_to_count ) );
+ }
+
+ /**
+ * Calculate the checksum of one or more values.
+ *
+ * @access protected
+ *
+ * @param mixed $values Values to calculate checksum for.
+ * @param bool $sort If $values should have ksort called on it.
+ * @return int The checksum.
+ */
+ protected function get_check_sum( $values, $sort = true ) {
+ // Associative array order changes the generated checksum value.
+ if ( $sort && is_array( $values ) ) {
+ $this->recursive_ksort( $values );
+ }
+ return crc32( wp_json_encode( Functions::json_wrap( $values ) ) );
+ }
+
+ /**
+ * Recursively call ksort on an Array
+ *
+ * @param array $values Array.
+ */
+ private function recursive_ksort( &$values ) {
+ ksort( $values );
+ foreach ( $values as &$value ) {
+ if ( is_array( $value ) ) {
+ $this->recursive_ksort( $value );
+ }
+ }
+ }
+
+ /**
+ * Whether a particular checksum in a set of checksums is valid.
+ *
+ * @access protected
+ *
+ * @param array $sums_to_check Array of checksums.
+ * @param string $name Name of the checksum.
+ * @param int $new_sum Checksum to compare against.
+ * @return boolean Whether the checksum is valid.
+ */
+ protected function still_valid_checksum( $sums_to_check, $name, $new_sum ) {
+ if ( isset( $sums_to_check[ $name ] ) && $sums_to_check[ $name ] === $new_sum ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Enqueue all items of a sync type as an action.
+ *
+ * @access protected
+ *
+ * @param string $action_name Name of the action.
+ * @param string $table_name Name of the database table.
+ * @param string $id_field Name of the ID field in the database.
+ * @param string $where_sql The SQL WHERE clause to filter to the desired items.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue in the same time.
+ * @param boolean $state Whether enqueueing has finished.
+ * @return array Array, containing the number of chunks and TRUE, indicating enqueueing has finished.
+ */
+ protected function enqueue_all_ids_as_action( $action_name, $table_name, $id_field, $where_sql, $max_items_to_enqueue, $state ) {
+ global $wpdb;
+
+ if ( ! $where_sql ) {
+ $where_sql = '1 = 1';
+ }
+
+ $items_per_page = 1000;
+ $page = 1;
+ $chunk_count = 0;
+ $previous_interval_end = $state ? $state : '~0';
+ $listener = Listener::get_instance();
+
+ // Count down from max_id to min_id so we get newest posts/comments/etc first.
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition, WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ while ( $ids = $wpdb->get_col( "SELECT {$id_field} FROM {$table_name} WHERE {$where_sql} AND {$id_field} < {$previous_interval_end} ORDER BY {$id_field} DESC LIMIT {$items_per_page}" ) ) {
+ // Request posts in groups of N for efficiency.
+ $chunked_ids = array_chunk( $ids, self::ARRAY_CHUNK_SIZE );
+
+ // If we hit our row limit, process and return.
+ if ( $chunk_count + count( $chunked_ids ) >= $max_items_to_enqueue ) {
+ $remaining_items_count = $max_items_to_enqueue - $chunk_count;
+ $remaining_items = array_slice( $chunked_ids, 0, $remaining_items_count );
+ $remaining_items_with_previous_interval_end = $this->get_chunks_with_preceding_end( $remaining_items, $previous_interval_end );
+ $listener->bulk_enqueue_full_sync_actions( $action_name, $remaining_items_with_previous_interval_end );
+
+ $last_chunk = end( $remaining_items );
+ return array( $remaining_items_count + $chunk_count, end( $last_chunk ) );
+ }
+ $chunked_ids_with_previous_end = $this->get_chunks_with_preceding_end( $chunked_ids, $previous_interval_end );
+
+ $listener->bulk_enqueue_full_sync_actions( $action_name, $chunked_ids_with_previous_end );
+
+ $chunk_count += count( $chunked_ids );
+ $page++;
+ // The $ids are ordered in descending order.
+ $previous_interval_end = end( $ids );
+ }
+
+ if ( $wpdb->last_error ) {
+ // return the values that were passed in so all these chunks get retried.
+ return array( $max_items_to_enqueue, $state );
+ }
+
+ return array( $chunk_count, true );
+ }
+
+ /**
+ * Given the Module Full Sync Configuration and Status return the next chunk of items to send.
+ *
+ * @param array $config This module Full Sync configuration.
+ * @param array $status This module Full Sync status.
+ * @param int $chunk_size Chunk size.
+ *
+ * @return array|object|null
+ */
+ public function get_next_chunk( $config, $status, $chunk_size ) {
+ // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ global $wpdb;
+ return $wpdb->get_col(
+ <<<SQL
+SELECT {$this->id_field()}
+FROM {$wpdb->{$this->table_name()}}
+WHERE {$this->get_where_sql( $config )}
+AND {$this->id_field()} < {$status['last_sent']}
+ORDER BY {$this->id_field()}
+DESC LIMIT {$chunk_size}
+SQL
+ );
+ // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ }
+
+ /**
+ * Return the initial last sent object.
+ *
+ * @return string|array initial status.
+ */
+ public function get_initial_last_sent() {
+ return '~0';
+ }
+
+ /**
+ * Immediately send all items of a sync type as an action.
+ *
+ * @access protected
+ *
+ * @param string $config Full sync configuration for this module.
+ * @param array $status the current module full sync status.
+ * @param float $send_until timestamp until we want this request to send full sync events.
+ *
+ * @return array Status, the module full sync status updated.
+ */
+ public function send_full_sync_actions( $config, $status, $send_until ) {
+ global $wpdb;
+
+ if ( empty( $status['last_sent'] ) ) {
+ $status['last_sent'] = $this->get_initial_last_sent();
+ }
+
+ $limits = Settings::get_setting( 'full_sync_limits' )[ $this->name() ];
+
+ $chunks_sent = 0;
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
+ while ( $objects = $this->get_next_chunk( $config, $status, $limits['chunk_size'] ) ) {
+ if ( $chunks_sent++ === $limits['max_chunks'] || microtime( true ) >= $send_until ) {
+ return $status;
+ }
+
+ $result = $this->send_action( 'jetpack_full_sync_' . $this->name(), array( $objects, $status['last_sent'] ) );
+
+ if ( is_wp_error( $result ) || $wpdb->last_error ) {
+ $status['error'] = true;
+ return $status;
+ }
+ // The $ids are ordered in descending order.
+ $status['last_sent'] = end( $objects );
+ $status['sent'] += count( $objects );
+ }
+
+ if ( ! $wpdb->last_error ) {
+ $status['finished'] = true;
+ }
+
+ return $status;
+ }
+
+ /**
+ * Immediately sends a single item without firing or enqueuing it
+ *
+ * @param string $action_name The action.
+ * @param array $data The data associated with the action.
+ */
+ public function send_action( $action_name, $data = null ) {
+ $sender = Sender::get_instance();
+ return $sender->send_action( $action_name, $data );
+ }
+
+ /**
+ * Retrieve chunk IDs with previous interval end.
+ *
+ * @access protected
+ *
+ * @param array $chunks All remaining items.
+ * @param int $previous_interval_end The last item from the previous interval.
+ * @return array Chunk IDs with the previous interval end.
+ */
+ protected function get_chunks_with_preceding_end( $chunks, $previous_interval_end ) {
+ $chunks_with_ends = array();
+ foreach ( $chunks as $chunk ) {
+ $chunks_with_ends[] = array(
+ 'ids' => $chunk,
+ 'previous_end' => $previous_interval_end,
+ );
+ // Chunks are ordered in descending order.
+ $previous_interval_end = end( $chunk );
+ }
+ return $chunks_with_ends;
+ }
+
+ /**
+ * Get metadata of a particular object type within the designated meta key whitelist.
+ *
+ * @access protected
+ *
+ * @todo Refactor to use $wpdb->prepare() on the SQL query.
+ *
+ * @param array $ids Object IDs.
+ * @param string $meta_type Meta type.
+ * @param array $meta_key_whitelist Meta key whitelist.
+ * @return array Unserialized meta values.
+ */
+ protected function get_metadata( $ids, $meta_type, $meta_key_whitelist ) {
+ global $wpdb;
+ $table = _get_meta_table( $meta_type );
+ $id = $meta_type . '_id';
+ if ( ! $table ) {
+ return array();
+ }
+
+ $private_meta_whitelist_sql = "'" . implode( "','", array_map( 'esc_sql', $meta_key_whitelist ) ) . "'";
+
+ return array_map(
+ array( $this, 'unserialize_meta' ),
+ $wpdb->get_results(
+ // phpcs:disable WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQL.NotPrepared
+ "SELECT $id, meta_key, meta_value, meta_id FROM $table WHERE $id IN ( " . implode( ',', wp_parse_id_list( $ids ) ) . ' )' .
+ " AND meta_key IN ( $private_meta_whitelist_sql ) ",
+ // phpcs:enable WordPress.DB.PreparedSQL.InterpolatedNotPrepared, WordPress.DB.PreparedSQL.NotPrepared
+ OBJECT
+ )
+ );
+ }
+
+ /**
+ * Initialize listeners for the particular meta type.
+ *
+ * @access public
+ *
+ * @param string $meta_type Meta type.
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners_for_meta_type( $meta_type, $callable ) {
+ add_action( "added_{$meta_type}_meta", $callable, 10, 4 );
+ add_action( "updated_{$meta_type}_meta", $callable, 10, 4 );
+ add_action( "deleted_{$meta_type}_meta", $callable, 10, 4 );
+ }
+
+ /**
+ * Initialize meta whitelist handler for the particular meta type.
+ *
+ * @access public
+ *
+ * @param string $meta_type Meta type.
+ * @param callable $whitelist_handler Action handler callable.
+ */
+ public function init_meta_whitelist_handler( $meta_type, $whitelist_handler ) {
+ add_filter( "jetpack_sync_before_enqueue_added_{$meta_type}_meta", $whitelist_handler );
+ add_filter( "jetpack_sync_before_enqueue_updated_{$meta_type}_meta", $whitelist_handler );
+ add_filter( "jetpack_sync_before_enqueue_deleted_{$meta_type}_meta", $whitelist_handler );
+ }
+
+ /**
+ * Retrieve the term relationships for the specified object IDs.
+ *
+ * @access protected
+ *
+ * @todo This feels too specific to be in the abstract sync Module class. Move it?
+ *
+ * @param array $ids Object IDs.
+ * @return array Term relationships - object ID and term taxonomy ID pairs.
+ */
+ protected function get_term_relationships( $ids ) {
+ global $wpdb;
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ return $wpdb->get_results( "SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships WHERE object_id IN ( " . implode( ',', wp_parse_id_list( $ids ) ) . ' )', OBJECT );
+ }
+
+ /**
+ * Unserialize the value of a meta object, if necessary.
+ *
+ * @access public
+ *
+ * @param object $meta Meta object.
+ * @return object Meta object with possibly unserialized value.
+ */
+ public function unserialize_meta( $meta ) {
+ $meta->meta_value = maybe_unserialize( $meta->meta_value );
+ return $meta;
+ }
+
+ /**
+ * Retrieve a set of objects by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ if ( empty( $ids ) || empty( $object_type ) ) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ( (array) $ids as $id ) {
+ $object = $this->get_object_by_id( $object_type, $id );
+
+ // Only add object if we have the object.
+ if ( $object ) {
+ $objects[ $id ] = $object;
+ }
+ }
+
+ return $objects;
+ }
+
+ /**
+ * Gets a list of minimum and maximum object ids for each batch based on the given batch size.
+ *
+ * @access public
+ *
+ * @param int $batch_size The batch size for objects.
+ * @param string|bool $where_sql The sql where clause minus 'WHERE', or false if no where clause is needed.
+ *
+ * @return array|bool An array of min and max ids for each batch. FALSE if no table can be found.
+ */
+ public function get_min_max_object_ids_for_batches( $batch_size, $where_sql = false ) {
+ global $wpdb;
+
+ if ( ! $this->table_name() ) {
+ return false;
+ }
+
+ $results = array();
+ $table = $wpdb->{$this->table_name()};
+ $current_max = 0;
+ $current_min = 1;
+ $id_field = $this->id_field();
+ $replicastore = new Replicastore();
+
+ $total = $replicastore->get_min_max_object_id(
+ $id_field,
+ $table,
+ $where_sql,
+ false
+ );
+
+ while ( $total->max > $current_max ) {
+ $where = $where_sql ?
+ $where_sql . " AND $id_field > $current_max" :
+ "$id_field > $current_max";
+ $result = $replicastore->get_min_max_object_id(
+ $id_field,
+ $table,
+ $where,
+ $batch_size
+ );
+ if ( empty( $result->min ) && empty( $result->max ) ) {
+ // Our query produced no min and max. We can assume the min from the previous query,
+ // and the total max we found in the initial query.
+ $current_max = (int) $total->max;
+ $result = (object) array(
+ 'min' => $current_min,
+ 'max' => $current_max,
+ );
+ } else {
+ $current_min = (int) $result->min;
+ $current_max = (int) $result->max;
+ }
+ $results[] = $result;
+ }
+
+ return $results;
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) {
+ global $wpdb;
+ $table = $wpdb->{$this->table_name()};
+ $where = $this->get_where_sql( $config );
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ return $wpdb->get_var( "SELECT COUNT(*) FROM $table WHERE $where" );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause, or `null` if no comments are specified in the module config.
+ */
+ public function get_where_sql( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return '1=1';
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php
new file mode 100644
index 00000000..defa700e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php
@@ -0,0 +1,252 @@
+<?php
+/**
+ * Network Options sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Defaults;
+
+/**
+ * Class to handle sync for network options.
+ */
+class Network_Options extends Module {
+ /**
+ * Whitelist for network options we want to sync.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $network_options_whitelist;
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'network_options';
+ }
+
+ /**
+ * Initialize network options action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ // Multi site network options.
+ add_action( 'add_site_option', $callable, 10, 2 );
+ add_action( 'update_site_option', $callable, 10, 3 );
+ add_action( 'delete_site_option', $callable, 10, 1 );
+
+ $whitelist_network_option_handler = array( $this, 'whitelist_network_options' );
+ add_filter( 'jetpack_sync_before_enqueue_delete_site_option', $whitelist_network_option_handler );
+ add_filter( 'jetpack_sync_before_enqueue_add_site_option', $whitelist_network_option_handler );
+ add_filter( 'jetpack_sync_before_enqueue_update_site_option', $whitelist_network_option_handler );
+ }
+
+ /**
+ * Initialize network options action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_network_options', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // Full sync.
+ add_filter(
+ 'jetpack_sync_before_send_jetpack_full_sync_network_options',
+ array(
+ $this,
+ 'expand_network_options',
+ )
+ );
+ }
+
+ /**
+ * Set module defaults.
+ * Define the network options whitelist based on the default one.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ $this->network_options_whitelist = Defaults::$default_network_options_whitelist;
+ }
+
+ /**
+ * Enqueue the network options actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all options to the server
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean Whether to expand options (should always be true)
+ */
+ do_action( 'jetpack_full_sync_network_options', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the network options actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $state This module Full Sync status.
+ *
+ * @return array This module Full Sync status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_network_options', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_network_options' );
+ }
+
+ /**
+ * Retrieve all network options as per the current network options whitelist.
+ *
+ * @access public
+ *
+ * @return array All network options.
+ */
+ public function get_all_network_options() {
+ $options = array();
+ foreach ( $this->network_options_whitelist as $option ) {
+ $options[ $option ] = get_site_option( $option );
+ }
+
+ return $options;
+ }
+
+ /**
+ * Set the network options whitelist.
+ *
+ * @access public
+ *
+ * @param array $options The new network options whitelist.
+ */
+ public function set_network_options_whitelist( $options ) {
+ $this->network_options_whitelist = $options;
+ }
+
+ /**
+ * Get the network options whitelist.
+ *
+ * @access public
+ *
+ * @return array The network options whitelist.
+ */
+ public function get_network_options_whitelist() {
+ return $this->network_options_whitelist;
+ }
+
+ /**
+ * Reject non-whitelisted network options.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array|false $args The hook parameters, false if not a whitelisted network option.
+ */
+ public function whitelist_network_options( $args ) {
+ if ( ! $this->is_whitelisted_network_option( $args[0] ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Whether the option is a whitelisted network option.
+ *
+ * @access public
+ *
+ * @param string $option Option name.
+ * @return boolean True if this is a whitelisted network option.
+ */
+ public function is_whitelisted_network_option( $option ) {
+ return in_array( $option, $this->network_options_whitelist, true );
+ }
+
+ /**
+ * Expand the network options within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function expand_network_options( $args ) {
+ if ( $args[0] ) {
+ return $this->get_all_network_options();
+ }
+
+ return $args;
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return count( $this->network_options_whitelist );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php
new file mode 100644
index 00000000..5c156512
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php
@@ -0,0 +1,481 @@
+<?php
+/**
+ * Options sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Defaults;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for options.
+ */
+class Options extends Module {
+ /**
+ * Whitelist for options we want to sync.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $options_whitelist;
+
+ /**
+ * Contentless options we want to sync.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $options_contentless;
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'options';
+ }
+
+ /**
+ * Initialize options action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ // Options.
+ add_action( 'added_option', $callable, 10, 2 );
+ add_action( 'updated_option', $callable, 10, 3 );
+ add_action( 'deleted_option', $callable, 10, 1 );
+
+ // Sync Core Icon: Detect changes in Core's Site Icon and make it syncable.
+ add_action( 'add_option_site_icon', array( $this, 'jetpack_sync_core_icon' ) );
+ add_action( 'update_option_site_icon', array( $this, 'jetpack_sync_core_icon' ) );
+ add_action( 'delete_option_site_icon', array( $this, 'jetpack_sync_core_icon' ) );
+
+ // Handle deprecated options.
+ add_filter( 'jetpack_options_whitelist', array( $this, 'add_deprecated_options' ) );
+
+ $whitelist_option_handler = array( $this, 'whitelist_options' );
+ add_filter( 'jetpack_sync_before_enqueue_deleted_option', $whitelist_option_handler );
+ add_filter( 'jetpack_sync_before_enqueue_added_option', $whitelist_option_handler );
+ add_filter( 'jetpack_sync_before_enqueue_updated_option', $whitelist_option_handler );
+ }
+
+ /**
+ * Initialize options action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_options', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_options', array( $this, 'expand_options' ) );
+ }
+
+ /**
+ * Set module defaults.
+ * Define the options whitelist and contentless options.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ $this->update_options_whitelist();
+ $this->update_options_contentless();
+ }
+
+ /**
+ * Set module defaults at a later time.
+ *
+ * @access public
+ */
+ public function set_late_default() {
+ /** This filter is already documented in json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php */
+ $late_options = apply_filters( 'jetpack_options_whitelist', array() );
+ if ( ! empty( $late_options ) && is_array( $late_options ) ) {
+ $this->options_whitelist = array_merge( $this->options_whitelist, $late_options );
+ }
+ }
+
+ /**
+ * Add old deprecated options to the list of options to keep in sync.
+ *
+ * @since 1.14.0
+ *
+ * @access public
+ *
+ * @param array $options The default list of site options.
+ */
+ public function add_deprecated_options( $options ) {
+ global $wp_version;
+
+ $deprecated_options = array(
+ 'blacklist_keys' => '5.5-alpha', // Replaced by disallowed_keys.
+ 'comment_whitelist' => '5.5-alpha', // Replaced by comment_previously_approved.
+ );
+
+ foreach ( $deprecated_options as $option => $version ) {
+ if ( version_compare( $wp_version, $version, '<=' ) ) {
+ $options[] = $option;
+ }
+ }
+
+ return $options;
+ }
+
+ /**
+ * Enqueue the options actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all options to the server
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean Whether to expand options (should always be true)
+ */
+ do_action( 'jetpack_full_sync_options', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the options actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $state This module Full Sync status.
+ *
+ * @return array This module Full Sync status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_options', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return int Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_options' );
+ }
+
+ /**
+ * Retrieve all options as per the current options whitelist.
+ * Public so that we don't have to store so much data all the options twice.
+ *
+ * @access public
+ *
+ * @return array All options.
+ */
+ public function get_all_options() {
+ $options = array();
+ $random_string = wp_generate_password();
+ foreach ( $this->options_whitelist as $option ) {
+ if ( 0 === strpos( $option, Settings::SETTINGS_OPTION_PREFIX ) ) {
+ $option_value = Settings::get_setting( str_replace( Settings::SETTINGS_OPTION_PREFIX, '', $option ) );
+ $options[ $option ] = $option_value;
+ } else {
+ $option_value = get_option( $option, $random_string );
+ if ( $option_value !== $random_string ) {
+ $options[ $option ] = $option_value;
+ }
+ }
+ }
+
+ // Add theme mods.
+ $theme_mods_option = 'theme_mods_' . get_option( 'stylesheet' );
+ $theme_mods_value = get_option( $theme_mods_option, $random_string );
+ if ( $theme_mods_value === $random_string ) {
+ return $options;
+ }
+ $this->filter_theme_mods( $theme_mods_value );
+ $options[ $theme_mods_option ] = $theme_mods_value;
+ return $options;
+ }
+
+ /**
+ * Update the options whitelist to the default one.
+ *
+ * @access public
+ */
+ public function update_options_whitelist() {
+ $this->options_whitelist = Defaults::get_options_whitelist();
+ }
+
+ /**
+ * Set the options whitelist.
+ *
+ * @access public
+ *
+ * @param array $options The new options whitelist.
+ */
+ public function set_options_whitelist( $options ) {
+ $this->options_whitelist = $options;
+ }
+
+ /**
+ * Get the options whitelist.
+ *
+ * @access public
+ *
+ * @return array The options whitelist.
+ */
+ public function get_options_whitelist() {
+ return $this->options_whitelist;
+ }
+
+ /**
+ * Update the contentless options to the defaults.
+ *
+ * @access public
+ */
+ public function update_options_contentless() {
+ $this->options_contentless = Defaults::get_options_contentless();
+ }
+
+ /**
+ * Get the contentless options.
+ *
+ * @access public
+ *
+ * @return array Array of the contentless options.
+ */
+ public function get_options_contentless() {
+ return $this->options_contentless;
+ }
+
+ /**
+ * Reject any options that aren't whitelisted or contentless.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function whitelist_options( $args ) {
+ // Reject non-whitelisted options.
+ if ( ! $this->is_whitelisted_option( $args[0] ) ) {
+ return false;
+ }
+
+ // Filter our weird array( false ) value for theme_mods_*.
+ if ( 'theme_mods_' === substr( $args[0], 0, 11 ) ) {
+ $this->filter_theme_mods( $args[1] );
+ if ( isset( $args[2] ) ) {
+ $this->filter_theme_mods( $args[2] );
+ }
+ }
+
+ // Set value(s) of contentless option to empty string(s).
+ if ( $this->is_contentless_option( $args[0] ) ) {
+ // Create a new array matching length of $args, containing empty strings.
+ $empty = array_fill( 0, count( $args ), '' );
+ $empty[0] = $args[0];
+ return $empty;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Whether a certain option is whitelisted for sync.
+ *
+ * @access public
+ *
+ * @param string $option Option name.
+ * @return boolean Whether the option is whitelisted.
+ */
+ public function is_whitelisted_option( $option ) {
+ return in_array( $option, $this->options_whitelist, true ) || 'theme_mods_' === substr( $option, 0, 11 );
+ }
+
+ /**
+ * Whether a certain option is a contentless one.
+ *
+ * @access private
+ *
+ * @param string $option Option name.
+ * @return boolean Whether the option is contentless.
+ */
+ private function is_contentless_option( $option ) {
+ return in_array( $option, $this->options_contentless, true );
+ }
+
+ /**
+ * Filters out falsy values from theme mod options.
+ *
+ * @access private
+ *
+ * @param array $value Option value.
+ */
+ private function filter_theme_mods( &$value ) {
+ if ( is_array( $value ) && isset( $value[0] ) ) {
+ unset( $value[0] );
+ }
+ }
+
+ /**
+ * Handle changes in the core site icon and sync them.
+ *
+ * @access public
+ */
+ public function jetpack_sync_core_icon() {
+ $url = get_site_icon_url();
+
+ $jetpack_url = \Jetpack_Options::get_option( 'site_icon_url' );
+ if ( defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ if ( ! function_exists( 'jetpack_site_icon_url' ) ) {
+ require_once JETPACK__PLUGIN_DIR . 'modules/site-icon/site-icon-functions.php';
+ }
+ $jetpack_url = jetpack_site_icon_url();
+ }
+
+ // If there's a core icon, maybe update the option. If not, fall back to Jetpack's.
+ if ( ! empty( $url ) && $jetpack_url !== $url ) {
+ // This is the option that is synced with dotcom.
+ \Jetpack_Options::update_option( 'site_icon_url', $url );
+ } elseif ( empty( $url ) ) {
+ \Jetpack_Options::delete_option( 'site_icon_url' );
+ }
+ }
+
+ /**
+ * Expand all options within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function expand_options( $args ) {
+ if ( $args[0] ) {
+ return $this->get_all_options();
+ }
+
+ return $args;
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return count( Defaults::get_options_whitelist() );
+ }
+
+ /**
+ * Retrieve a set of options by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ if ( empty( $ids ) || empty( $object_type ) || 'option' !== $object_type ) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ( (array) $ids as $id ) {
+ $object = $this->get_object_by_id( $object_type, $id );
+
+ // Only add object if we have the object.
+ if ( 'OPTION-DOES-NOT-EXIST' !== $object ) {
+ if ( 'all' === $id ) {
+ // If all was requested it contains all options and can simply be returned.
+ return $object;
+ }
+ $objects[ $id ] = $object;
+ }
+ }
+
+ return $objects;
+ }
+
+ /**
+ * Retrieve an option by its name.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param string $id ID of the sync object.
+ * @return mixed Value of Option or 'OPTION-DOES-NOT-EXIST' if not found.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'option' === $object_type ) {
+ // Utilize Random string as default value to distinguish between false and not exist.
+ $random_string = wp_generate_password();
+ // Only whitelisted options can be returned.
+ if ( in_array( $id, $this->options_whitelist, true ) ) {
+ if ( 0 === strpos( $id, Settings::SETTINGS_OPTION_PREFIX ) ) {
+ $option_value = Settings::get_setting( str_replace( Settings::SETTINGS_OPTION_PREFIX, '', $id ) );
+ return $option_value;
+ } else {
+ $option_value = get_option( $id, $random_string );
+ if ( $option_value !== $random_string ) {
+ return $option_value;
+ }
+ }
+ } elseif ( 'all' === $id ) {
+ return $this->get_all_options();
+ }
+ }
+
+ return 'OPTION-DOES-NOT-EXIST';
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php
new file mode 100644
index 00000000..b244834f
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php
@@ -0,0 +1,420 @@
+<?php
+/**
+ * Plugins sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+
+/**
+ * Class to handle sync for plugins.
+ */
+class Plugins extends Module {
+ /**
+ * Action handler callable.
+ *
+ * @access private
+ *
+ * @var callable
+ */
+ private $action_handler;
+
+ /**
+ * Information about plugins we store temporarily.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $plugin_info = array();
+
+ /**
+ * List of all plugins in the installation.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $plugins = array();
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'plugins';
+ }
+
+ /**
+ * Initialize plugins action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ $this->action_handler = $callable;
+
+ add_action( 'deleted_plugin', array( $this, 'deleted_plugin' ), 10, 2 );
+ add_action( 'activated_plugin', $callable, 10, 2 );
+ add_action( 'deactivated_plugin', $callable, 10, 2 );
+ add_action( 'delete_plugin', array( $this, 'delete_plugin' ) );
+ add_filter( 'upgrader_pre_install', array( $this, 'populate_plugins' ), 10, 1 );
+ add_action( 'upgrader_process_complete', array( $this, 'on_upgrader_completion' ), 10, 2 );
+ add_action( 'jetpack_plugin_installed', $callable, 10, 1 );
+ add_action( 'jetpack_plugin_update_failed', $callable, 10, 4 );
+ add_action( 'jetpack_plugins_updated', $callable, 10, 2 );
+ add_action( 'admin_action_update', array( $this, 'check_plugin_edit' ) );
+ add_action( 'jetpack_edited_plugin', $callable, 10, 2 );
+ add_action( 'wp_ajax_edit-theme-plugin-file', array( $this, 'plugin_edit_ajax' ), 0 );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_activated_plugin', array( $this, 'expand_plugin_data' ) );
+ add_filter( 'jetpack_sync_before_send_deactivated_plugin', array( $this, 'expand_plugin_data' ) );
+ // Note that we don't simply 'expand_plugin_data' on the 'delete_plugin' action here because the plugin file is deleted when that action finishes.
+ }
+
+ /**
+ * Fetch and populate all current plugins before upgrader installation.
+ *
+ * @access public
+ *
+ * @param bool|WP_Error $response Install response, true if successful, WP_Error if not.
+ */
+ public function populate_plugins( $response ) {
+ if ( ! function_exists( 'get_plugins' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
+ }
+ $this->plugins = get_plugins();
+ return $response;
+ }
+
+ /**
+ * Handler for the upgrader success finishes.
+ *
+ * @access public
+ *
+ * @param \WP_Upgrader $upgrader Upgrader instance.
+ * @param array $details Array of bulk item update data.
+ */
+ public function on_upgrader_completion( $upgrader, $details ) {
+ if ( ! isset( $details['type'] ) ) {
+ return;
+ }
+ if ( 'plugin' !== $details['type'] ) {
+ return;
+ }
+
+ if ( ! isset( $details['action'] ) ) {
+ return;
+ }
+
+ $plugins = ( isset( $details['plugins'] ) ? $details['plugins'] : null );
+ if ( empty( $plugins ) ) {
+ $plugins = ( isset( $details['plugin'] ) ? array( $details['plugin'] ) : null );
+ }
+
+ // For plugin installer.
+ if ( empty( $plugins ) && method_exists( $upgrader, 'plugin_info' ) ) {
+ $plugins = array( $upgrader->plugin_info() );
+ }
+
+ if ( empty( $plugins ) ) {
+ return; // We shouldn't be here.
+ }
+
+ switch ( $details['action'] ) {
+ case 'update':
+ $state = array(
+ 'is_autoupdate' => Jetpack_Constants::is_true( 'JETPACK_PLUGIN_AUTOUPDATE' ),
+ );
+ $errors = $this->get_errors( $upgrader->skin );
+ if ( $errors ) {
+ foreach ( $plugins as $slug ) {
+ /**
+ * Sync that a plugin update failed
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.8.0
+ *
+ * @module sync
+ *
+ * @param string $plugin , Plugin slug
+ * @param string Error code
+ * @param string Error message
+ */
+ do_action( 'jetpack_plugin_update_failed', $this->get_plugin_info( $slug ), $errors['code'], $errors['message'], $state );
+ }
+
+ return;
+ }
+ /**
+ * Sync that a plugin update
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.8.0
+ *
+ * @module sync
+ *
+ * @param array () $plugin, Plugin Data
+ */
+ do_action( 'jetpack_plugins_updated', array_map( array( $this, 'get_plugin_info' ), $plugins ), $state );
+ break;
+ case 'install':
+ }
+
+ if ( 'install' === $details['action'] ) {
+ /**
+ * Signals to the sync listener that a plugin was installed and a sync action
+ * reflecting the installation and the plugin info should be sent
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.8.0
+ *
+ * @module sync
+ *
+ * @param array () $plugin, Plugin Data
+ */
+ do_action( 'jetpack_plugin_installed', array_map( array( $this, 'get_plugin_info' ), $plugins ) );
+
+ return;
+ }
+ }
+
+ /**
+ * Retrieve the plugin information by a plugin slug.
+ *
+ * @access private
+ *
+ * @param string $slug Plugin slug.
+ * @return array Plugin information.
+ */
+ private function get_plugin_info( $slug ) {
+ $plugins = get_plugins(); // Get the most up to date info.
+ if ( isset( $plugins[ $slug ] ) ) {
+ return array_merge( array( 'slug' => $slug ), $plugins[ $slug ] );
+ };
+ // Try grabbing the info from before the update.
+ return isset( $this->plugins[ $slug ] ) ? array_merge( array( 'slug' => $slug ), $this->plugins[ $slug ] ) : array( 'slug' => $slug );
+ }
+
+ /**
+ * Retrieve upgrade errors.
+ *
+ * @access private
+ *
+ * @param \Automatic_Upgrader_Skin|\WP_Upgrader_Skin $skin The upgrader skin being used.
+ * @return array|boolean Error on error, false otherwise.
+ */
+ private function get_errors( $skin ) {
+ $errors = method_exists( $skin, 'get_errors' ) ? $skin->get_errors() : null;
+ if ( is_wp_error( $errors ) ) {
+ $error_code = $errors->get_error_code();
+ if ( ! empty( $error_code ) ) {
+ return array(
+ 'code' => $error_code,
+ 'message' => $errors->get_error_message(),
+ );
+ }
+ }
+
+ if ( isset( $skin->result ) ) {
+ $errors = $skin->result;
+ if ( is_wp_error( $errors ) ) {
+ return array(
+ 'code' => $errors->get_error_code(),
+ 'message' => $errors->get_error_message(),
+ );
+ }
+
+ if ( empty( $skin->result ) ) {
+ return array(
+ 'code' => 'unknown',
+ 'message' => __( 'Unknown Plugin Update Failure', 'jetpack-sync' ),
+ );
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Handle plugin edit in the administration.
+ *
+ * @access public
+ *
+ * @todo The `admin_action_update` hook is called only for logged in users, but maybe implement nonce verification?
+ */
+ public function check_plugin_edit() {
+ $screen = get_current_screen();
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ if ( 'plugin-editor' !== $screen->base || ! isset( $_POST['newcontent'] ) || ! isset( $_POST['plugin'] ) ) {
+ return;
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ $plugin = $_POST['plugin'];
+ $plugins = get_plugins();
+ if ( ! isset( $plugins[ $plugin ] ) ) {
+ return;
+ }
+
+ /**
+ * Helps Sync log that a plugin was edited
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param string $plugin, Plugin slug
+ * @param mixed $plugins[ $plugin ], Array of plugin data
+ */
+ do_action( 'jetpack_edited_plugin', $plugin, $plugins[ $plugin ] );
+ }
+
+ /**
+ * Handle plugin ajax edit in the administration.
+ *
+ * @access public
+ *
+ * @todo Update this method to use WP_Filesystem instead of fopen/fclose.
+ */
+ public function plugin_edit_ajax() {
+ // This validation is based on wp_edit_theme_plugin_file().
+ $args = wp_unslash( $_POST );
+ if ( empty( $args['file'] ) ) {
+ return;
+ }
+
+ $file = $args['file'];
+ if ( 0 !== validate_file( $file ) ) {
+ return;
+ }
+
+ if ( ! isset( $args['newcontent'] ) ) {
+ return;
+ }
+
+ if ( ! isset( $args['nonce'] ) ) {
+ return;
+ }
+
+ if ( empty( $args['plugin'] ) ) {
+ return;
+ }
+
+ $plugin = $args['plugin'];
+ if ( ! current_user_can( 'edit_plugins' ) ) {
+ return;
+ }
+
+ if ( ! wp_verify_nonce( $args['nonce'], 'edit-plugin_' . $file ) ) {
+ return;
+ }
+ $plugins = get_plugins();
+ if ( ! array_key_exists( $plugin, $plugins ) ) {
+ return;
+ }
+
+ if ( 0 !== validate_file( $file, get_plugin_files( $plugin ) ) ) {
+ return;
+ }
+
+ $real_file = WP_PLUGIN_DIR . '/' . $file;
+
+ if ( ! is_writeable( $real_file ) ) {
+ return;
+ }
+
+ // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fopen
+ $file_pointer = fopen( $real_file, 'w+' );
+ if ( false === $file_pointer ) {
+ return;
+ }
+ // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fclose
+ fclose( $file_pointer );
+ /**
+ * This action is documented already in this file
+ */
+ do_action( 'jetpack_edited_plugin', $plugin, $plugins[ $plugin ] );
+ }
+
+ /**
+ * Handle plugin deletion.
+ *
+ * @access public
+ *
+ * @param string $plugin_path Path to the plugin main file.
+ */
+ public function delete_plugin( $plugin_path ) {
+ $full_plugin_path = WP_PLUGIN_DIR . DIRECTORY_SEPARATOR . $plugin_path;
+
+ // Checking for file existence because some sync plugin module tests simulate plugin installation and deletion without putting file on disk.
+ if ( file_exists( $full_plugin_path ) ) {
+ $all_plugin_data = get_plugin_data( $full_plugin_path );
+ $data = array(
+ 'name' => $all_plugin_data['Name'],
+ 'version' => $all_plugin_data['Version'],
+ );
+ } else {
+ $data = array(
+ 'name' => $plugin_path,
+ 'version' => 'unknown',
+ );
+ }
+
+ $this->plugin_info[ $plugin_path ] = $data;
+ }
+
+ /**
+ * Invoked after plugin deletion.
+ *
+ * @access public
+ *
+ * @param string $plugin_path Path to the plugin main file.
+ * @param boolean $is_deleted Whether the plugin was deleted successfully.
+ */
+ public function deleted_plugin( $plugin_path, $is_deleted ) {
+ call_user_func( $this->action_handler, $plugin_path, $is_deleted, $this->plugin_info[ $plugin_path ] );
+ unset( $this->plugin_info[ $plugin_path ] );
+ }
+
+ /**
+ * Expand the plugins within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The expanded hook parameters.
+ */
+ public function expand_plugin_data( $args ) {
+ $plugin_path = $args[0];
+ $plugin_data = array();
+
+ if ( ! function_exists( 'get_plugins' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
+ }
+ $all_plugins = get_plugins();
+ if ( isset( $all_plugins[ $plugin_path ] ) ) {
+ $all_plugin_data = $all_plugins[ $plugin_path ];
+ $plugin_data['name'] = $all_plugin_data['Name'];
+ $plugin_data['version'] = $all_plugin_data['Version'];
+ }
+
+ return array(
+ $args[0],
+ $args[1],
+ $plugin_data,
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php
new file mode 100644
index 00000000..b9ea21d1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php
@@ -0,0 +1,771 @@
+<?php
+/**
+ * Posts sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+use Automattic\Jetpack\Roles;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for posts.
+ */
+class Posts extends Module {
+ /**
+ * The post IDs of posts that were just published but not synced yet.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $just_published = array();
+
+ /**
+ * The previous status of posts that we use for calculating post status transitions.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $previous_status = array();
+
+ /**
+ * Action handler callable.
+ *
+ * @access private
+ *
+ * @var callable
+ */
+ private $action_handler;
+
+ /**
+ * Import end.
+ *
+ * @access private
+ *
+ * @todo This appears to be unused - let's remove it.
+ *
+ * @var boolean
+ */
+ private $import_end = false;
+
+ /**
+ * Max bytes allowed for post_content => length.
+ * Current Setting : 5MB.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const MAX_POST_CONTENT_LENGTH = 5000000;
+
+ /**
+ * Max bytes allowed for post meta_value => length.
+ * Current Setting : 2MB.
+ *
+ * @access public
+ *
+ * @var int
+ */
+ const MAX_POST_META_LENGTH = 2000000;
+
+ /**
+ * Default previous post state.
+ * Used for default previous post status.
+ *
+ * @access public
+ *
+ * @var string
+ */
+ const DEFAULT_PREVIOUS_STATE = 'new';
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'posts';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return 'posts';
+ }
+
+ /**
+ * Retrieve a post by its ID.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param int $id ID of the sync object.
+ * @return \WP_Post|bool Filtered \WP_Post object, or false if the object is not a post.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'post' === $object_type ) {
+ $post = get_post( (int) $id );
+ if ( $post ) {
+ return $this->filter_post_content_and_add_links( $post );
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Initialize posts action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ $this->action_handler = $callable;
+
+ add_action( 'wp_insert_post', array( $this, 'wp_insert_post' ), 11, 3 );
+ add_action( 'wp_after_insert_post', array( $this, 'wp_after_insert_post' ), 11, 2 );
+ add_action( 'jetpack_sync_save_post', $callable, 10, 4 );
+
+ add_action( 'deleted_post', $callable, 10 );
+ add_action( 'jetpack_published_post', $callable, 10, 2 );
+ add_filter( 'jetpack_sync_before_enqueue_deleted_post', array( $this, 'filter_blacklisted_post_types_deleted' ) );
+
+ add_action( 'transition_post_status', array( $this, 'save_published' ), 10, 3 );
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_save_post', array( $this, 'filter_blacklisted_post_types' ) );
+
+ // Listen for meta changes.
+ $this->init_listeners_for_meta_type( 'post', $callable );
+ $this->init_meta_whitelist_handler( 'post', array( $this, 'filter_meta' ) );
+
+ add_action( 'jetpack_daily_akismet_meta_cleanup_before', array( $this, 'daily_akismet_meta_cleanup_before' ) );
+ add_action( 'jetpack_daily_akismet_meta_cleanup_after', array( $this, 'daily_akismet_meta_cleanup_after' ) );
+ add_action( 'jetpack_post_meta_batch_delete', $callable, 10, 2 );
+ }
+
+ /**
+ * Before Akismet's daily cleanup of spam detection metadata.
+ *
+ * @access public
+ *
+ * @param array $feedback_ids IDs of feedback posts.
+ */
+ public function daily_akismet_meta_cleanup_before( $feedback_ids ) {
+ remove_action( 'deleted_post_meta', $this->action_handler );
+
+ if ( ! is_array( $feedback_ids ) || count( $feedback_ids ) < 1 ) {
+ return;
+ }
+
+ $ids_chunks = array_chunk( $feedback_ids, 100, false );
+ foreach ( $ids_chunks as $chunk ) {
+ /**
+ * Used for syncing deletion of batch post meta
+ *
+ * @since 1.6.3
+ * @since-jetpack 6.1.0
+ *
+ * @module sync
+ *
+ * @param array $feedback_ids feedback post IDs
+ * @param string $meta_key to be deleted
+ */
+ do_action( 'jetpack_post_meta_batch_delete', $chunk, '_feedback_akismet_values' );
+ }
+ }
+
+ /**
+ * After Akismet's daily cleanup of spam detection metadata.
+ *
+ * @access public
+ *
+ * @param array $feedback_ids IDs of feedback posts.
+ */
+ public function daily_akismet_meta_cleanup_after( $feedback_ids ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ add_action( 'deleted_post_meta', $this->action_handler );
+ }
+
+ /**
+ * Initialize posts action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_posts', $callable ); // Also sends post meta.
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_jetpack_sync_save_post', array( $this, 'expand_jetpack_sync_save_post' ) );
+
+ // meta.
+ add_filter( 'jetpack_sync_before_send_added_post_meta', array( $this, 'trim_post_meta' ) );
+ add_filter( 'jetpack_sync_before_send_updated_post_meta', array( $this, 'trim_post_meta' ) );
+ add_filter( 'jetpack_sync_before_send_deleted_post_meta', array( $this, 'trim_post_meta' ) );
+
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_posts', array( $this, 'expand_post_ids' ) );
+ }
+
+ /**
+ * Enqueue the posts actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ global $wpdb;
+
+ return $this->enqueue_all_ids_as_action( 'jetpack_full_sync_posts', $wpdb->posts, 'ID', $this->get_where_sql( $config ), $max_items_to_enqueue, $state );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @todo Use $wpdb->prepare for the SQL query.
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ global $wpdb;
+
+ $query = "SELECT count(*) FROM $wpdb->posts WHERE " . $this->get_where_sql( $config );
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / self::ARRAY_CHUNK_SIZE );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause, or `null` if no comments are specified in the module config.
+ */
+ public function get_where_sql( $config ) {
+ $where_sql = Settings::get_blacklisted_post_types_sql();
+
+ // Config is a list of post IDs to sync.
+ if ( is_array( $config ) ) {
+ $where_sql .= ' AND ID IN (' . implode( ',', array_map( 'intval', $config ) ) . ')';
+ }
+
+ return $where_sql;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_posts' );
+ }
+
+ /**
+ * Filter meta arguments so that we don't sync meta_values over MAX_POST_META_LENGTH.
+ *
+ * @param array $args action arguments.
+ *
+ * @return array filtered action arguments.
+ */
+ public function trim_post_meta( $args ) {
+ list( $meta_id, $object_id, $meta_key, $meta_value ) = $args;
+ // Explicitly truncate meta_value when it exceeds limit.
+ // Large content will cause OOM issues and break Sync.
+ $serialized_value = maybe_serialize( $meta_value );
+ if ( strlen( $serialized_value ) >= self::MAX_POST_META_LENGTH ) {
+ $meta_value = '';
+ }
+ return array( $meta_id, $object_id, $meta_key, $meta_value );
+ }
+
+ /**
+ * Process content before send.
+ *
+ * @param array $args Arguments of the `wp_insert_post` hook.
+ *
+ * @return array
+ */
+ public function expand_jetpack_sync_save_post( $args ) {
+ list( $post_id, $post, $update, $previous_state ) = $args;
+ return array( $post_id, $this->filter_post_content_and_add_links( $post ), $update, $previous_state );
+ }
+
+ /**
+ * Filter all blacklisted post types.
+ *
+ * @param array $args Hook arguments.
+ * @return array|false Hook arguments, or false if the post type is a blacklisted one.
+ */
+ public function filter_blacklisted_post_types_deleted( $args ) {
+
+ // deleted_post is called after the SQL delete but before cache cleanup.
+ // There is the potential we can't detect post_type at this point.
+ if ( ! $this->is_post_type_allowed( $args[0] ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter all blacklisted post types.
+ *
+ * @param array $args Hook arguments.
+ * @return array|false Hook arguments, or false if the post type is a blacklisted one.
+ */
+ public function filter_blacklisted_post_types( $args ) {
+ $post = $args[1];
+
+ if ( in_array( $post->post_type, Settings::get_setting( 'post_types_blacklist' ), true ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter all meta that is not blacklisted, or is stored for a disallowed post type.
+ *
+ * @param array $args Hook arguments.
+ * @return array|false Hook arguments, or false if meta was filtered.
+ */
+ public function filter_meta( $args ) {
+ if ( $this->is_post_type_allowed( $args[1] ) && $this->is_whitelisted_post_meta( $args[2] ) ) {
+ return $args;
+ }
+
+ return false;
+ }
+
+ /**
+ * Whether a post meta key is whitelisted.
+ *
+ * @param string $meta_key Meta key.
+ * @return boolean Whether the post meta key is whitelisted.
+ */
+ public function is_whitelisted_post_meta( $meta_key ) {
+ // The _wpas_skip_ meta key is used by Publicize.
+ return in_array( $meta_key, Settings::get_setting( 'post_meta_whitelist' ), true ) || ( 0 === strpos( $meta_key, '_wpas_skip_' ) );
+ }
+
+ /**
+ * Whether a post type is allowed.
+ * A post type will be disallowed if it's present in the post type blacklist.
+ *
+ * @param int $post_id ID of the post.
+ * @return boolean Whether the post type is allowed.
+ */
+ public function is_post_type_allowed( $post_id ) {
+ $post = get_post( (int) $post_id );
+
+ if ( isset( $post->post_type ) ) {
+ return ! in_array( $post->post_type, Settings::get_setting( 'post_types_blacklist' ), true );
+ }
+ return false;
+ }
+
+ /**
+ * Remove the embed shortcode.
+ *
+ * @global $wp_embed
+ */
+ public function remove_embed() {
+ global $wp_embed;
+ remove_filter( 'the_content', array( $wp_embed, 'run_shortcode' ), 8 );
+ // remove the embed shortcode since we would do the part later.
+ remove_shortcode( 'embed' );
+ // Attempts to embed all URLs in a post.
+ remove_filter( 'the_content', array( $wp_embed, 'autoembed' ), 8 );
+ }
+
+ /**
+ * Add the embed shortcode.
+ *
+ * @global $wp_embed
+ */
+ public function add_embed() {
+ global $wp_embed;
+ add_filter( 'the_content', array( $wp_embed, 'run_shortcode' ), 8 );
+ // Shortcode placeholder for strip_shortcodes().
+ add_shortcode( 'embed', '__return_false' );
+ // Attempts to embed all URLs in a post.
+ add_filter( 'the_content', array( $wp_embed, 'autoembed' ), 8 );
+ }
+
+ /**
+ * Expands wp_insert_post to include filtered content
+ *
+ * @param \WP_Post $post_object Post object.
+ */
+ public function filter_post_content_and_add_links( $post_object ) {
+ global $post;
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $post = $post_object;
+
+ // Return non existant post.
+ $post_type = get_post_type_object( $post->post_type );
+ if ( empty( $post_type ) || ! is_object( $post_type ) ) {
+ $non_existant_post = new \stdClass();
+ $non_existant_post->ID = $post->ID;
+ $non_existant_post->post_modified = $post->post_modified;
+ $non_existant_post->post_modified_gmt = $post->post_modified_gmt;
+ $non_existant_post->post_status = 'jetpack_sync_non_registered_post_type';
+ $non_existant_post->post_type = $post->post_type;
+
+ return $non_existant_post;
+ }
+ /**
+ * Filters whether to prevent sending post data to .com
+ *
+ * Passing true to the filter will prevent the post data from being sent
+ * to the WordPress.com.
+ * Instead we pass data that will still enable us to do a checksum against the
+ * Jetpacks data but will prevent us from displaying the data on in the API as well as
+ * other services.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean false prevent post data from being synced to WordPress.com
+ * @param mixed $post \WP_Post object
+ */
+ if ( apply_filters( 'jetpack_sync_prevent_sending_post_data', false, $post ) ) {
+ // We only send the bare necessary object to be able to create a checksum.
+ $blocked_post = new \stdClass();
+ $blocked_post->ID = $post->ID;
+ $blocked_post->post_modified = $post->post_modified;
+ $blocked_post->post_modified_gmt = $post->post_modified_gmt;
+ $blocked_post->post_status = 'jetpack_sync_blocked';
+ $blocked_post->post_type = $post->post_type;
+
+ return $blocked_post;
+ }
+
+ // lets not do oembed just yet.
+ $this->remove_embed();
+
+ if ( 0 < strlen( $post->post_password ) ) {
+ $post->post_password = 'auto-' . wp_generate_password( 10, false );
+ }
+
+ // Explicitly omit post_content when it exceeds limit.
+ // Large content will cause OOM issues and break Sync.
+ if ( strlen( $post->post_content ) >= self::MAX_POST_CONTENT_LENGTH ) {
+ $post->post_content = '';
+ }
+
+ /** This filter is already documented in core. wp-includes/post-template.php */
+ if ( Settings::get_setting( 'render_filtered_content' ) && $post_type->public ) {
+ global $shortcode_tags;
+ /**
+ * Filter prevents some shortcodes from expanding.
+ *
+ * Since we can can expand some type of shortcode better on the .com side and make the
+ * expansion more relevant to contexts. For example [galleries] and subscription emails
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.5.0
+ *
+ * @param array of shortcode tags to remove.
+ */
+ $shortcodes_to_remove = apply_filters(
+ 'jetpack_sync_do_not_expand_shortcodes',
+ array(
+ 'gallery',
+ 'slideshow',
+ )
+ );
+ $removed_shortcode_callbacks = array();
+ foreach ( $shortcodes_to_remove as $shortcode ) {
+ if ( isset( $shortcode_tags[ $shortcode ] ) ) {
+ $removed_shortcode_callbacks[ $shortcode ] = $shortcode_tags[ $shortcode ];
+ }
+ }
+
+ array_map( 'remove_shortcode', array_keys( $removed_shortcode_callbacks ) );
+
+ $post->post_content_filtered = apply_filters( 'the_content', $post->post_content );
+ $post->post_excerpt_filtered = apply_filters( 'the_excerpt', $post->post_excerpt );
+
+ foreach ( $removed_shortcode_callbacks as $shortcode => $callback ) {
+ add_shortcode( $shortcode, $callback );
+ }
+ }
+
+ $this->add_embed();
+
+ if ( has_post_thumbnail( $post->ID ) ) {
+ $image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' );
+ if ( is_array( $image_attributes ) && isset( $image_attributes[0] ) ) {
+ $post->featured_image = $image_attributes[0];
+ }
+ }
+
+ $post->permalink = get_permalink( $post->ID );
+ $post->shortlink = wp_get_shortlink( $post->ID );
+
+ if ( function_exists( 'amp_get_permalink' ) ) {
+ $post->amp_permalink = amp_get_permalink( $post->ID );
+ }
+
+ return $post;
+ }
+
+ /**
+ * Handle transition from another post status to a published one.
+ *
+ * @param string $new_status New post status.
+ * @param string $old_status Old post status.
+ * @param \WP_Post $post Post object.
+ */
+ public function save_published( $new_status, $old_status, $post ) {
+ if ( 'publish' === $new_status && 'publish' !== $old_status ) {
+ $this->just_published[ $post->ID ] = true;
+ }
+
+ $this->previous_status[ $post->ID ] = $old_status;
+ }
+
+ /**
+ * When publishing or updating a post, the Gutenberg editor sends two requests:
+ * 1. sent to WP REST API endpoint `wp-json/wp/v2/posts/$id`
+ * 2. sent to wp-admin/post.php `?post=$id&action=edit&classic-editor=1&meta_box=1`
+ *
+ * The 2nd request is to update post meta, which is not supported on WP REST API.
+ * When syncing post data, we will include if this was a meta box update.
+ *
+ * @todo Implement nonce verification.
+ *
+ * @return boolean Whether this is a Gutenberg meta box update.
+ */
+ public function is_gutenberg_meta_box_update() {
+ // phpcs:disable WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
+ return (
+ isset( $_POST['action'], $_GET['classic-editor'], $_GET['meta_box'] ) &&
+ 'editpost' === $_POST['action'] &&
+ '1' === $_GET['classic-editor'] &&
+ '1' === $_GET['meta_box']
+ // phpcs:enable WordPress.Security.NonceVerification.Missing, WordPress.Security.NonceVerification.Recommended
+ );
+ }
+
+ /**
+ * Handler for the wp_insert_post hook.
+ * Called upon creation of a new post.
+ *
+ * @param int $post_ID Post ID.
+ * @param \WP_Post $post Post object.
+ * @param boolean $update Whether this is an existing post being updated or not.
+ */
+ public function wp_insert_post( $post_ID, $post = null, $update = null ) {
+ if ( ! is_numeric( $post_ID ) || is_null( $post ) ) {
+ return;
+ }
+
+ // Workaround for https://github.com/woocommerce/woocommerce/issues/18007.
+ if ( $post && 'shop_order' === $post->post_type ) {
+ $post = get_post( $post_ID );
+ }
+
+ $previous_status = isset( $this->previous_status[ $post_ID ] ) ? $this->previous_status[ $post_ID ] : self::DEFAULT_PREVIOUS_STATE;
+
+ $just_published = isset( $this->just_published[ $post_ID ] ) ? $this->just_published[ $post_ID ] : false;
+
+ $state = array(
+ 'is_auto_save' => (bool) Jetpack_Constants::get_constant( 'DOING_AUTOSAVE' ),
+ 'previous_status' => $previous_status,
+ 'just_published' => $just_published,
+ 'is_gutenberg_meta_box_update' => $this->is_gutenberg_meta_box_update(),
+ );
+ /**
+ * Filter that is used to add to the post flags ( meta data ) when a post gets published
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.8.0
+ *
+ * @param int $post_ID the post ID
+ * @param mixed $post \WP_Post object
+ * @param bool $update Whether this is an existing post being updated or not.
+ * @param mixed $state state
+ *
+ * @module sync
+ */
+ do_action( 'jetpack_sync_save_post', $post_ID, $post, $update, $state );
+ unset( $this->previous_status[ $post_ID ] );
+ }
+
+ /**
+ * Handler for the wp_after_insert_post hook.
+ * Called after creation/update of a new post.
+ *
+ * @param int $post_ID Post ID.
+ * @param \WP_Post $post Post object.
+ **/
+ public function wp_after_insert_post( $post_ID, $post ) {
+ if ( ! is_numeric( $post_ID ) || is_null( $post ) ) {
+ return;
+ }
+
+ // Workaround for https://github.com/woocommerce/woocommerce/issues/18007.
+ if ( $post && 'shop_order' === $post->post_type ) {
+ $post = get_post( $post_ID );
+ }
+
+ $this->send_published( $post_ID, $post );
+ }
+
+ /**
+ * Send a published post for sync.
+ *
+ * @param int $post_ID Post ID.
+ * @param \WP_Post $post Post object.
+ */
+ public function send_published( $post_ID, $post ) {
+ if ( ! isset( $this->just_published[ $post_ID ] ) ) {
+ return;
+ }
+
+ // Post revisions cause race conditions where this send_published add the action before the actual post gets synced.
+ if ( wp_is_post_autosave( $post ) || wp_is_post_revision( $post ) ) {
+ return;
+ }
+
+ $post_flags = array(
+ 'post_type' => $post->post_type,
+ );
+
+ $author_user_object = get_user_by( 'id', $post->post_author );
+ if ( $author_user_object ) {
+ $roles = new Roles();
+
+ $post_flags['author'] = array(
+ 'id' => $post->post_author,
+ 'wpcom_user_id' => get_user_meta( $post->post_author, 'wpcom_user_id', true ),
+ 'display_name' => $author_user_object->display_name,
+ 'email' => $author_user_object->user_email,
+ 'translated_role' => $roles->translate_user_to_role( $author_user_object ),
+ );
+ }
+
+ /**
+ * Filter that is used to add to the post flags ( meta data ) when a post gets published
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.4.0
+ *
+ * @param mixed array post flags that are added to the post
+ * @param mixed $post \WP_Post object
+ */
+ $flags = apply_filters( 'jetpack_published_post_flags', $post_flags, $post );
+
+ // Only Send Pulished Post event if post_type is not blacklisted.
+ if ( ! in_array( $post->post_type, Settings::get_setting( 'post_types_blacklist' ), true ) ) {
+ /**
+ * Action that gets synced when a post type gets published.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.4.0
+ *
+ * @param int $post_ID
+ * @param mixed array $flags post flags that are added to the post
+ */
+ do_action( 'jetpack_published_post', $post_ID, $flags );
+ }
+ unset( $this->just_published[ $post_ID ] );
+
+ /**
+ * Send additional sync action for Activity Log when post is a Customizer publish
+ */
+ if ( 'customize_changeset' === $post->post_type ) {
+ $post_content = json_decode( $post->post_content, true );
+ foreach ( $post_content as $key => $value ) {
+ // Skip if it isn't a widget.
+ if ( 'widget_' !== substr( $key, 0, strlen( 'widget_' ) ) ) {
+ continue;
+ }
+ // Change key from "widget_archives[2]" to "archives-2".
+ $key = str_replace( 'widget_', '', $key );
+ $key = str_replace( '[', '-', $key );
+ $key = str_replace( ']', '', $key );
+
+ global $wp_registered_widgets;
+ if ( isset( $wp_registered_widgets[ $key ] ) ) {
+ $widget_data = array(
+ 'name' => $wp_registered_widgets[ $key ]['name'],
+ 'id' => $key,
+ 'title' => $value['value']['title'],
+ );
+ do_action( 'jetpack_widget_edited', $widget_data );
+ }
+ }
+ }
+ }
+
+ /**
+ * Expand post IDs to post objects within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The expanded hook parameters.
+ */
+ public function expand_post_ids( $args ) {
+ list( $post_ids, $previous_interval_end) = $args;
+
+ $posts = array_filter( array_map( array( 'WP_Post', 'get_instance' ), $post_ids ) );
+ $posts = array_map( array( $this, 'filter_post_content_and_add_links' ), $posts );
+ $posts = array_values( $posts ); // Reindex in case posts were deleted.
+
+ return array(
+ $posts,
+ $this->get_metadata( $post_ids, 'post', Settings::get_setting( 'post_meta_whitelist' ) ),
+ $this->get_term_relationships( $post_ids ),
+ $previous_interval_end,
+ );
+ }
+
+ /**
+ * Gets a list of minimum and maximum object ids for each batch based on the given batch size.
+ *
+ * @access public
+ *
+ * @param int $batch_size The batch size for objects.
+ * @param string|bool $where_sql The sql where clause minus 'WHERE', or false if no where clause is needed.
+ *
+ * @return array|bool An array of min and max ids for each batch. FALSE if no table can be found.
+ */
+ public function get_min_max_object_ids_for_batches( $batch_size, $where_sql = false ) {
+ return parent::get_min_max_object_ids_for_batches( $batch_size, $this->get_where_sql( $where_sql ) );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php
new file mode 100644
index 00000000..ebd62ff8
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Protect sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+
+/**
+ * Class to handle sync for Protect.
+ * Logs BruteProtect failed logins via sync.
+ */
+class Protect extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'protect';
+ }
+
+ /**
+ * Initialize Protect action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callback Action handler callable.
+ */
+ public function init_listeners( $callback ) {
+ add_action( 'jpp_log_failed_attempt', array( $this, 'maybe_log_failed_login_attempt' ) );
+ add_action( 'jetpack_valid_failed_login_attempt', $callback );
+ }
+
+ /**
+ * Maybe log a failed login attempt.
+ *
+ * @access public
+ *
+ * @param array $failed_attempt Failed attempt data.
+ */
+ public function maybe_log_failed_login_attempt( $failed_attempt ) {
+ $protect = \Jetpack_Protect_Module::instance();
+ if ( $protect->has_login_ability() && ! Jetpack_Constants::is_true( 'XMLRPC_REQUEST' ) ) {
+ do_action( 'jetpack_valid_failed_login_attempt', $failed_attempt );
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php
new file mode 100644
index 00000000..83479d1d
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Stats sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Heartbeat;
+
+/**
+ * Class to handle sync for stats.
+ */
+class Stats extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'stats';
+ }
+
+ /**
+ * Initialize stats action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callback Action handler callable.
+ */
+ public function init_listeners( $callback ) {
+ add_action( 'jetpack_heartbeat', array( $this, 'sync_site_stats' ), 20 );
+ add_action( 'jetpack_sync_heartbeat_stats', $callback );
+ }
+
+ /**
+ * This namespaces the action that we sync.
+ * So that we can differentiate it from future actions.
+ *
+ * @access public
+ */
+ public function sync_site_stats() {
+ do_action( 'jetpack_sync_heartbeat_stats' );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_jetpack_sync_heartbeat_stats', array( $this, 'add_stats' ) );
+ }
+
+ /**
+ * Retrieve the stats data for the site.
+ *
+ * @access public
+ *
+ * @return array Stats data.
+ */
+ public function add_stats() {
+ return array( Heartbeat::generate_stats_array() );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php
new file mode 100644
index 00000000..2a7c22e3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php
@@ -0,0 +1,244 @@
+<?php
+/**
+ * Term relationships sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Listener;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for term relationships.
+ */
+class Term_Relationships extends Module {
+
+ /**
+ * Max terms to return in one single query
+ *
+ * @access public
+ *
+ * @const int
+ */
+ const QUERY_LIMIT = 1000;
+
+ /**
+ * Max value for a signed INT in MySQL - https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
+ *
+ * @access public
+ *
+ * @const int
+ */
+ const MAX_INT = 2147483647;
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'term_relationships';
+ }
+
+ /**
+ * The id field in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function id_field() {
+ return 'object_id';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return 'term_relationships';
+ }
+
+ /**
+ * Initialize term relationships action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_term_relationships', $callable, 10, 2 );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_term_relationships', array( $this, 'expand_term_relationships' ) );
+ }
+
+ /**
+ * Enqueue the term relationships actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param object $last_object_enqueued Last object enqueued.
+ *
+ * @return array Number of actions enqueued, and next module state.
+ * @todo This method has similarities with Automattic\Jetpack\Sync\Modules\Module::enqueue_all_ids_as_action. Refactor to keep DRY.
+ * @see Automattic\Jetpack\Sync\Modules\Module::enqueue_all_ids_as_action
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $last_object_enqueued ) {
+ global $wpdb;
+ $term_relationships_full_sync_item_size = Settings::get_setting( 'term_relationships_full_sync_item_size' );
+ $limit = min( $max_items_to_enqueue * $term_relationships_full_sync_item_size, self::QUERY_LIMIT );
+ $items_enqueued_count = 0;
+ $last_object_enqueued = $last_object_enqueued ? $last_object_enqueued : array(
+ 'object_id' => self::MAX_INT,
+ 'term_taxonomy_id' => self::MAX_INT,
+ );
+
+ while ( $limit > 0 ) {
+ /*
+ * SELECT object_id, term_taxonomy_id
+ * FROM $wpdb->term_relationships
+ * WHERE ( object_id = 11 AND term_taxonomy_id < 14 ) OR ( object_id < 11 )
+ * ORDER BY object_id DESC, term_taxonomy_id DESC LIMIT 1000
+ */
+ $objects = $wpdb->get_results( $wpdb->prepare( "SELECT object_id, term_taxonomy_id FROM $wpdb->term_relationships WHERE ( object_id = %d AND term_taxonomy_id < %d ) OR ( object_id < %d ) ORDER BY object_id DESC, term_taxonomy_id DESC LIMIT %d", $last_object_enqueued['object_id'], $last_object_enqueued['term_taxonomy_id'], $last_object_enqueued['object_id'], $limit ), ARRAY_A );
+ // Request term relationships in groups of N for efficiency.
+ $objects_count = count( $objects );
+ if ( ! count( $objects ) ) {
+ return array( $items_enqueued_count, true );
+ }
+ $items = array_chunk( $objects, $term_relationships_full_sync_item_size );
+ $last_object_enqueued = $this->bulk_enqueue_full_sync_term_relationships( $items, $last_object_enqueued );
+ $items_enqueued_count += count( $items );
+ $limit = min( $limit - $objects_count, self::QUERY_LIMIT );
+ }
+
+ // We need to do this extra check in case $max_items_to_enqueue * $term_relationships_full_sync_item_size == relationships objects left.
+ $count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->term_relationships WHERE ( object_id = %d AND term_taxonomy_id < %d ) OR ( object_id < %d ) ORDER BY object_id DESC, term_taxonomy_id DESC LIMIT %d", $last_object_enqueued['object_id'], $last_object_enqueued['term_taxonomy_id'], $last_object_enqueued['object_id'], 1 ) );
+ if ( 0 === (int) $count ) {
+ return array( $items_enqueued_count, true );
+ }
+
+ return array( $items_enqueued_count, $last_object_enqueued );
+ }
+
+ /**
+ * Return the initial last sent object.
+ *
+ * @return string|array initial status.
+ */
+ public function get_initial_last_sent() {
+ return array(
+ 'object_id' => self::MAX_INT,
+ 'term_taxonomy_id' => self::MAX_INT,
+ );
+ }
+
+ /**
+ * Given the Module Full Sync Configuration and Status return the next chunk of items to send.
+ *
+ * @param array $config This module Full Sync configuration.
+ * @param array $status This module Full Sync status.
+ * @param int $chunk_size Chunk size.
+ *
+ * @return array|object|null
+ */
+ public function get_next_chunk( $config, $status, $chunk_size ) {
+ global $wpdb;
+
+ return $wpdb->get_results(
+ $wpdb->prepare(
+ "SELECT object_id, term_taxonomy_id
+ FROM $wpdb->term_relationships
+ WHERE ( object_id = %d AND term_taxonomy_id < %d ) OR ( object_id < %d )
+ ORDER BY object_id DESC, term_taxonomy_id
+ DESC LIMIT %d",
+ $status['last_sent']['object_id'],
+ $status['last_sent']['term_taxonomy_id'],
+ $status['last_sent']['object_id'],
+ $chunk_size
+ ),
+ ARRAY_A
+ );
+ }
+
+ /**
+ *
+ * Enqueue all $items within `jetpack_full_sync_term_relationships` actions.
+ *
+ * @param array $items Groups of objects to sync.
+ * @param array $previous_interval_end Last item enqueued.
+ *
+ * @return array Last enqueued object.
+ */
+ public function bulk_enqueue_full_sync_term_relationships( $items, $previous_interval_end ) {
+ $listener = Listener::get_instance();
+ $items_with_previous_interval_end = $this->get_chunks_with_preceding_end( $items, $previous_interval_end );
+ $listener->bulk_enqueue_full_sync_actions( 'jetpack_full_sync_term_relationships', $items_with_previous_interval_end );
+ $last_item = end( $items );
+ return end( $last_item );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return int Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ global $wpdb;
+
+ $query = "SELECT COUNT(*) FROM $wpdb->term_relationships";
+
+ // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / Settings::get_setting( 'term_relationships_full_sync_item_size' ) );
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_term_relationships' );
+ }
+
+ /**
+ * Expand the term relationships within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The expanded hook parameters.
+ */
+ public function expand_term_relationships( $args ) {
+ list( $term_relationships, $previous_end ) = $args;
+
+ return array(
+ 'term_relationships' => $term_relationships,
+ 'previous_end' => $previous_end,
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php
new file mode 100644
index 00000000..6bc8c064
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php
@@ -0,0 +1,314 @@
+<?php
+/**
+ * Terms sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Sync\Defaults;
+use Automattic\Jetpack\Sync\Settings;
+
+/**
+ * Class to handle sync for terms.
+ */
+class Terms extends Module {
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'terms';
+ }
+
+ /**
+ * The id field in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function id_field() {
+ return 'term_taxonomy_id';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return 'term_taxonomy';
+ }
+
+ /**
+ * Allows WordPress.com servers to retrieve term-related objects via the sync API.
+ *
+ * @param string $object_type The type of object.
+ * @param int $id The id of the object.
+ *
+ * @return bool|object A WP_Term object, or a row from term_taxonomy table depending on object type.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ global $wpdb;
+ $object = false;
+ if ( 'term' === $object_type ) {
+ $object = get_term( (int) $id );
+
+ if ( is_wp_error( $object ) && $object->get_error_code() === 'invalid_taxonomy' ) {
+ // Fetch raw term.
+ $columns = implode( ', ', array_unique( array_merge( Defaults::$default_term_checksum_columns, array( 'term_group' ) ) ) );
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $object = $wpdb->get_row( $wpdb->prepare( "SELECT $columns FROM $wpdb->terms WHERE term_id = %d", $id ) );
+ }
+ }
+
+ if ( 'term_taxonomy' === $object_type ) {
+ $columns = implode( ', ', array_unique( array_merge( Defaults::$default_term_taxonomy_checksum_columns, array( 'description' ) ) ) );
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $object = $wpdb->get_row( $wpdb->prepare( "SELECT $columns FROM $wpdb->term_taxonomy WHERE term_taxonomy_id = %d", $id ) );
+ }
+
+ if ( 'term_relationships' === $object_type ) {
+ $columns = implode( ', ', Defaults::$default_term_relationships_checksum_columns );
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $objects = $wpdb->get_results( $wpdb->prepare( "SELECT $columns FROM $wpdb->term_relationships WHERE object_id = %d", $id ) );
+ $object = (object) array(
+ 'object_id' => $id,
+ 'relationships' => array_map( array( $this, 'expand_terms_for_relationship' ), $objects ),
+ );
+ }
+
+ return $object ? $object : false;
+ }
+
+ /**
+ * Initialize terms action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'created_term', array( $this, 'save_term_handler' ), 10, 3 );
+ add_action( 'edited_term', array( $this, 'save_term_handler' ), 10, 3 );
+ add_action( 'jetpack_sync_save_term', $callable );
+ add_action( 'jetpack_sync_add_term', $callable );
+ add_action( 'delete_term', $callable, 10, 4 );
+ add_action( 'set_object_terms', $callable, 10, 6 );
+ add_action( 'deleted_term_relationships', $callable, 10, 2 );
+ add_filter( 'jetpack_sync_before_enqueue_set_object_terms', array( $this, 'filter_set_object_terms_no_update' ) );
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_save_term', array( $this, 'filter_blacklisted_taxonomies' ) );
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_add_term', array( $this, 'filter_blacklisted_taxonomies' ) );
+ }
+
+ /**
+ * Initialize terms action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_terms', $callable, 10, 2 );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_terms', array( $this, 'expand_term_taxonomy_id' ) );
+ }
+
+ /**
+ * Enqueue the terms actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ global $wpdb;
+ return $this->enqueue_all_ids_as_action( 'jetpack_full_sync_terms', $wpdb->term_taxonomy, 'term_taxonomy_id', $this->get_where_sql( $config ), $max_items_to_enqueue, $state );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause, or `null` if no comments are specified in the module config.
+ */
+ public function get_where_sql( $config ) {
+ $where_sql = Settings::get_blacklisted_taxonomies_sql();
+
+ if ( is_array( $config ) ) {
+ $where_sql .= ' AND term_taxonomy_id IN (' . implode( ',', array_map( 'intval', $config ) ) . ')';
+ }
+
+ return $where_sql;
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return int Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ global $wpdb;
+
+ $query = "SELECT count(*) FROM $wpdb->term_taxonomy";
+
+ $where_sql = $this->get_where_sql( $config );
+ if ( $where_sql ) {
+ $query .= ' WHERE ' . $where_sql;
+ }
+
+ // phpcs:disable WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / self::ARRAY_CHUNK_SIZE );
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_terms' );
+ }
+
+ /**
+ * Handler for creating and updating terms.
+ *
+ * @access public
+ *
+ * @param int $term_id Term ID.
+ * @param int $tt_id Term taxonomy ID.
+ * @param string $taxonomy Taxonomy slug.
+ */
+ public function save_term_handler( $term_id, $tt_id, $taxonomy ) {
+ if ( class_exists( '\\WP_Term' ) ) {
+ $term_object = \WP_Term::get_instance( $term_id, $taxonomy );
+ } else {
+ $term_object = get_term_by( 'id', $term_id, $taxonomy );
+ }
+
+ $current_filter = current_filter();
+
+ if ( 'created_term' === $current_filter ) {
+ /**
+ * Fires when the client needs to add a new term
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param object the Term object
+ */
+ do_action( 'jetpack_sync_add_term', $term_object );
+ return;
+ }
+
+ /**
+ * Fires when the client needs to update a term
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param object the Term object
+ */
+ do_action( 'jetpack_sync_save_term', $term_object );
+ }
+
+ /**
+ * Filter blacklisted taxonomies.
+ *
+ * @access public
+ *
+ * @param array $args Hook args.
+ * @return array|boolean False if not whitelisted, the original hook args otherwise.
+ */
+ public function filter_blacklisted_taxonomies( $args ) {
+ $term = $args[0];
+
+ if ( in_array( $term->taxonomy, Settings::get_setting( 'taxonomies_blacklist' ), true ) ) {
+ return false;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter out set_object_terms actions where the terms have not changed.
+ *
+ * @param array $args Hook args.
+ * @return array|boolean False if no change in terms, the original hook args otherwise.
+ */
+ public function filter_set_object_terms_no_update( $args ) {
+ // There is potential for other plugins to modify args, therefore lets validate # of and types.
+ // $args[2] is $tt_ids, $args[5] is $old_tt_ids see wp-includes/taxonomy.php L2740.
+ if ( 6 === count( $args ) && is_array( $args[2] ) && is_array( $args[5] ) ) {
+ if ( empty( array_diff( $args[2], $args[5] ) ) && empty( array_diff( $args[5], $args[2] ) ) ) {
+ return false;
+ }
+ }
+ return $args;
+ }
+
+ /**
+ * Expand the term taxonomy IDs to terms within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The expanded hook parameters.
+ */
+ public function expand_term_taxonomy_id( $args ) {
+ list( $term_taxonomy_ids, $previous_end ) = $args;
+
+ return array(
+ 'terms' => get_terms(
+ array(
+ 'hide_empty' => false,
+ 'term_taxonomy_id' => $term_taxonomy_ids,
+ 'orderby' => 'term_taxonomy_id',
+ 'order' => 'DESC',
+ )
+ ),
+ 'previous_end' => $previous_end,
+ );
+ }
+
+ /**
+ * Gets a term object based on a given row from the term_relationships database table.
+ *
+ * @access public
+ *
+ * @param object $relationship A row object from the term_relationships table.
+ * @return object|bool A term object, or false if term taxonomy doesn't exist.
+ */
+ public function expand_terms_for_relationship( $relationship ) {
+ return get_term_by( 'term_taxonomy_id', $relationship->term_taxonomy_id );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php
new file mode 100644
index 00000000..4b594eda
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php
@@ -0,0 +1,877 @@
+<?php
+/**
+ * Themes sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class to handle sync for themes.
+ */
+class Themes extends Module {
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'themes';
+ }
+
+ /**
+ * Initialize themes action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ add_action( 'switch_theme', array( $this, 'sync_theme_support' ), 10, 3 );
+ add_action( 'jetpack_sync_current_theme_support', $callable, 10, 2 );
+ add_action( 'upgrader_process_complete', array( $this, 'check_upgrader' ), 10, 2 );
+ add_action( 'jetpack_installed_theme', $callable, 10, 2 );
+ add_action( 'jetpack_updated_themes', $callable, 10, 2 );
+ add_filter( 'wp_redirect', array( $this, 'detect_theme_edit' ) );
+ add_action( 'jetpack_edited_theme', $callable, 10, 2 );
+ add_action( 'wp_ajax_edit-theme-plugin-file', array( $this, 'theme_edit_ajax' ), 0 );
+ add_action( 'update_site_option_allowedthemes', array( $this, 'sync_network_allowed_themes_change' ), 10, 4 );
+ add_action( 'jetpack_network_disabled_themes', $callable, 10, 2 );
+ add_action( 'jetpack_network_enabled_themes', $callable, 10, 2 );
+
+ // Theme deletions.
+ add_action( 'deleted_theme', array( $this, 'detect_theme_deletion' ), 10, 2 );
+ add_action( 'jetpack_deleted_theme', $callable, 10, 2 );
+
+ // Sidebar updates.
+ add_action( 'update_option_sidebars_widgets', array( $this, 'sync_sidebar_widgets_actions' ), 10, 2 );
+
+ add_action( 'jetpack_widget_added', $callable, 10, 4 );
+ add_action( 'jetpack_widget_removed', $callable, 10, 4 );
+ add_action( 'jetpack_widget_moved_to_inactive', $callable, 10, 2 );
+ add_action( 'jetpack_cleared_inactive_widgets', $callable );
+ add_action( 'jetpack_widget_reordered', $callable, 10, 2 );
+ add_filter( 'widget_update_callback', array( $this, 'sync_widget_edit' ), 10, 4 );
+ add_action( 'jetpack_widget_edited', $callable );
+ }
+
+ /**
+ * Sync handler for a widget edit.
+ *
+ * @access public
+ *
+ * @todo Implement nonce verification
+ *
+ * @param array $instance The current widget instance's settings.
+ * @param array $new_instance Array of new widget settings.
+ * @param array $old_instance Array of old widget settings.
+ * @param \WP_Widget $widget_object The current widget instance.
+ * @return array The current widget instance's settings.
+ */
+ public function sync_widget_edit( $instance, $new_instance, $old_instance, $widget_object ) {
+ if ( empty( $old_instance ) ) {
+ return $instance;
+ }
+
+ // Don't trigger sync action if this is an ajax request, because Customizer makes them during preview before saving changes.
+ // phpcs:disable WordPress.Security.NonceVerification.Missing
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX && isset( $_POST['customized'] ) ) {
+ return $instance;
+ }
+
+ $widget = array(
+ 'name' => $widget_object->name,
+ 'id' => $widget_object->id,
+ 'title' => isset( $new_instance['title'] ) ? $new_instance['title'] : '',
+ );
+ /**
+ * Trigger action to alert $callable sync listener that a widget was edited.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $widget_name , Name of edited widget
+ */
+ do_action( 'jetpack_widget_edited', $widget );
+
+ return $instance;
+ }
+
+ /**
+ * Sync handler for network allowed themes change.
+ *
+ * @access public
+ *
+ * @param string $option Name of the network option.
+ * @param mixed $value Current value of the network option.
+ * @param mixed $old_value Old value of the network option.
+ * @param int $network_id ID of the network.
+ */
+ public function sync_network_allowed_themes_change( $option, $value, $old_value, $network_id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $all_enabled_theme_slugs = array_keys( $value );
+
+ if ( count( $old_value ) > count( $value ) ) {
+
+ // Suppress jetpack_network_disabled_themes sync action when theme is deleted.
+ $delete_theme_call = $this->get_delete_theme_call();
+ if ( ! empty( $delete_theme_call ) ) {
+ return;
+ }
+
+ $newly_disabled_theme_names = array_keys( array_diff_key( $old_value, $value ) );
+ $newly_disabled_themes = $this->get_theme_details_for_slugs( $newly_disabled_theme_names );
+ /**
+ * Trigger action to alert $callable sync listener that network themes were disabled.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param mixed $newly_disabled_themes, Array of info about network disabled themes
+ * @param mixed $all_enabled_theme_slugs, Array of slugs of all enabled themes
+ */
+ do_action( 'jetpack_network_disabled_themes', $newly_disabled_themes, $all_enabled_theme_slugs );
+ return;
+ }
+
+ $newly_enabled_theme_names = array_keys( array_diff_key( $value, $old_value ) );
+ $newly_enabled_themes = $this->get_theme_details_for_slugs( $newly_enabled_theme_names );
+ /**
+ * Trigger action to alert $callable sync listener that network themes were enabled
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param mixed $newly_enabled_themes , Array of info about network enabled themes
+ * @param mixed $all_enabled_theme_slugs, Array of slugs of all enabled themes
+ */
+ do_action( 'jetpack_network_enabled_themes', $newly_enabled_themes, $all_enabled_theme_slugs );
+ }
+
+ /**
+ * Retrieve details for one or more themes by their slugs.
+ *
+ * @access private
+ *
+ * @param array $theme_slugs Theme slugs.
+ * @return array Details for the themes.
+ */
+ private function get_theme_details_for_slugs( $theme_slugs ) {
+ $theme_data = array();
+ foreach ( $theme_slugs as $slug ) {
+ $theme = wp_get_theme( $slug );
+ $theme_data[ $slug ] = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ 'slug' => $slug,
+ );
+ }
+ return $theme_data;
+ }
+
+ /**
+ * Detect a theme edit during a redirect.
+ *
+ * @access public
+ *
+ * @param string $redirect_url Redirect URL.
+ * @return string Redirect URL.
+ */
+ public function detect_theme_edit( $redirect_url ) {
+ $url = wp_parse_url( admin_url( $redirect_url ) );
+ $theme_editor_url = wp_parse_url( admin_url( 'theme-editor.php' ) );
+
+ if ( $theme_editor_url['path'] !== $url['path'] ) {
+ return $redirect_url;
+ }
+
+ $query_params = array();
+ wp_parse_str( $url['query'], $query_params );
+ if (
+ ! isset( $_POST['newcontent'] ) ||
+ ! isset( $query_params['file'] ) ||
+ ! isset( $query_params['theme'] ) ||
+ ! isset( $query_params['updated'] )
+ ) {
+ return $redirect_url;
+ }
+ $theme = wp_get_theme( $query_params['theme'] );
+ $theme_data = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ );
+
+ /**
+ * Trigger action to alert $callable sync listener that a theme was edited.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $query_params['theme'], Slug of edited theme
+ * @param string $theme_data, Information about edited them
+ */
+ do_action( 'jetpack_edited_theme', $query_params['theme'], $theme_data );
+
+ return $redirect_url;
+ }
+
+ /**
+ * Handler for AJAX theme editing.
+ *
+ * @todo Refactor to use WP_Filesystem instead of fopen()/fclose().
+ */
+ public function theme_edit_ajax() {
+ $args = wp_unslash( $_POST );
+
+ if ( empty( $args['theme'] ) ) {
+ return;
+ }
+
+ if ( empty( $args['file'] ) ) {
+ return;
+ }
+ $file = $args['file'];
+ if ( 0 !== validate_file( $file ) ) {
+ return;
+ }
+
+ if ( ! isset( $args['newcontent'] ) ) {
+ return;
+ }
+
+ if ( ! isset( $args['nonce'] ) ) {
+ return;
+ }
+
+ $stylesheet = $args['theme'];
+ if ( 0 !== validate_file( $stylesheet ) ) {
+ return;
+ }
+
+ if ( ! current_user_can( 'edit_themes' ) ) {
+ return;
+ }
+
+ $theme = wp_get_theme( $stylesheet );
+ if ( ! $theme->exists() ) {
+ return;
+ }
+
+ if ( ! wp_verify_nonce( $args['nonce'], 'edit-theme_' . $stylesheet . '_' . $file ) ) {
+ return;
+ }
+
+ if ( $theme->errors() && 'theme_no_stylesheet' === $theme->errors()->get_error_code() ) {
+ return;
+ }
+
+ $editable_extensions = wp_get_theme_file_editable_extensions( $theme );
+
+ $allowed_files = array();
+ foreach ( $editable_extensions as $type ) {
+ switch ( $type ) {
+ case 'php':
+ $allowed_files = array_merge( $allowed_files, $theme->get_files( 'php', -1 ) );
+ break;
+ case 'css':
+ $style_files = $theme->get_files( 'css', -1 );
+ $allowed_files['style.css'] = $style_files['style.css'];
+ $allowed_files = array_merge( $allowed_files, $style_files );
+ break;
+ default:
+ $allowed_files = array_merge( $allowed_files, $theme->get_files( $type, -1 ) );
+ break;
+ }
+ }
+
+ $real_file = $theme->get_stylesheet_directory() . '/' . $file;
+ if ( 0 !== validate_file( $real_file, $allowed_files ) ) {
+ return;
+ }
+
+ // Ensure file is real.
+ if ( ! is_file( $real_file ) ) {
+ return;
+ }
+
+ // Ensure file extension is allowed.
+ $extension = null;
+ if ( preg_match( '/\.([^.]+)$/', $real_file, $matches ) ) {
+ $extension = strtolower( $matches[1] );
+ if ( ! in_array( $extension, $editable_extensions, true ) ) {
+ return;
+ }
+ }
+
+ if ( ! is_writeable( $real_file ) ) {
+ return;
+ }
+
+ // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fopen
+ $file_pointer = fopen( $real_file, 'w+' );
+ if ( false === $file_pointer ) {
+ return;
+ }
+ // phpcs:ignore WordPress.WP.AlternativeFunctions.file_system_read_fclose
+ fclose( $file_pointer );
+
+ $theme_data = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ );
+
+ /**
+ * This action is documented already in this file.
+ */
+ do_action( 'jetpack_edited_theme', $stylesheet, $theme_data );
+ }
+
+ /**
+ * Detect a theme deletion.
+ *
+ * @access public
+ *
+ * @param string $stylesheet Stylesheet of the theme to delete.
+ * @param bool $deleted Whether the theme deletion was successful.
+ */
+ public function detect_theme_deletion( $stylesheet, $deleted ) {
+ $theme = wp_get_theme( $stylesheet );
+ $theme_data = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ 'slug' => $stylesheet,
+ );
+
+ if ( $deleted ) {
+ /**
+ * Signals to the sync listener that a theme was deleted and a sync action
+ * reflecting the deletion and theme slug should be sent
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $stylesheet Theme slug
+ * @param array $theme_data Theme info Since 5.3
+ */
+ do_action( 'jetpack_deleted_theme', $stylesheet, $theme_data );
+ }
+ }
+
+ /**
+ * Handle an upgrader completion action.
+ *
+ * @access public
+ *
+ * @param \WP_Upgrader $upgrader The upgrader instance.
+ * @param array $details Array of bulk item update data.
+ */
+ public function check_upgrader( $upgrader, $details ) {
+ if ( ! isset( $details['type'] ) ||
+ 'theme' !== $details['type'] ||
+ is_wp_error( $upgrader->skin->result ) ||
+ ! method_exists( $upgrader, 'theme_info' )
+ ) {
+ return;
+ }
+
+ if ( 'install' === $details['action'] ) {
+ $theme = $upgrader->theme_info();
+ if ( ! $theme instanceof \WP_Theme ) {
+ return;
+ }
+ $theme_info = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ );
+
+ /**
+ * Signals to the sync listener that a theme was installed and a sync action
+ * reflecting the installation and the theme info should be sent
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param string $theme->theme_root Text domain of the theme
+ * @param mixed $theme_info Array of abbreviated theme info
+ */
+ do_action( 'jetpack_installed_theme', $theme->stylesheet, $theme_info );
+ }
+
+ if ( 'update' === $details['action'] ) {
+ $themes = array();
+
+ if ( empty( $details['themes'] ) && isset( $details['theme'] ) ) {
+ $details['themes'] = array( $details['theme'] );
+ }
+
+ foreach ( $details['themes'] as $theme_slug ) {
+ $theme = wp_get_theme( $theme_slug );
+
+ if ( ! $theme instanceof \WP_Theme ) {
+ continue;
+ }
+
+ $themes[ $theme_slug ] = array(
+ 'name' => $theme->get( 'Name' ),
+ 'version' => $theme->get( 'Version' ),
+ 'uri' => $theme->get( 'ThemeURI' ),
+ 'stylesheet' => $theme->stylesheet,
+ );
+ }
+
+ if ( empty( $themes ) ) {
+ return;
+ }
+
+ /**
+ * Signals to the sync listener that one or more themes was updated and a sync action
+ * reflecting the update and the theme info should be sent
+ *
+ * @since 1.6.3
+ * @since-jetpack 6.2.0
+ *
+ * @param mixed $themes Array of abbreviated theme info
+ */
+ do_action( 'jetpack_updated_themes', $themes );
+ }
+ }
+
+ /**
+ * Initialize themes action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_theme_data', $callable );
+ }
+
+ /**
+ * Handle a theme switch.
+ *
+ * @access public
+ *
+ * @param string $new_name Name of the new theme.
+ * @param \WP_Theme $new_theme The new theme.
+ * @param \WP_Theme $old_theme The previous theme.
+ */
+ public function sync_theme_support( $new_name, $new_theme = null, $old_theme = null ) {
+ $previous_theme = $this->get_theme_info( $old_theme );
+
+ /**
+ * Fires when the client needs to sync theme support info
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param array the theme support array
+ * @param array the previous theme since Jetpack 6.5.0
+ */
+ do_action( 'jetpack_sync_current_theme_support', $this->get_theme_info(), $previous_theme );
+ }
+
+ /**
+ * Enqueue the themes actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all theme data to the server
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean Whether to expand theme data (should always be true)
+ */
+ do_action( 'jetpack_full_sync_theme_data', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the themes actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $state This module Full Sync status.
+ *
+ * @return array This module Full Sync status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_theme_data', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_theme_data', array( $this, 'expand_theme_data' ) );
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_theme_data' );
+ }
+
+ /**
+ * Expand the theme within a hook before it is serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @return array Theme data.
+ */
+ public function expand_theme_data() {
+ return array( $this->get_theme_info() );
+ }
+
+ /**
+ * Retrieve the name of the widget by the widget ID.
+ *
+ * @access public
+ * @global $wp_registered_widgets
+ *
+ * @param string $widget_id Widget ID.
+ * @return string Name of the widget, or null if not found.
+ */
+ public function get_widget_name( $widget_id ) {
+ global $wp_registered_widgets;
+ return ( isset( $wp_registered_widgets[ $widget_id ] ) ? $wp_registered_widgets[ $widget_id ]['name'] : null );
+ }
+
+ /**
+ * Retrieve the name of the sidebar by the sidebar ID.
+ *
+ * @access public
+ * @global $wp_registered_sidebars
+ *
+ * @param string $sidebar_id Sidebar ID.
+ * @return string Name of the sidebar, or null if not found.
+ */
+ public function get_sidebar_name( $sidebar_id ) {
+ global $wp_registered_sidebars;
+ return ( isset( $wp_registered_sidebars[ $sidebar_id ] ) ? $wp_registered_sidebars[ $sidebar_id ]['name'] : null );
+ }
+
+ /**
+ * Sync addition of widgets to a sidebar.
+ *
+ * @access public
+ *
+ * @param array $new_widgets New widgets.
+ * @param array $old_widgets Old widgets.
+ * @param string $sidebar Sidebar ID.
+ * @return array All widgets that have been moved to the sidebar.
+ */
+ public function sync_add_widgets_to_sidebar( $new_widgets, $old_widgets, $sidebar ) {
+ $added_widgets = array_diff( $new_widgets, $old_widgets );
+ if ( empty( $added_widgets ) ) {
+ return array();
+ }
+ $moved_to_sidebar = array();
+ $sidebar_name = $this->get_sidebar_name( $sidebar );
+
+ // Don't sync jetpack_widget_added if theme was switched.
+ if ( $this->is_theme_switch() ) {
+ return array();
+ }
+
+ foreach ( $added_widgets as $added_widget ) {
+ $moved_to_sidebar[] = $added_widget;
+ $added_widget_name = $this->get_widget_name( $added_widget );
+ /**
+ * Helps Sync log that a widget got added
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param string $sidebar, Sidebar id got changed
+ * @param string $added_widget, Widget id got added
+ * @param string $sidebar_name, Sidebar id got changed Since 5.0.0
+ * @param string $added_widget_name, Widget id got added Since 5.0.0
+ */
+ do_action( 'jetpack_widget_added', $sidebar, $added_widget, $sidebar_name, $added_widget_name );
+ }
+ return $moved_to_sidebar;
+ }
+
+ /**
+ * Sync removal of widgets from a sidebar.
+ *
+ * @access public
+ *
+ * @param array $new_widgets New widgets.
+ * @param array $old_widgets Old widgets.
+ * @param string $sidebar Sidebar ID.
+ * @param array $inactive_widgets Current inactive widgets.
+ * @return array All widgets that have been moved to inactive.
+ */
+ public function sync_remove_widgets_from_sidebar( $new_widgets, $old_widgets, $sidebar, $inactive_widgets ) {
+ $removed_widgets = array_diff( $old_widgets, $new_widgets );
+
+ if ( empty( $removed_widgets ) ) {
+ return array();
+ }
+
+ $moved_to_inactive = array();
+ $sidebar_name = $this->get_sidebar_name( $sidebar );
+
+ foreach ( $removed_widgets as $removed_widget ) {
+ // Lets check if we didn't move the widget to in_active_widgets.
+ if ( isset( $inactive_widgets ) && ! in_array( $removed_widget, $inactive_widgets, true ) ) {
+ $removed_widget_name = $this->get_widget_name( $removed_widget );
+ /**
+ * Helps Sync log that a widgte got removed
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param string $sidebar, Sidebar id got changed
+ * @param string $removed_widget, Widget id got removed
+ * @param string $sidebar_name, Name of the sidebar that changed Since 5.0.0
+ * @param string $removed_widget_name, Name of the widget that got removed Since 5.0.0
+ */
+ do_action( 'jetpack_widget_removed', $sidebar, $removed_widget, $sidebar_name, $removed_widget_name );
+ } else {
+ $moved_to_inactive[] = $removed_widget;
+ }
+ }
+ return $moved_to_inactive;
+
+ }
+
+ /**
+ * Sync a reorder of widgets within a sidebar.
+ *
+ * @access public
+ *
+ * @todo Refactor serialize() to a json_encode().
+ *
+ * @param array $new_widgets New widgets.
+ * @param array $old_widgets Old widgets.
+ * @param string $sidebar Sidebar ID.
+ */
+ public function sync_widgets_reordered( $new_widgets, $old_widgets, $sidebar ) {
+ $added_widgets = array_diff( $new_widgets, $old_widgets );
+ if ( ! empty( $added_widgets ) ) {
+ return;
+ }
+ $removed_widgets = array_diff( $old_widgets, $new_widgets );
+ if ( ! empty( $removed_widgets ) ) {
+ return;
+ }
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
+ if ( serialize( $old_widgets ) !== serialize( $new_widgets ) ) {
+ $sidebar_name = $this->get_sidebar_name( $sidebar );
+ /**
+ * Helps Sync log that a sidebar id got reordered
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param string $sidebar, Sidebar id got changed
+ * @param string $sidebar_name, Name of the sidebar that changed Since 5.0.0
+ */
+ do_action( 'jetpack_widget_reordered', $sidebar, $sidebar_name );
+ }
+
+ }
+
+ /**
+ * Handle the update of the sidebars and widgets mapping option.
+ *
+ * @access public
+ *
+ * @param mixed $old_value The old option value.
+ * @param mixed $new_value The new option value.
+ */
+ public function sync_sidebar_widgets_actions( $old_value, $new_value ) {
+ // Don't really know how to deal with different array_values yet.
+ if (
+ ( isset( $old_value['array_version'] ) && 3 !== $old_value['array_version'] ) ||
+ ( isset( $new_value['array_version'] ) && 3 !== $new_value['array_version'] )
+ ) {
+ return;
+ }
+
+ $moved_to_inactive_ids = array();
+ $moved_to_sidebar = array();
+
+ foreach ( $new_value as $sidebar => $new_widgets ) {
+ if ( in_array( $sidebar, array( 'array_version', 'wp_inactive_widgets' ), true ) ) {
+ continue;
+ }
+ $old_widgets = isset( $old_value[ $sidebar ] )
+ ? $old_value[ $sidebar ]
+ : array();
+
+ if ( ! is_array( $new_widgets ) ) {
+ $new_widgets = array();
+ }
+
+ $moved_to_inactive_recently = $this->sync_remove_widgets_from_sidebar( $new_widgets, $old_widgets, $sidebar, $new_value['wp_inactive_widgets'] );
+ $moved_to_inactive_ids = array_merge( $moved_to_inactive_ids, $moved_to_inactive_recently );
+
+ $moved_to_sidebar_recently = $this->sync_add_widgets_to_sidebar( $new_widgets, $old_widgets, $sidebar );
+ $moved_to_sidebar = array_merge( $moved_to_sidebar, $moved_to_sidebar_recently );
+
+ $this->sync_widgets_reordered( $new_widgets, $old_widgets, $sidebar );
+
+ }
+
+ // Don't sync either jetpack_widget_moved_to_inactive or jetpack_cleared_inactive_widgets if theme was switched.
+ if ( $this->is_theme_switch() ) {
+ return;
+ }
+
+ // Treat inactive sidebar a bit differently.
+ if ( ! empty( $moved_to_inactive_ids ) ) {
+ $moved_to_inactive_name = array_map( array( $this, 'get_widget_name' ), $moved_to_inactive_ids );
+ /**
+ * Helps Sync log that a widgets IDs got moved to in active
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param array $moved_to_inactive_ids, Array of widgets id that moved to inactive id got changed
+ * @param array $moved_to_inactive_names, Array of widgets names that moved to inactive id got changed Since 5.0.0
+ */
+ do_action( 'jetpack_widget_moved_to_inactive', $moved_to_inactive_ids, $moved_to_inactive_name );
+ } elseif ( empty( $moved_to_sidebar ) && empty( $new_value['wp_inactive_widgets'] ) && ! empty( $old_value['wp_inactive_widgets'] ) ) {
+ /**
+ * Helps Sync log that a got cleared from inactive.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ */
+ do_action( 'jetpack_cleared_inactive_widgets' );
+ }
+ }
+
+ /**
+ * Retrieve the theme data for the current or a specific theme.
+ *
+ * @access private
+ *
+ * @param \WP_Theme $theme Theme object. Optional, will default to the current theme.
+ *
+ * @return array Theme data.
+ */
+ private function get_theme_info( $theme = null ) {
+ $theme_support = array();
+
+ // We are trying to get the current theme info.
+ if ( null === $theme ) {
+ $theme = wp_get_theme();
+ }
+
+ $theme_support['name'] = $theme->get( 'Name' );
+ $theme_support['version'] = $theme->get( 'Version' );
+ $theme_support['slug'] = $theme->get_stylesheet();
+ $theme_support['uri'] = $theme->get( 'ThemeURI' );
+
+ return $theme_support;
+ }
+
+ /**
+ * Whether we've deleted a theme in the current request.
+ *
+ * @access private
+ *
+ * @return boolean True if this is a theme deletion request, false otherwise.
+ */
+ private function get_delete_theme_call() {
+ // Intentional usage of `debug_backtrace()` for production needs.
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+ $backtrace = debug_backtrace();
+ $delete_theme_call = null;
+ foreach ( $backtrace as $call ) {
+ if ( isset( $call['function'] ) && 'delete_theme' === $call['function'] ) {
+ $delete_theme_call = $call;
+ break;
+ }
+ }
+ return $delete_theme_call;
+ }
+
+ /**
+ * Whether we've switched to another theme in the current request.
+ *
+ * @access private
+ *
+ * @return boolean True if this is a theme switch request, false otherwise.
+ */
+ private function is_theme_switch() {
+ return did_action( 'after_switch_theme' );
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve a set of constants by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( 'theme-info' !== $object_type ) {
+ return array();
+ }
+
+ return array( $this->get_theme_info() );
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php
new file mode 100644
index 00000000..8a2e8db3
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php
@@ -0,0 +1,585 @@
+<?php
+/**
+ * Updates sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+
+/**
+ * Class to handle sync for updates.
+ */
+class Updates extends Module {
+ /**
+ * Name of the updates checksum option.
+ *
+ * @var string
+ */
+ const UPDATES_CHECKSUM_OPTION_NAME = 'jetpack_updates_sync_checksum';
+
+ /**
+ * WordPress Version.
+ *
+ * @access private
+ *
+ * @var string
+ */
+ private $old_wp_version = null;
+
+ /**
+ * The current updates.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ private $updates = array();
+
+ /**
+ * Set module defaults.
+ *
+ * @access public
+ */
+ public function set_defaults() {
+ $this->updates = array();
+ }
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'updates';
+ }
+
+ /**
+ * Initialize updates action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ global $wp_version;
+ $this->old_wp_version = $wp_version;
+ add_action( 'set_site_transient_update_plugins', array( $this, 'validate_update_change' ), 10, 3 );
+ add_action( 'set_site_transient_update_themes', array( $this, 'validate_update_change' ), 10, 3 );
+ add_action( 'set_site_transient_update_core', array( $this, 'validate_update_change' ), 10, 3 );
+
+ add_action( 'jetpack_update_plugins_change', $callable );
+ add_action( 'jetpack_update_themes_change', $callable );
+ add_action( 'jetpack_update_core_change', $callable );
+
+ add_filter(
+ 'jetpack_sync_before_enqueue_jetpack_update_plugins_change',
+ array(
+ $this,
+ 'filter_update_keys',
+ ),
+ 10,
+ 2
+ );
+ add_filter(
+ 'jetpack_sync_before_enqueue_upgrader_process_complete',
+ array(
+ $this,
+ 'filter_upgrader_process_complete',
+ ),
+ 10,
+ 2
+ );
+
+ add_action( 'automatic_updates_complete', $callable );
+
+ if ( is_multisite() ) {
+ add_filter( 'pre_update_site_option_wpmu_upgrade_site', array( $this, 'update_core_network_event' ), 10, 2 );
+ add_action( 'jetpack_sync_core_update_network', $callable, 10, 3 );
+ }
+
+ // Send data when update completes.
+ add_action( '_core_updated_successfully', array( $this, 'update_core' ) );
+ add_action( 'jetpack_sync_core_reinstalled_successfully', $callable );
+ add_action( 'jetpack_sync_core_autoupdated_successfully', $callable, 10, 2 );
+ add_action( 'jetpack_sync_core_updated_successfully', $callable, 10, 2 );
+
+ }
+
+ /**
+ * Initialize updates action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_updates', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_updates', array( $this, 'expand_updates' ) );
+ add_filter( 'jetpack_sync_before_send_jetpack_update_themes_change', array( $this, 'expand_themes' ) );
+ }
+
+ /**
+ * Handle a core network update.
+ *
+ * @access public
+ *
+ * @param int $wp_db_version Current version of the WordPress database.
+ * @param int $old_wp_db_version Old version of the WordPress database.
+ * @return int Current version of the WordPress database.
+ */
+ public function update_core_network_event( $wp_db_version, $old_wp_db_version ) {
+ global $wp_version;
+ /**
+ * Sync event for when core wp network updates to a new db version
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param int $wp_db_version the latest wp_db_version
+ * @param int $old_wp_db_version previous wp_db_version
+ * @param string $wp_version the latest wp_version
+ */
+ do_action( 'jetpack_sync_core_update_network', $wp_db_version, $old_wp_db_version, $wp_version );
+ return $wp_db_version;
+ }
+
+ /**
+ * Handle a core update.
+ *
+ * @access public
+ *
+ * @todo Implement nonce or refactor to use `admin_post_{$action}` hooks instead.
+ *
+ * @param string $new_wp_version The new WP core version.
+ */
+ public function update_core( $new_wp_version ) {
+ global $pagenow;
+
+ // // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( isset( $_GET['action'] ) && 'do-core-reinstall' === $_GET['action'] ) {
+ /**
+ * Sync event that fires when core reinstall was successful
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $new_wp_version the updated WordPress version
+ */
+ do_action( 'jetpack_sync_core_reinstalled_successfully', $new_wp_version );
+ return;
+ }
+
+ // Core was autoupdated.
+ if (
+ 'update-core.php' !== $pagenow &&
+ ! Jetpack_Constants::is_true( 'REST_API_REQUEST' ) // WP.com rest api calls should never be marked as a core autoupdate.
+ ) {
+ /**
+ * Sync event that fires when core autoupdate was successful
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $new_wp_version the updated WordPress version
+ * @param string $old_wp_version the previous WordPress version
+ */
+ do_action( 'jetpack_sync_core_autoupdated_successfully', $new_wp_version, $this->old_wp_version );
+ return;
+ }
+ /**
+ * Sync event that fires when core update was successful
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.0.0
+ *
+ * @param string $new_wp_version the updated WordPress version
+ * @param string $old_wp_version the previous WordPress version
+ */
+ do_action( 'jetpack_sync_core_updated_successfully', $new_wp_version, $this->old_wp_version );
+ }
+
+ /**
+ * Retrieve the checksum for an update.
+ *
+ * @access public
+ *
+ * @param object $update The update object.
+ * @param string $transient The transient we're retrieving a checksum for.
+ * @return int The checksum.
+ */
+ public function get_update_checksum( $update, $transient ) {
+ $updates = array();
+ $no_updated = array();
+ switch ( $transient ) {
+ case 'update_plugins':
+ if ( ! empty( $update->response ) && is_array( $update->response ) ) {
+ foreach ( $update->response as $plugin_slug => $response ) {
+ if ( ! empty( $plugin_slug ) && isset( $response->new_version ) ) {
+ $updates[] = array( $plugin_slug => $response->new_version );
+ }
+ }
+ }
+ if ( ! empty( $update->no_update ) ) {
+ $no_updated = array_keys( $update->no_update );
+ }
+
+ if ( ! isset( $no_updated['jetpack/jetpack.php'] ) && isset( $updates['jetpack/jetpack.php'] ) ) {
+ return false;
+ }
+
+ break;
+ case 'update_themes':
+ if ( ! empty( $update->response ) && is_array( $update->response ) ) {
+ foreach ( $update->response as $theme_slug => $response ) {
+ if ( ! empty( $theme_slug ) && isset( $response['new_version'] ) ) {
+ $updates[] = array( $theme_slug => $response['new_version'] );
+ }
+ }
+ }
+
+ if ( ! empty( $update->checked ) ) {
+ $no_updated = $update->checked;
+ }
+
+ break;
+ case 'update_core':
+ if ( ! empty( $update->updates ) && is_array( $update->updates ) ) {
+ foreach ( $update->updates as $response ) {
+ if ( ! empty( $response->response ) && 'latest' === $response->response ) {
+ continue;
+ }
+ if ( ! empty( $response->response ) && isset( $response->packages->full ) ) {
+ $updates[] = array( $response->response => $response->packages->full );
+ }
+ }
+ }
+
+ if ( ! empty( $update->version_checked ) ) {
+ $no_updated = $update->version_checked;
+ }
+
+ if ( empty( $updates ) ) {
+ return false;
+ }
+ break;
+
+ }
+ if ( empty( $updates ) && empty( $no_updated ) ) {
+ return false;
+ }
+ return $this->get_check_sum( array( $no_updated, $updates ) );
+ }
+
+ /**
+ * Validate a change coming from an update before sending for sync.
+ *
+ * @access public
+ *
+ * @param mixed $value Site transient value.
+ * @param int $expiration Time until transient expiration in seconds.
+ * @param string $transient Transient name.
+ */
+ public function validate_update_change( $value, $expiration, $transient ) {
+ $new_checksum = $this->get_update_checksum( $value, $transient );
+
+ if ( false === $new_checksum ) {
+ return;
+ }
+
+ $checksums = get_option( self::UPDATES_CHECKSUM_OPTION_NAME, array() );
+
+ if ( isset( $checksums[ $transient ] ) && $checksums[ $transient ] === $new_checksum ) {
+ return;
+ }
+
+ $checksums[ $transient ] = $new_checksum;
+
+ update_option( self::UPDATES_CHECKSUM_OPTION_NAME, $checksums );
+ if ( 'update_core' === $transient ) {
+ /**
+ * Trigger a change to core update that we want to sync.
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.1.0
+ *
+ * @param array $value Contains info that tells us what needs updating.
+ */
+ do_action( 'jetpack_update_core_change', $value );
+ return;
+ }
+ if ( empty( $this->updates ) ) {
+ // Lets add the shutdown method once and only when the updates move from empty to filled with something.
+ add_action( 'shutdown', array( $this, 'sync_last_event' ), 9 );
+ }
+ if ( ! isset( $this->updates[ $transient ] ) ) {
+ $this->updates[ $transient ] = array();
+ }
+ $this->updates[ $transient ][] = $value;
+ }
+
+ /**
+ * Sync the last update only.
+ *
+ * @access public
+ */
+ public function sync_last_event() {
+ foreach ( $this->updates as $transient => $values ) {
+ $value = end( $values ); // Only send over the last value.
+ /**
+ * Trigger a change to a specific update that we want to sync.
+ * Triggers one of the following actions:
+ * - jetpack_{$transient}_change
+ * - jetpack_update_plugins_change
+ * - jetpack_update_themes_change
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.1.0
+ *
+ * @param array $value Contains info that tells us what needs updating.
+ */
+ do_action( "jetpack_{$transient}_change", $value );
+ }
+
+ }
+
+ /**
+ * Enqueue the updates actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ /**
+ * Tells the client to sync all updates to the server
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param boolean Whether to expand updates (should always be true)
+ */
+ do_action( 'jetpack_full_sync_updates', true );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 1, true );
+ }
+
+ /**
+ * Send the updates actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $send_until The timestamp until the current request can send.
+ * @param array $state This module Full Sync status.
+ *
+ * @return array This module Full Sync status.
+ */
+ public function send_full_sync_actions( $config, $send_until, $state ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // we call this instead of do_action when sending immediately.
+ $this->send_action( 'jetpack_full_sync_updates', array( true ) );
+
+ // The number of actions enqueued, and next module state (true == done).
+ return array( 'finished' => true );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 1;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_updates' );
+ }
+
+ /**
+ * Retrieve all updates that we're interested in.
+ *
+ * @access public
+ *
+ * @return array All updates.
+ */
+ public function get_all_updates() {
+ return array(
+ 'core' => get_site_transient( 'update_core' ),
+ 'plugins' => get_site_transient( 'update_plugins' ),
+ 'themes' => get_site_transient( 'update_themes' ),
+ );
+ }
+
+ /**
+ * Remove unnecessary keys from synced updates data.
+ *
+ * @access public
+ *
+ * @param array $args Hook arguments.
+ * @return array $args Hook arguments.
+ */
+ public function filter_update_keys( $args ) {
+ $updates = $args[0];
+
+ if ( isset( $updates->no_update ) ) {
+ unset( $updates->no_update );
+ }
+
+ return $args;
+ }
+
+ /**
+ * Filter out upgrader object from the completed upgrader action args.
+ *
+ * @access public
+ *
+ * @param array $args Hook arguments.
+ * @return array $args Filtered hook arguments.
+ */
+ public function filter_upgrader_process_complete( $args ) {
+ array_shift( $args );
+
+ return $args;
+ }
+
+ /**
+ * Expand the updates within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function expand_updates( $args ) {
+ if ( $args[0] ) {
+ return $this->get_all_updates();
+ }
+
+ return $args;
+ }
+
+ /**
+ * Expand the themes within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook parameters.
+ * @return array $args The hook parameters.
+ */
+ public function expand_themes( $args ) {
+ if ( ! isset( $args[0], $args[0]->response ) ) {
+ return $args;
+ }
+ if ( ! is_array( $args[0]->response ) ) {
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
+ trigger_error( 'Warning: Not an Array as expected but -> ' . wp_json_encode( $args[0]->response ) . ' instead', E_USER_WARNING );
+ return $args;
+ }
+ foreach ( $args[0]->response as $stylesheet => &$theme_data ) {
+ $theme = wp_get_theme( $stylesheet );
+ $theme_data['name'] = $theme->name;
+ }
+ return $args;
+ }
+
+ /**
+ * Perform module cleanup.
+ * Deletes any transients and options that this module uses.
+ * Usually triggered when uninstalling the plugin.
+ *
+ * @access public
+ */
+ public function reset_data() {
+ delete_option( self::UPDATES_CHECKSUM_OPTION_NAME );
+ }
+
+ /**
+ * Return Total number of objects.
+ *
+ * @param array $config Full Sync config.
+ *
+ * @return int total
+ */
+ public function total( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return 3;
+ }
+
+ /**
+ * Retrieve a set of updates by their IDs.
+ *
+ * @access public
+ *
+ * @param string $object_type Object type.
+ * @param array $ids Object IDs.
+ * @return array Array of objects.
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ if ( empty( $ids ) || empty( $object_type ) || 'update' !== $object_type ) {
+ return array();
+ }
+
+ $objects = array();
+ foreach ( (array) $ids as $id ) {
+ $object = $this->get_object_by_id( $object_type, $id );
+
+ if ( 'all' === $id ) {
+ // If all was requested it contains all updates and can simply be returned.
+ return $object;
+ }
+ $objects[ $id ] = $object;
+ }
+
+ return $objects;
+ }
+
+ /**
+ * Retrieve a update by its id.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param string $id ID of the sync object.
+ * @return mixed Value of Update.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'update' === $object_type ) {
+
+ // Only whitelisted constants can be returned.
+ if ( in_array( $id, array( 'core', 'plugins', 'themes' ), true ) ) {
+ return get_site_transient( 'update_' . $id );
+ } elseif ( 'all' === $id ) {
+ return $this->get_all_updates();
+ }
+ }
+
+ return false;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php
new file mode 100644
index 00000000..c53cfc5e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php
@@ -0,0 +1,871 @@
+<?php
+/**
+ * Users sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use Automattic\Jetpack\Constants as Jetpack_Constants;
+use Automattic\Jetpack\Password_Checker;
+use Automattic\Jetpack\Sync\Defaults;
+
+/**
+ * Class to handle sync for users.
+ */
+class Users extends Module {
+ /**
+ * Maximum number of users to sync initially.
+ *
+ * @var int
+ */
+ const MAX_INITIAL_SYNC_USERS = 100;
+
+ /**
+ * User flags we care about.
+ *
+ * @access protected
+ *
+ * @var array
+ */
+ protected $flags = array();
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'users';
+ }
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return 'usermeta';
+ }
+
+ /**
+ * The id field in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function id_field() {
+ return 'user_id';
+ }
+
+ /**
+ * Retrieve a user by its ID.
+ * This is here to support the backfill API.
+ *
+ * @access public
+ *
+ * @param string $object_type Type of the sync object.
+ * @param int $id ID of the sync object.
+ * @return \WP_User|bool Filtered \WP_User object, or false if the object is not a user.
+ */
+ public function get_object_by_id( $object_type, $id ) {
+ if ( 'user' === $object_type ) {
+ $user = get_user_by( 'id', (int) $id );
+ if ( $user ) {
+ return $this->sanitize_user_and_expand( $user );
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Initialize users action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ // Users.
+ add_action( 'user_register', array( $this, 'user_register_handler' ) );
+ add_action( 'profile_update', array( $this, 'save_user_handler' ), 10, 2 );
+
+ add_action( 'add_user_to_blog', array( $this, 'add_user_to_blog_handler' ) );
+ add_action( 'jetpack_sync_add_user', $callable, 10, 2 );
+
+ add_action( 'jetpack_sync_register_user', $callable, 10, 2 );
+ add_action( 'jetpack_sync_save_user', $callable, 10, 2 );
+
+ add_action( 'jetpack_sync_user_locale', $callable, 10, 2 );
+ add_action( 'jetpack_sync_user_locale_delete', $callable, 10, 1 );
+
+ add_action( 'deleted_user', array( $this, 'deleted_user_handler' ), 10, 2 );
+ add_action( 'jetpack_deleted_user', $callable, 10, 3 );
+ add_action( 'remove_user_from_blog', array( $this, 'remove_user_from_blog_handler' ), 10, 2 );
+ add_action( 'jetpack_removed_user_from_blog', $callable, 10, 2 );
+
+ // User roles.
+ add_action( 'add_user_role', array( $this, 'save_user_role_handler' ), 10, 2 );
+ add_action( 'set_user_role', array( $this, 'save_user_role_handler' ), 10, 3 );
+ add_action( 'remove_user_role', array( $this, 'save_user_role_handler' ), 10, 2 );
+
+ // User capabilities.
+ add_action( 'added_user_meta', array( $this, 'maybe_save_user_meta' ), 10, 4 );
+ add_action( 'updated_user_meta', array( $this, 'maybe_save_user_meta' ), 10, 4 );
+ add_action( 'deleted_user_meta', array( $this, 'maybe_save_user_meta' ), 10, 4 );
+
+ // User authentication.
+ add_filter( 'authenticate', array( $this, 'authenticate_handler' ), 1000, 3 );
+ add_action( 'wp_login', array( $this, 'wp_login_handler' ), 10, 2 );
+
+ add_action( 'jetpack_wp_login', $callable, 10, 3 );
+
+ add_action( 'wp_logout', $callable, 10, 0 );
+ add_action( 'wp_masterbar_logout', $callable, 10, 1 );
+
+ // Add on init.
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_add_user', array( $this, 'expand_action' ) );
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_register_user', array( $this, 'expand_action' ) );
+ add_filter( 'jetpack_sync_before_enqueue_jetpack_sync_save_user', array( $this, 'expand_action' ) );
+ }
+
+ /**
+ * Initialize users action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_users', $callable );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ add_filter( 'jetpack_sync_before_send_jetpack_wp_login', array( $this, 'expand_login_username' ), 10, 1 );
+ add_filter( 'jetpack_sync_before_send_wp_logout', array( $this, 'expand_logout_username' ), 10, 2 );
+
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_users', array( $this, 'expand_users' ) );
+ }
+
+ /**
+ * Retrieve a user by a user ID or object.
+ *
+ * @access private
+ *
+ * @param mixed $user User object or ID.
+ * @return \WP_User User object, or `null` if user invalid/not found.
+ */
+ private function get_user( $user ) {
+ if ( is_numeric( $user ) ) {
+ $user = get_user_by( 'id', $user );
+ }
+ if ( $user instanceof \WP_User ) {
+ return $user;
+ }
+ return null;
+ }
+
+ /**
+ * Sanitize a user object.
+ * Removes the password from the user object because we don't want to sync it.
+ *
+ * @access public
+ *
+ * @todo Refactor `serialize`/`unserialize` to `wp_json_encode`/`wp_json_decode`.
+ *
+ * @param \WP_User $user User object.
+ * @return \WP_User Sanitized user object.
+ */
+ public function sanitize_user( $user ) {
+ $user = $this->get_user( $user );
+ // This creates a new user object and stops the passing of the object by reference.
+ // // phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize, WordPress.PHP.DiscouragedPHPFunctions.serialize_unserialize
+ $user = unserialize( serialize( $user ) );
+
+ if ( is_object( $user ) && is_object( $user->data ) ) {
+ unset( $user->data->user_pass );
+ }
+ return $user;
+ }
+
+ /**
+ * Expand a particular user.
+ *
+ * @access public
+ *
+ * @param \WP_User $user User object.
+ * @return \WP_User Expanded user object.
+ */
+ public function expand_user( $user ) {
+ if ( ! is_object( $user ) ) {
+ return null;
+ }
+ $user->allowed_mime_types = get_allowed_mime_types( $user );
+ $user->allcaps = $this->get_real_user_capabilities( $user );
+
+ // Only set the user locale if it is different from the site locale.
+ if ( get_locale() !== get_user_locale( $user->ID ) ) {
+ $user->locale = get_user_locale( $user->ID );
+ }
+
+ return $user;
+ }
+
+ /**
+ * Retrieve capabilities we care about for a particular user.
+ *
+ * @access public
+ *
+ * @param \WP_User $user User object.
+ * @return array User capabilities.
+ */
+ public function get_real_user_capabilities( $user ) {
+ $user_capabilities = array();
+ if ( is_wp_error( $user ) ) {
+ return $user_capabilities;
+ }
+ foreach ( Defaults::get_capabilities_whitelist() as $capability ) {
+ if ( user_can( $user, $capability ) ) {
+ $user_capabilities[ $capability ] = true;
+ }
+ }
+ return $user_capabilities;
+ }
+
+ /**
+ * Retrieve, expand and sanitize a user.
+ * Can be directly used in the sync user action handlers.
+ *
+ * @access public
+ *
+ * @param mixed $user User ID or user object.
+ * @return \WP_User Expanded and sanitized user object.
+ */
+ public function sanitize_user_and_expand( $user ) {
+ $user = $this->get_user( $user );
+ $user = $this->expand_user( $user );
+ return $this->sanitize_user( $user );
+ }
+
+ /**
+ * Expand the user within a hook before it is serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook arguments.
+ * @return array $args The hook arguments.
+ */
+ public function expand_action( $args ) {
+ // The first argument is always the user.
+ list( $user ) = $args;
+ if ( $user ) {
+ $args[0] = $this->sanitize_user_and_expand( $user );
+ return $args;
+ }
+
+ return false;
+ }
+
+ /**
+ * Expand the user username at login before being sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook arguments.
+ * @return array $args Expanded hook arguments.
+ */
+ public function expand_login_username( $args ) {
+ list( $login, $user, $flags ) = $args;
+ $user = $this->sanitize_user( $user );
+
+ return array( $login, $user, $flags );
+ }
+
+ /**
+ * Expand the user username at logout before being sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook arguments.
+ * @param int $user_id ID of the user.
+ * @return array $args Expanded hook arguments.
+ */
+ public function expand_logout_username( $args, $user_id ) {
+ $user = get_userdata( $user_id );
+ $user = $this->sanitize_user( $user );
+
+ $login = '';
+ if ( is_object( $user ) && is_object( $user->data ) ) {
+ $login = $user->data->user_login;
+ }
+
+ // If we don't have a user here lets not send anything.
+ if ( empty( $login ) ) {
+ return false;
+ }
+
+ return array( $login, $user );
+ }
+
+ /**
+ * Additional processing is needed for wp_login so we introduce this wrapper handler.
+ *
+ * @access public
+ *
+ * @param string $user_login The user login.
+ * @param \WP_User $user The user object.
+ */
+ public function wp_login_handler( $user_login, $user ) {
+ /**
+ * Fires when a user is logged into a site.
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.2.0
+ *
+ * @param int $user_id The user ID.
+ * @param \WP_User $user The User Object of the user that currently logged in.
+ * @param array $params Any Flags that have been added during login.
+ */
+ do_action( 'jetpack_wp_login', $user->ID, $user, $this->get_flags( $user->ID ) );
+ $this->clear_flags( $user->ID );
+ }
+
+ /**
+ * A hook for the authenticate event that checks the password strength.
+ *
+ * @access public
+ *
+ * @param \WP_Error|\WP_User $user The user object, or an error.
+ * @param string $username The username.
+ * @param string $password The password used to authenticate.
+ * @return \WP_Error|\WP_User the same object that was passed into the function.
+ */
+ public function authenticate_handler( $user, $username, $password ) {
+ // In case of cookie authentication we don't do anything here.
+ if ( empty( $password ) ) {
+ return $user;
+ }
+
+ // We are only interested in successful authentication events.
+ if ( is_wp_error( $user ) || ! ( $user instanceof \WP_User ) ) {
+ return $user;
+ }
+
+ $password_checker = new Password_Checker( $user->ID );
+
+ $test_results = $password_checker->test( $password, true );
+
+ // If the password passes tests, we don't do anything.
+ if ( empty( $test_results['test_results']['failed'] ) ) {
+ return $user;
+ }
+
+ $this->add_flags(
+ $user->ID,
+ array(
+ 'warning' => 'The password failed at least one strength test.',
+ 'failures' => $test_results['test_results']['failed'],
+ )
+ );
+
+ return $user;
+ }
+
+ /**
+ * Handler for after the user is deleted.
+ *
+ * @access public
+ *
+ * @param int $deleted_user_id ID of the deleted user.
+ * @param int $reassigned_user_id ID of the user the deleted user's posts are reassigned to (if any).
+ */
+ public function deleted_user_handler( $deleted_user_id, $reassigned_user_id = '' ) {
+ $is_multisite = is_multisite();
+ /**
+ * Fires when a user is deleted on a site
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.4.0
+ *
+ * @param int $deleted_user_id - ID of the deleted user.
+ * @param int $reassigned_user_id - ID of the user the deleted user's posts are reassigned to (if any).
+ * @param bool $is_multisite - Whether this site is a multisite installation.
+ */
+ do_action( 'jetpack_deleted_user', $deleted_user_id, $reassigned_user_id, $is_multisite );
+ }
+
+ /**
+ * Handler for user registration.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the deleted user.
+ */
+ public function user_register_handler( $user_id ) {
+ // Ensure we only sync users who are members of the current blog.
+ if ( ! is_user_member_of_blog( $user_id, get_current_blog_id() ) ) {
+ return;
+ }
+
+ if ( Jetpack_Constants::is_true( 'JETPACK_INVITE_ACCEPTED' ) ) {
+ $this->add_flags( $user_id, array( 'invitation_accepted' => true ) );
+ }
+ /**
+ * Fires when a new user is registered on a site
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param object The WP_User object
+ */
+ do_action( 'jetpack_sync_register_user', $user_id, $this->get_flags( $user_id ) );
+ $this->clear_flags( $user_id );
+
+ }
+
+ /**
+ * Handler for user addition to the current blog.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ */
+ public function add_user_to_blog_handler( $user_id ) {
+ // Ensure we only sync users who are members of the current blog.
+ if ( ! is_user_member_of_blog( $user_id, get_current_blog_id() ) ) {
+ return;
+ }
+
+ if ( Jetpack_Constants::is_true( 'JETPACK_INVITE_ACCEPTED' ) ) {
+ $this->add_flags( $user_id, array( 'invitation_accepted' => true ) );
+ }
+
+ /**
+ * Fires when a user is added on a site
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.9.0
+ *
+ * @param object The WP_User object
+ */
+ do_action( 'jetpack_sync_add_user', $user_id, $this->get_flags( $user_id ) );
+ $this->clear_flags( $user_id );
+ }
+
+ /**
+ * Handler for user save.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ * @param \WP_User $old_user_data User object before the changes.
+ */
+ public function save_user_handler( $user_id, $old_user_data = null ) {
+ // Ensure we only sync users who are members of the current blog.
+ if ( ! is_user_member_of_blog( $user_id, get_current_blog_id() ) ) {
+ return;
+ }
+
+ $user = get_user_by( 'id', $user_id );
+
+ // Older versions of WP don't pass the old_user_data in ->data.
+ if ( isset( $old_user_data->data ) ) {
+ $old_user = $old_user_data->data;
+ } else {
+ $old_user = $old_user_data;
+ }
+
+ if ( null !== $old_user && $user->user_pass !== $old_user->user_pass ) {
+ $this->flags[ $user_id ]['password_changed'] = true;
+ }
+ if ( null !== $old_user && $user->data->user_email !== $old_user->user_email ) {
+ /**
+ * The '_new_email' user meta is deleted right after the call to wp_update_user
+ * that got us to this point so if it's still set then this was a user confirming
+ * their new email address.
+ */
+ if ( 1 === (int) get_user_meta( $user->ID, '_new_email', true ) ) {
+ $this->flags[ $user_id ]['email_changed'] = true;
+ }
+ }
+
+ /**
+ * Fires when the client needs to sync an updated user.
+ *
+ * @since 1.6.3
+ * @since-jetpack 4.2.0
+ *
+ * @param \WP_User The WP_User object
+ * @param array State - New since 5.8.0
+ */
+ do_action( 'jetpack_sync_save_user', $user_id, $this->get_flags( $user_id ) );
+ $this->clear_flags( $user_id );
+ }
+
+ /**
+ * Handler for user role change.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ * @param string $role New user role.
+ * @param array $old_roles Previous user roles.
+ */
+ public function save_user_role_handler( $user_id, $role, $old_roles = null ) {
+ $this->add_flags(
+ $user_id,
+ array(
+ 'role_changed' => true,
+ 'previous_role' => $old_roles,
+ )
+ );
+
+ // The jetpack_sync_register_user payload is identical to jetpack_sync_save_user, don't send both.
+ if ( $this->is_create_user() || $this->is_add_user_to_blog() ) {
+ return;
+ }
+ /**
+ * This action is documented already in this file
+ */
+ do_action( 'jetpack_sync_save_user', $user_id, $this->get_flags( $user_id ) );
+ $this->clear_flags( $user_id );
+ }
+
+ /**
+ * Retrieve current flags for a particular user.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ * @return array Current flags of the user.
+ */
+ public function get_flags( $user_id ) {
+ if ( isset( $this->flags[ $user_id ] ) ) {
+ return $this->flags[ $user_id ];
+ }
+ return array();
+ }
+
+ /**
+ * Clear the flags of a particular user.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ */
+ public function clear_flags( $user_id ) {
+ if ( isset( $this->flags[ $user_id ] ) ) {
+ unset( $this->flags[ $user_id ] );
+ }
+ }
+
+ /**
+ * Add flags to a particular user.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ * @param array $flags New flags to add for the user.
+ */
+ public function add_flags( $user_id, $flags ) {
+ $this->flags[ $user_id ] = wp_parse_args( $flags, $this->get_flags( $user_id ) );
+ }
+
+ /**
+ * Save the user meta, if we're interested in it.
+ * Also uses the time to add flags for the user.
+ *
+ * @access public
+ *
+ * @param int $meta_id ID of the meta object.
+ * @param int $user_id ID of the user.
+ * @param string $meta_key Meta key.
+ * @param mixed $value Meta value.
+ */
+ public function maybe_save_user_meta( $meta_id, $user_id, $meta_key, $value ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( 'locale' === $meta_key ) {
+ $this->add_flags( $user_id, array( 'locale_changed' => true ) );
+ }
+
+ $user = get_user_by( 'id', $user_id );
+ if ( isset( $user->cap_key ) && $meta_key === $user->cap_key ) {
+ $this->add_flags( $user_id, array( 'capabilities_changed' => true ) );
+ }
+
+ if ( $this->is_create_user() || $this->is_add_user_to_blog() || $this->is_delete_user() ) {
+ return;
+ }
+
+ if ( isset( $this->flags[ $user_id ] ) ) {
+ /**
+ * This action is documented already in this file
+ */
+ do_action( 'jetpack_sync_save_user', $user_id, $this->get_flags( $user_id ) );
+ }
+ }
+
+ /**
+ * Enqueue the users actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ global $wpdb;
+
+ return $this->enqueue_all_ids_as_action( 'jetpack_full_sync_users', $wpdb->usermeta, 'user_id', $this->get_where_sql( $config ), $max_items_to_enqueue, $state );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @todo Refactor to prepare the SQL query before executing it.
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ global $wpdb;
+
+ $query = "SELECT count(*) FROM $wpdb->usermeta";
+
+ $where_sql = $this->get_where_sql( $config );
+ if ( $where_sql ) {
+ $query .= ' WHERE ' . $where_sql;
+ }
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / self::ARRAY_CHUNK_SIZE );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause, or `null` if no comments are specified in the module config.
+ */
+ public function get_where_sql( $config ) {
+ global $wpdb;
+
+ $query = "meta_key = '{$wpdb->prefix}user_level' AND meta_value > 0";
+
+ // The $config variable is a list of user IDs to sync.
+ if ( is_array( $config ) ) {
+ $query .= ' AND user_id IN (' . implode( ',', array_map( 'intval', $config ) ) . ')';
+ }
+
+ return $query;
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_users' );
+ }
+
+ /**
+ * Retrieve initial sync user config.
+ *
+ * @access public
+ *
+ * @todo Refactor the SQL query to call $wpdb->prepare() before execution.
+ *
+ * @return array|boolean IDs of users to initially sync, or false if tbe number of users exceed the maximum.
+ */
+ public function get_initial_sync_user_config() {
+ global $wpdb;
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $user_ids = $wpdb->get_col( "SELECT user_id FROM $wpdb->usermeta WHERE meta_key = '{$wpdb->prefix}user_level' AND meta_value > 0 LIMIT " . ( self::MAX_INITIAL_SYNC_USERS + 1 ) );
+
+ if ( count( $user_ids ) <= self::MAX_INITIAL_SYNC_USERS ) {
+ return $user_ids;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Expand the users within a hook before they are serialized and sent to the server.
+ *
+ * @access public
+ *
+ * @param array $args The hook arguments.
+ * @return array $args The hook arguments.
+ */
+ public function expand_users( $args ) {
+ list( $user_ids, $previous_end ) = $args;
+
+ return array(
+ 'users' => array_map(
+ array( $this, 'sanitize_user_and_expand' ),
+ get_users(
+ array(
+ 'include' => $user_ids,
+ 'orderby' => 'ID',
+ 'order' => 'DESC',
+ )
+ )
+ ),
+ 'previous_end' => $previous_end,
+ );
+ }
+
+ /**
+ * Handler for user removal from a particular blog.
+ *
+ * @access public
+ *
+ * @param int $user_id ID of the user.
+ * @param int $blog_id ID of the blog.
+ */
+ public function remove_user_from_blog_handler( $user_id, $blog_id ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // User is removed on add, see https://github.com/WordPress/WordPress/blob/0401cee8b36df3def8e807dd766adc02b359dfaf/wp-includes/ms-functions.php#L2114.
+ if ( $this->is_add_new_user_to_blog() ) {
+ return;
+ }
+
+ $reassigned_user_id = $this->get_reassigned_network_user_id();
+
+ // Note that we are in the context of the blog the user is removed from, see https://github.com/WordPress/WordPress/blob/473e1ba73bc5c18c72d7f288447503713d518790/wp-includes/ms-functions.php#L233.
+ /**
+ * Fires when a user is removed from a blog on a multisite installation
+ *
+ * @since 1.6.3
+ * @since-jetpack 5.4.0
+ *
+ * @param int $user_id - ID of the removed user
+ * @param int $reassigned_user_id - ID of the user the removed user's posts are reassigned to (if any).
+ */
+ do_action( 'jetpack_removed_user_from_blog', $user_id, $reassigned_user_id );
+ }
+
+ /**
+ * Whether we're adding a new user to a blog in this request.
+ *
+ * @access protected
+ *
+ * @return boolean
+ */
+ protected function is_add_new_user_to_blog() {
+ return $this->is_function_in_backtrace( 'add_new_user_to_blog' );
+ }
+
+ /**
+ * Whether we're adding an existing user to a blog in this request.
+ *
+ * @access protected
+ *
+ * @return boolean
+ */
+ protected function is_add_user_to_blog() {
+ return $this->is_function_in_backtrace( 'add_user_to_blog' );
+ }
+
+ /**
+ * Whether we're removing a user from a blog in this request.
+ *
+ * @access protected
+ *
+ * @return boolean
+ */
+ protected function is_delete_user() {
+ return $this->is_function_in_backtrace( array( 'wp_delete_user', 'remove_user_from_blog' ) );
+ }
+
+ /**
+ * Whether we're creating a user or adding a new user to a blog.
+ *
+ * @access protected
+ *
+ * @return boolean
+ */
+ protected function is_create_user() {
+ $functions = array(
+ 'add_new_user_to_blog', // Used to suppress jetpack_sync_save_user in save_user_cap_handler when user registered on multi site.
+ 'wp_create_user', // Used to suppress jetpack_sync_save_user in save_user_role_handler when user registered on multi site.
+ 'wp_insert_user', // Used to suppress jetpack_sync_save_user in save_user_cap_handler and save_user_role_handler when user registered on single site.
+ );
+
+ return $this->is_function_in_backtrace( $functions );
+ }
+
+ /**
+ * Retrieve the ID of the user the removed user's posts are reassigned to (if any).
+ *
+ * @return int ID of the user that got reassigned as the author of the posts.
+ */
+ protected function get_reassigned_network_user_id() {
+ $backtrace = debug_backtrace( false ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+ foreach ( $backtrace as $call ) {
+ if (
+ 'remove_user_from_blog' === $call['function'] &&
+ 3 === count( $call['args'] )
+ ) {
+ return $call['args'][2];
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if one or more function names is in debug_backtrace.
+ *
+ * @access protected
+ *
+ * @param array|string $names Mixed string name of function or array of string names of functions.
+ * @return bool
+ */
+ protected function is_function_in_backtrace( $names ) {
+ $backtrace = debug_backtrace( false ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+ if ( ! is_array( $names ) ) {
+ $names = array( $names );
+ }
+ $names_as_keys = array_flip( $names );
+
+ // Do check in constant O(1) time for PHP5.5+.
+ if ( function_exists( 'array_column' ) ) {
+ $backtrace_functions = array_column( $backtrace, 'function' ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.array_columnFound
+ $backtrace_functions_as_keys = array_flip( $backtrace_functions );
+ $intersection = array_intersect_key( $backtrace_functions_as_keys, $names_as_keys );
+ return ! empty( $intersection );
+ }
+
+ // Do check in linear O(n) time for < PHP5.5 ( using isset at least prevents O(n^2) ).
+ foreach ( $backtrace as $call ) {
+ if ( isset( $names_as_keys[ $call['function'] ] ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php
new file mode 100644
index 00000000..493d9c43
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php
@@ -0,0 +1,613 @@
+<?php
+/**
+ * WooCommerce sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+use WP_Error;
+
+/**
+ * Class to handle sync for WooCommerce.
+ */
+class WooCommerce extends Module {
+ /**
+ * Whitelist for order item meta we are interested to sync.
+ *
+ * @access private
+ *
+ * @var array
+ */
+ public static $order_item_meta_whitelist = array(
+ // See https://github.com/woocommerce/woocommerce/blob/master/includes/data-stores/class-wc-order-item-product-store.php#L20 .
+ '_product_id',
+ '_variation_id',
+ '_qty',
+ // Tax ones also included in below class
+ // See https://github.com/woocommerce/woocommerce/blob/master/includes/data-stores/class-wc-order-item-fee-data-store.php#L20 .
+ '_tax_class',
+ '_tax_status',
+ '_line_subtotal',
+ '_line_subtotal_tax',
+ '_line_total',
+ '_line_tax',
+ '_line_tax_data',
+ // See https://github.com/woocommerce/woocommerce/blob/master/includes/data-stores/class-wc-order-item-shipping-data-store.php#L20 .
+ 'method_id',
+ 'cost',
+ 'total_tax',
+ 'taxes',
+ // See https://github.com/woocommerce/woocommerce/blob/master/includes/data-stores/class-wc-order-item-tax-data-store.php#L20 .
+ 'rate_id',
+ 'label',
+ 'compound',
+ 'tax_amount',
+ 'shipping_tax_amount',
+ // See https://github.com/woocommerce/woocommerce/blob/master/includes/data-stores/class-wc-order-item-coupon-data-store.php .
+ 'discount_amount',
+ 'discount_amount_tax',
+ );
+
+ /**
+ * Name of the order item database table.
+ *
+ * @access private
+ *
+ * @var string
+ */
+ private $order_item_table_name;
+
+ /**
+ * The table in the database.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function table_name() {
+ return $this->order_item_table_name;
+ }
+
+ /**
+ * Constructor.
+ *
+ * @global $wpdb
+ *
+ * @todo Should we refactor this to use $this->set_defaults() instead?
+ */
+ public function __construct() {
+ global $wpdb;
+ $this->order_item_table_name = $wpdb->prefix . 'woocommerce_order_items';
+
+ // Options, constants and post meta whitelists.
+ add_filter( 'jetpack_sync_options_whitelist', array( $this, 'add_woocommerce_options_whitelist' ), 10 );
+ add_filter( 'jetpack_sync_constants_whitelist', array( $this, 'add_woocommerce_constants_whitelist' ), 10 );
+ add_filter( 'jetpack_sync_post_meta_whitelist', array( $this, 'add_woocommerce_post_meta_whitelist' ), 10 );
+ add_filter( 'jetpack_sync_comment_meta_whitelist', array( $this, 'add_woocommerce_comment_meta_whitelist' ), 10 );
+
+ add_filter( 'jetpack_sync_before_enqueue_woocommerce_new_order_item', array( $this, 'filter_order_item' ) );
+ add_filter( 'jetpack_sync_before_enqueue_woocommerce_update_order_item', array( $this, 'filter_order_item' ) );
+ add_filter( 'jetpack_sync_whitelisted_comment_types', array( $this, 'add_review_comment_types' ) );
+
+ // Blacklist Action Scheduler comment types.
+ add_filter( 'jetpack_sync_prevent_sending_comment_data', array( $this, 'filter_action_scheduler_comments' ), 10, 2 );
+ }
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'woocommerce';
+ }
+
+ /**
+ * Initialize WooCommerce action listeners.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_listeners( $callable ) {
+ // Attributes.
+ add_action( 'woocommerce_attribute_added', $callable, 10, 2 );
+ add_action( 'woocommerce_attribute_updated', $callable, 10, 3 );
+ add_action( 'woocommerce_attribute_deleted', $callable, 10, 3 );
+
+ // Orders.
+ add_action( 'woocommerce_new_order', $callable, 10, 1 );
+ add_action( 'woocommerce_order_status_changed', $callable, 10, 3 );
+ add_action( 'woocommerce_payment_complete', $callable, 10, 1 );
+
+ // Order items.
+ add_action( 'woocommerce_new_order_item', $callable, 10, 4 );
+ add_action( 'woocommerce_update_order_item', $callable, 10, 4 );
+ add_action( 'woocommerce_delete_order_item', $callable, 10, 1 );
+ $this->init_listeners_for_meta_type( 'order_item', $callable );
+
+ // Payment tokens.
+ add_action( 'woocommerce_new_payment_token', $callable, 10, 1 );
+ add_action( 'woocommerce_payment_token_deleted', $callable, 10, 2 );
+ add_action( 'woocommerce_payment_token_updated', $callable, 10, 1 );
+ $this->init_listeners_for_meta_type( 'payment_token', $callable );
+
+ // Product downloads.
+ add_action( 'woocommerce_downloadable_product_download_log_insert', $callable, 10, 1 );
+ add_action( 'woocommerce_grant_product_download_access', $callable, 10, 1 );
+
+ // Tax rates.
+ add_action( 'woocommerce_tax_rate_added', $callable, 10, 2 );
+ add_action( 'woocommerce_tax_rate_updated', $callable, 10, 2 );
+ add_action( 'woocommerce_tax_rate_deleted', $callable, 10, 1 );
+
+ // Webhooks.
+ add_action( 'woocommerce_new_webhook', $callable, 10, 1 );
+ add_action( 'woocommerce_webhook_deleted', $callable, 10, 2 );
+ add_action( 'woocommerce_webhook_updated', $callable, 10, 1 );
+ }
+
+ /**
+ * Initialize WooCommerce action listeners for full sync.
+ *
+ * @access public
+ *
+ * @param callable $callable Action handler callable.
+ */
+ public function init_full_sync_listeners( $callable ) {
+ add_action( 'jetpack_full_sync_woocommerce_order_items', $callable ); // Also sends post meta.
+ }
+
+ /**
+ * Retrieve the actions that will be sent for this module during a full sync.
+ *
+ * @access public
+ *
+ * @return array Full sync actions of this module.
+ */
+ public function get_full_sync_actions() {
+ return array( 'jetpack_full_sync_woocommerce_order_items' );
+ }
+
+ /**
+ * Initialize the module in the sender.
+ *
+ * @access public
+ */
+ public function init_before_send() {
+ // Full sync.
+ add_filter( 'jetpack_sync_before_send_jetpack_full_sync_woocommerce_order_items', array( $this, 'expand_order_item_ids' ) );
+ }
+
+ /**
+ * Expand the order items properly.
+ *
+ * @access public
+ *
+ * @param array $args The hook arguments.
+ * @return array $args The hook arguments.
+ */
+ public function filter_order_item( $args ) {
+ // Make sure we always have all the data - prior to WooCommerce 3.0 we only have the user supplied data in the second argument and not the full details.
+ $args[1] = $this->build_order_item( $args[0] );
+ return $args;
+ }
+
+ /**
+ * Expand order item IDs to order items and their meta.
+ *
+ * @access public
+ *
+ * @todo Refactor table name to use a $wpdb->prepare placeholder.
+ *
+ * @param array $args The hook arguments.
+ * @return array $args Expanded order items with meta.
+ */
+ public function expand_order_item_ids( $args ) {
+ $order_item_ids = $args[0];
+
+ global $wpdb;
+
+ $order_item_ids_sql = implode( ', ', array_map( 'intval', $order_item_ids ) );
+
+ $order_items = $wpdb->get_results(
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ "SELECT * FROM $this->order_item_table_name WHERE order_item_id IN ( $order_item_ids_sql )"
+ );
+
+ return array(
+ $order_items,
+ $this->get_metadata( $order_item_ids, 'order_item', static::$order_item_meta_whitelist ),
+ );
+ }
+
+ /**
+ * Extract the full order item from the database by its ID.
+ *
+ * @access public
+ *
+ * @todo Refactor table name to use a $wpdb->prepare placeholder.
+ *
+ * @param int $order_item_id Order item ID.
+ * @return object Order item.
+ */
+ public function build_order_item( $order_item_id ) {
+ global $wpdb;
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ return $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $this->order_item_table_name WHERE order_item_id = %d", $order_item_id ) );
+ }
+
+ /**
+ * Enqueue the WooCommerce actions for full sync.
+ *
+ * @access public
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @param int $max_items_to_enqueue Maximum number of items to enqueue.
+ * @param boolean $state True if full sync has finished enqueueing this module, false otherwise.
+ * @return array Number of actions enqueued, and next module state.
+ */
+ public function enqueue_full_sync_actions( $config, $max_items_to_enqueue, $state ) {
+ return $this->enqueue_all_ids_as_action( 'jetpack_full_sync_woocommerce_order_items', $this->order_item_table_name, 'order_item_id', $this->get_where_sql( $config ), $max_items_to_enqueue, $state );
+ }
+
+ /**
+ * Retrieve an estimated number of actions that will be enqueued.
+ *
+ * @access public
+ *
+ * @todo Refactor the SQL query to use $wpdb->prepare().
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return array Number of items yet to be enqueued.
+ */
+ public function estimate_full_sync_actions( $config ) {
+ global $wpdb;
+
+ $query = "SELECT count(*) FROM $this->order_item_table_name WHERE " . $this->get_where_sql( $config );
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $count = $wpdb->get_var( $query );
+
+ return (int) ceil( $count / self::ARRAY_CHUNK_SIZE );
+ }
+
+ /**
+ * Retrieve the WHERE SQL clause based on the module config.
+ *
+ * @access private
+ *
+ * @param array $config Full sync configuration for this sync module.
+ * @return string WHERE SQL clause.
+ */
+ public function get_where_sql( $config ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return '1=1';
+ }
+
+ /**
+ * Add WooCommerce options to the options whitelist.
+ *
+ * @param array $list Existing options whitelist.
+ * @return array Updated options whitelist.
+ */
+ public function add_woocommerce_options_whitelist( $list ) {
+ return array_merge( $list, self::$wc_options_whitelist );
+ }
+
+ /**
+ * Add WooCommerce constants to the constants whitelist.
+ *
+ * @param array $list Existing constants whitelist.
+ * @return array Updated constants whitelist.
+ */
+ public function add_woocommerce_constants_whitelist( $list ) {
+ return array_merge( $list, self::$wc_constants_whitelist );
+ }
+
+ /**
+ * Add WooCommerce post meta to the post meta whitelist.
+ *
+ * @param array $list Existing post meta whitelist.
+ * @return array Updated post meta whitelist.
+ */
+ public function add_woocommerce_post_meta_whitelist( $list ) {
+ return array_merge( $list, self::$wc_post_meta_whitelist );
+ }
+
+ /**
+ * Add WooCommerce comment meta to the comment meta whitelist.
+ *
+ * @param array $list Existing comment meta whitelist.
+ * @return array Updated comment meta whitelist.
+ */
+ public function add_woocommerce_comment_meta_whitelist( $list ) {
+ return array_merge( $list, self::$wc_comment_meta_whitelist );
+ }
+
+ /**
+ * Adds 'revew' to the list of comment types so Sync will listen for status changes on 'reviews'.
+ *
+ * @access public
+ *
+ * @param array $comment_types The list of comment types prior to this filter.
+ * return array The list of comment types with 'review' added.
+ */
+ public function add_review_comment_types( $comment_types ) {
+ if ( is_array( $comment_types ) ) {
+ $comment_types[] = 'review';
+ }
+ return $comment_types;
+ }
+
+ /**
+ * Stop comments from the Action Scheduler from being synced.
+ * https://github.com/woocommerce/woocommerce/tree/e7762627c37ec1f7590e6cac4218ba0c6a20024d/includes/libraries/action-scheduler
+ *
+ * @since 1.6.3
+ * @since-jetpack 7.7.0
+ *
+ * @param boolean $can_sync Should we prevent comment data from bing synced to WordPress.com.
+ * @param mixed $comment WP_COMMENT object.
+ *
+ * @return bool
+ */
+ public function filter_action_scheduler_comments( $can_sync, $comment ) {
+ if ( isset( $comment->comment_agent ) && 'ActionScheduler' === $comment->comment_agent ) {
+ return true;
+ }
+ return $can_sync;
+ }
+
+ /**
+ * Whitelist for options we are interested to sync.
+ *
+ * @access private
+ * @static
+ *
+ * @var array
+ */
+ private static $wc_options_whitelist = array(
+ 'woocommerce_currency',
+ 'woocommerce_db_version',
+ 'woocommerce_weight_unit',
+ 'woocommerce_version',
+ 'woocommerce_unforce_ssl_checkout',
+ 'woocommerce_tax_total_display',
+ 'woocommerce_tax_round_at_subtotal',
+ 'woocommerce_tax_display_shop',
+ 'woocommerce_tax_display_cart',
+ 'woocommerce_prices_include_tax',
+ 'woocommerce_price_thousand_sep',
+ 'woocommerce_price_num_decimals',
+ 'woocommerce_price_decimal_sep',
+ 'woocommerce_notify_low_stock',
+ 'woocommerce_notify_low_stock_amount',
+ 'woocommerce_notify_no_stock',
+ 'woocommerce_notify_no_stock_amount',
+ 'woocommerce_manage_stock',
+ 'woocommerce_force_ssl_checkout',
+ 'woocommerce_hide_out_of_stock_items',
+ 'woocommerce_file_download_method',
+ 'woocommerce_enable_signup_and_login_from_checkout',
+ 'woocommerce_enable_shipping_calc',
+ 'woocommerce_enable_review_rating',
+ 'woocommerce_enable_guest_checkout',
+ 'woocommerce_enable_coupons',
+ 'woocommerce_enable_checkout_login_reminder',
+ 'woocommerce_enable_ajax_add_to_cart',
+ 'woocommerce_dimension_unit',
+ 'woocommerce_default_country',
+ 'woocommerce_default_customer_address',
+ 'woocommerce_currency_pos',
+ 'woocommerce_api_enabled',
+ 'woocommerce_allow_tracking',
+ 'woocommerce_task_list_hidden',
+ 'woocommerce_onboarding_profile',
+ );
+
+ /**
+ * Whitelist for constants we are interested to sync.
+ *
+ * @access private
+ * @static
+ *
+ * @var array
+ */
+ private static $wc_constants_whitelist = array(
+ // WooCommerce constants.
+ 'WC_PLUGIN_FILE',
+ 'WC_ABSPATH',
+ 'WC_PLUGIN_BASENAME',
+ 'WC_VERSION',
+ 'WOOCOMMERCE_VERSION',
+ 'WC_ROUNDING_PRECISION',
+ 'WC_DISCOUNT_ROUNDING_MODE',
+ 'WC_TAX_ROUNDING_MODE',
+ 'WC_DELIMITER',
+ 'WC_LOG_DIR',
+ 'WC_SESSION_CACHE_GROUP',
+ 'WC_TEMPLATE_DEBUG_MODE',
+ );
+
+ /**
+ * Whitelist for post meta we are interested to sync.
+ *
+ * @access private
+ * @static
+ *
+ * @var array
+ */
+ private static $wc_post_meta_whitelist = array(
+ // WooCommerce products.
+ // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-product-data-store-cpt.php#L21 .
+ '_visibility',
+ '_sku',
+ '_price',
+ '_regular_price',
+ '_sale_price',
+ '_sale_price_dates_from',
+ '_sale_price_dates_to',
+ 'total_sales',
+ '_tax_status',
+ '_tax_class',
+ '_manage_stock',
+ '_backorders',
+ '_sold_individually',
+ '_weight',
+ '_length',
+ '_width',
+ '_height',
+ '_upsell_ids',
+ '_crosssell_ids',
+ '_purchase_note',
+ '_default_attributes',
+ '_product_attributes',
+ '_virtual',
+ '_downloadable',
+ '_download_limit',
+ '_download_expiry',
+ '_featured',
+ '_downloadable_files',
+ '_wc_rating_count',
+ '_wc_average_rating',
+ '_wc_review_count',
+ '_variation_description',
+ '_thumbnail_id',
+ '_file_paths',
+ '_product_image_gallery',
+ '_product_version',
+ '_wp_old_slug',
+
+ // Woocommerce orders.
+ // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-order-data-store-cpt.php#L27 .
+ '_order_key',
+ '_order_currency',
+ // '_billing_first_name', do not sync these as they contain personal data
+ // '_billing_last_name',
+ // '_billing_company',
+ // '_billing_address_1',
+ // '_billing_address_2',
+ '_billing_city',
+ '_billing_state',
+ '_billing_postcode',
+ '_billing_country',
+ // '_billing_email', do not sync these as they contain personal data.
+ // '_billing_phone',
+ // '_shipping_first_name',
+ // '_shipping_last_name',
+ // '_shipping_company',
+ // '_shipping_address_1',
+ // '_shipping_address_2',
+ '_shipping_city',
+ '_shipping_state',
+ '_shipping_postcode',
+ '_shipping_country',
+ '_completed_date',
+ '_paid_date',
+ '_cart_discount',
+ '_cart_discount_tax',
+ '_order_shipping',
+ '_order_shipping_tax',
+ '_order_tax',
+ '_order_total',
+ '_payment_method',
+ '_payment_method_title',
+ // '_transaction_id', do not sync these as they contain personal data.
+ // '_customer_ip_address',
+ // '_customer_user_agent',
+ '_created_via',
+ '_order_version',
+ '_prices_include_tax',
+ '_date_completed',
+ '_date_paid',
+ '_payment_tokens',
+ '_billing_address_index',
+ '_shipping_address_index',
+ '_recorded_sales',
+ '_recorded_coupon_usage_counts',
+ // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-order-data-store-cpt.php#L539 .
+ '_download_permissions_granted',
+ // See https://github.com/woocommerce/woocommerce/blob/8ed6e7436ff87c2153ed30edd83c1ab8abbdd3e9/includes/data-stores/class-wc-order-data-store-cpt.php#L594 .
+ '_order_stock_reduced',
+
+ // Woocommerce order refunds.
+ // See https://github.com/woocommerce/woocommerce/blob/b8a2815ae546c836467008739e7ff5150cb08e93/includes/data-stores/class-wc-order-refund-data-store-cpt.php#L20 .
+ '_order_currency',
+ '_refund_amount',
+ '_refunded_by',
+ '_refund_reason',
+ '_order_shipping',
+ '_order_shipping_tax',
+ '_order_tax',
+ '_order_total',
+ '_order_version',
+ '_prices_include_tax',
+ '_payment_tokens',
+ );
+
+ /**
+ * Whitelist for comment meta we are interested to sync.
+ *
+ * @access private
+ * @static
+ *
+ * @var array
+ */
+ private static $wc_comment_meta_whitelist = array(
+ 'rating',
+ );
+
+ /**
+ * Return a list of objects by their type and IDs
+ *
+ * @param string $object_type Object type.
+ * @param array $ids IDs of objects to return.
+ *
+ * @access public
+ *
+ * @return array|object|WP_Error|null
+ */
+ public function get_objects_by_id( $object_type, $ids ) {
+ switch ( $object_type ) {
+ case 'order_item':
+ return $this->get_order_item_by_ids( $ids );
+ }
+
+ return new WP_Error( 'unsupported_object_type', 'Unsupported object type' );
+ }
+
+ /**
+ * Returns a list of order_item objects by their IDs.
+ *
+ * @param array $ids List of order_item IDs to fetch.
+ *
+ * @access public
+ *
+ * @return array|object|null
+ */
+ public function get_order_item_by_ids( $ids ) {
+ global $wpdb;
+
+ if ( ! is_array( $ids ) ) {
+ return array();
+ }
+
+ // Make sure the IDs are numeric and are non-zero.
+ $ids = array_filter( array_map( 'intval', $ids ) );
+
+ if ( empty( $ids ) ) {
+ return array();
+ }
+
+ // Prepare the placeholders for the prepared query below.
+ $placeholders = implode( ',', array_fill( 0, count( $ids ), '%d' ) );
+
+ $query = "SELECT * FROM {$this->order_item_table_name} WHERE order_item_id IN ( $placeholders )";
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ return $wpdb->get_results( $wpdb->prepare( $query, $ids ), ARRAY_A );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php
new file mode 100644
index 00000000..af4aec41
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php
@@ -0,0 +1,156 @@
+<?php
+/**
+ * WP_Super_Cache sync module.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Modules;
+
+/**
+ * Class to handle sync for WP_Super_Cache.
+ */
+class WP_Super_Cache extends Module {
+ /**
+ * Constructor.
+ *
+ * @todo Should we refactor this to use $this->set_defaults() instead?
+ */
+ public function __construct() {
+ add_filter( 'jetpack_sync_constants_whitelist', array( $this, 'add_wp_super_cache_constants_whitelist' ), 10 );
+ add_filter( 'jetpack_sync_callable_whitelist', array( $this, 'add_wp_super_cache_callable_whitelist' ), 10 );
+ }
+
+ /**
+ * Whitelist for constants we are interested to sync.
+ *
+ * @access public
+ * @static
+ *
+ * @var array
+ */
+ public static $wp_super_cache_constants = array(
+ 'WPLOCKDOWN',
+ 'WPSC_DISABLE_COMPRESSION',
+ 'WPSC_DISABLE_LOCKING',
+ 'WPSC_DISABLE_HTACCESS_UPDATE',
+ 'ADVANCEDCACHEPROBLEM',
+ );
+
+ /**
+ * Container for the whitelist for WP_Super_Cache callables we are interested to sync.
+ *
+ * @access public
+ * @static
+ *
+ * @var array
+ */
+ public static $wp_super_cache_callables = array(
+ 'wp_super_cache_globals' => array( __CLASS__, 'get_wp_super_cache_globals' ),
+ );
+
+ /**
+ * Sync module name.
+ *
+ * @access public
+ *
+ * @return string
+ */
+ public function name() {
+ return 'wp-super-cache';
+ }
+
+ /**
+ * Retrieve all WP_Super_Cache callables we are interested to sync.
+ *
+ * @access public
+ *
+ * @global $wp_cache_mod_rewrite;
+ * @global $cache_enabled;
+ * @global $super_cache_enabled;
+ * @global $ossdlcdn;
+ * @global $cache_rebuild_files;
+ * @global $wp_cache_mobile;
+ * @global $wp_super_cache_late_init;
+ * @global $wp_cache_anon_only;
+ * @global $wp_cache_not_logged_in;
+ * @global $wp_cache_clear_on_post_edit;
+ * @global $wp_cache_mobile_enabled;
+ * @global $wp_super_cache_debug;
+ * @global $cache_max_time;
+ * @global $wp_cache_refresh_single_only;
+ * @global $wp_cache_mfunc_enabled;
+ * @global $wp_supercache_304;
+ * @global $wp_cache_no_cache_for_get;
+ * @global $wp_cache_mutex_disabled;
+ * @global $cache_jetpack;
+ * @global $cache_domain_mapping;
+ *
+ * @return array All WP_Super_Cache callables.
+ */
+ public static function get_wp_super_cache_globals() {
+ global $wp_cache_mod_rewrite;
+ global $cache_enabled;
+ global $super_cache_enabled;
+ global $ossdlcdn;
+ global $cache_rebuild_files;
+ global $wp_cache_mobile;
+ global $wp_super_cache_late_init;
+ global $wp_cache_anon_only;
+ global $wp_cache_not_logged_in;
+ global $wp_cache_clear_on_post_edit;
+ global $wp_cache_mobile_enabled;
+ global $wp_super_cache_debug;
+ global $cache_max_time;
+ global $wp_cache_refresh_single_only;
+ global $wp_cache_mfunc_enabled;
+ global $wp_supercache_304;
+ global $wp_cache_no_cache_for_get;
+ global $wp_cache_mutex_disabled;
+ global $cache_jetpack;
+ global $cache_domain_mapping;
+
+ return array(
+ 'wp_cache_mod_rewrite' => $wp_cache_mod_rewrite,
+ 'cache_enabled' => $cache_enabled,
+ 'super_cache_enabled' => $super_cache_enabled,
+ 'ossdlcdn' => $ossdlcdn,
+ 'cache_rebuild_files' => $cache_rebuild_files,
+ 'wp_cache_mobile' => $wp_cache_mobile,
+ 'wp_super_cache_late_init' => $wp_super_cache_late_init,
+ 'wp_cache_anon_only' => $wp_cache_anon_only,
+ 'wp_cache_not_logged_in' => $wp_cache_not_logged_in,
+ 'wp_cache_clear_on_post_edit' => $wp_cache_clear_on_post_edit,
+ 'wp_cache_mobile_enabled' => $wp_cache_mobile_enabled,
+ 'wp_super_cache_debug' => $wp_super_cache_debug,
+ 'cache_max_time' => $cache_max_time,
+ 'wp_cache_refresh_single_only' => $wp_cache_refresh_single_only,
+ 'wp_cache_mfunc_enabled' => $wp_cache_mfunc_enabled,
+ 'wp_supercache_304' => $wp_supercache_304,
+ 'wp_cache_no_cache_for_get' => $wp_cache_no_cache_for_get,
+ 'wp_cache_mutex_disabled' => $wp_cache_mutex_disabled,
+ 'cache_jetpack' => $cache_jetpack,
+ 'cache_domain_mapping' => $cache_domain_mapping,
+ );
+ }
+
+ /**
+ * Add WP_Super_Cache constants to the constants whitelist.
+ *
+ * @param array $list Existing constants whitelist.
+ * @return array Updated constants whitelist.
+ */
+ public function add_wp_super_cache_constants_whitelist( $list ) {
+ return array_merge( $list, self::$wp_super_cache_constants );
+ }
+
+ /**
+ * Add WP_Super_Cache callables to the callables whitelist.
+ *
+ * @param array $list Existing callables whitelist.
+ * @return array Updated callables whitelist.
+ */
+ public function add_wp_super_cache_callable_whitelist( $list ) {
+ return array_merge( $list, self::$wp_super_cache_callables );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php
new file mode 100644
index 00000000..20f686a6
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php
@@ -0,0 +1,208 @@
+<?php
+/**
+ * Table Checksums Class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Replicastore;
+
+use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Sync;
+use Automattic\Jetpack\Sync\Modules;
+use WP_Error;
+use WP_User_Query;
+
+/**
+ * Class to handle Table Checksums for the User Meta table.
+ */
+class Table_Checksum_Usermeta extends Table_Checksum_Users {
+ /**
+ * Calculate the checksum based on provided range and filters.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param array|null $filter_values Additional filter values. Not used at the moment.
+ * @param bool $granular_result If the returned result should be granular or only the checksum.
+ * @param bool $simple_return_value If we want to use a simple return value for non-granular results (return only the checksum, without wrappers).
+ *
+ * @return array|mixed|object|WP_Error|null
+ */
+ public function calculate_checksum( $range_from = null, $range_to = null, $filter_values = null, $granular_result = false, $simple_return_value = true ) {
+
+ if ( ! Sync\Settings::is_checksum_enabled() ) {
+ return new WP_Error( 'checksum_disabled', 'Checksums are currently disabled.' );
+ }
+
+ /**
+ * First we need to fetch the user IDs for the users that we want to include in the range.
+ *
+ * To keep things a bit simple and avoid filtering issues, let's reuse the `build_filter_statement` that already
+ * exists. Unfortunately we don't
+ */
+ global $wpdb;
+
+ // This call depends on the `range_field` pointing to the `ID` field of the `users` table. Currently, "ID".
+ $range_filter_statement = $this->build_filter_statement( $range_from, $range_to );
+
+ $query = "
+ SELECT
+ DISTINCT {$this->table}.{$this->range_field}
+ FROM
+ {$this->table}
+ JOIN {$wpdb->usermeta} as um_table ON um_table.user_id = {$this->table}.ID
+ WHERE
+ {$range_filter_statement}
+ AND um_table.meta_key = '{$wpdb->prefix}user_level'
+ AND um_table.meta_value > 0
+ ";
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $user_ids = $wpdb->get_col( $query );
+
+ // Chunk the array down to make sure we don't overload the database with queries that are too large.
+ $chunked_user_ids = array_chunk( $user_ids, 500 );
+
+ $checksum_entries = array();
+
+ foreach ( $chunked_user_ids as $user_ids_chunk ) {
+ $user_objects = $this->get_user_objects_by_ids( $user_ids_chunk );
+
+ foreach ( $user_objects as $user_object ) {
+ // expand and sanitize desired meta based on WP.com logic.
+ $user_object = $this->expand_and_sanitize_user_meta( $user_object );
+
+ // Generate checksum entry based on the serialized value if not empty.
+ $checksum_entry = 0;
+ if ( ! empty( $user_object->roles ) ) {
+ $checksum_entry = crc32( implode( '#', array( $this->salt, 'roles', maybe_serialize( $user_object->roles ) ) ) );
+ }
+
+ // Meta only persisted if user is connected to WP.com.
+ if ( ( new Manager( 'jetpack' ) )->is_user_connected( $user_object->ID ) ) {
+ if ( ! empty( $user_object->allcaps ) ) {
+ $checksum_entry += crc32(
+ implode(
+ '#',
+ array(
+ $this->salt,
+ 'capabilities',
+ maybe_serialize( $user_object->allcaps ),
+ )
+ )
+ );
+ }
+ // Explicitly check that locale is not same as site locale.
+ if ( ! empty( $user_object->locale ) && get_locale() !== $user_object->locale ) {
+ $checksum_entry += crc32(
+ implode(
+ '#',
+ array(
+ $this->salt,
+ 'locale',
+ maybe_serialize( $user_object->locale ),
+ )
+ )
+ );
+ }
+ if ( ! empty( $user_object->allowed_mime_types ) ) {
+ $checksum_entry += crc32(
+ implode(
+ '#',
+ array(
+ $this->salt,
+ 'allowed_mime_types',
+ maybe_serialize( $user_object->allowed_mime_types ),
+ )
+ )
+ );
+ }
+ }
+
+ $checksum_entries[ $user_object->ID ] = '' . $checksum_entry;
+ }
+ }
+
+ // Non-granular results need only to sum the different entries.
+ if ( ! $granular_result ) {
+ $checksum_sum = 0;
+ foreach ( $checksum_entries as $entry ) {
+ $checksum_sum += intval( $entry );
+ }
+
+ if ( $simple_return_value ) {
+ return '' . $checksum_sum;
+ }
+
+ return array(
+ 'range' => $range_from . '-' . $range_to,
+ 'checksum' => '' . $checksum_sum,
+ );
+
+ }
+
+ // Granular results.
+ $response = $checksum_entries;
+
+ // Sort the return value for easier comparisons and code flows further down the line.
+ ksort( $response );
+
+ return $response;
+ }
+
+ /**
+ * Expand the User Object with additional meta santized by WP.com logic.
+ *
+ * @param mixed $user_object User Object from WP_User_Query.
+ *
+ * @return mixed $user_object expanded User Object.
+ */
+ protected function expand_and_sanitize_user_meta( $user_object ) {
+ $user_module = Modules::get_module( 'users' );
+ // Expand User Objects based on Sync logic.
+ $user_object = $user_module->expand_user( $user_object );
+
+ // Sanitize location.
+ if ( ! empty( $user_object->locale ) ) {
+ $user_object->locale = wp_strip_all_tags( $user_object->locale, true );
+ }
+
+ // Sanitize allcaps.
+ if ( ! empty( $user_object->allcaps ) ) {
+ $user_object->allcaps = array_map(
+ function ( $cap ) {
+ return (bool) $cap;
+ },
+ $user_object->allcaps
+ );
+ }
+
+ // Sanitize allowed_mime_types.
+ $allowed_mime_types = $user_object->allowed_mime_types;
+ foreach ( $allowed_mime_types as $allowed_mime_type_short => $allowed_mime_type_long ) {
+ $allowed_mime_type_short = wp_strip_all_tags( (string) $allowed_mime_type_short, true );
+ $allowed_mime_type_long = wp_strip_all_tags( (string) $allowed_mime_type_long, true );
+ $allowed_mime_types[ $allowed_mime_type_short ] = $allowed_mime_type_long;
+ }
+ $user_object->allowed_mime_types = $allowed_mime_types;
+
+ // Sanitize roles.
+ if ( is_array( $user_object->roles ) ) {
+ $user_object->roles = array_map( 'sanitize_text_field', $user_object->roles );
+ }
+ return $user_object;
+ }
+
+ /**
+ * Gets a list of `WP_User` objects by their IDs
+ *
+ * @param array $ids List of IDs to fetch.
+ *
+ * @return array
+ */
+ protected function get_user_objects_by_ids( $ids ) {
+ $user_query = new WP_User_Query( array( 'include' => $ids ) );
+
+ return $user_query->get_results();
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php
new file mode 100644
index 00000000..c38ed840
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php
@@ -0,0 +1,184 @@
+<?php
+/**
+ * Table Checksums Class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Replicastore;
+
+/**
+ * Class to handle Table Checksums for the Users table.
+ */
+class Table_Checksum_Users extends Table_Checksum {
+
+ /**
+ * Returns the checksum query. All validation of fields and configurations are expected to occur prior to usage.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param array|null $filter_values Additional filter values. Not used at the moment.
+ * @param bool $granular_result If the function should return a granular result.
+ *
+ * @return string
+ *
+ * @throws Exception Throws an exception if validation fails in the internal function calls.
+ */
+ protected function build_checksum_query( $range_from = null, $range_to = null, $filter_values = null, $granular_result = false ) {
+ global $wpdb;
+
+ // Escape the salt.
+ $salt = $wpdb->prepare( '%s', $this->salt );
+
+ // Prepare the compound key.
+ $key_fields = array();
+
+ // Prefix the fields with the table name, to avoid clashes in queries with sub-queries (e.g. meta tables).
+ foreach ( $this->key_fields as $field ) {
+ $key_fields[] = $this->table . '.' . $field;
+ }
+
+ $key_fields = implode( ',', $key_fields );
+
+ // Prepare the checksum fields.
+ $checksum_fields = array();
+ // Prefix the fields with the table name, to avoid clashes in queries with sub-queries (e.g. meta tables).
+ foreach ( $this->checksum_fields as $field ) {
+ $checksum_fields[] = $this->table . '.' . $field;
+ }
+ // Apply latin1 conversion if enabled.
+ if ( $this->perform_text_conversion ) {
+ // Convert text fields to allow for encoding discrepancies as WP.com is latin1.
+ foreach ( $this->checksum_text_fields as $field ) {
+ $checksum_fields[] = 'CONVERT(' . $this->table . '.' . $field . ' using latin1 )';
+ }
+ } else {
+ // Conversion disabled, default to table prefixing.
+ foreach ( $this->checksum_text_fields as $field ) {
+ $checksum_fields[] = $this->table . '.' . $field;
+ }
+ }
+
+ $checksum_fields_string = implode( ',', array_merge( $checksum_fields, array( $salt ) ) );
+
+ $additional_fields = '';
+ if ( $granular_result ) {
+ // TODO uniq the fields as sometimes(most) range_index is the key and there's no need to select the same field twice.
+ $additional_fields = "
+ {$this->table}.{$this->range_field} as range_index,
+ {$key_fields},
+ ";
+ }
+
+ $filter_stamenet = $this->build_filter_statement( $range_from, $range_to, $filter_values );
+
+ // usermeta join to limit on user_level.
+ $join_statement = "JOIN {$wpdb->usermeta} as um_table ON um_table.user_id = {$this->table}.ID";
+
+ $query = "
+ SELECT
+ {$additional_fields}
+ SUM(
+ CRC32(
+ CONCAT_WS( '#', {$salt}, {$checksum_fields_string} )
+ )
+ ) AS checksum
+ FROM
+ {$this->table}
+ {$join_statement}
+ WHERE
+ {$filter_stamenet}
+ AND um_table.meta_key = '{$wpdb->prefix}user_level'
+ AND um_table.meta_value > 0
+ ";
+
+ /**
+ * We need the GROUP BY only for compound keys.
+ */
+ if ( $granular_result ) {
+ $query .= "
+ GROUP BY {$key_fields}
+ LIMIT 9999999
+ ";
+ }
+
+ return $query;
+ }
+
+ /**
+ * Obtain the min-max values (edges) of the range.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param int|null $limit How many values to return.
+ *
+ * @return array|object|void
+ * @throws Exception Throws an exception if validation fails on the internal function calls.
+ */
+ public function get_range_edges( $range_from = null, $range_to = null, $limit = null ) {
+ global $wpdb;
+
+ $this->validate_fields( array( $this->range_field ) );
+
+ // `trim()` to make sure we don't add the statement if it's empty.
+ $filters = trim( $this->build_filter_statement( $range_from, $range_to ) );
+
+ $filter_statement = '';
+ if ( ! empty( $filters ) ) {
+ $filter_statement = "
+ JOIN {$wpdb->usermeta} as um_table ON um_table.user_id = {$this->table}.ID
+ WHERE
+ {$filters}
+ AND um_table.meta_key = '{$wpdb->prefix}user_level'
+ AND um_table.meta_value > 0
+ ";
+ }
+
+ $query = "
+ SELECT
+ MIN({$this->range_field}) as min_range,
+ MAX({$this->range_field}) as max_range,
+ COUNT( {$this->range_field} ) as item_count
+ FROM
+ ";
+
+ /**
+ * If `$limit` is not specified, we can directly use the table.
+ */
+ if ( ! $limit ) {
+ $query .= "
+ {$this->table}
+ {$filter_statement}
+ ";
+ } else {
+ /**
+ * If there is `$limit` specified, we can't directly use `MIN/MAX()` as they don't work with `LIMIT`.
+ * That's why we will alter the query for this case.
+ */
+ $limit = intval( $limit );
+
+ $query .= "
+ (
+ SELECT
+ {$this->range_field}
+ FROM
+ {$this->table}
+ {$filter_statement}
+ ORDER BY
+ {$this->range_field} ASC
+ LIMIT {$limit}
+ ) as ids_query
+ ";
+ }
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $result = $wpdb->get_row( $query, ARRAY_A );
+
+ if ( ! $result || ! is_array( $result ) ) {
+ throw new Exception( 'Unable to get range edges' );
+ }
+
+ return $result;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php
new file mode 100644
index 00000000..a62050eb
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php
@@ -0,0 +1,826 @@
+<?php
+/**
+ * Table Checksums Class.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+namespace Automattic\Jetpack\Sync\Replicastore;
+
+use Automattic\Jetpack\Sync;
+use Exception;
+use WP_Error;
+
+// TODO add rest endpoints to work with this, hopefully in the same folder.
+/**
+ * Class to handle Table Checksums.
+ */
+class Table_Checksum {
+
+ /**
+ * Table to be checksummed.
+ *
+ * @var string
+ */
+ public $table = '';
+
+ /**
+ * Table Checksum Configuration.
+ *
+ * @var array
+ */
+ public $table_configuration = array();
+
+ /**
+ * Perform Text Conversion to latin1.
+ *
+ * @var boolean
+ */
+ protected $perform_text_conversion = false;
+
+ /**
+ * Field to be used for range queries.
+ *
+ * @var string
+ */
+ public $range_field = '';
+
+ /**
+ * ID Field(s) to be used.
+ *
+ * @var array
+ */
+ public $key_fields = array();
+
+ /**
+ * Field(s) to be used in generating the checksum value.
+ *
+ * @var array
+ */
+ public $checksum_fields = array();
+
+ /**
+ * Field(s) to be used in generating the checksum value that need latin1 conversion.
+ *
+ * @var array
+ */
+ public $checksum_text_fields = array();
+
+ /**
+ * Default filter values for the table
+ *
+ * @var array
+ */
+ public $filter_values = array();
+
+ /**
+ * SQL Query to be used to filter results (allow/disallow).
+ *
+ * @var string
+ */
+ public $additional_filter_sql = '';
+
+ /**
+ * Default Checksum Table Configurations.
+ *
+ * @var array
+ */
+ public $default_tables = array();
+
+ /**
+ * Salt to be used when generating checksum.
+ *
+ * @var string
+ */
+ public $salt = '';
+
+ /**
+ * Tables which are allowed to be checksummed.
+ *
+ * @var string
+ */
+ public $allowed_tables = array();
+
+ /**
+ * If the table has a "parent" table that it's related to.
+ *
+ * @var mixed|null
+ */
+ protected $parent_table = null;
+
+ /**
+ * What field to use for the parent table join, if it has a "parent" table.
+ *
+ * @var mixed|null
+ */
+ protected $parent_join_field = null;
+
+ /**
+ * What field to use for the table join, if it has a "parent" table.
+ *
+ * @var mixed|null
+ */
+ protected $table_join_field = null;
+
+ /**
+ * Some tables might not exist on the remote, and we want to verify they exist, before trying to query them.
+ *
+ * @var callable
+ */
+ protected $is_table_enabled_callback = false;
+
+ /**
+ * Table_Checksum constructor.
+ *
+ * @param string $table The table to calculate checksums for.
+ * @param string $salt Optional salt to add to the checksum.
+ * @param boolean $perform_text_conversion If text fields should be latin1 converted.
+ *
+ * @throws Exception Throws exception from inner functions.
+ */
+ public function __construct( $table, $salt = null, $perform_text_conversion = false ) {
+
+ if ( ! Sync\Settings::is_checksum_enabled() ) {
+ throw new Exception( 'Checksums are currently disabled.' );
+ }
+
+ $this->salt = $salt;
+
+ $this->default_tables = $this->get_default_tables();
+
+ $this->perform_text_conversion = $perform_text_conversion;
+
+ // TODO change filters to allow the array format.
+ // TODO add get_fields or similar method to get things out of the table.
+ // TODO extract this configuration in a better way, still make it work with `$wpdb` names.
+ // TODO take over the replicastore functions and move them over to this class.
+ // TODO make the API work.
+
+ $this->allowed_tables = apply_filters( 'jetpack_sync_checksum_allowed_tables', $this->default_tables );
+
+ $this->table = $this->validate_table_name( $table );
+ $this->table_configuration = $this->allowed_tables[ $table ];
+
+ $this->prepare_fields( $this->table_configuration );
+
+ // Run any callbacks to check if a table is enabled or not.
+ if (
+ is_callable( $this->is_table_enabled_callback )
+ && ! call_user_func( $this->is_table_enabled_callback, $table )
+ ) {
+ throw new Exception( "Unable to use table name: $table" );
+ }
+ }
+
+ /**
+ * Get Default Table configurations.
+ *
+ * @return array
+ */
+ protected function get_default_tables() {
+ global $wpdb;
+
+ return array(
+ 'posts' => array(
+ 'table' => $wpdb->posts,
+ 'range_field' => 'ID',
+ 'key_fields' => array( 'ID' ),
+ 'checksum_fields' => array( 'post_modified_gmt' ),
+ 'filter_values' => Sync\Settings::get_disallowed_post_types_structured(),
+ ),
+ 'postmeta' => array(
+ 'table' => $wpdb->postmeta,
+ 'range_field' => 'post_id',
+ 'key_fields' => array( 'post_id', 'meta_key' ),
+ 'checksum_text_fields' => array( 'meta_key', 'meta_value' ),
+ 'filter_values' => Sync\Settings::get_allowed_post_meta_structured(),
+ 'parent_table' => 'posts',
+ 'parent_join_field' => 'ID',
+ 'table_join_field' => 'post_id',
+ ),
+ 'comments' => array(
+ 'table' => $wpdb->comments,
+ 'range_field' => 'comment_ID',
+ 'key_fields' => array( 'comment_ID' ),
+ 'checksum_fields' => array( 'comment_date_gmt' ),
+ 'filter_values' => array(
+ 'comment_type' => array(
+ 'operator' => 'IN',
+ 'values' => apply_filters(
+ 'jetpack_sync_whitelisted_comment_types',
+ array( '', 'comment', 'trackback', 'pingback', 'review' )
+ ),
+ ),
+ 'comment_approved' => array(
+ 'operator' => 'NOT IN',
+ 'values' => array( 'spam' ),
+ ),
+ ),
+ ),
+ 'commentmeta' => array(
+ 'table' => $wpdb->commentmeta,
+ 'range_field' => 'comment_id',
+ 'key_fields' => array( 'comment_id', 'meta_key' ),
+ 'checksum_text_fields' => array( 'meta_key', 'meta_value' ),
+ 'filter_values' => Sync\Settings::get_allowed_comment_meta_structured(),
+ 'parent_table' => 'comments',
+ 'parent_join_field' => 'comment_ID',
+ 'table_join_field' => 'comment_id',
+ ),
+ 'terms' => array(
+ 'table' => $wpdb->terms,
+ 'range_field' => 'term_id',
+ 'key_fields' => array( 'term_id' ),
+ 'checksum_fields' => array( 'term_id' ),
+ 'checksum_text_fields' => array( 'name', 'slug' ),
+ 'parent_table' => 'term_taxonomy',
+ ),
+ 'termmeta' => array(
+ 'table' => $wpdb->termmeta,
+ 'range_field' => 'term_id',
+ 'key_fields' => array( 'term_id', 'meta_key' ),
+ 'checksum_text_fields' => array( 'meta_key', 'meta_value' ),
+ 'parent_table' => 'term_taxonomy',
+ ),
+ 'term_relationships' => array(
+ 'table' => $wpdb->term_relationships,
+ 'range_field' => 'object_id',
+ 'key_fields' => array( 'object_id' ),
+ 'checksum_fields' => array( 'object_id', 'term_taxonomy_id' ),
+ 'parent_table' => 'term_taxonomy',
+ 'parent_join_field' => 'term_taxonomy_id',
+ 'table_join_field' => 'term_taxonomy_id',
+ ),
+ 'term_taxonomy' => array(
+ 'table' => $wpdb->term_taxonomy,
+ 'range_field' => 'term_taxonomy_id',
+ 'key_fields' => array( 'term_taxonomy_id' ),
+ 'checksum_fields' => array( 'term_taxonomy_id', 'term_id', 'parent' ),
+ 'checksum_text_fields' => array( 'taxonomy', 'description' ),
+ 'filter_values' => Sync\Settings::get_allowed_taxonomies_structured(),
+ ),
+ 'links' => $wpdb->links, // TODO describe in the array format or add exceptions.
+ 'options' => $wpdb->options, // TODO describe in the array format or add exceptions.
+ 'woocommerce_order_items' => array(
+ 'table' => "{$wpdb->prefix}woocommerce_order_items",
+ 'range_field' => 'order_item_id',
+ 'key_fields' => array( 'order_item_id' ),
+ 'checksum_fields' => array( 'order_id' ),
+ 'checksum_text_fields' => array( 'order_item_name', 'order_item_type' ),
+ 'is_table_enabled_callback' => array( $this, 'enable_woocommerce_tables' ),
+ ),
+ 'woocommerce_order_itemmeta' => array(
+ 'table' => "{$wpdb->prefix}woocommerce_order_itemmeta",
+ 'range_field' => 'order_item_id',
+ 'key_fields' => array( 'order_item_id', 'meta_key' ),
+ 'checksum_text_fields' => array( 'meta_key', 'meta_value' ),
+ 'filter_values' => Sync\Settings::get_allowed_order_itemmeta_structured(),
+ 'parent_table' => 'woocommerce_order_items',
+ 'parent_join_field' => 'order_item_id',
+ 'table_join_field' => 'order_item_id',
+ 'is_table_enabled_callback' => array( $this, 'enable_woocommerce_tables' ),
+ ),
+ 'users' => array(
+ 'table' => $wpdb->users,
+ 'range_field' => 'ID',
+ 'key_fields' => array( 'ID' ),
+ 'checksum_text_fields' => array( 'user_login', 'user_nicename', 'user_email', 'user_url', 'user_registered', 'user_status', 'display_name' ),
+ 'filter_values' => array(),
+ ),
+
+ /**
+ * Usermeta is a special table, as it needs to use a custom override flow,
+ * as the user roles, capabilities, locale, mime types can be filtered by plugins.
+ * This prevents us from doing a direct comparison in the database.
+ */
+ 'usermeta' => array(
+ 'table' => $wpdb->users,
+ /**
+ * Range field points to ID, which in this case is the `WP_User` ID,
+ * since we're querying the whole WP_User objects, instead of meta entries in the DB.
+ */
+ 'range_field' => 'ID',
+ 'key_fields' => array(),
+ 'checksum_fields' => array(),
+ ),
+ );
+ }
+
+ /**
+ * Prepare field params based off provided configuration.
+ *
+ * @param array $table_configuration The table configuration array.
+ */
+ protected function prepare_fields( $table_configuration ) {
+ $this->key_fields = $table_configuration['key_fields'];
+ $this->range_field = $table_configuration['range_field'];
+ $this->checksum_fields = isset( $table_configuration['checksum_fields'] ) ? $table_configuration['checksum_fields'] : array();
+ $this->checksum_text_fields = isset( $table_configuration['checksum_text_fields'] ) ? $table_configuration['checksum_text_fields'] : array();
+ $this->filter_values = isset( $table_configuration['filter_values'] ) ? $table_configuration['filter_values'] : null;
+ $this->additional_filter_sql = ! empty( $table_configuration['filter_sql'] ) ? $table_configuration['filter_sql'] : '';
+ $this->parent_table = isset( $table_configuration['parent_table'] ) ? $table_configuration['parent_table'] : null;
+ $this->parent_join_field = isset( $table_configuration['parent_join_field'] ) ? $table_configuration['parent_join_field'] : $table_configuration['range_field'];
+ $this->table_join_field = isset( $table_configuration['table_join_field'] ) ? $table_configuration['table_join_field'] : $table_configuration['range_field'];
+ $this->is_table_enabled_callback = isset( $table_configuration['is_table_enabled_callback'] ) ? $table_configuration['is_table_enabled_callback'] : false;
+ }
+
+ /**
+ * Verify provided table name is valid for checksum processing.
+ *
+ * @param string $table Table name to validate.
+ *
+ * @return mixed|string
+ * @throws Exception Throw an exception on validation failure.
+ */
+ protected function validate_table_name( $table ) {
+ if ( empty( $table ) ) {
+ throw new Exception( 'Invalid table name: empty' );
+ }
+
+ if ( ! array_key_exists( $table, $this->allowed_tables ) ) {
+ throw new Exception( "Invalid table name: $table not allowed" );
+ }
+
+ return $this->allowed_tables[ $table ]['table'];
+ }
+
+ /**
+ * Verify provided fields are proper names.
+ *
+ * @param array $fields Array of field names to validate.
+ *
+ * @throws Exception Throw an exception on failure to validate.
+ */
+ protected function validate_fields( $fields ) {
+ foreach ( $fields as $field ) {
+ if ( ! preg_match( '/^[0-9,a-z,A-Z$_]+$/i', $field ) ) {
+ throw new Exception( "Invalid field name: $field is not allowed" );
+ }
+
+ // TODO other verifications of the field names.
+ }
+ }
+
+ /**
+ * Verify the fields exist in the table.
+ *
+ * @param array $fields Array of fields to validate.
+ *
+ * @return bool
+ * @throws Exception Throw an exception on failure to validate.
+ */
+ protected function validate_fields_against_table( $fields ) {
+ global $wpdb;
+
+ $valid_fields = array();
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $result = $wpdb->get_results( "SHOW COLUMNS FROM {$this->table}", ARRAY_A );
+
+ foreach ( $result as $result_row ) {
+ $valid_fields[] = $result_row['Field'];
+ }
+
+ // Check if the fields are actually contained in the table.
+ foreach ( $fields as $field_to_check ) {
+ if ( ! in_array( $field_to_check, $valid_fields, true ) ) {
+ throw new Exception( "Invalid field name: field '{$field_to_check}' doesn't exist in table {$this->table}" );
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Verify the configured fields.
+ *
+ * @throws Exception Throw an exception on failure to validate in the internal functions.
+ */
+ protected function validate_input() {
+ $fields = array_merge( array( $this->range_field ), $this->key_fields, $this->checksum_fields, $this->checksum_text_fields );
+
+ $this->validate_fields( $fields );
+ $this->validate_fields_against_table( $fields );
+ }
+
+ /**
+ * Prepare filter values as SQL statements to be added to the other filters.
+ *
+ * @param array $filter_values The filter values array.
+ * @param string $table_prefix If the values are going to be used in a sub-query, add a prefix with the table alias.
+ *
+ * @return array|null
+ */
+ protected function prepare_filter_values_as_sql( $filter_values = array(), $table_prefix = '' ) {
+ global $wpdb;
+
+ if ( ! is_array( $filter_values ) ) {
+ return null;
+ }
+
+ $result = array();
+
+ foreach ( $filter_values as $field => $filter ) {
+ $key = ( ! empty( $table_prefix ) ? $table_prefix : $this->table ) . '.' . $field;
+
+ switch ( $filter['operator'] ) {
+ case 'IN':
+ case 'NOT IN':
+ $values_placeholders = implode( ',', array_fill( 0, count( $filter['values'] ), '%s' ) );
+ $statement = "{$key} {$filter['operator']} ( $values_placeholders )";
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $prepared_statement = $wpdb->prepare( $statement, $filter['values'] );
+
+ $result[] = $prepared_statement;
+ break;
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Build the filter query baased off range fields and values and the additional sql.
+ *
+ * @param int|null $range_from Start of the range.
+ * @param int|null $range_to End of the range.
+ * @param array|null $filter_values Additional filter values. Not used at the moment.
+ * @param string $table_prefix Table name to be prefixed to the columns. Used in sub-queries where columns can clash.
+ *
+ * @return string
+ */
+ public function build_filter_statement( $range_from = null, $range_to = null, $filter_values = null, $table_prefix = '' ) {
+ global $wpdb;
+
+ // If there is a field prefix that we want to use with table aliases.
+ $parent_prefix = ( ! empty( $table_prefix ) ? $table_prefix : $this->table ) . '.';
+
+ /**
+ * Prepare the ranges.
+ */
+
+ $filter_array = array( '1 = 1' );
+ if ( null !== $range_from ) {
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $filter_array[] = $wpdb->prepare( "{$parent_prefix}{$this->range_field} >= %d", array( intval( $range_from ) ) );
+ }
+ if ( null !== $range_to ) {
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
+ $filter_array[] = $wpdb->prepare( "{$parent_prefix}{$this->range_field} <= %d", array( intval( $range_to ) ) );
+ }
+
+ /**
+ * End prepare the ranges.
+ */
+
+ /**
+ * Prepare data filters.
+ */
+
+ // Default filters.
+ if ( $this->filter_values ) {
+ $prepared_values_statements = $this->prepare_filter_values_as_sql( $this->filter_values, $table_prefix );
+ if ( $prepared_values_statements ) {
+ $filter_array = array_merge( $filter_array, $prepared_values_statements );
+ }
+ }
+
+ // Additional filters.
+ if ( ! empty( $filter_values ) ) {
+ // Prepare filtering.
+ $prepared_values_statements = $this->prepare_filter_values_as_sql( $filter_values, $table_prefix );
+ if ( $prepared_values_statements ) {
+ $filter_array = array_merge( $filter_array, $prepared_values_statements );
+ }
+ }
+
+ // Add any additional filters via direct SQL statement.
+ // Currently used only because we haven't converted all filtering to happen via `filter_values`.
+ // This SQL is NOT prefixed and column clashes can occur when used in sub-queries.
+ if ( $this->additional_filter_sql ) {
+ $filter_array[] = $this->additional_filter_sql;
+ }
+
+ /**
+ * End prepare data filters.
+ */
+ return implode( ' AND ', $filter_array );
+ }
+
+ /**
+ * Returns the checksum query. All validation of fields and configurations are expected to occur prior to usage.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param array|null $filter_values Additional filter values. Not used at the moment.
+ * @param bool $granular_result If the function should return a granular result.
+ *
+ * @return string
+ *
+ * @throws Exception Throws an exception if validation fails in the internal function calls.
+ */
+ protected function build_checksum_query( $range_from = null, $range_to = null, $filter_values = null, $granular_result = false ) {
+ global $wpdb;
+
+ // Escape the salt.
+ $salt = $wpdb->prepare( '%s', $this->salt );
+
+ // Prepare the compound key.
+ $key_fields = array();
+
+ // Prefix the fields with the table name, to avoid clashes in queries with sub-queries (e.g. meta tables).
+ foreach ( $this->key_fields as $field ) {
+ $key_fields[] = $this->table . '.' . $field;
+ }
+
+ $key_fields = implode( ',', $key_fields );
+
+ // Prepare the checksum fields.
+ $checksum_fields = array();
+ // Prefix the fields with the table name, to avoid clashes in queries with sub-queries (e.g. meta tables).
+ foreach ( $this->checksum_fields as $field ) {
+ $checksum_fields[] = $this->table . '.' . $field;
+ }
+ // Apply latin1 conversion if enabled.
+ if ( $this->perform_text_conversion ) {
+ // Convert text fields to allow for encoding discrepancies as WP.com is latin1.
+ foreach ( $this->checksum_text_fields as $field ) {
+ $checksum_fields[] = 'CONVERT(' . $this->table . '.' . $field . ' using latin1 )';
+ }
+ } else {
+ // Conversion disabled, default to table prefixing.
+ foreach ( $this->checksum_text_fields as $field ) {
+ $checksum_fields[] = $this->table . '.' . $field;
+ }
+ }
+
+ $checksum_fields_string = implode( ',', array_merge( $checksum_fields, array( $salt ) ) );
+
+ $additional_fields = '';
+ if ( $granular_result ) {
+ // TODO uniq the fields as sometimes(most) range_index is the key and there's no need to select the same field twice.
+ $additional_fields = "
+ {$this->table}.{$this->range_field} as range_index,
+ {$key_fields},
+ ";
+ }
+
+ $filter_stamenet = $this->build_filter_statement( $range_from, $range_to, $filter_values );
+
+ $join_statement = '';
+ if ( $this->parent_table ) {
+ $parent_table_obj = new Table_Checksum( $this->parent_table );
+ $parent_filter_query = $parent_table_obj->build_filter_statement( null, null, null, 'parent_table' );
+
+ // It is possible to have the GROUP By cause multiple rows to be returned for the same row for term_taxonomy.
+ // To get distinct entries we use a correlatd subquery back on the parent table using the primary key.
+ $additional_unique_clause = '';
+ if ( 'term_taxonomy' === $this->parent_table ) {
+ $additional_unique_clause = "
+ AND parent_table.{$parent_table_obj->range_field} = (
+ SELECT min( parent_table_cs.{$parent_table_obj->range_field} )
+ FROM {$parent_table_obj->table} as parent_table_cs
+ WHERE parent_table_cs.{$this->parent_join_field} = {$this->table}.{$this->table_join_field}
+ )
+ ";
+ }
+
+ $join_statement = "
+ INNER JOIN {$parent_table_obj->table} as parent_table
+ ON (
+ {$this->table}.{$this->table_join_field} = parent_table.{$this->parent_join_field}
+ AND {$parent_filter_query}
+ $additional_unique_clause
+ )
+ ";
+ }
+
+ $query = "
+ SELECT
+ {$additional_fields}
+ SUM(
+ CRC32(
+ CONCAT_WS( '#', {$salt}, {$checksum_fields_string} )
+ )
+ ) AS checksum
+ FROM
+ {$this->table}
+ {$join_statement}
+ WHERE
+ {$filter_stamenet}
+ ";
+
+ /**
+ * We need the GROUP BY only for compound keys.
+ */
+ if ( $granular_result ) {
+ $query .= "
+ GROUP BY {$key_fields}
+ LIMIT 9999999
+ ";
+ }
+
+ return $query;
+ }
+
+ /**
+ * Obtain the min-max values (edges) of the range.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param int|null $limit How many values to return.
+ *
+ * @return array|object|void
+ * @throws Exception Throws an exception if validation fails on the internal function calls.
+ */
+ public function get_range_edges( $range_from = null, $range_to = null, $limit = null ) {
+ global $wpdb;
+
+ $this->validate_fields( array( $this->range_field ) );
+
+ // Performance :: When getting the postmeta range we do not want to filter by the whitelist.
+ // The reason for this is that it leads to a non-performant query that can timeout.
+ // Instead lets get the range based on posts regardless of meta.
+ $filter_values = $this->filter_values;
+ if ( 'postmeta' === $this->table ) {
+ $this->filter_values = null;
+ }
+
+ // `trim()` to make sure we don't add the statement if it's empty.
+ $filters = trim( $this->build_filter_statement( $range_from, $range_to ) );
+
+ // Reset Post meta filter.
+ if ( 'postmeta' === $this->table ) {
+ $this->filter_values = $filter_values;
+ }
+
+ $filter_statement = '';
+ if ( ! empty( $filters ) ) {
+ $filter_statement = "
+ WHERE
+ {$filters}
+ ";
+ }
+
+ // Only make the distinct count when we know there can be multiple entries for the range column.
+ $distinct_count = '';
+ if ( count( $this->key_fields ) > 1 || $wpdb->terms === $this->table || $wpdb->term_relationships === $this->table ) {
+ $distinct_count = 'DISTINCT';
+ }
+
+ $query = "
+ SELECT
+ MIN({$this->range_field}) as min_range,
+ MAX({$this->range_field}) as max_range,
+ COUNT( {$distinct_count} {$this->range_field}) as item_count
+ FROM
+ ";
+
+ /**
+ * If `$limit` is not specified, we can directly use the table.
+ */
+ if ( ! $limit ) {
+ $query .= "
+ {$this->table}
+ {$filter_statement}
+ ";
+ } else {
+ /**
+ * If there is `$limit` specified, we can't directly use `MIN/MAX()` as they don't work with `LIMIT`.
+ * That's why we will alter the query for this case.
+ */
+ $limit = intval( $limit );
+
+ $query .= "
+ (
+ SELECT
+ {$distinct_count} {$this->range_field}
+ FROM
+ {$this->table}
+ {$filter_statement}
+ ORDER BY
+ {$this->range_field} ASC
+ LIMIT {$limit}
+ ) as ids_query
+ ";
+ }
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $result = $wpdb->get_row( $query, ARRAY_A );
+
+ if ( ! $result || ! is_array( $result ) ) {
+ throw new Exception( 'Unable to get range edges' );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Update the results to have key/checksum format.
+ *
+ * @param array $results Prepare the results for output of granular results.
+ */
+ protected function prepare_results_for_output( &$results ) {
+ // get the compound key.
+ // only return range and compound key for granular results.
+
+ $return_value = array();
+
+ foreach ( $results as &$result ) {
+ // Working on reference to save memory here.
+
+ $key = array();
+ foreach ( $this->key_fields as $field ) {
+ $key[] = $result[ $field ];
+ }
+
+ $return_value[ implode( '-', $key ) ] = $result['checksum'];
+ }
+
+ return $return_value;
+ }
+
+ /**
+ * Calculate the checksum based on provided range and filters.
+ *
+ * @param int|null $range_from The start of the range.
+ * @param int|null $range_to The end of the range.
+ * @param array|null $filter_values Additional filter values. Not used at the moment.
+ * @param bool $granular_result If the returned result should be granular or only the checksum.
+ * @param bool $simple_return_value If we want to use a simple return value for non-granular results (return only the checksum, without wrappers).
+ *
+ * @return array|mixed|object|WP_Error|null
+ */
+ public function calculate_checksum( $range_from = null, $range_to = null, $filter_values = null, $granular_result = false, $simple_return_value = true ) {
+
+ if ( ! Sync\Settings::is_checksum_enabled() ) {
+ return new WP_Error( 'checksum_disabled', 'Checksums are currently disabled.' );
+ }
+
+ try {
+ $this->validate_input();
+ } catch ( Exception $ex ) {
+ return new WP_Error( 'invalid_input', $ex->getMessage() );
+ }
+
+ $query = $this->build_checksum_query( $range_from, $range_to, $filter_values, $granular_result );
+
+ global $wpdb;
+
+ if ( ! $granular_result ) {
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $result = $wpdb->get_row( $query, ARRAY_A );
+
+ if ( ! is_array( $result ) ) {
+ return new WP_Error( 'invalid_query', "Result wasn't an array" );
+ }
+
+ if ( $simple_return_value ) {
+ return $result['checksum'];
+ }
+
+ return array(
+ 'range' => $range_from . '-' . $range_to,
+ 'checksum' => $result['checksum'],
+ );
+ } else {
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $result = $wpdb->get_results( $query, ARRAY_A );
+ return $this->prepare_results_for_output( $result );
+ }
+ }
+
+ /**
+ * Make sure the WooCommerce tables should be enabled for Checksum/Fix.
+ *
+ * @return bool
+ */
+ protected function enable_woocommerce_tables() {
+ /**
+ * On WordPress.com, we can't directly check if the site has support for WooCommerce.
+ * Having the option to override the functionality here helps with syncing WooCommerce tables.
+ *
+ * @since 10.1
+ *
+ * @param bool If we should we force-enable WooCommerce tables support.
+ */
+ $force_woocommerce_support = apply_filters( 'jetpack_table_checksum_force_enable_woocommerce', false );
+
+ // If we're forcing WooCommerce tables support, there's no need to check further.
+ // This is used on WordPress.com.
+ if ( $force_woocommerce_support ) {
+ return true;
+ }
+
+ // No need to proceed if WooCommerce is not available.
+ if ( ! class_exists( 'WooCommerce' ) ) {
+ return false;
+ }
+
+ // TODO more checks if needed. Probably query the DB to make sure the tables exist.
+
+ return true;
+ }
+
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/CHANGELOG.md
new file mode 100644
index 00000000..f9b91333
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/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).
+
+## [1.9.18] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+
+## [1.9.17] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.9.16] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.9.15] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.9.14] - 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.9.13] - 2021-10-26
+### Changed
+- Updated package dependencies.
+
+## [1.9.12] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.9.11] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.9.10] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.9.9] - 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.9.8] - 2021-06-15
+
+- Updated package dependencies.
+
+## [1.9.7] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.9.6] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.9.5] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.9.4] - 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.9.3] - 2021-02-23
+
+- CI: Make tests more generic
+
+## [1.9.2] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.9.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.9.0] - 2021-01-05
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.8.2] - 2020-11-24
+
+- Version packages for release
+
+## [1.8.1] - 2020-11-24
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.8.0] - 2020-10-27
+
+- Updated dependencies to latest stable
+
+## [1.7.0] - 2020-09-29
+
+- Update dependencies to latest stable
+
+## [1.6.1] - 2020-09-22
+
+- Packages: update list of files distributed in production packages
+
+## [1.6.0] - 2020-08-26
+
+- ToS: Remove dependency to Jetpack Connection
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.5.2] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.5.1] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.5.0] - 2020-07-28
+
+- Core Compat: Site Environment
+- Package Unit tests: update test file names to make sure they runs in Travis
+
+## [1.4.2] - 2020-07-06
+
+- Update dependencies to latest stable
+
+## [1.4.1] - 2020-07-01
+
+- Update dependencies to latest stable
+
+## [1.4.0] - 2020-06-30
+
+- PHPCS: Clean up the packages
+- PHPCS Updates after WPCS 2.3
+
+## [1.3.1] - 2020-06-01
+
+- Update dependencies to latest stable
+
+## [1.3.0] - 2020-05-26
+
+- Update dependencies to latest stable
+
+## [1.2.0] - 2020-04-28
+
+- Update dependencies to latest stable
+
+## [1.1.1] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.1.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.0.4] - 2019-11-15
+
+- Allow TOS agreement before Jetpack is fully active so we track…
+
+## [1.0.3] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.1] - 2019-11-08
+
+- Deprecate Jetpack::is_development_mode() in favor of the packaged Status()-&gt;is_development_mode()
+
+## 1.0.0 - 2019-10-22
+
+- Package: Create new TOS package
+
+[1.9.18]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.17...v1.9.18
+[1.9.17]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.16...v1.9.17
+[1.9.16]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.15...v1.9.16
+[1.9.15]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.14...v1.9.15
+[1.9.14]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.13...v1.9.14
+[1.9.13]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.12...v1.9.13
+[1.9.12]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.11...v1.9.12
+[1.9.11]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.10...v1.9.11
+[1.9.10]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.9...v1.9.10
+[1.9.9]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.8...v1.9.9
+[1.9.8]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.7...v1.9.8
+[1.9.7]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.6...v1.9.7
+[1.9.6]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.5...v1.9.6
+[1.9.5]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.4...v1.9.5
+[1.9.4]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.3...v1.9.4
+[1.9.3]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.2...v1.9.3
+[1.9.2]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.1...v1.9.2
+[1.9.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.8.2...v1.9.0
+[1.8.2]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.7.0...v1.8.0
+[1.7.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.6.1...v1.7.0
+[1.6.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.5.2...v1.6.0
+[1.5.2]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.4.2...v1.5.0
+[1.4.2]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.1.0...1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.0.4...v1.1.0
+[1.0.4]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.0.1...v1.0.3
+[1.0.1]: https://github.com/Automattic/jetpack-terms-of-service/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php
new file mode 100644
index 00000000..54bdbf1e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php
@@ -0,0 +1,112 @@
+<?php
+/**
+ * A Terms of Service class for Jetpack.
+ *
+ * @package automattic/jetpack-terms-of-service
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * Class Terms_Of_Service
+ *
+ * Helper class that is responsible for the state of agreement of the terms of service.
+ */
+class Terms_Of_Service {
+ /**
+ * Jetpack option name where the terms of service state is stored.
+ *
+ * @var string
+ */
+ const OPTION_NAME = 'tos_agreed';
+
+ /**
+ * Allow the site to agree to the terms of service.
+ */
+ public function agree() {
+ $this->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/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/CHANGELOG.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/CHANGELOG.md
new file mode 100644
index 00000000..970ab757
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/CHANGELOG.md
@@ -0,0 +1,253 @@
+# 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).
+
+## [1.14.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-tracking`.
+
+## [1.13.19] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.13.18] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.13.17] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.13.16] - 2021-11-16
+### Changed
+- Updated package dependencies.
+
+## [1.13.15] - 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.13.14] - 2021-10-26
+### Changed
+- Updated package dependencies.
+
+## [1.13.13] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.13.12] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.13.11] - 2021-09-30
+### Added
+- Set up the ajax hook in the Tracking class.
+
+## [1.13.10] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.13.9] - 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.13.8] - 2021-08-10
+### Added
+- adding Readme to the tracking package
+
+## [1.13.7] - 2021-06-15
+### Changed
+- Updated package dependencies.
+
+## [1.13.6] - 2021-05-25
+### Added
+- Adding the tracks-callables.js file to the Tracking package.
+
+## [1.13.5] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.13.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.13.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.13.2] - 2021-02-23
+
+- CI: Make tests more generic
+- Jetpack: Normalize package names
+
+## [1.13.1] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.13.0] - 2021-01-26
+
+- Tracking: remove dependency to the Jetpack plugin
+- Add mirror-repo information to all current composer packages
+- Tracking: get connected user data from Connection package
+- Monorepo: Reorganize all projects
+
+## [1.12.0] - 2021-01-05
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.11.1] - 2020-11-24
+
+- Version packages for release
+
+## [1.11.0] - 2020-10-27
+
+- Updated dependencies to latest stable
+
+## [1.10.0] - 2020-09-29
+
+- Packages: update list of files distributed in production packages
+- Tracking: fix the logic for determining when to enable tracking.
+
+## [1.9.1] - 2020-09-09
+
+- Tracking: fix the logic for determining when to enable tracking.
+
+## [1.9.0] - 2020-08-26
+
+- Tracking: Add the connection check.
+
+## [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
+
+- Update dependencies to latest stable
+
+## [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
+
+- Various: Update use of whitelist/blacklist
+
+## [1.6.1] - 2020-06-01
+
+- Update dependencies to latest stable
+
+## [1.6.0] - 2020-05-26
+
+- Update dependencies to latest stable
+
+## [1.5.0] - 2020-04-28
+
+- Update dependencies to latest stable
+
+## [1.4.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.3.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.2.2] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.2.1] - 2019-10-29
+
+- PHPCS: Rest of the packages
+
+## [1.2.0] - 2019-10-25
+
+- Update/Use the new Terms of Service package in Jetpack
+
+## [1.1.1] - 2019-10-16
+
+- Tracks: use filter instead of relying on Jetpack class
+
+## [1.1.0] - 2019-10-11
+
+- Tracks: Don't track users in dev mode or when opted out
+
+## [1.0.2] - 2019-10-07
+
+- Update dependency phpcompatibility/phpcompatibility-wp to v2.1.0
+
+## [1.0.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## 1.0.0 - 2019-09-14
+
+- Create package for Jetpack Tracking
+
+[1.14.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.19...v1.14.0
+[1.13.19]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.18...v1.13.19
+[1.13.18]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.17...v1.13.18
+[1.13.17]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.16...v1.13.17
+[1.13.16]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.15...v1.13.16
+[1.13.15]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.14...v1.13.15
+[1.13.14]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.13...v1.13.14
+[1.13.13]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.12...v1.13.13
+[1.13.12]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.11...v1.13.12
+[1.13.11]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.10...v1.13.11
+[1.13.10]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.9...v1.13.10
+[1.13.9]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.8...v1.13.9
+[1.13.8]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.7...v1.13.8
+[1.13.7]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.6...v1.13.7
+[1.13.6]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.5...v1.13.6
+[1.13.5]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.4...v1.13.5
+[1.13.4]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.3...v1.13.4
+[1.13.3]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.2...v1.13.3
+[1.13.2]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.1...v1.13.2
+[1.13.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.12.0...v1.13.0
+[1.12.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.11.1...v1.12.0
+[1.11.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.11.0...v1.11.1
+[1.11.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.10.0...v1.11.0
+[1.10.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.9.1...v1.10.0
+[1.9.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.8.2...v1.9.0
+[1.8.2]: https://github.com/Automattic/jetpack-tracking/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.7.2...v1.8.0
+[1.7.2]: https://github.com/Automattic/jetpack-tracking/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.6.1...v1.7.0
+[1.6.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-tracking/compare/1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.3.0...1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.2.2...v1.3.0
+[1.2.2]: https://github.com/Automattic/jetpack-tracking/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-tracking/compare/v1.0.2...v1.1.0
+[1.0.2]: https://github.com/Automattic/jetpack-tracking/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-tracking/compare/v1.0.0...v1.0.1
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/LICENSE.txt b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/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.
+
+<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 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/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/SECURITY.md b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/SECURITY.md
new file mode 100644
index 00000000..b4b46c0e
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/SECURITY.md
@@ -0,0 +1,38 @@
+# 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 has continued support. If a critical vulnerability is found in the current version of Jetpack, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+[Jetpack](https://jetpack.com/) is an open-source plugin for WordPress. Our HackerOne program covers the plugin software, as well as a variety of related projects and infrastructure.
+
+**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/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php
new file mode 100644
index 00000000..07829b6c
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php
@@ -0,0 +1,230 @@
+<?php
+/**
+ * Legacy Jetpack Tracks Client
+ *
+ * @package automattic/jetpack-tracking
+ */
+
+use Automattic\Jetpack\Connection\Manager;
+
+/**
+ * Jetpack_Tracks_Client
+ *
+ * @autounit nosara tracks-client
+ *
+ * Send Tracks events on behalf of a user
+ *
+ * Example Usage:
+```php
+ require( dirname(__FILE__).'path/to/tracks/class-jetpack-tracks-client.php' );
+
+ $result = Jetpack_Tracks_Client::record_event( array(
+ '_en' => $event_name, // required
+ '_ui' => $user_id, // required unless _ul is provided
+ '_ul' => $user_login, // required unless _ui is provided
+
+ // Optional, but recommended
+ '_ts' => $ts_in_ms, // Default: now
+ '_via_ip' => $client_ip, // we use it for geo, etc.
+
+ // Possibly useful to set some context for the event
+ '_via_ua' => $client_user_agent,
+ '_via_url' => $client_url,
+ '_via_ref' => $client_referrer,
+
+ // For user-targeted tests
+ 'abtest_name' => $abtest_name,
+ 'abtest_variation' => $abtest_variation,
+
+ // Your application-specific properties
+ 'custom_property' => $some_value,
+ ) );
+
+ if ( is_wp_error( $result ) ) {
+ // Handle the error in your app
+ }
+```
+ */
+class Jetpack_Tracks_Client {
+ const PIXEL = 'https://pixel.wp.com/t.gif';
+ const BROWSER_TYPE = 'php-agent';
+ const USER_AGENT_SLUG = 'tracks-client';
+ const VERSION = '0.3';
+
+ /**
+ * Stores the Terms of Service Object Reference.
+ *
+ * @var null
+ */
+ private static $terms_of_service = null;
+
+ /**
+ * Record an event.
+ *
+ * @param mixed $event Event object to send to Tracks. An array will be cast to object. Required.
+ * Properties are included directly in the pixel query string after light validation.
+ * @return mixed True on success, WP_Error on failure
+ */
+ public static function record_event( $event ) {
+ if ( ! self::$terms_of_service ) {
+ self::$terms_of_service = new \Automattic\Jetpack\Terms_Of_Service();
+ }
+
+ // Don't track users who have opted out or not agreed to our TOS, or are not running an active Jetpack.
+ if ( ! self::$terms_of_service->has_agreed() || ! empty( $_COOKIE['tk_opt-out'] ) ) {
+ return false;
+ }
+
+ if ( ! $event instanceof Jetpack_Tracks_Event ) {
+ $event = new Jetpack_Tracks_Event( $event );
+ }
+ if ( is_wp_error( $event ) ) {
+ return $event;
+ }
+
+ $pixel = $event->build_pixel_url( $event );
+
+ if ( ! $pixel ) {
+ return new WP_Error( 'invalid_pixel', 'cannot generate tracks pixel for given input', 400 );
+ }
+
+ return self::record_pixel( $pixel );
+ }
+
+ /**
+ * Synchronously request the pixel.
+ *
+ * @param string $pixel The wp.com tracking pixel.
+ * @return array|bool|WP_Error True if successful. wp_remote_get response or WP_Error if not.
+ */
+ public static function record_pixel( $pixel ) {
+ // Add the Request Timestamp and URL terminator just before the HTTP request.
+ $pixel .= '&_rt=' . self::build_timestamp() . '&_=_';
+
+ $response = wp_remote_get(
+ $pixel,
+ array(
+ 'blocking' => true, // The default, but being explicit here :).
+ 'timeout' => 1,
+ 'redirection' => 2,
+ 'httpversion' => '1.1',
+ 'user-agent' => self::get_user_agent(),
+ )
+ );
+
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $code = isset( $response['response']['code'] ) ? $response['response']['code'] : 0;
+
+ if ( 200 !== $code ) {
+ return new WP_Error( 'request_failed', 'Tracks pixel request failed', $code );
+ }
+
+ return true;
+ }
+
+ /**
+ * Get the user agent.
+ *
+ * @return string The user agent.
+ */
+ public static function get_user_agent() {
+ return self::USER_AGENT_SLUG . '-v' . self::VERSION;
+ }
+
+ /**
+ * Build an event and return its tracking URL
+ *
+ * @deprecated Call the `build_pixel_url` method on a Jetpack_Tracks_Event object instead.
+ * @param array $event Event keys and values.
+ * @return string URL of a tracking pixel.
+ */
+ public static function build_pixel_url( $event ) {
+ $_event = new Jetpack_Tracks_Event( $event );
+ return $_event->build_pixel_url();
+ }
+
+ /**
+ * Validate input for a tracks event.
+ *
+ * @deprecated Instantiate a Jetpack_Tracks_Event object instead
+ * @param array $event Event keys and values.
+ * @return mixed Validated keys and values or WP_Error on failure
+ */
+ private static function validate_and_sanitize( $event ) {
+ $_event = new Jetpack_Tracks_Event( $event );
+ if ( is_wp_error( $_event ) ) {
+ return $_event;
+ }
+ return get_object_vars( $_event );
+ }
+
+ /**
+ * Builds a timestamp.
+ *
+ * Milliseconds since 1970-01-01.
+ *
+ * @return string
+ */
+ public static function build_timestamp() {
+ $ts = round( microtime( true ) * 1000 );
+ return number_format( $ts, 0, '', '' );
+ }
+
+ /**
+ * Grabs the user's anon id from cookies, or generates and sets a new one
+ *
+ * @return string An anon id for the user
+ */
+ public static function get_anon_id() {
+ static $anon_id = null;
+
+ if ( ! isset( $anon_id ) ) {
+
+ // Did the browser send us a cookie?
+ if ( isset( $_COOKIE['tk_ai'] ) && preg_match( '#^[A-Za-z0-9+/=]{24}$#', $_COOKIE['tk_ai'] ) ) {
+ $anon_id = $_COOKIE['tk_ai'];
+ } else {
+
+ $binary = '';
+
+ // Generate a new anonId and try to save it in the browser's cookies.
+ // Note that base64-encoding an 18 character string generates a 24-character anon id.
+ for ( $i = 0; $i < 18; ++$i ) {
+ $binary .= chr( wp_rand( 0, 255 ) );
+ }
+
+ $anon_id = 'jetpack:' . base64_encode( $binary ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+
+ if ( ! headers_sent()
+ && ! ( defined( 'REST_REQUEST' ) && REST_REQUEST )
+ && ! ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
+ ) {
+ setcookie( 'tk_ai', $anon_id );
+ }
+ }
+ }
+
+ return $anon_id;
+ }
+
+ /**
+ * Gets the WordPress.com user's Tracks identity, if connected.
+ *
+ * @return array|bool
+ */
+ public static function get_connected_user_tracks_identity() {
+ $user_data = ( new Manager() )->get_connected_user_data();
+ if ( ! $user_data ) {
+ return false;
+ }
+
+ return array(
+ 'blogid' => Jetpack_Options::get_option( 'id', 0 ),
+ 'userid' => $user_data['ID'],
+ 'username' => $user_data['login'],
+ );
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php
new file mode 100644
index 00000000..be77a397
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php
@@ -0,0 +1,189 @@
+<?php
+/**
+ * Class Jetpack_Tracks_Event. Legacy.
+ *
+ * @package automattic/jetpack-sync
+ */
+
+/*
+ * @autounit nosara tracks-client
+ *
+ * Example Usage:
+```php
+ require_once( dirname(__FILE__) . 'path/to/tracks/class-jetpack-tracks-event.php' );
+
+ $event = new Jetpack_Tracks_Event( array(
+ '_en' => $event_name, // required
+ '_ui' => $user_id, // required unless _ul is provided
+ '_ul' => $user_login, // required unless _ui is provided
+
+ // Optional, but recommended
+ '_via_ip' => $client_ip, // for geo, etc.
+
+ // Possibly useful to set some context for the event
+ '_via_ua' => $client_user_agent,
+ '_via_url' => $client_url,
+ '_via_ref' => $client_referrer,
+
+ // For user-targeted tests
+ 'abtest_name' => $abtest_name,
+ 'abtest_variation' => $abtest_variation,
+
+ // Your application-specific properties
+ 'custom_property' => $some_value,
+ ) );
+
+ if ( is_wp_error( $event->error ) ) {
+ // Handle the error in your app
+ }
+
+ $bump_and_redirect_pixel = $event->build_signed_pixel_url();
+```
+ */
+
+/**
+ * Class Jetpack_Tracks_Event
+ */
+class Jetpack_Tracks_Event {
+ const EVENT_NAME_REGEX = '/^(([a-z0-9]+)_){2}([a-z0-9_]+)$/';
+ const PROP_NAME_REGEX = '/^[a-z_][a-z0-9_]*$/';
+
+ /**
+ * Tracks Event Error.
+ *
+ * @var mixed Error.
+ */
+ public $error;
+
+ /**
+ * Jetpack_Tracks_Event constructor.
+ *
+ * @param object $event Tracks event.
+ */
+ public function __construct( $event ) {
+ $_event = self::validate_and_sanitize( $event );
+ if ( is_wp_error( $_event ) ) {
+ $this->error = $_event;
+ return;
+ }
+
+ foreach ( $_event as $key => $value ) {
+ $this->{$key} = $value;
+ }
+ }
+
+ /**
+ * Record a track event.
+ */
+ public function record() {
+ return Jetpack_Tracks_Client::record_event( $this );
+ }
+
+ /**
+ * Annotate the event with all relevant info.
+ *
+ * @param mixed $event Object or (flat) array.
+ * @return mixed The transformed event array or WP_Error on failure.
+ */
+ public static function validate_and_sanitize( $event ) {
+ $event = (object) $event;
+
+ // Required.
+ if ( ! $event->_en ) {
+ return new WP_Error( 'invalid_event', 'A valid event must be specified via `_en`', 400 );
+ }
+
+ // delete non-routable addresses otherwise geoip will discard the record entirely.
+ if ( property_exists( $event, '_via_ip' ) && preg_match( '/^192\.168|^10\./', $event->_via_ip ) ) {
+ unset( $event->_via_ip );
+ }
+
+ $validated = array(
+ 'browser_type' => Jetpack_Tracks_Client::BROWSER_TYPE,
+ '_aua' => Jetpack_Tracks_Client::get_user_agent(),
+ );
+
+ $_event = (object) array_merge( (array) $event, $validated );
+
+ // If you want to block property names, do it here.
+
+ // Make sure we have an event timestamp.
+ if ( ! isset( $_event->_ts ) ) {
+ $_event->_ts = Jetpack_Tracks_Client::build_timestamp();
+ }
+
+ return $_event;
+ }
+
+ /**
+ * Build a pixel URL that will send a Tracks event when fired.
+ * On error, returns an empty string ('').
+ *
+ * @return string A pixel URL or empty string ('') if there were invalid args.
+ */
+ public function build_pixel_url() {
+ if ( $this->error ) {
+ return '';
+ }
+
+ $args = get_object_vars( $this );
+
+ // Request Timestamp and URL Terminator must be added just before the HTTP request or not at all.
+ unset( $args['_rt'] );
+ unset( $args['_'] );
+
+ $validated = self::validate_and_sanitize( $args );
+
+ if ( is_wp_error( $validated ) ) {
+ return '';
+ }
+
+ return Jetpack_Tracks_Client::PIXEL . '?' . http_build_query( $validated );
+ }
+
+ /**
+ * Validate the event name.
+ *
+ * @param string $name Event name.
+ * @return false|int
+ */
+ public static function event_name_is_valid( $name ) {
+ return preg_match( self::EVENT_NAME_REGEX, $name );
+ }
+
+ /**
+ * Validates prop name
+ *
+ * @param string $name Property name.
+ *
+ * @return false|int Truthy value.
+ */
+ public static function prop_name_is_valid( $name ) {
+ return preg_match( self::PROP_NAME_REGEX, $name );
+ }
+
+ /**
+ * Scrutinize event name.
+ *
+ * @param object $event Tracks event.
+ */
+ public static function scrutinize_event_names( $event ) {
+ if ( ! self::event_name_is_valid( $event->_en ) ) {
+ return;
+ }
+
+ $whitelisted_key_names = array(
+ 'anonId',
+ 'Browser_Type',
+ );
+
+ foreach ( array_keys( (array) $event ) as $key ) {
+ if ( in_array( $key, $whitelisted_key_names, true ) ) {
+ continue;
+ }
+ if ( ! self::prop_name_is_valid( $key ) ) {
+ return;
+ }
+ }
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php
new file mode 100644
index 00000000..cc9d1de2
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php
@@ -0,0 +1,325 @@
+<?php
+/**
+ * Nosara Tracks for Jetpack
+ *
+ * @package automattic/jetpack-tracking
+ */
+
+namespace Automattic\Jetpack;
+
+/**
+ * The Tracking class, used to record events in wpcom
+ */
+class Tracking {
+ /**
+ * The assets version.
+ *
+ * @since 1.13.1
+ *
+ * @var string Assets version.
+ */
+ const ASSETS_VERSION = '1.0.0';
+
+ /**
+ * Slug of the product that we are tracking.
+ *
+ * @var string
+ */
+ private $product_name;
+
+ /**
+ * Connection manager object.
+ *
+ * @var Object
+ */
+ private $connection;
+
+ /**
+ * Creates the Tracking object.
+ *
+ * @param String $product_name the slug of the product that we are tracking.
+ * @param Automattic\Jetpack\Connection\Manager $connection the connection manager object.
+ */
+ public function __construct( $product_name = 'jetpack', $connection = null ) {
+ $this->product_name = $product_name;
+ $this->connection = $connection;
+ if ( is_null( $this->connection ) ) {
+ // 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' )
+ ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack-tracking' ),
+ 403
+ );
+ }
+
+ if ( ! isset( $_REQUEST['tracksEventName'] ) || ! isset( $_REQUEST['tracksEventType'] ) ) {
+ wp_send_json_error(
+ __( 'No valid event name or type.', 'jetpack-tracking' ),
+ 403
+ );
+ }
+
+ $tracks_data = array();
+ if ( 'click' === $_REQUEST['tracksEventType'] && isset( $_REQUEST['tracksEventProp'] ) ) {
+ if ( is_array( $_REQUEST['tracksEventProp'] ) ) {
+ $tracks_data = $_REQUEST['tracksEventProp'];
+ } else {
+ $tracks_data = array( 'clicked' => $_REQUEST['tracksEventProp'] );
+ }
+ }
+
+ $this->record_user_event( $_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
+ );
+
+ if ( $enqueue ) {
+ // Enqueue jp-tracks-functions script.
+ wp_enqueue_script(
+ 'jp-tracks-functions',
+ Assets::get_file_url_for_environment( 'js/tracks-callables.js', 'js/tracks-callables.js', __FILE__ ),
+ array( 'jp-tracks' ),
+ self::ASSETS_VERSION,
+ true
+ );
+ } else {
+ // Register jp-tracks-functions script.
+ wp_register_script(
+ 'jp-tracks-functions',
+ Assets::get_file_url_for_environment( 'js/tracks-callables.js', 'js/tracks-callables.js', __FILE__ ),
+ array( 'jp-tracks' ),
+ self::ASSETS_VERSION,
+ true
+ );
+ }
+
+ }
+
+ /**
+ * Enqueue script necessary for tracking.
+ */
+ public function enqueue_tracks_scripts() {
+ wp_enqueue_script(
+ 'jptracks',
+ Assets::get_file_url_for_environment( 'js/tracks-ajax.js', 'js/tracks-ajax.js', __FILE__ ),
+ array(),
+ self::ASSETS_VERSION,
+ 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'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
+ $data['_via_ip'] = isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : '';
+ $data['_lg'] = isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ? $_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' ),
+ );
+
+ $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 );
+ }
+
+ return array(
+ '_ut' => 'anon',
+ '_ui' => $anon_id,
+ );
+
+ }
+}
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-ajax.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-ajax.js
new file mode 100644
index 00000000..cea7cc04
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-ajax.js
@@ -0,0 +1,62 @@
+/* global jpTracksAJAX */
+( function ( $, jpTracksAJAX ) {
+ window.jpTracksAJAX = window.jpTracksAJAX || {};
+ var debugSet = localStorage.getItem( 'debug' ) === 'dops:analytics';
+
+ window.jpTracksAJAX.record_ajax_event = function ( eventName, eventType, eventProp ) {
+ var data = {
+ tracksNonce: jpTracksAJAX.jpTracksAJAX_nonce,
+ action: 'jetpack_tracks',
+ tracksEventType: eventType,
+ tracksEventName: eventName,
+ tracksEventProp: eventProp || false,
+ };
+
+ return $.ajax( {
+ type: 'POST',
+ url: jpTracksAJAX.ajaxurl,
+ data: data,
+ success: function ( response ) {
+ if ( debugSet ) {
+ // eslint-disable-next-line
+ console.log( 'AJAX tracks event recorded: ', data, response );
+ }
+ },
+ } );
+ };
+
+ $( document ).ready( function () {
+ $( 'body' ).on( 'click', '.jptracks a, a.jptracks', function ( event ) {
+ var $this = $( event.target );
+ // We know that the jptracks element is either this, or its ancestor
+ var $jptracks = $this.closest( '.jptracks' );
+ // We need an event name at least
+ var eventName = $jptracks.attr( 'data-jptracks-name' );
+ if ( undefined === eventName ) {
+ return;
+ }
+
+ var eventProp = $jptracks.attr( 'data-jptracks-prop' ) || false;
+
+ var url = $this.attr( 'href' );
+ var target = $this.get( 0 ).target;
+ if ( url && target && '_self' !== target ) {
+ var newTabWindow = window.open( '', target );
+ newTabWindow.opener = null;
+ }
+
+ event.preventDefault();
+
+ window.jpTracksAJAX.record_ajax_event( eventName, 'click', eventProp ).always( function () {
+ // Continue on to whatever url they were trying to get to.
+ if ( url && ! $this.hasClass( 'thickbox' ) ) {
+ if ( newTabWindow ) {
+ newTabWindow.location = url;
+ return;
+ }
+ window.location = url;
+ }
+ } );
+ } );
+ } );
+} )( jQuery, jpTracksAJAX );
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-callables.js b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-callables.js
new file mode 100644
index 00000000..c7fb85d6
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-tracking/src/js/tracks-callables.js
@@ -0,0 +1,79 @@
+/**
+ * This was abstracted from wp-calypso's analytics lib: https://github.com/Automattic/wp-calypso/blob/master/client/lib/analytics/README.md
+ * Some stuff was removed like GA tracking and other things not necessary for Jetpack tracking.
+ *
+ * This library should only be used and loaded if the Jetpack site is connected.
+ */
+
+// Load tracking scripts
+window._tkq = window._tkq || [];
+
+var _user;
+var debug = console.error; // eslint-disable-line no-console
+
+function buildQuerystring( group, name ) {
+ var uriComponent = '';
+
+ if ( 'object' === typeof group ) {
+ for ( var key in group ) {
+ uriComponent += '&x_' + encodeURIComponent( key ) + '=' + encodeURIComponent( group[ key ] );
+ }
+ } else {
+ uriComponent = '&x_' + encodeURIComponent( group ) + '=' + encodeURIComponent( name );
+ }
+
+ return uriComponent;
+}
+
+var analytics = {
+ initialize: function ( userId, username ) {
+ analytics.setUser( userId, username );
+ analytics.identifyUser();
+ },
+
+ mc: {
+ bumpStat: function ( group, name ) {
+ var uriComponent = buildQuerystring( group, name ); // prints debug info
+ new Image().src =
+ document.location.protocol +
+ '//pixel.wp.com/g.gif?v=wpcom-no-pv' +
+ uriComponent +
+ '&t=' +
+ Math.random();
+ },
+ },
+
+ tracks: {
+ recordEvent: function ( eventName, eventProperties ) {
+ eventProperties = eventProperties || {};
+
+ if ( eventName.indexOf( 'jetpack_' ) !== 0 ) {
+ debug( '- Event name must be prefixed by "jetpack_"' );
+ return;
+ }
+
+ window._tkq.push( [ 'recordEvent', eventName, eventProperties ] );
+ },
+
+ recordPageView: function ( urlPath ) {
+ analytics.tracks.recordEvent( 'jetpack_page_view', {
+ path: urlPath,
+ } );
+ },
+ },
+
+ setUser: function ( userId, username ) {
+ _user = { ID: userId, username: username };
+ },
+
+ identifyUser: function () {
+ // Don't identify the user if we don't have one
+ if ( _user ) {
+ window._tkq.push( [ 'identifyUser', _user.ID, _user.username ] );
+ }
+ },
+
+ clearedIdentity: function () {
+ window._tkq.push( [ 'clearIdentity' ] );
+ },
+};
diff --git a/plugins/jetpack/jetpack_vendor/i18n-map.php b/plugins/jetpack/jetpack_vendor/i18n-map.php
new file mode 100644
index 00000000..2a8139b6
--- /dev/null
+++ b/plugins/jetpack/jetpack_vendor/i18n-map.php
@@ -0,0 +1,23 @@
+<?php
+// i18n-map.php @generated by automattic/jetpack-composer-plugin
+return array(
+ 'domain' => 'jetpack',
+ 'type' => 'plugins',
+ 'packages' => array(
+ 'jetpack-assets' => '0.0.0',
+ 'jetpack-tracking' => '0.0.0',
+ 'jetpack-heartbeat' => '0.0.0',
+ 'jetpack-password-checker' => '0.0.0',
+ 'jetpack-idc' => '0.0.0',
+ 'jetpack-sync' => '0.0.0',
+ 'jetpack-backup-pkg' => '0.0.0',
+ 'jetpack-connection' => '0.0.0',
+ 'jetpack-config' => '0.0.0',
+ 'jetpack-connection-ui' => '0.0.0',
+ 'jetpack-jitm' => '0.0.0',
+ 'jetpack-lazy-images' => '0.0.0',
+ 'jetpack-licensing' => '0.0.0',
+ 'jetpack-my-jetpack' => '0.0.0',
+ 'jetpack-search-pkg' => '0.0.0',
+ ),
+);
diff --git a/plugins/jetpack/json-api-config.php b/plugins/jetpack/json-api-config.php
index d268049d..f4ab9eb6 100644
--- a/plugins/jetpack/json-api-config.php
+++ b/plugins/jetpack/json-api-config.php
@@ -1,5 +1,9 @@
<?php
-
+/**
+ * Config for the WP.com REST API
+ *
+ * @package automattic/jetpack
+ */
define( 'WPCOM_JSON_API__CURRENT_VERSION', '1.1' );
global $wpcom_json_api_production_versions, $wpcom_json_api_dev_versions;
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php
index 7108741e..f0968188 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php
@@ -1,49 +1,65 @@
-<?php
-
-new WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint( array(
- 'description' => 'Create a post autosave.',
- 'group' => '__do_not_document',
- 'stat' => 'posts:autosave',
- 'min_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/posts/%d/autosave',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- '$post_ID' => '(int) The post ID',
- ),
- 'request_format' => array(
- 'content' => '(HTML) The post content.',
- 'title' => '(HTML) The post title.',
- 'excerpt' => '(HTML) The post excerpt.',
- ),
- 'response_format' => array(
- 'ID' => '(int) autodraft post ID',
- 'post_ID' => '(int) post ID',
- 'preview_URL' => '(string) preview URL for the post',
- 'modified' => '(ISO 8601 datetime) modified time',
- ),
-
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave',
-
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint
+ *
+ * @package automattic/jetpack
+ */
+
+new WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint(
+ array(
+ 'description' => 'Create a post autosave.',
+ 'group' => '__do_not_document',
+ 'stat' => 'posts:autosave',
+ 'min_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/posts/%d/autosave',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ '$post_ID' => '(int) The post ID',
),
+ 'request_format' => array(
+ 'content' => '(HTML) The post content.',
+ 'title' => '(HTML) The post title.',
+ 'excerpt' => '(HTML) The post excerpt.',
+ ),
+ 'response_format' => array(
+ 'ID' => '(int) autodraft post ID',
+ 'post_ID' => '(int) post ID',
+ 'preview_URL' => '(string) preview URL for the post',
+ 'modified' => '(ISO 8601 datetime) modified time',
+ ),
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave',
- 'body' => array(
- 'title' => 'Howdy',
- 'content' => 'Hello. I am a test post. I was created by the API',
- )
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+
+ 'body' => array(
+ 'title' => 'Howdy',
+ 'content' => 'Hello. I am a test post. I was created by the API',
+ ),
+ ),
)
-) );
+);
+// phpcs:disable PEAR.NamingConventions.ValidClassName.Invalid
+
+/**
+ * Class WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint
+ */
class WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_Endpoint {
- function __construct( $args ) {
- parent::__construct( $args );
- }
- // /sites/%s/posts/%d/autosave -> $blog_id, $post_id
- function callback( $path = '', $blog_id = 0, $post_id = 0 ) {
+ /**
+ * Autosave Post callback.
+ * /sites/%s/posts/%d/autosave -> $blog_id, $post_id
+ *
+ * @param string $path Path.
+ * @param int $blog_id Blog ID.
+ * @param int $post_id Post ID.
+ */
+ public function callback( $path = '', $blog_id = 0, $post_id = 0 ) {
if ( ! defined( 'DOING_AUTOSAVE' ) ) {
define( 'DOING_AUTOSAVE', true );
}
@@ -53,8 +69,6 @@ class WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_
return $blog_id;
}
- $args = $this->query_args();
-
$input = $this->input( false );
if ( ! is_array( $input ) || ! $input ) {
@@ -76,7 +90,7 @@ class WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_
return new WP_Error( 'unauthorized', 'User cannot edit post', 403 );
}
- $post_data = array (
+ $post_data = array(
'post_ID' => $post_id,
'post_type' => $post->post_type,
'post_title' => $input['title'],
@@ -87,26 +101,32 @@ class WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_
$preview_url = add_query_arg( 'preview', 'true', get_permalink( $post->ID ) );
if ( ! wp_check_post_lock( $post->ID ) &&
- get_current_user_id() == $post->post_author &&
- ( 'auto-draft' == $post->post_status || 'draft' == $post->post_status )
+ get_current_user_id() === (int) $post->post_author &&
+ ( 'auto-draft' === $post->post_status || 'draft' === $post->post_status )
) {
- // Drafts and auto-drafts are just overwritten by autosave for the same user if the post is not locked
- $auto_ID = edit_post( wp_slash( $post_data ) );
+ // Drafts and auto-drafts are just overwritten by autosave for the same user if the post is not locked.
+ $auto_id = edit_post( wp_slash( $post_data ) );
} else {
// Non drafts or other users drafts are not overwritten. The autosave is stored in a special post revision for each user.
- $auto_ID = wp_create_post_autosave( wp_slash( $post_data ) );
- $nonce = wp_create_nonce( 'post_preview_' . $post->ID );
- $preview_url = add_query_arg( array( 'preview_id' => $auto_ID, 'preview_nonce' => $nonce ), $preview_url );
+ $auto_id = wp_create_post_autosave( wp_slash( $post_data ) );
+ $nonce = wp_create_nonce( 'post_preview_' . $post->ID );
+ $preview_url = add_query_arg(
+ array(
+ 'preview_id' => $post->ID,
+ 'preview_nonce' => $nonce,
+ ),
+ $preview_url
+ );
}
- $updated_post = get_post( $auto_ID );
+ $updated_post = get_post( $auto_id );
if ( $updated_post && $updated_post->ID && $updated_post->post_modified ) {
return array(
- 'ID' => $auto_ID,
+ 'ID' => $auto_id,
'post_ID' => $post->ID,
'modified' => $this->format_date( $updated_post->post_modified_gmt, $updated_post->post_modified ),
- 'preview_URL' => $preview_url
+ 'preview_URL' => $preview_url,
);
} else {
return new WP_Error( 'autosave_error', __( 'Autosave encountered an unexpected error', 'jetpack' ), 500 );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php
index 20aee2b8..bb270d39 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php
@@ -29,6 +29,7 @@ abstract class WPCOM_JSON_API_Comment_Endpoint extends WPCOM_JSON_API_Endpoint {
'i_like' => '(bool) Does the current user like this comment?',
'meta' => '(object) Meta data',
'can_moderate' => '(bool) Whether current user can moderate the comment.',
+ 'i_replied' => '(bool) Has the current user replied to this comment?',
);
// public $response_format =& $this->comment_object_format;
@@ -197,6 +198,15 @@ abstract class WPCOM_JSON_API_Comment_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'can_moderate':
$response[ $key ] = (bool) current_user_can( 'edit_comment', $comment_id );
break;
+ case 'i_replied':
+ $response[ $key ] = (bool) 0 < get_comments(
+ array(
+ 'user_id' => get_current_user_id(),
+ 'parent' => $comment->comment_ID,
+ 'count' => true,
+ )
+ );
+ break;
}
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php
index 9970120a..51ffba52 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php
@@ -1,37 +1,53 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint
+ *
+ * @package automattic/jetpack
+ */
-new WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint( array(
- 'description' => 'Get the most recent autosave for a post.',
- 'group' => '__do_not_document',
- 'stat' => 'posts:autosave',
- 'min_version' => '1.1',
- 'method' => 'GET',
- 'path' => '/sites/%s/posts/%d/autosave',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- '$post_ID' => '(int) The post ID',
- ),
- 'response_format' => array(
- 'ID' => '(int) autodraft post ID',
- 'post_ID' => '(int) post ID',
- 'author_ID' => '(int) author ID',
- 'title' => '(HTML) The post title.',
- 'content' => '(HTML) The post content.',
- 'excerpt' => '(HTML) The post excerpt.',
- 'preview_URL' => '(string) preview URL for the post',
- 'modified' => '(ISO 8601 datetime) modified time',
- ),
+new WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint(
+ array(
+ 'description' => 'Get the most recent autosave for a post.',
+ 'group' => '__do_not_document',
+ 'stat' => 'posts:autosave',
+ 'min_version' => '1.1',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/posts/%d/autosave',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ '$post_ID' => '(int) The post ID',
+ ),
+ 'response_format' => array(
+ 'ID' => '(int) autodraft post ID',
+ 'post_ID' => '(int) post ID',
+ 'author_ID' => '(int) author ID',
+ 'title' => '(HTML) The post title.',
+ 'content' => '(HTML) The post content.',
+ 'excerpt' => '(HTML) The post excerpt.',
+ 'preview_URL' => '(string) preview URL for the post',
+ 'modified' => '(ISO 8601 datetime) modified time',
+ ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave',
-) );
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave',
+ )
+);
+// phpcs:disable PEAR.NamingConventions.ValidClassName.Invalid
+/**
+ * Class WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint
+ */
class WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_Endpoint {
- function __construct( $args ) {
- parent::__construct( $args );
- }
-
- // /sites/%s/posts/%d/autosave -> $blog_id, $post_id
- function callback( $path = '', $blog_id = 0, $post_id = 0 ) {
+ /**
+ * Get Autosave callback
+ * /sites/%s/posts/%d/autosave -> $blog_id, $post_id
+ *
+ * @param string $path Path.
+ * @param int $blog_id Blog ID.
+ * @param int $post_id Post ID.
+ *
+ * @return array|int|mixed|WP_Error
+ */
+ public function callback( $path = '', $blog_id = 0, $post_id = 0 ) {
$blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) );
if ( is_wp_error( $blog_id ) ) {
@@ -52,8 +68,14 @@ class WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1
if ( $autosave ) {
$preview_url = add_query_arg( 'preview', 'true', get_permalink( $post->ID ) );
- $nonce = wp_create_nonce( 'post_preview_' . $post->ID );
- $preview_url = add_query_arg( array( 'preview_id' => $auto_ID, 'preview_nonce' => $nonce ), $preview_url );
+ $nonce = wp_create_nonce( 'post_preview_' . $post->ID );
+ $preview_url = add_query_arg(
+ array(
+ 'preview_id' => $post->ID,
+ 'preview_nonce' => $nonce,
+ ),
+ $preview_url
+ );
return array(
'ID' => $autosave->ID,
@@ -63,7 +85,7 @@ class WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1
'content' => $autosave->post_content,
'excerpt' => $autosave->post_excerpt,
'preview_URL' => $preview_url,
- 'modified' => $this->format_date( $autosave->post_modified_gmt, $autosave->post_modified )
+ 'modified' => $this->format_date( $autosave->post_modified_gmt, $autosave->post_modified ),
);
} else {
return new WP_Error( 'not_found', 'No autosaves exist for this post', 404 );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php
index 705f2e61..f92fe7eb 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-counts-endpoint.php
@@ -48,7 +48,7 @@ class WPCOM_JSON_API_GET_Comment_Counts_Endpoint extends WPCOM_JSON_API_Endpoint
$args = $this->query_args();
// If 0 is passed wp_count_comments will default to fetching counts for the whole site.
- $post_id = ! empty( $args['post_id'] ) ? intval( $args['post_id'] ) : 0;
+ $post_id = ! empty( $args['post_id'] ) ? (int) $args['post_id'] : 0;
// Check if post with given id exists.
if ( ! empty( $post_id ) && ! is_object( get_post( $post_id ) ) ) {
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php
index 3a928bfd..f536a22a 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php
@@ -12,6 +12,8 @@ new WPCOM_JSON_API_Get_Comment_Endpoint( array(
'$comment_ID' => '(int) The comment ID'
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/comments/147564'
) );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php
index 37aa9206..1fa0e1d1 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-history-endpoint.php
@@ -45,7 +45,7 @@ class WPCOM_JSON_API_GET_Comment_History_Endpoint extends WPCOM_JSON_API_Endpoin
foreach ( $comment_history as &$item ) {
// Times are stored as floating point values in microseconds.
// We don't need that precision on the client so let's get rid of the decimal part.
- $item['time'] = intval( $item['time'] );
+ $item['time'] = (int) $item['time'];
}
return array( 'comment_history' => $comment_history );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php
index fdc3bee7..ad48b46b 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-endpoint.php
@@ -102,10 +102,9 @@ class WPCOM_JSON_API_Get_Comments_Tree_Endpoint extends WPCOM_JSON_API_Endpoint
*/
function get_site_tree_total_count( $status, $type ) {
global $wpdb;
+
$db_status = $this->get_comment_db_status( $status );
- $type = $this->get_sanitized_comment_type( $type );
- // An empty value in the comments_type column denotes a regular comment.
- $type = ( 'comment' === $type ) ? '' : $type;
+ $type = $this->get_sanitized_comment_type( $type );
$result = $wpdb->get_var(
$wpdb->prepare(
@@ -113,10 +112,12 @@ class WPCOM_JSON_API_Get_Comments_Tree_Endpoint extends WPCOM_JSON_API_Endpoint
"FROM $wpdb->comments AS comments " .
"INNER JOIN $wpdb->posts AS posts ON comments.comment_post_ID = posts.ID " .
"WHERE comment_type = %s AND ( %s = 'all' OR comment_approved = %s )",
- $type, $db_status, $db_status
+ $type,
+ $db_status,
+ $db_status
)
);
- return intval( $result );
+ return (int) $result;
}
/**
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php
index 82124992..6052863b 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-1-endpoint.php
@@ -58,9 +58,9 @@ class WPCOM_JSON_API_Get_Comments_Tree_v1_1_Endpoint extends WPCOM_JSON_API_Get_
$trackbacks = array();
$pingbacks = array();
foreach ( $db_comment_rows as $row ) {
- $comment_id = intval( $row[0] );
- $comment_post_id = intval( $row[1] );
- $comment_parent_id = intval( $row[2] );
+ $comment_id = (int) $row[0];
+ $comment_post_id = (int) $row[1];
+ $comment_parent_id = (int) $row[2];
if ( ! isset( $comments[ $comment_post_id ] ) ) {
$comments[ $comment_post_id ] = array( array(), array() );
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php
index 0537279d..a4b09853 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comments-tree-v1-2-endpoint.php
@@ -82,9 +82,9 @@ class WPCOM_JSON_API_Get_Comments_Tree_v1_2_Endpoint extends WPCOM_JSON_API_Get_
$trackbacks = array();
$pingbacks = array();
foreach ( $db_comment_rows as $row ) {
- $comment_id = intval( $row[0] );
- $comment_parent_id = intval( $row[1] );
- $comment_post_id = isset( $args['post_id'] ) ? intval( $args['post_id'] ) : intval( $row[3] );
+ $comment_id = (int) $row[0];
+ $comment_parent_id = (int) $row[1];
+ $comment_post_id = isset( $args['post_id'] ) ? (int) $args['post_id'] : (int) $row[3];
if ( ! isset( $comments[ $comment_post_id ] ) ) {
$comments[ $comment_post_id ] = array( array(), array() );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php
index 62d8681e..b1968f22 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php
@@ -1,47 +1,52 @@
<?php
-new WPCOM_JSON_API_Get_Media_v1_1_Endpoint( array(
- 'description' => 'Get a single media item (by ID).',
- 'group' => 'media',
- 'stat' => 'media:1',
- 'min_version' => '1.1',
- 'max_version' => '1.1',
- 'method' => 'GET',
- 'path' => '/sites/%s/media/%d',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- '$media_ID' => '(int) The ID of the media item',
- ),
- 'response_format' => array(
- 'ID' => '(int) The ID of the media item',
- 'date' => '(ISO 8601 datetime) The date the media was uploaded',
- 'post_ID' => '(int) ID of the post this media is attached to',
- 'author_ID' => '(int) ID of the user who uploaded the media',
- 'URL' => '(string) URL to the file',
- 'guid' => '(string) Unique identifier',
- 'file' => '(string) Filename',
- 'extension' => '(string) File extension',
- 'mime_type' => '(string) File MIME type',
- 'title' => '(string) Filename',
- 'caption' => '(string) User-provided caption of the file',
- 'description' => '(string) Description of the file',
- 'alt' => '(string) Alternative text for image files.',
- 'thumbnails' => '(object) Media item thumbnail URL options',
- 'height' => '(int) (Image & video only) Height of the media item',
- 'width' => '(int) (Image & video only) Width of the media item',
- 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
- 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
- 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
- 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.'
- ),
+new WPCOM_JSON_API_Get_Media_v1_1_Endpoint(
+ array(
+ 'description' => 'Get a single media item (by ID).',
+ 'group' => 'media',
+ 'stat' => 'media:1',
+ 'min_version' => '1.1',
+ 'max_version' => '1.1',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/media/%d',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ '$media_ID' => '(int) The ID of the media item',
+ ),
+ 'response_format' => array(
+ 'ID' => '(int) The ID of the media item',
+ 'date' => '(ISO 8601 datetime) The date the media was uploaded',
+ 'post_ID' => '(int) ID of the post this media is attached to',
+ 'author_ID' => '(int) ID of the user who uploaded the media',
+ 'URL' => '(string) URL to the file',
+ 'guid' => '(string) Unique identifier',
+ 'file' => '(string) Filename',
+ 'extension' => '(string) File extension',
+ 'mime_type' => '(string) File MIME type',
+ 'title' => '(string) Filename',
+ 'caption' => '(string) User-provided caption of the file',
+ 'description' => '(string) Description of the file',
+ 'alt' => '(string) Alternative text for image files.',
+ 'thumbnails' => '(object) Media item thumbnail URL options',
+ 'height' => '(int) (Image & video only) Height of the media item',
+ 'width' => '(int) (Image & video only) Width of the media item',
+ 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
+ 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
+ 'rating' => '(string) (Video only) VideoPress rating of the video',
+ 'display_embed' => '(string) Video only. Whether to share or not the video.',
+ 'allow_download' => '(string) Video only. Whether the video can be downloaded or not.',
+ 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
+ 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.',
+ ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/934',
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
- )
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/934',
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
)
-) );
+);
class WPCOM_JSON_API_Get_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint {
function callback( $path = '', $blog_id = 0, $media_id = 0 ) {
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php
index 413e3b94..3dc7724f 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-2-endpoint.php
@@ -2,52 +2,57 @@
jetpack_require_lib( 'class.media' );
-new WPCOM_JSON_API_Get_Media_v1_2_Endpoint( array(
- 'description' => 'Get a single media item (by ID).',
- 'group' => 'media',
- 'stat' => 'media:1',
- 'min_version' => '1.2',
- 'max_version' => '1.2',
- 'method' => 'GET',
- 'path' => '/sites/%s/media/%d',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- '$media_ID' => '(int) The ID of the media item',
- ),
- 'response_format' => array(
- 'ID' => '(int) The ID of the media item',
- 'date' => '(ISO 8601 datetime) The date the media was uploaded',
- 'post_ID' => '(int) ID of the post this media is attached to',
- 'author_ID' => '(int) ID of the user who uploaded the media',
- 'URL' => '(string) URL to the file',
- 'guid' => '(string) Unique identifier',
- 'file' => '(string) Filename',
- 'extension' => '(string) File extension',
- 'mime_type' => '(string) File MIME type',
- 'title' => '(string) Filename',
- 'caption' => '(string) User-provided caption of the file',
- 'description' => '(string) Description of the file',
- 'alt' => '(string) Alternative text for image files.',
- 'thumbnails' => '(object) Media item thumbnail URL options',
- 'height' => '(int) (Image & video only) Height of the media item',
- 'width' => '(int) (Image & video only) Width of the media item',
- 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
- 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
- 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
- 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.',
- 'revision_history' => '(object) An object with `items` and `original` keys. ' .
- '`original` is an object with data about the original image. ' .
- '`items` is an array of snapshots of the previous images of this Media. ' .
- 'Each item has the `URL`, `file, `extension`, `date`, and `mime_type` fields.'
- ),
+new WPCOM_JSON_API_Get_Media_v1_2_Endpoint(
+ array(
+ 'description' => 'Get a single media item (by ID).',
+ 'group' => 'media',
+ 'stat' => 'media:1',
+ 'min_version' => '1.2',
+ 'max_version' => '1.2',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/media/%d',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ '$media_ID' => '(int) The ID of the media item',
+ ),
+ 'response_format' => array(
+ 'ID' => '(int) The ID of the media item',
+ 'date' => '(ISO 8601 datetime) The date the media was uploaded',
+ 'post_ID' => '(int) ID of the post this media is attached to',
+ 'author_ID' => '(int) ID of the user who uploaded the media',
+ 'URL' => '(string) URL to the file',
+ 'guid' => '(string) Unique identifier',
+ 'file' => '(string) Filename',
+ 'extension' => '(string) File extension',
+ 'mime_type' => '(string) File MIME type',
+ 'title' => '(string) Filename',
+ 'caption' => '(string) User-provided caption of the file',
+ 'description' => '(string) Description of the file',
+ 'alt' => '(string) Alternative text for image files.',
+ 'thumbnails' => '(object) Media item thumbnail URL options',
+ 'height' => '(int) (Image & video only) Height of the media item',
+ 'width' => '(int) (Image & video only) Width of the media item',
+ 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
+ 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
+ 'rating' => '(string) (Video only) VideoPress rating of the video',
+ 'display_embed' => '(string) Video only. Whether to share or not the video.',
+ 'allow_download' => '(string) Video only. Whether the video can be downloaded or not.',
+ 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
+ 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.',
+ 'revision_history' => '(object) An object with `items` and `original` keys. ' .
+ '`original` is an object with data about the original image. ' .
+ '`items` is an array of snapshots of the previous images of this Media. ' .
+ 'Each item has the `URL`, `file, `extension`, `date`, and `mime_type` fields.',
+ ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/82974409/media/934',
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
- )
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/82974409/media/934',
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
)
-) );
+);
class WPCOM_JSON_API_Get_Media_v1_2_Endpoint extends WPCOM_JSON_API_Get_Media_v1_1_Endpoint {
function callback( $path = '', $blog_id = 0, $media_id = 0 ) {
@@ -57,10 +62,10 @@ class WPCOM_JSON_API_Get_Media_v1_2_Endpoint extends WPCOM_JSON_API_Get_Media_v1
return $response;
}
- $media_item = get_post( $media_id );
+ $media_item = get_post( $media_id );
$response->modified = (string) $this->format_date( $media_item->post_modified_gmt, $media_item->post_modified );
- // expose `revision_history` object
+ // expose `revision_history` object.
$response->revision_history = (object) array(
'items' => (array) Jetpack_Media::get_revision_history( $media_id ),
'original' => (object) Jetpack_Media::get_original_media( $media_id )
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php
index f82b2f43..f3e927ac 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php
@@ -13,6 +13,8 @@ new WPCOM_JSON_API_Get_Post_Endpoint( array(
'$post_ID' => '(int) The post ID',
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/7'
) );
@@ -43,6 +45,8 @@ new WPCOM_JSON_API_Get_Post_Endpoint( array(
'$post_slug' => '(string) The post slug (a.k.a. sanitized name)',
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/slug:blogging-and-stuff',
) );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php
index 572567d7..dd437a2f 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php
@@ -12,6 +12,9 @@ new WPCOM_JSON_API_Get_Post_v1_1_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
'$post_ID' => '(int) The post ID',
),
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/7'
) );
@@ -27,6 +30,9 @@ new WPCOM_JSON_API_Get_Post_v1_1_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
'$post_slug' => '(string) The post slug (a.k.a. sanitized name)',
),
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/slug:blogging-and-stuff',
) );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php
index 044afeb7..6dfa5f7a 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php
@@ -13,6 +13,9 @@ new WPCOM_JSON_API_GET_Site_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
),
'allow_jetpack_site_auth' => true,
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'query_parameters' => array(
'context' => false,
'options' => '(string) Optional. Returns specified options only. Comma-separated list. Example: options=login_url,timezone',
@@ -26,35 +29,40 @@ new WPCOM_JSON_API_GET_Site_Endpoint( array(
class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
public static $site_format = array(
- 'ID' => '(int) Site ID',
- 'name' => '(string) Title of site',
- 'description' => '(string) Tagline or description of site',
- 'URL' => '(string) Full URL to the site',
- 'user_can_manage' => '(bool) The current user can manage this site', // deprecated
- 'capabilities' => '(array) Array of capabilities for the current user on this site.',
- 'jetpack' => '(bool) Whether the site is a Jetpack site or not',
- 'is_multisite' => '(bool) Whether the site is a Multisite site or not. Always true for WP.com sites.',
- 'post_count' => '(int) The number of posts the site has',
- 'subscribers_count' => '(int) The number of subscribers the site has',
- 'lang' => '(string) Primary language code of the site',
- 'icon' => '(array) An array of icon formats for the site',
- 'logo' => '(array) The site logo, set in the Customizer',
- 'visible' => '(bool) If this site is visible in the user\'s site list',
- 'is_private' => '(bool) If the site is a private site or not',
- 'is_coming_soon' => '(bool) If the site is marked as "coming soon" or not',
- 'single_user_site' => '(bool) Whether the site is single user. Only returned for WP.com sites and for Jetpack sites with version 3.4 or higher.',
- 'is_vip' => '(bool) If the site is a VIP site or not.',
- 'is_following' => '(bool) If the current user is subscribed to this site in the reader',
- 'options' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site. Note: Post formats is deprecated, please see /sites/$id/post-formats/',
- 'plan' => '(array) Details of the current plan for this site.',
- 'updates' => '(array) An array of available updates for plugins, themes, wordpress, and languages.',
- 'jetpack_modules' => '(array) A list of active Jetpack modules.',
- 'meta' => '(object) Meta data',
- 'quota' => '(array) An array describing how much space a user has left for uploads',
- 'launch_status' => '(string) A string describing the launch status of a site',
- 'migration_status' => '(string) A string describing the migration status of the site.',
- 'is_fse_active' => '(bool) If the site has Full Site Editing active or not.',
- 'is_fse_eligible' => '(bool) If the site is capable of Full Site Editing or not',
+ 'ID' => '(int) Site ID',
+ 'name' => '(string) Title of site',
+ 'description' => '(string) Tagline or description of site',
+ 'URL' => '(string) Full URL to the site',
+ 'user_can_manage' => '(bool) The current user can manage this site', // deprecated.
+ 'capabilities' => '(array) Array of capabilities for the current user on this site.',
+ 'jetpack' => '(bool) Whether the site is a Jetpack site or not',
+ 'jetpack_connection' => '(bool) Whether the site is connected to WP.com via `jetpack-connection`',
+ 'is_multisite' => '(bool) Whether the site is a Multisite site or not. Always true for WP.com sites.',
+ 'site_owner' => '(int) User ID of the site owner',
+ 'post_count' => '(int) The number of posts the site has',
+ 'subscribers_count' => '(int) The number of subscribers the site has',
+ 'lang' => '(string) Primary language code of the site',
+ 'icon' => '(array) An array of icon formats for the site',
+ 'logo' => '(array) The site logo, set in the Customizer',
+ 'visible' => '(bool) If this site is visible in the user\'s site list',
+ 'is_private' => '(bool) If the site is a private site or not',
+ 'is_coming_soon' => '(bool) If the site is marked as "coming soon" or not',
+ 'single_user_site' => '(bool) Whether the site is single user. Only returned for WP.com sites and for Jetpack sites with version 3.4 or higher.',
+ 'is_vip' => '(bool) If the site is a VIP site or not.',
+ 'is_following' => '(bool) If the current user is subscribed to this site in the reader',
+ 'organization_id' => '(int) P2 Organization identifier.',
+ 'options' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site. Note: Post formats is deprecated, please see /sites/$id/post-formats/',
+ 'plan' => '(array) Details of the current plan for this site.',
+ 'updates' => '(array) An array of available updates for plugins, themes, wordpress, and languages.',
+ 'jetpack_modules' => '(array) A list of active Jetpack modules.',
+ 'meta' => '(object) Meta data',
+ 'quota' => '(array) An array describing how much space a user has left for uploads',
+ 'launch_status' => '(string) A string describing the launch status of a site',
+ 'site_migration' => '(array) Data about any migration into the site.',
+ 'is_fse_active' => '(bool) If the site has Full Site Editing active or not.',
+ 'is_fse_eligible' => '(bool) If the site is capable of Full Site Editing or not',
+ 'is_core_site_editor_enabled' => '(bool) If the site has the core site editor enabled.',
+ 'is_wpcom_atomic' => '(bool) If the site is a WP.com Atomic one.',
);
protected static $no_member_fields = array(
@@ -63,6 +71,7 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
'description',
'URL',
'jetpack',
+ 'jetpack_connection',
'post_count',
'subscribers_count',
'lang',
@@ -75,9 +84,11 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
'is_following',
'meta',
'launch_status',
- 'migration_status',
+ 'site_migration',
'is_fse_active',
'is_fse_eligible',
+ 'is_core_site_editor_enabled',
+ 'is_wpcom_atomic',
);
protected static $site_options_format = array(
@@ -140,16 +151,26 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
'site_goals',
'site_segment',
'import_engine',
+ 'is_wpforteams_site',
+ 'p2_hub_blog_id',
+ 'site_creation_flow',
+ 'is_cloud_eligible',
+ 'selected_features',
+ 'anchor_podcast',
+ 'is_difm_lite_in_progress',
+ 'site_intent',
);
protected static $jetpack_response_field_additions = array(
'subscribers_count',
- 'migration_status',
+ 'site_migration',
);
protected static $jetpack_response_field_member_additions = array(
'capabilities',
'plan',
+ 'products',
+ 'zendesk_site_meta',
);
protected static $jetpack_response_option_additions = array(
@@ -313,7 +334,10 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
case 'is_coming_soon' :
// This option is stored on wp.com for both simple and atomic sites. @see mu-plugins/private-blog.php
- $response[ $key ] = $this->site->is_private() && get_option( 'wpcom_coming_soon' );
+ $response[ $key ] = $this->site->is_coming_soon();;
+ break;
+ case 'launch_status' :
+ $response[ $key ] = $this->site->get_launch_status();
break;
case 'visible' :
$response[ $key ] = $this->site->is_visible();
@@ -362,9 +386,12 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'locale' :
$response[ $key ] = $is_user_logged_in ? $this->site->get_locale() : false;
break;
- case 'jetpack' :
+ case 'jetpack':
$response[ $key ] = $this->site->is_jetpack();
break;
+ case 'jetpack_connection':
+ $response[ $key ] = $this->site->is_jetpack_connection();
+ break;
case 'single_user_site' :
$response[ $key ] = $this->site->is_single_user_site();
break;
@@ -374,6 +401,13 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'is_multisite' :
$response[ $key ] = $this->site->is_multisite();
break;
+ case 'site_owner':
+ $response[ $key ] = $this->site->get_site_owner();
+ break;
+ case 'organization_id':
+ $response[ $key ] = $this->site->get_p2_organization_id();
+ break;
+
case 'capabilities' :
$response[ $key ] = $this->site->get_capabilities();
break;
@@ -385,14 +419,17 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'plan' :
$response[ $key ] = $this->site->get_plan();
break;
+ case 'products' :
+ $response[ $key ] = $this->site->get_products();
+ break;
+ case 'zendesk_site_meta':
+ $response[ $key ] = $this->site->get_zendesk_site_meta();
+ break;
case 'quota' :
$response[ $key ] = $this->site->get_quota();
break;
- case 'launch_status' :
- $response[ $key ] = $this->site->get_launch_status();
- break;
- case 'migration_status' :
- $response[ $key ] = $this->site->get_migration_status();
+ case 'site_migration' :
+ $response[ $key ] = $this->site->get_migration_meta();
break;
case 'is_fse_active':
$response[ $key ] = $this->site->is_fse_active();
@@ -400,6 +437,12 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'is_fse_eligible':
$response[ $key ] = $this->site->is_fse_eligible();
break;
+ case 'is_core_site_editor_enabled':
+ $response[ $key ] = $this->site->is_core_site_editor_enabled();
+ break;
+ case 'is_wpcom_atomic':
+ $response[ $key ] = $this->site->is_wpcom_atomic();
+ break;
}
do_action( 'post_render_site_response_key', $key );
@@ -602,6 +645,38 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'import_engine':
$options[ $key ] = $site->get_import_engine();
break;
+
+ case 'is_wpforteams_site':
+ $options[ $key ] = $site->is_wpforteams_site();
+ break;
+ case 'p2_hub_blog_id':
+ $options[ $key ] = $site->get_p2_hub_blog_id();
+ break;
+
+ case 'site_creation_flow':
+ $site_creation_flow = $site->get_site_creation_flow();
+ if ( $site_creation_flow ) {
+ $options[ $key ] = $site_creation_flow;
+ }
+ break;
+ case 'is_cloud_eligible':
+ $options[ $key ] = $site->is_cloud_eligible();
+ break;
+ case 'selected_features':
+ $selected_features = $site->get_selected_features();
+ if ( $selected_features ) {
+ $options[ $key ] = $selected_features;
+ }
+ break;
+ case 'anchor_podcast':
+ $options[ $key ] = $site->get_anchor_podcast();
+ break;
+ case 'is_difm_lite_in_progress':
+ $options[ $key ] = $site->is_difm_lite_in_progress();
+ break;
+ case 'site_intent':
+ $options[ $key ] = $site->get_site_intent();
+ break;
}
}
@@ -632,9 +707,6 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
$this->site = $this->get_platform()->get_site( $response->ID );
switch_to_blog( $this->site->get_id() );
- // ensure the response is marked as being from Jetpack
- $response->jetpack = true;
-
$wpcom_response = $this->render_response_keys( self::$jetpack_response_field_additions );
foreach( $wpcom_response as $key => $value ) {
@@ -658,7 +730,10 @@ class WPCOM_JSON_API_GET_Site_Endpoint extends WPCOM_JSON_API_Endpoint {
unset( $response->lang );
unset( $response->user_can_manage );
unset( $response->is_multisite );
+ unset( $response->site_owner );
unset( $response->plan );
+ unset( $response->products );
+ unset( $response->zendesk_site_meta );
}
// render additional options
@@ -690,6 +765,8 @@ new WPCOM_JSON_API_List_Post_Formats_Endpoint( array(
'context' => false,
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'response_format' => array(
'formats' => '(object) An object of supported post formats, each key a supported format slug mapped to its display string.',
)
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php
index 5bcdf7a4..3531e5e8 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-v1-2-endpoint.php
@@ -12,6 +12,8 @@ new WPCOM_JSON_API_GET_Site_V1_2_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'query_parameters' => array(
'context' => false,
),
@@ -24,34 +26,38 @@ new WPCOM_JSON_API_GET_Site_V1_2_Endpoint( array(
class WPCOM_JSON_API_GET_Site_V1_2_Endpoint extends WPCOM_JSON_API_GET_Site_Endpoint {
public static $site_format = array(
- 'ID' => '(int) Site ID',
- 'name' => '(string) Title of site',
- 'description' => '(string) Tagline or description of site',
- 'URL' => '(string) Full URL to the site',
- 'capabilities' => '(array) Array of capabilities for the current user on this site.',
- 'jetpack' => '(bool) Whether the site is a Jetpack site or not',
- 'is_multisite' => '(bool) Whether the site is a Multisite site or not. Always true for WP.com sites.',
- 'post_count' => '(int) The number of posts the site has',
- 'subscribers_count' => '(int) The number of subscribers the site has',
- 'locale' => '(string) Primary locale code of the site',
- 'icon' => '(array) An array of icon formats for the site',
- 'logo' => '(array) The site logo, set in the Customizer',
- 'visible' => '(bool) If this site is visible in the user\'s site list',
- 'is_private' => '(bool) If the site is a private site or not',
- 'is_coming_soon' => '(bool) If the site is a "coming soon" site or not',
- 'single_user_site' => '(bool) Whether the site is single user. Only returned for WP.com sites and for Jetpack sites with version 3.4 or higher.',
- 'is_vip' => '(bool) If the site is a VIP site or not.',
- 'is_following' => '(bool) If the current user is subscribed to this site in the reader',
- 'options' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site. Note: Post formats is deprecated, please see /sites/$id/post-formats/',
- 'plan' => '(array) Details of the current plan for this site.',
- 'updates' => '(array) An array of available updates for plugins, themes, wordpress, and languages.',
- 'jetpack_modules' => '(array) A list of active Jetpack modules.',
- 'meta' => '(object) Meta data',
- 'quota' => '(array) An array describing how much space a user has left for uploads',
- 'launch_status' => '(string) A string describing the launch status of a site',
- 'migration_status' => '(string) A string describing the migration status of the site.',
- 'is_fse_active' => '(bool) If the site has Full Site Editing active or not.',
- 'is_fse_eligible' => '(bool) If the site is capable of Full Site Editing or not',
+ 'ID' => '(int) Site ID',
+ 'name' => '(string) Title of site',
+ 'description' => '(string) Tagline or description of site',
+ 'URL' => '(string) Full URL to the site',
+ 'capabilities' => '(array) Array of capabilities for the current user on this site.',
+ 'jetpack' => '(bool) Whether the site is a Jetpack site or not',
+ 'jetpack_connection' => '(bool) Whether the site is connected to WP.com via `jetpack-connection`',
+ 'is_multisite' => '(bool) Whether the site is a Multisite site or not. Always true for WP.com sites.',
+ 'site_owner' => '(int) User ID of the site owner',
+ 'post_count' => '(int) The number of posts the site has',
+ 'subscribers_count' => '(int) The number of subscribers the site has',
+ 'locale' => '(string) Primary locale code of the site',
+ 'icon' => '(array) An array of icon formats for the site',
+ 'logo' => '(array) The site logo, set in the Customizer',
+ 'visible' => '(bool) If this site is visible in the user\'s site list',
+ 'is_private' => '(bool) If the site is a private site or not',
+ 'is_coming_soon' => '(bool) If the site is a "coming soon" site or not',
+ 'single_user_site' => '(bool) Whether the site is single user. Only returned for WP.com sites and for Jetpack sites with version 3.4 or higher.',
+ 'is_vip' => '(bool) If the site is a VIP site or not.',
+ 'is_following' => '(bool) If the current user is subscribed to this site in the reader',
+ 'options' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site. Note: Post formats is deprecated, please see /sites/$id/post-formats/',
+ 'plan' => '(array) Details of the current plan for this site.',
+ 'updates' => '(array) An array of available updates for plugins, themes, wordpress, and languages.',
+ 'jetpack_modules' => '(array) A list of active Jetpack modules.',
+ 'meta' => '(object) Meta data',
+ 'quota' => '(array) An array describing how much space a user has left for uploads',
+ 'launch_status' => '(string) A string describing the launch status of a site',
+ 'site_migration' => '(array) Data about any migration into the site.',
+ 'is_fse_active' => '(bool) If the site has Full Site Editing active or not.',
+ 'is_fse_eligible' => '(bool) If the site is capable of Full Site Editing or not',
+ 'is_core_site_editor_enabled' => '(bool) If the site has the core site editor enabled.',
+ 'is_wpcom_atomic' => '(bool) If the site is a WP.com Atomic one.',
);
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php
index 80b2469b..80e0506f 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php
@@ -27,6 +27,9 @@ new WPCOM_JSON_API_Get_Taxonomies_Endpoint( array(
'found' => '(int) The number of categories returned.',
'categories' => '(array) Array of category objects.',
),
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/categories/?number=5'
) );
@@ -53,6 +56,9 @@ new WPCOM_JSON_API_Get_Taxonomies_Endpoint( array(
'count' => 'Order by the number of posts in each tag.',
),
),
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'response_format' => array(
'found' => '(int) The number of tags returned.',
'tags' => '(array) Array of tag objects.',
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php
index 728fe463..548aa5f8 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php
@@ -12,6 +12,8 @@ new WPCOM_JSON_API_Get_Taxonomy_Endpoint( array(
'$category' => '(string) The category slug'
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/categories/slug:community'
) );
@@ -27,6 +29,8 @@ new WPCOM_JSON_API_Get_Taxonomy_Endpoint( array(
'$tag' => '(string) The tag slug'
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/tags/slug:wordpresscom'
) );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php
index 6546af74..0c5ec3f2 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-get-term-endpoint.php
@@ -19,7 +19,10 @@ new WPCOM_JSON_API_Get_Term_Endpoint( array(
'post_count' => '(int) The number of posts using this term.',
'parent' => '(int) The parent ID for the term, if hierarchical.',
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/taxonomies/post_tag/terms/slug:wordpresscom'
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/taxonomies/post_tag/terms/slug:wordpresscom',
) );
class WPCOM_JSON_API_Get_Term_Endpoint extends WPCOM_JSON_API_Endpoint {
@@ -35,7 +38,7 @@ class WPCOM_JSON_API_Get_Term_Endpoint extends WPCOM_JSON_API_Endpoint {
}
$taxonomy_meta = get_taxonomy( $taxonomy );
- if ( false === $taxonomy_meta || ( ! $taxonomy_meta->public &&
+ if ( false === $taxonomy_meta || ( ! $taxonomy_meta->public &&
! current_user_can( $taxonomy_meta->cap->assign_terms ) ) ) {
return new WP_Error( 'invalid_taxonomy', 'The taxonomy does not exist', 400 );
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php
index 429e0161..f74869d1 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php
@@ -72,7 +72,9 @@ new WPCOM_JSON_API_List_Comments_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/comments/?number=2'
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/comments/?number=2',
) );
new WPCOM_JSON_API_List_Comments_Endpoint( array(
@@ -87,7 +89,9 @@ new WPCOM_JSON_API_List_Comments_Endpoint( array(
'$post_ID' => '(int) The post ID',
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/7/replies/?number=2'
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/7/replies/?number=2',
) );
// @todo permissions
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php
index 712909d9..1e084592 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php
@@ -92,6 +92,12 @@ class WPCOM_JSON_API_List_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint {
'order' => isset( $args['order'] ) ? $args['order'] : 'DESC',
'orderby' => isset( $args['order_by'] ) ? $args['order_by'] : 'date',
's' => isset( $args['search'] ) ? $args['search'] : null,
+ 'meta_query' => array(
+ array(
+ 'key' => 'videopress_poster_image',
+ 'compare' => 'NOT EXISTS',
+ ),
+ ),
);
if ( isset( $args['page'] ) ) {
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-types-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-types-endpoint.php
index eb05630e..9d7adb98 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-types-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-post-types-endpoint.php
@@ -11,6 +11,8 @@ new WPCOM_JSON_API_List_Post_Types_Endpoint( array (
'$site' => '(int|string) Site ID or domain',
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'query_parameters' => array(
'api_queryable' => '(bool) If true, only queryable post types are returned',
),
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php
index 2299124e..7f65a2e7 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php
@@ -13,6 +13,8 @@ new WPCOM_JSON_API_List_Posts_Endpoint( array(
'$site' => '(int|string) Site ID or domain',
),
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'query_parameters' => array(
'number' => '(int=20) The number of posts to return. Limit: 100.',
'offset' => '(int=0) 0-indexed offset.',
@@ -235,7 +237,7 @@ class WPCOM_JSON_API_List_Posts_Endpoint extends WPCOM_JSON_API_Post_Endpoint {
$query['tax_query'] = array();
foreach ( $args['term'] as $taxonomy => $slug ) {
$taxonomy_object = get_taxonomy( $taxonomy );
- if ( false === $taxonomy_object || ( ! $taxonomy_object->public &&
+ if ( false === $taxonomy_object || ( ! $taxonomy_object->public &&
! current_user_can( $taxonomy_object->cap->assign_terms ) ) ) {
continue;
}
@@ -244,7 +246,7 @@ class WPCOM_JSON_API_List_Posts_Endpoint extends WPCOM_JSON_API_Post_Endpoint {
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => explode( ',', $slug )
- );
+ );
}
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php
index 36e99804..04d7ec02 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php
@@ -1,71 +1,75 @@
<?php
-new WPCOM_JSON_API_List_Posts_v1_1_Endpoint( array(
- 'description' => 'Get a list of matching posts.',
- 'min_version' => '1.1',
- 'max_version' => '1.1',
-
- 'group' => 'posts',
- 'stat' => 'posts',
-
- 'method' => 'GET',
- 'path' => '/sites/%s/posts/',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
-
- 'query_parameters' => array(
- 'number' => '(int=20) The number of posts to return. Limit: 100.',
- 'offset' => '(int=0) 0-indexed offset.',
- 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the <code>offset</code> parameter.',
- 'page_handle' => '(string) A page handle, returned from a previous API call as a <code>meta.next_page</code> property. This is the most efficient way to fetch the next page of results.',
- 'order' => array(
- 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.',
- 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.',
+new WPCOM_JSON_API_List_Posts_v1_1_Endpoint(
+ array(
+ 'description' => 'Get a list of matching posts.',
+ 'min_version' => '1.1',
+ 'max_version' => '1.1',
+
+ 'group' => 'posts',
+ 'stat' => 'posts',
+
+ 'method' => 'GET',
+ 'path' => '/sites/%s/posts/',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
),
- 'order_by' => array(
- 'date' => 'Order by the created time of each post.',
- 'modified' => 'Order by the modified time of each post.',
- 'title' => "Order lexicographically by the posts' titles.",
- 'comment_count' => 'Order by the number of comments for each post.',
- 'ID' => 'Order by post ID.',
- ),
- 'after' => '(ISO 8601 datetime) Return posts dated after the specified datetime.',
- 'before' => '(ISO 8601 datetime) Return posts dated before the specified datetime.',
- 'modified_after' => '(ISO 8601 datetime) Return posts modified after the specified datetime.',
- 'modified_before' => '(ISO 8601 datetime) Return posts modified before the specified datetime.',
- 'tag' => '(string) Specify the tag name or slug.',
- 'category' => '(string) Specify the category name or slug.',
- 'term' => '(object:string) Specify comma-separated term slugs to search within, indexed by taxonomy slug.',
- 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the <code>rest_api_allowed_post_types</code> filter.",
- 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.',
- 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response',
- 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.',
- 'status' => '(string) Comma-separated list of statuses for which to query, including any of: "publish", "private", "draft", "pending", "future", and "trash", or simply "any". Defaults to "publish"',
- 'sticky' => array(
- 'include' => 'Sticky posts are not excluded from the list.',
- 'exclude' => 'Sticky posts are excluded from the list.',
- 'require' => 'Only include sticky posts',
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
+ 'query_parameters' => array(
+ 'number' => '(int=20) The number of posts to return. Limit: 100.',
+ 'offset' => '(int=0) 0-indexed offset.',
+ 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the <code>offset</code> parameter.',
+ 'page_handle' => '(string) A page handle, returned from a previous API call as a <code>meta.next_page</code> property. This is the most efficient way to fetch the next page of results.',
+ 'order' => array(
+ 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.',
+ 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.',
+ ),
+ 'order_by' => array(
+ 'date' => 'Order by the created time of each post.',
+ 'modified' => 'Order by the modified time of each post.',
+ 'title' => "Order lexicographically by the posts' titles.",
+ 'comment_count' => 'Order by the number of comments for each post.',
+ 'ID' => 'Order by post ID.',
+ ),
+ 'after' => '(ISO 8601 datetime) Return posts dated after the specified datetime.',
+ 'before' => '(ISO 8601 datetime) Return posts dated before the specified datetime.',
+ 'modified_after' => '(ISO 8601 datetime) Return posts modified after the specified datetime.',
+ 'modified_before' => '(ISO 8601 datetime) Return posts modified before the specified datetime.',
+ 'tag' => '(string) Specify the tag name or slug.',
+ 'category' => '(string) Specify the category name or slug.',
+ 'term' => '(object:string) Specify comma-separated term slugs to search within, indexed by taxonomy slug.',
+ 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the <code>rest_api_allowed_post_types</code> filter.",
+ 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.',
+ 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response',
+ 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.',
+ 'status' => '(string) Comma-separated list of statuses for which to query, including any of: "publish", "private", "draft", "pending", "future", and "trash", or simply "any". Defaults to "publish"',
+ 'sticky' => array(
+ 'include' => 'Sticky posts are not excluded from the list.',
+ 'exclude' => 'Sticky posts are excluded from the list.',
+ 'require' => 'Only include sticky posts',
+ ),
+ 'author' => "(int) Author's user ID",
+ 'search' => '(string) Search query',
+ 'meta_key' => '(string) Metadata key that the post should contain',
+ 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given',
),
- 'author' => "(int) Author's user ID",
- 'search' => '(string) Search query',
- 'meta_key' => '(string) Metadata key that the post should contain',
- 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/?number=2'
-) );
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/?number=2',
+ )
+);
class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_Endpoint {
- public $date_range = array();
- public $modified_range = array();
- public $page_handle = array();
+ public $date_range = array();
+ public $modified_range = array();
+ public $page_handle = array();
public $performed_query = null;
public $response_format = array(
- 'found' => '(int) The total number of posts found that match the request (ignoring limits, offsets, and pagination).',
- 'posts' => '(array:post) An array of post objects.',
- 'meta' => '(object) Meta data',
+ 'found' => '(int) The total number of posts found that match the request (ignoring limits, offsets, and pagination).',
+ 'posts' => '(array:post) An array of post objects.',
+ 'meta' => '(object) Meta data',
);
// /sites/%s/posts/ -> $blog_id
@@ -75,14 +79,14 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
return $blog_id;
}
- $args = $this->query_args();
+ $args = $this->query_args();
$is_eligible_for_page_handle = true;
- $site = $this->get_platform()->get_site( $blog_id );
+ $site = $this->get_platform()->get_site( $blog_id );
if ( $args['number'] < 1 ) {
$args['number'] = 20;
} elseif ( 100 < $args['number'] ) {
- return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 );
+ return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 );
}
if ( isset( $args['type'] ) &&
@@ -116,15 +120,18 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
'trash',
'any',
);
- $status = array_intersect( $status, $statuses_whitelist );
+ $status = array_intersect( $status, $statuses_whitelist );
} else {
// logged-out users can see only published posts
$statuses_whitelist = array( 'publish', 'any' );
- $status = array_intersect( $status, $statuses_whitelist );
+ $status = array_intersect( $status, $statuses_whitelist );
if ( empty( $status ) ) {
// requested only protected statuses? nothing for you here
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
// clear it (AKA published only) because "any" includes protected
$status = array();
@@ -138,22 +145,26 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
$allowed_types = array();
foreach ( $args['type'] as $post_type ) {
if ( $site->current_user_can_access_post_type( $post_type, $args['context'] ) ) {
- $allowed_types[] = $post_type;
+ $allowed_types[] = $post_type;
}
}
if ( empty( $allowed_types ) ) {
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
$args['type'] = $allowed_types;
- }
- else {
+ } else {
if ( ! $site->current_user_can_access_post_type( $args['type'], $args['context'] ) ) {
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
}
-
$query = array(
'posts_per_page' => $args['number'],
'order' => $args['order'],
@@ -166,57 +177,64 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
'fields' => 'ids',
);
- if ( ! is_user_logged_in () ) {
+ if ( ! is_user_logged_in() ) {
$query['has_password'] = false;
}
if ( isset( $args['meta_key'] ) ) {
$show = false;
- if ( WPCOM_JSON_API_Metadata::is_public( $args['meta_key'] ) )
+ if ( WPCOM_JSON_API_Metadata::is_public( $args['meta_key'] ) ) {
$show = true;
- if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) )
+ }
+ if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) ) {
$show = true;
+ }
- if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show )
+ if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show ) {
return new WP_Error( 'invalid_meta_key', 'Invalid meta key', 404 );
+ }
$meta = array( 'key' => $args['meta_key'] );
- if ( isset( $args['meta_value'] ) )
+ if ( isset( $args['meta_value'] ) ) {
$meta['value'] = $args['meta_value'];
+ }
$query['meta_query'] = array( $meta );
}
if ( $args['sticky'] === 'include' ) {
$query['ignore_sticky_posts'] = 1;
- } else if ( $args['sticky'] === 'exclude' ) {
+ } elseif ( $args['sticky'] === 'exclude' ) {
$sticky = get_option( 'sticky_posts' );
if ( is_array( $sticky ) ) {
$query['post__not_in'] = $sticky;
}
- } else if ( $args['sticky'] === 'require' ) {
+ } elseif ( $args['sticky'] === 'require' ) {
$sticky = get_option( 'sticky_posts' );
if ( is_array( $sticky ) && ! empty( $sticky ) ) {
$query['post__in'] = $sticky;
} else {
// no sticky posts exist
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
}
if ( isset( $args['exclude'] ) ) {
- $excluded_ids = (array) $args['exclude'];
+ $excluded_ids = (array) $args['exclude'];
$query['post__not_in'] = isset( $query['post__not_in'] ) ? array_merge( $query['post__not_in'], $excluded_ids ) : $excluded_ids;
}
if ( isset( $args['exclude_tree'] ) && is_post_type_hierarchical( $args['type'] ) ) {
// get_page_children is a misnomer; it supports all hierarchical post types
- $page_args = array(
- 'child_of' => $args['exclude_tree'],
- 'post_type' => $args['type'],
- // since we're looking for things to exclude, be aggressive
- 'post_status' => 'publish,draft,pending,private,future,trash',
- );
+ $page_args = array(
+ 'child_of' => $args['exclude_tree'],
+ 'post_type' => $args['type'],
+ // since we're looking for things to exclude, be aggressive
+ 'post_status' => 'publish,draft,pending,private,future,trash',
+ );
$post_descendants = get_pages( $page_args );
$exclude_tree = array( $args['exclude_tree'] );
@@ -229,7 +247,7 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
if ( isset( $args['category'] ) ) {
$category = get_term_by( 'slug', $args['category'], 'category' );
- if ( $category === false) {
+ if ( $category === false ) {
$query['category_name'] = $args['category'];
} else {
$query['cat'] = $category->term_id;
@@ -244,16 +262,16 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
$query['tax_query'] = array();
foreach ( $args['term'] as $taxonomy => $slug ) {
$taxonomy_object = get_taxonomy( $taxonomy );
- if ( false === $taxonomy_object || ( ! $taxonomy_object->public &&
+ if ( false === $taxonomy_object || ( ! $taxonomy_object->public &&
! current_user_can( $taxonomy_object->cap->assign_terms ) ) ) {
continue;
}
$query['tax_query'][] = array(
'taxonomy' => $taxonomy,
- 'field' => 'slug',
- 'terms' => explode( ',', $slug )
- );
+ 'field' => 'slug',
+ 'terms' => explode( ',', $slug ),
+ );
}
}
@@ -340,59 +358,62 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
}
- $return = array();
+ $return = array();
$excluded_count = 0;
foreach ( array_keys( $this->response_format ) as $key ) {
switch ( $key ) {
- case 'found' :
- $return[$key] = (int) $wp_query->found_posts;
- break;
- case 'posts' :
- $posts = array();
- foreach ( $wp_query->posts as $post_ID ) {
- $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] );
- if ( $the_post && ! is_wp_error( $the_post ) ) {
- $posts[] = $the_post;
- } else {
- $excluded_count++;
+ case 'found':
+ $return[ $key ] = (int) $wp_query->found_posts;
+ break;
+ case 'posts':
+ $posts = array();
+ foreach ( $wp_query->posts as $post_ID ) {
+ $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] );
+ if ( $the_post && ! is_wp_error( $the_post ) ) {
+ $posts[] = $the_post;
+ } else {
+ $excluded_count++;
+ }
}
- }
- if ( $posts ) {
- /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */
- do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) );
- }
+ if ( $posts ) {
+ /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */
+ do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) );
+ }
- $return[$key] = $posts;
- break;
+ $return[ $key ] = $posts;
+ break;
- case 'meta' :
- if ( ! is_array( $args['type'] ) ) {
- $return[$key] = (object) array(
- 'links' => (object) array(
- 'counts' => (string) $this->links->get_site_link( $blog_id, 'post-counts/' . $args['type'] ),
- )
- );
- }
+ case 'meta':
+ if ( ! is_array( $args['type'] ) ) {
+ $return[ $key ] = (object) array(
+ 'links' => (object) array(
+ 'counts' => (string) $this->links->get_site_link( $blog_id, 'post-counts/' . $args['type'] ),
+ ),
+ );
+ }
- if ( $is_eligible_for_page_handle && $return['posts'] ) {
- $last_post = end( $return['posts'] );
- reset( $return['posts'] );
- if ( ( $return['found'] > count( $return['posts'] ) ) && $last_post ) {
- if ( ! isset( $return[$key] ) ) {
- $return[$key] = (object) array();
+ if ( $is_eligible_for_page_handle && $return['posts'] ) {
+ $last_post = end( $return['posts'] );
+ reset( $return['posts'] );
+ if ( ( $return['found'] > count( $return['posts'] ) ) && $last_post ) {
+ if ( ! isset( $return[ $key ] ) ) {
+ $return[ $key ] = (object) array();
+ }
+ if ( isset( $last_post['ID'] ) ) {
+ $return[ $key ]->next_page = $this->build_page_handle( $last_post, $query );
+ }
}
- $return[$key]->next_page = $this->build_page_handle( $last_post, $query );
}
- }
- if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- if ( !isset( $return[$key] ) )
- $return[$key] = new stdClass;
- $return[$key]->wpcom = true;
- }
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ if ( ! isset( $return[ $key ] ) ) {
+ $return[ $key ] = new stdClass();
+ }
+ $return[ $key ]->wpcom = true;
+ }
- break;
+ break;
}
}
@@ -406,21 +427,26 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
if ( ! $column ) {
$column = 'date';
}
- return build_query( array( 'value' => urlencode($post[$column]), 'id' => $post['ID'] ) );
+ return build_query(
+ array(
+ 'value' => urlencode( $post[ $column ] ),
+ 'id' => $post['ID'],
+ )
+ );
}
function _build_date_range_query( $column, $range, $where ) {
global $wpdb;
switch ( count( $range ) ) {
- case 2 :
+ case 2:
$where .= $wpdb->prepare(
" AND `$wpdb->posts`.$column >= CAST( %s AS DATETIME ) AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ",
$range['after'],
$range['before']
);
break;
- case 1 :
+ case 1:
if ( isset( $range['before'] ) ) {
$where .= $wpdb->prepare(
" AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ",
@@ -467,31 +493,31 @@ class WPCOM_JSON_API_List_Posts_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_E
}
$db_column = '';
- $db_value = '';
- switch( $column ) {
+ $db_value = '';
+ switch ( $column ) {
case 'ID':
$db_column = 'ID';
- $db_value = '%d';
+ $db_value = '%d';
break;
case 'title':
$db_column = 'post_title';
- $db_value = '%s';
+ $db_value = '%s';
break;
case 'date':
$db_column = 'post_date';
- $db_value = 'CAST( %s as DATETIME )';
+ $db_value = 'CAST( %s as DATETIME )';
break;
case 'modified':
$db_column = 'post_modified';
- $db_value = 'CAST( %s as DATETIME )';
+ $db_value = 'CAST( %s as DATETIME )';
break;
case 'comment_count':
$db_column = 'comment_count';
- $db_value = '%d';
+ $db_value = '%d';
break;
}
- if ( 'DESC'=== $order ) {
+ if ( 'DESC' === $order ) {
$db_order = '<';
} else {
$db_order = '>';
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php
index 7b01d2f2..e4f7bd55 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-2-endpoint.php
@@ -1,61 +1,65 @@
<?php
-new WPCOM_JSON_API_List_Posts_v1_2_Endpoint( array(
- 'description' => 'Get a list of matching posts.',
- 'min_version' => '1.2',
- 'max_version' => '1.2',
-
- 'group' => 'posts',
- 'stat' => 'posts',
-
- 'method' => 'GET',
- 'path' => '/sites/%s/posts/',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
-
- 'query_parameters' => array(
- 'number' => '(int=20) The number of posts to return. Limit: 100.',
- 'offset' => '(int=0) 0-indexed offset.',
- 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the <code>offset</code> parameter.',
- 'page_handle' => '(string) A page handle, returned from a previous API call as a <code>meta.next_page</code> property. This is the most efficient way to fetch the next page of results.',
- 'order' => array(
- 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.',
- 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.',
+new WPCOM_JSON_API_List_Posts_v1_2_Endpoint(
+ array(
+ 'description' => 'Get a list of matching posts.',
+ 'min_version' => '1.2',
+ 'max_version' => '1.2',
+
+ 'group' => 'posts',
+ 'stat' => 'posts',
+
+ 'method' => 'GET',
+ 'path' => '/sites/%s/posts/',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
),
- 'order_by' => array(
- 'date' => 'Order by the created time of each post.',
- 'modified' => 'Order by the modified time of each post.',
- 'title' => "Order lexicographically by the posts' titles.",
- 'comment_count' => 'Order by the number of comments for each post.',
- 'ID' => 'Order by post ID.',
- ),
- 'after' => '(ISO 8601 datetime) Return posts dated after the specified datetime.',
- 'before' => '(ISO 8601 datetime) Return posts dated before the specified datetime.',
- 'modified_after' => '(ISO 8601 datetime) Return posts modified after the specified datetime.',
- 'modified_before' => '(ISO 8601 datetime) Return posts modified before the specified datetime.',
- 'tag' => '(string) Specify the tag name or slug.',
- 'category' => '(string) Specify the category name or slug.',
- 'term' => '(object:string) Specify comma-separated term slugs to search within, indexed by taxonomy slug.',
- 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the <code>rest_api_allowed_post_types</code> filter.",
- 'exclude_private_types' => '(bool=false) Use this flag together with `type=any` to get only publicly accessible posts.',
- 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.',
- 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response',
- 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.',
- 'status' => '(string) Comma-separated list of statuses for which to query, including any of: "publish", "private", "draft", "pending", "future", and "trash", or simply "any". Defaults to "publish"',
- 'sticky' => array(
- 'include' => 'Sticky posts are not excluded from the list.',
- 'exclude' => 'Sticky posts are excluded from the list.',
- 'require' => 'Only include sticky posts',
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
+ 'query_parameters' => array(
+ 'number' => '(int=20) The number of posts to return. Limit: 100.',
+ 'offset' => '(int=0) 0-indexed offset.',
+ 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the <code>offset</code> parameter.',
+ 'page_handle' => '(string) A page handle, returned from a previous API call as a <code>meta.next_page</code> property. This is the most efficient way to fetch the next page of results.',
+ 'order' => array(
+ 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.',
+ 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.',
+ ),
+ 'order_by' => array(
+ 'date' => 'Order by the created time of each post.',
+ 'modified' => 'Order by the modified time of each post.',
+ 'title' => "Order lexicographically by the posts' titles.",
+ 'comment_count' => 'Order by the number of comments for each post.',
+ 'ID' => 'Order by post ID.',
+ ),
+ 'after' => '(ISO 8601 datetime) Return posts dated after the specified datetime.',
+ 'before' => '(ISO 8601 datetime) Return posts dated before the specified datetime.',
+ 'modified_after' => '(ISO 8601 datetime) Return posts modified after the specified datetime.',
+ 'modified_before' => '(ISO 8601 datetime) Return posts modified before the specified datetime.',
+ 'tag' => '(string) Specify the tag name or slug.',
+ 'category' => '(string) Specify the category name or slug.',
+ 'term' => '(object:string) Specify comma-separated term slugs to search within, indexed by taxonomy slug.',
+ 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the <code>rest_api_allowed_post_types</code> filter.",
+ 'exclude_private_types' => '(bool=false) Use this flag together with `type=any` to get only publicly accessible posts.',
+ 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.',
+ 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response',
+ 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.',
+ 'status' => '(string) Comma-separated list of statuses for which to query, including any of: "publish", "private", "draft", "pending", "future", and "trash", or simply "any". Defaults to "publish"',
+ 'sticky' => array(
+ 'include' => 'Sticky posts are not excluded from the list.',
+ 'exclude' => 'Sticky posts are excluded from the list.',
+ 'require' => 'Only include sticky posts',
+ ),
+ 'author' => "(int) Author's user ID",
+ 'search' => '(string) Search query',
+ 'meta_key' => '(string) Metadata key that the post should contain',
+ 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given',
),
- 'author' => "(int) Author's user ID",
- 'search' => '(string) Search query',
- 'meta_key' => '(string) Metadata key that the post should contain',
- 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/en.blog.wordpress.com/posts/?number=2'
-) );
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/en.blog.wordpress.com/posts/?number=2',
+ )
+);
class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_v1_1_Endpoint {
// /sites/%s/posts/ -> $blog_id
@@ -65,14 +69,14 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
return $blog_id;
}
- $args = $this->query_args();
+ $args = $this->query_args();
$is_eligible_for_page_handle = true;
- $site = $this->get_platform()->get_site( $blog_id );
+ $site = $this->get_platform()->get_site( $blog_id );
if ( $args['number'] < 1 ) {
$args['number'] = 20;
} elseif ( 100 < $args['number'] ) {
- return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 );
+ return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 );
}
if ( isset( $args['type'] ) ) {
@@ -91,7 +95,7 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
if ( isset( $args['exclude_private_types'] ) && $args['exclude_private_types'] == true ) {
$public_post_types = get_post_types( array( 'public' => true ) );
- $args['type'] = array_intersect( $public_post_types, $whitelisted_post_types );
+ $args['type'] = array_intersect( $public_post_types, $whitelisted_post_types );
} else {
$args['type'] = $whitelisted_post_types;
}
@@ -111,13 +115,18 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
}
if ( empty( $allowed_types ) ) {
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
$args['type'] = $allowed_types;
- }
- else {
+ } else {
if ( ! $site->current_user_can_access_post_type( $args['type'], $args['context'] ) ) {
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
}
@@ -133,15 +142,18 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
'trash',
'any',
);
- $status = array_intersect( $status, $statuses_whitelist );
+ $status = array_intersect( $status, $statuses_whitelist );
} else {
// logged-out users can see only published posts
$statuses_whitelist = array( 'publish', 'any' );
- $status = array_intersect( $status, $statuses_whitelist );
+ $status = array_intersect( $status, $statuses_whitelist );
if ( empty( $status ) ) {
// requested only protected statuses? nothing for you here
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
// clear it (AKA published only) because "any" includes protected
$status = array();
@@ -159,57 +171,64 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
'fields' => 'ids',
);
- if ( ! is_user_logged_in () ) {
+ if ( ! is_user_logged_in() ) {
$query['has_password'] = false;
}
if ( isset( $args['meta_key'] ) ) {
$show = false;
- if ( WPCOM_JSON_API_Metadata::is_public( $args['meta_key'] ) )
+ if ( WPCOM_JSON_API_Metadata::is_public( $args['meta_key'] ) ) {
$show = true;
- if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) )
+ }
+ if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) ) {
$show = true;
+ }
- if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show )
+ if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show ) {
return new WP_Error( 'invalid_meta_key', 'Invalid meta key', 404 );
+ }
$meta = array( 'key' => $args['meta_key'] );
- if ( isset( $args['meta_value'] ) )
+ if ( isset( $args['meta_value'] ) ) {
$meta['value'] = $args['meta_value'];
+ }
$query['meta_query'] = array( $meta );
}
if ( $args['sticky'] === 'include' ) {
$query['ignore_sticky_posts'] = 1;
- } else if ( $args['sticky'] === 'exclude' ) {
+ } elseif ( $args['sticky'] === 'exclude' ) {
$sticky = get_option( 'sticky_posts' );
if ( is_array( $sticky ) ) {
$query['post__not_in'] = $sticky;
}
- } else if ( $args['sticky'] === 'require' ) {
+ } elseif ( $args['sticky'] === 'require' ) {
$sticky = get_option( 'sticky_posts' );
if ( is_array( $sticky ) && ! empty( $sticky ) ) {
$query['post__in'] = $sticky;
} else {
// no sticky posts exist
- return array( 'found' => 0, 'posts' => array() );
+ return array(
+ 'found' => 0,
+ 'posts' => array(),
+ );
}
}
if ( isset( $args['exclude'] ) ) {
- $excluded_ids = (array) $args['exclude'];
+ $excluded_ids = (array) $args['exclude'];
$query['post__not_in'] = isset( $query['post__not_in'] ) ? array_merge( $query['post__not_in'], $excluded_ids ) : $excluded_ids;
}
if ( isset( $args['exclude_tree'] ) && is_post_type_hierarchical( $args['type'] ) ) {
// get_page_children is a misnomer; it supports all hierarchical post types
- $page_args = array(
- 'child_of' => $args['exclude_tree'],
- 'post_type' => $args['type'],
- // since we're looking for things to exclude, be aggressive
- 'post_status' => 'publish,draft,pending,private,future,trash',
- );
+ $page_args = array(
+ 'child_of' => $args['exclude_tree'],
+ 'post_type' => $args['type'],
+ // since we're looking for things to exclude, be aggressive
+ 'post_status' => 'publish,draft,pending,private,future,trash',
+ );
$post_descendants = get_pages( $page_args );
$exclude_tree = array( $args['exclude_tree'] );
@@ -222,7 +241,7 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
if ( isset( $args['category'] ) ) {
$category = get_term_by( 'slug', $args['category'], 'category' );
- if ( $category === false) {
+ if ( $category === false ) {
$query['category_name'] = $args['category'];
} else {
$query['cat'] = $category->term_id;
@@ -244,8 +263,8 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
$query['tax_query'][] = array(
'taxonomy' => $taxonomy,
- 'field' => 'slug',
- 'terms' => explode( ',', $slug )
+ 'field' => 'slug',
+ 'terms' => explode( ',', $slug ),
);
}
}
@@ -333,59 +352,63 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
}
- $return = array();
+ $return = array();
$excluded_count = 0;
foreach ( array_keys( $this->response_format ) as $key ) {
switch ( $key ) {
- case 'found' :
- $return[$key] = (int) $wp_query->found_posts;
- break;
- case 'posts' :
- $posts = array();
- foreach ( $wp_query->posts as $post_ID ) {
- $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] );
- if ( $the_post && ! is_wp_error( $the_post ) ) {
- $posts[] = $the_post;
- } else {
- $excluded_count++;
+ case 'found':
+ $return[ $key ] = (int) $wp_query->found_posts;
+ break;
+ case 'posts':
+ $posts = array();
+ foreach ( $wp_query->posts as $post_ID ) {
+ $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] );
+ if ( $the_post && ! is_wp_error( $the_post ) ) {
+ $posts[] = $the_post;
+ } else {
+ $excluded_count++;
+ }
}
- }
- if ( $posts ) {
- /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */
- do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) );
- }
+ if ( $posts ) {
+ /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */
+ do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) );
+ }
- $return[$key] = $posts;
- break;
+ $return[ $key ] = $posts;
+ break;
- case 'meta' :
- if ( ! is_array( $args['type'] ) ) {
- $return[$key] = (object) array(
- 'links' => (object) array(
- 'counts' => (string) $this->links->get_site_link( $blog_id, 'post-counts/' . $args['type'] ),
- )
- );
- }
+ case 'meta':
+ if ( ! is_array( $args['type'] ) ) {
+ $return[ $key ] = (object) array(
+ 'links' => (object) array(
+ 'counts' => (string) $this->links->get_site_link( $blog_id, 'post-counts/' . $args['type'] ),
+ ),
+ );
+ }
- if ( $is_eligible_for_page_handle && $return['posts'] ) {
- $last_post = end( $return['posts'] );
- reset( $return['posts'] );
- if ( ( $return['found'] > count( $return['posts'] ) ) && $last_post ) {
- if ( ! isset( $return[$key] ) ) {
- $return[$key] = (object) array();
+ if ( $is_eligible_for_page_handle && $return['posts'] ) {
+ $last_post = end( $return['posts'] );
+ reset( $return['posts'] );
+ if ( ( $return['found'] > count( $return['posts'] ) ) && $last_post ) {
+ if ( ! isset( $return[ $key ] ) ) {
+ $return[ $key ] = (object) array();
+ }
+
+ if ( isset( $last_post['ID'] ) ) {
+ $return[ $key ]->next_page = $this->build_page_handle( $last_post, $query );
+ }
}
- $return[$key]->next_page = $this->build_page_handle( $last_post, $query );
}
- }
- if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- if ( !isset( $return[$key] ) )
- $return[$key] = new stdClass;
- $return[$key]->wpcom = true;
- }
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ if ( ! isset( $return[ $key ] ) ) {
+ $return[ $key ] = new stdClass();
+ }
+ $return[ $key ]->wpcom = true;
+ }
- break;
+ break;
}
}
@@ -399,21 +422,26 @@ class WPCOM_JSON_API_List_Posts_v1_2_Endpoint extends WPCOM_JSON_API_List_Posts_
if ( ! $column ) {
$column = 'date';
}
- return build_query( array( 'value' => urlencode($post[$column]), 'id' => $post['ID'] ) );
+ return build_query(
+ array(
+ 'value' => urlencode( $post[ $column ] ),
+ 'id' => $post['ID'],
+ )
+ );
}
function _build_date_range_query( $column, $range, $where ) {
global $wpdb;
switch ( count( $range ) ) {
- case 2 :
+ case 2:
$where .= $wpdb->prepare(
" AND `$wpdb->posts`.$column >= CAST( %s AS DATETIME ) AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ",
$range['after'],
$range['before']
);
break;
- case 1 :
+ case 1:
if ( isset( $range['before'] ) ) {
$where .= $wpdb->prepare(
" AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ",
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php
index 733f26f7..f40429b9 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php
@@ -130,6 +130,17 @@ class WPCOM_JSON_API_List_Roles_Endpoint extends WPCOM_JSON_API_Endpoint {
// Sort the array so roles with the most number of capabilities comes first, then the next role, and so on
usort( $roles, array( 'self', 'role_sort' ) );
+ /**
+ * Filter for curating the list of roles available for a wpcom site.
+ *
+ * @module json-api
+ *
+ * @since 8.7.0
+ *
+ * @param array $roles List of role objects available to the site.
+ */
+ $roles = apply_filters( 'wpcom_api_site_roles', $roles );
+
return array( 'roles' => $roles );
}
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php
index 83edcfc9..f05d852e 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-list-terms-endpoint.php
@@ -24,6 +24,9 @@ new WPCOM_JSON_API_List_Terms_Endpoint( array(
'count' => 'Order by the number of posts in each tag.',
),
),
+
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'response_format' => array(
'found' => '(int) The number of terms returned.',
'terms' => '(array) Array of tag objects.',
@@ -44,7 +47,7 @@ class WPCOM_JSON_API_List_Terms_Endpoint extends WPCOM_JSON_API_Endpoint {
}
$taxonomy_meta = get_taxonomy( $taxonomy );
- if ( false === $taxonomy_meta || ( ! $taxonomy_meta->public &&
+ if ( false === $taxonomy_meta || ( ! $taxonomy_meta->public &&
! current_user_can( $taxonomy_meta->cap->assign_terms ) ) ) {
return new WP_Error( 'invalid_taxonomy', 'The taxonomy does not exist', 400 );
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php
index 917c7d7a..6b1b1dd1 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php
@@ -416,7 +416,6 @@ abstract class WPCOM_JSON_API_Post_Endpoint extends WPCOM_JSON_API_Endpoint {
if ( current_user_can( 'edit_post_meta', $post_id , $meta['meta_key'] ) )
$show = true;
- // Only business plan subscribers can view custom meta description.
if ( Jetpack_SEO_Posts::DESCRIPTION_META_KEY === $meta['meta_key'] && ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
$show = false;
}
@@ -534,40 +533,77 @@ abstract class WPCOM_JSON_API_Post_Endpoint extends WPCOM_JSON_API_Endpoint {
unset( $attr['orderby'] );
}
- extract( shortcode_atts( array(
- 'order' => 'ASC',
- 'orderby' => 'menu_order ID',
- 'id' => $post->ID,
- 'include' => '',
- 'exclude' => '',
- 'slideshow' => false
- ), $attr, 'gallery' ) );
+ $atts = shortcode_atts(
+ array(
+ 'order' => 'ASC',
+ 'orderby' => 'menu_order ID',
+ 'id' => $post->ID,
+ 'include' => '',
+ 'exclude' => '',
+ 'slideshow' => false,
+ ),
+ $attr,
+ 'gallery'
+ );
+ $id = ! empty( $atts['id'] ) ? (int) $atts['id'] : 0;
- // Custom image size and always use it
+ // Custom image size and always use it.
add_image_size( 'win8app-column', 480 );
$size = 'win8app-column';
- $id = intval( $id );
- if ( 'RAND' === $order )
+ if ( 'RAND' === $atts['order'] ) {
$orderby = 'none';
+ } else {
+ $orderby = $atts['orderby'];
+ }
- if ( !empty( $include ) ) {
- $include = preg_replace( '/[^0-9,]+/', '', $include );
- $_attachments = get_posts( array( 'include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ if ( ! empty( $atts['include'] ) ) {
+ $include = preg_replace( '/[^0-9,]+/', '', $atts['include'] );
+ $_attachments = get_posts(
+ array(
+ 'include' => $include,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
$attachments = array();
foreach ( $_attachments as $key => $val ) {
- $attachments[$val->ID] = $_attachments[$key];
+ $attachments[ $val->ID ] = $_attachments[ $key ];
}
- } elseif ( !empty( $exclude ) ) {
- $exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
- $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ } elseif ( ! empty( $atts['exclude'] ) ) {
+ $exclude = preg_replace( '/[^0-9,]+/', '', $atts['exclude'] );
+ $attachments = get_children(
+ array(
+ 'post_parent' => $id,
+ 'exclude' => $exclude,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
} else {
- $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ $attachments = get_children(
+ array(
+ 'post_parent' => $id,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
}
if ( ! empty( $attachments ) ) {
foreach ( $attachments as $id => $attachment ) {
- $link = isset( $attr['link'] ) && 'file' === $attr['link'] ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false );
+ $link = isset( $attr['link'] ) && 'file' === $attr['link']
+ ? wp_get_attachment_link( $id, $size, false, false )
+ : wp_get_attachment_link( $id, $size, true, false );
if ( $captiontag && trim($attachment->post_excerpt) ) {
$output .= "<div class='wp-caption aligncenter'>$link
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php
index febf76bd..73f5f559 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php
@@ -339,40 +339,77 @@ abstract class WPCOM_JSON_API_Post_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
unset( $attr['orderby'] );
}
- extract( shortcode_atts( array(
- 'order' => 'ASC',
- 'orderby' => 'menu_order ID',
- 'id' => $post->ID,
- 'include' => '',
- 'exclude' => '',
- 'slideshow' => false
- ), $attr, 'gallery' ) );
-
- // Custom image size and always use it
+ $atts = shortcode_atts(
+ array(
+ 'order' => 'ASC',
+ 'orderby' => 'menu_order ID',
+ 'id' => $post->ID,
+ 'include' => '',
+ 'exclude' => '',
+ 'slideshow' => false,
+ ),
+ $attr,
+ 'gallery'
+ );
+ $id = ! empty( $atts['id'] ) ? (int) $atts['id'] : 0;
+
+ // Custom image size and always use it.
add_image_size( 'win8app-column', 480 );
$size = 'win8app-column';
- $id = intval( $id );
- if ( 'RAND' === $order )
+ if ( 'RAND' === $atts['order'] ) {
$orderby = 'none';
+ } else {
+ $orderby = $atts['orderby'];
+ }
- if ( !empty( $include ) ) {
- $include = preg_replace( '/[^0-9,]+/', '', $include );
- $_attachments = get_posts( array( 'include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ if ( ! empty( $atts['include'] ) ) {
+ $include = preg_replace( '/[^0-9,]+/', '', $atts['include'] );
+ $_attachments = get_posts(
+ array(
+ 'include' => $include,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
$attachments = array();
foreach ( $_attachments as $key => $val ) {
- $attachments[$val->ID] = $_attachments[$key];
+ $attachments[ $val->ID ] = $_attachments[ $key ];
}
- } elseif ( !empty( $exclude ) ) {
- $exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
- $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ } elseif ( ! empty( $atts['exclude'] ) ) {
+ $exclude = preg_replace( '/[^0-9,]+/', '', $atts['exclude'] );
+ $attachments = get_children(
+ array(
+ 'post_parent' => $id,
+ 'exclude' => $exclude,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
} else {
- $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) );
+ $attachments = get_children(
+ array(
+ 'post_parent' => $id,
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'post_mime_type' => 'image',
+ 'order' => $atts['order'],
+ 'orderby' => $orderby,
+ )
+ );
}
if ( ! empty( $attachments ) ) {
foreach ( $attachments as $id => $attachment ) {
- $link = isset( $attr['link'] ) && 'file' === $attr['link'] ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false );
+ $link = isset( $attr['link'] ) && 'file' === $attr['link']
+ ? wp_get_attachment_link( $id, $size, false, false )
+ : wp_get_attachment_link( $id, $size, true, false );
if ( $captiontag && trim($attachment->post_excerpt) ) {
$output .= "<div class='wp-caption aligncenter'>$link
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php
index f2de7fc3..fa8562bf 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php
@@ -15,6 +15,10 @@ abstract class WPCOM_JSON_API_Render_Endpoint extends WPCOM_JSON_API_Endpoint {
function process_render( $callback, $callback_arg ) {
global $wp_scripts, $wp_styles;
+ if ( false === defined( 'STYLESHEETPATH' ) ) {
+ wp_templating_constants();
+ }
+
// initial scripts & styles (to subtract)
ob_start();
wp_head();
@@ -142,4 +146,4 @@ abstract class WPCOM_JSON_API_Render_Endpoint extends WPCOM_JSON_API_Endpoint {
global $wp_embed;
return $wp_embed->shortcode( array(), $embed_url );
}
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php
index d55a7e9b..ca8e1ec3 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php
@@ -1,146 +1,172 @@
-<?php
-
-new WPCOM_JSON_API_Site_Settings_Endpoint( array(
- 'description' => 'Get detailed settings information about a site.',
- 'group' => '__do_not_document',
- 'stat' => 'sites:X',
- 'max_version' => '1.1',
- 'new_version' => '1.2',
- 'method' => 'GET',
- 'path' => '/sites/%s/settings',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
-
- 'query_parameters' => array(
- 'context' => false,
- ),
-
- 'response_format' => WPCOM_JSON_API_Site_Settings_Endpoint::$site_format,
-
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings',
-) );
-
-new WPCOM_JSON_API_Site_Settings_Endpoint( array(
- 'description' => 'Update settings for a site.',
- 'group' => '__do_not_document',
- 'stat' => 'sites:X',
- 'max_version' => '1.1',
- 'new_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/settings',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
-
- 'request_format' => array(
- 'blogname' => '(string) Blog name',
- 'blogdescription' => '(string) Blog description',
- 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
- 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
- 'default_comment_status' => '(bool) Allow comments on new articles?',
- 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
- 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
- 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
- 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
- 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
- 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
- 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
- 'jetpack_search_supported' => '(bool) Jetpack Search is supported',
- 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
- 'default_category' => '(int) Default post category',
- 'default_post_format' => '(string) Default post format',
- 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
- 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
- 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
- 'close_comments_days_old' => '(int) Age at which to close comments',
- 'thread_comments' => '(bool) Enable threaded comments?',
- 'thread_comments_depth' => '(int) Depth to thread comments',
- 'page_comments' => '(bool) Break comments into pages?',
- 'comments_per_page' => '(int) Number of comments to display per page',
- 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
- 'comment_order' => '(string) asc|desc Order to display comments within page',
- 'comments_notify' => '(bool) Email me when someone comments?',
- 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
- 'social_notifications_like' => '(bool) Email me when someone likes my post?',
- 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
- 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
- 'comment_moderation' => '(bool) Moderate comments for manual approval?',
- 'comment_whitelist' => '(bool) Moderate comments unless author has a previously-approved comment?',
- 'comment_max_links' => '(int) Moderate comments that contain X or more links',
- 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
- 'blacklist_keys' => '(string) Words or phrases that mark comment spam, one per line',
- 'lang_id' => '(int) ID for language blog is written in',
- 'wga' => '(array) Google Analytics Settings',
- 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
- 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
- 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
- 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
- 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
- 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
- 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
- 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
- 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
- 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
- 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
- 'gmt_offset' => '(int) Site offset from UTC in hours',
- 'date_format' => '(string) PHP Date-compatible date format',
- 'time_format' => '(string) PHP Date-compatible time format',
- 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
- 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
- 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
- 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
- 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
- Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => '(string) The seo meta description for the site.',
- Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
- 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex',
- 'markdown_supported' => '(bool) Whether markdown is supported for this site',
- 'wpcom_publish_posts_with_markdown' => '(bool) Whether markdown is enabled for posts',
- 'wpcom_publish_comments_with_markdown' => '(bool) Whether markdown is enabled for comments',
- 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
- 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
- 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
- 'posts_per_page' => '(int) Number of posts to show on blog pages',
- 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
- 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
- ),
-
- 'response_format' => array(
- 'updated' => '(array)'
- ),
-
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings',
-) );
-
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Manage settings via the WordPress.com REST API.
+ *
+ * @package automattic/jetpack
+ */
+
+new WPCOM_JSON_API_Site_Settings_Endpoint(
+ array(
+ 'description' => 'Get detailed settings information about a site.',
+ 'group' => '__do_not_document',
+ 'stat' => 'sites:X',
+ 'max_version' => '1.1',
+ 'new_version' => '1.2',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/settings',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ ),
+
+ 'query_parameters' => array(
+ 'context' => false,
+ ),
+
+ 'response_format' => WPCOM_JSON_API_Site_Settings_Endpoint::$site_format,
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings',
+ )
+);
+
+new WPCOM_JSON_API_Site_Settings_Endpoint(
+ array(
+ 'description' => 'Update settings for a site.',
+ 'group' => '__do_not_document',
+ 'stat' => 'sites:X',
+ 'max_version' => '1.1',
+ 'new_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/settings',
+ 'a_new_very_long_key' => 'blabla',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ ),
+
+ 'request_format' => array(
+ 'blogname' => '(string) Blog name',
+ 'blogdescription' => '(string) Blog description',
+ 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
+ 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
+ 'default_comment_status' => '(bool) Allow comments on new articles?',
+ 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
+ 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
+ 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
+ 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
+ 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
+ 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
+ 'instant_search_enabled' => '(bool) Enable the new Jetpack Instant Search interface',
+ 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
+ 'jetpack_search_supported' => '(bool) Jetpack Search is supported',
+ 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
+ 'default_category' => '(int) Default post category',
+ 'default_post_format' => '(string) Default post format',
+ 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
+ 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
+ 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
+ 'close_comments_days_old' => '(int) Age at which to close comments',
+ 'thread_comments' => '(bool) Enable threaded comments?',
+ 'thread_comments_depth' => '(int) Depth to thread comments',
+ 'page_comments' => '(bool) Break comments into pages?',
+ 'comments_per_page' => '(int) Number of comments to display per page',
+ 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
+ 'comment_order' => '(string) asc|desc Order to display comments within page',
+ 'comments_notify' => '(bool) Email me when someone comments?',
+ 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
+ 'social_notifications_like' => '(bool) Email me when someone likes my post?',
+ 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
+ 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
+ 'comment_moderation' => '(bool) Moderate comments for manual approval?',
+ 'comment_previously_approved' => '(bool) Moderate comments unless author has a previously-approved comment?',
+ 'comment_max_links' => '(int) Moderate comments that contain X or more links',
+ 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
+ 'disallowed_keys' => '(string) Words or phrases that mark comment spam, one per line',
+ 'lang_id' => '(int) ID for language blog is written in',
+ 'wga' => '(array) Google Analytics Settings',
+ 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
+ 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
+ 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
+ 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
+ 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
+ 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
+ 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
+ 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
+ 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
+ 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
+ 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
+ 'gmt_offset' => '(int) Site offset from UTC in hours',
+ 'date_format' => '(string) PHP Date-compatible date format',
+ 'time_format' => '(string) PHP Date-compatible time format',
+ 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
+ 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
+ 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
+ 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
+ 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
+ Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => '(string) The seo meta description for the site.',
+ Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
+ 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex, facebook',
+ 'markdown_supported' => '(bool) Whether markdown is supported for this site',
+ 'wpcom_publish_posts_with_markdown' => '(bool) Whether markdown is enabled for posts',
+ 'wpcom_publish_comments_with_markdown' => '(bool) Whether markdown is enabled for comments',
+ 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
+ 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
+ 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
+ 'posts_per_page' => '(int) Number of posts to show on blog pages',
+ 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
+ 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
+ ),
+
+ 'response_format' => array(
+ 'updated' => '(array)',
+ ),
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings',
+ )
+);
+
+/**
+ * Manage Site settings endpoint.
+ */
class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
+ /**
+ * Site format.
+ *
+ * @var array
+ */
public static $site_format = array(
- 'ID' => '(int) Site ID',
- 'name' => '(string) Title of site',
- 'description' => '(string) Tagline or description of site',
- 'URL' => '(string) Full URL to the site',
- 'lang' => '(string) Primary language code of the site',
- 'locale_variant' => '(string) Locale variant code for the site, if set',
- 'settings' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site.',
+ 'ID' => '(int) Site ID',
+ 'name' => '(string) Title of site',
+ 'description' => '(string) Tagline or description of site',
+ 'URL' => '(string) Full URL to the site',
+ 'lang' => '(string) Primary language code of the site',
+ 'locale_variant' => '(string) Locale variant code for the site, if set',
+ 'settings' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site.',
);
- // GET /sites/%s/settings
- // POST /sites/%s/settings
- function callback( $path = '', $blog_id = 0 ) {
+ /**
+ * Endpoint response
+ *
+ * GET /sites/%s/settings
+ * POST /sites/%s/settings
+ *
+ * @param string $path Path.
+ * @param int $blog_id Blog ID.
+ */
+ public function callback( $path = '', $blog_id = 0 ) {
$blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) );
if ( is_wp_error( $blog_id ) ) {
return $blog_id;
}
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- // Source & include the infinite scroll compatibility files prior to loading theme functions
+ // Source & include the infinite scroll compatibility files prior to loading theme functions.
add_filter( 'restapi_theme_action_copy_dirs', array( 'WPCOM_JSON_API_Site_Settings_Endpoint', 'wpcom_restapi_copy_theme_plugin_actions' ) );
$this->load_theme_functions();
}
if ( ! is_user_logged_in() ) {
return new WP_Error( 'Unauthorized', 'You must be logged-in to manage settings.', 401 );
- } else if ( ! current_user_can( 'manage_options' ) ) {
+ } elseif ( ! current_user_can( 'manage_options' ) ) {
return new WP_Error( 'Forbidden', 'You do not have the capability to manage settings for this site.', 403 );
}
@@ -156,7 +182,7 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
*/
do_action( 'wpcom_json_api_objects', 'sites' );
return $this->get_settings_response();
- } else if ( 'POST' === $this->api->method ) {
+ } elseif ( 'POST' === $this->api->method ) {
return $this->update_settings();
} else {
return new WP_Error( 'bad_request', 'An unsupported request method was used.' );
@@ -170,9 +196,11 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
*
* @see WPCOM_JSON_API_Endpoint#load_theme_functions
* @see the_neverending_home_page_theme_support
+ *
+ * @param array $copy_dirs Array of files to be included in theme context.
*/
- function wpcom_restapi_copy_theme_plugin_actions( $copy_dirs ) {
- $theme_name = get_stylesheet();
+ public function wpcom_restapi_copy_theme_plugin_actions( $copy_dirs ) {
+ $theme_name = get_stylesheet();
$default_file_name = WP_CONTENT_DIR . "/mu-plugins/infinity/themes/{$theme_name}.php";
/**
@@ -207,18 +235,20 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
'Opti',
'Currents',
);
- return ( ! in_array( wp_get_theme()->get( 'Name' ), $wpcom_related_posts_theme_blacklist ) );
+ return ( ! in_array( wp_get_theme()->get( 'Name' ), $wpcom_related_posts_theme_blacklist, true ) );
}
/**
* Returns category details
*
+ * @param WP_Term $category Category object.
+ *
* @return array
*/
public function get_category_details( $category ) {
return array(
'value' => $category->term_id,
- 'name' => $category->name
+ 'name' => $category->name,
);
}
@@ -226,9 +256,10 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
* Returns an option value as the result of the callable being applied to
* it if a value is set, otherwise null.
*
- * @param string $option_name Option name
- * @param callable $cast_callable Callable to invoke on option value
- * @return int|null Numeric option value or null
+ * @param string $option_name Option name.
+ * @param callable $cast_callable Callable to invoke on option value.
+ *
+ * @return int|null Numeric option value or null.
*/
protected function get_cast_option_value_or_null( $option_name, $cast_callable ) {
$option_value = get_option( $option_name, null );
@@ -245,8 +276,9 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
* @return array
*/
public function get_settings_response() {
+ $response = array();
- // Allow update in later versions
+ // Allow update in later versions.
/**
* Filter the structure of site settings to return.
*
@@ -264,200 +296,209 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
foreach ( array_keys( $response_format ) as $key ) {
- // refactoring to change lang parameter to locale in 1.2
- if ( $lang_or_locale = $this->get_locale( $key ) ) {
- $response[$key] = $lang_or_locale;
+ // refactoring to change lang parameter to locale in 1.2.
+ $lang_or_locale = $this->get_locale( $key );
+ if ( $lang_or_locale ) {
+ $response[ $key ] = $lang_or_locale;
continue;
}
switch ( $key ) {
- case 'ID' :
- $response[$key] = $blog_id;
- break;
- case 'name' :
- $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
- break;
- case 'description' :
- $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'description' ), ENT_QUOTES );
- break;
- case 'URL' :
- $response[$key] = (string) home_url();
- break;
- case 'locale_variant':
- if ( function_exists( 'wpcom_l10n_get_blog_locale_variant' ) ) {
- $blog_locale_variant = wpcom_l10n_get_blog_locale_variant();
- if ( $blog_locale_variant ) {
- $response[$key] = $blog_locale_variant;
+ case 'ID':
+ $response[ $key ] = $blog_id;
+ break;
+ case 'name':
+ $response[ $key ] = (string) htmlspecialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES );
+ break;
+ case 'description':
+ $response[ $key ] = (string) htmlspecialchars_decode( get_bloginfo( 'description' ), ENT_QUOTES );
+ break;
+ case 'URL':
+ $response[ $key ] = (string) home_url();
+ break;
+ case 'locale_variant':
+ if ( function_exists( 'wpcom_l10n_get_blog_locale_variant' ) ) {
+ $blog_locale_variant = wpcom_l10n_get_blog_locale_variant();
+ if ( $blog_locale_variant ) {
+ $response[ $key ] = $blog_locale_variant;
+ }
}
- }
- break;
- case 'settings':
-
- $jetpack_relatedposts_options = Jetpack_Options::get_option( 'relatedposts', array() );
- // If the option's enabled key is NOT SET, it is considered enabled by the plugin
- if ( ! isset( $jetpack_relatedposts_options['enabled'] ) ) {
- $jetpack_relatedposts_options['enabled'] = true;
- }
-
- if ( method_exists( 'Jetpack', 'is_module_active' ) ) {
- $jetpack_relatedposts_options[ 'enabled' ] = Jetpack::is_module_active( 'related-posts' );
- }
-
- $jetpack_search_supported = false;
- if ( function_exists( 'wpcom_is_jetpack_search_supported' ) ) {
- $jetpack_search_supported = wpcom_is_jetpack_search_supported( $blog_id );
- }
-
- $jetpack_search_active = false;
- if ( method_exists( 'Jetpack', 'is_module_active' ) ) {
- $jetpack_search_active = Jetpack::is_module_active( 'search' );
- }
- if ( function_exists( 'is_jetpack_module_active' ) ) {
- $jetpack_search_active = is_jetpack_module_active( 'search', $blog_id );
- }
-
- // array_values() is necessary to ensure the array starts at index 0.
- $post_categories = array_values(
- array_map(
- array( $this, 'get_category_details' ),
- get_categories( array( 'hide_empty' => false ) )
- )
- );
-
- $api_cache = $is_jetpack ? (bool) get_option( 'jetpack_api_cache_enabled' ) : true;
-
- $response[ $key ] = array(
-
- // also exists as "options"
- 'admin_url' => get_admin_url(),
- 'default_ping_status' => (bool) ( 'closed' != get_option( 'default_ping_status' ) ),
- 'default_comment_status' => (bool) ( 'closed' != get_option( 'default_comment_status' ) ),
-
- // new stuff starts here
- 'blog_public' => (int) get_option( 'blog_public' ),
- 'jetpack_sync_non_public_post_stati' => (bool) Jetpack_Options::get_option( 'sync_non_public_post_stati' ),
- 'jetpack_relatedposts_allowed' => (bool) $this->jetpack_relatedposts_supported(),
- 'jetpack_relatedposts_enabled' => (bool) $jetpack_relatedposts_options[ 'enabled' ],
- 'jetpack_relatedposts_show_headline' => (bool) isset( $jetpack_relatedposts_options[ 'show_headline' ] ) ? $jetpack_relatedposts_options[ 'show_headline' ] : false,
- 'jetpack_relatedposts_show_thumbnails' => (bool) isset( $jetpack_relatedposts_options[ 'show_thumbnails' ] ) ? $jetpack_relatedposts_options[ 'show_thumbnails' ] : false,
- 'jetpack_search_enabled' => (bool) $jetpack_search_active,
- 'jetpack_search_supported'=> (bool) $jetpack_search_supported,
- 'default_category' => (int) get_option('default_category'),
- 'post_categories' => (array) $post_categories,
- 'default_post_format' => get_option( 'default_post_format' ),
- 'default_pingback_flag' => (bool) get_option( 'default_pingback_flag' ),
- 'require_name_email' => (bool) get_option( 'require_name_email' ),
- 'comment_registration' => (bool) get_option( 'comment_registration' ),
- 'close_comments_for_old_posts' => (bool) get_option( 'close_comments_for_old_posts' ),
- 'close_comments_days_old' => (int) get_option( 'close_comments_days_old' ),
- 'thread_comments' => (bool) get_option( 'thread_comments' ),
- 'thread_comments_depth' => (int) get_option( 'thread_comments_depth' ),
- 'page_comments' => (bool) get_option( 'page_comments' ),
- 'comments_per_page' => (int) get_option( 'comments_per_page' ),
- 'default_comments_page' => get_option( 'default_comments_page' ),
- 'comment_order' => get_option( 'comment_order' ),
- 'comments_notify' => (bool) get_option( 'comments_notify' ),
- 'moderation_notify' => (bool) get_option( 'moderation_notify' ),
- 'social_notifications_like' => ( "on" == get_option( 'social_notifications_like' ) ),
- 'social_notifications_reblog' => ( "on" == get_option( 'social_notifications_reblog' ) ),
- 'social_notifications_subscribe' => ( "on" == get_option( 'social_notifications_subscribe' ) ),
- 'comment_moderation' => (bool) get_option( 'comment_moderation' ),
- 'comment_whitelist' => (bool) get_option( 'comment_whitelist' ),
- 'comment_max_links' => (int) get_option( 'comment_max_links' ),
- 'moderation_keys' => get_option( 'moderation_keys' ),
- 'blacklist_keys' => get_option( 'blacklist_keys' ),
- 'lang_id' => defined( 'IS_WPCOM' ) && IS_WPCOM
+ break;
+ case 'settings':
+ $jetpack_relatedposts_options = Jetpack_Options::get_option( 'relatedposts', array() );
+ // If the option's enabled key is NOT SET, it is considered enabled by the plugin.
+ if ( ! isset( $jetpack_relatedposts_options['enabled'] ) ) {
+ $jetpack_relatedposts_options['enabled'] = true;
+ }
+
+ if ( method_exists( 'Jetpack', 'is_module_active' ) ) {
+ $jetpack_relatedposts_options['enabled'] = Jetpack::is_module_active( 'related-posts' );
+ }
+
+ $jetpack_search_supported = false;
+ if ( function_exists( 'wpcom_is_jetpack_search_supported' ) ) {
+ $jetpack_search_supported = wpcom_is_jetpack_search_supported( $blog_id );
+ }
+
+ $jetpack_search_active = false;
+ if ( method_exists( 'Jetpack', 'is_module_active' ) ) {
+ $jetpack_search_active = Jetpack::is_module_active( 'search' );
+ }
+ if ( function_exists( 'is_jetpack_module_active' ) ) {
+ $jetpack_search_active = is_jetpack_module_active( 'search', $blog_id );
+ }
+
+ // array_values() is necessary to ensure the array starts at index 0.
+ $post_categories = array_values(
+ array_map(
+ array( $this, 'get_category_details' ),
+ get_categories( array( 'hide_empty' => false ) )
+ )
+ );
+
+ $api_cache = $is_jetpack ? (bool) get_option( 'jetpack_api_cache_enabled' ) : true;
+
+ $response[ $key ] = array(
+ // also exists as "options".
+ 'admin_url' => get_admin_url(),
+ 'default_ping_status' => (bool) ( 'closed' !== get_option( 'default_ping_status' ) ),
+ 'default_comment_status' => (bool) ( 'closed' !== get_option( 'default_comment_status' ) ),
+
+ // new stuff starts here.
+ 'instant_search_enabled' => (bool) get_option( 'instant_search_enabled' ),
+ 'blog_public' => (int) get_option( 'blog_public' ),
+ 'jetpack_sync_non_public_post_stati' => (bool) Jetpack_Options::get_option( 'sync_non_public_post_stati' ),
+ 'jetpack_relatedposts_allowed' => (bool) $this->jetpack_relatedposts_supported(),
+ 'jetpack_relatedposts_enabled' => (bool) $jetpack_relatedposts_options['enabled'],
+ 'jetpack_relatedposts_show_headline' => (bool) isset( $jetpack_relatedposts_options['show_headline'] ) ? $jetpack_relatedposts_options['show_headline'] : false,
+ 'jetpack_relatedposts_show_thumbnails' => (bool) isset( $jetpack_relatedposts_options['show_thumbnails'] ) ? $jetpack_relatedposts_options['show_thumbnails'] : false,
+ 'jetpack_search_enabled' => (bool) $jetpack_search_active,
+ 'jetpack_search_supported' => (bool) $jetpack_search_supported,
+ 'default_category' => (int) get_option( 'default_category' ),
+ 'post_categories' => (array) $post_categories,
+ 'default_post_format' => get_option( 'default_post_format' ),
+ 'default_pingback_flag' => (bool) get_option( 'default_pingback_flag' ),
+ 'require_name_email' => (bool) get_option( 'require_name_email' ),
+ 'comment_registration' => (bool) get_option( 'comment_registration' ),
+ 'close_comments_for_old_posts' => (bool) get_option( 'close_comments_for_old_posts' ),
+ 'close_comments_days_old' => (int) get_option( 'close_comments_days_old' ),
+ 'thread_comments' => (bool) get_option( 'thread_comments' ),
+ 'thread_comments_depth' => (int) get_option( 'thread_comments_depth' ),
+ 'page_comments' => (bool) get_option( 'page_comments' ),
+ 'comments_per_page' => (int) get_option( 'comments_per_page' ),
+ 'default_comments_page' => get_option( 'default_comments_page' ),
+ 'comment_order' => get_option( 'comment_order' ),
+ 'comments_notify' => (bool) get_option( 'comments_notify' ),
+ 'moderation_notify' => (bool) get_option( 'moderation_notify' ),
+ 'social_notifications_like' => ( 'on' === get_option( 'social_notifications_like' ) ),
+ 'social_notifications_reblog' => ( 'on' === get_option( 'social_notifications_reblog' ) ),
+ 'social_notifications_subscribe' => ( 'on' === get_option( 'social_notifications_subscribe' ) ),
+ 'comment_moderation' => (bool) get_option( 'comment_moderation' ),
+ 'comment_whitelist' => (bool) get_option( 'comment_previously_approved' ),
+ 'comment_previously_approved' => (bool) get_option( 'comment_previously_approved' ),
+ 'comment_max_links' => (int) get_option( 'comment_max_links' ),
+ 'moderation_keys' => get_option( 'moderation_keys' ),
+ 'blacklist_keys' => get_option( 'disallowed_keys' ),
+ 'disallowed_keys' => get_option( 'disallowed_keys' ),
+ 'lang_id' => defined( 'IS_WPCOM' ) && IS_WPCOM
? get_lang_id_by_code( wpcom_l10n_get_blog_locale_variant( $blog_id, true ) )
: get_option( 'lang_id' ),
- 'wga' => $this->get_google_analytics(),
- 'disabled_likes' => (bool) get_option( 'disabled_likes' ),
- 'disabled_reblogs' => (bool) get_option( 'disabled_reblogs' ),
- 'jetpack_comment_likes_enabled' => (bool) get_option( 'jetpack_comment_likes_enabled', false ),
- 'twitter_via' => (string) get_option( 'twitter_via' ),
- 'jetpack-twitter-cards-site-tag' => (string) get_option( 'jetpack-twitter-cards-site-tag' ),
- 'eventbrite_api_token' => $this->get_cast_option_value_or_null( 'eventbrite_api_token', 'intval' ),
- 'gmt_offset' => get_option( 'gmt_offset' ),
- 'timezone_string' => get_option( 'timezone_string' ),
- 'date_format' => get_option( 'date_format' ),
- 'time_format' => get_option( 'time_format' ),
- 'start_of_week' => get_option( 'start_of_week' ),
- 'jetpack_testimonial' => (bool) get_option( 'jetpack_testimonial', '0' ),
- 'jetpack_testimonial_posts_per_page' => (int) get_option( 'jetpack_testimonial_posts_per_page', '10' ),
- 'jetpack_portfolio' => (bool) get_option( 'jetpack_portfolio', '0' ),
- 'jetpack_portfolio_posts_per_page' => (int) get_option( 'jetpack_portfolio_posts_per_page', '10' ),
- 'markdown_supported' => true,
- 'site_icon' => $this->get_cast_option_value_or_null( 'site_icon', 'intval' ),
- Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => get_option( Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION, '' ),
- Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => get_option( Jetpack_SEO_Titles::TITLE_FORMATS_OPTION, array() ),
- 'amp_is_supported' => (bool) function_exists( 'wpcom_is_amp_supported' ) && wpcom_is_amp_supported( $blog_id ),
- 'amp_is_enabled' => (bool) function_exists( 'wpcom_is_amp_enabled' ) && wpcom_is_amp_enabled( $blog_id ),
- 'api_cache' => $api_cache,
- 'posts_per_page' => (int) get_option( 'posts_per_page' ),
- 'posts_per_rss' => (int) get_option( 'posts_per_rss' ),
- 'rss_use_excerpt' => (bool) get_option( 'rss_use_excerpt' ),
- );
-
- if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $response[ $key ]['wpcom_publish_posts_with_markdown'] = (bool) WPCom_Markdown::is_posting_enabled();
- $response[ $key ]['wpcom_publish_comments_with_markdown'] = (bool) WPCom_Markdown::is_commenting_enabled();
-
- // WPCOM-specific Infinite Scroll Settings
- if ( is_callable( array( 'The_Neverending_Home_Page', 'get_settings' ) ) ) {
- /**
- * Clear the cached copy of widget info so it's pulled fresh from blog options.
- * It was primed during the initial load under the __REST API site__'s context.
- * @see wp_get_sidebars_widgets https://core.trac.wordpress.org/browser/trunk/src/wp-includes/widgets.php?rev=42374#L931
- */
- $GLOBALS['_wp_sidebars_widgets'] = array();
+ 'wga' => $this->get_google_analytics(),
+ 'jetpack_cloudflare_analytics' => get_option( 'jetpack_cloudflare_analytics' ),
+ 'disabled_likes' => (bool) get_option( 'disabled_likes' ),
+ 'disabled_reblogs' => (bool) get_option( 'disabled_reblogs' ),
+ 'jetpack_comment_likes_enabled' => (bool) get_option( 'jetpack_comment_likes_enabled', false ),
+ 'twitter_via' => (string) get_option( 'twitter_via' ),
+ 'jetpack-twitter-cards-site-tag' => (string) get_option( 'jetpack-twitter-cards-site-tag' ),
+ 'eventbrite_api_token' => $this->get_cast_option_value_or_null( 'eventbrite_api_token', 'intval' ),
+ 'gmt_offset' => get_option( 'gmt_offset' ),
+ 'timezone_string' => get_option( 'timezone_string' ),
+ 'date_format' => get_option( 'date_format' ),
+ 'time_format' => get_option( 'time_format' ),
+ 'start_of_week' => get_option( 'start_of_week' ),
+ 'jetpack_testimonial' => (bool) get_option( 'jetpack_testimonial', '0' ),
+ 'jetpack_testimonial_posts_per_page' => (int) get_option( 'jetpack_testimonial_posts_per_page', '10' ),
+ 'jetpack_portfolio' => (bool) get_option( 'jetpack_portfolio', '0' ),
+ 'jetpack_portfolio_posts_per_page' => (int) get_option( 'jetpack_portfolio_posts_per_page', '10' ),
+ 'markdown_supported' => true,
+ 'site_icon' => $this->get_cast_option_value_or_null( 'site_icon', 'intval' ),
+ Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => get_option( Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION, '' ),
+ Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => get_option( Jetpack_SEO_Titles::TITLE_FORMATS_OPTION, array() ),
+ 'amp_is_supported' => (bool) function_exists( 'wpcom_is_amp_supported' ) && wpcom_is_amp_supported( $blog_id ),
+ 'amp_is_enabled' => (bool) function_exists( 'wpcom_is_amp_enabled' ) && wpcom_is_amp_enabled( $blog_id ),
+ 'api_cache' => $api_cache,
+ 'posts_per_page' => (int) get_option( 'posts_per_page' ),
+ 'posts_per_rss' => (int) get_option( 'posts_per_rss' ),
+ 'rss_use_excerpt' => (bool) get_option( 'rss_use_excerpt' ),
+ );
- $infinite_scroll_settings = The_Neverending_Home_Page::get_settings();
- $response[ $key ]['infinite_scroll'] = get_option( 'infinite_scroll', true ) && $infinite_scroll_settings->type === 'scroll';
- if ( $infinite_scroll_settings->footer_widgets || 'click' == $infinite_scroll_settings->requested_type ) {
- // The blog has footer widgets -- infinite scroll is blocked
- $response[ $key ]['infinite_scroll_blocked'] = 'footer';
- } else {
- $response[ $key ]['infinite_scroll_blocked'] = false;
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $response[ $key ]['wpcom_publish_posts_with_markdown'] = (bool) WPCom_Markdown::is_posting_enabled();
+ $response[ $key ]['wpcom_publish_comments_with_markdown'] = (bool) WPCom_Markdown::is_commenting_enabled();
+
+ // WPCOM-specific Infinite Scroll Settings.
+ if ( is_callable( array( 'The_Neverending_Home_Page', 'get_settings' ) ) ) {
+ /**
+ * Clear the cached copy of widget info so it's pulled fresh from blog options.
+ * It was primed during the initial load under the __REST API site__'s context.
+ *
+ * @see wp_get_sidebars_widgets https://core.trac.wordpress.org/browser/trunk/src/wp-includes/widgets.php?rev=42374#L931
+ */
+ $GLOBALS['_wp_sidebars_widgets'] = array(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+
+ $infinite_scroll_settings = The_Neverending_Home_Page::get_settings();
+ $response[ $key ]['infinite_scroll'] = get_option( 'infinite_scroll', true ) && 'scroll' === $infinite_scroll_settings->type;
+ if ( $infinite_scroll_settings->footer_widgets || 'click' === $infinite_scroll_settings->requested_type ) {
+ // The blog has footer widgets -- infinite scroll is blocked.
+ $response[ $key ]['infinite_scroll_blocked'] = 'footer';
+ } else {
+ $response[ $key ]['infinite_scroll_blocked'] = false;
+ }
}
}
- }
- //allow future versions of this endpoint to support additional settings keys
- /**
- * Filter the current site setting in the returned response.
- *
- * @module json-api
- *
- * @since 3.9.3
- *
- * @param mixed $response_item A single site setting.
- */
- $response[ $key ] = apply_filters( 'site_settings_endpoint_get', $response[ $key ] );
-
- if ( class_exists( 'Sharing_Service' ) ) {
- $ss = new Sharing_Service();
- $sharing = $ss->get_global_options();
- $response[ $key ]['sharing_button_style'] = (string) $sharing['button_style'];
- $response[ $key ]['sharing_label'] = (string) $sharing['sharing_label'];
- $response[ $key ]['sharing_show'] = (array) $sharing['show'];
- $response[ $key ]['sharing_open_links'] = (string) $sharing['open_links'];
- }
+ // allow future versions of this endpoint to support additional settings keys.
+ /**
+ * Filter the current site setting in the returned response.
+ *
+ * @module json-api
+ *
+ * @since 3.9.3
+ *
+ * @param mixed $response_item A single site setting.
+ */
+ $response[ $key ] = apply_filters( 'site_settings_endpoint_get', $response[ $key ] );
- if ( function_exists( 'jetpack_protect_format_whitelist' ) ) {
- $response[ $key ]['jetpack_protect_whitelist'] = jetpack_protect_format_whitelist();
- }
+ if ( class_exists( 'Sharing_Service' ) ) {
+ $ss = new Sharing_Service();
+ $sharing = $ss->get_global_options();
+ $response[ $key ]['sharing_button_style'] = (string) $sharing['button_style'];
+ $response[ $key ]['sharing_label'] = (string) $sharing['sharing_label'];
+ $response[ $key ]['sharing_show'] = (array) $sharing['show'];
+ $response[ $key ]['sharing_open_links'] = (string) $sharing['open_links'];
+ }
+
+ if ( function_exists( 'jetpack_protect_format_whitelist' ) ) {
+ $response[ $key ]['jetpack_protect_whitelist'] = jetpack_protect_format_whitelist();
+ }
- if ( ! current_user_can( 'edit_posts' ) )
- unset( $response[$key] );
- break;
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ unset( $response[ $key ] );
+ }
+ break;
}
}
-
return $response;
}
+ /**
+ * Get locale.
+ *
+ * @param string $key Language.
+ */
protected function get_locale( $key ) {
- if ( 'lang' == $key ) {
+ if ( 'lang' === $key ) {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
return (string) get_blog_lang_code();
} else {
@@ -468,7 +509,10 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
return false;
}
- protected function get_google_analytics () {
+ /**
+ * Get GA tracking code.
+ */
+ protected function get_google_analytics() {
$option_name = defined( 'IS_WPCOM' ) && IS_WPCOM ? 'wga' : 'jetpack_wga';
return get_option( $option_name );
}
@@ -479,9 +523,11 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
* @return array
*/
public function update_settings() {
- // $this->input() retrieves posted arguments whitelisted and casted to the $request_format
- // specs that get passed in when this class is instantiated
- $input = $this->input();
+ /*
+ * $this->input() retrieves posted arguments whitelisted and casted to the $request_format
+ * specs that get passed in when this class is instantiated
+ */
+ $input = $this->input();
$unfiltered_input = $this->input( false, false );
/**
* Filters the settings to be updated on the site.
@@ -501,21 +547,23 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
$blog_id = get_current_blog_id();
$jetpack_relatedposts_options = array();
- $sharing_options = array();
- $updated = array();
+ $sharing_options = array();
+ $updated = array();
foreach ( $input as $key => $value ) {
if ( ! is_array( $value ) ) {
$value = trim( $value );
}
- $value = wp_unslash( $value );
+ // preserve the raw value before unslashing the value. The slashes need to be preserved for date and time formats.
+ $raw_value = $value;
+ $value = wp_unslash( $value );
switch ( $key ) {
case 'default_ping_status':
case 'default_comment_status':
- // settings are stored as closed|open
+ // settings are stored as closed|open.
$coerce_value = ( $value ) ? 'open' : 'closed';
if ( update_option( $key, $coerce_value ) ) {
$updated[ $key ] = $value;
@@ -539,11 +587,11 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
}
$is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM;
if ( $value ) {
- $jetpack_search_update_success = $is_wpcom
+ $is_wpcom
? Jetpack::activate_module( $blog_id, 'search' )
: Jetpack::activate_module( 'search', false, false );
} else {
- $jetpack_search_update_success = $is_wpcom
+ $is_wpcom
? Jetpack::deactivate_module( $blog_id, 'search' )
: Jetpack::deactivate_module( 'search' );
}
@@ -556,25 +604,25 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
}
if ( 'jetpack_relatedposts_enabled' === $key && method_exists( 'Jetpack', 'is_module_active' ) && $this->jetpack_relatedposts_supported() ) {
- $before_action = Jetpack::is_module_active('related-posts');
+ $before_action = Jetpack::is_module_active( 'related-posts' );
if ( $value ) {
Jetpack::activate_module( 'related-posts', false, false );
} else {
Jetpack::deactivate_module( 'related-posts' );
}
- $after_action = Jetpack::is_module_active('related-posts');
- if ( $after_action == $before_action ) {
+ $after_action = Jetpack::is_module_active( 'related-posts' );
+ if ( $after_action === $before_action ) {
break;
}
}
- $just_the_key = substr( $key, 21 );
+ $just_the_key = substr( $key, 21 );
$jetpack_relatedposts_options[ $just_the_key ] = $value;
- break;
+ break;
case 'social_notifications_like':
case 'social_notifications_reblog':
case 'social_notifications_subscribe':
- // settings are stored as on|off
+ // settings are stored as on|off.
$coerce_value = ( $value ) ? 'on' : 'off';
if ( update_option( $key, $coerce_value ) ) {
$updated[ $key ] = $value;
@@ -582,15 +630,15 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
case 'wga':
case 'jetpack_wga':
- if ( ! isset( $value['code'] ) || ! preg_match( '/^$|^UA-[\d-]+$/i', $value['code'] ) ) {
+ if ( ! isset( $value['code'] ) || ! preg_match( '/^$|^(UA-\d+-\d+)|(G-[A-Z0-9]+)$/i', $value['code'] ) ) {
return new WP_Error( 'invalid_code', 'Invalid UA ID' );
}
- $is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM;
+ $is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM;
$option_name = $is_wpcom ? 'wga' : 'jetpack_wga';
- $wga = get_option( $option_name, array() );
- $wga['code'] = $value['code']; // maintain compatibility with wp-google-analytics
+ $wga = get_option( $option_name, array() );
+ $wga['code'] = $value['code']; // maintain compatibility with wp-google-analytics.
/**
* Allow newer versions of this endpoint to filter in additional fields for Google Analytics
@@ -617,10 +665,20 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
}
break;
+ case 'jetpack_cloudflare_analytics':
+ if ( ! isset( $value['code'] ) || ! preg_match( '/^$|^[a-fA-F0-9]+$/i', $value['code'] ) ) {
+ return new WP_Error( 'invalid_code', __( 'Invalid Cloudflare Analytics ID', 'jetpack' ) );
+ }
+
+ if ( update_option( $key, $value ) ) {
+ $updated[ $key ] = $value;
+ }
+ break;
+
case 'jetpack_testimonial':
case 'jetpack_portfolio':
case 'jetpack_comment_likes_enabled':
- // settings are stored as 1|0
+ // settings are stored as 1|0.
$coerce_value = (int) $value;
if ( update_option( $key, $coerce_value ) ) {
$updated[ $key ] = (bool) $value;
@@ -629,14 +687,14 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'jetpack_testimonial_posts_per_page':
case 'jetpack_portfolio_posts_per_page':
- // settings are stored as numeric
+ // settings are stored as numeric.
$coerce_value = (int) $value;
if ( update_option( $key, $coerce_value ) ) {
$updated[ $key ] = $coerce_value;
}
break;
- // Sharing options
+ // Sharing options.
case 'sharing_button_style':
case 'sharing_show':
case 'sharing_open_links':
@@ -646,15 +704,15 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
$sharing_options[ $key ] = $value;
break;
- // Keyring token option
+ // Keyring token option.
case 'eventbrite_api_token':
- // These options can only be updated for sites hosted on WordPress.com
+ // These options can only be updated for sites hosted on WordPress.com.
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
if ( empty( $value ) || WPCOM_JSON_API::is_falsy( $value ) ) {
if ( delete_option( $key ) ) {
$updated[ $key ] = null;
}
- } else if ( update_option( $key, $value ) ) {
+ } elseif ( update_option( $key, $value ) ) {
$updated[ $key ] = (int) $value;
}
}
@@ -665,25 +723,29 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
if ( delete_option( 'jetpack_api_cache_enabled' ) ) {
$updated[ $key ] = false;
}
- } else if ( update_option( 'jetpack_api_cache_enabled', true ) ) {
+ } elseif ( update_option( 'jetpack_api_cache_enabled', true ) ) {
$updated[ $key ] = true;
}
break;
case 'timezone_string':
- // Map UTC+- timezones to gmt_offsets and set timezone_string to empty
- // https://github.com/WordPress/WordPress/blob/4.4.2/wp-admin/options.php#L175
+ /*
+ * Map UTC+- timezones to gmt_offsets and set timezone_string to empty
+ * https://github.com/WordPress/WordPress/blob/4.4.2/wp-admin/options.php#L175
+ */
if ( ! empty( $value ) && preg_match( '/^UTC[+-]/', $value ) ) {
$gmt_offset = preg_replace( '/UTC\+?/', '', $value );
if ( update_option( 'gmt_offset', $gmt_offset ) ) {
- $updated[ 'gmt_offset' ] = $gmt_offset;
+ $updated['gmt_offset'] = $gmt_offset;
}
$value = '';
}
- // Always set timezone_string either with the given value or with an
- // empty string
+ /*
+ * Always set timezone_string either with the given value or with an
+ * empty string
+ */
if ( update_option( $key, $value ) ) {
$updated[ $key ] = $value;
}
@@ -691,14 +753,16 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
case 'date_format':
case 'time_format':
- // settings are stored as strings
- if ( update_option( $key, sanitize_text_field( $value ) ) ) {
- $updated[ $key ] = $value;
+ // settings are stored as strings.
+ // raw_value is used to help preserve any escaped characters that might exist in the formatted string.
+ $sanitized_value = sanitize_text_field( $raw_value );
+ if ( update_option( $key, $sanitized_value ) ) {
+ $updated[ $key ] = $sanitized_value;
}
break;
case 'start_of_week':
- // setting is stored as int in 0-6 range (days of week)
+ // setting is stored as int in 0-6 range (days of week).
$coerce_value = (int) $value;
$limit_value = ( $coerce_value >= 0 && $coerce_value <= 6 ) ? $coerce_value : 0;
if ( update_option( $key, $limit_value ) ) {
@@ -707,8 +771,10 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
case 'site_icon':
- // settings are stored as deletable numeric (all empty
- // values as delete intent), validated as media image
+ /*
+ * settings are stored as deletable numeric (all empty
+ * values as delete intent), validated as media image
+ */
if ( empty( $value ) || WPCOM_JSON_API::is_falsy( $value ) ) {
/**
* Fallback mechanism to clear a third party site icon setting. Can be used
@@ -718,10 +784,10 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
*
* @since 4.10
*/
- if ( delete_option( $key ) || apply_filters( 'rest_api_site_icon_cleared', false ) ) {
+ if ( delete_option( $key ) || apply_filters( 'rest_api_site_icon_cleared', false ) ) {
$updated[ $key ] = null;
}
- } else if ( is_numeric( $value ) ) {
+ } elseif ( is_numeric( $value ) ) {
$coerce_value = (int) $value;
if ( wp_attachment_is_image( $coerce_value ) && update_option( $key, $coerce_value ) ) {
$updated[ $key ] = $coerce_value;
@@ -730,7 +796,7 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
case Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION:
- if ( ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() && ! Jetpack_SEO_Utils::has_grandfathered_front_page_meta() ) {
+ if ( ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() && ! Jetpack_SEO_Utils::has_legacy_front_page_meta() ) {
return new WP_Error( 'unauthorized', __( 'SEO tools are not enabled for this site.', 'jetpack' ), 403 );
}
@@ -747,6 +813,9 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
case Jetpack_SEO_Titles::TITLE_FORMATS_OPTION:
if ( ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
+ if ( Jetpack_SEO_Utils::has_legacy_front_page_meta() ) {
+ break;
+ }
return new WP_Error( 'unauthorized', __( 'SEO tools are not enabled for this site.', 'jetpack' ), 403 );
}
@@ -787,11 +856,28 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
break;
case 'rss_use_excerpt':
- update_option( 'rss_use_excerpt', (int)(bool) $value );
+ update_option( 'rss_use_excerpt', (int) (bool) $value );
+ break;
+
+ case 'instant_search_enabled':
+ update_option( 'instant_search_enabled', (bool) $value );
+ $updated[ $key ] = (bool) $value;
+ break;
+
+ case 'lang_id':
+ /*
+ * Due to the fact that locale variants are set in a locale_variant option,
+ * changing locale from variant to primary
+ * would look like the same lang_id is being saved and update_option would return false,
+ * even though the correct options would be set by pre_update_option_lang_id,
+ * so we should always return lang_id as updated.
+ */
+ update_option( 'lang_id', (int) $value );
+ $updated[ $key ] = (int) $value;
break;
default:
- //allow future versions of this endpoint to support additional settings keys
+ // allow future versions of this endpoint to support additional settings keys.
if ( has_filter( 'site_settings_endpoint_update_' . $key ) ) {
/**
* Filter current site setting value to be updated.
@@ -802,12 +888,12 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
*
* @param mixed $response_item A single site setting value.
*/
- $value = apply_filters( 'site_settings_endpoint_update_' . $key, $value );
+ $value = apply_filters( 'site_settings_endpoint_update_' . $key, $value );
$updated[ $key ] = $value;
break;
}
- // no worries, we've already whitelisted and casted arguments above
+ // no worries, we've already whitelisted and casted arguments above.
if ( update_option( $key, $value ) ) {
$updated[ $key ] = $value;
}
@@ -815,7 +901,7 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
}
if ( count( $jetpack_relatedposts_options ) ) {
- // track new jetpack_relatedposts options against old
+ // track new jetpack_relatedposts options against old.
$old_relatedposts_options = Jetpack_Options::get_option( 'relatedposts' );
if ( Jetpack_Options::update_option( 'relatedposts', $jetpack_relatedposts_options ) ) {
foreach ( $jetpack_relatedposts_options as $key => $value ) {
@@ -829,8 +915,10 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
if ( ! empty( $sharing_options ) && class_exists( 'Sharing_Service' ) ) {
$ss = new Sharing_Service();
- // Merge current values with updated, since Sharing_Service expects
- // all values to be included when updating
+ /*
+ * Merge current values with updated, since Sharing_Service expects
+ * all values to be included when updating
+ */
$current_sharing_options = $ss->get_global_options();
foreach ( $current_sharing_options as $key => $val ) {
if ( ! isset( $sharing_options[ $key ] ) ) {
@@ -844,7 +932,7 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
$updated['sharing_button_style'] = (string) $updated_social_options['button_style'];
}
if ( isset( $input['sharing_label'] ) ) {
- // Sharing_Service won't report label as updated if set to default
+ // Sharing_Service won't report label as updated if set to default.
$updated['sharing_label'] = (string) $sharing_options['sharing_label'];
}
if ( isset( $input['sharing_show'] ) ) {
@@ -856,7 +944,7 @@ class WPCOM_JSON_API_Site_Settings_Endpoint extends WPCOM_JSON_API_Endpoint {
}
return array(
- 'updated' => $updated
+ 'updated' => $updated,
);
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-2-endpoint.php
index 989bba2e..41889ba3 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-2-endpoint.php
@@ -32,74 +32,75 @@ new WPCOM_JSON_API_Site_Settings_V1_2_Endpoint( array(
),
'request_format' => array(
- 'blogname' => '(string) Blog name',
- 'blogdescription' => '(string) Blog description',
- 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
- 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
- 'default_comment_status' => '(bool) Allow comments on new articles?',
- 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
- 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
- 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
- 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
- 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
- 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
- 'jetpack_search_supported' => '(bool) Jetpack Search supported',
- 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
- 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
- 'default_category' => '(int) Default post category',
- 'default_post_format' => '(string) Default post format',
- 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
- 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
- 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
- 'close_comments_days_old' => '(int) Age at which to close comments',
- 'thread_comments' => '(bool) Enable threaded comments?',
- 'thread_comments_depth' => '(int) Depth to thread comments',
- 'page_comments' => '(bool) Break comments into pages?',
- 'comments_per_page' => '(int) Number of comments to display per page',
- 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
- 'comment_order' => '(string) asc|desc Order to display comments within page',
- 'comments_notify' => '(bool) Email me when someone comments?',
- 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
- 'social_notifications_like' => '(bool) Email me when someone likes my post?',
- 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
- 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
- 'comment_moderation' => '(bool) Moderate comments for manual approval?',
- 'comment_whitelist' => '(bool) Moderate comments unless author has a previously-approved comment?',
- 'comment_max_links' => '(int) Moderate comments that contain X or more links',
- 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
- 'blacklist_keys' => '(string) Words or phrases that mark comment spam, one per line',
- 'lang_id' => '(int) ID for language blog is written in',
- 'locale' => '(string) locale code for language blog is written in',
- 'wga' => '(array) Google Analytics Settings',
- 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
- 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
- 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
- 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
- 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
- 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
- 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
- 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
- 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
- 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
- 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
- 'gmt_offset' => '(int) Site offset from UTC in hours',
- 'date_format' => '(string) PHP Date-compatible date format',
- 'time_format' => '(string) PHP Date-compatible time format',
- 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
- 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
- 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
- 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
- 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
+ 'blogname' => '(string) Blog name',
+ 'blogdescription' => '(string) Blog description',
+ 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
+ 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
+ 'default_comment_status' => '(bool) Allow comments on new articles?',
+ 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
+ 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
+ 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
+ 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
+ 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
+ 'instant_search_enabled' => '(bool) Enable the new Jetpack Instant Search interface',
+ 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
+ 'jetpack_search_supported' => '(bool) Jetpack Search supported',
+ 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
+ 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
+ 'default_category' => '(int) Default post category',
+ 'default_post_format' => '(string) Default post format',
+ 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
+ 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
+ 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
+ 'close_comments_days_old' => '(int) Age at which to close comments',
+ 'thread_comments' => '(bool) Enable threaded comments?',
+ 'thread_comments_depth' => '(int) Depth to thread comments',
+ 'page_comments' => '(bool) Break comments into pages?',
+ 'comments_per_page' => '(int) Number of comments to display per page',
+ 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
+ 'comment_order' => '(string) asc|desc Order to display comments within page',
+ 'comments_notify' => '(bool) Email me when someone comments?',
+ 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
+ 'social_notifications_like' => '(bool) Email me when someone likes my post?',
+ 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
+ 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
+ 'comment_moderation' => '(bool) Moderate comments for manual approval?',
+ 'comment_previously_approved' => '(bool) Moderate comments unless author has a previously-approved comment?',
+ 'comment_max_links' => '(int) Moderate comments that contain X or more links',
+ 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
+ 'disallowed_keys' => '(string) Words or phrases that mark comment spam, one per line',
+ 'lang_id' => '(int) ID for language blog is written in',
+ 'locale' => '(string) locale code for language blog is written in',
+ 'wga' => '(array) Google Analytics Settings',
+ 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
+ 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
+ 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
+ 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
+ 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
+ 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
+ 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
+ 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
+ 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
+ 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
+ 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
+ 'gmt_offset' => '(int) Site offset from UTC in hours',
+ 'date_format' => '(string) PHP Date-compatible date format',
+ 'time_format' => '(string) PHP Date-compatible time format',
+ 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
+ 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
+ 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
+ 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
+ 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => '(string) The SEO meta description for the site.',
- Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
- 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex',
- 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
- 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
- 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
- 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
- 'posts_per_page' => '(int) Number of posts to show on blog pages',
- 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
- 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
+ Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
+ 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex, facebook',
+ 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
+ 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
+ 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
+ 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
+ 'posts_per_page' => '(int) Number of posts to show on blog pages',
+ 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
+ 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
),
'response_format' => array(
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-3-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-3-endpoint.php
index 52a3a148..b5b10617 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-3-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-3-endpoint.php
@@ -32,74 +32,75 @@ new WPCOM_JSON_API_Site_Settings_V1_3_Endpoint( array(
),
'request_format' => array(
- 'blogname' => '(string) Blog name',
- 'blogdescription' => '(string) Blog description',
- 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
- 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
- 'default_comment_status' => '(bool) Allow comments on new articles?',
- 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
- 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
- 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
- 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
- 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
- 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
- 'jetpack_search_supported' => '(bool) Jetpack Search supported',
- 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
- 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
- 'default_category' => '(int) Default post category',
- 'default_post_format' => '(string) Default post format',
- 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
- 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
- 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
- 'close_comments_days_old' => '(int) Age at which to close comments',
- 'thread_comments' => '(bool) Enable threaded comments?',
- 'thread_comments_depth' => '(int) Depth to thread comments',
- 'page_comments' => '(bool) Break comments into pages?',
- 'comments_per_page' => '(int) Number of comments to display per page',
- 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
- 'comment_order' => '(string) asc|desc Order to display comments within page',
- 'comments_notify' => '(bool) Email me when someone comments?',
- 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
- 'social_notifications_like' => '(bool) Email me when someone likes my post?',
- 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
- 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
- 'comment_moderation' => '(bool) Moderate comments for manual approval?',
- 'comment_whitelist' => '(bool) Moderate comments unless author has a previously-approved comment?',
- 'comment_max_links' => '(int) Moderate comments that contain X or more links',
- 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
- 'blacklist_keys' => '(string) Words or phrases that mark comment spam, one per line',
- 'lang_id' => '(int) ID for language blog is written in',
- 'locale' => '(string) locale code for language blog is written in',
- 'wga' => '(array) Google Analytics Settings',
- 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
- 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
- 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
- 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
- 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
- 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
- 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
- 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
- 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
- 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
- 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
- 'gmt_offset' => '(int) Site offset from UTC in hours',
- 'date_format' => '(string) PHP Date-compatible date format',
- 'time_format' => '(string) PHP Date-compatible time format',
- 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
- 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
- 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
- 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
- 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
+ 'blogname' => '(string) Blog name',
+ 'blogdescription' => '(string) Blog description',
+ 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
+ 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
+ 'default_comment_status' => '(bool) Allow comments on new articles?',
+ 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
+ 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
+ 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
+ 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
+ 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
+ 'instant_search_enabled' => '(bool) Enable the new Jetpack Instant Search interface',
+ 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
+ 'jetpack_search_supported' => '(bool) Jetpack Search supported',
+ 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
+ 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
+ 'default_category' => '(int) Default post category',
+ 'default_post_format' => '(string) Default post format',
+ 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
+ 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
+ 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
+ 'close_comments_days_old' => '(int) Age at which to close comments',
+ 'thread_comments' => '(bool) Enable threaded comments?',
+ 'thread_comments_depth' => '(int) Depth to thread comments',
+ 'page_comments' => '(bool) Break comments into pages?',
+ 'comments_per_page' => '(int) Number of comments to display per page',
+ 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
+ 'comment_order' => '(string) asc|desc Order to display comments within page',
+ 'comments_notify' => '(bool) Email me when someone comments?',
+ 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
+ 'social_notifications_like' => '(bool) Email me when someone likes my post?',
+ 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
+ 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
+ 'comment_moderation' => '(bool) Moderate comments for manual approval?',
+ 'comment_previously_approved' => '(bool) Moderate comments unless author has a previously-approved comment?',
+ 'comment_max_links' => '(int) Moderate comments that contain X or more links',
+ 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
+ 'disallowed_keys' => '(string) Words or phrases that mark comment spam, one per line',
+ 'lang_id' => '(int) ID for language blog is written in',
+ 'locale' => '(string) locale code for language blog is written in',
+ 'wga' => '(array) Google Analytics Settings',
+ 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
+ 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
+ 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
+ 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
+ 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
+ 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
+ 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
+ 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
+ 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
+ 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
+ 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
+ 'gmt_offset' => '(int) Site offset from UTC in hours',
+ 'date_format' => '(string) PHP Date-compatible date format',
+ 'time_format' => '(string) PHP Date-compatible time format',
+ 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
+ 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
+ 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
+ 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
+ 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => '(string) The SEO meta description for the site.',
Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
- 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex',
- 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
- 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
- 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
- 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
- 'posts_per_page' => '(int) Number of posts to show on blog pages',
- 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
- 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
+ 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex, facebook',
+ 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
+ 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
+ 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
+ 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
+ 'posts_per_page' => '(int) Number of posts to show on blog pages',
+ 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
+ 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
),
'response_format' => array(
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-4-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-4-endpoint.php
index ab59ebcc..44a61959 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-4-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-v1-4-endpoint.php
@@ -32,74 +32,76 @@ new WPCOM_JSON_API_Site_Settings_V1_4_Endpoint( array(
),
'request_format' => array(
- 'blogname' => '(string) Blog name',
- 'blogdescription' => '(string) Blog description',
- 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
- 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
- 'default_comment_status' => '(bool) Allow comments on new articles?',
- 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
- 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
- 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
- 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
- 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
- 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
- 'jetpack_search_supported' => '(bool) Jetpack Search supported',
- 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
- 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
- 'default_category' => '(int) Default post category',
- 'default_post_format' => '(string) Default post format',
- 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
- 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
- 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
- 'close_comments_days_old' => '(int) Age at which to close comments',
- 'thread_comments' => '(bool) Enable threaded comments?',
- 'thread_comments_depth' => '(int) Depth to thread comments',
- 'page_comments' => '(bool) Break comments into pages?',
- 'comments_per_page' => '(int) Number of comments to display per page',
- 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
- 'comment_order' => '(string) asc|desc Order to display comments within page',
- 'comments_notify' => '(bool) Email me when someone comments?',
- 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
- 'social_notifications_like' => '(bool) Email me when someone likes my post?',
- 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
- 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
- 'comment_moderation' => '(bool) Moderate comments for manual approval?',
- 'comment_whitelist' => '(bool) Moderate comments unless author has a previously-approved comment?',
- 'comment_max_links' => '(int) Moderate comments that contain X or more links',
- 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
- 'blacklist_keys' => '(string) Words or phrases that mark comment spam, one per line',
- 'lang_id' => '(int) ID for language blog is written in',
- 'locale' => '(string) locale code for language blog is written in',
- 'wga' => '(array) Google Analytics Settings',
- 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
- 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
- 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
- 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
- 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
- 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
- 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
- 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
- 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
- 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
- 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
- 'gmt_offset' => '(int) Site offset from UTC in hours',
- 'date_format' => '(string) PHP Date-compatible date format',
- 'time_format' => '(string) PHP Date-compatible time format',
- 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
- 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
- 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
- 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
- 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
+ 'blogname' => '(string) Blog name',
+ 'blogdescription' => '(string) Blog description',
+ 'default_pingback_flag' => '(bool) Notify blogs linked from article?',
+ 'default_ping_status' => '(bool) Allow link notifications from other blogs?',
+ 'default_comment_status' => '(bool) Allow comments on new articles?',
+ 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines',
+ 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati',
+ 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?',
+ 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?',
+ 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?',
+ 'instant_search_enabled' => '(bool) Enable the new Jetpack Instant Search interface',
+ 'jetpack_search_enabled' => '(bool) Enable Jetpack Search',
+ 'jetpack_search_supported' => '(bool) Jetpack Search supported',
+ 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist',
+ 'infinite_scroll' => '(bool) Support infinite scroll of posts?',
+ 'default_category' => '(int) Default post category',
+ 'default_post_format' => '(string) Default post format',
+ 'require_name_email' => '(bool) Require comment authors to fill out name and email?',
+ 'comment_registration' => '(bool) Require users to be registered and logged in to comment?',
+ 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?',
+ 'close_comments_days_old' => '(int) Age at which to close comments',
+ 'thread_comments' => '(bool) Enable threaded comments?',
+ 'thread_comments_depth' => '(int) Depth to thread comments',
+ 'page_comments' => '(bool) Break comments into pages?',
+ 'comments_per_page' => '(int) Number of comments to display per page',
+ 'default_comments_page' => '(string) newest|oldest Which page of comments to display first',
+ 'comment_order' => '(string) asc|desc Order to display comments within page',
+ 'comments_notify' => '(bool) Email me when someone comments?',
+ 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?',
+ 'social_notifications_like' => '(bool) Email me when someone likes my post?',
+ 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?',
+ 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?',
+ 'comment_moderation' => '(bool) Moderate comments for manual approval?',
+ 'comment_previously_approved' => '(bool) Moderate comments unless author has a previously-approved comment?',
+ 'comment_max_links' => '(int) Moderate comments that contain X or more links',
+ 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line',
+ 'disallowed_keys' => '(string) Words or phrases that mark comment spam, one per line',
+ 'lang_id' => '(int) ID for language blog is written in',
+ 'locale' => '(string) locale code for language blog is written in',
+ 'wga' => '(array) Google Analytics Settings',
+ 'jetpack_cloudflare_analytics' => '(array) Cloudflare Analytics Settings',
+ 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?',
+ 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?',
+ 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?',
+ 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)',
+ 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"',
+ 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed',
+ 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)',
+ 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button',
+ 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.',
+ 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site',
+ 'timezone_string' => '(string) PHP-compatible timezone string like \'UTC-5\'',
+ 'gmt_offset' => '(int) Site offset from UTC in hours',
+ 'date_format' => '(string) PHP Date-compatible date format',
+ 'time_format' => '(string) PHP Date-compatible time format',
+ 'start_of_week' => '(int) Starting day of week (0 = Sunday, 6 = Saturday)',
+ 'jetpack_testimonial' => '(bool) Whether testimonial custom post type is enabled for the site',
+ 'jetpack_testimonial_posts_per_page' => '(int) Number of testimonials to show per page',
+ 'jetpack_portfolio' => '(bool) Whether portfolio custom post type is enabled for the site',
+ 'jetpack_portfolio_posts_per_page' => '(int) Number of portfolio projects to show per page',
Jetpack_SEO_Utils::FRONT_PAGE_META_OPTION => '(string) The SEO meta description for the site.',
Jetpack_SEO_Titles::TITLE_FORMATS_OPTION => '(array) SEO meta title formats. Allowed keys: front_page, posts, pages, groups, archives',
- 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex',
- 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
- 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
- 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
- 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
- 'posts_per_page' => '(int) Number of posts to show on blog pages',
- 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
- 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
+ 'verification_services_codes' => '(array) Website verification codes. Allowed keys: google, pinterest, bing, yandex, facebook',
+ 'amp_is_enabled' => '(bool) Whether AMP is enabled for this site',
+ 'podcasting_archive' => '(string) The post category, if any, used for publishing podcasts',
+ 'site_icon' => '(int) Media attachment ID to use as site icon. Set to zero or an otherwise empty value to clear',
+ 'api_cache' => '(bool) Turn on/off the Jetpack JSON API cache',
+ 'posts_per_page' => '(int) Number of posts to show on blog pages',
+ 'posts_per_rss' => '(int) Number of posts to show in the RSS feed',
+ 'rss_use_excerpt' => '(bool) Whether the RSS feed will use post excerpts',
),
'response_format' => array(
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php
index d60d541f..a5056472 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php
@@ -21,6 +21,8 @@ new WPCOM_JSON_API_Update_Comment_Endpoint( array(
'pass_wpcom_user_details' => true,
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/843/replies/new/',
'example_request_data' => array(
'headers' => array(
@@ -52,6 +54,8 @@ new WPCOM_JSON_API_Update_Comment_Endpoint( array(
'pass_wpcom_user_details' => true,
+ 'allow_fallback_to_jetpack_blog_token' => true,
+
'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/comments/29/replies/new',
'example_request_data' => array(
'headers' => array(
@@ -227,13 +231,12 @@ class WPCOM_JSON_API_Update_Comment_Endpoint extends WPCOM_JSON_API_Comment_Endp
$user->ID = 0;
}
+ $author = get_user_by( 'id', (int) $user->ID );
// If we have a user with an external ID saved, we can use it.
if (
! $auth_required
&& $user->ID
- && (
- $author = get_user_by( 'id', intval( $user->ID ) )
- )
+ && $author
) {
$user = $author;
}
@@ -254,7 +257,7 @@ class WPCOM_JSON_API_Update_Comment_Endpoint extends WPCOM_JSON_API_Comment_Endp
'comment_author_url' => $user->user_url,
'comment_content' => $input['content'],
'comment_parent' => $comment_parent_id,
- 'comment_type' => '',
+ 'comment_type' => 'comment',
);
if ( $comment_parent_id ) {
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php
index 1284cdcb..5f029269 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php
@@ -1,61 +1,69 @@
<?php
-new WPCOM_JSON_API_Update_Media_v1_1_Endpoint( array(
- 'description' => 'Edit basic information about a media item.',
- 'group' => 'media',
- 'stat' => 'media:1:POST',
- 'min_version' => '1.1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/media/%d',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- '$media_ID' => '(int) The ID of the media item',
- ),
-
- 'request_format' => array(
- 'parent_id' => '(int) ID of the post this media is attached to',
- 'title' => '(string) The file name.',
- 'caption' => '(string) File caption.',
- 'description' => '(HTML) Description of the file.',
- 'alt' => "(string) Alternative text for image files.",
- 'artist' => "(string) Audio Only. Artist metadata for the audio track.",
- 'album' => "(string) Audio Only. Album metadata for the audio track.",
- ),
-
- 'response_format' => array(
- 'ID' => '(int) The ID of the media item',
- 'date' => '(ISO 8601 datetime) The date the media was uploaded',
- 'post_ID' => '(int) ID of the post this media is attached to',
- 'author_ID' => '(int) ID of the user who uploaded the media',
- 'URL' => '(string) URL to the file',
- 'guid' => '(string) Unique identifier',
- 'file' => '(string) File name',
- 'extension' => '(string) File extension',
- 'mime_type' => '(string) File mime type',
- 'title' => '(string) File name',
- 'caption' => '(string) User provided caption of the file',
- 'description' => '(string) Description of the file',
- 'alt' => '(string) Alternative text for image files.',
- 'thumbnails' => '(object) Media item thumbnail URL options',
- 'height' => '(int) (Image & video only) Height of the media item',
- 'width' => '(int) (Image & video only) Width of the media item',
- 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
- 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
- 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
- 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.'
- ),
-
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/446',
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new WPCOM_JSON_API_Update_Media_v1_1_Endpoint(
+ array(
+ 'description' => 'Edit basic information about a media item.',
+ 'group' => 'media',
+ 'stat' => 'media:1:POST',
+ 'min_version' => '1.1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/media/%d',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ '$media_ID' => '(int) The ID of the media item',
+ ),
+
+ 'request_format' => array(
+ 'parent_id' => '(int) ID of the post this media is attached to',
+ 'title' => '(string) The file name.',
+ 'caption' => '(string) File caption.',
+ 'description' => '(HTML) Description of the file.',
+ 'alt' => '(string) Alternative text for image files.',
+ 'rating' => '(string) Video only. Video rating.',
+ 'display_embed' => '(string) Video only. Whether to share or not the video.',
+ 'allow_download' => '(string) Video only. Whether the video can be downloaded or not.',
+ 'artist' => '(string) Audio Only. Artist metadata for the audio track.',
+ 'album' => '(string) Audio Only. Album metadata for the audio track.',
+ ),
+
+ 'response_format' => array(
+ 'ID' => '(int) The ID of the media item',
+ 'date' => '(ISO 8601 datetime) The date the media was uploaded',
+ 'post_ID' => '(int) ID of the post this media is attached to',
+ 'author_ID' => '(int) ID of the user who uploaded the media',
+ 'URL' => '(string) URL to the file',
+ 'guid' => '(string) Unique identifier',
+ 'file' => '(string) File name',
+ 'extension' => '(string) File extension',
+ 'mime_type' => '(string) File mime type',
+ 'title' => '(string) File name',
+ 'caption' => '(string) User provided caption of the file',
+ 'description' => '(string) Description of the file',
+ 'alt' => '(string) Alternative text for image files.',
+ 'thumbnails' => '(object) Media item thumbnail URL options',
+ 'height' => '(int) (Image & video only) Height of the media item',
+ 'width' => '(int) (Image & video only) Width of the media item',
+ 'length' => '(int) (Video & audio only) Duration of the media item, in seconds',
+ 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item',
+ 'rating' => '(string) (Video only) VideoPress rating of the video',
+ 'display_embed' => '(string) Video only. Whether to share or not the video.',
+ 'allow_download' => '(string) Video only. Whether the video can be downloaded or not.',
+ 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress',
+ 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.',
+ ),
+
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/446',
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ 'body' => array(
+ 'title' => 'Updated Title',
+ ),
),
- 'body' => array(
- 'title' => 'Updated Title'
- )
)
-) );
+);
class WPCOM_JSON_API_Update_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint {
function callback( $path = '', $blog_id = 0, $media_id = 0 ) {
@@ -74,7 +82,7 @@ class WPCOM_JSON_API_Update_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
return new WP_Error( 'unknown_media', 'Unknown Media', 404 );
}
- $input = $this->input( true );
+ $input = $this->input( true );
$insert = array();
if ( isset( $input['title'] ) ) {
@@ -98,7 +106,7 @@ class WPCOM_JSON_API_Update_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
update_post_meta( $media_id, '_wp_attachment_image_alt', $alt );
}
- // audio only artist/album info
+ // audio only artist/album info.
if ( 0 === strpos( $item->mime_type, 'audio/' ) ) {
$changed = false;
$id3data = wp_get_attachment_metadata( $media_id );
@@ -110,12 +118,12 @@ class WPCOM_JSON_API_Update_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
$id3_keys = array(
'artist' => __( 'Artist', 'jetpack' ),
- 'album' => __( 'Album', 'jetpack' )
+ 'album' => __( 'Album', 'jetpack' ),
);
foreach ( $id3_keys as $key => $label ) {
if ( isset( $input[ $key ] ) ) {
- $changed = true;
+ $changed = true;
$id3data[ $key ] = wp_strip_all_tags( $input[ $key ], true );
}
}
@@ -125,10 +133,47 @@ class WPCOM_JSON_API_Update_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
}
}
+ // Pass the item to the handle_video_meta() that checks if it's a VideoPress item and saves it.
+ $result = $this->handle_video_meta( $media_id, $input, $item );
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
$insert['ID'] = $media_id;
wp_update_post( (object) $insert );
$item = $this->get_media_item_v1_1( $media_id );
return $item;
}
+
+ /**
+ * Persist the VideoPress metadata if the given item argument is a VideoPress item.
+ *
+ * @param string $media_id The ID of the video.
+ * @param array $input The request input.
+ * @param stdClass $item The response item.
+ *
+ * @return bool|WP_Error
+ */
+ public function handle_video_meta( $media_id, $input, $item ) {
+ if ( ! class_exists( \Videopress_Attachment_Metadata::class ) ) {
+ return false;
+ }
+
+ if ( ! \Videopress_Attachment_Metadata::is_videopress_media( $item ) ) {
+ return false;
+ }
+
+ return \Videopress_Attachment_Metadata::persist_metadata(
+ $media_id,
+ $item->videopress_guid,
+ $input['title'],
+ $input['caption'],
+ $input['description'],
+ $input['rating'],
+ $input['display_embed'],
+ $input['allow_download']
+ );
+ }
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php
index 43d6fe11..07adba9e 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php
@@ -301,6 +301,16 @@ class WPCOM_JSON_API_Update_Post_Endpoint extends WPCOM_JSON_API_Post_Endpoint {
if ( 'publish' === $new_status && 'draft' === $last_status && ! isset( $input['date_gmt'] ) && $date_in_past ) {
$input['date_gmt'] = gmdate( 'Y-m-d H:i:s' );
}
+
+ // Untrash a post so that the proper hooks get called as well as the comments get untrashed.
+ if ( 'trash' === $last_status && 'trash' !== $new_status && isset( $post->ID ) ) {
+ wp_untrash_post( $post->ID );
+ $untashed_post = get_post( $post->ID );
+ // Lets make sure that we use the revert the slug.
+ if ( isset( $untashed_post->post_name ) && $untashed_post->post_name . '__trashed' === $input['slug'] ) {
+ unset( $input['slug'] );
+ }
+ }
}
if ( function_exists( 'wpcom_switch_to_locale' ) ) {
@@ -705,7 +715,6 @@ class WPCOM_JSON_API_Update_Post_Endpoint extends WPCOM_JSON_API_Post_Endpoint {
$meta = (object) $meta;
- // Custom meta description can only be set on sites that have a business subscription.
if ( Jetpack_SEO_Posts::DESCRIPTION_META_KEY == $meta->key && ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
return new WP_Error( 'unauthorized', __( 'SEO tools are not enabled for this site.', 'jetpack' ), 403 );
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php
index b3d9b98d..4dbe5fe5 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php
@@ -329,6 +329,11 @@ class WPCOM_JSON_API_Update_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_
if ( $reset_draft_date || $reset_scheduled_date ) {
$input['date_gmt'] = gmdate( 'Y-m-d H:i:s' );
}
+
+ // Untrash a post so that the proper hooks get called as well as the comments get untrashed.
+ if ( $this->should_untrash_post( $last_status, $new_status, $post ) ) {
+ $input = $this->untrash_post( $post, $input );
+ }
}
if ( function_exists( 'wpcom_switch_to_blog_locale' ) ) {
@@ -784,7 +789,6 @@ class WPCOM_JSON_API_Update_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_
$meta = (object) $meta;
- // Custom meta description can only be set on sites that have a business subscription.
if ( Jetpack_SEO_Posts::DESCRIPTION_META_KEY == $meta->key && ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
return new WP_Error( 'unauthorized', __( 'SEO tools are not enabled for this site.', 'jetpack' ), 403 );
}
@@ -992,6 +996,20 @@ class WPCOM_JSON_API_Update_Post_v1_1_Endpoint extends WPCOM_JSON_API_Post_v1_1_
return $_user->ID;
}
+ protected function should_untrash_post( $last_status, $new_status, $post ) {
+ return 'trash' === $last_status && 'trash' !== $new_status && isset( $post->ID );
+ }
+
+ protected function untrash_post( $post, $input ) {
+ wp_untrash_post( $post->ID );
+ $untrashed_post = get_post( $post->ID );
+ // Lets make sure that we use the reverted the slug.
+ if ( isset( $untrashed_post->post_name ) && $untrashed_post->post_name . '__trashed' === $input['slug'] ) {
+ unset( $input['slug'] );
+ }
+ return $input;
+ }
+
protected function should_load_theme_functions( $post_id = null ) {
if ( empty( $post_id ) ) {
$input = $this->input( true );
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
index f0f2d044..b0c10bcd 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php
@@ -151,6 +151,8 @@ new WPCOM_JSON_API_Update_Post_v1_2_Endpoint( array(
)
) );
+use function \Automattic\Jetpack\Extensions\Map\map_block_from_geo_points;
+
class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Post_v1_1_Endpoint {
// /sites/%s/posts/new -> $blog_id
@@ -273,6 +275,11 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
if ( $reset_draft_date || $reset_scheduled_date ) {
$input['date_gmt'] = gmdate( 'Y-m-d H:i:s' );
}
+
+ // Untrash a post so that the proper hooks get called as well as the comments get untrashed.
+ if ( $this->should_untrash_post( $last_status, $new_status, $post ) ) {
+ $input = $this->untrash_post( $post, $input );
+ }
}
if ( function_exists( 'wpcom_switch_to_blog_locale' ) ) {
@@ -502,6 +509,12 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
$media_id_string = join( ',', array_filter( array_map( 'absint', $media_results['media_ids'] ) ) );
}
+ $is_dtp_fb_post = false;
+ if ( in_array( '_dtp_fb', wp_list_pluck( (array) $metadata, 'key' ), true ) ) {
+ $is_dtp_fb_post = true;
+ add_filter( 'rest_api_allowed_public_metadata', array( $this, 'dtp_fb_allowed_metadata' ) );
+ }
+
if ( $new ) {
if ( isset( $input['content'] ) && ! has_shortcode( $input['content'], 'gallery' ) && ( $has_media || $has_media_by_url ) ) {
switch ( ( $has_media + $has_media_by_url ) ) {
@@ -525,7 +538,16 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
}
}
- $post_id = wp_insert_post( add_magic_quotes( $insert ), true );
+ $insert['post_date'] = isset( $insert['post_date'] ) ? $insert['post_date'] : '';
+
+ if ( $is_dtp_fb_post ) {
+ $insert = $this->dtp_fb_preprocess_post( $insert, $metadata );
+ }
+
+ $post_id = $this->post_exists( $insert['post_title'], $insert['post_content'], $insert['post_date'], $post_type->name );
+ if ( 0 === $post_id ) {
+ $post_id = wp_insert_post( add_magic_quotes( $insert ), true );
+ }
} else {
$insert['ID'] = $post->ID;
@@ -755,7 +777,6 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
$meta = (object) $meta;
- // Custom meta description can only be set on sites that have a business subscription.
if ( Jetpack_SEO_Posts::DESCRIPTION_META_KEY == $meta->key && ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
return new WP_Error( 'unauthorized', __( 'SEO tools are not enabled for this site.', 'jetpack' ), 403 );
}
@@ -846,8 +867,15 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
$return['sticky'] = ( true === $sticky );
}
- if ( ! empty( $media_results['errors'] ) )
- $return['media_errors'] = $media_results['errors'];
+ if ( ! empty( $media_results['errors'] ) ) {
+ /*
+ * Depending on whether the errors array keys are sequential or not
+ * json_encode would transform this into either an array or an object
+ * see https://www.php.net/manual/en/function.json-encode.php#example-3967
+ * We use array_values to always return an array
+ */
+ $return['media_errors'] = array_values( $media_results['errors'] );
+ }
if ( 'publish' !== $return['status'] && isset( $input['title'] )) {
$sal_site = $this->get_sal_post_by( 'ID', $post_id, $args['context'] );
@@ -870,4 +898,96 @@ class WPCOM_JSON_API_Update_Post_v1_2_Endpoint extends WPCOM_JSON_API_Update_Pos
return ! empty( $type ) && ! in_array( $type, array( 'post', 'revision' ) );
}
+
+ /**
+ * Filter for rest_api_allowed_public_metadata.
+ * Adds FB's DTP specific metadata.
+ *
+ * @param array $keys Array of metadata that is accessible by the REST API.
+ *
+ * @return array
+ */
+ public function dtp_fb_allowed_metadata( $keys ) {
+ return array_merge( $keys, array( '_dtp_fb', '_dtp_fb_geo_points', '_dtp_fb_post_link' ) );
+ }
+
+ /**
+ * Pre-process FB DTP posts before inserting.
+ * Here we can improve the DTP content for the following issues:
+ * - Render the map block based on provided coordinates in metadata
+ * - [TODO] Improve the title
+ *
+ * @param array $post Post to be inserted.
+ * @param array $metadata Metadata for the post.
+ *
+ * @return mixed
+ */
+ private function dtp_fb_preprocess_post( $post, $metadata ) {
+ $geo_points_metadata = wp_filter_object_list( $metadata, array( 'key' => '_dtp_fb_geo_points' ), 'and', 'value' );
+ if ( ! empty( $geo_points_metadata ) ) {
+ $fb_points = reset( $geo_points_metadata );
+ $geo_points = array();
+
+ // Prepare Geo Points so that they match the format expected by the map block.
+ foreach ( $fb_points as $fb_point ) {
+ $geo_points[] = array(
+ 'coordinates' => array(
+ 'longitude' => $fb_point['longitude'],
+ 'latitude' => $fb_point['latitude'],
+ ),
+ 'title' => $fb_point['name'],
+ );
+ }
+ $map_block = map_block_from_geo_points( $geo_points );
+
+ $post['post_content'] = $map_block . $post['post_content'];
+ }
+
+ $post['post_format'] = 'aside';
+
+ return $post;
+ }
+
+ /**
+ * Determines if a post exists based on title, content, date, and type,
+ * But excluding IDs in gallery shortcodes.
+ * This will prevent duplication of posts created through the API.
+ *
+ * @param string $title Post title.
+ * @param string $content Post content.
+ * @param string $post_date Post date.
+ * @param string $type Optional post type.
+ * @return int Post ID if post exists, 0 otherwise.
+ */
+ private function post_exists( $title, $content, $post_date, $type = '' ) {
+ $date = date_create( $post_date );
+
+ $posts = get_posts(
+ array(
+ 'year' => date_format( $date, 'Y' ),
+ 'monthnum' => date_format( $date, 'n' ),
+ 'day' => date_format( $date, 'j' ),
+ 'hour' => date_format( $date, 'G' ),
+ 'minute' => date_format( $date, 'i' ),
+ 'second' => date_format( $date, 's' ),
+ 'post_type' => $type,
+ 'title' => $title,
+ 'numberposts' => -1,
+ 'suppress_filters' => false,
+ )
+ );
+
+ foreach ( $posts as $post ) {
+ $gallery_ids_pattern = "/(\[gallery[^\]]*)(\sids='[\d,]+')([^\]]*\])/";
+
+ $post->post_content = preg_replace( $gallery_ids_pattern, '$1$3', $post->post_content );
+ $content = preg_replace( $gallery_ids_pattern, '$1$3', $content );
+
+ if ( $content === $post->post_content ) {
+ return $post->ID;
+ }
+ }
+
+ return 0;
+ }
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php
index fa8c4cf8..16d24940 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-homepage-endpoint.php
@@ -29,7 +29,7 @@ new WPCOM_JSON_API_Update_Site_Homepage_Endpoint( array (
'page_for_posts_id' => 0,
),
),
- 'example_response' => '{"is_page_on_front":true,"page_on_front_id":1,"page_for_posts_id":0}'
+ 'example_response' => '{"is_page_on_front":true,"page_on_front_id":1,"page_for_posts_id":0}',
) );
class WPCOM_JSON_API_Update_Site_Homepage_Endpoint extends WPCOM_JSON_API_Endpoint {
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php
index 2ccca0a9..996601d7 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-site-logo-endpoint.php
@@ -12,7 +12,7 @@ new WPCOM_JSON_API_Update_Site_Logo_Endpoint( array (
),
'request_format' => array(
'id' => '(int) The ID of the logo post',
- 'url' => '(string) The URL of the logo post',
+ 'url' => '(string) The URL of the logo post (deprecated)',
),
'response_format' => array(
'id' => '(int) The ID of the logo post',
@@ -23,7 +23,6 @@ new WPCOM_JSON_API_Update_Site_Logo_Endpoint( array (
'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
'body' => array(
'id' => 12345,
- 'url' => 'https://s.w.org/about/images/logos/codeispoetry-rgb.png',
),
),
'example_response' => '
@@ -68,29 +67,29 @@ class WPCOM_JSON_API_Update_Site_Logo_Endpoint extends WPCOM_JSON_API_Endpoint {
$args = $this->input();
$logo_settings = $this->get_current_settings();
+
if ( empty( $args ) || ! is_array( $args ) ) {
return $logo_settings;
}
if ( isset( $args['id'] ) ) {
- $logo_settings['id'] = intval( $args['id'], 10 );
- }
- if ( isset( $args['url'] ) ) {
- $logo_settings['url'] = $args['url'];
- }
- if ( isset( $args['url'] ) || isset( $args['id'] ) ) {
- update_option( 'site_logo', $logo_settings );
+ update_option( 'site_logo', (int) $args['id'] );
}
return $this->get_current_settings();
}
function get_current_settings() {
- $logo_settings = get_option( 'site_logo' );
- if ( ! is_array( $logo_settings ) ) {
- $logo_settings = array();
+ $logo_id = get_option( 'site_logo' );
+
+ if ( ! $logo_id ) {
+ return array();
}
- return $logo_settings;
+
+ return array(
+ 'id' => $logo_id,
+ 'url' => wp_get_attachment_url( $logo_id ),
+ );
}
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php
index 8ec4c59c..8b8e6045 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php
@@ -86,7 +86,7 @@ class WPCOM_JSON_API_Update_User_Endpoint extends WPCOM_JSON_API_Endpoint {
$domains = array_unique( array_map( array( $this, 'get_subscription_domain_name' ), $subscriptions ) );
- return $domains;
+ return array_values( $domains );
}
/**
@@ -102,7 +102,17 @@ class WPCOM_JSON_API_Update_User_Endpoint extends WPCOM_JSON_API_Endpoint {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
$domains = $this->domain_subscriptions_for_site_owned_by_user( $user_id );
if ( ! empty( $domains ) ) {
- return new WP_Error( 'user_owns_domain_subscription', join( ', ', $domains ) );
+ $error = new WP_Error( 'user_owns_domain_subscription', join( ', ', $domains ) );
+ $error->add_data( $domains, 'additional_data' );
+ return $error;
+ }
+
+ $active_user_subscriptions = WPCOM_Store::get_user_subscriptions( $user_id, get_current_blog_id() );
+ if ( ! empty( $active_user_subscriptions ) ) {
+ $product_names = array_values( wp_list_pluck( $active_user_subscriptions, 'product_name' ) );
+ $error = new WP_Error( 'user_has_active_subscriptions', 'User has active subscriptions' );
+ $error->add_data( $product_names, 'additional_data' );
+ return $error;
}
}
@@ -159,7 +169,7 @@ class WPCOM_JSON_API_Update_User_Endpoint extends WPCOM_JSON_API_Endpoint {
}
return array(
- 'success' => wp_delete_user( $user_id, intval( $input['reassign'] ) ),
+ 'success' => wp_delete_user( $user_id, (int) $input['reassign'] ),
);
}
}
diff --git a/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php b/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php
index a46d0afd..86bbec41 100644
--- a/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php
+++ b/plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php
@@ -108,6 +108,11 @@ class WPCOM_JSON_API_Upload_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
// Normal WPCOM upload processing
if ( count( $other_media_files ) > 0 || count( $media_urls ) > 0 ) {
+ if ( is_multisite() ) { // Do not check for available space in non multisites.
+ add_filter( 'wp_handle_upload_prefilter', array( $this, 'check_upload_size' ), 9 ); // used for direct media uploads.
+ add_filter( 'wp_handle_sideload_prefilter', array( $this, 'check_upload_size' ), 9 ); // used for uploading media via url.
+ }
+
$create_media = $this->handle_media_creation_v1_1( $other_media_files, $media_urls, $media_attrs );
$media_ids = $create_media['media_ids'];
$errors = $create_media['errors'];
@@ -119,7 +124,7 @@ class WPCOM_JSON_API_Upload_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
}
if ( count( $media_items ) <= 0 ) {
- return $this->api->output_early( 400, array( 'errors' => $errors ) );
+ return $this->api->output_early( 400, array( 'errors' => $this->rewrite_generic_upload_error( $errors ) ) );
}
$results = array();
@@ -135,13 +140,75 @@ class WPCOM_JSON_API_Upload_Media_v1_1_Endpoint extends WPCOM_JSON_API_Endpoint
$response = array( 'media' => $results );
if ( count( $errors ) > 0 ) {
- $response['errors'] = $errors;
+ $response['errors'] = $this->rewrite_generic_upload_error( $errors );
}
return $response;
}
/**
+ * This changes the generic "upload_error" code to something more meaningful if possible
+ *
+ * @param array $errors Errors for the uploaded file.
+ * @return array The same array with an improved error message.
+ */
+ function rewrite_generic_upload_error( $errors ) {
+ foreach ( $errors as $k => $error ) {
+ if ( 'upload_error' === $error['error'] && false !== strpos( $error['message'], '|' ) ) {
+ list( $errors[ $k ]['error'], $errors[ $k ]['message'] ) = explode( '|', $error['message'], 2 );
+ }
+ }
+ return $errors;
+ }
+
+ /**
+ * Determine if uploaded file exceeds space quota on multisite.
+ *
+ * This is a copy of the core function with added functionality, synced
+ * with this with WP_REST_Attachments_Controller::check_upload_size()
+ * to allow for specifying a better error message.
+ *
+ * @param array $file $_FILES array for a given file.
+ * @return array Maybe extended with an error message.
+ */
+ function check_upload_size( $file ) {
+ if ( get_site_option( 'upload_space_check_disabled' ) ) {
+ return $file;
+ }
+
+ if ( isset( $file['error'] ) && $file['error'] > 0 ) { // There's already an error. Error Codes Reference: https://www.php.net/manual/en/features.file-upload.errors.php .
+ return $file;
+ }
+
+ if ( defined( 'WP_IMPORTING' ) ) {
+ return $file;
+ }
+
+ $space_left = get_upload_space_available();
+
+ $file_size = filesize( $file['tmp_name'] );
+ if ( $space_left < $file_size ) {
+ /* translators: %s: Required disk space in kilobytes. */
+ $file['error'] = 'rest_upload_limited_space|' . sprintf( __( 'Not enough space to upload. %s KB needed.', 'default' ), number_format( ( $file_size - $space_left ) / KB_IN_BYTES ) );
+ }
+
+ $max_upload_size = KB_IN_BYTES * get_site_option( 'fileupload_maxk', 1500 );
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM && defined( 'WPCOM_MAX_UPLOAD_FILE_SIZE' ) ) {
+ $max_upload_size = WPCOM_MAX_UPLOAD_FILE_SIZE;
+ }
+
+ if ( $file_size > $max_upload_size ) {
+ /* translators: %s: Maximum allowed file size in kilobytes. */
+ $file['error'] = 'rest_upload_file_too_big|' . sprintf( __( 'This file is too big. Files must be less than %s KB in size.', 'jetpack' ), $max_upload_size / KB_IN_BYTES );
+ }
+
+ if ( upload_is_user_over_quota( false ) ) {
+ $file['error'] = 'rest_upload_user_quota_exceeded|' . __( 'You have used your space quota. Please delete files before uploading.', 'default' );
+ }
+
+ return $file;
+ }
+ /**
* Force to use the WPCOM API instead of proxy back to the Jetpack API if the blog is a paid Jetpack
* blog w/ the VideoPress module enabled AND the uploaded file is a video.
*
diff --git a/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php
index 2729dc58..3f6a88dc 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-delete-backup-helper-script-endpoint.php
@@ -3,11 +3,15 @@
* API endpoint /sites/%s/delete-backup-helper-script
* This API endpoint deletes a Jetpack Backup Helper Script
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Backup\Helper_Script_Manager;
+/**
+ * API endpoint /sites/%s/delete-backup-helper-script
+ * This API endpoint deletes a Jetpack Backup Helper Script
+ */
class Jetpack_JSON_API_Delete_Backup_Helper_Script_Endpoint extends Jetpack_JSON_API_Endpoint {
/**
* This endpoint is only accessible from Jetpack Backup; it requires no further capabilities.
@@ -43,7 +47,7 @@ class Jetpack_JSON_API_Delete_Backup_Helper_Script_Endpoint extends Jetpack_JSON
* @param null $object Unused.
* @return bool|WP_Error a WP_Error object or true if the input seems ok.
*/
- protected function validate_input( $object ) {
+ protected function validate_input( $object ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$args = $this->input();
if ( ! isset( $args['path'] ) ) {
diff --git a/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php
index a5c2bdeb..b0ef0b71 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-install-backup-helper-script-endpoint.php
@@ -3,12 +3,16 @@
* API endpoint /sites/%s/install-backup-helper-script
* This API endpoint installs a Helper Script to assist Jetpack Backup fetch data
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Backup\Helper_Script_Manager;
-class Jetpack_JSON_API_Install_Backup_Helper_Script_Endpoint extends Jetpack_JSON_API_Endpoint {
+/**
+ * API endpoint /sites/%s/install-backup-helper-script
+ * This API endpoint installs a Helper Script to assist Jetpack Backup fetch data
+ */
+class Jetpack_JSON_API_Install_Backup_Helper_Script_Endpoint extends Jetpack_JSON_API_Endpoint {
/**
* This endpoint is only accessible from Jetpack Backup; it requires no further capabilities.
*
@@ -43,13 +47,14 @@ class Jetpack_JSON_API_Install_Backup_Helper_Script_Endpoint extends Jetpack_JSO
* @param null $object Unused.
* @return bool|WP_Error a WP_Error object or true if the input seems ok.
*/
- protected function validate_input( $object ) {
+ protected function validate_input( $object ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$args = $this->input();
if ( ! isset( $args['helper'] ) ) {
return new WP_Error( 'invalid_args', __( 'You must specify a helper script body', 'jetpack' ), 400 );
}
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
$this->helper_script = base64_decode( $args['helper'] );
if ( ! $this->helper_script ) {
return new WP_Error( 'invalid_args', __( 'Helper script body must be base64 encoded', 'jetpack' ), 400 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-modules-list-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-modules-list-v1-2-endpoint.php
new file mode 100644
index 00000000..8f7fa76a
--- /dev/null
+++ b/plugins/jetpack/json-endpoints/jetpack/class-jetpack-json-api-modules-list-v1-2-endpoint.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * List modules v1.2 endpoint.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Status;
+/**
+ * List modules v1.2 endpoint.
+ */
+class Jetpack_JSON_API_Modules_List_V1_2_Endpoint extends Jetpack_JSON_API_Endpoint {
+
+ /**
+ * This endpoint allows authentication both via a blog and a user token.
+ * If a user token is used, that user should have `jetpack_manage_modules` capability.
+ *
+ * @var array|string
+ */
+ protected $needed_capabilities = 'jetpack_manage_modules';
+
+ /**
+ * Fetch modules list.
+ *
+ * @return array An array of module objects.
+ */
+ protected function result() {
+ require_once JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php';
+
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+
+ $modules = Jetpack_Admin::init()->get_modules();
+
+ foreach ( $modules as $slug => $properties ) {
+ if ( $is_offline_mode ) {
+ $requires_connection = isset( $modules[ $slug ]['requires_connection'] ) && $modules[ $slug ]['requires_connection'];
+ $requires_user_connection = isset( $modules[ $slug ]['requires_user_connection'] ) && $modules[ $slug ]['requires_user_connection'];
+ if (
+ $requires_connection || $requires_user_connection
+ ) {
+ $modules[ $slug ]['activated'] = false;
+ }
+ }
+ }
+
+ $modules = Jetpack::get_translated_modules( $modules );
+
+ return array( 'modules' => $modules );
+ }
+}
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php
index 9638c3eb..c1ca60a7 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-cron-endpoint.php
@@ -200,12 +200,7 @@ class Jetpack_JSON_API_Cron_Schedule_Endpoint extends Jetpack_JSON_API_Cron_Endp
$lock = $this->lock_cron();
$next = wp_schedule_single_event( $args['timestamp'], $hook, $arguments );
$this->maybe_unlock_cron( $lock );
- /**
- * Note: Before WP 5.1, the return value was either `false` or `null`.
- * With 5.1 and later, the return value is now `false` or `true`.
- * We need to account for both.
- */
- return array( 'success' => false !== $next );
+ return array( 'success' => $next );
}
}
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php
index 8a349015..07457d7d 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php
@@ -94,6 +94,10 @@ abstract class Jetpack_JSON_API_Endpoint extends WPCOM_JSON_API_Endpoint {
* @return bool|WP_Error
*/
protected function check_capability( $capability ) {
+ // If this endpoint accepts site based authentication, skip capabilities check.
+ if ( $this->accepts_site_based_authentication() ) {
+ return true;
+ }
if ( is_array( $capability ) ) {
// the idea is that the we can pass in an array of capabilitie that the user needs to have before we allowing them to do something
$capabilities = ( isset( $capability['capabilities'] ) ? $capability['capabilities'] : $capability );
@@ -111,11 +115,15 @@ abstract class Jetpack_JSON_API_Endpoint extends WPCOM_JSON_API_Endpoint {
$failed[] = $cap;
}
}
- // Check that must have conditions is less then
+ // Check if all conditions have passed.
if ( $passed < $must_pass ) {
- return new WP_Error( 'unauthorized', sprintf( __( 'This user is not authorized to %s on this blog.', 'jetpack' ), implode( ', ', $failed ), 403 ) );
+ return new WP_Error(
+ 'unauthorized',
+ /* translators: %s: comma-separated list of capabilities */
+ sprintf( __( 'This user is not authorized to %s on this blog.', 'jetpack' ), implode( ', ', $failed ) ),
+ 403
+ );
}
-
} else {
if ( !current_user_can( $capability ) ) {
return new WP_Error( 'unauthorized', sprintf( __( 'This user is not authorized to %s on this blog.', 'jetpack' ), $capability ), 403 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php
index 0e4bc256..e526902b 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-comment-backup-endpoint.php
@@ -11,12 +11,15 @@ class Jetpack_JSON_API_Get_Comment_Backup_Endpoint extends Jetpack_JSON_API_Endp
return new WP_Error( 'comment_id_not_specified', __( 'You must specify a Comment ID', 'jetpack' ), 400 );
}
- $this->comment_id = intval( $comment_id );
+ $this->comment_id = (int) $comment_id;
return true;
}
protected function result() {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$comment = get_comment( $this->comment_id );
if ( empty( $comment ) ) {
return new WP_Error( 'comment_not_found', __( 'Comment not found', 'jetpack' ), 404 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php
index b7134730..05a5c7f8 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-database-object-backup-endpoint.php
@@ -64,6 +64,9 @@ class Jetpack_JSON_API_Get_Database_Object_Backup_Endpoint extends Jetpack_JSON_
protected function result() {
global $wpdb;
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$table = $wpdb->prefix . $this->object_type['table'];
$id_field = $this->object_type['id_field'];
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php
index a5d8d3a7..642e3139 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-option-backup-endpoint.php
@@ -7,7 +7,7 @@ class Jetpack_JSON_API_Get_Option_Backup_Endpoint extends Jetpack_JSON_API_Endpo
protected $option_names;
function validate_input( $object ) {
- $query_args = $this->query_args();
+ $query_args = $this->query_args();
if ( empty( $query_args['name'] ) ) {
return new WP_Error( 'option_name_not_specified', __( 'You must specify an option name', 'jetpack' ), 400 );
@@ -23,6 +23,9 @@ class Jetpack_JSON_API_Get_Option_Backup_Endpoint extends Jetpack_JSON_API_Endpo
}
protected function result() {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$options = array_map( array( $this, 'get_option_row' ), $this->option_names );
return array( 'options' => $options );
}
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php
index 7e7ff2a7..c6102dfc 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-post-backup-endpoint.php
@@ -11,7 +11,7 @@ class Jetpack_JSON_API_Get_Post_Backup_Endpoint extends Jetpack_JSON_API_Endpoin
return new WP_Error( 'post_id_not_specified', __( 'You must specify a Post ID', 'jetpack' ), 400 );
}
- $this->post_id = intval( $post_id );
+ $this->post_id = (int) $post_id;
return true;
}
@@ -19,6 +19,9 @@ class Jetpack_JSON_API_Get_Post_Backup_Endpoint extends Jetpack_JSON_API_Endpoin
protected function result() {
global $wpdb;
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$post = get_post( $this->post_id );
if ( empty( $post ) ) {
return new WP_Error( 'post_not_found', __( 'Post not found', 'jetpack' ), 404 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php
index 40d0ab97..21882ddd 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-term-backup-endpoint.php
@@ -11,12 +11,15 @@ class Jetpack_JSON_API_Get_Term_Backup_Endpoint extends Jetpack_JSON_API_Endpoin
return new WP_Error( 'term_id_not_specified', __( 'You must specify a Term ID', 'jetpack' ), 400 );
}
- $this->term_id = intval( $term_id );
+ $this->term_id = (int) $term_id;
return true;
}
protected function result() {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$term = get_term( $this->term_id );
if ( empty( $term ) ) {
return new WP_Error( 'term_not_found', __( 'Term not found', 'jetpack' ), 404 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php
index 22ca195d..a57e4579 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-get-user-backup-endpoint.php
@@ -11,12 +11,15 @@ class Jetpack_JSON_API_Get_User_Backup_Endpoint extends Jetpack_JSON_API_Endpoin
return new WP_Error( 'user_id_not_specified', __( 'You must specify a User ID', 'jetpack' ), 400 );
}
- $this->user_id = intval( $user_id );
+ $this->user_id = (int) $user_id;
return true;
}
protected function result() {
+ // Disable Sync as this is a read-only operation and triggered by sync activity.
+ \Automattic\Jetpack\Sync\Actions::mark_sync_read_only();
+
$user = get_user_by( 'id', $this->user_id );
if ( empty( $user ) ) {
return new WP_Error( 'user_not_found', __( 'User not found', 'jetpack' ), 404 );
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php
index f1d0f4da..ba6ea7cf 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php
@@ -7,7 +7,7 @@ class Jetpack_JSON_API_Jetpack_Log_Endpoint extends Jetpack_JSON_API_Endpoint {
protected function result() {
$args = $this->input();
$event = ( isset( $args['event'] ) && is_string( $args['event'] ) ) ? $code : false;
- $num = ( isset( $args['num'] ) ) ? intval( $num ) : false;
+ $num = ( isset( $args['num'] ) ) ? (int) $num : false;
return array(
'log' => Jetpack::get_log( $event, $num )
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php
index 3748d621..94b6ddd3 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php
@@ -2,46 +2,48 @@
// POST /sites/%s/plugins/%s/delete
new Jetpack_JSON_API_Plugins_Delete_Endpoint(
array(
- 'description' => 'Delete/Uninstall a plugin from your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:1:delete',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/delete',
- 'path_labels' => array(
+ 'description' => 'Delete/Uninstall a plugin from your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:1:delete',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/delete',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(int|string) The plugin slug to delete',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet%2Fakismet/delete'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet%2Fakismet/delete',
)
);
// v1.2
new Jetpack_JSON_API_Plugins_Delete_Endpoint(
array(
- 'description' => 'Delete/Uninstall a plugin from your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:1:delete',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/delete',
- 'path_labels' => array(
+ 'description' => 'Delete/Uninstall a plugin from your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:1:delete',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/delete',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(int|string) The plugin slug to delete',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/akismet%2Fakismet/delete'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/akismet%2Fakismet/delete',
)
);
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php
index 6c3b4d0a..95a6645c 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-endpoint.php
@@ -144,14 +144,22 @@ abstract class Jetpack_JSON_API_Plugins_Endpoint extends Jetpack_JSON_API_Endpoi
$plugin['action_links'] = $action_link;
}
- $autoupdate = in_array( $plugin_file, Jetpack_Options::get_option( 'autoupdate_plugins', array() ) );
- $plugin['autoupdate'] = $autoupdate;
+ $plugin['plugin'] = $plugin_file;
+ if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ }
+ $autoupdate = ( new WP_Automatic_Updater() )->should_update( 'plugin', (object) $plugin, WP_PLUGIN_DIR );
+ $plugin['autoupdate'] = $autoupdate;
$autoupdate_translation = in_array( $plugin_file, Jetpack_Options::get_option( 'autoupdate_plugins_translations', array() ) );
$plugin['autoupdate_translation'] = $autoupdate || $autoupdate_translation || Jetpack_Options::get_option( 'autoupdate_translations', false );
$plugin['uninstallable'] = is_uninstallable_plugin( $plugin_file );
+ if ( is_multisite() ) {
+ $plugin['network_active'] = is_plugin_active_for_network( $plugin_file );
+ }
+
if ( ! empty ( $this->log[ $plugin_file ] ) ) {
$plugin['log'] = $this->log[ $plugin_file ];
}
@@ -176,13 +184,21 @@ abstract class Jetpack_JSON_API_Plugins_Endpoint extends Jetpack_JSON_API_Endpoi
$plugin['action_links'] = $action_link;
}
- $autoupdate = $this->plugin_has_autoupdates_enabled( $plugin_file );
- $plugin['autoupdate'] = $autoupdate;
+ $plugin['plugin'] = $plugin_file;
+ if ( ! class_exists( 'WP_Automatic_Updater' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ }
+ $autoupdate = ( new WP_Automatic_Updater() )->should_update( 'plugin', (object) $plugin, WP_PLUGIN_DIR );
+ $plugin['autoupdate'] = $autoupdate;
$autoupdate_translation = $this->plugin_has_translations_autoupdates_enabled( $plugin_file );
$plugin['autoupdate_translation'] = $autoupdate || $autoupdate_translation || Jetpack_Options::get_option( 'autoupdate_translations', false );
$plugin['uninstallable'] = is_uninstallable_plugin( $plugin_file );
+ if ( is_multisite() ) {
+ $plugin['network_active'] = is_plugin_active_for_network( $plugin_file );
+ }
+
if ( ! empty ( $this->log[ $plugin_file ] ) ) {
$plugin['log'] = $this->log[ $plugin_file ];
}
@@ -190,15 +206,10 @@ abstract class Jetpack_JSON_API_Plugins_Endpoint extends Jetpack_JSON_API_Endpoi
return $plugin;
}
- protected function plugin_has_autoupdates_enabled( $plugin_file ) {
- return (bool) in_array( $plugin_file, Jetpack_Options::get_option( 'autoupdate_plugins', array() ) );
- }
-
protected function plugin_has_translations_autoupdates_enabled( $plugin_file ) {
return (bool) in_array( $plugin_file, Jetpack_Options::get_option( 'autoupdate_plugins_translations', array() ) );
}
-
protected function get_file_mod_capabilities() {
$reasons_can_not_autoupdate = array();
$reasons_can_not_modify_files = array();
@@ -248,10 +259,33 @@ abstract class Jetpack_JSON_API_Plugins_Endpoint extends Jetpack_JSON_API_Endpoi
$plugins = array();
/** This filter is documented in wp-admin/includes/class-wp-plugins-list-table.php */
$installed_plugins = apply_filters( 'all_plugins', get_plugins() );
- foreach( $this->plugins as $plugin ) {
- if ( ! isset( $installed_plugins[ $plugin ] ) )
+ foreach ( $this->plugins as $plugin ) {
+ if ( ! isset( $installed_plugins[ $plugin ] ) ) {
continue;
- $plugins[] = $this->format_plugin( $plugin, $installed_plugins[ $plugin ] );
+ }
+
+ $formatted_plugin = $this->format_plugin( $plugin, $installed_plugins[ $plugin ] );
+
+ // If this endpoint accepts site based authentication and a blog token is used, skip capabilities check.
+ if ( $this->accepts_site_based_authentication() ) {
+ $plugins[] = $formatted_plugin;
+ continue;
+ }
+
+ /*
+ * Do not show network-active plugins
+ * to folks who do not have the permission to see them.
+ */
+ if (
+ /** This filter is documented in src/wp-admin/includes/class-wp-plugins-list-table.php */
+ ! apply_filters( 'show_network_active_plugins', current_user_can( 'manage_network_plugins' ) )
+ && ! empty( $formatted_plugin['network_active'] )
+ && true === $formatted_plugin['network_active']
+ ) {
+ continue;
+ }
+
+ $plugins[] = $formatted_plugin;
}
$args = $this->query_args();
@@ -272,6 +306,11 @@ abstract class Jetpack_JSON_API_Plugins_Endpoint extends Jetpack_JSON_API_Endpoi
$this->network_wide = true;
}
+ // If this endpoint accepts site based authentication and a blog token is used, skip capabilities check.
+ if ( $this->accepts_site_based_authentication() ) {
+ return true;
+ }
+
if ( $this->network_wide && ! current_user_can( 'manage_network_plugins' ) ) {
return new WP_Error( 'unauthorized', __( 'This user is not authorized to manage plugins network wide.', 'jetpack' ), 403 );
}
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php
index 276fca49..6d2dd612 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php
@@ -2,23 +2,24 @@
new Jetpack_JSON_API_Plugins_Get_Endpoint(
array(
- 'description' => 'Get the Plugin data.',
- 'method' => 'GET',
- 'path' => '/sites/%s/plugins/%s/',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'stat' => 'plugins:1',
- 'path_labels' => array(
+ 'description' => 'Get the Plugin data.',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/plugins/%s/',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'stat' => 'plugins:1',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(string) The plugin ID',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello',
)
);
// no v1.2 version since it is .com only
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-install-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-install-endpoint.php
index bbd6de19..77e09c88 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-install-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-install-endpoint.php
@@ -5,46 +5,48 @@ include_once ABSPATH . 'wp-admin/includes/file.php';
// POST /sites/%s/plugins/%s/install
new Jetpack_JSON_API_Plugins_Install_Endpoint(
array(
- 'description' => 'Install a plugin to your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:1:install',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/install',
- 'path_labels' => array(
+ 'description' => 'Install a plugin to your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:1:install',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/install',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(int|string) The plugin slug to install',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet/install'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet/install',
)
);
new Jetpack_JSON_API_Plugins_Install_Endpoint(
array(
- 'description' => 'Install a plugin to your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:1:install',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/install',
- 'path_labels' => array(
+ 'description' => 'Install a plugin to your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:1:install',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/install',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(int|string) The plugin slug to install',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/akismet/install'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/akismet/install',
)
);
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php
index ff8004d0..5f59b687 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php
@@ -2,24 +2,25 @@
new Jetpack_JSON_API_Plugins_List_Endpoint(
array(
- 'description' => 'Get installed Plugins on your blog',
- 'method' => 'GET',
- 'path' => '/sites/%s/plugins',
- 'stat' => 'plugins',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
+ 'description' => 'Get installed Plugins on your blog',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/plugins',
+ 'stat' => 'plugins',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- 'response_format' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'response_format' => array(
'plugins' => '(plugin) An array of plugin objects.',
),
- 'example_request_data' => array(
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins',
)
);
// No v1.2 versions since they are .com only
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php
index 232cc2c5..d562f02e 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php
@@ -4,68 +4,70 @@ use Automattic\Jetpack\Constants;
new Jetpack_JSON_API_Plugins_Modify_Endpoint(
array(
- 'description' => 'Activate/Deactivate a Plugin on your Jetpack Site, or set automatic updates',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s',
- 'stat' => 'plugins:1:modify',
- 'path_labels' => array(
+ 'description' => 'Activate/Deactivate a Plugin on your Jetpack Site, or set automatic updates',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s',
+ 'stat' => 'plugins:1:modify',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(string) The plugin ID',
),
- 'request_format' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'request_format' => array(
'action' => '(string) Possible values are \'update\'',
'autoupdate' => '(bool) Whether or not to automatically update the plugin',
'active' => '(bool) Activate or deactivate the plugin',
'network_wide' => '(bool) Do action network wide (default value: false)',
),
- 'query_parameters' => array(
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
'body' => array(
'action' => 'update',
- )
+ ),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello',
)
);
new Jetpack_JSON_API_Plugins_Modify_Endpoint(
array(
- 'description' => 'Activate/Deactivate a list of plugins on your Jetpack Site, or set automatic updates',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins',
- 'stat' => 'plugins:modify',
- 'path_labels' => array(
+ 'description' => 'Activate/Deactivate a list of plugins on your Jetpack Site, or set automatic updates',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins',
+ 'stat' => 'plugins:modify',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
),
- 'request_format' => array(
+ 'request_format' => array(
'action' => '(string) Possible values are \'update\'',
'autoupdate' => '(bool) Whether or not to automatically update the plugin',
'active' => '(bool) Activate or deactivate the plugin',
'network_wide' => '(bool) Do action network wide (default value: false)',
'plugins' => '(array) A list of plugin ids to modify',
),
- 'query_parameters' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => array(
+ 'response_format' => array(
'plugins' => '(array:plugin) An array of plugin objects.',
'updated' => '(array) A list of plugin ids that were updated. Only present if action is update.',
'not_updated' => '(array) A list of plugin ids that were not updated. Only present if action is update.',
'log' => '(array) Update log. Only present if action is update.',
),
- 'example_request_data' => array(
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
'body' => array(
'active' => true,
@@ -73,34 +75,35 @@ new Jetpack_JSON_API_Plugins_Modify_Endpoint(
'jetpack/jetpack',
'akismet/akismet',
),
- )
+ ),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins',
)
);
new Jetpack_JSON_API_Plugins_Modify_Endpoint(
array(
- 'description' => 'Update a Plugin on your Jetpack Site',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/update/',
- 'stat' => 'plugins:1:update',
- 'path_labels' => array(
+ 'description' => 'Update a Plugin on your Jetpack Site',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/update/',
+ 'stat' => 'plugins:1:update',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(string) The plugin ID',
),
- 'query_parameters' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello/update'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello/update',
)
);
@@ -170,15 +173,15 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
}
protected function autoupdate_on() {
- $autoupdate_plugins = Jetpack_Options::get_option( 'autoupdate_plugins', array() );
+ $autoupdate_plugins = (array) get_site_option( 'auto_update_plugins', array() );
$autoupdate_plugins = array_unique( array_merge( $autoupdate_plugins, $this->plugins ) );
- Jetpack_Options::update_option( 'autoupdate_plugins', $autoupdate_plugins );
+ update_site_option( 'auto_update_plugins', $autoupdate_plugins );
}
protected function autoupdate_off() {
- $autoupdate_plugins = Jetpack_Options::get_option( 'autoupdate_plugins', array() );
+ $autoupdate_plugins = (array) get_site_option( 'auto_update_plugins', array() );
$autoupdate_plugins = array_diff( $autoupdate_plugins, $this->plugins );
- Jetpack_Options::update_option( 'autoupdate_plugins', $autoupdate_plugins );
+ update_site_option( 'auto_update_plugins', $autoupdate_plugins );
}
protected function autoupdate_translations_on() {
@@ -248,6 +251,10 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
}
protected function current_user_can( $capability, $plugin = null ) {
+ // If this endpoint accepts site based authentication and a blog token is used, skip capabilities check.
+ if ( $this->accepts_site_based_authentication() ) {
+ return true;
+ }
if ( $plugin ) {
return current_user_can( $capability, $plugin );
}
@@ -292,6 +299,7 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
}
protected function update() {
+
$query_args = $this->query_args();
if ( isset( $query_args['autoupdate'] ) && $query_args['autoupdate'] ) {
Constants::set_constant( 'JETPACK_PLUGIN_AUTOUPDATE', true );
@@ -318,6 +326,12 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
remove_action( 'upgrader_process_complete', 'wp_version_check' );
remove_action( 'upgrader_process_complete', 'wp_update_themes' );
+ // Early return if unable to obtain auto_updater lock.
+ // @see https://github.com/WordPress/wordpress-develop/blob/66469efa99e7978c8824e287834135aa9842e84f/src/wp-admin/includes/class-wp-automatic-updater.php#L453.
+ if ( Constants::get_constant( 'JETPACK_PLUGIN_AUTOUPDATE' ) && ! WP_Upgrader::create_lock( 'auto_updater' ) ) {
+ return new WP_Error( 'update_fail', __( 'Updates are already in progress.', 'jetpack' ), 400 );
+ }
+
$result = false;
foreach ( $this->plugins as $plugin ) {
@@ -327,6 +341,17 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
continue;
}
+ // Rely on WP_Automatic_Updater class to check if a plugin item should be updated if it is a Jetpack autoupdate request.
+ if ( Constants::get_constant( 'JETPACK_PLUGIN_AUTOUPDATE' ) && ! ( new WP_Automatic_Updater() )->should_update( 'plugin', $update_plugins->response[ $plugin ], WP_PLUGIN_DIR ) ) {
+ continue;
+ }
+
+ // Establish per plugin lock.
+ $plugin_slug = Jetpack_Autoupdate::get_plugin_slug( $plugin );
+ if ( ! WP_Upgrader::create_lock( 'jetpack_' . $plugin_slug ) ) {
+ continue;
+ }
+
/**
* Pre-upgrade action
*
@@ -351,11 +376,19 @@ class Jetpack_JSON_API_Plugins_Modify_Endpoint extends Jetpack_JSON_API_Plugins_
$errors = $upgrader->skin->get_errors();
$this->log[$plugin] = $upgrader->skin->get_upgrade_messages();
+ // release individual plugin lock.
+ WP_Upgrader::release_lock( 'jetpack_' . $plugin_slug );
+
if ( is_wp_error( $errors ) && $errors->get_error_code() ) {
return $errors;
}
}
+ // release auto_udpate lock.
+ if ( Constants::get_constant( 'JETPACK_PLUGIN_AUTOUPDATE' ) ) {
+ WP_Upgrader::release_lock( 'auto_updater' );
+ }
+
if ( ! $this->bulk && ! $result && $update_attempted ) {
return new WP_Error( 'update_fail', __( 'There was an error updating your plugin', 'jetpack' ), 400 );
}
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php
index 23940da0..11d9f101 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-v1-2-endpoint.php
@@ -1,66 +1,68 @@
<?php
new Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint(
array(
- 'description' => 'Activate/Deactivate a Plugin on your Jetpack Site, or set automatic updates',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s',
- 'stat' => 'plugins:1:modify',
- 'path_labels' => array(
+ 'description' => 'Activate/Deactivate a Plugin on your Jetpack Site, or set automatic updates',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s',
+ 'stat' => 'plugins:1:modify',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(string) The plugin ID',
),
- 'request_format' => array(
+ 'request_format' => array(
'action' => '(string) Possible values are \'update\'',
'autoupdate' => '(bool) Whether or not to automatically update the plugin',
'active' => '(bool) Activate or deactivate the plugin',
'network_wide' => '(bool) Do action network wide (default value: false)',
),
- 'query_parameters' => array(
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
'body' => array(
'action' => 'update',
- )
+ ),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/hello-dolly%20hello'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/hello-dolly%20hello',
)
);
new Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint(
array(
- 'description' => 'Activate/Deactivate a list of plugins on your Jetpack Site, or set automatic updates',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins',
- 'stat' => 'plugins:modify',
- 'path_labels' => array(
+ 'description' => 'Activate/Deactivate a list of plugins on your Jetpack Site, or set automatic updates',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins',
+ 'stat' => 'plugins:modify',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
),
- 'request_format' => array(
+ 'request_format' => array(
'action' => '(string) Possible values are \'update\'',
'autoupdate' => '(bool) Whether or not to automatically update the plugin',
'active' => '(bool) Activate or deactivate the plugin',
'network_wide' => '(bool) Do action network wide (default value: false)',
'plugins' => '(array) A list of plugin ids to modify',
),
- 'query_parameters' => array(
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => array(
+ 'response_format' => array(
'plugins' => '(array:plugin_v1_2) An array of plugin objects.',
'updated' => '(array) A list of plugin ids that were updated. Only present if action is update.',
'not_updated' => '(array) A list of plugin ids that were not updated. Only present if action is update.',
'log' => '(array) Update log. Only present if action is update.',
),
- 'example_request_data' => array(
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
'body' => array(
'active' => true,
@@ -68,48 +70,58 @@ new Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint(
'jetpack/jetpack',
'akismet/akismet',
),
- )
+ ),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins',
)
);
new Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint(
array(
- 'description' => 'Update a Plugin on your Jetpack Site',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/%s/update/',
- 'stat' => 'plugins:1:update',
- 'path_labels' => array(
+ 'description' => 'Update a Plugin on your Jetpack Site',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/%s/update/',
+ 'stat' => 'plugins:1:update',
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
'$plugin' => '(string) The plugin ID',
),
- 'query_parameters' => array(
+ 'query_parameters' => array(
'autoupdate' => '(bool=false) If the update is happening as a result of autoupdate event',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/hello-dolly%20hello/update'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/hello-dolly%20hello/update',
)
);
class Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint extends Jetpack_JSON_API_Plugins_Modify_Endpoint {
+ /**
+ * Activate plugins.
+ *
+ * @return null|WP_Error null on success, WP_Error otherwise.
+ */
protected function activate() {
$permission_error = false;
$has_errors = false;
foreach ( $this->plugins as $plugin ) {
- if ( ! $this->current_user_can( 'activate_plugin', $plugin ) ) {
- $this->log[$plugin]['error'] = __( 'Sorry, you are not allowed to activate this plugin.' );
- $has_errors = true;
- $permission_error = true;
- continue;
+ // If this endpoint accepts site based authentication and a blog token is used, skip capabilities check.
+ if ( ! $this->accepts_site_based_authentication() ) {
+ if ( ! $this->current_user_can( 'activate_plugin', $plugin ) ) {
+ $this->log[ $plugin ]['error'] = __( 'Sorry, you are not allowed to activate this plugin.', 'jetpack' );
+
+ $has_errors = true;
+ $permission_error = true;
+ continue;
+ }
}
if ( ( ! $this->network_wide && Jetpack::is_plugin_active( $plugin ) ) || is_plugin_active_for_network( $plugin ) ) {
@@ -117,16 +129,18 @@ class Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint extends Jetpack_JSON_API_Plu
}
if ( ! $this->network_wide && is_network_only_plugin( $plugin ) && is_multisite() ) {
- $this->log[$plugin]['error'] = __( 'Plugin can only be Network Activated', 'jetpack' );
- $has_errors = true;
+ $this->log[ $plugin ]['error'] = __( 'Plugin can only be Network Activated', 'jetpack' );
+
+ $has_errors = true;
continue;
}
$result = activate_plugin( $plugin, '', $this->network_wide );
if ( is_wp_error( $result ) ) {
- $this->log[$plugin]['error'] = $result->get_error_messages();
- $has_errors = true;
+ $this->log[ $plugin ]['error'] = $result->get_error_messages();
+
+ $has_errors = true;
continue;
}
@@ -136,31 +150,41 @@ class Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint extends Jetpack_JSON_API_Plu
}
if ( ! $success ) {
- $this->log[$plugin]['error'] = $result->get_error_messages;
- $has_errors = true;
+ $this->log[ $plugin ]['error'] = $result->get_error_messages;
+
+ $has_errors = true;
continue;
}
- $this->log[$plugin][] = __( 'Plugin activated.', 'jetpack' );
+ $this->log[ $plugin ][] = __( 'Plugin activated.', 'jetpack' );
}
if ( ! $this->bulk && $has_errors ) {
$plugin = $this->plugins[0];
if ( $permission_error ) {
- return new WP_Error( 'unauthorized_error', $this->log[$plugin]['error'], 403 );
+ return new WP_Error( 'unauthorized_error', $this->log[ $plugin ]['error'], 403 );
}
- return new WP_Error( 'activation_error', $this->log[$plugin]['error'] );
+ return new WP_Error( 'activation_error', $this->log[ $plugin ]['error'] );
}
}
-
+ /**
+ * Deactivate plugins.
+ *
+ * @return null|WP_Error null on success, WP_Error otherwise.
+ */
protected function deactivate() {
$permission_error = false;
foreach ( $this->plugins as $plugin ) {
- if ( ! $this->current_user_can( 'deactivate_plugin', $plugin ) ) {
- $error = $this->log[$plugin]['error'] = __( 'Sorry, you are not allowed to deactivate this plugin.', 'jetpack' );
- $permission_error = true;
- continue;
+ // If this endpoint accepts site based authentication and a blog token is used, skip capabilities check.
+ if ( ! $this->accepts_site_based_authentication() ) {
+ if ( ! $this->current_user_can( 'deactivate_plugin', $plugin ) ) {
+ $error = __( 'Sorry, you are not allowed to deactivate this plugin.', 'jetpack' );
+
+ $this->log[ $plugin ]['error'] = $error;
+ $permission_error = true;
+ continue;
+ }
}
if ( ! Jetpack::is_plugin_active( $plugin ) ) {
@@ -175,10 +199,12 @@ class Jetpack_JSON_API_Plugins_Modify_v1_2_Endpoint extends Jetpack_JSON_API_Plu
}
if ( ! $success ) {
- $error = $this->log[$plugin]['error'] = __( 'There was an error deactivating your plugin', 'jetpack' );
+ $error = __( 'There was an error deactivating your plugin', 'jetpack' );
+
+ $this->log[ $plugin ]['error'] = $error;
continue;
}
- $this->log[$plugin][] = __( 'Plugin deactivated.', 'jetpack' );
+ $this->log[ $plugin ][] = __( 'Plugin deactivated.', 'jetpack' );
}
if ( ! $this->bulk && isset( $error ) ) {
if ( $permission_error ) {
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php
index 286a625b..3a16b1b0 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-new-endpoint.php
@@ -7,51 +7,53 @@ include_once ABSPATH . 'wp-admin/includes/file.php';
// POST /sites/%s/plugins/new
new Jetpack_JSON_API_Plugins_New_Endpoint(
array(
- 'description' => 'Install a plugin to a Jetpack site by uploading a zip file',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:new',
- 'min_version' => '1',
- 'max_version' => '1.1',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/new',
- 'path_labels' => array(
+ 'description' => 'Install a plugin to a Jetpack site by uploading a zip file',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:new',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/new',
+ 'path_labels' => array(
'$site' => '(int|string) Site ID or domain',
),
- 'request_format' => array(
+ 'request_format' => array(
'zip' => '(zip) Plugin package zip file. multipart/form-data encoded. ',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/new'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/new',
)
);
new Jetpack_JSON_API_Plugins_New_Endpoint(
array(
- 'description' => 'Install a plugin to a Jetpack site by uploading a zip file',
- 'group' => '__do_not_document',
- 'stat' => 'plugins:new',
- 'min_version' => '1.2',
- 'method' => 'POST',
- 'path' => '/sites/%s/plugins/new',
- 'path_labels' => array(
+ 'description' => 'Install a plugin to a Jetpack site by uploading a zip file',
+ 'group' => '__do_not_document',
+ 'stat' => 'plugins:new',
+ 'min_version' => '1.2',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/plugins/new',
+ 'path_labels' => array(
'$site' => '(int|string) Site ID or domain',
),
- 'request_format' => array(
+ 'request_format' => array(
'zip' => '(zip) Plugin package zip file. multipart/form-data encoded. ',
),
- 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
- 'example_request_data' => array(
+ 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format_v1_2,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/new'
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/plugins/new',
)
);
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php
index 98875ec0..94e7c790 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Sync\Actions;
+use Automattic\Jetpack\Sync\Health;
use Automattic\Jetpack\Sync\Modules;
use Automattic\Jetpack\Sync\Queue;
use Automattic\Jetpack\Sync\Queue_Buffer;
@@ -10,6 +11,13 @@ use Automattic\Jetpack\Sync\Settings;
// POST /sites/%s/sync
class Jetpack_JSON_API_Sync_Endpoint extends Jetpack_JSON_API_Endpoint {
+
+ /**
+ * This endpoint allows authentication both via a blog and a user token.
+ * If a user token is used, that user should have `manage_options` capability.
+ *
+ * @var array|string
+ */
protected $needed_capabilities = 'manage_options';
protected function validate_call( $_blog_id, $capability, $check_manage_active = true ) {
@@ -67,6 +75,7 @@ class Jetpack_JSON_API_Sync_Status_Endpoint extends Jetpack_JSON_API_Sync_Endpoi
// GET /sites/%s/data-check
class Jetpack_JSON_API_Sync_Check_Endpoint extends Jetpack_JSON_API_Sync_Endpoint {
protected function result() {
+ Actions::mark_sync_read_only();
$store = new Replicastore();
return $store->checksum_all();
}
@@ -88,12 +97,62 @@ class Jetpack_JSON_API_Sync_Histogram_Endpoint extends Jetpack_JSON_API_Sync_End
if ( ! isset( $args['strip_non_ascii'] ) ) {
$args['strip_non_ascii'] = true;
}
- $histogram = $store->checksum_histogram( $args['object_type'], $args['buckets'], $args['start_id'], $args['end_id'], $columns, $args['strip_non_ascii'], $args['shared_salt'] );
+
+ /**
+ * Hack: nullify the values of `start_id` and `end_id` if we're only requesting ranges.
+ *
+ * The endpoint doesn't support nullable values :(
+ */
+ if ( true === $args['only_range_edges'] ) {
+ if ( 0 === $args['start_id'] ) {
+ $args['start_id'] = null;
+ }
+
+ if ( 0 === $args['end_id'] ) {
+ $args['end_id'] = null;
+ }
+ }
+
+ $histogram = $store->checksum_histogram( $args['object_type'], $args['buckets'], $args['start_id'], $args['end_id'], $columns, $args['strip_non_ascii'], $args['shared_salt'], $args['only_range_edges'], $args['detailed_drilldown'] );
+
+ // Hack to disable Sync during this call, so we can resolve faster.
+ Actions::mark_sync_read_only();
return array( 'histogram' => $histogram, 'type' => $store->get_checksum_type() );
}
}
+// phpcs:disable Generic.Files.OneObjectStructurePerFile.MultipleFound
+/**
+ * POST /sites/%s/sync/health
+ */
+class Jetpack_JSON_API_Sync_Modify_Health_Endpoint extends Jetpack_JSON_API_Sync_Endpoint {
+
+ /**
+ * Callback for sync/health endpoint.
+ *
+ * @return array|WP_Error result of request.
+ */
+ protected function result() {
+ $args = $this->input();
+
+ switch ( $args['status'] ) {
+ case Health::STATUS_IN_SYNC:
+ case Health::STATUS_OUT_OF_SYNC:
+ Health::update_status( $args['status'] );
+ break;
+ default:
+ return new WP_Error( 'invalid_status', 'Invalid Sync Status Provided.' );
+ }
+
+ // re-fetch so we see what's really being stored.
+ return array(
+ 'success' => Health::get_status(),
+ );
+ }
+}
+// phpcs:enable
+
// POST /sites/%s/sync/settings
class Jetpack_JSON_API_Sync_Modify_Settings_Endpoint extends Jetpack_JSON_API_Sync_Endpoint {
protected function result() {
@@ -147,6 +206,7 @@ class Jetpack_JSON_API_Sync_Object extends Jetpack_JSON_API_Sync_Endpoint {
$codec = Sender::get_instance()->get_codec();
+ Actions::mark_sync_read_only();
Settings::set_is_syncing( true );
$objects = $codec->encode( $sync_module->get_objects_by_id( $object_type, $object_ids ) );
Settings::set_is_syncing( false );
@@ -249,7 +309,14 @@ class Jetpack_JSON_API_Sync_Checkout_Endpoint extends Jetpack_JSON_API_Sync_Endp
}
}
- public function immediate_full_sync_pull( $number_of_items ) {
+ /**
+ * Check out a buffer of full sync actions.
+ *
+ * @param null $number_of_items Number of Actions to check-out.
+ *
+ * @return array Sync Actions to be returned to requestor
+ */
+ public function immediate_full_sync_pull( $number_of_items = null ) {
// try to give ourselves as much time as possible.
set_time_limit( 0 );
@@ -294,6 +361,7 @@ class Jetpack_JSON_API_Sync_Checkout_Endpoint extends Jetpack_JSON_API_Sync_Endp
class Jetpack_JSON_API_Sync_Close_Endpoint extends Jetpack_JSON_API_Sync_Endpoint {
protected function result() {
+
$request_body = $this->input();
$queue_name = $this->validate_queue( $request_body['queue'] );
@@ -317,14 +385,29 @@ class Jetpack_JSON_API_Sync_Close_Endpoint extends Jetpack_JSON_API_Sync_Endpoin
$items = $queue->peek_by_id( $request_body['item_ids'] );
- /** This action is documented in packages/sync/src/modules/Full_Sync.php */
- $full_sync_module = Modules::get_module( 'full-sync' );
+ // Update Full Sync Status if queue is "full_sync".
+ if ( 'full_sync' === $queue_name ) {
+ $full_sync_module = Modules::get_module( 'full-sync' );
- $full_sync_module->update_sent_progress_action( $items );
+ $full_sync_module->update_sent_progress_action( $items );
+ }
$buffer = new Queue_Buffer( $request_body['buffer_id'], $request_body['item_ids'] );
$response = $queue->close( $buffer, $request_body['item_ids'] );
+ // Perform another checkout?
+ if ( isset( $request_body['continue'] ) && $request_body['continue'] ) {
+ if ( in_array( $queue_name, array( 'full_sync', 'immediate' ), true ) ) {
+ // Send Full Sync Actions.
+ Sender::get_instance()->do_full_sync();
+ } else {
+ // Send Incremental Sync Actions.
+ if ( $queue->has_any_items() ) {
+ Sender::get_instance()->do_sync();
+ }
+ }
+ }
+
if ( is_wp_error( $response ) ) {
return $response;
}
@@ -337,7 +420,7 @@ class Jetpack_JSON_API_Sync_Close_Endpoint extends Jetpack_JSON_API_Sync_Endpoin
protected static function sanitize_item_ids( $item ) {
// lets not delete any options that don't start with jpsq_sync-
- if ( substr( $item, 0, 5 ) !== 'jpsq_' ) {
+ if ( ! is_string( $item ) || substr( $item, 0, 5 ) !== 'jpsq_' ) {
return null;
}
//Limit to A-Z,a-z,0-9,_,-,.
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-connect-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-connect-endpoint.php
index 366f5ff7..b88d0406 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-connect-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-user-connect-endpoint.php
@@ -1,6 +1,7 @@
<?php
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Tokens;
class Jetpack_JSON_API_User_Connect_Endpoint extends Jetpack_JSON_API_Endpoint {
@@ -10,8 +11,8 @@ class Jetpack_JSON_API_User_Connect_Endpoint extends Jetpack_JSON_API_Endpoint {
private $user_token;
function result() {
- Connection_Utils::update_user_token( $this->user_id, sprintf( '%s.%d', $this->user_token, $this->user_id ), false );
- return array( 'success' => Jetpack::is_user_connected( $this->user_id ) );
+ ( new Tokens() )->update_user_token( $this->user_id, sprintf( '%s.%d', $this->user_token, $this->user_id ), false );
+ return array( 'success' => ( new Connection_Manager( 'jetpack' ) )->is_user_connected( $this->user_id ) );
}
function validate_input( $user_id ) {
@@ -20,7 +21,7 @@ class Jetpack_JSON_API_User_Connect_Endpoint extends Jetpack_JSON_API_Endpoint {
return new WP_Error( 'input_error', __( 'user_id is required', 'jetpack' ) );
}
$this->user_id = $user_id;
- if ( Jetpack::is_user_connected( $this->user_id ) ) {
+ if ( ( new Connection_Manager( 'jetpack' ) )->is_user_connected( $this->user_id ) ) {
return new WP_Error( 'user_already_connected', __( 'The user is already connected', 'jetpack' ) );
}
if ( ! isset( $input['user_token'] ) ) {
diff --git a/plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php b/plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php
index b261f202..16895cd4 100644
--- a/plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php
+++ b/plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php
@@ -3,7 +3,12 @@
use Automattic\Jetpack\Sync\Defaults;
class WPCOM_JSON_API_Get_Option_Endpoint extends Jetpack_JSON_API_Endpoint {
-
+ /**
+ * This endpoint allows authentication both via a blog and a user token.
+ * If a user token is used, that user should have `manage_options` capability.
+ *
+ * @var array|string
+ */
protected $needed_capabilities = 'manage_options';
public $option_name;
diff --git a/plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php b/plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php
index 6f13e52c..f252fa75 100644
--- a/plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php
+++ b/plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php
@@ -8,218 +8,243 @@ require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-endpoint.php
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-endpoint.php' );
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-active-endpoint.php' );
-new Jetpack_JSON_API_Themes_Active_Endpoint( array(
- 'description' => 'Get the active theme of your blog',
- 'stat' => 'themes:mine',
- 'method' => 'GET',
- 'path' => '/sites/%s/themes/mine',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Active_Endpoint(
+ array(
+ 'description' => 'Get the active theme of your blog',
+ 'stat' => 'themes:mine',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/themes/mine',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine'
-) );
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine',
+ )
+);
-new Jetpack_JSON_API_Themes_Active_Endpoint( array(
- 'description' => 'Change the active theme of your blog',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes/mine',
- 'stat' => 'themes:mine',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'query_parameters' => array(
- 'context' => false
- ),
- 'request_format' => array(
- 'theme' => '(string) The ID of the theme that should be activated'
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Active_Endpoint(
+ array(
+ 'description' => 'Change the active theme of your blog',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes/mine',
+ 'stat' => 'themes:mine',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- 'body' => array(
- 'theme' => 'twentytwelve'
- )
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine'
-) );
+ 'query_parameters' => array(
+ 'context' => false,
+ ),
+ 'request_format' => array(
+ 'theme' => '(string) The ID of the theme that should be activated',
+ ),
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ 'body' => array(
+ 'theme' => 'twentytwelve',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-list-endpoint.php' );
-new Jetpack_JSON_API_Themes_List_Endpoint( array(
- 'description' => 'Get WordPress.com Themes allowed on your blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes',
- 'method' => 'GET',
- 'path' => '/sites/%s/themes',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'response_format' => array(
- 'found' => '(int) The total number of themes found.',
- 'themes' => '(array) An array of theme objects.',
- ),
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_List_Endpoint(
+ array(
+ 'description' => 'Get WordPress.com Themes allowed on your blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/themes',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes'
-) );
+ 'response_format' => array(
+ 'found' => '(int) The total number of themes found.',
+ 'themes' => '(array) An array of theme objects.',
+ ),
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-get-endpoint.php' );
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-new-endpoint.php' );
// POST /sites/%s/themes/%new
-new Jetpack_JSON_API_Themes_New_Endpoint( array(
- 'description' => 'Install a theme to your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:new',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes/new',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- ),
- 'request_format' => array(
- 'zip' => '(zip) Theme package zip file. multipart/form-data encoded. ',
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_New_Endpoint(
+ array(
+ 'description' => 'Install a theme to your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:new',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes/new',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/new'
-) );
-
-
+ 'request_format' => array(
+ 'zip' => '(zip) Theme package zip file. multipart/form-data encoded. ',
+ ),
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/new',
+ )
+);
-new Jetpack_JSON_API_Themes_Get_Endpoint( array(
- 'description' => 'Get a single theme on a jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:get:1',
- 'method' => 'GET',
- 'path' => '/sites/%s/themes/%s',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$theme' => '(string) The theme slug',
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Get_Endpoint(
+ array(
+ 'description' => 'Get a single theme on a jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:get:1',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/themes/%s',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$theme' => '(string) The theme slug',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen'
-) );
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-modify-endpoint.php' );
-new Jetpack_JSON_API_Themes_Modify_Endpoint( array(
- 'description' => 'Modify a single theme on a jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:modify:1',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes/%s',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$theme' => '(string) The theme slug',
- ),
- 'request_format' => array(
- 'action' => '(string) Only possible value is \'update\'. More to follow.',
- 'autoupdate' => '(bool) Whether or not to automatically update the theme.',
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Modify_Endpoint(
+ array(
+ 'description' => 'Modify a single theme on a jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:modify:1',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes/%s',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$theme' => '(string) The theme slug',
),
- 'body' => array(
- 'action' => 'update',
- )
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen'
-) );
+ 'request_format' => array(
+ 'action' => '(string) Only possible value is \'update\'. More to follow.',
+ 'autoupdate' => '(bool) Whether or not to automatically update the theme.',
+ ),
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ 'body' => array(
+ 'action' => 'update',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen',
+ )
+);
-new Jetpack_JSON_API_Themes_Modify_Endpoint( array(
- 'description' => 'Modify a list of themes on a jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:modify',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- ),
- 'request_format' => array(
- 'action' => '(string) Only possible value is \'update\'. More to follow.',
- 'autoupdate' => '(bool) Whether or not to automatically update the theme.',
- 'themes' => '(array) A list of theme slugs',
- ),
- 'response_format' => array(
- 'themes' => '(array:theme) A list of theme objects',
- ),
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Modify_Endpoint(
+ array(
+ 'description' => 'Modify a list of themes on a jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:modify',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- 'body' => array(
- 'action' => 'autoupdate_on',
- 'themes' => array(
- 'twentytwelve',
- 'twentyfourteen',
+ 'request_format' => array(
+ 'action' => '(string) Only possible value is \'update\'. More to follow.',
+ 'autoupdate' => '(bool) Whether or not to automatically update the theme.',
+ 'themes' => '(array) A list of theme slugs',
+ ),
+ 'response_format' => array(
+ 'themes' => '(array:theme) A list of theme objects',
+ ),
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
),
- )
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes'
-) );
+ 'body' => array(
+ 'action' => 'autoupdate_on',
+ 'themes' => array(
+ 'twentytwelve',
+ 'twentyfourteen',
+ ),
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-install-endpoint.php' );
// POST /sites/%s/themes/%s/install
-new Jetpack_JSON_API_Themes_Install_Endpoint( array(
- 'description' => 'Install a theme to your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:1:install',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes/%s/install',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$theme' => '(int|string) The theme slug to install',
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Install_Endpoint(
+ array(
+ 'description' => 'Install a theme to your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:1:install',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes/%s/install',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$theme' => '(int|string) The theme slug to install',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/install'
-) );
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/install',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-delete-endpoint.php' );
// POST /sites/%s/themes/%s/delete
-new Jetpack_JSON_API_Themes_Delete_Endpoint( array(
- 'description' => 'Delete/Uninstall a theme from your jetpack blog',
- 'group' => '__do_not_document',
- 'stat' => 'themes:1:delete',
- 'method' => 'POST',
- 'path' => '/sites/%s/themes/%s/delete',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$theme' => '(string) The slug of the theme to delete',
- ),
- 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Themes_Delete_Endpoint(
+ array(
+ 'description' => 'Delete/Uninstall a theme from your jetpack blog',
+ 'group' => '__do_not_document',
+ 'stat' => 'themes:1:delete',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/themes/%s/delete',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$theme' => '(string) The slug of the theme to delete',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/delete'
-) );
+ 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/delete',
+ )
+);
// PLUGINS
@@ -238,71 +263,107 @@ require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-modi
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-endpoint.php' );
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-get-endpoint.php' );
-new Jetpack_JSON_API_Modules_Get_Endpoint( array(
- 'description' => 'Get the info about a Jetpack Module on your Jetpack Site',
- 'method' => 'GET',
- 'path' => '/sites/%s/jetpack/modules/%s/',
- 'stat' => 'jetpack:modules:1',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$module' => '(string) The module name',
- ),
- 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Modules_Get_Endpoint(
+ array(
+ 'description' => 'Get the info about a Jetpack Module on your Jetpack Site',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/jetpack/modules/%s/',
+ 'stat' => 'jetpack:modules:1',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$module' => '(string) The module name',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats'
-) );
+ 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-modify-endpoint.php' );
-new Jetpack_JSON_API_Modules_Modify_Endpoint( array(
- 'description' => 'Modify the status of a Jetpack Module on your Jetpack Site',
- 'method' => 'POST',
- 'path' => '/sites/%s/jetpack/modules/%s/',
- 'stat' => 'jetpack:modules:1',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain',
- '$module' => '(string) The module name',
- ),
- 'request_format' => array(
- 'active' => '(bool) The module activation status',
- ),
- 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format,
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Modules_Modify_Endpoint(
+ array(
+ 'description' => 'Modify the status of a Jetpack Module on your Jetpack Site',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/jetpack/modules/%s/',
+ 'stat' => 'jetpack:modules:1',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ '$module' => '(string) The module name',
),
- 'body' => array(
- 'active' => true,
- )
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats'
-) );
+ 'request_format' => array(
+ 'active' => '(bool) The module activation status',
+ ),
+ 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format,
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ 'body' => array(
+ 'active' => true,
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-list-endpoint.php' );
-new Jetpack_JSON_API_Modules_List_Endpoint( array(
- 'description' => 'Get the list of available Jetpack modules on your site',
- 'method' => 'GET',
- 'path' => '/sites/%s/jetpack/modules',
- 'stat' => 'jetpack:modules',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'response_format' => array(
- 'found' => '(int) The total number of modules found.',
- 'modules' => '(array) An array of module objects.',
- ),
- 'example_request_data' => array(
- 'headers' => array(
- 'authorization' => 'Bearer YOUR_API_TOKEN'
+new Jetpack_JSON_API_Modules_List_Endpoint(
+ array(
+ 'description' => 'Get the list of available Jetpack modules on your site',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/jetpack/modules',
+ 'stat' => 'jetpack:modules',
+ 'min_version' => '1',
+ 'max_version' => '1.1',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
),
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules'
-) );
+ 'response_format' => array(
+ 'found' => '(int) The total number of modules found.',
+ 'modules' => '(array) An array of module objects.',
+ ),
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules',
+ )
+);
+
+require_once $json_jetpack_endpoints_dir . 'class-jetpack-json-api-modules-list-v1-2-endpoint.php';
+
+new Jetpack_JSON_API_Modules_List_V1_2_Endpoint(
+ array(
+ 'description' => 'Get the list of available Jetpack modules on your site',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/jetpack/modules',
+ 'stat' => 'jetpack:modules',
+ 'min_version' => '1.2',
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'response_format' => array(
+ 'modules' => '(array) An array of module objects.',
+ ),
+ 'allow_jetpack_site_auth' => true,
+ 'example_request_data' => array(
+ 'headers' => array(
+ 'authorization' => 'Bearer YOUR_API_TOKEN',
+ ),
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/example.wordpress.org/jetpack/modules',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-updates-status-endpoint.php' );
@@ -434,40 +495,44 @@ new Jetpack_JSON_API_Core_Endpoint( array(
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-sync-endpoint.php' );
// POST /sites/%s/sync
-new Jetpack_JSON_API_Sync_Endpoint( array(
- 'description' => 'Force sync of all options and constants',
- 'method' => 'POST',
- 'path' => '/sites/%s/sync',
- 'stat' => 'sync',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => array(
- 'modules' => '(string) Comma-delimited set of sync modules to use (default: all of them)',
- 'posts' => '(string) Comma-delimited list of post IDs to sync',
- 'comments' => '(string) Comma-delimited list of comment IDs to sync',
- 'users' => '(string) Comma-delimited list of user IDs to sync',
- ),
- 'response_format' => array(
- 'scheduled' => '(bool) Whether or not the synchronisation was started'
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync'
-) );
+new Jetpack_JSON_API_Sync_Endpoint(
+ array(
+ 'description' => 'Force sync of all options and constants',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/sync',
+ 'stat' => 'sync',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'modules' => '(string) Comma-delimited set of sync modules to use (default: all of them)',
+ 'posts' => '(string) Comma-delimited list of post IDs to sync',
+ 'comments' => '(string) Comma-delimited list of comment IDs to sync',
+ 'users' => '(string) Comma-delimited list of user IDs to sync',
+ ),
+ 'response_format' => array(
+ 'scheduled' => '(bool) Whether or not the synchronisation was started',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync',
+ )
+);
// GET /sites/%s/sync/status
new Jetpack_JSON_API_Sync_Status_Endpoint(
array(
- 'description' => 'Status of the current full sync or the previous full sync',
- 'method' => 'GET',
- 'path' => '/sites/%s/sync/status',
- 'stat' => 'sync-status',
- 'path_labels' => array(
+ 'description' => 'Status of the current full sync or the previous full sync',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/sync/status',
+ 'stat' => 'sync-status',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
'$site' => '(int|string) The site ID, The site domain',
),
- 'query_parameters' => array(
+ 'query_parameters' => array(
'fields' => '(string|null) List of comma-separated fields to return (see `response_format`).',
),
- 'response_format' => array(
+ 'response_format' => array(
'posts_checksum' => '(string|null) Posts checksum. Needs to be requested using the filter parameter.',
'comments_checksum' => '(string|null) Comments checksum. Needs to be requested using the filter parameter.',
'post_meta_checksum' => '(string|null) Post Meta checksum. Needs to be requested using the filter parameter.',
@@ -489,54 +554,85 @@ new Jetpack_JSON_API_Sync_Status_Endpoint(
'cron_size' => '(int) Size of the current cron array',
'next_cron' => '(int) The number of seconds till the next item in cron.',
'progress' => '(array) Full Sync status by module',
+ 'debug_details' => '(array) Details as to why Sync is disabled.',
),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/status',
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/status',
)
);
// GET /sites/%s/data-checksums
-new Jetpack_JSON_API_Sync_Check_Endpoint( array(
- 'description' => 'Check that cacheable data on the site is in sync with wordpress.com',
- 'group' => '__do_not_document',
- 'method' => 'GET',
- 'path' => '/sites/%s/data-checksums',
- 'stat' => 'data-checksums',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'response_format' => array(
- 'posts' => '(string) Posts checksum',
- 'comments' => '(string) Comments checksum',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/data-checksums'
-) );
+new Jetpack_JSON_API_Sync_Check_Endpoint(
+ array(
+ 'description' => 'Check that cacheable data on the site is in sync with wordpress.com',
+ 'group' => '__do_not_document',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/data-checksums',
+ 'stat' => 'data-checksums',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'response_format' => array(
+ 'posts' => '(string) Posts checksum',
+ 'comments' => '(string) Comments checksum',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/data-checksums',
+ )
+);
// GET /sites/%s/data-histogram
-new Jetpack_JSON_API_Sync_Histogram_Endpoint( array(
- 'description' => 'Get a histogram of checksums for certain synced data',
- 'group' => '__do_not_document',
- 'method' => 'GET',
- 'path' => '/sites/%s/data-histogram',
- 'stat' => 'data-histogram',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'query_parameters' => array(
- 'object_type' => '(string=posts) The type of object to checksum - posts, comments or options',
- 'buckets' => '(int=10) The number of buckets for the checksums',
- 'start_id' => '(int=0) Starting ID for the range',
- 'end_id' => '(int=null) Ending ID for the range',
- 'columns' => '(string) Columns to checksum',
- 'strip_non_ascii' => '(bool=true) Strip non-ascii characters from all columns',
- 'shared_salt' => '(string) Salt to reduce the collision and improve validation',
- ),
- 'response_format' => array(
- 'histogram' => '(array) Associative array of histograms by ID range, e.g. "500-999" => "abcd1234"',
- 'type' => '(string) Type of checksum algorithm',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/data-histogram'
-) );
+new Jetpack_JSON_API_Sync_Histogram_Endpoint(
+ array(
+ 'description' => 'Get a histogram of checksums for certain synced data',
+ 'group' => '__do_not_document',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/data-histogram',
+ 'stat' => 'data-histogram',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'query_parameters' => array(
+ 'object_type' => '(string=posts) The type of object to checksum - posts, comments or options',
+ 'buckets' => '(int=10) The number of buckets for the checksums',
+ 'start_id' => '(int=0) Starting ID for the range',
+ 'end_id' => '(int=null) Ending ID for the range',
+ 'columns' => '(string) Columns to checksum',
+ 'strip_non_ascii' => '(bool=true) Strip non-ascii characters from all columns',
+ 'shared_salt' => '(string) Salt to reduce the collision and improve validation',
+ 'only_range_edges' => '(bool=false) Only return the edges of the specified range',
+ 'detailed_drilldown' => '(bool=false) Return a detailed drilldown in `key => checksum` format',
+ ),
+ 'response_format' => array(
+ 'histogram' => '(array) Associative array of histograms by ID range, e.g. "500-999" => "abcd1234"',
+ 'type' => '(string) Type of checksum algorithm',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/data-histogram',
+ )
+);
+
+// POST /sites/%s/sync/health .
+new Jetpack_JSON_API_Sync_Modify_Health_Endpoint(
+ array(
+ 'description' => 'Update sync health',
+ 'method' => 'POST',
+ 'group' => '__do_not_document',
+ 'path' => '/sites/%s/sync/health',
+ 'stat' => 'write-sync-health',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'status' => '(string) Sync Health Status of site',
+ ),
+ 'response_format' => array(
+ 'response' => '(string) Current Sync Health ',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/health',
+ )
+);
$sync_settings_response = array(
'dequeue_max_bytes' => '(int|bool=false) Maximum bytes to read from queue in a single request',
@@ -551,6 +647,7 @@ $sync_settings_response = array(
'post_meta_whitelist' => '(array|string|bool=false) List of post meta to be included in sync. Send "empty" to unset.',
'comment_meta_whitelist' => '(array|string|bool=false) List of comment meta to be included in sync. Send "empty" to unset.',
'disable' => '(int|bool=false) Set to 1 or true to disable sync entirely.',
+ 'checksum_disable' => '(int|bool=false) Set to 1 or true to disable checksums entirely.',
'render_filtered_content' => '(int|bool=true) Set to 1 or true to render filtered content.',
'max_enqueue_full_sync' => '(int|bool=false) Maximum number of rows to enqueue during each full sync process',
'max_queue_size_full_sync' => '(int|bool=false) Maximum queue size that full sync is allowed to use',
@@ -563,161 +660,186 @@ $sync_settings_response = array(
);
// GET /sites/%s/sync/settings
-new Jetpack_JSON_API_Sync_Get_Settings_Endpoint( array(
- 'description' => 'Update sync settings',
- 'method' => 'GET',
- 'group' => '__do_not_document',
- 'path' => '/sites/%s/sync/settings',
- 'stat' => 'write-sync-settings',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'response_format' => $sync_settings_response,
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/settings'
-) );
+new Jetpack_JSON_API_Sync_Get_Settings_Endpoint(
+ array(
+ 'description' => 'Update sync settings',
+ 'method' => 'GET',
+ 'group' => '__do_not_document',
+ 'path' => '/sites/%s/sync/settings',
+ 'stat' => 'write-sync-settings',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'response_format' => $sync_settings_response,
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/settings',
+ )
+);
// POST /sites/%s/sync/settings
-new Jetpack_JSON_API_Sync_Modify_Settings_Endpoint( array(
- 'description' => 'Update sync settings',
- 'method' => 'POST',
- 'group' => '__do_not_document',
- 'path' => '/sites/%s/sync/settings',
- 'stat' => 'write-sync-settings',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => $sync_settings_response,
- 'response_format' => $sync_settings_response,
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/settings'
-) );
+new Jetpack_JSON_API_Sync_Modify_Settings_Endpoint(
+ array(
+ 'description' => 'Update sync settings',
+ 'method' => 'POST',
+ 'group' => '__do_not_document',
+ 'path' => '/sites/%s/sync/settings',
+ 'stat' => 'write-sync-settings',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => $sync_settings_response,
+ 'response_format' => $sync_settings_response,
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/settings',
+ )
+);
// GET /sites/%s/sync/object
-new Jetpack_JSON_API_Sync_Object( array(
- 'description' => 'Get an object by ID from one of the sync modules, in the format it would be synced in',
- 'group' => '__do_not_document',
- 'method' => 'GET',
- 'path' => '/sites/%s/sync/object',
- 'stat' => 'sync-object',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'query_parameters' => array(
- 'module_name' => '(string) The sync module ID, e.g. "posts"',
- 'object_type' => '(string) An identified for the object type, e.g. "post"',
- 'object_ids' => '(array) The IDs of the objects',
- ),
- 'response_format' => array(
- 'objects' => '(string) The encoded objects',
- 'codec' => '(string) The codec used to encode the objects, deflate-json-array or simple'
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/object?module_name=posts&object_type=post&object_ids[]=1&object_ids[]=2&object_ids[]=3'
-) );
+new Jetpack_JSON_API_Sync_Object(
+ array(
+ 'description' => 'Get an object by ID from one of the sync modules, in the format it would be synced in',
+ 'group' => '__do_not_document',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/sync/object',
+ 'stat' => 'sync-object',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'query_parameters' => array(
+ 'module_name' => '(string) The sync module ID, e.g. "posts"',
+ 'object_type' => '(string) An identified for the object type, e.g. "post"',
+ 'object_ids' => '(array) The IDs of the objects',
+ ),
+ 'response_format' => array(
+ 'objects' => '(string) The encoded objects',
+ 'codec' => '(string) The codec used to encode the objects, deflate-json-array or simple',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/object?module_name=posts&object_type=post&object_ids[]=1&object_ids[]=2&object_ids[]=3',
+ )
+);
// POST /sites/%s/sync/now
-new Jetpack_JSON_API_Sync_Now_Endpoint( array(
- 'description' => 'Force immediate sync of top items on a queue',
- 'method' => 'POST',
- 'path' => '/sites/%s/sync/now',
- 'stat' => 'sync-now',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => array(
- 'queue' => '(string) sync or full_sync',
- ),
- 'response_format' => array(
- 'response' => '(array) The response from the server'
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/now?queue=full_sync'
-) );
+new Jetpack_JSON_API_Sync_Now_Endpoint(
+ array(
+ 'description' => 'Force immediate sync of top items on a queue',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/sync/now',
+ 'stat' => 'sync-now',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'queue' => '(string) sync or full_sync',
+ ),
+ 'response_format' => array(
+ 'response' => '(array) The response from the server',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/now?queue=full_sync',
+ )
+);
// POST /sites/%s/sync/unlock
-new Jetpack_JSON_API_Sync_Unlock_Endpoint( array(
- 'description' => 'Unlock the queue in case it gets locked by a process.',
- 'method' => 'POST',
- 'path' => '/sites/%s/sync/unlock',
- 'group' => '__do_not_document',
- 'stat' => 'sync-unlock',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => array(
- 'queue' => '(string) sync or full_sync',
- ),
- 'response_format' => array(
- 'success' => '(bool) Unlocking the queue successful?'
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/unlock'
-) );
+new Jetpack_JSON_API_Sync_Unlock_Endpoint(
+ array(
+ 'description' => 'Unlock the queue in case it gets locked by a process.',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/sync/unlock',
+ 'group' => '__do_not_document',
+ 'stat' => 'sync-unlock',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'queue' => '(string) sync or full_sync',
+ ),
+ 'response_format' => array(
+ 'success' => '(bool) Unlocking the queue successful?',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/unlock',
+ )
+);
// GET /sites/%s/sync/object-id-range
-new Jetpack_JSON_API_Sync_Object_Id_Range( array(
- 'description' => 'Gets minimum and maximum object ids for each batch of given batch size.',
- 'method' => 'GET',
- 'path' => '/sites/%s/sync/object-id-range',
- 'group' => '__do_not_document',
- 'stat' => 'sync-object-id-range',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'query_parameters' => array(
- 'batch_size' => '(int=1000) The amount of objects per batch.',
- 'sync_module' => '(string=posts) The sync module used to enumerate the ranges.',
- ),
- 'response_format' => array(
- 'ranges' => '(array) An array of range objects with min and max properties for each batch.',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/object-id-range?batch_size=100&sync_module=comments'
-) );
+new Jetpack_JSON_API_Sync_Object_Id_Range(
+ array(
+ 'description' => 'Gets minimum and maximum object ids for each batch of given batch size.',
+ 'method' => 'GET',
+ 'path' => '/sites/%s/sync/object-id-range',
+ 'group' => '__do_not_document',
+ 'stat' => 'sync-object-id-range',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'query_parameters' => array(
+ 'batch_size' => '(int=1000) The amount of objects per batch.',
+ 'sync_module' => '(string=posts) The sync module used to enumerate the ranges.',
+ ),
+ 'response_format' => array(
+ 'ranges' => '(array) An array of range objects with min and max properties for each batch.',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/object-id-range?batch_size=100&sync_module=comments',
+ )
+);
// POST /sites/%s/sync/checkout
-new Jetpack_JSON_API_Sync_Checkout_Endpoint( array(
- 'description' => 'Locks the queue and returns items and the buffer ID.',
- 'method' => 'POST',
- 'path' => '/sites/%s/sync/checkout',
- 'group' => '__do_not_document',
- 'stat' => 'sync-checkout',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => array(
- 'queue' => '(string) sync or full_sync',
- 'number_of_items' => '(int=10) Maximum number of items from the queue to be returned',
- 'encode' => '(bool=true) Use the default encode method',
- 'force' => '(bool=false) Force unlock the queue',
- 'pop' => '(bool=false) Pop from the queue without checkout, use carefully 😱',
- ),
- 'response_format' => array(
- 'buffer_id' => '(string) Buffer ID that we are using',
- 'items' => '(array) Items from the queue that are ready to be processed by the sync server',
- 'skipped_items' => '(array) Skipped item ids',
- 'codec' => '(string) The name of the codec used to encode the data',
- 'sent_timestamp' => '(int) Current timestamp of the server',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/checkout'
-) );
+new Jetpack_JSON_API_Sync_Checkout_Endpoint(
+ array(
+ 'description' => 'Locks the queue and returns items and the buffer ID.',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/sync/checkout',
+ 'group' => '__do_not_document',
+ 'stat' => 'sync-checkout',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'queue' => '(string) sync or full_sync',
+ 'number_of_items' => '(int=10) Maximum number of items from the queue to be returned',
+ 'encode' => '(bool=true) Use the default encode method',
+ 'force' => '(bool=false) Force unlock the queue',
+ 'pop' => '(bool=false) Pop from the queue without checkout, use carefully 😱',
+ ),
+ 'response_format' => array(
+ 'buffer_id' => '(string) Buffer ID that we are using',
+ 'items' => '(array) Items from the queue that are ready to be processed by the sync server',
+ 'skipped_items' => '(array) Skipped item ids',
+ 'codec' => '(string) The name of the codec used to encode the data',
+ 'sent_timestamp' => '(int) Current timestamp of the server',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/checkout',
+ )
+);
// POST /sites/%s/sync/close
-new Jetpack_JSON_API_Sync_Close_Endpoint( array(
- 'description' => 'Closes the buffer and delete the processed items from the queue.',
- 'method' => 'POST',
- 'path' => '/sites/%s/sync/close',
- 'group' => '__do_not_document',
- 'stat' => 'sync-close',
- 'path_labels' => array(
- '$site' => '(int|string) The site ID, The site domain'
- ),
- 'request_format' => array(
- 'item_ids' => '(array) Item IDs to delete from the queue.',
- 'queue' => '(string) sync or full_sync',
- 'buffer_id' => '(string) buffer ID that was opened during the checkout step.',
- ),
- 'response_format' => array(
- 'success' => '(bool) Closed the buffer successfully?'
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/close'
-) );
+new Jetpack_JSON_API_Sync_Close_Endpoint(
+ array(
+ 'description' => 'Closes the buffer and delete the processed items from the queue.',
+ 'method' => 'POST',
+ 'path' => '/sites/%s/sync/close',
+ 'group' => '__do_not_document',
+ 'stat' => 'sync-close',
+ 'allow_jetpack_site_auth' => true,
+ 'path_labels' => array(
+ '$site' => '(int|string) The site ID, The site domain',
+ ),
+ 'request_format' => array(
+ 'item_ids' => '(array) Item IDs to delete from the queue.',
+ 'queue' => '(string) sync or full_sync',
+ 'buffer_id' => '(string) buffer ID that was opened during the checkout step.',
+ 'continue' => '(bool=false) Perform another checkout from queue.',
+ ),
+ 'response_format' => array(
+ 'success' => '(bool) Closed the buffer successfully?',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync/close',
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-log-endpoint.php' );
@@ -829,58 +951,64 @@ new Jetpack_JSON_API_Translations_Modify_Endpoint( array(
// Options
require_once( $json_jetpack_endpoints_dir . 'class.wpcom-json-api-get-option-endpoint.php' );
-new WPCOM_JSON_API_Get_Option_Endpoint( array (
- 'method' => 'GET',
- 'description' => 'Fetches an option.',
- 'group' => '__do_not_document',
- 'stat' => 'option',
- 'path' => '/sites/%s/option',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
- 'query_parameters' => array(
- 'option_name' => '(string) The name of the option to fetch.',
- 'site_option' => '(bool=false) True if the option is a site option.',
- ),
- 'response_format' => array(
- 'option_value' => '(string|object) The value of the option.',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option?option_name=blogname',
- 'example_request_data' => array(
- 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
- ),
-) );
+new WPCOM_JSON_API_Get_Option_Endpoint(
+ array(
+ 'method' => 'GET',
+ 'description' => 'Fetches an option.',
+ 'group' => '__do_not_document',
+ 'stat' => 'option',
+ 'allow_jetpack_site_auth' => true,
+ 'path' => '/sites/%s/option',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
+ ),
+ 'query_parameters' => array(
+ 'option_name' => '(string) The name of the option to fetch.',
+ 'site_option' => '(bool=false) True if the option is a site option.',
+ ),
+ 'response_format' => array(
+ 'option_value' => '(string|object) The value of the option.',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option?option_name=blogname',
+ 'example_request_data' => array(
+ 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
+ ),
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.wpcom-json-api-update-option-endpoint.php' );
-new WPCOM_JSON_API_Update_Option_Endpoint( array (
- 'method' => 'POST',
- 'description' => 'Updates an option.',
- 'group' => '__do_not_document',
- 'stat' => 'option:update',
- 'path' => '/sites/%s/option',
- 'path_labels' => array(
- '$site' => '(int|string) Site ID or domain',
- ),
- 'query_parameters' => array(
- 'option_name' => '(string) The name of the option to fetch.',
- 'site_option' => '(bool=false) True if the option is a site option.',
- 'is_array' => '(bool=false) True if the value should be converted to an array before saving.',
- ),
- 'request_format' => array(
- 'option_value' => '(string|object) The new value of the option.',
- ),
- 'response_format' => array(
- 'option_value' => '(string|object) The value of the updated option.',
- ),
- 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option',
- 'example_request_data' => array(
- 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
- 'body' => array(
- 'option_value' => 'My new blog name'
+new WPCOM_JSON_API_Update_Option_Endpoint(
+ array(
+ 'method' => 'POST',
+ 'description' => 'Updates an option.',
+ 'group' => '__do_not_document',
+ 'stat' => 'option:update',
+ 'allow_jetpack_site_auth' => true,
+ 'path' => '/sites/%s/option',
+ 'path_labels' => array(
+ '$site' => '(int|string) Site ID or domain',
),
- ),
-) );
+ 'query_parameters' => array(
+ 'option_name' => '(string) The name of the option to fetch.',
+ 'site_option' => '(bool=false) True if the option is a site option.',
+ 'is_array' => '(bool=false) True if the value should be converted to an array before saving.',
+ ),
+ 'request_format' => array(
+ 'option_value' => '(string|object) The new value of the option.',
+ ),
+ 'response_format' => array(
+ 'option_value' => '(string|object) The value of the updated option.',
+ ),
+ 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option',
+ 'example_request_data' => array(
+ 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ),
+ 'body' => array(
+ 'option_value' => 'My new blog name',
+ ),
+ ),
+ )
+);
require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-cron-endpoint.php' );
diff --git a/plugins/jetpack/load-jetpack.php b/plugins/jetpack/load-jetpack.php
index 148b09de..fa7ba5af 100644
--- a/plugins/jetpack/load-jetpack.php
+++ b/plugins/jetpack/load-jetpack.php
@@ -2,7 +2,7 @@
/**
* Load all Jetpack files that do not get loaded via the autoloader.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -40,11 +40,9 @@ add_filter( 'jetpack_should_use_minified_assets', 'jetpack_should_use_minified_a
// @todo: Abstract out the admin functions, and only include them if is_admin()
require_once JETPACK__PLUGIN_DIR . 'class.jetpack.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-network.php';
-require_once JETPACK__PLUGIN_DIR . 'class.jetpack-data.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-client-server.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-user-agent.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-post-images.php';
-require_once JETPACK__PLUGIN_DIR . 'class.jetpack-error.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-heartbeat.php';
require_once JETPACK__PLUGIN_DIR . 'class.photon.php';
require_once JETPACK__PLUGIN_DIR . 'functions.photon.php';
@@ -56,9 +54,22 @@ require_once JETPACK__PLUGIN_DIR . 'require-lib.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-autoupdate.php';
require_once JETPACK__PLUGIN_DIR . 'class.frame-nonce-preview.php';
require_once JETPACK__PLUGIN_DIR . 'modules/module-headings.php';
-require_once JETPACK__PLUGIN_DIR . 'class.jetpack-idc.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-connection-banner.php';
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-plan.php';
+// Used by the API endpoints.
+require_once JETPACK__PLUGIN_DIR . 'modules/seo-tools/class-jetpack-seo-utils.php';
+require_once JETPACK__PLUGIN_DIR . 'modules/seo-tools/class-jetpack-seo-titles.php';
+require_once JETPACK__PLUGIN_DIR . 'modules/seo-tools/class-jetpack-seo-posts.php';
+require_once JETPACK__PLUGIN_DIR . 'modules/verification-tools/verification-tools-utils.php';
+
+require_once JETPACK__PLUGIN_DIR . 'class-jetpack-xmlrpc-methods.php';
+Jetpack_XMLRPC_Methods::init();
+
+require_once JETPACK__PLUGIN_DIR . 'class-jetpack-connection-status.php';
+Jetpack_Connection_Status::init();
+
+jetpack_require_lib( 'class-jetpack-recommendations' );
+require_once JETPACK__PLUGIN_DIR . 'class-jetpack-recommendations-banner.php';
if ( is_admin() ) {
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php';
@@ -73,14 +84,8 @@ if ( defined( 'WP_CLI' ) && WP_CLI ) {
require_once JETPACK__PLUGIN_DIR . '_inc/lib/class.core-rest-api-endpoints.php';
add_action( 'updating_jetpack_version', array( 'Jetpack', 'do_version_bump' ), 10, 2 );
-add_action( 'init', array( 'Jetpack', 'init' ) );
-add_filter( 'jetpack_static_url', array( 'Jetpack', 'staticize_subdomain' ) );
add_filter( 'is_jetpack_site', '__return_true' );
-if ( JETPACK__SANDBOX_DOMAIN ) {
- require_once JETPACK__PLUGIN_DIR . '_inc/jetpack-server-sandbox.php';
-}
-
require_once JETPACK__PLUGIN_DIR . '3rd-party/3rd-party.php';
Jetpack::init();
diff --git a/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php b/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php
new file mode 100644
index 00000000..080cf508
--- /dev/null
+++ b/plugins/jetpack/modules/calypsoify/class-jetpack-calypsoify.php
@@ -0,0 +1,226 @@
+<?php
+/**
+ * This is Calypso skin of the wp-admin interface that is conditionally triggered via the ?calypsoify=1 param.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Status;
+
+/**
+ * Class Jetpack_Calypsoify
+ */
+class Jetpack_Calypsoify {
+
+ /**
+ * Singleton instance of `Jetpack_Calypsoify`.
+ *
+ * @var object
+ */
+ public static $instance = false;
+
+ /**
+ * Is Calypsoify enabled, based on any value of `calypsoify` user meta.
+ *
+ * @var bool
+ */
+ public $is_calypsoify_enabled = false;
+
+ /**
+ * Jetpack_Calypsoify constructor.
+ */
+ private function __construct() {
+ add_action( 'admin_init', array( $this, 'setup' ), 4 );
+ }
+
+ /**
+ * Original singleton.
+ *
+ * @todo We need to leave this in place until wpcomsh is updated. wpcomsh can be updated once 9.3.0 is stable.
+ *
+ * Deprecated 9.3.0
+ *
+ * @return Jetpack_Calypsoify
+ */
+ public static function getInstance() { //phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
+ _deprecated_function( __METHOD__, 'Jetpack 9.3.0', 'Jetpack_Calypsoify::get_instance' );
+ return self::get_instance();
+ }
+
+ /**
+ * Singleton.
+ *
+ * @return Jetpack_Calypsoify
+ */
+ public static function get_instance() {
+ if ( ! self::$instance ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Setup function that is loaded on the `wp_loaded` hook via the constructor.
+ */
+ public function setup() {
+ $this->is_calypsoify_enabled = isset( $_GET['calypsoify'] ) && 1 === (int) $_GET['calypsoify'] && $this->is_page_gutenberg(); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+
+ $this->check_meta();
+
+ if ( $this->is_calypsoify_enabled ) {
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_for_gutenberg' ), 100 );
+ }
+ }
+
+ /**
+ * Enqueues scripts, data, and styles for Gutenberg.
+ */
+ public function enqueue_for_gutenberg() {
+ $site_suffix = ( new Status() )->get_site_suffix();
+ wp_enqueue_style( 'calypsoify_wpadminmods_css', plugin_dir_url( __FILE__ ) . 'style-gutenberg.min.css', false, JETPACK__VERSION );
+ wp_style_add_data( 'calypsoify_wpadminmods_css', 'rtl', 'replace' );
+ wp_style_add_data( 'calypsoify_wpadminmods_css', 'suffix', '.min' );
+
+ wp_enqueue_script( 'calypsoify_wpadminmods_js', plugin_dir_url( __FILE__ ) . 'mods-gutenberg.js', false, JETPACK__VERSION, false );
+ wp_localize_script(
+ 'calypsoify_wpadminmods_js',
+ 'calypsoifyGutenberg',
+ array(
+ 'closeUrl' => $this->get_close_gutenberg_url(),
+ 'manageReusableBlocksUrl' => $this->get_calypso_origin() . '/types/wp_block/' . $site_suffix,
+ 'createNewPostUrl' => $this->get_calypso_origin() . '/post/' . $site_suffix,
+ )
+ );
+ }
+
+ /**
+ * Returns the Calypso domain that originated the current request.
+ *
+ * @return string
+ */
+ private function get_calypso_origin() {
+ $origin = ! empty( $_GET['origin'] ) ? $_GET['origin'] : 'https://wordpress.com'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $allowed = array(
+ 'http://calypso.localhost:3000',
+ 'http://127.0.0.1:41050', // Desktop App.
+ 'https://wpcalypso.wordpress.com',
+ 'https://horizon.wordpress.com',
+ 'https://wordpress.com',
+ );
+ return in_array( $origin, $allowed, true ) ? $origin : 'https://wordpress.com';
+ }
+
+ /**
+ * Returns the Calypso URL that displays either the current post type list (if no args
+ * are supplied) or the classic editor for the current post (if a post ID is supplied).
+ *
+ * @param int|null $post_id Post ID.
+ *
+ * @return string
+ */
+ public function get_calypso_url( $post_id = null ) {
+ $screen = get_current_screen();
+ $post_type = $screen->post_type;
+ $site_suffix = ( new Status() )->get_site_suffix();
+
+ if ( is_null( $post_id ) ) {
+ // E.g. posts or pages have no special suffix. CPTs are in the `types/{cpt}` format.
+ $post_type_suffix = ( 'post' === $post_type || 'page' === $post_type )
+ ? "/${post_type}s/"
+ : "/types/${post_type}/";
+ $post_suffix = '';
+ } else {
+ $post_type_suffix = ( 'post' === $post_type || 'page' === $post_type )
+ ? "/${post_type}/"
+ : "/edit/${post_type}/";
+ $post_suffix = "/${post_id}";
+ }
+
+ return $this->get_calypso_origin() . $post_type_suffix . $site_suffix . $post_suffix;
+ }
+
+ /**
+ * Returns the URL to be used on the block editor close button for going back to the
+ * Calypso post list.
+ *
+ * @return string
+ */
+ public function get_close_gutenberg_url() {
+ return $this->get_calypso_url();
+ }
+
+ /**
+ * Returns the URL for switching the user's editor to the Calypso (WordPress.com Classic) editor.
+ *
+ * @return string
+ */
+ public function get_switch_to_classic_editor_url() {
+ return add_query_arg(
+ 'set-editor',
+ 'classic',
+ $this->is_calypsoify_enabled ? $this->get_calypso_url( get_the_ID() ) : false
+ );
+ }
+
+ /**
+ * Checks if the calypsoify user meta value is set, and deletes it if it is.
+ * This is to ensure that Calypsoify is not activated without the URL parameter.
+ */
+ public function check_meta() {
+ if ( ! empty( get_user_meta( get_current_user_id(), 'calypsoify', true ) ) ) {
+ delete_user_meta( get_current_user_id(), 'calypsoify' );
+ }
+ }
+
+ /**
+ * Return whether a post type should display the Gutenberg/block editor.
+ *
+ * @since 6.7.0
+ *
+ * @param string $post_type Post type.
+ */
+ public function is_post_type_gutenberg( $post_type ) {
+ return use_block_editor_for_post_type( $post_type );
+ }
+
+ /**
+ * Determines if the page is an instance of the Gutenberg block editor.
+ *
+ * @return bool
+ */
+ public function is_page_gutenberg() {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ // Disabling WordPress.Security.NonceVerification.Recommended because this function fires within admin_init and this is only changing display.
+ $page = wp_basename( esc_url( $_SERVER['REQUEST_URI'] ) );
+
+ if ( false !== strpos( $page, 'post-new.php' ) && empty( $_GET['post_type'] ) ) {
+ return true;
+ }
+
+ if ( false !== strpos( $page, 'post-new.php' ) && isset( $_GET['post_type'] ) && $this->is_post_type_gutenberg( $_GET['post_type'] ) ) {
+ return true;
+ }
+
+ if ( false !== strpos( $page, 'post.php' ) ) {
+ $post = get_post( $_GET['post'] );
+ if ( isset( $post ) && isset( $post->post_type ) && $this->is_post_type_gutenberg( $post->post_type ) ) {
+ return true;
+ }
+ }
+
+ if ( false !== strpos( $page, 'revision.php' ) ) {
+ $post = get_post( $_GET['revision'] );
+ $parent = get_post( $post->post_parent );
+ if ( isset( $parent ) && isset( $parent->post_type ) && $this->is_post_type_gutenberg( $parent->post_type ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ // phpcs:enable
+ }
+
+}
+
+Jetpack_Calypsoify::get_instance();
diff --git a/plugins/jetpack/modules/calypsoify/mods-gutenberg.js b/plugins/jetpack/modules/calypsoify/mods-gutenberg.js
index 06b7b015..0a42bdb7 100644
--- a/plugins/jetpack/modules/calypsoify/mods-gutenberg.js
+++ b/plugins/jetpack/modules/calypsoify/mods-gutenberg.js
@@ -1,7 +1,7 @@
/* eslint-disable no-var */
/* global wp, calypsoifyGutenberg */
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
if (
wp &&
wp.data &&
@@ -11,17 +11,29 @@ jQuery( function( $ ) {
wp.data.dispatch( 'core/edit-post' ).toggleFeature( 'fullscreenMode' );
}
- var editPostHeaderInception = setInterval( function() {
- var $closeButton = $( '.edit-post-fullscreen-mode-close__toolbar a' );
- if ( $closeButton.length < 1 ) {
+ var editPostHeaderInception = setInterval( function () {
+ // Legacy selector for Gutenberg plugin < v7.7
+ var legacyButton = $( '.edit-post-fullscreen-mode-close__toolbar a' );
+ // Updated selector for Gutenberg plugin => v7.7
+ var newButton = $( '.edit-post-header .edit-post-fullscreen-mode-close' );
+
+ var hasLegacyButton = legacyButton && legacyButton.length;
+ var hasNewButton = newButton && newButton.length;
+
+ // Keep trying until we find one of the close buttons.
+ if ( ! ( hasLegacyButton || hasNewButton ) ) {
return;
}
clearInterval( editPostHeaderInception );
- $closeButton.attr( 'href', calypsoifyGutenberg.closeUrl );
+ var theButton = legacyButton;
+ if ( hasNewButton ) {
+ theButton = newButton;
+ }
+ theButton.attr( 'href', calypsoifyGutenberg.closeUrl );
} );
- $( 'body.revision-php a' ).each( function() {
+ $( 'body.revision-php a' ).each( function () {
var href = $( this ).attr( 'href' );
$( this ).attr( 'href', href.replace( '&classic-editor', '' ) );
} );
diff --git a/plugins/jetpack/modules/calypsoify/mods.js b/plugins/jetpack/modules/calypsoify/mods.js
index 4af41a72..a253b1d2 100644
--- a/plugins/jetpack/modules/calypsoify/mods.js
+++ b/plugins/jetpack/modules/calypsoify/mods.js
@@ -1,23 +1,17 @@
/* global pagenow, ajaxurl, CalypsoifyOpts */
-( function( $ ) {
- $( window ).load( function() {
+( function ( $ ) {
+ $( window ).load( function () {
// On Plugins.php
if ( 'plugins' === pagenow ) {
// pagenow === $current_screen->id
// Remove | and () from the plugins filter bar
- $.each( $( 'ul.subsubsub li' ), function( i, el ) {
+ $.each( $( 'ul.subsubsub li' ), function ( i, el ) {
var li = $( el );
- li.html(
- li
- .html()
- .replace( '|', '' )
- .replace( '(', '' )
- .replace( ')', '' )
- );
+ li.html( li.html().replace( '|', '' ).replace( '(', '' ).replace( ')', '' ) );
} );
// Add in the AJAX-y goodness for toggling autoupdates.
- $( 'input.autoupdate-toggle' ).change( function( event ) {
+ $( 'input.autoupdate-toggle' ).change( function ( event ) {
var el = event.target;
el.disabled = true;
@@ -32,7 +26,7 @@
active: el.checked,
_wpnonce: CalypsoifyOpts.nonces.autoupdate_plugins,
},
- function() {
+ function () {
// Add something to test and confirm that `el.dataset.slug` is missing from `response.data` ?
el.disabled = false;
el.classList.remove( 'is-toggling' );
@@ -41,18 +35,14 @@
} );
}
- $( '#wp-admin-bar-root-default' ).on( 'click', 'li', function( event ) {
- location.href = $( event.target )
- .closest( 'a' )
- .attr( 'href' );
+ $( '#wp-admin-bar-root-default' ).on( 'click', 'li', function ( event ) {
+ location.href = $( event.target ).closest( 'a' ).attr( 'href' );
} );
- $( '#wp-admin-bar-top-secondary' ).on( 'click', 'li#wp-admin-bar-my-account', function(
+ $( '#wp-admin-bar-top-secondary' ).on( 'click', 'li#wp-admin-bar-my-account', function (
event
) {
- location.href = $( event.target )
- .closest( 'a' )
- .attr( 'href' );
+ location.href = $( event.target ).closest( 'a' ).attr( 'href' );
} );
if ( document && document.location && document.location.search ) {
@@ -79,8 +69,8 @@
}
}
- body.on( 'thickbox:iframe:loaded', function() {
- $( '#TB_window' ).on( 'click', 'button#TB_closeWindowButton', function() {
+ body.on( 'thickbox:iframe:loaded', function () {
+ $( '#TB_window' ).on( 'click', 'button#TB_closeWindowButton', function () {
$( '#TB_closeWindowButton' ).click();
} );
} );
diff --git a/plugins/jetpack/modules/calypsoify/style-gutenberg-rtl.min.css b/plugins/jetpack/modules/calypsoify/style-gutenberg-rtl.min.css
index df50e909..8c771d0a 100644
--- a/plugins/jetpack/modules/calypsoify/style-gutenberg-rtl.min.css
+++ b/plugins/jetpack/modules/calypsoify/style-gutenberg-rtl.min.css
@@ -1,4 +1,3 @@
/* Do not modify this file directly. It is compiled SASS code. */
-.components-button.is-default{color:#3c434a;border-color:#c3c4c7;background:#fff;box-shadow:none;border-width:1px 1px 2px}.components-button.is-default:hover{background:#fff;border-color:#a7aaad;box-shadow:none;color:#3c434a}.components-button.is-default:focus:enabled{background:#fff;color:#3c434a;border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.components-button.is-default:active:enabled{background:#fff;border-color:#c3c4c7;border-width:2px 1px 1px;box-shadow:none}.components-button.is-default:disabled,.components-button.is-default[aria-disabled='true']{color:#646970;background-color:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary{background:#c9356e;border-color:#8c1749;box-shadow:none;color:#fff;text-shadow:none}.components-button.is-primary:focus:enabled{background:#e34c84;border-color:#c9356e;color:#fff;box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:hover{box-shadow:none;background:#e34c84;border-color:#8c1749;color:#fff}.components-button.is-primary:focus:enabled{box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:active:enabled{background:#e34c84;border-color:#8c1749;box-shadow:inset 0 1px 0 #8c1749}.components-button.is-primary:disabled,.components-button.is-primary[aria-disabled='true']{color:#646970;background:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary:disabled:hover,.components-button.is-primary:disabled:focus,.components-button.is-primary:disabled:active,.components-button.is-primary[aria-disabled='true']:hover,.components-button.is-primary[aria-disabled='true']:focus,.components-button.is-primary[aria-disabled='true']:active{color:#646970;background-color:#fff;border-color:#646970;box-shadow:none}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled='true']{background-image:linear-gradient(45deg, #c9356e 28%, #ab235a 28%, #ab235a 72%, #c9356e 72%);border-color:#8c1749}.components-button.is-link{color:#2271b1}.components-button.is-link:hover,.components-button.is-link:active{color:#0a4b78}.components-button.is-link:focus{color:#0a4b78;box-shadow:0 0 0 2px #5198d9}.components-button.is-link.is-destructive{color:#e65054}.components-button.is-busy{background-image:repeating-linear-gradient(45deg, #646970, #fff 11px, #fff 10px, #646970 20px)}.components-button.is-tertiary{color:#2271b1}.components-button.is-tertiary:not(:disabled):not([aria-disabled='true']):not(.is-default):hover{color:#0a4b78}.edit-post-more-menu__content .components-menu-group:first-child .components-menu-item__button:last-child{display:none}.edit-post-sidebar__panel-tab.is-active{border-color:#2271b1}.edit-post-sidebar .input-control:focus,.edit-post-sidebar input[type='checkbox']:focus,.edit-post-sidebar input[type='color']:focus,.edit-post-sidebar input[type='date']:focus,.edit-post-sidebar input[type='datetime-local']:focus,.edit-post-sidebar input[type='datetime']:focus,.edit-post-sidebar input[type='email']:focus,.edit-post-sidebar input[type='month']:focus,.edit-post-sidebar input[type='number']:focus,.edit-post-sidebar input[type='password']:focus,.edit-post-sidebar input[type='radio']:focus,.edit-post-sidebar input[type='search']:focus,.edit-post-sidebar input[type='tel']:focus,.edit-post-sidebar input[type='text']:focus,.edit-post-sidebar input[type='time']:focus,.edit-post-sidebar input[type='url']:focus,.edit-post-sidebar input[type='week']:focus,.edit-post-sidebar select:focus,.edit-post-sidebar textarea:focus{border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.edit-post-sidebar input[type='checkbox']:checked{background:#2271b1;border-color:#2271b1}a{color:#2271b1}a:active,a:hover{color:#0a4b78}a:focus{color:#0a4b78;box-shadow:none;outline:thin dotted}.wp-toolbar .revision-php{margin-top:-32px}.revision-php{background:#f6f7f7}.revision-php #wpadminbar,.revision-php #adminmenumain,.revision-php #wp-admin-bar-menu-toggle{display:none}.revision-php #wpcontent{margin-right:0 !important}.revision-php #wpbody{padding-top:0}.revision-php #screen-meta-links{display:none !important}.revision-php #wpfooter{display:none !important}.revision-tickmarks{margin-top:8px}.revisions-controls{height:118px}.revisions-controls .author-card .avatar{border-radius:50%;height:38px;margin-top:4px;width:38px}.revisions-controls .author-card .author-info{line-height:20px;margin-top:4px}.comparing-two-revisions .revisions-controls{height:176px}.revisions-meta{margin-top:28px}.diff-meta{min-height:46px}.revision-toggle-compare-mode label{vertical-align:top}.revisions-tooltip{transform:translateY(-36px)}
-
+.components-button.is-default{color:#3c434a;border-color:#c3c4c7;background:#fff;box-shadow:none;border-width:1px 1px 2px}.components-button.is-default:hover{background:#fff;border-color:#a7aaad;box-shadow:none;color:#3c434a}.components-button.is-default:focus:enabled{background:#fff;color:#3c434a;border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.components-button.is-default:active:enabled{background:#fff;border-color:#c3c4c7;border-width:2px 1px 1px;box-shadow:none}.components-button.is-default:disabled,.components-button.is-default[aria-disabled=true]{color:#646970;background-color:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary{background:#c9356e;border-color:#8c1749;box-shadow:none;color:#fff;text-shadow:none}.components-button.is-primary:focus:enabled{background:#e34c84;border-color:#c9356e;color:#fff;box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:hover{box-shadow:none;background:#e34c84;border-color:#8c1749;color:#fff}.components-button.is-primary:focus:enabled{box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:active:enabled{background:#e34c84;border-color:#8c1749;box-shadow:inset 0 1px 0 #8c1749}.components-button.is-primary:disabled,.components-button.is-primary[aria-disabled=true]{color:#646970;background:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary:disabled:hover,.components-button.is-primary:disabled:focus,.components-button.is-primary:disabled:active,.components-button.is-primary[aria-disabled=true]:hover,.components-button.is-primary[aria-disabled=true]:focus,.components-button.is-primary[aria-disabled=true]:active{color:#646970;background-color:#fff;border-color:#646970;box-shadow:none}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(45deg, #c9356e 28%, #ab235a 28%, #ab235a 72%, #c9356e 72%);border-color:#8c1749}.components-button.is-link{color:#2271b1}.components-button.is-link:hover,.components-button.is-link:active{color:#0a4b78}.components-button.is-link:focus{color:#0a4b78;box-shadow:0 0 0 2px #5198d9}.components-button.is-link.is-destructive{color:#e65054}.components-button.is-busy{background-image:repeating-linear-gradient(45deg, #646970, #fff 11px, #fff 10px, #646970 20px)}.components-button.is-tertiary{color:#2271b1}.components-button.is-tertiary:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{color:#0a4b78}.edit-post-sidebar__panel-tab.is-active{border-color:#2271b1}.edit-post-sidebar .input-control:focus,.edit-post-sidebar input[type=checkbox]:focus,.edit-post-sidebar input[type=color]:focus,.edit-post-sidebar input[type=date]:focus,.edit-post-sidebar input[type=datetime-local]:focus,.edit-post-sidebar input[type=datetime]:focus,.edit-post-sidebar input[type=email]:focus,.edit-post-sidebar input[type=month]:focus,.edit-post-sidebar input[type=number]:focus,.edit-post-sidebar input[type=password]:focus,.edit-post-sidebar input[type=radio]:focus,.edit-post-sidebar input[type=search]:focus,.edit-post-sidebar input[type=tel]:focus,.edit-post-sidebar input[type=text]:focus,.edit-post-sidebar input[type=time]:focus,.edit-post-sidebar input[type=url]:focus,.edit-post-sidebar input[type=week]:focus,.edit-post-sidebar select:focus,.edit-post-sidebar textarea:focus{border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.edit-post-sidebar input[type=checkbox]:checked{background:#2271b1;border-color:#2271b1}a{color:#2271b1}a:active,a:hover{color:#0a4b78}a:focus{color:#0a4b78;box-shadow:none;outline:thin dotted}.wp-toolbar .revision-php{margin-top:-32px}.revision-php{background:#f6f7f7}.revision-php #wpadminbar,.revision-php #adminmenumain,.revision-php #wp-admin-bar-menu-toggle{display:none}.revision-php #wpcontent{margin-right:0 !important}.revision-php #wpbody{padding-top:0}.revision-php #screen-meta-links{display:none !important}.revision-php #wpfooter{display:none !important}.revision-tickmarks{margin-top:8px}.revisions-controls{height:118px}.revisions-controls .author-card .avatar{border-radius:50%;height:38px;margin-top:4px;width:38px}.revisions-controls .author-card .author-info{line-height:20px;margin-top:4px}.comparing-two-revisions .revisions-controls{height:176px}.revisions-meta{margin-top:28px}.diff-meta{min-height:46px}.revision-toggle-compare-mode label{vertical-align:top}.revisions-tooltip{transform:translateY(-36px)}
/*# sourceMappingURL=style-gutenberg-rtl.min.css.map */
diff --git a/plugins/jetpack/modules/calypsoify/style-gutenberg.min.css b/plugins/jetpack/modules/calypsoify/style-gutenberg.min.css
index 82f3f0c4..157ff68f 100644
--- a/plugins/jetpack/modules/calypsoify/style-gutenberg.min.css
+++ b/plugins/jetpack/modules/calypsoify/style-gutenberg.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is compiled SASS code. */
-.components-button.is-default{color:#3c434a;border-color:#c3c4c7;background:#fff;box-shadow:none;border-width:1px 1px 2px}.components-button.is-default:hover{background:#fff;border-color:#a7aaad;box-shadow:none;color:#3c434a}.components-button.is-default:focus:enabled{background:#fff;color:#3c434a;border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.components-button.is-default:active:enabled{background:#fff;border-color:#c3c4c7;border-width:2px 1px 1px;box-shadow:none}.components-button.is-default:disabled,.components-button.is-default[aria-disabled='true']{color:#646970;background-color:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary{background:#c9356e;border-color:#8c1749;box-shadow:none;color:#fff;text-shadow:none}.components-button.is-primary:focus:enabled{background:#e34c84;border-color:#c9356e;color:#fff;box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:hover{box-shadow:none;background:#e34c84;border-color:#8c1749;color:#fff}.components-button.is-primary:focus:enabled{box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:active:enabled{background:#e34c84;border-color:#8c1749;box-shadow:inset 0 1px 0 #8c1749}.components-button.is-primary:disabled,.components-button.is-primary[aria-disabled='true']{color:#646970;background:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary:disabled:hover,.components-button.is-primary:disabled:focus,.components-button.is-primary:disabled:active,.components-button.is-primary[aria-disabled='true']:hover,.components-button.is-primary[aria-disabled='true']:focus,.components-button.is-primary[aria-disabled='true']:active{color:#646970;background-color:#fff;border-color:#646970;box-shadow:none}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled='true']{background-image:linear-gradient(-45deg, #c9356e 28%, #ab235a 28%, #ab235a 72%, #c9356e 72%);border-color:#8c1749}.components-button.is-link{color:#2271b1}.components-button.is-link:hover,.components-button.is-link:active{color:#0a4b78}.components-button.is-link:focus{color:#0a4b78;box-shadow:0 0 0 2px #5198d9}.components-button.is-link.is-destructive{color:#e65054}.components-button.is-busy{background-image:repeating-linear-gradient(-45deg, #646970, #fff 11px, #fff 10px, #646970 20px)}.components-button.is-tertiary{color:#2271b1}.components-button.is-tertiary:not(:disabled):not([aria-disabled='true']):not(.is-default):hover{color:#0a4b78}.edit-post-more-menu__content .components-menu-group:first-child .components-menu-item__button:last-child{display:none}.edit-post-sidebar__panel-tab.is-active{border-color:#2271b1}.edit-post-sidebar .input-control:focus,.edit-post-sidebar input[type='checkbox']:focus,.edit-post-sidebar input[type='color']:focus,.edit-post-sidebar input[type='date']:focus,.edit-post-sidebar input[type='datetime-local']:focus,.edit-post-sidebar input[type='datetime']:focus,.edit-post-sidebar input[type='email']:focus,.edit-post-sidebar input[type='month']:focus,.edit-post-sidebar input[type='number']:focus,.edit-post-sidebar input[type='password']:focus,.edit-post-sidebar input[type='radio']:focus,.edit-post-sidebar input[type='search']:focus,.edit-post-sidebar input[type='tel']:focus,.edit-post-sidebar input[type='text']:focus,.edit-post-sidebar input[type='time']:focus,.edit-post-sidebar input[type='url']:focus,.edit-post-sidebar input[type='week']:focus,.edit-post-sidebar select:focus,.edit-post-sidebar textarea:focus{border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.edit-post-sidebar input[type='checkbox']:checked{background:#2271b1;border-color:#2271b1}a{color:#2271b1}a:active,a:hover{color:#0a4b78}a:focus{color:#0a4b78;box-shadow:none;outline:thin dotted}.wp-toolbar .revision-php{margin-top:-32px}.revision-php{background:#f6f7f7}.revision-php #wpadminbar,.revision-php #adminmenumain,.revision-php #wp-admin-bar-menu-toggle{display:none}.revision-php #wpcontent{margin-left:0 !important}.revision-php #wpbody{padding-top:0}.revision-php #screen-meta-links{display:none !important}.revision-php #wpfooter{display:none !important}.revision-tickmarks{margin-top:8px}.revisions-controls{height:118px}.revisions-controls .author-card .avatar{border-radius:50%;height:38px;margin-top:4px;width:38px}.revisions-controls .author-card .author-info{line-height:20px;margin-top:4px}.comparing-two-revisions .revisions-controls{height:176px}.revisions-meta{margin-top:28px}.diff-meta{min-height:46px}.revision-toggle-compare-mode label{vertical-align:top}.revisions-tooltip{transform:translateY(-36px)}
+.components-button.is-default{color:#3c434a;border-color:#c3c4c7;background:#fff;box-shadow:none;border-width:1px 1px 2px}.components-button.is-default:hover{background:#fff;border-color:#a7aaad;box-shadow:none;color:#3c434a}.components-button.is-default:focus:enabled{background:#fff;color:#3c434a;border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.components-button.is-default:active:enabled{background:#fff;border-color:#c3c4c7;border-width:2px 1px 1px;box-shadow:none}.components-button.is-default:disabled,.components-button.is-default[aria-disabled=true]{color:#646970;background-color:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary{background:#c9356e;border-color:#8c1749;box-shadow:none;color:#fff;text-shadow:none}.components-button.is-primary:focus:enabled{background:#e34c84;border-color:#c9356e;color:#fff;box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:hover{box-shadow:none;background:#e34c84;border-color:#8c1749;color:#fff}.components-button.is-primary:focus:enabled{box-shadow:0 0 0 2px #eb6594}.components-button.is-primary:active:enabled{background:#e34c84;border-color:#8c1749;box-shadow:inset 0 1px 0 #8c1749}.components-button.is-primary:disabled,.components-button.is-primary[aria-disabled=true]{color:#646970;background:#fff;border-color:#646970;text-shadow:none}.components-button.is-primary:disabled:hover,.components-button.is-primary:disabled:focus,.components-button.is-primary:disabled:active,.components-button.is-primary[aria-disabled=true]:hover,.components-button.is-primary[aria-disabled=true]:focus,.components-button.is-primary[aria-disabled=true]:active{color:#646970;background-color:#fff;border-color:#646970;box-shadow:none}.components-button.is-primary.is-busy,.components-button.is-primary.is-busy:disabled,.components-button.is-primary.is-busy[aria-disabled=true]{background-image:linear-gradient(-45deg, #c9356e 28%, #ab235a 28%, #ab235a 72%, #c9356e 72%);border-color:#8c1749}.components-button.is-link{color:#2271b1}.components-button.is-link:hover,.components-button.is-link:active{color:#0a4b78}.components-button.is-link:focus{color:#0a4b78;box-shadow:0 0 0 2px #5198d9}.components-button.is-link.is-destructive{color:#e65054}.components-button.is-busy{background-image:repeating-linear-gradient(-45deg, #646970, #fff 11px, #fff 10px, #646970 20px)}.components-button.is-tertiary{color:#2271b1}.components-button.is-tertiary:not(:disabled):not([aria-disabled=true]):not(.is-default):hover{color:#0a4b78}.edit-post-sidebar__panel-tab.is-active{border-color:#2271b1}.edit-post-sidebar .input-control:focus,.edit-post-sidebar input[type=checkbox]:focus,.edit-post-sidebar input[type=color]:focus,.edit-post-sidebar input[type=date]:focus,.edit-post-sidebar input[type=datetime-local]:focus,.edit-post-sidebar input[type=datetime]:focus,.edit-post-sidebar input[type=email]:focus,.edit-post-sidebar input[type=month]:focus,.edit-post-sidebar input[type=number]:focus,.edit-post-sidebar input[type=password]:focus,.edit-post-sidebar input[type=radio]:focus,.edit-post-sidebar input[type=search]:focus,.edit-post-sidebar input[type=tel]:focus,.edit-post-sidebar input[type=text]:focus,.edit-post-sidebar input[type=time]:focus,.edit-post-sidebar input[type=url]:focus,.edit-post-sidebar input[type=week]:focus,.edit-post-sidebar select:focus,.edit-post-sidebar textarea:focus{border-color:#2271b1;box-shadow:0 0 0 2px #5198d9}.edit-post-sidebar input[type=checkbox]:checked{background:#2271b1;border-color:#2271b1}a{color:#2271b1}a:active,a:hover{color:#0a4b78}a:focus{color:#0a4b78;box-shadow:none;outline:thin dotted}.wp-toolbar .revision-php{margin-top:-32px}.revision-php{background:#f6f7f7}.revision-php #wpadminbar,.revision-php #adminmenumain,.revision-php #wp-admin-bar-menu-toggle{display:none}.revision-php #wpcontent{margin-left:0 !important}.revision-php #wpbody{padding-top:0}.revision-php #screen-meta-links{display:none !important}.revision-php #wpfooter{display:none !important}.revision-tickmarks{margin-top:8px}.revisions-controls{height:118px}.revisions-controls .author-card .avatar{border-radius:50%;height:38px;margin-top:4px;width:38px}.revisions-controls .author-card .author-info{line-height:20px;margin-top:4px}.comparing-two-revisions .revisions-controls{height:176px}.revisions-meta{margin-top:28px}.diff-meta{min-height:46px}.revision-toggle-compare-mode label{vertical-align:top}.revisions-tooltip{transform:translateY(-36px)} \ No newline at end of file
diff --git a/plugins/jetpack/modules/calypsoify/style-rtl.min.css b/plugins/jetpack/modules/calypsoify/style-rtl.min.css
index 579a65ec..979971fd 100644
--- a/plugins/jetpack/modules/calypsoify/style-rtl.min.css
+++ b/plugins/jetpack/modules/calypsoify/style-rtl.min.css
@@ -1,4 +1,3 @@
/* Do not modify this file directly. It is compiled SASS code. */
-body,#wp-content-editor-tools{background:#f6f7f7}#wpwrap{top:14px}#wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{background-image:none !important;background-color:#eb6594 !important;border:none !important}#adminmenu #collapse-menu,#adminmenu .wp-menu-separator,#screen-meta-links,.wp-submenu,#toplevel_page_jetpack{display:none}.wp-menu-open .wp-submenu{display:block}#adminmenuwrap,#adminmenuback,#adminmenu{background:#fff}#adminmenuback{border-left:1px solid #f6f7f7}#adminmenu,#adminmenuwrap,#adminmenuback,#adminmenu .wp-submenu{width:272px}#adminmenu{margin-top:71px}#adminmenu .wp-submenu{padding:0}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .opensub .wp-submenu,#adminmenu .opensub .wp-submenu:after,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus,#adminmenu li.wp-menu-open{background:transparent}#adminmenu a:hover{background-color:#f6f7f7 !important}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{padding:5px 5px 5px 0}#adminmenu .wp-has-current-submenu ul>li>a{padding:7px 46px 7px 12px;font-size:15px;font-weight:400 !important}#adminmenu a.wp-has-current-submenu:after,#adminmenu>li.current>a.current:after,#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border:none}#adminmenu .dashicons,#adminmenu .dashicons-before:before{width:24px;height:24px;font-size:24px}#adminmenu a{color:#2c3338 !important}#adminmenu li.current>a{background:#e9eff5 !important}#adminmenu div.wp-menu-image:before{color:#646970 !important}#adminmenu li a:hover div.wp-menu-image:before{color:#2c3338 !important}#adminmenu li.current a div.wp-menu-image:before{color:#2271b1 !important}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu{background:transparent}#adminmenu div.wp-menu-image.svg{filter:brightness(0.4)}#adminmenu li a:hover div.wp-menu-image.svg,#adminmenu li.current div.wp-menu-image.svg{filter:brightness(0.25)}#adminmenu li.current div.wp-menu-image:before,#adminmenu li.current a,#adminmenu li.current .wp-menu-name{color:#2271b1 !important}#adminmenu div.wp-menu-name{color:#646970;font-size:15px;padding:9px 41px 8px 0;font-weight:600}#adminmenu li a:hover div.wp-menu-name{color:#2c3338}#adminmenu li.menu-top{min-height:46px}#adminmenu .awaiting-mod,#adminmenu .update-plugins{background-color:#2271b1}.no-js li.wp-has-current-submenu:hover .wp-submenu{background:transparent !important}#wpcontent,#wpfooter{margin-right:272px}#toplevel_page_plugins div.wp-menu-image.svg,#toplevel_page_plugin-install div.wp-menu-image.svg{background-size:24px auto}#toplevel_page_plugins div.wp-menu-image.svg{position:relative;right:-2px}#calypso-sidebar-header{border-bottom:1px solid #646970;position:fixed;top:47px;right:0;width:272px;height:65px;background:#fff;z-index:10000}#calypso-sidebar-header svg{float:right;position:relative;right:10px;top:23px}#calypso-sidebar-header ul{float:right;position:relative;right:15px}#calypso-sidebar-header ul li{margin:0}#calypso-sidebar-header ul li#calypso-sitename{font-size:12px;color:#646970;overflow:hidden;white-space:nowrap;width:225px}@media screen and (max-width: 782px){#calypso-sidebar-header ul li#calypso-sitename{width:150px}}#calypso-sidebar-header ul li#calypso-sitename:after{content:'';display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to left, rgba(255,255,255,0), #fff 90%);top:0px;bottom:0px;left:0px;right:auto;width:20%;height:auto}#calypso-sidebar-header ul li#calypso-plugins{font-weight:bold;color:#2c3338;font-size:16px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .opensub .wp-submenu:after,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:7px 46px 7px 12px;font-size:14px}.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#e9eff5}.folded #adminmenu .wp-submenu .wp-submenu-head{padding:14px 11px 14px 4px}.folded #adminmenu a.menu-top{padding-right:1px}.folded #wpcontent #calypso-sidebar-header{width:36px}.folded #wpcontent #calypso-sidebar-header svg{right:6px}.folded #wpcontent #calypso-sidebar-header ul{display:none}.folded .no-js li.wp-has-current-submenu:hover .wp-submenu{background:#f6f7f7 !important}.folded #toplevel_page_plugins div.wp-menu-image.svg{position:relative;right:-2px}@media only screen and (max-width: 960px){#calypso-sidebar-header{width:36px}#calypso-sidebar-header ul{display:none}#calypso-sidebar-header svg{right:6px}#adminmenu a.menu-top{padding-right:1px}}@media screen and (max-width: 782px){#calypso-sidebar-header{position:absolute;display:none;width:190px;top:-14px}.wp-responsive-open #calypso-sidebar-header{display:block}#calypso-sidebar-header ul{display:block}.auto-fold #adminmenu .wp-menu-name{margin-right:0}.auto-fold #adminmenu{top:-14px}#adminmenu .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#fff !important}.auto-fold #adminmenu li.selected div.wp-menu-image.svg{filter:brightness(100)}.auto-fold #adminmenu li.selected div.wp-menu-image:before,.auto-fold #adminmenu li.selected div.wp-menu-name{color:#2271b1 !important}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{padding:0 15px !important}#wpadminbar li#wp-admin-bar-ab-new-post a{padding:7px 15px !important}}@media screen and (max-width: 600px){#calypso-sidebar-header{top:32px}.auto-fold #adminmenu{top:32px}}@media screen and (max-width: 480px){#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{margin-top:4px !important}#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:6px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{top:-5px !important;margin-right:-12px !important}}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,0.5)}.nav-tab{border:none;background:none;font-weight:400;padding:3px 13px 12px;color:#2271b1}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{background:transparent;box-shadow:none}.nav-tab:first-child{margin-right:0}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active{border-bottom:2px solid #3c434a;color:#2c3338}#wpadminbar{background:#006088;-webkit-box-shadow:none;-mozilla-box-shadow:none;border-bottom:1px solid #0a4b78;height:46px;position:fixed}#wpadminbar .ab-top-menu>li>.ab-item{font-size:14px}#wpadminbar .ab-top-menu>li.hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar *{line-height:46px}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:46px}#wpadminbar .quicklinks>ul>li>a{padding:0 15px}#wpadminbar .quicklinks>ul>li.current>a{background:#004966}#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar .ab-top-menu>li.ab-hover>.ab-item{background:transparent !important}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar .ab-top-menu>li.my-sites>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.hover>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.ab-hover>.ab-item{background:#002c40 !important}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before,#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:13px}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{top:-2px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{border-radius:3px}#wpadminbar ul li#wp-admin-bar-ab-new-post a{padding:6px 15px;color:#2271b1 !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a span{color:#2271b1 !important;font-size:14px !important;margin-left:4px;margin-right:6px}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before,#wpadminbar ul li#wp-admin-bar-ab-new-post a:after{background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="0" fill="none" width="24" height="24"/><g><path fill="%230087be" d="M21 14v5c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h5v2H5v14h14v-5h2z"/><path fill="%230087be" d="M21 7h-4V3h-2v4h-4v2h4v4h2V9h4"/></g></svg>') !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{margin-right:-6px}#wpadminbar ul li#wp-admin-bar-ab-new-post:hover,#wpadminbar ul li#wp-admin-bar-ab-new-post:hover>.ab-item{background:#f6f7f7 !important;opacity:1;border-radius:3px !important}#wpadminbar li#wp-admin-bar-blog.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-newdash.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-my-account.menupop>.ab-sub-wrapper{display:none !important}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{margin-left:-1px;margin-right:9px}#wpadminbar li#wp-admin-bar-notes.active,#wpadminbar li#wp-admin-bar-notes.active>.ab-item{background:#002c40 !important}#wpadminbar li#wp-admin-bar-notes>#wpnt-notes-panel2{top:46px}#wpadminbar .ab-top-menu>li.ab-active>.ab-item,#wpadminbar>#wp-toolbar .wpnt-show span.noticon,#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon{color:#fff !important}#wpadminbar .ab-active>a.ab-item:before,#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{filter:brightness(100) !important}#wpadminbar .quicklinks>ul>li#wp-admin-bar-notes>a.ab-item span.noticon,#wpadminbar>#wp-toolbar span.noticon,#wpadminbar #wp-admin-bar-notes .noticon{top:10px}#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon,#wpadminbar .ab-icon,#wpadminbar .ab-item:before{font-size:24px;line-height:1.45}#wpadminbar li#wp-admin-bar-recovery-mode{background-color:#b26200 !important}body #wp-admin-bar-notes>.ab-item{padding:0 15px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{top:5px !important}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.wrap{margin:20px 15px 25px 30px}@media screen and (max-width: 782px){.wrap{margin:10px 7px 10px 18px}}.subsubsub,.wp-filter{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,0.5);width:100%;box-shadow:none;padding:0}.subsubsub a,.filter-links li>a{padding:10px 15px;display:inline-block;font-size:14px;margin:0;color:#2271b1;border-bottom:2px solid #fff;outline:none}.subsubsub a:focus,.filter-links li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.subsubsub a:hover,.filter-links li>a:hover{color:#0a4b78;background-color:#e9eff5}.subsubsub a:hover:not(.current),.filter-links li>a:hover:not(.current){border-color:#e9eff5}.filter-links li>a{padding:16px}.subsubsub a.current,.filter-links .current{border-bottom:2px solid #3c434a}@media only screen and (max-width: 480px){.filter-links,.filter-links li,.filter-links li a{display:block}.filter-links li>a{font-size:16px}}.count{display:inline-block;padding:1px 6px;border:solid 1px #8e9196;border-radius:12px;font-size:11px;font-weight:bold;line-height:14px;color:#646970;text-align:center;margin-right:2px}.plugins-php .plugins a{color:#2271b1}.plugins-php .plugins a:hover,.plugins-php .plugins a:focus{color:#0a4b78}.plugins-php .plugins a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugins-php .plugins a.delete{color:#d63638}.plugins-php .plugins a.delete:hover,.plugins-php .plugins a.delete:focus{color:#8a2424}.plugins-php .plugins a.delete:focus{box-shadow:0 0 0 1px #d63638,0 0 2px 1px #f86368}.plugins-php .tablenav{clear:none;float:right;margin-bottom:15px}.plugins-php .tablenav .one-page .displaying-num{display:none}.plugins-php .bulkactions select:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php p.search-box{margin-top:5px}.plugins-php p.search-box .wp-filter-search:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php .plugin-update-tr.active td,.plugins-php .plugins .active th{border-right:4px solid #2271b1}.plugins-php .plugins .active th,.plugins-php .plugins .active td,.plugins-php .plugins .active th.check-column,.plugins-php .plugin-update-tr.active td{background-color:#e9eff5}.wrap .wp-heading-inline+.page-title-action,.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{background:#c9356e;border-color:#8c1749;color:#fff;border-style:solid;border-width:1px 1px 2px;cursor:pointer;display:inline-block;margin:0 0 0 5px;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-size:13px;line-height:21px;border-radius:4px;padding:2px 10px 2px;margin-bottom:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.wrap .wp-heading-inline+.page-title-action:hover,.wrap .add-new-h2:hover,.wrap .add-new-h2:active:hover,.wrap .page-title-action:hover,.wrap .page-title-action:active:hover{background-color:#e34c84}.wrap .wp-heading-inline+.page-title-action:focus,.wrap .add-new-h2:focus,.wrap .add-new-h2:active:focus,.wrap .page-title-action:focus,.wrap .page-title-action:active:focus{box-shadow:0 0 0 2px #eb6594;background-color:#e34c84}.wp-core-ui .button{background:#fff}.wp-core-ui .button:focus{border-color:#2271b1;box-shadow:0 0 3px #5198d9}.wp-core-ui .button-primary{background:#2271b1;border-color:#0a4b78;color:#fff;text-shadow:none}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background-color:#3582c4}.ui-tabs-nav li,.wp-switch-editor{background-color:#f6f7f7 !important}.plugin-card a,.popular-tags a,.filter-links>li>a{color:#2271b1}.plugin-card a:hover,.plugin-card a:focus,.popular-tags a:hover,.popular-tags a:focus,.filter-links>li>a:hover,.filter-links>li>a:focus{color:#0a4b78}.plugin-card a:focus,.popular-tags a:focus,.filter-links>li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugin-card-bottom,.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd),.ui-tabs-panel,.ui-tabs-nav li.ui-tabs-active,.ui-tabs-nav li.ui-tabs-active:hover,div.mce-toolbar-grp,.html-active .switch-html,.tmce-active .switch-tmce,#post-status-info,.quicktags-toolbar,#major-publishing-actions{background-color:#fff;border-color:#d7e1e9}.wp-filter .search-form{margin-left:10px}@media only screen and (max-width: 1000px){.wp-filter .search-form{margin-right:10px}}@media only screen and (max-width: 782px){.wp-filter .search-form input[type="search"].wp-filter-search{padding:5px}}@media only screen and (max-width: 480px){.wp-filter .search-form.search-plugins{align-items:center;display:flex}.wp-filter .search-form.search-plugins .wp-filter-search{flex:0 1 auto;max-width:none;width:100%}.wp-filter .search-form select{flex-shrink:0}.wp-filter .search-form>label{flex:1 1 auto}}.form-toggle[type="checkbox"]{display:none}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;align-self:flex-start;outline:0;cursor:pointer;transition:all .4s ease, box-shadow 0s}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{right:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #2271b1}.form-toggle__label{cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-right:12px}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #2271b1}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #5198d9}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a7aaad}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c3c4c7}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#5198d9}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:0.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c3c4c7}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}
-
+body,#wp-content-editor-tools{background:#f6f7f7}#wpwrap{top:14px}#wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{background-image:none !important;background-color:#eb6594 !important;border:none !important}#adminmenu #collapse-menu,#adminmenu .wp-menu-separator,#screen-meta-links,.wp-submenu,#toplevel_page_jetpack{display:none}.wp-menu-open .wp-submenu{display:block}#adminmenuwrap,#adminmenuback,#adminmenu{background:#fff}#adminmenuback{border-left:1px solid #f6f7f7}#adminmenu,#adminmenuwrap,#adminmenuback,#adminmenu .wp-submenu{width:272px}#adminmenu{margin-top:71px}#adminmenu .wp-submenu{padding:0}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .opensub .wp-submenu,#adminmenu .opensub .wp-submenu:after,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus,#adminmenu li.wp-menu-open{background:transparent}#adminmenu a:hover{background-color:#f6f7f7 !important}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{padding:5px 5px 5px 0}#adminmenu .wp-has-current-submenu ul>li>a{padding:7px 46px 7px 12px;font-size:15px;font-weight:400 !important}#adminmenu a.wp-has-current-submenu:after,#adminmenu>li.current>a.current:after,#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border:none}#adminmenu .dashicons,#adminmenu .dashicons-before:before{width:24px;height:24px;font-size:24px}#adminmenu a{color:#2c3338 !important}#adminmenu li.current>a{background:#e9eff5 !important}#adminmenu div.wp-menu-image:before{color:#646970 !important}#adminmenu li a:hover div.wp-menu-image:before{color:#2c3338 !important}#adminmenu li.current a div.wp-menu-image:before{color:#2271b1 !important}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu{background:transparent}#adminmenu div.wp-menu-image.svg{filter:brightness(0.4)}#adminmenu li a:hover div.wp-menu-image.svg,#adminmenu li.current div.wp-menu-image.svg{filter:brightness(0.25)}#adminmenu li.current div.wp-menu-image:before,#adminmenu li.current a,#adminmenu li.current .wp-menu-name{color:#2271b1 !important}#adminmenu div.wp-menu-name{color:#646970;font-size:15px;padding:9px 41px 8px 0;font-weight:600}#adminmenu li a:hover div.wp-menu-name{color:#2c3338}#adminmenu li.menu-top{min-height:46px}#adminmenu .awaiting-mod,#adminmenu .update-plugins{background-color:#2271b1}.no-js li.wp-has-current-submenu:hover .wp-submenu{background:transparent !important}#wpcontent,#wpfooter{margin-right:272px}#toplevel_page_plugins div.wp-menu-image.svg,#toplevel_page_plugin-install div.wp-menu-image.svg{background-size:24px auto}#toplevel_page_plugins div.wp-menu-image.svg{position:relative;right:-2px}#calypso-sidebar-header{border-bottom:1px solid #646970;position:fixed;top:47px;right:0;width:272px;height:65px;background:#fff;z-index:10000}#calypso-sidebar-header svg{float:right;position:relative;right:10px;top:23px}#calypso-sidebar-header ul{float:right;position:relative;right:15px}#calypso-sidebar-header ul li{margin:0}#calypso-sidebar-header ul li#calypso-sitename{font-size:12px;color:#646970;overflow:hidden;white-space:nowrap;width:225px}@media screen and (max-width: 782px){#calypso-sidebar-header ul li#calypso-sitename{width:150px}}#calypso-sidebar-header ul li#calypso-sitename:after{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to left, rgba(255, 255, 255, 0), #fff 90%);top:0px;bottom:0px;left:0px;right:auto;width:20%;height:auto}#calypso-sidebar-header ul li#calypso-plugins{font-weight:bold;color:#2c3338;font-size:16px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .opensub .wp-submenu:after,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:7px 46px 7px 12px;font-size:14px}.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#e9eff5}.folded #adminmenu .wp-submenu .wp-submenu-head{padding:14px 11px 14px 4px}.folded #adminmenu a.menu-top{padding-right:1px}.folded #wpcontent #calypso-sidebar-header{width:36px}.folded #wpcontent #calypso-sidebar-header svg{right:6px}.folded #wpcontent #calypso-sidebar-header ul{display:none}.folded .no-js li.wp-has-current-submenu:hover .wp-submenu{background:#f6f7f7 !important}.folded #toplevel_page_plugins div.wp-menu-image.svg{position:relative;right:-2px}@media only screen and (max-width: 960px){#calypso-sidebar-header{width:36px}#calypso-sidebar-header ul{display:none}#calypso-sidebar-header svg{right:6px}#adminmenu a.menu-top{padding-right:1px}}@media screen and (max-width: 782px){#calypso-sidebar-header{position:absolute;display:none;width:190px;top:-14px}.wp-responsive-open #calypso-sidebar-header{display:block}#calypso-sidebar-header ul{display:block}.auto-fold #adminmenu .wp-menu-name{margin-right:0}.auto-fold #adminmenu{top:-14px}#adminmenu .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#fff !important}.auto-fold #adminmenu li.selected div.wp-menu-image.svg{filter:brightness(100)}.auto-fold #adminmenu li.selected div.wp-menu-image:before,.auto-fold #adminmenu li.selected div.wp-menu-name{color:#2271b1 !important}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{padding:0 15px !important}#wpadminbar li#wp-admin-bar-ab-new-post a{padding:7px 15px !important}}@media screen and (max-width: 600px){#calypso-sidebar-header{top:32px}.auto-fold #adminmenu{top:32px}}@media screen and (max-width: 480px){#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{margin-top:4px !important}#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:6px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{top:-5px !important;margin-right:-12px !important}}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,.5)}.nav-tab{border:none;background:none;font-weight:400;padding:3px 13px 12px;color:#2271b1}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{background:transparent;box-shadow:none}.nav-tab:first-child{margin-right:0}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active{border-bottom:2px solid #3c434a;color:#2c3338}#wpadminbar{background:#006088;-webkit-box-shadow:none;-mozilla-box-shadow:none;border-bottom:1px solid #0a4b78;height:46px;position:fixed}#wpadminbar .ab-top-menu>li>.ab-item{font-size:14px}#wpadminbar .ab-top-menu>li.hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar *{line-height:46px}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:46px}#wpadminbar .quicklinks>ul>li>a{padding:0 15px}#wpadminbar .quicklinks>ul>li.current>a{background:#004966}#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar .ab-top-menu>li.ab-hover>.ab-item{background:transparent !important}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar .ab-top-menu>li.my-sites>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.hover>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.ab-hover>.ab-item{background:#002c40 !important}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before,#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:13px}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{top:-2px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{border-radius:3px}#wpadminbar ul li#wp-admin-bar-ab-new-post a{padding:6px 15px;color:#2271b1 !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a span{color:#2271b1 !important;font-size:14px !important;margin-left:4px;margin-right:6px}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before,#wpadminbar ul li#wp-admin-bar-ab-new-post a:after{background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="0" fill="none" width="24" height="24"/><g><path fill="%230087be" d="M21 14v5c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h5v2H5v14h14v-5h2z"/><path fill="%230087be" d="M21 7h-4V3h-2v4h-4v2h4v4h2V9h4"/></g></svg>') !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{margin-right:-6px}#wpadminbar ul li#wp-admin-bar-ab-new-post:hover,#wpadminbar ul li#wp-admin-bar-ab-new-post:hover>.ab-item{background:#f6f7f7 !important;opacity:1;border-radius:3px !important}#wpadminbar li#wp-admin-bar-blog.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-newdash.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-my-account.menupop>.ab-sub-wrapper{display:none !important}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{margin-left:-1px;margin-right:9px}#wpadminbar li#wp-admin-bar-notes.active,#wpadminbar li#wp-admin-bar-notes.active>.ab-item{background:#002c40 !important}#wpadminbar li#wp-admin-bar-notes>#wpnt-notes-panel2{top:46px}#wpadminbar .ab-top-menu>li.ab-active>.ab-item,#wpadminbar>#wp-toolbar .wpnt-show span.noticon,#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon{color:#fff !important}#wpadminbar .ab-active>a.ab-item:before,#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{filter:brightness(100) !important}#wpadminbar .quicklinks>ul>li#wp-admin-bar-notes>a.ab-item span.noticon,#wpadminbar>#wp-toolbar span.noticon,#wpadminbar #wp-admin-bar-notes .noticon{top:10px}#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon,#wpadminbar .ab-icon,#wpadminbar .ab-item:before{font-size:24px;line-height:1.45}#wpadminbar li#wp-admin-bar-recovery-mode{background-color:#b26200 !important}body #wp-admin-bar-notes>.ab-item{padding:0 15px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{top:5px !important}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.wrap{margin:20px 15px 25px 30px}@media screen and (max-width: 782px){.wrap{margin:10px 7px 10px 18px}}.subsubsub,.wp-filter{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,.5);width:100%;box-shadow:none;padding:0}.subsubsub a,.filter-links li>a{padding:10px 15px;display:inline-block;font-size:14px;margin:0;color:#2271b1;border-bottom:2px solid #fff;outline:none}.subsubsub a:focus,.filter-links li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.subsubsub a:hover,.filter-links li>a:hover{color:#0a4b78;background-color:#e9eff5}.subsubsub a:hover:not(.current),.filter-links li>a:hover:not(.current){border-color:#e9eff5}.filter-links li>a{padding:16px}.subsubsub a.current,.filter-links .current{border-bottom:2px solid #3c434a}@media only screen and (max-width: 480px){.filter-links,.filter-links li,.filter-links li a{display:block}.filter-links li>a{font-size:16px}}.count{display:inline-block;padding:1px 6px;border:solid 1px #8e9196;border-radius:12px;font-size:11px;font-weight:bold;line-height:14px;color:#646970;text-align:center;margin-right:2px}.plugins-php .plugins a{color:#2271b1}.plugins-php .plugins a:hover,.plugins-php .plugins a:focus{color:#0a4b78}.plugins-php .plugins a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugins-php .plugins a.delete{color:#d63638}.plugins-php .plugins a.delete:hover,.plugins-php .plugins a.delete:focus{color:#8a2424}.plugins-php .plugins a.delete:focus{box-shadow:0 0 0 1px #d63638,0 0 2px 1px #f86368}.plugins-php .tablenav{clear:none;float:right;margin-bottom:15px}.plugins-php .tablenav .one-page .displaying-num{display:none}.plugins-php .bulkactions select:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php p.search-box{margin-top:5px}.plugins-php p.search-box .wp-filter-search:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php .plugin-update-tr.active td,.plugins-php .plugins .active th{border-right:4px solid #2271b1}.plugins-php .plugins .active th,.plugins-php .plugins .active td,.plugins-php .plugins .active th.check-column,.plugins-php .plugin-update-tr.active td{background-color:#e9eff5}.wrap .wp-heading-inline+.page-title-action,.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{background:#c9356e;border-color:#8c1749;color:#fff;border-style:solid;border-width:1px 1px 2px;cursor:pointer;display:inline-block;margin:0 0 0 5px;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-size:13px;line-height:21px;border-radius:4px;padding:2px 10px 2px;margin-bottom:2px;-webkit-appearance:none;appearance:none}.wrap .wp-heading-inline+.page-title-action:hover,.wrap .add-new-h2:hover,.wrap .add-new-h2:active:hover,.wrap .page-title-action:hover,.wrap .page-title-action:active:hover{background-color:#e34c84}.wrap .wp-heading-inline+.page-title-action:focus,.wrap .add-new-h2:focus,.wrap .add-new-h2:active:focus,.wrap .page-title-action:focus,.wrap .page-title-action:active:focus{box-shadow:0 0 0 2px #eb6594;background-color:#e34c84}.wp-core-ui .button{background:#fff}.wp-core-ui .button:focus{border-color:#2271b1;box-shadow:0 0 3px #5198d9}.wp-core-ui .button-primary{background:#2271b1;border-color:#0a4b78;color:#fff;text-shadow:none}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background-color:#3582c4}.ui-tabs-nav li,.wp-switch-editor{background-color:#f6f7f7 !important}.plugin-card a,.popular-tags a,.filter-links>li>a{color:#2271b1}.plugin-card a:hover,.plugin-card a:focus,.popular-tags a:hover,.popular-tags a:focus,.filter-links>li>a:hover,.filter-links>li>a:focus{color:#0a4b78}.plugin-card a:focus,.popular-tags a:focus,.filter-links>li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugin-card-bottom,.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd),.ui-tabs-panel,.ui-tabs-nav li.ui-tabs-active,.ui-tabs-nav li.ui-tabs-active:hover,div.mce-toolbar-grp,.html-active .switch-html,.tmce-active .switch-tmce,#post-status-info,.quicktags-toolbar,#major-publishing-actions{background-color:#fff;border-color:#d7e1e9}.wp-filter .search-form{margin-left:10px}@media only screen and (max-width: 1000px){.wp-filter .search-form{margin-right:10px}}@media only screen and (max-width: 782px){.wp-filter .search-form input[type=search].wp-filter-search{padding:5px}}@media only screen and (max-width: 480px){.wp-filter .search-form.search-plugins{align-items:center;display:flex}.wp-filter .search-form.search-plugins .wp-filter-search{flex:0 1 auto;max-width:none;width:100%}.wp-filter .search-form select{flex-shrink:0}.wp-filter .search-form>label{flex:1 1 auto}}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;align-self:flex-start;outline:0;cursor:pointer;transition:all .4s ease,box-shadow 0s}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{right:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #2271b1}.form-toggle__label{cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-right:12px}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #2271b1}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #5198d9}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a7aaad}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c3c4c7}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#5198d9}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c3c4c7}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}
/*# sourceMappingURL=style-rtl.min.css.map */
diff --git a/plugins/jetpack/modules/calypsoify/style.min.css b/plugins/jetpack/modules/calypsoify/style.min.css
index 0ed5d18b..c9cb7517 100644
--- a/plugins/jetpack/modules/calypsoify/style.min.css
+++ b/plugins/jetpack/modules/calypsoify/style.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is compiled SASS code. */
-body,#wp-content-editor-tools{background:#f6f7f7}#wpwrap{top:14px}#wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{background-image:none !important;background-color:#eb6594 !important;border:none !important}#adminmenu #collapse-menu,#adminmenu .wp-menu-separator,#screen-meta-links,.wp-submenu,#toplevel_page_jetpack{display:none}.wp-menu-open .wp-submenu{display:block}#adminmenuwrap,#adminmenuback,#adminmenu{background:#fff}#adminmenuback{border-right:1px solid #f6f7f7}#adminmenu,#adminmenuwrap,#adminmenuback,#adminmenu .wp-submenu{width:272px}#adminmenu{margin-top:71px}#adminmenu .wp-submenu{padding:0}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .opensub .wp-submenu,#adminmenu .opensub .wp-submenu:after,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus,#adminmenu li.wp-menu-open{background:transparent}#adminmenu a:hover{background-color:#f6f7f7 !important}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{padding:5px 0 5px 5px}#adminmenu .wp-has-current-submenu ul>li>a{padding:7px 12px 7px 46px;font-size:15px;font-weight:400 !important}#adminmenu a.wp-has-current-submenu:after,#adminmenu>li.current>a.current:after,#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border:none}#adminmenu .dashicons,#adminmenu .dashicons-before:before{width:24px;height:24px;font-size:24px}#adminmenu a{color:#2c3338 !important}#adminmenu li.current>a{background:#e9eff5 !important}#adminmenu div.wp-menu-image:before{color:#646970 !important}#adminmenu li a:hover div.wp-menu-image:before{color:#2c3338 !important}#adminmenu li.current a div.wp-menu-image:before{color:#2271b1 !important}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu{background:transparent}#adminmenu div.wp-menu-image.svg{filter:brightness(0.4)}#adminmenu li a:hover div.wp-menu-image.svg,#adminmenu li.current div.wp-menu-image.svg{filter:brightness(0.25)}#adminmenu li.current div.wp-menu-image:before,#adminmenu li.current a,#adminmenu li.current .wp-menu-name{color:#2271b1 !important}#adminmenu div.wp-menu-name{color:#646970;font-size:15px;padding:9px 0 8px 41px;font-weight:600}#adminmenu li a:hover div.wp-menu-name{color:#2c3338}#adminmenu li.menu-top{min-height:46px}#adminmenu .awaiting-mod,#adminmenu .update-plugins{background-color:#2271b1}.no-js li.wp-has-current-submenu:hover .wp-submenu{background:transparent !important}#wpcontent,#wpfooter{margin-left:272px}#toplevel_page_plugins div.wp-menu-image.svg,#toplevel_page_plugin-install div.wp-menu-image.svg{background-size:24px auto}#toplevel_page_plugins div.wp-menu-image.svg{position:relative;left:-2px}#calypso-sidebar-header{border-bottom:1px solid #646970;position:fixed;top:47px;left:0;width:272px;height:65px;background:#fff;z-index:10000}#calypso-sidebar-header svg{float:left;position:relative;left:10px;top:23px}#calypso-sidebar-header ul{float:left;position:relative;left:15px}#calypso-sidebar-header ul li{margin:0}#calypso-sidebar-header ul li#calypso-sitename{font-size:12px;color:#646970;overflow:hidden;white-space:nowrap;width:225px}@media screen and (max-width: 782px){#calypso-sidebar-header ul li#calypso-sitename{width:150px}}#calypso-sidebar-header ul li#calypso-sitename:after{content:'';display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to right, rgba(255,255,255,0), #fff 90%);top:0px;bottom:0px;right:0px;left:auto;width:20%;height:auto}#calypso-sidebar-header ul li#calypso-plugins{font-weight:bold;color:#2c3338;font-size:16px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .opensub .wp-submenu:after,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:7px 12px 7px 46px;font-size:14px}.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#e9eff5}.folded #adminmenu .wp-submenu .wp-submenu-head{padding:14px 4px 14px 11px}.folded #adminmenu a.menu-top{padding-left:1px}.folded #wpcontent #calypso-sidebar-header{width:36px}.folded #wpcontent #calypso-sidebar-header svg{left:6px}.folded #wpcontent #calypso-sidebar-header ul{display:none}.folded .no-js li.wp-has-current-submenu:hover .wp-submenu{background:#f6f7f7 !important}.folded #toplevel_page_plugins div.wp-menu-image.svg{position:relative;left:-2px}@media only screen and (max-width: 960px){#calypso-sidebar-header{width:36px}#calypso-sidebar-header ul{display:none}#calypso-sidebar-header svg{left:6px}#adminmenu a.menu-top{padding-left:1px}}@media screen and (max-width: 782px){#calypso-sidebar-header{position:absolute;display:none;width:190px;top:-14px}.wp-responsive-open #calypso-sidebar-header{display:block}#calypso-sidebar-header ul{display:block}.auto-fold #adminmenu .wp-menu-name{margin-left:0}.auto-fold #adminmenu{top:-14px}#adminmenu .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#fff !important}.auto-fold #adminmenu li.selected div.wp-menu-image.svg{filter:brightness(100)}.auto-fold #adminmenu li.selected div.wp-menu-image:before,.auto-fold #adminmenu li.selected div.wp-menu-name{color:#2271b1 !important}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{padding:0 15px !important}#wpadminbar li#wp-admin-bar-ab-new-post a{padding:7px 15px !important}}@media screen and (max-width: 600px){#calypso-sidebar-header{top:32px}.auto-fold #adminmenu{top:32px}}@media screen and (max-width: 480px){#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{margin-top:4px !important}#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:6px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{top:-5px !important;margin-left:-12px !important}}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,0.5)}.nav-tab{border:none;background:none;font-weight:400;padding:3px 13px 12px;color:#2271b1}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{background:transparent;box-shadow:none}.nav-tab:first-child{margin-left:0}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active{border-bottom:2px solid #3c434a;color:#2c3338}#wpadminbar{background:#006088;-webkit-box-shadow:none;-mozilla-box-shadow:none;border-bottom:1px solid #0a4b78;height:46px;position:fixed}#wpadminbar .ab-top-menu>li>.ab-item{font-size:14px}#wpadminbar .ab-top-menu>li.hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar *{line-height:46px}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:46px}#wpadminbar .quicklinks>ul>li>a{padding:0 15px}#wpadminbar .quicklinks>ul>li.current>a{background:#004966}#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar .ab-top-menu>li.ab-hover>.ab-item{background:transparent !important}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar .ab-top-menu>li.my-sites>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.hover>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.ab-hover>.ab-item{background:#002c40 !important}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before,#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:13px}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{top:-2px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{border-radius:3px}#wpadminbar ul li#wp-admin-bar-ab-new-post a{padding:6px 15px;color:#2271b1 !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a span{color:#2271b1 !important;font-size:14px !important;margin-right:4px;margin-left:6px}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before,#wpadminbar ul li#wp-admin-bar-ab-new-post a:after{background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="0" fill="none" width="24" height="24"/><g><path fill="%230087be" d="M21 14v5c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h5v2H5v14h14v-5h2z"/><path fill="%230087be" d="M21 7h-4V3h-2v4h-4v2h4v4h2V9h4"/></g></svg>') !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{margin-left:-6px}#wpadminbar ul li#wp-admin-bar-ab-new-post:hover,#wpadminbar ul li#wp-admin-bar-ab-new-post:hover>.ab-item{background:#f6f7f7 !important;opacity:1;border-radius:3px !important}#wpadminbar li#wp-admin-bar-blog.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-newdash.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-my-account.menupop>.ab-sub-wrapper{display:none !important}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{margin-right:-1px;margin-left:9px}#wpadminbar li#wp-admin-bar-notes.active,#wpadminbar li#wp-admin-bar-notes.active>.ab-item{background:#002c40 !important}#wpadminbar li#wp-admin-bar-notes>#wpnt-notes-panel2{top:46px}#wpadminbar .ab-top-menu>li.ab-active>.ab-item,#wpadminbar>#wp-toolbar .wpnt-show span.noticon,#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon{color:#fff !important}#wpadminbar .ab-active>a.ab-item:before,#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{filter:brightness(100) !important}#wpadminbar .quicklinks>ul>li#wp-admin-bar-notes>a.ab-item span.noticon,#wpadminbar>#wp-toolbar span.noticon,#wpadminbar #wp-admin-bar-notes .noticon{top:10px}#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon,#wpadminbar .ab-icon,#wpadminbar .ab-item:before{font-size:24px;line-height:1.45}#wpadminbar li#wp-admin-bar-recovery-mode{background-color:#b26200 !important}body #wp-admin-bar-notes>.ab-item{padding:0 15px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{top:5px !important}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.wrap{margin:20px 30px 25px 15px}@media screen and (max-width: 782px){.wrap{margin:10px 18px 10px 7px}}.subsubsub,.wp-filter{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,0.5);width:100%;box-shadow:none;padding:0}.subsubsub a,.filter-links li>a{padding:10px 15px;display:inline-block;font-size:14px;margin:0;color:#2271b1;border-bottom:2px solid #fff;outline:none}.subsubsub a:focus,.filter-links li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.subsubsub a:hover,.filter-links li>a:hover{color:#0a4b78;background-color:#e9eff5}.subsubsub a:hover:not(.current),.filter-links li>a:hover:not(.current){border-color:#e9eff5}.filter-links li>a{padding:16px}.subsubsub a.current,.filter-links .current{border-bottom:2px solid #3c434a}@media only screen and (max-width: 480px){.filter-links,.filter-links li,.filter-links li a{display:block}.filter-links li>a{font-size:16px}}.count{display:inline-block;padding:1px 6px;border:solid 1px #8e9196;border-radius:12px;font-size:11px;font-weight:bold;line-height:14px;color:#646970;text-align:center;margin-left:2px}.plugins-php .plugins a{color:#2271b1}.plugins-php .plugins a:hover,.plugins-php .plugins a:focus{color:#0a4b78}.plugins-php .plugins a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugins-php .plugins a.delete{color:#d63638}.plugins-php .plugins a.delete:hover,.plugins-php .plugins a.delete:focus{color:#8a2424}.plugins-php .plugins a.delete:focus{box-shadow:0 0 0 1px #d63638,0 0 2px 1px #f86368}.plugins-php .tablenav{clear:none;float:left;margin-bottom:15px}.plugins-php .tablenav .one-page .displaying-num{display:none}.plugins-php .bulkactions select:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php p.search-box{margin-top:5px}.plugins-php p.search-box .wp-filter-search:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php .plugin-update-tr.active td,.plugins-php .plugins .active th{border-left:4px solid #2271b1}.plugins-php .plugins .active th,.plugins-php .plugins .active td,.plugins-php .plugins .active th.check-column,.plugins-php .plugin-update-tr.active td{background-color:#e9eff5}.wrap .wp-heading-inline+.page-title-action,.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{background:#c9356e;border-color:#8c1749;color:#fff;border-style:solid;border-width:1px 1px 2px;cursor:pointer;display:inline-block;margin:0 5px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-size:13px;line-height:21px;border-radius:4px;padding:2px 10px 2px;margin-bottom:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.wrap .wp-heading-inline+.page-title-action:hover,.wrap .add-new-h2:hover,.wrap .add-new-h2:active:hover,.wrap .page-title-action:hover,.wrap .page-title-action:active:hover{background-color:#e34c84}.wrap .wp-heading-inline+.page-title-action:focus,.wrap .add-new-h2:focus,.wrap .add-new-h2:active:focus,.wrap .page-title-action:focus,.wrap .page-title-action:active:focus{box-shadow:0 0 0 2px #eb6594;background-color:#e34c84}.wp-core-ui .button{background:#fff}.wp-core-ui .button:focus{border-color:#2271b1;box-shadow:0 0 3px #5198d9}.wp-core-ui .button-primary{background:#2271b1;border-color:#0a4b78;color:#fff;text-shadow:none}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background-color:#3582c4}.ui-tabs-nav li,.wp-switch-editor{background-color:#f6f7f7 !important}.plugin-card a,.popular-tags a,.filter-links>li>a{color:#2271b1}.plugin-card a:hover,.plugin-card a:focus,.popular-tags a:hover,.popular-tags a:focus,.filter-links>li>a:hover,.filter-links>li>a:focus{color:#0a4b78}.plugin-card a:focus,.popular-tags a:focus,.filter-links>li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugin-card-bottom,.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd),.ui-tabs-panel,.ui-tabs-nav li.ui-tabs-active,.ui-tabs-nav li.ui-tabs-active:hover,div.mce-toolbar-grp,.html-active .switch-html,.tmce-active .switch-tmce,#post-status-info,.quicktags-toolbar,#major-publishing-actions{background-color:#fff;border-color:#d7e1e9}.wp-filter .search-form{margin-right:10px}@media only screen and (max-width: 1000px){.wp-filter .search-form{margin-left:10px}}@media only screen and (max-width: 782px){.wp-filter .search-form input[type="search"].wp-filter-search{padding:5px}}@media only screen and (max-width: 480px){.wp-filter .search-form.search-plugins{align-items:center;display:flex}.wp-filter .search-form.search-plugins .wp-filter-search{flex:0 1 auto;max-width:none;width:100%}.wp-filter .search-form select{flex-shrink:0}.wp-filter .search-form>label{flex:1 1 auto}}.form-toggle[type="checkbox"]{display:none}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;align-self:flex-start;outline:0;cursor:pointer;transition:all .4s ease, box-shadow 0s}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{left:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #2271b1}.form-toggle__label{cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-left:12px}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #2271b1}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #5198d9}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a7aaad}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c3c4c7}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#5198d9}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:0.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c3c4c7}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px}
+body,#wp-content-editor-tools{background:#f6f7f7}#wpwrap{top:14px}#wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{background-image:none !important;background-color:#eb6594 !important;border:none !important}#adminmenu #collapse-menu,#adminmenu .wp-menu-separator,#screen-meta-links,.wp-submenu,#toplevel_page_jetpack{display:none}.wp-menu-open .wp-submenu{display:block}#adminmenuwrap,#adminmenuback,#adminmenu{background:#fff}#adminmenuback{border-right:1px solid #f6f7f7}#adminmenu,#adminmenuwrap,#adminmenuback,#adminmenu .wp-submenu{width:272px}#adminmenu{margin-top:71px}#adminmenu .wp-submenu{padding:0}#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu .opensub .wp-submenu,#adminmenu .opensub .wp-submenu:after,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus,#adminmenu li.wp-menu-open{background:transparent}#adminmenu a:hover{background-color:#f6f7f7 !important}#adminmenu .wp-submenu-head,#adminmenu a.menu-top{padding:5px 0 5px 5px}#adminmenu .wp-has-current-submenu ul>li>a{padding:7px 12px 7px 46px;font-size:15px;font-weight:400 !important}#adminmenu a.wp-has-current-submenu:after,#adminmenu>li.current>a.current:after,#adminmenu li.wp-has-submenu.wp-not-current-submenu.opensub:hover:after{border:none}#adminmenu .dashicons,#adminmenu .dashicons-before:before{width:24px;height:24px;font-size:24px}#adminmenu a{color:#2c3338 !important}#adminmenu li.current>a{background:#e9eff5 !important}#adminmenu div.wp-menu-image:before{color:#646970 !important}#adminmenu li a:hover div.wp-menu-image:before{color:#2c3338 !important}#adminmenu li.current a div.wp-menu-image:before{color:#2271b1 !important}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu{background:transparent}#adminmenu div.wp-menu-image.svg{filter:brightness(0.4)}#adminmenu li a:hover div.wp-menu-image.svg,#adminmenu li.current div.wp-menu-image.svg{filter:brightness(0.25)}#adminmenu li.current div.wp-menu-image:before,#adminmenu li.current a,#adminmenu li.current .wp-menu-name{color:#2271b1 !important}#adminmenu div.wp-menu-name{color:#646970;font-size:15px;padding:9px 0 8px 41px;font-weight:600}#adminmenu li a:hover div.wp-menu-name{color:#2c3338}#adminmenu li.menu-top{min-height:46px}#adminmenu .awaiting-mod,#adminmenu .update-plugins{background-color:#2271b1}.no-js li.wp-has-current-submenu:hover .wp-submenu{background:transparent !important}#wpcontent,#wpfooter{margin-left:272px}#toplevel_page_plugins div.wp-menu-image.svg,#toplevel_page_plugin-install div.wp-menu-image.svg{background-size:24px auto}#toplevel_page_plugins div.wp-menu-image.svg{position:relative;left:-2px}#calypso-sidebar-header{border-bottom:1px solid #646970;position:fixed;top:47px;left:0;width:272px;height:65px;background:#fff;z-index:10000}#calypso-sidebar-header svg{float:left;position:relative;left:10px;top:23px}#calypso-sidebar-header ul{float:left;position:relative;left:15px}#calypso-sidebar-header ul li{margin:0}#calypso-sidebar-header ul li#calypso-sitename{font-size:12px;color:#646970;overflow:hidden;white-space:nowrap;width:225px}@media screen and (max-width: 782px){#calypso-sidebar-header ul li#calypso-sitename{width:150px}}#calypso-sidebar-header ul li#calypso-sitename:after{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to right, rgba(255, 255, 255, 0), #fff 90%);top:0px;bottom:0px;right:0px;left:auto;width:20%;height:auto}#calypso-sidebar-header ul li#calypso-plugins{font-weight:bold;color:#2c3338;font-size:16px}.folded #adminmenu .wp-has-current-submenu .wp-submenu,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .opensub .wp-submenu:after,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:transparent !important}.folded #adminmenu li.menu-top .wp-submenu>li>a{padding:7px 12px 7px 46px;font-size:14px}.folded #adminmenu li.current.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#e9eff5}.folded #adminmenu .wp-submenu .wp-submenu-head{padding:14px 4px 14px 11px}.folded #adminmenu a.menu-top{padding-left:1px}.folded #wpcontent #calypso-sidebar-header{width:36px}.folded #wpcontent #calypso-sidebar-header svg{left:6px}.folded #wpcontent #calypso-sidebar-header ul{display:none}.folded .no-js li.wp-has-current-submenu:hover .wp-submenu{background:#f6f7f7 !important}.folded #toplevel_page_plugins div.wp-menu-image.svg{position:relative;left:-2px}@media only screen and (max-width: 960px){#calypso-sidebar-header{width:36px}#calypso-sidebar-header ul{display:none}#calypso-sidebar-header svg{left:6px}#adminmenu a.menu-top{padding-left:1px}}@media screen and (max-width: 782px){#calypso-sidebar-header{position:absolute;display:none;width:190px;top:-14px}.wp-responsive-open #calypso-sidebar-header{display:block}#calypso-sidebar-header ul{display:block}.auto-fold #adminmenu .wp-menu-name{margin-left:0}.auto-fold #adminmenu{top:-14px}#adminmenu .wp-submenu,.auto-fold #adminmenu .selected .wp-submenu,.auto-fold #adminmenu .wp-menu-open .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu{background:#fff !important}.auto-fold #adminmenu li.selected div.wp-menu-image.svg{filter:brightness(100)}.auto-fold #adminmenu li.selected div.wp-menu-image:before,.auto-fold #adminmenu li.selected div.wp-menu-name{color:#2271b1 !important}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{padding:0 15px !important}#wpadminbar li#wp-admin-bar-ab-new-post a{padding:7px 15px !important}}@media screen and (max-width: 600px){#calypso-sidebar-header{top:32px}.auto-fold #adminmenu{top:32px}}@media screen and (max-width: 480px){#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{margin-top:4px !important}#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:6px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{top:-5px !important;margin-left:-12px !important}}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,.5)}.nav-tab{border:none;background:none;font-weight:400;padding:3px 13px 12px;color:#2271b1}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{background:transparent;box-shadow:none}.nav-tab:first-child{margin-left:0}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active{border-bottom:2px solid #3c434a;color:#2c3338}#wpadminbar{background:#006088;-webkit-box-shadow:none;-mozilla-box-shadow:none;border-bottom:1px solid #0a4b78;height:46px;position:fixed}#wpadminbar .ab-top-menu>li>.ab-item{font-size:14px}#wpadminbar .ab-top-menu>li.hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar *{line-height:46px}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:46px}#wpadminbar .quicklinks>ul>li>a{padding:0 15px}#wpadminbar .quicklinks>ul>li.current>a{background:#004966}#wpadminbar:not(.mobile) .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus,#wpadminbar .ab-top-menu>li.ab-hover>.ab-item{background:transparent !important}#wpadminbar:not(.mobile) .ab-top-menu>li:hover>.ab-item{background:#004e6e !important;color:#fff}#wpadminbar .ab-top-menu>li.my-sites>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.hover>.ab-item,#wpadminbar .ab-top-menu>li.my-sites.ab-hover>.ab-item{background:#002c40 !important}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before,#wpadminbar #wp-admin-bar-newdash>a.ab-item:before{margin-top:13px}#wpadminbar #wp-admin-bar-blog.my-sites>a.ab-item:before{top:-2px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{border-radius:3px}#wpadminbar ul li#wp-admin-bar-ab-new-post a{padding:6px 15px;color:#2271b1 !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a span{color:#2271b1 !important;font-size:14px !important;margin-right:4px;margin-left:6px}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before,#wpadminbar ul li#wp-admin-bar-ab-new-post a:after{background-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><rect x="0" fill="none" width="24" height="24"/><g><path fill="%230087be" d="M21 14v5c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V5c0-1.105.895-2 2-2h5v2H5v14h14v-5h2z"/><path fill="%230087be" d="M21 7h-4V3h-2v4h-4v2h4v4h2V9h4"/></g></svg>') !important}#wpadminbar ul li#wp-admin-bar-ab-new-post a:before{margin-left:-6px}#wpadminbar ul li#wp-admin-bar-ab-new-post:hover,#wpadminbar ul li#wp-admin-bar-ab-new-post:hover>.ab-item{background:#f6f7f7 !important;opacity:1;border-radius:3px !important}#wpadminbar li#wp-admin-bar-blog.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-newdash.menupop>.ab-sub-wrapper,#wpadminbar li#wp-admin-bar-my-account.menupop>.ab-sub-wrapper{display:none !important}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{margin-right:-1px;margin-left:9px}#wpadminbar li#wp-admin-bar-notes.active,#wpadminbar li#wp-admin-bar-notes.active>.ab-item{background:#002c40 !important}#wpadminbar li#wp-admin-bar-notes>#wpnt-notes-panel2{top:46px}#wpadminbar .ab-top-menu>li.ab-active>.ab-item,#wpadminbar>#wp-toolbar .wpnt-show span.noticon,#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon{color:#fff !important}#wpadminbar .ab-active>a.ab-item:before,#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{filter:brightness(100) !important}#wpadminbar .quicklinks>ul>li#wp-admin-bar-notes>a.ab-item span.noticon,#wpadminbar>#wp-toolbar span.noticon,#wpadminbar #wp-admin-bar-notes .noticon{top:10px}#wpadminbar>#wp-toolbar>#wp-admin-bar-root-default .ab-icon,#wpadminbar .ab-icon,#wpadminbar .ab-item:before{font-size:24px;line-height:1.45}#wpadminbar li#wp-admin-bar-recovery-mode{background-color:#b26200 !important}body #wp-admin-bar-notes>.ab-item{padding:0 15px !important}#wpadminbar ul li#wp-admin-bar-ab-new-post{top:5px !important}ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.wrap{margin:20px 30px 25px 15px}@media screen and (max-width: 782px){.wrap{margin:10px 18px 10px 7px}}.subsubsub,.wp-filter{margin:10px 0 25px;background:#fff;border:1px solid rgba(200,215,225,.5);width:100%;box-shadow:none;padding:0}.subsubsub a,.filter-links li>a{padding:10px 15px;display:inline-block;font-size:14px;margin:0;color:#2271b1;border-bottom:2px solid #fff;outline:none}.subsubsub a:focus,.filter-links li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.subsubsub a:hover,.filter-links li>a:hover{color:#0a4b78;background-color:#e9eff5}.subsubsub a:hover:not(.current),.filter-links li>a:hover:not(.current){border-color:#e9eff5}.filter-links li>a{padding:16px}.subsubsub a.current,.filter-links .current{border-bottom:2px solid #3c434a}@media only screen and (max-width: 480px){.filter-links,.filter-links li,.filter-links li a{display:block}.filter-links li>a{font-size:16px}}.count{display:inline-block;padding:1px 6px;border:solid 1px #8e9196;border-radius:12px;font-size:11px;font-weight:bold;line-height:14px;color:#646970;text-align:center;margin-left:2px}.plugins-php .plugins a{color:#2271b1}.plugins-php .plugins a:hover,.plugins-php .plugins a:focus{color:#0a4b78}.plugins-php .plugins a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugins-php .plugins a.delete{color:#d63638}.plugins-php .plugins a.delete:hover,.plugins-php .plugins a.delete:focus{color:#8a2424}.plugins-php .plugins a.delete:focus{box-shadow:0 0 0 1px #d63638,0 0 2px 1px #f86368}.plugins-php .tablenav{clear:none;float:left;margin-bottom:15px}.plugins-php .tablenav .one-page .displaying-num{display:none}.plugins-php .bulkactions select:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php p.search-box{margin-top:5px}.plugins-php p.search-box .wp-filter-search:focus{border-color:#2271b1;box-shadow:0 0 2px #5198d9}.plugins-php .plugin-update-tr.active td,.plugins-php .plugins .active th{border-left:4px solid #2271b1}.plugins-php .plugins .active th,.plugins-php .plugins .active td,.plugins-php .plugins .active th.check-column,.plugins-php .plugin-update-tr.active td{background-color:#e9eff5}.wrap .wp-heading-inline+.page-title-action,.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{background:#c9356e;border-color:#8c1749;color:#fff;border-style:solid;border-width:1px 1px 2px;cursor:pointer;display:inline-block;margin:0 5px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:middle;box-sizing:border-box;font-size:13px;line-height:21px;border-radius:4px;padding:2px 10px 2px;margin-bottom:2px;-webkit-appearance:none;appearance:none}.wrap .wp-heading-inline+.page-title-action:hover,.wrap .add-new-h2:hover,.wrap .add-new-h2:active:hover,.wrap .page-title-action:hover,.wrap .page-title-action:active:hover{background-color:#e34c84}.wrap .wp-heading-inline+.page-title-action:focus,.wrap .add-new-h2:focus,.wrap .add-new-h2:active:focus,.wrap .page-title-action:focus,.wrap .page-title-action:active:focus{box-shadow:0 0 0 2px #eb6594;background-color:#e34c84}.wp-core-ui .button{background:#fff}.wp-core-ui .button:focus{border-color:#2271b1;box-shadow:0 0 3px #5198d9}.wp-core-ui .button-primary{background:#2271b1;border-color:#0a4b78;color:#fff;text-shadow:none}.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary:focus{background-color:#3582c4}.ui-tabs-nav li,.wp-switch-editor{background-color:#f6f7f7 !important}.plugin-card a,.popular-tags a,.filter-links>li>a{color:#2271b1}.plugin-card a:hover,.plugin-card a:focus,.popular-tags a:hover,.popular-tags a:focus,.filter-links>li>a:hover,.filter-links>li>a:focus{color:#0a4b78}.plugin-card a:focus,.popular-tags a:focus,.filter-links>li>a:focus{box-shadow:0 0 0 1px #2271b1,0 0 2px 1px #5198d9}.plugin-card-bottom,.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd),.ui-tabs-panel,.ui-tabs-nav li.ui-tabs-active,.ui-tabs-nav li.ui-tabs-active:hover,div.mce-toolbar-grp,.html-active .switch-html,.tmce-active .switch-tmce,#post-status-info,.quicktags-toolbar,#major-publishing-actions{background-color:#fff;border-color:#d7e1e9}.wp-filter .search-form{margin-right:10px}@media only screen and (max-width: 1000px){.wp-filter .search-form{margin-left:10px}}@media only screen and (max-width: 782px){.wp-filter .search-form input[type=search].wp-filter-search{padding:5px}}@media only screen and (max-width: 480px){.wp-filter .search-form.search-plugins{align-items:center;display:flex}.wp-filter .search-form.search-plugins .wp-filter-search{flex:0 1 auto;max-width:none;width:100%}.wp-filter .search-form select{flex-shrink:0}.wp-filter .search-form>label{flex:1 1 auto}}.form-toggle[type=checkbox]{display:none}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;box-sizing:border-box;padding:2px;width:40px;height:24px;vertical-align:middle;align-self:flex-start;outline:0;cursor:pointer;transition:all .4s ease,box-shadow 0s}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{left:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.accessible-focus .form-toggle__switch:focus{box-shadow:0 0 0 2px #2271b1}.form-toggle__label{cursor:pointer}.is-disabled .form-toggle__label{cursor:default}.form-toggle__label .form-toggle__label-content{flex:0 1 100%;margin-left:12px}.accessible-focus .form-toggle:focus+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #2271b1}.accessible-focus .form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #5198d9}.form-toggle+.form-toggle__label .form-toggle__switch{background:#a7aaad}.form-toggle:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#c3c4c7}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:not(:disabled)+.form-toggle__label:hover .form-toggle__switch{background:#5198d9}.form-toggle:disabled+label.form-toggle__label span.form-toggle__switch{opacity:.25;cursor:default}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#2271b1}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#c3c4c7}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px} \ No newline at end of file
diff --git a/plugins/jetpack/modules/carousel/jetpack-carousel-rtl.css b/plugins/jetpack/modules/carousel/jetpack-carousel-rtl.css
index bdfa6af0..75b412e6 100644
--- a/plugins/jetpack/modules/carousel/jetpack-carousel-rtl.css
+++ b/plugins/jetpack/modules/carousel/jetpack-carousel-rtl.css
@@ -1 +1 @@
-[data-carousel-extra]{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-overlay{background:#000}div.jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background:-webkit-gradient(linear,right bottom,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));position:fixed;bottom:0;z-index:2147483647;width:100%;height:15px}.jp-carousel-next-button span,.jp-carousel-previous-button span{background:url(../modules/carousel/images/arrows.png) no-repeat center center;background-size:200px 126px}.jp-carousel-msg{font-family:"Open Sans",sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.jp-carousel-next-button span,.jp-carousel-previous-button span{background-image:url(../modules/carousel/images/arrows-2x.png)}}.jp-carousel-wrap{font-family:"Helvetica Neue",sans-serif!important}.jp-carousel-info{position:absolute;bottom:0;text-align:right!important;-webkit-font-smoothing:subpixel-antialiased!important}.jp-carousel-info ::selection{background:#68c9e8;color:#fff}.jp-carousel-info ::-moz-selection{background:#68c9e8;color:#fff}.jp-carousel-photo-info{position:relative;right:25%;width:50%}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-info h2{background:100% 0!important;border:none!important;color:#999;display:block!important;font:normal 13px/1.25em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;margin:7px 0 0 0!important;padding:10px 0 0!important;overflow:hidden;text-align:right;text-shadow:none!important;text-transform:none!important;-webkit-font-smoothing:subpixel-antialiased}.jp-carousel-next-button,.jp-carousel-previous-button{text-indent:-9999px;overflow:hidden;cursor:pointer}.jp-carousel-next-button span,.jp-carousel-previous-button span{position:absolute;top:0;bottom:0;width:82px;zoom:1;opacity:.2}.jp-carousel-transitions .jp-carousel-next-button span,.jp-carousel-transitions .jp-carousel-previous-button span{transition:.5s opacity ease-out}.jp-carousel-next-button:hover span,.jp-carousel-previous-button:hover span{opacity:.6}.jp-carousel-next-button span{background-position:-110px center;left:0}.jp-carousel-previous-button span{background-position:-10px center;right:0}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:#999;font:normal 11px/1.2em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;padding:5px 0 5px 2px;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:#68c9e8;border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-next-button,.jp-carousel-previous-button,.jp-carousel-slide,.jp-carousel-slide img{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.jp-carousel-slide{position:fixed;width:0;bottom:0;background-color:#000;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}.jp-carousel-transitions .jp-carousel-slide{transition:.3s ease-out}.jp-carousel-slide.selected{position:absolute!important;opacity:1}.jp-carousel-slide{opacity:.25}.jp-carousel-slide img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;background:100% 0!important;border:none!important;padding:0!important;box-shadow:0 2px 8px rgba(0,0,0,.1);zoom:1}.jp-carousel-transitions .jp-carousel-slide{transition:opacity .4s linear}.jp-carousel-close-hint{color:#999;cursor:default;letter-spacing:0!important;padding:.35em 0 0;position:absolute;text-align:left;width:90%}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint span{cursor:pointer;background-color:#000;background-color:rgba(0,0,0,.8);display:inline-block;height:22px;font:400 24px/1 "Helvetica Neue",sans-serif!important;line-height:22px;margin:0 .4em 0 0;text-align:center;vertical-align:middle;width:22px;border-radius:4px}.jp-carousel-transitions .jp-carousel-close-hint span{transition:border-color .2s linear}.jp-carousel-close-hint:hover{cursor:default;color:#fff}.jp-carousel-close-hint:hover span{border-color:#fff}a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background:url(../modules/carousel/images/carousel-sprite.png?5) no-repeat;background-size:16px 200px}div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{margin:0 0 0 14px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#303030;padding-left:8px!important;border-radius:2px;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{margin:0 -12px 0 2px!important}div.jp-carousel-buttons a.jp-carousel-reblog,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{background-position:6px -36px;padding-left:auto!important;padding-right:26px!important;color:#999}div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:100% -156px;padding-right:19px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{cursor:default}div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:6px -56px;color:#68c9e8}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{background-image:url(../modules/carousel/images/carousel-sprite-2x.png?5)}}div#carousel-reblog-box{background:#222;background:-moz-linear-gradient(bottom,#222,#333);background:-webkit-gradient(linear,right bottom,right top,from(#222),to(#333));padding:3px 0 0;display:none;margin:5px auto 0;border-radius:2px;box-shadow:0 0 20px rgba(0,0,0,.9);height:74px;width:565px}#carousel-reblog-box textarea{background:#999;font:13px/1.4 "Helvetica Neue",sans-serif!important;color:#444;padding:3px 6px;width:370px;height:48px;float:right;margin:6px 9px 0 9px;border:1px solid #666;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px}#carousel-reblog-box textarea:focus{background:#ccc;color:#222}#carousel-reblog-box label{color:#aaa;font-size:11px;padding-left:2px;padding-right:2px;display:inline;font-weight:400}#carousel-reblog-box select{width:110px;padding:0;font-size:12px;font-family:"Helvetica Neue",sans-serif!important;background:#333;color:#eee;border:1px solid #444;margin-top:5px}#carousel-reblog-box .submit,#wrapper #carousel-reblog-box p.response{float:right;width:154px;padding-top:0;padding-right:1px;overflow:hidden;height:34px;margin:3px 2px 0 0!important}#wrapper #carousel-reblog-box p.response{font-size:13px;clear:none;padding-right:2px;height:34px;color:#aaa}#carousel-reblog-box input#carousel-reblog-submit,#jp-carousel-comment-form-button-submit{font:13px/24px "Helvetica Neue",sans-serif!important;margin-top:8px;padding:0 10px!important;border-radius:1em;height:24px;color:#333;cursor:pointer;font-weight:400;background:#aaa;background:-moz-linear-gradient(bottom,#aaa,#ccc);background:-webkit-gradient(linear,right bottom,right top,from(#aaa),to(#ccc));border:1px solid #444}#carousel-reblog-box input#carousel-reblog-submit:hover,#jp-carousel-comment-form-button-submit:hover{background:#ccc;background:-moz-linear-gradient(bottom,#ccc,#eee);background:-webkit-gradient(linear,right bottom,right top,from(#ccc),to(#eee))}#carousel-reblog-box .canceltext{color:#aaa;font-size:11px;line-height:24px}#carousel-reblog-box .canceltext a{color:#fff}.jp-carousel-titleanddesc{border-top:1px solid #222;color:#999;font-size:15px;padding-top:24px;margin-bottom:20px;font-weight:400}.jp-carousel-titleanddesc-title{font:300 1.5em/1.1 "Helvetica Neue",sans-serif!important;text-transform:none!important;color:#fff;margin:0 0 15px;padding:0}.jp-carousel-titleanddesc-desc p{color:#999;line-height:1.4;margin-bottom:.75em}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-titleanddesc p a{color:#fff!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-titleanddesc p b,.jp-carousel-titleanddesc p strong{font-weight:700;color:#999}.jp-carousel-titleanddesc p em,.jp-carousel-titleanddesc p i{font-style:italic;color:#999}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-titleanddesc p a:hover{color:#68c9e8!important}.jp-carousel-titleanddesc p:empty{display:none}.jp-carousel-left-column-wrapper h1:after,.jp-carousel-left-column-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-image-meta{background:#111;border:1px solid #222;color:#fff;font-size:13px;font:12px/1.4 "Helvetica Neue",sans-serif!important;overflow:hidden;padding:18px 20px;width:209px!important}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:"Helvetica Neue",sans-serif!important;position:inherit!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;background:100% 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 0 15px 2%!important;color:#fff!important;font-size:13px!important}.jp-carousel-image-meta h5{color:#999!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{padding-right:23px;display:inline-block;clear:both;color:#999;line-height:1;font-weight:400;font-size:13px;text-decoration:none;background-position:100% -82px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-right:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 2px 0 1px}a.jp-carousel-image-download:hover{background-position:100% -122px;color:#68c9e8;border:none!important}.jp-carousel-image-map{position:relative;margin:-20px -20px 20px;border-bottom:1px solid rgba(255,255,255,.17);height:154px}.jp-carousel-image-map img.gmap-main{border-top-right-radius:6px;border-left:1px solid rgba(255,255,255,.17)}.jp-carousel-image-map div.gmap-topright{width:94px;height:154px;position:absolute;top:0;left:0}.jp-carousel-image-map div.imgclip{overflow:hidden;border-top-left-radius:6px}.jp-carousel-image-map div.gmap-topright img{margin-right:-40px}.jp-carousel-image-map img.gmap-bottomright{position:absolute;top:96px;left:0}.jp-carousel-comments{font:15px/1.7 "Helvetica Neue",sans-serif!important;font-weight:400;background:none transparent}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:#68c9e8!important}.jp-carousel-comment{background:none transparent;color:#999;margin-bottom:20px;clear:right;overflow:auto;width:100%}.jp-carousel-comment p{color:#999!important}.jp-carousel-comment .comment-author{font-size:13px;font-weight:400;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:#fff}.jp-carousel-comment .comment-gravatar{float:right}.jp-carousel-comment .comment-content{border:none;margin-right:85px;padding:0}.jp-carousel-comment .avatar{margin:0 0 0 20px;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important}.jp-carousel-comment .comment-date{color:#999;margin-top:4px;font-size:11px;display:inline;float:left}#jp-carousel-comment-form{margin:0 0 10px!important;float:right;width:100%}textarea#jp-carousel-comment-form-comment-field{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:15px/1.4 "Helvetica Neue",sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:#ccc;color:#222}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#aaa}#jp-carousel-comment-form-spinner{color:#fff;margin:22px 10px 0 0;display:block;width:20px;height:20px;float:right}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:13px/1.4 "Helvetica Neue",sans-serif!important;padding:3px 6px;float:right;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:#ccc;color:#222}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:22px 0 0;float:right}#jp-carousel-comment-form-commenting-as fieldset{float:right;border:none;margin:20px 0 0 0;padding:0}#jp-carousel-comment-form-commenting-as fieldset{clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:0 0 3px 20px;float:right;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;float:left}#js-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;background:rgba(0,0,0,.7);border-radius:2px;font:13px/1.4 "Helvetica Neue",sans-serif!important;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 5px 5px rgba(0,0,0,1)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:#999}#jp-carousel-comments-loading{font:400 15px/1.7 "Helvetica Neue",sans-serif!important;display:none;color:#999;text-align:right;margin-bottom:20px}.jp-carousel-light .jp-carousel-overlay{background:#fff}.jp-carousel-light .jp-carousel-next-button:hover span,.jp-carousel-light .jp-carousel-previous-button:hover span{opacity:.8}.jp-carousel-light .jp-carousel-close-hint:hover,.jp-carousel-light .jp-carousel-titleanddesc div{color:#000!important}.jp-carousel-light .jp-carousel-comment .comment-author a,.jp-carousel-light .jp-carousel-comments p a,.jp-carousel-light .jp-carousel-info h2 a,.jp-carousel-light .jp-carousel-titleanddesc p a{color:#1e8cbe!important}.jp-carousel-light .jp-carousel-comment .comment-author a:hover,.jp-carousel-light .jp-carousel-comments p a:hover,.jp-carousel-light .jp-carousel-info h2 a:hover,.jp-carousel-light .jp-carousel-titleanddesc p a:hover{color:#f1831e!important}.jp-carousel-light .jp-carousel-comment,.jp-carousel-light .jp-carousel-comment p,.jp-carousel-light .jp-carousel-info h2,.jp-carousel-light .jp-carousel-titleanddesc,.jp-carousel-light .jp-carousel-titleanddesc p,.jp-carousel-light .jp-carousel-titleanddesc p b,.jp-carousel-light .jp-carousel-titleanddesc p em,.jp-carousel-light .jp-carousel-titleanddesc p i,.jp-carousel-light .jp-carousel-titleanddesc p strong,.jp-carousel-light div.jp-carousel-buttons a{color:#666}.jp-carousel-light .jp-carousel-buttons{border-bottom-color:#f0f0f0;background:#f5f5f5}.jp-carousel-light div.jp-carousel-buttons a:hover{text-decoration:none;color:#f1831e}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:4px -56px;padding-right:24px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#2ea2cc;color:#fff}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:100% -176px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-position:5px -36px}.jp-carousel-light div#carousel-reblog-box{background:#eee;background:-moz-linear-gradient(bottom,#ececec,#f7f7f7);background:-webkit-gradient(linear,right bottom,right top,from(#ececec),to(#f7f7f7));box-shadow:0 2px 10px rgba(0,0,0,.1);border:1px solid #ddd}.jp-carousel-light #carousel-reblog-box textarea{border:1px inset #ccc;color:#666;border:1px solid #cfcfcf;background:#fff}.jp-carousel-light #carousel-reblog-box .canceltext{color:#888}.jp-carousel-light #carousel-reblog-box .canceltext a{color:#666}.jp-carousel-light #carousel-reblog-box select{background:#eee;color:#333;border:1px solid #aaa}#jp-carousel-comment-form-button-submit,.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit{color:#333;background:#fff;background:-moz-linear-gradient(bottom,#ddd,#fff);background:-webkit-gradient(linear,right bottom,right top,from(#ddd),to(#fff));border:1px solid #aaa}.jp-carousel-light .jp-carousel-image-meta{background:#fafafa;border:1px solid #eee;border-top-color:#f5f5f5;border-right-color:#f5f5f5;color:#333}.jp-carousel-light .jp-carousel-image-meta li{color:#000!important}.jp-carousel-light .jp-carousel-close-hint{color:#ccc}.jp-carousel-light .jp-carousel-close-hint span{background-color:#fff;border-color:#ccc}.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#aaa}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus{color:#333}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#ddd}.jp-carousel-light a.jp-carousel-image-download{background-position:100% -122px}.jp-carousel-light a.jp-carousel-image-download:hover{background-position:100% -122px;color:#f1831e}.jp-carousel-light textarea#jp-carousel-comment-form-comment-field{background:#fbfbfb;color:#333;border:1px solid #dfdfdf;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input{background:#fbfbfb;border:1px solid #dfdfdf;color:#333;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus{background:#fbfbfb;color:#333}.jp-carousel-light #jp-carousel-comment-post-results span{background:#f7f7f7;border:1px solid #dfdfdf;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.jp-carousel-light .jp-carousel-slide{background-color:#fff}.jp-carousel-light .jp-carousel-titleanddesc{border-top:1px solid #eee}.jp-carousel-light .jp-carousel-fadeaway{background:-moz-linear-gradient(bottom,rgba(255,255,255,.75),rgba(255,255,255,0));background:-webkit-gradient(linear,right bottom,right top,from(rgba(255,255,255,.75)),to(rgba(255,255,255,0)))}@media only screen and (max-width:760px){.jp-carousel-info{margin:0 10px!important}.jp-carousel-next-button,.jp-carousel-previous-button{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box}.jp-carousel-close-hint{font-weight:800!important;font-size:26px!important;position:fixed!important;top:-10px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:#000}.jp-carousel-fadeaway{display:none}#jp-carousel-comment-form-container{display:none!important}.jp-carousel-titleanddesc{padding-top:0!important;border:none!important}.jp-carousel-titleanddesc-title{font-size:1em!important}.jp-carousel-left-column-wrapper{padding:0;width:100%!important}.jp-carousel-photo-info{right:0!important;width:100%!important}} \ No newline at end of file
+:root{--jp-carousel-primary-color:#fff;--jp-carousel-primary-subtle-color:#999;--jp-carousel-bg-color:#000;--jp-carousel-bg-faded-color:#222;--jp-carousel-border-color:#3a3a3a}:root .jp-carousel-light{--jp-carousel-primary-color:#000;--jp-carousel-primary-subtle-color:#646970;--jp-carousel-bg-color:#fff;--jp-carousel-bg-faded-color:#fbfbfb;--jp-carousel-border-color:#dcdcde}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev{background-image:none}[data-carousel-extra]:not(.jp-carousel-wrap) img,[data-carousel-extra]:not(.jp-carousel-wrap) img+figcaption{cursor:pointer}.jp-carousel-wrap *{line-height:inherit}.jp-carousel-wrap.swiper-container{height:auto;width:100vw}.jp-carousel-overlay .swiper-zoom-container{background-size:200%;background-repeat:no-repeat;background-position:center}.jp-carousel-overlay .swiper-slide.swiper-slide-next .swiper-zoom-container img,.jp-carousel-overlay .swiper-slide.swiper-slide-prev .swiper-zoom-container img{transition:none!important}.jp-carousel-overlay .swiper-button-next,.jp-carousel-overlay .swiper-button-prev{opacity:.5;transition:.5s opacity ease-out;height:initial;width:initial;padding:20px 40px;background-image:none}.jp-carousel-overlay .swiper-button-next:hover,.jp-carousel-overlay .swiper-button-prev:hover{opacity:1}.jp-carousel-overlay .swiper-button-next:after,.jp-carousel-overlay .swiper-button-prev:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after,.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after{content:none}.jp-carousel-overlay .swiper-button-next svg,.jp-carousel-overlay .swiper-button-prev svg{height:30px;width:28px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-overlay{font-family:'Helvetica Neue',sans-serif!important;z-index:2147483647;overflow-x:hidden;overflow-y:auto;direction:rtl;position:fixed;top:0;left:0;bottom:0;right:0;background:var(--jp-carousel-bg-color)}.jp-carousel-overlay *{box-sizing:border-box}.jp-carousel-overlay h1:before,.jp-carousel-overlay h2:before,.jp-carousel-overlay h3:before{content:none;display:none}.jp-carousel-overlay .swiper-container .swiper-button-prev{right:0;left:auto}.jp-carousel-overlay .swiper-container .swiper-button-next{left:0;right:auto}.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-next,.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-prev{transform:scaleX(-1)}.jp-carousel-container{display:grid;grid-template-rows:1fr 64px;height:100%}.jp-carousel-hide-controls .jp-carousel-container{grid-template-rows:1fr}.jp-carousel-hide-controls .swiper-wrapper{margin-top:-32px}.jp-carousel-hide-controls .jp-swiper-button-next,.jp-carousel-hide-controls .jp-swiper-button-prev{margin-top:-54px}.jp-carousel-msg{font-family:'Open Sans',sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 2px 0 20px;background-color:var(--jp-carousel-primary-color);border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.jp-carousel-info{display:flex;flex-direction:column;text-align:right!important;-webkit-font-smoothing:subpixel-antialiased!important;z-index:100;background-color:var(--jp-carousel-bg-color);transition:opacity .2s ease-out;opacity:1}.jp-carousel-hide-controls .jp-carousel-info{visibility:hidden;height:0;overflow:hidden}.jp-carousel-info-footer{position:relative;background-color:var(--jp-carousel-bg-color);height:64px;display:flex;align-items:center;justify-content:space-between;width:100vw}.jp-carousel-info-extra{display:none;background-color:var(--jp-carousel-bg-color);padding:35px;width:100vw;border-top:1px solid var(--jp-carousel-bg-faded-color)}.jp-carousel-title-and-caption{margin-bottom:15px}.jp-carousel-info-extra.jp-carousel-show{display:block}.jp-carousel-info ::selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-info ::-moz-selection{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-primary-color)}.jp-carousel-photo-info{right:0!important;width:100%!important}.jp-carousel-comments-wrapper{padding:0;width:100%!important;display:none}.jp-carousel-comments-wrapper.jp-carousel-show{display:block}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:none}.jp-carousel-transitions .jp-carousel-photo-info{transition:.4s ease-out}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:var(--jp-carousel-primary-subtle-color);font:normal 11px/1.2em 'Helvetica Neue',sans-serif!important;letter-spacing:0!important;padding:5px 0 5px 2px;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:var(--jp-carousel-primary-color);border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-slide,.jp-carousel-slide img{transform:translate3d(0,0,0)}.jp-carousel-close-hint{cursor:default;letter-spacing:0!important;position:fixed;top:20px;left:30px;padding:10px;text-align:left;width:45px;height:45px;z-index:15;color:var(--jp-carousel-primary-color);cursor:pointer;transition:opacity .2s ease-out}.jp-carousel-transitions .jp-carousel-close-hint{transition:color .2s linear}.jp-carousel-close-hint svg{padding:3px 2px;background:var(--jp-carousel-bg-color);border-radius:4px}.jp-carousel-close-hint:hover{color:var(--jp-carousel-primary-color)}.jp-carousel-close-hint:hover span{border-color:var(--jp-carousel-primary-color)}.jp-carousel-pagination-container{flex:1;margin:0 35px 0 15px}.jp-carousel-pagination,.jp-swiper-pagination{color:var(--jp-carousel-primary-color);font-size:15px;font-weight:400;white-space:nowrap;display:none;position:static!important}.jp-carousel-pagination-container .swiper-pagination{text-align:right;line-height:8px}.jp-carousel-pagination{padding-right:5px}.jp-swiper-pagination .swiper-pagination-bullet{background:var(--jp-carousel-primary-subtle-color);margin:0 9px}.jp-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{background:var(--jp-carousel-primary-color)}.jp-swiper-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active){background:var(--jp-carousel-primary-color);opacity:.5}.jp-carousel-info-footer .jp-carousel-photo-title-container{flex-basis:50vw;flex:4;justify-content:center;overflow:hidden;margin:0}.jp-carousel-photo-caption,.jp-carousel-photo-title{background:100% 0!important;border:none!important;display:inline-block;font:normal 20px/1.3em 'Helvetica Neue',sans-serif;line-height:normal;letter-spacing:0!important;margin:0 0 10px 0;padding:0;overflow:hidden;text-shadow:none!important;text-transform:none!important;color:var(--jp-carousel-primary-color)}.jp-carousel-info-footer .jp-carousel-photo-caption{text-align:center;font-size:15px;white-space:nowrap;color:var(--jp-carousel-primary-subtle-color);cursor:pointer;margin:0;text-overflow:ellipsis}.jp-carousel-info-footer .jp-carousel-photo-caption p{margin:0}.jp-carousel-photo-title{font-size:32px;margin-bottom:2px}.jp-carousel-photo-description{color:var(--jp-carousel-primary-subtle-color);font-size:16px;margin:25px 0;width:100%}.jp-carousel-photo-description{overflow:hidden;overflow-wrap:break-word}.jp-carousel-photo-description p{color:var(--jp-carousel-primary-subtle-color);line-height:1.4;margin-bottom:0}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-photo-description p a{color:var(--jp-carousel-primary-color)!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-photo-description p b,.jp-carousel-photo-description p strong{font-weight:700;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-photo-description p em,.jp-carousel-photo-description p i{font-style:italic;color:var(--jp-carousel-primary-subtle-color)}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-photo-description p a:hover{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-photo-description p:empty{display:none}.jp-carousel-comments-wrapper h1:after,.jp-carousel-comments-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-caption{font-size:14px;font-weight:400;margin:0}.jp-carousel-image-meta{color:var(--jp-carousel-primary-color);font-size:13px;font:12px/1.4 'Helvetica Neue',sans-serif!important;width:100%;display:none}.jp-carousel-image-meta.jp-carousel-show{display:block}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:'Helvetica Neue',sans-serif!important;position:inherit!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;background:100% 0!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;display:inline-block!important;vertical-align:top!important;margin:0 0 15px 2%!important;color:var(--jp-carousel-primary-color)!important;font-size:13px!important}.jp-carousel-image-meta h5{color:var(--jp-carousel-primary-subtle-color)!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{display:inline-block;clear:both;color:var(--jp-carousel-primary-subtle-color);line-height:1;font-weight:400;font-size:14px;text-decoration:none}a.jp-carousel-image-download svg{display:inline-block;vertical-align:middle;margin:0 3px;padding-bottom:2px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-right:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 2px 0 1px}.jp-carousel-comments{font:15px/1.7 'Helvetica Neue',sans-serif!important;font-weight:400;background:none transparent;width:100%;bottom:10px;margin-top:20px}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:var(--jp-carousel-primary-color)!important}.jp-carousel-comment{background:none transparent;color:var(--jp-carousel-primary-subtle-color);overflow:auto;width:100%;display:flex}.jp-carousel-comment+.jp-carousel-comment{margin-top:20px}.jp-carousel-comment:last-of-type{margin-bottom:20px}.jp-carousel-comment p{color:var(--jp-carousel-primary-subtle-color)!important}.jp-carousel-comment .comment-author{font-size:15px;font-weight:500;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:var(--jp-carousel-primary-color)}.jp-carousel-comment .comment-gravatar{float:none;margin-left:10px}.jp-carousel-comment .comment-content{border:none;padding:0}.jp-carousel-comment .avatar{margin:0;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important;min-width:64px;min-height:64px;width:64px;height:64px}.jp-carousel-comment .comment-date{color:var(--jp-carousel-primary-subtle-color);font-size:11px;border-bottom:1px solid var(--jp-carousel-bg-faded-color);margin-bottom:6px}#jp-carousel-comment-form{margin:0 0 10px!important;width:100%}#jp-carousel-comment-form.jp-carousel-is-disabled{opacity:.5;pointer-events:none}textarea#jp-carousel-comment-form-comment-field{background:var(--jp-carousel-bg-faded-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1);border-radius:3px;overflow:hidden;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-loading-overlay{display:none;position:fixed;top:0;bottom:0;right:0;left:0}#jp-carousel-loading-wrapper{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw}#jp-carousel-library-loading,#jp-carousel-library-loading:after{border-radius:50%;width:40px;height:40px}#jp-carousel-library-loading{float:right;margin:22px 10px 0 0;font-size:10px;position:relative;text-indent:-9999em;border-top:8px solid rgba(255,255,255,.2);border-left:8px solid rgba(255,255,255,.2);border-bottom:8px solid rgba(255,255,255,.2);border-right:8px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear}#jp-carousel-comment-form-spinner,#jp-carousel-comment-form-spinner:after{border-radius:50%;width:20px;height:20px}#jp-carousel-comment-form-spinner{display:none;float:right;margin:22px 10px 0 0;font-size:10px;position:absolute;text-indent:-9999em;border-top:4px solid rgba(255,255,255,.2);border-left:4px solid rgba(255,255,255,.2);border-bottom:4px solid rgba(255,255,255,.2);border-right:4px solid var(--jp-carousel-primary-color);transform:translateZ(0);animation:load8 1.1s infinite linear;margin:0 auto;top:calc(50% - 15px);right:0;bottom:0;left:0}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}.jp-carousel-info-content-wrapper{max-width:800px;margin:auto}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:var(--jp-carousel-bg-color);border:1px solid var(--jp-carousel-border-color);color:var(--jp-carousel-primary-subtle-color);font:16px/1.4 'Helvetica Neue',sans-serif!important;padding:10px;float:right;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:var(--jp-carousel-bg-faded-color);color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:22px 0 0;float:right}#jp-carousel-comment-form-commenting-as fieldset{float:right;border:none;margin:20px 0 0 0;padding:0;clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 'Helvetica Neue',sans-serif!important;margin:0 0 3px 20px;float:right;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;margin-right:auto;display:block;border:solid 1px var(--jp-carousel-primary-color);background:var(--jp-carousel-bg-color);border-radius:3px;padding:8px 16px;font-size:14px;color:var(--jp-carousel-primary-color)}#jp-carousel-comment-form-button-submit:active,#jp-carousel-comment-form-button-submit:focus{background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color)}#jp-carousel-comment-form-container{margin-bottom:15px;width:100%;margin-top:20px;color:var(--jp-carousel-primary-subtle-color);position:relative;overflow:hidden}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;box-sizing:border-box;border-radius:2px;font:13px/1.4 'Helvetica Neue',sans-serif!important;border:1px solid var(--jp-carousel-border-color);box-shadow:inset 0 0 5px 0 rgba(0,0,0,.2)}.jp-carousel-comment-post-error{color:#df4926}#jp-carousel-comments-closed{display:none;color:var(--jp-carousel-primary-subtle-color)}#jp-carousel-comments-loading{font:400 15px/1.7 'Helvetica Neue',sans-serif!important;display:none;color:var(--jp-carousel-primary-subtle-color);text-align:right;margin-bottom:20px;width:100%;bottom:10px;margin-top:20px}.jp-carousel-photo-icons-container{flex:1;display:block;text-align:left;margin:0 30px 0 20px;white-space:nowrap}.jp-carousel-icon-btn{padding:16px;text-decoration:none;border:none;background:100% 0;display:inline-block;height:64px}.jp-carousel-icon{border:none;pointer-events:none;display:inline-block;line-height:0;font-weight:400;font-style:normal;border-radius:4px;width:31px;padding:4px 3px 3px}.jp-carousel-icon svg{display:inline-block}.jp-carousel-overlay rect{fill:var(--jp-carousel-primary-color)}.jp-carousel-selected .jp-carousel-icon{background:var(--jp-carousel-primary-color)}.jp-carousel-selected rect{fill:var(--jp-carousel-bg-color)}.jp-carousel-icon-comments.jp-carousel-show{display:inline-block}.jp-carousel-icon .jp-carousel-has-comments-indicator{display:none;font-size:12px;vertical-align:top;margin-right:-16px;line-height:1;padding:2px 4px;border-radius:4px;background:var(--jp-carousel-primary-color);color:var(--jp-carousel-bg-color);font-weight:400;font-family:'Helvetica Neue',sans-serif!important;position:relative}.jp-carousel-selected .jp-carousel-icon .jp-carousel-has-comments-indicator{background:var(--jp-carousel-bg-color);color:var(--jp-carousel-primary-color)}.jp-carousel-has-comments-indicator.jp-carousel-show{display:inline-block}@media only screen and (max-width:760px){.jp-carousel-overlay .swiper-container .swiper-button-next,.jp-carousel-overlay .swiper-container .swiper-button-prev{display:none!important}.jp-carousel-buttons{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;box-sizing:border-box;margin-right:0}.jp-carousel-close-hint{font-size:26px!important;position:fixed!important;top:10px;left:10px}.admin-bar .jp-carousel-close-hint{top:40px}.jp-carousel-slide img{opacity:1}.jp-carousel-wrap{background-color:var(--jp-carousel-bg-color)}.jp-carousel-fadeaway{display:none}.jp-carousel-info>.jp-carousel-photo-info{display:none}.jp-carousel-comments-wrapper>.jp-carousel-photo-info{display:block}.jp-carousel-caption{overflow:visible!important}.jp-carousel-info-footer .jp-carousel-photo-title-container{display:none}.jp-carousel-photo-icons-container{margin:0 0 0 10px;white-space:nowrap}.jp-carousel-icon-btn{padding-right:20px}.jp-carousel-pagination{padding-right:5px}.jp-carousel-pagination-container{margin-right:25px}.jp-carousel-comment .avatar{min-width:48px}#jp-carousel-comment-form-commenting-as fieldset,#jp-carousel-comment-form-commenting-as input{width:100%;float:none}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/carousel/jetpack-carousel.css b/plugins/jetpack/modules/carousel/jetpack-carousel.css
index 33e2b9c4..f0e13263 100644
--- a/plugins/jetpack/modules/carousel/jetpack-carousel.css
+++ b/plugins/jetpack/modules/carousel/jetpack-carousel.css
@@ -1,33 +1,149 @@
-[data-carousel-extra] {
- cursor: pointer; /* adds a cursor when the carousel takes effect */
+:root {
+ --jp-carousel-primary-color: #fff;
+ --jp-carousel-primary-subtle-color: #999;
+ --jp-carousel-bg-color: #000;
+ --jp-carousel-bg-faded-color: #222;
+ --jp-carousel-border-color: #3a3a3a;
+}
+
+:root .jp-carousel-light {
+ --jp-carousel-primary-color: #000;
+ --jp-carousel-primary-subtle-color: #646970;
+ --jp-carousel-bg-color: #fff;
+ --jp-carousel-bg-faded-color: #fbfbfb;
+ --jp-carousel-border-color: #dcdcde;
+}
+
+.jp-carousel-overlay .swiper-button-prev,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-next,
+.jp-carousel-overlay .swiper-button-next,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev {
+ background-image: none;
+}
+/* end of temporary fix */
+
+[data-carousel-extra]:not( .jp-carousel-wrap ) img, [data-carousel-extra]:not( .jp-carousel-wrap ) img + figcaption {
+ cursor: pointer;
}
.jp-carousel-wrap * {
- line-height:inherit; /* prevent declarations of line-height in the universal selector */
+ line-height: inherit;
}
-.jp-carousel-overlay {
- background: #000;
+.jp-carousel-wrap.swiper-container {
+ height: auto;
+ width: 100vw;
+}
+
+.jp-carousel-overlay .swiper-zoom-container {
+ background-size: 200%;
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+/*
+To prevent flash of prev/next image scale transition after pinch zoom we need to hide them.
+Swiper does not add a class of `swiper-slide-zoomed` to slides on pinch and zoom
+so we have to target all affected elements in touch devices.
+*/
+.jp-carousel-overlay .swiper-slide.swiper-slide-prev .swiper-zoom-container img,
+.jp-carousel-overlay .swiper-slide.swiper-slide-next .swiper-zoom-container img {
+ transition: none !important;
+}
+
+.jp-carousel-overlay .swiper-button-prev,
+.jp-carousel-overlay .swiper-button-next {
+ opacity: 0.5;
+ transition: 0.5s opacity ease-out;
+ height: initial;
+ width: initial;
+ padding: 20px 40px;
+ background-image: none;
+}
+
+.jp-carousel-overlay .swiper-button-prev:hover,
+.jp-carousel-overlay .swiper-button-next:hover {
+ opacity: 1;
}
-div.jp-carousel-fadeaway {
- background: -moz-linear-gradient(bottom, rgba(0,0,0,0.5), rgba(0,0,0,0));
- background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0)));
+.jp-carousel-overlay .swiper-button-next:after,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after,
+.jp-carousel-overlay .swiper-button-prev:after,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after {
+ content: none;
+}
+
+.jp-carousel-overlay .swiper-button-prev svg,
+.jp-carousel-overlay .swiper-button-next svg {
+ height: 30px;
+ width: 28px;
+ background: var(--jp-carousel-bg-color);
+ border-radius: 4px;
+}
+
+.jp-carousel-overlay {
+ font-family: 'Helvetica Neue', sans-serif !important;
+ z-index: 2147483647;
+ overflow-x: hidden;
+ overflow-y: auto;
+ direction: ltr;
position: fixed;
+ top: 0;
+ right: 0;
bottom: 0;
- z-index: 2147483647;
- width: 100%;
- height: 15px;
+ left: 0;
+ background: var(--jp-carousel-bg-color);
+}
+
+.jp-carousel-overlay * {
+ box-sizing: border-box;
+}
+
+/* Fix for Twenty Nineteen theme compatibility */
+.jp-carousel-overlay h1:before,
+.jp-carousel-overlay h2:before,
+.jp-carousel-overlay h3:before {
+ content: none;
+ display: none;
+}
+
+.jp-carousel-overlay .swiper-container .swiper-button-prev {
+ left: 0;
+ right: auto;
+}
+
+.jp-carousel-overlay .swiper-container .swiper-button-next {
+ right: 0;
+ left: auto;
+}
+
+.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-prev,
+.jp-carousel-overlay .swiper-container.swiper-container-rtl .swiper-button-next {
+ transform: scaleX( -1 );
+}
+
+.jp-carousel-container {
+ display: grid;
+ grid-template-rows: 1fr 64px; /* 1. main carousel, 2. info area as footer */
+ height: 100%;
+}
+
+.jp-carousel-hide-controls .jp-carousel-container {
+ grid-template-rows: 1fr;
+}
+
+.jp-carousel-hide-controls .swiper-wrapper {
+ margin-top: -32px; /* Compensate for the remove of the height of the info bar. */
}
-.jp-carousel-next-button span,
-.jp-carousel-previous-button span {
- background: url(./images/arrows.png) no-repeat center center;
- background-size: 200px 126px;
+
+.jp-carousel-hide-controls .jp-swiper-button-next,
+.jp-carousel-hide-controls .jp-swiper-button-prev {
+ margin-top: -54px; /* The height of the info bar plus any top padding on the nav button itself. */
}
.jp-carousel-msg {
- font-family: "Open Sans", sans-serif;
+ font-family: 'Open Sans', sans-serif;
font-style: normal;
display: inline-block;
line-height: 19px;
@@ -35,126 +151,103 @@ div.jp-carousel-fadeaway {
font-size: 14px;
text-align: center;
margin: 25px 20px 0 2px;
- background-color: #fff;
+ background-color: var(--jp-carousel-primary-color);
border-left: 4px solid #ffba00;
- -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
- box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
-}
-
-@media
-only screen and (-webkit-min-device-pixel-ratio: 1.5),
-only screen and (-o-min-device-pixel-ratio: 3/2),
-only screen and (min--moz-device-pixel-ratio: 1.5),
-only screen and (min-device-pixel-ratio: 1.5) {
- .jp-carousel-next-button span,
- .jp-carousel-previous-button span {
- background-image: url(./images/arrows-2x.png);
- }
-}
-
-.jp-carousel-wrap {
- font-family: "Helvetica Neue", sans-serif !important;
+ -webkit-box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
+ box-shadow: 0 1px 1px 0 rgba( 0, 0, 0, 0.1 );
}
.jp-carousel-info {
- position: absolute;
- bottom: 0;
+ display: flex;
+ flex-direction: column;
text-align: left !important;
-webkit-font-smoothing: subpixel-antialiased !important;
+ z-index: 100;
+ background-color: var(--jp-carousel-bg-color);
+ transition: opacity 200ms ease-out;
+ opacity: 1;
}
-.jp-carousel-info ::selection {
- background: #68c9e8; /* Safari */
- color: #fff;
- }
-
-.jp-carousel-info ::-moz-selection {
- background: #68c9e8; /* Firefox */
- color: #fff;
+.jp-carousel-hide-controls .jp-carousel-info {
+ visibility: hidden;
+ height: 0;
+ overflow: hidden;
}
-.jp-carousel-photo-info {
+.jp-carousel-info-footer {
position: relative;
- left: 25%;
- width: 50%;
+ background-color: var(--jp-carousel-bg-color);
+ height: 64px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 100vw;
}
-.jp-carousel-transitions .jp-carousel-photo-info {
- -webkit-transition: 400ms ease-out;
- -moz-transition: 400ms ease-out;
- -o-transition: 400ms ease-out;
- transition: 400ms ease-out;
+.jp-carousel-info-extra {
+ display: none;
+ background-color: var(--jp-carousel-bg-color);
+ padding: 35px;
+ width: 100vw;
+ border-top: 1px solid var(--jp-carousel-bg-faded-color);
}
-.jp-carousel-info h2 {
- background: none !important;
- border: none !important;
- color: #999;
- display: block !important;
- font: normal 13px/1.25em "Helvetica Neue", sans-serif !important;
- letter-spacing: 0 !important;
- margin: 7px 0 0 0 !important;
- padding: 10px 0 0 !important;
- overflow: hidden;
- text-align: left;
- text-shadow: none !important;
- text-transform: none !important;
- -webkit-font-smoothing: subpixel-antialiased;
+.jp-carousel-title-and-caption {
+ margin-bottom: 15px;
}
-.jp-carousel-next-button,
-.jp-carousel-previous-button {
- text-indent: -9999px;
- overflow: hidden;
- cursor: pointer;
+.jp-carousel-info-extra.jp-carousel-show {
+ display: block;
}
-.jp-carousel-next-button span,
-.jp-carousel-previous-button span {
- position: absolute;
- top: 0;
- bottom: 0;
- width: 82px;
- zoom: 1;
- filter: alpha(opacity=20);
- opacity: 0.2;
+.jp-carousel-info ::selection {
+ background: var(--jp-carousel-primary-color); /* Safari */
+ color: var(--jp-carousel-primary-color);
}
-.jp-carousel-transitions .jp-carousel-next-button span,
-.jp-carousel-transitions .jp-carousel-previous-button span {
- -webkit-transition: 500ms opacity ease-out;
- -moz-transition: 500ms opacity ease-out;
- -o-transition: 500ms opacity ease-out;
- transition: 500ms opacity ease-out;
+.jp-carousel-info ::-moz-selection {
+ background: var(--jp-carousel-primary-color); /* Firefox */
+ color: var(--jp-carousel-primary-color);
}
-.jp-carousel-next-button:hover span,
-.jp-carousel-previous-button:hover span {
- filter: alpha(opacity=60);
- opacity: 0.6;
+.jp-carousel-photo-info {
+ left: 0 !important;
+ width: 100% !important;
}
-.jp-carousel-next-button span {
- background-position: -110px center;
- right: 0;
+
+.jp-carousel-comments-wrapper {
+ padding: 0;
+ width: 100% !important;
+ display: none;
+}
+
+.jp-carousel-comments-wrapper.jp-carousel-show {
+ display: block;
+}
+
+.jp-carousel-comments-wrapper > .jp-carousel-photo-info {
+ display: none;
}
-.jp-carousel-previous-button span {
- background-position: -10px center;
- left:0;
+.jp-carousel-transitions .jp-carousel-photo-info {
+ -webkit-transition: 400ms ease-out;
+ -moz-transition: 400ms ease-out;
+ -o-transition: 400ms ease-out;
+ transition: 400ms ease-out;
}
.jp-carousel-buttons {
- margin:-18px -20px 15px;
- padding:8px 10px;
- border-bottom:1px solid #222;
+ margin: -18px -20px 15px;
+ padding: 8px 10px;
+ border-bottom: 1px solid #222;
background: #222;
text-align: center;
}
div.jp-carousel-buttons a {
border: none !important;
- color: #999;
- font: normal 11px/1.2em "Helvetica Neue", sans-serif !important;
+ color: var(--jp-carousel-primary-subtle-color);
+ font: normal 11px/1.2em 'Helvetica Neue', sans-serif !important;
letter-spacing: 0 !important;
padding: 5px 2px 5px 0;
text-decoration: none !important;
@@ -164,7 +257,7 @@ div.jp-carousel-buttons a {
}
div.jp-carousel-buttons a:hover {
- color: #68c9e8;
+ color: var(--jp-carousel-primary-color);
border: none !important;
}
@@ -175,74 +268,29 @@ div.jp-carousel-buttons a:hover {
transition: none !important;
}
-.jp-carousel-slide, .jp-carousel-slide img, .jp-carousel-next-button,
-.jp-carousel-previous-button {
- -webkit-transform:translate3d(0, 0, 0);
- -moz-transform:translate3d(0, 0, 0);
- -o-transform:translate3d(0, 0, 0);
- -ms-transform:translate3d(0, 0, 0);
-}
-
-.jp-carousel-slide {
- position:fixed;
- width:0;
- bottom:0;
- background-color:#000;
- border-radius:2px;
- -webkit-border-radius:2px;
- -moz-border-radius:2px;
- -ms-border-radius:2px;
- -o-border-radius:2px;
-}
-
-.jp-carousel-transitions .jp-carousel-slide {
- -webkit-transition: 300ms ease-out;
- -moz-transition: 300ms ease-out;
- -o-transition: 300ms ease-out;
- transition: 300ms ease-out;
-}
-
-.jp-carousel-slide.selected {
- position: absolute !important;
- filter: alpha(opacity=100);
- opacity: 1;
-}
-
-.jp-carousel-slide {
- filter: alpha(opacity=25);
- opacity: 0.25;
-}
-
+.jp-carousel-slide,
.jp-carousel-slide img {
- display: block;
- width: 100% !important;
- height: 100% !important;
- max-width: 100% !important;
- max-height: 100% !important;
- background: none !important;
- border: none !important;
- padding: 0 !important;
- -webkit-box-shadow: 0 2px 8px rgba(0,0,0,0.1);
- -moz-box-shadow: 0 2px 8px rgba(0,0,0,0.1);
- box-shadow: 0 2px 8px rgba(0,0,0,0.1);
- zoom: 1;
-}
-
-.jp-carousel-transitions .jp-carousel-slide {
- -webkit-transition: opacity 400ms linear;
- -moz-transition: opacity 400ms linear;
- -o-transition: opacity 400ms linear;
- transition: opacity 400ms linear;
+ -webkit-transform: translate3d( 0, 0, 0 );
+ -moz-transform: translate3d( 0, 0, 0 );
+ -o-transform: translate3d( 0, 0, 0 );
+ -ms-transform: translate3d( 0, 0, 0 );
+ transform: translate3d( 0, 0, 0 );
}
.jp-carousel-close-hint {
- color: #999;
cursor: default;
letter-spacing: 0 !important;
- padding:0.35em 0 0;
- position: absolute;
+ position: fixed;
+ top: 20px;
+ right: 30px;
+ padding: 10px;
text-align: right;
- width: 90%;
+ width: 45px;
+ height: 45px;
+ z-index: 15;
+ color: var(--jp-carousel-primary-color);
+ cursor: pointer;
+ transition: opacity 200ms ease-out;
}
.jp-carousel-transitions .jp-carousel-close-hint {
@@ -252,291 +300,185 @@ div.jp-carousel-buttons a:hover {
transition: color 200ms linear;
}
-.jp-carousel-close-hint span {
- cursor: pointer;
- background-color: black;
- background-color: rgba(0,0,0,0.8);
- display: inline-block;
- height: 22px;
- font: 400 24px/1 "Helvetica Neue", sans-serif !important;
- line-height: 22px;
- margin: 0 0 0 0.4em;
- text-align: center;
- vertical-align: middle;
- width: 22px;
- -moz-border-radius: 4px;
- -webkit-border-radius: 4px;
+.jp-carousel-close-hint svg {
+ padding: 3px 2px;
+ background: var(--jp-carousel-bg-color);
border-radius: 4px;
}
-.jp-carousel-transitions .jp-carousel-close-hint span {
- -webkit-transition: border-color 200ms linear;
- -moz-transition: border-color 200ms linear;
- -o-transition: border-color 200ms linear;
- transition: border-color 200ms linear;
-}
-
.jp-carousel-close-hint:hover {
- cursor: default;
- color: #fff;
+ color: var(--jp-carousel-primary-color);
}
.jp-carousel-close-hint:hover span {
- border-color: #fff;
-}
-
-div.jp-carousel-buttons a.jp-carousel-reblog,
-div.jp-carousel-buttons a.jp-carousel-commentlink,
-a.jp-carousel-image-download {
- background: url(./images/carousel-sprite.png?5) no-repeat;
- background-size: 16px 200px;
-}
-
-div.jp-carousel-buttons a.jp-carousel-reblog,
-div.jp-carousel-buttons a.jp-carousel-commentlink {
- margin: 0 14px 0 0 !important;
-}
-
-div.jp-carousel-buttons a.jp-carousel-reblog.reblogged {
- background-color: #303030;
- padding-right: 8px !important;
- border-radius: 2px;
- border-radius: 2px;
- -webkit-border-radius:2px;
- -moz-border-radius:2px;
- -ms-border-radius:2px;
- -o-border-radius:2px;
-}
-
-div.jp-carousel-buttons a.jp-carousel-reblog.reblogged {
- margin: 0 2px 0 -12px !important;
+ border-color: var(--jp-carousel-primary-color);
}
-div.jp-carousel-buttons a.jp-carousel-reblog,
-div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover {
- background-position: 6px -36px;
- padding-right: auto !important;
- padding-left: 26px !important;
- color: #999;
+/** Pagination Start **/
+.jp-carousel-pagination-container {
+ flex: 1;
+ margin: 0 15px 0 35px;
}
-div.jp-carousel-buttons a.jp-carousel-commentlink {
- background-position: 0px -156px;
- padding-left: 19px !important;
+.jp-swiper-pagination,
+.jp-carousel-pagination {
+ color: var(--jp-carousel-primary-color);
+ font-size: 15px; /* same as .jp-carousel-info-footer .jp-carousel-photo-title */
+ font-weight: normal;
+ white-space: nowrap;
+ display: none;
+ position: static !important;
}
-div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover {
- cursor: default;
+.jp-carousel-pagination-container .swiper-pagination {
+ text-align: left;
+ line-height: 8px;
}
-div.jp-carousel-buttons a.jp-carousel-reblog:hover {
- background-position: 6px -56px;
- color: #68c9e8;
+.jp-carousel-pagination {
+ padding-left: 5px;
}
-@media
-only screen and (-webkit-min-device-pixel-ratio: 1.5),
-only screen and (-o-min-device-pixel-ratio: 3/2),
-only screen and (min--moz-device-pixel-ratio: 1.5),
-only screen and (min-device-pixel-ratio: 1.5) {
- div.jp-carousel-buttons a.jp-carousel-reblog,
- div.jp-carousel-buttons a.jp-carousel-commentlink,
- a.jp-carousel-image-download {
- background-image: url(./images/carousel-sprite-2x.png?5);
- }
+.jp-swiper-pagination .swiper-pagination-bullet {
+ background: var(--jp-carousel-primary-subtle-color);
+ margin: 0 9px;
}
-/* reblog */
-div#carousel-reblog-box {
- background: #222;
- background: -moz-linear-gradient(bottom, #222, #333);
- background: -webkit-gradient(linear, left bottom, left top, from(#222), to(#333));
- padding: 3px 0 0;
- display: none;
- margin: 5px auto 0;
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px;
- -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.9);
- -moz-box-shadow: 0 0 20px rgba(0,0,0,0.9);
- box-shadow: 0 0 20px rgba(0,0,0,0.9);
- height: 74px;
- width: 565px;
-}
-
-#carousel-reblog-box textarea {
- background: #999;
- font: 13px/1.4 "Helvetica Neue", sans-serif !important;
- color: #444;
- padding: 3px 6px;
- width: 370px;
- height: 48px;
- float: left;
- margin: 6px 9px 0 9px;
- border: 1px solid #666;
- -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
- box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
- -moz-border-radius: 2px;
- -webkit-border-radius: 2px;
- border-radius: 2px;
+.jp-swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
+ background: var(--jp-carousel-primary-color);
}
-#carousel-reblog-box textarea:focus {
- background: #ccc;
- color: #222;
+.jp-swiper-pagination .swiper-pagination-bullet:not( .swiper-pagination-bullet-active ) {
+ background: var(--jp-carousel-primary-color);
+ opacity: 0.5;
}
+/** Pagination End **/
-#carousel-reblog-box label {
- color: #aaa;
- font-size: 11px;
- padding-right: 2px;
- padding-left: 2px;
- display: inline;
- font-weight: normal;
+/** Title and Desc Start **/
+.jp-carousel-info-footer .jp-carousel-photo-title-container {
+ flex-basis: 50vw;
+ flex: 4;
+ justify-content: center;
+ overflow: hidden;
+ margin: 0;
}
-#carousel-reblog-box select {
- width: 110px;
+.jp-carousel-photo-title,
+.jp-carousel-photo-caption {
+ background: none !important;
+ border: none !important;
+ display: inline-block;
+ font: normal 20px/1.3em 'Helvetica Neue', sans-serif;
+ line-height: normal;
+ letter-spacing: 0 !important;
+ margin: 0 0 10px 0;
padding: 0;
- font-size: 12px;
- font-family: "Helvetica Neue", sans-serif !important;
- background: #333;
- color: #eee;
- border: 1px solid #444;
- margin-top:5px;
-}
-
-#carousel-reblog-box .submit,
-#wrapper #carousel-reblog-box p.response {
- float: left;
- width: 154px;
- padding-top: 0;
- padding-left: 1px;
overflow: hidden;
- height: 34px;
- margin:3px 0 0 2px !important;
-}
-
-#wrapper #carousel-reblog-box p.response {
- font-size: 13px;
- clear: none;
- padding-left: 2px;
- height: 34px;
- color: #aaa;
+ text-shadow: none !important;
+ text-transform: none !important;
+ color: var(--jp-carousel-primary-color);
}
-#carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit {
- font: 13px/24px "Helvetica Neue", sans-serif !important;
- margin-top: 8px;
- padding: 0 10px !important;
- border-radius: 1em;
- height: 24px;
- color: #333;
- cursor:pointer;
- font-weight: normal;
- background: #aaa;
- background: -moz-linear-gradient(bottom, #aaa, #ccc);
- background: -webkit-gradient(linear, left bottom, left top, from(#aaa), to(#ccc));
- border: 1px solid #444;
+.jp-carousel-info-footer .jp-carousel-photo-caption {
+ text-align: center;
+ font-size: 15px; /* same as .jp-carousel-pagination */
+ white-space: nowrap;
+ color: var(--jp-carousel-primary-subtle-color);
+ cursor: pointer;
+ margin: 0;
+ text-overflow: ellipsis;
}
-#carousel-reblog-box input#carousel-reblog-submit:hover, #jp-carousel-comment-form-button-submit:hover {
- background: #ccc;
- background: -moz-linear-gradient(bottom, #ccc, #eee);
- background: -webkit-gradient(linear, left bottom, left top, from(#ccc), to(#eee));
+.jp-carousel-info-footer .jp-carousel-photo-caption p {
+ margin: 0;
}
-#carousel-reblog-box .canceltext {
- color: #aaa;
- font-size: 11px;
- line-height: 24px;
+.jp-carousel-photo-title {
+ font-size: 32px;
+ margin-bottom: 2px;
}
-#carousel-reblog-box .canceltext a {
- color: #fff;
+.jp-carousel-photo-description {
+ color: var(--jp-carousel-primary-subtle-color);
+ font-size: 16px;
+ margin: 25px 0;
+ width: 100%;
}
-/* reblog end */
-
-/** Title and Desc Start **/
-.jp-carousel-titleanddesc {
- border-top: 1px solid #222;
- color: #999;
- font-size: 15px;
- padding-top: 24px;
- margin-bottom: 20px;
- font-weight:400;
-}
-.jp-carousel-titleanddesc-title {
- font: 300 1.5em/1.1 "Helvetica Neue", sans-serif !important;
- text-transform: none !important; /* prevents uppercase from leaking through */
- color: #fff;
- margin: 0 0 15px;
- padding:0;
+.jp-carousel-photo-description {
+ overflow: hidden;
+ overflow-wrap: break-word;
}
-.jp-carousel-titleanddesc-desc p {
- color: #999;
- line-height:1.4;
- margin-bottom: 0.75em;
+.jp-carousel-photo-description p {
+ color: var(--jp-carousel-primary-subtle-color);
+ line-height: 1.4;
+ margin-bottom: 0;
}
-.jp-carousel-titleanddesc p a,
+.jp-carousel-photo-description p a,
.jp-carousel-comments p a,
.jp-carousel-info h2 a {
- color: #fff !important;
+ color: var(--jp-carousel-primary-color) !important;
border: none !important;
text-decoration: underline !important;
font-weight: normal !important;
font-style: normal !important;
}
-.jp-carousel-titleanddesc p strong,
-.jp-carousel-titleanddesc p b {
+.jp-carousel-photo-description p strong,
+.jp-carousel-photo-description p b {
font-weight: bold;
- color: #999;
+ color: var(--jp-carousel-primary-subtle-color);
}
-.jp-carousel-titleanddesc p em,
-.jp-carousel-titleanddesc p i {
+.jp-carousel-photo-description p em,
+.jp-carousel-photo-description p i {
font-style: italic;
- color: #999;
+ color: var(--jp-carousel-primary-subtle-color);
}
-
-.jp-carousel-titleanddesc p a:hover,
+.jp-carousel-photo-description p a:hover,
.jp-carousel-comments p a:hover,
.jp-carousel-info h2 a:hover {
- color: #68c9e8 !important;
+ color: var(--jp-carousel-primary-subtle-color) !important;
}
-.jp-carousel-titleanddesc p:empty {
+.jp-carousel-photo-description p:empty {
display: none;
}
.jp-carousel-photo-info h1:before,
.jp-carousel-photo-info h1:after,
-.jp-carousel-left-column-wrapper h1:before,
-.jp-carousel-left-column-wrapper h1:after {
- content:none !important;
+.jp-carousel-comments-wrapper h1:before,
+.jp-carousel-comments-wrapper h1:after {
+ content: none !important;
+}
+
+.jp-carousel-caption {
+ font-size: 14px;
+ font-weight: normal;
+ margin: 0;
}
+
/** Title and Desc End **/
/** Meta Box Start **/
.jp-carousel-image-meta {
- background: #111;
- border: 1px solid #222;
- color: #fff;
+ color: var(--jp-carousel-primary-color);
font-size: 13px;
- font: 12px/1.4 "Helvetica Neue", sans-serif !important;
- overflow: hidden;
- padding: 18px 20px;
- width: 209px !important;
+ font: 12px/1.4 'Helvetica Neue', sans-serif !important;
+ width: 100%;
+ display: none;
+}
+
+.jp-carousel-image-meta.jp-carousel-show {
+ display: block;
}
.jp-carousel-image-meta li,
.jp-carousel-image-meta h5 {
- font-family: "Helvetica Neue", sans-serif !important;
+ font-family: 'Helvetica Neue', sans-serif !important;
position: inherit !important;
top: auto !important;
right: auto !important;
@@ -559,28 +501,33 @@ div#carousel-reblog-box {
display: inline-block !important;
vertical-align: top !important;
margin: 0 2% 15px 0 !important;
- color: #fff !important;
- font-size:13px !important;
+ color: var(--jp-carousel-primary-color) !important;
+ font-size: 13px !important;
}
.jp-carousel-image-meta h5 {
- color: #999 !important;
+ color: var(--jp-carousel-primary-subtle-color) !important;
text-transform: uppercase !important;
- font-size:10px !important;
- margin:0 0 2px !important;
+ font-size: 10px !important;
+ margin: 0 0 2px !important;
letter-spacing: 0.1em !important;
}
a.jp-carousel-image-download {
- padding-left: 23px;
display: inline-block;
clear: both;
- color: #999;
+ color: var(--jp-carousel-primary-subtle-color);
line-height: 1;
font-weight: 400;
- font-size: 13px;
+ font-size: 14px;
text-decoration: none;
- background-position: 0 -82px;
+}
+
+a.jp-carousel-image-download svg {
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 3px;
+ padding-bottom: 2px;
}
a.jp-carousel-image-download span.photo-size {
@@ -594,134 +541,112 @@ a.jp-carousel-image-download span.photo-size-times {
padding: 0 1px 0 2px;
}
-a.jp-carousel-image-download:hover {
- background-position: 0 -122px;
- color: #68c9e8;
- border: none !important;
-}
-
/** Meta Box End **/
-/** GPS Map Start **/
-.jp-carousel-image-map {
- position: relative;
- margin: -20px -20px 20px;
- border-bottom: 1px solid rgba( 255, 255, 255, 0.17 );
- height: 154px;
-}
-
-.jp-carousel-image-map img.gmap-main {
- -moz-border-radius-topleft: 6px;
- border-top-left-radius: 6px;
- border-right: 1px solid rgba( 255, 255, 255, 0.17 );
-}
-.jp-carousel-image-map div.gmap-topright {
- width: 94px;
- height: 154px;
- position: absolute;
- top: 0;
- right: 0;
-}
-.jp-carousel-image-map div.imgclip {
- overflow: hidden;
- -moz-border-radius-topright: 6px;
- border-top-right-radius: 6px;
-}
-.jp-carousel-image-map div.gmap-topright img {
- margin-left: -40px;
-}
-.jp-carousel-image-map img.gmap-bottomright {
- position: absolute;
- top: 96px;
- right: 0;
-}
-
/** Comments Start **/
.jp-carousel-comments {
- font: 15px/1.7 "Helvetica Neue", sans-serif !important;
+ font: 15px/1.7 'Helvetica Neue', sans-serif !important;
font-weight: 400;
- background:none transparent;
+ background: none transparent;
+ width: 100%;
+ bottom: 10px;
+ margin-top: 20px;
}
-.jp-carousel-comments p a:hover, .jp-carousel-comments p a:focus, .jp-carousel-comments p a:active {
- color: #68c9e8 !important;
+.jp-carousel-comments p a:hover,
+.jp-carousel-comments p a:focus,
+.jp-carousel-comments p a:active {
+ color: var(--jp-carousel-primary-color) !important;
}
.jp-carousel-comment {
- background:none transparent;
- color: #999;
- margin-bottom: 20px;
- clear:left;
+ background: none transparent;
+ color: var(--jp-carousel-primary-subtle-color);
overflow: auto;
- width: 100%
+ width: 100%;
+ display: flex;
+}
+
+.jp-carousel-comment + .jp-carousel-comment {
+ margin-top: 20px;
+}
+
+.jp-carousel-comment:last-of-type {
+ margin-bottom: 20px;
}
.jp-carousel-comment p {
- color: #999 !important;
+ color: var(--jp-carousel-primary-subtle-color) !important;
}
.jp-carousel-comment .comment-author {
- font-size: 13px;
- font-weight:400;
- padding:0;
- width:auto;
+ font-size: 15px;
+ font-weight: 500;
+ padding: 0;
+ width: auto;
display: inline;
- float:none;
- border:none;
- margin:0;
+ float: none;
+ border: none;
+ margin: 0;
}
.jp-carousel-comment .comment-author a {
- color: #fff;
+ color: var(--jp-carousel-primary-color);
}
.jp-carousel-comment .comment-gravatar {
- float:left;
+ float: none;
+ margin-right: 10px;
}
.jp-carousel-comment .comment-content {
- border:none;
- margin-left:85px;
+ border: none;
padding: 0;
}
.jp-carousel-comment .avatar {
- margin:0 20px 0 0;
+ margin: 0;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
border: none !important;
padding: 0 !important;
background-color: transparent !important;
+ min-width: 64px;
+ min-height: 64px;
+ width: 64px;
+ height: 64px;
}
.jp-carousel-comment .comment-date {
- color:#999;
- margin-top: 4px;
- font-size:11px;
- display: inline;
- float: right;
- /*clear: right;*/
+ color: var(--jp-carousel-primary-subtle-color);
+ font-size: 11px;
+ border-bottom: 1px solid var(--jp-carousel-bg-faded-color);
+ margin-bottom: 6px;
}
#jp-carousel-comment-form {
- margin:0 0 10px !important;
- float: left;
+ margin: 0 0 10px !important;
width: 100%;
}
+#jp-carousel-comment-form.jp-carousel-is-disabled {
+ opacity: 0.5;
+ pointer-events: none;
+}
+
textarea#jp-carousel-comment-form-comment-field {
- background: rgba(34,34,34,0.9);
- border: 1px solid #3a3a3a;
- color: #aaa;
- font: 15px/1.4 "Helvetica Neue", sans-serif !important;
+ background: var(--jp-carousel-bg-faded-color);
+ border: 1px solid var(--jp-carousel-border-color);
+ color: var(--jp-carousel-primary-subtle-color);
+ font: 16px/1.4 'Helvetica Neue', sans-serif !important;
width: 100%;
padding: 10px 10px 5px;
margin: 0;
float: none;
height: 147px;
- -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
- box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
+ -webkit-box-shadow: inset 2px 2px 2px rgba( 0, 0, 0, 0.1 );
+ box-shadow: inset 2px 2px 2px rgba( 0, 0, 0, 0.1 );
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
@@ -736,344 +661,304 @@ textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder {
}
textarea#jp-carousel-comment-form-comment-field:focus {
- background: #ccc;
- color: #222;
+ background: var(--jp-carousel-bg-faded-color);
+ color: var(--jp-carousel-primary-subtle-color);
}
textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder {
- color: #aaa;
+ color: var(--jp-carousel-primary-subtle-color);
}
-#jp-carousel-comment-form-spinner {
- color: #fff;
- margin:22px 0 0 10px;
- display: block;
+#jp-carousel-loading-overlay {
+ display: none;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+}
+
+#jp-carousel-loading-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100vh;
+ width: 100vw;
+}
+
+#jp-carousel-library-loading,
+#jp-carousel-library-loading:after {
+ border-radius: 50%;
+ width: 40px;
+ height: 40px;
+}
+
+#jp-carousel-library-loading {
+ float: left;
+ margin: 22px 0 0 10px;
+ font-size: 10px;
+ position: relative;
+ text-indent: -9999em;
+ border-top: 8px solid rgba( 255, 255, 255, 0.2 );
+ border-right: 8px solid rgba( 255, 255, 255, 0.2 );
+ border-bottom: 8px solid rgba( 255, 255, 255, 0.2 );
+ border-left: 8px solid var(--jp-carousel-primary-color);
+ -webkit-transform: translateZ( 0 );
+ -ms-transform: translateZ( 0 );
+ transform: translateZ( 0 );
+ -webkit-animation: load8 1.1s infinite linear;
+ animation: load8 1.1s infinite linear;
+}
+
+#jp-carousel-comment-form-spinner,
+#jp-carousel-comment-form-spinner:after {
+ border-radius: 50%;
width: 20px;
height: 20px;
+}
+#jp-carousel-comment-form-spinner {
+ display: none;
float: left;
+ margin: 22px 0 0 10px;
+ font-size: 10px;
+ position: absolute; /* relative to .jp-carousel-comment-form-container */
+ text-indent: -9999em;
+ border-top: 4px solid rgba( 255, 255, 255, 0.2 );
+ border-right: 4px solid rgba( 255, 255, 255, 0.2 );
+ border-bottom: 4px solid rgba( 255, 255, 255, 0.2 );
+ border-left: 4px solid var(--jp-carousel-primary-color);
+ -webkit-transform: translateZ( 0 );
+ -ms-transform: translateZ( 0 );
+ transform: translateZ( 0 );
+ -webkit-animation: load8 1.1s infinite linear;
+ animation: load8 1.1s infinite linear;
+ margin: 0 auto;
+ top: calc( 50% - 15px );
+ left: 0;
+ bottom: 0;
+ right: 0;
+}
+
+@-webkit-keyframes load8 {
+ 0% {
+ -webkit-transform: rotate( 0deg );
+ transform: rotate( 0deg );
+ }
+ 100% {
+ -webkit-transform: rotate( 360deg );
+ transform: rotate( 360deg );
+ }
+}
+@keyframes load8 {
+ 0% {
+ -webkit-transform: rotate( 0deg );
+ transform: rotate( 0deg );
+ }
+ 100% {
+ -webkit-transform: rotate( 360deg );
+ transform: rotate( 360deg );
+ }
+}
+
+.jp-carousel-info-content-wrapper {
+ max-width: 800px;
+ margin: auto;
}
#jp-carousel-comment-form-submit-and-info-wrapper {
display: none;
- /*margin-bottom:15px;*/
overflow: hidden;
- width: 100%
-}
-
-#jp-carousel-comment-form-commenting-as {
+ width: 100%;
}
#jp-carousel-comment-form-commenting-as input {
- background: rgba(34,34,34,0.9);
- border: 1px solid #3a3a3a;
- color: #aaa;
- font: 13px/1.4 "Helvetica Neue", sans-serif !important;
- padding: 3px 6px;
+ background: var(--jp-carousel-bg-color);
+ border: 1px solid var(--jp-carousel-border-color);
+ color: var(--jp-carousel-primary-subtle-color);
+ font: 16px/1.4 'Helvetica Neue', sans-serif !important;
+ padding: 10px;
float: left;
- -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
- box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2);
+ -webkit-box-shadow: inset 2px 2px 2px rgba( 0, 0, 0, 0.2 );
+ box-shadow: inset 2px 2px 2px rgba( 0, 0, 0, 0.2 );
-moz-border-radius: 2px;
-webkit-border-radius: 2px;
border-radius: 2px;
- width:285px;
+ width: 285px;
}
#jp-carousel-comment-form-commenting-as input:focus {
- background: #ccc;
- color: #222;
+ background: var(--jp-carousel-bg-faded-color);
+ color: var(--jp-carousel-primary-subtle-color);
}
#jp-carousel-comment-form-commenting-as p {
- font: 400 13px/1.7 "Helvetica Neue", sans-serif !important;
- margin:22px 0 0;
+ font: 400 13px/1.7 'Helvetica Neue', sans-serif !important;
+ margin: 22px 0 0;
float: left;
}
#jp-carousel-comment-form-commenting-as fieldset {
- float:left;
- border:none;
- margin:20px 0 0 0;
- padding:0;
-}
-
-#jp-carousel-comment-form-commenting-as fieldset {
+ float: left;
+ border: none;
+ margin: 20px 0 0 0;
+ padding: 0;
clear: both;
}
#jp-carousel-comment-form-commenting-as label {
- font: 400 13px/1.7 "Helvetica Neue", sans-serif !important;
- margin:0 20px 3px 0;
- float:left;
- width:100px;
+ font: 400 13px/1.7 'Helvetica Neue', sans-serif !important;
+ margin: 0 20px 3px 0;
+ float: left;
+ width: 100px;
}
#jp-carousel-comment-form-button-submit {
margin-top: 20px;
- float:right;
+ margin-left: auto;
+ display: block;
+ border: solid 1px var(--jp-carousel-primary-color);
+ background: var(--jp-carousel-bg-color);
+ border-radius: 3px;
+ padding: 8px 16px;
+ font-size: 14px;
+ color: var(--jp-carousel-primary-color);
}
-#js-carousel-comment-form-container {
- margin-bottom:15px;
- overflow: auto;
- width: 100%;
+#jp-carousel-comment-form-button-submit:active,
+#jp-carousel-comment-form-button-submit:focus {
+ background: var(--jp-carousel-primary-color);
+ color: var(--jp-carousel-bg-color);
}
#jp-carousel-comment-form-container {
- margin-bottom:15px;
- overflow: auto;
+ margin-bottom: 15px;
width: 100%;
+ margin-top: 20px;
+ color: var(--jp-carousel-primary-subtle-color);
+ position: relative;
+ overflow: hidden;
}
#jp-carousel-comment-post-results {
display: none;
- overflow:auto;
- width:100%;
+ overflow: auto;
+ width: 100%;
}
#jp-carousel-comment-post-results span {
- display:block;
+ display: block;
text-align: center;
- margin-top:20px;
+ margin-top: 20px;
width: 100%;
overflow: auto;
padding: 1em 0;
box-sizing: border-box;
- background: rgba( 0, 0, 0, 0.7 );
border-radius: 2px;
- font: 13px/1.4 "Helvetica Neue", sans-serif !important;
- border: 1px solid rgba( 255, 255, 255, 0.17 );
- -webkit-box-shadow: inset 0px 0px 5px 5px rgba(0, 0, 0, 1);
- box-shadow: inset 0px 0px 5px 5px rgba(0, 0, 0, 1);
+ font: 13px/1.4 'Helvetica Neue', sans-serif !important;
+ border: 1px solid var(--jp-carousel-border-color);
+ -webkit-box-shadow: inset 0px 0px 5px 0px rgba( 0, 0, 0, 0.2 );
+ box-shadow: inset 0px 0px 5px 0px rgba( 0, 0, 0, 0.2 );
}
.jp-carousel-comment-post-error {
- color:#DF4926;
-}
-
-.jp-carousel-comment-post-success {
- /*color:#21759B;*/
+ color: #df4926;
}
#jp-carousel-comments-closed {
display: none;
- color: #999;
+ color: var(--jp-carousel-primary-subtle-color);
}
#jp-carousel-comments-loading {
- font: 400 15px/1.7 "Helvetica Neue", sans-serif !important;
+ font: 400 15px/1.7 'Helvetica Neue', sans-serif !important;
display: none;
- color: #999;
+ color: var(--jp-carousel-primary-subtle-color);
text-align: left;
margin-bottom: 20px;
+ width: 100%;
+ bottom: 10px;
+ margin-top: 20px;
}
-
-/* ----- Light variant ----- */
-
-.jp-carousel-light .jp-carousel-overlay {
- background: #fff;
-}
-
-.jp-carousel-light .jp-carousel-next-button:hover span,
-.jp-carousel-light .jp-carousel-previous-button:hover span {
- opacity: 0.8;
-}
-
-.jp-carousel-light .jp-carousel-close-hint:hover,
-.jp-carousel-light .jp-carousel-titleanddesc div {
- color: #000 !important;
-}
-
-.jp-carousel-light .jp-carousel-comments p a,
-.jp-carousel-light .jp-carousel-comment .comment-author a,
-.jp-carousel-light .jp-carousel-titleanddesc p a,
-.jp-carousel-light .jp-carousel-titleanddesc p a,
-.jp-carousel-light .jp-carousel-comments p a,
-.jp-carousel-light .jp-carousel-info h2 a {
- color: #1e8cbe !important;
-}
-
-.jp-carousel-light .jp-carousel-comments p a:hover,
-.jp-carousel-light .jp-carousel-comment .comment-author a:hover,
-.jp-carousel-light .jp-carousel-titleanddesc p a:hover,
-.jp-carousel-light .jp-carousel-titleanddesc p a:hover,
-.jp-carousel-light .jp-carousel-comments p a:hover,
-.jp-carousel-light .jp-carousel-info h2 a:hover {
- color: #f1831e !important;
-}
-
-.jp-carousel-light .jp-carousel-info h2,
-.jp-carousel-light .jp-carousel-titleanddesc,
-.jp-carousel-light .jp-carousel-titleanddesc p,
-.jp-carousel-light .jp-carousel-comment,
-.jp-carousel-light .jp-carousel-comment p,
-.jp-carousel-light div.jp-carousel-buttons a,
-.jp-carousel-light .jp-carousel-titleanddesc p strong,
-.jp-carousel-light .jp-carousel-titleanddesc p b,
-.jp-carousel-light .jp-carousel-titleanddesc p em,
-.jp-carousel-light .jp-carousel-titleanddesc p i {
- color: #666;
-}
-
-.jp-carousel-light .jp-carousel-buttons {
- border-bottom-color: #f0f0f0;
- background: #f5f5f5;
+/** Icons Start **/
+.jp-carousel-photo-icons-container {
+ flex: 1;
+ display: block;
+ text-align: right;
+ margin: 0 20px 0 30px;
+ white-space: nowrap;
}
-.jp-carousel-light div.jp-carousel-buttons a:hover {
+.jp-carousel-icon-btn {
+ padding: 16px;
text-decoration: none;
- color: #f1831e;
-}
-
-.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,
-.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover {
- background-position: 4px -56px;
- padding-left: 24px !important;
-}
-
-.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged {
- background-color: #2ea2cc;
- color: #fff;
-}
-
-.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink {
- background-position: 0px -176px;
-}
-
-.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged {
- background-position: 5px -36px;
-}
-
-.jp-carousel-light div#carousel-reblog-box {
- background: #eee;
- background: -moz-linear-gradient(bottom, #ececec, #f7f7f7);
- background: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f7f7f7));
- -webkit-box-shadow: 0 2px 6px rgba(0,0,0,0.1);
- -moz-box-shadow: 0 2px 10px rgba(0,0,0,0.1);
- box-shadow: 0 2px 10px rgba(0,0,0,0.1);
- border:1px solid #ddd;
-}
-
-.jp-carousel-light #carousel-reblog-box textarea {
- border: 1px inset #ccc;
- color: #666;
- border: 1px solid #cfcfcf;
- background: #fff;
-}
-
-.jp-carousel-light #carousel-reblog-box .canceltext {
- color: #888;
-}
-
-.jp-carousel-light #carousel-reblog-box .canceltext a {
- color: #666;
-}
-
-.jp-carousel-light #carousel-reblog-box select {
- background: #eee;
- color: #333;
- border: 1px solid #aaa;
-}
-
-.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit {
- color: #333;
- background: #fff;
- background: -moz-linear-gradient(bottom, #ddd, #fff);
- background: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff));
- border: 1px solid #aaa;
-}
-
-.jp-carousel-light .jp-carousel-image-meta {
- background: #fafafa;
- border: 1px solid #eee;
- border-top-color: #f5f5f5;
- border-left-color: #f5f5f5;
- color: #333;
-}
-
-.jp-carousel-light .jp-carousel-image-meta li {
- color: #000 !important;
-}
-
-.jp-carousel-light .jp-carousel-close-hint {
- color: #ccc;
-}
-
-.jp-carousel-light .jp-carousel-close-hint span {
- background-color: white;
- border-color: #ccc;
-}
-
-.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder {
- color: #aaa;
-}
-
-.jp-carousel-light #jp-carousel-comment-form-comment-field:focus {
- color: #333;
+ border: none;
+ background: none;
+ display: inline-block;
+ height: 64px;
}
-.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder {
- color: #ddd;
+.jp-carousel-icon {
+ border: none;
+ pointer-events: none;
+ display: inline-block;
+ line-height: 0;
+ font-weight: 400;
+ font-style: normal;
+ border-radius: 4px;
+ width: 31px; /* Prevent comments indicator from changing icon width */
+ padding: 4px 3px 3px;
}
-.jp-carousel-light a.jp-carousel-image-download {
- background-position: 0 -122px;
+.jp-carousel-icon svg {
+ display: inline-block;
}
-.jp-carousel-light a.jp-carousel-image-download:hover {
- background-position: 0 -122px;
- color: #f1831e;
+.jp-carousel-overlay rect {
+ fill: var(--jp-carousel-primary-color);
}
-.jp-carousel-light textarea#jp-carousel-comment-form-comment-field {
- background: #fbfbfb;
- color: #333;
- border: 1px solid #dfdfdf;
- -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1);
- box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1);
+.jp-carousel-selected .jp-carousel-icon {
+ background: var(--jp-carousel-primary-color);
}
-
-.jp-carousel-light #jp-carousel-comment-form-commenting-as input {
- background: #fbfbfb;
- border: 1px solid #dfdfdf;
- color: #333;
- -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1);
- box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1);
+.jp-carousel-selected rect {
+ fill: var(--jp-carousel-bg-color);
}
-.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus {
- background: #fbfbfb;
- color: #333;
+.jp-carousel-icon-comments.jp-carousel-show {
+ display: inline-block;
}
-.jp-carousel-light #jp-carousel-comment-post-results span {
- background: #f7f7f7;
- border:1px solid #dfdfdf;
- -webkit-box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05);
- box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05);
+.jp-carousel-icon .jp-carousel-has-comments-indicator {
+ display: none;
+ font-size: 12px;
+ vertical-align: top;
+ margin-left: -16px;
+ line-height: 1;
+ padding: 2px 4px;
+ border-radius: 4px;
+ background: var(--jp-carousel-primary-color);
+ color: var(--jp-carousel-bg-color);
+ font-weight: normal;
+ font-family: 'Helvetica Neue', sans-serif !important;
+ position: relative;
}
-.jp-carousel-light .jp-carousel-slide {
- background-color:#fff;
+.jp-carousel-selected .jp-carousel-icon .jp-carousel-has-comments-indicator {
+ background: var(--jp-carousel-bg-color);
+ color: var(--jp-carousel-primary-color);
}
-.jp-carousel-light .jp-carousel-titleanddesc {
- border-top: 1px solid #eee;
+.jp-carousel-has-comments-indicator.jp-carousel-show {
+ display: inline-block;
}
-.jp-carousel-light .jp-carousel-fadeaway {
- background: -moz-linear-gradient(bottom, rgba(255,255,255,0.75), rgba(255,255,255,0));
- background: -webkit-gradient(linear, left bottom, left top, from(rgba(255,255,255,0.75)), to(rgba(255,255,255,0)));
-}
+/** Icons End **/
/* Small screens */
-@media only screen and (max-width: 760px) {
-
- .jp-carousel-info {
- margin: 0 10px !important;
- }
-
- .jp-carousel-next-button, .jp-carousel-previous-button {
+@media only screen and ( max-width: 760px ) {
+ .jp-carousel-overlay .swiper-container .swiper-button-next,
+ .jp-carousel-overlay .swiper-container .swiper-button-prev {
display: none !important;
}
@@ -1084,50 +969,76 @@ textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder
.jp-carousel-image-meta {
float: none !important;
width: 100% !important;
- -moz-box-sizing:border-box;
- -webkit-box-sizing:border-box;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
box-sizing: border-box;
+ margin-left: 0;
}
.jp-carousel-close-hint {
- font-weight: 800 !important;
font-size: 26px !important;
position: fixed !important;
- top: -10px;
+ top: 10px;
+ right: 10px;
+ }
+
+ /* The admin bar is fixed at top: 0*/
+ .admin-bar .jp-carousel-close-hint {
+ top: 40px;
}
.jp-carousel-slide img {
- filter: alpha(opacity=100);
opacity: 1;
}
.jp-carousel-wrap {
- background-color: #000;
+ background-color: var(--jp-carousel-bg-color);
}
.jp-carousel-fadeaway {
display: none;
}
- #jp-carousel-comment-form-container {
- display: none !important;
+ .jp-carousel-info > .jp-carousel-photo-info {
+ display: none;
}
- .jp-carousel-titleanddesc {
- padding-top: 0 !important;
- border: none !important;
+ .jp-carousel-comments-wrapper > .jp-carousel-photo-info {
+ display: block;
}
- .jp-carousel-titleanddesc-title {
- font-size: 1em !important;
+
+ .jp-carousel-caption {
+ overflow: visible !important;
}
- .jp-carousel-left-column-wrapper {
- padding: 0;
- width: 100% !important;
+ .jp-carousel-info-footer .jp-carousel-photo-title-container {
+ display: none;
}
- .jp-carousel-photo-info {
- left: 0 !important;
- width: 100% !important;
+ .jp-carousel-photo-icons-container {
+ margin: 0 10px 0 0;
+ white-space: nowrap;
+ }
+
+ .jp-carousel-icon-btn {
+ padding-left: 20px;
+ }
+
+ .jp-carousel-pagination {
+ padding-left: 5px;
+ }
+
+ .jp-carousel-pagination-container {
+ margin-left: 25px;
+ }
+
+ .jp-carousel-comment .avatar {
+ min-width: 48px;
+ }
+
+ #jp-carousel-comment-form-commenting-as fieldset,
+ #jp-carousel-comment-form-commenting-as input {
+ width: 100%;
+ float: none;
}
}
diff --git a/plugins/jetpack/modules/carousel/jetpack-carousel.js b/plugins/jetpack/modules/carousel/jetpack-carousel.js
index 2a5ad2d6..c9d295b8 100644
--- a/plugins/jetpack/modules/carousel/jetpack-carousel.js
+++ b/plugins/jetpack/modules/carousel/jetpack-carousel.js
@@ -1,1257 +1,973 @@
-/* global jetpackCarouselStrings, DocumentTouch */
-
-jQuery( document ).ready( function( $ ) {
- // gallery faded layer and container elements
- var overlay,
- comments,
- gallery,
- container,
- nextButton,
- previousButton,
- info,
- transitionBegin,
- caption,
- resizeTimeout,
- photo_info,
- close_hint,
- commentInterval,
- lastSelectedSlide,
- screenPadding = 110,
- originalOverflow = $( 'body' ).css( 'overflow' ),
- originalHOverflow = $( 'html' ).css( 'overflow' ),
- proportion = 85,
- last_known_location_hash = '',
- imageMeta,
- titleAndDescription,
- commentForm,
- leftColWrapper,
- scrollPos;
-
- if ( window.innerWidth <= 760 ) {
- screenPadding = Math.round( ( window.innerWidth / 760 ) * 110 );
-
- if (
- screenPadding < 40 &&
- ( 'ontouchstart' in window || ( window.DocumentTouch && document instanceof DocumentTouch ) )
- ) {
- screenPadding = 0;
+/* global wpcom, jetpackCarouselStrings, DocumentTouch */
+
+( function () {
+ 'use strict';
+ var swiper;
+ /////////////////////////////////////
+ // Utility functions
+ /////////////////////////////////////
+ var util = ( function () {
+ var noop = function () {};
+
+ function texturize( text ) {
+ // Ensure we get a string.
+ text = text + '';
+ text = text.replace( /'/g, '&#8217;' ).replace( /&#039;/g, '&#8217;' );
+ text = text
+ .replace( /"/g, '&#8221;' )
+ .replace( /&#034;/g, '&#8221;' )
+ .replace( /&quot;/g, '&#8221;' )
+ .replace( /[\u201D]/g, '&#8221;' );
+ // Untexturize allowed HTML tags params double-quotes.
+ text = text.replace( /([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g, '$1="$2"' );
+ return text.trim();
}
- }
-
- // Adding a polyfill for browsers that do not have Date.now
- if ( 'undefined' === typeof Date.now ) {
- Date.now = function now() {
- return new Date().getTime();
- };
- }
- var keyListener = function( e ) {
- switch ( e.which ) {
- case 38: // up
- e.preventDefault();
- container.scrollTop( container.scrollTop() - 100 );
- break;
- case 40: // down
- e.preventDefault();
- container.scrollTop( container.scrollTop() + 100 );
- break;
- case 39: // right
- e.preventDefault();
- gallery.jp_carousel( 'next' );
- break;
- case 37: // left
- case 8: // backspace
- e.preventDefault();
- gallery.jp_carousel( 'previous' );
- break;
- case 27: // escape
- e.preventDefault();
- container.jp_carousel( 'close' );
- break;
- default:
- // making jslint happy
- break;
+ function applyReplacements( text, replacements ) {
+ if ( ! text ) {
+ return;
+ }
+ if ( ! replacements ) {
+ return text;
+ }
+ return text.replace( /{(\d+)}/g, function ( match, number ) {
+ return typeof replacements[ number ] !== 'undefined' ? replacements[ number ] : match;
+ } );
}
- };
-
- var resizeListener = function(/*e*/) {
- clearTimeout( resizeTimeout );
- resizeTimeout = setTimeout( function() {
- gallery.jp_carousel( 'slides' ).jp_carousel( 'fitSlide', true );
- gallery.jp_carousel( 'updateSlidePositions', true );
- gallery.jp_carousel( 'fitMeta', true );
- }, 200 );
- };
-
- var prepareGallery = function(/*dataCarouselExtra*/) {
- if ( ! overlay ) {
- overlay = $( '<div></div>' )
- .addClass( 'jp-carousel-overlay' )
- .css( {
- position: 'fixed',
- top: 0,
- right: 0,
- bottom: 0,
- left: 0,
- } );
- var buttons =
- '<a class="jp-carousel-commentlink" href="#">' + jetpackCarouselStrings.comment + '</a>';
- if ( 1 === Number( jetpackCarouselStrings.is_logged_in ) ) {
+ function getBackgroundImage( imgEl ) {
+ var canvas = document.createElement( 'canvas' ),
+ context = canvas.getContext && canvas.getContext( '2d' );
+
+ if ( ! imgEl ) {
+ return;
}
- buttons = $( '<div class="jp-carousel-buttons">' + buttons + '</div>' );
+ context.filter = 'blur(20px) ';
+ context.drawImage( imgEl, 0, 0 );
+ var url = canvas.toDataURL( 'image/png' );
+ canvas = null;
- caption = $( '<h2 itemprop="caption description"></h2>' );
- photo_info = $( '<div class="jp-carousel-photo-info"></div>' ).append( caption );
+ return url;
+ }
- imageMeta = $( '<div></div>' )
- .addClass( 'jp-carousel-image-meta' )
- .css( {
- float: 'right',
- 'margin-top': '20px',
- width: '250px',
- } );
+ return {
+ noop: noop,
+ texturize: texturize,
+ applyReplacements: applyReplacements,
+ getBackgroundImage: getBackgroundImage,
+ };
+ } )();
- imageMeta
- .append( buttons )
- .append( "<ul class='jp-carousel-image-exif' style='display:none;'></ul>" )
- .append( "<a class='jp-carousel-image-download' style='display:none;'></a>" )
- .append( "<div class='jp-carousel-image-map' style='display:none;'></div>" );
-
- titleAndDescription = $( '<div></div>' )
- .addClass( 'jp-carousel-titleanddesc' )
- .css( {
- width: '100%',
- 'margin-top': imageMeta.css( 'margin-top' ),
- } );
+ /////////////////////////////////////
+ // DOM-related utility functions
+ /////////////////////////////////////
+ var domUtil = ( function () {
+ // Helper matches function (not a polyfill), compatible with IE 11.
+ function matches( el, sel ) {
+ if ( Element.prototype.matches ) {
+ return el.matches( sel );
+ }
- var commentFormMarkup = '<div id="jp-carousel-comment-form-container">';
+ if ( Element.prototype.msMatchesSelector ) {
+ return el.msMatchesSelector( sel );
+ }
+ }
- if (
- jetpackCarouselStrings.local_comments_commenting_as &&
- jetpackCarouselStrings.local_comments_commenting_as.length
- ) {
- // Comments not enabled, fallback to local comments
+ // Helper closest parent node function (not a polyfill) based on
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
+ function closest( el, sel ) {
+ if ( el.closest ) {
+ return el.closest( sel );
+ }
- if (
- 1 !== Number( jetpackCarouselStrings.is_logged_in ) &&
- 1 === Number( jetpackCarouselStrings.comment_registration )
- ) {
- commentFormMarkup +=
- '<div id="jp-carousel-comment-form-commenting-as">' +
- jetpackCarouselStrings.local_comments_commenting_as +
- '</div>';
- } else {
- commentFormMarkup += '<form id="jp-carousel-comment-form">';
- commentFormMarkup +=
- '<textarea name="comment" class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea" id="jp-carousel-comment-form-comment-field" placeholder="' +
- jetpackCarouselStrings.write_comment +
- '"></textarea>';
- commentFormMarkup += '<div id="jp-carousel-comment-form-submit-and-info-wrapper">';
- commentFormMarkup +=
- '<div id="jp-carousel-comment-form-commenting-as">' +
- jetpackCarouselStrings.local_comments_commenting_as +
- '</div>';
- commentFormMarkup +=
- '<input type="submit" name="submit" class="jp-carousel-comment-form-button" id="jp-carousel-comment-form-button-submit" value="' +
- jetpackCarouselStrings.post_comment +
- '" />';
- commentFormMarkup += '<span id="jp-carousel-comment-form-spinner">&nbsp;</span>';
- commentFormMarkup += '<div id="jp-carousel-comment-post-results"></div>';
- commentFormMarkup += '</div>';
- commentFormMarkup += '</form>';
+ var current = el;
+
+ do {
+ if ( matches( current, sel ) ) {
+ return current;
}
- }
- commentFormMarkup += '</div>';
+ current = current.parentElement || current.parentNode;
+ } while ( current !== null && current.nodeType === 1 );
- commentForm = $( commentFormMarkup ).css( {
- width: '100%',
- 'margin-top': '20px',
- color: '#999',
- } );
+ return null;
+ }
- comments = $( '<div></div>' )
- .addClass( 'jp-carousel-comments' )
- .css( {
- width: '100%',
- bottom: '10px',
- 'margin-top': '20px',
- } );
+ function hide( el ) {
+ if ( el ) {
+ el.style.display = 'none';
+ }
+ }
- var commentsLoading = $(
- '<div id="jp-carousel-comments-loading"><span>' +
- jetpackCarouselStrings.loading_comments +
- '</span></div>'
- ).css( {
- width: '100%',
- bottom: '10px',
- 'margin-top': '20px',
- } );
+ function show( el ) {
+ if ( el ) {
+ // Everything we show and hide in Carousel is currently a block,
+ // so we can make this really straightforward.
+ el.style.display = 'block';
+ }
+ }
- var leftWidth = $( window ).width() - screenPadding * 2 - ( imageMeta.width() + 40 );
- leftWidth += 'px';
-
- leftColWrapper = $( '<div></div>' )
- .addClass( 'jp-carousel-left-column-wrapper' )
- .css( {
- width: Math.floor( leftWidth ),
- } )
- .append( titleAndDescription )
- .append( commentForm )
- .append( comments )
- .append( commentsLoading );
-
- var fadeaway = $( '<div></div>' ).addClass( 'jp-carousel-fadeaway' );
-
- info = $( '<div></div>' )
- .addClass( 'jp-carousel-info' )
- .css( {
- top: Math.floor( ( $( window ).height() / 100 ) * proportion ),
- left: screenPadding,
- right: screenPadding,
- } )
- .append( photo_info )
- .append( imageMeta );
+ function fade( el, start, end, callback ) {
+ if ( ! el ) {
+ return callback();
+ }
+
+ // Prepare for transition.
+ // Ensure the item is in the render tree, in its initial state.
+ el.style.removeProperty( 'display' );
+ el.style.opacity = start;
+ el.style.transition = 'opacity 0.2s';
+ el.style.pointerEvents = 'none';
+
+ var finished = function ( e ) {
+ if ( e.target === el && e.propertyName === 'opacity' ) {
+ el.style.removeProperty( 'transition' );
+ el.style.removeProperty( 'opacity' );
+ el.style.removeProperty( 'pointer-events' );
+ el.removeEventListener( 'transitionend', finished );
+ el.removeEventListener( 'transitioncancel', finished );
+ callback();
+ }
+ };
- if ( window.innerWidth <= 760 ) {
- photo_info.remove().insertAfter( titleAndDescription );
- info.prepend( leftColWrapper );
- } else {
- info.append( leftColWrapper );
- }
-
- var targetBottomPos = $( window ).height() - parseInt( info.css( 'top' ), 10 ) + 'px';
-
- nextButton = $( '<div><span></span></div>' )
- .addClass( 'jp-carousel-next-button' )
- .css( {
- right: '15px',
- } )
- .hide();
-
- previousButton = $( '<div><span></span></div>' )
- .addClass( 'jp-carousel-previous-button' )
- .css( {
- left: 0,
- } )
- .hide();
-
- nextButton.add( previousButton ).css( {
- position: 'fixed',
- top: '40px',
- bottom: targetBottomPos,
- width: screenPadding,
+ requestAnimationFrame( function () {
+ // Double rAF for browser compatibility.
+ requestAnimationFrame( function () {
+ el.addEventListener( 'transitionend', finished );
+ el.addEventListener( 'transitioncancel', finished );
+ // Trigger transition.
+ el.style.opacity = end;
+ } );
} );
+ }
- gallery = $( '<div></div>' )
- .addClass( 'jp-carousel' )
- .css( {
- position: 'absolute',
- top: 0,
- bottom: targetBottomPos,
- left: 0,
- right: 0,
- } );
+ function fadeIn( el, callback ) {
+ callback = callback || util.noop;
+ fade( el, '0', '1', callback );
+ }
- close_hint = $( '<div class="jp-carousel-close-hint"><span>&times;</span></div>' ).css( {
- position: 'fixed',
+ function fadeOut( el, callback ) {
+ callback = callback || util.noop;
+ fade( el, '1', '0', function () {
+ if ( el ) {
+ el.style.display = 'none';
+ }
+ callback();
} );
+ }
- container = $( '<div></div>' )
- .addClass( 'jp-carousel-wrap' )
- .addClass( 'jp-carousel-transitions' );
- if ( 'white' === jetpackCarouselStrings.background_color ) {
- container.addClass( 'jp-carousel-light' );
- }
-
- container.attr( 'itemscope', '' );
-
- container.attr( 'itemtype', 'https://schema.org/ImageGallery' );
-
- container
- .css( {
- position: 'fixed',
- top: 0,
- right: 0,
- bottom: 0,
- left: 0,
- 'z-index': 2147483647,
- 'overflow-x': 'hidden',
- 'overflow-y': 'auto',
- direction: 'ltr',
- } )
- .hide()
- .append( overlay )
- .append( gallery )
- .append( fadeaway )
- .append( info )
- .append( nextButton )
- .append( previousButton )
- .append( close_hint )
- .appendTo( $( 'body' ) )
- .click( function( e ) {
- var target = $( e.target ),
- wrap = target.parents( 'div.jp-carousel-wrap' ),
- data = wrap.data( 'carousel-extra' ),
- slide = wrap.find( 'div.selected' ),
- attachment_id = slide.data( 'attachment-id' );
- data = data || [];
-
- if (
- target.is( gallery ) ||
- target
- .parents()
- .add( target )
- .is( close_hint )
- ) {
- container.jp_carousel( 'close' );
- } else if ( target.hasClass( 'jp-carousel-commentlink' ) ) {
- e.preventDefault();
- e.stopPropagation();
- $( window ).unbind( 'keydown', keyListener );
- container.animate( { scrollTop: parseInt( info.position()[ 'top' ], 10 ) }, 'fast' );
- $( '#jp-carousel-comment-form-submit-and-info-wrapper' ).slideDown( 'fast' );
- $( '#jp-carousel-comment-form-comment-field' ).focus();
- } else if ( target.hasClass( 'jp-carousel-comment-login' ) ) {
- var url = jetpackCarouselStrings.login_url + '%23jp-carousel-' + attachment_id;
-
- window.location.href = url;
- } else if ( target.parents( '#jp-carousel-comment-form-container' ).length ) {
- var textarea = $( '#jp-carousel-comment-form-comment-field' )
- .blur( function() {
- $( window ).bind( 'keydown', keyListener );
- } )
- .focus( function() {
- $( window ).unbind( 'keydown', keyListener );
- } );
-
- var emailField = $( '#jp-carousel-comment-form-email-field' )
- .blur( function() {
- $( window ).bind( 'keydown', keyListener );
- } )
- .focus( function() {
- $( window ).unbind( 'keydown', keyListener );
- } );
-
- var authorField = $( '#jp-carousel-comment-form-author-field' )
- .blur( function() {
- $( window ).bind( 'keydown', keyListener );
- } )
- .focus( function() {
- $( window ).unbind( 'keydown', keyListener );
- } );
-
- var urlField = $( '#jp-carousel-comment-form-url-field' )
- .blur( function() {
- $( window ).bind( 'keydown', keyListener );
- } )
- .focus( function() {
- $( window ).unbind( 'keydown', keyListener );
- } );
-
- if ( textarea && textarea.attr( 'id' ) === target.attr( 'id' ) ) {
- // For first page load
- $( window ).unbind( 'keydown', keyListener );
- $( '#jp-carousel-comment-form-submit-and-info-wrapper' ).slideDown( 'fast' );
- } else if ( target.is( 'input[type="submit"]' ) ) {
- e.preventDefault();
- e.stopPropagation();
-
- $( '#jp-carousel-comment-form-spinner' ).spin( 'small', 'white' );
-
- var ajaxData = {
- action: 'post_attachment_comment',
- nonce: jetpackCarouselStrings.nonce,
- blog_id: data[ 'blog_id' ],
- id: attachment_id,
- comment: textarea.val(),
- };
-
- if ( ! ajaxData[ 'comment' ].length ) {
- gallery.jp_carousel( 'postCommentError', {
- field: 'jp-carousel-comment-form-comment-field',
- error: jetpackCarouselStrings.no_comment_text,
- } );
- return;
- }
-
- if ( 1 !== Number( jetpackCarouselStrings.is_logged_in ) ) {
- ajaxData[ 'email' ] = emailField.val();
- ajaxData[ 'author' ] = authorField.val();
- ajaxData[ 'url' ] = urlField.val();
-
- if ( 1 === Number( jetpackCarouselStrings.require_name_email ) ) {
- if ( ! ajaxData[ 'email' ].length || ! ajaxData[ 'email' ].match( '@' ) ) {
- gallery.jp_carousel( 'postCommentError', {
- field: 'jp-carousel-comment-form-email-field',
- error: jetpackCarouselStrings.no_comment_email,
- } );
- return;
- } else if ( ! ajaxData[ 'author' ].length ) {
- gallery.jp_carousel( 'postCommentError', {
- field: 'jp-carousel-comment-form-author-field',
- error: jetpackCarouselStrings.no_comment_author,
- } );
- return;
- }
- }
- }
-
- $.ajax( {
- type: 'POST',
- url: jetpackCarouselStrings.ajaxurl,
- data: ajaxData,
- dataType: 'json',
- success: function( response /*, status, xhr*/ ) {
- if ( 'approved' === response.comment_status ) {
- $( '#jp-carousel-comment-post-results' )
- .slideUp( 'fast' )
- .html(
- '<span class="jp-carousel-comment-post-success">' +
- jetpackCarouselStrings.comment_approved +
- '</span>'
- )
- .slideDown( 'fast' );
- } else if ( 'unapproved' === response.comment_status ) {
- $( '#jp-carousel-comment-post-results' )
- .slideUp( 'fast' )
- .html(
- '<span class="jp-carousel-comment-post-success">' +
- jetpackCarouselStrings.comment_unapproved +
- '</span>'
- )
- .slideDown( 'fast' );
- } else {
- // 'deleted', 'spam', false
- $( '#jp-carousel-comment-post-results' )
- .slideUp( 'fast' )
- .html(
- '<span class="jp-carousel-comment-post-error">' +
- jetpackCarouselStrings.comment_post_error +
- '</span>'
- )
- .slideDown( 'fast' );
- }
- gallery.jp_carousel( 'clearCommentTextAreaValue' );
- gallery.jp_carousel( 'getComments', {
- attachment_id: attachment_id,
- offset: 0,
- clear: true,
- } );
- $( '#jp-carousel-comment-form-button-submit' ).val(
- jetpackCarouselStrings.post_comment
- );
- $( '#jp-carousel-comment-form-spinner' ).spin( false );
- },
- error: function(/*xhr, status, error*/) {
- // TODO: Add error handling and display here
- gallery.jp_carousel( 'postCommentError', {
- field: 'jp-carousel-comment-form-comment-field',
- error: jetpackCarouselStrings.comment_post_error,
- } );
- return;
- },
- } );
- }
- } else if ( ! target.parents( '.jp-carousel-info' ).length ) {
- container.jp_carousel( 'next' );
- }
- } )
- .bind( 'jp_carousel.afterOpen', function() {
- $( window ).bind( 'keydown', keyListener );
- $( window ).bind( 'resize', resizeListener );
- gallery.opened = true;
-
- resizeListener();
- } )
- .bind( 'jp_carousel.beforeClose', function() {
- var scroll = $( window ).scrollTop();
-
- $( window ).unbind( 'keydown', keyListener );
- $( window ).unbind( 'resize', resizeListener );
- $( window ).scrollTop( scroll );
- $( '.jp-carousel-previous-button' ).hide();
- $( '.jp-carousel-next-button' ).hide();
- // Set height to original value
- // Fix some themes where closing carousel brings view back to top
- $( 'html' ).css( 'height', '' );
- } )
- .bind( 'jp_carousel.afterClose', function() {
- if ( window.location.hash && history.back ) {
- history.back();
- }
- last_known_location_hash = '';
- gallery.opened = false;
- } )
- .on( 'transitionend.jp-carousel ', '.jp-carousel-slide', function( e ) {
- // If the movement transitions take more than twice the allotted time, disable them.
- // There is some wiggle room in the 2x, since some of that time is taken up in
- // JavaScript, setting up the transition and calling the events.
- if ( 'transform' === e.originalEvent.propertyName ) {
- var transitionMultiplier =
- ( Date.now() - transitionBegin ) / 1000 / e.originalEvent.elapsedTime;
-
- container.off( 'transitionend.jp-carousel' );
-
- if ( transitionMultiplier >= 2 ) {
- $( '.jp-carousel-transitions' ).removeClass( 'jp-carousel-transitions' );
- }
- }
+ function emitEvent( el, type, detail ) {
+ var e;
+ try {
+ e = new CustomEvent( type, {
+ bubbles: true,
+ cancelable: true,
+ detail: detail || null,
} );
+ } catch ( err ) {
+ e = document.createEvent( 'CustomEvent' );
+ e.initCustomEvent( type, true, true, detail || null );
+ }
+ el.dispatchEvent( e );
+ }
- $( '.jp-carousel-wrap' ).touchwipe( {
- wipeLeft: function( e ) {
- e.preventDefault();
- gallery.jp_carousel( 'next' );
- },
- wipeRight: function( e ) {
- e.preventDefault();
- gallery.jp_carousel( 'previous' );
- },
- preventDefaultEvents: false,
- } );
+ // From: https://easings.net/#easeInOutQuad
+ function easeInOutQuad( num ) {
+ return num < 0.5 ? 2 * num * num : 1 - Math.pow( -2 * num + 2, 2 ) / 2;
+ }
- nextButton.add( previousButton ).click( function( e ) {
- e.preventDefault();
- e.stopPropagation();
- if ( nextButton.is( this ) ) {
- gallery.jp_carousel( 'next' );
- } else {
- gallery.jp_carousel( 'previous' );
- }
- } );
+ function getFooterClearance( container ) {
+ var footer = container.querySelector( '.jp-carousel-info-footer' );
+ var infoArea = container.querySelector( '.jp-carousel-info-extra' );
+ var contentArea = container.querySelector( '.jp-carousel-info-content-wrapper' );
+
+ if ( footer && infoArea && contentArea ) {
+ var styles = window.getComputedStyle( infoArea );
+ var padding = parseInt( styles.paddingTop, 10 ) + parseInt( styles.paddingBottom, 10 );
+ padding = isNaN( padding ) ? 0 : padding;
+ return contentArea.offsetHeight + footer.offsetHeight + padding;
+ }
+ return 0;
}
- };
- var processSingleImageGallery = function() {
- // process links that contain img tag with attribute data-attachment-id
- $( 'a img[data-attachment-id]' ).each( function() {
- var container = $( this ).parent();
+ function isTouch() {
+ return (
+ 'ontouchstart' in window || ( window.DocumentTouch && document instanceof DocumentTouch )
+ );
+ }
- // skip if image was already added to gallery by shortcode
- if ( container.parent( '.gallery-icon' ).length ) {
+ function scrollToElement( el, container, callback ) {
+ if ( ! el || ! container ) {
+ if ( callback ) {
+ return callback();
+ }
return;
}
- // skip if the container is not a link
- if ( 'undefined' === typeof $( container ).attr( 'href' ) ) {
- return;
+ // For iOS Safari compatibility, use JS to set the minimum height.
+ var infoArea = container.querySelector( '.jp-carousel-info-extra' );
+ if ( infoArea ) {
+ // 64px is the same height as `.jp-carousel-info-footer` in the CSS.
+ infoArea.style.minHeight = window.innerHeight - 64 + 'px';
}
- var valid = false;
+ var isScrolling = true;
+ var startTime = Date.now();
+ var duration = 300;
+ var originalPosition = container.scrollTop;
+ var targetPosition = Math.max(
+ 0,
+ el.offsetTop - Math.max( 0, window.innerHeight - getFooterClearance( container ) )
+ );
+ var distance = targetPosition - container.scrollTop;
+ distance = Math.min( distance, container.scrollHeight - window.innerHeight );
- // if link points to 'Media File' (ignoring GET parameters) and flag is set allow it
- if (
- $( container )
- .attr( 'href' )
- .split( '?' )[ 0 ] ===
- $( this )
- .attr( 'data-orig-file' )
- .split( '?' )[ 0 ] &&
- 1 === Number( jetpackCarouselStrings.single_image_gallery_media_file )
- ) {
- valid = true;
+ function stopScroll() {
+ isScrolling = false;
}
- // if link points to 'Attachment Page' allow it
- if ( $( container ).attr( 'href' ) === $( this ).attr( 'data-permalink' ) ) {
- valid = true;
+ function runScroll() {
+ var now = Date.now();
+ var progress = easeInOutQuad( ( now - startTime ) / duration );
+
+ progress = progress > 1 ? 1 : progress;
+ var newVal = progress * distance;
+ container.scrollTop = originalPosition + newVal;
+
+ if ( now <= startTime + duration && isScrolling ) {
+ return requestAnimationFrame( runScroll );
+ }
+ if ( callback ) {
+ callback();
+ }
+ if ( infoArea ) {
+ infoArea.style.minHeight = '';
+ }
+ isScrolling = false;
+ container.removeEventListener( 'wheel', stopScroll );
}
- // links to 'Custom URL' or 'Media File' when flag not set are not valid
- if ( ! valid ) {
- return;
+ // Allow scroll to be cancelled by user interaction.
+ container.addEventListener( 'wheel', stopScroll );
+ runScroll();
+ }
+
+ function getJSONAttribute( el, attr ) {
+ if ( ! el || ! el.hasAttribute( attr ) ) {
+ return undefined;
}
- // make this node a gallery recognizable by event listener above
- $( container ).addClass( 'single-image-gallery' );
- // blog_id is needed to allow posting comments to correct blog
- $( container ).data( 'carousel-extra', {
- blog_id: Number( jetpackCarouselStrings.blog_id ),
- } );
- } );
- };
-
- var methods = {
- testForData: function( gallery ) {
- gallery = $( gallery ); // make sure we have it as a jQuery object.
- return ! ( ! gallery.length || ! gallery.data( 'carousel-extra' ) );
- },
-
- testIfOpened: function() {
- return !! (
- 'undefined' !== typeof gallery &&
- 'undefined' !== typeof gallery.opened &&
- gallery.opened
- );
- },
-
- openOrSelectSlide: function( index ) {
- // The `open` method triggers an asynchronous effect, so we will get an
- // error if we try to use `open` then `selectSlideAtIndex` immediately
- // after it. We can only use `selectSlideAtIndex` if the carousel is
- // already open.
- if ( ! $( this ).jp_carousel( 'testIfOpened' ) ) {
- // The `open` method selects the correct slide during the
- // initialization.
- $( this ).jp_carousel( 'open', { start_index: index } );
- } else {
- gallery.jp_carousel( 'selectSlideAtIndex', index );
+ try {
+ return JSON.parse( el.getAttribute( attr ) );
+ } catch ( e ) {
+ return undefined;
}
- },
+ }
- open: function( options ) {
- var settings = {
- items_selector:
- '.gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id]',
- start_index: 0,
- },
- data = $( this ).data( 'carousel-extra' );
+ function convertToPlainText( html ) {
+ var dummy = document.createElement( 'div' );
+ dummy.textContent = html;
+ return dummy.innerHTML;
+ }
- if ( ! data ) {
- return; // don't run if the default gallery functions weren't used
+ function stripHTML( text ) {
+ return text.replace( /<[^>]*>?/gm, '' );
+ }
+
+ return {
+ closest: closest,
+ matches: matches,
+ hide: hide,
+ show: show,
+ fadeIn: fadeIn,
+ fadeOut: fadeOut,
+ scrollToElement: scrollToElement,
+ getJSONAttribute: getJSONAttribute,
+ convertToPlainText: convertToPlainText,
+ stripHTML: stripHTML,
+ emitEvent: emitEvent,
+ isTouch: isTouch,
+ };
+ } )();
+
+ /////////////////////////////////////
+ // Carousel implementation
+ /////////////////////////////////////
+ function init() {
+ var commentInterval;
+ var screenPadding;
+ var originalOverflow;
+ var originalHOverflow;
+ var scrollPos;
+
+ var lastKnownLocationHash = '';
+ var isUserTyping = false;
+
+ var gallerySelector =
+ 'div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, ' +
+ 'figure.wp-block-gallery.has-nested-images, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery';
+
+ // Selector for items within a gallery or tiled gallery.
+ var galleryItemSelector =
+ '.gallery-item, .tiled-gallery-item, .blocks-gallery-item, ' + ' .tiled-gallery__item';
+
+ // Selector for all items including single images.
+ var itemSelector = galleryItemSelector + ', .wp-block-image';
+
+ var carousel = {};
+
+ var stat =
+ typeof wpcom !== 'undefined' && wpcom.carousel && wpcom.carousel.stat
+ ? wpcom.carousel.stat
+ : util.noop;
+
+ var pageview =
+ typeof wpcom !== 'undefined' && wpcom.carousel && wpcom.carousel.pageview
+ ? wpcom.carousel.pageview
+ : util.noop;
+
+ function handleKeyboardEvent( e ) {
+ if ( ! isUserTyping ) {
+ switch ( e.which ) {
+ case 38: // up
+ e.preventDefault();
+ carousel.overlay.scrollTop -= 100;
+ break;
+ case 40: // down
+ e.preventDefault();
+ carousel.overlay.scrollTop += 100;
+ break;
+ case 39: // right
+ e.preventDefault();
+ swiper.slideNext();
+ break;
+ case 37: // left
+ case 8: // backspace
+ e.preventDefault();
+ swiper.slidePrev();
+ break;
+ case 27: // escape
+ e.preventDefault();
+ closeCarousel();
+ break;
+ default:
+ break;
+ }
}
+ }
- prepareGallery( data );
+ function disableKeyboardNavigation() {
+ isUserTyping = true;
+ }
- if ( gallery.jp_carousel( 'testIfOpened' ) ) {
- return; // don't open if already opened
+ function enableKeyboardNavigation() {
+ isUserTyping = false;
+ }
+
+ function calculatePadding() {
+ var baseScreenPadding = 110;
+ screenPadding = baseScreenPadding;
+
+ if ( window.innerWidth <= 760 ) {
+ screenPadding = Math.round( ( window.innerWidth / 760 ) * baseScreenPadding );
+
+ if ( screenPadding < 40 && domUtil.isTouch() ) {
+ screenPadding = 0;
+ }
}
+ }
- // make sure to stop the page from scrolling behind the carousel overlay, so we don't trigger
- // infiniscroll for it when enabled (Reader, theme infiniscroll, etc).
- originalOverflow = $( 'body' ).css( 'overflow' );
- $( 'body' ).css( 'overflow', 'hidden' );
- // prevent html from overflowing on some of the new themes.
- originalHOverflow = $( 'html' ).css( 'overflow' );
- $( 'html' ).css( 'overflow', 'hidden' );
- scrollPos = $( window ).scrollTop();
+ function initializeCarousel() {
+ if ( ! carousel.overlay ) {
+ carousel.overlay = document.querySelector( '.jp-carousel-overlay' );
+ carousel.container = carousel.overlay.querySelector( '.jp-carousel-wrap' );
+ carousel.gallery = carousel.container.querySelector( '.jp-carousel' );
+ carousel.info = carousel.overlay.querySelector( '.jp-carousel-info' );
+ carousel.caption = carousel.info.querySelector( '.jp-carousel-caption' );
+ carousel.commentField = carousel.overlay.querySelector(
+ '#jp-carousel-comment-form-comment-field'
+ );
+ carousel.emailField = carousel.overlay.querySelector(
+ '#jp-carousel-comment-form-email-field'
+ );
+ carousel.authorField = carousel.overlay.querySelector(
+ '#jp-carousel-comment-form-author-field'
+ );
+ carousel.urlField = carousel.overlay.querySelector( '#jp-carousel-comment-form-url-field' );
+
+ calculatePadding();
+
+ [
+ carousel.commentField,
+ carousel.emailField,
+ carousel.authorField,
+ carousel.urlField,
+ ].forEach( function ( field ) {
+ if ( field ) {
+ field.addEventListener( 'focus', disableKeyboardNavigation );
+ field.addEventListener( 'blur', enableKeyboardNavigation );
+ }
+ } );
- container.data( 'carousel-extra', data );
+ carousel.overlay.addEventListener( 'click', function ( e ) {
+ var target = e.target;
+ var isTargetCloseHint = !! domUtil.closest( target, '.jp-carousel-close-hint' );
+ var isSmallScreen = !! window.matchMedia( '(max-device-width: 760px)' ).matches;
+ if ( target === carousel.overlay ) {
+ if ( isSmallScreen ) {
+ return;
+ } else {
+ closeCarousel();
+ }
+ } else if ( isTargetCloseHint ) {
+ closeCarousel();
+ } else if ( target.classList.contains( 'jp-carousel-image-download' ) ) {
+ stat( 'download_original_click' );
+ } else if ( target.classList.contains( 'jp-carousel-comment-login' ) ) {
+ handleCommentLoginClick( e );
+ } else if ( domUtil.closest( target, '#jp-carousel-comment-form-container' ) ) {
+ handleCommentFormClick( e );
+ } else if (
+ domUtil.closest( target, '.jp-carousel-photo-icons-container' ) ||
+ target.classList.contains( 'jp-carousel-photo-title' )
+ ) {
+ handleFooterElementClick( e );
+ } else if ( ! domUtil.closest( target, '.jp-carousel-info' ) ) {
+ return;
+ }
+ } );
- return this.each( function() {
- // If options exist, lets merge them
- // with our default settings
- var $this = $( this );
+ window.addEventListener( 'keydown', handleKeyboardEvent );
- if ( options ) {
- $.extend( settings, options );
- }
- if ( -1 === settings.start_index ) {
- settings.start_index = 0; //-1 returned if can't find index, so start from beginning
- }
+ carousel.overlay.addEventListener( 'jp_carousel.afterOpen', function () {
+ enableKeyboardNavigation();
- container.trigger( 'jp_carousel.beforeOpen' ).fadeIn( 'fast', function() {
- container.trigger( 'jp_carousel.afterOpen' );
- gallery
- .jp_carousel(
- 'initSlides',
- $this.find( settings.items_selector ),
- settings.start_index
- )
- .jp_carousel( 'selectSlideAtIndex', settings.start_index );
+ // Don't show navigation if there's only one image.
+ if ( carousel.slides.length <= 1 ) {
+ return;
+ }
+ // Show dot pagination if slide count is <= 5, otherwise show n/total.
+ if ( carousel.slides.length <= 5 ) {
+ domUtil.show( carousel.info.querySelector( '.jp-swiper-pagination' ) );
+ } else {
+ domUtil.show( carousel.info.querySelector( '.jp-carousel-pagination' ) );
+ }
+ } );
+
+ carousel.overlay.addEventListener( 'jp_carousel.beforeClose', function () {
+ disableKeyboardNavigation();
+
+ // Fixes some themes where closing carousel brings view back to top.
+ document.documentElement.style.removeProperty( 'height' );
+
+ // If we disable the swiper (because there's only one image)
+ // we have to re-enable it here again as Swiper doesn't, for some reason,
+ // show the navigation buttons again after reinitialization.
+ if ( swiper ) {
+ swiper.enable();
+ }
+
+ // Hide pagination.
+ domUtil.hide( carousel.info.querySelector( '.jp-swiper-pagination' ) );
+ domUtil.hide( carousel.info.querySelector( '.jp-carousel-pagination' ) );
} );
- gallery.html( '' );
- } );
- },
- selectSlideAtIndex: function( index ) {
- var slides = this.jp_carousel( 'slides' ),
- selected = slides.eq( index );
+ carousel.overlay.addEventListener( 'jp_carousel.afterClose', function () {
+ // don't force the browser back when the carousel closes.
+ if ( window.history.pushState ) {
+ history.pushState(
+ '',
+ document.title,
+ window.location.pathname + window.location.search
+ );
+ } else {
+ window.location.href = '';
+ }
+ lastKnownLocationHash = '';
+ carousel.isOpen = false;
+ } );
- if ( 0 === selected.length ) {
- selected = slides.eq( 0 );
+ // Prevent native browser zooming
+ carousel.overlay.addEventListener( 'touchstart', function ( e ) {
+ if ( e.touches.length > 1 ) {
+ e.preventDefault();
+ }
+ } );
}
+ }
- gallery.jp_carousel( 'selectSlide', selected, false );
- return this;
- },
+ function handleCommentLoginClick() {
+ var slide = carousel.currentSlide;
+ var attachmentId = slide ? slide.attrs.attachmentId : '0';
- close: function() {
- // make sure to let the page scroll again
- $( 'body' ).css( 'overflow', originalOverflow );
- $( 'html' ).css( 'overflow', originalHOverflow );
- this.jp_carousel( 'clearCommentTextAreaValue' );
- return container.trigger( 'jp_carousel.beforeClose' ).fadeOut( 'fast', function() {
- container.trigger( 'jp_carousel.afterClose' );
- $( window ).scrollTop( scrollPos );
- } );
- },
+ window.location.href = jetpackCarouselStrings.login_url + '%23jp-carousel-' + attachmentId;
+ }
- next: function() {
- this.jp_carousel( 'previousOrNext', 'nextSlide' );
- },
+ function updatePostResults( msg, isSuccess ) {
+ var results = carousel.overlay.querySelector( '#jp-carousel-comment-post-results' );
+ var elClass = 'jp-carousel-comment-post-' + ( isSuccess ? 'success' : 'error' );
+ results.innerHTML = '<span class="' + elClass + '">' + msg + '</span>';
+ domUtil.hide( carousel.overlay.querySelector( '#jp-carousel-comment-form-spinner' ) );
+ carousel.overlay
+ .querySelector( '#jp-carousel-comment-form' )
+ .classList.remove( 'jp-carousel-is-disabled' );
+ domUtil.show( results );
+ }
- previous: function() {
- this.jp_carousel( 'previousOrNext', 'prevSlide' );
- },
+ function handleCommentFormClick( e ) {
+ var target = e.target;
+ var data = domUtil.getJSONAttribute( carousel.container, 'data-carousel-extra' ) || {};
+ var attachmentId = carousel.currentSlide.attrs.attachmentId;
- previousOrNext: function( slideSelectionMethodName ) {
- if ( ! this.jp_carousel( 'hasMultipleImages' ) ) {
- return false;
- }
+ var wrapper = document.querySelector( '#jp-carousel-comment-form-submit-and-info-wrapper' );
+ var spinner = document.querySelector( '#jp-carousel-comment-form-spinner' );
+ var submit = document.querySelector( '#jp-carousel-comment-form-button-submit' );
+ var form = document.querySelector( '#jp-carousel-comment-form' );
- var slide = gallery.jp_carousel( slideSelectionMethodName );
+ if (
+ carousel.commentField &&
+ carousel.commentField.getAttribute( 'id' ) === target.getAttribute( 'id' )
+ ) {
+ // For first page load
+ disableKeyboardNavigation();
+ domUtil.show( wrapper );
+ } else if ( domUtil.matches( target, 'input[type="submit"]' ) ) {
+ e.preventDefault();
+ e.stopPropagation();
+
+ domUtil.show( spinner );
+ form.classList.add( 'jp-carousel-is-disabled' );
- if ( slide ) {
- container.animate( { scrollTop: 0 }, 'fast' );
- this.jp_carousel( 'clearCommentTextAreaValue' );
- this.jp_carousel( 'selectSlide', slide );
+ var ajaxData = {
+ action: 'post_attachment_comment',
+ nonce: jetpackCarouselStrings.nonce,
+ blog_id: data.blog_id,
+ id: attachmentId,
+ comment: carousel.commentField.value,
+ };
+
+ if ( ! ajaxData.comment.length ) {
+ updatePostResults( jetpackCarouselStrings.no_comment_text, false );
+ return;
+ }
+
+ if ( Number( jetpackCarouselStrings.is_logged_in ) !== 1 ) {
+ ajaxData.email = carousel.emailField.value;
+ ajaxData.author = carousel.authorField.value;
+ ajaxData.url = carousel.urlField.value;
+
+ if ( Number( jetpackCarouselStrings.require_name_email ) === 1 ) {
+ if ( ! ajaxData.email.length || ! ajaxData.email.match( '@' ) ) {
+ updatePostResults( jetpackCarouselStrings.no_comment_email, false );
+ return;
+ } else if ( ! ajaxData.author.length ) {
+ updatePostResults( jetpackCarouselStrings.no_comment_author, false );
+ return;
+ }
+ }
+ }
+
+ var xhr = new XMLHttpRequest();
+ xhr.open( 'POST', jetpackCarouselStrings.ajaxurl, true );
+ xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
+ xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
+
+ xhr.onreadystatechange = function () {
+ if (
+ this.readyState === XMLHttpRequest.DONE &&
+ this.status >= 200 &&
+ this.status < 300
+ ) {
+ var response;
+ try {
+ response = JSON.parse( this.response );
+ } catch ( error ) {
+ updatePostResults( jetpackCarouselStrings.comment_post_error, false );
+ return;
+ }
+ if ( response.comment_status === 'approved' ) {
+ updatePostResults( jetpackCarouselStrings.comment_approved, true );
+ } else if ( response.comment_status === 'unapproved' ) {
+ updatePostResults( jetpackCarouselStrings.comment_unapproved, true );
+ } else {
+ // 'deleted', 'spam', false
+ updatePostResults( jetpackCarouselStrings.comment_post_error, false );
+ }
+ clearCommentTextAreaValue();
+ fetchComments( attachmentId );
+ submit.value = jetpackCarouselStrings.post_comment;
+ domUtil.hide( spinner );
+ form.classList.remove( 'jp-carousel-is-disabled' );
+ } else {
+ // TODO: Add error handling and display here
+ updatePostResults( jetpackCarouselStrings.comment_post_error, false );
+ }
+ };
+
+ var params = [];
+ for ( var item in ajaxData ) {
+ if ( item ) {
+ // Encode each form element into a URI-compatible string.
+ var encoded = encodeURIComponent( item ) + '=' + encodeURIComponent( ajaxData[ item ] );
+ // In x-www-form-urlencoded, spaces should be `+`, not `%20`.
+ params.push( encoded.replace( /%20/g, '+' ) );
+ }
+ }
+ var encodedData = params.join( '&' );
+
+ xhr.send( encodedData );
}
- },
+ }
- selectedSlide: function() {
- return this.find( '.selected' );
- },
+ /**
+ * Handles clicks to icons and other action elements in the icon container.
+ * @param {MouseEvent|TouchEvent|KeyBoardEvent} Event object.
+ */
+ function handleFooterElementClick( e ) {
+ e.preventDefault();
- setSlidePosition: function( x ) {
- transitionBegin = Date.now();
+ var target = e.target;
+ var extraInfoContainer = carousel.info.querySelector( '.jp-carousel-info-extra' );
+ var photoMetaContainer = carousel.info.querySelector( '.jp-carousel-image-meta' );
+ var commentsContainer = carousel.info.querySelector( '.jp-carousel-comments-wrapper' );
+ var infoIcon = carousel.info.querySelector( '.jp-carousel-icon-info' );
+ var commentsIcon = carousel.info.querySelector( '.jp-carousel-icon-comments' );
- return this.css( {
- '-webkit-transform': 'translate3d(' + x + 'px,0,0)',
- '-moz-transform': 'translate3d(' + x + 'px,0,0)',
- '-ms-transform': 'translate(' + x + 'px,0)',
- '-o-transform': 'translate(' + x + 'px,0)',
- transform: 'translate3d(' + x + 'px,0,0)',
- } );
- },
-
- updateSlidePositions: function( animate ) {
- var current = this.jp_carousel( 'selectedSlide' ),
- galleryWidth = gallery.width(),
- currentWidth = current.width(),
- previous = gallery.jp_carousel( 'prevSlide' ),
- next = gallery.jp_carousel( 'nextSlide' ),
- previousPrevious = previous.prev(),
- nextNext = next.next(),
- left = Math.floor( ( galleryWidth - currentWidth ) * 0.5 );
-
- current.jp_carousel( 'setSlidePosition', left ).show();
-
- // minimum width
- gallery.jp_carousel( 'fitInfo', animate );
-
- // prep the slides
- var direction = lastSelectedSlide.is( current.prevAll() ) ? 1 : -1;
-
- // Since we preload the `previousPrevious` and `nextNext` slides, we need
- // to make sure they technically visible in the DOM, but invisible to the
- // user. To hide them from the user, we position them outside the edges
- // of the window.
- //
- // This section of code only applies when there are more than three
- // slides. Otherwise, the `previousPrevious` and `nextNext` slides will
- // overlap with the `previous` and `next` slides which must be visible
- // regardless.
- if ( 1 === direction ) {
- if ( ! nextNext.is( previous ) ) {
- nextNext.jp_carousel( 'setSlidePosition', galleryWidth + next.width() ).show();
+ function handleInfoToggle() {
+ if ( commentsIcon ) {
+ commentsIcon.classList.remove( 'jp-carousel-selected' );
}
+ infoIcon.classList.toggle( 'jp-carousel-selected' );
- if ( ! previousPrevious.is( next ) ) {
- previousPrevious
- .jp_carousel( 'setSlidePosition', -previousPrevious.width() - currentWidth )
- .show();
+ if ( commentsContainer ) {
+ commentsContainer.classList.remove( 'jp-carousel-show' );
}
- } else {
- if ( ! nextNext.is( previous ) ) {
- nextNext.jp_carousel( 'setSlidePosition', galleryWidth + currentWidth ).show();
+ if ( photoMetaContainer ) {
+ photoMetaContainer.classList.toggle( 'jp-carousel-show' );
+ if ( photoMetaContainer.classList.contains( 'jp-carousel-show' ) ) {
+ extraInfoContainer.classList.add( 'jp-carousel-show' );
+ } else {
+ extraInfoContainer.classList.remove( 'jp-carousel-show' );
+ }
}
}
- previous
- .jp_carousel( 'setSlidePosition', Math.floor( -previous.width() + screenPadding * 0.75 ) )
- .show();
- next
- .jp_carousel( 'setSlidePosition', Math.ceil( galleryWidth - screenPadding * 0.75 ) )
- .show();
- },
-
- selectSlide: function( slide, animate ) {
- lastSelectedSlide = this.find( '.selected' ).removeClass( 'selected' );
-
- var slides = gallery.jp_carousel( 'slides' ).css( { position: 'fixed' } ),
- current = $( slide )
- .addClass( 'selected' )
- .css( { position: 'relative' } ),
- attachmentId = current.data( 'attachment-id' ),
- previous = gallery.jp_carousel( 'prevSlide' ),
- next = gallery.jp_carousel( 'nextSlide' ),
- previousPrevious = previous.prev(),
- nextNext = next.next(),
- animated,
- captionHtml;
-
- // center the main image
- gallery.jp_carousel( 'loadFullImage', current );
-
- caption.hide();
-
- if ( next.length === 0 && slides.length <= 2 ) {
- $( '.jp-carousel-next-button' ).hide();
- } else {
- $( '.jp-carousel-next-button' ).show();
- }
+ function handleCommentToggle() {
+ if ( infoIcon ) {
+ infoIcon.classList.remove( 'jp-carousel-selected' );
+ }
+ commentsIcon.classList.toggle( 'jp-carousel-selected' );
- if ( previous.length === 0 && slides.length <= 2 ) {
- $( '.jp-carousel-previous-button' ).hide();
- } else {
- $( '.jp-carousel-previous-button' ).show();
+ if ( photoMetaContainer ) {
+ photoMetaContainer.classList.remove( 'jp-carousel-show' );
+ }
+ if ( commentsContainer ) {
+ commentsContainer.classList.toggle( 'jp-carousel-show' );
+ if ( commentsContainer.classList.contains( 'jp-carousel-show' ) ) {
+ extraInfoContainer.classList.add( 'jp-carousel-show' );
+ } else {
+ extraInfoContainer.classList.remove( 'jp-carousel-show' );
+ }
+ }
}
- animated = current
- .add( previous )
- .add( previousPrevious )
- .add( next )
- .add( nextNext )
- .jp_carousel( 'loadSlide' );
+ if (
+ domUtil.closest( target, '.jp-carousel-icon-info' ) ||
+ target.classList.contains( 'jp-carousel-photo-title' )
+ ) {
+ if ( photoMetaContainer && photoMetaContainer.classList.contains( 'jp-carousel-show' ) ) {
+ domUtil.scrollToElement( carousel.overlay, carousel.overlay, handleInfoToggle );
+ } else {
+ handleInfoToggle();
+ domUtil.scrollToElement( carousel.info, carousel.overlay );
+ }
+ }
- // slide the whole view to the x we want
- slides.not( animated ).hide();
+ if ( domUtil.closest( target, '.jp-carousel-icon-comments' ) ) {
+ if ( commentsContainer && commentsContainer.classList.contains( 'jp-carousel-show' ) ) {
+ domUtil.scrollToElement( carousel.overlay, carousel.overlay, handleCommentToggle );
+ } else {
+ handleCommentToggle();
+ domUtil.scrollToElement( carousel.info, carousel.overlay );
+ }
+ }
+ }
- gallery.jp_carousel( 'updateSlidePositions', animate );
+ function processSingleImageGallery() {
+ var images = document.querySelectorAll( 'a img[data-attachment-id]' );
+ Array.prototype.forEach.call( images, function ( image ) {
+ var link = image.parentElement;
+ var container = link.parentElement;
- container.trigger( 'jp_carousel.selectSlide', [ current ] );
+ // Skip if image was already added to gallery by shortcode.
+ if ( container.classList.contains( 'gallery-icon' ) ) {
+ return;
+ }
- gallery.jp_carousel( 'getTitleDesc', {
- title: current.data( 'title' ),
- desc: current.data( 'desc' ),
- } );
+ // Skip if image is part of a gallery.
+ if ( domUtil.closest( container, galleryItemSelector ) ) {
+ return;
+ }
- var imageMeta = current.data( 'image-meta' );
- gallery.jp_carousel( 'updateExif', imageMeta );
- gallery.jp_carousel( 'updateFullSizeLink', current );
- gallery.jp_carousel( 'updateMap', imageMeta );
- gallery.jp_carousel( 'testCommentsOpened', current.data( 'comments-opened' ) );
- gallery.jp_carousel( 'getComments', {
- attachment_id: attachmentId,
- offset: 0,
- clear: true,
- } );
- $( '#jp-carousel-comment-post-results' ).slideUp();
+ // Skip if the parent is not actually a link.
+ if ( ! link.hasAttribute( 'href' ) ) {
+ return;
+ }
- // $('<div />').text(sometext).html() is a trick to go to HTML to plain
- // text (including HTML entities decode, etc)
- if ( current.data( 'caption' ) ) {
- captionHtml = $( '<div />' )
- .text( current.data( 'caption' ) )
- .html();
+ var valid = false;
+ // If link points to 'Media File' (ignoring GET parameters) and flag is set, allow it.
if (
- captionHtml ===
- $( '<div />' )
- .text( current.data( 'title' ) )
- .html()
+ link.getAttribute( 'href' ).split( '?' )[ 0 ] ===
+ image.getAttribute( 'data-orig-file' ).split( '?' )[ 0 ] &&
+ Number( jetpackCarouselStrings.single_image_gallery_media_file ) === 1
) {
- $( '.jp-carousel-titleanddesc-title' )
- .fadeOut( 'fast' )
- .empty();
+ valid = true;
}
- if (
- captionHtml ===
- $( '<div />' )
- .text( current.data( 'desc' ) )
- .html()
- ) {
- $( '.jp-carousel-titleanddesc-desc' )
- .fadeOut( 'fast' )
- .empty();
+ // If link points to 'Attachment Page', allow it.
+ if ( link.getAttribute( 'href' ) === image.getAttribute( 'data-permalink' ) ) {
+ valid = true;
}
- caption.html( current.data( 'caption' ) ).fadeIn( 'slow' );
- } else {
- caption.fadeOut( 'fast' ).empty();
- }
-
- // Record pageview in WP Stats, for each new image loaded full-screen.
- if ( jetpackCarouselStrings.stats ) {
- new Image().src =
- document.location.protocol +
- '//pixel.wp.com/g.gif?' +
- jetpackCarouselStrings.stats +
- '&post=' +
- encodeURIComponent( attachmentId ) +
- '&rand=' +
- Math.random();
- }
-
- // Load the images for the next and previous slides.
- $( next )
- .add( previous )
- .each( function() {
- gallery.jp_carousel( 'loadFullImage', $( this ) );
- } );
+ // Links to 'Custom URL' or 'Media File' when flag is not set are not valid.
+ if ( ! valid ) {
+ return;
+ }
- window.location.hash = last_known_location_hash = '#jp-carousel-' + attachmentId;
- },
+ // Make this node a gallery recognizable by event listener above.
+ link.classList.add( 'single-image-gallery' );
+ // blog_id is needed to allow posting comments to correct blog.
+ link.setAttribute(
+ 'data-carousel-extra',
+ JSON.stringify( {
+ blog_id: Number( jetpackCarouselStrings.blog_id ),
+ } )
+ );
+ } );
+ }
- slides: function() {
- return this.find( '.jp-carousel-slide' );
- },
+ function testForData( el ) {
+ return !! ( el && el.getAttribute( 'data-carousel-extra' ) );
+ }
- slideDimensions: function() {
- return {
- width: $( window ).width() - screenPadding * 2,
- height: Math.floor( ( $( window ).height() / 100 ) * proportion - 60 ),
- };
- },
-
- loadSlide: function() {
- return this.each( function() {
- var slide = $( this );
- slide.find( 'img' ).one( 'load', function() {
- // set the width/height of the image if it's too big
- slide.jp_carousel( 'fitSlide', false );
- } );
- } );
- },
-
- bestFit: function() {
- var max = gallery.jp_carousel( 'slideDimensions' ),
- orig = this.jp_carousel( 'originalDimensions' ),
- orig_ratio = orig.width / orig.height,
- w_ratio = 1,
- h_ratio = 1,
- width,
- height;
-
- if ( orig.width > max.width ) {
- w_ratio = max.width / orig.width;
- }
- if ( orig.height > max.height ) {
- h_ratio = max.height / orig.height;
- }
-
- if ( w_ratio < h_ratio ) {
- width = max.width;
- height = Math.floor( width / orig_ratio );
- } else if ( h_ratio < w_ratio ) {
- height = max.height;
- width = Math.floor( height * orig_ratio );
+ function openOrSelectSlide( gal, index ) {
+ if ( ! carousel.isOpen ) {
+ // The `open` method selects the correct slide during the initialization.
+ loadSwiper( gal, { startIndex: index } );
} else {
- width = orig.width;
- height = orig.height;
+ selectSlideAtIndex( index );
+ // We have to force swiper to slide to the index onHasChange.
+ swiper.slideTo( index + 1 );
}
+ }
- return {
- width: width,
- height: height,
- };
- },
-
- fitInfo: function(/*animated*/) {
- var current = this.jp_carousel( 'selectedSlide' ),
- size = current.jp_carousel( 'bestFit' );
+ function selectSlideAtIndex( index ) {
+ if ( ! index || index < 0 || index > carousel.slides.length ) {
+ index = 0;
+ }
+ carousel.currentSlide = carousel.slides[ index ];
- photo_info.css( {
- left: Math.floor( ( info.width() - size.width ) * 0.5 ),
- width: Math.floor( size.width ),
- } );
+ var current = carousel.currentSlide;
+ var attachmentId = current.attrs.attachmentId;
+ var infoIcon = carousel.info.querySelector( '.jp-carousel-icon-info' );
+ var commentsIcon = carousel.info.querySelector( '.jp-carousel-icon-comments' );
- return this;
- },
+ // If the comment/info section is toggled open, it's kept open, but scroll to top of the next slide.
+ if (
+ ( infoIcon && infoIcon.classList.contains( 'jp-carousel-selected' ) ) ||
+ ( commentsIcon && commentsIcon.classList.contains( 'jp-carousel-selected' ) )
+ ) {
+ if ( carousel.overlay.scrollTop !== 0 ) {
+ domUtil.scrollToElement( carousel.overlay, carousel.overlay );
+ }
+ }
- fitMeta: function( animated ) {
- var newInfoTop = {
- top: Math.floor( ( $( window ).height() / 100 ) * proportion + 5 ) + 'px',
- };
- var newLeftWidth = { width: info.width() - ( imageMeta.width() + 80 ) + 'px' };
+ loadFullImage( carousel.slides[ index ] );
- if ( animated ) {
- info.animate( newInfoTop );
- leftColWrapper.animate( newLeftWidth );
- } else {
- info.animate( newInfoTop );
- leftColWrapper.css( newLeftWidth );
+ if (
+ Number( jetpackCarouselStrings.display_background_image ) === 1 &&
+ ! carousel.slides[ index ].backgroundImage
+ ) {
+ loadBackgroundImage( carousel.slides[ index ] );
}
- },
-
- fitSlide: function(/*animated*/) {
- return this.each( function() {
- var $this = $( this ),
- dimensions = $this.jp_carousel( 'bestFit' ),
- method = 'css',
- max = gallery.jp_carousel( 'slideDimensions' );
- dimensions.left = 0;
- dimensions.top = Math.floor( ( max.height - dimensions.height ) * 0.5 ) + 40;
- $this[ method ]( dimensions );
+ domUtil.hide( carousel.caption );
+ updateTitleCaptionAndDesc( {
+ caption: current.attrs.caption,
+ title: current.attrs.title,
+ desc: current.attrs.desc,
} );
- },
- texturize: function( text ) {
- text = '' + text; // make sure we get a string. Title "1" came in as int 1, for example, which did not support .replace().
- text = text
- .replace( /'/g, '&#8217;' )
- .replace( /&#039;/g, '&#8217;' )
- .replace( /[\u2019]/g, '&#8217;' );
- text = text
- .replace( /"/g, '&#8221;' )
- .replace( /&#034;/g, '&#8221;' )
- .replace( /&quot;/g, '&#8221;' )
- .replace( /[\u201D]/g, '&#8221;' );
- text = text.replace( /([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g, '$1="$2"' ); // untexturize allowed HTML tags params double-quotes
- return $.trim( text );
- },
+ var imageMeta = carousel.slides[ index ].attrs.imageMeta;
+ updateExif( imageMeta );
+ updateFullSizeLink( current );
- initSlides: function( items, start_index ) {
- if ( items.length < 2 ) {
- $( '.jp-carousel-next-button, .jp-carousel-previous-button' ).hide();
- } else {
- $( '.jp-carousel-next-button, .jp-carousel-previous-button' ).show();
- }
-
- // Calculate the new src.
- items.each( function(/*i*/) {
- var src_item = $( this ),
- orig_size = src_item.data( 'orig-size' ) || '',
- max = gallery.jp_carousel( 'slideDimensions' ),
- parts = orig_size.split( ',' ),
- medium_file = src_item.data( 'medium-file' ) || '',
- large_file = src_item.data( 'large-file' ) || '',
- src;
- orig_size = { width: parseInt( parts[ 0 ], 10 ), height: parseInt( parts[ 1 ], 10 ) };
-
- src = src_item.data( 'orig-file' );
-
- src = gallery.jp_carousel( 'selectBestImageSize', {
- orig_file: src,
- orig_width: orig_size.width,
- orig_height: orig_size.height,
- max_width: max.width,
- max_height: max.height,
- medium_file: medium_file,
- large_file: large_file,
- } );
+ if ( Number( jetpackCarouselStrings.display_comments ) === 1 ) {
+ testCommentsOpened( carousel.slides[ index ].attrs.commentsOpened );
+ fetchComments( attachmentId );
+ domUtil.hide( carousel.info.querySelector( '#jp-carousel-comment-post-results' ) );
+ }
- // Set the final src
- $( this ).data( 'gallery-src', src );
- } );
+ // Update pagination in footer.
+ var pagination = carousel.info.querySelector( '.jp-carousel-pagination' );
+ if ( pagination && carousel.slides.length > 5 ) {
+ var currentPage = index + 1;
+ pagination.innerHTML = '<span>' + currentPage + ' / ' + carousel.slides.length + '</span>';
+ }
- // If the start_index is not 0 then preload the clicked image first.
- if ( 0 !== start_index ) {
- $( '<img/>' )[ 0 ].src = $( items[ start_index ] ).data( 'gallery-src' );
+ // Record pageview in WP Stats, for each new image loaded full-screen.
+ if ( jetpackCarouselStrings.stats ) {
+ new Image().src =
+ document.location.protocol +
+ '//pixel.wp.com/g.gif?' +
+ jetpackCarouselStrings.stats +
+ '&post=' +
+ encodeURIComponent( attachmentId ) +
+ '&rand=' +
+ Math.random();
}
- var useInPageThumbnails =
- items.first().closest( '.tiled-gallery.type-rectangular' ).length > 0;
+ pageview( attachmentId );
- // create the 'slide'
- items.each( function( i ) {
- var src_item = $( this ),
- attachment_id = src_item.data( 'attachment-id' ) || 0,
- comments_opened = src_item.data( 'comments-opened' ) || 0,
- image_meta = src_item.data( 'image-meta' ) || {},
- orig_size = src_item.data( 'orig-size' ) || '',
- thumb_size = { width: src_item[ 0 ].naturalWidth, height: src_item[ 0 ].naturalHeight },
- title = src_item.data( 'image-title' ) || '',
- description = src_item.data( 'image-description' ) || '',
- caption =
- src_item
- .parents( '.gallery-item' )
- .find( '.gallery-caption' )
- .html() || '',
- src = src_item.data( 'gallery-src' ) || '',
- medium_file = src_item.data( 'medium-file' ) || '',
- large_file = src_item.data( 'large-file' ) || '',
- orig_file = src_item.data( 'orig-file' ) || '';
-
- var tiledCaption = src_item
- .parents( 'div.tiled-gallery-item' )
- .find( 'div.tiled-gallery-caption' )
- .html();
- if ( tiledCaption ) {
- caption = tiledCaption;
- }
+ window.location.hash = lastKnownLocationHash = '#jp-carousel-' + attachmentId;
+ }
- if ( attachment_id && orig_size.length ) {
- title = gallery.jp_carousel( 'texturize', title );
- description = gallery.jp_carousel( 'texturize', description );
- caption = gallery.jp_carousel( 'texturize', caption );
-
- // Initially, the image is a 1x1 transparent gif. The preview is shown as a background image on the slide itself.
- var image = $( '<img/>' )
- .attr(
- 'src',
- 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7'
- )
- .css( 'width', '100%' )
- .css( 'height', '100%' );
-
- var slide = $(
- '<div class="jp-carousel-slide" itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"></div>'
- )
- .hide()
- .css( {
- //'position' : 'fixed',
- left: i < start_index ? -1000 : gallery.width(),
- } )
- .append( image )
- .appendTo( gallery )
- .data( 'src', src )
- .data( 'title', title )
- .data( 'desc', description )
- .data( 'caption', caption )
- .data( 'attachment-id', attachment_id )
- .data( 'permalink', src_item.parents( 'a' ).attr( 'href' ) )
- .data( 'orig-size', orig_size )
- .data( 'comments-opened', comments_opened )
- .data( 'image-meta', image_meta )
- .data( 'medium-file', medium_file )
- .data( 'large-file', large_file )
- .data( 'orig-file', orig_file )
- .data( 'thumb-size', thumb_size );
- if ( useInPageThumbnails ) {
- // Use the image already loaded in the gallery as a preview.
- slide.data( 'preview-image', src_item.attr( 'src' ) ).css( {
- 'background-image': 'url("' + src_item.attr( 'src' ) + '")',
- 'background-size': '100% 100%',
- 'background-position': 'center center',
- } );
- }
+ function restoreScroll() {
+ window.scrollTo( window.scrollX || window.pageXOffset || 0, scrollPos || 0 );
+ }
- slide.jp_carousel( 'fitSlide', false );
- }
+ function closeCarousel() {
+ // Make sure to let the page scroll again.
+ document.body.style.overflow = originalOverflow;
+ document.documentElement.style.overflow = originalHOverflow;
+ clearCommentTextAreaValue();
+
+ disableKeyboardNavigation();
+
+ domUtil.emitEvent( carousel.overlay, 'jp_carousel.beforeClose' );
+ restoreScroll();
+ swiper.destroy();
+ carousel.isOpen = false;
+ // Clear slide data for DOM garbage collection.
+ carousel.slides = [];
+ carousel.currentSlide = undefined;
+ carousel.gallery.innerHTML = '';
+
+ domUtil.fadeOut( carousel.overlay, function () {
+ domUtil.emitEvent( carousel.overlay, 'jp_carousel.afterClose' );
} );
- return this;
- },
+ }
+
+ function calculateMaxSlideDimensions() {
+ return {
+ width: window.innerWidth,
+ height: window.innerHeight - 64, //subtract height of bottom info bar,
+ };
+ }
- selectBestImageSize: function( args ) {
- if ( 'object' !== typeof args ) {
+ function selectBestImageUrl( args ) {
+ if ( typeof args !== 'object' ) {
args = {};
}
- if ( 'undefined' === typeof args.orig_file ) {
+ if ( typeof args.origFile === 'undefined' ) {
return '';
}
- if ( 'undefined' === typeof args.orig_width || 'undefined' === typeof args.max_width ) {
- return args.orig_file;
+ if ( typeof args.origWidth === 'undefined' || typeof args.maxWidth === 'undefined' ) {
+ return args.origFile;
}
- if ( 'undefined' === typeof args.medium_file || 'undefined' === typeof args.large_file ) {
- return args.orig_file;
+ if ( typeof args.mediumFile === 'undefined' || typeof args.largeFile === 'undefined' ) {
+ return args.origFile;
}
// Check if the image is being served by Photon (using a regular expression on the hostname).
var imageLinkParser = document.createElement( 'a' );
- imageLinkParser.href = args.large_file;
+ imageLinkParser.href = args.largeFile;
- var isPhotonUrl = /^i[0-2].wp.com$/i.test( imageLinkParser.hostname );
+ var isPhotonUrl = /^i[0-2]\.wp\.com$/i.test( imageLinkParser.hostname );
- var medium_size_parts = gallery.jp_carousel(
- 'getImageSizeParts',
- args.medium_file,
- args.orig_width,
- isPhotonUrl
- );
- var large_size_parts = gallery.jp_carousel(
- 'getImageSizeParts',
- args.large_file,
- args.orig_width,
- isPhotonUrl
- );
+ var mediumSizeParts = getImageSizeParts( args.mediumFile, args.origWidth, isPhotonUrl );
+ var largeSizeParts = getImageSizeParts( args.largeFile, args.origWidth, isPhotonUrl );
- var large_width = parseInt( large_size_parts[ 0 ], 10 ),
- large_height = parseInt( large_size_parts[ 1 ], 10 ),
- medium_width = parseInt( medium_size_parts[ 0 ], 10 ),
- medium_height = parseInt( medium_size_parts[ 1 ], 10 );
+ var largeWidth = parseInt( largeSizeParts[ 0 ], 10 );
+ var largeHeight = parseInt( largeSizeParts[ 1 ], 10 );
+ var mediumWidth = parseInt( mediumSizeParts[ 0 ], 10 );
+ var mediumHeight = parseInt( mediumSizeParts[ 1 ], 10 );
- // Assign max width and height.
- args.orig_max_width = args.max_width;
- args.orig_max_height = args.max_height;
+ args.origMaxWidth = args.maxWidth;
+ args.origMaxHeight = args.maxHeight;
// Give devices with a higher devicePixelRatio higher-res images (Retina display = 2, Android phones = 1.5, etc)
- if ( 'undefined' !== typeof window.devicePixelRatio && window.devicePixelRatio > 1 ) {
- args.max_width = args.max_width * window.devicePixelRatio;
- args.max_height = args.max_height * window.devicePixelRatio;
+ if ( typeof window.devicePixelRatio !== 'undefined' && window.devicePixelRatio > 1 ) {
+ args.maxWidth = args.maxWidth * window.devicePixelRatio;
+ args.maxHeight = args.maxHeight * window.devicePixelRatio;
}
- if ( large_width >= args.max_width || large_height >= args.max_height ) {
- return args.large_file;
+ if ( largeWidth >= args.maxWidth || largeHeight >= args.maxHeight ) {
+ return args.largeFile;
}
- if ( medium_width >= args.max_width || medium_height >= args.max_height ) {
- return args.medium_file;
+ if ( mediumWidth >= args.maxWidth || mediumHeight >= args.maxHeight ) {
+ return args.mediumFile;
}
if ( isPhotonUrl ) {
- // args.orig_file doesn't point to a Photon url, so in this case we use args.large_file
+ // args.origFile doesn't point to a Photon url, so in this case we use args.largeFile
// to return the photon url of the original image.
- var largeFileIndex = args.large_file.lastIndexOf( '?' );
- var origPhotonUrl = args.large_file;
- if ( -1 !== largeFileIndex ) {
- origPhotonUrl = args.large_file.substring( 0, largeFileIndex );
+ var largeFileIndex = args.largeFile.lastIndexOf( '?' );
+ var origPhotonUrl = args.largeFile;
+ if ( largeFileIndex !== -1 ) {
+ origPhotonUrl = args.largeFile.substring( 0, largeFileIndex );
// If we have a really large image load a smaller version
// that is closer to the viewable size
- if ( args.orig_width > args.max_width || args.orig_height > args.max_height ) {
- origPhotonUrl += '?fit=' + args.orig_max_width + '%2C' + args.orig_max_height;
+ if ( args.origWidth > args.maxWidth || args.origHeight > args.maxHeight ) {
+ // @2x the max sizes so we get a high enough resolution for zooming.
+ args.origMaxWidth = args.maxWidth * 2;
+ args.origMaxHeight = args.maxHeight * 2;
+ origPhotonUrl += '?fit=' + args.origMaxWidth + '%2C' + args.origMaxHeight;
}
}
return origPhotonUrl;
}
- return args.orig_file;
- },
+ return args.origFile;
+ }
- getImageSizeParts: function( file, orig_width, isPhotonUrl ) {
+ function getImageSizeParts( file, origWidth, isPhotonUrl ) {
var size = isPhotonUrl
? file.replace( /.*=([\d]+%2C[\d]+).*$/, '$1' )
: file.replace( /.*-([\d]+x[\d]+)\..+$/, '$1' );
- var size_parts =
+ var sizeParts =
size !== file
? isPhotonUrl
? size.split( '%2C' )
: size.split( 'x' )
- : [ orig_width, 0 ];
+ : [ origWidth, 0 ];
// If one of the dimensions is set to 9999, then the actual value of that dimension can't be retrieved from the url.
// In that case, we set the value to 0.
- if ( '9999' === size_parts[ 0 ] ) {
- size_parts[ 0 ] = '0';
+ if ( sizeParts[ 0 ] === '9999' ) {
+ sizeParts[ 0 ] = '0';
}
- if ( '9999' === size_parts[ 1 ] ) {
- size_parts[ 1 ] = '0';
+ if ( sizeParts[ 1 ] === '9999' ) {
+ sizeParts[ 1 ] = '0';
}
- return size_parts;
- },
-
- originalDimensions: function() {
- var splitted = $( this )
- .data( 'orig-size' )
- .split( ',' );
- return { width: parseInt( splitted[ 0 ], 10 ), height: parseInt( splitted[ 1 ], 10 ) };
- },
-
- format: function( args ) {
- if ( 'object' !== typeof args ) {
- args = {};
- }
- if ( ! args.text || 'undefined' === typeof args.text ) {
- return;
- }
- if ( ! args.replacements || 'undefined' === typeof args.replacements ) {
- return args.text;
- }
- return args.text.replace( /{(\d+)}/g, function( match, number ) {
- return typeof args.replacements[ number ] !== 'undefined'
- ? args.replacements[ number ]
- : match;
- } );
- },
+ return sizeParts;
+ }
/**
* Returns a number in a fraction format that represents the shutter speed.
* @param Number speed
* @return String
*/
- shutterSpeed: function( speed ) {
+ function formatShutterSpeed( speed ) {
var denominator;
// round to one decimal if value > 1s by multiplying it by 10, rounding, then dividing by 10 again
@@ -1266,70 +982,102 @@ jQuery( document ).ready( function( $ ) {
denominator = Math.round( 1 / speed );
return '1/' + denominator + 's';
- },
+ }
- parseTitleDesc: function( value ) {
+ function parseTitleOrDesc( value ) {
if ( ! value.match( ' ' ) && value.match( '_' ) ) {
return '';
}
return value;
- },
+ }
- getTitleDesc: function( data ) {
- var title = '',
- desc = '',
- markup = '',
- target;
+ function updateTitleCaptionAndDesc( data ) {
+ var caption = '';
+ var title = '';
+ var desc = '';
+ var captionMainElement;
+ var captionInfoExtraElement;
+ var titleElement;
+ var descriptionElement;
+
+ captionMainElement = carousel.overlay.querySelector( '.jp-carousel-photo-caption' );
+ captionInfoExtraElement = carousel.overlay.querySelector( '.jp-carousel-caption' );
+
+ titleElement = carousel.overlay.querySelector( '.jp-carousel-photo-title' );
+ descriptionElement = carousel.overlay.querySelector( '.jp-carousel-photo-description' );
+
+ domUtil.hide( captionMainElement );
+ domUtil.hide( captionInfoExtraElement );
+ domUtil.hide( titleElement );
+ domUtil.hide( descriptionElement );
+
+ caption = parseTitleOrDesc( data.caption ) || '';
+ title = parseTitleOrDesc( data.title ) || '';
+ desc = parseTitleOrDesc( data.desc ) || '';
+
+ if ( caption || title || desc ) {
+ if ( caption ) {
+ captionMainElement.innerHTML = caption;
+ captionInfoExtraElement.innerHTML = caption;
+
+ domUtil.show( captionMainElement );
+ domUtil.show( captionInfoExtraElement );
+ }
- target = $( 'div.jp-carousel-titleanddesc', 'div.jp-carousel-wrap' );
- target.hide();
+ if ( domUtil.stripHTML( caption ) === domUtil.stripHTML( title ) ) {
+ title = '';
+ }
- title = gallery.jp_carousel( 'parseTitleDesc', data.title ) || '';
- desc = gallery.jp_carousel( 'parseTitleDesc', data.desc ) || '';
+ if ( domUtil.stripHTML( caption ) === domUtil.stripHTML( desc ) ) {
+ desc = '';
+ }
- if ( title.length || desc.length ) {
- // Convert from HTML to plain text (including HTML entities decode, etc)
- if (
- $( '<div />' )
- .html( title )
- .text() ===
- $( '<div />' )
- .html( desc )
- .text()
- ) {
- title = '';
+ if ( domUtil.stripHTML( title ) === domUtil.stripHTML( desc ) ) {
+ desc = '';
}
- markup = title.length
- ? '<div class="jp-carousel-titleanddesc-title">' + title + '</div>'
- : '';
- markup += desc.length
- ? '<div class="jp-carousel-titleanddesc-desc">' + desc + '</div>'
- : '';
+ if ( desc ) {
+ descriptionElement.innerHTML = desc;
+ domUtil.show( descriptionElement );
- target.html( markup ).fadeIn( 'slow' );
- }
+ if ( ! title && ! caption ) {
+ captionMainElement.innerHTML = domUtil.stripHTML( desc );
+ domUtil.show( captionMainElement );
+ }
+ }
+
+ if ( title ) {
+ var plainTitle = domUtil.stripHTML( title );
+ titleElement.innerHTML = plainTitle;
+
+ if ( ! caption ) {
+ captionMainElement.innerHTML = plainTitle;
+ captionInfoExtraElement.innerHTML = plainTitle;
+
+ domUtil.show( captionMainElement );
+ }
- $( 'div#jp-carousel-comment-form-container' ).css( 'margin-top', '20px' );
- $( 'div#jp-carousel-comments-loading' ).css( 'margin-top', '20px' );
- },
+ domUtil.show( titleElement );
+ }
+ }
+ }
// updateExif updates the contents of the exif UL (.jp-carousel-image-exif)
- updateExif: function( meta ) {
- if ( ! meta || 1 !== Number( jetpackCarouselStrings.display_exif ) ) {
+ function updateExif( meta ) {
+ if ( ! meta || Number( jetpackCarouselStrings.display_exif ) !== 1 ) {
return false;
}
- var $ul = $( "<ul class='jp-carousel-image-exif'></ul>" );
+ var ul = carousel.info.querySelector( '.jp-carousel-image-meta ul.jp-carousel-image-exif' );
+ var html = '';
- $.each( meta, function( key, val ) {
- if (
- 0 === parseFloat( val ) ||
- ! val.length ||
- -1 === $.inArray( key, $.makeArray( jetpackCarouselStrings.meta_data ) )
- ) {
- return;
+ for ( var key in meta ) {
+ var val = meta[ key ];
+ var metaKeys = jetpackCarouselStrings.meta_data || [];
+
+ if ( parseFloat( val ) === 0 || ! val.length || metaKeys.indexOf( key ) === -1 ) {
+ continue;
}
switch ( key ) {
@@ -1337,517 +1085,635 @@ jQuery( document ).ready( function( $ ) {
val = val + 'mm';
break;
case 'shutter_speed':
- val = gallery.jp_carousel( 'shutterSpeed', val );
+ val = formatShutterSpeed( val );
break;
case 'aperture':
val = 'f/' + val;
break;
}
- $ul.append( '<li><h5>' + jetpackCarouselStrings[ key ] + '</h5>' + val + '</li>' );
- } );
+ html += '<li><h5>' + jetpackCarouselStrings[ key ] + '</h5>' + val + '</li>';
+ }
- // Update (replace) the content of the ul
- $( 'div.jp-carousel-image-meta ul.jp-carousel-image-exif' ).replaceWith( $ul );
- },
+ ul.innerHTML = html;
+ ul.style.removeProperty( 'display' );
+ }
- // updateFullSizeLink updates the contents of the jp-carousel-image-download link
- updateFullSizeLink: function( current ) {
- if ( ! current || ! current.data ) {
+ // Update the contents of the jp-carousel-image-download link
+ function updateFullSizeLink( currentSlide ) {
+ if ( ! currentSlide ) {
return false;
}
- var original,
- origSize = current.data( 'orig-size' ).split( ',' ),
- imageLinkParser = document.createElement( 'a' );
+ var original;
+ var origSize = [ currentSlide.attrs.origWidth, currentSlide.attrs.origHeight ];
+ var imageLinkParser = document.createElement( 'a' );
- imageLinkParser.href = current.data( 'src' ).replace( /\?.+$/, '' );
+ imageLinkParser.href = currentSlide.attrs.src.replace( /\?.+$/, '' );
// Is this a Photon URL?
- if ( imageLinkParser.hostname.match( /^i[\d]{1}.wp.com$/i ) !== null ) {
+ if ( imageLinkParser.hostname.match( /^i[\d]{1}\.wp\.com$/i ) !== null ) {
original = imageLinkParser.href;
} else {
- original = current.data( 'orig-file' ).replace( /\?.+$/, '' );
- }
-
- var permalink = $(
- '<a>' +
- gallery.jp_carousel( 'format', {
- text: jetpackCarouselStrings.download_original,
- replacements: origSize,
- } ) +
- '</a>'
- )
- .addClass( 'jp-carousel-image-download' )
- .attr( 'href', original )
- .attr( 'target', '_blank' );
-
- // Update (replace) the content of the anchor
- $( 'div.jp-carousel-image-meta a.jp-carousel-image-download' ).replaceWith( permalink );
- },
-
- updateMap: function( meta ) {
- if (
- ! meta.latitude ||
- ! meta.longitude ||
- 1 !== Number( jetpackCarouselStrings.display_geo )
- ) {
- return;
+ original = currentSlide.attrs.origFile.replace( /\?.+$/, '' );
}
- var latitude = meta.latitude,
- longitude = meta.longitude,
- $metabox = $( 'div.jp-carousel-image-meta', 'div.jp-carousel-wrap' ),
- $mapbox = $( '<div></div>' ),
- style =
- '&scale=2&style=feature:all|element:all|invert_lightness:true|hue:0x0077FF|saturation:-50|lightness:-5|gamma:0.91';
-
- $mapbox
- .addClass( 'jp-carousel-image-map' )
- .html(
- '<img width="154" height="154" src="https://maps.googleapis.com/maps/api/staticmap?\
- center=' +
- latitude +
- ',' +
- longitude +
- '&\
- zoom=8&\
- size=154x154&\
- sensor=false&\
- markers=size:medium%7Ccolor:blue%7C' +
- latitude +
- ',' +
- longitude +
- style +
- '" class="gmap-main" />\
- \
- <div class="gmap-topright"><div class="imgclip"><img width="175" height="154" src="https://maps.googleapis.com/maps/api/staticmap?\
- center=' +
- latitude +
- ',' +
- longitude +
- '&\
- zoom=3&\
- size=175x154&\
- sensor=false&\
- markers=size:small%7Ccolor:blue%7C' +
- latitude +
- ',' +
- longitude +
- style +
- '"c /></div></div>\
- \
- '
- )
- .prependTo( $metabox );
- },
-
- testCommentsOpened: function( opened ) {
- if ( 1 === parseInt( opened, 10 ) ) {
- $( '.jp-carousel-buttons' ).fadeIn( 'fast' );
- commentForm.fadeIn( 'fast' );
+ var downloadText = carousel.info.querySelector( '.jp-carousel-download-text' );
+ var permalink = carousel.info.querySelector( '.jp-carousel-image-download' );
+
+ downloadText.innerHTML = util.applyReplacements(
+ jetpackCarouselStrings.download_original,
+ origSize
+ );
+ permalink.setAttribute( 'href', original );
+ permalink.style.removeProperty( 'display' );
+ }
+
+ function testCommentsOpened( opened ) {
+ var commentForm = carousel.container.querySelector( '.jp-carousel-comment-form-container' );
+ var isOpened = parseInt( opened, 10 ) === 1;
+
+ if ( isOpened ) {
+ domUtil.fadeIn( commentForm );
} else {
- $( '.jp-carousel-buttons' ).fadeOut( 'fast' );
- commentForm.fadeOut( 'fast' );
+ domUtil.fadeOut( commentForm );
}
- },
+ }
+
+ function fetchComments( attachmentId, offset ) {
+ var shouldClear = offset === undefined;
+ var commentsIndicator = carousel.info.querySelector(
+ '.jp-carousel-icon-comments .jp-carousel-has-comments-indicator'
+ );
+
+ commentsIndicator.classList.remove( 'jp-carousel-show' );
- getComments: function( args ) {
clearInterval( commentInterval );
- if ( 'object' !== typeof args ) {
+ if ( ! attachmentId ) {
return;
}
- if ( 'undefined' === typeof args.attachment_id || ! args.attachment_id ) {
- return;
+ if ( ! offset || offset < 1 ) {
+ offset = 0;
}
- if ( ! args.offset || 'undefined' === typeof args.offset || args.offset < 1 ) {
- args.offset = 0;
+ var comments = carousel.info.querySelector( '.jp-carousel-comments' );
+ var commentsLoading = carousel.info.querySelector( '#jp-carousel-comments-loading' );
+ domUtil.show( commentsLoading );
+
+ if ( shouldClear ) {
+ domUtil.hide( comments );
+ comments.innerHTML = '';
}
- var comments = $( '.jp-carousel-comments' ),
- commentsLoading = $( '#jp-carousel-comments-loading' ).show();
+ var xhr = new XMLHttpRequest();
+ var url =
+ jetpackCarouselStrings.ajaxurl +
+ '?action=get_attachment_comments' +
+ '&nonce=' +
+ jetpackCarouselStrings.nonce +
+ '&id=' +
+ attachmentId +
+ '&offset=' +
+ offset;
+ xhr.open( 'GET', url );
+ xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
- if ( args.clear ) {
- comments.hide().empty();
- }
+ var onError = function () {
+ domUtil.fadeIn( comments );
+ domUtil.fadeOut( commentsLoading );
+ };
- $.ajax( {
- type: 'GET',
- url: jetpackCarouselStrings.ajaxurl,
- dataType: 'json',
- data: {
- action: 'get_attachment_comments',
- nonce: jetpackCarouselStrings.nonce,
- id: args.attachment_id,
- offset: args.offset,
- },
- success: function( data /*, status, xhr*/ ) {
- if ( args.clear ) {
- comments.fadeOut( 'fast' ).empty();
- }
+ xhr.onload = function () {
+ // Ignore the results if they arrive late and we're now on a different slide.
+ if (
+ ! carousel.currentSlide ||
+ carousel.currentSlide.attrs.attachmentId !== attachmentId
+ ) {
+ return;
+ }
- $( data ).each( function() {
- var comment = $( '<div></div>' )
- .addClass( 'jp-carousel-comment' )
- .attr( 'id', 'jp-carousel-comment-' + this[ 'id' ] )
- .html(
- '<div class="comment-gravatar">' +
- this[ 'gravatar_markup' ] +
- '</div>' +
- '<div class="comment-author">' +
- this[ 'author_markup' ] +
- '</div>' +
- '<div class="comment-date">' +
- this[ 'date_gmt' ] +
- '</div>' +
- '<div class="comment-content">' +
- this[ 'content' ] +
- '</div>'
- );
- comments.append( comment );
-
- // Set the interval to check for a new page of comments.
- clearInterval( commentInterval );
- commentInterval = setInterval( function() {
- if (
- $( '.jp-carousel-overlay' ).height() - 150 <
- $( '.jp-carousel-wrap' ).scrollTop() + $( window ).height()
- ) {
- gallery.jp_carousel( 'getComments', {
- attachment_id: args.attachment_id,
- offset: args.offset + 10,
- clear: false,
- } );
- clearInterval( commentInterval );
- }
- }, 300 );
- } );
+ var isSuccess = xhr.status >= 200 && xhr.status < 300;
+ var data;
+ try {
+ data = JSON.parse( xhr.responseText );
+ } catch ( e ) {
+ // Do nothing.
+ }
- // Verify (late) that the user didn't repeatldy click the arrows really fast, in which case the requested
- // attachment id might no longer match the current attachment id by the time we get the data back or a now
- // registered infiniscroll event kicks in, so we don't ever display comments for the wrong image by mistake.
- var current = $( '.jp-carousel div.selected' );
- if ( current && current.data && current.data( 'attachment-id' ) != args.attachment_id ) {
- comments.fadeOut( 'fast' );
- comments.empty();
- return;
- }
+ if ( ! isSuccess || ! data || ! Array.isArray( data ) ) {
+ return onError();
+ }
- // Increase the height of the background, semi-transparent overlay to match the new length of the comments list.
- $( '.jp-carousel-overlay' ).height(
- $( window ).height() +
- titleAndDescription.height() +
- commentForm.height() +
- ( comments.height() > 0 ? comments.height() : imageMeta.height() ) +
- 200
- );
-
- comments.show();
- commentsLoading.hide();
- },
- error: function( xhr, status, error ) {
- // TODO: proper error handling
- console.log( 'Comment get fail...', xhr, status, error );
- comments.fadeIn( 'fast' );
- commentsLoading.fadeOut( 'fast' );
- },
- } );
- },
+ if ( shouldClear ) {
+ comments.innerHTML = '';
+ }
- postCommentError: function( args ) {
- if ( 'object' !== typeof args ) {
- args = {};
+ for ( var i = 0; i < data.length; i++ ) {
+ var entry = data[ i ];
+ var comment = document.createElement( 'div' );
+ comment.classList.add( 'jp-carousel-comment' );
+ comment.setAttribute( 'id', 'jp-carousel-comment-' + entry.id );
+ comment.innerHTML =
+ '<div class="comment-gravatar">' +
+ entry.gravatar_markup +
+ '</div>' +
+ '<div class="comment-content">' +
+ '<div class="comment-author">' +
+ entry.author_markup +
+ '</div>' +
+ '<div class="comment-date">' +
+ entry.date_gmt +
+ '</div>' +
+ entry.content +
+ '</div>';
+ comments.appendChild( comment );
+
+ // Set the interval to check for a new page of comments.
+ clearInterval( commentInterval );
+ commentInterval = setInterval( function () {
+ if ( carousel.container.scrollTop + 150 > window.innerHeight ) {
+ fetchComments( attachmentId, offset + 10 );
+ clearInterval( commentInterval );
+ }
+ }, 300 );
+ }
+
+ if ( data.length > 0 ) {
+ domUtil.show( comments );
+ commentsIndicator.innerText = data.length;
+ commentsIndicator.classList.add( 'jp-carousel-show' );
+ }
+
+ domUtil.hide( commentsLoading );
+ };
+
+ xhr.onerror = onError;
+
+ xhr.send();
+ }
+
+ function loadFullImage( slide ) {
+ var el = slide.el;
+ var attrs = slide.attrs;
+ var image = el.querySelector( 'img' );
+
+ if ( ! image.hasAttribute( 'data-loaded' ) ) {
+ var hasPreview = !! attrs.previewImage;
+ var thumbSize = attrs.thumbSize;
+
+ if ( ! hasPreview || ( thumbSize && el.offsetWidth > thumbSize.width ) ) {
+ image.src = attrs.src;
+ } else {
+ image.src = attrs.previewImage;
+ }
+
+ image.setAttribute( 'itemprop', 'image' );
+ image.setAttribute( 'data-loaded', 1 );
}
- if (
- ! args.field ||
- 'undefined' === typeof args.field ||
- ! args.error ||
- 'undefined' === typeof args.error
- ) {
- return;
+ }
+
+ function loadBackgroundImage( slide ) {
+ var currentSlide = slide.el;
+
+ if ( swiper && swiper.slides ) {
+ currentSlide = swiper.slides[ swiper.activeIndex ];
}
- $( '#jp-carousel-comment-post-results' )
- .slideUp( 'fast' )
- .html( '<span class="jp-carousel-comment-post-error">' + args.error + '</span>' )
- .slideDown( 'fast' );
- $( '#jp-carousel-comment-form-spinner' ).spin( false );
- },
-
- setCommentIframeSrc: function( attachment_id ) {
- var iframe = $( '#jp-carousel-comment-iframe' );
- // Set the proper irame src for the current attachment id
- if ( iframe && iframe.length ) {
- iframe.attr( 'src', iframe.attr( 'src' ).replace( /(postid=)\d+/, '$1' + attachment_id ) );
- iframe.attr(
- 'src',
- iframe.attr( 'src' ).replace( /(%23.+)?$/, '%23jp-carousel-' + attachment_id )
- );
+
+ var image = slide.attrs.originalElement;
+ var isLoaded = image.complete && image.naturalHeight !== 0;
+
+ if ( isLoaded ) {
+ applyBackgroundImage( slide, currentSlide, image );
+ return;
}
- },
- clearCommentTextAreaValue: function() {
- var commentTextArea = $( '#jp-carousel-comment-form-comment-field' );
- if ( commentTextArea ) {
- commentTextArea.val( '' );
+ image.onload = function () {
+ applyBackgroundImage( slide, currentSlide, image );
+ };
+ }
+
+ function applyBackgroundImage( slide, currentSlide, image ) {
+ var url = util.getBackgroundImage( image );
+ slide.backgroundImage = url;
+ currentSlide.style.backgroundImage = 'url(' + url + ')';
+ currentSlide.style.backgroundSize = 'cover';
+ }
+
+ function clearCommentTextAreaValue() {
+ if ( carousel.commentField ) {
+ carousel.commentField.value = '';
}
- },
+ }
- nextSlide: function() {
- var slides = this.jp_carousel( 'slides' );
- var selected = this.jp_carousel( 'selectedSlide' );
+ function getOriginalDimensions( el ) {
+ var size = el.getAttribute( 'data-orig-size' ) || '';
- if ( selected.length === 0 || ( slides.length > 2 && selected.is( slides.last() ) ) ) {
- return slides.first();
+ if ( size ) {
+ var parts = size.split( ',' );
+ return { width: parseInt( parts[ 0 ], 10 ), height: parseInt( parts[ 1 ], 10 ) };
+ } else {
+ return {
+ width:
+ el.getAttribute( 'data-original-width' ) || el.getAttribute( 'width' ) || undefined,
+ height:
+ el.getAttribute( 'data-original-height' ) || el.getAttribute( 'height' ) || undefined,
+ };
}
+ }
- return selected.next();
- },
+ function initCarouselSlides( items, startIndex ) {
+ carousel.slides = [];
- prevSlide: function() {
- var slides = this.jp_carousel( 'slides' );
- var selected = this.jp_carousel( 'selectedSlide' );
+ var max = calculateMaxSlideDimensions();
- if ( selected.length === 0 || ( slides.length > 2 && selected.is( slides.first() ) ) ) {
- return slides.last();
+ // If the startIndex is not 0 then preload the clicked image first.
+ if ( startIndex !== 0 ) {
+ var img = new Image();
+ img.src = items[ startIndex ].getAttribute( 'data-gallery-src' );
}
- return selected.prev();
- },
+ var useInPageThumbnails = !! domUtil.closest( items[ 0 ], '.tiled-gallery.type-rectangular' );
- loadFullImage: function( slide ) {
- var image = slide.find( 'img:first' );
+ // create the 'slide'
+ Array.prototype.forEach.call( items, function ( item, i ) {
+ var permalinkEl = domUtil.closest( item, 'a' );
+ var origFile = item.getAttribute( 'data-orig-file' ) || item.getAttribute( 'src-orig' );
+ var attrID =
+ item.getAttribute( 'data-attachment-id' ) || item.getAttribute( 'data-id' ) || '0';
+ var caption = document.querySelector(
+ 'img[data-attachment-id="' + attrID + '"] + figcaption'
+ );
- if ( ! image.data( 'loaded' ) ) {
- // If the width of the slide is smaller than the width of the "thumbnail" we're already using,
- // don't load the full image.
+ if ( caption ) {
+ caption = caption.innerHTML;
+ } else {
+ caption = item.getAttribute( 'data-image-caption' );
+ }
- image.on( 'load.jetpack', function() {
- image.off( 'load.jetpack' );
- $( this )
- .closest( '.jp-carousel-slide' )
- .css( 'background-image', '' );
- } );
+ var attrs = {
+ originalElement: item,
+ attachmentId: attrID,
+ commentsOpened: item.getAttribute( 'data-comments-opened' ) || '0',
+ imageMeta: domUtil.getJSONAttribute( item, 'data-image-meta' ) || {},
+ title: item.getAttribute( 'data-image-title' ) || '',
+ desc: item.getAttribute( 'data-image-description' ) || '',
+ mediumFile: item.getAttribute( 'data-medium-file' ) || '',
+ largeFile: item.getAttribute( 'data-large-file' ) || '',
+ origFile: origFile || '',
+ thumbSize: { width: item.naturalWidth, height: item.naturalHeight },
+ caption: caption || '',
+ permalink: permalinkEl && permalinkEl.getAttribute( 'href' ),
+ src: origFile || item.getAttribute( 'src' ) || '',
+ };
+
+ var tiledGalleryItem = domUtil.closest( item, '.tiled-gallery-item' );
+ var tiledCaptionEl =
+ tiledGalleryItem && tiledGalleryItem.querySelector( '.tiled-gallery-caption' );
+ var tiledCaption = tiledCaptionEl && tiledCaptionEl.innerHTML;
+ if ( tiledCaption ) {
+ attrs.caption = tiledCaption;
+ }
- if (
- ! slide.data( 'preview-image' ) ||
- ( slide.data( 'thumb-size' ) && slide.width() > slide.data( 'thumb-size' ).width )
- ) {
- image
- .attr( 'src', image.closest( '.jp-carousel-slide' ).data( 'src' ) )
- .attr( 'itemprop', 'image' );
+ var origDimensions = getOriginalDimensions( item );
+
+ attrs.origWidth = origDimensions.width || attrs.thumbSize.width;
+ attrs.origHeight = origDimensions.height || attrs.thumbSize.height;
+
+ if ( typeof wpcom !== 'undefined' && wpcom.carousel && wpcom.carousel.generateImgSrc ) {
+ attrs.src = wpcom.carousel.generateImgSrc( item, max );
} else {
- image.attr( 'src', slide.data( 'preview-image' ) ).attr( 'itemprop', 'image' );
+ attrs.src = selectBestImageUrl( {
+ origFile: attrs.src,
+ origWidth: attrs.origWidth,
+ origHeight: attrs.origHeight,
+ maxWidth: max.width,
+ maxHeight: max.height,
+ mediumFile: attrs.mediumFile,
+ largeFile: attrs.largeFile,
+ } );
}
- image.data( 'loaded', 1 );
- }
- },
+ // Set the final src.
+ item.setAttribute( 'data-gallery-src', attrs.src );
- hasMultipleImages: function() {
- return gallery.jp_carousel( 'slides' ).length > 1;
- },
- };
+ if ( attrs.attachmentId !== '0' ) {
+ attrs.title = util.texturize( attrs.title );
+ attrs.desc = util.texturize( attrs.desc );
+ attrs.caption = util.texturize( attrs.caption );
- $.fn.jp_carousel = function( method ) {
- // ask for the HTML of the gallery
- // Method calling logic
- if ( methods[ method ] ) {
- return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ) );
- } else if ( typeof method === 'object' || ! method ) {
- return methods.open.apply( this, arguments );
- } else {
- $.error( 'Method ' + method + ' does not exist on jQuery.jp_carousel' );
+ // Initially, the image is a 1x1 transparent gif.
+ // The preview is shown as a background image on the slide itself.
+ var image = new Image();
+ image.src = attrs.src;
+
+ var slideEl = document.createElement( 'div' );
+ slideEl.classList.add( 'swiper-slide' );
+ slideEl.setAttribute( 'itemprop', 'associatedMedia' );
+ slideEl.setAttribute( 'itemscope', '' );
+ slideEl.setAttribute( 'itemtype', 'https://schema.org/ImageObject' );
+ var zoomEl = document.createElement( 'div' );
+ zoomEl.classList.add( 'swiper-zoom-container' );
+
+ carousel.gallery.appendChild( slideEl );
+
+ slideEl.appendChild( zoomEl );
+ zoomEl.appendChild( image );
+ slideEl.setAttribute( 'data-attachment-id', attrs.attachmentId );
+ slideEl.setAttribute( 'data-permalink', attrs.permalink );
+ slideEl.setAttribute( 'data-orig-file', attrs.origFile );
+
+ if ( useInPageThumbnails ) {
+ // Use the image already loaded in the gallery as a preview.
+ attrs.previewImage = attrs.src;
+ }
+
+ var slide = { el: slideEl, attrs: attrs, index: i };
+ carousel.slides.push( slide );
+ }
+ } );
}
- };
-
- // register the event listener for starting the gallery
- $( document.body ).on(
- 'click.jp-carousel',
- 'div.gallery, div.tiled-gallery, ul.wp-block-gallery, ul.blocks-gallery-grid, div.wp-block-jetpack-tiled-gallery, a.single-image-gallery',
- function( e ) {
- if ( ! $( this ).jp_carousel( 'testForData', e.currentTarget ) ) {
+
+ function loadSwiper( gallery, options ) {
+ if ( ! window.Swiper670 ) {
+ var loader = document.querySelector( '#jp-carousel-loading-overlay' );
+ domUtil.show( loader );
+ var jsScript = document.createElement( 'script' );
+ jsScript.id = 'jetpack-carousel-swiper-js';
+ jsScript.src = window.jetpackSwiperLibraryPath.url;
+ jsScript.async = true;
+ jsScript.onload = function () {
+ domUtil.hide( loader );
+ openCarousel( gallery, options );
+ };
+ jsScript.onerror = function () {
+ domUtil.hide( loader );
+ };
+ document.head.appendChild( jsScript );
return;
}
+ openCarousel( gallery, options );
+ }
- // Do not open the modal if we are looking at a gallery caption from before WP5, which may contain a link.
- if (
- $( e.target )
- .parent()
- .hasClass( 'gallery-caption' )
- ) {
- return;
+ function openCarousel( gallery, options ) {
+ var settings = {
+ imgSelector:
+ '.gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id], img[data-attachment-id], img[data-id]',
+ startIndex: 0,
+ };
+
+ var data = domUtil.getJSONAttribute( gallery, 'data-carousel-extra' );
+ var tapTimeout;
+
+ if ( ! data ) {
+ return; // don't run if the default gallery functions weren't used
}
- // Do not open the modal if we are looking at a caption of a gallery block, which may contain a link.
- if (
- $( e.target )
- .parent()
- .is( 'figcaption' )
- ) {
- return;
+ initializeCarousel();
+
+ if ( carousel.isOpen ) {
+ return; // don't open if already opened
}
+ carousel.isOpen = true;
- // Set height to auto
- // Fix some themes where closing carousel brings view back to top
- $( 'html' ).css( 'height', 'auto' );
+ // make sure to stop the page from scrolling behind the carousel overlay, so we don't trigger
+ // infiniscroll for it when enabled (Reader, theme infiniscroll, etc).
+ originalOverflow = getComputedStyle( document.body ).overflow;
+ document.body.style.overflow = 'hidden';
+ // prevent html from overflowing on some of the new themes.
+ originalHOverflow = getComputedStyle( document.documentElement ).overflow;
+ document.documentElement.style.overflow = 'hidden';
+ scrollPos = window.scrollY || window.pageYOffset || 0;
- e.preventDefault();
+ carousel.container.setAttribute( 'data-carousel-extra', JSON.stringify( data ) );
+ stat( [ 'open', 'view_image' ] );
+
+ // If options exist, lets merge them
+ // with our default settings
+ for ( var option in options || {} ) {
+ settings[ option ] = options[ option ];
+ }
+
+ if ( settings.startIndex === -1 ) {
+ settings.startIndex = 0; // -1 returned if can't find index, so start from beginning
+ }
- // Stopping propagation in case there are parent elements
- // with .gallery or .tiled-gallery class
- e.stopPropagation();
- $( this ).jp_carousel( 'open', {
- start_index: $( this )
- .find( '.gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item' )
- .index(
- $( e.target ).parents(
- '.gallery-item, .tiled-gallery-item, .blocks-gallery-item, .tiled-gallery__item'
- )
- ),
+ domUtil.emitEvent( carousel.overlay, 'jp_carousel.beforeOpen' );
+ carousel.gallery.innerHTML = '';
+
+ // Need to set the overlay manually to block or swiper does't initialise properly.
+ carousel.overlay.style.opacity = 1;
+ carousel.overlay.style.display = 'block';
+
+ initCarouselSlides( gallery.querySelectorAll( settings.imgSelector ), settings.startIndex );
+
+ swiper = new window.Swiper670( '.jp-carousel-swiper-container', {
+ centeredSlides: true,
+ zoom: true,
+ loop: carousel.slides.length > 1,
+ // Turn off interactions and hide navigation arrows if there is only one slide.
+ enabled: carousel.slides.length > 1,
+ pagination: {
+ el: '.jp-swiper-pagination',
+ clickable: true,
+ },
+ navigation: {
+ nextEl: '.jp-swiper-button-next',
+ prevEl: '.jp-swiper-button-prev',
+ },
+ initialSlide: settings.startIndex,
+ on: {
+ init: function () {
+ selectSlideAtIndex( settings.startIndex );
+ },
+ },
+ preventClicks: false,
+ preventClicksPropagation: false,
+ preventInteractionOnTransition: ! domUtil.isTouch(),
+ threshold: 5,
} );
- }
- );
- // handle lightbox (single image gallery) for images linking to 'Attachment Page'
- if ( 1 === Number( jetpackCarouselStrings.single_image_gallery ) ) {
- processSingleImageGallery();
- $( document.body ).on( 'post-load', function() {
- processSingleImageGallery();
- } );
- }
+ swiper.on( 'slideChange', function ( swiper ) {
+ var index;
+ // Swiper indexes slides from 1, plus when looping to left last slide ends up
+ // as 0 and looping to right first slide as total slides + 1. These are adjusted
+ // here to match index of carousel.slides.
+ if ( swiper.activeIndex === 0 ) {
+ index = carousel.slides.length - 1;
+ } else if ( swiper.activeIndex === carousel.slides.length + 1 ) {
+ index = 0;
+ } else {
+ index = swiper.activeIndex - 1;
+ }
+ selectSlideAtIndex( index );
- // Makes carousel work on page load and when back button leads to same URL with carousel hash (ie: no actual document.ready trigger)
- $( window ).on( 'hashchange.jp-carousel', function() {
- var hashRegExp = /jp-carousel-(\d+)/,
- matches,
- attachmentId,
- galleries,
- selectedThumbnail;
+ carousel.overlay.classList.remove( 'jp-carousel-hide-controls' );
+ } );
- if ( ! window.location.hash || ! hashRegExp.test( window.location.hash ) ) {
- if ( gallery && gallery.opened ) {
- container.jp_carousel( 'close' );
- }
+ swiper.on( 'zoomChange', function ( swiper, scale ) {
+ if ( scale > 1 ) {
+ carousel.overlay.classList.add( 'jp-carousel-hide-controls' );
+ }
- return;
- }
+ if ( scale === 1 ) {
+ carousel.overlay.classList.remove( 'jp-carousel-hide-controls' );
+ }
+ } );
- if ( window.location.hash === last_known_location_hash && gallery.opened ) {
- return;
- }
+ swiper.on( 'doubleTap', function ( swiper ) {
+ clearTimeout( tapTimeout );
+ if ( swiper.zoom.scale === 1 ) {
+ var zoomTimeout = setTimeout( function () {
+ carousel.overlay.classList.remove( 'jp-carousel-hide-controls' );
+ clearTimeout( zoomTimeout );
+ }, 150 );
+ }
+ } );
- if ( window.location.hash && gallery && ! gallery.opened && history.back ) {
- history.back();
- return;
+ swiper.on( 'tap', function () {
+ if ( swiper.zoom.scale > 1 ) {
+ tapTimeout = setTimeout( function () {
+ carousel.overlay.classList.toggle( 'jp-carousel-hide-controls' );
+ }, 150 );
+ }
+ } );
+
+ domUtil.fadeIn( carousel.overlay, function () {
+ domUtil.emitEvent( carousel.overlay, 'jp_carousel.afterOpen' );
+ } );
}
- last_known_location_hash = window.location.hash;
- matches = window.location.hash.match( hashRegExp );
- attachmentId = parseInt( matches[ 1 ], 10 );
- galleries = $(
- 'div.gallery, div.tiled-gallery, a.single-image-gallery, ul.wp-block-gallery, div.wp-block-jetpack-tiled-gallery'
- );
-
- // Find the first thumbnail that matches the attachment ID in the location
- // hash, then open the gallery that contains it.
- galleries.each( function( _, galleryEl ) {
- $( galleryEl )
- .find( 'img' )
- .each( function( imageIndex, imageEl ) {
- if ( $( imageEl ).data( 'attachment-id' ) === parseInt( attachmentId, 10 ) ) {
- selectedThumbnail = { index: imageIndex, gallery: galleryEl };
- return false;
+ // Register the event listener for starting the gallery
+ document.body.addEventListener( 'click', function ( e ) {
+ var isCompatible =
+ window.CSS && window.CSS.supports && window.CSS.supports( 'display', 'grid' );
+
+ // IE11 support is being dropped in August 2021. The new swiper.js libray is not IE11 compat
+ // so just default to opening individual image attachment/media pages for IE.
+ if ( ! isCompatible ) {
+ return;
+ }
+
+ var target = e.target;
+ var gallery = domUtil.closest( target, gallerySelector );
+
+ if ( gallery ) {
+ if ( ! testForData( gallery ) ) {
+ return;
+ }
+
+ var parent = target.parentElement;
+ var grandparent = parent.parentElement;
+
+ // If Gallery is made up of individual Image blocks check for custom link before
+ // loading carousel.
+ if ( grandparent && grandparent.classList.contains( 'wp-block-image' ) ) {
+ var parentHref = parent.getAttribute( 'href' );
+
+ // If the link does not point to the attachment or media file then assume Image has
+ // a custom link so don't load the carousel.
+ if (
+ parentHref.split( '?' )[ 0 ] !==
+ target.getAttribute( 'data-orig-file' ).split( '?' )[ 0 ] &&
+ parentHref !== target.getAttribute( 'data-permalink' )
+ ) {
+ return;
}
- } );
+ }
- if ( selectedThumbnail ) {
- $( selectedThumbnail.gallery ).jp_carousel( 'openOrSelectSlide', selectedThumbnail.index );
- return false;
+ // Do not open the modal if we are looking at a gallery caption from before WP5, which may contain a link.
+ if ( parent.classList.contains( 'gallery-caption' ) ) {
+ return;
+ }
+
+ // Do not open the modal if we are looking at a caption of a gallery block, which may contain a link.
+ if ( domUtil.matches( parent, 'figcaption' ) ) {
+ return;
+ }
+
+ // Set height to auto.
+ // Fix some themes where closing carousel brings view back to top.
+ document.documentElement.style.height = 'auto';
+
+ e.preventDefault();
+
+ // Stopping propagation in case there are parent elements
+ // with .gallery or .tiled-gallery class
+ e.stopPropagation();
+
+ var item = domUtil.closest( target, itemSelector );
+ var index = Array.prototype.indexOf.call( gallery.querySelectorAll( itemSelector ), item );
+ loadSwiper( gallery, { startIndex: index } );
}
} );
- } );
- if ( window.location.hash ) {
- $( window ).trigger( 'hashchange' );
- }
-} );
-
-/**
- * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)
- * Common usage: wipe images (left and right to show the previous or next image)
- *
- * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
- * Version 1.1.1, modified to pass the touchmove event to the callbacks.
- */
-( function( $ ) {
- $.fn.touchwipe = function( settings ) {
- var config = {
- min_move_x: 20,
- min_move_y: 20,
- wipeLeft: function(/*e*/) {},
- wipeRight: function(/*e*/) {},
- wipeUp: function(/*e*/) {},
- wipeDown: function(/*e*/) {},
- preventDefaultEvents: true,
- };
-
- if ( settings ) {
- $.extend( config, settings );
+ // Handle lightbox (single image gallery) for images linking to 'Attachment Page'.
+ if ( Number( jetpackCarouselStrings.single_image_gallery ) === 1 ) {
+ processSingleImageGallery();
+ document.body.addEventListener( 'is.post-load', function () {
+ processSingleImageGallery();
+ } );
}
- this.each( function() {
- var startX;
- var startY;
- var isMoving = false;
+ // Makes carousel work on page load and when back button leads to same URL with carousel hash
+ // (i.e. no actual document.ready trigger).
+ window.addEventListener( 'hashchange', function () {
+ var hashRegExp = /jp-carousel-(\d+)/;
- function cancelTouch() {
- this.removeEventListener( 'touchmove', onTouchMove );
- startX = null;
- isMoving = false;
+ if ( ! window.location.hash || ! hashRegExp.test( window.location.hash ) ) {
+ if ( carousel.isOpen ) {
+ closeCarousel();
+ }
+
+ return;
}
- function onTouchMove( e ) {
- if ( config.preventDefaultEvents ) {
- e.preventDefault();
- }
- if ( isMoving ) {
- var x = e.touches[ 0 ].pageX;
- var y = e.touches[ 0 ].pageY;
- var dx = startX - x;
- var dy = startY - y;
- if ( Math.abs( dx ) >= config.min_move_x ) {
- cancelTouch();
- if ( dx > 0 ) {
- config.wipeLeft( e );
- } else {
- config.wipeRight( e );
- }
- } else if ( Math.abs( dy ) >= config.min_move_y ) {
- cancelTouch();
- if ( dy > 0 ) {
- config.wipeDown( e );
- } else {
- config.wipeUp( e );
- }
+ if ( window.location.hash === lastKnownLocationHash && carousel.isOpen ) {
+ return;
+ }
+
+ if ( window.location.hash && carousel.gallery && ! carousel.isOpen && history.back ) {
+ history.back();
+ return;
+ }
+
+ lastKnownLocationHash = window.location.hash;
+ var matchList = window.location.hash.match( hashRegExp );
+ var attachmentId = parseInt( matchList[ 1 ], 10 );
+ var galleries = document.querySelectorAll( gallerySelector );
+
+ // Find the first thumbnail that matches the attachment ID in the location
+ // hash, then open the gallery that contains it.
+ for ( var i = 0; i < galleries.length; i++ ) {
+ var gallery = galleries[ i ];
+ var selected;
+
+ var images = gallery.querySelectorAll( 'img' );
+ for ( var j = 0; j < images.length; j++ ) {
+ if (
+ parseInt( images[ j ].getAttribute( 'data-attachment-id' ), 10 ) === attachmentId ||
+ parseInt( images[ j ].getAttribute( 'data-id' ), 10 ) === attachmentId
+ ) {
+ selected = j;
+ break;
}
}
- }
- function onTouchStart( e ) {
- if ( e.touches.length === 1 ) {
- startX = e.touches[ 0 ].pageX;
- startY = e.touches[ 0 ].pageY;
- isMoving = true;
- this.addEventListener( 'touchmove', onTouchMove, false );
+ if ( selected !== undefined ) {
+ openOrSelectSlide( gallery, selected );
+ break;
}
}
- if ( 'ontouchstart' in document.documentElement ) {
- this.addEventListener( 'touchstart', onTouchStart, false );
- }
} );
- return this;
- };
-} )( jQuery );
+ if ( window.location.hash ) {
+ domUtil.emitEvent( window, 'hashchange' );
+ }
+ }
+
+ if ( document.readyState !== 'loading' ) {
+ init();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', init );
+ }
+} )();
diff --git a/plugins/jetpack/modules/carousel/jetpack-carousel.php b/plugins/jetpack/modules/carousel/jetpack-carousel.php
index 40401bd1..45ed2975 100644
--- a/plugins/jetpack/modules/carousel/jetpack-carousel.php
+++ b/plugins/jetpack/modules/carousel/jetpack-carousel.php
@@ -234,17 +234,24 @@ class Jetpack_Carousel {
'_inc/build/carousel/jetpack-carousel.min.js',
'modules/carousel/jetpack-carousel.js'
),
- array( 'jquery.spin' ),
- $this->asset_version( '20190102' ),
+ array(),
+ $this->asset_version( JETPACK__VERSION ),
true
);
+ $swiper_library_path = array(
+ 'url' => Assets::get_file_url_for_environment(
+ '_inc/build/carousel/swiper-bundle.min.js',
+ 'modules/carousel/swiper-bundle.js'
+ ),
+ );
+ wp_localize_script( 'jetpack-carousel', 'jetpackSwiperLibraryPath', $swiper_library_path );
+
// Note: using home_url() instead of admin_url() for ajaxurl to be sure to get same domain on wpcom when using mapped domains (also works on self-hosted)
// Also: not hardcoding path since there is no guarantee site is running on site root in self-hosted context.
$is_logged_in = is_user_logged_in();
- $current_user = wp_get_current_user();
- $comment_registration = intval( get_option( 'comment_registration' ) );
- $require_name_email = intval( get_option( 'require_name_email' ) );
+ $comment_registration = (int) get_option( 'comment_registration' );
+ $require_name_email = (int) get_option( 'require_name_email' );
$localize_strings = array(
'widths' => $this->prebuilt_widths,
'is_logged_in' => $is_logged_in,
@@ -252,6 +259,7 @@ class Jetpack_Carousel {
'ajaxurl' => set_url_scheme( admin_url( 'admin-ajax.php' ) ),
'nonce' => wp_create_nonce( 'carousel_nonce' ),
'display_exif' => $this->test_1or0_option( Jetpack_Options::get_option_and_ensure_autoload( 'carousel_display_exif', true ) ),
+ 'display_comments' => $this->test_1or0_option( Jetpack_Options::get_option_and_ensure_autoload( 'carousel_display_comments', true ) ),
'display_geo' => $this->test_1or0_option( Jetpack_Options::get_option_and_ensure_autoload( 'carousel_display_geo', true ) ),
'single_image_gallery' => $this->single_image_gallery_enabled,
'single_image_gallery_media_file' => $this->single_image_gallery_enabled_media_file,
@@ -280,27 +288,6 @@ class Jetpack_Carousel {
'meta_data' => array( 'camera', 'aperture', 'shutter_speed', 'focal_length', 'copyright' ),
);
- if ( ! isset( $localize_strings['jetpack_comments_iframe_src'] ) || empty( $localize_strings['jetpack_comments_iframe_src'] ) ) {
- // We're not using Comments after all, so fallback to standard local comments.
-
- if ( $is_logged_in ) {
- $localize_strings['local_comments_commenting_as'] = '<p id="jp-carousel-commenting-as">' . sprintf( __( 'Commenting as %s', 'jetpack' ), $current_user->data->display_name ) . '</p>';
- } else {
- if ( $comment_registration ) {
- $localize_strings['local_comments_commenting_as'] = '<p id="jp-carousel-commenting-as">' . __( 'You must be <a href="#" class="jp-carousel-comment-login">logged in</a> to post a comment.', 'jetpack' ) . '</p>';
- } else {
- $required = ( $require_name_email ) ? __( '%s (Required)', 'jetpack' ) : '%s';
- $localize_strings['local_comments_commenting_as'] = ''
- . '<fieldset><label for="email">' . sprintf( $required, __( 'Email', 'jetpack' ) ) . '</label> '
- . '<input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" /></fieldset>'
- . '<fieldset><label for="author">' . sprintf( $required, __( 'Name', 'jetpack' ) ) . '</label> '
- . '<input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" /></fieldset>'
- . '<fieldset><label for="url">' . __( 'Website', 'jetpack' ) . '</label> '
- . '<input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" /></fieldset>';
- }
- }
- }
-
/**
* Handle WP stats for images in full-screen.
* Build string with tracking info.
@@ -315,7 +302,7 @@ class Jetpack_Carousel {
*
* @param bool Enable Jetpack Carousel stat collection. Default false.
*/
- if ( apply_filters( 'jetpack_enable_carousel_stats', false ) && in_array( 'stats', Jetpack::get_active_modules() ) && ! ( new Status() )->is_development_mode() ) {
+ if ( apply_filters( 'jetpack_enable_carousel_stats', false ) && in_array( 'stats', Jetpack::get_active_modules(), true ) && ! ( new Status() )->is_offline_mode() ) {
$localize_strings['stats'] = 'blog=' . Jetpack_Options::get_option( 'id' ) . '&host=' . wp_parse_url( get_option( 'home' ), PHP_URL_HOST ) . '&v=ext&j=' . JETPACK__API_VERSION . ':' . JETPACK__VERSION;
// Set the stats as empty if user is logged in but logged-in users shouldn't be tracked.
@@ -340,7 +327,13 @@ class Jetpack_Carousel {
*/
$localize_strings = apply_filters( 'jp_carousel_localize_strings', $localize_strings );
wp_localize_script( 'jetpack-carousel', 'jetpackCarouselStrings', $localize_strings );
- wp_enqueue_style( 'jetpack-carousel', plugins_url( 'jetpack-carousel.css', __FILE__ ), array(), $this->asset_version( '20120629' ) );
+ wp_enqueue_style(
+ 'jetpack-carousel-swiper-css',
+ plugins_url( 'swiper-bundle.css', __FILE__ ),
+ array(),
+ $this->asset_version( JETPACK__VERSION )
+ );
+ wp_enqueue_style( 'jetpack-carousel', plugins_url( 'jetpack-carousel.css', __FILE__ ), array(), $this->asset_version( JETPACK__VERSION ) );
wp_style_add_data( 'jetpack-carousel', 'rtl', 'replace' );
/**
@@ -356,10 +349,225 @@ class Jetpack_Carousel {
*/
do_action( 'jp_carousel_enqueue_assets', $this->first_run, $localize_strings );
+ // Add the carousel skeleton to the page.
+ $this->localize_strings = $localize_strings;
+ add_action( 'wp_footer', array( $this, 'add_carousel_skeleton' ) );
+
$this->first_run = false;
}
}
+ /**
+ * Generate the HTML skeleton that will be picked up by the Carousel JS and used for showing the carousel.
+ */
+ public function add_carousel_skeleton() {
+ $localize_strings = $this->localize_strings;
+ $is_light = ( 'white' === $localize_strings['background_color'] );
+ // Determine whether to fall back to standard local comments.
+ $use_local_comments = ! isset( $localize_strings['jetpack_comments_iframe_src'] ) || empty( $localize_strings['jetpack_comments_iframe_src'] );
+ $current_user = wp_get_current_user();
+ $require_name_email = (int) get_option( 'require_name_email' );
+ /* translators: %s is replaced with a field name in the form, e.g. "Email" */
+ $required = ( $require_name_email ) ? __( '%s (Required)', 'jetpack' ) : '%s';
+ ?>
+ <div id="jp-carousel-loading-overlay">
+ <div id="jp-carousel-loading-wrapper">
+ <span id="jp-carousel-library-loading">&nbsp;</span>
+ </div>
+ </div>
+ <div class="jp-carousel-overlay<?php echo( $is_light ? ' jp-carousel-light' : '' ); ?>" style="display: none;">
+
+ <div class="jp-carousel-container<?php echo( $is_light ? ' jp-carousel-light' : '' ); ?>">
+ <!-- The Carousel Swiper -->
+ <div
+ class="jp-carousel-wrap swiper-container jp-carousel-swiper-container jp-carousel-transitions"
+ itemscope
+ itemtype="https://schema.org/ImageGallery">
+ <div class="jp-carousel swiper-wrapper"></div>
+ <div class="jp-swiper-button-prev swiper-button-prev">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12">
+ <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/>
+ </mask>
+ <g mask="url(#maskPrev)">
+ <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+ </div>
+ <div class="jp-swiper-button-next swiper-button-next">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12">
+ <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/>
+ </mask>
+ <g mask="url(#maskNext)">
+ <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+ </div>
+ </div>
+ <!-- The main close buton -->
+ <div class="jp-carousel-close-hint">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14">
+ <path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/>
+ </mask>
+ <g mask="url(#maskClose)">
+ <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+ </div>
+ <!-- Image info, comments and meta -->
+ <div class="jp-carousel-info">
+ <div class="jp-carousel-info-footer">
+ <div class="jp-carousel-pagination-container">
+ <div class="jp-swiper-pagination swiper-pagination"></div>
+ <div class="jp-carousel-pagination"></div>
+ </div>
+ <div class="jp-carousel-photo-title-container">
+ <h2 class="jp-carousel-photo-caption"></h2>
+ </div>
+ <div class="jp-carousel-photo-icons-container">
+ <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="<?php esc_attr_e( 'Toggle photo metadata visibility', 'jetpack' ); ?>">
+ <span class="jp-carousel-icon">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/>
+ </mask>
+ <g mask="url(#maskInfo)">
+ <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+ </span>
+ </a>
+ <?php if ( $localize_strings['display_comments'] ) : ?>
+ <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="<?php esc_attr_e( 'Toggle photo comments visibility', 'jetpack' ); ?>">
+ <span class="jp-carousel-icon">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/>
+ </mask>
+ <g mask="url(#maskComments)">
+ <rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+
+ <span class="jp-carousel-has-comments-indicator" aria-label="<?php esc_attr_e( 'This image has comments.', 'jetpack' ); ?>"></span>
+ </span>
+ </a>
+ <?php endif; ?>
+ </div>
+ </div>
+ <div class="jp-carousel-info-extra">
+ <div class="jp-carousel-info-content-wrapper">
+ <div class="jp-carousel-photo-title-container">
+ <h2 class="jp-carousel-photo-title"></h2>
+ </div>
+ <div class="jp-carousel-comments-wrapper">
+ <?php if ( $localize_strings['display_comments'] ) : ?>
+ <div id="jp-carousel-comments-loading">
+ <span><?php echo esc_html( $localize_strings['loading_comments'] ); ?></span>
+ </div>
+ <div class="jp-carousel-comments"></div>
+ <div id="jp-carousel-comment-form-container">
+ <span id="jp-carousel-comment-form-spinner">&nbsp;</span>
+ <div id="jp-carousel-comment-post-results"></div>
+ <?php if ( $use_local_comments ) : ?>
+ <?php if ( ! $localize_strings['is_logged_in'] && $localize_strings['comment_registration'] ) : ?>
+ <div id="jp-carousel-comment-form-commenting-as">
+ <p id="jp-carousel-commenting-as">
+ <?php
+ echo wp_kses(
+ __( 'You must be <a href="#" class="jp-carousel-comment-login">logged in</a> to post a comment.', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'class' => array(),
+ ),
+ )
+ );
+ ?>
+ </p>
+ </div>
+ <?php else : ?>
+ <form id="jp-carousel-comment-form">
+ <label for="jp-carousel-comment-form-comment-field" class="screen-reader-text"><?php echo esc_attr( $localize_strings['write_comment'] ); ?></label>
+ <textarea
+ name="comment"
+ class="jp-carousel-comment-form-field jp-carousel-comment-form-textarea"
+ id="jp-carousel-comment-form-comment-field"
+ placeholder="<?php echo esc_attr( $localize_strings['write_comment'] ); ?>"
+ ></textarea>
+ <div id="jp-carousel-comment-form-submit-and-info-wrapper">
+ <div id="jp-carousel-comment-form-commenting-as">
+ <?php if ( $localize_strings['is_logged_in'] ) : ?>
+ <p id="jp-carousel-commenting-as">
+ <?php
+ printf(
+ /* translators: %s is replaced with the user's display name */
+ esc_html__( 'Commenting as %s', 'jetpack' ),
+ esc_html( $current_user->data->display_name )
+ );
+ ?>
+ </p>
+ <?php else : ?>
+ <fieldset>
+ <label for="jp-carousel-comment-form-email-field"><?php echo esc_html( sprintf( $required, __( 'Email', 'jetpack' ) ) ); ?></label>
+ <input type="text" name="email" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-email-field" />
+ </fieldset>
+ <fieldset>
+ <label for="jp-carousel-comment-form-author-field"><?php echo esc_html( sprintf( $required, __( 'Name', 'jetpack' ) ) ); ?></label>
+ <input type="text" name="author" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-author-field" />
+ </fieldset>
+ <fieldset>
+ <label for="jp-carousel-comment-form-url-field"><?php esc_html_e( 'Website', 'jetpack' ); ?></label>
+ <input type="text" name="url" class="jp-carousel-comment-form-field jp-carousel-comment-form-text-field" id="jp-carousel-comment-form-url-field" />
+ </fieldset>
+ <?php endif ?>
+ </div>
+ <input
+ type="submit"
+ name="submit"
+ class="jp-carousel-comment-form-button"
+ id="jp-carousel-comment-form-button-submit"
+ value="<?php echo esc_attr( $localize_strings['post_comment'] ); ?>" />
+ </div>
+ </form>
+ <?php endif ?>
+ <?php endif ?>
+ </div>
+ <?php endif ?>
+ </div>
+ <div class="jp-carousel-image-meta">
+ <div class="jp-carousel-title-and-caption">
+ <div class="jp-carousel-photo-info">
+ <h3 class="jp-carousel-caption" itemprop="caption description"></h3>
+ </div>
+
+ <div class="jp-carousel-photo-description"></div>
+ </div>
+ <ul class="jp-carousel-image-exif" style="display: none;"></ul>
+ <a class="jp-carousel-image-download" target="_blank" style="display: none;">
+ <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18">
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/>
+ </mask>
+ <g mask="url(#mask0)">
+ <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/>
+ </g>
+ </svg>
+ <span class="jp-carousel-download-text"></span>
+ </a>
+ <div class="jp-carousel-image-map" style="display: none;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+ <?php
+ }
+
function set_in_gallery( $output ) {
if (
class_exists( 'Jetpack_AMP_Support' )
@@ -386,7 +594,7 @@ class Jetpack_Carousel {
class_exists( 'Jetpack_AMP_Support' )
&& Jetpack_AMP_Support::is_amp_request()
) {
- return $content;
+ return $this->maybe_add_amp_lightbox( $content );
}
if ( ! preg_match_all( '/<img [^>]+>/', $content, $matches ) ) {
@@ -398,10 +606,12 @@ class Jetpack_Carousel {
! preg_match( '/wp-block-jetpack-slideshow_image/', $image_html ) ) {
$attachment_id = absint( $class_id[2] );
/**
- * If exactly the same image tag is used more than once, overwrite it.
- * All identical tags will be replaced later with 'str_replace()'.
+ * The same image tag may be used more than once but with different attribs,
+ * so save each of them against the attachment id.
*/
- $selected_images[ $attachment_id ] = $image_html;
+ if ( ! isset( $selected_images[ $attachment_id ] ) || ! in_array( $image_html, $selected_images[ $attachment_id ], true ) ) {
+ $selected_images[ $attachment_id ][] = $image_html;
+ }
}
}
@@ -421,16 +631,17 @@ class Jetpack_Carousel {
);
foreach ( $attachments as $attachment ) {
- $image_html = $selected_images[ $attachment->ID ];
+ $image_elements = $selected_images[ $attachment->ID ];
$attributes = $this->add_data_to_images( array(), $attachment );
$attributes_html = '';
foreach ( $attributes as $k => $v ) {
$attributes_html .= esc_attr( $k ) . '="' . esc_attr( $v ) . '" ';
}
-
- $find[] = $image_html;
- $replace[] = str_replace( '<img ', "<img $attributes_html", $image_html );
+ foreach ( $image_elements as $image_html ) {
+ $find[] = $image_html;
+ $replace[] = str_replace( '<img ', "<img $attributes_html", $image_html );
+ }
}
$content = str_replace( $find, $replace, $content );
@@ -446,7 +657,7 @@ class Jetpack_Carousel {
return $attr;
}
- $attachment_id = intval( $attachment->ID );
+ $attachment_id = (int) $attachment->ID;
if ( ! wp_attachment_is_image( $attachment_id ) ) {
return $attr;
}
@@ -454,9 +665,9 @@ class Jetpack_Carousel {
$orig_file = wp_get_attachment_image_src( $attachment_id, 'full' );
$orig_file = isset( $orig_file[0] ) ? $orig_file[0] : wp_get_attachment_url( $attachment_id );
$meta = wp_get_attachment_metadata( $attachment_id );
- $size = isset( $meta['width'] ) ? intval( $meta['width'] ) . ',' . intval( $meta['height'] ) : '';
+ $size = isset( $meta['width'] ) ? (int) $meta['width'] . ',' . (int) $meta['height'] : '';
$img_meta = ( ! empty( $meta['image_meta'] ) ) ? (array) $meta['image_meta'] : array();
- $comments_opened = intval( comments_open( $attachment_id ) );
+ $comments_opened = (int) comments_open( $attachment_id );
/**
* Note: Cannot generate a filename from the width and height wp_get_attachment_image_src() returns because
@@ -479,9 +690,11 @@ class Jetpack_Carousel {
$large_file_info = wp_get_attachment_image_src( $attachment_id, 'large' );
$large_file = isset( $large_file_info[0] ) ? $large_file_info[0] : '';
- $attachment = get_post( $attachment_id );
- $attachment_title = wptexturize( $attachment->post_title );
- $attachment_desc = wpautop( wptexturize( $attachment->post_content ) );
+ $attachment = get_post( $attachment_id );
+ $attachment_title = ! empty( $attachment ) ? wptexturize( $attachment->post_title ) : '';
+ $attachment_desc = ! empty( $attachment ) ? wpautop( wptexturize( $attachment->post_content ) ) : '';
+ $attachment_caption = ! empty( $attachment ) ? wpautop( wptexturize( $attachment->post_excerpt ) ) : '';
+
// Not yet providing geo-data, need to "fuzzify" for privacy
if ( ! empty( $img_meta ) ) {
foreach ( $img_meta as $k => $v ) {
@@ -499,13 +712,14 @@ class Jetpack_Carousel {
$img_meta = json_encode( array_map( 'strval', array_filter( $img_meta, 'is_scalar' ) ) );
$attr['data-attachment-id'] = $attachment_id;
- $attr['data-permalink'] = esc_attr( get_permalink( $attachment->ID ) );
+ $attr['data-permalink'] = esc_attr( get_permalink( $attachment_id ) );
$attr['data-orig-file'] = esc_attr( $orig_file );
$attr['data-orig-size'] = $size;
$attr['data-comments-opened'] = $comments_opened;
$attr['data-image-meta'] = esc_attr( $img_meta );
$attr['data-image-title'] = esc_attr( htmlspecialchars( $attachment_title ) );
$attr['data-image-description'] = esc_attr( htmlspecialchars( $attachment_desc ) );
+ $attr['data-image-caption'] = esc_attr( htmlspecialchars( $attachment_caption ) );
$attr['data-medium-file'] = esc_attr( $medium_file );
$attr['data-large-file'] = esc_attr( $large_file );
@@ -542,15 +756,53 @@ class Jetpack_Carousel {
*/
$extra_data = apply_filters( 'jp_carousel_add_data_to_container', $extra_data );
foreach ( (array) $extra_data as $data_key => $data_values ) {
- $html = str_replace( '<div ', '<div ' . esc_attr( $data_key ) . "='" . json_encode( $data_values ) . "' ", $html );
- $html = str_replace( '<ul class="wp-block-gallery', '<ul ' . esc_attr( $data_key ) . "='" . json_encode( $data_values ) . "' class=\"wp-block-gallery", $html );
- $html = str_replace( '<ul class="blocks-gallery-grid', '<ul ' . esc_attr( $data_key ) . "='" . json_encode( $data_values ) . "' class=\"blocks-gallery-grid", $html );
+ $html = str_replace( '<div ', '<div ' . esc_attr( $data_key ) . "='" . wp_json_encode( $data_values ) . "' ", $html );
+ $html = str_replace( '<ul class="wp-block-gallery', '<ul ' . esc_attr( $data_key ) . "='" . wp_json_encode( $data_values ) . "' class=\"wp-block-gallery", $html );
+ $html = str_replace( '<ul class="blocks-gallery-grid', '<ul ' . esc_attr( $data_key ) . "='" . wp_json_encode( $data_values ) . "' class=\"blocks-gallery-grid", $html );
+ $html = preg_replace( '/\<figure([^>]*)class="(wp-block-gallery[^"]*?has-nested-images.*?)"/', '<figure ' . esc_attr( $data_key ) . "='" . wp_json_encode( $data_values ) . "' $1 class=\"$2\"", $html );
}
}
return $html;
}
+ /**
+ * Conditionally adds amp-lightbox to galleries and images.
+ *
+ * This applies to gallery blocks and shortcodes,
+ * in addition to images that are wrapped in a link to the page.
+ * Images wrapped in a link to the media file shouldn't get an amp-lightbox.
+ *
+ * @param string $content The content to possibly add amp-lightbox to.
+ * @return string The content, with amp-lightbox possibly added.
+ */
+ public function maybe_add_amp_lightbox( $content ) {
+ $content = preg_replace(
+ array(
+ '#(<figure)[^>]*(?=class=(["\']?)[^>]*wp-block-gallery[^>]*\2)#is', // Gallery block.
+ '#(\[gallery)(?=\s+)#', // Gallery shortcode.
+ ),
+ array(
+ '\1 data-amp-lightbox="true" ', // https://github.com/ampproject/amp-wp/blob/1094ea03bd5dc92889405a47a8c41de1a88908de/includes/sanitizers/class-amp-gallery-block-sanitizer.php#L84.
+ '\1 amp-lightbox="true"', // https://github.com/ampproject/amp-wp/blob/1094ea03bd5dc92889405a47a8c41de1a88908de/includes/embeds/class-amp-gallery-embed.php#L64.
+ ),
+ $content
+ );
+
+ return preg_replace_callback(
+ '#(<a[^>]* href=(["\']?)(\S+)\2>)\s*(<img[^>]*)(class=(["\']?)[^>]*wp-image-[0-9]+[^>]*\6.*>)\s*</a>#is',
+ static function( $matches ) {
+ if ( ! preg_match( '#\.\w+$#', $matches[3] ) ) {
+ // The a[href] doesn't end in a file extension like .jpeg, so this is not a link to the media file, and should get a lightbox.
+ return $matches[4] . ' data-amp-lightbox="true" lightbox="true" ' . $matches[5]; // https://github.com/ampproject/amp-wp/blob/1094ea03bd5dc92889405a47a8c41de1a88908de/includes/sanitizers/class-amp-img-sanitizer.php#L419.
+ }
+
+ return $matches[0];
+ },
+ $content
+ );
+ }
+
function get_attachment_comments() {
if ( ! headers_sent() ) {
header( 'Content-type: text/javascript' );
@@ -571,8 +823,69 @@ class Jetpack_Carousel {
$offset = ( isset( $_REQUEST['offset'] ) ) ? (int) $_REQUEST['offset'] : 0;
if ( ! $attachment_id ) {
- echo json_encode( __( 'Missing attachment ID.', 'jetpack' ) );
- die();
+ wp_send_json_error(
+ __( 'Missing attachment ID.', 'jetpack' ),
+ 403
+ );
+ return;
+ }
+
+ $attachment_post = get_post( $attachment_id );
+ // If we have no info about that attachment, bail.
+ if ( ! ( $attachment_post instanceof WP_Post ) ) {
+ wp_send_json_error(
+ __( 'Missing attachment info.', 'jetpack' ),
+ 403
+ );
+ return;
+ }
+
+ // This AJAX call should only be used to fetch comments of attachments.
+ if ( 'attachment' !== $attachment_post->post_type ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack' ),
+ 403
+ );
+ return;
+ }
+
+ $parent_post = get_post_parent( $attachment_id );
+
+ /*
+ * If we have no info about that parent post, no extra checks.
+ * The attachment doesn't have a parent post, so is public.
+ * If we have a parent post, let's ensure the user has access to it.
+ */
+ if ( $parent_post instanceof WP_Post ) {
+ /*
+ * Fetch info about user making the request.
+ * If we have no info, bail.
+ * Even logged out users should get a WP_User user with id 0.
+ */
+ $current_user = wp_get_current_user();
+ if ( ! ( $current_user instanceof WP_User ) ) {
+ wp_send_json_error(
+ __( 'Missing user info.', 'jetpack' ),
+ 403
+ );
+ return;
+ }
+
+ /*
+ * If a post is private / draft
+ * and the current user doesn't have access to it,
+ * bail.
+ */
+ if (
+ 'publish' !== $parent_post->post_status
+ && ! current_user_can( 'read_post', $parent_post->ID )
+ ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack' ),
+ 403
+ );
+ return;
+ }
}
if ( $offset < 1 ) {
@@ -646,6 +959,9 @@ class Jetpack_Carousel {
do_action( 'jp_carousel_check_blog_user_privileges' );
if ( ! comments_open( $_post_id ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
die( json_encode( array( 'error' => __( 'Comments on this post are closed.', 'jetpack' ) ) ) );
}
@@ -657,6 +973,9 @@ class Jetpack_Carousel {
$url = $user->user_url;
if ( empty( $user_id ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
die( json_encode( array( 'error' => __( 'Sorry, but we could not authenticate your request.', 'jetpack' ) ) ) );
}
} else {
@@ -667,14 +986,23 @@ class Jetpack_Carousel {
if ( get_option( 'require_name_email' ) ) {
if ( empty( $display_name ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
die( json_encode( array( 'error' => __( 'Please provide your name.', 'jetpack' ) ) ) );
}
if ( empty( $email ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
die( json_encode( array( 'error' => __( 'Please provide an email address.', 'jetpack' ) ) ) );
}
if ( ! is_email( $email ) ) {
+ if ( $switched ) {
+ restore_current_blog();
+ }
die( json_encode( array( 'error' => __( 'Please provide a valid email address.', 'jetpack' ) ) ) );
}
}
@@ -687,7 +1015,7 @@ class Jetpack_Carousel {
'comment_author_email' => $email,
'comment_author_url' => $url,
'comment_approved' => 0,
- 'comment_type' => '',
+ 'comment_type' => 'comment',
);
if ( ! empty( $user_id ) ) {
@@ -735,6 +1063,9 @@ class Jetpack_Carousel {
add_settings_field( 'carousel_display_exif', __( 'Metadata', 'jetpack' ), array( $this, 'carousel_display_exif_callback' ), 'media', 'carousel_section' );
register_setting( 'media', 'carousel_display_exif', array( $this, 'carousel_display_exif_sanitize' ) );
+ add_settings_field( 'carousel_display_comments', __( 'Comments', 'jetpack' ), array( $this, 'carousel_display_comments_callback' ), 'media', 'carousel_section' );
+ register_setting( 'media', 'carousel_display_comments', array( $this, 'carousel_display_comments_sanitize' ) );
+
// No geo setting yet, need to "fuzzify" data first, for privacy
// add_settings_field('carousel_display_geo', __( 'Geolocation', 'jetpack' ), array( $this, 'carousel_display_geo_callback' ), 'media', 'carousel_section' );
// register_setting( 'media', 'carousel_display_geo', array( $this, 'carousel_display_geo_sanitize' ) );
@@ -797,10 +1128,28 @@ class Jetpack_Carousel {
$this->settings_checkbox( 'carousel_display_exif', __( 'Show photo metadata (<a href="https://en.wikipedia.org/wiki/Exchangeable_image_file_format" rel="noopener noreferrer" target="_blank">Exif</a>) in carousel, when available.', 'jetpack' ) );
}
+ /**
+ * Callback for checkbox and label of field that allows to toggle comments.
+ */
+ public function carousel_display_comments_callback() {
+ $this->settings_checkbox( 'carousel_display_comments', esc_html__( 'Show comments area in carousel', 'jetpack' ) );
+ }
+
function carousel_display_exif_sanitize( $value ) {
return $this->sanitize_1or0_option( $value );
}
+ /**
+ * Return sanitized option for value that controls whether comments will be hidden or not.
+ *
+ * @param number $value Value to sanitize.
+ *
+ * @return number Sanitized value, only 1 or 0.
+ */
+ public function carousel_display_comments_sanitize( $value ) {
+ return $this->sanitize_1or0_option( $value );
+ }
+
function carousel_display_geo_callback() {
$this->settings_checkbox( 'carousel_display_geo', __( 'Show map of photo location in carousel, when available.', 'jetpack' ) );
}
diff --git a/plugins/jetpack/modules/carousel/readme.md b/plugins/jetpack/modules/carousel/readme.md
new file mode 100644
index 00000000..c6929232
--- /dev/null
+++ b/plugins/jetpack/modules/carousel/readme.md
@@ -0,0 +1,11 @@
+# Carousel Swiper.js integration
+
+Currently the Jetpack carousel is using the Swiper.js library to provide the slider functionality. In order to reduce the bundle size of this library a custom build is used.
+
+## How to generate a new custom build
+
+- Check out the https://github.com/Automattic/swiper repo
+- Switch to the `jetpack-build` branch and follow the instructions on the readme
+
+## ToDo
+- Automate this process somehow \ No newline at end of file
diff --git a/plugins/jetpack/modules/carousel/swiper-bundle.css b/plugins/jetpack/modules/carousel/swiper-bundle.css
new file mode 100644
index 00000000..8c9fda97
--- /dev/null
+++ b/plugins/jetpack/modules/carousel/swiper-bundle.css
@@ -0,0 +1,409 @@
+/* eslint-disable */
+/* If a new version is imported from swiper the selectors should all be namespaced with .jp-carousel-overlay
+/* to prevent clashes with other plugins that are overrding swiperjs css
+*/
+/**
+ * Swiper 6.7.0
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * https://swiperjs.com
+ *
+ * Copyright 2014-2021 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: June 22, 2021
+ */
+
+@font-face {
+ font-family: 'swiper-icons';
+ src: url( 'data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA' )
+ format( 'woff' );
+ font-weight: 400;
+ font-style: normal;
+}
+:root {
+ --swiper-theme-color: #007aff;
+}
+.jp-carousel-overlay .swiper-container {
+ margin-left: auto;
+ margin-right: auto;
+ position: relative;
+ overflow: hidden;
+ list-style: none;
+ padding: 0;
+ /* Fix of Webkit flickering */
+ z-index: 1;
+}
+.jp-carousel-overlay .swiper-container-vertical > .swiper-wrapper {
+ flex-direction: column;
+}
+.jp-carousel-overlay .swiper-wrapper {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ z-index: 1;
+ display: flex;
+ transition-property: transform;
+ box-sizing: content-box;
+}
+.jp-carousel-overlay .swiper-container-android .swiper-slide,
+.jp-carousel-overlay .swiper-wrapper {
+ transform: translate3d( 0px, 0, 0 );
+}
+.jp-carousel-overlay .swiper-container-multirow > .swiper-wrapper {
+ flex-wrap: wrap;
+}
+.jp-carousel-overlay .swiper-container-multirow-column > .swiper-wrapper {
+ flex-wrap: wrap;
+ flex-direction: column;
+}
+.jp-carousel-overlay .swiper-container-free-mode > .swiper-wrapper {
+ transition-timing-function: ease-out;
+ margin: 0 auto;
+}
+.jp-carousel-overlay .swiper-container-pointer-events {
+ touch-action: pan-y;
+}
+.jp-carousel-overlay .swiper-container-pointer-events.swiper-container-vertical {
+ touch-action: pan-x;
+}
+.jp-carousel-overlay .swiper-slide {
+ flex-shrink: 0;
+ width: 100%;
+ height: 100%;
+ position: relative;
+ transition-property: transform;
+}
+.jp-carousel-overlay .swiper-slide-invisible-blank {
+ visibility: hidden;
+}
+/* Auto Height */
+.jp-carousel-overlay .swiper-container-autoheight,
+.jp-carousel-overlay .swiper-container-autoheight .swiper-slide {
+ height: auto;
+}
+.jp-carousel-overlay .swiper-container-autoheight .swiper-wrapper {
+ align-items: flex-start;
+ transition-property: transform, height;
+}
+/* 3D Effects */
+.jp-carousel-overlay .swiper-container-3d {
+ perspective: 1200px;
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-wrapper,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom,
+.jp-carousel-overlay .swiper-container-3d .swiper-cube-shadow {
+ transform-style: preserve-3d;
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top,
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ pointer-events: none;
+ z-index: 10;
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-left {
+ background-image: linear-gradient( to left, rgba( 0, 0, 0, 0.5 ), rgba( 0, 0, 0, 0 ) );
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-right {
+ background-image: linear-gradient( to right, rgba( 0, 0, 0, 0.5 ), rgba( 0, 0, 0, 0 ) );
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-top {
+ background-image: linear-gradient( to top, rgba( 0, 0, 0, 0.5 ), rgba( 0, 0, 0, 0 ) );
+}
+.jp-carousel-overlay .swiper-container-3d .swiper-slide-shadow-bottom {
+ background-image: linear-gradient( to bottom, rgba( 0, 0, 0, 0.5 ), rgba( 0, 0, 0, 0 ) );
+}
+/* CSS Mode */
+.jp-carousel-overlay .swiper-container-css-mode > .swiper-wrapper {
+ overflow: auto;
+ scrollbar-width: none;
+ /* For Firefox */
+ -ms-overflow-style: none;
+ /* For Internet Explorer and Edge */
+}
+.jp-carousel-overlay .swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar {
+ display: none;
+}
+.jp-carousel-overlay .swiper-container-css-mode > .swiper-wrapper > .swiper-slide {
+ scroll-snap-align: start start;
+}
+.jp-carousel-overlay .swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper {
+ scroll-snap-type: x mandatory;
+}
+.jp-carousel-overlay .swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper {
+ scroll-snap-type: y mandatory;
+}
+:root {
+ --swiper-navigation-size: 44px;
+ /*
+ --swiper-navigation-color: var(--swiper-theme-color);
+ */
+}
+.jp-carousel-overlay .swiper-button-prev,
+.jp-carousel-overlay .swiper-button-next {
+ position: absolute;
+ top: 50%;
+ width: calc( var( --swiper-navigation-size ) / 44 * 27 );
+ height: var( --swiper-navigation-size );
+ margin-top: calc( 0px - ( var( --swiper-navigation-size ) / 2 ) );
+ z-index: 10;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: var( --swiper-navigation-color, var( --swiper-theme-color ) );
+}
+.jp-carousel-overlay .swiper-button-prev.swiper-button-disabled,
+.jp-carousel-overlay .swiper-button-next.swiper-button-disabled {
+ opacity: 0.35;
+ cursor: auto;
+ pointer-events: none;
+}
+.jp-carousel-overlay .swiper-button-prev:after,
+.jp-carousel-overlay .swiper-button-next:after {
+ font-family: swiper-icons;
+ font-size: var( --swiper-navigation-size );
+ text-transform: none !important;
+ letter-spacing: 0;
+ text-transform: none;
+ font-variant: initial;
+ line-height: 1;
+}
+.jp-carousel-overlay .swiper-button-prev,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-next {
+ left: 10px;
+ right: auto;
+}
+.jp-carousel-overlay .swiper-button-prev:after,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-next:after {
+ content: 'prev';
+}
+.jp-carousel-overlay .swiper-button-next,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev {
+ right: 10px;
+ left: auto;
+}
+.jp-carousel-overlay .swiper-button-next:after,
+.jp-carousel-overlay .swiper-container-rtl .swiper-button-prev:after {
+ content: 'next';
+}
+.jp-carousel-overlay .swiper-button-prev.swiper-button-white,
+.jp-carousel-overlay .swiper-button-next.swiper-button-white {
+ --swiper-navigation-color: #ffffff;
+}
+.jp-carousel-overlay .swiper-button-prev.swiper-button-black,
+.jp-carousel-overlay .swiper-button-next.swiper-button-black {
+ --swiper-navigation-color: #000000;
+}
+.jp-carousel-overlay .swiper-button-lock {
+ display: none;
+}
+:root {
+ /*
+ --swiper-pagination-color: var(--swiper-theme-color);
+ */
+}
+.jp-carousel-overlay .swiper-pagination {
+ position: absolute;
+ text-align: center;
+ transition: 300ms opacity;
+ transform: translate3d( 0, 0, 0 );
+ z-index: 10;
+}
+.jp-carousel-overlay .swiper-pagination.swiper-pagination-hidden {
+ opacity: 0;
+}
+/* Common Styles */
+.jp-carousel-overlay .swiper-pagination-fraction,
+.jp-carousel-overlay .swiper-pagination-custom,
+.jp-carousel-overlay .swiper-container-horizontal > .swiper-pagination-bullets {
+ bottom: 10px;
+ left: 0;
+ width: 100%;
+}
+/* Bullets */
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic {
+ overflow: hidden;
+ font-size: 0;
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
+ transform: scale( 0.33 );
+ position: relative;
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
+ transform: scale( 1 );
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
+ transform: scale( 1 );
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
+ transform: scale( 0.66 );
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
+ transform: scale( 0.33 );
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
+ transform: scale( 0.66 );
+}
+.jp-carousel-overlay .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
+ transform: scale( 0.33 );
+}
+.jp-carousel-overlay .swiper-pagination-bullet {
+ width: 8px;
+ height: 8px;
+ display: inline-block;
+ border-radius: 50%;
+ background: #000;
+ opacity: 0.2;
+}
+.jp-carousel-overlay button.swiper-pagination-bullet {
+ border: none;
+ margin: 0;
+ padding: 0;
+ box-shadow: none;
+ -webkit-appearance: none;
+ appearance: none;
+}
+.jp-carousel-overlay .swiper-pagination-clickable .swiper-pagination-bullet {
+ cursor: pointer;
+}
+.jp-carousel-overlay .swiper-pagination-bullet-active {
+ opacity: 1;
+ background: var( --swiper-pagination-color, var( --swiper-theme-color ) );
+}
+.jp-carousel-overlay .swiper-container-vertical > .swiper-pagination-bullets {
+ right: 10px;
+ top: 50%;
+ transform: translate3d( 0px, -50%, 0 );
+}
+.jp-carousel-overlay
+ .swiper-container-vertical
+ > .swiper-pagination-bullets
+ .swiper-pagination-bullet {
+ margin: 6px 0;
+ display: block;
+}
+.jp-carousel-overlay
+ .swiper-container-vertical
+ > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
+ top: 50%;
+ transform: translateY( -50% );
+ width: 8px;
+}
+.jp-carousel-overlay
+ .swiper-container-vertical
+ > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
+ .swiper-pagination-bullet {
+ display: inline-block;
+ transition: 200ms transform, 200ms top;
+}
+.jp-carousel-overlay
+ .swiper-container-horizontal
+ > .swiper-pagination-bullets
+ .swiper-pagination-bullet {
+ margin: 0 4px;
+}
+.jp-carousel-overlay
+ .swiper-container-horizontal
+ > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
+ left: 50%;
+ transform: translateX( -50% );
+ white-space: nowrap;
+}
+.jp-carousel-overlay
+ .swiper-container-horizontal
+ > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic
+ .swiper-pagination-bullet {
+ transition: 200ms transform, 200ms left;
+}
+.jp-carousel-overlay
+ .swiper-container-horizontal.swiper-container-rtl
+ > .swiper-pagination-bullets-dynamic
+ .swiper-pagination-bullet {
+ transition: 200ms transform, 200ms right;
+}
+/* Progress */
+.jp-carousel-overlay .swiper-pagination-progressbar {
+ background: rgba( 0, 0, 0, 0.25 );
+ position: absolute;
+}
+.jp-carousel-overlay .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
+ background: var( --swiper-pagination-color, var( --swiper-theme-color ) );
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ transform: scale( 0 );
+ transform-origin: left top;
+}
+.jp-carousel-overlay
+ .swiper-container-rtl
+ .swiper-pagination-progressbar
+ .swiper-pagination-progressbar-fill {
+ transform-origin: right top;
+}
+.jp-carousel-overlay .swiper-container-horizontal > .swiper-pagination-progressbar,
+.jp-carousel-overlay
+ .swiper-container-vertical
+ > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
+ width: 100%;
+ height: 4px;
+ left: 0;
+ top: 0;
+}
+.jp-carousel-overlay .swiper-container-vertical > .swiper-pagination-progressbar,
+.jp-carousel-overlay
+ .swiper-container-horizontal
+ > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
+ width: 4px;
+ height: 100%;
+ left: 0;
+ top: 0;
+}
+.jp-carousel-overlay .swiper-pagination-white {
+ --swiper-pagination-color: #ffffff;
+}
+.jp-carousel-overlay .swiper-pagination-black {
+ --swiper-pagination-color: #000000;
+}
+.jp-carousel-overlay .swiper-pagination-lock {
+ display: none;
+}
+.jp-carousel-overlay .swiper-zoom-container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+}
+.jp-carousel-overlay .swiper-zoom-container > img,
+.jp-carousel-overlay .swiper-zoom-container > svg,
+.jp-carousel-overlay .swiper-zoom-container > canvas {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+}
+.jp-carousel-overlay .swiper-slide-zoomed {
+ cursor: move;
+}
+/* a11y */
+.jp-carousel-overlay .swiper-container .swiper-notification {
+ position: absolute;
+ left: 0;
+ top: 0;
+ pointer-events: none;
+ opacity: 0;
+ z-index: -1000;
+}
diff --git a/plugins/jetpack/modules/carousel/swiper-bundle.js b/plugins/jetpack/modules/carousel/swiper-bundle.js
new file mode 100644
index 00000000..6ec7e775
--- /dev/null
+++ b/plugins/jetpack/modules/carousel/swiper-bundle.js
@@ -0,0 +1,7817 @@
+/* eslint-disable */
+/* If a new version is imported from swiper the global.Swiper definition at around line
+ * 25 should be changed to global.SwiperVersionNo., eg. global.Swiper670, and the corresponding
+ * references in jetpack-carousel.js updated to match new version number. This is to prevent
+ * clashes with 3rd party plugin/themes usage of swiper
+ */
+/*!
+ * Swiper 6.7.0
+ * Most modern mobile touch slider and framework with hardware accelerated transitions
+ * https://swiperjs.com
+ *
+ * Copyright 2014-2021 Vladimir Kharlampidi
+ *
+ * Released under the MIT License
+ *
+ * Released on: June 22, 2021
+ */
+
+( function ( global, factory ) {
+ typeof exports === 'object' && typeof module !== 'undefined'
+ ? ( module.exports = factory() )
+ : typeof define === 'function' && define.amd
+ ? define( factory )
+ : ( ( global = typeof globalThis !== 'undefined' ? globalThis : global || self ),
+ ( global.Swiper670 = factory() ) );
+} )( this, function () {
+ 'use strict';
+
+ function _defineProperties( target, props ) {
+ for ( var i = 0; i < props.length; i++ ) {
+ var descriptor = props[ i ];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ( 'value' in descriptor ) descriptor.writable = true;
+ Object.defineProperty( target, descriptor.key, descriptor );
+ }
+ }
+
+ function _createClass( Constructor, protoProps, staticProps ) {
+ if ( protoProps ) _defineProperties( Constructor.prototype, protoProps );
+ if ( staticProps ) _defineProperties( Constructor, staticProps );
+ return Constructor;
+ }
+
+ function _extends() {
+ _extends =
+ Object.assign ||
+ function ( target ) {
+ for ( var i = 1; i < arguments.length; i++ ) {
+ var source = arguments[ i ];
+
+ for ( var key in source ) {
+ if ( Object.prototype.hasOwnProperty.call( source, key ) ) {
+ target[ key ] = source[ key ];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply( this, arguments );
+ }
+
+ /*!
+ * SSR Window 3.0.0
+ * Better handling for window object in SSR environment
+ * https://github.com/nolimits4web/ssr-window
+ *
+ * Copyright 2020, Vladimir Kharlampidi
+ *
+ * Licensed under MIT
+ *
+ * Released on: November 9, 2020
+ */
+
+ /* eslint-disable no-param-reassign */
+ function isObject$1( obj ) {
+ return (
+ obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object
+ );
+ }
+
+ function extend$1( target, src ) {
+ if ( target === void 0 ) {
+ target = {};
+ }
+
+ if ( src === void 0 ) {
+ src = {};
+ }
+
+ Object.keys( src ).forEach( function ( key ) {
+ if ( typeof target[ key ] === 'undefined' ) target[ key ] = src[ key ];
+ else if (
+ isObject$1( src[ key ] ) &&
+ isObject$1( target[ key ] ) &&
+ Object.keys( src[ key ] ).length > 0
+ ) {
+ extend$1( target[ key ], src[ key ] );
+ }
+ } );
+ }
+
+ var ssrDocument = {
+ body: {},
+ addEventListener: function addEventListener() {},
+ removeEventListener: function removeEventListener() {},
+ activeElement: {
+ blur: function blur() {},
+ nodeName: '',
+ },
+ querySelector: function querySelector() {
+ return null;
+ },
+ querySelectorAll: function querySelectorAll() {
+ return [];
+ },
+ getElementById: function getElementById() {
+ return null;
+ },
+ createEvent: function createEvent() {
+ return {
+ initEvent: function initEvent() {},
+ };
+ },
+ createElement: function createElement() {
+ return {
+ children: [],
+ childNodes: [],
+ style: {},
+ setAttribute: function setAttribute() {},
+ getElementsByTagName: function getElementsByTagName() {
+ return [];
+ },
+ };
+ },
+ createElementNS: function createElementNS() {
+ return {};
+ },
+ importNode: function importNode() {
+ return null;
+ },
+ location: {
+ hash: '',
+ host: '',
+ hostname: '',
+ href: '',
+ origin: '',
+ pathname: '',
+ protocol: '',
+ search: '',
+ },
+ };
+
+ function getDocument() {
+ var doc = typeof document !== 'undefined' ? document : {};
+ extend$1( doc, ssrDocument );
+ return doc;
+ }
+
+ var ssrWindow = {
+ document: ssrDocument,
+ navigator: {
+ userAgent: '',
+ },
+ location: {
+ hash: '',
+ host: '',
+ hostname: '',
+ href: '',
+ origin: '',
+ pathname: '',
+ protocol: '',
+ search: '',
+ },
+ history: {
+ replaceState: function replaceState() {},
+ pushState: function pushState() {},
+ go: function go() {},
+ back: function back() {},
+ },
+ CustomEvent: function CustomEvent() {
+ return this;
+ },
+ addEventListener: function addEventListener() {},
+ removeEventListener: function removeEventListener() {},
+ getComputedStyle: function getComputedStyle() {
+ return {
+ getPropertyValue: function getPropertyValue() {
+ return '';
+ },
+ };
+ },
+ Image: function Image() {},
+ Date: function Date() {},
+ screen: {},
+ setTimeout: function setTimeout() {},
+ clearTimeout: function clearTimeout() {},
+ matchMedia: function matchMedia() {
+ return {};
+ },
+ requestAnimationFrame: function requestAnimationFrame( callback ) {
+ if ( typeof setTimeout === 'undefined' ) {
+ callback();
+ return null;
+ }
+
+ return setTimeout( callback, 0 );
+ },
+ cancelAnimationFrame: function cancelAnimationFrame( id ) {
+ if ( typeof setTimeout === 'undefined' ) {
+ return;
+ }
+
+ clearTimeout( id );
+ },
+ };
+
+ function getWindow() {
+ var win = typeof window !== 'undefined' ? window : {};
+ extend$1( win, ssrWindow );
+ return win;
+ }
+
+ /*!
+ * Dom7 3.0.0
+ * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API
+ * https://framework7.io/docs/dom7.html
+ *
+ * Copyright 2020, Vladimir Kharlampidi
+ *
+ * Licensed under MIT
+ *
+ * Released on: November 9, 2020
+ */
+
+ function _inheritsLoose( subClass, superClass ) {
+ subClass.prototype = Object.create( superClass.prototype );
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
+ }
+
+ function _getPrototypeOf( o ) {
+ _getPrototypeOf = Object.setPrototypeOf
+ ? Object.getPrototypeOf
+ : function _getPrototypeOf( o ) {
+ return o.__proto__ || Object.getPrototypeOf( o );
+ };
+ return _getPrototypeOf( o );
+ }
+
+ function _setPrototypeOf( o, p ) {
+ _setPrototypeOf =
+ Object.setPrototypeOf ||
+ function _setPrototypeOf( o, p ) {
+ o.__proto__ = p;
+ return o;
+ };
+
+ return _setPrototypeOf( o, p );
+ }
+
+ function _isNativeReflectConstruct() {
+ if ( typeof Reflect === 'undefined' || ! Reflect.construct ) return false;
+ if ( Reflect.construct.sham ) return false;
+ if ( typeof Proxy === 'function' ) return true;
+
+ try {
+ Date.prototype.toString.call( Reflect.construct( Date, [], function () {} ) );
+ return true;
+ } catch ( e ) {
+ return false;
+ }
+ }
+
+ function _construct( Parent, args, Class ) {
+ if ( _isNativeReflectConstruct() ) {
+ _construct = Reflect.construct;
+ } else {
+ _construct = function _construct( Parent, args, Class ) {
+ var a = [ null ];
+ a.push.apply( a, args );
+ var Constructor = Function.bind.apply( Parent, a );
+ var instance = new Constructor();
+ if ( Class ) _setPrototypeOf( instance, Class.prototype );
+ return instance;
+ };
+ }
+
+ return _construct.apply( null, arguments );
+ }
+
+ function _isNativeFunction( fn ) {
+ return Function.toString.call( fn ).indexOf( '[native code]' ) !== -1;
+ }
+
+ function _wrapNativeSuper( Class ) {
+ var _cache = typeof Map === 'function' ? new Map() : undefined;
+
+ _wrapNativeSuper = function _wrapNativeSuper( Class ) {
+ if ( Class === null || ! _isNativeFunction( Class ) ) return Class;
+
+ if ( typeof Class !== 'function' ) {
+ throw new TypeError( 'Super expression must either be null or a function' );
+ }
+
+ if ( typeof _cache !== 'undefined' ) {
+ if ( _cache.has( Class ) ) return _cache.get( Class );
+
+ _cache.set( Class, Wrapper );
+ }
+
+ function Wrapper() {
+ return _construct( Class, arguments, _getPrototypeOf( this ).constructor );
+ }
+
+ Wrapper.prototype = Object.create( Class.prototype, {
+ constructor: {
+ value: Wrapper,
+ enumerable: false,
+ writable: true,
+ configurable: true,
+ },
+ } );
+ return _setPrototypeOf( Wrapper, Class );
+ };
+
+ return _wrapNativeSuper( Class );
+ }
+
+ function _assertThisInitialized( self ) {
+ if ( self === void 0 ) {
+ throw new ReferenceError( "this hasn't been initialised - super() hasn't been called" );
+ }
+
+ return self;
+ }
+ /* eslint-disable no-proto */
+
+ function makeReactive( obj ) {
+ var proto = obj.__proto__;
+ Object.defineProperty( obj, '__proto__', {
+ get: function get() {
+ return proto;
+ },
+ set: function set( value ) {
+ proto.__proto__ = value;
+ },
+ } );
+ }
+
+ var Dom7 = /*#__PURE__*/ ( function ( _Array ) {
+ _inheritsLoose( Dom7, _Array );
+
+ function Dom7( items ) {
+ var _this;
+
+ _this = _Array.call.apply( _Array, [ this ].concat( items ) ) || this;
+ makeReactive( _assertThisInitialized( _this ) );
+ return _this;
+ }
+
+ return Dom7;
+ } )( /*#__PURE__*/ _wrapNativeSuper( Array ) );
+
+ function arrayFlat( arr ) {
+ if ( arr === void 0 ) {
+ arr = [];
+ }
+
+ var res = [];
+ arr.forEach( function ( el ) {
+ if ( Array.isArray( el ) ) {
+ res.push.apply( res, arrayFlat( el ) );
+ } else {
+ res.push( el );
+ }
+ } );
+ return res;
+ }
+
+ function arrayFilter( arr, callback ) {
+ return Array.prototype.filter.call( arr, callback );
+ }
+
+ function arrayUnique( arr ) {
+ var uniqueArray = [];
+
+ for ( var i = 0; i < arr.length; i += 1 ) {
+ if ( uniqueArray.indexOf( arr[ i ] ) === -1 ) uniqueArray.push( arr[ i ] );
+ }
+
+ return uniqueArray;
+ }
+
+ function qsa( selector, context ) {
+ if ( typeof selector !== 'string' ) {
+ return [ selector ];
+ }
+
+ var a = [];
+ var res = context.querySelectorAll( selector );
+
+ for ( var i = 0; i < res.length; i += 1 ) {
+ a.push( res[ i ] );
+ }
+
+ return a;
+ }
+
+ function $( selector, context ) {
+ var window = getWindow();
+ var document = getDocument();
+ var arr = [];
+
+ if ( ! context && selector instanceof Dom7 ) {
+ return selector;
+ }
+
+ if ( ! selector ) {
+ return new Dom7( arr );
+ }
+
+ if ( typeof selector === 'string' ) {
+ var html = selector.trim();
+
+ if ( html.indexOf( '<' ) >= 0 && html.indexOf( '>' ) >= 0 ) {
+ var toCreate = 'div';
+ if ( html.indexOf( '<li' ) === 0 ) toCreate = 'ul';
+ if ( html.indexOf( '<tr' ) === 0 ) toCreate = 'tbody';
+ if ( html.indexOf( '<td' ) === 0 || html.indexOf( '<th' ) === 0 ) toCreate = 'tr';
+ if ( html.indexOf( '<tbody' ) === 0 ) toCreate = 'table';
+ if ( html.indexOf( '<option' ) === 0 ) toCreate = 'select';
+ var tempParent = document.createElement( toCreate );
+ tempParent.innerHTML = html;
+
+ for ( var i = 0; i < tempParent.childNodes.length; i += 1 ) {
+ arr.push( tempParent.childNodes[ i ] );
+ }
+ } else {
+ arr = qsa( selector.trim(), context || document );
+ } // arr = qsa(selector, document);
+ } else if ( selector.nodeType || selector === window || selector === document ) {
+ arr.push( selector );
+ } else if ( Array.isArray( selector ) ) {
+ if ( selector instanceof Dom7 ) return selector;
+ arr = selector;
+ }
+
+ return new Dom7( arrayUnique( arr ) );
+ }
+
+ $.fn = Dom7.prototype;
+
+ function addClass() {
+ for (
+ var _len = arguments.length, classes = new Array( _len ), _key = 0;
+ _key < _len;
+ _key++
+ ) {
+ classes[ _key ] = arguments[ _key ];
+ }
+
+ var classNames = arrayFlat(
+ classes.map( function ( c ) {
+ return c.split( ' ' );
+ } )
+ );
+ this.forEach( function ( el ) {
+ var _el$classList;
+
+ ( _el$classList = el.classList ).add.apply( _el$classList, classNames );
+ } );
+ return this;
+ }
+
+ function removeClass() {
+ for (
+ var _len2 = arguments.length, classes = new Array( _len2 ), _key2 = 0;
+ _key2 < _len2;
+ _key2++
+ ) {
+ classes[ _key2 ] = arguments[ _key2 ];
+ }
+
+ var classNames = arrayFlat(
+ classes.map( function ( c ) {
+ return c.split( ' ' );
+ } )
+ );
+ this.forEach( function ( el ) {
+ var _el$classList2;
+
+ ( _el$classList2 = el.classList ).remove.apply( _el$classList2, classNames );
+ } );
+ return this;
+ }
+
+ function toggleClass() {
+ for (
+ var _len3 = arguments.length, classes = new Array( _len3 ), _key3 = 0;
+ _key3 < _len3;
+ _key3++
+ ) {
+ classes[ _key3 ] = arguments[ _key3 ];
+ }
+
+ var classNames = arrayFlat(
+ classes.map( function ( c ) {
+ return c.split( ' ' );
+ } )
+ );
+ this.forEach( function ( el ) {
+ classNames.forEach( function ( className ) {
+ el.classList.toggle( className );
+ } );
+ } );
+ }
+
+ function hasClass() {
+ for (
+ var _len4 = arguments.length, classes = new Array( _len4 ), _key4 = 0;
+ _key4 < _len4;
+ _key4++
+ ) {
+ classes[ _key4 ] = arguments[ _key4 ];
+ }
+
+ var classNames = arrayFlat(
+ classes.map( function ( c ) {
+ return c.split( ' ' );
+ } )
+ );
+ return (
+ arrayFilter( this, function ( el ) {
+ return (
+ classNames.filter( function ( className ) {
+ return el.classList.contains( className );
+ } ).length > 0
+ );
+ } ).length > 0
+ );
+ }
+
+ function attr( attrs, value ) {
+ if ( arguments.length === 1 && typeof attrs === 'string' ) {
+ // Get attr
+ if ( this[ 0 ] ) return this[ 0 ].getAttribute( attrs );
+ return undefined;
+ } // Set attrs
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ if ( arguments.length === 2 ) {
+ // String
+ this[ i ].setAttribute( attrs, value );
+ } else {
+ // Object
+ for ( var attrName in attrs ) {
+ this[ i ][ attrName ] = attrs[ attrName ];
+ this[ i ].setAttribute( attrName, attrs[ attrName ] );
+ }
+ }
+ }
+
+ return this;
+ }
+
+ function removeAttr( attr ) {
+ for ( var i = 0; i < this.length; i += 1 ) {
+ this[ i ].removeAttribute( attr );
+ }
+
+ return this;
+ }
+
+ function transform( transform ) {
+ for ( var i = 0; i < this.length; i += 1 ) {
+ this[ i ].style.transform = transform;
+ }
+
+ return this;
+ }
+
+ function transition$1( duration ) {
+ for ( var i = 0; i < this.length; i += 1 ) {
+ this[ i ].style.transitionDuration =
+ typeof duration !== 'string' ? duration + 'ms' : duration;
+ }
+
+ return this;
+ }
+
+ function on() {
+ for (
+ var _len5 = arguments.length, args = new Array( _len5 ), _key5 = 0;
+ _key5 < _len5;
+ _key5++
+ ) {
+ args[ _key5 ] = arguments[ _key5 ];
+ }
+
+ var eventType = args[ 0 ],
+ targetSelector = args[ 1 ],
+ listener = args[ 2 ],
+ capture = args[ 3 ];
+
+ if ( typeof args[ 1 ] === 'function' ) {
+ eventType = args[ 0 ];
+ listener = args[ 1 ];
+ capture = args[ 2 ];
+ targetSelector = undefined;
+ }
+
+ if ( ! capture ) capture = false;
+
+ function handleLiveEvent( e ) {
+ var target = e.target;
+ if ( ! target ) return;
+ var eventData = e.target.dom7EventData || [];
+
+ if ( eventData.indexOf( e ) < 0 ) {
+ eventData.unshift( e );
+ }
+
+ if ( $( target ).is( targetSelector ) ) listener.apply( target, eventData );
+ else {
+ var _parents = $( target ).parents(); // eslint-disable-line
+
+ for ( var k = 0; k < _parents.length; k += 1 ) {
+ if ( $( _parents[ k ] ).is( targetSelector ) ) listener.apply( _parents[ k ], eventData );
+ }
+ }
+ }
+
+ function handleEvent( e ) {
+ var eventData = e && e.target ? e.target.dom7EventData || [] : [];
+
+ if ( eventData.indexOf( e ) < 0 ) {
+ eventData.unshift( e );
+ }
+
+ listener.apply( this, eventData );
+ }
+
+ var events = eventType.split( ' ' );
+ var j;
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ var el = this[ i ];
+
+ if ( ! targetSelector ) {
+ for ( j = 0; j < events.length; j += 1 ) {
+ var event = events[ j ];
+ if ( ! el.dom7Listeners ) el.dom7Listeners = {};
+ if ( ! el.dom7Listeners[ event ] ) el.dom7Listeners[ event ] = [];
+ el.dom7Listeners[ event ].push( {
+ listener: listener,
+ proxyListener: handleEvent,
+ } );
+ el.addEventListener( event, handleEvent, capture );
+ }
+ } else {
+ // Live events
+ for ( j = 0; j < events.length; j += 1 ) {
+ var _event = events[ j ];
+ if ( ! el.dom7LiveListeners ) el.dom7LiveListeners = {};
+ if ( ! el.dom7LiveListeners[ _event ] ) el.dom7LiveListeners[ _event ] = [];
+
+ el.dom7LiveListeners[ _event ].push( {
+ listener: listener,
+ proxyListener: handleLiveEvent,
+ } );
+
+ el.addEventListener( _event, handleLiveEvent, capture );
+ }
+ }
+ }
+
+ return this;
+ }
+
+ function off() {
+ for (
+ var _len6 = arguments.length, args = new Array( _len6 ), _key6 = 0;
+ _key6 < _len6;
+ _key6++
+ ) {
+ args[ _key6 ] = arguments[ _key6 ];
+ }
+
+ var eventType = args[ 0 ],
+ targetSelector = args[ 1 ],
+ listener = args[ 2 ],
+ capture = args[ 3 ];
+
+ if ( typeof args[ 1 ] === 'function' ) {
+ eventType = args[ 0 ];
+ listener = args[ 1 ];
+ capture = args[ 2 ];
+ targetSelector = undefined;
+ }
+
+ if ( ! capture ) capture = false;
+ var events = eventType.split( ' ' );
+
+ for ( var i = 0; i < events.length; i += 1 ) {
+ var event = events[ i ];
+
+ for ( var j = 0; j < this.length; j += 1 ) {
+ var el = this[ j ];
+ var handlers = void 0;
+
+ if ( ! targetSelector && el.dom7Listeners ) {
+ handlers = el.dom7Listeners[ event ];
+ } else if ( targetSelector && el.dom7LiveListeners ) {
+ handlers = el.dom7LiveListeners[ event ];
+ }
+
+ if ( handlers && handlers.length ) {
+ for ( var k = handlers.length - 1; k >= 0; k -= 1 ) {
+ var handler = handlers[ k ];
+
+ if ( listener && handler.listener === listener ) {
+ el.removeEventListener( event, handler.proxyListener, capture );
+ handlers.splice( k, 1 );
+ } else if (
+ listener &&
+ handler.listener &&
+ handler.listener.dom7proxy &&
+ handler.listener.dom7proxy === listener
+ ) {
+ el.removeEventListener( event, handler.proxyListener, capture );
+ handlers.splice( k, 1 );
+ } else if ( ! listener ) {
+ el.removeEventListener( event, handler.proxyListener, capture );
+ handlers.splice( k, 1 );
+ }
+ }
+ }
+ }
+ }
+
+ return this;
+ }
+
+ function trigger() {
+ var window = getWindow();
+
+ for (
+ var _len9 = arguments.length, args = new Array( _len9 ), _key9 = 0;
+ _key9 < _len9;
+ _key9++
+ ) {
+ args[ _key9 ] = arguments[ _key9 ];
+ }
+
+ var events = args[ 0 ].split( ' ' );
+ var eventData = args[ 1 ];
+
+ for ( var i = 0; i < events.length; i += 1 ) {
+ var event = events[ i ];
+
+ for ( var j = 0; j < this.length; j += 1 ) {
+ var el = this[ j ];
+
+ if ( window.CustomEvent ) {
+ var evt = new window.CustomEvent( event, {
+ detail: eventData,
+ bubbles: true,
+ cancelable: true,
+ } );
+ el.dom7EventData = args.filter( function ( data, dataIndex ) {
+ return dataIndex > 0;
+ } );
+ el.dispatchEvent( evt );
+ el.dom7EventData = [];
+ delete el.dom7EventData;
+ }
+ }
+ }
+
+ return this;
+ }
+
+ function transitionEnd$1( callback ) {
+ var dom = this;
+
+ function fireCallBack( e ) {
+ if ( e.target !== this ) return;
+ callback.call( this, e );
+ dom.off( 'transitionend', fireCallBack );
+ }
+
+ if ( callback ) {
+ dom.on( 'transitionend', fireCallBack );
+ }
+
+ return this;
+ }
+
+ function outerWidth( includeMargins ) {
+ if ( this.length > 0 ) {
+ if ( includeMargins ) {
+ var _styles = this.styles();
+
+ return (
+ this[ 0 ].offsetWidth +
+ parseFloat( _styles.getPropertyValue( 'margin-right' ) ) +
+ parseFloat( _styles.getPropertyValue( 'margin-left' ) )
+ );
+ }
+
+ return this[ 0 ].offsetWidth;
+ }
+
+ return null;
+ }
+
+ function outerHeight( includeMargins ) {
+ if ( this.length > 0 ) {
+ if ( includeMargins ) {
+ var _styles2 = this.styles();
+
+ return (
+ this[ 0 ].offsetHeight +
+ parseFloat( _styles2.getPropertyValue( 'margin-top' ) ) +
+ parseFloat( _styles2.getPropertyValue( 'margin-bottom' ) )
+ );
+ }
+
+ return this[ 0 ].offsetHeight;
+ }
+
+ return null;
+ }
+
+ function offset() {
+ if ( this.length > 0 ) {
+ var window = getWindow();
+ var document = getDocument();
+ var el = this[ 0 ];
+ var box = el.getBoundingClientRect();
+ var body = document.body;
+ var clientTop = el.clientTop || body.clientTop || 0;
+ var clientLeft = el.clientLeft || body.clientLeft || 0;
+ var scrollTop = el === window ? window.scrollY : el.scrollTop;
+ var scrollLeft = el === window ? window.scrollX : el.scrollLeft;
+ return {
+ top: box.top + scrollTop - clientTop,
+ left: box.left + scrollLeft - clientLeft,
+ };
+ }
+
+ return null;
+ }
+
+ function styles() {
+ var window = getWindow();
+ if ( this[ 0 ] ) return window.getComputedStyle( this[ 0 ], null );
+ return {};
+ }
+
+ function css( props, value ) {
+ var window = getWindow();
+ var i;
+
+ if ( arguments.length === 1 ) {
+ if ( typeof props === 'string' ) {
+ // .css('width')
+ if ( this[ 0 ] )
+ return window.getComputedStyle( this[ 0 ], null ).getPropertyValue( props );
+ } else {
+ // .css({ width: '100px' })
+ for ( i = 0; i < this.length; i += 1 ) {
+ for ( var _prop in props ) {
+ this[ i ].style[ _prop ] = props[ _prop ];
+ }
+ }
+
+ return this;
+ }
+ }
+
+ if ( arguments.length === 2 && typeof props === 'string' ) {
+ // .css('width', '100px')
+ for ( i = 0; i < this.length; i += 1 ) {
+ this[ i ].style[ props ] = value;
+ }
+
+ return this;
+ }
+
+ return this;
+ }
+
+ function each( callback ) {
+ if ( ! callback ) return this;
+ this.forEach( function ( el, index ) {
+ callback.apply( el, [ el, index ] );
+ } );
+ return this;
+ }
+
+ function filter( callback ) {
+ var result = arrayFilter( this, callback );
+ return $( result );
+ }
+
+ function html( html ) {
+ if ( typeof html === 'undefined' ) {
+ return this[ 0 ] ? this[ 0 ].innerHTML : null;
+ }
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ this[ i ].innerHTML = html;
+ }
+
+ return this;
+ }
+
+ function text( text ) {
+ if ( typeof text === 'undefined' ) {
+ return this[ 0 ] ? this[ 0 ].textContent.trim() : null;
+ }
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ this[ i ].textContent = text;
+ }
+
+ return this;
+ }
+
+ function is( selector ) {
+ var window = getWindow();
+ var document = getDocument();
+ var el = this[ 0 ];
+ var compareWith;
+ var i;
+ if ( ! el || typeof selector === 'undefined' ) return false;
+
+ if ( typeof selector === 'string' ) {
+ if ( el.matches ) return el.matches( selector );
+ if ( el.webkitMatchesSelector ) return el.webkitMatchesSelector( selector );
+ if ( el.msMatchesSelector ) return el.msMatchesSelector( selector );
+ compareWith = $( selector );
+
+ for ( i = 0; i < compareWith.length; i += 1 ) {
+ if ( compareWith[ i ] === el ) return true;
+ }
+
+ return false;
+ }
+
+ if ( selector === document ) {
+ return el === document;
+ }
+
+ if ( selector === window ) {
+ return el === window;
+ }
+
+ if ( selector.nodeType || selector instanceof Dom7 ) {
+ compareWith = selector.nodeType ? [ selector ] : selector;
+
+ for ( i = 0; i < compareWith.length; i += 1 ) {
+ if ( compareWith[ i ] === el ) return true;
+ }
+
+ return false;
+ }
+
+ return false;
+ }
+
+ function index() {
+ var child = this[ 0 ];
+ var i;
+
+ if ( child ) {
+ i = 0; // eslint-disable-next-line
+
+ while ( ( child = child.previousSibling ) !== null ) {
+ if ( child.nodeType === 1 ) i += 1;
+ }
+
+ return i;
+ }
+
+ return undefined;
+ }
+
+ function eq( index ) {
+ if ( typeof index === 'undefined' ) return this;
+ var length = this.length;
+
+ if ( index > length - 1 ) {
+ return $( [] );
+ }
+
+ if ( index < 0 ) {
+ var returnIndex = length + index;
+ if ( returnIndex < 0 ) return $( [] );
+ return $( [ this[ returnIndex ] ] );
+ }
+
+ return $( [ this[ index ] ] );
+ }
+
+ function append() {
+ var newChild;
+ var document = getDocument();
+
+ for ( var k = 0; k < arguments.length; k += 1 ) {
+ newChild = k < 0 || arguments.length <= k ? undefined : arguments[ k ];
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ if ( typeof newChild === 'string' ) {
+ var tempDiv = document.createElement( 'div' );
+ tempDiv.innerHTML = newChild;
+
+ while ( tempDiv.firstChild ) {
+ this[ i ].appendChild( tempDiv.firstChild );
+ }
+ } else if ( newChild instanceof Dom7 ) {
+ for ( var j = 0; j < newChild.length; j += 1 ) {
+ this[ i ].appendChild( newChild[ j ] );
+ }
+ } else {
+ this[ i ].appendChild( newChild );
+ }
+ }
+ }
+
+ return this;
+ }
+
+ function prepend( newChild ) {
+ var document = getDocument();
+ var i;
+ var j;
+
+ for ( i = 0; i < this.length; i += 1 ) {
+ if ( typeof newChild === 'string' ) {
+ var tempDiv = document.createElement( 'div' );
+ tempDiv.innerHTML = newChild;
+
+ for ( j = tempDiv.childNodes.length - 1; j >= 0; j -= 1 ) {
+ this[ i ].insertBefore( tempDiv.childNodes[ j ], this[ i ].childNodes[ 0 ] );
+ }
+ } else if ( newChild instanceof Dom7 ) {
+ for ( j = 0; j < newChild.length; j += 1 ) {
+ this[ i ].insertBefore( newChild[ j ], this[ i ].childNodes[ 0 ] );
+ }
+ } else {
+ this[ i ].insertBefore( newChild, this[ i ].childNodes[ 0 ] );
+ }
+ }
+
+ return this;
+ }
+
+ function next( selector ) {
+ if ( this.length > 0 ) {
+ if ( selector ) {
+ if ( this[ 0 ].nextElementSibling && $( this[ 0 ].nextElementSibling ).is( selector ) ) {
+ return $( [ this[ 0 ].nextElementSibling ] );
+ }
+
+ return $( [] );
+ }
+
+ if ( this[ 0 ].nextElementSibling ) return $( [ this[ 0 ].nextElementSibling ] );
+ return $( [] );
+ }
+
+ return $( [] );
+ }
+
+ function nextAll( selector ) {
+ var nextEls = [];
+ var el = this[ 0 ];
+ if ( ! el ) return $( [] );
+
+ while ( el.nextElementSibling ) {
+ var _next = el.nextElementSibling; // eslint-disable-line
+
+ if ( selector ) {
+ if ( $( _next ).is( selector ) ) nextEls.push( _next );
+ } else nextEls.push( _next );
+
+ el = _next;
+ }
+
+ return $( nextEls );
+ }
+
+ function prev( selector ) {
+ if ( this.length > 0 ) {
+ var el = this[ 0 ];
+
+ if ( selector ) {
+ if ( el.previousElementSibling && $( el.previousElementSibling ).is( selector ) ) {
+ return $( [ el.previousElementSibling ] );
+ }
+
+ return $( [] );
+ }
+
+ if ( el.previousElementSibling ) return $( [ el.previousElementSibling ] );
+ return $( [] );
+ }
+
+ return $( [] );
+ }
+
+ function prevAll( selector ) {
+ var prevEls = [];
+ var el = this[ 0 ];
+ if ( ! el ) return $( [] );
+
+ while ( el.previousElementSibling ) {
+ var _prev = el.previousElementSibling; // eslint-disable-line
+
+ if ( selector ) {
+ if ( $( _prev ).is( selector ) ) prevEls.push( _prev );
+ } else prevEls.push( _prev );
+
+ el = _prev;
+ }
+
+ return $( prevEls );
+ }
+
+ function parent( selector ) {
+ var parents = []; // eslint-disable-line
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ if ( this[ i ].parentNode !== null ) {
+ if ( selector ) {
+ if ( $( this[ i ].parentNode ).is( selector ) ) parents.push( this[ i ].parentNode );
+ } else {
+ parents.push( this[ i ].parentNode );
+ }
+ }
+ }
+
+ return $( parents );
+ }
+
+ function parents( selector ) {
+ var parents = []; // eslint-disable-line
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ var _parent = this[ i ].parentNode; // eslint-disable-line
+
+ while ( _parent ) {
+ if ( selector ) {
+ if ( $( _parent ).is( selector ) ) parents.push( _parent );
+ } else {
+ parents.push( _parent );
+ }
+
+ _parent = _parent.parentNode;
+ }
+ }
+
+ return $( parents );
+ }
+
+ function closest( selector ) {
+ var closest = this; // eslint-disable-line
+
+ if ( typeof selector === 'undefined' ) {
+ return $( [] );
+ }
+
+ if ( ! closest.is( selector ) ) {
+ closest = closest.parents( selector ).eq( 0 );
+ }
+
+ return closest;
+ }
+
+ function find( selector ) {
+ var foundElements = [];
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ var found = this[ i ].querySelectorAll( selector );
+
+ for ( var j = 0; j < found.length; j += 1 ) {
+ foundElements.push( found[ j ] );
+ }
+ }
+
+ return $( foundElements );
+ }
+
+ function children( selector ) {
+ var children = []; // eslint-disable-line
+
+ for ( var i = 0; i < this.length; i += 1 ) {
+ var childNodes = this[ i ].children;
+
+ for ( var j = 0; j < childNodes.length; j += 1 ) {
+ if ( ! selector || $( childNodes[ j ] ).is( selector ) ) {
+ children.push( childNodes[ j ] );
+ }
+ }
+ }
+
+ return $( children );
+ }
+
+ function remove() {
+ for ( var i = 0; i < this.length; i += 1 ) {
+ if ( this[ i ].parentNode ) this[ i ].parentNode.removeChild( this[ i ] );
+ }
+
+ return this;
+ }
+
+ var Methods = {
+ addClass: addClass,
+ removeClass: removeClass,
+ hasClass: hasClass,
+ toggleClass: toggleClass,
+ attr: attr,
+ removeAttr: removeAttr,
+ transform: transform,
+ transition: transition$1,
+ on: on,
+ off: off,
+ trigger: trigger,
+ transitionEnd: transitionEnd$1,
+ outerWidth: outerWidth,
+ outerHeight: outerHeight,
+ styles: styles,
+ offset: offset,
+ css: css,
+ each: each,
+ html: html,
+ text: text,
+ is: is,
+ index: index,
+ eq: eq,
+ append: append,
+ prepend: prepend,
+ next: next,
+ nextAll: nextAll,
+ prev: prev,
+ prevAll: prevAll,
+ parent: parent,
+ parents: parents,
+ closest: closest,
+ find: find,
+ children: children,
+ filter: filter,
+ remove: remove,
+ };
+ Object.keys( Methods ).forEach( function ( methodName ) {
+ Object.defineProperty( $.fn, methodName, {
+ value: Methods[ methodName ],
+ writable: true,
+ } );
+ } );
+
+ function deleteProps( obj ) {
+ var object = obj;
+ Object.keys( object ).forEach( function ( key ) {
+ try {
+ object[ key ] = null;
+ } catch ( e ) {
+ // no getter for object
+ }
+
+ try {
+ delete object[ key ];
+ } catch ( e ) {
+ // something got wrong
+ }
+ } );
+ }
+
+ function nextTick( callback, delay ) {
+ if ( delay === void 0 ) {
+ delay = 0;
+ }
+
+ return setTimeout( callback, delay );
+ }
+
+ function now() {
+ return Date.now();
+ }
+
+ function getComputedStyle$1( el ) {
+ var window = getWindow();
+ var style;
+
+ if ( window.getComputedStyle ) {
+ style = window.getComputedStyle( el, null );
+ }
+
+ if ( ! style && el.currentStyle ) {
+ style = el.currentStyle;
+ }
+
+ if ( ! style ) {
+ style = el.style;
+ }
+
+ return style;
+ }
+
+ function getTranslate( el, axis ) {
+ if ( axis === void 0 ) {
+ axis = 'x';
+ }
+
+ var window = getWindow();
+ var matrix;
+ var curTransform;
+ var transformMatrix;
+ var curStyle = getComputedStyle$1( el );
+
+ if ( window.WebKitCSSMatrix ) {
+ curTransform = curStyle.transform || curStyle.webkitTransform;
+
+ if ( curTransform.split( ',' ).length > 6 ) {
+ curTransform = curTransform
+ .split( ', ' )
+ .map( function ( a ) {
+ return a.replace( ',', '.' );
+ } )
+ .join( ', ' );
+ } // Some old versions of Webkit choke when 'none' is passed; pass
+ // empty string instead in this case
+
+ transformMatrix = new window.WebKitCSSMatrix( curTransform === 'none' ? '' : curTransform );
+ } else {
+ transformMatrix =
+ curStyle.MozTransform ||
+ curStyle.OTransform ||
+ curStyle.MsTransform ||
+ curStyle.msTransform ||
+ curStyle.transform ||
+ curStyle.getPropertyValue( 'transform' ).replace( 'translate(', 'matrix(1, 0, 0, 1,' );
+ matrix = transformMatrix.toString().split( ',' );
+ }
+
+ if ( axis === 'x' ) {
+ // Latest Chrome and webkits Fix
+ if ( window.WebKitCSSMatrix ) curTransform = transformMatrix.m41;
+ // Crazy IE10 Matrix
+ else if ( matrix.length === 16 ) curTransform = parseFloat( matrix[ 12 ] );
+ // Normal Browsers
+ else curTransform = parseFloat( matrix[ 4 ] );
+ }
+
+ if ( axis === 'y' ) {
+ // Latest Chrome and webkits Fix
+ if ( window.WebKitCSSMatrix ) curTransform = transformMatrix.m42;
+ // Crazy IE10 Matrix
+ else if ( matrix.length === 16 ) curTransform = parseFloat( matrix[ 13 ] );
+ // Normal Browsers
+ else curTransform = parseFloat( matrix[ 5 ] );
+ }
+
+ return curTransform || 0;
+ }
+
+ function isObject( o ) {
+ return (
+ typeof o === 'object' &&
+ o !== null &&
+ o.constructor &&
+ Object.prototype.toString.call( o ).slice( 8, -1 ) === 'Object'
+ );
+ }
+
+ function extend() {
+ var to = Object( arguments.length <= 0 ? undefined : arguments[ 0 ] );
+ var noExtend = [ '__proto__', 'constructor', 'prototype' ]; // eslint-disable-next-line
+
+ var HTMLElement = typeof window !== 'undefined' ? window.HTMLElement : undefined;
+
+ for ( var i = 1; i < arguments.length; i += 1 ) {
+ var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[ i ];
+
+ if (
+ nextSource !== undefined &&
+ nextSource !== null &&
+ ! ( HTMLElement && nextSource instanceof HTMLElement )
+ ) {
+ var keysArray = Object.keys( Object( nextSource ) ).filter( function ( key ) {
+ return noExtend.indexOf( key ) < 0;
+ } );
+
+ for ( var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1 ) {
+ var nextKey = keysArray[ nextIndex ];
+ var desc = Object.getOwnPropertyDescriptor( nextSource, nextKey );
+
+ if ( desc !== undefined && desc.enumerable ) {
+ if ( isObject( to[ nextKey ] ) && isObject( nextSource[ nextKey ] ) ) {
+ if ( nextSource[ nextKey ].__swiper__ ) {
+ to[ nextKey ] = nextSource[ nextKey ];
+ } else {
+ extend( to[ nextKey ], nextSource[ nextKey ] );
+ }
+ } else if ( ! isObject( to[ nextKey ] ) && isObject( nextSource[ nextKey ] ) ) {
+ to[ nextKey ] = {};
+
+ if ( nextSource[ nextKey ].__swiper__ ) {
+ to[ nextKey ] = nextSource[ nextKey ];
+ } else {
+ extend( to[ nextKey ], nextSource[ nextKey ] );
+ }
+ } else {
+ to[ nextKey ] = nextSource[ nextKey ];
+ }
+ }
+ }
+ }
+ }
+
+ return to;
+ }
+
+ function bindModuleMethods( instance, obj ) {
+ Object.keys( obj ).forEach( function ( key ) {
+ if ( isObject( obj[ key ] ) ) {
+ Object.keys( obj[ key ] ).forEach( function ( subKey ) {
+ if ( typeof obj[ key ][ subKey ] === 'function' ) {
+ obj[ key ][ subKey ] = obj[ key ][ subKey ].bind( instance );
+ }
+ } );
+ }
+
+ instance[ key ] = obj[ key ];
+ } );
+ }
+
+ function classesToSelector( classes ) {
+ if ( classes === void 0 ) {
+ classes = '';
+ }
+
+ return (
+ '.' +
+ classes
+ .trim()
+ .replace( /([\.:\/])/g, '\\$1' ) // eslint-disable-line
+ .replace( / /g, '.' )
+ );
+ }
+
+ function createElementIfNotDefined( $container, params, createElements, checkProps ) {
+ var document = getDocument();
+
+ if ( createElements ) {
+ Object.keys( checkProps ).forEach( function ( key ) {
+ if ( ! params[ key ] && params.auto === true ) {
+ var element = document.createElement( 'div' );
+ element.className = checkProps[ key ];
+ $container.append( element );
+ params[ key ] = element;
+ }
+ } );
+ }
+
+ return params;
+ }
+
+ var support;
+
+ function calcSupport() {
+ var window = getWindow();
+ var document = getDocument();
+ return {
+ touch: !! (
+ 'ontouchstart' in window ||
+ ( window.DocumentTouch && document instanceof window.DocumentTouch )
+ ),
+ pointerEvents:
+ !! window.PointerEvent &&
+ 'maxTouchPoints' in window.navigator &&
+ window.navigator.maxTouchPoints >= 0,
+ observer: ( function checkObserver() {
+ return 'MutationObserver' in window || 'WebkitMutationObserver' in window;
+ } )(),
+ passiveListener: ( function checkPassiveListener() {
+ var supportsPassive = false;
+
+ try {
+ var opts = Object.defineProperty( {}, 'passive', {
+ // eslint-disable-next-line
+ get: function get() {
+ supportsPassive = true;
+ },
+ } );
+ window.addEventListener( 'testPassiveListener', null, opts );
+ } catch ( e ) {
+ // No support
+ }
+
+ return supportsPassive;
+ } )(),
+ gestures: ( function checkGestures() {
+ return 'ongesturestart' in window;
+ } )(),
+ };
+ }
+
+ function getSupport() {
+ if ( ! support ) {
+ support = calcSupport();
+ }
+
+ return support;
+ }
+
+ var device;
+
+ function calcDevice( _temp ) {
+ var _ref = _temp === void 0 ? {} : _temp,
+ userAgent = _ref.userAgent;
+
+ var support = getSupport();
+ var window = getWindow();
+ var platform = window.navigator.platform;
+ var ua = userAgent || window.navigator.userAgent;
+ var device = {
+ ios: false,
+ android: false,
+ };
+ var screenWidth = window.screen.width;
+ var screenHeight = window.screen.height;
+ var android = ua.match( /(Android);?[\s\/]+([\d.]+)?/ ); // eslint-disable-line
+
+ var ipad = ua.match( /(iPad).*OS\s([\d_]+)/ );
+ var ipod = ua.match( /(iPod)(.*OS\s([\d_]+))?/ );
+ var iphone = ! ipad && ua.match( /(iPhone\sOS|iOS)\s([\d_]+)/ );
+ var windows = platform === 'Win32';
+ var macos = platform === 'MacIntel'; // iPadOs 13 fix
+
+ var iPadScreens = [
+ '1024x1366',
+ '1366x1024',
+ '834x1194',
+ '1194x834',
+ '834x1112',
+ '1112x834',
+ '768x1024',
+ '1024x768',
+ '820x1180',
+ '1180x820',
+ '810x1080',
+ '1080x810',
+ ];
+
+ if (
+ ! ipad &&
+ macos &&
+ support.touch &&
+ iPadScreens.indexOf( screenWidth + 'x' + screenHeight ) >= 0
+ ) {
+ ipad = ua.match( /(Version)\/([\d.]+)/ );
+ if ( ! ipad ) ipad = [ 0, 1, '13_0_0' ];
+ macos = false;
+ } // Android
+
+ if ( android && ! windows ) {
+ device.os = 'android';
+ device.android = true;
+ }
+
+ if ( ipad || iphone || ipod ) {
+ device.os = 'ios';
+ device.ios = true;
+ } // Export object
+
+ return device;
+ }
+
+ function getDevice( overrides ) {
+ if ( overrides === void 0 ) {
+ overrides = {};
+ }
+
+ if ( ! device ) {
+ device = calcDevice( overrides );
+ }
+
+ return device;
+ }
+
+ var browser;
+
+ function calcBrowser() {
+ var window = getWindow();
+
+ function isSafari() {
+ var ua = window.navigator.userAgent.toLowerCase();
+ return (
+ ua.indexOf( 'safari' ) >= 0 && ua.indexOf( 'chrome' ) < 0 && ua.indexOf( 'android' ) < 0
+ );
+ }
+
+ return {
+ isEdge: !! window.navigator.userAgent.match( /Edge/g ),
+ isSafari: isSafari(),
+ isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test( window.navigator.userAgent ),
+ };
+ }
+
+ function getBrowser() {
+ if ( ! browser ) {
+ browser = calcBrowser();
+ }
+
+ return browser;
+ }
+
+ var supportsResizeObserver = function supportsResizeObserver() {
+ var window = getWindow();
+ return typeof window.ResizeObserver !== 'undefined';
+ };
+
+ var Resize = {
+ name: 'resize',
+ create: function create() {
+ var swiper = this;
+ extend( swiper, {
+ resize: {
+ observer: null,
+ createObserver: function createObserver() {
+ if ( ! swiper || swiper.destroyed || ! swiper.initialized ) return;
+ swiper.resize.observer = new ResizeObserver( function ( entries ) {
+ var width = swiper.width,
+ height = swiper.height;
+ var newWidth = width;
+ var newHeight = height;
+ entries.forEach( function ( _ref ) {
+ var contentBoxSize = _ref.contentBoxSize,
+ contentRect = _ref.contentRect,
+ target = _ref.target;
+ if ( target && target !== swiper.el ) return;
+ newWidth = contentRect
+ ? contentRect.width
+ : ( contentBoxSize[ 0 ] || contentBoxSize ).inlineSize;
+ newHeight = contentRect
+ ? contentRect.height
+ : ( contentBoxSize[ 0 ] || contentBoxSize ).blockSize;
+ } );
+
+ if ( newWidth !== width || newHeight !== height ) {
+ swiper.resize.resizeHandler();
+ }
+ } );
+ swiper.resize.observer.observe( swiper.el );
+ },
+ removeObserver: function removeObserver() {
+ if ( swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el ) {
+ swiper.resize.observer.unobserve( swiper.el );
+ swiper.resize.observer = null;
+ }
+ },
+ resizeHandler: function resizeHandler() {
+ if ( ! swiper || swiper.destroyed || ! swiper.initialized ) return;
+ swiper.emit( 'beforeResize' );
+ swiper.emit( 'resize' );
+ },
+ orientationChangeHandler: function orientationChangeHandler() {
+ if ( ! swiper || swiper.destroyed || ! swiper.initialized ) return;
+ swiper.emit( 'orientationchange' );
+ },
+ },
+ } );
+ },
+ on: {
+ init: function init( swiper ) {
+ var window = getWindow();
+
+ if ( swiper.params.resizeObserver && supportsResizeObserver() ) {
+ swiper.resize.createObserver();
+ return;
+ } // Emit resize
+
+ window.addEventListener( 'resize', swiper.resize.resizeHandler ); // Emit orientationchange
+
+ window.addEventListener( 'orientationchange', swiper.resize.orientationChangeHandler );
+ },
+ destroy: function destroy( swiper ) {
+ var window = getWindow();
+ swiper.resize.removeObserver();
+ window.removeEventListener( 'resize', swiper.resize.resizeHandler );
+ window.removeEventListener( 'orientationchange', swiper.resize.orientationChangeHandler );
+ },
+ },
+ };
+
+ var Observer = {
+ attach: function attach( target, options ) {
+ if ( options === void 0 ) {
+ options = {};
+ }
+
+ var window = getWindow();
+ var swiper = this;
+ var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
+ var observer = new ObserverFunc( function ( mutations ) {
+ // The observerUpdate event should only be triggered
+ // once despite the number of mutations. Additional
+ // triggers are redundant and are very costly
+ if ( mutations.length === 1 ) {
+ swiper.emit( 'observerUpdate', mutations[ 0 ] );
+ return;
+ }
+
+ var observerUpdate = function observerUpdate() {
+ swiper.emit( 'observerUpdate', mutations[ 0 ] );
+ };
+
+ if ( window.requestAnimationFrame ) {
+ window.requestAnimationFrame( observerUpdate );
+ } else {
+ window.setTimeout( observerUpdate, 0 );
+ }
+ } );
+ observer.observe( target, {
+ attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
+ childList: typeof options.childList === 'undefined' ? true : options.childList,
+ characterData: typeof options.characterData === 'undefined' ? true : options.characterData,
+ } );
+ swiper.observer.observers.push( observer );
+ },
+ init: function init() {
+ var swiper = this;
+ if ( ! swiper.support.observer || ! swiper.params.observer ) return;
+
+ if ( swiper.params.observeParents ) {
+ var containerParents = swiper.$el.parents();
+
+ for ( var i = 0; i < containerParents.length; i += 1 ) {
+ swiper.observer.attach( containerParents[ i ] );
+ }
+ } // Observe container
+
+ swiper.observer.attach( swiper.$el[ 0 ], {
+ childList: swiper.params.observeSlideChildren,
+ } ); // Observe wrapper
+
+ swiper.observer.attach( swiper.$wrapperEl[ 0 ], {
+ attributes: false,
+ } );
+ },
+ destroy: function destroy() {
+ var swiper = this;
+ swiper.observer.observers.forEach( function ( observer ) {
+ observer.disconnect();
+ } );
+ swiper.observer.observers = [];
+ },
+ };
+ var Observer$1 = {
+ name: 'observer',
+ params: {
+ observer: false,
+ observeParents: false,
+ observeSlideChildren: false,
+ },
+ create: function create() {
+ var swiper = this;
+ bindModuleMethods( swiper, {
+ observer: _extends( {}, Observer, {
+ observers: [],
+ } ),
+ } );
+ },
+ on: {
+ init: function init( swiper ) {
+ swiper.observer.init();
+ },
+ destroy: function destroy( swiper ) {
+ swiper.observer.destroy();
+ },
+ },
+ };
+
+ var modular = {
+ useParams: function useParams( instanceParams ) {
+ var instance = this;
+ if ( ! instance.modules ) return;
+ Object.keys( instance.modules ).forEach( function ( moduleName ) {
+ var module = instance.modules[ moduleName ]; // Extend params
+
+ if ( module.params ) {
+ extend( instanceParams, module.params );
+ }
+ } );
+ },
+ useModules: function useModules( modulesParams ) {
+ if ( modulesParams === void 0 ) {
+ modulesParams = {};
+ }
+
+ var instance = this;
+ if ( ! instance.modules ) return;
+ Object.keys( instance.modules ).forEach( function ( moduleName ) {
+ var module = instance.modules[ moduleName ];
+ var moduleParams = modulesParams[ moduleName ] || {}; // Add event listeners
+
+ if ( module.on && instance.on ) {
+ Object.keys( module.on ).forEach( function ( moduleEventName ) {
+ instance.on( moduleEventName, module.on[ moduleEventName ] );
+ } );
+ } // Module create callback
+
+ if ( module.create ) {
+ module.create.bind( instance )( moduleParams );
+ }
+ } );
+ },
+ };
+
+ /* eslint-disable no-underscore-dangle */
+ var eventsEmitter = {
+ on: function on( events, handler, priority ) {
+ var self = this;
+ if ( typeof handler !== 'function' ) return self;
+ var method = priority ? 'unshift' : 'push';
+ events.split( ' ' ).forEach( function ( event ) {
+ if ( ! self.eventsListeners[ event ] ) self.eventsListeners[ event ] = [];
+ self.eventsListeners[ event ][ method ]( handler );
+ } );
+ return self;
+ },
+ once: function once( events, handler, priority ) {
+ var self = this;
+ if ( typeof handler !== 'function' ) return self;
+
+ function onceHandler() {
+ self.off( events, onceHandler );
+
+ if ( onceHandler.__emitterProxy ) {
+ delete onceHandler.__emitterProxy;
+ }
+
+ for (
+ var _len = arguments.length, args = new Array( _len ), _key = 0;
+ _key < _len;
+ _key++
+ ) {
+ args[ _key ] = arguments[ _key ];
+ }
+
+ handler.apply( self, args );
+ }
+
+ onceHandler.__emitterProxy = handler;
+ return self.on( events, onceHandler, priority );
+ },
+ onAny: function onAny( handler, priority ) {
+ var self = this;
+ if ( typeof handler !== 'function' ) return self;
+ var method = priority ? 'unshift' : 'push';
+
+ if ( self.eventsAnyListeners.indexOf( handler ) < 0 ) {
+ self.eventsAnyListeners[ method ]( handler );
+ }
+
+ return self;
+ },
+ offAny: function offAny( handler ) {
+ var self = this;
+ if ( ! self.eventsAnyListeners ) return self;
+ var index = self.eventsAnyListeners.indexOf( handler );
+
+ if ( index >= 0 ) {
+ self.eventsAnyListeners.splice( index, 1 );
+ }
+
+ return self;
+ },
+ off: function off( events, handler ) {
+ var self = this;
+ if ( ! self.eventsListeners ) return self;
+ events.split( ' ' ).forEach( function ( event ) {
+ if ( typeof handler === 'undefined' ) {
+ self.eventsListeners[ event ] = [];
+ } else if ( self.eventsListeners[ event ] ) {
+ self.eventsListeners[ event ].forEach( function ( eventHandler, index ) {
+ if (
+ eventHandler === handler ||
+ ( eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler )
+ ) {
+ self.eventsListeners[ event ].splice( index, 1 );
+ }
+ } );
+ }
+ } );
+ return self;
+ },
+ emit: function emit() {
+ var self = this;
+ if ( ! self.eventsListeners ) return self;
+ var events;
+ var data;
+ var context;
+
+ for (
+ var _len2 = arguments.length, args = new Array( _len2 ), _key2 = 0;
+ _key2 < _len2;
+ _key2++
+ ) {
+ args[ _key2 ] = arguments[ _key2 ];
+ }
+
+ if ( typeof args[ 0 ] === 'string' || Array.isArray( args[ 0 ] ) ) {
+ events = args[ 0 ];
+ data = args.slice( 1, args.length );
+ context = self;
+ } else {
+ events = args[ 0 ].events;
+ data = args[ 0 ].data;
+ context = args[ 0 ].context || self;
+ }
+
+ data.unshift( context );
+ var eventsArray = Array.isArray( events ) ? events : events.split( ' ' );
+ eventsArray.forEach( function ( event ) {
+ if ( self.eventsAnyListeners && self.eventsAnyListeners.length ) {
+ self.eventsAnyListeners.forEach( function ( eventHandler ) {
+ eventHandler.apply( context, [ event ].concat( data ) );
+ } );
+ }
+
+ if ( self.eventsListeners && self.eventsListeners[ event ] ) {
+ self.eventsListeners[ event ].forEach( function ( eventHandler ) {
+ eventHandler.apply( context, data );
+ } );
+ }
+ } );
+ return self;
+ },
+ };
+
+ function updateSize() {
+ var swiper = this;
+ var width;
+ var height;
+ var $el = swiper.$el;
+
+ if ( typeof swiper.params.width !== 'undefined' && swiper.params.width !== null ) {
+ width = swiper.params.width;
+ } else {
+ width = $el[ 0 ].clientWidth;
+ }
+
+ if ( typeof swiper.params.height !== 'undefined' && swiper.params.height !== null ) {
+ height = swiper.params.height;
+ } else {
+ height = $el[ 0 ].clientHeight;
+ }
+
+ if ( ( width === 0 && swiper.isHorizontal() ) || ( height === 0 && swiper.isVertical() ) ) {
+ return;
+ } // Subtract paddings
+
+ width =
+ width -
+ parseInt( $el.css( 'padding-left' ) || 0, 10 ) -
+ parseInt( $el.css( 'padding-right' ) || 0, 10 );
+ height =
+ height -
+ parseInt( $el.css( 'padding-top' ) || 0, 10 ) -
+ parseInt( $el.css( 'padding-bottom' ) || 0, 10 );
+ if ( Number.isNaN( width ) ) width = 0;
+ if ( Number.isNaN( height ) ) height = 0;
+ extend( swiper, {
+ width: width,
+ height: height,
+ size: swiper.isHorizontal() ? width : height,
+ } );
+ }
+
+ function updateSlides() {
+ var swiper = this;
+
+ function getDirectionLabel( property ) {
+ if (swiper.isHorizontal()) {
+ return property;
+ } // prettier-ignore
+
+ return {
+ width: 'height',
+ 'margin-top': 'margin-left',
+ 'margin-bottom ': 'margin-right',
+ 'margin-left': 'margin-top',
+ 'margin-right': 'margin-bottom',
+ 'padding-left': 'padding-top',
+ 'padding-right': 'padding-bottom',
+ marginRight: 'marginBottom',
+ }[ property ];
+ }
+
+ function getDirectionPropertyValue( node, label ) {
+ return parseFloat( node.getPropertyValue( getDirectionLabel( label ) ) || 0 );
+ }
+
+ var params = swiper.params;
+ var $wrapperEl = swiper.$wrapperEl,
+ swiperSize = swiper.size,
+ rtl = swiper.rtlTranslate,
+ wrongRTL = swiper.wrongRTL;
+ var isVirtual = swiper.virtual && params.virtual.enabled;
+ var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
+ var slides = $wrapperEl.children( '.' + swiper.params.slideClass );
+ var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
+ var snapGrid = [];
+ var slidesGrid = [];
+ var slidesSizesGrid = [];
+ var offsetBefore = params.slidesOffsetBefore;
+
+ if ( typeof offsetBefore === 'function' ) {
+ offsetBefore = params.slidesOffsetBefore.call( swiper );
+ }
+
+ var offsetAfter = params.slidesOffsetAfter;
+
+ if ( typeof offsetAfter === 'function' ) {
+ offsetAfter = params.slidesOffsetAfter.call( swiper );
+ }
+
+ var previousSnapGridLength = swiper.snapGrid.length;
+ var previousSlidesGridLength = swiper.slidesGrid.length;
+ var spaceBetween = params.spaceBetween;
+ var slidePosition = -offsetBefore;
+ var prevSlideSize = 0;
+ var index = 0;
+
+ if ( typeof swiperSize === 'undefined' ) {
+ return;
+ }
+
+ if ( typeof spaceBetween === 'string' && spaceBetween.indexOf( '%' ) >= 0 ) {
+ spaceBetween = ( parseFloat( spaceBetween.replace( '%', '' ) ) / 100 ) * swiperSize;
+ }
+
+ swiper.virtualSize = -spaceBetween; // reset margins
+
+ if ( rtl )
+ slides.css( {
+ marginLeft: '',
+ marginTop: '',
+ } );
+ else
+ slides.css( {
+ marginRight: '',
+ marginBottom: '',
+ } );
+ var slidesNumberEvenToRows;
+
+ if ( params.slidesPerColumn > 1 ) {
+ if (
+ Math.floor( slidesLength / params.slidesPerColumn ) ===
+ slidesLength / swiper.params.slidesPerColumn
+ ) {
+ slidesNumberEvenToRows = slidesLength;
+ } else {
+ slidesNumberEvenToRows =
+ Math.ceil( slidesLength / params.slidesPerColumn ) * params.slidesPerColumn;
+ }
+
+ if ( params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row' ) {
+ slidesNumberEvenToRows = Math.max(
+ slidesNumberEvenToRows,
+ params.slidesPerView * params.slidesPerColumn
+ );
+ }
+ } // Calc slides
+
+ var slideSize;
+ var slidesPerColumn = params.slidesPerColumn;
+ var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;
+ var numFullColumns = Math.floor( slidesLength / params.slidesPerColumn );
+
+ for ( var i = 0; i < slidesLength; i += 1 ) {
+ slideSize = 0;
+ var slide = slides.eq( i );
+
+ if ( params.slidesPerColumn > 1 ) {
+ // Set slides order
+ var newSlideOrderIndex = void 0;
+ var column = void 0;
+ var row = void 0;
+
+ if ( params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1 ) {
+ var groupIndex = Math.floor( i / ( params.slidesPerGroup * params.slidesPerColumn ) );
+ var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;
+ var columnsInGroup =
+ groupIndex === 0
+ ? params.slidesPerGroup
+ : Math.min(
+ Math.ceil(
+ ( slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup ) /
+ slidesPerColumn
+ ),
+ params.slidesPerGroup
+ );
+ row = Math.floor( slideIndexInGroup / columnsInGroup );
+ column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;
+ newSlideOrderIndex = column + ( row * slidesNumberEvenToRows ) / slidesPerColumn;
+ slide.css( {
+ '-webkit-box-ordinal-group': newSlideOrderIndex,
+ '-moz-box-ordinal-group': newSlideOrderIndex,
+ '-ms-flex-order': newSlideOrderIndex,
+ '-webkit-order': newSlideOrderIndex,
+ order: newSlideOrderIndex,
+ } );
+ } else if ( params.slidesPerColumnFill === 'column' ) {
+ column = Math.floor( i / slidesPerColumn );
+ row = i - column * slidesPerColumn;
+
+ if (
+ column > numFullColumns ||
+ ( column === numFullColumns && row === slidesPerColumn - 1 )
+ ) {
+ row += 1;
+
+ if ( row >= slidesPerColumn ) {
+ row = 0;
+ column += 1;
+ }
+ }
+ } else {
+ row = Math.floor( i / slidesPerRow );
+ column = i - row * slidesPerRow;
+ }
+
+ slide.css(
+ getDirectionLabel( 'margin-top' ),
+ row !== 0 ? params.spaceBetween && params.spaceBetween + 'px' : ''
+ );
+ }
+
+ if ( slide.css( 'display' ) === 'none' ) continue; // eslint-disable-line
+
+ if ( params.slidesPerView === 'auto' ) {
+ var slideStyles = getComputedStyle( slide[ 0 ] );
+ var currentTransform = slide[ 0 ].style.transform;
+ var currentWebKitTransform = slide[ 0 ].style.webkitTransform;
+
+ if ( currentTransform ) {
+ slide[ 0 ].style.transform = 'none';
+ }
+
+ if ( currentWebKitTransform ) {
+ slide[ 0 ].style.webkitTransform = 'none';
+ }
+
+ if ( params.roundLengths ) {
+ slideSize = swiper.isHorizontal() ? slide.outerWidth( true ) : slide.outerHeight( true );
+ } else {
+ // eslint-disable-next-line
+ var width = getDirectionPropertyValue( slideStyles, 'width' );
+ var paddingLeft = getDirectionPropertyValue( slideStyles, 'padding-left' );
+ var paddingRight = getDirectionPropertyValue( slideStyles, 'padding-right' );
+ var marginLeft = getDirectionPropertyValue( slideStyles, 'margin-left' );
+ var marginRight = getDirectionPropertyValue( slideStyles, 'margin-right' );
+ var boxSizing = slideStyles.getPropertyValue( 'box-sizing' );
+
+ if ( boxSizing && boxSizing === 'border-box' ) {
+ slideSize = width + marginLeft + marginRight;
+ } else {
+ var _slide$ = slide[ 0 ],
+ clientWidth = _slide$.clientWidth,
+ offsetWidth = _slide$.offsetWidth;
+ slideSize =
+ width +
+ paddingLeft +
+ paddingRight +
+ marginLeft +
+ marginRight +
+ ( offsetWidth - clientWidth );
+ }
+ }
+
+ if ( currentTransform ) {
+ slide[ 0 ].style.transform = currentTransform;
+ }
+
+ if ( currentWebKitTransform ) {
+ slide[ 0 ].style.webkitTransform = currentWebKitTransform;
+ }
+
+ if ( params.roundLengths ) slideSize = Math.floor( slideSize );
+ } else {
+ slideSize =
+ ( swiperSize - ( params.slidesPerView - 1 ) * spaceBetween ) / params.slidesPerView;
+ if ( params.roundLengths ) slideSize = Math.floor( slideSize );
+
+ if ( slides[ i ] ) {
+ slides[ i ].style[ getDirectionLabel( 'width' ) ] = slideSize + 'px';
+ }
+ }
+
+ if ( slides[ i ] ) {
+ slides[ i ].swiperSlideSize = slideSize;
+ }
+
+ slidesSizesGrid.push( slideSize );
+
+ if ( params.centeredSlides ) {
+ slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
+ if ( prevSlideSize === 0 && i !== 0 )
+ slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
+ if ( i === 0 ) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
+ if ( Math.abs( slidePosition ) < 1 / 1000 ) slidePosition = 0;
+ if ( params.roundLengths ) slidePosition = Math.floor( slidePosition );
+ if ( index % params.slidesPerGroup === 0 ) snapGrid.push( slidePosition );
+ slidesGrid.push( slidePosition );
+ } else {
+ if ( params.roundLengths ) slidePosition = Math.floor( slidePosition );
+ if (
+ ( index - Math.min( swiper.params.slidesPerGroupSkip, index ) ) %
+ swiper.params.slidesPerGroup ===
+ 0
+ )
+ snapGrid.push( slidePosition );
+ slidesGrid.push( slidePosition );
+ slidePosition = slidePosition + slideSize + spaceBetween;
+ }
+
+ swiper.virtualSize += slideSize + spaceBetween;
+ prevSlideSize = slideSize;
+ index += 1;
+ }
+
+ swiper.virtualSize = Math.max( swiper.virtualSize, swiperSize ) + offsetAfter;
+ var newSlidesGrid;
+
+ if ( rtl && wrongRTL && ( params.effect === 'slide' || params.effect === 'coverflow' ) ) {
+ $wrapperEl.css( {
+ width: swiper.virtualSize + params.spaceBetween + 'px',
+ } );
+ }
+
+ if ( params.setWrapperSize ) {
+ var _$wrapperEl$css;
+
+ $wrapperEl.css(
+ ( ( _$wrapperEl$css = {} ),
+ ( _$wrapperEl$css[ getDirectionLabel( 'width' ) ] =
+ swiper.virtualSize + params.spaceBetween + 'px' ),
+ _$wrapperEl$css )
+ );
+ }
+
+ if ( params.slidesPerColumn > 1 ) {
+ var _$wrapperEl$css2;
+
+ swiper.virtualSize = ( slideSize + params.spaceBetween ) * slidesNumberEvenToRows;
+ swiper.virtualSize =
+ Math.ceil( swiper.virtualSize / params.slidesPerColumn ) - params.spaceBetween;
+ $wrapperEl.css(
+ ( ( _$wrapperEl$css2 = {} ),
+ ( _$wrapperEl$css2[ getDirectionLabel( 'width' ) ] =
+ swiper.virtualSize + params.spaceBetween + 'px' ),
+ _$wrapperEl$css2 )
+ );
+
+ if ( params.centeredSlides ) {
+ newSlidesGrid = [];
+
+ for ( var _i = 0; _i < snapGrid.length; _i += 1 ) {
+ var slidesGridItem = snapGrid[ _i ];
+ if ( params.roundLengths ) slidesGridItem = Math.floor( slidesGridItem );
+ if ( snapGrid[ _i ] < swiper.virtualSize + snapGrid[ 0 ] )
+ newSlidesGrid.push( slidesGridItem );
+ }
+
+ snapGrid = newSlidesGrid;
+ }
+ } // Remove last grid elements depending on width
+
+ if ( ! params.centeredSlides ) {
+ newSlidesGrid = [];
+
+ for ( var _i2 = 0; _i2 < snapGrid.length; _i2 += 1 ) {
+ var _slidesGridItem = snapGrid[ _i2 ];
+ if ( params.roundLengths ) _slidesGridItem = Math.floor( _slidesGridItem );
+
+ if ( snapGrid[ _i2 ] <= swiper.virtualSize - swiperSize ) {
+ newSlidesGrid.push( _slidesGridItem );
+ }
+ }
+
+ snapGrid = newSlidesGrid;
+
+ if (
+ Math.floor( swiper.virtualSize - swiperSize ) -
+ Math.floor( snapGrid[ snapGrid.length - 1 ] ) >
+ 1
+ ) {
+ snapGrid.push( swiper.virtualSize - swiperSize );
+ }
+ }
+
+ if ( snapGrid.length === 0 ) snapGrid = [ 0 ];
+
+ if ( params.spaceBetween !== 0 ) {
+ var _slides$filter$css;
+
+ var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel( 'marginRight' );
+ slides
+ .filter( function ( _, slideIndex ) {
+ if ( ! params.cssMode ) return true;
+
+ if ( slideIndex === slides.length - 1 ) {
+ return false;
+ }
+
+ return true;
+ } )
+ .css(
+ ( ( _slides$filter$css = {} ),
+ ( _slides$filter$css[ key ] = spaceBetween + 'px' ),
+ _slides$filter$css )
+ );
+ }
+
+ if ( params.centeredSlides && params.centeredSlidesBounds ) {
+ var allSlidesSize = 0;
+ slidesSizesGrid.forEach( function ( slideSizeValue ) {
+ allSlidesSize += slideSizeValue + ( params.spaceBetween ? params.spaceBetween : 0 );
+ } );
+ allSlidesSize -= params.spaceBetween;
+ var maxSnap = allSlidesSize - swiperSize;
+ snapGrid = snapGrid.map( function ( snap ) {
+ if ( snap < 0 ) return -offsetBefore;
+ if ( snap > maxSnap ) return maxSnap + offsetAfter;
+ return snap;
+ } );
+ }
+
+ if ( params.centerInsufficientSlides ) {
+ var _allSlidesSize = 0;
+ slidesSizesGrid.forEach( function ( slideSizeValue ) {
+ _allSlidesSize += slideSizeValue + ( params.spaceBetween ? params.spaceBetween : 0 );
+ } );
+ _allSlidesSize -= params.spaceBetween;
+
+ if ( _allSlidesSize < swiperSize ) {
+ var allSlidesOffset = ( swiperSize - _allSlidesSize ) / 2;
+ snapGrid.forEach( function ( snap, snapIndex ) {
+ snapGrid[ snapIndex ] = snap - allSlidesOffset;
+ } );
+ slidesGrid.forEach( function ( snap, snapIndex ) {
+ slidesGrid[ snapIndex ] = snap + allSlidesOffset;
+ } );
+ }
+ }
+
+ extend( swiper, {
+ slides: slides,
+ snapGrid: snapGrid,
+ slidesGrid: slidesGrid,
+ slidesSizesGrid: slidesSizesGrid,
+ } );
+
+ if ( slidesLength !== previousSlidesLength ) {
+ swiper.emit( 'slidesLengthChange' );
+ }
+
+ if ( snapGrid.length !== previousSnapGridLength ) {
+ if ( swiper.params.watchOverflow ) swiper.checkOverflow();
+ swiper.emit( 'snapGridLengthChange' );
+ }
+
+ if ( slidesGrid.length !== previousSlidesGridLength ) {
+ swiper.emit( 'slidesGridLengthChange' );
+ }
+
+ if ( params.watchSlidesProgress || params.watchSlidesVisibility ) {
+ swiper.updateSlidesOffset();
+ }
+ }
+
+ function updateAutoHeight( speed ) {
+ var swiper = this;
+ var activeSlides = [];
+ var isVirtual = swiper.virtual && swiper.params.virtual.enabled;
+ var newHeight = 0;
+ var i;
+
+ if ( typeof speed === 'number' ) {
+ swiper.setTransition( speed );
+ } else if ( speed === true ) {
+ swiper.setTransition( swiper.params.speed );
+ }
+
+ var getSlideByIndex = function getSlideByIndex( index ) {
+ if ( isVirtual ) {
+ return swiper.slides.filter( function ( el ) {
+ return parseInt( el.getAttribute( 'data-swiper-slide-index' ), 10 ) === index;
+ } )[ 0 ];
+ }
+
+ return swiper.slides.eq( index )[ 0 ];
+ }; // Find slides currently in view
+
+ if ( swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1 ) {
+ if ( swiper.params.centeredSlides ) {
+ swiper.visibleSlides.each( function ( slide ) {
+ activeSlides.push( slide );
+ } );
+ } else {
+ for ( i = 0; i < Math.ceil( swiper.params.slidesPerView ); i += 1 ) {
+ var index = swiper.activeIndex + i;
+ if ( index > swiper.slides.length && ! isVirtual ) break;
+ activeSlides.push( getSlideByIndex( index ) );
+ }
+ }
+ } else {
+ activeSlides.push( getSlideByIndex( swiper.activeIndex ) );
+ } // Find new height from highest slide in view
+
+ for ( i = 0; i < activeSlides.length; i += 1 ) {
+ if ( typeof activeSlides[ i ] !== 'undefined' ) {
+ var height = activeSlides[ i ].offsetHeight;
+ newHeight = height > newHeight ? height : newHeight;
+ }
+ } // Update Height
+
+ if ( newHeight ) swiper.$wrapperEl.css( 'height', newHeight + 'px' );
+ }
+
+ function updateSlidesOffset() {
+ var swiper = this;
+ var slides = swiper.slides;
+
+ for ( var i = 0; i < slides.length; i += 1 ) {
+ slides[ i ].swiperSlideOffset = swiper.isHorizontal()
+ ? slides[ i ].offsetLeft
+ : slides[ i ].offsetTop;
+ }
+ }
+
+ function updateSlidesProgress( translate ) {
+ if ( translate === void 0 ) {
+ translate = ( this && this.translate ) || 0;
+ }
+
+ var swiper = this;
+ var params = swiper.params;
+ var slides = swiper.slides,
+ rtl = swiper.rtlTranslate;
+ if ( slides.length === 0 ) return;
+ if ( typeof slides[ 0 ].swiperSlideOffset === 'undefined' ) swiper.updateSlidesOffset();
+ var offsetCenter = -translate;
+ if ( rtl ) offsetCenter = translate; // Visible Slides
+
+ slides.removeClass( params.slideVisibleClass );
+ swiper.visibleSlidesIndexes = [];
+ swiper.visibleSlides = [];
+
+ for ( var i = 0; i < slides.length; i += 1 ) {
+ var slide = slides[ i ];
+ var slideProgress =
+ ( offsetCenter +
+ ( params.centeredSlides ? swiper.minTranslate() : 0 ) -
+ slide.swiperSlideOffset ) /
+ ( slide.swiperSlideSize + params.spaceBetween );
+
+ if ( params.watchSlidesVisibility || ( params.centeredSlides && params.autoHeight ) ) {
+ var slideBefore = -( offsetCenter - slide.swiperSlideOffset );
+ var slideAfter = slideBefore + swiper.slidesSizesGrid[ i ];
+ var isVisible =
+ ( slideBefore >= 0 && slideBefore < swiper.size - 1 ) ||
+ ( slideAfter > 1 && slideAfter <= swiper.size ) ||
+ ( slideBefore <= 0 && slideAfter >= swiper.size );
+
+ if ( isVisible ) {
+ swiper.visibleSlides.push( slide );
+ swiper.visibleSlidesIndexes.push( i );
+ slides.eq( i ).addClass( params.slideVisibleClass );
+ }
+ }
+
+ slide.progress = rtl ? -slideProgress : slideProgress;
+ }
+
+ swiper.visibleSlides = $( swiper.visibleSlides );
+ }
+
+ function updateProgress( translate ) {
+ var swiper = this;
+
+ if ( typeof translate === 'undefined' ) {
+ var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line
+
+ translate = ( swiper && swiper.translate && swiper.translate * multiplier ) || 0;
+ }
+
+ var params = swiper.params;
+ var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
+ var progress = swiper.progress,
+ isBeginning = swiper.isBeginning,
+ isEnd = swiper.isEnd;
+ var wasBeginning = isBeginning;
+ var wasEnd = isEnd;
+
+ if ( translatesDiff === 0 ) {
+ progress = 0;
+ isBeginning = true;
+ isEnd = true;
+ } else {
+ progress = ( translate - swiper.minTranslate() ) / translatesDiff;
+ isBeginning = progress <= 0;
+ isEnd = progress >= 1;
+ }
+
+ extend( swiper, {
+ progress: progress,
+ isBeginning: isBeginning,
+ isEnd: isEnd,
+ } );
+ if (
+ params.watchSlidesProgress ||
+ params.watchSlidesVisibility ||
+ ( params.centeredSlides && params.autoHeight )
+ )
+ swiper.updateSlidesProgress( translate );
+
+ if ( isBeginning && ! wasBeginning ) {
+ swiper.emit( 'reachBeginning toEdge' );
+ }
+
+ if ( isEnd && ! wasEnd ) {
+ swiper.emit( 'reachEnd toEdge' );
+ }
+
+ if ( ( wasBeginning && ! isBeginning ) || ( wasEnd && ! isEnd ) ) {
+ swiper.emit( 'fromEdge' );
+ }
+
+ swiper.emit( 'progress', progress );
+ }
+
+ function updateSlidesClasses() {
+ var swiper = this;
+ var slides = swiper.slides,
+ params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl,
+ activeIndex = swiper.activeIndex,
+ realIndex = swiper.realIndex;
+ var isVirtual = swiper.virtual && params.virtual.enabled;
+ slides.removeClass(
+ params.slideActiveClass +
+ ' ' +
+ params.slideNextClass +
+ ' ' +
+ params.slidePrevClass +
+ ' ' +
+ params.slideDuplicateActiveClass +
+ ' ' +
+ params.slideDuplicateNextClass +
+ ' ' +
+ params.slideDuplicatePrevClass
+ );
+ var activeSlide;
+
+ if ( isVirtual ) {
+ activeSlide = swiper.$wrapperEl.find(
+ '.' + params.slideClass + '[data-swiper-slide-index="' + activeIndex + '"]'
+ );
+ } else {
+ activeSlide = slides.eq( activeIndex );
+ } // Active classes
+
+ activeSlide.addClass( params.slideActiveClass );
+
+ if ( params.loop ) {
+ // Duplicate to all looped slides
+ if ( activeSlide.hasClass( params.slideDuplicateClass ) ) {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ ':not(.' +
+ params.slideDuplicateClass +
+ ')[data-swiper-slide-index="' +
+ realIndex +
+ '"]'
+ )
+ .addClass( params.slideDuplicateActiveClass );
+ } else {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '.' +
+ params.slideDuplicateClass +
+ '[data-swiper-slide-index="' +
+ realIndex +
+ '"]'
+ )
+ .addClass( params.slideDuplicateActiveClass );
+ }
+ } // Next Slide
+
+ var nextSlide = activeSlide
+ .nextAll( '.' + params.slideClass )
+ .eq( 0 )
+ .addClass( params.slideNextClass );
+
+ if ( params.loop && nextSlide.length === 0 ) {
+ nextSlide = slides.eq( 0 );
+ nextSlide.addClass( params.slideNextClass );
+ } // Prev Slide
+
+ var prevSlide = activeSlide
+ .prevAll( '.' + params.slideClass )
+ .eq( 0 )
+ .addClass( params.slidePrevClass );
+
+ if ( params.loop && prevSlide.length === 0 ) {
+ prevSlide = slides.eq( -1 );
+ prevSlide.addClass( params.slidePrevClass );
+ }
+
+ if ( params.loop ) {
+ // Duplicate to all looped slides
+ if ( nextSlide.hasClass( params.slideDuplicateClass ) ) {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ ':not(.' +
+ params.slideDuplicateClass +
+ ')[data-swiper-slide-index="' +
+ nextSlide.attr( 'data-swiper-slide-index' ) +
+ '"]'
+ )
+ .addClass( params.slideDuplicateNextClass );
+ } else {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '.' +
+ params.slideDuplicateClass +
+ '[data-swiper-slide-index="' +
+ nextSlide.attr( 'data-swiper-slide-index' ) +
+ '"]'
+ )
+ .addClass( params.slideDuplicateNextClass );
+ }
+
+ if ( prevSlide.hasClass( params.slideDuplicateClass ) ) {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ ':not(.' +
+ params.slideDuplicateClass +
+ ')[data-swiper-slide-index="' +
+ prevSlide.attr( 'data-swiper-slide-index' ) +
+ '"]'
+ )
+ .addClass( params.slideDuplicatePrevClass );
+ } else {
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '.' +
+ params.slideDuplicateClass +
+ '[data-swiper-slide-index="' +
+ prevSlide.attr( 'data-swiper-slide-index' ) +
+ '"]'
+ )
+ .addClass( params.slideDuplicatePrevClass );
+ }
+ }
+
+ swiper.emitSlidesClasses();
+ }
+
+ function updateActiveIndex( newActiveIndex ) {
+ var swiper = this;
+ var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
+ var slidesGrid = swiper.slidesGrid,
+ snapGrid = swiper.snapGrid,
+ params = swiper.params,
+ previousIndex = swiper.activeIndex,
+ previousRealIndex = swiper.realIndex,
+ previousSnapIndex = swiper.snapIndex;
+ var activeIndex = newActiveIndex;
+ var snapIndex;
+
+ if ( typeof activeIndex === 'undefined' ) {
+ for ( var i = 0; i < slidesGrid.length; i += 1 ) {
+ if ( typeof slidesGrid[ i + 1 ] !== 'undefined' ) {
+ if (
+ translate >= slidesGrid[ i ] &&
+ translate < slidesGrid[ i + 1 ] - ( slidesGrid[ i + 1 ] - slidesGrid[ i ] ) / 2
+ ) {
+ activeIndex = i;
+ } else if ( translate >= slidesGrid[ i ] && translate < slidesGrid[ i + 1 ] ) {
+ activeIndex = i + 1;
+ }
+ } else if ( translate >= slidesGrid[ i ] ) {
+ activeIndex = i;
+ }
+ } // Normalize slideIndex
+
+ if ( params.normalizeSlideIndex ) {
+ if ( activeIndex < 0 || typeof activeIndex === 'undefined' ) activeIndex = 0;
+ }
+ }
+
+ if ( snapGrid.indexOf( translate ) >= 0 ) {
+ snapIndex = snapGrid.indexOf( translate );
+ } else {
+ var skip = Math.min( params.slidesPerGroupSkip, activeIndex );
+ snapIndex = skip + Math.floor( ( activeIndex - skip ) / params.slidesPerGroup );
+ }
+
+ if ( snapIndex >= snapGrid.length ) snapIndex = snapGrid.length - 1;
+
+ if ( activeIndex === previousIndex ) {
+ if ( snapIndex !== previousSnapIndex ) {
+ swiper.snapIndex = snapIndex;
+ swiper.emit( 'snapIndexChange' );
+ }
+
+ return;
+ } // Get real index
+
+ var realIndex = parseInt(
+ swiper.slides.eq( activeIndex ).attr( 'data-swiper-slide-index' ) || activeIndex,
+ 10
+ );
+ extend( swiper, {
+ snapIndex: snapIndex,
+ realIndex: realIndex,
+ previousIndex: previousIndex,
+ activeIndex: activeIndex,
+ } );
+ swiper.emit( 'activeIndexChange' );
+ swiper.emit( 'snapIndexChange' );
+
+ if ( previousRealIndex !== realIndex ) {
+ swiper.emit( 'realIndexChange' );
+ }
+
+ if ( swiper.initialized || swiper.params.runCallbacksOnInit ) {
+ swiper.emit( 'slideChange' );
+ }
+ }
+
+ function updateClickedSlide( e ) {
+ var swiper = this;
+ var params = swiper.params;
+ var slide = $( e.target ).closest( '.' + params.slideClass )[ 0 ];
+ var slideFound = false;
+ var slideIndex;
+
+ if ( slide ) {
+ for ( var i = 0; i < swiper.slides.length; i += 1 ) {
+ if ( swiper.slides[ i ] === slide ) {
+ slideFound = true;
+ slideIndex = i;
+ break;
+ }
+ }
+ }
+
+ if ( slide && slideFound ) {
+ swiper.clickedSlide = slide;
+
+ if ( swiper.virtual && swiper.params.virtual.enabled ) {
+ swiper.clickedIndex = parseInt( $( slide ).attr( 'data-swiper-slide-index' ), 10 );
+ } else {
+ swiper.clickedIndex = slideIndex;
+ }
+ } else {
+ swiper.clickedSlide = undefined;
+ swiper.clickedIndex = undefined;
+ return;
+ }
+
+ if (
+ params.slideToClickedSlide &&
+ swiper.clickedIndex !== undefined &&
+ swiper.clickedIndex !== swiper.activeIndex
+ ) {
+ swiper.slideToClickedSlide();
+ }
+ }
+
+ var update = {
+ updateSize: updateSize,
+ updateSlides: updateSlides,
+ updateAutoHeight: updateAutoHeight,
+ updateSlidesOffset: updateSlidesOffset,
+ updateSlidesProgress: updateSlidesProgress,
+ updateProgress: updateProgress,
+ updateSlidesClasses: updateSlidesClasses,
+ updateActiveIndex: updateActiveIndex,
+ updateClickedSlide: updateClickedSlide,
+ };
+
+ function getSwiperTranslate( axis ) {
+ if ( axis === void 0 ) {
+ axis = this.isHorizontal() ? 'x' : 'y';
+ }
+
+ var swiper = this;
+ var params = swiper.params,
+ rtl = swiper.rtlTranslate,
+ translate = swiper.translate,
+ $wrapperEl = swiper.$wrapperEl;
+
+ if ( params.virtualTranslate ) {
+ return rtl ? -translate : translate;
+ }
+
+ if ( params.cssMode ) {
+ return translate;
+ }
+
+ var currentTranslate = getTranslate( $wrapperEl[ 0 ], axis );
+ if ( rtl ) currentTranslate = -currentTranslate;
+ return currentTranslate || 0;
+ }
+
+ function setTranslate( translate, byController ) {
+ var swiper = this;
+ var rtl = swiper.rtlTranslate,
+ params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl,
+ wrapperEl = swiper.wrapperEl,
+ progress = swiper.progress;
+ var x = 0;
+ var y = 0;
+ var z = 0;
+
+ if ( swiper.isHorizontal() ) {
+ x = rtl ? -translate : translate;
+ } else {
+ y = translate;
+ }
+
+ if ( params.roundLengths ) {
+ x = Math.floor( x );
+ y = Math.floor( y );
+ }
+
+ if ( params.cssMode ) {
+ wrapperEl[ swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop' ] = swiper.isHorizontal()
+ ? -x
+ : -y;
+ } else if ( ! params.virtualTranslate ) {
+ $wrapperEl.transform( 'translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)' );
+ }
+
+ swiper.previousTranslate = swiper.translate;
+ swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress
+
+ var newProgress;
+ var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
+
+ if ( translatesDiff === 0 ) {
+ newProgress = 0;
+ } else {
+ newProgress = ( translate - swiper.minTranslate() ) / translatesDiff;
+ }
+
+ if ( newProgress !== progress ) {
+ swiper.updateProgress( translate );
+ }
+
+ swiper.emit( 'setTranslate', swiper.translate, byController );
+ }
+
+ function minTranslate() {
+ return -this.snapGrid[ 0 ];
+ }
+
+ function maxTranslate() {
+ return -this.snapGrid[ this.snapGrid.length - 1 ];
+ }
+
+ function translateTo( translate, speed, runCallbacks, translateBounds, internal ) {
+ if ( translate === void 0 ) {
+ translate = 0;
+ }
+
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ if ( translateBounds === void 0 ) {
+ translateBounds = true;
+ }
+
+ var swiper = this;
+ var params = swiper.params,
+ wrapperEl = swiper.wrapperEl;
+
+ if ( swiper.animating && params.preventInteractionOnTransition ) {
+ return false;
+ }
+
+ var minTranslate = swiper.minTranslate();
+ var maxTranslate = swiper.maxTranslate();
+ var newTranslate;
+ if ( translateBounds && translate > minTranslate ) newTranslate = minTranslate;
+ else if ( translateBounds && translate < maxTranslate ) newTranslate = maxTranslate;
+ else newTranslate = translate; // Update progress
+
+ swiper.updateProgress( newTranslate );
+
+ if ( params.cssMode ) {
+ var isH = swiper.isHorizontal();
+
+ if ( speed === 0 ) {
+ wrapperEl[ isH ? 'scrollLeft' : 'scrollTop' ] = -newTranslate;
+ } else {
+ // eslint-disable-next-line
+ if ( wrapperEl.scrollTo ) {
+ var _wrapperEl$scrollTo;
+
+ wrapperEl.scrollTo(
+ ( ( _wrapperEl$scrollTo = {} ),
+ ( _wrapperEl$scrollTo[ isH ? 'left' : 'top' ] = -newTranslate ),
+ ( _wrapperEl$scrollTo.behavior = 'smooth' ),
+ _wrapperEl$scrollTo )
+ );
+ } else {
+ wrapperEl[ isH ? 'scrollLeft' : 'scrollTop' ] = -newTranslate;
+ }
+ }
+
+ return true;
+ }
+
+ if ( speed === 0 ) {
+ swiper.setTransition( 0 );
+ swiper.setTranslate( newTranslate );
+
+ if ( runCallbacks ) {
+ swiper.emit( 'beforeTransitionStart', speed, internal );
+ swiper.emit( 'transitionEnd' );
+ }
+ } else {
+ swiper.setTransition( speed );
+ swiper.setTranslate( newTranslate );
+
+ if ( runCallbacks ) {
+ swiper.emit( 'beforeTransitionStart', speed, internal );
+ swiper.emit( 'transitionStart' );
+ }
+
+ if ( ! swiper.animating ) {
+ swiper.animating = true;
+
+ if ( ! swiper.onTranslateToWrapperTransitionEnd ) {
+ swiper.onTranslateToWrapperTransitionEnd = function transitionEnd( e ) {
+ if ( ! swiper || swiper.destroyed ) return;
+ if ( e.target !== this ) return;
+ swiper.$wrapperEl[ 0 ].removeEventListener(
+ 'transitionend',
+ swiper.onTranslateToWrapperTransitionEnd
+ );
+ swiper.$wrapperEl[ 0 ].removeEventListener(
+ 'webkitTransitionEnd',
+ swiper.onTranslateToWrapperTransitionEnd
+ );
+ swiper.onTranslateToWrapperTransitionEnd = null;
+ delete swiper.onTranslateToWrapperTransitionEnd;
+
+ if ( runCallbacks ) {
+ swiper.emit( 'transitionEnd' );
+ }
+ };
+ }
+
+ swiper.$wrapperEl[ 0 ].addEventListener(
+ 'transitionend',
+ swiper.onTranslateToWrapperTransitionEnd
+ );
+ swiper.$wrapperEl[ 0 ].addEventListener(
+ 'webkitTransitionEnd',
+ swiper.onTranslateToWrapperTransitionEnd
+ );
+ }
+ }
+
+ return true;
+ }
+
+ var translate = {
+ getTranslate: getSwiperTranslate,
+ setTranslate: setTranslate,
+ minTranslate: minTranslate,
+ maxTranslate: maxTranslate,
+ translateTo: translateTo,
+ };
+
+ function setTransition( duration, byController ) {
+ var swiper = this;
+
+ if ( ! swiper.params.cssMode ) {
+ swiper.$wrapperEl.transition( duration );
+ }
+
+ swiper.emit( 'setTransition', duration, byController );
+ }
+
+ function transitionStart( runCallbacks, direction ) {
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ var activeIndex = swiper.activeIndex,
+ params = swiper.params,
+ previousIndex = swiper.previousIndex;
+ if ( params.cssMode ) return;
+
+ if ( params.autoHeight ) {
+ swiper.updateAutoHeight();
+ }
+
+ var dir = direction;
+
+ if ( ! dir ) {
+ if ( activeIndex > previousIndex ) dir = 'next';
+ else if ( activeIndex < previousIndex ) dir = 'prev';
+ else dir = 'reset';
+ }
+
+ swiper.emit( 'transitionStart' );
+
+ if ( runCallbacks && activeIndex !== previousIndex ) {
+ if ( dir === 'reset' ) {
+ swiper.emit( 'slideResetTransitionStart' );
+ return;
+ }
+
+ swiper.emit( 'slideChangeTransitionStart' );
+
+ if ( dir === 'next' ) {
+ swiper.emit( 'slideNextTransitionStart' );
+ } else {
+ swiper.emit( 'slidePrevTransitionStart' );
+ }
+ }
+ }
+
+ function transitionEnd( runCallbacks, direction ) {
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ var activeIndex = swiper.activeIndex,
+ previousIndex = swiper.previousIndex,
+ params = swiper.params;
+ swiper.animating = false;
+ if ( params.cssMode ) return;
+ swiper.setTransition( 0 );
+ var dir = direction;
+
+ if ( ! dir ) {
+ if ( activeIndex > previousIndex ) dir = 'next';
+ else if ( activeIndex < previousIndex ) dir = 'prev';
+ else dir = 'reset';
+ }
+
+ swiper.emit( 'transitionEnd' );
+
+ if ( runCallbacks && activeIndex !== previousIndex ) {
+ if ( dir === 'reset' ) {
+ swiper.emit( 'slideResetTransitionEnd' );
+ return;
+ }
+
+ swiper.emit( 'slideChangeTransitionEnd' );
+
+ if ( dir === 'next' ) {
+ swiper.emit( 'slideNextTransitionEnd' );
+ } else {
+ swiper.emit( 'slidePrevTransitionEnd' );
+ }
+ }
+ }
+
+ var transition = {
+ setTransition: setTransition,
+ transitionStart: transitionStart,
+ transitionEnd: transitionEnd,
+ };
+
+ function slideTo( index, speed, runCallbacks, internal, initial ) {
+ if ( index === void 0 ) {
+ index = 0;
+ }
+
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ if ( typeof index !== 'number' && typeof index !== 'string' ) {
+ throw new Error(
+ "The 'index' argument cannot have type other than 'number' or 'string'. [" +
+ typeof index +
+ '] given.'
+ );
+ }
+
+ if ( typeof index === 'string' ) {
+ /**
+ * The `index` argument converted from `string` to `number`.
+ * @type {number}
+ */
+ var indexAsNumber = parseInt( index, 10 );
+ /**
+ * Determines whether the `index` argument is a valid `number`
+ * after being converted from the `string` type.
+ * @type {boolean}
+ */
+
+ var isValidNumber = isFinite( indexAsNumber );
+
+ if ( ! isValidNumber ) {
+ throw new Error(
+ "The passed-in 'index' (string) couldn't be converted to 'number'. [" + index + '] given.'
+ );
+ } // Knowing that the converted `index` is a valid number,
+ // we can update the original argument's value.
+
+ index = indexAsNumber;
+ }
+
+ var swiper = this;
+ var slideIndex = index;
+ if ( slideIndex < 0 ) slideIndex = 0;
+ var params = swiper.params,
+ snapGrid = swiper.snapGrid,
+ slidesGrid = swiper.slidesGrid,
+ previousIndex = swiper.previousIndex,
+ activeIndex = swiper.activeIndex,
+ rtl = swiper.rtlTranslate,
+ wrapperEl = swiper.wrapperEl,
+ enabled = swiper.enabled;
+
+ if (
+ ( swiper.animating && params.preventInteractionOnTransition ) ||
+ ( ! enabled && ! internal && ! initial )
+ ) {
+ return false;
+ }
+
+ var skip = Math.min( swiper.params.slidesPerGroupSkip, slideIndex );
+ var snapIndex = skip + Math.floor( ( slideIndex - skip ) / swiper.params.slidesPerGroup );
+ if ( snapIndex >= snapGrid.length ) snapIndex = snapGrid.length - 1;
+
+ if ( ( activeIndex || params.initialSlide || 0 ) === ( previousIndex || 0 ) && runCallbacks ) {
+ swiper.emit( 'beforeSlideChangeStart' );
+ }
+
+ var translate = -snapGrid[ snapIndex ]; // Update progress
+
+ swiper.updateProgress( translate ); // Normalize slideIndex
+
+ if ( params.normalizeSlideIndex ) {
+ for ( var i = 0; i < slidesGrid.length; i += 1 ) {
+ var normalizedTranslate = -Math.floor( translate * 100 );
+ var normalizedGird = Math.floor( slidesGrid[ i ] * 100 );
+ var normalizedGridNext = Math.floor( slidesGrid[ i + 1 ] * 100 );
+
+ if ( typeof slidesGrid[ i + 1 ] !== 'undefined' ) {
+ if (
+ normalizedTranslate >= normalizedGird &&
+ normalizedTranslate < normalizedGridNext - ( normalizedGridNext - normalizedGird ) / 2
+ ) {
+ slideIndex = i;
+ } else if (
+ normalizedTranslate >= normalizedGird &&
+ normalizedTranslate < normalizedGridNext
+ ) {
+ slideIndex = i + 1;
+ }
+ } else if ( normalizedTranslate >= normalizedGird ) {
+ slideIndex = i;
+ }
+ }
+ } // Directions locks
+
+ if ( swiper.initialized && slideIndex !== activeIndex ) {
+ if (
+ ! swiper.allowSlideNext &&
+ translate < swiper.translate &&
+ translate < swiper.minTranslate()
+ ) {
+ return false;
+ }
+
+ if (
+ ! swiper.allowSlidePrev &&
+ translate > swiper.translate &&
+ translate > swiper.maxTranslate()
+ ) {
+ if ( ( activeIndex || 0 ) !== slideIndex ) return false;
+ }
+ }
+
+ var direction;
+ if ( slideIndex > activeIndex ) direction = 'next';
+ else if ( slideIndex < activeIndex ) direction = 'prev';
+ else direction = 'reset'; // Update Index
+
+ if (
+ ( rtl && -translate === swiper.translate ) ||
+ ( ! rtl && translate === swiper.translate )
+ ) {
+ swiper.updateActiveIndex( slideIndex ); // Update Height
+
+ if ( params.autoHeight ) {
+ swiper.updateAutoHeight();
+ }
+
+ swiper.updateSlidesClasses();
+
+ if ( params.effect !== 'slide' ) {
+ swiper.setTranslate( translate );
+ }
+
+ if ( direction !== 'reset' ) {
+ swiper.transitionStart( runCallbacks, direction );
+ swiper.transitionEnd( runCallbacks, direction );
+ }
+
+ return false;
+ }
+
+ if ( params.cssMode ) {
+ var isH = swiper.isHorizontal();
+ var t = -translate;
+
+ if ( rtl ) {
+ t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;
+ }
+
+ if ( speed === 0 ) {
+ wrapperEl[ isH ? 'scrollLeft' : 'scrollTop' ] = t;
+ } else {
+ // eslint-disable-next-line
+ if ( wrapperEl.scrollTo ) {
+ var _wrapperEl$scrollTo;
+
+ wrapperEl.scrollTo(
+ ( ( _wrapperEl$scrollTo = {} ),
+ ( _wrapperEl$scrollTo[ isH ? 'left' : 'top' ] = t ),
+ ( _wrapperEl$scrollTo.behavior = 'smooth' ),
+ _wrapperEl$scrollTo )
+ );
+ } else {
+ wrapperEl[ isH ? 'scrollLeft' : 'scrollTop' ] = t;
+ }
+ }
+
+ return true;
+ }
+
+ if ( speed === 0 ) {
+ swiper.setTransition( 0 );
+ swiper.setTranslate( translate );
+ swiper.updateActiveIndex( slideIndex );
+ swiper.updateSlidesClasses();
+ swiper.emit( 'beforeTransitionStart', speed, internal );
+ swiper.transitionStart( runCallbacks, direction );
+ swiper.transitionEnd( runCallbacks, direction );
+ } else {
+ swiper.setTransition( speed );
+ swiper.setTranslate( translate );
+ swiper.updateActiveIndex( slideIndex );
+ swiper.updateSlidesClasses();
+ swiper.emit( 'beforeTransitionStart', speed, internal );
+ swiper.transitionStart( runCallbacks, direction );
+
+ if ( ! swiper.animating ) {
+ swiper.animating = true;
+
+ if ( ! swiper.onSlideToWrapperTransitionEnd ) {
+ swiper.onSlideToWrapperTransitionEnd = function transitionEnd( e ) {
+ if ( ! swiper || swiper.destroyed ) return;
+ if ( e.target !== this ) return;
+ swiper.$wrapperEl[ 0 ].removeEventListener(
+ 'transitionend',
+ swiper.onSlideToWrapperTransitionEnd
+ );
+ swiper.$wrapperEl[ 0 ].removeEventListener(
+ 'webkitTransitionEnd',
+ swiper.onSlideToWrapperTransitionEnd
+ );
+ swiper.onSlideToWrapperTransitionEnd = null;
+ delete swiper.onSlideToWrapperTransitionEnd;
+ swiper.transitionEnd( runCallbacks, direction );
+ };
+ }
+
+ swiper.$wrapperEl[ 0 ].addEventListener(
+ 'transitionend',
+ swiper.onSlideToWrapperTransitionEnd
+ );
+ swiper.$wrapperEl[ 0 ].addEventListener(
+ 'webkitTransitionEnd',
+ swiper.onSlideToWrapperTransitionEnd
+ );
+ }
+ }
+
+ return true;
+ }
+
+ function slideToLoop( index, speed, runCallbacks, internal ) {
+ if ( index === void 0 ) {
+ index = 0;
+ }
+
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ var newIndex = index;
+
+ if ( swiper.params.loop ) {
+ newIndex += swiper.loopedSlides;
+ }
+
+ return swiper.slideTo( newIndex, speed, runCallbacks, internal );
+ }
+
+ /* eslint no-unused-vars: "off" */
+ function slideNext( speed, runCallbacks, internal ) {
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ var params = swiper.params,
+ animating = swiper.animating,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return swiper;
+ var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;
+
+ if ( params.loop ) {
+ if ( animating && params.loopPreventsSlide ) return false;
+ swiper.loopFix(); // eslint-disable-next-line
+
+ swiper._clientLeft = swiper.$wrapperEl[ 0 ].clientLeft;
+ }
+
+ return swiper.slideTo( swiper.activeIndex + increment, speed, runCallbacks, internal );
+ }
+
+ /* eslint no-unused-vars: "off" */
+ function slidePrev( speed, runCallbacks, internal ) {
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ var params = swiper.params,
+ animating = swiper.animating,
+ snapGrid = swiper.snapGrid,
+ slidesGrid = swiper.slidesGrid,
+ rtlTranslate = swiper.rtlTranslate,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return swiper;
+
+ if ( params.loop ) {
+ if ( animating && params.loopPreventsSlide ) return false;
+ swiper.loopFix(); // eslint-disable-next-line
+
+ swiper._clientLeft = swiper.$wrapperEl[ 0 ].clientLeft;
+ }
+
+ var translate = rtlTranslate ? swiper.translate : -swiper.translate;
+
+ function normalize( val ) {
+ if ( val < 0 ) return -Math.floor( Math.abs( val ) );
+ return Math.floor( val );
+ }
+
+ var normalizedTranslate = normalize( translate );
+ var normalizedSnapGrid = snapGrid.map( function ( val ) {
+ return normalize( val );
+ } );
+ var prevSnap = snapGrid[ normalizedSnapGrid.indexOf( normalizedTranslate ) - 1 ];
+
+ if ( typeof prevSnap === 'undefined' && params.cssMode ) {
+ snapGrid.forEach( function ( snap ) {
+ if ( ! prevSnap && normalizedTranslate >= snap ) prevSnap = snap;
+ } );
+ }
+
+ var prevIndex;
+
+ if ( typeof prevSnap !== 'undefined' ) {
+ prevIndex = slidesGrid.indexOf( prevSnap );
+ if ( prevIndex < 0 ) prevIndex = swiper.activeIndex - 1;
+ }
+
+ return swiper.slideTo( prevIndex, speed, runCallbacks, internal );
+ }
+
+ /* eslint no-unused-vars: "off" */
+ function slideReset( speed, runCallbacks, internal ) {
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ var swiper = this;
+ return swiper.slideTo( swiper.activeIndex, speed, runCallbacks, internal );
+ }
+
+ /* eslint no-unused-vars: "off" */
+ function slideToClosest( speed, runCallbacks, internal, threshold ) {
+ if ( speed === void 0 ) {
+ speed = this.params.speed;
+ }
+
+ if ( runCallbacks === void 0 ) {
+ runCallbacks = true;
+ }
+
+ if ( threshold === void 0 ) {
+ threshold = 0.5;
+ }
+
+ var swiper = this;
+ var index = swiper.activeIndex;
+ var skip = Math.min( swiper.params.slidesPerGroupSkip, index );
+ var snapIndex = skip + Math.floor( ( index - skip ) / swiper.params.slidesPerGroup );
+ var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
+
+ if ( translate >= swiper.snapGrid[ snapIndex ] ) {
+ // The current translate is on or after the current snap index, so the choice
+ // is between the current index and the one after it.
+ var currentSnap = swiper.snapGrid[ snapIndex ];
+ var nextSnap = swiper.snapGrid[ snapIndex + 1 ];
+
+ if ( translate - currentSnap > ( nextSnap - currentSnap ) * threshold ) {
+ index += swiper.params.slidesPerGroup;
+ }
+ } else {
+ // The current translate is before the current snap index, so the choice
+ // is between the current index and the one before it.
+ var prevSnap = swiper.snapGrid[ snapIndex - 1 ];
+ var _currentSnap = swiper.snapGrid[ snapIndex ];
+
+ if ( translate - prevSnap <= ( _currentSnap - prevSnap ) * threshold ) {
+ index -= swiper.params.slidesPerGroup;
+ }
+ }
+
+ index = Math.max( index, 0 );
+ index = Math.min( index, swiper.slidesGrid.length - 1 );
+ return swiper.slideTo( index, speed, runCallbacks, internal );
+ }
+
+ function slideToClickedSlide() {
+ var swiper = this;
+ var params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl;
+ var slidesPerView =
+ params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
+ var slideToIndex = swiper.clickedIndex;
+ var realIndex;
+
+ if ( params.loop ) {
+ if ( swiper.animating ) return;
+ realIndex = parseInt( $( swiper.clickedSlide ).attr( 'data-swiper-slide-index' ), 10 );
+
+ if ( params.centeredSlides ) {
+ if (
+ slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||
+ slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2
+ ) {
+ swiper.loopFix();
+ slideToIndex = $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '[data-swiper-slide-index="' +
+ realIndex +
+ '"]:not(.' +
+ params.slideDuplicateClass +
+ ')'
+ )
+ .eq( 0 )
+ .index();
+ nextTick( function () {
+ swiper.slideTo( slideToIndex );
+ } );
+ } else {
+ swiper.slideTo( slideToIndex );
+ }
+ } else if ( slideToIndex > swiper.slides.length - slidesPerView ) {
+ swiper.loopFix();
+ slideToIndex = $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '[data-swiper-slide-index="' +
+ realIndex +
+ '"]:not(.' +
+ params.slideDuplicateClass +
+ ')'
+ )
+ .eq( 0 )
+ .index();
+ nextTick( function () {
+ swiper.slideTo( slideToIndex );
+ } );
+ } else {
+ swiper.slideTo( slideToIndex );
+ }
+ } else {
+ swiper.slideTo( slideToIndex );
+ }
+ }
+
+ var slide = {
+ slideTo: slideTo,
+ slideToLoop: slideToLoop,
+ slideNext: slideNext,
+ slidePrev: slidePrev,
+ slideReset: slideReset,
+ slideToClosest: slideToClosest,
+ slideToClickedSlide: slideToClickedSlide,
+ };
+
+ function loopCreate() {
+ var swiper = this;
+ var document = getDocument();
+ var params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides
+
+ $wrapperEl.children( '.' + params.slideClass + '.' + params.slideDuplicateClass ).remove();
+ var slides = $wrapperEl.children( '.' + params.slideClass );
+
+ if ( params.loopFillGroupWithBlank ) {
+ var blankSlidesNum = params.slidesPerGroup - ( slides.length % params.slidesPerGroup );
+
+ if ( blankSlidesNum !== params.slidesPerGroup ) {
+ for ( var i = 0; i < blankSlidesNum; i += 1 ) {
+ var blankNode = $( document.createElement( 'div' ) ).addClass(
+ params.slideClass + ' ' + params.slideBlankClass
+ );
+ $wrapperEl.append( blankNode );
+ }
+
+ slides = $wrapperEl.children( '.' + params.slideClass );
+ }
+ }
+
+ if ( params.slidesPerView === 'auto' && ! params.loopedSlides )
+ params.loopedSlides = slides.length;
+ swiper.loopedSlides = Math.ceil(
+ parseFloat( params.loopedSlides || params.slidesPerView, 10 )
+ );
+ swiper.loopedSlides += params.loopAdditionalSlides;
+
+ if ( swiper.loopedSlides > slides.length ) {
+ swiper.loopedSlides = slides.length;
+ }
+
+ var prependSlides = [];
+ var appendSlides = [];
+ slides.each( function ( el, index ) {
+ var slide = $( el );
+
+ if ( index < swiper.loopedSlides ) {
+ appendSlides.push( el );
+ }
+
+ if ( index < slides.length && index >= slides.length - swiper.loopedSlides ) {
+ prependSlides.push( el );
+ }
+
+ slide.attr( 'data-swiper-slide-index', index );
+ } );
+
+ for ( var _i = 0; _i < appendSlides.length; _i += 1 ) {
+ $wrapperEl.append(
+ $( appendSlides[ _i ].cloneNode( true ) ).addClass( params.slideDuplicateClass )
+ );
+ }
+
+ for ( var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1 ) {
+ $wrapperEl.prepend(
+ $( prependSlides[ _i2 ].cloneNode( true ) ).addClass( params.slideDuplicateClass )
+ );
+ }
+ }
+
+ function loopFix() {
+ var swiper = this;
+ swiper.emit( 'beforeLoopFix' );
+ var activeIndex = swiper.activeIndex,
+ slides = swiper.slides,
+ loopedSlides = swiper.loopedSlides,
+ allowSlidePrev = swiper.allowSlidePrev,
+ allowSlideNext = swiper.allowSlideNext,
+ snapGrid = swiper.snapGrid,
+ rtl = swiper.rtlTranslate;
+ var newIndex;
+ swiper.allowSlidePrev = true;
+ swiper.allowSlideNext = true;
+ var snapTranslate = -snapGrid[ activeIndex ];
+ var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding
+
+ if ( activeIndex < loopedSlides ) {
+ newIndex = slides.length - loopedSlides * 3 + activeIndex;
+ newIndex += loopedSlides;
+ var slideChanged = swiper.slideTo( newIndex, 0, false, true );
+
+ if ( slideChanged && diff !== 0 ) {
+ swiper.setTranslate( ( rtl ? -swiper.translate : swiper.translate ) - diff );
+ }
+ } else if ( activeIndex >= slides.length - loopedSlides ) {
+ // Fix For Positive Oversliding
+ newIndex = -slides.length + activeIndex + loopedSlides;
+ newIndex += loopedSlides;
+
+ var _slideChanged = swiper.slideTo( newIndex, 0, false, true );
+
+ if ( _slideChanged && diff !== 0 ) {
+ swiper.setTranslate( ( rtl ? -swiper.translate : swiper.translate ) - diff );
+ }
+ }
+
+ swiper.allowSlidePrev = allowSlidePrev;
+ swiper.allowSlideNext = allowSlideNext;
+ swiper.emit( 'loopFix' );
+ }
+
+ function loopDestroy() {
+ var swiper = this;
+ var $wrapperEl = swiper.$wrapperEl,
+ params = swiper.params,
+ slides = swiper.slides;
+ $wrapperEl
+ .children(
+ '.' +
+ params.slideClass +
+ '.' +
+ params.slideDuplicateClass +
+ ',.' +
+ params.slideClass +
+ '.' +
+ params.slideBlankClass
+ )
+ .remove();
+ slides.removeAttr( 'data-swiper-slide-index' );
+ }
+
+ var loop = {
+ loopCreate: loopCreate,
+ loopFix: loopFix,
+ loopDestroy: loopDestroy,
+ };
+
+ function setGrabCursor( moving ) {
+ var swiper = this;
+ if (
+ swiper.support.touch ||
+ ! swiper.params.simulateTouch ||
+ ( swiper.params.watchOverflow && swiper.isLocked ) ||
+ swiper.params.cssMode
+ )
+ return;
+ var el = swiper.el;
+ el.style.cursor = 'move';
+ el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
+ el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
+ el.style.cursor = moving ? 'grabbing' : 'grab';
+ }
+
+ function unsetGrabCursor() {
+ var swiper = this;
+
+ if (
+ swiper.support.touch ||
+ ( swiper.params.watchOverflow && swiper.isLocked ) ||
+ swiper.params.cssMode
+ ) {
+ return;
+ }
+
+ swiper.el.style.cursor = '';
+ }
+
+ var grabCursor = {
+ setGrabCursor: setGrabCursor,
+ unsetGrabCursor: unsetGrabCursor,
+ };
+
+ function appendSlide( slides ) {
+ var swiper = this;
+ var $wrapperEl = swiper.$wrapperEl,
+ params = swiper.params;
+
+ if ( params.loop ) {
+ swiper.loopDestroy();
+ }
+
+ if ( typeof slides === 'object' && 'length' in slides ) {
+ for ( var i = 0; i < slides.length; i += 1 ) {
+ if ( slides[ i ] ) $wrapperEl.append( slides[ i ] );
+ }
+ } else {
+ $wrapperEl.append( slides );
+ }
+
+ if ( params.loop ) {
+ swiper.loopCreate();
+ }
+
+ if ( ! ( params.observer && swiper.support.observer ) ) {
+ swiper.update();
+ }
+ }
+
+ function prependSlide( slides ) {
+ var swiper = this;
+ var params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl,
+ activeIndex = swiper.activeIndex;
+
+ if ( params.loop ) {
+ swiper.loopDestroy();
+ }
+
+ var newActiveIndex = activeIndex + 1;
+
+ if ( typeof slides === 'object' && 'length' in slides ) {
+ for ( var i = 0; i < slides.length; i += 1 ) {
+ if ( slides[ i ] ) $wrapperEl.prepend( slides[ i ] );
+ }
+
+ newActiveIndex = activeIndex + slides.length;
+ } else {
+ $wrapperEl.prepend( slides );
+ }
+
+ if ( params.loop ) {
+ swiper.loopCreate();
+ }
+
+ if ( ! ( params.observer && swiper.support.observer ) ) {
+ swiper.update();
+ }
+
+ swiper.slideTo( newActiveIndex, 0, false );
+ }
+
+ function addSlide( index, slides ) {
+ var swiper = this;
+ var $wrapperEl = swiper.$wrapperEl,
+ params = swiper.params,
+ activeIndex = swiper.activeIndex;
+ var activeIndexBuffer = activeIndex;
+
+ if ( params.loop ) {
+ activeIndexBuffer -= swiper.loopedSlides;
+ swiper.loopDestroy();
+ swiper.slides = $wrapperEl.children( '.' + params.slideClass );
+ }
+
+ var baseLength = swiper.slides.length;
+
+ if ( index <= 0 ) {
+ swiper.prependSlide( slides );
+ return;
+ }
+
+ if ( index >= baseLength ) {
+ swiper.appendSlide( slides );
+ return;
+ }
+
+ var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
+ var slidesBuffer = [];
+
+ for ( var i = baseLength - 1; i >= index; i -= 1 ) {
+ var currentSlide = swiper.slides.eq( i );
+ currentSlide.remove();
+ slidesBuffer.unshift( currentSlide );
+ }
+
+ if ( typeof slides === 'object' && 'length' in slides ) {
+ for ( var _i = 0; _i < slides.length; _i += 1 ) {
+ if ( slides[ _i ] ) $wrapperEl.append( slides[ _i ] );
+ }
+
+ newActiveIndex =
+ activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
+ } else {
+ $wrapperEl.append( slides );
+ }
+
+ for ( var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1 ) {
+ $wrapperEl.append( slidesBuffer[ _i2 ] );
+ }
+
+ if ( params.loop ) {
+ swiper.loopCreate();
+ }
+
+ if ( ! ( params.observer && swiper.support.observer ) ) {
+ swiper.update();
+ }
+
+ if ( params.loop ) {
+ swiper.slideTo( newActiveIndex + swiper.loopedSlides, 0, false );
+ } else {
+ swiper.slideTo( newActiveIndex, 0, false );
+ }
+ }
+
+ function removeSlide( slidesIndexes ) {
+ var swiper = this;
+ var params = swiper.params,
+ $wrapperEl = swiper.$wrapperEl,
+ activeIndex = swiper.activeIndex;
+ var activeIndexBuffer = activeIndex;
+
+ if ( params.loop ) {
+ activeIndexBuffer -= swiper.loopedSlides;
+ swiper.loopDestroy();
+ swiper.slides = $wrapperEl.children( '.' + params.slideClass );
+ }
+
+ var newActiveIndex = activeIndexBuffer;
+ var indexToRemove;
+
+ if ( typeof slidesIndexes === 'object' && 'length' in slidesIndexes ) {
+ for ( var i = 0; i < slidesIndexes.length; i += 1 ) {
+ indexToRemove = slidesIndexes[ i ];
+ if ( swiper.slides[ indexToRemove ] ) swiper.slides.eq( indexToRemove ).remove();
+ if ( indexToRemove < newActiveIndex ) newActiveIndex -= 1;
+ }
+
+ newActiveIndex = Math.max( newActiveIndex, 0 );
+ } else {
+ indexToRemove = slidesIndexes;
+ if ( swiper.slides[ indexToRemove ] ) swiper.slides.eq( indexToRemove ).remove();
+ if ( indexToRemove < newActiveIndex ) newActiveIndex -= 1;
+ newActiveIndex = Math.max( newActiveIndex, 0 );
+ }
+
+ if ( params.loop ) {
+ swiper.loopCreate();
+ }
+
+ if ( ! ( params.observer && swiper.support.observer ) ) {
+ swiper.update();
+ }
+
+ if ( params.loop ) {
+ swiper.slideTo( newActiveIndex + swiper.loopedSlides, 0, false );
+ } else {
+ swiper.slideTo( newActiveIndex, 0, false );
+ }
+ }
+
+ function removeAllSlides() {
+ var swiper = this;
+ var slidesIndexes = [];
+
+ for ( var i = 0; i < swiper.slides.length; i += 1 ) {
+ slidesIndexes.push( i );
+ }
+
+ swiper.removeSlide( slidesIndexes );
+ }
+
+ var manipulation = {
+ appendSlide: appendSlide,
+ prependSlide: prependSlide,
+ addSlide: addSlide,
+ removeSlide: removeSlide,
+ removeAllSlides: removeAllSlides,
+ };
+
+ function onTouchStart( event ) {
+ var swiper = this;
+ var document = getDocument();
+ var window = getWindow();
+ var data = swiper.touchEventsData;
+ var params = swiper.params,
+ touches = swiper.touches,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return;
+
+ if ( swiper.animating && params.preventInteractionOnTransition ) {
+ return;
+ }
+
+ var e = event;
+ if ( e.originalEvent ) e = e.originalEvent;
+ var $targetEl = $( e.target );
+
+ if ( params.touchEventsTarget === 'wrapper' ) {
+ if ( ! $targetEl.closest( swiper.wrapperEl ).length ) return;
+ }
+
+ data.isTouchEvent = e.type === 'touchstart';
+ if ( ! data.isTouchEvent && 'which' in e && e.which === 3 ) return;
+ if ( ! data.isTouchEvent && 'button' in e && e.button > 0 ) return;
+ if ( data.isTouched && data.isMoved ) return; // change target el for shadow root componenet
+
+ var swipingClassHasValue = !! params.noSwipingClass && params.noSwipingClass !== '';
+
+ if (
+ swipingClassHasValue &&
+ e.target &&
+ e.target.shadowRoot &&
+ event.path &&
+ event.path[ 0 ]
+ ) {
+ $targetEl = $( event.path[ 0 ] );
+ }
+
+ if (
+ params.noSwiping &&
+ $targetEl.closest(
+ params.noSwipingSelector ? params.noSwipingSelector : '.' + params.noSwipingClass
+ )[ 0 ]
+ ) {
+ swiper.allowClick = true;
+ return;
+ }
+
+ if ( params.swipeHandler ) {
+ if ( ! $targetEl.closest( params.swipeHandler )[ 0 ] ) return;
+ }
+
+ touches.currentX = e.type === 'touchstart' ? e.targetTouches[ 0 ].pageX : e.pageX;
+ touches.currentY = e.type === 'touchstart' ? e.targetTouches[ 0 ].pageY : e.pageY;
+ var startX = touches.currentX;
+ var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
+
+ var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;
+ var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;
+
+ if (
+ edgeSwipeDetection &&
+ ( startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold )
+ ) {
+ if ( edgeSwipeDetection === 'prevent' ) {
+ event.preventDefault();
+ } else {
+ return;
+ }
+ }
+
+ extend( data, {
+ isTouched: true,
+ isMoved: false,
+ allowTouchCallbacks: true,
+ isScrolling: undefined,
+ startMoving: undefined,
+ } );
+ touches.startX = startX;
+ touches.startY = startY;
+ data.touchStartTime = now();
+ swiper.allowClick = true;
+ swiper.updateSize();
+ swiper.swipeDirection = undefined;
+ if ( params.threshold > 0 ) data.allowThresholdMove = false;
+
+ if ( e.type !== 'touchstart' ) {
+ var preventDefault = true;
+ if ( $targetEl.is( data.focusableElements ) ) preventDefault = false;
+
+ if (
+ document.activeElement &&
+ $( document.activeElement ).is( data.focusableElements ) &&
+ document.activeElement !== $targetEl[ 0 ]
+ ) {
+ document.activeElement.blur();
+ }
+
+ var shouldPreventDefault =
+ preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
+
+ if (
+ ( params.touchStartForcePreventDefault || shouldPreventDefault ) &&
+ ! $targetEl[ 0 ].isContentEditable
+ ) {
+ e.preventDefault();
+ }
+ }
+
+ swiper.emit( 'touchStart', e );
+ }
+
+ function onTouchMove( event ) {
+ var document = getDocument();
+ var swiper = this;
+ var data = swiper.touchEventsData;
+ var params = swiper.params,
+ touches = swiper.touches,
+ rtl = swiper.rtlTranslate,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return;
+ var e = event;
+ if ( e.originalEvent ) e = e.originalEvent;
+
+ if ( ! data.isTouched ) {
+ if ( data.startMoving && data.isScrolling ) {
+ swiper.emit( 'touchMoveOpposite', e );
+ }
+
+ return;
+ }
+
+ if ( data.isTouchEvent && e.type !== 'touchmove' ) return;
+ var targetTouch =
+ e.type === 'touchmove' &&
+ e.targetTouches &&
+ ( e.targetTouches[ 0 ] || e.changedTouches[ 0 ] );
+ var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;
+ var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;
+
+ if ( e.preventedByNestedSwiper ) {
+ touches.startX = pageX;
+ touches.startY = pageY;
+ return;
+ }
+
+ if ( ! swiper.allowTouchMove ) {
+ // isMoved = true;
+ swiper.allowClick = false;
+
+ if ( data.isTouched ) {
+ extend( touches, {
+ startX: pageX,
+ startY: pageY,
+ currentX: pageX,
+ currentY: pageY,
+ } );
+ data.touchStartTime = now();
+ }
+
+ return;
+ }
+
+ if ( data.isTouchEvent && params.touchReleaseOnEdges && ! params.loop ) {
+ if ( swiper.isVertical() ) {
+ // Vertical
+ if (
+ ( pageY < touches.startY && swiper.translate <= swiper.maxTranslate() ) ||
+ ( pageY > touches.startY && swiper.translate >= swiper.minTranslate() )
+ ) {
+ data.isTouched = false;
+ data.isMoved = false;
+ return;
+ }
+ } else if (
+ ( pageX < touches.startX && swiper.translate <= swiper.maxTranslate() ) ||
+ ( pageX > touches.startX && swiper.translate >= swiper.minTranslate() )
+ ) {
+ return;
+ }
+ }
+
+ if ( data.isTouchEvent && document.activeElement ) {
+ if ( e.target === document.activeElement && $( e.target ).is( data.focusableElements ) ) {
+ data.isMoved = true;
+ swiper.allowClick = false;
+ return;
+ }
+ }
+
+ if ( data.allowTouchCallbacks ) {
+ swiper.emit( 'touchMove', e );
+ }
+
+ if ( e.targetTouches && e.targetTouches.length > 1 ) return;
+ touches.currentX = pageX;
+ touches.currentY = pageY;
+ var diffX = touches.currentX - touches.startX;
+ var diffY = touches.currentY - touches.startY;
+ if (
+ swiper.params.threshold &&
+ Math.sqrt( Math.pow( diffX, 2 ) + Math.pow( diffY, 2 ) ) < swiper.params.threshold
+ )
+ return;
+
+ if ( typeof data.isScrolling === 'undefined' ) {
+ var touchAngle;
+
+ if (
+ ( swiper.isHorizontal() && touches.currentY === touches.startY ) ||
+ ( swiper.isVertical() && touches.currentX === touches.startX )
+ ) {
+ data.isScrolling = false;
+ } else {
+ // eslint-disable-next-line
+ if ( diffX * diffX + diffY * diffY >= 25 ) {
+ touchAngle = ( Math.atan2( Math.abs( diffY ), Math.abs( diffX ) ) * 180 ) / Math.PI;
+ data.isScrolling = swiper.isHorizontal()
+ ? touchAngle > params.touchAngle
+ : 90 - touchAngle > params.touchAngle;
+ }
+ }
+ }
+
+ if ( data.isScrolling ) {
+ swiper.emit( 'touchMoveOpposite', e );
+ }
+
+ if ( typeof data.startMoving === 'undefined' ) {
+ if ( touches.currentX !== touches.startX || touches.currentY !== touches.startY ) {
+ data.startMoving = true;
+ }
+ }
+
+ if ( data.isScrolling ) {
+ data.isTouched = false;
+ return;
+ }
+
+ if ( ! data.startMoving ) {
+ return;
+ }
+
+ swiper.allowClick = false;
+
+ if ( ! params.cssMode && e.cancelable ) {
+ e.preventDefault();
+ }
+
+ if ( params.touchMoveStopPropagation && ! params.nested ) {
+ e.stopPropagation();
+ }
+
+ if ( ! data.isMoved ) {
+ if ( params.loop ) {
+ swiper.loopFix();
+ }
+
+ data.startTranslate = swiper.getTranslate();
+ swiper.setTransition( 0 );
+
+ if ( swiper.animating ) {
+ swiper.$wrapperEl.trigger( 'webkitTransitionEnd transitionend' );
+ }
+
+ data.allowMomentumBounce = false; // Grab Cursor
+
+ if (
+ params.grabCursor &&
+ ( swiper.allowSlideNext === true || swiper.allowSlidePrev === true )
+ ) {
+ swiper.setGrabCursor( true );
+ }
+
+ swiper.emit( 'sliderFirstMove', e );
+ }
+
+ swiper.emit( 'sliderMove', e );
+ data.isMoved = true;
+ var diff = swiper.isHorizontal() ? diffX : diffY;
+ touches.diff = diff;
+ diff *= params.touchRatio;
+ if ( rtl ) diff = -diff;
+ swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
+ data.currentTranslate = diff + data.startTranslate;
+ var disableParentSwiper = true;
+ var resistanceRatio = params.resistanceRatio;
+
+ if ( params.touchReleaseOnEdges ) {
+ resistanceRatio = 0;
+ }
+
+ if ( diff > 0 && data.currentTranslate > swiper.minTranslate() ) {
+ disableParentSwiper = false;
+ if ( params.resistance )
+ data.currentTranslate =
+ swiper.minTranslate() -
+ 1 +
+ Math.pow( -swiper.minTranslate() + data.startTranslate + diff, resistanceRatio );
+ } else if ( diff < 0 && data.currentTranslate < swiper.maxTranslate() ) {
+ disableParentSwiper = false;
+ if ( params.resistance )
+ data.currentTranslate =
+ swiper.maxTranslate() +
+ 1 -
+ Math.pow( swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio );
+ }
+
+ if ( disableParentSwiper ) {
+ e.preventedByNestedSwiper = true;
+ } // Directions locks
+
+ if (
+ ! swiper.allowSlideNext &&
+ swiper.swipeDirection === 'next' &&
+ data.currentTranslate < data.startTranslate
+ ) {
+ data.currentTranslate = data.startTranslate;
+ }
+
+ if (
+ ! swiper.allowSlidePrev &&
+ swiper.swipeDirection === 'prev' &&
+ data.currentTranslate > data.startTranslate
+ ) {
+ data.currentTranslate = data.startTranslate;
+ }
+
+ if ( ! swiper.allowSlidePrev && ! swiper.allowSlideNext ) {
+ data.currentTranslate = data.startTranslate;
+ } // Threshold
+
+ if ( params.threshold > 0 ) {
+ if ( Math.abs( diff ) > params.threshold || data.allowThresholdMove ) {
+ if ( ! data.allowThresholdMove ) {
+ data.allowThresholdMove = true;
+ touches.startX = touches.currentX;
+ touches.startY = touches.currentY;
+ data.currentTranslate = data.startTranslate;
+ touches.diff = swiper.isHorizontal()
+ ? touches.currentX - touches.startX
+ : touches.currentY - touches.startY;
+ return;
+ }
+ } else {
+ data.currentTranslate = data.startTranslate;
+ return;
+ }
+ }
+
+ if ( ! params.followFinger || params.cssMode ) return; // Update active index in free mode
+
+ if ( params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility ) {
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ }
+
+ if ( params.freeMode ) {
+ // Velocity
+ if ( data.velocities.length === 0 ) {
+ data.velocities.push( {
+ position: touches[ swiper.isHorizontal() ? 'startX' : 'startY' ],
+ time: data.touchStartTime,
+ } );
+ }
+
+ data.velocities.push( {
+ position: touches[ swiper.isHorizontal() ? 'currentX' : 'currentY' ],
+ time: now(),
+ } );
+ } // Update progress
+
+ swiper.updateProgress( data.currentTranslate ); // Update translate
+
+ swiper.setTranslate( data.currentTranslate );
+ }
+
+ function onTouchEnd( event ) {
+ var swiper = this;
+ var data = swiper.touchEventsData;
+ var params = swiper.params,
+ touches = swiper.touches,
+ rtl = swiper.rtlTranslate,
+ $wrapperEl = swiper.$wrapperEl,
+ slidesGrid = swiper.slidesGrid,
+ snapGrid = swiper.snapGrid,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return;
+ var e = event;
+ if ( e.originalEvent ) e = e.originalEvent;
+
+ if ( data.allowTouchCallbacks ) {
+ swiper.emit( 'touchEnd', e );
+ }
+
+ data.allowTouchCallbacks = false;
+
+ if ( ! data.isTouched ) {
+ if ( data.isMoved && params.grabCursor ) {
+ swiper.setGrabCursor( false );
+ }
+
+ data.isMoved = false;
+ data.startMoving = false;
+ return;
+ } // Return Grab Cursor
+
+ if (
+ params.grabCursor &&
+ data.isMoved &&
+ data.isTouched &&
+ ( swiper.allowSlideNext === true || swiper.allowSlidePrev === true )
+ ) {
+ swiper.setGrabCursor( false );
+ } // Time diff
+
+ var touchEndTime = now();
+ var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click
+
+ if ( swiper.allowClick ) {
+ swiper.updateClickedSlide( e );
+ swiper.emit( 'tap click', e );
+
+ if ( timeDiff < 300 && touchEndTime - data.lastClickTime < 300 ) {
+ swiper.emit( 'doubleTap doubleClick', e );
+ }
+ }
+
+ data.lastClickTime = now();
+ nextTick( function () {
+ if ( ! swiper.destroyed ) swiper.allowClick = true;
+ } );
+
+ if (
+ ! data.isTouched ||
+ ! data.isMoved ||
+ ! swiper.swipeDirection ||
+ touches.diff === 0 ||
+ data.currentTranslate === data.startTranslate
+ ) {
+ data.isTouched = false;
+ data.isMoved = false;
+ data.startMoving = false;
+ return;
+ }
+
+ data.isTouched = false;
+ data.isMoved = false;
+ data.startMoving = false;
+ var currentPos;
+
+ if ( params.followFinger ) {
+ currentPos = rtl ? swiper.translate : -swiper.translate;
+ } else {
+ currentPos = -data.currentTranslate;
+ }
+
+ if ( params.cssMode ) {
+ return;
+ }
+
+ if ( params.freeMode ) {
+ if ( currentPos < -swiper.minTranslate() ) {
+ swiper.slideTo( swiper.activeIndex );
+ return;
+ }
+
+ if ( currentPos > -swiper.maxTranslate() ) {
+ if ( swiper.slides.length < snapGrid.length ) {
+ swiper.slideTo( snapGrid.length - 1 );
+ } else {
+ swiper.slideTo( swiper.slides.length - 1 );
+ }
+
+ return;
+ }
+
+ if ( params.freeModeMomentum ) {
+ if ( data.velocities.length > 1 ) {
+ var lastMoveEvent = data.velocities.pop();
+ var velocityEvent = data.velocities.pop();
+ var distance = lastMoveEvent.position - velocityEvent.position;
+ var time = lastMoveEvent.time - velocityEvent.time;
+ swiper.velocity = distance / time;
+ swiper.velocity /= 2;
+
+ if ( Math.abs( swiper.velocity ) < params.freeModeMinimumVelocity ) {
+ swiper.velocity = 0;
+ } // this implies that the user stopped moving a finger then released.
+ // There would be no events with distance zero, so the last event is stale.
+
+ if ( time > 150 || now() - lastMoveEvent.time > 300 ) {
+ swiper.velocity = 0;
+ }
+ } else {
+ swiper.velocity = 0;
+ }
+
+ swiper.velocity *= params.freeModeMomentumVelocityRatio;
+ data.velocities.length = 0;
+ var momentumDuration = 1000 * params.freeModeMomentumRatio;
+ var momentumDistance = swiper.velocity * momentumDuration;
+ var newPosition = swiper.translate + momentumDistance;
+ if ( rtl ) newPosition = -newPosition;
+ var doBounce = false;
+ var afterBouncePosition;
+ var bounceAmount = Math.abs( swiper.velocity ) * 20 * params.freeModeMomentumBounceRatio;
+ var needsLoopFix;
+
+ if ( newPosition < swiper.maxTranslate() ) {
+ if ( params.freeModeMomentumBounce ) {
+ if ( newPosition + swiper.maxTranslate() < -bounceAmount ) {
+ newPosition = swiper.maxTranslate() - bounceAmount;
+ }
+
+ afterBouncePosition = swiper.maxTranslate();
+ doBounce = true;
+ data.allowMomentumBounce = true;
+ } else {
+ newPosition = swiper.maxTranslate();
+ }
+
+ if ( params.loop && params.centeredSlides ) needsLoopFix = true;
+ } else if ( newPosition > swiper.minTranslate() ) {
+ if ( params.freeModeMomentumBounce ) {
+ if ( newPosition - swiper.minTranslate() > bounceAmount ) {
+ newPosition = swiper.minTranslate() + bounceAmount;
+ }
+
+ afterBouncePosition = swiper.minTranslate();
+ doBounce = true;
+ data.allowMomentumBounce = true;
+ } else {
+ newPosition = swiper.minTranslate();
+ }
+
+ if ( params.loop && params.centeredSlides ) needsLoopFix = true;
+ } else if ( params.freeModeSticky ) {
+ var nextSlide;
+
+ for ( var j = 0; j < snapGrid.length; j += 1 ) {
+ if ( snapGrid[ j ] > -newPosition ) {
+ nextSlide = j;
+ break;
+ }
+ }
+
+ if (
+ Math.abs( snapGrid[ nextSlide ] - newPosition ) <
+ Math.abs( snapGrid[ nextSlide - 1 ] - newPosition ) ||
+ swiper.swipeDirection === 'next'
+ ) {
+ newPosition = snapGrid[ nextSlide ];
+ } else {
+ newPosition = snapGrid[ nextSlide - 1 ];
+ }
+
+ newPosition = -newPosition;
+ }
+
+ if ( needsLoopFix ) {
+ swiper.once( 'transitionEnd', function () {
+ swiper.loopFix();
+ } );
+ } // Fix duration
+
+ if ( swiper.velocity !== 0 ) {
+ if ( rtl ) {
+ momentumDuration = Math.abs( ( -newPosition - swiper.translate ) / swiper.velocity );
+ } else {
+ momentumDuration = Math.abs( ( newPosition - swiper.translate ) / swiper.velocity );
+ }
+
+ if ( params.freeModeSticky ) {
+ // If freeModeSticky is active and the user ends a swipe with a slow-velocity
+ // event, then durations can be 20+ seconds to slide one (or zero!) slides.
+ // It's easy to see this when simulating touch with mouse events. To fix this,
+ // limit single-slide swipes to the default slide duration. This also has the
+ // nice side effect of matching slide speed if the user stopped moving before
+ // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
+ // For faster swipes, also apply limits (albeit higher ones).
+ var moveDistance = Math.abs( ( rtl ? -newPosition : newPosition ) - swiper.translate );
+ var currentSlideSize = swiper.slidesSizesGrid[ swiper.activeIndex ];
+
+ if ( moveDistance < currentSlideSize ) {
+ momentumDuration = params.speed;
+ } else if ( moveDistance < 2 * currentSlideSize ) {
+ momentumDuration = params.speed * 1.5;
+ } else {
+ momentumDuration = params.speed * 2.5;
+ }
+ }
+ } else if ( params.freeModeSticky ) {
+ swiper.slideToClosest();
+ return;
+ }
+
+ if ( params.freeModeMomentumBounce && doBounce ) {
+ swiper.updateProgress( afterBouncePosition );
+ swiper.setTransition( momentumDuration );
+ swiper.setTranslate( newPosition );
+ swiper.transitionStart( true, swiper.swipeDirection );
+ swiper.animating = true;
+ $wrapperEl.transitionEnd( function () {
+ if ( ! swiper || swiper.destroyed || ! data.allowMomentumBounce ) return;
+ swiper.emit( 'momentumBounce' );
+ swiper.setTransition( params.speed );
+ setTimeout( function () {
+ swiper.setTranslate( afterBouncePosition );
+ $wrapperEl.transitionEnd( function () {
+ if ( ! swiper || swiper.destroyed ) return;
+ swiper.transitionEnd();
+ } );
+ }, 0 );
+ } );
+ } else if ( swiper.velocity ) {
+ swiper.updateProgress( newPosition );
+ swiper.setTransition( momentumDuration );
+ swiper.setTranslate( newPosition );
+ swiper.transitionStart( true, swiper.swipeDirection );
+
+ if ( ! swiper.animating ) {
+ swiper.animating = true;
+ $wrapperEl.transitionEnd( function () {
+ if ( ! swiper || swiper.destroyed ) return;
+ swiper.transitionEnd();
+ } );
+ }
+ } else {
+ swiper.emit( '_freeModeNoMomentumRelease' );
+ swiper.updateProgress( newPosition );
+ }
+
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ } else if ( params.freeModeSticky ) {
+ swiper.slideToClosest();
+ return;
+ } else if ( params.freeMode ) {
+ swiper.emit( '_freeModeNoMomentumRelease' );
+ }
+
+ if ( ! params.freeModeMomentum || timeDiff >= params.longSwipesMs ) {
+ swiper.updateProgress();
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ }
+
+ return;
+ } // Find current slide
+
+ var stopIndex = 0;
+ var groupSize = swiper.slidesSizesGrid[ 0 ];
+
+ for (
+ var i = 0;
+ i < slidesGrid.length;
+ i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup
+ ) {
+ var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
+
+ if ( typeof slidesGrid[ i + _increment ] !== 'undefined' ) {
+ if ( currentPos >= slidesGrid[ i ] && currentPos < slidesGrid[ i + _increment ] ) {
+ stopIndex = i;
+ groupSize = slidesGrid[ i + _increment ] - slidesGrid[ i ];
+ }
+ } else if ( currentPos >= slidesGrid[ i ] ) {
+ stopIndex = i;
+ groupSize = slidesGrid[ slidesGrid.length - 1 ] - slidesGrid[ slidesGrid.length - 2 ];
+ }
+ } // Find current slide size
+
+ var ratio = ( currentPos - slidesGrid[ stopIndex ] ) / groupSize;
+ var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
+
+ if ( timeDiff > params.longSwipesMs ) {
+ // Long touches
+ if ( ! params.longSwipes ) {
+ swiper.slideTo( swiper.activeIndex );
+ return;
+ }
+
+ if ( swiper.swipeDirection === 'next' ) {
+ if ( ratio >= params.longSwipesRatio ) swiper.slideTo( stopIndex + increment );
+ else swiper.slideTo( stopIndex );
+ }
+
+ if ( swiper.swipeDirection === 'prev' ) {
+ if ( ratio > 1 - params.longSwipesRatio ) swiper.slideTo( stopIndex + increment );
+ else swiper.slideTo( stopIndex );
+ }
+ } else {
+ // Short swipes
+ if ( ! params.shortSwipes ) {
+ swiper.slideTo( swiper.activeIndex );
+ return;
+ }
+
+ var isNavButtonTarget =
+ swiper.navigation &&
+ ( e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl );
+
+ if ( ! isNavButtonTarget ) {
+ if ( swiper.swipeDirection === 'next' ) {
+ swiper.slideTo( stopIndex + increment );
+ }
+
+ if ( swiper.swipeDirection === 'prev' ) {
+ swiper.slideTo( stopIndex );
+ }
+ } else if ( e.target === swiper.navigation.nextEl ) {
+ swiper.slideTo( stopIndex + increment );
+ } else {
+ swiper.slideTo( stopIndex );
+ }
+ }
+ }
+
+ function onResize() {
+ var swiper = this;
+ var params = swiper.params,
+ el = swiper.el;
+ if ( el && el.offsetWidth === 0 ) return; // Breakpoints
+
+ if ( params.breakpoints ) {
+ swiper.setBreakpoint();
+ } // Save locks
+
+ var allowSlideNext = swiper.allowSlideNext,
+ allowSlidePrev = swiper.allowSlidePrev,
+ snapGrid = swiper.snapGrid; // Disable locks on resize
+
+ swiper.allowSlideNext = true;
+ swiper.allowSlidePrev = true;
+ swiper.updateSize();
+ swiper.updateSlides();
+ swiper.updateSlidesClasses();
+
+ if (
+ ( params.slidesPerView === 'auto' || params.slidesPerView > 1 ) &&
+ swiper.isEnd &&
+ ! swiper.isBeginning &&
+ ! swiper.params.centeredSlides
+ ) {
+ swiper.slideTo( swiper.slides.length - 1, 0, false, true );
+ } else {
+ swiper.slideTo( swiper.activeIndex, 0, false, true );
+ }
+
+ if ( swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused ) {
+ swiper.autoplay.run();
+ } // Return locks after resize
+
+ swiper.allowSlidePrev = allowSlidePrev;
+ swiper.allowSlideNext = allowSlideNext;
+
+ if ( swiper.params.watchOverflow && snapGrid !== swiper.snapGrid ) {
+ swiper.checkOverflow();
+ }
+ }
+
+ function onClick( e ) {
+ var swiper = this;
+ if ( ! swiper.enabled ) return;
+
+ if ( ! swiper.allowClick ) {
+ if ( swiper.params.preventClicks ) e.preventDefault();
+
+ if ( swiper.params.preventClicksPropagation && swiper.animating ) {
+ e.stopPropagation();
+ e.stopImmediatePropagation();
+ }
+ }
+ }
+
+ function onScroll() {
+ var swiper = this;
+ var wrapperEl = swiper.wrapperEl,
+ rtlTranslate = swiper.rtlTranslate,
+ enabled = swiper.enabled;
+ if ( ! enabled ) return;
+ swiper.previousTranslate = swiper.translate;
+
+ if ( swiper.isHorizontal() ) {
+ if ( rtlTranslate ) {
+ swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;
+ } else {
+ swiper.translate = -wrapperEl.scrollLeft;
+ }
+ } else {
+ swiper.translate = -wrapperEl.scrollTop;
+ } // eslint-disable-next-line
+
+ if ( swiper.translate === -0 ) swiper.translate = 0;
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ var newProgress;
+ var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
+
+ if ( translatesDiff === 0 ) {
+ newProgress = 0;
+ } else {
+ newProgress = ( swiper.translate - swiper.minTranslate() ) / translatesDiff;
+ }
+
+ if ( newProgress !== swiper.progress ) {
+ swiper.updateProgress( rtlTranslate ? -swiper.translate : swiper.translate );
+ }
+
+ swiper.emit( 'setTranslate', swiper.translate, false );
+ }
+
+ var dummyEventAttached = false;
+
+ function dummyEventListener() {}
+
+ function attachEvents() {
+ var swiper = this;
+ var document = getDocument();
+ var params = swiper.params,
+ touchEvents = swiper.touchEvents,
+ el = swiper.el,
+ wrapperEl = swiper.wrapperEl,
+ device = swiper.device,
+ support = swiper.support;
+ swiper.onTouchStart = onTouchStart.bind( swiper );
+ swiper.onTouchMove = onTouchMove.bind( swiper );
+ swiper.onTouchEnd = onTouchEnd.bind( swiper );
+
+ if ( params.cssMode ) {
+ swiper.onScroll = onScroll.bind( swiper );
+ }
+
+ swiper.onClick = onClick.bind( swiper );
+ var capture = !! params.nested; // Touch Events
+
+ if ( ! support.touch && support.pointerEvents ) {
+ el.addEventListener( touchEvents.start, swiper.onTouchStart, false );
+ document.addEventListener( touchEvents.move, swiper.onTouchMove, capture );
+ document.addEventListener( touchEvents.end, swiper.onTouchEnd, false );
+ } else {
+ if ( support.touch ) {
+ var passiveListener =
+ touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners
+ ? {
+ passive: true,
+ capture: false,
+ }
+ : false;
+ el.addEventListener( touchEvents.start, swiper.onTouchStart, passiveListener );
+ el.addEventListener(
+ touchEvents.move,
+ swiper.onTouchMove,
+ support.passiveListener
+ ? {
+ passive: false,
+ capture: capture,
+ }
+ : capture
+ );
+ el.addEventListener( touchEvents.end, swiper.onTouchEnd, passiveListener );
+
+ if ( touchEvents.cancel ) {
+ el.addEventListener( touchEvents.cancel, swiper.onTouchEnd, passiveListener );
+ }
+
+ if ( ! dummyEventAttached ) {
+ document.addEventListener( 'touchstart', dummyEventListener );
+ dummyEventAttached = true;
+ }
+ }
+
+ if (
+ ( params.simulateTouch && ! device.ios && ! device.android ) ||
+ ( params.simulateTouch && ! support.touch && device.ios )
+ ) {
+ el.addEventListener( 'mousedown', swiper.onTouchStart, false );
+ document.addEventListener( 'mousemove', swiper.onTouchMove, capture );
+ document.addEventListener( 'mouseup', swiper.onTouchEnd, false );
+ }
+ } // Prevent Links Clicks
+
+ if ( params.preventClicks || params.preventClicksPropagation ) {
+ el.addEventListener( 'click', swiper.onClick, true );
+ }
+
+ if ( params.cssMode ) {
+ wrapperEl.addEventListener( 'scroll', swiper.onScroll );
+ } // Resize handler
+
+ if ( params.updateOnWindowResize ) {
+ swiper.on(
+ device.ios || device.android
+ ? 'resize orientationchange observerUpdate'
+ : 'resize observerUpdate',
+ onResize,
+ true
+ );
+ } else {
+ swiper.on( 'observerUpdate', onResize, true );
+ }
+ }
+
+ function detachEvents() {
+ var swiper = this;
+ var document = getDocument();
+ var params = swiper.params,
+ touchEvents = swiper.touchEvents,
+ el = swiper.el,
+ wrapperEl = swiper.wrapperEl,
+ device = swiper.device,
+ support = swiper.support;
+ var capture = !! params.nested; // Touch Events
+
+ if ( ! support.touch && support.pointerEvents ) {
+ el.removeEventListener( touchEvents.start, swiper.onTouchStart, false );
+ document.removeEventListener( touchEvents.move, swiper.onTouchMove, capture );
+ document.removeEventListener( touchEvents.end, swiper.onTouchEnd, false );
+ } else {
+ if ( support.touch ) {
+ var passiveListener =
+ touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners
+ ? {
+ passive: true,
+ capture: false,
+ }
+ : false;
+ el.removeEventListener( touchEvents.start, swiper.onTouchStart, passiveListener );
+ el.removeEventListener( touchEvents.move, swiper.onTouchMove, capture );
+ el.removeEventListener( touchEvents.end, swiper.onTouchEnd, passiveListener );
+
+ if ( touchEvents.cancel ) {
+ el.removeEventListener( touchEvents.cancel, swiper.onTouchEnd, passiveListener );
+ }
+ }
+
+ if (
+ ( params.simulateTouch && ! device.ios && ! device.android ) ||
+ ( params.simulateTouch && ! support.touch && device.ios )
+ ) {
+ el.removeEventListener( 'mousedown', swiper.onTouchStart, false );
+ document.removeEventListener( 'mousemove', swiper.onTouchMove, capture );
+ document.removeEventListener( 'mouseup', swiper.onTouchEnd, false );
+ }
+ } // Prevent Links Clicks
+
+ if ( params.preventClicks || params.preventClicksPropagation ) {
+ el.removeEventListener( 'click', swiper.onClick, true );
+ }
+
+ if ( params.cssMode ) {
+ wrapperEl.removeEventListener( 'scroll', swiper.onScroll );
+ } // Resize handler
+
+ swiper.off(
+ device.ios || device.android
+ ? 'resize orientationchange observerUpdate'
+ : 'resize observerUpdate',
+ onResize
+ );
+ }
+
+ var events = {
+ attachEvents: attachEvents,
+ detachEvents: detachEvents,
+ };
+
+ function setBreakpoint() {
+ var swiper = this;
+ var activeIndex = swiper.activeIndex,
+ initialized = swiper.initialized,
+ _swiper$loopedSlides = swiper.loopedSlides,
+ loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,
+ params = swiper.params,
+ $el = swiper.$el;
+ var breakpoints = params.breakpoints;
+ if ( ! breakpoints || ( breakpoints && Object.keys( breakpoints ).length === 0 ) ) return; // Get breakpoint for window width and update parameters
+
+ var breakpoint = swiper.getBreakpoint( breakpoints, swiper.params.breakpointsBase, swiper.el );
+ if ( ! breakpoint || swiper.currentBreakpoint === breakpoint ) return;
+ var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[ breakpoint ] : undefined;
+
+ if ( breakpointOnlyParams ) {
+ [
+ 'slidesPerView',
+ 'spaceBetween',
+ 'slidesPerGroup',
+ 'slidesPerGroupSkip',
+ 'slidesPerColumn',
+ ].forEach( function ( param ) {
+ var paramValue = breakpointOnlyParams[ param ];
+ if ( typeof paramValue === 'undefined' ) return;
+
+ if ( param === 'slidesPerView' && ( paramValue === 'AUTO' || paramValue === 'auto' ) ) {
+ breakpointOnlyParams[ param ] = 'auto';
+ } else if ( param === 'slidesPerView' ) {
+ breakpointOnlyParams[ param ] = parseFloat( paramValue );
+ } else {
+ breakpointOnlyParams[ param ] = parseInt( paramValue, 10 );
+ }
+ } );
+ }
+
+ var breakpointParams = breakpointOnlyParams || swiper.originalParams;
+ var wasMultiRow = params.slidesPerColumn > 1;
+ var isMultiRow = breakpointParams.slidesPerColumn > 1;
+ var wasEnabled = params.enabled;
+
+ if ( wasMultiRow && ! isMultiRow ) {
+ $el.removeClass(
+ params.containerModifierClass +
+ 'multirow ' +
+ params.containerModifierClass +
+ 'multirow-column'
+ );
+ swiper.emitContainerClasses();
+ } else if ( ! wasMultiRow && isMultiRow ) {
+ $el.addClass( params.containerModifierClass + 'multirow' );
+
+ if ( breakpointParams.slidesPerColumnFill === 'column' ) {
+ $el.addClass( params.containerModifierClass + 'multirow-column' );
+ }
+
+ swiper.emitContainerClasses();
+ }
+
+ var directionChanged =
+ breakpointParams.direction && breakpointParams.direction !== params.direction;
+ var needsReLoop =
+ params.loop &&
+ ( breakpointParams.slidesPerView !== params.slidesPerView || directionChanged );
+
+ if ( directionChanged && initialized ) {
+ swiper.changeDirection();
+ }
+
+ extend( swiper.params, breakpointParams );
+ var isEnabled = swiper.params.enabled;
+ extend( swiper, {
+ allowTouchMove: swiper.params.allowTouchMove,
+ allowSlideNext: swiper.params.allowSlideNext,
+ allowSlidePrev: swiper.params.allowSlidePrev,
+ } );
+
+ if ( wasEnabled && ! isEnabled ) {
+ swiper.disable();
+ } else if ( ! wasEnabled && isEnabled ) {
+ swiper.enable();
+ }
+
+ swiper.currentBreakpoint = breakpoint;
+ swiper.emit( '_beforeBreakpoint', breakpointParams );
+
+ if ( needsReLoop && initialized ) {
+ swiper.loopDestroy();
+ swiper.loopCreate();
+ swiper.updateSlides();
+ swiper.slideTo( activeIndex - loopedSlides + swiper.loopedSlides, 0, false );
+ }
+
+ swiper.emit( 'breakpoint', breakpointParams );
+ }
+
+ function getBreakpoint( breakpoints, base, containerEl ) {
+ if ( base === void 0 ) {
+ base = 'window';
+ }
+
+ if ( ! breakpoints || ( base === 'container' && ! containerEl ) ) return undefined;
+ var breakpoint = false;
+ var window = getWindow();
+ var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
+ var points = Object.keys( breakpoints ).map( function ( point ) {
+ if ( typeof point === 'string' && point.indexOf( '@' ) === 0 ) {
+ var minRatio = parseFloat( point.substr( 1 ) );
+ var value = currentHeight * minRatio;
+ return {
+ value: value,
+ point: point,
+ };
+ }
+
+ return {
+ value: point,
+ point: point,
+ };
+ } );
+ points.sort( function ( a, b ) {
+ return parseInt( a.value, 10 ) - parseInt( b.value, 10 );
+ } );
+
+ for ( var i = 0; i < points.length; i += 1 ) {
+ var _points$i = points[ i ],
+ point = _points$i.point,
+ value = _points$i.value;
+
+ if ( base === 'window' ) {
+ if ( window.matchMedia( '(min-width: ' + value + 'px)' ).matches ) {
+ breakpoint = point;
+ }
+ } else if ( value <= containerEl.clientWidth ) {
+ breakpoint = point;
+ }
+ }
+
+ return breakpoint || 'max';
+ }
+
+ var breakpoints = {
+ setBreakpoint: setBreakpoint,
+ getBreakpoint: getBreakpoint,
+ };
+
+ function prepareClasses( entries, prefix ) {
+ var resultClasses = [];
+ entries.forEach( function ( item ) {
+ if ( typeof item === 'object' ) {
+ Object.keys( item ).forEach( function ( classNames ) {
+ if ( item[ classNames ] ) {
+ resultClasses.push( prefix + classNames );
+ }
+ } );
+ } else if ( typeof item === 'string' ) {
+ resultClasses.push( prefix + item );
+ }
+ } );
+ return resultClasses;
+ }
+
+ function addClasses() {
+ var swiper = this;
+ var classNames = swiper.classNames,
+ params = swiper.params,
+ rtl = swiper.rtl,
+ $el = swiper.$el,
+ device = swiper.device,
+ support = swiper.support; // prettier-ignore
+
+ var suffixes = prepareClasses(
+ [
+ 'initialized',
+ params.direction,
+ {
+ 'pointer-events': support.pointerEvents && ! support.touch,
+ },
+ {
+ 'free-mode': params.freeMode,
+ },
+ {
+ autoheight: params.autoHeight,
+ },
+ {
+ rtl: rtl,
+ },
+ {
+ multirow: params.slidesPerColumn > 1,
+ },
+ {
+ 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column',
+ },
+ {
+ android: device.android,
+ },
+ {
+ ios: device.ios,
+ },
+ {
+ 'css-mode': params.cssMode,
+ },
+ ],
+ params.containerModifierClass
+ );
+ classNames.push.apply( classNames, suffixes );
+ $el.addClass( [].concat( classNames ).join( ' ' ) );
+ swiper.emitContainerClasses();
+ }
+
+ function removeClasses() {
+ var swiper = this;
+ var $el = swiper.$el,
+ classNames = swiper.classNames;
+ $el.removeClass( classNames.join( ' ' ) );
+ swiper.emitContainerClasses();
+ }
+
+ var classes = {
+ addClasses: addClasses,
+ removeClasses: removeClasses,
+ };
+
+ function loadImage( imageEl, src, srcset, sizes, checkForComplete, callback ) {
+ var window = getWindow();
+ var image;
+
+ function onReady() {
+ if ( callback ) callback();
+ }
+
+ var isPicture = $( imageEl ).parent( 'picture' )[ 0 ];
+
+ if ( ! isPicture && ( ! imageEl.complete || ! checkForComplete ) ) {
+ if ( src ) {
+ image = new window.Image();
+ image.onload = onReady;
+ image.onerror = onReady;
+
+ if ( sizes ) {
+ image.sizes = sizes;
+ }
+
+ if ( srcset ) {
+ image.srcset = srcset;
+ }
+
+ if ( src ) {
+ image.src = src;
+ }
+ } else {
+ onReady();
+ }
+ } else {
+ // image already loaded...
+ onReady();
+ }
+ }
+
+ function preloadImages() {
+ var swiper = this;
+ swiper.imagesToLoad = swiper.$el.find( 'img' );
+
+ function onReady() {
+ if ( typeof swiper === 'undefined' || swiper === null || ! swiper || swiper.destroyed )
+ return;
+ if ( swiper.imagesLoaded !== undefined ) swiper.imagesLoaded += 1;
+
+ if ( swiper.imagesLoaded === swiper.imagesToLoad.length ) {
+ if ( swiper.params.updateOnImagesReady ) swiper.update();
+ swiper.emit( 'imagesReady' );
+ }
+ }
+
+ for ( var i = 0; i < swiper.imagesToLoad.length; i += 1 ) {
+ var imageEl = swiper.imagesToLoad[ i ];
+ swiper.loadImage(
+ imageEl,
+ imageEl.currentSrc || imageEl.getAttribute( 'src' ),
+ imageEl.srcset || imageEl.getAttribute( 'srcset' ),
+ imageEl.sizes || imageEl.getAttribute( 'sizes' ),
+ true,
+ onReady
+ );
+ }
+ }
+
+ var images = {
+ loadImage: loadImage,
+ preloadImages: preloadImages,
+ };
+
+ function checkOverflow() {
+ var swiper = this;
+ var params = swiper.params;
+ var wasLocked = swiper.isLocked;
+ var lastSlidePosition =
+ swiper.slides.length > 0 &&
+ params.slidesOffsetBefore +
+ params.spaceBetween * ( swiper.slides.length - 1 ) +
+ swiper.slides[ 0 ].offsetWidth * swiper.slides.length;
+
+ if ( params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition ) {
+ swiper.isLocked = lastSlidePosition <= swiper.size;
+ } else {
+ swiper.isLocked = swiper.snapGrid.length === 1;
+ }
+
+ swiper.allowSlideNext = ! swiper.isLocked;
+ swiper.allowSlidePrev = ! swiper.isLocked; // events
+
+ if ( wasLocked !== swiper.isLocked ) swiper.emit( swiper.isLocked ? 'lock' : 'unlock' );
+
+ if ( wasLocked && wasLocked !== swiper.isLocked ) {
+ swiper.isEnd = false;
+ if ( swiper.navigation ) swiper.navigation.update();
+ }
+ }
+
+ var checkOverflow$1 = {
+ checkOverflow: checkOverflow,
+ };
+
+ var defaults = {
+ init: true,
+ direction: 'horizontal',
+ touchEventsTarget: 'container',
+ initialSlide: 0,
+ speed: 300,
+ cssMode: false,
+ updateOnWindowResize: true,
+ resizeObserver: false,
+ nested: false,
+ createElements: false,
+ enabled: true,
+ focusableElements: 'input, select, option, textarea, button, video, label',
+ // Overrides
+ width: null,
+ height: null,
+ //
+ preventInteractionOnTransition: false,
+ // ssr
+ userAgent: null,
+ url: null,
+ // To support iOS's swipe-to-go-back gesture (when being used in-app).
+ edgeSwipeDetection: false,
+ edgeSwipeThreshold: 20,
+ // Free mode
+ freeMode: false,
+ freeModeMomentum: true,
+ freeModeMomentumRatio: 1,
+ freeModeMomentumBounce: true,
+ freeModeMomentumBounceRatio: 1,
+ freeModeMomentumVelocityRatio: 1,
+ freeModeSticky: false,
+ freeModeMinimumVelocity: 0.02,
+ // Autoheight
+ autoHeight: false,
+ // Set wrapper width
+ setWrapperSize: false,
+ // Virtual Translate
+ virtualTranslate: false,
+ // Effects
+ effect: 'slide',
+ // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
+ // Breakpoints
+ breakpoints: undefined,
+ breakpointsBase: 'window',
+ // Slides grid
+ spaceBetween: 0,
+ slidesPerView: 1,
+ slidesPerColumn: 1,
+ slidesPerColumnFill: 'column',
+ slidesPerGroup: 1,
+ slidesPerGroupSkip: 0,
+ centeredSlides: false,
+ centeredSlidesBounds: false,
+ slidesOffsetBefore: 0,
+ // in px
+ slidesOffsetAfter: 0,
+ // in px
+ normalizeSlideIndex: true,
+ centerInsufficientSlides: false,
+ // Disable swiper and hide navigation when container not overflow
+ watchOverflow: false,
+ // Round length
+ roundLengths: false,
+ // Touches
+ touchRatio: 1,
+ touchAngle: 45,
+ simulateTouch: true,
+ shortSwipes: true,
+ longSwipes: true,
+ longSwipesRatio: 0.5,
+ longSwipesMs: 300,
+ followFinger: true,
+ allowTouchMove: true,
+ threshold: 0,
+ touchMoveStopPropagation: false,
+ touchStartPreventDefault: true,
+ touchStartForcePreventDefault: false,
+ touchReleaseOnEdges: false,
+ // Unique Navigation Elements
+ uniqueNavElements: true,
+ // Resistance
+ resistance: true,
+ resistanceRatio: 0.85,
+ // Progress
+ watchSlidesProgress: false,
+ watchSlidesVisibility: false,
+ // Cursor
+ grabCursor: false,
+ // Clicks
+ preventClicks: true,
+ preventClicksPropagation: true,
+ slideToClickedSlide: false,
+ // Images
+ preloadImages: true,
+ updateOnImagesReady: true,
+ // loop
+ loop: false,
+ loopAdditionalSlides: 0,
+ loopedSlides: null,
+ loopFillGroupWithBlank: false,
+ loopPreventsSlide: true,
+ // Swiping/no swiping
+ allowSlidePrev: true,
+ allowSlideNext: true,
+ swipeHandler: null,
+ // '.swipe-handler',
+ noSwiping: true,
+ noSwipingClass: 'swiper-no-swiping',
+ noSwipingSelector: null,
+ // Passive Listeners
+ passiveListeners: true,
+ // NS
+ containerModifierClass: 'swiper-container-',
+ // NEW
+ slideClass: 'swiper-slide',
+ slideBlankClass: 'swiper-slide-invisible-blank',
+ slideActiveClass: 'swiper-slide-active',
+ slideDuplicateActiveClass: 'swiper-slide-duplicate-active',
+ slideVisibleClass: 'swiper-slide-visible',
+ slideDuplicateClass: 'swiper-slide-duplicate',
+ slideNextClass: 'swiper-slide-next',
+ slideDuplicateNextClass: 'swiper-slide-duplicate-next',
+ slidePrevClass: 'swiper-slide-prev',
+ slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',
+ wrapperClass: 'swiper-wrapper',
+ // Callbacks
+ runCallbacksOnInit: true,
+ // Internals
+ _emitClasses: false,
+ };
+
+ var prototypes = {
+ modular: modular,
+ eventsEmitter: eventsEmitter,
+ update: update,
+ translate: translate,
+ transition: transition,
+ slide: slide,
+ loop: loop,
+ grabCursor: grabCursor,
+ manipulation: manipulation,
+ events: events,
+ breakpoints: breakpoints,
+ checkOverflow: checkOverflow$1,
+ classes: classes,
+ images: images,
+ };
+ var extendedDefaults = {};
+
+ var Swiper = /*#__PURE__*/ ( function () {
+ function Swiper() {
+ var el;
+ var params;
+
+ for ( var _len = arguments.length, args = new Array( _len ), _key = 0; _key < _len; _key++ ) {
+ args[ _key ] = arguments[ _key ];
+ }
+
+ if (
+ args.length === 1 &&
+ args[ 0 ].constructor &&
+ Object.prototype.toString.call( args[ 0 ] ).slice( 8, -1 ) === 'Object'
+ ) {
+ params = args[ 0 ];
+ } else {
+ el = args[ 0 ];
+ params = args[ 1 ];
+ }
+
+ if ( ! params ) params = {};
+ params = extend( {}, params );
+ if ( el && ! params.el ) params.el = el;
+
+ if ( params.el && $( params.el ).length > 1 ) {
+ var swipers = [];
+ $( params.el ).each( function ( containerEl ) {
+ var newParams = extend( {}, params, {
+ el: containerEl,
+ } );
+ swipers.push( new Swiper( newParams ) );
+ } );
+ return swipers;
+ } // Swiper Instance
+
+ var swiper = this;
+ swiper.__swiper__ = true;
+ swiper.support = getSupport();
+ swiper.device = getDevice( {
+ userAgent: params.userAgent,
+ } );
+ swiper.browser = getBrowser();
+ swiper.eventsListeners = {};
+ swiper.eventsAnyListeners = [];
+
+ if ( typeof swiper.modules === 'undefined' ) {
+ swiper.modules = {};
+ }
+
+ Object.keys( swiper.modules ).forEach( function ( moduleName ) {
+ var module = swiper.modules[ moduleName ];
+
+ if ( module.params ) {
+ var moduleParamName = Object.keys( module.params )[ 0 ];
+ var moduleParams = module.params[ moduleParamName ];
+ if ( typeof moduleParams !== 'object' || moduleParams === null ) return;
+
+ if (
+ [ 'navigation', 'pagination', 'scrollbar' ].indexOf( moduleParamName ) >= 0 &&
+ params[ moduleParamName ] === true
+ ) {
+ params[ moduleParamName ] = {
+ auto: true,
+ };
+ }
+
+ if ( ! ( moduleParamName in params && 'enabled' in moduleParams ) ) return;
+
+ if ( params[ moduleParamName ] === true ) {
+ params[ moduleParamName ] = {
+ enabled: true,
+ };
+ }
+
+ if (
+ typeof params[ moduleParamName ] === 'object' &&
+ ! ( 'enabled' in params[ moduleParamName ] )
+ ) {
+ params[ moduleParamName ].enabled = true;
+ }
+
+ if ( ! params[ moduleParamName ] )
+ params[ moduleParamName ] = {
+ enabled: false,
+ };
+ }
+ } ); // Extend defaults with modules params
+
+ var swiperParams = extend( {}, defaults );
+ swiper.useParams( swiperParams ); // Extend defaults with passed params
+
+ swiper.params = extend( {}, swiperParams, extendedDefaults, params );
+ swiper.originalParams = extend( {}, swiper.params );
+ swiper.passedParams = extend( {}, params ); // add event listeners
+
+ if ( swiper.params && swiper.params.on ) {
+ Object.keys( swiper.params.on ).forEach( function ( eventName ) {
+ swiper.on( eventName, swiper.params.on[ eventName ] );
+ } );
+ }
+
+ if ( swiper.params && swiper.params.onAny ) {
+ swiper.onAny( swiper.params.onAny );
+ } // Save Dom lib
+
+ swiper.$ = $; // Extend Swiper
+
+ extend( swiper, {
+ enabled: swiper.params.enabled,
+ el: el,
+ // Classes
+ classNames: [],
+ // Slides
+ slides: $(),
+ slidesGrid: [],
+ snapGrid: [],
+ slidesSizesGrid: [],
+ // isDirection
+ isHorizontal: function isHorizontal() {
+ return swiper.params.direction === 'horizontal';
+ },
+ isVertical: function isVertical() {
+ return swiper.params.direction === 'vertical';
+ },
+ // Indexes
+ activeIndex: 0,
+ realIndex: 0,
+ //
+ isBeginning: true,
+ isEnd: false,
+ // Props
+ translate: 0,
+ previousTranslate: 0,
+ progress: 0,
+ velocity: 0,
+ animating: false,
+ // Locks
+ allowSlideNext: swiper.params.allowSlideNext,
+ allowSlidePrev: swiper.params.allowSlidePrev,
+ // Touch Events
+ touchEvents: ( function touchEvents() {
+ var touch = [ 'touchstart', 'touchmove', 'touchend', 'touchcancel' ];
+ var desktop = [ 'mousedown', 'mousemove', 'mouseup' ];
+
+ if ( swiper.support.pointerEvents ) {
+ desktop = [ 'pointerdown', 'pointermove', 'pointerup' ];
+ }
+
+ swiper.touchEventsTouch = {
+ start: touch[ 0 ],
+ move: touch[ 1 ],
+ end: touch[ 2 ],
+ cancel: touch[ 3 ],
+ };
+ swiper.touchEventsDesktop = {
+ start: desktop[ 0 ],
+ move: desktop[ 1 ],
+ end: desktop[ 2 ],
+ };
+ return swiper.support.touch || ! swiper.params.simulateTouch
+ ? swiper.touchEventsTouch
+ : swiper.touchEventsDesktop;
+ } )(),
+ touchEventsData: {
+ isTouched: undefined,
+ isMoved: undefined,
+ allowTouchCallbacks: undefined,
+ touchStartTime: undefined,
+ isScrolling: undefined,
+ currentTranslate: undefined,
+ startTranslate: undefined,
+ allowThresholdMove: undefined,
+ // Form elements to match
+ focusableElements: swiper.params.focusableElements,
+ // Last click time
+ lastClickTime: now(),
+ clickTimeout: undefined,
+ // Velocities
+ velocities: [],
+ allowMomentumBounce: undefined,
+ isTouchEvent: undefined,
+ startMoving: undefined,
+ },
+ // Clicks
+ allowClick: true,
+ // Touches
+ allowTouchMove: swiper.params.allowTouchMove,
+ touches: {
+ startX: 0,
+ startY: 0,
+ currentX: 0,
+ currentY: 0,
+ diff: 0,
+ },
+ // Images
+ imagesToLoad: [],
+ imagesLoaded: 0,
+ } ); // Install Modules
+
+ swiper.useModules();
+ swiper.emit( '_swiper' ); // Init
+
+ if ( swiper.params.init ) {
+ swiper.init();
+ } // Return app instance
+
+ return swiper;
+ }
+
+ var _proto = Swiper.prototype;
+
+ _proto.enable = function enable() {
+ var swiper = this;
+ if ( swiper.enabled ) return;
+ swiper.enabled = true;
+
+ if ( swiper.params.grabCursor ) {
+ swiper.setGrabCursor();
+ }
+
+ swiper.emit( 'enable' );
+ };
+
+ _proto.disable = function disable() {
+ var swiper = this;
+ if ( ! swiper.enabled ) return;
+ swiper.enabled = false;
+
+ if ( swiper.params.grabCursor ) {
+ swiper.unsetGrabCursor();
+ }
+
+ swiper.emit( 'disable' );
+ };
+
+ _proto.setProgress = function setProgress( progress, speed ) {
+ var swiper = this;
+ progress = Math.min( Math.max( progress, 0 ), 1 );
+ var min = swiper.minTranslate();
+ var max = swiper.maxTranslate();
+ var current = ( max - min ) * progress + min;
+ swiper.translateTo( current, typeof speed === 'undefined' ? 0 : speed );
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ };
+
+ _proto.emitContainerClasses = function emitContainerClasses() {
+ var swiper = this;
+ if ( ! swiper.params._emitClasses || ! swiper.el ) return;
+ var classes = swiper.el.className.split( ' ' ).filter( function ( className ) {
+ return (
+ className.indexOf( 'swiper-container' ) === 0 ||
+ className.indexOf( swiper.params.containerModifierClass ) === 0
+ );
+ } );
+ swiper.emit( '_containerClasses', classes.join( ' ' ) );
+ };
+
+ _proto.getSlideClasses = function getSlideClasses( slideEl ) {
+ var swiper = this;
+ return slideEl.className
+ .split( ' ' )
+ .filter( function ( className ) {
+ return (
+ className.indexOf( 'swiper-slide' ) === 0 ||
+ className.indexOf( swiper.params.slideClass ) === 0
+ );
+ } )
+ .join( ' ' );
+ };
+
+ _proto.emitSlidesClasses = function emitSlidesClasses() {
+ var swiper = this;
+ if ( ! swiper.params._emitClasses || ! swiper.el ) return;
+ var updates = [];
+ swiper.slides.each( function ( slideEl ) {
+ var classNames = swiper.getSlideClasses( slideEl );
+ updates.push( {
+ slideEl: slideEl,
+ classNames: classNames,
+ } );
+ swiper.emit( '_slideClass', slideEl, classNames );
+ } );
+ swiper.emit( '_slideClasses', updates );
+ };
+
+ _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {
+ var swiper = this;
+ var params = swiper.params,
+ slides = swiper.slides,
+ slidesGrid = swiper.slidesGrid,
+ swiperSize = swiper.size,
+ activeIndex = swiper.activeIndex;
+ var spv = 1;
+
+ if ( params.centeredSlides ) {
+ var slideSize = slides[ activeIndex ].swiperSlideSize;
+ var breakLoop;
+
+ for ( var i = activeIndex + 1; i < slides.length; i += 1 ) {
+ if ( slides[ i ] && ! breakLoop ) {
+ slideSize += slides[ i ].swiperSlideSize;
+ spv += 1;
+ if ( slideSize > swiperSize ) breakLoop = true;
+ }
+ }
+
+ for ( var _i = activeIndex - 1; _i >= 0; _i -= 1 ) {
+ if ( slides[ _i ] && ! breakLoop ) {
+ slideSize += slides[ _i ].swiperSlideSize;
+ spv += 1;
+ if ( slideSize > swiperSize ) breakLoop = true;
+ }
+ }
+ } else {
+ for ( var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1 ) {
+ if ( slidesGrid[ _i2 ] - slidesGrid[ activeIndex ] < swiperSize ) {
+ spv += 1;
+ }
+ }
+ }
+
+ return spv;
+ };
+
+ _proto.update = function update() {
+ var swiper = this;
+ if ( ! swiper || swiper.destroyed ) return;
+ var snapGrid = swiper.snapGrid,
+ params = swiper.params; // Breakpoints
+
+ if ( params.breakpoints ) {
+ swiper.setBreakpoint();
+ }
+
+ swiper.updateSize();
+ swiper.updateSlides();
+ swiper.updateProgress();
+ swiper.updateSlidesClasses();
+
+ function setTranslate() {
+ var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
+ var newTranslate = Math.min(
+ Math.max( translateValue, swiper.maxTranslate() ),
+ swiper.minTranslate()
+ );
+ swiper.setTranslate( newTranslate );
+ swiper.updateActiveIndex();
+ swiper.updateSlidesClasses();
+ }
+
+ var translated;
+
+ if ( swiper.params.freeMode ) {
+ setTranslate();
+
+ if ( swiper.params.autoHeight ) {
+ swiper.updateAutoHeight();
+ }
+ } else {
+ if (
+ ( swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1 ) &&
+ swiper.isEnd &&
+ ! swiper.params.centeredSlides
+ ) {
+ translated = swiper.slideTo( swiper.slides.length - 1, 0, false, true );
+ } else {
+ translated = swiper.slideTo( swiper.activeIndex, 0, false, true );
+ }
+
+ if ( ! translated ) {
+ setTranslate();
+ }
+ }
+
+ if ( params.watchOverflow && snapGrid !== swiper.snapGrid ) {
+ swiper.checkOverflow();
+ }
+
+ swiper.emit( 'update' );
+ };
+
+ _proto.changeDirection = function changeDirection( newDirection, needUpdate ) {
+ if ( needUpdate === void 0 ) {
+ needUpdate = true;
+ }
+
+ var swiper = this;
+ var currentDirection = swiper.params.direction;
+
+ if ( ! newDirection ) {
+ // eslint-disable-next-line
+ newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
+ }
+
+ if (
+ newDirection === currentDirection ||
+ ( newDirection !== 'horizontal' && newDirection !== 'vertical' )
+ ) {
+ return swiper;
+ }
+
+ swiper.$el
+ .removeClass( '' + swiper.params.containerModifierClass + currentDirection )
+ .addClass( '' + swiper.params.containerModifierClass + newDirection );
+ swiper.emitContainerClasses();
+ swiper.params.direction = newDirection;
+ swiper.slides.each( function ( slideEl ) {
+ if ( newDirection === 'vertical' ) {
+ slideEl.style.width = '';
+ } else {
+ slideEl.style.height = '';
+ }
+ } );
+ swiper.emit( 'changeDirection' );
+ if ( needUpdate ) swiper.update();
+ return swiper;
+ };
+
+ _proto.mount = function mount( el ) {
+ var swiper = this;
+ if ( swiper.mounted ) return true; // Find el
+
+ var $el = $( el || swiper.params.el );
+ el = $el[ 0 ];
+
+ if ( ! el ) {
+ return false;
+ }
+
+ el.swiper = swiper;
+
+ var getWrapperSelector = function getWrapperSelector() {
+ return '.' + ( swiper.params.wrapperClass || '' ).trim().split( ' ' ).join( '.' );
+ };
+
+ var getWrapper = function getWrapper() {
+ if ( el && el.shadowRoot && el.shadowRoot.querySelector ) {
+ var res = $( el.shadowRoot.querySelector( getWrapperSelector() ) ); // Children needs to return slot items
+
+ res.children = function ( options ) {
+ return $el.children( options );
+ };
+
+ return res;
+ }
+
+ return $el.children( getWrapperSelector() );
+ }; // Find Wrapper
+
+ var $wrapperEl = getWrapper();
+
+ if ( $wrapperEl.length === 0 && swiper.params.createElements ) {
+ var document = getDocument();
+ var wrapper = document.createElement( 'div' );
+ $wrapperEl = $( wrapper );
+ wrapper.className = swiper.params.wrapperClass;
+ $el.append( wrapper );
+ $el.children( '.' + swiper.params.slideClass ).each( function ( slideEl ) {
+ $wrapperEl.append( slideEl );
+ } );
+ }
+
+ extend( swiper, {
+ $el: $el,
+ el: el,
+ $wrapperEl: $wrapperEl,
+ wrapperEl: $wrapperEl[ 0 ],
+ mounted: true,
+ // RTL
+ rtl: el.dir.toLowerCase() === 'rtl' || $el.css( 'direction' ) === 'rtl',
+ rtlTranslate:
+ swiper.params.direction === 'horizontal' &&
+ ( el.dir.toLowerCase() === 'rtl' || $el.css( 'direction' ) === 'rtl' ),
+ wrongRTL: $wrapperEl.css( 'display' ) === '-webkit-box',
+ } );
+ return true;
+ };
+
+ _proto.init = function init( el ) {
+ var swiper = this;
+ if ( swiper.initialized ) return swiper;
+ var mounted = swiper.mount( el );
+ if ( mounted === false ) return swiper;
+ swiper.emit( 'beforeInit' ); // Set breakpoint
+
+ if ( swiper.params.breakpoints ) {
+ swiper.setBreakpoint();
+ } // Add Classes
+
+ swiper.addClasses(); // Create loop
+
+ if ( swiper.params.loop ) {
+ swiper.loopCreate();
+ } // Update size
+
+ swiper.updateSize(); // Update slides
+
+ swiper.updateSlides();
+
+ if ( swiper.params.watchOverflow ) {
+ swiper.checkOverflow();
+ } // Set Grab Cursor
+
+ if ( swiper.params.grabCursor && swiper.enabled ) {
+ swiper.setGrabCursor();
+ }
+
+ if ( swiper.params.preloadImages ) {
+ swiper.preloadImages();
+ } // Slide To Initial Slide
+
+ if ( swiper.params.loop ) {
+ swiper.slideTo(
+ swiper.params.initialSlide + swiper.loopedSlides,
+ 0,
+ swiper.params.runCallbacksOnInit,
+ false,
+ true
+ );
+ } else {
+ swiper.slideTo(
+ swiper.params.initialSlide,
+ 0,
+ swiper.params.runCallbacksOnInit,
+ false,
+ true
+ );
+ } // Attach events
+
+ swiper.attachEvents(); // Init Flag
+
+ swiper.initialized = true; // Emit
+
+ swiper.emit( 'init' );
+ swiper.emit( 'afterInit' );
+ return swiper;
+ };
+
+ _proto.destroy = function destroy( deleteInstance, cleanStyles ) {
+ if ( deleteInstance === void 0 ) {
+ deleteInstance = true;
+ }
+
+ if ( cleanStyles === void 0 ) {
+ cleanStyles = true;
+ }
+
+ var swiper = this;
+ var params = swiper.params,
+ $el = swiper.$el,
+ $wrapperEl = swiper.$wrapperEl,
+ slides = swiper.slides;
+
+ if ( typeof swiper.params === 'undefined' || swiper.destroyed ) {
+ return null;
+ }
+
+ swiper.emit( 'beforeDestroy' ); // Init Flag
+
+ swiper.initialized = false; // Detach events
+
+ swiper.detachEvents(); // Destroy loop
+
+ if ( params.loop ) {
+ swiper.loopDestroy();
+ } // Cleanup styles
+
+ if ( cleanStyles ) {
+ swiper.removeClasses();
+ $el.removeAttr( 'style' );
+ $wrapperEl.removeAttr( 'style' );
+
+ if ( slides && slides.length ) {
+ slides
+ .removeClass(
+ [
+ params.slideVisibleClass,
+ params.slideActiveClass,
+ params.slideNextClass,
+ params.slidePrevClass,
+ ].join( ' ' )
+ )
+ .removeAttr( 'style' )
+ .removeAttr( 'data-swiper-slide-index' );
+ }
+ }
+
+ swiper.emit( 'destroy' ); // Detach emitter events
+
+ Object.keys( swiper.eventsListeners ).forEach( function ( eventName ) {
+ swiper.off( eventName );
+ } );
+
+ if ( deleteInstance !== false ) {
+ swiper.$el[ 0 ].swiper = null;
+ deleteProps( swiper );
+ }
+
+ swiper.destroyed = true;
+ return null;
+ };
+
+ Swiper.extendDefaults = function extendDefaults( newDefaults ) {
+ extend( extendedDefaults, newDefaults );
+ };
+
+ Swiper.installModule = function installModule( module ) {
+ if ( ! Swiper.prototype.modules ) Swiper.prototype.modules = {};
+ var name = module.name || Object.keys( Swiper.prototype.modules ).length + '_' + now();
+ Swiper.prototype.modules[ name ] = module;
+ };
+
+ Swiper.use = function use( module ) {
+ if ( Array.isArray( module ) ) {
+ module.forEach( function ( m ) {
+ return Swiper.installModule( m );
+ } );
+ return Swiper;
+ }
+
+ Swiper.installModule( module );
+ return Swiper;
+ };
+
+ _createClass( Swiper, null, [
+ {
+ key: 'extendedDefaults',
+ get: function get() {
+ return extendedDefaults;
+ },
+ },
+ {
+ key: 'defaults',
+ get: function get() {
+ return defaults;
+ },
+ },
+ ] );
+
+ return Swiper;
+ } )();
+
+ Object.keys( prototypes ).forEach( function ( prototypeGroup ) {
+ Object.keys( prototypes[ prototypeGroup ] ).forEach( function ( protoMethod ) {
+ Swiper.prototype[ protoMethod ] = prototypes[ prototypeGroup ][ protoMethod ];
+ } );
+ } );
+ Swiper.use( [ Resize, Observer$1 ] );
+
+ var Navigation = {
+ toggleEl: function toggleEl( $el, disabled ) {
+ $el[ disabled ? 'addClass' : 'removeClass' ]( this.params.navigation.disabledClass );
+ if ( $el[ 0 ] && $el[ 0 ].tagName === 'BUTTON' ) $el[ 0 ].disabled = disabled;
+ },
+ update: function update() {
+ // Update Navigation Buttons
+ var swiper = this;
+ var params = swiper.params.navigation;
+ var toggleEl = swiper.navigation.toggleEl;
+ if ( swiper.params.loop ) return;
+ var _swiper$navigation = swiper.navigation,
+ $nextEl = _swiper$navigation.$nextEl,
+ $prevEl = _swiper$navigation.$prevEl;
+
+ if ( $prevEl && $prevEl.length > 0 ) {
+ if ( swiper.isBeginning ) {
+ toggleEl( $prevEl, true );
+ } else {
+ toggleEl( $prevEl, false );
+ }
+
+ if ( swiper.params.watchOverflow && swiper.enabled ) {
+ $prevEl[ swiper.isLocked ? 'addClass' : 'removeClass' ]( params.lockClass );
+ }
+ }
+
+ if ( $nextEl && $nextEl.length > 0 ) {
+ if ( swiper.isEnd ) {
+ toggleEl( $nextEl, true );
+ } else {
+ toggleEl( $nextEl, false );
+ }
+
+ if ( swiper.params.watchOverflow && swiper.enabled ) {
+ $nextEl[ swiper.isLocked ? 'addClass' : 'removeClass' ]( params.lockClass );
+ }
+ }
+ },
+ onPrevClick: function onPrevClick( e ) {
+ var swiper = this;
+ e.preventDefault();
+ if ( swiper.isBeginning && ! swiper.params.loop ) return;
+ swiper.slidePrev();
+ },
+ onNextClick: function onNextClick( e ) {
+ var swiper = this;
+ e.preventDefault();
+ if ( swiper.isEnd && ! swiper.params.loop ) return;
+ swiper.slideNext();
+ },
+ init: function init() {
+ var swiper = this;
+ var params = swiper.params.navigation;
+ swiper.params.navigation = createElementIfNotDefined(
+ swiper.$el,
+ swiper.params.navigation,
+ swiper.params.createElements,
+ {
+ nextEl: 'swiper-button-next',
+ prevEl: 'swiper-button-prev',
+ }
+ );
+ if ( ! ( params.nextEl || params.prevEl ) ) return;
+ var $nextEl;
+ var $prevEl;
+
+ if ( params.nextEl ) {
+ $nextEl = $( params.nextEl );
+
+ if (
+ swiper.params.uniqueNavElements &&
+ typeof params.nextEl === 'string' &&
+ $nextEl.length > 1 &&
+ swiper.$el.find( params.nextEl ).length === 1
+ ) {
+ $nextEl = swiper.$el.find( params.nextEl );
+ }
+ }
+
+ if ( params.prevEl ) {
+ $prevEl = $( params.prevEl );
+
+ if (
+ swiper.params.uniqueNavElements &&
+ typeof params.prevEl === 'string' &&
+ $prevEl.length > 1 &&
+ swiper.$el.find( params.prevEl ).length === 1
+ ) {
+ $prevEl = swiper.$el.find( params.prevEl );
+ }
+ }
+
+ if ( $nextEl && $nextEl.length > 0 ) {
+ $nextEl.on( 'click', swiper.navigation.onNextClick );
+ }
+
+ if ( $prevEl && $prevEl.length > 0 ) {
+ $prevEl.on( 'click', swiper.navigation.onPrevClick );
+ }
+
+ extend( swiper.navigation, {
+ $nextEl: $nextEl,
+ nextEl: $nextEl && $nextEl[ 0 ],
+ $prevEl: $prevEl,
+ prevEl: $prevEl && $prevEl[ 0 ],
+ } );
+
+ if ( ! swiper.enabled ) {
+ if ( $nextEl ) $nextEl.addClass( params.lockClass );
+ if ( $prevEl ) $prevEl.addClass( params.lockClass );
+ }
+ },
+ destroy: function destroy() {
+ var swiper = this;
+ var _swiper$navigation2 = swiper.navigation,
+ $nextEl = _swiper$navigation2.$nextEl,
+ $prevEl = _swiper$navigation2.$prevEl;
+
+ if ( $nextEl && $nextEl.length ) {
+ $nextEl.off( 'click', swiper.navigation.onNextClick );
+ $nextEl.removeClass( swiper.params.navigation.disabledClass );
+ }
+
+ if ( $prevEl && $prevEl.length ) {
+ $prevEl.off( 'click', swiper.navigation.onPrevClick );
+ $prevEl.removeClass( swiper.params.navigation.disabledClass );
+ }
+ },
+ };
+ var Navigation$1 = {
+ name: 'navigation',
+ params: {
+ navigation: {
+ nextEl: null,
+ prevEl: null,
+ hideOnClick: false,
+ disabledClass: 'swiper-button-disabled',
+ hiddenClass: 'swiper-button-hidden',
+ lockClass: 'swiper-button-lock',
+ },
+ },
+ create: function create() {
+ var swiper = this;
+ bindModuleMethods( swiper, {
+ navigation: _extends( {}, Navigation ),
+ } );
+ },
+ on: {
+ init: function init( swiper ) {
+ swiper.navigation.init();
+ swiper.navigation.update();
+ },
+ toEdge: function toEdge( swiper ) {
+ swiper.navigation.update();
+ },
+ fromEdge: function fromEdge( swiper ) {
+ swiper.navigation.update();
+ },
+ destroy: function destroy( swiper ) {
+ swiper.navigation.destroy();
+ },
+ 'enable disable': function enableDisable( swiper ) {
+ var _swiper$navigation3 = swiper.navigation,
+ $nextEl = _swiper$navigation3.$nextEl,
+ $prevEl = _swiper$navigation3.$prevEl;
+
+ if ( $nextEl ) {
+ $nextEl[ swiper.enabled ? 'removeClass' : 'addClass' ](
+ swiper.params.navigation.lockClass
+ );
+ }
+
+ if ( $prevEl ) {
+ $prevEl[ swiper.enabled ? 'removeClass' : 'addClass' ](
+ swiper.params.navigation.lockClass
+ );
+ }
+ },
+ click: function click( swiper, e ) {
+ var _swiper$navigation4 = swiper.navigation,
+ $nextEl = _swiper$navigation4.$nextEl,
+ $prevEl = _swiper$navigation4.$prevEl;
+ var targetEl = e.target;
+
+ if (
+ swiper.params.navigation.hideOnClick &&
+ ! $( targetEl ).is( $prevEl ) &&
+ ! $( targetEl ).is( $nextEl )
+ ) {
+ if (
+ swiper.pagination &&
+ swiper.params.pagination &&
+ swiper.params.pagination.clickable &&
+ ( swiper.pagination.el === targetEl || swiper.pagination.el.contains( targetEl ) )
+ )
+ return;
+ var isHidden;
+
+ if ( $nextEl ) {
+ isHidden = $nextEl.hasClass( swiper.params.navigation.hiddenClass );
+ } else if ( $prevEl ) {
+ isHidden = $prevEl.hasClass( swiper.params.navigation.hiddenClass );
+ }
+
+ if ( isHidden === true ) {
+ swiper.emit( 'navigationShow' );
+ } else {
+ swiper.emit( 'navigationHide' );
+ }
+
+ if ( $nextEl ) {
+ $nextEl.toggleClass( swiper.params.navigation.hiddenClass );
+ }
+
+ if ( $prevEl ) {
+ $prevEl.toggleClass( swiper.params.navigation.hiddenClass );
+ }
+ }
+ },
+ },
+ };
+
+ var Pagination = {
+ update: function update() {
+ // Render || Update Pagination bullets/items
+ var swiper = this;
+ var rtl = swiper.rtl;
+ var params = swiper.params.pagination;
+ if (
+ ! params.el ||
+ ! swiper.pagination.el ||
+ ! swiper.pagination.$el ||
+ swiper.pagination.$el.length === 0
+ )
+ return;
+ var slidesLength =
+ swiper.virtual && swiper.params.virtual.enabled
+ ? swiper.virtual.slides.length
+ : swiper.slides.length;
+ var $el = swiper.pagination.$el; // Current/Total
+
+ var current;
+ var total = swiper.params.loop
+ ? Math.ceil( ( slidesLength - swiper.loopedSlides * 2 ) / swiper.params.slidesPerGroup )
+ : swiper.snapGrid.length;
+
+ if ( swiper.params.loop ) {
+ current = Math.ceil(
+ ( swiper.activeIndex - swiper.loopedSlides ) / swiper.params.slidesPerGroup
+ );
+
+ if ( current > slidesLength - 1 - swiper.loopedSlides * 2 ) {
+ current -= slidesLength - swiper.loopedSlides * 2;
+ }
+
+ if ( current > total - 1 ) current -= total;
+ if ( current < 0 && swiper.params.paginationType !== 'bullets' ) current = total + current;
+ } else if ( typeof swiper.snapIndex !== 'undefined' ) {
+ current = swiper.snapIndex;
+ } else {
+ current = swiper.activeIndex || 0;
+ } // Types
+
+ if (
+ params.type === 'bullets' &&
+ swiper.pagination.bullets &&
+ swiper.pagination.bullets.length > 0
+ ) {
+ var bullets = swiper.pagination.bullets;
+ var firstIndex;
+ var lastIndex;
+ var midIndex;
+
+ if ( params.dynamicBullets ) {
+ swiper.pagination.bulletSize = bullets
+ .eq( 0 )
+ [ swiper.isHorizontal() ? 'outerWidth' : 'outerHeight' ]( true );
+ $el.css(
+ swiper.isHorizontal() ? 'width' : 'height',
+ swiper.pagination.bulletSize * ( params.dynamicMainBullets + 4 ) + 'px'
+ );
+
+ if ( params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined ) {
+ swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;
+
+ if ( swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1 ) {
+ swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;
+ } else if ( swiper.pagination.dynamicBulletIndex < 0 ) {
+ swiper.pagination.dynamicBulletIndex = 0;
+ }
+ }
+
+ firstIndex = current - swiper.pagination.dynamicBulletIndex;
+ lastIndex = firstIndex + ( Math.min( bullets.length, params.dynamicMainBullets ) - 1 );
+ midIndex = ( lastIndex + firstIndex ) / 2;
+ }
+
+ bullets.removeClass(
+ params.bulletActiveClass +
+ ' ' +
+ params.bulletActiveClass +
+ '-next ' +
+ params.bulletActiveClass +
+ '-next-next ' +
+ params.bulletActiveClass +
+ '-prev ' +
+ params.bulletActiveClass +
+ '-prev-prev ' +
+ params.bulletActiveClass +
+ '-main'
+ );
+
+ if ( $el.length > 1 ) {
+ bullets.each( function ( bullet ) {
+ var $bullet = $( bullet );
+ var bulletIndex = $bullet.index();
+
+ if ( bulletIndex === current ) {
+ $bullet.addClass( params.bulletActiveClass );
+ }
+
+ if ( params.dynamicBullets ) {
+ if ( bulletIndex >= firstIndex && bulletIndex <= lastIndex ) {
+ $bullet.addClass( params.bulletActiveClass + '-main' );
+ }
+
+ if ( bulletIndex === firstIndex ) {
+ $bullet
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev' )
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev-prev' );
+ }
+
+ if ( bulletIndex === lastIndex ) {
+ $bullet
+ .next()
+ .addClass( params.bulletActiveClass + '-next' )
+ .next()
+ .addClass( params.bulletActiveClass + '-next-next' );
+ }
+ }
+ } );
+ } else {
+ var $bullet = bullets.eq( current );
+ var bulletIndex = $bullet.index();
+ $bullet.addClass( params.bulletActiveClass );
+
+ if ( params.dynamicBullets ) {
+ var $firstDisplayedBullet = bullets.eq( firstIndex );
+ var $lastDisplayedBullet = bullets.eq( lastIndex );
+
+ for ( var i = firstIndex; i <= lastIndex; i += 1 ) {
+ bullets.eq( i ).addClass( params.bulletActiveClass + '-main' );
+ }
+
+ if ( swiper.params.loop ) {
+ if ( bulletIndex >= bullets.length - params.dynamicMainBullets ) {
+ for ( var _i = params.dynamicMainBullets; _i >= 0; _i -= 1 ) {
+ bullets.eq( bullets.length - _i ).addClass( params.bulletActiveClass + '-main' );
+ }
+
+ bullets
+ .eq( bullets.length - params.dynamicMainBullets - 1 )
+ .addClass( params.bulletActiveClass + '-prev' );
+ } else {
+ $firstDisplayedBullet
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev' )
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev-prev' );
+ $lastDisplayedBullet
+ .next()
+ .addClass( params.bulletActiveClass + '-next' )
+ .next()
+ .addClass( params.bulletActiveClass + '-next-next' );
+ }
+ } else {
+ $firstDisplayedBullet
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev' )
+ .prev()
+ .addClass( params.bulletActiveClass + '-prev-prev' );
+ $lastDisplayedBullet
+ .next()
+ .addClass( params.bulletActiveClass + '-next' )
+ .next()
+ .addClass( params.bulletActiveClass + '-next-next' );
+ }
+ }
+ }
+
+ if ( params.dynamicBullets ) {
+ var dynamicBulletsLength = Math.min( bullets.length, params.dynamicMainBullets + 4 );
+ var bulletsOffset =
+ ( swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize ) /
+ 2 -
+ midIndex * swiper.pagination.bulletSize;
+ var offsetProp = rtl ? 'right' : 'left';
+ bullets.css( swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + 'px' );
+ }
+ }
+
+ if ( params.type === 'fraction' ) {
+ $el
+ .find( classesToSelector( params.currentClass ) )
+ .text( params.formatFractionCurrent( current + 1 ) );
+ $el
+ .find( classesToSelector( params.totalClass ) )
+ .text( params.formatFractionTotal( total ) );
+ }
+
+ if ( params.type === 'progressbar' ) {
+ var progressbarDirection;
+
+ if ( params.progressbarOpposite ) {
+ progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
+ } else {
+ progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
+ }
+
+ var scale = ( current + 1 ) / total;
+ var scaleX = 1;
+ var scaleY = 1;
+
+ if ( progressbarDirection === 'horizontal' ) {
+ scaleX = scale;
+ } else {
+ scaleY = scale;
+ }
+
+ $el
+ .find( classesToSelector( params.progressbarFillClass ) )
+ .transform( 'translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')' )
+ .transition( swiper.params.speed );
+ }
+
+ if ( params.type === 'custom' && params.renderCustom ) {
+ $el.html( params.renderCustom( swiper, current + 1, total ) );
+ swiper.emit( 'paginationRender', $el[ 0 ] );
+ } else {
+ swiper.emit( 'paginationUpdate', $el[ 0 ] );
+ }
+
+ if ( swiper.params.watchOverflow && swiper.enabled ) {
+ $el[ swiper.isLocked ? 'addClass' : 'removeClass' ]( params.lockClass );
+ }
+ },
+ render: function render() {
+ // Render Container
+ var swiper = this;
+ var params = swiper.params.pagination;
+ if (
+ ! params.el ||
+ ! swiper.pagination.el ||
+ ! swiper.pagination.$el ||
+ swiper.pagination.$el.length === 0
+ )
+ return;
+ var slidesLength =
+ swiper.virtual && swiper.params.virtual.enabled
+ ? swiper.virtual.slides.length
+ : swiper.slides.length;
+ var $el = swiper.pagination.$el;
+ var paginationHTML = '';
+
+ if ( params.type === 'bullets' ) {
+ var numberOfBullets = swiper.params.loop
+ ? Math.ceil( ( slidesLength - swiper.loopedSlides * 2 ) / swiper.params.slidesPerGroup )
+ : swiper.snapGrid.length;
+
+ if ( swiper.params.freeMode && ! swiper.params.loop && numberOfBullets > slidesLength ) {
+ numberOfBullets = slidesLength;
+ }
+
+ for ( var i = 0; i < numberOfBullets; i += 1 ) {
+ if ( params.renderBullet ) {
+ paginationHTML += params.renderBullet.call( swiper, i, params.bulletClass );
+ } else {
+ paginationHTML +=
+ '<' +
+ params.bulletElement +
+ ' class="' +
+ params.bulletClass +
+ '"></' +
+ params.bulletElement +
+ '>';
+ }
+ }
+
+ $el.html( paginationHTML );
+ swiper.pagination.bullets = $el.find( classesToSelector( params.bulletClass ) );
+ }
+
+ if ( params.type === 'fraction' ) {
+ if ( params.renderFraction ) {
+ paginationHTML = params.renderFraction.call(
+ swiper,
+ params.currentClass,
+ params.totalClass
+ );
+ } else {
+ paginationHTML =
+ '<span class="' +
+ params.currentClass +
+ '"></span>' +
+ ' / ' +
+ ( '<span class="' + params.totalClass + '"></span>' );
+ }
+
+ $el.html( paginationHTML );
+ }
+
+ if ( params.type === 'progressbar' ) {
+ if ( params.renderProgressbar ) {
+ paginationHTML = params.renderProgressbar.call( swiper, params.progressbarFillClass );
+ } else {
+ paginationHTML = '<span class="' + params.progressbarFillClass + '"></span>';
+ }
+
+ $el.html( paginationHTML );
+ }
+
+ if ( params.type !== 'custom' ) {
+ swiper.emit( 'paginationRender', swiper.pagination.$el[ 0 ] );
+ }
+ },
+ init: function init() {
+ var swiper = this;
+ swiper.params.pagination = createElementIfNotDefined(
+ swiper.$el,
+ swiper.params.pagination,
+ swiper.params.createElements,
+ {
+ el: 'swiper-pagination',
+ }
+ );
+ var params = swiper.params.pagination;
+ if ( ! params.el ) return;
+ var $el = $( params.el );
+ if ( $el.length === 0 ) return;
+
+ if ( swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 ) {
+ $el = swiper.$el.find( params.el );
+ }
+
+ if ( params.type === 'bullets' && params.clickable ) {
+ $el.addClass( params.clickableClass );
+ }
+
+ $el.addClass( params.modifierClass + params.type );
+
+ if ( params.type === 'bullets' && params.dynamicBullets ) {
+ $el.addClass( '' + params.modifierClass + params.type + '-dynamic' );
+ swiper.pagination.dynamicBulletIndex = 0;
+
+ if ( params.dynamicMainBullets < 1 ) {
+ params.dynamicMainBullets = 1;
+ }
+ }
+
+ if ( params.type === 'progressbar' && params.progressbarOpposite ) {
+ $el.addClass( params.progressbarOppositeClass );
+ }
+
+ if ( params.clickable ) {
+ $el.on( 'click', classesToSelector( params.bulletClass ), function onClick( e ) {
+ e.preventDefault();
+ var index = $( this ).index() * swiper.params.slidesPerGroup;
+ if ( swiper.params.loop ) index += swiper.loopedSlides;
+ swiper.slideTo( index );
+ } );
+ }
+
+ extend( swiper.pagination, {
+ $el: $el,
+ el: $el[ 0 ],
+ } );
+
+ if ( ! swiper.enabled ) {
+ $el.addClass( params.lockClass );
+ }
+ },
+ destroy: function destroy() {
+ var swiper = this;
+ var params = swiper.params.pagination;
+ if (
+ ! params.el ||
+ ! swiper.pagination.el ||
+ ! swiper.pagination.$el ||
+ swiper.pagination.$el.length === 0
+ )
+ return;
+ var $el = swiper.pagination.$el;
+ $el.removeClass( params.hiddenClass );
+ $el.removeClass( params.modifierClass + params.type );
+ if ( swiper.pagination.bullets )
+ swiper.pagination.bullets.removeClass( params.bulletActiveClass );
+
+ if ( params.clickable ) {
+ $el.off( 'click', classesToSelector( params.bulletClass ) );
+ }
+ },
+ };
+ var Pagination$1 = {
+ name: 'pagination',
+ params: {
+ pagination: {
+ el: null,
+ bulletElement: 'span',
+ clickable: false,
+ hideOnClick: false,
+ renderBullet: null,
+ renderProgressbar: null,
+ renderFraction: null,
+ renderCustom: null,
+ progressbarOpposite: false,
+ type: 'bullets',
+ // 'bullets' or 'progressbar' or 'fraction' or 'custom'
+ dynamicBullets: false,
+ dynamicMainBullets: 1,
+ formatFractionCurrent: function formatFractionCurrent( number ) {
+ return number;
+ },
+ formatFractionTotal: function formatFractionTotal( number ) {
+ return number;
+ },
+ bulletClass: 'swiper-pagination-bullet',
+ bulletActiveClass: 'swiper-pagination-bullet-active',
+ modifierClass: 'swiper-pagination-',
+ // NEW
+ currentClass: 'swiper-pagination-current',
+ totalClass: 'swiper-pagination-total',
+ hiddenClass: 'swiper-pagination-hidden',
+ progressbarFillClass: 'swiper-pagination-progressbar-fill',
+ progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',
+ clickableClass: 'swiper-pagination-clickable',
+ // NEW
+ lockClass: 'swiper-pagination-lock',
+ },
+ },
+ create: function create() {
+ var swiper = this;
+ bindModuleMethods( swiper, {
+ pagination: _extends(
+ {
+ dynamicBulletIndex: 0,
+ },
+ Pagination
+ ),
+ } );
+ },
+ on: {
+ init: function init( swiper ) {
+ swiper.pagination.init();
+ swiper.pagination.render();
+ swiper.pagination.update();
+ },
+ activeIndexChange: function activeIndexChange( swiper ) {
+ if ( swiper.params.loop ) {
+ swiper.pagination.update();
+ } else if ( typeof swiper.snapIndex === 'undefined' ) {
+ swiper.pagination.update();
+ }
+ },
+ snapIndexChange: function snapIndexChange( swiper ) {
+ if ( ! swiper.params.loop ) {
+ swiper.pagination.update();
+ }
+ },
+ slidesLengthChange: function slidesLengthChange( swiper ) {
+ if ( swiper.params.loop ) {
+ swiper.pagination.render();
+ swiper.pagination.update();
+ }
+ },
+ snapGridLengthChange: function snapGridLengthChange( swiper ) {
+ if ( ! swiper.params.loop ) {
+ swiper.pagination.render();
+ swiper.pagination.update();
+ }
+ },
+ destroy: function destroy( swiper ) {
+ swiper.pagination.destroy();
+ },
+ 'enable disable': function enableDisable( swiper ) {
+ var $el = swiper.pagination.$el;
+
+ if ( $el ) {
+ $el[ swiper.enabled ? 'removeClass' : 'addClass' ]( swiper.params.pagination.lockClass );
+ }
+ },
+ click: function click( swiper, e ) {
+ var targetEl = e.target;
+
+ if (
+ swiper.params.pagination.el &&
+ swiper.params.pagination.hideOnClick &&
+ swiper.pagination.$el.length > 0 &&
+ ! $( targetEl ).hasClass( swiper.params.pagination.bulletClass )
+ ) {
+ if (
+ swiper.navigation &&
+ ( ( swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl ) ||
+ ( swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl ) )
+ )
+ return;
+ var isHidden = swiper.pagination.$el.hasClass( swiper.params.pagination.hiddenClass );
+
+ if ( isHidden === true ) {
+ swiper.emit( 'paginationShow' );
+ } else {
+ swiper.emit( 'paginationHide' );
+ }
+
+ swiper.pagination.$el.toggleClass( swiper.params.pagination.hiddenClass );
+ }
+ },
+ },
+ };
+
+ var Zoom = {
+ // Calc Scale From Multi-touches
+ getDistanceBetweenTouches: function getDistanceBetweenTouches( e ) {
+ if ( e.targetTouches.length < 2 ) return 1;
+ var x1 = e.targetTouches[ 0 ].pageX;
+ var y1 = e.targetTouches[ 0 ].pageY;
+ var x2 = e.targetTouches[ 1 ].pageX;
+ var y2 = e.targetTouches[ 1 ].pageY;
+ var distance = Math.sqrt( Math.pow( x2 - x1, 2 ) + Math.pow( y2 - y1, 2 ) );
+ return distance;
+ },
+ // Events
+ onGestureStart: function onGestureStart( e ) {
+ var swiper = this;
+ var support = swiper.support;
+ var params = swiper.params.zoom;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture;
+ zoom.fakeGestureTouched = false;
+ zoom.fakeGestureMoved = false;
+
+ if ( ! support.gestures ) {
+ if (
+ e.type !== 'touchstart' ||
+ ( e.type === 'touchstart' && e.targetTouches.length < 2 )
+ ) {
+ return;
+ }
+
+ zoom.fakeGestureTouched = true;
+ gesture.scaleStart = Zoom.getDistanceBetweenTouches( e );
+ }
+
+ if ( ! gesture.$slideEl || ! gesture.$slideEl.length ) {
+ gesture.$slideEl = $( e.target ).closest( '.' + swiper.params.slideClass );
+ if ( gesture.$slideEl.length === 0 )
+ gesture.$slideEl = swiper.slides.eq( swiper.activeIndex );
+ gesture.$imageEl = gesture.$slideEl.find(
+ 'img, svg, canvas, picture, .swiper-zoom-target'
+ );
+ gesture.$imageWrapEl = gesture.$imageEl.parent( '.' + params.containerClass );
+ gesture.maxRatio = gesture.$imageWrapEl.attr( 'data-swiper-zoom' ) || params.maxRatio;
+
+ if ( gesture.$imageWrapEl.length === 0 ) {
+ gesture.$imageEl = undefined;
+ return;
+ }
+ }
+
+ if ( gesture.$imageEl ) {
+ gesture.$imageEl.transition( 0 );
+ }
+
+ swiper.zoom.isScaling = true;
+ },
+ onGestureChange: function onGestureChange( e ) {
+ var swiper = this;
+ var support = swiper.support;
+ var params = swiper.params.zoom;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture;
+
+ if ( ! support.gestures ) {
+ if ( e.type !== 'touchmove' || ( e.type === 'touchmove' && e.targetTouches.length < 2 ) ) {
+ return;
+ }
+
+ zoom.fakeGestureMoved = true;
+ gesture.scaleMove = Zoom.getDistanceBetweenTouches( e );
+ }
+
+ if ( ! gesture.$imageEl || gesture.$imageEl.length === 0 ) {
+ if ( e.type === 'gesturechange' ) zoom.onGestureStart( e );
+ return;
+ }
+
+ if ( support.gestures ) {
+ zoom.scale = e.scale * zoom.currentScale;
+ } else {
+ zoom.scale = ( gesture.scaleMove / gesture.scaleStart ) * zoom.currentScale;
+ }
+
+ if ( zoom.scale > gesture.maxRatio ) {
+ zoom.scale = gesture.maxRatio - 1 + Math.pow( zoom.scale - gesture.maxRatio + 1, 0.5 );
+ }
+
+ if ( zoom.scale < params.minRatio ) {
+ zoom.scale = params.minRatio + 1 - Math.pow( params.minRatio - zoom.scale + 1, 0.5 );
+ }
+
+ gesture.$imageEl.transform( 'translate3d(0,0,0) scale(' + zoom.scale + ')' );
+ },
+ onGestureEnd: function onGestureEnd( e ) {
+ var swiper = this;
+ var device = swiper.device;
+ var support = swiper.support;
+ var params = swiper.params.zoom;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture;
+
+ if ( ! support.gestures ) {
+ if ( ! zoom.fakeGestureTouched || ! zoom.fakeGestureMoved ) {
+ return;
+ }
+
+ if (
+ e.type !== 'touchend' ||
+ ( e.type === 'touchend' && e.changedTouches.length < 2 && ! device.android )
+ ) {
+ return;
+ }
+
+ zoom.fakeGestureTouched = false;
+ zoom.fakeGestureMoved = false;
+ }
+
+ if ( ! gesture.$imageEl || gesture.$imageEl.length === 0 ) return;
+ zoom.scale = Math.max( Math.min( zoom.scale, gesture.maxRatio ), params.minRatio );
+ gesture.$imageEl
+ .transition( swiper.params.speed )
+ .transform( 'translate3d(0,0,0) scale(' + zoom.scale + ')' );
+ zoom.currentScale = zoom.scale;
+ zoom.isScaling = false;
+ if ( zoom.scale === 1 ) gesture.$slideEl = undefined;
+ },
+ onTouchStart: function onTouchStart( e ) {
+ var swiper = this;
+ var device = swiper.device;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture,
+ image = zoom.image;
+ if ( ! gesture.$imageEl || gesture.$imageEl.length === 0 ) return;
+ if ( image.isTouched ) return;
+ if ( device.android && e.cancelable ) e.preventDefault();
+ image.isTouched = true;
+ image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[ 0 ].pageX : e.pageX;
+ image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[ 0 ].pageY : e.pageY;
+ },
+ onTouchMove: function onTouchMove( e ) {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture,
+ image = zoom.image,
+ velocity = zoom.velocity;
+ if ( ! gesture.$imageEl || gesture.$imageEl.length === 0 ) return;
+ swiper.allowClick = false;
+ if ( ! image.isTouched || ! gesture.$slideEl ) return;
+
+ if ( ! image.isMoved ) {
+ image.width = gesture.$imageEl[ 0 ].offsetWidth;
+ image.height = gesture.$imageEl[ 0 ].offsetHeight;
+ image.startX = getTranslate( gesture.$imageWrapEl[ 0 ], 'x' ) || 0;
+ image.startY = getTranslate( gesture.$imageWrapEl[ 0 ], 'y' ) || 0;
+ gesture.slideWidth = gesture.$slideEl[ 0 ].offsetWidth;
+ gesture.slideHeight = gesture.$slideEl[ 0 ].offsetHeight;
+ gesture.$imageWrapEl.transition( 0 );
+
+ if ( swiper.rtl ) {
+ image.startX = -image.startX;
+ image.startY = -image.startY;
+ }
+ } // Define if we need image drag
+
+ var scaledWidth = image.width * zoom.scale;
+ var scaledHeight = image.height * zoom.scale;
+ if ( scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight ) return;
+ image.minX = Math.min( gesture.slideWidth / 2 - scaledWidth / 2, 0 );
+ image.maxX = -image.minX;
+ image.minY = Math.min( gesture.slideHeight / 2 - scaledHeight / 2, 0 );
+ image.maxY = -image.minY;
+ image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[ 0 ].pageX : e.pageX;
+ image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[ 0 ].pageY : e.pageY;
+
+ if ( ! image.isMoved && ! zoom.isScaling ) {
+ if (
+ swiper.isHorizontal() &&
+ ( ( Math.floor( image.minX ) === Math.floor( image.startX ) &&
+ image.touchesCurrent.x < image.touchesStart.x ) ||
+ ( Math.floor( image.maxX ) === Math.floor( image.startX ) &&
+ image.touchesCurrent.x > image.touchesStart.x ) )
+ ) {
+ image.isTouched = false;
+ return;
+ }
+
+ if (
+ ! swiper.isHorizontal() &&
+ ( ( Math.floor( image.minY ) === Math.floor( image.startY ) &&
+ image.touchesCurrent.y < image.touchesStart.y ) ||
+ ( Math.floor( image.maxY ) === Math.floor( image.startY ) &&
+ image.touchesCurrent.y > image.touchesStart.y ) )
+ ) {
+ image.isTouched = false;
+ return;
+ }
+ }
+
+ if ( e.cancelable ) {
+ e.preventDefault();
+ }
+
+ e.stopPropagation();
+ image.isMoved = true;
+ image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;
+ image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;
+
+ if ( image.currentX < image.minX ) {
+ image.currentX = image.minX + 1 - Math.pow( image.minX - image.currentX + 1, 0.8 );
+ }
+
+ if ( image.currentX > image.maxX ) {
+ image.currentX = image.maxX - 1 + Math.pow( image.currentX - image.maxX + 1, 0.8 );
+ }
+
+ if ( image.currentY < image.minY ) {
+ image.currentY = image.minY + 1 - Math.pow( image.minY - image.currentY + 1, 0.8 );
+ }
+
+ if ( image.currentY > image.maxY ) {
+ image.currentY = image.maxY - 1 + Math.pow( image.currentY - image.maxY + 1, 0.8 );
+ } // Velocity
+
+ if ( ! velocity.prevPositionX ) velocity.prevPositionX = image.touchesCurrent.x;
+ if ( ! velocity.prevPositionY ) velocity.prevPositionY = image.touchesCurrent.y;
+ if ( ! velocity.prevTime ) velocity.prevTime = Date.now();
+ velocity.x =
+ ( image.touchesCurrent.x - velocity.prevPositionX ) /
+ ( Date.now() - velocity.prevTime ) /
+ 2;
+ velocity.y =
+ ( image.touchesCurrent.y - velocity.prevPositionY ) /
+ ( Date.now() - velocity.prevTime ) /
+ 2;
+ if ( Math.abs( image.touchesCurrent.x - velocity.prevPositionX ) < 2 ) velocity.x = 0;
+ if ( Math.abs( image.touchesCurrent.y - velocity.prevPositionY ) < 2 ) velocity.y = 0;
+ velocity.prevPositionX = image.touchesCurrent.x;
+ velocity.prevPositionY = image.touchesCurrent.y;
+ velocity.prevTime = Date.now();
+ gesture.$imageWrapEl.transform(
+ 'translate3d(' + image.currentX + 'px, ' + image.currentY + 'px,0)'
+ );
+ },
+ onTouchEnd: function onTouchEnd() {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture,
+ image = zoom.image,
+ velocity = zoom.velocity;
+ if ( ! gesture.$imageEl || gesture.$imageEl.length === 0 ) return;
+
+ if ( ! image.isTouched || ! image.isMoved ) {
+ image.isTouched = false;
+ image.isMoved = false;
+ return;
+ }
+
+ image.isTouched = false;
+ image.isMoved = false;
+ var momentumDurationX = 300;
+ var momentumDurationY = 300;
+ var momentumDistanceX = velocity.x * momentumDurationX;
+ var newPositionX = image.currentX + momentumDistanceX;
+ var momentumDistanceY = velocity.y * momentumDurationY;
+ var newPositionY = image.currentY + momentumDistanceY; // Fix duration
+
+ if ( velocity.x !== 0 )
+ momentumDurationX = Math.abs( ( newPositionX - image.currentX ) / velocity.x );
+ if ( velocity.y !== 0 )
+ momentumDurationY = Math.abs( ( newPositionY - image.currentY ) / velocity.y );
+ var momentumDuration = Math.max( momentumDurationX, momentumDurationY );
+ image.currentX = newPositionX;
+ image.currentY = newPositionY; // Define if we need image drag
+
+ var scaledWidth = image.width * zoom.scale;
+ var scaledHeight = image.height * zoom.scale;
+ image.minX = Math.min( gesture.slideWidth / 2 - scaledWidth / 2, 0 );
+ image.maxX = -image.minX;
+ image.minY = Math.min( gesture.slideHeight / 2 - scaledHeight / 2, 0 );
+ image.maxY = -image.minY;
+ image.currentX = Math.max( Math.min( image.currentX, image.maxX ), image.minX );
+ image.currentY = Math.max( Math.min( image.currentY, image.maxY ), image.minY );
+ gesture.$imageWrapEl
+ .transition( momentumDuration )
+ .transform( 'translate3d(' + image.currentX + 'px, ' + image.currentY + 'px,0)' );
+ },
+ onTransitionEnd: function onTransitionEnd() {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ var gesture = zoom.gesture;
+
+ if ( gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex ) {
+ if ( gesture.$imageEl ) {
+ gesture.$imageEl.transform( 'translate3d(0,0,0) scale(1)' );
+ }
+
+ if ( gesture.$imageWrapEl ) {
+ gesture.$imageWrapEl.transform( 'translate3d(0,0,0)' );
+ }
+
+ zoom.scale = 1;
+ zoom.currentScale = 1;
+ gesture.$slideEl = undefined;
+ gesture.$imageEl = undefined;
+ gesture.$imageWrapEl = undefined;
+ }
+ },
+ // Toggle Zoom
+ toggle: function toggle( e ) {
+ var swiper = this;
+ var zoom = swiper.zoom;
+
+ if ( zoom.scale && zoom.scale !== 1 ) {
+ // Zoom Out
+ zoom.out();
+ } else {
+ // Zoom In
+ zoom.in( e );
+ }
+ },
+ in: function _in( e ) {
+ var swiper = this;
+ var window = getWindow();
+ var zoom = swiper.zoom;
+ var params = swiper.params.zoom;
+ var gesture = zoom.gesture,
+ image = zoom.image;
+
+ if ( ! gesture.$slideEl ) {
+ if ( swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ) {
+ gesture.$slideEl = swiper.$wrapperEl.children( '.' + swiper.params.slideActiveClass );
+ } else {
+ gesture.$slideEl = swiper.slides.eq( swiper.activeIndex );
+ }
+
+ gesture.$imageEl = gesture.$slideEl.find(
+ 'img, svg, canvas, picture, .swiper-zoom-target'
+ );
+ gesture.$imageWrapEl = gesture.$imageEl.parent( '.' + params.containerClass );
+ }
+
+ if (
+ ! gesture.$imageEl ||
+ gesture.$imageEl.length === 0 ||
+ ! gesture.$imageWrapEl ||
+ gesture.$imageWrapEl.length === 0
+ )
+ return;
+ gesture.$slideEl.addClass( '' + params.zoomedSlideClass );
+ var touchX;
+ var touchY;
+ var offsetX;
+ var offsetY;
+ var diffX;
+ var diffY;
+ var translateX;
+ var translateY;
+ var imageWidth;
+ var imageHeight;
+ var scaledWidth;
+ var scaledHeight;
+ var translateMinX;
+ var translateMinY;
+ var translateMaxX;
+ var translateMaxY;
+ var slideWidth;
+ var slideHeight;
+
+ if ( typeof image.touchesStart.x === 'undefined' && e ) {
+ touchX = e.type === 'touchend' ? e.changedTouches[ 0 ].pageX : e.pageX;
+ touchY = e.type === 'touchend' ? e.changedTouches[ 0 ].pageY : e.pageY;
+ } else {
+ touchX = image.touchesStart.x;
+ touchY = image.touchesStart.y;
+ }
+
+ zoom.scale = gesture.$imageWrapEl.attr( 'data-swiper-zoom' ) || params.maxRatio;
+ zoom.currentScale = gesture.$imageWrapEl.attr( 'data-swiper-zoom' ) || params.maxRatio;
+
+ if ( e ) {
+ slideWidth = gesture.$slideEl[ 0 ].offsetWidth;
+ slideHeight = gesture.$slideEl[ 0 ].offsetHeight;
+ offsetX = gesture.$slideEl.offset().left + window.scrollX;
+ offsetY = gesture.$slideEl.offset().top + window.scrollY;
+ diffX = offsetX + slideWidth / 2 - touchX;
+ diffY = offsetY + slideHeight / 2 - touchY;
+ imageWidth = gesture.$imageEl[ 0 ].offsetWidth;
+ imageHeight = gesture.$imageEl[ 0 ].offsetHeight;
+ scaledWidth = imageWidth * zoom.scale;
+ scaledHeight = imageHeight * zoom.scale;
+ translateMinX = Math.min( slideWidth / 2 - scaledWidth / 2, 0 );
+ translateMinY = Math.min( slideHeight / 2 - scaledHeight / 2, 0 );
+ translateMaxX = -translateMinX;
+ translateMaxY = -translateMinY;
+ translateX = diffX * zoom.scale;
+ translateY = diffY * zoom.scale;
+
+ if ( translateX < translateMinX ) {
+ translateX = translateMinX;
+ }
+
+ if ( translateX > translateMaxX ) {
+ translateX = translateMaxX;
+ }
+
+ if ( translateY < translateMinY ) {
+ translateY = translateMinY;
+ }
+
+ if ( translateY > translateMaxY ) {
+ translateY = translateMaxY;
+ }
+ } else {
+ translateX = 0;
+ translateY = 0;
+ }
+
+ gesture.$imageWrapEl
+ .transition( 300 )
+ .transform( 'translate3d(' + translateX + 'px, ' + translateY + 'px,0)' );
+ gesture.$imageEl
+ .transition( 300 )
+ .transform( 'translate3d(0,0,0) scale(' + zoom.scale + ')' );
+ },
+ out: function out() {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ var params = swiper.params.zoom;
+ var gesture = zoom.gesture;
+
+ if ( ! gesture.$slideEl ) {
+ if ( swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ) {
+ gesture.$slideEl = swiper.$wrapperEl.children( '.' + swiper.params.slideActiveClass );
+ } else {
+ gesture.$slideEl = swiper.slides.eq( swiper.activeIndex );
+ }
+
+ gesture.$imageEl = gesture.$slideEl.find(
+ 'img, svg, canvas, picture, .swiper-zoom-target'
+ );
+ gesture.$imageWrapEl = gesture.$imageEl.parent( '.' + params.containerClass );
+ }
+
+ if (
+ ! gesture.$imageEl ||
+ gesture.$imageEl.length === 0 ||
+ ! gesture.$imageWrapEl ||
+ gesture.$imageWrapEl.length === 0
+ )
+ return;
+ zoom.scale = 1;
+ zoom.currentScale = 1;
+ gesture.$imageWrapEl.transition( 300 ).transform( 'translate3d(0,0,0)' );
+ gesture.$imageEl.transition( 300 ).transform( 'translate3d(0,0,0) scale(1)' );
+ gesture.$slideEl.removeClass( '' + params.zoomedSlideClass );
+ gesture.$slideEl = undefined;
+ },
+ toggleGestures: function toggleGestures( method ) {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ var selector = zoom.slideSelector,
+ passive = zoom.passiveListener;
+ swiper.$wrapperEl[ method ]( 'gesturestart', selector, zoom.onGestureStart, passive );
+ swiper.$wrapperEl[ method ]( 'gesturechange', selector, zoom.onGestureChange, passive );
+ swiper.$wrapperEl[ method ]( 'gestureend', selector, zoom.onGestureEnd, passive );
+ },
+ enableGestures: function enableGestures() {
+ if ( this.zoom.gesturesEnabled ) return;
+ this.zoom.gesturesEnabled = true;
+ this.zoom.toggleGestures( 'on' );
+ },
+ disableGestures: function disableGestures() {
+ if ( ! this.zoom.gesturesEnabled ) return;
+ this.zoom.gesturesEnabled = false;
+ this.zoom.toggleGestures( 'off' );
+ },
+ // Attach/Detach Events
+ enable: function enable() {
+ var swiper = this;
+ var support = swiper.support;
+ var zoom = swiper.zoom;
+ if ( zoom.enabled ) return;
+ zoom.enabled = true;
+ var passiveListener =
+ swiper.touchEvents.start === 'touchstart' &&
+ support.passiveListener &&
+ swiper.params.passiveListeners
+ ? {
+ passive: true,
+ capture: false,
+ }
+ : false;
+ var activeListenerWithCapture = support.passiveListener
+ ? {
+ passive: false,
+ capture: true,
+ }
+ : true;
+ var slideSelector = '.' + swiper.params.slideClass;
+ swiper.zoom.passiveListener = passiveListener;
+ swiper.zoom.slideSelector = slideSelector; // Scale image
+
+ if ( support.gestures ) {
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.start,
+ swiper.zoom.enableGestures,
+ passiveListener
+ );
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.end,
+ swiper.zoom.disableGestures,
+ passiveListener
+ );
+ } else if ( swiper.touchEvents.start === 'touchstart' ) {
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.start,
+ slideSelector,
+ zoom.onGestureStart,
+ passiveListener
+ );
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.move,
+ slideSelector,
+ zoom.onGestureChange,
+ activeListenerWithCapture
+ );
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.end,
+ slideSelector,
+ zoom.onGestureEnd,
+ passiveListener
+ );
+
+ if ( swiper.touchEvents.cancel ) {
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.cancel,
+ slideSelector,
+ zoom.onGestureEnd,
+ passiveListener
+ );
+ }
+ } // Move image
+
+ swiper.$wrapperEl.on(
+ swiper.touchEvents.move,
+ '.' + swiper.params.zoom.containerClass,
+ zoom.onTouchMove,
+ activeListenerWithCapture
+ );
+ },
+ disable: function disable() {
+ var swiper = this;
+ var zoom = swiper.zoom;
+ if ( ! zoom.enabled ) return;
+ var support = swiper.support;
+ swiper.zoom.enabled = false;
+ var passiveListener =
+ swiper.touchEvents.start === 'touchstart' &&
+ support.passiveListener &&
+ swiper.params.passiveListeners
+ ? {
+ passive: true,
+ capture: false,
+ }
+ : false;
+ var activeListenerWithCapture = support.passiveListener
+ ? {
+ passive: false,
+ capture: true,
+ }
+ : true;
+ var slideSelector = '.' + swiper.params.slideClass; // Scale image
+
+ if ( support.gestures ) {
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.start,
+ swiper.zoom.enableGestures,
+ passiveListener
+ );
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.end,
+ swiper.zoom.disableGestures,
+ passiveListener
+ );
+ } else if ( swiper.touchEvents.start === 'touchstart' ) {
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.start,
+ slideSelector,
+ zoom.onGestureStart,
+ passiveListener
+ );
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.move,
+ slideSelector,
+ zoom.onGestureChange,
+ activeListenerWithCapture
+ );
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.end,
+ slideSelector,
+ zoom.onGestureEnd,
+ passiveListener
+ );
+
+ if ( swiper.touchEvents.cancel ) {
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.cancel,
+ slideSelector,
+ zoom.onGestureEnd,
+ passiveListener
+ );
+ }
+ } // Move image
+
+ swiper.$wrapperEl.off(
+ swiper.touchEvents.move,
+ '.' + swiper.params.zoom.containerClass,
+ zoom.onTouchMove,
+ activeListenerWithCapture
+ );
+ },
+ };
+ var Zoom$1 = {
+ name: 'zoom',
+ params: {
+ zoom: {
+ enabled: false,
+ maxRatio: 3,
+ minRatio: 1,
+ toggle: true,
+ containerClass: 'swiper-zoom-container',
+ zoomedSlideClass: 'swiper-slide-zoomed',
+ },
+ },
+ create: function create() {
+ var swiper = this;
+ bindModuleMethods( swiper, {
+ zoom: _extends(
+ {
+ enabled: false,
+ scale: 1,
+ currentScale: 1,
+ isScaling: false,
+ gesture: {
+ $slideEl: undefined,
+ slideWidth: undefined,
+ slideHeight: undefined,
+ $imageEl: undefined,
+ $imageWrapEl: undefined,
+ maxRatio: 3,
+ },
+ image: {
+ isTouched: undefined,
+ isMoved: undefined,
+ currentX: undefined,
+ currentY: undefined,
+ minX: undefined,
+ minY: undefined,
+ maxX: undefined,
+ maxY: undefined,
+ width: undefined,
+ height: undefined,
+ startX: undefined,
+ startY: undefined,
+ touchesStart: {},
+ touchesCurrent: {},
+ },
+ velocity: {
+ x: undefined,
+ y: undefined,
+ prevPositionX: undefined,
+ prevPositionY: undefined,
+ prevTime: undefined,
+ },
+ },
+ Zoom
+ ),
+ } );
+ var scale = 1;
+ Object.defineProperty( swiper.zoom, 'scale', {
+ get: function get() {
+ return scale;
+ },
+ set: function set( value ) {
+ if ( scale !== value ) {
+ var imageEl = swiper.zoom.gesture.$imageEl
+ ? swiper.zoom.gesture.$imageEl[ 0 ]
+ : undefined;
+ var slideEl = swiper.zoom.gesture.$slideEl
+ ? swiper.zoom.gesture.$slideEl[ 0 ]
+ : undefined;
+ swiper.emit( 'zoomChange', value, imageEl, slideEl );
+ }
+
+ scale = value;
+ },
+ } );
+ },
+ on: {
+ init: function init( swiper ) {
+ if ( swiper.params.zoom.enabled ) {
+ swiper.zoom.enable();
+ }
+ },
+ destroy: function destroy( swiper ) {
+ swiper.zoom.disable();
+ },
+ touchStart: function touchStart( swiper, e ) {
+ if ( ! swiper.zoom.enabled ) return;
+ swiper.zoom.onTouchStart( e );
+ },
+ touchEnd: function touchEnd( swiper, e ) {
+ if ( ! swiper.zoom.enabled ) return;
+ swiper.zoom.onTouchEnd( e );
+ },
+ doubleTap: function doubleTap( swiper, e ) {
+ if (
+ ! swiper.animating &&
+ swiper.params.zoom.enabled &&
+ swiper.zoom.enabled &&
+ swiper.params.zoom.toggle
+ ) {
+ swiper.zoom.toggle( e );
+ }
+ },
+ transitionEnd: function transitionEnd( swiper ) {
+ if ( swiper.zoom.enabled && swiper.params.zoom.enabled ) {
+ swiper.zoom.onTransitionEnd();
+ }
+ },
+ slideChange: function slideChange( swiper ) {
+ if ( swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode ) {
+ swiper.zoom.onTransitionEnd();
+ }
+ },
+ },
+ };
+
+ var A11y = {
+ getRandomNumber: function getRandomNumber( size ) {
+ if ( size === void 0 ) {
+ size = 16;
+ }
+
+ var randomChar = function randomChar() {
+ return Math.round( 16 * Math.random() ).toString( 16 );
+ };
+
+ return 'x'.repeat( size ).replace( /x/g, randomChar );
+ },
+ makeElFocusable: function makeElFocusable( $el ) {
+ $el.attr( 'tabIndex', '0' );
+ return $el;
+ },
+ makeElNotFocusable: function makeElNotFocusable( $el ) {
+ $el.attr( 'tabIndex', '-1' );
+ return $el;
+ },
+ addElRole: function addElRole( $el, role ) {
+ $el.attr( 'role', role );
+ return $el;
+ },
+ addElRoleDescription: function addElRoleDescription( $el, description ) {
+ $el.attr( 'aria-roledescription', description );
+ return $el;
+ },
+ addElControls: function addElControls( $el, controls ) {
+ $el.attr( 'aria-controls', controls );
+ return $el;
+ },
+ addElLabel: function addElLabel( $el, label ) {
+ $el.attr( 'aria-label', label );
+ return $el;
+ },
+ addElId: function addElId( $el, id ) {
+ $el.attr( 'id', id );
+ return $el;
+ },
+ addElLive: function addElLive( $el, live ) {
+ $el.attr( 'aria-live', live );
+ return $el;
+ },
+ disableEl: function disableEl( $el ) {
+ $el.attr( 'aria-disabled', true );
+ return $el;
+ },
+ enableEl: function enableEl( $el ) {
+ $el.attr( 'aria-disabled', false );
+ return $el;
+ },
+ onEnterOrSpaceKey: function onEnterOrSpaceKey( e ) {
+ if ( e.keyCode !== 13 && e.keyCode !== 32 ) return;
+ var swiper = this;
+ var params = swiper.params.a11y;
+ var $targetEl = $( e.target );
+
+ if (
+ swiper.navigation &&
+ swiper.navigation.$nextEl &&
+ $targetEl.is( swiper.navigation.$nextEl )
+ ) {
+ if ( ! ( swiper.isEnd && ! swiper.params.loop ) ) {
+ swiper.slideNext();
+ }
+
+ if ( swiper.isEnd ) {
+ swiper.a11y.notify( params.lastSlideMessage );
+ } else {
+ swiper.a11y.notify( params.nextSlideMessage );
+ }
+ }
+
+ if (
+ swiper.navigation &&
+ swiper.navigation.$prevEl &&
+ $targetEl.is( swiper.navigation.$prevEl )
+ ) {
+ if ( ! ( swiper.isBeginning && ! swiper.params.loop ) ) {
+ swiper.slidePrev();
+ }
+
+ if ( swiper.isBeginning ) {
+ swiper.a11y.notify( params.firstSlideMessage );
+ } else {
+ swiper.a11y.notify( params.prevSlideMessage );
+ }
+ }
+
+ if (
+ swiper.pagination &&
+ $targetEl.is( classesToSelector( swiper.params.pagination.bulletClass ) )
+ ) {
+ $targetEl[ 0 ].click();
+ }
+ },
+ notify: function notify( message ) {
+ var swiper = this;
+ var notification = swiper.a11y.liveRegion;
+ if ( notification.length === 0 ) return;
+ notification.html( '' );
+ notification.html( message );
+ },
+ updateNavigation: function updateNavigation() {
+ var swiper = this;
+ if ( swiper.params.loop || ! swiper.navigation ) return;
+ var _swiper$navigation = swiper.navigation,
+ $nextEl = _swiper$navigation.$nextEl,
+ $prevEl = _swiper$navigation.$prevEl;
+
+ if ( $prevEl && $prevEl.length > 0 ) {
+ if ( swiper.isBeginning ) {
+ swiper.a11y.disableEl( $prevEl );
+ swiper.a11y.makeElNotFocusable( $prevEl );
+ } else {
+ swiper.a11y.enableEl( $prevEl );
+ swiper.a11y.makeElFocusable( $prevEl );
+ }
+ }
+
+ if ( $nextEl && $nextEl.length > 0 ) {
+ if ( swiper.isEnd ) {
+ swiper.a11y.disableEl( $nextEl );
+ swiper.a11y.makeElNotFocusable( $nextEl );
+ } else {
+ swiper.a11y.enableEl( $nextEl );
+ swiper.a11y.makeElFocusable( $nextEl );
+ }
+ }
+ },
+ updatePagination: function updatePagination() {
+ var swiper = this;
+ var params = swiper.params.a11y;
+
+ if (
+ swiper.pagination &&
+ swiper.params.pagination.clickable &&
+ swiper.pagination.bullets &&
+ swiper.pagination.bullets.length
+ ) {
+ swiper.pagination.bullets.each( function ( bulletEl ) {
+ var $bulletEl = $( bulletEl );
+ swiper.a11y.makeElFocusable( $bulletEl );
+
+ if ( ! swiper.params.pagination.renderBullet ) {
+ swiper.a11y.addElRole( $bulletEl, 'button' );
+ swiper.a11y.addElLabel(
+ $bulletEl,
+ params.paginationBulletMessage.replace( /\{\{index\}\}/, $bulletEl.index() + 1 )
+ );
+ }
+ } );
+ }
+ },
+ init: function init() {
+ var swiper = this;
+ var params = swiper.params.a11y;
+ swiper.$el.append( swiper.a11y.liveRegion ); // Container
+
+ var $containerEl = swiper.$el;
+
+ if ( params.containerRoleDescriptionMessage ) {
+ swiper.a11y.addElRoleDescription( $containerEl, params.containerRoleDescriptionMessage );
+ }
+
+ if ( params.containerMessage ) {
+ swiper.a11y.addElLabel( $containerEl, params.containerMessage );
+ } // Wrapper
+
+ var $wrapperEl = swiper.$wrapperEl;
+ var wrapperId =
+ $wrapperEl.attr( 'id' ) || 'swiper-wrapper-' + swiper.a11y.getRandomNumber( 16 );
+ var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
+ swiper.a11y.addElId( $wrapperEl, wrapperId );
+ swiper.a11y.addElLive( $wrapperEl, live ); // Slide
+
+ if ( params.itemRoleDescriptionMessage ) {
+ swiper.a11y.addElRoleDescription( $( swiper.slides ), params.itemRoleDescriptionMessage );
+ }
+
+ swiper.a11y.addElRole( $( swiper.slides ), params.slideRole );
+ swiper.slides.each( function ( slideEl ) {
+ var $slideEl = $( slideEl );
+ var ariaLabelMessage = params.slideLabelMessage
+ .replace( /\{\{index\}\}/, $slideEl.index() + 1 )
+ .replace( /\{\{slidesLength\}\}/, swiper.slides.length );
+ swiper.a11y.addElLabel( $slideEl, ariaLabelMessage );
+ } ); // Navigation
+
+ var $nextEl;
+ var $prevEl;
+
+ if ( swiper.navigation && swiper.navigation.$nextEl ) {
+ $nextEl = swiper.navigation.$nextEl;
+ }
+
+ if ( swiper.navigation && swiper.navigation.$prevEl ) {
+ $prevEl = swiper.navigation.$prevEl;
+ }
+
+ if ( $nextEl && $nextEl.length ) {
+ swiper.a11y.makeElFocusable( $nextEl );
+
+ if ( $nextEl[ 0 ].tagName !== 'BUTTON' ) {
+ swiper.a11y.addElRole( $nextEl, 'button' );
+ $nextEl.on( 'keydown', swiper.a11y.onEnterOrSpaceKey );
+ }
+
+ swiper.a11y.addElLabel( $nextEl, params.nextSlideMessage );
+ swiper.a11y.addElControls( $nextEl, wrapperId );
+ }
+
+ if ( $prevEl && $prevEl.length ) {
+ swiper.a11y.makeElFocusable( $prevEl );
+
+ if ( $prevEl[ 0 ].tagName !== 'BUTTON' ) {
+ swiper.a11y.addElRole( $prevEl, 'button' );
+ $prevEl.on( 'keydown', swiper.a11y.onEnterOrSpaceKey );
+ }
+
+ swiper.a11y.addElLabel( $prevEl, params.prevSlideMessage );
+ swiper.a11y.addElControls( $prevEl, wrapperId );
+ } // Pagination
+
+ if (
+ swiper.pagination &&
+ swiper.params.pagination.clickable &&
+ swiper.pagination.bullets &&
+ swiper.pagination.bullets.length
+ ) {
+ swiper.pagination.$el.on(
+ 'keydown',
+ classesToSelector( swiper.params.pagination.bulletClass ),
+ swiper.a11y.onEnterOrSpaceKey
+ );
+ }
+ },
+ destroy: function destroy() {
+ var swiper = this;
+ if ( swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0 )
+ swiper.a11y.liveRegion.remove();
+ var $nextEl;
+ var $prevEl;
+
+ if ( swiper.navigation && swiper.navigation.$nextEl ) {
+ $nextEl = swiper.navigation.$nextEl;
+ }
+
+ if ( swiper.navigation && swiper.navigation.$prevEl ) {
+ $prevEl = swiper.navigation.$prevEl;
+ }
+
+ if ( $nextEl ) {
+ $nextEl.off( 'keydown', swiper.a11y.onEnterOrSpaceKey );
+ }
+
+ if ( $prevEl ) {
+ $prevEl.off( 'keydown', swiper.a11y.onEnterOrSpaceKey );
+ } // Pagination
+
+ if (
+ swiper.pagination &&
+ swiper.params.pagination.clickable &&
+ swiper.pagination.bullets &&
+ swiper.pagination.bullets.length
+ ) {
+ swiper.pagination.$el.off(
+ 'keydown',
+ classesToSelector( swiper.params.pagination.bulletClass ),
+ swiper.a11y.onEnterOrSpaceKey
+ );
+ }
+ },
+ };
+ var A11y$1 = {
+ name: 'a11y',
+ params: {
+ a11y: {
+ enabled: true,
+ notificationClass: 'swiper-notification',
+ prevSlideMessage: 'Previous slide',
+ nextSlideMessage: 'Next slide',
+ firstSlideMessage: 'This is the first slide',
+ lastSlideMessage: 'This is the last slide',
+ paginationBulletMessage: 'Go to slide {{index}}',
+ slideLabelMessage: '{{index}} / {{slidesLength}}',
+ containerMessage: null,
+ containerRoleDescriptionMessage: null,
+ itemRoleDescriptionMessage: null,
+ slideRole: 'group',
+ },
+ },
+ create: function create() {
+ var swiper = this;
+ bindModuleMethods( swiper, {
+ a11y: _extends( {}, A11y, {
+ liveRegion: $(
+ '<span class="' +
+ swiper.params.a11y.notificationClass +
+ '" aria-live="assertive" aria-atomic="true"></span>'
+ ),
+ } ),
+ } );
+ },
+ on: {
+ afterInit: function afterInit( swiper ) {
+ if ( ! swiper.params.a11y.enabled ) return;
+ swiper.a11y.init();
+ swiper.a11y.updateNavigation();
+ },
+ toEdge: function toEdge( swiper ) {
+ if ( ! swiper.params.a11y.enabled ) return;
+ swiper.a11y.updateNavigation();
+ },
+ fromEdge: function fromEdge( swiper ) {
+ if ( ! swiper.params.a11y.enabled ) return;
+ swiper.a11y.updateNavigation();
+ },
+ paginationUpdate: function paginationUpdate( swiper ) {
+ if ( ! swiper.params.a11y.enabled ) return;
+ swiper.a11y.updatePagination();
+ },
+ destroy: function destroy( swiper ) {
+ if ( ! swiper.params.a11y.enabled ) return;
+ swiper.a11y.destroy();
+ },
+ },
+ };
+
+ // Swiper Class
+ var components = [ Navigation$1, Pagination$1, Zoom$1, A11y$1 ];
+ Swiper.use( components );
+
+ return Swiper;
+} );
+//# sourceMappingURL=swiper-bundle.js.map
diff --git a/plugins/jetpack/modules/cloudflare-analytics/cloudflare-analytics.php b/plugins/jetpack/modules/cloudflare-analytics/cloudflare-analytics.php
new file mode 100644
index 00000000..63b2a814
--- /dev/null
+++ b/plugins/jetpack/modules/cloudflare-analytics/cloudflare-analytics.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Cloudflare Analytics
+ * Let WPCOM users automatically insert a Cloudflare analytics JS snippet into their site header.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Cloudflare_Analytics;
+
+use Automattic\Jetpack\Status\Host;
+
+/**
+ * Add Cloudflare Analytics tracking code to the head.
+ * This is currently only available to Atomic and WordPress.com Simple sites.
+ *
+ * @since 9.5.0
+ */
+function insert_tracking_id() {
+ $option = get_option( 'jetpack_cloudflare_analytics' );
+
+ if (
+ ! empty( $option['code'] )
+ && ! is_admin()
+ && ( class_exists( 'Jetpack_AMP_Support' ) && ! \Jetpack_AMP_Support::is_amp_request() )
+ && ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) || ( new Host() )->is_woa_site() )
+ ) {
+ printf(
+ "<!-- Jetpack Cloudflare Web Analytics -->
+<script defer
+ src='https://static.cloudflareinsights.com/beacon.min.js'
+ data-cf-beacon='{\"token\": \"%s\"}'>
+</script>
+<!-- End Jetpack Cloudflare Web Analytics -->\r\n",
+ esc_html( $option['code'] )
+ );
+ }
+}
+add_action( 'wp_footer', __NAMESPACE__ . '\insert_tracking_id', 999 );
diff --git a/plugins/jetpack/modules/comment-likes.php b/plugins/jetpack/modules/comment-likes.php
index b40bd2f3..6c2acdf8 100644
--- a/plugins/jetpack/modules/comment-likes.php
+++ b/plugins/jetpack/modules/comment-likes.php
@@ -1,4 +1,4 @@
-<?php
+<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Module Name: Comment Likes
* Module Description: Increase visitor engagement by adding a Like button to comments.
@@ -9,23 +9,27 @@
* Auto Activate: No
* Module Tags: Social
* Additional Search Queries: like widget, like button, like, likes
+ *
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
-Jetpack::dns_prefetch(
- array(
- '//widgets.wp.com',
- )
-);
+Assets::add_resource_hint( '//widgets.wp.com', 'dns-prefetch' );
-require_once dirname( __FILE__ ) . '/likes/jetpack-likes-master-iframe.php';
-require_once dirname( __FILE__ ) . '/likes/jetpack-likes-settings.php';
+require_once __DIR__ . '/likes/jetpack-likes-master-iframe.php';
+require_once __DIR__ . '/likes/jetpack-likes-settings.php';
+/**
+ * Jetpack Comment Like Class
+ */
class Jetpack_Comment_Likes {
+ /**
+ * Initialize comment like module
+ */
public static function init() {
- static $instance = NULL;
+ static $instance = null;
if ( ! $instance ) {
$instance = new Jetpack_Comment_Likes();
@@ -34,6 +38,9 @@ class Jetpack_Comment_Likes {
return $instance;
}
+ /**
+ * Construct comment like module.
+ */
private function __construct() {
$this->settings = new Jetpack_Likes_Settings();
$this->blog_id = Jetpack_Options::get_option( 'id' );
@@ -47,18 +54,18 @@ class Jetpack_Comment_Likes {
if ( ! Jetpack::is_module_active( 'likes' ) ) {
$active = Jetpack::get_active_modules();
- if ( ! in_array( 'sharedaddy', $active ) && ! in_array( 'publicize', $active ) ) {
- // we don't have a sharing page yet
+ if ( ! in_array( 'sharedaddy', $active, true ) && ! in_array( 'publicize', $active, true ) ) {
+ // we don't have a sharing page yet.
add_action( 'admin_menu', array( $this->settings, 'sharing_menu' ) );
}
- if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) {
- // we have a sharing page but not the global options area
+ if ( in_array( 'publicize', $active, true ) && ! in_array( 'sharedaddy', $active, true ) ) {
+ // we have a sharing page but not the global options area.
add_action( 'pre_admin_screen_sharing', array( $this->settings, 'sharing_block' ), 20 );
add_action( 'pre_admin_screen_sharing', array( $this->settings, 'updated_message' ), -10 );
}
- if( ! in_array( 'sharedaddy', $active ) ) {
+ if ( ! in_array( 'sharedaddy', $active, true ) ) {
add_action( 'admin_init', array( $this->settings, 'process_update_requests_if_sharedaddy_not_loaded' ) );
add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_showbuttonon_init' ), 19 );
add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_showbuttonon_callback' ), 19 );
@@ -71,16 +78,25 @@ class Jetpack_Comment_Likes {
add_action( 'save_post', array( $this->settings, 'meta_box_save' ) );
add_action( 'edit_attachment', array( $this->settings, 'meta_box_save' ) );
add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_init' ), 20 );
- add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 );
+ add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 );
}
}
+ /**
+ * Initialize admin section
+ */
public function admin_init() {
add_filter( 'manage_edit-comments_columns', array( $this, 'add_like_count_column' ) );
add_action( 'manage_comments_custom_column', array( $this, 'comment_likes_edit_column' ), 10, 2 );
add_action( 'admin_print_styles-edit-comments.php', array( $this, 'enqueue_admin_styles_scripts' ) );
}
+ /**
+ * Displays number of comment likes in comment admin page.
+ *
+ * @param string $column_name name of the column.
+ * @param int $comment_id ID of the comment.
+ */
public function comment_likes_edit_column( $column_name, $comment_id ) {
if ( 'comment_likes' !== $column_name ) {
return;
@@ -89,18 +105,21 @@ class Jetpack_Comment_Likes {
$permalink = get_permalink( get_the_ID() );
?>
<a
- data-comment-id="<?php echo absint( $comment_id ); ?>"
- data-blog-id="<?php echo absint( $this->blog_id ); ?>"
- class="comment-like-count"
- id="comment-like-count-<?php echo absint( $comment_id ); ?>"
- href="<?php echo esc_url( $permalink ); ?>#comment-<?php echo absint( $comment_id ); ?>"
+ data-comment-id="<?php echo absint( $comment_id ); ?>"
+ data-blog-id="<?php echo absint( $this->blog_id ); ?>"
+ class="comment-like-count"
+ id="comment-like-count-<?php echo absint( $comment_id ); ?>"
+ href="<?php echo esc_url( $permalink ); ?>#comment-<?php echo absint( $comment_id ); ?>"
>
<span class="like-count">0</span>
</a>
<?php
}
- function enqueue_admin_styles_scripts() {
+ /**
+ * Enqueue admin style scripts.
+ */
+ public function enqueue_admin_styles_scripts() {
wp_enqueue_style( 'comment-like-count', plugins_url( 'comment-likes/admin-style.css', __FILE__ ), array(), JETPACK__VERSION );
wp_enqueue_script(
'comment-like-count',
@@ -109,16 +128,24 @@ class Jetpack_Comment_Likes {
'modules/comment-likes/comment-like-count.js'
),
array( 'jquery' ),
- JETPACK__VERSION
+ JETPACK__VERSION,
+ false
);
}
+ /**
+ * Adds like count column to admin page.
+ *
+ * @param array $columns column of admin table.
+ */
public function add_like_count_column( $columns ) {
$columns['comment_likes'] = '<span class="vers"></span>';
-
return $columns;
}
+ /**
+ * Initialize front end
+ */
public function frontend_init() {
if ( Jetpack_AMP_Support::is_amp_request() ) {
return;
@@ -128,31 +155,27 @@ class Jetpack_Comment_Likes {
add_filter( 'comment_text', array( $this, 'comment_likes' ), 10, 2 );
}
+ /**
+ * Load styling scripts
+ */
public function load_styles_register_scripts() {
+ if ( ! $this->settings->is_likes_visible() ) {
+ return;
+ }
+
if ( ! wp_style_is( 'open-sans', 'registered' ) ) {
wp_register_style( 'open-sans', 'https://fonts.googleapis.com/css?family=Open+Sans', array(), JETPACK__VERSION );
}
wp_enqueue_style( 'jetpack_likes', plugins_url( 'likes/style.css', __FILE__ ), array( 'open-sans' ), JETPACK__VERSION );
- wp_enqueue_script(
- 'postmessage',
- Assets::get_file_url_for_environment( '_inc/build/postmessage.min.js', '_inc/postmessage.js' ),
- array( 'jquery' ),
- JETPACK__VERSION,
- false
- );
- wp_enqueue_script(
- 'jetpack_resize',
- Assets::get_file_url_for_environment(
- '_inc/build/jquery.jetpack-resize.min.js',
- '_inc/jquery.jetpack-resize.js'
- ),
- array( 'jquery' ),
- JETPACK__VERSION,
- false
- );
- wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'likes/queuehandler.js' , __FILE__ ), array( 'jquery', 'postmessage', 'jetpack_resize' ), JETPACK__VERSION, true );
+ wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'likes/queuehandler.js', __FILE__ ), array(), JETPACK__VERSION, true );
}
+ /**
+ * Display like count.
+ *
+ * @param string $content text content of the comment itself.
+ * @param object $comment comment object containing comment data.
+ */
public function comment_likes( $content, $comment = null ) {
if ( empty( $comment ) ) {
return $content;
@@ -183,9 +206,9 @@ class Jetpack_Comment_Likes {
$name = sprintf( 'like-comment-frame-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid );
$wrapper = sprintf( 'like-comment-wrapper-%1$d-%2$d-%3$s', $this->blog_id, $comment_id, $uniqid );
- $html = '';
+ $html = '';
$html .= "<div class='jetpack-comment-likes-widget-wrapper jetpack-likes-widget-unloaded' id='$wrapper' data-src='$src' data-name='$name'>";
- $html .= "<div class='likes-widget-placeholder comment-likes-widget-placeholder comment-likes'><span class='loading'>" . esc_html__( 'Loading...', 'jetpack' ) . "</span></div>";
+ $html .= "<div class='likes-widget-placeholder comment-likes-widget-placeholder comment-likes'><span class='loading'>" . esc_html__( 'Loading...', 'jetpack' ) . '</span></div>';
$html .= "<div class='comment-likes-widget jetpack-likes-widget comment-likes'><span class='comment-like-feedback'></span>";
$html .= "<span class='sd-text-color'></span><a class='sd-link-color'></a>";
$html .= '</div></div>';
diff --git a/plugins/jetpack/modules/comment-likes/admin-style.css b/plugins/jetpack/modules/comment-likes/admin-style.css
index 7079fe7e..9710ea66 100644
--- a/plugins/jetpack/modules/comment-likes/admin-style.css
+++ b/plugins/jetpack/modules/comment-likes/admin-style.css
@@ -16,7 +16,7 @@
margin-top: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
- background-color: #72777c;
+ background-color: #787c82;
color: #fff;
font-size: 11px;
line-height: 21px;
@@ -27,7 +27,7 @@
}
.fixed .column-comment_likes .comment-like-count:hover {
- background-color: #0073aa;
+ background-color: #2271b1;
}
.fixed .column-comment_likes .vers:before {
diff --git a/plugins/jetpack/modules/comment-likes/comment-like-count.js b/plugins/jetpack/modules/comment-likes/comment-like-count.js
index c46503b4..5d8331f3 100644
--- a/plugins/jetpack/modules/comment-likes/comment-like-count.js
+++ b/plugins/jetpack/modules/comment-likes/comment-like-count.js
@@ -1,9 +1,9 @@
-jQuery( document ).ready( function( $ ) {
+jQuery( document ).ready( function ( $ ) {
var jsonAPIbase = 'https://public-api.wordpress.com/rest/v1',
APIqueue = [];
function getCommentLikeCounts() {
- $( '.comment-like-count' ).each( function() {
+ $( '.comment-like-count' ).each( function () {
var blogId = $( this ).attr( 'data-blog-id' ),
commentId = $( this ).attr( 'data-comment-id' );
@@ -15,7 +15,7 @@ jQuery( document ).ready( function( $ ) {
url: jsonAPIbase + '/batch',
dataType: 'jsonp',
data: 'urls[]=' + APIqueue.map( encodeURIComponent ).join( '&urls[]=' ),
- success: function( response ) {
+ success: function ( response ) {
for ( var path in response ) {
if ( ! response[ path ].error_data ) {
var urlPieces = path.split( '/' ),
@@ -34,7 +34,7 @@ jQuery( document ).ready( function( $ ) {
}
}
},
- error: function() {},
+ error: function () {},
} );
}
diff --git a/plugins/jetpack/modules/comments.php b/plugins/jetpack/modules/comments.php
index 4e607b86..6da9f924 100644
--- a/plugins/jetpack/modules/comments.php
+++ b/plugins/jetpack/modules/comments.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Module Name: Comments
* Module Description: Let visitors use a WordPress.com, Twitter, Facebook, or Google account to comment
@@ -10,27 +9,41 @@
* Module Tags: Social
* Feature: Engagement
* Additional Search Queries: comments, comment, facebook, twitter, google+, social
+ *
+ * @package automattic/jetpack
*/
-require dirname( __FILE__ ) . '/comments/comments.php';
+use Automattic\Jetpack\Assets;
+
+Assets::add_resource_hint(
+ array(
+ '//jetpack.wordpress.com',
+ '//s0.wp.com',
+ '//public-api.wordpress.com',
+ '//0.gravatar.com',
+ '//1.gravatar.com',
+ '//2.gravatar.com',
+ ),
+ 'dns-prefetch'
+);
+
+/*
+ * Add the main commenting system.
+ */
+require __DIR__ . '/comments/comments.php';
if ( is_admin() ) {
- require dirname( __FILE__ ) . '/comments/admin.php';
+ /**
+ * Add the admin functionality.
+ */
+ require __DIR__ . '/comments/admin.php';
}
+/**
+ * Module loader.
+ */
function jetpack_comments_load() {
Jetpack::enable_module_configurable( __FILE__ );
}
add_action( 'jetpack_modules_loaded', 'jetpack_comments_load' );
-
-Jetpack::dns_prefetch( array(
- '//jetpack.wordpress.com',
- '//s0.wp.com',
- '//s1.wp.com',
- '//s2.wp.com',
- '//public-api.wordpress.com',
- '//0.gravatar.com',
- '//1.gravatar.com',
- '//2.gravatar.com',
-) );
diff --git a/plugins/jetpack/modules/comments/base.php b/plugins/jetpack/modules/comments/base.php
index 137dd982..f6f9834a 100644
--- a/plugins/jetpack/modules/comments/base.php
+++ b/plugins/jetpack/modules/comments/base.php
@@ -195,6 +195,7 @@ class Highlander_Comments_Base {
}
add_filter( 'pre_option_comment_registration', '__return_zero' );
+ add_filter( 'pre_option_require_name_email', '__return_zero' );
}
/**
diff --git a/plugins/jetpack/modules/comments/comments.php b/plugins/jetpack/modules/comments/comments.php
index dfc8f070..368f1633 100644
--- a/plugins/jetpack/modules/comments/comments.php
+++ b/plugins/jetpack/modules/comments/comments.php
@@ -1,12 +1,12 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
require dirname( __FILE__ ) . '/base.php';
-use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\Tokens;
/**
* Main Comments class
*
- * @package JetpackComments
+ * @package automattic/jetpack
* @version 1.4
* @since 1.4
*/
@@ -174,7 +174,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*/
public function comment_form_before() {
/**
- * Filters the setting that determines if Jetpagk comments should be enabled for
+ * Filters the setting that determines if Jetpack comments should be enabled for
* the current post type.
*
* @module comments
@@ -277,11 +277,11 @@ class Jetpack_Comments extends Highlander_Comments_Base {
$params['has_cookie_consent'] = (int) ! empty( $commenter['comment_author_email'] );
}
- $blog_token = Jetpack_Data::get_access_token();
+ $blog_token = ( new Tokens() )->get_access_token();
list( $token_key ) = explode( '.', $blog_token->secret, 2 );
// Prophylactic check: anything else should never happen.
if ( $token_key && $token_key !== $blog_token->secret ) {
- // Is the token a Special Token (@see class.jetpack-data.php)?
+ // Is the token a Special Token (@see class.tokens.php)?
if ( preg_match( '/^;.\d+;\d+;$/', $token_key, $matches ) ) {
// The token key for a Special Token is public.
$params['token_key'] = $token_key;
@@ -292,7 +292,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
* one Normal Token per site, avoid concern by
* sending the magic "use the Normal Token" token key.
*/
- $params['token_key'] = Connection_Manager::MAGIC_NORMAL_TOKEN_KEY;
+ $params['token_key'] = Tokens::MAGIC_NORMAL_TOKEN_KEY;
}
}
@@ -325,6 +325,8 @@ class Jetpack_Comments extends Highlander_Comments_Base {
$show_greeting = apply_filters( 'jetpack_comment_form_display_greeting', true );
// The actual iframe (loads comment form from Jetpack server)
+
+ $is_amp = Jetpack_AMP_Support::is_amp_request();
?>
<div id="respond" class="comment-respond">
@@ -334,8 +336,26 @@ class Jetpack_Comments extends Highlander_Comments_Base {
</h3>
<?php endif; ?>
<form id="commentform" class="comment-form">
- <iframe title="<?php esc_attr_e( 'Comment Form', 'jetpack' ); ?>" src="<?php echo esc_url( $url ); ?>" style="width:100%; height: <?php echo $height; ?>px; border:0;" name="jetpack_remote_comment" class="jetpack_remote_comment" id="jetpack_remote_comment" sandbox="allow-same-origin allow-top-navigation allow-scripts allow-forms allow-popups"></iframe>
- <?php if ( ! Jetpack_AMP_Support::is_amp_request() ) : ?>
+ <iframe
+ title="<?php esc_attr_e( 'Comment Form', 'jetpack' ); ?>"
+ src="<?php echo esc_url( $url ); ?>"
+ <?php if ( $is_amp ) : ?>
+ resizable
+ layout="fixed-height"
+ height="<?php echo esc_attr( $height ); ?>"
+ <?php else : ?>
+ name="jetpack_remote_comment"
+ style="width:100%; height: <?php echo esc_attr( $height ); ?>px; border:0;"
+ <?php endif; ?>
+ class="jetpack_remote_comment"
+ id="jetpack_remote_comment"
+ sandbox="allow-same-origin allow-top-navigation allow-scripts allow-forms allow-popups"
+ >
+ <?php if ( $is_amp ) : ?>
+ <button overflow><?php esc_html_e( 'Show more', 'jetpack' ); ?></button>
+ <?php endif; ?>
+ </iframe>
+ <?php if ( ! $is_amp ) : ?>
<!--[if !IE]><!-->
<script>
document.addEventListener('DOMContentLoaded', function () {
@@ -364,6 +384,11 @@ class Jetpack_Comments extends Highlander_Comments_Base {
* @since JetpackComments (1.4)
*/
public function watch_comment_parent() {
+ if ( Jetpack_AMP_Support::is_amp_request() ) {
+ // @todo Implement AMP support.
+ return;
+ }
+
$url_origin = 'https://jetpack.wordpress.com';
?>
@@ -444,7 +469,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
if ( iframe_url.replace( /^http:\/\//i, 'https://' ) !== origin ) {
return;
}
- jQuery( frame ).height( event.data );
+ frame.style.height = event.data + 'px';
});
} else if ( document.attachEvent ) {
window.attachEvent( 'message', function ( event ) {
@@ -452,7 +477,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
if ( iframe_url.replace( /^http:\/\//i, 'https://' ) !== origin ) {
return;
}
- jQuery( frame ).height( event.data );
+ frame.style.height = event.data + 'px';
});
}
}
@@ -485,7 +510,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
$post_array['hc_avatar'] = htmlentities( $post_array['hc_avatar'] );
}
- $blog_token = Jetpack_Data::get_access_token( false, $post_array['token_key'] );
+ $blog_token = ( new Tokens() )->get_access_token( false, $post_array['token_key'] );
if ( ! $blog_token ) {
wp_die( __( 'Unknown security token.', 'jetpack' ), 400 );
}
diff --git a/plugins/jetpack/modules/contact-form/admin.php b/plugins/jetpack/modules/contact-form/admin.php
index c8c7d053..9636fa13 100644
--- a/plugins/jetpack/modules/contact-form/admin.php
+++ b/plugins/jetpack/modules/contact-form/admin.php
@@ -129,40 +129,6 @@ function grunion_add_bulk_edit_option() {
}
/**
- * Hack an 'Empty Spam' button to spam view
- *
- * Leverages core's delete_all functionality
- */
-add_action( 'admin_head', 'grunion_add_empty_spam_button' );
-function grunion_add_empty_spam_button() {
- $screen = get_current_screen();
-
- if ( is_null( $screen ) ) {
- return;
- }
-
- // Only add to feedback, only to spam view
- if ( 'edit-feedback' != $screen->id
- || empty( $_GET['post_status'] )
- || 'spam' !== $_GET['post_status'] ) {
- return;
- }
-
- // Get HTML for the button
- $button_html = wp_nonce_field( 'bulk-destroy', '_destroy_nonce', true, false );
- $button_html .= get_submit_button( __( 'Empty Spam', 'jetpack' ), 'apply', 'delete_all', false );
-
- // Add the button next to the filter button via js
- ?>
- <script type="text/javascript">
- jQuery(document).ready(function($) {
- $('#posts-filter #post-query-submit').after('<?php echo $button_html; ?>' );
- })
- </script>
- <?php
-}
-
-/**
* Handle a bulk spam report
*/
add_action( 'admin_init', 'grunion_handle_bulk_spam' );
@@ -228,13 +194,6 @@ function grunion_message_bulk_spam() {
echo '<div class="updated"><p>' . __( 'Feedback(s) marked as spam', 'jetpack' ) . '</p></div>';
}
-// remove admin UI parts that we don't support in feedback management
-add_action( 'admin_menu', 'grunion_admin_menu' );
-function grunion_admin_menu() {
- global $menu, $submenu;
- unset( $submenu['edit.php?post_type=feedback'] );
-}
-
add_filter( 'bulk_actions-edit-feedback', 'grunion_admin_bulk_actions' );
function grunion_admin_bulk_actions( $actions ) {
global $current_screen;
@@ -650,14 +609,12 @@ function grunion_ajax_spam() {
if ( $_POST['make_it'] == 'spam' ) {
$post->post_status = 'spam';
$status = wp_insert_post( $post );
- wp_transition_post_status( 'spam', 'publish', $post );
/** This action is already documented in modules/contact-form/admin.php */
do_action( 'contact_form_akismet', 'spam', $akismet_values );
} elseif ( $_POST['make_it'] == 'ham' ) {
$post->post_status = 'publish';
$status = wp_insert_post( $post );
- wp_transition_post_status( 'publish', 'spam', $post );
/** This action is already documented in modules/contact-form/admin.php */
do_action( 'contact_form_akismet', 'ham', $akismet_values );
@@ -803,6 +760,22 @@ function grunion_enable_spam_recheck() {
return;
}
+ // Add the actual "Check for Spam" button.
+ add_action( 'admin_head', 'grunion_check_for_spam_button' );
+}
+
+add_action( 'admin_enqueue_scripts', 'grunion_enable_spam_recheck' );
+
+/**
+ * Add the JS and CSS necessary for the Feedback admin page to function.
+ */
+function grunion_add_admin_scripts() {
+ $screen = get_current_screen();
+
+ if ( 'edit-feedback' !== $screen->id ) {
+ return;
+ }
+
// Add the scripts that handle the spam check event.
wp_register_script(
'grunion-admin',
@@ -810,33 +783,62 @@ function grunion_enable_spam_recheck() {
'_inc/build/contact-form/js/grunion-admin.min.js',
'modules/contact-form/js/grunion-admin.js'
),
- array( 'jquery' )
+ array( 'jquery' ),
+ JETPACK__VERSION,
+ true
);
+
wp_enqueue_script( 'grunion-admin' );
wp_enqueue_style( 'grunion.css' );
- // Add the actual "Check for Spam" button.
- add_action( 'admin_head', 'grunion_check_for_spam_button' );
+ // Only add to feedback, only to spam view.
+ if ( empty( $_GET['post_status'] ) || 'spam' !== $_GET['post_status'] ) {
+ return;
+ }
+
+ $feedbacks_count = wp_count_posts( 'feedback' );
+ $nonce = wp_create_nonce( 'jetpack_delete_spam_feedbacks' );
+ $success_url = remove_query_arg( array( 'jetpack_empty_feedback_spam_error', 'post_status' ) ); // Go to the "All Feedback" page.
+ $failure_url = add_query_arg( 'jetpack_empty_feedback_spam_error', '1' ); // Refresh the current page and show an error.
+ $spam_count = $feedbacks_count->spam;
+
+ $button_parameters = array(
+ /* translators: The placeholder is for showing how much of the process has completed, as a percent. e.g., "Emptying Spam (40%)" */
+ 'progress_label' => __( 'Emptying Spam (%1$s%)', 'jetpack' ),
+ 'success_url' => $success_url,
+ 'failure_url' => $failure_url,
+ 'spam_count' => $spam_count,
+ 'nonce' => $nonce,
+ 'label' => __( 'Empty Spam', 'jetpack' ),
+ );
+
+ wp_localize_script( 'grunion-admin', 'jetpack_empty_spam_button_parameters', $button_parameters );
}
-add_action( 'admin_enqueue_scripts', 'grunion_enable_spam_recheck' );
+add_action( 'admin_enqueue_scripts', 'grunion_add_admin_scripts' );
/**
* Add the "Check for Spam" button to the Feedbacks dashboard page.
*/
function grunion_check_for_spam_button() {
- // Get HTML for the button
+ // Nonce name.
+ $nonce_name = 'jetpack_check_feedback_spam_' . (string) get_current_blog_id();
+ // Get HTML for the button.
$button_html = get_submit_button(
__( 'Check for Spam', 'jetpack' ),
'secondary',
'jetpack-check-feedback-spam',
false,
- array( 'class' => 'jetpack-check-feedback-spam' )
+ array(
+ 'data-failure-url' => add_query_arg( 'jetpack_check_feedback_spam_error', '1' ), // Refresh the current page and show an error.
+ 'data-nonce-name' => $nonce_name,
+ )
);
$button_html .= '<span class="jetpack-check-feedback-spam-spinner"></span>';
+ $button_html .= wp_nonce_field( 'grunion_recheck_queue', $nonce_name, false, false );
- // Add the button next to the filter button via js
+ // Add the button next to the filter button via js.
?>
<script type="text/javascript">
jQuery( function( $ ) {
@@ -850,12 +852,33 @@ function grunion_check_for_spam_button() {
* Recheck all approved feedbacks for spam.
*/
function grunion_recheck_queue() {
- global $wpdb;
+ $blog_id = get_current_blog_id();
+
+ if (
+ empty( $_POST[ 'jetpack_check_feedback_spam_' . (string) $blog_id ] )
+ || ! wp_verify_nonce( sanitize_key( $_POST[ 'jetpack_check_feedback_spam_' . (string) $blog_id ] ), 'grunion_recheck_queue' )
+ ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack' ),
+ 403
+ );
+
+ return;
+ }
+
+ if ( ! current_user_can( 'delete_others_posts' ) ) {
+ wp_send_json_error(
+ __( 'You don’t have permission to do that.', 'jetpack' ),
+ 403
+ );
+
+ return;
+ }
$query = 'post_type=feedback&post_status=publish';
if ( isset( $_POST['limit'], $_POST['offset'] ) ) {
- $query .= '&posts_per_page=' . intval( $_POST['limit'] ) . '&offset=' . intval( $_POST['offset'] );
+ $query .= '&posts_per_page=' . (int) $_POST['limit'] . '&offset=' . (int) $_POST['offset'];
}
$approved_feedbacks = get_posts( $query );
@@ -863,6 +886,15 @@ function grunion_recheck_queue() {
foreach ( $approved_feedbacks as $feedback ) {
$meta = get_post_meta( $feedback->ID, '_feedback_akismet_values', true );
+ if ( ! $meta ) {
+ // _feedback_akismet_values is eventually deleted when it's no longer
+ // within a reasonable time period to check the feedback for spam, so
+ // if it's gone, don't attempt a spam recheck.
+ continue;
+ }
+
+ $meta['recheck_reason'] = 'recheck_queue';
+
/**
* Filter whether the submitted feedback is considered as spam.
*
@@ -895,3 +927,82 @@ function grunion_recheck_queue() {
}
add_action( 'wp_ajax_grunion_recheck_queue', 'grunion_recheck_queue' );
+
+/**
+ * Delete a number of spam feedbacks via an AJAX request.
+ */
+function grunion_delete_spam_feedbacks() {
+ if ( ! wp_verify_nonce( $_POST['nonce'], 'jetpack_delete_spam_feedbacks' ) ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack' ),
+ 403
+ );
+
+ return;
+ }
+
+ if ( ! current_user_can( 'delete_others_posts' ) ) {
+ wp_send_json_error(
+ __( 'You don’t have permission to do that.', 'jetpack' ),
+ 403
+ );
+
+ return;
+ }
+
+ $deleted_feedbacks = 0;
+
+ $delete_limit = 25;
+ /**
+ * Filter the amount of Spam feedback one can delete at once.
+ *
+ * @module contact-form
+ *
+ * @since 8.7.0
+ *
+ * @param int $delete_limit Number of spam to process at once. Default to 25.
+ */
+ $delete_limit = apply_filters( 'jetpack_delete_spam_feedbacks_limit', $delete_limit );
+ $delete_limit = (int) $delete_limit;
+ $delete_limit = max( 1, min( 100, $delete_limit ) ); // Allow a range of 1-100 for the delete limit.
+
+ $query_args = array(
+ 'post_type' => 'feedback',
+ 'post_status' => 'spam',
+ 'posts_per_page' => $delete_limit,
+ );
+
+ $query = new WP_Query( $query_args );
+ $spam_feedbacks = $query->get_posts();
+
+ foreach ( $spam_feedbacks as $feedback ) {
+ wp_delete_post( $feedback->ID, true );
+
+ $deleted_feedbacks++;
+ }
+
+ wp_send_json(
+ array(
+ 'success' => true,
+ 'data' => array(
+ 'counts' => array(
+ 'deleted' => $deleted_feedbacks,
+ 'limit' => $delete_limit,
+ ),
+ ),
+ )
+ );
+}
+add_action( 'wp_ajax_jetpack_delete_spam_feedbacks', 'grunion_delete_spam_feedbacks' );
+
+/**
+ * Show an admin notice if the "Empty Spam" or "Check Spam" process was unable to complete, probably due to a permissions error.
+ */
+function grunion_feedback_admin_notice() {
+ if ( isset( $_GET['jetpack_empty_feedback_spam_error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ echo '<div class="notice notice-error"><p>' . esc_html( __( 'An error occurred while trying to empty the Feedback spam folder.', 'jetpack' ) ) . '</p></div>';
+ } elseif ( isset( $_GET['jetpack_check_feedback_spam_error'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ echo '<div class="notice notice-error"><p>' . esc_html( __( 'An error occurred while trying to check for spam among the feedback you received.', 'jetpack' ) ) . '</p></div>';
+ }
+}
+add_action( 'admin_notices', 'grunion_feedback_admin_notice' );
diff --git a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.css b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.css
index 1cfbf3ce..463d8191 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.css
@@ -44,7 +44,7 @@ body {
body {
margin: 0;
- background: #f5f5f5;
+ background: #f6f7f7;
}
.card:after {
@@ -122,7 +122,6 @@ input[type="email"],
input[type="url"] {
border-radius: 0;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
box-sizing: border-box;
margin: 0;
@@ -137,20 +136,6 @@ input[type="url"] {
box-shadow: none;
}
-input[type="text"]:-ms-input-placeholder,
-input[type="tel"]:-ms-input-placeholder,
-input[type="email"]:-ms-input-placeholder,
-input[type="url"]:-ms-input-placeholder {
- color: #87a6bc;
-}
-
-input[type="text"]::-ms-input-placeholder,
-input[type="tel"]::-ms-input-placeholder,
-input[type="email"]::-ms-input-placeholder,
-input[type="url"]::-ms-input-placeholder {
- color: #87a6bc;
-}
-
input[type="text"]::placeholder,
input[type="tel"]::placeholder,
input[type="email"]::placeholder,
@@ -198,20 +183,6 @@ input[type="url"]:disabled:hover {
cursor: default;
}
-input[type="text"]:disabled:-ms-input-placeholder,
-input[type="tel"]:disabled:-ms-input-placeholder,
-input[type="email"]:disabled:-ms-input-placeholder,
-input[type="url"]:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-input[type="text"]:disabled::-ms-input-placeholder,
-input[type="tel"]:disabled::-ms-input-placeholder,
-input[type="email"]:disabled::-ms-input-placeholder,
-input[type="url"]:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
input[type="text"]:disabled::placeholder,
input[type="tel"]:disabled::placeholder,
input[type="email"]:disabled::placeholder,
@@ -227,7 +198,6 @@ input[type="url"]:disabled::placeholder {
textarea {
border-radius: 0;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
box-sizing: border-box;
margin: 0;
@@ -243,14 +213,6 @@ textarea {
box-shadow: none;
}
-textarea:-ms-input-placeholder {
- color: #87a6bc;
-}
-
-textarea::-ms-input-placeholder {
- color: #87a6bc;
-}
-
textarea::placeholder {
color: #87a6bc;
}
@@ -280,14 +242,6 @@ textarea:disabled:hover {
cursor: default;
}
-textarea:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-textarea:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
textarea:disabled::placeholder {
color: #a8bece;
}
@@ -317,8 +271,7 @@ input[type="checkbox"] {
line-height: 0;
text-align: center;
vertical-align: middle;
- -moz-appearance: none;
- appearance: none;
+ appearance: none;
transition: all .15s ease-in-out;
clear: none;
cursor: pointer;
@@ -405,8 +358,7 @@ input[type=radio] {
vertical-align: middle;
width: 16px;
min-width: 16px;
- -moz-appearance: none;
- appearance: none;
+ appearance: none;
border-radius: 50%;
line-height: 10px;
}
@@ -457,16 +409,6 @@ input[type="radio"]:disabled:hover {
cursor: default;
}
-.radio-button:disabled:-ms-input-placeholder,
-input[type="radio"]:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-.radio-button:disabled::-ms-input-placeholder,
-input[type="radio"]:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
.radio-button:disabled::placeholder,
input[type="radio"]:disabled::placeholder {
color: #a8bece;
@@ -540,7 +482,6 @@ select {
/* Aligns the text to the 8px baseline grid and adds padding on right to allow for the arrow. */
padding: 7px 14px 9px 32px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
}
@@ -609,7 +550,6 @@ input[type="submit"] {
padding: 0;
font-size: 14px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
vertical-align: baseline;
background: white;
@@ -632,7 +572,6 @@ input[type="submit"] {
border-radius: 4px;
padding: 7px 14px 9px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
}
diff --git a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.min.css b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.min.css
index 9b7a27c2..5b888096 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style-rtl.min.css
@@ -1 +1 @@
-html{direction:rtl}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em;margin:0}a,a:visited{color:#0087be;text-decoration:none}a:active,a:focus,a:hover{color:$link-highlight}.card,body{display:block;position:relative;margin:0 auto 10px auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}body{margin:0;background:#f5f5f5}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.card:focus,.card:hover{box-shadow:0 0 0 1px #999,0 1px 2px #e9eff3}.card .delete-field{display:block;float:left}@media (min-width:481px){.card{margin-bottom:16px;padding:24px}body{padding:24px}}.card.is-compact{margin-bottom:1px}@media (min-width:481px){.card.is-compact{margin-bottom:1px;padding:16px 24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px;margin-top:8px}label:first-of-type{margin-top:4px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder{color:#87a6bc}input[type=email]::-ms-input-placeholder,input[type=tel]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder,input[type=url]::-ms-input-placeholder{color:#87a6bc}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled:-ms-input-placeholder,input[type=tel]:disabled:-ms-input-placeholder,input[type=text]:disabled:-ms-input-placeholder,input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::-ms-input-placeholder,input[type=tel]:disabled::-ms-input-placeholder,input[type=text]:disabled::-ms-input-placeholder,input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea:-ms-input-placeholder{color:#87a6bc}textarea::-ms-input-placeholder{color:#87a6bc}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled:-ms-input-placeholder{color:#a8bece}textarea:disabled::-ms-input-placeholder{color:#a8bece}textarea:disabled::placeholder{color:#a8bece}.checkbox,input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.checkbox:checked:before,input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.checkbox:disabled:checked:before,input[type=checkbox]:disabled:checked:before{color:#a8bece}.checkbox:hover,input[type=checkbox]:hover{border-color:#a8bece}.checkbox:focus,input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.checkbox:disabled,input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.checkbox:disabled:hover,input[type=checkbox]:disabled:hover{cursor:default}.checkbox+span,input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}.radio-button,input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.radio-button:hover,input[type=radio]:hover{border-color:#a8bece}.radio-button:focus,input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.radio-button:focus::-ms-clear,input[type=radio]:focus::-ms-clear{display:none}.radio-button:checked:before,input[type=radio]:checked:before{float:right;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.radio-button:disabled,input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.radio-button:disabled:hover,input[type=radio]:disabled:hover{cursor:default}.radio-button:disabled:-ms-input-placeholder,input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.radio-button:disabled::-ms-input-placeholder,input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.radio-button:disabled::placeholder,input[type=radio]:disabled::placeholder{color:#a8bece}.radio-button:disabled:checked::before,input[type=radio]:disabled:checked:before{background:#e9eff3}.radio-button+span,input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 14px 9px 32px;-webkit-appearance:none;-moz-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center}select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}input[type=submit].hidden{display:none}input[type=submit] .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}input[type=submit].button-primary{background:#00aadc;border-color:#008ab3;color:#fff}input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{border-color:#005082;color:#fff}input[type=submit].button-primary:disabled,input[type=submit].button-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}input[type=submit].button-primary{color:#fff}.ui-sortable-handle{cursor:move}.grunion-section-header{font-size:21px;margin-top:32px;font-weight:600}.grunion-form-settings:hover{box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.grunion-section-header:first-child{margin-top:0}.grunion-type-options{display:flex;flex-wrap:wrap}.grunion-type{flex-grow:0;flex-shrink:0}.grunion-type select{-webkit-appearance:none;width:100%}.grunion-required{padding:27px 16px 0 0;flex-grow:0;flex-shrink:0}.grunion-options{padding-top:16px}.grunion-options ol{list-style:none;padding:0;margin:8px 0 0}.grunion-options li{display:flex;margin-bottom:16px}.grunion-field-edit .grunion-options{display:none}.delete-field,.delete-option{color:#0087be;text-decoration:none;width:40px;line-height:40px;font-size:21px;text-align:center;font-weight:600}.delete-field{position:absolute;top:0;left:0}.grunion-controls{display:flex;flex-wrap:wrap}.grunion-update-controls{text-align:left;flex-grow:1}#add-field{flex-grow:0}.delete-field:before,.delete-option:before{font-family:Dashicons;content:"\f335";display:inline-block;speak:none}.grunion-field-edit.grunion-field-checkbox-multiple .grunion-options,.grunion-field-edit.grunion-field-radio .grunion-options,.grunion-field-edit.grunion-field-select .grunion-options{display:block}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important} \ No newline at end of file
+html{direction:rtl}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em;margin:0}a,a:visited{color:#0087be;text-decoration:none}a:active,a:focus,a:hover{color:$link-highlight}.card,body{display:block;position:relative;margin:0 auto 10px auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}body{margin:0;background:#f6f7f7}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.card:focus,.card:hover{box-shadow:0 0 0 1px #999,0 1px 2px #e9eff3}.card .delete-field{display:block;float:left}@media (min-width:481px){.card{margin-bottom:16px;padding:24px}body{padding:24px}}.card.is-compact{margin-bottom:1px}@media (min-width:481px){.card.is-compact{margin-bottom:1px;padding:16px 24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px;margin-top:8px}label:first-of-type{margin-top:4px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled::placeholder{color:#a8bece}.checkbox,input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.checkbox:checked:before,input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.checkbox:disabled:checked:before,input[type=checkbox]:disabled:checked:before{color:#a8bece}.checkbox:hover,input[type=checkbox]:hover{border-color:#a8bece}.checkbox:focus,input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.checkbox:disabled,input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.checkbox:disabled:hover,input[type=checkbox]:disabled:hover{cursor:default}.checkbox+span,input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}.radio-button,input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;appearance:none;border-radius:50%;line-height:10px}.radio-button:hover,input[type=radio]:hover{border-color:#a8bece}.radio-button:focus,input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.radio-button:focus::-ms-clear,input[type=radio]:focus::-ms-clear{display:none}.radio-button:checked:before,input[type=radio]:checked:before{float:right;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.radio-button:disabled,input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.radio-button:disabled:hover,input[type=radio]:disabled:hover{cursor:default}.radio-button:disabled::placeholder,input[type=radio]:disabled::placeholder{color:#a8bece}.radio-button:disabled:checked::before,input[type=radio]:disabled:checked:before{background:#e9eff3}.radio-button+span,input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 14px 9px 32px;-webkit-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center}select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}input[type=submit].hidden{display:none}input[type=submit] .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}input[type=submit].button-primary{background:#00aadc;border-color:#008ab3;color:#fff}input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{border-color:#005082;color:#fff}input[type=submit].button-primary:disabled,input[type=submit].button-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}input[type=submit].button-primary{color:#fff}.ui-sortable-handle{cursor:move}.grunion-section-header{font-size:21px;margin-top:32px;font-weight:600}.grunion-form-settings:hover{box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.grunion-section-header:first-child{margin-top:0}.grunion-type-options{display:flex;flex-wrap:wrap}.grunion-type{flex-grow:0;flex-shrink:0}.grunion-type select{-webkit-appearance:none;width:100%}.grunion-required{padding:27px 16px 0 0;flex-grow:0;flex-shrink:0}.grunion-options{padding-top:16px}.grunion-options ol{list-style:none;padding:0;margin:8px 0 0}.grunion-options li{display:flex;margin-bottom:16px}.grunion-field-edit .grunion-options{display:none}.delete-field,.delete-option{color:#0087be;text-decoration:none;width:40px;line-height:40px;font-size:21px;text-align:center;font-weight:600}.delete-field{position:absolute;top:0;left:0}.grunion-controls{display:flex;flex-wrap:wrap}.grunion-update-controls{text-align:left;flex-grow:1}#add-field{flex-grow:0}.delete-field:before,.delete-option:before{font-family:Dashicons;content:"\f335";display:inline-block;speak:none}.grunion-field-edit.grunion-field-checkbox-multiple .grunion-options,.grunion-field-edit.grunion-field-radio .grunion-options,.grunion-field-edit.grunion-field-select .grunion-options{display:block}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.css b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.css
index 13db02fd..596406ea 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.css
@@ -43,7 +43,7 @@ body {
body {
margin: 0;
- background: #f5f5f5;
+ background: #f6f7f7;
}
.card:after {
diff --git a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.min.css b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.min.css
index 7d3a0ca0..eb5a1fa2 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-inline-editing-style.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-html{direction:ltr}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em;margin:0}a,a:visited{color:#0087be;text-decoration:none}a:active,a:focus,a:hover{color:$link-highlight}.card,body{display:block;position:relative;margin:0 auto 10px auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}body{margin:0;background:#f5f5f5}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.card:focus,.card:hover{box-shadow:0 0 0 1px #999,0 1px 2px #e9eff3}.card .delete-field{display:block;float:right}@media (min-width:481px){.card{margin-bottom:16px;padding:24px}body{padding:24px}}.card.is-compact{margin-bottom:1px}@media (min-width:481px){.card.is-compact{margin-bottom:1px;padding:16px 24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px;margin-top:8px}label:first-of-type{margin-top:4px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder{color:#87a6bc}input[type=email]::-ms-input-placeholder,input[type=tel]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder,input[type=url]::-ms-input-placeholder{color:#87a6bc}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled:-ms-input-placeholder,input[type=tel]:disabled:-ms-input-placeholder,input[type=text]:disabled:-ms-input-placeholder,input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::-ms-input-placeholder,input[type=tel]:disabled::-ms-input-placeholder,input[type=text]:disabled::-ms-input-placeholder,input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea:-ms-input-placeholder{color:#87a6bc}textarea::-ms-input-placeholder{color:#87a6bc}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled:-ms-input-placeholder{color:#a8bece}textarea:disabled::-ms-input-placeholder{color:#a8bece}textarea:disabled::placeholder{color:#a8bece}.checkbox,input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.checkbox:checked:before,input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.checkbox:disabled:checked:before,input[type=checkbox]:disabled:checked:before{color:#a8bece}.checkbox:hover,input[type=checkbox]:hover{border-color:#a8bece}.checkbox:focus,input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.checkbox:disabled,input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.checkbox:disabled:hover,input[type=checkbox]:disabled:hover{cursor:default}.checkbox+span,input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}.radio-button,input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}.radio-button:hover,input[type=radio]:hover{border-color:#a8bece}.radio-button:focus,input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.radio-button:focus::-ms-clear,input[type=radio]:focus::-ms-clear{display:none}.radio-button:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.radio-button:disabled,input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.radio-button:disabled:hover,input[type=radio]:disabled:hover{cursor:default}.radio-button:disabled:-ms-input-placeholder,input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}.radio-button:disabled::-ms-input-placeholder,input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}.radio-button:disabled::placeholder,input[type=radio]:disabled::placeholder{color:#a8bece}.radio-button:disabled:checked::before,input[type=radio]:disabled:checked:before{background:#e9eff3}.radio-button+span,input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 32px 9px 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center}select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}input[type=submit].hidden{display:none}input[type=submit] .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}input[type=submit].button-primary{background:#00aadc;border-color:#008ab3;color:#fff}input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{border-color:#005082;color:#fff}input[type=submit].button-primary:disabled,input[type=submit].button-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}input[type=submit].button-primary{color:#fff}.ui-sortable-handle{cursor:move}.grunion-section-header{font-size:21px;margin-top:32px;font-weight:600}.grunion-form-settings:hover{box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.grunion-section-header:first-child{margin-top:0}.grunion-type-options{display:flex;flex-wrap:wrap}.grunion-type{flex-grow:0;flex-shrink:0}.grunion-type select{-webkit-appearance:none;width:100%}.grunion-required{padding:27px 0 0 16px;flex-grow:0;flex-shrink:0}.grunion-options{padding-top:16px}.grunion-options ol{list-style:none;padding:0;margin:8px 0 0}.grunion-options li{display:flex;margin-bottom:16px}.grunion-field-edit .grunion-options{display:none}.delete-field,.delete-option{color:#0087be;text-decoration:none;width:40px;line-height:40px;font-size:21px;text-align:center;font-weight:600}.delete-field{position:absolute;top:0;right:0}.grunion-controls{display:flex;flex-wrap:wrap}.grunion-update-controls{text-align:right;flex-grow:1}#add-field{flex-grow:0}.delete-field:before,.delete-option:before{font-family:Dashicons;content:"\f335";display:inline-block;speak:none}.grunion-field-edit.grunion-field-checkbox-multiple .grunion-options,.grunion-field-edit.grunion-field-radio .grunion-options,.grunion-field-edit.grunion-field-select .grunion-options{display:block}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important} \ No newline at end of file
+html{direction:ltr}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em;margin:0}a,a:visited{color:#0087be;text-decoration:none}a:active,a:focus,a:hover{color:$link-highlight}.card,body{display:block;position:relative;margin:0 auto 10px auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}body{margin:0;background:#f6f7f7}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}.card:focus,.card:hover{box-shadow:0 0 0 1px #999,0 1px 2px #e9eff3}.card .delete-field{display:block;float:right}@media (min-width:481px){.card{margin-bottom:16px;padding:24px}body{padding:24px}}.card.is-compact{margin-bottom:1px}@media (min-width:481px){.card.is-compact{margin-bottom:1px;padding:16px 24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px;margin-top:8px}label:first-of-type{margin-top:4px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled::placeholder{color:#a8bece}.checkbox,input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}.checkbox:checked:before,input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}.checkbox:disabled:checked:before,input[type=checkbox]:disabled:checked:before{color:#a8bece}.checkbox:hover,input[type=checkbox]:hover{border-color:#a8bece}.checkbox:focus,input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.checkbox:disabled,input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}.checkbox:disabled:hover,input[type=checkbox]:disabled:hover{cursor:default}.checkbox+span,input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}.radio-button,input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;appearance:none;border-radius:50%;line-height:10px}.radio-button:hover,input[type=radio]:hover{border-color:#a8bece}.radio-button:focus,input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}.radio-button:focus::-ms-clear,input[type=radio]:focus::-ms-clear{display:none}.radio-button:checked:before,input[type=radio]:checked:before{float:left;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}.radio-button:disabled,input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}.radio-button:disabled:hover,input[type=radio]:disabled:hover{cursor:default}.radio-button:disabled::placeholder,input[type=radio]:disabled::placeholder{color:#a8bece}.radio-button:disabled:checked::before,input[type=radio]:disabled:checked:before{background:#e9eff3}.radio-button+span,input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 32px 9px 14px;-webkit-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center}select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}input[type=submit].hidden{display:none}input[type=submit] .gridicon{position:relative;top:4px;margin-top:-2px;width:18px;height:18px}input[type=submit].button-primary{background:#00aadc;border-color:#008ab3;color:#fff}input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{border-color:#005082;color:#fff}input[type=submit].button-primary:disabled,input[type=submit].button-primary[disabled]{background:#bceefd;border-color:#8cc9e2;color:#fff}input[type=submit].button-primary{color:#fff}.ui-sortable-handle{cursor:move}.grunion-section-header{font-size:21px;margin-top:32px;font-weight:600}.grunion-form-settings:hover{box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.grunion-section-header:first-child{margin-top:0}.grunion-type-options{display:flex;flex-wrap:wrap}.grunion-type{flex-grow:0;flex-shrink:0}.grunion-type select{-webkit-appearance:none;width:100%}.grunion-required{padding:27px 0 0 16px;flex-grow:0;flex-shrink:0}.grunion-options{padding-top:16px}.grunion-options ol{list-style:none;padding:0;margin:8px 0 0}.grunion-options li{display:flex;margin-bottom:16px}.grunion-field-edit .grunion-options{display:none}.delete-field,.delete-option{color:#0087be;text-decoration:none;width:40px;line-height:40px;font-size:21px;text-align:center;font-weight:600}.delete-field{position:absolute;top:0;right:0}.grunion-controls{display:flex;flex-wrap:wrap}.grunion-update-controls{text-align:right;flex-grow:1}#add-field{flex-grow:0}.delete-field:before,.delete-option:before{font-family:Dashicons;content:"\f335";display:inline-block;speak:none}.grunion-field-edit.grunion-field-checkbox-multiple .grunion-options,.grunion-field-edit.grunion-field-radio .grunion-options,.grunion-field-edit.grunion-field-select .grunion-options{display:block}.screen-reader-text{position:absolute;margin:-1px;padding:0;height:1px;width:1px;overflow:hidden;clip:rect(0 0 0 0);border:0;word-wrap:normal!important} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/editor-style-rtl.css b/plugins/jetpack/modules/contact-form/css/editor-style-rtl.css
index e6b43f3c..57bf5234 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-style-rtl.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-style-rtl.css
@@ -69,7 +69,6 @@ input[type="email"],
input[type="url"] {
border-radius: 0;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
box-sizing: border-box;
margin: 0;
@@ -84,20 +83,6 @@ input[type="url"] {
box-shadow: none;
}
-input[type="text"]:-ms-input-placeholder,
-input[type="tel"]:-ms-input-placeholder,
-input[type="email"]:-ms-input-placeholder,
-input[type="url"]:-ms-input-placeholder {
- color: #87a6bc;
-}
-
-input[type="text"]::-ms-input-placeholder,
-input[type="tel"]::-ms-input-placeholder,
-input[type="email"]::-ms-input-placeholder,
-input[type="url"]::-ms-input-placeholder {
- color: #87a6bc;
-}
-
input[type="text"]::placeholder,
input[type="tel"]::placeholder,
input[type="email"]::placeholder,
@@ -145,20 +130,6 @@ input[type="url"]:disabled:hover {
cursor: default;
}
-input[type="text"]:disabled:-ms-input-placeholder,
-input[type="tel"]:disabled:-ms-input-placeholder,
-input[type="email"]:disabled:-ms-input-placeholder,
-input[type="url"]:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-input[type="text"]:disabled::-ms-input-placeholder,
-input[type="tel"]:disabled::-ms-input-placeholder,
-input[type="email"]:disabled::-ms-input-placeholder,
-input[type="url"]:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
input[type="text"]:disabled::placeholder,
input[type="tel"]:disabled::placeholder,
input[type="email"]:disabled::placeholder,
@@ -174,7 +145,6 @@ input[type="url"]:disabled::placeholder {
textarea {
border-radius: 0;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
box-sizing: border-box;
margin: 0;
@@ -190,14 +160,6 @@ textarea {
box-shadow: none;
}
-textarea:-ms-input-placeholder {
- color: #87a6bc;
-}
-
-textarea::-ms-input-placeholder {
- color: #87a6bc;
-}
-
textarea::placeholder {
color: #87a6bc;
}
@@ -227,14 +189,6 @@ textarea:disabled:hover {
cursor: default;
}
-textarea:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-textarea:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
textarea:disabled::placeholder {
color: #a8bece;
}
@@ -263,8 +217,7 @@ input[type="checkbox"] {
line-height: 0;
text-align: center;
vertical-align: middle;
- -moz-appearance: none;
- appearance: none;
+ appearance: none;
transition: all .15s ease-in-out;
clear: none;
cursor: pointer;
@@ -343,8 +296,7 @@ input[type=radio] {
vertical-align: middle;
width: 16px;
min-width: 16px;
- -moz-appearance: none;
- appearance: none;
+ appearance: none;
border-radius: 50%;
line-height: 10px;
}
@@ -389,14 +341,6 @@ input[type="radio"]:disabled:hover {
cursor: default;
}
-input[type="radio"]:disabled:-ms-input-placeholder {
- color: #a8bece;
-}
-
-input[type="radio"]:disabled::-ms-input-placeholder {
- color: #a8bece;
-}
-
input[type="radio"]:disabled::placeholder {
color: #a8bece;
}
@@ -467,7 +411,6 @@ select {
/* Aligns the text to the 8px baseline grid and adds padding on right to allow for the arrow. */
padding: 7px 14px 9px 32px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
}
@@ -536,7 +479,6 @@ input[type="submit"] {
padding: 0;
font-size: 14px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
vertical-align: baseline;
background: white;
@@ -559,7 +501,6 @@ input[type="submit"] {
border-radius: 4px;
padding: 7px 14px 9px;
-webkit-appearance: none;
- -moz-appearance: none;
appearance: none;
}
diff --git a/plugins/jetpack/modules/contact-form/css/editor-style-rtl.min.css b/plugins/jetpack/modules/contact-form/css/editor-style-rtl.min.css
index 4562abc2..62703fbb 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-style-rtl.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-style-rtl.min.css
@@ -1 +1 @@
-body,label{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em}.card{display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.card{padding:24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder{color:#87a6bc}input[type=email]::-ms-input-placeholder,input[type=tel]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder,input[type=url]::-ms-input-placeholder{color:#87a6bc}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled:-ms-input-placeholder,input[type=tel]:disabled:-ms-input-placeholder,input[type=text]:disabled:-ms-input-placeholder,input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::-ms-input-placeholder,input[type=tel]:disabled::-ms-input-placeholder,input[type=text]:disabled::-ms-input-placeholder,input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea:-ms-input-placeholder{color:#87a6bc}textarea::-ms-input-placeholder{color:#87a6bc}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled:-ms-input-placeholder{color:#a8bece}textarea:disabled::-ms-input-placeholder{color:#a8bece}textarea:disabled::placeholder{color:#a8bece}input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}input[type=checkbox]:disabled:checked:before{color:#a8bece}input[type=checkbox]:hover{border-color:#a8bece}input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}input[type=checkbox]:disabled:hover{cursor:default}input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}input[type=radio]:hover{border-color:#a8bece}input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=radio]:focus::-ms-clear{display:none}input[type=radio]:checked:before{float:right;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}input[type=radio]:disabled:hover{cursor:default}input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}input[type=radio]:disabled::placeholder{color:#a8bece}input[type=radio]:disabled:checked:before{background:#e9eff3}input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 14px 9px 32px;-webkit-appearance:none;-moz-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center}select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.wpview.wpview-wrap[data-wpview-type=contact-form] iframe.inline-edit-contact-form{width:100%;min-height:500px;border:0;overflow:hidden;margin-bottom:0;display:block}.contact-submit.contact-submit{margin-top:0;margin-bottom:0} \ No newline at end of file
+body,label{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em}.card{display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.card{padding:24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled::placeholder{color:#a8bece}input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:right;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px -4px 0 0;float:right;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}input[type=checkbox]:disabled:checked:before{color:#a8bece}input[type=checkbox]:hover{border-color:#a8bece}input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}input[type=checkbox]:disabled:hover{cursor:default}input[type=checkbox]+span{display:block;font-weight:400;margin-right:24px}input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 0 0 4px;float:right;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;appearance:none;border-radius:50%;line-height:10px}input[type=radio]:hover{border-color:#a8bece}input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=radio]:focus::-ms-clear{display:none}input[type=radio]:checked:before{float:right;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}input[type=radio]:disabled:hover{cursor:default}input[type=radio]:disabled::placeholder{color:#a8bece}input[type=radio]:disabled:checked:before{background:#e9eff3}input[type=radio]+span{display:block;font-weight:400;margin-right:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 14px 9px 32px;-webkit-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat left 10px center}select.is-compact{min-width:0;padding:0 6px 2px 20px;margin:0 4px;background-position:left 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.wpview.wpview-wrap[data-wpview-type=contact-form] iframe.inline-edit-contact-form{width:100%;min-height:500px;border:0;overflow:hidden;margin-bottom:0;display:block}.contact-submit.contact-submit{margin-top:0;margin-bottom:0} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/editor-style.min.css b/plugins/jetpack/modules/contact-form/css/editor-style.min.css
index fdef6b83..67a63821 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-style.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-style.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-body,label{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em}.card{display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.card{padding:24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]:-ms-input-placeholder,input[type=tel]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder,input[type=url]:-ms-input-placeholder{color:#87a6bc}input[type=email]::-ms-input-placeholder,input[type=tel]::-ms-input-placeholder,input[type=text]::-ms-input-placeholder,input[type=url]::-ms-input-placeholder{color:#87a6bc}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled:-ms-input-placeholder,input[type=tel]:disabled:-ms-input-placeholder,input[type=text]:disabled:-ms-input-placeholder,input[type=url]:disabled:-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::-ms-input-placeholder,input[type=tel]:disabled::-ms-input-placeholder,input[type=text]:disabled::-ms-input-placeholder,input[type=url]:disabled::-ms-input-placeholder{color:#a8bece}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea:-ms-input-placeholder{color:#87a6bc}textarea::-ms-input-placeholder{color:#87a6bc}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled:-ms-input-placeholder{color:#a8bece}textarea:disabled::-ms-input-placeholder{color:#a8bece}textarea:disabled::placeholder{color:#a8bece}input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;-moz-appearance:none;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}input[type=checkbox]:disabled:checked:before{color:#a8bece}input[type=checkbox]:hover{border-color:#a8bece}input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}input[type=checkbox]:disabled:hover{cursor:default}input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;-moz-appearance:none;appearance:none;border-radius:50%;line-height:10px}input[type=radio]:hover{border-color:#a8bece}input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=radio]:focus::-ms-clear{display:none}input[type=radio]:checked:before{float:left;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}input[type=radio]:disabled:hover{cursor:default}input[type=radio]:disabled:-ms-input-placeholder{color:#a8bece}input[type=radio]:disabled::-ms-input-placeholder{color:#a8bece}input[type=radio]:disabled::placeholder{color:#a8bece}input[type=radio]:disabled:checked:before{background:#e9eff3}input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 32px 9px 14px;-webkit-appearance:none;-moz-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center}select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;-moz-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.wpview.wpview-wrap[data-wpview-type=contact-form] iframe.inline-edit-contact-form{width:100%;min-height:500px;border:0;overflow:hidden;margin-bottom:0;display:block}.contact-submit.contact-submit{margin-top:0;margin-bottom:0} \ No newline at end of file
+body,label{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;line-height:1.4em}.card{display:block;position:relative;margin:0 auto;padding:16px;box-sizing:border-box;background:#fff;box-shadow:0 0 0 1px rgba(200,215,225,.5),0 1px 2px #e9eff3}.card:after{content:".";display:block;height:0;clear:both;visibility:hidden}@media (min-width:481px){.card{padding:24px}}.card>div{margin-top:24px}.card>div:first-child{margin-top:0}label{display:block;font-size:14px;font-weight:600;margin-bottom:5px}input[type=email],input[type=tel],input[type=text],input[type=url]{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}input[type=email]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,input[type=url]::placeholder{color:#87a6bc}input[type=email]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=url]:hover{border-color:#a8bece}input[type=email]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=email]:focus::-ms-clear,input[type=tel]:focus::-ms-clear,input[type=text]:focus::-ms-clear,input[type=url]:focus::-ms-clear{display:none}input[type=email]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}input[type=email]:disabled:hover,input[type=tel]:disabled:hover,input[type=text]:disabled:hover,input[type=url]:disabled:hover{cursor:default}input[type=email]:disabled::placeholder,input[type=tel]:disabled::placeholder,input[type=text]:disabled::placeholder,input[type=url]:disabled::placeholder{color:#a8bece}textarea{border-radius:0;-webkit-appearance:none;appearance:none;box-sizing:border-box;margin:0;padding:7px 14px;height:92px;width:100%;color:#2e4453;font-size:16px;line-height:1.5;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-shadow:none}textarea::placeholder{color:#87a6bc}textarea:hover{border-color:#a8bece}textarea:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}textarea:focus::-ms-clear{display:none}textarea:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;-webkit-text-fill-color:#a8bece}textarea:disabled:hover{cursor:default}textarea:disabled::placeholder{color:#a8bece}input[type=checkbox]{-webkit-appearance:none;display:inline-block;box-sizing:border-box;margin:2px 0 0;padding:7px 14px;width:16px;height:16px;float:left;outline:0;padding:0;box-shadow:none;background-color:#fff;border:1px solid #c8d7e1;color:#2e4453;font-size:16px;line-height:0;text-align:center;vertical-align:middle;appearance:none;transition:all .15s ease-in-out;clear:none;cursor:pointer}input[type=checkbox]:checked:before{content:'\f147';font-family:Dashicons;margin:-3px 0 0 -4px;float:left;display:inline-block;vertical-align:middle;width:16px;font-size:20px;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;speak:none;color:#00aadc}input[type=checkbox]:disabled:checked:before{color:#a8bece}input[type=checkbox]:hover{border-color:#a8bece}input[type=checkbox]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=checkbox]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1}input[type=checkbox]:disabled:hover{cursor:default}input[type=checkbox]+span{display:block;font-weight:400;margin-left:24px}input[type=radio]{color:#2e4453;font-size:16px;border:1px solid #c8d7e1;background-color:#fff;transition:all .15s ease-in-out;box-sizing:border-box;-webkit-appearance:none;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:2px 4px 0 0;float:left;outline:0;padding:0;text-align:center;vertical-align:middle;width:16px;min-width:16px;appearance:none;border-radius:50%;line-height:10px}input[type=radio]:hover{border-color:#a8bece}input[type=radio]:focus{border-color:#0087be;outline:0;box-shadow:0 0 0 2px #78dcfa}input[type=radio]:focus::-ms-clear{display:none}input[type=radio]:checked:before{float:left;display:inline-block;content:'\2022';margin:3px;width:8px;height:8px;text-indent:-9999px;background:#00aadc;vertical-align:middle;border-radius:50%;animation:grow .2s ease-in-out}input[type=radio]:disabled{background:#f3f6f8;border-color:#e9eff3;color:#a8bece;opacity:1;-webkit-text-fill-color:#a8bece}input[type=radio]:disabled:hover{cursor:default}input[type=radio]:disabled::placeholder{color:#a8bece}input[type=radio]:disabled:checked:before{background:#e9eff3}input[type=radio]+span{display:block;font-weight:400;margin-left:24px}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}@keyframes grow{0%{transform:scale(.3)}60%{transform:scale(1.15)}100%{transform:scale(1)}}select{background:#fff url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjQzhEN0UxIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center;border-color:#c8d7e1;border-style:solid;border-radius:4px;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:0;outline:0;overflow:hidden;font-size:14px;line-height:21px;font-weight:600;text-overflow:ellipsis;text-decoration:none;vertical-align:top;white-space:nowrap;box-sizing:border-box;padding:7px 32px 9px 14px;-webkit-appearance:none;appearance:none}select:hover{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjYThiZWNlIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==)}select:focus{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiA8dGl0bGU+YXJyb3ctZG93bjwvdGl0bGU+IDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPiA8ZGVmcz48L2RlZnM+IDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiA8ZyBpZD0iYXJyb3ctZG93biIgc2tldGNoOnR5cGU9Ik1TQXJ0Ym9hcmRHcm91cCIgZmlsbD0iIzJlNDQ1MyI+IDxwYXRoIGQ9Ik0xNS41LDYgTDE3LDcuNSBMMTAuMjUsMTQuMjUgTDMuNSw3LjUgTDUsNiBMMTAuMjUsMTEuMjUgTDE1LjUsNiBaIiBpZD0iRG93bi1BcnJvdyIgc2tldGNoOnR5cGU9Ik1TU2hhcGVHcm91cCI+PC9wYXRoPiA8L2c+IDwvZz48L3N2Zz4=);border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa;outline:0;-moz-outline:none;-moz-user-focus:ignore}select:disabled,select:hover:disabled{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjBweCIgaGVpZ2h0PSIyMHB4IiB2aWV3Qm94PSIwIDAgMjAgMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPmFycm93LWRvd248L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+PC9kZWZzPiAgICA8ZyBpZD0iUGFnZS0xIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBza2V0Y2g6dHlwZT0iTVNQYWdlIj4gICAgICAgIDxnIGlkPSJhcnJvdy1kb3duIiBza2V0Y2g6dHlwZT0iTVNBcnRib2FyZEdyb3VwIiBmaWxsPSIjZTllZmYzIj4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNSw2IEwxNyw3LjUgTDEwLjI1LDE0LjI1IEwzLjUsNy41IEw1LDYgTDEwLjI1LDExLjI1IEwxNS41LDYgWiIgaWQ9IkRvd24tQXJyb3ciIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==) no-repeat right 10px center}select.is-compact{min-width:0;padding:0 20px 2px 6px;margin:0 4px;background-position:right 5px center;background-size:12px 12px}label select,label+select{display:block;min-width:200px}label select.is-compact,label+select.is-compact{display:inline-block;min-width:0}select::-ms-expand{display:none}select::-ms-value{background:0 0;color:#2e4453}select:-moz-focusring{color:transparent;text-shadow:0 0 0 #2e4453}input[type=submit]{padding:0;font-size:14px;-webkit-appearance:none;appearance:none;vertical-align:baseline;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;cursor:pointer;display:inline-block;margin:24px 0 0;outline:0;overflow:hidden;font-weight:500;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:21px;border-radius:4px;padding:7px 14px 9px;-webkit-appearance:none;appearance:none}input[type=submit]:hover{border-color:#a8bece;color:#2e4453}input[type=submit]:active{border-width:2px 1px 1px}input[type=submit]:visited{color:#2e4453}input[type=submit]:disabled,input[type=submit][disabled]{color:#e9eff3;background:#fff;border-color:#e9eff3;cursor:default}input[type=submit]:disabled:active,input[type=submit][disabled]:active{border-width:1px 1px 2px}input[type=submit]:focus{border-color:#00aadc;box-shadow:0 0 0 2px #78dcfa}.wpview.wpview-wrap[data-wpview-type=contact-form] iframe.inline-edit-contact-form{width:100%;min-height:500px;border:0;overflow:hidden;margin-bottom:0;display:block}.contact-submit.contact-submit{margin-top:0;margin-bottom:0} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.css b/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.css
index df4c059d..f5f33a42 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.css
@@ -1,22 +1,13 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
i.mce-i-grunion {
font-size: 20px;
+ font-family: dashicons;
}
i.mce-i-grunion:before,
.jetpack-contact-form-icon:before {
- width: 24px;
+ content: '\f175';
vertical-align: top;
- content: '';
- display: block;
- height: 24px;
- background-size: 24px;
- background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(85, 93, 102)" d="M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"/></svg>');
- margin-top: -4px;
-}
-i.mce-i-grunion:before {
- margin-top: -2px;
- margin-right: -2px;
}
.jetpack-contact-form-icon {
@@ -24,4 +15,5 @@ i.mce-i-grunion:before {
vertical-align: text-top;
display: inline-block;
height: 18px;
+ font: 18px/1 dashicons;
}
diff --git a/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.min.css b/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.min.css
index 3d7d4a17..e9eb7c4d 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-ui-rtl.min.css
@@ -1 +1 @@
-i.mce-i-grunion{font-size:20px}.jetpack-contact-form-icon:before,i.mce-i-grunion:before{width:24px;vertical-align:top;content:'';display:block;height:24px;background-size:24px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(85, 93, 102)" d="M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"/></svg>');margin-top:-4px}i.mce-i-grunion:before{margin-top:-2px;margin-right:-2px}.jetpack-contact-form-icon{opacity:.7;vertical-align:text-top;display:inline-block;height:18px} \ No newline at end of file
+i.mce-i-grunion{font-size:20px;font-family:dashicons}.jetpack-contact-form-icon:before,i.mce-i-grunion:before{content:'\f175';vertical-align:top}.jetpack-contact-form-icon{opacity:.7;vertical-align:text-top;display:inline-block;height:18px;font:18px/1 dashicons} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/editor-ui.css b/plugins/jetpack/modules/contact-form/css/editor-ui.css
index b68f810b..18989ff0 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-ui.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-ui.css
@@ -1,21 +1,12 @@
i.mce-i-grunion {
font-size: 20px;
+ font-family: dashicons;
}
i.mce-i-grunion:before,
.jetpack-contact-form-icon:before {
- width: 24px;
+ content: '\f175';
vertical-align: top;
- content: '';
- display: block;
- height: 24px;
- background-size: 24px;
- background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(85, 93, 102)" d="M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"/></svg>');
- margin-top: -4px;
-}
-i.mce-i-grunion:before {
- margin-top: -2px;
- margin-left: -2px;
}
.jetpack-contact-form-icon {
@@ -23,4 +14,5 @@ i.mce-i-grunion:before {
vertical-align: text-top;
display: inline-block;
height: 18px;
+ font: 18px/1 dashicons;
}
diff --git a/plugins/jetpack/modules/contact-form/css/editor-ui.min.css b/plugins/jetpack/modules/contact-form/css/editor-ui.min.css
index f7c96dfb..2ca28137 100644
--- a/plugins/jetpack/modules/contact-form/css/editor-ui.min.css
+++ b/plugins/jetpack/modules/contact-form/css/editor-ui.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-i.mce-i-grunion{font-size:20px}.jetpack-contact-form-icon:before,i.mce-i-grunion:before{width:24px;vertical-align:top;content:'';display:block;height:24px;background-size:24px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(85, 93, 102)" d="M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"/></svg>');margin-top:-4px}i.mce-i-grunion:before{margin-top:-2px;margin-left:-2px}.jetpack-contact-form-icon{opacity:.7;vertical-align:text-top;display:inline-block;height:18px} \ No newline at end of file
+i.mce-i-grunion{font-size:20px;font-family:dashicons}.jetpack-contact-form-icon:before,i.mce-i-grunion:before{content:'\f175';vertical-align:top}.jetpack-contact-form-icon{opacity:.7;vertical-align:text-top;display:inline-block;height:18px;font:18px/1 dashicons} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/grunion-rtl.css b/plugins/jetpack/modules/contact-form/css/grunion-rtl.css
index cc820aca..071add9e 100644
--- a/plugins/jetpack/modules/contact-form/css/grunion-rtl.css
+++ b/plugins/jetpack/modules/contact-form/css/grunion-rtl.css
@@ -1 +1 @@
-.contact-form .clear-form{clear:both}.contact-form input:-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::-ms-input-placeholder{transition:opacity .3s ease-out}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover:-ms-input-placeholder{opacity:.5}.contact-form input:hover::-ms-input-placeholder{opacity:.5}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus:-ms-input-placeholder{opacity:.3}.contact-form input:focus::-ms-input-placeholder{opacity:.3}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:.75em;width:100%}.contact-form select{margin-bottom:.75em}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:.75em;width:100%}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin-bottom:.75em;vertical-align:bottom;vertical-align:-webkit-baseline-middle;vertical-align:-moz-middle-with-baseline}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-block}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:.5em}.contact-form label span{color:#aaa;margin-right:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 0 0 8px}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}} \ No newline at end of file
+.contact-form .clear-form{clear:both}.contact-form input::placeholder{transition:opacity .3s ease-out}.contact-form input:hover::placeholder{opacity:.5}.contact-form input:focus::placeholder{opacity:.3}.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{box-sizing:border-box;margin-bottom:1.5em;width:100%;padding:14px 7px}.contact-form select{margin-bottom:1.5em;padding:14px 7px;min-width:150px}.contact-form textarea{box-sizing:border-box;float:none;height:200px;margin-bottom:1.5em;width:100%;padding:7px;font:inherit}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin:0 5px 0 .75rem}.contact-form input[type=checkbox]{top:0;margin-right:0}.contact-form label{margin-bottom:.25em;float:none;font-weight:700;display:block}.contact-form label.consent-implicit input{display:none}.contact-form label.checkbox,.contact-form label.checkbox-multiple,.contact-form label.radio{margin-bottom:.25em;float:none;font-weight:400;display:inline-flex;align-items:center}.contact-form .grunion-field-checkbox-multiple-wrap,.contact-form .grunion-field-checkbox-wrap,.contact-form .grunion-field-consent-wrap,.contact-form .grunion-field-radio-wrap{margin-bottom:1em}.contact-form label span{font-size:85%;margin-right:.25em;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto;word-wrap:break-word}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=tel],.textwidget .contact-form input[type=text],.textwidget .contact-form input[type=url],.textwidget .contact-form textarea,.wp-block-column .contact-form input[type=email],.wp-block-column .contact-form input[type=tel],.wp-block-column .contact-form input[type=text],.wp-block-column .contact-form input[type=url],.wp-block-column .contact-form textarea{width:100%}#jetpack-check-feedback-spam{margin:1px 0 0 8px}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form{display:flex;flex-wrap:wrap;justify-content:flex-start;flex-direction:row}.wp-block-jetpack-button,.wp-block-jetpack-contact-form .grunion-field-wrap{flex:0 0 100%}.wp-block-jetpack-button button{padding:20px 30px;border:inherit;font:inherit}.wp-block-jetpack-button.alignright button{float:left}.wp-block-jetpack-contact-form .grunion-field-wrap{border-left:15px solid transparent}.wp-block-jetpack-contact-form .grunion-field-width-25-wrap{flex:0 0 25%}.wp-block-jetpack-contact-form .grunion-field-width-50-wrap{flex:0 0 50%}.wp-block-jetpack-contact-form .grunion-field-width-75-wrap{flex:0 0 75%}.grunion-field-checkbox-wrap,.grunion-field-consent-wrap{align-self:center}@media only screen and (min-width:600px){.contact-form input[type=email],.contact-form input[type=tel],.contact-form input[type=text],.contact-form input[type=url]{width:50%}.wp-block-jetpack-contact-form input[type=email],.wp-block-jetpack-contact-form input[type=tel],.wp-block-jetpack-contact-form input[type=text],.wp-block-jetpack-contact-form input[type=url]{width:100%}}.jetpack-empty-spam-container{display:inline-block}.jetpack-empty-spam{display:inline-block}.jetpack-empty-spam-spinner{display:inline-block;margin-top:7px}.wp-block-jetpack-contact-form .wp-block-spacer{width:100%} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/grunion.css b/plugins/jetpack/modules/contact-form/css/grunion.css
index af3585b6..be46a132 100644
--- a/plugins/jetpack/modules/contact-form/css/grunion.css
+++ b/plugins/jetpack/modules/contact-form/css/grunion.css
@@ -3,7 +3,7 @@
}
.contact-form input::placeholder {
- transition: opacity .3s ease-out;
+ transition: opacity 0.3s ease-out;
}
.contact-form input:hover::placeholder {
opacity: 0.5;
@@ -17,29 +17,36 @@
.contact-form input[type='tel'],
.contact-form input[type='url'] {
box-sizing: border-box;
- margin-bottom: 0.75em;
+ margin-bottom: 1.5em;
width: 100%;
+ padding: 14px 7px;
}
.contact-form select {
- margin-bottom: 0.75em;
+ margin-bottom: 1.5em;
+ padding: 14px 7px;
+ min-width: 150px;
}
.contact-form textarea {
box-sizing: border-box;
float: none;
height: 200px;
- margin-bottom: 0.75em;
+ margin-bottom: 1.5em;
width: 100%;
+ padding: 7px;
+ font: inherit;
}
.contact-form input[type='radio'],
.contact-form input[type='checkbox'] {
float: none;
- margin-bottom: 0.75em;
- vertical-align: bottom;
- vertical-align: -webkit-baseline-middle;
- vertical-align: -moz-middle-with-baseline;
+ margin: 0 0.75rem 0 5px;
+}
+
+.contact-form input[type='checkbox'] {
+ top: 0;
+ margin-left: 0;
}
.contact-form label {
@@ -49,23 +56,29 @@
display: block;
}
+.contact-form label.consent-implicit input {
+ display: none;
+}
+
.contact-form label.checkbox,
.contact-form label.checkbox-multiple,
.contact-form label.radio {
margin-bottom: 0.25em;
float: none;
font-weight: normal;
- display: inline-block;
+ display: inline-flex;
+ align-items: center;
}
.contact-form .grunion-field-checkbox-wrap,
+.contact-form .grunion-field-consent-wrap,
.contact-form .grunion-field-checkbox-multiple-wrap,
.contact-form .grunion-field-radio-wrap {
- margin-bottom: 0.5em;
+ margin-bottom: 1em;
}
.contact-form label span {
- color: #AAA;
+ font-size: 85%;
margin-left: 0.25em;
font-weight: normal;
}
@@ -106,11 +119,85 @@
margin-top: 7px;
}
-@media only screen and (min-width: 600px) {
+.wp-block-jetpack-contact-form {
+ display: flex;
+ flex-wrap: wrap;
+ justify-content: flex-start;
+ flex-direction: row;
+}
+
+.wp-block-jetpack-contact-form .grunion-field-wrap,
+.wp-block-jetpack-button {
+ flex: 0 0 100%;
+}
+
+.wp-block-jetpack-button button {
+ padding: 20px 30px;
+ border: inherit;
+ font: inherit;
+}
+
+.wp-block-jetpack-button.alignright button {
+ float: right;
+}
+
+.wp-block-jetpack-contact-form .grunion-field-wrap {
+ /* Use transparent border to maintain consistent
+ * space between elements with flexbox */
+ border-right: 15px solid transparent;
+}
+
+.wp-block-jetpack-contact-form .grunion-field-width-25-wrap {
+ flex: 0 0 25%;
+}
+
+.wp-block-jetpack-contact-form .grunion-field-width-50-wrap {
+ flex: 0 0 50%;
+}
+
+.wp-block-jetpack-contact-form .grunion-field-width-75-wrap {
+ flex: 0 0 75%;
+}
+
+.grunion-field-checkbox-wrap,
+.grunion-field-consent-wrap {
+ align-self: center;
+}
+
+@media only screen and ( min-width: 600px ) {
.contact-form input[type='text'],
.contact-form input[type='email'],
.contact-form input[type='tel'],
.contact-form input[type='url'] {
width: 50%;
}
+
+ /****
+ * Older users keep the 50% width to avoid breaking
+ * designs, but newer users using the contact
+ * form block get 100% width.
+ */
+ .wp-block-jetpack-contact-form input[type='text'],
+ .wp-block-jetpack-contact-form input[type='email'],
+ .wp-block-jetpack-contact-form input[type='tel'],
+ .wp-block-jetpack-contact-form input[type='url'] {
+ width: 100%;
+ }
+}
+
+/** For the "Empty Spam" button on /wp-admin/edit.php?post_status=spam&post_type=feedback **/
+.jetpack-empty-spam-container {
+ display: inline-block;
}
+.jetpack-empty-spam {
+ display: inline-block;
+}
+.jetpack-empty-spam-spinner {
+ display: inline-block;
+ margin-top: 7px;
+}
+
+/* Make sure the set height of the Spacer block nested inside the Contact Form block is respected */
+.wp-block-jetpack-contact-form .wp-block-spacer {
+ width: 100%;
+} \ No newline at end of file
diff --git a/plugins/jetpack/modules/contact-form/css/jquery-ui-datepicker.css b/plugins/jetpack/modules/contact-form/css/jquery-ui-datepicker.css
index e82283eb..10024b6f 100644
--- a/plugins/jetpack/modules/contact-form/css/jquery-ui-datepicker.css
+++ b/plugins/jetpack/modules/contact-form/css/jquery-ui-datepicker.css
@@ -5,7 +5,7 @@
-moz-border-radius: 0;
border-radius: 0;
background-color: #fff;
- border: 1px solid #dfdfdf;
+ border: 1px solid #dcdcde;
border-top: none;
-webkit-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.075);
diff --git a/plugins/jetpack/modules/contact-form/grunion-contact-form.php b/plugins/jetpack/modules/contact-form/grunion-contact-form.php
index fb893222..3eaa34c3 100644
--- a/plugins/jetpack/modules/contact-form/grunion-contact-form.php
+++ b/plugins/jetpack/modules/contact-form/grunion-contact-form.php
@@ -4,10 +4,11 @@
* Add a contact form to any post, page or text widget.
* Emails will be sent to the post's author by default, or any email address you choose.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Blocks;
use Automattic\Jetpack\Sync\Settings;
define( 'GRUNION_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
@@ -106,14 +107,14 @@ class Grunion_Contact_Form_Plugin {
public static function strip_tags( $data_with_tags ) {
if ( is_array( $data_with_tags ) ) {
foreach ( $data_with_tags as $index => $value ) {
- $index = sanitize_text_field( strval( $index ) );
- $value = wp_kses( strval( $value ), array() );
+ $index = sanitize_text_field( (string) $index );
+ $value = wp_kses( (string) $value, array() );
$value = str_replace( '&amp;', '&', $value ); // undo damage done by wp_kses_normalize_entities()
$data_without_tags[ $index ] = $value;
}
} else {
- $data_without_tags = wp_kses( $data_with_tags, array() );
+ $data_without_tags = wp_kses( (string) $data_with_tags, array() );
$data_without_tags = str_replace( '&amp;', '&', $data_without_tags ); // undo damage done by wp_kses_normalize_entities()
}
@@ -140,8 +141,8 @@ class Grunion_Contact_Form_Plugin {
add_filter( 'widget_text', array( $this, 'widget_shortcode_hack' ), 5 );
}
- add_filter( 'jetpack_contact_form_is_spam', array( $this, 'is_spam_blacklist' ), 10, 2 );
-
+ add_filter( 'jetpack_contact_form_is_spam', array( $this, 'is_spam_blocklist' ), 10, 2 );
+ add_filter( 'jetpack_contact_form_in_comment_disallowed_list', array( $this, 'is_in_disallowed_list' ), 10, 2 );
// Akismet to the rescue
if ( defined( 'AKISMET_VERSION' ) || function_exists( 'akismet_http_post' ) ) {
add_filter( 'jetpack_contact_form_is_spam', array( $this, 'is_spam_akismet' ), 10, 2 );
@@ -149,6 +150,7 @@ class Grunion_Contact_Form_Plugin {
}
add_action( 'loop_start', array( 'Grunion_Contact_Form', '_style_on' ) );
+ add_action( 'pre_amp_render_post', array( 'Grunion_Contact_Form', '_style_on' ) );
add_action( 'wp_ajax_grunion-contact-form', array( $this, 'ajax_request' ) );
add_action( 'wp_ajax_nopriv_grunion-contact-form', array( $this, 'ajax_request' ) );
@@ -161,23 +163,25 @@ class Grunion_Contact_Form_Plugin {
if ( is_admin() ) {
add_action( 'admin_init', array( $this, 'download_feedback_as_csv' ) );
add_action( 'admin_footer-edit.php', array( $this, 'export_form' ) );
- add_action( 'admin_menu', array( $this, 'admin_menu' ) );
- add_action( 'current_screen', array( $this, 'unread_count' ) );
}
+ add_action( 'admin_menu', array( $this, 'admin_menu' ) );
+ add_action( 'current_screen', array( $this, 'unread_count' ) );
+
+ add_filter( 'use_block_editor_for_post_type', array( $this, 'use_block_editor_for_post_type' ), 10, 2 );
// custom post type we'll use to keep copies of the feedback items
register_post_type(
'feedback', array(
'labels' => array(
- 'name' => __( 'Feedback', 'jetpack' ),
- 'singular_name' => __( 'Feedback', 'jetpack' ),
- 'search_items' => __( 'Search Feedback', 'jetpack' ),
- 'not_found' => __( 'No feedback found', 'jetpack' ),
- 'not_found_in_trash' => __( 'No feedback found', 'jetpack' ),
+ 'name' => __( 'Form Responses', 'jetpack' ),
+ 'singular_name' => __( 'Form Responses', 'jetpack' ),
+ 'search_items' => __( 'Search Responses', 'jetpack' ),
+ 'not_found' => __( 'No responses found', 'jetpack' ),
+ 'not_found_in_trash' => __( 'No responses found', 'jetpack' ),
),
- // Matrial Ballot icon
- 'menu_icon' => 'data:image/svg+xml;base64,' . base64_encode('<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M13 7.5h5v2h-5zm0 7h5v2h-5zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM11 6H6v5h5V6zm-1 4H7V7h3v3zm1 3H6v5h5v-5zm-1 4H7v-3h3v3z"/></svg>'),
+ 'menu_icon' => 'dashicons-feedback',
'show_ui' => true,
+ 'show_in_menu' => false,
'show_in_admin_bar' => false,
'public' => false,
'rewrite' => false,
@@ -201,7 +205,7 @@ class Grunion_Contact_Form_Plugin {
)
);
- // Add to REST API post type whitelist
+ // Add to REST API post type allowed list.
add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_feedback_rest_api_type' ) );
// Add "spam" as a post status
@@ -243,58 +247,112 @@ class Grunion_Contact_Form_Plugin {
}
private static function register_contact_form_blocks() {
- jetpack_register_block( 'jetpack/contact-form', array(
- 'render_callback' => array( __CLASS__, 'gutenblock_render_form' ),
- ) );
+ Blocks::jetpack_register_block(
+ 'jetpack/contact-form',
+ array(
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_form' ),
+ )
+ );
// Field render methods.
- jetpack_register_block( 'jetpack/field-text', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_text' ),
- ) );
- jetpack_register_block( 'jetpack/field-name', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_name' ),
- ) );
- jetpack_register_block( 'jetpack/field-email', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_email' ),
- ) );
- jetpack_register_block( 'jetpack/field-url', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_url' ),
- ) );
- jetpack_register_block( 'jetpack/field-date', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_date' ),
- ) );
- jetpack_register_block( 'jetpack/field-telephone', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_telephone' ),
- ) );
- jetpack_register_block( 'jetpack/field-textarea', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_textarea' ),
- ) );
- jetpack_register_block( 'jetpack/field-checkbox', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_checkbox' ),
- ) );
- jetpack_register_block( 'jetpack/field-checkbox-multiple', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_checkbox_multiple' ),
- ) );
- jetpack_register_block( 'jetpack/field-radio', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_radio' ),
- ) );
- jetpack_register_block( 'jetpack/field-select', array(
- 'parent' => array( 'jetpack/contact-form' ),
- 'render_callback' => array( __CLASS__, 'gutenblock_render_field_select' ),
- ) );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-text',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_text' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-name',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_name' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-email',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_email' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-url',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_url' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-date',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_date' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-telephone',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_telephone' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-textarea',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_textarea' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-checkbox',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_checkbox' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-checkbox-multiple',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_checkbox_multiple' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-radio',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_radio' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-select',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_select' ),
+ )
+ );
+ Blocks::jetpack_register_block(
+ 'jetpack/field-consent',
+ array(
+ 'parent' => array( 'jetpack/contact-form' ),
+ 'render_callback' => array( __CLASS__, 'gutenblock_render_field_consent' ),
+ )
+ );
}
public static function gutenblock_render_form( $atts, $content ) {
+
+ // Render fallback in other contexts than frontend (i.e. feed, emails, API, etc.), unless the form is being submitted.
+ if ( ! jetpack_is_frontend() && ! isset( $_POST['contact-form-id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ return sprintf(
+ '<div class="%1$s"><a href="%2$s" target="_blank" rel="noopener noreferrer">%3$s</a></div>',
+ esc_attr( Blocks::classes( 'contact-form', $atts ) ),
+ esc_url( get_the_permalink() ),
+ esc_html__( 'Submit a form.', 'jetpack' )
+ );
+ }
+
return Grunion_Contact_Form::parse( $atts, do_blocks( $content ) );
}
@@ -359,21 +417,59 @@ class Grunion_Contact_Form_Plugin {
}
/**
- * Add the 'Export' menu item as a submenu of Feedback.
+ * Render the consent field.
+ *
+ * @param string $atts consent attributes.
+ * @param string $content html content.
+ */
+ public static function gutenblock_render_field_consent( $atts, $content ) {
+ $atts = self::block_attributes_to_shortcode_attributes( $atts, 'consent' );
+
+ if ( ! isset( $atts['implicitConsentMessage'] ) ) {
+ $atts['implicitConsentMessage'] = __( "By submitting your information, you're giving us permission to email you. You may unsubscribe at any time.", 'jetpack' );
+ }
+
+ if ( ! isset( $atts['explicitConsentMessage'] ) ) {
+ $atts['explicitConsentMessage'] = __( 'Can we send you an email from time to time?', 'jetpack' );
+ }
+
+ return Grunion_Contact_Form::parse_contact_field( $atts, $content );
+ }
+
+ /**
+ * Add the 'Form Responses' menu item as a submenu of Feedback.
*/
public function admin_menu() {
+ $slug = 'feedback';
+
+ add_menu_page(
+ __( 'Feedback', 'jetpack' ),
+ __( 'Feedback', 'jetpack' ),
+ 'edit_pages',
+ $slug,
+ null,
+ 'dashicons-feedback',
+ 45
+ );
+
add_submenu_page(
+ $slug,
+ __( 'Form Responses', 'jetpack' ),
+ __( 'Form Responses', 'jetpack' ),
+ 'edit_pages',
'edit.php?post_type=feedback',
- __( 'Export feedback as CSV', 'jetpack' ),
- __( 'Export CSV', 'jetpack' ),
- 'export',
- 'feedback-export',
- array( $this, 'export_form' )
+ null,
+ 0
+ );
+
+ remove_submenu_page(
+ $slug,
+ $slug
);
}
/**
- * Add to REST API post type whitelist
+ * Add to REST API post type allowed list.
*/
function allow_feedback_rest_api_type( $post_types ) {
$post_types[] = 'feedback';
@@ -391,14 +487,16 @@ class Grunion_Contact_Form_Plugin {
if ( isset( $screen->post_type ) && 'feedback' == $screen->post_type ) {
update_option( 'feedback_unread_count', 0 );
} else {
- global $menu;
- if ( isset( $menu ) && is_array( $menu ) && ! empty( $menu ) ) {
- foreach ( $menu as $index => $menu_item ) {
+ global $submenu;
+ if ( isset( $submenu['feedback'] ) && is_array( $submenu['feedback'] ) && ! empty( $submenu['feedback'] ) ) {
+ foreach ( $submenu['feedback'] as $index => $menu_item ) {
if ( 'edit.php?post_type=feedback' == $menu_item[2] ) {
$unread = get_option( 'feedback_unread_count', 0 );
if ( $unread > 0 ) {
- $unread_count = current_user_can( 'publish_pages' ) ? " <span class='feedback-unread count-{$unread} awaiting-mod'><span class='feedback-unread-count'>" . number_format_i18n( $unread ) . '</span></span>' : '';
- $menu[ $index ][0] .= $unread_count;
+ $unread_count = current_user_can( 'publish_pages' ) ? " <span class='feedback-unread count-{$unread} awaiting-mod'><span class='feedback-unread-count'>" . number_format_i18n( $unread ) . '</span></span>' : '';
+
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu['feedback'][ $index ][0] .= $unread_count;
}
break;
}
@@ -417,9 +515,13 @@ class Grunion_Contact_Form_Plugin {
add_filter( 'contact_form_subject', array( $this, 'replace_tokens_with_input' ), 10, 2 );
$id = stripslashes( $_POST['contact-form-id'] );
- $hash = isset( $_POST['contact-form-hash'] ) ? $_POST['contact-form-hash'] : null;
+ $hash = isset( $_POST['contact-form-hash'] ) ? $_POST['contact-form-hash'] : '';
$hash = preg_replace( '/[^\da-f]/i', '', $hash );
+ if ( ! is_string( $id ) || ! is_string( $hash ) ) {
+ return false;
+ }
+
if ( is_user_logged_in() ) {
check_admin_referer( "contact-form_{$id}" );
}
@@ -458,24 +560,26 @@ class Grunion_Contact_Form_Plugin {
$post = get_post( $id );
// Process the content to populate Grunion_Contact_Form::$last
- /** This filter is already documented in core. wp-includes/post-template.php */
- apply_filters( 'the_content', $post->post_content );
+ if ( $post ) {
+ /** This filter is already documented in core. wp-includes/post-template.php */
+ apply_filters( 'the_content', $post->post_content );
+ }
}
$form = isset( Grunion_Contact_Form::$forms[ $hash ] ) ? Grunion_Contact_Form::$forms[ $hash ] : null;
// No form may mean user is using do_shortcode, grab the form using the stored post meta
- if ( ! $form ) {
+ if ( ! $form && is_numeric( $id ) && $hash ) {
// Get shortcode from post meta
- $shortcode = get_post_meta( $_POST['contact-form-id'], "_g_feedback_shortcode_{$hash}", true );
+ $shortcode = get_post_meta( $id, "_g_feedback_shortcode_{$hash}", true );
// Format it
if ( $shortcode != '' ) {
// Get attributes from post meta.
$parameters = '';
- $attributes = get_post_meta( $_POST['contact-form-id'], "_g_feedback_shortcode_atts_{$hash}", true );
+ $attributes = get_post_meta( $id, "_g_feedback_shortcode_atts_{$hash}", true );
if ( ! empty( $attributes ) && is_array( $attributes ) ) {
foreach ( array_filter( $attributes ) as $param => $value ) {
$parameters .= " $param=\"$value\"";
@@ -488,10 +592,10 @@ class Grunion_Contact_Form_Plugin {
// Recreate form
$form = Grunion_Contact_Form::$last;
}
+ }
- if ( ! $form ) {
- return false;
- }
+ if ( ! $form ) {
+ return false;
}
if ( is_wp_error( $form->errors ) && $form->errors->get_error_codes() ) {
@@ -553,7 +657,10 @@ class Grunion_Contact_Form_Plugin {
}
static function sanitize_value( $value ) {
- return preg_replace( '=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', null, $value );
+ if ( null === $value ) {
+ return '';
+ }
+ return preg_replace( '=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i', '', $value );
}
/**
@@ -634,8 +741,8 @@ class Grunion_Contact_Form_Plugin {
}
/**
- * Check if a submission matches the Comment Blacklist.
- * The Comment Blacklist is a means to moderate discussion, and contact
+ * Check if a submission matches the Comment Blocklist.
+ * The Comment Blocklist is a means to moderate discussion, and contact
* forms are 1:1 discussion forums, ripe for abuse by users who are being
* removed from the public discussion.
* Attached to `jetpack_contact_form_is_spam`
@@ -644,12 +751,37 @@ class Grunion_Contact_Form_Plugin {
* @param array $form
* @return bool TRUE => spam, FALSE => not spam
*/
- function is_spam_blacklist( $is_spam, $form = array() ) {
+ public function is_spam_blocklist( $is_spam, $form = array() ) {
if ( $is_spam ) {
return $is_spam;
}
- if ( wp_blacklist_check( $form['comment_author'], $form['comment_author_email'], $form['comment_author_url'], $form['comment_content'], $form['user_ip'], $form['user_agent'] ) ) {
+ return $this->is_in_disallowed_list( false, $form );
+ }
+
+ /**
+ * Check if a submission matches the comment disallowed list.
+ * Attached to `jetpack_contact_form_in_comment_disallowed_list`.
+ *
+ * @param boolean $in_disallowed_list Whether the feedback is in the disallowed list.
+ * @param array $form The form array.
+ * @return bool Returns true if the form submission matches the disallowed list and false if it doesn't.
+ */
+ public function is_in_disallowed_list( $in_disallowed_list, $form = array() ) {
+ if ( $in_disallowed_list ) {
+ return $in_disallowed_list;
+ }
+
+ if (
+ wp_check_comment_disallowed_list(
+ $form['comment_author'],
+ $form['comment_author_email'],
+ $form['comment_author_url'],
+ $form['comment_content'],
+ $form['user_ip'],
+ $form['user_agent']
+ )
+ ) {
return true;
}
@@ -666,8 +798,8 @@ class Grunion_Contact_Form_Plugin {
function prepare_for_akismet( $form ) {
$form['comment_type'] = 'contact_form';
$form['user_ip'] = $_SERVER['REMOTE_ADDR'];
- $form['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
- $form['referrer'] = $_SERVER['HTTP_REFERER'];
+ $form['user_agent'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
+ $form['referrer'] = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : '';
$form['blog'] = get_option( 'home' );
foreach ( $_SERVER as $key => $value ) {
@@ -687,7 +819,16 @@ class Grunion_Contact_Form_Plugin {
}
}
- return $form;
+ /**
+ * Filter the values that are sent to Akismet for the spam check.
+ *
+ * @module contact-form
+ *
+ * @since 10.2.0
+ *
+ * @param array $form The form values being sent to Akismet.
+ */
+ return apply_filters( 'jetpack_contact_form_akismet_values', $form );
}
/**
@@ -794,13 +935,13 @@ class Grunion_Contact_Form_Plugin {
?>
<div id="feedback-export" style="display:none">
- <h2><?php _e( 'Export feedback as CSV', 'jetpack' ); ?></h2>
+ <h2><?php esc_html_e( 'Export responses as CSV', 'jetpack' ); ?></h2>
<div class="clear"></div>
<form action="<?php echo admin_url( 'admin-post.php' ); ?>" method="post" class="form">
<?php wp_nonce_field( 'feedback_export', 'feedback_export_nonce' ); ?>
<input name="action" value="feedback_export" type="hidden">
- <label for="post"><?php _e( 'Select feedback to download', 'jetpack' ); ?></label>
+ <label for="post"><?php esc_html_e( 'Select responses to download', 'jetpack' ); ?></label>
<select name="post">
<option value="all"><?php esc_html_e( 'All posts', 'jetpack' ); ?></option>
<?php echo $this->get_feedbacks_as_options(); ?>
@@ -854,6 +995,17 @@ class Grunion_Contact_Form_Plugin {
$md['feedback_date'] = get_the_date( DATE_RFC3339, $post_id );
$content_fields = self::parse_fields_from_content( $post_id );
$md['feedback_ip'] = ( isset( $content_fields['_feedback_ip'] ) ) ? $content_fields['_feedback_ip'] : 0;
+
+ // add the email_marketing_consent to the post meta.
+ $md['email_marketing_consent'] = 0;
+ if ( isset( $content_fields['_feedback_all_fields'] ) ) {
+ $all_fields = $content_fields['_feedback_all_fields'];
+ // check if the email_marketing_consent field exists.
+ if ( isset( $all_fields['email_marketing_consent'] ) ) {
+ $md['email_marketing_consent'] = $all_fields['email_marketing_consent'];
+ }
+ }
+
return $md;
}
@@ -1584,6 +1736,17 @@ class Grunion_Contact_Form_Plugin {
public static function get_ip_address() {
return isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null;
}
+
+ /**
+ * Disable Block Editor for feedbacks.
+ *
+ * @param bool $can_edit Whether the post type can be edited or not.
+ * @param string $post_type The post type being checked.
+ * @return bool
+ */
+ public function use_block_editor_for_post_type( $can_edit, $post_type ) {
+ return 'feedback' === $post_type ? false : $can_edit;
+ }
}
/**
@@ -1651,9 +1814,9 @@ class Crunion_Contact_Form_Shortcode {
function parse_content( $content ) {
if ( is_null( $content ) ) {
$this->body = null;
+ } else {
+ $this->body = do_shortcode( $content );
}
-
- $this->body = do_shortcode( $content );
}
/**
@@ -1697,7 +1860,8 @@ class Crunion_Contact_Form_Shortcode {
// For back-compat with old Grunion encoding
// Also, unencode commas
$value = strtr(
- $value, array(
+ (string) $value,
+ array(
'%26' => '&',
'%25' => '%',
)
@@ -1814,7 +1978,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$this->hash = sha1( json_encode( $attributes ) . $content );
self::$forms[ $this->hash ] = $this;
- // Set up the default subject and recipient for this form
+ // Set up the default subject and recipient for this form.
$default_to = '';
$default_subject = '[' . get_option( 'blogname' ) . ']';
@@ -1833,7 +1997,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$default_to .= $post_author->user_email;
}
- // Keep reference to $this for parsing form fields
+ // Keep reference to $this for parsing form fields.
self::$current_form = $this;
$this->defaults = array(
@@ -1845,20 +2009,22 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
'submit_button_text' => __( 'Submit', 'jetpack' ),
// These attributes come from the block editor, so use camel case instead of snake case.
'customThankyou' => '', // Whether to show a custom thankyou response after submitting a form. '' for no, 'message' for a custom message, 'redirect' to redirect to a new URL.
+ 'customThankyouHeading' => __( 'Message Sent', 'jetpack' ), // The text to show above customThankyouMessage.
'customThankyouMessage' => __( 'Thank you for your submission!', 'jetpack' ), // The message to show when customThankyou is set to 'message'.
'customThankyouRedirect' => '', // The URL to redirect to when customThankyou is set to 'redirect'.
+ 'jetpackCRM' => true, // Whether Jetpack CRM should store the form submission.
);
$attributes = shortcode_atts( $this->defaults, $attributes, 'contact-form' );
- // We only enable the contact-field shortcode temporarily while processing the contact-form shortcode
+ // We only enable the contact-field shortcode temporarily while processing the contact-form shortcode.
Grunion_Contact_Form_Plugin::$using_contact_form_field = true;
parent::__construct( $attributes, $content );
// There were no fields in the contact form. The form was probably just [contact-form /]. Build a default form.
if ( empty( $this->fields ) ) {
- // same as the original Grunion v1 form
+ // same as the original Grunion v1 form.
$default_form = '
[contact-field label="' . __( 'Name', 'jetpack' ) . '" type="name" required="true" /]
[contact-field label="' . __( 'Email', 'jetpack' ) . '" type="email" required="true" /]
@@ -1874,10 +2040,10 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$this->parse_content( $default_form );
- // Store the shortcode
+ // Store the shortcode.
$this->store_shortcode( $default_form, $attributes, $this->hash );
} else {
- // Store the shortcode
+ // Store the shortcode.
$this->store_shortcode( $content, $attributes, $this->hash );
}
@@ -1981,16 +2147,17 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
if ( isset( $_GET['contact-form-id'] )
- && $_GET['contact-form-id'] == self::$last->get_attribute( 'id' )
- && isset( $_GET['contact-form-sent'], $_GET['contact-form-hash'] )
- && hash_equals( $form->hash, $_GET['contact-form-hash'] ) ) {
- // The contact form was submitted. Show the success message/results
+ && (int) $_GET['contact-form-id'] === (int) self::$last->get_attribute( 'id' )
+ && isset( $_GET['contact-form-sent'], $_GET['contact-form-hash'] )
+ && is_string( $_GET['contact-form-hash'] )
+ && hash_equals( $form->hash, $_GET['contact-form-hash'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ // The contact form was submitted. Show the success message/results.
$feedback_id = (int) $_GET['contact-form-sent'];
$back_url = remove_query_arg( array( 'contact-form-id', 'contact-form-sent', '_wpnonce' ) );
$r_success_message =
- '<h3>' . __( 'Message Sent', 'jetpack' ) .
+ '<h3>' . esc_html( $form->get_attribute( 'customThankyouHeading' ) ) .
' (<a href="' . esc_url( $back_url ) . '">' . esc_html__( 'go back', 'jetpack' ) . '</a>)' .
"</h3>\n\n";
@@ -2034,50 +2201,63 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
* @param $post $GLOBALS['post'] Post global variable.
* @param int $id Contact Form ID.
*/
- $url = apply_filters( 'grunion_contact_form_form_action', "{$url}#contact-form-{$id}", $GLOBALS['post'], $id );
+ $url = apply_filters( 'grunion_contact_form_form_action', "{$url}#contact-form-{$id}", $GLOBALS['post'], $id );
+ $has_submit_button_block = ! ( false === strpos( $content, 'wp-block-jetpack-button' ) );
+ $form_classes = 'contact-form commentsblock';
+
+ if ( $has_submit_button_block ) {
+ $form_classes .= ' wp-block-jetpack-contact-form';
+ }
+
+ $r .= "<form action='" . esc_url( $url ) . "' method='post' class='" . esc_attr( $form_classes ) . "'>\n";
+ $r .= self::get_script_for_form();
- $r .= "<form action='" . esc_url( $url ) . "' method='post' class='contact-form commentsblock'>\n";
$r .= $form->body;
- $r .= "\t<p class='contact-submit'>\n";
- $gutenberg_submit_button_classes = '';
- if ( ! empty( $attributes['submitButtonClasses'] ) ) {
- $gutenberg_submit_button_classes = ' ' . $attributes['submitButtonClasses'];
- }
+ // In new versions of the contact form block the button is an inner block
+ // so the button does not need to be constructed server-side.
+ if ( ! $has_submit_button_block ) {
+ $r .= "\t<p class='contact-submit'>\n";
- /**
- * Filter the contact form submit button class attribute.
- *
- * @module contact-form
- *
- * @since 6.6.0
- *
- * @param string $class Additional CSS classes for button attribute.
- */
- $submit_button_class = apply_filters( 'jetpack_contact_form_submit_button_class', 'pushbutton-wide' . $gutenberg_submit_button_classes );
+ $gutenberg_submit_button_classes = '';
+ if ( ! empty( $attributes['submitButtonClasses'] ) ) {
+ $gutenberg_submit_button_classes = ' ' . $attributes['submitButtonClasses'];
+ }
- $submit_button_styles = '';
- if ( ! empty( $attributes['customBackgroundButtonColor'] ) ) {
- $submit_button_styles .= 'background-color: ' . $attributes['customBackgroundButtonColor'] . '; ';
- }
- if ( ! empty( $attributes['customTextButtonColor'] ) ) {
- $submit_button_styles .= 'color: ' . $attributes['customTextButtonColor'] . ';';
- }
- if ( ! empty( $attributes['submitButtonText'] ) ) {
- $submit_button_text = $attributes['submitButtonText'];
- } else {
- $submit_button_text = $form->get_attribute( 'submit_button_text' );
- }
+ /**
+ * Filter the contact form submit button class attribute.
+ *
+ * @module contact-form
+ *
+ * @since 6.6.0
+ *
+ * @param string $class Additional CSS classes for button attribute.
+ */
+ $submit_button_class = apply_filters( 'jetpack_contact_form_submit_button_class', 'pushbutton-wide' . $gutenberg_submit_button_classes );
+
+ $submit_button_styles = '';
+ if ( ! empty( $attributes['customBackgroundButtonColor'] ) ) {
+ $submit_button_styles .= 'background-color: ' . $attributes['customBackgroundButtonColor'] . '; ';
+ }
+ if ( ! empty( $attributes['customTextButtonColor'] ) ) {
+ $submit_button_styles .= 'color: ' . $attributes['customTextButtonColor'] . ';';
+ }
+ if ( ! empty( $attributes['submitButtonText'] ) ) {
+ $submit_button_text = $attributes['submitButtonText'];
+ } else {
+ $submit_button_text = $form->get_attribute( 'submit_button_text' );
+ }
- $r .= "\t\t<button type='submit' class='" . esc_attr( $submit_button_class ) . "'";
- if ( ! empty( $submit_button_styles ) ) {
- $r .= " style='" . esc_attr( $submit_button_styles ) . "'";
+ $r .= "\t\t<button type='submit' class='" . esc_attr( $submit_button_class ) . "'";
+ if ( ! empty( $submit_button_styles ) ) {
+ $r .= " style='" . esc_attr( $submit_button_styles ) . "'";
+ }
+ $r .= ">";
+ $r .= wp_kses(
+ $submit_button_text,
+ self::$allowed_html_tags_for_submit_button
+ ) . "</button>";
}
- $r .= ">";
- $r .= wp_kses(
- $submit_button_text,
- self::$allowed_html_tags_for_submit_button
- ) . "</button>";
if ( is_user_logged_in() ) {
$r .= "\t\t" . wp_nonce_field( 'contact-form_' . $id, '_wpnonce', true, false ) . "\n"; // nonce and referer
@@ -2089,13 +2269,26 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$r .= "\t\t<input type='hidden' name='contact-form-id' value='$id' />\n";
$r .= "\t\t<input type='hidden' name='action' value='grunion-contact-form' />\n";
$r .= "\t\t<input type='hidden' name='contact-form-hash' value='" . esc_attr( $form->hash ) . "' />\n";
- $r .= "\t</p>\n";
+
+ if ( ! $has_submit_button_block ) {
+ $r .= "\t</p>\n";
+ }
+
$r .= "</form>\n";
}
$r .= '</div>';
- return $r;
+ /**
+ * Filter the contact form, allowing plugins to modify the HTML.
+ *
+ * @module contact-form
+ *
+ * @since 10.2.0
+ *
+ * @param string $r The contact form HTML.
+ */
+ return apply_filters( 'jetpack_contact_form_html', $r );
}
/**
@@ -2126,6 +2319,29 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
/**
+ * Returns a script that disables the contact form button after a form submission.
+ *
+ * @return string The script.
+ */
+ private static function get_script_for_form() {
+ return "<script>
+ ( function () {
+ const contact_forms = document.getElementsByClassName('contact-form');
+
+ for ( const form of contact_forms ) {
+ form.onsubmit = function() {
+ const buttons = form.getElementsByTagName('button');
+
+ for( const button of buttons ) {
+ button.setAttribute('disabled', true);
+ }
+ }
+ }
+ } )();
+ </script>";
+ }
+
+ /**
* Returns a compiled form with labels and values in a form of an array
* of lines.
*
@@ -2150,7 +2366,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$compiled_form = array();
- // "Standard" field whitelist
+ // "Standard" field allowed list.
foreach ( $field_value_map as $type => $meta_key ) {
if ( isset( $field_ids[ $type ] ) ) {
$field = $form->fields[ $field_ids[ $type ] ];
@@ -2166,6 +2382,11 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$value = trim( $value );
}
+ // If we still do not have any value, bail.
+ if ( empty( $value ) ) {
+ continue;
+ }
+
$field_index = array_search( $field_ids[ $type ], $field_ids['all'] );
$compiled_form[ $field_index ] = sprintf(
'<b>%1$s:</b> %2$s<br /><br />',
@@ -2228,6 +2449,34 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
/**
+ * Escape a shortcode value.
+ *
+ * Shortcode attribute values have a number of unfortunate restrictions, which fortunately we
+ * can get around by adding some extra HTML encoding.
+ *
+ * The output HTML will have a few extra escapes, but that makes no functional difference.
+ *
+ * @since 9.1.0
+ * @param string $val Value to escape.
+ * @return string
+ */
+ private static function esc_shortcode_val( $val ) {
+ return strtr(
+ esc_html( $val ),
+ array(
+ // Brackets in attribute values break the shortcode parser.
+ '[' => '&#091;',
+ ']' => '&#093;',
+ // Shortcode parser screws up backslashes too, thanks to calls to `stripcslashes`.
+ '\\' => '&#092;',
+ // The existing code here represents arrays as comma-separated strings.
+ // Rather than trying to change representations now, just escape the commas in values.
+ ',' => '&#044;',
+ )
+ );
+ }
+
+ /**
* The contact-field shortcode processor
* We use an object method here instead of a static Grunion_Contact_Form_Field class method to parse contact-field shortcodes so that we can tie them to the contact-form object.
*
@@ -2245,18 +2494,18 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
foreach ( $attributes as $att => $val ) {
if ( is_numeric( $att ) ) { // Is a valueless attribute
- $att_strs[] = esc_html( $val );
+ $att_strs[] = self::esc_shortcode_val( $val );
} elseif ( isset( $val ) ) { // A regular attr - value pair
if ( ( $att === 'options' || $att === 'values' ) && is_string( $val ) ) { // remove any empty strings
$val = explode( ',', $val );
}
- if ( is_array( $val ) ) {
+ if ( is_array( $val ) ) {
$val = array_filter( $val, array( __CLASS__, 'remove_empty' ) ); // removes any empty strings
- $att_strs[] = esc_html( $att ) . '="' . implode( ',', array_map( 'esc_html', $val ) ) . '"';
+ $att_strs[] = esc_html( $att ) . '="' . implode( ',', array_map( array( __CLASS__, 'esc_shortcode_val' ), $val ) ) . '"';
} elseif ( is_bool( $val ) ) {
- $att_strs[] = esc_html( $att ) . '="' . esc_html( $val ? '1' : '' ) . '"';
+ $att_strs[] = esc_html( $att ) . '="' . ( $val ? '1' : '' ) . '"';
} else {
- $att_strs[] = esc_html( $att ) . '="' . esc_html( $val ) . '"';
+ $att_strs[] = esc_html( $att ) . '="' . self::esc_shortcode_val( $val ) . '"';
}
}
}
@@ -2299,59 +2548,75 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
static function get_default_label_from_type( $type ) {
+ $str = null;
switch ( $type ) {
case 'text':
- return __( 'Text', 'jetpack' );
+ $str = __( 'Text', 'jetpack' );
+ break;
case 'name':
- return __( 'Name', 'jetpack' );
+ $str = __( 'Name', 'jetpack' );
+ break;
case 'email':
- return __( 'Email', 'jetpack' );
+ $str = __( 'Email', 'jetpack' );
+ break;
case 'url':
- return __( 'Website', 'jetpack' );
+ $str = __( 'Website', 'jetpack' );
+ break;
case 'date':
- return __( 'Date', 'jetpack' );
+ $str = __( 'Date', 'jetpack' );
+ break;
case 'telephone':
- return __( 'Phone', 'jetpack' );
+ $str = __( 'Phone', 'jetpack' );
+ break;
case 'textarea':
- return __( 'Message', 'jetpack' );
+ $str = __( 'Message', 'jetpack' );
+ break;
case 'checkbox':
- return __( 'Checkbox', 'jetpack' );
+ $str = __( 'Checkbox', 'jetpack' );
+ break;
case 'checkbox-multiple':
- return __( 'Choose several', 'jetpack' );
+ $str = __( 'Choose several', 'jetpack' );
+ break;
case 'radio':
- return __( 'Choose one', 'jetpack' );
+ $str = __( 'Choose one', 'jetpack' );
+ break;
case 'select':
- return __( 'Select one', 'jetpack' );
+ $str = __( 'Select one', 'jetpack' );
+ break;
+ case 'consent':
+ $str = __( 'Consent', 'jetpack' );
+ break;
default:
- return null;
+ $str = null;
}
+ return $str;
}
/**
* Loops through $this->fields to generate a (structured) list of field IDs.
*
- * Important: Currently the whitelisted fields are defined as follows:
+ * Important: Currently the allowed fields are defined as follows:
* `name`, `email`, `url`, `subject`, `textarea`
*
* If you need to add new fields to the Contact Form, please don't add them
- * to the whitelisted fields and leave them as extra fields.
+ * to the allowed fields and leave them as extra fields.
*
* The reasoning behind this is that both the admin Feedback view and the CSV
* export will not include any fields that are added to the list of
- * whitelisted fields without taking proper care to add them to all the
+ * allowed fields without taking proper care to add them to all the
* other places where they accessed/used/saved.
*
* The safest way to add new fields is to add them to the dropdown and the
* HTML list ( @see Grunion_Contact_Form_Field::render ) and don't add them
- * to the list of whitelisted fields. This way they will become a part of the
+ * to the list of allowed fields. This way they will become a part of the
* `extra fields` which are saved in the post meta and will be properly
* handled by the admin Feedback view and the CSV Export without any extra
* work.
*
- * If there is need to add a field to the whitelisted fields, then please
+ * If there is need to add a field to the allowed fields, then please
* take proper care to add logic to handle the field in the following places:
*
- * - Below in the switch statement - so the field is recognized as whitelisted.
+ * - Below in the switch statement - so the field is recognized as allowed.
*
* - Grunion_Contact_Form::process_submission - validation and logic.
*
@@ -2372,10 +2637,10 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
*/
function get_field_ids() {
$field_ids = array(
- 'all' => array(), // array of all field_ids
- 'extra' => array(), // array of all non-whitelisted field IDs
+ 'all' => array(), // array of all field_ids.
+ 'extra' => array(), // array of all non-allowed field IDs.
- // Whitelisted "standard" field IDs:
+ // Allowed "standard" field IDs:
// 'email' => field_id,
// 'name' => field_id,
// 'url' => field_id,
@@ -2388,7 +2653,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$type = $field->get_attribute( 'type' );
if ( isset( $field_ids[ $type ] ) ) {
- // This type of field is already present in our whitelist of "standard" fields for this form
+ // This type of field is already present in our allowed list of "standard" fields for this form
// Put it in extra
$field_ids['extra'][] = $id;
continue;
@@ -2403,6 +2668,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
case 'url':
case 'subject':
case 'textarea':
+ case 'consent':
$field_ids[ $type ] = $id;
break;
default:
@@ -2427,7 +2693,8 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$to = $this->get_attribute( 'to' );
$widget = $this->get_attribute( 'widget' );
- $contact_form_subject = $this->get_attribute( 'subject' );
+ $contact_form_subject = $this->get_attribute( 'subject' );
+ $email_marketing_consent = false;
$to = str_replace( ' ', '', $to );
$emails = explode( ',', $to );
@@ -2528,6 +2795,13 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
}
}
+ if ( isset( $field_ids['consent'] ) ) {
+ $field = $this->fields[ $field_ids['consent'] ];
+ if ( $field->value ) {
+ $email_marketing_consent = true;
+ }
+ }
+
$all_values = $extra_values = array();
$i = 1; // Prefix counter for stored metadata
@@ -2566,7 +2840,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$vars = array( 'comment_author', 'comment_author_email', 'comment_author_url', 'contact_form_subject', 'comment_author_IP' );
foreach ( $vars as $var ) {
- $$var = str_replace( array( "\n", "\r" ), '', $$var );
+ $$var = str_replace( array( "\n", "\r" ), '', (string) $$var );
}
// Ensure that Akismet gets all of the relevant information from the contact form,
@@ -2615,6 +2889,18 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$spam = '***SPAM*** ';
}
+ /**
+ * Filter whether a submitted contact form is in the comment disallowed list.
+ *
+ * @module contact-form
+ *
+ * @since 8.9.0
+ *
+ * @param bool $result Is the submitted feedback in the disallowed list.
+ * @param array $akismet_values Feedack values returned by the Akismet plugin.
+ */
+ $in_comment_disallowed_list = apply_filters( 'jetpack_contact_form_in_comment_disallowed_list', false, $akismet_values );
+
if ( ! $comment_author ) {
$comment_author = $comment_author_email;
}
@@ -2643,22 +2929,56 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$reply_to_addr = $comment_author_email;
}
- $headers = 'From: "' . $comment_author . '" <' . $from_email_addr . ">\r\n" .
- 'Reply-To: "' . $comment_author . '" <' . $reply_to_addr . ">\r\n";
+ /*
+ * The email headers here are formatted in a format
+ * that is the most likely to be accepted by wp_mail(),
+ * without escaping.
+ * More info: https://github.com/Automattic/jetpack/pull/19727
+ */
+ $headers = 'From: ' . $comment_author . ' <' . $from_email_addr . ">\r\n" .
+ 'Reply-To: ' . $comment_author . ' <' . $reply_to_addr . ">\r\n";
+
+ /**
+ * Allow customizing the email headers.
+ *
+ * Warning: DO NOT add headers or header data from the form submission without proper
+ * escaping and validation, or you're liable to allow abusers to use your site to send spam.
+ *
+ * Especially DO NOT take email addresses from the form data to add as CC or BCC headers
+ * without strictly validating each address against a list of allowed addresses.
+ *
+ * @module contact-form
+ *
+ * @since 10.2.0
+ *
+ * @param string|array $headers Email headers.
+ * @param string $comment_author Name of the author of the submitted feedback, if provided in form.
+ * @param string $reply_to_addr Email of the author of the submitted feedback, if provided in form.
+ * @param string|array $to Array of valid email addresses, or single email address, where the form is sent.
+ */
+ $headers = apply_filters(
+ 'jetpack_contact_form_email_headers',
+ $headers,
+ $comment_author,
+ $reply_to_addr,
+ $to
+ );
+
+ $all_values['email_marketing_consent'] = $email_marketing_consent;
// Build feedback reference
$feedback_time = current_time( 'mysql' );
$feedback_title = "{$comment_author} - {$feedback_time}";
$feedback_id = md5( $feedback_title );
- $all_values = array_merge(
- $all_values, array(
- 'entry_title' => the_title_attribute( 'echo=0' ),
- 'entry_permalink' => esc_url( get_permalink( get_the_ID() ) ),
- 'feedback_id' => $feedback_id,
- )
+ $entry_values = array(
+ 'entry_title' => the_title_attribute( 'echo=0' ),
+ 'entry_permalink' => esc_url( get_permalink( get_the_ID() ) ),
+ 'feedback_id' => $feedback_id,
);
+ $all_values = array_merge( $all_values, $entry_values );
+
/** This filter is already documented in modules/contact-form/admin.php */
$subject = apply_filters( 'contact_form_subject', $contact_form_subject, $all_values );
$url = $widget ? home_url( '/' ) : get_permalink( $post->ID );
@@ -2667,8 +2987,14 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
$date_time_format = sprintf( $date_time_format, get_option( 'date_format' ), get_option( 'time_format' ) );
$time = date_i18n( $date_time_format, current_time( 'timestamp' ) );
- // keep a copy of the feedback as a custom post type
- $feedback_status = $is_spam === true ? 'spam' : 'publish';
+ // Keep a copy of the feedback as a custom post type.
+ if ( $in_comment_disallowed_list ) {
+ $feedback_status = 'trash';
+ } elseif ( $is_spam ) {
+ $feedback_status = 'spam';
+ } else {
+ $feedback_status = 'publish';
+ }
foreach ( (array) $akismet_values as $av_key => $av_value ) {
$akismet_values[ $av_key ] = Grunion_Contact_Form_Plugin::strip_tags( $av_value );
@@ -2720,6 +3046,20 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
update_post_meta( $post_id, '_feedback_akismet_values', $this->addslashes_deep( $akismet_values ) );
}
+ /**
+ * Fires after the feedback post for the contact form submission has been inserted.
+ *
+ * @module contact-form
+ *
+ * @since 8.6.0
+ *
+ * @param integer $post_id The post id that contains the contact form data.
+ * @param array $this->fields An array containg the form's Grunion_Contact_Form_Field objects.
+ * @param boolean $is_spam Whether the form submission has been identified as spam.
+ * @param array $entry_values The feedback entry values.
+ */
+ do_action( 'grunion_after_feedback_post_inserted', $post_id, $this->fields, $is_spam, $entry_values );
+
$message = self::get_compiled_form( $post_id, $this );
array_push(
@@ -2909,7 +3249,7 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
* Add a display name part to an email address
*
* SpamAssassin doesn't like addresses in HTML messages that are missing display names (e.g., `foo@bar.org`
- * instead of `"Foo Bar" <foo@bar.org>`.
+ * instead of `Foo Bar <foo@bar.org>`.
*
* @param string $address
*
@@ -2919,7 +3259,14 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
// If it's just the address, without a display name
if ( is_email( $address ) ) {
$address_parts = explode( '@', $address );
- $address = sprintf( '"%s" <%s>', $address_parts[0], $address );
+
+ /*
+ * The email address format here is formatted in a format
+ * that is the most likely to be accepted by wp_mail(),
+ * without escaping.
+ * More info: https://github.com/Automattic/jetpack/pull/19727
+ */
+ $address = sprintf( '%s <%s>', $address_parts[0], $address );
}
return $address;
@@ -3005,7 +3352,8 @@ class Grunion_Contact_Form extends Crunion_Contact_Form_Shortcode {
return addslashes( $value );
}
-}
+
+} // end class Grunion_Contact_Form
/**
* Class for the contact-field shortcode.
@@ -3038,15 +3386,19 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
function __construct( $attributes, $content = null, $form = null ) {
$attributes = shortcode_atts(
array(
- 'label' => null,
- 'type' => 'text',
- 'required' => false,
- 'options' => array(),
- 'id' => null,
- 'default' => null,
- 'values' => null,
- 'placeholder' => null,
- 'class' => null,
+ 'label' => null,
+ 'type' => 'text',
+ 'required' => false,
+ 'options' => array(),
+ 'id' => null,
+ 'default' => null,
+ 'values' => null,
+ 'placeholder' => null,
+ 'class' => null,
+ 'width' => null,
+ 'consenttype' => null,
+ 'implicitconsentmessage' => null,
+ 'explicitconsentmessage' => null,
), $attributes, 'contact-field'
);
@@ -3155,7 +3507,7 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
switch ( $field_type ) {
case 'email':
// Make sure the email address is valid
- if ( ! is_email( $field_value ) ) {
+ if ( ! is_string( $field_value ) || ! is_email( $field_value ) ) {
/* translators: %s is the name of a form field */
$this->add_error( sprintf( __( '%s requires a valid email address', 'jetpack' ), $field_label ) );
}
@@ -3169,7 +3521,7 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
break;
default:
// Just check for presence of any text
- if ( ! strlen( trim( $field_value ) ) ) {
+ if ( ! is_string( $field_value ) || ! strlen( trim( $field_value ) ) ) {
/* translators: %s is the name of a form field */
$this->add_error( sprintf( __( '%s is required', 'jetpack' ), $field_label ) );
}
@@ -3206,8 +3558,13 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
$field_label = $this->get_attribute( 'label' );
$field_required = $this->get_attribute( 'required' );
$field_placeholder = $this->get_attribute( 'placeholder' );
+ $field_width = $this->get_attribute( 'width' );
$class = 'date' === $field_type ? 'jp-contact-form-date' : $this->get_attribute( 'class' );
+ if ( ! empty( $field_width ) ) {
+ $class .= ' grunion-field-width-' . $field_width;
+ }
+
/**
* Filters the "class" attribute of the contact form input
*
@@ -3279,7 +3636,7 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
return apply_filters( 'grunion_contact_form_field_html', $rendered_field, $field_label, ( in_the_loop() ? get_the_ID() : null ) );
}
- function render_label( $type = '', $id, $label, $required, $required_field_text ) {
+ public function render_label( $type, $id, $label, $required, $required_field_text ) {
$type_class = $type ? ' ' .$type : '';
return
@@ -3366,6 +3723,29 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
return $field;
}
+ /**
+ * Render the consent field.
+ *
+ * @param string $id field id.
+ * @param string $class html classes (can be set by the admin).
+ */
+ private function render_consent_field( $id, $class ) {
+ $consent_type = 'explicit' === $this->get_attribute( 'consenttype' ) ? 'explicit' : 'implicit';
+ $consent_message = 'explicit' === $consent_type ? $this->get_attribute( 'explicitconsentmessage' ) : $this->get_attribute( 'implicitconsentmessage' );
+
+ $field = "<label class='grunion-field-label consent consent-" . $consent_type . "'>";
+
+ if ( 'implicit' === $consent_type ) {
+ $field .= "\t\t<input aria-hidden='true' type='checkbox' checked name='" . esc_attr( $id ) . "' value='" . esc_attr__( 'Yes', 'jetpack' ) . "' style='display:none;' /> \n";
+ } else {
+ $field .= "\t\t<input type='checkbox' name='" . esc_attr( $id ) . "' value='" . esc_attr__( 'Yes', 'jetpack' ) . "' " . $class . "/> \n";
+ }
+ $field .= "\t\t" . esc_html( $consent_message );
+ $field .= "</label>\n";
+ $field .= "<div class='clear-form'></div>\n";
+ return $field;
+ }
+
function render_checkbox_multiple_field( $id, $label, $value, $class, $required, $required_field_text ) {
$field = $this->render_label( '', $id, $label, $required, $required_field_text );
foreach ( (array) $this->get_attribute( 'options' ) as $optionIndex => $option ) {
@@ -3486,6 +3866,9 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
case 'date':
$field .= $this->render_date_field( $id, $label, $value, $field_class, $required, $required_field_text, $field_placeholder );
break;
+ case 'consent':
+ $field .= $this->render_consent_field( $id, $field_class );
+ break;
default: // text field
$field .= $this->render_default_field( $id, $label, $value, $field_class, $required, $required_field_text, $field_placeholder, $type );
break;
@@ -3493,6 +3876,7 @@ class Grunion_Contact_Form_Field extends Crunion_Contact_Form_Shortcode {
$field .= "\t</div>\n";
return $field;
}
+
}
add_action( 'init', array( 'Grunion_Contact_Form_Plugin', 'init' ), 9 );
@@ -3588,7 +3972,7 @@ function jetpack_tracks_record_grunion_pre_message_sent( $post_id, $all_values,
$event_user = get_userdata( $event_user_id );
}
- require_lib( 'tracks/client' );
+ jetpack_require_lib( 'tracks/client' );
tracks_record_event( $event_user, $event_name, $event_props );
} else {
// If the form was sent by a logged out visitor, record event with Jetpack master user.
diff --git a/plugins/jetpack/modules/contact-form/grunion-form-view.php b/plugins/jetpack/modules/contact-form/grunion-form-view.php
index d5b32602..46bc9ae8 100644
--- a/plugins/jetpack/modules/contact-form/grunion-form-view.php
+++ b/plugins/jetpack/modules/contact-form/grunion-form-view.php
@@ -37,14 +37,14 @@ wp_localize_script(
'optionsLabel' => esc_attr( _x( 'Options', 'Label for the set of options to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
'optionsLabel' => esc_attr( _x( 'Option', 'Label for an option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
'firstOptionLabel' => esc_attr( _x( 'First option', 'Default label for the first option to be included in a user-created dropdown in contact form builder', 'jetpack' ) ),
- 'problemGeneratingForm' => esc_attr( _x( "Oops, there was a problem generating your form. You'll likely need to try again.", 'error message in contact form builder', 'jetpack' ) ),
+ 'problemGeneratingForm' => esc_attr( _x( "Oops, there was a problem generating your form. You'll likely need to try again.", 'error message in contact form builder', 'jetpack' ) ),
'moveInstructions' => esc_attr__( "Drag up or down\nto re-arrange", 'jetpack' ),
'moveLabel' => esc_attr( _x( 'move', 'Label to drag HTML form fields around to change their order in contact form builder', 'jetpack' ) ),
'editLabel' => esc_attr( _x( 'edit', 'Link to edit an HTML form field in contact form builder', 'jetpack' ) ),
'savedMessage' => esc_attr__( 'Saved successfully', 'jetpack' ),
'requiredLabel' => esc_attr( _x( '(required)', 'This HTML form field is marked as required by the user in contact form builder', 'jetpack' ) ),
- 'exitConfirmMessage' => esc_attr__( 'Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.', 'jetpack' ),
- 'maxNewFields' => intval( $max_new_fields ),
+ 'exitConfirmMessage' => esc_attr__( 'Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.', 'jetpack' ),
+ 'maxNewFields' => (int) $max_new_fields,
)
);
@@ -74,11 +74,11 @@ wp_localize_script(
/* Reset */
html { height: 100%; }
body, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, button, textarea, p, blockquote, th, td { margin: 0; padding: 0; }
- body { background: #F9F9F9; font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size:12px; color: #333; line-height:1.5em; height: 100%; width: 100%; padding-bottom: 20px !important; }
+ body { background: #f6f7f7; font-family:"Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; font-size:12px; color: #333; line-height:1.5em; height: 100%; width: 100%; padding-bottom: 20px !important; }
a { color: #21759B; text-decoration: none; }
a:hover { text-decoration: underline; text-shadow: none !important; }
h1 { font-size: 21px; color:#5A5A5A; font-family:Georgia,"Times New Roman",Times,serif; font-weight:normal; margin-bottom: 21px; }
- h3 { font-size: 13px; color: #666; margin-bottom: 18px; }
+ h3 { font-size: 13px; color: #646970; margin-bottom: 18px; }
input { width: 301px; }
input[type='text'] { padding: 3px 5px; margin-right: 4px; -moz-border-radius:3px; border-radius:3px; -webkit-border-radius:3px; }
input[type='text']:focus { border: 2px solid #80B8D9; outline: 0 !important; }
@@ -87,15 +87,15 @@ wp_localize_script(
img { border: none; }
label { color: #222; font-weight: bold; display: block; margin-bottom: 4px; }
label.radio { width: auto; margin: -2px 0 0 5px; }
- label span.label-required { color: #AAA; margin-left: 4px; font-weight: normal; }
+ label span.label-required { color: #a7aaad; margin-left: 4px; font-weight: normal; }
td { vertical-align: top; }
select { width: 300px; }
textarea { height: 100px; width: 311px; }
/* Core */
- #media-upload-header { border-bottom: 1px solid #DFDFDF; font-weight:bold; margin:0; padding:3px 5px 0 5px; position:relative; background: #FFF; }
+ #media-upload-header { border-bottom: 1px solid #dcdcde; font-weight:bold; margin:0; padding:3px 5px 0 5px; position:relative; background: #FFF; }
#sidemenu { bottom:-1px; font-size:12px; list-style:none outside none; padding-left:10px; position:relative; left:0; margin:0 5px; overflow:hidden; }
#sidemenu a { text-decoration:none; border-top: 1px solid #FFF; display:block; float:left; line-height:28px; padding:0 13px; outline: none; }
- #sidemenu a.current { background-color:#F9F9F9; border-color:#DFDFDF #DFDFDF #F9F9F9; color:#D54E21; -moz-border-radius:4px 4px 0 0; border-radius:4px 4px 0 0; -webkit-border-radius:4px 4px 0 0; border-style:solid; border-width:1px; font-weight:normal; }
+ #sidemenu a.current { background-color:#f6f7f7; border-color:#dcdcde #dcdcde #f6f7f7; color:#d63638; -moz-border-radius:4px 4px 0 0; border-radius:4px 4px 0 0; -webkit-border-radius:4px 4px 0 0; border-style:solid; border-width:1px; font-weight:normal; }
#sidemenu li { display:inline; margin-bottom:6px; line-height:200%; list-style:none outside none; margin:0; padding:0; text-align:center; white-space:nowrap; }
.button { background-color:#f2f2f2; border-color:#BBBBBB; min-width:80px; text-align:center; color:#464646; text-shadow:0 1px 0 #FFFFFF; border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 12px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
.button-primary { background-color:#21759B; font-weight: bold; border-color:#298CBA; text-align:center; color:#EAF2FA; text-shadow:0 -1px 0 rgba(0, 0, 0, 0.3); border-style:solid; border-width:1px; cursor:pointer; width: auto; font-size:11px !important; line-height:13px; padding:3px 11px; margin-top: 21px; text-decoration:none; -moz-border-radius:11px; border-radius:11px; -webkit-border-radius:11px }
@@ -120,7 +120,7 @@ wp_localize_script(
.fb-reorder { cursor: move; position: relative; }
.fb-reorder:hover div { display: block !important; width: 130px !important; position: absolute; top: 0; right: 0; z-index: 200; padding: 5px 10px; color: #555; font-size: 11px; background: #FFF; border: 1px solid #CCC; -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; }
.fb-right { position: absolute; right: 0; top: 0; width: 315px; margin: 57px 21px 0 0; }
- .fb-right .fb-new-fields { border: none; background: #F9F9F9; padding: 0; }
+ .fb-right .fb-new-fields { border: none; background: #f6f7f7; padding: 0; }
.fb-right input[type='text'] { width: 195px; margin-bottom: 14px; }
.fb-right label { color: #444; width: 100px; float: left; font-weight: normal; }
.fb-right select { width: 195px !important; margin-bottom: 14px; }
@@ -196,7 +196,7 @@ if ( is_rtl() ) {
</div>
<div id="fb-email-desc" class="fb-desc" style="display: none;">
<h3><?php esc_html_e( 'Do I need to fill this out?', 'jetpack' ); ?></h3>
- <p><?php esc_html_e( 'Nope. However, if you&#8217;d like to modify where your feedback is sent, or the subject line you can. If you don&#8217;t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.', 'jetpack' ); ?></p>
+ <p><?php esc_html_e( 'Nope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don&#8217;t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.', 'jetpack' ); ?></p>
<h3 style="margin-top: 21px;"><?php esc_html_e( 'Can I send a notification to more than one person?', 'jetpack' ); ?></h3>
<p><?php esc_html_e( 'Yep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.', 'jetpack' ); ?></p>
<div class="clear"></div>
diff --git a/plugins/jetpack/modules/contact-form/js/editor-view.js b/plugins/jetpack/modules/contact-form/js/editor-view.js
index b62d92f8..cac8fc08 100644
--- a/plugins/jetpack/modules/contact-form/js/editor-view.js
+++ b/plugins/jetpack/modules/contact-form/js/editor-view.js
@@ -1,5 +1,5 @@
/* global grunionEditorView, tinyMCE, QTags, wp */
-( function( $, wp, grunionEditorView ) {
+( function ( $, wp, grunionEditorView ) {
wp.mce = wp.mce || {};
if ( 'undefined' === typeof wp.mce.views ) {
return;
@@ -24,7 +24,7 @@
edit_template: wp.template( 'grunion-field-edit' ),
editor_inline: wp.template( 'grunion-editor-inline' ),
editor_option: wp.template( 'grunion-field-edit-option' ),
- getContent: function() {
+ getContent: function () {
var content = this.shortcode.content,
index = 0,
field,
@@ -59,11 +59,11 @@
return this.template( options );
},
- edit: function( data, update_callback ) {
+ edit: function ( data, update_callback ) {
var shortcode_data = wp.shortcode.next( this.shortcode_string, data ),
shortcode = shortcode_data.shortcode,
$tinyMCE_document = $( tinyMCE.activeEditor.getDoc() ),
- $view = $tinyMCE_document.find( '.wpview.wpview-wrap' ).filter( function() {
+ $view = $tinyMCE_document.find( '.wpview.wpview-wrap' ).filter( function () {
return $( this ).attr( 'data-mce-selected' );
} ),
$editframe = $( '<iframe scrolling="no" class="inline-edit-contact-form" />' ),
@@ -86,14 +86,14 @@
fields += this.edit_template( named );
}
- $editframe.on( 'checkheight', function() {
+ $editframe.on( 'checkheight', function () {
var innerDoc = this.contentDocument ? this.contentDocument : this.contentWindow.document;
this.style.height = '10px';
this.style.height = 5 + innerDoc.body.scrollHeight + 'px';
tinyMCE.activeEditor.execCommand( 'wpAutoResize' );
} );
- $editframe.on( 'load', function() {
+ $editframe.on( 'load', function () {
var stylesheet_url =
1 === window.isRtl
? grunionEditorView.inline_editing_style_rtl
@@ -103,18 +103,11 @@
'<link rel="stylesheet" href="' + grunionEditorView.dashicons_css_url + '" />'
);
- $stylesheet.on( 'load', function() {
- $editframe
- .contents()
- .find( 'body' )
- .css( 'visibility', 'visible' );
+ $stylesheet.on( 'load', function () {
+ $editframe.contents().find( 'body' ).css( 'visibility', 'visible' );
$editframe.trigger( 'checkheight' );
} );
- $editframe
- .contents()
- .find( 'head' )
- .append( $stylesheet )
- .append( $dashicons_css );
+ $editframe.contents().find( 'head' ).append( $stylesheet ).append( $dashicons_css );
$editframe
.contents()
@@ -128,17 +121,14 @@
)
.css( 'visibility', 'hidden' );
- $editframe
- .contents()
- .find( 'input:first' )
- .focus();
+ $editframe.contents().find( 'input:first' ).focus();
- setTimeout( function() {
+ setTimeout( function () {
$editframe.trigger( 'checkheight' );
}, 250 );
// Add a second timeout for super long forms racing, and to not slow it down for shorter forms unnecessarily.
- setTimeout( function() {
+ setTimeout( function () {
$editframe.trigger( 'checkheight' );
}, 500 );
@@ -149,56 +139,46 @@
// Now, add all the listeners!
- $editfields.on( 'change select', 'select[name=type]', function() {
+ $editfields.on( 'change select', 'select[name=type]', function () {
$( this ).closest( '.grunion-field-edit' )[ 0 ].className =
'card is-compact grunion-field-edit grunion-field-' + $( this ).val();
$editframe.trigger( 'checkheight' );
} );
- $editfields.on( 'click', '.delete-option', function( e ) {
+ $editfields.on( 'click', '.delete-option', function ( e ) {
e.preventDefault();
- $( this )
- .closest( 'li' )
- .remove();
+ $( this ).closest( 'li' ).remove();
$editframe.trigger( 'checkheight' );
} );
- $editfields.on( 'click', '.add-option', function( e ) {
+ $editfields.on( 'click', '.add-option', function ( e ) {
var $new_option = $( wp.mce.grunion_wp_view_renderer.editor_option() );
e.preventDefault();
- $( this )
- .closest( 'li' )
- .before( $new_option );
+ $( this ).closest( 'li' ).before( $new_option );
$editframe.trigger( 'checkheight' );
$new_option.find( 'input:first' ).focus();
} );
- $editfields.on( 'click', '.delete-field', function( e ) {
+ $editfields.on( 'click', '.delete-field', function ( e ) {
e.preventDefault();
- $( this )
- .closest( '.card' )
- .remove();
+ $( this ).closest( '.card' ).remove();
$editframe.trigger( 'checkheight' );
} );
- $buttons.find( 'input[name=submit]' ).on( 'click', function() {
+ $buttons.find( 'input[name=submit]' ).on( 'click', function () {
var new_data = shortcode;
new_data.type = 'closed';
new_data.attrs = {};
new_data.content = '';
- $editfields.children().each( function() {
+ $editfields.children().each( function () {
var field_shortcode = {
tag: 'contact-field',
type: 'single',
attrs: {
- label: $( this )
- .find( 'input[name=label]' )
- .val(),
- type: $( this )
- .find( 'select[name=type]' )
- .val(),
+ label: $( this ).find( 'input[name=label]' ).val(),
+ type: $( this ).find( 'select[name=type]' ).val(),
},
},
options = [];
@@ -209,7 +189,7 @@
$( this )
.find( 'input[name=option]' )
- .each( function() {
+ .each( function () {
if ( $( this ).val() ) {
options.push( $( this ).val() );
}
@@ -221,37 +201,21 @@
new_data.content += wp.shortcode.string( field_shortcode );
} );
- if (
- $editframe
- .contents()
- .find( 'input[name=to]' )
- .val()
- ) {
- new_data.attrs.to = $editframe
- .contents()
- .find( 'input[name=to]' )
- .val();
+ if ( $editframe.contents().find( 'input[name=to]' ).val() ) {
+ new_data.attrs.to = $editframe.contents().find( 'input[name=to]' ).val();
}
- if (
- $editframe
- .contents()
- .find( 'input[name=subject]' )
- .val()
- ) {
- new_data.attrs.subject = $editframe
- .contents()
- .find( 'input[name=subject]' )
- .val();
+ if ( $editframe.contents().find( 'input[name=subject]' ).val() ) {
+ new_data.attrs.subject = $editframe.contents().find( 'input[name=subject]' ).val();
}
update_callback( wp.shortcode.string( new_data ) );
} );
- $buttons.find( 'input[name=cancel]' ).on( 'click', function() {
+ $buttons.find( 'input[name=cancel]' ).on( 'click', function () {
update_callback( wp.shortcode.string( shortcode ) );
} );
- $buttons.find( 'input[name=add-field]' ).on( 'click', function() {
+ $buttons.find( 'input[name=add-field]' ).on( 'click', function () {
var $new_field = $( wp.mce.grunion_wp_view_renderer.edit_template( {} ) );
$editfields.append( $new_field );
$editfields.sortable( 'refresh' );
@@ -266,12 +230,12 @@
wp.mce.views.register( 'contact-form', wp.mce.grunion_wp_view_renderer );
// Add the 'text' editor button.
- QTags.addButton( 'grunion_shortcode', grunionEditorView.labels.quicktags_label, function() {
+ QTags.addButton( 'grunion_shortcode', grunionEditorView.labels.quicktags_label, function () {
QTags.insertContent( '[contact-form]' + grunionEditorView.default_form + '[/contact-form]' );
} );
var $wp_content_wrap = $( '#wp-content-wrap' );
- $( '#insert-jetpack-contact-form' ).on( 'click', function( e ) {
+ $( '#insert-jetpack-contact-form' ).on( 'click', function ( e ) {
e.preventDefault();
if ( $wp_content_wrap.hasClass( 'tmce-active' ) ) {
tinyMCE.execCommand( 'grunion_add_form' );
diff --git a/plugins/jetpack/modules/contact-form/js/grunion-admin.js b/plugins/jetpack/modules/contact-form/js/grunion-admin.js
index 100fb22b..571eed81 100644
--- a/plugins/jetpack/modules/contact-form/js/grunion-admin.js
+++ b/plugins/jetpack/modules/contact-form/js/grunion-admin.js
@@ -1,30 +1,124 @@
-/* global ajaxurl */
-jQuery( function( $ ) {
- $( document ).on( 'click', '#jetpack-check-feedback-spam:not(.button-disabled)', function( e ) {
+/* global ajaxurl jetpack_empty_spam_button_parameters */
+jQuery( function ( $ ) {
+ if ( typeof jetpack_empty_spam_button_parameters !== 'undefined' ) {
+ // Create the "Empty Spam" button and add it above and below the list of spam feedbacks.
+ var jetpack_empty_spam_feedbacks_button_container = $( '<div/>' ).addClass(
+ 'jetpack-empty-spam-container'
+ );
+
+ var jetpack_empty_spam_feedbacks_button = $( '<a />' )
+ .addClass( 'button-secondary' )
+ .addClass( 'jetpack-empty-spam' )
+ .attr( 'href', '#' )
+ .attr( 'data-progress-label', jetpack_empty_spam_button_parameters.progress_label )
+ .attr( 'data-success-url', jetpack_empty_spam_button_parameters.success_url )
+ .attr( 'data-failure-url', jetpack_empty_spam_button_parameters.failure_url )
+ .attr( 'data-spam-feedbacks-count', jetpack_empty_spam_button_parameters.spam_count )
+ .attr( 'data-nonce', jetpack_empty_spam_button_parameters.nonce )
+ .text( jetpack_empty_spam_button_parameters.label );
+ jetpack_empty_spam_feedbacks_button_container.append( jetpack_empty_spam_feedbacks_button );
+
+ var jetpack_empty_spam_feedbacks_spinner = $( '<span />' ).addClass(
+ 'jetpack-empty-spam-spinner'
+ );
+ jetpack_empty_spam_feedbacks_button_container.append( jetpack_empty_spam_feedbacks_spinner );
+
+ // Add the button both above and below the list of spam feedbacks.
+ $( '.tablenav.top .actions, .tablenav.bottom .actions' )
+ .not( '.bulkactions' )
+ .append( jetpack_empty_spam_feedbacks_button_container );
+ }
+
+ $( document ).on( 'click', '#jetpack-check-feedback-spam:not(.button-disabled)', function ( e ) {
e.preventDefault();
$( '#jetpack-check-feedback-spam:not(.button-disabled)' ).addClass( 'button-disabled' );
- $( '.jetpack-check-feedback-spam-spinner' )
- .addClass( 'spinner' )
- .show();
+ $( '.jetpack-check-feedback-spam-spinner' ).addClass( 'spinner' ).show();
grunion_check_for_spam( 0, 100 );
} );
function grunion_check_for_spam( offset, limit ) {
- $.post(
- ajaxurl,
- {
- action: 'grunion_recheck_queue',
- offset: offset,
- limit: limit,
- },
- function( result ) {
+ var nonceName = $( '#jetpack-check-feedback-spam' ).data( 'nonce-name' );
+ var nonce = $( '#' + nonceName ).attr( 'value' );
+ var failureUrl = $( '#jetpack-check-feedback-spam' ).data( 'failure-url' );
+
+ var requestOptions = {
+ action: 'grunion_recheck_queue',
+ offset: offset,
+ limit: limit,
+ };
+ requestOptions[ nonceName ] = nonce;
+
+ $.post( ajaxurl, requestOptions )
+ .fail( function ( result ) {
+ // An error is only returned in the case of a missing nonce or invalid permissions, so we don't need the actual error message.
+ window.location.href = failureUrl;
+ return;
+ } )
+ .done( function ( result ) {
if ( result.processed < limit ) {
window.location.reload();
} else {
grunion_check_for_spam( offset + limit, limit );
}
- }
+ } );
+ }
+
+ var initial_spam_count = 0;
+ var deleted_spam_count = 0;
+
+ $( document ).on( 'click', '.jetpack-empty-spam', function ( e ) {
+ e.preventDefault();
+
+ if ( $( this ).hasClass( 'button-disabled' ) ) {
+ // An Emptying process is already underway or the button is otherwise disabled.
+ return;
+ }
+
+ $( '.jetpack-empty-spam' ).addClass( 'button-disabled' ).addClass( 'emptying' );
+ $( '.jetpack-empty-spam-spinner' ).addClass( 'spinner' ).addClass( 'is-active' );
+
+ // Update the label on the "Empty Spam" button to use the active "Emptying Spam" language.
+ $( '.jetpack-empty-spam' ).text(
+ $( '.jetpack-empty-spam' ).data( 'progress-label' ).replace( '%1$s', '0' )
+ );
+
+ initial_spam_count = parseInt( $( this ).data( 'spam-feedbacks-count' ), 10 );
+
+ grunion_delete_spam();
+ } );
+
+ function grunion_delete_spam() {
+ var empty_spam_buttons = $( '.jetpack-empty-spam' );
+
+ var nonce = empty_spam_buttons.data( 'nonce' );
+
+ // We show the percentage complete down to one decimal point so even with 100k
+ // spam feedbacks, it will show some progress pretty quickly.
+ var percentage_complete = Math.round( ( deleted_spam_count / initial_spam_count ) * 1000 ) / 10;
+
+ // Update the progress counter on the "Check for Spam" button.
+ empty_spam_buttons.text(
+ empty_spam_buttons.data( 'progress-label' ).replace( '%1$s', percentage_complete )
);
+
+ $.post( ajaxurl, {
+ action: 'jetpack_delete_spam_feedbacks',
+ nonce: nonce,
+ } )
+ .fail( function ( result ) {
+ // An error is only returned in the case of a missing nonce or invalid permissions, so we don't need the actual error message.
+ window.location.href = empty_spam_buttons.data( 'failure-url' );
+ return;
+ } )
+ .done( function ( result ) {
+ deleted_spam_count += result.data.counts.deleted;
+
+ if ( result.data.counts.deleted < result.data.counts.limit ) {
+ window.location.href = empty_spam_buttons.data( 'success-url' );
+ } else {
+ grunion_delete_spam();
+ }
+ } );
}
} );
diff --git a/plugins/jetpack/modules/contact-form/js/grunion-frontend.js b/plugins/jetpack/modules/contact-form/js/grunion-frontend.js
index 1c1819a5..dbd5664c 100644
--- a/plugins/jetpack/modules/contact-form/js/grunion-frontend.js
+++ b/plugins/jetpack/modules/contact-form/js/grunion-frontend.js
@@ -1,3 +1,3 @@
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
$( '.contact-form input.jp-contact-form-date' ).datepicker();
} );
diff --git a/plugins/jetpack/modules/contact-form/js/grunion.js b/plugins/jetpack/modules/contact-form/js/grunion.js
index 65c3ab01..5790675b 100644
--- a/plugins/jetpack/modules/contact-form/js/grunion.js
+++ b/plugins/jetpack/modules/contact-form/js/grunion.js
@@ -32,16 +32,16 @@ GrunionFB_i18n = jQuery.extend(
GrunionFB_i18n.moveInstructions = GrunionFB_i18n.moveInstructions.replace( '\n', '<br />' );
FB.span = jQuery( '<span>' );
-FB.esc_html = function( string ) {
+FB.esc_html = function ( string ) {
return FB.span.text( string ).html();
};
-FB.esc_attr = function( string ) {
+FB.esc_attr = function ( string ) {
string = FB.esc_html( string );
return string.replace( '"', '&quot;' ).replace( "'", '&#039;' );
};
-FB.ContactForm = ( function() {
+FB.ContactForm = ( function () {
var fbForm = {
// Main object that generated shortcode via AJAX call
action: 'grunion_shortcode',
@@ -134,10 +134,8 @@ FB.ContactForm = ( function() {
jQuery( '#fb-new-label' ).val( GrunionFB_i18n.newLabel );
jQuery( '#fb-new-type' ).val( 'text' );
jQuery( '#fb-field-id' ).val( grunionNewCount );
- setTimeout( function() {
- jQuery( '#fb-new-label' )
- .focus()
- .select();
+ setTimeout( function () {
+ jQuery( '#fb-new-label' ).focus().select();
}, 100 );
} else {
jQuery( '#fb-new-field' ).hide();
@@ -258,7 +256,7 @@ FB.ContactForm = ( function() {
jQuery( '#fb-field-subject' ).val( fbForm.subject );
}
// Loop over and add fields
- jQuery.each( fbForm.fields, function( index, value ) {
+ jQuery.each( fbForm.fields, function ( index, value ) {
jQuery( '#fb-extra-fields' ).before(
'<div class="fb-new-fields ui-state-default" fieldid="' +
index +
@@ -274,7 +272,7 @@ FB.ContactForm = ( function() {
'select' === value.type ||
'checkbox-multiple' === value.type
) {
- jQuery.each( value.options, function( i, value ) {
+ jQuery.each( value.options, function ( i, value ) {
optionsCache[ index ].options[ i ] = value;
} );
}
@@ -364,10 +362,8 @@ FB.ContactForm = ( function() {
function editField( that ) {
try {
scroll( 0, 0 );
- setTimeout( function() {
- jQuery( '#fb-new-label' )
- .focus()
- .select();
+ setTimeout( function () {
+ jQuery( '#fb-new-label' ).focus().select();
}, 100 );
var thisId = that.parent().attr( 'fieldid' );
loadFieldEditor( thisId );
@@ -380,7 +376,7 @@ FB.ContactForm = ( function() {
function grabShortcode() {
try {
// Takes fbForm object and returns shortcode syntax
- jQuery.post( ajaxurl, fbForm, function( response ) {
+ jQuery.post( ajaxurl, fbForm, function ( response ) {
shortcode = response;
} );
} catch ( e ) {
@@ -518,7 +514,7 @@ FB.ContactForm = ( function() {
if ( ! data ) {
fbForm.fields = defaultFields;
} else {
- jQuery.each( data.fields, function( index, value ) {
+ jQuery.each( data.fields, function ( index, value ) {
if ( 1 === parseInt( value.required, 10 ) ) {
value.required = 'true';
}
@@ -577,12 +573,12 @@ FB.ContactForm = ( function() {
function sendShortcodeToEditor() {
try {
// Serialize fields
- jQuery( 'div#sortable div.fb-new-fields' ).each( function( index ) {
+ jQuery( 'div#sortable div.fb-new-fields' ).each( function ( index ) {
var thisId = jQuery( this ).attr( 'fieldid' );
fbForm.fields[ thisId ].order = index;
} );
// Export to WYSIWYG editor
- jQuery.post( ajaxurl, fbForm, function( response ) {
+ jQuery.post( ajaxurl, fbForm, function ( response ) {
var isVisual = jQuery( '#edButtonPreview', window.parent.document ).hasClass( 'active' );
/* WP 3.3+ */
if ( ! isVisual ) {
@@ -654,7 +650,7 @@ FB.ContactForm = ( function() {
var newMessage = ! message ? GrunionFB_i18n.savedMessage : message;
jQuery( '#fb-success' ).text( newMessage );
jQuery( '#fb-success' ).slideDown( 'fast' );
- setTimeout( function() {
+ setTimeout( function () {
jQuery( '#fb-success' ).slideUp( 'fast' );
}, 2500 );
} catch ( e ) {
@@ -679,9 +675,7 @@ FB.ContactForm = ( function() {
jQuery( '#tab-settings a' ).addClass( 'current' );
jQuery( '#fb-preview-form, #fb-desc, #fb-add-field' ).hide();
jQuery( '#fb-email-settings, #fb-email-desc' ).show();
- jQuery( '#fb-field-my-email' )
- .focus()
- .select();
+ jQuery( '#fb-field-my-email' ).focus().select();
}
} catch ( e ) {
if ( debug ) {
@@ -906,10 +900,8 @@ FB.ContactForm = ( function() {
fbForm.fields[ thisId ].options[ optionsCount ] = GrunionFB_i18n.firstOptionLabel;
}
jQuery( '#fb-options' ).show();
- setTimeout( function() {
- jQuery( '#fb-option0' )
- .focus()
- .select();
+ setTimeout( function () {
+ jQuery( '#fb-option0' ).focus().select();
}, 100 );
break;
case 'email':
@@ -962,10 +954,8 @@ FB.ContactForm = ( function() {
fbForm.fields[ thisId ].options[ optionsCount ] = GrunionFB_i18n.firstOptionLabel;
}
jQuery( '#fb-options' ).show();
- setTimeout( function() {
- jQuery( '#fb-option0' )
- .focus()
- .select();
+ setTimeout( function () {
+ jQuery( '#fb-option0' ).focus().select();
}, 100 );
break;
case 'select':
@@ -989,10 +979,8 @@ FB.ContactForm = ( function() {
fbForm.fields[ thisId ].options[ optionsCount ] = GrunionFB_i18n.firstOptionLabel;
}
jQuery( '#fb-options' ).show();
- setTimeout( function() {
- jQuery( '#fb-option0' )
- .focus()
- .select();
+ setTimeout( function () {
+ jQuery( '#fb-option0' ).focus().select();
}, 100 );
break;
case 'text':
@@ -1023,7 +1011,7 @@ FB.ContactForm = ( function() {
}
}
return {
- resizePop: function() {
+ resizePop: function () {
try {
//Thickbox won't resize for some reason, we are manually doing it here
var totalWidth = jQuery( 'body', window.parent.document ).width();
@@ -1050,7 +1038,7 @@ FB.ContactForm = ( function() {
}
}
},
- init: function() {
+ init: function () {
// Scroll to top of page
window.parent.scroll( 0, 0 );
//Check for existing form data
@@ -1073,88 +1061,90 @@ FB.ContactForm = ( function() {
var $doc = jQuery( document );
- jQuery.post( ajaxurl, data, function( response ) {
+ jQuery.post( ajaxurl, data, function ( response ) {
// Setup fbForm
parseShortcode( jQuery.parseJSON( response ) );
// Now build out the preview form
buildPreview();
} );
// actions
- jQuery( '.fb-add-field' ).click( function() {
+ jQuery( '.fb-add-field' ).click( function () {
addField();
hideDesc();
return false;
} );
- jQuery( '#fb-new-label' ).keyup( function() {
+ jQuery( '#fb-new-label' ).keyup( function () {
updateLabel();
} );
- jQuery( '#fb-new-type' ).change( function() {
+ jQuery( '#fb-new-type' ).change( function () {
updateType();
} );
- jQuery( '#fb-new-required' ).click( function() {
+ jQuery( '#fb-new-required' ).click( function () {
updateRequired();
} );
- $doc.on( 'click', '.fb-remove', function() {
+ $doc.on( 'click', '.fb-remove', function () {
showDesc();
deleteField( jQuery( this ) );
grabShortcode();
} );
- jQuery( '#fb-preview' ).submit( function() {
+ jQuery( '#fb-preview' ).submit( function () {
sendShortcodeToEditor();
return false;
} );
- jQuery( '#TB_overlay, #TB_closeWindowButton', window.parent.document ).mousedown( function() {
- if ( confirm( GrunionFB_i18n.exitConfirmMessage ) ) {
- hidePopup();
+ jQuery( '#TB_overlay, #TB_closeWindowButton', window.parent.document ).mousedown(
+ function () {
+ if ( confirm( GrunionFB_i18n.exitConfirmMessage ) ) {
+ hidePopup();
+ }
}
- } );
- $doc.on( 'click', '#fb-another-option', function() {
+ );
+ $doc.on( 'click', '#fb-another-option', function () {
addOption();
} );
- $doc.on( 'keyup', '.fb-options', function() {
+ $doc.on( 'keyup', '.fb-options', function () {
updateOption( jQuery( this ) );
} );
- $doc.on( 'click', '.fb-remove-option', function() {
+ $doc.on( 'click', '.fb-remove-option', function () {
removeOption( jQuery( this ).attr( 'optionid' ) );
} );
- jQuery( '#tab-preview a' ).click( function() {
+ jQuery( '#tab-preview a' ).click( function () {
switchTabs( 'preview' );
return false;
} );
- jQuery( '#fb-prev-form' ).click( function() {
+ jQuery( '#fb-prev-form' ).click( function () {
switchTabs( 'preview' );
return false;
} );
- jQuery( '#tab-settings a' ).click( function() {
+ jQuery( '#tab-settings a' ).click( function () {
switchTabs();
return false;
} );
- jQuery( '#fb-field-my-email' ).blur( function() {
+ jQuery( '#fb-field-my-email' ).blur( function () {
updateMyEmail();
} );
- jQuery( '#fb-field-subject' ).blur( function() {
+ jQuery( '#fb-field-subject' ).blur( function () {
updateSubject();
} );
- $doc.on( 'mouseenter', '.fb-form-case .fb-new-fields', function() {
+ $doc.on( 'mouseenter', '.fb-form-case .fb-new-fields', function () {
hideShowEditLink( 'show', jQuery( this ) );
} );
- $doc.on( 'mouseleave', '.fb-form-case .fb-new-fields', function() {
+ $doc.on( 'mouseleave', '.fb-form-case .fb-new-fields', function () {
hideShowEditLink( 'hide' );
return false;
} );
- $doc.on( 'click', '.fb-edit-field', function() {
+ $doc.on( 'click', '.fb-edit-field', function () {
editField( jQuery( this ) );
return false;
} );
- $doc.on( 'click', '.fb-edit-field .fb-reorder', function() {
+ $doc.on( 'click', '.fb-edit-field .fb-reorder', function () {
return false;
} );
- $doc.on( 'click', '#fb-save-field', function() {
+ $doc.on( 'click', '#fb-save-field', function () {
showDesc();
showAndHideMessage();
return false;
} );
- jQuery( '#fb-feedback' ).click( function() {
+ jQuery( '#fb-feedback' ).click( function () {
var thisHref = jQuery( this ).attr( 'href' );
window.parent.location = thisHref;
return false;
@@ -1163,7 +1153,7 @@ FB.ContactForm = ( function() {
axis: 'y',
handle: '.fb-reorder',
revert: true,
- start: function() {
+ start: function () {
jQuery( '.fb-edit-field' ).hide();
},
} );
diff --git a/plugins/jetpack/modules/contact-form/js/tinymce-plugin-form-button.js b/plugins/jetpack/modules/contact-form/js/tinymce-plugin-form-button.js
index 8104ea32..01fbe3bf 100644
--- a/plugins/jetpack/modules/contact-form/js/tinymce-plugin-form-button.js
+++ b/plugins/jetpack/modules/contact-form/js/tinymce-plugin-form-button.js
@@ -1,13 +1,13 @@
/* global grunionEditorView, tinymce */
-( function() {
+( function () {
tinymce.create( 'tinymce.plugins.grunion_form', {
- init: function( editor ) {
+ init: function ( editor ) {
editor.addButton( 'grunion', {
title: grunionEditorView.labels.tinymce_label,
cmd: 'grunion_add_form',
icon: 'grunion',
} );
- editor.addCommand( 'grunion_add_form', function() {
+ editor.addCommand( 'grunion_add_form', function () {
if ( grunionEditorView.default_form ) {
editor.execCommand(
'mceInsertContent',
@@ -20,11 +20,11 @@
} );
},
- createControl: function() {
+ createControl: function () {
return null;
},
- getInfo: function() {
+ getInfo: function () {
return {
longname: 'Grunion Contact Form',
author: 'Automattic',
diff --git a/plugins/jetpack/modules/copy-post.php b/plugins/jetpack/modules/copy-post.php
index f57458e1..3aea777d 100644
--- a/plugins/jetpack/modules/copy-post.php
+++ b/plugins/jetpack/modules/copy-post.php
@@ -70,7 +70,7 @@ class Jetpack_Copy_Post {
add_filter( 'default_excerpt', array( $this, 'filter_excerpt' ), 10, 2 );
// Required to avoid the block editor from adding default blocks according to post format.
- add_filter( 'block_editor_settings', array( $this, 'remove_post_format_template' ) );
+ add_filter( 'block_editor_settings_all', array( $this, 'remove_post_format_template' ) );
/**
* Fires after all updates have been performed, and default content filters have been added.
@@ -112,7 +112,7 @@ class Jetpack_Copy_Post {
'post_excerpt' => $source_post->post_excerpt,
'comment_status' => $source_post->comment_status,
'ping_status' => $source_post->ping_status,
- 'post_category' => $source_post->post_category,
+ 'post_category' => wp_get_post_categories( $source_post->ID ),
'post_password' => $source_post->post_password,
'tags_input' => $source_post->tags_input,
);
diff --git a/plugins/jetpack/modules/custom-content-types.php b/plugins/jetpack/modules/custom-content-types.php
index e213e258..eb53741d 100644
--- a/plugins/jetpack/modules/custom-content-types.php
+++ b/plugins/jetpack/modules/custom-content-types.php
@@ -12,6 +12,8 @@
* Additional Search Queries: cpt, custom post types, portfolio, portfolios, testimonial, testimonials
*/
+use Automattic\Jetpack\Redirect;
+
function jetpack_load_custom_post_types() {
include dirname( __FILE__ ) . "/custom-post-types/portfolios.php";
}
@@ -39,7 +41,7 @@ function jetpack_cpt_section_callback() {
?>
<p>
<?php esc_html_e( 'Use these settings to display different types of content on your site.', 'jetpack' ); ?>
- <a target="_blank" href="https://jetpack.com/support/custom-content-types/"><?php esc_html_e( 'Learn More', 'jetpack' ); ?></a>
+ <a target="_blank" rel="noopener noreferrer" href="<?php echo esc_url( Redirect::get_url( 'jetpack-support-custom-content-types' ) ); ?>"><?php esc_html_e( 'Learn More', 'jetpack' ); ?></a>
</p>
<?php
}
diff --git a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy.php b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy.php
index 8d977516..106a770b 100644
--- a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy.php
+++ b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy.php
@@ -280,6 +280,8 @@ class csstidy {
$this->settings['timestamp'] = false;
$this->settings['template'] = ''; // say that propertie exist
$this->set_cfg('template','default'); // call load_template
+ /* Tells csstidy_optimise to keep leading zeros on decimal numbers, e.g., 0.7 */
+ $this->settings['preserve_leading_zeros'] = false;
$this->optimise = new csstidy_optimise($this);
$this->tokens_list = & $GLOBALS['csstidy']['tokens'];
@@ -386,7 +388,7 @@ class csstidy {
if ($line === -1) {
$line = $this->line;
}
- $line = intval($line);
+ $line = (int) $line;
$add = array('m' => $message, 't' => $type);
if (!isset($this->log[$line]) || !in_array($add, $this->log[$line])) {
$this->log[$line][] = $add;
diff --git a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_optimise.php b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_optimise.php
index 2d7996f0..5f4a3843 100644
--- a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_optimise.php
+++ b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_optimise.php
@@ -399,12 +399,15 @@ class csstidy_optimise {
$units = & $GLOBALS['csstidy']['units'];
$return = array(0, '');
- $return[0] = floatval($string);
+ $return[0] = (float) $string;
if (abs($return[0]) > 0 && abs($return[0]) < 1) {
- if ($return[0] < 0) {
- $return[0] = '-' . ltrim(substr($return[0], 1), '0');
- } else {
- $return[0] = ltrim($return[0], '0');
+ // Removes the initial `0` from a decimal number, e.g., `0.7 => .7` or `-0.666 => -.666`.
+ if ( ! $this->parser->get_cfg( 'preserve_leading_zeros' ) ) {
+ if ( $return[0] < 0 ) {
+ $return[0] = '-' . ltrim( substr( $return[0], 1 ), '0' );
+ } else {
+ $return[0] = ltrim( $return[0], '0' );
+ }
}
}
diff --git a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_print.php b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_print.php
index fc8cf628..80b6c990 100644
--- a/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_print.php
+++ b/plugins/jetpack/modules/custom-css/csstidy/class.csstidy_print.php
@@ -308,7 +308,7 @@ class csstidy_print {
foreach ($this->css as $medium => $val) {
if ($this->parser->get_cfg('sort_selectors'))
ksort($val);
- if (intval($medium) < DEFAULT_AT) {
+ if ( (int) $medium < DEFAULT_AT ) {
$this->parser->_add_token(AT_START, $medium, true);
}
elseif ($default_media) {
@@ -328,7 +328,7 @@ class csstidy_print {
$this->parser->_add_token(SEL_END, $selector, true);
}
- if (intval($medium) < DEFAULT_AT) {
+ if ( (int) $medium < DEFAULT_AT ) {
$this->parser->_add_token(AT_END, $medium, true);
}
elseif ($default_media) {
diff --git a/plugins/jetpack/modules/custom-css/csstidy/data.inc.php b/plugins/jetpack/modules/custom-css/csstidy/data.inc.php
index 0cf8f9a3..882749ba 100644
--- a/plugins/jetpack/modules/custom-css/csstidy/data.inc.php
+++ b/plugins/jetpack/modules/custom-css/csstidy/data.inc.php
@@ -369,6 +369,7 @@ $GLOBALS['csstidy']['all_properties']['break-inside'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['caption-side'] = 'CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['clear'] = 'CSS1.0,CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['clip'] = 'CSS2.0,CSS2.1,CSS3.0';
+$GLOBALS['csstidy']['all_properties']['clip-path'] = 'CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['color'] = 'CSS1.0,CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['color-profile'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['column-count'] = 'CSS3.0';
@@ -484,6 +485,14 @@ $GLOBALS['csstidy']['all_properties']['marquee-loop'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['marquee-play-count'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['marquee-speed'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['marquee-style'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-clip'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-composite'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-image'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-mode'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-origin'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-position'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-repeat'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['mask-size'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['max-height'] = 'CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['max-width'] = 'CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['min-height'] = 'CSS2.0,CSS2.1,CSS3.0';
@@ -494,6 +503,8 @@ $GLOBALS['csstidy']['all_properties']['nav-index'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['nav-left'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['nav-right'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['nav-up'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['object-fit'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['object-position'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['opacity'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['order'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['orphans'] = 'CSS2.0,CSS2.1,CSS3.0';
@@ -543,6 +554,31 @@ $GLOBALS['csstidy']['all_properties']['ruby-align'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['ruby-overhang'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['ruby-position'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['ruby-span'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-behavior'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-block'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-block-end'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-block-start'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-bottom'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-inline'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-inline-end'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-inline-start'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-left'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-right'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-margin-top'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-block'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-block-end'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-block-start'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-bottom'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-inline'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-inline-end'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-inline-start'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-left'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-right'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-padding-top'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-snap-align'] = 'CSS3.0';
+$GLOBALS['csstidy']['all_properties']['scroll-snap-stop'] = 'CSS3.0';
$GLOBALS['csstidy']['all_properties']['size'] = 'CSS2.0,CSS3.0';
$GLOBALS['csstidy']['all_properties']['speak'] = 'CSS2.0,CSS2.1,CSS3.0';
$GLOBALS['csstidy']['all_properties']['speak-header'] = 'CSS2.0,CSS2.1,CSS3.0';
diff --git a/plugins/jetpack/modules/custom-css/custom-css-4.7.php b/plugins/jetpack/modules/custom-css/custom-css-4.7.php
index 4a706f6c..cdce3444 100644
--- a/plugins/jetpack/modules/custom-css/custom-css-4.7.php
+++ b/plugins/jetpack/modules/custom-css/custom-css-4.7.php
@@ -7,7 +7,7 @@ use Automattic\Jetpack\Assets;
*
* @since 4.4.2
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -135,10 +135,10 @@ class Jetpack_Custom_CSS_Enhancements {
*/
public static function admin_menu() {
// Add in our legacy page to support old bookmarks and such.
- add_submenu_page( null, __( 'CSS', 'jetpack' ), __( 'Edit CSS', 'jetpack' ), 'edit_theme_options', 'editcss', array( __CLASS__, 'admin_page' ) );
+ add_submenu_page( null, __( 'CSS', 'jetpack' ), __( 'Additional CSS', 'jetpack' ), 'edit_theme_options', 'editcss', array( __CLASS__, 'admin_page' ) );
// Add in our new page slug that will redirect to the customizer.
- $hook = add_theme_page( __( 'CSS', 'jetpack' ), __( 'Edit CSS', 'jetpack' ), 'edit_theme_options', 'editcss-customizer-redirect', array( __CLASS__, 'admin_page' ) );
+ $hook = add_theme_page( __( 'CSS', 'jetpack' ), __( 'Additional CSS', 'jetpack' ), 'edit_theme_options', 'editcss-customizer-redirect', array( __CLASS__, 'admin_page' ) );
add_action( "load-{$hook}", array( __CLASS__, 'customizer_redirect' ) );
}
@@ -199,17 +199,29 @@ class Jetpack_Custom_CSS_Enhancements {
*/
public static function wp_custom_css_cb() {
$styles = wp_get_custom_css();
- if ( strlen( $styles ) > 2000 && ! is_customize_preview() ) :
+ if ( ! $styles ) {
+ return;
+ }
+
+ $should_embed = strlen( $styles ) < 2000;
+ /** This filter is documented in projects/plugins/jetpack/modules/custom-css/custom-css.php */
+ $should_embed = apply_filters( 'safecss_embed_style', $should_embed, $styles );
+
+ if ( $should_embed || is_customize_preview() ) {
+ printf(
+ '<style type="text/css" id="wp-custom-css">%1$s</style>',
+ wp_strip_all_tags( $styles ) // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ );
+ } else {
// Add a cache buster to the url.
$url = home_url( '/' );
$url = add_query_arg( 'custom-css', substr( md5( $styles ), -10 ), $url );
- ?>
- <link rel="stylesheet" type="text/css" id="wp-custom-css" href="<?php echo esc_url( $url ); ?>" />
- <?php elseif ( $styles || is_customize_preview() ) : ?>
- <style type="text/css" id="wp-custom-css">
- <?php echo strip_tags( $styles ); // Note that esc_html() cannot be used because `div &gt; span` is not interpreted properly. ?>
- </style>
- <?php endif;
+
+ printf(
+ '<link rel="stylesheet" type="text/css" id="wp-custom-css" href="%1$s" />', // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedStylesheet
+ esc_url( $url )
+ );
+ }
}
/**
@@ -365,9 +377,9 @@ class Jetpack_Custom_CSS_Enhancements {
$content_help = __( 'Set a different content width for full size images.', 'jetpack' );
if ( ! empty( $GLOBALS['content_width'] ) ) {
$content_help .= sprintf(
- _n( ' The default content width for the <strong>%1$s</strong> theme is %2$d pixel.', ' The default content width for the <strong>%1$s</strong> theme is %2$d pixels.', intval( $GLOBALS['content_width'] ), 'jetpack' ),
+ _n( ' The default content width for the <strong>%1$s</strong> theme is %2$d pixel.', ' The default content width for the <strong>%1$s</strong> theme is %2$d pixels.', (int) $GLOBALS['content_width'], 'jetpack' ),
wp_get_theme()->Name,
- intval( $GLOBALS['content_width'] )
+ (int) $GLOBALS['content_width']
);
}
@@ -1017,7 +1029,7 @@ class Jetpack_Custom_CSS_Enhancements {
* @return int Integer.
*/
public static function intval_base10( $value ) {
- return intval( $value, 10 );
+ return (int) $value;
}
/**
diff --git a/plugins/jetpack/modules/custom-css/custom-css.php b/plugins/jetpack/modules/custom-css/custom-css.php
index 068b1f0b..179fef4d 100644
--- a/plugins/jetpack/modules/custom-css/custom-css.php
+++ b/plugins/jetpack/modules/custom-css/custom-css.php
@@ -1,6 +1,8 @@
<?php
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
class Jetpack_Custom_CSS {
static function init() {
@@ -23,7 +25,7 @@ class Jetpack_Custom_CSS {
define(
'SAFECSS_USE_ACE',
! jetpack_is_mobile() &&
- ! Jetpack_User_Agent_Info::is_ipad() &&
+ ! User_Agent_Info::is_ipad() &&
/**
* Should the Custom CSS module use ACE to process CSS.
* @see https://ace.c9.io/
@@ -128,7 +130,7 @@ class Jetpack_Custom_CSS {
// Prevent content filters running on CSS when restoring revisions
if ( isset( $_REQUEST[ 'action' ] ) && 'restore' === $_REQUEST[ 'action' ] && false !== strstr( $_SERVER[ 'REQUEST_URI' ], 'revision.php' ) ) {
- $parent_post = get_post( wp_get_post_parent_id( intval( $_REQUEST[ 'revision' ] ) ) );
+ $parent_post = get_post( wp_get_post_parent_id( (int) $_REQUEST['revision'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated
if ( $parent_post && ! is_wp_error( $parent_post ) && 'safecss' === $parent_post->post_type ) {
// Remove wp_filter_post_kses, this causes CSS escaping issues
remove_filter( 'content_save_pre', 'wp_filter_post_kses' );
@@ -165,10 +167,18 @@ class Jetpack_Custom_CSS {
$args = wp_parse_args( $args, $defaults );
- if ( $args['content_width'] && intval( $args['content_width']) > 0 && ( ! isset( $GLOBALS['content_width'] ) || $args['content_width'] != $GLOBALS['content_width'] ) )
- $args['content_width'] = intval( $args['content_width'] );
- else
+ if (
+ $args['content_width']
+ && (int) $args['content_width'] > 0
+ && (
+ ! isset( $GLOBALS['content_width'] )
+ || $args['content_width'] !== $GLOBALS['content_width']
+ )
+ ) {
+ $args['content_width'] = (int) $args['content_width'];
+ } else {
$args['content_width'] = false;
+ }
// Remove wp_filter_post_kses, this causes CSS escaping issues
remove_filter( 'content_save_pre', 'wp_filter_post_kses' );
@@ -279,7 +289,7 @@ class Jetpack_Custom_CSS {
$safecss_revision_id = Jetpack_Custom_CSS::save_revision( $css, true, $args['preprocessor'] );
// Cache Buster
- update_option( 'safecss_preview_rev', intval( get_option( 'safecss_preview_rev' ) ) + 1);
+ update_option( 'safecss_preview_rev', (int) get_option( 'safecss_preview_rev' ) + 1 );
update_metadata( 'post', $safecss_revision_id, 'custom_css_add', $add_to_existing );
update_metadata( 'post', $safecss_revision_id, 'content_width', $args['content_width'] );
@@ -307,7 +317,7 @@ class Jetpack_Custom_CSS {
$safecss_post_revision = Jetpack_Custom_CSS::get_current_revision();
- update_option( 'safecss_rev', intval( get_option( 'safecss_rev' ) ) + 1 );
+ update_option( 'safecss_rev', (int) get_option( 'safecss_rev' ) + 1 );
update_post_meta( $safecss_post_id, 'custom_css_add', $add_to_existing );
update_post_meta( $safecss_post_id, 'content_width', $args['content_width'] );
@@ -619,29 +629,6 @@ class Jetpack_Custom_CSS {
$css = str_replace( array( '\\\00BB \\\0020', '\0BB \020', '0BB 020' ), '\00BB \0020', $css );
- if ( empty( $css ) ) {
- $css = "/*\n"
- . wordwrap(
- /**
- * Filter the default message displayed in the Custom CSS editor.
- *
- * @module custom-css
- *
- * @since 1.7.0
- *
- * @param string $str Default Custom CSS editor content.
- */
- apply_filters(
- 'safecss_default_css',
- __(
- "Welcome to Custom CSS!\n\nTo learn how this works, see https://wp.me/PEmnE-Bt",
- 'jetpack'
- )
- )
- )
- . "\n*/";
- }
-
/**
* Filter the Custom CSS returned from the editor.
*
@@ -891,8 +878,8 @@ class Jetpack_Custom_CSS {
static function menu() {
$parent = 'themes.php';
- $title = __( 'Edit CSS', 'jetpack' );
- $hook = add_theme_page( $title, $title, 'edit_theme_options', 'editcss', array( 'Jetpack_Custom_CSS', 'admin' ) );
+ $title = __( 'Additional CSS', 'jetpack' );
+ $hook = add_theme_page( $title, $title, 'edit_theme_options', 'editcss', array( 'Jetpack_Custom_CSS', 'admin' ) );
add_action( "load-revision.php", array( 'Jetpack_Custom_CSS', 'prettify_post_revisions' ) );
add_action( "load-$hook", array( 'Jetpack_Custom_CSS', 'update_title' ) );
@@ -1066,7 +1053,9 @@ class Jetpack_Custom_CSS {
*
* @param string $url Custom CSS limited width's support doc URL.
*/
- apply_filters( 'safecss_limit_width_link', 'https://jetpack.com/support/custom-css/#limited-width' )
+ esc_url(
+ apply_filters( 'safecss_limit_width_link', Redirect::get_url( 'jetpack-support-custom-css', array( 'anchor' => 'limited-width' ) ) )
+ )
);
?>
@@ -1080,7 +1069,23 @@ class Jetpack_Custom_CSS {
$current_theme = wp_get_theme()->Name;
?>
- <p><?php printf( _n( 'The default content width for the %s theme is %d pixel.', 'The default content width for the %s theme is %d pixels.', intval( $GLOBALS['content_width'] ), 'jetpack' ), $current_theme, intval( $GLOBALS['content_width'] ) ); ?></p>
+ <p>
+ <?php
+ echo esc_html(
+ sprintf(
+ /* translators: %1$s is the theme name, %2$d is an amount of pixels. */
+ _n(
+ 'The default content width for the %1$s theme is %2$d pixel.',
+ 'The default content width for the %1$s theme is %2$d pixels.',
+ (int) $GLOBALS['content_width'],
+ 'jetpack'
+ ),
+ $current_theme,
+ (int) $GLOBALS['content_width']
+ )
+ );
+ ?>
+ </p>
<?php
}
@@ -1090,7 +1095,7 @@ class Jetpack_Custom_CSS {
</div>
<script type="text/javascript">
jQuery( function ( $ ) {
- var defaultContentWidth = <?php echo isset( $GLOBALS['content_width'] ) ? json_encode( intval( $GLOBALS['content_width'] ) ) : 0; ?>;
+ var defaultContentWidth = <?php echo isset( $GLOBALS['content_width'] ) ? json_encode( (int) $GLOBALS['content_width'] ) : 0; ?>;
$( '.edit-content-width' ).bind( 'click', function ( e ) {
e.preventDefault();
@@ -1328,7 +1333,7 @@ class Jetpack_Custom_CSS {
$safecss_post_id = Jetpack_Custom_CSS::save_revision( '' );
$safecss_revision = Jetpack_Custom_CSS::get_current_revision();
- update_option( 'safecss_rev', intval( get_option( 'safecss_rev' ) ) + 1 );
+ update_option( 'safecss_rev', (int) get_option( 'safecss_rev' ) + 1 );
update_post_meta( $safecss_post_id, 'custom_css_add', 'yes' );
update_post_meta( $safecss_post_id, 'content_width', false );
@@ -1565,11 +1570,11 @@ class Jetpack_Custom_CSS {
if ( Jetpack_Custom_CSS::is_preview() ) {
$safecss_post = Jetpack_Custom_CSS::get_current_revision();
- $custom_content_width = intval( get_post_meta( $safecss_post['ID'], 'content_width', true ) );
+ $custom_content_width = (int) get_post_meta( $safecss_post['ID'], 'content_width', true );
} else if ( ! Jetpack_Custom_CSS::is_freetrial() ) {
$custom_css_post_id = Jetpack_Custom_CSS::post_id();
if ( $custom_css_post_id )
- $custom_content_width = intval( get_post_meta( $custom_css_post_id, 'content_width', true ) );
+ $custom_content_width = (int) get_post_meta( $custom_css_post_id, 'content_width', true );
}
if ( $custom_content_width > 0 )
@@ -1595,6 +1600,10 @@ class Jetpack_Safe_CSS {
$csstidy->set_cfg( 'remove_last_;', false );
$csstidy->set_cfg( 'css_level', 'CSS3.0' );
+ // Turn off css shorthands and leading zero removal as it breaks block validation.
+ $csstidy->set_cfg( 'optimise_shorthands', 0 );
+ $csstidy->set_cfg( 'preserve_leading_zeros', true );
+
$css = preg_replace( '/\\\\([0-9a-fA-F]{4})/', '\\\\\\\\$1', $css );
$css = wp_kses_split( $css, array(), array() );
$csstidy->parse( $css );
@@ -1612,208 +1621,6 @@ class Jetpack_Safe_CSS {
}
}
-function migrate() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::upgrade()' );
-
- return Jetpack_Custom_CSS::upgrade();
-}
-
-function safecss_revision_redirect( $redirect ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::revision_redirect()' );
-
- return Jetpack_Custom_CSS::revision_redirect( $redirect );
-}
-
-function safecss_revision_post_link( $post_link, $post_id, $context ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::revision_post_link()' );
-
- return Jetpack_Custom_CSS::revision_post_link( $post_link, $post_id, $context );
-}
-
-function get_safecss_post() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::get_post()' );
-
- return Jetpack_Custom_CSS::get_post();
-}
-
-function custom_css_post_id() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::post_id()' );
-
- return Jetpack_Custom_CSS::post_id();
-}
-
-function get_current_revision() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::get_current_revision()' );
-
- return Jetpack_Custom_CSS::get_current_revision();
-}
-
-function save_revision( $css, $is_preview = false, $preprocessor = '' ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::save_revision()' );
-
- return Jetpack_Custom_CSS::save_revision( $css, $is_preview, $preprocessor );
-}
-
-function safecss_skip_stylesheet() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::skip_stylesheet()' );
-
- return Jetpack_Custom_CSS::skip_stylesheet();
-}
-
-function safecss_init() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::init()' );
-
- return Jetpack_Custom_CSS::init();
-}
-
-function safecss_is_preview() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::is_preview()' );
-
- return Jetpack_Custom_CSS::is_preview();
-}
-
-function safecss_is_freetrial() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::is_freetrial()' );
-
- return Jetpack_Custom_CSS::is_freetrial();
-}
-
-function safecss( $compressed = false ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::get_css()' );
-
- return Jetpack_Custom_CSS::get_css( $compressed );
-}
-
-function safecss_print() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::print_css()' );
-
- return Jetpack_Custom_CSS::print_css();
-}
-
-function safecss_style() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::link_tag()' );
-
- return Jetpack_Custom_CSS::link_tag();
-}
-
-function safecss_style_filter( $current ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::style_filter()' );
-
- return Jetpack_Custom_CSS::style_filter( $current );
-}
-
-function safecss_buffer( $html ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::buffer()' );
-
- return Jetpack_Custom_CSS::buffer( $html );
-}
-
-function safecss_preview_links( $matches ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::preview_links()' );
-
- return Jetpack_Custom_CSS::preview_links( $matches );
-}
-
-function safecss_preview_flag() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::preview_flag()' );
-
- return Jetpack_Custom_CSS::preview_flag();
-}
-
-function safecss_menu() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::menu()' );
-
- return Jetpack_Custom_CSS::menu();
-}
-
-function update_title() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::update_title()' );
-
- return Jetpack_Custom_CSS::update_title();
-}
-
-function safecss_prettify_post_revisions() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::prettify_post_revisions()' );
-
- return Jetpack_Custom_CSS::prettify_post_revisions();
-}
-
-function safecss_remove_title_excerpt_from_revisions() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::remove_title_excerpt_from_revisions()' );
-
- return Jetpack_Custom_CSS::remove_title_excerpt_from_revisions();
-}
-
-function safecss_post_title( $title, $post_id ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::post_title()' );
-
- return Jetpack_Custom_CSS::post_title( $title, $post_id );
-}
-
-function safe_css_enqueue_scripts() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::enqueue_scripts()' );
-
- return Jetpack_Custom_CSS::enqueue_scripts( null );
-}
-
-function safecss_admin_head() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::admin_head()' );
-
- return Jetpack_Custom_CSS::admin_head();
-}
-
-function safecss_saved() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::saved_message()' );
-
- return Jetpack_Custom_CSS::saved_message();
-}
-
-function safecss_admin() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::admin()' );
-
- return Jetpack_Custom_CSS::admin();
-}
-
-function custom_css_meta_box() {
- _deprecated_function( __FUNCTION__, '2.1', 'add_meta_box( $id, $title, $callback, \'editcss\', \'side\' )' );
-}
-
-function custom_css_post_revisions_meta_box( $safecss_post ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::revisions_meta_box()' );
-
- return Jetpack_Custom_CSS::revisions_meta_box( $safecss_post );
-}
-
-function disable_safecss_style() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::disable()' );
-
- return Jetpack_Custom_CSS::disable();
-}
-
-function custom_css_reset() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::reset()' );
-
- return Jetpack_Custom_CSS::reset();
-}
-
-function custom_css_is_customizer_preview() {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::is_customizer_preview()' );
-
- return Jetpack_Custom_CSS::is_customizer_preview();
-}
-
-function custom_css_minify( $css, $preprocessor = '' ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::minify()' );
-
- return Jetpack_Custom_CSS::minify( $css, $preprocessor );
-}
-
-function custom_css_restore_revision( $_post_id, $_revision_id ) {
- _deprecated_function( __FUNCTION__, '2.1', 'Jetpack_Custom_CSS::restore_revision()' );
-
- return Jetpack_Custom_CSS::restore_revision( $_post_id, $_revision_id );
-}
-
if ( ! function_exists( 'safecss_class' ) ) :
function safecss_class() {
// Wrapped so we don't need the parent class just to load the plugin
diff --git a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.css b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.css
index 9450df66..9d3bbc7b 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.css
+++ b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.css
@@ -30,8 +30,8 @@
/* GUTTER */
.CodeMirror-gutters {
- border-left: 1px solid #ddd;
- background-color: #f7f7f7;
+ border-left: 1px solid #dcdcde;
+ background-color: #f6f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
@@ -198,7 +198,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
}
.CodeMirror-code pre {
border-left: 30px solid transparent;
- width: -webkit-fit-content;
+ width: -moz-fit-content;
width: fit-content;
}
.CodeMirror-wrap .CodeMirror-code pre {
diff --git a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.min.css b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.min.css
index 4e4255ba..2a42c1c6 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.min.css
+++ b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror-rtl.min.css
@@ -1 +1 @@
-.rtl .CodeMirror{direction:rtl}.CodeMirror{font-family:monospace;height:400px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-left:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 5px 0 3px;min-width:20px;text-align:left;color:#999}.CodeMirror div.CodeMirror-cursor{border-right:1px solid #000;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-right:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.cm-tab{display:inline-block}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-error{color:red}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-left:-30px;padding-bottom:30px;padding-left:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{left:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;right:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{left:0;bottom:0}.CodeMirror-gutter-filler{right:0;bottom:0}.CodeMirror-gutters{position:absolute;right:0;top:0;padding-bottom:30px;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-code pre{border-left:30px solid transparent;width:-webkit-fit-content;width:fit-content}.CodeMirror-wrap .CodeMirror-code pre{border-left:none;width:auto}.CodeMirror-linebackground{position:absolute;right:0;left:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-left:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}} \ No newline at end of file
+.rtl .CodeMirror{direction:rtl}.CodeMirror{font-family:monospace;height:400px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-left:1px solid #dcdcde;background-color:#f6f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 5px 0 3px;min-width:20px;text-align:left;color:#999}.CodeMirror div.CodeMirror-cursor{border-right:1px solid #000;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-right:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.cm-tab{display:inline-block}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-error{color:red}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-left:-30px;padding-bottom:30px;padding-left:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{left:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;right:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{left:0;bottom:0}.CodeMirror-gutter-filler{right:0;bottom:0}.CodeMirror-gutters{position:absolute;right:0;top:0;padding-bottom:30px;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-code pre{border-left:30px solid transparent;width:-moz-fit-content;width:fit-content}.CodeMirror-wrap .CodeMirror-code pre{border-left:none;width:auto}.CodeMirror-linebackground{position:absolute;right:0;left:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-left:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.css b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.css
index db90a5a5..c6e68a75 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.css
+++ b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.css
@@ -29,8 +29,8 @@
/* GUTTER */
.CodeMirror-gutters {
- border-right: 1px solid #ddd;
- background-color: #f7f7f7;
+ border-right: 1px solid #dcdcde;
+ background-color: #f6f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
diff --git a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.min.css b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.min.css
index e7b11f4b..d2c39eef 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.min.css
+++ b/plugins/jetpack/modules/custom-css/custom-css/css/codemirror.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-.rtl .CodeMirror{direction:ltr}.CodeMirror{font-family:monospace;height:400px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999}.CodeMirror div.CodeMirror-cursor{border-left:1px solid #000;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.cm-tab{display:inline-block}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-error{color:red}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;padding-right:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;padding-bottom:30px;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-code pre{border-right:30px solid transparent;width:-webkit-fit-content;width:fit-content}.CodeMirror-wrap .CodeMirror-code pre{border-right:none;width:auto}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-right:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}} \ No newline at end of file
+.rtl .CodeMirror{direction:ltr}.CodeMirror{font-family:monospace;height:400px}.CodeMirror-scroll{overflow:auto}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #dcdcde;background-color:#f6f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999}.CodeMirror div.CodeMirror-cursor{border-left:1px solid #000;z-index:3}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.CodeMirror.cm-keymap-fat-cursor div.CodeMirror-cursor{width:auto;border:0;background:#7e7;z-index:1}.cm-tab{display:inline-block}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable{color:#000}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-property{color:#000}.cm-s-default .cm-operator{color:#000}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-error{color:red}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-invalidchar{color:red}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{line-height:1;position:relative;overflow:hidden;background:#fff;color:#000}.CodeMirror-scroll{margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;padding-right:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;padding-bottom:30px;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;padding-bottom:30px;margin-bottom:-32px;display:inline-block}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-lines{cursor:text}.CodeMirror pre{border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-code pre{border-right:30px solid transparent;width:-moz-fit-content;width:fit-content}.CodeMirror-wrap .CodeMirror-code pre{border-right:none;width:auto}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-wrap .CodeMirror-scroll{overflow-x:hidden}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-measure pre{position:static}.CodeMirror div.CodeMirror-cursor{position:absolute;visibility:hidden;border-right:none;width:0}.CodeMirror-focused div.CodeMirror-cursor{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,.4)}@media print{.CodeMirror div.CodeMirror-cursor{visibility:hidden}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/custom-css/custom-css/css/customizer-control.css b/plugins/jetpack/modules/custom-css/custom-css/css/customizer-control.css
index 1076f0c5..3726602d 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/css/customizer-control.css
+++ b/plugins/jetpack/modules/custom-css/custom-css/css/customizer-control.css
@@ -6,8 +6,8 @@
margin: 0;
direction: ltr;
text-align: left;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
+ border-bottom: 1px solid #dcdcde;
}
#customize-control-custom_css#customize-control-custom_css {
margin-right: -12px;
@@ -52,7 +52,7 @@
#customize-control-wpcom_custom_css_content_width_control .description {
display: block;
margin: 28px 0 0 0;
- color: #aaa;
+ color: #a7aaad;
}
#customize-control-wpcom_custom_css_content_width_control .description strong {
@@ -64,7 +64,7 @@
}
.css-help {
- border-bottom: 1px solid #ddd;
+ border-bottom: 1px solid #dcdcde;
background: #ffffff;
position: relative;
right: 0;
@@ -79,13 +79,13 @@
display: inline-block;
text-decoration: none;
border-bottom: 4px solid transparent;
- color: #555d66;
+ color: #50575e;
padding: 7px 10px 5px;
transition: .15s color ease-in-out,.15s background-color ease-in-out,.15s border-color ease-in-out;
}
.css-help a:hover {
- color: #0073aa;
+ color: #2271b1;
background-color: #f3f3f5;
}
@@ -100,9 +100,9 @@
}
.css-help a:focus {
- color: #0073aa;
+ color: #2271b1;
background-color: #f3f3f5;
- border-bottom-color: #0073aa;
+ border-bottom-color: #2271b1;
box-shadow: none;
}
diff --git a/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js b/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js
index 7fef365f..d45a967b 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js
+++ b/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js
@@ -82,4 +82,4 @@
});
});
-})( jQuery, this.wp.customize );
+})( jQuery, window.wp.customize );
diff --git a/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.js b/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.js
index 570cb8d2..1cce4743 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.js
+++ b/plugins/jetpack/modules/custom-css/custom-css/js/core-customizer-css.js
@@ -189,4 +189,4 @@
}
});
-})( this.wp, jQuery, this.wp.customize );
+})( window.wp, jQuery, window.wp.customize );
diff --git a/plugins/jetpack/modules/custom-css/custom-css/js/css-editor.js b/plugins/jetpack/modules/custom-css/custom-css/js/css-editor.js
index 65467aea..f10c9d43 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/js/css-editor.js
+++ b/plugins/jetpack/modules/custom-css/custom-css/js/css-editor.js
@@ -1,13 +1,13 @@
/* global postboxes, addLoadEvent */
-( function( $ ) {
+( function ( $ ) {
var safe, win, safecssResize, safecssInit;
- safecssResize = function() {
+ safecssResize = function () {
safe.height( win.height() - safe.offset().top - 250 );
};
- safecssInit = function() {
+ safecssInit = function () {
safe = $( '#safecss' );
win = $( window );
@@ -15,7 +15,7 @@
safecssResize();
// Bound on a parent to ensure that this click event executes last.
- $( '#safecssform' ).on( 'click', '#preview', function( e ) {
+ $( '#safecssform' ).on( 'click', '#preview', function ( e ) {
e.preventDefault();
document.forms.safecssform.target = 'csspreview';
@@ -30,45 +30,43 @@
addLoadEvent( safecssInit );
} )( jQuery );
-jQuery( function( $ ) {
- $( '.edit-preprocessor' ).bind( 'click', function( e ) {
+jQuery( function ( $ ) {
+ $( '.edit-preprocessor' ).bind( 'click', function ( e ) {
e.preventDefault();
$( '#preprocessor-select' ).slideDown();
$( this ).hide();
} );
- $( '.cancel-preprocessor' ).bind( 'click', function( e ) {
+ $( '.cancel-preprocessor' ).bind( 'click', function ( e ) {
e.preventDefault();
- $( '#preprocessor-select' ).slideUp( function() {
+ $( '#preprocessor-select' ).slideUp( function () {
$( '.edit-preprocessor' ).show();
$( '#preprocessor_choices' ).val( $( '#custom_css_preprocessor' ).val() );
} );
} );
- $( '.save-preprocessor' ).bind( 'click', function( e ) {
+ $( '.save-preprocessor' ).bind( 'click', function ( e ) {
e.preventDefault();
$( '#preprocessor-select' ).slideUp();
$( '#preprocessor-display' ).text( $( '#preprocessor_choices option:selected' ).text() );
- $( '#custom_css_preprocessor' )
- .val( $( '#preprocessor_choices' ).val() )
- .change();
+ $( '#custom_css_preprocessor' ).val( $( '#preprocessor_choices' ).val() ).change();
$( '.edit-preprocessor' ).show();
} );
- $( '.edit-css-mode' ).bind( 'click', function( e ) {
+ $( '.edit-css-mode' ).bind( 'click', function ( e ) {
e.preventDefault();
$( '#css-mode-select' ).slideDown();
$( this ).hide();
} );
- $( '.cancel-css-mode' ).bind( 'click', function( e ) {
+ $( '.cancel-css-mode' ).bind( 'click', function ( e ) {
e.preventDefault();
- $( '#css-mode-select' ).slideUp( function() {
+ $( '#css-mode-select' ).slideUp( function () {
$( '.edit-css-mode' ).show();
$( 'input[name=add_to_existing_display][value=' + $( '#add_to_existing' ).val() + ']' ).attr(
'checked',
@@ -77,7 +75,7 @@ jQuery( function( $ ) {
} );
} );
- $( '.save-css-mode' ).bind( 'click', function( e ) {
+ $( '.save-css-mode' ).bind( 'click', function ( e ) {
e.preventDefault();
$( '#css-mode-select' ).slideUp();
diff --git a/plugins/jetpack/modules/custom-css/custom-css/js/use-codemirror.js b/plugins/jetpack/modules/custom-css/custom-css/js/use-codemirror.js
index 5ad75510..5be8129d 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/js/use-codemirror.js
+++ b/plugins/jetpack/modules/custom-css/custom-css/js/use-codemirror.js
@@ -1,11 +1,11 @@
-( function( $ ) {
+( function ( $ ) {
var Jetpack_CSS = {
modes: {
default: 'text/css',
less: 'text/x-less',
sass: 'text/x-scss',
},
- init: function() {
+ init: function () {
this.$textarea = $( '#safecss' );
this.editor = window.CodeMirror.fromTextArea( this.$textarea.get( 0 ), {
mode: this.getMode(),
@@ -16,28 +16,28 @@
} );
this.setEditorHeight();
},
- addListeners: function() {
+ addListeners: function () {
// nice sizing
$( window ).on( 'resize', _.bind( _.debounce( this.setEditorHeight, 100 ), this ) );
// keep textarea synced up
this.editor.on(
'change',
- _.bind( function( editor ) {
+ _.bind( function ( editor ) {
this.$textarea.val( editor.getValue() );
}, this )
);
// change mode
$( '#preprocessor_choices' ).change(
- _.bind( function() {
+ _.bind( function () {
this.editor.setOption( 'mode', this.getMode() );
}, this )
);
},
- setEditorHeight: function() {
+ setEditorHeight: function () {
var height = $( 'html' ).height() - $( this.editor.getWrapperElement() ).offset().top;
this.editor.setSize( null, height );
},
- getMode: function() {
+ getMode: function () {
var mode = $( '#preprocessor_choices' ).val();
if ( '' === mode || ! this.modes[ mode ] ) {
mode = 'default';
diff --git a/plugins/jetpack/modules/custom-css/custom-css/preprocessors/lessc.inc.php b/plugins/jetpack/modules/custom-css/custom-css/preprocessors/lessc.inc.php
index 81662da7..4bdd2766 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/preprocessors/lessc.inc.php
+++ b/plugins/jetpack/modules/custom-css/custom-css/preprocessors/lessc.inc.php
@@ -1098,7 +1098,7 @@ class lessc {
}
list($color, $delta) = $args[2];
$color = $this->assertColor($color);
- $delta = floatval($delta[1]);
+ $delta = (float) $delta[1];
return array($color, $delta);
}
@@ -1396,7 +1396,7 @@ class lessc {
$i = 0;
foreach ($rawComponents as $c) {
$val = $this->reduce($c);
- $val = isset($val[1]) ? floatval($val[1]) : 0;
+ $val = isset( $val[1] ) ? (float) $val[1] : 0;
if ($i == 0) $clamp = 360;
elseif ($i < 3) $clamp = 100;
@@ -1418,13 +1418,13 @@ class lessc {
if ($c[0] == "number" && $c[2] == "%") {
$components[] = 255 * ($c[1] / 100);
} else {
- $components[] = floatval($c[1]);
+ $components[] = (float) $c[1];
}
} elseif ($i == 4) {
if ($c[0] == "number" && $c[2] == "%") {
$components[] = 1.0 * ($c[1] / 100);
} else {
- $components[] = floatval($c[1]);
+ $components[] = (float) $c[1];
}
} else break;
@@ -2229,6 +2229,7 @@ class lessc {
'plum' => '221,160,221',
'powderblue' => '176,224,230',
'purple' => '128,0,128',
+ 'rebeccapurple' => '102,51,153',
'red' => '255,0,0',
'rosybrown' => '188,143,143',
'royalblue' => '65,105,225',
@@ -3758,4 +3759,3 @@ class lessc_formatter_lessjs extends lessc_formatter_classic {
public $assignSeparator = ": ";
public $selectorSeparator = ",";
}
-
diff --git a/plugins/jetpack/modules/custom-css/custom-css/preprocessors/scss.inc.php b/plugins/jetpack/modules/custom-css/custom-css/preprocessors/scss.inc.php
index a59a653b..d057c0ee 100644
--- a/plugins/jetpack/modules/custom-css/custom-css/preprocessors/scss.inc.php
+++ b/plugins/jetpack/modules/custom-css/custom-css/preprocessors/scss.inc.php
@@ -2380,7 +2380,7 @@ class scssc {
/**
* CSS Colors
*
- * @see https://www.w3.org/TR/css-color-3/
+ * @see https://www.w3.org/TR/css-color-4/
*/
static protected $cssColors = array(
'aliceblue' => '240,248,255',
@@ -2502,6 +2502,7 @@ class scssc {
'plum' => '221,160,221',
'powderblue' => '176,224,230',
'purple' => '128,0,128',
+ 'rebeccapurple' => '102,51,153',
'red' => '255,0,0',
'rosybrown' => '188,143,143',
'royalblue' => '65,105,225',
diff --git a/plugins/jetpack/modules/custom-css/migrate-to-core.php b/plugins/jetpack/modules/custom-css/migrate-to-core.php
index 26108941..d26092b4 100644
--- a/plugins/jetpack/modules/custom-css/migrate-to-core.php
+++ b/plugins/jetpack/modules/custom-css/migrate-to-core.php
@@ -4,7 +4,7 @@
*
* @since 4.4.2
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/custom-post-types/comics.php b/plugins/jetpack/modules/custom-post-types/comics.php
index c67b1d97..fdbf62b7 100644
--- a/plugins/jetpack/modules/custom-post-types/comics.php
+++ b/plugins/jetpack/modules/custom-post-types/comics.php
@@ -27,7 +27,7 @@ class Jetpack_Comic {
// Make sure the post types are loaded for imports
add_action( 'import_start', array( $this, 'register_post_types' ) );
- // Add to REST API post type whitelist
+ // Add to REST API post type allowed list.
add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_rest_api_type' ) );
// If called via REST API, we need to register later in lifecycle
@@ -170,31 +170,37 @@ class Jetpack_Comic {
}
public function register_scripts() {
- wp_enqueue_style( 'jetpack-comics-style', plugins_url( 'comics/comics.css', __FILE__ ) );
+ wp_enqueue_style( 'jetpack-comics-style', plugins_url( 'comics/comics.css', __FILE__ ), array(), JETPACK__VERSION );
wp_style_add_data( 'jetpack-comics-style', 'rtl', 'replace' );
- wp_enqueue_script(
- 'jetpack-comics',
- Assets::get_file_url_for_environment(
- '_inc/build/custom-post-types/comics/comics.min.js',
- 'modules/custom-post-types/comics/comics.js'
- ),
- array( 'jquery', 'jquery.spin' )
- );
- $options = array(
- 'nonce' => wp_create_nonce( 'jetpack_comic_upload_nonce' ),
- 'writeURL' => admin_url( 'admin-ajax.php?action=jetpack_comic_upload' ),
- 'labels' => array(
- 'dragging' => __( 'Drop images to upload', 'jetpack' ),
- 'uploading' => __( 'Uploading...', 'jetpack' ),
- 'processing' => __( 'Processing...', 'jetpack' ),
- 'unsupported' => __( "Sorry, your browser isn't supported. Upgrade at browsehappy.com.", 'jetpack' ),
- 'invalidUpload' => __( 'Only images can be uploaded here.', 'jetpack' ),
- 'error' => __( "Your upload didn't complete; try again later or cross your fingers and try again right now.", 'jetpack' ),
- )
- );
+ $is_amp = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+ if ( ! $is_amp ) {
+ wp_enqueue_script(
+ 'jetpack-comics',
+ Assets::get_file_url_for_environment(
+ '_inc/build/custom-post-types/comics/comics.min.js',
+ 'modules/custom-post-types/comics/comics.js'
+ ),
+ array( 'jquery' ),
+ JETPACK__VERSION,
+ false
+ );
- wp_localize_script( 'jetpack-comics', 'Jetpack_Comics_Options', $options );
+ $options = array(
+ 'nonce' => wp_create_nonce( 'jetpack_comic_upload_nonce' ),
+ 'writeURL' => admin_url( 'admin-ajax.php?action=jetpack_comic_upload' ),
+ 'labels' => array(
+ 'dragging' => __( 'Drop images to upload', 'jetpack' ),
+ 'uploading' => __( 'Uploading...', 'jetpack' ),
+ 'processing' => __( 'Processing...', 'jetpack' ),
+ 'unsupported' => __( "Sorry, your browser isn't supported. Upgrade at browsehappy.com.", 'jetpack' ),
+ 'invalidUpload' => __( 'Only images can be uploaded here.', 'jetpack' ),
+ 'error' => __( "Your upload didn't complete; try again later or cross your fingers and try again right now.", 'jetpack' ),
+ ),
+ );
+
+ wp_localize_script( 'jetpack-comics', 'Jetpack_Comics_Options', $options );
+ }
}
public function admin_enqueue_scripts() {
@@ -503,7 +509,7 @@ class Jetpack_Comic {
}
/**
- * Add to REST API post type whitelist
+ * Add to REST API post type allowed list.
*/
public function allow_rest_api_type( $post_types ) {
$post_types[] = self::POST_TYPE;
diff --git a/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.css b/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.css
index 7662d7e5..bcf00642 100644
--- a/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.css
+++ b/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.css
@@ -9,9 +9,32 @@ body.dragging #jetpack-comic-drop-zone .dragging, body.uploading #jetpack-comic-
display: block;
}
-body.uploading #jetpack-comic-drop-zone .uploading .spinner {
- display: inline-block;
+body.uploading #jetpack-comic-drop-zone .uploading .spinner,
+body.uploading #jetpack-comic-drop-zone .uploading .spinner:after {
+ border-radius: 50%;
width: 60px;
+ height: 60px;
+}
+body.uploading #jetpack-comic-drop-zone .uploading .spinner {
+ display: block;
+ margin: 15px auto;
+ font-size: 10px;
+ position: relative;
+ text-indent: -9999em;
+ border-top: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-left: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-right: 1.1em solid #ffffff;
+ transform: translateZ(0);
+ animation: load8 1.1s infinite linear;
+}
+@keyframes load8 {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 100% {
+ transform: rotate(-360deg);
+ }
}
/* Add the drop zone overlay. */
@@ -28,4 +51,4 @@ body.dragging #jetpack-comic-drop-zone, body.uploading #jetpack-comic-drop-zone
bottom: 10px;
text-align: center;
z-index: 99999;
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.min.css b/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.min.css
index 9fa3feae..16adbc17 100644
--- a/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.min.css
+++ b/plugins/jetpack/modules/custom-post-types/comics/comics-rtl.min.css
@@ -1 +1 @@
-#jetpack-comic-drop-zone .dragging,#jetpack-comic-drop-zone .uploading{margin-top:200px;display:none}body.dragging #jetpack-comic-drop-zone .dragging,body.uploading #jetpack-comic-drop-zone .uploading{display:block}body.uploading #jetpack-comic-drop-zone .uploading .spinner{display:inline-block;width:60px}body.dragging #jetpack-comic-drop-zone,body.uploading #jetpack-comic-drop-zone{background:rgba(0,86,132,.9);border:1px dashed #fff;color:#fff;display:block;font-size:30px;position:fixed;top:10px;right:10px;left:10px;bottom:10px;text-align:center;z-index:99999} \ No newline at end of file
+#jetpack-comic-drop-zone .dragging,#jetpack-comic-drop-zone .uploading{margin-top:200px;display:none}body.dragging #jetpack-comic-drop-zone .dragging,body.uploading #jetpack-comic-drop-zone .uploading{display:block}body.uploading #jetpack-comic-drop-zone .uploading .spinner,body.uploading #jetpack-comic-drop-zone .uploading .spinner:after{border-radius:50%;width:60px;height:60px}body.uploading #jetpack-comic-drop-zone .uploading .spinner{display:block;margin:15px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(255,255,255,.2);border-left:1.1em solid rgba(255,255,255,.2);border-bottom:1.1em solid rgba(255,255,255,.2);border-right:1.1em solid #fff;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}body.dragging #jetpack-comic-drop-zone,body.uploading #jetpack-comic-drop-zone{background:rgba(0,86,132,.9);border:1px dashed #fff;color:#fff;display:block;font-size:30px;position:fixed;top:10px;right:10px;left:10px;bottom:10px;text-align:center;z-index:99999} \ No newline at end of file
diff --git a/plugins/jetpack/modules/custom-post-types/comics/comics.css b/plugins/jetpack/modules/custom-post-types/comics/comics.css
index 6e5cf110..3f3a5390 100644
--- a/plugins/jetpack/modules/custom-post-types/comics/comics.css
+++ b/plugins/jetpack/modules/custom-post-types/comics/comics.css
@@ -8,9 +8,48 @@ body.dragging #jetpack-comic-drop-zone .dragging, body.uploading #jetpack-comic-
display: block;
}
-body.uploading #jetpack-comic-drop-zone .uploading .spinner {
- display: inline-block;
+body.uploading #jetpack-comic-drop-zone .uploading .spinner,
+body.uploading #jetpack-comic-drop-zone .uploading .spinner:after {
+ border-radius: 50%;
width: 60px;
+ height: 60px;
+}
+body.uploading #jetpack-comic-drop-zone .uploading .spinner {
+ display: block;
+ margin: 15px auto;
+ font-size: 10px;
+ position: relative;
+ text-indent: -9999em;
+ border-top: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-right: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-bottom: 1.1em solid rgba(255, 255, 255, 0.2);
+ border-left: 1.1em solid #ffffff;
+ -webkit-transform: translateZ(0);
+ -ms-transform: translateZ(0);
+ transform: translateZ(0);
+ -webkit-animation: load8 1.1s infinite linear;
+ animation: load8 1.1s infinite linear;
+}
+
+@-webkit-keyframes load8 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+@keyframes load8 {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
}
/* Add the drop zone overlay. */
@@ -27,4 +66,4 @@ body.dragging #jetpack-comic-drop-zone, body.uploading #jetpack-comic-drop-zone
bottom: 10px;
text-align: center;
z-index: 99999;
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/custom-post-types/comics/comics.js b/plugins/jetpack/modules/custom-post-types/comics/comics.js
index 3e9d708b..bcf5c787 100644
--- a/plugins/jetpack/modules/custom-post-types/comics/comics.js
+++ b/plugins/jetpack/modules/custom-post-types/comics/comics.js
@@ -1,11 +1,11 @@
/* global Jetpack_Comics_Options */
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
/**
* Enable front-end uploading of images for Comics users.
*/
var Jetpack_Comics = {
- init: function() {
+ init: function () {
$( document ).on(
'dragover.jetpack-comics',
'body, #jetpack-comic-drop-zone',
@@ -40,7 +40,7 @@ jQuery( function( $ ) {
/**
* Only upload image files.
*/
- filterImageFiles: function( files ) {
+ filterImageFiles: function ( files ) {
var validFiles = [];
for ( var i = 0, _len = files.length; i < _len; i++ ) {
@@ -54,7 +54,7 @@ jQuery( function( $ ) {
dragTimeout: null,
- onDragOver: function( event ) {
+ onDragOver: function ( event ) {
event.preventDefault();
clearTimeout( Jetpack_Comics.dragTimeout );
@@ -62,17 +62,17 @@ jQuery( function( $ ) {
$( 'body' ).addClass( 'dragging' );
},
- onDragLeave: function(/*event*/) {
+ onDragLeave: function (/*event*/) {
clearTimeout( Jetpack_Comics.dragTimeout );
// In Chrome, the screen flickers because we're moving the drop zone in front of 'body'
// so the dragover/dragleave events happen frequently.
- Jetpack_Comics.dragTimeout = setTimeout( function() {
+ Jetpack_Comics.dragTimeout = setTimeout( function () {
$( 'body' ).removeClass( 'dragging' );
}, 100 );
},
- onDrop: function( event ) {
+ onDrop: function ( event ) {
event.preventDefault();
event.stopPropagation();
@@ -97,8 +97,6 @@ jQuery( function( $ ) {
formData.append( 'image_' + i, files[ i ] ); // won't work as image[]
}
- $( '#jetpack-comic-drop-zone .uploading .spinner' ).spin();
-
$.ajax( {
url: Jetpack_Comics_Options.writeURL + '&nonce=' + Jetpack_Comics_Options.nonce,
data: formData,
@@ -110,7 +108,7 @@ jQuery( function( $ ) {
withCredentials: true,
},
} )
- .done( function( data ) {
+ .done( function ( data ) {
$( '#jetpack-comic-drop-zone .uploading' ).text(
Jetpack_Comics_Options.labels.processing
);
@@ -123,7 +121,7 @@ jQuery( function( $ ) {
$( 'body' ).removeClass( 'uploading' );
}
} )
- .fail( function(/*req*/) {
+ .fail( function (/*req*/) {
alert( Jetpack_Comics_Options.labels.error );
} );
},
diff --git a/plugins/jetpack/modules/custom-post-types/comics/comics.min.css b/plugins/jetpack/modules/custom-post-types/comics/comics.min.css
index 2526a81c..08b5f1fc 100644
--- a/plugins/jetpack/modules/custom-post-types/comics/comics.min.css
+++ b/plugins/jetpack/modules/custom-post-types/comics/comics.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-#jetpack-comic-drop-zone .dragging,#jetpack-comic-drop-zone .uploading{margin-top:200px;display:none}body.dragging #jetpack-comic-drop-zone .dragging,body.uploading #jetpack-comic-drop-zone .uploading{display:block}body.uploading #jetpack-comic-drop-zone .uploading .spinner{display:inline-block;width:60px}body.dragging #jetpack-comic-drop-zone,body.uploading #jetpack-comic-drop-zone{background:rgba(0,86,132,.9);border:1px dashed #fff;color:#fff;display:block;font-size:30px;position:fixed;top:10px;left:10px;right:10px;bottom:10px;text-align:center;z-index:99999} \ No newline at end of file
+#jetpack-comic-drop-zone .dragging,#jetpack-comic-drop-zone .uploading{margin-top:200px;display:none}body.dragging #jetpack-comic-drop-zone .dragging,body.uploading #jetpack-comic-drop-zone .uploading{display:block}body.uploading #jetpack-comic-drop-zone .uploading .spinner,body.uploading #jetpack-comic-drop-zone .uploading .spinner:after{border-radius:50%;width:60px;height:60px}body.uploading #jetpack-comic-drop-zone .uploading .spinner{display:block;margin:15px auto;font-size:10px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(255,255,255,.2);border-right:1.1em solid rgba(255,255,255,.2);border-bottom:1.1em solid rgba(255,255,255,.2);border-left:1.1em solid #fff;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.dragging #jetpack-comic-drop-zone,body.uploading #jetpack-comic-drop-zone{background:rgba(0,86,132,.9);border:1px dashed #fff;color:#fff;display:block;font-size:30px;position:fixed;top:10px;left:10px;right:10px;bottom:10px;text-align:center;z-index:99999} \ No newline at end of file
diff --git a/plugins/jetpack/modules/custom-post-types/css/nova.css b/plugins/jetpack/modules/custom-post-types/css/nova.css
index 309b510f..616433a3 100644
--- a/plugins/jetpack/modules/custom-post-types/css/nova.css
+++ b/plugins/jetpack/modules/custom-post-types/css/nova.css
@@ -17,7 +17,7 @@
text-align: center;
}
.widefat .menu-label-row, .widefat .menu-label-row td {
- background-color: #eee;
+ background-color: #f0f0f1;
color: #111;
border: 0 none;
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.05);
@@ -28,7 +28,7 @@
background-color: #fff;
}
.ui-sortable .type-nova_menu_item:nth-child(even) {
- background-color: #f9f9f9;
+ background-color: #f6f7f7;
}
.ui-sortable .type-nova_menu_item.ui-sortable-helper {
-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, 0.1);
@@ -107,4 +107,4 @@
margin: 2px 5px 0 10px;
content: "\f327";
font-size: 10px;
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/custom-post-types/js/many-items.js b/plugins/jetpack/modules/custom-post-types/js/many-items.js
index 5f8eee9d..62a4b2a2 100644
--- a/plugins/jetpack/modules/custom-post-types/js/many-items.js
+++ b/plugins/jetpack/modules/custom-post-types/js/many-items.js
@@ -1,13 +1,13 @@
-( function( $ ) {
+( function ( $ ) {
var menuSelector, nonceInput, methods;
methods = {
- init: function(/*options*/) {
+ init: function (/*options*/) {
var $this = this,
tbody,
row;
- this.on( 'keypress.manyItemsTable', function( event ) {
+ this.on( 'keypress.manyItemsTable', function ( event ) {
if ( 13 !== event.which ) {
return;
}
@@ -17,7 +17,7 @@
methods.submitRow.apply( $this );
}
methods.addRow.apply( $this );
- } ).on( 'focus.manyItemsTable', ':input', function(/*event*/) {
+ } ).on( 'focus.manyItemsTable', ':input', function (/*event*/) {
$this.data( 'currentRow', $( this ).parents( 'tr:first' ) );
} );
@@ -35,13 +35,13 @@
return this;
},
- destroy: function() {
+ destroy: function () {
this.off( '.manyItemsTable' );
return this;
},
- submitRow: function() {
+ submitRow: function () {
var submittedRow, currentInputs, allInputs, partialFormData;
submittedRow = this.data( 'currentRow' );
@@ -65,7 +65,7 @@
data: partialFormData,
processData: false,
contentType: false,
- } ).complete( function( xhr ) {
+ } ).complete( function ( xhr ) {
submittedRow.html( xhr.responseText );
} );
@@ -74,7 +74,7 @@
return this;
},
- addRow: function() {
+ addRow: function () {
var row = this.data( 'row' ).clone();
row.appendTo( this.data( 'tbody' ) );
row.find( ':input:first' ).focus();
@@ -83,7 +83,7 @@
},
};
- $.fn.manyItemsTable = function( method ) {
+ $.fn.manyItemsTable = function ( method ) {
// Method calling logic
if ( methods[ method ] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ) );
@@ -95,20 +95,18 @@
}
};
- $.fn.clickAddRow = function() {
+ $.fn.clickAddRow = function () {
var tbody = this.find( 'tbody:last' ),
row = tbody.find( 'tr:first' ).clone();
- $( row )
- .find( 'input, textarea' )
- .val( '' );
+ $( row ).find( 'input, textarea' ).val( '' );
$( row ).appendTo( tbody );
};
} )( jQuery );
-jQuery( '.many-items-table' ).one( 'focus', ':input', function( event ) {
+jQuery( '.many-items-table' ).one( 'focus', ':input', function ( event ) {
jQuery( event.delegateTarget ).manyItemsTable();
} );
-jQuery( '.many-items-table' ).on( 'click', 'a.nova-new-row', function( event ) {
+jQuery( '.many-items-table' ).on( 'click', 'a.nova-new-row', function ( event ) {
jQuery( event.delegateTarget ).clickAddRow();
} );
diff --git a/plugins/jetpack/modules/custom-post-types/js/menu-checkboxes.js b/plugins/jetpack/modules/custom-post-types/js/menu-checkboxes.js
index d83952b3..2182c0ba 100644
--- a/plugins/jetpack/modules/custom-post-types/js/menu-checkboxes.js
+++ b/plugins/jetpack/modules/custom-post-types/js/menu-checkboxes.js
@@ -1,9 +1,9 @@
-( function( $ ) {
+( function ( $ ) {
var NovaCheckBoxes = {
inputs: null,
popInputs: null,
- initialize: function() {
+ initialize: function () {
NovaCheckBoxes.popInputs = $( '#nova_menuchecklist-pop' ).find( ':checkbox' );
NovaCheckBoxes.inputs = $( '#nova_menuchecklist' )
@@ -18,30 +18,26 @@
NovaCheckBoxes.syncPop();
},
- syncPop: function() {
- NovaCheckBoxes.popInputs.each( function() {
+ syncPop: function () {
+ NovaCheckBoxes.popInputs.each( function () {
var $this = $( this );
$this.prop( 'checked', $( '#in-nova_menu-' + $this.val() ).is( ':checked' ) );
} );
},
- isChecked: function() {
+ isChecked: function () {
return NovaCheckBoxes.inputs.is( ':checked' );
},
- checkFirst: function() {
+ checkFirst: function () {
NovaCheckBoxes.inputs.first().prop( 'checked', true );
},
- checkOne: function(/*event*/) {
+ checkOne: function (/*event*/) {
if ( $( this ).is( ':checked' ) ) {
return NovaCheckBoxes.inputs.not( this ).prop( 'checked', false );
} else {
- if (
- $( this )
- .closest( '#nova_menuchecklist' )
- .find( ':checked' ).length > 0
- ) {
+ if ( $( this ).closest( '#nova_menuchecklist' ).find( ':checked' ).length > 0 ) {
return $( this ).prop( 'checked', false );
}
return NovaCheckBoxes.checkFirst();
diff --git a/plugins/jetpack/modules/custom-post-types/js/nova-drag-drop.js b/plugins/jetpack/modules/custom-post-types/js/nova-drag-drop.js
index 7c57d287..aecd3e2e 100644
--- a/plugins/jetpack/modules/custom-post-types/js/nova-drag-drop.js
+++ b/plugins/jetpack/modules/custom-post-types/js/nova-drag-drop.js
@@ -1,6 +1,6 @@
/* global _novaDragDrop */
-( function( $ ) {
+( function ( $ ) {
var list;
function init() {
@@ -13,8 +13,8 @@
function dragMenus() {
list.sortable( {
- cancel: '.no-items',
- stop: function( event, ui ) {
+ cancel: '.no-items, .inline-edit-row',
+ stop: function ( event, ui ) {
if ( ui.item.is( ':first-child' ) ) {
return list.sortable( 'cancel' );
}
@@ -25,11 +25,11 @@
}
function reOrder() {
- list.find( '.menu-label-row' ).each( function() {
+ list.find( '.menu-label-row' ).each( function () {
var term_id = $( this ).data( 'term_id' );
$( this )
.nextUntil( '.menu-label-row' )
- .each( function( i ) {
+ .each( function ( i ) {
var row = $( this );
row.find( '.menu-order-value' ).val( i );
row.find( '.nova-menu-term' ).val( term_id );
diff --git a/plugins/jetpack/modules/custom-post-types/nova.php b/plugins/jetpack/modules/custom-post-types/nova.php
index b4cf0281..e4d7f00b 100644
--- a/plugins/jetpack/modules/custom-post-types/nova.php
+++ b/plugins/jetpack/modules/custom-post-types/nova.php
@@ -32,7 +32,12 @@ class Nova_Restaurant {
const MENU_ITEM_LABEL_TAX = 'nova_menu_item_label';
const MENU_TAX = 'nova_menu';
- public $version = '0.1';
+ /**
+ * Version number used when enqueuing all resources (css and js).
+ *
+ * @var string
+ */
+ public $version = '20210303';
protected $default_menu_item_loop_markup = array(
'menu_tag' => 'section',
@@ -325,14 +330,38 @@ class Nova_Restaurant {
$number_menu_items = wp_count_posts( self::MENU_ITEM_POST_TYPE );
if ( current_user_can( 'administrator' ) ) {
- $number_menu_items_published = sprintf( '<a href="%1$s">%2$s</a>',
- esc_url( get_admin_url( get_current_blog_id(), 'edit.php?post_type=' . self::MENU_ITEM_POST_TYPE ) ),
- sprintf( _n( '%1$d Food Menu Item', '%1$d Food Menu Items', intval( $number_menu_items->publish ), 'jetpack' ), number_format_i18n( $number_menu_items->publish ) )
+ $number_menu_items_published = sprintf(
+ '<a href="%1$s">%2$s</a>',
+ esc_url(
+ get_admin_url(
+ get_current_blog_id(),
+ 'edit.php?post_type=' . self::MENU_ITEM_POST_TYPE
+ )
+ ),
+ sprintf(
+ /* translators: Placehoder is a number of items. */
+ _n(
+ '%1$d Food Menu Item',
+ '%1$d Food Menu Items',
+ (int) $number_menu_items->publish,
+ 'jetpack'
+ ),
+ number_format_i18n( $number_menu_items->publish )
+ )
);
- }
- else {
- $number_menu_items_published = sprintf( '<span>%1$s</span>',
- sprintf( _n( '%1$d Food Menu Item', '%1$d Food Menu Items', intval( $number_menu_items->publish ), 'jetpack' ), number_format_i18n( $number_menu_items->publish ) )
+ } else {
+ $number_menu_items_published = sprintf(
+ '<span>%1$s</span>',
+ sprintf(
+ /* translators: Placehoder is a number of items. */
+ _n(
+ '%1$d Food Menu Item',
+ '%1$d Food Menu Items',
+ (int) $number_menu_items->publish,
+ 'jetpack'
+ ),
+ number_format_i18n( $number_menu_items->publish )
+ )
);
}
diff --git a/plugins/jetpack/modules/custom-post-types/portfolios.php b/plugins/jetpack/modules/custom-post-types/portfolios.php
index e41728fc..2fda4bd7 100644
--- a/plugins/jetpack/modules/custom-post-types/portfolios.php
+++ b/plugins/jetpack/modules/custom-post-types/portfolios.php
@@ -35,7 +35,7 @@ class Jetpack_Portfolio {
// Make sure the post types are loaded for imports
add_action( 'import_start', array( $this, 'register_post_types' ) );
- // Add to REST API post type whitelist
+ // Add to REST API post type allowed list.
add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_portfolio_rest_api_type' ) );
$setting = Jetpack_Options::get_option_and_ensure_autoload( self::OPTION_NAME, '0' );
@@ -288,6 +288,8 @@ class Jetpack_Portfolio {
'wpcom-markdown',
'revisions',
'excerpt',
+ 'custom-fields',
+ 'newspack_blocks',
),
'rewrite' => array(
'slug' => 'portfolio',
@@ -541,7 +543,7 @@ class Jetpack_Portfolio {
}
/**
- * Add to REST API post type whitelist
+ * Add to REST API post type allowed list.
*/
function allow_portfolio_rest_api_type( $post_types ) {
$post_types[] = self::CUSTOM_POST_TYPE;
@@ -598,7 +600,7 @@ class Jetpack_Portfolio {
$atts['columns'] = absint( $atts['columns'] );
- $atts['showposts'] = intval( $atts['showposts'] );
+ $atts['showposts'] = (int) $atts['showposts'];
if ( $atts['order'] ) {
@@ -630,7 +632,9 @@ class Jetpack_Portfolio {
}
// enqueue shortcode styles when shortcode is used
- wp_enqueue_style( 'jetpack-portfolio-style', plugins_url( 'css/portfolio-shortcode.css', __FILE__ ), array(), '20140326' );
+ if ( ! wp_style_is( 'jetpack-portfolio-style', 'enqueued' ) ) {
+ wp_enqueue_style( 'jetpack-portfolio-style', plugins_url( 'css/portfolio-shortcode.css', __FILE__ ), array(), '20140326' );
+ }
return self::portfolio_shortcode_html( $atts );
}
diff --git a/plugins/jetpack/modules/custom-post-types/testimonial.php b/plugins/jetpack/modules/custom-post-types/testimonial.php
index 30b44a25..1e839c76 100644
--- a/plugins/jetpack/modules/custom-post-types/testimonial.php
+++ b/plugins/jetpack/modules/custom-post-types/testimonial.php
@@ -30,7 +30,7 @@ class Jetpack_Testimonial {
// If called via REST API, we need to register later in lifecycle
add_action( 'restapi_theme_init', array( $this, 'maybe_register_cpt' ) );
- // Add to REST API post type whitelist
+ // Add to REST API post type allowed list.
add_filter( 'rest_api_allowed_post_types', array( $this, 'allow_cpt_rest_api_type' ) );
$this->maybe_register_cpt();
@@ -72,8 +72,7 @@ class Jetpack_Testimonial {
add_action( 'customize_register', array( $this, 'customize_register' ) );
// Only add the 'Customize' sub-menu if the theme supports it.
- $num_testimonials = self::count_testimonials();
- if ( ! empty( $num_testimonials ) && current_theme_supports( self::CUSTOM_POST_TYPE ) ) {
+ if ( is_admin() && current_theme_supports( self::CUSTOM_POST_TYPE ) && ! empty( self::count_testimonials() ) ) {
add_action( 'admin_menu', array( $this, 'add_customize_page' ) );
}
@@ -185,7 +184,7 @@ class Jetpack_Testimonial {
}
/**
- * Add to REST API post type whitelist
+ * Add to REST API post type allowed list.
*/
function allow_cpt_rest_api_type( $post_types ) {
$post_types[] = self::CUSTOM_POST_TYPE;
@@ -315,6 +314,7 @@ class Jetpack_Testimonial {
'page-attributes',
'revisions',
'excerpt',
+ 'newspack_blocks',
),
'rewrite' => array(
'slug' => 'testimonial',
@@ -545,7 +545,7 @@ class Jetpack_Testimonial {
$atts['columns'] = absint( $atts['columns'] );
- $atts['showposts'] = intval( $atts['showposts'] );
+ $atts['showposts'] = (int) $atts['showposts'];
if ( $atts['order'] ) {
$atts['order'] = urldecode( $atts['order'] );
@@ -576,7 +576,9 @@ class Jetpack_Testimonial {
}
// enqueue shortcode styles when shortcode is used
- wp_enqueue_style( 'jetpack-testimonial-style', plugins_url( 'css/testimonial-shortcode.css', __FILE__ ), array(), '20140326' );
+ if ( ! wp_style_is( 'jetpack-testimonial-style', 'enqueued' ) ) {
+ wp_enqueue_style( 'jetpack-testimonial-style', plugins_url( 'css/testimonial-shortcode.css', __FILE__ ), array(), '20140326' );
+ }
return self::jetpack_testimonial_shortcode_html( $atts );
}
diff --git a/plugins/jetpack/modules/geo-location/class.jetpack-geo-location.php b/plugins/jetpack/modules/geo-location/class.jetpack-geo-location.php
index 7dcef493..c16ce422 100644
--- a/plugins/jetpack/modules/geo-location/class.jetpack-geo-location.php
+++ b/plugins/jetpack/modules/geo-location/class.jetpack-geo-location.php
@@ -376,7 +376,7 @@ class Jetpack_Geo_Location {
'is_public' => (bool) $this->sanitize_public( $this->get_meta_value( $post_id, 'public' ) ),
'latitude' => $this->sanitize_coordinate( $this->get_meta_value( $post_id, 'latitude' ) ),
'longitude' => $this->sanitize_coordinate( $this->get_meta_value( $post_id, 'longitude' ) ),
- 'label' => trim( $this->get_meta_value( $post_id, 'address' ) ),
+ 'label' => trim( (string) $this->get_meta_value( $post_id, 'address' ) ),
'is_populated' => false,
);
diff --git a/plugins/jetpack/modules/google-analytics.php b/plugins/jetpack/modules/google-analytics.php
index 21a42921..0a606327 100644
--- a/plugins/jetpack/modules/google-analytics.php
+++ b/plugins/jetpack/modules/google-analytics.php
@@ -9,7 +9,7 @@
* Auto Activate: No
* Feature: Engagement
* Additional Search Queries: webmaster, google, analytics, console
- * Plans: business, premium
+ * Plans: business, premium, security, complete
*/
include dirname( __FILE__ ) . "/google-analytics/wp-google-analytics.php";
diff --git a/plugins/jetpack/modules/google-analytics/classes/class-jetpack-google-amp-analytics.php b/plugins/jetpack/modules/google-analytics/classes/class-jetpack-google-amp-analytics.php
new file mode 100644
index 00000000..daa369b1
--- /dev/null
+++ b/plugins/jetpack/modules/google-analytics/classes/class-jetpack-google-amp-analytics.php
@@ -0,0 +1,154 @@
+<?php
+/**
+ * Add support for Google Analytics e-commerce events for AMP pages.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Bail if accessed directly
+ */
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Jetpack_Google_AMP_Analytics class.
+ */
+class Jetpack_Google_AMP_Analytics {
+ /**
+ * Constructor method.
+ */
+ public function __construct() {
+ $this->maybe_load_hooks();
+ }
+
+ /**
+ * Maybe load the hooks.
+ * Checks if its AMP request, if WooCommerce is available, if there's tracking code and in tracking is enabled.
+ */
+ public function maybe_load_hooks() {
+ if ( ! class_exists( 'Jetpack_AMP_Support' ) || ! Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
+ if ( ! class_exists( 'WooCommerce' ) ) {
+ return;
+ }
+
+ if ( ! Jetpack_Google_Analytics_Options::has_tracking_code() ) {
+ return;
+ }
+
+ if ( ! Jetpack_Google_Analytics_Options::track_add_to_cart_is_enabled() ) {
+ return;
+ }
+
+ add_action( 'woocommerce_add_to_cart', array( $this, 'amp_add_to_cart' ), 10, 6 );
+ add_action( 'woocommerce_thankyou', array( $this, 'amp_after_purchase' ), 10, 1 );
+ add_action( 'wp_footer', array( $this, 'amp_send_ga_events' ) );
+ }
+
+ /**
+ * Generate a GA event when adding an item to the cart.
+ *
+ * @param string $cart_item_key Cart item key.
+ * @param string $product_id Product ID.
+ * @param int $quantity Product quantity.
+ * @param int $variation_id Product variation ID.
+ * @param object $variation Product variation.
+ * @param object $cart_item_data Cart item data.
+ */
+ public function amp_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $product = wc_get_product( $product_id );
+ if ( $product ) {
+ $product_sku = Jetpack_Google_Analytics_Utils::get_product_sku_or_id( $product );
+ $product_name = $product->get_name();
+
+ $events = WC()->session->get( 'wc_ga_events' );
+ $events[] = array(
+ 'type' => 'add',
+ 'ga_params' => array(
+ 'pa' => 'add',
+ 'pr1id' => sanitize_text_field( $product_sku ),
+ 'pr1nm' => sanitize_text_field( $product_name ),
+ 'pr1qt' => absint( $quantity ),
+ ),
+ );
+ WC()->session->set( 'wc_ga_events', $events );
+ }
+ }
+
+ /**
+ * Generate a GA event when removing an item to the cart.
+ *
+ * @param int $order_id The Order ID.
+ */
+ public function amp_after_purchase( $order_id ) {
+ $events = WC()->session->get( 'wc_ga_events' );
+ $order = wc_get_order( $order_id );
+ $order_total = $order->get_total();
+ $order_tax = $order->get_total_tax();
+
+ $i = 1;
+ $event = array(
+ 'type' => 'purchase',
+ 'ga_params' => array(
+ 'pa' => 'purchase',
+ 'ti' => absint( $order_id ),
+ 'tr' => (float) $order_total,
+ 'tt' => (float) $order_tax,
+ ),
+ );
+ foreach ( $order->get_items() as $item ) {
+ $product = $item->get_product();
+ if ( $product ) {
+ $event['ga_params'][ 'pr' . $i . 'id' ] = sanitize_text_field( Jetpack_Google_Analytics_Utils::get_product_sku_or_id( $product ) );
+ $event['ga_params'][ 'pr' . $i . 'nm' ] = sanitize_text_field( $item->get_name() );
+ $event['ga_params'][ 'pr' . $i . 'qt' ] = absint( $item->get_quantity() );
+ $i++;
+ }
+ }
+
+ $events[] = $event;
+ WC()->session->set( 'wc_ga_events', $events );
+ }
+
+ /**
+ * Send the stored events to GA.
+ */
+ public function amp_send_ga_events() {
+ if ( 'GET' !== strtoupper( $_SERVER['REQUEST_METHOD'] ) ) {
+ return;
+ }
+
+ $events = WC()->session->get( 'wc_ga_events' );
+ if ( ! is_array( $events ) ) {
+ return;
+ }
+
+ foreach ( $events as $event ) {
+ ?>
+ <amp-analytics type='googleanalytics'>
+ <script type='application/json'>
+ {
+ "vars": {
+ "account": "<?php echo esc_html( Jetpack_Google_Analytics_Options::get_tracking_code() ); ?>"
+ },
+ "triggers": {
+ "trackPageview": {
+ "on": "visible",
+ "request": "pageview",
+ "extraUrlParams": <?php echo wp_json_encode( $event['ga_params'] ); ?>
+ }
+ }
+ }
+ </script>
+ </amp-analytics>
+ <?php
+
+ array_shift( $events );
+ }
+ WC()->session->set( 'wc_ga_events', $events );
+ }
+}
diff --git a/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-legacy.php b/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-legacy.php
index 5356e7f4..f78040b1 100644
--- a/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-legacy.php
+++ b/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-legacy.php
@@ -1,16 +1,16 @@
<?php
/**
-* Jetpack_Google_Analytics_Legacy hooks and enqueues support for ga.js
-* https://developers.google.com/analytics/devguides/collection/gajs/
-*
-* @author Aaron D. Campbell (original)
-* @author allendav
-*/
+ * Jetpack_Google_Analytics_Legacy hooks and enqueues support for ga.js
+ * https://developers.google.com/analytics/devguides/collection/gajs/
+ *
+ * @author Aaron D. Campbell (original)
+ * @author allendav
+ */
/**
-* Bail if accessed directly
-*/
+ * Bail if accessed directly
+ */
if ( ! defined( 'ABSPATH' ) ) {
exit;
}
@@ -19,7 +19,7 @@ class Jetpack_Google_Analytics_Legacy {
public function __construct() {
add_filter( 'jetpack_wga_classic_custom_vars', array( $this, 'jetpack_wga_classic_anonymize_ip' ) );
add_filter( 'jetpack_wga_classic_custom_vars', array( $this, 'jetpack_wga_classic_track_purchases' ) );
- add_action( 'wp_footer', array( $this, 'insert_code' ) );
+ add_action( 'wp_head', array( $this, 'insert_code' ), 999 );
add_action( 'wp_footer', array( $this, 'jetpack_wga_classic_track_add_to_cart' ) );
}
@@ -31,7 +31,7 @@ class Jetpack_Google_Analytics_Legacy {
* @return string - Tracking URL
*/
private function _get_url( $track ) {
- $site_url = ( is_ssl() ? 'https://':'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ); // Input var okay.
+ $site_url = ( is_ssl() ? 'https://' : 'http://' ) . sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ); // Input var okay.
foreach ( $track as $k => $value ) {
if ( strpos( strtolower( $value ), strtolower( $site_url ) ) === 0 ) {
$track[ $k ] = substr( $track[ $k ], strlen( $site_url ) );
@@ -55,7 +55,7 @@ class Jetpack_Google_Analytics_Legacy {
/**
* This injects the Google Analytics code into the footer of the page.
- * Called exclusively by wp_footer action
+ * Called exclusively by wp_head action
*/
public function insert_code() {
$tracking_id = Jetpack_Google_Analytics_Options::get_tracking_code();
@@ -69,6 +69,27 @@ class Jetpack_Google_Analytics_Legacy {
return;
}
+ if ( Jetpack_AMP_Support::is_amp_request() ) {
+ // For Reader mode — legacy.
+ add_filter( 'amp_post_template_analytics', 'Jetpack_Google_Analytics::amp_analytics_entries', 1000 );
+ // For Standard and Transitional modes.
+ add_filter( 'amp_analytics_entries', 'Jetpack_Google_Analytics::amp_analytics_entries', 1000 );
+ return;
+ }
+
+ if ( 'G-' === substr( $tracking_id, 0, 2 ) ) {
+ $this->render_gtag_code( $tracking_id );
+ } else {
+ $this->render_ga_code( $tracking_id );
+ }
+ }
+
+ /**
+ * Renders legacy ga.js code.
+ *
+ * @param string $tracking_id Google Analytics measurement ID.
+ */
+ private function render_ga_code( $tracking_id ) {
$custom_vars = array(
"_gaq.push(['_setAccount', '{$tracking_id}']);",
);
@@ -89,7 +110,7 @@ class Jetpack_Google_Analytics_Legacy {
if ( ! empty( $track ) ) {
$track['url'] = $this->_get_url( $track );
// adjust the code that we output, account for both types of tracking.
- $track['url'] = esc_js( str_replace( '&', '&amp;', $track['url'] ) );
+ $track['url'] = esc_js( str_replace( '&', '&amp;', $track['url'] ) );
$custom_vars[] = "_gaq.push(['_trackPageview','{$track['url']}']);";
} else {
$custom_vars[] = "_gaq.push(['_trackPageview']);";
@@ -115,14 +136,64 @@ class Jetpack_Google_Analytics_Legacy {
ga.src = ('https:' === document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- </script>\r\n",
+ </script>
+ <!-- End Jetpack Google Analytics -->\r\n",
implode( "\r\n", $custom_vars )
);
}
/**
+ * Renders new gtag code.
+ *
+ * @param string $tracking_id Google Analytics measurement ID.
+ */
+ private function render_gtag_code( $tracking_id ) {
+ /**
+ * Allow for additional elements to be added to the Global Site Tags array.
+ *
+ * @since 9.2.0
+ *
+ * @param array $universal_commands Array of gtag function calls.
+ */
+ $universal_commands = apply_filters( 'jetpack_gtag_universal_commands', array() );
+ $custom_vars = array();
+ if ( is_404() ) {
+ $custom_vars[] = array(
+ 'event',
+ 'exception',
+ array(
+ 'description' => '404',
+ 'fatal' => false,
+ ),
+ );
+ }
+ // phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedScript
+ ?>
+ <!-- Jetpack Google Analytics -->
+ <script async src='https://www.googletagmanager.com/gtag/js?id=<?php echo esc_attr( $tracking_id ); ?>'></script>
+ <script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag() { dataLayer.push( arguments ); }
+ gtag( 'js', new Date() );
+ gtag( 'config', <?php echo wp_json_encode( $tracking_id ); ?> );
+ <?php
+ foreach ( $universal_commands as $command ) {
+ echo 'gtag( ' . implode( ', ', array_map( 'wp_json_encode', $command ) ) . " );\n";
+ }
+ foreach ( $custom_vars as $var ) {
+ echo 'gtag( ' . implode( ', ', array_map( 'wp_json_encode', $var ) ) . " );\n";
+ }
+ ?>
+ </script>
+ <!-- End Jetpack Google Analytics -->
+ <?php
+ // phpcs:enable
+ }
+
+ /**
* Used to filter in the anonymize IP snippet to the custom vars array for classic analytics
* Ref https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gat#_gat._anonymizelp
+ *
* @param array custom vars to be filtered
* @return array possibly updated custom vars
*/
@@ -136,6 +207,7 @@ class Jetpack_Google_Analytics_Legacy {
/**
* Used to filter in the order details to the custom vars array for classic analytics
+ *
* @param array custom vars to be filtered
* @return array possibly updated custom vars
*/
@@ -165,7 +237,8 @@ class Jetpack_Google_Analytics_Legacy {
array_push(
$custom_vars,
sprintf(
- '_gaq.push( %s );', json_encode(
+ '_gaq.push( %s );',
+ json_encode(
array(
'_addTrans',
(string) $order->get_order_number(),
@@ -175,7 +248,7 @@ class Jetpack_Google_Analytics_Legacy {
(string) $order->get_total_shipping(),
(string) $order->get_billing_city(),
(string) $order->get_billing_state(),
- (string) $order->get_billing_country()
+ (string) $order->get_billing_country(),
)
)
)
@@ -184,13 +257,14 @@ class Jetpack_Google_Analytics_Legacy {
// Order items
if ( $order->get_items() ) {
foreach ( $order->get_items() as $item ) {
- $product = $order->get_product_from_item( $item );
+ $product = $order->get_product_from_item( $item );
$product_sku_or_id = $product->get_sku() ? $product->get_sku() : $product->get_id();
array_push(
$custom_vars,
sprintf(
- '_gaq.push( %s );', json_encode(
+ '_gaq.push( %s );',
+ json_encode(
array(
'_addItem',
(string) $order->get_order_number(),
@@ -198,7 +272,7 @@ class Jetpack_Google_Analytics_Legacy {
$item['name'],
Jetpack_Google_Analytics_Utils::get_product_categories_concatenated( $product ),
(string) $order->get_item_total( $item ),
- (string) $item['qty']
+ (string) $item['qty'],
)
)
)
@@ -234,13 +308,13 @@ class Jetpack_Google_Analytics_Legacy {
if ( is_product() ) { // product page
global $product;
- $product_sku_or_id = $product->get_sku() ? $product->get_sku() : "#" + $product->get_id();
+ $product_sku_or_id = $product->get_sku() ? $product->get_sku() : '#' + $product->get_id();
wc_enqueue_js(
"$( '.single_add_to_cart_button' ).click( function() {
_gaq.push(['_trackEvent', 'Products', 'Add to Cart', '#" . esc_js( $product_sku_or_id ) . "']);
} );"
);
- } else if ( is_woocommerce() ) { // any other page that uses templates (like product lists, archives, etc)
+ } elseif ( is_woocommerce() ) { // any other page that uses templates (like product lists, archives, etc)
wc_enqueue_js(
"$( '.add_to_cart_button:not(.product_type_variable, .product_type_grouped)' ).click( function() {
var label = $( this ).data( 'product_sku' ) ? $( this ).data( 'product_sku' ) : '#' + $( this ).data( 'product_id' );
diff --git a/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-universal.php b/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-universal.php
index 999fffbd..268f72ef 100644
--- a/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-universal.php
+++ b/plugins/jetpack/modules/google-analytics/classes/wp-google-analytics-universal.php
@@ -49,6 +49,14 @@ class Jetpack_Google_Analytics_Universal {
return;
}
+ if ( Jetpack_AMP_Support::is_amp_request() ) {
+ // For Reader mode — legacy.
+ add_filter( 'amp_post_template_analytics', 'Jetpack_Google_Analytics::amp_analytics_entries', 1000 );
+ // For Standard and Transitional modes.
+ add_filter( 'amp_analytics_entries', 'Jetpack_Google_Analytics::amp_analytics_entries', 1000 );
+ return;
+ }
+
/**
* Allow for additional elements to be added to the universal Google Analytics queue (ga) array
*
diff --git a/plugins/jetpack/modules/google-analytics/wp-google-analytics.php b/plugins/jetpack/modules/google-analytics/wp-google-analytics.php
index 5c8655bd..7915fb9b 100644
--- a/plugins/jetpack/modules/google-analytics/wp-google-analytics.php
+++ b/plugins/jetpack/modules/google-analytics/wp-google-analytics.php
@@ -31,6 +31,7 @@ require_once( plugin_basename( 'classes/wp-google-analytics-utils.php' ) );
require_once( plugin_basename( 'classes/wp-google-analytics-options.php' ) );
require_once( plugin_basename( 'classes/wp-google-analytics-legacy.php' ) );
require_once( plugin_basename( 'classes/wp-google-analytics-universal.php' ) );
+require_once plugin_basename( 'classes/class-jetpack-google-amp-analytics.php' );
class Jetpack_Google_Analytics {
@@ -53,11 +54,11 @@ class Jetpack_Google_Analytics {
// At this time, we only leverage universal analytics when enhanced ecommerce is selected and WooCommerce is active.
// Otherwise, don't bother emitting the tracking ID or fetching analytics.js
if ( class_exists( 'WooCommerce' ) && Jetpack_Google_Analytics_Options::enhanced_ecommerce_tracking_is_enabled() ) {
- $analytics = new Jetpack_Google_Analytics_Universal();
+ self::$analytics = new Jetpack_Google_Analytics_Universal();
+ new Jetpack_Google_AMP_Analytics();
} else {
- $analytics = new Jetpack_Google_Analytics_Legacy();
+ self::$analytics = new Jetpack_Google_Analytics_Legacy();
}
-
}
/**
@@ -70,6 +71,73 @@ class Jetpack_Google_Analytics {
return self::$instance;
}
+
+ /**
+ * Add amp-analytics tags.
+ *
+ * @param array $analytics_entries An associative array of the analytics entries.
+ *
+ * @return array
+ */
+ public static function amp_analytics_entries( $analytics_entries ) {
+ if ( ! is_array( $analytics_entries ) ) {
+ $analytics_entries = array();
+ }
+
+ $amp_tracking_codes = static::get_amp_tracking_codes( $analytics_entries );
+ $jetpack_account = Jetpack_Google_Analytics_Options::get_tracking_code();
+
+ // Bypass tracking codes already set on AMP plugin.
+ if ( in_array( $jetpack_account, $amp_tracking_codes, true ) ) {
+ return $analytics_entries;
+ }
+
+ $config_data = wp_json_encode(
+ array(
+ 'vars' => array(
+ 'account' => Jetpack_Google_Analytics_Options::get_tracking_code(),
+ ),
+ 'triggers' => array(
+ 'trackPageview' => array(
+ 'on' => 'visible',
+ 'request' => 'pageview',
+ ),
+ ),
+ )
+ );
+
+ // Generate a hash string to uniquely identify this entry.
+ $entry_id = substr( md5( 'googleanalytics' . $config_data ), 0, 12 );
+
+ $analytics_entries[ $entry_id ] = array(
+ 'type' => 'googleanalytics',
+ 'config' => $config_data,
+ );
+
+ return $analytics_entries;
+ }
+
+ /**
+ * Get AMP tracking codes.
+ *
+ * @param array $analytics_entries The codes available for AMP.
+ *
+ * @return array
+ */
+ protected static function get_amp_tracking_codes( $analytics_entries ) {
+ $entries = array_column( $analytics_entries, 'config' );
+ $accounts = array();
+
+ foreach ( $entries as $entry ) {
+ $entry = json_decode( $entry );
+
+ if ( ! empty( $entry->vars->account ) ) {
+ $accounts[] = $entry->vars->account;
+ }
+ }
+
+ return $accounts;
+ }
}
global $jetpack_google_analytics;
diff --git a/plugins/jetpack/modules/gravatar-hovercards.php b/plugins/jetpack/modules/gravatar-hovercards.php
index f3deea00..9e7bf1e8 100644
--- a/plugins/jetpack/modules/gravatar-hovercards.php
+++ b/plugins/jetpack/modules/gravatar-hovercards.php
@@ -12,7 +12,7 @@
* Additional Search Queries: gravatar, hovercards
*/
-define( 'GROFILES__CACHE_BUSTER', gmdate( 'YM' ) . 'aa' ); // Break CDN cache, increment when gravatar.com/js/gprofiles.js changes
+define( 'GROFILES__CACHE_BUSTER', gmdate( 'YW' ) );
function grofiles_hovercards_init() {
add_filter( 'get_avatar', 'grofiles_get_avatar', 10, 2 );
@@ -26,6 +26,8 @@ function grofiles_hovercards_init() {
add_action( 'load-options-discussion.php', 'grofiles_admin_cards_forced' );
add_filter( 'jetpack_module_configuration_url_gravatar-hovercards', 'gravatar_hovercards_configuration_url' );
+
+ add_filter( 'get_comment_author_url', 'grofiles_amp_comment_author_url', 10, 2 );
}
function gravatar_hovercards_configuration_url() {
@@ -129,6 +131,24 @@ function grofiles_gravatars_to_append( $author = null ) {
}
/**
+ * In AMP, override the comment URL to allow for interactivity without
+ * navigating to a new page
+ *
+ * @param string $url The comment author's URL.
+ * @param int $id The comment ID.
+ *
+ * @return string The adjusted URL
+ */
+function grofiles_amp_comment_author_url( $url, $id ) {
+ if ( 'comment' === get_comment_type( $id ) && class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ // @todo Disabling the comment author link in this way is not ideal since clicking the link does not cause the lightbox to open in the same way as clicking the gravatar. Likely get_comment_author_url_link should be used instead so that the href attribute can be replaced with an `on` attribute that activates the gallery.
+ return '#!';
+ }
+
+ return $url;
+}
+
+/**
* Stores the user ID or email address for each gravatar generated.
*
* Attached to the 'get_avatar' filter.
@@ -136,9 +156,11 @@ function grofiles_gravatars_to_append( $author = null ) {
* @param string $avatar The <img/> element of the avatar.
* @param mixed $author User ID, email address, user login, comment object, user object, post object
*
- * @return The <img/> element of the avatar.
+ * @return string The <img/> element of the avatar.
*/
function grofiles_get_avatar( $avatar, $author ) {
+ $is_amp = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+
if ( is_numeric( $author ) ) {
grofiles_gravatars_to_append( $author );
} else if ( is_string( $author ) ) {
@@ -149,6 +171,40 @@ function grofiles_get_avatar( $avatar, $author ) {
grofiles_gravatars_to_append( $user->ID );
}
} else if ( isset( $author->comment_type ) ) {
+ if ( $is_amp ) {
+ if ( 1 === preg_match( '/avatar\/([a-zA-Z0-9]+)\?/', $avatar, $email_hash ) ) {
+ $email_hash = $email_hash[1];
+ $cache_group = 'gravatar_profiles_';
+ $cache_key = 'gravatar_profile_' . $email_hash;
+
+ $response_body = wp_cache_get( $cache_key, $cache_group );
+ if ( false === $response_body ) {
+ $response = wp_remote_get( esc_url_raw( 'https://en.gravatar.com/' . $email_hash . '.json' ) );
+
+ if ( is_array( $response ) && ! is_wp_error( $response ) ) {
+ $response_body = json_decode( $response['body'] );
+ wp_cache_set( $cache_key, $response_body, $cache_group, 60 * MINUTE_IN_SECONDS );
+ }
+ }
+
+ $profile = $response_body->entry[0];
+ $display_name = $profile->displayName; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ $location = isset( $profile->currentLocation ) ? $profile->currentLocation : ''; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ $description = isset( $profile->aboutMe ) ? $profile->aboutMe : ''; // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+
+ $avatar = '
+ <figure data-amp-lightbox="true">
+ ' . $avatar . '
+ <figcaption>
+ ' . esc_html( $display_name ) . ( ! empty( $location ) ? ' – ' . esc_html( $location ) : '' ) . ( ! empty( $description ) ? ' – ' . esc_html( $description ) : '' ) . '
+ </figcaption>
+ </figure>
+ ';
+ }
+
+ return $avatar;
+ }
+
if ( '' != $author->comment_type && 'comment' != $author->comment_type )
return $avatar;
if ( $author->user_id )
@@ -182,17 +238,21 @@ function grofiles_attach_cards() {
return;
}
- wp_enqueue_script( 'grofiles-cards', 'https://secure.gravatar.com/js/gprofiles.js', array( 'jquery' ), GROFILES__CACHE_BUSTER, true );
- wp_enqueue_script( 'wpgroho', plugins_url( 'wpgroho.js', __FILE__ ), array( 'grofiles-cards' ), false, true );
- if ( is_user_logged_in() ) {
- $cu = wp_get_current_user();
- $my_hash = md5( $cu->user_email );
- } else if ( !empty( $_COOKIE['comment_author_email_' . COOKIEHASH] ) ) {
- $my_hash = md5( $_COOKIE['comment_author_email_' . COOKIEHASH] );
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ wp_enqueue_style( 'gravatar-hovercard-style', plugins_url( '/gravatar/gravatar-hovercards-amp.css', __FILE__ ), array(), JETPACK__VERSION );
} else {
- $my_hash = '';
+ wp_enqueue_script( 'grofiles-cards', 'https://secure.gravatar.com/js/gprofiles.js', array(), GROFILES__CACHE_BUSTER, true );
+ wp_enqueue_script( 'wpgroho', plugins_url( 'wpgroho.js', __FILE__ ), array( 'grofiles-cards' ), JETPACK__VERSION, true );
+ if ( is_user_logged_in() ) {
+ $cu = wp_get_current_user();
+ $my_hash = md5( $cu->user_email );
+ } elseif ( ! empty( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] ) ) {
+ $my_hash = md5( $_COOKIE[ 'comment_author_email_' . COOKIEHASH ] );
+ } else {
+ $my_hash = '';
+ }
+ wp_localize_script( 'wpgroho', 'WPGroHo', compact( 'my_hash' ) );
}
- wp_localize_script( 'wpgroho', 'WPGroHo', compact( 'my_hash' ) );
}
function grofiles_attach_cards_forced() {
@@ -213,14 +273,22 @@ function grofiles_admin_cards() {
}
function grofiles_extra_data() {
+ $authors = grofiles_gravatars_to_append();
+
+ if ( ! $authors ) {
+ wp_dequeue_script( 'grofiles-cards' );
+ wp_dequeue_script( 'wpgroho' );
+ } else {
?>
<div style="display:none">
<?php
- foreach ( grofiles_gravatars_to_append() as $author )
- grofiles_hovercards_data_html( $author );
+ foreach ( $authors as $author ) {
+ grofiles_hovercards_data_html( $author );
+ }
?>
</div>
<?php
+ }
}
/**
diff --git a/plugins/jetpack/modules/gravatar/gravatar-hovercards-amp.css b/plugins/jetpack/modules/gravatar/gravatar-hovercards-amp.css
new file mode 100644
index 00000000..323be628
--- /dev/null
+++ b/plugins/jetpack/modules/gravatar/gravatar-hovercards-amp.css
@@ -0,0 +1,3 @@
+.comment-author figcaption {
+ display: none;
+}
diff --git a/plugins/jetpack/modules/infinite-scroll.php b/plugins/jetpack/modules/infinite-scroll.php
index 27500718..7674217f 100644
--- a/plugins/jetpack/modules/infinite-scroll.php
+++ b/plugins/jetpack/modules/infinite-scroll.php
@@ -215,23 +215,6 @@ class Jetpack_Infinite_Scroll_Extras {
if ( Jetpack::is_module_active( 'tiled-gallery' ) ) {
Jetpack_Tiled_Gallery::default_scripts_and_styles();
}
-
- // Core's Audio and Video Shortcodes
- if (
- /** This filter is already documented in core/wp-includes/media.php */
- 'mediaelement' === apply_filters( 'wp_audio_shortcode_library', 'mediaelement' )
- ) {
- wp_enqueue_style( 'wp-mediaelement' );
- wp_enqueue_script( 'wp-mediaelement' );
- }
-
- if (
- /** This filter is already documented in core/wp-includes/media.php */
- 'mediaelement' === apply_filters( 'wp_video_shortcode_library', 'mediaelement' )
- ) {
- wp_enqueue_style( 'wp-mediaelement' );
- wp_enqueue_script( 'wp-mediaelement' );
- }
}
}
Jetpack_Infinite_Scroll_Extras::instance();
diff --git a/plugins/jetpack/modules/infinite-scroll/infinity-customizer.js b/plugins/jetpack/modules/infinite-scroll/infinity-customizer.js
new file mode 100644
index 00000000..9d5937b1
--- /dev/null
+++ b/plugins/jetpack/modules/infinite-scroll/infinity-customizer.js
@@ -0,0 +1,54 @@
+/* globals wp */
+( function ( $ ) {
+ /**
+ * Ready, set, go!
+ */
+ $( document ).ready( function () {
+ // Integrate with Selective Refresh in the Customizer.
+ if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) {
+ /**
+ * Handle rendering of selective refresh partials.
+ *
+ * Make sure that when a partial is rendered, the Jetpack post-load event
+ * will be triggered so that any dynamic elements will be re-constructed,
+ * such as ME.js elements, Photon replacements, social sharing, and more.
+ * Note that this is applying here not strictly to posts being loaded.
+ * If a widget contains a ME.js element and it is previewed via selective
+ * refresh, the post-load would get triggered allowing any dynamic elements
+ * therein to also be re-constructed.
+ *
+ * @param {wp.customize.selectiveRefresh.Placement} placement
+ */
+ wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
+ var content;
+ if ( 'string' === typeof placement.addedContent ) {
+ content = placement.addedContent;
+ } else if ( placement.container ) {
+ content = $( placement.container ).html();
+ }
+
+ if ( content ) {
+ $( document.body ).trigger( 'post-load', { html: content } );
+ }
+ } );
+
+ /*
+ * Add partials for posts added via infinite scroll.
+ *
+ * This is unnecessary when MutationObserver is supported by the browser
+ * since then this will be handled by Selective Refresh in core.
+ */
+ if ( 'undefined' === typeof MutationObserver ) {
+ $( document.body ).on( 'post-load', function ( e, response ) {
+ var rootElement = null;
+ if ( response.html && -1 !== response.html.indexOf( 'data-customize-partial' ) ) {
+ if ( window.infiniteScroll.settings.id ) {
+ rootElement = $( '#' + window.infiniteScroll.settings.id );
+ }
+ wp.customize.selectiveRefresh.addPartials( rootElement );
+ }
+ } );
+ }
+ }
+ } );
+} )( jQuery ); // Close closure
diff --git a/plugins/jetpack/modules/infinite-scroll/infinity.css b/plugins/jetpack/modules/infinite-scroll/infinity.css
index 4c84e294..8b4dec2e 100644
--- a/plugins/jetpack/modules/infinite-scroll/infinity.css
+++ b/plugins/jetpack/modules/infinite-scroll/infinity.css
@@ -1,24 +1,120 @@
/* =Infinity Styles
-------------------------------------------------------------- */
-.infinite-wrap {
-}
.infinite-loader {
color: #000;
display: block;
height: 28px;
- text-indent: -9999px;
+ text-align: center;
}
#infinite-handle span {
background: #333;
border-radius: 1px;
- color: #eee;
+ color: #f0f0f1;
cursor: pointer;
font-size: 13px;
padding: 6px 16px;
}
/**
+ * CSS Spinner Styles
+ */
+@keyframes spinner-inner {
+ 0% { opacity: 1 }
+ 100% { opacity: 0 }
+}
+.infinite-loader .spinner-inner div {
+ left: 47px;
+ top: 24px;
+ position: absolute;
+ animation: spinner-inner linear 1s infinite;
+ background: #000000;
+ outline: 1px solid white;
+ width: 6px;
+ height: 12px;
+ border-radius: 3px / 6px;
+ transform-origin: 3px 26px;
+}
+.infinite-loader .spinner-inner div:nth-child(1) {
+ transform: rotate(0deg);
+ animation-delay: -0.9166666666666666s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(2) {
+ transform: rotate(30deg);
+ animation-delay: -0.8333333333333334s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(3) {
+ transform: rotate(60deg);
+ animation-delay: -0.75s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(4) {
+ transform: rotate(90deg);
+ animation-delay: -0.6666666666666666s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(5) {
+ transform: rotate(120deg);
+ animation-delay: -0.5833333333333334s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(6) {
+ transform: rotate(150deg);
+ animation-delay: -0.5s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(7) {
+ transform: rotate(180deg);
+ animation-delay: -0.4166666666666667s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(8) {
+ transform: rotate(210deg);
+ animation-delay: -0.3333333333333333s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(9) {
+ transform: rotate(240deg);
+ animation-delay: -0.25s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(10) {
+ transform: rotate(270deg);
+ animation-delay: -0.16666666666666666s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(11) {
+ transform: rotate(300deg);
+ animation-delay: -0.08333333333333333s;
+ background: #000000;
+}
+.infinite-loader .spinner-inner div:nth-child(12) {
+ transform: rotate(330deg);
+ animation-delay: 0s;
+ background: #000000;
+}
+.infinite-loader .spinner {
+ width: 28px;
+ height: 28px;
+ display: inline-block;
+ overflow: hidden;
+ background: none;
+}
+.infinite-loader .spinner-inner {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ transform: translateZ(0) scale(0.28);
+ backface-visibility: hidden;
+ transform-origin: 0 0; /* see note above */
+}
+.infinite-loader .spinner-inner div {
+ box-sizing: content-box;
+}
+
+/**
* Using a highly-specific rule to make sure that all button styles
* will be reset
*/
@@ -122,7 +218,7 @@
text-align: right;
}
#infinite-footer .blog-credits a {
- color: #666;
+ color: #646970;
}
/**
@@ -161,4 +257,22 @@
#infinite-footer {
position: static;
}
-} \ No newline at end of file
+}
+
+/**
+ * Hide infinite aria feedback visually
+ */
+#infinite-aria {
+ position: absolute;
+ overflow: hidden;
+ clip: rect(0 0 0 0);
+ height: 1px; width: 1px;
+ margin: -1px; padding: 0; border: 0;
+}
+
+/**
+ * Hide focus on infinite wrappers
+ */
+.infinite-wrap:focus {
+ outline: 0 !important;
+}
diff --git a/plugins/jetpack/modules/infinite-scroll/infinity.js b/plugins/jetpack/modules/infinite-scroll/infinity.js
index 24dd413e..01d83d07 100644
--- a/plugins/jetpack/modules/infinite-scroll/infinity.js
+++ b/plugins/jetpack/modules/infinite-scroll/infinity.js
@@ -1,8 +1,8 @@
-/* globals infiniteScroll, _wpmejsSettings, ga, _gaq, WPCOM_sharing_counts */
-( function( $ ) {
- // Open closure
- // Local vars
- var Scroller, ajaxurl, stats, type, text, totop;
+/* globals infiniteScroll, _wpmejsSettings, ga, _gaq, WPCOM_sharing_counts, MediaElementPlayer */
+( function () {
+ // Open closure.
+ // Local vars.
+ var Scroller, ajaxurl, stats, type, text, totop, loading_text;
// IE requires special handling
var isIE = -1 != navigator.userAgent.search( 'MSIE' );
@@ -22,14 +22,14 @@
/**
* Loads new posts when users scroll near the bottom of the page.
*/
- Scroller = function( settings ) {
+ Scroller = function ( settings ) {
var self = this;
// Initialize our variables
this.id = settings.id;
- this.body = $( document.body );
- this.window = $( window );
- this.element = $( '#' + settings.id );
+ this.body = document.body;
+ this.window = window;
+ this.element = document.getElementById( settings.id );
this.wrapperClass = settings.wrapper_class;
this.ready = true;
this.disabled = false;
@@ -38,19 +38,24 @@
this.currentday = settings.currentday;
this.order = settings.order;
this.throttle = false;
- this.handle =
- '<div id="infinite-handle"><span><button>' +
- text.replace( '\\', '' ) +
- '</button></span></div>';
this.click_handle = settings.click_handle;
this.google_analytics = settings.google_analytics;
this.history = settings.history;
this.origURL = window.location.href;
- this.pageCache = {};
+
+ // Handle element
+ this.handle = document.createElement( 'div' );
+ this.handle.setAttribute( 'id', 'infinite-handle' );
+ this.handle.innerHTML = '<span><button>' + text.replace( '\\', '' ) + '</button></span>';
// Footer settings
- this.footer = $( '#infinite-footer' );
- this.footer.wrap = settings.footer;
+ this.footer = {
+ el: document.getElementById( 'infinite-footer' ),
+ wrap: settings.footer,
+ };
+
+ // Bind methods used as callbacks
+ this.checkViewportOnLoadBound = self.checkViewportOnLoad.bind( this );
// Core's native MediaElement.js implementation needs special handling
this.wpMediaelement = null;
@@ -63,17 +68,17 @@
// Throttle to check for such case every 300ms
// On event the case becomes a fact
- this.window.bind( 'scroll.infinity', function() {
- this.throttle = true;
+ this.window.addEventListener( 'scroll', function () {
+ self.throttle = true;
} );
// Go back top method
self.gotop();
- setInterval( function() {
- if ( this.throttle ) {
+ setInterval( function () {
+ if ( self.throttle ) {
// Once the case is the case, the action occurs and the fact is no more
- this.throttle = false;
+ self.throttle = false;
// Reveal or hide footer
self.thefooter();
// Fire the refresh
@@ -84,16 +89,16 @@
// Ensure that enough posts are loaded to fill the initial viewport, to compensate for short posts and large displays.
self.ensureFilledViewport();
- this.body.bind( 'post-load', { self: self }, self.checkViewportOnLoad );
+ this.body.addEventListener( 'is.post-load', self.checkViewportOnLoadBound );
} else if ( type == 'click' ) {
if ( this.click_handle ) {
- this.element.append( this.handle );
+ this.element.appendChild( this.handle );
}
- this.body.delegate( '#infinite-handle', 'click.infinity', function() {
+ this.handle.addEventListener( 'click', function () {
// Handle the handle
if ( self.click_handle ) {
- $( '#infinite-handle' ).remove();
+ self.handle.parentNode.removeChild( self.handle );
}
// Fire the refresh
@@ -102,42 +107,71 @@
}
// Initialize any Core audio or video players loaded via IS
- this.body.bind( 'post-load', { self: self }, self.initializeMejs );
+ this.body.addEventListener( 'is.post-load', self.initializeMejs );
};
/**
- * Check whether we should fetch any additional posts.
+ * Normalize the access to the document scrollTop value.
+ */
+ Scroller.prototype.getScrollTop = function () {
+ return window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
+ };
+
+ /**
+ * Polyfill jQuery.extend.
*/
- Scroller.prototype.check = function() {
- var container = this.element.offset();
+ Scroller.prototype.extend = function ( out ) {
+ out = out || {};
+
+ for ( var i = 1; i < arguments.length; i++ ) {
+ if ( ! arguments[ i ] ) {
+ continue;
+ }
- // If the container can't be found, stop otherwise errors result
- if ( 'object' !== typeof container ) {
- return false;
+ for ( var key in arguments[ i ] ) {
+ if ( arguments[ i ].hasOwnProperty( key ) ) {
+ out[ key ] = arguments[ i ][ key ];
+ }
+ }
}
+ return out;
+ };
- var bottom = this.window.scrollTop() + this.window.height(),
- threshold = container.top + this.element.outerHeight( false ) - this.window.height() * 2;
+ /**
+ * Check whether we should fetch any additional posts.
+ */
+ Scroller.prototype.check = function () {
+ var wrapperMeasurements = this.measure( this.element, [ this.wrapperClass ] );
- return bottom > threshold;
+ // Fetch more posts when we're less than 2 screens away from the bottom.
+ return wrapperMeasurements.bottom < 2 * this.window.innerHeight;
};
/**
* Renders the results from a successful response.
*/
- Scroller.prototype.render = function( response ) {
- this.body.addClass( 'infinity-success' );
+ Scroller.prototype.render = function ( response ) {
+ var childrenToAppend = Array.prototype.slice.call( response.fragment.childNodes );
+ this.body.classList.add( 'infinity-success' );
+
+ // Render the retrieved nodes.
+ while ( childrenToAppend.length > 0 ) {
+ var currentNode = childrenToAppend.shift();
+ this.element.appendChild( currentNode );
+ }
+
+ this.trigger( this.body, 'is.post-load', {
+ jqueryEventName: 'post-load',
+ data: response,
+ } );
- // Check if we can wrap the html
- this.element.append( response.html );
- this.body.trigger( 'post-load', response );
this.ready = true;
};
/**
* Returns the object used to query for new posts.
*/
- Scroller.prototype.query = function() {
+ Scroller.prototype.query = function () {
return {
page: this.page + this.offset, // Load the next page.
currentday: this.currentday,
@@ -150,56 +184,127 @@
};
};
+ Scroller.prototype.animate = function ( cb, duration ) {
+ var start = performance.now();
+
+ requestAnimationFrame( function animate( time ) {
+ var timeFraction = Math.min( 1, ( time - start ) / duration );
+ cb( timeFraction );
+
+ if ( timeFraction < 1 ) {
+ requestAnimationFrame( animate );
+ }
+ } );
+ };
+
/**
* Scroll back to top.
*/
- Scroller.prototype.gotop = function() {
- var blog = $( '#infinity-blog-title' );
+ Scroller.prototype.gotop = function () {
+ var blog = document.getElementById( 'infinity-blog-title' );
+ var self = this;
- blog.attr( 'title', totop );
+ if ( ! blog ) {
+ return;
+ }
- // Scroll to top on blog title
- blog.bind( 'click', function( e ) {
- $( 'html, body' ).animate( { scrollTop: 0 }, 'fast' );
+ blog.setAttribute( 'title', totop );
+ blog.addEventListener( 'click', function ( e ) {
+ var sourceScroll = self.window.pageYOffset;
e.preventDefault();
+
+ self.animate( function ( progress ) {
+ var currentScroll = sourceScroll - sourceScroll * progress;
+ document.documentElement.scrollTop = document.body.scrollTop = currentScroll;
+ }, 200 );
} );
};
/**
* The infinite footer.
*/
- Scroller.prototype.thefooter = function() {
+ Scroller.prototype.thefooter = function () {
var self = this,
- width;
+ pageWrapper,
+ footerContainer,
+ width,
+ sourceBottom,
+ targetBottom,
+ footerEnabled = this.footer && this.footer.el;
+
+ if ( ! footerEnabled ) {
+ return;
+ }
// Check if we have an id for the page wrapper
- if ( $.type( this.footer.wrap ) === 'string' ) {
- width = $( 'body #' + this.footer.wrap ).outerWidth( false );
+ if ( 'string' === typeof this.footer.wrap ) {
+ try {
+ pageWrapper = document.getElementById( this.footer.wrap );
+ width = pageWrapper.getBoundingClientRect();
+ width = width.width;
+ } catch ( err ) {
+ width = 0;
+ }
// Make the footer match the width of the page
if ( width > 479 ) {
- this.footer.find( '.container' ).css( 'width', width );
+ footerContainer = this.footer.el.querySelector( '.container' );
+ if ( footerContainer ) {
+ footerContainer.style.width = width + 'px';
+ }
}
}
// Reveal footer
- if ( this.window.scrollTop() >= 350 ) {
- self.footer.animate( { bottom: 0 }, 'fast' );
- } else if ( this.window.scrollTop() < 350 ) {
- self.footer.animate( { bottom: '-50px' }, 'fast' );
+ sourceBottom = parseInt( self.footer.el.style.bottom || -50, 10 );
+ targetBottom = this.window.pageYOffset >= 350 ? 0 : -50;
+
+ if ( sourceBottom !== targetBottom ) {
+ self.animate( function ( progress ) {
+ var currentBottom = sourceBottom + ( targetBottom - sourceBottom ) * progress;
+ self.footer.el.style.bottom = currentBottom + 'px';
+
+ if ( 1 === progress ) {
+ sourceBottom = targetBottom;
+ }
+ }, 200 );
+ }
+ };
+
+ /**
+ * Recursively convert a JS object into URL encoded data.
+ */
+ Scroller.prototype.urlEncodeJSON = function ( obj, prefix ) {
+ var params = [],
+ encodedKey,
+ newPrefix;
+
+ for ( var key in obj ) {
+ encodedKey = encodeURIComponent( key );
+ newPrefix = prefix ? prefix + '[' + encodedKey + ']' : encodedKey;
+
+ if ( 'object' === typeof obj[ key ] ) {
+ if ( ! Array.isArray( obj[ key ] ) || obj[ key ].length > 0 ) {
+ params.push( this.urlEncodeJSON( obj[ key ], newPrefix ) );
+ } else {
+ // Explicitly expose empty arrays with no values
+ params.push( newPrefix + '[]=' );
+ }
+ } else {
+ params.push( newPrefix + '=' + encodeURIComponent( obj[ key ] ) );
+ }
}
+ return params.join( '&' );
};
/**
* Controls the flow of the refresh. Don't mess.
*/
- Scroller.prototype.refresh = function() {
+ Scroller.prototype.refresh = function () {
var self = this,
query,
- jqxhr,
- load,
+ xhr,
loader,
- color,
customized;
// If we're disabled, ready, or don't pass the check, bail.
@@ -213,19 +318,19 @@
// Create a loader element to show it's working.
if ( this.click_handle ) {
- loader = '<span class="infinite-loader"></span>';
- this.element.append( loader );
-
- loader = this.element.find( '.infinite-loader' );
- color = loader.css( 'color' );
-
- try {
- loader.spin( 'medium-left', color );
- } catch ( error ) {}
+ if ( ! loader ) {
+ document.getElementById( 'infinite-aria' ).textContent = loading_text;
+ loader = document.createElement( 'div' );
+ loader.classList.add( 'infinite-loader' );
+ loader.setAttribute( 'role', 'progress' );
+ loader.innerHTML =
+ '<div class="spinner"><div class="spinner-inner"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>';
+ }
+ this.element.appendChild( loader );
}
// Generate our query vars.
- query = $.extend(
+ query = self.extend(
{
action: 'infinite_scroll',
},
@@ -237,7 +342,7 @@
customized = {};
query.wp_customize = 'on';
query.theme = wp.customize.settings.theme.stylesheet;
- wp.customize.each( function( setting ) {
+ wp.customize.each( function ( setting ) {
if ( setting._dirty ) {
customized[ setting.id ] = setting();
}
@@ -247,179 +352,227 @@
}
// Fire the ajax request.
- jqxhr = $.post( infiniteScroll.settings.ajaxurl, query );
+ xhr = new XMLHttpRequest();
+ xhr.open( 'POST', infiniteScroll.settings.ajaxurl, true );
+ xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
+ xhr.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8' );
+ xhr.send( self.urlEncodeJSON( query ) );
// Allow refreshes to occur again if an error is triggered.
- jqxhr.fail( function() {
+ xhr.onerror = function () {
if ( self.click_handle ) {
- loader.hide();
+ loader.parentNode.removeChild( loader );
}
self.ready = true;
- } );
+ };
// Success handler
- jqxhr.done( function( response ) {
+ xhr.onload = function () {
+ var response = JSON.parse( xhr.responseText ),
+ httpCheck = xhr.status >= 200 && xhr.status < 300,
+ responseCheck = 'undefined' !== typeof response.html;
+
+ if ( ! response || ! httpCheck || ! responseCheck ) {
+ if ( self.click_handle ) {
+ loader.parentNode.removeChild( loader );
+ }
+ return;
+ }
+
// On success, let's hide the loader circle.
if ( self.click_handle ) {
- loader.hide();
+ loader.parentNode.removeChild( loader );
}
- // Check for and parse our response.
- if ( ! response || ! response.type ) {
- return;
- }
+ // If additional scripts are required by the incoming set of posts, parse them
+ if ( response.scripts && Array.isArray( response.scripts ) ) {
+ response.scripts.forEach( function ( item ) {
+ var elementToAppendTo = item.footer ? 'body' : 'head';
- // If we've succeeded...
- if ( response.type == 'success' ) {
- // If additional scripts are required by the incoming set of posts, parse them
- if ( response.scripts ) {
- $( response.scripts ).each( function() {
- var elementToAppendTo = this.footer ? 'body' : 'head';
-
- // Add script handle to list of those already parsed
- window.infiniteScroll.settings.scripts.push( this.handle );
-
- // Output extra data, if present
- if ( this.extra_data ) {
- var data = document.createElement( 'script' ),
- dataContent = document.createTextNode(
- '//<![CDATA[ \n' + this.extra_data + '\n//]]>'
- );
-
- data.type = 'text/javascript';
- data.appendChild( dataContent );
-
- document.getElementsByTagName( elementToAppendTo )[ 0 ].appendChild( data );
- }
-
- // Build script tag and append to DOM in requested location
- var script = document.createElement( 'script' );
- script.type = 'text/javascript';
- script.src = this.src;
- script.id = this.handle;
-
- // If MediaElement.js is loaded in by this set of posts, don't initialize the players a second time as it breaks them all
- if ( 'wp-mediaelement' === this.handle ) {
- self.body.unbind( 'post-load', self.initializeMejs );
- }
-
- if ( 'wp-mediaelement' === this.handle && 'undefined' === typeof mejs ) {
- self.wpMediaelement = {};
- self.wpMediaelement.tag = script;
- self.wpMediaelement.element = elementToAppendTo;
- setTimeout( self.maybeLoadMejs.bind( self ), 250 );
- } else {
- document.getElementsByTagName( elementToAppendTo )[ 0 ].appendChild( script );
- }
- } );
- }
+ // Add script handle to list of those already parsed
+ window.infiniteScroll.settings.scripts.push( item.handle );
- // If additional stylesheets are required by the incoming set of posts, parse them
- if ( response.styles ) {
- $( response.styles ).each( function() {
- // Add stylesheet handle to list of those already parsed
- window.infiniteScroll.settings.styles.push( this.handle );
-
- // Build link tag
- var style = document.createElement( 'link' );
- style.rel = 'stylesheet';
- style.href = this.src;
- style.id = this.handle + '-css';
-
- // Destroy link tag if a conditional statement is present and either the browser isn't IE, or the conditional doesn't evaluate true
- if (
- this.conditional &&
- ( ! isIE || ! eval( this.conditional.replace( /%ver/g, IEVersion ) ) )
- ) {
- style = false;
- }
-
- // Append link tag if necessary
- if ( style ) {
- document.getElementsByTagName( 'head' )[ 0 ].appendChild( style );
- }
- } );
- }
+ // Output extra data, if present
+ if ( item.extra_data ) {
+ self.appendInlineScript( item.extra_data, elementToAppendTo );
+ }
- // stash the response in the page cache
- self.pageCache[ self.page + self.offset ] = response;
+ if ( item.before_handle ) {
+ self.appendInlineScript( item.before_handle, elementToAppendTo );
+ }
- // Increment the page number
- self.page++;
+ // Build script tag and append to DOM in requested location
+ var script = document.createElement( 'script' );
+ script.type = 'text/javascript';
+ script.src = item.src;
+ script.id = item.handle;
- // Record pageview in WP Stats, if available.
- if ( stats ) {
- new Image().src =
- document.location.protocol +
- '//pixel.wp.com/g.gif?' +
- stats +
- '&post=0&baba=' +
- Math.random();
- }
+ // Dynamically loaded scripts are async by default.
+ // We don't want that, it breaks stuff, e.g. wp-mediaelement init.
+ script.async = false;
- // Add new posts to the postflair object
- if ( 'object' === typeof response.postflair && 'object' === typeof WPCOM_sharing_counts ) {
- WPCOM_sharing_counts = $.extend( WPCOM_sharing_counts, response.postflair ); // eslint-disable-line no-global-assign
- }
+ if ( item.after_handle ) {
+ script.onload = function () {
+ self.appendInlineScript( item.after_handle, elementToAppendTo );
+ };
+ }
- // Render the results
- self.render.apply( self, arguments );
-
- // If 'click' type and there are still posts to fetch, add back the handle
- if ( type == 'click' ) {
- if ( response.lastbatch ) {
- if ( self.click_handle ) {
- $( '#infinite-handle' ).remove();
- // Update body classes
- self.body.addClass( 'infinity-end' ).removeClass( 'infinity-success' );
- } else {
- self.body.trigger( 'infinite-scroll-posts-end' );
- }
+ // If MediaElement.js is loaded in by item set of posts, don't initialize the players a second time as it breaks them all
+ if ( 'wp-mediaelement' === item.handle ) {
+ self.body.removeEventListener( 'is.post-load', self.initializeMejs );
+ }
+
+ if ( 'wp-mediaelement' === item.handle && 'undefined' === typeof mejs ) {
+ self.wpMediaelement = {};
+ self.wpMediaelement.tag = script;
+ self.wpMediaelement.element = elementToAppendTo;
+ setTimeout( self.maybeLoadMejs.bind( self ), 250 );
} else {
- if ( self.click_handle ) {
- self.element.append( self.handle );
- } else {
- self.body.trigger( 'infinite-scroll-posts-more' );
- }
+ document.getElementsByTagName( elementToAppendTo )[ 0 ].appendChild( script );
}
- } else if ( response.lastbatch ) {
- self.disabled = true;
- self.body.addClass( 'infinity-end' ).removeClass( 'infinity-success' );
- }
+ } );
+ }
+
+ // If additional stylesheets are required by the incoming set of posts, parse them
+ if ( response.styles && Array.isArray( response.styles ) ) {
+ response.styles.forEach( function ( item ) {
+ // Add stylesheet handle to list of those already parsed
+ window.infiniteScroll.settings.styles.push( item.handle );
+
+ // Build link tag
+ var style = document.createElement( 'link' );
+ style.rel = 'stylesheet';
+ style.href = item.src;
+ style.id = item.handle + '-css';
+
+ // Destroy link tag if a conditional statement is present and either the browser isn't IE, or the conditional doesn't evaluate true
+ if (
+ item.conditional &&
+ ( ! isIE || ! eval( item.conditional.replace( /%ver/g, IEVersion ) ) )
+ ) {
+ style = false;
+ }
+
+ // Append link tag if necessary
+ if ( style ) {
+ document.getElementsByTagName( 'head' )[ 0 ].appendChild( style );
+ }
+ } );
+ }
+
+ // Convert the response.html to a fragment element.
+ // Using a div instead of DocumentFragment, because the latter doesn't support innerHTML.
+ response.fragment = document.createElement( 'div' );
+ response.fragment.innerHTML = response.html;
+
+ // Increment the page number
+ self.page++;
+
+ // Record pageview in WP Stats, if available.
+ if ( stats ) {
+ new Image().src =
+ document.location.protocol +
+ '//pixel.wp.com/g.gif?' +
+ stats +
+ '&post=0&baba=' +
+ Math.random();
+ }
+
+ // Add new posts to the postflair object
+ if ( 'object' === typeof response.postflair && 'object' === typeof WPCOM_sharing_counts ) {
+ WPCOM_sharing_counts = self.extend( WPCOM_sharing_counts, response.postflair ); // eslint-disable-line no-global-assign
+ }
- // Update currentday to the latest value returned from the server
- if ( response.currentday ) {
- self.currentday = response.currentday;
+ // Render the results
+ self.render.call( self, response );
+
+ // If 'click' type and there are still posts to fetch, add back the handle
+ if ( type == 'click' ) {
+ // add focus to new posts, only in button mode as we know where page focus currently is and only if we have a wrapper
+ if ( infiniteScroll.settings.wrapper ) {
+ document
+ .querySelector(
+ '#infinite-view-' + ( self.page + self.offset - 1 ) + ' a:first-of-type'
+ )
+ .focus( {
+ preventScroll: true,
+ } );
}
- // Fire Google Analytics pageview
- if ( self.google_analytics ) {
- var ga_url = self.history.path.replace( /%d/, self.page );
- if ( 'object' === typeof _gaq ) {
- _gaq.push( [ '_trackPageview', ga_url ] );
+ if ( response.lastbatch ) {
+ if ( self.click_handle ) {
+ // Update body classes
+ self.body.classList.add( 'infinity-end' );
+ self.body.classList.remove( 'infinity-success' );
+ } else {
+ self.trigger( this.body, 'infinite-scroll-posts-end' );
}
- if ( 'function' === typeof ga ) {
- ga( 'send', 'pageview', ga_url );
+ } else {
+ if ( self.click_handle ) {
+ self.element.appendChild( self.handle );
+ } else {
+ self.trigger( this.body, 'infinite-scroll-posts-more' );
}
}
+ } else if ( response.lastbatch ) {
+ self.disabled = true;
+
+ self.body.classList.add( 'infinity-end' );
+ self.body.classList.remove( 'infinity-success' );
+ }
+
+ // Update currentday to the latest value returned from the server
+ if ( response.currentday ) {
+ self.currentday = response.currentday;
+ }
+
+ // Fire Google Analytics pageview
+ if ( self.google_analytics ) {
+ var ga_url = self.history.path.replace( /%d/, self.page );
+ if ( 'object' === typeof _gaq ) {
+ _gaq.push( [ '_trackPageview', ga_url ] );
+ }
+ if ( 'function' === typeof ga ) {
+ ga( 'send', 'pageview', ga_url );
+ }
}
- } );
+ };
- return jqxhr;
+ return xhr;
+ };
+
+ /**
+ * Given JavaScript blob and the name of a parent tag, this helper function will
+ * generate a script tag, insert the JavaScript blob, and append it to the parent.
+ *
+ * It's important to note that the JavaScript blob will be evaluated immediately. If
+ * you need a parent script to load first, use that script element's onload handler.
+ *
+ * @param {string} script The blob of JavaScript to run.
+ * @param {string} parentTag The tag name of the parent element.
+ */
+ Scroller.prototype.appendInlineScript = function ( script, parentTag ) {
+ var element = document.createElement( 'script' ),
+ scriptContent = document.createTextNode( '//<![CDATA[ \n' + script + '\n//]]>' );
+
+ element.type = 'text/javascript';
+ element.appendChild( scriptContent );
+
+ document.getElementsByTagName( parentTag )[ 0 ].appendChild( element );
};
/**
* Core's native media player uses MediaElement.js
* The library's size is sufficient that it may not be loaded in time for Core's helper to invoke it, so we need to delay until `mejs` exists.
*/
- Scroller.prototype.maybeLoadMejs = function() {
+ Scroller.prototype.maybeLoadMejs = function () {
if ( null === this.wpMediaelement ) {
return;
}
if ( 'undefined' === typeof mejs ) {
- setTimeout( this.maybeLoadMejs, 250 );
+ setTimeout( this.maybeLoadMejs.bind( this ), 250 );
} else {
document
.getElementsByTagName( this.wpMediaelement.element )[ 0 ]
@@ -427,19 +580,20 @@
this.wpMediaelement = null;
// Ensure any subsequent IS loads initialize the players
- this.body.bind( 'post-load', { self: this }, this.initializeMejs );
+ this.body.addEventListener( 'is.post-load', this.initializeMejs );
}
};
/**
* Initialize the MediaElement.js player for any posts not previously initialized
*/
- Scroller.prototype.initializeMejs = function( ev, response ) {
+ Scroller.prototype.initializeMejs = function ( e ) {
// Are there media players in the incoming set of posts?
if (
- ! response.html ||
- ( -1 === response.html.indexOf( 'wp-audio-shortcode' ) &&
- -1 === response.html.indexOf( 'wp-video-shortcode' ) )
+ ! e.detail ||
+ ! e.detail.html ||
+ ( -1 === e.detail.html.indexOf( 'wp-audio-shortcode' ) &&
+ -1 === e.detail.html.indexOf( 'wp-video-shortcode' ) )
) {
return;
}
@@ -451,73 +605,118 @@
// Adapted from wp-includes/js/mediaelement/wp-mediaelement.js
// Modified to not initialize already-initialized players, as Mejs doesn't handle that well
- $( function() {
- var settings = {};
+ var settings = {};
+ var audioVideoElements;
+
+ if ( typeof _wpmejsSettings !== 'undefined' ) {
+ settings.pluginPath = _wpmejsSettings.pluginPath;
+ }
- if ( typeof _wpmejsSettings !== 'undefined' ) {
- settings.pluginPath = _wpmejsSettings.pluginPath;
+ settings.success = function ( mejs ) {
+ var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
+ if ( 'flash' === mejs.pluginType && autoplay ) {
+ mejs.addEventListener(
+ 'canplay',
+ function () {
+ mejs.play();
+ },
+ false
+ );
}
+ };
- settings.success = function( mejs ) {
- var autoplay = mejs.attributes.autoplay && 'false' !== mejs.attributes.autoplay;
- if ( 'flash' === mejs.pluginType && autoplay ) {
- mejs.addEventListener(
- 'canplay',
- function() {
- mejs.play();
- },
- false
- );
- }
- };
+ audioVideoElements = document.querySelectorAll( '.wp-audio-shortcode, .wp-video-shortcode' );
+ audioVideoElements = Array.prototype.slice.call( audioVideoElements );
- $( '.wp-audio-shortcode, .wp-video-shortcode' )
- .not( '.mejs-container' )
- .mediaelementplayer( settings );
+ // Only process already unprocessed shortcodes.
+ audioVideoElements = audioVideoElements.filter( function ( el ) {
+ while ( el.parentNode ) {
+ if ( el.classList.contains( 'mejs-container' ) ) {
+ return false;
+ }
+ el = el.parentNode;
+ }
+ return true;
} );
+
+ for ( var i = 0; i < audioVideoElements.length; i++ ) {
+ new MediaElementPlayer( audioVideoElements[ i ], settings );
+ }
};
/**
- * Trigger IS to load additional posts if the initial posts don't fill the window.
- * On large displays, or when posts are very short, the viewport may not be filled with posts, so we overcome this by loading additional posts when IS initializes.
+ * Get element measurements relative to the viewport.
+ *
+ * @returns {object}
*/
- Scroller.prototype.ensureFilledViewport = function() {
- var self = this,
- windowHeight = self.window.height(),
- postsHeight = self.element.height(),
- aveSetHeight = 0,
- wrapperQty = 0;
-
- // Account for situations where postsHeight is 0 because child list elements are floated
- if ( postsHeight === 0 ) {
- $( self.element.selector + ' > li' ).each( function() {
- postsHeight += $( this ).height();
- } );
-
- if ( postsHeight === 0 ) {
- self.body.unbind( 'post-load', self.checkViewportOnLoad );
- return;
+ Scroller.prototype.measure = function ( element, expandClasses ) {
+ expandClasses = expandClasses || [];
+
+ var childrenToTest = Array.prototype.slice.call( element.children );
+ var currentChild,
+ minTop = Number.MAX_VALUE,
+ maxBottom = 0,
+ currentChildRect,
+ i;
+
+ while ( childrenToTest.length > 0 ) {
+ currentChild = childrenToTest.shift();
+
+ for ( i = 0; i < expandClasses.length; i++ ) {
+ // Expand (= measure) child elements of nodes with class names from expandClasses.
+ if ( currentChild.classList.contains( expandClasses[ i ] ) ) {
+ childrenToTest = childrenToTest.concat(
+ Array.prototype.slice.call( currentChild.children )
+ );
+ break;
+ }
}
+ currentChildRect = currentChild.getBoundingClientRect();
+
+ minTop = Math.min( minTop, currentChildRect.top );
+ maxBottom = Math.max( maxBottom, currentChildRect.bottom );
}
- // Calculate average height of a set of posts to prevent more posts than needed from being loaded.
- $( '.' + self.wrapperClass ).each( function() {
- aveSetHeight += $( this ).height();
- wrapperQty++;
- } );
+ var viewportMiddle = Math.round( window.innerHeight / 2 );
- if ( wrapperQty > 0 ) {
- aveSetHeight = aveSetHeight / wrapperQty;
- } else {
- aveSetHeight = 0;
- }
+ // isActive = does the middle of the viewport cross the element?
+ var isActive = minTop <= viewportMiddle && maxBottom >= viewportMiddle;
+
+ /**
+ * Factor = percentage of viewport above the middle line occupied by the element.
+ *
+ * Negative factors are assigned for elements below the middle line. That's on purpose
+ * to only allow "page 2" to change the URL once it's in the middle of the viewport.
+ */
+ var factor = ( Math.min( maxBottom, viewportMiddle ) - Math.max( minTop, 0 ) ) / viewportMiddle;
+
+ return {
+ top: minTop,
+ bottom: maxBottom,
+ height: maxBottom - minTop,
+ factor: factor,
+ isActive: isActive,
+ };
+ };
+
+ /**
+ * Trigger IS to load additional posts if the initial posts don't fill the window.
+ *
+ * On large displays, or when posts are very short, the viewport may not be filled with posts,
+ * so we overcome this by loading additional posts when IS initializes.
+ */
+ Scroller.prototype.ensureFilledViewport = function () {
+ var self = this,
+ windowHeight = self.window.innerHeight,
+ wrapperMeasurements = self.measure( self.element, [ self.wrapperClass ] );
+
+ // Only load more posts once. This prevents infinite loops when there are no more posts.
+ self.body.removeEventListener( 'is.post-load', self.checkViewportOnLoadBound );
- // Load more posts if space permits, otherwise stop checking for a full viewport
- if ( postsHeight < windowHeight && postsHeight + aveSetHeight < windowHeight ) {
+ // Load more posts if space permits, otherwise stop checking for a full viewport.
+ if ( wrapperMeasurements.bottom < windowHeight ) {
self.ready = true;
self.refresh();
- } else {
- self.body.unbind( 'post-load', self.checkViewportOnLoad );
}
};
@@ -525,8 +724,8 @@
* Event handler for ensureFilledViewport(), tied to the post-load trigger.
* Necessary to ensure that the variable `this` contains the scroller when used in ensureFilledViewport(). Since this function is tied to an event, `this` becomes the DOM element the event is tied to.
*/
- Scroller.prototype.checkViewportOnLoad = function( ev ) {
- ev.data.self.ensureFilledViewport();
+ Scroller.prototype.checkViewportOnLoad = function () {
+ this.ensureFilledViewport();
};
function fullscreenState() {
@@ -543,15 +742,12 @@
/**
* Identify archive page that corresponds to majority of posts shown in the current browser window.
*/
- Scroller.prototype.determineURL = function() {
+ Scroller.prototype.determineURL = function () {
var self = this,
- windowTop = $( window ).scrollTop(),
- windowBottom = windowTop + $( window ).height(),
- windowSize = windowBottom - windowTop,
- setsInView = [],
- setsHidden = [],
- pageNum = false,
- currentFullScreenState = fullscreenState();
+ pageNum = -1,
+ currentFullScreenState = fullscreenState(),
+ wrapperEls,
+ maxFactor = 0;
// xor - check if the state has changed
if ( previousFullScrenState ^ currentFullScreenState ) {
@@ -564,123 +760,35 @@
return;
}
previousFullScrenState = currentFullScreenState;
+ wrapperEls = document.querySelectorAll( '.' + self.wrapperClass );
- // Find out which sets are in view
- $( '.' + self.wrapperClass ).each( function() {
- var id = $( this ).attr( 'id' ),
- setTop = $( this ).offset().top,
- setHeight = $( this ).outerHeight( false ),
- setBottom = 0,
- setPageNum = $( this ).data( 'page-num' );
-
- // Account for containers that have no height because their children are floated elements.
- if ( 0 === setHeight ) {
- $( '> *', this ).each( function() {
- setHeight += $( this ).outerHeight( false );
- } );
- }
+ for ( var i = 0; i < wrapperEls.length; i++ ) {
+ var setMeasurements = self.measure( wrapperEls[ i ] );
- // Determine position of bottom of set by adding its height to the scroll position of its top.
- setBottom = setTop + setHeight;
-
- // Populate setsInView object. While this logic could all be combined into a single conditional statement, this is easier to understand.
- if ( setTop < windowTop && setBottom > windowBottom ) {
- // top of set is above window, bottom is below
- setsInView.push( { id: id, top: setTop, bottom: setBottom, pageNum: setPageNum } );
- } else if ( setTop > windowTop && setTop < windowBottom ) {
- // top of set is between top (gt) and bottom (lt)
- setsInView.push( { id: id, top: setTop, bottom: setBottom, pageNum: setPageNum } );
- } else if ( setBottom > windowTop && setBottom < windowBottom ) {
- // bottom of set is between top (gt) and bottom (lt)
- setsInView.push( { id: id, top: setTop, bottom: setBottom, pageNum: setPageNum } );
- } else {
- setsHidden.push( { id: id, top: setTop, bottom: setBottom, pageNum: setPageNum } );
+ // If it exists, pick a set that is crossed by the middle of the viewport.
+ if ( setMeasurements.isActive ) {
+ pageNum = parseInt( wrapperEls[ i ].dataset.pageNum, 10 );
+ break;
}
- } );
- $.each( setsHidden, function() {
- var $set = $( '#' + this.id );
- if ( $set.hasClass( 'is--replaced' ) ) {
- return;
+ // If there is such a set, pick the one that occupies the most space
+ // above the middle of the viewport.
+ if ( setMeasurements.factor > maxFactor ) {
+ pageNum = parseInt( wrapperEls[ i ].dataset.pageNum, 10 );
+ maxFactor = setMeasurements.factor;
}
- self.pageCache[ this.pageNum ].html = $set.html();
-
- $set
- .css( 'min-height', this.bottom - this.top + 'px' )
- .addClass( 'is--replaced' )
- .empty();
- } );
-
- $.each( setsInView, function() {
- var $set = $( '#' + this.id );
-
- if ( $set.hasClass( 'is--replaced' ) ) {
- $set.css( 'min-height', '' ).removeClass( 'is--replaced' );
- if ( this.pageNum in self.pageCache ) {
- $set.html( self.pageCache[ this.pageNum ].html );
- self.body.trigger( 'post-load', self.pageCache[ this.pageNum ] );
- }
- }
- } );
-
- // Parse number of sets found in view in an attempt to update the URL to match the set that comprises the majority of the window.
- if ( 0 == setsInView.length ) {
- pageNum = -1;
- } else if ( 1 == setsInView.length ) {
- var setData = setsInView.pop();
-
- // If the first set of IS posts is in the same view as the posts loaded in the template by WordPress, determine how much of the view is comprised of IS-loaded posts
- if ( ( windowBottom - setData.top ) / windowSize < 0.5 ) {
- pageNum = -1;
- } else {
- pageNum = setData.pageNum;
- }
- } else {
- var majorityPercentageInView = 0;
-
- // Identify the IS set that comprises the majority of the current window and set the URL to it.
- $.each( setsInView, function( i, setData ) {
- var topInView = 0,
- bottomInView = 0,
- percentOfView = 0;
-
- // Figure percentage of view the current set represents
- if ( setData.top > windowTop && setData.top < windowBottom ) {
- topInView = ( windowBottom - setData.top ) / windowSize;
- }
-
- if ( setData.bottom > windowTop && setData.bottom < windowBottom ) {
- bottomInView = ( setData.bottom - windowTop ) / windowSize;
- }
-
- // Figure out largest percentage of view for current set
- if ( topInView >= bottomInView ) {
- percentOfView = topInView;
- } else if ( bottomInView >= topInView ) {
- percentOfView = bottomInView;
- }
-
- // Does current set's percentage of view supplant the largest previously-found set?
- if ( percentOfView > majorityPercentageInView ) {
- pageNum = setData.pageNum;
- majorityPercentageInView = percentOfView;
- }
- } );
+ // Otherwise default to -1
}
- // If a page number could be determined, update the URL
- // -1 indicates that the original requested URL should be used.
- if ( 'number' === typeof pageNum ) {
- self.updateURL( pageNum );
- }
+ self.updateURL( pageNum );
};
/**
* Update address bar to reflect archive page URL for a given page number.
* Checks if URL is different to prevent pollution of browser history.
*/
- Scroller.prototype.updateURL = function( page ) {
+ Scroller.prototype.updateURL = function ( page ) {
// IE only supports pushState() in v10 and above, so don't bother if those conditions aren't met.
if ( ! window.history.pushState ) {
return;
@@ -705,27 +813,67 @@
/**
* Pause scrolling.
*/
- Scroller.prototype.pause = function() {
+ Scroller.prototype.pause = function () {
this.disabled = true;
};
/**
* Resume scrolling.
*/
- Scroller.prototype.resume = function() {
+ Scroller.prototype.resume = function () {
this.disabled = false;
};
/**
+ * Emits custom JS events.
+ *
+ * @param {Node} el
+ * @param {string} eventName
+ * @param {*} data
+ */
+ Scroller.prototype.trigger = function ( el, eventName, opts ) {
+ opts = opts || {};
+
+ /**
+ * Emit the event in a jQuery way for backwards compatibility where necessary.
+ */
+ if ( opts.jqueryEventName && 'undefined' !== typeof jQuery ) {
+ jQuery( el ).trigger( opts.jqueryEventName, opts.data || null );
+ }
+
+ /**
+ * Emit the event in a standard way.
+ */
+ var e;
+ try {
+ e = new CustomEvent( eventName, {
+ bubbles: true,
+ cancelable: true,
+ detail: opts.data || null,
+ } );
+ } catch ( err ) {
+ e = document.createEvent( 'CustomEvent' );
+ e.initCustomEvent( eventName, true, true, opts.data || null );
+ }
+ el.dispatchEvent( e );
+ };
+
+ /**
* Ready, set, go!
*/
- $( document ).ready( function() {
+ var jetpackInfinityModule = function () {
+ var bodyClasses = infiniteScroll.settings.body_class.split( ' ' );
+
// Check for our variables
if ( 'object' !== typeof infiniteScroll ) {
return;
}
- $( document.body ).addClass( infiniteScroll.settings.body_class );
+ bodyClasses.forEach( function ( className ) {
+ if ( className ) {
+ document.body.classList.add( className );
+ }
+ } );
// Set ajaxurl (for brevity)
ajaxurl = infiniteScroll.settings.ajaxurl;
@@ -738,6 +886,9 @@
text = infiniteScroll.settings.text;
totop = infiniteScroll.settings.totop;
+ // aria text
+ loading_text = infiniteScroll.settings.loading_text;
+
// Initialize the scroller (with the ID of the element from the theme)
infiniteScroll.scroller = new Scroller( infiniteScroll.settings );
@@ -746,63 +897,25 @@
*/
if ( type == 'click' ) {
var timer = null;
- $( window ).bind( 'scroll', function() {
+ window.addEventListener( 'scroll', function () {
// run the real scroll handler once every 250 ms.
if ( timer ) {
return;
}
- timer = setTimeout( function() {
+ timer = setTimeout( function () {
infiniteScroll.scroller.determineURL();
timer = null;
}, 250 );
} );
}
+ };
- // Integrate with Selective Refresh in the Customizer.
- if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) {
- /**
- * Handle rendering of selective refresh partials.
- *
- * Make sure that when a partial is rendered, the Jetpack post-load event
- * will be triggered so that any dynamic elements will be re-constructed,
- * such as ME.js elements, Photon replacements, social sharing, and more.
- * Note that this is applying here not strictly to posts being loaded.
- * If a widget contains a ME.js element and it is previewed via selective
- * refresh, the post-load would get triggered allowing any dynamic elements
- * therein to also be re-constructed.
- *
- * @param {wp.customize.selectiveRefresh.Placement} placement
- */
- wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
- var content;
- if ( 'string' === typeof placement.addedContent ) {
- content = placement.addedContent;
- } else if ( placement.container ) {
- content = $( placement.container ).html();
- }
-
- if ( content ) {
- $( document.body ).trigger( 'post-load', { html: content } );
- }
- } );
-
- /*
- * Add partials for posts added via infinite scroll.
- *
- * This is unnecessary when MutationObserver is supported by the browser
- * since then this will be handled by Selective Refresh in core.
- */
- if ( 'undefined' === typeof MutationObserver ) {
- $( document.body ).on( 'post-load', function( e, response ) {
- var rootElement = null;
- if ( response.html && -1 !== response.html.indexOf( 'data-customize-partial' ) ) {
- if ( infiniteScroll.settings.id ) {
- rootElement = $( '#' + infiniteScroll.settings.id );
- }
- wp.customize.selectiveRefresh.addPartials( rootElement );
- }
- } );
- }
- }
- } );
-} )( jQuery ); // Close closure
+ /**
+ * Ready, set, go!
+ */
+ if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ jetpackInfinityModule();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', jetpackInfinityModule );
+ }
+} )(); // Close closure
diff --git a/plugins/jetpack/modules/infinite-scroll/infinity.php b/plugins/jetpack/modules/infinite-scroll/infinity.php
index 6b8d3775..a26419d7 100644
--- a/plugins/jetpack/modules/infinite-scroll/infinity.php
+++ b/plugins/jetpack/modules/infinite-scroll/infinity.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
/*
Plugin Name: The Neverending Home Page.
@@ -18,6 +19,10 @@ License URI: https://www.gnu.org/licenses/gpl-2.0.html
* styling from each theme; including fixed footer.
*/
class The_Neverending_Home_Page {
+ /**
+ * Maximum allowed number of posts per page in $_REQUEST.
+ */
+ const MAX_ALLOWED_POSTS_PER_PAGE_ΙΝ_REQUEST = 5000;
/**
* Register actions and filters, plus parse IS settings
@@ -26,20 +31,25 @@ class The_Neverending_Home_Page {
* @return null
*/
function __construct() {
- add_action( 'pre_get_posts', array( $this, 'posts_per_page_query' ) );
-
- add_action( 'admin_init', array( $this, 'settings_api_init' ) );
- add_action( 'template_redirect', array( $this, 'action_template_redirect' ) );
- add_action( 'template_redirect', array( $this, 'ajax_response' ) );
- add_action( 'custom_ajax_infinite_scroll', array( $this, 'query' ) );
- add_filter( 'infinite_scroll_query_args', array( $this, 'inject_query_args' ) );
- add_filter( 'infinite_scroll_allowed_vars', array( $this, 'allowed_query_vars' ) );
- add_action( 'the_post', array( $this, 'preserve_more_tag' ) );
- add_action( 'wp_footer', array( $this, 'footer' ) );
+ add_action( 'pre_get_posts', array( $this, 'posts_per_page_query' ) );
+ add_action( 'admin_init', array( $this, 'settings_api_init' ) );
+ add_action( 'template_redirect', array( $this, 'action_template_redirect' ) );
+ add_action( 'customize_preview_init', array( $this, 'init_customizer_assets' ) );
+ add_action( 'template_redirect', array( $this, 'ajax_response' ) );
+ add_action( 'custom_ajax_infinite_scroll', array( $this, 'query' ) );
+ add_filter( 'infinite_scroll_query_args', array( $this, 'inject_query_args' ) );
+ add_filter( 'infinite_scroll_allowed_vars', array( $this, 'allowed_query_vars' ) );
+ add_action( 'the_post', array( $this, 'preserve_more_tag' ) );
+ add_action( 'wp_footer', array( $this, 'footer' ) );
+ add_filter( 'infinite_scroll_additional_scripts', array( $this, 'add_mejs_config' ) );
// Plugin compatibility
add_filter( 'grunion_contact_form_redirect_url', array( $this, 'filter_grunion_redirect_url' ) );
+ // AMP compatibility
+ // needs to happen after parse_query so that Jetpack_AMP_Support::is_amp_request() is ready.
+ add_action( 'wp', array( $this, 'amp_load_hooks' ) );
+
// Parse IS settings from theme
self::get_settings();
}
@@ -247,11 +257,23 @@ class The_Neverending_Home_Page {
* @return int
*/
static function posts_per_page() {
- $posts_per_page = self::get_settings()->posts_per_page ? self::get_settings()->posts_per_page : self::wp_query()->get( 'posts_per_page' );
+ $posts_per_page = self::get_settings()->posts_per_page ? self::get_settings()->posts_per_page : self::wp_query()->get( 'posts_per_page' );
+ $posts_per_page_core_option = get_option( 'posts_per_page' );
+
+ // If Infinite Scroll is set to click, and if the site owner changed posts_per_page, let's use that.
+ if (
+ 'click' === self::get_settings()->type
+ && ( '10' !== $posts_per_page_core_option )
+ ) {
+ $posts_per_page = $posts_per_page_core_option;
+ }
- // Take JS query into consideration here
- if ( true === isset( $_REQUEST['query_args']['posts_per_page'] ) ) {
- $posts_per_page = $_REQUEST['query_args']['posts_per_page'];
+ // Take JS query into consideration here.
+ $posts_per_page_in_request = isset( $_REQUEST['query_args']['posts_per_page'] ) ? (int) $_REQUEST['query_args']['posts_per_page'] : 0; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( $posts_per_page_in_request > 0 &&
+ self::MAX_ALLOWED_POSTS_PER_PAGE_ΙΝ_REQUEST >= $posts_per_page_in_request
+ ) {
+ $posts_per_page = $posts_per_page_in_request;
}
/**
@@ -389,11 +411,12 @@ class The_Neverending_Home_Page {
}
function infinite_setting_html_calypso_placeholder() {
- $details = get_blog_details();
+ $details = get_blog_details();
+ $writing_url = Redirect::get_url( 'calypso-settings-writing', array( 'site' => $details->domain ) );
echo '<span>' . sprintf(
/* translators: Variables are the enclosing link to the settings page */
- esc_html__( 'This option has moved. You can now manage it %1$shere%2$s.' ),
- '<a href="' . esc_url( 'https://wordpress.com/settings/writing/' . $details->domain ) . '">',
+ esc_html__( 'This option has moved. You can now manage it %1$shere%2$s.', 'jetpack' ),
+ '<a href="' . esc_url( $writing_url ) . '">',
'</a>'
) . '</span>';
}
@@ -432,6 +455,11 @@ class The_Neverending_Home_Page {
if ( empty( $id ) )
return;
+ // AMP infinite scroll functionality will start on amp_load_hooks().
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
// Add our scripts.
wp_register_script(
'the-neverending-homepage',
@@ -439,8 +467,8 @@ class The_Neverending_Home_Page {
'_inc/build/infinite-scroll/infinity.min.js',
'modules/infinite-scroll/infinity.js'
),
- array( 'jquery' ),
- '4.0.0',
+ array(),
+ JETPACK__VERSION . '-is5.0.1', // Added for ability to cachebust on WP.com.
true
);
@@ -458,8 +486,6 @@ class The_Neverending_Home_Page {
// Add our default styles.
wp_enqueue_style( 'the-neverending-homepage' );
- add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_spinner_scripts' ) );
-
add_action( 'wp_footer', array( $this, 'action_wp_footer_settings' ), 2 );
add_action( 'wp_footer', array( $this, 'action_wp_footer' ), 21 ); // Core prints footer scripts at priority 20, so we just need to be one later than that
@@ -468,10 +494,24 @@ class The_Neverending_Home_Page {
}
/**
- * Enqueue spinner scripts.
+ * Initialize the Customizer logic separately from the main JS.
+ *
+ * @since 8.4.0
*/
- function enqueue_spinner_scripts() {
- wp_enqueue_script( 'jquery.spin' );
+ public function init_customizer_assets() {
+ // Add our scripts.
+ wp_register_script(
+ 'the-neverending-homepage-customizer',
+ Assets::get_file_url_for_environment(
+ '_inc/build/infinite-scroll/infinity-customizer.min.js',
+ 'modules/infinite-scroll/infinity-customizer.js'
+ ),
+ array( 'customize-base' ),
+ JETPACK__VERSION . '-is5.0.0', // Added for ability to cachebust on WP.com.
+ true
+ );
+
+ wp_enqueue_script( 'the-neverending-homepage-customizer' );
}
/**
@@ -814,7 +854,11 @@ class The_Neverending_Home_Page {
// Check if the taxonomy is attached to one post type only and use its plural name.
// If not, use "Posts" without confusing the users.
- if ( count( $taxonomy->object_type ) < 2 ) {
+ if (
+ is_a( $taxonomy, 'WP_Taxonomy' )
+ && is_countable( $taxonomy->object_type )
+ && count( $taxonomy->object_type ) < 2
+ ) {
$post_type = $taxonomy->object_type[0];
}
}
@@ -866,6 +910,7 @@ class The_Neverending_Home_Page {
'query_before' => current_time( 'mysql' ),
'last_post_date' => self::get_last_post_date(),
'body_class' => self::body_class(),
+ 'loading_text' => esc_js( __( 'Loading new page', 'jetpack' ) ),
);
// Optional order param
@@ -999,9 +1044,34 @@ class The_Neverending_Home_Page {
$styles = apply_filters( 'infinite_scroll_existing_stylesheets', $styles );
?><script type="text/javascript">
- jQuery.extend( infiniteScroll.settings.scripts, <?php echo json_encode( $scripts ); ?> );
- jQuery.extend( infiniteScroll.settings.styles, <?php echo json_encode( $styles ); ?> );
- </script><?php
+ (function() {
+ var extend = function(out) {
+ out = out || {};
+
+ for (var i = 1; i < arguments.length; i++) {
+ if (!arguments[i])
+ continue;
+
+ for (var key in arguments[i]) {
+ if (arguments[i].hasOwnProperty(key))
+ out[key] = arguments[i][key];
+ }
+ }
+
+ return out;
+ };
+ extend( window.infiniteScroll.settings.scripts, <?php echo wp_json_encode( $scripts ); ?> );
+ extend( window.infiniteScroll.settings.styles, <?php echo wp_json_encode( $styles ); ?> );
+ })();
+ </script>
+ <?php
+ $aria_live = 'assertive';
+ if ( 'scroll' === self::get_settings()->type ) {
+ $aria_live = 'polite';
+ }
+ ?>
+ <span id="infinite-aria" aria-live="<?php echo esc_attr( $aria_live ); ?>"></span>
+ <?php
}
/**
@@ -1024,7 +1094,19 @@ class The_Neverending_Home_Page {
global $wp_scripts;
// Identify new scripts needed by the latest set of IS posts
- $new_scripts = array_diff( $wp_scripts->done, $initial_scripts );
+ $new_scripts = array_filter(
+ $wp_scripts->done,
+ function ( $script_name ) use ( $initial_scripts ) {
+ // Jetpack block scripts should always be sent, even if they've been
+ // sent before. These scripts only run once on when loaded, they don't
+ // watch for new blocks being added.
+ if ( 0 === strpos( $script_name, 'jetpack-block-' ) ) {
+ return true;
+ }
+
+ return ! in_array( $script_name, $initial_scripts, true );
+ }
+ );
// If new scripts are needed, extract relevant data from $wp_scripts
if ( ! empty( $new_scripts ) ) {
@@ -1032,14 +1114,20 @@ class The_Neverending_Home_Page {
foreach ( $new_scripts as $handle ) {
// Abort if somehow the handle doesn't correspond to a registered script
- if ( ! isset( $wp_scripts->registered[ $handle ] ) )
+ // or if the script doesn't have `src` set.
+ $script_not_registered = ! isset( $wp_scripts->registered[ $handle ] );
+ $empty_src = empty( $wp_scripts->registered[ $handle ]->src );
+ if ( $script_not_registered || $empty_src ) {
continue;
+ }
// Provide basic script data
$script_data = array(
- 'handle' => $handle,
- 'footer' => ( is_array( $wp_scripts->in_footer ) && in_array( $handle, $wp_scripts->in_footer ) ),
- 'extra_data' => $wp_scripts->print_extra_script( $handle, false )
+ 'handle' => $handle,
+ 'footer' => ( is_array( $wp_scripts->in_footer ) && in_array( $handle, $wp_scripts->in_footer, true ) ),
+ 'extra_data' => $wp_scripts->print_extra_script( $handle, false ),
+ 'before_handle' => $wp_scripts->print_inline_script( $handle, 'before', false ),
+ 'after_handle' => $wp_scripts->print_inline_script( $handle, 'after', false ),
);
// Base source
@@ -1280,39 +1368,49 @@ class The_Neverending_Home_Page {
$results['type'] = 'success';
/**
- * Gather renderer callbacks. These will be called in order and allow multiple callbacks to be queued. Once content is found, no futher callbacks will run.
+ * Fires when rendering Infinite Scroll posts.
*
* @module infinite-scroll
*
- * @since 6.0.0
+ * @since 2.0.0
*/
- $callbacks = apply_filters( 'infinite_scroll_render_callbacks', array(
- self::get_settings()->render, // This is the setting callback e.g. from add theme support.
- ) );
-
- // Append fallback callback. That rhymes.
- $callbacks[] = array( $this, 'render' );
-
- foreach ( $callbacks as $callback ) {
- if ( false !== $callback && is_callable( $callback ) ) {
- rewind_posts();
- ob_start();
- add_action( 'infinite_scroll_render', $callback );
-
- /**
- * Fires when rendering Infinite Scroll posts.
- *
- * @module infinite-scroll
- *
- * @since 2.0.0
- */
- do_action( 'infinite_scroll_render' );
-
- $results['html'] = ob_get_clean();
- remove_action( 'infinite_scroll_render', $callback );
- }
- if ( ! empty( $results['html'] ) ) {
- break;
+ do_action( 'infinite_scroll_render' );
+ $results['html'] = ob_get_clean();
+ if ( empty( $results['html'] ) ) {
+ /**
+ * Gather renderer callbacks. These will be called in order and allow multiple callbacks to be queued. Once content is found, no futher callbacks will run.
+ *
+ * @module infinite-scroll
+ *
+ * @since 6.0.0
+ */
+ $callbacks = apply_filters(
+ 'infinite_scroll_render_callbacks',
+ array( self::get_settings()->render ) // This is the setting callback e.g. from add theme support.
+ );
+
+ // Append fallback callback. That rhymes.
+ $callbacks[] = array( $this, 'render' );
+
+ foreach ( $callbacks as $callback ) {
+ if ( false !== $callback && is_callable( $callback ) ) {
+ rewind_posts();
+ ob_start();
+ add_action( 'infinite_scroll_render', $callback );
+
+ /**
+ * This action is already documented above.
+ * See https://github.com/Automattic/jetpack/pull/16317/
+ * for more details as to why it was introduced.
+ */
+ do_action( 'infinite_scroll_render' );
+
+ $results['html'] = ob_get_clean();
+ remove_action( 'infinite_scroll_render', $callback );
+ }
+ if ( ! empty( $results['html'] ) ) {
+ break;
+ }
}
}
@@ -1332,8 +1430,13 @@ class The_Neverending_Home_Page {
$wrapper_classes = is_string( self::get_settings()->wrapper ) ? self::get_settings()->wrapper : 'infinite-wrap';
$wrapper_classes .= ' infinite-view-' . $page;
$wrapper_classes = trim( $wrapper_classes );
+ $aria_label = sprintf(
+ /* translators: %1$s is the page count */
+ __( 'Page: %1$d.', 'jetpack' ),
+ $page
+ );
- $results['html'] = '<div class="' . esc_attr( $wrapper_classes ) . '" id="infinite-view-' . $page . '" data-page-num="' . $page . '">' . $results['html'] . '</div>';
+ $results['html'] = '<div class="' . esc_attr( $wrapper_classes ) . '" id="infinite-view-' . $page . '" data-page-num="' . $page . '" role="region" aria-label="' . esc_attr( $aria_label ) . '">' . $results['html'] . '</div>';
}
// Fire wp_footer to ensure that all necessary scripts are enqueued. Output isn't used, but scripts are extracted in self::action_wp_footer.
@@ -1510,6 +1613,10 @@ class The_Neverending_Home_Page {
* @return string or null
*/
function footer() {
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
// Bail if theme requested footer not show
if ( false == self::get_settings()->footer )
return;
@@ -1602,6 +1709,297 @@ class The_Neverending_Home_Page {
return $url;
}
+
+ /**
+ * When the MediaElement is loaded in dynamically, we need to enforce that
+ * its settings are added to the page as well.
+ *
+ * @param array $scripts_data New scripts exposed to the infinite scroll.
+ *
+ * @since 8.4.0
+ */
+ public function add_mejs_config( $scripts_data ) {
+ foreach ( $scripts_data as $key => $data ) {
+ if ( 'mediaelement-core' === $data['handle'] ) {
+ $mejs_settings = array(
+ 'pluginPath' => includes_url( 'js/mediaelement/', 'relative' ),
+ 'classPrefix' => 'mejs-',
+ 'stretching' => 'responsive',
+ );
+
+ $scripts_data[ $key ]['extra_data'] = sprintf(
+ 'window.%s = %s',
+ '_wpmejsSettings',
+ wp_json_encode( apply_filters( 'mejs_settings', $mejs_settings ) )
+ );
+ }
+ }
+ return $scripts_data;
+ }
+
+ /**
+ * Determines whether the legacy AMP Reader post templates are being used.
+ *
+ * @return bool
+ */
+ private function is_exempted_amp_page() {
+ if ( is_singular( 'web-story' ) ) {
+ // Ensure that <amp-next-page> is not injected after <amp-story> as generated by the Web Stories plugin.
+ return true;
+ }
+ if ( function_exists( 'amp_is_legacy' ) ) {
+ // Available since AMP v2.0, this will return false if a theme like Twenty Twenty is selected as the Reader theme.
+ return amp_is_legacy();
+ }
+ if ( method_exists( 'AMP_Options_Manager', 'get_option' ) ) {
+ // In versions prior to v2.0, checking the template mode as being 'reader' is sufficient.
+ return 'reader' === AMP_Options_Manager::get_option( 'theme_support' );
+ }
+ return false;
+ }
+
+ /**
+ * Load AMP specific hooks.
+ *
+ * @return void
+ */
+ public function amp_load_hooks() {
+ if ( $this->is_exempted_amp_page() ) {
+ return;
+ }
+
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ $template = self::get_settings()->render;
+
+ add_filter( 'jetpack_infinite_scroll_load_scripts_and_styles', '__return_false' );
+
+ add_action( 'template_redirect', array( $this, 'amp_start_output_buffering' ), 0 );
+ add_action( 'shutdown', array( $this, 'amp_output_buffer' ), 1 );
+
+ if ( is_callable( "amp_{$template}_hooks" ) ) {
+ call_user_func( "amp_{$template}_hooks" );
+ }
+
+ // Warms up the amp next page markup.
+ // This should be done outside the output buffering callback started in the template_redirect.
+ $this->amp_get_footer_template();
+ }
+ }
+
+ /**
+ * Start the AMP output buffering.
+ *
+ * @return void
+ */
+ public function amp_start_output_buffering() {
+ ob_start( array( $this, 'amp_finish_output_buffering' ) );
+ }
+
+ /**
+ * Flush the AMP output buffer.
+ *
+ * @return void
+ */
+ public function amp_output_buffer() {
+ if ( ob_get_contents() ) {
+ ob_end_flush();
+ }
+ }
+
+ /**
+ * Filter the AMP output buffer contents.
+ *
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return string|false
+ */
+ public function amp_finish_output_buffering( $buffer ) {
+ // Hide WordPress admin bar on next page load.
+ $buffer = preg_replace(
+ '/id="wpadminbar"/',
+ '$0 next-page-hide',
+ $buffer
+ );
+
+ /**
+ * Get the theme footers.
+ *
+ * @module infinite-scroll
+ *
+ * @since 9.0.0
+ *
+ * @param array array() An array to store multiple markup entries to be added to the footer.
+ * @param string $buffer The contents of the output buffer.
+ */
+ $footers = apply_filters( 'jetpack_amp_infinite_footers', array(), $buffer );
+
+ /**
+ * Filter the output buffer.
+ * Themes can leverage this hook to add custom markup on next page load.
+ *
+ * @module infinite-scroll
+ *
+ * @since 9.0.0
+ *
+ * @param string $buffer The contents of the output buffer.
+ */
+ $buffer = apply_filters( 'jetpack_amp_infinite_output', $buffer );
+
+ // Add the amp next page markup.
+ $buffer = preg_replace(
+ '~</body>~',
+ $this->amp_get_footer_template( $footers ) . '$0',
+ $buffer
+ );
+
+ return $buffer;
+ }
+
+ /**
+ * Get AMP next page markup with the custom footers.
+ *
+ * @param string[] $footers The theme footers.
+ *
+ * @return string
+ */
+ protected function amp_get_footer_template( $footers = array() ) {
+ static $template = null;
+
+ if ( null === $template ) {
+ $template = $this->amp_footer_template();
+ }
+
+ if ( empty( $footers ) ) {
+ return $template;
+ }
+
+ return preg_replace(
+ '/%%footer%%/',
+ implode( '', $footers ),
+ $template
+ );
+ }
+
+ /**
+ * AMP Next Page markup.
+ *
+ * @return string
+ */
+ protected function amp_footer_template() {
+ ob_start();
+ ?>
+<amp-next-page max-pages="<?php echo esc_attr( $this->amp_get_max_pages() ); ?>">
+ <script type="application/json">
+ [
+ <?php echo wp_json_encode( $this->amp_next_page() ); ?>
+ ]
+ </script>
+ <div separator>
+ <?php
+ echo wp_kses_post(
+ /**
+ * AMP infinite scroll separator.
+ *
+ * @module infinite-scroll
+ *
+ * @since 9.0.0
+ *
+ * @param string '' The markup for the next page separator.
+ */
+ apply_filters( 'jetpack_amp_infinite_separator', '' )
+ );
+ ?>
+ </div>
+ <div recommendation-box class="recommendation-box">
+ <template type="amp-mustache">
+ {{#pages}}
+ <?php
+ echo wp_kses_post(
+ /**
+ * AMP infinite scroll older posts markup.
+ *
+ * @module infinite-scroll
+ *
+ * @since 9.0.0
+ *
+ * @param string '' The markup for the older posts/next page.
+ */
+ apply_filters( 'jetpack_amp_infinite_older_posts', '' )
+ );
+ ?>
+ {{/pages}}
+ </template>
+ </div>
+ <div footer>
+ %%footer%%
+ </div>
+</amp-next-page>
+ <?php
+ return ob_get_clean();
+ }
+
+ /**
+ * Get the AMP next page information.
+ *
+ * @return array
+ */
+ protected function amp_next_page() {
+ $title = '';
+ $url = '';
+ $image = '';
+
+ if ( ! static::amp_is_last_page() ) {
+ $title = sprintf(
+ '%s - %s %d - %s',
+ wp_title( '', false ),
+ __( 'Page', 'jetpack' ),
+ max( get_query_var( 'paged', 1 ), 1 ) + 1,
+ get_bloginfo( 'name' )
+ );
+ $url = get_next_posts_page_link();
+ }
+
+ $next_page = array(
+ 'title' => $title,
+ 'url' => $url,
+ 'image' => $image,
+ );
+
+ /**
+ * The next page settings.
+ * An array containing:
+ * - title => The title to be featured on the browser tab.
+ * - url => The URL of next page.
+ * - image => The image URL. A required AMP setting, not in use currently. Themes are welcome to leverage.
+ *
+ * @module infinite-scroll
+ *
+ * @since 9.0.0
+ *
+ * @param array $next_page The contents of the output buffer.
+ */
+ return apply_filters( 'jetpack_amp_infinite_next_page_data', $next_page );
+ }
+
+ /**
+ * Get the number of pages left.
+ *
+ * @return int
+ */
+ protected static function amp_get_max_pages() {
+ global $wp_query;
+
+ return (int) $wp_query->max_num_pages - $wp_query->query_vars['paged'];
+ }
+
+ /**
+ * Is the last page.
+ *
+ * @return bool
+ */
+ protected static function amp_is_last_page() {
+ return 0 === static::amp_get_max_pages();
+ }
};
/**
diff --git a/plugins/jetpack/modules/infinite-scroll/themes/twentyeleven.css b/plugins/jetpack/modules/infinite-scroll/themes/twentyeleven.css
index cc232785..9f2612e5 100644
--- a/plugins/jetpack/modules/infinite-scroll/themes/twentyeleven.css
+++ b/plugins/jetpack/modules/infinite-scroll/themes/twentyeleven.css
@@ -16,7 +16,7 @@
padding-top: 0;
}
.infinite-scroll .infinite-wrap .hentry:last-child {
- border-bottom: 1px solid #ddd;
+ border-bottom: 1px solid #dcdcde;
}
.infinite-scroll .infinite-wrap:last-of-type .hentry:last-child {
border-bottom: none;
@@ -42,4 +42,4 @@
.infinite-scroll #infinite-handle {
padding-bottom: 40px;
}
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/infinite-scroll/themes/twentyfourteen.php b/plugins/jetpack/modules/infinite-scroll/themes/twentyfourteen.php
index 54a1fbc8..c9710abd 100644
--- a/plugins/jetpack/modules/infinite-scroll/themes/twentyfourteen.php
+++ b/plugins/jetpack/modules/infinite-scroll/themes/twentyfourteen.php
@@ -5,6 +5,8 @@
* Register support for Twenty Fourteen.
*/
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+
/**
* Add theme support for infinite scroll
*/
@@ -27,7 +29,7 @@ add_action( 'after_setup_theme', 'jetpack_twentyfourteen_infinite_scroll_init' )
*/
function jetpack_twentyfourteen_has_footer_widgets() {
if ( function_exists( 'jetpack_is_mobile' ) ) {
- if ( ( Jetpack_User_Agent_Info::is_ipad() && is_active_sidebar( 'sidebar-1' ) )
+ if ( ( User_Agent_Info::is_ipad() && is_active_sidebar( 'sidebar-1' ) )
|| ( jetpack_is_mobile( '', true ) && ( is_active_sidebar( 'sidebar-1' ) || is_active_sidebar( 'sidebar-2' ) ) )
|| is_active_sidebar( 'sidebar-3' ) )
diff --git a/plugins/jetpack/modules/json-api.php b/plugins/jetpack/modules/json-api.php
index b30f38a9..fc4f0c2f 100644
--- a/plugins/jetpack/modules/json-api.php
+++ b/plugins/jetpack/modules/json-api.php
@@ -9,4 +9,8 @@
* Module Tags: Writing, Developers
* Feature: General
* Additional Search Queries: api, rest, develop, developers, json, klout, oauth
+ *
+ * @package automattic/jetpack
*/
+
+// Nothing fires here. Module status is checked on the WP.com-side to allow third-party applications.
diff --git a/plugins/jetpack/modules/latex.php b/plugins/jetpack/modules/latex.php
index c006bafa..3257fdf3 100644
--- a/plugins/jetpack/modules/latex.php
+++ b/plugins/jetpack/modules/latex.php
@@ -23,7 +23,7 @@
function latex_markup( $content ) {
$textarr = wp_html_split( $content );
-
+
$regex = '%
\$latex(?:=\s*|\s+)
((?:
@@ -33,7 +33,7 @@ function latex_markup( $content ) {
)+)
(?<!\\\\)\$ # Dollar preceded by zero slashes
%ix';
-
+
foreach ( $textarr as &$element ) {
if ( '' == $element || '<' === $element[0] ) {
continue;
@@ -83,12 +83,37 @@ function latex_entity_decode( $latex ) {
return str_replace( array( '&lt;', '&gt;', '&quot;', '&#039;', '&#038;', '&amp;', "\n", "\r" ), array( '<', '>', '"', "'", '&', '&', ' ', ' ' ), $latex );
}
+/**
+ * Returns the URL for the server-side rendered image of LaTeX.
+ *
+ * @param string $latex LaTeX string.
+ * @param string $fg Foreground color.
+ * @param string $bg Background color.
+ * @param int $s Matches.
+ *
+ * @return string Image URL for the rendered LaTeX.
+ */
function latex_render( $latex, $fg, $bg, $s = 0 ) {
- $url = "//s0.wp.com/latex.php?latex=" . urlencode( $latex ) . "&bg=" . $bg . "&fg=" . $fg . "&s=" . $s;
- $url = esc_url( $url );
+ $url = add_query_arg(
+ urlencode_deep(
+ array(
+ 'latex' => $latex,
+ 'bg' => $bg,
+ 'fg' => $fg,
+ 's' => $s,
+ 'c' => '20201002', // cache buster. Added 2020-10-02 after server migration caused faulty rendering.
+ )
+ ),
+ ( is_ssl() ? 'https://' : 'http://' ) . 's0.wp.com/latex.php'
+ );
+
$alt = str_replace( '\\', '&#92;', esc_attr( $latex ) );
- return '<img src="' . $url . '" alt="' . $alt . '" title="' . $alt . '" class="latex" />';
+ return sprintf(
+ '<img src="%1$s" alt="%2$s" class="latex" />',
+ esc_url( $url ),
+ $alt
+ );
}
/**
@@ -98,13 +123,17 @@ function latex_render( $latex, $fg, $bg, $s = 0 ) {
* Example: [latex s=4 bg=00f fg=ff0]\LaTeX[/latex]
*/
function latex_shortcode( $atts, $content = '' ) {
- extract( shortcode_atts( array(
- 's' => 0,
- 'bg' => latex_get_default_color( 'bg' ),
- 'fg' => latex_get_default_color( 'text', '000' )
- ), $atts, 'latex' ) );
-
- return latex_render( latex_entity_decode( $content ), $fg, $bg, $s );
+ $attr = shortcode_atts(
+ array(
+ 's' => 0,
+ 'bg' => latex_get_default_color( 'bg' ),
+ 'fg' => latex_get_default_color( 'text', '000' ),
+ ),
+ $atts,
+ 'latex'
+ );
+
+ return latex_render( latex_entity_decode( $content ), $attr['fg'], $attr['bg'], $attr['s'] );
}
/**
diff --git a/plugins/jetpack/modules/lazy-images.php b/plugins/jetpack/modules/lazy-images.php
index 6476a7a9..9cb427fa 100644
--- a/plugins/jetpack/modules/lazy-images.php
+++ b/plugins/jetpack/modules/lazy-images.php
@@ -14,17 +14,12 @@
*/
/**
- * This module relies heavily upon the Lazy Load plugin which was worked on by
- * Mohammad Jangda (batmoo), the WordPress.com VIP team, the TechCrunch 2011
- * redesign team, and Jake Goldman of 10up LLC.
*
- * The JavaScript has been updated to rely on InterSection observer instead of
- * jQuery Sonar. Many thanks to Dean Hume (deanhume) and his example:
- * https://github.com/deanhume/lazy-observer-load
+ * @since 8.8
+ *
+ * The core of this module has been migrated to an standalone reusable package.
*/
-require_once( JETPACK__PLUGIN_DIR . 'modules/lazy-images/lazy-images.php' );
-
/*
* Initialize lazy images on the wp action so that conditional
* tags are safe to use.
@@ -36,4 +31,4 @@ require_once( JETPACK__PLUGIN_DIR . 'modules/lazy-images/lazy-images.php' );
* See: https://github.com/Automattic/jetpack/issues/8888
*/
-add_action( 'wp', array( 'Jetpack_Lazy_Images', 'instance' ) );
+add_action( 'wp', array( 'Automattic\\Jetpack\\Jetpack_Lazy_Images', 'instance' ) );
diff --git a/plugins/jetpack/modules/likes.php b/plugins/jetpack/modules/likes.php
index 30290f61..1527e309 100644
--- a/plugins/jetpack/modules/likes.php
+++ b/plugins/jetpack/modules/likes.php
@@ -1,4 +1,4 @@
-<?php
+<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Module Name: Likes
* Module Description: Give visitors an easy way to show they appreciate your content.
@@ -9,24 +9,36 @@
* Module Tags: Social
* Feature: Engagement
* Additional Search Queries: like, likes, wordpress.com
+ *
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
-Jetpack::dns_prefetch( array(
- '//widgets.wp.com',
- '//s0.wp.com',
- '//0.gravatar.com',
- '//1.gravatar.com',
- '//2.gravatar.com',
-) );
+Assets::add_resource_hint(
+ array(
+ '//widgets.wp.com',
+ '//s0.wp.com',
+ '//0.gravatar.com',
+ '//1.gravatar.com',
+ '//2.gravatar.com',
+ ),
+ 'dns-prefetch'
+);
-include_once dirname( __FILE__ ) . '/likes/jetpack-likes-master-iframe.php';
-include_once dirname( __FILE__ ) . '/likes/jetpack-likes-settings.php';
+require_once __DIR__ . '/likes/jetpack-likes-master-iframe.php';
+require_once __DIR__ . '/likes/jetpack-likes-settings.php';
+/**
+ * Jetpack Like Class
+ */
class Jetpack_Likes {
+
+ /**
+ * Initialize class
+ */
public static function init() {
- static $instance = NULL;
+ static $instance = null;
if ( ! $instance ) {
$instance = new Jetpack_Likes();
@@ -35,39 +47,42 @@ class Jetpack_Likes {
return $instance;
}
- function __construct() {
+ /**
+ * Constructs Likes class
+ */
+ public function __construct() {
$this->in_jetpack = ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ? false : true;
- $this->settings = new Jetpack_Likes_Settings();
+ $this->settings = new Jetpack_Likes_Settings();
// We need to run on wp hook rather than init because we check is_amp_endpoint()
- // when bootstrapping hooks
- add_action( 'wp', array( &$this, 'action_init' ), 99 );
+ // when bootstrapping hooks.
+ add_action( 'wp', array( $this, 'action_init' ), 99 );
add_action( 'admin_init', array( $this, 'admin_init' ) );
if ( $this->in_jetpack ) {
- add_action( 'jetpack_activate_module_likes', array( $this, 'set_social_notifications_like' ) );
+ add_action( 'jetpack_activate_module_likes', array( $this, 'set_social_notifications_like' ) );
add_action( 'jetpack_deactivate_module_likes', array( $this, 'delete_social_notifications_like' ) );
Jetpack::enable_module_configurable( __FILE__ );
add_filter( 'jetpack_module_configuration_url_likes', array( $this, 'jetpack_likes_configuration_url' ) );
- add_action( 'admin_print_scripts-settings_page_sharing', array( &$this, 'load_jp_css' ) );
+ add_action( 'admin_print_scripts-settings_page_sharing', array( $this, 'load_jp_css' ) );
add_filter( 'sharing_show_buttons_on_row_start', array( $this, 'configuration_target_area' ) );
$active = Jetpack::get_active_modules();
- if ( ! in_array( 'sharedaddy', $active ) && ! in_array( 'publicize', $active ) ) {
- // we don't have a sharing page yet
+ if ( ! in_array( 'sharedaddy', $active, true ) && ! in_array( 'publicize', $active, true ) ) {
+ // we don't have a sharing page yet.
add_action( 'admin_menu', array( $this->settings, 'sharing_menu' ) );
}
- if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) {
- // we have a sharing page but not the global options area
+ if ( in_array( 'publicize', $active, true ) && ! in_array( 'sharedaddy', $active, true ) ) {
+ // we have a sharing page but not the global options area.
add_action( 'pre_admin_screen_sharing', array( $this->settings, 'sharing_block' ), 20 );
add_action( 'pre_admin_screen_sharing', array( $this->settings, 'updated_message' ), -10 );
}
- if( ! in_array( 'sharedaddy', $active ) ) {
+ if ( ! in_array( 'sharedaddy', $active, true ) ) {
add_action( 'admin_init', array( $this->settings, 'process_update_requests_if_sharedaddy_not_loaded' ) );
add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_showbuttonon_init' ), 19 );
add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_showbuttonon_callback' ), 19 );
@@ -76,14 +91,14 @@ class Jetpack_Likes {
add_filter( 'sharing_meta_box_title', array( $this->settings, 'add_likes_to_sharing_meta_box_title' ) );
add_action( 'start_sharing_meta_box_content', array( $this->settings, 'meta_box_content' ) );
}
- } else { // wpcom
+ } else { // wpcom.
add_action( 'wpmu_new_blog', array( $this, 'enable_comment_likes' ), 10, 1 );
add_action( 'admin_init', array( $this->settings, 'add_meta_box' ) );
add_action( 'end_likes_meta_box_content', array( $this->settings, 'sharing_meta_box_content' ) );
add_filter( 'likes_meta_box_title', array( $this->settings, 'add_likes_to_sharing_meta_box_title' ) );
}
- add_action( 'admin_init', array( $this, 'admin_discussion_likes_settings_init' ) ); // Likes notifications
+ add_action( 'admin_init', array( $this, 'admin_discussion_likes_settings_init' ) ); // Likes notifications.
add_action( 'admin_bar_menu', array( $this, 'admin_bar_likes' ), 60 );
@@ -92,17 +107,15 @@ class Jetpack_Likes {
add_action( 'save_post', array( $this->settings, 'meta_box_save' ) );
add_action( 'edit_attachment', array( $this->settings, 'meta_box_save' ) );
add_action( 'sharing_global_options', array( $this->settings, 'admin_settings_init' ), 20 );
- add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 );
+ add_action( 'sharing_admin_update', array( $this->settings, 'admin_settings_callback' ), 20 );
}
/**
* Set the social_notifications_like option to `on` when the Likes module is activated.
*
* @since 3.7.0
- *
- * @return null
*/
- function set_social_notifications_like() {
+ public function set_social_notifications_like() {
update_option( 'social_notifications_like', 'on' );
}
@@ -110,95 +123,67 @@ class Jetpack_Likes {
* Delete the social_notifications_like option that was set to `on` on module activation.
*
* @since 3.7.0
- *
- * @return null
*/
- function delete_social_notifications_like() {
+ public function delete_social_notifications_like() {
delete_option( 'social_notifications_like' );
}
-
/**
* Overrides default configuration url
*
* @uses admin_url
* @return string module settings URL
*/
- function jetpack_likes_configuration_url() {
+ public function jetpack_likes_configuration_url() {
return admin_url( 'options-general.php?page=sharing#likes' );
}
/**
* Loads Jetpack's CSS on the sharing page so we can use .jetpack-targetable
*/
- function load_jp_css() {
- // Do we really need `admin_styles`? With the new admin UI, it's breaking some bits.
- // Jetpack::init()->admin_styles();
+ public function load_jp_css() {
+ /**
+ * Do we really need `admin_styles`? With the new admin UI, it's breaking some bits.
+ * Jetpack::init()->admin_styles();
+ */
}
/**
* Load scripts and styles for front end.
- * @return null
*/
- function load_styles_register_scripts() {
+ public function load_styles_register_scripts() {
if ( $this->in_jetpack ) {
wp_enqueue_style( 'jetpack_likes', plugins_url( 'likes/style.css', __FILE__ ), array(), JETPACK__VERSION );
$this->register_scripts();
}
}
-
- /**
- * Stub for is_post_likeable, since some wpcom functions call this directly on the class
- * Are likes enabled for this post?
- *
- * @param int $post_id
- * @return bool
- */
- static function is_post_likeable( $post_id = 0 ) {
- _deprecated_function( __METHOD__, 'jetpack-5.4', 'Jetpack_Likes_Settings()->is_post_likeable' );
- $settings = new Jetpack_Likes_Settings();
- return $settings->is_post_likeable( $post_id );
- }
-
- /**
- * Stub for is_likes_visible, since some themes were calling it directly from this class
- *
- * @deprecated 5.4
- * @return bool
- */
- function is_likes_visible() {
- _deprecated_function( __METHOD__, 'jetpack-5.4', 'Jetpack_Likes_Settings()->is_likes_visible' );
-
- $settings = new Jetpack_Likes_Settings();
- return $settings->is_likes_visible();
- }
-
/**
* Adds in the jetpack-targetable class so when we visit sharing#likes our like settings get highlighted by a yellow box
- * @param string $html row heading for the sharedaddy "which page" setting
- * @return string html with the jetpack-targetable class and likes id. tbody gets closed after the like settings
+ *
+ * @param string $html row heading for the sharedaddy "which page" setting.
+ * @return string $html with the jetpack-targetable class and likes id. tbody gets closed after the like settings
*/
- function configuration_target_area( $html = '' ) {
+ public function configuration_target_area( $html = '' ) {
$html = "<tbody id='likes' class='jetpack-targetable'>" . $html;
return $html;
}
/**
- * Options to be added to the discussion page (see also admin_settings_init, etc below for Sharing settings page)
- */
-
- function admin_discussion_likes_settings_init() {
- // Add a temporary section, until we can move the setting out of there and with the rest of the email notification settings
+ * Options to be added to the discussion page (see also admin_settings_init, etc below for Sharing settings page)
+ */
+ public function admin_discussion_likes_settings_init() {
+ // Add a temporary section, until we can move the setting out of there and with the rest of the email notification settings.
add_settings_section( 'likes-notifications', __( 'Likes Notifications', 'jetpack' ), array( $this, 'admin_discussion_likes_settings_section' ), 'discussion' );
add_settings_field( 'social-notifications', __( 'Email me whenever', 'jetpack' ), array( $this, 'admin_discussion_likes_settings_field' ), 'discussion', 'likes-notifications' );
- // Register the setting
+ // Register the setting.
register_setting( 'discussion', 'social_notifications_like', array( $this, 'admin_discussion_likes_settings_validate' ) );
}
- function admin_discussion_likes_settings_section() {
- // Atypical usage here. We emit jquery to move likes notification checkbox to be with the rest of the email notification settings
-?>
+ /** Add email notification options to WordPress discussion settings */
+ public function admin_discussion_likes_settings_section() {
+ // Atypical usage here. We emit jquery to move likes notification checkbox to be with the rest of the email notification settings.
+ ?>
<script type="text/javascript">
jQuery( function( $ ) {
var table = $( '#social_notifications_like' ).parents( 'table:first' ),
@@ -214,54 +199,71 @@ class Jetpack_Likes {
table.remove();
} );
</script>
-<?php
+ <?php
}
- function admin_likes_get_option( $option ) {
+ /** Check if email notifications for likes is on or off.
+ *
+ * @param string $option - which option we're checking (social_notifications_like).
+ */
+ public function admin_likes_get_option( $option ) {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
$option_setting = get_blog_option( get_current_blog_id(), $option, 'on' );
} else {
$option_setting = get_option( $option, 'on' );
}
- return intval( 'on' == $option_setting );
+ return (int) ( 'on' === $option_setting );
}
- function admin_discussion_likes_settings_field() {
+ /** Display email notification for likes setting in WordPress' discussion settings. */
+ public function admin_discussion_likes_settings_field() {
$like = $this->admin_likes_get_option( 'social_notifications_like' );
-?>
+ ?>
<label><input type="checkbox" id="social_notifications_like" name="social_notifications_like" value="1" <?php checked( $like ); ?> /> <?php esc_html_e( 'Someone likes one of my posts', 'jetpack' ); ?></label>
-<?php
+ <?php
}
- function admin_discussion_likes_settings_validate( $input ) {
+ /**
+ * Validate email notification settings.
+ *
+ * @param string $input - determines if checbox is on or off.
+ */
+ public function admin_discussion_likes_settings_validate( $input ) {
// If it's not set (was unchecked during form submission) or was set to off (during option update), return 'off'.
- if ( !$input || 'off' == $input )
+ if ( ! $input || 'off' === $input ) {
return 'off';
-
- // Otherwise, return 'on'.
+ }
+ // Otherwise return 'on'.
return 'on';
}
- function admin_init() {
+ /** Initialize admin settings */
+ public function admin_init() {
add_filter( 'manage_posts_columns', array( $this, 'add_like_count_column' ) );
add_filter( 'manage_pages_columns', array( $this, 'add_like_count_column' ) );
add_action( 'manage_posts_custom_column', array( $this, 'likes_edit_column' ), 10, 2 );
add_action( 'manage_pages_custom_column', array( $this, 'likes_edit_column' ), 10, 2 );
add_action( 'admin_print_styles-edit.php', array( $this, 'load_admin_css' ) );
- add_action( "admin_print_scripts-edit.php", array( $this, 'enqueue_admin_scripts' ) );
+ add_action( 'admin_print_scripts-edit.php', array( $this, 'enqueue_admin_scripts' ) );
}
- function action_init() {
- if ( is_admin() ) {
+ /** Initialize action */
+ public function action_init() {
+ /*
+ * Only check if the module is enabled here because
+ * we are not currently in The Loop and do not yet have access to check
+ * the switch_like_status post meta flag for the post to be loaded.
+ */
+ if ( is_admin() || ! $this->settings->is_likes_module_enabled() ) {
return;
}
if ( ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) ||
- ( defined( 'APP_REQUEST' ) && APP_REQUEST ) ||
- ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) ||
- ( defined( 'COOKIE_AUTH_REQUEST' ) && COOKIE_AUTH_REQUEST ) ||
- ( defined( 'JABBER_SERVER' ) && JABBER_SERVER ) ) {
+ ( defined( 'APP_REQUEST' ) && APP_REQUEST ) ||
+ ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) ||
+ ( defined( 'COOKIE_AUTH_REQUEST' ) && COOKIE_AUTH_REQUEST ) ||
+ ( defined( 'JABBER_SERVER' ) && JABBER_SERVER ) ) {
return;
}
@@ -273,58 +275,39 @@ class Jetpack_Likes {
}
if ( $this->in_jetpack ) {
- add_filter( 'the_content', array( &$this, 'post_likes' ), 30, 1 );
- add_filter( 'the_excerpt', array( &$this, 'post_likes' ), 30, 1 );
+ add_filter( 'the_content', array( $this, 'post_likes' ), 30, 1 );
+ add_filter( 'the_excerpt', array( $this, 'post_likes' ), 30, 1 );
} else {
- add_filter( 'post_flair', array( &$this, 'post_likes' ), 30, 1 );
+ add_filter( 'post_flair', array( $this, 'post_likes' ), 30, 1 );
add_filter( 'post_flair_block_css', array( $this, 'post_flair_service_enabled_like' ) );
- wp_enqueue_script( 'postmessage', '/wp-content/js/postmessage.js', array( 'jquery' ), JETPACK__VERSION, false );
- wp_enqueue_script( 'jetpack_resize', '/wp-content/js/jquery/jquery.jetpack-resize.js', array( 'jquery' ), JETPACK__VERSION, false );
- wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'queuehandler.js' , __FILE__ ), array( 'jquery', 'postmessage', 'jetpack_resize' ), JETPACK__VERSION, true );
+ wp_enqueue_script( 'jetpack_likes_queuehandler', plugins_url( 'queuehandler.js', __FILE__ ), array(), JETPACK__VERSION, true );
wp_enqueue_style( 'jetpack_likes', plugins_url( 'jetpack-likes.css', __FILE__ ), array(), JETPACK__VERSION );
}
}
/**
- * Register scripts
- */
- function register_scripts() {
- wp_register_script(
- 'postmessage',
- Assets::get_file_url_for_environment( '_inc/build/postmessage.min.js', '_inc/postmessage.js' ),
- array( 'jquery' ),
- JETPACK__VERSION,
- false
- );
- wp_register_script(
- 'jetpack_resize',
- Assets::get_file_url_for_environment(
- '_inc/build/jquery.jetpack-resize.min.js',
- '_inc/jquery.jetpack-resize.js'
- ),
- array( 'jquery' ),
- JETPACK__VERSION,
- false
- );
+ * Register scripts.
+ */
+ public function register_scripts() {
wp_register_script(
'jetpack_likes_queuehandler',
Assets::get_file_url_for_environment(
'_inc/build/likes/queuehandler.min.js',
'modules/likes/queuehandler.js'
),
- array( 'jquery', 'postmessage', 'jetpack_resize' ),
+ array(),
JETPACK__VERSION,
true
);
}
/**
- * Load the CSS needed for the wp-admin area.
- */
- function load_admin_css() {
- ?>
+ * Load the CSS needed for the wp-admin area.
+ */
+ public function load_admin_css() {
+ ?>
<style type="text/css">
.vers img { display: none; }
.metabox-prefs .vers img { display: inline; }
@@ -340,13 +323,13 @@ class Jetpack_Likes {
margin-top: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
- background-color: #72777C;
+ background-color: #787c82;
color: #FFF;
font-size: 11px;
line-height: 21px;
}
.fixed .column-likes .post-com-count::after { border: none !important; }
- .fixed .column-likes .post-com-count:hover { background-color: #0073AA; }
+ .fixed .column-likes .post-com-count:hover { background-color: #2271b1; }
.fixed .column-likes .vers:before {
font: normal 20px/1 dashicons;
content: '\f155';
@@ -364,10 +347,10 @@ class Jetpack_Likes {
}
/**
- * Load the JS required for loading the like counts.
- */
- function enqueue_admin_scripts() {
- if ( empty( $_GET['post_type'] ) || 'post' == $_GET['post_type'] || 'page' == $_GET['post_type'] ) {
+ * Load the JS required for loading the like counts.
+ */
+ public function enqueue_admin_scripts() {
+ if ( empty( $_GET['post_type'] ) || 'post' === $_GET['post_type'] || 'page' === $_GET['post_type'] ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
if ( $this->in_jetpack ) {
wp_enqueue_script(
'likes-post-count',
@@ -376,7 +359,8 @@ class Jetpack_Likes {
'modules/likes/post-count.js'
),
array( 'jquery' ),
- JETPACK__VERSION
+ JETPACK__VERSION,
+ $in_footer = false
);
wp_enqueue_script(
'likes-post-count-jetpack',
@@ -385,24 +369,25 @@ class Jetpack_Likes {
'modules/likes/post-count-jetpack.js'
),
array( 'likes-post-count' ),
- JETPACK__VERSION
+ JETPACK__VERSION,
+ $in_footer = false
);
} else {
- wp_enqueue_script( 'jquery.wpcom-proxy-request', "/wp-content/js/jquery/jquery.wpcom-proxy-request.js", array('jquery'), NULL, true );
- wp_enqueue_script( 'likes-post-count', plugins_url( 'likes/post-count.js', dirname( __FILE__ ) ), array( 'jquery' ), JETPACK__VERSION );
- wp_enqueue_script( 'likes-post-count-wpcom', plugins_url( 'likes/post-count-wpcom.js', dirname( __FILE__ ) ), array( 'likes-post-count', 'jquery.wpcom-proxy-request' ), JETPACK__VERSION );
+ wp_enqueue_script( 'jquery.wpcom-proxy-request', '/wp-content/js/jquery/jquery.wpcom-proxy-request.js', array( 'jquery' ), JETPACK__VERSION, true );
+ wp_enqueue_script( 'likes-post-count', plugins_url( 'likes/post-count.js', __DIR__ ), array( 'jquery' ), JETPACK__VERSION, $in_footer = false );
+ wp_enqueue_script( 'likes-post-count-wpcom', plugins_url( 'likes/post-count-wpcom.js', __DIR__ ), array( 'likes-post-count', 'jquery.wpcom-proxy-request' ), JETPACK__VERSION, $in_footer = false );
}
}
}
/**
- * Add "Likes" column data to the post edit table in wp-admin.
- *
- * @param string $column_name
- * @param int $post_id
- */
- function likes_edit_column( $column_name, $post_id ) {
- if ( 'likes' == $column_name ) {
+ * Add "Likes" column data to the post edit table in wp-admin.
+ *
+ * @param string $column_name - name of the column.
+ * @param int $post_id - the post id.
+ */
+ public function likes_edit_column( $column_name, $post_id ) {
+ if ( 'likes' === $column_name ) {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
$blog_id = get_current_blog_id();
@@ -410,7 +395,8 @@ class Jetpack_Likes {
$blog_id = Jetpack_Options::get_option( 'id' );
}
- $permalink = get_permalink( get_the_ID() ); ?>
+ $permalink = get_permalink( get_the_ID() );
+ ?>
<a title="" data-post-id="<?php echo (int) $post_id; ?>" class="post-com-count post-like-count" id="post-like-count-<?php echo (int) $post_id; ?>" data-blog-id="<?php echo (int) $blog_id; ?>" href="<?php echo esc_url( $permalink ); ?>#like-<?php echo (int) $post_id; ?>">
<span class="comment-count">0</span>
</a>
@@ -419,86 +405,103 @@ class Jetpack_Likes {
}
/**
- * Add a "Likes" column header to the post edit table in wp-admin.
- *
- * @param array $columns
- * @return array
- */
- function add_like_count_column( $columns ) {
+ * Add a "Likes" column header to the post edit table in wp-admin.
+ *
+ * @param array $columns - array of columns in wp-admin.
+ */
+ public function add_like_count_column( $columns ) {
$date = $columns['date'];
unset( $columns['date'] );
$columns['likes'] = '<span class="vers"><img title="' . esc_attr__( 'Likes', 'jetpack' ) . '" alt="' . esc_attr__( 'Likes', 'jetpack' ) . '" src="//s0.wordpress.com/i/like-grey-icon.png" /><span class="screen-reader-text">' . __( 'Likes', 'jetpack' ) . '</span></span>';
- $columns['date'] = $date;
+ $columns['date'] = $date;
return $columns;
}
- function post_likes( $content ) {
+ /**
+ * Append like button to content.
+ *
+ * @param string $content - content of the page.
+ */
+ public function post_likes( $content ) {
$post_id = get_the_ID();
- if ( ! is_numeric( $post_id ) || ! $this->settings->is_likes_visible() )
+ if ( ! is_numeric( $post_id ) || ! $this->settings->is_likes_visible() ) {
return $content;
+ }
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $blog_id = get_current_blog_id();
+ $blog_id = get_current_blog_id();
$bloginfo = get_blog_details( (int) $blog_id );
- $domain = $bloginfo->domain;
+ $domain = $bloginfo->domain;
} else {
- $blog_id = Jetpack_Options::get_option( 'id' );
- $url = home_url();
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $url = home_url();
$url_parts = wp_parse_url( $url );
- $domain = $url_parts['host'];
+ $domain = $url_parts['host'];
}
- // make sure to include the scripts before the iframe otherwise weird things happen
+ // Make sure to include the scripts before the iframe otherwise weird things happen.
add_action( 'wp_footer', 'jetpack_likes_master_iframe', 21 );
/**
- * if the same post appears more then once on a page the page goes crazy
+ * If the same post appears more then once on a page the page goes crazy
* we need a slightly more unique id / name for the widget wrapper.
*/
$uniqid = uniqid();
- $src = sprintf( 'https://widgets.wp.com/likes/#blog_id=%1$d&amp;post_id=%2$d&amp;origin=%3$s&amp;obj_id=%1$d-%2$d-%4$s', $blog_id, $post_id, $domain, $uniqid );
- $name = sprintf( 'like-post-frame-%1$d-%2$d-%3$s', $blog_id, $post_id, $uniqid );
- $wrapper = sprintf( 'like-post-wrapper-%1$d-%2$d-%3$s', $blog_id, $post_id, $uniqid );
+ $src = sprintf( 'https://widgets.wp.com/likes/#blog_id=%1$d&amp;post_id=%2$d&amp;origin=%3$s&amp;obj_id=%1$d-%2$d-%4$s', $blog_id, $post_id, $domain, $uniqid );
+ $name = sprintf( 'like-post-frame-%1$d-%2$d-%3$s', $blog_id, $post_id, $uniqid );
+ $wrapper = sprintf( 'like-post-wrapper-%1$d-%2$d-%3$s', $blog_id, $post_id, $uniqid );
$headline = sprintf(
/** This filter is already documented in modules/sharedaddy/sharing-service.php */
apply_filters( 'jetpack_sharing_headline_html', '<h3 class="sd-title">%s</h3>', esc_html__( 'Like this:', 'jetpack' ), 'likes' ),
esc_html__( 'Like this:', 'jetpack' )
);
- $html = "<div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='$wrapper' data-src='$src' data-name='$name'>";
+ $title = esc_html__( 'Like or Reblog', 'jetpack' );
+
+ $html = "<div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='$wrapper' data-src='$src' data-name='$name' data-title='$title'>";
$html .= $headline;
$html .= "<div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>" . esc_html__( 'Like', 'jetpack' ) . '</span></span> <span class="loading">' . esc_html__( 'Loading...', 'jetpack' ) . '</span></div>';
$html .= "<span class='sd-text-color'></span><a class='sd-link-color'></a>";
$html .= '</div>';
- // Let's make sure that the script is enqueued
+ // Let's make sure that the script is enqueued.
wp_enqueue_script( 'jetpack_likes_queuehandler' );
return $content . $html;
}
- function post_flair_service_enabled_like( $classes ) {
+ /**
+ * Adds sd-like-enabled CSS class
+ *
+ * @param array $classes CSS class for post flair.
+ */
+ public function post_flair_service_enabled_like( $classes ) {
$classes[] = 'sd-like-enabled';
return $classes;
}
- function is_admin_bar_button_visible() {
+ /** Checks if admin bar is visible.*/
+ public function is_admin_bar_button_visible() {
global $wp_admin_bar;
- if ( ! is_object( $wp_admin_bar ) )
+ if ( ! is_object( $wp_admin_bar ) ) {
return false;
+ }
- if ( ( ! is_singular( 'post' ) && ! is_attachment() && ! is_page() ) )
+ if ( ( ! is_singular( 'post' ) && ! is_attachment() && ! is_page() ) ) {
return false;
+ }
- if ( ! $this->settings->is_likes_visible() )
+ if ( ! $this->settings->is_likes_visible() ) {
return false;
+ }
- if ( ! $this->settings->is_post_likeable() )
+ if ( ! $this->settings->is_post_likeable() ) {
return false;
+ }
/**
* Filters whether the Like button is enabled in the admin bar.
@@ -512,7 +515,8 @@ class Jetpack_Likes {
return (bool) apply_filters( 'jetpack_admin_bar_likes_enabled', true );
}
- function admin_bar_likes() {
+ /** Adds like section in admin bar. */
+ public function admin_bar_likes() {
global $wp_admin_bar;
$post_id = get_the_ID();
@@ -522,20 +526,20 @@ class Jetpack_Likes {
}
$protocol = 'http';
- if ( is_ssl() )
+ if ( is_ssl() ) {
$protocol = 'https';
-
+ }
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $blog_id = get_current_blog_id();
+ $blog_id = get_current_blog_id();
$bloginfo = get_blog_details( (int) $blog_id );
- $domain = $bloginfo->domain;
+ $domain = $bloginfo->domain;
} else {
- $blog_id = Jetpack_Options::get_option( 'id' );
- $url = home_url();
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $url = home_url();
$url_parts = wp_parse_url( $url );
- $domain = $url_parts['host'];
+ $domain = $url_parts['host'];
}
- // make sure to include the scripts before the iframe otherwise weird things happen
+ // Make sure to include the scripts before the iframe otherwise weird things happen.
add_action( 'wp_footer', 'jetpack_likes_master_iframe', 21 );
$src = sprintf( 'https://widgets.wp.com/likes/#blog_id=%2$d&amp;post_id=%3$d&amp;origin=%1$s://%4$s', $protocol, $blog_id, $post_id, $domain );
@@ -543,10 +547,10 @@ class Jetpack_Likes {
$html = "<iframe class='admin-bar-likes-widget jetpack-likes-widget' scrolling='no' frameBorder='0' name='admin-bar-likes-widget' src='$src'></iframe>";
$node = array(
- 'id' => 'admin-bar-likes-widget',
- 'meta' => array(
- 'html' => $html
- )
+ 'id' => 'admin-bar-likes-widget',
+ 'meta' => array(
+ 'html' => $html,
+ ),
);
$wp_admin_bar->add_node( $node );
@@ -560,6 +564,8 @@ class Jetpack_Likes {
* When the switch_like_status post_meta is unset, we follow the global setting in Sharing.
* When it is set to 0, we disable likes on the post, regardless of the global setting.
* When it is set to 1, we enable likes on the post, regardless of the global setting.
+ *
+ * @param array $post - post data we're checking.
*/
function jetpack_post_likes_get_value( array $post ) {
$post_likes_switched = get_post_meta( $post['id'], 'switch_like_status', true );
@@ -567,22 +573,15 @@ function jetpack_post_likes_get_value( array $post ) {
/** This filter is documented in modules/jetpack-likes-settings.php */
$sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) );
- // an empty string: post meta was not set, so go with the global setting
- if ( "" === $post_likes_switched ) {
+ // An empty string: post meta was not set, so go with the global setting.
+ if ( '' === $post_likes_switched ) {
return $sitewide_likes_enabled;
- }
-
- // user overrode the global setting to disable likes
- elseif ( "0" === $post_likes_switched ) {
+ } elseif ( '0' === $post_likes_switched ) { // User overrode the global setting to disable likes.
return false;
- }
-
- // user overrode the global setting to enable likes
- elseif ( "1" === $post_likes_switched ) {
+ } elseif ( '1' === $post_likes_switched ) { // User overrode the global setting to enable likes.
return true;
}
-
- // no default fallback, let's stay explicit
+ // No default fallback, let's stay explicit.
}
/**
@@ -592,6 +591,9 @@ function jetpack_post_likes_get_value( array $post ) {
* When the switch_like_status post_meta is unset, we follow the global setting in Sharing.
* When it is set to 0, we disable likes on the post, regardless of the global setting.
* When it is set to 1, we enable likes on the post, regardless of the global setting.
+ *
+ * @param bool $enable_post_likes - checks if post likes are enabled.
+ * @param object $post_object - object containing post data.
*/
function jetpack_post_likes_update_value( $enable_post_likes, $post_object ) {
/** This filter is documented in modules/jetpack-likes-settings.php */
@@ -600,11 +602,11 @@ function jetpack_post_likes_update_value( $enable_post_likes, $post_object ) {
$should_switch_status = $enable_post_likes !== $sitewide_likes_enabled;
if ( $should_switch_status ) {
- // set the meta to 0 if the user wants to disable likes, 1 if user wants to enable
+ // Set the meta to 0 if the user wants to disable likes, 1 if user wants to enable.
$switch_like_status = ( $enable_post_likes ? 1 : 0 );
return update_post_meta( $post_object->ID, 'switch_like_status', $switch_like_status );
} else {
- // unset the meta otherwise
+ // Unset the meta otherwise.
return delete_post_meta( $post_object->ID, 'switch_like_status' );
}
}
@@ -644,11 +646,11 @@ function jetpack_post_likes_register_rest_field() {
add_action( 'rest_api_init', 'jetpack_post_likes_register_rest_field' );
// Some CPTs (e.g. Jetpack portfolios and testimonials) get registered with
-// restapi_theme_init because they depend on theme support, so let's also hook to that
+// restapi_theme_init because they depend on theme support, so let's also hook to that.
add_action( 'restapi_theme_init', 'jetpack_post_likes_register_rest_field', 20 );
/**
- * Set the Likes and Sharing Gutenberg extension availability
+ * Set the Likes and Sharing Gutenberg extension availability.
*/
function jetpack_post_likes_set_extension_availability() {
Jetpack_Gutenberg::set_extension_available( 'likes' );
diff --git a/plugins/jetpack/modules/likes/jetpack-likes-settings.php b/plugins/jetpack/modules/likes/jetpack-likes-settings.php
index a172603b..0e373f58 100644
--- a/plugins/jetpack/modules/likes/jetpack-likes-settings.php
+++ b/plugins/jetpack/modules/likes/jetpack-likes-settings.php
@@ -246,25 +246,59 @@ class Jetpack_Likes_Settings {
$sitewide_likes_enabled = (bool) $this->is_enabled_sitewide();
$post_likes_switched = get_post_meta( $post->ID, 'switch_like_status', true );
- // on WPCOM, we need to look at post edit date so we don't break old posts
- // if post edit date predates this code, stick with the former (buggy) behavior
- // see: p7DVsv-64H-p2
+ /*
+ * On WPCOM, headstart was inserting bad data for post_likes_switched.
+ * it was wrapping the boolean value in an array. The array is always truthy regardless of its contents.
+ * There was another bug where truthy values were ignored if the global like setting was false.
+ * So in effect, the values for headstart never had an inpact.
+ * Delete the $post_likes_switched flag in this case in order to keep the behaviour as it was.
+ */
+ if ( is_array( $post_likes_switched ) ) {
+ $post_likes_switched = null;
+ }
+
+ /*
+ * on WPCOM, we need to look at post edit date so we don't break old posts
+ * if post edit date predates this code, stick with the former (buggy) behavior
+ * see: p7DVsv-64H-p2
+ */
$last_modified_time = strtotime( $post->post_modified_gmt );
$behavior_was_changed_at = strtotime( "2019-02-22 00:40:42" );
if ( $this->in_jetpack || $last_modified_time > $behavior_was_changed_at ) {
- // the new and improved behavior on Jetpack and recent WPCOM posts:
- // $post_likes_switched is empty to follow site setting,
- // 0 if we want likes disabled, 1 if we want likes enabled
+ /*
+ * the new and improved behavior on Jetpack and recent WPCOM posts:
+ * $post_likes_switched is empty to follow site setting,
+ * 0 if we want likes disabled, 1 if we want likes enabled.
+ */
return $post_likes_switched || ( $sitewide_likes_enabled && $post_likes_switched !== '0' );
}
- // implicit else (old behavior): $post_likes_switched simply inverts the global setting
+ // implicit else (old behavior): $post_likes_switched simply inverts the global setting.
return ( (bool) $post_likes_switched ) xor $sitewide_likes_enabled;
}
/**
+ * Is the like button itself visible (as opposed to the reblog button)
+ *
+ * If called from within The Loop or if called with a $post_id set, then the post will be checked.
+ * Otherwise the sitewide setting will be used.
+ *
+ * @param int $post_id The ID of the post being rendered. Defaults to the current post if called from within The Loop.
+ * @return bool
+ */
+ public function is_likes_button_visible( $post_id = 0 ) {
+ if ( in_the_loop() || $post_id ) {
+ // If in The Loop, is_post_likeable will check the current post.
+ return $this->is_post_likeable( $post_id );
+ } else {
+ // Otherwise, check and see if likes are enabled sitewide.
+ return $this->is_enabled_sitewide();
+ }
+ }
+
+ /**
* Are likes visible in this context?
*
* Some of this code was taken and modified from sharing_display() to ensure
@@ -275,53 +309,52 @@ class Jetpack_Likes_Settings {
return false;
}
- global $wp_current_filter; // Used to apply 'sharing_show' filter
+ return $this->is_likes_button_visible() && $this->is_likes_module_enabled();
+ }
- $post = get_post();
+ /**
+ * Apply filters to determine if the likes module itself is enabled
+ *
+ * @return bool
+ */
+ public function is_likes_module_enabled() {
+ global $wp_current_filter; // Used to apply 'sharing_show' filter.
+
+ $post = get_post();
+ $enabled = true;
- // Never show on feeds or previews
+ // Never show on feeds or previews.
if ( is_feed() || is_preview() ) {
$enabled = false;
-
// Not a feed or preview, so what is it?
} else {
-
- if ( in_the_loop() ) {
- // If in the loop, check if the current post is likeable
- $enabled = $this->is_post_likeable();
- } else {
- // Otherwise, check and see if likes are enabled sitewide
- $enabled = $this->is_enabled_sitewide();
- }
-
- if ( post_password_required() )
+ if ( post_password_required() ) {
$enabled = false;
+ }
if ( in_array( 'get_the_excerpt', (array) $wp_current_filter ) ) {
$enabled = false;
}
-
// Sharing Setting Overrides ****************************************
-
- // Single post including custom post types
+ // Single post including custom post types.
if ( is_single() ) {
- if ( ! $this->is_single_post_enabled( $post->post_type ) ) {
+ if ( ! $this->is_single_post_enabled( ( $post instanceof WP_Post ) ? $post->post_type : 'post' ) ) {
$enabled = false;
}
- // Single page
+ // Single page.
} elseif ( is_page() && ! is_front_page() ) {
if ( ! $this->is_single_page_enabled() ) {
$enabled = false;
}
- // Attachment
+ // Attachment.
} elseif ( is_attachment() ) {
if ( ! $this->is_attachment_enabled() ) {
$enabled = false;
}
- // All other loops
+ // All other loops.
} elseif ( ! $this->is_index_enabled() ) {
$enabled = false;
}
@@ -339,7 +372,7 @@ class Jetpack_Likes_Settings {
}
}
- // Run through the sharing filters
+ // Run through the sharing filters.
/** This filter is documented in modules/sharedaddy/sharing-service.php */
$enabled = apply_filters( 'sharing_show', $enabled, $post );
@@ -389,7 +422,7 @@ class Jetpack_Likes_Settings {
function get_options() {
$setting = array();
$setting['disabled'] = get_option( 'disabled_likes' );
- $sharing = get_option( 'sharing-options' );
+ $sharing = get_option( 'sharing-options', array() );
// Default visibility settings
if ( ! isset( $sharing['global']['show'] ) ) {
diff --git a/plugins/jetpack/modules/likes/post-count-jetpack.js b/plugins/jetpack/modules/likes/post-count-jetpack.js
index 1059e9bd..89d03681 100644
--- a/plugins/jetpack/modules/likes/post-count-jetpack.js
+++ b/plugins/jetpack/modules/likes/post-count-jetpack.js
@@ -1,17 +1,17 @@
-var wpPostLikeCount = wpPostLikeCount || {};
+window.wpPostLikeCount = window.wpPostLikeCount || {};
-( function( $ ) {
- wpPostLikeCount = jQuery.extend( wpPostLikeCount, {
- request: function( options ) {
+( function ( $ ) {
+ window.wpPostLikeCount = jQuery.extend( window.wpPostLikeCount, {
+ request: function ( options ) {
return $.ajax( {
type: 'GET',
- url: wpPostLikeCount.jsonAPIbase + options.path,
+ url: window.wpPostLikeCount.jsonAPIbase + options.path,
dataType: 'jsonp',
data: options.data,
- success: function( response ) {
+ success: function ( response ) {
options.success( response );
},
- error: function( response ) {
+ error: function ( response ) {
options.error( response );
},
} );
diff --git a/plugins/jetpack/modules/likes/post-count.js b/plugins/jetpack/modules/likes/post-count.js
index 6f4c779f..8ea4466a 100644
--- a/plugins/jetpack/modules/likes/post-count.js
+++ b/plugins/jetpack/modules/likes/post-count.js
@@ -1,20 +1,22 @@
-var wpPostLikeCount = wpPostLikeCount || {};
+window.wpPostLikeCount = window.wpPostLikeCount || {};
-( function( $ ) {
- wpPostLikeCount = jQuery.extend( wpPostLikeCount, {
+( function ( $ ) {
+ window.wpPostLikeCount = jQuery.extend( window.wpPostLikeCount, {
jsonAPIbase: 'https://public-api.wordpress.com/rest/v1',
APIqueue: [],
- wpPostLikeCount: function() {
- $( '.post-like-count' ).each( function() {
+ wpPostLikeCount: function () {
+ $( '.post-like-count' ).each( function () {
var post_id = $( this ).attr( 'data-post-id' );
var blog_id = $( this ).attr( 'data-blog-id' );
- wpPostLikeCount.APIqueue.push( '/sites/' + blog_id + '/posts/' + post_id + '/likes' );
+ window.wpPostLikeCount.APIqueue.push(
+ '/sites/' + blog_id + '/posts/' + post_id + '/likes'
+ );
} );
- wpPostLikeCount.getCounts();
+ window.wpPostLikeCount.getCounts();
},
- showCount: function( post_id, count ) {
+ showCount: function ( post_id, count ) {
if ( count > 0 ) {
$( '#post-like-count-' + post_id )
.find( '.comment-count' )
@@ -28,35 +30,35 @@ var wpPostLikeCount = wpPostLikeCount || {};
}
},
- getCounts: function() {
+ getCounts: function () {
var batchRequest = {
path: '/batch',
data: '',
- success: function( response ) {
+ success: function ( response ) {
for ( var path in response ) {
if ( ! response[ path ].error_data ) {
var urlPieces = path.split( '/' ); // pieces[4] = post id;
var post_id = urlPieces[ 4 ];
- wpPostLikeCount.showCount( post_id, response[ path ].found );
+ window.wpPostLikeCount.showCount( post_id, response[ path ].found );
}
}
},
- error: function(/*response*/) {},
+ error: function (/*response*/) {},
};
var amp = '';
- for ( var i = 0; i < wpPostLikeCount.APIqueue.length; i++ ) {
+ for ( var i = 0; i < window.wpPostLikeCount.APIqueue.length; i++ ) {
if ( i > 0 ) {
amp = '&';
}
- batchRequest.data += amp + 'urls[]=' + wpPostLikeCount.APIqueue[ i ];
+ batchRequest.data += amp + 'urls[]=' + window.wpPostLikeCount.APIqueue[ i ];
}
- wpPostLikeCount.request( batchRequest );
+ window.wpPostLikeCount.request( batchRequest );
},
} );
} )( jQuery );
-jQuery( document ).ready( function(/*$*/) {
- wpPostLikeCount.wpPostLikeCount();
+jQuery( document ).ready( function (/*$*/) {
+ window.wpPostLikeCount.wpPostLikeCount();
} );
diff --git a/plugins/jetpack/modules/likes/queuehandler.js b/plugins/jetpack/modules/likes/queuehandler.js
index df6970f2..8d2c0e3f 100644
--- a/plugins/jetpack/modules/likes/queuehandler.js
+++ b/plugins/jetpack/modules/likes/queuehandler.js
@@ -1,4 +1,4 @@
-/* global pm, wpcom_reblog, JSON */
+/* global wpcom_reblog */
var jetpackLikesWidgetBatch = [];
var jetpackLikesMasterReady = false;
@@ -12,8 +12,16 @@ var jetpackLikesLookAhead = 2000; // pixels
// Keeps track of loaded comment likes widget so we can unload them when they are scrolled out of view.
var jetpackCommentLikesLoadedWidgets = [];
+var jetpackLikesDocReadyPromise = new Promise( resolve => {
+ if ( document.readyState !== 'loading' ) {
+ resolve();
+ } else {
+ window.addEventListener( 'DOMContentLoaded', () => resolve() );
+ }
+} );
+
function JetpackLikesPostMessage( message, target ) {
- if ( 'string' === typeof message ) {
+ if ( typeof message === 'string' ) {
try {
message = JSON.parse( message );
} catch ( e ) {
@@ -21,29 +29,36 @@ function JetpackLikesPostMessage( message, target ) {
}
}
- pm( {
- target: target,
- type: 'likesMessage',
- data: message,
- origin: '*',
- } );
+ if ( target && typeof target.postMessage === 'function' ) {
+ try {
+ target.postMessage(
+ JSON.stringify( {
+ type: 'likesMessage',
+ data: message,
+ } ),
+ '*'
+ );
+ } catch ( e ) {
+ return;
+ }
+ }
}
function JetpackLikesBatchHandler() {
- var requests = [];
- jQuery( 'div.jetpack-likes-widget-unloaded' ).each( function() {
- if ( jetpackLikesWidgetBatch.indexOf( this.id ) > -1 ) {
+ const requests = [];
+ document.querySelectorAll( 'div.jetpack-likes-widget-unloaded' ).forEach( widget => {
+ if ( jetpackLikesWidgetBatch.indexOf( widget.id ) > -1 ) {
return;
}
- if ( ! jetpackIsScrolledIntoView( this ) ) {
+ if ( ! jetpackIsScrolledIntoView( widget ) ) {
return;
}
- jetpackLikesWidgetBatch.push( this.id );
+ jetpackLikesWidgetBatch.push( widget.id );
var regex = /like-(post|comment)-wrapper-(\d+)-(\d+)-(\w+)/,
- match = regex.exec( this.id ),
+ match = regex.exec( widget.id ),
info;
if ( ! match || match.length !== 5 ) {
@@ -52,7 +67,7 @@ function JetpackLikesBatchHandler() {
info = {
blog_id: match[ 2 ],
- width: this.width,
+ width: widget.width,
};
if ( 'post' === match[ 1 ] ) {
@@ -74,62 +89,79 @@ function JetpackLikesBatchHandler() {
}
}
-function JetpackLikesMessageListener( event, message ) {
- var allowedOrigin, $container, $list, offset, rowLength, height, scrollbarWidth;
+function JetpackLikesMessageListener( event ) {
+ let message = event && event.data;
+ if ( typeof message === 'string' ) {
+ try {
+ message = JSON.parse( message );
+ } catch ( err ) {
+ return;
+ }
+ }
+
+ const type = message && message.type;
+ const data = message && message.data;
- if ( 'undefined' === typeof event.event ) {
+ if ( type !== 'likesMessage' || typeof data.event === 'undefined' ) {
return;
}
// We only allow messages from one origin
- allowedOrigin = 'https://widgets.wp.com';
- if ( allowedOrigin !== message.origin ) {
+ const allowedOrigin = 'https://widgets.wp.com';
+ if ( allowedOrigin !== event.origin ) {
return;
}
- switch ( event.event ) {
+ switch ( data.event ) {
case 'masterReady':
- jQuery( document ).ready( function() {
+ jetpackLikesDocReadyPromise.then( () => {
jetpackLikesMasterReady = true;
- var stylesData = {
- event: 'injectStyles',
- },
- $sdTextColor = jQuery( '.sd-text-color' ),
- $sdLinkColor = jQuery( '.sd-link-color' );
+ const stylesData = {
+ event: 'injectStyles',
+ };
+ const sdTextColor = document.querySelector( '.sd-text-color' );
+ const sdLinkColor = document.querySelector( '.sd-link-color' );
+ const sdTextColorStyles = ( sdTextColor && getComputedStyle( sdTextColor ) ) || {};
+ const sdLinkColorStyles = ( sdLinkColor && getComputedStyle( sdLinkColor ) ) || {};
- if ( jQuery( 'iframe.admin-bar-likes-widget' ).length > 0 ) {
+ if ( document.querySelectorAll( 'iframe.admin-bar-likes-widget' ).length > 0 ) {
JetpackLikesPostMessage( { event: 'adminBarEnabled' }, window.frames[ 'likes-master' ] );
+ const bgSource = document.querySelector(
+ '#wpadminbar .quicklinks li#wp-admin-bar-wpl-like > a'
+ );
+
+ const wpAdminBar = document.querySelector( '#wpadminbar' );
+
stylesData.adminBarStyles = {
- background: jQuery( '#wpadminbar .quicklinks li#wp-admin-bar-wpl-like > a' ).css(
- 'background'
- ),
- isRtl: 'rtl' === jQuery( '#wpadminbar' ).css( 'direction' ),
+ background: bgSource && getComputedStyle( bgSource ).background,
+ isRtl: wpAdminBar && getComputedStyle( wpAdminBar ).direction === 'rtl',
};
}
- if ( ! window.addEventListener ) {
- jQuery( '#wp-admin-bar-admin-bar-likes-widget' ).hide();
+ // enable reblogs if we're on a single post page
+ if ( document.body.classList.contains( 'single' ) ) {
+ JetpackLikesPostMessage( { event: 'reblogsEnabled' }, window.frames[ 'likes-master' ] );
}
stylesData.textStyles = {
- color: $sdTextColor.css( 'color' ),
- fontFamily: $sdTextColor.css( 'font-family' ),
- fontSize: $sdTextColor.css( 'font-size' ),
- direction: $sdTextColor.css( 'direction' ),
- fontWeight: $sdTextColor.css( 'font-weight' ),
- fontStyle: $sdTextColor.css( 'font-style' ),
- textDecoration: $sdTextColor.css( 'text-decoration' ),
+ color: sdTextColorStyles[ 'color' ],
+ fontFamily: sdTextColorStyles[ 'font-family' ],
+ fontSize: sdTextColorStyles[ 'font-size' ],
+ direction: sdTextColorStyles[ 'direction' ],
+ fontWeight: sdTextColorStyles[ 'font-weight' ],
+ fontStyle: sdTextColorStyles[ 'font-style' ],
+ textDecoration: sdTextColorStyles[ 'text-decoration' ],
};
stylesData.linkStyles = {
- color: $sdLinkColor.css( 'color' ),
- fontFamily: $sdLinkColor.css( 'font-family' ),
- fontSize: $sdLinkColor.css( 'font-size' ),
- textDecoration: $sdLinkColor.css( 'text-decoration' ),
- fontWeight: $sdLinkColor.css( 'font-weight' ),
- fontStyle: $sdLinkColor.css( 'font-style' ),
+ color: sdLinkColorStyles[ 'color' ],
+ fontFamily: sdLinkColorStyles[ 'font-family' ],
+ fontSize: sdLinkColorStyles[ 'font-size' ],
+ textDecoration: sdLinkColorStyles[ 'text-decoration' ],
+ fontWeight: sdLinkColorStyles[ 'font-weight' ],
+ fontStyle: sdLinkColorStyles[ 'font-style' ],
};
JetpackLikesPostMessage( stylesData, window.frames[ 'likes-master' ] );
@@ -139,102 +171,114 @@ function JetpackLikesMessageListener( event, message ) {
break;
- case 'showLikeWidget':
- jQuery( '#' + event.id + ' .likes-widget-placeholder' ).fadeOut( 'fast' );
+ case 'showLikeWidget': {
+ const placeholder = document.querySelector( `#${ data.id } .likes-widget-placeholder` );
+ if ( placeholder ) {
+ placeholder.style.display = 'none';
+ }
break;
+ }
- case 'showCommentLikeWidget':
- jQuery( '#' + event.id + ' .likes-widget-placeholder' ).fadeOut( 'fast' );
+ case 'showCommentLikeWidget': {
+ const placeholder = document.querySelector( `#${ data.id } .likes-widget-placeholder` );
+ if ( placeholder ) {
+ placeholder.style.display = 'none';
+ }
break;
+ }
case 'killCommentLikes':
// If kill switch for comment likes is enabled remove all widgets wrappers and `Loading...` placeholders.
- jQuery( '.jetpack-comment-likes-widget-wrapper' ).remove();
+ document
+ .querySelectorAll( '.jetpack-comment-likes-widget-wrapper' )
+ .forEach( wrapper => wrapper.remove() );
break;
case 'clickReblogFlair':
- wpcom_reblog.toggle_reblog_box_flair( event.obj_id );
+ if ( wpcom_reblog && typeof wpcom_reblog.toggle_reblog_box_flair === 'function' ) {
+ wpcom_reblog.toggle_reblog_box_flair( data.obj_id );
+ }
break;
- case 'showOtherGravatars':
- $container = jQuery( '#likes-other-gravatars' );
- $list = $container.find( 'ul' );
+ case 'showOtherGravatars': {
+ const container = document.querySelector( '#likes-other-gravatars' );
+ if ( ! container ) {
+ break;
+ }
- $container.hide();
- $list.html( '' );
+ const list = container.querySelector( 'ul' );
- $container.find( '.likes-text span' ).text( event.total );
+ container.style.display = 'none';
+ list.innerHTML = '';
- jQuery.each( event.likers, function( i, liker ) {
- var element;
+ container
+ .querySelectorAll( '.likes-text span' )
+ .forEach( item => ( item.textContent = data.total ) );
- if ( 'http' !== liker.profile_URL.substr( 0, 4 ) ) {
+ ( data.likers || [] ).forEach( liker => {
+ if ( liker.profile_URL.substr( 0, 4 ) !== 'http' ) {
// We only display gravatars with http or https schema
return;
}
- element = jQuery( '<li><a><img /></a></li>' );
- element.addClass( liker.css_class );
-
- element
- .find( 'a' )
- .attr( {
- href: liker.profile_URL,
- rel: 'nofollow',
- target: '_parent',
- } )
- .addClass( 'wpl-liker' );
-
- element
- .find( 'img' )
- .attr( {
- src: liker.avatar_URL,
- alt: liker.name,
- } )
- .css( {
- width: '30px',
- height: '30px',
- paddingRight: '3px',
- } );
-
- $list.append( element );
+ const element = document.createElement( 'li' );
+ element.innerHTML = `
+ <a href="${ encodeURI( liker.profile_URL ) }" rel="nofollow" target="_parent" class="wpl-liker">
+ <img src="${ encodeURI( liker.avatar_URL ) }"
+ alt=""
+ style="width: 30px; height: 30px; padding-right: 3px;" />
+ </a>
+ `;
+
+ list.append( element );
+
+ // Add some extra attributes through native methods, to ensure strings are sanitized.
+ element.classList.add( liker.css_class );
+ element.querySelector( 'img' ).alt = liker.name;
} );
- offset = jQuery( 'body' )
- .find( "[name='" + event.parent + "']" )
- .offset();
+ const el = document.querySelector( `*[name='${ data.parent }']` );
+ const rect = el.getBoundingClientRect();
+ const win = el.ownerDocument.defaultView;
+ const offset = {
+ top: rect.top + win.pageYOffset,
+ left: rect.left + win.pageXOffset,
+ };
- $container.css( 'left', offset.left + event.position.left - 10 + 'px' );
- $container.css( 'top', offset.top + event.position.top - 33 + 'px' );
+ container.style.left = offset.left + data.position.left - 10 + 'px';
+ container.style.top = offset.top + data.position.top - 33 + 'px';
- rowLength = Math.floor( event.width / 37 );
- height = Math.ceil( event.likers.length / rowLength ) * 37 + 13;
+ const rowLength = Math.floor( data.width / 37 );
+ let height = Math.ceil( data.likers.length / rowLength ) * 37 + 13;
if ( height > 204 ) {
height = 204;
}
- $container.css( 'height', height + 'px' );
- $container.css( 'width', rowLength * 37 - 7 + 'px' );
+ const containerWidth = rowLength * 37 - 7;
+ container.style.height = height + 'px';
+ container.style.width = containerWidth + 'px';
- $list.css( 'width', rowLength * 37 + 'px' );
+ const listWidth = rowLength * 37;
+ list.style.width = listWidth + 'px';
- $container.fadeIn( 'slow' );
+ container.style.display = 'block';
- scrollbarWidth = $list[ 0 ].offsetWidth - $list[ 0 ].clientWidth;
+ const scrollbarWidth = list.offsetWidth - list.clientWidth;
if ( scrollbarWidth > 0 ) {
- $container.width( $container.width() + scrollbarWidth );
- $list.width( $list.width() + scrollbarWidth );
+ container.style.width = containerWidth + scrollbarWidth + 'px';
+ list.style.width = listWidth + scrollbarWidth + 'px';
}
+ }
}
}
-pm.bind( 'likesMessage', JetpackLikesMessageListener );
+window.addEventListener( 'message', JetpackLikesMessageListener );
-jQuery( document ).click( function( e ) {
- var $container = jQuery( '#likes-other-gravatars' );
+document.addEventListener( 'click', e => {
+ const container = document.querySelector( '#likes-other-gravatars' );
- if ( $container.has( e.target ).length === 0 ) {
- $container.fadeOut( 'slow' );
+ if ( container && ! container.contains( e.target ) ) {
+ container.style.display = 'none';
}
} );
@@ -268,91 +312,71 @@ function JetpackLikesWidgetQueueHandler() {
}
function jetpackLoadLikeWidgetIframe( wrapperID ) {
- var $wrapper;
-
- if ( 'undefined' === typeof wrapperID ) {
+ if ( typeof wrapperID === 'undefined' ) {
return;
}
- $wrapper = jQuery( '#' + wrapperID );
- $wrapper.find( 'iframe' ).remove();
+ const wrapper = document.querySelector( '#' + wrapperID );
+ wrapper.querySelectorAll( 'iframe' ).forEach( iFrame => iFrame.remove() );
- var placeholder = $wrapper.find( '.likes-widget-placeholder' );
+ const placeholder = wrapper.querySelector( '.likes-widget-placeholder' );
// Post like iframe
- if ( placeholder.hasClass( 'post-likes-widget-placeholder' ) ) {
- var postLikesFrame = document.createElement( 'iframe' );
-
- postLikesFrame[ 'class' ] = 'post-likes-widget jetpack-likes-widget';
- postLikesFrame.name = $wrapper.data( 'name' );
- postLikesFrame.src = $wrapper.data( 'src' );
- postLikesFrame.height = '18px';
- postLikesFrame.width = '200px';
+ if ( placeholder && placeholder.classList.contains( 'post-likes-widget-placeholder' ) ) {
+ const postLikesFrame = document.createElement( 'iframe' );
+
+ postLikesFrame.classList.add( 'post-likes-widget', 'jetpack-likes-widget' );
+ postLikesFrame.name = wrapper.dataset.name;
+ postLikesFrame.src = wrapper.dataset.src;
+ postLikesFrame.height = '55px';
+ postLikesFrame.width = '100%';
postLikesFrame.frameBorder = '0';
postLikesFrame.scrolling = 'no';
-
- if ( $wrapper.hasClass( 'slim-likes-widget' ) ) {
- postLikesFrame.height = '22px';
- postLikesFrame.width = '68px';
- postLikesFrame.scrolling = 'no';
- } else {
- postLikesFrame.height = '55px';
- postLikesFrame.width = '100%';
- }
+ postLikesFrame.title = wrapper.dataset.title;
placeholder.after( postLikesFrame );
}
// Comment like iframe
- if ( placeholder.hasClass( 'comment-likes-widget-placeholder' ) ) {
- var commentLikesFrame = document.createElement( 'iframe' );
+ if ( placeholder.classList.contains( 'comment-likes-widget-placeholder' ) ) {
+ const commentLikesFrame = document.createElement( 'iframe' );
- commentLikesFrame[ 'class' ] = 'comment-likes-widget-frame jetpack-likes-widget-frame';
- commentLikesFrame.name = $wrapper.data( 'name' );
- commentLikesFrame.src = $wrapper.data( 'src' );
+ commentLikesFrame.class = 'comment-likes-widget-frame jetpack-likes-widget-frame';
+ commentLikesFrame.name = wrapper.dataset.name;
+ commentLikesFrame.src = wrapper.dataset.src;
commentLikesFrame.height = '18px';
commentLikesFrame.width = '100%';
commentLikesFrame.frameBorder = '0';
commentLikesFrame.scrolling = 'no';
- $wrapper.find( '.comment-like-feedback' ).after( commentLikesFrame );
+ wrapper.querySelector( '.comment-like-feedback' ).after( commentLikesFrame );
jetpackCommentLikesLoadedWidgets.push( commentLikesFrame );
}
- $wrapper
- .removeClass( 'jetpack-likes-widget-unloaded' )
- .addClass( 'jetpack-likes-widget-loading' );
-
- $wrapper.find( 'iframe' ).load( function( e ) {
- var $iframe = jQuery( e.target );
+ wrapper.classList.remove( 'jetpack-likes-widget-unloaded' );
+ wrapper.classList.add( 'jetpack-likes-widget-loading' );
+ wrapper.querySelector( 'iframe' ).addEventListener( 'load', e => {
JetpackLikesPostMessage(
- { event: 'loadLikeWidget', name: $iframe.attr( 'name' ), width: $iframe.width() },
+ { event: 'loadLikeWidget', name: e.target.name, width: e.target.width },
window.frames[ 'likes-master' ]
);
- $wrapper
- .removeClass( 'jetpack-likes-widget-loading' )
- .addClass( 'jetpack-likes-widget-loaded' );
-
- if ( $wrapper.hasClass( 'slim-likes-widget' ) ) {
- $wrapper.find( 'iframe' ).Jetpack( 'resizeable' );
- }
+ wrapper.classList.remove( 'jetpack-likes-widget-loading' );
+ wrapper.classList.add( 'jetpack-likes-widget-loaded' );
} );
}
function jetpackGetUnloadedWidgetsInView() {
- var $unloadedWidgets = jQuery( 'div.jetpack-likes-widget-unloaded' );
+ const unloadedWidgets = document.querySelectorAll( 'div.jetpack-likes-widget-unloaded' );
- return $unloadedWidgets.filter( function() {
- return jetpackIsScrolledIntoView( this );
- } );
+ return [ ...unloadedWidgets ].filter( item => jetpackIsScrolledIntoView( item ) );
}
function jetpackIsScrolledIntoView( element ) {
- var top = element.getBoundingClientRect().top;
- var bottom = element.getBoundingClientRect().bottom;
+ const top = element.getBoundingClientRect().top;
+ const bottom = element.getBoundingClientRect().bottom;
// Allow some slack above and bellow the fold with jetpackLikesLookAhead,
// with the aim of hiding the transition from unloaded to loaded widget from users.
@@ -360,35 +384,38 @@ function jetpackIsScrolledIntoView( element ) {
}
function jetpackUnloadScrolledOutWidgets() {
- for ( var i = jetpackCommentLikesLoadedWidgets.length - 1; i >= 0; i-- ) {
- var currentWidgetIframe = jetpackCommentLikesLoadedWidgets[ i ];
+ for ( let i = jetpackCommentLikesLoadedWidgets.length - 1; i >= 0; i-- ) {
+ const currentWidgetIframe = jetpackCommentLikesLoadedWidgets[ i ];
if ( ! jetpackIsScrolledIntoView( currentWidgetIframe ) ) {
- var $widgetWrapper = jQuery( currentWidgetIframe )
- .parent()
- .parent();
+ const widgetWrapper =
+ currentWidgetIframe &&
+ currentWidgetIframe.parentElement &&
+ currentWidgetIframe.parentElement.parentElement;
// Restore parent class to 'unloaded' so this widget can be picked up by queue manager again if needed.
- $widgetWrapper
- .removeClass( 'jetpack-likes-widget-loaded jetpack-likes-widget-loading' )
- .addClass( 'jetpack-likes-widget-unloaded' );
+ widgetWrapper.classList.remove( 'jetpack-likes-widget-loaded' );
+ widgetWrapper.classList.remove( 'jetpack-likes-widget-loading' );
+ widgetWrapper.classList.add( 'jetpack-likes-widget-unloaded' );
// Bring back the loading placeholder into view.
- $widgetWrapper.children( '.comment-likes-widget-placeholder' ).fadeIn();
+ widgetWrapper
+ .querySelectorAll( '.comment-likes-widget-placeholder' )
+ .forEach( item => ( item.style.display = 'block' ) );
// Remove it from the list of loaded widgets.
jetpackCommentLikesLoadedWidgets.splice( i, 1 );
// Remove comment like widget iFrame.
- jQuery( currentWidgetIframe ).remove();
+ currentWidgetIframe.remove();
}
}
}
-var jetpackWidgetsDelayedExec = function( after, fn ) {
+var jetpackWidgetsDelayedExec = function ( after, fn ) {
var timer;
- return function() {
- timer && clearTimeout( timer );
+ return function () {
+ clearTimeout( timer );
timer = setTimeout( fn, after );
};
};
diff --git a/plugins/jetpack/modules/likes/style.css b/plugins/jetpack/modules/likes/style.css
index e76b0c2d..b89727ba 100644
--- a/plugins/jetpack/modules/likes/style.css
+++ b/plugins/jetpack/modules/likes/style.css
@@ -2,11 +2,6 @@
* Like Button toolbar button, loading text & container styles
*/
-@font-face {
- font-family: Noticons;
- src: url(https://wordpress.com/i/noticons/Noticons.woff);
-}
-
/* Master container */
#jp-post-flair {
padding-top: .5em;
@@ -32,7 +27,7 @@ div.sharedaddy h3.sd-title:before {
display: block;
width: 100%;
min-width: 30px;
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
margin-bottom: 1em;
}
@@ -62,11 +57,6 @@ div.jetpack-likes-widget-wrapper .sd-link-color {
font-size: 12px;
}
-div.jetpack-likes-widget-wrapper.slim-likes-widget {
- width: 1px; /* initial default */
- min-height: 0;
-}
-
div.jetpack-comment-likes-widget-wrapper {
width: 100%;
position: relative;
@@ -139,7 +129,7 @@ div.jetpack-comment-likes-widget-wrapper iframe {
}
div.sd-box {
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
border-top: 1px solid rgba(0,0,0,.13);
}
@@ -163,19 +153,20 @@ div.sd-box {
position: absolute;
display: flex;
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
- margin-top: 4px;
}
.comment-likes-widget-placeholder::before {
- -webkit-font-smoothing: antialiased;
- font-family: "Noticons";
- font-size: 20px;
- line-height: .9;
- color: #5CB5D4;
- content: '\f408';
+ color: #2EA2CC;
width: 16px;
+ height: 16px;
+ content: '';
display: inline-block;
- vertical-align: middle;
+ position: relative;
+ top: 3px;
+ padding-right: 5px;
+ background-repeat: no-repeat;
+ background-size: 16px 16px;
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='0' fill='none' width='24' height='24'/%3E%3Cg%3E%3Cpath fill='%232EA2CC' 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'/%3E%3C/g%3E%3C/svg%3E");
}
.post-likes-widget-placeholder .button {
@@ -193,16 +184,11 @@ div.sd-box {
.comment-likes-widget-placeholder .loading {
padding-left: 5px;
- margin-top: 2px;
+ margin-top: 4px;
align-self: center;
color: #4E4E4E;
}
-.slim-likes-widget .post-likes-widget {
- width: auto;
- float: none;
-}
-
/* Like Special cases (display on it's own) */
div.sharedaddy.sd-like-enabled .sd-like h3 {
display: none;
@@ -231,3 +217,9 @@ div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget {
.sd-gplus .sd-title {
display: none;
}
+
+@media print {
+ .jetpack-likes-widget-wrapper {
+ display: none;
+ }
+}
diff --git a/plugins/jetpack/modules/markdown/easy-markdown.php b/plugins/jetpack/modules/markdown/easy-markdown.php
index d8903d2c..43e30de4 100644
--- a/plugins/jetpack/modules/markdown/easy-markdown.php
+++ b/plugins/jetpack/modules/markdown/easy-markdown.php
@@ -92,6 +92,12 @@ class WPCom_Markdown {
* @return null
*/
public function maybe_load_actions_and_filters( $new_blog_id = null, $old_blog_id = null ) {
+
+ // When WP sites are being installed, the options table is not available yet.
+ if ( function_exists( 'wp_installing' ) && wp_installing() ) {
+ return;
+ }
+
// If this is a switch_to_blog call, and the blog isn't changing, we'll already be loaded
if ( $new_blog_id && $new_blog_id === $old_blog_id ) {
return;
@@ -444,7 +450,7 @@ class WPCom_Markdown {
/**
* TinyMCE needs to know not to strip the 'markdown' attribute. Unfortunately, it doesn't
- * really offer a nice API for whitelisting attributes, so we have to manually add it
+ * really offer a nice API for allowed attributes, so we have to manually add it
* to the schema instead.
*/
public function after_wp_tiny_mce() {
diff --git a/plugins/jetpack/modules/masterbar.php b/plugins/jetpack/modules/masterbar.php
index aa322ec1..aacde02a 100644
--- a/plugins/jetpack/modules/masterbar.php
+++ b/plugins/jetpack/modules/masterbar.php
@@ -1,16 +1,47 @@
<?php
/**
- * Module Name: WordPress.com Toolbar
- * Module Description: Replaces the admin bar with a useful toolbar to quickly manage your site via WordPress.com.
+ * Module Name: WordPress.com Toolbar and Dashboard customizations
+ * Module Description: Replaces the admin bar with a useful toolbar to quickly manage your site via WordPress.com. Also adds additional customizations to the WPAdmin dashboard experience for better compatibility with WP.com.
* Sort Order: 38
* Recommendation Order: 16
* First Introduced: 4.8
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: General
- * Additional Search Queries: adminbar, masterbar
+ * Additional Search Queries: adminbar, masterbar, colorschemes, profile-edit
+ *
+ * @package automattic/jetpack
*/
-require dirname( __FILE__ ) . '/masterbar/masterbar.php';
+namespace Automattic\Jetpack\Dashboard_Customizations;
-new A8C_WPCOM_Masterbar();
+use Automattic\Jetpack\Status\Host;
+
+require __DIR__ . '/masterbar/masterbar/class-masterbar.php';
+require __DIR__ . '/masterbar/admin-color-schemes/class-admin-color-schemes.php';
+require __DIR__ . '/masterbar/inline-help/class-inline-help.php';
+
+new Masterbar();
+new Admin_Color_Schemes();
+
+if ( ( new Host() )->is_woa_site() ) {
+ new Inline_Help();
+ require_once __DIR__ . '/masterbar/wp-posts-list/bootstrap.php';
+ require_once __DIR__ . '/masterbar/profile-edit/bootstrap.php';
+ require_once __DIR__ . '/masterbar/nudges/bootstrap.php';
+}
+
+/**
+ * Whether to load the admin menu functionality.
+ *
+ * @use add_filter( 'jetpack_load_admin_menu_class', '__return_true' );
+ * @module masterbar
+ *
+ * @since 9.3.0
+ *
+ * @param bool $load_admin_menu_class Load Jetpack's custom admin menu functionality. Default to false.
+ */
+if ( apply_filters( 'jetpack_load_admin_menu_class', false ) ) {
+ require_once __DIR__ . '/masterbar/admin-menu/load.php';
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-color-schemes/class-admin-color-schemes.php b/plugins/jetpack/modules/masterbar/admin-color-schemes/class-admin-color-schemes.php
new file mode 100644
index 00000000..de645164
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-color-schemes/class-admin-color-schemes.php
@@ -0,0 +1,199 @@
+<?php
+/**
+ * Unifies admin color scheme selection across WP.com sites.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Unifies admin color scheme selection across WP.com sites.
+ */
+class Admin_Color_Schemes {
+
+ /**
+ * Admin_Color_Schemes constructor.
+ */
+ public function __construct() {
+ add_action( 'admin_init', array( $this, 'register_admin_color_schemes' ) );
+ add_action( 'rest_api_init', array( $this, 'register_admin_color_meta' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_core_color_schemes_overrides' ) );
+ }
+
+ /**
+ * Makes admin_color available in users REST API endpoint.
+ */
+ public function register_admin_color_meta() {
+ register_meta(
+ 'user',
+ 'admin_color',
+ array(
+ 'auth_callback' => array( $this, 'update_admin_color_permissions_check' ),
+ 'description' => __( 'Slug of the admin color scheme.', 'jetpack' ),
+ 'single' => true,
+ 'show_in_rest' => array(
+ 'schema' => array( 'default' => 'fresh' ),
+ ),
+ 'type' => 'string',
+ )
+ );
+ }
+
+ /**
+ * Permission callback to edit the `admin_color` user meta.
+ *
+ * @param bool $allowed Whether the given user is allowed to edit this meta value.
+ * @param string $meta_key Meta key. In this case `admin_color`.
+ * @param int $object_id Queried user ID.
+ * @return bool
+ */
+ public function update_admin_color_permissions_check( $allowed, $meta_key, $object_id ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter, VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return current_user_can( 'edit_user', $object_id );
+ }
+
+ /**
+ * Get the admin color scheme URL based on the environment
+ *
+ * @param string $color_scheme The color scheme to get the URL for.
+ * @return string
+ */
+ public function get_admin_color_scheme_url( $color_scheme ) {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ return plugins_url( 'colors/' . $color_scheme . '/colors.css', __FILE__ );
+ } else {
+ return plugins_url( '_inc/build/masterbar/admin-color-schemes/colors/' . $color_scheme . '/colors.css', JETPACK__PLUGIN_FILE );
+ }
+ }
+
+ /**
+ * Registers new admin color schemes
+ */
+ public function register_admin_color_schemes() {
+
+ wp_admin_css_color(
+ 'aquatic',
+ __( 'Aquatic', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'aquatic' ),
+ array( '#135e96', '#007e65', '#043959', '#c5d9ed' ),
+ array(
+ 'base' => '#c5d9ed',
+ 'focus' => '#fff',
+ 'current' => '#01263a',
+ )
+ );
+
+ wp_admin_css_color(
+ 'classic-blue',
+ __( 'Classic Blue', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'classic-blue' ),
+ array( '#135e96', '#b26200', '#dcdcde', '#646970' ),
+ array(
+ 'base' => '#646970',
+ 'focus' => '#2271b1',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'classic-bright',
+ __( 'Classic Bright', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'classic-bright' ),
+ array( '#135e96', '#c9256e', '#ffffff', '#e9eff5' ),
+ array(
+ 'base' => '#646970',
+ 'focus' => '#1d2327',
+ 'current' => '#0a4b78',
+ )
+ );
+
+ wp_admin_css_color(
+ 'classic-dark',
+ __( 'Classic Dark', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'classic-dark' ),
+ array( '#101517', '#c9356e', '#32373c', '#0073aa' ),
+ array(
+ 'base' => '#a2aab2',
+ 'focus' => '#00b9eb',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'contrast',
+ __( 'Contrast', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'contrast' ),
+ array( '#101517', '#ffffff', '#32373c', '#b4b9be' ),
+ array(
+ 'base' => '#1d2327',
+ 'focus' => '#fff',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'nightfall',
+ __( 'Nightfall', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'nightfall' ),
+ array( '#00131c', '#043959', '#2271b1', '#9ec2e6' ),
+ array(
+ 'base' => '#9ec2e6',
+ 'focus' => '#fff',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'powder-snow',
+ __( 'Powder Snow', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'powder-snow' ),
+ array( '#101517', '#2271b1', '#dcdcde', '#646970' ),
+ array(
+ 'base' => '#646970',
+ 'focus' => '#135e96',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'sakura',
+ __( 'Sakura', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'sakura' ),
+ array( '#005042', '#f2ceda', '#2271b1', '#8c1749' ),
+ array(
+ 'base' => '#8c1749',
+ 'focus' => '#4f092a',
+ 'current' => '#fff',
+ )
+ );
+
+ wp_admin_css_color(
+ 'sunset',
+ __( 'Sunset', 'jetpack' ),
+ $this->get_admin_color_scheme_url( 'sunset' ),
+ array( '#691c1c', '#b26200', '#f0c930', '#facfd2' ),
+ array(
+ 'base' => '#facfd2',
+ 'focus' => '#fff',
+ 'current' => '#4f3500',
+ )
+ );
+
+ }
+
+ /**
+ * Enqueues current color-scheme overrides for core color schemes
+ */
+ public function enqueue_core_color_schemes_overrides() {
+ $core_color_schemes = array( 'blue', 'coffee', 'ectoplasm', 'fresh', 'light', 'midnight', 'modern', 'ocean', 'sunrise' );
+ $color_scheme = get_user_option( 'admin_color' );
+ if ( in_array( $color_scheme, $core_color_schemes, true ) ) {
+ wp_enqueue_style(
+ 'jetpack-core-color-schemes-overrides',
+ $this->get_admin_color_scheme_url( $color_scheme ),
+ array(),
+ JETPACK__VERSION
+ );
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.css b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.css
new file mode 100644
index 00000000..854a83b1
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.css
@@ -0,0 +1,490 @@
+/* Do not modify this file directly. It is concatenated from individual module CSS files. */
+#adminmenu {
+ margin: 0;
+}
+
+/**
+ * Menu width
+ */
+#wpcontent,
+#wpfooter {
+ margin-right: 272px;
+}
+
+#adminmenuback,
+#adminmenuwrap,
+#adminmenu,
+#adminmenu .wp-submenu {
+ width: 272px;
+}
+
+#adminmenu .wp-submenu {
+ right: 272px;
+}
+
+#adminmenu .wp-not-current-submenu .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+ min-width: 272px;
+}
+
+/**
+ * Fixes Gutenberg in not fullscreen mode.
+ */
+ @media (min-width: 783px) {
+ .interface-interface-skeleton,
+ .edit-post-layout .components-editor-notices__snackbar {
+ right: 272px;
+ }
+}
+
+@media (min-width: 961px) {
+ .auto-fold .interface-interface-skeleton,
+ .auto-fold .edit-post-layout .components-editor-notices__snackbar,
+ .jp-dialogue-modern-full__container {
+ right: 272px;
+ }
+
+ .global-notices {
+ max-width: calc( 100% - 48px - 272px );
+ }
+}
+
+/**
+ * Jetpack logo
+ */
+#adminmenu [class*="activity-log"] .wp-menu-image img {
+ padding-top: 7px;
+}
+
+/**
+ * Site Card
+ */
+#adminmenu .toplevel_page_site-card .wp-menu-name {
+ margin-right: 40px; /* icon width (32) + padding (8). */
+ padding: 0;
+}
+
+#adminmenu li.toplevel_page_site-card a {
+ padding: 10px 8px 10px 0;
+}
+
+/**
+ * Site Notices
+ */
+#adminmenu a.toplevel_page_site-notices:hover,
+#adminmenu a.toplevel_page_site-notices:focus,
+#adminmenu li.toplevel_page_site-notices:hover,
+#adminmenu li.toplevel_page_site-notices:focus {
+ background-color: inherit !important;
+ color: inherit !important;
+}
+
+#adminmenu li.toplevel_page_site-notices .wp-menu-image {
+ display: none;
+}
+
+#adminmenu .toplevel_page_site-notices .wp-menu-image {
+ border-radius: 2px;
+ background-color: #fff;
+}
+
+#adminmenu .toplevel_page_site-notices .wp-menu-image:before {
+ content: '\f534';
+ font-family: 'dashicons';
+ font-size: 20px;
+ line-height: 20px;
+ background-color: #a7aaad;
+ color: white;
+ border-radius: 50%;
+ margin: 5px;
+ padding: 0;
+}
+
+#adminmenu .toplevel_page_site-notices:hover .wp-menu-image:before {
+ color: #fff;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner {
+ display: flex;
+ flex-grow: 1;
+ flex-wrap: nowrap;
+ align-items: center;
+ justify-content: space-between;
+ position: relative;
+ width: 100%;
+ padding: 7px 12px;
+ right: -28px;
+ border-radius: 2px;
+ font-size: 12px;
+ line-height: 1.4;
+ -webkit-hyphens: none;
+ hyphens: none;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner .banner__info {
+ margin-left: 12px;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner .button {
+ font-size: 12px;
+ line-height: 12px;
+ padding: 0 7px;
+ border: 0;
+ min-height: 26px;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner svg.dismissible-card__close-icon {
+ height: 24px;
+ width: 24px;
+ margin-right: 10px;
+}
+
+@media screen and (min-width: 782px) {
+ .folded #adminmenu .toplevel_page_site-notices .wp-menu-image {
+ display: block;
+ width: 30px;
+ }
+
+ .folded #adminmenu .toplevel_page_site-notices {
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+@media screen and (min-width: 782px) and (max-width: 960px){
+ .auto-fold #adminmenu .toplevel_page_site-notices .wp-menu-image {
+ display: block;
+ width: 30px;
+ }
+
+ .auto-fold #adminmenu .toplevel_page_site-notices {
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+/* Prevent box-shadow at the top of the sidebar */
+#adminmenu .site-switcher:hover,
+#adminmenu .toplevel_page_site-card:hover,
+#adminmenu .toplevel_page_site-notices:hover {
+ box-shadow: none;
+}
+
+/**
+ * Site icon inline-styles for height and width are defined in set_site_icon_inline_styles
+ */
+#adminmenu .toplevel_page_site-card .wp-menu-image {
+ background-image: none;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 18px 18px;
+ transform: translateZ(0);
+ transition-property: background-image,background-color;
+ transition-duration: .2s;
+}
+
+#adminmenu a.toplevel_page_site-card:hover,
+#adminmenu li.toplevel_page_site-card:hover {
+ background-color: inherit;
+}
+
+#adminmenu .toplevel_page_site-card img {
+ opacity: initial;
+}
+
+#adminmenu .toplevel_page_site-card.has-site-icon img {
+ padding: 0;
+}
+
+#adminmenu .toplevel_page_site-card:hover div.wp-menu-image,
+#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image {
+ background-image: url("data:image/svg+xml,%3Csvg class='gridicon gridicons-house' height='24' width='24' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg%3E%3Cpath fill='%23fff' d='M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z'/%3E%3C/g%3E%3C/svg%3E%0A");
+}
+
+#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image {
+ background-color: #c3c4c7;
+}
+
+#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image img[src^="data:image/svg"] {
+ height: auto;
+ padding-top: 7px;
+ width: 18px;
+}
+
+#adminmenu .toplevel_page_site-card:hover div.wp-menu-image img,
+#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image img {
+ display: none;
+}
+
+.site__info .site__title {
+ display: block;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 1.3;
+}
+
+.site__info .site__domain {
+ display: block;
+ max-width: 95%;
+ font-size: 12px;
+ line-height: 1.4;
+ margin-top: 2px;
+}
+
+.site__info .site__title,
+.site__info .site__domain {
+ overflow: hidden;
+ white-space: nowrap;
+}
+.site__info .site__title::after,
+.site__info .site__domain::after {
+ content: "";
+ display: block;
+ position: absolute;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: auto;
+ width: 20%;
+ height: auto;
+}
+
+.site__info > .site__badge {
+ font-size: 12px;
+ border-radius: 12px;
+ clear: both;
+ display: inline-block;
+ margin-top: 6px;
+ margin-left: 3px;
+ padding: 1px 10px;
+}
+
+/**
+ * Inline text in a menu title
+ */
+.inline-text {
+ display: block !important;
+ position: absolute;
+ left: 20px;
+ top: 50%;
+ transform: translateY( -50% );
+ opacity: 0.8;
+}
+
+/**
+ * Stats
+ */
+[class*="toplevel_page_https://wordpress.com/stats/day"] .sidebar-unified__sparkline {
+ float: left;
+ margin-left: 8px;
+}
+
+/**
+ * Folded State
+ */
+.folded #adminmenu a.menu-top {
+ height: 31px;
+}
+
+.folded #adminmenu li.toplevel_page_site-card a {
+ padding-right: 0;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 960px) {
+ #adminmenu,
+ #adminmenuwrap,
+ #adminmenuback {
+ width: 272px;
+ }
+
+ .auto-fold #adminmenu a[class*="toplevel_page_http"].wp-first-item {
+ height: auto;
+ }
+
+ .wp-responsive-open #adminmenu a.menu-top {
+ height: auto;
+ }
+
+ .auto-fold #adminmenu div.wp-menu-image {
+ width: 36px;
+ }
+}
+
+@media screen and (min-width: 782px) and (max-width: 960px) {
+ .auto-fold #adminmenu a.menu-top {
+ height: 34px;
+ }
+
+ .auto-fold #adminmenu li.toplevel_page_site-card a {
+ height: 36px;
+ padding-right: 1px;
+ }
+}
+
+@media screen and (max-width: 782px) {
+ #adminmenu li.menu-top .wp-submenu>li>a,
+ .auto-fold #adminmenu li.menu-top .wp-submenu>li>a {
+ padding-right: 42px;
+ }
+
+ .wp-responsive-open #wpbody {
+ left: inherit;
+ }
+
+ .wp-responsive-open #wpcontent {
+ margin-right: 272px;
+ }
+
+ .auto-fold #adminmenu, .auto-fold #adminmenuback, .auto-fold #adminmenuwrap {
+ width: 272px;
+ }
+
+ .auto-fold #adminmenu a.site-switcher,
+ #adminmenu a.site-switcher {
+ font-size: 14px;
+ }
+}
+
+@media only screen and (max-width: 660px) {
+ #adminmenuback,
+ #adminmenuwrap,
+ #adminmenu,
+ #adminmenu .wp-submenu,
+ .auto-fold #adminmenu,
+ .auto-fold #adminmenuback,
+ .auto-fold #adminmenuwrap {
+ width: 100%;
+ z-index: 171;
+ }
+
+ .wp-responsive-open #wpcontent {
+ margin-right: 0;
+ }
+
+ ul#adminmenu a.wp-has-current-submenu:after,
+ ul#adminmenu>li.current>a.current:after,
+ ul#adminmenu li:hover a.wp-has-current-submenu:after,
+ .auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after {
+ display: none;
+ }
+
+ .auto-fold #adminmenu li.toplevel_page_site-card a {
+ padding: 18px 12px 18px 0;
+ }
+}
+
+/*
+ * Styles for the nav-unification prototype (see pbAPfg-O2)
+ * TODO: depending on project outcome move or delete styles
+ */
+#wpadminbar #wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread {
+ top: 50%;
+ right: 50%;
+ transform: translate( 10px, -13px );
+
+}
+
+#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar {
+ transform: translateX( -1px );
+}
+
+#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+") !important;
+}
+
+#wpadminbar > #wp-toolbar .wpnt-show span.noticon,
+#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon {
+ color: #ffffff;
+}
+
+#wpadminbar .quicklinks ul#wp-admin-bar-root-default {
+ padding-right: 0 !important;
+}
+
+#wpadminbar #wp-admin-bar-menu-toggle {
+ display: none;
+}
+
+@media screen and (max-width: 782px) {
+ #wpadminbar #wp-toolbar > ul > li {
+ display: block;
+ }
+
+ #wpadminbar .ab-top-menu > li > .ab-item {
+ box-sizing: border-box;
+ line-height: 32px;
+ }
+
+ #wpadminbar #wp-admin-bar-ab-new-post > .ab-item {
+ box-sizing: inherit !important;
+ }
+
+ #wpadminbar #wp-admin-bar-my-account > .ab-item {
+ padding: 7px 15px;
+ width: auto;
+ }
+
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+ display: block;
+ left: auto;
+ right: auto;
+ position: static;
+ margin-top: 3px;
+ top: 13px;
+ }
+
+ /* Hide debug bar. */
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-debug-bar {
+ display: none;
+ }
+}
+
+@media screen and (max-width: 480px) {
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a {
+ width: auto;
+ }
+
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+ margin-top: 12px;
+ }
+}
+
+/* Fixes the order of screen options,
+ * showing the dashboard switcher button always first.
+*/
+#adv-settings {
+ display: flex;
+ flex-direction: column;
+}
+
+/* Switcher should always be in the top */
+#adv-settings #dashboard-switcher {
+ order: 0;
+}
+
+#adv-settings .dashboard-switcher-text {
+ margin-top: 0;
+}
+
+#adv-settings .dashboard-switcher-button {
+ padding: 3px 16px;
+}
+
+/* Core registered options should be after the switcher */
+#adv-settings fieldset {
+ order: 1;
+}
+
+/* Submit button should always be in the bottom */
+#adv-settings .submit {
+ order: 2;
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.min.css b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.min.css
new file mode 100644
index 00000000..63bf1689
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu-rtl.min.css
@@ -0,0 +1 @@
+#adminmenu{margin:0}#wpcontent,#wpfooter{margin-right:272px}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:272px}#adminmenu .wp-submenu{right:272px}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:272px}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar,.interface-interface-skeleton{right:272px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar,.auto-fold .interface-interface-skeleton,.jp-dialogue-modern-full__container{right:272px}.global-notices{max-width:calc(100% - 48px - 272px)}}#adminmenu [class*=activity-log] .wp-menu-image img{padding-top:7px}#adminmenu .toplevel_page_site-card .wp-menu-name{margin-right:40px;padding:0}#adminmenu li.toplevel_page_site-card a{padding:10px 8px 10px 0}#adminmenu a.toplevel_page_site-notices:focus,#adminmenu a.toplevel_page_site-notices:hover,#adminmenu li.toplevel_page_site-notices:focus,#adminmenu li.toplevel_page_site-notices:hover{background-color:inherit!important;color:inherit!important}#adminmenu li.toplevel_page_site-notices .wp-menu-image{display:none}#adminmenu .toplevel_page_site-notices .wp-menu-image{border-radius:2px;background-color:#fff}#adminmenu .toplevel_page_site-notices .wp-menu-image:before{content:'\f534';font-family:dashicons;font-size:20px;line-height:20px;background-color:#a7aaad;color:#fff;border-radius:50%;margin:5px;padding:0}#adminmenu .toplevel_page_site-notices:hover .wp-menu-image:before{color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner{display:flex;flex-grow:1;flex-wrap:nowrap;align-items:center;justify-content:space-between;position:relative;width:100%;padding:7px 12px;right:-28px;border-radius:2px;font-size:12px;line-height:1.4;-webkit-hyphens:none;hyphens:none}#adminmenu .toplevel_page_site-notices .upsell_banner .banner__info{margin-left:12px}#adminmenu .toplevel_page_site-notices .upsell_banner .button{font-size:12px;line-height:12px;padding:0 7px;border:0;min-height:26px}#adminmenu .toplevel_page_site-notices .upsell_banner svg.dismissible-card__close-icon{height:24px;width:24px;margin-right:10px}@media screen and (min-width:782px){.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{display:block;width:30px}.folded #adminmenu .toplevel_page_site-notices{height:50px;display:flex;align-items:center;justify-content:center}}@media screen and (min-width:782px) and (max-width:960px){.auto-fold #adminmenu .toplevel_page_site-notices .wp-menu-image{display:block;width:30px}.auto-fold #adminmenu .toplevel_page_site-notices{height:50px;display:flex;align-items:center;justify-content:center}}#adminmenu .site-switcher:hover,#adminmenu .toplevel_page_site-card:hover,#adminmenu .toplevel_page_site-notices:hover{box-shadow:none}#adminmenu .toplevel_page_site-card .wp-menu-image{background-image:none;background-position:center;background-repeat:no-repeat;background-size:18px 18px;transform:translateZ(0);transition-property:background-image,background-color;transition-duration:.2s}#adminmenu a.toplevel_page_site-card:hover,#adminmenu li.toplevel_page_site-card:hover{background-color:inherit}#adminmenu .toplevel_page_site-card img{opacity:initial}#adminmenu .toplevel_page_site-card.has-site-icon img{padding:0}#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,#adminmenu .toplevel_page_site-card:hover div.wp-menu-image{background-image:url("data:image/svg+xml,%3Csvg class='gridicon gridicons-house' height='24' width='24' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg%3E%3Cpath fill='%23fff' d='M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z'/%3E%3C/g%3E%3C/svg%3E%0A")}#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image{background-color:#c3c4c7}#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image img[src^="data:image/svg"]{height:auto;padding-top:7px;width:18px}#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image img,#adminmenu .toplevel_page_site-card:hover div.wp-menu-image img{display:none}.site__info .site__title{display:block;font-size:14px;font-weight:400;line-height:1.3}.site__info .site__domain{display:block;max-width:95%;font-size:12px;line-height:1.4;margin-top:2px}.site__info .site__domain,.site__info .site__title{overflow:hidden;white-space:nowrap}.site__info .site__domain::after,.site__info .site__title::after{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;top:0;bottom:0;left:0;right:auto;width:20%;height:auto}.site__info>.site__badge{font-size:12px;border-radius:12px;clear:both;display:inline-block;margin-top:6px;margin-left:3px;padding:1px 10px}.inline-text{display:block!important;position:absolute;left:20px;top:50%;transform:translateY(-50%);opacity:.8}[class*="toplevel_page_https://wordpress.com/stats/day"] .sidebar-unified__sparkline{float:left;margin-left:8px}.folded #adminmenu a.menu-top{height:31px}.folded #adminmenu li.toplevel_page_site-card a{padding-right:0}@media only screen and (max-width:960px){#adminmenu,#adminmenuback,#adminmenuwrap{width:272px}.auto-fold #adminmenu a[class*=toplevel_page_http].wp-first-item{height:auto}.wp-responsive-open #adminmenu a.menu-top{height:auto}.auto-fold #adminmenu div.wp-menu-image{width:36px}}@media screen and (min-width:782px) and (max-width:960px){.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.toplevel_page_site-card a{height:36px;padding-right:1px}}@media screen and (max-width:782px){#adminmenu li.menu-top .wp-submenu>li>a,.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-right:42px}.wp-responsive-open #wpbody{left:inherit}.wp-responsive-open #wpcontent{margin-right:272px}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:272px}#adminmenu a.site-switcher,.auto-fold #adminmenu a.site-switcher{font-size:14px}}@media only screen and (max-width:660px){#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap,.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:100%;z-index:171}.wp-responsive-open #wpcontent{margin-right:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after,ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu li:hover a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.auto-fold #adminmenu li.toplevel_page_site-card a{padding:18px 12px 18px 0}}#wpadminbar #wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{top:50%;right:50%;transform:translate(10px,-13px)}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{transform:translateX(-1px)}#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+)!important}#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon,#wpadminbar>#wp-toolbar .wpnt-show span.noticon{color:#fff}#wpadminbar .quicklinks ul#wp-admin-bar-root-default{padding-right:0!important}#wpadminbar #wp-admin-bar-menu-toggle{display:none}@media screen and (max-width:782px){#wpadminbar #wp-toolbar>ul>li{display:block}#wpadminbar .ab-top-menu>li>.ab-item{box-sizing:border-box;line-height:32px}#wpadminbar #wp-admin-bar-ab-new-post>.ab-item{box-sizing:inherit!important}#wpadminbar #wp-admin-bar-my-account>.ab-item{padding:7px 15px;width:auto}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a img{display:block;left:auto;right:auto;position:static;margin-top:3px;top:13px}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-debug-bar{display:none}}@media screen and (max-width:480px){#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a{width:auto}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a img{margin-top:12px}}#adv-settings{display:flex;flex-direction:column}#adv-settings #dashboard-switcher{order:0}#adv-settings .dashboard-switcher-text{margin-top:0}#adv-settings .dashboard-switcher-button{padding:3px 16px}#adv-settings fieldset{order:1}#adv-settings .submit{order:2} \ No newline at end of file
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.css b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.css
new file mode 100644
index 00000000..92b762cb
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.css
@@ -0,0 +1,488 @@
+#adminmenu {
+ margin: 0;
+}
+
+/**
+ * Menu width
+ */
+#wpcontent,
+#wpfooter {
+ margin-left: 272px;
+}
+
+#adminmenuback,
+#adminmenuwrap,
+#adminmenu,
+#adminmenu .wp-submenu {
+ width: 272px;
+}
+
+#adminmenu .wp-submenu {
+ left: 272px;
+}
+
+#adminmenu .wp-not-current-submenu .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+ min-width: 272px;
+}
+
+/**
+ * Fixes Gutenberg in not fullscreen mode.
+ */
+ @media (min-width: 783px) {
+ .interface-interface-skeleton,
+ .edit-post-layout .components-editor-notices__snackbar {
+ left: 272px;
+ }
+}
+
+@media (min-width: 961px) {
+ .auto-fold .interface-interface-skeleton,
+ .auto-fold .edit-post-layout .components-editor-notices__snackbar,
+ .jp-dialogue-modern-full__container {
+ left: 272px;
+ }
+
+ .global-notices {
+ max-width: calc( 100% - 48px - 272px );
+ }
+}
+
+/**
+ * Jetpack logo
+ */
+#adminmenu [class*="activity-log"] .wp-menu-image img {
+ padding-top: 7px;
+}
+
+/**
+ * Site Card
+ */
+#adminmenu .toplevel_page_site-card .wp-menu-name {
+ margin-left: 40px; /* icon width (32) + padding (8). */
+ padding: 0;
+}
+
+#adminmenu li.toplevel_page_site-card a {
+ padding: 10px 0 10px 8px;
+}
+
+/**
+ * Site Notices
+ */
+#adminmenu a.toplevel_page_site-notices:hover,
+#adminmenu a.toplevel_page_site-notices:focus,
+#adminmenu li.toplevel_page_site-notices:hover,
+#adminmenu li.toplevel_page_site-notices:focus {
+ background-color: inherit !important;
+ color: inherit !important;
+}
+
+#adminmenu li.toplevel_page_site-notices .wp-menu-image {
+ display: none;
+}
+
+#adminmenu .toplevel_page_site-notices .wp-menu-image {
+ border-radius: 2px;
+ background-color: #fff;
+}
+
+#adminmenu .toplevel_page_site-notices .wp-menu-image:before {
+ content: '\f534';
+ font-family: 'dashicons';
+ font-size: 20px;
+ line-height: 20px;
+ background-color: #a7aaad;
+ color: white;
+ border-radius: 50%;
+ margin: 5px;
+ padding: 0;
+}
+
+#adminmenu .toplevel_page_site-notices:hover .wp-menu-image:before {
+ color: #fff;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner {
+ display: flex;
+ flex-grow: 1;
+ flex-wrap: nowrap;
+ align-items: center;
+ justify-content: space-between;
+ position: relative;
+ width: 100%;
+ padding: 7px 12px;
+ left: -28px;
+ border-radius: 2px;
+ font-size: 12px;
+ line-height: 1.4;
+ hyphens: none;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner .banner__info {
+ margin-right: 12px;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner .button {
+ font-size: 12px;
+ line-height: 12px;
+ padding: 0 7px;
+ border: 0;
+ min-height: 26px;
+}
+
+#adminmenu .toplevel_page_site-notices .upsell_banner svg.dismissible-card__close-icon {
+ height: 24px;
+ width: 24px;
+ margin-left: 10px;
+}
+
+@media screen and (min-width: 782px) {
+ .folded #adminmenu .toplevel_page_site-notices .wp-menu-image {
+ display: block;
+ width: 30px;
+ }
+
+ .folded #adminmenu .toplevel_page_site-notices {
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+@media screen and (min-width: 782px) and (max-width: 960px){
+ .auto-fold #adminmenu .toplevel_page_site-notices .wp-menu-image {
+ display: block;
+ width: 30px;
+ }
+
+ .auto-fold #adminmenu .toplevel_page_site-notices {
+ height: 50px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+/* Prevent box-shadow at the top of the sidebar */
+#adminmenu .site-switcher:hover,
+#adminmenu .toplevel_page_site-card:hover,
+#adminmenu .toplevel_page_site-notices:hover {
+ box-shadow: none;
+}
+
+/**
+ * Site icon inline-styles for height and width are defined in set_site_icon_inline_styles
+ */
+#adminmenu .toplevel_page_site-card .wp-menu-image {
+ background-image: none;
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 18px 18px;
+ transform: translateZ(0);
+ transition-property: background-image,background-color;
+ transition-duration: .2s;
+}
+
+#adminmenu a.toplevel_page_site-card:hover,
+#adminmenu li.toplevel_page_site-card:hover {
+ background-color: inherit;
+}
+
+#adminmenu .toplevel_page_site-card img {
+ opacity: initial;
+}
+
+#adminmenu .toplevel_page_site-card.has-site-icon img {
+ padding: 0;
+}
+
+#adminmenu .toplevel_page_site-card:hover div.wp-menu-image,
+#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image {
+ background-image: url("data:image/svg+xml,%3Csvg class='gridicon gridicons-house' height='24' width='24' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg%3E%3Cpath fill='%23fff' d='M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z'/%3E%3C/g%3E%3C/svg%3E%0A");
+}
+
+#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image {
+ background-color: #c3c4c7;
+}
+
+#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image img[src^="data:image/svg"] {
+ height: auto;
+ padding-top: 7px;
+ width: 18px;
+}
+
+#adminmenu .toplevel_page_site-card:hover div.wp-menu-image img,
+#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image img {
+ display: none;
+}
+
+.site__info .site__title {
+ display: block;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 1.3;
+}
+
+.site__info .site__domain {
+ display: block;
+ max-width: 95%;
+ font-size: 12px;
+ line-height: 1.4;
+ margin-top: 2px;
+}
+
+.site__info .site__title,
+.site__info .site__domain {
+ overflow: hidden;
+ white-space: nowrap;
+}
+.site__info .site__title::after,
+.site__info .site__domain::after {
+ content: "";
+ display: block;
+ position: absolute;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ user-select: none;
+ pointer-events: none;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ left: auto;
+ width: 20%;
+ height: auto;
+}
+
+.site__info > .site__badge {
+ font-size: 12px;
+ border-radius: 12px;
+ clear: both;
+ display: inline-block;
+ margin-top: 6px;
+ margin-right: 3px;
+ padding: 1px 10px;
+}
+
+/**
+ * Inline text in a menu title
+ */
+.inline-text {
+ display: block !important;
+ position: absolute;
+ right: 20px;
+ top: 50%;
+ transform: translateY( -50% );
+ opacity: 0.8;
+}
+
+/**
+ * Stats
+ */
+[class*="toplevel_page_https://wordpress.com/stats/day"] .sidebar-unified__sparkline {
+ float: right;
+ margin-right: 8px;
+}
+
+/**
+ * Folded State
+ */
+.folded #adminmenu a.menu-top {
+ height: 31px;
+}
+
+.folded #adminmenu li.toplevel_page_site-card a {
+ padding-left: 0;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 960px) {
+ #adminmenu,
+ #adminmenuwrap,
+ #adminmenuback {
+ width: 272px;
+ }
+
+ .auto-fold #adminmenu a[class*="toplevel_page_http"].wp-first-item {
+ height: auto;
+ }
+
+ .wp-responsive-open #adminmenu a.menu-top {
+ height: auto;
+ }
+
+ .auto-fold #adminmenu div.wp-menu-image {
+ width: 36px;
+ }
+}
+
+@media screen and (min-width: 782px) and (max-width: 960px) {
+ .auto-fold #adminmenu a.menu-top {
+ height: 34px;
+ }
+
+ .auto-fold #adminmenu li.toplevel_page_site-card a {
+ height: 36px;
+ padding-left: 1px;
+ }
+}
+
+@media screen and (max-width: 782px) {
+ #adminmenu li.menu-top .wp-submenu>li>a,
+ .auto-fold #adminmenu li.menu-top .wp-submenu>li>a {
+ padding-left: 42px;
+ }
+
+ .wp-responsive-open #wpbody {
+ right: inherit;
+ }
+
+ .wp-responsive-open #wpcontent {
+ margin-left: 272px;
+ }
+
+ .auto-fold #adminmenu, .auto-fold #adminmenuback, .auto-fold #adminmenuwrap {
+ width: 272px;
+ }
+
+ .auto-fold #adminmenu a.site-switcher,
+ #adminmenu a.site-switcher {
+ font-size: 14px;
+ }
+}
+
+@media only screen and (max-width: 660px) {
+ #adminmenuback,
+ #adminmenuwrap,
+ #adminmenu,
+ #adminmenu .wp-submenu,
+ .auto-fold #adminmenu,
+ .auto-fold #adminmenuback,
+ .auto-fold #adminmenuwrap {
+ width: 100%;
+ z-index: 171;
+ }
+
+ .wp-responsive-open #wpcontent {
+ margin-left: 0;
+ }
+
+ ul#adminmenu a.wp-has-current-submenu:after,
+ ul#adminmenu>li.current>a.current:after,
+ ul#adminmenu li:hover a.wp-has-current-submenu:after,
+ .auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after {
+ display: none;
+ }
+
+ .auto-fold #adminmenu li.toplevel_page_site-card a {
+ padding: 18px 0 18px 12px;
+ }
+}
+
+/*
+ * Styles for the nav-unification prototype (see pbAPfg-O2)
+ * TODO: depending on project outcome move or delete styles
+ */
+#wpadminbar #wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread {
+ top: 50%;
+ left: 50%;
+ transform: translate( -10px, -13px );
+
+}
+
+#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar {
+ transform: translateX( 1px );
+}
+
+#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+") !important;
+}
+
+#wpadminbar > #wp-toolbar .wpnt-show span.noticon,
+#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon {
+ color: #ffffff;
+}
+
+#wpadminbar .quicklinks ul#wp-admin-bar-root-default {
+ padding-left: 0 !important;
+}
+
+#wpadminbar #wp-admin-bar-menu-toggle {
+ display: none;
+}
+
+@media screen and (max-width: 782px) {
+ #wpadminbar #wp-toolbar > ul > li {
+ display: block;
+ }
+
+ #wpadminbar .ab-top-menu > li > .ab-item {
+ box-sizing: border-box;
+ line-height: 32px;
+ }
+
+ #wpadminbar #wp-admin-bar-ab-new-post > .ab-item {
+ box-sizing: inherit !important;
+ }
+
+ #wpadminbar #wp-admin-bar-my-account > .ab-item {
+ padding: 7px 15px;
+ width: auto;
+ }
+
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+ display: block;
+ right: auto;
+ left: auto;
+ position: static;
+ margin-top: 3px;
+ top: 13px;
+ }
+
+ /* Hide debug bar. */
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-debug-bar {
+ display: none;
+ }
+}
+
+@media screen and (max-width: 480px) {
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a {
+ width: auto;
+ }
+
+ #wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+ margin-top: 12px;
+ }
+}
+
+/* Fixes the order of screen options,
+ * showing the dashboard switcher button always first.
+*/
+#adv-settings {
+ display: flex;
+ flex-direction: column;
+}
+
+/* Switcher should always be in the top */
+#adv-settings #dashboard-switcher {
+ order: 0;
+}
+
+#adv-settings .dashboard-switcher-text {
+ margin-top: 0;
+}
+
+#adv-settings .dashboard-switcher-button {
+ padding: 3px 16px;
+}
+
+/* Core registered options should be after the switcher */
+#adv-settings fieldset {
+ order: 1;
+}
+
+/* Submit button should always be in the bottom */
+#adv-settings .submit {
+ order: 2;
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.js b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.js
new file mode 100644
index 00000000..ce385913
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.js
@@ -0,0 +1,124 @@
+/* global ajaxurl, jetpackAdminMenu */
+
+( function () {
+ function init() {
+ var adminbar = document.querySelector( '#wpadminbar' );
+ var wpwrap = document.querySelector( '#wpwrap' );
+ var adminMenu = document.querySelector( '#adminmenu' );
+
+ if ( ! adminbar ) {
+ return;
+ }
+
+ function setAriaExpanded( value ) {
+ var anchors = adminbar.querySelectorAll( '#wp-admin-bar-blog a' );
+ for ( var i = 0; i < anchors.length; i++ ) {
+ anchors[ i ].setAttribute( 'aria-expanded', value );
+ }
+ }
+
+ setFocusOnActiveMenuItem();
+ setAriaExpanded( 'false' );
+
+ var adminbarBlog = adminbar.querySelector( '#wp-admin-bar-blog' );
+ // Toggle sidebar when toggle is clicked.
+ if ( adminbarBlog ) {
+ adminbarBlog.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+
+ // Close any open toolbar submenus.
+ var hovers = adminbar.querySelectorAll( '.hover' );
+ for ( var i = 0; i < hovers.length; i++ ) {
+ hovers[ i ].classList.remove( 'hover' );
+ }
+
+ wpwrap.classList.toggle( 'wp-responsive-open' );
+ if ( wpwrap.classList.contains( 'wp-responsive-open' ) ) {
+ setAriaExpanded( 'true' );
+ var first = document.querySelector( '#adminmenu a' );
+ if ( first ) {
+ first.focus();
+ }
+ } else {
+ setAriaExpanded( 'false' );
+ }
+ } );
+ }
+
+ if ( adminMenu ) {
+ var collapseButton = adminMenu.querySelector( '#collapse-button' );
+ // Nav-Unification feature:
+ // Saves the sidebar state in server when "Collapse menu" is clicked.
+ // This is needed so that we update WPCOM for this preference in real-time.
+ if ( collapseButton ) {
+ collapseButton.addEventListener( 'click', function ( event ) {
+ // Let's the core event listener be triggered first.
+ setTimeout( function () {
+ saveSidebarIsExpanded( event.target.parentNode.ariaExpanded );
+ }, 50 );
+ } );
+ }
+
+ const jitmDismissButton = adminMenu.querySelector( '.dismissible-card__close-icon' );
+ if ( jitmDismissButton ) {
+ jitmDismissButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+
+ const siteNotice = document.getElementById( 'toplevel_page_site-notices' );
+ if ( siteNotice ) {
+ siteNotice.style.display = 'none';
+ }
+
+ makeAjaxRequest(
+ 'POST',
+ ajaxurl,
+ 'application/x-www-form-urlencoded; charset=UTF-8',
+ 'id=' +
+ encodeURIComponent( jitmDismissButton.dataset.feature_id ) +
+ '&feature_class=' +
+ encodeURIComponent( jitmDismissButton.dataset.feature_class ) +
+ '&action=jitm_dismiss' +
+ '&_ajax_nonce=' +
+ jetpackAdminMenu.jitmDismissNonce
+ );
+ } );
+ }
+ }
+ }
+
+ function makeAjaxRequest( method, url, contentType, body ) {
+ var xhr = new XMLHttpRequest();
+ xhr.open( method, url, true );
+ xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest' );
+ if ( contentType ) {
+ xhr.setRequestHeader( 'Content-Type', contentType );
+ }
+ xhr.withCredentials = true;
+ xhr.send( body );
+ }
+
+ function saveSidebarIsExpanded( expanded ) {
+ makeAjaxRequest(
+ 'POST',
+ ajaxurl,
+ 'application/x-www-form-urlencoded; charset=UTF-8',
+ 'action=sidebar_state&expanded=' + expanded
+ );
+ }
+
+ function setFocusOnActiveMenuItem() {
+ var currentMenuItem = document.querySelector( '.wp-submenu .current > a' );
+
+ if ( ! currentMenuItem ) {
+ return;
+ }
+
+ currentMenuItem.focus();
+ }
+
+ if ( document.readyState === 'loading' ) {
+ document.addEventListener( 'DOMContentLoaded', init );
+ } else {
+ init();
+ }
+} )();
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.min.css b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.min.css
new file mode 100644
index 00000000..1b50ea73
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/admin-menu.min.css
@@ -0,0 +1,2 @@
+/* Do not modify this file directly. It is concatenated from individual module CSS files. */
+#adminmenu{margin:0}#wpcontent,#wpfooter{margin-left:272px}#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap{width:272px}#adminmenu .wp-submenu{left:272px}#adminmenu .wp-not-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{min-width:272px}@media (min-width:783px){.edit-post-layout .components-editor-notices__snackbar,.interface-interface-skeleton{left:272px}}@media (min-width:961px){.auto-fold .edit-post-layout .components-editor-notices__snackbar,.auto-fold .interface-interface-skeleton,.jp-dialogue-modern-full__container{left:272px}.global-notices{max-width:calc(100% - 48px - 272px)}}#adminmenu [class*=activity-log] .wp-menu-image img{padding-top:7px}#adminmenu .toplevel_page_site-card .wp-menu-name{margin-left:40px;padding:0}#adminmenu li.toplevel_page_site-card a{padding:10px 0 10px 8px}#adminmenu a.toplevel_page_site-notices:focus,#adminmenu a.toplevel_page_site-notices:hover,#adminmenu li.toplevel_page_site-notices:focus,#adminmenu li.toplevel_page_site-notices:hover{background-color:inherit!important;color:inherit!important}#adminmenu li.toplevel_page_site-notices .wp-menu-image{display:none}#adminmenu .toplevel_page_site-notices .wp-menu-image{border-radius:2px;background-color:#fff}#adminmenu .toplevel_page_site-notices .wp-menu-image:before{content:'\f534';font-family:dashicons;font-size:20px;line-height:20px;background-color:#a7aaad;color:#fff;border-radius:50%;margin:5px;padding:0}#adminmenu .toplevel_page_site-notices:hover .wp-menu-image:before{color:#fff}#adminmenu .toplevel_page_site-notices .upsell_banner{display:flex;flex-grow:1;flex-wrap:nowrap;align-items:center;justify-content:space-between;position:relative;width:100%;padding:7px 12px;left:-28px;border-radius:2px;font-size:12px;line-height:1.4;-webkit-hyphens:none;hyphens:none}#adminmenu .toplevel_page_site-notices .upsell_banner .banner__info{margin-right:12px}#adminmenu .toplevel_page_site-notices .upsell_banner .button{font-size:12px;line-height:12px;padding:0 7px;border:0;min-height:26px}#adminmenu .toplevel_page_site-notices .upsell_banner svg.dismissible-card__close-icon{height:24px;width:24px;margin-left:10px}@media screen and (min-width:782px){.folded #adminmenu .toplevel_page_site-notices .wp-menu-image{display:block;width:30px}.folded #adminmenu .toplevel_page_site-notices{height:50px;display:flex;align-items:center;justify-content:center}}@media screen and (min-width:782px) and (max-width:960px){.auto-fold #adminmenu .toplevel_page_site-notices .wp-menu-image{display:block;width:30px}.auto-fold #adminmenu .toplevel_page_site-notices{height:50px;display:flex;align-items:center;justify-content:center}}#adminmenu .site-switcher:hover,#adminmenu .toplevel_page_site-card:hover,#adminmenu .toplevel_page_site-notices:hover{box-shadow:none}#adminmenu .toplevel_page_site-card .wp-menu-image{background-image:none;background-position:center;background-repeat:no-repeat;background-size:18px 18px;transform:translateZ(0);transition-property:background-image,background-color;transition-duration:.2s}#adminmenu a.toplevel_page_site-card:hover,#adminmenu li.toplevel_page_site-card:hover{background-color:inherit}#adminmenu .toplevel_page_site-card img{opacity:initial}#adminmenu .toplevel_page_site-card.has-site-icon img{padding:0}#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image,#adminmenu .toplevel_page_site-card:hover div.wp-menu-image{background-image:url("data:image/svg+xml,%3Csvg class='gridicon gridicons-house' height='24' width='24' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg%3E%3Cpath fill='%23fff' d='M22 9L12 1 2 9v2h2v10h5v-4c0-1.657 1.343-3 3-3s3 1.343 3 3v4h5V11h2V9z'/%3E%3C/g%3E%3C/svg%3E%0A")}#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image{background-color:#c3c4c7}#adminmenu .toplevel_page_site-card:not(.has-site-icon) .wp-menu-image img[src^="data:image/svg"]{height:auto;padding-top:7px;width:18px}#adminmenu .toplevel_page_site-card a:focus div.wp-menu-image img,#adminmenu .toplevel_page_site-card:hover div.wp-menu-image img{display:none}.site__info .site__title{display:block;font-size:14px;font-weight:400;line-height:1.3}.site__info .site__domain{display:block;max-width:95%;font-size:12px;line-height:1.4;margin-top:2px}.site__info .site__domain,.site__info .site__title{overflow:hidden;white-space:nowrap}.site__info .site__domain::after,.site__info .site__title::after{content:"";display:block;position:absolute;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;pointer-events:none;top:0;bottom:0;right:0;left:auto;width:20%;height:auto}.site__info>.site__badge{font-size:12px;border-radius:12px;clear:both;display:inline-block;margin-top:6px;margin-right:3px;padding:1px 10px}.inline-text{display:block!important;position:absolute;right:20px;top:50%;transform:translateY(-50%);opacity:.8}[class*="toplevel_page_https://wordpress.com/stats/day"] .sidebar-unified__sparkline{float:right;margin-right:8px}.folded #adminmenu a.menu-top{height:31px}.folded #adminmenu li.toplevel_page_site-card a{padding-left:0}@media only screen and (max-width:960px){#adminmenu,#adminmenuback,#adminmenuwrap{width:272px}.auto-fold #adminmenu a[class*=toplevel_page_http].wp-first-item{height:auto}.wp-responsive-open #adminmenu a.menu-top{height:auto}.auto-fold #adminmenu div.wp-menu-image{width:36px}}@media screen and (min-width:782px) and (max-width:960px){.auto-fold #adminmenu a.menu-top{height:34px}.auto-fold #adminmenu li.toplevel_page_site-card a{height:36px;padding-left:1px}}@media screen and (max-width:782px){#adminmenu li.menu-top .wp-submenu>li>a,.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:42px}.wp-responsive-open #wpbody{right:inherit}.wp-responsive-open #wpcontent{margin-left:272px}.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:272px}#adminmenu a.site-switcher,.auto-fold #adminmenu a.site-switcher{font-size:14px}}@media only screen and (max-width:660px){#adminmenu,#adminmenu .wp-submenu,#adminmenuback,#adminmenuwrap,.auto-fold #adminmenu,.auto-fold #adminmenuback,.auto-fold #adminmenuwrap{width:100%;z-index:171}.wp-responsive-open #wpcontent{margin-left:0}.auto-fold ul#adminmenu li:hover a.wp-has-current-submenu:after,ul#adminmenu a.wp-has-current-submenu:after,ul#adminmenu li:hover a.wp-has-current-submenu:after,ul#adminmenu>li.current>a.current:after{display:none}.auto-fold #adminmenu li.toplevel_page_site-card a{padding:18px 0 18px 12px}}#wpadminbar #wp-admin-bar-notes #wpnt-notes-unread-count.wpn-unread{top:50%;left:50%;transform:translate(-10px,-13px)}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar{transform:translateX(1px)}#wpadminbar #wp-admin-bar-notes.active .noticon-bell:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+)!important}#wpadminbar #wp-admin-bar-notes.wpnt-show .noticon,#wpadminbar>#wp-toolbar .wpnt-show span.noticon{color:#fff}#wpadminbar .quicklinks ul#wp-admin-bar-root-default{padding-left:0!important}#wpadminbar #wp-admin-bar-menu-toggle{display:none}@media screen and (max-width:782px){#wpadminbar #wp-toolbar>ul>li{display:block}#wpadminbar .ab-top-menu>li>.ab-item{box-sizing:border-box;line-height:32px}#wpadminbar #wp-admin-bar-ab-new-post>.ab-item{box-sizing:inherit!important}#wpadminbar #wp-admin-bar-my-account>.ab-item{padding:7px 15px;width:auto}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a img{display:block;right:auto;left:auto;position:static;margin-top:3px;top:13px}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-debug-bar{display:none}}@media screen and (max-width:480px){#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a{width:auto}#wpadminbar #wp-toolbar.quicklinks li#wp-admin-bar-my-account.with-avatar>a img{margin-top:12px}}#adv-settings{display:flex;flex-direction:column}#adv-settings #dashboard-switcher{order:0}#adv-settings .dashboard-switcher-text{margin-top:0}#adv-settings .dashboard-switcher-button{padding:3px 16px}#adv-settings fieldset{order:1}#adv-settings .submit{order:2} \ No newline at end of file
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php
new file mode 100644
index 00000000..46b7f8bf
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-admin-menu.php
@@ -0,0 +1,542 @@
+<?php
+/**
+ * Admin Menu file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Redirect;
+
+require_once __DIR__ . '/class-base-admin-menu.php';
+
+/**
+ * Class Admin_Menu.
+ */
+class Admin_Menu extends Base_Admin_Menu {
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ // Remove separators.
+ remove_menu_page( 'separator1' );
+
+ $this->add_stats_menu();
+ $this->add_upgrades_menu();
+ $this->add_posts_menu();
+ $this->add_media_menu();
+ $this->add_page_menu();
+ $this->add_testimonials_menu();
+ $this->add_portfolio_menu();
+ $this->add_comments_menu();
+ $this->add_appearance_menu();
+ $this->add_plugins_menu();
+ $this->add_users_menu();
+ $this->add_tools_menu();
+ $this->add_options_menu();
+ $this->add_jetpack_menu();
+ $this->add_gutenberg_menus();
+
+ // Remove Links Manager menu since its usage is discouraged. https://github.com/Automattic/wp-calypso/issues/51188.
+ // @see https://core.trac.wordpress.org/ticket/21307#comment:73.
+ if ( $this->should_disable_links_manager() ) {
+ remove_menu_page( 'link-manager.php' );
+ }
+
+ ksort( $GLOBALS['menu'] );
+ }
+
+ /**
+ * Get the preferred view for the given screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param bool $fallback_global_preference (Optional) Whether the global preference for all screens should be used
+ * as fallback if there is no specific preference for the given screen.
+ * Default: true.
+ * @return string
+ */
+ public function get_preferred_view( $screen, $fallback_global_preference = true ) {
+ // When no preferred view has been set for "Users > All Users" or "Settings > General", keep the previous
+ // behavior that forced the default view regardless of the global preference.
+ if (
+ $fallback_global_preference &&
+ in_array( $screen, array( 'users.php', 'options-general.php' ), true )
+ ) {
+ $preferred_view = parent::get_preferred_view( $screen, false );
+ if ( self::UNKNOWN_VIEW === $preferred_view ) {
+ return self::DEFAULT_VIEW;
+ }
+ return $preferred_view;
+ }
+
+ return parent::get_preferred_view( $screen, $fallback_global_preference );
+ }
+
+ /**
+ * Check if Links Manager is being used.
+ */
+ public function should_disable_links_manager() {
+ // The max ID number of the auto-generated links.
+ // See /wp-content/mu-plugins/wpcom-wp-install-defaults.php in WP.com.
+ $max_default_id = 10;
+
+ // We are only checking the latest entry link_id so are limiting the query to 1.
+ $link_manager_links = get_bookmarks(
+ array(
+ 'orderby' => 'link_id',
+ 'order' => 'DESC',
+ 'limit' => 1,
+ 'hide_invisible' => 0,
+ )
+ );
+
+ // Ordered links by ID descending, check if the first ID is more than $max_default_id.
+ if ( count( $link_manager_links ) > 0 && $link_manager_links[0]->link_id > $max_default_id ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Adds My Home menu.
+ */
+ public function add_my_home_menu() {
+ $this->update_menu( 'index.php', 'https://wordpress.com/home/' . $this->domain, __( 'My Home', 'jetpack' ), 'edit_posts', 'dashicons-admin-home' );
+ }
+
+ /**
+ * Adds upsell nudge as a menu.
+ *
+ * @param object $nudge The $nudge object containing the content, CTA, link and tracks.
+ */
+ public function add_upsell_nudge( $nudge ) {
+ $dismiss_button = '';
+ if ( $nudge['dismissible'] ) {
+ $dismiss_button = '<svg xmlns="http://www.w3.org/2000/svg" data-feature_class="%1$s" data-feature_id="%2$s" viewBox="0 0 24 24" class="gridicon gridicons-cross dismissible-card__close-icon" height="24" width="24"><g><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"></path></g></svg>';
+ $dismiss_button = sprintf( $dismiss_button, esc_attr( $nudge['feature_class'] ), esc_attr( $nudge['id'] ) );
+ }
+
+ $message = '
+<div class="upsell_banner">
+ <div class="banner__info">
+ <div class="banner__title">%1$s</div>
+ </div>
+ <div class="banner__action">
+ <button type="button" class="button">%2$s</button>
+ </div>%3$s
+</div>';
+
+ $message = sprintf(
+ $message,
+ wp_kses( $nudge['content'], array() ),
+ wp_kses( $nudge['cta'], array() ),
+ $dismiss_button
+ );
+
+ $menu_slug = $nudge['link'];
+ if ( wp_startswith( $menu_slug, '/' ) ) {
+ $menu_slug = 'https://wordpress.com' . $menu_slug;
+ }
+
+ add_menu_page( 'site-notices', $message, 'read', $menu_slug, null, null, 1 );
+ add_filter( 'add_menu_classes', array( $this, 'set_site_notices_menu_class' ) );
+ }
+
+ /**
+ * Adds a custom element class and id for Site Notices's menu item.
+ *
+ * @param array $menu Associative array of administration menu items.
+ * @return array
+ */
+ public function set_site_notices_menu_class( array $menu ) {
+ foreach ( $menu as $key => $menu_item ) {
+ if ( 'site-notices' !== $menu_item[3] ) {
+ continue;
+ }
+
+ $classes = ' toplevel_page_site-notices';
+
+ if ( isset( $menu_item[4] ) ) {
+ $menu[ $key ][4] = $menu_item[4] . $classes;
+ $menu[ $key ][5] = 'toplevel_page_site-notices';
+ break;
+ }
+ }
+
+ return $menu;
+ }
+
+ /**
+ * Adds Inbox menu.
+ */
+ public function add_inbox_menu() {
+ add_menu_page( __( 'Inbox', 'jetpack' ), __( 'Inbox', 'jetpack' ), 'manage_options', 'https://wordpress.com/inbox/' . $this->domain, null, 'dashicons-email', '4.64424' );
+ }
+
+ /**
+ * Adds Stats menu.
+ */
+ public function add_stats_menu() {
+ add_menu_page( __( 'Stats', 'jetpack' ), __( 'Stats', 'jetpack' ), 'view_stats', 'https://wordpress.com/stats/day/' . $this->domain, null, 'dashicons-chart-bar', 3 );
+ }
+
+ /**
+ * Adds Upgrades menu.
+ *
+ * @param string $plan The current WPCOM plan of the blog.
+ */
+ public function add_upgrades_menu( $plan = null ) {
+ global $menu;
+
+ $menu_exists = false;
+ foreach ( $menu as $item ) {
+ if ( 'paid-upgrades.php' === $item[2] ) {
+ $menu_exists = true;
+ break;
+ }
+ }
+
+ if ( ! $menu_exists ) {
+ if ( $plan ) {
+ // Add display:none as a default for cases when CSS is not loaded.
+ $site_upgrades = '%1$s<span class="inline-text" style="display:none">%2$s</span>';
+ $site_upgrades = sprintf(
+ $site_upgrades,
+ __( 'Upgrades', 'jetpack' ),
+ $plan
+ );
+ } else {
+ $site_upgrades = __( 'Upgrades', 'jetpack' );
+ }
+
+ add_menu_page( __( 'Upgrades', 'jetpack' ), $site_upgrades, 'manage_options', 'paid-upgrades.php', null, 'dashicons-cart', 4 );
+ }
+
+ add_submenu_page( 'paid-upgrades.php', __( 'Plans', 'jetpack' ), __( 'Plans', 'jetpack' ), 'manage_options', 'https://wordpress.com/plans/' . $this->domain, null, 1 );
+ add_submenu_page( 'paid-upgrades.php', __( 'Purchases', 'jetpack' ), __( 'Purchases', 'jetpack' ), 'manage_options', 'https://wordpress.com/purchases/subscriptions/' . $this->domain, null, 2 );
+
+ if ( ! $menu_exists ) {
+ // Remove the submenu auto-created by Core.
+ $this->hide_submenu_page( 'paid-upgrades.php', 'paid-upgrades.php' );
+ }
+ }
+
+ /**
+ * Adds Posts menu.
+ */
+ public function add_posts_menu() {
+ $submenus_to_update = array();
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'edit.php' ) ) {
+ $submenus_to_update['edit.php'] = 'https://wordpress.com/posts/' . $this->domain;
+ $submenus_to_update['post-new.php'] = 'https://wordpress.com/post/' . $this->domain;
+ }
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'edit-tags.php?taxonomy=category' ) ) {
+ $submenus_to_update['edit-tags.php?taxonomy=category'] = 'https://wordpress.com/settings/taxonomies/category/' . $this->domain;
+ }
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'edit-tags.php?taxonomy=post_tag' ) ) {
+ $submenus_to_update['edit-tags.php?taxonomy=post_tag'] = 'https://wordpress.com/settings/taxonomies/post_tag/' . $this->domain;
+ }
+
+ $this->update_submenus( 'edit.php', $submenus_to_update );
+ }
+
+ /**
+ * Adds Media menu.
+ */
+ public function add_media_menu() {
+ if ( self::CLASSIC_VIEW === $this->get_preferred_view( 'upload.php' ) ) {
+ return;
+ }
+
+ $this->hide_submenu_page( 'upload.php', 'media-new.php' );
+
+ $this->update_menu( 'upload.php', 'https://wordpress.com/media/' . $this->domain );
+ }
+
+ /**
+ * Adds Page menu.
+ */
+ public function add_page_menu() {
+ if ( self::CLASSIC_VIEW === $this->get_preferred_view( 'edit.php?post_type=page' ) ) {
+ return;
+ }
+
+ $submenus_to_update = array(
+ 'edit.php?post_type=page' => 'https://wordpress.com/pages/' . $this->domain,
+ 'post-new.php?post_type=page' => 'https://wordpress.com/page/' . $this->domain,
+ );
+ $this->update_submenus( 'edit.php?post_type=page', $submenus_to_update );
+ }
+
+ /**
+ * Adds Testimonials menu.
+ */
+ public function add_testimonials_menu() {
+ $this->add_custom_post_type_menu( 'jetpack-testimonial' );
+ }
+
+ /**
+ * Adds Portfolio menu.
+ */
+ public function add_portfolio_menu() {
+ $this->add_custom_post_type_menu( 'jetpack-portfolio' );
+ }
+
+ /**
+ * Adds a custom post type menu.
+ *
+ * @param string $post_type Custom post type.
+ */
+ public function add_custom_post_type_menu( $post_type ) {
+ if ( self::CLASSIC_VIEW === $this->get_preferred_view( 'edit.php?post_type=' . $post_type ) ) {
+ return;
+ }
+
+ $submenus_to_update = array(
+ 'edit.php?post_type=' . $post_type => 'https://wordpress.com/types/' . $post_type . '/' . $this->domain,
+ 'post-new.php?post_type=' . $post_type => 'https://wordpress.com/edit/' . $post_type . '/' . $this->domain,
+ );
+ $this->update_submenus( 'edit.php?post_type=' . $post_type, $submenus_to_update );
+ }
+
+ /**
+ * Adds Comments menu.
+ */
+ public function add_comments_menu() {
+ if ( self::CLASSIC_VIEW === $this->get_preferred_view( 'edit-comments.php' ) ) {
+ return;
+ }
+
+ $this->update_menu( 'edit-comments.php', 'https://wordpress.com/comments/all/' . $this->domain );
+ }
+
+ /**
+ * Adds Appearance menu.
+ *
+ * @return string The Customizer URL.
+ */
+ public function add_appearance_menu() {
+ $request_uri = isset( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
+ $default_customize_slug = add_query_arg( 'return', rawurlencode( remove_query_arg( wp_removable_query_args(), $request_uri ) ), 'customize.php' );
+ $default_customize_header_slug_1 = add_query_arg( array( 'autofocus' => array( 'control' => 'header_image' ) ), $default_customize_slug );
+ // TODO: Remove WPCom_Theme_Customizer::modify_header_menu_links() and WPcom_Custom_Header::modify_admin_menu_links().
+ $default_customize_header_slug_2 = admin_url( 'themes.php?page=custom-header' );
+ $default_customize_background_slug_1 = add_query_arg( array( 'autofocus' => array( 'control' => 'background_image' ) ), $default_customize_slug );
+ // TODO: Remove Colors_Manager::modify_header_menu_links() and Colors_Manager_Common::modify_header_menu_links().
+ $default_customize_background_slug_2 = add_query_arg( array( 'autofocus' => array( 'section' => 'colors_manager_tool' ) ), admin_url( 'customize.php' ) );
+
+ if ( $this->is_api_request ) {
+ // In case this is an api request we will have to add the 'return' querystring via JS.
+ $customize_url = 'customize.php';
+ } else {
+ $customize_url = $default_customize_slug;
+ }
+
+ $submenus_to_update = array(
+ $default_customize_slug => $customize_url,
+ $default_customize_header_slug_1 => add_query_arg( array( 'autofocus' => array( 'control' => 'header_image' ) ), $customize_url ),
+ $default_customize_header_slug_2 => add_query_arg( array( 'autofocus' => array( 'control' => 'header_image' ) ), $customize_url ),
+ $default_customize_background_slug_1 => add_query_arg( array( 'autofocus' => array( 'section' => 'colors_manager_tool' ) ), $customize_url ),
+ $default_customize_background_slug_2 => add_query_arg( array( 'autofocus' => array( 'section' => 'colors_manager_tool' ) ), $customize_url ),
+ );
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'themes.php' ) ) {
+ $submenus_to_update['themes.php'] = 'https://wordpress.com/themes/' . $this->domain;
+ }
+
+ $this->update_submenus( 'themes.php', $submenus_to_update );
+
+ $this->hide_submenu_page( 'themes.php', 'custom-header' );
+ $this->hide_submenu_page( 'themes.php', 'custom-background' );
+
+ return $customize_url;
+ }
+
+ /**
+ * Adds Plugins menu.
+ */
+ public function add_plugins_menu() {
+ $this->hide_submenu_page( 'plugins.php', 'plugin-install.php' );
+ $this->hide_submenu_page( 'plugins.php', 'plugin-editor.php' );
+
+ $this->update_menu( 'plugins.php', 'https://wordpress.com/plugins/' . $this->domain );
+ }
+
+ /**
+ * Adds Users menu.
+ */
+ public function add_users_menu() {
+ $submenus_to_update = array(
+ 'profile.php' => 'https://wordpress.com/me',
+ );
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'users.php' ) ) {
+ $submenus_to_update['users.php'] = 'https://wordpress.com/people/team/' . $this->domain;
+ $submenus_to_update['user-new.php'] = 'https://wordpress.com/people/new/' . $this->domain;
+ }
+
+ $slug = current_user_can( 'list_users' ) ? 'users.php' : 'profile.php';
+ $this->update_submenus( $slug, $submenus_to_update );
+ add_submenu_page( $slug, esc_attr__( 'Account Settings', 'jetpack' ), __( 'Account Settings', 'jetpack' ), 'read', 'https://wordpress.com/me/account' );
+ }
+
+ /**
+ * Adds Tools menu.
+ */
+ public function add_tools_menu() {
+ $submenus_to_update = array();
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'import.php' ) ) {
+ $submenus_to_update['import.php'] = 'https://wordpress.com/import/' . $this->domain;
+ }
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'export.php' ) ) {
+ $submenus_to_update['export.php'] = 'https://wordpress.com/export/' . $this->domain;
+ }
+ $this->update_submenus( 'tools.php', $submenus_to_update );
+
+ $this->hide_submenu_page( 'tools.php', 'tools.php' );
+ $this->hide_submenu_page( 'tools.php', 'delete-blog' );
+
+ add_submenu_page( 'tools.php', esc_attr__( 'Marketing', 'jetpack' ), __( 'Marketing', 'jetpack' ), 'publish_posts', 'https://wordpress.com/marketing/tools/' . $this->domain, null, 0 );
+ add_submenu_page( 'tools.php', esc_attr__( 'Earn', 'jetpack' ), __( 'Earn', 'jetpack' ), 'manage_options', 'https://wordpress.com/earn/' . $this->domain, null, 1 );
+ }
+
+ /**
+ * Adds Settings menu.
+ */
+ public function add_options_menu() {
+ $submenus_to_update = array();
+
+ $this->hide_submenu_page( 'options-general.php', 'sharing' );
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'options-general.php' ) ) {
+ $submenus_to_update['options-general.php'] = 'https://wordpress.com/settings/general/' . $this->domain;
+ }
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'options-writing.php' ) ) {
+ $submenus_to_update['options-writing.php'] = 'https://wordpress.com/settings/writing/' . $this->domain;
+ }
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'options-discussion.php' ) ) {
+ $submenus_to_update['options-discussion.php'] = 'https://wordpress.com/settings/discussion/' . $this->domain;
+ }
+
+ $this->update_submenus( 'options-general.php', $submenus_to_update );
+
+ add_submenu_page( 'options-general.php', esc_attr__( 'Performance', 'jetpack' ), __( 'Performance', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/performance/' . $this->domain, null, 1 );
+ }
+
+ /**
+ * Adds Jetpack menu.
+ */
+ public function add_jetpack_menu() {
+ $this->add_admin_menu_separator( 50, 'manage_options' );
+
+ // TODO: Replace with proper SVG data url.
+ $icon = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 40 40' %3E%3Cpath fill='%23a0a5aa' d='M20 0c11.046 0 20 8.954 20 20s-8.954 20-20 20S0 31.046 0 20 8.954 0 20 0zm11 17H21v19l10-19zM19 4L9 23h10V4z'/%3E%3C/svg%3E";
+
+ $is_menu_updated = $this->update_menu( 'jetpack', null, null, null, $icon, 51 );
+ if ( ! $is_menu_updated ) {
+ add_menu_page( esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'jetpack', null, $icon, 51 );
+ }
+
+ add_submenu_page( 'jetpack', esc_attr__( 'Activity Log', 'jetpack' ), __( 'Activity Log', 'jetpack' ), 'manage_options', 'https://wordpress.com/activity-log/' . $this->domain, null, 2 );
+ add_submenu_page( 'jetpack', esc_attr__( 'Backup', 'jetpack' ), __( 'Backup', 'jetpack' ), 'manage_options', 'https://wordpress.com/backup/' . $this->domain, null, 3 );
+ /* translators: Jetpack sidebar menu item. */
+ add_submenu_page( 'jetpack', esc_attr__( 'Search', 'jetpack' ), __( 'Search', 'jetpack' ), 'manage_options', 'https://wordpress.com/jetpack-search/' . $this->domain, null, 4 );
+
+ $this->hide_submenu_page( 'jetpack', 'jetpack#/settings' );
+ $this->hide_submenu_page( 'jetpack', 'stats' );
+ $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-backups' ) ) );
+ $this->hide_submenu_page( 'jetpack', esc_url( Redirect::get_url( 'calypso-scanner' ) ) );
+
+ if ( ! $is_menu_updated ) {
+ // Remove the submenu auto-created by Core just to be sure that there no issues on non-admin roles.
+ remove_submenu_page( 'jetpack', 'jetpack' );
+ }
+ }
+
+ /**
+ * Update Site Editor menu item's link and position.
+ */
+ public function add_gutenberg_menus() {
+ if ( self::CLASSIC_VIEW === $this->get_preferred_view( 'admin.php?page=gutenberg-edit-site' ) ) {
+ return;
+ }
+
+ $this->update_menu( 'gutenberg-edit-site', 'https://wordpress.com/site-editor/' . $this->domain, null, null, null, 59 );
+
+ // Gutenberg 11.9 moves the Site Editor to an Appearance submenu as Editor.
+ $submenus_to_update = array(
+ 'gutenberg-edit-site' => 'https://wordpress.com/site-editor/' . $this->domain,
+ );
+ $this->update_submenus( 'themes.php', $submenus_to_update );
+ // Gutenberg 11.9 adds an redundant site editor entry point that requires some calypso work
+ // before it can be exposed. Note, there are also already discussions to remove this excess
+ // item in Gutenberg.
+ $this->hide_submenu_page( 'themes.php', 'gutenberg-edit-site&styles=open' );
+ }
+
+ /**
+ * Add the calypso /woocommerce-installation/ menu item.
+ *
+ * @param array $current_plan The site's plan if they have one. This is passed from WPcom_Admin_Menu to prevent
+ * redundant database queries.
+ */
+ public function add_woocommerce_installation_menu( $current_plan = null ) {
+ /**
+ * Whether to show the WordPress.com WooCommerce Installation menu.
+ *
+ * @use add_filter( 'jetpack_show_wpcom_woocommerce_installation_menu', '__return_true' );
+ * @module masterbar
+ * @since 10.3.0
+ * @param bool $jetpack_show_wpcom_woocommerce_installation_menu Load the WordPress.com WooCommerce Installation menu item. Default to false.
+ * @param array $current_plan Data about the current site's plan.
+ */
+ if ( apply_filters( 'jetpack_show_wpcom_woocommerce_installation_menu', false, $current_plan ) ) {
+ $this->add_admin_menu_separator( 54, 'activate_plugins' );
+
+ $icon_url = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxwYXRoIGZpbGw9IiNhMmFhYjIiIGQ9Ik02MTIuMTkyIDQyNi4zMzZjMC02Ljg5Ni0zLjEzNi01MS42LTI4LTUxLjYtMzcuMzYgMC00Ni43MDQgNzIuMjU2LTQ2LjcwNCA4Mi42MjQgMCAzLjQwOCAzLjE1MiA1OC40OTYgMjguMDMyIDU4LjQ5NiAzNC4xOTItLjAzMiA0Ni42NzItNzIuMjg4IDQ2LjY3Mi04OS41MnptMjAyLjE5MiAwYzAtNi44OTYtMy4xNTItNTEuNi0yOC4wMzItNTEuNi0zNy4yOCAwLTQ2LjYwOCA3Mi4yNTYtNDYuNjA4IDgyLjYyNCAwIDMuNDA4IDMuMDcyIDU4LjQ5NiAyNy45NTIgNTguNDk2IDM0LjE5Mi0uMDMyIDQ2LjY4OC03Mi4yODggNDYuNjg4LTg5LjUyek0xNDEuMjk2Ljc2OGMtNjguMjI0IDAtMTIzLjUwNCA1NS40ODgtMTIzLjUwNCAxMjMuOTJ2NjUwLjcyYzAgNjguNDMyIDU1LjI5NiAxMjMuOTIgMTIzLjUwNCAxMjMuOTJoMzM5LjgwOGwxMjMuNTA0IDEyMy45MzZWODk5LjMyOGgyNzguMDQ4YzY4LjIyNCAwIDEyMy41Mi01NS40NzIgMTIzLjUyLTEyMy45MnYtNjUwLjcyYzAtNjguNDMyLTU1LjI5Ni0xMjMuOTItMTIzLjUyLTEyMy45MmgtNzQxLjM2em01MjYuODY0IDQyMi4xNmMwIDU1LjA4OC0zMS4wODggMTU0Ljg4LTEwMi42NCAxNTQuODgtNi4yMDggMC0xOC40OTYtMy42MTYtMjUuNDI0LTYuMDE2LTMyLjUxMi0xMS4xNjgtNTAuMTkyLTQ5LjY5Ni01Mi4zNTItNjYuMjU2IDAgMC0zLjA3Mi0xNy43OTItMy4wNzItNDAuNzUyIDAtMjIuOTkyIDMuMDcyLTQ1LjMyOCAzLjA3Mi00NS4zMjggMTUuNTUyLTc1LjcyOCA0My41NTItMTA2LjczNiA5Ni40NDgtMTA2LjczNiA1OS4wNzItLjAzMiA4My45NjggNTguNTI4IDgzLjk2OCAxMTAuMjA4ek00ODYuNDk2IDMwMi40YzAgMy4zOTItNDMuNTUyIDE0MS4xNjgtNDMuNTUyIDIxMy40MjR2NzUuNzEyYy0yLjU5MiAxMi4wOC00LjE2IDI0LjE0NC0yMS44MjQgMjQuMTQ0LTQ2LjYwOCAwLTg4Ljg4LTE1MS40NzItOTIuMDE2LTE2MS44NC02LjIwOCA2Ljg5Ni02Mi4yNCAxNjEuODQtOTYuNDQ4IDE2MS44NC0yNC44NjQgMC00My41NTItMTEzLjY0OC00Ni42MDgtMTIzLjkzNkMxNzYuNzA0IDQzNi42NzIgMTYwIDMzNC4yMjQgMTYwIDMyNy4zMjhjMC0yMC42NzIgMS4xNTItMzguNzM2IDI2LjA0OC0zOC43MzYgNi4yMDggMCAyMS42IDYuMDY0IDIzLjcxMiAxNy4xNjggMTEuNjQ4IDYyLjAzMiAxNi42ODggMTIwLjUxMiAyOS4xNjggMTg1Ljk2OCAxLjg1NiAyLjkyOCAxLjUwNCA3LjAwOCA0LjU2IDEwLjQzMiAzLjE1Mi0xMC4yODggNjYuOTI4LTE2OC43ODQgOTQuOTYtMTY4Ljc4NCAyMi41NDQgMCAzMC40IDQ0LjU5MiAzMy41MzYgNjEuODI0IDYuMjA4IDIwLjY1NiAxMy4wODggNTUuMjE2IDIyLjQxNiA4Mi43NTIgMC0xMy43NzYgMTIuNDgtMjAzLjEyIDY1LjM5Mi0yMDMuMTIgMTguNTkyLjAzMiAyNi43MDQgNi45MjggMjYuNzA0IDI3LjU2OHpNODcwLjMyIDQyMi45MjhjMCA1NS4wODgtMzEuMDg4IDE1NC44OC0xMDIuNjQgMTU0Ljg4LTYuMTkyIDAtMTguNDQ4LTMuNjE2LTI1LjQyNC02LjAxNi0zMi40MzItMTEuMTY4LTUwLjE3Ni00OS42OTYtNTIuMjg4LTY2LjI1NiAwIDAtMy44ODgtMTcuOTItMy44ODgtNDAuODk2czMuODg4LTQ1LjE4NCAzLjg4OC00NS4xODRjMTUuNTUyLTc1LjcyOCA0My40ODgtMTA2LjczNiA5Ni4zODQtMTA2LjczNiA1OS4xMDQtLjAzMiA4My45NjggNTguNTI4IDgzLjk2OCAxMTAuMjA4eiIvPjwvc3ZnPg==';
+ $menu_url = 'https://wordpress.com/woocommerce-installation/' . $this->domain;
+
+ // Only show the menu if the user has the capability to activate_plugins.
+ add_menu_page( esc_attr__( 'WooCommerce', 'jetpack' ), esc_attr__( 'WooCommerce', 'jetpack' ), 'activate_plugins', $menu_url, null, $icon_url, 55 );
+ }
+ }
+
+ /**
+ * Prepend a dashboard swithcer to the "Screen Options" box of the current page.
+ * Callback for the 'screen_settings' filter (available in WP 3.0 and up).
+ *
+ * @param string $current The currently added panels in screen options.
+ *
+ * @return string The HTML code to append to "Screen Options"
+ */
+ public function register_dashboard_switcher( $current ) {
+ $menu_mappings = require __DIR__ . '/menu-mappings.php';
+ $screen = $this->get_current_screen();
+
+ // Let's show the switcher only in screens that we have a Calypso mapping to switch to.
+ if ( ! isset( $menu_mappings[ $screen ] ) ) {
+ return;
+ }
+
+ $contents = sprintf(
+ '<div id="dashboard-switcher"><h5>%s</h5><p class="dashboard-switcher-text">%s</p><a class="button button-primary dashboard-switcher-button" href="%s">%s</a></div>',
+ __( 'Screen features', 'jetpack' ),
+ __( 'Currently you are seeing the classic WP-Admin view of this page. Would you like to see the default WordPress.com view?', 'jetpack' ),
+ add_query_arg( 'preferred-view', 'default' ),
+ __( 'Use WordPress.com view', 'jetpack' )
+ );
+
+ // Prepend the Dashboard swither to the other custom panels.
+ $current = $contents . $current;
+
+ return $current;
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php
new file mode 100644
index 00000000..b3bd7c64
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-atomic-admin-menu.php
@@ -0,0 +1,427 @@
+<?php
+/**
+ * Atomic Admin Menu file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Connection\Client;
+use Jetpack_Plan;
+
+require_once __DIR__ . '/class-admin-menu.php';
+
+/**
+ * Class Atomic_Admin_Menu.
+ */
+class Atomic_Admin_Menu extends Admin_Menu {
+
+ /**
+ * Atomic_Admin_Menu constructor.
+ */
+ protected function __construct() {
+ parent::__construct();
+
+ add_action( 'wp_enqueue_scripts', array( $this, 'dequeue_scripts' ), 20 );
+ add_action( 'admin_enqueue_scripts', array( $this, 'dequeue_scripts' ), 20 );
+ add_action( 'wp_ajax_sidebar_state', array( $this, 'ajax_sidebar_state' ) );
+ add_action( 'wp_ajax_jitm_dismiss', array( $this, 'wp_ajax_jitm_dismiss' ) );
+
+ if ( ! $this->is_api_request ) {
+ add_filter( 'submenu_file', array( $this, 'override_the_theme_installer' ), 10, 2 );
+ }
+
+ add_action(
+ 'admin_menu',
+ function () {
+ remove_action( 'admin_menu', 'gutenberg_menu', 9 );
+ },
+ 0
+ );
+ }
+
+ /**
+ * Dequeues unnecessary scripts.
+ */
+ public function dequeue_scripts() {
+ wp_dequeue_script( 'a8c_wpcom_masterbar_overrides' ); // Initially loaded in modules/masterbar/masterbar/class-masterbar.php.
+ }
+
+ /**
+ * Determines whether the current locale is right-to-left (RTL).
+ *
+ * Performs the check against the current locale set on the WordPress.com's account settings.
+ * See `Masterbar::__construct` in `modules/masterbar/masterbar/class-masterbar.php`.
+ */
+ public function is_rtl() {
+ return get_user_option( 'jetpack_wpcom_is_rtl' );
+ }
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ parent::reregister_menu_items();
+
+ $this->add_my_home_menu();
+ $this->add_inbox_menu();
+ $this->hide_search_menu_for_calypso();
+
+ // Not needed outside of wp-admin.
+ if ( ! $this->is_api_request ) {
+ $this->add_browse_sites_link();
+ $this->add_site_card_menu();
+ $nudge = $this->get_upsell_nudge();
+ if ( $nudge ) {
+ parent::add_upsell_nudge( $nudge );
+ }
+
+ $this->add_new_site_link();
+ }
+
+ $this->add_woocommerce_installation_menu();
+
+ ksort( $GLOBALS['menu'] );
+ }
+
+ /**
+ * Get the preferred view for the given screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param bool $fallback_global_preference (Optional) Whether the global preference for all screens should be used
+ * as fallback if there is no specific preference for the given screen.
+ * Default: true.
+ * @return string
+ */
+ public function get_preferred_view( $screen, $fallback_global_preference = true ) {
+ // Export on Atomic sites are always managed on WP Admin.
+ if ( in_array( $screen, array( 'export.php' ), true ) ) {
+ return self::CLASSIC_VIEW;
+ }
+
+ /**
+ * When Jetpack SSO is disabled, we need to force Calypso because it might create confusion to be redirected to WP-Admin.
+ * Furthermore, because we don't display the quick switcher, users having an WP-Admin interface by default won't be able to go back to the Calyso version.
+ */
+ if ( ! \Jetpack::is_module_active( 'sso' ) ) {
+ return self::DEFAULT_VIEW;
+ }
+
+ return parent::get_preferred_view( $screen, $fallback_global_preference );
+ }
+
+ /**
+ * Adds Plugins menu.
+ */
+ public function add_plugins_menu() {
+ global $submenu;
+ if (
+ isset( $submenu['plugins.php'] )
+ /**
+ * Whether to enable the marketplace feature entrypoint.
+ * This filter is specific to WPCOM, that's why there is no
+ * need to use `jetpack_` prefix.
+ *
+ * @use add_filter( 'wpcom_marketplace_enabled', '__return_true' );
+ * @module masterbar
+ * @since 10.3
+ * @param bool $wpcom_marketplace_enabled Load the WordPress.com Marketplace feature. Default to false.
+ */
+ && apply_filters( 'wpcom_marketplace_enabled', false )
+ ) {
+ $plugins_submenu = $submenu['plugins.php'];
+ $slug_to_update = 'plugin-install.php';
+
+ // Move "Add New" plugin submenu ( `plugin-install.php` ) to the top position.
+ foreach ( $plugins_submenu as $submenu_key => $submenu_keys ) {
+ if ( $submenu_keys[2] === $slug_to_update ) {
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu['plugins.php'] = array( $submenu_key => $plugins_submenu[ $submenu_key ] ) + $plugins_submenu;
+ }
+ }
+
+ $submenus_to_update = array( $slug_to_update => 'https://wordpress.com/plugins/' . $this->domain );
+ $this->update_submenus( 'plugins.php', $submenus_to_update );
+ }
+ }
+
+ /**
+ * Adds the site switcher link if user has more than one site.
+ */
+ public function add_browse_sites_link() {
+ $site_count = get_user_option( 'wpcom_site_count' );
+ if ( ! $site_count || $site_count < 2 ) {
+ return;
+ }
+
+ // Add the menu item.
+ add_menu_page( __( 'site-switcher', 'jetpack' ), __( 'Browse sites', 'jetpack' ), 'read', 'https://wordpress.com/home', null, 'dashicons-arrow-left-alt2', 0 );
+ add_filter( 'add_menu_classes', array( $this, 'set_browse_sites_link_class' ) );
+ }
+
+ /**
+ * Adds a custom element class for Site Switcher menu item.
+ *
+ * @param array $menu Associative array of administration menu items.
+ *
+ * @return array
+ */
+ public function set_browse_sites_link_class( array $menu ) {
+ foreach ( $menu as $key => $menu_item ) {
+ if ( 'site-switcher' !== $menu_item[3] ) {
+ continue;
+ }
+
+ $menu[ $key ][4] = add_cssclass( 'site-switcher', $menu_item[4] );
+ break;
+ }
+
+ return $menu;
+ }
+
+ /**
+ * Adds a link to the menu to create a new site.
+ */
+ public function add_new_site_link() {
+ $site_count = get_user_option( 'wpcom_site_count' );
+ if ( $site_count && $site_count > 1 ) {
+ return;
+ }
+
+ $this->add_admin_menu_separator();
+ add_menu_page( __( 'Add New Site', 'jetpack' ), __( 'Add New Site', 'jetpack' ), 'read', 'https://wordpress.com/start?ref=calypso-sidebar', null, 'dashicons-plus-alt' );
+ }
+
+ /**
+ * Adds site card component.
+ */
+ public function add_site_card_menu() {
+ $default = 'data:image/svg+xml,' . rawurlencode( '<svg class="gridicon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>Globe</title><rect fill-opacity="0" x="0" width="24" height="24"/><g><path fill="#fff" d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18l2-2 1-1v-2h-2v-1l-1-1H9v3l2 2v1.93c-3.94-.494-7-3.858-7-7.93l1 1h2v-2h2l3-3V6h-2L9 5v-.41C9.927 4.21 10.94 4 12 4s2.073.212 3 .59V6l-1 1v2l1 1 3.13-3.13c.752.897 1.304 1.964 1.606 3.13H18l-2 2v2l1 1h2l.286.286C18.03 18.06 15.24 20 12 20z"/></g></svg>' );
+ $icon = get_site_icon_url( 32, $default );
+ $blog_name = get_option( 'blogname' ) !== '' ? get_option( 'blogname' ) : $this->domain;
+ $is_coming_soon = ( function_exists( 'site_is_coming_soon' ) && site_is_coming_soon() ) || (bool) get_option( 'wpcom_public_coming_soon' );
+
+ $badge = '';
+ if ( ( function_exists( 'site_is_private' ) && site_is_private() ) || $is_coming_soon ) {
+ $badge .= sprintf(
+ '<span class="site__badge site__badge-private">%s</span>',
+ $is_coming_soon ? esc_html__( 'Coming Soon', 'jetpack' ) : esc_html__( 'Private', 'jetpack' )
+ );
+ }
+
+ $site_card = '
+<div class="site__info">
+ <div class="site__title">%1$s</div>
+ <div class="site__domain">%2$s</div>
+ %3$s
+</div>';
+
+ $site_card = sprintf(
+ $site_card,
+ $blog_name,
+ $this->domain,
+ $badge
+ );
+
+ add_menu_page( 'site-card', $site_card, 'read', get_home_url(), null, $icon, 1 );
+ add_filter( 'add_menu_classes', array( $this, 'set_site_card_menu_class' ) );
+ }
+
+ /**
+ * Adds a custom element class and id for Site Card's menu item.
+ *
+ * @param array $menu Associative array of administration menu items.
+ *
+ * @return array
+ */
+ public function set_site_card_menu_class( array $menu ) {
+ foreach ( $menu as $key => $menu_item ) {
+ if ( 'site-card' !== $menu_item[3] ) {
+ continue;
+ }
+
+ $classes = ' toplevel_page_site-card';
+
+ // webclip.png is the default on WoA sites. Anything other than that means we have a custom site icon.
+ if ( has_site_icon() && 'https://s0.wp.com/i/webclip.png' !== get_site_icon_url( 512 ) ) {
+ $classes .= ' has-site-icon';
+ }
+
+ $menu[ $key ][4] = $menu_item[4] . $classes;
+ $menu[ $key ][5] = 'toplevel_page_site_card';
+ break;
+ }
+
+ return $menu;
+ }
+
+ /**
+ * Returns the first available upsell nudge.
+ *
+ * @return array
+ */
+ public function get_upsell_nudge() {
+ $jitm = \Automattic\Jetpack\JITMS\JITM::get_instance();
+ $message_path = 'calypso:sites:sidebar_notice';
+ $message = $jitm->get_messages( $message_path, wp_json_encode( array( 'message_path' => $message_path ) ), false );
+
+ if ( isset( $message[0] ) ) {
+ $message = $message[0];
+ return array(
+ 'content' => $message->content->message,
+ 'cta' => $message->CTA->message, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ 'link' => $message->CTA->link, // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ 'tracks_impression_event_name' => $message->tracks->display->name,
+ 'tracks_impression_cta_name' => $message->tracks->display->props->cta_name,
+ 'tracks_click_event_name' => $message->tracks->click->name,
+ 'tracks_click_cta_name' => $message->tracks->click->props->cta_name,
+ 'dismissible' => $message->is_dismissible,
+ 'feature_class' => $message->feature_class,
+ 'id' => $message->id,
+ );
+ }
+ }
+
+ /**
+ * Adds Stats menu.
+ */
+ public function add_stats_menu() {
+ $menu_title = __( 'Stats', 'jetpack' );
+
+ if (
+ ! $this->is_api_request &&
+ \Jetpack::is_module_active( 'stats' ) &&
+ function_exists( 'stats_get_image_chart_src' )
+ ) {
+ $img_src = esc_attr(
+ stats_get_image_chart_src( 'admin-bar-hours-scale-2x', array( 'masterbar' => '' ) )
+ );
+ $alt = esc_attr__( 'Hourly views', 'jetpack' );
+
+ $menu_title .= "<img class='sidebar-unified__sparkline' src='$img_src' width='80' height='20' alt='$alt'>";
+ }
+
+ add_menu_page( __( 'Stats', 'jetpack' ), $menu_title, 'edit_posts', 'https://wordpress.com/stats/day/' . $this->domain, null, 'dashicons-chart-bar', 3 );
+ }
+
+ /**
+ * Adds Upgrades menu.
+ *
+ * @param string $plan The current WPCOM plan of the blog.
+ */
+ public function add_upgrades_menu( $plan = null ) {
+ $products = Jetpack_Plan::get();
+ if ( array_key_exists( 'product_name_short', $products ) ) {
+ $plan = $products['product_name_short'];
+ }
+ parent::add_upgrades_menu( $plan );
+
+ $last_upgrade_submenu_position = $this->get_submenu_item_count( 'paid-upgrades.php' );
+
+ add_submenu_page( 'paid-upgrades.php', __( 'Domains', 'jetpack' ), __( 'Domains', 'jetpack' ), 'manage_options', 'https://wordpress.com/domains/manage/' . $this->domain, null, $last_upgrade_submenu_position - 1 );
+
+ /**
+ * Whether to show the WordPress.com Emails submenu under the main Upgrades menu.
+ *
+ * @use add_filter( 'jetpack_show_wpcom_upgrades_email_menu', '__return_true' );
+ * @module masterbar
+ *
+ * @since 9.7.0
+ *
+ * @param bool $show_wpcom_upgrades_email_menu Load the WordPress.com Emails submenu item. Default to false.
+ */
+ if ( apply_filters( 'jetpack_show_wpcom_upgrades_email_menu', false ) ) {
+ add_submenu_page( 'paid-upgrades.php', __( 'Emails', 'jetpack' ), __( 'Emails', 'jetpack' ), 'manage_options', 'https://wordpress.com/email/' . $this->domain, null, $last_upgrade_submenu_position );
+ }
+ }
+
+ /**
+ * Adds Settings menu.
+ */
+ public function add_options_menu() {
+ parent::add_options_menu();
+
+ if ( Jetpack_Plan::supports( 'security-settings' ) ) {
+ add_submenu_page(
+ 'options-general.php',
+ esc_attr__( 'Security', 'jetpack' ),
+ __( 'Security', 'jetpack' ),
+ 'manage_options',
+ 'https://wordpress.com/settings/security/' . $this->domain,
+ null,
+ 2
+ );
+ }
+ add_submenu_page( 'options-general.php', esc_attr__( 'Hosting Configuration', 'jetpack' ), __( 'Hosting Configuration', 'jetpack' ), 'manage_options', 'https://wordpress.com/hosting-config/' . $this->domain, null, 11 );
+ add_submenu_page( 'options-general.php', esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/jetpack/' . $this->domain, null, 12 );
+
+ // Page Optimize is active by default on all Atomic sites and registers a Settings > Performance submenu which
+ // would conflict with our own Settings > Performance that links to Calypso, so we hide it it since the Calypso
+ // performance settings already have a link to Page Optimize settings page.
+ $this->hide_submenu_page( 'options-general.php', 'page-optimize' );
+ }
+
+ /**
+ * Override the global submenu_file for theme-install.php page so the WP Admin menu item gets highlighted correctly.
+ *
+ * @param string $submenu_file The current pages $submenu_file global variable value.
+ * @return string | null
+ */
+ public function override_the_theme_installer( $submenu_file ) {
+ global $pagenow;
+
+ if ( 'themes.php' === $submenu_file && 'theme-install.php' === $pagenow ) {
+ return null;
+ }
+ return $submenu_file;
+ }
+
+ /**
+ * Also remove the Gutenberg plugin menu.
+ */
+ public function add_gutenberg_menus() {
+ // Always remove the Gutenberg menu.
+ remove_menu_page( 'gutenberg' );
+ parent::add_gutenberg_menus();
+ }
+
+ /**
+ * Saves the sidebar state ( expanded / collapsed ) via an ajax request.
+ */
+ public function ajax_sidebar_state() {
+ $expanded = filter_var( $_REQUEST['expanded'], FILTER_VALIDATE_BOOLEAN ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ Client::wpcom_json_api_request_as_user(
+ '/me/preferences',
+ '2',
+ array(
+ 'method' => 'POST',
+ ),
+ (object) array( 'calypso_preferences' => (object) array( 'sidebarCollapsed' => ! $expanded ) ),
+ 'wpcom'
+ );
+
+ wp_die();
+ }
+
+ /**
+ * Handle ajax requests to dismiss a just-in-time-message
+ */
+ public function wp_ajax_jitm_dismiss() {
+ check_ajax_referer( 'jitm_dismiss' );
+ $jitm = \Automattic\Jetpack\JITMS\JITM::get_instance();
+ $jitm->dismiss( $_REQUEST['id'], $_REQUEST['feature_class'] );
+ wp_die();
+ }
+
+ /**
+ * Hide Calypso Search menu for Atomic sites.
+ *
+ * For simple sites, where search dashboard doesn't exist, we use the Calypso page / menu item.
+ * For Atomic sites, the admin-menu is originated from the sites and forwarded by WPCOM `public-api`.
+ * We have search dashboard for Atomic/JP sites, so we need to hide the duplicated menu item.
+ */
+ public function hide_search_menu_for_calypso() {
+ $this->hide_submenu_page( 'jetpack', 'https://wordpress.com/jetpack-search/' . $this->domain );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-base-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-base-admin-menu.php
new file mode 100644
index 00000000..5f3b1f51
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-base-admin-menu.php
@@ -0,0 +1,694 @@
+<?php
+/**
+ * Base Admin Menu file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Status;
+
+/**
+ * Class Base_Admin_Menu
+ */
+abstract class Base_Admin_Menu {
+ /**
+ * Holds class instances.
+ *
+ * @var array
+ */
+ protected static $instances;
+
+ /**
+ * Whether the current request is a REST API request.
+ *
+ * @var bool
+ */
+ protected $is_api_request = false;
+
+ /**
+ * Domain of the current site.
+ *
+ * @var string
+ */
+ protected $domain;
+
+ /**
+ * The CSS classes used to hide the submenu items in navigation.
+ *
+ * @var string
+ */
+ const HIDE_CSS_CLASS = 'hide-if-js';
+
+ /**
+ * Identifier denoting that the default WordPress.com view should be used for a certain screen.
+ *
+ * @var string
+ */
+ const DEFAULT_VIEW = 'default';
+
+ /**
+ * Identifier denoting that the classic WP Admin view should be used for a certain screen.
+ *
+ * @var string
+ */
+ const CLASSIC_VIEW = 'classic';
+
+ /**
+ * Identifier denoting no preferred view has been set for a certain screen.
+ *
+ * @var string
+ */
+ const UNKNOWN_VIEW = 'unknown';
+
+ /**
+ * Base_Admin_Menu constructor.
+ */
+ protected function __construct() {
+ $this->is_api_request = defined( 'REST_REQUEST' ) && REST_REQUEST || 0 === strpos( $_SERVER['REQUEST_URI'], '/?rest_route=%2Fwpcom%2Fv2%2Fadmin-menu' );
+ $this->domain = ( new Status() )->get_site_suffix();
+
+ add_action( 'admin_menu', array( $this, 'reregister_menu_items' ), 99998 );
+ add_action( 'admin_menu', array( $this, 'hide_parent_of_hidden_submenus' ), 99999 );
+
+ if ( ! $this->is_api_request ) {
+ add_filter( 'admin_menu', array( $this, 'override_svg_icons' ), 99999 );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 11 );
+ add_action( 'admin_head', array( $this, 'set_site_icon_inline_styles' ) );
+ add_filter( 'screen_settings', array( $this, 'register_dashboard_switcher' ), 99999 );
+ add_action( 'admin_menu', array( $this, 'handle_preferred_view' ), 99997 );
+ add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
+ }
+ }
+
+ /**
+ * Returns class instance.
+ *
+ * @return Admin_Menu
+ */
+ public static function get_instance() {
+ $class = static::class;
+
+ if ( empty( static::$instances[ $class ] ) ) {
+ static::$instances[ $class ] = new $class();
+ }
+
+ return static::$instances[ $class ];
+ }
+
+ /**
+ * Updates the menu data of the given menu slug.
+ *
+ * @param string $slug Slug of the menu to update.
+ * @param string $url New menu URL.
+ * @param string $title New menu title.
+ * @param string $cap New menu capability.
+ * @param string $icon New menu icon.
+ * @param int $position New menu position.
+ * @return bool Whether the menu has been updated.
+ */
+ public function update_menu( $slug, $url = null, $title = null, $cap = null, $icon = null, $position = null ) {
+ global $menu, $submenu;
+
+ $menu_item = null;
+ $menu_position = null;
+
+ foreach ( $menu as $i => $item ) {
+ if ( $slug === $item[2] ) {
+ $menu_item = $item;
+ $menu_position = $i;
+ break;
+ }
+ }
+
+ if ( ! $menu_item ) {
+ return false;
+ }
+
+ if ( $title ) {
+ $menu_item[0] = $title;
+ $menu_item[3] = esc_attr( $title );
+ }
+
+ if ( $cap ) {
+ $menu_item[1] = $cap;
+ }
+
+ // Change parent slug only if there are no submenus (the slug of the 1st submenu will be used if there are submenus).
+ if ( $url ) {
+ $this->hide_submenu_page( $slug, $slug );
+
+ if ( ! isset( $submenu[ $slug ] ) || ! $this->has_visible_items( $submenu[ $slug ] ) ) {
+ $menu_item[2] = $url;
+ }
+ }
+
+ if ( $icon ) {
+ $menu_item[4] = 'menu-top';
+ $menu_item[6] = $icon;
+ }
+
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ unset( $menu[ $menu_position ] );
+ if ( $position ) {
+ $menu_position = $position;
+ }
+ $this->set_menu_item( $menu_item, $menu_position );
+
+ // Only add submenu when there are other submenu items.
+ if ( $url && isset( $submenu[ $slug ] ) && $this->has_visible_items( $submenu[ $slug ] ) ) {
+ add_submenu_page( $slug, $menu_item[3], $menu_item[0], $menu_item[1], $url, null, 0 );
+ }
+
+ return true;
+ }
+
+ /**
+ * Updates the submenus of the given menu slug.
+ *
+ * It hides the menu by adding the `hide-if-js` css class and duplicates the submenu with the new slug.
+ *
+ * @param string $slug Menu slug.
+ * @param array $submenus_to_update Array of new submenu slugs.
+ */
+ public function update_submenus( $slug, $submenus_to_update ) {
+ global $submenu;
+
+ if ( ! isset( $submenu[ $slug ] ) ) {
+ return;
+ }
+
+ // This is needed for cases when the submenus to update have the same new slug.
+ $submenus_to_update = array_filter(
+ $submenus_to_update,
+ static function ( $item, $old_slug ) {
+ return $item !== $old_slug;
+ },
+ ARRAY_FILTER_USE_BOTH
+ );
+
+ /**
+ * Iterate over all submenu items and add the hide the submenus with CSS classes.
+ * This is done separately of the second foreach because the position of the submenu might change.
+ */
+ foreach ( $submenu[ $slug ] as $index => $item ) {
+ if ( ! array_key_exists( $item[2], $submenus_to_update ) ) {
+ continue;
+ }
+
+ $this->hide_submenu_element( $index, $slug, $item );
+ }
+
+ $submenu_items = array_values( $submenu[ $slug ] );
+
+ /**
+ * Iterate again over the submenu array. We need a copy of the array because add_submenu_page will add new elements
+ * to submenu array that might cause an infinite loop.
+ */
+ foreach ( $submenu_items as $i => $submenu_item ) {
+ if ( ! array_key_exists( $submenu_item[2], $submenus_to_update ) ) {
+ continue;
+ }
+
+ add_submenu_page(
+ $slug,
+ isset( $submenu_item[3] ) ? $submenu_item[3] : '',
+ isset( $submenu_item[0] ) ? $submenu_item[0] : '',
+ isset( $submenu_item[1] ) ? $submenu_item[1] : 'read',
+ $submenus_to_update[ $submenu_item[2] ],
+ '',
+ 0 === $i ? 0 : $i + 1
+ );
+ }
+ }
+
+ /**
+ * Adds a menu separator.
+ *
+ * @param int $position The position in the menu order this item should appear.
+ * @param string $cap Optional. The capability required for this menu to be displayed to the user.
+ * Default: 'read'.
+ */
+ public function add_admin_menu_separator( $position = null, $cap = 'read' ) {
+ $menu_item = array(
+ '', // Menu title (ignored).
+ $cap, // Required capability.
+ wp_unique_id( 'separator-custom-' ), // URL or file (ignored, but must be unique).
+ '', // Page title (ignored).
+ 'wp-menu-separator', // CSS class. Identifies this item as a separator.
+ );
+
+ $this->set_menu_item( $menu_item, $position );
+ }
+
+ /**
+ * Enqueues scripts and styles.
+ */
+ public function enqueue_scripts() {
+ $is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM;
+
+ if ( $this->is_rtl() ) {
+ if ( $is_wpcom ) {
+ $css_path = 'rtl/admin-menu-rtl.css';
+ } else {
+ $css_path = 'admin-menu-rtl.css';
+ }
+ } else {
+ $css_path = 'admin-menu.css';
+ }
+
+ wp_enqueue_style(
+ 'jetpack-admin-menu',
+ plugins_url( $css_path, __FILE__ ),
+ array(),
+ JETPACK__VERSION
+ );
+
+ wp_style_add_data( 'jetpack-admin-menu', 'rtl', $this->is_rtl() );
+ $this->configure_colors_for_rtl_stylesheets();
+
+ wp_enqueue_script(
+ 'jetpack-admin-menu',
+ plugins_url( 'admin-menu.js', __FILE__ ),
+ array(),
+ JETPACK__VERSION,
+ true
+ );
+
+ wp_localize_script(
+ 'jetpack-admin-menu',
+ 'jetpackAdminMenu',
+ array( 'jitmDismissNonce' => wp_create_nonce( 'jitm_dismiss' ) )
+ );
+ }
+
+ /**
+ * Mark the core colors stylesheets as RTL depending on the value from the environment.
+ * This fixes a core issue where the extra RTL data is not added to the colors stylesheet.
+ * https://core.trac.wordpress.org/ticket/53090
+ */
+ public function configure_colors_for_rtl_stylesheets() {
+ wp_style_add_data( 'colors', 'rtl', $this->is_rtl() );
+ }
+
+ /**
+ * Injects inline-styles for site icon for when third-party plugins remove enqueued stylesheets.
+ * Unable to use wp_add_inline_style as plugins remove styles from all non-standard handles
+ */
+ public function set_site_icon_inline_styles() {
+ echo '<style>
+ #adminmenu .toplevel_page_site-card .wp-menu-image,
+ #adminmenu .toplevel_page_site-card .wp-menu-image img {
+ height: 32px;
+ width: 32px;
+ }
+ </style>';
+ }
+
+ /**
+ * Hide the submenu page based on slug and return the item that was hidden.
+ *
+ * Instead of actually removing the submenu item, a safer approach is to hide it and filter it in the API response.
+ * In this manner we'll avoid breaking third-party plugins depending on items that no longer exist.
+ *
+ * A false|array value is returned to be consistent with remove_submenu_page() function
+ *
+ * @param string $menu_slug The parent menu slug.
+ * @param string $submenu_slug The submenu slug that should be hidden.
+ * @return false|array
+ */
+ public function hide_submenu_page( $menu_slug, $submenu_slug ) {
+ global $submenu;
+
+ if ( ! isset( $submenu[ $menu_slug ] ) ) {
+ return false;
+ }
+
+ foreach ( $submenu[ $menu_slug ] as $i => $item ) {
+ if ( $submenu_slug !== $item[2] ) {
+ continue;
+ }
+
+ $this->hide_submenu_element( $i, $menu_slug, $item );
+
+ return $item;
+ }
+
+ return false;
+ }
+
+ /**
+ * Apply the hide-if-js CSS class to a submenu item.
+ *
+ * @param int $index The position of a submenu item in the submenu array.
+ * @param string $parent_slug The parent slug.
+ * @param array $item The submenu item.
+ */
+ public function hide_submenu_element( $index, $parent_slug, $item ) {
+ global $submenu;
+
+ $css_classes = empty( $item[4] ) ? self::HIDE_CSS_CLASS : $item[4] . ' ' . self::HIDE_CSS_CLASS;
+
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu [ $parent_slug ][ $index ][4] = $css_classes;
+ }
+
+ /**
+ * Check if the menu has submenu items visible
+ *
+ * @param array $submenu_items The submenu items.
+ * @return bool
+ */
+ public function has_visible_items( $submenu_items ) {
+ $visible_items = array_filter(
+ $submenu_items,
+ array( $this, 'is_item_visible' )
+ );
+
+ return array() !== $visible_items;
+ }
+
+ /**
+ * Return the number of existing submenu items under the supplied parent slug.
+ *
+ * @param string $parent_slug The slug of the parent menu.
+ * @return int The number of submenu items under $parent_slug.
+ */
+ public function get_submenu_item_count( $parent_slug ) {
+ global $submenu;
+
+ if ( empty( $parent_slug ) || empty( $submenu[ $parent_slug ] ) || ! is_array( $submenu[ $parent_slug ] ) ) {
+ return 0;
+ }
+
+ return count( $submenu[ $parent_slug ] );
+ }
+
+ /**
+ * Adds the given menu item in the specified position.
+ *
+ * @param array $item The menu item to add.
+ * @param int $position The position in the menu order this item should appear.
+ */
+ public function set_menu_item( $item, $position = null ) {
+ global $menu;
+
+ // Handle position (avoids overwriting menu items already populated in the given position).
+ // Inspired by https://core.trac.wordpress.org/browser/trunk/src/wp-admin/menu.php?rev=49837#L160.
+ if ( null === $position ) {
+ $menu[] = $item; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ } elseif ( isset( $menu[ "$position" ] ) ) {
+ $position = $position + substr( base_convert( md5( $item[2] . $item[0] ), 16, 10 ), -5 ) * 0.00001;
+ $menu[ "$position" ] = $item; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ } else {
+ $menu[ $position ] = $item; // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ }
+ }
+
+ /**
+ * Determines whether the current locale is right-to-left (RTL).
+ */
+ public function is_rtl() {
+ return is_rtl();
+ }
+
+ /**
+ * Checks for any SVG icons in the menu, and overrides things so that
+ * we can display the icon in the correct colour for the theme.
+ */
+ public function override_svg_icons() {
+ global $menu;
+
+ $svg_items = array();
+ foreach ( $menu as $idx => $menu_item ) {
+ // Menu items that don't have icons, for example separators, have less than 7
+ // elements, partly because the 7th is the icon. So, if we have less than 7,
+ // let's skip it.
+ if ( count( $menu_item ) < 7 ) {
+ continue;
+ }
+
+ // If the hookname contain a URL than sanitize it by replacing invalid characters.
+ if ( false !== strpos( $menu_item[5], '://' ) ) {
+ $menu_item[5] = preg_replace( '![:/.]+!', '_', $menu_item[5] );
+ }
+
+ if ( 0 === strpos( $menu_item[6], 'data:image/svg+xml' ) && 'site-card' !== $menu_item[3] ) {
+ $svg_items[] = array(
+ 'icon' => $menu_item[6],
+ 'id' => $menu_item[5],
+ );
+ $menu_item[4] .= ' menu-svg-icon';
+ $menu_item[6] = 'none';
+ }
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $menu[ $idx ] = $menu_item;
+ }
+ if ( count( $svg_items ) > 0 ) {
+ $styles = '.menu-svg-icon .wp-menu-image { background-repeat: no-repeat; background-position: center center } ';
+ foreach ( $svg_items as $svg_item ) {
+ $styles .= sprintf( '#%s .wp-menu-image { background-image: url( "%s" ) }', $svg_item['id'], $svg_item['icon'] );
+ }
+ $styles .= '@supports ( mask-image: none ) or ( -webkit-mask-image: none ) { ';
+ $styles .= '.menu-svg-icon .wp-menu-image { background-image: none; } ';
+ $styles .= '.menu-svg-icon .wp-menu-image::before { background-color: currentColor; ';
+ $styles .= 'mask-size: contain; mask-position: center center; mask-repeat: no-repeat; ';
+ $styles .= '-webkit-mask-size: contain; -webkit-mask-position: center center; -webkit-mask-repeat: no-repeat; content:"" } ';
+ foreach ( $svg_items as $svg_item ) {
+ $styles .= sprintf(
+ '#%s .wp-menu-image { background-image: none; } #%s .wp-menu-image::before{ mask-image: url( "%s" ); -webkit-mask-image: url( "%s" ) }',
+ $svg_item['id'],
+ $svg_item['id'],
+ $svg_item['icon'],
+ $svg_item['icon']
+ );
+ }
+ $styles .= '}';
+
+ wp_register_style( 'svg-menu-overrides', false, array(), '20210331' );
+ wp_enqueue_style( 'svg-menu-overrides' );
+ wp_add_inline_style( 'svg-menu-overrides', $styles );
+ }
+ }
+
+ /**
+ * Hide menus that are unauthorized and don't have visible submenus and cases when the menu has the same slug
+ * as the first submenu item.
+ *
+ * This must be done at the end of menu and submenu manipulation in order to avoid performing this check each time
+ * the submenus are altered.
+ */
+ public function hide_parent_of_hidden_submenus() {
+ global $menu, $submenu;
+
+ $this->sort_hidden_submenus();
+
+ foreach ( $menu as $menu_index => $menu_item ) {
+ $has_submenus = isset( $submenu[ $menu_item[2] ] );
+
+ // Skip if the menu doesn't have submenus.
+ if ( ! $has_submenus ) {
+ continue;
+ }
+
+ // If the first submenu item is hidden then we should also hide the parent.
+ // Since the submenus are ordered by self::HIDE_CSS_CLASS (hidden submenus should be at the end of the array),
+ // we can say that if the first submenu is hidden then we should also hide the menu.
+ $first_submenu_item = array_values( $submenu[ $menu_item[2] ] )[0];
+ $is_first_submenu_visible = $this->is_item_visible( $first_submenu_item );
+
+ // if the user does not have access to the menu and the first submenu is hidden, then hide the menu.
+ if ( ! current_user_can( $menu_item[1] ) && ! $is_first_submenu_visible ) {
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $menu[ $menu_index ][4] = self::HIDE_CSS_CLASS;
+ }
+
+ // if the menu has the same slug as the first submenu then hide the submenu.
+ if ( $menu_item[2] === $first_submenu_item[2] && ! $is_first_submenu_visible ) {
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $menu[ $menu_index ][4] = self::HIDE_CSS_CLASS;
+ }
+ }
+ }
+
+ /**
+ * Sort the hidden submenus by moving them at the end of the array in order to avoid WP using them as default URLs.
+ *
+ * This operation has to be done at the end of submenu manipulation in order to guarantee that the hidden submenus
+ * are at the end of the array.
+ */
+ public function sort_hidden_submenus() {
+ global $submenu;
+
+ foreach ( $submenu as $menu_slug => $submenu_items ) {
+ foreach ( $submenu_items as $submenu_index => $submenu_item ) {
+ if ( $this->is_item_visible( $submenu_item ) ) {
+ continue;
+ }
+
+ unset( $submenu[ $menu_slug ][ $submenu_index ] );
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu[ $menu_slug ][] = $submenu_item;
+ }
+ }
+ }
+
+ /**
+ * Check if the given item is visible or not in the admin menu.
+ *
+ * @param array $item A menu or submenu array.
+ */
+ public function is_item_visible( $item ) {
+ return ! isset( $item[4] ) || false === strpos( $item[4], self::HIDE_CSS_CLASS );
+ }
+
+ /**
+ * Sets the given view as preferred for the givens screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param string $view Preferred view.
+ */
+ public function set_preferred_view( $screen, $view ) {
+ $preferred_views = $this->get_preferred_views();
+ $preferred_views[ $screen ] = $view;
+ update_user_option( get_current_user_id(), 'jetpack_admin_menu_preferred_views', $preferred_views );
+ }
+
+ /**
+ * Get the preferred views for all screens.
+ *
+ * @return array
+ */
+ public function get_preferred_views() {
+ $preferred_views = get_user_option( 'jetpack_admin_menu_preferred_views' );
+
+ if ( ! $preferred_views ) {
+ return array();
+ }
+
+ return $preferred_views;
+ }
+
+ /**
+ * Get the preferred view for the given screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param bool $fallback_global_preference (Optional) Whether the global preference for all screens should be used
+ * as fallback if there is no specific preference for the given screen.
+ * Default: true.
+ * @return string
+ */
+ public function get_preferred_view( $screen, $fallback_global_preference = true ) {
+ $preferred_views = $this->get_preferred_views();
+
+ if ( ! isset( $preferred_views[ $screen ] ) ) {
+ if ( ! $fallback_global_preference ) {
+ return self::UNKNOWN_VIEW;
+ }
+ return $this->should_link_to_wp_admin() ? self::CLASSIC_VIEW : self::DEFAULT_VIEW;
+ }
+
+ return $preferred_views[ $screen ];
+ }
+
+ /**
+ * Gets the identifier of the current screen.
+ *
+ * @return string
+ */
+ public function get_current_screen() {
+ // phpcs:disable WordPress.Security.NonceVerification
+ global $pagenow;
+ $screen = isset( $_REQUEST['screen'] ) ? $_REQUEST['screen'] : $pagenow;
+ if ( isset( $_GET['post_type'] ) ) {
+ $screen = add_query_arg( 'post_type', $_GET['post_type'], $screen );
+ }
+ if ( isset( $_GET['taxonomy'] ) ) {
+ $screen = add_query_arg( 'taxonomy', $_GET['taxonomy'], $screen );
+ }
+ if ( isset( $_GET['page'] ) ) {
+ $screen = add_query_arg( 'page', $_GET['page'], $screen );
+ }
+ return sanitize_text_field( wp_unslash( $screen ) );
+ // phpcs:enable WordPress.Security.NonceVerification
+ }
+
+ /**
+ * Stores the preferred view for the current screen.
+ */
+ public function handle_preferred_view() {
+ // phpcs:disable WordPress.Security.NonceVerification
+ if ( ! isset( $_GET['preferred-view'] ) ) {
+ return;
+ }
+
+ // phpcs:disable WordPress.Security.NonceVerification
+ $preferred_view = $_GET['preferred-view'];
+
+ if ( ! in_array( $preferred_view, array( self::DEFAULT_VIEW, self::CLASSIC_VIEW ), true ) ) {
+ return;
+ }
+
+ $current_screen = $this->get_current_screen();
+
+ $this->set_preferred_view( $current_screen, $preferred_view );
+
+ /**
+ * Dashboard Quick switcher action triggered when a user switches to a different view.
+ *
+ * @module masterbar
+ *
+ * @since 9.9.1
+ *
+ * @param string The current screen of the user.
+ * @param string The preferred view the user selected.
+ */
+ \do_action( 'jetpack_dashboard_switcher_changed_view', $current_screen, $preferred_view );
+
+ if ( self::DEFAULT_VIEW === $preferred_view ) {
+ // Redirect to default view if that's the newly preferred view.
+ $menu_mappings = require __DIR__ . '/menu-mappings.php';
+ if ( isset( $menu_mappings[ $current_screen ] ) ) {
+ // Using `wp_redirect` intentionally because we're redirecting to Calypso.
+ wp_redirect( $menu_mappings[ $current_screen ] . $this->domain ); // phpcs:ignore WordPress.Security.SafeRedirect
+ exit;
+ }
+ } elseif ( self::CLASSIC_VIEW === $preferred_view ) {
+ // Removes the `preferred-view` param from the URL to avoid issues with
+ // screens that don't expect this param to be present in the URL.
+ wp_safe_redirect( remove_query_arg( 'preferred-view' ) );
+ exit;
+ }
+ // phpcs:enable WordPress.Security.NonceVerification
+ }
+
+ /**
+ * Adds the necessary CSS class to the admin body class.
+ *
+ * @param string $admin_body_classes Contains all the admin body classes.
+ *
+ * @return string
+ */
+ public function admin_body_class( $admin_body_classes ) {
+ return " is-nav-unification $admin_body_classes ";
+ }
+
+ /**
+ * Whether to use wp-admin pages rather than Calypso.
+ *
+ * Options:
+ * false - Calypso (Default).
+ * true - wp-admin.
+ *
+ * @return bool
+ */
+ public function should_link_to_wp_admin() {
+ return get_user_option( 'jetpack_admin_menu_link_destination' );
+ }
+
+ /**
+ * Create the desired menu output.
+ */
+ abstract public function reregister_menu_items();
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-dashboard-switcher-tracking.php b/plugins/jetpack/modules/masterbar/admin-menu/class-dashboard-switcher-tracking.php
new file mode 100644
index 00000000..b3fe7cd8
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-dashboard-switcher-tracking.php
@@ -0,0 +1,175 @@
+<?php
+/**
+ * Quick switcher tracking file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Status\Host;
+use Automattic\Jetpack\Terms_Of_Service;
+use Automattic\Jetpack\Tracking;
+use Jetpack_Plan;
+
+/**
+ * Class Dashboard_Switcher_Tracking
+ */
+class Dashboard_Switcher_Tracking {
+
+ /**
+ * Jetpack Tracking library will prefix the event name with "jetpack_*" automatically.
+ */
+ const JETPACK_EVENT_NAME = 'dashboard_quick_switch_link_clicked';
+
+ const WPCOM_EVENT_NAME = 'wpcom_dashboard_quick_switch_link_clicked';
+ /**
+ * Jetpack tracking object.
+ *
+ * @var Tracking
+ */
+ private $tracking;
+
+ /**
+ * Current site plan.
+ *
+ * @var string
+ */
+ private $plan;
+
+ /**
+ * The wpcom_tracks wrapper function.
+ *
+ * @var callable
+ */
+ private $wpcom_tracking;
+
+ /**
+ * Dashboard_Switcher_Tracking constructor.
+ *
+ * @param Tracking $tracking Jetpack tracking object.
+ * @param callable $wpcom_tracking A wrapper over wpcom event record.
+ * @param string $plan The current site plan.
+ */
+ public function __construct( Tracking $tracking, callable $wpcom_tracking, $plan ) {
+ $this->tracking = $tracking;
+ $this->plan = $plan;
+ $this->wpcom_tracking = $wpcom_tracking;
+ }
+
+ /**
+ * Create an event for the Quick switcher when the user changes it's preferred view.
+ *
+ * @param string $screen The screen page.
+ * @param string $view The new preferred view.
+ */
+ public function record_switch_event( $screen, $view ) {
+ $event_props = array(
+ 'current_page' => $screen,
+ 'destination' => $view,
+ 'plan' => $this->plan,
+ );
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $event_props['blog_id'] = get_current_blog_id();
+
+ /**
+ * Callable injected in the constructor with the static::wpcom_tracks_record_event() static method.
+ *
+ * @see wpcom_tracks_record_event A static method from this class that executes the actual WPCOM event record.
+ */
+ $wpcom_tracking = $this->wpcom_tracking;
+ $wpcom_tracking( $event_props );
+ } else {
+ $this->record_jetpack_event( $event_props );
+ }
+ }
+
+ /**
+ * Get the current site plan or 'N/A' when we cannot determine site's plan.
+ *
+ * @todo: This method can be reused as a wrapper over WPCOM and Atomic as way to get site's current plan (display name).
+ *
+ * @return string
+ */
+ public static function get_plan() {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ if ( class_exists( '\WPCOM_Store_API' ) ) {
+ // @todo: Maybe introduce a wrapper for this since we are duplicating it from WPCOM_Admin_Menu:253
+ $products = \WPCOM_Store_API::get_current_plan( \get_current_blog_id() );
+ if ( array_key_exists( 'product_name_short', $products ) ) {
+ return $products['product_name_short'];
+ }
+ }
+
+ return 'N/A'; // maybe we should return free or null? At the moment it's safe to return 'N/A' since we use it only for passing it to the event.
+ }
+
+ // @todo: Maybe introduce a helper for this since we are duplicating it from Atomic_Admin_Menu:240
+ $products = Jetpack_Plan::get();
+ if ( array_key_exists( 'product_name_short', $products ) ) {
+ return $products['product_name_short'];
+ }
+
+ return 'N/A'; // maybe we should return free or null? At the moment we use it for passing it to the event.
+ }
+
+ /**
+ * Record the event with Jetpack implementation.
+ *
+ * For Atomic sites we mark the Jetpack ToS option temporary as read.
+ *
+ * @todo Remove the jetpack_options_tos_agreed filter for Atomic sites after the Tracking is properly working for AT sites.
+ *
+ * @param array $event_properties The event properties.
+ */
+ private function record_jetpack_event( $event_properties ) {
+ $woa = ( new Host() )->is_woa_site();
+ if ( $woa ) {
+ add_filter( 'jetpack_options', array( __CLASS__, 'mark_jetpack_tos_as_read' ), 10, 2 );
+ }
+
+ $this->tracking->record_user_event( self::JETPACK_EVENT_NAME, $event_properties );
+
+ if ( $woa ) {
+ \remove_filter( 'jetpack_options', array( __CLASS__, 'mark_jetpack_tos_as_read' ) );
+ }
+ }
+
+ /**
+ * Trigger the WPCOM tracks_record_event.
+ *
+ * @param array $event_props Event props.
+ */
+ public static function wpcom_tracks_record_event( $event_props ) {
+ jetpack_require_lib( 'tracks/client' );
+ \tracks_record_event( \wp_get_current_user(), self::WPCOM_EVENT_NAME, $event_props );
+ }
+
+ /**
+ * Get the tracking product name for the Tracking library.
+ *
+ * The tracking product name is used by the Tracking as a prefix for the event name.
+ *
+ * @return string
+ */
+ public static function get_jetpack_tracking_product() {
+ return ( new Host() )->is_woa_site() ? 'atomic' : 'jetpack';
+ }
+
+ /**
+ * Mark the Jetpack ToS as read for Atomic Sites.
+ *
+ * @param mixed $option_value The value of the Jetpack option.
+ * @param string $option_name The name of the Jetpack option.
+ *
+ * @return bool
+ */
+ public static function mark_jetpack_tos_as_read( $option_value, $option_name ) {
+ if ( Terms_Of_Service::OPTION_NAME === $option_name ) {
+ return true;
+ }
+
+ return $option_value;
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-domain-only-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-domain-only-admin-menu.php
new file mode 100644
index 00000000..7f9507a2
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-domain-only-admin-menu.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * Domain-only sites Admin Menu file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+require_once __DIR__ . '/class-base-admin-menu.php';
+
+/**
+ * Class Domain_Only_Admin_Menu.
+ */
+class Domain_Only_Admin_Menu extends Base_Admin_Menu {
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ global $menu, $submenu;
+
+ $menu = array(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu = array(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+
+ add_menu_page( esc_attr__( 'Settings', 'jetpack' ), __( 'Settings', 'jetpack' ), 'manage_options', 'https://wordpress.com/domains/manage/' . $this->domain, null, 'dashicons-admin-settings' );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-jetpack-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-jetpack-admin-menu.php
new file mode 100644
index 00000000..c61628b5
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-jetpack-admin-menu.php
@@ -0,0 +1,252 @@
+<?php
+/**
+ * Jetpack Admin Menu file.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+require_once __DIR__ . '/class-admin-menu.php';
+
+/**
+ * Class Jetpack_Admin_Menu.
+ */
+class Jetpack_Admin_Menu extends Admin_Menu {
+ /**
+ * Determines whether the current locale is right-to-left (RTL).
+ *
+ * Performs the check against the current locale set on the WordPress.com's account settings.
+ * See `Masterbar::__construct` in `modules/masterbar/masterbar/class-masterbar.php`.
+ */
+ public function is_rtl() {
+ return get_user_option( 'jetpack_wpcom_is_rtl' );
+ }
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ global $menu, $submenu;
+
+ // Reset menus so there are no third-party plugin items.
+ $menu = array(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $submenu = array(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+
+ parent::reregister_menu_items();
+
+ $this->add_feedback_menu();
+ $this->add_wp_admin_menu();
+
+ ksort( $GLOBALS['menu'] );
+ }
+
+ /**
+ * Get the preferred view for the given screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param bool $fallback_global_preference (Optional) Whether the global preference for all screens should be used
+ * as fallback if there is no specific preference for the given screen.
+ * Default: true.
+ * @return string
+ */
+ public function get_preferred_view( $screen, $fallback_global_preference = true ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ // Force default views (Calypso) on Jetpack sites since Nav Unification is disabled on WP Admin.
+ return self::DEFAULT_VIEW;
+ }
+
+ /**
+ * Adds Posts menu.
+ */
+ public function add_posts_menu() {
+ $post = get_post_type_object( 'post' );
+ add_menu_page( esc_attr( $post->labels->menu_name ), $post->labels->menu_name, $post->cap->edit_posts, 'https://wordpress.com/posts/' . $this->domain, null, 'dashicons-admin-post' );
+ }
+
+ /**
+ * Adds Media menu.
+ */
+ public function add_media_menu() {
+ add_menu_page( __( 'Media', 'jetpack' ), __( 'Media', 'jetpack' ), 'upload_files', 'https://wordpress.com/media/' . $this->domain, null, 'dashicons-admin-media' );
+ }
+
+ /**
+ * Adds Page menu.
+ */
+ public function add_page_menu() {
+ $page = get_post_type_object( 'page' );
+ add_menu_page( esc_attr( $page->labels->menu_name ), $page->labels->menu_name, $page->cap->edit_posts, 'https://wordpress.com/pages/' . $this->domain, null, 'dashicons-admin-page' );
+ }
+
+ /**
+ * Adds a custom post type menu.
+ *
+ * @param string $post_type Custom post type.
+ */
+ public function add_custom_post_type_menu( $post_type ) {
+ $ptype_obj = get_post_type_object( $post_type );
+ if ( empty( $ptype_obj ) ) {
+ return;
+ }
+
+ $menu_slug = 'https://wordpress.com/types/' . $post_type . '/' . $this->domain;
+
+ // Menu icon.
+ $menu_icon = 'dashicons-admin-post';
+ if ( is_string( $ptype_obj->menu_icon ) ) {
+ // Special handling for data:image/svg+xml and Dashicons.
+ if ( 0 === strpos( $ptype_obj->menu_icon, 'data:image/svg+xml;base64,' ) || 0 === strpos( $ptype_obj->menu_icon, 'dashicons-' ) ) {
+ $menu_icon = $ptype_obj->menu_icon;
+ } else {
+ $menu_icon = esc_url( $ptype_obj->menu_icon );
+ }
+ }
+
+ add_menu_page( esc_attr( $ptype_obj->labels->menu_name ), $ptype_obj->labels->menu_name, $ptype_obj->cap->edit_posts, $menu_slug, null, $menu_icon );
+ }
+
+ /**
+ * Adds Comments menu.
+ */
+ public function add_comments_menu() {
+ add_menu_page( esc_attr__( 'Comments', 'jetpack' ), __( 'Comments', 'jetpack' ), 'edit_posts', 'https://wordpress.com/comments/all/' . $this->domain, null, 'dashicons-admin-comments' );
+ }
+
+ /**
+ * Adds Feedback menu.
+ */
+ public function add_feedback_menu() {
+ $post_type = 'feedback';
+
+ $ptype_obj = get_post_type_object( $post_type );
+ if ( empty( $ptype_obj ) ) {
+ return;
+ }
+
+ $slug = 'edit.php?post_type=' . $post_type;
+ $name = __( 'Feedback', 'jetpack' );
+ $capability = $ptype_obj->cap->edit_posts;
+ $icon = $ptype_obj->menu_icon;
+ $position = 45; // Before Jetpack.
+
+ add_menu_page( esc_attr( $name ), $name, $capability, $slug, null, $icon, $position );
+ }
+
+ /**
+ * Adds Jetpack menu.
+ */
+ public function add_jetpack_menu() {
+ parent::add_jetpack_menu();
+
+ // Place "Scan" submenu after Backup.
+ $position = 0;
+ global $submenu;
+ foreach ( $submenu['jetpack'] as $submenu_item ) {
+ $position ++;
+ if ( __( 'Backup', 'jetpack' ) === $submenu_item[3] ) {
+ break;
+ }
+ }
+ add_submenu_page( 'jetpack', esc_attr__( 'Scan', 'jetpack' ), __( 'Scan', 'jetpack' ), 'manage_options', 'https://wordpress.com/scan/' . $this->domain, null, $position );
+ }
+
+ /**
+ * Adds Appearance menu.
+ *
+ * @return string The Customizer URL.
+ */
+ public function add_appearance_menu() {
+ $themes_url = 'https://wordpress.com/themes/' . $this->domain;
+ // Customize on Jetpack sites is always done on WP Admin (unsupported by Calypso).
+ $customize_url = 'customize.php';
+
+ add_menu_page( esc_attr__( 'Appearance', 'jetpack' ), __( 'Appearance', 'jetpack' ), 'switch_themes', $themes_url, null, 'dashicons-admin-appearance', 60 );
+ add_submenu_page( $themes_url, esc_attr__( 'Themes', 'jetpack' ), __( 'Themes', 'jetpack' ), 'switch_themes', 'https://wordpress.com/themes/' . $this->domain );
+ add_submenu_page( $themes_url, esc_attr__( 'Customize', 'jetpack' ), __( 'Customize', 'jetpack' ), 'customize', $customize_url );
+
+ return $customize_url;
+ }
+
+ /**
+ * Adds Plugins menu.
+ */
+ public function add_plugins_menu() {
+ add_menu_page( esc_attr__( 'Plugins', 'jetpack' ), __( 'Plugins', 'jetpack' ), 'activate_plugins', 'https://wordpress.com/plugins/' . $this->domain, null, 'dashicons-admin-plugins', 65 );
+ }
+
+ /**
+ * Adds Users menu.
+ */
+ public function add_users_menu() {
+ if ( current_user_can( 'list_users' ) ) {
+ add_menu_page( esc_attr__( 'Users', 'jetpack' ), __( 'Users', 'jetpack' ), 'list_users', 'https://wordpress.com/people/team/' . $this->domain, null, 'dashicons-admin-users', 70 );
+ } else {
+ add_menu_page( esc_attr__( 'My Profile', 'jetpack' ), __( 'Profile', 'jetpack' ), 'read', 'https://wordpress.com/me', null, 'dashicons-admin-users', 70 );
+ }
+ }
+
+ /**
+ * Adds Tools menu.
+ */
+ public function add_tools_menu() {
+ add_menu_page( esc_attr__( 'Tools', 'jetpack' ), __( 'Tools', 'jetpack' ), 'publish_posts', 'tools.php', null, 'dashicons-admin-tools', 75 );
+
+ add_submenu_page( 'tools.php', esc_attr__( 'Marketing', 'jetpack' ), __( 'Marketing', 'jetpack' ), 'publish_posts', 'https://wordpress.com/marketing/tools/' . $this->domain );
+ add_submenu_page( 'tools.php', esc_attr__( 'Earn', 'jetpack' ), __( 'Earn', 'jetpack' ), 'manage_options', 'https://wordpress.com/earn/' . $this->domain );
+
+ // Import/Export on Jetpack sites is always handled on WP Admin.
+ add_submenu_page( 'tools.php', esc_attr__( 'Import', 'jetpack' ), __( 'Import', 'jetpack' ), 'import', 'import.php' );
+ add_submenu_page( 'tools.php', esc_attr__( 'Export', 'jetpack' ), __( 'Export', 'jetpack' ), 'export', 'export.php' );
+
+ // Remove the submenu auto-created by Core.
+ $this->hide_submenu_page( 'tools.php', 'tools.php' );
+ }
+
+ /**
+ * Adds Settings menu.
+ */
+ public function add_options_menu() {
+ $slug = 'https://wordpress.com/settings/general/' . $this->domain;
+ add_menu_page( esc_attr__( 'Settings', 'jetpack' ), __( 'Settings', 'jetpack' ), 'manage_options', $slug, null, 'dashicons-admin-settings', 80 );
+ add_submenu_page( $slug, esc_attr__( 'General', 'jetpack' ), __( 'General', 'jetpack' ), 'manage_options', $slug );
+ add_submenu_page( $slug, esc_attr__( 'Security', 'jetpack' ), __( 'Security', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/security/' . $this->domain );
+ add_submenu_page( $slug, esc_attr__( 'Performance', 'jetpack' ), __( 'Performance', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/performance/' . $this->domain );
+ add_submenu_page( $slug, esc_attr__( 'Writing', 'jetpack' ), __( 'Writing', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/writing/' . $this->domain );
+ add_submenu_page( $slug, esc_attr__( 'Discussion', 'jetpack' ), __( 'Discussion', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/discussion/' . $this->domain );
+
+ $plan_supports_scan = \Jetpack_Plan::supports( 'scan' );
+ $products = \Jetpack_Plan::get_products();
+ $has_scan_product = false;
+
+ if ( is_array( $products ) ) {
+ foreach ( $products as $product ) {
+ if ( strpos( $product['product_slug'], 'jetpack_scan' ) === 0 ) {
+ $has_scan_product = true;
+ break;
+ }
+ }
+ }
+
+ $has_scan = $plan_supports_scan || $has_scan_product;
+ $rewind_state = get_transient( 'jetpack_rewind_state' );
+ $has_backup = $rewind_state && in_array( $rewind_state->state, array( 'awaiting_credentials', 'provisioning', 'active' ), true );
+ if ( $has_scan || $has_backup ) {
+ add_submenu_page( $slug, esc_attr__( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'manage_options', 'https://wordpress.com/settings/jetpack/' . $this->domain );
+ }
+ }
+
+ /**
+ * Adds WP Admin menu.
+ */
+ public function add_wp_admin_menu() {
+ global $menu;
+
+ // Attempt to get last position.
+ ksort( $menu );
+ end( $menu );
+ $position = key( $menu );
+
+ $this->add_admin_menu_separator( ++ $position );
+ add_menu_page( __( 'WP Admin', 'jetpack' ), __( 'WP Admin', 'jetpack' ), 'read', 'index.php', null, 'dashicons-wordpress-alt', $position );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-p2-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-p2-admin-menu.php
new file mode 100644
index 00000000..6b45422d
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-p2-admin-menu.php
@@ -0,0 +1,199 @@
+<?php
+/**
+ * P2 Admin Menu file.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+require_once __DIR__ . '/class-wpcom-admin-menu.php';
+
+/**
+ * Class P2_Admin_Menu.
+ */
+class P2_Admin_Menu extends WPcom_Admin_Menu {
+
+ /**
+ * Slug for the "Appearance" menu item.
+ *
+ * @var string
+ */
+ private $appearance_slug = 'themes.php';
+
+ /**
+ * Slug for the "Jetpack" menu item.
+ *
+ * @var string
+ */
+ private $jetpack_slug = 'jetpack';
+
+ /**
+ * Slug for the "Upgrades" menu item.
+ *
+ * @var string
+ */
+ private $upgrades_slug = 'paid-upgrades.php';
+
+ /**
+ * Slug for the "Plugins" menu item.
+ *
+ * @var string
+ */
+ private $plugins_slug = 'plugins.php';
+
+ /**
+ * Slug for the "Tools" menu item.
+ *
+ * @var string
+ */
+ private $tools_slug = 'tools.php';
+
+ /**
+ * Whether or not the P2 is a hub.
+ *
+ * @var bool
+ */
+ private $is_hub = false;
+
+ /**
+ * Whether or not the P2 has a paid plan.
+ *
+ * @var bool
+ */
+ private $is_paid = false;
+
+ /**
+ * P2_Admin_Menu constructor.
+ */
+ protected function __construct() {
+ parent::__construct();
+
+ if (
+ defined( 'IS_WPCOM' ) && IS_WPCOM &&
+ function_exists( 'require_lib' )
+ ) {
+ require_lib( 'wpforteams' );
+
+ $current_blog_id = get_current_blog_id();
+ $this->is_hub = \WPForTeams\Workspace\is_workspace_hub( $current_blog_id );
+ $this->is_paid = \WPForTeams\has_p2_plus_plan( \WPForTeams\Workspace\get_hub_blog_id_from_blog_id( $current_blog_id ) );
+ }
+ // Appearance -> AMP. This needs to be called here in the constructor.
+ // Running it from reregister_menu_items is not early enough.
+ remove_action( 'admin_menu', 'amp_add_customizer_link' );
+ }
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ parent::reregister_menu_items();
+
+ if ( ! $this->is_hub ) {
+ $this->remove_menus_for_p2_space();
+ } else {
+ $this->remove_menus_for_hub();
+ }
+
+ $this->remove_menus_for_all_p2s();
+ }
+
+ /**
+ * Remove menu items that are not applicable for P2 workspace sites.
+ */
+ private function remove_menus_for_p2_space() {
+ // Non-hub P2s can't have plans at all.
+ remove_menu_page( $this->upgrades_slug );
+ // Jetpack -> Backup.
+ remove_submenu_page( $this->jetpack_slug, 'https://wordpress.com/backup/' . $this->domain );
+ // Appearance -> Themes.
+ remove_submenu_page( $this->appearance_slug, 'https://wordpress.com/themes/' . $this->domain );
+ // Appearance -> Additional CSS.
+ $customize_custom_css_url = add_query_arg(
+ array( 'autofocus' => array( 'section' => 'css_nudge' ) ),
+ 'https://wordpress.com/customize/' . $this->domain
+ );
+ remove_submenu_page( $this->appearance_slug, $customize_custom_css_url );
+ }
+
+ /**
+ * Remove menu items that are not applicable for P2 hubs.
+ */
+ private function remove_menus_for_hub() {
+ // Hubs can have plans, but not domain and email products.
+ remove_submenu_page( $this->upgrades_slug, 'https://wordpress.com/domains/manage/' . $this->domain );
+ remove_submenu_page( $this->upgrades_slug, 'https://wordpress.com/email/' . $this->domain );
+ // Stats.
+ remove_menu_page( 'https://wordpress.com/stats/day/' . $this->domain );
+ // Hide all Jetpack for hubs.
+ remove_menu_page( $this->jetpack_slug );
+ // Hide posts.
+ remove_menu_page( 'edit.php' );
+ // Hide pages.
+ remove_menu_page( 'edit.php?post_type=page' );
+ // Hide media.
+ remove_menu_page( 'https://wordpress.com/media/' . $this->domain );
+ // Hide comments.
+ remove_menu_page( 'https://wordpress.com/comments/all/' . $this->domain );
+ // Hide appearance.
+ remove_menu_page( $this->appearance_slug );
+ // Tools.
+ remove_menu_page( $this->tools_slug );
+ // Hide settings.
+ remove_submenu_page( 'options-general.php', 'options-reading.php' );
+ remove_submenu_page( 'options-general.php', 'options-writing.php' );
+ remove_submenu_page( 'options-general.php', 'options-discussion.php' );
+ }
+
+ /**
+ * Remove menu items that are not applicable for all P2s.
+ */
+ private function remove_menus_for_all_p2s() {
+ // For free sites remove Jetpack menu item.
+ if ( ! $this->is_paid ) {
+ remove_menu_page( $this->jetpack_slug );
+ }
+
+ // The following menu items are hidden for both hubs and P2 sites.
+ remove_menu_page( 'link-manager.php' );
+ remove_menu_page( 'feedback' );
+ remove_menu_page( $this->plugins_slug );
+ remove_menu_page( 'https://wordpress.com/plugins/' . $this->domain );
+ remove_menu_page( 'https://wordpress.com/inbox/' . $this->domain );
+
+ remove_submenu_page( $this->tools_slug, 'https://wordpress.com/marketing/tools/' . $this->domain );
+ remove_submenu_page( $this->tools_slug, 'https://wordpress.com/earn/' . $this->domain );
+
+ remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'sharing' );
+ remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'polls&action=options' );
+ remove_submenu_page( 'https://wordpress.com/settings/general/' . $this->domain, 'ratings&action=options' );
+ remove_submenu_page(
+ 'options-general.php',
+ 'https://wordpress.com/hosting-config/' . $this->domain
+ );
+ remove_submenu_page(
+ 'https://wordpress.com/settings/general/' . $this->domain,
+ 'https://wordpress.com/marketing/sharing-buttons/' . $this->domain
+ );
+
+ /** This action is documented in `wp-content/plugins/p2-editor/classes/p2-editor-admin.php` */
+ if ( apply_filters( 'p2tenberg_admin_patterns', apply_filters( 'p2editor_admin_patterns', true ) ) !== true ) {
+ remove_menu_page( 'edit.php?post_type=p2_pattern' );
+ }
+ remove_submenu_page(
+ 'edit.php?post_type=p2_pattern',
+ 'edit-tags.php?taxonomy=post_tag&amp;post_type=p2_pattern'
+ );
+
+ // Hide performance settings.
+ remove_submenu_page( 'options-general.php', 'https://wordpress.com/settings/performance/' . $this->domain );
+ }
+
+ /**
+ * Override, don't add the woocommerce installation menu on any p2s.
+ *
+ * @param array|null $current_plan The site's plan.
+ */
+ public function add_woocommerce_installation_menu( $current_plan = null ) {} // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/class-wpcom-admin-menu.php b/plugins/jetpack/modules/masterbar/admin-menu/class-wpcom-admin-menu.php
new file mode 100644
index 00000000..12535a4e
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/class-wpcom-admin-menu.php
@@ -0,0 +1,461 @@
+<?php
+/**
+ * WP.com Admin Menu file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use JITM;
+
+require_once __DIR__ . '/class-admin-menu.php';
+
+/**
+ * Class WPcom_Admin_Menu.
+ */
+class WPcom_Admin_Menu extends Admin_Menu {
+ /**
+ * Holds the current plan, set by get_current_plan().
+ *
+ * @var array
+ */
+ private $current_plan = array();
+
+ /**
+ * WPcom_Admin_Menu constructor.
+ */
+ protected function __construct() {
+ parent::__construct();
+
+ add_action( 'wp_ajax_sidebar_state', array( $this, 'ajax_sidebar_state' ) );
+ add_action( 'wp_ajax_jitm_dismiss', array( $this, 'wp_ajax_jitm_dismiss' ) );
+ add_action( 'admin_init', array( $this, 'sync_sidebar_collapsed_state' ) );
+ add_action( 'admin_menu', array( $this, 'remove_submenus' ), 140 ); // After hookpress hook at 130.
+ }
+
+ /**
+ * Create the desired menu output.
+ */
+ public function reregister_menu_items() {
+ parent::reregister_menu_items();
+
+ $this->add_my_home_menu();
+ $this->add_inbox_menu();
+
+ // Not needed outside of wp-admin.
+ if ( ! $this->is_api_request ) {
+ $this->add_browse_sites_link();
+ $this->add_site_card_menu();
+ $nudge = $this->get_upsell_nudge();
+ if ( $nudge ) {
+ parent::add_upsell_nudge( $nudge );
+ }
+ $this->add_new_site_link();
+ }
+
+ $this->add_woocommerce_installation_menu( $this->get_current_plan() );
+
+ ksort( $GLOBALS['menu'] );
+ }
+
+ /**
+ * Get the preferred view for the given screen.
+ *
+ * @param string $screen Screen identifier.
+ * @param bool $fallback_global_preference (Optional) Whether the global preference for all screens should be used
+ * as fallback if there is no specific preference for the given screen.
+ * Default: true.
+ * @return string
+ */
+ public function get_preferred_view( $screen, $fallback_global_preference = true ) {
+ // When no preferred view has been set for Themes, keep the previous behavior that forced the default view
+ // regardless of the global preference.
+ if ( $fallback_global_preference && 'themes.php' === $screen ) {
+ $preferred_view = parent::get_preferred_view( $screen, false );
+ if ( self::UNKNOWN_VIEW === $preferred_view ) {
+ return self::DEFAULT_VIEW;
+ }
+ return $preferred_view;
+ }
+
+ // Plugins on Simple sites are always managed on Calypso.
+ if ( 'plugins.php' === $screen ) {
+ return self::DEFAULT_VIEW;
+ }
+
+ return parent::get_preferred_view( $screen, $fallback_global_preference );
+ }
+
+ /**
+ * Adds the site switcher link if user has more than one site.
+ */
+ public function add_browse_sites_link() {
+ if ( count( get_blogs_of_user( get_current_user_id() ) ) < 2 ) {
+ return;
+ }
+
+ // Add the menu item.
+ add_menu_page( __( 'site-switcher', 'jetpack' ), __( 'Browse sites', 'jetpack' ), 'read', 'https://wordpress.com/home', null, 'dashicons-arrow-left-alt2', 0 );
+ add_filter( 'add_menu_classes', array( $this, 'set_browse_sites_link_class' ) );
+ }
+
+ /**
+ * Adds a custom element class for Site Switcher menu item.
+ *
+ * @param array $menu Associative array of administration menu items.
+ * @return array
+ */
+ public function set_browse_sites_link_class( array $menu ) {
+ foreach ( $menu as $key => $menu_item ) {
+ if ( 'site-switcher' !== $menu_item[3] ) {
+ continue;
+ }
+
+ $menu[ $key ][4] = add_cssclass( 'site-switcher', $menu_item[4] );
+ break;
+ }
+
+ return $menu;
+ }
+
+ /**
+ * Adds a link to the menu to create a new site.
+ */
+ public function add_new_site_link() {
+ if ( count( get_blogs_of_user( get_current_user_id() ) ) > 1 ) {
+ return;
+ }
+
+ $this->add_admin_menu_separator();
+ add_menu_page( __( 'Add New Site', 'jetpack' ), __( 'Add New Site', 'jetpack' ), 'read', 'https://wordpress.com/start?ref=calypso-sidebar', null, 'dashicons-plus-alt' );
+ }
+
+ /**
+ * Adds site card component.
+ */
+ public function add_site_card_menu() {
+ $default = 'data:image/svg+xml,' . rawurlencode( '<svg class="gridicon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><title>Globe</title><rect fill-opacity="0" x="0" width="24" height="24"/><g><path fill="#fff" d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm0 18l2-2 1-1v-2h-2v-1l-1-1H9v3l2 2v1.93c-3.94-.494-7-3.858-7-7.93l1 1h2v-2h2l3-3V6h-2L9 5v-.41C9.927 4.21 10.94 4 12 4s2.073.212 3 .59V6l-1 1v2l1 1 3.13-3.13c.752.897 1.304 1.964 1.606 3.13H18l-2 2v2l1 1h2l.286.286C18.03 18.06 15.24 20 12 20z"/></g></svg>' );
+ $icon = get_site_icon_url( 32, $default );
+ $blog_name = get_option( 'blogname' ) !== '' ? get_option( 'blogname' ) : $this->domain;
+ $is_coming_soon = ( wpcom_is_coming_soon() && is_private_blog() ) || (bool) get_option( 'wpcom_public_coming_soon' );
+
+ if ( $default === $icon && blavatar_exists( $this->domain ) ) {
+ $icon = blavatar_url( $this->domain, 'img', 32 );
+ }
+
+ $badge = '';
+ if ( is_private_blog() || $is_coming_soon ) {
+ $badge .= sprintf(
+ '<span class="site__badge site__badge-private">%s</span>',
+ $is_coming_soon ? esc_html__( 'Coming Soon', 'jetpack' ) : esc_html__( 'Private', 'jetpack' )
+ );
+ }
+
+ if ( function_exists( 'is_simple_site_redirect' ) && is_simple_site_redirect( $this->domain ) ) {
+ $badge .= '<span class="site__badge site__badge-redirect">' . esc_html__( 'Redirect', 'jetpack' ) . '</span>';
+ }
+
+ if ( ! empty( get_option( 'options' )['is_domain_only'] ) ) {
+ $badge .= '<span class="site__badge site__badge-domain-only">' . esc_html__( 'Domain', 'jetpack' ) . '</span>';
+ }
+
+ $site_card = '
+<div class="site__info">
+ <div class="site__title">%1$s</div>
+ <div class="site__domain">%2$s</div>
+ %3$s
+</div>';
+
+ $site_card = sprintf(
+ $site_card,
+ $blog_name,
+ $this->domain,
+ $badge
+ );
+
+ add_menu_page( 'site-card', $site_card, 'read', get_home_url(), null, $icon, 1 );
+ add_filter( 'add_menu_classes', array( $this, 'set_site_card_menu_class' ) );
+ }
+
+ /**
+ * Adds a custom element class and id for Site Card's menu item.
+ *
+ * @param array $menu Associative array of administration menu items.
+ * @return array
+ */
+ public function set_site_card_menu_class( array $menu ) {
+ foreach ( $menu as $key => $menu_item ) {
+ if ( 'site-card' !== $menu_item[3] ) {
+ continue;
+ }
+
+ $classes = ' toplevel_page_site-card';
+ if ( blavatar_exists( $this->domain ) ) {
+ $classes .= ' has-site-icon';
+ }
+
+ $menu[ $key ][4] = $menu_item[4] . $classes;
+ $menu[ $key ][5] = 'toplevel_page_site_card';
+ break;
+ }
+
+ return $menu;
+ }
+
+ /**
+ * Returns the first available upsell nudge.
+ *
+ * @return array
+ */
+ public function get_upsell_nudge() {
+ require_lib( 'jetpack-jitm/jitm-engine' );
+ $jitm_engine = new JITM\Engine();
+
+ $message_path = 'calypso:sites:sidebar_notice';
+ $current_user = wp_get_current_user();
+ $user_id = $current_user->ID;
+ $user_roles = implode( ',', $current_user->roles );
+ $query_string = array(
+ 'message_path' => $message_path,
+ );
+
+ // Get the top message only.
+ $message = $jitm_engine->get_top_messages( $message_path, $user_id, $user_roles, $query_string );
+
+ if ( isset( $message[0] ) ) {
+ $message = $message[0];
+ return array(
+ 'content' => $message->content['message'],
+ 'cta' => $message->CTA['message'], // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ 'link' => $message->CTA['link'], // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ 'tracks_impression_event_name' => $message->tracks['display']['name'],
+ 'tracks_impression_cta_name' => $message->tracks['display']['props']['cta_name'],
+ 'tracks_click_event_name' => $message->tracks['click']['name'],
+ 'tracks_click_cta_name' => $message->tracks['click']['props']['cta_name'],
+ 'dismissible' => $message->is_dismissible,
+ 'feature_class' => $message->feature_class,
+ 'id' => $message->id,
+ );
+ }
+ }
+
+ /**
+ * Adds Stats menu.
+ */
+ public function add_stats_menu() {
+ $menu_title = __( 'Stats', 'jetpack' );
+
+ if ( ! $this->is_api_request ) {
+ $menu_title .= sprintf(
+ '<img class="sidebar-unified__sparkline" width="80" height="20" src="%1$s" alt="%2$s">',
+ esc_url( site_url( 'wp-includes/charts/admin-bar-hours-scale-2x.php?masterbar=1&s=' . get_current_blog_id() ) ),
+ esc_attr__( 'Hourly views', 'jetpack' )
+ );
+ }
+
+ add_menu_page( __( 'Stats', 'jetpack' ), $menu_title, 'edit_posts', 'https://wordpress.com/stats/day/' . $this->domain, null, 'dashicons-chart-bar', 3 );
+ }
+
+ /**
+ * Gets the current plan and stores it in $this->current_plan so the database is only called once per request.
+ *
+ * @return array
+ */
+ private function get_current_plan() {
+ if ( empty( $this->current_plan ) && class_exists( 'WPCOM_Store_API' ) ) {
+ $this->current_plan = \WPCOM_Store_API::get_current_plan( get_current_blog_id() );
+ }
+ return $this->current_plan;
+ }
+
+ /**
+ * Adds Upgrades menu.
+ *
+ * @param string $plan The current WPCOM plan of the blog.
+ */
+ public function add_upgrades_menu( $plan = null ) {
+ $current_plan = $this->get_current_plan();
+ if ( ! empty( $current_plan['product_name_short'] ) ) {
+ $plan = $current_plan['product_name_short'];
+ }
+
+ parent::add_upgrades_menu( $plan );
+
+ $last_upgrade_submenu_position = $this->get_submenu_item_count( 'paid-upgrades.php' );
+
+ add_submenu_page( 'paid-upgrades.php', __( 'Domains', 'jetpack' ), __( 'Domains', 'jetpack' ), 'manage_options', 'https://wordpress.com/domains/manage/' . $this->domain, null, $last_upgrade_submenu_position - 1 );
+
+ /** This filter is already documented in modules/masterbar/admin-menu/class-atomic-admin-menu.php */
+ if ( apply_filters( 'jetpack_show_wpcom_upgrades_email_menu', false ) ) {
+ add_submenu_page( 'paid-upgrades.php', __( 'Emails', 'jetpack' ), __( 'Emails', 'jetpack' ), 'manage_options', 'https://wordpress.com/email/' . $this->domain, null, $last_upgrade_submenu_position );
+ }
+ }
+
+ /**
+ * Adds Appearance menu.
+ */
+ public function add_appearance_menu() {
+ $customize_url = parent::add_appearance_menu();
+
+ $this->hide_submenu_page( 'themes.php', 'theme-editor.php' );
+
+ $user_can_customize = current_user_can( 'customize' );
+
+ if ( $user_can_customize ) {
+ $customize_custom_css_url = add_query_arg( array( 'autofocus' => array( 'section' => 'jetpack_custom_css' ) ), $customize_url );
+ add_submenu_page( 'themes.php', esc_attr__( 'Additional CSS', 'jetpack' ), __( 'Additional CSS', 'jetpack' ), 'customize', esc_url( $customize_custom_css_url ), null, 20 );
+ }
+ }
+
+ /**
+ * Adds Users menu.
+ */
+ public function add_users_menu() {
+ $submenus_to_update = array(
+ 'grofiles-editor' => 'https://wordpress.com/me',
+ 'grofiles-user-settings' => 'https://wordpress.com/me/account',
+ );
+
+ if ( self::DEFAULT_VIEW === $this->get_preferred_view( 'users.php' ) ) {
+ $submenus_to_update['users.php'] = 'https://wordpress.com/people/team/' . $this->domain;
+ }
+
+ $slug = current_user_can( 'list_users' ) ? 'users.php' : 'profile.php';
+ $this->update_submenus( $slug, $submenus_to_update );
+ add_submenu_page( 'users.php', esc_attr__( 'Add New', 'jetpack' ), __( 'Add New', 'jetpack' ), 'promote_users', 'https://wordpress.com/people/new/' . $this->domain, null, 1 );
+ }
+
+ /**
+ * Adds Settings menu.
+ */
+ public function add_options_menu() {
+ parent::add_options_menu();
+
+ add_submenu_page( 'options-general.php', esc_attr__( 'Hosting Configuration', 'jetpack' ), __( 'Hosting Configuration', 'jetpack' ), 'manage_options', 'https://wordpress.com/hosting-config/' . $this->domain, null, 10 );
+ }
+
+ /**
+ * Also remove the Gutenberg plugin menu.
+ */
+ public function add_gutenberg_menus() {
+ // Always remove the Gutenberg menu.
+ remove_menu_page( 'gutenberg' );
+ parent::add_gutenberg_menus();
+ }
+
+ /**
+ * Whether to use wp-admin pages rather than Calypso.
+ *
+ * @return bool
+ */
+ public function should_link_to_wp_admin() {
+ $result = false; // Calypso.
+
+ $user_attribute = get_user_attribute( get_current_user_id(), 'calypso_preferences' );
+ if ( ! empty( $user_attribute['linkDestination'] ) ) {
+ $result = $user_attribute['linkDestination'];
+ }
+
+ return $result;
+ }
+
+ /**
+ * Adds Plugins menu.
+ */
+ public function add_plugins_menu() {
+ // TODO: Remove wpcom_menu (/wp-content/admin-plugins/wpcom-misc.php).
+ $count = '';
+ if ( ! is_multisite() && current_user_can( 'update_plugins' ) ) {
+ $update_data = wp_get_update_data();
+ $count = sprintf(
+ '<span class="update-plugins count-%s"><span class="plugin-count">%s</span></span>',
+ $update_data['counts']['plugins'],
+ number_format_i18n( $update_data['counts']['plugins'] )
+ );
+ }
+ /* translators: %s: Number of pending plugin updates. */
+ add_menu_page( esc_attr__( 'Plugins', 'jetpack' ), sprintf( __( 'Plugins %s', 'jetpack' ), $count ), 'activate_plugins', 'plugins.php', null, 'dashicons-admin-plugins', 65 );
+
+ parent::add_plugins_menu();
+ }
+
+ /**
+ * Saves the sidebar state ( expanded / collapsed ) via an ajax request.
+ */
+ public function ajax_sidebar_state() {
+ $expanded = filter_var( $_REQUEST['expanded'], FILTER_VALIDATE_BOOLEAN ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $user_id = get_current_user_id();
+ $preferences = get_user_attribute( $user_id, 'calypso_preferences' );
+ if ( empty( $preferences ) ) {
+ $preferences = array();
+ }
+
+ $value = array_merge( (array) $preferences, array( 'sidebarCollapsed' => ! $expanded ) );
+ $value = array_filter(
+ $value,
+ function ( $preference ) {
+ return null !== $preference;
+ }
+ );
+
+ update_user_attribute( $user_id, 'calypso_preferences', $value );
+
+ die();
+ }
+
+ /**
+ * Handle ajax requests to dismiss a just-in-time-message
+ */
+ public function wp_ajax_jitm_dismiss() {
+ check_ajax_referer( 'jitm_dismiss' );
+ require_lib( 'jetpack-jitm/jitm-engine' );
+ JITM\Engine::dismiss( $_REQUEST['id'], $_REQUEST['feature_class'] );
+ wp_die();
+ }
+
+ /**
+ * Syncs the sidebar collapsed state from Calypso Preferences.
+ */
+ public function sync_sidebar_collapsed_state() {
+ $calypso_preferences = get_user_attribute( get_current_user_id(), 'calypso_preferences' );
+
+ $sidebar_collapsed = isset( $calypso_preferences['sidebarCollapsed'] ) ? $calypso_preferences['sidebarCollapsed'] : false;
+ set_user_setting( 'mfold', $sidebar_collapsed ? 'f' : 'o' );
+ }
+
+ /**
+ * Removes unwanted submenu items.
+ *
+ * These submenus are added across wp-content and should be removed together with these function calls.
+ */
+ public function remove_submenus() {
+ global $_registered_pages;
+
+ remove_submenu_page( 'index.php', 'akismet-stats' );
+ remove_submenu_page( 'index.php', 'my-comments' );
+ remove_submenu_page( 'index.php', 'stats' );
+ remove_submenu_page( 'index.php', 'subscriptions' );
+
+ /* @see https://github.com/Automattic/wp-calypso/issues/49210 */
+ remove_submenu_page( 'index.php', 'my-blogs' );
+ $_registered_pages['admin_page_my-blogs'] = true; // phpcs:ignore
+
+ remove_submenu_page( 'paid-upgrades.php', 'premium-themes' );
+ remove_submenu_page( 'paid-upgrades.php', 'domains' );
+ remove_submenu_page( 'paid-upgrades.php', 'my-upgrades' );
+ remove_submenu_page( 'paid-upgrades.php', 'billing-history' );
+
+ remove_submenu_page( 'themes.php', 'customize.php?autofocus[panel]=amp_panel&return=' . rawurlencode( admin_url() ) );
+
+ remove_submenu_page( 'users.php', 'wpcom-invite-users' ); // Wpcom_Invite_Users::action_admin_menu.
+
+ remove_submenu_page( 'options-general.php', 'adcontrol' );
+
+ // Remove menu item but continue allowing access.
+ foreach ( array( 'openidserver', 'webhooks' ) as $page_slug ) {
+ remove_submenu_page( 'options-general.php', $page_slug );
+ $_registered_pages[ 'admin_page_' . $page_slug ] = true; // phpcs:ignore
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/dashicon-set.php b/plugins/jetpack/modules/masterbar/admin-menu/dashicon-set.php
new file mode 100644
index 00000000..41695b06
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/dashicon-set.php
@@ -0,0 +1,358 @@
+<?php
+/**
+ * Array that contains all the core dashicons.
+ *
+ * @package automattic/jetpack
+ */
+
+return array(
+ 'dashicons-admin-appearance' => true,
+ 'dashicons-admin-collapse' => true,
+ 'dashicons-admin-comments' => true,
+ 'dashicons-admin-customizer' => true,
+ 'dashicons-admin-generic' => true,
+ 'dashicons-admin-home' => true,
+ 'dashicons-admin-links' => true,
+ 'dashicons-admin-media' => true,
+ 'dashicons-admin-multisite' => true,
+ 'dashicons-admin-network' => true,
+ 'dashicons-admin-page' => true,
+ 'dashicons-admin-plugins' => true,
+ 'dashicons-admin-post' => true,
+ 'dashicons-admin-settings' => true,
+ 'dashicons-admin-site-alt' => true,
+ 'dashicons-admin-site-alt2' => true,
+ 'dashicons-admin-site-alt3' => true,
+ 'dashicons-admin-site' => true,
+ 'dashicons-admin-tools' => true,
+ 'dashicons-admin-users' => true,
+ 'dashicons-airplane' => true,
+ 'dashicons-album' => true,
+ 'dashicons-align-center' => true,
+ 'dashicons-align-full-width' => true,
+ 'dashicons-align-left' => true,
+ 'dashicons-align-none' => true,
+ 'dashicons-align-pull-left' => true,
+ 'dashicons-align-pull-right' => true,
+ 'dashicons-align-right' => true,
+ 'dashicons-align-wide' => true,
+ 'dashicons-amazon' => true,
+ 'dashicons-analytics' => true,
+ 'dashicons-archive' => true,
+ 'dashicons-arrow-down-alt' => true,
+ 'dashicons-arrow-down-alt2' => true,
+ 'dashicons-arrow-down' => true,
+ 'dashicons-arrow-left-alt' => true,
+ 'dashicons-arrow-left-alt2' => true,
+ 'dashicons-arrow-left' => true,
+ 'dashicons-arrow-right-alt' => true,
+ 'dashicons-arrow-right-alt2' => true,
+ 'dashicons-arrow-right' => true,
+ 'dashicons-arrow-up-alt' => true,
+ 'dashicons-arrow-up-alt2' => true,
+ 'dashicons-arrow-up-duplicate' => true,
+ 'dashicons-arrow-up' => true,
+ 'dashicons-art' => true,
+ 'dashicons-awards' => true,
+ 'dashicons-backup' => true,
+ 'dashicons-bank' => true,
+ 'dashicons-beer' => true,
+ 'dashicons-bell' => true,
+ 'dashicons-block-default' => true,
+ 'dashicons-book-alt' => true,
+ 'dashicons-book' => true,
+ 'dashicons-buddicons-activity' => true,
+ 'dashicons-buddicons-bbpress-logo' => true,
+ 'dashicons-buddicons-buddypress-logo' => true,
+ 'dashicons-buddicons-community' => true,
+ 'dashicons-buddicons-forums' => true,
+ 'dashicons-buddicons-friends' => true,
+ 'dashicons-buddicons-groups' => true,
+ 'dashicons-buddicons-pm' => true,
+ 'dashicons-buddicons-replies' => true,
+ 'dashicons-buddicons-topics' => true,
+ 'dashicons-buddicons-tracking' => true,
+ 'dashicons-building' => true,
+ 'dashicons-businessman' => true,
+ 'dashicons-businessperson' => true,
+ 'dashicons-businesswoman' => true,
+ 'dashicons-button' => true,
+ 'dashicons-calculator' => true,
+ 'dashicons-calendar-alt' => true,
+ 'dashicons-calendar' => true,
+ 'dashicons-camera-alt' => true,
+ 'dashicons-camera' => true,
+ 'dashicons-car' => true,
+ 'dashicons-carrot' => true,
+ 'dashicons-cart' => true,
+ 'dashicons-category' => true,
+ 'dashicons-chart-area' => true,
+ 'dashicons-chart-bar' => true,
+ 'dashicons-chart-line' => true,
+ 'dashicons-chart-pie' => true,
+ 'dashicons-clipboard' => true,
+ 'dashicons-clock' => true,
+ 'dashicons-cloud-saved' => true,
+ 'dashicons-cloud-upload' => true,
+ 'dashicons-cloud' => true,
+ 'dashicons-code-standards' => true,
+ 'dashicons-coffee' => true,
+ 'dashicons-color-picker' => true,
+ 'dashicons-columns' => true,
+ 'dashicons-controls-back' => true,
+ 'dashicons-controls-forward' => true,
+ 'dashicons-controls-pause' => true,
+ 'dashicons-controls-play' => true,
+ 'dashicons-controls-repeat' => true,
+ 'dashicons-controls-skipback' => true,
+ 'dashicons-controls-skipforward' => true,
+ 'dashicons-controls-volumeoff' => true,
+ 'dashicons-controls-volumeon' => true,
+ 'dashicons-cover-image' => true,
+ 'dashicons-dashboard' => true,
+ 'dashicons-database-add' => true,
+ 'dashicons-database-export' => true,
+ 'dashicons-database-import' => true,
+ 'dashicons-database-remove' => true,
+ 'dashicons-database-view' => true,
+ 'dashicons-database' => true,
+ 'dashicons-desktop' => true,
+ 'dashicons-dismiss' => true,
+ 'dashicons-download' => true,
+ 'dashicons-drumstick' => true,
+ 'dashicons-edit-large' => true,
+ 'dashicons-edit-page' => true,
+ 'dashicons-edit' => true,
+ 'dashicons-editor-aligncenter' => true,
+ 'dashicons-editor-alignleft' => true,
+ 'dashicons-editor-alignright' => true,
+ 'dashicons-editor-bold' => true,
+ 'dashicons-editor-break' => true,
+ 'dashicons-editor-code-duplicate' => true,
+ 'dashicons-editor-code' => true,
+ 'dashicons-editor-contract' => true,
+ 'dashicons-editor-customchar' => true,
+ 'dashicons-editor-expand' => true,
+ 'dashicons-editor-help' => true,
+ 'dashicons-editor-indent' => true,
+ 'dashicons-editor-insertmore' => true,
+ 'dashicons-editor-italic' => true,
+ 'dashicons-editor-justify' => true,
+ 'dashicons-editor-kitchensink' => true,
+ 'dashicons-editor-ltr' => true,
+ 'dashicons-editor-ol-rtl' => true,
+ 'dashicons-editor-ol' => true,
+ 'dashicons-editor-outdent' => true,
+ 'dashicons-editor-paragraph' => true,
+ 'dashicons-editor-paste-text' => true,
+ 'dashicons-editor-paste-word' => true,
+ 'dashicons-editor-quote' => true,
+ 'dashicons-editor-removeformatting' => true,
+ 'dashicons-editor-rtl' => true,
+ 'dashicons-editor-spellcheck' => true,
+ 'dashicons-editor-strikethrough' => true,
+ 'dashicons-editor-table' => true,
+ 'dashicons-editor-textcolor' => true,
+ 'dashicons-editor-ul' => true,
+ 'dashicons-editor-underline' => true,
+ 'dashicons-editor-unlink' => true,
+ 'dashicons-editor-video' => true,
+ 'dashicons-ellipsis' => true,
+ 'dashicons-email-alt' => true,
+ 'dashicons-email-alt2' => true,
+ 'dashicons-email' => true,
+ 'dashicons-embed-audio' => true,
+ 'dashicons-embed-generic' => true,
+ 'dashicons-embed-photo' => true,
+ 'dashicons-embed-post' => true,
+ 'dashicons-embed-video' => true,
+ 'dashicons-excerpt-view' => true,
+ 'dashicons-exit' => true,
+ 'dashicons-external' => true,
+ 'dashicons-facebook-alt' => true,
+ 'dashicons-facebook' => true,
+ 'dashicons-feedback' => true,
+ 'dashicons-filter' => true,
+ 'dashicons-flag' => true,
+ 'dashicons-food' => true,
+ 'dashicons-format-aside' => true,
+ 'dashicons-format-audio' => true,
+ 'dashicons-format-chat' => true,
+ 'dashicons-format-gallery' => true,
+ 'dashicons-format-image' => true,
+ 'dashicons-format-quote' => true,
+ 'dashicons-format-status' => true,
+ 'dashicons-format-video' => true,
+ 'dashicons-forms' => true,
+ 'dashicons-fullscreen-alt' => true,
+ 'dashicons-fullscreen-exit-alt' => true,
+ 'dashicons-games' => true,
+ 'dashicons-google' => true,
+ 'dashicons-googleplus' => true,
+ 'dashicons-grid-view' => true,
+ 'dashicons-groups' => true,
+ 'dashicons-hammer' => true,
+ 'dashicons-heading' => true,
+ 'dashicons-heart' => true,
+ 'dashicons-hidden' => true,
+ 'dashicons-hourglass' => true,
+ 'dashicons-html' => true,
+ 'dashicons-id-alt' => true,
+ 'dashicons-id' => true,
+ 'dashicons-image-crop' => true,
+ 'dashicons-image-filter' => true,
+ 'dashicons-image-flip-horizontal' => true,
+ 'dashicons-image-flip-vertical' => true,
+ 'dashicons-image-rotate-left' => true,
+ 'dashicons-image-rotate-right' => true,
+ 'dashicons-image-rotate' => true,
+ 'dashicons-images-alt' => true,
+ 'dashicons-images-alt2' => true,
+ 'dashicons-index-card' => true,
+ 'dashicons-info-outline' => true,
+ 'dashicons-info' => true,
+ 'dashicons-insert-after' => true,
+ 'dashicons-insert-before' => true,
+ 'dashicons-insert' => true,
+ 'dashicons-instagram' => true,
+ 'dashicons-laptop' => true,
+ 'dashicons-layout' => true,
+ 'dashicons-leftright' => true,
+ 'dashicons-lightbulb' => true,
+ 'dashicons-linkedin' => true,
+ 'dashicons-list-view' => true,
+ 'dashicons-location-alt' => true,
+ 'dashicons-location' => true,
+ 'dashicons-lock-duplicate' => true,
+ 'dashicons-lock' => true,
+ 'dashicons-marker' => true,
+ 'dashicons-media-archive' => true,
+ 'dashicons-media-audio' => true,
+ 'dashicons-media-code' => true,
+ 'dashicons-media-default' => true,
+ 'dashicons-media-document' => true,
+ 'dashicons-media-interactive' => true,
+ 'dashicons-media-spreadsheet' => true,
+ 'dashicons-media-text' => true,
+ 'dashicons-media-video' => true,
+ 'dashicons-megaphone' => true,
+ 'dashicons-menu-alt' => true,
+ 'dashicons-menu-alt2' => true,
+ 'dashicons-menu-alt3' => true,
+ 'dashicons-menu' => true,
+ 'dashicons-microphone' => true,
+ 'dashicons-migrate' => true,
+ 'dashicons-minus' => true,
+ 'dashicons-money-alt' => true,
+ 'dashicons-money' => true,
+ 'dashicons-move' => true,
+ 'dashicons-nametag' => true,
+ 'dashicons-networking' => true,
+ 'dashicons-no-alt' => true,
+ 'dashicons-no' => true,
+ 'dashicons-open-folder' => true,
+ 'dashicons-palmtree' => true,
+ 'dashicons-paperclip' => true,
+ 'dashicons-pdf' => true,
+ 'dashicons-performance' => true,
+ 'dashicons-pets' => true,
+ 'dashicons-phone' => true,
+ 'dashicons-pinterest' => true,
+ 'dashicons-playlist-audio' => true,
+ 'dashicons-playlist-video' => true,
+ 'dashicons-plugins-checked' => true,
+ 'dashicons-plus-alt' => true,
+ 'dashicons-plus-alt2' => true,
+ 'dashicons-plus' => true,
+ 'dashicons-podio' => true,
+ 'dashicons-portfolio' => true,
+ 'dashicons-post-status' => true,
+ 'dashicons-pressthis' => true,
+ 'dashicons-printer' => true,
+ 'dashicons-privacy' => true,
+ 'dashicons-products' => true,
+ 'dashicons-randomize' => true,
+ 'dashicons-reddit' => true,
+ 'dashicons-redo' => true,
+ 'dashicons-remove' => true,
+ 'dashicons-rest-api' => true,
+ 'dashicons-rss' => true,
+ 'dashicons-saved' => true,
+ 'dashicons-schedule' => true,
+ 'dashicons-screenoptions' => true,
+ 'dashicons-search' => true,
+ 'dashicons-share-alt' => true,
+ 'dashicons-share-alt2' => true,
+ 'dashicons-share' => true,
+ 'dashicons-shield-alt' => true,
+ 'dashicons-shield' => true,
+ 'dashicons-shortcode' => true,
+ 'dashicons-slides' => true,
+ 'dashicons-smartphone' => true,
+ 'dashicons-smiley' => true,
+ 'dashicons-sort' => true,
+ 'dashicons-sos' => true,
+ 'dashicons-spotify' => true,
+ 'dashicons-star-empty' => true,
+ 'dashicons-star-filled' => true,
+ 'dashicons-star-half' => true,
+ 'dashicons-sticky' => true,
+ 'dashicons-store' => true,
+ 'dashicons-superhero-alt' => true,
+ 'dashicons-superhero' => true,
+ 'dashicons-table-col-after' => true,
+ 'dashicons-table-col-before' => true,
+ 'dashicons-table-col-delete' => true,
+ 'dashicons-table-row-after' => true,
+ 'dashicons-table-row-before' => true,
+ 'dashicons-table-row-delete' => true,
+ 'dashicons-tablet' => true,
+ 'dashicons-tag' => true,
+ 'dashicons-tagcloud' => true,
+ 'dashicons-testimonial' => true,
+ 'dashicons-text-page' => true,
+ 'dashicons-text' => true,
+ 'dashicons-thumbs-down' => true,
+ 'dashicons-thumbs-up' => true,
+ 'dashicons-tickets-alt' => true,
+ 'dashicons-tickets' => true,
+ 'dashicons-tide' => true,
+ 'dashicons-translation' => true,
+ 'dashicons-trash' => true,
+ 'dashicons-twitch' => true,
+ 'dashicons-twitter-alt' => true,
+ 'dashicons-twitter' => true,
+ 'dashicons-undo' => true,
+ 'dashicons-universal-access-alt' => true,
+ 'dashicons-universal-access' => true,
+ 'dashicons-unlock' => true,
+ 'dashicons-update-alt' => true,
+ 'dashicons-update' => true,
+ 'dashicons-upload' => true,
+ 'dashicons-vault' => true,
+ 'dashicons-video-alt' => true,
+ 'dashicons-video-alt2' => true,
+ 'dashicons-video-alt3' => true,
+ 'dashicons-visibility' => true,
+ 'dashicons-warning' => true,
+ 'dashicons-welcome-add-page' => true,
+ 'dashicons-welcome-comments' => true,
+ 'dashicons-welcome-learn-more' => true,
+ 'dashicons-welcome-view-site' => true,
+ 'dashicons-welcome-widgets-menus' => true,
+ 'dashicons-welcome-write-blog' => true,
+ 'dashicons-whatsapp' => true,
+ 'dashicons-wordpress-alt' => true,
+ 'dashicons-wordpress' => true,
+ 'dashicons-xing' => true,
+ 'dashicons-yes-alt' => true,
+ 'dashicons-yes' => true,
+ 'dashicons-youtube' => true,
+ 'dashicons-editor-distractionfree' => true,
+ 'dashicons-exerpt-view' => true,
+ 'dashicons-format-links' => true,
+ 'dashicons-format-standard' => true,
+ 'dashicons-post-trash' => true,
+ 'dashicons-share1' => true,
+ 'dashicons-welcome-edit-page' => true,
+);
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/load.php b/plugins/jetpack/modules/masterbar/admin-menu/load.php
new file mode 100644
index 00000000..412819ef
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/load.php
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Admin Menu loader.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Status\Host;
+use Automattic\Jetpack\Tracking;
+
+/**
+ * Checks whether the navigation customizations should be performed for the given class.
+ *
+ * @param string $admin_menu_class Class name.
+ *
+ * @return bool
+ */
+function should_customize_nav( $admin_menu_class ) {
+ // Make sure the class extends the base admin menu class.
+ if ( ! is_subclass_of( $admin_menu_class, Base_Admin_Menu::class ) ) {
+ return false;
+ }
+
+ $is_api_request = defined( 'REST_REQUEST' ) && REST_REQUEST || 0 === strpos( $_SERVER['REQUEST_URI'], '/?rest_route=%2Fwpcom%2Fv2%2Fadmin-menu' );
+
+ // No nav customizations on WP Admin of Atomic sites when SSO is disabled.
+ if ( is_a( $admin_menu_class, Atomic_Admin_Menu::class, true ) && ! $is_api_request && ! \Jetpack::is_module_active( 'sso' ) ) {
+ return false;
+ }
+
+ // No nav customizations on WP Admin of Jetpack sites.
+ if ( is_a( $admin_menu_class, Jetpack_Admin_Menu::class, true ) && ! $is_api_request ) {
+ return false;
+ }
+
+ return true;
+}
+
+/**
+ * Gets the name of the class that customizes the admin menu.
+ *
+ * @return string Class name.
+ */
+function get_admin_menu_class() {
+ // WordPress.com Atomic sites.
+ if ( ( new Host() )->is_woa_site() ) {
+ require_once __DIR__ . '/class-atomic-admin-menu.php';
+ return Atomic_Admin_Menu::class;
+ }
+
+ // WordPress.com Simple sites.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $blog_id = get_current_blog_id();
+
+ // Domain-only sites.
+ $blog_options = get_blog_option( $blog_id, 'options' );
+ $is_domain_only = ! empty( $blog_options['is_domain_only'] );
+ if ( $is_domain_only ) {
+ require_once __DIR__ . '/class-domain-only-admin-menu.php';
+ return Domain_Only_Admin_Menu::class;
+ }
+
+ // DIFM Lite In Progress Sites. Uses the same menu used for domain-only sites.
+ // Ignore this check if we are in a support session.
+ $is_difm_lite_in_progress = has_blog_sticker( 'difm-lite-in-progress' );
+ $is_support_session = defined( 'WPCOM_SUPPORT_SESSION' ) && WPCOM_SUPPORT_SESSION;
+ if ( $is_difm_lite_in_progress && ! $is_support_session ) {
+ require_once __DIR__ . '/class-domain-only-admin-menu.php';
+ return Domain_Only_Admin_Menu::class;
+ }
+
+ // P2 sites.
+ require_once WP_CONTENT_DIR . '/lib/wpforteams/functions.php';
+ if ( \WPForTeams\is_wpforteams_site( $blog_id ) ) {
+ require_once __DIR__ . '/class-p2-admin-menu.php';
+ return P2_Admin_Menu::class;
+ }
+
+ // Rest of simple sites.
+ require_once __DIR__ . '/class-wpcom-admin-menu.php';
+ return WPcom_Admin_Menu::class;
+ }
+
+ // Jetpack sites.
+ require_once __DIR__ . '/class-jetpack-admin-menu.php';
+ return Jetpack_Admin_Menu::class;
+}
+
+/**
+ * Filters the name of the class that customizes the admin menu. It should extends the `Base_Admin_Menu` class.
+ *
+ * @module masterbar
+ *
+ * @since 9.6.0
+ *
+ * @param string $admin_menu_class Class name.
+ */
+$admin_menu_class = apply_filters( 'jetpack_admin_menu_class', get_admin_menu_class() );
+if ( should_customize_nav( $admin_menu_class ) ) {
+ /** The admin menu singleton instance. @var Base_Admin_Menu $instance */
+ $admin_menu_class::get_instance();
+
+ /**
+ * Trigger an event when the user uses the dashboard quick switcher.
+ *
+ * @param string $screen The current screen.
+ * @param string $view The view the user choosed to go to.
+ */
+ function dashboard_quick_switcher_record_usage( $screen, $view ) {
+ require_once __DIR__ . '/class-dashboard-switcher-tracking.php';
+
+ $tracking = new Dashboard_Switcher_Tracking(
+ new Tracking( Dashboard_Switcher_Tracking::get_jetpack_tracking_product() ),
+ array( Dashboard_Switcher_Tracking::class, 'wpcom_tracks_record_event' ),
+ Dashboard_Switcher_Tracking::get_plan()
+ );
+
+ $tracking->record_switch_event( $screen, $view );
+ }
+
+ \add_action( 'jetpack_dashboard_switcher_changed_view', __NAMESPACE__ . '\dashboard_quick_switcher_record_usage', 10, 2 );
+} else {
+ \add_filter( 'jetpack_load_admin_menu_class', '__return_false' );
+}
diff --git a/plugins/jetpack/modules/masterbar/admin-menu/menu-mappings.php b/plugins/jetpack/modules/masterbar/admin-menu/menu-mappings.php
new file mode 100644
index 00000000..f17acb9e
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/admin-menu/menu-mappings.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Helper mapping between WP Admin pages and WordPress.com
+ *
+ * @package automattic/jetpack
+ */
+
+$common_mappings = array(
+ 'upload.php' => 'https://wordpress.com/media/',
+ 'edit.php' => 'https://wordpress.com/posts/',
+ 'edit-comments.php' => 'https://wordpress.com/comments/',
+ 'import.php' => 'https://wordpress.com/import/',
+ 'edit.php?post_type=page' => 'https://wordpress.com/pages/',
+ 'edit.php?post_type=post' => 'https://wordpress.com/posts/',
+ 'users.php' => 'https://wordpress.com/people/team/',
+ 'options-general.php' => 'https://wordpress.com/settings/general/',
+ 'options-discussion.php' => 'https://wordpress.com/settings/discussion/',
+ 'options-writing.php' => 'https://wordpress.com/settings/writing/',
+ 'themes.php' => 'https://wordpress.com/themes/',
+ 'edit-tags.php?taxonomy=category' => 'https://wordpress.com/settings/taxonomies/category/',
+ 'edit-tags.php?taxonomy=post_tag' => 'https://wordpress.com/settings/taxonomies/post_tag/',
+ 'edit.php?post_type=jetpack-portfolio' => 'https://wordpress.com/types/jetpack-portfolio/',
+ 'edit.php?post_type=jetpack-testimonial' => 'https://wordpress.com/types/jetpack-testimonial/',
+);
+
+if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ // WPCOM Specific mappings.
+ $common_mappings['export.php'] = 'https://wordpress.com/export/';
+}
+
+return $common_mappings;
diff --git a/plugins/jetpack/modules/masterbar/inline-help/class-inline-help.php b/plugins/jetpack/modules/masterbar/inline-help/class-inline-help.php
new file mode 100644
index 00000000..90f422f3
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/inline-help/class-inline-help.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Inline Help.
+ *
+ * Handles providing a LiveChat icon within WPAdmin until such time
+ * as the full live chat experience can be run in a non-Calypso environment.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class Inline_Help.
+ */
+class Inline_Help {
+
+ /**
+ * Inline_Help constructor.
+ */
+ public function __construct() {
+ add_action( 'current_screen', array( $this, 'register_actions' ) );
+ }
+
+ /**
+ * Registers actions.
+ *
+ * @param object $current_screen Current screen object.
+ * @return void
+ */
+ public function register_actions( $current_screen ) {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ // Do not inject the FAB icon on embedded screens since the parent window may already contain a FAB icon.
+ $is_framed = ! empty( $_GET['frame-nonce'] );
+
+ // Do not inject the FAB icon on Yoast screens to avoid overlap with the Yoast help icon.
+ $is_yoast = ! empty( $current_screen->base ) && false !== strpos( $current_screen->base, '_page_wpseo_' );
+
+ if ( $is_framed || $is_yoast ) {
+ return;
+ }
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ add_action( 'admin_footer', array( $this, 'add_fab_icon' ) );
+
+ add_action( 'admin_enqueue_scripts', array( $this, 'add_fab_styles' ) );
+ }
+
+ /**
+ * Outputs "FAB" icon markup and SVG.
+ *
+ * @return void|string the HTML markup for the FAB or early exit.
+ */
+ public function add_fab_icon() {
+
+ if ( wp_doing_ajax() ) {
+ return;
+ }
+
+ $svg_allowed = array(
+ 'svg' => array(
+ 'id' => true,
+ 'class' => true,
+ 'aria-hidden' => true,
+ 'aria-labelledby' => true,
+ 'role' => true,
+ 'xmlns' => true,
+ 'width' => true,
+ 'height' => true,
+ 'viewbox' => true, // <= Must be lower case!
+ ),
+ 'g' => array( 'fill' => true ),
+ 'title' => array( 'title' => true ),
+ 'path' => array(
+ 'd' => true,
+ 'fill' => true,
+ ),
+ );
+
+ $gridicon_help = file_get_contents( __DIR__ . '/gridicon-help.svg', true );
+
+ // Add tracking data to link to be picked up by Calypso for GA and Tracks usage.
+ $tracking_href = add_query_arg(
+ array(
+ 'utm_source' => 'wp_admin',
+ 'utm_medium' => 'other',
+ 'utm_content' => 'jetpack_masterbar_inline_help_click',
+ 'flags' => 'a8c-analytics.on',
+ ),
+ 'https://wordpress.com/help'
+ );
+
+ // phpcs:disable WordPress.Security.EscapeOutput.OutputNotEscaped
+ // We trust that output in the template has been escaped.
+ echo load_template(
+ __DIR__ . '/inline-help-template.php',
+ true,
+ array(
+ 'href' => $tracking_href,
+ 'icon' => $gridicon_help,
+ 'svg_allowed' => $svg_allowed,
+ )
+ );
+ // phpcs:enable WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ }
+
+ /**
+ * Enqueues FAB CSS styles.
+ *
+ * @return void
+ */
+ public function add_fab_styles() {
+ wp_enqueue_style( 'a8c-faux-inline-help', plugins_url( 'inline-help.css', __FILE__ ), array(), JETPACK__VERSION );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/inline-help/gridicon-help.svg b/plugins/jetpack/modules/masterbar/inline-help/gridicon-help.svg
new file mode 100644
index 00000000..f85fe9e1
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/inline-help/gridicon-help.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="gridicon gridicons-help" height="48" width="48"><svg viewBox="0 0 24 24" id="gridicons-help"><g><path d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 16h-2v-2h2v2zm0-4.14V15h-2v-2c0-.552.448-1 1-1 1.103 0 2-.897 2-2s-.897-2-2-2-2 .897-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.862-1.278 3.413-3 3.86z"></path></g></svg></svg> \ No newline at end of file
diff --git a/plugins/jetpack/modules/masterbar/inline-help/inline-help-template.php b/plugins/jetpack/modules/masterbar/inline-help/inline-help-template.php
new file mode 100644
index 00000000..6d9aba31
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/inline-help/inline-help-template.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Inline Help FAB icon template.
+ *
+ * @package automattic/jetpack
+ */
+
+// phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+?>
+
+<div class="a8c-faux-inline-help">
+ <a class="a8c-faux-inline-help__button" href="<?php echo esc_url( $args['href'] ); ?>" target="_blank" rel="noopener noreferrer" title="<?php echo esc_attr__( 'Help', 'jetpack' ); ?>">
+ <?php echo wp_kses( $args['icon'], $args['svg_allowed'] ); ?>
+ </a>
+</div>
diff --git a/plugins/jetpack/modules/masterbar/inline-help/inline-help.css b/plugins/jetpack/modules/masterbar/inline-help/inline-help.css
new file mode 100644
index 00000000..f9971d47
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/inline-help/inline-help.css
@@ -0,0 +1,74 @@
+.a8c-faux-inline-help {
+ position: fixed;
+ right: 24px;
+ bottom: 24px;
+ z-index: 9999;
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button {
+ position: absolute;
+ right: 0;
+ bottom: 10px; /* push away from WordPress Core footer */
+ line-height: 0;
+ padding: 1px;
+ border-radius: 100%;
+ background-color: #1d2327; /* IE11 fallback - Classic Dark */
+ background-color: var( --color-primary );
+ border: 1px solid #3c434a; /* IE11 fallback - Classic Dark */
+ border: 1px solid var( --color-primary-dark );
+ transition: all 0.2s ease-in-out;
+ overflow: visible;
+ width: 40px;
+ height: 40px;
+ box-sizing: border-box; /* .button component */
+
+ /* elevation() mixin styles */
+ box-shadow: 0 4px 5px 0 rgba( 16, 21, 23, 0.14 ),
+ 0 1px 10px 0 rgba( 16, 21, 23, 0.12 ),
+ 0 2px 4px -1px rgba( 16, 21, 23, 0.2 ); /* IE11 fallback - Classic Dark */
+ box-shadow: 0 4px 5px 0 rgba( var( --color-neutral-100-rgb ), 0.14 ),
+ 0 1px 10px 0 rgba( var( --color-neutral-100-rgb ), 0.12 ),
+ 0 2px 4px -1px rgba( var( --color-neutral-100-rgb ), 0.2 );
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button::before {
+ width: 28px;
+ height: 28px;
+ display: block;
+ position: absolute;
+ top: 5px;
+ left: 5px;
+ content: '';
+ background: #ffffff; /* IE11 fallback - Classic Dark */
+ background: var( --color-surface );
+ border-radius: 100%;
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button:focus {
+ background-color: #1d2327; /* IE11 fallback - Classic Dark */
+ background-color: var( --color-primary );
+ box-shadow: 0 0 0 2px #8c8f94; /* IE11 fallback - Classic Dark */
+ box-shadow: 0 0 0 2px var( --color-primary-light );
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button .gridicon {
+ pointer-events: none; /* ensure SVG does not capture click on anchor */
+ position: relative;
+ fill: #1d2327; /* IE11 fallback - Classic Dark */
+ fill: var( --color-primary );
+ margin: -3px 0 0 -3px;
+ top: 0;
+ height: 42px;
+ width: 42px;
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button .gridicon>use:first-child,
+.a8c-faux-inline-help .a8c-faux-inline-help__button .gridicon>g:first-child {
+ transform: none;
+}
+
+.a8c-faux-inline-help .a8c-faux-inline-help__button:hover:not(.is-active) {
+ background: #1d2327; /* IE11 fallback - Classic Dark */
+ background: var( --color-primary );
+ transform: scale( 1.15 );
+}
diff --git a/plugins/jetpack/modules/masterbar/masterbar/class-masterbar.php b/plugins/jetpack/modules/masterbar/masterbar/class-masterbar.php
new file mode 100644
index 00000000..260a38fd
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/masterbar/class-masterbar.php
@@ -0,0 +1,1484 @@
+<?php
+/**
+ * Masterbar file.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Scan\Admin_Bar_Notice;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Status\Host;
+use GP_Locale;
+use GP_Locales;
+use Jetpack;
+use Jetpack_AMP_Support;
+use Jetpack_Plan;
+use WP_Admin_Bar;
+
+/**
+ * Provides custom admin bar instead of the default WordPress admin bar.
+ */
+class Masterbar {
+ /**
+ * Use for testing changes made to remotely enqueued scripts and styles on your sandbox.
+ * If not set it will default to loading the ones from WordPress.com.
+ *
+ * @var string $sandbox_url
+ */
+ private $sandbox_url = '';
+
+ /**
+ * Current locale.
+ *
+ * @var string
+ */
+ private $locale;
+
+ /**
+ * WordPress.com user locale of the connected user.
+ *
+ * @var string
+ */
+ private $user_locale;
+
+ /**
+ * Current User ID.
+ *
+ * @var int
+ */
+ private $user_id;
+ /**
+ * WordPress.com user data of the connected user.
+ *
+ * @var array
+ */
+ private $user_data;
+ /**
+ * WordPress.com username for the connected user.
+ *
+ * @var string
+ */
+ private $user_login;
+ /**
+ * WordPress.com email address for the connected user.
+ *
+ * @var string
+ */
+ private $user_email;
+ /**
+ * WordPress.com display name for the connected user.
+ *
+ * @var string
+ */
+ private $display_name;
+ /**
+ * Site URL sanitized for usage in WordPress.com slugs.
+ *
+ * @var string
+ */
+ private $primary_site_slug;
+ /**
+ * Whether the text direction is RTL (based on connected WordPress.com user's interface settings).
+ *
+ * @var boolean
+ */
+ private $is_rtl;
+ /**
+ * Number of sites owned by connected WordPress.com user.
+ *
+ * @var int
+ */
+ private $user_site_count;
+ /**
+ * If the site is hosted on WordPress.com on Atomic
+ *
+ * @var bool
+ */
+ private $site_woa;
+
+ /**
+ * Constructor
+ */
+ public function __construct() {
+ $this->user_id = get_current_user_id();
+ $connection_manager = new Connection_Manager( 'jetpack' );
+
+ if ( ! $connection_manager->is_user_connected( $this->user_id ) ) {
+ return;
+ }
+
+ $this->user_data = $connection_manager->get_connected_user_data( $this->user_id );
+ $this->user_login = $this->user_data['login'];
+ $this->user_email = $this->user_data['email'];
+ $this->display_name = $this->user_data['display_name'];
+ $this->user_site_count = $this->user_data['site_count'];
+ $this->is_rtl = 'rtl' === $this->user_data['text_direction'];
+ $this->user_locale = $this->user_data['user_locale'];
+ $this->site_woa = ( new Host() )->is_woa_site();
+
+ // Store part of the connected user data as user options so it can be used
+ // by other files of the masterbar module without making another XMLRPC
+ // request. Although `get_connected_user_data` tries to save the data for
+ // future uses on a transient, the data is not guaranteed to be cached.
+ update_user_option( $this->user_id, 'jetpack_wpcom_is_rtl', $this->is_rtl ? '1' : '0' );
+ if ( isset( $this->user_data['use_wp_admin_links'] ) ) {
+ update_user_option( $this->user_id, 'jetpack_admin_menu_link_destination', $this->user_data['use_wp_admin_links'] ? '1' : '0' );
+ }
+ // If Atomic, store and install user locale.
+ if ( $this->site_woa ) {
+ $this->user_locale = $this->get_jetpack_locale( $this->user_locale );
+ $this->install_locale( $this->user_locale );
+ update_user_option( $this->user_id, 'locale', $this->user_locale, true );
+ }
+
+ add_action( 'admin_bar_init', array( $this, 'init' ) );
+
+ if ( ! empty( $this->user_data['ID'] ) ) {
+ // Post logout on the site, also log the user out of WordPress.com.
+ add_filter( 'logout_redirect', array( $this, 'maybe_logout_user_from_wpcom' ) );
+ }
+ }
+
+ /**
+ * Initialize our masterbar.
+ */
+ public function init() {
+ $this->locale = $this->get_locale();
+
+ // Don't show the masterbar on WordPress mobile apps.
+ if ( User_Agent_Info::is_mobile_app() ) {
+ add_filter( 'show_admin_bar', '__return_false' );
+ return;
+ }
+
+ // Disable the Masterbar on AMP views.
+ if (
+ class_exists( 'Jetpack_AMP_Support' )
+ && Jetpack_AMP_Support::is_amp_available()
+ && Jetpack_AMP_Support::is_amp_request()
+ ) {
+ return;
+ }
+
+ Assets::add_resource_hint(
+ array(
+ '//s0.wp.com',
+ '//0.gravatar.com',
+ '//1.gravatar.com',
+ '//2.gravatar.com',
+ ),
+ 'dns-prefetch'
+ );
+
+ // WordPress.com on Atomic only.
+ if ( $this->site_woa ) {
+ /*
+ * override user setting that hides masterbar from site's front.
+ * https://github.com/Automattic/jetpack/issues/7667
+ */
+ add_filter( 'show_admin_bar', '__return_true' );
+ }
+
+ // Used to build menu links that point directly to Calypso.
+ $this->primary_site_slug = ( new Status() )->get_site_suffix();
+
+ // Used for display purposes and for building WP Admin links.
+ $this->primary_site_url = str_replace( '::', '/', $this->primary_site_slug );
+
+ add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) );
+
+ add_action( 'wp_before_admin_bar_render', array( $this, 'replace_core_masterbar' ), 99999 );
+
+ add_action( 'wp_enqueue_scripts', array( $this, 'add_styles_and_scripts' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'add_styles_and_scripts' ) );
+
+ add_action( 'wp_enqueue_scripts', array( $this, 'remove_core_styles' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'remove_core_styles' ) );
+
+ if ( Jetpack::is_module_active( 'notes' ) && $this->is_rtl ) {
+ // Override Notification module to include RTL styles.
+ add_action( 'a8c_wpcom_masterbar_enqueue_rtl_notification_styles', '__return_true' );
+ }
+
+ // Hides and replaces the language dropdown for the current user, on WoA.
+ if ( $this->site_woa &&
+ defined( 'IS_PROFILE_PAGE' ) && IS_PROFILE_PAGE ) {
+ add_action( 'user_edit_form_tag', array( $this, 'hide_language_dropdown' ) );
+ add_action( 'personal_options', array( $this, 'replace_language_dropdown' ), 9 );
+ }
+ }
+
+ /**
+ * Log out from WordPress.com when logging out of the local site.
+ *
+ * @param string $redirect_to The redirect destination URL.
+ */
+ public function maybe_logout_user_from_wpcom( $redirect_to ) {
+ /**
+ * Whether we should sign out from wpcom too when signing out from the masterbar.
+ *
+ * @since 5.9.0
+ *
+ * @param bool $masterbar_should_logout_from_wpcom True by default.
+ */
+ $masterbar_should_logout_from_wpcom = apply_filters( 'jetpack_masterbar_should_logout_from_wpcom', true );
+ if (
+ // No need to check for a nonce here, it happens further up.
+ isset( $_GET['context'] ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ && 'masterbar' === $_GET['context'] // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ && $masterbar_should_logout_from_wpcom
+ ) {
+ /**
+ * Hook into the log out event happening from the Masterbar.
+ *
+ * @since 5.1.0
+ * @since 7.9.0 Added the $wpcom_user_id parameter to the action.
+ *
+ * @module masterbar
+ *
+ * @param int $wpcom_user_id WordPress.com User ID.
+ */
+ do_action( 'wp_masterbar_logout', $this->user_data['ID'] );
+ }
+
+ return $redirect_to;
+ }
+
+ /**
+ * Adds CSS classes to admin body tag.
+ *
+ * @since 5.1
+ *
+ * @param string $admin_body_classes CSS classes that will be added.
+ *
+ * @return string
+ */
+ public function admin_body_class( $admin_body_classes ) {
+ return "$admin_body_classes jetpack-masterbar";
+ }
+
+ /**
+ * Remove the default Admin Bar CSS.
+ */
+ public function remove_core_styles() {
+ /*
+ * Notifications need the admin bar styles,
+ * so let's not remove them when the module is active.
+ */
+ if ( ! Jetpack::is_module_active( 'notes' ) ) {
+ wp_dequeue_style( 'admin-bar' );
+ }
+ }
+
+ /**
+ * Enqueue our own CSS and JS to display our custom admin bar.
+ */
+ public function add_styles_and_scripts() {
+
+ if ( $this->is_rtl ) {
+ wp_enqueue_style( 'a8c-wpcom-masterbar-rtl', $this->wpcom_static_url( '/wp-content/mu-plugins/admin-bar/rtl/wpcom-admin-bar-rtl.css' ), array(), JETPACK__VERSION );
+ wp_enqueue_style( 'a8c-wpcom-masterbar-overrides-rtl', $this->wpcom_static_url( '/wp-content/mu-plugins/admin-bar/masterbar-overrides/rtl/masterbar-rtl.css' ), array(), JETPACK__VERSION );
+ } else {
+ wp_enqueue_style( 'a8c-wpcom-masterbar', $this->wpcom_static_url( '/wp-content/mu-plugins/admin-bar/wpcom-admin-bar.css' ), array(), JETPACK__VERSION );
+ wp_enqueue_style( 'a8c-wpcom-masterbar-overrides', $this->wpcom_static_url( '/wp-content/mu-plugins/admin-bar/masterbar-overrides/masterbar.css' ), array(), JETPACK__VERSION );
+ }
+
+ // Local overrides.
+ wp_enqueue_style( 'a8c_wpcom_css_override', plugins_url( 'overrides.css', __FILE__ ), array(), JETPACK__VERSION );
+
+ if ( ! Jetpack::is_module_active( 'notes ' ) ) {
+ // Masterbar is relying on some icons from noticons.css.
+ wp_enqueue_style( 'noticons', $this->wpcom_static_url( '/i/noticons/noticons.css' ), array(), JETPACK__VERSION . '-' . gmdate( 'oW' ) );
+ }
+
+ wp_enqueue_script(
+ 'jetpack-accessible-focus',
+ Assets::get_file_url_for_environment( '_inc/build/accessible-focus.min.js', '_inc/accessible-focus.js' ),
+ array(),
+ JETPACK__VERSION,
+ false
+ );
+ wp_enqueue_script(
+ 'a8c_wpcom_masterbar_tracks_events',
+ Assets::get_file_url_for_environment(
+ '_inc/build/masterbar/masterbar/tracks-events.min.js',
+ 'modules/masterbar/masterbar/tracks-events.js'
+ ),
+ array(),
+ JETPACK__VERSION,
+ false
+ );
+
+ wp_enqueue_script(
+ 'a8c_wpcom_masterbar_overrides',
+ $this->wpcom_static_url( '/wp-content/mu-plugins/admin-bar/masterbar-overrides/masterbar.js' ),
+ array( 'jquery' ),
+ JETPACK__VERSION,
+ false
+ );
+ }
+
+ /**
+ * Get base URL where our CSS and JS will come from.
+ *
+ * @param string $file File path for a static resource.
+ */
+ private function wpcom_static_url( $file ) {
+ if ( ! empty( $this->sandbox_url ) ) {
+ // For testing undeployed changes to remotely enqueued scripts and styles.
+ return set_url_scheme( $this->sandbox_url . $file, 'https' );
+ }
+
+ $url = 'https://s0.wp.com' . $file;
+
+ return set_url_scheme( $url, 'https' );
+ }
+
+ /**
+ * Remove the default admin bar items and replace it with our own admin bar.
+ */
+ public function replace_core_masterbar() {
+ global $wp_admin_bar;
+
+ if ( ! is_object( $wp_admin_bar ) ) {
+ return false;
+ }
+
+ $this->clear_core_masterbar( $wp_admin_bar );
+ $this->build_wpcom_masterbar( $wp_admin_bar );
+ }
+
+ /**
+ * Remove all existing toolbar entries from core Masterbar
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function clear_core_masterbar( $wp_admin_bar ) {
+ foreach ( $wp_admin_bar->get_nodes() as $node ) {
+ $wp_admin_bar->remove_node( $node->id );
+ }
+ }
+
+ /**
+ * Add entries corresponding to WordPress.com Masterbar
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function build_wpcom_masterbar( $wp_admin_bar ) {
+ // Menu groups.
+ $this->wpcom_adminbar_add_secondary_groups( $wp_admin_bar );
+
+ // Left part.
+ $this->add_my_sites_submenu( $wp_admin_bar );
+ $this->add_reader_submenu( $wp_admin_bar );
+
+ // Right part.
+ if ( Jetpack::is_module_active( 'notes' ) ) {
+ $this->add_notifications( $wp_admin_bar );
+ }
+
+ $this->add_me_submenu( $wp_admin_bar );
+ $this->add_write_button( $wp_admin_bar );
+
+ // Recovery mode exit.
+ if ( function_exists( 'wp_admin_bar_recovery_mode_menu' ) ) {
+ wp_admin_bar_recovery_mode_menu( $wp_admin_bar );
+ }
+
+ if ( class_exists( 'Automattic\Jetpack\Scan\Admin_Bar_Notice' ) ) {
+ $scan_admin_bar_notice = Admin_Bar_Notice::instance();
+ $scan_admin_bar_notice->add_threats_to_toolbar( $wp_admin_bar );
+ }
+ }
+
+ /**
+ * Get WordPress.com current locale name.
+ */
+ public function get_locale() {
+ $wpcom_locale = get_locale();
+
+ if ( ! class_exists( 'GP_Locales' ) ) {
+ if ( defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) && file_exists( JETPACK__GLOTPRESS_LOCALES_PATH ) ) {
+ require JETPACK__GLOTPRESS_LOCALES_PATH;
+ }
+ }
+
+ if ( class_exists( 'GP_Locales' ) ) {
+ $wpcom_locale_object = GP_Locales::by_field( 'wp_locale', get_locale() );
+ if ( $wpcom_locale_object instanceof GP_Locale ) {
+ $wpcom_locale = $wpcom_locale_object->slug;
+ }
+ }
+
+ return $wpcom_locale;
+ }
+
+ /**
+ * Get Jetpack locale name.
+ *
+ * @param string $slug Locale slug.
+ * @return string Jetpack locale.
+ */
+ public function get_jetpack_locale( $slug = '' ) {
+ if ( ! class_exists( 'GP_Locales' ) ) {
+ if ( defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) && file_exists( JETPACK__GLOTPRESS_LOCALES_PATH ) ) {
+ require JETPACK__GLOTPRESS_LOCALES_PATH;
+ }
+ }
+
+ if ( class_exists( 'GP_Locales' ) ) {
+ $jetpack_locale_object = GP_Locales::by_field( 'slug', $slug );
+ if ( $jetpack_locale_object instanceof GP_Locale ) {
+ $jetpack_locale = $jetpack_locale_object->wp_locale ? $jetpack_locale_object->wp_locale : 'en_US';
+ }
+ }
+
+ return $jetpack_locale;
+ }
+
+ /**
+ * Install locale if not yet available.
+ *
+ * @param string $locale The new locale slug.
+ */
+ public function install_locale( $locale = '' ) {
+ if ( ! in_array( $locale, get_available_languages(), true )
+ && ! empty( $locale ) && current_user_can( 'install_languages' ) ) {
+
+ if ( ! function_exists( 'wp_download_language_pack' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/translation-install.php';
+ }
+
+ if ( ! function_exists( 'request_filesystem_credentials' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ if ( wp_can_install_language_pack() ) {
+ wp_download_language_pack( $locale );
+ load_default_textdomain( $locale );
+ }
+ }
+ }
+
+ /**
+ * Hide language dropdown on user edit form.
+ */
+ public function hide_language_dropdown() {
+ add_filter( 'get_available_languages', '__return_null' );
+ }
+
+ /**
+ * Replace language dropdown with link to WordPress.com.
+ */
+ public function replace_language_dropdown() {
+ $language_row = printf( '<tr class="user-language-wrap"><th scope="row">' );
+ $language_row .= printf(
+ '<label for="locale">%1$s<span class="dashicons dashicons-translation" aria-hidden="true"></span></label>',
+ esc_html__( 'Language', 'jetpack' )
+ );
+ $language_row .= printf( '</th><td>' );
+ $language_row .= printf(
+ '<a target="_blank" href="%1$s">%2$s</a>',
+ esc_url( 'https://wordpress.com/me/account' ),
+ esc_html__( 'Set your profile language on WordPress.com.', 'jetpack' )
+ );
+ $language_row .= printf( '</td></tr>' );
+ return $language_row;
+ }
+
+ /**
+ * Add the Notifications menu item.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function add_notifications( $wp_admin_bar ) {
+ $wp_admin_bar->add_node(
+ array(
+ 'id' => 'notes',
+ 'title' => '<span id="wpnt-notes-unread-count" class="wpnt-loading wpn-read"></span>
+ <span class="screen-reader-text">' . esc_html__( 'Notifications', 'jetpack' ) . '</span>
+ <span class="noticon noticon-bell"></span>',
+ 'meta' => array(
+ 'html' => '<div id="wpnt-notes-panel2" style="display:none" lang="' . esc_attr( $this->locale ) . '" dir="' . ( $this->is_rtl ? 'rtl' : 'ltr' ) . '">' .
+ '<div class="wpnt-notes-panel-header">' .
+ '<span class="wpnt-notes-header">' .
+ esc_html__( 'Notifications', 'jetpack' ) .
+ '</span>' .
+ '<span class="wpnt-notes-panel-link">' .
+ '</span>' .
+ '</div>' .
+ '</div>',
+ 'class' => 'menupop mb-trackable',
+ ),
+ 'parent' => 'top-secondary',
+ )
+ );
+ }
+
+ /**
+ * Add the "Reader" menu item in the root default group.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function add_reader_submenu( $wp_admin_bar ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'root-default',
+ 'id' => 'newdash',
+ 'title' => esc_html__( 'Reader', 'jetpack' ),
+ 'href' => 'https://wordpress.com/read',
+ 'meta' => array(
+ 'class' => 'mb-trackable',
+ ),
+ )
+ );
+
+ /** This filter is documented in modules/masterbar.php */
+ if ( apply_filters( 'jetpack_load_admin_menu_class', false ) ) {
+ return;
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'newdash',
+ 'id' => 'streams-header',
+ 'title' => esc_html_x(
+ 'Streams',
+ 'Title for Reader sub-menu that contains followed sites, likes, and search',
+ 'jetpack'
+ ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ $following_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-read' ),
+ 'id' => 'wp-admin-bar-followed-sites',
+ 'label' => esc_html__( 'Followed Sites', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-following-edit' ),
+ 'id' => 'wp-admin-bar-reader-followed-sites-manage',
+ 'label' => esc_html__( 'Manage', 'jetpack' ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'newdash',
+ 'id' => 'following',
+ 'title' => $following_title,
+ 'meta' => array( 'class' => 'inline-action' ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'newdash',
+ 'id' => 'discover-discover',
+ 'title' => esc_html__( 'Discover', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-discover' ),
+ 'meta' => array(
+ 'class' => 'mb-icon-spacer',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'newdash',
+ 'id' => 'discover-search',
+ 'title' => esc_html__( 'Search', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-read-search' ),
+ 'meta' => array(
+ 'class' => 'mb-icon-spacer',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'newdash',
+ 'id' => 'my-activity-my-likes',
+ 'title' => esc_html__( 'My Likes', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-activities-likes' ),
+ 'meta' => array(
+ 'class' => 'mb-icon-spacer',
+ ),
+ )
+ );
+
+ }
+
+ /**
+ * Merge 2 menu items together into 2 link tags.
+ *
+ * @param array $primary Array of menu information.
+ * @param array $secondary Array of menu information.
+ */
+ public function create_menu_item_pair( $primary, $secondary ) {
+ $primary_class = 'ab-item ab-primary mb-icon';
+ $secondary_class = 'ab-secondary';
+
+ $primary_anchor = $this->create_menu_item_anchor( $primary_class, $primary['url'], $primary['label'], $primary['id'] );
+ $secondary_anchor = $this->create_menu_item_anchor( $secondary_class, $secondary['url'], $secondary['label'], $secondary['id'] );
+
+ return $primary_anchor . $secondary_anchor;
+ }
+
+ /**
+ * Create a link tag based on information about a menu item.
+ *
+ * @param string $class Menu item CSS class.
+ * @param string $url URL you go to when clicking on the menu item.
+ * @param string $label Menu item title.
+ * @param string $id Menu item slug.
+ */
+ public function create_menu_item_anchor( $class, $url, $label, $id ) {
+ return '<a href="' . $url . '" class="' . $class . '" id="' . $id . '">' . $label . '</a>';
+ }
+
+ /**
+ * Add Secondary groups for submenu items.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function wpcom_adminbar_add_secondary_groups( $wp_admin_bar ) {
+ $wp_admin_bar->add_group(
+ array(
+ 'id' => 'root-default',
+ 'meta' => array(
+ 'class' => 'ab-top-menu',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_group(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'blog-secondary',
+ 'meta' => array(
+ 'class' => 'ab-sub-secondary',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_group(
+ array(
+ 'id' => 'top-secondary',
+ 'meta' => array(
+ 'class' => 'ab-top-secondary',
+ ),
+ )
+ );
+ }
+
+ /**
+ * Add User info menu item.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function add_me_submenu( $wp_admin_bar ) {
+ $user_id = get_current_user_id();
+ if ( empty( $user_id ) ) {
+ return;
+ }
+
+ $avatar = get_avatar( $this->user_email, 32, 'mm', '', array( 'force_display' => true ) );
+ $class = empty( $avatar ) ? 'mb-trackable' : 'with-avatar mb-trackable';
+
+ // Add the 'Me' menu.
+ $wp_admin_bar->add_menu(
+ array(
+ 'id' => 'my-account',
+ 'parent' => 'top-secondary',
+ 'title' => $avatar . '<span class="ab-text">' . esc_html__( 'Me', 'jetpack' ) . '</span>',
+ 'href' => 'https://wordpress.com/me',
+ 'meta' => array(
+ 'class' => $class,
+ ),
+ )
+ );
+
+ /** This filter is documented in modules/masterbar.php */
+ if ( apply_filters( 'jetpack_load_admin_menu_class', false ) ) {
+ return;
+ }
+
+ $id = 'user-actions';
+ $wp_admin_bar->add_group(
+ array(
+ 'parent' => 'my-account',
+ 'id' => $id,
+ )
+ );
+
+ $settings_url = Redirect::get_url( 'calypso-me-account' );
+
+ $logout_url = wp_logout_url();
+ $logout_url = add_query_arg( 'context', 'masterbar', $logout_url );
+
+ $user_info = get_avatar( $this->user_email, 128, 'mm', '', array( 'force_display' => true ) );
+ $user_info .= '<span class="display-name">' . $this->display_name . '</span>';
+ $user_info .= '<a class="username" href="https://gravatar.com/' . $this->user_login . '">@' . $this->user_login . '</a>';
+
+ $user_info .= sprintf(
+ '<div><a href="%s" class="ab-sign-out">%s</a></div>',
+ $logout_url,
+ esc_html__( 'Sign Out', 'jetpack' )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'user-info',
+ 'title' => $user_info,
+ 'meta' => array(
+ 'class' => 'user-info user-info-item',
+ 'tabindex' => -1,
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'profile-header',
+ 'title' => esc_html__( 'Profile', 'jetpack' ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'my-profile',
+ 'title' => esc_html__( 'My Profile', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-me' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'account-settings',
+ 'title' => esc_html__( 'Account Settings', 'jetpack' ),
+ 'href' => $settings_url,
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'billing',
+ 'title' => esc_html__( 'Manage Purchases', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-me-purchases' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'security',
+ 'title' => esc_html__( 'Security', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-me-security' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'notifications',
+ 'title' => esc_html__( 'Notifications', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-me-notifications' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'special-header',
+ 'title' => esc_html_x(
+ 'Special',
+ 'Title for Me sub-menu that contains Get Apps, Next Steps, and Help options',
+ 'jetpack'
+ ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'get-apps',
+ 'title' => esc_html__( 'Get Apps', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-me-get-apps' ),
+ 'meta' => array(
+ 'class' => 'mb-icon user-info-item',
+ ),
+ )
+ );
+
+ $help_link = Redirect::get_url( 'jetpack-support' );
+
+ if ( $this->site_woa ) {
+ $help_link = Redirect::get_url( 'calypso-help' );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => $id,
+ 'id' => 'help',
+ 'title' => esc_html__( 'Help', 'jetpack' ),
+ 'href' => $help_link,
+ 'meta' => array(
+ 'class' => 'mb-icon user-info-item',
+ ),
+ )
+ );
+ }
+
+ /**
+ * Add Write Menu item.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function add_write_button( $wp_admin_bar ) {
+ $current_user = wp_get_current_user();
+
+ $posting_blog_id = get_current_blog_id();
+ if ( ! is_user_member_of_blog( get_current_user_id(), get_current_blog_id() ) ) {
+ $posting_blog_id = $current_user->primary_blog;
+ }
+
+ $user_can_post = current_user_can_for_blog( $posting_blog_id, 'publish_posts' );
+
+ if ( ! $posting_blog_id || ! $user_can_post ) {
+ return;
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'top-secondary',
+ 'id' => 'ab-new-post',
+ 'href' => admin_url( 'post-new.php' ),
+ 'title' => '<span>' . esc_html__( 'Write', 'jetpack' ) . '</span>',
+ 'meta' => array(
+ 'class' => 'mb-trackable',
+ ),
+ )
+ );
+ }
+
+ /**
+ * Add the "My Site" menu item in the root default group.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ */
+ public function add_my_sites_submenu( $wp_admin_bar ) {
+ $current_user = wp_get_current_user();
+
+ $blog_name = get_bloginfo( 'name' );
+ if ( empty( $blog_name ) ) {
+ $blog_name = $this->primary_site_slug;
+ }
+
+ if ( mb_strlen( $blog_name ) > 20 ) {
+ $blog_name = mb_substr( html_entity_decode( $blog_name, ENT_QUOTES ), 0, 20 ) . '&hellip;';
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'root-default',
+ 'id' => 'blog',
+ 'title' => _n( 'My Site', 'My Sites', $this->user_site_count, 'jetpack' ),
+ 'href' => 'https://wordpress.com/sites/' . $this->primary_site_url,
+ 'meta' => array(
+ 'class' => 'my-sites mb-trackable',
+ ),
+ )
+ );
+
+ /** This filter is documented in modules/masterbar.php */
+ if ( apply_filters( 'jetpack_load_admin_menu_class', false ) ) {
+ return;
+ }
+
+ if ( $this->user_site_count > 1 ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'switch-site',
+ 'title' => esc_html__( 'Switch Site', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-sites' ),
+ )
+ );
+ } else {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'new-site',
+ 'title' => esc_html__( '+ Add New WordPress', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-start', array( 'query' => 'ref=admin-bar-logged-in' ) ),
+ )
+ );
+ }
+
+ if ( is_user_member_of_blog( $current_user->ID ) ) {
+ $blavatar = '';
+ $class = 'current-site';
+
+ if ( has_site_icon() ) {
+ $src = get_site_icon_url();
+ $blavatar = '<img class="avatar" src="' . esc_attr( $src ) . '" alt="Current site avatar">';
+ $class = 'has-blavatar';
+ }
+
+ $blog_info = '<div class="ab-site-icon">' . $blavatar . '</div>';
+ $blog_info .= '<span class="ab-site-title">' . esc_html( $blog_name ) . '</span>';
+ $blog_info .= '<span class="ab-site-description">' . esc_html( $this->primary_site_url ) . '</span>';
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'blog-info',
+ 'title' => $blog_info,
+ 'href' => esc_url( trailingslashit( $this->primary_site_url ) ),
+ 'meta' => array(
+ 'class' => $class,
+ ),
+ )
+ );
+ }
+
+ // Site Preview.
+ if ( is_admin() ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'site-view',
+ 'title' => __( 'View Site', 'jetpack' ),
+ 'href' => home_url(),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ 'target' => '_blank',
+ ),
+ )
+ );
+ }
+
+ $this->add_my_home_submenu_item( $wp_admin_bar );
+
+ // Stats.
+ if ( Jetpack::is_module_active( 'stats' ) && current_user_can( 'view_stats' ) ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'blog-stats',
+ 'title' => esc_html__( 'Stats', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-stats' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+
+ if ( current_user_can( 'manage_options' ) ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'activity',
+ 'title' => esc_html__( 'Activity', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-activity-log' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+
+ // Add Calypso plans link and plan type indicator.
+ if ( is_user_member_of_blog( $current_user->ID ) && current_user_can( 'manage_options' ) ) {
+ $plans_url = Redirect::get_url( 'calypso-plans' );
+ $label = esc_html__( 'Plan', 'jetpack' );
+ $plan = Jetpack_Plan::get();
+
+ $plan_title = $this->create_menu_item_pair(
+ array(
+ 'url' => $plans_url,
+ 'id' => 'wp-admin-bar-plan',
+ 'label' => $label,
+ ),
+ array(
+ 'url' => $plans_url,
+ 'id' => 'wp-admin-bar-plan-badge',
+ 'label' => ! empty( $plan['product_name_short'] ) ? $plan['product_name_short'] : esc_html__( 'Free', 'jetpack' ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'plan',
+ 'title' => $plan_title,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+ }
+
+ // Publish group.
+ $wp_admin_bar->add_group(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'publish',
+ )
+ );
+
+ // Publish header.
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'publish-header',
+ 'title' => esc_html_x( 'Manage', 'admin bar menu group label', 'jetpack' ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ // Pages.
+ $pages_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-pages' ),
+ 'id' => 'wp-admin-bar-edit-page',
+ 'label' => esc_html__( 'Site Pages', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-page' ),
+ 'id' => 'wp-admin-bar-new-page-badge',
+ 'label' => esc_html_x( 'Add', 'admin bar menu new item label', 'jetpack' ),
+ )
+ );
+
+ if ( ! current_user_can( 'edit_pages' ) ) {
+ $pages_title = $this->create_menu_item_anchor(
+ 'ab-item ab-primary mb-icon',
+ Redirect::get_url( 'calypso-edit-pages' ),
+ esc_html__( 'Site Pages', 'jetpack' ),
+ 'wp-admin-bar-edit-page'
+ );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'new-page',
+ 'title' => $pages_title,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+
+ // Blog Posts.
+ $posts_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-posts' ),
+ 'id' => 'wp-admin-bar-edit-post',
+ 'label' => esc_html__( 'Blog Posts', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-post' ),
+ 'id' => 'wp-admin-bar-new-post-badge',
+ 'label' => esc_html_x( 'Add', 'admin bar menu new item label', 'jetpack' ),
+ )
+ );
+
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ $posts_title = $this->create_menu_item_anchor(
+ 'ab-item ab-primary mb-icon',
+ Redirect::get_url( 'calypso-edit-posts' ),
+ esc_html__( 'Blog Posts', 'jetpack' ),
+ 'wp-admin-bar-edit-post'
+ );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'new-post',
+ 'title' => $posts_title,
+ 'meta' => array(
+ 'class' => 'inline-action mb-trackable',
+ ),
+ )
+ );
+
+ // Comments.
+ if ( current_user_can( 'moderate_comments' ) ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'comments',
+ 'title' => __( 'Comments', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-comments' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+
+ // Testimonials.
+ if ( Jetpack::is_module_active( 'custom-content-types' ) && get_option( 'jetpack_testimonial' ) ) {
+ $testimonials_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-list-jetpack-testimonial' ),
+ 'id' => 'wp-admin-bar-edit-testimonial',
+ 'label' => esc_html__( 'Testimonials', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-jetpack-testimonial' ),
+ 'id' => 'wp-admin-bar-new-testimonial',
+ 'label' => esc_html_x( 'Add', 'Button label for adding a new item via the toolbar menu', 'jetpack' ),
+ )
+ );
+
+ if ( ! current_user_can( 'edit_pages' ) ) {
+ $testimonials_title = $this->create_menu_item_anchor(
+ 'ab-item ab-primary mb-icon',
+ Redirect::get_url( 'calypso-list-jetpack-testimonial' ),
+ esc_html__( 'Testimonials', 'jetpack' ),
+ 'wp-admin-bar-edit-testimonial'
+ );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'new-jetpack-testimonial',
+ 'title' => $testimonials_title,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+ }
+
+ // Portfolio.
+ if ( Jetpack::is_module_active( 'custom-content-types' ) && get_option( 'jetpack_portfolio' ) ) {
+ $portfolios_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-list-jetpack-portfolio' ),
+ 'id' => 'wp-admin-bar-edit-portfolio',
+ 'label' => esc_html__( 'Portfolio', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-edit-jetpack-portfolio' ),
+ 'id' => 'wp-admin-bar-new-portfolio',
+ 'label' => esc_html_x( 'Add', 'Button label for adding a new item via the toolbar menu', 'jetpack' ),
+ )
+ );
+
+ if ( ! current_user_can( 'edit_pages' ) ) {
+ $portfolios_title = $this->create_menu_item_anchor(
+ 'ab-item ab-primary mb-icon',
+ Redirect::get_url( 'calypso-list-jetpack-portfolio' ),
+ esc_html__( 'Portfolio', 'jetpack' ),
+ 'wp-admin-bar-edit-portfolio'
+ );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'publish',
+ 'id' => 'new-jetpack-portfolio',
+ 'title' => $portfolios_title,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+ }
+
+ if ( current_user_can( 'edit_theme_options' ) ) {
+ // Look and Feel group.
+ $wp_admin_bar->add_group(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'look-and-feel',
+ )
+ );
+
+ // Look and Feel header.
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'look-and-feel',
+ 'id' => 'look-and-feel-header',
+ 'title' => esc_html_x( 'Personalize', 'admin bar menu group label', 'jetpack' ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ if ( is_admin() ) {
+ // In wp-admin the `return` query arg will return to that page after closing the Customizer.
+ $customizer_url = add_query_arg(
+ array(
+ 'return' => rawurlencode( site_url( $_SERVER['REQUEST_URI'] ) ),
+ ),
+ wp_customize_url()
+ );
+ } else {
+ /*
+ * On the frontend the `url` query arg will load that page in the Customizer
+ * and also return to it after closing
+ * non-home URLs won't work unless we undo domain mapping
+ * since the Customizer preview is unmapped to always have HTTPS.
+ */
+ $current_page = '//' . $this->primary_site_slug . $_SERVER['REQUEST_URI'];
+ $customizer_url = add_query_arg( array( 'url' => rawurlencode( $current_page ) ), wp_customize_url() );
+ }
+
+ $theme_title = $this->create_menu_item_pair(
+ array(
+ 'url' => $customizer_url,
+ 'id' => 'wp-admin-bar-cmz',
+ 'label' => esc_html_x( 'Customize', 'admin bar customize item label', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-themes' ),
+ 'id' => 'wp-admin-bar-themes',
+ 'label' => esc_html__( 'Themes', 'jetpack' ),
+ )
+ );
+ $meta = array(
+ 'class' => 'mb-icon',
+ 'class' => 'inline-action',
+ );
+ $href = false;
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'look-and-feel',
+ 'id' => 'themes',
+ 'title' => $theme_title,
+ 'href' => $href,
+ 'meta' => $meta,
+ )
+ );
+ }
+
+ if ( current_user_can( 'manage_options' ) ) {
+ // Configuration group.
+ $wp_admin_bar->add_group(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'configuration',
+ )
+ );
+
+ // Configuration header.
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'configuration-header',
+ 'title' => esc_html_x( 'Configure', 'admin bar menu group label', 'jetpack' ),
+ 'meta' => array(
+ 'class' => 'ab-submenu-header',
+ ),
+ )
+ );
+
+ if ( Jetpack::is_module_active( 'publicize' ) || Jetpack::is_module_active( 'sharedaddy' ) ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'sharing',
+ 'title' => esc_html__( 'Sharing', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-sharing' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+
+ $people_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-people-team' ),
+ 'id' => 'wp-admin-bar-people',
+ 'label' => esc_html__( 'People', 'jetpack' ),
+ ),
+ array(
+ 'url' => admin_url( 'user-new.php' ),
+ 'id' => 'wp-admin-bar-people-add',
+ 'label' => esc_html_x( 'Add', 'admin bar people item label', 'jetpack' ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'users-toolbar',
+ 'title' => $people_title,
+ 'href' => false,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+
+ $plugins_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-plugins' ),
+ 'id' => 'wp-admin-bar-plugins',
+ 'label' => esc_html__( 'Plugins', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-plugins-manage' ),
+ 'id' => 'wp-admin-bar-plugins-add',
+ 'label' => esc_html_x( 'Manage', 'Label for the button on the Masterbar to manage plugins', 'jetpack' ),
+ )
+ );
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'plugins',
+ 'title' => $plugins_title,
+ 'href' => false,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+
+ if ( $this->site_woa ) {
+ $domain_title = $this->create_menu_item_pair(
+ array(
+ 'url' => Redirect::get_url( 'calypso-domains' ),
+ 'id' => 'wp-admin-bar-domains',
+ 'label' => esc_html__( 'Domains', 'jetpack' ),
+ ),
+ array(
+ 'url' => Redirect::get_url( 'calypso-domains-add' ),
+ 'id' => 'wp-admin-bar-domains-add',
+ 'label' => esc_html_x( 'Add', 'Label for the button on the Masterbar to add a new domain', 'jetpack' ),
+ )
+ );
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'domains',
+ 'title' => $domain_title,
+ 'href' => false,
+ 'meta' => array(
+ 'class' => 'inline-action',
+ ),
+ )
+ );
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'blog-settings',
+ 'title' => esc_html__( 'Settings', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-settings-general' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+
+ if ( ! is_admin() ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'configuration',
+ 'id' => 'legacy-dashboard',
+ 'title' => esc_html__( 'Dashboard', 'jetpack' ),
+ 'href' => admin_url(),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+
+ // Restore dashboard menu toggle that is needed on mobile views.
+ if ( is_admin() ) {
+ $wp_admin_bar->add_menu(
+ array(
+ 'id' => 'menu-toggle',
+ 'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . esc_html__( 'Menu', 'jetpack' ) . '</span>',
+ 'href' => '#',
+ )
+ );
+ }
+
+ /**
+ * Fires when menu items are added to the masterbar "My Sites" menu.
+ *
+ * @since 5.4.0
+ */
+ do_action( 'jetpack_masterbar' );
+ }
+ }
+
+ /**
+ * Adds "My Home" submenu item to sites that are eligible.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar Admin Bar instance.
+ * @return void
+ */
+ private function add_my_home_submenu_item( &$wp_admin_bar ) {
+ if ( ! current_user_can( 'manage_options' ) || ! $this->site_woa ) {
+ return;
+ }
+
+ $wp_admin_bar->add_menu(
+ array(
+ 'parent' => 'blog',
+ 'id' => 'my-home',
+ 'title' => __( 'My Home', 'jetpack' ),
+ 'href' => Redirect::get_url( 'calypso-home' ),
+ 'meta' => array(
+ 'class' => 'mb-icon',
+ ),
+ )
+ );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/masterbar/overrides.css b/plugins/jetpack/modules/masterbar/masterbar/overrides.css
new file mode 100644
index 00000000..f1541541
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/masterbar/overrides.css
@@ -0,0 +1,142 @@
+/* Remove min-height from menu elements that was causing them to render incorrectly */
+.my-sites li {
+ min-height: unset !important;
+}
+
+/* Overwrite a core style which breaks the overflow for .my-sites in Safari */
+#wpadminbar li.menupop.my-sites {
+ overflow: visible;
+}
+
+/* Add a focus style for menu items */
+.accessible-focus #wpadminbar li.menupop a.ab-item:focus,
+.accessible-focus #wpadminbar li#wp-admin-bar-notes.menupop .ab-item:focus,
+.accessible-focus #wpadminbar ul li#wp-admin-bar-ab-new-post a:focus {
+ -webkit-box-shadow: inset 2px 2px 0 #668eaa,
+ inset -2px -2px 0 #668eaa;
+ box-shadow: inset 2px 2px 0 #668eaa,
+ inset -2px -2px 0 #668eaa;
+}
+
+/* Menu items in panels are inside `ab-empty-item` */
+.accessible-focus #wpadminbar li.menupop .ab-empty-item a.ab-item:focus,
+.accessible-focus #wpadminbar li.menupop .ab-empty-item a.ab-secondary:focus,
+.accessible-focus #wpadminbar li.menupop .ab-empty-item a.username:focus {
+ -webkit-box-shadow: inset 2px 2px 0 #2e4354,
+ inset -2px -2px 0 #2e4354;
+ box-shadow: inset 2px 2px 0 #2e4354,
+ inset -2px -2px 0 #2e4354;
+}
+
+.accessible-focus #wpadminbar .quicklinks li#wp-admin-bar-my-account #wp-admin-bar-user-info .ab-sign-out:focus {
+ -webkit-box-shadow: inset 2px 2px 0 #2e4354,
+ inset -2px -2px 0 #2e4354 !important;
+ box-shadow: inset 2px 2px 0 #2e4354,
+ inset -2px -2px 0 #2e4354 !important;
+}
+
+.accessible-focus #wpadminbar:not(.mobile) .ab-top-menu > li > .ab-item:focus {
+ background: transparent;
+}
+
+/* Hide the panels initially */
+#wpadminbar li#wp-admin-bar-blog.menupop > .ab-sub-wrapper, /* My Sites */
+#wpadminbar li#wp-admin-bar-newdash.menupop > .ab-sub-wrapper, /* Reader */
+#wpadminbar li#wp-admin-bar-my-account.menupop > .ab-sub-wrapper, /* Me */
+#wpadminbar li#wp-admin-bar-notes.menupop > #wpnt-notes-panel2 { /* Notifications */
+ display: block !important;
+}
+
+/* Change notification icon the match the one on WP.com */
+#wp-admin-bar-notes .noticon-bell:before {
+ content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+") !important;
+}
+#wp-admin-bar-notes.active .noticon-bell:before {
+ content: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cmVjdCB4PSIwIiBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz48Zz48cGF0aCBmaWxsPSIjMjMyODJkIiBkPSJNNi4xNCAxNC45N2wyLjgyOCAyLjgyN2MtLjM2Mi4zNjItLjg2Mi41ODYtMS40MTQuNTg2LTEuMTA1IDAtMi0uODk1LTItMiAwLS41NTIuMjI0LTEuMDUyLjU4Ni0xLjQxNHptOC44NjcgNS4zMjRMMTQuMyAyMSAzIDkuN2wuNzA2LS43MDcgMS4xMDIuMTU3Yy43NTQuMTA4IDEuNjktLjEyMiAyLjA3Ny0uNTFsMy44ODUtMy44ODRjMi4zNC0yLjM0IDYuMTM1LTIuMzQgOC40NzUgMHMyLjM0IDYuMTM1IDAgOC40NzVsLTMuODg1IDMuODg2Yy0uMzg4LjM4OC0uNjE4IDEuMzIzLS41MSAyLjA3N2wuMTU3IDEuMXoiLz48L2c+PC9zdmc+") !important;
+}
+
+/* Fit width of sign out button to content */
+#wpadminbar .quicklinks li#wp-admin-bar-my-account #wp-admin-bar-user-info .ab-sign-out {
+ display: inline-block;
+}
+
+/* Move the admin menu toggle in Gutenberg - https://github.com/Automattic/jetpack/issues/12320 */
+.jetpack-masterbar.post-new-php.block-editor-page #wpadminbar #wp-admin-bar-ab-new-post {
+ display: none;
+}
+
+.jetpack-masterbar.post-new-php.block-editor-page #wpadminbar #wp-admin-bar-menu-toggle {
+ top: -4px;
+ position: relative;
+}
+
+.jetpack-masterbar.post-new-php.block-editor-page #wpadminbar #wp-admin-bar-menu-toggle .ab-icon:before {
+ color: #fff !important;
+ font-size: 28px;
+}
+
+.jetpack-masterbar #wpadminbar #wp-admin-bar-recovery-mode {
+ background-color: #d63638;
+ color: #fff;
+ margin-right: 1em;
+}
+#wpadminbar #wp-admin-bar-jetpack-scan-notice {
+ margin-right: 1em;
+}
+@media screen and (max-width: 959px ) {
+ #wpadminbar #wp-admin-bar-jetpack-scan-notice {
+ width:32px;
+ }
+ #wpadminbar #wp-admin-bar-jetpack-scan-notice a { color: transparent!important;}
+}
+
+@media screen and (max-width: 480px) {
+ .jetpack-masterbar.post-new-php.block-editor-page #wp-toolbar ul li {
+ flex: 1;
+ width: auto !important;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar ul#wp-admin-bar-root-default {
+ width: 60%;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar ul#wp-admin-bar-top-secondary {
+ width: 40%;
+ }
+
+ .wp-admin.jetpack-masterbar.post-new-php.block-editor-page .wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle {
+ left: 0;
+ }
+}
+
+@media screen and (max-width: 782px) {
+ .wp-admin.jetpack-masterbar.post-new-php.block-editor-page .wp-responsive-open #wpadminbar #wp-admin-bar-menu-toggle {
+ left: 0 !important;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wp-toolbar,
+ .jetpack-masterbar.post-new-php.block-editor-page #wp-toolbar ul {
+ display: flex;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar ul#wp-admin-bar-root-default {
+ flex-grow: 1;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar li#wp-admin-bar-menu-toggle {
+ order: 1;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar li#wp-admin-bar-blog {
+ order: 2;
+ }
+
+ .jetpack-masterbar.post-new-php.block-editor-page #wpadminbar li#wp-admin-bar-newdash {
+ order: 3;
+ }
+
+ #wpadminbar #wp-admin-bar-jetpack-scan-notice,
+ .jetpack-masterbar #wpadminbar #wp-admin-bar-recovery-mode {
+ display: none;
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/masterbar/tracks-events.js b/plugins/jetpack/modules/masterbar/masterbar/tracks-events.js
new file mode 100644
index 00000000..7013679d
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/masterbar/tracks-events.js
@@ -0,0 +1,218 @@
+( function () {
+ 'use strict';
+
+ var eventName = 'masterbar_click';
+
+ var linksTracksEvents = {
+ //top level items
+ 'wp-admin-bar-blog': 'my_sites',
+ 'wp-admin-bar-newdash': 'reader',
+ 'wp-admin-bar-ab-new-post': 'write_button',
+ 'wp-admin-bar-my-account': 'my_account',
+ 'wp-admin-bar-notes': 'notifications',
+ //my sites - top items
+ 'wp-admin-bar-switch-site': 'my_sites_switch_site',
+ 'wp-admin-bar-blog-info': 'my_sites_blog_info',
+ 'wp-admin-bar-site-view': 'my_sites_view_site',
+ 'wp-admin-bar-my-home': 'my_sites_my_home',
+ 'wp-admin-bar-blog-stats': 'my_sites_blog_stats',
+ 'wp-admin-bar-activity': 'my_sites_activity',
+ 'wp-admin-bar-plan': 'my_sites_plan',
+ 'wp-admin-bar-plan-badge': 'my_sites_plan_badge',
+ //my sites - manage
+ 'wp-admin-bar-edit-page': 'my_sites_manage_site_pages',
+ 'wp-admin-bar-new-page-badge': 'my_sites_manage_add_page',
+ 'wp-admin-bar-edit-post': 'my_sites_manage_blog_posts',
+ 'wp-admin-bar-new-post-badge': 'my_sites_manage_add_new_post',
+ 'wp-admin-bar-edit-attachment': 'my_sites_manage_media',
+ 'wp-admin-bar-new-attachment-badge': 'my_sites_manage_add_media',
+ 'wp-admin-bar-comments': 'my_sites_manage_comments',
+ 'wp-admin-bar-edit-testimonial': 'my_sites_manage_testimonials',
+ 'wp-admin-bar-new-testimonial': 'my_sites_manage_add_testimonial',
+ 'wp-admin-bar-edit-portfolio': 'my_sites_manage_portfolio',
+ 'wp-admin-bar-new-portfolio': 'my_sites_manage_add_portfolio',
+ //my sites - personalize
+ 'wp-admin-bar-themes': 'my_sites_personalize_themes',
+ 'wp-admin-bar-cmz': 'my_sites_personalize_themes_customize',
+ //my sites - configure
+ 'wp-admin-bar-sharing': 'my_sites_configure_sharing',
+ 'wp-admin-bar-people': 'my_sites_configure_people',
+ 'wp-admin-bar-people-add': 'my_sites_configure_people_add_button',
+ 'wp-admin-bar-plugins': 'my_sites_configure_plugins',
+ 'wp-admin-bar-plugins-add': 'my_sites_configure_manage_plugins',
+ 'wp-admin-bar-blog-settings': 'my_sites_configure_settings',
+ //reader
+ 'wp-admin-bar-followed-sites': 'reader_followed_sites',
+ 'wp-admin-bar-reader-followed-sites-manage': 'reader_manage_followed_sites',
+ 'wp-admin-bar-discover-discover': 'reader_discover',
+ 'wp-admin-bar-discover-search': 'reader_search',
+ 'wp-admin-bar-my-activity-my-likes': 'reader_my_likes',
+ //account
+ 'wp-admin-bar-user-info': 'my_account_user_name',
+ // account - profile
+ 'wp-admin-bar-my-profile': 'my_account_profile_my_profile',
+ 'wp-admin-bar-account-settings': 'my_account_profile_account_settings',
+ 'wp-admin-bar-billing': 'my_account_profile_manage_purchases',
+ 'wp-admin-bar-security': 'my_account_profile_security',
+ 'wp-admin-bar-notifications': 'my_account_profile_notifications',
+ //account - special
+ 'wp-admin-bar-get-apps': 'my_account_special_get_apps',
+ 'wp-admin-bar-next-steps': 'my_account_special_next_steps',
+ 'wp-admin-bar-help': 'my_account_special_help',
+ };
+
+ var notesTracksEvents = {
+ openSite: function ( data ) {
+ return {
+ clicked: 'masterbar_notifications_panel_site',
+ site_id: data.siteId,
+ };
+ },
+ openPost: function ( data ) {
+ return {
+ clicked: 'masterbar_notifications_panel_post',
+ site_id: data.siteId,
+ post_id: data.postId,
+ };
+ },
+ openComment: function ( data ) {
+ return {
+ clicked: 'masterbar_notifications_panel_comment',
+ site_id: data.siteId,
+ post_id: data.postId,
+ comment_id: data.commentId,
+ };
+ },
+ };
+
+ function parseJson( s, defaultValue ) {
+ try {
+ return JSON.parse( s );
+ } catch ( e ) {
+ return defaultValue;
+ }
+ }
+
+ // Element.prototype.matches as a standalone function, with old browser fallback
+ function matches( node, selector ) {
+ if ( ! node ) {
+ return undefined;
+ }
+
+ if ( ! Element.prototype.matches && ! Element.prototype.msMatchesSelector ) {
+ throw new Error( 'Unsupported browser' );
+ }
+
+ return Element.prototype.matches
+ ? node.matches( selector )
+ : node.msMatchesSelector( selector );
+ }
+
+ // Element.prototype.closest as a standalone function, with old browser fallback
+ function closest( node, selector ) {
+ if ( ! node ) {
+ return undefined;
+ }
+
+ if ( Element.prototype.closest ) {
+ return node.closest( selector );
+ }
+
+ do {
+ if ( matches( node, selector ) ) {
+ return node;
+ }
+
+ node = node.parentElement || node.parentNode;
+ } while ( node !== null && node.nodeType === 1 );
+
+ return null;
+ }
+
+ function createTrackableLinkEventHandler() {
+ return function ( e ) {
+ if ( ! window.jpTracksAJAX || typeof window.jpTracksAJAX.record_ajax_event !== 'function' ) {
+ return;
+ }
+
+ var target = e.target;
+ var parent = closest( target, 'li' );
+
+ if ( ! matches( target, 'a' ) ) {
+ target = closest( target, 'a' );
+ }
+
+ if ( ! parent || ! target ) {
+ return;
+ }
+
+ var trackingId = target.getAttribute( 'ID' ) || parent.getAttribute( 'ID' );
+
+ if ( ! Object.prototype.hasOwnProperty.call( linksTracksEvents, trackingId ) ) {
+ return;
+ }
+ var eventProps = { clicked: linksTracksEvents[ trackingId ] };
+
+ if ( parent.classList.contains( 'menupop' ) ) {
+ window.jpTracksAJAX.record_ajax_event( eventName, 'click', eventProps );
+ } else {
+ e.preventDefault();
+ window.jpTracksAJAX
+ .record_ajax_event( eventName, 'click', eventProps )
+ .always( function () {
+ window.location = target.getAttribute( 'href' );
+ } );
+ }
+ };
+ }
+
+ function init() {
+ var trackableLinkSelector =
+ '.mb-trackable .ab-item:not(div),' +
+ '#wp-admin-bar-notes .ab-item,' +
+ '#wp-admin-bar-user-info .ab-item,' +
+ '.mb-trackable .ab-secondary';
+
+ var trackableLinks = document.querySelectorAll( trackableLinkSelector );
+ for ( var i = 0; i < trackableLinks.length; i++ ) {
+ var link = trackableLinks[ i ];
+ var handler = createTrackableLinkEventHandler();
+
+ link.addEventListener( 'click', handler );
+ link.addEventListener( 'touchstart', handler );
+ }
+ }
+
+ if ( document.readyState === 'loading' ) {
+ document.addEventListener( 'DOMContentLoaded', init );
+ } else {
+ init();
+ }
+
+ // listen for postMessage events from the notifications iframe
+ window.addEventListener(
+ 'message',
+ function ( event ) {
+ if ( ! window.jpTracksAJAX || typeof window.jpTracksAJAX.record_ajax_event !== 'function' ) {
+ return;
+ }
+
+ if ( event.origin !== 'https://widgets.wp.com' ) {
+ return;
+ }
+
+ var data = typeof event.data === 'string' ? parseJson( event.data, {} ) : event.data;
+ if ( data.type !== 'notesIframeMessage' ) {
+ return;
+ }
+
+ var eventData = notesTracksEvents[ data.action ];
+ if ( ! eventData ) {
+ return;
+ }
+
+ window.jpTracksAJAX.record_ajax_event( eventName, 'click', eventData( data ) );
+ },
+ false
+ );
+} )();
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/class-atomic-additional-css-manager.php b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-atomic-additional-css-manager.php
new file mode 100644
index 00000000..5f6893d8
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-atomic-additional-css-manager.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * WPORG_Additional_CSS_Manager file
+ *
+ * Responsible with replacing the Core Additional CSS section with an upgrade nudge on Atomic.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class Atomic_Additional_CSS_Manager
+ *
+ * @package Automattic\Jetpack\Dashboard_Customizations
+ */
+class Atomic_Additional_CSS_Manager {
+
+ /**
+ * The site domain.
+ *
+ * @var string
+ */
+ private $domain;
+
+ /**
+ * Atomic_Additional_CSS_Manager constructor.
+ *
+ * @param string $domain the Site domain.
+ */
+ public function __construct( $domain ) {
+ $this->domain = $domain;
+ }
+
+ /**
+ * Replace the Additional CSS section from Customiz¡er with an upgrade nudge.
+ *
+ * @param \WP_Customize_Manager $wp_customize_manager Core customize manager.
+ */
+ public function register_nudge( \WP_Customize_Manager $wp_customize_manager ) {
+
+ $nudge = new CSS_Customizer_Nudge(
+ $this->get_nudge_url(),
+ __( 'Purchase a Business Plan to<br> activate CSS customization', 'jetpack' )
+ );
+
+ $wp_customize_manager->remove_control( 'custom_css' );
+ $wp_customize_manager->remove_section( 'custom_css' );
+
+ $nudge->customize_register_nudge( $wp_customize_manager );
+ }
+
+ /**
+ * Get the Nudge URL.
+ *
+ * @return string
+ */
+ private function get_nudge_url() {
+ return '/checkout/' . $this->domain . '/business';
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-customizer-nudge.php b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-customizer-nudge.php
new file mode 100644
index 00000000..ad15270f
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-customizer-nudge.php
@@ -0,0 +1,131 @@
+<?php
+/**
+ * CSS_Customizer_Nudge file.
+ * CSS Nudge implementation for Atomic and WPCOM.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class WPCOM_CSS_Customizer
+ *
+ * @package Automattic\Jetpack\Dashboard_Customizations
+ */
+class CSS_Customizer_Nudge {
+ /**
+ * Call to Action URL.
+ *
+ * @var string
+ */
+ private $cta_url;
+
+ /**
+ * The nudge message.
+ *
+ * @var string
+ */
+ private $nudge_copy;
+
+ /**
+ * The name of the control in Customizer.
+ *
+ * @var string
+ */
+ private $control_name;
+
+ /**
+ * CSS_Customizer_Nudge constructor.
+ *
+ * @param string $cta_url The URL to the plans.
+ * @param string $nudge_copy The nudge text.
+ * @param string $control_name The slug prefix of the nudge.
+ */
+ public function __construct( $cta_url, $nudge_copy, $control_name = 'custom_css' ) {
+ $this->cta_url = $cta_url;
+ $this->nudge_copy = $nudge_copy;
+ $this->control_name = $control_name;
+ }
+
+ /**
+ * Register the assets required for the CSS nudge page from the Customizer.
+ */
+ public function customize_controls_enqueue_scripts_nudge() {
+ \wp_enqueue_script(
+ 'additional-css-js',
+ plugins_url( 'js/additional-css.js', __FILE__ ),
+ array(),
+ JETPACK__VERSION,
+ true
+ );
+ \wp_enqueue_style(
+ 'additional-css',
+ plugins_url( 'css/additional-css.css', __FILE__ ),
+ array(),
+ JETPACK__VERSION
+ );
+ }
+
+ /**
+ * Register the CSS nudge in the Customizer.
+ *
+ * @param \WP_Customize_Manager $wp_customize The customize manager.
+ */
+ public function customize_register_nudge( \WP_Customize_Manager $wp_customize ) {
+ // Show a nudge in place of the normal CSS section.
+ \add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue_scripts_nudge' ) );
+
+ $wp_customize->add_setting(
+ $this->control_name . '[dummy_setting]',
+ array(
+ 'type' => $this->control_name . '_dummy_setting',
+ 'default' => '',
+ 'transport' => 'refresh',
+ )
+ );
+
+ $wp_customize->add_section( $this->create_css_nudge_section( $wp_customize ) );
+
+ $wp_customize->add_control( $this->create_css_nudge_control( $wp_customize ) );
+ }
+
+ /**
+ * Create a nudge control object.
+ *
+ * @param \WP_Customize_Manager $wp_customize The Core Customize Manager.
+ *
+ * @return CSS_Nudge_Customize_Control
+ */
+ public function create_css_nudge_control( \WP_Customize_Manager $wp_customize ) {
+ return new CSS_Nudge_Customize_Control(
+ $wp_customize,
+ $this->control_name . '_control',
+ array(
+ 'cta_url' => $this->cta_url,
+ 'nudge_copy' => $this->nudge_copy,
+ 'label' => __( 'Custom CSS', 'jetpack' ),
+ 'section' => $this->control_name,
+ 'settings' => $this->control_name . '[dummy_setting]',
+ )
+ );
+ }
+
+ /**
+ * Create the nudge section.
+ *
+ * @param \WP_Customize_Manager $wp_customize The core Customize Manager.
+ *
+ * @return \WP_Customize_Section
+ */
+ public function create_css_nudge_section( \WP_Customize_Manager $wp_customize ) {
+ return new \WP_Customize_Section(
+ $wp_customize,
+ $this->control_name,
+ array(
+ 'title' => __( 'Additional CSS', 'jetpack' ),
+ 'priority' => 200,
+ )
+ );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-nudge-customize-control.php b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-nudge-customize-control.php
new file mode 100644
index 00000000..ad087e12
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-css-nudge-customize-control.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * CSS_Nudge_Customize_Control file.
+ * CSS Nudge implementation for Atomic and WPCOM.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class CSS_Nudge_Customize_Control
+ *
+ * @package Automattic\Jetpack\Dashboard_Customizations
+ */
+class CSS_Nudge_Customize_Control extends \WP_Customize_Control {
+
+ /**
+ * The type of the nudge.
+ *
+ * @var string
+ */
+ public $type = 'cssNudge';
+
+ /**
+ * The Call to Action URL.
+ *
+ * @var string
+ */
+ public $cta_url;
+
+ /**
+ * The nudge text displayed.
+ *
+ * @var string
+ */
+ public $nudge_copy;
+
+ /**
+ * Render the nudge on the page.
+ */
+ public function render_content() {
+ $cta_url = $this->cta_url;
+ $nudge_copy = $this->nudge_copy;
+ $nudge_button_copy = __( 'Upgrade Now', 'jetpack' );
+
+ echo '<div class="nudge-container">
+ <p>
+ ' . wp_kses( $nudge_copy, array( 'br' => array() ) ) . '
+ </p>
+ <div class="button-container">
+ <button type="button" class="button-primary navigate-to" data-navigate-to-page="' . esc_url( $cta_url ) . '">' . esc_html( $nudge_button_copy ) . '</button>
+ </div>
+ </div>';
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/class-wpcom-additional-css-manager.php b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-wpcom-additional-css-manager.php
new file mode 100644
index 00000000..51fd3859
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/class-wpcom-additional-css-manager.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * WPCOM_Additional_CSS_Manager file
+ *
+ * Is responsible with registering the Additional CSS section in WPCOM.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class WPCOM_Disable_Additional_CSS
+ *
+ * @package Automattic\Jetpack\Dashboard_Customizations
+ */
+class WPCOM_Additional_CSS_Manager {
+
+ /**
+ * The site domain.
+ *
+ * @var string
+ */
+ private $domain;
+
+ /**
+ * WPCOM_Additional_CSS_Manager constructor.
+ *
+ * @param string $domain the Site domain.
+ */
+ public function __construct( $domain ) {
+ $this->domain = $domain;
+ }
+
+ /**
+ * Register the Additional CSS nudge.
+ *
+ * @param \WP_Customize_Manager $wp_customize_manager The core customize manager.
+ */
+ public function register_nudge( \WP_Customize_Manager $wp_customize_manager ) {
+ $nudge = new CSS_Customizer_Nudge(
+ $this->get_nudge_url(),
+ __( 'Purchase a Premium Plan to<br> activate CSS customization', 'jetpack' ),
+ 'jetpack_custom_css'
+ );
+
+ $nudge->customize_register_nudge( $wp_customize_manager );
+ }
+
+ /**
+ * Get the nudge URL in WPCOM.
+ *
+ * @return string
+ */
+ private function get_nudge_url() {
+ return '/checkout/' . $this->domain . '/premium';
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/css/additional-css.css b/plugins/jetpack/modules/masterbar/nudges/additional-css/css/additional-css.css
new file mode 100644
index 00000000..14fd9af9
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/css/additional-css.css
@@ -0,0 +1,13 @@
+.customize-control-cssNudge .nudge-container {
+ width: 100%;
+ padding: 50px 0;
+}
+
+.customize-control-cssNudge .nudge-container p {
+ text-align: center;
+}
+
+.customize-control-cssNudge .nudge-container .button-container {
+ margin-top: 20px;
+ text-align: center;
+}
diff --git a/plugins/jetpack/modules/masterbar/nudges/additional-css/js/additional-css.js b/plugins/jetpack/modules/masterbar/nudges/additional-css/js/additional-css.js
new file mode 100644
index 00000000..bb804bf5
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/additional-css/js/additional-css.js
@@ -0,0 +1,58 @@
+( function ( $ ) {
+ 'use strict';
+
+ var cssNudge = {
+ init: function () {
+ this.clickifyNavigateToButtons();
+ },
+
+ clickifyNavigateToButtons: function () {
+ var navButton = document.querySelector( '.navigate-to' );
+ if ( ! navButton ) {
+ return;
+ }
+
+ navButton.addEventListener( 'click', function () {
+ // Get destination.
+ var destination = this.getAttribute( 'data-navigate-to-page' );
+
+ if ( ! destination ) {
+ return;
+ }
+
+ // Fire Tracks click event.
+ window._tkq = window._tkq || [];
+ window._tkq.push( [
+ 'recordEvent',
+ 'calypso_upgrade_nudge_cta_click',
+ {
+ cta_name: 'customizer_css',
+ },
+ ] );
+
+ // Navigate to a different page.
+ if (
+ window.location.search.match( /calypso=true/ ) &&
+ window.parent.location !== window.location
+ ) {
+ // Calypso.
+ window.top.postMessage(
+ JSON.stringify( {
+ calypso: true,
+ command: 'navigateTo',
+ destination: destination,
+ } ),
+ '*'
+ );
+ } else {
+ // Non-Calypso.
+ window.location = 'https://wordpress.com' + destination;
+ }
+ } );
+ },
+ };
+
+ $( document ).ready( function () {
+ cssNudge.init();
+ } );
+} )( jQuery );
diff --git a/plugins/jetpack/modules/masterbar/nudges/bootstrap.php b/plugins/jetpack/modules/masterbar/nudges/bootstrap.php
new file mode 100644
index 00000000..1e4d17f4
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/nudges/bootstrap.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * Bootstrap file for the nudges.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Status\Host;
+
+/**
+ * The WP_Customize_Control core class is loaded only on customize_register.
+ *
+ * @param \WP_Customize_Manager $customize_manager Core customize manager.
+ */
+function register_css_nudge_control( \WP_Customize_Manager $customize_manager ) {
+ require_once __DIR__ . '/additional-css/class-css-nudge-customize-control.php';
+ require_once __DIR__ . '/additional-css/class-css-customizer-nudge.php';
+
+ $domain = ( new Status() )->get_site_suffix();
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once __DIR__ . '/additional-css/class-wpcom-additional-css-manager.php';
+ $manager = new WPCOM_Additional_CSS_Manager( $domain );
+ } elseif ( ( new Host() )->is_woa_site() ) {
+ require_once __DIR__ . '/additional-css/class-atomic-additional-css-manager.php';
+ $manager = new Atomic_Additional_CSS_Manager( $domain );
+ }
+
+ if ( ! isset( $manager ) ) {
+ return;
+ }
+
+ $manager->register_nudge( $customize_manager );
+}
+
+/**
+ * Load the bootstrap on init action.
+ *
+ * We need to load on init because otherwise the filter will not be set to true in WPCOM (since the add_filter is set on init).
+ */
+function load_bootstrap_on_init() {
+
+ /**
+ * Disable Additional CSS section from Customizer in WPCOM and Atomic and replace it with a nudge.
+ *
+ * @module masterbar
+ *
+ * @since 9.9.0
+ *
+ * @param bool
+ */
+ if ( \apply_filters( 'jetpack_customize_enable_additional_css_nudge', false ) ) {
+ \add_action( 'customize_register', __NAMESPACE__ . '\register_css_nudge_control' );
+ }
+}
+
+add_action( 'init', __NAMESPACE__ . '\load_bootstrap_on_init' );
diff --git a/plugins/jetpack/modules/masterbar/profile-edit/bootstrap.php b/plugins/jetpack/modules/masterbar/profile-edit/bootstrap.php
new file mode 100644
index 00000000..acc7f336
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/profile-edit/bootstrap.php
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Bootstrap the WP.com User profile edit restriction.
+ *
+ * @package automattic\jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+
+require_once __DIR__ . '/profile-edit.php';
+require_once __DIR__ . '/class-wpcom-user-profile-fields-revert.php';
+
+/**
+ * Prevent WP.com user profile fields (first_name, last_name, display_name, description) to be updated.
+ */
+function load_the_user_profile_info_revert() {
+ new WPCOM_User_Profile_Fields_Revert( new Connection_Manager( 'jetpack' ) );
+}
+
+\add_action( 'load-profile.php', __NAMESPACE__ . '\load_the_user_profile_info_revert' );
+\add_action( 'load-user-edit.php', __NAMESPACE__ . '\load_the_user_profile_info_revert' );
diff --git a/plugins/jetpack/modules/masterbar/profile-edit/class-wpcom-user-profile-fields-revert.php b/plugins/jetpack/modules/masterbar/profile-edit/class-wpcom-user-profile-fields-revert.php
new file mode 100644
index 00000000..3beffd7b
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/profile-edit/class-wpcom-user-profile-fields-revert.php
@@ -0,0 +1,169 @@
+<?php
+/**
+ * Manage User profile fields.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+
+/**
+ * Responsible with preventing the back-end default implementation to save the fields that are managed on WP.com profiles.
+ *
+ * Class Profile_Edit_Filter_Fields
+ */
+class WPCOM_User_Profile_Fields_Revert {
+
+ /**
+ * Jetpack connection manager object.
+ *
+ * @var Connection_Manager
+ */
+ private $connection_manager;
+
+ /**
+ * Profile_Edit_Filter_Fields constructor.
+ *
+ * @param Connection_Manager $connection_manager The connection manager.
+ */
+ public function __construct( Connection_Manager $connection_manager ) {
+ $this->connection_manager = $connection_manager;
+
+ \add_filter( 'wp_pre_insert_user_data', array( $this, 'revert_user_data_on_wp_admin_profile_update' ), 10, 3 );
+ \add_filter( 'insert_user_meta', array( $this, 'revert_user_meta_on_wp_admin_profile_change' ), 10, 3 );
+
+ /**
+ * Core sends two E-mail notifications that have to be disabled:
+ * - To the existing e-mail address
+ * - To the new email address
+ */
+ \add_filter( 'send_email_change_email', array( $this, 'disable_send_email_change_email' ), 10, 3 );
+ \add_action( 'personal_options_update', array( $this, 'disable_email_notification' ), 1, 1 );
+ }
+
+ /**
+ * Filter the built-in user profile fields.
+ *
+ * @param array $data {
+ * Values and keys for the user.
+ *
+ * @type string $user_login The user's login. Only included if $update == false
+ * @type string $user_pass The user's password.
+ * @type string $user_email The user's email.
+ * @type string $user_url The user's url.
+ * @type string $user_nicename The user's nice name. Defaults to a URL-safe version of user's login
+ * @type string $display_name The user's display name.
+ * @type string $user_registered MySQL timestamp describing the moment when the user registered. Defaults to
+ * the current UTC timestamp.
+ * }
+ *
+ * @param bool $update Whether the user is being updated rather than created.
+ * @param int|null $id ID of the user to be updated, or NULL if the user is being created.
+ *
+ * @return array
+ */
+ public function revert_user_data_on_wp_admin_profile_update( $data, $update, $id ) {
+
+ // bail if the id is null, meaning that this was triggered in the context of user create.
+ // bail if the user is not connected (e.g. non-WP.com users or disconnected users).
+ if ( ! $update || null === $id || ! $this->connection_manager->is_user_connected( $id ) ) {
+ return $data;
+ }
+
+ /**
+ * Revert the data in the form submission with the data from the database.
+ */
+ $user = \get_userdata( $id );
+
+ /**
+ * E-mail has a different flow for changing it's value. It stores it in an option until the user confirms it via e-mail.
+ * Based on this, it displays in the UI a section mentioning the e-mail pending change.
+ * We hide the entire section, but we should also clean it up just in case.
+ */
+ \delete_user_meta( $id, '_new_email' );
+
+ $data['user_email'] = $user->user_email;
+ $data['user_url'] = $user->user_url;
+ $data['user_nicename'] = $user->user_nicename;
+ $data['display_name'] = $user->display_name;
+
+ return $data;
+ }
+
+ /**
+ * Revert the first_name, last_name and description since this is managed by WP.com.
+ *
+ * @param array $meta {
+ * Default meta values and keys for the user.
+ *
+ * @type string $nickname The user's nickname. Default is the user's username.
+ * @type string $first_name The user's first name.
+ * @type string $last_name The user's last name.
+ * @type string $description The user's description.
+ * @type string $rich_editing Whether to enable the rich-editor for the user. Default 'true'.
+ * @type string $syntax_highlighting Whether to enable the rich code editor for the user. Default 'true'.
+ * @type string $comment_shortcuts Whether to enable keyboard shortcuts for the user. Default 'false'.
+ * @type string $admin_color The color scheme for a user's admin screen. Default 'fresh'.
+ * @type int|bool $use_ssl Whether to force SSL on the user's admin area. 0|false if SSL
+ * is not forced.
+ * @type string $show_admin_bar_front Whether to show the admin bar on the front end for the user.
+ * Default 'true'.
+ * @type string $locale User's locale. Default empty.
+ * }
+ * @param \WP_User $user User object.
+ * @param bool $update Whether the user is being updated rather than created.
+ *
+ * @return array
+ */
+ public function revert_user_meta_on_wp_admin_profile_change( $meta, $user, $update ) {
+
+ // bail if not in update context.
+ if ( ! $update || ! $this->connection_manager->is_user_connected( $user->ID ) ) {
+ return $meta;
+ }
+
+ /**
+ * Revert the data in the form submission with the data from the database.
+ */
+ $database_user = \get_userdata( $user->ID );
+
+ $meta['first_name'] = $database_user->first_name;
+ $meta['last_name'] = $database_user->last_name;
+ $meta['description'] = $database_user->description;
+ $meta['nickname'] = $database_user->nickname;
+
+ return $meta;
+ }
+
+ /**
+ * Disable the e-mail notification.
+ *
+ * @param bool $send Whether to send or not the email.
+ * @param array $user User data.
+ */
+ public function disable_send_email_change_email( $send, $user ) {
+ if ( ! isset( $user['ID'] ) || ! $this->connection_manager->is_user_connected( $user['ID'] ) ) {
+ return $send;
+ }
+
+ return false;
+ }
+
+ /**
+ * Disable notification on E-mail changes for Atomic WP-Admin Edit Profile. (for WP.com we use a different section for changing the E-mail).
+ *
+ * We need this because WP.org uses a custom flow for E-mail changes.
+ *
+ * @param int $user_id The id of the user that's updated.
+ */
+ public function disable_email_notification( $user_id ) {
+ // Don't remove the notification for non-WP.com connected users.
+ if ( ! $this->connection_manager->is_user_connected( $user_id ) ) {
+ return;
+ }
+
+ \remove_action( 'personal_options_update', 'send_confirmation_on_profile_email' );
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/profile-edit/profile-edit.php b/plugins/jetpack/modules/masterbar/profile-edit/profile-edit.php
new file mode 100644
index 00000000..0e9e8c0c
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/profile-edit/profile-edit.php
@@ -0,0 +1,65 @@
+<?php
+/**
+ * WP-Admin Profile edit.
+ *
+ * @package Jetpack
+ */
+
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+
+/**
+ * Hides profile fields for WordPress.com connected users.
+ *
+ * @param WP_User $user The current WP_User object.
+ */
+function jetpack_masterbar_hide_profile_fields( $user ) {
+ $connection_manager = new Connection_Manager( 'jetpack' );
+ if ( ! $connection_manager->is_user_connected( $user->ID ) ) {
+ // If this is a local user, show the default UX.
+ return;
+ }
+ $wp_kses_rule = array(
+ 'a' => array(
+ 'href' => array(),
+ 'rel' => array(),
+ 'target' => array(),
+ ),
+ );
+ // Since there is no hook for altering profile fields, we will use CSS and JS.
+ $name_info_wpcom_link_message = sprintf(
+ /* translators: 1 link */
+ __( 'WordPress.com users can change their profile’s basic details ( i.e., First Name, Last Name, Display Name, About ) in <a href="%1$s" target="_blank" rel="noopener noreferrer">WordPress.com Profile settings.</a>', 'jetpack' ),
+ 'https://wordpress.com/me'
+ );
+ $contact_info_wpcom_link_message = sprintf(
+ /* translators: 1 link */
+ __( 'WordPress.com users can change their profile’s email & website address in <a href="%1$s" target="_blank" rel="noopener noreferrer">WordPress.com Account settings.</a>', 'jetpack' ),
+ 'https://wordpress.com/me/account'
+ );
+ ?>
+ <script>
+ document.addEventListener( 'DOMContentLoaded', function() {
+ // Field to be hidden.
+ var fieldsToHide = '.user-first-name-wrap, .user-last-name-wrap, .user-nickname-wrap, .user-display-name-wrap, .user-email-wrap, .user-url-wrap, .user-description-wrap';
+ document.querySelectorAll( fieldsToHide ).forEach( element => element.classList.add( 'hidden' ) );
+
+ // Name Info.
+ var nameInfo = document.querySelector( '.user-first-name-wrap' ).closest( 'table' );
+ var nameInfoWpcomLink = document.createElement( 'div' );
+ nameInfoWpcomLink.className = 'notice inline notice-large notice-warning';
+ nameInfoWpcomLink.innerHTML = '<?php echo wp_kses( $name_info_wpcom_link_message, $wp_kses_rule ); ?>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ nameInfo.parentNode.insertBefore( nameInfoWpcomLink, nameInfo.nextSibling );
+
+ // Contact Info.
+ var contactInfo = document.querySelector( '.user-email-wrap' ).closest( 'table' );
+ var contactInfoWpcomLink = document.createElement( 'div' );
+ contactInfoWpcomLink.className = 'notice inline notice-large notice-warning';
+ contactInfoWpcomLink.innerHTML = '<?php echo wp_kses( $contact_info_wpcom_link_message, $wp_kses_rule ); ?>'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ contactInfo.parentNode.insertBefore( contactInfoWpcomLink, contactInfo.nextSibling );
+ });
+
+ </script>
+ <?php
+}
+
+add_action( 'personal_options', 'jetpack_masterbar_hide_profile_fields' );
diff --git a/plugins/jetpack/modules/masterbar/wp-posts-list/bootstrap.php b/plugins/jetpack/modules/masterbar/wp-posts-list/bootstrap.php
new file mode 100644
index 00000000..478cf612
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/wp-posts-list/bootstrap.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * WP-Admin Posts list bootstrap file.
+ *
+ * @package Jetpack
+ */
+
+/**
+ * Load the Posts_List_Notification.
+ */
+function masterbar_init_wp_posts_list() {
+ global $pagenow;
+
+ if (
+ ( 'edit.php' === $pagenow && isset( $_GET['post_type'] ) && 'page' === $_GET['post_type'] ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ ) {
+ require_once __DIR__ . '/class-posts-list-page-notification.php';
+ Automattic\Jetpack\Dashboard_Customizations\Posts_List_Page_Notification::init();
+ }
+}
+
+add_action( 'init', 'masterbar_init_wp_posts_list', 1 );
diff --git a/plugins/jetpack/modules/masterbar/wp-posts-list/class-posts-list-page-notification.php b/plugins/jetpack/modules/masterbar/wp-posts-list/class-posts-list-page-notification.php
new file mode 100644
index 00000000..b59ed2da
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/wp-posts-list/class-posts-list-page-notification.php
@@ -0,0 +1,144 @@
+<?php
+/**
+ * Posts_List_Page_Notification file.
+ * Disable edit_post and delete_post capabilities for Posts Pages in WP-Admin and display a notification icon.
+ *
+ * @package Jetpack
+ */
+
+namespace Automattic\Jetpack\Dashboard_Customizations;
+
+/**
+ * Class Posts_List_Page_Notification
+ *
+ * @package Automattic\Jetpack\Dashboard_Customizations
+ */
+class Posts_List_Page_Notification {
+
+ /**
+ * Site's Posts page id
+ *
+ * @var int|null
+ */
+ private $posts_page_id;
+
+ /**
+ * If the Post_list contains the site's Posts Page
+ *
+ * @var bool
+ */
+ private $is_page_in_list = false;
+
+ /**
+ * Class instance.
+ *
+ * @var Posts_List_Page_Notification|null
+ */
+ private static $instance = null;
+
+ /**
+ * Posts_List_Page_Notification constructor.
+ *
+ * @param string $posts_page_id The Posts page configured in WordPress.
+ * @param string $show_on_front The show_on_front site option.
+ * @param string $page_on_front The page_on_front site_option.
+ */
+ public function __construct( $posts_page_id, $show_on_front, $page_on_front ) {
+ if ( 'page' === $show_on_front && $posts_page_id !== $page_on_front ) {
+ add_action( 'init', array( $this, 'init_actions' ) );
+ }
+
+ $this->posts_page_id = '' === $posts_page_id ? null : (int) $posts_page_id;
+ }
+
+ /**
+ * Add in all hooks.
+ */
+ public function init_actions() {
+ \add_filter( 'map_meta_cap', array( $this, 'disable_posts_page' ), 10, 4 );
+ \add_filter( 'post_class', array( $this, 'add_posts_page_css_class' ), 10, 3 );
+ \add_action( 'admin_print_footer_scripts-edit.php', array( $this, 'add_notification_icon' ) );
+ \add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_css' ) );
+ }
+
+ /**
+ * Creates instance.
+ *
+ * @return Posts_List_Page_Notification
+ */
+ public static function init() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new self( \get_option( 'page_for_posts' ), \get_option( 'show_on_front' ), \get_option( 'page_on_front' ) );
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Disable editing and deleting for the page that is configured as a Posts Page.
+ *
+ * @param array $caps Array of capabilities.
+ * @param string $cap The current capability.
+ * @param string $user_id The user id.
+ * @param array $args Argument array.
+ * @return array
+ */
+ public function disable_posts_page( $caps, $cap, $user_id, $args ) {
+ if ( 'edit_post' !== $cap && 'delete_post' !== $cap ) {
+ return $caps;
+ }
+
+ if ( isset( $args[0] ) && $this->posts_page_id === $args[0] ) {
+ $caps[] = 'do_not_allow';
+ }
+
+ return $caps;
+ }
+
+ /**
+ * Load the CSS for the WP Posts List
+ *
+ * We would probably need to move this elsewhere when new features are introduced to wp-posts-list.
+ */
+ public function enqueue_css() {
+ \wp_enqueue_style( 'wp-posts-list', plugins_url( 'wp-posts-list.css', __FILE__ ), array(), JETPACK__VERSION );
+ }
+
+ /**
+ * Adds a CSS class on the page configured as a Posts Page.
+ *
+ * @param array $classes A list of CSS classes.
+ * @param string $class A CSS class.
+ * @param string $post_id The current post id.
+ * @return array
+ */
+ public function add_posts_page_css_class( $classes, $class, $post_id ) {
+ if ( $this->posts_page_id !== $post_id ) {
+ return $classes;
+ }
+
+ $this->is_page_in_list = true;
+
+ $classes[] = 'posts-page';
+
+ return $classes;
+ }
+
+ /**
+ * Add a info icon on the Posts Page letting the user know why they cannot delete and remove the page.
+ */
+ public function add_notification_icon() {
+ // No need to add the JS since the site is not configured with a Posts Page or the current listview doesn't contain the page.
+ if ( null === $this->posts_page_id || ! $this->is_page_in_list ) {
+ return;
+ }
+
+ $text_notice = __( 'The content of your latest posts page is automatically generated and cannot be edited.', 'jetpack' );
+ ?>
+ <script>
+ document.querySelector(".posts-page .check-column").innerHTML = '' +
+ '<div class="info"><span class="icon dashicons dashicons-info-outline"></span><span class="message"><?php echo esc_html( $text_notice ); ?></span></div>';
+ </script>
+ <?php
+ }
+}
diff --git a/plugins/jetpack/modules/masterbar/wp-posts-list/wp-posts-list.css b/plugins/jetpack/modules/masterbar/wp-posts-list/wp-posts-list.css
new file mode 100644
index 00000000..1d229f0b
--- /dev/null
+++ b/plugins/jetpack/modules/masterbar/wp-posts-list/wp-posts-list.css
@@ -0,0 +1,33 @@
+.posts-page .info {
+ position: relative;
+ display: inline-block;
+ margin-left:8px;
+}
+
+.posts-page .info .message {
+ visibility: hidden;
+ width:220px;
+ font-size: .875rem;
+ background-color: #fff;
+ color: #646970;
+ text-align: left;
+ border:1px solid #c3c4c7;
+ position: absolute;
+ z-index: 1;
+ margin-left:5px;
+ padding: 16px;
+ border-radius: 2px;
+ box-shadow: 0 2px 5px rgba(0,0,0,.1),0 0 56px rgba(0,0,0,.075)
+}
+
+.posts-page .info:hover .message {
+ visibility: visible;
+}
+
+@media screen and (max-width: 782px) {
+ .posts-page .info .icon {
+ font-size: 28px;
+ width:28px;
+ height:28px;
+ }
+}
diff --git a/plugins/jetpack/modules/memberships/class-jetpack-memberships.php b/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
index 5a3ed64f..ae8a3d8a 100644
--- a/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
+++ b/plugins/jetpack/modules/memberships/class-jetpack-memberships.php
@@ -6,6 +6,8 @@
* @since 7.3.0
*/
+use Automattic\Jetpack\Blocks;
+
/**
* Class Jetpack_Memberships
* This class represents the Memberships functionality.
@@ -65,6 +67,34 @@ class Jetpack_Memberships {
private static $instance;
/**
+ * Currencies we support and Stripe's minimum amount for a transaction in that currency.
+ *
+ * @link https://stripe.com/docs/currencies#minimum-and-maximum-charge-amounts
+ *
+ * List has to be in with `SUPPORTED_CURRENCIES` in extensions/shared/currencies.js and
+ * `Memberships_Product::SUPPORTED_CURRENCIES` in the WP.com memberships library.
+ */
+ const SUPPORTED_CURRENCIES = array(
+ 'USD' => 0.5,
+ 'AUD' => 0.5,
+ 'BRL' => 0.5,
+ 'CAD' => 0.5,
+ 'CHF' => 0.5,
+ 'DKK' => 2.5,
+ 'EUR' => 0.5,
+ 'GBP' => 0.3,
+ 'HKD' => 4.0,
+ 'INR' => 0.5,
+ 'JPY' => 50,
+ 'MXN' => 10,
+ 'NOK' => 3.0,
+ 'NZD' => 0.5,
+ 'PLN' => 2.0,
+ 'SEK' => 3.0,
+ 'SGD' => 0.5,
+ );
+
+ /**
* Jetpack_Memberships constructor.
*/
private function __construct() {}
@@ -197,21 +227,77 @@ class Jetpack_Memberships {
public function return_meta( $map ) {
return $map['meta'];
}
+
+ /**
+ * Renders a preview of the Recurring Payment button, which is not hooked
+ * up to the subscription url. Used to preview the block on the frontend
+ * for site editors when Stripe has not been connected.
+ *
+ * @param array $attrs - attributes in the shortcode.
+ * @param string $content - Recurring Payment block content.
+ *
+ * @return string|void
+ */
+ public function render_button_preview( $attrs, $content = null ) {
+ if ( ! empty( $content ) ) {
+ $block_id = esc_attr( wp_unique_id( 'recurring-payments-block-' ) );
+ $content = str_replace( 'recurring-payments-id', $block_id, $content );
+ $content = str_replace( 'wp-block-jetpack-recurring-payments', 'wp-block-jetpack-recurring-payments wp-block-button', $content );
+ return $content;
+ }
+ return $this->deprecated_render_button_v1( $attrs, null );
+ }
+
+ /**
+ * Determines whether the button preview should be rendered. Returns true
+ * if the user has editing permissions, the button is not configured correctly
+ * (because it requires a plan upgrade or Stripe connection), and the
+ * button is a child of a Premium Content block.
+ *
+ * @param WP_Block $block Recurring Payments block instance.
+ *
+ * @return boolean
+ */
+ public function should_render_button_preview( $block ) {
+ $user_can_edit = $this->user_can_edit();
+ $requires_stripe_connection = ! $this->get_connected_account_id();
+
+ $requires_upgrade = ! self::is_supported_jetpack_recurring_payments();
+
+ $is_premium_content_child = false;
+ if ( isset( $block ) && isset( $block->context['isPremiumContentChild'] ) ) {
+ $is_premium_content_child = (int) $block->context['isPremiumContentChild'];
+ }
+
+ return (
+ $is_premium_content_child &&
+ $user_can_edit &&
+ ( $requires_upgrade || $requires_stripe_connection )
+ );
+ }
+
/**
* Callback that parses the membership purchase shortcode.
*
- * @param array $attrs - attributes in the shortcode. `id` here is the CPT id of the plan.
+ * @param array $attributes - attributes in the shortcode. `id` here is the CPT id of the plan.
+ * @param string $content - Recurring Payment block content.
+ * @param WP_Block $block - Recurring Payment block instance.
*
* @return string|void
*/
- public function render_button( $attrs ) {
+ public function render_button( $attributes, $content = null, $block = null ) {
Jetpack_Gutenberg::load_assets_as_required( self::$button_block_name, array( 'thickbox', 'wp-polyfill' ) );
- if ( empty( $attrs['planId'] ) ) {
+ if ( $this->should_render_button_preview( $block ) ) {
+ return $this->render_button_preview( $attributes, $content );
+ }
+
+ if ( empty( $attributes['planId'] ) ) {
return;
}
- $id = intval( $attrs['planId'] );
- $product = get_post( $id );
+
+ $plan_id = (int) $attributes['planId'];
+ $product = get_post( $plan_id );
if ( ! $product || is_wp_error( $product ) ) {
return;
}
@@ -219,28 +305,54 @@ class Jetpack_Memberships {
return;
}
- $data = array(
- 'blog_id' => self::get_blog_id(),
- 'id' => $id,
- 'button_label' => __( 'Your contribution', 'jetpack' ),
- 'powered_text' => __( 'Powered by WordPress.com', 'jetpack' ),
- );
+ add_thickbox();
+
+ if ( ! empty( $content ) ) {
+ $block_id = esc_attr( wp_unique_id( 'recurring-payments-block-' ) );
+ $content = str_replace( 'recurring-payments-id', $block_id, $content );
+ $content = str_replace( 'wp-block-jetpack-recurring-payments', 'wp-block-jetpack-recurring-payments wp-block-button', $content );
+ $subscribe_url = $this->get_subscription_url( $plan_id );
+ return str_replace( 'href="#"', 'href="' . $subscribe_url . '"', $content );
+ }
+
+ return $this->deprecated_render_button_v1( $attributes, $plan_id );
+ }
+
+ /**
+ * Builds subscription URL for this membership using the current blog and
+ * supplied plan IDs.
+ *
+ * @param integer $plan_id - Unique ID for the plan being subscribed to.
+ * @return string
+ */
+ public function get_subscription_url( $plan_id ) {
+ global $wp;
- $classes = Jetpack_Gutenberg::block_classes(
- self::$button_block_name,
- $attrs,
+ return add_query_arg(
array(
- 'wp-block-button__link',
- 'components-button',
- 'is-primary',
- 'is-button',
- self::$css_classname_prefix . '-' . $data['id'],
- )
+ 'blog' => esc_attr( self::get_blog_id() ),
+ 'plan' => esc_attr( $plan_id ),
+ 'lang' => esc_attr( get_locale() ),
+ 'pid' => esc_attr( get_the_ID() ), // Needed for analytics purposes.
+ 'redirect' => esc_attr( rawurlencode( home_url( $wp->request ) ) ), // Needed for redirect back in case of redirect-based flow.
+ ),
+ 'https://subscribe.wordpress.com/memberships/'
);
+ }
+
+ /**
+ * Renders a deprecated legacy version of the button HTML.
+ *
+ * @param array $attrs - Array containing the Recurring Payment block attributes.
+ * @param integer $plan_id - Unique plan ID the membership is for.
+ *
+ * @return string
+ */
+ public function deprecated_render_button_v1( $attrs, $plan_id ) {
+ $button_label = isset( $attrs['submitButtonText'] )
+ ? $attrs['submitButtonText']
+ : __( 'Your contribution', 'jetpack' );
- if ( isset( $attrs['submitButtonText'] ) ) {
- $data['button_label'] = $attrs['submitButtonText'];
- }
$button_styles = array();
if ( ! empty( $attrs['customBackgroundButtonColor'] ) ) {
array_push(
@@ -261,16 +373,21 @@ class Jetpack_Memberships {
);
}
$button_styles = implode( ';', $button_styles );
- add_thickbox();
+
return sprintf(
- '<button data-blog-id="%d" data-powered-text="%s" data-plan-id="%d" data-lang="%s" class="%s" style="%s">%s</button>',
- esc_attr( $data['blog_id'] ),
- esc_attr( $data['powered_text'] ),
- esc_attr( $data['id'] ),
- esc_attr( get_locale() ),
- esc_attr( $classes ),
+ '<div class="%1$s"><a role="button" %6$s href="%2$s" class="%3$s" style="%4$s">%5$s</a></div>',
+ esc_attr(
+ Jetpack_Gutenberg::block_classes(
+ self::$button_block_name,
+ $attrs,
+ array( 'wp-block-button' )
+ )
+ ),
+ esc_url( $this->get_subscription_url( $plan_id ) ),
+ isset( $attrs['submitButtonClasses'] ) ? esc_attr( $attrs['submitButtonClasses'] ) : 'wp-block-button__link',
esc_attr( $button_styles ),
- wp_kses( $data['button_label'], self::$tags_allowed_in_the_button )
+ wp_kses( $button_label, self::$tags_allowed_in_the_button ),
+ isset( $attrs['submitButtonAttributes'] ) ? sanitize_text_field( $attrs['submitButtonAttributes'] ) : '' // Needed for arbitrary target=_blank on WPCOM VIP.
);
}
@@ -297,21 +414,46 @@ class Jetpack_Memberships {
}
/**
- * Whether Recurring Payments are enabled.
+ * Determines whether the current user can edit.
+ *
+ * @return bool Whether the user can edit.
+ */
+ public static function user_can_edit() {
+ $user = wp_get_current_user();
+ // phpcs:ignore ImportDetection.Imports.RequireImports.Symbol
+ return 0 !== $user->ID && current_user_can( 'edit_post', get_the_ID() );
+ }
+
+ /**
+ * Whether Recurring Payments are enabled. True if the block
+ * is supported by the site's plan, or if it is a Jetpack site
+ * and the feature to enable upgrade nudges is active.
*
* @return bool
*/
public static function is_enabled_jetpack_recurring_payments() {
+ return (
+ self::is_supported_jetpack_recurring_payments() ||
+ (
+ Jetpack::is_connection_ready() &&
+ /** This filter is documented in class.jetpack-gutenberg.php */
+ ! apply_filters( 'jetpack_block_editor_enable_upgrade_nudge', false )
+ )
+ );
+ }
+
+ /**
+ * Whether the site's plan supports the Recurring Payments block.
+ */
+ public static function is_supported_jetpack_recurring_payments() {
// For WPCOM sites.
if ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'has_any_blog_stickers' ) ) {
$site_id = get_current_blog_id();
return has_any_blog_stickers( array( 'personal-plan', 'premium-plan', 'business-plan', 'ecommerce-plan' ), $site_id );
}
-
// For Jetpack sites.
- return Jetpack::is_active() && (
- /** This filter is documented in class.jetpack-gutenberg.php */
- ! apply_filters( 'jetpack_block_editor_enable_upgrade_nudge', false ) || // Remove when the default becomes `true`.
+ return (
+ Jetpack::is_connection_ready() &&
Jetpack_Plan::supports( 'recurring-payments' )
);
}
@@ -328,10 +470,13 @@ class Jetpack_Memberships {
}
if ( self::is_enabled_jetpack_recurring_payments() ) {
- jetpack_register_block(
+ $deprecated = function_exists( 'gutenberg_get_post_from_context' );
+ $uses = $deprecated ? 'context' : 'uses_context';
+ Blocks::jetpack_register_block(
'jetpack/recurring-payments',
array(
'render_callback' => array( $this, 'render_button' ),
+ $uses => array( 'isPremiumContentChild' ),
)
);
} else {
diff --git a/plugins/jetpack/modules/module-extras.php b/plugins/jetpack/modules/module-extras.php
index 562c9c7b..d1d7a6dc 100644
--- a/plugins/jetpack/modules/module-extras.php
+++ b/plugins/jetpack/modules/module-extras.php
@@ -4,12 +4,12 @@
* For example, if a module shouldn't be activatable unless certain conditions are met,
* the code belongs in this file.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
* Features available all the time:
- * - When in development mode.
+ * - When in offline mode.
* - When connected to WordPress.com.
*/
$tools = array(
@@ -18,6 +18,10 @@ $tools = array(
'custom-post-types/testimonial.php',
'custom-post-types/nova.php',
'geo-location.php',
+ // Those oEmbed providers are always available.
+ 'shortcodes/facebook.php',
+ 'shortcodes/others.php',
+ // Theme Tools.
'theme-tools.php',
'theme-tools/social-links.php',
'theme-tools/random-redirect.php',
@@ -29,11 +33,6 @@ $tools = array(
'theme-tools/social-menu.php',
'theme-tools/content-options.php',
'theme-tools/devicepx.php',
- // Needed for SEO Tools.
- 'seo-tools/jetpack-seo-utils.php',
- 'seo-tools/jetpack-seo-titles.php',
- 'seo-tools/jetpack-seo-posts.php',
- 'verification-tools/verification-tools-utils.php',
// Needed for VideoPress, so videos keep working in existing posts/pages when the module is deactivated.
'videopress/utility-functions.php',
'videopress/class.videopress-gutenberg.php',
@@ -41,15 +40,21 @@ $tools = array(
// Some features are only available when connected to WordPress.com.
$connected_tools = array(
- 'calypsoify/class.jetpack-calypsoify.php',
+ 'calypsoify/class-jetpack-calypsoify.php',
+ 'cloudflare-analytics/cloudflare-analytics.php',
'plugin-search.php',
+ 'scan/scan.php', // Shows Jetpack Scan alerts in the admin bar if threats found.
'simple-payments/simple-payments.php',
- 'woocommerce-analytics/wp-woocommerce-analytics.php',
'wpcom-block-editor/class-jetpack-wpcom-block-editor.php',
+ 'wpcom-tos/wpcom-tos.php',
+ // These oEmbed providers are available when connected to WordPress.com.
+ // Starting from 2020-10-24, they need an authentication token, and that token is stored on WordPress.com.
+ // More information: https://developers.facebook.com/docs/instagram/oembed/.
+ 'shortcodes/instagram.php',
);
// Add connected features to our existing list if the site is currently connected.
-if ( Jetpack::is_active() ) {
+if ( Jetpack::is_connection_ready() ) {
$tools = array_merge( $tools, $connected_tools );
}
@@ -57,7 +62,7 @@ if ( Jetpack::is_active() ) {
* Filter extra tools (not modules) to include.
*
* @since 2.4.0
- * @since 5.4.0 can be used in multisite when Jetpack is not connected to WordPress.com and not in development mode.
+ * @since 5.4.0 can be used in multisite when Jetpack is not connected to WordPress.com and not in offline mode.
*
* @param array $tools Array of extra tools to include.
*/
diff --git a/plugins/jetpack/modules/module-headings.php b/plugins/jetpack/modules/module-headings.php
index 65bba2e8..2da092a4 100644
--- a/plugins/jetpack/modules/module-headings.php
+++ b/plugins/jetpack/modules/module-headings.php
@@ -1,10 +1,14 @@
<?php
-// Do not edit this file. It's generated by `jetpack/tools/build-module-headings-translations.php`
+/**
+ * Do not edit this file. It's generated by `jetpack/tools/build-module-headings-translations.php`.
+ *
+ * @package automattic/jetpack
+ */
/**
* For a given module, return an array with translated name and description.
*
- * @param string $key Module file name without .php
+ * @param string $key Module file name without `.php`.
*
* @return array
*/
@@ -93,18 +97,13 @@ function jetpack_get_module_i18n( $key ) {
),
'masterbar' => array(
- 'name' => _x( 'WordPress.com Toolbar', 'Module Name', 'jetpack' ),
- 'description' => _x( 'Replaces the admin bar with a useful toolbar to quickly manage your site via WordPress.com.', 'Module Description', 'jetpack' ),
- ),
-
- 'minileven' => array(
- 'name' => _x( 'Mobile Theme', 'Module Name', 'jetpack' ),
- 'description' => _x( 'Enable the Jetpack Mobile theme', 'Module Description', 'jetpack' ),
+ 'name' => _x( 'WordPress.com Toolbar and Dashboard customizations', 'Module Name', 'jetpack' ),
+ 'description' => _x( 'Replaces the admin bar with a useful toolbar to quickly manage your site via WordPress.com. Also adds additional customizations to the WPAdmin dashboard experience for better compatibility with WP.com.', 'Module Description', 'jetpack' ),
),
'monitor' => array(
'name' => _x( 'Monitor', 'Module Name', 'jetpack' ),
- 'description' => _x( 'Jetpack’s downtime monitoring will continuously watch your site, and alert you the moment that downtime is detected.', 'Module Description', 'jetpack' ),
+ 'description' => _x( 'Jetpack’s downtime monitoring will continuously watch your site and alert you the moment that downtime is detected.', 'Module Description', 'jetpack' ),
),
'notes' => array(
@@ -144,7 +143,7 @@ function jetpack_get_module_i18n( $key ) {
'search' => array(
'name' => _x( 'Search', 'Module Name', 'jetpack' ),
- 'description' => _x( 'Enhanced search, powered by Elasticsearch, a powerful replacement for WordPress search.', 'Module Description', 'jetpack' ),
+ 'description' => _x( 'Help visitors quickly find answers with highly relevant instant search results and powerful filtering.', 'Module Description', 'jetpack' ),
),
'seo-tools' => array(
@@ -164,7 +163,7 @@ function jetpack_get_module_i18n( $key ) {
'shortlinks' => array(
'name' => _x( 'WP.me Shortlinks', 'Module Name', 'jetpack' ),
- 'description' => _x( 'Generates shorter links so you can have more space to write on social media sites.', 'Module Description', 'jetpack' ),
+ 'description' => _x( 'Generates shorter links using the wp.me domain.', 'Module Description', 'jetpack' ),
),
'sitemaps' => array(
@@ -217,14 +216,23 @@ function jetpack_get_module_i18n( $key ) {
'description' => _x( 'Provides additional widgets for use on your site.', 'Module Description', 'jetpack' ),
),
+ 'woocommerce-analytics' => array(
+ 'name' => _x( 'WooCommerce Analytics', 'Module Name', 'jetpack' ),
+ 'description' => _x( 'Enhanced analytics for WooCommerce and Jetpack users.', 'Module Description', 'jetpack' ),
+ ),
+
'wordads' => array(
'name' => _x( 'Ads', 'Module Name', 'jetpack' ),
'description' => _x( 'Earn income by allowing Jetpack to display high quality ads.', 'Module Description', 'jetpack' ),
),
);
}
- return $modules[ $key ];
+ return isset( $modules[ $key ] ) ? $modules[ $key ] : null;
}
+
+// The lists of filenames below shouldn't be arbitrarily punctuated, but the sniff triggers anyway.
+// phpcs:disable Squiz.Commenting.InlineComment.InvalidEndChar
+
/**
* For a given module tag, return its translated version.
*
@@ -237,95 +245,904 @@ function jetpack_get_module_i18n_tag( $key ) {
if ( ! isset( $module_tags ) ) {
$module_tags = array(
// Modules with `Other` tag:
- // - modules/contact-form.php
- // - modules/notes.php
- 'Other' =>_x( 'Other', 'Module Tag', 'jetpack' ),
+ // - modules/contact-form.php
+ // - modules/notes.php
+ // - modules/woocommerce-analytics.php
+ 'Other' => _x( 'Other', 'Module Tag', 'jetpack' ),
// Modules with `Photos and Videos` tag:
- // - modules/carousel.php
- // - modules/photon-cdn.php
- // - modules/photon.php
- // - modules/shortcodes.php
- // - modules/tiled-gallery.php
- // - modules/videopress.php
- 'Photos and Videos' =>_x( 'Photos and Videos', 'Module Tag', 'jetpack' ),
+ // - modules/carousel.php
+ // - modules/photon-cdn.php
+ // - modules/photon.php
+ // - modules/shortcodes.php
+ // - modules/tiled-gallery.php
+ // - modules/videopress.php
+ 'Photos and Videos' => _x( 'Photos and Videos', 'Module Tag', 'jetpack' ),
// Modules with `Social` tag:
- // - modules/comment-likes.php
- // - modules/comments.php
- // - modules/gravatar-hovercards.php
- // - modules/likes.php
- // - modules/publicize.php
- // - modules/seo-tools.php
- // - modules/sharedaddy.php
- // - modules/shortcodes.php
- // - modules/shortlinks.php
- // - modules/subscriptions.php
- // - modules/widgets.php
- 'Social' =>_x( 'Social', 'Module Tag', 'jetpack' ),
+ // - modules/comment-likes.php
+ // - modules/comments.php
+ // - modules/gravatar-hovercards.php
+ // - modules/likes.php
+ // - modules/publicize.php
+ // - modules/seo-tools.php
+ // - modules/sharedaddy.php
+ // - modules/shortcodes.php
+ // - modules/shortlinks.php
+ // - modules/subscriptions.php
+ // - modules/widgets.php
+ 'Social' => _x( 'Social', 'Module Tag', 'jetpack' ),
// Modules with `Writing` tag:
- // - modules/copy-post.php
- // - modules/custom-content-types.php
- // - modules/enhanced-distribution.php
- // - modules/json-api.php
- // - modules/latex.php
- // - modules/markdown.php
- // - modules/post-by-email.php
- // - modules/shortcodes.php
- 'Writing' =>_x( 'Writing', 'Module Tag', 'jetpack' ),
+ // - modules/copy-post.php
+ // - modules/custom-content-types.php
+ // - modules/enhanced-distribution.php
+ // - modules/json-api.php
+ // - modules/latex.php
+ // - modules/markdown.php
+ // - modules/post-by-email.php
+ // - modules/shortcodes.php
+ 'Writing' => _x( 'Writing', 'Module Tag', 'jetpack' ),
// Modules with `Appearance` tag:
- // - modules/custom-css.php
- // - modules/gravatar-hovercards.php
- // - modules/infinite-scroll.php
- // - modules/lazy-images.php
- // - modules/minileven.php
- // - modules/photon-cdn.php
- // - modules/photon.php
- // - modules/seo-tools.php
- // - modules/shortcodes.php
- // - modules/widget-visibility.php
- // - modules/widgets.php
- // - modules/wordads.php
- 'Appearance' =>_x( 'Appearance', 'Module Tag', 'jetpack' ),
+ // - modules/custom-css.php
+ // - modules/gravatar-hovercards.php
+ // - modules/infinite-scroll.php
+ // - modules/lazy-images.php
+ // - modules/photon-cdn.php
+ // - modules/photon.php
+ // - modules/seo-tools.php
+ // - modules/shortcodes.php
+ // - modules/widget-visibility.php
+ // - modules/widgets.php
+ // - modules/wordads.php
+ 'Appearance' => _x( 'Appearance', 'Module Tag', 'jetpack' ),
// Modules with `Developers` tag:
- // - modules/json-api.php
- // - modules/sso.php
- 'Developers' =>_x( 'Developers', 'Module Tag', 'jetpack' ),
+ // - modules/json-api.php
+ // - modules/sso.php
+ 'Developers' => _x( 'Developers', 'Module Tag', 'jetpack' ),
// Modules with `Recommended` tag:
- // - modules/lazy-images.php
- // - modules/minileven.php
- // - modules/monitor.php
- // - modules/photon-cdn.php
- // - modules/photon.php
- // - modules/protect.php
- // - modules/publicize.php
- // - modules/related-posts.php
- // - modules/sharedaddy.php
- // - modules/sitemaps.php
- // - modules/stats.php
- 'Recommended' =>_x( 'Recommended', 'Module Tag', 'jetpack' ),
+ // - modules/lazy-images.php
+ // - modules/monitor.php
+ // - modules/photon-cdn.php
+ // - modules/photon.php
+ // - modules/protect.php
+ // - modules/publicize.php
+ // - modules/related-posts.php
+ // - modules/sharedaddy.php
+ // - modules/sitemaps.php
+ // - modules/stats.php
+ // - modules/woocommerce-analytics.php
+ 'Recommended' => _x( 'Recommended', 'Module Tag', 'jetpack' ),
// Modules with `General` tag:
- // - modules/masterbar.php
- 'General' =>_x( 'General', 'Module Tag', 'jetpack' ),
-
- // Modules with `Mobile` tag:
- // - modules/minileven.php
- 'Mobile' =>_x( 'Mobile', 'Module Tag', 'jetpack' ),
+ // - modules/masterbar.php
+ 'General' => _x( 'General', 'Module Tag', 'jetpack' ),
// Modules with `Traffic` tag:
- // - modules/sitemaps.php
- // - modules/wordads.php
- 'Traffic' =>_x( 'Traffic', 'Module Tag', 'jetpack' ),
+ // - modules/sitemaps.php
+ // - modules/wordads.php
+ 'Traffic' => _x( 'Traffic', 'Module Tag', 'jetpack' ),
// Modules with `Site Stats` tag:
- // - modules/stats.php
- 'Site Stats' =>_x( 'Site Stats', 'Module Tag', 'jetpack' ),
+ // - modules/stats.php
+ 'Site Stats' => _x( 'Site Stats', 'Module Tag', 'jetpack' ),
);
}
return ! empty( $module_tags[ $key ] ) ? $module_tags[ $key ] : '';
}
+
+/**
+ * For a given module, return an array with the module info.
+ *
+ * @param string $key Module file name without `.php`.
+ *
+ * return array|string An array containing the module info or an empty string if the given module isn't known.
+ */
+function jetpack_get_module_info( $key ) {
+ static $module_info = array (
+ 'carousel' =>
+ array (
+ 'name' => 'Carousel',
+ 'description' => 'Display images and galleries in a gorgeous, full-screen browsing experience',
+ 'sort' => '22',
+ 'recommendation_order' => '12',
+ 'introduced' => '1.5',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Photos and Videos',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'gallery, carousel, diaporama, slideshow, images, lightbox, exif, metadata, image',
+ 'plan_classes' => '',
+ ),
+ 'comment-likes' =>
+ array (
+ 'name' => 'Comment Likes',
+ 'description' => 'Increase visitor engagement by adding a Like button to comments.',
+ 'sort' => '39',
+ 'recommendation_order' => '17',
+ 'introduced' => '5.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social',
+ 'feature' => '',
+ 'additional_search_queries' => 'like widget, like button, like, likes',
+ 'plan_classes' => '',
+ ),
+ 'comments' =>
+ array (
+ 'name' => 'Comments',
+ 'description' => 'Let visitors use a WordPress.com, Twitter, Facebook, or Google account to comment',
+ 'sort' => '20',
+ 'recommendation_order' => '',
+ 'introduced' => '1.4',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'comments, comment, facebook, twitter, google+, social',
+ 'plan_classes' => '',
+ ),
+ 'contact-form' =>
+ array (
+ 'name' => 'Contact Form',
+ 'description' => 'Add a customizable contact form to any post or page using the Jetpack Form Block.',
+ 'sort' => '15',
+ 'recommendation_order' => '14',
+ 'introduced' => '1.3',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => 'Other',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'contact, form, grunion, feedback, submission, contact form, email, feedback, contact form plugin, custom form, custom form plugin, form builder, forms, form maker, survey, contact by jetpack, contact us, forms free',
+ 'plan_classes' => '',
+ ),
+ 'copy-post' =>
+ array (
+ 'name' => 'Copy Post',
+ 'description' => 'Enable the option to copy entire posts and pages, including tags and settings',
+ 'sort' => '15',
+ 'recommendation_order' => '',
+ 'introduced' => '7.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'copy, duplicate',
+ 'plan_classes' => '',
+ ),
+ 'custom-content-types' =>
+ array (
+ 'name' => 'Custom content types',
+ 'description' => 'Display different types of content on your site with custom content types.',
+ 'sort' => '34',
+ 'recommendation_order' => '',
+ 'introduced' => '3.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'cpt, custom post types, portfolio, portfolios, testimonial, testimonials',
+ 'plan_classes' => '',
+ ),
+ 'custom-css' =>
+ array (
+ 'name' => 'Custom CSS',
+ 'description' => 'Adds options for CSS preprocessor use, disabling the theme\'s CSS, or custom image width.',
+ 'sort' => '2',
+ 'recommendation_order' => '',
+ 'introduced' => '1.7',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Appearance',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'css, customize, custom, style, editor, less, sass, preprocessor, font, mobile, appearance, theme, stylesheet',
+ 'plan_classes' => '',
+ ),
+ 'enhanced-distribution' =>
+ array (
+ 'name' => 'Enhanced Distribution',
+ 'description' => 'Increase reach and traffic.',
+ 'sort' => '5',
+ 'recommendation_order' => '',
+ 'introduced' => '1.2',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Public',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'google, seo, firehose, search, broadcast, broadcasting',
+ 'plan_classes' => '',
+ ),
+ 'google-analytics' =>
+ array (
+ 'name' => 'Google Analytics',
+ 'description' => 'Set up Google Analytics without touching a line of code.',
+ 'sort' => '37',
+ 'recommendation_order' => '',
+ 'introduced' => '4.5',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => '',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'webmaster, google, analytics, console',
+ 'plan_classes' => 'business, premium, security, complete',
+ ),
+ 'gravatar-hovercards' =>
+ array (
+ 'name' => 'Gravatar Hovercards',
+ 'description' => 'Enable pop-up business cards over commenters’ Gravatars.',
+ 'sort' => '11',
+ 'recommendation_order' => '13',
+ 'introduced' => '1.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social, Appearance',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'gravatar, hovercards',
+ 'plan_classes' => '',
+ ),
+ 'infinite-scroll' =>
+ array (
+ 'name' => 'Infinite Scroll',
+ 'description' => 'Automatically load new content when a visitor scrolls',
+ 'sort' => '26',
+ 'recommendation_order' => '',
+ 'introduced' => '2.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Appearance',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'scroll, infinite, infinite scroll',
+ 'plan_classes' => '',
+ ),
+ 'json-api' =>
+ array (
+ 'name' => 'JSON API',
+ 'description' => 'Allow applications to securely access your content.',
+ 'sort' => '19',
+ 'recommendation_order' => '',
+ 'introduced' => '1.9',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Public',
+ 'module_tags' => 'Writing, Developers',
+ 'feature' => 'General',
+ 'additional_search_queries' => 'api, rest, develop, developers, json, klout, oauth',
+ 'plan_classes' => '',
+ ),
+ 'latex' =>
+ array (
+ 'name' => 'Beautiful Math',
+ 'description' => 'Use the LaTeX markup language to write mathematical equations and formulas',
+ 'sort' => '12',
+ 'recommendation_order' => '',
+ 'introduced' => '1.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'latex, math, equation, equations, formula, code',
+ 'plan_classes' => '',
+ ),
+ 'lazy-images' =>
+ array (
+ 'name' => 'Lazy Images',
+ 'description' => 'Speed up your site and create a smoother viewing experience by loading images as visitors scroll down the screen, instead of all at once.',
+ 'sort' => '24',
+ 'recommendation_order' => '14',
+ 'introduced' => '5.6.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Appearance, Recommended',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'mobile, theme, fast images, fast image, image, lazy, lazy load, lazyload, images, lazy images, thumbnail, image lazy load, lazy loading, load, loading',
+ 'plan_classes' => '',
+ ),
+ 'likes' =>
+ array (
+ 'name' => 'Likes',
+ 'description' => 'Give visitors an easy way to show they appreciate your content.',
+ 'sort' => '23',
+ 'recommendation_order' => '',
+ 'introduced' => '2.2',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'like, likes, wordpress.com',
+ 'plan_classes' => '',
+ ),
+ 'markdown' =>
+ array (
+ 'name' => 'Markdown',
+ 'description' => 'Write posts or pages in plain-text Markdown syntax',
+ 'sort' => '31',
+ 'recommendation_order' => '',
+ 'introduced' => '2.8',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'md, markdown',
+ 'plan_classes' => '',
+ ),
+ 'masterbar' =>
+ array (
+ 'name' => 'WordPress.com Toolbar and Dashboard customizations',
+ 'description' => 'Replaces the admin bar with a useful toolbar to quickly manage your site via WordPress.com. Also adds additional customizations to the WPAdmin dashboard experience for better compatibility with WP.com.',
+ 'sort' => '38',
+ 'recommendation_order' => '16',
+ 'introduced' => '4.8',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'General',
+ 'feature' => '',
+ 'additional_search_queries' => 'adminbar, masterbar, colorschemes, profile-edit',
+ 'plan_classes' => '',
+ ),
+ 'monitor' =>
+ array (
+ 'name' => 'Monitor',
+ 'description' => 'Jetpack’s downtime monitoring will continuously watch your site and alert you the moment that downtime is detected.',
+ 'sort' => '28',
+ 'recommendation_order' => '10',
+ 'introduced' => '2.6',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Recommended',
+ 'feature' => 'Security',
+ 'additional_search_queries' => 'monitor, uptime, downtime, monitoring, maintenance, maintenance mode, offline, site is down, site down, down, repair, error',
+ 'plan_classes' => '',
+ ),
+ 'notes' =>
+ array (
+ 'name' => 'Notifications',
+ 'description' => 'Receive instant notifications of site comments and likes.',
+ 'sort' => '13',
+ 'recommendation_order' => '',
+ 'introduced' => '1.9',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => 'Other',
+ 'feature' => 'General',
+ 'additional_search_queries' => 'notification, notifications, toolbar, adminbar, push, comments',
+ 'plan_classes' => '',
+ ),
+ 'photon-cdn' =>
+ array (
+ 'name' => 'Asset CDN',
+ 'description' => 'Jetpack’s Site Accelerator loads your site faster by optimizing your images and serving your images and static files from our global network of servers.',
+ 'sort' => '26',
+ 'recommendation_order' => '1',
+ 'introduced' => '6.6',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Photos and Videos, Appearance, Recommended',
+ 'feature' => 'Recommended, Appearance',
+ 'additional_search_queries' => 'site accelerator, accelerate, static, assets, javascript, css, files, performance, cdn, bandwidth, content delivery network, pagespeed, combine js, optimize css',
+ 'plan_classes' => '',
+ ),
+ 'photon' =>
+ array (
+ 'name' => 'Image CDN',
+ 'description' => 'Mirrors and serves your images from our free and fast image CDN, improving your site’s performance with no additional load on your servers.',
+ 'sort' => '25',
+ 'recommendation_order' => '1',
+ 'introduced' => '2.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Photos and Videos, Appearance, Recommended',
+ 'feature' => 'Recommended, Appearance',
+ 'additional_search_queries' => 'photon, photo cdn, image cdn, speed, compression, resize, responsive images, responsive, content distribution network, optimize, page speed, image optimize, photon jetpack',
+ 'plan_classes' => '',
+ ),
+ 'post-by-email' =>
+ array (
+ 'name' => 'Post by email',
+ 'description' => 'Publish posts by sending an email',
+ 'sort' => '14',
+ 'recommendation_order' => '',
+ 'introduced' => '2.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Writing',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'post by email, email',
+ 'plan_classes' => '',
+ ),
+ 'protect' =>
+ array (
+ 'name' => 'Protect',
+ 'description' => 'Enabling brute force protection will prevent bots and hackers from attempting to log in to your website with common username and password combinations.',
+ 'sort' => '1',
+ 'recommendation_order' => '4',
+ 'introduced' => '3.4',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => 'Recommended',
+ 'feature' => 'Security',
+ 'additional_search_queries' => 'security, jetpack protect, secure, protection, botnet, brute force, protect, login, bot, password, passwords, strong passwords, strong password, wp-login.php, protect admin',
+ 'plan_classes' => '',
+ ),
+ 'publicize' =>
+ array (
+ 'name' => 'Publicize',
+ 'description' => 'Publicize makes it easy to share your site’s posts on several social media networks automatically when you publish a new post.',
+ 'sort' => '10',
+ 'recommendation_order' => '7',
+ 'introduced' => '2.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social, Recommended',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'facebook, jetpack publicize, twitter, tumblr, linkedin, social, tweet, connections, sharing, social media, automated, automated sharing, auto publish, auto tweet and like, auto tweet, facebook auto post, facebook posting',
+ 'plan_classes' => '',
+ ),
+ 'related-posts' =>
+ array (
+ 'name' => 'Related posts',
+ 'description' => 'Keep visitors engaged on your blog by highlighting relevant and new content at the bottom of each published post.',
+ 'sort' => '29',
+ 'recommendation_order' => '9',
+ 'introduced' => '2.9',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Recommended',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'related, jetpack related posts, related posts for wordpress, related posts, popular posts, popular, related content, related post, contextual, context, contextual related posts, related articles, similar posts, easy related posts, related page, simple related posts, free related posts, related thumbnails, similar, engagement, yet another related posts plugin',
+ 'plan_classes' => '',
+ ),
+ 'search' =>
+ array (
+ 'name' => 'Search',
+ 'description' => 'Help visitors quickly find answers with highly relevant instant search results and powerful filtering.',
+ 'sort' => '34',
+ 'recommendation_order' => '',
+ 'introduced' => '5.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => 'false',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => '',
+ 'feature' => 'Search',
+ 'additional_search_queries' => 'search, elastic, elastic search, elasticsearch, fast search, search results, search performance, google search',
+ 'plan_classes' => 'business, complete',
+ ),
+ 'seo-tools' =>
+ array (
+ 'name' => 'SEO Tools',
+ 'description' => 'Better results on search engines and social media.',
+ 'sort' => '35',
+ 'recommendation_order' => '15',
+ 'introduced' => '4.4',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'No',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social, Appearance',
+ 'feature' => 'Traffic',
+ 'additional_search_queries' => 'search engine optimization, social preview, meta description, custom title format',
+ 'plan_classes' => '',
+ ),
+ 'sharedaddy' =>
+ array (
+ 'name' => 'Sharing',
+ 'description' => 'Add Twitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content.',
+ 'sort' => '7',
+ 'recommendation_order' => '6',
+ 'introduced' => '1.1',
+ 'changed' => '1.2',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social, Recommended',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'share, sharing, sharedaddy, social buttons, buttons, share facebook, share twitter, social media sharing, social media share, social share, icons, email, facebook, twitter, linkedin, pinterest, pocket, social widget, social media',
+ 'plan_classes' => '',
+ ),
+ 'shortcodes' =>
+ array (
+ 'name' => 'Shortcode Embeds',
+ 'description' => 'Shortcodes are WordPress-specific markup that let you add media from popular sites. This feature is no longer necessary as the editor now handles media embeds rather gracefully.',
+ 'sort' => '3',
+ 'recommendation_order' => '',
+ 'introduced' => '1.1',
+ 'changed' => '1.2',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Photos and Videos, Social, Writing, Appearance',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'shortcodes, shortcode, embeds, media, bandcamp, dailymotion, facebook, flickr, google calendars, google maps, google+, polldaddy, recipe, recipes, scribd, slideshare, slideshow, slideshows, soundcloud, ted, twitter, vimeo, vine, youtube',
+ 'plan_classes' => '',
+ ),
+ 'shortlinks' =>
+ array (
+ 'name' => 'WP.me Shortlinks',
+ 'description' => 'Generates shorter links using the wp.me domain.',
+ 'sort' => '8',
+ 'recommendation_order' => '',
+ 'introduced' => '1.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'shortlinks, wp.me',
+ 'plan_classes' => '',
+ ),
+ 'sitemaps' =>
+ array (
+ 'name' => 'Sitemaps',
+ 'description' => 'Make it easy for search engines to find your site.',
+ 'sort' => '13',
+ 'recommendation_order' => '',
+ 'introduced' => '3.9',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Recommended, Traffic',
+ 'feature' => 'Recommended',
+ 'additional_search_queries' => 'sitemap, traffic, search, site map, seo',
+ 'plan_classes' => '',
+ ),
+ 'sso' =>
+ array (
+ 'name' => 'Secure Sign On',
+ 'description' => 'Allow users to log in to this site using WordPress.com accounts',
+ 'sort' => '30',
+ 'recommendation_order' => '5',
+ 'introduced' => '2.6',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Developers',
+ 'feature' => 'Security',
+ 'additional_search_queries' => 'sso, single sign on, login, log in, 2fa, two-factor',
+ 'plan_classes' => '',
+ ),
+ 'stats' =>
+ array (
+ 'name' => 'Site Stats',
+ 'description' => 'Collect valuable traffic stats and insights.',
+ 'sort' => '1',
+ 'recommendation_order' => '2',
+ 'introduced' => '1.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => 'Site Stats, Recommended',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'statistics, tracking, analytics, views, traffic, stats',
+ 'plan_classes' => '',
+ ),
+ 'subscriptions' =>
+ array (
+ 'name' => 'Subscriptions',
+ 'description' => 'Let visitors subscribe to new posts and comments via email',
+ 'sort' => '9',
+ 'recommendation_order' => '8',
+ 'introduced' => '1.2',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => 'Yes',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'subscriptions, subscription, email, follow, followers, subscribers, signup',
+ 'plan_classes' => '',
+ ),
+ 'tiled-gallery' =>
+ array (
+ 'name' => 'Tiled Galleries',
+ 'description' => 'Display image galleries in a variety of elegant arrangements.',
+ 'sort' => '24',
+ 'recommendation_order' => '',
+ 'introduced' => '2.1',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Photos and Videos',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'gallery, tiles, tiled, grid, mosaic, images',
+ 'plan_classes' => '',
+ ),
+ 'vaultpress' =>
+ array (
+ 'name' => 'Backups and Scanning',
+ 'description' => 'Protect your site with daily or real-time backups and automated virus scanning and threat detection.',
+ 'sort' => '32',
+ 'recommendation_order' => '',
+ 'introduced' => '0:1.2',
+ 'changed' => '',
+ 'deactivate' => 'false',
+ 'free' => 'false',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => '',
+ 'feature' => 'Security, Health',
+ 'additional_search_queries' => 'backup, cloud backup, database backup, restore, wordpress backup, backup plugin, wordpress backup plugin, back up, backup wordpress, backwpup, vaultpress, backups, off-site backups, offsite backup, offsite, off-site, antivirus, malware scanner, security, virus, viruses, prevent viruses, scan, anti-virus, antimalware, protection, safe browsing, malware, wp security, wordpress security',
+ 'plan_classes' => 'personal, business, premium, security, complete',
+ ),
+ 'verification-tools' =>
+ array (
+ 'name' => 'Site verification',
+ 'description' => 'Establish your site\'s authenticity with external services.',
+ 'sort' => '33',
+ 'recommendation_order' => '',
+ 'introduced' => '3.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => '',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'webmaster, seo, google, bing, pinterest, search, console',
+ 'plan_classes' => '',
+ ),
+ 'videopress' =>
+ array (
+ 'name' => 'VideoPress',
+ 'description' => 'Save on hosting storage and bandwidth costs by streaming fast, ad-free video from our global network.',
+ 'sort' => '27',
+ 'recommendation_order' => '',
+ 'introduced' => '2.5',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => '',
+ 'module_tags' => 'Photos and Videos',
+ 'feature' => 'Writing',
+ 'additional_search_queries' => 'video, videos, videopress, video gallery, video player, videoplayer, mobile video, vimeo, youtube, html5 video, stream',
+ 'plan_classes' => '',
+ ),
+ 'widget-visibility' =>
+ array (
+ 'name' => 'Widget Visibility',
+ 'description' => 'Control where widgets appear on your site.',
+ 'sort' => '17',
+ 'recommendation_order' => '',
+ 'introduced' => '2.4',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Appearance',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'widget visibility, logic, conditional, widgets, widget',
+ 'plan_classes' => '',
+ ),
+ 'widgets' =>
+ array (
+ 'name' => 'Extra Sidebar Widgets',
+ 'description' => 'Provides additional widgets for use on your site.',
+ 'sort' => '4',
+ 'recommendation_order' => '',
+ 'introduced' => '1.2',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'No',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Social, Appearance',
+ 'feature' => 'Appearance',
+ 'additional_search_queries' => 'widget, widgets, facebook, gallery, twitter, gravatar, image, rss',
+ 'plan_classes' => '',
+ ),
+ 'woocommerce-analytics' =>
+ array (
+ 'name' => 'WooCommerce Analytics',
+ 'description' => 'Enhanced analytics for WooCommerce and Jetpack users.',
+ 'sort' => '13',
+ 'recommendation_order' => '',
+ 'introduced' => '8.4',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'Yes',
+ 'module_tags' => 'Other, Recommended',
+ 'feature' => 'Engagement',
+ 'additional_search_queries' => 'woocommerce, analytics, stats, statistics, tracking, analytics, views',
+ 'plan_classes' => '',
+ ),
+ 'wordads' =>
+ array (
+ 'name' => 'Ads',
+ 'description' => 'Earn income by allowing Jetpack to display high quality ads.',
+ 'sort' => '1',
+ 'recommendation_order' => '',
+ 'introduced' => '4.5.0',
+ 'changed' => '',
+ 'deactivate' => '',
+ 'free' => '',
+ 'requires_connection' => 'Yes',
+ 'requires_user_connection' => '',
+ 'auto_activate' => 'No',
+ 'module_tags' => 'Traffic, Appearance',
+ 'feature' => '',
+ 'additional_search_queries' => 'advertising, ad codes, ads',
+ 'plan_classes' => 'premium, business, security, complete',
+ ),
+ );
+ return isset( $module_info[ $key ] ) ? $module_info[ $key ] : null;
+}
+
+/**
+ * Return an array containing all module header names.
+ *
+ * @return array
+ */
+function jetpack_get_all_module_header_names() {
+ return array (
+ 'name' => 'Module Name',
+ 'description' => 'Module Description',
+ 'sort' => 'Sort Order',
+ 'recommendation_order' => 'Recommendation Order',
+ 'introduced' => 'First Introduced',
+ 'changed' => 'Major Changes In',
+ 'deactivate' => 'Deactivate',
+ 'free' => 'Free',
+ 'requires_connection' => 'Requires Connection',
+ 'requires_user_connection' => 'Requires User Connection',
+ 'auto_activate' => 'Auto Activate',
+ 'module_tags' => 'Module Tags',
+ 'feature' => 'Feature',
+ 'additional_search_queries' => 'Additional Search Queries',
+ 'plan_classes' => 'Plans',
+ );
+}
+
+/**
+ * Returns whether the file associated with the given slug has no module info.
+ *
+ * @param string $slug The slug name.
+ *
+ * @return bool Whether the file has no module info.
+ */
+function jetpack_has_no_module_info( $slug ) {
+ $no_info_slugs = array (
+ 0 => 'geo-location',
+ 1 => 'module-extras',
+ 2 => 'module-info',
+ 3 => 'plugin-search',
+ 4 => 'theme-tools',
+ );
+
+ return in_array( $slug, $no_info_slugs, true );
+}
diff --git a/plugins/jetpack/modules/module-info.php b/plugins/jetpack/modules/module-info.php
index 24f2dd16..e80c237d 100644
--- a/plugins/jetpack/modules/module-info.php
+++ b/plugins/jetpack/modules/module-info.php
@@ -8,9 +8,11 @@
* - The second creates a information block.
* It is hooked into `jetpack_module_more_info_ . $module`
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Redirect;
+
/**
* VaultPress (stub) support link.
*/
@@ -37,7 +39,7 @@ add_action( 'jetpack_module_more_info_vaultpress', 'vaultpress_jetpack_more_info
* Gravatar Hovercards support link.
*/
function grofiles_load_more_link() {
- echo 'https://jetpack.com/support/gravatar-hovercards/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-gravatar-hovercards' ) );
}
add_filter( 'jetpack_learn_more_button_gravatar-hovercards', 'grofiles_load_more_link' );
@@ -57,7 +59,7 @@ add_action( 'jetpack_module_more_info_gravatar-hovercards', 'grofiles_more_info'
* Shortcodes support link.
*/
function jetpack_shortcodes_load_more_link() {
- echo 'https://jetpack.com/support/shortcode-embeds/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-shortcode-embeds' ) );
}
add_filter( 'jetpack_learn_more_button_shortcodes', 'jetpack_shortcodes_load_more_link' );
@@ -98,7 +100,7 @@ add_action( 'jetpack_module_more_info_shortlinks', 'wpme_more_info' );
* Site Stats support link.
*/
function stats_load_more_link() {
- echo 'https://jetpack.com/support/wordpress-com-stats/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-wordpress-com-stats' ) );
}
add_filter( 'jetpack_learn_more_button_stats', 'stats_load_more_link' );
@@ -118,7 +120,7 @@ add_action( 'jetpack_module_more_info_stats', 'stats_more_info' );
* Publicize support link.
*/
function publicize_load_more_link() {
- echo 'https://jetpack.com/support/publicize/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-publicize' ) );
}
add_filter( 'jetpack_learn_more_button_publicize', 'publicize_load_more_link' );
@@ -138,7 +140,7 @@ add_action( 'jetpack_module_more_info_publicize', 'publicize_more_info' );
* Notifications
*/
function notes_load_more_link() {
- echo 'https://jetpack.com/support/notifications/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-notifications' ) );
}
add_filter( 'jetpack_learn_more_button_notes', 'notes_load_more_link' );
@@ -158,7 +160,7 @@ add_filter( 'jetpack_module_more_info_notes', 'notes_more_info' );
* LaTeX support link.
*/
function latex_load_more_link() {
- echo 'https://jetpack.com/support/beautiful-math-with-latex/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-beautiful-math-with-latex' ) );
}
add_filter( 'jetpack_learn_more_button_latex', 'latex_load_more_link' );
@@ -170,7 +172,7 @@ function latex_more_info() {
'LaTeX is a powerful markup language for writing complex mathematical equations and formulas.
Jetpack combines the power of LaTeX and the simplicity of WordPress to give you the ultimate
in math blogging platforms. Use $latex your latex code here$ or [latex]your latex code here[/latex]
- to include in your posts and comments. Enjoy all sorts of options and embrace your inner nerd.',
+ to include in your posts and comments. Enjoy all sorts of options and embrace your inner nerd.',
'jetpack'
);
}
@@ -180,7 +182,7 @@ add_action( 'jetpack_module_more_info_latex', 'latex_more_info' );
* Sharing support link.
*/
function sharedaddy_load_more_link() {
- echo 'https://jetpack.com/support/sharing/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-sharing' ) );
}
add_filter( 'jetpack_learn_more_button_sharedaddy', 'sharedaddy_load_more_link' );
@@ -201,7 +203,7 @@ add_action( 'jetpack_module_more_info_sharedaddy', 'sharedaddy_more_info' );
* Extra Sidebar Widgets support link.
*/
function jetpack_widgets_load_more_link() {
- echo 'https://jetpack.com/support/extra-sidebar-widgets/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-extra-sidebar-widgets' ) );
}
add_filter( 'jetpack_learn_more_button_widgets', 'jetpack_widgets_load_more_link' );
@@ -222,7 +224,7 @@ add_action( 'jetpack_module_more_info_widgets', 'jetpack_widgets_more_info' );
* Subscriptions support link.
*/
function jetpack_subscriptions_load_more_link() {
- echo 'https://jetpack.com/support/subscriptions/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-subscriptions' ) );
}
add_action( 'jetpack_learn_more_button_subscriptions', 'jetpack_subscriptions_load_more_link' );
@@ -242,7 +244,7 @@ add_action( 'jetpack_module_more_info_subscriptions', 'jetpack_subscriptions_mor
* Enhanced Distribution support link.
*/
function jetpack_enhanced_distribution_more_link() {
- echo 'https://jetpack.com/support/enhanced-distribution/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-enhanced-distribution' ) );
}
add_action( 'jetpack_learn_more_button_enhanced-distribution', 'jetpack_enhanced_distribution_more_link' );
@@ -258,12 +260,11 @@ function jetpack_enhanced_distribution_more_info() {
}
add_action( 'jetpack_module_more_info_enhanced-distribution', 'jetpack_enhanced_distribution_more_info' );
-
/**
* Protect support link.
*/
function jetpack_protect_more_link() {
- echo 'https://jetpack.com/support/protect/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-protect' ) );
}
add_action( 'jetpack_learn_more_button_protect', 'jetpack_protect_more_link' );
@@ -284,7 +285,7 @@ add_action( 'jetpack_module_more_info_protect', 'jetpack_protect_more_info' );
* JSON API support link.
*/
function jetpack_json_api_more_link() {
- echo 'https://jetpack.com/support/json-api/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-json-api' ) );
}
add_action( 'jetpack_learn_more_button_json-api', 'jetpack_json_api_more_link' );
@@ -304,7 +305,7 @@ add_action( 'jetpack_module_more_info_json-api', 'jetpack_json_api_more_info' );
* Contact Form support link.
*/
function jetpack_contact_form_learn_more_button() {
- echo 'https://jetpack.com/support/contact-form/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-contact-form' ) );
}
add_action( 'jetpack_learn_more_button_contact-form', 'jetpack_contact_form_learn_more_button' );
@@ -325,7 +326,7 @@ add_action( 'jetpack_module_more_info_contact-form', 'jetpack_contact_form_more_
* Comments support link.
*/
function jetpack_comments_learn_more_button() {
- echo 'https://jetpack.com/support/comments';
+ echo esc_url( Redirect::get_url( 'jetpack-support-comments' ) );
}
add_action( 'jetpack_learn_more_button_comments', 'jetpack_comments_learn_more_button' );
@@ -345,7 +346,7 @@ add_action( 'jetpack_module_more_info_comments', 'jetpack_comments_more_info' );
* Carousel support link.
*/
function jetpack_carousel_learn_more_button() {
- echo 'https://jetpack.com/support/carousel';
+ echo esc_url( Redirect::get_url( 'jetpack-support-carousel' ) );
}
add_action( 'jetpack_learn_more_button_carousel', 'jetpack_carousel_learn_more_button' );
@@ -365,7 +366,7 @@ add_action( 'jetpack_module_more_info_carousel', 'jetpack_carousel_more_info' );
* Custom CSS support link.
*/
function jetpack_custom_css_more_button() {
- echo 'https://jetpack.com/support/custom-css';
+ echo esc_url( Redirect::get_url( 'jetpack-support-custom-css' ) );
}
add_action( 'jetpack_learn_more_button_custom-css', 'jetpack_custom_css_more_button' );
@@ -385,7 +386,7 @@ add_action( 'jetpack_module_more_info_custom-css', 'jetpack_custom_css_more_info
* Masterbar support link.
*/
function jetpack_masterbar_more_link() {
- echo 'https://jetpack.com/support/masterbar/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-masterbar' ) );
}
add_action( 'jetpack_learn_more_button_masterbar', 'jetpack_masterbar_more_link' );
@@ -402,31 +403,10 @@ function jetpack_masterbar_more_info() {
add_action( 'jetpack_module_more_info_masterbar', 'jetpack_masterbar_more_info' );
/**
- * Mobile Theme support link.
- */
-function jetpack_minileven_more_button() {
- echo 'https://jetpack.com/support/mobile-theme';
-}
-add_action( 'jetpack_learn_more_button_minileven', 'jetpack_minileven_more_button' );
-
-/**
- * Mobile Theme description.
- */
-function jetpack_minileven_more_info() {
- esc_html_e(
- "Automatically optimize your site for mobile. Jetpack's mobile theme uses the header image,
- background, and widgets from your current theme. Post format support means your photos and galleries
- will also look fantastic.",
- 'jetpack'
- );
-}
-add_action( 'jetpack_module_more_info_minileven', 'jetpack_minileven_more_info' );
-
-/**
* Infinite Scroll support link.
*/
function jetpack_infinite_scroll_more_button() {
- echo 'https://jetpack.com/support/infinite-scroll';
+ echo esc_url( Redirect::get_url( 'jetpack-support-infinite-scroll' ) );
}
add_action( 'jetpack_learn_more_button_infinite-scroll', 'jetpack_infinite_scroll_more_button' );
@@ -446,7 +426,7 @@ add_action( 'jetpack_module_more_info_infinite-scroll', 'jetpack_infinite_scroll
* Post by Email support link.
*/
function jetpack_post_by_email_more_link() {
- echo 'https://jetpack.com/support/post-by-email/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-post-by-email' ) );
}
add_action( 'jetpack_learn_more_button_post-by-email', 'jetpack_post_by_email_more_link' );
@@ -465,7 +445,7 @@ add_action( 'jetpack_module_more_info_post-by-email', 'jetpack_post_by_email_mor
* Photon support link.
*/
function jetpack_photon_more_link() {
- echo 'https://jetpack.com/support/photon';
+ echo esc_url( Redirect::get_url( 'jetpack-support-photon' ) );
}
add_action( 'jetpack_learn_more_button_photon', 'jetpack_photon_more_link' );
@@ -485,7 +465,7 @@ add_action( 'jetpack_module_more_info_photon', 'jetpack_photon_more_info' );
* Lazy Images support link.
*/
function jetpack_lazy_images_more_link() {
- echo 'https://jetpack.com/support/lazy-images/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-lazy-images' ) );
}
add_action( 'jetpack_learn_more_button_lazy-images', 'jetpack_lazy_images_more_link' );
@@ -506,7 +486,7 @@ add_action( 'jetpack_module_more_info_lazy-images', 'jetpack_lazy_images_more_in
* Tiled Galleries support link.
*/
function jetpack_tiled_gallery_more_link() {
- echo 'https://jetpack.com/support/tiled-galleries/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-tiled-galleries' ) );
}
add_action( 'jetpack_learn_more_button_tiled-gallery', 'jetpack_tiled_gallery_more_link' );
@@ -526,7 +506,7 @@ add_action( 'jetpack_module_more_info_tiled-gallery', 'jetpack_tiled_gallery_mor
* Likes support link.
*/
function jetpack_likes_more_link() {
- echo 'https://jetpack.com/support/likes/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-likes' ) );
}
add_action( 'jetpack_learn_more_button_likes', 'jetpack_likes_more_link' );
@@ -546,7 +526,7 @@ add_action( 'jetpack_module_more_info_likes', 'jetpack_likes_more_info' );
* Widget Visibility support link.
*/
function jetpack_widget_visibility_more_link() {
- echo 'https://jetpack.com/support/widget-visibility/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-widget-visibility' ) );
}
add_action( 'jetpack_learn_more_button_widget-visibility', 'jetpack_widget_visibility_more_link' );
@@ -566,7 +546,7 @@ add_action( 'jetpack_module_more_info_widget-visibility', 'jetpack_widget_visibi
* VideoPress support link.
*/
function jetpack_videopress_more_link() {
- echo 'https://jetpack.com/support/videopress/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-videopress' ) );
}
add_action( 'jetpack_learn_more_button_videopress', 'jetpack_videopress_more_link' );
@@ -586,7 +566,7 @@ add_action( 'jetpack_module_more_info_videopress', 'jetpack_videopress_more_info
* SSO support link.
*/
function jetpack_sso_more_link() {
- echo 'https://jetpack.com/support/sso/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-sso' ) );
}
add_action( 'jetpack_learn_more_button_sso', 'jetpack_sso_more_link' );
@@ -606,7 +586,7 @@ add_action( 'jetpack_module_more_info_sso', 'jetpack_sso_more_info' );
* Monitor support link.
*/
function jetpack_monitor_more_link() {
- echo 'https://jetpack.com/support/monitor/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-monitor' ) );
}
add_action( 'jetpack_learn_more_button_monitor', 'jetpack_monitor_more_link' );
@@ -626,7 +606,7 @@ add_action( 'jetpack_module_more_info_monitor', 'jetpack_monitor_more_info' );
* Related Posts support link.
*/
function jetpack_related_posts_more_button() {
- echo 'https://jetpack.com/support/related-posts/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-related-posts' ) );
}
add_action( 'jetpack_learn_more_button_related-posts', 'jetpack_related_posts_more_button' );
@@ -646,7 +626,7 @@ add_action( 'jetpack_module_more_info_related-posts', 'jetpack_related_posts_mor
* Markdown support link.
*/
function jetpack_markdown_more_link() {
- echo 'https://jetpack.com/support/markdown/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-markdown' ) );
}
add_action( 'jetpack_learn_more_button_markdown', 'jetpack_markdown_more_link' );
@@ -666,7 +646,7 @@ add_action( 'jetpack_module_more_info_markdown', 'jetpack_markdown_more_info' );
* Site Verification Tools support link.
*/
function jetpack_verification_tools_more_link() {
- echo 'https://jetpack.com/support/site-verification-tools/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-site-verification-tools' ) );
}
add_action( 'jetpack_learn_more_button_verification-tools', 'jetpack_verification_tools_more_link' );
@@ -675,7 +655,7 @@ add_action( 'jetpack_learn_more_button_verification-tools', 'jetpack_verificatio
*/
function jetpack_verification_tools_more_info() {
esc_html_e(
- 'Verify your site ownership with services like Google, Bing, Pinterest, and Yandex. This gives you access to
+ 'Verify your site ownership with services like Google, Bing, Pinterest, Yandex, and Facebook. This gives you access to
advanced features on these services and get verification badges.',
'jetpack'
);
@@ -686,7 +666,7 @@ add_action( 'jetpack_module_more_info_verification-tools', 'jetpack_verification
* SEO Tools support link.
*/
function jetpack_seo_tools_more_link() {
- echo 'https://jetpack.com/support/seo-tools/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-seo-tools' ) );
}
add_action( 'jetpack_learn_more_button_seo-tools', 'jetpack_seo_tools_more_link' );
@@ -705,7 +685,7 @@ add_action( 'jetpack_module_more_info_seo-tools', 'jetpack_seo_tools_more_info'
* Custom Content Types support link.
*/
function jetpack_custom_content_types_more_link() {
- echo 'https://jetpack.com/support/custom-content-types/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-custom-content-types' ) );
}
add_action( 'jetpack_learn_more_button_custom-content-types', 'jetpack_custom_content_types_more_link' );
@@ -725,7 +705,7 @@ add_action( 'jetpack_module_more_info_custom-content-types', 'jetpack_custom_con
* Manage support link.
*/
function jetpack_manage_more_link() {
- echo 'https://jetpack.com/support/site-management/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-site-management' ) );
}
add_action( 'jetpack_learn_more_button_manage', 'jetpack_manage_more_link' );
@@ -747,7 +727,7 @@ add_action( 'jetpack_module_more_info_manage', 'jetpack_custom_jetpack_manage' )
* Sitemaps support link.
*/
function jetpack_sitemaps_more_link() {
- echo 'https://jetpack.com/support/sitemaps/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-sitemaps' ) );
}
add_action( 'jetpack_learn_more_button_sitemaps', 'jetpack_sitemaps_more_link' );
@@ -786,7 +766,7 @@ add_action( 'jetpack_module_more_info_wordads', 'jetpack_wordads_more_info' );
* Google Analytics support link.
*/
function jetpack_google_analytics_more_link() {
- echo 'https://jetpack.com/support/google-analytics';
+ echo esc_url( Redirect::get_url( 'jetpack-support-google-analytics' ) );
}
add_action( 'jetpack_learn_more_button_google-analytics', 'jetpack_google_analytics_more_link' );
@@ -805,7 +785,7 @@ add_action( 'jetpack_module_more_info_google-analytics', 'jetpack_google_analyti
* WooCommerce Analytics support link.
*/
function jetpack_woocommerce_analytics_more_link() {
- echo 'https://jetpack.com/support/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-woocommerce-analytics' ) );
}
add_action( 'jetpack_learn_more_button_woocommerce-analytics', 'jetpack_woocommerce_analytics_more_link' );
@@ -824,7 +804,7 @@ add_action( 'jetpack_module_more_info_woocommerce-analytics', 'jetpack_woocommer
* Search support link.
*/
function jetpack_search_more_link() {
- echo 'https://jetpack.com/support/search/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-search' ) );
}
add_action( 'jetpack_learn_more_button_search', 'jetpack_search_more_link' );
@@ -833,7 +813,7 @@ add_action( 'jetpack_learn_more_button_search', 'jetpack_search_more_link' );
*/
function jetpack_search_more_info() {
esc_html_e(
- 'Enhanced search, powered by Elasticsearch, a powerful replacement for WordPress search.',
+ 'Help visitors quickly find answers with highly relevant instant search results and powerful filtering.',
'jetpack'
);
}
@@ -843,7 +823,7 @@ add_action( 'jetpack_module_more_info_search', 'jetpack_search_more_info' );
* Comment Likes support link.
*/
function jetpack_comment_likes_more_link() {
- echo 'https://jetpack.com/support/comment-likes/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-comment-likes' ) );
}
add_action( 'jetpack_learn_more_button_comment-likes', 'jetpack_comment_likes_more_link' );
@@ -862,7 +842,7 @@ add_action( 'jetpack_module_more_info_comment-likes', 'jetpack_comment_likes_mor
* Asset CDN support link.
*/
function jetpack_assetcdn_more_link() {
- echo 'https://jetpack.com/support/asset-cdn/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-asset-cdn' ) );
}
add_action( 'jetpack_learn_more_button_photon-cdn', 'jetpack_assetcdn_more_link' );
@@ -882,7 +862,7 @@ add_action( 'jetpack_module_more_info_photon-cdn', 'jetpack_assetcdn_more_info'
* Copy Post support link.
*/
function jetpack_copy_post_more_link() {
- echo 'https://jetpack.com/support/copy-post-2/';
+ echo esc_url( Redirect::get_url( 'jetpack-support-copy-post' ) );
}
add_action( 'jetpack_learn_more_button_copy-post', 'jetpack_copy_post_more_link' );
diff --git a/plugins/jetpack/modules/monitor.php b/plugins/jetpack/modules/monitor.php
index f5f5566f..75f9e8ac 100644
--- a/plugins/jetpack/modules/monitor.php
+++ b/plugins/jetpack/modules/monitor.php
@@ -1,55 +1,79 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Module Name: Monitor
- * Module Description: Jetpack’s downtime monitoring will continuously watch your site, and alert you the moment that downtime is detected.
+ * Module Description: Jetpack’s downtime monitoring will continuously watch your site and alert you the moment that downtime is detected.
* Sort Order: 28
* Recommendation Order: 10
* First Introduced: 2.6
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: Recommended
* Feature: Security
* Additional Search Queries: monitor, uptime, downtime, monitoring, maintenance, maintenance mode, offline, site is down, site down, down, repair, error
+ *
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+
+/**
+ * Class Jetpack_Monitor
+ */
class Jetpack_Monitor {
+ /**
+ * Name of the module.
+ *
+ * @var string Name of module.
+ */
public $module = 'monitor';
- function __construct() {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
add_action( 'jetpack_modules_loaded', array( $this, 'jetpack_modules_loaded' ) );
add_action( 'jetpack_activate_module_monitor', array( $this, 'activate_module' ) );
}
+ /**
+ * Runs upon module activation.
+ *
+ * @return void
+ */
public function activate_module() {
- if ( Jetpack::is_user_connected() ) {
+ if ( ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
self::update_option_receive_jetpack_monitor_notification( true );
}
}
+ /**
+ * Runs on the jetpack_modules_loaded hook to enable configuation.
+ *
+ * @return void
+ */
public function jetpack_modules_loaded() {
Jetpack::enable_module_configurable( $this->module );
}
- public function is_active() {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
- $xml->query( 'jetpack.monitor.isActive' );
- if ( $xml->isError() ) {
- wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
- }
- return $xml->getResponse();
- }
-
+ /**
+ * Whether to receive the notifications.
+ *
+ * @param bool $value `true` to enable notifications, `false` to disable them.
+ *
+ * @return bool
+ */
public function update_option_receive_jetpack_monitor_notification( $value ) {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => get_current_user_id(),
+ )
+ );
$xml->query( 'jetpack.monitor.setNotifications', (bool) $value );
if ( $xml->isError() ) {
- wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
+ wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ) );
}
// To be used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
@@ -68,15 +92,17 @@ class Jetpack_Monitor {
*
* @return boolean|WP_Error
*/
- static function user_receives_notifications( $die_on_error = true ) {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
+ public static function user_receives_notifications( $die_on_error = true ) {
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => get_current_user_id(),
+ )
+ );
$xml->query( 'jetpack.monitor.isUserInNotifications' );
if ( $xml->isError() ) {
if ( $die_on_error ) {
- wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
+ wp_die( sprintf( '%s: %s', esc_html( $xml->getErrorCode() ), esc_html( $xml->getErrorMessage() ) ), 400 );
} else {
return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage(), array( 'status' => 400 ) );
}
@@ -84,46 +110,14 @@ class Jetpack_Monitor {
return $xml->getResponse();
}
- public function activate_monitor() {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
-
- $xml->query( 'jetpack.monitor.activate' );
-
- if ( $xml->isError() ) {
- wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
- }
- return true;
- }
-
- public function deactivate_monitor() {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
-
- $xml->query( 'jetpack.monitor.deactivate' );
-
- if ( $xml->isError() ) {
- wp_die( sprintf( '%s: %s', $xml->getErrorCode(), $xml->getErrorMessage() ) );
- }
- return true;
- }
-
- /*
+ /**
* Returns date of the last downtime.
*
* @since 4.0.0
* @return date in YYYY-MM-DD HH:mm:ss format
*/
public function monitor_get_last_downtime() {
-// if ( $last_down = get_transient( 'monitor_last_downtime' ) ) {
-// return $last_down;
-// }
-
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id()
- ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.monitor.getLastDowntime' );
@@ -138,4 +132,4 @@ class Jetpack_Monitor {
}
-new Jetpack_Monitor;
+new Jetpack_Monitor();
diff --git a/plugins/jetpack/modules/notes.php b/plugins/jetpack/modules/notes.php
index 04ef8b43..18ee3567 100644
--- a/plugins/jetpack/modules/notes.php
+++ b/plugins/jetpack/modules/notes.php
@@ -1,108 +1,103 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Module Name: Notifications
* Module Description: Receive instant notifications of site comments and likes.
* Sort Order: 13
* First Introduced: 1.9
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: Yes
* Module Tags: Other
* Feature: General
* Additional Search Queries: notification, notifications, toolbar, adminbar, push, comments
+ *
+ * @package automattic/jetpack
*/
-if ( !defined( 'JETPACK_NOTES__CACHE_BUSTER' ) ) define( 'JETPACK_NOTES__CACHE_BUSTER', JETPACK__VERSION . '-' . gmdate( 'oW' ) );
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+if ( ! defined( 'JETPACK_NOTES__CACHE_BUSTER' ) ) {
+ define( 'JETPACK_NOTES__CACHE_BUSTER', JETPACK__VERSION . '-' . gmdate( 'oW' ) );
+}
+
+/**
+ * Notifications class.
+ */
class Jetpack_Notifications {
+ /**
+ * Jetpack object.
+ *
+ * @var bool|Jetpack Jetpack object.
+ */
public $jetpack = false;
/**
* Singleton
+ *
* @static
*/
public static function init() {
static $instance = array();
- if ( !$instance ) {
- $instance[0] = new Jetpack_Notifications;
+ if ( ! $instance ) {
+ $instance[0] = new Jetpack_Notifications();
}
return $instance[0];
}
- function __construct() {
+ /**
+ * Constructor.
+ */
+ private function __construct() {
$this->jetpack = Jetpack::init();
- add_action( 'init', array( &$this, 'action_init' ) );
- }
-
- function wpcom_static_url($file) {
- $i = hexdec( substr( md5( $file ), -1 ) ) % 2;
- return 'https://s' . $i . '.wp.com' . $file;
+ add_action( 'init', array( $this, 'action_init' ) );
}
- // return the major version of Internet Explorer the viewer is using or false if it's not IE
- public static function get_internet_explorer_version() {
- static $version;
- if ( isset( $version ) ) {
- return $version;
- }
-
- $user_agent = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : '';
-
- preg_match( '/MSIE (\d+)/', $user_agent, $matches );
- $version = empty( $matches[1] ) ? null : $matches[1];
- if ( empty( $version ) || !$version ) {
- return false;
- }
- return $version;
- }
-
- public static function current_browser_is_supported() {
- static $supported;
-
- if ( isset( $supported ) ) {
- return $supported;
- }
-
- $ie_version = self::get_internet_explorer_version();
- if ( false === $ie_version ) {
- return $supported = true;
- }
-
- if ( $ie_version < 8 ) {
- return $supported = false;
- }
-
- return $supported = true;
+ /**
+ * Adds s0.wp.com to a file path.
+ *
+ * @param string $file File path.
+ *
+ * @return string
+ */
+ public function wpcom_static_url( $file ) {
+ return 'https://s0.wp.com' . $file;
}
- function action_init() {
- //syncing must wait until after init so
- //post types that support comments
- $filt_post_types = array();
- $all_post_types = get_post_types();
- foreach ( $all_post_types as $post_type ) {
- if ( post_type_supports( $post_type, 'comments' ) ) {
- $filt_post_types[] = $post_type;
- }
- }
-
- if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
+ /**
+ * Init the notifications admin bar.
+ *
+ * @return void
+ */
+ public function action_init() {
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
+ }
- if ( !has_filter( 'show_admin_bar', '__return_true' ) && !is_user_logged_in() )
+ if ( ! has_filter( 'show_admin_bar', '__return_true' ) && ! is_user_logged_in() ) {
return;
+ }
- if ( !self::current_browser_is_supported() )
+ // Do not show notifications in the Site Editor, which is always in fullscreen mode.
+ global $pagenow;
+ // phpcs:ignore WordPress.Security.NonceVerification
+ if ( 'admin.php' === $pagenow && isset( $_GET['page'] ) && 'gutenberg-edit-site' === $_GET['page'] ) {
return;
+ }
- add_action( 'admin_bar_menu', array( &$this, 'admin_bar_menu'), 120 );
- add_action( 'wp_head', array( &$this, 'styles_and_scripts'), 120 );
- add_action( 'admin_head', array( &$this, 'styles_and_scripts') );
+ add_action( 'admin_bar_menu', array( $this, 'admin_bar_menu' ), 120 );
+ add_action( 'wp_head', array( $this, 'styles_and_scripts' ), 120 );
+ add_action( 'admin_head', array( $this, 'styles_and_scripts' ) );
}
- function styles_and_scripts() {
+ /**
+ * Enqueues and registers styles/scripts for notifications.
+ *
+ * @return void
+ */
+ public function styles_and_scripts() {
$is_rtl = is_rtl();
if ( Jetpack::is_module_active( 'masterbar' ) ) {
@@ -128,27 +123,27 @@ class Jetpack_Notifications {
$this->print_js();
- // attempt to use core or plugin libraries if registered
+ // attempt to use core or plugin libraries if registered.
$script_handles = array();
- if ( !wp_script_is( 'mustache', 'registered' ) ) {
- wp_register_script( 'mustache', $this->wpcom_static_url( '/wp-content/js/mustache.js' ), null, JETPACK_NOTES__CACHE_BUSTER );
+ if ( ! wp_script_is( 'mustache', 'registered' ) ) {
+ wp_register_script( 'mustache', $this->wpcom_static_url( '/wp-content/js/mustache.js' ), null, JETPACK_NOTES__CACHE_BUSTER, true );
}
$script_handles[] = 'mustache';
- if ( !wp_script_is( 'underscore', 'registered' ) ) {
- wp_register_script( 'underscore', $this->wpcom_static_url( '/wp-includes/js/underscore.min.js' ), null, JETPACK_NOTES__CACHE_BUSTER );
+ if ( ! wp_script_is( 'underscore', 'registered' ) ) {
+ wp_register_script( 'underscore', $this->wpcom_static_url( '/wp-includes/js/underscore.min.js' ), null, JETPACK_NOTES__CACHE_BUSTER, true );
}
$script_handles[] = 'underscore';
- if ( !wp_script_is( 'backbone', 'registered' ) ) {
- wp_register_script( 'backbone', $this->wpcom_static_url( '/wp-includes/js/backbone.min.js' ), array( 'underscore' ), JETPACK_NOTES__CACHE_BUSTER );
+ if ( ! wp_script_is( 'backbone', 'registered' ) ) {
+ wp_register_script( 'backbone', $this->wpcom_static_url( '/wp-includes/js/backbone.min.js' ), array( 'underscore' ), JETPACK_NOTES__CACHE_BUSTER, true );
}
$script_handles[] = 'backbone';
- wp_register_script( 'wpcom-notes-common', $this->wpcom_static_url( '/wp-content/mu-plugins/notes/notes-common-v2.js' ), array( 'jquery', 'underscore', 'backbone', 'mustache' ), JETPACK_NOTES__CACHE_BUSTER );
+ wp_register_script( 'wpcom-notes-common', $this->wpcom_static_url( '/wp-content/mu-plugins/notes/notes-common-v2.js' ), array( 'jquery', 'underscore', 'backbone', 'mustache' ), JETPACK_NOTES__CACHE_BUSTER, true );
$script_handles[] = 'wpcom-notes-common';
$script_handles[] = 'jquery';
$script_handles[] = 'jquery-migrate';
$script_handles[] = 'jquery-core';
- wp_enqueue_script( 'wpcom-notes-admin-bar', $this->wpcom_static_url( '/wp-content/mu-plugins/notes/admin-bar-v2.js' ), array( 'wpcom-notes-common' ), JETPACK_NOTES__CACHE_BUSTER );
+ wp_enqueue_script( 'wpcom-notes-admin-bar', $this->wpcom_static_url( '/wp-content/mu-plugins/notes/admin-bar-v2.js' ), array( 'wpcom-notes-common' ), JETPACK_NOTES__CACHE_BUSTER, true );
$script_handles[] = 'wpcom-notes-admin-bar';
if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
@@ -166,15 +161,21 @@ class Jetpack_Notifications {
}
}
- function admin_bar_menu() {
- global $wp_admin_bar, $current_blog;
+ /**
+ * Adds notifications bubble to the admin bar.
+ *
+ * @return void
+ */
+ public function admin_bar_menu() {
+ global $wp_admin_bar;
- if ( !is_object( $wp_admin_bar ) )
+ if ( ! is_object( $wp_admin_bar ) ) {
return;
+ }
$wpcom_locale = get_locale();
- if ( !class_exists( 'GP_Locales' ) ) {
+ if ( ! class_exists( 'GP_Locales' ) ) {
if ( defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) && file_exists( JETPACK__GLOTPRESS_LOCALES_PATH ) ) {
require JETPACK__GLOTPRESS_LOCALES_PATH;
}
@@ -188,32 +189,39 @@ class Jetpack_Notifications {
}
$classes = 'wpnt-loading wpn-read';
- $wp_admin_bar->add_menu( array(
- 'id' => 'notes',
- 'title' => '<span id="wpnt-notes-unread-count" class="' . esc_attr( $classes ) . '">
+ $wp_admin_bar->add_menu(
+ array(
+ 'id' => 'notes',
+ 'title' => '<span id="wpnt-notes-unread-count" class="' . esc_attr( $classes ) . '">
<span class="noticon noticon-notification"></span>
</span>',
- 'meta' => array(
- 'html' => '<div id="wpnt-notes-panel2" class="intrinsic-ignore" style="display:none" lang="' . esc_attr( $wpcom_locale ) . '" dir="' . ( is_rtl() ? 'rtl' : 'ltr' ) . '"><div class="wpnt-notes-panel-header"><span class="wpnt-notes-header">' . __( 'Notifications', 'jetpack' ) . '</span><span class="wpnt-notes-panel-link"></span></div></div>',
- 'class' => 'menupop',
- ),
- 'parent' => 'top-secondary',
- ) );
+ 'meta' => array(
+ 'html' => '<div id="wpnt-notes-panel2" class="intrinsic-ignore" style="display:none" lang="' . esc_attr( $wpcom_locale ) . '" dir="' . ( is_rtl() ? 'rtl' : 'ltr' ) . '"><div class="wpnt-notes-panel-header"><span class="wpnt-notes-header">' . __( 'Notifications', 'jetpack' ) . '</span><span class="wpnt-notes-panel-link"></span></div></div>',
+ 'class' => 'menupop',
+ ),
+ 'parent' => 'top-secondary',
+ )
+ );
}
- function print_js() {
- $link_accounts_url = is_user_logged_in() && !Jetpack::is_user_connected() ? Jetpack::admin_url() : false;
-?>
+ /**
+ * Echos the Notes JS.
+ *
+ * @return void
+ */
+ public function print_js() {
+ $link_accounts_url = is_user_logged_in() && ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ? Jetpack::admin_url() : false;
+ ?>
<script data-ampdevmode type="text/javascript">
/* <![CDATA[ */
var wpNotesIsJetpackClient = true;
var wpNotesIsJetpackClientV2 = true;
-<?php if ( $link_accounts_url ) : ?>
- var wpNotesLinkAccountsURL = '<?php print $link_accounts_url; ?>';
+ <?php if ( $link_accounts_url ) : ?>
+ var wpNotesLinkAccountsURL = '<?php echo esc_url( $link_accounts_url ); ?>';
<?php endif; ?>
/* ]]> */
</script>
-<?php
+ <?php
}
}
diff --git a/plugins/jetpack/modules/photon-cdn.php b/plugins/jetpack/modules/photon-cdn.php
index 697344bd..f4e70e6a 100644
--- a/plugins/jetpack/modules/photon-cdn.php
+++ b/plugins/jetpack/modules/photon-cdn.php
@@ -12,11 +12,11 @@
* Additional Search Queries: site accelerator, accelerate, static, assets, javascript, css, files, performance, cdn, bandwidth, content delivery network, pagespeed, combine js, optimize css
*/
+use Automattic\Jetpack\Assets;
+
$GLOBALS['concatenate_scripts'] = false;
-Jetpack::dns_prefetch( array(
- '//c0.wp.com',
-) );
+Assets::add_resource_hint( '//c0.wp.com', 'dns-prefetch' );
class Jetpack_Photon_Static_Assets_CDN {
const CDN = 'https://c0.wp.com/';
@@ -31,6 +31,7 @@ class Jetpack_Photon_Static_Assets_CDN {
add_action( 'admin_print_styles', array( __CLASS__, 'cdnize_assets' ) );
add_action( 'wp_footer', array( __CLASS__, 'cdnize_assets' ) );
add_filter( 'load_script_textdomain_relative_path', array( __CLASS__, 'fix_script_relative_path' ), 10, 2 );
+ add_filter( 'load_script_translation_file', array( __CLASS__, 'fix_local_script_translation_path' ), 10, 3 );
}
/**
@@ -113,10 +114,36 @@ class Jetpack_Photon_Static_Assets_CDN {
// We only treat URLs that have wp-includes in them. Cases like language textdomains
// can also use this filter, they don't need to be touched because they are local paths.
- if ( false === $strpos ) {
- return $relative;
+ if ( false !== $strpos ) {
+ return substr( $src, 1 + $strpos );
+ }
+
+ // Get the local path from a URL which was CDN'ed by cdnize_plugin_assets().
+ if ( preg_match( '#^' . preg_quote( self::CDN, '#' ) . 'p/[^/]+/[^/]+/(.*)$#', $src, $m ) ) {
+ return $m[1];
+ }
+
+ return $relative;
+ }
+
+ /**
+ * Ensure use of the correct local path when loading the JavaScript translation file for a CDN'ed asset.
+ *
+ * @param string|false $file Path to the translation file to load. False if there isn't one.
+ * @param string $handle The script handle.
+ * @param string $domain The text domain.
+ *
+ * @return string The transformed local languages path.
+ */
+ public static function fix_local_script_translation_path( $file, $handle, $domain ) {
+ global $wp_scripts;
+
+ // This is a rewritten plugin URL, so load the language file from the plugins path.
+ if ( $file && isset( $wp_scripts->registered[ $handle ] ) && wp_startswith( $wp_scripts->registered[ $handle ]->src, self::CDN . 'p' ) ) {
+ return WP_LANG_DIR . '/plugins/' . basename( $file );
}
- return substr( $src, 1 + $strpos );
+
+ return $file;
}
/**
@@ -226,7 +253,7 @@ class Jetpack_Photon_Static_Assets_CDN {
}
if ( is_numeric( $cache[ $plugin ][ $version ] ) ) {
// Cache an empty result for up to 24h.
- if ( intval( $cache[ $plugin ][ $version ] ) + DAY_IN_SECONDS > time() ) {
+ if ( (int) $cache[ $plugin ][ $version ] + DAY_IN_SECONDS > time() ) {
return array();
}
}
diff --git a/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php b/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php
index 830df56d..8a179c92 100644
--- a/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php
+++ b/plugins/jetpack/modules/photon-cdn/jetpack-manifest.php
@@ -2,458 +2,532 @@
// This file is autogenerated by bin/build-asset-cdn-json.php
$assets = array (
- 0 => 'css/jetpack-admin.min.css',
- 1 => 'css/jetpack-idc.min.css',
- 2 => 'css/dashboard-widget-rtl.min.css',
- 3 => 'css/jetpack-admin-rtl.css',
- 4 => 'css/jetpack-idc-rtl.css',
- 5 => 'css/jetpack-icons-rtl.css',
- 6 => 'css/jetpack-icons.min.css',
- 7 => 'css/jetpack-idc-admin-bar.min.css',
- 8 => 'css/jetpack-admin.css',
- 9 => 'css/jetpack-idc-admin-bar-rtl.css',
- 10 => 'css/jetpack-idc-admin-bar-rtl.min.css',
- 11 => 'css/jetpack-idc-rtl.min.css',
- 12 => 'css/jetpack-icons.css',
- 13 => 'css/jetpack.css',
- 14 => 'css/jetpack-connect.css',
- 15 => 'css/jetpack-connect-rtl.min.css',
- 16 => 'css/jetpack-icons-rtl.min.css',
- 17 => 'css/jetpack-idc.css',
- 18 => 'css/jetpack-banners-rtl.min.css',
- 19 => 'css/dashboard-widget.min.css',
- 20 => 'css/jetpack-admin-rtl.min.css',
- 21 => 'css/dashboard-widget-rtl.css',
- 22 => 'css/jetpack-banners.css',
- 23 => 'css/jetpack-banners-rtl.css',
- 24 => 'css/jetpack-banners.min.css',
- 25 => 'css/jetpack-idc-admin-bar.css',
- 26 => 'css/jetpack-rtl.css',
- 27 => 'css/jetpack-connect.min.css',
- 28 => 'css/dashboard-widget.css',
- 29 => 'css/jetpack-connect-rtl.css',
- 30 => '3rd-party/debug-bar/debug-bar.css',
- 31 => '3rd-party/debug-bar/debug-bar.js',
- 32 => '_inc/blocks/tiled-gallery/view.rtl.css',
- 33 => '_inc/blocks/tiled-gallery/view.js',
- 34 => '_inc/blocks/tiled-gallery/view.css',
- 35 => '_inc/blocks/editor-experimental.js',
- 36 => '_inc/blocks/editor.css',
+ 0 => '3rd-party/debug-bar/debug-bar.css',
+ 1 => '3rd-party/debug-bar/debug-bar.js',
+ 2 => '_inc/accessible-focus.js',
+ 3 => '_inc/blocks/860.js',
+ 4 => '_inc/blocks/business-hours/view.css',
+ 5 => '_inc/blocks/business-hours/view.js',
+ 6 => '_inc/blocks/business-hours/view.rtl.css',
+ 7 => '_inc/blocks/button/view.css',
+ 8 => '_inc/blocks/button/view.js',
+ 9 => '_inc/blocks/button/view.rtl.css',
+ 10 => '_inc/blocks/calendly/view.css',
+ 11 => '_inc/blocks/calendly/view.js',
+ 12 => '_inc/blocks/calendly/view.rtl.css',
+ 13 => '_inc/blocks/components.css',
+ 14 => '_inc/blocks/components.rtl.css',
+ 15 => '_inc/blocks/contact-info/view.css',
+ 16 => '_inc/blocks/contact-info/view.js',
+ 17 => '_inc/blocks/contact-info/view.rtl.css',
+ 18 => '_inc/blocks/dialogue/view.css',
+ 19 => '_inc/blocks/dialogue/view.js',
+ 20 => '_inc/blocks/dialogue/view.rtl.css',
+ 21 => '_inc/blocks/donations/view.css',
+ 22 => '_inc/blocks/donations/view.js',
+ 23 => '_inc/blocks/donations/view.rtl.css',
+ 24 => '_inc/blocks/editor-assets/mapbox-gl-1.13.0.css',
+ 25 => '_inc/blocks/editor-assets/mapbox-gl-1.13.0.js',
+ 26 => '_inc/blocks/editor-beta.css',
+ 27 => '_inc/blocks/editor-beta.js',
+ 28 => '_inc/blocks/editor-beta.rtl.css',
+ 29 => '_inc/blocks/editor-experimental.css',
+ 30 => '_inc/blocks/editor-experimental.js',
+ 31 => '_inc/blocks/editor-experimental.rtl.css',
+ 32 => '_inc/blocks/editor-no-post-editor.css',
+ 33 => '_inc/blocks/editor-no-post-editor.js',
+ 34 => '_inc/blocks/editor-no-post-editor.rtl.css',
+ 35 => '_inc/blocks/editor.css',
+ 36 => '_inc/blocks/editor.js',
37 => '_inc/blocks/editor.rtl.css',
- 38 => '_inc/blocks/editor-experimental.css',
- 39 => '_inc/blocks/rating-star/view.rtl.css',
- 40 => '_inc/blocks/rating-star/view.js',
- 41 => '_inc/blocks/rating-star/view.css',
- 42 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.rtl.css',
- 43 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.css',
- 44 => '_inc/blocks/vendors~map/mapbox-gl.04e03ac043566852ef07.js',
- 45 => '_inc/blocks/repeat-visitor/view.js',
- 46 => '_inc/blocks/opentable/view.rtl.css',
- 47 => '_inc/blocks/opentable/view.js',
- 48 => '_inc/blocks/opentable/view.css',
- 49 => '_inc/blocks/business-hours/view.rtl.css',
- 50 => '_inc/blocks/business-hours/view.js',
- 51 => '_inc/blocks/business-hours/view.css',
- 52 => '_inc/blocks/editor-beta.js',
- 53 => '_inc/blocks/mailchimp/view.rtl.css',
+ 38 => '_inc/blocks/eventbrite/view.css',
+ 39 => '_inc/blocks/eventbrite/view.js',
+ 40 => '_inc/blocks/eventbrite/view.rtl.css',
+ 41 => '_inc/blocks/gif/view.css',
+ 42 => '_inc/blocks/gif/view.js',
+ 43 => '_inc/blocks/gif/view.rtl.css',
+ 44 => '_inc/blocks/google-calendar/view.css',
+ 45 => '_inc/blocks/google-calendar/view.js',
+ 46 => '_inc/blocks/google-calendar/view.rtl.css',
+ 47 => '_inc/blocks/image-compare/view.css',
+ 48 => '_inc/blocks/image-compare/view.js',
+ 49 => '_inc/blocks/image-compare/view.rtl.css',
+ 50 => '_inc/blocks/instagram-gallery/view.css',
+ 51 => '_inc/blocks/instagram-gallery/view.js',
+ 52 => '_inc/blocks/instagram-gallery/view.rtl.css',
+ 53 => '_inc/blocks/mailchimp/view.css',
54 => '_inc/blocks/mailchimp/view.js',
- 55 => '_inc/blocks/mailchimp/view.css',
- 56 => '_inc/blocks/editor.js',
- 57 => '_inc/blocks/map/view.rtl.css',
- 58 => '_inc/blocks/map/view.js',
- 59 => '_inc/blocks/map/view.css',
- 60 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.rtl.css',
- 61 => '_inc/blocks/components.js',
- 62 => '_inc/blocks/eventbrite/view.rtl.css',
- 63 => '_inc/blocks/eventbrite/view.js',
- 64 => '_inc/blocks/eventbrite/view.css',
- 65 => '_inc/blocks/recurring-payments/view.rtl.css',
- 66 => '_inc/blocks/recurring-payments/view.js',
- 67 => '_inc/blocks/recurring-payments/view.css',
- 68 => '_inc/blocks/editor-beta.css',
- 69 => '_inc/blocks/editor-experimental.rtl.css',
- 70 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.css',
- 71 => '_inc/blocks/vendors~swiper.23fd414831f3de8536b3.js',
- 72 => '_inc/blocks/contact-info/view.rtl.css',
- 73 => '_inc/blocks/contact-info/view.js',
- 74 => '_inc/blocks/contact-info/view.css',
- 75 => '_inc/blocks/calendly/view.rtl.css',
- 76 => '_inc/blocks/calendly/view.js',
- 77 => '_inc/blocks/calendly/view.css',
- 78 => '_inc/blocks/components.rtl.css',
- 79 => '_inc/blocks/components.css',
- 80 => '_inc/blocks/slideshow/view.rtl.css',
- 81 => '_inc/blocks/slideshow/view.js',
- 82 => '_inc/blocks/slideshow/view.css',
- 83 => '_inc/blocks/editor-beta.rtl.css',
- 84 => '_inc/blocks/gif/view.rtl.css',
- 85 => '_inc/blocks/gif/view.js',
- 86 => '_inc/blocks/gif/view.css',
- 87 => '_inc/idc-notice.js',
- 88 => '_inc/jetpack-modules.js',
- 89 => '_inc/crowdsignal-survey.js',
- 90 => '_inc/polldaddy-shortcode.js',
- 91 => '_inc/crowdsignal-shortcode.js',
- 92 => '_inc/connect-button.js',
- 93 => '_inc/jquery.jetpack-resize.js',
- 94 => '_inc/genericons/genericons/genericons.css',
- 95 => '_inc/genericons/genericons/rtl/genericons-rtl.css',
- 96 => '_inc/genericons/genericons.css',
- 97 => '_inc/jetpack-modules.views.js',
- 98 => '_inc/jquery.spin.js',
- 99 => '_inc/facebook-embed.js',
- 100 => '_inc/twitter-timeline.js',
- 101 => '_inc/spin.js',
- 102 => '_inc/accessible-focus.js',
- 103 => '_inc/jetpack-jitm.js',
- 104 => '_inc/jetpack-modules.models.js',
- 105 => '_inc/social-logos/social-logos.min.css',
- 106 => '_inc/social-logos/social-logos.css',
- 107 => '_inc/gallery-settings.js',
- 108 => '_inc/lib/tracks/tracks-callables.js',
- 109 => '_inc/lib/tracks/tracks-ajax.js',
- 110 => '_inc/build/infinite-scroll/infinity.min.js',
- 111 => '_inc/build/admin.rtl.css',
- 112 => '_inc/build/videopress/js/videopress-plupload.min.js',
- 113 => '_inc/build/videopress/js/gutenberg-video-upload.min.js',
- 114 => '_inc/build/videopress/js/videopress-uploader.min.js',
- 115 => '_inc/build/videopress/js/media-video-widget-extensions.min.js',
- 116 => '_inc/build/videopress/js/editor-view.min.js',
- 117 => '_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js',
- 118 => '_inc/build/jetpack-connection-banner.min.js',
- 119 => '_inc/build/style.min.css',
- 120 => '_inc/build/crowdsignal-survey.min.js',
- 121 => '_inc/build/masterbar/tracks-events.min.js',
- 122 => '_inc/build/sharedaddy/admin-sharing.min.js',
- 123 => '_inc/build/sharedaddy/sharing.min.js',
- 124 => '_inc/build/jquery.spin.min.js',
- 125 => '_inc/build/custom-post-types/comics/comics.min.js',
- 126 => '_inc/build/custom-post-types/js/nova-drag-drop.min.js',
- 127 => '_inc/build/custom-post-types/js/many-items.min.js',
- 128 => '_inc/build/custom-post-types/js/menu-checkboxes.min.js',
- 129 => '_inc/build/instant-search/jp-search.bundle.js',
- 130 => '_inc/build/instant-search/search.css',
- 131 => '_inc/build/instant-search/instant-search.min.css',
- 132 => '_inc/build/instant-search/search.rtl.css',
- 133 => '_inc/build/jquery.jetpack-resize.min.js',
- 134 => '_inc/build/crowdsignal-shortcode.min.js',
- 135 => '_inc/build/likes/post-count-jetpack.min.js',
- 136 => '_inc/build/likes/queuehandler.min.js',
- 137 => '_inc/build/likes/post-count.min.js',
- 138 => '_inc/build/static.rtl.css',
- 139 => '_inc/build/static.css',
- 140 => '_inc/build/polldaddy-shortcode.min.js',
- 141 => '_inc/build/comment-likes/comment-like-count.min.js',
- 142 => '_inc/build/idc-notice.min.js',
- 143 => '_inc/build/accessible-focus.min.js',
- 144 => '_inc/build/contact-form/js/grunion.min.js',
- 145 => '_inc/build/contact-form/js/tinymce-plugin-form-button.min.js',
- 146 => '_inc/build/contact-form/js/grunion-admin.min.js',
- 147 => '_inc/build/contact-form/js/grunion-frontend.min.js',
- 148 => '_inc/build/contact-form/js/editor-view.min.js',
- 149 => '_inc/build/jetpack-modules.models.min.js',
- 150 => '_inc/build/connect-button.min.js',
- 151 => '_inc/build/related-posts/related-posts.min.js',
- 152 => '_inc/build/related-posts/related-posts-customizer.min.js',
- 153 => '_inc/build/carousel/jetpack-carousel.min.js',
- 154 => '_inc/build/shortcodes/js/brightcove.min.js',
- 155 => '_inc/build/shortcodes/js/gist.min.js',
- 156 => '_inc/build/shortcodes/js/recipes-printthis.min.js',
- 157 => '_inc/build/shortcodes/js/main.min.js',
- 158 => '_inc/build/shortcodes/js/recipes.min.js',
- 159 => '_inc/build/shortcodes/js/jmpress.min.js',
- 160 => '_inc/build/shortcodes/js/instagram.min.js',
- 161 => '_inc/build/shortcodes/js/slideshow-shortcode.min.js',
- 162 => '_inc/build/shortcodes/js/quiz.min.js',
- 163 => '_inc/build/minileven/theme/pub/minileven/js/small-menu.min.js',
- 164 => '_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js',
- 165 => '_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js',
- 166 => '_inc/build/custom-css/custom-css/js/use-codemirror.min.js',
- 167 => '_inc/build/custom-css/custom-css/js/core-customizer-css.min.js',
- 168 => '_inc/build/custom-css/custom-css/js/css-editor.min.js',
- 169 => '_inc/build/jetpack-jitm.min.js',
- 170 => '_inc/build/gallery-settings.min.js',
- 171 => '_inc/build/admin.css',
- 172 => '_inc/build/spin.min.js',
- 173 => '_inc/build/jetpack-admin.min.js',
- 174 => '_inc/build/admin.js',
- 175 => '_inc/build/twitter-timeline.min.js',
- 176 => '_inc/build/jetpack-modules.views.min.js',
- 177 => '_inc/build/photon/photon.min.js',
- 178 => '_inc/build/style.min.rtl.css',
- 179 => '_inc/build/jetpack-modules.min.js',
- 180 => '_inc/build/postmessage.min.js',
- 181 => '_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js',
- 182 => '_inc/build/facebook-embed.min.js',
- 183 => '_inc/build/static.js',
- 184 => '_inc/build/widgets/simple-payments/customizer.min.js',
- 185 => '_inc/build/widgets/social-icons/social-icons-admin.min.js',
- 186 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js',
- 187 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js',
- 188 => '_inc/build/widgets/gallery/js/gallery.min.js',
- 189 => '_inc/build/widgets/gallery/js/admin.min.js',
- 190 => '_inc/build/widgets/milestone/milestone.min.js',
- 191 => '_inc/build/widgets/milestone/admin.min.js',
- 192 => '_inc/build/widgets/search/js/search-widget.min.js',
- 193 => '_inc/build/widgets/search/js/search-widget-admin.min.js',
+ 55 => '_inc/blocks/mailchimp/view.rtl.css',
+ 56 => '_inc/blocks/map/view.css',
+ 57 => '_inc/blocks/map/view.js',
+ 58 => '_inc/blocks/map/view.rtl.css',
+ 59 => '_inc/blocks/opentable/view.css',
+ 60 => '_inc/blocks/opentable/view.js',
+ 61 => '_inc/blocks/opentable/view.rtl.css',
+ 62 => '_inc/blocks/podcast-player/view.css',
+ 63 => '_inc/blocks/podcast-player/view.js',
+ 64 => '_inc/blocks/podcast-player/view.rtl.css',
+ 65 => '_inc/blocks/premium-content/view.css',
+ 66 => '_inc/blocks/premium-content/view.js',
+ 67 => '_inc/blocks/premium-content/view.rtl.css',
+ 68 => '_inc/blocks/rating-star/view.css',
+ 69 => '_inc/blocks/rating-star/view.js',
+ 70 => '_inc/blocks/rating-star/view.rtl.css',
+ 71 => '_inc/blocks/recurring-payments/view.css',
+ 72 => '_inc/blocks/recurring-payments/view.js',
+ 73 => '_inc/blocks/recurring-payments/view.rtl.css',
+ 74 => '_inc/blocks/repeat-visitor/view.js',
+ 75 => '_inc/blocks/revue/view.css',
+ 76 => '_inc/blocks/revue/view.js',
+ 77 => '_inc/blocks/revue/view.rtl.css',
+ 78 => '_inc/blocks/send-a-message/view.css',
+ 79 => '_inc/blocks/send-a-message/view.js',
+ 80 => '_inc/blocks/send-a-message/view.rtl.css',
+ 81 => '_inc/blocks/slideshow/view.css',
+ 82 => '_inc/blocks/slideshow/view.js',
+ 83 => '_inc/blocks/slideshow/view.rtl.css',
+ 84 => '_inc/blocks/story/view.css',
+ 85 => '_inc/blocks/story/view.js',
+ 86 => '_inc/blocks/story/view.rtl.css',
+ 87 => '_inc/blocks/subscriptions/view.css',
+ 88 => '_inc/blocks/subscriptions/view.js',
+ 89 => '_inc/blocks/subscriptions/view.rtl.css',
+ 90 => '_inc/blocks/swiper.css',
+ 91 => '_inc/blocks/swiper.rtl.css',
+ 92 => '_inc/blocks/tiled-gallery/view.css',
+ 93 => '_inc/blocks/tiled-gallery/view.js',
+ 94 => '_inc/blocks/tiled-gallery/view.rtl.css',
+ 95 => '_inc/build/accessible-focus.min.js',
+ 96 => '_inc/build/admin.css',
+ 97 => '_inc/build/admin.js',
+ 98 => '_inc/build/admin.rtl.css',
+ 99 => '_inc/build/carousel/jetpack-carousel.min.js',
+ 100 => '_inc/build/carousel/swiper-bundle.min.js',
+ 101 => '_inc/build/comment-likes/comment-like-count.min.js',
+ 102 => '_inc/build/connect-button.min.js',
+ 103 => '_inc/build/contact-form/js/editor-view.min.js',
+ 104 => '_inc/build/contact-form/js/grunion-admin.min.js',
+ 105 => '_inc/build/contact-form/js/grunion-frontend.min.js',
+ 106 => '_inc/build/contact-form/js/grunion.min.js',
+ 107 => '_inc/build/contact-form/js/tinymce-plugin-form-button.min.js',
+ 108 => '_inc/build/crowdsignal-shortcode.min.js',
+ 109 => '_inc/build/crowdsignal-survey.min.js',
+ 110 => '_inc/build/custom-css/custom-css/js/core-customizer-css-preview.min.js',
+ 111 => '_inc/build/custom-css/custom-css/js/core-customizer-css.core-4.9.min.js',
+ 112 => '_inc/build/custom-css/custom-css/js/core-customizer-css.min.js',
+ 113 => '_inc/build/custom-css/custom-css/js/css-editor.min.js',
+ 114 => '_inc/build/custom-css/custom-css/js/use-codemirror.min.js',
+ 115 => '_inc/build/custom-post-types/comics/comics.min.js',
+ 116 => '_inc/build/custom-post-types/js/many-items.min.js',
+ 117 => '_inc/build/custom-post-types/js/menu-checkboxes.min.js',
+ 118 => '_inc/build/custom-post-types/js/nova-drag-drop.min.js',
+ 119 => '_inc/build/facebook-embed.min.js',
+ 120 => '_inc/build/gallery-settings.min.js',
+ 121 => '_inc/build/infinite-scroll/infinity-customizer.min.js',
+ 122 => '_inc/build/infinite-scroll/infinity.min.js',
+ 123 => '_inc/build/instant-search/407.js',
+ 124 => '_inc/build/instant-search/jp-search-configure-main.css',
+ 125 => '_inc/build/instant-search/jp-search-configure-main.js',
+ 126 => '_inc/build/instant-search/jp-search-configure-main.rtl.css',
+ 127 => '_inc/build/instant-search/jp-search-main.js',
+ 128 => '_inc/build/instant-search/jp-search.chunk-main-payload.css',
+ 129 => '_inc/build/instant-search/jp-search.chunk-main-payload.js',
+ 130 => '_inc/build/instant-search/jp-search.chunk-main-payload.rtl.css',
+ 131 => '_inc/build/jetpack-admin.min.js',
+ 132 => '_inc/build/jetpack-connection-banner.min.js',
+ 133 => '_inc/build/jetpack-deactivate-dialog.min.js',
+ 134 => '_inc/build/jetpack-modules.min.js',
+ 135 => '_inc/build/jetpack-modules.models.min.js',
+ 136 => '_inc/build/jetpack-modules.views.min.js',
+ 137 => '_inc/build/jetpack-recommendations-banner.min.js',
+ 138 => '_inc/build/likes/post-count-jetpack.min.js',
+ 139 => '_inc/build/likes/post-count.min.js',
+ 140 => '_inc/build/likes/queuehandler.min.js',
+ 141 => '_inc/build/masterbar/admin-color-schemes/colors/aquatic/colors.css',
+ 142 => '_inc/build/masterbar/admin-color-schemes/colors/blue/colors.css',
+ 143 => '_inc/build/masterbar/admin-color-schemes/colors/classic-blue/colors.css',
+ 144 => '_inc/build/masterbar/admin-color-schemes/colors/classic-bright/colors.css',
+ 145 => '_inc/build/masterbar/admin-color-schemes/colors/classic-dark/colors.css',
+ 146 => '_inc/build/masterbar/admin-color-schemes/colors/coffee/colors.css',
+ 147 => '_inc/build/masterbar/admin-color-schemes/colors/contrast/colors.css',
+ 148 => '_inc/build/masterbar/admin-color-schemes/colors/ectoplasm/colors.css',
+ 149 => '_inc/build/masterbar/admin-color-schemes/colors/fresh/colors.css',
+ 150 => '_inc/build/masterbar/admin-color-schemes/colors/light/colors.css',
+ 151 => '_inc/build/masterbar/admin-color-schemes/colors/midnight/colors.css',
+ 152 => '_inc/build/masterbar/admin-color-schemes/colors/modern/colors.css',
+ 153 => '_inc/build/masterbar/admin-color-schemes/colors/nightfall/colors.css',
+ 154 => '_inc/build/masterbar/admin-color-schemes/colors/ocean/colors.css',
+ 155 => '_inc/build/masterbar/admin-color-schemes/colors/powder-snow/colors.css',
+ 156 => '_inc/build/masterbar/admin-color-schemes/colors/sakura/colors.css',
+ 157 => '_inc/build/masterbar/admin-color-schemes/colors/sunrise/colors.css',
+ 158 => '_inc/build/masterbar/admin-color-schemes/colors/sunset/colors.css',
+ 159 => '_inc/build/masterbar/admin-menu/admin-menu.min.js',
+ 160 => '_inc/build/masterbar/masterbar/tracks-events.min.js',
+ 161 => '_inc/build/masterbar/nudges/additional-css/js/additional-css.min.js',
+ 162 => '_inc/build/photon/photon.min.js',
+ 163 => '_inc/build/plugins-page.css',
+ 164 => '_inc/build/plugins-page.js',
+ 165 => '_inc/build/plugins-page.rtl.css',
+ 166 => '_inc/build/polldaddy-shortcode.min.js',
+ 167 => '_inc/build/related-posts/related-posts-customizer.min.js',
+ 168 => '_inc/build/related-posts/related-posts.min.js',
+ 169 => '_inc/build/scan/admin-bar-notice.min.js',
+ 170 => '_inc/build/search-dashboard.css',
+ 171 => '_inc/build/search-dashboard.js',
+ 172 => '_inc/build/search-dashboard.rtl.css',
+ 173 => '_inc/build/sharedaddy/admin-sharing.min.js',
+ 174 => '_inc/build/sharedaddy/sharing.min.js',
+ 175 => '_inc/build/shortcodes/js/brightcove.min.js',
+ 176 => '_inc/build/shortcodes/js/jmpress.min.js',
+ 177 => '_inc/build/shortcodes/js/main.min.js',
+ 178 => '_inc/build/shortcodes/js/quiz.min.js',
+ 179 => '_inc/build/shortcodes/js/recipes-printthis.min.js',
+ 180 => '_inc/build/shortcodes/js/recipes.min.js',
+ 181 => '_inc/build/shortcodes/js/slideshow-shortcode.min.js',
+ 182 => '_inc/build/style.min.css',
+ 183 => '_inc/build/style.min.rtl.css',
+ 184 => '_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js',
+ 185 => '_inc/build/twitter-timeline.min.js',
+ 186 => '_inc/build/videopress/js/editor-view.min.js',
+ 187 => '_inc/build/videopress/js/gutenberg-video-upload.min.js',
+ 188 => '_inc/build/videopress/js/media-video-widget-extensions.min.js',
+ 189 => '_inc/build/videopress/js/videopress-plupload.min.js',
+ 190 => '_inc/build/videopress/js/videopress-uploader.min.js',
+ 191 => '_inc/build/widget-visibility/editor/index.js',
+ 192 => '_inc/build/widget-visibility/widget-conditions/widget-conditions.min.js',
+ 193 => '_inc/build/widgets/contact-info/contact-info-admin.min.js',
194 => '_inc/build/widgets/customizer-utils.min.js',
- 195 => '_inc/build/widgets/contact-info/contact-info-admin.min.js',
- 196 => '_inc/build/widgets/twitter-timeline-admin.min.js',
- 197 => '_inc/build/widgets/google-translate/google-translate.min.js',
- 198 => '_inc/build/lazy-images/js/lazy-images.min.js',
- 199 => '_inc/jetpack-admin.js',
- 200 => '_inc/jetpack-connection-banner.js',
- 201 => '_inc/postmessage.js',
- 202 => 'modules/infinite-scroll/infinity.js',
- 203 => 'modules/infinite-scroll/infinity.css',
- 204 => 'modules/infinite-scroll/themes/twentysixteen.css',
- 205 => 'modules/infinite-scroll/themes/twentyeleven.css',
- 206 => 'modules/infinite-scroll/themes/twentyten.css',
- 207 => 'modules/infinite-scroll/themes/twentyseventeen-rtl.css',
- 208 => 'modules/infinite-scroll/themes/twentyfifteen.css',
- 209 => 'modules/infinite-scroll/themes/twentysixteen-rtl.css',
- 210 => 'modules/infinite-scroll/themes/twentyseventeen.css',
- 211 => 'modules/infinite-scroll/themes/twentytwelve.css',
- 212 => 'modules/infinite-scroll/themes/twentyfourteen.css',
- 213 => 'modules/infinite-scroll/themes/twentyfifteen-rtl.css',
- 214 => 'modules/infinite-scroll/themes/twentythirteen.css',
- 215 => 'modules/videopress/css/videopress-editor-style-rtl.css',
- 216 => 'modules/videopress/css/videopress-editor-style.min.css',
- 217 => 'modules/videopress/css/editor.css',
- 218 => 'modules/videopress/css/videopress-editor-style-rtl.min.css',
- 219 => 'modules/videopress/css/editor.min.css',
- 220 => 'modules/videopress/css/editor-rtl.css',
- 221 => 'modules/videopress/css/editor-rtl.min.css',
- 222 => 'modules/videopress/css/videopress-editor-style.css',
- 223 => 'modules/videopress/js/media-video-widget-extensions.js',
- 224 => 'modules/videopress/js/videopress-plupload.js',
- 225 => 'modules/videopress/js/videopress-uploader.js',
- 226 => 'modules/videopress/js/editor-view.js',
- 227 => 'modules/videopress/js/gutenberg-video-upload.js',
- 228 => 'modules/videopress/videopress-admin.css',
- 229 => 'modules/videopress/videopress-admin.min.css',
- 230 => 'modules/videopress/videopress-admin-rtl.css',
- 231 => 'modules/videopress/videopress-admin-rtl.min.css',
- 232 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css',
- 233 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.css',
- 234 => 'modules/tiled-gallery/tiled-gallery/rtl/tiled-gallery-rtl.css',
- 235 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.js',
- 236 => 'modules/simple-payments/simple-payments.css',
- 237 => 'modules/simple-payments/paypal-express-checkout.js',
- 238 => 'modules/masterbar/overrides.css',
- 239 => 'modules/masterbar/tracks-events.js',
- 240 => 'modules/sharedaddy/admin-sharing-rtl.min.css',
- 241 => 'modules/sharedaddy/sharing.js',
- 242 => 'modules/sharedaddy/sharing.css',
- 243 => 'modules/sharedaddy/admin-sharing.js',
- 244 => 'modules/sharedaddy/admin-sharing.min.css',
- 245 => 'modules/sharedaddy/admin-sharing-rtl.css',
- 246 => 'modules/sharedaddy/admin-sharing.css',
- 247 => 'modules/custom-post-types/comics/comics.min.css',
- 248 => 'modules/custom-post-types/comics/comics-rtl.css',
- 249 => 'modules/custom-post-types/comics/comics.css',
- 250 => 'modules/custom-post-types/comics/comics-rtl.min.css',
- 251 => 'modules/custom-post-types/comics/comics.js',
- 252 => 'modules/custom-post-types/comics/admin.css',
- 253 => 'modules/custom-post-types/comics/rtl/comics-rtl.css',
- 254 => 'modules/custom-post-types/css/portfolio-shortcode.css',
- 255 => 'modules/custom-post-types/css/testimonial-shortcode.css',
- 256 => 'modules/custom-post-types/css/nova-font.css',
- 257 => 'modules/custom-post-types/css/edit-items.css',
- 258 => 'modules/custom-post-types/css/nova.css',
- 259 => 'modules/custom-post-types/css/many-items.css',
- 260 => 'modules/custom-post-types/js/menu-checkboxes.js',
- 261 => 'modules/custom-post-types/js/many-items.js',
- 262 => 'modules/custom-post-types/js/nova-drag-drop.js',
- 263 => 'modules/calypsoify/style-gutenberg-rtl.min.css',
- 264 => 'modules/calypsoify/style-rtl.min.css',
- 265 => 'modules/calypsoify/style.min.css',
- 266 => 'modules/calypsoify/style-gutenberg.min.css',
+ 195 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law-admin.min.js',
+ 196 => '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js',
+ 197 => '_inc/build/widgets/gallery/js/admin.min.js',
+ 198 => '_inc/build/widgets/gallery/js/gallery.min.js',
+ 199 => '_inc/build/widgets/google-translate/google-translate.min.js',
+ 200 => '_inc/build/widgets/milestone/admin.min.js',
+ 201 => '_inc/build/widgets/milestone/milestone.min.js',
+ 202 => '_inc/build/widgets/search/js/search-widget-admin.min.js',
+ 203 => '_inc/build/widgets/search/js/search-widget.min.js',
+ 204 => '_inc/build/widgets/simple-payments/customizer.min.js',
+ 205 => '_inc/build/widgets/social-icons/social-icons-admin.min.js',
+ 206 => '_inc/build/widgets/twitter-timeline-admin.min.js',
+ 207 => '_inc/build/wordads/js/wordads-ccpa.min.js',
+ 208 => '_inc/connect-button.js',
+ 209 => '_inc/crowdsignal-shortcode.js',
+ 210 => '_inc/crowdsignal-survey.js',
+ 211 => '_inc/facebook-embed.js',
+ 212 => '_inc/gallery-settings.js',
+ 213 => '_inc/genericons/genericons.css',
+ 214 => '_inc/genericons/genericons/genericons.css',
+ 215 => '_inc/genericons/genericons/rtl/genericons-rtl.css',
+ 216 => '_inc/jetpack-admin.js',
+ 217 => '_inc/jetpack-connection-banner.js',
+ 218 => '_inc/jetpack-deactivate-dialog.js',
+ 219 => '_inc/jetpack-modules.js',
+ 220 => '_inc/jetpack-modules.models.js',
+ 221 => '_inc/jetpack-modules.views.js',
+ 222 => '_inc/jetpack-recommendations-banner.js',
+ 223 => '_inc/lib/debugger/jetpack-debugger-site-health.css',
+ 224 => '_inc/lib/debugger/jetpack-debugger-site-health.js',
+ 225 => '_inc/polldaddy-shortcode.js',
+ 226 => '_inc/social-logos/social-logos.css',
+ 227 => '_inc/social-logos/social-logos.min.css',
+ 228 => '_inc/twitter-timeline.js',
+ 229 => 'css/cleanslate-rtl.css',
+ 230 => 'css/cleanslate-rtl.min.css',
+ 231 => 'css/cleanslate.css',
+ 232 => 'css/cleanslate.min.css',
+ 233 => 'css/dashboard-widget-rtl.css',
+ 234 => 'css/dashboard-widget-rtl.min.css',
+ 235 => 'css/dashboard-widget.css',
+ 236 => 'css/dashboard-widget.min.css',
+ 237 => 'css/jetpack-admin-rtl.css',
+ 238 => 'css/jetpack-admin-rtl.min.css',
+ 239 => 'css/jetpack-admin.css',
+ 240 => 'css/jetpack-admin.min.css',
+ 241 => 'css/jetpack-banners-rtl.css',
+ 242 => 'css/jetpack-banners-rtl.min.css',
+ 243 => 'css/jetpack-banners.css',
+ 244 => 'css/jetpack-banners.min.css',
+ 245 => 'css/jetpack-connect-rtl.css',
+ 246 => 'css/jetpack-connect-rtl.min.css',
+ 247 => 'css/jetpack-connect.css',
+ 248 => 'css/jetpack-connect.min.css',
+ 249 => 'css/jetpack-deactivate-dialog-rtl.css',
+ 250 => 'css/jetpack-deactivate-dialog-rtl.min.css',
+ 251 => 'css/jetpack-deactivate-dialog.css',
+ 252 => 'css/jetpack-deactivate-dialog.min.css',
+ 253 => 'css/jetpack-icons-rtl.css',
+ 254 => 'css/jetpack-icons-rtl.min.css',
+ 255 => 'css/jetpack-icons.css',
+ 256 => 'css/jetpack-icons.min.css',
+ 257 => 'css/jetpack-recommendations-banner-rtl.css',
+ 258 => 'css/jetpack-recommendations-banner-rtl.min.css',
+ 259 => 'css/jetpack-recommendations-banner.css',
+ 260 => 'css/jetpack-recommendations-banner.min.css',
+ 261 => 'css/jetpack-rtl.css',
+ 262 => 'css/jetpack.css',
+ 263 => 'css/wordads-ccpa-rtl.css',
+ 264 => 'css/wordads-ccpa-rtl.min.css',
+ 265 => 'css/wordads-ccpa.css',
+ 266 => 'css/wordads-ccpa.min.css',
267 => 'modules/calypsoify/mods-gutenberg.js',
268 => 'modules/calypsoify/mods.js',
- 269 => 'modules/likes/post-count.js',
- 270 => 'modules/likes/post-count-jetpack.js',
- 271 => 'modules/likes/style.css',
- 272 => 'modules/likes/queuehandler.js',
- 273 => 'modules/protect/protect-dashboard-widget-rtl.min.css',
- 274 => 'modules/protect/protect-dashboard-widget.css',
- 275 => 'modules/protect/protect-dashboard-widget.min.css',
- 276 => 'modules/protect/protect-dashboard-widget-rtl.css',
- 277 => 'modules/comment-likes/comment-like-count.js',
+ 269 => 'modules/calypsoify/style-gutenberg-rtl.min.css',
+ 270 => 'modules/calypsoify/style-gutenberg.min.css',
+ 271 => 'modules/calypsoify/style-rtl.min.css',
+ 272 => 'modules/calypsoify/style.min.css',
+ 273 => 'modules/carousel/jetpack-carousel-rtl.css',
+ 274 => 'modules/carousel/jetpack-carousel.css',
+ 275 => 'modules/carousel/jetpack-carousel.js',
+ 276 => 'modules/carousel/swiper-bundle.css',
+ 277 => 'modules/carousel/swiper-bundle.js',
278 => 'modules/comment-likes/admin-style.css',
- 279 => 'modules/contact-form/css/editor-ui.min.css',
- 280 => 'modules/contact-form/css/editor-ui-rtl.css',
- 281 => 'modules/contact-form/css/editor-inline-editing-style.css',
- 282 => 'modules/contact-form/css/editor-inline-editing-style-rtl.css',
+ 279 => 'modules/comment-likes/comment-like-count.js',
+ 280 => 'modules/contact-form/css/editor-inline-editing-style-rtl.css',
+ 281 => 'modules/contact-form/css/editor-inline-editing-style-rtl.min.css',
+ 282 => 'modules/contact-form/css/editor-inline-editing-style.css',
283 => 'modules/contact-form/css/editor-inline-editing-style.min.css',
- 284 => 'modules/contact-form/css/editor-style-rtl.min.css',
- 285 => 'modules/contact-form/css/jquery-ui-datepicker.css',
- 286 => 'modules/contact-form/css/grunion.css',
- 287 => 'modules/contact-form/css/editor-ui.css',
- 288 => 'modules/contact-form/css/editor-style.css',
- 289 => 'modules/contact-form/css/editor-style-rtl.css',
- 290 => 'modules/contact-form/css/editor-inline-editing-style-rtl.min.css',
- 291 => 'modules/contact-form/css/editor-style.min.css',
+ 284 => 'modules/contact-form/css/editor-style-rtl.css',
+ 285 => 'modules/contact-form/css/editor-style-rtl.min.css',
+ 286 => 'modules/contact-form/css/editor-style.css',
+ 287 => 'modules/contact-form/css/editor-style.min.css',
+ 288 => 'modules/contact-form/css/editor-ui-rtl.css',
+ 289 => 'modules/contact-form/css/editor-ui-rtl.min.css',
+ 290 => 'modules/contact-form/css/editor-ui.css',
+ 291 => 'modules/contact-form/css/editor-ui.min.css',
292 => 'modules/contact-form/css/grunion-rtl.css',
- 293 => 'modules/contact-form/css/editor-ui-rtl.min.css',
- 294 => 'modules/contact-form/js/grunion.js',
- 295 => 'modules/contact-form/js/grunion-admin.js',
- 296 => 'modules/contact-form/js/editor-view.js',
+ 293 => 'modules/contact-form/css/grunion.css',
+ 294 => 'modules/contact-form/css/jquery-ui-datepicker.css',
+ 295 => 'modules/contact-form/js/editor-view.js',
+ 296 => 'modules/contact-form/js/grunion-admin.js',
297 => 'modules/contact-form/js/grunion-frontend.js',
- 298 => 'modules/contact-form/js/tinymce-plugin-form-button.js',
- 299 => 'modules/related-posts/related-posts.css',
- 300 => 'modules/related-posts/related-posts.js',
- 301 => 'modules/related-posts/related-posts-rtl.css',
- 302 => 'modules/related-posts/rtl/related-posts-rtl.css',
- 303 => 'modules/related-posts/related-posts-customizer.js',
- 304 => 'modules/carousel/jetpack-carousel.js',
- 305 => 'modules/carousel/rtl/jetpack-carousel-rtl.css',
- 306 => 'modules/carousel/jetpack-carousel.css',
- 307 => 'modules/carousel/jetpack-carousel-rtl.css',
- 308 => 'modules/shortcodes/css/recipes.css',
- 309 => 'modules/shortcodes/css/slideshow-shortcode.min.css',
- 310 => 'modules/shortcodes/css/slideshow-shortcode-rtl.css',
- 311 => 'modules/shortcodes/css/recipes-print.min.css',
- 312 => 'modules/shortcodes/css/recipes-rtl.css',
- 313 => 'modules/shortcodes/css/recipes.min.css',
- 314 => 'modules/shortcodes/css/recipes-print-rtl.css',
- 315 => 'modules/shortcodes/css/recipes-print.css',
- 316 => 'modules/shortcodes/css/slideshow-shortcode-rtl.min.css',
- 317 => 'modules/shortcodes/css/recipes-rtl.min.css',
- 318 => 'modules/shortcodes/css/recipes-print-rtl.min.css',
- 319 => 'modules/shortcodes/css/style.css',
- 320 => 'modules/shortcodes/css/quiz.css',
- 321 => 'modules/shortcodes/css/slideshow-shortcode.css',
- 322 => 'modules/shortcodes/js/brightcove.js',
- 323 => 'modules/shortcodes/js/quiz.js',
- 324 => 'modules/shortcodes/js/recipes-printthis.js',
- 325 => 'modules/shortcodes/js/jmpress.js',
- 326 => 'modules/shortcodes/js/slideshow-shortcode.js',
- 327 => 'modules/shortcodes/js/main.js',
- 328 => 'modules/shortcodes/js/jquery.cycle.min.js',
- 329 => 'modules/shortcodes/js/instagram.js',
- 330 => 'modules/shortcodes/js/recipes.js',
- 331 => 'modules/shortcodes/js/gist.js',
- 332 => 'modules/subscriptions/subscriptions.css',
- 333 => 'modules/minileven/theme/pub/minileven/js/small-menu.js',
- 334 => 'modules/minileven/theme/pub/minileven/style.css',
- 335 => 'modules/minileven/theme/pub/minileven/rtl.css',
- 336 => 'modules/wordads/css/style.css',
- 337 => 'modules/custom-css/csstidy/cssparse-rtl.min.css',
- 338 => 'modules/custom-css/csstidy/cssparse-rtl.css',
- 339 => 'modules/custom-css/csstidy/cssparse.min.css',
- 340 => 'modules/custom-css/csstidy/cssparsed-rtl.min.css',
- 341 => 'modules/custom-css/csstidy/cssparsed.css',
- 342 => 'modules/custom-css/csstidy/cssparse.css',
- 343 => 'modules/custom-css/csstidy/cssparsed-rtl.css',
- 344 => 'modules/custom-css/csstidy/cssparsed.min.css',
- 345 => 'modules/custom-css/custom-css/css/blank.css',
- 346 => 'modules/custom-css/custom-css/css/css-editor.css',
- 347 => 'modules/custom-css/custom-css/css/use-codemirror.css',
- 348 => 'modules/custom-css/custom-css/css/codemirror.css',
- 349 => 'modules/custom-css/custom-css/css/codemirror-rtl.min.css',
- 350 => 'modules/custom-css/custom-css/css/css-editor-rtl.min.css',
- 351 => 'modules/custom-css/custom-css/css/css-editor-rtl.css',
- 352 => 'modules/custom-css/custom-css/css/customizer-control.css',
- 353 => 'modules/custom-css/custom-css/css/codemirror-rtl.css',
- 354 => 'modules/custom-css/custom-css/css/css-editor.min.css',
- 355 => 'modules/custom-css/custom-css/css/codemirror.min.css',
- 356 => 'modules/custom-css/custom-css/css/rtl/codemirror-rtl.css',
- 357 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.css',
- 358 => 'modules/custom-css/custom-css/css/use-codemirror.min.css',
- 359 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.min.css',
- 360 => 'modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js',
- 361 => 'modules/custom-css/custom-css/js/css-editor.js',
- 362 => 'modules/custom-css/custom-css/js/codemirror.min.js',
- 363 => 'modules/custom-css/custom-css/js/core-customizer-css-preview.js',
- 364 => 'modules/custom-css/custom-css/js/core-customizer-css.js',
- 365 => 'modules/custom-css/custom-css/js/use-codemirror.js',
- 366 => 'modules/sso/jetpack-sso-login.css',
- 367 => 'modules/sso/jetpack-sso-login.js',
- 368 => 'modules/sso/jetpack-sso-login-rtl.css',
- 369 => 'modules/sso/jetpack-sso-login.min.css',
- 370 => 'modules/sso/jetpack-sso-login-rtl.min.css',
- 371 => 'modules/theme-tools/site-logo/css/site-logo-control.css',
- 372 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.min.css',
- 373 => 'modules/theme-tools/site-logo/css/site-logo-control.min.css',
- 374 => 'modules/theme-tools/site-logo/css/site-logo-control-rtl.css',
- 375 => 'modules/theme-tools/site-logo/js/site-logo.min.js',
- 376 => 'modules/theme-tools/site-logo/js/site-logo.js',
- 377 => 'modules/theme-tools/site-logo/js/site-logo-header-text.js',
- 378 => 'modules/theme-tools/site-logo/js/site-logo-control.js',
- 379 => 'modules/theme-tools/site-logo/js/site-logo-header-text.min.js',
- 380 => 'modules/theme-tools/site-logo/js/site-logo-control.min.js',
- 381 => 'modules/theme-tools/compat/twentysixteen.css',
- 382 => 'modules/theme-tools/compat/twentynineteen.css',
- 383 => 'modules/theme-tools/compat/twentytwenty-rtl.css',
- 384 => 'modules/theme-tools/compat/twentyfourteen-rtl.css',
- 385 => 'modules/theme-tools/compat/twentyfifteen.css',
- 386 => 'modules/theme-tools/compat/twentysixteen-rtl.css',
- 387 => 'modules/theme-tools/compat/twentynineteen-rtl.css',
- 388 => 'modules/theme-tools/compat/twentyfourteen.css',
- 389 => 'modules/theme-tools/compat/twentytwenty.css',
- 390 => 'modules/theme-tools/compat/twentyfifteen-rtl.css',
- 391 => 'modules/theme-tools/content-options/customizer.js',
- 392 => 'modules/theme-tools/js/suggest.js',
- 393 => 'modules/theme-tools/social-menu/social-menu.css',
- 394 => 'modules/theme-tools/responsive-videos/responsive-videos.css',
- 395 => 'modules/theme-tools/responsive-videos/responsive-videos.js',
- 396 => 'modules/theme-tools/responsive-videos/responsive-videos.min.js',
- 397 => 'modules/post-by-email/post-by-email-rtl.css',
- 398 => 'modules/post-by-email/post-by-email.min.css',
- 399 => 'modules/post-by-email/post-by-email-rtl.min.css',
- 400 => 'modules/post-by-email/post-by-email.css',
- 401 => 'modules/post-by-email/post-by-email.js',
- 402 => 'modules/.eslintrc.js',
- 403 => 'modules/photon/photon.js',
- 404 => 'modules/plugin-search/plugin-search.css',
- 405 => 'modules/plugin-search/plugin-search.js',
- 406 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css',
- 407 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.css',
- 408 => 'modules/widget-visibility/widget-conditions/widget-conditions.min.css',
- 409 => 'modules/widget-visibility/widget-conditions/widget-conditions.css',
- 410 => 'modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css',
- 411 => 'modules/widget-visibility/widget-conditions/widget-conditions.js',
- 412 => 'modules/widgets/simple-payments/customizer.css',
- 413 => 'modules/widgets/simple-payments/customizer.js',
- 414 => 'modules/widgets/simple-payments/style.css',
- 415 => 'modules/widgets/twitter-timeline-admin.js',
- 416 => 'modules/widgets/facebook-likebox/style.css',
- 417 => 'modules/widgets/customizer-utils.js',
- 418 => 'modules/widgets/goodreads/css/goodreads.css',
- 419 => 'modules/widgets/goodreads/css/rtl/goodreads-rtl.css',
- 420 => 'modules/widgets/social-media-icons/style.css',
- 421 => 'modules/widgets/my-community/style.css',
- 422 => 'modules/widgets/authors/style.css',
- 423 => 'modules/widgets/social-icons/social-icons-admin.js',
- 424 => 'modules/widgets/social-icons/social-icons-admin.css',
- 425 => 'modules/widgets/social-icons/social-icons.css',
- 426 => 'modules/widgets/eu-cookie-law/eu-cookie-law.js',
- 427 => 'modules/widgets/eu-cookie-law/style.css',
- 428 => 'modules/widgets/eu-cookie-law/eu-cookie-law-admin.js',
- 429 => 'modules/widgets/flickr/style.css',
- 430 => 'modules/widgets/gallery/css/admin-rtl.min.css',
- 431 => 'modules/widgets/gallery/css/admin.css',
- 432 => 'modules/widgets/gallery/css/admin-rtl.css',
- 433 => 'modules/widgets/gallery/css/admin.min.css',
- 434 => 'modules/widgets/gallery/css/rtl/admin-rtl.css',
- 435 => 'modules/widgets/gallery/js/gallery.js',
- 436 => 'modules/widgets/gallery/js/admin.js',
- 437 => 'modules/widgets/top-posts/style.css',
- 438 => 'modules/widgets/milestone/style-admin.css',
- 439 => 'modules/widgets/milestone/milestone.js',
- 440 => 'modules/widgets/milestone/admin.js',
- 441 => 'modules/widgets/search/css/search-widget-frontend.css',
- 442 => 'modules/widgets/search/css/search-widget-admin-ui.css',
- 443 => 'modules/widgets/search/js/search-widget-admin.js',
- 444 => 'modules/widgets/search/js/search-widget.js',
- 445 => 'modules/widgets/contact-info/contact-info-admin.js',
- 446 => 'modules/widgets/contact-info/contact-info-map.css',
- 447 => 'modules/widgets/image-widget/style.css',
- 448 => 'modules/widgets/customizer-controls.css',
- 449 => 'modules/widgets/google-translate/google-translate.js',
- 450 => 'modules/widgets/wordpress-post-widget/style.css',
- 451 => 'modules/widgets/gravatar-profile.css',
- 452 => 'modules/lazy-images/js/lazy-images.js',
- 453 => 'modules/wpgroho.js',
-);
+ 298 => 'modules/contact-form/js/grunion.js',
+ 299 => 'modules/contact-form/js/tinymce-plugin-form-button.js',
+ 300 => 'modules/custom-css/csstidy/cssparse-rtl.css',
+ 301 => 'modules/custom-css/csstidy/cssparse-rtl.min.css',
+ 302 => 'modules/custom-css/csstidy/cssparse.css',
+ 303 => 'modules/custom-css/csstidy/cssparse.min.css',
+ 304 => 'modules/custom-css/csstidy/cssparsed-rtl.css',
+ 305 => 'modules/custom-css/csstidy/cssparsed-rtl.min.css',
+ 306 => 'modules/custom-css/csstidy/cssparsed.css',
+ 307 => 'modules/custom-css/csstidy/cssparsed.min.css',
+ 308 => 'modules/custom-css/custom-css/css/blank.css',
+ 309 => 'modules/custom-css/custom-css/css/codemirror-rtl.css',
+ 310 => 'modules/custom-css/custom-css/css/codemirror-rtl.min.css',
+ 311 => 'modules/custom-css/custom-css/css/codemirror.css',
+ 312 => 'modules/custom-css/custom-css/css/codemirror.min.css',
+ 313 => 'modules/custom-css/custom-css/css/css-editor-rtl.css',
+ 314 => 'modules/custom-css/custom-css/css/css-editor-rtl.min.css',
+ 315 => 'modules/custom-css/custom-css/css/css-editor.css',
+ 316 => 'modules/custom-css/custom-css/css/css-editor.min.css',
+ 317 => 'modules/custom-css/custom-css/css/customizer-control.css',
+ 318 => 'modules/custom-css/custom-css/css/rtl/codemirror-rtl.css',
+ 319 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.css',
+ 320 => 'modules/custom-css/custom-css/css/use-codemirror-rtl.min.css',
+ 321 => 'modules/custom-css/custom-css/css/use-codemirror.css',
+ 322 => 'modules/custom-css/custom-css/css/use-codemirror.min.css',
+ 323 => 'modules/custom-css/custom-css/js/codemirror.min.js',
+ 324 => 'modules/custom-css/custom-css/js/core-customizer-css-preview.js',
+ 325 => 'modules/custom-css/custom-css/js/core-customizer-css.core-4.9.js',
+ 326 => 'modules/custom-css/custom-css/js/core-customizer-css.js',
+ 327 => 'modules/custom-css/custom-css/js/css-editor.js',
+ 328 => 'modules/custom-css/custom-css/js/use-codemirror.js',
+ 329 => 'modules/custom-post-types/comics/admin.css',
+ 330 => 'modules/custom-post-types/comics/comics-rtl.css',
+ 331 => 'modules/custom-post-types/comics/comics-rtl.min.css',
+ 332 => 'modules/custom-post-types/comics/comics.css',
+ 333 => 'modules/custom-post-types/comics/comics.js',
+ 334 => 'modules/custom-post-types/comics/comics.min.css',
+ 335 => 'modules/custom-post-types/comics/rtl/comics-rtl.css',
+ 336 => 'modules/custom-post-types/css/edit-items.css',
+ 337 => 'modules/custom-post-types/css/many-items.css',
+ 338 => 'modules/custom-post-types/css/nova-font.css',
+ 339 => 'modules/custom-post-types/css/nova.css',
+ 340 => 'modules/custom-post-types/css/portfolio-shortcode.css',
+ 341 => 'modules/custom-post-types/css/testimonial-shortcode.css',
+ 342 => 'modules/custom-post-types/js/many-items.js',
+ 343 => 'modules/custom-post-types/js/menu-checkboxes.js',
+ 344 => 'modules/custom-post-types/js/nova-drag-drop.js',
+ 345 => 'modules/gravatar/gravatar-hovercards-amp.css',
+ 346 => 'modules/infinite-scroll/infinity-customizer.js',
+ 347 => 'modules/infinite-scroll/infinity.css',
+ 348 => 'modules/infinite-scroll/infinity.js',
+ 349 => 'modules/infinite-scroll/themes/twentyeleven.css',
+ 350 => 'modules/infinite-scroll/themes/twentyfifteen-rtl.css',
+ 351 => 'modules/infinite-scroll/themes/twentyfifteen.css',
+ 352 => 'modules/infinite-scroll/themes/twentyfourteen.css',
+ 353 => 'modules/infinite-scroll/themes/twentyseventeen-rtl.css',
+ 354 => 'modules/infinite-scroll/themes/twentyseventeen.css',
+ 355 => 'modules/infinite-scroll/themes/twentysixteen-rtl.css',
+ 356 => 'modules/infinite-scroll/themes/twentysixteen.css',
+ 357 => 'modules/infinite-scroll/themes/twentyten.css',
+ 358 => 'modules/infinite-scroll/themes/twentythirteen.css',
+ 359 => 'modules/infinite-scroll/themes/twentytwelve.css',
+ 360 => 'modules/likes/post-count-jetpack.js',
+ 361 => 'modules/likes/post-count.js',
+ 362 => 'modules/likes/queuehandler.js',
+ 363 => 'modules/likes/style.css',
+ 364 => 'modules/masterbar/admin-menu/admin-menu-rtl.css',
+ 365 => 'modules/masterbar/admin-menu/admin-menu-rtl.min.css',
+ 366 => 'modules/masterbar/admin-menu/admin-menu.css',
+ 367 => 'modules/masterbar/admin-menu/admin-menu.js',
+ 368 => 'modules/masterbar/admin-menu/admin-menu.min.css',
+ 369 => 'modules/masterbar/inline-help/inline-help.css',
+ 370 => 'modules/masterbar/masterbar/overrides.css',
+ 371 => 'modules/masterbar/masterbar/tracks-events.js',
+ 372 => 'modules/masterbar/nudges/additional-css/css/additional-css.css',
+ 373 => 'modules/masterbar/nudges/additional-css/js/additional-css.js',
+ 374 => 'modules/masterbar/wp-posts-list/wp-posts-list.css',
+ 375 => 'modules/photon/photon.js',
+ 376 => 'modules/plugin-search/plugin-search.css',
+ 377 => 'modules/plugin-search/plugin-search.js',
+ 378 => 'modules/post-by-email/post-by-email-rtl.css',
+ 379 => 'modules/post-by-email/post-by-email-rtl.min.css',
+ 380 => 'modules/post-by-email/post-by-email.css',
+ 381 => 'modules/post-by-email/post-by-email.js',
+ 382 => 'modules/post-by-email/post-by-email.min.css',
+ 383 => 'modules/protect/protect-dashboard-widget-rtl.css',
+ 384 => 'modules/protect/protect-dashboard-widget-rtl.min.css',
+ 385 => 'modules/protect/protect-dashboard-widget.css',
+ 386 => 'modules/protect/protect-dashboard-widget.min.css',
+ 387 => 'modules/related-posts/related-posts-customizer.js',
+ 388 => 'modules/related-posts/related-posts-rtl.css',
+ 389 => 'modules/related-posts/related-posts.css',
+ 390 => 'modules/related-posts/related-posts.js',
+ 391 => 'modules/related-posts/rtl/related-posts-rtl.css',
+ 392 => 'modules/scan/admin-bar-notice.js',
+ 393 => 'modules/search/customize-controls/class-excluded-post-types-control.css',
+ 394 => 'modules/search/customize-controls/class-excluded-post-types-control.js',
+ 395 => 'modules/search/customize-controls/class-label-control.css',
+ 396 => 'modules/search/customize-controls/customize-controls.js',
+ 397 => 'modules/sharedaddy/admin-sharing-rtl.css',
+ 398 => 'modules/sharedaddy/admin-sharing-rtl.min.css',
+ 399 => 'modules/sharedaddy/admin-sharing.css',
+ 400 => 'modules/sharedaddy/admin-sharing.js',
+ 401 => 'modules/sharedaddy/admin-sharing.min.css',
+ 402 => 'modules/sharedaddy/amp-sharing.css',
+ 403 => 'modules/sharedaddy/sharing.css',
+ 404 => 'modules/sharedaddy/sharing.js',
+ 405 => 'modules/shortcodes/css/gravatar-amp.css',
+ 406 => 'modules/shortcodes/css/quiz.css',
+ 407 => 'modules/shortcodes/css/recipes-print-rtl.css',
+ 408 => 'modules/shortcodes/css/recipes-print-rtl.min.css',
+ 409 => 'modules/shortcodes/css/recipes-print.css',
+ 410 => 'modules/shortcodes/css/recipes-print.min.css',
+ 411 => 'modules/shortcodes/css/recipes-rtl.css',
+ 412 => 'modules/shortcodes/css/recipes-rtl.min.css',
+ 413 => 'modules/shortcodes/css/recipes.css',
+ 414 => 'modules/shortcodes/css/recipes.min.css',
+ 415 => 'modules/shortcodes/css/slideshow-shortcode-rtl.css',
+ 416 => 'modules/shortcodes/css/slideshow-shortcode-rtl.min.css',
+ 417 => 'modules/shortcodes/css/slideshow-shortcode.css',
+ 418 => 'modules/shortcodes/css/slideshow-shortcode.min.css',
+ 419 => 'modules/shortcodes/css/style.css',
+ 420 => 'modules/shortcodes/js/brightcove.js',
+ 421 => 'modules/shortcodes/js/jmpress.js',
+ 422 => 'modules/shortcodes/js/jquery.cycle.min.js',
+ 423 => 'modules/shortcodes/js/main.js',
+ 424 => 'modules/shortcodes/js/quiz.js',
+ 425 => 'modules/shortcodes/js/recipes-printthis.js',
+ 426 => 'modules/shortcodes/js/recipes.js',
+ 427 => 'modules/shortcodes/js/slideshow-shortcode.js',
+ 428 => 'modules/simple-payments/paypal-express-checkout.js',
+ 429 => 'modules/simple-payments/simple-payments.css',
+ 430 => 'modules/sso/jetpack-sso-login-rtl.css',
+ 431 => 'modules/sso/jetpack-sso-login-rtl.min.css',
+ 432 => 'modules/sso/jetpack-sso-login.css',
+ 433 => 'modules/sso/jetpack-sso-login.js',
+ 434 => 'modules/sso/jetpack-sso-login.min.css',
+ 435 => 'modules/subscriptions/subscriptions.css',
+ 436 => 'modules/theme-tools/compat/twentyfifteen-rtl.css',
+ 437 => 'modules/theme-tools/compat/twentyfifteen.css',
+ 438 => 'modules/theme-tools/compat/twentyfourteen-rtl.css',
+ 439 => 'modules/theme-tools/compat/twentyfourteen.css',
+ 440 => 'modules/theme-tools/compat/twentynineteen-rtl.css',
+ 441 => 'modules/theme-tools/compat/twentynineteen.css',
+ 442 => 'modules/theme-tools/compat/twentysixteen-rtl.css',
+ 443 => 'modules/theme-tools/compat/twentysixteen.css',
+ 444 => 'modules/theme-tools/compat/twentytwenty-rtl.css',
+ 445 => 'modules/theme-tools/compat/twentytwenty.css',
+ 446 => 'modules/theme-tools/compat/twentytwentyone-rtl.css',
+ 447 => 'modules/theme-tools/compat/twentytwentyone.css',
+ 448 => 'modules/theme-tools/content-options/customizer.js',
+ 449 => 'modules/theme-tools/js/suggest.js',
+ 450 => 'modules/theme-tools/responsive-videos/responsive-videos.css',
+ 451 => 'modules/theme-tools/responsive-videos/responsive-videos.js',
+ 452 => 'modules/theme-tools/responsive-videos/responsive-videos.min.js',
+ 453 => 'modules/theme-tools/site-logo/js/site-logo-header-text.js',
+ 454 => 'modules/theme-tools/site-logo/js/site-logo-header-text.min.js',
+ 455 => 'modules/theme-tools/social-menu/social-menu.css',
+ 456 => 'modules/tiled-gallery/tiled-gallery/rtl/tiled-gallery-rtl.css',
+ 457 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css',
+ 458 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.css',
+ 459 => 'modules/tiled-gallery/tiled-gallery/tiled-gallery.js',
+ 460 => 'modules/videopress/css/editor-rtl.css',
+ 461 => 'modules/videopress/css/editor-rtl.min.css',
+ 462 => 'modules/videopress/css/editor.css',
+ 463 => 'modules/videopress/css/editor.min.css',
+ 464 => 'modules/videopress/css/videopress-editor-style-rtl.css',
+ 465 => 'modules/videopress/css/videopress-editor-style-rtl.min.css',
+ 466 => 'modules/videopress/css/videopress-editor-style.css',
+ 467 => 'modules/videopress/css/videopress-editor-style.min.css',
+ 468 => 'modules/videopress/js/editor-view.js',
+ 469 => 'modules/videopress/js/gutenberg-video-upload.js',
+ 470 => 'modules/videopress/js/media-video-widget-extensions.js',
+ 471 => 'modules/videopress/js/videopress-plupload.js',
+ 472 => 'modules/videopress/js/videopress-uploader.js',
+ 473 => 'modules/videopress/videopress-admin-rtl.css',
+ 474 => 'modules/videopress/videopress-admin-rtl.min.css',
+ 475 => 'modules/videopress/videopress-admin.css',
+ 476 => 'modules/videopress/videopress-admin.min.css',
+ 477 => 'modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css',
+ 478 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.css',
+ 479 => 'modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css',
+ 480 => 'modules/widget-visibility/widget-conditions/widget-conditions.css',
+ 481 => 'modules/widget-visibility/widget-conditions/widget-conditions.js',
+ 482 => 'modules/widget-visibility/widget-conditions/widget-conditions.min.css',
+ 483 => 'modules/widgets/authors/style.css',
+ 484 => 'modules/widgets/contact-info/contact-info-admin.js',
+ 485 => 'modules/widgets/contact-info/contact-info-map.css',
+ 486 => 'modules/widgets/customizer-controls.css',
+ 487 => 'modules/widgets/customizer-utils.js',
+ 488 => 'modules/widgets/eu-cookie-law/eu-cookie-law-admin.js',
+ 489 => 'modules/widgets/eu-cookie-law/eu-cookie-law.js',
+ 490 => 'modules/widgets/eu-cookie-law/style.css',
+ 491 => 'modules/widgets/facebook-likebox/style.css',
+ 492 => 'modules/widgets/flickr/style.css',
+ 493 => 'modules/widgets/gallery/css/admin-rtl.css',
+ 494 => 'modules/widgets/gallery/css/admin-rtl.min.css',
+ 495 => 'modules/widgets/gallery/css/admin.css',
+ 496 => 'modules/widgets/gallery/css/admin.min.css',
+ 497 => 'modules/widgets/gallery/css/rtl/admin-rtl.css',
+ 498 => 'modules/widgets/gallery/js/admin.js',
+ 499 => 'modules/widgets/gallery/js/gallery.js',
+ 500 => 'modules/widgets/goodreads/css/goodreads.css',
+ 501 => 'modules/widgets/goodreads/css/rtl/goodreads-rtl.css',
+ 502 => 'modules/widgets/google-translate/google-translate.js',
+ 503 => 'modules/widgets/gravatar-profile.css',
+ 504 => 'modules/widgets/image-widget/style.css',
+ 505 => 'modules/widgets/instagram/instagram.css',
+ 506 => 'modules/widgets/milestone/admin.js',
+ 507 => 'modules/widgets/milestone/milestone-widget.css',
+ 508 => 'modules/widgets/milestone/milestone.js',
+ 509 => 'modules/widgets/milestone/style-admin.css',
+ 510 => 'modules/widgets/my-community/style.css',
+ 511 => 'modules/widgets/search/css/search-widget-admin-ui.css',
+ 512 => 'modules/widgets/search/css/search-widget-frontend.css',
+ 513 => 'modules/widgets/search/js/search-widget-admin.js',
+ 514 => 'modules/widgets/search/js/search-widget.js',
+ 515 => 'modules/widgets/simple-payments/customizer.css',
+ 516 => 'modules/widgets/simple-payments/customizer.js',
+ 517 => 'modules/widgets/simple-payments/style.css',
+ 518 => 'modules/widgets/social-icons/social-icons-admin.css',
+ 519 => 'modules/widgets/social-icons/social-icons-admin.js',
+ 520 => 'modules/widgets/social-icons/social-icons.css',
+ 521 => 'modules/widgets/social-media-icons/style.css',
+ 522 => 'modules/widgets/top-posts/style.css',
+ 523 => 'modules/widgets/twitter-timeline-admin.js',
+ 524 => 'modules/widgets/wordpress-post-widget/style.css',
+ 525 => 'modules/wordads/css/style.css',
+ 526 => 'modules/wordads/js/wordads-ccpa.js',
+ 527 => 'modules/wpgroho.js',
+);
diff --git a/plugins/jetpack/modules/photon.php b/plugins/jetpack/modules/photon.php
index 429797b3..4969e5b0 100644
--- a/plugins/jetpack/modules/photon.php
+++ b/plugins/jetpack/modules/photon.php
@@ -10,12 +10,15 @@
* Module Tags: Photos and Videos, Appearance, Recommended
* Feature: Recommended, Appearance
* Additional Search Queries: photon, photo cdn, image cdn, speed, compression, resize, responsive images, responsive, content distribution network, optimize, page speed, image optimize, photon jetpack
+ *
+ * @package automattic/jetpack
*/
-Jetpack::dns_prefetch( array(
- '//i0.wp.com',
- '//i1.wp.com',
- '//i2.wp.com',
-) );
+\Automattic\Jetpack\Assets::add_resource_hint(
+ array(
+ '//i0.wp.com',
+ ),
+ 'dns-prefetch'
+);
Jetpack_Photon::instance();
diff --git a/plugins/jetpack/modules/photon/photon.js b/plugins/jetpack/modules/photon/photon.js
index f68daebc..44e654ee 100644
--- a/plugins/jetpack/modules/photon/photon.js
+++ b/plugins/jetpack/modules/photon/photon.js
@@ -1,4 +1,4 @@
-( function() {
+( function () {
function recalculate() {
if ( this.complete ) {
// Support for lazy loading: if there is a lazy-src attribute and it's value
@@ -27,7 +27,7 @@
/**
* For images lacking explicit dimensions and needing them, try to add them.
*/
- var restore_dims = function() {
+ var restore_dims = function () {
var elements = document.querySelectorAll( 'img[data-recalc-dims]' );
for ( var i = 0; i < elements.length; i++ ) {
recalculate.call( elements[ i ] );
@@ -36,7 +36,7 @@
/**
* Modify given image's markup so that devicepx-jetpack.js will act on the image and it won't be reprocessed by this script.
*/
- reset_for_retina = function( img ) {
+ reset_for_retina = function ( img ) {
img.removeAttribute( 'data-recalc-dims' );
img.removeAttribute( 'scale' );
};
@@ -53,5 +53,5 @@
}
}
- document.body.addEventListener( 'post-load', restore_dims );
+ document.body.addEventListener( 'is.post-load', restore_dims );
} )();
diff --git a/plugins/jetpack/modules/plugin-search.php b/plugins/jetpack/modules/plugin-search.php
index cb98ae39..25267aab 100644
--- a/plugins/jetpack/modules/plugin-search.php
+++ b/plugins/jetpack/modules/plugin-search.php
@@ -1,6 +1,12 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Adds the PSH functionality to Jetpack.
+ *
+ * @package automattic/jetpack
+ */
use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Tracking;
/**
@@ -10,10 +16,9 @@ if ( ! defined( 'ABSPATH' ) ) {
exit;
}
-
if (
is_admin() &&
- Jetpack::is_active() &&
+ Jetpack::is_connection_ready() &&
/** This filter is documented in _inc/lib/admin-pages/class.jetpack-react-page.php */
apply_filters( 'jetpack_show_promotions', true ) &&
// Disable feature hints when plugins cannot be installed.
@@ -34,8 +39,18 @@ add_action( 'rest_api_init', array( 'Jetpack_Plugin_Search', 'register_endpoints
*/
class Jetpack_Plugin_Search {
- static $slug = 'jetpack-plugin-search';
+ /**
+ * PSH slug name.
+ *
+ * @var string
+ */
+ public static $slug = 'jetpack-plugin-search';
+ /**
+ * Singleton constructor.
+ *
+ * @return Jetpack_Plugin_Search
+ */
public static function init() {
static $instance = null;
@@ -46,6 +61,9 @@ class Jetpack_Plugin_Search {
return $instance;
}
+ /**
+ * Jetpack_Plugin_Search constructor.
+ */
public function __construct() {
add_action( 'current_screen', array( $this, 'start' ) );
}
@@ -53,12 +71,12 @@ class Jetpack_Plugin_Search {
/**
* Add actions and filters only if this is the plugin installation screen and it's the first page.
*
- * @param object $screen
+ * @param object $screen WP SCreen object.
*
* @since 7.1.0
*/
public function start( $screen ) {
- if ( 'plugin-install' === $screen->base && ( ! isset( $_GET['paged'] ) || 1 == $_GET['paged'] ) ) {
+ if ( 'plugin-install' === $screen->base && ( ! isset( $_GET['paged'] ) || 1 === intval( $_GET['paged'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
add_action( 'admin_enqueue_scripts', array( $this, 'load_plugins_search_script' ) );
add_filter( 'plugins_api_result', array( $this, 'inject_jetpack_module_suggestion' ), 10, 3 );
add_filter( 'self_admin_url', array( $this, 'plugin_details' ) );
@@ -87,19 +105,23 @@ class Jetpack_Plugin_Search {
* @since 7.1.0
*/
public static function register_endpoints() {
- register_rest_route( 'jetpack/v4', '/hints', array(
- 'methods' => WP_REST_Server::EDITABLE,
- 'callback' => __CLASS__ . '::dismiss',
- 'permission_callback' => __CLASS__ . '::can_request',
- 'args' => array(
- 'hint' => array(
- 'default' => '',
- 'type' => 'string',
- 'required' => true,
- 'validate_callback' => __CLASS__ . '::is_hint_id',
+ register_rest_route(
+ 'jetpack/v4',
+ '/hints',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::dismiss',
+ 'permission_callback' => __CLASS__ . '::can_request',
+ 'args' => array(
+ 'hint' => array(
+ 'default' => '',
+ 'type' => 'string',
+ 'required' => true,
+ 'validate_callback' => __CLASS__ . '::is_hint_id',
+ ),
),
)
- ) );
+ );
}
/**
@@ -119,15 +141,16 @@ class Jetpack_Plugin_Search {
*
* @since 7.1.0
*
- * @param string|bool $value Value to check.
+ * @param string|bool $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.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
*
* @return bool|WP_Error
*/
public static function is_hint_id( $value, $request, $param ) {
return in_array( $value, Jetpack::get_available_modules(), true )
? true
+ /* translators: %s is the name of a parameter passed to an endpoint. */
: new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be an alphanumeric string.', 'jetpack' ), $param ) );
}
@@ -203,6 +226,9 @@ class Jetpack_Plugin_Search {
return ! in_array( $hint, $dismissed_hints, true );
}
+ /**
+ * Load the search scripts and CSS for PSH.
+ */
public function load_plugins_search_script() {
wp_enqueue_script( self::$slug, plugins_url( 'modules/plugin-search/plugin-search.js', JETPACK__PLUGIN_FILE ), array( 'jquery' ), JETPACK__VERSION, true );
wp_localize_script(
@@ -226,12 +252,12 @@ class Jetpack_Plugin_Search {
'Learn more about these suggestions.',
'jetpack'
),
- 'supportLink' => 'https://jetpack.com/redirect/?source=plugin-hint-learn-support',
+ 'supportLink' => Redirect::get_url( 'plugin-hint-learn-support' ),
'hideText' => esc_html__( 'Hide this suggestion', 'jetpack' ),
)
);
- wp_enqueue_style( self::$slug, plugins_url( 'modules/plugin-search/plugin-search.css', JETPACK__PLUGIN_FILE ) );
+ wp_enqueue_style( self::$slug, plugins_url( 'modules/plugin-search/plugin-search.css', JETPACK__PLUGIN_FILE ), array(), JETPACK__VERSION );
}
/**
@@ -243,18 +269,21 @@ class Jetpack_Plugin_Search {
$data = get_transient( 'jetpack_plugin_data' );
if ( false === $data || is_wp_error( $data ) ) {
- include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
- $data = plugins_api( 'plugin_information', array(
- 'slug' => 'jetpack',
- 'is_ssl' => is_ssl(),
- 'fields' => array(
- 'banners' => true,
- 'reviews' => true,
- 'active_installs' => true,
- 'versions' => false,
- 'sections' => false,
- ),
- ) );
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
+ $data = plugins_api(
+ 'plugin_information',
+ array(
+ 'slug' => 'jetpack',
+ 'is_ssl' => is_ssl(),
+ 'fields' => array(
+ 'banners' => true,
+ 'reviews' => true,
+ 'active_installs' => true,
+ 'versions' => false,
+ 'sections' => false,
+ ),
+ )
+ );
set_transient( 'jetpack_plugin_data', $data, DAY_IN_SECONDS );
}
@@ -271,57 +300,63 @@ class Jetpack_Plugin_Search {
public function get_extra_features() {
return array(
'akismet' => array(
- 'name' => 'Akismet',
- 'search_terms' => 'akismet, anti-spam, antispam, comments, spam, spam protection, form spam, captcha, no captcha, nocaptcha, recaptcha, phising, google',
- 'short_description' => esc_html__( 'Keep your visitors and search engines happy by stopping comment and contact form spam with Akismet.', 'jetpack' ),
+ 'name' => 'Akismet',
+ 'search_terms' => 'akismet, anti-spam, antispam, comments, spam, spam protection, form spam, captcha, no captcha, nocaptcha, recaptcha, phising, google',
+ 'short_description' => esc_html__( 'Keep your visitors and search engines happy by stopping comment and contact form spam with Akismet.', 'jetpack' ),
'requires_connection' => true,
- 'module' => 'akismet',
- 'sort' => '16',
- 'learn_more_button' => 'https://jetpack.com/features/security/spam-filtering/',
- 'configure_url' => admin_url( 'admin.php?page=akismet-key-config' ),
+ 'module' => 'akismet',
+ 'sort' => '16',
+ 'learn_more_button' => Redirect::get_url( 'plugin-hint-upgrade-akismet' ),
+ 'configure_url' => admin_url( 'admin.php?page=akismet-key-config' ),
),
);
}
/**
* Intercept the plugins API response and add in an appropriate card for Jetpack
+ *
+ * @param object $result Plugin search results.
+ * @param string $action unused.
+ * @param object $args Search args.
*/
public function inject_jetpack_module_suggestion( $result, $action, $args ) {
- // Looks like a search query; it's matching time
+ // Looks like a search query; it's matching time.
if ( ! empty( $args->search ) ) {
require_once JETPACK__PLUGIN_DIR . 'class.jetpack-admin.php';
- $tracking = new Tracking();
+ $tracking = new Tracking();
$jetpack_modules_list = array_intersect_key(
array_merge( $this->get_extra_features(), Jetpack_Admin::init()->get_modules() ),
- array_flip( array(
- 'contact-form',
- 'lazy-images',
- 'monitor',
- 'photon',
- 'photon-cdn',
- 'protect',
- 'publicize',
- 'related-posts',
- 'sharedaddy',
- 'akismet',
- 'vaultpress',
- 'videopress',
- 'search',
- ) )
+ array_flip(
+ array(
+ 'contact-form',
+ 'lazy-images',
+ 'monitor',
+ 'photon',
+ 'photon-cdn',
+ 'protect',
+ 'publicize',
+ 'related-posts',
+ 'sharedaddy',
+ 'akismet',
+ 'vaultpress',
+ 'videopress',
+ 'search',
+ )
+ )
);
uasort( $jetpack_modules_list, array( $this, 'by_sorting_option' ) );
- // Record event when user searches for a term over 3 chars (less than 3 is not very useful.)
+ // Record event when user searches for a term over 3 chars (less than 3 is not very useful).
if ( strlen( $args->search ) >= 3 ) {
$tracking->record_user_event( 'wpa_plugin_search_term', array( 'search_term' => $args->search ) );
}
- // Lowercase, trim, remove punctuation/special chars, decode url, remove 'jetpack'
+ // Lowercase, trim, remove punctuation/special chars, decode url, remove 'jetpack'.
$normalized_term = $this->sanitize_search_term( $args->search );
$matching_module = null;
- // Try to match a passed search term with module's search terms
+ // Try to match a passed search term with module's search terms.
foreach ( $jetpack_modules_list as $module_slug => $module_opts ) {
/*
* Does the site's current plan support the feature?
@@ -342,32 +377,33 @@ class Jetpack_Plugin_Search {
}
if ( isset( $matching_module ) && $this->should_display_hint( $matching_module ) ) {
- // Record event when a matching feature is found
+ // Record event when a matching feature is found.
$tracking->record_user_event( 'wpa_plugin_search_match_found', array( 'feature' => $matching_module ) );
- $inject = (array) self::get_jetpack_plugin_data();
+ $inject = (array) self::get_jetpack_plugin_data();
$image_url = plugins_url( 'modules/plugin-search/psh', JETPACK__PLUGIN_FILE );
$overrides = array(
- 'plugin-search' => true, // Helps to determine if that an injected card.
- 'name' => sprintf( // Supplement name/description so that they clearly indicate this was added.
+ 'plugin-search' => true, // Helps to determine if that an injected card.
+ 'name' => sprintf( // Supplement name/description so that they clearly indicate this was added.
+ /* translators: Jetpack module name */
esc_html_x( 'Jetpack: %s', 'Jetpack: Module Name', 'jetpack' ),
$jetpack_modules_list[ $matching_module ]['name']
),
- 'short_description' => $jetpack_modules_list[ $matching_module ]['short_description'],
+ 'short_description' => $jetpack_modules_list[ $matching_module ]['short_description'],
'requires_connection' => (bool) $jetpack_modules_list[ $matching_module ]['requires_connection'],
- 'slug' => self::$slug,
- 'version' => JETPACK__VERSION,
- 'icons' => array(
+ 'slug' => self::$slug,
+ 'version' => JETPACK__VERSION,
+ 'icons' => array(
'1x' => "$image_url-128.png",
'2x' => "$image_url-256.png",
'svg' => "$image_url.svg",
),
);
- // Splice in the base module data
+ // Splice in the base module data.
$inject = array_merge( $inject, $jetpack_modules_list[ $matching_module ], $overrides );
- // Add it to the top of the list
+ // Add it to the top of the list.
$result->plugins = array_filter( $result->plugins, array( $this, 'filter_cards' ) );
array_unshift( $result->plugins, $inject );
}
@@ -382,20 +418,34 @@ class Jetpack_Plugin_Search {
* @since 7.2.0 Only remove Jetpack.
* @since 7.4.0 Simplify for WordPress 5.1+.
*
- * @param array|object $plugin
+ * @param array|object $plugin WordPress search result card.
*
* @return bool
*/
- function filter_cards( $plugin ) {
- return ! in_array( $plugin['slug'], array( 'jetpack' ), true );
+ public function filter_cards( $plugin ) {
+ /*
+ * $plugin is normally an array.
+ * However, since the response data can be filtered,
+ * we cannot fully trust its format.
+ * Let's handle both arrays and objects, and bail if it's neither.
+ */
+ if ( is_array( $plugin ) && ! empty( $plugin['slug'] ) ) {
+ $slug = $plugin['slug'];
+ } elseif ( is_object( $plugin ) && ! empty( $plugin->slug ) ) {
+ $slug = $plugin->slug;
+ } else {
+ return false;
+ }
+
+ return ! in_array( $slug, array( 'jetpack' ), true );
}
/**
* Take a raw search query and return something a bit more standardized and
* easy to work with.
*
- * @param String $term The raw search term
- * @return String A simplified/sanitized version.
+ * @param string $term The raw search term.
+ * @return string A simplified/sanitized version.
*/
private function sanitize_search_term( $term ) {
$term = strtolower( urldecode( $term ) );
@@ -411,6 +461,9 @@ class Jetpack_Plugin_Search {
/**
* Callback function to sort the array of modules by the sort option.
+ *
+ * @param array $m1 Array 1 to sort.
+ * @param array $m2 Array 2 to sort.
*/
private function by_sorting_option( $m1, $m2 ) {
return $m1['sort'] - $m2['sort'];
@@ -421,28 +474,36 @@ class Jetpack_Plugin_Search {
* Sharing is included here because while we still have a page in WP Admin,
* we prefer to send users to Calypso.
*
- * @param string $feature
- * @param string $configure_url
+ * @param string $feature Feature.
+ * @param string $configure_url URL to configure feature.
*
* @return string
* @since 7.1.0
- *
*/
private function get_configure_url( $feature, $configure_url ) {
- $siteFragment = Jetpack::build_raw_urls( get_home_url() );
switch ( $feature ) {
case 'sharing':
case 'publicize':
- $configure_url = "https://wordpress.com/marketing/connections/$siteFragment";
+ $configure_url = Redirect::get_url( 'calypso-marketing-connections' );
break;
case 'seo-tools':
- $configure_url = "https://wordpress.com/marketing/traffic/$siteFragment#seo";
+ $configure_url = Redirect::get_url(
+ 'calypso-marketing-traffic',
+ array(
+ 'anchor' => 'seo',
+ )
+ );
break;
case 'google-analytics':
- $configure_url = "https://wordpress.com/marketing/traffic/$siteFragment#analytics";
+ $configure_url = Redirect::get_url(
+ 'calypso-marketing-traffic',
+ array(
+ 'anchor' => 'analytics',
+ )
+ );
break;
case 'wordads':
- $configure_url = "https://wordpress.com/ads/settings/$siteFragment";
+ $configure_url = Redirect::get_url( 'wpcom-ads-settings' );
break;
}
return $configure_url;
@@ -450,6 +511,9 @@ class Jetpack_Plugin_Search {
/**
* Put some more appropriate links on our custom result cards.
+ *
+ * @param array $links Related links.
+ * @param array $plugin Plugin result information.
*/
public function insert_module_related_links( $links, $plugin ) {
if ( self::$slug !== $plugin['slug'] ) {
@@ -465,7 +529,7 @@ class Jetpack_Plugin_Search {
$links['jp_get_started'] = '<a
id="plugin-select-settings"
class="jetpack-plugin-search__primary jetpack-plugin-search__get-started button"
- href="https://jetpack.com/redirect/?source=plugin-hint-learn-' . $plugin['module'] . '"
+ href="' . esc_url( Redirect::get_url( 'plugin-hint-learn-' . $plugin['module'] ) ) . '"
data-module="' . esc_attr( $plugin['module'] ) . '"
data-track="get_started"
>' . esc_html__( 'Get started', 'jetpack' ) . '</a>';
@@ -497,12 +561,12 @@ class Jetpack_Plugin_Search {
data-module="' . esc_attr( $plugin['module'] ) . '"
data-track="configure"
>' . esc_html__( 'Configure', 'jetpack' ) . '</a>';
- // Module is active, doesn't have options to configure
+ // Module is active, doesn't have options to configure.
} elseif ( Jetpack::is_module_active( $plugin['module'] ) ) {
$links['jp_get_started'] = '<a
id="plugin-select-settings"
class="jetpack-plugin-search__primary jetpack-plugin-search__get-started button"
- href="https://jetpack.com/redirect/?source=plugin-hint-learn-' . $plugin['module'] . '"
+ href="' . esc_url( Redirect::get_url( 'plugin-hint-learn-' . $plugin['module'] ) ) . '"
data-module="' . esc_attr( $plugin['module'] ) . '"
data-track="get_started"
>' . esc_html__( 'Get started', 'jetpack' ) . '</a>';
@@ -519,7 +583,7 @@ class Jetpack_Plugin_Search {
>' . esc_html__( 'Learn more', 'jetpack' ) . '</a>';
}
- // Dismiss link
+ // Dismiss link.
$links[] = '<a
class="jetpack-plugin-search__dismiss"
data-module="' . esc_attr( $plugin['module'] ) . '"
@@ -538,52 +602,12 @@ class Jetpack_Plugin_Search {
* @return bool True if PSH is active.
*/
function jetpack_is_psh_active() {
- // false means unset, 1 means active, 0 means inactive.
- $status = get_transient( 'jetpack_psh_status' );
-
- if ( false === $status ) {
- $error = false;
- $status = jetpack_get_remote_is_psh_active( $error );
- set_transient(
- 'jetpack_psh_status',
- // Cache as int
- (int) $status,
- // If there was an error, still cache but for a shorter time
- ( $error ? 5 : 15 ) * MINUTE_IN_SECONDS
- );
- }
-
- return (bool) $status;
-}
-
-/**
- * Makes remote request to determine if Plugin search hints is active.
- *
- * @since 7.1.1
- * @internal
- *
- * @param bool &$error Did the remote request result in an error?
- * @return bool True if PSH is active.
- */
-function jetpack_get_remote_is_psh_active( &$error ) {
- $response = wp_remote_get( 'https://jetpack.com/psh-status/' );
- if ( is_wp_error( $response ) ) {
- $error = true;
- return true;
- }
-
- $body = wp_remote_retrieve_body( $response );
- if ( empty( $body ) ) {
- $error = true;
- return true;
- }
-
- $json = json_decode( $body );
- if ( ! isset( $json->active ) ) {
- $error = true;
- return true;
- }
-
- $error = false;
- return (bool) $json->active;
+ /**
+ * Disables the Plugin Search Hints feature found when searching the plugins page.
+ *
+ * @since 8.7.0
+ *
+ * @param bool Set false to disable the feature.
+ */
+ return apply_filters( 'jetpack_psh_active', true );
}
diff --git a/plugins/jetpack/modules/plugin-search/plugin-search.css b/plugins/jetpack/modules/plugin-search/plugin-search.css
index 8623d3f4..84ce64ab 100644
--- a/plugins/jetpack/modules/plugin-search/plugin-search.css
+++ b/plugins/jetpack/modules/plugin-search/plugin-search.css
@@ -26,7 +26,7 @@
}
.plugin-card-jetpack-plugin-search .plugin-action-buttons .jetpack-plugin-search__primary {
- background: #00be28;
+ background: #069e08;
border-color: #00a523;
color: #fff;
box-shadow: 0 1px 0 #c5e2c3;
@@ -48,8 +48,8 @@
align-content: space-between;
clear: both;
padding: 12px 20px;
- background-color: #fafafa;
- border-top: 1px solid #ddd;
+ background-color: #f6f7f7;
+ border-top: 1px solid #dcdcde;
overflow: hidden;
}
@@ -80,5 +80,5 @@
}
.jetpack-plugin-search__dismiss:hover {
- color: #666;
+ color: #646970;
}
diff --git a/plugins/jetpack/modules/plugin-search/plugin-search.js b/plugins/jetpack/modules/plugin-search/plugin-search.js
index 1d18a438..a306b1e4 100644
--- a/plugins/jetpack/modules/plugin-search/plugin-search.js
+++ b/plugins/jetpack/modules/plugin-search/plugin-search.js
@@ -7,7 +7,7 @@
var JetpackPSH = {};
-( function( $, jpsh ) {
+( function ( $, jpsh ) {
JetpackPSH = {
$pluginFilter: $( '#plugin-filter' ),
@@ -15,7 +15,7 @@ var JetpackPSH = {};
* Get parent search hint element.
* @returns {Element | null}
*/
- getCard: function() {
+ getCard: function () {
return document.querySelector( '.plugin-card-jetpack-plugin-search' );
},
@@ -26,10 +26,10 @@ var JetpackPSH = {};
* @param {object} feature Identifier of feature involved in the event.
* @param {object} target Object where action was performed.
*/
- trackEvent: function( eventName, feature, target ) {
+ trackEvent: function ( eventName, feature, target ) {
jpTracksAJAX
.record_ajax_event( eventName, 'click', { feature: feature } )
- .always( function() {
+ .always( function () {
if ( 'undefined' !== typeof target && !! target.getAttribute( 'href' ) ) {
// If it has an href, follow it.
window.location = target.getAttribute( 'href' );
@@ -40,7 +40,7 @@ var JetpackPSH = {};
/**
* Update title of the card to add a mention that the result is from the Jetpack plugin.
*/
- updateCardTitle: function() {
+ updateCardTitle: function () {
var hint = JetpackPSH.getCard();
if ( 'object' === typeof hint && null !== hint ) {
@@ -53,7 +53,7 @@ var JetpackPSH = {};
/**
* Move action links below description.
*/
- moveActionLinks: function() {
+ moveActionLinks: function () {
var hint = JetpackPSH.getCard();
if ( 'object' === typeof hint && null !== hint ) {
var descriptionContainer = hint.querySelector( '.column-description' );
@@ -72,7 +72,7 @@ var JetpackPSH = {};
/**
* Replace bottom row of the card to insert logo, text and link to dismiss the card.
*/
- replaceCardBottom: function() {
+ replaceCardBottom: function () {
var hint = JetpackPSH.getCard();
if ( 'object' === typeof hint && null !== hint ) {
hint.querySelector( '.plugin-card-bottom' ).outerHTML =
@@ -100,8 +100,8 @@ var JetpackPSH = {};
* Check if plugin card list nodes changed. If there's a Jetpack PSH card, replace the title and the bottom row.
* @param {array} mutationsList
*/
- replaceOnNewResults: function( mutationsList ) {
- mutationsList.forEach( function( mutation ) {
+ replaceOnNewResults: function ( mutationsList ) {
+ mutationsList.forEach( function ( mutation ) {
if (
'childList' === mutation.type &&
1 === document.querySelectorAll( '.plugin-card-jetpack-plugin-search' ).length
@@ -113,12 +113,12 @@ var JetpackPSH = {};
} );
},
- dismiss: function( moduleName ) {
+ dismiss: function ( moduleName ) {
document.getElementById( 'the-list' ).removeChild( JetpackPSH.getCard() );
$.ajax( {
url: jpsh.base_rest_url + '/hints',
method: 'post',
- beforeSend: function( xhr ) {
+ beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce );
},
data: JSON.stringify( {
@@ -126,12 +126,12 @@ var JetpackPSH = {};
} ),
contentType: 'application/json',
dataType: 'json',
- } ).done( function() {
+ } ).done( function () {
JetpackPSH.trackEvent( 'wpa_plugin_search_dismiss', moduleName );
} );
},
- ajaxActivateModule: function( moduleName ) {
+ ajaxActivateModule: function ( moduleName ) {
var $moduleBtn = JetpackPSH.$pluginFilter.find( '#plugin-select-activate' );
$moduleBtn.toggleClass( 'install-now updating-message' );
$moduleBtn.prop( 'disabled', true );
@@ -141,37 +141,37 @@ var JetpackPSH = {};
$.ajax( {
url: jpsh.base_rest_url + '/settings',
method: 'post',
- beforeSend: function( xhr ) {
+ beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce );
},
data: JSON.stringify( data ),
contentType: 'application/json',
dataType: 'json',
} )
- .done( function() {
+ .done( function () {
JetpackPSH.updateButton( moduleName );
JetpackPSH.trackEvent( 'wpa_plugin_search_activate', moduleName );
} )
- .error( function() {
+ .error( function () {
$moduleBtn.toggleClass( 'install-now updating-message' );
} );
},
// Remove onclick handler, disable loading spinner, update button to redirect to module settings.
- updateButton: function( moduleName ) {
+ updateButton: function ( moduleName ) {
$.ajax( {
url: jpsh.base_rest_url + '/module/' + moduleName,
method: 'get',
- beforeSend: function( xhr ) {
+ beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', jpsh.nonce );
},
dataType: 'json',
- } ).done( function( response ) {
+ } ).done( function ( response ) {
var $moduleBtn = JetpackPSH.$pluginFilter.find( '#plugin-select-activate' );
$moduleBtn.prop( 'onclick', null ).off( 'click' );
$moduleBtn.toggleClass( 'install-now updating-message' );
$moduleBtn.text( jpsh.activated );
- setTimeout( function() {
+ setTimeout( function () {
var url = 'https://jetpack.com/redirect/?source=plugin-hint-learn-' + moduleName,
label = jpsh.getStarted,
classes = 'jetpack-plugin-search__primary button',
@@ -209,7 +209,7 @@ var JetpackPSH = {};
/**
* Start suggesting.
*/
- init: function() {
+ init: function () {
if ( JetpackPSH.$pluginFilter.length < 1 ) {
return;
}
@@ -228,15 +228,15 @@ var JetpackPSH = {};
resultsObserver.observe( document.getElementById( 'plugin-filter' ), { childList: true } );
JetpackPSH.$pluginFilter
- .on( 'click', '.jetpack-plugin-search__dismiss', function( event ) {
+ .on( 'click', '.jetpack-plugin-search__dismiss', function ( event ) {
event.preventDefault();
JetpackPSH.dismiss( $( this ).data( 'module' ) );
} )
- .on( 'click', 'button#plugin-select-activate', function( event ) {
+ .on( 'click', 'button#plugin-select-activate', function ( event ) {
event.preventDefault();
JetpackPSH.ajaxActivateModule( $( this ).data( 'module' ) );
} )
- .on( 'click', '.jetpack-plugin-search__primary', function( event ) {
+ .on( 'click', '.jetpack-plugin-search__primary', function ( event ) {
event.preventDefault();
var $this = $( this );
if ( $this.data( 'track' ) ) {
@@ -248,7 +248,7 @@ var JetpackPSH = {};
);
}
} )
- .on( 'click', '.jetpack-plugin-search__learn-more', function( event ) {
+ .on( 'click', '.jetpack-plugin-search__learn-more', function ( event ) {
event.preventDefault();
var $this = $( this );
JetpackPSH.trackEvent(
@@ -257,7 +257,7 @@ var JetpackPSH = {};
$this.get( 0 )
);
} )
- .on( 'click', '.jetpack-plugin-search__support_link', function( event ) {
+ .on( 'click', '.jetpack-plugin-search__support_link', function ( event ) {
event.preventDefault();
var $this = $( this );
JetpackPSH.trackEvent(
diff --git a/plugins/jetpack/modules/plugin-search/psh.svg b/plugins/jetpack/modules/plugin-search/psh.svg
index 5b2609ef..52d6d551 100644
--- a/plugins/jetpack/modules/plugin-search/psh.svg
+++ b/plugins/jetpack/modules/plugin-search/psh.svg
@@ -1 +1 @@
-<svg viewBox="0 0 183 104" xmlns="http://www.w3.org/2000/svg"><path d="m.3 99.6c11-.6 22.1-.7 33.1-.8l16.6-.1h16.6l33.1.2c11 .1 22.1.2 33.1.6.2 0 .4.2.4.4s-.2.4-.4.4c-11 .4-22.1.5-33.1.6l-33.1.2h-16.6l-16.6-.1c-11-.1-22.1-.3-33.1-.8-.1 0-.2-.1-.2-.2 0-.3.1-.4.2-.4zm152.5 0c2.5-.5 5-.7 7.5-.8l3.7-.1h3.7c2.5 0 5 .1 7.5.2s5 .2 7.5.6c.2 0 .4.2.4.5 0 .2-.2.3-.4.4-2.5.4-5 .5-7.5.6s-5 .1-7.5.2h-3.7l-3.7-.1c-2.5-.1-5-.3-7.5-.8-.1 0-.2-.1-.2-.2 0-.4.1-.5.2-.5z" fill="#e3eaf0"/><path d="m46.1 82.8v-57.8h70.1v57.8h-66.3" fill="#d8dee4"/><path d="m46.1 24.7v-13.6h98.2v13.5h-92.8" fill="#BBC9D5"/><path d="m144.3 25.2.9 57.3-28.9.1v-57.4z" fill="#ccced0"/><path d="m102.5 82.7h-48.2v-32.1h53.1v32.1m0-35.7h-53.1v-13.2h53.1z" fill="#fff"/><path d="m96.1 41.6c-.7.2-1.4.5-2.1.8-.6.4-1.3.7-1.9 1.1-.4.3-.9.6-1.4.9.4-.5.9-1.1 1.3-1.6.5-.6 1-1.3 1.4-2 .5-.7.9-1.4 1.2-2.2 0-.1 0-.1-.1-.1h-.1c-.7.5-1.3 1.1-1.8 1.7s-1 1.3-1.5 1.9c-.4.6-.9 1.2-1.3 1.9.2-.7.5-1.4.7-2.2l.6-2.4c.2-.8.3-1.6.3-2.5v-.1h-.1c-.4.7-.8 1.5-1 2.2-.3.8-.5 1.6-.7 2.3-.2.6-.3 1.2-.4 1.8 0-.7-.1-1.5-.1-2.2-.1-.9-.2-1.7-.3-2.6s-.3-1.7-.5-2.6c0-.1-.1-.2-.2-.1-.1 0-.1.1-.1.2-.1.9-.1 1.8-.1 2.6 0 .9.1 1.7.1 2.6.1.9.1 1.7.2 2.6-.2-.5-.5-1.1-.8-1.6-.3-.6-.7-1.3-1-1.9l-1.2-1.8c-.1-.1-.2-.1-.3 0-.1 0-.1.1-.1.2.2.7.4 1.4.7 2.1s.6 1.3.9 2c.2.3.3.6.5.9-.5-.5-1-1.1-1.5-1.6-.7-.6-1.3-1.3-2-1.9s-1.4-1.2-2.2-1.7c-.1-.1-.2 0-.3.1v.2c.5.8 1.1 1.5 1.7 2.1.6.7 1.3 1.3 1.9 2 .6.6 1.3 1.3 2 1.9l.1.1c-.4-.2-.8-.4-1.2-.5-.6-.2-1.2-.5-1.9-.7-.6-.2-1.3-.4-1.9-.5-.1 0-.2.1-.2.2s0 .1.1.2c.5.4 1.1.7 1.7 1s1.2.6 1.8.8c.6.3 1.2.5 1.9.7.6.2 1.2.3 1.9.4h.3c.7-.3 1.4-.6 2-.9.6-.4 1.3-.7 1.9-1.1l1.8-1.2c.6-.4 1.2-.9 1.7-1.5v-.1c-.3.1-.4.1-.4.1z" fill="#ccced0"/><path d="m147.6 24.9c-8.7.9-17.4.9-26.1 1l-26.1.3h-26.1c-8.7 0-17.4.1-26.1-.7v-.5c8.7-.9 17.4-.9 26.1-1l26.1-.3h26.1c8.7 0 17.4-.1 26.1.7z" fill="#46799A"/><path d="m77.3 70c-1.1.6-2.1 1.3-2.9 2.2l.3-1.1c.4-1.7 1-3.4 1.6-5.1l-.3-.2c-.6.7-1.1 1.5-1.4 2.4-.4.9-.7 1.7-.9 2.6s-.4 1.8-.5 2.8v.8c-.2.6-.3 1.4-.1 2h.2l.1-.1v.1h.2c.1-.5.3-.9.4-1.4.1-.1.1-.2.2-.3.3-.5.7-1 1-1.5.4-.5.8-.9 1.3-1.4s.9-.9 1.3-1.5c-.2 0-.5-.3-.5-.3zm24.6-10.4c-.5-.9-1.3-2-2.8-2.5-.6-.2-1.3-.3-2-.3.3-.4.6-.7.9-1.1l-.3-.3c-.6.5-1.1 1-1.7 1.5-.5.1-1 .3-1.4.5-.2-1-.6-2.3-1.8-3.3-.8-.7-1.9-1.1-2.9-1.2-1.1-.1-2.1.7-2.3 1.8 0 .3 0 .5.1.8.3 1.1.9 2 1.8 2.7 1 .8 2.3 1.3 3.6 1.3.3 0 .6 0 .9-.1-1 1.5-1.8 3.1-2.5 4.8l-.1.1c-.2-1-.7-2.8-2.5-3.8-1.1-.6-2.3-.9-3.6-.7-1 .1-1.7 1-1.6 2.1 0 .1 0 .3.1.4.4 1.2 1.2 2.2 2.3 2.9 1.4.8 3 1 4.5.5 0 .1.1.2.2.3-.5 1.7-.8 3.4-1 5.1-.2-.6-1.4-2.8-3.9-3.3-1.2-.2-2.5 0-3.6.5-.9.5-1.3 1.6-.8 2.5.1.1.1.2.2.3.8 1 1.9 1.7 3.2 1.9.3.1.7.1 1.1.1 1.2 0 2.3-.4 3.3-1l-.1.2.2.3c.1.2.2.3.3.5-.1 1.5 0 3.1.2 4.6h.2c.2-1.3.3-2.5.4-3.8.9.8 2.1 1.2 3.4 1.2 1.2 0 2.3-.4 3.3-1 .5-.3.8-.8.8-1.4s-.2-1.1-.6-1.5c-.7-.7-1.9-1.5-3.5-1.5-1.1 0-2.1.3-3 .9.2-1.2.4-2.4.8-3.6.9.8 2 1.3 3.1 1.4h.5c1 0 2-.3 2.9-.8.5-.3.8-.8.9-1.3.1-.6-.1-1.1-.5-1.5-.7-.7-1.8-1.6-3.3-1.7-.8-.1-1.7.1-2.5.4.4-1 .9-2 1.5-3 .1-.1.1-.2.2-.4.6.9 1.6 1.7 2.7 2 .6.2 1.2.3 1.8.3s1.1-.1 1.6-.2c.5-.2 1-.6 1.2-1.1.5-.4.4-1 .1-1.5zm-15.2 4.9c-.9-.5-1.5-1.3-1.9-2.3-.1-.4.1-.9.5-1.1h.8c.8 0 1.6.2 2.3.6 1.5.9 1.9 2.6 2 3.3-1.2.3-2.6.1-3.7-.5zm-1.5 7.7c-1-.2-1.9-.7-2.6-1.6-.3-.4-.2-.9.1-1.2l.1-.1c.7-.3 1.4-.5 2.2-.5.3 0 .5 0 .8.1 1.7.3 2.7 1.8 3 2.5-.9.8-2.3 1.1-3.6.8zm8.8-1.3c1.3 0 2.2.6 2.8 1.2.3.3.4.9 0 1.2 0 0-.1.1-.2.1-.7.6-1.6.9-2.6.9-1.6 0-2.6-.8-3.2-1.5 0-.2.1-.4.1-.6.6-.5 1.7-1.3 3.1-1.3zm1.4-6.6c1.2.1 2.2.8 2.7 1.4.2.2.2.4.2.7s-.2.5-.4.6c-.9.5-1.9.7-2.9.6-1.1-.1-2.2-.7-2.9-1.5v-.1c.1-.3.2-.7.3-1 .9-.5 1.9-.8 3-.7zm-1.7-5.6c-1.3.2-2.6-.2-3.6-1-.7-.6-1.2-1.3-1.4-2.2-.2-.6.2-1.2.7-1.3h.4c.9.1 1.7.4 2.4 1 1.4 1 1.5 2.7 1.5 3.5zm7.4 2.1c-.1.2-.3.4-.6.5-.9.3-1.9.3-2.9-.1-1-.3-1.9-1.1-2.4-2l.9-1.2c.9-.2 1.8-.2 2.6.1 1.2.4 1.9 1.3 2.3 2 .2.2.2.5.1.7z" fill="#ccced0"/><path d="m178.2 57.1c-.1-.5-.5-.9-1-.9-2.1 0-4.2-.2-6.3-.5s-4.2-.8-6.2-1.5-3.9-1.6-5.7-2.7-3.3-2.5-4.6-4.1l-.1-.1c-.4-.3-1-.3-1.3.1-1.2 1.4-2.8 2.8-4.3 4-1.6 1.2-3.3 2.2-5.1 3s-3.7 1.4-5.6 1.8-3.9.5-5.9.3c-.4 0-.7.3-.8.6-.7 4.8-.9 9.5-.6 14.3.3 4.7 1.2 9.5 2.9 13.9 1.7 4.5 4.3 8.6 7.8 11.9s7.8 5.5 12.4 6.7h.1c2.5-.1 4.9-.8 7.1-1.8s4.4-2.3 6.2-4c3.8-3.2 6.7-7.4 8.6-12 2-4.6 2.8-9.5 3.1-14.4s0-9.8-.7-14.6z" fill="#00be28"/><path d="m145.3 78.3 7.4 5.9 15.1-17.2" fill="#00be28"/><path d="m168.1 66.9c-.1-.1-.3-.2-.5-.1-1.5 1.2-2.9 2.6-4.2 3.9l-3.9 4.2c-2.3 2.6-4.6 5.1-6.9 7.7-1-.8-1.9-1.5-2.9-2.3l-1.9-1.5c-.7-.5-1.2-1.1-2.1-1.2h-.4c-.4.2-.6.6-.4 1 .3.9 1 1.2 1.6 1.8l1.8 1.5c1.2 1 2.4 2 3.7 3 .5.4 1.1.3 1.5-.1 2.5-2.9 5-5.7 7.5-8.6 1.2-1.5 2.5-2.9 3.7-4.4s2.3-3 3.3-4.7c.2.1.1-.1.1-.2z" fill="#fff"/><path d="m137.2 99.7c-5-.2-10-.4-15-.5s-10-.2-15-.2c-10-.1-19.9-.1-29.9-.1l-29.9-.1h-18.7c-.7 0-1.1 0-1.6-.1s-.9-.3-1.3-.6c-.8-.6-1.3-1.4-1.5-2.4 0-.2-.1-.5-.1-.7v-1.6l52.9-.1h4.8v2.4c0 .3.2.5.5.5h24.5c.3 0 .5-.2.5-.5v-2.7c3.5 0 6.9-.1 10.4-.2 4.5-.1 9-.2 13.5-.4.1 0 .2-.1.2-.3 0-.1-.1-.2-.2-.2-4.5-.2-9-.3-13.5-.4s-9-.2-13.5-.2c-9-.1-18-.1-27-.1l-54.2-.2c-.6 0-1.2.5-1.2 1.2v2.8c0 .4 0 .8.1 1.2.5 2.3 2.2 4.2 4.5 4.8.7.2 1.6.2 2.2.2h18.7l29.9-.1c10 0 19.9 0 29.9-.1 5 0 10-.1 15-.2s10-.2 15-.5c.1 0 .2-.1.2-.3s-.1-.3-.2-.3zm16.6-99.4-25.8-.1h-85.1c-.6 0-1.2.1-1.8.3-1.2.3-2.3.9-3.3 1.7-1.9 1.6-3.1 4-3 6.5v82.5h2.2v-82.4c0-2.9 1.9-5.4 4.6-6.1.4-.1.9-.2 1.4-.2h85.1l24.9-.1.2 19.7.1 10.3.2 10.3c0 .2.2.3.4.3.1 0 .3-.1.3-.3l.2-10.3.1-10.3.2-20.6c-.1-.7-.4-1.1-.9-1.2z" fill="#ccced0"/><path d="m54.3 78.8c13.6-5.6 42.9-1.9 52.5 4.1l-52.5-.2z" fill="#6F93AD"/></svg> \ No newline at end of file
+<svg viewBox="0 0 183 104" xmlns="http://www.w3.org/2000/svg"><path d="m.3 99.6c11-.6 22.1-.7 33.1-.8l16.6-.1h16.6l33.1.2c11 .1 22.1.2 33.1.6.2 0 .4.2.4.4s-.2.4-.4.4c-11 .4-22.1.5-33.1.6l-33.1.2h-16.6l-16.6-.1c-11-.1-22.1-.3-33.1-.8-.1 0-.2-.1-.2-.2 0-.3.1-.4.2-.4zm152.5 0c2.5-.5 5-.7 7.5-.8l3.7-.1h3.7c2.5 0 5 .1 7.5.2s5 .2 7.5.6c.2 0 .4.2.4.5 0 .2-.2.3-.4.4-2.5.4-5 .5-7.5.6s-5 .1-7.5.2h-3.7l-3.7-.1c-2.5-.1-5-.3-7.5-.8-.1 0-.2-.1-.2-.2 0-.4.1-.5.2-.5z" fill="#e3eaf0"/><path d="m46.1 82.8v-57.8h70.1v57.8h-66.3" fill="#d8dee4"/><path d="m46.1 24.7v-13.6h98.2v13.5h-92.8" fill="#BBC9D5"/><path d="m144.3 25.2.9 57.3-28.9.1v-57.4z" fill="#ccced0"/><path d="m102.5 82.7h-48.2v-32.1h53.1v32.1m0-35.7h-53.1v-13.2h53.1z" fill="#fff"/><path d="m96.1 41.6c-.7.2-1.4.5-2.1.8-.6.4-1.3.7-1.9 1.1-.4.3-.9.6-1.4.9.4-.5.9-1.1 1.3-1.6.5-.6 1-1.3 1.4-2 .5-.7.9-1.4 1.2-2.2 0-.1 0-.1-.1-.1h-.1c-.7.5-1.3 1.1-1.8 1.7s-1 1.3-1.5 1.9c-.4.6-.9 1.2-1.3 1.9.2-.7.5-1.4.7-2.2l.6-2.4c.2-.8.3-1.6.3-2.5v-.1h-.1c-.4.7-.8 1.5-1 2.2-.3.8-.5 1.6-.7 2.3-.2.6-.3 1.2-.4 1.8 0-.7-.1-1.5-.1-2.2-.1-.9-.2-1.7-.3-2.6s-.3-1.7-.5-2.6c0-.1-.1-.2-.2-.1-.1 0-.1.1-.1.2-.1.9-.1 1.8-.1 2.6 0 .9.1 1.7.1 2.6.1.9.1 1.7.2 2.6-.2-.5-.5-1.1-.8-1.6-.3-.6-.7-1.3-1-1.9l-1.2-1.8c-.1-.1-.2-.1-.3 0-.1 0-.1.1-.1.2.2.7.4 1.4.7 2.1s.6 1.3.9 2c.2.3.3.6.5.9-.5-.5-1-1.1-1.5-1.6-.7-.6-1.3-1.3-2-1.9s-1.4-1.2-2.2-1.7c-.1-.1-.2 0-.3.1v.2c.5.8 1.1 1.5 1.7 2.1.6.7 1.3 1.3 1.9 2 .6.6 1.3 1.3 2 1.9l.1.1c-.4-.2-.8-.4-1.2-.5-.6-.2-1.2-.5-1.9-.7-.6-.2-1.3-.4-1.9-.5-.1 0-.2.1-.2.2s0 .1.1.2c.5.4 1.1.7 1.7 1s1.2.6 1.8.8c.6.3 1.2.5 1.9.7.6.2 1.2.3 1.9.4h.3c.7-.3 1.4-.6 2-.9.6-.4 1.3-.7 1.9-1.1l1.8-1.2c.6-.4 1.2-.9 1.7-1.5v-.1c-.3.1-.4.1-.4.1z" fill="#ccced0"/><path d="m147.6 24.9c-8.7.9-17.4.9-26.1 1l-26.1.3h-26.1c-8.7 0-17.4.1-26.1-.7v-.5c8.7-.9 17.4-.9 26.1-1l26.1-.3h26.1c8.7 0 17.4-.1 26.1.7z" fill="#46799A"/><path d="m77.3 70c-1.1.6-2.1 1.3-2.9 2.2l.3-1.1c.4-1.7 1-3.4 1.6-5.1l-.3-.2c-.6.7-1.1 1.5-1.4 2.4-.4.9-.7 1.7-.9 2.6s-.4 1.8-.5 2.8v.8c-.2.6-.3 1.4-.1 2h.2l.1-.1v.1h.2c.1-.5.3-.9.4-1.4.1-.1.1-.2.2-.3.3-.5.7-1 1-1.5.4-.5.8-.9 1.3-1.4s.9-.9 1.3-1.5c-.2 0-.5-.3-.5-.3zm24.6-10.4c-.5-.9-1.3-2-2.8-2.5-.6-.2-1.3-.3-2-.3.3-.4.6-.7.9-1.1l-.3-.3c-.6.5-1.1 1-1.7 1.5-.5.1-1 .3-1.4.5-.2-1-.6-2.3-1.8-3.3-.8-.7-1.9-1.1-2.9-1.2-1.1-.1-2.1.7-2.3 1.8 0 .3 0 .5.1.8.3 1.1.9 2 1.8 2.7 1 .8 2.3 1.3 3.6 1.3.3 0 .6 0 .9-.1-1 1.5-1.8 3.1-2.5 4.8l-.1.1c-.2-1-.7-2.8-2.5-3.8-1.1-.6-2.3-.9-3.6-.7-1 .1-1.7 1-1.6 2.1 0 .1 0 .3.1.4.4 1.2 1.2 2.2 2.3 2.9 1.4.8 3 1 4.5.5 0 .1.1.2.2.3-.5 1.7-.8 3.4-1 5.1-.2-.6-1.4-2.8-3.9-3.3-1.2-.2-2.5 0-3.6.5-.9.5-1.3 1.6-.8 2.5.1.1.1.2.2.3.8 1 1.9 1.7 3.2 1.9.3.1.7.1 1.1.1 1.2 0 2.3-.4 3.3-1l-.1.2.2.3c.1.2.2.3.3.5-.1 1.5 0 3.1.2 4.6h.2c.2-1.3.3-2.5.4-3.8.9.8 2.1 1.2 3.4 1.2 1.2 0 2.3-.4 3.3-1 .5-.3.8-.8.8-1.4s-.2-1.1-.6-1.5c-.7-.7-1.9-1.5-3.5-1.5-1.1 0-2.1.3-3 .9.2-1.2.4-2.4.8-3.6.9.8 2 1.3 3.1 1.4h.5c1 0 2-.3 2.9-.8.5-.3.8-.8.9-1.3.1-.6-.1-1.1-.5-1.5-.7-.7-1.8-1.6-3.3-1.7-.8-.1-1.7.1-2.5.4.4-1 .9-2 1.5-3 .1-.1.1-.2.2-.4.6.9 1.6 1.7 2.7 2 .6.2 1.2.3 1.8.3s1.1-.1 1.6-.2c.5-.2 1-.6 1.2-1.1.5-.4.4-1 .1-1.5zm-15.2 4.9c-.9-.5-1.5-1.3-1.9-2.3-.1-.4.1-.9.5-1.1h.8c.8 0 1.6.2 2.3.6 1.5.9 1.9 2.6 2 3.3-1.2.3-2.6.1-3.7-.5zm-1.5 7.7c-1-.2-1.9-.7-2.6-1.6-.3-.4-.2-.9.1-1.2l.1-.1c.7-.3 1.4-.5 2.2-.5.3 0 .5 0 .8.1 1.7.3 2.7 1.8 3 2.5-.9.8-2.3 1.1-3.6.8zm8.8-1.3c1.3 0 2.2.6 2.8 1.2.3.3.4.9 0 1.2 0 0-.1.1-.2.1-.7.6-1.6.9-2.6.9-1.6 0-2.6-.8-3.2-1.5 0-.2.1-.4.1-.6.6-.5 1.7-1.3 3.1-1.3zm1.4-6.6c1.2.1 2.2.8 2.7 1.4.2.2.2.4.2.7s-.2.5-.4.6c-.9.5-1.9.7-2.9.6-1.1-.1-2.2-.7-2.9-1.5v-.1c.1-.3.2-.7.3-1 .9-.5 1.9-.8 3-.7zm-1.7-5.6c-1.3.2-2.6-.2-3.6-1-.7-.6-1.2-1.3-1.4-2.2-.2-.6.2-1.2.7-1.3h.4c.9.1 1.7.4 2.4 1 1.4 1 1.5 2.7 1.5 3.5zm7.4 2.1c-.1.2-.3.4-.6.5-.9.3-1.9.3-2.9-.1-1-.3-1.9-1.1-2.4-2l.9-1.2c.9-.2 1.8-.2 2.6.1 1.2.4 1.9 1.3 2.3 2 .2.2.2.5.1.7z" fill="#ccced0"/><path d="m178.2 57.1c-.1-.5-.5-.9-1-.9-2.1 0-4.2-.2-6.3-.5s-4.2-.8-6.2-1.5-3.9-1.6-5.7-2.7-3.3-2.5-4.6-4.1l-.1-.1c-.4-.3-1-.3-1.3.1-1.2 1.4-2.8 2.8-4.3 4-1.6 1.2-3.3 2.2-5.1 3s-3.7 1.4-5.6 1.8-3.9.5-5.9.3c-.4 0-.7.3-.8.6-.7 4.8-.9 9.5-.6 14.3.3 4.7 1.2 9.5 2.9 13.9 1.7 4.5 4.3 8.6 7.8 11.9s7.8 5.5 12.4 6.7h.1c2.5-.1 4.9-.8 7.1-1.8s4.4-2.3 6.2-4c3.8-3.2 6.7-7.4 8.6-12 2-4.6 2.8-9.5 3.1-14.4s0-9.8-.7-14.6z" fill="#069e08"/><path d="m145.3 78.3 7.4 5.9 15.1-17.2" fill="#069e08"/><path d="m168.1 66.9c-.1-.1-.3-.2-.5-.1-1.5 1.2-2.9 2.6-4.2 3.9l-3.9 4.2c-2.3 2.6-4.6 5.1-6.9 7.7-1-.8-1.9-1.5-2.9-2.3l-1.9-1.5c-.7-.5-1.2-1.1-2.1-1.2h-.4c-.4.2-.6.6-.4 1 .3.9 1 1.2 1.6 1.8l1.8 1.5c1.2 1 2.4 2 3.7 3 .5.4 1.1.3 1.5-.1 2.5-2.9 5-5.7 7.5-8.6 1.2-1.5 2.5-2.9 3.7-4.4s2.3-3 3.3-4.7c.2.1.1-.1.1-.2z" fill="#fff"/><path d="m137.2 99.7c-5-.2-10-.4-15-.5s-10-.2-15-.2c-10-.1-19.9-.1-29.9-.1l-29.9-.1h-18.7c-.7 0-1.1 0-1.6-.1s-.9-.3-1.3-.6c-.8-.6-1.3-1.4-1.5-2.4 0-.2-.1-.5-.1-.7v-1.6l52.9-.1h4.8v2.4c0 .3.2.5.5.5h24.5c.3 0 .5-.2.5-.5v-2.7c3.5 0 6.9-.1 10.4-.2 4.5-.1 9-.2 13.5-.4.1 0 .2-.1.2-.3 0-.1-.1-.2-.2-.2-4.5-.2-9-.3-13.5-.4s-9-.2-13.5-.2c-9-.1-18-.1-27-.1l-54.2-.2c-.6 0-1.2.5-1.2 1.2v2.8c0 .4 0 .8.1 1.2.5 2.3 2.2 4.2 4.5 4.8.7.2 1.6.2 2.2.2h18.7l29.9-.1c10 0 19.9 0 29.9-.1 5 0 10-.1 15-.2s10-.2 15-.5c.1 0 .2-.1.2-.3s-.1-.3-.2-.3zm16.6-99.4-25.8-.1h-85.1c-.6 0-1.2.1-1.8.3-1.2.3-2.3.9-3.3 1.7-1.9 1.6-3.1 4-3 6.5v82.5h2.2v-82.4c0-2.9 1.9-5.4 4.6-6.1.4-.1.9-.2 1.4-.2h85.1l24.9-.1.2 19.7.1 10.3.2 10.3c0 .2.2.3.4.3.1 0 .3-.1.3-.3l.2-10.3.1-10.3.2-20.6c-.1-.7-.4-1.1-.9-1.2z" fill="#ccced0"/><path d="m54.3 78.8c13.6-5.6 42.9-1.9 52.5 4.1l-52.5-.2z" fill="#6F93AD"/></svg>
diff --git a/plugins/jetpack/modules/post-by-email.php b/plugins/jetpack/modules/post-by-email.php
index 851303c1..aee6550f 100644
--- a/plugins/jetpack/modules/post-by-email.php
+++ b/plugins/jetpack/modules/post-by-email.php
@@ -1,201 +1,24 @@
<?php
-
/**
* Module Name: Post by email
* Module Description: Publish posts by sending an email
* First Introduced: 2.0
* Sort Order: 14
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: Writing
* Feature: Writing
* Additional Search Queries: post by email, email
+ *
+ * @package automattic/jetpack
*/
+/**
+ * Require the PBE Class.
+ */
+require_once __DIR__ . '/post-by-email/class-jetpack-post-by-email.php';
+
add_action( 'jetpack_modules_loaded', array( 'Jetpack_Post_By_Email', 'init' ) );
Jetpack::enable_module_configurable( __FILE__ );
-
-class Jetpack_Post_By_Email {
- public static function init() {
- static $instance = NULL;
-
- if ( !$instance ) {
- $instance = new Jetpack_Post_By_Email;
- }
-
- return $instance;
- }
-
- function __construct() {
- add_action( 'init', array( &$this, 'action_init' ) );
- }
-
- function action_init() {
- if ( ! current_user_can( 'edit_posts' ) )
- return;
-
- add_action( 'profile_personal_options', array( &$this, 'user_profile' ) );
- add_action( 'admin_print_scripts-profile.php', array( &$this, 'profile_scripts' ) );
-
- add_action( 'wp_ajax_jetpack_post_by_email_enable', array( &$this, 'create_post_by_email_address' ) );
- add_action( 'wp_ajax_jetpack_post_by_email_regenerate', array( &$this, 'regenerate_post_by_email_address' ) );
- add_action( 'wp_ajax_jetpack_post_by_email_disable', array( &$this, 'delete_post_by_email_address' ) );
- }
-
- function profile_scripts() {
- wp_enqueue_script( 'post-by-email', plugins_url( 'post-by-email/post-by-email.js', __FILE__ ), array( 'jquery' ) );
- wp_localize_script( 'post-by-email', 'pbeVars', array(
- 'nonces' => array(
- 'enable' => wp_create_nonce( 'jetpack.createPostByEmailAddress' ),
- 'regenerate' => wp_create_nonce( 'jetpack.regeneratePostByEmailAddress' ),
- 'disable' => wp_create_nonce( 'jetpack.deletePostByEmailAddress' ),
- ),
- ));
- wp_enqueue_style( 'post-by-email', plugins_url( 'post-by-email/post-by-email.css', __FILE__ ) );
- wp_style_add_data( 'post-by-email', 'jetpack-inline', true );
- // Do we really need `admin_styles`? With the new admin UI, it's breaking some bits.
- // Jetpack::init()->admin_styles();
- }
-
- function check_user_connection() {
- $user_token = Jetpack_Data::get_access_token( get_current_user_id() );
- $is_user_connected = $user_token && !is_wp_error( $user_token );
-
- // If the user is already connected via Jetpack, then we're good
- if ( $is_user_connected )
- return true;
-
- return false;
- }
-
- function user_profile() {
- $blog_name = get_bloginfo( 'blogname' );
- if ( empty( $blog_name ) ) {
- $blog_name = home_url( '/' );
- }
-
- ?>
- <div id="post-by-email" class="jetpack-targetable">
- <h3><?php esc_html_e( 'Post by Email', 'jetpack' ); ?></h3>
- <table class="form-table">
- <tr>
- <th scope="row"><?php esc_html_e( 'Email Address', 'jetpack' ); ?><span id="jp-pbe-spinner" class="spinner"></span></th>
- <td>
- <div id="jp-pbe-error" class="jetpack-inline-error"></div> <?php
-
- if ( $this->check_user_connection() ) {
- $email = $this->get_post_by_email_address();
-
- if ( empty( $email ) ) {
- $enable_hidden = '';
- $info_hidden = ' style="display: none;"';
- } else {
- $enable_hidden = ' style="display: none;"';
- $info_hidden = '';
- } ?>
-
- <input type="button" name="jp-pbe-enable" id="jp-pbe-enable" class="button" value="<?php esc_attr_e( 'Enable Post By Email', 'jetpack' ); ?> "<?php echo $enable_hidden; ?> />
- <div id="jp-pbe-info"<?php echo $info_hidden; ?>>
- <p id="jp-pbe-email-wrapper">
- <input type="text" id="jp-pbe-email" value="<?php echo esc_attr( $email ); ?>" readonly="readonly" class="regular-text" />
- <span class="description"><a target="_blank" href="https://jetpack.com/support/post-by-email/"><?php esc_html_e( 'More information', 'jetpack' ); ?></a></span>
- </p>
- <p>
- <input type="button" name="jp-pbe-regenerate" id="jp-pbe-regenerate" class="button" value="<?php esc_attr_e( 'Regenerate Address', 'jetpack' ); ?> " />
- <input type="button" name="jp-pbe-disable" id="jp-pbe-disable" class="button" value="<?php esc_attr_e( 'Disable Post By Email', 'jetpack' ); ?> " />
- </p>
- </div> <?php
- } else {
- $jetpack = Jetpack::init(); ?>
-
- <p class="jetpack-inline-message">
- <?php printf(
- esc_html( wptexturize( __( 'To use Post By Email, you need to link your %s account to your WordPress.com account.', 'jetpack' ) ) ),
- '<strong>' . esc_html( $blog_name ) . '</strong>'
- ); ?><br />
- <?php echo esc_html( wptexturize( __( "If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.", 'jetpack' ) ) ); ?>
- </p>
- <p>
- <a href="<?php echo $jetpack->build_connect_url( false, get_edit_profile_url( get_current_user_id() ) . '#post-by-email', 'unlinked-user-pbe' ); ?>" class="button button-connector" id="wpcom-connect"><?php esc_html_e( 'Link account with WordPress.com', 'jetpack' ); ?></a>
- </p>
- <?php
- } ?>
- </td>
- </tr>
- </table>
- </div>
- <?php
- }
-
- function get_post_by_email_address() {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
- $xml->query( 'jetpack.getPostByEmailAddress' );
-
- if ( $xml->isError() )
- return NULL;
-
- $response = $xml->getResponse();
- if ( empty( $response ) )
- return NULL;
-
- return $response;
- }
-
- function create_post_by_email_address() {
- self::__process_ajax_proxy_request(
- 'jetpack.createPostByEmailAddress',
- __( 'Unable to create your Post By Email address. Please try again later.', 'jetpack' )
- );
- }
-
- function regenerate_post_by_email_address() {
- self::__process_ajax_proxy_request(
- 'jetpack.regeneratePostByEmailAddress',
- __( 'Unable to regenerate your Post By Email address. Please try again later.', 'jetpack' )
- );
- }
-
- function delete_post_by_email_address() {
- self::__process_ajax_proxy_request(
- 'jetpack.deletePostByEmailAddress',
- __( 'Unable to disable your Post By Email address. Please try again later.', 'jetpack' )
- );
- }
-
- /**
- * Back end function to abstract the xmlrpc function calls to wpcom.
- *
- * @param $endpoint
- * @param $error_message
- */
- function __process_ajax_proxy_request( $endpoint, $error_message ) { // phpcs:ignore
- if ( ! current_user_can( 'edit_posts' ) ) {
- wp_send_json_error( $error_message );
- }
- if ( empty( $_REQUEST['pbe_nonce'] ) || ! wp_verify_nonce( $_REQUEST['pbe_nonce'], $endpoint ) ) {
- wp_send_json_error( $error_message );
- }
-
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
- $xml->query( $endpoint );
-
- if ( $xml->isError() ) {
- wp_send_json_error( $error_message );
- }
-
- $response = $xml->getResponse();
- if ( empty( $response ) ) {
- wp_send_json_error( $error_message );
- }
-
- // Will be used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
- update_option( 'post_by_email_address' . get_current_user_id(), $response );
-
- wp_send_json_success( $response );
- }
-}
diff --git a/plugins/jetpack/modules/post-by-email/class-jetpack-post-by-email.php b/plugins/jetpack/modules/post-by-email/class-jetpack-post-by-email.php
new file mode 100644
index 00000000..25192939
--- /dev/null
+++ b/plugins/jetpack/modules/post-by-email/class-jetpack-post-by-email.php
@@ -0,0 +1,251 @@
+<?php
+/**
+ * Class Jetpack_Post_By_Email
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Redirect;
+
+/**
+ * Class Jetpack_Post_By_Email
+ */
+class Jetpack_Post_By_Email {
+ /**
+ * Initialize PBE.
+ *
+ * @return Jetpack_Post_By_Email
+ */
+ public static function init() {
+ static $instance = null;
+
+ if ( ! $instance ) {
+ $instance = new Jetpack_Post_By_Email();
+ }
+
+ return $instance;
+ }
+
+ /**
+ * Singleton
+ */
+ private function __construct() {
+ add_action( 'init', array( $this, 'action_init' ) );
+ }
+
+ /**
+ * Adds hooks for PBE.
+ */
+ public function action_init() {
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ return;
+ }
+
+ add_action( 'profile_personal_options', array( $this, 'user_profile' ) );
+ add_action( 'admin_print_scripts-profile.php', array( $this, 'profile_scripts' ) );
+
+ add_action( 'wp_ajax_jetpack_post_by_email_enable', array( $this, 'create_post_by_email_address' ) );
+ add_action( 'wp_ajax_jetpack_post_by_email_regenerate', array( $this, 'regenerate_post_by_email_address' ) );
+ add_action( 'wp_ajax_jetpack_post_by_email_disable', array( $this, 'delete_post_by_email_address' ) );
+ }
+
+ /**
+ * Enqueues scripts for user profile page.
+ */
+ public function profile_scripts() {
+ wp_enqueue_script( 'post-by-email', plugins_url( 'post-by-email.js', __FILE__ ), array( 'jquery' ), JETPACK__VERSION, true );
+ wp_localize_script(
+ 'post-by-email',
+ 'pbeVars',
+ array(
+ 'rest_nonce' => wp_create_nonce( 'wp_rest' ),
+ )
+ );
+ wp_enqueue_style( 'post-by-email', plugins_url( 'post-by-email.css', __FILE__ ), array(), JETPACK__VERSION );
+ wp_style_add_data( 'post-by-email', 'jetpack-inline', true );
+ }
+
+ /**
+ * Check if the user is connected.
+ *
+ * @return bool True if connected. False if not.
+ */
+ public function check_user_connection() {
+ $user_token = ( new Tokens() )->get_access_token( get_current_user_id() );
+
+ $is_user_connected = $user_token && ! is_wp_error( $user_token );
+
+ // If the user is already connected via Jetpack, then we're good.
+ if ( $is_user_connected ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Adds field to user profile page.
+ */
+ public function user_profile() {
+ $blog_name = get_bloginfo( 'blogname' );
+ if ( empty( $blog_name ) ) {
+ $blog_name = home_url( '/' );
+ }
+
+ ?>
+ <div id="post-by-email" class="jetpack-targetable">
+ <h3><?php esc_html_e( 'Post by Email', 'jetpack' ); ?></h3>
+ <table class="form-table">
+ <tr>
+ <th scope="row"><?php esc_html_e( 'Email Address', 'jetpack' ); ?><span id="jp-pbe-spinner" class="spinner"></span></th>
+ <td>
+ <div id="jp-pbe-error" class="jetpack-inline-error"></div>
+ <?php
+
+ if ( $this->check_user_connection() ) {
+ $email = $this->get_post_by_email_address();
+
+ $enable_button_style = empty( $email ) ? '' : 'display: none;';
+ $info_style = empty( $email ) ? 'display: none;' : '';
+ ?>
+
+ <input type="button" name="jp-pbe-enable" id="jp-pbe-enable" class="button" value="<?php esc_attr_e( 'Enable Post By Email', 'jetpack' ); ?>" style="<?php echo esc_attr( $enable_button_style ); ?>" />
+ <div id="jp-pbe-info" style="<?php echo esc_attr( $info_style ); ?>">
+ <p id="jp-pbe-email-wrapper">
+ <input type="text" id="jp-pbe-email" value="<?php echo esc_attr( $email ); ?>" readonly="readonly" class="regular-text" />
+ <span class="description"><a target="_blank" rel="noopener noreferrer" href="<?php echo esc_url( Redirect::get_url( 'jetpack-support-post-by-email' ) ); ?>"><?php esc_html_e( 'More information', 'jetpack' ); ?></a></span>
+ </p>
+ <p>
+ <input type="button" name="jp-pbe-regenerate" id="jp-pbe-regenerate" class="button" value="<?php esc_attr_e( 'Regenerate Address', 'jetpack' ); ?> " />
+ <input type="button" name="jp-pbe-disable" id="jp-pbe-disable" class="button" value="<?php esc_attr_e( 'Disable Post By Email', 'jetpack' ); ?> " />
+ </p>
+ </div>
+ <?php
+ } else {
+ $jetpack = Jetpack::init();
+ ?>
+
+ <p class="jetpack-inline-message">
+ <?php
+ printf(
+ /* translators: Placeholder is the site's name from WordPress settings. */
+ esc_html( wptexturize( __( 'To use Post By Email, you need to link your %s account to your WordPress.com account.', 'jetpack' ) ) ),
+ '<strong>' . esc_html( $blog_name ) . '</strong>'
+ );
+ ?>
+ <br />
+ <?php echo esc_html( wptexturize( __( "If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.", 'jetpack' ) ) ); ?>
+ </p>
+ <p>
+ <a href="<?php echo esc_url( $jetpack->build_connect_url( false, get_edit_profile_url( get_current_user_id() ) . '#post-by-email', 'unlinked-user-pbe' ) ); ?>" class="button button-connector" id="wpcom-connect"><?php esc_html_e( 'Link account with WordPress.com', 'jetpack' ); ?></a>
+ </p>
+ <?php
+ }
+ ?>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <?php
+ }
+
+ /**
+ * XMLRPC Query to WP.com for PBE e-mail address for user.
+ *
+ * @return string|null PBE E-mail Address or null on error.
+ */
+ public function get_post_by_email_address() {
+ $xml = $this->init_rest_connection();
+
+ $xml->query( 'jetpack.getPostByEmailAddress' );
+
+ if ( $xml->isError() ) {
+ return null;
+ }
+
+ $response = $xml->getResponse();
+ if ( empty( $response ) ) {
+ return null;
+ }
+
+ return $response;
+ }
+
+ /**
+ * Process the REST API request to modify the "Post by Email" settings.
+ *
+ * @param string $action Allowed values: 'create', 'regenerate', 'delete'.
+ *
+ * @return array|false
+ */
+ public function process_api_request( $action ) {
+ $endpoint = null;
+ $error_message = esc_html__( 'Please try again later.', 'jetpack' );
+ $result = false;
+
+ switch ( $action ) {
+ case 'create':
+ $endpoint = 'jetpack.createPostByEmailAddress';
+ $error_message = esc_html__( 'Unable to create the Post by Email address. Please try again later.', 'jetpack' );
+ break;
+ case 'regenerate':
+ $endpoint = 'jetpack.regeneratePostByEmailAddress';
+ $error_message = esc_html__( 'Unable to regenerate the Post by Email address. Please try again later.', 'jetpack' );
+ break;
+ case 'delete':
+ $endpoint = 'jetpack.deletePostByEmailAddress';
+ $error_message = esc_html__( 'Unable to delete the Post by Email address. Please try again later.', 'jetpack' );
+ break;
+ }
+
+ if ( $endpoint ) {
+ $result = $this->process_rest_proxy_request( $endpoint, $error_message );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Calls WPCOM through authenticated request to create, regenerate or delete the Post by Email address.
+ *
+ * @since 4.3.0
+ *
+ * @param string $endpoint Process to call on WPCOM to create, regenerate or delete the Post by Email address.
+ * @param string $error Error message to return.
+ *
+ * @return array
+ */
+ private function process_rest_proxy_request( $endpoint, $error ) {
+ if ( ! current_user_can( 'edit_posts' ) ) {
+ return array( 'message' => $error );
+ }
+
+ $xml = $this->init_rest_connection();
+
+ $xml->query( $endpoint );
+
+ if ( $xml->isError() ) {
+ return array( 'message' => $error );
+ }
+
+ $response = $xml->getResponse();
+ if ( empty( $response ) ) {
+ return array( 'message' => $error );
+ }
+
+ // Used only in Jetpack_Core_Json_Api_Endpoints::get_remote_value.
+ update_option( 'post_by_email_address' . get_current_user_id(), $response );
+
+ return $response;
+ }
+
+ /**
+ * Initialize the IXR client
+ *
+ * @return Jetpack_IXR_Client
+ */
+ private function init_rest_connection() {
+ return new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) );
+ }
+}
diff --git a/plugins/jetpack/modules/post-by-email/post-by-email.js b/plugins/jetpack/modules/post-by-email/post-by-email.js
index a8141684..c2fdc0ad 100644
--- a/plugins/jetpack/modules/post-by-email/post-by-email.js
+++ b/plugins/jetpack/modules/post-by-email/post-by-email.js
@@ -1,6 +1,6 @@
-/* global jetpack_post_by_email:true, ajaxurl, pbeVars */
+/* global jetpack_post_by_email:true, pbeVars */
-( function( $ ) {
+( function ( $ ) {
var $pbeDisable,
$pbeEmail,
$pbeEmailWrapper,
@@ -11,37 +11,35 @@
$pbeSpinner;
jetpack_post_by_email = {
- init: function() {
+ init: function () {
$pbeEnable.click( jetpack_post_by_email.enable );
$pbeRegenerate.click( jetpack_post_by_email.regenerate );
$pbeDisable.click( jetpack_post_by_email.disable );
},
- enable: function() {
+ enable: function () {
$pbeEnable.attr( 'disabled', 'disabled' );
$pbeError.fadeOut();
$pbeSpinner.fadeIn();
- var data = {
- action: 'jetpack_post_by_email_enable',
- pbe_nonce: pbeVars.nonces.enable,
- };
-
- $.post( ajaxurl, data, jetpack_post_by_email.handle_enabled );
+ jetpack_post_by_email.send_request(
+ { post_by_email_address: 'create' },
+ jetpack_post_by_email.handle_enabled
+ );
},
- handle_enabled: function( response ) {
+ handle_enabled: function ( response ) {
$pbeRegenerate.removeAttr( 'disabled' );
$pbeDisable.removeAttr( 'disabled' );
- if ( response.success ) {
- $pbeEnable.fadeOut( 400, function() {
+ if ( response.code === 'success' ) {
+ $pbeEnable.fadeOut( 400, function () {
$pbeEnable.removeAttr( 'disabled' );
- $pbeEmail.val( response.data );
+ $pbeEmail.val( response.post_by_email_address );
$pbeInfo.fadeIn();
} );
} else {
- $pbeError.text( response.data );
+ $pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
$pbeError.fadeIn();
$pbeEnable.removeAttr( 'disabled' );
}
@@ -49,28 +47,23 @@
$pbeSpinner.fadeOut();
},
- regenerate: function() {
- $pbeRegenerate.attr( 'disabled', 'disabled' );
- $pbeDisable.attr( 'disabled', 'disabled' );
- $pbeError.fadeOut();
- $pbeSpinner.fadeIn();
-
- var data = {
- action: 'jetpack_post_by_email_regenerate',
- pbe_nonce: pbeVars.nonces.regenerate,
- };
+ regenerate: function () {
+ jetpack_post_by_email.before_request();
- $.post( ajaxurl, data, jetpack_post_by_email.handle_regenerated );
+ jetpack_post_by_email.send_request(
+ { post_by_email_address: 'regenerate' },
+ jetpack_post_by_email.handle_regenerated
+ );
},
- handle_regenerated: function( response ) {
- if ( response.success ) {
- $pbeEmailWrapper.fadeOut( 400, function() {
- $pbeEmail.val( response.data );
+ handle_regenerated: function ( response ) {
+ if ( response.code === 'success' ) {
+ $pbeEmailWrapper.fadeOut( 400, function () {
+ $pbeEmail.val( response.post_by_email_address );
$pbeEmailWrapper.fadeIn();
} );
} else {
- $pbeError.text( response.data );
+ $pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
$pbeError.fadeIn();
}
@@ -79,24 +72,19 @@
$pbeSpinner.fadeOut();
},
- disable: function() {
- $pbeRegenerate.attr( 'disabled', 'disabled' );
- $pbeDisable.attr( 'disabled', 'disabled' );
- $pbeError.fadeOut();
- $pbeSpinner.fadeIn();
-
- var data = {
- action: 'jetpack_post_by_email_disable',
- pbe_nonce: pbeVars.nonces.disable,
- };
+ disable: function () {
+ jetpack_post_by_email.before_request();
- $.post( ajaxurl, data, jetpack_post_by_email.handle_disabled );
+ jetpack_post_by_email.send_request(
+ { post_by_email_address: 'delete' },
+ jetpack_post_by_email.handle_disabled
+ );
},
- handle_disabled: function( response ) {
- if ( response.success ) {
+ handle_disabled: function ( response ) {
+ if ( response.code === 'success' ) {
$pbeEnable.removeAttr( 'disabled' );
- $pbeInfo.fadeOut( 400, function() {
+ $pbeInfo.fadeOut( 400, function () {
$pbeRegenerate.removeAttr( 'disabled' );
$pbeDisable.removeAttr( 'disabled' );
$pbeEnable.fadeIn();
@@ -105,15 +93,43 @@
$pbeRegenerate.removeAttr( 'disabled' );
$pbeDisable.removeAttr( 'disabled' );
- $pbeError.text( response.data );
+ $pbeError.text( jetpack_post_by_email.parse_error_message( response ) );
$pbeError.fadeIn();
}
$pbeSpinner.fadeOut();
},
+
+ send_request: function ( data, callback ) {
+ var request = new XMLHttpRequest();
+ request.open( 'POST', '/wp-json/jetpack/v4/settings/' );
+ request.setRequestHeader( 'Content-Type', 'application/json' );
+ request.setRequestHeader( 'X-WP-Nonce', pbeVars.rest_nonce );
+ request.onreadystatechange = function () {
+ if ( this.readyState === XMLHttpRequest.DONE ) {
+ callback( JSON.parse( this.response ) );
+ }
+ };
+ request.send( JSON.stringify( data ) );
+ },
+
+ parse_error_message: function ( data ) {
+ if ( data.message ) {
+ return data.message.replace( /^.*?:/, '' );
+ }
+
+ return '';
+ },
+
+ before_request: function () {
+ $pbeRegenerate.attr( 'disabled', 'disabled' );
+ $pbeDisable.attr( 'disabled', 'disabled' );
+ $pbeError.fadeOut();
+ $pbeSpinner.fadeIn();
+ },
};
- $( function() {
+ $( function () {
$pbeDisable = $( '#jp-pbe-disable' );
$pbeEmail = $( '#jp-pbe-email' );
$pbeEmailWrapper = $( '#jp-pbe-email-wrapper' );
diff --git a/plugins/jetpack/modules/protect.php b/plugins/jetpack/modules/protect.php
index 09b0c81c..bcbaf94c 100644
--- a/plugins/jetpack/modules/protect.php
+++ b/plugins/jetpack/modules/protect.php
@@ -6,6 +6,7 @@
* Recommendation Order: 4
* First Introduced: 3.4
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: Yes
* Module Tags: Recommended
* Feature: Security
@@ -13,7 +14,6 @@
*/
use Automattic\Jetpack\Constants;
-use Automattic\Jetpack\Connection\Utils as Connection_Utils;
include_once JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php';
@@ -25,9 +25,7 @@ class Jetpack_Protect_Module {
public $whitelist;
public $whitelist_error;
public $whitelist_saved;
- private $user_ip;
private $local_host;
- private $api_endpoint;
public $last_request;
public $last_response_raw;
public $last_response;
@@ -249,9 +247,7 @@ class Jetpack_Protect_Module {
}
// Request the key
- $xml = new Jetpack_IXR_Client( array (
- 'user_id' => get_current_user_id()
- ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.protect.requestKey', $request );
// Hmm, can't talk to wordpress.com
@@ -383,9 +379,10 @@ class Jetpack_Protect_Module {
/**
* Get all IP headers so that we can process on our server...
*
- * @return string
+ * @return array
*/
function get_headers() {
+ $output = array();
$ip_related_headers = array (
'GD_PHP_HANDLER',
'HTTP_AKAMAI_ORIGIN_HOP',
@@ -407,7 +404,7 @@ class Jetpack_Protect_Module {
);
foreach ( $ip_related_headers as $header ) {
- if ( isset( $_SERVER[ $header ] ) ) {
+ if ( ! empty( $_SERVER[ $header ] ) ) {
$output[ $header ] = $_SERVER[ $header ];
}
}
@@ -725,7 +722,7 @@ class Jetpack_Protect_Module {
$request['host'] = $this->get_local_host();
$request['headers'] = json_encode( $this->get_headers() );
$request['jetpack_version'] = constant( 'JETPACK__VERSION' );
- $request['wordpress_version'] = strval( $wp_version );
+ $request['wordpress_version'] = (string) $wp_version ;
$request['api_key'] = $api_key;
$request['multisite'] = "0";
@@ -752,7 +749,7 @@ class Jetpack_Protect_Module {
'timeout' => absint( $timeout )
);
- $response_json = wp_remote_post( $this->get_api_host(), $args );
+ $response_json = wp_remote_post( JETPACK_PROTECT__API_HOST, $args );
$this->last_response_raw = $response_json;
$transient_name = $this->get_transient_name();
@@ -860,17 +857,6 @@ class Jetpack_Protect_Module {
return get_transient( $transient );
}
- function get_api_host() {
- if ( isset( $this->api_endpoint ) ) {
- return $this->api_endpoint;
- }
-
- //Check to see if we can use SSL
- $this->api_endpoint = Connection_Utils::fix_url_for_bad_hosts( JETPACK_PROTECT__API_HOST );
-
- return $this->api_endpoint;
- }
-
function get_local_host() {
if ( isset( $this->local_host ) ) {
return $this->local_host;
@@ -903,6 +889,6 @@ class Jetpack_Protect_Module {
$jetpack_protect = Jetpack_Protect_Module::instance();
global $pagenow;
-if ( isset( $pagenow ) && 'wp-login.php' == $pagenow ) {
+if ( isset( $pagenow ) && 'wp-login.php' === $pagenow ) {
$jetpack_protect->check_login_ability();
}
diff --git a/plugins/jetpack/modules/protect/blocked-login-page.php b/plugins/jetpack/modules/protect/blocked-login-page.php
index eb488692..f6789e4b 100644
--- a/plugins/jetpack/modules/protect/blocked-login-page.php
+++ b/plugins/jetpack/modules/protect/blocked-login-page.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Redirect;
/**
* Class Jetpack_Protect_Blocked_Login_Page
@@ -19,6 +20,15 @@ class Jetpack_Protect_Blocked_Login_Page {
public $ip_address;
public $valid_blocked_user_id;
public $email_address;
+
+ /**
+ * URL to support page
+ *
+ * @deprecated 8.5.0 Use Jetpack_Protect_Blocked_Login_Page::get_help_url()
+ * @see Jetpack_Protect_Blocked_Login_Page::get_help_url()
+ *
+ * @var string string $HELP_URL
+ */
const HELP_URL = 'https://jetpack.com/support/security-features/#unblock';
const HTTP_STATUS_CODE_TOO_MANY_REQUESTS = 429;
@@ -60,6 +70,17 @@ class Jetpack_Protect_Blocked_Login_Page {
add_filter( 'lostpassword_redirect', array( $this, 'add_args_to_lostpassword_redirect_url' ), 10, 1 );
}
+ /**
+ * Gets the URL that redirects to the support page on unblocking
+ *
+ * @since 8.5.0
+ *
+ * @return string
+ */
+ public static function get_help_url() {
+ return Redirect::get_url( 'jetpack-support-security-features', array( 'anchor' => 'unblock' ) );
+ }
+
public function add_args_to_lostpassword_redirect_url( $url ) {
if ( $this->valid_blocked_user_id ) {
$url = empty( $url ) ? wp_login_url() : $url;
@@ -303,7 +324,7 @@ class Jetpack_Protect_Blocked_Login_Page {
__( '<p>Your IP address <code>%2$s</code> has been flagged for potential security violations. You can unlock your login by sending yourself a special link via email. <a href="%3$s">Learn More</a></p>', 'jetpack' ),
$icon,
$ip,
- esc_url( self::HELP_URL )
+ esc_url( self::get_help_url() )
);
}
@@ -349,8 +370,10 @@ class Jetpack_Protect_Blocked_Login_Page {
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width">
<?php
- if ( function_exists( 'wp_no_robots' ) ) {
- wp_no_robots();
+ if ( get_option( 'blog_public' ) ) {
+ echo "<meta name='robots' content='noindex,follow' />\n";
+ } else {
+ echo "<meta name='robots' content='noindex,nofollow' />\n";
}
?>
<title><?php echo $title ?></title>
@@ -426,9 +449,9 @@ class Jetpack_Protect_Blocked_Login_Page {
a:focus {
color: #124964;
- -webkit-box-shadow: 0 0 0 1px #5b9dd9,
+ -webkit-box-shadow: 0 0 0 1px #4f94d4,
0 0 2px 1px rgba(30, 140, 190, .8);
- box-shadow: 0 0 0 1px #5b9dd9,
+ box-shadow: 0 0 0 1px #4f94d4,
0 0 2px 1px rgba(30, 140, 190, .8);
outline: none;
}
@@ -591,17 +614,35 @@ class Jetpack_Protect_Blocked_Login_Page {
} ?>
</div>
<div id="error-footer">
- <?php if ( $back_button && ! $recovery_form ) {
- if ( 'rtl' == $text_direction ) {
+ <?php
+ if ( $back_button && ! $recovery_form ) {
+ if ( 'rtl' === $text_direction ) {
$back_button_icon = '<svg class="gridicon gridicons-arrow-right" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"/></g></svg>';
} else {
$back_button_icon = '<svg class="gridicon gridicons-arrow-left" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></g></svg>';
}
- ?>
- <a href='javascript:history.back()'><?php printf( __( '%s Back' ), $back_button_icon ); ?></a>
- <?php } else {
+ ?>
+ <a href='javascript:history.back()'
+ <?php
+ printf(
+ /* translators: %s is HTML markup, for a back icon. */
+ __( '%s Back', 'jetpack' ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ $back_button_icon // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ );
+ ?>
+ </a>
+ <?php
+ } else {
$help_icon = '<svg class="gridicon gridicons-help" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 16h-2v-2h2v2zm0-4.14V15h-2v-2c0-.552.448-1 1-1 1.103 0 2-.897 2-2s-.897-2-2-2-2 .897-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.862-1.278 3.413-3 3.86z"/></g></svg>';?>
- <a href="<?php echo esc_url( self::HELP_URL ); ?>" rel="noopener noreferrer" target="_blank"><?php printf( __( '%s Get help unlocking your site' ), $help_icon );?></a>
+ <a href="<?php echo esc_url( self::get_help_url() ); ?>" rel="noopener noreferrer" target="_blank">
+ <?php
+ printf(
+ /* translators: %s is HTML markup, for a help icon. */
+ __( '%s Get help unlocking your site', 'jetpack' ), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ $help_icon // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ );
+ ?>
+ </a>
<?php } ?>
</div>
</body>
diff --git a/plugins/jetpack/modules/protect/math-fallback.php b/plugins/jetpack/modules/protect/math-fallback.php
index bc29fa86..9ee0d77c 100644
--- a/plugins/jetpack/modules/protect/math-fallback.php
+++ b/plugins/jetpack/modules/protect/math-fallback.php
@@ -57,9 +57,15 @@ if ( ! class_exists( 'Jetpack_Protect_Math_Authenticate' ) ) {
Jetpack_Protect_Math_Authenticate::generate_math_page();
} elseif ( ! hash_equals( $salted_ans_1, $correct_ans ) && ! hash_equals( $salted_ans_2, $correct_ans ) ) {
wp_die(
- __( '<strong>You failed to correctly answer the math problem.</strong> This is used to combat spam when the Protect API is unavailable. Please use your browser\'s back button to return to the login form, press the "refresh" button to generate a new math problem, and try to log in again.', 'jetpack' ),
- '',
- array ( 'response' => 401 )
+ wp_kses(
+ __(
+ '<strong>You failed to correctly answer the math problem.</strong> This is used to combat spam when the Protect API is unavailable. Please use your browser’s back button to return to the login form, press the "refresh" button to generate a new math problem, and try to log in again.',
+ 'jetpack'
+ ),
+ array( 'strong' => array() )
+ ),
+ '',
+ array( 'response' => 401 )
);
} else {
return true;
@@ -74,7 +80,7 @@ if ( ! class_exists( 'Jetpack_Protect_Math_Authenticate' ) ) {
static function generate_math_page( $error = false ) {
ob_start();
?>
- <h2><?php esc_html_e( 'Please solve this math problem to prove that you are not a bot. Once you solve it, you will need to log in again.', 'jetpack' ); ?></h2>
+ <h2><?php esc_html_e( 'Please solve this math problem to prove that you are not a bot. Once you solve it, you will need to log in again.', 'jetpack' ); ?></h2>
<?php if ($error): ?>
<h3><?php esc_html_e( 'Your answer was incorrect, please try again.', 'jetpack' ); ?></h3>
<?php endif ?>
diff --git a/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.css b/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.css
index 20bc0893..b9131462 100644
--- a/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.css
+++ b/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.css
@@ -65,8 +65,8 @@
}
.blocked-attacks {
- background: #fafafa;
- border-bottom: 1px #eee solid;
+ background: #f6f7f7;
+ border-bottom: 1px #f0f0f1 solid;
padding-bottom: 35px;
}
diff --git a/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css b/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css
index 72993a8d..449b8b69 100644
--- a/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css
+++ b/plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css
@@ -1 +1 @@
-#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7bac48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:left;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7bac48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#fafafa;border-bottom:1px #eee solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;left:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7bac48;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px 10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px 12px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px} \ No newline at end of file
+#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7bac48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:left;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7bac48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#f6f7f7;border-bottom:1px #f0f0f1 solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;left:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7bac48;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px 10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px 12px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px} \ No newline at end of file
diff --git a/plugins/jetpack/modules/protect/protect-dashboard-widget.css b/plugins/jetpack/modules/protect/protect-dashboard-widget.css
index b4a6b08e..d40ab372 100644
--- a/plugins/jetpack/modules/protect/protect-dashboard-widget.css
+++ b/plugins/jetpack/modules/protect/protect-dashboard-widget.css
@@ -64,8 +64,8 @@
}
.blocked-attacks {
- background: #fafafa;
- border-bottom: 1px #eee solid;
+ background: #f6f7f7;
+ border-bottom: 1px #f0f0f1 solid;
padding-bottom: 35px;
}
diff --git a/plugins/jetpack/modules/protect/protect-dashboard-widget.min.css b/plugins/jetpack/modules/protect/protect-dashboard-widget.min.css
index d3b0b996..cc161dc0 100644
--- a/plugins/jetpack/modules/protect/protect-dashboard-widget.min.css
+++ b/plugins/jetpack/modules/protect/protect-dashboard-widget.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7bac48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:right;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7bac48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#fafafa;border-bottom:1px #eee solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;right:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7bac48;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px 10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px 12px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px} \ No newline at end of file
+#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7bac48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:right;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7bac48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#f6f7f7;border-bottom:1px #f0f0f1 solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;right:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7bac48;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px 10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px 12px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px} \ No newline at end of file
diff --git a/plugins/jetpack/modules/protect/shared-functions.php b/plugins/jetpack/modules/protect/shared-functions.php
index 9091c0be..1091260f 100644
--- a/plugins/jetpack/modules/protect/shared-functions.php
+++ b/plugins/jetpack/modules/protect/shared-functions.php
@@ -156,7 +156,7 @@ function jetpack_protect_save_whitelist( $whitelist, $global = false ) {
* Jetpack Protect Get IP.
*
* @access public
- * @return IP.
+ * @return string|false IP.
*/
function jetpack_protect_get_ip() {
$trusted_header_data = get_site_option( 'trusted_ip_header' );
@@ -172,8 +172,6 @@ function jetpack_protect_get_ip() {
return false;
}
-
-
$ips = explode( ',', $ip );
if ( ! isset( $segments ) || ! $segments ) {
$segments = 1;
@@ -196,8 +194,8 @@ function jetpack_protect_get_ip() {
* Jetpack Clean IP.
*
* @access public
- * @param mixed $ip IP.
- * @return $ip IP.
+ * @param string $ip IP.
+ * @return string|false IP.
*/
function jetpack_clean_ip( $ip ) {
@@ -205,29 +203,25 @@ function jetpack_clean_ip( $ip ) {
$ips = explode( ' unless ', $ip );
$ip = $ips[0];
- $ip = trim( $ip );
- // Check for IPv4 IP cast as IPv6.
- if ( preg_match( '/^::ffff:(\d+\.\d+\.\d+\.\d+)$/', $ip, $matches ) ) {
+ $ip = strtolower( trim( $ip ) );
+
+ // Check for IPv4 with port.
+ if ( preg_match( '/^(\d+\.\d+\.\d+\.\d+):\d+$/', $ip, $matches ) ) {
$ip = $matches[1];
}
- if ( function_exists( 'wp_parse_url' ) ) {
- $parsed_url = wp_parse_url( $ip );
+ // Check for IPv6 (or IPvFuture) with brackets and optional port.
+ if ( preg_match( '/^\[([a-z0-9\-._~!$&\'()*+,;=:]+)\](?::\d+)?$/', $ip, $matches ) ) {
+ $ip = $matches[1];
+ }
- if ( isset( $parsed_url['host'] ) ) {
- $ip = $parsed_url['host'];
- } elseif ( isset( $parsed_url['path'] ) ) {
- $ip = $parsed_url['path'];
- }
- } else {
- $colon_count = substr_count( $ip, ':' );
- if ( 1 == $colon_count ) {
- $ips = explode( ':', $ip );
- $ip = $ips[0];
- }
+ // Check for IPv4 IP cast as IPv6.
+ if ( preg_match( '/^::ffff:(\d+\.\d+\.\d+\.\d+)$/', $ip, $matches ) ) {
+ $ip = $matches[1];
}
- return $ip;
+ // Validate and return.
+ return filter_var( $ip, FILTER_VALIDATE_IP ) ? $ip : false;
}
/**
diff --git a/plugins/jetpack/modules/publicize.php b/plugins/jetpack/modules/publicize.php
index f5738da3..dccc617b 100644
--- a/plugins/jetpack/modules/publicize.php
+++ b/plugins/jetpack/modules/publicize.php
@@ -1,4 +1,4 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Module Name: Publicize
* Module Description: Publicize makes it easy to share your site’s posts on several social media networks automatically when you publish a new post.
@@ -6,17 +6,31 @@
* Recommendation Order: 7
* First Introduced: 2.0
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: Social, Recommended
* Feature: Engagement
* Additional Search Queries: facebook, jetpack publicize, twitter, tumblr, linkedin, social, tweet, connections, sharing, social media, automated, automated sharing, auto publish, auto tweet and like, auto tweet, facebook auto post, facebook posting
+ *
+ * @package automattic/jetpack
*/
+/**
+ * Class Jetpack_Publicize
+ */
class Jetpack_Publicize {
+ /**
+ * If Publicize is executing within Jetpack.
+ *
+ * @var bool
+ */
public $in_jetpack = true;
- function __construct() {
+ /**
+ * Jetpack_Publicize constructor.
+ */
+ public function __construct() {
global $publicize_ui;
$this->in_jetpack = ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'enable_module_configurable' ) ) ? true : false;
@@ -25,50 +39,82 @@ class Jetpack_Publicize {
Jetpack::enable_module_configurable( __FILE__ );
}
- require_once dirname( __FILE__ ) . '/publicize/publicize.php';
+ require_once __DIR__ . '/publicize/publicize.php';
- if ( $this->in_jetpack )
- require_once dirname( __FILE__ ) . '/publicize/publicize-jetpack.php';
- else {
- require_once dirname( dirname( __FILE__ ) ) . '/mu-plugins/keyring/keyring.php';
- require_once dirname( __FILE__ ) . '/publicize/publicize-wpcom.php';
+ if ( $this->in_jetpack ) {
+ require_once __DIR__ . '/publicize/publicize-jetpack.php';
+ } else {
+ require_once dirname( __DIR__ ) . '/mu-plugins/keyring/keyring.php';
+ require_once __DIR__ . '/publicize/publicize-wpcom.php';
}
- require_once dirname( __FILE__ ) . '/publicize/ui.php';
- $publicize_ui = new Publicize_UI();
+ require_once __DIR__ . '/publicize/ui.php';
+ $publicize_ui = new Publicize_UI();
$publicize_ui->in_jetpack = $this->in_jetpack;
- // Jetpack specific checks / hooks
+ // Jetpack specific checks / hooks.
if ( $this->in_jetpack ) {
- // if sharedaddy isn't active, the sharing menu hasn't been added yet
+ // if sharedaddy isn't active, the sharing menu hasn't been added yet.
$active = Jetpack::get_active_modules();
- if ( in_array( 'publicize', $active ) && ! in_array( 'sharedaddy', $active ) ) {
+ if ( in_array( 'publicize', $active, true ) && ! in_array( 'sharedaddy', $active, true ) ) {
add_action( 'admin_menu', array( &$publicize_ui, 'sharing_menu' ) );
}
+
+ /*
+ * The Publicize Options array does not currently have UI since it is being added
+ * for a specific purpose and not part of a broader Publicize sprint.
+ *
+ * In order to pass the settings up to WordPress.com, we are updating an option to Sync will pass it up.
+ * To make it relatively easy for use, we are creating a filter that checks if the option and filter match.
+ *
+ * This only runs when a post is saved to avoid it running too much.
+ */
+ add_action(
+ 'save_post',
+ function () {
+ $publicize_options = get_option( 'jetpack_publicize_options', array() );
+
+ /**
+ * Filters the options for Publicize.
+ *
+ * As of Jetpack 8.5, the array keys could be:
+ * attach_media bool If Publicize should send the image to the social media platform. Default false.
+ *
+ * @module publicize
+ *
+ * @since 8.5.0
+ *
+ * @param array $options Array of Publicize options.
+ */
+ $filtered = (array) apply_filters( 'jetpack_publicize_options', $publicize_options );
+
+ if ( $publicize_options !== $filtered ) {
+ update_option( 'jetpack_publicize_options', $filtered, false );
+ }
+ }
+ );
}
}
}
-global $publicize_ui;
-new Jetpack_Publicize;
+new Jetpack_Publicize();
-if( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) && ! function_exists( 'publicize_init' ) ) {
-/**
- * Helper for grabbing a Publicize object from the "front-end" (non-admin) of
- * a site. Normally Publicize is only loaded in wp-admin, so there's a little
- * set up that you might need to do if you want to use it on the front end.
- * Just call this function and it returns a Publicize object.
- *
- * @return Publicize Object
- */
-function publicize_init() {
- global $publicize;
-
- if ( ! class_exists( 'Publicize' ) ) {
- require_once dirname( __FILE__ ) . '/publicize/publicize.php';
- }
+if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) && ! function_exists( 'publicize_init' ) ) {
+ /**
+ * Helper for grabbing a Publicize object from the "front-end" (non-admin) of
+ * a site. Normally Publicize is only loaded in wp-admin, so there's a little
+ * set up that you might need to do if you want to use it on the front end.
+ * Just call this function and it returns a Publicize object.
+ *
+ * @return Publicize Object
+ */
+ function publicize_init() {
+ global $publicize;
- return $publicize;
-}
+ if ( ! class_exists( 'Publicize' ) ) {
+ require_once __DIR__ . '/publicize/publicize.php';
+ }
+ return $publicize;
+ }
}
diff --git a/plugins/jetpack/modules/publicize/enhanced-open-graph.php b/plugins/jetpack/modules/publicize/enhanced-open-graph.php
index ba60b821..e50082ff 100644
--- a/plugins/jetpack/modules/publicize/enhanced-open-graph.php
+++ b/plugins/jetpack/modules/publicize/enhanced-open-graph.php
@@ -16,6 +16,11 @@ function enhanced_og_image( $tags ) {
global $post;
+ // Bail if we do not have info about the post.
+ if ( ! $post instanceof WP_Post ) {
+ return $tags;
+ }
+
// Always favor featured images.
if ( enhanced_og_has_featured_image( $post->ID ) )
return $tags;
@@ -41,6 +46,11 @@ function enhanced_og_gallery( $tags ) {
global $post;
+ // Bail if we do not have info about the post.
+ if ( ! $post instanceof WP_Post ) {
+ return $tags;
+ }
+
// Always favor featured images.
if ( enhanced_og_has_featured_image( $post->ID ) )
return $tags;
@@ -75,6 +85,11 @@ function enhanced_og_video( $tags ) {
global $post;
+ // Bail if we do not have info about the post.
+ if ( ! $post instanceof WP_Post ) {
+ return $tags;
+ }
+
// Always favor featured images.
if ( enhanced_og_has_featured_image( $post->ID ) )
return $tags;
diff --git a/plugins/jetpack/modules/publicize/publicize-jetpack.php b/plugins/jetpack/modules/publicize/publicize-jetpack.php
index 30403a38..6f618c62 100644
--- a/plugins/jetpack/modules/publicize/publicize-jetpack.php
+++ b/plugins/jetpack/modules/publicize/publicize-jetpack.php
@@ -1,11 +1,16 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Redirect;
class Publicize extends Publicize_Base {
+ const CONNECTION_REFRESH_WAIT_TRANSIENT = 'jetpack_publicize_connection_refresh_wait';
+
function __construct() {
parent::__construct();
- add_filter( 'jetpack_xmlrpc_methods', array( $this, 'register_update_publicize_connections_xmlrpc_method' ) );
+ add_filter( 'jetpack_xmlrpc_unauthenticated_methods', array( $this, 'register_update_publicize_connections_xmlrpc_method' ) );
add_action( 'load-settings_page_sharing', array( $this, 'admin_page_load' ), 9 );
@@ -34,6 +39,8 @@ class Publicize extends Publicize_Base {
add_filter( 'jetpack_sharing_twitter_via', array( $this, 'get_publicized_twitter_account' ), 10, 2 );
+ add_action( 'updating_jetpack_version', array( $this, 'init_refresh_transient' ) );
+
include_once( JETPACK__PLUGIN_DIR . 'modules/publicize/enhanced-open-graph.php' );
jetpack_require_lib( 'class.jetpack-keyring-service-helper' );
@@ -45,7 +52,7 @@ class Publicize extends Publicize_Base {
function force_user_connection() {
global $current_user;
- $user_token = Jetpack_Data::get_access_token( $current_user->ID );
+ $user_token = ( new Tokens() )->get_access_token( $current_user->ID );
$is_user_connected = $user_token && ! is_wp_error( $user_token );
// If the user is already connected via Jetpack, then we're good
@@ -115,6 +122,7 @@ class Publicize extends Publicize_Base {
}
function get_all_connections() {
+ $this->refresh_connections();
$connections = Jetpack_Options::get_option( 'publicize_connections' );
if ( isset( $connections['google_plus'] ) ) {
unset( $connections['google_plus'] );
@@ -152,7 +160,7 @@ class Publicize extends Publicize_Base {
if ( ! empty( $connections ) ) {
foreach ( (array) $connections as $service_name => $connections_for_service ) {
foreach ( $connections_for_service as $id => $connection ) {
- $user_id = intval( $connection['connection_data']['user_id'] );
+ $user_id = (int) $connection['connection_data']['user_id'];
// phpcs:ignore WordPress.PHP.YodaConditions.NotYoda
if ( $user_id === 0 || $this->user_id() === $user_id ) {
$connections_to_return[ $service_name ][ $id ] = $connection;
@@ -269,6 +277,51 @@ class Publicize extends Publicize_Base {
}
}
+ /**
+ * As Jetpack updates set the refresh transient to a random amount
+ * in order to spread out updates to the connection data.
+ *
+ * @param string $version The Jetpack version being updated to.
+ */
+ public function init_refresh_transient( $version ) {
+ if ( version_compare( $version, '10.2.1', '>=' ) && ! get_transient( self::CONNECTION_REFRESH_WAIT_TRANSIENT ) ) {
+ $this->set_refresh_wait_transient( wp_rand( 10, HOUR_IN_SECONDS * 24 ) );
+ }
+ }
+
+ /**
+ * Grabs a fresh copy of the publicize connections data.
+ * Only refreshes once every 12 hours or retries after an hour with an error.
+ */
+ public function refresh_connections() {
+ if ( get_transient( self::CONNECTION_REFRESH_WAIT_TRANSIENT ) ) {
+ return;
+ }
+ $xml = new Jetpack_IXR_Client();
+ $xml->query( 'jetpack.fetchPublicizeConnections' );
+ $wait_time = HOUR_IN_SECONDS * 24;
+
+ if ( ! $xml->isError() ) {
+ $response = $xml->getResponse();
+ $this->receive_updated_publicize_connections( $response );
+ } else {
+ // Retry a bit quicker, but still wait.
+ $wait_time = HOUR_IN_SECONDS;
+ }
+
+ $this->set_refresh_wait_transient( $wait_time );
+ }
+
+ /**
+ * Sets the transient to expire at the specified time in seconds.
+ * This prevents us from attempting to refresh the data too often.
+ *
+ * @param int $wait_time The number of seconds before the transient should expire.
+ */
+ public function set_refresh_wait_transient( $wait_time ) {
+ set_transient( self::CONNECTION_REFRESH_WAIT_TRANSIENT, microtime( true ), $wait_time );
+ }
+
function connect_url( $service_name, $for = 'publicize' ) {
return Jetpack_Keyring_Service_Helper::connect_url( $service_name, $for );
}
@@ -408,17 +461,6 @@ class Publicize extends Publicize_Base {
}
// Only do this when a post transitions to being published
if ( get_post_meta( $post->ID, $this->PENDING ) && $this->post_type_is_publicizeable( $post->post_type ) ) {
- $connected_services = $this->get_all_connections();
- if ( ! empty( $connected_services ) ) {
- /**
- * Fires when a post is saved that has is marked as pending publicizing
- *
- * @since 4.1.0
- *
- * @param int The post ID
- */
- do_action_deprecated( 'jetpack_publicize_post', $post->ID, '4.8.0', 'jetpack_published_post_flags' );
- }
delete_post_meta( $post->ID, $this->PENDING );
update_post_meta( $post->ID, $this->POST_DONE . 'all', true );
}
@@ -490,7 +532,7 @@ class Publicize extends Publicize_Base {
}
$page_info_message = sprintf(
__( 'Facebook supports Publicize connections to Facebook Pages, but not to Facebook Profiles. <a href="%s">Learn More about Publicize for Facebook</a>', 'jetpack' ),
- 'https://jetpack.com/support/publicize/facebook'
+ esc_url( Redirect::get_url( 'jetpack-support-publicize-facebook' ) )
);
if ( $pages ) : ?>
diff --git a/plugins/jetpack/modules/publicize/publicize.php b/plugins/jetpack/modules/publicize/publicize.php
index 1926fd4f..32d43d09 100644
--- a/plugins/jetpack/modules/publicize/publicize.php
+++ b/plugins/jetpack/modules/publicize/publicize.php
@@ -1,4 +1,8 @@
<?php
+// phpcs:disable WordPress.NamingConventions.ValidVariableName
+
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status;
abstract class Publicize_Base {
@@ -19,6 +23,21 @@ abstract class Publicize_Base {
*/
public $ADMIN_PAGE = 'wpas';
public $POST_MESS = '_wpas_mess';
+
+ /**
+ * Post meta key for flagging when the post is a tweetstorm.
+ *
+ * @var string
+ */
+ public $POST_TWEETSTORM = '_wpas_is_tweetstorm';
+
+ /**
+ * Post meta key for the flagging when the post share feature is disabled.
+ *
+ * @var string
+ */
+ const POST_PUBLICIZE_FEATURE_ENABLED = '_wpas_feature_enabled';
+
public $POST_SKIP = '_wpas_skip_'; // connection id appended to indicate that a connection should NOT be publicized to
public $POST_DONE = '_wpas_done_'; // connection id appended to indicate a connection has already been publicized to
public $USER_AUTH = 'wpas_authorize';
@@ -208,6 +227,10 @@ abstract class Publicize_Base {
case 'linkedin':
return 'LinkedIn';
break;
+ case 'google_drive': // google-drive used to be called google_drive.
+ case 'google-drive':
+ return 'Google Drive';
+ break;
case 'twitter':
case 'facebook':
case 'tumblr':
@@ -378,6 +401,22 @@ abstract class Publicize_Base {
}
/**
+ * Returns a profile picture for the Connection
+ *
+ * @param object|array $connection The Connection object (WordPress.com) or array (Jetpack).
+ * @return string
+ */
+ private function get_profile_picture( $connection ) {
+ $cmeta = $this->get_connection_meta( $connection );
+
+ if ( isset( $cmeta['profile_picture'] ) ) {
+ return $cmeta['profile_picture'];
+ }
+
+ return '';
+ }
+
+ /**
* Whether the user needs to select additional options after connecting
*
* @param string $service_name 'facebook', 'twitter', etc.
@@ -567,14 +606,15 @@ abstract class Publicize_Base {
* @return array {
* Array of UI setup data for connection list form.
*
- * @type string 'unique_id' ID string representing connection
- * @type string 'service_name' Slug of the connection's service (facebook, twitter, ...)
- * @type string 'service_label' Service Label (Facebook, Twitter, ...)
- * @type string 'display_name' Connection's human-readable Username: "@jetpack"
- * @type bool 'enabled' Default value for the connection (e.g., for a checkbox).
- * @type bool 'done' Has this connection already been publicized to?
- * @type bool 'toggleable' Is the user allowed to change the value for the connection?
- * @type bool 'global' Is this connection a global one?
+ * @type string 'unique_id' ID string representing connection
+ * @type string 'service_name' Slug of the connection's service (facebook, twitter, ...)
+ * @type string 'service_label' Service Label (Facebook, Twitter, ...)
+ * @type string 'display_name' Connection's human-readable Username: "@jetpack"
+ * @type string 'profile_picture' Connection profile picture.
+ * @type bool 'enabled' Default value for the connection (e.g., for a checkbox).
+ * @type bool 'done' Has this connection already been publicized to?
+ * @type bool 'toggleable' Is the user allowed to change the value for the connection?
+ * @type bool 'global' Is this connection a global one?
* }
*/
public function get_filtered_connection_data( $selected_post_id = null ) {
@@ -697,15 +737,16 @@ abstract class Publicize_Base {
}
$connection_list[] = array(
- 'unique_id' => $unique_id,
- 'service_name' => $service_name,
- 'service_label' => $this->get_service_label( $service_name ),
- 'display_name' => $this->get_display_name( $service_name, $connection ),
-
- 'enabled' => $enabled,
- 'done' => $done,
- 'toggleable' => $toggleable,
- 'global' => 0 == $connection_data['user_id'],
+ 'unique_id' => $unique_id,
+ 'service_name' => $service_name,
+ 'service_label' => $this->get_service_label( $service_name ),
+ 'display_name' => $this->get_display_name( $service_name, $connection ),
+ 'profile_picture' => $this->get_profile_picture( $connection ),
+
+ 'enabled' => $enabled,
+ 'done' => $done,
+ 'toggleable' => $toggleable,
+ 'global' => 0 == $connection_data['user_id'], // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- Other types can be used at times.
);
}
}
@@ -846,18 +887,40 @@ abstract class Publicize_Base {
}
/**
- * Registers the ->POST_MESS post_meta for use in the REST API.
+ * Registers the post_meta for use in the REST API.
*
* Registers for each post type that with `publicize` feature support.
*/
function register_post_meta() {
- $args = array(
- 'type' => 'string',
- 'description' => __( 'The message to use instead of the title when sharing to Publicize Services', 'jetpack' ),
- 'single' => true,
- 'default' => '',
- 'show_in_rest' => array(
- 'name' => 'jetpack_publicize_message'
+ $message_args = array(
+ 'type' => 'string',
+ 'description' => __( 'The message to use instead of the title when sharing to Publicize Services', 'jetpack' ),
+ 'single' => true,
+ 'default' => '',
+ 'show_in_rest' => array(
+ 'name' => 'jetpack_publicize_message',
+ ),
+ 'auth_callback' => array( $this, 'message_meta_auth_callback' ),
+ );
+
+ $tweetstorm_args = array(
+ 'type' => 'boolean',
+ 'description' => __( 'Whether or not the post should be treated as a Twitter thread.', 'jetpack' ),
+ 'single' => true,
+ 'default' => false,
+ 'show_in_rest' => array(
+ 'name' => 'jetpack_is_tweetstorm',
+ ),
+ 'auth_callback' => array( $this, 'message_meta_auth_callback' ),
+ );
+
+ $publicize_feature_enable_args = array(
+ 'type' => 'boolean',
+ 'description' => __( 'Whether or not the Share Post feature is enabled.', 'jetpack' ),
+ 'single' => true,
+ 'default' => true,
+ 'show_in_rest' => array(
+ 'name' => 'jetpack_publicize_feature_enabled',
),
'auth_callback' => array( $this, 'message_meta_auth_callback' ),
);
@@ -867,9 +930,13 @@ abstract class Publicize_Base {
continue;
}
- $args['object_subtype'] = $post_type;
+ $message_args['object_subtype'] = $post_type;
+ $tweetstorm_args['object_subtype'] = $post_type;
+ $publicize_feature_enable_args['object_subtype'] = $post_type;
- register_meta( 'post', $this->POST_MESS, $args );
+ register_meta( 'post', $this->POST_MESS, $message_args );
+ register_meta( 'post', $this->POST_TWEETSTORM, $tweetstorm_args );
+ register_meta( 'post', self::POST_PUBLICIZE_FEATURE_ENABLED, $publicize_feature_enable_args );
}
}
@@ -976,10 +1043,11 @@ abstract class Publicize_Base {
foreach ( (array) $this->get_services( 'connected' ) as $service_name => $connections ) {
foreach ( $connections as $connection ) {
$connection_data = '';
- if ( method_exists( $connection, 'get_meta' ) )
+ if ( is_object( $connection ) && method_exists( $connection, 'get_meta' ) ) {
$connection_data = $connection->get_meta( 'connection_data' );
- elseif ( ! empty( $connection['connection_data'] ) )
+ } elseif ( ! empty( $connection['connection_data'] ) ) {
$connection_data = $connection['connection_data'];
+ }
/** This action is documented in modules/publicize/ui.php */
if ( false == apply_filters( 'wpas_submit_post?', $submit_post, $post_id, $service_name, $connection_data ) ) {
@@ -1234,16 +1302,5 @@ abstract class Publicize_Base {
}
function publicize_calypso_url() {
- $calypso_sharing_url = 'https://wordpress.com/marketing/connections/';
- if ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'build_raw_urls' ) ) {
- $site_suffix = Jetpack::build_raw_urls( home_url() );
- } elseif ( class_exists( 'WPCOM_Masterbar' ) && method_exists( 'WPCOM_Masterbar', 'get_calypso_site_slug' ) ) {
- $site_suffix = WPCOM_Masterbar::get_calypso_site_slug( get_current_blog_id() );
- }
-
- if ( $site_suffix ) {
- return $calypso_sharing_url . $site_suffix;
- } else {
- return $calypso_sharing_url;
- }
+ return Redirect::get_url( 'calypso-marketing-connections', array( 'site' => ( new Status() )->get_site_suffix() ) );
}
diff --git a/plugins/jetpack/modules/publicize/ui.php b/plugins/jetpack/modules/publicize/ui.php
index 43a6c05f..156b25ef 100644
--- a/plugins/jetpack/modules/publicize/ui.php
+++ b/plugins/jetpack/modules/publicize/ui.php
@@ -390,7 +390,7 @@ jQuery( function($) {
padding-right: 3px;
vertical-align: top;
-webkit-font-smoothing: antialiased;
- color: #82878c;
+ color: #8c8f94;
}
.post-new-php .authorize-link, .post-php .authorize-link {
line-height: 1.5em;
diff --git a/plugins/jetpack/modules/related-posts.php b/plugins/jetpack/modules/related-posts.php
index a5387e38..24591fe9 100644
--- a/plugins/jetpack/modules/related-posts.php
+++ b/plugins/jetpack/modules/related-posts.php
@@ -53,7 +53,7 @@ class Jetpack_RelatedPosts_Module {
}
// Load Customizer controls.
- if ( class_exists( 'WP_Customize_Manager' ) ) {
+ if ( class_exists( WP_Customize_Manager::class ) && class_exists( WP_Customize_Control::class ) ) {
require_once 'related-posts/class.related-posts-customize.php';
}
}
diff --git a/plugins/jetpack/modules/related-posts/jetpack-related-posts.php b/plugins/jetpack/modules/related-posts/jetpack-related-posts.php
index 125e2889..1927e21c 100644
--- a/plugins/jetpack/modules/related-posts/jetpack-related-posts.php
+++ b/plugins/jetpack/modules/related-posts/jetpack-related-posts.php
@@ -1,10 +1,11 @@
<?php
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Blocks;
use Automattic\Jetpack\Sync\Settings;
class Jetpack_RelatedPosts {
- const VERSION = '20191011';
+ const VERSION = '20211209';
const SHORTCODE = 'jetpack-related-posts';
private static $instance = null;
@@ -72,7 +73,7 @@ class Jetpack_RelatedPosts {
// Add Related Posts to the REST API Post response.
add_action( 'rest_api_init', array( $this, 'rest_register_related_posts' ) );
- jetpack_register_block(
+ Blocks::jetpack_register_block(
'jetpack/related-posts',
array(
'render_callback' => array( $this, 'render_block' ),
@@ -111,7 +112,7 @@ class Jetpack_RelatedPosts {
}
/**
- * Load related posts assets if it's a elegiable front end page or execute search and return JSON if it's an endpoint request.
+ * Load related posts assets if it's an eligible front end page or execute search and return JSON if it's an endpoint request.
*
* @global $_GET
* @action wp
@@ -163,8 +164,8 @@ class Jetpack_RelatedPosts {
/**
* Adds a target to the post content to load related posts into if a shortcode for it did not already exist.
- * Will skip adding the target if the post content contains a Related Posts block or if the 'get_the_excerpt'
- * hook is in the current filter list.
+ * Will skip adding the target if the post content contains a Related Posts block, if the 'get_the_excerpt'
+ * hook is in the current filter list, or if the site is running an FSE/Site Editor theme.
*
* @filter the_content
*
@@ -173,7 +174,7 @@ class Jetpack_RelatedPosts {
* @returns string
*/
public function filter_add_target_to_dom( $content ) {
- if ( has_block( 'jetpack/related-posts' ) ) {
+ if ( has_block( 'jetpack/related-posts' ) || Blocks::is_fse_theme() ) {
return $content;
}
@@ -302,11 +303,12 @@ EOT;
if ( ! empty( $block_attributes['show_thumbnails'] ) && ! empty( $related_post['img']['src'] ) ) {
$img_link = sprintf(
- '<li class="jp-related-posts-i2__post-img-link"><a href="%1$s" %2$s><img src="%3$s" width="%4$s" alt="%5$s" /></a></li>',
+ '<li class="jp-related-posts-i2__post-img-link"><a href="%1$s" %2$s><img src="%3$s" width="%4$s" height="%5$s" alt="%6$s" loading="lazy" /></a></li>',
esc_url( $related_post['url'] ),
( ! empty( $related_post['rel'] ) ? 'rel="' . esc_attr( $related_post['rel'] ) . '"' : '' ),
esc_url( $related_post['img']['src'] ),
esc_attr( $related_post['img']['width'] ),
+ esc_attr( $related_post['img']['height'] ),
esc_attr( $related_post['img']['alt_text'] )
);
@@ -406,22 +408,6 @@ EOT;
$rows_markup .= $this->render_block_row( $lower_row_posts, $block_attributes );
}
- /*
- * Below is a hack to get the block content to render correctly.
- *
- * This functionality should be covered in /inc/blocks.php but due to an error,
- * this has not been fixed as of this writing.
- *
- * Alda has submitted a patch to Core in order to have this issue fixed at
- * https://core.trac.wordpress.org/ticket/45495 and
- * made it into WordPress 5.2.
- *
- * @todo update when WP 5.2 is the minimum support version.
- */
- $priority = has_filter( 'the_content', 'wpautop' );
- remove_filter( 'the_content', 'wpautop', $priority );
- add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 );
-
return sprintf(
'<nav class="jp-relatedposts-i2" data-layout="%1$s">%2$s%3$s</nav>',
esc_attr( $block_attributes['layout'] ),
@@ -1154,7 +1140,7 @@ EOT;
foreach ( array_merge( $with_post_thumbnails, $no_post_thumbnails ) as $index => $real_post ) {
$related_posts[ $index ]['id'] = $real_post->ID;
$related_posts[ $index ]['url'] = esc_url( get_permalink( $real_post ) );
- $related_posts[ $index ]['title'] = $this->_to_utf8( $this->_get_title( $real_post->post_title, $real_post->post_content ) );
+ $related_posts[ $index ]['title'] = $this->_to_utf8( $this->get_title( $real_post->post_title, $real_post->post_content, $real_post->ID ) );
$related_posts[ $index ]['date'] = get_the_date( '', $real_post );
$related_posts[ $index ]['excerpt'] = html_entity_decode( $this->_to_utf8( $this->_get_excerpt( $real_post->post_excerpt, $real_post->post_content ) ), ENT_QUOTES, 'UTF-8' );
$related_posts[ $index ]['img'] = $this->_generate_related_post_image_params( $real_post->ID );
@@ -1200,13 +1186,16 @@ EOT;
$post = get_post( $post_id );
return array(
- 'id' => $post->ID,
- 'url' => get_permalink( $post->ID ),
- 'url_meta' => array( 'origin' => $origin, 'position' => $position ),
- 'title' => $this->_to_utf8( $this->_get_title( $post->post_title, $post->post_content ) ),
- 'date' => get_the_date( '', $post->ID ),
- 'format' => get_post_format( $post->ID ),
- 'excerpt' => html_entity_decode( $this->_to_utf8( $this->_get_excerpt( $post->post_excerpt, $post->post_content ) ), ENT_QUOTES, 'UTF-8' ),
+ 'id' => $post->ID,
+ 'url' => get_permalink( $post->ID ),
+ 'url_meta' => array(
+ 'origin' => $origin,
+ 'position' => $position,
+ ),
+ 'title' => $this->_to_utf8( $this->get_title( $post->post_title, $post->post_content, $post->ID ) ),
+ 'date' => get_the_date( '', $post->ID ),
+ 'format' => get_post_format( $post->ID ),
+ 'excerpt' => html_entity_decode( $this->_to_utf8( $this->_get_excerpt( $post->post_excerpt, $post->post_content ) ), ENT_QUOTES, 'UTF-8' ),
/**
* Filters the rel attribute for the Related Posts' links.
*
@@ -1256,14 +1245,20 @@ EOT;
/**
* Returns either the title or a small excerpt to use as title for post.
*
- * @param string $post_title
- * @param string $post_content
- * @uses strip_shortcodes, wp_trim_words, __
+ * @uses strip_shortcodes, wp_trim_words, __, apply_filters
+ *
+ * @param string $post_title Post title.
+ * @param string $post_content Post content.
+ * @param int $post_id Post ID.
+ *
* @return string
*/
- protected function _get_title( $post_title, $post_content ) {
+ protected function get_title( $post_title, $post_content, $post_id ) {
if ( ! empty( $post_title ) ) {
- return wp_strip_all_tags( $post_title );
+ return wp_strip_all_tags(
+ /** This filter is documented in core/src/wp-includes/post-template.php */
+ apply_filters( 'the_title', $post_title, $post_id )
+ );
}
$post_title = wp_trim_words( wp_strip_all_tags( strip_shortcodes( $post_content ) ), 5, '…' );
@@ -1633,6 +1628,7 @@ EOT;
$enabled = is_single()
&& ! is_attachment()
&& ! is_admin()
+ && ! is_embed()
&& ( ! $this->_allow_feature_toggle() || $this->get_option( 'enabled' ) );
/**
@@ -1648,29 +1644,41 @@ EOT;
}
/**
- * Adds filters and enqueues assets.
+ * Adds filters.
*
* @uses self::_enqueue_assets, self::_setup_shortcode, add_filter
* @return null
*/
protected function _action_frontend_init_page() {
-
- $enqueue_script = ! ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() );
- $this->_enqueue_assets( $enqueue_script, true );
+ $this->_enqueue_assets( true, true );
$this->_setup_shortcode();
add_filter( 'the_content', array( $this, 'filter_add_target_to_dom' ), 40 );
}
/**
+ * Determines if the scripts need be enqueued.
+ *
+ * @return bool
+ */
+ protected function requires_scripts() {
+ return (
+ ! ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) &&
+ ! has_block( 'jetpack/related-posts' ) &&
+ ! Blocks::is_fse_theme()
+ );
+ }
+
+ /**
* Enqueues assets needed to do async loading of related posts.
*
* @uses wp_enqueue_script, wp_enqueue_style, plugins_url
* @return null
*/
protected function _enqueue_assets( $script, $style ) {
- $dependencies = is_customize_preview() ? array( 'customize-base' ) : array( 'jquery' );
- if ( $script ) {
+ $dependencies = is_customize_preview() ? array( 'customize-base' ) : array();
+ // Do not enqueue scripts unless they are required.
+ if ( $script && $this->requires_scripts() ) {
wp_enqueue_script(
'jetpack_related-posts',
Assets::get_file_url_for_environment(
diff --git a/plugins/jetpack/modules/related-posts/related-posts-customizer.js b/plugins/jetpack/modules/related-posts/related-posts-customizer.js
index b2d36e41..1af71439 100644
--- a/plugins/jetpack/modules/related-posts/related-posts-customizer.js
+++ b/plugins/jetpack/modules/related-posts/related-posts-customizer.js
@@ -1,18 +1,18 @@
/**
* Adds functionality for Related Posts controls in Customizer.
*/
-( function( api ) {
+( function ( api ) {
'use strict';
- api( 'jetpack_relatedposts[show_headline]', function( showHeadlineSetting ) {
- var setupHeadlineControl = function( headlineControl ) {
+ api( 'jetpack_relatedposts[show_headline]', function ( showHeadlineSetting ) {
+ var setupHeadlineControl = function ( headlineControl ) {
var setActiveState, isDisplayed;
- isDisplayed = function() {
+ isDisplayed = function () {
return showHeadlineSetting.findControls()[ 0 ].active.get() && showHeadlineSetting.get();
};
- setActiveState = function() {
+ setActiveState = function () {
headlineControl.active.set( isDisplayed() );
};
diff --git a/plugins/jetpack/modules/related-posts/related-posts-rtl.css b/plugins/jetpack/modules/related-posts/related-posts-rtl.css
index 69ce02fb..fa6c0309 100644
--- a/plugins/jetpack/modules/related-posts/related-posts-rtl.css
+++ b/plugins/jetpack/modules/related-posts/related-posts-rtl.css
@@ -1 +1 @@
-.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-right:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:right;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:right;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;right:0;left:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:right;overflow:hidden;max-width:33%;margin-left:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-left:0}} \ No newline at end of file
+.jp-related-posts-i2__row{display:flex;margin-top:1.5rem}.jp-related-posts-i2__row:first-child{margin-top:0}.jp-related-posts-i2__post{flex-grow:1;flex-basis:0;margin:0 10px;display:flex;flex-direction:column;padding-right:0}.jp-related-posts-i2__row[data-post-count="3"] .jp-related-posts-i2__post{max-width:calc(33% - 20px)}.jp-related-posts-i2__row[data-post-count="1"] .jp-related-posts-i2__post,.jp-related-posts-i2__row[data-post-count="2"] .jp-related-posts-i2__post{max-width:calc(50% - 20px)}.jp-related-posts-i2__post-context,.jp-related-posts-i2__post-date,.jp-related-posts-i2__post-heading,.jp-related-posts-i2__post-img-link{flex-direction:row;display:block}.jp-related-posts-i2__post-heading{margin:.5rem 0;font-size:1rem;line-height:1.2em}.jp-related-posts-i2__post-link{display:block;width:100%;line-height:1.2em}.jp-related-posts-i2__post-img-link{order:-1}.jp-related-posts-i2__post-img-link img{width:100%}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__row{margin-top:0;display:block}.jp-relatedposts-i2[data-layout=list] .jp-related-posts-i2__post{max-width:none;margin:0}.jp-relatedposts-i2[data-layout=list].jp-related-posts-i2__post-img-link{margin-top:1rem}@media only screen and (max-width:640px){.jp-related-posts-i2__row{margin-top:0;display:block}.jp-related-posts-i2__row[data-post-count] .jp-related-posts-i2__post{max-width:none;margin:0;margin-top:1rem}.jp-related-posts-i2__post-img-link{margin-top:1rem}.jp-related-posts-i2__post-img-link img{width:350px}}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em 0;display:inline-block;float:right;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #dcdcde;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:right;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:20px;-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;right:0;left:0;display:block;border-bottom:0}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items time{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{height:auto;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post{clear:both;width:100%}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img{float:right;overflow:hidden;max-width:33%;margin-left:3%}#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{display:inline-block;max-width:63%}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}#jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title{float:none;max-width:100%;margin-left:0}}@media print{.jp-relatedposts{display:none!important}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/related-posts/related-posts.css b/plugins/jetpack/modules/related-posts/related-posts.css
index fa9e84e6..6627c2c5 100644
--- a/plugins/jetpack/modules/related-posts/related-posts.css
+++ b/plugins/jetpack/modules/related-posts/related-posts.css
@@ -125,7 +125,7 @@
display: block;
width: 100%;
min-width: 30px;
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
border-top: 1px solid rgba(0,0,0,.2);
margin-bottom: 1em;
}
@@ -181,7 +181,8 @@
/* Related posts item content */
#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title,
-#jp-relatedposts .jp-relatedposts-items p {
+#jp-relatedposts .jp-relatedposts-items p,
+#jp-relatedposts .jp-relatedposts-items time {
font-size: 14px;
line-height: 20px;
margin: 0;
@@ -199,7 +200,8 @@
border-bottom: 0;
}
-#jp-relatedposts .jp-relatedposts-items p {
+#jp-relatedposts .jp-relatedposts-items p,
+#jp-relatedposts .jp-relatedposts-items time {
margin-bottom: 0;
}
@@ -234,6 +236,7 @@
#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,
#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span {
+ height: auto;
max-width: 100%;
}
@@ -312,3 +315,13 @@
margin-right: 0;
}
}
+
+/*
+ * Hide the related post section in the print view of a post
+ */
+
+@media print {
+ .jp-relatedposts {
+ display:none !important;
+ }
+} \ No newline at end of file
diff --git a/plugins/jetpack/modules/related-posts/related-posts.js b/plugins/jetpack/modules/related-posts/related-posts.js
index 76f7d33d..223fb719 100644
--- a/plugins/jetpack/modules/related-posts/related-posts.js
+++ b/plugins/jetpack/modules/related-posts/related-posts.js
@@ -3,7 +3,9 @@
/**
* Load related posts
*/
-( function( $ ) {
+( function () {
+ 'use strict';
+
var jprp = {
response: null,
@@ -13,7 +15,7 @@
* @param {string} URL (optional)
* @return {string} Endpoint URL
*/
- getEndpointURL: function( URL ) {
+ getEndpointURL: function ( URL ) {
var locationObject,
is_customizer =
'undefined' !== typeof wp &&
@@ -36,8 +38,14 @@
}
var args = 'relatedposts=1';
- if ( $( '#jp-relatedposts' ).data( 'exclude' ) ) {
- args += '&relatedposts_exclude=' + $( '#jp-relatedposts' ).data( 'exclude' );
+ var relatedPosts = document.querySelector( '#jp-relatedposts' );
+
+ if ( ! relatedPosts ) {
+ return false;
+ }
+
+ if ( relatedPosts.hasAttribute( 'data-exclude' ) ) {
+ args += '&relatedposts_exclude=' + relatedPosts.getAttribute( 'data-exclude' );
}
if ( is_customizer ) {
@@ -56,39 +64,31 @@
}
},
- getAnchor: function( post, classNames ) {
- var anchor_title = post.title;
- if ( '' !== '' + post.excerpt ) {
- anchor_title += '\n\n' + post.excerpt;
- }
-
- var anchor = $( '<a>' );
-
- anchor.attr( {
- class: classNames,
- href: post.url,
- title: anchor_title,
- 'data-origin': post.url_meta.origin,
- 'data-position': post.url_meta.position,
- } );
+ getAnchor: function ( post, classNames ) {
+ var anchorTitle = post.title;
+ var anchor = document.createElement( 'a' );
+ anchor.setAttribute( 'class', classNames );
+ anchor.setAttribute( 'href', post.url );
+ anchor.setAttribute( 'title', anchorTitle );
+ anchor.setAttribute( 'data-origin', post.url_meta.origin );
+ anchor.setAttribute( 'data-position', post.url_meta.position );
if ( '' !== post.rel ) {
- anchor.attr( {
- rel: post.rel,
- } );
+ anchor.setAttribute( 'rel', post.rel );
}
- var anchor_html = $( '<div>' )
- .append( anchor )
- .html();
- return [ anchor_html.substring( 0, anchor_html.length - 4 ), '</a>' ];
+ var div = document.createElement( 'div' );
+ div.appendChild( anchor );
+
+ var anchorHTML = div.innerHTML;
+ return [ anchorHTML.substring( 0, anchorHTML.length - 4 ), '</a>' ];
},
- generateMinimalHtml: function( posts, options ) {
+ generateMinimalHtml: function ( posts, options ) {
var self = this;
var html = '';
- $.each( posts, function( index, post ) {
+ posts.forEach( function ( post, index ) {
var anchor = self.getAnchor( post, 'jp-relatedposts-post-a' );
var classes = 'jp-relatedposts-post jp-relatedposts-post' + index;
@@ -111,7 +111,12 @@
anchor[ 1 ] +
'</span>';
if ( options.showDate ) {
- html += '<span class="jp-relatedposts-post-date">' + post.date + '</span>';
+ html +=
+ '<time class="jp-relatedposts-post-date" datetime="' +
+ post.date +
+ '">' +
+ post.date +
+ '</time>';
}
if ( options.showContext ) {
html += '<span class="jp-relatedposts-post-context">' + post.context + '</span>';
@@ -127,11 +132,11 @@
);
},
- generateVisualHtml: function( posts, options ) {
+ generateVisualHtml: function ( posts, options ) {
var self = this;
var html = '';
- $.each( posts, function( index, post ) {
+ posts.forEach( function ( post, index ) {
var anchor = self.getAnchor( post, 'jp-relatedposts-post-a' );
var classes = 'jp-relatedposts-post jp-relatedposts-post' + index;
@@ -145,6 +150,10 @@
classes += ' jp-relatedposts-post-thumbs';
}
+ var dummyContainer = document.createElement( 'p' );
+ dummyContainer.innerHTML = post.excerpt;
+ var excerpt = dummyContainer.textContent;
+
html +=
'<div class="' +
classes +
@@ -156,12 +165,14 @@
if ( post.img.src ) {
html +=
anchor[ 0 ] +
- '<img class="jp-relatedposts-post-img" src="' +
+ '<img class="jp-relatedposts-post-img" loading="lazy" src="' +
post.img.src +
'" width="' +
post.img.width +
+ '" height="' +
+ post.img.height +
'" alt="' +
- post.title +
+ post.img.alt_text +
'" />' +
anchor[ 1 ];
} else {
@@ -181,14 +192,14 @@
'</' +
related_posts_js_options.post_heading +
'>';
- html +=
- '<p class="jp-relatedposts-post-excerpt">' +
- $( '<p>' )
- .text( post.excerpt )
- .html() +
- '</p>';
+ html += '<p class="jp-relatedposts-post-excerpt">' + excerpt + '</p>';
if ( options.showDate ) {
- html += '<p class="jp-relatedposts-post-date">' + post.date + '</p>';
+ html +=
+ '<time class="jp-relatedposts-post-date" datetime="' +
+ post.date +
+ '">' +
+ post.date +
+ '</time>';
}
if ( options.showContext ) {
html += '<p class="jp-relatedposts-post-context">' + post.context + '</p>';
@@ -210,26 +221,30 @@
* cut off a line of text in the middle so we need to do some detective
* work.
*/
- setVisualExcerptHeights: function() {
- var elements = $(
+ setVisualExcerptHeights: function () {
+ var elements = document.querySelectorAll(
'#jp-relatedposts .jp-relatedposts-post-nothumbs .jp-relatedposts-post-excerpt'
);
- if ( 0 >= elements.length ) {
+ if ( ! elements.length ) {
return;
}
- var fontSize = parseInt( elements.first().css( 'font-size' ), 10 ),
- lineHeight = parseInt( elements.first().css( 'line-height' ), 10 );
+ var firstElementStyles = getComputedStyle( elements[ 0 ] );
+
+ var fontSize = parseInt( firstElementStyles.fontSize, 10 );
+ var lineHeight = parseInt( firstElementStyles.lineHeight, 10 );
// Show 5 lines of text
- elements.css( 'max-height', ( 5 * lineHeight ) / fontSize + 'em' );
+ for ( var i = 0; i < elements.length; i++ ) {
+ elements[ i ].style.maxHeight = ( 5 * lineHeight ) / fontSize + 'em';
+ }
},
- getTrackedUrl: function( anchor ) {
+ getTrackedUrl: function ( anchor ) {
var args = 'relatedposts_hit=1';
- args += '&relatedposts_origin=' + $( anchor ).data( 'origin' );
- args += '&relatedposts_position=' + $( anchor ).data( 'position' );
+ args += '&relatedposts_origin=' + anchor.getAttribute( 'data-origin' );
+ args += '&relatedposts_position=' + anchor.getAttribute( 'data-position' );
var pathname = anchor.pathname;
if ( '/' !== pathname[ 0 ] ) {
@@ -243,7 +258,7 @@
}
},
- cleanupTrackedUrl: function() {
+ cleanupTrackedUrl: function () {
if ( 'function' !== typeof history.replaceState ) {
return;
}
@@ -263,8 +278,12 @@
function afterPostsHaveLoaded() {
jprp.setVisualExcerptHeights();
- $( '#jp-relatedposts a.jp-relatedposts-post-a' ).click( function() {
- this.href = jprp.getTrackedUrl( this );
+ var posts = document.querySelectorAll( '#jp-relatedposts a.jp-relatedposts-post-a' );
+
+ Array.prototype.forEach.call( posts, function ( post ) {
+ document.addEventListener( 'click', function () {
+ post.href = jprp.getTrackedUrl( post );
+ } );
} );
}
@@ -274,54 +293,82 @@
function startRelatedPosts() {
jprp.cleanupTrackedUrl();
- var endpointURL = jprp.getEndpointURL(),
- $relatedPosts = $( '#jp-relatedposts' );
+ var endpointURL = jprp.getEndpointURL();
+ var relatedPosts = document.querySelector( '#jp-relatedposts' );
+
+ if ( ! endpointURL ) {
+ return;
+ }
- if ( $( '#jp-relatedposts .jp-relatedposts-post' ).length ) {
+ if ( document.querySelectorAll( '#jp-relatedposts .jp-relatedposts-post' ).length ) {
afterPostsHaveLoaded();
return;
}
- $.getJSON( endpointURL, function( response ) {
- if ( 0 === response.items.length || 0 === $relatedPosts.length ) {
- return;
- }
+ var request = new XMLHttpRequest();
+ request.open( 'GET', endpointURL, true );
+ request.setRequestHeader( 'x-requested-with', 'XMLHttpRequest' );
+
+ request.onreadystatechange = function () {
+ if ( this.readyState === XMLHttpRequest.DONE && this.status === 200 ) {
+ try {
+ var response = JSON.parse( request.responseText );
- jprp.response = response;
+ if ( 0 === response.items.length || 0 === relatedPosts.length ) {
+ return;
+ }
- var html,
- showThumbnails,
- options = {};
+ jprp.response = response;
+
+ var html,
+ showThumbnails,
+ options = {};
+
+ if ( 'undefined' !== typeof wp && wp.customize ) {
+ showThumbnails = wp.customize.instance( 'jetpack_relatedposts[show_thumbnails]' ).get();
+ options.showDate = wp.customize.instance( 'jetpack_relatedposts[show_date]' ).get();
+ options.showContext = wp.customize
+ .instance( 'jetpack_relatedposts[show_context]' )
+ .get();
+ options.layout = wp.customize.instance( 'jetpack_relatedposts[layout]' ).get();
+ } else {
+ showThumbnails = response.show_thumbnails;
+ options.showDate = response.show_date;
+ options.showContext = response.show_context;
+ options.layout = response.layout;
+ }
- if ( 'undefined' !== typeof wp && wp.customize ) {
- showThumbnails = wp.customize.instance( 'jetpack_relatedposts[show_thumbnails]' ).get();
- options.showDate = wp.customize.instance( 'jetpack_relatedposts[show_date]' ).get();
- options.showContext = wp.customize.instance( 'jetpack_relatedposts[show_context]' ).get();
- options.layout = wp.customize.instance( 'jetpack_relatedposts[layout]' ).get();
- } else {
- showThumbnails = response.show_thumbnails;
- options.showDate = response.show_date;
- options.showContext = response.show_context;
- options.layout = response.layout;
- }
+ html = ! showThumbnails
+ ? jprp.generateMinimalHtml( response.items, options )
+ : jprp.generateVisualHtml( response.items, options );
+
+ var div = document.createElement( 'div' );
+ relatedPosts.appendChild( div );
+ div.outerHTML = html;
- html = ! showThumbnails
- ? jprp.generateMinimalHtml( response.items, options )
- : jprp.generateVisualHtml( response.items, options );
+ if ( options.showDate ) {
+ var dates = relatedPosts.querySelectorAll( '.jp-relatedposts-post-date' );
- $relatedPosts.append( html );
- if ( options.showDate ) {
- $relatedPosts.find( '.jp-relatedposts-post-date' ).show();
+ Array.prototype.forEach.call( dates, function ( date ) {
+ date.style.display = 'block';
+ } );
+ }
+
+ relatedPosts.style.display = 'block';
+ afterPostsHaveLoaded();
+ } catch ( error ) {
+ // Do nothing
+ }
}
- $relatedPosts.show();
- afterPostsHaveLoaded();
- } );
+ };
+
+ request.send();
}
- $( function() {
+ function init() {
if ( 'undefined' !== typeof wp && wp.customize ) {
if ( wp.customize.selectiveRefresh ) {
- wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
+ wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
if ( 'jetpack_relatedposts' === placement.partial.id ) {
startRelatedPosts();
}
@@ -331,5 +378,11 @@
} else {
startRelatedPosts();
}
- } );
-} )( jQuery );
+ }
+
+ if ( document.readyState !== 'loading' ) {
+ init();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', init );
+ }
+} )();
diff --git a/plugins/jetpack/modules/scan/admin-bar-notice.js b/plugins/jetpack/modules/scan/admin-bar-notice.js
new file mode 100644
index 00000000..4a226bc4
--- /dev/null
+++ b/plugins/jetpack/modules/scan/admin-bar-notice.js
@@ -0,0 +1,52 @@
+( function ( localized ) {
+ function ready( fn ) {
+ if ( document.readyState != 'loading' ) {
+ fn();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', fn );
+ }
+ }
+
+ function fetch_scan_treats_and_add_link() {
+ var xhrRequest = new XMLHttpRequest();
+ xhrRequest.open( 'GET', localized.scan_endpoint, true );
+ xhrRequest.onload = function () {
+ if ( this.status == 200 ) {
+ // Success!
+ var body = JSON.parse( this.response );
+ if ( body && body.data ) {
+ var apiResponse = JSON.parse( body.data );
+ var numberOfThreats =
+ apiResponse.threats && apiResponse.threats.length ? apiResponse.threats.length : 0;
+ update_threats_link( numberOfThreats );
+ } else {
+ update_threats_link( 0 );
+ }
+ } else {
+ update_threats_link( 0 );
+ }
+ };
+ xhrRequest.setRequestHeader( 'X-WP-Nonce', localized.nonce );
+ xhrRequest.send();
+ }
+
+ ready( function () {
+ fetch_scan_treats_and_add_link();
+ } );
+
+ function update_threats_link( numberOfThreats ) {
+ var element = document.getElementById( 'wp-admin-bar-jetpack-scan-notice' );
+ if ( ! element ) {
+ return;
+ }
+
+ if ( ! numberOfThreats ) {
+ element.parentNode.removeChild( element );
+ return;
+ }
+
+ var textLabel = numberOfThreats == 1 ? localized.singular : localized.multiple;
+ element.innerHTML =
+ '<a href="' + localized.scan_dashboard_url + '" class="ab-item">' + textLabel + '</a>';
+ }
+} )( window.Jetpack_Scan );
diff --git a/plugins/jetpack/modules/scan/class-admin-bar-notice.php b/plugins/jetpack/modules/scan/class-admin-bar-notice.php
new file mode 100644
index 00000000..76f3cdc0
--- /dev/null
+++ b/plugins/jetpack/modules/scan/class-admin-bar-notice.php
@@ -0,0 +1,211 @@
+<?php
+/**
+ * A class that adds the scan notice to the admin bar.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Scan;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
+
+/**
+ * Class Main
+ *
+ * Responsible for loading the admin bar notice if threats are found.
+ *
+ * @package Automattic\Jetpack\Scan
+ */
+class Admin_Bar_Notice {
+ const SCRIPT_NAME = 'jetpack-scan-show-notice';
+ const SCRIPT_VERSION = '1';
+
+ /**
+ * The singleton instance of this class.
+ *
+ * @var Admin_Bar_Notice
+ */
+ protected static $instance;
+
+ /**
+ * Get the singleton instance of the class.
+ *
+ * @return Admin_Bar_Notice
+ */
+ public static function instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new Admin_Bar_Notice();
+ self::$instance->init_hooks();
+ }
+
+ return self::$instance;
+ }
+ /**
+ * Initalize the hooks as needed.
+ */
+ private function init_hooks() {
+ if ( ! $this->should_try_to_display_notice() ) {
+ return;
+ }
+
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_toolbar_script' ) );
+ add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_toolbar_script' ) );
+ add_action( 'admin_bar_menu', array( $this, 'add_threats_to_toolbar' ), 999 );
+
+ // Inject the data-ampdevmode attribute into the inline <script> output via wp_localize_script(). To revisit after https://github.com/ampproject/amp-wp/issues/4598.
+ add_filter(
+ 'amp_dev_mode_element_xpaths',
+ static function ( $expressions ) {
+ $expressions[] = '//script[ contains( text(), "Jetpack_Scan" ) ]';
+ return $expressions;
+ }
+ );
+ }
+
+ /**
+ * Whether to even try to display the notice or now.
+ *
+ * @return bool
+ */
+ private function should_try_to_display_notice() {
+ // Jetpack Scan is currently not supported on multisite.
+ if ( is_multisite() ) {
+ return false;
+ }
+
+ // Check if VaultPress is active, the assumtion there is that VaultPress is working.
+ // It has its own notice in the admin bar.
+ if ( class_exists( 'VaultPress' ) ) {
+ return false;
+ }
+
+ // Only show the notice to admins.
+ if ( ! current_user_can( 'manage_options' ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Add the inline styles and scripts if they are needed.
+ */
+ public function enqueue_toolbar_script() {
+ $this->add_inline_styles();
+
+ if ( ! is_null( $this->has_threats() ) ) {
+ return;
+ }
+
+ // We don't know about threats in the cache lets load the JS that fetches the info and updates the admin bar.
+ Assets::enqueue_async_script( self::SCRIPT_NAME, '_inc/build/scan/admin-bar-notice.min.js', 'modules/scan/admin-bar-notice.js', array( 'admin-bar' ), self::SCRIPT_VERSION, true );
+
+ $script_data = array(
+ 'nonce' => wp_create_nonce( 'wp_rest' ),
+ 'scan_endpoint' => get_rest_url( null, 'jetpack/v4/scan' ),
+ 'scan_dashboard_url' => Redirect::get_url( 'calypso-scanner' ),
+ /* translators: %s is the alert icon */
+ 'singular' => sprintf( esc_html__( '%s Threat found', 'jetpack' ), $this->get_icon() ),
+ /* translators: %s is the alert icon */
+ 'multiple' => sprintf( esc_html__( '%s Threats found', 'jetpack' ), $this->get_icon() ),
+ );
+ wp_localize_script( self::SCRIPT_NAME, 'Jetpack_Scan', $script_data );
+ }
+
+ /**
+ * Adds the inline styles if they are needed.
+ */
+ public function add_inline_styles() {
+ // We know there are no threats so lets not include any css.
+ if ( false === $this->has_threats() ) {
+ return;
+ }
+
+ // We might be showing the threats in the admin bar lets make sure that they look great!
+ $hide_wording_on_mobile = '#wp-admin-bar-jetpack-scan-notice .is-hidden { display:none; } @media screen and (max-width: 959px ) { #wpadminbar #wp-admin-bar-jetpack-scan-notice { width:32px; } #wpadminbar #wp-admin-bar-jetpack-scan-notice a { color: transparent!important; } }';
+ $style = '#wp-admin-bar-jetpack-scan-notice svg { float:left; margin-top: 4px; margin-right: 6px; width: 18px; height: 22px; }' . $hide_wording_on_mobile;
+ if ( is_rtl() ) {
+ $style = '#wp-admin-bar-jetpack-scan-notice svg { float:right; margin-top: 4px; margin-left: 6px; width: 18px; height: 22px; }' . $hide_wording_on_mobile;
+ }
+ wp_add_inline_style( 'admin-bar', $style );
+ }
+
+ /**
+ * Add the link to the admin bar.
+ *
+ * @param WP_Admin_Bar $wp_admin_bar WP Admin Bar class object.
+ */
+ public function add_threats_to_toolbar( $wp_admin_bar ) {
+ if ( ! $this->should_try_to_display_notice() ) {
+ return;
+ }
+
+ $has_threats = $this->has_threats();
+ if ( false === $has_threats ) {
+ return;
+ }
+
+ $node = array(
+ 'id' => 'jetpack-scan-notice',
+ 'title' => '',
+ 'parent' => 'top-secondary',
+ 'meta' => array(
+ 'title' => esc_attr__( 'View security scan details', 'jetpack' ),
+ 'class' => 'error is-hidden',
+ ),
+ );
+
+ if ( $has_threats ) {
+ $node['href'] = esc_url( Redirect::get_url( 'calypso-scanner' ) );
+ $node['meta']['onclick'] = 'window.open( this.href ); return false;';
+ $node['meta']['class'] = 'error';
+ $node['title'] = sprintf(
+ esc_html(
+ /* translators: %s is the alert icon */
+ _n( '%s Threat found', '%s Threats found', $this->get_threat_count(), 'jetpack' )
+ ),
+ $this->get_icon()
+ );
+ }
+
+ $wp_admin_bar->add_node( $node );
+ }
+
+ /**
+ * Returns the shield icon.
+ *
+ * @return string
+ */
+ private function get_icon() {
+ return '<svg width="18" height="22" viewBox="0 0 18 22" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9 0L0 4V10C0 15.55 3.84 20.74 9 22C14.16 20.74 18 15.55 18 10V4L9 0Z" fill="#D63638"/><path d="M7.99121 6.00894H10.0085V11.9968H7.99121V6.00894Z" fill="#FFF"/><path d="M7.99121 14.014H10.0085V15.9911H7.99121V14.014Z" fill="#FFF"/></svg>';
+ }
+
+ /**
+ *
+ * Return Whether boolean cached threats exist or null if the state is unknown.
+ * * @return boolean or null
+ */
+ public function has_threats() {
+ $scan_state = get_transient( 'jetpack_scan_state' );
+ if ( empty( $scan_state ) ) {
+ return null;
+ }
+ // Return true if there is at least one threat found.
+ return (bool) isset( $scan_state->threats[0] );
+ }
+
+ /**
+ * Returns the number of threats found or 0.
+ *
+ * @return int
+ */
+ public function get_threat_count() {
+ if ( ! $this->has_threats() ) {
+ return 0;
+ }
+
+ $scan_state = get_transient( 'jetpack_scan_state' );
+ return is_array( $scan_state->threats ) ? count( $scan_state->threats ) : 0;
+ }
+}
diff --git a/plugins/jetpack/modules/scan/class-admin-sidebar-link.php b/plugins/jetpack/modules/scan/class-admin-sidebar-link.php
new file mode 100644
index 00000000..78eee31c
--- /dev/null
+++ b/plugins/jetpack/modules/scan/class-admin-sidebar-link.php
@@ -0,0 +1,197 @@
+<?php
+/**
+ * A class that adds a scan and backup link to the admin sidebar.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Scan;
+
+use Automattic\Jetpack\Redirect;
+use Jetpack_Core_Json_Api_Endpoints;
+
+/**
+ * Class Main
+ *
+ * Responsible for showing the link if available.
+ *
+ * @package Automattic\Jetpack\Scan
+ */
+class Admin_Sidebar_Link {
+
+ const SCHEDULE_ACTION_HOOK = 'jetpack_scan_refresh_states_event';
+
+ /**
+ * The singleton instance of this class.
+ *
+ * @var Admin_Sidebar_Link
+ */
+ protected static $instance;
+
+ /**
+ * Used to check if we need to schedule the refresh or we need to do it.
+ *
+ * @var boolean | null
+ */
+ private $schedule_refresh_checked;
+
+ /**
+ * Get the singleton instance of the class.
+ *
+ * @return Admin_Sidebar_Link
+ */
+ public static function instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new Admin_Sidebar_Link();
+ self::$instance->init_hooks();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Adds action hooks.
+ */
+ public function init_hooks() {
+ add_action( 'jetpack_admin_menu', array( $this, 'maybe_add_admin_link' ), 99 );
+ add_action( self::SCHEDULE_ACTION_HOOK, array( $this, 'refresh_state_cache' ) );
+ }
+
+ /**
+ * Adds a link to the Scan and Backup page.
+ */
+ public function maybe_add_admin_link() {
+ if ( ! $this->should_show_link() ) {
+ return;
+ }
+
+ $has_scan = $this->has_scan();
+ $show_backup = $this->should_show_backup();
+ $url = Redirect::get_url( 'calypso-backups' );
+
+ if ( $has_scan && ! $show_backup ) {
+ $menu_label = __( 'Scan', 'jetpack' );
+ $url = Redirect::get_url( 'calypso-scanner' );
+ } elseif ( ! $has_scan && $show_backup ) {
+ $menu_label = __( 'Backup', 'jetpack' );
+ } else {
+ // Will be both, as the code won't get this far if neither is true (see should_show_link()).
+ $menu_label = __( 'Backup & Scan', 'jetpack' );
+ }
+
+ add_submenu_page( 'jetpack', $menu_label, esc_html( $menu_label ) . ' <span class="dashicons dashicons-external"></span>', 'manage_options', esc_url( $url ), null, $this->get_link_offset() );
+
+ }
+
+ /**
+ * We create a menu offset by counting all the pages that have a jetpack_admin_page set as the capability.
+ *
+ * This makes it so that the highlight of the pages works as expected. When you click on the Setting or Dashboard.
+ *
+ * @return int Menu offset.
+ */
+ private function get_link_offset() {
+ global $submenu;
+ $offset = 0;
+ foreach ( $submenu['jetpack'] as $link ) {
+ if ( 'jetpack_admin_page' !== $link[1] ) {
+ break;
+ }
+ $offset++;
+ }
+
+ return $offset;
+ }
+
+ /**
+ * Refreshes the state cache via API call. Called via cron.
+ */
+ public function refresh_state_cache() {
+ Jetpack_Core_Json_Api_Endpoints::get_scan_state();
+ Jetpack_Core_Json_Api_Endpoints::get_rewind_data();
+ }
+
+ /**
+ * Returns true if the link should appear.
+ *
+ * @return boolean
+ */
+ private function should_show_link() {
+ // Jetpack Scan/Backup is currently not supported on multisite.
+ if ( is_multisite() ) {
+ return false;
+ }
+
+ // Check if VaultPress is active, the assumption there is that VaultPress is working.
+ // It has its link the adminbar.
+ if ( class_exists( 'VaultPress' ) ) {
+ return false;
+ }
+
+ return $this->has_scan() || $this->should_show_backup();
+ }
+
+ /**
+ * Check if we should display the Backup menu item.
+ *
+ * It will only be displayed if site has Backup enabled and the stand-alone Backup plugin is not active, because it will have a menu item of its own.
+ *
+ * @return boolean
+ */
+ private function should_show_backup() {
+ return $this->has_backup() && ! $this->has_backup_plugin();
+ }
+
+ /**
+ * Detects if Scan is enabled.
+ *
+ * @return boolean
+ */
+ private function has_scan() {
+ $this->maybe_refresh_transient_cache();
+ $scan_state = get_transient( 'jetpack_scan_state' );
+ return ! $scan_state || 'unavailable' !== $scan_state->state;
+ }
+
+ /**
+ * Detects if Backup is enabled.
+ *
+ * @return boolean
+ */
+ private function has_backup() {
+ $this->maybe_refresh_transient_cache();
+ $rewind_state = get_transient( 'jetpack_rewind_state' );
+ return ! $rewind_state || 'unavailable' !== $rewind_state->state;
+ }
+
+ /**
+ * Detects if Backup plugin is active.
+ *
+ * @return boolean
+ */
+ private function has_backup_plugin() {
+ return class_exists( 'Jetpack_Backup' );
+ }
+
+ /**
+ * Triggers a cron job to refresh the Scan and Rewind state cache.
+ */
+ private function maybe_refresh_transient_cache() {
+ if ( $this->schedule_refresh_checked ) {
+ return;
+ }
+
+ // Do we have a jetpack_scan and jetpack_rewind state set?
+ if ( get_transient( 'jetpack_scan_state' ) && get_transient( 'jetpack_rewind_state' ) ) {
+ return;
+ }
+
+ if ( false === wp_next_scheduled( self::SCHEDULE_ACTION_HOOK ) ) {
+ wp_schedule_single_event( time(), self::SCHEDULE_ACTION_HOOK );
+ }
+
+ $this->schedule_refresh_checked = true;
+ }
+}
+
+
diff --git a/plugins/jetpack/modules/scan/scan.php b/plugins/jetpack/modules/scan/scan.php
new file mode 100644
index 00000000..11bcc6da
--- /dev/null
+++ b/plugins/jetpack/modules/scan/scan.php
@@ -0,0 +1,15 @@
+<?php
+/**
+ * Jetpack Scan features that show up on the jetpack admin side.
+ * - Adds a admin bar notice when the site has threats.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Scan;
+
+require_once 'class-admin-bar-notice.php';
+require_once 'class-admin-sidebar-link.php';
+
+Admin_Bar_Notice::instance();
+Admin_Sidebar_Link::instance();
diff --git a/plugins/jetpack/modules/search.php b/plugins/jetpack/modules/search.php
index 0f94315b..c9029048 100644
--- a/plugins/jetpack/modules/search.php
+++ b/plugins/jetpack/modules/search.php
@@ -1,8 +1,7 @@
<?php
-
/**
* Module Name: Search
- * Module Description: Enhanced search, powered by Elasticsearch, a powerful replacement for WordPress search.
+ * Module Description: Help visitors quickly find answers with highly relevant instant search results and powerful filtering.
* First Introduced: 5.0
* Sort Order: 34
* Free: false
@@ -10,9 +9,14 @@
* Auto Activate: No
* Feature: Search
* Additional Search Queries: search, elastic, elastic search, elasticsearch, fast search, search results, search performance, google search
- * Plans: business
+ * Plans: business, complete
+ *
+ * @package automattic/jetpack
*/
-require_once( dirname( __FILE__ ) . '/search/class.jetpack-search.php' );
+// Include everything.
+require_once __DIR__ . '/search/class.jetpack-search.php';
+require_once __DIR__ . '/search/class-jetpack-search-customberg.php';
Jetpack_Search::instance();
+Automattic\Jetpack\Search\Jetpack_Search_Customberg::instance();
diff --git a/plugins/jetpack/modules/search/class-jetpack-instant-search.php b/plugins/jetpack/modules/search/class-jetpack-instant-search.php
new file mode 100644
index 00000000..afe391e9
--- /dev/null
+++ b/plugins/jetpack/modules/search/class-jetpack-instant-search.php
@@ -0,0 +1,629 @@
+<?php
+/**
+ * Jetpack Search: Instant Front-End Search and Filtering
+ *
+ * @since 8.3.0
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Search\Helper;
+use Automattic\Jetpack\Search\Options;
+
+/**
+ * Class to load Instant Search experience on the site.
+ *
+ * @since 8.3.0
+ */
+class Jetpack_Instant_Search extends Jetpack_Search {
+ /**
+ * The name of instant search sidebar
+ *
+ * @since 9.8.0
+ *
+ * @var string
+ */
+ const JETPACK_INSTANT_SEARCH_SIDEBAR = 'jetpack-instant-search-sidebar';
+
+ /**
+ * Variable to save old sidebars_widgets value.
+ *
+ * The value is set when action `after_switch_theme` is applied and cleared on filter `pre_update_option_sidebars_widgets`.
+ * The filters mentioned above run on /wp-admin/themes.php?activated=true, a request closely following switching theme.
+ *
+ * @since 9.8.0
+ *
+ * @var array
+ */
+ protected $old_sidebars_widgets;
+
+ /**
+ * Get singleton instance of Jetpack Instant Search.
+ *
+ * Instantiates and sets up a new instance if needed, or returns the singleton.
+ *
+ * @since 9.8.0
+ *
+ * @return Jetpack_Instant_Search The Jetpack_Instant_Search singleton.
+ */
+ public static function instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new static();
+ self::$instance->setup();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Loads the php for this version of search
+ *
+ * @since 8.3.0
+ */
+ public function load_php() {
+ $this->base_load_php();
+
+ new Automattic\Jetpack\Search\Settings();
+
+ if ( class_exists( 'WP_Customize_Manager' ) ) {
+ require_once __DIR__ . '/class-jetpack-search-customize.php';
+ new Jetpack_Search_Customize();
+ }
+ }
+
+ /**
+ * Setup the various hooks needed for the plugin to take over search duties.
+ *
+ * @since 5.0.0
+ */
+ public function init_hooks() {
+ if ( ! is_admin() ) {
+ add_filter( 'posts_pre_query', array( $this, 'filter__posts_pre_query' ), 10, 2 );
+ add_action( 'parse_query', array( $this, 'action__parse_query' ), 10, 1 );
+
+ add_action( 'init', array( $this, 'set_filters_from_widgets' ) );
+
+ add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ) );
+ add_action( 'wp_footer', array( 'Automattic\Jetpack\Search\Helper', 'print_instant_search_sidebar' ) );
+ add_filter( 'body_class', array( $this, 'add_body_class' ), 10 );
+ } else {
+ add_action( 'update_option', array( $this, 'track_widget_updates' ), 10, 3 );
+ }
+
+ /**
+ * Note:
+ * 1. The priority has to be lower than 10 to run before _wp_sidebars_changed.
+ * Which migrates widgets from old theme to the new one.
+ * 2. WP.com runs after_switch_theme hook from the frontend, so we'll need to hook it.
+ * No matter it's admin or frontend.
+ */
+ add_action( 'after_switch_theme', array( $this, 'save_old_sidebars_widgets' ), 5, 0 );
+ add_action( 'pre_update_option_sidebars_widgets', array( $this, 'remove_wp_migrated_widgets' ) );
+
+ add_action( 'widgets_init', array( $this, 'register_jetpack_instant_sidebar' ) );
+ add_action( 'jetpack_deactivate_module_search', array( $this, 'move_search_widgets_to_inactive' ) );
+ }
+
+ /**
+ * Loads assets for Jetpack Instant Search Prototype featuring Search As You Type experience.
+ */
+ public function load_assets() {
+ $this->load_assets_with_parameters( '', JETPACK__PLUGIN_FILE );
+ }
+
+ /**
+ * Loads assets according to parameters provided.
+ *
+ * @param string $path_prefix - Prefix for assets' relative paths.
+ * @param string $plugin_base_path - Base path for use in plugins_url.
+ */
+ public function load_assets_with_parameters( $path_prefix, $plugin_base_path ) {
+ Assets::register_script(
+ 'jetpack-instant-search',
+ $path_prefix . '_inc/build/instant-search/jp-search-main.js',
+ $plugin_base_path,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack',
+ )
+ );
+ Assets::enqueue_script( 'jetpack-instant-search' );
+ $this->load_and_initialize_tracks();
+ $this->inject_javascript_options();
+ }
+
+ /**
+ * Passes all options to the JS app.
+ */
+ protected function inject_javascript_options() {
+ $options = Helper::generate_initial_javascript_state();
+ // Use wp_add_inline_script instead of wp_localize_script, see https://core.trac.wordpress.org/ticket/25280.
+ wp_add_inline_script( 'jetpack-instant-search', 'var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( $options ) ) . '"));', 'before' );
+ }
+
+ /**
+ * Registers a widget sidebar for Instant Search.
+ */
+ public function register_jetpack_instant_sidebar() {
+ $args = array(
+ 'name' => __( 'Jetpack Search Sidebar', 'jetpack' ),
+ 'id' => 'jetpack-instant-search-sidebar',
+ 'description' => __( 'Customize the sidebar inside the Jetpack Search overlay', 'jetpack' ),
+ 'class' => '',
+ 'before_widget' => '<div id="%1$s" class="widget %2$s">',
+ 'after_widget' => '</div>',
+ 'before_title' => '<h2 class="widgettitle">',
+ 'after_title' => '</h2>',
+ );
+ register_sidebar( $args );
+ }
+
+ /**
+ * Loads scripts for Tracks analytics library
+ */
+ public function load_and_initialize_tracks() {
+ wp_enqueue_script( 'jp-tracks', '//stats.wp.com/w.js', array(), gmdate( 'YW' ), true );
+ }
+
+ /**
+ * Bypass the normal Search query since we will run it with instant search.
+ *
+ * @since 8.3.0
+ *
+ * @param array $posts Current array of posts (still pre-query).
+ * @param WP_Query $query The WP_Query being filtered.
+ *
+ * @return array Array of matching posts.
+ */
+ public function filter__posts_pre_query( $posts, $query ) {
+ if ( ! $this->should_handle_query( $query ) ) {
+ // Intentionally not adding the 'jetpack_search_abort' action since this should fire for every request except for search.
+ return $posts;
+ }
+
+ /**
+ * Bypass the main query and return dummy data
+ * WP Core doesn't call the set_found_posts and its filters when filtering
+ * posts_pre_query like we do, so need to do these manually.
+ */
+ $query->found_posts = 1;
+ $query->max_num_pages = 1;
+
+ return array();
+ }
+
+ /**
+ * Run the aggregations API query for any filtering
+ *
+ * @since 8.3.0
+ */
+ public function action__parse_query() {
+ if ( ! empty( $this->search_result ) ) {
+ return;
+ }
+
+ if ( is_admin() ) {
+ return;
+ }
+
+ if ( empty( $this->aggregations ) ) {
+ return;
+ }
+
+ $builder = new Automattic\Jetpack\Search\WPES\Query_Builder();
+ $this->add_aggregations_to_es_query_builder( $this->aggregations, $builder );
+ $this->search_result = $this->instant_api(
+ array(
+ 'aggregations' => $builder->build_aggregation(),
+ 'size' => 0,
+ 'from' => 0,
+ )
+ );
+ }
+
+ /**
+ * Run an instant search on the WordPress.com public API.
+ *
+ * @since 8.3.0
+ *
+ * @param array $args Args conforming to the WP.com v1.3/sites/<blog_id>/search endpoint.
+ *
+ * @return object|WP_Error The response from the public API, or a WP_Error.
+ */
+ public function instant_api( array $args ) {
+ global $wp_version;
+ $start_time = microtime( true );
+
+ // Cache locally to avoid remote request slowing the page.
+ $transient_name = 'jetpack_instant_search_cache_' . md5( wp_json_encode( $args ) );
+ $cache = get_transient( $transient_name );
+ if ( false !== $cache ) {
+ return $cache;
+ }
+
+ $service_url = add_query_arg(
+ $args,
+ sprintf(
+ 'https://public-api.wordpress.com/rest/v1.3/sites/%d/search',
+ $this->jetpack_blog_id
+ )
+ );
+
+ $request_args = array(
+ 'timeout' => 10,
+ 'user-agent' => "WordPress/{$wp_version} | Jetpack/" . constant( 'JETPACK__VERSION' ),
+ );
+
+ $request = wp_remote_get( esc_url_raw( $service_url ), $request_args );
+ $end_time = microtime( true );
+
+ if ( is_wp_error( $request ) ) {
+ return $request;
+ }
+
+ $response_code = wp_remote_retrieve_response_code( $request );
+ $response = json_decode( wp_remote_retrieve_body( $request ), true );
+
+ if ( ! $response_code || $response_code < 200 || $response_code >= 300 ) {
+ /**
+ * Fires after a search query request has failed
+ *
+ * @module search
+ *
+ * @since 5.6.0
+ *
+ * @param array Array containing the response code and response from the failed search query
+ */
+ do_action(
+ 'failed_jetpack_search_query',
+ array(
+ 'response_code' => $response_code,
+ 'json' => $response,
+ )
+ );
+
+ return new WP_Error( 'invalid_search_api_response', 'Invalid response from API - ' . $response_code );
+ }
+
+ $took = is_array( $response ) && ! empty( $response['took'] )
+ ? $response['took']
+ : null;
+
+ $query = array(
+ 'args' => $args,
+ 'response' => $response,
+ 'response_code' => $response_code,
+ 'elapsed_time' => ( $end_time - $start_time ) * 1000, // Convert from float seconds to ms.
+ 'es_time' => $took,
+ 'url' => $service_url,
+ );
+
+ /**
+ * Fires after a search request has been performed.
+ *
+ * Includes the following info in the $query parameter:
+ *
+ * array args Array of Elasticsearch arguments for the search
+ * array response Raw API response, JSON decoded
+ * int response_code HTTP response code of the request
+ * float elapsed_time Roundtrip time of the search request, in milliseconds
+ * float es_time Amount of time Elasticsearch spent running the request, in milliseconds
+ * string url API url that was queried
+ *
+ * @module search
+ *
+ * @since 5.0.0
+ * @since 5.8.0 This action now fires on all queries instead of just successful queries.
+ *
+ * @param array $query Array of information about the query performed
+ */
+ do_action( 'did_jetpack_search_query', $query );
+
+ // Update local cache.
+ set_transient( $transient_name, $response, 1 * HOUR_IN_SECONDS );
+
+ return $response;
+ }
+
+ /**
+ * Get the raw Aggregation results from the Elasticsearch response.
+ *
+ * @since 8.4.0
+ *
+ * @return array Array of Aggregations performed on the search.
+ */
+ public function get_search_aggregations_results() {
+ if ( empty( $this->search_result ) || is_wp_error( $this->search_result ) || ! isset( $this->search_result['aggregations'] ) ) {
+ return array();
+ }
+
+ return $this->search_result['aggregations'];
+ }
+
+ /**
+ * Automatically configure necessary settings for instant search
+ *
+ * @since 8.3.0
+ */
+ public function auto_config_search() {
+ if ( ! current_user_can( 'edit_theme_options' ) ) {
+ return;
+ }
+
+ // Set default result format to "expanded".
+ update_option( Options::OPTION_PREFIX . 'result_format', Options::RESULT_FORMAT_EXPANDED );
+
+ $this->auto_config_excluded_post_types();
+ $this->auto_config_overlay_sidebar_widgets();
+ $this->auto_config_woo_result_format();
+ }
+
+ /**
+ * Automatically copy configured search widgets into the overlay sidebar
+ *
+ * @since 8.8.0
+ */
+ public function auto_config_overlay_sidebar_widgets() {
+ global $wp_registered_sidebars;
+ $sidebars = get_option( 'sidebars_widgets', array() );
+ $slug = Helper::FILTER_WIDGET_BASE;
+
+ if ( isset( $sidebars['jetpack-instant-search-sidebar'] ) ) {
+ foreach ( (array) $sidebars['jetpack-instant-search-sidebar'] as $widget_id ) {
+ if ( 0 === strpos( $widget_id, $slug ) ) {
+ // Already configured.
+ return;
+ }
+ }
+ }
+
+ $has_sidebar = isset( $wp_registered_sidebars['sidebar-1'] );
+ $sidebar_id = false;
+ $sidebar_searchbox_idx = false;
+ if ( $has_sidebar ) {
+ if ( empty( $sidebars['sidebar-1'] ) ) {
+ // Adding to an empty sidebar is generally a bad idea.
+ $has_sidebar = false;
+ }
+ foreach ( (array) $sidebars['sidebar-1'] as $idx => $widget_id ) {
+ if ( 0 === strpos( $widget_id, 'search-' ) ) {
+ $sidebar_searchbox_idx = $idx;
+ }
+ if ( 0 === strpos( $widget_id, $slug ) ) {
+ $sidebar_id = (int) str_replace( Helper::FILTER_WIDGET_BASE . '-', '', $widget_id );
+ break;
+ }
+ }
+ }
+
+ $next_id = 1;
+ $widget_opt_name = Helper::get_widget_option_name();
+ $widget_options = get_option( $widget_opt_name, array() );
+ foreach ( $widget_options as $id => $w ) {
+ if ( $id >= $next_id ) {
+ $next_id = $id + 1;
+ }
+ }
+
+ // Copy sidebar settings to overlay.
+ if ( ( false !== $sidebar_id ) && isset( $widget_options[ $sidebar_id ] ) ) {
+ $widget_options[ $next_id ] = $widget_options[ $sidebar_id ];
+ update_option( $widget_opt_name, $widget_options );
+
+ if ( ! isset( $sidebars['jetpack-instant-search-sidebar'] ) ) {
+ $sidebars['jetpack-instant-search-sidebar'] = array();
+ }
+ array_unshift( $sidebars['jetpack-instant-search-sidebar'], Helper::build_widget_id( $next_id ) );
+ update_option( 'sidebars_widgets', $sidebars );
+
+ return;
+ }
+
+ // Configure overlay and sidebar (if it exists).
+ $preconfig_opts = $this->get_preconfig_widget_options();
+ if ( ! isset( $sidebars['jetpack-instant-search-sidebar'] ) ) {
+ $sidebars['jetpack-instant-search-sidebar'] = array();
+ }
+ if ( $has_sidebar ) {
+ $widget_options[ $next_id ] = $preconfig_opts;
+ if ( false !== $sidebar_searchbox_idx ) {
+ // Replace Core search box.
+ $sidebars['sidebar-1'][ $sidebar_searchbox_idx ] = Helper::build_widget_id( $next_id );
+ } else {
+ // Add to top.
+ array_unshift( $sidebars['sidebar-1'], Helper::build_widget_id( $next_id ) );
+ }
+ $next_id++;
+ }
+ $widget_options[ $next_id ] = $preconfig_opts;
+ array_unshift( $sidebars['jetpack-instant-search-sidebar'], Helper::build_widget_id( $next_id ) );
+
+ update_option( $widget_opt_name, $widget_options );
+ update_option( 'sidebars_widgets', $sidebars );
+ }
+
+ /**
+ * Autoconfig search by adding filter widgets
+ *
+ * @since 8.4.0
+ *
+ * @return array Array of config settings for search widget.
+ */
+ protected function get_preconfig_widget_options() {
+ $settings = array(
+ 'title' => '',
+ 'filters' => array(),
+ );
+
+ $post_types = get_post_types(
+ array(
+ 'public' => true,
+ '_builtin' => false,
+ )
+ );
+
+ if ( ! empty( $post_types ) ) {
+ $settings['filters'][] = array(
+ 'name' => '',
+ 'type' => 'post_type',
+ 'count' => 5,
+ );
+ }
+
+ // Grab a maximum of 3 taxonomies.
+ $taxonomies = array_slice(
+ get_taxonomies(
+ array(
+ 'public' => true,
+ '_builtin' => false,
+ )
+ ),
+ 0,
+ 3
+ );
+
+ foreach ( $taxonomies as $t ) {
+ $settings['filters'][] = array(
+ 'name' => '',
+ 'type' => 'taxonomy',
+ 'taxonomy' => $t,
+ 'count' => 5,
+ );
+ }
+
+ $settings['filters'][] = array(
+ 'name' => '',
+ 'type' => 'taxonomy',
+ 'taxonomy' => 'category',
+ 'count' => 5,
+ );
+
+ $settings['filters'][] = array(
+ 'name' => '',
+ 'type' => 'taxonomy',
+ 'taxonomy' => 'post_tag',
+ 'count' => 5,
+ );
+
+ $settings['filters'][] = array(
+ 'name' => '',
+ 'type' => 'date_histogram',
+ 'count' => 5,
+ 'field' => 'post_date',
+ 'interval' => 'year',
+ );
+
+ return $settings;
+ }
+
+ /**
+ * Automatically configure post types to exclude from one of the search widgets
+ *
+ * @since 8.8.0
+ */
+ public function auto_config_excluded_post_types() {
+ $post_types = get_post_types(
+ array(
+ 'exclude_from_search' => false,
+ 'public' => true,
+ )
+ );
+ $enabled_post_types = array();
+ $widget_options = get_option( Helper::get_widget_option_name(), array() );
+
+ // Prior to Jetpack 8.8, post types were enabled via Jetpack Search widgets rather than disabled via the Customizer.
+ // To continue supporting post types set up in the old way, we iterate through each Jetpack Search
+ // widget configuration and append each enabled post type to $enabled_post_types.
+ foreach ( $widget_options as $widget_option ) {
+ if ( isset( $widget_option['post_types'] ) && is_array( $widget_option['post_types'] ) ) {
+ foreach ( $widget_option['post_types'] as $enabled_post_type ) {
+ $enabled_post_types[ $enabled_post_type ] = $enabled_post_type;
+ }
+ }
+ }
+
+ if ( ! empty( $enabled_post_types ) ) {
+ $post_types_to_disable = array_diff( $post_types, $enabled_post_types );
+ update_option( Options::OPTION_PREFIX . 'excluded_post_types', join( ',', $post_types_to_disable ) );
+ }
+ }
+
+ /**
+ * Automatically set result format to 'product' if WooCommerce is installed
+ *
+ * @since 9.6.0
+ */
+ public function auto_config_woo_result_format() {
+ if ( ! method_exists( 'Jetpack', 'get_active_plugins' ) ) {
+ return false;
+ }
+
+ // Check if WooCommerce plugin is active (based on https://docs.woocommerce.com/document/create-a-plugin/).
+ if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', Jetpack::get_active_plugins() ), true ) ) {
+ return false;
+ }
+
+ update_option( Options::OPTION_PREFIX . 'result_format', Options::RESULT_FORMAT_PRODUCT );
+ }
+
+ /**
+ * Save sidebars_widgets option before it's migrated by WordPress
+ *
+ * @since 9.8.0
+ *
+ * @param array $old_sidebars_widgets The sidebars_widgets option value to be saved.
+ */
+ public function save_old_sidebars_widgets( $old_sidebars_widgets = null ) {
+ // The function should only run before _wp_sidebars_changed which migrates the sidebars.
+ // So when _wp_sidebars_changed doesn't exist, we should skip the logic.
+ if ( has_filter( 'after_switch_theme', '_wp_sidebars_changed' ) !== false ) {
+ $this->old_sidebars_widgets = ! is_null( $old_sidebars_widgets ) ? $old_sidebars_widgets : wp_get_sidebars_widgets();
+ }
+ }
+
+ /**
+ * Clean WordPress auto-migrated sidebar widgets from instant search sidebar before saving option sidebars_widgets
+ *
+ * @since 9.8.0
+ *
+ * @param array $sidebars_widgets The sidebars_widgets option value to be filtered.
+ * @return array The sidebars_widgets option value to be saved
+ */
+ public function remove_wp_migrated_widgets( $sidebars_widgets ) {
+ // Hook the action only when it is a theme switch i.e. $this->old_sidebars_widgets is not empty.
+ // Ensure that the hook only runs when necessary.
+ if (
+ empty( $this->old_sidebars_widgets )
+ || ! is_array( $this->old_sidebars_widgets )
+ || ! is_array( $sidebars_widgets )
+ || ! array_key_exists( static::JETPACK_INSTANT_SEARCH_SIDEBAR, $sidebars_widgets )
+ || ! array_key_exists( static::JETPACK_INSTANT_SEARCH_SIDEBAR, $this->old_sidebars_widgets )
+ // If the new Jetpack sidebar already has fewer widgets, skip execution.
+ // Uses less than comparison for defensive programming.
+ || count( $sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ] ) <= count( $this->old_sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ] )
+ ) {
+ return $sidebars_widgets;
+ }
+
+ $lost_widgets = array_diff( $sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ], $this->old_sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ] );
+ $sidebars_widgets['wp_inactive_widgets'] = array_merge( $lost_widgets, (array) $sidebars_widgets['wp_inactive_widgets'] );
+ $sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ] = $this->old_sidebars_widgets[ static::JETPACK_INSTANT_SEARCH_SIDEBAR ];
+
+ // Reset $this->old_sidebars_widgets because we want to run the function only once after theme switch.
+ $this->old_sidebars_widgets = null;
+
+ return $sidebars_widgets;
+ }
+
+ /**
+ * Add current theme name as a body class for easier override
+ *
+ * @param string[] $classes An array of body class names.
+ *
+ * @return string[] The array of classes after filtering
+ */
+ public function add_body_class( $classes ) {
+ $classes[] = 'jps-theme-' . get_stylesheet();
+ return $classes;
+ }
+}
diff --git a/plugins/jetpack/modules/search/class-jetpack-search-customberg.php b/plugins/jetpack/modules/search/class-jetpack-search-customberg.php
new file mode 100644
index 00000000..bdc54eaa
--- /dev/null
+++ b/plugins/jetpack/modules/search/class-jetpack-search-customberg.php
@@ -0,0 +1,141 @@
+<?php
+/**
+ * A class that adds a search customization interface to wp-admin.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\Search;
+
+use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Tracking;
+use Jetpack;
+use Jetpack_Plan;
+
+/**
+ * Responsible for adding a search customization interface to wp-admin.
+ *
+ * @package Automattic\Jetpack\Search
+ */
+class Jetpack_Search_Customberg {
+ /**
+ * The singleton instance of this class.
+ *
+ * @var Jetpack_Search_Customberg
+ */
+ protected static $instance;
+
+ /**
+ * Get the singleton instance of the class.
+ *
+ * @return Jetpack_Search_Customberg
+ */
+ public static function instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new static();
+ self::$instance->init_hooks();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Adds action hooks.
+ */
+ public function init_hooks() {
+ add_action( 'admin_menu', array( $this, 'add_wp_admin_page' ), 999 );
+ }
+
+ /**
+ * Adds a wp-admin page without adding a sidebar submenu item.
+ */
+ public function add_wp_admin_page() {
+ if ( ! $this->should_add_page() ) {
+ return;
+ }
+
+ // Intentionally omits adding a submenu via the first null argument.
+ $hook = add_submenu_page(
+ null,
+ __( 'Search Settings', 'jetpack' ),
+ __( 'Search', 'jetpack' ),
+ 'manage_options', // Must be an admin.
+ 'jetpack-search-configure',
+ array( $this, 'jetpack_search_admin_page' )
+ );
+
+ add_action( "admin_print_scripts-$hook", array( $this, 'load_assets' ) );
+ add_action( 'admin_footer', array( 'Automattic\Jetpack\Search\Helper', 'print_instant_search_sidebar' ) );
+ }
+
+ /**
+ * Prints the dashboard container.
+ */
+ public function jetpack_search_admin_page() {
+ // TODO: Spin this function off into a static helper function in a helper class for code reuse.
+ $static_url = apply_filters( 'jetpack_static_url', '//en.wordpress.com/i/loading/loading-64.gif' );
+ ?>
+ <div id="jp-search-configure" class="jp-search-configure-dashboard" style="height: calc(100vh - 100px);">
+ <div class="hide-if-no-js" style="height: 100%;">
+ <img class="jp-search-loader" width="32" height="32" alt="<?php esc_attr_e( 'Loading&hellip;', 'jetpack' ); ?>" src="<?php echo esc_url( $static_url ); ?>" style="
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ "/>
+ </div>
+ <div class="hide-if-js"><?php esc_html_e( 'Your Search customization page requires JavaScript to function properly.', 'jetpack' ); ?></div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Loads assets for the customization experience.
+ */
+ public function load_assets() {
+ $this->load_assets_with_parameters( '', JETPACK__PLUGIN_FILE );
+ }
+
+ /**
+ * Loads script and style assets according to parameters provided.
+ *
+ * @param string $path_prefix - Path prefix for built assets.
+ * @param string $plugin_base_path - Base path for plugin files.
+ */
+ public function load_assets_with_parameters( $path_prefix, $plugin_base_path ) {
+ \Jetpack_Admin_Page::load_wrapper_styles();
+ Tracking::register_tracks_functions_scripts( true );
+
+ Assets::register_script(
+ 'jp-search-configure',
+ $path_prefix . '_inc/build/instant-search/jp-search-configure-main.js',
+ $plugin_base_path,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack',
+ )
+ );
+ Assets::enqueue_script( 'jp-search-configure' );
+
+ // Use wp_add_inline_script instead of wp_localize_script, see https://core.trac.wordpress.org/ticket/25280.
+ wp_add_inline_script( 'jp-search-configure', 'var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( Helper::generate_initial_javascript_state() ) ) . '"));', 'before' );
+ wp_add_inline_script(
+ 'jp-search-configure',
+ "window.jetpackSearchConfigureInit( 'jp-search-configure' )"
+ );
+ }
+
+ /**
+ * Determine if the requisite page should be added to wp-admin.
+ *
+ * @return boolean
+ */
+ protected function should_add_page() {
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ return (
+ ! $is_offline_mode && // Must be online.
+ Jetpack::is_connection_ready() && // Must be connected.
+ method_exists( 'Jetpack_Plan', 'supports' ) && Jetpack_Plan::supports( 'search' ) // Must have plan supporting Jetpack (Instant) Search.
+ );
+ }
+}
diff --git a/plugins/jetpack/modules/search/class-jetpack-search-customize.php b/plugins/jetpack/modules/search/class-jetpack-search-customize.php
new file mode 100644
index 00000000..a337e2c2
--- /dev/null
+++ b/plugins/jetpack/modules/search/class-jetpack-search-customize.php
@@ -0,0 +1,283 @@
+<?php
+/**
+ * Jetpack Search Overlay Customization
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Search\Options;
+
+// Exit if file is accessed directly.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Class to customize search on the site.
+ *
+ * @since 8.3.0
+ */
+class Jetpack_Search_Customize {
+
+ /**
+ * Class initialization.
+ *
+ * @since 8.3.0
+ */
+ public function __construct() {
+ add_action( 'customize_register', array( $this, 'customize_register' ) );
+ add_action( 'customize_controls_enqueue_scripts', array( $this, 'customize_controls_enqueue_scripts' ) );
+ }
+
+ /**
+ * Initialize Customizer controls.
+ *
+ * @since 8.3.0
+ *
+ * @param WP_Customize_Manager $wp_customize Customizer instance.
+ */
+ public function customize_register( $wp_customize ) {
+ require_once dirname( JETPACK__PLUGIN_FILE ) . '/modules/search/customize-controls/class-label-control.php';
+ require_once dirname( JETPACK__PLUGIN_FILE ) . '/modules/search/customize-controls/class-excluded-post-types-control.php';
+ $section_id = 'jetpack_search';
+ $setting_prefix = Options::OPTION_PREFIX;
+
+ $wp_customize->add_section(
+ $section_id,
+ array(
+ 'title' => esc_html__( 'Jetpack Search', 'jetpack' ),
+ 'capability' => 'edit_theme_options',
+ 'priority' => 200,
+ )
+ );
+
+ $id = $setting_prefix . 'color_theme';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => 'light',
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'label' => __( 'Theme', 'jetpack' ),
+ 'description' => __( 'Select a theme for your search overlay.', 'jetpack' ),
+ 'section' => $section_id,
+ 'type' => 'radio',
+ 'choices' => array(
+ 'light' => __( 'Light', 'jetpack' ),
+ 'dark' => __( 'Dark', 'jetpack' ),
+ ),
+ )
+ );
+
+ $id = $setting_prefix . 'result_format';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => 'minimal',
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'label' => __( 'Result Format', 'jetpack' ),
+ 'description' => __( 'Choose how the search results look.', 'jetpack' ),
+ 'section' => $section_id,
+ 'type' => 'select',
+ 'choices' => array(
+ 'minimal' => __( 'Minimal', 'jetpack' ),
+ 'expanded' => __( 'Expanded (shows images)', 'jetpack' ),
+ 'product' => __( 'Product (for WooCommerce stores)', 'jetpack' ),
+ ),
+ )
+ );
+
+ $id = $setting_prefix . 'default_sort';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => 'relevance',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'choices' => array(
+ 'relevance' => __( 'Relevance (recommended)', 'jetpack' ),
+ 'newest' => __( 'Newest first', 'jetpack' ),
+ 'oldest' => __( 'Oldest first', 'jetpack' ),
+ ),
+ 'description' => __( 'Pick the initial sort for your search results.', 'jetpack' ),
+ 'label' => __( 'Default Sort', 'jetpack' ),
+ 'section' => $section_id,
+ 'type' => 'select',
+ )
+ );
+
+ $id = $setting_prefix . 'overlay_trigger';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => Options::OVERLAY_TRIGGER_IMMEDIATE,
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'label' => __( 'Search Input Overlay Trigger', 'jetpack' ),
+ 'description' => __( 'Select when your overlay should appear.', 'jetpack' ),
+ 'section' => $section_id,
+ 'type' => 'select',
+ 'choices' => array(
+ Options::OVERLAY_TRIGGER_IMMEDIATE => __( 'Open when user starts typing', 'jetpack' ),
+ Options::OVERLAY_TRIGGER_RESULTS => __( 'Open when results are available', 'jetpack' ),
+ Options::OVERLAY_TRIGGER_SUBMIT => __( 'Open when user submits the form', 'jetpack' ),
+ ),
+ )
+ );
+
+ $id = $setting_prefix . 'excluded_post_types';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => '',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ new Excluded_Post_Types_Control(
+ $wp_customize,
+ $id,
+ array(
+ 'description' => __( 'Choose post types to exclude from search results. You must leave at least one post type unchecked.', 'jetpack' ),
+ 'label' => __( 'Excluded Post Types', 'jetpack' ),
+ 'section' => $section_id,
+ )
+ )
+ );
+
+ $id = $setting_prefix . 'highlight_color';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => '#FFC',
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ new WP_Customize_Color_Control(
+ $wp_customize,
+ $id,
+ array(
+ 'label' => __( 'Highlight Search Terms', 'jetpack' ),
+ 'description' => __( 'Choose a color to highlight matching search terms.', 'jetpack' ),
+ 'section' => $section_id,
+ )
+ )
+ );
+
+ $id = $setting_prefix . 'additional_settings_placeholder';
+ $wp_customize->add_setting(
+ $id,
+ array( 'type' => 'option' )
+ );
+ $wp_customize->add_control(
+ new Label_Control(
+ $wp_customize,
+ $id,
+ array(
+ 'label' => __( 'Additional Jetpack Search Settings', 'jetpack' ),
+ 'section' => $section_id,
+ )
+ )
+ );
+
+ $id = $setting_prefix . 'enable_sort';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => '1',
+ 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
+ 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'label' => __( 'Show sort selector', 'jetpack' ),
+ 'section' => $section_id,
+ 'type' => 'checkbox',
+ )
+ );
+
+ $id = $setting_prefix . 'inf_scroll';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => '1',
+ 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
+ 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'type' => 'checkbox',
+ 'section' => $section_id,
+ 'label' => __( 'Enable infinite scrolling', 'jetpack' ),
+ )
+ );
+
+ $id = $setting_prefix . 'show_powered_by';
+ $wp_customize->add_setting(
+ $id,
+ array(
+ 'default' => '1',
+ 'sanitize_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value' ),
+ 'sanitize_js_callback' => array( 'Automattic\Jetpack\Search\Helper', 'sanitize_checkbox_value_for_js' ),
+ 'transport' => 'postMessage',
+ 'type' => 'option',
+ )
+ );
+ $wp_customize->add_control(
+ $id,
+ array(
+ 'type' => 'checkbox',
+ 'section' => $section_id,
+ 'label' => __( 'Display "Powered by Jetpack"', 'jetpack' ),
+ )
+ );
+ }
+
+ /**
+ * Enqueue assets for Customizer controls.
+ *
+ * @since 9.6.0
+ */
+ public function customize_controls_enqueue_scripts() {
+ $script_relative_path = 'modules/search/customize-controls/customize-controls.js';
+ $script_version = Automattic\Jetpack\Search\Helper::get_asset_version( $script_relative_path );
+ $script_path = plugins_url( $script_relative_path, JETPACK__PLUGIN_FILE );
+ wp_enqueue_script(
+ 'jetpack-instant-search-customizer',
+ $script_path,
+ array( 'customize-controls' ),
+ $script_version,
+ true
+ );
+ }
+}
diff --git a/plugins/jetpack/modules/search/class.jetpack-search.php b/plugins/jetpack/modules/search/class.jetpack-search.php
index 1e49c51e..fc276a02 100644
--- a/plugins/jetpack/modules/search/class.jetpack-search.php
+++ b/plugins/jetpack/modules/search/class.jetpack-search.php
@@ -9,7 +9,7 @@
*/
use Automattic\Jetpack\Connection\Client;
-use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Search\Helper;
/**
* The main class for the Jetpack Search module.
@@ -138,7 +138,12 @@ class Jetpack_Search {
*/
public static function instance() {
if ( ! isset( self::$instance ) ) {
- self::$instance = new Jetpack_Search();
+ if ( Automattic\Jetpack\Search\Options::is_instant_enabled() ) {
+ require_once __DIR__ . '/class-jetpack-instant-search.php';
+ self::$instance = new Jetpack_Instant_Search();
+ } else {
+ self::$instance = new Jetpack_Search();
+ }
self::$instance->setup();
}
@@ -154,7 +159,7 @@ class Jetpack_Search {
* @since 5.0.0
*/
public function setup() {
- if ( ! Jetpack::is_active() || ! $this->is_search_supported() ) {
+ if ( ! Jetpack::is_connection_ready() || ! $this->is_search_supported() ) {
/**
* Fires when the Jetpack Search fails and would fallback to MySQL.
*
@@ -176,14 +181,27 @@ class Jetpack_Search {
return;
}
- require_once dirname( __FILE__ ) . '/class.jetpack-search-helpers.php';
- require_once dirname( __FILE__ ) . '/class.jetpack-search-template-tags.php';
- require_once JETPACK__PLUGIN_DIR . 'modules/widgets/search.php';
-
+ $this->load_php();
$this->init_hooks();
}
/**
+ * Loads the php for this version of search
+ *
+ * @since 8.3.0
+ */
+ public function load_php() {
+ $this->base_load_php();
+ }
+
+ /**
+ * Loads the PHP common to all search. Should be called from extending classes.
+ */
+ protected function base_load_php() {
+ require_once JETPACK__PLUGIN_DIR . 'modules/widgets/search.php';
+ }
+
+ /**
* Setup the various hooks needed for the plugin to take over search duties.
*
* @since 5.0.0
@@ -200,7 +218,6 @@ class Jetpack_Search {
add_action( 'init', array( $this, 'set_filters_from_widgets' ) );
add_action( 'pre_get_posts', array( $this, 'maybe_add_post_type_as_var' ) );
- add_action( 'wp_enqueue_scripts', array( $this, 'load_assets' ) );
} else {
add_action( 'update_option', array( $this, 'track_widget_updates' ), 10, 3 );
}
@@ -209,81 +226,6 @@ class Jetpack_Search {
}
/**
- * Loads assets for Jetpack Instant Search Prototype featuring Search As You Type experience.
- */
- public function load_assets() {
- if ( Constants::is_true( 'JETPACK_SEARCH_PROTOTYPE' ) ) {
- $script_relative_path = '_inc/build/instant-search/jp-search.bundle.js';
- if ( file_exists( JETPACK__PLUGIN_DIR . $script_relative_path ) ) {
- $script_version = self::get_asset_version( $script_relative_path );
- $script_path = plugins_url( $script_relative_path, JETPACK__PLUGIN_FILE );
- wp_enqueue_script( 'jetpack-instant-search', $script_path, array(), $script_version, true );
- $this->load_and_initialize_tracks();
-
- $widget_options = Jetpack_Search_Helpers::get_widgets_from_option();
- if ( is_array( $widget_options ) ) {
- $widget_options = end( $widget_options );
- }
-
- $filters = Jetpack_Search_Helpers::get_filters_from_widgets();
- $widgets = array();
- foreach ( $filters as $key => $filter ) {
- if ( ! isset( $widgets[ $filter['widget_id'] ] ) ) {
- $widgets[ $filter['widget_id'] ]['filters'] = array();
- $widgets[ $filter['widget_id'] ]['widget_id'] = $filter['widget_id'];
- }
- $new_filter = $filter;
- $new_filter['filter_id'] = $key;
- $widgets[ $filter['widget_id'] ]['filters'][] = $new_filter;
- }
-
- $post_type_objs = get_post_types( array(), 'objects' );
- $post_type_labels = array();
- foreach ( $post_type_objs as $key => $obj ) {
- $post_type_labels[ $key ] = array(
- 'singular_name' => $obj->labels->singular_name,
- 'name' => $obj->labels->name,
- );
- }
- // This is probably a temporary filter for testing the prototype.
- $options = array(
- 'enableLoadOnScroll' => false,
- 'homeUrl' => home_url(),
- 'locale' => str_replace( '_', '-', get_locale() ),
- 'postTypeFilters' => $widget_options['post_types'],
- 'postTypes' => $post_type_labels,
- 'siteId' => Jetpack::get_option( 'id' ),
- 'sort' => $widget_options['sort'],
- 'widgets' => array_values( $widgets ),
- );
- /**
- * Customize Instant Search Options.
- *
- * @module search
- *
- * @since 7.7.0
- *
- * @param array $options Array of parameters used in Instant Search queries.
- */
- $options = apply_filters( 'jetpack_instant_search_options', $options );
-
- wp_localize_script(
- 'jetpack-instant-search',
- 'JetpackInstantSearchOptions',
- $options
- );
- }
-
- $style_relative_path = '_inc/build/instant-search/instant-search.min.css';
- if ( file_exists( JETPACK__PLUGIN_DIR . $script_relative_path ) ) {
- $style_version = self::get_asset_version( $style_relative_path );
- $style_path = plugins_url( $style_relative_path, JETPACK__PLUGIN_FILE );
- wp_enqueue_style( 'jetpack-instant-search', $style_path, array(), $style_version );
- }
- }
- }
-
- /**
* Is search supported on the current plan
*
* @since 6.0
@@ -308,25 +250,6 @@ class Jetpack_Search {
}
/**
- * Loads scripts for Tracks analytics library
- */
- public function load_and_initialize_tracks() {
- wp_enqueue_script( 'jp-tracks', '//stats.wp.com/w.js', array(), gmdate( 'YW' ), true );
- }
-
- /**
- * Get the version number to use when loading the file. Allows us to bypass cache when developing.
- *
- * @param string $file Path of the file we are looking for.
- * @return string $script_version Version number.
- */
- public static function get_asset_version( $file ) {
- return Jetpack::is_development_version() && file_exists( JETPACK__PLUGIN_DIR . $file )
- ? filemtime( JETPACK__PLUGIN_DIR . $file )
- : JETPACK__VERSION;
- }
-
- /**
* When an Elasticsearch query fails, this stores it and enqueues some debug information in the footer.
*
* @since 5.6.0
@@ -375,7 +298,7 @@ class Jetpack_Search {
if ( $this->last_query_info ) {
printf(
'<!-- Jetpack Search took %s ms, ES time %s ms -->',
- intval( $this->last_query_info['elapsed_time'] ),
+ (int) $this->last_query_info['elapsed_time'],
esc_html( $this->last_query_info['es_time'] )
);
@@ -416,12 +339,12 @@ class Jetpack_Search {
* being defined at the code level.
*
* @since 5.7.0
- * @deprecated 5.8.0 Use Jetpack_Search_Helpers::are_filters_by_widget_disabled() directly.
+ * @deprecated 5.8.0 Use Helper::are_filters_by_widget_disabled() directly.
*
* @return bool
*/
public function are_filters_by_widget_disabled() {
- return Jetpack_Search_Helpers::are_filters_by_widget_disabled();
+ return Helper::are_filters_by_widget_disabled();
}
/**
@@ -431,11 +354,11 @@ class Jetpack_Search {
* @since 5.7.0
*/
public function set_filters_from_widgets() {
- if ( Jetpack_Search_Helpers::are_filters_by_widget_disabled() ) {
+ if ( Helper::are_filters_by_widget_disabled() ) {
return;
}
- $filters = Jetpack_Search_Helpers::get_filters_from_widgets();
+ $filters = Helper::get_filters_from_widgets();
if ( ! empty( $filters ) ) {
$this->set_filters( $filters );
@@ -626,6 +549,7 @@ class Jetpack_Search {
'post_type' => 'any',
'ignore_sticky_posts' => true,
'suppress_filters' => true,
+ 'posts_per_page' => $query->get( 'posts_per_page' ),
);
$posts_query = new WP_Query( $args );
@@ -655,8 +579,8 @@ class Jetpack_Search {
$page = ( $query->get( 'paged' ) ) ? absint( $query->get( 'paged' ) ) : 1;
// Get maximum allowed offset and posts per page values for the API.
- $max_offset = Jetpack_Search_Helpers::get_max_offset();
- $max_posts_per_page = Jetpack_Search_Helpers::get_max_posts_per_page();
+ $max_offset = Helper::get_max_offset();
+ $max_posts_per_page = Helper::get_max_posts_per_page();
$posts_per_page = $query->get( 'posts_per_page' );
if ( $posts_per_page > $max_posts_per_page ) {
@@ -700,7 +624,7 @@ class Jetpack_Search {
$es_wp_query_args = apply_filters( 'jetpack_search_es_wp_query_args', $es_wp_query_args, $query );
// If page * posts_per_page is greater than our max offset, send a 404. This is necessary because the offset is
- // capped at Jetpack_Search_Helpers::get_max_offset(), so a high page would always return the last page of results otherwise.
+ // capped at Helper::get_max_offset(), so a high page would always return the last page of results otherwise.
if ( ( $es_wp_query_args['paged'] * $es_wp_query_args['posts_per_page'] ) > $max_offset ) {
$query->set_404();
@@ -771,7 +695,7 @@ class Jetpack_Search {
}
$es_args = $this->last_query_info['args'];
- $builder = new Jetpack_WPES_Query_Builder();
+ $builder = new Automattic\Jetpack\Search\WPES\Query_Builder();
$this->add_aggregations_to_es_query_builder( $this->aggregations, $builder );
$es_args['aggregations'] = $builder->build_aggregation();
@@ -878,7 +802,7 @@ class Jetpack_Search {
* @module search
*/
public function action__widgets_init() {
- require_once dirname( __FILE__ ) . '/class.jetpack-search-widget-filters.php';
+ require_once __DIR__ . '/class.jetpack-search-widget-filters.php';
register_widget( 'Jetpack_Search_Widget_Filters' );
}
@@ -923,7 +847,7 @@ class Jetpack_Search {
$date_start = $query->get( 'year' ) . '-' . $date_monthnum . '-' . $date_day . ' 00:00:00';
$date_end = $query->get( 'year' ) . '-' . $date_monthnum . '-' . $date_day . ' 23:59:59';
} else {
- $days_in_month = date( 't', mktime( 0, 0, 0, $query->get( 'monthnum' ), 14, $query->get( 'year' ) ) ); // 14 = middle of the month so no chance of DST issues
+ $days_in_month = gmdate( 't', mktime( 0, 0, 0, $query->get( 'monthnum' ), 14, $query->get( 'year' ) ) ); // 14 = middle of the month so no chance of DST issues
$date_start = $query->get( 'year' ) . '-' . $date_monthnum . '-01 00:00:00';
$date_end = $query->get( 'year' ) . '-' . $date_monthnum . '-' . $days_in_month . ' 23:59:59';
@@ -953,8 +877,6 @@ class Jetpack_Search {
* @return array Array of ES style query arguments.
*/
public function convert_wp_es_to_es_args( array $args ) {
- jetpack_require_lib( 'jetpack-wpes-query-builder/jetpack-wpes-query-parser' );
-
$defaults = array(
'blog_id' => get_current_blog_id(),
'query' => null, // Search phrase.
@@ -982,7 +904,7 @@ class Jetpack_Search {
$args = wp_parse_args( $args, $defaults );
- $parser = new Jetpack_WPES_Search_Query_Parser(
+ $parser = new Automattic\Jetpack\Search\WPES\Query_Parser(
$args['query'],
/**
* Filter the languages used by Jetpack Search's Query Parser.
@@ -1135,7 +1057,7 @@ class Jetpack_Search {
$decay_params = apply_filters(
'jetpack_search_recency_score_decay',
array(
- 'origin' => date( 'Y-m-d' ),
+ 'origin' => gmdate( 'Y-m-d' ),
'scale' => '360d',
'decay' => 0.9,
),
@@ -1164,7 +1086,7 @@ class Jetpack_Search {
$es_query_args['from'] = max( 0, ( absint( $args['paged'] ) - 1 ) * $es_query_args['size'] );
}
- $es_query_args['from'] = min( $es_query_args['from'], Jetpack_Search_Helpers::get_max_offset() );
+ $es_query_args['from'] = min( $es_query_args['from'], Helper::get_max_offset() );
if ( ! is_array( $args['author_name'] ) ) {
$args['author_name'] = array( $args['author_name'] );
@@ -1346,15 +1268,18 @@ class Jetpack_Search {
}
/**
- * Given an array of aggregations, parse and add them onto the Jetpack_WPES_Query_Builder object for use in Elasticsearch.
+ * Given an array of aggregations, parse and add them onto the query builder object for use in Elasticsearch.
*
* @since 5.0.0
*
- * @param array $aggregations Array of aggregations (filters) to add to the Jetpack_WPES_Query_Builder.
- * @param Jetpack_WPES_Query_Builder $builder The builder instance that is creating the Elasticsearch query.
+ * @param array $aggregations Array of aggregations (filters) to add to the query builder.
+ * @param Automattic\Jetpack\Search\WPES\Query_Builder $builder The builder instance that is creating the Elasticsearch query.
*/
- public function add_aggregations_to_es_query_builder( array $aggregations, Jetpack_WPES_Query_Builder $builder ) {
+ public function add_aggregations_to_es_query_builder( array $aggregations, $builder ) {
foreach ( $aggregations as $label => $aggregation ) {
+ if ( ! isset( $aggregation['type'] ) ) {
+ continue;
+ }
switch ( $aggregation['type'] ) {
case 'taxonomy':
$this->add_taxonomy_aggregation_to_es_query_builder( $aggregation, $label, $builder );
@@ -1375,15 +1300,15 @@ class Jetpack_Search {
}
/**
- * Given an individual taxonomy aggregation, add it to the Jetpack_WPES_Query_Builder object for use in Elasticsearch.
+ * Given an individual taxonomy aggregation, add it to the query builder object for use in Elasticsearch.
*
* @since 5.0.0
*
- * @param array $aggregation The aggregation to add to the query builder.
- * @param string $label The 'label' (unique id) for this aggregation.
- * @param Jetpack_WPES_Query_Builder $builder The builder instance that is creating the Elasticsearch query.
+ * @param array $aggregation The aggregation to add to the query builder.
+ * @param string $label The 'label' (unique id) for this aggregation.
+ * @param Automattic\Jetpack\Search\WPES\Query_Builder $builder The builder instance that is creating the Elasticsearch query.
*/
- public function add_taxonomy_aggregation_to_es_query_builder( array $aggregation, $label, Jetpack_WPES_Query_Builder $builder ) {
+ public function add_taxonomy_aggregation_to_es_query_builder( array $aggregation, $label, $builder ) {
$field = null;
switch ( $aggregation['taxonomy'] ) {
@@ -1412,15 +1337,15 @@ class Jetpack_Search {
}
/**
- * Given an individual post_type aggregation, add it to the Jetpack_WPES_Query_Builder object for use in Elasticsearch.
+ * Given an individual post_type aggregation, add it to the query builder object for use in Elasticsearch.
*
* @since 5.0.0
*
- * @param array $aggregation The aggregation to add to the query builder.
- * @param string $label The 'label' (unique id) for this aggregation.
- * @param Jetpack_WPES_Query_Builder $builder The builder instance that is creating the Elasticsearch query.
+ * @param array $aggregation The aggregation to add to the query builder.
+ * @param string $label The 'label' (unique id) for this aggregation.
+ * @param Automattic\Jetpack\Search\WPES\Query_Builder $builder The builder instance that is creating the Elasticsearch query.
*/
- public function add_post_type_aggregation_to_es_query_builder( array $aggregation, $label, Jetpack_WPES_Query_Builder $builder ) {
+ public function add_post_type_aggregation_to_es_query_builder( array $aggregation, $label, $builder ) {
$builder->add_aggs(
$label,
array(
@@ -1433,22 +1358,22 @@ class Jetpack_Search {
}
/**
- * Given an individual date_histogram aggregation, add it to the Jetpack_WPES_Query_Builder object for use in Elasticsearch.
+ * Given an individual date_histogram aggregation, add it to the query builder object for use in Elasticsearch.
*
* @since 5.0.0
*
- * @param array $aggregation The aggregation to add to the query builder.
- * @param string $label The 'label' (unique id) for this aggregation.
- * @param Jetpack_WPES_Query_Builder $builder The builder instance that is creating the Elasticsearch query.
+ * @param array $aggregation The aggregation to add to the query builder.
+ * @param string $label The 'label' (unique id) for this aggregation.
+ * @param Automattic\Jetpack\Search\WPES\Query_Builder $builder The builder instance that is creating the Elasticsearch query.
*/
- public function add_date_histogram_aggregation_to_es_query_builder( array $aggregation, $label, Jetpack_WPES_Query_Builder $builder ) {
+ public function add_date_histogram_aggregation_to_es_query_builder( array $aggregation, $label, $builder ) {
$args = array(
'interval' => $aggregation['interval'],
'field' => ( ! empty( $aggregation['field'] ) && 'post_date_gmt' === $aggregation['field'] ) ? 'date_gmt' : 'date',
);
if ( isset( $aggregation['min_doc_count'] ) ) {
- $args['min_doc_count'] = intval( $aggregation['min_doc_count'] );
+ $args['min_doc_count'] = (int) $aggregation['min_doc_count'];
} else {
$args['min_doc_count'] = 1;
}
@@ -1515,21 +1440,6 @@ class Jetpack_Search {
}
/**
- * Set the search's facets (deprecated).
- *
- * @deprecated 5.0 Please use Jetpack_Search::set_filters() instead.
- *
- * @see Jetpack_Search::set_filters()
- *
- * @param array $facets Array of facets to apply to the search.
- */
- public function set_facets( array $facets ) {
- _deprecated_function( __METHOD__, 'jetpack-5.0', 'Jetpack_Search::set_filters()' );
-
- $this->set_filters( $facets );
- }
-
- /**
* Get the raw Aggregation results from the Elasticsearch response.
*
* @since 5.0.0
@@ -1551,21 +1461,6 @@ class Jetpack_Search {
}
/**
- * Get the raw Facet results from the Elasticsearch response.
- *
- * @deprecated 5.0 Please use Jetpack_Search::get_search_aggregations_results() instead.
- *
- * @see Jetpack_Search::get_search_aggregations_results()
- *
- * @return array Array of Facets performed on the search.
- */
- public function get_search_facets() {
- _deprecated_function( __METHOD__, 'jetpack-5.0', 'Jetpack_Search::get_search_aggregations_results()' );
-
- return $this->get_search_aggregations_results();
- }
-
- /**
* Get the results of the Filters performed, including the number of matching documents.
*
* Returns an array of Filters (keyed by $label, as passed to Jetpack_Search::set_filters()), containing the Filter and all resulting
@@ -1676,12 +1571,12 @@ class Jetpack_Search {
$slug_count = count( $existing_term_slugs );
if ( $slug_count > 1 ) {
- $remove_url = Jetpack_Search_Helpers::add_query_arg(
+ $remove_url = Helper::add_query_arg(
$tax_query_var,
rawurlencode( implode( '+', array_diff( $existing_term_slugs, array( $item['key'] ) ) ) )
);
} else {
- $remove_url = Jetpack_Search_Helpers::remove_query_arg( $tax_query_var );
+ $remove_url = Helper::remove_query_arg( $tax_query_var );
}
}
@@ -1714,12 +1609,12 @@ class Jetpack_Search {
// For the right 'remove filter' url, we need to remove the post type from the array, or remove the param entirely if it's the only one.
if ( $post_type_count > 1 ) {
- $remove_url = Jetpack_Search_Helpers::add_query_arg(
+ $remove_url = Helper::add_query_arg(
'post_type',
rawurlencode( implode( ',', array_diff( $post_types, array( $item['key'] ) ) ) )
);
} else {
- $remove_url = Jetpack_Search_Helpers::remove_query_arg( 'post_type' );
+ $remove_url = Helper::remove_query_arg( 'post_type' );
}
}
@@ -1734,7 +1629,7 @@ class Jetpack_Search {
switch ( $this->aggregations[ $label ]['interval'] ) {
case 'year':
- $year = (int) date( 'Y', $timestamp );
+ $year = (int) gmdate( 'Y', $timestamp );
$query_vars = array(
'year' => $year,
@@ -1748,14 +1643,14 @@ class Jetpack_Search {
if ( ! empty( $current_year ) && (int) $current_year === $year ) {
$active = true;
- $remove_url = Jetpack_Search_Helpers::remove_query_arg( array( 'year', 'monthnum', 'day' ) );
+ $remove_url = Helper::remove_query_arg( array( 'year', 'monthnum', 'day' ) );
}
break;
case 'month':
- $year = (int) date( 'Y', $timestamp );
- $month = (int) date( 'n', $timestamp );
+ $year = (int) gmdate( 'Y', $timestamp );
+ $month = (int) gmdate( 'n', $timestamp );
$query_vars = array(
'year' => $year,
@@ -1763,22 +1658,22 @@ class Jetpack_Search {
'day' => false,
);
- $name = date( 'F Y', $timestamp );
+ $name = gmdate( 'F Y', $timestamp );
// Is this month currently selected?
if ( ! empty( $current_year ) && (int) $current_year === $year &&
! empty( $current_month ) && (int) $current_month === $month ) {
$active = true;
- $remove_url = Jetpack_Search_Helpers::remove_query_arg( array( 'year', 'monthnum' ) );
+ $remove_url = Helper::remove_query_arg( array( 'year', 'monthnum' ) );
}
break;
case 'day':
- $year = (int) date( 'Y', $timestamp );
- $month = (int) date( 'n', $timestamp );
- $day = (int) date( 'j', $timestamp );
+ $year = (int) gmdate( 'Y', $timestamp );
+ $month = (int) gmdate( 'n', $timestamp );
+ $day = (int) gmdate( 'j', $timestamp );
$query_vars = array(
'year' => $year,
@@ -1786,7 +1681,7 @@ class Jetpack_Search {
'day' => $day,
);
- $name = date( 'F jS, Y', $timestamp );
+ $name = gmdate( 'F jS, Y', $timestamp );
// Is this day currently selected?
if ( ! empty( $current_year ) && (int) $current_year === $year &&
@@ -1794,7 +1689,7 @@ class Jetpack_Search {
! empty( $current_day ) && (int) $current_day === $day ) {
$active = true;
- $remove_url = Jetpack_Search_Helpers::remove_query_arg( array( 'day' ) );
+ $remove_url = Helper::remove_query_arg( array( 'day' ) );
}
break;
@@ -1813,7 +1708,7 @@ class Jetpack_Search {
$url_params = urlencode_deep( $query_vars );
$aggregation_data[ $label ]['buckets'][] = array(
- 'url' => Jetpack_Search_Helpers::add_query_arg( $url_params ),
+ 'url' => Helper::add_query_arg( $url_params ),
'query_vars' => $query_vars,
'name' => $name,
'count' => $item['doc_count'],
@@ -1843,21 +1738,6 @@ class Jetpack_Search {
}
/**
- * Get the results of the facets performed.
- *
- * @deprecated 5.0 Please use Jetpack_Search::get_filters() instead.
- *
- * @see Jetpack_Search::get_filters()
- *
- * @return array $facets Array of facets applied and info about them.
- */
- public function get_search_facet_data() {
- _deprecated_function( __METHOD__, 'jetpack-5.0', 'Jetpack_Search::get_filters()' );
-
- return $this->get_filters();
- }
-
- /**
* Get the filters that are currently applied to this search.
*
* @since 5.0.0
@@ -1887,21 +1767,6 @@ class Jetpack_Search {
}
/**
- * Get the filters that are currently applied to this search.
- *
- * @deprecated 5.0 Please use Jetpack_Search::get_active_filter_buckets() instead.
- *
- * @see Jetpack_Search::get_active_filter_buckets()
- *
- * @return array Array of filters that were applied.
- */
- public function get_current_filters() {
- _deprecated_function( __METHOD__, 'jetpack-5.0', 'Jetpack_Search::get_active_filter_buckets()' );
-
- return $this->get_active_filter_buckets();
- }
-
- /**
* Calculate the right query var to use for a given taxonomy.
*
* Allows custom code to modify the GET var that is used to represent a given taxonomy, via the jetpack_search_taxonomy_query_var filter.
@@ -1976,7 +1841,7 @@ class Jetpack_Search {
return;
}
- $event = Jetpack_Search_Helpers::get_widget_tracks_value( $old_value, $new_value );
+ $event = Helper::get_widget_tracks_value( $old_value, $new_value );
if ( ! $event ) {
return;
}
@@ -1993,11 +1858,9 @@ class Jetpack_Search {
* Moves any active search widgets to the inactive category.
*
* @since 5.9.0
- *
- * @param string $module Unused. The Jetpack module being disabled.
*/
- public function move_search_widgets_to_inactive( $module ) {
- if ( ! is_active_widget( false, false, Jetpack_Search_Helpers::FILTER_WIDGET_BASE, true ) ) {
+ public function move_search_widgets_to_inactive() {
+ if ( ! is_active_widget( false, false, Helper::FILTER_WIDGET_BASE, true ) ) {
return;
}
@@ -2016,7 +1879,7 @@ class Jetpack_Search {
if ( is_array( $widgets ) ) {
foreach ( $widgets as $key => $widget ) {
- if ( _get_widget_id_base( $widget ) === Jetpack_Search_Helpers::FILTER_WIDGET_BASE ) {
+ if ( _get_widget_id_base( $widget ) === Helper::FILTER_WIDGET_BASE ) {
$changed = true;
array_unshift( $sidebars_widgets['wp_inactive_widgets'], $widget );
diff --git a/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.css b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.css
new file mode 100644
index 00000000..561f8e37
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.css
@@ -0,0 +1,5 @@
+.customize-control-excluded-post-type-checkbox-container {
+ line-height: 1.6;
+ padding-top: 6px;
+ padding-bottom: 6px;
+} \ No newline at end of file
diff --git a/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.js b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.js
new file mode 100644
index 00000000..d3c48c7a
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.js
@@ -0,0 +1,23 @@
+/* eslint-disable no-var */
+
+jQuery( document ).ready( function ( $ ) {
+ // Refresh our hidden field value if any checkboxes change
+ $( '.customize-control-excluded-post-type-checkbox' ).on( 'change', function () {
+ var $parent = $( this ).parent().parent();
+ var newValue = $parent
+ .find( '.customize-control-excluded-post-type-checkbox:checked' )
+ .map( function () {
+ return $( this ).val();
+ } )
+ .toArray();
+ $parent.find( '.customize-control-excluded-post-types' ).val( newValue ).trigger( 'change' );
+
+ // Set the last unchecked checkbox disabled to prvevent user from excluding all post types
+ var excludedPostTypesCount = $parent.find(
+ '.customize-control-excluded-post-type-checkbox:not(:checked)'
+ ).length;
+ $parent
+ .find( '.customize-control-excluded-post-type-checkbox:not(:checked)' )
+ .prop( 'disabled', excludedPostTypesCount <= 1 );
+ } );
+} );
diff --git a/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.php b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.php
new file mode 100644
index 00000000..5b5d0a1f
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/class-excluded-post-types-control.php
@@ -0,0 +1,128 @@
+<?php
+/**
+ * A multi-checkbox Customizer control for use with Jetpack Search configuration
+ *
+ * @package automattic/jetpack
+ * @since 8.8.0
+ */
+
+use Automattic\Jetpack\Search\Helper;
+
+/**
+ * Label Control class.
+ */
+class Excluded_Post_Types_Control extends WP_Customize_Control {
+ /**
+ * Control type.
+ *
+ * @since 8.8.0
+ * @var string
+ */
+ public $type = 'excluded-post-types';
+
+ /**
+ * Enqueue styles related to this control.
+ */
+ public function enqueue() {
+ $style_relative_path = 'modules/search/customize-controls/class-excluded-post-types-control.css';
+ $style_version = Helper::get_asset_version( $style_relative_path );
+ $style_path = plugins_url( $style_relative_path, JETPACK__PLUGIN_FILE );
+ wp_enqueue_style( 'jetpack-instant-search-customizer-excluded-post-types', $style_path, array(), $style_version );
+
+ $script_relative_path = 'modules/search/customize-controls/class-excluded-post-types-control.js';
+ $script_version = Helper::get_asset_version( $script_relative_path );
+ $script_path = plugins_url( $script_relative_path, JETPACK__PLUGIN_FILE );
+ wp_enqueue_script( 'jetpack-instant-search-customizer-excluded-post-types', $script_path, array( 'customize-controls' ), $script_version, true );
+ }
+
+ /**
+ * Checks if the post type has been selected.
+ *
+ * @since 8.8.0
+ * @return array $post_types An array of strings representing post type names.
+ */
+ public function get_arrayed_value() {
+ return explode( ',', $this->value() );
+ }
+
+ /**
+ * Generates a customizer settings ID for a given post type.
+ *
+ * @since 8.8.0
+ * @param object $post_type Post type object returned from get_post_types.
+ * @return string $customizer_id Customizer setting ID.
+ */
+ public function generate_post_type_customizer_id( $post_type ) {
+ return '_customize-post-type-input-' . $post_type->name;
+ }
+
+ /**
+ * Checks if the post type has been selected.
+ *
+ * @since 8.8.0
+ * @param object $post_type Post type object returned from get_post_types.
+ * @return array $ids Post type => post type customizer ID object.
+ */
+ public function is_checked( $post_type ) {
+ return in_array( $post_type->name, $this->get_arrayed_value(), true );
+ }
+
+ /**
+ * Override rendering for custom class name; omit element ID.
+ */
+ protected function render() {
+ $id = 'customize-control-' . str_replace( array( '[', ']' ), array( '-', '' ), $this->id );
+ $class = 'customize-control customize-control-excluded-post-types';
+
+ printf( '<li id="%s" class="%s">', esc_attr( $id ), esc_attr( $class ) );
+ $this->render_content();
+ echo '</li>';
+ }
+
+ /**
+ * Override content rendering.
+ */
+ protected function render_content() {
+ $post_types = get_post_types( array( 'exclude_from_search' => false ), 'objects' );
+ if ( count( $post_types ) === 0 ) {
+ return;
+ }
+ ?>
+ <label class="customize-control-title">
+ <?php echo esc_html( $this->label ); ?>
+ </label>
+ <?php if ( ! empty( $this->description ) ) : ?>
+ <span class="description customize-control-description">
+ <?php echo esc_html( $this->description ); ?>
+ </span>
+ <?php endif ?>
+ <input
+ class="customize-control-excluded-post-types"
+ id="<?php echo esc_attr( $this->id ); ?>"
+ name="<?php echo esc_attr( $this->id ); ?>"
+ type="hidden"
+ value="<?php echo esc_attr( $this->value() ); ?>"
+ <?php $this->link(); ?>
+ />
+ <?php
+
+ $is_only_one_unchecked = ( count( $post_types ) - 1 ) === count( $this->get_arrayed_value() );
+
+ foreach ( $post_types as $post_type ) {
+ $input_id = Helper::generate_post_type_customizer_id( $post_type );
+ ?>
+ <div class="customize-control-excluded-post-type-checkbox-container">
+ <input
+ class="customize-control-excluded-post-type-checkbox"
+ id="<?php echo esc_attr( $input_id ); ?>"
+ type="checkbox"
+ value="<?php echo esc_attr( $post_type->name ); ?>"
+ <?php checked( $this->is_checked( $post_type ) ); ?>
+ <?php disabled( ! $this->is_checked( $post_type ) && $is_only_one_unchecked ); ?>
+ />
+ <label for="<?php echo esc_attr( $input_id ); ?>"><?php echo esc_html( $post_type->label ); ?></label>
+ </div>
+ <?php
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/search/customize-controls/class-label-control.css b/plugins/jetpack/modules/search/customize-controls/class-label-control.css
new file mode 100644
index 00000000..3f1c7cc2
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/class-label-control.css
@@ -0,0 +1,18 @@
+#sub-accordion-section-jetpack_search .customize-control {
+ margin-bottom: 14px;
+}
+
+#sub-accordion-section-jetpack_search .customize-label-control,
+#sub-accordion-section-jetpack_search .customize-control-checkbox {
+ margin-bottom: 0;
+}
+
+#sub-accordion-section-jetpack_search .customize-control-checkbox ~ .customize-label-control {
+ margin-top: 12px;
+}
+
+#sub-accordion-section-jetpack_search .customize-control-radio {
+ margin-bottom: 6px;
+ padding-bottom: 0;
+ padding-top: 0;
+}
diff --git a/plugins/jetpack/modules/search/customize-controls/class-label-control.php b/plugins/jetpack/modules/search/customize-controls/class-label-control.php
new file mode 100644
index 00000000..a923fa8c
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/class-label-control.php
@@ -0,0 +1,48 @@
+<?php
+/**
+ * A label-only Customizer control for use with Jetpack Search configuration
+ *
+ * @package automattic/jetpack
+ * @since 8.6.0
+ */
+
+/**
+ * Label Control class.
+ */
+class Label_Control extends WP_Customize_Control {
+ /**
+ * Enqueue styles related to this control.
+ */
+ public function enqueue() {
+ $style_relative_path = 'modules/search/customize-controls/class-label-control.css';
+ $style_version = Automattic\Jetpack\Search\Helper::get_asset_version( $style_relative_path );
+ $style_path = plugins_url( $style_relative_path, JETPACK__PLUGIN_FILE );
+ wp_enqueue_style( 'jetpack-instant-search-customizer-label', $style_path, array( 'customize-controls' ), $style_version );
+ }
+
+ /**
+ * Override rendering for custom class name; omit element ID.
+ */
+ protected function render() {
+ echo '<li class="customize-control customize-label-control">';
+ $this->render_content();
+ echo '</li>';
+ }
+
+ /**
+ * Override content rendering.
+ */
+ protected function render_content() {
+ if ( ! empty( $this->label ) ) : ?>
+ <label class="customize-control-title">
+ <?php echo esc_html( $this->label ); ?>
+ </label>
+ <?php endif; ?>
+ <?php if ( ! empty( $this->description ) ) : ?>
+ <span class="description customize-control-description">
+ <?php echo esc_html( $this->description ); ?>
+ </span>
+ <?php
+ endif;
+ }
+}
diff --git a/plugins/jetpack/modules/search/customize-controls/customize-controls.js b/plugins/jetpack/modules/search/customize-controls/customize-controls.js
new file mode 100644
index 00000000..ea77ce1a
--- /dev/null
+++ b/plugins/jetpack/modules/search/customize-controls/customize-controls.js
@@ -0,0 +1,43 @@
+/**
+ * Binds iframe messages from the Customizer to SearchApp.
+ *
+ * @param {boolean} expanded - whether jetpack_search section is expanded and visible.
+ */
+function postSectionMessage( expanded ) {
+ // window.wp.customize.previewer.preview is not available until both customize and customize.previewer are ready.
+ window.wp.customize.previewer.preview
+ .targetWindow()
+ .postMessage( { key: 'jetpackSearchSectionOpen', expanded: expanded }, '*' ); // Assume ES5 envorinment.
+}
+
+/**
+ * Adds functionality for Jetpack Search section detection in the Customizer.
+ */
+function init() {
+ window.wp.customize.bind( 'ready', function () {
+ // window.wp.customize.previewer will emit 'ready' multiple times, not just during initialization.
+ window.wp.customize.previewer.bind( 'ready', function () {
+ // window.wp.customize.previewer.loading is deinstanced after initial load.
+ window.wp.customize.previewer.loading &&
+ window.wp.customize.previewer.loading.done( function () {
+ postSectionMessage( window.wp.customize.section( 'jetpack_search' ).expanded() );
+ } );
+
+ // If the Jetpack Search section is opened/closed, emit a message to open/close the modal.
+ window.wp.customize.section( 'jetpack_search' ).expanded.bind( function () {
+ postSectionMessage( window.wp.customize.section( 'jetpack_search' ).expanded() );
+ } );
+
+ // If Customizer values have changed while Jetpack Search section is open, emit a message to open the modal.
+ window.wp.customize.bind( 'change', function () {
+ window.wp.customize.section( 'jetpack_search' ).expanded() && postSectionMessage( true );
+ } );
+ } );
+ } );
+}
+
+if ( document.readyState !== 'loading' ) {
+ init();
+} else {
+ document.addEventListener( 'DOMContentLoaded', init );
+}
diff --git a/plugins/jetpack/modules/seo-tools.php b/plugins/jetpack/modules/seo-tools.php
index f926c5c4..ed025f3f 100644
--- a/plugins/jetpack/modules/seo-tools.php
+++ b/plugins/jetpack/modules/seo-tools.php
@@ -6,26 +6,29 @@
* Recommendation Order: 15
* First Introduced: 4.4
* Requires Connection: Yes
+ * Requires User Connection: No
* Auto Activate: No
* Module Tags: Social, Appearance
* Feature: Traffic
* Additional Search Queries: search engine optimization, social preview, meta description, custom title format
- * Plans: business, premium
+ *
+ * @package automattic/jetpack
*/
-include dirname( __FILE__ ) . '/seo-tools/jetpack-seo.php';
-include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
-
// Suppress SEO Tools output if any of the following plugins is active.
$jetpack_seo_conflicting_plugins = array(
'wordpress-seo/wp-seo.php',
'wordpress-seo-premium/wp-seo-premium.php',
'all-in-one-seo-pack/all_in_one_seo_pack.php',
'all-in-one-seo-pack-pro/all_in_one_seo_pack.php',
+ 'seo-by-rank-math/rank-math.php',
'autodescription/autodescription.php',
+ 'slim-seo/slim-seo.php',
+ 'wp-seopress/seopress.php',
+ 'wp-seopress-pro/seopress-pro.php',
);
-foreach( $jetpack_seo_conflicting_plugins as $seo_plugin ) {
+foreach ( $jetpack_seo_conflicting_plugins as $seo_plugin ) {
if ( Jetpack::is_plugin_active( $seo_plugin ) ) {
// Disable all custom meta tags that SEO tools manages.
add_filter( 'jetpack_disable_seo_tools', '__return_true' );
@@ -36,4 +39,8 @@ foreach( $jetpack_seo_conflicting_plugins as $seo_plugin ) {
}
}
-new Jetpack_SEO;
+/** This filter is documented in modules/seo-tools/class-jetpack-seo-utils.php */
+if ( ! apply_filters( 'jetpack_disable_seo_tools', false ) ) {
+ require_once __DIR__ . '/seo-tools/class-jetpack-seo.php';
+ new Jetpack_SEO();
+}
diff --git a/plugins/jetpack/modules/seo-tools/class-jetpack-seo-posts.php b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-posts.php
new file mode 100644
index 00000000..140bc5ef
--- /dev/null
+++ b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-posts.php
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Class containing utility static methods for managing SEO custom descriptions for Posts and Pages.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Provides static utility methods for managing SEO custom descriptions for Posts and Pages.
+ */
+class Jetpack_SEO_Posts {
+ /**
+ * Key of the post meta value that will be used to store post custom description.
+ */
+ const DESCRIPTION_META_KEY = 'advanced_seo_description';
+
+ /**
+ * Build meta description for post SEO.
+ *
+ * @param WP_Post $post Source of data for custom description.
+ *
+ * @return string Post description or empty string.
+ */
+ public static function get_post_description( $post ) {
+ if ( empty( $post ) ) {
+ return '';
+ }
+
+ if ( post_password_required() || ! is_singular() ) {
+ return '';
+ }
+
+ // Business users can overwrite the description.
+ $custom_description = self::get_post_custom_description( $post );
+
+ if ( ! empty( $custom_description ) ) {
+ return $custom_description;
+ }
+
+ if ( ! empty( $post->post_excerpt ) ) {
+ return $post->post_excerpt;
+ }
+
+ return $post->post_content;
+ }
+
+ /**
+ * Returns post's custom meta description if it is set, and if
+ * SEO tools are enabled for current blog.
+ *
+ * @param WP_Post $post Source of data for custom description.
+ *
+ * @return string Custom description or empty string
+ */
+ public static function get_post_custom_description( $post ) {
+ if ( empty( $post ) ) {
+ return '';
+ }
+
+ $custom_description = get_post_meta( $post->ID, self::DESCRIPTION_META_KEY, true );
+
+ if ( empty( $custom_description ) || ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
+ return '';
+ }
+
+ return $custom_description;
+ }
+
+ /**
+ * Registers the self::DESCRIPTION_META_KEY post_meta for use in the REST API.
+ */
+ public static function register_post_meta() {
+ $args = array(
+ 'type' => 'string',
+ 'description' => __( 'Custom post description to be used in HTML <meta /> tag.', 'jetpack' ),
+ 'single' => true,
+ 'default' => '',
+ 'show_in_rest' => array(
+ 'name' => self::DESCRIPTION_META_KEY,
+ ),
+ );
+
+ register_meta( 'post', self::DESCRIPTION_META_KEY, $args );
+ }
+
+ /**
+ * Register the Advanced SEO Gutenberg extension
+ */
+ public static function register_gutenberg_extension() {
+ if ( Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
+ Jetpack_Gutenberg::set_extension_available( 'jetpack-seo' );
+ } else {
+ Jetpack_Gutenberg::set_extension_unavailable( 'jetpack-seo', 'jetpack_seo_disabled' );
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/seo-tools/class-jetpack-seo-titles.php b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-titles.php
new file mode 100644
index 00000000..82564ff9
--- /dev/null
+++ b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-titles.php
@@ -0,0 +1,339 @@
+<?php
+/**
+ * Class containing utility static methods for managing SEO custom title formats.
+ *
+ * @package automattic/jetpack
+ */
+
+/*
+ * Each title format is an array of arrays containing two values:
+ * - type
+ * - value
+ *
+ * Possible values for type are: 'token' and 'string'.
+ * Possible values for 'value' are: any string in case that 'type' is set
+ * to 'string', or allowed token values for page type in case that 'type'
+ * is set to 'token'.
+ *
+ * Examples of valid formats:
+ *
+ * [
+ * 'front_page' => [
+ * [ 'type' => 'string', 'value' => 'Front page title and site name:'],
+ * [ 'type' => 'token', 'value' => 'site_name']
+ * ],
+ * 'posts' => [
+ * [ 'type' => 'token', 'value' => 'site_name' ],
+ * [ 'type' => 'string', 'value' => ' | ' ],
+ * [ 'type' => 'token', 'value' => 'post_title' ]
+ * ],
+ * 'pages' => [],
+ * 'groups' => [],
+ * 'archives' => []
+ * ]
+ * Custom title for given page type is created by concatenating all of the array 'value' parts.
+ * Tokens are replaced with their corresponding values for current site.
+ * Empty array signals that we are not overriding the default title for particular page type.
+ */
+
+/**
+ * Class containing utility static methods for managing SEO custom title formats.
+ */
+class Jetpack_SEO_Titles {
+ /**
+ * Site option name used to store custom title formats.
+ */
+ const TITLE_FORMATS_OPTION = 'advanced_seo_title_formats';
+
+ /**
+ * Retrieves custom title formats from site option.
+ *
+ * @return array Array of custom title formats, or empty array.
+ */
+ public static function get_custom_title_formats() {
+ if ( Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
+ return get_option( self::TITLE_FORMATS_OPTION, array() );
+ }
+
+ return array();
+ }
+
+ /**
+ * Returns tokens that are currently supported for each page type.
+ *
+ * @return array Array of allowed token strings.
+ */
+ public static function get_allowed_tokens() {
+ return array(
+ 'front_page' => array( 'site_name', 'tagline' ),
+ 'posts' => array( 'site_name', 'tagline', 'post_title' ),
+ 'pages' => array( 'site_name', 'tagline', 'page_title' ),
+ 'groups' => array( 'site_name', 'tagline', 'group_title' ),
+ 'archives' => array( 'site_name', 'tagline', 'date', 'archive_title' ),
+ );
+ }
+
+ /**
+ * Used to modify the default title with custom SEO title.
+ *
+ * @param string $default_title Default title for current page.
+ *
+ * @return string Custom title with replaced tokens or default title.
+ */
+ public static function get_custom_title( $default_title = '' ) {
+ // Don't filter title for unsupported themes.
+ if ( self::is_conflicted_theme() ) {
+ return $default_title;
+ }
+
+ $page_type = self::get_page_type();
+
+ // Keep default title if invalid page type is supplied.
+ if ( empty( $page_type ) ) {
+ return $default_title;
+ }
+
+ $title_formats = self::get_custom_title_formats();
+
+ // Keep default title if user has not defined custom title for this page type.
+ if ( empty( $title_formats[ $page_type ] ) ) {
+ return $default_title;
+ }
+
+ if ( ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
+ return $default_title;
+ }
+
+ $custom_title = '';
+ $format_array = $title_formats[ $page_type ];
+
+ foreach ( $format_array as $item ) {
+ if ( 'token' === $item['type'] ) {
+ $custom_title .= self::get_token_value( $item['value'] );
+ } else {
+ $custom_title .= $item['value'];
+ }
+ }
+
+ return esc_html( $custom_title );
+ }
+
+ /**
+ * Returns string value for given token.
+ *
+ * @param string $token_name The token name value that should be replaced.
+ *
+ * @return string Token replacement for current site, or empty string for unknown token name.
+ */
+ public static function get_token_value( $token_name ) {
+
+ switch ( $token_name ) {
+ case 'site_name':
+ return get_bloginfo( 'name' );
+
+ case 'tagline':
+ return get_bloginfo( 'description' );
+
+ case 'post_title':
+ case 'page_title':
+ return the_title_attribute( array( 'echo' => false ) );
+
+ case 'group_title':
+ return single_tag_title( '', false );
+
+ case 'date':
+ case 'archive_title':
+ return self::get_archive_title();
+
+ default:
+ return '';
+ }
+ }
+
+ /**
+ * Returns page type for current page. We need this helper in order to determine what
+ * user defined title format should be used for custom title.
+ *
+ * @return string|bool Type of current page or false if unsupported.
+ */
+ public static function get_page_type() {
+
+ if ( is_front_page() ) {
+ return 'front_page';
+ }
+
+ if ( is_category() || is_tag() || is_tax() ) {
+ return 'groups';
+ }
+
+ if ( is_archive() && ! is_author() ) {
+ return 'archives';
+ }
+
+ if ( is_page() ) {
+ return 'pages';
+ }
+
+ if ( is_singular() ) {
+ return 'posts';
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns the value that should be used as a replacement for the `date` or `archive_title` tokens.
+ * For date-based archives, a date is returned. Otherwise the `post_type_archive_title` is returned.
+ *
+ * The `archive_title` token was added after the `date` token to provide a more generic option
+ * that would work for non date-based archives.
+ *
+ * @return string Token replaced string.
+ */
+ public static function get_archive_title() {
+ // If archive year, month, and day are specified.
+ if ( is_day() ) {
+ return get_the_date();
+ }
+
+ // If archive year, and month are specified.
+ if ( is_month() ) {
+ return trim( single_month_title( ' ', false ) );
+ }
+
+ // Only archive year is specified.
+ if ( is_year() ) {
+ return get_query_var( 'year' );
+ }
+
+ // Not a date based archive.
+ // An example would be "Projects" for Jetpack's Portoflio CPT.
+ return post_type_archive_title( '', false );
+ }
+
+ /**
+ * Checks if current theme is defining custom title that won't work nicely
+ * with our custom SEO title override.
+ *
+ * @return bool True if current theme sets custom title, false otherwise.
+ */
+ public static function is_conflicted_theme() {
+ /**
+ * Can be used to specify a list of themes that use their own custom title format.
+ *
+ * If current site is using one of the themes listed as conflicting,
+ * Jetpack SEO custom title formats will be disabled.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param array List of conflicted theme names. Defaults to empty array.
+ */
+ $conflicted_themes = apply_filters( 'jetpack_seo_custom_title_conflicted_themes', array() );
+
+ return isset( $conflicted_themes[ get_option( 'template' ) ] );
+ }
+
+ /**
+ * Checks if a given format conforms to predefined SEO title templates.
+ *
+ * Every format type and token must be specifically allowed.
+ *
+ * @see get_allowed_tokens()
+ *
+ * @param array $title_formats Template of SEO title to check.
+ *
+ * @return bool True if the formats are valid, false otherwise.
+ */
+ public static function are_valid_title_formats( $title_formats ) {
+ $allowed_tokens = self::get_allowed_tokens();
+
+ if ( ! is_array( $title_formats ) ) {
+ return false;
+ }
+
+ foreach ( $title_formats as $format_type => $format_array ) {
+ if ( ! array_key_exists( $format_type, $allowed_tokens ) ) {
+ return false;
+ }
+
+ if ( '' === $format_array ) {
+ continue;
+ }
+
+ if ( ! is_array( $format_array ) ) {
+ return false;
+ }
+
+ foreach ( $format_array as $item ) {
+ if ( empty( $item['type'] ) || empty( $item['value'] ) ) {
+ return false;
+ }
+
+ if ( 'token' === $item['type'] ) {
+ if ( ! in_array( $item['value'], $allowed_tokens[ $format_type ], true ) ) {
+ return false;
+ }
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Sanitizes the arbitrary user input strings for custom SEO titles.
+ *
+ * @param array $title_formats Array of custom title formats.
+ *
+ * @return array The sanitized array.
+ */
+ public static function sanitize_title_formats( $title_formats ) {
+ foreach ( $title_formats as &$format_array ) {
+ foreach ( $format_array as &$item ) {
+ if ( 'string' === $item['type'] ) {
+ // From `wp_strip_all_tags`, but omitting the `trim` portion since we want spacing preserved.
+ $item['value'] = preg_replace( '@<(script|style)[^>]*?>.*?</\\1>@si', '', $item['value'] );
+ $item['value'] = strip_tags( $item['value'] ); // phpcs:ignore WordPress.WP.AlternativeFunctions.strip_tags_strip_tags
+ $item['value'] = preg_replace( '/[\r\n\t ]+/', ' ', $item['value'] );
+ }
+ }
+ }
+ unset( $format_array );
+ unset( $item );
+
+ return $title_formats;
+ }
+
+ /**
+ * Combines the previous values of title formats, stored as array in site options,
+ * with the new values that are provided.
+ *
+ * @param array $new_formats Array containing new title formats.
+ *
+ * @return array $result Array of updated title formats, or empty array if no update was performed.
+ */
+ public static function update_title_formats( $new_formats ) {
+ $new_formats = self::sanitize_title_formats( $new_formats );
+
+ // Empty array signals that custom title shouldn't be used.
+ $empty_formats = array(
+ 'front_page' => array(),
+ 'posts' => array(),
+ 'pages' => array(),
+ 'groups' => array(),
+ 'archives' => array(),
+ );
+
+ $previous_formats = self::get_custom_title_formats();
+
+ $result = array_merge( $empty_formats, $previous_formats, $new_formats );
+
+ if ( update_option( self::TITLE_FORMATS_OPTION, $result ) ) {
+ return $result;
+ }
+
+ return array();
+ }
+}
diff --git a/plugins/jetpack/modules/seo-tools/class-jetpack-seo-utils.php b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-utils.php
new file mode 100644
index 00000000..c6d8c294
--- /dev/null
+++ b/plugins/jetpack/modules/seo-tools/class-jetpack-seo-utils.php
@@ -0,0 +1,137 @@
+<?php
+/**
+ * Class containing utility static methods that other SEO tools are relying on.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Class containing utility static methods that other SEO tools are relying on.
+ */
+class Jetpack_SEO_Utils {
+ /**
+ * Site option name used to store front page meta description.
+ */
+ const FRONT_PAGE_META_OPTION = 'advanced_seo_front_page_description';
+
+ /**
+ * The LEGACY_META_OPTION is used to support legacy usage on WPcom simple sites (free or paid).
+ * For WPorg JP sites, the JP seo-tools features were made free for all sites (free or paid).
+ */
+ const LEGACY_META_OPTION = 'seo_meta_description';
+
+ /**
+ * Used to check whether SEO tools are enabled for given site.
+ *
+ * @param int $site_id Optional. Defaults to current blog id if not given.
+ *
+ * @return bool True if SEO tools are enabled, false otherwise.
+ */
+ public static function is_enabled_jetpack_seo( $site_id = 0 ) {
+ /**
+ * Can be used by SEO plugin authors to disable the conflicting output of SEO Tools.
+ *
+ * @module seo-tools
+ *
+ * @since 5.0.0
+ *
+ * @param bool True if SEO Tools should be disabled, false otherwise.
+ */
+ if ( apply_filters( 'jetpack_disable_seo_tools', false ) ) {
+ return false;
+ }
+
+ if ( function_exists( 'has_any_blog_stickers' ) ) {
+ // For WPCOM simple sites.
+ if ( empty( $site_id ) ) {
+ $site_id = get_current_blog_id();
+ }
+
+ return has_any_blog_stickers( array( 'business-plan', 'ecommerce-plan' ), $site_id );
+ }
+
+ // For all Jetpack sites.
+ return true;
+ }
+
+ /**
+ * Checks if this option was set while it was freely available to all WPcom simple sites.
+ *
+ * @return bool True if we should enable legacy usage, false otherwise.
+ */
+ public static function has_legacy_front_page_meta() {
+ return ! self::is_enabled_jetpack_seo() && get_option( self::LEGACY_META_OPTION );
+ }
+
+ /**
+ * Returns front page meta description for current site.
+ *
+ * @return string Front page meta description string or empty string.
+ */
+ public static function get_front_page_meta_description() {
+ if ( self::is_enabled_jetpack_seo() ) {
+ $front_page_meta = get_option( self::FRONT_PAGE_META_OPTION );
+ return $front_page_meta ? $front_page_meta : get_option( self::LEGACY_META_OPTION, '' );
+ }
+
+ // Support legacy usage for WPcom simple sites.
+ return get_option( self::LEGACY_META_OPTION, '' );
+ }
+
+ /**
+ * Sanitizes the custom front page meta description input.
+ *
+ * @param string $value Front page meta string.
+ *
+ * @return string The sanitized string.
+ */
+ public static function sanitize_front_page_meta_description( $value ) {
+ return wp_strip_all_tags( $value );
+ }
+
+ /**
+ * Updates the site option value for front page meta description.
+ *
+ * @param string $value New value for front page meta description.
+ *
+ * @return string Saved value, or empty string if no update was performed.
+ */
+ public static function update_front_page_meta_description( $value ) {
+ $front_page_description = self::sanitize_front_page_meta_description( $value );
+
+ /**
+ * Can be used to limit the length of front page meta description.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param int Maximum length of front page meta description. Defaults to 300.
+ */
+ $description_max_length = apply_filters( 'jetpack_seo_front_page_description_max_length', 300 );
+
+ if ( function_exists( 'mb_substr' ) ) {
+ $front_page_description = mb_substr( $front_page_description, 0, $description_max_length );
+ } else {
+ $front_page_description = substr( $front_page_description, 0, $description_max_length );
+ }
+
+ $can_set_meta = self::is_enabled_jetpack_seo();
+ $legacy_meta_option = get_option( self::LEGACY_META_OPTION );
+ $has_old_meta = ! empty( $legacy_meta_option );
+ $option_name = self::has_legacy_front_page_meta() ? self::LEGACY_META_OPTION : self::FRONT_PAGE_META_OPTION;
+
+ $did_update = update_option( $option_name, $front_page_description );
+
+ if ( $did_update && $has_old_meta && $can_set_meta ) {
+ // Delete legacy option if user has switched to Business or eCommerce plan and updated the front page meta description.
+ delete_option( self::LEGACY_META_OPTION );
+ }
+
+ if ( $did_update ) {
+ return $front_page_description;
+ }
+
+ return '';
+ }
+}
diff --git a/plugins/jetpack/modules/seo-tools/class-jetpack-seo.php b/plugins/jetpack/modules/seo-tools/class-jetpack-seo.php
new file mode 100644
index 00000000..aad1704b
--- /dev/null
+++ b/plugins/jetpack/modules/seo-tools/class-jetpack-seo.php
@@ -0,0 +1,241 @@
+<?php
+/**
+ * Main class file for the SEO Tools module.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * An SEO expert walks into a bar, bars, pub, public house, Irish pub, drinks, beer, wine, liquor, Grey Goose, Cristal...
+ */
+class Jetpack_SEO {
+ /**
+ * Constructor.
+ */
+ public function __construct() {
+ add_action( 'init', array( $this, 'init' ) );
+ }
+
+ /**
+ * Initialization method for Jetpack_SEO.
+ */
+ public function init() {
+ /**
+ * Can be used to prevent SEO tools from inserting custom meta tags.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param bool true Should Jetpack's SEO Meta Tags be enabled. Defaults to true.
+ */
+ if ( apply_filters( 'jetpack_seo_meta_tags_enabled', true ) ) {
+ add_action( 'wp_head', array( $this, 'meta_tags' ) );
+
+ // Add support for editing page excerpts in pages, regardless of theme support.
+ add_post_type_support( 'page', 'excerpt' );
+ }
+
+ /**
+ * Can be used to prevent SEO tools form modifying site titles.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param bool true Should Jetpack SEO modify site titles. Defaults to true.
+ */
+ if ( apply_filters( 'jetpack_seo_custom_titles', true ) ) {
+ // Overwrite page title with custom SEO meta title for themes that support title-tag.
+ add_filter( 'pre_get_document_title', array( 'Jetpack_SEO_Titles', 'get_custom_title' ) );
+
+ // Add overwrite support for themes that don't support title-tag.
+ add_filter( 'wp_title', array( 'Jetpack_SEO_Titles', 'get_custom_title' ) );
+ }
+
+ add_filter( 'jetpack_open_graph_tags', array( $this, 'set_custom_og_tags' ) );
+ Jetpack_SEO_Posts::register_post_meta();
+ Jetpack_SEO_Posts::register_gutenberg_extension();
+ }
+
+ /**
+ * Helper method to fetch authors.
+ */
+ private function get_authors() {
+ global $wp_query;
+
+ $authors = array();
+
+ foreach ( $wp_query->posts as $post ) {
+ $authors[] = get_the_author_meta( 'display_name', (int) $post->post_author );
+ }
+
+ $authors = array_unique( $authors );
+
+ return $authors;
+ }
+
+ /**
+ * Constructs open graph tag data.
+ *
+ * @param array $tags Array of tag data.
+ * @return array of tag data.
+ */
+ public function set_custom_og_tags( $tags ) {
+ $custom_title = Jetpack_SEO_Titles::get_custom_title();
+
+ if ( ! empty( $custom_title ) ) {
+ $tags['og:title'] = $custom_title;
+ }
+
+ $post_custom_description = Jetpack_SEO_Posts::get_post_custom_description( get_post() );
+ $front_page_meta = Jetpack_SEO_Utils::get_front_page_meta_description();
+
+ if ( is_front_page() && ! empty( $front_page_meta ) ) {
+ $tags['og:description'] = $front_page_meta;
+ } else {
+ if ( ! empty( $post_custom_description ) ) {
+ $tags['og:description'] = $post_custom_description;
+ }
+ }
+
+ return $tags;
+ }
+
+ /**
+ * Outputs Jetpack's SEO <meta> tags.
+ */
+ public function meta_tags() {
+ global $wp_query;
+
+ $period = '';
+ $template = '';
+ $meta = array();
+
+ /**
+ * Can be used to specify a list of themes that set their own meta tags.
+ *
+ * If current site is using one of the themes listed as conflicting, inserting Jetpack SEO
+ * meta tags will be prevented.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param array List of conflicted theme names. Defaults to empty array.
+ */
+ $conflicted_themes = apply_filters( 'jetpack_seo_meta_tags_conflicted_themes', array() );
+
+ if ( isset( $conflicted_themes[ get_option( 'template' ) ] ) ) {
+ return;
+ }
+
+ $front_page_meta = Jetpack_SEO_Utils::get_front_page_meta_description();
+ $description = $front_page_meta ? $front_page_meta : get_bloginfo( 'description' );
+ $meta['description'] = trim( $description );
+
+ // Try to target things if we're on a "specific" page of any kind.
+ if ( is_singular() ) {
+ if ( ! ( is_front_page() && Jetpack_SEO_Utils::get_front_page_meta_description() ) ) {
+ $description = Jetpack_SEO_Posts::get_post_description( get_post() );
+
+ if ( $description ) {
+ $description = wp_trim_words(
+ strip_shortcodes(
+ wp_strip_all_tags( $description, true )
+ )
+ );
+ $meta['description'] = $description;
+ }
+ }
+ } elseif ( is_author() ) {
+ $obj = get_queried_object();
+
+ $meta['description'] = sprintf(
+ /* translators: first property is an user's display name, the second is the site's title. */
+ _x( 'Read all of the posts by %1$s on %2$s', 'Read all of the posts by Author Name on Blog Title', 'jetpack' ),
+ isset( $obj->display_name ) ? $obj->display_name : __( 'the author', 'jetpack' ),
+ get_bloginfo( 'title' )
+ );
+ } elseif ( is_tag() || is_category() || is_tax() ) {
+ $obj = get_queried_object();
+ $description = '';
+
+ if ( isset( $obj->term_id ) && isset( $obj->taxonomy ) ) {
+ $description = get_term_field( 'description', $obj->term_id, $obj->taxonomy, 'raw' );
+ }
+
+ if ( ! is_wp_error( $description ) && $description ) {
+ $meta['description'] = wp_trim_words( $description );
+ } else {
+ $authors = $this->get_authors();
+
+ $meta['description'] = wp_sprintf(
+ /* translators: %1$s: A post category. %2$l: Post authors. */
+ _x( 'Posts about %1$s written by %2$l', 'Posts about Category written by John and Bob', 'jetpack' ),
+ single_term_title( '', false ),
+ $authors
+ );
+ }
+ } elseif ( is_date() ) {
+ if ( is_year() ) {
+ $period = get_query_var( 'year' );
+
+ /* translators: %1$s: Number of posts published. %2$l: Post author. %3$s: A year date. */
+ $template = _nx(
+ '%1$s post published by %2$l in the year %3$s', // Singular.
+ '%1$s posts published by %2$l in the year %3$s', // Plural.
+ count( $wp_query->posts ), // Number.
+ '10 posts published by John in the year 2012', // Context.
+ 'jetpack'
+ );
+ } elseif ( is_month() ) {
+ $period = gmdate( 'F Y', mktime( 0, 0, 0, get_query_var( 'monthnum' ), 1, get_query_var( 'year' ) ) );
+
+ /* translators: %1$s: Number of posts published. %2$l: Post author. %3$s: A month/year date. */
+ $template = _nx(
+ '%1$s post published by %2$l during %3$s', // Singular.
+ '%1$s posts published by %2$l during %3$s', // Plural.
+ count( $wp_query->posts ), // Number.
+ '10 posts publishes by John during May 2012', // Context.
+ 'jetpack'
+ );
+ } elseif ( is_day() ) {
+ $period = gmdate(
+ 'F j, Y',
+ mktime( 0, 0, 0, get_query_var( 'monthnum' ), get_query_var( 'day' ), get_query_var( 'year' ) )
+ );
+
+ /* translators: %1$s: Number of posts published. %2$l: Post author. %3$s: A month/day/year date. */
+ $template = _nx(
+ '%1$s post published by %2$l on %3$s', // Singular.
+ '%1$s posts published by %2$l on %3$s', // Plural.
+ count( $wp_query->posts ), // Number.
+ '10 posts published by John on May 30, 2012', // Context.
+ 'jetpack'
+ );
+ }
+
+ $authors = $this->get_authors();
+ $meta['description'] = wp_sprintf( $template, count( $wp_query->posts ), $authors, $period );
+ }
+
+ /**
+ * Can be used to edit the default SEO tools meta tags.
+ *
+ * @module seo-tools
+ *
+ * @since 4.4.0
+ *
+ * @param array Array that consists of meta name and meta content pairs.
+ */
+ $meta = apply_filters( 'jetpack_seo_meta_tags', $meta );
+
+ // Output them.
+ foreach ( $meta as $name => $content ) {
+ if ( ! empty( $content ) ) {
+ echo '<meta name="' . esc_attr( $name ) . '" content="' . esc_attr( $content ) . '" />' . "\n";
+ }
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/sharedaddy.php b/plugins/jetpack/modules/sharedaddy.php
index 8349a9a5..223f0db9 100644
--- a/plugins/jetpack/modules/sharedaddy.php
+++ b/plugins/jetpack/modules/sharedaddy.php
@@ -12,13 +12,15 @@
* Feature: Engagement
* Additional Search Queries: share, sharing, sharedaddy, social buttons, buttons, share facebook, share twitter, social media sharing, social media share, social share, icons, email, facebook, twitter, linkedin, pinterest, pocket, social widget, social media
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Redirect;
use Automattic\Jetpack\Status;
if ( ! function_exists( 'sharing_init' ) ) {
- require dirname( __FILE__ ) . '/sharedaddy/sharedaddy.php';
+ require __DIR__ . '/sharedaddy/sharedaddy.php';
}
add_action( 'jetpack_modules_loaded', 'sharedaddy_loaded' );
@@ -38,10 +40,9 @@ function sharedaddy_loaded() {
*/
function jetpack_sharedaddy_configuration_url() {
$status = new Status();
- if ( $status->is_development_mode() || $status->is_staging_site() || ! Jetpack::is_user_connected() ) {
+ if ( $status->is_offline_mode() || $status->is_staging_site() || ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
return admin_url( 'options-general.php?page=sharing' );
}
- $site_suffix = Jetpack::build_raw_urls( get_home_url() );
- return 'https://wordpress.com/marketing/sharing-buttons/' . $site_suffix;
+ return Redirect::get_url( 'calypso-marketing-sharing-buttons' );
}
diff --git a/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.css b/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.css
index 04d10acc..2c0eab17 100644
--- a/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.css
+++ b/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.css
@@ -39,7 +39,7 @@
}
#live-preview {
- border-bottom: 1px solid #dfdfdf;
+ border-bottom: 1px solid #dcdcde;
padding-bottom: 60px;
}
@@ -293,7 +293,7 @@ body.settings_page_sharing .advanced input[type=submit] {
}
.preview-digg .option-smart-on {
- background: url(images/smart-digg.png) no-repeat top left;
+ background: url(images/smart-digg.png) no-repeat top right;
background-size: 76px 17px;
width:76px;
height:17px;
@@ -301,21 +301,21 @@ body.settings_page_sharing .advanced input[type=submit] {
}
.preview-reddit .option-smart-on {
- background: url(images/smart-reddit.png) no-repeat top left;
+ background: url(images/smart-reddit.png) no-repeat top right;
background-size: 104px 21px;
width:104px;
height:21px;
}
.preview-facebook .option-smart-on {
- background: url(images/smart-like.png) no-repeat top left;
+ background: url(images/smart-like.png) no-repeat top right;
background-size: 85px 20px;
width:85px;
height:20px;
}
.preview-twitter .option-smart-on {
- background: url(images/smart-twitter.png?1) no-repeat top left;
+ background: url(images/smart-twitter.png?1) no-repeat top right;
background-size: 60px 20px;
width:60px;
height:20px;
@@ -329,28 +329,28 @@ body.settings_page_sharing .advanced input[type=submit] {
}
.preview-tumblr .option-smart-on {
- background: url(images/smart-tumblr.png) no-repeat top left;
+ background: url(images/smart-tumblr.png) no-repeat top right;
background-size: 62px 20px;
width: 62px;
height: 20px;
}
.preview-pinterest .option-smart-on {
- background: url(images/smart-pinterest.png) no-repeat top left;
+ background: url(images/smart-pinterest.png) no-repeat top right;
background-size: 39px 20px;
width: 39px;
height: 20px;
}
.preview-pocket .option-smart-on {
- background: url(images/smart-pocket.png) no-repeat top left;
+ background: url(images/smart-pocket.png) no-repeat top right;
background-size: 60px 20px;
width: 60px;
height: 20px;
}
.preview-skype .option-smart-on {
- background: url(images/smart-skype.png) no-repeat top left;
+ background: url(images/smart-skype.png) no-repeat top right;
background-size: 60px 20px;
width: 60px;
height: 20px;
@@ -429,7 +429,7 @@ body.settings_page_sharing .advanced input[type=submit] {
}
#services-config a.remove {
- background: #ddd;
+ background: #dcdcde;
color: #fff;
padding: 0px 4px 2px;
border-radius: 15px;
diff --git a/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.min.css b/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.min.css
index db5c3771..04e5ff15 100644
--- a/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.min.css
+++ b/plugins/jetpack/modules/sharedaddy/admin-sharing-rtl.min.css
@@ -1 +1 @@
-#services-config{min-width:700px;width:100%;float:right}#services-config h3{font-weight:400;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap;color:#464646}#available-services,#enabled-services,#live-preview{padding:0;width:100%;padding-top:20px;border-spacing:0}#enabled-services .ui-sortable{min-height:50px}#enabled-services{padding-bottom:20px}#available-services,#enabled-services{border-bottom:2px solid #ccc}#live-preview{border-bottom:1px solid #dfdfdf;padding-bottom:60px}#available-services h3,#enabled-services h3,#live-preview h3{padding:0;margin-top:0;margin-bottom:1em}body.settings_page_sharing .description{width:180px;vertical-align:top}body.settings_page_sharing .description p{font-size:13px;font-style:italic}body.settings_page_sharing .services{padding:0 20px;vertical-align:top}body.settings_page_sharing .services ul li{float:right;cursor:move}body.settings_page_sharing .services ul li.divider{border:none;padding:0;background:0 0;cursor:default}body.settings_page_sharing ul.services-hidden{margin-bottom:0}#available-services .service,#enabled-services .service{margin-left:10px;padding:5px 5px 5px 10px;border-radius:3px;border:1px solid #bbb;background:#f8f8f8;background-repeat:no-repeat;background-position:center center}#available-services .service:hover,#enabled-services .service:hover{background:#fff;border:1px solid #bbb;box-shadow:0 1px 3px rgba(0,0,0,.2)}#available-services .service.share-deprecated,#enabled-services .service.share-deprecated{opacity:.5;padding:5px;text-decoration:line-through}#available-services .service.share-deprecated{display:none}li.service span:before{color:#555;display:inline-block;-webkit-font-smoothing:antialiased;font:normal 18px/1 social-logos;vertical-align:top;position:relative;top:1px;margin-left:3px;width:16px;height:16px;text-align:center}li.service.share-print span:before{content:'\f469'}li.service.share-digg span:before{content:'\f221'}li.service.share-email span:before{content:'\f410'}li.service.share-linkedin span:before{content:'\f207'}li.service.share-twitter span:before{content:'\f202'}li.service.share-reddit span:before{content:'\f222'}li.service.share-tumblr span:before{content:'\f214'}li.service.share-pocket span:before{content:'\f224'}li.service.share-pinterest span:before{content:'\f209'}li.service.share-facebook span:before{content:'\f203'}li.service.share-press-this span:before{content:'\f205'}li.service.share-telegram span:before{content:'\f606'}li.service.share-jetpack-whatsapp span:before{content:'\f608'}li.service.share-skype span:before{content:'\f220'}body.settings_page_sharing ul.preview{float:right;margin:0}body.settings_page_sharing ul.preview li.preview-item,body.settings_page_sharing ul.preview li.preview-item a{cursor:default;text-decoration:none}div.sd-social-icon .inner li.preview-item a span,div.sd-social-icon ul.preview li.preview-item a span{display:none}div.sd-social-icon ul.preview li.preview-item.preview-custom a span{display:inline-block}.services .preview li.share-custom a{text-decoration:none}.services ul li.end-fix{clear:both;float:none;visibility:hidden;padding:0;margin:0;height:20px;width:0}#enabled-services h2{font-size:20px;padding-top:0;font-weight:400!important;color:#999}body.settings_page_sharing #live-preview h2{font-size:20px;font-weight:400!important;color:#e3e3e3}body.settings_page_sharing .clearing{clear:both}body.settings_page_sharing .options .options-left{float:right}body.settings_page_sharing .input label{font-size:11px;line-height:16px}body.settings_page_sharing .advanced-form{padding:10px 10px 8px 14px;margin-right:-24px;display:none;border-top:1px #e3e3e3 solid;margin-top:4px}body.settings_page_sharing .utility{float:left;padding-top:10px;padding-left:10px;font-size:10px}body.settings_page_sharing .advanced input[type=submit]{float:right;margin-top:10px;margin-left:10px}.services li.dropzone{border:1px dashed #999;border-radius:3px;background:#e3e3e3;margin-left:10px;padding:5px;height:18px}.advanced-form .form-table th{width:auto!important}.advanced-form .button-secondary{margin-top:0!important}#hidden-drop-target{background:#e1e1e1;border:1px solid #cdcdcd;width:29%;padding:10px;vertical-align:top}#hidden-drop-target p{font-size:13px;font-style:italic;margin:0 0 10px 0}.preview li.preview-item{background-position:0 5px;cursor:default}.preview .option-smart-on{margin:3px 0 0 5px}.preview-digg .option-smart-on{background:url(images/smart-digg.png) no-repeat top left;background-size:76px 17px;width:76px;height:17px;margin-top:2px}.preview-reddit .option-smart-on{background:url(images/smart-reddit.png) no-repeat top left;background-size:104px 21px;width:104px;height:21px}.preview-facebook .option-smart-on{background:url(images/smart-like.png) no-repeat top left;background-size:85px 20px;width:85px;height:20px}.preview-twitter .option-smart-on{background:url(images/smart-twitter.png?1) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-linkedin .option-smart-on{background:url(images/linkedin-smart.png) no-repeat top center;background-size:99px 18px;width:99px;height:20px}.preview-tumblr .option-smart-on{background:url(images/smart-tumblr.png) no-repeat top left;background-size:62px 20px;width:62px;height:20px}.preview-pinterest .option-smart-on{background:url(images/smart-pinterest.png) no-repeat top left;background-size:39px 20px;width:39px;height:20px}.preview-pocket .option-smart-on{background:url(images/smart-pocket.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-skype .option-smart-on{background:url(images/smart-skype.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-item.share-deprecated{opacity:.5}.preview-item.share-deprecated a span{text-decoration:line-through}@media (-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.preview-digg .option-smart-on{background-image:url(images/smart-digg@2x.png)}.preview-reddit .option-smart-on{background-image:url(images/smart-reddit@2x.png)}.preview-facebook .option-smart-on{background-image:url(images/smart-like@2x.png)}.preview-twitter .option-smart-on{background-image:url(images/smart-twitter@2x.png?1)}.preview-linkedin .option-smart-on{background-image:url(images/linkedin-smart@2x.png)}.preview-tumblr .option-smart-on{background-image:url(images/smart-tumblr@2x.png)}.preview-pinterest .option-smart-on{background-image:url(images/smart-pinterest@2x.png)}.preview-pocket .option-smart-on{background-image:url(images/smart-pocket@2x.png)}.preview-skype .option-smart-on{background-image:url(images/smart-skype@2x.png)}}.services .sharing-hidden li{background-color:transparent}.sharing-hidden li.share-end{clear:both;height:0;padding:0!important;margin:0!important;width:0;visibility:hidden;float:none}.preview .sharing-label{font-weight:700;border:0;padding:4px 0 0 6px}#services-config a.remove{background:#ddd;color:#fff;padding:0 4px 2px;border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px;text-decoration:none;font-weight:700;font-size:10px}#services-config a.remove:hover{background:red}.sd-social-icon .inner a.sd-button span,.sd-social-icon .inner a.share-icon span{display:inline-block;overflow:hidden;width:0;text-indent:100%} \ No newline at end of file
+#services-config{min-width:700px;width:100%;float:right}#services-config h3{font-weight:400;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap;color:#464646}#available-services,#enabled-services,#live-preview{padding:0;width:100%;padding-top:20px;border-spacing:0}#enabled-services .ui-sortable{min-height:50px}#enabled-services{padding-bottom:20px}#available-services,#enabled-services{border-bottom:2px solid #ccc}#live-preview{border-bottom:1px solid #dcdcde;padding-bottom:60px}#available-services h3,#enabled-services h3,#live-preview h3{padding:0;margin-top:0;margin-bottom:1em}body.settings_page_sharing .description{width:180px;vertical-align:top}body.settings_page_sharing .description p{font-size:13px;font-style:italic}body.settings_page_sharing .services{padding:0 20px;vertical-align:top}body.settings_page_sharing .services ul li{float:right;cursor:move}body.settings_page_sharing .services ul li.divider{border:none;padding:0;background:0 0;cursor:default}body.settings_page_sharing ul.services-hidden{margin-bottom:0}#available-services .service,#enabled-services .service{margin-left:10px;padding:5px 5px 5px 10px;border-radius:3px;border:1px solid #bbb;background:#f8f8f8;background-repeat:no-repeat;background-position:center center}#available-services .service:hover,#enabled-services .service:hover{background:#fff;border:1px solid #bbb;box-shadow:0 1px 3px rgba(0,0,0,.2)}#available-services .service.share-deprecated,#enabled-services .service.share-deprecated{opacity:.5;padding:5px;text-decoration:line-through}#available-services .service.share-deprecated{display:none}li.service span:before{color:#555;display:inline-block;-webkit-font-smoothing:antialiased;font:normal 18px/1 social-logos;vertical-align:top;position:relative;top:1px;margin-left:3px;width:16px;height:16px;text-align:center}li.service.share-print span:before{content:'\f469'}li.service.share-digg span:before{content:'\f221'}li.service.share-email span:before{content:'\f410'}li.service.share-linkedin span:before{content:'\f207'}li.service.share-twitter span:before{content:'\f202'}li.service.share-reddit span:before{content:'\f222'}li.service.share-tumblr span:before{content:'\f214'}li.service.share-pocket span:before{content:'\f224'}li.service.share-pinterest span:before{content:'\f209'}li.service.share-facebook span:before{content:'\f203'}li.service.share-press-this span:before{content:'\f205'}li.service.share-telegram span:before{content:'\f606'}li.service.share-jetpack-whatsapp span:before{content:'\f608'}li.service.share-skype span:before{content:'\f220'}body.settings_page_sharing ul.preview{float:right;margin:0}body.settings_page_sharing ul.preview li.preview-item,body.settings_page_sharing ul.preview li.preview-item a{cursor:default;text-decoration:none}div.sd-social-icon .inner li.preview-item a span,div.sd-social-icon ul.preview li.preview-item a span{display:none}div.sd-social-icon ul.preview li.preview-item.preview-custom a span{display:inline-block}.services .preview li.share-custom a{text-decoration:none}.services ul li.end-fix{clear:both;float:none;visibility:hidden;padding:0;margin:0;height:20px;width:0}#enabled-services h2{font-size:20px;padding-top:0;font-weight:400!important;color:#999}body.settings_page_sharing #live-preview h2{font-size:20px;font-weight:400!important;color:#e3e3e3}body.settings_page_sharing .clearing{clear:both}body.settings_page_sharing .options .options-left{float:right}body.settings_page_sharing .input label{font-size:11px;line-height:16px}body.settings_page_sharing .advanced-form{padding:10px 10px 8px 14px;margin-right:-24px;display:none;border-top:1px #e3e3e3 solid;margin-top:4px}body.settings_page_sharing .utility{float:left;padding-top:10px;padding-left:10px;font-size:10px}body.settings_page_sharing .advanced input[type=submit]{float:right;margin-top:10px;margin-left:10px}.services li.dropzone{border:1px dashed #999;border-radius:3px;background:#e3e3e3;margin-left:10px;padding:5px;height:18px}.advanced-form .form-table th{width:auto!important}.advanced-form .button-secondary{margin-top:0!important}#hidden-drop-target{background:#e1e1e1;border:1px solid #cdcdcd;width:29%;padding:10px;vertical-align:top}#hidden-drop-target p{font-size:13px;font-style:italic;margin:0 0 10px 0}.preview li.preview-item{background-position:0 5px;cursor:default}.preview .option-smart-on{margin:3px 0 0 5px}.preview-digg .option-smart-on{background:url(images/smart-digg.png) no-repeat top right;background-size:76px 17px;width:76px;height:17px;margin-top:2px}.preview-reddit .option-smart-on{background:url(images/smart-reddit.png) no-repeat top right;background-size:104px 21px;width:104px;height:21px}.preview-facebook .option-smart-on{background:url(images/smart-like.png) no-repeat top right;background-size:85px 20px;width:85px;height:20px}.preview-twitter .option-smart-on{background:url(images/smart-twitter.png?1) no-repeat top right;background-size:60px 20px;width:60px;height:20px}.preview-linkedin .option-smart-on{background:url(images/linkedin-smart.png) no-repeat top center;background-size:99px 18px;width:99px;height:20px}.preview-tumblr .option-smart-on{background:url(images/smart-tumblr.png) no-repeat top right;background-size:62px 20px;width:62px;height:20px}.preview-pinterest .option-smart-on{background:url(images/smart-pinterest.png) no-repeat top right;background-size:39px 20px;width:39px;height:20px}.preview-pocket .option-smart-on{background:url(images/smart-pocket.png) no-repeat top right;background-size:60px 20px;width:60px;height:20px}.preview-skype .option-smart-on{background:url(images/smart-skype.png) no-repeat top right;background-size:60px 20px;width:60px;height:20px}.preview-item.share-deprecated{opacity:.5}.preview-item.share-deprecated a span{text-decoration:line-through}@media (-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.preview-digg .option-smart-on{background-image:url(images/smart-digg@2x.png)}.preview-reddit .option-smart-on{background-image:url(images/smart-reddit@2x.png)}.preview-facebook .option-smart-on{background-image:url(images/smart-like@2x.png)}.preview-twitter .option-smart-on{background-image:url(images/smart-twitter@2x.png?1)}.preview-linkedin .option-smart-on{background-image:url(images/linkedin-smart@2x.png)}.preview-tumblr .option-smart-on{background-image:url(images/smart-tumblr@2x.png)}.preview-pinterest .option-smart-on{background-image:url(images/smart-pinterest@2x.png)}.preview-pocket .option-smart-on{background-image:url(images/smart-pocket@2x.png)}.preview-skype .option-smart-on{background-image:url(images/smart-skype@2x.png)}}.services .sharing-hidden li{background-color:transparent}.sharing-hidden li.share-end{clear:both;height:0;padding:0!important;margin:0!important;width:0;visibility:hidden;float:none}.preview .sharing-label{font-weight:700;border:0;padding:4px 0 0 6px}#services-config a.remove{background:#dcdcde;color:#fff;padding:0 4px 2px;border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px;text-decoration:none;font-weight:700;font-size:10px}#services-config a.remove:hover{background:red}.sd-social-icon .inner a.sd-button span,.sd-social-icon .inner a.share-icon span{display:inline-block;overflow:hidden;width:0;text-indent:100%} \ No newline at end of file
diff --git a/plugins/jetpack/modules/sharedaddy/admin-sharing.css b/plugins/jetpack/modules/sharedaddy/admin-sharing.css
index f7093186..75dd9799 100644
--- a/plugins/jetpack/modules/sharedaddy/admin-sharing.css
+++ b/plugins/jetpack/modules/sharedaddy/admin-sharing.css
@@ -38,7 +38,7 @@
}
#live-preview {
- border-bottom: 1px solid #dfdfdf;
+ border-bottom: 1px solid #dcdcde;
padding-bottom: 60px;
}
@@ -428,7 +428,7 @@ body.settings_page_sharing .advanced input[type=submit] {
}
#services-config a.remove {
- background: #ddd;
+ background: #dcdcde;
color: #fff;
padding: 0px 4px 2px;
border-radius: 15px;
diff --git a/plugins/jetpack/modules/sharedaddy/admin-sharing.js b/plugins/jetpack/modules/sharedaddy/admin-sharing.js
index e4834772..29c39553 100644
--- a/plugins/jetpack/modules/sharedaddy/admin-sharing.js
+++ b/plugins/jetpack/modules/sharedaddy/admin-sharing.js
@@ -1,24 +1,24 @@
/* global sharing_loading_icon */
-( function( $ ) {
- $( document ).ready( function() {
+( function ( $ ) {
+ $( document ).ready( function () {
function enable_share_button() {
$( '.preview a.sharing-anchor' )
.unbind( 'mouseenter mouseenter' )
.hover(
- function() {
+ function () {
if ( $( this ).data( 'hasappeared' ) !== true ) {
var item = $( '.sharing-hidden .inner' );
var original = $( this ).parents( 'li' );
// Create a timer to make the area appear if the mouse hovers for a period
- var timer = setTimeout( function() {
+ var timer = setTimeout( function () {
$( item )
.css( {
left: $( original ).position().left + 'px',
top: $( original ).position().top + $( original ).height() + 3 + 'px',
} )
- .slideDown( 200, function() {
+ .slideDown( 200, function () {
// Mark the item as have being appeared by the hover
$( original )
.data( 'hasappeared', true )
@@ -26,9 +26,7 @@
.data( 'hasitem', false );
// Remove all special handlers
- $( item )
- .mouseleave( handler_item_leave )
- .mouseenter( handler_item_enter );
+ $( item ).mouseleave( handler_item_leave ).mouseenter( handler_item_enter );
$( original )
.mouseleave( handler_original_leave )
.mouseenter( handler_original_enter );
@@ -38,7 +36,7 @@
} );
// The following handlers take care of the mouseenter/mouseleave for the share button and the share area - if both are left then we close the share area
- var handler_item_leave = function() {
+ var handler_item_leave = function () {
$( original ).data( 'hasitem', false );
if ( $( original ).data( 'hasoriginal' ) === false ) {
@@ -47,12 +45,12 @@
}
};
- var handler_item_enter = function() {
+ var handler_item_enter = function () {
$( original ).data( 'hasitem', true );
clearTimeout( $( original ).data( 'timer2' ) );
};
- var handler_original_leave = function() {
+ var handler_original_leave = function () {
$( original ).data( 'hasoriginal', false );
if ( $( original ).data( 'hasitem' ) === false ) {
@@ -61,12 +59,12 @@
}
};
- var handler_original_enter = function() {
+ var handler_original_enter = function () {
$( original ).data( 'hasoriginal', true );
clearTimeout( $( original ).data( 'timer2' ) );
};
- var close_it = function() {
+ var close_it = function () {
item.slideUp( 200 );
// Clear all hooks
@@ -86,7 +84,7 @@
$( this ).data( 'timer', timer );
}
},
- function() {
+ function () {
// Mouse out - remove any timer
clearTimeout( $( this ).data( 'timer' ) );
$( this ).data( 'timer', false );
@@ -111,7 +109,7 @@
}
// Re-insert all the enabled items
- $( 'ul.services-enabled li' ).each( function() {
+ $( 'ul.services-enabled li' ).each( function () {
if ( $( this ).hasClass( 'service' ) ) {
var service = $( this ).attr( 'id' );
$( '#live-preview ul.preview' ).append(
@@ -124,15 +122,13 @@
if ( $( '#save-enabled-shares input[name=hidden]' ).val() ) {
// Add share button
$( '#live-preview ul.preview' ).append(
- $( '#live-preview ul.archive .share-more' )
- .parent()
- .clone()
+ $( '#live-preview ul.archive .share-more' ).parent().clone()
);
$( '.sharing-hidden ul li' ).remove();
// Add hidden items into the inner panel
- $( 'ul.services-hidden li' ).each( function(/*pos, item*/) {
+ $( 'ul.services-hidden li' ).each( function (/*pos, item*/) {
if ( $( this ).hasClass( 'service' ) ) {
var service = $( this ).attr( 'id' );
$( '.sharing-hidden .inner ul' ).append(
@@ -156,7 +152,7 @@
$( '#live-preview div.sharedaddy' ).addClass( 'sd-social-icon' );
} else if ( 'official' === button_style ) {
$( '#live-preview ul.preview .advanced, .sharing-hidden .inner ul .advanced' ).each(
- function(/*i*/) {
+ function (/*i*/) {
if (
! $( this ).hasClass( 'preview-press-this' ) &&
! $( this ).hasClass( 'preview-email' ) &&
@@ -181,7 +177,7 @@
}
}
- window.sharing_option_changed = function() {
+ window.sharing_option_changed = function () {
var item = this;
// Loading icon
@@ -192,7 +188,7 @@
// Save
$( this )
.parents( 'form' )
- .ajaxSubmit( function( response ) {
+ .ajaxSubmit( function ( response ) {
if ( response.indexOf( '<!---' ) >= 0 ) {
var button = response.substring( 0, response.indexOf( '<!--->' ) );
var preview = response.substring( response.indexOf( '<!--->' ) + 6 );
@@ -200,17 +196,12 @@
if ( $( item ).is( ':submit' ) === true ) {
// Update the DOM using a bit of cut/paste technology
- $( item )
- .parents( 'li:first' )
- .replaceWith( button );
+ $( item ).parents( 'li:first' ).replaceWith( button );
}
$(
'#live-preview ul.archive li.preview-' +
- $( item )
- .parents( 'form' )
- .find( 'input[name=service]' )
- .val()
+ $( item ).parents( 'form' ).find( 'input[name=service]' ).val()
).replaceWith( preview );
}
@@ -218,9 +209,7 @@
update_preview();
// Restore the icon
- $( item )
- .parents( 'li:first' )
- .removeAttr( 'style' );
+ $( item ).parents( 'li:first' ).removeAttr( 'style' );
} );
if ( $( item ).is( ':submit' ) === true ) {
@@ -259,7 +248,7 @@
var visible = [],
hidden = [];
- $( 'ul.services-enabled li' ).each( function() {
+ $( 'ul.services-enabled li' ).each( function () {
if ( $( this ).hasClass( 'service' ) ) {
// Ready for saving
visible[ visible.length ] = $( this ).attr( 'id' );
@@ -267,13 +256,13 @@
}
} );
- $( 'ul.services-available li' ).each( function() {
+ $( 'ul.services-available li' ).each( function () {
if ( $( this ).hasClass( 'service' ) ) {
hideExtraOptions( $( this ).attr( 'id' ) );
}
} );
- $( 'ul.services-hidden li' ).each( function() {
+ $( 'ul.services-hidden li' ).each( function () {
if ( $( this ).hasClass( 'service' ) ) {
// Ready for saving
hidden[ hidden.length ] = $( this ).attr( 'id' );
@@ -288,43 +277,39 @@
update_preview();
// Save it
- $( '#save-enabled-shares' ).ajaxSubmit( function() {
+ $( '#save-enabled-shares' ).ajaxSubmit( function () {
$( '#enabled-services h3 img' ).hide();
} );
}
$( '#enabled-services .services ul' ).sortable( {
- receive: function(/*event, ui*/) {
+ receive: function (/*event, ui*/) {
save_services();
},
- stop: function() {
+ stop: function () {
save_services();
$( 'li.service' ).enableSelection(); // Fixes a problem with Chrome
},
- over: function(/*event, ui*/) {
- $( this )
- .find( 'ul' )
- .addClass( 'dropping' );
+ over: function (/*event, ui*/) {
+ $( this ).find( 'ul' ).addClass( 'dropping' );
// Ensure the 'end-fix' is at the end
$( '#enabled-services li.end-fix' ).remove();
$( '#enabled-services ul' ).append( '<li class="end-fix"></li>' );
},
- out: function(/*event, ui*/) {
- $( this )
- .find( 'ul' )
- .removeClass( 'dropping' );
+ out: function (/*event, ui*/) {
+ $( this ).find( 'ul' ).removeClass( 'dropping' );
// Ensure the 'end-fix' is at the end
$( '#enabled-services li.end-fix' ).remove();
$( '#enabled-services ul' ).append( '<li class="end-fix"></li>' );
},
- helper: function( event, ui ) {
+ helper: function ( event, ui ) {
ui.find( '.advanced-form' ).hide();
return ui.clone();
},
- start: function(/*event, ui*/) {
+ start: function (/*event, ui*/) {
// Make sure that the advanced section is closed
$( '.advanced-form' ).hide();
$( 'li.service' ).disableSelection(); // Fixes a problem with Chrome
@@ -345,13 +330,13 @@
connectWith: '#enabled-services .services ul',
placeholder: 'dropzone',
forcePlaceholderSize: true,
- start: function() {
+ start: function () {
$( '.advanced-form' ).hide();
},
} );
// Accessibility keyboard shortcurts
- $( '.service' ).on( 'keydown', function( e ) {
+ $( '.service' ).on( 'keydown', function ( e ) {
// Reposition if one of the directional keys is pressed
switch ( e.keyCode ) {
case 13:
@@ -452,28 +437,23 @@
}
// Live preview 'hidden' button
- $( '.preview-hidden a' ).click( function() {
- $( this )
- .parent()
- .find( '.preview' )
- .toggle();
+ $( '.preview-hidden a' ).click( function () {
+ $( this ).parent().find( '.preview' ).toggle();
return false;
} );
// Add service
$( '#new-service form' ).ajaxForm( {
- beforeSubmit: function() {
+ beforeSubmit: function () {
$( '#new-service-form .error' ).hide();
$( '#new-service-form img' ).show();
$( '#new-service-form input[type=submit]' ).prop( 'disabled', true );
},
- success: function( response ) {
+ success: function ( response ) {
$( '#new-service-form img' ).hide();
if ( '' + response === '1' ) {
- $( '#new-service-form .inerror' )
- .removeClass( 'inerror' )
- .addClass( 'error' );
+ $( '#new-service-form .inerror' ).removeClass( 'inerror' ).addClass( 'error' );
$( '#new-service-form .error' ).show();
$( '#new-service-form input[type=submit]' ).prop( 'disabled', false );
} else {
@@ -485,10 +465,8 @@
function init_handlers() {
$( '#services-config a.remove' )
.unbind( 'click' )
- .click( function() {
- var form = $( this )
- .parent()
- .next();
+ .click( function () {
+ var form = $( this ).parent().next();
// Loading icon
$( this )
@@ -496,9 +474,9 @@
.css( 'backgroundImage', 'url("' + sharing_loading_icon + '")' );
// Save
- form.ajaxSubmit( function(/*response*/) {
+ form.ajaxSubmit( function (/*response*/) {
// Remove the item
- form.parents( 'li:first' ).fadeOut( function() {
+ form.parents( 'li:first' ).fadeOut( function () {
$( this ).remove();
// Update preview
@@ -511,18 +489,14 @@
}
$( '#button_style' )
- .change( function() {
+ .change( function () {
update_preview();
return true;
} )
.change();
- $( 'input[name=sharing_label]' ).blur( function() {
- $( '#live-preview h3.sd-title' ).text(
- $( '<div/>' )
- .text( $( this ).val() )
- .html()
- );
+ $( 'input[name=sharing_label]' ).blur( function () {
+ $( '#live-preview h3.sd-title' ).text( $( '<div/>' ).text( $( this ).val() ).html() );
} );
init_handlers();
diff --git a/plugins/jetpack/modules/sharedaddy/admin-sharing.min.css b/plugins/jetpack/modules/sharedaddy/admin-sharing.min.css
index e572752d..3a47248c 100644
--- a/plugins/jetpack/modules/sharedaddy/admin-sharing.min.css
+++ b/plugins/jetpack/modules/sharedaddy/admin-sharing.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-#services-config{min-width:700px;width:100%;float:left}#services-config h3{font-weight:400;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap;color:#464646}#available-services,#enabled-services,#live-preview{padding:0;width:100%;padding-top:20px;border-spacing:0}#enabled-services .ui-sortable{min-height:50px}#enabled-services{padding-bottom:20px}#available-services,#enabled-services{border-bottom:2px solid #ccc}#live-preview{border-bottom:1px solid #dfdfdf;padding-bottom:60px}#available-services h3,#enabled-services h3,#live-preview h3{padding:0;margin-top:0;margin-bottom:1em}body.settings_page_sharing .description{width:180px;vertical-align:top}body.settings_page_sharing .description p{font-size:13px;font-style:italic}body.settings_page_sharing .services{padding:0 20px;vertical-align:top}body.settings_page_sharing .services ul li{float:left;cursor:move}body.settings_page_sharing .services ul li.divider{border:none;padding:0;background:0 0;cursor:default}body.settings_page_sharing ul.services-hidden{margin-bottom:0}#available-services .service,#enabled-services .service{margin-right:10px;padding:5px 10px 5px 5px;border-radius:3px;border:1px solid #bbb;background:#f8f8f8;background-repeat:no-repeat;background-position:center center}#available-services .service:hover,#enabled-services .service:hover{background:#fff;border:1px solid #bbb;box-shadow:0 1px 3px rgba(0,0,0,.2)}#available-services .service.share-deprecated,#enabled-services .service.share-deprecated{opacity:.5;padding:5px;text-decoration:line-through}#available-services .service.share-deprecated{display:none}li.service span:before{color:#555;display:inline-block;-webkit-font-smoothing:antialiased;font:normal 18px/1 social-logos;vertical-align:top;position:relative;top:1px;margin-right:3px;width:16px;height:16px;text-align:center}li.service.share-print span:before{content:'\f469'}li.service.share-digg span:before{content:'\f221'}li.service.share-email span:before{content:'\f410'}li.service.share-linkedin span:before{content:'\f207'}li.service.share-twitter span:before{content:'\f202'}li.service.share-reddit span:before{content:'\f222'}li.service.share-tumblr span:before{content:'\f214'}li.service.share-pocket span:before{content:'\f224'}li.service.share-pinterest span:before{content:'\f209'}li.service.share-facebook span:before{content:'\f203'}li.service.share-press-this span:before{content:'\f205'}li.service.share-telegram span:before{content:'\f606'}li.service.share-jetpack-whatsapp span:before{content:'\f608'}li.service.share-skype span:before{content:'\f220'}body.settings_page_sharing ul.preview{float:left;margin:0}body.settings_page_sharing ul.preview li.preview-item,body.settings_page_sharing ul.preview li.preview-item a{cursor:default;text-decoration:none}div.sd-social-icon .inner li.preview-item a span,div.sd-social-icon ul.preview li.preview-item a span{display:none}div.sd-social-icon ul.preview li.preview-item.preview-custom a span{display:inline-block}.services .preview li.share-custom a{text-decoration:none}.services ul li.end-fix{clear:both;float:none;visibility:hidden;padding:0;margin:0;height:20px;width:0}#enabled-services h2{font-size:20px;padding-top:0;font-weight:400!important;color:#999}body.settings_page_sharing #live-preview h2{font-size:20px;font-weight:400!important;color:#e3e3e3}body.settings_page_sharing .clearing{clear:both}body.settings_page_sharing .options .options-left{float:left}body.settings_page_sharing .input label{font-size:11px;line-height:16px}body.settings_page_sharing .advanced-form{padding:10px 14px 8px 10px;margin-left:-24px;display:none;border-top:1px #e3e3e3 solid;margin-top:4px}body.settings_page_sharing .utility{float:right;padding-top:10px;padding-right:10px;font-size:10px}body.settings_page_sharing .advanced input[type=submit]{float:left;margin-top:10px;margin-right:10px}.services li.dropzone{border:1px dashed #999;border-radius:3px;background:#e3e3e3;margin-right:10px;padding:5px;height:18px}.advanced-form .form-table th{width:auto!important}.advanced-form .button-secondary{margin-top:0!important}#hidden-drop-target{background:#e1e1e1;border:1px solid #cdcdcd;width:29%;padding:10px;vertical-align:top}#hidden-drop-target p{font-size:13px;font-style:italic;margin:0 0 10px 0}.preview li.preview-item{background-position:0 5px;cursor:default}.preview .option-smart-on{margin:3px 5px 0 0}.preview-digg .option-smart-on{background:url(images/smart-digg.png) no-repeat top left;background-size:76px 17px;width:76px;height:17px;margin-top:2px}.preview-reddit .option-smart-on{background:url(images/smart-reddit.png) no-repeat top left;background-size:104px 21px;width:104px;height:21px}.preview-facebook .option-smart-on{background:url(images/smart-like.png) no-repeat top left;background-size:85px 20px;width:85px;height:20px}.preview-twitter .option-smart-on{background:url(images/smart-twitter.png?1) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-linkedin .option-smart-on{background:url(images/linkedin-smart.png) no-repeat top center;background-size:99px 18px;width:99px;height:20px}.preview-tumblr .option-smart-on{background:url(images/smart-tumblr.png) no-repeat top left;background-size:62px 20px;width:62px;height:20px}.preview-pinterest .option-smart-on{background:url(images/smart-pinterest.png) no-repeat top left;background-size:39px 20px;width:39px;height:20px}.preview-pocket .option-smart-on{background:url(images/smart-pocket.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-skype .option-smart-on{background:url(images/smart-skype.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-item.share-deprecated{opacity:.5}.preview-item.share-deprecated a span{text-decoration:line-through}@media (-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.preview-digg .option-smart-on{background-image:url(images/smart-digg@2x.png)}.preview-reddit .option-smart-on{background-image:url(images/smart-reddit@2x.png)}.preview-facebook .option-smart-on{background-image:url(images/smart-like@2x.png)}.preview-twitter .option-smart-on{background-image:url(images/smart-twitter@2x.png?1)}.preview-linkedin .option-smart-on{background-image:url(images/linkedin-smart@2x.png)}.preview-tumblr .option-smart-on{background-image:url(images/smart-tumblr@2x.png)}.preview-pinterest .option-smart-on{background-image:url(images/smart-pinterest@2x.png)}.preview-pocket .option-smart-on{background-image:url(images/smart-pocket@2x.png)}.preview-skype .option-smart-on{background-image:url(images/smart-skype@2x.png)}}.services .sharing-hidden li{background-color:transparent}.sharing-hidden li.share-end{clear:both;height:0;padding:0!important;margin:0!important;width:0;visibility:hidden;float:none}.preview .sharing-label{font-weight:700;border:0;padding:4px 6px 0 0}#services-config a.remove{background:#ddd;color:#fff;padding:0 4px 2px;border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px;text-decoration:none;font-weight:700;font-size:10px}#services-config a.remove:hover{background:red}.sd-social-icon .inner a.sd-button span,.sd-social-icon .inner a.share-icon span{display:inline-block;overflow:hidden;width:0;text-indent:100%} \ No newline at end of file
+#services-config{min-width:700px;width:100%;float:left}#services-config h3{font-weight:400;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap;color:#464646}#available-services,#enabled-services,#live-preview{padding:0;width:100%;padding-top:20px;border-spacing:0}#enabled-services .ui-sortable{min-height:50px}#enabled-services{padding-bottom:20px}#available-services,#enabled-services{border-bottom:2px solid #ccc}#live-preview{border-bottom:1px solid #dcdcde;padding-bottom:60px}#available-services h3,#enabled-services h3,#live-preview h3{padding:0;margin-top:0;margin-bottom:1em}body.settings_page_sharing .description{width:180px;vertical-align:top}body.settings_page_sharing .description p{font-size:13px;font-style:italic}body.settings_page_sharing .services{padding:0 20px;vertical-align:top}body.settings_page_sharing .services ul li{float:left;cursor:move}body.settings_page_sharing .services ul li.divider{border:none;padding:0;background:0 0;cursor:default}body.settings_page_sharing ul.services-hidden{margin-bottom:0}#available-services .service,#enabled-services .service{margin-right:10px;padding:5px 10px 5px 5px;border-radius:3px;border:1px solid #bbb;background:#f8f8f8;background-repeat:no-repeat;background-position:center center}#available-services .service:hover,#enabled-services .service:hover{background:#fff;border:1px solid #bbb;box-shadow:0 1px 3px rgba(0,0,0,.2)}#available-services .service.share-deprecated,#enabled-services .service.share-deprecated{opacity:.5;padding:5px;text-decoration:line-through}#available-services .service.share-deprecated{display:none}li.service span:before{color:#555;display:inline-block;-webkit-font-smoothing:antialiased;font:normal 18px/1 social-logos;vertical-align:top;position:relative;top:1px;margin-right:3px;width:16px;height:16px;text-align:center}li.service.share-print span:before{content:'\f469'}li.service.share-digg span:before{content:'\f221'}li.service.share-email span:before{content:'\f410'}li.service.share-linkedin span:before{content:'\f207'}li.service.share-twitter span:before{content:'\f202'}li.service.share-reddit span:before{content:'\f222'}li.service.share-tumblr span:before{content:'\f214'}li.service.share-pocket span:before{content:'\f224'}li.service.share-pinterest span:before{content:'\f209'}li.service.share-facebook span:before{content:'\f203'}li.service.share-press-this span:before{content:'\f205'}li.service.share-telegram span:before{content:'\f606'}li.service.share-jetpack-whatsapp span:before{content:'\f608'}li.service.share-skype span:before{content:'\f220'}body.settings_page_sharing ul.preview{float:left;margin:0}body.settings_page_sharing ul.preview li.preview-item,body.settings_page_sharing ul.preview li.preview-item a{cursor:default;text-decoration:none}div.sd-social-icon .inner li.preview-item a span,div.sd-social-icon ul.preview li.preview-item a span{display:none}div.sd-social-icon ul.preview li.preview-item.preview-custom a span{display:inline-block}.services .preview li.share-custom a{text-decoration:none}.services ul li.end-fix{clear:both;float:none;visibility:hidden;padding:0;margin:0;height:20px;width:0}#enabled-services h2{font-size:20px;padding-top:0;font-weight:400!important;color:#999}body.settings_page_sharing #live-preview h2{font-size:20px;font-weight:400!important;color:#e3e3e3}body.settings_page_sharing .clearing{clear:both}body.settings_page_sharing .options .options-left{float:left}body.settings_page_sharing .input label{font-size:11px;line-height:16px}body.settings_page_sharing .advanced-form{padding:10px 14px 8px 10px;margin-left:-24px;display:none;border-top:1px #e3e3e3 solid;margin-top:4px}body.settings_page_sharing .utility{float:right;padding-top:10px;padding-right:10px;font-size:10px}body.settings_page_sharing .advanced input[type=submit]{float:left;margin-top:10px;margin-right:10px}.services li.dropzone{border:1px dashed #999;border-radius:3px;background:#e3e3e3;margin-right:10px;padding:5px;height:18px}.advanced-form .form-table th{width:auto!important}.advanced-form .button-secondary{margin-top:0!important}#hidden-drop-target{background:#e1e1e1;border:1px solid #cdcdcd;width:29%;padding:10px;vertical-align:top}#hidden-drop-target p{font-size:13px;font-style:italic;margin:0 0 10px 0}.preview li.preview-item{background-position:0 5px;cursor:default}.preview .option-smart-on{margin:3px 5px 0 0}.preview-digg .option-smart-on{background:url(images/smart-digg.png) no-repeat top left;background-size:76px 17px;width:76px;height:17px;margin-top:2px}.preview-reddit .option-smart-on{background:url(images/smart-reddit.png) no-repeat top left;background-size:104px 21px;width:104px;height:21px}.preview-facebook .option-smart-on{background:url(images/smart-like.png) no-repeat top left;background-size:85px 20px;width:85px;height:20px}.preview-twitter .option-smart-on{background:url(images/smart-twitter.png?1) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-linkedin .option-smart-on{background:url(images/linkedin-smart.png) no-repeat top center;background-size:99px 18px;width:99px;height:20px}.preview-tumblr .option-smart-on{background:url(images/smart-tumblr.png) no-repeat top left;background-size:62px 20px;width:62px;height:20px}.preview-pinterest .option-smart-on{background:url(images/smart-pinterest.png) no-repeat top left;background-size:39px 20px;width:39px;height:20px}.preview-pocket .option-smart-on{background:url(images/smart-pocket.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-skype .option-smart-on{background:url(images/smart-skype.png) no-repeat top left;background-size:60px 20px;width:60px;height:20px}.preview-item.share-deprecated{opacity:.5}.preview-item.share-deprecated a span{text-decoration:line-through}@media (-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.preview-digg .option-smart-on{background-image:url(images/smart-digg@2x.png)}.preview-reddit .option-smart-on{background-image:url(images/smart-reddit@2x.png)}.preview-facebook .option-smart-on{background-image:url(images/smart-like@2x.png)}.preview-twitter .option-smart-on{background-image:url(images/smart-twitter@2x.png?1)}.preview-linkedin .option-smart-on{background-image:url(images/linkedin-smart@2x.png)}.preview-tumblr .option-smart-on{background-image:url(images/smart-tumblr@2x.png)}.preview-pinterest .option-smart-on{background-image:url(images/smart-pinterest@2x.png)}.preview-pocket .option-smart-on{background-image:url(images/smart-pocket@2x.png)}.preview-skype .option-smart-on{background-image:url(images/smart-skype@2x.png)}}.services .sharing-hidden li{background-color:transparent}.sharing-hidden li.share-end{clear:both;height:0;padding:0!important;margin:0!important;width:0;visibility:hidden;float:none}.preview .sharing-label{font-weight:700;border:0;padding:4px 6px 0 0}#services-config a.remove{background:#dcdcde;color:#fff;padding:0 4px 2px;border-radius:15px;-moz-border-radius:15px;-webkit-border-radius:15px;text-decoration:none;font-weight:700;font-size:10px}#services-config a.remove:hover{background:red}.sd-social-icon .inner a.sd-button span,.sd-social-icon .inner a.share-icon span{display:inline-block;overflow:hidden;width:0;text-indent:100%} \ No newline at end of file
diff --git a/plugins/jetpack/modules/sharedaddy/amp-sharing.css b/plugins/jetpack/modules/sharedaddy/amp-sharing.css
new file mode 100644
index 00000000..5d7932e0
--- /dev/null
+++ b/plugins/jetpack/modules/sharedaddy/amp-sharing.css
@@ -0,0 +1,119 @@
+amp-social-share,
+.amp-social-share {
+ border-radius: 50%;
+ color: #fff;
+ -webkit-border-radius: 50%;
+ position: relative;
+ line-height: 1;
+ width: 32px;
+ height: 32px;
+ margin: 0 5px 5px 0;
+ vertical-align: middle;
+}
+
+amp-social-share::before,
+.amp-social-share::before {
+ display: inline-block;
+ font: normal 18px/1 'social-logos';
+ padding: 7px;
+ position: relative;
+ top: 1px;
+ vertical-align: top;
+ text-align: center;
+}
+
+.amp-social-share.print {
+ background: #e9e9e9;
+ font-size: 0;
+ cursor: pointer;
+ display: inline-block;
+ vertical-align: middle;
+ border: none;
+ padding: 0;
+}
+
+.amp-social-share.print::before {
+ content: '\f469';
+ color: #656565;
+}
+
+amp-social-share[type='tumblr'] {
+ background: #2c4762;
+}
+
+amp-social-share[type='tumblr']::before {
+ content: '\f607';
+}
+
+amp-social-share[type='facebook'] {
+ background: #1877F2;
+}
+
+amp-social-share[type='facebook']::before {
+ content: '\f203';
+}
+
+amp-social-share[type='twitter'] {
+ background: #00acee;
+}
+
+amp-social-share[type='twitter']::before {
+ content: '\f202';
+}
+
+amp-social-share[type='pinterest'] {
+ background: #ca1f27;
+}
+
+amp-social-share[type='pinterest']::before {
+ content: '\f210';
+}
+
+amp-social-share[type='telegram'] {
+ background: #0088cc;
+}
+
+amp-social-share[type='telegram']::before {
+ content: '\f606';
+}
+
+amp-social-share[type='linkedin'] {
+ background: #0077b5;
+}
+
+amp-social-share[type='linkedin']::before {
+ content: '\f207';
+}
+
+amp-social-share[type='pocket'] {
+ background: #ee4056;
+}
+
+amp-social-share[type='pocket']::before {
+ content: '\f224';
+}
+
+amp-social-share[type='reddit'] {
+ background: #cee3f8;
+ color: #555;
+}
+
+amp-social-share[type='reddit']::before {
+ content: '\f222';
+}
+
+amp-social-share[type='skype'] {
+ background: #00AFF0;
+}
+
+amp-social-share[type='skype']::before {
+ content: '\f220';
+}
+
+amp-social-share[type='whatsapp'] {
+ background: #43d854;
+}
+
+amp-social-share[type='whatsapp']::before {
+ content: '\f608';
+}
diff --git a/plugins/jetpack/modules/sharedaddy/images/smart-like.png b/plugins/jetpack/modules/sharedaddy/images/smart-like.png
index 368a6c11..23a7eb4c 100644
--- a/plugins/jetpack/modules/sharedaddy/images/smart-like.png
+++ b/plugins/jetpack/modules/sharedaddy/images/smart-like.png
Binary files differ
diff --git a/plugins/jetpack/modules/sharedaddy/images/smart-like@2x.png b/plugins/jetpack/modules/sharedaddy/images/smart-like@2x.png
index 7ad4d638..da065f60 100644
--- a/plugins/jetpack/modules/sharedaddy/images/smart-like@2x.png
+++ b/plugins/jetpack/modules/sharedaddy/images/smart-like@2x.png
Binary files differ
diff --git a/plugins/jetpack/modules/sharedaddy/recaptcha.php b/plugins/jetpack/modules/sharedaddy/recaptcha.php
index 58ae6563..b5946404 100644
--- a/plugins/jetpack/modules/sharedaddy/recaptcha.php
+++ b/plugins/jetpack/modules/sharedaddy/recaptcha.php
@@ -73,7 +73,9 @@ class Jetpack_ReCaptcha {
public function get_default_config() {
return array(
'language' => get_locale(),
- 'script_async' => true,
+ 'script_async' => false,
+ 'script_defer' => true,
+ 'script_lazy' => false,
'tag_class' => 'g-recaptcha',
'tag_attributes' => array(
'theme' => 'light',
@@ -128,11 +130,25 @@ class Jetpack_ReCaptcha {
if ( true !== $resp_decoded['success'] ) {
return new WP_Error( $error_code, $error_message );
}
-
// Validate the hostname matches expected source
if ( isset( $resp_decoded['hostname'] ) ) {
$url = wp_parse_url( get_home_url() );
- if ( $url['host'] !== $resp_decoded['hostname'] ) {
+
+ /**
+ * Allow other valid hostnames.
+ *
+ * This can be useful in cases where the token hostname is expected to be
+ * different from the get_home_url (ex. AMP recaptcha token contains a different hostname)
+ *
+ * @module sharedaddy
+ *
+ * @since 9.1.0
+ *
+ * @param array [ $url['host'] ] List of the valid hostnames to check against.
+ */
+ $valid_hostnames = apply_filters( 'jetpack_recaptcha_valid_hostnames', array( $url['host'] ) );
+
+ if ( ! in_array( $resp_decoded['hostname'], $valid_hostnames, true ) ) {
return new WP_Error( 'unexpected-host', $this->error_codes['unexpected-hostname'] );
}
}
@@ -166,23 +182,42 @@ class Jetpack_ReCaptcha {
* @return string
*/
public function get_recaptcha_html() {
- return sprintf(
+ $url = sprintf(
+ 'https://www.google.com/recaptcha/api.js?hl=%s',
+ rawurlencode( $this->config['language'] )
+ );
+
+ $html = sprintf(
'
<div
class="%s"
data-sitekey="%s"
data-theme="%s"
data-type="%s"
- data-tabindex="%s"></div>
- <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?hl=%s"%s></script>
+ data-tabindex="%s"
+ data-lazy="%s"
+ data-url="%s"></div>
',
esc_attr( $this->config['tag_class'] ),
esc_attr( $this->site_key ),
esc_attr( $this->config['tag_attributes']['theme'] ),
esc_attr( $this->config['tag_attributes']['type'] ),
esc_attr( $this->config['tag_attributes']['tabindex'] ),
- rawurlencode( $this->config['language'] ),
- $this->config['script_async'] ? ' async' : ''
+ $this->config['script_lazy'] ? 'true' : 'false',
+ esc_attr( $url )
);
+
+ if ( ! $this->config['script_lazy'] ) {
+ $html = $html . sprintf(
+ // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
+ '<script src="%s"%s%s></script>
+ ',
+ $url,
+ $this->config['script_async'] && ! $this->config['script_defer'] ? ' async' : '',
+ $this->config['script_defer'] ? ' defer' : ''
+ );
+ }
+
+ return $html;
}
}
diff --git a/plugins/jetpack/modules/sharedaddy/sharedaddy.php b/plugins/jetpack/modules/sharedaddy/sharedaddy.php
index ad70d3ea..1abe651d 100644
--- a/plugins/jetpack/modules/sharedaddy/sharedaddy.php
+++ b/plugins/jetpack/modules/sharedaddy/sharedaddy.php
@@ -33,7 +33,7 @@ function sharing_email_send_post( $data ) {
']/';
$needs_encoding =
- // If it contains any blacklisted chars,
+ // If it contains any blocked chars.
preg_match( $name_needs_encoding_regex, $s_name ) ||
// Or if we can't use `mb_convert_encoding`
! function_exists( 'mb_convert_encoding' ) ||
@@ -241,31 +241,76 @@ function sharing_disable_js() {
function sharing_global_resources() {
$disable = get_option( 'sharedaddy_disable_resources' );
-?>
+ ?>
<tr valign="top">
- <th scope="row"><label for="disable_css"><?php _e( 'Disable CSS and JS', 'jetpack' ); ?></label></th>
+ <th scope="row"><label for="disable_css"><?php esc_html_e( 'Disable CSS and JS', 'jetpack' ); ?></label></th>
<td>
- <input id="disable_css" type="checkbox" name="disable_resources" <?php if ( $disable == 1 ) echo ' checked="checked"'; ?>/> <small><em><?php _e( 'Advanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.', 'jetpack' ); ?></em></small>
+ <?php
+ printf(
+ '<input id="disable_css" type="checkbox" name="disable_resources"%1$s /> <small><em>%2$s</em></small>',
+ ( 1 == $disable ) ? ' checked="checked"' : '', // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ esc_html__( 'Advanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.', 'jetpack' )
+ );
+ ?>
</td>
</tr>
-<?php
+ <?php
}
function sharing_global_resources_save() {
update_option( 'sharedaddy_disable_resources', isset( $_POST['disable_resources'] ) ? 1 : 0 );
}
+/**
+ * Returns the Recaptcha site/public key.
+ *
+ * Supports legacy RECAPTCHA_PUBLIC_KEY or RECAPTCHA_SITE_KEY.
+ *
+ * @return string
+ */
+function sharing_recaptcha_site_key() {
+ if ( ! defined( 'RECAPTCHA_PUBLIC_KEY' ) && ! defined( 'RECAPTCHA_SITE_KEY' ) ) {
+ return '';
+ }
+
+ if ( defined( 'RECAPTCHA_PUBLIC_KEY' ) && ! defined( 'RECAPTCHA_SITE_KEY' ) ) {
+ define( 'RECAPTCHA_SITE_KEY', RECAPTCHA_PUBLIC_KEY );
+ }
+
+ return RECAPTCHA_SITE_KEY;
+}
+
+/**
+ * Returns the Recaptcha private/secret key.
+ *
+ * Supports legacy RECAPTCHA_PRIVATE_KEY or RECAPTCHA_SECRET_KEY.
+ *
+ * @return string
+ */
+function sharing_recaptcha_secret_key() {
+ if ( ! defined( 'RECAPTCHA_PRIVATE_KEY' ) && ! defined( 'RECAPTCHA_SECRET_KEY' ) ) {
+ return '';
+ }
+
+ if ( defined( 'RECAPTCHA_PRIVATE_KEY' ) && ! defined( 'RECAPTCHA_SECRET_KEY' ) ) {
+ define( 'RECAPTCHA_SECRET_KEY', RECAPTCHA_PRIVATE_KEY );
+ }
+
+ return RECAPTCHA_SECRET_KEY;
+
+}
+
function sharing_email_dialog() {
require_once plugin_dir_path( __FILE__ ) . 'recaptcha.php';
- $recaptcha = new Jetpack_ReCaptcha( RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY );
+ $recaptcha = new Jetpack_ReCaptcha( sharing_recaptcha_site_key(), sharing_recaptcha_secret_key(), array( 'script_lazy' => true ) );
echo $recaptcha->get_recaptcha_html(); // xss ok
}
function sharing_email_check( $true, $post, $data ) {
require_once plugin_dir_path( __FILE__ ) . 'recaptcha.php';
- $recaptcha = new Jetpack_ReCaptcha( RECAPTCHA_PUBLIC_KEY, RECAPTCHA_PRIVATE_KEY );
+ $recaptcha = new Jetpack_ReCaptcha( sharing_recaptcha_site_key(), sharing_recaptcha_secret_key(), array( 'script_lazy' => true ) );
$response = ! empty( $_POST['g-recaptcha-response'] ) ? $_POST['g-recaptcha-response'] : '';
$result = $recaptcha->verify( $response, $_SERVER['REMOTE_ADDR'] );
@@ -283,7 +328,7 @@ add_action( 'sharing_admin_update', 'sharing_global_resources_save' );
add_action( 'plugin_action_links_'.basename( dirname( __FILE__ ) ).'/'.basename( __FILE__ ), 'sharing_plugin_settings', 10, 4 );
add_filter( 'plugin_row_meta', 'sharing_add_plugin_settings', 10, 2 );
-if ( defined( 'RECAPTCHA_PUBLIC_KEY' ) && defined( 'RECAPTCHA_PRIVATE_KEY' ) ) {
+if ( sharing_recaptcha_site_key() && sharing_recaptcha_secret_key() ) {
add_action( 'sharing_email_dialog', 'sharing_email_dialog' );
add_filter( 'sharing_email_check', 'sharing_email_check', 10, 3 );
}
diff --git a/plugins/jetpack/modules/sharedaddy/sharing-service.php b/plugins/jetpack/modules/sharedaddy/sharing-service.php
index 823dd94d..f6d80dc3 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing-service.php
+++ b/plugins/jetpack/modules/sharedaddy/sharing-service.php
@@ -1,6 +1,8 @@
<?php
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status;
use Automattic\Jetpack\Sync\Settings;
include_once dirname( __FILE__ ) . '/sharing-sources.php';
@@ -11,6 +13,15 @@ class Sharing_Service {
private $global = false;
public $default_sharing_label = '';
+ /**
+ * Initialize the sharing service.
+ * Only run this method once upon module loading.
+ */
+ public static function init() {
+ add_filter( 'the_content', 'sharing_display', 19 );
+ add_filter( 'the_excerpt', 'sharing_display', 19 );
+ }
+
public function __construct() {
$this->default_sharing_label = __( 'Share this:', 'jetpack' );
}
@@ -19,8 +30,7 @@ class Sharing_Service {
* Gets a generic list of all services, without any config
*/
public function get_all_services_blog() {
- $options = get_option( 'sharing-options' );
-
+ $options = get_option( 'sharing-options' );
$all = $this->get_all_services();
$services = array();
@@ -658,7 +668,7 @@ function sharing_process_requests() {
global $post;
// Only process if: single post and share=X defined
- if ( ( is_page() || is_single() ) && isset( $_GET['share'] ) ) {
+ if ( ( is_page() || is_single() ) && isset( $_GET['share'] ) && is_string( $_GET['share'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$sharer = new Sharing_Service();
$service = $sharer->get_service( $_GET['share'] );
@@ -670,6 +680,15 @@ function sharing_process_requests() {
add_action( 'template_redirect', 'sharing_process_requests', 9 );
/**
+ * Gets the url to customise the sharing buttons in Calypso.
+ *
+ * @return string the customisation URL or null if it couldn't be determinde.
+ */
+function get_sharing_buttons_customisation_url() {
+ return Redirect::get_url( 'calypso-marketing-sharing-buttons', array( 'site' => ( new Status() )->get_site_suffix() ) );
+}
+
+/**
* Append sharing links to text.
*
* @param string $text The original text to append sharing links onto.
@@ -765,6 +784,11 @@ function sharing_display( $text = '', $echo = false ) {
$show = false;
}
+ // Hide on password protected posts unless password is provided.
+ if ( post_password_required( $post->ID ) ) {
+ $show = false;
+ }
+
/**
* Filter the Sharing buttons' Ajax action name Jetpack checks for.
* This allows the use of the buttons with your own Ajax implementation.
@@ -858,6 +882,15 @@ function sharing_display( $text = '', $echo = false ) {
$sharing_content .= implode( '', $parts );
$sharing_content .= '<li class="share-end"></li></ul>';
+ // Link to customization options if user can manage them.
+ if ( current_user_can( 'manage_options' ) ) {
+ $link_url = get_sharing_buttons_customisation_url();
+ if ( ! empty( $link_url ) ) {
+ $link_text = __( 'Customize buttons', 'jetpack' );
+ $sharing_content .= '<p class="share-customize-link"><a href="' . esc_url( $link_url ) . '" target="_blank" rel="noopener noreferrer">' . esc_html( $link_text ) . '</a></p>';
+ }
+ }
+
if ( count( $enabled['hidden'] ) > 0 ) {
$sharing_content .= '<div class="sharing-hidden"><div class="inner" style="display: none;';
@@ -904,7 +937,7 @@ function sharing_display( $text = '', $echo = false ) {
if ( defined( 'JETPACK__VERSION' ) ) {
$ver = JETPACK__VERSION;
} else {
- $ver = '20141212';
+ $ver = '20211226';
}
// @todo: Investigate if we can load this JS in the footer instead.
@@ -914,7 +947,7 @@ function sharing_display( $text = '', $echo = false ) {
'_inc/build/sharedaddy/sharing.min.js',
'modules/sharedaddy/sharing.js'
),
- array( 'jquery' ),
+ array(),
$ver,
false
);
@@ -944,8 +977,6 @@ function sharing_display( $text = '', $echo = false ) {
}
}
-add_filter( 'the_content', 'sharing_display', 19 );
-add_filter( 'the_excerpt', 'sharing_display', 19 );
function get_base_recaptcha_lang_code() {
$base_recaptcha_lang_code_mapping = array(
@@ -963,7 +994,7 @@ function get_base_recaptcha_lang_code() {
'tr' => 'tr',
);
- $blog_lang_code = function_exists( 'get_blog_lang_code' ) ? get_blog_lang_code() : get_bloginfo( 'language' );
+ $blog_lang_code = get_bloginfo( 'language' );
if ( isset( $base_recaptcha_lang_code_mapping[ $blog_lang_code ] ) ) {
return $base_recaptcha_lang_code_mapping[ $blog_lang_code ];
}
@@ -971,3 +1002,5 @@ function get_base_recaptcha_lang_code() {
// if no base mapping is found return default 'en'
return 'en';
}
+
+Sharing_Service::init();
diff --git a/plugins/jetpack/modules/sharedaddy/sharing-sources.php b/plugins/jetpack/modules/sharedaddy/sharing-sources.php
index d9954a96..d4632e79 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing-sources.php
+++ b/plugins/jetpack/modules/sharedaddy/sharing-sources.php
@@ -1,5 +1,7 @@
<?php
+use Automattic\Jetpack\Device_Detection\User_Agent_Info;
+
abstract class Sharing_Source {
public $button_style;
public $smart;
@@ -244,6 +246,51 @@ abstract class Sharing_Source {
return false;
}
+ /**
+ * Get the AMP specific markup for a sharing button.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ // Only display markup if we're on a post.
+ if ( empty( $post ) ) {
+ return false;
+ }
+
+ return $this->build_amp_markup();
+ }
+
+ /**
+ * Generates and returns the markup for an AMP sharing button.
+ *
+ * @param array $attrs Custom attributes for rendering the social icon.
+ */
+ protected function build_amp_markup( $attrs = array() ) {
+
+ $title = sprintf(
+ /* translators: placeholder is a service name, such as "Twitter" or "Facebook". */
+ __( 'Click to share on %s', 'jetpack' ),
+ $this->get_name()
+ );
+
+ $attrs = array_merge(
+ array(
+ 'type' => $this->get_id(),
+ 'height' => '32px',
+ 'width' => '32px',
+ 'aria-label' => $title,
+ 'title' => $title,
+ ),
+ $attrs
+ );
+ $sharing_link = '<amp-social-share';
+ foreach ( $attrs as $key => $value ) {
+ $sharing_link .= sprintf( ' %s="%s"', sanitize_key( $key ), esc_attr( $value ) );
+ }
+ $sharing_link .= '></amp-social-share>';
+ return $sharing_link;
+ }
+
public function display_preview( $echo = true, $force_smart = false, $button_style = null ) {
$text = '&nbsp;';
$button_style = ( ! empty( $button_style ) ) ? $button_style : $this->button_style;
@@ -274,11 +321,13 @@ abstract class Sharing_Source {
implode( ' ', $klasses ),
esc_attr(
$is_deprecated
+ /* translators: %1$s is the name of a deprecated Sharing Service like "Google+" */
? sprintf( __( 'The %1$s service has shut down. This sharing button is not displayed to your visitors and should be removed.', 'jetpack' ), $this->get_name() )
: $this->get_name()
),
esc_html(
$is_deprecated
+ /* translators: %1$s is the name of a deprecated Sharing Service like "Google+" */
? sprintf( __( '%1$s has shut down', 'jetpack' ), $this->get_name() )
: $text
)
@@ -339,6 +388,19 @@ abstract class Sharing_Source {
do_action( 'sharing_bump_stats', array( 'service' => $this, 'post' => $post ) );
}
+ /**
+ * Redirect to an external social network site to finish sharing.
+ *
+ * @param string $url Sharing URL for a given service.
+ */
+ public function redirect_request( $url ) {
+ wp_redirect( $url ); // phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect -- We allow external redirects here; we define them ourselves.
+
+ // We set up this custom header to indicate to search engines not to index this page.
+ header( 'X-Robots-Tag: noindex, nofollow' );
+ die();
+ }
+
public function js_dialog( $name, $params = array() ) {
if ( true !== $this->open_link_in_new ) {
return;
@@ -360,14 +422,38 @@ abstract class Sharing_Source {
// Add JS after sharing-js has been enqueued.
wp_add_inline_script( 'sharing-js',
"var windowOpen;
- jQuery( document.body ).on( 'click', 'a.share-$name', function() {
- // If there's another sharing window open, close it.
- if ( 'undefined' !== typeof windowOpen ) {
- windowOpen.close();
+ ( function () {
+ function matches( el, sel ) {
+ return !! (
+ el.matches && el.matches( sel ) ||
+ el.msMatchesSelector && el.msMatchesSelector( sel )
+ );
}
- windowOpen = window.open( jQuery( this ).attr( 'href' ), 'wpcom$name', '$opts' );
- return false;
- });"
+
+ document.body.addEventListener( 'click', function ( event ) {
+ if ( ! event.target ) {
+ return;
+ }
+
+ var el;
+ if ( matches( event.target, 'a.share-$name' ) ) {
+ el = event.target;
+ } else if ( event.target.parentNode && matches( event.target.parentNode, 'a.share-$name' ) ) {
+ el = event.target.parentNode;
+ }
+
+ if ( el ) {
+ event.preventDefault();
+
+ // If there's another sharing window open, close it.
+ if ( typeof windowOpen !== 'undefined' ) {
+ windowOpen.close();
+ }
+ windowOpen = window.open( el.getAttribute( 'href' ), 'wpcom$name', '$opts' );
+ return false;
+ }
+ } );
+ } )();"
);
}
}
@@ -395,6 +481,15 @@ abstract class Deprecated_Sharing_Source extends Sharing_Source {
return get_permalink( $post_id );
}
+ /**
+ * No AMP display for deprecated sources.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ final public function get_amp_display( $post ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return false;
+ }
+
final public function display_preview( $echo = true, $force_smart = false, $button_style = null ) {
return parent::display_preview( $echo, false, $button_style );
}
@@ -422,7 +517,9 @@ abstract class Deprecated_Sharing_Source extends Sharing_Source {
public function display_deprecated( $post ) {
return $this->get_link(
$this->get_share_url( $post->ID ),
+ /* translators: %1$s is the name of a deprecated Sharing Service like "Google+" */
sprintf( __( '%1$s has shut down', 'jetpack' ), $this->get_name() ),
+ /* translators: %1$s is the name of a deprecated Sharing Service like "Google+" */
sprintf( __( 'The %1$s service has shut down. This sharing button is not displayed to your visitors and should be removed.', 'jetpack' ), $this->get_name() )
);
}
@@ -561,6 +658,15 @@ class Share_Email extends Sharing_Source {
}
/**
+ * No AMP display for email.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) { // phpcs:ignore
+ return false;
+ }
+
+ /**
* Outputs the hidden email dialog
*/
public function display_footer() {
@@ -818,9 +924,7 @@ class Share_Twitter extends Sharing_Source {
'https://twitter.com/intent/tweet'
);
- // Redirect to Twitter
- wp_redirect( $twitter_url );
- die();
+ parent::redirect_request( $twitter_url );
}
public function has_custom_button_style() {
@@ -864,15 +968,26 @@ class Share_Reddit extends Sharing_Source {
}
}
+ /**
+ * AMP display for Reddit.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ 'data-share-endpoint' => esc_url_raw( 'https://reddit.com/submit?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&title=' . rawurlencode( $this->get_share_title( $post->ID ) ) ),
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
public function process_request( $post, array $post_data ) {
$reddit_url = $this->http() . '://reddit.com/submit?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&title=' . rawurlencode( $this->get_share_title( $post->ID ) );
// Record stats
parent::process_request( $post, $post_data );
- // Redirect to Reddit
- wp_redirect( $reddit_url );
- die();
+ parent::redirect_request( $reddit_url );
}
}
@@ -928,26 +1043,50 @@ class Share_LinkedIn extends Sharing_Source {
// Record stats
parent::process_request( $post, $post_data );
- // Redirect to LinkedIn
- wp_redirect( $linkedin_url );
- die();
+ parent::redirect_request( $linkedin_url );
}
public function display_footer() {
if ( ! $this->smart ) {
$this->js_dialog( $this->shortname, array( 'width' => 580, 'height' => 450 ) );
} else {
- ?><script type="text/javascript">
- jQuery( document ).ready( function() {
- jQuery.getScript( 'https://platform.linkedin.com/in.js?async=true', function success() {
- IN.init();
- });
- });
- jQuery( document.body ).on( 'post-load', function() {
- if ( typeof IN != 'undefined' )
- IN.parse();
- });
- </script><?php
+ ?>
+ <script type="text/javascript">
+ ( function () {
+ var currentScript = document.currentScript;
+
+ // Helper function to load an external script.
+ function loadScript( url, cb ) {
+ var script = document.createElement( 'script' );
+ var prev = currentScript || document.getElementsByTagName( 'script' )[ 0 ];
+ script.setAttribute( 'async', true );
+ script.setAttribute( 'src', url );
+ prev.parentNode.insertBefore( script, prev );
+ script.addEventListener( 'load', cb );
+ }
+
+ function init() {
+ loadScript( 'https://platform.linkedin.com/in.js?async=true', function () {
+ if ( typeof IN !== 'undefined' ) {
+ IN.init();
+ }
+ } );
+ }
+
+ if ( document.readyState === 'loading' ) {
+ document.addEventListener( 'DOMContentLoaded', init );
+ } else {
+ init();
+ }
+
+ document.body.addEventListener( 'is.post-load', function() {
+ if ( typeof IN !== 'undefined' ) {
+ IN.parse();
+ }
+ } );
+ } )();
+ </script>
+ <?php
}
}
}
@@ -1042,15 +1181,27 @@ class Share_Facebook extends Sharing_Source {
return $this->get_link( $this->get_process_request_url( $post->ID ), _x( 'Facebook', 'share to', 'jetpack' ), __( 'Click to share on Facebook', 'jetpack' ), 'share=facebook', 'sharing-facebook-' . $post->ID );
}
+ /**
+ * AMP display for Facebook.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ /** This filter is documented in modules/sharedaddy/sharing-sources.php */
+ 'data-param-app_id' => apply_filters( 'jetpack_sharing_facebook_app_id', '249643311490' ),
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
public function process_request( $post, array $post_data ) {
$fb_url = $this->http() . '://www.facebook.com/sharer.php?u=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&t=' . rawurlencode( $this->get_share_title( $post->ID ) );
// Record stats
parent::process_request( $post, $post_data );
- // Redirect to Facebook
- wp_redirect( $fb_url );
- die();
+ parent::redirect_request( $fb_url );
}
public function display_footer() {
@@ -1076,7 +1227,7 @@ class Share_Facebook extends Sharing_Source {
?><div id="fb-root"></div>
<script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = 'https://connect.facebook.net/<?php echo $locale; ?>/sdk.js#xfbml=1<?php echo $fb_app_id; ?>&version=v2.3'; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script>
<script>
- jQuery( document.body ).on( 'post-load', function() {
+ document.body.addEventListener( 'is.post-load', function() {
if ( 'undefined' !== typeof FB ) {
FB.XFBML.parse();
}
@@ -1107,6 +1258,19 @@ class Share_Print extends Sharing_Source {
public function get_display( $post ) {
return $this->get_link( $this->get_process_request_url( $post->ID ) . ( ( is_single() || is_page() ) ? '#print': '' ), _x( 'Print', 'share to', 'jetpack' ), __( 'Click to print', 'jetpack' ) );
}
+
+ /**
+ * AMP display for Print.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ if ( empty( $post ) ) {
+ return false;
+ }
+
+ return '<button class="amp-social-share print" on="tap:AMP.print">Print</button>';
+ }
}
class Share_PressThis extends Sharing_Source {
@@ -1167,14 +1331,21 @@ class Share_PressThis extends Sharing_Source {
// Record stats
parent::process_request( $post, $post_data );
- // Redirect to Press This
- wp_redirect( $url );
- die();
+ parent::redirect_request( $url );
}
public function get_display( $post ) {
return $this->get_link( $this->get_process_request_url( $post->ID ), _x( 'Press This', 'share to', 'jetpack' ), __( 'Click to Press This!', 'jetpack' ), 'share=press-this' );
}
+
+ /**
+ * No AMP display for PressThis.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) { // phpcs:ignore
+ return false;
+ }
}
class Share_Custom extends Sharing_Advanced_Source {
@@ -1229,6 +1400,15 @@ class Share_Custom extends Sharing_Advanced_Source {
return str_replace( '<span>', '<span style="' . esc_attr( 'background-image:url("' . addcslashes( esc_url_raw( $this->icon ), '"' ) . '");' ) . '">', $str );
}
+ /**
+ * No AMP display for custom elements.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) { // phpcs:ignore
+ return false;
+ }
+
public function process_request( $post, array $post_data ) {
$url = str_replace( '&amp;', '&', $this->url );
$url = str_replace( '%post_id%', rawurlencode( $post->ID ), $url );
@@ -1269,9 +1449,7 @@ class Share_Custom extends Sharing_Advanced_Source {
// Record stats
parent::process_request( $post, $post_data );
- // Redirect
- wp_redirect( $url );
- die();
+ parent::redirect_request( $url );
}
public function display_options() {
@@ -1428,8 +1606,8 @@ class Share_Tumblr extends Sharing_Source {
// Redirect to Tumblr's sharing endpoint (a la their bookmarklet)
$url = 'https://www.tumblr.com/share?v=3&u=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&t=' . rawurlencode( $this->get_share_title( $post->ID ) ) . '&s=';
- wp_redirect( $url );
- die();
+
+ parent::redirect_request( $url );
}
public function display_footer() {
@@ -1535,11 +1713,11 @@ class Share_Pinterest extends Sharing_Source {
// If we're triggering the multi-select panel, then we don't need to redirect to Pinterest
if ( ! isset( $_GET['js_only'] ) ) {
$pinterest_url = esc_url_raw( $this->get_external_url( $post ) );
- wp_redirect( $pinterest_url );
+ parent::redirect_request( $pinterest_url );
} else {
echo '// share count bumped';
+ die();
}
- die();
}
public function display_footer() {
@@ -1556,38 +1734,69 @@ class Share_Pinterest extends Sharing_Source {
?>
<?php if ( $this->smart ) : ?>
<script type="text/javascript">
- // Pinterest shared resources
- var s = document.createElement("script");
- s.type = "text/javascript";
- s.async = true;
- <?php if ( $jetpack_pinit_over ) {
- echo "s.setAttribute('data-pin-hover', true);";
- } ?>
- s.src = window.location.protocol + "//assets.pinterest.com/js/pinit.js";
- var x = document.getElementsByTagName("script")[0];
- x.parentNode.insertBefore(s, x);
- // if 'Pin it' button has 'counts' make container wider
- jQuery(window).load( function(){ jQuery( 'li.share-pinterest a span:visible' ).closest( '.share-pinterest' ).width( '80px' ); } );
+ ( function () {
+ // Pinterest shared resources
+ var s = document.createElement( 'script' );
+ s.type = 'text/javascript';
+ s.async = true;
+ <?php
+ if ( $jetpack_pinit_over ) {
+ echo "s.setAttribute( 'data-pin-hover', true );";
+ }
+ ?>
+ s.src = window.location.protocol + '//assets.pinterest.com/js/pinit.js';
+ var x = document.getElementsByTagName( 'script' )[ 0 ];
+ x.parentNode.insertBefore(s, x);
+ // if 'Pin it' button has 'counts' make container wider
+ function init() {
+ var shares = document.querySelectorAll( 'li.share-pinterest' );
+ for ( var i = 0; i < shares.length; i++ ) {
+ var share = shares[ i ];
+ if ( share.querySelector( 'a span:visible' ) ) {
+ share.style.width = '80px';
+ }
+ }
+ }
+
+ if ( document.readyState !== 'complete' ) {
+ document.addEventListener( 'load', init );
+ } else {
+ init();
+ }
+ } )();
</script>
<?php elseif ( 'buttonPin' != $this->get_widget_type() ) : ?>
<script type="text/javascript">
- jQuery(document).ready( function(){
- jQuery('body').on('click', 'a.share-pinterest', function(e){
- e.preventDefault();
- // Load Pinterest Bookmarklet code
- var s = document.createElement("script");
- s.type = "text/javascript";
- s.src = window.location.protocol + "//assets.pinterest.com/js/pinmarklet.js?r=" + ( Math.random() * 99999999 );
- var x = document.getElementsByTagName("script")[0];
- x.parentNode.insertBefore(s, x);
- // Trigger Stats
- var s = document.createElement("script");
- s.type = "text/javascript";
- s.src = this + ( this.toString().indexOf( '?' ) ? '&' : '?' ) + 'js_only=1';
- var x = document.getElementsByTagName("script")[0];
- x.parentNode.insertBefore(s, x);
- });
- });
+ ( function () {
+ function init() {
+ document.body.addEventListener( 'click', function ( e ) {
+ if ( e.target && (
+ e.target.matches && e.target.matches( 'a.share-pinterest' ) ||
+ e.target.msMatchesSelector && e.target.msMatchesSelector( 'a.share-pinterest' )
+ ) ) {
+ e.preventDefault();
+ // Load Pinterest Bookmarklet code
+ var s = document.createElement( 'script' );
+ s.type = 'text/javascript';
+ s.src = window.location.protocol + '//assets.pinterest.com/js/pinmarklet.js?r=' + ( Math.random() * 99999999 );
+ var x = document.getElementsByTagName( 'script' )[ 0 ];
+ x.parentNode.insertBefore( s, x );
+ // Trigger Stats
+ var s = document.createElement( 'script' );
+ s.type = 'text/javascript';
+ s.src = e.target.href + ( e.target.href.indexOf( '?' ) ? '&' : '?' ) + 'js_only=1';
+ var x = document.getElementsByTagName( 'script' )[ '0' ];
+ x.parentNode.insertBefore( s, x );
+ }
+ } );
+ }
+
+ if ( document.readyState === 'loading' ) {
+ document.addEventListener( 'DOMContentLoaded', init );
+ } else {
+ init();
+ }
+ } )();
</script>
<?php endif;
}
@@ -1616,8 +1825,8 @@ class Share_Pocket extends Sharing_Source {
parent::process_request( $post, $post_data );
$pocket_url = esc_url_raw( 'https://getpocket.com/save/?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&title=' . rawurlencode( $this->get_share_title( $post->ID ) ) );
- wp_redirect( $pocket_url );
- exit;
+
+ parent::redirect_request( $pocket_url );
}
public function get_display( $post ) {
@@ -1636,16 +1845,42 @@ class Share_Pocket extends Sharing_Source {
}
+ /**
+ * AMP display for Pocket.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ 'data-share-endpoint' => esc_url_raw( 'https://getpocket.com/save/?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&title=' . rawurlencode( $this->get_share_title( $post->ID ) ) ),
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
function display_footer() {
if ( $this->smart ) :
?>
<script>
- // Don't use Pocket's default JS as it we need to force init new Pocket share buttons loaded via JS.
- function jetpack_sharing_pocket_init() {
- jQuery.getScript( 'https://widgets.getpocket.com/v1/j/btn.js?v=1' );
- }
- jQuery( document ).ready( jetpack_sharing_pocket_init );
- jQuery( document.body ).on( 'post-load', jetpack_sharing_pocket_init );
+ ( function () {
+ var currentScript = document.currentScript;
+
+ // Don't use Pocket's default JS as it we need to force init new Pocket share buttons loaded via JS.
+ function jetpack_sharing_pocket_init() {
+ var script = document.createElement( 'script' );
+ var prev = currentScript || document.getElementsByTagName( 'script' )[ 0 ];
+ script.setAttribute( 'async', true );
+ script.setAttribute( 'src', 'https://widgets.getpocket.com/v1/j/btn.js?v=1' );
+ prev.parentNode.insertBefore( script, prev );
+ }
+
+ if ( document.readyState === 'loading' ) {
+ document.addEventListener( 'DOMContentLoaded', jetpack_sharing_pocket_init );
+ } else {
+ jetpack_sharing_pocket_init();
+ }
+ document.body.addEventListener( 'is.post-load', jetpack_sharing_pocket_init );
+ } )();
</script>
<?php
else :
@@ -1669,15 +1904,29 @@ class Share_Telegram extends Sharing_Source {
public function process_request( $post, array $post_data ) {
// Record stats
parent::process_request( $post, $post_data );
+
$telegram_url = esc_url_raw( 'https://telegram.me/share/url?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&text=' . rawurlencode( $this->get_share_title( $post->ID ) ) );
- wp_redirect( $telegram_url );
- exit;
+
+ parent::redirect_request( $telegram_url );
}
public function get_display( $post ) {
return $this->get_link( $this->get_process_request_url( $post->ID ), _x( 'Telegram', 'share to', 'jetpack' ), __( 'Click to share on Telegram', 'jetpack' ), 'share=telegram' );
}
+ /**
+ * AMP display for Telegram.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ 'data-share-endpoint' => esc_url_raw( 'https://telegram.me/share/url?url=' . rawurlencode( $this->get_share_url( $post->ID ) ) . '&text=' . rawurlencode( $this->get_share_title( $post->ID ) ) ),
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
function display_footer() {
$this->js_dialog( $this->shortname, array( 'width' => 450, 'height' => 450 ) );
}
@@ -1698,20 +1947,33 @@ class Jetpack_Share_WhatsApp extends Sharing_Source {
return $this->get_link( $this->get_process_request_url( $post->ID ), _x( 'WhatsApp', 'share to', 'jetpack' ), __( 'Click to share on WhatsApp', 'jetpack' ), 'share=jetpack-whatsapp' );
}
+ /**
+ * AMP display for Whatsapp.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ 'type' => 'whatsapp',
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
public function process_request( $post, array $post_data ) {
// Record stats
parent::process_request( $post, $post_data );
// Firefox for desktop doesn't handle the "api.whatsapp.com" URL properly, so use "web.whatsapp.com"
- if ( Jetpack_User_Agent_Info::is_firefox_desktop() ) {
+ if ( User_Agent_Info::is_firefox_desktop() ) {
$url = 'https://web.whatsapp.com/send?text=';
} else {
$url = 'https://api.whatsapp.com/send?text=';
}
$url .= rawurlencode( $this->get_share_title( $post->ID ) . ' ' . $this->get_share_url( $post->ID ) );
- wp_redirect( $url );
- exit;
+
+ parent::redirect_request( $url );
}
}
@@ -1757,6 +2019,23 @@ class Share_Skype extends Sharing_Source {
$this->get_process_request_url( $post->ID ), _x( 'Skype', 'share to', 'jetpack' ), __( 'Click to share on Skype', 'jetpack' ), 'share=skype', 'sharing-skype-' . $post->ID );
}
+ /**
+ * AMP display for Skype.
+ *
+ * @param \WP_Post $post The current post being viewed.
+ */
+ public function get_amp_display( $post ) {
+ $attrs = array(
+ 'data-share-endpoint' => sprintf(
+ 'https://web.skype.com/share?url=%1$s&lang=%2$s=&source=jetpack',
+ rawurlencode( $this->get_share_url( $post->ID ) ),
+ 'en-US'
+ ),
+ );
+
+ return $this->build_amp_markup( $attrs );
+ }
+
public function process_request( $post, array $post_data ) {
$skype_url = sprintf(
'https://web.skype.com/share?url=%1$s&lang=%2$s=&source=jetpack',
@@ -1767,9 +2046,7 @@ class Share_Skype extends Sharing_Source {
// Record stats
parent::process_request( $post, $post_data );
- // Redirect to Skype
- wp_redirect( $skype_url );
- die();
+ parent::redirect_request( $skype_url );
}
public function display_footer() {
diff --git a/plugins/jetpack/modules/sharedaddy/sharing.css b/plugins/jetpack/modules/sharedaddy/sharing.css
index 2ada890d..111386d2 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing.css
+++ b/plugins/jetpack/modules/sharedaddy/sharing.css
@@ -31,7 +31,7 @@ div.sharedaddy h3.sd-title:before {
display: block;
width: 100%;
min-width: 30px;
- border-top: 1px solid #ddd;
+ border-top: 1px solid #dcdcde;
margin-bottom: 1em;
}
@@ -45,9 +45,12 @@ body.highlander-dark h3.sd-title:before {
/* Sharing services list */
+.sd-sharing {
+ margin-bottom: 1em;
+}
.sd-content ul {
padding: 0 !important;
- margin: 0 0 .7em 0 !important;
+ margin: 0 !important;
list-style: none !important;
}
@@ -142,7 +145,7 @@ body.highlander-dark h3.sd-title:before {
.sd-social-official .sd-content>ul>li .digg_button>a:hover,
.sd-social-official .sd-content>ul>li .digg_button>a:active {
color: #555;
- background: #fafafa;
+ background: #f6f7f7;
border: 1px solid #999999;
}
@@ -559,8 +562,7 @@ body .sd-social-icon .sd-content li.share-custom a span {
.sd-social-icon .sd-content ul li[class*='share-'] a.sd-button:before {
- top: 1px;
- top: 0px\9; /* IE8 and below */
+ top: 0;
}
.sd-social-icon .sd-content ul li[class*='share-'] a.sd-button.share-custom {
@@ -618,7 +620,7 @@ body .sd-social-icon .sd-content li.share-custom a span {
}
.sd-social-icon .sd-content ul li[class*='share-'].share-press-this a.sd-button {
- background: #1e8cbe;
+ background: #4f94d4;
color: #fff !important;
}
@@ -662,7 +664,7 @@ body .sd-social-icon .sd-content li.share-custom a span {
.sharing-screen-reader-text:hover,
.sharing-screen-reader-text:active,
.sharing-screen-reader-text:focus {
- background-color: #f1f1f1;
+ background-color: #f0f0f1;
border-radius: 3px;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
clip: auto !important;
@@ -753,3 +755,19 @@ div.sharedaddy.sharedaddy-dark #sharing_email {
height: 123px;
margin: 0 0 1em 0;
}
+
+.sd-content .share-customize-link {
+ margin-top: 0em;
+ line-height: 11px;
+}
+
+.sd-content .share-customize-link a {
+ font-size: 11px;
+ font-family: "Open Sans", sans-serif;
+}
+
+@media print {
+ .sharedaddy.sd-sharing-enabled {
+ display: none;
+ }
+}
diff --git a/plugins/jetpack/modules/sharedaddy/sharing.js b/plugins/jetpack/modules/sharedaddy/sharing.js
index bd027e9e..44ec1563 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing.js
+++ b/plugins/jetpack/modules/sharedaddy/sharing.js
@@ -1,369 +1,492 @@
/* global WPCOM_sharing_counts, grecaptcha */
-var sharing_js_options;
-if ( sharing_js_options && sharing_js_options.counts ) {
- var WPCOMSharing = {
- done_urls: [],
- get_counts: function() {
- var url, requests, id, service, service_request;
-
- if ( 'undefined' === typeof WPCOM_sharing_counts ) {
- return;
- }
- for ( url in WPCOM_sharing_counts ) {
- id = WPCOM_sharing_counts[ url ];
+// NOTE: This file intentionally does not make use of polyfills or libraries,
+// including jQuery. Please keep all code as IE11-compatible vanilla ES5, and
+// ensure everything is inside an IIFE to avoid global namespace pollution.
+// Code follows WordPress browser support guidelines. For an up to date list,
+// see https://make.wordpress.org/core/handbook/best-practices/browser-support/
+
+( function () {
+ var currentScript = document.currentScript;
+ var recaptchaScriptAdded = false;
+
+ // -------------------------- UTILITY FUNCTIONS -------------------------- //
+
+ // Helper function to load an external script.
+ function loadScript( url ) {
+ var script = document.createElement( 'script' );
+ var prev = currentScript || document.getElementsByTagName( 'script' )[ 0 ];
+ script.setAttribute( 'async', true );
+ script.setAttribute( 'src', url );
+ prev.parentNode.insertBefore( script, prev );
+ }
- if ( 'undefined' !== typeof WPCOMSharing.done_urls[ id ] ) {
- continue;
- }
+ // Helper matches function (not a polyfill), compatible with IE 11.
+ function matches( el, sel ) {
+ if ( Element.prototype.matches ) {
+ return el.matches( sel );
+ }
- requests = {
- // Pinterest handles share counts for both http and https
- pinterest: [
- window.location.protocol +
- '//api.pinterest.com/v1/urls/count.json?callback=WPCOMSharing.update_pinterest_count&url=' +
- encodeURIComponent( url ),
- ],
- // Facebook protocol summing has been shown to falsely double counts, so we only request the current URL
- facebook: [
- window.location.protocol +
- '//graph.facebook.com/?callback=WPCOMSharing.update_facebook_count&ids=' +
- encodeURIComponent( url ),
- ],
- };
-
- for ( service in requests ) {
- if ( ! jQuery( 'a[data-shared=sharing-' + service + '-' + id + ']' ).length ) {
- continue;
- }
+ if ( Element.prototype.msMatchesSelector ) {
+ return el.msMatchesSelector( sel );
+ }
+ }
- while ( ( service_request = requests[ service ].pop() ) ) {
- jQuery.getScript( service_request );
- }
+ // Helper closest parent node function (not a polyfill) based on
+ // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill
+ function closest( el, sel ) {
+ if ( el.closest ) {
+ return el.closest( sel );
+ }
- if ( sharing_js_options.is_stats_active ) {
- WPCOMSharing.bump_sharing_count_stat( service );
- }
- }
+ var current = el;
- WPCOMSharing.done_urls[ id ] = true;
+ do {
+ if ( matches( current, sel ) ) {
+ return current;
}
- },
+ current = current.parentElement || current.parentNode;
+ } while ( current !== null && current.nodeType === 1 );
- // get the version of the url that was stored in the dom (sharing-$service-URL)
- get_permalink: function( url ) {
- if ( 'https:' === window.location.protocol ) {
- url = url.replace( /^http:\/\//i, 'https://' );
- } else {
- url = url.replace( /^https:\/\//i, 'http://' );
- }
+ return null;
+ }
- return url;
- },
- update_facebook_count: function( data ) {
- var url, permalink;
+ // Helper function to iterate over a NodeList
+ // (since IE 11 doesn't have NodeList.prototype.forEach)
+ function forEachNode( list, fn ) {
+ for ( var i = 0; i < list.length; i++ ) {
+ var node = list[ i ];
+ fn( node, i, list );
+ }
+ }
- if ( ! data ) {
- return;
- }
+ // Helper function to remove a node from the DOM.
+ function removeNode( node ) {
+ if ( node && node.parentNode ) {
+ node.parentNode.removeChild( node );
+ }
+ }
- for ( url in data ) {
- if (
- ! data.hasOwnProperty( url ) ||
- ! data[ url ].share ||
- ! data[ url ].share.share_count
- ) {
- continue;
- }
+ // Helper functions to show/hide a node, and check its status.
+ function hideNode( node ) {
+ if ( node ) {
+ node.style.display = 'none';
+ }
+ }
- permalink = WPCOMSharing.get_permalink( url );
+ function showNode( node ) {
+ if ( node ) {
+ node.style.removeProperty( 'display' );
+ }
+ }
- if ( ! ( permalink in WPCOM_sharing_counts ) ) {
- continue;
- }
+ function isNodeHidden( node ) {
+ return ! node || node.style.display === 'none';
+ }
- WPCOMSharing.inject_share_count(
- 'sharing-facebook-' + WPCOM_sharing_counts[ permalink ],
- data[ url ].share.share_count
- );
- }
- },
- update_pinterest_count: function( data ) {
- if ( 'undefined' !== typeof data.count && data.count * 1 > 0 ) {
- WPCOMSharing.inject_share_count(
- 'sharing-pinterest-' + WPCOM_sharing_counts[ data.url ],
- data.count
- );
- }
- },
- inject_share_count: function( id, count ) {
- var $share = jQuery( 'a[data-shared=' + id + '] > span' );
- $share.find( '.share-count' ).remove();
- $share.append(
- '<span class="share-count">' + WPCOMSharing.format_count( count ) + '</span>'
- );
- },
- format_count: function( count ) {
- if ( count < 1000 ) {
- return count;
- }
- if ( count >= 1000 && count < 10000 ) {
- return String( count ).substring( 0, 1 ) + 'K+';
- }
- return '10K+';
- },
- bump_sharing_count_stat: function( service ) {
- new Image().src =
- document.location.protocol +
- '//pixel.wp.com/g.gif?v=wpcom-no-pv&x_sharing-count-request=' +
- service +
- '&r=' +
- Math.random();
- },
+ // ------------------------------- CLASSES ------------------------------- //
+
+ var PANE_SELECTOR = '.sharing-hidden .inner';
+ var PANE_DATA_ATTR = 'data-sharing-more-button-id';
+
+ // Implements a MoreButton class, which controls the lifecycle and behavior
+ // of a "more" button and its dialog.
+ function MoreButton( buttonEl ) {
+ this.button = buttonEl;
+ this.pane = closest( buttonEl, 'div' ).querySelector( PANE_SELECTOR );
+ this.openedBy = null;
+ this.recentlyOpenedByHover = false;
+
+ MoreButton.instances.push( this );
+ this.pane.setAttribute( PANE_DATA_ATTR, MoreButton.instances.length - 1 );
+
+ this.attachHandlers();
+ }
+
+ // Keep a reference to each instance, so we can get back to it from the DOM.
+ MoreButton.instances = [];
+
+ // Delay time configs.
+ MoreButton.hoverOpenDelay = 200;
+ MoreButton.recentOpenDelay = 400;
+ MoreButton.hoverCloseDelay = 300;
+
+ // Use this to avoid creating new instances for buttons which already have one.
+ MoreButton.instantiateOrReuse = function ( buttonEl ) {
+ var pane = closest( buttonEl, 'div' ).querySelector( PANE_SELECTOR );
+ var paneId = pane && pane.getAttribute( PANE_DATA_ATTR );
+
+ var existingInstance = MoreButton.instances[ paneId ];
+ if ( existingInstance ) {
+ return existingInstance;
+ }
+
+ return new MoreButton( buttonEl );
};
-}
-
-( function( $ ) {
- var $body, $sharing_email;
-
- $.fn.extend( {
- share_is_email: function() {
- return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(
- this.val()
- );
- },
- } );
-
- $body = $( document.body ).on( 'post-load', WPCOMSharing_do );
- $( document ).ready( function() {
- $sharing_email = $( '#sharing_email' );
- $body.append( $sharing_email );
- WPCOMSharing_do();
- } );
- function WPCOMSharing_do() {
- var $more_sharing_buttons;
- if ( 'undefined' !== typeof WPCOMSharing ) {
- WPCOMSharing.get_counts();
+ // Retrieve a button instance from the pane DOM element.
+ MoreButton.getButtonInstanceFromPane = function ( paneEl ) {
+ var paneId = paneEl && paneEl.getAttribute( PANE_DATA_ATTR );
+ return MoreButton.instances[ paneId ];
+ };
+
+ // Close all open More Button dialogs.
+ MoreButton.closeAll = function () {
+ for ( var i = 0; i < MoreButton.instances.length; i++ ) {
+ MoreButton.instances[ i ].close();
}
- $more_sharing_buttons = $( '.sharedaddy a.sharing-anchor' );
+ };
- $more_sharing_buttons.click( function() {
- return false;
- } );
+ MoreButton.prototype.open = function () {
+ var offset;
+ var offsetParent;
+ var parentOffset = [ 0, 0 ];
+
+ function getOffsets( el ) {
+ var rect = el.getBoundingClientRect();
+ return [
+ rect.left + ( window.scrollX || window.pageXOffset || 0 ),
+ rect.top + ( window.scrollY || window.pageYOffset || 0 ),
+ ];
+ }
- $( '.sharedaddy a' ).each( function() {
- if (
- $( this ).attr( 'href' ) &&
- $( this )
- .attr( 'href' )
- .indexOf( 'share=' ) !== -1
- ) {
- $( this ).attr( 'href', $( this ).attr( 'href' ) + '&nb=1' );
- }
- } );
+ function getStyleValue( el, prop ) {
+ return parseInt( getComputedStyle( el ).getPropertyValue( prop ) || 0 );
+ }
- // Show hidden buttons
+ offset = getOffsets( this.button );
+ offsetParent = this.button.offsetParent || document.documentElement;
- // Touchscreen device: use click.
- // Non-touchscreen device: use click if not already appearing due to a hover event
- $more_sharing_buttons.on( 'click', function() {
- var $more_sharing_button = $( this ),
- $more_sharing_pane = $more_sharing_button.parents( 'div:first' ).find( '.inner' );
+ while (
+ offsetParent &&
+ ( offsetParent === document.body || offsetParent === document.documentElement ) &&
+ getComputedStyle( offsetParent ).getPropertyValue( 'position' ) === 'static'
+ ) {
+ offsetParent = offsetParent.parentNode;
+ }
- if ( $more_sharing_pane.is( ':animated' ) ) {
- // We're in the middle of some other event's animation
- return;
+ if ( offsetParent && offsetParent !== this.button && offsetParent.nodeType === 1 ) {
+ parentOffset = getOffsets( offsetParent );
+ parentOffset = [
+ parentOffset[ 0 ] + getStyleValue( offsetParent, 'border-left-width' ),
+ parentOffset[ 1 ] + getStyleValue( offsetParent, 'border-top-width' ),
+ ];
+ }
+
+ var positionLeft =
+ offset[ 0 ] - parentOffset[ 0 ] - getStyleValue( this.button, 'margin-left' );
+ var positionTop = offset[ 1 ] - parentOffset[ 1 ] - getStyleValue( this.button, 'margin-top' );
+
+ this.pane.style.left = positionLeft + 'px';
+ this.pane.style.top = positionTop + this.button.offsetHeight + 3 + 'px';
+
+ showNode( this.pane );
+ };
+
+ MoreButton.prototype.close = function () {
+ hideNode( this.pane );
+ this.openedBy = null;
+ };
+
+ MoreButton.prototype.toggle = function () {
+ if ( isNodeHidden( this.pane ) ) {
+ this.open();
+ } else {
+ this.close();
+ }
+ };
+
+ MoreButton.prototype.resetCloseTimer = function () {
+ clearTimeout( this.closeTimer );
+ this.closeTimer = setTimeout( this.close.bind( this ), MoreButton.hoverCloseDelay );
+ };
+
+ MoreButton.prototype.attachHandlers = function () {
+ this.buttonClick = function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ this.openedBy = 'click';
+ clearTimeout( this.openTimer );
+ clearTimeout( this.closeTimer );
+
+ closeEmailDialog();
+
+ if ( this.recentlyOpenedByHover ) {
+ this.recentlyOpenedByHover = false;
+ clearTimeout( this.hoverOpenTimer );
+ this.open();
+ } else {
+ this.toggle();
+ }
+ }.bind( this );
+
+ this.buttonEnter = function () {
+ if ( ! this.openedBy ) {
+ this.openTimer = setTimeout(
+ function () {
+ closeEmailDialog();
+ this.open();
+ this.openedBy = 'hover';
+ this.recentlyOpenedByHover = true;
+ this.hoverOpenTimer = setTimeout(
+ function () {
+ this.recentlyOpenedByHover = false;
+ }.bind( this ),
+ MoreButton.recentOpenDelay
+ );
+ }.bind( this ),
+ MoreButton.hoverOpenDelay
+ );
}
+ clearTimeout( this.closeTimer );
+ }.bind( this );
- if ( true === $more_sharing_pane.data( 'justSlid' ) ) {
- // We just finished some other event's animation - don't process click event so that slow-to-react-clickers don't get confused
- return;
+ this.buttonLeave = function () {
+ if ( this.openedBy === 'hover' ) {
+ this.resetCloseTimer();
}
+ clearTimeout( this.openTimer );
+ }.bind( this );
- $sharing_email.slideUp( 200 );
+ this.paneEnter = function () {
+ clearTimeout( this.closeTimer );
+ }.bind( this );
- $more_sharing_pane
- .css( {
- left: $more_sharing_button.position().left + 'px',
- top: $more_sharing_button.position().top + $more_sharing_button.height() + 3 + 'px',
- } )
- .slideToggle( 200 );
- } );
+ this.paneLeave = function () {
+ if ( this.openedBy === 'hover' ) {
+ this.resetCloseTimer();
+ }
+ }.bind( this );
+
+ this.documentClick = function () {
+ this.close();
+ }.bind( this );
+
+ this.button.addEventListener( 'click', this.buttonClick );
+ document.addEventListener( 'click', this.documentClick );
if ( document.ontouchstart === undefined ) {
// Non-touchscreen device: use hover/mouseout with delay
- $more_sharing_buttons.hover(
- function() {
- var $more_sharing_button = $( this ),
- $more_sharing_pane = $more_sharing_button.parents( 'div:first' ).find( '.inner' ),
- timer;
-
- if ( ! $more_sharing_pane.is( ':animated' ) ) {
- // Create a timer to make the area appear if the mouse hovers for a period
- timer = setTimeout( function() {
- var handler_item_leave,
- handler_item_enter,
- handler_original_leave,
- handler_original_enter,
- close_it;
-
- $sharing_email.slideUp( 200 );
-
- $more_sharing_pane.data( 'justSlid', true );
- $more_sharing_pane
- .css( {
- left: $more_sharing_button.position().left + 'px',
- top:
- $more_sharing_button.position().top + $more_sharing_button.height() + 3 + 'px',
- } )
- .slideDown( 200, function() {
- // Mark the item as have being appeared by the hover
- $more_sharing_button.data( 'hasoriginal', true ).data( 'hasitem', false );
-
- setTimeout( function() {
- $more_sharing_pane.data( 'justSlid', false );
- }, 300 );
-
- $more_sharing_pane
- .mouseleave( handler_item_leave )
- .mouseenter( handler_item_enter );
- $more_sharing_button
- .mouseleave( handler_original_leave )
- .mouseenter( handler_original_enter );
- } );
+ this.button.addEventListener( 'mouseenter', this.buttonEnter );
+ this.button.addEventListener( 'mouseleave', this.buttonLeave );
+ this.pane.addEventListener( 'mouseenter', this.paneEnter );
+ this.pane.addEventListener( 'mouseleave', this.paneLeave );
+ }
+ };
- // The following handlers take care of the mouseenter/mouseleave for the share button and the share area - if both are left then we close the share area
- handler_item_leave = function() {
- $more_sharing_button.data( 'hasitem', false );
+ // ---------------------------- SHARE COUNTS ---------------------------- //
- if ( $more_sharing_button.data( 'hasoriginal' ) === false ) {
- var timer = setTimeout( close_it, 800 );
- $more_sharing_button.data( 'timer2', timer );
- }
- };
+ if ( window.sharing_js_options && window.sharing_js_options.counts ) {
+ var WPCOMSharing = {
+ done_urls: [],
+ get_counts: function () {
+ var url, requests, id, service, service_request;
- handler_item_enter = function() {
- $more_sharing_button.data( 'hasitem', true );
- clearTimeout( $more_sharing_button.data( 'timer2' ) );
- };
+ if ( 'undefined' === typeof WPCOM_sharing_counts ) {
+ return;
+ }
- handler_original_leave = function() {
- $more_sharing_button.data( 'hasoriginal', false );
+ for ( url in WPCOM_sharing_counts ) {
+ id = WPCOM_sharing_counts[ url ];
- if ( $more_sharing_button.data( 'hasitem' ) === false ) {
- var timer = setTimeout( close_it, 800 );
- $more_sharing_button.data( 'timer2', timer );
- }
- };
-
- handler_original_enter = function() {
- $more_sharing_button.data( 'hasoriginal', true );
- clearTimeout( $more_sharing_button.data( 'timer2' ) );
- };
-
- close_it = function() {
- $more_sharing_pane.data( 'justSlid', true );
- $more_sharing_pane.slideUp( 200, function() {
- setTimeout( function() {
- $more_sharing_pane.data( 'justSlid', false );
- }, 300 );
- } );
+ if ( 'undefined' !== typeof WPCOMSharing.done_urls[ id ] ) {
+ continue;
+ }
- // Clear all hooks
- $more_sharing_button
- .unbind( 'mouseleave', handler_original_leave )
- .unbind( 'mouseenter', handler_original_enter );
- $more_sharing_pane
- .unbind( 'mouseleave', handler_item_leave )
- .unbind( 'mouseenter', handler_item_leave );
- return false;
- };
- }, 200 );
-
- // Remember the timer so we can detect it on the mouseout
- $more_sharing_button.data( 'timer', timer );
+ requests = {
+ // Pinterest handles share counts for both http and https
+ pinterest: [
+ window.location.protocol +
+ '//api.pinterest.com/v1/urls/count.json?callback=WPCOMSharing.update_pinterest_count&url=' +
+ encodeURIComponent( url ),
+ ],
+ };
+
+ for ( service in requests ) {
+ if ( ! document.querySelector( 'a[data-shared=sharing-' + service + '-' + id + ']' ) ) {
+ continue;
+ }
+
+ while ( ( service_request = requests[ service ].pop() ) ) {
+ loadScript( service_request );
+ }
+
+ if ( window.sharing_js_options.is_stats_active ) {
+ WPCOMSharing.bump_sharing_count_stat( service );
+ }
}
- },
- function() {
- // Mouse out - remove any timer
- $more_sharing_buttons.each( function() {
- clearTimeout( $( this ).data( 'timer' ) );
- } );
- $more_sharing_buttons.data( 'timer', false );
+
+ WPCOMSharing.done_urls[ id ] = true;
}
- );
- } else {
- $( document.body ).addClass( 'jp-sharing-input-touch' );
+ },
+ update_pinterest_count: function ( data ) {
+ if ( 'undefined' !== typeof data.count && data.count * 1 > 0 ) {
+ WPCOMSharing.inject_share_count(
+ 'sharing-pinterest-' + WPCOM_sharing_counts[ data.url ],
+ data.count
+ );
+ }
+ },
+ inject_share_count: function ( id, count ) {
+ forEachNode(
+ document.querySelectorAll( 'a[data-shared=' + id + '] > span' ),
+ function ( span ) {
+ var countNode = span.querySelector( '.share-count' );
+ removeNode( countNode );
+ var newNode = document.createElement( 'span' );
+ newNode.className = 'share-count';
+ newNode.textContent = WPCOMSharing.format_count( count );
+ span.appendChild( newNode );
+ }
+ );
+ },
+ format_count: function ( count ) {
+ if ( count < 1000 ) {
+ return count;
+ }
+ if ( count >= 1000 && count < 10000 ) {
+ return String( count ).substring( 0, 1 ) + 'K+';
+ }
+ return '10K+';
+ },
+ bump_sharing_count_stat: function ( service ) {
+ new Image().src =
+ document.location.protocol +
+ '//pixel.wp.com/g.gif?v=wpcom-no-pv&x_sharing-count-request=' +
+ service +
+ '&r=' +
+ Math.random();
+ },
+ };
+ window.WPCOMSharing = WPCOMSharing;
+ }
+
+ // ------------------------ BUTTON FUNCTIONALITY ------------------------ //
+
+ function shareIsEmail( val ) {
+ return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(
+ val
+ );
+ }
+
+ function closeEmailDialog() {
+ var dialog = document.querySelector( '#sharing_email' );
+ hideNode( dialog );
+ }
+
+ // Sharing initialization.
+ // Will run immediately or on `DOMContentLoaded`, depending on current page status.
+ function init() {
+ // Move email dialog to end of body.
+ var emailDialog = document.querySelector( '#sharing_email' );
+ if ( emailDialog ) {
+ document.body.appendChild( emailDialog );
}
- $( document ).click( function() {
- // Click outside
- // remove any timer
- $more_sharing_buttons.each( function() {
- clearTimeout( $( this ).data( 'timer' ) );
- } );
- $more_sharing_buttons.data( 'timer', false );
+ WPCOMSharing_do();
+ }
+ if ( document.readyState !== 'loading' ) {
+ init();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', init );
+ }
- // slide down forcibly
- $( '.sharedaddy .inner' ).slideUp();
+ // Set up sharing again whenever a new post loads, to pick up any new buttons.
+ document.body.addEventListener( 'is.post-load', WPCOMSharing_do );
+
+ // Set up sharing, updating counts and adding all button functionality.
+ function WPCOMSharing_do() {
+ if ( window.WPCOMSharing ) {
+ window.WPCOMSharing.get_counts();
+ }
+
+ forEachNode( document.querySelectorAll( '.sharedaddy a' ), function ( anchor ) {
+ var href = anchor.getAttribute( 'href' );
+ if ( href && href.indexOf( 'share=' ) !== -1 && href.indexOf( '&nb=1' ) === -1 ) {
+ anchor.setAttribute( 'href', href + '&nb=1' );
+ }
} );
+ // Show hidden buttons
+
+ // Touchscreen device: use click.
+ // Non-touchscreen device: use click if not already appearing due to a hover event
+
+ forEachNode(
+ document.querySelectorAll( '.sharedaddy a.sharing-anchor' ),
+ function ( buttonEl ) {
+ MoreButton.instantiateOrReuse( buttonEl );
+ }
+ );
+
+ if ( document.ontouchstart !== undefined ) {
+ document.body.classList.add( 'jp-sharing-input-touch' );
+ }
+
// Add click functionality
- $( '.sharedaddy ul' ).each( function() {
- if ( 'yep' === $( this ).data( 'has-click-events' ) ) {
+ forEachNode( document.querySelectorAll( '.sharedaddy ul' ), function ( group ) {
+ if ( group.getAttribute( 'data-sharing-events-added' ) === 'true' ) {
return;
}
- $( this ).data( 'has-click-events', 'yep' );
+ group.setAttribute( 'data-sharing-events-added', 'true' );
- var printUrl = function( uniqueId, urlToPrint ) {
- $( 'body:first' ).append(
- '<iframe style="position:fixed;top:100;left:100;height:1px;width:1px;border:none;" id="printFrame-' +
- uniqueId +
- '" name="printFrame-' +
- uniqueId +
- '" src="' +
- urlToPrint +
- '" onload="frames[\'printFrame-' +
+ var printUrl = function ( uniqueId, urlToPrint ) {
+ var iframe = document.createElement( 'iframe' );
+ iframe.setAttribute(
+ 'style',
+ 'position:fixed; top:100; left:100; height:1px; width:1px; border:none;'
+ );
+ iframe.setAttribute( 'id', 'printFrame-' + uniqueId );
+ iframe.setAttribute( 'name', iframe.getAttribute( 'id' ) );
+ iframe.setAttribute( 'src', urlToPrint );
+ iframe.setAttribute(
+ 'onload',
+ 'frames["printFrame-' +
uniqueId +
- "'].focus();frames['printFrame-" +
+ '"].focus();frames["printFrame-' +
uniqueId +
- '\'].print();"></iframe>'
+ '"].print();'
);
+ document.body.appendChild( iframe );
};
// Print button
- $( this )
- .find( 'a.share-print' )
- .click( function() {
- var ref = $( this ).attr( 'href' ),
- do_print = function() {
- if ( ref.indexOf( '#print' ) === -1 ) {
- var uid = new Date().getTime();
- printUrl( uid, ref );
- } else {
- print();
- }
- };
+ forEachNode( group.querySelectorAll( 'a.share-print' ), function ( printButton ) {
+ printButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ var ref = printButton.getAttribute( 'href' ) || '';
+ var doPrint = function () {
+ if ( ref.indexOf( '#print' ) === -1 ) {
+ var uid = new Date().getTime();
+ printUrl( uid, ref );
+ } else {
+ window.print();
+ }
+ };
// Is the button in a dropdown?
- if ( $( this ).parents( '.sharing-hidden' ).length > 0 ) {
- $( this )
- .parents( '.inner' )
- .slideUp( 0, function() {
- do_print();
- } );
+ var pane = closest( printButton, PANE_SELECTOR );
+ if ( pane ) {
+ var moreButton = MoreButton.getButtonInstanceFromPane( pane );
+ if ( moreButton ) {
+ moreButton.close();
+ doPrint();
+ }
} else {
- do_print();
+ doPrint();
}
-
- return false;
} );
+ } );
// Press This button
- $( this )
- .find( 'a.share-press-this' )
- .click( function() {
+ forEachNode( group.querySelectorAll( 'a.share-press-this' ), function ( pressThisButton ) {
+ pressThisButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+
var s = '';
if ( window.getSelection ) {
@@ -375,39 +498,57 @@ if ( sharing_js_options && sharing_js_options.counts ) {
}
if ( s ) {
- $( this ).attr( 'href', $( this ).attr( 'href' ) + '&sel=' + encodeURI( s ) );
+ var href = pressThisButton.getAttribute( 'href' );
+ pressThisButton.setAttribute( 'href', href + '&sel=' + encodeURI( s ) );
}
if (
! window.open(
- $( this ).attr( 'href' ),
+ pressThisButton.getAttribute( 'href' ),
't',
'toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=570'
)
) {
- document.location.href = $( this ).attr( 'href' );
+ document.location.href = pressThisButton.getAttribute( 'href' );
}
-
- return false;
} );
+ } );
// Email button
- $( 'a.share-email', this ).on( 'click', function() {
- var url = $( this ).attr( 'href' );
- var currentDomain = window.location.protocol + '//' + window.location.hostname + '/';
- if ( url.indexOf( currentDomain ) !== 0 ) {
- return true;
- }
+ forEachNode( group.querySelectorAll( 'a.share-email' ), function ( emailButton ) {
+ var dialog = document.querySelector( '#sharing_email' );
+
+ emailButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
- if ( $sharing_email.is( ':visible' ) ) {
- $sharing_email.slideUp( 200 );
- } else {
- $( '.sharedaddy .inner' ).slideUp();
+ // Load reCAPTCHA if needed.
+ if ( typeof grecaptcha !== 'object' && ! recaptchaScriptAdded ) {
+ var configEl = document.querySelector( '.g-recaptcha' );
- $( '#sharing_email .response' ).remove();
- $( '#sharing_email form' ).show();
- $( '#sharing_email form input[type=submit]' ).removeAttr( 'disabled' );
- $( '#sharing_email form a.sharing_cancel' ).show();
+ if ( configEl && configEl.getAttribute( 'data-lazy' ) === 'true' ) {
+ recaptchaScriptAdded = true;
+ loadScript( decodeURI( configEl.getAttribute( 'data-url' ) ) );
+ }
+ }
+
+ var url = emailButton.getAttribute( 'href' );
+ var currentDomain = window.location.protocol + '//' + window.location.hostname + '/';
+ if ( url.indexOf( currentDomain ) !== 0 ) {
+ return true;
+ }
+
+ if ( ! isNodeHidden( dialog ) ) {
+ closeEmailDialog();
+ return;
+ }
+
+ removeNode( document.querySelector( '#sharing_email .response' ) );
+
+ var form = document.querySelector( '#sharing_email form' );
+ showNode( form );
+ form.querySelector( 'input[type=submit]' ).removeAttribute( 'disabled' );
+ showNode( form.querySelector( 'a.sharing_cancel' ) );
// Reset reCATPCHA if exists.
if (
@@ -419,95 +560,138 @@ if ( sharing_js_options && sharing_js_options.counts ) {
}
// Show dialog
- $sharing_email
- .css( {
- left: $( this ).offset().left + 'px',
- top: $( this ).offset().top + $( this ).height() + 'px',
- } )
- .slideDown( 200 );
-
- // Hook up other buttons
- $( '#sharing_email a.sharing_cancel' )
- .unbind( 'click' )
- .click( function() {
- $( '#sharing_email .errors' ).hide();
- $sharing_email.slideUp( 200 );
- $( '#sharing_background' ).fadeOut();
- return false;
- } );
-
- // Submit validation
- $( '#sharing_email input[type=submit]' )
- .unbind( 'click' )
- .click( function() {
- var form = $( this ).parents( 'form' );
- var source_email_input = form.find( 'input[name=source_email]' );
- var target_email_input = form.find( 'input[name=target_email]' );
-
- // Disable buttons + enable loading icon
- $( this ).prop( 'disabled', true );
- form.find( 'a.sharing_cancel' ).hide();
- form.find( 'img.loading' ).show();
-
- $( '#sharing_email .errors' ).hide();
- $( '#sharing_email .error' ).removeClass( 'error' );
-
- if ( ! source_email_input.share_is_email() ) {
- source_email_input.addClass( 'error' );
- }
+ var rect = emailButton.getBoundingClientRect();
+ var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || 0;
+ var scrollTop = window.pageYOffset || document.documentElement.scrollTop || 0;
+ dialog.style.left = scrollLeft + rect.left + 'px';
+ dialog.style.top = scrollTop + rect.top + rect.height + 'px';
+ showNode( dialog );
+
+ // Close all open More Button dialogs.
+ MoreButton.closeAll();
+ } );
- if ( ! target_email_input.share_is_email() ) {
- target_email_input.addClass( 'error' );
- }
+ // Hook up other buttons
+ dialog.querySelector( 'a.sharing_cancel' ).addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
- if ( $( '#sharing_email .error' ).length === 0 ) {
- // AJAX send the form
- $.ajax( {
- url: url,
- type: 'POST',
- data: form.serialize(),
- success: function( response ) {
- form.find( 'img.loading' ).hide();
-
- if ( response === '1' || response === '2' || response === '3' ) {
- $( '#sharing_email .errors-' + response ).show();
- form.find( 'input[type=submit]' ).removeAttr( 'disabled' );
- form.find( 'a.sharing_cancel' ).show();
-
- if (
- 'object' === typeof grecaptcha &&
- 'function' === typeof grecaptcha.reset
- ) {
- grecaptcha.reset();
- }
- } else {
- $( '#sharing_email form' ).hide();
- $sharing_email.append( response );
- $( '#sharing_email a.sharing_cancel' ).click( function() {
- $sharing_email.slideUp( 200 );
- $( '#sharing_background' ).fadeOut();
- return false;
- } );
- }
- },
+ hideNode( dialog.querySelector( '.errors' ) );
+ hideNode( dialog );
+ hideNode( document.querySelector( '#sharing_background' ) );
+ } );
+
+ var submitButton = dialog.querySelector( 'input[type=submit]' );
+ submitButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ var form = closest( submitButton, 'form' );
+ var source_email_input = form.querySelector( 'input[name=source_email]' );
+ var target_email_input = form.querySelector( 'input[name=target_email]' );
+
+ // Disable buttons + enable loading icon
+ submitButton.setAttribute( 'disabled', true );
+ hideNode( form.querySelector( 'a.sharing_cancel' ) );
+ forEachNode( form.querySelectorAll( 'img.loading' ), function ( img ) {
+ showNode( img );
+ } );
+
+ hideNode( form.querySelector( '.errors' ) );
+
+ forEachNode( form.querySelectorAll( '.error' ), function ( node ) {
+ node.classList.remove( 'error' );
+ } );
+
+ if ( ! shareIsEmail( source_email_input.value ) ) {
+ source_email_input.classList.add( 'error' );
+ }
+
+ if ( ! shareIsEmail( target_email_input.value ) ) {
+ target_email_input.classList.add( 'error' );
+ }
+
+ if ( ! form.querySelector( '.error' ) ) {
+ // Encode form data. This would be much easier if we could rely on URLSearchParams...
+ var params = [];
+ for ( var i = 0; i < form.elements.length; i++ ) {
+ if ( form.elements[ i ].name ) {
+ // Encode each form element into a URI-compatible string.
+ var encoded =
+ encodeURIComponent( form.elements[ i ].name ) +
+ '=' +
+ encodeURIComponent( form.elements[ i ].value );
+ // In x-www-form-urlencoded, spaces should be `+`, not `%20`.
+ params.push( encoded.replace( '%20', '+' ) );
+ }
+ }
+ var data = params.join( '&' );
+
+ // AJAX send the form
+ var request = new XMLHttpRequest();
+ request.open( 'POST', emailButton.getAttribute( 'href' ), true );
+ request.setRequestHeader(
+ 'Content-Type',
+ 'application/x-www-form-urlencoded; charset=UTF-8'
+ );
+ request.setRequestHeader( 'x-requested-with', 'XMLHttpRequest' );
+
+ request.onreadystatechange = function () {
+ if ( this.readyState === XMLHttpRequest.DONE && this.status === 200 ) {
+ forEachNode( form.querySelectorAll( 'img.loading' ), function ( img ) {
+ hideNode( img );
} );
- return false;
+ if ( this.response === '1' || this.response === '2' || this.response === '3' ) {
+ showNode( dialog.querySelector( '.errors-' + this.response ) );
+ dialog.querySelector( 'input[type=submit]' ).removeAttribute( 'disabled' );
+ showNode( dialog.querySelector( 'a.sharing_cancel' ) );
+
+ if ( typeof grecaptcha === 'object' && typeof grecaptcha.reset === 'function' ) {
+ grecaptcha.reset();
+ }
+ } else {
+ hideNode( form );
+ var temp = document.createElement( 'div' );
+ temp.innerHTML = this.response;
+ dialog.appendChild( temp.firstChild );
+ showNode( dialog.querySelector( 'a.sharing_cancel' ) );
+ var closeButton = dialog.querySelector( '.response a.sharing_cancel' );
+ if ( closeButton ) {
+ closeButton.addEventListener( 'click', function ( event ) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ closeEmailDialog();
+ hideNode( document.querySelector( '#sharing_background' ) );
+ } );
+ }
+ }
}
+ };
- form.find( 'img.loading' ).hide();
- form.find( 'input[type=submit]' ).removeAttr( 'disabled' );
- form.find( 'a.sharing_cancel' ).show();
- $( '#sharing_email .errors-1' ).show();
+ request.send( data );
- return false;
- } );
- }
+ return;
+ }
- return false;
+ forEachNode( dialog.querySelectorAll( 'img.loading' ), function ( img ) {
+ hideNode( img );
+ } );
+ submitButton.removeAttribute( 'disabled' );
+ showNode( dialog.querySelector( 'a.sharing_cancel' ) );
+ forEachNode( dialog.querySelectorAll( '.errors-1' ), function ( error ) {
+ showNode( error );
+ } );
+ } );
} );
} );
- $( 'li.share-email, li.share-custom a.sharing-anchor' ).addClass( 'share-service-visible' );
+ forEachNode(
+ document.querySelectorAll( 'li.share-email, li.share-custom a.sharing-anchor' ),
+ function ( node ) {
+ node.classList.add( 'share-service-visible' );
+ }
+ );
}
-} )( jQuery );
+} )();
diff --git a/plugins/jetpack/modules/sharedaddy/sharing.php b/plugins/jetpack/modules/sharedaddy/sharing.php
index 805dc172..757dd4d5 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing.php
+++ b/plugins/jetpack/modules/sharedaddy/sharing.php
@@ -181,6 +181,7 @@ class Sharing_Admin {
$title = '';
$klasses = array( 'service', 'advanced', 'share-' . $service->get_class() );
if ( $service->is_deprecated() ) {
+ /* translators: %1$s is the name of a deprecated Sharing Service like "Google+" */
$title = sprintf( __( 'The %1$s service has shut down. This sharing button is not displayed to your visitors and should be removed.', 'jetpack' ), $service->get_name() );
$klasses[] = 'share-deprecated';
}
diff --git a/plugins/jetpack/modules/shortcodes.php b/plugins/jetpack/modules/shortcodes.php
index ec4f529a..39e18d49 100644
--- a/plugins/jetpack/modules/shortcodes.php
+++ b/plugins/jetpack/modules/shortcodes.php
@@ -179,8 +179,8 @@ function wpcom_shortcodereverse_parseattr( $attrs ) {
$attrs = shortcode_atts( $defaults, $attrs );
$attrs['src'] = strip_tags( $attrs['src'] ); // For sanity
- $attrs['width'] = ( is_numeric( $attrs['width'] ) ) ? abs( intval( $attrs['width'] ) ) : $defaults['width'];
- $attrs['height'] = ( is_numeric( $attrs['height'] ) ) ? abs( intval( $attrs['height'] ) ) : $defaults['height'];
+ $attrs['width'] = ( is_numeric( $attrs['width'] ) ) ? abs( (int) $attrs['width'] ) : $defaults['width'];
+ $attrs['height'] = ( is_numeric( $attrs['height'] ) ) ? abs( (int) $attrs['height'] ) : $defaults['height'];
return $attrs;
}
diff --git a/plugins/jetpack/modules/shortcodes/archiveorg-book.php b/plugins/jetpack/modules/shortcodes/archiveorg-book.php
index 013e7924..f2592f1b 100644
--- a/plugins/jetpack/modules/shortcodes/archiveorg-book.php
+++ b/plugins/jetpack/modules/shortcodes/archiveorg-book.php
@@ -7,9 +7,9 @@
* [archiveorg-book https://www.archive.org/stream/goodytwoshoes00newyiala]
* [archiveorg id=goodytwoshoes00newyiala width=480 height=430]
- * <iframe src='https://www.archive.org/stream/goodytwoshoes00newyiala?ui=embed#mode/1up' width='480px' height='430px' frameborder='0' ></iframe>
+ * <iframe src="https://www.archive.org/stream/goodytwoshoes00newyiala?ui=embed#mode/1up" width="480px" height="430px" frameborder="0" ></iframe>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -67,21 +67,22 @@ function jetpack_archiveorg_book_shortcode( $atts ) {
if ( ! $atts['width'] ) {
$width = absint( $content_width );
} else {
- $width = intval( $atts['width'] );
+ $width = (int) $atts['width'];
}
if ( ! $atts['height'] ) {
$height = round( ( $width / 640 ) * 360 );
} else {
- $height = intval( $atts['height'] );
+ $height = (int) $atts['height'];
}
- $url = esc_url( "https://archive.org/stream/{$id}?ui=embed#mode/1up" );
-
- $title = esc_html__( 'Archive.org Book', 'jetpack' );
-
- $html = "<div class='embed-archiveorg-book' style='text-align:center;'><iframe title='$title' src='$url' width='$width' height='$height' style='border:0;' webkitallowfullscreen='true' mozallowfullscreen='true' allowfullscreen></iframe></div>";
- return $html;
+ return sprintf(
+ '<div class="embed-archiveorg-book" style="text-align:center;"><iframe title="%s" src="%s" width="%s" height="%s" style="border:0;" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></div>',
+ esc_attr__( 'Archive.org Book', 'jetpack' ),
+ esc_url( "https://archive.org/stream/{$id}?ui=embed#mode/1up" ),
+ esc_attr( $width ),
+ esc_attr( $height )
+ );
}
add_shortcode( 'archiveorg-book', 'jetpack_archiveorg_book_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/archiveorg.php b/plugins/jetpack/modules/shortcodes/archiveorg.php
index f3e0e2af..122ae820 100644
--- a/plugins/jetpack/modules/shortcodes/archiveorg.php
+++ b/plugins/jetpack/modules/shortcodes/archiveorg.php
@@ -9,7 +9,7 @@
* <iframe src="http://archive.org/embed/Experime1940&autoplay=1&poster=http://archive.org/images/map.png" width="640" height="480" frameborder="0" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -69,13 +69,13 @@ function jetpack_archiveorg_shortcode( $atts ) {
if ( ! $atts['width'] ) {
$width = absint( $content_width );
} else {
- $width = intval( $atts['width'] );
+ $width = (int) $atts['width'];
}
if ( ! $atts['height'] ) {
$height = round( ( $width / 640 ) * 360 );
} else {
- $height = intval( $atts['height'] );
+ $height = (int) $atts['height'];
}
if ( $atts['autoplay'] ) {
@@ -90,13 +90,13 @@ function jetpack_archiveorg_shortcode( $atts ) {
$poster = '';
}
- $url = esc_url( "https://archive.org/embed/{$id}{$autoplay}{$poster}" );
-
- $title = esc_html__( 'Archive.org', 'jetpack' );
-
- $html = "<div class='embed-archiveorg' style='text-align:center;'><iframe title='$title' src='$url' width='$width' height='$height' style='border:0;' webkitallowfullscreen='true' mozallowfullscreen='true' allowfullscreen></iframe></div>";
-
- return $html;
+ return sprintf(
+ '<div class="embed-archiveorg" style="text-align:center;"><iframe title="%s" src="%s" width="%s" height="%s" style="border:0;" webkitallowfullscreen="true" mozallowfullscreen="true" allowfullscreen></iframe></div>',
+ esc_attr__( 'Archive.org', 'jetpack' ),
+ esc_url( "https://archive.org/embed/{$id}{$autoplay}{$poster}" ),
+ esc_attr( $width ),
+ esc_attr( $height )
+ );
}
add_shortcode( 'archiveorg', 'jetpack_archiveorg_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/archives.php b/plugins/jetpack/modules/shortcodes/archives.php
index 881a70f5..da20273c 100644
--- a/plugins/jetpack/modules/shortcodes/archives.php
+++ b/plugins/jetpack/modules/shortcodes/archives.php
@@ -5,7 +5,7 @@
* @author bubel & nickmomrik
* [archives limit=10]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'archives', 'archives_shortcode' );
@@ -42,7 +42,7 @@ function archives_shortcode( $atts ) {
$attr['format'] = 'html';
}
- $limit = intval( $attr['limit'] );
+ $limit = (int) $attr['limit'];
// A Limit of 0 makes no sense so revert back to the default.
if ( empty( $limit ) ) {
$limit = '';
@@ -73,7 +73,9 @@ function archives_shortcode( $atts ) {
if ( empty( $archives ) ) {
$archives = '<p>' . __( 'Your blog does not currently have any published posts.', 'jetpack' ) . '</p>';
} elseif ( 'option' === $attr['format'] ) {
- $archives = '<select name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;"><option value="' . get_permalink() . '">--</option>' . $archives . '</select>';
+ $is_amp = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+ $change_attribute = $is_amp ? 'on="change:AMP.navigateTo(url=event.value)"' : 'onchange="document.location.href=this.options[this.selectedIndex].value;"';
+ $archives = '<select name="archive-dropdown" ' . $change_attribute . '><option value="' . get_permalink() . '">--</option>' . $archives . '</select>';
} elseif ( 'html' === $attr['format'] ) {
$archives = '<ul>' . $archives . '</ul>';
}
diff --git a/plugins/jetpack/modules/shortcodes/bandcamp.php b/plugins/jetpack/modules/shortcodes/bandcamp.php
index 36eb9e34..969f8466 100644
--- a/plugins/jetpack/modules/shortcodes/bandcamp.php
+++ b/plugins/jetpack/modules/shortcodes/bandcamp.php
@@ -7,7 +7,7 @@
* [bandcamp album=3462839126 bgcol=FFFFFF linkcol=4285BB size=venti]
* [bandcamp track=2446959313]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -30,6 +30,7 @@ function shortcode_handler_bandcamp( $atts ) {
'height' => null, // integer with optional "%".
'notracklist' => null, // may be string "true" (defaults false).
'tracklist' => null, // may be string "false" (defaults true).
+ // phpcs:ignore Squiz.PHP.CommentedOutCode.Found -- false positive
'artwork' => null, // may be string "false" (alternately: "none") or "small" (default is large).
'minimal' => null, // may be string "true" (defaults false).
'theme' => null, // may be theme identifier string ("light"|"dark" so far).
diff --git a/plugins/jetpack/modules/shortcodes/brightcove.php b/plugins/jetpack/modules/shortcodes/brightcove.php
index 4a08b9a8..f9e2d15b 100644
--- a/plugins/jetpack/modules/shortcodes/brightcove.php
+++ b/plugins/jetpack/modules/shortcodes/brightcove.php
@@ -193,14 +193,14 @@ class Jetpack_Brightcove_Shortcode {
$attr['surl'] = 'http://c.brightcove.com/services';
}
- $attr['exp3'] = intval( $attr['exp3'] );
- $attr['pubid'] = intval( $attr['pubid'] );
- $attr['vid'] = intval( $attr['vid'] );
+ $attr['exp3'] = (int) $attr['exp3'];
+ $attr['pubid'] = (int) $attr['pubid'];
+ $attr['vid'] = (int) $attr['vid'];
$fv['servicesURL'] = $attr['surl'];
$fv['playerID'] = $attr['exp3'];
$fv['domain'] = 'embed';
- $fv['videoID'] = intval( $attr['vid'] );
+ $fv['videoID'] = (int) $attr['vid'];
$src = sprintf(
'%s/viewer/federated_f9/%s?isVid=1&amp;isUI=1&amp;publisherID=%s',
@@ -210,7 +210,7 @@ class Jetpack_Brightcove_Shortcode {
);
$html5 = true;
} elseif ( isset( $attr['exp'] ) ) {
- $attr['exp'] = intval( $attr['exp'] );
+ $attr['exp'] = (int) $attr['exp'];
$src = 'http://services.brightcove.com/services/viewer/federated_f8/' . $attr['exp'];
if ( $attr['vid'] ) {
$fv['videoId'] = $attr['vid'];
diff --git a/plugins/jetpack/modules/shortcodes/cartodb.php b/plugins/jetpack/modules/shortcodes/cartodb.php
index 4cd1266b..035a5de4 100644
--- a/plugins/jetpack/modules/shortcodes/cartodb.php
+++ b/plugins/jetpack/modules/shortcodes/cartodb.php
@@ -15,7 +15,7 @@
* On July 8th, 2016 CartoDB changed its primary domain from cartodb.com to carto.com
* So this shortcode still supports the cartodb.com domain for oembeds.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
wp_oembed_add_provider( '#https?://(?:www\.)?[^/^\.]+\.carto(db)?\.com/\S+#i', 'https://services.carto.com/oembed', true );
diff --git a/plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php b/plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php
index 5c9d2364..566eb700 100644
--- a/plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php
+++ b/plugins/jetpack/modules/shortcodes/class.filter-embedded-html-objects.php
@@ -5,7 +5,7 @@
* This file contains the code that converts HTML embeds into shortcodes
* for when the user copy/pastes in HTML.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_filter( 'pre_kses', array( 'Filter_Embedded_HTML_Objects', 'filter' ), 11 );
diff --git a/plugins/jetpack/modules/shortcodes/codepen.php b/plugins/jetpack/modules/shortcodes/codepen.php
index 8988bc18..db28b2c6 100644
--- a/plugins/jetpack/modules/shortcodes/codepen.php
+++ b/plugins/jetpack/modules/shortcodes/codepen.php
@@ -4,7 +4,7 @@
*
* Example URL: http://codepen.io/css-tricks/pen/wFeaG
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
// Register oEmbed provider.
diff --git a/plugins/jetpack/modules/shortcodes/crowdsignal.php b/plugins/jetpack/modules/shortcodes/crowdsignal.php
index 04177919..145a7fba 100644
--- a/plugins/jetpack/modules/shortcodes/crowdsignal.php
+++ b/plugins/jetpack/modules/shortcodes/crowdsignal.php
@@ -15,7 +15,7 @@
* [crowdsignal poll=9541291 type=slider]
* [crowdsignal rating=8755352]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
@@ -238,7 +238,7 @@ if (
/*
* Rating embed.
*/
- if ( intval( $attributes['rating'] ) > 0 && ! $no_script ) {
+ if ( (int) $attributes['rating'] > 0 && ! $no_script ) {
if ( empty( $attributes['unique_id'] ) ) {
$attributes['unique_id'] = is_page() ? 'wp-page-' . $post->ID : 'wp-post-' . $post->ID;
@@ -257,7 +257,7 @@ if (
$attributes['permalink'] = get_permalink( $post->ID );
}
- $rating = intval( $attributes['rating'] );
+ $rating = (int) $attributes['rating'];
$unique_id = preg_replace( '/[^\-_a-z0-9]/i', '', wp_strip_all_tags( $attributes['unique_id'] ) );
$item_id = wp_strip_all_tags( $attributes['item_id'] );
$item_id = preg_replace( '/[^_a-z0-9]/i', '', $item_id );
@@ -330,7 +330,7 @@ if (
);
}
}
- } elseif ( intval( $attributes['poll'] ) > 0 ) {
+ } elseif ( (int) $attributes['poll'] > 0 ) {
/*
* Poll embed.
*/
@@ -339,7 +339,7 @@ if (
$attributes['title'] = esc_html__( 'Take Our Poll', 'jetpack' );
}
- $poll = intval( $attributes['poll'] );
+ $poll = (int) $attributes['poll'];
if ( 'crowdsignal.com' === $attributes['site'] ) {
$poll_url = sprintf( 'https://poll.fm/%d', $poll );
@@ -379,16 +379,16 @@ if (
$settings = array(
'type' => 'slider',
'embed' => 'poll',
- 'delay' => intval( $attributes['delay'] ),
+ 'delay' => (int) $attributes['delay'],
'visit' => $attributes['visit'],
- 'id' => intval( $poll ),
+ 'id' => (int) $poll,
'site' => $attributes['site'],
);
return $this->get_async_code( $settings, $poll_link, $poll_url );
} else {
if ( 1 === $attributes['cb'] ) {
- $attributes['cb'] = '?cb=' . mktime();
+ $attributes['cb'] = '?cb=' . time();
} else {
$attributes['cb'] = false;
}
@@ -425,7 +425,7 @@ if (
$data = array( 'url' => $poll_js );
- self::$scripts['poll'][ intval( $poll ) ] = $data;
+ self::$scripts['poll'][ (int) $poll ] = $data;
add_action( 'wp_footer', array( $this, 'generate_scripts' ) );
@@ -443,8 +443,17 @@ if (
)
);
+ /**
+ * Hook into the Crowdsignal shortcode before rendering.
+ *
+ * @since 8.4.0
+ *
+ * @param int $poll Poll ID.
+ */
+ do_action( 'crowdsignal_shortcode_before', (int) $poll );
+
return sprintf(
- '<a name="pd_a_%1$d"></a><div class="CSS_Poll PDS_Poll" id="PDI_container%1$d" data-settings="%2$s" style="display:inline-block;%3$s%4$s"></div><div id="PD_superContainer"></div><noscript>%5$s</noscript>',
+ '<a name="pd_a_%1$d"></a><div class="CSS_Poll PDS_Poll" id="PDI_container%1$d" data-settings="%2$s" style="%3$s%4$s"></div><div id="PD_superContainer"></div><noscript>%5$s</noscript>',
absint( $poll ),
esc_attr( wp_json_encode( $data ) ),
$float,
@@ -464,8 +473,11 @@ if (
true
);
+ /** This action is already documented in modules/shortcodes/crowdsignal.php */
+ do_action( 'crowdsignal_shortcode_before', (int) $poll );
+
return sprintf(
- '<a id="pd_a_%1$s"></a><div class="CSS_Poll PDS_Poll" id="PDI_container%1$s" style="display:inline-block;%2$s%3$s"></div><div id="PD_superContainer"></div><noscript>%4$s</noscript>',
+ '<a id="pd_a_%1$s"></a><div class="CSS_Poll PDS_Poll" id="PDI_container%1$s" style="%2$s%3$s"></div><div id="PD_superContainer"></div><noscript>%4$s</noscript>',
absint( $poll ),
$float,
$margins,
@@ -499,12 +511,20 @@ if (
$inline = false;
}
- $survey = preg_replace( '/[^a-f0-9]/i', '', $attributes['survey'] );
+ $survey_url = '';
+
+ if ( 'true' !== $attributes['survey'] ) {
+ $survey = preg_replace( '/[^a-f0-9]/i', '', $attributes['survey'] );
- if ( 'crowdsignal.com' === $attributes['site'] ) {
- $survey_url = 'https://survey.fm/' . $survey;
+ if ( 'crowdsignal.com' === $attributes['site'] ) {
+ $survey_url = 'https://survey.fm/' . $survey;
+ } else {
+ $survey_url = 'https://polldaddy.com/s/' . $survey;
+ }
} else {
- $survey_url = 'https://polldaddy.com/s/' . $survey;
+ if ( isset( $attributes['domain'] ) && isset( $attributes['id'] ) ) {
+ $survey_url = 'https://' . $attributes['domain'] . '.survey.fm/' . $attributes['id'];
+ }
}
$survey_link = sprintf(
@@ -515,16 +535,6 @@ if (
$settings = array();
- // Do we want a full embed code or a link?
- if (
- $no_script
- || $inline
- || $infinite_scroll
- || ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() )
- ) {
- return $survey_link;
- }
-
if ( 'iframe' === $attributes['type'] ) {
if ( 'auto' !== $attributes['height'] ) {
if (
@@ -729,8 +739,8 @@ if (
if ( ! function_exists( 'crowdsignal_link' ) ) {
/**
- * Replace link by embed.
- * Example: http://polldaddy.com/poll/1562975/?view=results&msg=voted
+ * Replace link with shortcode.
+ * Examples: https://poll.fm/10499328 | https://7iger.survey.fm/test-embed
*
* @param string $content Post content.
*/
@@ -742,25 +752,25 @@ if (
return $content;
}
- return jetpack_preg_replace_outside_tags(
+ // Replace poll links.
+ $content = jetpack_preg_replace_outside_tags(
'!(?:\n|\A)https?://(polldaddy\.com/poll|poll\.fm)/([0-9]+?)(/.*)?(?:\n|\Z)!i',
- "\n<script type='text/javascript' charset='utf-8' src='//static.polldaddy.com/p/$2.js'></script><noscript> <a href='https://poll.fm/$2'>View Poll</a></noscript>\n", // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
- $content,
- 'polldaddy.com/poll'
+ '[crowdsignal poll=$2]',
+ $content
+ );
+
+ // Replace survey.fm links.
+ $content = preg_replace(
+ '!(?:\n|\A)https?://(.*).survey.fm/(.*)(/.*)?(?:\n|\Z)!i',
+ '[crowdsignal type="iframe" survey="true" height="auto" domain="$1" id="$2"]',
+ $content
);
+
+ return $content;
}
// higher priority because we need it before auto-link and autop get to it.
add_filter( 'the_content', 'crowdsignal_link', 1 );
add_filter( 'the_content_rss', 'crowdsignal_link', 1 );
}
-
- /**
- * Note that Core has the oembed of '#https?://survey\.fm/.*#i' as of 5.1.
- * This should be removed after Core has the current regex is in our minimum version.
- *
- * @see https://core.trac.wordpress.org/ticket/46467
- * @todo Remove once 5.2 is the minimum version.
- */
- wp_oembed_add_provider( '#https?://.+\.survey\.fm/.*#i', 'https://api.crowdsignal.com/oembed', true );
}
diff --git a/plugins/jetpack/modules/shortcodes/css/gravatar-amp.css b/plugins/jetpack/modules/shortcodes/css/gravatar-amp.css
new file mode 100644
index 00000000..4b1ec884
--- /dev/null
+++ b/plugins/jetpack/modules/shortcodes/css/gravatar-amp.css
@@ -0,0 +1,41 @@
+/**
+ * Styles for the [gravatar_profile] shortcode when it is called from an AMP context
+ */
+ .grofile-wrap {
+ border: solid 1px #f0f0f1;
+ padding: 10px;
+}
+
+.grofile {
+ padding: 0 0 5px 0;
+}
+
+.grofile-left {
+ float: left;
+ display: block;
+ width: 96px;
+ margin-right: 15px;
+}
+
+.grofile .gravatar {
+ margin-bottom: 5px;
+}
+
+.grofile-clear {
+ clear: left;
+ font-size: 1px;
+ height: 1px;
+}
+
+.grofile ul li a {
+ text-indent: -99999px;
+}
+
+.grofile .grofile-left a:hover {
+ text-decoration: none !important;
+ border: none !important;
+}
+
+.grofile-name {
+ margin-top: 0;
+}
diff --git a/plugins/jetpack/modules/shortcodes/css/quiz.css b/plugins/jetpack/modules/shortcodes/css/quiz.css
index e2a0b36b..09cd0339 100644
--- a/plugins/jetpack/modules/shortcodes/css/quiz.css
+++ b/plugins/jetpack/modules/shortcodes/css/quiz.css
@@ -54,3 +54,36 @@ div.jetpack-quiz pre {
padding: 0;
}
+.jetpack-quiz-options {
+ margin-top: 12px;
+ text-align: right;
+}
+
+.jetpack-quiz-count {
+ color: #646970;
+ float: left;
+ font-size: 12px;
+}
+
+.jetpack-quiz-option-button {
+ cursor: pointer;
+ margin-left: 12px;
+}
+
+.jetpack-quiz-option-button:hover svg {
+ background: #3c434a;
+}
+
+.jetpack-quiz-option-button svg {
+ background: #000;
+ border-radius: 50%;
+ display: inline-block;
+ fill: #fff;
+ height: 24px;
+ width: 24px;
+}
+
+.jetpack-quiz-wrapper .jetpack-quiz:first-of-type .jetpack-quiz-option-button:first-of-type,
+.jetpack-quiz-wrapper .jetpack-quiz:last-of-type .jetpack-quiz-option-button:last-of-type {
+ display: none;
+}
diff --git a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.css b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.css
index 3defeb94..24bed853 100644
--- a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.css
+++ b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.css
@@ -70,7 +70,7 @@ body div.slideshow-window * img {
.slideshow-slide-caption {
font-size: 13px;
font-family: "Helvetica Neue", sans-serif;
- color: #f7f7f7;
+ color: #f6f7f7;
text-shadow: #222 -1px 1px 2px;
line-height: 25px;
height: 25px;
diff --git a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.min.css b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.min.css
index 4342c699..bd65a5ca 100644
--- a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.min.css
+++ b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode-rtl.min.css
@@ -1 +1 @@
-.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;right:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 -1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;right:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f} \ No newline at end of file
+.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;right:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f6f7f7;text-shadow:#222 -1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;right:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:#fff!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f} \ No newline at end of file
diff --git a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.css b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.css
index 2e416a44..6a02b8f7 100644
--- a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.css
+++ b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.css
@@ -73,7 +73,7 @@ body div.slideshow-window * img {
.slideshow-slide-caption {
font-size: 13px;
font-family: "Helvetica Neue", sans-serif;
- color: #f7f7f7;
+ color: #f6f7f7;
text-shadow: #222 1px 1px 2px;
line-height: 25px;
height: 25px;
diff --git a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.min.css b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.min.css
index 9642a647..e6f06fa0 100644
--- a/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.min.css
+++ b/plugins/jetpack/modules/shortcodes/css/slideshow-shortcode.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;left:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;left:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f} \ No newline at end of file
+.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;left:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f6f7f7;text-shadow:#222 1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;left:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;opacity:.5;direction:ltr;transition:.3s opacity ease-out}.slideshow-window:hover .slideshow-controls{opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;border-radius:10em!important;transition:.3s border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:#fff!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.running{background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f} \ No newline at end of file
diff --git a/plugins/jetpack/modules/shortcodes/css/style.css b/plugins/jetpack/modules/shortcodes/css/style.css
index 5ef78159..3986e222 100644
--- a/plugins/jetpack/modules/shortcodes/css/style.css
+++ b/plugins/jetpack/modules/shortcodes/css/style.css
@@ -44,7 +44,7 @@ body.presentation-wrapper-fullscreen-parent {
*/
.presentation-wrapper {
margin: 20px auto;
- border: 1px solid #e5e5e5;
+ border: 1px solid #dcdcde;
overflow: hidden;
line-height: normal;
}
@@ -152,7 +152,7 @@ body.presentation-wrapper-fullscreen-parent {
z-index: 100;
display: table;
border-radius: 50px;
- background-color: #e5e5e5;
+ background-color: #dcdcde;
background-color: rgba(0, 0, 0, 0.75);
-webkit-transition : opacity .5s;
diff --git a/plugins/jetpack/modules/shortcodes/dailymotion.php b/plugins/jetpack/modules/shortcodes/dailymotion.php
index 09984f3b..bcb31754 100644
--- a/plugins/jetpack/modules/shortcodes/dailymotion.php
+++ b/plugins/jetpack/modules/shortcodes/dailymotion.php
@@ -2,7 +2,7 @@
/**
* Dailymotion code
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -135,8 +135,8 @@ function dailymotion_shortcode( $atts ) {
}
/*set width and height using provided parameters if any */
- $width = isset( $atts['width'] ) ? intval( $atts['width'] ) : 0;
- $height = isset( $atts['height'] ) ? intval( $atts['height'] ) : 0;
+ $width = isset( $atts['width'] ) ? (int) $atts['width'] : 0;
+ $height = isset( $atts['height'] ) ? (int) $atts['height'] : 0;
if ( ! $width && ! $height ) {
if ( ! empty( $content_width ) ) {
@@ -180,7 +180,7 @@ function dailymotion_shortcode( $atts ) {
$player_params['sharing-enable'] = '0';
}
if ( isset( $atts['start'] ) && ! empty( $atts['start'] ) ) {
- $player_params['start'] = abs( intval( $atts['start'] ) );
+ $player_params['start'] = abs( (int) $atts['start'] );
}
if ( isset( $atts['subtitles-default'] ) && ! empty( $atts['subtitles-default'] ) ) {
$player_params['subtitles-default'] = esc_attr( $atts['subtitles-default'] );
@@ -239,6 +239,25 @@ function dailymotion_shortcode( $atts ) {
}
}
+ /**
+ * Calypso Helper
+ *
+ * Makes shortcode output responsive to the location it is loaded:
+ * Notifications, Reader, Email
+ */
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/lib/display-context.php';
+ $context = A8C\Display_Context\get_current_context();
+
+ // Notifications.
+ if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
+ return sprintf(
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer">%1$s</a>',
+ esc_url( 'https://www.dailymotion.com/video/' . $id )
+ );
+ }
+ }
+
return $output;
}
add_shortcode( 'dailymotion', 'dailymotion_shortcode' );
@@ -257,13 +276,13 @@ function dailymotion_channel_shortcode( $atts ) {
switch ( $atts['type'] ) {
case 'grid':
- $channel_iframe = '<iframe width="300px" height="264px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username . '?type=grid' ) . '"></iframe>';
+ $channel_iframe = '<iframe sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" width="300px" height="264px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username . '?type=grid' ) . '"></iframe>';
break;
case 'carousel':
- $channel_iframe = '<iframe width="300px" height="360px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username . '?type=carousel' ) . '"></iframe>';
+ $channel_iframe = '<iframe sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" width="300px" height="360px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username . '?type=carousel' ) . '"></iframe>';
break;
default:
- $channel_iframe = '<iframe width="300px" height="78px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username ) . '"></iframe>';
+ $channel_iframe = '<iframe sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" width="300px" height="78px" scrolling="no" style="border:0;" src="' . esc_url( '//www.dailymotion.com/badge/user/' . $username ) . '"></iframe>';
}
return $channel_iframe;
diff --git a/plugins/jetpack/modules/shortcodes/facebook.php b/plugins/jetpack/modules/shortcodes/facebook.php
index 71d625c8..f35c75c9 100644
--- a/plugins/jetpack/modules/shortcodes/facebook.php
+++ b/plugins/jetpack/modules/shortcodes/facebook.php
@@ -2,7 +2,7 @@
/**
* Facebook embeds
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
define( 'JETPACK_FACEBOOK_EMBED_REGEX', '#^https?://(www.)?facebook\.com/([^/]+)/(posts|photos)/([^/]+)?#' );
@@ -12,7 +12,6 @@ define( 'JETPACK_FACEBOOK_PHOTO_ALTERNATE_EMBED_REGEX', '#^https?://(www.)?faceb
define( 'JETPACK_FACEBOOK_VIDEO_EMBED_REGEX', '#^https?://(www.)?facebook\.com/(?:video.php|watch\/?)\?([^\s]+)#' );
define( 'JETPACK_FACEBOOK_VIDEO_ALTERNATE_EMBED_REGEX', '#^https?://(www.)?facebook\.com/([^/]+)/videos/([^/]+)?#' );
-
/*
* Example URL: https://www.facebook.com/VenusWilliams/posts/10151647007373076
*/
@@ -50,9 +49,10 @@ wp_embed_register_handler( 'facebook-alternate-video', JETPACK_FACEBOOK_VIDEO_AL
/**
* Callback to modify output of embedded Facebook posts.
*
- * @param array $matches Regex partial matches against the URL passed.
- * @param array $attr Attributes received in embed response.
- * @param array $url Requested URL to be embedded.
+ * @param array $matches Regex partial matches against the URL passed.
+ * @param array $attr Attributes received in embed response.
+ * @param string $url Requested URL to be embedded.
+ * @return string Facebook embed markup.
*/
function jetpack_facebook_embed_handler( $matches, $attr, $url ) {
if (
@@ -69,7 +69,12 @@ function jetpack_facebook_embed_handler( $matches, $attr, $url ) {
$width = min( $width, $content_width );
}
- $embed = sprintf( '<fb:post href="%s" data-width="%s"></fb:post>', esc_url( $url ), esc_attr( $width ) );
+ $embed = sprintf( '<div class="fb-post" data-href="%s" data-width="%s"></div>', esc_url( $url ), esc_attr( $width ) );
+ }
+
+ // Skip rendering scripts in an AMP context.
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return $embed;
}
// since Facebook is a faux embed, we need to load the JS SDK in the wpview embed iframe.
diff --git a/plugins/jetpack/modules/shortcodes/flatio.php b/plugins/jetpack/modules/shortcodes/flatio.php
index 3b5c31f8..aa5fb0cc 100644
--- a/plugins/jetpack/modules/shortcodes/flatio.php
+++ b/plugins/jetpack/modules/shortcodes/flatio.php
@@ -4,7 +4,7 @@
*
* Example URL: https://flat.io/score/5a5268ed41396318cbd7772c-string-quartet-for-rainy-days
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
// Register oEmbed provider.
diff --git a/plugins/jetpack/modules/shortcodes/flickr.php b/plugins/jetpack/modules/shortcodes/flickr.php
index 6ee80200..da725d8b 100644
--- a/plugins/jetpack/modules/shortcodes/flickr.php
+++ b/plugins/jetpack/modules/shortcodes/flickr.php
@@ -4,131 +4,121 @@
* Author: kellan
* License: BSD/GPL/public domain (take your pick)
*
- * [flickr video=http://www.flickr.com/photos/chaddles/2402990826]
- * [flickr video=2402990826]
- * [flickr video=2402990826 show_info=no]
- * [flickr video=2402990826 w=200 h=150]
- * [flickr video=2402990826 secret=846d9c1b39]
+ * [flickr video=www.flickr.com/photos/kalakeli/49931239842]
+ * [flickr video=49931239842]
+ * [flickr video=49931239842 w=200 h=150]
+ * [flickr video=49931239842 autoplay="yes" controls="no"]
+ * [flickr video=49931239842 autoplay="no" controls="yes" w=200 h=150]
*
- * @package Jetpack
- */
-
-/*
- * <object type="application/x-shockwave-flash" width="400" height="300" data="http://www.flickr.com/apps/video/stewart.swf?v=71377" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="flashvars" value="intl_lang=en-us&photo_secret=846d9c1be9&photo_id=2345938910"></param> <param name="movie" value="http://www.flickr.com/apps/video/stewart.swf?v=71377"></param> <param name="bgcolor" value="#000000"></param> <param name="allowFullScreen" value="true"></param><embed type="application/x-shockwave-flash" src="http://www.flickr.com/apps/video/stewart.swf?v=71377" bgcolor="#000000" allowfullscreen="true" flashvars="intl_lang=en-us&photo_secret=846d9c1be9&photo_id=2345938910" height="300" width="400"></embed></object>
+ * <div class="flick_video" style="max-width: 100%;width: 500px;height: 300px;"><video src="https://www.flickr.com/photos/kalakeli/49931239842/play/360p/183f75d545/" controls autoplay ></video></div>
+ *
+ * @package automattic/jetpack
*/
/**
* Transform embed to shortcode on save.
*
* @param string $content Post content.
+ *
+ * @return string Shortcode or the embed content itself.
*/
function flickr_embed_to_shortcode( $content ) {
- if ( ! is_string( $content ) || false === stripos( $content, '/www.flickr.com/apps/video/stewart.swf' ) ) {
+ if ( ! is_string( $content ) ) {
return $content;
}
- $regexp = '%(<object.*?(?:<(?!/?(?:object|embed)\s+).*?)*?)?<embed((?:\s+\w+="[^"]*")*)\s+src="http(?:\:|&#0*58;)//www.flickr.com/apps/video/stewart.swf[^"]*"((?:\s+\w+="[^"]*")*)\s*(?:/>|>\s*</embed>)(?(1)\s*</object>)%';
- $regexp_ent = str_replace(
- array(
- '&amp;#0*58;',
- '[^&gt;]*',
- '[^&lt;]*',
- ),
- array(
- '&amp;#0*58;|&#0*58;',
- '[^&]*(?:&(?!gt;)[^&]*)*',
- '[^&]*(?:&(?!lt;)[^&]*)*',
- ),
- htmlspecialchars( $regexp, ENT_NOQUOTES )
- );
+ if ( false !== strpos( $content, '<div class="flickr_video"' ) && false !== strpos( $content, '<video' ) ) {
+ return jetpack_flickr_video_to_shortcode( $content );
+ } elseif ( preg_match( '/<iframe src="(https?:)?\/\/([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)\/[^\"]+\"/', $content ) ) {
+ return jetpack_flickr_photo_to_shortcode( $content );
+ }
- foreach ( compact( 'regexp', 'regexp_ent' ) as $reg => $regexp ) {
- if ( ! preg_match_all( $regexp, $content, $matches, PREG_SET_ORDER ) ) {
- continue;
- }
- foreach ( $matches as $match ) {
- $params = $match[2] . $match[3];
+ return $content;
+}
- if ( 'regexp_ent' === $reg ) {
- $params = html_entity_decode( $params );
- }
+/**
+ * Transforms embed to shortcode on save when the photo param is used.
+ * If embed content can not be transformed to a valid shortcode,
+ * the embed content itself is returned.
+ *
+ * @param string $content Embed output.
+ *
+ * @return string Shortcode or the embed content.
+ */
+function jetpack_flickr_photo_to_shortcode( $content ) {
+ preg_match( '/<iframe src=\"([^\"]+)\"(\s+height=\"([^\"]*)\")?(\s+width=\"([^\"]*)\")?/', $content, $matches );
- $params = wp_kses_hair( $params, array( 'http' ) );
- if (
- ! isset( $params['type'] )
- || 'application/x-shockwave-flash' !== $params['type']['value']
- || ! isset( $params['flashvars'] )
- ) {
- continue;
- }
+ if ( empty( $matches[1] ) ) {
+ return $content;
+ }
- $flashvars = array();
- wp_parse_str( html_entity_decode( $params['flashvars']['value'] ), $flashvars );
+ $src = esc_attr( str_replace( 'player/', '', $matches[1] ) );
+ $height = empty( $matches[3] ) ? '' : esc_attr( $matches[3] );
+ $width = empty( $matches[5] ) ? '' : esc_attr( $matches[5] );
- if ( ! isset( $flashvars['photo_id'] ) ) {
- continue;
- }
+ /** This action is documented in modules/shortcodes/youtube.php */
+ do_action( 'jetpack_embed_to_shortcode', 'flickr_photo', $src );
- $photo_id = preg_replace( '#[^A-Za-z0-9_./@+-]+#', '', $flashvars['photo_id'] );
+ return '[flickr photo="' . $src . '" w=' . $width . ' h=' . $height . ']';
+}
- if ( ! strlen( $photo_id ) ) {
- continue;
- }
+/**
+ * Transforms embed to shortcode on save when the video param is used.
+ * If embed content can not be transformed to a valid shortcode,
+ * the embed content itself is returned.
+ *
+ * @param string $content Embed output.
+ *
+ * @return string Shortcode or the embed content.
+ */
+function jetpack_flickr_video_to_shortcode( $content ) {
+ // Get video src.
+ preg_match( '/<video src=\"([^\"]+)\"/', $content, $matches );
- $code_atts = array( 'video' => $photo_id );
+ if ( empty( $matches[1] ) ) {
+ return $content;
+ }
- if (
- isset( $flashvars['flickr_show_info_box'] )
- && 'true' === $flashvars['flickr_show_info_box']
- ) {
- $code_atts['show_info'] = 'true';
- }
+ preg_match( '/(https?:)?\/\/([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)\/photos\/([^\/]+)\/\d+\//', $matches[1], $matches );
- if ( ! empty( $flashvars['photo_secret'] ) ) {
- $photo_secret = preg_replace( '#[^A-Za-z0-9_./@+-]+#', '', $flashvars['photo_secret'] );
- if ( strlen( $photo_secret ) ) {
- $code_atts['secret'] = $photo_secret;
- }
- }
+ $video_src = esc_attr( $matches[0] );
- if ( ! empty( $params['width']['value'] ) ) {
- $code_atts['w'] = (int) $params['width']['value'];
- }
+ // Get width and height.
- if ( ! empty( $params['height']['value'] ) ) {
- $code_atts['h'] = (int) $params['height']['value'];
- }
+ preg_match( '/style=\"max-width: 100%;(width:\s(\d+)px;)?(height:\s(\d+)px;)?/', $content, $matches );
- $code = '[flickr';
- foreach ( $code_atts as $k => $v ) {
- $code .= " $k=$v";
- }
- $code .= ']';
+ $width = empty( $matches[2] ) ? '' : 'w=' . esc_attr( $matches[2] );
- $content = str_replace( $match[0], $code, $content );
- /** This action is documented in modules/shortcodes/youtube.php */
- do_action( 'jetpack_embed_to_shortcode', 'flickr_video', $flashvars['photo_id'] );
- }
- }
+ $height = empty( $matches[4] ) ? '' : 'h=' . esc_attr( $matches[4] );
- return $content;
+ $controls = false !== strpos( $content, 'controls' ) ? 'yes' : 'no';
+
+ $autoplay = false !== strpos( $content, 'autoplay' ) ? 'yes' : 'no';
+
+ /** This action is documented in modules/shortcodes/youtube.php */
+ do_action( 'jetpack_embed_to_shortcode', 'flickr_video', $video_src );
+
+ return '[flickr video="' . $video_src . '" ' . $width . ' ' . $height . ' controls="' . $controls . '" autoplay="' . $autoplay . '"]';
}
+
add_filter( 'pre_kses', 'flickr_embed_to_shortcode' );
/**
* Flickr Shortcode handler.
*
* @param array $atts Shortcode attributes.
+ *
+ * @return string Shortcode Output.
*/
function flickr_shortcode_handler( $atts ) {
$atts = shortcode_atts(
array(
- 'video' => 0,
- 'photo' => 0,
- 'show_info' => 0,
- 'w' => 400,
- 'h' => 300,
- 'secret' => 0,
+ 'video' => 0,
+ 'photo' => 0,
+ 'w' => '',
+ 'h' => '',
+ 'controls' => 'yes',
+ 'autoplay' => '',
),
$atts,
'flickr'
@@ -148,39 +138,31 @@ function flickr_shortcode_handler( $atts ) {
if ( 'video' === $showing ) {
- if ( ! is_numeric( $src ) && ! preg_match( '~^(https?:)?//([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)/.*~i', $src ) ) {
- return '';
- }
-
- if ( preg_match( '!photos/(([0-9a-zA-Z-_]+)|([0-9]+@N[0-9]+))/([0-9]+)/?$!', $src, $m ) ) {
- $atts['photo_id'] = $m[4];
- } else {
- $atts['photo_id'] = $atts['video'];
- }
+ $video_id = flick_shortcode_video_id( $src );
- if (
- ! isset( $atts['show_info'] )
- || in_array( $atts['show_info'], array( 'yes', 'true' ), true )
- ) {
- $atts['show_info'] = 'true';
- } elseif ( in_array( $atts['show_info'], array( 'false', 'no' ), true ) ) {
- $atts['show_info'] = 'false';
- }
-
- if ( isset( $atts['secret'] ) ) {
- $atts['secret'] = preg_replace( '![^\w]+!i', '', $atts['secret'] );
+ if ( empty( $video_id ) ) {
+ return '';
}
- return flickr_shortcode_video_markup( $atts );
+ $atts = array_map( 'esc_attr', $atts );
+ return flickr_shortcode_video_markup( $atts, $video_id, $src );
} elseif ( 'photo' === $showing ) {
if ( ! preg_match( '~^(https?:)?//([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)/.*~i', $src ) ) {
return '';
}
+ $height = empty( $atts['h'] ) ? 'auto' : esc_attr( $atts['h'] );
+
$src = sprintf( '%s/player/', untrailingslashit( $src ) );
- return sprintf( '<iframe src="%s" height="%s" width="%s" frameborder="0" allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen></iframe>', esc_url( $src ), esc_attr( $atts['h'] ), esc_attr( $atts['w'] ) );
+ $allow_full_screen = 'allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen';
+
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ $allow_full_screen = str_replace( ' oallowfullscreen msallowfullscreen', '', $allow_full_screen );
+ }
+
+ return sprintf( '<iframe src="%s" height="%s" width="%s" frameborder="0" %s></iframe>', esc_url( $src ), $height, esc_attr( $atts['w'] ), $allow_full_screen );
}
return false;
@@ -189,19 +171,107 @@ function flickr_shortcode_handler( $atts ) {
/**
* Return HTML markup for a Flickr embed.
*
- * @param array $atts Shortcode attributes.
+ * @param array $atts Shortcode attributes.
+ * @param string $id Video ID.
+ * @param string $video_param video param of the shortcode.
+ *
+ * @return string Shortcode ouput for video.
*/
-function flickr_shortcode_video_markup( $atts ) {
- $atts = array_map( 'esc_attr', $atts );
+function flickr_shortcode_video_markup( $atts, $id, $video_param ) {
+
+ $transient_name = "flickr_video_$id";
+ $video_src = get_transient( $transient_name );
+
+ if ( empty( $video_src ) ) {
+ $video_url = '';
+ if ( ! is_numeric( $video_param ) ) {
+ $video_url = $video_param;
+ } else {
+ // Get the URL of the video from the page of the video.
+ $video_page_content = wp_remote_get( "http://flickr.com/photo.gne?id=$video_param" );
+
+ // Bail if we do not get any info from Flickr.
+ if ( is_wp_error( $video_page_content ) ) {
+ return '';
+ }
+
+ // Extract the URL from the og:url meta tag.
+ preg_match( '/property=\"og:url\"\scontent=\"([^\"]+)\"/', $video_page_content['body'], $matches );
+ if ( empty( $matches[1] ) ) {
+ return '';
+ }
+ $video_url = $matches[1];
+ }
+
+ $provider = 'https://www.flickr.com/services/oembed/';
+ $oembed = _wp_oembed_get_object();
+ $data = (array) $oembed->fetch( $provider, $video_url );
+ if ( empty( $data['html'] ) ) {
+ return '';
+ }
+
+ // Get the embed url.
+ preg_match( '/src=\"([^\"]+)\"/', $data['html'], $matches );
+
+ $embed_url = $matches[1];
+
+ $embed_page = wp_remote_get( $embed_url );
+
+ // Get the video url from embed html markup.
- $photo_vars = "photo_id=$atts[photo_id]";
- if ( isset( $atts['secret'] ) ) {
- $photo_vars .= "&amp;photo_secret=$atts[secret]";
+ preg_match( '/video.+src=\"([^\"]+)\"/', $embed_page['body'], $matches );
+
+ $video_src = $matches[1];
+
+ set_transient( $transient_name, $video_src, 2592000 ); // 30 days transient.
+ }
+
+ $style = 'max-width: 100%;';
+
+ if ( ! empty( $atts['w'] ) && is_numeric( $atts['w'] ) ) {
+ $style .= sprintf( 'width: %dpx;', $atts['w'] );
+ }
+
+ if ( ! empty( $atts['h'] ) && is_numeric( $atts['h'] ) ) {
+ $style .= sprintf( 'height: %dpx;', $atts['h'] );
}
- return <<<EOD
-<object type="application/x-shockwave-flash" width="$atts[w]" height="$atts[h]" data="https://www.flickr.com/apps/video/stewart.swf?v=1.161" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> <param name="flashvars" value="$photo_vars&amp;flickr_show_info_box=$atts[show_info]"></param><param name="movie" value="https://www.flickr.com/apps/video/stewart.swf?v=1.161"></param><param name="bgcolor" value="#000000"></param><param name="allowFullScreen" value="true"></param><param name="wmode" value="opaque"></param><embed type="application/x-shockwave-flash" src="https://www.flickr.com/apps/video/stewart.swf?v=1.161" bgcolor="#000000" allowfullscreen="true" flashvars="$photo_vars&amp;flickr_show_info_box=$atts[show_info]" wmode="opaque" height="$atts[h]" width="$atts[w]"></embed></object>
-EOD;
+ $controls = 'yes' === $atts['controls'] ? 'controls' : '';
+ $autoplay = 'yes' === $atts['autoplay'] ? 'autoplay' : '';
+
+ return sprintf(
+ '<div class="flick_video" style="%s"><video src="%s" %s %s /></div>',
+ esc_attr( $style ),
+ esc_attr( $video_src ),
+ $controls,
+ $autoplay
+ );
+}
+
+/**
+ * Extract the id of the flickr video from the video param.
+ *
+ * @param string $video_param Video parameter of the shortcode.
+ *
+ * @return string|boolean ID of the video or false in case the ID can not be extracted.
+ */
+function flick_shortcode_video_id( $video_param ) {
+ if ( preg_match( '/^https?:\/\/(www\.)?flickr\.com\/.+/', $video_param ) || preg_match( '/^https?:\/\/flic\.kr\/.+/', $video_param ) ) {
+
+ // Extract the video id from the url.
+ preg_match( '/\d+/', $video_param, $matches );
+
+ if ( empty( $matches ) ) {
+ return false;
+ }
+
+ return $matches[0];
+
+ } elseif ( is_numeric( $video_param ) ) {
+ return $video_param;
+ }
+
+ return false;
}
add_shortcode( 'flickr', 'flickr_shortcode_handler' );
diff --git a/plugins/jetpack/modules/shortcodes/getty.php b/plugins/jetpack/modules/shortcodes/getty.php
index 71e64060..4ea766fd 100644
--- a/plugins/jetpack/modules/shortcodes/getty.php
+++ b/plugins/jetpack/modules/shortcodes/getty.php
@@ -5,7 +5,7 @@
* [getty src="82278805" width="$width" height="$height"]
* <div class="getty embed image" style="background-color:#fff;display:inline-block;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#a7a7a7;font-size:11px;width:100%;max-width:462px;"><div style="padding:0;margin:0;text-align:left;"><a href="http://www.gettyimages.com/detail/82278805" target="_blank" style="color:#a7a7a7;text-decoration:none;font-weight:normal !important;border:none;display:inline-block;">Embed from Getty Images</a></div><div style="overflow:hidden;position:relative;height:0;padding:80.086580% 0 0 0;width:100%;"><iframe src="//embed.gettyimages.com/embed/82278805?et=jGiu6FXXSpJDGf1SnwLV2g&sig=TFVNFtqghwNw5iJQ1MFWnI8f4Y40_sfogfZLhai6SfA=" width="462" height="370" scrolling="no" frameborder="0" style="display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe></div><p style="margin:0;"></p></div>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
diff --git a/plugins/jetpack/modules/shortcodes/gist.php b/plugins/jetpack/modules/shortcodes/gist.php
index 7c558c46..009fc04c 100644
--- a/plugins/jetpack/modules/shortcodes/gist.php
+++ b/plugins/jetpack/modules/shortcodes/gist.php
@@ -15,11 +15,9 @@
* Gist ID with username: [gist jeherve/57cc50246aab776e110060926a2face2]
* Gist private ID with username: [gist xknown/fc5891af153e2cf365c9]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-use Automattic\Jetpack\Assets;
-
wp_embed_register_handler( 'github-gist', '#https?://gist\.github\.com/([a-zA-Z0-9/]+)(\#file\-[a-zA-Z0-9\_\-]+)?#', 'github_gist_embed_handler' );
add_shortcode( 'gist', 'github_gist_shortcode' );
@@ -201,22 +199,31 @@ function github_gist_shortcode( $atts, $content = '' ) {
}
// URL points to the entire gist, including the file name if there was one.
- $id = ( ! empty( $file ) ? $id . '?file=' . $file : $id );
-
- wp_enqueue_script(
- 'jetpack-gist-embed',
- Assets::get_file_url_for_environment( '_inc/build/shortcodes/js/gist.min.js', 'modules/shortcodes/js/gist.js' ),
- array( 'jquery' ),
- JETPACK__VERSION,
- true
- );
+ $id = ( ! empty( $file ) ? $id . '?file=' . $file : $id );
+ $return = false;
- // inline style to prevent the bottom margin to the embed that themes like TwentyTen, et al., add to tables.
- $return = sprintf(
- '<style>.gist table { margin-bottom: 0; }</style><div class="gist-oembed" data-gist="%1$s" data-ts="%2$d"></div>',
- esc_attr( $id ),
- absint( $tab_size )
- );
+ $request = wp_remote_get( esc_url_raw( 'https://gist.github.com/' . esc_attr( $id ) ) );
+ $request_code = wp_remote_retrieve_response_code( $request );
+
+ if ( 200 === $request_code ) {
+ $request_body = wp_remote_retrieve_body( $request );
+ $request_data = json_decode( $request_body );
+
+ wp_enqueue_style( 'jetpack-gist-styling', esc_url( $request_data->stylesheet ), array(), JETPACK__VERSION );
+
+ $gist = substr_replace( $request_data->div, sprintf( 'style="tab-size: %1$s" ', absint( $tab_size ) ), 5, 0 );
+
+ // Add inline styles for the tab style in the opening div of the gist.
+ $gist = preg_replace(
+ '#(\<div\s)+(id=\"gist[0-9]+\")+(\sclass=\"gist\"\>)?#',
+ sprintf( '$1style="tab-size: %1$s" $2$3', absint( $tab_size ) ),
+ $request_data->div,
+ 1
+ );
+
+ // Add inline style to prevent the bottom margin to the embed that themes like TwentyTen, et al., add to tables.
+ $return = sprintf( '<style>.gist table { margin-bottom: 0; }</style>%1$s', $gist );
+ }
if (
// No need to check for a nonce here, that's already handled by Core further up.
diff --git a/plugins/jetpack/modules/shortcodes/googleapps.php b/plugins/jetpack/modules/shortcodes/googleapps.php
index 55c4580e..e1299763 100644
--- a/plugins/jetpack/modules/shortcodes/googleapps.php
+++ b/plugins/jetpack/modules/shortcodes/googleapps.php
@@ -33,7 +33,7 @@
* Generic
* <iframe src="https://docs.google.com/file/d/0B0SIdZW7iu-zX1RWREJpMXVHZVU/preview" width="640" height="480"></iframe>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_filter( 'pre_kses', 'googleapps_embed_to_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/googlemaps.php b/plugins/jetpack/modules/shortcodes/googlemaps.php
index 1871aff3..cf5ce93f 100644
--- a/plugins/jetpack/modules/shortcodes/googlemaps.php
+++ b/plugins/jetpack/modules/shortcodes/googlemaps.php
@@ -7,7 +7,7 @@
* [googlemaps https://maps.google.com/maps?f=q&hl=en&geocode=&q=San+Francisco,+CA&sll=43.469466,-83.998504&sspn=0.01115,0.025942&g=San+Francisco,+CA&ie=UTF8&z=12&iwloc=addr&ll=37.808156,-122.402458&output=embed&s=AARTsJp56EajYksz3JXgNCwT3LJnGsqqAQ&w=425&h=350]
* [googlemaps https://mapsengine.google.com/map/embed?mid=zbBhkou4wwtE.kUmp8K6QJ7SA&w=640&h=480]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -124,7 +124,20 @@ function jetpack_googlemaps_shortcode( $atts ) {
}
}
- return '<div class="' . esc_attr( $css_class ) . '"><iframe width="' . $width . '" height="' . $height . '" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="' . $url . '"></iframe></div>';
+ $sandbox = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request()
+ ? 'sandbox="allow-popups allow-scripts allow-same-origin"'
+ : '';
+
+ return sprintf(
+ '<div class="%1$s">
+ <iframe width="%2$d" height="%3$d" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" %5$s src="%4$s"></iframe>
+ </div>',
+ esc_attr( $css_class ),
+ absint( $width ),
+ absint( $height ),
+ esc_url( $url ),
+ $sandbox
+ );
}
}
add_shortcode( 'googlemaps', 'jetpack_googlemaps_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/googleplus.php b/plugins/jetpack/modules/shortcodes/googleplus.php
index 21211ee4..09effba6 100644
--- a/plugins/jetpack/modules/shortcodes/googleplus.php
+++ b/plugins/jetpack/modules/shortcodes/googleplus.php
@@ -4,7 +4,7 @@
* Google+ has shut down. Output the link for history's sake.
* Other than that, there's not much we can do.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
define( 'JETPACK_GOOGLEPLUS_EMBED_REGEX', '#^https?://plus\.(sandbox\.)?google\.com/(u/\d+/)?([^/]+)/posts/([^/]+)$#' );
diff --git a/plugins/jetpack/modules/shortcodes/gravatar.php b/plugins/jetpack/modules/shortcodes/gravatar.php
index f84f1c24..ac93631d 100644
--- a/plugins/jetpack/modules/shortcodes/gravatar.php
+++ b/plugins/jetpack/modules/shortcodes/gravatar.php
@@ -7,7 +7,7 @@
* [gravatar email="user@example.org" size="48"]
* [gravatar_profile who="user@example.org"]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'gravatar', 'jetpack_gravatar_shortcode' );
@@ -35,7 +35,7 @@ function jetpack_gravatar_shortcode( $atts ) {
return false;
}
- $atts['size'] = intval( $atts['size'] );
+ $atts['size'] = (int) $atts['size'];
if ( 0 > $atts['size'] ) {
$atts['size'] = 96;
}
@@ -107,8 +107,11 @@ function jetpack_gravatar_profile_shortcode( $atts ) {
ob_start();
- ?>
- <script type="text/javascript">
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ wp_enqueue_style( 'gravatar-style', plugins_url( '/css/gravatar-amp.css', __FILE__ ), array(), JETPACK__VERSION );
+ } else {
+ ?>
+ <script type="text/javascript">
( function() {
if ( null === document.getElementById( 'gravatar-profile-embed-styles' ) ) {
var headID = document.getElementsByTagName( 'head' )[0];
@@ -116,7 +119,7 @@ function jetpack_gravatar_profile_shortcode( $atts ) {
styleNode.type = 'text/css';
styleNode.id = 'gravatar-profile-embed-styles';
- var gCSS = '.grofile-wrap { border: solid 1px #eee; padding: 10px; } .grofile { padding: 0 0 5px 0; } .grofile-left { float: left; display: block; width: 96px; margin-right: 15px; } .grofile .gravatar { margin-bottom: 5px; } .grofile-clear { clear: left; font-size: 1px; height: 1px; } .grofile ul li a { text-indent: -99999px; } .grofile .grofile-left a:hover { text-decoration: none !important; border: none !important; } .grofile-name { margin-top: 0; }';
+ var gCSS = '.grofile-wrap { border: solid 1px #f0f0f1; padding: 10px; } .grofile { padding: 0 0 5px 0; } .grofile-left { float: left; display: block; width: 96px; margin-right: 15px; } .grofile .gravatar { margin-bottom: 5px; } .grofile-clear { clear: left; font-size: 1px; height: 1px; } .grofile ul li a { text-indent: -99999px; } .grofile .grofile-left a:hover { text-decoration: none !important; border: none !important; } .grofile-name { margin-top: 0; }';
if ( document.all ) {
styleNode.innerText = gCSS;
@@ -127,7 +130,10 @@ function jetpack_gravatar_profile_shortcode( $atts ) {
headID.appendChild( styleNode );
}
} )();
- </script>
+ </script>
+ <?php
+ }
+ ?>
<div class="grofile vcard" id="grofile-embed-<?php echo esc_attr( $instance ); ?>">
<div class="grofile-inner">
diff --git a/plugins/jetpack/modules/shortcodes/houzz.php b/plugins/jetpack/modules/shortcodes/houzz.php
index 01a18869..9ce456d1 100644
--- a/plugins/jetpack/modules/shortcodes/houzz.php
+++ b/plugins/jetpack/modules/shortcodes/houzz.php
@@ -8,7 +8,7 @@
* - http://www.houzz.com/pro/james-crisp
* Blog sidebar: [houzz=http://www.houzz.com/profile/alon w=200 h=300]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
// Register oEmbed provider.
diff --git a/plugins/jetpack/modules/shortcodes/inline-pdfs.php b/plugins/jetpack/modules/shortcodes/inline-pdfs.php
new file mode 100644
index 00000000..ba405a02
--- /dev/null
+++ b/plugins/jetpack/modules/shortcodes/inline-pdfs.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Embed support for Inline PDFs
+ *
+ * Takes a plain-text PDF URL (*.pdf), and attempts to embed it directly
+ * in the post instead of leaving it as a bare link.
+ *
+ * @package automattic/jetpack
+ */
+
+wp_embed_register_handler( 'inline-pdfs', '#https?://[^<]*\.pdf$#i', 'jetpack_inline_pdf_embed_handler' );
+
+/**
+ * Callback to modify the output of embedded PDF files.
+ *
+ * @param array $matches Regex partial matches against the URL passed.
+ * @param array $attr Attributes received in embed response.
+ * @param array $url Requested URL to be embedded.
+ */
+function jetpack_inline_pdf_embed_handler( $matches, $attr, $url ) {
+ /** This action is documented in modules/widgets/social-media-icons.php */
+ do_action( 'jetpack_bump_stats_extras', 'embeds', 'inline-pdf' );
+
+ $filename = basename( wp_parse_url( $url, PHP_URL_PATH ) );
+ $fallback_text = sprintf(
+ /* translators: Placeholder is a file name, for example "file.pdf" */
+ esc_html__( 'Click to access %1$s', 'jetpack' ),
+ $filename
+ );
+
+ return sprintf(
+ '<p><a href="%1$s" target="_blank" rel="noopener noreferrer nofollow">%2$s</a></p>',
+ esc_url( $url ),
+ $fallback_text
+ );
+}
diff --git a/plugins/jetpack/modules/shortcodes/instagram.php b/plugins/jetpack/modules/shortcodes/instagram.php
index 30d96ed8..2a4758fa 100644
--- a/plugins/jetpack/modules/shortcodes/instagram.php
+++ b/plugins/jetpack/modules/shortcodes/instagram.php
@@ -10,10 +10,61 @@
* <blockquote class="instagram-media" data-instgrm-captioned data-instgrm-version="2" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:8px;"><div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding-bottom:55%; padding-top:45%; text-align:center; width:100%;"><div style="position:relative;"><div style=" -webkit-animation:dkaXkpbBxI 1s ease-out infinite; animation:dkaXkpbBxI 1s ease-out infinite; background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf//42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB/lQPb79drWOyJVa/DAvg9B/rLB4cC+Nqgdz/TvBbBnr6GBReqn/nRmDgaQEej7WhonozjF+Y2I/fZou/qAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-44px; width:44px;"></div><span style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:12px; font-style:normal; font-weight:bold; position:relative; top:15px;">Loading</span></div></div><p style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin:8px 0 0 0; padding:0 4px; word-wrap:break-word;"> Balloons</p><p style=" line-height:32px; margin-bottom:0; margin-top:8px; padding:0; text-align:center;"> <a href="https://instagram.com/p/r9vfPrmjeB/" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; text-decoration:none;" target="_top"> View on Instagram</a></p></div><style>@-webkit-keyframes"dkaXkpbBxI"{ 0%{opacity:0.5;} 50%{opacity:1;} 100%{opacity:0.5;} } @keyframes"dkaXkpbBxI"{ 0%{opacity:0.5;} 50%{opacity:1;} 100%{opacity:0.5;} }</style></blockquote>
* <script async defer src="https://platform.instagram.com/en_US/embeds.js"></script>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Status;
+
+if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ add_action( 'init', 'jetpack_instagram_enable_embeds' );
+} else {
+ jetpack_instagram_enable_embeds();
+}
+
+/**
+ * Register Instagram as oembed provider, and add required filters for the API request.
+ * Add filter to reverse iframes to shortcode. Register [instagram] shortcode.
+ *
+ * @since 9.1.0
+ */
+function jetpack_instagram_enable_embeds() {
+ wp_oembed_add_provider(
+ '#https?://(www\.)?instagr(\.am|am\.com)/(p|tv|reel)/.*#i',
+ 'https://graph.facebook.com/v5.0/instagram_oembed/',
+ true
+ );
+
+ /**
+ * Handle an alternate Instagram URL format, where the username is also part of the URL.
+ */
+ wp_oembed_add_provider(
+ '#https?://(?:www\.)?instagr(?:\.am|am\.com)/(?:[^/]*)/(p|tv|reel)/([^\/]*)#i',
+ 'https://graph.facebook.com/v5.0/instagram_oembed/',
+ true
+ );
+
+ /**
+ * Add auth token required by Instagram's oEmbed REST API, or proxy through WP.com.
+ */
+ add_filter( 'oembed_fetch_url', 'jetpack_instagram_oembed_fetch_url', 10, 3 );
+
+ /**
+ * Add JP auth headers if we're proxying through WP.com.
+ */
+ add_filter( 'oembed_remote_get_args', 'jetpack_instagram_oembed_remote_get_args', 10, 2 );
+
+ /**
+ * Embed reversal: Convert an embed code from Instagram.com to an oEmbeddable URL.
+ */
+ add_filter( 'pre_kses', 'jetpack_instagram_embed_reversal' );
+
+ /**
+ * Add the shortcode.
+ */
+ add_shortcode( 'instagram', 'jetpack_shortcode_instagram' );
+}
/**
* Embed Reversal for Instagram
@@ -72,182 +123,171 @@ function jetpack_instagram_embed_reversal( $content ) {
return $content;
}
-add_filter( 'pre_kses', 'jetpack_instagram_embed_reversal' );
-
/**
- * Instagram's custom Embed provider.
- * We first remove 2 different embed providers, both registered by Core.
- * - The first is the original provider,that only supports images.
- * - The second is tne new provider that replaced the first one in Core when Core added support for videos. https://core.trac.wordpress.org/changeset/44486
+ * List of allowed and sanitized parameters
+ * that can be used with the Instagram oEmbed endpoint.
*
- * Once the core embed provider is removed (one or the other, depending on your version of Core), we declare our own.
- */
-wp_oembed_remove_provider( '#https?://(www\.)?instagr(\.am|am\.com)/p/.*#i' );
-wp_oembed_remove_provider( '#https?://(www\.)?instagr(\.am|am\.com)/(p|tv)/.*#i' );
-wp_embed_register_handler(
- 'jetpack_instagram',
- '#http(s?)://(www\.)?instagr(\.am|am\.com)/(p|tv)/([^\/]*)#i',
- 'jetpack_instagram_handler'
-);
-
-/**
- * Handle Instagram embeds (build embed from regex).
+ * Those parameters can be provided via the Instagram URL, or via shortcode parameters.
*
- * @param array $matches Array of matches from the regex.
- * @param array $atts The original unmodified attributes.
- * @param string $url The original URL that was matched by the regex.
+ * @see https://developers.facebook.com/docs/graph-api/reference/instagram-oembed#parameters
+ *
+ * @since 9.1.0
+ *
+ * @param string $url URL of the content to be embedded.
+ * @param array $atts Shortcode attributes.
+ *
+ * @return array $params Array of parameters to be used in Instagram query.
*/
-function jetpack_instagram_handler( $matches, $atts, $url ) {
+function jetpack_instagram_get_allowed_parameters( $url, $atts = array() ) {
global $content_width;
- // keep a copy of the passed-in URL since it's modified below.
- $passed_url = $url;
+ // Any URL passed via a shortcode attribute takes precedence.
+ if ( ! empty( $atts['url'] ) ) {
+ $url = $atts['url'];
+ unset( $atts['url'] );
+ }
- $max_width = 698;
- $min_width = 320;
+ /*
+ * Get URL and parameters from the URL if possible.
+ *
+ * We'll also clean any other query params from the URL since Facebook's new API for Instagram
+ * embeds does not like query parameters. See p7H4VZ-2DU-p2.
+ */
+ $parsed_url = wp_parse_url( $url );
+ if ( $parsed_url && isset( $parsed_url['host'] ) && isset( $parsed_url['path'] ) ) {
+ // Bail early if this is not an Instagram URL.
+ if ( ! preg_match( '/(?:^|\.)instagr(?:\.am|am\.com)$/', $parsed_url['host'] ) ) {
+ return array();
+ }
- if ( is_feed() ) {
- // Instagram offers direct links to images, but not to videos.
- if ( 'p' === $matches[1] ) {
- $media_url = sprintf( 'https://instagr.am/p/%1$s/media/?size=l', $matches[2] );
- return sprintf(
- '<a href="%1$s" title="%2$s" target="_blank"><img src="%3$s" alt="%4$s" /></a>',
- esc_url( $url ),
- esc_attr__( 'View on Instagram', 'jetpack' ),
- esc_url( $media_url ),
- esc_html__( 'Instagram Photo', 'jetpack' )
- );
- } elseif ( 'tv' === $matches[1] ) {
- return sprintf(
- '<a href="%1$s" title="%2$s" target="_blank">%3$s</a>',
- esc_url( $url ),
- esc_attr__( 'View on Instagram', 'jetpack' ),
- esc_html__( 'Instagram Video', 'jetpack' )
- );
+ $url = 'https://www.instagram.com' . $parsed_url['path'];
+
+ // If we have any parameters as part of the URL, we merge them with our attributes.
+ if ( ! empty( $parsed_url['query'] ) ) {
+ $query_args = array();
+ wp_parse_str( $parsed_url['query'], $query_args );
+
+ $atts = array_merge( $atts, $query_args );
}
+ } else {
+ return array();
}
- $atts = shortcode_atts(
+ $max_width = 698;
+ $min_width = 320;
+
+ $params = shortcode_atts(
array(
+ 'url' => $url,
'width' => isset( $content_width ) ? $content_width : $max_width,
+ 'height' => '',
'hidecaption' => false,
),
- $atts
+ $atts,
+ 'instagram'
);
- $atts['width'] = absint( $atts['width'] );
- if ( $atts['width'] > $max_width ) {
- $atts['width'] = $max_width;
- } elseif ( $atts['width'] < $min_width ) {
- $atts['width'] = $min_width;
+ // Ensure width is within bounds.
+ $params['width'] = absint( $params['width'] );
+ if ( $params['width'] > $max_width ) {
+ $params['width'] = $max_width;
+ } elseif ( $params['width'] < $min_width ) {
+ $params['width'] = $min_width;
}
- // remove the modal param from the URL.
- $url = remove_query_arg( 'modal', $url );
-
- // force .com instead of .am for https support.
- $url = str_replace( 'instagr.am', 'instagram.com', $url );
+ return $params;
+}
- // The oembed endpoint expects HTTP, but HTTP requests 301 to HTTPS.
- $instagram_http_url = str_replace( 'https://', 'http://', $url );
+/**
+ * Add auth token required by Instagram's oEmbed REST API, or proxy through WP.com.
+ *
+ * @since 9.1.0
+ *
+ * @param string $provider URL of the oEmbed provider.
+ * @param string $url URL of the content to be embedded.
+ * @param array $args Additional arguments for retrieving embed HTML.
+ *
+ * @return string
+ */
+function jetpack_instagram_oembed_fetch_url( $provider, $url, $args ) {
+ if ( ! wp_startswith( $provider, 'https://graph.facebook.com/v5.0/instagram_oembed/' ) ) {
+ return $provider;
+ }
- $url_args = array(
- 'url' => $instagram_http_url,
- 'maxwidth' => $atts['width'],
- 'omitscript' => 1,
- );
+ // Get a set of URL and parameters supported by Facebook.
+ $clean_parameters = jetpack_instagram_get_allowed_parameters( $url, $args );
- if ( $atts['hidecaption'] ) {
- $url_args['hidecaption'] = 'true';
+ // Replace existing URL by our clean version.
+ if ( ! empty( $clean_parameters['url'] ) ) {
+ $provider = add_query_arg( 'url', rawurlencode( $clean_parameters['url'] ), $provider );
}
- $url = esc_url_raw( add_query_arg( $url_args, 'https://api.instagram.com/oembed/' ) );
+ // Our shortcode supports the width param, but the API expects maxwidth.
+ if ( ! empty( $clean_parameters['width'] ) ) {
+ $provider = add_query_arg( 'maxwidth', $clean_parameters['width'], $provider );
+ }
- /**
- * Filter Object Caching for response from Instagram.
- *
- * Allow enabling of object caching for the response sent by Instagram when querying for Instagram image HTML.
- *
- * @module shortcodes
- *
- * @since 3.3.0
- *
- * @param bool false Object caching is off by default.
- * @param array $matches Array of Instagram URLs found in the post.
- * @param array $atts Instagram Shortcode attributes.
- * @param string $passed_url Instagram API URL.
- */
- $response_body_use_cache = apply_filters( 'instagram_cache_oembed_api_response_body', false, $matches, $atts, $passed_url );
- $response_body = false;
- if ( $response_body_use_cache ) {
- $cache_key = 'oembed_response_body_' . md5( $url );
- $response_body = wp_cache_get( $cache_key, 'instagram_embeds' );
+ if ( ! empty( $clean_parameters['hidecaption'] ) ) {
+ $provider = add_query_arg( 'hidecaption', true, $provider );
}
- if ( ! $response_body ) {
- // Not using cache (default case) or cache miss.
- $instagram_response = wp_remote_get( $url, array( 'redirection' => 0 ) );
- if (
- is_wp_error( $instagram_response )
- || 200 !== $instagram_response['response']['code']
- || empty( $instagram_response['body'] ) ) {
- return '<!-- instagram error: invalid instagram resource -->';
- }
+ $access_token = jetpack_instagram_get_access_token();
- $response_body = json_decode( $instagram_response['body'] );
- if ( $response_body_use_cache ) {
- // if caching it is short-lived since this is a "Cache-Control: no-cache" resource.
- wp_cache_set(
- $cache_key,
- $response_body,
- 'instagram_embeds',
- HOUR_IN_SECONDS + wp_rand( 0, HOUR_IN_SECONDS )
- );
- }
+ if ( ! empty( $access_token ) ) {
+ return add_query_arg( 'access_token', $access_token, $provider );
}
- if ( ! empty( $response_body->html ) ) {
- wp_enqueue_script(
- 'jetpack-instagram-embed',
- Assets::get_file_url_for_environment( '_inc/build/shortcodes/js/instagram.min.js', 'modules/shortcodes/js/instagram.js' ),
- array( 'jquery' ),
- JETPACK__VERSION,
- true
- );
- return $response_body->html;
+ // If we don't have an access token, we go through the WP.com proxy instead.
+ // To that end, we need to make sure that we're connected to WP.com.
+ if ( ! Jetpack::is_connection_ready() || ( new Status() )->is_offline_mode() ) {
+ return $provider;
}
- return '<!-- instagram error: no embed found -->';
+ // @TODO Use Core's /oembed/1.0/proxy endpoint on WP.com
+ // (Currently not global but per-site, i.e. /oembed/1.0/sites/1234567/proxy)
+ // and deprecate /oembed-proxy/instagram endpoint.
+ $wpcom_oembed_proxy = Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ) . '/wpcom/v2/oembed-proxy/instagram/';
+ return str_replace( 'https://graph.facebook.com/v5.0/instagram_oembed/', $wpcom_oembed_proxy, $provider );
}
/**
- * Handle an alternate Instagram URL format, where the username is also part of the URL.
- * We do not actually need that username for the embed.
+ * Add JP auth headers if we're proxying through WP.com.
+ *
+ * @param array $args oEmbed remote get arguments.
+ * @param string $url URL to be inspected.
*/
-wp_embed_register_handler(
- 'jetpack_instagram_alternate_format',
- '#https?://(?:www\.)?instagr(?:\.am|am\.com)/(?:[^/]*)/(p|tv)/([^\/]*)#i',
- 'jetpack_instagram_alternate_format_handler'
-);
+function jetpack_instagram_oembed_remote_get_args( $args, $url ) {
+ if ( ! wp_startswith( $url, Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ) . '/wpcom/v2/oembed-proxy/instagram/' ) ) {
+ return $args;
+ }
+
+ $method = 'GET';
+ $signed_request = Client::build_signed_request(
+ compact( 'url', 'method' )
+ );
+
+ return $signed_request['request'];
+}
/**
- * Handle alternate Instagram embeds (build embed from regex).
+ * Fetches a Facebook API access token used for query for Instagram embed information, if one is set.
*
- * @param array $matches Array of matches from the regex.
- * @param array $atts The original unmodified attributes.
- * @param string $url The original URL that was matched by the regex.
+ * @return string The access token or ''
*/
-function jetpack_instagram_alternate_format_handler( $matches, $atts, $url ) {
- // Replace URL saved by original Instagram URL (no username).
- $matches[0] = esc_url_raw(
- sprintf(
- 'https://www.instagram.com/%1$s/%2$s',
- $matches[1],
- $matches[2]
- )
- );
-
- return jetpack_instagram_handler( $matches, $atts, $url );
+function jetpack_instagram_get_access_token() {
+ /**
+ * Filters the Instagram embed token that is used for querying the Facebook API.
+ *
+ * When this token is set, requests are not proxied through the WordPress.com API. Instead, a request is made directly to the
+ * Facebook API to query for information about the embed which should provide a performance benefit.
+ *
+ * @module shortcodes
+ *
+ * @since 9.0.0
+ *
+ * @param string string The access token set via the JETPACK_INSTAGRAM_EMBED_TOKEN constant.
+ */
+ return (string) apply_filters( 'jetpack_instagram_embed_token', (string) Constants::get_constant( 'JETPACK_INSTAGRAM_EMBED_TOKEN' ) );
}
/**
@@ -262,6 +302,12 @@ function jetpack_shortcode_instagram( $atts ) {
return '';
}
+ $atts = jetpack_instagram_get_allowed_parameters( $atts['url'], $atts );
+
+ if ( empty( $atts['url'] ) ) {
+ return '';
+ }
+
if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
$url_pattern = '#http(s?)://(www\.)?instagr(\.am|am\.com)/p/([^/?]+)#i';
preg_match( $url_pattern, $atts['url'], $matches );
@@ -285,4 +331,3 @@ function jetpack_shortcode_instagram( $atts ) {
return $wp_embed->shortcode( $atts, $atts['url'] );
}
-add_shortcode( 'instagram', 'jetpack_shortcode_instagram' );
diff --git a/plugins/jetpack/modules/shortcodes/js/brightcove.js b/plugins/jetpack/modules/shortcodes/js/brightcove.js
index 0e6da190..f75a45a2 100644
--- a/plugins/jetpack/modules/shortcodes/js/brightcove.js
+++ b/plugins/jetpack/modules/shortcodes/js/brightcove.js
@@ -1,5 +1,5 @@
/* global brightcove, brightcoveData */
-( function( $ ) {
+( function ( $ ) {
var script = document.createElement( 'script' ),
tld = 'co.jp' === brightcoveData.tld ? 'co.jp' : 'com',
timer = false;
diff --git a/plugins/jetpack/modules/shortcodes/js/jmpress.js b/plugins/jetpack/modules/shortcodes/js/jmpress.js
index 907499bf..96535875 100644
--- a/plugins/jetpack/modules/shortcodes/js/jmpress.js
+++ b/plugins/jetpack/modules/shortcodes/js/jmpress.js
@@ -13,7 +13,7 @@
* core.js
* The core of jmpress.js
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
/**
@@ -22,11 +22,11 @@
* @access protected
* @return Function to get prefixed property
*/
- var pfx = ( function() {
+ var pfx = ( function () {
var style = document.createElement( 'dummy' ).style,
prefixes = 'Webkit Moz O ms Khtml'.split( ' ' ),
memory = {};
- return function( prop ) {
+ return function ( prop ) {
if ( typeof memory[ prop ] === 'undefined' ) {
var ucProp = prop.charAt( 0 ).toUpperCase() + prop.substr( 1 ),
props = ( prop + ' ' + prefixes.join( ucProp + ' ' ) + ucProp ).split( ' ' );
@@ -239,7 +239,7 @@
callCallback.call( this, 'beforeDeinit', $( this ), {} );
- $( settings.stepSelector, jmpress ).each( function( idx ) {
+ $( settings.stepSelector, jmpress ).each( function ( idx ) {
doStepDeinit.call( jmpress, this );
} );
@@ -250,7 +250,7 @@
area.attr( 'style', oldStyle.area );
$( canvas )
.children()
- .each( function() {
+ .each( function () {
jmpress.append( $( this ) );
} );
if ( settings.fullscreen ) {
@@ -279,7 +279,7 @@
eventData.current = current;
eventData.jmpress = this;
var result = {};
- $.each( settings[ callbackName ], function( idx, callback ) {
+ $.each( settings[ callbackName ], function ( idx, callback ) {
result.value = callback.call( jmpress, element, eventData ) || result.value;
} );
return result.value;
@@ -288,10 +288,7 @@
*
*/
function getStepParents( el ) {
- return $( el )
- .parentsUntil( jmpress )
- .not( jmpress )
- .filter( settings.stepSelector );
+ return $( el ).parentsUntil( jmpress ).not( jmpress ).filter( settings.stepSelector );
}
/**
* Reselect the active step
@@ -329,7 +326,7 @@
callCallback.call( this, 'beforeChange', el, {
stepData: step,
reason: type,
- cancel: function() {
+ cancel: function () {
cancelSelect = true;
},
} );
@@ -343,10 +340,7 @@
if ( $( el ).data( 'stepData' ).delegate ) {
delegated =
ifNotEmpty(
- $( el )
- .parentsUntil( jmpress )
- .filter( settings.stepSelector )
- .filter( step.delegate )
+ $( el ).parentsUntil( jmpress ).filter( settings.stepSelector ).filter( step.delegate )
) ||
ifNotEmpty( $( el ).near( step.delegate ) ) ||
ifNotEmpty( $( el ).near( step.delegate, true ) ) ||
@@ -415,7 +409,7 @@
if ( current.idleTimeout ) {
clearTimeout( current.idleTimeout );
}
- current.idleTimeout = setTimeout( function() {
+ current.idleTimeout = setTimeout( function () {
callCallback.call( this, 'idle', delegated, callbackData );
}, Math.max( 1, settings.transitionDuration - 100 ) );
@@ -556,21 +550,21 @@
home: home,
end: end,
canvas: canvasMod,
- container: function() {
+ container: function () {
return container;
},
- settings: function() {
+ settings: function () {
return settings;
},
active: getActive,
- current: function() {
+ current: function () {
return current;
},
fire: fire,
- init: function( step ) {
+ init: function ( step ) {
doStepInit.call( this, $( step ), current.nextIdNumber++ );
},
- deinit: function( step ) {
+ deinit: function ( step ) {
if ( step ) {
doStepDeinit.call( this, $( step ) );
} else {
@@ -616,7 +610,7 @@
$( jmpress )
.children()
.filter( steps )
- .each( function() {
+ .each( function () {
canvas.append( $( this ) );
} );
if ( settings.fullscreen ) {
@@ -668,7 +662,7 @@
callCallback.call( this, 'beforeInit', null, {} );
// INITIALIZE EACH STEP
- steps.each( function( idx ) {
+ steps.each( function ( idx ) {
doStepInit.call( jmpress, this, idx );
} );
current.nextIdNumber = steps.length;
@@ -755,7 +749,7 @@
}
var returnDataset = {};
var attrs = $( el )[ 0 ].attributes;
- $.each( attrs, function( idx, attr ) {
+ $.each( attrs, function ( idx, attr ) {
if ( attr.nodeName.substr( 0, 5 ) === 'data-' ) {
returnDataset[ toCamelcase( attr.nodeName.substr( 5 ) ) ] = attr.nodeValue;
}
@@ -777,7 +771,7 @@
var methods = {
init: init,
initialized: initialized,
- deinit: function() {},
+ deinit: function () {},
css: css,
pfx: pfx,
defaults: getDefaults,
@@ -788,7 +782,7 @@
/**
* $.jmpress()
*/
- $.fn.jmpress = function( method ) {
+ $.fn.jmpress = function ( method ) {
function f() {
var jmpressmethods = $( this ).data( 'jmpressmethods' );
if ( jmpressmethods && jmpressmethods[ method ] ) {
@@ -812,13 +806,13 @@
}
var args = arguments;
var result;
- $( this ).each( function( idx, element ) {
+ $( this ).each( function ( idx, element ) {
result = f.apply( element, args );
} );
return result;
};
$.extend( {
- jmpress: function( method ) {
+ jmpress: function ( method ) {
if ( methods[ method ] ) {
return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ) );
} else if ( callbacks[ method ] ) {
@@ -842,14 +836,14 @@
* near.js
* Find steps near each other
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
// add near( selector, backwards = false) to jquery
function checkAndGo( elements, func, selector, backwards ) {
var next;
- elements.each( function( idx, element ) {
+ elements.each( function ( idx, element ) {
if ( backwards ) {
next = func( element, selector, backwards );
if ( next ) {
@@ -888,7 +882,7 @@
var next;
var parents = $( item ).parents();
parents = $( parents.get() );
- $.each( parents.get(), function( idx, element ) {
+ $.each( parents.get(), function ( idx, element ) {
if ( backwards && $( element ).is( selector ) ) {
next = element;
return false;
@@ -901,9 +895,9 @@
return next;
}
- $.fn.near = function( selector, backwards ) {
+ $.fn.near = function ( selector, backwards ) {
var array = [];
- $( this ).each( function( idx, element ) {
+ $( this ).each( function ( idx, element ) {
var near =
( backwards ? false : findNextInChildren( element, selector, backwards ) ) ||
findNextInSiblings( element, selector, backwards ) ||
@@ -919,7 +913,7 @@
* transform.js
* The engine that powers the transforms or falls back to other methods
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
/* FUNCTIONS */
@@ -932,9 +926,9 @@
*/
var engines = {
3: {
- transform: function( el, data ) {
+ transform: function ( el, data ) {
var transform = 'translate(-50%,-50%)';
- $.each( data, function( idx, item ) {
+ $.each( data, function ( idx, item ) {
var coord = [ 'X', 'Y', 'Z' ];
var i;
if ( item[ 0 ] === 'translate' ) {
@@ -967,9 +961,9 @@
},
},
2: {
- transform: function( el, data ) {
+ transform: function ( el, data ) {
var transform = 'translate(-50%,-50%)';
- $.each( data, function( idx, item ) {
+ $.each( data, function ( idx, item ) {
var coord = [ 'X', 'Y' ];
if ( item[ 0 ] === 'translate' ) {
// ["translate", x, y, z]
@@ -994,9 +988,9 @@
// CHECK IF SUPPORT IS REALLY NEEDED?
// this not even work without scaling...
// it may better to display the normal view
- transform: function( el, data ) {
+ transform: function ( el, data ) {
var anitarget = { top: 0, left: 0 };
- $.each( data, function( idx, item ) {
+ $.each( data, function ( idx, item ) {
var coord = [ 'X', 'Y' ];
if ( item[ 0 ] === 'translate' ) {
// ["translate", x, y, z]
@@ -1012,7 +1006,7 @@
/**
* Engine to power cross-browser translate, scale and rotate.
*/
- var engine = ( function() {
+ var engine = ( function () {
if ( $.jmpress( 'pfx', 'perspective' ) ) {
return engines[ 3 ];
} else if ( $.jmpress( 'pfx', 'transform' ) ) {
@@ -1024,7 +1018,7 @@
} )();
$.jmpress( 'defaults' ).reasonableAnimation = {};
- $.jmpress( 'initStep', function( step, eventData ) {
+ $.jmpress( 'initStep', function ( step, eventData ) {
var data = eventData.data;
var stepData = eventData.stepData;
var pf = parseFloat;
@@ -1045,20 +1039,18 @@
scaleZ: pf( data.scaleZ ) || 1,
} );
} );
- $.jmpress( 'afterInit', function( nil, eventData ) {
+ $.jmpress( 'afterInit', function ( nil, eventData ) {
var stepSelector = eventData.settings.stepSelector,
current = eventData.current;
current.perspectiveScale = 1;
current.maxNestedDepth = 0;
- var nestedSteps = $( eventData.jmpress )
- .find( stepSelector )
- .children( stepSelector );
+ var nestedSteps = $( eventData.jmpress ).find( stepSelector ).children( stepSelector );
while ( nestedSteps.length ) {
current.maxNestedDepth++;
nestedSteps = nestedSteps.children( stepSelector );
}
} );
- $.jmpress( 'applyStep', function( step, eventData ) {
+ $.jmpress( 'applyStep', function ( step, eventData ) {
$.jmpress( 'css', $( step ), {
position: 'absolute',
transformStyle: 'preserve-3d',
@@ -1082,7 +1074,7 @@
];
engine.transform( step, transform );
} );
- $.jmpress( 'setActive', function( element, eventData ) {
+ $.jmpress( 'setActive', function ( element, eventData ) {
var target = eventData.target;
var step = eventData.stepData;
var tf = ( target.transform = [] );
@@ -1107,7 +1099,7 @@
] );
target.perspectiveScale *= step.scaleX || step.scale;
- $.each( eventData.parents, function( idx, element ) {
+ $.each( eventData.parents, function ( idx, element ) {
var step = $( element ).data( 'stepData' );
tf.push( [
'scale',
@@ -1125,7 +1117,7 @@
target.perspectiveScale *= step.scaleX || step.scale;
} );
- $.each( tf, function( idx, item ) {
+ $.each( tf, function ( idx, item ) {
if ( item[ 0 ] !== 'rotate' ) {
return;
}
@@ -1156,7 +1148,7 @@
lowRotate( 3 );
} );
} );
- $.jmpress( 'applyTarget', function( active, eventData ) {
+ $.jmpress( 'applyTarget', function ( active, eventData ) {
var target = eventData.target,
props,
step = eventData.stepData,
@@ -1166,7 +1158,7 @@
// extract first scale from transform
var lastScale = -1;
- $.each( target.transform, function( idx, item ) {
+ $.each( target.transform, function ( idx, item ) {
if ( item.length <= 1 ) {
return;
}
@@ -1241,7 +1233,7 @@
* active.js
* Set the active classes on steps
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -1255,7 +1247,7 @@
defaults[ activeClass ] = 'active';
/* HOOKS */
- $jmpress( 'setInactive', function( step, eventData ) {
+ $jmpress( 'setInactive', function ( step, eventData ) {
var settings = eventData.settings,
activeClassSetting = settings[ activeClass ],
nestedActiveClassSettings = settings[ nestedActiveClass ];
@@ -1263,12 +1255,12 @@
$( step ).removeClass( activeClassSetting );
}
if ( nestedActiveClassSettings ) {
- $.each( eventData.parents, function( idx, element ) {
+ $.each( eventData.parents, function ( idx, element ) {
$( element ).removeClass( nestedActiveClassSettings );
} );
}
} );
- $jmpress( 'setActive', function( step, eventData ) {
+ $jmpress( 'setActive', function ( step, eventData ) {
var settings = eventData.settings,
activeClassSetting = settings[ activeClass ],
nestedActiveClassSettings = settings[ nestedActiveClass ];
@@ -1276,7 +1268,7 @@
$( step ).addClass( activeClassSetting );
}
if ( nestedActiveClassSettings ) {
- $.each( eventData.parents, function( idx, element ) {
+ $.each( eventData.parents, function ( idx, element ) {
$( element ).addClass( nestedActiveClassSettings );
} );
}
@@ -1286,15 +1278,13 @@
* circular.js
* Repeat from start after end
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
/* FUNCTIONS */
function firstSlide( step, eventData ) {
- return $( this )
- .find( eventData.settings.stepSelector )
- .first();
+ return $( this ).find( eventData.settings.stepSelector ).first();
}
function prevOrNext( jmpress, step, eventData, prev ) {
if ( ! step ) {
@@ -1305,9 +1295,7 @@
do {
var item = step.near( stepSelector, prev );
if ( item.length === 0 || item.closest( jmpress ).length === 0 ) {
- item = $( jmpress )
- .find( stepSelector )
- [ prev ? 'last' : 'first' ](); // eslint-disable-line no-unexpected-multiline
+ item = $( jmpress ).find( stepSelector )[ prev ? 'last' : 'first' ](); // eslint-disable-line no-unexpected-multiline
}
if ( ! item.length ) {
return false;
@@ -1318,21 +1306,19 @@
}
/* HOOKS */
- $jmpress( 'initStep', function( step, eventData ) {
+ $jmpress( 'initStep', function ( step, eventData ) {
eventData.stepData.exclude =
eventData.data.exclude && [ 'false', 'no' ].indexOf( eventData.data.exclude ) === -1;
} );
$jmpress( 'selectInitialStep', firstSlide );
$jmpress( 'selectHome', firstSlide );
- $jmpress( 'selectEnd', function( step, eventData ) {
- return $( this )
- .find( eventData.settings.stepSelector )
- .last();
+ $jmpress( 'selectEnd', function ( step, eventData ) {
+ return $( this ).find( eventData.settings.stepSelector ).last();
} );
- $jmpress( 'selectPrev', function( step, eventData ) {
+ $jmpress( 'selectPrev', function ( step, eventData ) {
return prevOrNext( this, step, eventData, true );
} );
- $jmpress( 'selectNext', function( step, eventData ) {
+ $jmpress( 'selectNext', function ( step, eventData ) {
return prevOrNext( this, step, eventData );
} );
} )( jQuery, document, window );
@@ -1340,11 +1326,11 @@
* start.js
* Set the first step to start on
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
/* HOOKS */
- $.jmpress( 'selectInitialStep', function( nil, eventData ) {
+ $.jmpress( 'selectInitialStep', function ( nil, eventData ) {
return eventData.settings.start;
} );
} )( jQuery, document, window );
@@ -1352,7 +1338,7 @@
* ways.js
* Control the flow of the steps
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -1383,7 +1369,7 @@
}
/* EXPORTED FUNCTIONS */
- $jmpress( 'register', 'route', function( route, unidirectional, reversedRoute ) {
+ $jmpress( 'register', 'route', function ( route, unidirectional, reversedRoute ) {
if ( typeof route === 'string' ) {
route = [ route, route ];
}
@@ -1394,15 +1380,15 @@
} );
/* HOOKS */
- $jmpress( 'initStep', function( step, eventData ) {
+ $jmpress( 'initStep', function ( step, eventData ) {
for ( var attr in { next: 1, prev: 1 } ) {
eventData.stepData[ attr ] = eventData.data[ attr ];
}
} );
- $jmpress( 'selectNext', function( step, eventData ) {
+ $jmpress( 'selectNext', function ( step, eventData ) {
return selectPrevOrNext.call( this, step, eventData, 'next' );
} );
- $jmpress( 'selectPrev', function( step, eventData ) {
+ $jmpress( 'selectPrev', function ( step, eventData ) {
return selectPrevOrNext.call( this, step, eventData, 'prev', true );
} );
} )( jQuery, document, window );
@@ -1410,7 +1396,7 @@
* ajax.js
* Load steps via ajax
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -1426,18 +1412,18 @@
$jmpress( 'defaults' ).ajaxLoadedClass = 'loaded';
/* HOOKS */
- $jmpress( 'initStep', function( step, eventData ) {
+ $jmpress( 'initStep', function ( step, eventData ) {
eventData.stepData.src = $( step ).attr( 'href' ) || eventData.data.src || false;
eventData.stepData.srcLoaded = false;
} );
- $jmpress( loadStep, function( step, eventData ) {
+ $jmpress( loadStep, function ( step, eventData ) {
var stepData = eventData.stepData,
href = stepData && stepData.src,
settings = eventData.settings;
if ( href ) {
$( step ).addClass( settings.ajaxLoadedClass );
stepData.srcLoaded = true;
- $( step ).load( href, function( response, status, xhr ) {
+ $( step ).load( href, function ( response, status, xhr ) {
$( eventData.jmpress ).jmpress(
'fire',
afterStepLoaded,
@@ -1451,7 +1437,7 @@
} );
}
} );
- $jmpress( 'idle', function( step, eventData ) {
+ $jmpress( 'idle', function ( step, eventData ) {
if ( ! step ) {
return;
}
@@ -1471,7 +1457,7 @@
stepData: $( step ).data( 'stepData' ),
} )
);
- siblings.each( function() {
+ siblings.each( function () {
var step = this,
stepData = $( step ).data( 'stepData' );
if ( ! stepData.src || stepData.srcLoaded ) {
@@ -1482,7 +1468,7 @@
} );
} );
} );
- $jmpress( 'setActive', function( step, eventData ) {
+ $jmpress( 'setActive', function ( step, eventData ) {
var stepData = $( step ).data( 'stepData' );
if ( ! stepData.src || stepData.srcLoaded ) {
return;
@@ -1496,7 +1482,7 @@
* hash.js
* Detect and set the URL hash
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress,
hashLink = "a[href^='#']";
@@ -1545,7 +1531,7 @@
};
/* HOOKS */
- $jmpress( 'selectInitialStep', function( step, eventData ) {
+ $jmpress( 'selectInitialStep', function ( step, eventData ) {
var settings = eventData.settings,
hashSettings = settings.hash,
current = eventData.current,
@@ -1554,7 +1540,7 @@
// HASH CHANGE EVENT
if ( hashSettings.use ) {
if ( hashSettings.bindChange ) {
- $( window ).bind( 'hashchange' + current.hashNamespace, function( event ) {
+ $( window ).bind( 'hashchange' + current.hashNamespace, function ( event ) {
var urlItem = getElementFromUrl( settings );
if ( jmpress.jmpress( 'initialized' ) ) {
jmpress.jmpress( 'scrollFix' );
@@ -1567,7 +1553,7 @@
}
event.preventDefault();
} );
- $( hashLink ).on( 'click' + current.hashNamespace, function( event ) {
+ $( hashLink ).on( 'click' + current.hashNamespace, function ( event ) {
var href = $( this ).attr( 'href' );
try {
if ( $( href ).is( settings.stepSelector ) ) {
@@ -1581,18 +1567,18 @@
return getElementFromUrl( settings );
}
} );
- $jmpress( 'afterDeinit', function( nil, eventData ) {
+ $jmpress( 'afterDeinit', function ( nil, eventData ) {
$( hashLink ).off( eventData.current.hashNamespace );
$( window ).unbind( eventData.current.hashNamespace );
} );
- $jmpress( 'setActive', function( step, eventData ) {
+ $jmpress( 'setActive', function ( step, eventData ) {
var settings = eventData.settings,
current = eventData.current;
// `#/step-id` is used instead of `#step-id` to prevent default browser
// scrolling to element in hash
if ( settings.hash.use && settings.hash.update ) {
clearTimeout( current.hashtimeout );
- current.hashtimeout = setTimeout( function() {
+ current.hashtimeout = setTimeout( function () {
setHash( $( eventData.delegatedFrom ).attr( 'id' ) );
}, settings.transitionDuration + 200 );
}
@@ -1602,7 +1588,7 @@
* keyboard.js
* Keyboard event mapping and default keyboard actions
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress,
jmpressNext = 'next',
@@ -1659,7 +1645,7 @@
};
/* HOOKS */
- $jmpress( 'afterInit', function( nil, eventData ) {
+ $jmpress( 'afterInit', function ( nil, eventData ) {
var settings = eventData.settings,
keyboardSettings = settings.keyboard,
ignoreKeyboardSettings = keyboardSettings.ignore,
@@ -1676,7 +1662,7 @@
// KEYPRESS EVENT: this fixes a Opera bug
$( settings.fullscreen ? document : jmpress ).bind(
'keypress' + current.keyboardNamespace,
- function( event ) {
+ function ( event ) {
for ( var nodeName in ignoreKeyboardSettings ) {
if (
event.target.nodeName === nodeName &&
@@ -1693,7 +1679,7 @@
// KEYDOWN EVENT
$( settings.fullscreen ? document : jmpress ).bind(
'keydown' + current.keyboardNamespace,
- function( event ) {
+ function ( event ) {
var eventTarget = $( event.target );
if (
@@ -1729,9 +1715,7 @@
} else {
nextFocus = eventTarget.near( keyboardSettings.tabSelector, event.shiftKey );
if (
- ! $( nextFocus )
- .closest( settings.stepSelector )
- .is( jmpress.jmpress( 'active' ) )
+ ! $( nextFocus ).closest( settings.stepSelector ).is( jmpress.jmpress( 'active' ) )
) {
nextFocus = undefined;
}
@@ -1776,7 +1760,7 @@
}
);
} );
- $jmpress( 'afterDeinit', function( nil, eventData ) {
+ $jmpress( 'afterDeinit', function ( nil, eventData ) {
$( document ).unbind( eventData.current.keyboardNamespace );
} );
} )( jQuery, document, window );
@@ -1784,14 +1768,14 @@
* viewport.js
* Scale to fit a given viewport
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
function randomString() {
return '' + Math.round( Math.random() * 100000, 0 );
}
- var browser = ( function() {
+ var browser = ( function () {
var ua = navigator.userAgent.toLowerCase();
var match =
/(chrome)[ \/]([\w.]+)/.exec( ua ) ||
@@ -1824,7 +1808,7 @@
transitionDuration: '0s',
transitionDelay: '0ms',
};
- $.jmpress( 'initStep', function( step, eventData ) {
+ $.jmpress( 'initStep', function ( step, eventData ) {
for ( var variable in {
viewPortHeight: 1,
viewPortWidth: 1,
@@ -1836,10 +1820,10 @@
eventData.data[ variable ] && parseFloat( eventData.data[ variable ] );
}
} );
- $.jmpress( 'afterInit', function( nil, eventData ) {
+ $.jmpress( 'afterInit', function ( nil, eventData ) {
var jmpress = this;
eventData.current.viewPortNamespace = '.jmpress-' + randomString();
- $( window ).bind( 'resize' + eventData.current.viewPortNamespace, function( event ) {
+ $( window ).bind( 'resize' + eventData.current.viewPortNamespace, function ( event ) {
$( jmpress ).jmpress( 'reselect', 'resize' );
} );
eventData.current.userZoom = 0;
@@ -1851,7 +1835,7 @@
eventData.current.viewPortNamespace +
' DOMMouseScroll' +
eventData.current.viewPortNamespace,
- function( event, delta ) {
+ function ( event, delta ) {
delta =
delta || event.originalEvent.wheelDelta || -event.originalEvent.detail /* mozilla */;
var direction = delta / Math.abs( delta );
@@ -1874,14 +1858,14 @@
}
if ( eventData.settings.viewPort.zoomBindMove ) {
$( eventData.settings.fullscreen ? document : this )
- .bind( 'mousedown' + eventData.current.viewPortNamespace, function( event ) {
+ .bind( 'mousedown' + eventData.current.viewPortNamespace, function ( event ) {
if ( eventData.current.userZoom ) {
eventData.current.userTranslating = { x: event.clientX, y: event.clientY };
event.preventDefault();
event.stopImmediatePropagation();
}
} )
- .bind( 'mousemove' + eventData.current.viewPortNamespace, function( event ) {
+ .bind( 'mousemove' + eventData.current.viewPortNamespace, function ( event ) {
var userTranslating = eventData.current.userTranslating;
if ( userTranslating ) {
$( jmpress ).jmpress(
@@ -1895,7 +1879,7 @@
event.stopImmediatePropagation();
}
} )
- .bind( 'mouseup' + eventData.current.viewPortNamespace, function( event ) {
+ .bind( 'mouseup' + eventData.current.viewPortNamespace, function ( event ) {
if ( eventData.current.userTranslating ) {
eventData.current.userTranslating = undefined;
event.preventDefault();
@@ -1910,9 +1894,7 @@
function zoom( x, y, direction ) {
var current = $( this ).jmpress( 'current' ),
settings = $( this ).jmpress( 'settings' ),
- stepData = $( this )
- .jmpress( 'active' )
- .data( 'stepData' ),
+ stepData = $( this ).jmpress( 'active' ).data( 'stepData' ),
container = $( this ).jmpress( 'container' );
if ( current.userZoom === 0 && direction < 0 ) {
return;
@@ -1941,18 +1923,16 @@
$( this ).jmpress( 'reselect', 'zoom' );
}
- $.jmpress( 'register', 'zoomIn', function( x, y ) {
+ $.jmpress( 'register', 'zoomIn', function ( x, y ) {
zoom.call( this, x || 0, y || 0, 1 );
} );
- $.jmpress( 'register', 'zoomOut', function( x, y ) {
+ $.jmpress( 'register', 'zoomOut', function ( x, y ) {
zoom.call( this, x || 0, y || 0, -1 );
} );
- $.jmpress( 'register', 'zoomTranslate', function( x, y ) {
+ $.jmpress( 'register', 'zoomTranslate', function ( x, y ) {
var current = $( this ).jmpress( 'current' ),
settings = $( this ).jmpress( 'settings' ),
- stepData = $( this )
- .jmpress( 'active' )
- .data( 'stepData' ),
+ stepData = $( this ).jmpress( 'active' ).data( 'stepData' ),
container = $( this ).jmpress( 'container' );
var zoomableSteps = stepData.viewPortZoomable || settings.viewPort.zoomable;
var halfWidth = $( container ).innerWidth(),
@@ -1967,13 +1947,13 @@
);
$( this ).jmpress( 'reselect', 'zoom' );
} );
- $.jmpress( 'afterDeinit', function( nil, eventData ) {
+ $.jmpress( 'afterDeinit', function ( nil, eventData ) {
$( eventData.settings.fullscreen ? document : this ).unbind(
eventData.current.viewPortNamespace
);
$( window ).unbind( eventData.current.viewPortNamespace );
} );
- $.jmpress( 'setActive', function( step, eventData ) {
+ $.jmpress( 'setActive', function ( step, eventData ) {
var viewPort = eventData.settings.viewPort;
var viewPortHeight = eventData.stepData.viewPortHeight || viewPort.height;
var viewPortWidth = eventData.stepData.viewPortWidth || viewPort.width;
@@ -2020,7 +2000,7 @@
}
eventData.current.zoomOriginWindowScale = windowScale;
} );
- $.jmpress( 'setInactive', function( step, eventData ) {
+ $.jmpress( 'setInactive', function ( step, eventData ) {
if (
! eventData.nextStep ||
! step ||
@@ -2037,7 +2017,7 @@
* mouse.js
* Clicking to select a step
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -2052,13 +2032,13 @@
};
/* HOOKS */
- $jmpress( 'afterInit', function( nil, eventData ) {
+ $jmpress( 'afterInit', function ( nil, eventData ) {
var settings = eventData.settings,
stepSelector = settings.stepSelector,
current = eventData.current,
jmpress = $( this );
current.clickableStepsNamespace = '.jmpress-' + randomString();
- jmpress.bind( 'click' + current.clickableStepsNamespace, function( event ) {
+ jmpress.bind( 'click' + current.clickableStepsNamespace, function ( event ) {
if ( ! settings.mouse.clickSelects || current.userZoom ) {
return;
}
@@ -2079,7 +2059,7 @@
}
} );
} );
- $jmpress( 'afterDeinit', function( nil, eventData ) {
+ $jmpress( 'afterDeinit', function ( nil, eventData ) {
$( this ).unbind( eventData.current.clickableStepsNamespace );
} );
} )( jQuery, document, window );
@@ -2087,7 +2067,7 @@
* mobile.js
* Adds support for swipe on touch supported browsers
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -2097,7 +2077,7 @@
}
/* HOOKS */
- $jmpress( 'afterInit', function( step, eventData ) {
+ $jmpress( 'afterInit', function ( step, eventData ) {
var settings = eventData.settings,
current = eventData.current,
jmpress = eventData.jmpress;
@@ -2105,16 +2085,16 @@
var data,
start = [ 0, 0 ];
$( settings.fullscreen ? document : jmpress )
- .bind( 'touchstart' + current.mobileNamespace, function( event ) {
+ .bind( 'touchstart' + current.mobileNamespace, function ( event ) {
data = event.originalEvent.touches[ 0 ];
start = [ data.pageX, data.pageY ];
} )
- .bind( 'touchmove' + current.mobileNamespace, function( event ) {
+ .bind( 'touchmove' + current.mobileNamespace, function ( event ) {
data = event.originalEvent.touches[ 0 ];
event.preventDefault();
return false;
} )
- .bind( 'touchend' + current.mobileNamespace, function( event ) {
+ .bind( 'touchend' + current.mobileNamespace, function ( event ) {
var end = [ data.pageX, data.pageY ],
diff = [ end[ 0 ] - start[ 0 ], end[ 1 ] - start[ 1 ] ];
@@ -2126,7 +2106,7 @@
}
} );
} );
- $jmpress( 'afterDeinit', function( nil, eventData ) {
+ $jmpress( 'afterDeinit', function ( nil, eventData ) {
var settings = eventData.settings,
current = eventData.current,
jmpress = eventData.jmpress;
@@ -2137,7 +2117,7 @@
* templates.js
* The amazing template engine
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress,
templateFromParentIdent = '_template_',
@@ -2165,7 +2145,7 @@
if ( templateChildren.length < children.length ) {
$.error( 'more nested steps than children in template' );
} else {
- children.each( function( idx, child ) {
+ children.each( function ( idx, child ) {
child = $( child );
var tmpl = child.data( templateFromParentIdent ) || {};
addUndefined( tmpl, templateChildren[ idx ] );
@@ -2173,7 +2153,7 @@
} );
}
} else if ( $.isFunction( templateChildren ) ) {
- children.each( function( idx, child ) {
+ children.each( function ( idx, child ) {
child = $( child );
var tmpl = child.data( templateFromParentIdent ) || {};
addUndefined( tmpl, templateChildren( idx, child, children ) );
@@ -2193,14 +2173,14 @@
}
/* HOOKS */
- $jmpress( 'beforeInitStep', function( step, eventData ) {
+ $jmpress( 'beforeInitStep', function ( step, eventData ) {
step = $( step );
var data = eventData.data,
templateFromAttr = data.template,
templateFromApply = step.data( templateFromApplyIdent ),
templateFromParent = step.data( templateFromParentIdent );
if ( templateFromAttr ) {
- $.each( templateFromAttr.split( ' ' ), function( idx, tmpl ) {
+ $.each( templateFromAttr.split( ' ' ), function ( idx, tmpl ) {
var template = templates[ tmpl ];
applyTemplate( data, step, template, eventData );
} );
@@ -2212,14 +2192,14 @@
applyTemplate( data, step, templateFromParent, eventData );
step.data( templateFromParentIdent, null );
if ( templateFromParent.template ) {
- $.each( templateFromParent.template.split( ' ' ), function( idx, tmpl ) {
+ $.each( templateFromParent.template.split( ' ' ), function ( idx, tmpl ) {
var template = templates[ tmpl ];
applyTemplate( data, step, template, eventData );
} );
}
}
} );
- $jmpress( 'beforeInit', function( nil, eventData ) {
+ $jmpress( 'beforeInit', function ( nil, eventData ) {
var data = $jmpress( 'dataset', this ),
dataTemplate = data.template,
stepSelector = eventData.settings.stepSelector;
@@ -2228,10 +2208,8 @@
applyChildrenTemplates(
$( this )
.find( stepSelector )
- .filter( function() {
- return ! $( this )
- .parent()
- .is( stepSelector );
+ .filter( function () {
+ return ! $( this ).parent().is( stepSelector );
} ),
template.children
);
@@ -2239,24 +2217,22 @@
} );
/* EXPORTED FUNCTIONS */
- $jmpress( 'register', 'template', function( name, tmpl ) {
+ $jmpress( 'register', 'template', function ( name, tmpl ) {
if ( templates[ name ] ) {
templates[ name ] = $.extend( true, {}, templates[ name ], tmpl );
} else {
templates[ name ] = $.extend( true, {}, tmpl );
}
} );
- $jmpress( 'register', 'apply', function( selector, tmpl ) {
+ $jmpress( 'register', 'apply', function ( selector, tmpl ) {
if ( ! tmpl ) {
// TODO ERROR because settings not found
var stepSelector = $( this ).jmpress( 'settings' ).stepSelector;
applyChildrenTemplates(
$( this )
.find( stepSelector )
- .filter( function() {
- return ! $( this )
- .parent()
- .is( stepSelector );
+ .filter( function () {
+ return ! $( this ).parent().is( stepSelector );
} ),
selector
);
@@ -2269,7 +2245,7 @@
} else {
template = $.extend( true, {}, tmpl );
}
- $( selector ).each( function( idx, element ) {
+ $( selector ).each( function ( idx, element ) {
element = $( element );
var tmpl = element.data( templateFromApplyIdent ) || {};
addUndefined( tmpl, template );
@@ -2282,18 +2258,18 @@
* jqevents.js
* Fires jQuery events
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
/* HOOKS */
// the events should not bubble up the tree
// elsewise nested jmpress would cause buggy behavior
- $.jmpress( 'setActive', function( step, eventData ) {
+ $.jmpress( 'setActive', function ( step, eventData ) {
if ( eventData.prevStep !== step ) {
$( step ).triggerHandler( 'enterStep' );
}
} );
- $.jmpress( 'setInactive', function( step, eventData ) {
+ $.jmpress( 'setInactive', function ( step, eventData ) {
if ( eventData.nextStep !== step ) {
$( step ).triggerHandler( 'leaveStep' );
}
@@ -2303,7 +2279,7 @@
* animation.js
* Apply custom animations to steps
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
function parseSubstepInfo( str ) {
@@ -2354,35 +2330,31 @@
}
}
function addOn( list, substep, delay ) {
- $.each( substep._on, function( idx, child ) {
+ $.each( substep._on, function ( idx, child ) {
list.push( { substep: child.substep, delay: child.delay + delay } );
addOn( list, child.substep, child.delay + delay );
} );
}
$.jmpress( 'defaults' ).customAnimationDataAttribute = 'jmpress';
- $.jmpress( 'afterInit', function( nil, eventData ) {
+ $.jmpress( 'afterInit', function ( nil, eventData ) {
eventData.current.animationTimeouts = [];
eventData.current.animationCleanupWaiting = [];
} );
- $.jmpress( 'applyStep', function( step, eventData ) {
+ $.jmpress( 'applyStep', function ( step, eventData ) {
// read custom animation from elements
var substepsData = {};
var listOfSubsteps = [];
$( step )
.find( '[data-' + eventData.settings.customAnimationDataAttribute + ']' )
- .each( function( idx, element ) {
- if (
- $( element )
- .closest( eventData.settings.stepSelector )
- .is( step )
- ) {
+ .each( function ( idx, element ) {
+ if ( $( element ).closest( eventData.settings.stepSelector ).is( step ) ) {
listOfSubsteps.push( { element: element } );
}
} );
if ( listOfSubsteps.length === 0 ) {
return;
}
- $.each( listOfSubsteps, function( idx, substep ) {
+ $.each( listOfSubsteps, function ( idx, substep ) {
substep.info = parseSubstepInfo(
$( substep.element ).data( eventData.settings.customAnimationDataAttribute )
);
@@ -2391,7 +2363,7 @@
substep._after = null;
} );
var current = { _after: undefined, _on: [], info: {} }; // virtual zero step
- $.each( listOfSubsteps, function( idx, substep ) {
+ $.each( listOfSubsteps, function ( idx, substep ) {
var other = substep.info.after;
if ( other ) {
if ( other === 'step' ) {
@@ -2443,11 +2415,11 @@
substepsData.list = substepsInOrder;
$( step ).data( 'substepsData', substepsData );
} );
- $.jmpress( 'unapplyStep', function( step, eventData ) {
+ $.jmpress( 'unapplyStep', function ( step, eventData ) {
var substepsData = $( step ).data( 'substepsData' );
if ( substepsData ) {
- $.each( substepsData.list, function( idx, activeSubsteps ) {
- $.each( activeSubsteps, function( idx, substep ) {
+ $.each( substepsData.list, function ( idx, activeSubsteps ) {
+ $.each( activeSubsteps, function ( idx, substep ) {
if ( substep.substep.info.willClass ) {
$( substep.substep.element ).removeClass( substep.substep.info.willClass );
}
@@ -2461,7 +2433,7 @@
} );
}
} );
- $.jmpress( 'setActive', function( step, eventData ) {
+ $.jmpress( 'setActive', function ( step, eventData ) {
var substepsData = $( step ).data( 'substepsData' );
if ( ! substepsData ) {
return;
@@ -2470,14 +2442,14 @@
eventData.substep = eventData.reason === 'prev' ? substepsData.list.length - 1 : 0;
}
var substep = eventData.substep;
- $.each( eventData.current.animationTimeouts, function( idx, timeout ) {
+ $.each( eventData.current.animationTimeouts, function ( idx, timeout ) {
clearTimeout( timeout );
} );
eventData.current.animationTimeouts = [];
- $.each( substepsData.list, function( idx, activeSubsteps ) {
+ $.each( substepsData.list, function ( idx, activeSubsteps ) {
var applyHas = idx < substep;
var applyDo = idx <= substep;
- $.each( activeSubsteps, function( idx, substep ) {
+ $.each( activeSubsteps, function ( idx, substep ) {
if ( substep.substep.info.hasClass ) {
$( substep.substep.element )[ ( applyHas ? 'add' : 'remove' ) + 'Class' ](
substep.substep.info.hasClass
@@ -2501,13 +2473,13 @@
} );
} );
} );
- $.jmpress( 'setInactive', function( step, eventData ) {
+ $.jmpress( 'setInactive', function ( step, eventData ) {
if ( eventData.nextStep === step ) {
return;
}
function cleanupAnimation( substepsData ) {
- $.each( substepsData.list, function( idx, activeSubsteps ) {
- $.each( activeSubsteps, function( idx, substep ) {
+ $.each( substepsData.list, function ( idx, activeSubsteps ) {
+ $.each( activeSubsteps, function ( idx, substep ) {
if ( substep.substep.info.hasClass ) {
$( substep.substep.element ).removeClass( substep.substep.info.hasClass );
}
@@ -2517,7 +2489,7 @@
} );
} );
}
- $.each( eventData.current.animationCleanupWaiting, function( idx, item ) {
+ $.each( eventData.current.animationCleanupWaiting, function ( idx, item ) {
cleanupAnimation( item );
} );
eventData.current.animationCleanupWaiting = [];
@@ -2526,7 +2498,7 @@
eventData.current.animationCleanupWaiting.push( substepsData );
}
} );
- $.jmpress( 'selectNext', function( step, eventData ) {
+ $.jmpress( 'selectNext', function ( step, eventData ) {
if ( eventData.substep === undefined ) {
return;
}
@@ -2538,7 +2510,7 @@
return { step: step, substep: eventData.substep + 1 };
}
} );
- $.jmpress( 'selectPrev', function( step, eventData ) {
+ $.jmpress( 'selectPrev', function ( step, eventData ) {
if ( eventData.substep === undefined ) {
return;
}
@@ -2561,11 +2533,11 @@
* Copyright 2013 Kyle Robinson Young @shama & Tobias Koppers @sokra
* Licensed MIT
* http://www.opensource.org/licenses/mit-license.php
- */ ( function( $, document, window, undefined ) {
+ */ ( function ( $, document, window, undefined ) {
'use strict';
- $.jmpress( 'register', 'toggle', function( key, config, initial ) {
+ $.jmpress( 'register', 'toggle', function ( key, config, initial ) {
var jmpress = this;
- $( document ).bind( 'keydown', function( event ) {
+ $( document ).bind( 'keydown', function ( event ) {
if ( event.keyCode === key ) {
if ( $( jmpress ).jmpress( 'initialized' ) ) {
$( jmpress ).jmpress( 'deinit' );
@@ -2584,9 +2556,9 @@
* jmpress.secondary plugin
* Apply a secondary animation when step is selected.
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
- $.jmpress( 'initStep', function( step, eventData ) {
+ $.jmpress( 'initStep', function ( step, eventData ) {
for ( var name in eventData.data ) {
if ( name.indexOf( 'secondary' ) === 0 ) {
eventData.stepData[ name ] = eventData.data[ name ];
@@ -2610,12 +2582,12 @@
$( this ).jmpress( 'reapply', $( step ) );
}
}
- $.jmpress( 'beforeActive', function( step, eventData ) {
+ $.jmpress( 'beforeActive', function ( step, eventData ) {
exchangeIf.call( eventData.jmpress, $( step ).data( 'stepData' ), 'self', step );
var parent = $( step ).parent();
$( parent )
.children( eventData.settings.stepSelector )
- .each( function( idx, child ) {
+ .each( function ( idx, child ) {
var childStepData = $( child ).data( 'stepData' );
exchangeIf.call( eventData.jmpress, childStepData, 'siblings', child );
} );
@@ -2624,17 +2596,15 @@
exchangeIf.call( eventData.jmpress, childStepData, 'grandchildren', child );
}
for ( var i = 1; i < eventData.parents.length; i++ ) {
- $( eventData.parents[ i ] )
- .children( eventData.settings.stepSelector )
- .each();
+ $( eventData.parents[ i ] ).children( eventData.settings.stepSelector ).each();
}
} );
- $.jmpress( 'setInactive', function( step, eventData ) {
+ $.jmpress( 'setInactive', function ( step, eventData ) {
exchangeIf.call( eventData.jmpress, $( step ).data( 'stepData' ), 'self', step );
var parent = $( step ).parent();
$( parent )
.children( eventData.settings.stepSelector )
- .each( function( idx, child ) {
+ .each( function ( idx, child ) {
var childStepData = $( child ).data( 'stepData' );
exchangeIf.call( eventData.jmpress, childStepData, 'siblings', child );
} );
@@ -2655,7 +2625,7 @@
* For auto advancing steps after a given duration and optionally displaying a
* progress bar.
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
$.jmpress( 'defaults' ).duration = {
@@ -2666,12 +2636,12 @@
barPropertyStart: '0',
barPropertyEnd: '100%',
};
- $.jmpress( 'initStep', function( step, eventData ) {
+ $.jmpress( 'initStep', function ( step, eventData ) {
eventData.stepData.duration =
eventData.data.duration && parseInt( eventData.data.duration, 10 );
eventData.stepData.durationAction = eventData.data.durationAction;
} );
- $.jmpress( 'setInactive', function( step, eventData ) {
+ $.jmpress( 'setInactive', function ( step, eventData ) {
var settings = eventData.settings,
durationSettings = settings.duration,
current = eventData.current;
@@ -2687,7 +2657,7 @@
css[ durationSettings.barProperty ] = durationSettings.barPropertyStart;
var bars = $( durationSettings.barSelector );
$.jmpress( 'css', bars, css );
- bars.each( function( idx, element ) {
+ bars.each( function ( idx, element ) {
var next = $( element ).next();
var parent = $( element ).parent();
$( element ).detach();
@@ -2702,7 +2672,7 @@
delete current.durationTimeout;
}
} );
- $.jmpress( 'setActive', function( step, eventData ) {
+ $.jmpress( 'setActive', function ( step, eventData ) {
var settings = eventData.settings,
durationSettings = settings.duration,
current = eventData.current;
@@ -2723,7 +2693,7 @@
clearTimeout( current.durationTimeout );
current.durationTimeout = undefined;
}
- current.durationTimeout = setTimeout( function() {
+ current.durationTimeout = setTimeout( function () {
var action = eventData.stepData.durationAction || durationSettings.defaultAction;
$( jmpress ).jmpress( action );
}, dur );
@@ -2736,7 +2706,7 @@
* Display a window for the presenter with notes and a control and view of the
* presentation
*/
-( function( $, document, window, undefined ) {
+( function ( $, document, window, undefined ) {
'use strict';
var $jmpress = $.jmpress;
@@ -2757,13 +2727,13 @@
$jmpress( 'defaults' ).keyboard.keys[ 80 ] = 'presentationPopup'; // p key
/* HOOKS */
- $jmpress( 'afterInit', function( nil, eventData ) {
+ $jmpress( 'afterInit', function ( nil, eventData ) {
var current = eventData.current;
current.selectMessageListeners = [];
if ( eventData.settings.presentationMode.use ) {
- window.addEventListener( 'message', function( event ) {
+ window.addEventListener( 'message', function ( event ) {
// We do not test orgin, because we want to accept messages
// from all orgins
try {
@@ -2773,7 +2743,10 @@
var json = JSON.parse( event.data.slice( PREFIX.length ) );
switch ( json.type ) {
case 'select':
- $.each( eventData.settings.presentationMode.transferredValues, function( idx, name ) {
+ $.each( eventData.settings.presentationMode.transferredValues, function (
+ idx,
+ name
+ ) {
eventData.current[ name ] = json[ name ];
} );
if (
@@ -2834,7 +2807,7 @@
}
}
} );
- $jmpress( 'afterDeinit', function( nil, eventData ) {
+ $jmpress( 'afterDeinit', function ( nil, eventData ) {
if ( eventData.settings.presentationMode.use ) {
try {
if ( window.parent && window.parent !== window ) {
@@ -2851,11 +2824,11 @@
}
}
} );
- $jmpress( 'setActive', function( step, eventData ) {
+ $jmpress( 'setActive', function ( step, eventData ) {
var stepId = $( eventData.delegatedFrom ).attr( 'id' ),
substep = eventData.substep,
reason = eventData.reason;
- $.each( eventData.current.selectMessageListeners, function( idx, listener ) {
+ $.each( eventData.current.selectMessageListeners, function ( idx, listener ) {
try {
var msg = {
type: 'select',
@@ -2863,7 +2836,7 @@
substep: substep,
reason: reason,
};
- $.each( eventData.settings.presentationMode.transferredValues, function( idx, name ) {
+ $.each( eventData.settings.presentationMode.transferredValues, function ( idx, name ) {
msg[ name ] = eventData.current[ name ];
} );
listener.postMessage( PREFIX + JSON.stringify( msg ), '*' );
@@ -2872,7 +2845,7 @@
}
} );
} );
- $jmpress( 'register', 'presentationPopup', function() {
+ $jmpress( 'register', 'presentationPopup', function () {
function trySend() {
jmpress.jmpress( 'current' ).presentationPopupTimeout = setTimeout( trySend, 100 );
try {
diff --git a/plugins/jetpack/modules/shortcodes/js/main.js b/plugins/jetpack/modules/shortcodes/js/main.js
index aecfdf60..7d0589c9 100644
--- a/plugins/jetpack/modules/shortcodes/js/main.js
+++ b/plugins/jetpack/modules/shortcodes/js/main.js
@@ -1,4 +1,4 @@
-( function( $ ) {
+( function ( $ ) {
var jmpressOpts = {
fullscreen: false,
hash: { use: false },
@@ -57,42 +57,42 @@
transition: duration,
};
- $( '.step', _self.slideshow ).each( function( i, step ) {
+ $( '.step', _self.slideshow ).each( function ( i, step ) {
$( step ).css( new_css );
} );
// Apply attribute to allow fading individual bullets here,
// otherwise wp_kses will strip the attribute out
- $( '.step.fadebullets li', _self.slideshow ).each( function( i, step ) {
+ $( '.step.fadebullets li', _self.slideshow ).each( function ( i, step ) {
$( step ).attr( 'data-jmpress', 'fade' );
} );
// Register resizing to window when fullscreen
- $( window ).resize( function() {
+ $( window ).resize( function () {
if ( _self.fullscreen ) {
_self.resizePresentation();
}
} );
// Register the nav bars to move the slides
- _self.navLeft.on( 'click', function() {
+ _self.navLeft.on( 'click', function () {
_self.slideshow.jmpress( 'prev' );
_self.overlay.css( 'opacity', 0 );
return false;
} );
- _self.navRight.on( 'click', function() {
+ _self.navRight.on( 'click', function () {
_self.slideshow.jmpress( 'next' );
_self.overlay.css( 'opacity', 0 );
return false;
} );
- _self.slideshow.on( 'click', function() {
+ _self.slideshow.on( 'click', function () {
_self.setAutoplay( true );
return false;
} );
- _self.slideshow.on( 'focusout', function() {
+ _self.slideshow.on( 'focusout', function () {
_self.setAutoplay( false );
} );
@@ -104,14 +104,14 @@
_self.expandButton.remove();
_self.expandButton = null;
} else {
- _self.expandButton.on( 'click', function() {
+ _self.expandButton.on( 'click', function () {
_self.setFullscreen( ! _self.fullscreen );
return false;
} );
}
// Register ESC key to exit fullscreen
- $( window ).on( 'keydown', function( event ) {
+ $( window ).on( 'keydown', function ( event ) {
if ( event.which === 27 ) {
_self.setFullscreen( false );
}
@@ -134,7 +134,7 @@
}
$.extend( Presentation.prototype, {
- resizePresentation: function() {
+ resizePresentation: function () {
var scale, duration, settings, new_css, widthScale, heightScale;
// Set the animation duration to 0 during resizing
@@ -194,7 +194,7 @@
this.slideshow.jmpress( 'reselect' );
},
- setFullscreen: function( on ) {
+ setFullscreen: function ( on ) {
this.fullscreen = on;
this.setAutoplay( false );
@@ -214,7 +214,7 @@
this.wrapper.toggleClass( 'presentation-wrapper-fullscreen', on );
- this.wrapper.parents().each( function( i, e ) {
+ this.wrapper.parents().each( function ( i, e ) {
$( e ).toggleClass( 'presentation-wrapper-fullscreen-parent', on );
} );
@@ -227,7 +227,7 @@
}
},
- setAutoplay: function( on ) {
+ setAutoplay: function ( on ) {
var _self = this,
newAutoplayTime;
@@ -250,8 +250,8 @@
},
} );
- $( document ).ready( function() {
- $( '.presentation-wrapper' ).map( function() {
+ $( document ).ready( function () {
+ $( '.presentation-wrapper' ).map( function () {
new Presentation( this );
} );
} );
diff --git a/plugins/jetpack/modules/shortcodes/js/quiz.js b/plugins/jetpack/modules/shortcodes/js/quiz.js
index 6ab6e1d1..5cdef1f3 100644
--- a/plugins/jetpack/modules/shortcodes/js/quiz.js
+++ b/plugins/jetpack/modules/shortcodes/js/quiz.js
@@ -1,17 +1,17 @@
-( function( $ ) {
- $.fn.shuffleQuiz = function() {
+( function ( $ ) {
+ $.fn.shuffleQuiz = function () {
var allElems = this.get(),
- getRandom = function( max ) {
+ getRandom = function ( max ) {
return Math.floor( Math.random() * max );
},
- shuffled = $.map( allElems, function() {
+ shuffled = $.map( allElems, function () {
var random = getRandom( allElems.length ),
randEl = $( allElems[ random ] ).clone( true )[ 0 ];
allElems.splice( random, 1 );
return randEl;
} );
- this.each( function( i ) {
+ this.each( function ( i ) {
$( this ).replaceWith( $( shuffled[ i ] ) );
} );
@@ -19,18 +19,15 @@
};
} )( jQuery );
-jQuery( function( $ ) {
- $( '.jetpack-quiz' ).each( function() {
+jQuery( function ( $ ) {
+ $( '.jetpack-quiz' ).each( function () {
var quiz = $( this );
quiz.find( 'div.jetpack-quiz-answer' ).shuffleQuiz();
- quiz
- .find( 'div[data-correct]' )
- .removeAttr( 'data-correct' )
- .data( 'correct', 1 );
+ quiz.find( 'div[data-correct]' ).removeAttr( 'data-correct' ).data( 'correct', 1 );
quiz.find( 'div.jetpack-quiz-answer:last' ).addClass( 'last' );
} );
- $( 'div.jetpack-quiz' ).on( 'click', 'div.jetpack-quiz-answer', function() {
+ $( 'div.jetpack-quiz' ).on( 'click', 'div.jetpack-quiz-answer', function () {
var trackid,
answer = $( this ),
quiz = answer.closest( 'div.jetpack-quiz' );
@@ -65,3 +62,31 @@ jQuery( function( $ ) {
quiz.data( 'trackid', false );
} );
} );
+
+document.querySelectorAll( '.jetpack-quiz-wrapper' ).forEach( function ( quiz ) {
+ quiz.childNodes.forEach( function ( element, number ) {
+ element.style.display = 'none';
+ element.setAttribute( 'quiz-number', number );
+ element.querySelector( '.jetpack-quiz-count' ).innerHTML =
+ number + 1 + '/' + quiz.childElementCount;
+ } );
+
+ quiz.childNodes[ 0 ].style.display = 'block';
+} );
+
+document.querySelectorAll( '.jetpack-quiz-option-button' ).forEach( function ( element ) {
+ element.addEventListener( 'click', function () {
+ var currentQuiz = element.parentElement.parentElement;
+ currentQuiz.style.display = 'none';
+ var switchNumber = element.getAttribute( 'data-quiz-option' ) === 'next' ? 1 : -1;
+ var newQuiz =
+ currentQuiz.parentElement.childNodes[
+ parseInt( currentQuiz.getAttribute( 'quiz-number' ) ) + switchNumber
+ ];
+ newQuiz.style.display = 'block';
+ var newQuizQuestionEl = newQuiz.querySelector( '.jetpack-quiz-question' );
+ if ( newQuizQuestionEl ) {
+ newQuizQuestionEl.focus();
+ }
+ } );
+} );
diff --git a/plugins/jetpack/modules/shortcodes/js/recipes-printthis.js b/plugins/jetpack/modules/shortcodes/js/recipes-printthis.js
index f2a1937c..e1a6557c 100644
--- a/plugins/jetpack/modules/shortcodes/js/recipes-printthis.js
+++ b/plugins/jetpack/modules/shortcodes/js/recipes-printthis.js
@@ -1,4 +1,4 @@
-/*
+/*!
* printThis v1.9.0
* @desc Printing plug-in for jQuery
* @author Jason Day
@@ -12,7 +12,8 @@
* http://www.opensource.org/licenses/mit-license.php
*
* (c) Jason Day 2015
- *
+ */
+/*
* Usage:
*
* $("#mySelector").printThis({
@@ -36,9 +37,9 @@
* - the loadCSS will load additional css (with or without @media print) into the iframe, adjusting layout
*
*/
-( function( $ ) {
+( function ( $ ) {
var opt;
- $.fn.printThis = function( options ) {
+ $.fn.printThis = function ( options ) {
opt = $.extend( {}, $.fn.printThis.defaults, options );
var $element = this instanceof jQuery ? this : $( this );
@@ -77,7 +78,7 @@
} );
// $iframe.ready() and $iframe.load were inconsistent between browsers
- setTimeout( function() {
+ setTimeout( function () {
// Add doctype to fix the style difference between printing and render
function setDocType( $iframe, doctype ) {
var win, doc;
@@ -114,7 +115,7 @@
// import page stylesheets
if ( opt.importCSS )
- $( 'link[rel=stylesheet]' ).each( function() {
+ $( 'link[rel=stylesheet]' ).each( function () {
var href = $( this ).attr( 'href' );
if ( href ) {
var media = $( this ).attr( 'media' ) || 'all';
@@ -126,10 +127,8 @@
// import style tags
if ( opt.importStyle )
- $( 'style' ).each( function() {
- $( this )
- .clone()
- .appendTo( $head );
+ $( 'style' ).each( function () {
+ $( this ).clone().appendTo( $head );
} );
// add title of the page
@@ -138,7 +137,7 @@
// import additional stylesheet(s)
if ( opt.loadCSS ) {
if ( $.isArray( opt.loadCSS ) ) {
- jQuery.each( opt.loadCSS, function( index, value ) {
+ jQuery.each( opt.loadCSS, function ( index, value ) {
$head.append( "<link type='text/css' rel='stylesheet' href='" + this + "'>" );
} );
} else {
@@ -152,7 +151,7 @@
if ( opt.canvas ) {
// add canvas data-ids for easy access after the cloning.
var canvasId = 0;
- $element.find( 'canvas' ).each( function() {
+ $element.find( 'canvas' ).each( function () {
$( this ).attr( 'data-printthis', canvasId++ );
} );
}
@@ -161,13 +160,13 @@
if ( opt.printContainer ) $body.append( $element.outer() );
// otherwise just print interior elements of container
else
- $element.each( function() {
+ $element.each( function () {
$body.append( $( this ).html() );
} );
if ( opt.canvas ) {
// Re-draw new canvases by referencing the originals
- $body.find( 'canvas' ).each( function() {
+ $body.find( 'canvas' ).each( function () {
var cid = $( this ).data( 'printthis' ),
$src = $( '[data-printthis="' + cid + '"]' );
@@ -183,7 +182,7 @@
// loop through inputs
var $input = $element.find( 'input' );
if ( $input.length ) {
- $input.each( function() {
+ $input.each( function () {
var $this = $( this ),
$name = $( this ).attr( 'name' ),
$checker = $this.is( ':checkbox' ) || $this.is( ':radio' ),
@@ -208,7 +207,7 @@
// loop through selects
var $select = $element.find( 'select' );
if ( $select.length ) {
- $select.each( function() {
+ $select.each( function () {
var $this = $( this ),
$name = $( this ).attr( 'name' ),
$value = $this.val();
@@ -219,7 +218,7 @@
// loop through textareas
var $textarea = $element.find( 'textarea' );
if ( $textarea.length ) {
- $textarea.each( function() {
+ $textarea.each( function () {
var $this = $( this ),
$name = $( this ).attr( 'name' ),
$value = $this.val();
@@ -241,7 +240,7 @@
// print "footer"
if ( opt.footer ) $body.append( opt.footer );
- setTimeout( function() {
+ setTimeout( function () {
if ( $iframe.hasClass( 'MSIE' ) ) {
// check if the iframe was created with the ugly hack
// and perform another ugly hack out of neccessity
@@ -259,7 +258,7 @@
// remove iframe after print
if ( ! opt.debug ) {
- setTimeout( function() {
+ setTimeout( function () {
$iframe.remove();
}, 1000 );
}
@@ -286,7 +285,7 @@
};
// $.selector container
- jQuery.fn.outer = function() {
+ jQuery.fn.outer = function () {
return $( $( '<div></div>' ).html( this.clone() ) ).html();
};
} )( jQuery );
diff --git a/plugins/jetpack/modules/shortcodes/js/recipes.js b/plugins/jetpack/modules/shortcodes/js/recipes.js
index 37215b4a..675b0b2d 100644
--- a/plugins/jetpack/modules/shortcodes/js/recipes.js
+++ b/plugins/jetpack/modules/shortcodes/js/recipes.js
@@ -1,16 +1,14 @@
/* global jetpack_recipes_vars */
-( function( $ ) {
- $( window ).load( function() {
- $( '.jetpack-recipe-print a' ).click( function( event ) {
+( function ( $ ) {
+ $( window ).load( function () {
+ $( '.jetpack-recipe-print a' ).click( function ( event ) {
event.preventDefault();
// Print the DIV.
- $( this )
- .closest( '.jetpack-recipe' )
- .printThis( {
- pageTitle: jetpack_recipes_vars.pageTitle,
- loadCSS: jetpack_recipes_vars.loadCSS,
- } );
+ $( this ).closest( '.jetpack-recipe' ).printThis( {
+ pageTitle: jetpack_recipes_vars.pageTitle,
+ loadCSS: jetpack_recipes_vars.loadCSS,
+ } );
} );
} );
} )( jQuery );
diff --git a/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js b/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js
index e266465a..9b0e9d52 100644
--- a/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js
+++ b/plugins/jetpack/modules/shortcodes/js/slideshow-shortcode.js
@@ -8,7 +8,7 @@ function JetpackSlideshow( element, transition, autostart ) {
this.autostart = autostart;
}
-JetpackSlideshow.prototype.showLoadingImage = function( toggle ) {
+JetpackSlideshow.prototype.showLoadingImage = function ( toggle ) {
if ( toggle ) {
this.loadingImage_ = document.createElement( 'div' );
this.loadingImage_.className = 'slideshow-loading';
@@ -23,7 +23,7 @@ JetpackSlideshow.prototype.showLoadingImage = function( toggle ) {
}
};
-JetpackSlideshow.prototype.init = function() {
+JetpackSlideshow.prototype.init = function () {
this.showLoadingImage( true );
var self = this;
@@ -51,11 +51,11 @@ JetpackSlideshow.prototype.init = function() {
if ( i === 0 ) {
if ( img.complete ) {
// IE, image in cache
- setTimeout( function() {
+ setTimeout( function () {
self.finishInit_();
}, 1 );
} else {
- jQuery( img ).load( function() {
+ jQuery( img ).load( function () {
self.finishInit_();
} );
}
@@ -71,7 +71,7 @@ JetpackSlideshow.prototype.init = function() {
}
};
-JetpackSlideshow.prototype.makeZeroWidthSpan = function() {
+JetpackSlideshow.prototype.makeZeroWidthSpan = function () {
var emptySpan = document.createElement( 'span' );
emptySpan.className = 'slideshow-line-height-hack';
// Having a NBSP makes IE act weird during transitions, but other
@@ -84,7 +84,7 @@ JetpackSlideshow.prototype.makeZeroWidthSpan = function() {
return emptySpan;
};
-JetpackSlideshow.prototype.finishInit_ = function() {
+JetpackSlideshow.prototype.finishInit_ = function () {
this.showLoadingImage( false );
this.renderControls_();
@@ -97,7 +97,7 @@ JetpackSlideshow.prototype.finishInit_ = function() {
next: this.controls.next,
timeout: jetpackSlideshowSettings.speed,
slideExpr: '.slideshow-slide',
- onPrevNextEvent: function() {
+ onPrevNextEvent: function () {
return self.onCyclePrevNextClick_.apply( self, arguments );
},
} );
@@ -110,7 +110,7 @@ JetpackSlideshow.prototype.finishInit_ = function() {
jQuery( this.controls.stop ).addClass( 'paused' );
}
- jQuery( this.controls.stop ).click( function() {
+ jQuery( this.controls.stop ).click( function () {
var button = jQuery( this );
if ( ! button.hasClass( 'paused' ) ) {
slideshow.cycle( 'pause' );
@@ -130,7 +130,7 @@ JetpackSlideshow.prototype.finishInit_ = function() {
this.initialized_ = true;
};
-JetpackSlideshow.prototype.renderControls_ = function() {
+JetpackSlideshow.prototype.renderControls_ = function () {
if ( this.controlsDiv_ ) {
return;
}
@@ -141,8 +141,14 @@ JetpackSlideshow.prototype.renderControls_ = function() {
var controls = [ 'prev', 'stop', 'next' ];
for ( var i = 0; i < controls.length; i++ ) {
var controlName = controls[ i ];
+ var label_name = 'label_' + controlName;
var a = document.createElement( 'a' );
+
a.href = '#';
+ a.className = 'button-' + controlName;
+ a.setAttribute( 'aria-label', jetpackSlideshowSettings[ label_name ] );
+ a.setAttribute( 'role', 'button' );
+
controlsDiv.appendChild( a );
this.controls[ controlName ] = a;
}
@@ -150,7 +156,7 @@ JetpackSlideshow.prototype.renderControls_ = function() {
this.controlsDiv_ = controlsDiv;
};
-JetpackSlideshow.prototype.onCyclePrevNextClick_ = function( isNext, i /*, slideElement*/ ) {
+JetpackSlideshow.prototype.onCyclePrevNextClick_ = function ( isNext, i /*, slideElement*/ ) {
// If blog_id not present don't track page views
if ( ! jetpackSlideshowSettings.blog_id ) {
return;
@@ -176,11 +182,11 @@ JetpackSlideshow.prototype.onCyclePrevNextClick_ = function( isNext, i /*, slide
escape( document.location );
};
-( function( $ ) {
+( function ( $ ) {
function jetpack_slideshow_init() {
$( '.jetpack-slideshow-noscript' ).remove();
- $( '.jetpack-slideshow' ).each( function() {
+ $( '.jetpack-slideshow' ).each( function () {
var container = $( this );
if ( container.data( 'processed' ) ) {
diff --git a/plugins/jetpack/modules/shortcodes/kickstarter.php b/plugins/jetpack/modules/shortcodes/kickstarter.php
index 1e6664bb..e3e03722 100644
--- a/plugins/jetpack/modules/shortcodes/kickstarter.php
+++ b/plugins/jetpack/modules/shortcodes/kickstarter.php
@@ -5,7 +5,7 @@
* Usage:
* [kickstarter url="https://www.kickstarter.com/projects/peaktoplateau/yak-wool-baselayers-from-tibet-to-the-world" width="480" height=""]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'kickstarter', 'jetpack_kickstarter_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/mailchimp.php b/plugins/jetpack/modules/shortcodes/mailchimp.php
index ce815673..15766649 100644
--- a/plugins/jetpack/modules/shortcodes/mailchimp.php
+++ b/plugins/jetpack/modules/shortcodes/mailchimp.php
@@ -92,9 +92,6 @@ class MailChimp_Subscriber_Popup {
return $content;
}
- require_once ABSPATH . WPINC . '/class-json.php';
- $wp_json = new Services_JSON();
-
// loop through our rules and find valid embeds.
foreach ( self::$reversal_regexes as $regex ) {
@@ -106,10 +103,10 @@ class MailChimp_Subscriber_Popup {
// the regex rule for a specific embed.
$replace_regex = sprintf( '#\s*%s\s*#', preg_quote( $matches[0][ $index ], '#' ) );
- $attrs = $wp_json->decode( '{' . $js_vars . '}' );
+ $attrs = json_decode( '{' . $js_vars . '}' );
if ( $matches[2][ $index ] ) {
- $config_attrs = $wp_json->decode( '{' . $matches[2][ $index ] . '}' );
+ $config_attrs = json_decode( '{' . $matches[2][ $index ] . '}' );
foreach ( $config_attrs as $key => $value ) {
$attrs->$key = ( 1 === $value ) ? 'true' : 'false';
}
@@ -142,7 +139,7 @@ class MailChimp_Subscriber_Popup {
foreach ( $attrs as $key => $value ) {
// skip unsupported keys.
if (
- ! in_array( $key, array_keys( self::$allowed_config ), true )
+ ! array_key_exists( $key, self::$allowed_config )
&& ! in_array( $key, self::$allowed_js_vars, true )
) {
continue;
diff --git a/plugins/jetpack/modules/shortcodes/medium.php b/plugins/jetpack/modules/shortcodes/medium.php
index 6285759e..9b08dac5 100644
--- a/plugins/jetpack/modules/shortcodes/medium.php
+++ b/plugins/jetpack/modules/shortcodes/medium.php
@@ -8,7 +8,7 @@
* - And all the above in shortcode formats:
* [medium url="https://medium.com/@jeherve/this-is-a-story-19f582daaf5b" width="100%" border="false" collapsed="true"]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
// Faux-oembed support for Medium permalinks.
diff --git a/plugins/jetpack/modules/shortcodes/mixcloud.php b/plugins/jetpack/modules/shortcodes/mixcloud.php
index 4a016d5f..49dd20d1 100644
--- a/plugins/jetpack/modules/shortcodes/mixcloud.php
+++ b/plugins/jetpack/modules/shortcodes/mixcloud.php
@@ -11,7 +11,7 @@
* [mixcloud]MalibuRum/play-6-kissy-sellouts-winter-sun-house-party-mix/[/mixcloud]
* [mixcloud http://www.mixcloud.com/mat/playlists/classics/ width=660 height=208 hide_cover=1 hide_tracklist=1]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/*
@@ -79,6 +79,28 @@ function mixcloud_shortcode( $atts, $content = null ) {
$response_body = json_decode( $mixcloud_response['body'] );
- return $response_body->html;
+ $html = $response_body->html;
+
+ preg_match( '/sandbox="([^"]*)"/', $html, $matches );
+
+ if ( empty( $matches ) ) { // MixCloud doesn't use sandbox attribute.
+ $html = preg_replace( '/>/', ' sandbox="allow-popups allow-scripts allow-same-origin allow-presentation">', $html, 1 );
+ } else { // MixCloud uses sandbox attribute.
+
+ $allowed_values = array();
+ // Here we make sure that these string are not repeated in the sandbox attribute.
+ $attrs = array( 'allow-popups', 'allow-scripts', 'allow-same-origin', 'allow-presentation' );
+ foreach ( $attrs as $attr ) {
+ if ( false === strpos( $matches[1], $attr ) ) {
+ $allowed_values[] = $attr;
+ }
+ }
+
+ $sandbox_value = $matches[1] . ' ' . implode( ' ', $allowed_values );
+
+ $html = preg_replace( '/sandbox="([^"]*)"/', "sandbox=\"$sandbox_value\"", $html );
+ }
+
+ return $html;
}
add_shortcode( 'mixcloud', 'mixcloud_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/others.php b/plugins/jetpack/modules/shortcodes/others.php
new file mode 100644
index 00000000..da145066
--- /dev/null
+++ b/plugins/jetpack/modules/shortcodes/others.php
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Extra oEmbed providers that we know about and use on wpcom for feature parity.
+ *
+ * This file will be loaded even when you don't use the Shortcodes feature,
+ * as these embeds are considered safe to use on any site
+ * (and may end up embedded in Core in the future).
+ *
+ * @package automattic/jetpack
+ */
+
+wp_oembed_add_provider( 'https://me.sh/*', 'https://me.sh/oembed?format=json' );
+wp_oembed_add_provider( '#https?://(www\.)?gfycat\.com/.*#i', 'https://api.gfycat.com/v1/oembed', true );
+wp_oembed_add_provider( '#https?://[^.]+\.(wistia\.com|wi\.st)/(medias|embed)/.*#', 'https://fast.wistia.com/oembed', true );
+wp_oembed_add_provider( '#https?://sketchfab\.com/.*#i', 'https://sketchfab.com/oembed', true );
+wp_oembed_add_provider( '#https?://(www\.)?icloud\.com/keynote/.*#i', 'https://iwmb.icloud.com/iwmb/oembed', true );
+wp_oembed_add_provider( '#https?://((song|album|artist|pods|playlist)\.link|odesli\.com?|mylink\.page)/.*#', 'https://odesli.co/oembed', true );
+wp_oembed_add_provider( '#https?://(www\.)?loom\.com/share/.*#i', 'https://www.loom.com/v1/oembed', true );
diff --git a/plugins/jetpack/modules/shortcodes/pinterest.php b/plugins/jetpack/modules/shortcodes/pinterest.php
index 11e467f0..2009a7c7 100644
--- a/plugins/jetpack/modules/shortcodes/pinterest.php
+++ b/plugins/jetpack/modules/shortcodes/pinterest.php
@@ -7,7 +7,7 @@
* Example URL: https://pinterest.com/pin/129056345550241149/
* Second Example URL: https://uk.pinterest.com/annsawesomepins/travel/
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
wp_embed_register_handler(
diff --git a/plugins/jetpack/modules/shortcodes/presentations.php b/plugins/jetpack/modules/shortcodes/presentations.php
index 8914b874..c8f27d4b 100644
--- a/plugins/jetpack/modules/shortcodes/presentations.php
+++ b/plugins/jetpack/modules/shortcodes/presentations.php
@@ -53,7 +53,7 @@ use Automattic\Jetpack\Assets;
* properly, however.
* - Exiting fullscreen mode will not properly reset the scroll locations in Safari
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! class_exists( 'Presentations' ) ) :
@@ -89,10 +89,10 @@ if ( ! class_exists( 'Presentations' ) ) :
$this->scripts_and_style_included = false;
// Registers shortcodes.
- add_action( 'wp_head', array( &$this, 'add_scripts' ), 1 );
+ add_action( 'wp_head', array( $this, 'add_scripts' ), 1 );
- add_shortcode( 'presentation', array( &$this, 'presentation_shortcode' ) );
- add_shortcode( 'slide', array( &$this, 'slide_shortcode' ) );
+ add_shortcode( 'presentation', array( $this, 'presentation_shortcode' ) );
+ add_shortcode( 'slide', array( $this, 'slide_shortcode' ) );
}
/**
@@ -187,11 +187,11 @@ if ( ! class_exists( 'Presentations' ) ) :
}
if ( '' !== trim( $atts['scale'] ) ) {
- $this->presentation_settings['scale'] = floatval( $atts['scale'] );
+ $this->presentation_settings['scale'] = (float) $atts['scale'];
}
if ( '' !== trim( $atts['rotate'] ) ) {
- $this->presentation_settings['rotate'] = floatval( $atts['rotate'] );
+ $this->presentation_settings['rotate'] = (float) $atts['rotate'];
}
if ( '' !== trim( $atts['fade'] ) ) {
@@ -204,27 +204,27 @@ if ( ! class_exists( 'Presentations' ) ) :
// Set any settings the slides don't care about.
if ( '' !== trim( $atts['duration'] ) ) {
- $duration = floatval( $atts['duration'] ) . 's';
+ $duration = (float) $atts['duration'] . 's';
} else {
$duration = '1s';
}
// Autoplay durations are set in milliseconds.
if ( '' !== trim( $atts['autoplay'] ) ) {
- $autoplay = floatval( $atts['autoplay'] ) * 1000;
+ $autoplay = (float) $atts['autoplay'] * 1000;
} else {
$autoplay = 0;
} // No autoplay
// Set the presentation size as specified or with some nicely sized dimensions.
if ( '' !== trim( $atts['width'] ) ) {
- $this->presentation_settings['width'] = intval( $atts['width'] );
+ $this->presentation_settings['width'] = (int) $atts['width'];
} else {
$this->presentation_settings['width'] = 480;
}
if ( '' !== trim( $atts['height'] ) ) {
- $this->presentation_settings['height'] = intval( $atts['height'] );
+ $this->presentation_settings['height'] = (int) $atts['height'];
} else {
$this->presentation_settings['height'] = 370;
}
@@ -316,7 +316,7 @@ if ( ! class_exists( 'Presentations' ) ) :
if ( '' === trim( $atts['scale'] ) ) {
$scale = 1;
} else {
- $scale = floatval( $atts['scale'] );
+ $scale = (float) $atts['scale'];
}
if ( $scale < 0 ) {
@@ -331,7 +331,7 @@ if ( ! class_exists( 'Presentations' ) ) :
if ( '' === trim( $atts['rotate'] ) ) {
$rotate = 0;
} else {
- $rotate = floatval( $atts['rotate'] );
+ $rotate = (float) $atts['rotate'];
}
// Setting if the content should fade.
diff --git a/plugins/jetpack/modules/shortcodes/quiz.php b/plugins/jetpack/modules/shortcodes/quiz.php
index e9275a67..3bb0474d 100644
--- a/plugins/jetpack/modules/shortcodes/quiz.php
+++ b/plugins/jetpack/modules/shortcodes/quiz.php
@@ -14,6 +14,8 @@ use Automattic\Jetpack\Assets;
* [wrong]Maybe this one[explanation]Keep trying[/explanation][/wrong]
* [wrong]How about this one?[explanation]Try again[/explanation][/wrong]
* [/quiz]
+ *
+ * Can also be wrapped in [quiz-wrapper] to display all quizzes together.
*/
class Quiz_Shortcode {
@@ -27,6 +29,15 @@ class Quiz_Shortcode {
private static $quiz_params = array();
/**
+ * Whether the [quiz-wrapper] shortcode is used.
+ *
+ * @since 10.1
+ *
+ * @var bool
+ */
+ private static $quiz_wrapper = false;
+
+ /**
* Whether the scripts were enqueued.
*
* @since 4.5.0
@@ -68,6 +79,7 @@ class Quiz_Shortcode {
* @since 4.5.0
*/
public static function init() {
+ add_shortcode( 'quiz-wrapper', array( __CLASS__, 'shortcode_wrapper' ) );
add_shortcode( 'quiz', array( __CLASS__, 'shortcode' ) );
add_shortcode( 'question', array( __CLASS__, 'question_shortcode' ) );
add_shortcode( 'answer', array( __CLASS__, 'answer_shortcode' ) );
@@ -190,12 +202,41 @@ class Quiz_Shortcode {
}
}
- $quiz = self::do_shortcode( $content );
- return '<div class="jetpack-quiz quiz"' . $id . '>' . $quiz . '</div>';
+ $quiz = self::do_shortcode( $content );
+ $quiz_options = '';
+
+ if ( self::$quiz_wrapper ) {
+ $quiz_options = '<div class="jetpack-quiz-options">
+ <span class="jetpack-quiz-count"></span>
+ <a class="jetpack-quiz-option-button" data-quiz-option="previous" role="button" aria-label="' . esc_attr__( 'Previous quiz', 'jetpack' ) . '">
+ <svg viewBox="0 0 24 24" class="quiz-gridicon">
+ <g><path d="M14 20l-8-8 8-8 1.414 1.414L8.828 12l6.586 6.586"></path></g></svg></a>
+ <a class="jetpack-quiz-option-button" data-quiz-option="next" role="button" aria-label="' . esc_attr__( 'Next quiz', 'jetpack' ) . '">
+ <svg viewBox="0 0 24 24" class="quiz-gridicon">
+ <g><path d="M10 20l8-8-8-8-1.414 1.414L15.172 12l-6.586 6.586"></path></g></svg></a>
+ </div>';
+ }
+
+ return '<div class="jetpack-quiz quiz"' . $id . '>' . $quiz . $quiz_options . '</div>';
}
/**
- * Strip line breaks, restrict allowed HTML to a few whitelisted tags and execute nested shortcodes.
+ * Wrap shortcode contents.
+ *
+ * @since 10.1
+ *
+ * @param array $atts Shortcode parameters.
+ * @param string $content Content enclosed by shortcode tags.
+ *
+ * @return string
+ */
+ public static function shortcode_wrapper( $atts, $content = null ) {
+ self::$quiz_wrapper = true;
+ return '<div class="jetpack-quiz-wrapper">' . self::do_shortcode( $content ) . '</div>';
+ }
+
+ /**
+ * Strip line breaks, restrict allowed HTML to a few allowed tags and execute nested shortcodes.
*
* @since 4.5.0
*
@@ -214,11 +255,21 @@ class Quiz_Shortcode {
$content,
array(
'tt' => array(),
- 'a' => array( 'href' => true ),
+ 'a' => array(
+ 'href' => true,
+ 'class' => true,
+ 'data-quiz-option' => true,
+ 'aria-label' => true,
+ 'role' => 'button',
+ ),
'pre' => array(),
'strong' => array(),
'i' => array(),
+ 'svg' => array(),
+ 'g' => array(),
+ 'path' => array( 'd' => true ),
'br' => array(),
+ 'span' => array( 'class' => true ),
'img' => array( 'src' => true ),
'div' => array(
'class' => true,
@@ -226,6 +277,7 @@ class Quiz_Shortcode {
'data-track-id' => 1,
'data-a8ctraining' => 1,
'data-username' => 1,
+ 'tabindex' => false,
),
)
);
@@ -244,7 +296,7 @@ class Quiz_Shortcode {
*/
public static function question_shortcode( $atts, $content = null ) {
return isset( $atts['quiz_item'] )
- ? '<div class="jetpack-quiz-question question">' . self::do_shortcode( $content ) . '</div>'
+ ? '<div class="jetpack-quiz-question question" tabindex="-1">' . self::do_shortcode( $content ) . '</div>'
: '';
}
diff --git a/plugins/jetpack/modules/shortcodes/recipe.php b/plugins/jetpack/modules/shortcodes/recipe.php
index 983f01ee..fafbedcf 100644
--- a/plugins/jetpack/modules/shortcodes/recipe.php
+++ b/plugins/jetpack/modules/shortcodes/recipe.php
@@ -11,7 +11,7 @@ use Automattic\Jetpack\Assets;
* - validation/sanitization
* - print styles
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -53,6 +53,9 @@ class Jetpack_Recipes {
$allowedtags[ $tag ]['datetime'] = array();
}
+ // Allow the handler <a on=""> in AMP.
+ $allowedtags['a']['on'] = array();
+
// Allow itemscope and itemtype for divs.
if ( ! isset( $allowedtags['div'] ) ) {
$allowedtags['div'] = array();
@@ -103,6 +106,11 @@ class Jetpack_Recipes {
// add $themecolors-defined styles.
wp_add_inline_style( 'jetpack-recipes-style', self::themecolor_styles() );
+
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
wp_enqueue_script(
'jetpack-recipes-printthis',
Assets::get_file_url_for_environment( '_inc/build/shortcodes/js/recipes-printthis.min.js', 'modules/shortcodes/js/recipes-printthis.js' ),
@@ -202,7 +210,7 @@ class Jetpack_Recipes {
);
}
- $time_types = array( 'cooktime', 'preptime', 'time' );
+ $time_types = array( 'preptime', 'cooktime', 'time' );
foreach ( $time_types as $time_type ) {
if ( '' === $atts[ $time_type ] ) {
continue;
@@ -254,9 +262,13 @@ class Jetpack_Recipes {
}
if ( 'false' !== $atts['print'] ) {
- $html .= sprintf(
- '<li class="jetpack-recipe-print"><a href="#">%1$s</a></li>',
- esc_html_x( 'Print', 'recipe', 'jetpack' )
+ $is_amp = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+ $print_action = $is_amp ? 'on="tap:AMP.print"' : '';
+ $print_text = $is_amp ? esc_html__( 'Print page', 'jetpack' ) : esc_html_x( 'Print', 'recipe', 'jetpack' );
+ $html .= sprintf(
+ '<li class="jetpack-recipe-print"><a href="#" %1$s>%2$s</a></li>',
+ $print_action,
+ $print_text
);
}
@@ -618,16 +630,25 @@ class Jetpack_Recipes {
return '';
}
+ $image_attrs = array(
+ 'class' => 'jetpack-recipe-image u-photo photo',
+ 'itemprop' => 'image',
+ );
+
+ if (
+ function_exists( 'wp_lazy_loading_enabled' )
+ && wp_lazy_loading_enabled( 'img', 'wp_get_attachment_image' )
+ ) {
+ $image_attrs['loading'] = 'lazy';
+ }
+
// If it's numeric, this may be an attachment.
if ( is_numeric( $src ) ) {
return wp_get_attachment_image(
$src,
'full',
false,
- array(
- 'class' => 'jetpack-recipe-image u-photo photo',
- 'itemprop' => 'image',
- )
+ $image_attrs
);
}
@@ -639,8 +660,18 @@ class Jetpack_Recipes {
return '';
}
+ $image_attrs_markup = '';
+ foreach ( $image_attrs as $name => $value ) {
+ $image_attrs_markup .= sprintf(
+ ' %1$s="%2$s"',
+ esc_attr( $name ),
+ esc_attr( $value )
+ );
+ }
+
return sprintf(
- '<img class="jetpack-recipe-image u-photo photo" itemprop="image" src="%1$s" />',
+ '<img%1$s src="%2$s" />',
+ $image_attrs_markup,
esc_url( $src )
);
}
diff --git a/plugins/jetpack/modules/shortcodes/scribd.php b/plugins/jetpack/modules/shortcodes/scribd.php
index a0101ad2..3d6df1eb 100644
--- a/plugins/jetpack/modules/shortcodes/scribd.php
+++ b/plugins/jetpack/modules/shortcodes/scribd.php
@@ -9,7 +9,7 @@
*
* [scribd id=39027960 key=key-3kaiwcjqhtipf25m8tw mode=list]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -48,14 +48,35 @@ function scribd_shortcode_handler( $atts ) {
* Display the shortcode.
*
* @param array $atts Shortcode attributes.
+ * @return string The rendered shortcode.
*/
function scribd_shortcode_markup( $atts ) {
- $markup = <<<EOD
-<iframe class="scribd_iframe_embed" src="//www.scribd.com/embeds/$atts[id]/content?start_page=1&view_mode=$atts[mode]&access_key=$atts[key]" data-auto-height="true" scrolling="no" id="scribd_$atts[id]" width="100%" height="500" frameborder="0"></iframe>
-<div style="font-size:10px;text-align:center;width:100%"><a href="https://www.scribd.com/doc/$atts[id]" target="_blank">View this document on Scribd</a></div>
-EOD;
+ $sandbox = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request()
+ ? 'sandbox="allow-popups allow-scripts allow-same-origin"'
+ : '';
- return $markup;
+ $url = add_query_arg(
+ array(
+ 'start_page' => '1',
+ 'view_mode' => esc_attr( $atts['mode'] ),
+ 'access_key' => esc_attr( $atts['key'] ),
+ ),
+ esc_url(
+ sprintf(
+ 'https://www.scribd.com/embeds/%1$d/content',
+ absint( $atts['id'] )
+ )
+ )
+ );
+
+ return sprintf(
+ '<iframe class="scribd_iframe_embed" src="%1$s" %2$s data-auto-height="true" scrolling="no" id="scribd_%3$d" width="100%%" height="500" frameborder="0"></iframe>
+ <div style="font-size:10px;text-align:center;width:100%%"><a href="https://www.scribd.com/doc/%3$d" rel="noopener noreferrer" target="_blank">%4$s</a></div>',
+ $url,
+ $sandbox,
+ absint( $atts['id'] ),
+ esc_html__( 'View this document on Scribd', 'jetpack' )
+ );
}
add_shortcode( 'scribd', 'scribd_shortcode_handler' );
diff --git a/plugins/jetpack/modules/shortcodes/sitemap.php b/plugins/jetpack/modules/shortcodes/sitemap.php
index d26210f0..902808ae 100644
--- a/plugins/jetpack/modules/shortcodes/sitemap.php
+++ b/plugins/jetpack/modules/shortcodes/sitemap.php
@@ -4,7 +4,7 @@
*
* Usage: [sitemap]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'sitemap', 'jetpack_sitemap_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/slideshare.php b/plugins/jetpack/modules/shortcodes/slideshare.php
index 35740287..53f4b355 100644
--- a/plugins/jetpack/modules/shortcodes/slideshare.php
+++ b/plugins/jetpack/modules/shortcodes/slideshare.php
@@ -17,7 +17,7 @@
* pro = Slideshare Pro (yes/no)
* style = Inline CSS (string)
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -57,15 +57,15 @@ function slideshare_shortcode( $atts ) {
}
// check the width/height.
- $w = intval( $attr['w'] );
+ $w = (int) $attr['w'];
// If no width was specified (or uses the wrong format), and if we have a $content_width, use that.
if ( empty( $w ) && ! empty( $content_width ) ) {
- $w = intval( $content_width );
+ $w = (int) $content_width;
} elseif ( $w < 300 || $w > 1600 ) { // If width was specified, but is too small/large, set default value.
$w = 425;
} else {
- $w = intval( $w );
+ $w = (int) $w;
}
$h = ceil( $w * 348 / 425 ); // Note: user-supplied height is ignored.
@@ -77,28 +77,32 @@ function slideshare_shortcode( $atts ) {
}
if ( isset( $attr['rel'] ) ) {
- $source = add_query_arg( 'rel', intval( $attr['rel'] ), $source );
+ $source = add_query_arg( 'rel', (int) $attr['rel'], $source );
}
if ( ! empty( $attr['startSlide'] ) ) {
- $source = add_query_arg( 'startSlide', intval( $attr['startSlide'] ), $source );
+ $source = add_query_arg( 'startSlide', (int) $attr['startSlide'], $source );
}
$player = sprintf( "<iframe src='%s' width='%d' height='%d'", esc_url( $source ), $w, $h );
// check the frameborder.
if ( ! empty( $attr['fb'] ) || '0' === $attr['fb'] ) {
- $player .= " frameborder='" . intval( $attr['fb'] ) . "'";
+ $player .= " frameborder='" . (int) $attr['fb'] . "'";
}
- // check the margin width; if not empty, cast as int.
- if ( ! empty( $attr['mw'] ) || '0' === $attr['mw'] ) {
- $player .= " marginwidth='" . intval( $attr['mw'] ) . "'";
- }
+ $is_amp = ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() );
+
+ if ( ! $is_amp ) {
+ // check the margin width; if not empty, cast as int.
+ if ( ( ! empty( $attr['mw'] ) || '0' === $attr['mw'] ) ) {
+ $player .= " marginwidth='" . (int) $attr['mw'] . "'";
+ }
- // check the margin height, if not empty, cast as int.
- if ( ! empty( $attr['mh'] ) || '0' === $attr['mh'] ) {
- $player .= " marginheight='" . intval( $attr['mh'] ) . "'";
+ // check the margin height, if not empty, cast as int.
+ if ( ( ! empty( $attr['mh'] ) || '0' === $attr['mh'] ) ) {
+ $player .= " marginheight='" . (int) $attr['mh'] . "'";
+ }
}
if ( ! empty( $attr['style'] ) ) {
@@ -114,7 +118,7 @@ function slideshare_shortcode( $atts ) {
}
}
- $player .= ' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>';
+ $player .= ' sandbox="allow-popups allow-scripts allow-same-origin allow-presentation" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>';
/**
* Filter the returned SlideShare shortcode.
diff --git a/plugins/jetpack/modules/shortcodes/slideshow.php b/plugins/jetpack/modules/shortcodes/slideshow.php
index a3b99ac1..68357947 100644
--- a/plugins/jetpack/modules/shortcodes/slideshow.php
+++ b/plugins/jetpack/modules/shortcodes/slideshow.php
@@ -1,12 +1,13 @@
<?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Extensions\Slideshow;
/**
* Slideshow shortcode.
* Adds a new "slideshow" gallery type when adding a gallery using the classic editor.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -112,7 +113,7 @@ class Jetpack_Slideshow_Shortcode {
}
// Don't restrict to the current post if include.
- $post_parent = ( empty( $attr['include'] ) ) ? intval( $attr['id'] ) : null;
+ $post_parent = ( empty( $attr['include'] ) ) ? (int) $attr['id'] : null;
$attachments = get_posts(
array(
@@ -163,13 +164,13 @@ class Jetpack_Slideshow_Shortcode {
);
}
- $color = Jetpack_Options::get_option( 'slideshow_background_color', 'black' );
-
- $js_attr = array(
+ $color = Jetpack_Options::get_option( 'slideshow_background_color', 'black' );
+ $autostart = $attr['autostart'] ? $attr['autostart'] : 'true';
+ $js_attr = array(
'gallery' => $gallery,
'selector' => $gallery_instance,
'trans' => $attr['trans'] ? $attr['trans'] : 'fade',
- 'autostart' => $attr['autostart'] ? $attr['autostart'] : 'true',
+ 'autostart' => $autostart,
'color' => $color,
);
@@ -182,6 +183,21 @@ class Jetpack_Slideshow_Shortcode {
);
}
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ // Load the styles and use the rendering method from the Slideshow block.
+ Jetpack_Gutenberg::load_styles_as_required( 'slideshow' );
+
+ $amp_args = array(
+ 'ids' => wp_list_pluck( $gallery, 'id' ),
+ );
+
+ if ( 'true' == $autostart ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison -- attribute can be stored as boolean or string.
+ $amp_args['autoplay'] = true;
+ }
+
+ return Slideshow\render_amp( $amp_args );
+ }
+
return $this->slideshow_js( $js_attr );
}
@@ -279,14 +295,20 @@ class Jetpack_Slideshow_Shortcode {
* @since 4.7.0 Added the `speed` option to the array of options.
*
* @param array $args
- * - string - spinner - URL of the spinner image.
- * - string - speed - Speed of the slideshow. Defaults to 4000.
+ * - string - spinner - URL of the spinner image.
+ * - string - speed - Speed of the slideshow. Defaults to 4000.
+ * - string - label_prev - Aria label for slideshow's previous button
+ * - string - label_stop - Aria label for slideshow's pause button
+ * - string - label_next - Aria label for slideshow's next button
*/
apply_filters(
'jetpack_js_slideshow_settings',
array(
- 'spinner' => plugins_url( '/img/slideshow-loader.gif', __FILE__ ),
- 'speed' => '4000',
+ 'spinner' => plugins_url( '/img/slideshow-loader.gif', __FILE__ ),
+ 'speed' => '4000',
+ 'label_prev' => __( 'Previous Slide', 'jetpack' ),
+ 'label_stop' => __( 'Pause Slideshow', 'jetpack' ),
+ 'label_next' => __( 'Next Slide', 'jetpack' ),
)
)
);
diff --git a/plugins/jetpack/modules/shortcodes/smartframe.php b/plugins/jetpack/modules/shortcodes/smartframe.php
new file mode 100644
index 00000000..3b29a31c
--- /dev/null
+++ b/plugins/jetpack/modules/shortcodes/smartframe.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Smartframe.io embed
+ *
+ * Example URL: https://mikael-korpela.smartframe.io/p/mantymetsa_1630927773870/7673dc41a775fb845cc26acf24f1fe4?t=rql1c6dbpv2
+ * Example embed code: <script src="https://embed.smartframe.io/6ae67829d1264ee0ea6071a788940eae.js" data-image-id="mantymetsa_1630927773870" data-width="100%" data-max-width="1412px"></script>
+ *
+ * @package automattic/jetpack
+ */
+
+if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ add_action( 'init', 'jetpack_smartframe_enable_embeds' );
+} else {
+ jetpack_smartframe_enable_embeds();
+}
+
+/**
+ * Register smartframe as oembed provider. Add filter to reverse iframes to shortcode. Register [smartframe] shortcode.
+ *
+ * @since 10.2.0
+ */
+function jetpack_smartframe_enable_embeds() {
+ // Support their oEmbed Endpoint.
+ wp_oembed_add_provider( '#https?://(.*?)\.smartframe\.(io|net)/.*#i', 'https://oembed.smartframe.io/', true );
+
+ // Allow script to be filtered to short code (so direct copy+paste can be done).
+ add_filter( 'pre_kses', 'jetpack_shortcodereverse_smartframe' );
+
+ // Actually display the smartframe Embed.
+ add_shortcode( 'smartframe', 'jetpack_smartframe_shortcode' );
+}
+
+/**
+ * Compose shortcode based on smartframe iframes.
+ *
+ * @since 10.2.0
+ *
+ * @param string $content Post content.
+ *
+ * @return mixed
+ */
+function jetpack_shortcodereverse_smartframe( $content ) {
+ if ( ! is_string( $content ) || false === stripos( $content, 'embed.smartframe' ) ) {
+ return $content;
+ }
+
+ // phpcs:ignore WordPress.WP.EnqueuedResources.NonEnqueuedScript
+ $regexp = '!<script\ssrc="https://embed\.smartframe\.(?:io|net)/(\w+)\.js"\sdata-image-id="(.*?)"(?:\sdata-width="(?:\d+(?:%|px))"\s)?(?:data-max-width="(\d+(%|px)))?"></script>!i';
+ $regexp_ent = str_replace( '&amp;#0*58;', '&amp;#0*58;|&#0*58;', htmlspecialchars( $regexp, ENT_NOQUOTES ) );
+
+ foreach ( compact( 'regexp', 'regexp_ent' ) as $regexp ) {
+ if ( ! preg_match_all( $regexp, $content, $matches, PREG_SET_ORDER ) ) {
+ continue;
+ }
+
+ foreach ( $matches as $match ) {
+ // We need at least a script ID and an image ID.
+ if ( ! isset( $match[1], $match[2] ) ) {
+ continue;
+ }
+ $shortcode = sprintf(
+ '[smartframe script-id="%1$s" image-id="%2$s"%3$s]',
+ esc_attr( $match[1] ),
+ esc_attr( $match[2] ),
+ ! empty( $match[3] ) ? ' max-width="' . esc_attr( $match[3] ) . '"' : ''
+ );
+ $content = str_replace( $match[0], $shortcode, $content );
+ }
+ }
+ /** This action is documented in modules/widgets/social-media-icons.php */
+ do_action( 'jetpack_bump_stats_extras', 'html_to_shortcode', 'smartframe' );
+
+ return $content;
+}
+
+/**
+ * Parse shortcode arguments and render its output.
+ *
+ * @since 10.2.0
+ *
+ * @param array $atts Shortcode parameters.
+ *
+ * @return string
+ */
+function jetpack_smartframe_shortcode( $atts ) {
+ if ( ! empty( $atts['image-id'] ) ) {
+ $image_id = $atts['image-id'];
+ } else {
+ return '<!-- Missing smartframe image-id -->';
+ }
+ if ( ! empty( $atts['script-id'] ) ) {
+ $script_id = $atts['script-id'];
+ } else {
+ return '<!-- Missing smartframe script-id -->';
+ }
+
+ $params = array(
+ // ignore width for now, smartframe embed code has it "100%". % isn't allowed in oembed, making it 100px.
+ // 'width' => isset( $atts['width'] ) ? (int) $atts['width'] : null,.
+ 'max-width' => isset( $atts['max-width'] ) ? (int) $atts['max-width'] : null,
+ );
+
+ $embed_url = sprintf(
+ 'https://imagecards.smartframe.io/%1$s/%2$s',
+ esc_attr( $script_id ),
+ esc_attr( $image_id )
+ );
+
+ // wrap the embed with wp-block-embed__wrapper, otherwise it would be aligned to the very left of the viewport.
+ return sprintf(
+ '<div class="wp-block-embed__wrapper">%1$s</div>',
+ wp_oembed_get( $embed_url, array_filter( $params ) )
+ );
+}
diff --git a/plugins/jetpack/modules/shortcodes/soundcloud.php b/plugins/jetpack/modules/shortcodes/soundcloud.php
index 59479fc7..f8e14fab 100644
--- a/plugins/jetpack/modules/shortcodes/soundcloud.php
+++ b/plugins/jetpack/modules/shortcodes/soundcloud.php
@@ -17,7 +17,7 @@
* [soundcloud url="https://soundcloud.com/closetorgan/sets/smells-like-lynx-africa-private" color="00cc11"]
* <iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/150745932&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;show_reposts=false&amp;visual=true"></iframe>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -47,6 +47,18 @@ function soundcloud_shortcode( $atts, $content = null ) {
}
}
+ // If the shortcode is displayed in a WPCOM notification, display a simple link only.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/lib/display-context.php';
+ $context = A8C\Display_Context\get_current_context();
+ if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
+ return sprintf(
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer">%1$s</a>',
+ esc_url( $shortcode_options['url'] )
+ );
+ }
+ }
+
// Turn shortcode option "param" (param=value&param2=value) into array of params.
$shortcode_params = array();
if ( isset( $shortcode_options['params'] ) ) {
@@ -224,7 +236,7 @@ function jetpack_soundcloud_embed_reversal( $content ) {
if ( ! preg_match( '#height="(\d+)"#i', $match[0], $hmatch ) ) {
$height = '';
} else {
- $height = ' height="' . intval( $hmatch[1] ) . '"';
+ $height = ' height="' . (int) $hmatch[1] . '"';
}
unset( $args['url'] );
diff --git a/plugins/jetpack/modules/shortcodes/spotify.php b/plugins/jetpack/modules/shortcodes/spotify.php
index ff3c38b7..33719534 100644
--- a/plugins/jetpack/modules/shortcodes/spotify.php
+++ b/plugins/jetpack/modules/shortcodes/spotify.php
@@ -5,16 +5,11 @@
* Usage:
* [spotify id="spotify:track:4bz7uB4edifWKJXSDxwHcs" width="400" height="100"]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! shortcode_exists( 'spotify' ) ) {
add_shortcode( 'spotify', 'jetpack_spotify_shortcode' );
-
- if ( get_option( 'embed_autourls' ) ) {
- // If user enabled autourls, also convert syntax like spotify:track:4bz7uB4edifWKJXSDxwHcs.
- add_filter( 'the_content', 'jetpack_spotify_embed_ids', 7 );
- }
}
/**
@@ -53,7 +48,27 @@ function jetpack_spotify_shortcode( $atts = array(), $content = '' ) {
// Spotify accepts both URLs and their Spotify ID format, so let them sort it out and validate.
$embed_url = add_query_arg( 'uri', rawurlencode( $id ), 'https://embed.spotify.com/' );
- return '<iframe src="' . esc_url( $embed_url ) . '" style="display:block; margin:0 auto; width:' . esc_attr( $atts['width'] ) . 'px; height:' . esc_attr( $atts['height'] ) . 'px;" frameborder="0" allowtransparency="true"></iframe>';
+ // If the shortcode is displayed in a WPCOM notification, display a simple link only.
+ // When the shortcode is displayed in the WPCOM Reader, use iframe instead.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/lib/display-context.php';
+ $context = A8C\Display_Context\get_current_context();
+ if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
+ return sprintf(
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer">%1$s</a>',
+ esc_url( $id )
+ );
+ } elseif ( A8C\Display_Context\READER === $context ) {
+ return sprintf(
+ '<iframe src="%1$s" height="%2$s" width="%3$s"></iframe>',
+ esc_url( $embed_url ),
+ esc_attr( $atts['height'] ),
+ esc_attr( $atts['width'] )
+ );
+ }
+ }
+
+ return '<iframe src="' . esc_url( $embed_url ) . '" style="display:block; margin:0 auto; width:' . esc_attr( $atts['width'] ) . 'px; height:' . esc_attr( $atts['height'] ) . 'px;" frameborder="0" allowtransparency="true" loading="lazy"></iframe>';
}
/**
@@ -75,7 +90,8 @@ function jetpack_spotify_embed_ids( $content ) {
continue;
}
- if ( substr( ltrim( $element ), 0, 8 ) !== 'spotify:' ) {
+ // If this element does not contain a Spotify embed, continue.
+ if ( false === strpos( $element, 'spotify:' ) ) {
continue;
}
@@ -84,6 +100,7 @@ function jetpack_spotify_embed_ids( $content ) {
return implode( '', $textarr );
}
+add_filter( 'the_content', 'jetpack_spotify_embed_ids', 7 );
/**
* Call shortcode with ID provided by matching pattern.
diff --git a/plugins/jetpack/modules/shortcodes/ted.php b/plugins/jetpack/modules/shortcodes/ted.php
index b26ef1da..a6c5dabd 100644
--- a/plugins/jetpack/modules/shortcodes/ted.php
+++ b/plugins/jetpack/modules/shortcodes/ted.php
@@ -10,7 +10,7 @@
* [ted id="http://www.ted.com/talks/view/id/210" lang="en"]
* [ted id=1539 lang=fr width=560 height=315]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
wp_oembed_add_provider( '!https?://(www\.)?ted.com/talks/view/id/.+!i', 'https://www.ted.com/talks/oembed.json', true );
@@ -96,3 +96,26 @@ add_shortcode( 'ted', 'shortcode_ted' );
function ted_filter_oembed_fetch_url( $provider, $url, $args ) {
return add_query_arg( 'lang', $args['lang'], $provider );
}
+
+/**
+ * Filter the oembed html to set the sandbox attribute in the iframe
+ *
+ * @param string|false $cache The cached HTML result, stored in post meta.
+ * @param string $url The attempted embed URL.
+ *
+ * @return string|false
+ */
+function ted_filter_oembed_amp_iframe( $cache, $url ) {
+ if ( is_string( $cache )
+ && strpos( $url, 'ted.com' )
+ ) {
+ $cache = preg_replace(
+ '/src=[\'"].*?[\'"]/',
+ '$0 sandbox="allow-popups allow-scripts allow-same-origin"',
+ $cache
+ );
+ }
+
+ return $cache;
+}
+add_filter( 'embed_oembed_html', 'ted_filter_oembed_amp_iframe', 10, 2 );
diff --git a/plugins/jetpack/modules/shortcodes/tweet.php b/plugins/jetpack/modules/shortcodes/tweet.php
index 435195b6..2275e5d5 100644
--- a/plugins/jetpack/modules/shortcodes/tweet.php
+++ b/plugins/jetpack/modules/shortcodes/tweet.php
@@ -15,7 +15,7 @@
* More parameters and another tweet syntax admitted:
* [tweet tweet="https://twitter.com/jack/statuses/20" align="left" width="350" align="center" lang="es"]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'tweet', array( 'Jetpack_Tweet', 'jetpack_tweet_shortcode' ) );
@@ -68,13 +68,13 @@ class Jetpack_Tweet {
if ( ctype_digit( $attr['tweet'] ) ) {
$id = 'https://twitter.com/jetpack/status/' . $attr['tweet'];
- $tweet_id = intval( $attr['tweet'] );
+ $tweet_id = (int) $attr['tweet'];
} else {
preg_match( '/^http(s|):\/\/twitter\.com(\/\#\!\/|\/)([a-zA-Z0-9_]{1,20})\/status(es)*\/(\d+)$/', $attr['tweet'], $urlbits );
- if ( isset( $urlbits[5] ) && intval( $urlbits[5] ) ) {
- $id = 'https://twitter.com/' . $urlbits[3] . '/status/' . intval( $urlbits[5] );
- $tweet_id = intval( $urlbits[5] );
+ if ( isset( $urlbits[5] ) && (int) $urlbits[5] ) {
+ $id = 'https://twitter.com/' . $urlbits[3] . '/status/' . (int) $urlbits[5];
+ $tweet_id = (int) $urlbits[5];
} else {
return '<!-- Invalid tweet id -->';
}
@@ -110,7 +110,7 @@ class Jetpack_Tweet {
$screen_name = esc_html( $data->user->screen_name );
$name = esc_html( $data->user->name );
- $url = 'https://twitter.com/' . $screen_name . '/status/' . intval( $data->id );
+ $url = 'https://twitter.com/' . $screen_name . '/status/' . (int) $data->id;
// Only show the user's real name if they set it to something different from their screename.
if ( $screen_name !== $name ) {
@@ -120,8 +120,8 @@ class Jetpack_Tweet {
}
$time = strtotime( $data->created_at );
- $human_readable = date( 'F d, Y', $time );
- $data_datetime = date( 'Y-m-d\TH:i:sP', $time );
+ $human_readable = gmdate( 'F d, Y', $time );
+ $data_datetime = gmdate( 'Y-m-d\TH:i:sP', $time );
/*
* Additional params.
@@ -149,14 +149,14 @@ class Jetpack_Tweet {
// width.
$width_html = '';
- $width = intval( $attr['width'] );
+ $width = (int) $attr['width'];
if ( $width > 100 ) {
$width_html = ' width="' . esc_attr( $width ) . '"';
}
// in reply to id (conversation tweets).
$in_reply_to_html = '';
- $in_reply_to = intval( $data->in_reply_to_status_id );
+ $in_reply_to = (int) $data->in_reply_to_status_id;
if ( ! empty( $in_reply_to ) && 'false' === $attr['hide_thread'] ) {
$in_reply_to_html = ' data-in-reply-to="' . esc_attr( $in_reply_to ) . '"';
}
diff --git a/plugins/jetpack/modules/shortcodes/twitchtv.php b/plugins/jetpack/modules/shortcodes/twitchtv.php
index 935a8b3a..4f349fb0 100644
--- a/plugins/jetpack/modules/shortcodes/twitchtv.php
+++ b/plugins/jetpack/modules/shortcodes/twitchtv.php
@@ -6,7 +6,7 @@
* [twitchtv url='https://www.twitch.tv/paperbat' height='378' width='620' autoplay='false']
* [twitchtv url='https://www.twitch.tv/paperbat/b/323486192' height='378' width='620' autoplay='false']
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -47,8 +47,8 @@ function wpcom_twitchtv_shortcode( $atts ) {
'time' => $attr['time'],
);
- $width = intval( $attr['width'] );
- $height = intval( $attr['height'] );
+ $width = (int) $attr['width'];
+ $height = (int) $attr['height'];
$user_id = $match[1];
$video_id = 0;
@@ -64,10 +64,16 @@ function wpcom_twitchtv_shortcode( $atts ) {
$url_args['channel'] = $user_id;
}
+ // See https://discuss.dev.twitch.tv/t/twitch-embedded-player-updates-in-2020/23956.
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ $url_args['parent'] = isset( $_SERVER['HTTP_HOST'] )
+ ? rawurlencode( wp_unslash( $_SERVER['HTTP_HOST'] ) ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ : '';
+
$url = add_query_arg( $url_args, 'https://player.twitch.tv/' );
return sprintf(
- '<iframe src="%s" width="%d" height="%d" frameborder="0" scrolling="no" allowfullscreen></iframe>',
+ '<iframe src="%s" width="%d" height="%d" frameborder="0" scrolling="no" allowfullscreen sandbox="allow-popups allow-scripts allow-same-origin allow-presentation"></iframe>',
esc_url( $url ),
esc_attr( $width ),
esc_attr( $height )
diff --git a/plugins/jetpack/modules/shortcodes/twitter-timeline.php b/plugins/jetpack/modules/shortcodes/twitter-timeline.php
index f282943d..98d5a442 100644
--- a/plugins/jetpack/modules/shortcodes/twitter-timeline.php
+++ b/plugins/jetpack/modules/shortcodes/twitter-timeline.php
@@ -5,7 +5,7 @@
* Examples:
* [twitter-timeline username=jetpack]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/shortcodes/unavailable.php b/plugins/jetpack/modules/shortcodes/unavailable.php
index 3c08272f..3afaa8fa 100644
--- a/plugins/jetpack/modules/shortcodes/unavailable.php
+++ b/plugins/jetpack/modules/shortcodes/unavailable.php
@@ -3,7 +3,7 @@
* Display a message on the frontend when we retire a shortcode,
* explaining why the shortcode is not available anymore.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -71,6 +71,7 @@ function jetpack_init_shortcode_unavailable() {
new Jetpack_Shortcode_Unavailable(
array(
'digg' => __( 'The Digg API was shut down in 2014.', 'jetpack' ),
+ 'hulu' => __( 'Hulu no longer allows embedding content.', 'jetpack' ),
'blip.tv' => __( 'The Blip.tv service has been shut down since August 20th, 2015.', 'jetpack' ),
'googlevideo' => __( 'The Google Video embed service is not available anymore, it has been replaced by YouTube.', 'jetpack' ),
'jetpack-email-subscribe' => __( 'The Email Subscribe shortcode is now available as a block in the Block editor.', 'jetpack' ),
diff --git a/plugins/jetpack/modules/shortcodes/untappd-menu.php b/plugins/jetpack/modules/shortcodes/untappd-menu.php
index 612df9af..5c6e9ed7 100644
--- a/plugins/jetpack/modules/shortcodes/untappd-menu.php
+++ b/plugins/jetpack/modules/shortcodes/untappd-menu.php
@@ -9,7 +9,7 @@
* @param location int Location ID for the Untappd venue. Required.
* @param theme int Theme ID for the Untappd menu. Required.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -37,7 +37,7 @@ class Jetpack_Untappd {
* @param array $atts Shortocde attributes.
* @param string $content Post content.
*/
- public static function menu_shortcode( $atts, $content = '' ) {
+ public static function menu_shortcode( $atts, $content = '' ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
// Let's bail if we don't have location or theme.
if ( ! isset( $atts['location'] ) || ! isset( $atts['theme'] ) ) {
if ( current_user_can( 'edit_posts' ) ) {
diff --git a/plugins/jetpack/modules/shortcodes/upcoming-events.php b/plugins/jetpack/modules/shortcodes/upcoming-events.php
index 69ef9bda..f78bf9d1 100644
--- a/plugins/jetpack/modules/shortcodes/upcoming-events.php
+++ b/plugins/jetpack/modules/shortcodes/upcoming-events.php
@@ -3,7 +3,7 @@
/**
* Display a list of upcoming events from a calendar.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/shortcodes/ustream.php b/plugins/jetpack/modules/shortcodes/ustream.php
index 0ab664c1..bc3b1c8f 100644
--- a/plugins/jetpack/modules/shortcodes/ustream.php
+++ b/plugins/jetpack/modules/shortcodes/ustream.php
@@ -9,7 +9,7 @@
* Embed code example, from http://www.ustream.tv/leolaporte
* <iframe src="http://www.ustream.tv/embed/recorded/1524?v=3&#038;wmode=direct" width="480" height="296" scrolling="no" frameborder="0" style="border: 0 none transparent;"></iframe>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
add_shortcode( 'ustream', 'ustream_shortcode' );
diff --git a/plugins/jetpack/modules/shortcodes/videopress.php b/plugins/jetpack/modules/shortcodes/videopress.php
index 0750a25a..3caddbd1 100644
--- a/plugins/jetpack/modules/shortcodes/videopress.php
+++ b/plugins/jetpack/modules/shortcodes/videopress.php
@@ -5,15 +5,14 @@
* @since 2.4
* @since 3.9.5 Added compatibility with refactored VideoPress module.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! Jetpack::is_module_active( 'videopress' ) ) {
- Jetpack::dns_prefetch(
- array(
- '//v0.wordpress.com',
- )
+ \Automattic\Jetpack\Assets::add_resource_hint(
+ '//v0.wordpress.com',
+ 'dns-prefetch'
);
include_once JETPACK__PLUGIN_DIR . 'modules/videopress/utility-functions.php';
diff --git a/plugins/jetpack/modules/shortcodes/vimeo.php b/plugins/jetpack/modules/shortcodes/vimeo.php
index f05965ea..b1090833 100644
--- a/plugins/jetpack/modules/shortcodes/vimeo.php
+++ b/plugins/jetpack/modules/shortcodes/vimeo.php
@@ -11,7 +11,7 @@
*
* <iframe src="http://player.vimeo.com/video/18427511" width="400" height="225" frameborder="0"></iframe><p><a href="http://vimeo.com/18427511">Eskmo 'We Got More' (Official Video)</a> from <a href="http://vimeo.com/ninjatune">Ninja Tune</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -258,19 +258,31 @@ add_shortcode( 'vimeo', 'vimeo_shortcode' );
* @return string Return output of Vimeo shortcode with the proper markup.
*/
function wpcom_vimeo_embed_url( $matches, $attr, $url ) {
- return vimeo_shortcode( array( $url ) );
+ $vimeo_info = array( $url );
+
+ // If we are able to extract a video ID, use it in the shortcode instead of the full URL.
+ if ( ! empty( $matches['video_id'] ) ) {
+ $vimeo_info = array( 'id' => $matches['video_id'] );
+ }
+
+ return vimeo_shortcode( $vimeo_info );
}
/**
- * For bare URLs on their own line of the form
- * http://vimeo.com/12345
+ * For bare URLs on their own line of the form.
+ *
+ * Accepted formats:
+ * https://vimeo.com/289091934/cd1f466bcc
+ * https://vimeo.com/album/2838732/video/6342264
+ * https://vimeo.com/6342264
+ * http://player.vimeo.com/video/18427511
*
* @since 3.9
*
* @uses wpcom_vimeo_embed_url
*/
function wpcom_vimeo_embed_url_init() {
- wp_embed_register_handler( 'wpcom_vimeo_embed_url', '#https?://(.+\.)?vimeo\.com/#i', 'wpcom_vimeo_embed_url' );
+ wp_embed_register_handler( 'wpcom_vimeo_embed_url', '#https?://(?:[^/]+\.)?vimeo\.com/(?:album/(?<album_id>\d+)/)?(?:video/)?(?<video_id>\d+)(?:/.*)?$#i', 'wpcom_vimeo_embed_url' );
}
/*
diff --git a/plugins/jetpack/modules/shortcodes/vine.php b/plugins/jetpack/modules/shortcodes/vine.php
index e1681622..45ac2879 100644
--- a/plugins/jetpack/modules/shortcodes/vine.php
+++ b/plugins/jetpack/modules/shortcodes/vine.php
@@ -16,7 +16,7 @@
* [embed width="300"]https://vine.co/v/bjHh0zHdgZT[/embed]
* [embed type="postcard" width="300"]https://vine.co/v/bjHh0zHdgZT[/embed]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/shortcodes/vr.php b/plugins/jetpack/modules/shortcodes/vr.php
index 419af37b..47af943d 100644
--- a/plugins/jetpack/modules/shortcodes/vr.php
+++ b/plugins/jetpack/modules/shortcodes/vr.php
@@ -3,7 +3,7 @@
* VR Viewer Shortcode
* converts [vr] shortcode to an iframe viewer hosted on vr.me.sh
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -25,7 +25,7 @@ function jetpack_vr_viewer_get_viewer_url_params( $params ) {
$url_params = array();
if ( isset( $params['rotation'] ) ) {
- $url_params['rotation'] = intval( $params['rotation'], 10 );
+ $url_params['rotation'] = (int) $params['rotation'];
}
if ( isset( $params['view'] ) && in_array( $params['view'], array( 'cinema', '360' ), true ) ) {
@@ -86,6 +86,18 @@ function jetpack_vr_viewer_get_html( $url_params ) {
$maxwidth = ( isset( $content_width ) ) ? $content_width : 720;
$view = ( isset( $url_params['view'] ) ) ? $url_params['view'] : 'cinema';
+ // If the shortcode is displayed in a WPCOM notification, display a simple link only.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/lib/display-context.php';
+ $context = A8C\Display_Context\get_current_context();
+ if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
+ return sprintf(
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer">%1$s</a>',
+ esc_url( $iframe )
+ );
+ }
+ }
+
$rtn = '<div style="position: relative; max-width: ' . $maxwidth . 'px; margin-left: auto; margin-right: auto; overflow: hidden; margin-bottom: 1em;">';
$rtn .= '<div style="padding-top: ' . jetpack_vr_viewer_iframe_padding( $view ) . ';"></div>';
$rtn .= '<iframe style="position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%" allowfullscreen="true" frameborder="0" width="100%" height="300" src="' . esc_url( $iframe ) . '">';
diff --git a/plugins/jetpack/modules/shortcodes/wordads.php b/plugins/jetpack/modules/shortcodes/wordads.php
index f1797d88..5f91213e 100644
--- a/plugins/jetpack/modules/shortcodes/wordads.php
+++ b/plugins/jetpack/modules/shortcodes/wordads.php
@@ -5,7 +5,7 @@
* Examples:
* [wordads]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -63,7 +63,7 @@ class Jetpack_WordAds_Shortcode {
*
* @return string HTML output
*/
- private static function wordads_shortcode_html( $atts, $content = '' ) {
+ private static function wordads_shortcode_html( $atts, $content = '' ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
global $wordads;
if ( empty( $wordads ) ) {
diff --git a/plugins/jetpack/modules/shortcodes/wufoo.php b/plugins/jetpack/modules/shortcodes/wufoo.php
index 023da496..0af8b51a 100644
--- a/plugins/jetpack/modules/shortcodes/wufoo.php
+++ b/plugins/jetpack/modules/shortcodes/wufoo.php
@@ -6,7 +6,7 @@
* Examples:
* [wufoo username="jeherve" formhash="z1x13ltw1m8jtrw" autoresize="true" height="338" header="show"]
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -51,6 +51,8 @@ function wufoo_shortcode( $atts ) {
'https://help.wufoo.com/articles/en_US/kb/Embed'
);
}
+
+ return;
}
/**
@@ -66,12 +68,12 @@ function wufoo_shortcode( $atts ) {
* An error will be returned inside the form if they are invalid.
*/
$js_embed = sprintf(
- '(function(){try{var wufoo_%1$s = new WufooForm();wufoo_%1$s.initialize({"userName":"%2$s","formHash":"%1$s","autoResize":"%3$s","height":"%4$d","header":"%5$s","ssl":true,"async":true});wufoo_%1$s.display();}catch(e){}})();',
+ '(function(){try{var wufoo_%1$s = new WufooForm();wufoo_%1$s.initialize({"userName":"%2$s","formHash":"%1$s","autoResize":%3$s,"height":"%4$d","header":"%5$s","ssl":true,"async":true});wufoo_%1$s.display();}catch(e){}})();',
esc_attr( $attr['formhash'] ),
esc_attr( $attr['username'] ),
- esc_attr( $attr['autoresize'] ),
+ 'true' == $attr['autoresize'] ? 'true' : 'false', // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
absint( $attr['height'] ),
- esc_js( $attr['header'] )
+ 'show' === $attr['header'] ? 'show' : 'hide'
);
// Embed URL.
diff --git a/plugins/jetpack/modules/shortcodes/youtube.php b/plugins/jetpack/modules/shortcodes/youtube.php
index f3e37faf..693eb71e 100644
--- a/plugins/jetpack/modules/shortcodes/youtube.php
+++ b/plugins/jetpack/modules/shortcodes/youtube.php
@@ -11,7 +11,7 @@
* http://www.youtube.com/v/9FhMMmqzbD8?fs=1&hl=en_US
* https://www.youtube.com/playlist?list=PLP7HaNDU4Cifov7C2fQM8Ij6Ew_uPHEXW
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -27,8 +27,8 @@
* 12-2010:
* <object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/3H8bnKdf654?fs=1&amp;hl=en_GB"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/3H8bnKdf654?fs=1&amp;hl=en_GB" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
* 01-2011:
- * <iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/Qq9El3ki0_g" frameborder="0" allowFullScreen></iframe>
- * <iframe class="youtube-player" type="text/html" width="640" height="385" src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0"></iframe>
+ * <iframe title="YouTube video player" class="youtube-player" width="640" height="390" src="http://www.youtube.com/embed/Qq9El3ki0_g" frameborder="0" allowFullScreen></iframe>
+ * <iframe class="youtube-player" width="640" height="385" src="http://www.youtube.com/embed/VIDEO_ID" frameborder="0"></iframe>
*
* @param string $content HTML content.
* @return string The content with YouTube embeds replaced with YouTube shortcodes.
@@ -168,6 +168,7 @@ endif;
* http://www.youtube.com/v/jF-kELmmvgA
* http://www.youtube.com/v/9FhMMmqzbD8?fs=1&hl=en_US
* http://youtu.be/Rrohlqeir5E
+ * https://www.youtube.com/watch?v=GJNxoe-iSb4&list=PLAVZ4NFtZX0fE54mDSqNKym-o_rz-8xmk
*
* @param string $url Youtube URL.
*/
@@ -181,61 +182,108 @@ function youtube_id( $url ) {
$url = youtube_sanitize_url( $url );
$url = wp_parse_url( $url );
+ $thumbnail = "https://i.ytimg.com/vi/$id/hqdefault.jpg";
+ $video_url = add_query_arg( 'v', $id, 'https://www.youtube.com/watch' );
+
$args = jetpack_shortcode_youtube_args( $url );
if ( empty( $args ) ) {
return sprintf( '<!--%s-->', esc_html__( 'YouTube Error: empty URL args', 'jetpack' ) );
}
+ // Account for URL having both v and list, where jetpack_get_youtube_id() only accounts for one or the other.
+ if ( isset( $args['list'] ) && $args['list'] === $id ) {
+ $id = null;
+ }
+ if ( isset( $args['v'] ) ) {
+ $id = $args['v'];
+ }
+ if ( ! $id && empty( $args['list'] ) ) {
+ return sprintf( '<!--%s-->', esc_html__( 'YouTube Error: missing id and/or list', 'jetpack' ) );
+ }
+
list( $w, $h ) = jetpack_shortcode_youtube_dimensions( $args );
- $rel = ( isset( $args['rel'] ) && '0' === $args['rel'] ) ? 0 : 1;
- $search = ( isset( $args['showsearch'] ) && '1' === $args['showsearch'] ) ? 1 : 0;
- $info = ( isset( $args['showinfo'] ) && '0' === $args['showinfo'] ) ? 0 : 1;
- $iv = ( isset( $args['iv_load_policy'] ) && '3' === $args['iv_load_policy'] ) ? 3 : 1;
- $fmt = ( isset( $args['fmt'] ) && intval( $args['fmt'] ) ) ? '&fmt=' . (int) $args['fmt'] : '';
+ $params = array(
+ 'rel' => ( isset( $args['rel'] ) && '0' === $args['rel'] ) ? 0 : 1,
+ 'showsearch' => ( isset( $args['showsearch'] ) && '1' === $args['showsearch'] ) ? 1 : 0, // Now deprecated. See https://developers.google.com/youtube/player_parameters#march-29,-2012.
+ 'showinfo' => ( isset( $args['showinfo'] ) && '0' === $args['showinfo'] ) ? 0 : 1, // Now obsolete. See https://developers.google.com/youtube/player_parameters#showinfo.
+ 'iv_load_policy' => ( isset( $args['iv_load_policy'] ) && '3' === $args['iv_load_policy'] ) ? 3 : 1,
+ 'fs' => 1,
+ 'hl' => str_replace( '_', '-', get_locale() ),
+ );
+ if ( isset( $args['fmt'] ) && (int) $args['fmt'] ) {
+ $params['fmt'] = (int) $args['fmt']; // Apparently an obsolete parameter. Not referenced on https://developers.google.com/youtube/player_parameters.
+ }
+ // The autohide parameter has been deprecated since 2015. See https://developers.google.com/youtube/player_parameters#august-19,-2015.
if ( ! isset( $args['autohide'] ) || ( $args['autohide'] < 0 || 2 < $args['autohide'] ) ) {
- $autohide = '&autohide=2';
+ $params['autohide'] = 2;
} else {
- $autohide = '&autohide=' . absint( $args['autohide'] );
+ $params['autohide'] = (int) $args['autohide'];
}
$start = 0;
if ( isset( $args['start'] ) ) {
- $start = intval( $args['start'] );
+ $start = (int) $args['start'];
} elseif ( isset( $args['t'] ) ) {
- $time_pieces = preg_split( '/(?<=\D)(?=\d+)/', $args['t'] );
-
- foreach ( $time_pieces as $time_piece ) {
- $int = (int) $time_piece;
- switch ( substr( $time_piece, -1 ) ) {
- case 'h':
- $start += $int * 3600;
- break;
- case 'm':
- $start += $int * 60;
- break;
- case 's':
- $start += $int;
- break;
+ if ( is_numeric( $args['t'] ) ) {
+ $start = (int) $args['t'];
+ } else {
+ $time_pieces = preg_split( '/(?<=\D)(?=\d+)/', $args['t'] );
+
+ foreach ( $time_pieces as $time_piece ) {
+ $int = (int) $time_piece;
+ switch ( substr( $time_piece, - 1 ) ) {
+ case 'h':
+ $start += $int * 3600;
+ break;
+ case 'm':
+ $start += $int * 60;
+ break;
+ case 's':
+ $start += $int;
+ break;
+ }
}
}
}
+ if ( $start ) {
+ $params['start'] = (int) $start;
+ }
- $start = $start ? '&start=' . $start : '';
- $end = ( isset( $args['end'] ) && intval( $args['end'] ) ) ? '&end=' . (int) $args['end'] : '';
- $hd = ( isset( $args['hd'] ) && intval( $args['hd'] ) ) ? '&hd=' . (int) $args['hd'] : '';
-
- $vq = ( isset( $args['vq'] ) && in_array( $args['vq'], array( 'hd720', 'hd1080' ), true ) ) ? '&vq=' . $args['vq'] : '';
+ if ( isset( $args['end'] ) && (int) $args['end'] ) {
+ $params['end'] = (int) $args['end'];
+ }
+ if ( isset( $args['hd'] ) && (int) $args['hd'] ) {
+ $params['hd'] = (int) $args['hd']; // Now obsolete per https://developers.google.com/youtube/player_parameters#march-29,-2012.
+ }
+ if ( isset( $args['vq'] ) && in_array( $args['vq'], array( 'hd720', 'hd1080' ), true ) ) {
+ $params['vq'] = $args['vq']; // Note, this appears to be obsolete. Not referenced on https://developers.google.com/youtube/player_parameters.
+ }
+ if ( isset( $args['cc_load_policy'] ) ) {
+ $params['cc_load_policy'] = 1;
+ }
+ if ( isset( $args['cc_lang_pref'] ) ) {
+ $params['cc_lang_pref'] = preg_replace( '/[^_a-z0-9-]/i', '', $args['cc_lang_pref'] );
+ }
- $cc = ( isset( $args['cc_load_policy'] ) ) ? '&cc_load_policy=1' : '';
- $cc_lang = ( isset( $args['cc_lang_pref'] ) ) ? '&cc_lang_pref=' . preg_replace( '/[^_a-z0-9-]/i', '', $args['cc_lang_pref'] ) : '';
+ // The wmode parameter appears to be obsolete. Not referenced on https://developers.google.com/youtube/player_parameters.
+ if ( isset( $args['wmode'] ) && in_array( strtolower( $args['wmode'] ), array( 'opaque', 'window', 'transparent' ), true ) ) {
+ $params['wmode'] = $args['wmode'];
+ } else {
+ $params['wmode'] = 'transparent';
+ }
- $wmode = ( isset( $args['wmode'] ) && in_array( strtolower( $args['wmode'] ), array( 'opaque', 'window', 'transparent' ), true ) ) ? $args['wmode'] : 'transparent';
+ // The theme parameter is obsolete per https://developers.google.com/youtube/player_parameters#august-19,-2015.
+ if ( isset( $args['theme'] ) && in_array( strtolower( $args['theme'] ), array( 'dark', 'light' ), true ) ) {
+ $params['theme'] = $args['theme'];
+ }
- $theme = ( isset( $args['theme'] ) && in_array( strtolower( $args['theme'] ), array( 'dark', 'light' ), true ) ) ? '&theme=' . $args['theme'] : '';
+ if ( isset( $args['list'] ) ) {
+ $params['listType'] = 'playlist';
+ $params['list'] = preg_replace( '|[^_a-z0-9-]|i', '', $args['list'] );
+ }
- $autoplay = '';
/**
* Allow YouTube videos to start playing automatically.
*
@@ -246,16 +294,60 @@ function youtube_id( $url ) {
* @param bool false Enable autoplay for YouTube videos.
*/
if ( apply_filters( 'jetpack_youtube_allow_autoplay', false ) && isset( $args['autoplay'] ) ) {
- $autoplay = '&autoplay=' . (int) $args['autoplay'];
+ $params['autoplay'] = (int) $args['autoplay'];
}
- if (
- ( isset( $url['path'] ) && '/videoseries' === $url['path'] )
- || isset( $args['list'] )
- ) {
- $html = "<iframe class='youtube-player' type='text/html' width='$w' height='$h' src='" . esc_url( "https://www.youtube.com/embed/videoseries?list=$id&hl=en_US" ) . "' allowfullscreen='true' style='border:0;'></iframe>";
+ $is_amp = class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+
+ if ( $is_amp && $id ) {
+ // Note that <amp-youtube> currently is not well suited for playlists that don't have an individual video selected, hence the $id check above.
+ $placeholder = sprintf(
+ '<a href="%1$s" placeholder><amp-img src="%2$s" alt="%3$s" layout="fill" object-fit="cover"><noscript><img src="%2$s" loading="lazy" decoding="async" alt="%3$s"></noscript></amp-img></a>',
+ esc_url( $video_url ),
+ esc_url( $thumbnail ),
+ esc_attr__( 'YouTube Poster', 'jetpack' ) // Would be preferable to provide YouTube video title, but not available in this non-oEmbed context.
+ );
+
+ $html_attributes = array();
+ foreach ( $params as $param_name => $param_value ) {
+ $html_attributes[] = sprintf(
+ 'data-param-%s="%s"',
+ sanitize_key( $param_name ),
+ esc_attr( $param_value )
+ );
+ }
+
+ $html = sprintf(
+ '<amp-youtube data-videoid="%s" %s width="%d" height="%d" layout="responsive">%s</amp-youtube>',
+ esc_attr( $id ),
+ implode( ' ', $html_attributes ), // Note: Escaping done above.
+ esc_attr( $w ),
+ esc_attr( $h ),
+ $placeholder
+ );
} else {
- $html = "<iframe class='youtube-player' type='text/html' width='$w' height='$h' src='" . esc_url( "https://www.youtube.com/embed/$id?version=3&rel=$rel&fs=1$fmt$autohide&showsearch=$search&showinfo=$info&iv_load_policy=$iv$start$end$hd&wmode=$wmode$theme$autoplay$vq{$cc}{$cc_lang}" ) . "' allowfullscreen='true' style='border:0;'></iframe>";
+ // In AMP, the AMP_Iframe_Sanitizer will convert into <amp-iframe> as required.
+ $src = 'https://www.youtube.com/embed';
+ if ( $id ) {
+ $src .= "/$id";
+ }
+ $src = add_query_arg(
+ array_merge(
+ array( 'version' => 3 ),
+ $params
+ ),
+ $src
+ );
+
+ $layout = $is_amp ? 'layout="responsive" ' : '';
+
+ $html = sprintf(
+ '<iframe class="youtube-player" width="%s" height="%s" %ssrc="%s" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation"></iframe>',
+ esc_attr( $w ),
+ esc_attr( $h ),
+ $layout,
+ esc_url( $src )
+ );
}
// Let's do some alignment wonder in a span, unless we're producing a feed.
@@ -281,6 +373,22 @@ function youtube_id( $url ) {
}
/**
+ * Format output for Calypso Reader/Notifications/Comments
+ */
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ require_once WP_CONTENT_DIR . '/lib/display-context.php';
+ $context = A8C\Display_Context\get_current_context();
+ if ( A8C\Display_Context\NOTIFICATIONS === $context ) {
+ return sprintf(
+ '<a href="%1$s" target="_blank" rel="noopener noreferrer"><img src="%2$s" alt="%3$s" /></a>',
+ esc_url( $video_url ),
+ esc_url( $thumbnail ),
+ esc_html__( 'YouTube video', 'jetpack' )
+ );
+ }
+ }
+
+ /**
* Filter the YouTube video HTML output.
*
* @module shortcodes
@@ -299,7 +407,7 @@ function youtube_id( $url ) {
*
* @since 8.0.0
*
- * @param string $url The URL of the shortcode.
+ * @param array $url The parsed URL of the shortcode.
*
* @return array|false The query args of the URL, or false.
*/
@@ -328,49 +436,11 @@ function jetpack_shortcode_youtube_args( $url ) {
*/
function youtube_shortcode( $atts ) {
$url = ( isset( $atts[0] ) ) ? ltrim( $atts[0], '=' ) : shortcode_new_to_old_params( $atts );
-
- if (
- class_exists( 'Jetpack_AMP_Support' )
- && Jetpack_AMP_Support::is_amp_request()
- ) {
- return jetpack_amp_youtube_shortcode( $url );
- } else {
- return youtube_id( $url );
- }
+ return youtube_id( $url );
}
add_shortcode( 'youtube', 'youtube_shortcode' );
/**
- * Renders the [youtube] shortcode as an AMP component.
- *
- * @since 8.0.0
- *
- * @param string $url The YouTube URL.
- *
- * @return string The AMP-compatible rendered shortcode.
- */
-function jetpack_amp_youtube_shortcode( $url ) {
- $video_id = jetpack_get_youtube_id( $url );
- if ( empty( $video_id ) ) {
- return sprintf(
- '<a href="%1$s" class="amp-wp-embed-fallback">%1$s</a>',
- esc_url( $url )
- );
- }
-
- $sanitized_url = youtube_sanitize_url( $url );
- $parsed_url = wp_parse_url( $sanitized_url );
- $args = jetpack_shortcode_youtube_args( $parsed_url );
- list( $width, $height ) = jetpack_shortcode_youtube_dimensions( $args );
- return sprintf(
- '<amp-youtube data-videoid="%s" layout="responsive" width="%d" height="%d"></amp-youtube>',
- esc_attr( $video_id ),
- absint( $width ),
- absint( $height )
- );
-}
-
-/**
* Gets the dimensions of the [youtube] shortcode.
*
* Calculates the width and height, taking $content_width into consideration.
@@ -384,8 +454,8 @@ function jetpack_amp_youtube_shortcode( $url ) {
function jetpack_shortcode_youtube_dimensions( $query_args ) {
global $content_width;
- $input_w = ( isset( $query_args['w'] ) && intval( $query_args['w'] ) ) ? intval( $query_args['w'] ) : 0;
- $input_h = ( isset( $query_args['h'] ) && intval( $query_args['h'] ) ) ? intval( $query_args['h'] ) : 0;
+ $input_w = ( isset( $query_args['w'] ) && (int) $query_args['w'] ) ? (int) $query_args['w'] : 0;
+ $input_h = ( isset( $query_args['h'] ) && (int) $query_args['h'] ) ? (int) $query_args['h'] : 0;
// If we have $content_width, use it.
if ( ! empty( $content_width ) ) {
@@ -404,7 +474,7 @@ function jetpack_shortcode_youtube_dimensions( $query_args ) {
$w = $input_w;
$h = $input_h;
} elseif ( 0 === $input_w && 0 === $input_h ) {
- if ( isset( $query_args['fmt'] ) && intval( $query_args['fmt'] ) ) {
+ if ( isset( $query_args['fmt'] ) && (int) $query_args['fmt'] ) {
$w = ( ! empty( $content_width ) ? min( $content_width, 480 ) : 480 );
} else {
$w = ( ! empty( $content_width ) ? min( $content_width, $default_width ) : $default_width );
@@ -414,7 +484,7 @@ function jetpack_shortcode_youtube_dimensions( $query_args ) {
$w = $input_w;
$h = ceil( ( $w / 16 ) * 9 );
} else {
- if ( isset( $query_args['fmt'] ) && intval( $query_args['fmt'] ) ) {
+ if ( isset( $query_args['fmt'] ) && (int) $query_args['fmt'] ) {
$w = ( ! empty( $content_width ) ? min( $content_width, 480 ) : 480 );
} else {
$w = ( ! empty( $content_width ) ? min( $content_width, $default_width ) : $default_width );
@@ -467,16 +537,21 @@ function wpcom_youtube_embed_crazy_url_init() {
}
add_action( 'init', 'wpcom_youtube_embed_crazy_url_init' );
-/**
- * Allow oEmbeds in Jetpack's Comment form.
- *
- * @module shortcodes
- *
- * @since 2.8.0
- *
- * @param int get_option('embed_autourls') Option to automatically embed all plain text URLs.
- */
-if ( ! is_admin() && apply_filters( 'jetpack_comments_allow_oembed', true ) ) {
+if (
+ ! is_admin()
+ /**
+ * Allow oEmbeds in Jetpack's Comment form.
+ *
+ * @module shortcodes
+ *
+ * @since 2.8.0
+ *
+ * @param int $allow_oembed Option to automatically embed all plain text URLs.
+ */
+ && apply_filters( 'jetpack_comments_allow_oembed', true )
+ // No need for this on WordPress.com, this is done for multiple shortcodes at a time there.
+ && ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM )
+) {
/*
* We attach wp_kses_post to comment_text in default-filters.php with priority of 10 anyway,
* so the iframe gets filtered out.
diff --git a/plugins/jetpack/modules/shortlinks.php b/plugins/jetpack/modules/shortlinks.php
index a34ed3c8..989271d7 100644
--- a/plugins/jetpack/modules/shortlinks.php
+++ b/plugins/jetpack/modules/shortlinks.php
@@ -1,7 +1,7 @@
<?php
/**
* Module Name: WP.me Shortlinks
- * Module Description: Generates shorter links so you can have more space to write on social media sites.
+ * Module Description: Generates shorter links using the wp.me domain.
* Sort Order: 8
* First Introduced: 1.1
* Requires Connection: Yes
@@ -9,14 +9,23 @@
* Module Tags: Social
* Feature: Writing
* Additional Search Queries: shortlinks, wp.me
+ *
+ * @package automattic/jetpack
*/
add_filter( 'pre_get_shortlink', 'wpme_get_shortlink_handler', 1, 4 );
-if ( !function_exists( 'wpme_dec2sixtwo' ) ) {
+if ( ! function_exists( 'wpme_dec2sixtwo' ) ) {
+ /**
+ * Converts number to base 62.
+ *
+ * @param int $num Number.
+ *
+ * @return string Value in base 62.
+ */
function wpme_dec2sixtwo( $num ) {
$index = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $out = "";
+ $out = '';
if ( $num < 0 ) {
$out = '-';
@@ -24,7 +33,7 @@ if ( !function_exists( 'wpme_dec2sixtwo' ) ) {
}
for ( $t = floor( log10( $num ) / log10( 62 ) ); $t >= 0; $t-- ) {
- $a = floor( $num / pow( 62, $t ) );
+ $a = floor( $num / pow( 62, $t ) );
$out = $out . substr( $index, $a, 1 );
$num = $num - ( $a * pow( 62, $t ) );
}
@@ -33,14 +42,23 @@ if ( !function_exists( 'wpme_dec2sixtwo' ) ) {
}
}
+/**
+ * Returns the WP.me shortlink.
+ *
+ * @param int $id Post ID, or 0 for the current post.
+ * @param string $context The context for the link. One of 'post' or 'query'.
+ * @param bool $allow_slugs Whether to allow post slugs in the shortlink.
+ *
+ * @return string
+ */
function wpme_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) {
global $wp_query;
$blog_id = Jetpack_Options::get_option( 'id' );
- if ( 'query' == $context ) {
+ if ( 'query' === $context ) {
if ( is_singular() ) {
- $id = $wp_query->get_queried_object_id();
+ $id = $wp_query->get_queried_object_id();
$context = 'post';
} elseif ( is_front_page() ) {
$context = 'blog';
@@ -49,41 +67,57 @@ function wpme_get_shortlink( $id = 0, $context = 'post', $allow_slugs = true ) {
}
}
- if ( 'blog' == $context ) {
- if ( empty( $id ) )
+ if ( 'blog' === $context ) {
+ if ( empty( $id ) ) {
$id = $blog_id;
+ }
return 'https://wp.me/' . wpme_dec2sixtwo( $id );
}
$post = get_post( $id );
- if ( empty( $post ) )
+ if ( empty( $post ) ) {
return '';
+ }
$post_id = $post->ID;
- $type = '';
+ $type = '';
- if ( $allow_slugs && 'publish' == $post->post_status && 'post' == $post->post_type && strlen( $post->post_name ) <= 8 && false === strpos( $post->post_name, '%' )
+ if ( $allow_slugs && 'publish' === $post->post_status && 'post' === $post->post_type && strlen( $post->post_name ) <= 8 && false === strpos( $post->post_name, '%' )
&& false === strpos( $post->post_name, '-' ) ) {
- $id = $post->post_name;
+ $id = $post->post_name;
$type = 's';
} else {
$id = wpme_dec2sixtwo( $post_id );
- if ( 'page' == $post->post_type )
+ if ( 'page' === $post->post_type ) {
$type = 'P';
- elseif ( 'post' == $post->post_type || post_type_supports( $post->post_type, 'shortlinks' ) )
- $type= 'p';
- elseif ( 'attachment' == $post->post_type )
+ } elseif ( 'post' === $post->post_type || post_type_supports( $post->post_type, 'shortlinks' ) ) {
+ $type = 'p';
+ } elseif ( 'attachment' === $post->post_type ) {
$type = 'a';
+ }
}
- if ( empty( $type ) )
+ if ( empty( $type ) ) {
return '';
+ }
return 'https://wp.me/' . $type . wpme_dec2sixtwo( $blog_id ) . '-' . $id;
}
+/**
+ * Get the shortlink handler.
+ *
+ * Used with the Core pre_get_shortlink hook.
+ *
+ * @param string $shortlink Shortlink value from the action. Ignored.
+ * @param int $id Post ID (0 for the current post).
+ * @param string $context The context for the link. One of 'post' or 'query'.
+ * @param bool $allow_slugs Whether to allow post slugs in the shortlink.
+ *
+ * @return string
+ */
function wpme_get_shortlink_handler( $shortlink, $id, $context, $allow_slugs ) {
return wpme_get_shortlink( $id, $context, $allow_slugs );
}
diff --git a/plugins/jetpack/modules/simple-payments/paypal-express-checkout.js b/plugins/jetpack/modules/simple-payments/paypal-express-checkout.js
index b2d135d3..74b14101 100644
--- a/plugins/jetpack/modules/simple-payments/paypal-express-checkout.js
+++ b/plugins/jetpack/modules/simple-payments/paypal-express-checkout.js
@@ -1,10 +1,10 @@
/**
- * This PaypalExpressCheckout global is included by wp_enqueue_script( 'paypal-express-checkout' );
+ * This PaypalExpressCheckout global is included by wp_enqueue_script( 'jetpack-paypal-express-checkout' );
* It handles communication with Paypal Express checkout and public-api.wordpress.com for the purposes
* of simple-payments module.
*/
-/* global paypal, jQuery */
+/* global paypal */
/* exported PaypalExpressCheckout */
var PaypalExpressCheckout = {
primaryCssClassName: 'jetpack-simple-payments',
@@ -13,7 +13,7 @@ var PaypalExpressCheckout = {
wpRestAPIHost: 'https://public-api.wordpress.com',
wpRestAPIVersion: '/wpcom/v2',
- getEnvironment: function() {
+ getEnvironment: function () {
if (
localStorage &&
localStorage.getItem &&
@@ -24,7 +24,7 @@ var PaypalExpressCheckout = {
return 'production';
},
- getCreatePaymentEndpoint: function( blogId ) {
+ getCreatePaymentEndpoint: function ( blogId ) {
return (
PaypalExpressCheckout.wpRestAPIHost +
PaypalExpressCheckout.wpRestAPIVersion +
@@ -34,7 +34,7 @@ var PaypalExpressCheckout = {
);
},
- getExecutePaymentEndpoint: function( blogId, paymentId ) {
+ getExecutePaymentEndpoint: function ( blogId, paymentId ) {
return (
PaypalExpressCheckout.wpRestAPIHost +
PaypalExpressCheckout.wpRestAPIVersion +
@@ -46,7 +46,7 @@ var PaypalExpressCheckout = {
);
},
- getNumberOfItems: function( field, enableMultiple ) {
+ getNumberOfItems: function ( field, enableMultiple ) {
if ( enableMultiple !== '1' ) {
return 1;
}
@@ -72,7 +72,7 @@ var PaypalExpressCheckout = {
* @param string domId id of the payment button placeholder
* @return Element the dom element to print the message
*/
- getMessageContainer: function( domId ) {
+ getMessageContainer: function ( domId ) {
return document.getElementById( domId + '-message-container' );
},
@@ -85,7 +85,7 @@ var PaypalExpressCheckout = {
* @param {String} domId paypal-button element dom identifier
* @param {Boolean} [error] defines if it's a message error. Not TRUE as default.
*/
- showMessage: function( message, domId, isError ) {
+ showMessage: function ( message, domId, isError ) {
var domEl = PaypalExpressCheckout.getMessageContainer( domId );
// set css classes
@@ -93,17 +93,17 @@ var PaypalExpressCheckout = {
cssClasses += isError ? 'error' : 'success';
// show message 1s after PayPal popup is closed
- setTimeout( function() {
+ setTimeout( function () {
domEl.innerHTML = message;
domEl.setAttribute( 'class', cssClasses );
}, 1000 );
},
- showError: function( message, domId ) {
+ showError: function ( message, domId ) {
PaypalExpressCheckout.showMessage( message, domId, true );
},
- processErrorMessage: function( errorResponse ) {
+ processErrorMessage: function ( errorResponse ) {
var error = errorResponse ? errorResponse.responseJSON : null;
var defaultMessage = 'There was an issue processing your payment.';
@@ -113,7 +113,7 @@ var PaypalExpressCheckout = {
if ( error.additional_errors ) {
var messages = [];
- error.additional_errors.forEach( function( additionalError ) {
+ error.additional_errors.forEach( function ( additionalError ) {
if ( additionalError.message ) {
messages.push( '<p>' + additionalError.message.toString() + '</p>' );
}
@@ -124,7 +124,7 @@ var PaypalExpressCheckout = {
return '<p>' + ( error.message || defaultMessage ) + '</p>';
},
- processSuccessMessage: function( successResponse ) {
+ processSuccessMessage: function ( successResponse ) {
var message = successResponse.message;
var defaultMessage = 'Thank you. Your purchase was successful!';
@@ -135,13 +135,13 @@ var PaypalExpressCheckout = {
return '<p>' + message + '</p>';
},
- cleanAndHideMessage: function( domId ) {
+ cleanAndHideMessage: function ( domId ) {
var domEl = PaypalExpressCheckout.getMessageContainer( domId );
domEl.setAttribute( 'class', PaypalExpressCheckout.messageCssClassName );
domEl.innerHTML = '';
},
- renderButton: function( blogId, buttonId, domId, enableMultiple ) {
+ renderButton: function ( blogId, buttonId, domId, enableMultiple ) {
var env = PaypalExpressCheckout.getEnvironment();
if ( ! paypal ) {
@@ -162,7 +162,7 @@ var PaypalExpressCheckout = {
fundingicons: true,
},
- payment: function() {
+ payment: function () {
PaypalExpressCheckout.cleanAndHideMessage( domId );
var payload = {
@@ -171,10 +171,10 @@ var PaypalExpressCheckout = {
env: env,
};
- return new paypal.Promise( function( resolve, reject ) {
+ return new paypal.Promise( function ( resolve, reject ) {
jQuery
.post( PaypalExpressCheckout.getCreatePaymentEndpoint( blogId ), payload )
- .done( function( paymentResponse ) {
+ .done( function ( paymentResponse ) {
if ( ! paymentResponse ) {
PaypalExpressCheckout.showError(
PaypalExpressCheckout.processErrorMessage(),
@@ -185,7 +185,7 @@ var PaypalExpressCheckout = {
resolve( paymentResponse.id );
} )
- .fail( function( paymentError ) {
+ .fail( function ( paymentError ) {
var paymentErrorMessage = PaypalExpressCheckout.processErrorMessage( paymentError );
PaypalExpressCheckout.showError( paymentErrorMessage, domId );
@@ -199,19 +199,19 @@ var PaypalExpressCheckout = {
} );
},
- onAuthorize: function( onAuthData ) {
+ onAuthorize: function ( onAuthData ) {
var payload = {
buttonId: buttonId,
payerId: onAuthData.payerID,
env: env,
};
- return new paypal.Promise( function( resolve, reject ) {
+ return new paypal.Promise( function ( resolve, reject ) {
jQuery
.post(
PaypalExpressCheckout.getExecutePaymentEndpoint( blogId, onAuthData.paymentID ),
payload
)
- .done( function( authResponse ) {
+ .done( function ( authResponse ) {
if ( ! authResponse ) {
PaypalExpressCheckout.showError(
PaypalExpressCheckout.processErrorMessage(),
@@ -226,7 +226,7 @@ var PaypalExpressCheckout = {
);
resolve();
} )
- .fail( function( authError ) {
+ .fail( function ( authError ) {
var authErrorMessage = PaypalExpressCheckout.processErrorMessage( authError );
PaypalExpressCheckout.showError( authErrorMessage, domId );
diff --git a/plugins/jetpack/modules/simple-payments/simple-payments.css b/plugins/jetpack/modules/simple-payments/simple-payments.css
index dd479fc1..6e5e4136 100644
--- a/plugins/jetpack/modules/simple-payments/simple-payments.css
+++ b/plugins/jetpack/modules/simple-payments/simple-payments.css
@@ -26,7 +26,7 @@ body .jetpack-simple-payments-wrapper .jetpack-simple-payments-details p {
}
/* Higher specificity in order to trump theme's style */
-body .jetpack-simple-payments-wrapper .jetpack-simple-payments-product-image .jetpack-simple-payments-image img.size-full {
+body .jetpack-simple-payments-wrapper .jetpack-simple-payments-product-image .jetpack-simple-payments-image img {
border: 0;
border-radius: 0;
height: auto;
@@ -117,6 +117,10 @@ body .jetpack-simple-payments-wrapper .jetpack-simple-payments-purchase-message
margin: 0;
}
+.jetpack-simple-payments-description {
+ white-space: pre-wrap;
+}
+
@media screen and (min-width: 400px) {
.jetpack-simple-payments-product {
flex-direction: row;
@@ -127,3 +131,27 @@ body .jetpack-simple-payments-wrapper .jetpack-simple-payments-purchase-message
padding-left: 1em;
}
}
+
+.is-email .jetpack-simple-payments-product {
+ display: table;
+ width: 100%;
+}
+
+.is-email .jetpack-simple-payments-product-image {
+ display: table-cell;
+ width: 30%;
+ vertical-align: top;
+}
+
+.is-email .jetpack-simple-payments-image {
+ padding-top: 0;
+}
+
+.is-email .jetpack-simple-payments-image figure {
+ margin: 0;
+}
+
+.is-email .jetpack-simple-payments-product-image + .jetpack-simple-payments-details {
+ display: table-cell;
+ width: 70%;
+}
diff --git a/plugins/jetpack/modules/simple-payments/simple-payments.php b/plugins/jetpack/modules/simple-payments/simple-payments.php
index c68381de..321fc1e2 100644
--- a/plugins/jetpack/modules/simple-payments/simple-payments.php
+++ b/plugins/jetpack/modules/simple-payments/simple-payments.php
@@ -1,9 +1,15 @@
-<?php
-/*
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
* Simple Payments lets users embed a PayPal button fully integrated with wpcom to sell products on the site.
* This is not a proper module yet, because not all the pieces are in place. Until everything is shipped, it can be turned
* into module that can be enabled/disabled.
-*/
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Jetpack_Simple_Payments
+ */
class Jetpack_Simple_Payments {
// These have to be under 20 chars because that is CPT limit.
static $post_type_order = 'jp_pay_order';
@@ -36,14 +42,18 @@ class Jetpack_Simple_Payments {
* @see https://developer.paypal.com/docs/integration/direct/express-checkout/integration-jsv4/add-paypal-button/
*/
wp_register_script( 'paypal-checkout-js', 'https://www.paypalobjects.com/api/checkout.js', array(), null, true );
- wp_register_script( 'paypal-express-checkout', plugins_url( '/paypal-express-checkout.js', __FILE__ ),
- array( 'jquery', 'paypal-checkout-js' ), self::$version );
+ wp_register_script(
+ 'jetpack-paypal-express-checkout',
+ plugins_url( '/paypal-express-checkout.js', __FILE__ ),
+ array( 'jquery', 'paypal-checkout-js' ),
+ self::$version,
+ false
+ );
wp_register_style( 'jetpack-simple-payments', plugins_url( '/simple-payments.css', __FILE__ ), array( 'dashicons' ) );
}
private function register_init_hooks() {
add_action( 'init', array( $this, 'init_hook_action' ) );
- add_action( 'jetpack_register_gutenberg_extensions', array( $this, 'register_gutenberg_block' ) );
add_action( 'rest_api_init', array( $this, 'register_meta_fields_in_rest_api' ) );
}
@@ -63,19 +73,37 @@ class Jetpack_Simple_Payments {
add_filter( 'the_content', array( $this, 'remove_auto_paragraph_from_product_description' ), 0 );
}
- function register_gutenberg_block() {
- if ( $this->is_enabled_jetpack_simple_payments() ) {
- jetpack_register_block( 'jetpack/simple-payments' );
- } else {
- Jetpack_Gutenberg::set_extension_unavailable(
- 'jetpack/simple-payments',
- 'missing_plan',
- array(
- 'required_feature' => 'simple-payments',
- 'required_plan' => self::$required_plan,
- )
- );
+ /**
+ * Enqueue the static assets needed in the frontend.
+ */
+ public function enqueue_frontend_assets() {
+ if ( ! wp_style_is( 'jetpack-simple-payments', 'enqueued' ) ) {
+ wp_enqueue_style( 'jetpack-simple-payments' );
}
+
+ if ( ! wp_script_is( 'jetpack-paypal-express-checkout', 'enqueued' ) ) {
+ wp_enqueue_script( 'jetpack-paypal-express-checkout' );
+ }
+ }
+
+ /**
+ * Add an inline script for setting up the PayPal checkout button.
+ *
+ * @param int $id Product ID.
+ * @param int $dom_id ID of the DOM element with the purchase message.
+ * @param boolean $is_multiple Whether multiple items of the same product can be purchased.
+ */
+ public function setup_paypal_checkout_button( $id, $dom_id, $is_multiple ) {
+ wp_add_inline_script(
+ 'jetpack-paypal-express-checkout',
+ sprintf(
+ "try{PaypalExpressCheckout.renderButton( '%d', '%d', '%s', '%d' );}catch(e){}",
+ esc_js( $this->get_blog_id() ),
+ esc_js( $id ),
+ esc_js( $dom_id ),
+ esc_js( $is_multiple )
+ )
+ );
}
function remove_auto_paragraph_from_product_description( $content ) {
@@ -118,7 +146,7 @@ class Jetpack_Simple_Payments {
}
// For all Jetpack sites
- return Jetpack::is_active() && Jetpack_Plan::supports( 'simple-payments');
+ return Jetpack::is_connection_ready() && Jetpack_Plan::supports( 'simple-payments' );
}
function parse_shortcode( $attrs, $content = false ) {
@@ -151,28 +179,15 @@ class Jetpack_Simple_Payments {
$data['id'] = $attrs['id'];
- if( ! wp_style_is( 'jetpack-simple-payments', 'enqueued' ) ) {
- wp_enqueue_style( 'jetpack-simple-payments' );
- }
-
if ( ! $this->is_enabled_jetpack_simple_payments() ) {
- if ( ! is_feed() ) {
- $this->output_admin_warning( $data );
+ if ( jetpack_is_frontend() ) {
+ return $this->output_admin_warning( $data );
}
return;
}
- if ( ! wp_script_is( 'paypal-express-checkout', 'enqueued' ) ) {
- wp_enqueue_script( 'paypal-express-checkout' );
- }
-
- wp_add_inline_script( 'paypal-express-checkout', sprintf(
- "try{PaypalExpressCheckout.renderButton( '%d', '%d', '%s', '%d' );}catch(e){}",
- esc_js( $data['blog_id'] ),
- esc_js( $attrs['id'] ),
- esc_js( $data['dom_id'] ),
- esc_js( $data['multiple'] )
- ) );
+ $this->enqueue_frontend_assets();
+ $this->setup_paypal_checkout_button( $attrs['id'], $data['dom_id'], $data['multiple'] );
return $this->output_shortcode( $data );
}
@@ -188,11 +203,19 @@ class Jetpack_Simple_Payments {
) );
}
- function output_shortcode( $data ) {
+ /**
+ * Get the HTML output to use as PayPal purchase box.
+ *
+ * @param string $dom_id ID of the DOM element with the purchase message.
+ * @param boolean $is_multiple Whether multiple items of the same product can be purchased.
+ *
+ * @return string
+ */
+ public function output_purchase_box( $dom_id, $is_multiple ) {
$items = '';
$css_prefix = self::$css_classname_prefix;
- if ( $data['multiple'] ) {
+ if ( $is_multiple ) {
$items = sprintf( '
<div class="%1$s">
<input class="%2$s" type="number" value="1" min="1" id="%3$s" />
@@ -200,9 +223,30 @@ class Jetpack_Simple_Payments {
',
esc_attr( "${css_prefix}-items" ),
esc_attr( "${css_prefix}-items-number" ),
- esc_attr( "{$data['dom_id']}_number" )
+ esc_attr( "{$dom_id}_number" )
);
}
+
+ return sprintf(
+ '<div class="%1$s" id="%2$s"></div><div class="%3$s">%4$s<div class="%5$s" id="%6$s"></div></div>',
+ esc_attr( "${css_prefix}-purchase-message" ),
+ esc_attr( "{$dom_id}-message-container" ),
+ esc_attr( "${css_prefix}-purchase-box" ),
+ $items,
+ esc_attr( "${css_prefix}-button" ),
+ esc_attr( "{$dom_id}_button" )
+ );
+ }
+
+ /**
+ * Get the HTML output to replace the `simple-payments` shortcode.
+ *
+ * @param array $data Product data.
+ * @return string
+ */
+ public function output_shortcode( $data ) {
+ $css_prefix = self::$css_classname_prefix;
+
$image = "";
if( has_post_thumbnail( $data['id'] ) ) {
$image = sprintf( '<div class="%1$s"><div class="%2$s">%3$s</div></div>',
@@ -211,6 +255,7 @@ class Jetpack_Simple_Payments {
get_the_post_thumbnail( $data['id'], 'full' )
);
}
+
return sprintf( '
<div class="%1$s">
<div class="%2$s">
@@ -219,11 +264,7 @@ class Jetpack_Simple_Payments {
<div class="%5$s"><p>%6$s</p></div>
<div class="%7$s"><p>%8$s</p></div>
<div class="%9$s"><p>%10$s</p></div>
- <div class="%11$s" id="%12$s"></div>
- <div class="%13$s">
- %14$s
- <div class="%15$s" id="%16$s"></div>
- </div>
+ %11$s
</div>
</div>
</div>
@@ -238,12 +279,7 @@ class Jetpack_Simple_Payments {
wp_kses( $data['description'], wp_kses_allowed_html( 'post' ) ),
esc_attr( "${css_prefix}-price" ),
esc_html( $data['price'] ),
- esc_attr( "${css_prefix}-purchase-message" ),
- esc_attr( "{$data['dom_id']}-message-container" ),
- esc_attr( "${css_prefix}-purchase-box" ),
- $items,
- esc_attr( "${css_prefix}-button" ),
- esc_attr( "{$data['dom_id']}_button" )
+ $this->output_purchase_box( $data['dom_id'], $data['multiple'] )
);
}
@@ -259,28 +295,8 @@ class Jetpack_Simple_Payments {
* @return string Formatted price.
*/
private function format_price( $price, $currency ) {
- $currency_details = self::get_currency( $currency );
-
- if ( $currency_details ) {
- // Ensure USD displays as 1234.56 even in non-US locales.
- $amount = 'USD' === $currency
- ? number_format( $price, $currency_details['decimal'], '.', ',' )
- : number_format_i18n( $price, $currency_details['decimal'] );
-
- return sprintf(
- $currency_details['format'],
- $currency_details['symbol'],
- $amount
- );
- }
-
- // Fall back to unspecified currency symbol like `¤1,234.05`.
- // @link https://en.wikipedia.org/wiki/Currency_sign_(typography).
- if ( ! $currency ) {
- return '¤' . number_format_i18n( $price, 2 );
- }
-
- return number_format_i18n( $price, 2 ) . ' ' . $currency;
+ jetpack_require_lib( 'class-jetpack-currencies' );
+ return Jetpack_Currencies::format_price( $price, $currency );
}
/**
@@ -542,128 +558,8 @@ class Jetpack_Simple_Payments {
* @return ?array Currency object or null if not found.
*/
private static function get_currency( $the_currency ) {
- $currencies = array(
- 'USD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => '$',
- 'decimal' => 2,
- ),
- 'GBP' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => '&#163;',
- 'decimal' => 2,
- ),
- 'JPY' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => '&#165;',
- 'decimal' => 0,
- ),
- 'BRL' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'R$',
- 'decimal' => 2,
- ),
- 'EUR' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => '&#8364;',
- 'decimal' => 2,
- ),
- 'NZD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'NZ$',
- 'decimal' => 2,
- ),
- 'AUD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'A$',
- 'decimal' => 2,
- ),
- 'CAD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'C$',
- 'decimal' => 2,
- ),
- 'ILS' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => '₪',
- 'decimal' => 2,
- ),
- 'RUB' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => '₽',
- 'decimal' => 2,
- ),
- 'MXN' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'MX$',
- 'decimal' => 2,
- ),
- 'MYR' => array(
- 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
- 'symbol' => 'RM',
- 'decimal' => 2,
- ),
- 'SEK' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'Skr',
- 'decimal' => 2,
- ),
- 'HUF' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'Ft',
- 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
- ),
- 'CHF' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'CHF',
- 'decimal' => 2,
- ),
- 'CZK' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'Kč',
- 'decimal' => 2,
- ),
- 'DKK' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'Dkr',
- 'decimal' => 2,
- ),
- 'HKD' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'HK$',
- 'decimal' => 2,
- ),
- 'NOK' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'Kr',
- 'decimal' => 2,
- ),
- 'PHP' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => '₱',
- 'decimal' => 2,
- ),
- 'PLN' => array(
- 'format' => '%2$s %1$s', // 1: Symbol 2: currency value
- 'symbol' => 'PLN',
- 'decimal' => 2,
- ),
- 'SGD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'S$',
- 'decimal' => 2,
- ),
- 'TWD' => array(
- 'format' => '%1$s%2$s', // 1: Symbol 2: currency value
- 'symbol' => 'NT$',
- 'decimal' => 0, // Decimals are supported by Stripe but not by PayPal.
- ),
- 'THB' => array(
- 'format' => '%2$s%1$s', // 1: Symbol 2: currency value
- 'symbol' => '฿',
- 'decimal' => 2,
- ),
- );
+ jetpack_require_lib( 'class-jetpack-currencies' );
+ $currencies = Jetpack_Currencies::CURRENCIES;
if ( isset( $currencies[ $the_currency ] ) ) {
return $currencies[ $the_currency ];
diff --git a/plugins/jetpack/modules/site-icon/site-icon-functions.php b/plugins/jetpack/modules/site-icon/site-icon-functions.php
index 7adaf6fa..b774482a 100644
--- a/plugins/jetpack/modules/site-icon/site-icon-functions.php
+++ b/plugins/jetpack/modules/site-icon/site-icon-functions.php
@@ -1,28 +1,44 @@
<?php
+/**
+ * Provides the jetpack_site_icon_url function is not available.
+ *
+ * @package automattic/jetpack
+ */
-if( ! function_exists( 'jetpack_site_icon_url' ) ) :
+if ( ! function_exists( 'jetpack_site_icon_url' ) ) :
+ /**
+ * Returns the Jetpack Site Icon URL.
+ *
+ * @param null|int $blog_id Blog ID.
+ * @param string $size Site icon size in pixels.
+ * @param bool $default If value from `SITE_ICON_DEFAULT_URL` should be used if no site icon is provided.
+ *
+ * @return false|string URL of site icon, or false if none.
+ */
function jetpack_site_icon_url( $blog_id = null, $size = '512', $default = false ) {
$url = '';
- if( ! is_int( $blog_id ) )
+ if ( ! is_int( $blog_id ) ) {
$blog_id = get_current_blog_id();
- if( function_exists( 'get_blog_option' ) ) {
+ }
+ if ( function_exists( 'get_blog_option' ) ) {
$site_icon_id = get_blog_option( $blog_id, 'jetpack_site_icon_id' );
} else {
$site_icon_id = Jetpack_Options::get_option( 'site_icon_id' );
}
- if( ! $site_icon_id ) {
- if( $default === false && defined( 'SITE_ICON_DEFAULT_URL' ) )
- $url = SITE_ICON_DEFAULT_URL;
- else
+ if ( ! $site_icon_id ) {
+ if ( false === $default && defined( 'SITE_ICON_DEFAULT_URL' ) ) {
+ $url = SITE_ICON_DEFAULT_URL;
+ } else {
$url = $default;
+ }
} else {
- if( $size >= 512 ) {
+ if ( $size >= 512 ) {
$size_data = 'full';
} else {
$size_data = array( $size, $size );
}
$url_data = wp_get_attachment_image_src( $site_icon_id, $size_data );
- $url = $url_data[0];
+ $url = $url_data[0];
}
return $url;
}
diff --git a/plugins/jetpack/modules/sitemaps.php b/plugins/jetpack/modules/sitemaps.php
index 79b2d08e..27d1a6c2 100644
--- a/plugins/jetpack/modules/sitemaps.php
+++ b/plugins/jetpack/modules/sitemaps.php
@@ -10,7 +10,7 @@
* Feature: Recommended
* Additional Search Queries: sitemap, traffic, search, site map, seo
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -21,7 +21,10 @@ if ( ! defined( 'ABSPATH' ) ) {
}
if ( '1' == get_option( 'blog_public' ) ) { // loose comparison okay.
- include_once 'sitemaps/sitemaps.php';
+ include_once __DIR__ . '/sitemaps/sitemaps.php';
+
+ // Disable WordPress 5.5-era sitemaps.
+ add_filter( 'wp_sitemaps_enabled', '__return_false' );
}
add_action( 'jetpack_activate_module_sitemaps', 'jetpack_sitemap_on_activate' );
@@ -33,10 +36,10 @@ add_action( 'jetpack_activate_module_sitemaps', 'jetpack_sitemap_on_activate' );
*/
function jetpack_sitemap_on_activate() {
wp_clear_scheduled_hook( 'jp_sitemap_cron_hook' );
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-constants.php';
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-buffer.php';
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-stylist.php';
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-librarian.php';
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-finder.php';
- require_once dirname( __FILE__ ) . '/sitemaps/sitemap-builder.php';
+ require_once __DIR__ . '/sitemaps/sitemap-constants.php';
+ require_once __DIR__ . '/sitemaps/sitemap-buffer.php';
+ require_once __DIR__ . '/sitemaps/sitemap-stylist.php';
+ require_once __DIR__ . '/sitemaps/sitemap-librarian.php';
+ require_once __DIR__ . '/sitemaps/sitemap-finder.php';
+ require_once __DIR__ . '/sitemaps/sitemap-builder.php';
}
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-fallback.php
index 46758766..7a87aa96 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-fallback.php
@@ -3,7 +3,7 @@
* The fallback buffer for users with no XML support.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -29,8 +29,8 @@ abstract class Jetpack_Sitemap_Buffer_Fallback extends Jetpack_Sitemap_Buffer {
$this->finder = new Jetpack_Sitemap_Finder();
- $this->item_capacity = max( 1, intval( $item_limit ) );
- $this->byte_capacity = max( 1, intval( $byte_limit ) ) - strlen( $this->contents() );
+ $this->item_capacity = max( 1, (int) $item_limit );
+ $this->byte_capacity = max( 1, (int) $byte_limit ) - strlen( $this->contents() );
}
/**
@@ -98,7 +98,7 @@ abstract class Jetpack_Sitemap_Buffer_Fallback extends Jetpack_Sitemap_Buffer {
/**
* Legacy implementation of array to XML conversion without using DOMDocument.
*
- * @param Array $array
+ * @param array $array
* @return String $result
*/
public function array_to_xml_string( $array, $parent = null, $root = null ) {
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-image-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-image-fallback.php
index 33628711..2d879570 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-image-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-image-fallback.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-image.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-image.php
index e452fcbf..5413a623 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-image.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-image.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-master-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-master-fallback.php
index b63c5328..eb62cfe8 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-master-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-master-fallback.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-master.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-master.php
index fc6be602..09d18c35 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-master.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-master.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-news-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-news-fallback.php
index 05d4c631..013e2535 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-news-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-news-fallback.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-news.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-news.php
index 0e5b0327..a4504532 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-news.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-news.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-page-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-page-fallback.php
index 7cc67af8..16f1e997 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-page-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-page-fallback.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-page.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-page.php
index d6885900..e9ebeb49 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-page.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-page.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-video-fallback.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-video-fallback.php
index 5efe8247..e4bf0cd6 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-video-fallback.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-video-fallback.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer-video.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer-video.php
index c6faff36..04c1a4c9 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer-video.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer-video.php
@@ -6,7 +6,7 @@
* buffer.
*
* @since 5.3.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-buffer.php b/plugins/jetpack/modules/sitemaps/sitemap-buffer.php
index 98751664..3596486d 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-buffer.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-buffer.php
@@ -6,7 +6,7 @@
* maintaining the constraints.
*
* @since 4.8.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -113,8 +113,8 @@ abstract class Jetpack_Sitemap_Buffer {
$this->finder = new Jetpack_Sitemap_Finder();
$this->doc = new DOMDocument( '1.0', 'UTF-8' );
- $this->item_capacity = max( 1, intval( $item_limit ) );
- $this->byte_capacity = max( 1, intval( $byte_limit ) ) - strlen( $this->doc->saveXML() );
+ $this->item_capacity = max( 1, (int) $item_limit );
+ $this->byte_capacity = max( 1, (int) $byte_limit ) - strlen( $this->doc->saveXML() );
}
/**
@@ -132,26 +132,6 @@ abstract class Jetpack_Sitemap_Buffer {
* we set is_full_flag to true. If $item is null,
* don't do anything and report success.
*
- * @since 4.8.0
- * @deprecated 5.3.0 Use Jetpack_Sitemap_Buffer::append.
- *
- * @param string $item The item to be added.
- */
- public function try_to_add_item( $item ) {
- _deprecated_function(
- 'Jetpack_Sitemap_Buffer::try_to_add_item',
- '5.3.0',
- 'Jetpack_Sitemap_Buffer::append'
- );
- $this->append( $item );
- }
-
- /**
- * Append an item to the buffer, if there is room for it,
- * and set is_empty_flag to false. If there is no room,
- * we set is_full_flag to true. If $item is null,
- * don't do anything and report success.
- *
* @since 5.3.0
*
* @param array $array The item to be added.
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-builder.php b/plugins/jetpack/modules/sitemaps/sitemap-builder.php
index d6077c0f..e8719650 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-builder.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-builder.php
@@ -2,36 +2,36 @@
/**
* Build the sitemap tree.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
* @author Automattic
*/
/* Include sitemap subclasses, if not already, and include proper buffer based on phpxml's availability. */
-require_once dirname( __FILE__ ) . '/sitemap-constants.php';
-require_once dirname( __FILE__ ) . '/sitemap-buffer.php';
+require_once __DIR__ . '/sitemap-constants.php';
+require_once __DIR__ . '/sitemap-buffer.php';
if ( ! class_exists( 'DOMDocument' ) ) {
- require_once dirname( __FILE__ ) . '/sitemap-buffer-fallback.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-image-fallback.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-master-fallback.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-news-fallback.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-page-fallback.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-video-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-image-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-master-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-news-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-page-fallback.php';
+ require_once __DIR__ . '/sitemap-buffer-video-fallback.php';
} else {
- require_once dirname( __FILE__ ) . '/sitemap-buffer-image.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-master.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-news.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-page.php';
- require_once dirname( __FILE__ ) . '/sitemap-buffer-video.php';
+ require_once __DIR__ . '/sitemap-buffer-image.php';
+ require_once __DIR__ . '/sitemap-buffer-master.php';
+ require_once __DIR__ . '/sitemap-buffer-news.php';
+ require_once __DIR__ . '/sitemap-buffer-page.php';
+ require_once __DIR__ . '/sitemap-buffer-video.php';
}
-require_once dirname( __FILE__ ) . '/sitemap-librarian.php';
-require_once dirname( __FILE__ ) . '/sitemap-finder.php';
-require_once dirname( __FILE__ ) . '/sitemap-state.php';
+require_once __DIR__ . '/sitemap-librarian.php';
+require_once __DIR__ . '/sitemap-finder.php';
+require_once __DIR__ . '/sitemap-state.php';
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- require_once dirname( __FILE__ ) . '/sitemap-logger.php';
+ require_once __DIR__ . '/sitemap-logger.php';
}
/**
@@ -587,7 +587,7 @@ class Jetpack_Sitemap_Builder {
if ( 1 === $number && 'page' !== get_option( 'show_on_front' ) ) {
$item_array = array(
'url' => array(
- 'loc' => home_url(),
+ 'loc' => home_url( '/' ),
),
);
@@ -1319,7 +1319,7 @@ class Jetpack_Sitemap_Builder {
/** This filter is already documented in core/wp-includes/feed.php */
$content = apply_filters( 'the_content_feed', $content, 'rss2' );
-
+
// Include thumbnails for VideoPress videos, use blank image for others
if ( 'complete' === get_post_meta( $post->ID, 'videopress_status', true ) && has_post_thumbnail( $post ) ) {
$video_thumbnail_url = get_the_post_thumbnail_url( $post );
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-constants.php b/plugins/jetpack/modules/sitemaps/sitemap-constants.php
index ed0ccad0..ce732557 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-constants.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-constants.php
@@ -2,7 +2,7 @@
/**
* Sitemap-related constants.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
* @author Automattic
*/
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-finder.php b/plugins/jetpack/modules/sitemaps/sitemap-finder.php
index ae6335ce..f1a1d773 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-finder.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-finder.php
@@ -3,7 +3,7 @@
* The functions in this class provide an API for handling
* sitemap related URIs.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
* @author Automattic
*/
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-librarian.php b/plugins/jetpack/modules/sitemaps/sitemap-librarian.php
index c923c952..018aa36b 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-librarian.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-librarian.php
@@ -7,11 +7,11 @@
* in the sitemaps.
*
* @since 4.8.0
- * @package Jetpack
+ * @package automattic/jetpack
*/
/* Ensure sitemap constants are available. */
-require_once dirname( __FILE__ ) . '/sitemap-constants.php';
+require_once __DIR__ . '/sitemap-constants.php';
/**
* This object handles any database interaction required
@@ -306,7 +306,7 @@ class Jetpack_Sitemap_Librarian {
$wpdb->prepare(
"SELECT MAX(comment_date_gmt)
FROM $wpdb->comments
- WHERE comment_post_ID = %d AND comment_approved = '1' AND comment_type=''",
+ WHERE comment_post_ID = %d AND comment_approved = '1' AND comment_type in ( '', 'comment' )",
$post_id
)
);
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-logger.php b/plugins/jetpack/modules/sitemaps/sitemap-logger.php
index 1173aa79..c6b3d77a 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-logger.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-logger.php
@@ -2,7 +2,7 @@
/**
* A message logger for the Jetpack Sitemap module.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
*/
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-state.php b/plugins/jetpack/modules/sitemaps/sitemap-state.php
index 2157628e..9420f85e 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-state.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-state.php
@@ -2,17 +2,17 @@
/**
* Abstract sitemap generation state class.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
* @author Automattic
*/
/* Include standard constants and librarian. */
-require_once dirname( __FILE__ ) . '/sitemap-constants.php';
-require_once dirname( __FILE__ ) . '/sitemap-librarian.php';
+require_once __DIR__ . '/sitemap-constants.php';
+require_once __DIR__ . '/sitemap-librarian.php';
if ( defined( 'WP_DEBUG' ) && ( true === WP_DEBUG ) ) {
- require_once dirname( __FILE__ ) . '/sitemap-logger.php';
+ require_once __DIR__ . '/sitemap-logger.php';
}
/**
diff --git a/plugins/jetpack/modules/sitemaps/sitemap-stylist.php b/plugins/jetpack/modules/sitemaps/sitemap-stylist.php
index 117e9bf5..45c1b82f 100644
--- a/plugins/jetpack/modules/sitemaps/sitemap-stylist.php
+++ b/plugins/jetpack/modules/sitemaps/sitemap-stylist.php
@@ -4,7 +4,7 @@
* static strings. This class handles the construction of
* those strings.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 4.8.0
*/
diff --git a/plugins/jetpack/modules/sitemaps/sitemaps.php b/plugins/jetpack/modules/sitemaps/sitemaps.php
index 9fcd0529..70d96c5f 100644
--- a/plugins/jetpack/modules/sitemaps/sitemaps.php
+++ b/plugins/jetpack/modules/sitemaps/sitemaps.php
@@ -25,22 +25,22 @@
*
* @link https://support.google.com/webmasters/answer/74288 News sitemap extension.
*
- * @package Jetpack
+ * @package automattic/jetpack
* @since 3.9.0
* @since 4.8.0 Remove 1000 post limit.
* @author Automattic
*/
/* Include all of the sitemap subclasses. */
-require_once dirname( __FILE__ ) . '/sitemap-constants.php';
-require_once dirname( __FILE__ ) . '/sitemap-buffer.php';
-require_once dirname( __FILE__ ) . '/sitemap-stylist.php';
-require_once dirname( __FILE__ ) . '/sitemap-librarian.php';
-require_once dirname( __FILE__ ) . '/sitemap-finder.php';
-require_once dirname( __FILE__ ) . '/sitemap-builder.php';
+require_once __DIR__ . '/sitemap-constants.php';
+require_once __DIR__ . '/sitemap-buffer.php';
+require_once __DIR__ . '/sitemap-stylist.php';
+require_once __DIR__ . '/sitemap-librarian.php';
+require_once __DIR__ . '/sitemap-finder.php';
+require_once __DIR__ . '/sitemap-builder.php';
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- require_once dirname( __FILE__ ) . '/sitemap-logger.php';
+ require_once __DIR__ . '/sitemap-logger.php';
}
/**
diff --git a/plugins/jetpack/modules/sso.php b/plugins/jetpack/modules/sso.php
index 96a60858..c5f5538e 100644
--- a/plugins/jetpack/modules/sso.php
+++ b/plugins/jetpack/modules/sso.php
@@ -1,5 +1,6 @@
<?php
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
use Automattic\Jetpack\Roles;
use Automattic\Jetpack\Status;
use Automattic\Jetpack\Tracking;
@@ -14,6 +15,7 @@ require_once( JETPACK__PLUGIN_DIR . 'modules/sso/class.jetpack-sso-notices.php'
* Recommendation Order: 5
* First Introduced: 2.6
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: Developers
* Feature: Security
@@ -37,7 +39,6 @@ class Jetpack_SSO {
add_action( 'login_form_logout', array( $this, 'store_wpcom_profile_cookies_on_logout' ) );
add_action( 'jetpack_unlinked_user', array( $this, 'delete_connection_for_user') );
add_action( 'wp_login', array( 'Jetpack_SSO', 'clear_cookies_after_login' ) );
- add_action( 'jetpack_jitm_received_envelopes', array( $this, 'inject_sso_jitm' ) );
// Adding this action so that on login_init, the action won't be sanitized out of the $action global.
add_action( 'login_form_jetpack-sso', '__return_true' );
@@ -361,11 +362,6 @@ class Jetpack_SSO {
$reauth = ! empty( $_GET['force_reauth'] );
$sso_url = $this->get_sso_url_or_die( $reauth );
- // Is this our first SSO Login. Set an option.
- if ( ! Jetpack_Options::get_option( 'sso_first_login' ) ) {
- Jetpack_options::update_option( 'sso_first_login', true );
- }
-
$tracking->record_user_event( 'sso_login_redirect_success' );
wp_safe_redirect( $sso_url );
exit;
@@ -465,7 +461,17 @@ class Jetpack_SSO {
?>
<div id="jetpack-sso-wrap">
- <?php if ( $display_name && $gravatar ) : ?>
+ <?php
+ /**
+ * Allow extension above Jetpack's SSO form.
+ *
+ * @module sso
+ *
+ * @since 8.6.0
+ */
+ do_action( 'jetpack_sso_login_form_above_wpcom' );
+
+ if ( $display_name && $gravatar ) : ?>
<div id="jetpack-sso-wrap__user">
<img width="72" height="72" src="<?php echo esc_html( $gravatar ); ?>" />
@@ -492,33 +498,55 @@ class Jetpack_SSO {
<?php else : ?>
<p>
<?php
- echo esc_html(
+ /**
+ * Filter the messeage displayed below the SSO button.
+ *
+ * @module sso
+ *
+ * @since 10.3.0
+ *
+ * @param string $sso_explanation Message displayed below the SSO button.
+ */
+ $sso_explanation = apply_filters(
+ 'jetpack_sso_login_form_explanation_text',
sprintf(
+ /* Translators: %s is the name of the site. */
__( 'You can now save time spent logging in by connecting your WordPress.com account to %s.', 'jetpack' ),
esc_html( $site_name )
)
);
+ echo esc_html( $sso_explanation );
?>
</p>
<?php endif; ?>
</div>
- <?php if ( ! Jetpack_SSO_Helpers::should_hide_login_form() ) : ?>
- <div class="jetpack-sso-or">
- <span><?php esc_html_e( 'Or', 'jetpack' ); ?></span>
- </div>
+ <?php
+ /**
+ * Allow extension below Jetpack's SSO form.
+ *
+ * @module sso
+ *
+ * @since 8.6.0
+ */
+ do_action( 'jetpack_sso_login_form_below_wpcom' );
+
+ if ( ! Jetpack_SSO_Helpers::should_hide_login_form() ) : ?>
+ <div class="jetpack-sso-or">
+ <span><?php esc_html_e( 'Or', 'jetpack' ); ?></span>
+ </div>
+
+ <a href="<?php echo esc_url( add_query_arg( 'jetpack-sso-show-default-form', '1' ) ); ?>" class="jetpack-sso-toggle wpcom">
+ <?php
+ esc_html_e( 'Log in with username and password', 'jetpack' )
+ ?>
+ </a>
- <a href="<?php echo esc_url( add_query_arg( 'jetpack-sso-show-default-form', '1' ) ); ?>" class="jetpack-sso-toggle wpcom">
- <?php
- esc_html_e( 'Log in with username and password', 'jetpack' )
- ?>
- </a>
-
- <a href="<?php echo esc_url( add_query_arg( 'jetpack-sso-show-default-form', '0' ) ); ?>" class="jetpack-sso-toggle default">
- <?php
- esc_html_e( 'Log in with WordPress.com', 'jetpack' )
- ?>
- </a>
+ <a href="<?php echo esc_url( add_query_arg( 'jetpack-sso-show-default-form', '0' ) ); ?>" class="jetpack-sso-toggle default">
+ <?php
+ esc_html_e( 'Log in with WordPress.com', 'jetpack' )
+ ?>
+ </a>
<?php endif; ?>
</div>
<?php
@@ -621,9 +649,7 @@ class Jetpack_SSO {
: false;
if ( ! $nonce ) {
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.sso.requestNonce' );
if ( $xml->isError() ) {
@@ -652,9 +678,7 @@ class Jetpack_SSO {
$wpcom_nonce = sanitize_key( $_GET['sso_nonce'] );
$wpcom_user_id = (int) $_GET['user_id'];
- $xml = new Jetpack_IXR_Client( array(
- 'user_id' => get_current_user_id(),
- ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.sso.validateResult', $wpcom_nonce, $wpcom_user_id );
$user_data = $xml->isError() ? false : $xml->getResponse();
@@ -687,8 +711,10 @@ class Jetpack_SSO {
'error_message' => 'error_msg_enable_two_step'
) );
+ $error = new WP_Error( 'two_step_required', __( 'You must have Two-Step Authentication enabled on your WordPress.com account.', 'jetpack' ) );
+
/** This filter is documented in core/src/wp-includes/pluggable.php */
- do_action( 'wp_login_failed', $user_data->login );
+ do_action( 'wp_login_failed', $user_data->login, $error );
add_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'error_msg_enable_two_step' ) );
return;
}
@@ -696,8 +722,17 @@ class Jetpack_SSO {
$user_found_with = '';
if ( empty( $user ) && isset( $user_data->external_user_id ) ) {
$user_found_with = 'external_user_id';
- $user = get_user_by( 'id', intval( $user_data->external_user_id ) );
+ $user = get_user_by( 'id', (int) $user_data->external_user_id );
if ( $user ) {
+ $expected_id = get_user_meta( $user->ID, 'wpcom_user_id', true );
+ if ( $expected_id && $expected_id != $user_data->ID ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ $error = new WP_Error( 'expected_wpcom_user', __( 'Something got a little mixed up and an unexpected WordPress.com user logged in.', 'jetpack' ) );
+
+ /** This filter is documented in core/src/wp-includes/pluggable.php */
+ do_action( 'wp_login_failed', $user_data->login, $error );
+ add_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'error_invalid_response_data' ) ); // @todo Need to have a better notice. This is only for the sake of testing the validation.
+ return;
+ }
update_user_meta( $user->ID, 'wpcom_user_id', $user_data->ID );
}
}
@@ -758,8 +793,8 @@ class Jetpack_SSO {
*
* @since 2.6.0
*
- * @param array $user Local User information.
- * @param object $user_data WordPress.com User Login information.
+ * @param WP_User|false|null $user Local User information.
+ * @param object $user_data WordPress.com User Login information.
*/
do_action( 'jetpack_sso_handle_login', $user, $user_data );
@@ -788,7 +823,7 @@ class Jetpack_SSO {
$json_api_auth_environment = Jetpack_SSO_Helpers::get_json_api_auth_environment();
$is_json_api_auth = ! empty( $json_api_auth_environment );
- $is_user_connected = Jetpack::is_user_connected( $user->ID );
+ $is_user_connected = ( new Connection_Manager( 'jetpack' ) )->is_user_connected( $user->ID );
$roles = new Roles();
$tracking->record_user_event( 'sso_user_logged_in', array(
'user_found_with' => $user_found_with,
@@ -831,8 +866,11 @@ class Jetpack_SSO {
) );
$this->user_data = $user_data;
+
+ $error = new WP_Error( 'account_not_found', __( 'Account not found. If you already have an account, make sure you have connected to WordPress.com.', 'jetpack' ) );
+
/** This filter is documented in core/src/wp-includes/pluggable.php */
- do_action( 'wp_login_failed', $user_data->login );
+ do_action( 'wp_login_failed', $user_data->login, $error );
add_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'cant_find_user' ) );
}
@@ -854,7 +892,7 @@ class Jetpack_SSO {
: 'jetpack-sso button';
return sprintf(
- '<a rel="nofollow" href="%1$s" class="%2$s"><span>%3$s %4$s</span></a>',
+ '<a rel="nofollow" href="%1$s" class="%2$s">%3$s %4$s</a>',
esc_url( $url ),
$classes,
'<span class="genericon genericon-wordpress"></span>',
@@ -890,6 +928,11 @@ class Jetpack_SSO {
* @return string The WordPress.com SSO URL.
*/
function get_sso_url_or_die( $reauth = false, $args = array() ) {
+ $custom_login_url = Jetpack_SSO_Helpers::get_custom_login_url();
+ if ( $custom_login_url ) {
+ $args['login_url'] = rawurlencode( $custom_login_url );
+ }
+
if ( empty( $reauth ) ) {
$sso_redirect = $this->build_sso_url( $args );
} else {
@@ -915,12 +958,12 @@ class Jetpack_SSO {
/**
* Build WordPress.com SSO URL with appropriate query parameters.
*
- * @param array $args Optional query parameters.
- * @return string WordPress.com SSO URL
+ * @param array $args Optional query parameters.
+ * @return string WordPress.com SSO URL
*/
- function build_sso_url( $args = array() ) {
+ public function build_sso_url( $args = array() ) {
$sso_nonce = ! empty( $args['sso_nonce'] ) ? $args['sso_nonce'] : self::request_initial_nonce();
- $defaults = array(
+ $defaults = array(
'action' => 'jetpack-sso',
'site_id' => Jetpack_Options::get_option( 'id' ),
'sso_nonce' => $sso_nonce,
@@ -941,10 +984,10 @@ class Jetpack_SSO {
* including the parameters necessary to force the user to reauthenticate
* on WordPress.com.
*
- * @param array $args Optional query parameters.
- * @return string WordPress.com SSO URL
+ * @param array $args Optional query parameters.
+ * @return string WordPress.com SSO URL
*/
- function build_reauth_and_sso_url( $args = array() ) {
+ public function build_reauth_and_sso_url( $args = array() ) {
$sso_nonce = ! empty( $args['sso_nonce'] ) ? $args['sso_nonce'] : self::request_initial_nonce();
$redirect = $this->build_sso_url( array( 'force_auth' => '1', 'sso_nonce' => $sso_nonce ) );
@@ -981,7 +1024,7 @@ class Jetpack_SSO {
static function get_user_by_wpcom_id( $wpcom_user_id ) {
$user_query = new WP_User_Query( array(
'meta_key' => 'wpcom_user_id',
- 'meta_value' => intval( $wpcom_user_id ),
+ 'meta_value' => (int) $wpcom_user_id,
'number' => 1,
) );
@@ -1016,7 +1059,11 @@ class Jetpack_SSO {
/**
* Return the raw connect URL with our redirect and attribute connection to SSO.
+ * We remove any other filters that may be turning on the in-place connection
+ * since we will be redirecting the user as opposed to iFraming.
*/
+ remove_all_filters( 'jetpack_use_iframe_authorization_flow' );
+ add_filter( 'jetpack_use_iframe_authorization_flow', '__return_false' );
$connect_url = Jetpack::init()->build_connect_url( true, $redirect_after_auth, 'sso' );
add_filter( 'allowed_redirect_hosts', array( 'Jetpack_SSO_Helpers', 'allowed_redirect_hosts' ) );
@@ -1029,7 +1076,7 @@ class Jetpack_SSO {
* stored when the user logs out, and then deleted when the user logs in.
*/
function store_wpcom_profile_cookies_on_logout() {
- if ( ! Jetpack::is_user_connected( get_current_user_id() ) ) {
+ if ( ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected( get_current_user_id() ) ) {
return;
}
@@ -1081,62 +1128,6 @@ class Jetpack_SSO {
public function get_user_data( $user_id ) {
return get_user_meta( $user_id, 'wpcom_user_data', true );
}
-
- /**
- * Mark SSO as discovered when an SSO JITM is viewed.
- *
- * @since 6.9.0
- *
- * @param array $envelopes Array of JITM messages received after API call.
- *
- * @return array $envelopes New array of JITM messages. May now contain only one message, about SSO.
- */
- public function inject_sso_jitm( $envelopes ) {
- // Bail early if that's not the first time the user uses SSO.
- if ( true != Jetpack_Options::get_option( 'sso_first_login' ) ) {
- return $envelopes;
- }
-
- // Update our option to mark that SSO was discovered.
- Jetpack_Options::update_option( 'sso_first_login', false );
-
- return $this->prepare_sso_first_login_jitm();
- }
-
- /**
- * Prepare JITM array for new SSO users
- *
- * @since 6.9.0
- *
- * @return array $sso_first_login_jitm array containting one object of information about our message.
- */
- private function prepare_sso_first_login_jitm() {
- // Build our custom SSO JITM.
- $discover_sso_message = array(
- 'content' => array(
- 'message' => esc_html__( "You've successfully signed in with WordPress.com Secure Sign On!", 'jetpack' ),
- 'icon' => 'jetpack',
- 'list' => array(),
- 'description' => esc_html__( 'Interested in learning more about how Secure Sign On keeps your site safer?', 'jetpack' ),
- 'classes' => '',
- ),
- 'CTA' => array(
- 'message' => esc_html__( 'Learn More', 'jetpack' ),
- 'hook' => '',
- 'newWindow' => true,
- 'primary' => true,
- ),
- 'template' => 'default',
- 'ttl' => 300,
- 'id' => 'sso_discover',
- 'feature_class' => 'sso',
- 'expires' => 3628800,
- 'max_dismissal' => 1,
- 'activate_module' => null,
- );
-
- return array( json_decode( json_encode( $discover_sso_message ) ) );
- }
}
Jetpack_SSO::get_instance();
diff --git a/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php b/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
index 1bb0cb18..921c202b 100644
--- a/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
+++ b/plugins/jetpack/modules/sso/class.jetpack-sso-helpers.php
@@ -190,6 +190,7 @@ class Jetpack_SSO_Helpers {
$hosts[] = 'wordpress.com';
$hosts[] = 'jetpack.wordpress.com';
$hosts[] = 'public-api.wordpress.com';
+ $hosts[] = 'jetpack.com';
if ( false === strpos( $api_base, 'jetpack.wordpress.com/jetpack' ) ) {
$base_url_parts = wp_parse_url( esc_url_raw( $api_base ) );
@@ -212,7 +213,7 @@ class Jetpack_SSO_Helpers {
*
* @param int 5 By default, SSO will attempt to random generate a user up to 5 times.
*/
- $num_tries = intval( apply_filters( 'jetpack_sso_allowed_username_generate_retries', 5 ) );
+ $num_tries = (int) apply_filters( 'jetpack_sso_allowed_username_generate_retries', 5 );
$tries = 0;
while ( ( $exists = username_exists( $username ) ) && $tries++ < $num_tries ) {
@@ -254,7 +255,7 @@ class Jetpack_SSO_Helpers {
*
* @param int YEAR_IN_SECONDS
*/
- return intval( apply_filters( 'jetpack_sso_auth_cookie_expiration', YEAR_IN_SECONDS ) );
+ return (int) apply_filters( 'jetpack_sso_auth_cookie_expiration', YEAR_IN_SECONDS );
}
/**
@@ -320,6 +321,31 @@ class Jetpack_SSO_Helpers {
array( 'jetpack_json_api_original_query' => $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 ( 'wp-login.php' === substr( $login_url, -12 ) ) {
+ // No custom URL found.
+ return null;
+ }
+
+ $site_url = trailingslashit( site_url() );
+
+ if ( 0 !== strpos( $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 );
+ }
}
endif;
diff --git a/plugins/jetpack/modules/sso/class.jetpack-sso-notices.php b/plugins/jetpack/modules/sso/class.jetpack-sso-notices.php
index 138222ab..00a61581 100644
--- a/plugins/jetpack/modules/sso/class.jetpack-sso-notices.php
+++ b/plugins/jetpack/modules/sso/class.jetpack-sso-notices.php
@@ -1,203 +1,236 @@
<?php
-if ( ! class_exists( 'Jetpack_SSO_Notices' ) ) :
-
-/**
- * A collection of helper functions used in the SSO module.
- *
- * @since 4.4.0
- */
-class Jetpack_SSO_Notices {
- /**
- * Error message displayed on the login form when two step is required and
- * the user's account on WordPress.com does not have two step enabled.
- *
- * @since 2.7
- * @param string $message
- * @return string
- **/
- public static function error_msg_enable_two_step( $message ) {
- $error = sprintf(
- wp_kses(
- __(
- 'Two-Step Authentication is required to access this site. Please visit your <a href="%1$s" rel="noopener noreferrer" target="_blank">Security Settings</a> to configure <a href="%2$s" rel="noopener noreferrer" target="_blank">Two-step Authentication</a> for your account.',
- 'jetpack'
- ),
- array( 'a' => array( 'href' => array() ) )
- ),
- 'https://wordpress.com/me/security/two-step',
- 'https://support.wordpress.com/security/two-step-authentication/'
- );
-
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
+use Automattic\Jetpack\Redirect;
- return $message;
- }
+if ( ! class_exists( 'Jetpack_SSO_Notices' ) ) :
/**
- * 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.
+ * A collection of helper functions used in the SSO module.
*
- * @param string $message
- * @return string
+ * @since 4.4.0
*/
- public static function error_msg_email_already_exists( $message ) {
- $error = sprintf(
- wp_kses(
- __(
- 'You already have an account on this site. Please <a href="%1$s">sign in</a> with your username and password and then connect to WordPress.com.',
- 'jetpack'
+ class Jetpack_SSO_Notices {
+ /**
+ * Error message displayed on the login form when two step is required and
+ * the user's account on WordPress.com does not have two step enabled.
+ *
+ * @since 2.7
+ * @param string $message Error message.
+ * @return string
+ **/
+ public static function error_msg_enable_two_step( $message ) {
+ $error = sprintf(
+ wp_kses(
+ /* translators: URL to settings page */
+ __(
+ 'Two-Step Authentication is required to access this site. Please visit your <a href="%1$s" rel="noopener noreferrer" target="_blank">Security Settings</a> to configure <a href="%2$s" rel="noopener noreferrer" target="_blank">Two-step Authentication</a> for your account.',
+ 'jetpack'
+ ),
+ array( 'a' => array( 'href' => array() ) )
),
- array( 'a' => array( 'href' => array() ) )
- ),
- esc_url_raw( add_query_arg( 'jetpack-sso-show-default-form', '1', wp_login_url() ) )
- );
+ Redirect::get_url( 'calypso-me-security-two-step' ),
+ Redirect::get_url( 'wpcom-support-security-two-step-authentication' )
+ );
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
- return $message;
- }
+ return $message;
+ }
- /**
- * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
- *
- * @since 4.3.2
- *
- * @param $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' );
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $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 <a href="%1$s">sign in</a> with your username and password and then connect to WordPress.com.',
+ 'jetpack'
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ ),
+ esc_url_raw( add_query_arg( 'jetpack-sso-show-default-form', '1', wp_login_url() ) )
+ );
- /**
- * 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 4.3.2
- *
- * @param $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'
- );
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
- return $message;
- }
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
- /**
- * 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 4.3.2
- *
- * @param $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'
- );
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
- return $message;
- }
+ 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 $user
- *
- * @return WP_Error
- */
- public static function disable_default_login_form( $user ) {
- if ( is_wp_error( $user ) ) {
- return $user;
+ /**
+ * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
+ *
+ * @since 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' );
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
+ return $message;
}
/**
- * Since we're returning an error that will be shown as a red notice, let's remove the
- * informational "blue" notice.
+ * 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 4.3.2
+ *
+ * @param string $message Error message.
+ *
+ * @return string
*/
- remove_filter( 'login_message', array( 'Jetpack_SSO_Notices', 'msg_login_by_jetpack' ) );
- return new WP_Error( 'jetpack_sso_required', self::get_sso_required_message() );
- }
+ 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'
+ );
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
+ return $message;
+ }
- /**
- * Message displayed when the site admin has disabled the default WordPress
- * login form in Settings > General > Secure Sign On
- *
- * @since 2.7
- * @param string $message
- *
- * @return string
- **/
- public static function msg_login_by_jetpack( $message ) {
- $message .= sprintf( '<p class="message">%s</p>', self::get_sso_required_message() );
- 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 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'
+ );
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
+ return $message;
+ }
- 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'
- );
+ /**
+ * 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( 'Jetpack_SSO_Notices', 'msg_login_by_jetpack' ) );
+ return new WP_Error( 'jetpack_sso_required', self::get_sso_required_message() );
+ }
/**
- * Filter the message displayed when the default WordPress login form is disabled.
+ * Message displayed when the site admin has disabled the default WordPress
+ * login form in Settings > General > Secure Sign On
*
- * @module sso
+ * @since 2.7
+ * @param string $message Error message.
*
- * @since 2.8.0
+ * @return string
+ **/
+ public static function msg_login_by_jetpack( $message ) {
+ $message .= sprintf( '<p class="message">%s</p>', self::get_sso_required_message() );
+ return $message;
+ }
+
+ /**
+ * Get the message for SSO required.
*
- * @param string $msg Disclaimer when default WordPress login form is disabled.
+ * @return string
*/
- return apply_filters( 'jetpack_sso_disclaimer_message', $msg );
- }
+ 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'
+ );
+
+ /**
+ * Filter the message displayed when the default WordPress login form is disabled.
+ *
+ * @module sso
+ *
+ * @since 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
- * @return string
- */
- public static function cant_find_user( $message ) {
- $error = esc_html__(
- "We couldn't find your account. If you already have an account, make sure you have connected to WordPress.com.",
- 'jetpack'
- );
- $message .= sprintf( '<p class="message" id="login_error">%s</p>', $error );
-
- return $message;
- }
+ /**
+ * 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'
+ );
+
+ /**
+ * Filters the "couldn't find your account" notice after an attempted SSO.
+ *
+ * @module sso
+ *
+ * @since 10.5.0
+ *
+ * @param string $error Error text.
+ */
+ $error = apply_filters( 'jetpack_sso_unknown_user_notice', $error );
+
+ $message .= sprintf( '<p class="message" id="login_error">%s</p>', 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 4.4.0
- *
- * @param $message
- *
- * @return string
- */
- public static function sso_not_allowed_in_staging( $message ) {
- $error = esc_html__(
- 'Logging in with WordPress.com is disabled for sites that are in staging mode.',
- 'jetpack'
- );
- $message .= sprintf( '<p class="message">%s</p>', $error );
- return $message;
+ /**
+ * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
+ *
+ * @since 4.4.0
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function sso_not_allowed_in_staging( $message ) {
+ $error = __(
+ 'Logging in with WordPress.com is disabled for sites that are in staging mode.',
+ 'jetpack'
+ );
+
+ /**
+ * Filters the disallowed notice for staging sites attempting SSO.
+ *
+ * @module sso
+ *
+ * @since 10.5.0
+ *
+ * @param string $error Error text.
+ */
+ $error = apply_filters( 'jetpack_sso_disallowed_staging_notice', $error );
+ $message .= sprintf( '<p class="message">%s</p>', esc_html( $error ) );
+ return $message;
+ }
}
-}
endif;
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.css b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.css
index ea07b3ff..3036adba 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.css
@@ -98,7 +98,7 @@
}
.jetpack-sso-or:before {
- background: #E5E5E5;
+ background: #dcdcde;
content: '';
height: 1px;
position: absolute;
@@ -114,31 +114,18 @@
text-transform: uppercase
}
-.jetpack-sso.button {
+#jetpack-sso-wrap .button {
+ display: flex;
+ justify-content: center;
+ align-items: center;
height: 36px;
- line-height: 34px;
- float: none;
margin-bottom: 16px;
- position: relative;
width: 100%;
}
-.jetpack-sso.button > span {
- position: relative;
- padding-right: 30px;
-}
-
-.jetpack-sso.button .genericon-wordpress {
- position: absolute;
- right: 0;
- top: -3px;
+#jetpack-sso-wrap .button .genericon-wordpress {
font-size: 24px;
-}
-
-@media screen and ( max-width: 782px ) {
- .jetpack-sso.button {
- line-height: 22px;
- }
+ margin-left: 4px;
}
#jetpack-sso-wrap__user img {
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
index 513d726f..5eaaa8c3 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login-rtl.min.css
@@ -1 +1 @@
-#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-right:-24px;margin-left:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-right:0;margin-left:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-right:0;margin-left:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{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:#e5e5e5;content:'';height:1px;position:absolute;right:0;top:50%;width:100%}.jetpack-sso-or span{background:#fff;color:#777;position:relative;padding:0 8px;text-transform:uppercase}.jetpack-sso.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-right:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;right:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#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:700}.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} \ No newline at end of file
+#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-right:-24px;margin-left:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-right:0;margin-left:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-right:0;margin-left:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{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;right: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-left: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:700}.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} \ No newline at end of file
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login.css b/plugins/jetpack/modules/sso/jetpack-sso-login.css
index 3160bcb6..167c0ff1 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login.css
@@ -97,7 +97,7 @@
}
.jetpack-sso-or:before {
- background: #E5E5E5;
+ background: #dcdcde;
content: '';
height: 1px;
position: absolute;
@@ -113,31 +113,18 @@
text-transform: uppercase
}
-.jetpack-sso.button {
+#jetpack-sso-wrap .button {
+ display: flex;
+ justify-content: center;
+ align-items: center;
height: 36px;
- line-height: 34px;
- float: none;
margin-bottom: 16px;
- position: relative;
width: 100%;
}
-.jetpack-sso.button > span {
- position: relative;
- padding-left: 30px;
-}
-
-.jetpack-sso.button .genericon-wordpress {
- position: absolute;
- left: 0;
- top: -3px;
+#jetpack-sso-wrap .button .genericon-wordpress {
font-size: 24px;
-}
-
-@media screen and ( max-width: 782px ) {
- .jetpack-sso.button {
- line-height: 22px;
- }
+ margin-right: 4px;
}
#jetpack-sso-wrap__user img {
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login.js b/plugins/jetpack/modules/sso/jetpack-sso-login.js
index 18080f8a..f0d4e19b 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login.js
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login.js
@@ -1,4 +1,4 @@
-jQuery( document ).ready( function( $ ) {
+jQuery( document ).ready( function ( $ ) {
var body = $( 'body' ),
toggleSSO = $( '.jetpack-sso-toggle' ),
userLogin = $( '#user_login' ),
@@ -23,7 +23,7 @@ jQuery( document ).ready( function( $ ) {
loginForm.append( ssoWrap );
body.addClass( 'jetpack-sso-repositioned' );
- toggleSSO.on( 'click', function( e ) {
+ toggleSSO.on( 'click', function ( e ) {
e.preventDefault();
body.toggleClass( 'jetpack-sso-form-display' );
if ( ! body.hasClass( 'jetpack-sso-form-display' ) ) {
diff --git a/plugins/jetpack/modules/sso/jetpack-sso-login.min.css b/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
index eeaeff27..ef854000 100644
--- a/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
+++ b/plugins/jetpack/modules/sso/jetpack-sso-login.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-left:-24px;margin-right:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-left:0;margin-right:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-left:0;margin-right:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{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:#e5e5e5;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.button{height:36px;line-height:34px;float:none;margin-bottom:16px;position:relative;width:100%}.jetpack-sso.button>span{position:relative;padding-left:30px}.jetpack-sso.button .genericon-wordpress{position:absolute;left:0;top:-3px;font-size:24px}@media screen and (max-width:782px){.jetpack-sso.button{line-height:22px}}#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:700}.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} \ No newline at end of file
+#loginform{position:relative!important;padding-bottom:92px}.jetpack-sso-repositioned #loginform{padding-bottom:26px}#loginform #jetpack-sso-wrap,#loginform #jetpack-sso-wrap *{box-sizing:border-box}#jetpack-sso-wrap__action,#jetpack-sso-wrap__user{display:none}.jetpack-sso-form-display #jetpack-sso-wrap__action,.jetpack-sso-form-display #jetpack-sso-wrap__user{display:block}#jetpack-sso-wrap{position:absolute;bottom:20px;padding:0 24px;margin-left:-24px;margin-right:-24px;width:100%}.jetpack-sso-repositioned #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:16px;margin-left:0;margin-right:0}.jetpack-sso-form-display #jetpack-sso-wrap{position:relative;bottom:auto;padding:0;margin-top:0;margin-left:0;margin-right:0}#loginform #jetpack-sso-wrap p{color:#777;margin-bottom:16px}#jetpack-sso-wrap a{display:block;width:100%;text-align:center;text-decoration:none}#jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:none}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.wpcom{display:block}.jetpack-sso-form-display #jetpack-sso-wrap .jetpack-sso-toggle.default{display:none}.jetpack-sso-form-display #loginform>div,.jetpack-sso-form-display #loginform>p{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:700}.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} \ No newline at end of file
diff --git a/plugins/jetpack/modules/stats.php b/plugins/jetpack/modules/stats.php
index 362793b8..cb28c431 100644
--- a/plugins/jetpack/modules/stats.php
+++ b/plugins/jetpack/modules/stats.php
@@ -11,18 +11,22 @@
* Feature: Engagement
* Additional Search Queries: statistics, tracking, analytics, views, traffic, stats
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
-use Automattic\Jetpack\Tracking;
use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Connection\XMLRPC_Async_Call;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Tracking;
if ( defined( 'STATS_VERSION' ) ) {
return;
}
define( 'STATS_VERSION', '9' );
-defined( 'STATS_DASHBOARD_SERVER' ) or define( 'STATS_DASHBOARD_SERVER', 'dashboard.wordpress.com' );
+defined( 'STATS_DASHBOARD_SERVER' ) || define( 'STATS_DASHBOARD_SERVER', 'dashboard.wordpress.com' );
add_action( 'jetpack_modules_loaded', 'stats_load' );
@@ -41,29 +45,28 @@ function stats_load() {
add_action( 'wp_head', 'stats_admin_bar_head', 100 );
add_action( 'wp_head', 'stats_hide_smile_css' );
+ add_action( 'embed_head', 'stats_hide_smile_css' );
add_action( 'jetpack_admin_menu', 'stats_admin_menu' );
// Map stats caps.
add_filter( 'map_meta_cap', 'stats_map_meta_caps', 10, 3 );
- if ( isset( $_GET['oldwidget'] ) ) {
- // Old one.
- add_action( 'wp_dashboard_setup', 'stats_register_dashboard_widget' );
- } else {
- add_action( 'admin_init', 'stats_merged_widget_admin_init' );
- }
+ add_action( 'admin_init', 'stats_merged_widget_admin_init' );
- add_filter( 'jetpack_xmlrpc_methods', 'stats_xmlrpc_methods' );
+ add_filter( 'jetpack_xmlrpc_unauthenticated_methods', 'stats_xmlrpc_methods' );
add_filter( 'pre_option_db_version', 'stats_ignore_db_version' );
- // Add an icon to see stats in WordPress.com for a particular post
+ // Add an icon to see stats in WordPress.com for a particular post.
add_action( 'admin_print_styles-edit.php', 'jetpack_stats_load_admin_css' );
add_filter( 'manage_posts_columns', 'jetpack_stats_post_table' );
add_filter( 'manage_pages_columns', 'jetpack_stats_post_table' );
add_action( 'manage_posts_custom_column', 'jetpack_stats_post_table_cell', 10, 2 );
add_action( 'manage_pages_custom_column', 'jetpack_stats_post_table_cell', 10, 2 );
+
+ require_once __DIR__ . '/stats/class-jetpack-stats-upgrade-nudges.php';
+ add_action( 'updating_jetpack_version', array( 'Jetpack_Stats_Upgrade_Nudges', 'unset_nudges_setting' ) );
}
/**
@@ -75,7 +78,6 @@ function stats_load() {
function stats_merged_widget_admin_init() {
if ( current_user_can( 'view_stats' ) ) {
add_action( 'load-index.php', 'stats_enqueue_dashboard_head' );
- add_action( 'wp_dashboard_setup', 'stats_register_widget_control_callback' ); // Hacky but works.
add_action( 'jetpack_dashboard_widget', 'stats_jetpack_dashboard_widget' );
}
}
@@ -109,7 +111,7 @@ function jetpack_is_dnt_enabled() {
}
foreach ( $_SERVER as $name => $value ) {
- if ( 'http_dnt' == strtolower( $name ) && 1 == $value ) {
+ if ( 'http_dnt' === strtolower( $name ) && 1 === (int) $value ) {
return true;
}
}
@@ -128,8 +130,8 @@ function jetpack_is_dnt_enabled() {
function stats_ignore_db_version( $version ) {
if (
is_admin() &&
- isset( $_GET['page'] ) && 'stats' === $_GET['page'] &&
- isset( $_GET['chart'] ) && strpos($_GET['chart'], 'admin-bar-hours') === 0
+ isset( $_GET['page'] ) && 'stats' === $_GET['page'] && // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ isset( $_GET['chart'] ) && strpos( $_GET['chart'], 'admin-bar-hours' ) === 0 // phpcs:ignore WordPress.Security.NonceVerification.Recommended
) {
global $wp_db_version;
return $wp_db_version;
@@ -154,7 +156,7 @@ function stats_map_meta_caps( $caps, $cap, $user_id ) {
$stats_roles = stats_get_option( 'roles' );
// Is the users role in the available stats roles?
- if ( is_array( $stats_roles ) && in_array( $user_role, $stats_roles ) ) {
+ if ( is_array( $stats_roles ) && in_array( $user_role, $stats_roles, true ) ) {
$caps = array( 'read' );
}
}
@@ -171,7 +173,20 @@ function stats_map_meta_caps( $caps, $cap, $user_id ) {
function stats_template_redirect() {
global $current_user;
- if ( is_feed() || is_robots() || is_trackback() || is_preview() || jetpack_is_dnt_enabled() ) {
+ if (
+ is_feed()
+ || is_robots()
+ || is_embed()
+ || is_trackback()
+ || is_preview()
+ || jetpack_is_dnt_enabled()
+ ) {
+ return;
+ }
+
+ // Staging Sites should not generate tracking stats.
+ $status = new Status();
+ if ( $status->is_staging_site() ) {
return;
}
@@ -184,10 +199,10 @@ function stats_template_redirect() {
}
add_action( 'wp_footer', 'stats_footer', 101 );
+ add_action( 'web_stories_print_analytics', 'stats_footer' );
}
-
/**
* Stats Build View Data.
*
@@ -197,12 +212,12 @@ function stats_template_redirect() {
function stats_build_view_data() {
global $wp_the_query;
- $blog = Jetpack_Options::get_option( 'id' );
- $tz = get_option( 'gmt_offset' );
- $v = 'ext';
+ $blog = Jetpack_Options::get_option( 'id' );
+ $tz = get_option( 'gmt_offset' );
+ $v = 'ext';
$blog_url = wp_parse_url( site_url() );
- $srv = $blog_url['host'];
- $j = sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION );
+ $srv = $blog_url['host'];
+ $j = sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION );
if ( $wp_the_query->is_single || $wp_the_query->is_page || $wp_the_query->is_posts_page ) {
// Store and reset the queried_object and queried_object_id
// Otherwise, redirect_canonical() will redirect to home_url( '/' ) for show_on_front = page sites where home_url() is not all lowercase.
@@ -211,11 +226,15 @@ function stats_build_view_data() {
// 2. Set show_on_front = page
// 3. Set page_on_front = something
// 4. Visit https://example.com/ !
- $queried_object = ( isset( $wp_the_query->queried_object ) ) ? $wp_the_query->queried_object : null;
- $queried_object_id = ( isset( $wp_the_query->queried_object_id ) ) ? $wp_the_query->queried_object_id : null;
- $post = $wp_the_query->get_queried_object_id();
- $wp_the_query->queried_object = $queried_object;
- $wp_the_query->queried_object_id = $queried_object_id;
+ $queried_object = isset( $wp_the_query->queried_object ) ? $wp_the_query->queried_object : null;
+ $queried_object_id = isset( $wp_the_query->queried_object_id ) ? $wp_the_query->queried_object_id : null;
+ try {
+ $post_obj = $wp_the_query->get_queried_object();
+ $post = $post_obj instanceof WP_Post ? $post_obj->ID : '0';
+ } finally {
+ $wp_the_query->queried_object = $queried_object;
+ $wp_the_query->queried_object_id = $queried_object_id;
+ }
} else {
$post = '0';
}
@@ -223,7 +242,6 @@ function stats_build_view_data() {
return compact( 'v', 'j', 'blog', 'post', 'tz', 'srv' );
}
-
/**
* Stats Footer.
*
@@ -240,22 +258,35 @@ function stats_footer() {
}
+/**
+ * Render the stats footer
+ *
+ * @param array $data Array of data for the JS stats tracker.
+ */
function stats_render_footer( $data ) {
- $script = 'https://stats.wp.com/e-' . gmdate( 'YW' ) . '.js';
+ // phpcs:disable WordPress.WP.EnqueuedResources.NonEnqueuedScript
+ // When there is a way to use defer with enqueue, we can move to it and inline the custom data.
+ $script = 'https://stats.wp.com/e-' . gmdate( 'YW' ) . '.js';
$data_stats_array = stats_array( $data );
$stats_footer = <<<END
-<script type='text/javascript' src='{$script}' async='async' defer='defer'></script>
-<script type='text/javascript'>
+<script src='{$script}' defer></script>
+<script>
_stq = window._stq || [];
_stq.push([ 'view', {{$data_stats_array}} ]);
_stq.push([ 'clickTrackerInit', '{$data['blog']}', '{$data['post']}' ]);
</script>
END;
- print $stats_footer;
+ // phpcs:enable
+ print $stats_footer; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
+/**
+ * Render the stats footer for AMP output.
+ *
+ * @param array $data Array of data for the JS stats tracker.
+ */
function stats_render_amp_footer( $data ) {
$data['host'] = isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) : ''; // input var ok.
$data['rand'] = 'RANDOM'; // AMP placeholder.
@@ -346,7 +377,6 @@ function stats_upgrade_options( $options ) {
'count_roles' => array(),
'blog_id' => Jetpack_Options::get_option( 'id' ),
'do_not_track' => true, // @todo
- 'hide_smile' => true,
);
if ( isset( $options['reg_users'] ) ) {
@@ -361,7 +391,8 @@ function stats_upgrade_options( $options ) {
if ( is_array( $options ) && ! empty( $options ) ) {
$new_options = array_merge( $defaults, $options );
- } else { $new_options = $defaults;
+ } else {
+ $new_options = $defaults;
}
$new_options['version'] = STATS_VERSION;
@@ -370,17 +401,15 @@ function stats_upgrade_options( $options ) {
return false;
}
- stats_update_blog();
-
return $new_options;
}
/**
- * Stats Array.
+ * Creates the "array" string used as part of the JS tracker.
*
* @access public
- * @param mixed $kvs KVS.
- * @return array
+ * @param array $kvs KVS.
+ * @return string
*/
function stats_array( $kvs ) {
/**
@@ -392,8 +421,9 @@ function stats_array( $kvs ) {
*
* @param array $kvs Array of options about the site and page you're on.
*/
- $kvs = apply_filters( 'stats_array', $kvs );
- $kvs = array_map( 'addslashes', $kvs );
+ $kvs = (array) apply_filters( 'stats_array', $kvs );
+ $kvs = array_map( 'addslashes', $kvs );
+ $jskvs = array();
foreach ( $kvs as $k => $v ) {
$jskvs[] = "$k:'$v'";
}
@@ -411,7 +441,7 @@ function stats_admin_menu() {
// If we're at an old Stats URL, redirect to the new one.
// Don't even bother with caps, menu_page_url(), etc. Just do it.
- if ( 'index.php' === $pagenow && isset( $_GET['page'] ) && 'stats' === $_GET['page'] ) {
+ if ( 'index.php' === $pagenow && isset( $_GET['page'] ) && 'stats' === $_GET['page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$redirect_url = str_replace( array( '/wp-admin/index.php?', '/wp-admin/?' ), '/wp-admin/admin.php?', $_SERVER['REQUEST_URI'] );
$relative_pos = strpos( $redirect_url, '/wp-admin/' );
if ( false !== $relative_pos ) {
@@ -441,6 +471,9 @@ function stats_admin_path() {
* @return void
*/
function stats_reports_load() {
+ require_once __DIR__ . '/stats/class-jetpack-stats-upgrade-nudges.php';
+ Jetpack_Stats_Upgrade_Nudges::init();
+
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'postbox' );
wp_enqueue_script( 'underscore' );
@@ -448,7 +481,7 @@ function stats_reports_load() {
Jetpack_Admin_Page::load_wrapper_styles();
add_action( 'admin_print_styles', 'stats_reports_css' );
- if ( isset( $_GET['nojs'] ) && $_GET['nojs'] ) {
+ if ( isset( $_GET['nojs'] ) && $_GET['nojs'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$parsed = wp_parse_url( admin_url() );
// Remember user doesn't want JS.
setcookie( 'stnojs', '1', time() + 172800, $parsed['path'] ); // 2 days.
@@ -457,7 +490,7 @@ function stats_reports_load() {
if ( isset( $_COOKIE['stnojs'] ) && $_COOKIE['stnojs'] ) {
// Detect if JS is on. If so, remove cookie so next page load is via JS.
add_action( 'admin_print_footer_scripts', 'stats_js_remove_stnojs_cookie' );
- } else if ( ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) ) {
+ } elseif ( ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
// Normal page load. Load page content via JS.
add_action( 'admin_print_footer_scripts', 'stats_js_load_page_via_ajax' );
}
@@ -470,9 +503,9 @@ function stats_reports_load() {
* @return void
*/
function stats_reports_css() {
-?>
+ ?>
<style type="text/css">
-#jp-stats-wrap {
+#jp-stats-wrap, #jp-stats-report-bottom {
max-width: 1040px;
margin: 0 auto;
overflow: hidden;
@@ -486,10 +519,9 @@ function stats_reports_css() {
line-height: 64px;
}
</style>
-<?php
+ <?php
}
-
/**
* Detect if JS is on. If so, remove cookie so next page load is via JS.
*
@@ -498,13 +530,13 @@ function stats_reports_css() {
*/
function stats_js_remove_stnojs_cookie() {
$parsed = wp_parse_url( admin_url() );
-?>
+ ?>
<script type="text/javascript">
/* <![CDATA[ */
document.cookie = 'stnojs=0; expires=Wed, 9 Mar 2011 16:55:50 UTC; path=<?php echo esc_js( $parsed['path'] ); ?>';
/* ]]> */
</script>
-<?php
+ <?php
}
/**
@@ -514,23 +546,27 @@ document.cookie = 'stnojs=0; expires=Wed, 9 Mar 2011 16:55:50 UTC; path=<?php ec
* @return void
*/
function stats_js_load_page_via_ajax() {
-?>
+ ?>
<script type="text/javascript">
/* <![CDATA[ */
if ( -1 == document.location.href.indexOf( 'noheader' ) ) {
jQuery( function( $ ) {
$.get( document.location.href + '&noheader', function( responseText ) {
$( '#stats-loading-wrap' ).replaceWith( responseText );
+ $( '#jp-stats-wrap' )[0].dispatchEvent( new Event( 'stats-loaded' ) );
} );
} );
}
/* ]]> */
</script>
-<?php
+ <?php
}
-function jetpack_admin_ui_stats_report_page_wrapper() {
- if( ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) && empty( $_COOKIE['stnojs'] ) ) {
+/**
+ * Jetpack Admin Page Wrapper.
+ */
+function jetpack_admin_ui_stats_report_page_wrapper() {
+ if ( ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) && empty( $_COOKIE['stnojs'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
Jetpack_Admin_Page::wrap_ui( 'stats_reports_page', array( 'is-wide' => true ) );
} else {
stats_reports_page();
@@ -546,132 +582,135 @@ function jetpack_admin_ui_stats_report_page_wrapper() {
*/
function stats_reports_page( $main_chart_only = false ) {
- if ( isset( $_GET['dashboard'] ) ) {
+ if ( isset( $_GET['dashboard'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
return stats_dashboard_widget_content();
}
- $blog_id = stats_get_option( 'blog_id' );
- $domain = Jetpack::build_raw_urls( get_home_url() );
+ $blog_id = stats_get_option( 'blog_id' );
+ $stats_url = Redirect::get_url( 'calypso-stats' );
- $jetpack_admin_url = admin_url() . 'admin.php?page=jetpack';
-
- if ( ! $main_chart_only && ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) && empty( $_COOKIE['stnojs'] ) ) {
+ if ( ! $main_chart_only && ! isset( $_GET['noheader'] ) && empty( $_GET['nojs'] ) && empty( $_COOKIE['stnojs'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$nojs_url = add_query_arg( 'nojs', '1' );
- $http = is_ssl() ? 'https' : 'http';
+ $http = is_ssl() ? 'https' : 'http';
// Loading message. No JS fallback message.
-?>
+ ?>
<div id="jp-stats-wrap">
<div class="wrap">
<h2><?php esc_html_e( 'Site Stats', 'jetpack' ); ?>
<?php
- if ( current_user_can( 'jetpack_manage_modules' ) ) :
- $i18n_headers = jetpack_get_module_i18n( 'stats' );
- ?>
+ if ( current_user_can( 'jetpack_manage_modules' ) ) :
+ $i18n_headers = jetpack_get_module_i18n( 'stats' );
+ ?>
<a
style="font-size:13px;"
href="<?php echo esc_url( admin_url( 'admin.php?page=jetpack#/settings?term=' . rawurlencode( $i18n_headers['name'] ) ) ); ?>"
>
- <?php esc_html_e( 'Configure', 'jetpack' ); ?>
+ <?php esc_html_e( 'Configure', 'jetpack' ); ?>
</a>
- <?php
+ <?php
endif;
+
+ /**
+ * Sets external resource URL.
+ *
+ * @module stats
+ *
+ * @since 1.4.0
+ * @todo Clean up various uses of this filter. It's seemingly filtering different types of images in different places.
+ *
+ * @param string $args URL of external resource.
+ */
+ $static_url = apply_filters( 'jetpack_static_url', "{$http}://en.wordpress.com/i/loading/loading-64.gif" );
?>
</h2>
</div>
<div id="stats-loading-wrap" class="wrap">
- <p class="hide-if-no-js"><img width="32" height="32" alt="<?php esc_attr_e( 'Loading&hellip;', 'jetpack' ); ?>" src="<?php
- echo esc_url(
- /**
- * Sets external resource URL.
- *
- * @module stats
- *
- * @since 1.4.0
- *
- * @param string $args URL of external resource.
- */
- apply_filters( 'jetpack_static_url', "{$http}://en.wordpress.com/i/loading/loading-64.gif" )
- ); ?>" /></p>
- <p style="font-size: 11pt; margin: 0;"><a href="https://wordpress.com/stats/<?php echo esc_attr( $domain ); ?>" target="_blank"><?php esc_html_e( 'View stats on WordPress.com right now', 'jetpack' ); ?></a></p>
+ <p class="hide-if-no-js"><img width="32" height="32" alt="<?php esc_attr_e( 'Loading&hellip;', 'jetpack' ); ?>" src="<?php echo esc_url( $static_url ); ?>" /></p>
+ <p style="font-size: 11pt; margin: 0;"><a href="<?php echo esc_url( $stats_url ); ?>" rel="noopener noreferrer" target="_blank"><?php esc_html_e( 'View stats on WordPress.com right now', 'jetpack' ); ?></a></p>
<p class="hide-if-js"><?php esc_html_e( 'Your Site Stats work better with JavaScript enabled.', 'jetpack' ); ?><br />
<a href="<?php echo esc_url( $nojs_url ); ?>"><?php esc_html_e( 'View Site Stats without JavaScript', 'jetpack' ); ?></a>.</p>
</div>
</div>
-<?php
+ <?php
return;
}
- $day = isset( $_GET['day'] ) && preg_match( '/^\d{4}-\d{2}-\d{2}$/', $_GET['day'] ) ? $_GET['day'] : false;
- $q = array(
+ $day = isset( $_GET['day'] ) && preg_match( '/^\d{4}-\d{2}-\d{2}$/', $_GET['day'] ) ? $_GET['day'] : false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $q = array(
'noheader' => 'true',
- 'proxy' => '',
- 'page' => 'stats',
- 'day' => $day,
- 'blog' => $blog_id,
- 'charset' => get_option( 'blog_charset' ),
- 'color' => get_user_option( 'admin_color' ),
- 'ssl' => is_ssl(),
- 'j' => sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION ),
+ 'proxy' => '',
+ 'page' => 'stats',
+ 'day' => $day,
+ 'blog' => $blog_id,
+ 'charset' => get_option( 'blog_charset' ),
+ 'color' => get_user_option( 'admin_color' ),
+ 'ssl' => is_ssl(),
+ 'j' => sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION ),
);
if ( get_locale() !== 'en_US' ) {
$q['jp_lang'] = get_locale();
}
// Only show the main chart, without extra header data, or metaboxes.
$q['main_chart_only'] = $main_chart_only;
- $args = array(
- 'view' => array( 'referrers', 'postviews', 'searchterms', 'clicks', 'post', 'table' ),
- 'numdays' => 'int',
- 'day' => 'date',
- 'unit' => array( 1, 7, 31, 'human' ),
- 'humanize' => array( 'true' ),
- 'num' => 'int',
- 'summarize' => null,
- 'post' => 'int',
- 'width' => 'int',
- 'height' => 'int',
- 'data' => 'data',
- 'blog_subscribers' => 'int',
+ $args = array(
+ 'view' => array( 'referrers', 'postviews', 'searchterms', 'clicks', 'post', 'table' ),
+ 'numdays' => 'int',
+ 'day' => 'date',
+ 'unit' => array( '1', '7', '31', 'human' ),
+ 'humanize' => array( 'true' ),
+ 'num' => 'int',
+ 'summarize' => null,
+ 'post' => 'int',
+ 'width' => 'int',
+ 'height' => 'int',
+ 'data' => 'data',
+ 'blog_subscribers' => 'int',
'comment_subscribers' => null,
- 'type' => array( 'wpcom', 'email', 'pending' ),
- 'pagenum' => 'int',
+ 'type' => array( 'wpcom', 'email', 'pending' ),
+ 'pagenum' => 'int',
+ 'masterbar' => null,
);
foreach ( $args as $var => $vals ) {
- if ( ! isset( $_REQUEST[$var] ) )
+ if ( ! isset( $_REQUEST[ $var ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
continue;
+ }
if ( is_array( $vals ) ) {
- if ( in_array( $_REQUEST[$var], $vals ) )
- $q[$var] = $_REQUEST[$var];
+ if ( in_array( $_REQUEST[ $var ], $vals, true ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $q[ $var ] = $_REQUEST[ $var ]; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ }
} elseif ( 'int' === $vals ) {
- $q[$var] = intval( $_REQUEST[$var] );
+ $q[ $var ] = (int) $_REQUEST[ $var ]; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
} elseif ( 'date' === $vals ) {
- if ( preg_match( '/^\d{4}-\d{2}-\d{2}$/', $_REQUEST[$var] ) )
- $q[$var] = $_REQUEST[$var];
+ if ( preg_match( '/^\d{4}-\d{2}-\d{2}$/', $_REQUEST[ $var ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $q[ $var ] = $_REQUEST[ $var ]; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ }
} elseif ( null === $vals ) {
- $q[$var] = '';
+ $q[ $var ] = '';
} elseif ( 'data' === $vals ) {
- if ( 'index.php' === substr( $_REQUEST[$var], 0, 9 ) )
- $q[$var] = $_REQUEST[$var];
+ if ( 'index.php' === substr( $_REQUEST[ $var ], 0, 9 ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $q[ $var ] = $_REQUEST[ $var ];// phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ }
}
}
- if ( isset( $_GET['chart'] ) ) {
- if ( preg_match( '/^[a-z0-9-]+$/', $_GET['chart'] ) ) {
- $chart = sanitize_title( $_GET['chart'] );
- $url = 'https://' . STATS_DASHBOARD_SERVER . "/wp-includes/charts/{$chart}.php";
+ if ( isset( $_GET['chart'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( preg_match( '/^[a-z0-9-]+$/', $_GET['chart'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $chart = sanitize_title( $_GET['chart'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $url = 'https://' . STATS_DASHBOARD_SERVER . "/wp-includes/charts/{$chart}.php";
}
} else {
- $url = 'https://' . STATS_DASHBOARD_SERVER . "/wp-admin/index.php";
+ $url = 'https://' . STATS_DASHBOARD_SERVER . '/wp-admin/index.php';
}
- $url = add_query_arg( $q, $url );
- $method = 'GET';
+ $url = add_query_arg( $q, $url );
+ $method = 'GET';
$timeout = 90;
- $user_id = JETPACK_MASTER_USER; // means send the wp.com user_id
+ $user_id = 0; // Means use the blog token.
- $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
+ $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
$get_code = wp_remote_retrieve_response_code( $get );
- if ( is_wp_error( $get ) || ( 2 !== intval( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
+ if ( is_wp_error( $get ) || ( 2 !== (int) ( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
stats_print_wp_remote_error( $get, $url );
} else {
if ( ! empty( $get['headers']['content-type'] ) ) {
@@ -680,7 +719,7 @@ function stats_reports_page( $main_chart_only = false ) {
$img = $get['body'];
header( 'Content-Type: ' . $type );
header( 'Content-Length: ' . strlen( $img ) );
- echo $img;
+ echo $img; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
die();
}
}
@@ -688,15 +727,15 @@ function stats_reports_page( $main_chart_only = false ) {
$body = stats_convert_chart_urls( $body );
$body = stats_convert_image_urls( $body );
$body = stats_convert_admin_urls( $body );
- echo $body;
+ echo $body; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
- if ( isset( $_GET['page'] ) && 'stats' === $_GET['page'] && ! isset( $_GET['chart'] ) ) {
+ if ( isset( $_GET['page'] ) && 'stats' === $_GET['page'] && ! isset( $_GET['chart'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
$tracking = new Tracking();
- $tracking->record_user_event( 'wpa_page_view', array( 'path' => 'old_stats' ) );
+ $tracking->record_user_event( 'wpa_page_view', array( 'path' => 'old_stats' ) );
}
- if ( isset( $_GET['noheader'] ) ) {
+ if ( isset( $_GET['noheader'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
die;
}
}
@@ -720,7 +759,7 @@ function stats_convert_admin_urls( $html ) {
* @return string
*/
function stats_convert_image_urls( $html ) {
- $url = set_url_scheme( 'https://' . STATS_DASHBOARD_SERVER );
+ $url = set_url_scheme( 'https://' . STATS_DASHBOARD_SERVER );
$html = preg_replace( '|(["\'])(/i/stats.+)\\1|', '$1' . $url . '$2$1', $html );
return $html;
}
@@ -730,7 +769,7 @@ function stats_convert_image_urls( $html ) {
*
* @since 5.6.0
*
- * @param array $matches The matches resulting from the preg_replace_callback call.
+ * @param array $matches The matches resulting from the preg_replace_callback call.
* @return string The admin url for the chart.
*/
function jetpack_stats_convert_chart_urls_callback( $matches ) {
@@ -769,10 +808,10 @@ function stats_convert_post_titles( $html ) {
}
$posts = get_posts(
array(
- 'include' => implode( ',', $matches[1] ),
- 'post_type' => 'any',
- 'post_status' => 'any',
- 'numberposts' => -1,
+ 'include' => implode( ',', $matches[1] ),
+ 'post_type' => 'any',
+ 'post_status' => 'any',
+ 'numberposts' => -1,
'suppress_filters' => false,
)
);
@@ -793,23 +832,23 @@ function stats_convert_post_titles( $html ) {
function stats_convert_post_title( $matches ) {
global $stats_posts;
$post_id = $matches[1];
- if ( isset( $stats_posts[$post_id] ) )
+ if ( isset( $stats_posts[ $post_id ] ) ) {
return '<a href="' . get_permalink( $post_id ) . '" target="_blank">' . get_the_title( $post_id ) . '</a>';
+ }
return $matches[0];
}
/**
- * Stats Hide Smile.
+ * CSS to hide the tracking pixel smiley.
+ * It is now hidden for everyone (used to be visible if you had set the hide_smile option).
*
* @access public
* @return void
*/
function stats_hide_smile_css() {
- $options = stats_get_options();
- if ( isset( $options['hide_smile'] ) && $options['hide_smile'] ) {
-?>
-<style type='text/css'>img#wpstats{display:none}</style><?php
- }
+ ?>
+<style type='text/css'>img#wpstats{display:none}</style>
+ <?php
}
/**
@@ -819,18 +858,20 @@ function stats_hide_smile_css() {
* @return void
*/
function stats_admin_bar_head() {
- if ( ! stats_get_option( 'admin_bar' ) )
+ if ( ! stats_get_option( 'admin_bar' ) ) {
return;
+ }
- if ( ! current_user_can( 'view_stats' ) )
+ if ( ! current_user_can( 'view_stats' ) ) {
return;
+ }
if ( ! is_admin_bar_showing() ) {
return;
}
add_action( 'admin_bar_menu', 'stats_admin_bar_menu', 100 );
-?>
+ ?>
<style data-ampdevmode type='text/css'>
#wpadminbar .quicklinks li#wp-admin-bar-stats {
@@ -857,7 +898,30 @@ function stats_admin_bar_head() {
border: none;
}
</style>
-<?php
+ <?php
+}
+
+/**
+ * Gets the image source of the given stats chart.
+ *
+ * @param string $chart Name of the chart.
+ * @param array $args Extra list of argument to use in the image source.
+ * @return string An image source.
+ */
+function stats_get_image_chart_src( $chart, $args = array() ) {
+ $url = add_query_arg( 'page', 'stats', admin_url( 'admin.php' ) );
+
+ return add_query_arg(
+ array_merge(
+ array(
+ 'noheader' => '',
+ 'proxy' => '',
+ 'chart' => $chart,
+ ),
+ $args
+ ),
+ $url
+ );
}
/**
@@ -868,18 +932,14 @@ function stats_admin_bar_head() {
* @return void
*/
function stats_admin_bar_menu( &$wp_admin_bar ) {
- $url = add_query_arg( 'page', 'stats', admin_url( 'admin.php' ) ); // no menu_page_url() blog-side.
-
- $img_src = esc_attr( add_query_arg( array( 'noheader' => '', 'proxy' => '', 'chart' => 'admin-bar-hours-scale' ), $url ) );
- $img_src_2x = esc_attr( add_query_arg( array( 'noheader' => '', 'proxy' => '', 'chart' => 'admin-bar-hours-scale-2x' ), $url ) );
-
- $alt = esc_attr( __( 'Stats', 'jetpack' ) );
-
- $title = esc_attr( __( 'Views over 48 hours. Click for more Site Stats.', 'jetpack' ) );
+ $img_src = esc_attr( stats_get_image_chart_src( 'admin-bar-hours-scale' ) );
+ $img_src_2x = esc_attr( stats_get_image_chart_src( 'admin-bar-hours-scale-2x' ) );
+ $alt = esc_attr( __( 'Stats', 'jetpack' ) );
+ $title = esc_attr( __( 'Views over 48 hours. Click for more Site Stats.', 'jetpack' ) );
$menu = array(
'id' => 'stats',
- 'href' => $url,
+ 'href' => add_query_arg( 'page', 'stats', admin_url( 'admin.php' ) ), // no menu_page_url() blog-side.
'title' => "<div><img src='$img_src' srcset='$img_src 1x, $img_src_2x 2x' width='112' height='24' alt='$alt' title='$title'></div>",
);
@@ -887,13 +947,19 @@ function stats_admin_bar_menu( &$wp_admin_bar ) {
}
/**
+ *
+ * Deprecated. The stats module should not update blog details. This is handled by Sync.
+ *
* Stats Update Blog.
*
* @access public
* @return void
+ *
+ * @deprecated since 10.3.
*/
function stats_update_blog() {
- Jetpack::xmlrpc_async_call( 'jetpack.updateBlog', stats_get_blog() );
+ deprecated_function( __METHOD__, 'jetpack-10.3' );
+ XMLRPC_Async_Call::add_call( 'jetpack.updateBlog', 0, stats_get_blog() );
}
/**
@@ -962,37 +1028,26 @@ function stats_xmlrpc_methods( $methods ) {
}
/**
- * Register Stats Dashboard Widget.
- *
- * @access public
- * @return void
- */
-function stats_register_dashboard_widget() {
- if ( ! current_user_can( 'view_stats' ) )
- return;
-
- // With wp_dashboard_empty: we load in the content after the page load via JS.
- wp_add_dashboard_widget( 'dashboard_stats', __( 'Site Stats', 'jetpack' ), 'wp_dashboard_empty', 'stats_dashboard_widget_control' );
-
- add_action( 'admin_head', 'stats_dashboard_head' );
-}
-
-/**
* Stats Dashboard Widget Options.
*
* @access public
* @return array
*/
function stats_dashboard_widget_options() {
- $defaults = array( 'chart' => 1, 'top' => 1, 'search' => 7 );
- if ( ( ! $options = get_option( 'stats_dashboard_widget' ) ) || ! is_array( $options ) ) {
+ $defaults = array(
+ 'chart' => 1,
+ 'top' => 1,
+ 'search' => 7,
+ );
+ $options = get_option( 'stats_dashboard_widget' );
+ if ( ( ! $options ) || ! is_array( $options ) ) {
$options = array();
}
// Ignore obsolete option values.
$intervals = array( 1, 7, 31, 90, 365 );
foreach ( array( 'top', 'search' ) as $key ) {
- if ( isset( $options[ $key ] ) && ! in_array( $options[ $key ], $intervals ) ) {
+ if ( isset( $options[ $key ] ) && ! in_array( (int) $options[ $key ], $intervals, true ) ) {
unset( $options[ $key ] );
}
}
@@ -1008,47 +1063,48 @@ function stats_dashboard_widget_options() {
*/
function stats_dashboard_widget_control() {
$periods = array(
- '1' => __( 'day', 'jetpack' ),
- '7' => __( 'week', 'jetpack' ),
+ '1' => __( 'day', 'jetpack' ),
+ '7' => __( 'week', 'jetpack' ),
'31' => __( 'month', 'jetpack' ),
);
$intervals = array(
- '1' => __( 'the past day', 'jetpack' ),
- '7' => __( 'the past week', 'jetpack' ),
- '31' => __( 'the past month', 'jetpack' ),
- '90' => __( 'the past quarter', 'jetpack' ),
+ '1' => __( 'the past day', 'jetpack' ),
+ '7' => __( 'the past week', 'jetpack' ),
+ '31' => __( 'the past month', 'jetpack' ),
+ '90' => __( 'the past quarter', 'jetpack' ),
'365' => __( 'the past year', 'jetpack' ),
);
- $defaults = array(
- 'top' => 1,
+ $defaults = array(
+ 'top' => 1,
'search' => 7,
);
$options = stats_dashboard_widget_options();
- if ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) && isset( $_POST['widget_id'] ) && 'dashboard_stats' === $_POST['widget_id'] ) {
- if ( isset( $periods[ $_POST['chart'] ] ) ) {
- $options['chart'] = $_POST['chart'];
+ if ( 'post' === strtolower( $_SERVER['REQUEST_METHOD'] ) && isset( $_POST['widget_id'] ) && 'dashboard_stats' === $_POST['widget_id'] ) { // phpcs:ignore WordPress.Security.NonceVerification
+ if ( isset( $periods[ $_POST['chart'] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
+ $options['chart'] = $_POST['chart']; // phpcs:ignore WordPress.Security.NonceVerification
}
foreach ( array( 'top', 'search' ) as $key ) {
- if ( isset( $intervals[ $_POST[ $key ] ] ) ) {
- $options[ $key ] = $_POST[ $key ];
- } else { $options[ $key ] = $defaults[ $key ];
+ if ( isset( $intervals[ $_POST[ $key ] ] ) ) { // phpcs:ignore WordPress.Security.NonceVerification
+ $options[ $key ] = $_POST[ $key ]; // phpcs:ignore WordPress.Security.NonceVerification
+ } else {
+ $options[ $key ] = $defaults[ $key ];
}
}
update_option( 'stats_dashboard_widget', $options );
}
-?>
+ ?>
<p>
- <label for="chart"><?php esc_html_e( 'Chart stats by' , 'jetpack' ); ?></label>
+ <label for="chart"><?php esc_html_e( 'Chart stats by', 'jetpack' ); ?></label>
<select id="chart" name="chart">
<?php
foreach ( $periods as $val => $label ) {
-?>
- <option value="<?php echo $val; ?>"<?php selected( $val, $options['chart'] ); ?>><?php echo esc_html( $label ); ?></option>
+ ?>
+ <option value="<?php echo esc_attr( $val ); ?>"<?php selected( $val, $options['chart'] ); ?>><?php echo esc_html( $label ); ?></option>
<?php
}
-?>
+ ?>
</select>.
</p>
@@ -1057,11 +1113,11 @@ function stats_dashboard_widget_control() {
<select id="top" name="top">
<?php
foreach ( $intervals as $val => $label ) {
-?>
- <option value="<?php echo $val; ?>"<?php selected( $val, $options['top'] ); ?>><?php echo esc_html( $label ); ?></option>
+ ?>
+ <option value="<?php echo esc_attr( $val ); ?>"<?php selected( $val, $options['top'] ); ?>><?php echo esc_html( $label ); ?></option>
<?php
}
-?>
+ ?>
</select>.
</p>
@@ -1070,11 +1126,11 @@ function stats_dashboard_widget_control() {
<select id="search" name="search">
<?php
foreach ( $intervals as $val => $label ) {
-?>
- <option value="<?php echo $val; ?>"<?php selected( $val, $options['search'] ); ?>><?php echo esc_html( $label ); ?></option>
+ ?>
+ <option value="<?php echo esc_attr( $val ); ?>"<?php selected( $val, $options['search'] ); ?>><?php echo esc_html( $label ); ?></option>
<?php
}
-?>
+ ?>
</select>.
</p>
<?php
@@ -1087,79 +1143,33 @@ function stats_dashboard_widget_control() {
* @return void
*/
function stats_jetpack_dashboard_widget() {
-?>
+ ?>
<form id="stats_dashboard_widget_control" action="<?php echo esc_url( admin_url() ); ?>" method="post">
<?php stats_dashboard_widget_control(); ?>
<?php wp_nonce_field( 'edit-dashboard-widget_dashboard_stats', 'dashboard-widget-nonce' ); ?>
<input type="hidden" name="widget_id" value="dashboard_stats" />
<?php submit_button( __( 'Submit', 'jetpack' ) ); ?>
</form>
- <span class="js-toggle-stats_dashboard_widget_control">
- <?php esc_html_e( 'Configure', 'jetpack' ); ?>
- </span>
+ <button type="button" class="handlediv js-toggle-stats_dashboard_widget_control" aria-expanded="true">
+ <span class="screen-reader-text"><?php esc_html_e( 'Configure', 'jetpack' ); ?></span>
+ <span class="toggle-indicator" aria-hidden="true"></span>
+ </button>
<div id="dashboard_stats">
<div class="inside">
<div style="height: 250px;"></div>
</div>
</div>
- <script>
- jQuery(document).ready(function($){
- var $toggle = $('.js-toggle-stats_dashboard_widget_control');
-
- $toggle.parent().prev().append( $toggle );
- $toggle.show().click(function(e){
- e.preventDefault();
- e.stopImmediatePropagation();
- $(this).parent().toggleClass('controlVisible');
- $('#stats_dashboard_widget_control').slideToggle();
- });
- });
- </script>
- <style>
- .js-toggle-stats_dashboard_widget_control {
- display: none;
- float: right;
- margin-top: 0.2em;
- font-weight: 400;
- color: #444;
- font-size: .8em;
- text-decoration: underline;
- cursor: pointer;
- }
- #stats_dashboard_widget_control {
- display: none;
- padding: 0 10px;
- overflow: hidden;
- }
- #stats_dashboard_widget_control .button-primary {
- float: right;
- }
- #dashboard_stats {
- box-sizing: border-box;
- width: 100%;
- padding: 0 10px;
- }
- </style>
<?php
}
/**
- * Register Stats Widget Control Callback.
- *
- * @access public
- * @return void
- */
-function stats_register_widget_control_callback() {
- $GLOBALS['wp_dashboard_control_callbacks']['dashboard_stats'] = 'stats_dashboard_widget_control';
-}
-
-/**
* JavaScript and CSS for dashboard widget.
*
* @access public
* @return void
*/
-function stats_dashboard_head() { ?>
+function stats_dashboard_head() {
+ ?>
<script type="text/javascript">
/* <![CDATA[ */
jQuery( function($) {
@@ -1188,82 +1198,25 @@ jQuery( function($) {
jQuery( window ).one( 'resize', function() {
jQuery( '#stat-chart' ).css( 'width', 'auto' );
} );
+
+
+ // Widget settings toggle container.
+ var toggle = $( '.js-toggle-stats_dashboard_widget_control' );
+
+ // Move the toggle in the widget header.
+ toggle.appendTo( '#jetpack_summary_widget .handle-actions' );
+
+ // Toggle settings when clicking on it.
+ toggle.show().click( function( e ) {
+ e.preventDefault();
+ e.stopImmediatePropagation();
+ $( this ).parent().toggleClass( 'controlVisible' );
+ $( '#stats_dashboard_widget_control' ).slideToggle();
+ } );
} );
/* ]]> */
</script>
-<style type="text/css">
-/* <![CDATA[ */
-#stat-chart {
- background: none !important;
-}
-#dashboard_stats .inside {
- margin: 10px 0 0 0 !important;
-}
-#dashboard_stats #stats-graph {
- margin: 0;
-}
-#stats-info {
- border-top: 1px solid #dfdfdf;
- margin: 7px -10px 0 -10px;
- padding: 10px;
- background: #fcfcfc;
- -moz-box-shadow:inset 0 1px 0 #fff;
- -webkit-box-shadow:inset 0 1px 0 #fff;
- box-shadow:inset 0 1px 0 #fff;
- overflow: hidden;
- border-radius: 0 0 2px 2px;
- -webkit-border-radius: 0 0 2px 2px;
- -moz-border-radius: 0 0 2px 2px;
- -khtml-border-radius: 0 0 2px 2px;
-}
-#stats-info #top-posts, #stats-info #top-search {
- float: left;
- width: 50%;
-}
-#stats-info #top-posts {
- padding-right: 3%;
-}
-#top-posts .stats-section-inner p {
- white-space: nowrap;
- overflow: hidden;
-}
-#top-posts .stats-section-inner p a {
- overflow: hidden;
- text-overflow: ellipsis;
-}
-#stats-info div#active {
- border-top: 1px solid #dfdfdf;
- margin: 0 -10px;
- padding: 10px 10px 0 10px;
- -moz-box-shadow:inset 0 1px 0 #fff;
- -webkit-box-shadow:inset 0 1px 0 #fff;
- box-shadow:inset 0 1px 0 #fff;
- overflow: hidden;
-}
-#top-search p {
- color: #999;
-}
-#stats-info h3 {
- font-size: 1em;
- margin: 0 0 .5em 0 !important;
-}
-#stats-info p {
- margin: 0 0 .25em;
- color: #999;
-}
-#stats-info p.widget-loading {
- margin: 1em 0 0;
- color: #333;
-}
-#stats-info p a {
- display: block;
-}
-#stats-info p a.button {
- display: inline;
-}
-/* ]]> */
-</style>
-<?php
+ <?php
}
/**
@@ -1273,61 +1226,65 @@ jQuery( function($) {
* @return void
*/
function stats_dashboard_widget_content() {
- if ( ! isset( $_GET['width'] ) || ( ! $width = (int) ( $_GET['width'] / 2 ) ) || $width < 250 ) {
+ $width = isset( $_GET['width'] ) ? (int) ( $_GET['width'] / 2 ) : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $height = isset( $_GET['height'] ) ? (int) $_GET['height'] - 36 : null; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! $width || $width < 250 ) {
$width = 370;
}
- if ( ! isset( $_GET['height'] ) || ( ! $height = (int) $_GET['height'] - 36 ) || $height < 230 ) {
+ if ( ! $height || $height < 230 ) {
$height = 180;
}
- $_width = $width - 5;
- $_height = $height - ( $GLOBALS['is_winIE'] ? 16 : 5 ); // Hack!
+ $_width = $width - 5;
+ $_height = $height - 5;
$options = stats_dashboard_widget_options();
$blog_id = Jetpack_Options::get_option( 'id' );
$q = array(
'noheader' => 'true',
- 'proxy' => '',
- 'blog' => $blog_id,
- 'page' => 'stats',
- 'chart' => '',
- 'unit' => $options['chart'],
- 'color' => get_user_option( 'admin_color' ),
- 'width' => $_width,
- 'height' => $_height,
- 'ssl' => is_ssl(),
- 'j' => sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION ),
+ 'proxy' => '',
+ 'blog' => $blog_id,
+ 'page' => 'stats',
+ 'chart' => '',
+ 'unit' => $options['chart'],
+ 'color' => get_user_option( 'admin_color' ),
+ 'width' => $_width,
+ 'height' => $_height,
+ 'ssl' => is_ssl(),
+ 'j' => sprintf( '%s:%s', JETPACK__API_VERSION, JETPACK__VERSION ),
);
- $url = 'https://' . STATS_DASHBOARD_SERVER . "/wp-admin/index.php";
+ $url = 'https://' . STATS_DASHBOARD_SERVER . '/wp-admin/index.php';
- $url = add_query_arg( $q, $url );
- $method = 'GET';
+ $url = add_query_arg( $q, $url );
+ $method = 'GET';
$timeout = 90;
- $user_id = JETPACK_MASTER_USER;
+ $user_id = 0; // Means use the blog token.
- $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
+ $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
$get_code = wp_remote_retrieve_response_code( $get );
- if ( is_wp_error( $get ) || ( 2 !== intval( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
+ if ( is_wp_error( $get ) || ( 2 !== (int) ( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
stats_print_wp_remote_error( $get, $url );
} else {
$body = stats_convert_post_titles( $get['body'] );
$body = stats_convert_chart_urls( $body );
$body = stats_convert_image_urls( $body );
- echo $body;
+ echo $body; // phpcs:ignore WordPress.Security.EscapeOutput
}
$post_ids = array();
- $csv_end_date = date( 'Y-m-d', current_time( 'timestamp' ) );
- $csv_args = array( 'top' => "&limit=8&end=$csv_end_date", 'search' => "&limit=5&end=$csv_end_date" );
- /* Translators: Stats dashboard widget postviews list: "$post_title $views Views". */
- $printf = __( '%1$s %2$s Views' , 'jetpack' );
+ $csv_end_date = current_time( 'Y-m-d' );
+ $csv_args = array(
+ 'top' => "&limit=8&end=$csv_end_date",
+ 'search' => "&limit=5&end=$csv_end_date",
+ );
- foreach ( $top_posts = stats_get_csv( 'postviews', "days=$options[top]$csv_args[top]" ) as $i => $post ) {
+ $top_posts = stats_get_csv( 'postviews', "days=$options[top]$csv_args[top]" );
+ foreach ( $top_posts as $i => $post ) {
if ( 0 === $post['post_id'] ) {
- unset( $top_posts[$i] );
+ unset( $top_posts[ $i ] );
continue;
}
$post_ids[] = $post['post_id'];
@@ -1336,73 +1293,82 @@ function stats_dashboard_widget_content() {
// Cache.
get_posts( array( 'include' => join( ',', array_unique( $post_ids ) ) ) );
- $searches = array();
- foreach ( $search_terms = stats_get_csv( 'searchterms', "days=$options[search]$csv_args[search]" ) as $search_term ) {
+ $searches = array();
+ $search_terms = stats_get_csv( 'searchterms', "days=$options[search]$csv_args[search]" );
+ foreach ( $search_terms as $search_term ) {
if ( 'encrypted_search_terms' === $search_term['searchterm'] ) {
continue;
}
$searches[] = esc_html( $search_term['searchterm'] );
}
-?>
+ ?>
<div id="stats-info">
<div id="top-posts" class='stats-section'>
<div class="stats-section-inner">
- <h3 class="heading"><?php esc_html_e( 'Top Posts' , 'jetpack' ); ?></h3>
+ <h3 class="heading"><?php esc_html_e( 'Top Posts', 'jetpack' ); ?></h3>
<?php
- if ( empty( $top_posts ) ) {
-?>
- <p class="nothing"><?php esc_html_e( 'Sorry, nothing to report.', 'jetpack' ); ?></p>
+ if ( empty( $top_posts ) ) {
+ ?>
+ <p class="nothing"><?php esc_html_e( 'Sorry, nothing to report.', 'jetpack' ); ?></p>
<?php
- } else {
- foreach ( $top_posts as $post ) {
- if ( ! get_post( $post['post_id'] ) ) {
- continue;
- }
-?>
- <p><?php printf(
- $printf,
- '<a href="' . get_permalink( $post['post_id'] ) . '">' . get_the_title( $post['post_id'] ) . '</a>',
- number_format_i18n( $post['views'] )
- ); ?></p>
+ } else {
+ foreach ( $top_posts as $post ) {
+ if ( ! get_post( $post['post_id'] ) ) {
+ continue;
+ }
+ ?>
+ <p>
<?php
+ printf(
+ esc_html(
+ /* Translators: Stats dashboard widget Post list with view count: "Post Title 1 View (or Views if plural)". */
+ _n( '%1$s %2$s View', '%1$s %2$s Views', $post['views'], 'jetpack' )
+ ),
+ '<a href="' . esc_url( get_permalink( $post['post_id'] ) ) . '">' . esc_html( get_the_title( $post['post_id'] ) ) . '</a>',
+ esc_html( number_format_i18n( $post['views'] ) )
+ );
+ ?>
+ </p>
+ <?php
+ }
}
- }
-?>
+ ?>
</div>
</div>
<div id="top-search" class='stats-section'>
<div class="stats-section-inner">
- <h3 class="heading"><?php esc_html_e( 'Top Searches' , 'jetpack' ); ?></h3>
+ <h3 class="heading"><?php esc_html_e( 'Top Searches', 'jetpack' ); ?></h3>
<?php
- if ( empty( $searches ) ) {
-?>
- <p class="nothing"><?php esc_html_e( 'Sorry, nothing to report.', 'jetpack' ); ?></p>
+ if ( empty( $searches ) ) {
+ ?>
+ <p class="nothing"><?php esc_html_e( 'Sorry, nothing to report.', 'jetpack' ); ?></p>
<?php
- } else {
- foreach ( $searches as $search_term_item ) {
- printf(
- '<p>%s</p>',
- $search_term_item
- );
+ } else {
+ foreach ( $searches as $search_term_item ) {
+ printf(
+ '<p>%s</p>',
+ esc_html( $search_term_item )
+ );
+ }
}
- }
-?>
+ ?>
</div>
</div>
</div>
<div class="clear"></div>
<div class="stats-view-all">
-<?php
+ <?php
+ $stats_day_url = Redirect::get_url( 'calypso-stats-day' );
printf(
'<a class="button" target="_blank" rel="noopener noreferrer" href="%1$s">%2$s</a>',
- esc_url( "https://wordpress.com/stats/day/" . Jetpack::build_raw_urls( get_home_url() ) ),
+ esc_url( $stats_day_url ),
esc_html__( 'View all stats', 'jetpack' )
);
-?>
+ ?>
</div>
<div class="clear"></div>
-<?php
+ <?php
exit;
}
@@ -1415,45 +1381,57 @@ function stats_dashboard_widget_content() {
* @return void
*/
function stats_print_wp_remote_error( $get, $url ) {
- $state_name = 'stats_remote_error_' . substr( md5( $url ), 0, 8 );
+ $state_name = 'stats_remote_error_' . substr( md5( $url ), 0, 8 );
$previous_error = Jetpack::state( $state_name );
- $error = md5( serialize( compact( 'get', 'url' ) ) );
+ $error = md5( wp_json_encode( compact( 'get', 'url' ) ) );
Jetpack::state( $state_name, $error );
if ( $error !== $previous_error ) {
-?>
+ ?>
<div class="wrap">
<p><?php esc_html_e( 'We were unable to get your stats just now. Please reload this page to try again.', 'jetpack' ); ?></p>
</div>
-<?php
+ <?php
return;
}
-?>
+ ?>
<div class="wrap">
- <p><?php printf( __( 'We were unable to get your stats just now. Please reload this page to try again. If this error persists, please <a href="%1$s" target="_blank">contact support</a>. In your report please include the information below.', 'jetpack' ), 'https://support.wordpress.com/contact/?jetpack=needs-service' ); ?></p>
+ <p>
+ <?php
+ printf(
+ /* translators: placeholder is an a href for a support site. */
+ esc_html__( 'We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact %1$s. In your report, please include the information below.', 'jetpack' ),
+ sprintf(
+ '<a href="https://support.wordpress.com/contact/?jetpack=needs-service">%s</a>',
+ esc_html__( 'Jetpack Support', 'jetpack' )
+ )
+ );
+ ?>
+ </p>
<pre>
User Agent: "<?php echo esc_html( $_SERVER['HTTP_USER_AGENT'] ); ?>"
- Page URL: "http<?php echo (is_ssl()?'s':'') . '://' . esc_html( $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); ?>"
+ Page URL: "http<?php echo ( is_ssl() ? 's' : '' ) . '://' . esc_html( $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); ?>"
API URL: "<?php echo esc_url( $url ); ?>"
-<?php
-if ( is_wp_error( $get ) ) {
- foreach ( $get->get_error_codes() as $code ) {
- foreach ( $get->get_error_messages( $code ) as $message ) {
-?>
-<?php print $code . ': "' . $message . '"' ?>
+ <?php
+ if ( is_wp_error( $get ) ) {
+ foreach ( $get->get_error_codes() as $code ) {
+ foreach ( $get->get_error_messages( $code ) as $message ) {
+ ?>
+ <?php print esc_html( $code ) . ': "' . esc_html( $message ) . '"'; ?>
-<?php
+ <?php
+ }
}
- }
-} else {
- $get_code = wp_remote_retrieve_response_code( $get );
- $content_length = strlen( wp_remote_retrieve_body( $get ) );
-?>
-Response code: "<?php print $get_code ?>"
-Content length: "<?php print $content_length ?>"
+ } else {
+ $get_code = wp_remote_retrieve_response_code( $get );
+ $content_length = strlen( wp_remote_retrieve_body( $get ) );
+ ?>
+Response code: "<?php print esc_html( $get_code ); ?>"
+Content length: "<?php print esc_html( $content_length ); ?>"
-<?php
-}
- ?></pre>
+ <?php
+ }
+ ?>
+ </pre>
</div>
<?php
}
@@ -1488,10 +1466,16 @@ Content length: "<?php print $content_length ?>"
* }
*/
function stats_get_csv( $table, $args = null ) {
- $defaults = array( 'end' => false, 'days' => false, 'limit' => 3, 'post_id' => false, 'summarize' => '' );
+ $defaults = array(
+ 'end' => false,
+ 'days' => false,
+ 'limit' => 3,
+ 'post_id' => false,
+ 'summarize' => '',
+ );
- $args = wp_parse_args( $args, $defaults );
- $args['table'] = $table;
+ $args = wp_parse_args( $args, $defaults );
+ $args['table'] = $table;
$args['blog_id'] = Jetpack_Options::get_option( 'id' );
$stats_csv_url = add_query_arg( $args, 'https://stats.wordpress.com/csv.php' );
@@ -1515,7 +1499,8 @@ function stats_get_csv( $table, $args = null ) {
$stats_rows = array();
do {
- if ( ! $stats = stats_get_remote_csv( $stats_csv_url ) ) {
+ $stats = stats_get_remote_csv( $stats_csv_url );
+ if ( ! $stats ) {
break;
}
@@ -1557,13 +1542,13 @@ function stats_get_csv( $table, $args = null ) {
* @return array
*/
function stats_get_remote_csv( $url ) {
- $method = 'GET';
+ $method = 'GET';
$timeout = 90;
- $user_id = JETPACK_MASTER_USER;
+ $user_id = 0; // Blog token.
- $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
+ $get = Client::remote_request( compact( 'url', 'method', 'timeout', 'user_id' ) );
$get_code = wp_remote_retrieve_response_code( $get );
- if ( is_wp_error( $get ) || ( 2 !== intval( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
+ if ( is_wp_error( $get ) || ( 2 !== (int) ( $get_code / 100 ) && 304 !== $get_code ) || empty( $get['body'] ) ) {
return array(); // @todo: return an error?
} else {
return stats_str_getcsv( $get['body'] );
@@ -1571,31 +1556,16 @@ function stats_get_remote_csv( $url ) {
}
/**
- * Rather than parsing the csv and its special cases, we create a new file and do fgetcsv on it.
+ * Recursively run str_getcsv on the stats csv.
+ *
+ * @since 9.7.0 Remove custom handling since str_getcsv is available on all servers running this now.
*
- * @access public
* @param mixed $csv CSV.
* @return array.
*/
function stats_str_getcsv( $csv ) {
- if ( function_exists( 'str_getcsv' ) ) {
- $lines = str_getcsv( $csv, "\n" ); // phpcs:ignore PHPCompatibility.FunctionUse.NewFunctions.str_getcsvFound
- return array_map( 'str_getcsv', $lines );
- }
- if ( ! $temp = tmpfile() ) { // The tmpfile() automatically unlinks.
- return false;
- }
-
- $data = array();
-
- fwrite( $temp, $csv, strlen( $csv ) );
- fseek( $temp, 0 );
- while ( false !== $row = fgetcsv( $temp, 2000 ) ) {
- $data[] = $row;
- }
- fclose( $temp );
-
- return $data;
+ $lines = str_getcsv( $csv, "\n" );
+ return array_map( 'str_getcsv', $lines );
}
/**
@@ -1622,7 +1592,7 @@ function stats_get_from_restapi( $args = array(), $resource = '' ) {
$endpoint = jetpack_stats_api_path( $resource );
$api_version = '1.1';
$args = wp_parse_args( $args, array() );
- $cache_key = md5( implode( '|', array( $endpoint, $api_version, serialize( $args ) ) ) );
+ $cache_key = md5( implode( '|', array( $endpoint, $api_version, wp_json_encode( $args ) ) ) );
$transient_name = "jetpack_restapi_stats_cache_{$cache_key}";
@@ -1631,7 +1601,7 @@ function stats_get_from_restapi( $args = array(), $resource = '' ) {
// Return or expire this key.
if ( $stats_cache ) {
$time = key( $stats_cache );
- $data = $stats_cache[ $time ]; // WP_Error or string (JSON encoded object)
+ $data = $stats_cache[ $time ]; // WP_Error or string (JSON encoded object).
if ( is_wp_error( $data ) ) {
return $data;
@@ -1643,14 +1613,14 @@ function stats_get_from_restapi( $args = array(), $resource = '' ) {
// Do the dirty work.
$response = Client::wpcom_json_api_request_as_blog( $endpoint, $api_version, $args );
if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
- // WP_Error
+ // WP_Error.
$data = is_wp_error( $response ) ? $response : new WP_Error( 'stats_error' );
- // WP_Error
+ // WP_Error.
$return = $data;
} else {
- // string (JSON encoded object)
+ // string (JSON encoded object).
$data = wp_remote_retrieve_body( $response );
- // object (rare: null on JSON failure)
+ // object (rare: null on JSON failure).
$return = json_decode( $data );
}
@@ -1684,12 +1654,13 @@ function jetpack_stats_load_admin_css() {
*
* @return mixed
*/
-function jetpack_stats_post_table( $columns ) { // Adds a stats link on the edit posts page
- if ( ! current_user_can( 'view_stats' ) || ! Jetpack::is_user_connected() ) {
+function jetpack_stats_post_table( $columns ) {
+ // Adds a stats link on the edit posts page.
+ if ( ! current_user_can( 'view_stats' ) || ! ( new Connection_Manager( 'jetpack' ) )->is_user_connected() ) {
return $columns;
}
- // Array-Fu to add before comments
- $pos = array_search( 'comments', array_keys( $columns ) );
+ // Array-Fu to add before comments.
+ $pos = array_search( 'comments', array_keys( $columns ), true );
if ( ! is_int( $pos ) ) {
return $columns;
}
@@ -1710,16 +1681,22 @@ function jetpack_stats_post_table( $columns ) { // Adds a stats link on the edit
* @return mixed
*/
function jetpack_stats_post_table_cell( $column, $post_id ) {
- if ( 'stats' == $column ) {
- if ( 'publish' != get_post_status( $post_id ) ) {
+ if ( 'stats' === $column ) {
+ if ( 'publish' !== get_post_status( $post_id ) ) {
printf(
'<span aria-hidden="true">—</span><span class="screen-reader-text">%s</span>',
esc_html__( 'No stats', 'jetpack' )
);
} else {
+ $stats_post_url = Redirect::get_url(
+ 'calypso-stats-post',
+ array(
+ 'path' => $post_id,
+ )
+ );
printf(
'<a href="%s" title="%s" class="dashicons dashicons-chart-bar" target="_blank"></a>',
- esc_url( "https://wordpress.com/stats/post/$post_id/" . Jetpack::build_raw_urls( get_home_url() ) ),
+ esc_url( $stats_post_url ),
esc_html__( 'View stats for this post in WordPress.com', 'jetpack' )
);
}
diff --git a/plugins/jetpack/modules/stats/class-jetpack-stats-upgrade-nudges.php b/plugins/jetpack/modules/stats/class-jetpack-stats-upgrade-nudges.php
new file mode 100644
index 00000000..6557f972
--- /dev/null
+++ b/plugins/jetpack/modules/stats/class-jetpack-stats-upgrade-nudges.php
@@ -0,0 +1,584 @@
+<?php
+/**
+ * Adds a section with Upgrade nudges to the Status Report page
+ *
+ * @package jetpack
+ */
+
+use Automattic\Jetpack\Connection\Manager;
+use Automattic\Jetpack\Jetpack_CRM_Data;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Tracking;
+
+jetpack_require_lib( 'plugins' );
+
+/**
+ * Class that adds a new section to the Stats Report page
+ */
+class Jetpack_Stats_Upgrade_Nudges {
+
+ /**
+ * Indicates whether the class initialized or not
+ *
+ * @var bool
+ */
+ private static $initialized = false;
+
+ /**
+ * Initialize the class by registering the action
+ *
+ * @return void
+ */
+ public static function init() {
+ if ( ! self::$initialized ) {
+ self::$initialized = true;
+ add_action( 'jetpack_admin_pages_wrap_ui_after_callback', array( __CLASS__, 'render' ) );
+ }
+ }
+
+ /**
+ * Unsets the collapse nudges setting.
+ */
+ public static function unset_nudges_setting() {
+ $stats_options = get_option( 'stats_options' );
+
+ if ( $stats_options ) {
+ unset( $stats_options['collapse_nudges'] );
+ update_option( 'stats_options', $stats_options );
+ }
+ }
+
+ /**
+ * Determines whether Backup is active
+ *
+ * @return boolean
+ */
+ private static function is_backup_active() {
+ $rewind_data = Jetpack_Core_Json_Api_Endpoints::rewind_data();
+ return is_object( $rewind_data ) && isset( $rewind_data->state ) && 'unavailable' !== $rewind_data->state;
+ }
+
+ /**
+ * Checks if a plugin is installed.
+ *
+ * @param string $plugin_file The plugin filename.
+ * @return boolean
+ */
+ private static function is_plugin_installed( $plugin_file ) {
+ $plugins = Jetpack_Plugins::get_plugins();
+ return isset( $plugins[ $plugin_file ] );
+ }
+
+ /**
+ * Checks if a plugin is active.
+ *
+ * @param string $plugin_file The plugin filename.
+ * @return boolean
+ */
+ private static function is_plugin_active( $plugin_file ) {
+ $plugins = Jetpack_Plugins::get_plugins();
+ return isset( $plugins[ $plugin_file ] ) && isset( $plugins[ $plugin_file ]['active'] ) && $plugins[ $plugin_file ]['active'];
+ }
+
+ /**
+ * Determines whether Scan is active
+ *
+ * @return boolean
+ */
+ private static function is_scan_active() {
+ $scan_data = Jetpack_Core_Json_Api_Endpoints::scan_state();
+ return is_object( $scan_data ) && isset( $scan_data->state ) && 'unavailable' !== $scan_data->state;
+ }
+
+ /**
+ * Determines whether Search module is active
+ *
+ * @return boolean
+ */
+ private static function is_search_active() {
+ return Jetpack::is_module_active( 'search' );
+ }
+
+ /**
+ * Determines whether the Site is on a Security Plan. It will also return true if site has backup, scan and akismet.
+ *
+ * @return boolean
+ */
+ private static function has_security_plan() {
+ $plan_data = Jetpack_Plan::get();
+ if ( is_array( $plan_data ) && isset( $plan_data['product_slug'] ) ) {
+ $has_plan = wp_startswith( $plan_data['product_slug'], 'jetpack_security' );
+ return (
+ $has_plan || (
+ self::is_backup_active() &&
+ self::is_scan_active() &&
+ self::is_akismet_active()
+ )
+ );
+ }
+ return false;
+ }
+
+ /**
+ * Determines whether the Site is on the Complete Plan.
+ *
+ * @return boolean
+ */
+ private static function has_complete_plan() {
+ $plan_data = Jetpack_Plan::get();
+ if ( is_array( $plan_data ) && isset( $plan_data['product_slug'] ) ) {
+ return wp_startswith( $plan_data['product_slug'], 'jetpack_complete' );
+ }
+ return false;
+ }
+
+ /**
+ * Determines whether the Site has a specific product.
+ *
+ * @param string $target_product_slug The product slug we are looking for.
+ *
+ * @return boolean
+ */
+ private static function has_product( $target_product_slug ) {
+ $site_products_slugs = array_column( Jetpack_Plan::get_products(), 'product_slug' );
+
+ foreach ( $site_products_slugs as $product_slug ) {
+ if ( wp_startswith( $product_slug, $target_product_slug ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Determines whether Akismet is active
+ *
+ * @return boolean
+ */
+ private static function is_akismet_active() {
+ return Jetpack::is_akismet_active();
+ }
+
+ /**
+ * Outputs the header of the Upgrade Secion
+ *
+ * @return void
+ */
+ private static function print_header() {
+ if ( self::has_security_plan() ) {
+ // translators: %s is the Site Name.
+ $title = __( 'Performance and growth tools for %s', 'jetpack' );
+ } else {
+ // translators: %s is the Site Name.
+ $title = __( 'Security, performance, and growth tools for %s', 'jetpack' );
+ }
+ $title = sprintf( $title, get_bloginfo( 'site_name' ) );
+
+ $aria_expanded = 'true';
+ $postbox_closed = '';
+
+ $stats_options = get_option( 'stats_options' );
+
+ if ( isset( $stats_options['collapse_nudges'] ) && $stats_options['collapse_nudges'] ) {
+ $aria_expanded = 'false';
+ $postbox_closed = ' closed';
+ }
+
+ ?>
+ <div id="jp-stats-report-upgrade-wrap">
+ <div class="meta-box-sortables">
+ <div class="postbox<?php echo esc_attr( $postbox_closed ); ?>">
+ <div class="dops-card dops-section-header is-compact jp-stats-report-upgrade-header">
+ <div class="dops-section-header__label">
+ <span class="dops-section-header__label-text">
+ <?php echo esc_html( $title ); ?>
+ </span>
+ </div>
+ <div class="dops-section-header__actions handle-actions hide-if-no-js">
+ <button type="button" id="stats_nudges_toggle" class="handlediv" aria-expanded="<?php echo esc_attr( $aria_expanded ); ?>">
+ <span class="screen-reader-text">Toggle Upgrade Nudges</span>
+ <span class="toggle-indicator" aria-hidden="true"></span>
+ </button>
+ </div>
+ </div>
+ <div class="inside">
+ <?php
+ }
+
+ /**
+ * Outputs the footer of the Upgrade Section
+ *
+ * @return void
+ */
+ private static function print_footer() {
+ ?>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Outputs the custom css rules of the Upgrade Section
+ *
+ * @return void
+ */
+ private static function print_styles() {
+ ?>
+ <style>
+ .dops-section-header.dops-card.jp-stats-report-upgrade-header {
+ font-weight: bold;
+ box-shadow: none;
+ flex-wrap: nowrap;
+ }
+ #jp-stats-report-upgrade-wrap .dops-section-header__label-text {
+ white-space: normal;
+ }
+ #stats_nudges_toggle {
+ height: 100%;
+ }
+ .dops-banner.dops-card.is-product.jp-stats-report-upgrade-item {
+ margin-bottom: 0px;
+ border-left: 0px;
+ box-shadow: none;
+ border-top: 1px solid #c3c4c7;
+ padding: 12px 24px;
+ }
+ .dops-banner.dops-card.jp-stats-report-upgrade-item.jp-stats-report-upgrade-subitem {
+ margin-left: 72px;
+ padding-left: 0px;
+ }
+ .jp-stats-report-upgrade-item .dops-banner__action {
+ margin-right: 0px;
+ }
+ #jp-stats-report-upgrade-wrap .dops-card::after {
+ content: "";
+ }
+ .jp-stats-report-upgrade-item .dops-banner__title p {
+ margin: 5px 0 0 0;
+ font-weight: normal;
+ }
+ #jp-stats-report-upgrade-wrap .postbox {
+ background-color: white;
+ border: 1px solid #c3c4c7;
+ margin-bottom: 0;
+ }
+ #jp-stats-report-upgrade-wrap .postbox .inside {
+ padding: 0;
+ }
+ </style>
+ <?php
+ }
+ /**
+ * Add a script which handles collapse/expansion of the nudge UI.
+ */
+ private static function print_script() {
+ ?>
+ <script>
+ (function(window, document, undefined){
+ window.onload = set_up_click_handler;
+
+ const stats_wrap = document.getElementById( 'jp-stats-wrap' );
+ stats_wrap.addEventListener( 'stats-loaded', function () {
+ const stat_chart = document.getElementById( 'statchart' );
+ if ( stat_chart === null ) {
+ document.getElementById( 'stats_nudges_toggle' ).style.display = 'none';
+ }
+ });
+
+ function set_up_click_handler(){
+ document.getElementById( 'stats_nudges_toggle' ).onclick = function () {
+ const collapseValue = 'true' === this.getAttribute( 'aria-expanded' );
+
+ fetch( '/wp-json/jetpack/v4/settings', {
+ method: 'post',
+ body: JSON.stringify( { collapse_nudges: collapseValue } ),
+ headers: {
+ 'X-WP-Nonce': "<?php echo esc_js( wp_create_nonce( 'wp_rest' ) ); ?>",
+ 'Content-type': 'application/json' }
+ } );
+ };
+ }
+ })(window, document, undefined);
+ </script>
+ <?php
+ }
+
+ /**
+ * Gets the upgrade Redirect link
+ *
+ * @param string $source The source of the redirect link.
+ * @return string
+ */
+ private static function get_upgrade_link( $source ) {
+ $args = array();
+ if ( ! ( new Manager( 'jetpack' ) )->has_connected_owner() ) {
+ $args['query'] = 'unlinked=1';
+ }
+ return Redirect::get_url( $source, $args );
+ }
+
+ /**
+ * Gets the product description link.
+ *
+ * @param string $product_key The product key of the product we wish to display.
+ * @return string
+ */
+ private static function get_product_description_link( $product_key ) {
+ return Jetpack::admin_url( array( 'page' => sprintf( 'jetpack#/product/%s', $product_key ) ) );
+ }
+
+ /**
+ * Tracks an event in Tracks
+ *
+ * @param string $event_name The event name.
+ * @return void
+ */
+ private static function track_event( $event_name ) {
+ $connection_manager = new Manager( 'jetpack' );
+ $tracking = new Tracking( 'jetpack', $connection_manager );
+ $tracking->record_user_event(
+ $event_name,
+ array(
+ 'has_connected_owner' => $connection_manager->has_connected_owner(),
+ )
+ );
+ }
+
+ /**
+ * Outputs one Upgrade item
+ *
+ * @param string $title The title of the item.
+ * @param string $text The description of the item.
+ * @param string $icon The path of the icon, relative to Jetpack images folder.
+ * @param string $link The link of the button.
+ * @param string $tracks_id The id used to identify the tracks events. Automatically prefixed with "jetpack_stats_nudges_{view|click|learn_more}_".
+ * @param string $learn_more_link The target of the "Learn more" link.
+ * @param boolean $subitem Whether it is a subitem or not.
+ * @param string $button_label The button label.
+ * @return void
+ */
+ private static function print_item( $title, $text, $icon, $link, $tracks_id, $learn_more_link, $subitem = false, $button_label = null ) {
+ $additional_classes = $subitem ? 'jp-stats-report-upgrade-subitem' : '';
+ $button_class = $subitem ? 'is-secondary' : 'is-primary';
+ $icon_url = plugins_url( '', JETPACK__PLUGIN_FILE ) . '/images/products/' . $icon;
+ $button_label = is_null( $button_label ) ? __( 'Upgrade', 'jetpack' ) : $button_label;
+ $view_event = "stats_nudges_view_$tracks_id";
+ $click_event = "stats_nudges_click_$tracks_id";
+ $learn_more_event = "stats_nudges_learn_more_$tracks_id";
+ self::track_event( $view_event );
+
+ ?>
+ <div class="dops-card dops-banner has-call-to-action is-product jp-stats-report-upgrade-item <?php echo esc_attr( $additional_classes ); ?>">
+ <div class="dops-banner__icon-plan">
+ <img src="<?php echo esc_attr( $icon_url ); ?>" alt="" width="32" height="32">
+ </div>
+ <div class="dops-banner__content">
+ <div class="dops-banner__info">
+ <div class="dops-banner__title">
+ <?php echo esc_html( $title ); ?>
+ <p>
+ <?php echo esc_html( $text ); ?>
+ <a href="<?php echo esc_attr( $learn_more_link ); ?>" class="jptracks" target="_blank" rel="noopener noreferrer" data-jptracks-name="<?php echo esc_attr( $learn_more_event ); ?>">
+ <?php esc_html_e( 'Learn more', 'jetpack' ); ?>
+ </a>
+ </p>
+ </div>
+ </div>
+ <div class="dops-banner__action">
+ <a href="<?php echo esc_attr( $link ); ?>" type="button" class="jptracks dops-button is-compact <?php echo esc_attr( $button_class ); ?>" data-jptracks-name="<?php echo esc_attr( $click_event ); ?>">
+ <?php echo esc_html( $button_label ); ?>
+ </a>
+ </div>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * Prints the Security item
+ *
+ * @return void
+ */
+ private static function print_security() {
+ $link = self::get_product_description_link( 'security' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-security-learn' );
+ $text = __( 'Comprehensive protection for your site, including Backup, Scan, and Anti-spam.', 'jetpack' );
+ self::print_item( __( 'Security', 'jetpack' ), $text, 'product-jetpack-security-bundle.svg', $link, 'security', $learn_link );
+ }
+
+ /**
+ * Prints the Backup item
+ *
+ * @return void
+ */
+ private static function print_backup() {
+ $link = self::get_product_description_link( 'backup' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-backup-learn' );
+ $text = __( 'Save every change and get back online quickly with one-click restores.', 'jetpack' );
+ self::print_item( __( 'Backup', 'jetpack' ), $text, 'product-jetpack-backup.svg', $link, 'backup', $learn_link, true );
+ }
+
+ /**
+ * Prints the Scan item
+ *
+ * @since 10.1
+ * @since 10.3 The scan nudge has been removed, but leaving this here in case we reverse course.
+ *
+ * @todo Remove this function is not used ~6 months.
+ *
+ * @return void
+ */
+ private static function print_scan() {
+ $link = self::get_product_description_link( 'scan' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-scan-learn' );
+ $text = __( 'Stay ahead of security threats with automated scanning and one-click fixes.', 'jetpack' );
+ self::print_item( __( 'Scan', 'jetpack' ), $text, 'product-jetpack-scan.svg', $link, 'scan', $learn_link, true );
+ }
+
+ /**
+ * Prints the Akismet item
+ *
+ * @since 10.1
+ * @since 10.3 The anti-spam nudge has been removed, but leaving this here in case we reverse course.
+ *
+ * @todo Remove this function is not used ~6 months.
+ *
+ * @return void
+ */
+ private static function print_akismet() {
+ $link = self::get_product_description_link( 'akismet' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-akismet-learn' );
+ $text = __( 'Automatically clear spam from comments and forms.', 'jetpack' );
+ self::print_item( __( 'Anti-spam', 'jetpack' ), $text, 'product-jetpack-anti-spam.svg', $link, 'akismet', $learn_link, true );
+ }
+
+ /**
+ * Prints the Search item
+ *
+ * @return void
+ */
+ private static function print_search() {
+ $link = self::get_product_description_link( 'search' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-search-learn' );
+ $text = __( 'Help your site visitors instantly find what they\'re looking for so they read and buy more.', 'jetpack' );
+ self::print_item( __( 'Search', 'jetpack' ), $text, 'product-jetpack-search.svg', $link, 'search', $learn_link );
+ }
+
+ /**
+ * Prints the VideoPress item
+ *
+ * @return void
+ */
+ private static function print_videopress() {
+ $link = self::get_product_description_link( 'videopress' );
+ $learn_link = self::get_upgrade_link( 'stats-nudges-videopress-learn' );
+ $text = __( 'Engage your visitors with high-quality, ad-free videos built specifically for WordPress.', 'jetpack' );
+ self::print_item( __( 'VideoPress', 'jetpack' ), $text, 'product-jetpack-videopress.svg', $link, 'videopress', $learn_link );
+ }
+
+ /**
+ * Prints the Boost item
+ *
+ * @param bool $print Whether to print the item output or just check whether it would be printed or not.
+ *
+ * @return bool
+ */
+ private static function get_boost_output( $print = true ) {
+ $plugin_file = 'jetpack-boost/jetpack-boost.php';
+ $plugin_slug = 'jetpack-boost';
+ if ( self::is_plugin_active( $plugin_file ) ) {
+ return false;
+ } elseif ( self::is_plugin_installed( $plugin_file ) ) {
+ $label = __( 'Activate Boost', 'jetpack' );
+ $link = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . rawurlencode( $plugin_file ) . '&amp;plugin_status=all&amp;paged=1', 'activate-plugin_' . $plugin_file );
+ } else {
+ $label = __( 'Install Boost', 'jetpack' );
+ $link = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $plugin_slug ), 'install-plugin_' . $plugin_slug );
+ }
+ if ( $print ) {
+ $learn_link = self::get_upgrade_link( 'stats-nudges-boost-learn' );
+ $text = __( 'Improve your site\'s performance and SEO in a few clicks with the free Jetpack Boost plugin.', 'jetpack' );
+ self::print_item( __( 'Boost', 'jetpack' ), $text, 'product-jetpack-boost.svg', $link, 'boost', $learn_link, false, $label );
+ }
+ return true;
+ }
+
+ /**
+ * Prints the CRM item
+ *
+ * @param bool $print Whether to print the item output or just check whether it would be printed or not.
+ *
+ * @since 10.1
+ *
+ * @return bool
+ */
+ private static function get_crm_output( $print = true ) {
+ $plugin_file = Jetpack_CRM_Data::JETPACK_CRM_PLUGIN_SLUG;
+ $plugin_slug = substr( $plugin_file, 0, strpos( $plugin_file, '/' ) );
+ if ( self::is_plugin_active( $plugin_file ) ) {
+ return false;
+ } elseif ( self::is_plugin_installed( $plugin_file ) ) {
+ $link = wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . rawurlencode( $plugin_file ) . '&amp;plugin_status=all&amp;paged=1', 'activate-plugin_' . $plugin_file );
+ $label = __( 'Activate CRM', 'jetpack' );
+ } else {
+ $link = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=' . $plugin_slug ), 'install-plugin_' . $plugin_slug );
+ $label = __( 'Install CRM', 'jetpack' );
+ }
+ if ( $print ) {
+ $learn_link = self::get_upgrade_link( 'stats-nudges-crm-learn' );
+ $text = __( 'Sell more and get more leads with the Jetpack CRM plugin built specifically for WordPress.', 'jetpack' );
+ self::print_item( __( 'CRM', 'jetpack' ), $text, 'product-jetpack-crm.svg', $link, 'crm', $learn_link, false, $label );
+ }
+ return true;
+ }
+
+ /**
+ * Outputs the section to the Stats Report page
+ *
+ * @param string $callback The callback passed to the jetpack admin page.
+ * @return void
+ */
+ public static function render( $callback ) {
+ /** This filter is documented in _inc/lib/admin-pages/class.jetpack-react-page.php */
+ if ( 'stats_reports_page' !== $callback || ! apply_filters( 'jetpack_show_promotions', true ) || ! current_user_can( 'manage_options' ) ) {
+ return;
+ }
+
+ if ( self::has_complete_plan() ) {
+ return;
+ }
+
+ if (
+ self::has_security_plan() &&
+ self::is_backup_active() &&
+ self::is_search_active() &&
+ ! self::get_boost_output( false ) &&
+ ! self::get_crm_output( false )
+ ) {
+ return;
+ }
+
+ self::print_styles();
+ self::print_script();
+ self::print_header();
+ if ( ! self::has_security_plan() ) {
+ self::print_security();
+ if ( ! self::is_backup_active() ) {
+ self::print_backup();
+ }
+ }
+ if ( ! self::is_search_active() ) {
+ self::print_search();
+ }
+ if ( ! self::has_product( 'jetpack_videopress' ) ) {
+ self::print_videopress();
+ }
+ self::get_boost_output();
+ self::get_crm_output();
+ self::print_footer();
+ }
+
+}
diff --git a/plugins/jetpack/modules/subscriptions.php b/plugins/jetpack/modules/subscriptions.php
index e7547981..a3986a49 100644
--- a/plugins/jetpack/modules/subscriptions.php
+++ b/plugins/jetpack/modules/subscriptions.php
@@ -6,12 +6,15 @@
* Recommendation Order: 8
* First Introduced: 1.2
* Requires Connection: Yes
+ * Requires User Connection: Yes
* Auto Activate: No
* Module Tags: Social
* Feature: Engagement
* Additional Search Queries: subscriptions, subscription, email, follow, followers, subscribers, signup
*/
+use Automattic\Jetpack\Connection\XMLRPC_Async_Call;
+
add_action( 'jetpack_modules_loaded', 'jetpack_subscriptions_load' );
function jetpack_subscriptions_load() {
@@ -430,7 +433,7 @@ class Jetpack_Subscriptions {
* @since 8.1
*/
public function social_notifications_subscribe_field() {
- $checked = intval( 'on' === get_option( 'social_notifications_subscribe', 'on' ) );
+ $checked = (int) ( 'on' === get_option( 'social_notifications_subscribe', 'on' ) );
?>
<label>
@@ -517,7 +520,7 @@ class Jetpack_Subscriptions {
* @param array $post_ids (optional) defaults to 0 for blog posts only: array of post IDs to subscribe to blog's posts
* @param bool $async (optional) Should the subscription be performed asynchronously? Defaults to true.
*
- * @return true|Jetpack_Error true on success
+ * @return true|WP_Error true on success
* invalid_email : not a valid email address
* invalid_post_id : not a valid post ID
* unknown_post_id : unknown post
@@ -530,7 +533,7 @@ class Jetpack_Subscriptions {
*/
function subscribe( $email, $post_ids = 0, $async = true, $extra_data = array() ) {
if ( !is_email( $email ) ) {
- return new Jetpack_Error( 'invalid_email' );
+ return new WP_Error( 'invalid_email' );
}
if ( !$async ) {
@@ -540,13 +543,13 @@ class Jetpack_Subscriptions {
foreach ( (array) $post_ids as $post_id ) {
$post_id = (int) $post_id;
if ( $post_id < 0 ) {
- return new Jetpack_Error( 'invalid_post_id' );
+ return new WP_Error( 'invalid_post_id' );
} else if ( $post_id && !$post = get_post( $post_id ) ) {
- return new Jetpack_Error( 'unknown_post_id' );
+ return new WP_Error( 'unknown_post_id' );
}
if ( $async ) {
- Jetpack::xmlrpc_async_call( 'jetpack.subscribeToSite', $email, $post_id, serialize( $extra_data ) );
+ XMLRPC_Async_Call::add_call( 'jetpack.subscribeToSite', 0, $email, $post_id, serialize( $extra_data ) ); //phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.serialize_serialize
} else {
$xml->addCall( 'jetpack.subscribeToSite', $email, $post_id, serialize( $extra_data ) );
}
@@ -573,28 +576,28 @@ class Jetpack_Subscriptions {
}
if ( !is_array( $response[0] ) || empty( $response[0]['status'] ) ) {
- $r[] = new Jetpack_Error( 'unknown' );
+ $r[] = new WP_Error( 'unknown' );
continue;
}
switch ( $response[0]['status'] ) {
case 'error':
- $r[] = new Jetpack_Error( 'not_subscribed' );
+ $r[] = new WP_Error( 'not_subscribed' );
continue 2;
case 'disabled':
- $r[] = new Jetpack_Error( 'disabled' );
+ $r[] = new WP_Error( 'disabled' );
continue 2;
case 'active':
- $r[] = new Jetpack_Error( 'active' );
+ $r[] = new WP_Error( 'active' );
continue 2;
case 'confirming':
$r[] = true;
continue 2;
case 'pending':
- $r[] = new Jetpack_Error( 'pending' );
+ $r[] = new WP_Error( 'pending' );
continue 2;
default:
- $r[] = new Jetpack_Error( 'unknown_status', (string) $response[0]['status'] );
+ $r[] = new WP_Error( 'unknown_status', (string) $response[0]['status'] );
continue 2;
}
}
@@ -613,14 +616,14 @@ class Jetpack_Subscriptions {
check_admin_referer( 'blogsub_subscribe_' . get_current_blog_id() );
}
- if ( empty( $_REQUEST['email'] ) )
+ if ( empty( $_REQUEST['email'] ) || ! is_string( $_REQUEST['email'] ) )
return false;
$redirect_fragment = false;
if ( isset( $_REQUEST['redirect_fragment'] ) ) {
$redirect_fragment = preg_replace( '/[^a-z0-9_-]/i', '', $_REQUEST['redirect_fragment'] );
}
- if ( !$redirect_fragment ) {
+ if ( !$redirect_fragment || ! is_string( $redirect_fragment ) ) {
$redirect_fragment = 'subscribe-blog';
}
@@ -782,6 +785,9 @@ class Jetpack_Subscriptions {
}
$comment = get_comment( $comment_id );
+ if ( ! $comment ) {
+ return;
+ }
// Set cookies for this post/comment
$this->set_cookies( isset( $_REQUEST['subscribe_comments'] ), $comment->comment_post_ID, isset( $_REQUEST['subscribe_blog'] ) );
@@ -817,7 +823,7 @@ class Jetpack_Subscriptions {
* @since 5.5.0
*
* @param NULL|WP_Error $result Result of form submission: NULL on success, WP_Error otherwise.
- * @param Array $post_ids An array of post IDs that the user subscribed to, 0 means blog subscription.
+ * @param array $post_ids An array of post IDs that the user subscribed to, 0 means blog subscription.
*/
do_action( 'jetpack_subscriptions_comment_form_submission', $result, $post_ids );
}
@@ -832,7 +838,7 @@ class Jetpack_Subscriptions {
* @param bool $subscribe_to_blog Whether the user chose to subscribe to all new posts on the blog.
*/
function set_cookies( $subscribe_to_post = false, $post_id = null, $subscribe_to_blog = false ) {
- $post_id = intval( $post_id );
+ $post_id = (int) $post_id;
/** This filter is already documented in core/wp-includes/comment-functions.php */
$cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 );
diff --git a/plugins/jetpack/modules/subscriptions/views.php b/plugins/jetpack/modules/subscriptions/views.php
index 25a65405..85806e74 100644
--- a/plugins/jetpack/modules/subscriptions/views.php
+++ b/plugins/jetpack/modules/subscriptions/views.php
@@ -1,11 +1,21 @@
<?php
class Jetpack_Subscriptions_Widget extends WP_Widget {
+
+ const ID_BASE = 'blog_subscription';
+
static $instance_count = 0;
+
/**
* @var array When printing the submit button, what tags are allowed
*/
- static $allowed_html_tags_for_submit_button = array( 'br' => array() );
+ public static $allowed_html_tags_for_submit_button = array(
+ 'br' => array(),
+ 's' => array(),
+ 'strong' => array(),
+ 'em' => array(),
+ );
+
/**
* Use this variable when printing the message after submitting an email in subscription widgets
*
@@ -26,6 +36,7 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
'classname' => 'widget_blog_subscription jetpack_subscription_widget',
'description' => __( 'Add an email signup form to allow people to subscribe to your blog.', 'jetpack' ),
'customize_selective_refresh' => true,
+ 'show_instance_in_rest' => true,
);
$name = self::is_jetpack() ?
@@ -48,6 +59,19 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
) {
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) );
}
+
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
+ }
+
+ /**
+ * Remove the "Blog Subscription" widget from the Legacy Widget block
+ *
+ * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
+ * @return array $widget_types New list of widgets that will be removed.
+ */
+ public function hide_widget_in_block_editor( $widget_types ) {
+ $widget_types[] = self::ID_BASE;
+ return $widget_types;
}
/**
@@ -55,7 +79,7 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
*
* @since 4.5.0
*/
- function enqueue_style() {
+ public function enqueue_style() {
wp_register_style(
'jetpack-subscriptions',
plugins_url( 'subscriptions.css', __FILE__ ),
@@ -102,11 +126,7 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
self::render_widget_status_messages( $instance );
- if ( self::is_current_user_subscribed() ) {
- self::render_widget_already_subscribed( $instance );
- } else {
- self::render_widget_subscription_form( $args, $instance, $subscribe_email );
- }
+ self::render_widget_subscription_form( $args, $instance, $subscribe_email );
echo "\n" . $after_widget;
}
@@ -124,17 +144,17 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
if ( self::is_wpcom() && ! $show_only_email_and_button ) {
if ( self::is_current_user_subscribed() ) {
if ( ! empty( $instance['title_following'] ) ) {
- echo $before_title . '<label for="subscribe-field' . ( Jetpack_Subscriptions_Widget::$instance_count > 1 ? '-' . Jetpack_Subscriptions_Widget::$instance_count : '' ) . '">' . esc_attr( $instance['title_following'] ) . '</label>' . $after_title . "\n";
+ echo $before_title . '<label for="subscribe-field' . ( self::$instance_count > 1 ? '-' . self::$instance_count : '' ) . '">' . esc_attr( $instance['title_following'] ) . '</label>' . $after_title . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
} else {
if ( ! empty( $instance['title'] ) ) {
- echo $before_title . '<label for="subscribe-field' . ( Jetpack_Subscriptions_Widget::$instance_count > 1 ? '-' . Jetpack_Subscriptions_Widget::$instance_count : '' ) . '">' . esc_attr( $instance['title'] ) . '</label>' . $after_title . "\n";
+ echo $before_title . '<label for="subscribe-field' . ( self::$instance_count > 1 ? '-' . self::$instance_count : '' ) . '">' . $instance['title'] . '</label>' . $after_title . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
}
if ( self::is_jetpack() && empty( $instance['show_only_email_and_button'] ) ) {
- echo $args['before_title'] . esc_attr( $instance['title'] ) . $args['after_title'] . "\n";
+ echo $args['before_title'] . $instance['title'] . $args['after_title'] . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
}
@@ -208,71 +228,56 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
if ( self::is_wpcom() && self::wpcom_has_status_message() ) {
global $themecolors;
+ $message = '';
+
switch ( $_GET['blogsub'] ) {
case 'confirming':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'Thanks for subscribing! You&rsquo;ll get an email with a link to confirm your subscription. If you don&rsquo;t get it, please <a href="https://en.support.wordpress.com/contact/">contact us</a>.' );
- echo "</div>";
+ $message = __( 'Thanks for subscribing! You&rsquo;ll get an email with a link to confirm your subscription. If you don&rsquo;t get it, please <a href="https://en.support.wordpress.com/contact/">contact us</a>.', 'jetpack' );
break;
case 'blocked':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'Subscriptions have been blocked for this email address.' );
- echo "</div>";
+ $message = __( 'Subscriptions have been blocked for this email address.', 'jetpack' );
break;
case 'flooded':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'You already have several pending email subscriptions. Approve or delete a few through your <a href="https://subscribe.wordpress.com/">Subscription Manager</a> before attempting to subscribe to more blogs.' );
- echo "</div>";
+ $message = __( 'You already have several pending email subscriptions. Approve or delete a few through your <a href="https://subscribe.wordpress.com/">Subscription Manager</a> before attempting to subscribe to more blogs.', 'jetpack' );
break;
case 'spammed':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- echo wp_kses_post( sprintf( __( 'Because there are many pending subscriptions for this email address, we have blocked the subscription. Please <a href="%s">activate or delete</a> pending subscriptions before attempting to subscribe.' ), 'https://subscribe.wordpress.com/' ) );
- echo "</div>";
+ /* translators: %s is a URL */
+ $message = sprintf( __( 'Because there are many pending subscriptions for this email address, we have blocked the subscription. Please <a href="%s">activate or delete</a> pending subscriptions before attempting to subscribe.', 'jetpack' ), 'https://subscribe.wordpress.com/' );
break;
case 'subscribed':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'You&rsquo;re already subscribed to this site.' );
- echo "</div>";
+ $message = __( 'You&rsquo;re already subscribed to this site.', 'jetpack' );
break;
case 'pending':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'You have a pending subscription already; we just sent you another email. Click the link or <a href="https://en.support.wordpress.com/contact/">contact us</a> if you don&rsquo;t receive it.' );
- echo "</div>";
+ $message = __( 'You have a pending subscription already; we just sent you another email. Click the link or <a href="https://en.support.wordpress.com/contact/">contact us</a> if you don&rsquo;t receive it.', 'jetpack' );
break;
case 'confirmed':
- echo "<div style='background-color: #{$themecolors['bg']}; border: 1px solid #{$themecolors['border']}; color: #{$themecolors['text']}; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;'>";
- _e( 'Congrats, you&rsquo;re subscribed! You&rsquo;ll get an email with the details of your subscription and an unsubscribe link.' );
- echo "</div>";
+ $message = __( 'Congrats, you&rsquo;re subscribed! You&rsquo;ll get an email with the details of your subscription and an unsubscribe link.', 'jetpack' );
break;
}
+
+ $border_color = isset( $themecolors['border'] ) ? " #{$themecolors['border']}" : '';
+
+ $redirect_fragment = self::get_redirect_fragment();
+ printf(
+ '<div id="%1$s" class="jetpack-sub-notification" style="border: 1px solid%2$s; padding-left: 5px; padding-right: 5px; margin-bottom: 10px;">%3$s</div>',
+ esc_attr( $redirect_fragment ),
+ esc_attr( $border_color ),
+ wp_kses_post( $message )
+ );
}
}
/**
- * Renders a message to folks who are already subscribed.
+ * Generates the redirect fragment used after form submission.
*
- * @param array $instance The settings for the particular instance of the widget.
- *
- * @return void
+ * @param string $id is the specific id that will appear in the redirect fragment. If none is provided self::$instance_count will be used.
*/
- static function render_widget_already_subscribed( $instance ) {
- if ( self::is_wpcom() ) {
- $subscribers_total = self::fetch_subscriber_count();
- $edit_subs_url = 'https://wordpress.com/following/edit/';
- if ( function_exists( 'localized_wpcom_url' ) ) {
- $edit_subs_url = localized_wpcom_url( http() . '://wordpress.com/following/edit/', get_user_locale() );
- }
- $show_subscribers_total = (bool) $instance['show_subscribers_total'];
- if ( $show_subscribers_total && $subscribers_total > 1 ) :
- $subscribers_not_me = $subscribers_total - 1;
- /* translators: %s: number of folks following the blog */
- ?>
- <p><?php printf( _n( 'You are following this blog, along with %s other amazing person (<a href="%s">manage</a>).', 'You are following this blog, along with %s other amazing people (<a href="%s">manage</a>).', $subscribers_not_me ), number_format_i18n( $subscribers_not_me ), $edit_subs_url ) ?></p><?php
- else :
- ?>
- <p><?php printf( __( 'You are following this blog (<a href="%s">manage</a>).' ), $edit_subs_url ) ?></p><?php
- endif;
+ protected static function get_redirect_fragment( $id = null ) {
+ if ( is_null( $id ) ) {
+ return 'subscribe-blog' . ( self::$instance_count > 1 ? '-' . self::$instance_count : '' );
}
+
+ return 'subscribe-blog-' . $id;
}
/**
@@ -283,62 +288,103 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
* @param string $subscribe_email The email to use to prefill the form.
*/
static function render_widget_subscription_form( $args, $instance, $subscribe_email ) {
- $show_only_email_and_button = $instance['show_only_email_and_button'];
- $subscribe_logged_in = isset( $instance['subscribe_logged_in'] ) ? stripslashes( $instance['subscribe_logged_in'] ) : '';
- $show_subscribers_total = (bool) $instance['show_subscribers_total'];
- $subscribe_text = empty( $instance['show_only_email_and_button'] ) ?
+ $show_only_email_and_button = $instance['show_only_email_and_button'];
+ $show_subscribers_total = (bool) $instance['show_subscribers_total'];
+ $subscribe_text = empty( $instance['show_only_email_and_button'] ) ?
stripslashes( $instance['subscribe_text'] ) :
false;
- $referer = ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
- $source = 'widget';
- $widget_id = esc_attr( ! empty( $args['widget_id'] ) ? esc_attr( $args['widget_id'] ) : mt_rand( 450, 550 ) );
- $subscribe_button = ! empty( $instance['submit_button_text'] ) ? $instance['submit_button_text'] : $instance['subscribe_button'];
- $subscribers_total = self::fetch_subscriber_count();
- $subscribe_placeholder = isset( $instance['subscribe_placeholder'] ) ? stripslashes( $instance['subscribe_placeholder'] ) : '';
- $submit_button_classes = isset( $instance['submit_button_classes'] ) ? $instance['submit_button_classes'] : '';
- $submit_button_styles = isset( $instance['submit_button_styles'] ) ? $instance['submit_button_styles'] : '';
+ $referer = ( is_ssl() ? 'https' : 'http' ) . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+ $source = 'widget';
+ $widget_id = ! empty( $args['widget_id'] ) ? $args['widget_id'] : self::$instance_count;
+ $subscribe_button = ! empty( $instance['submit_button_text'] ) ? $instance['submit_button_text'] : $instance['subscribe_button'];
+ $subscribers_total = self::fetch_subscriber_count();
+ $subscribe_placeholder = isset( $instance['subscribe_placeholder'] ) ? stripslashes( $instance['subscribe_placeholder'] ) : '';
+ $submit_button_classes = isset( $instance['submit_button_classes'] ) ? 'wp-block-button__link ' . $instance['submit_button_classes'] : 'wp-block-button__link';
+ $submit_button_styles = isset( $instance['submit_button_styles'] ) ? $instance['submit_button_styles'] : '';
+ $submit_button_wrapper_styles = isset( $instance['submit_button_wrapper_styles'] ) ? $instance['submit_button_wrapper_styles'] : '';
+ $email_field_classes = isset( $instance['email_field_classes'] ) ? $instance['email_field_classes'] : '';
+ $email_field_styles = isset( $instance['email_field_styles'] ) ? $instance['email_field_styles'] : '';
if ( self::is_wpcom() && ! self::wpcom_has_status_message() ) {
global $current_blog;
- $url = defined( 'SUBSCRIBE_BLOG_URL' ) ? SUBSCRIBE_BLOG_URL : '';
+
+ $url = defined( 'SUBSCRIBE_BLOG_URL' ) ? SUBSCRIBE_BLOG_URL : '';
+ $form_id = self::get_redirect_fragment();
?>
- <form action="<?php echo $url; ?>" method="post" accept-charset="utf-8"
- id="subscribe-blog<?php if ( Jetpack_Subscriptions_Widget::$instance_count > 1 ) {
- echo '-' . Jetpack_Subscriptions_Widget::$instance_count;
- } ?>">
- <?php if ( is_user_logged_in() ) : ?>
- <?php
- if ( ! $show_only_email_and_button ) {
- echo wpautop( $subscribe_logged_in );
- }
- if ( $show_subscribers_total && $subscribers_total ) {
- /* translators: %s: number of folks following the blog */
- echo wpautop( sprintf( _n( 'Join %s other follower', 'Join %s other followers', $subscribers_total ), number_format_i18n( $subscribers_total ) ) );
- }
+
+ <form
+ action="<?php echo esc_url( $url ); ?>"
+ method="post"
+ accept-charset="utf-8"
+ id="<?php echo esc_attr( $form_id ); ?>"
+ >
+ <?php
+ if ( ! $show_only_email_and_button ) {
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo wpautop( $subscribe_text );
+ }
+ if ( $show_subscribers_total && $subscribers_total ) {
?>
- <?php else : ?>
- <?php
- if ( ! $show_only_email_and_button ) {
- echo wpautop( $subscribe_text );
- }
- if ( $show_subscribers_total && $subscribers_total ) {
+ <div class="jetpack-subscribe-count">
+ <p>
+ <?php
/* translators: %s: number of folks following the blog */
- echo wpautop( sprintf( _n( 'Join %s other follower', 'Join %s other followers', $subscribers_total ), number_format_i18n( $subscribers_total ) ) );
- }
+ echo esc_html( sprintf( _n( 'Join %s other follower', 'Join %s other followers', $subscribers_total, 'jetpack' ), number_format_i18n( $subscribers_total ) ) );
+ ?>
+ </p>
+ </div>
+ <?php
+ }
+ $email_field_id = 'subscribe-field';
+ $email_field_id .= self::$instance_count > 1
+ ? '-' . self::$instance_count
+ : '';
+ $label_field_id = $email_field_id . '-label';
+ ?>
+ <p id="subscribe-email">
+ <label
+ id="<?php echo esc_attr( $label_field_id ); ?>"
+ for="<?php echo esc_attr( $email_field_id ); ?>"
+ class="screen-reader-text"
+ >
+ <?php echo esc_html__( 'Email Address:', 'jetpack' ); ?>
+ </label>
+
+ <?php
+ printf(
+ '<input
+ type="email"
+ name="email"
+ %1$s
+ style="%2$s"
+ placeholder="%3$s"
+ value=""
+ id="%4$s"
+ />',
+ ( ! empty( $email_field_classes )
+ ? 'class="' . esc_attr( $email_field_classes ) . '"'
+ : ''
+ ),
+ ( ! empty( $email_field_styles )
+ ? esc_attr( $email_field_styles )
+ : 'width: 95%; padding: 1px 10px'
+ ),
+ esc_attr__( 'Enter your email address', 'jetpack' ),
+ esc_attr( $email_field_id )
+ );
?>
- <p><input type="text" name="email" style="width: 95%; padding: 1px 2px"
- placeholder="<?php esc_attr_e( 'Enter your email address' ); ?>" value=""
- id="subscribe-field<?php if ( Jetpack_Subscriptions_Widget::$instance_count > 1 ) {
- echo '-' . Jetpack_Subscriptions_Widget::$instance_count;
- } ?>"/></p>
- <?php endif; ?>
-
- <p>
+ </p>
+
+ <p id="subscribe-submit"
+ <?php if ( ! empty( $submit_button_wrapper_styles ) ) { ?>
+ style="<?php echo esc_attr( $submit_button_wrapper_styles ); ?>"
+ <?php }; ?>
+ >
<input type="hidden" name="action" value="subscribe"/>
<input type="hidden" name="blog_id" value="<?php echo (int) $current_blog->blog_id; ?>"/>
<input type="hidden" name="source" value="<?php echo esc_url( $referer ); ?>"/>
<input type="hidden" name="sub-type" value="<?php echo esc_attr( $source ); ?>"/>
- <input type="hidden" name="redirect_fragment" value="<?php echo esc_attr( $widget_id ); ?>"/>
+ <input type="hidden" name="redirect_fragment" value="<?php echo esc_attr( $form_id ); ?>"/>
<?php wp_nonce_field( 'blogsub_subscribe_' . $current_blog->blog_id, '_wpnonce', false ); ?>
<button type="submit"
<?php if ( ! empty( $submit_button_classes ) ) { ?>
@@ -372,8 +418,10 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
* @param int $widget_id Widget ID.
*/
$subscribe_field_id = apply_filters( 'subscribe_field_id', 'subscribe-field', $widget_id );
+
+ $form_id = self::get_redirect_fragment( $widget_id );
?>
- <form action="#" method="post" accept-charset="utf-8" id="subscribe-blog-<?php echo $widget_id; ?>">
+ <form action="#" method="post" accept-charset="utf-8" id="<?php echo esc_attr( $form_id ); ?>">
<?php
if ( $subscribe_text && ( ! isset ( $_GET['subscribe'] ) || 'success' != $_GET['subscribe'] ) ) {
?>
@@ -381,27 +429,46 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
}
if ( $show_subscribers_total && 0 < $subscribers_total['value'] ) {
- /* translators: %s: number of folks following the blog */
- echo wpautop( sprintf( _n( 'Join %s other subscriber', 'Join %s other subscribers', $subscribers_total['value'], 'jetpack' ), number_format_i18n( $subscribers_total['value'] ) ) );
+ ?>
+ <div class="jetpack-subscribe-count">
+ <p>
+ <?php
+ /* translators: %s: number of folks following the blog */
+ echo esc_html( sprintf( _n( 'Join %s other subscriber', 'Join %s other subscribers', $subscribers_total['value'], 'jetpack' ), number_format_i18n( $subscribers_total['value'] ) ) );
+ ?>
+ </p>
+ </div>
+ <?php
}
if ( ! isset ( $_GET['subscribe'] ) || 'success' != $_GET['subscribe'] ) { ?>
<p id="subscribe-email">
<label id="jetpack-subscribe-label"
- class="screen-reader-text"
- for="<?php echo esc_attr( $subscribe_field_id ) . '-' . esc_attr( $widget_id ); ?>">
+ class="screen-reader-text"
+ for="<?php echo esc_attr( $subscribe_field_id . '-' . $widget_id ); ?>">
<?php echo ! empty( $subscribe_placeholder ) ? esc_html( $subscribe_placeholder ) : esc_html__( 'Email Address:', 'jetpack' ); ?>
</label>
- <input type="email" name="email" required="required" class="required"
- value="<?php echo esc_attr( $subscribe_email ); ?>"
- id="<?php echo esc_attr( $subscribe_field_id ) . '-' . esc_attr( $widget_id ); ?>"
- placeholder="<?php echo esc_attr( $subscribe_placeholder ); ?>"/>
+ <input type="email" name="email" required="required"
+ <?php if ( ! empty( $email_field_classes ) ) { ?>
+ class="<?php echo esc_attr( $email_field_classes ); ?> required"
+ <?php }; ?>
+ <?php if ( ! empty( $email_field_styles ) ) { ?>
+ style="<?php echo esc_attr( $email_field_styles ); ?>"
+ <?php }; ?>
+ value="<?php echo esc_attr( $subscribe_email ); ?>"
+ id="<?php echo esc_attr( $subscribe_field_id . '-' . $widget_id ); ?>"
+ placeholder="<?php echo esc_attr( $subscribe_placeholder ); ?>"
+ />
</p>
- <p id="subscribe-submit">
+ <p id="subscribe-submit"
+ <?php if ( ! empty( $submit_button_wrapper_styles ) ) { ?>
+ style="<?php echo esc_attr( $submit_button_wrapper_styles ); ?>"
+ <?php }; ?>
+ >
<input type="hidden" name="action" value="subscribe"/>
<input type="hidden" name="source" value="<?php echo esc_url( $referer ); ?>"/>
<input type="hidden" name="sub-type" value="<?php echo esc_attr( $source ); ?>"/>
- <input type="hidden" name="redirect_fragment" value="<?php echo $widget_id; ?>"/>
+ <input type="hidden" name="redirect_fragment" value="<?php echo esc_attr( $form_id ); ?>"/>
<?php
if ( is_user_logged_in() ) {
wp_nonce_field( 'blogsub_subscribe_' . get_current_blog_id(), '_wpnonce', false );
@@ -493,7 +560,7 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
if ( self::is_jetpack() ) {
$subs_count = get_transient( 'wpcom_subscribers_total' );
if ( false === $subs_count || 'failed' == $subs_count['status'] ) {
- $xml = new Jetpack_IXR_Client( array( 'user_id' => JETPACK_MASTER_USER, ) );
+ $xml = new Jetpack_IXR_Client();
$xml->query( 'jetpack.fetchSubscriberCount' );
@@ -565,21 +632,11 @@ class Jetpack_Subscriptions_Widget extends WP_Widget {
'show_only_email_and_button' => false
);
- if ( self::is_jetpack() ) {
- $defaults['title'] = esc_html__( 'Subscribe to Blog via Email', 'jetpack' );
- $defaults['subscribe_text'] = esc_html__( 'Enter your email address to subscribe to this blog and receive notifications of new posts by email.', 'jetpack' );
- $defaults['subscribe_placeholder'] = esc_html__( 'Email Address', 'jetpack' );
- $defaults['subscribe_button'] = esc_html__( 'Subscribe', 'jetpack' );
- $defaults['success_message'] = esc_html__( "Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.", 'jetpack' );
- }
-
- if ( self::is_wpcom() ) {
- $defaults['title'] = __( 'Follow Blog via Email' );
- $defaults['title_following'] = __( 'You are following this blog' );
- $defaults['subscribe_text'] = __( 'Enter your email address to follow this blog and receive notifications of new posts by email.' );
- $defaults['subscribe_button'] = __( 'Follow' );
- $defaults['subscribe_logged_in'] = __( 'Click to follow this blog and receive notifications of new posts by email.' );
- }
+ $defaults['title'] = esc_html__( 'Subscribe to Blog via Email', 'jetpack' );
+ $defaults['subscribe_text'] = esc_html__( 'Enter your email address to subscribe to this blog and receive notifications of new posts by email.', 'jetpack' );
+ $defaults['subscribe_placeholder'] = esc_html__( 'Email Address', 'jetpack' );
+ $defaults['subscribe_button'] = esc_html__( 'Subscribe', 'jetpack' );
+ $defaults['success_message'] = esc_html__( "Success! An email was just sent to confirm your subscription. Please find the email now and click 'Confirm Follow' to start subscribing.", 'jetpack' );
return $defaults;
}
@@ -744,16 +801,84 @@ function jetpack_do_subscription_form( $instance ) {
$show_only_email_and_button = isset( $instance['show_only_email_and_button'] ) ? $instance['show_only_email_and_button'] : false;
$submit_button_text = isset( $instance['submit_button_text'] ) ? $instance['submit_button_text'] : '';
+ // Build up a string with the submit button's classes and styles and set it on the instance
+ $submit_button_classes = isset( $instance['submit_button_classes'] ) ? $instance['submit_button_classes'] : '';
+ $email_field_classes = isset( $instance['email_field_classes'] ) ? $instance['email_field_classes'] : '';
+ $style = '';
+ $submit_button_styles = '';
+ $submit_button_wrapper_styles = '';
+ $email_field_styles = '';
+ $success_message = '';
+
+ if ( isset( $instance['custom_background_button_color'] ) && 'undefined' !== $instance['custom_background_button_color'] ) {
+ $submit_button_styles .= 'background: ' . $instance['custom_background_button_color'] . '; ';
+ }
+ if ( isset( $instance['custom_text_button_color'] ) && 'undefined' !== $instance['custom_text_button_color'] ) {
+ $submit_button_styles .= 'color: ' . $instance['custom_text_button_color'] . '; ';
+ }
+ if ( isset( $instance['custom_button_width'] ) && 'undefined' !== $instance['custom_button_width'] ) {
+ $submit_button_wrapper_styles .= 'width: ' . $instance['custom_button_width'] . '; ';
+ $submit_button_wrapper_styles .= 'max-width: 100%; ';
+
+ // Account for custom margins on inline forms.
+ if (
+ ! empty( $instance['custom_spacing'] ) &&
+ ! ( isset( $instance['button_on_newline'] ) && 'true' === $instance['button_on_newline'] )
+ ) {
+ $submit_button_styles .= 'width: calc(100% - ' . $instance['custom_spacing'] . 'px); ';
+ } else {
+ $submit_button_styles .= 'width: 100%; ';
+ }
+ }
+
+ if ( isset( $instance['custom_font_size'] ) && 'undefined' !== $instance['custom_font_size'] ) {
+ $style = 'font-size: ' . $instance['custom_font_size'];
+ $style .= is_numeric( $instance['custom_font_size'] ) ? 'px; ' : '; '; // Handle deprecated numeric font size values.
+ $submit_button_styles .= $style;
+ $email_field_styles .= $style;
+ }
+ if ( isset( $instance['custom_padding'] ) && 'undefined' !== $instance['custom_padding'] ) {
+ $style = 'padding: ' .
+ $instance['custom_padding'] . 'px ' .
+ round( $instance['custom_padding'] * 1.5 ) . 'px ' .
+ $instance['custom_padding'] . 'px ' .
+ round( $instance['custom_padding'] * 1.5 ) . 'px; ';
+
+ $submit_button_styles .= $style;
+ $email_field_styles .= $style;
+ }
- // Build up a string with the submit button's classes and styles and set it on the instance
- $submit_button_classes = isset( $instance['submit_button_classes'] ) ? $instance['submit_button_classes'] : '';
- $submit_button_styles = '';
- if ( isset( $instance['custom_background_button_color'] ) ) {
- $submit_button_styles .= 'background-color: ' . $instance['custom_background_button_color'] . '; ';
+ $button_spacing = 0;
+ if ( ! empty( $instance['custom_spacing'] ) ) {
+ $button_spacing = $instance['custom_spacing'];
+ }
+ if ( isset( $instance['button_on_newline'] ) && 'true' === $instance['button_on_newline'] ) {
+ $submit_button_styles .= 'margin-top: ' . $button_spacing . 'px; ';
+ } else {
+ $submit_button_styles .= 'margin-left: ' . $button_spacing . 'px; ';
+ }
+
+ if ( isset( $instance['custom_border_radius'] ) && 'undefined' !== $instance['custom_border_radius'] ) {
+ $style = 'border-radius: ' . $instance['custom_border_radius'] . 'px; ';
+ $submit_button_styles .= $style;
+ $email_field_styles .= $style;
+ }
+ if ( isset( $instance['custom_border_weight'] ) && 'undefined' !== $instance['custom_border_weight'] ) {
+ $style = 'border-width: ' . $instance['custom_border_weight'] . 'px; ';
+ $submit_button_styles .= $style;
+ $email_field_styles .= $style;
+ }
+ if ( isset( $instance['custom_border_color'] ) && 'undefined' !== $instance['custom_border_color'] ) {
+ $style =
+ 'border-color: ' . $instance['custom_border_color'] . '; ' .
+ 'border-style: solid;';
+
+ $submit_button_styles .= $style;
+ $email_field_styles .= $style;
}
- if ( isset( $instance['custom_text_button_color'] ) ) {
- $submit_button_styles .= 'color: ' . $instance['custom_text_button_color'] . ';';
+ if ( isset( $instance['success_message'] ) && 'undefined' !== $instance['success_message'] ) {
+ $success_message = wp_kses( stripslashes( $instance['success_message'] ), array() );
}
$instance = shortcode_atts(
@@ -768,8 +893,21 @@ function jetpack_do_subscription_form( $instance ) {
if ( ! empty( $submit_button_classes ) ) {
$instance['submit_button_classes'] = $submit_button_classes;
}
- if ( ! empty ( $submit_button_styles ) ) {
- $instance['submit_button_styles'] = $submit_button_styles;
+ if ( ! empty( $email_field_classes ) ) {
+ $instance['email_field_classes'] = $email_field_classes;
+ }
+
+ if ( ! empty( $submit_button_styles ) ) {
+ $instance['submit_button_styles'] = trim( $submit_button_styles );
+ }
+ if ( ! empty( $submit_button_wrapper_styles ) ) {
+ $instance['submit_button_wrapper_styles'] = trim( $submit_button_wrapper_styles );
+ }
+ if ( ! empty( $email_field_styles ) ) {
+ $instance['email_field_styles'] = trim( $email_field_styles );
+ }
+ if ( ! empty( $success_message ) ) {
+ $instance['success_message'] = trim( $success_message );
}
$args = array(
@@ -790,11 +928,3 @@ function jetpack_blog_subscriptions_init() {
}
add_action( 'widgets_init', 'jetpack_blog_subscriptions_init' );
-
-function jetpack_register_subscriptions_block() {
- if ( class_exists( 'WP_Block_Type_Registry' ) && ! WP_Block_Type_Registry::get_instance()->is_registered( 'jetpack/subscriptions' ) ) {
- jetpack_register_block( 'jetpack/subscriptions' );
- }
-}
-
-add_action( 'init', 'jetpack_register_subscriptions_block' );
diff --git a/plugins/jetpack/modules/theme-tools.php b/plugins/jetpack/modules/theme-tools.php
index 55dbb4bc..a0cc3b13 100644
--- a/plugins/jetpack/modules/theme-tools.php
+++ b/plugins/jetpack/modules/theme-tools.php
@@ -43,6 +43,7 @@ function jetpack_load_theme_compat() {
'twentyseventeen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentyseventeen.php',
'twentynineteen' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentynineteen.php',
'twentytwenty' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwenty.php',
+ 'twentytwentyone' => JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwentyone.php',
)
);
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
index 2cf7d0bb..e2065083 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen-rtl.css
@@ -1 +1 @@
-.infinite-scroll .pagination,.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer{display:none}.infinity-end.neverending .site-footer{display:block}.infinite-loader{margin:calc(3 * 1rem) auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}.site-main #infinite-handle{margin:calc(2 * 1rem) auto}.site-main #infinite-handle span{background:100% 0;display:block;font-size:.8888888889em;text-align:center}.site-main #infinite-handle span button,.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{transition:background 150ms ease-in-out;background:#0073aa;border:none;border-radius:5px;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.8888888889em;font-weight:600;line-height:1.2;outline:0;padding:.66rem 1rem}.site-main #infinite-handle span button:hover{cursor:pointer}.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{background:#111}.site-main #infinite-handle span button:focus{outline:thin dotted;outline-offset:-4px}.site-main .infinite-wrap .entry:first-of-type{margin-top:calc(6 * 1rem)}.entry .jetpack-video-wrapper{margin-bottom:1.75em}.sd-block{line-height:1}.entry div.sharedaddy h3.sd-title,.entry h3.sd-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.125em;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry div.sharedaddy h3.sd-title:before,.entry h3.sd-title:before{background:#767676;border-top:none;content:"\020";display:block;height:2px;margin:1rem 0;width:1em;min-width:inherit}.sd-social-icon-text .sd-content ul,.sd-social-text .sd-content ul{margin-bottom:-.3125em!important}.sd-social-icon .sd-content ul,.sd-social-official .sd-content ul{margin-bottom:0!important}.entry #sharing_email .sharing_send,.entry .sd-content ul li .option a.share-ustom,.entry .sd-content ul li a.sd-button,.entry .sd-content ul li.advanced a.share-more,.entry .sd-content ul li.preview-item div.option.option-smart-off a,.entry .sd-social-icon .sd-content ul li a.sd-button,.entry .sd-social-icon-text .sd-content ul li a.sd-button,.entry .sd-social-official .sd-content>ul>li .digg_button>a,.entry .sd-social-official .sd-content>ul>li>a.sd-button,.entry .sd-social-text .sd-content ul li a.sd-button{box-shadow:none}.entry #jp-relatedposts{padding-top:0;margin-top:32px;margin-bottom:32px}.entry #jp-relatedposts h3.jp-relatedposts-headline{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.125em;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts h3.jp-relatedposts-headline:before{background:#767676;border-top:none;content:"\020";display:block;height:2px;margin:1rem 0;width:1em;min-width:inherit}.entry #jp-relatedposts h3.jp-relatedposts-headline em:before{display:none}.entry #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{opacity:1}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1em;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span a,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title a{font-weight:700}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title{margin-top:.5em;margin-bottom:.5em}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:13px;font-weight:500}.entry #jp-relatedposts .jp-relatedposts-items p,.entry #jp-relatedposts .jp-relatedposts-items-visual .entry h4.jp-relatedposts-post-title{letter-spacing:normal}#wpstats{display:none}.comments-area .comments-title-wrap+.comment-respond .comment-reply-title{display:none}.widget_author_grid ul,.widget_authors ul,.widget_jp_blogs_i_follow ul,.widget_links ul,.widget_rss_links ul{list-style:none;padding-right:0;padding-left:0}.widget_jp_blogs_i_follow li,.widget_links li,.widget_rss_links li{color:#767676;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:calc(22px * 1.125);font-weight:700;line-height:1.2;margin-top:.5rem;margin-bottom:.5rem}.widget.widget_authors ul li>ul{list-style-type:disc;padding-right:4.25rem}.rtl .widget.widget_authors ul li>ul{padding-right:0;padding-left:1rem}.widget_authors>ul>li>a{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;position:relative}.widget.widget_authors li a strong{line-height:1.2;position:absolute;top:0}.widget.widget_authors .avatar{float:right;margin-left:1em}.widget_authors li>ul{clear:both}.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4{font-size:100%;margin:1rem 0}.widget_goodreads div[class^=gr_custom_container]{border:none}.widget_goodreads div[class^=gr_custom_each_container]{border-bottom:none;margin-bottom:1rem;padding-bottom:0}.widget_goodreads div[class^=gr_custom_author],.widget_goodreads h2[class^=gr_custom_header]{font-size:inherit;line-height:1.15}.widget_eu_cookie_law_widget #eu-cookie-law{border-color:#ccc;color:#767676;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.68182em;padding:.5rem 1rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1em;padding:10px 12px}.widget_rss li a.rsswidget{display:block;margin:1rem 0 .5rem}.widget_rss .rssSummary{font-family:NonBreakingSpaceOverride,"Hoefler Text","Baskerville Old Face",Garamond,"Times New Roman",serif;font-weight:400;font-size:22px}.widget_rss .rss-date,.widget_rss cite{color:#9c9c9c;display:block;font-size:.71111em;font-weight:500;margin:.5rem 0}.widget_rss cite{font-style:normal}.widget_rss cite:before{content:"\2014\00a0"}.widget_top-posts .widgets-list-layout-links{float:inherit;margin-right:calc(40px + 1rem);width:inherit}@media only screen and (min-width:600px){.widget.widget_search .search-field{max-width:calc(50vw - 20%)}}.twentynineteen-customizer .entry .entry-footer>span,.twentynineteen-customizer .entry .entry-meta>span{display:inline} \ No newline at end of file
+.infinite-scroll .pagination,.infinite-scroll .posts-navigation,.infinite-scroll.neverending .site-footer{display:none}.infinity-end.neverending .site-footer{display:block}.infinite-loader{margin:calc(3 * 1rem) auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}.site-main #infinite-handle{margin:calc(2 * 1rem) auto}.site-main #infinite-handle span{background:100% 0;display:block;font-size:.8888888889em;text-align:center}.site-main #infinite-handle span button,.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{transition:background 150ms ease-in-out;background:#2271b1;border:none;border-radius:5px;box-sizing:border-box;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.8888888889em;font-weight:600;line-height:1.2;outline:0;padding:.66rem 1rem}.site-main #infinite-handle span button:hover{cursor:pointer}.site-main #infinite-handle span button:focus,.site-main #infinite-handle span button:hover{background:#111}.site-main #infinite-handle span button:focus{outline:thin dotted;outline-offset:-4px}.site-main .infinite-wrap .entry:first-of-type{margin-top:calc(6 * 1rem)}.entry .jetpack-video-wrapper{margin-bottom:1.75em}.sd-block{line-height:1}.entry div.sharedaddy h3.sd-title,.entry h3.sd-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.125em;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry div.sharedaddy h3.sd-title:before,.entry h3.sd-title:before{background:#767676;border-top:none;content:"\020";display:block;height:2px;margin:1rem 0;width:1em;min-width:inherit}.sd-social-icon-text .sd-content ul,.sd-social-text .sd-content ul{margin-bottom:-.3125em!important}.sd-social-icon .sd-content ul,.sd-social-official .sd-content ul{margin-bottom:0!important}.entry #sharing_email .sharing_send,.entry .sd-content ul li .option a.share-ustom,.entry .sd-content ul li a.sd-button,.entry .sd-content ul li.advanced a.share-more,.entry .sd-content ul li.preview-item div.option.option-smart-off a,.entry .sd-social-icon .sd-content ul li a.sd-button,.entry .sd-social-icon-text .sd-content ul li a.sd-button,.entry .sd-social-official .sd-content>ul>li .digg_button>a,.entry .sd-social-official .sd-content>ul>li>a.sd-button,.entry .sd-social-text .sd-content ul li a.sd-button{box-shadow:none}.entry #jp-relatedposts{padding-top:0;margin-top:32px;margin-bottom:32px}.entry #jp-relatedposts h3.jp-relatedposts-headline{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1.125em;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts h3.jp-relatedposts-headline:before{background:#767676;border-top:none;content:"\020";display:block;height:2px;margin:1rem 0;width:1em;min-width:inherit}.entry #jp-relatedposts h3.jp-relatedposts-headline em:before{display:none}.entry #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{opacity:1}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:1em;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span a,.entry #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title a{font-weight:700}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-excerpt,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title{margin-top:.5em;margin-bottom:.5em}.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,.entry #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:13px;font-weight:500}.entry #jp-relatedposts .jp-relatedposts-items p,.entry #jp-relatedposts .jp-relatedposts-items-visual .entry h4.jp-relatedposts-post-title{letter-spacing:normal}#wpstats{display:none}.comments-area .comments-title-wrap+.comment-respond .comment-reply-title{display:none}.widget_author_grid ul,.widget_authors ul,.widget_jp_blogs_i_follow ul,.widget_links ul,.widget_rss_links ul{list-style:none;padding-right:0;padding-left:0}.widget_jp_blogs_i_follow li,.widget_links li,.widget_rss_links li{color:#767676;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:calc(22px * 1.125);font-weight:700;line-height:1.2;margin-top:.5rem;margin-bottom:.5rem}.widget.widget_authors ul li>ul{list-style-type:disc;padding-right:4.25rem}.rtl .widget.widget_authors ul li>ul{padding-right:0;padding-left:1rem}.widget_authors>ul>li>a{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;position:relative}.widget.widget_authors li a strong{line-height:1.2;position:absolute;top:0}.widget.widget_authors .avatar{float:right;margin-left:1em}.widget_authors li>ul{clear:both}.widget_jetpack_display_posts_widget .jetpack-display-remote-posts h4{font-size:100%;margin:1rem 0}.widget_goodreads div[class^=gr_custom_container]{border:none}.widget_goodreads div[class^=gr_custom_each_container]{border-bottom:none;margin-bottom:1rem;padding-bottom:0}.widget_goodreads div[class^=gr_custom_author],.widget_goodreads h2[class^=gr_custom_header]{font-size:inherit;line-height:1.15}.widget_eu_cookie_law_widget #eu-cookie-law{border-color:#ccc;color:#767676;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",sans-serif;font-size:.68182em;padding:.5rem 1rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1em;padding:10px 12px}.widget_rss li a.rsswidget{display:block;margin:1rem 0 .5rem}.widget_rss .rssSummary{font-family:NonBreakingSpaceOverride,"Hoefler Text","Baskerville Old Face",Garamond,"Times New Roman",serif;font-weight:400;font-size:22px}.widget_rss .rss-date,.widget_rss cite{color:#9c9c9c;display:block;font-size:.71111em;font-weight:500;margin:.5rem 0}.widget_rss cite{font-style:normal}.widget_rss cite:before{content:"\2014\00a0"}.widget_top-posts .widgets-list-layout-links{float:inherit;margin-right:calc(40px + 1rem);width:inherit}@media only screen and (min-width:600px){.widget.widget_search .search-field{max-width:calc(50vw - 20%)}}.twentynineteen-customizer .entry .entry-footer>span,.twentynineteen-customizer .entry .entry-meta>span{display:inline} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
index 4ba953f0..75655939 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.css
@@ -37,7 +37,7 @@
.site-main #infinite-handle span button:hover,
.site-main #infinite-handle span button:focus {
transition: background 150ms ease-in-out;
- background: #0073aa;
+ background: #2271b1;
border: none;
border-radius: 5px;
box-sizing: border-box;
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
index 12d9b74a..23692325 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
+++ b/plugins/jetpack/modules/theme-tools/compat/twentynineteen.php
@@ -124,3 +124,87 @@ function twentynineteen_jetpack_body_classes( $classes ) {
return $classes;
}
add_filter( 'body_class', 'twentynineteen_jetpack_body_classes' );
+
+/**
+ * Load AMP theme specific hooks for infinite scroll.
+ *
+ * @return void
+ */
+function amp_twentynineteen_infinite_scroll_render_hooks() {
+ add_filter( 'jetpack_amp_infinite_footers', 'twentynineteen_amp_infinite_footers', 10, 2 );
+ add_filter( 'jetpack_amp_infinite_output', 'twentynineteen_amp_infinite_output' );
+ add_filter( 'jetpack_amp_infinite_older_posts', 'twentynineteen_amp_infinite_older_posts' );
+}
+
+/**
+ * Get the theme specific footers.
+ *
+ * @param array $footers The footers of the themes.
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return mixed
+ */
+function twentynineteen_amp_infinite_footers( $footers, $buffer ) {
+ // Collect the footer wrapper.
+ preg_match(
+ '/<footer id="colophon".*<!-- #colophon -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ return $footers;
+}
+
+/**
+ * Hide and remove various elements from next page load.
+ *
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return string
+ */
+function twentynineteen_amp_infinite_output( $buffer ) {
+ // Hide site header on next page load.
+ $buffer = preg_replace(
+ '/id="masthead"/',
+ '$0 next-page-hide',
+ $buffer
+ );
+
+ // Hide pagination on next page load.
+ $buffer = preg_replace(
+ '/class=".*navigation pagination.*"/',
+ '$0 next-page-hide hidden',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<footer id="colophon".*<!-- #colophon -->/s',
+ '',
+ $buffer
+ );
+
+ return $buffer;
+}
+
+/**
+ * Filter the AMP infinite scroll older posts button
+ *
+ * @return string
+ */
+function twentynineteen_amp_infinite_older_posts() {
+ ob_start();
+ ?>
+<div id="infinite-handle" style="text-align: center;">
+ <span>
+ <a href="{{url}}">
+ <button>
+ <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
+ </button>
+ </a>
+ </span>
+</div>
+ <?php
+ return ob_get_clean();
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
index abf474eb..b8d95c0d 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty-rtl.css
@@ -1 +1 @@
-#infinite-footer{z-index:1}.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinity-end.neverending #site-footer{margin:8rem 0 0}.infinite-loader{margin:5rem auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:5rem auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{list-style:none;margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_flickr .flickr-size-thumbnail .flickr-images{justify-content:left}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .tiled-gallery{margin:0 auto 1.5em}.entry-content .jetpack-recipe{margin:1em auto}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important} \ No newline at end of file
+#infinite-footer{z-index:1}.infinite-scroll .pagination-wrapper,.infinite-scroll.neverending #site-footer,.infinite-scroll.neverending .footer-nav-widgets-wrapper{display:none}.infinite-end.neverending .footer-nav-widgets-wrapper,.infinity-end.neverending #site-footer{display:block}.infinity-end.neverending #site-footer{margin:8rem 0 0}.infinite-loader{margin:5rem auto}.infinite-loader .spinner{margin:0 auto;right:inherit!important}#site-content #infinite-handle{margin:5rem auto;max-width:58rem;width:calc(100% - 8rem)}#site-content #infinite-handle span{background:100% 0;display:block;font-size:1.7rem;text-align:center}#site-content #infinite-handle span button,#site-content #infinite-handle span button:focus,#site-content #infinite-handle span button:hover{-webkit-appearance:none;-moz-appearance:none;border:none;background:#cd2653;border-radius:0;color:#fff;cursor:pointer;display:inline-block;font-size:1.5rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;margin:0;opacity:1;padding:1.1em 1.44em;text-align:center;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}#site-content #infinite-handle span button:hover{text-decoration:underline}#site-content .infinite-wrap .hentry:first-of-type{padding:4rem 0 0}.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:2.8rem;font-weight:700;letter-spacing:-.016875em;line-height:1.5}@media (min-width:700px){.entry-content #jp-relatedposts h3.jp-relatedposts-headline,.entry-content div.sharedaddy h3.sd-title,.entry-content h3.sd-title{font-size:4rem}}.entry-content div.sharedaddy h3.sd-title:before,.entry-content h3.sd-title:before{border:0 none}.entry-content #jp-relatedposts h3.jp-relatedposts-headline em:before{border:0 none}.widget_authors ul{list-style:none;margin-right:0}.widget_authors li{margin-top:1rem;list-style:none}.widget_authors li:first-child{margin-top:2rem}.widget_flickr .flickr-size-thumbnail .flickr-images{justify-content:left}.widget_eu_cookie_law_widget #eu-cookie-law,.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.6rem;font-weight:500;padding:2rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.4rem;font-weight:600;letter-spacing:.0333em;line-height:1.25;padding:1.1em 1.44em;text-decoration:none;text-transform:uppercase;transition:opacity .15s linear}@media (max-width:600px){.widget_eu_cookie_law_widget #eu-cookie-law{font-size:1.4rem;padding:1.5rem 1.5rem 6.5rem}.widget_eu_cookie_law_widget #eu-cookie-law .accept{font-size:1.2rem;bottom:1.5rem;left:auto;right:1.5rem;padding:1rem;margin:0}}.jetpack_subscription_widget .widget-title label{font-size:2.8rem;font-weight:700;margin:0}@media (min-width:700px){.jetpack_subscription_widget .widget-title label{font-size:4rem}}.widget_blog_subscription form p:not(#subscribe-email) input[type=text]{padding:1.5rem 1.8rem!important;width:100%!important}.entry-content #jp-relatedposts{max-width:120rem;margin:1em auto;width:calc(100% - 4rem)}@media (min-width:700px){.entry-content #jp-relatedposts{width:calc(100% - 8rem)}}#jp-relatedposts .jp-relatedposts-grid{display:flex;flex-grow:1;flex-basis:0;justify-content:space-between;box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:calc(33% - 2rem);margin-right:0;margin-left:0}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-grid{flex-direction:column}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post,#jp-relatedposts .jp-relatedposts-post{width:100%}}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:0}#jp-relatedposts#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:inherit;line-height:1.5}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img{width:100%}.entry-content .tiled-gallery{margin:0 auto 1.5em}.entry-content .jetpack-recipe{margin:1em auto}.entry-content .fb-video{display:block}.jp-related-posts-i2__post li{margin:0}.wp-block-jetpack-gif{margin:1em auto!important}.entry-content img.latex{display:inline}iframe#wpnt-notes-iframe2.wide{width:auto!important}.admin-bar{position:unset!important}.screen-reader-text{position:absolute} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
index 6474bf35..9d88c7fe 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.css
@@ -163,6 +163,28 @@
}
}
+/* Subscriptions Widget */
+
+.jetpack_subscription_widget .widget-title label {
+ font-size: 2.8rem;
+ font-weight: 700;
+ margin: 0;
+}
+@media ( min-width: 700px ) {
+ .jetpack_subscription_widget .widget-title label {
+ font-size: 4rem;
+ }
+}
+
+/*
+ * This overwrites inline styles added to the wpcom widget,
+ * hence the use of !important
+ */
+.widget_blog_subscription form p:not(#subscribe-email) input[type="text"] {
+ padding: 1.5rem 1.8rem !important;
+ width: 100% !important;
+}
+
/* Related Posts */
.entry-content #jp-relatedposts {
@@ -235,6 +257,11 @@
margin: 1em auto;
}
+/* Facebook */
+.entry-content .fb-video {
+ display: block;
+}
+
/**
* Blocks
*/
@@ -249,3 +276,30 @@
/* !important because the gif block styles are loaded in the footer after this file */
margin: 1em auto !important;
}
+
+/**
+ * Images
+ */
+
+/* Beautiful Math */
+.entry-content img.latex {
+ display: inline;
+}
+
+/**
+ * .com Toolbar
+ */
+
+/* fix wordpress.com notification iframe width */
+iframe#wpnt-notes-iframe2.wide {
+ width: auto !important;
+}
+
+/* fix site position when overflow nav modal */
+.admin-bar {
+ position: unset !important;
+}
+
+.screen-reader-text {
+ position: absolute;
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
index e7ea998f..f2afadb6 100644
--- a/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwenty.php
@@ -3,7 +3,7 @@
* Jetpack Compatibility File
* See: https://jetpack.com/
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -51,9 +51,6 @@ function twentytwenty_jetpack_setup() {
)
);
- // Social Menu.
- add_theme_support( 'jetpack-social-menu', 'svg' );
-
/**
* Add theme support for geo-location.
*/
@@ -160,3 +157,116 @@ function twentytwenty_infinity_accent_color_css() {
wp_add_inline_style( 'twentytwenty-jetpack', $custom_css );
}
add_action( 'wp_enqueue_scripts', 'twentytwenty_infinity_accent_color_css' );
+
+/**
+ * Load AMP theme specific hooks for infinite scroll.
+ *
+ * @return void
+ */
+function amp_twentytwenty_infinite_scroll_render_hooks() {
+ add_filter( 'jetpack_amp_infinite_footers', 'twentytwenty_amp_infinite_footers', 10, 2 );
+ add_filter( 'jetpack_amp_infinite_output', 'twentytwenty_amp_infinite_output' );
+ add_filter( 'jetpack_amp_infinite_separator', 'twentytwenty_amp_infinite_separator' );
+ add_filter( 'jetpack_amp_infinite_older_posts', 'twentytwenty_amp_infinite_older_posts' );
+}
+
+/**
+ * Get the theme specific footers.
+ *
+ * @param array $footers The footers of the themes.
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return mixed
+ */
+function twentytwenty_amp_infinite_footers( $footers, $buffer ) {
+ // Collect the footer wrapper.
+ preg_match(
+ '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ // Collect the footer wrapper.
+ preg_match(
+ '/<footer id="site-footer".*<!-- #site-footer -->/s',
+ $buffer,
+ $footer
+ );
+ $footers[] = reset( $footer );
+
+ return $footers;
+}
+
+/**
+ * Hide and remove various elements from next page load.
+ *
+ * @param string $buffer Contents of the output buffer.
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_output( $buffer ) {
+ // Hide site header on next page load.
+ $buffer = preg_replace(
+ '/id="site-header"/',
+ '$0 next-page-hide',
+ $buffer
+ );
+
+ // Hide pagination on next page load.
+ $buffer = preg_replace(
+ '/class=".*pagination-wrapper.*"/',
+ '$0 next-page-hide hidden',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<div class="footer-nav-widgets-wrapper.*<!-- .footer-nav-widgets-wrapper -->/s',
+ '',
+ $buffer
+ );
+
+ // Remove the footer as it will be added back to amp next page footer.
+ $buffer = preg_replace(
+ '/<footer id="site-footer".*<!-- #site-footer -->/s',
+ '',
+ $buffer
+ );
+
+ return $buffer;
+}
+
+/**
+ * Filter the AMP infinite scroll separator
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_separator() {
+ ob_start();
+ ?>
+<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true">
+ <?php
+ return ob_get_clean();
+}
+
+/**
+ * Filter the AMP infinite scroll older posts button
+ *
+ * @return string
+ */
+function twentytwenty_amp_infinite_older_posts() {
+ ob_start();
+ ?>
+<div id="infinite-handle" class="read-more-button-wrap">
+ <span>
+ <a href="{{url}}" class="more-link" rel="amphtml">
+ <span class="faux-button">
+ <?php esc_html_e( 'Older posts', 'jetpack' ); ?>
+ </span>
+ </a>
+ </span>
+</div>
+ <?php
+ return ob_get_clean();
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css
new file mode 100644
index 00000000..e130386d
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone-rtl.css
@@ -0,0 +1 @@
+.entry-content #jp-relatedposts{max-width:var(--responsive--aligndefault-width);margin-right:auto;margin-left:auto}.infinite-scroll .pagination,.infinite-scroll.neverending .widget-area,.infinite-scroll.neverending footer#colophon{display:none}.infinity-end.neverending .widget-area,.infinity-end.neverending footer#colophon{display:block}body[class*=" infinity-"] main#main>article:last-of-type .entry-footer{border-bottom:var(--separator--height) solid var(--separator--border-color)}body.infinity-end .site-main>div:last-of-type>article:last-of-type .entry-footer,body:not(.infinity-end) .site-main>div:nth-last-child(2)>article:last-of-type .entry-footer{border:none}.site-main>.infinite-wrap>article>.entry-footer{margin-top:var(--global--spacing-vertical);padding-top:var(--global--spacing-unit);padding-bottom:calc(3 * var(--global--spacing-vertical));border-bottom:var(--separator--height) solid var(--separator--border-color)}.site-main>.infinite-wrap>*{margin-top:calc(3 * var(--global--spacing-vertical));margin-bottom:calc(3 * var(--global--spacing-vertical))}#infinite-handle{text-align:center}.infinite-loader{margin:calc(3 * 1rem) auto}#infinite-handle span{color:var(--global--color-background);background-color:var(--global--color-secondary);font-family:var(--global--font-primary);font-size:var(--global--font-size-base);font-weight:500;line-height:1.5;border-width:3px;border-radius:0;padding:15px calc(2 * var(--button--padding-vertical));max-width:170px;margin:auto}#infinite-handle span:hover{color:var(--global--color-secondary);background-color:var(--global--color-background);border-color:var(--global--color-secondary);border-style:solid}#infinite-handle span:active{color:var(--global--color-secondary);background-color:var(--global--color-background);border-color:var(--global--color-secondary)}.widget-area .widget_block{min-width:0}@media only screen and (min-width:1024px){.widget-area{grid-template-columns:repeat(3,minmax(0,1fr))}} \ No newline at end of file
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css
new file mode 100644
index 00000000..f8d6dd56
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.css
@@ -0,0 +1,98 @@
+/**
+ * Related Posts
+ */
+
+.entry-content #jp-relatedposts {
+ max-width: var(--responsive--aligndefault-width);
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/**
+ * Infinite Scroll
+ */
+
+/* Globally hidden elements when Infinite Scroll is supported and in use. */
+.infinite-scroll .pagination,
+.infinite-scroll.neverending .widget-area,
+.infinite-scroll.neverending footer#colophon {
+ /* Theme Footer (when set to scrolling) */
+ display: none;
+}
+
+/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
+.infinity-end.neverending .widget-area,
+.infinity-end.neverending footer#colophon {
+ display: block;
+}
+
+body[class*=" infinity-"] main#main > article:last-of-type .entry-footer {
+ border-bottom: var(--separator--height) solid var(--separator--border-color);
+}
+
+body:not(.infinity-end) .site-main > div:nth-last-child(2) > article:last-of-type .entry-footer,
+body.infinity-end .site-main > div:last-of-type > article:last-of-type .entry-footer {
+ border: none;
+}
+
+.site-main > .infinite-wrap > article > .entry-footer {
+ margin-top: var(--global--spacing-vertical);
+ padding-top: var(--global--spacing-unit);
+ padding-bottom: calc(3 * var(--global--spacing-vertical));
+ border-bottom: var(--separator--height) solid var(--separator--border-color);
+}
+
+.site-main > .infinite-wrap > * {
+ margin-top: calc(3 * var(--global--spacing-vertical));
+ margin-bottom: calc(3 * var(--global--spacing-vertical));
+}
+
+#infinite-handle {
+ text-align: center;
+}
+
+.infinite-loader {
+ margin: calc(3 * 1rem) auto;
+}
+
+#infinite-handle span {
+ color: var(--global--color-background);
+ background-color: var(--global--color-secondary);;
+ font-family: var(--global--font-primary);
+ font-size: var(--global--font-size-base);
+ font-weight: 500;
+ line-height: 1.5;
+ border-width: 3px;
+ border-radius: 0;
+ padding: 15px calc(2 * var(--button--padding-vertical));
+ max-width: 170px;
+ margin: auto;
+}
+
+#infinite-handle span:hover {
+ color: var(--global--color-secondary);
+ background-color: var(--global--color-background);
+ border-color: var(--global--color-secondary);
+ border-style: solid;
+}
+
+#infinite-handle span:active {
+ color: var(--global--color-secondary);
+ background-color: var(--global--color-background);
+ border-color: var(--global--color-secondary);
+}
+
+/* Customizer */
+.widget-area .widget_block {
+ min-width: 0;
+}
+
+@media only screen and (min-width: 1024px) {
+ .widget-area {
+ /*
+ Fix: minimum width of 0
+ See: https://css-tricks.com/preventing-a-grid-blowout/
+ */
+ grid-template-columns: repeat( 3, minmax(0, 1fr) );
+ }
+}
diff --git a/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php
new file mode 100644
index 00000000..e6f6ca6f
--- /dev/null
+++ b/plugins/jetpack/modules/theme-tools/compat/twentytwentyone.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Jetpack Compatibility File
+ * See: https://jetpack.com/
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Add Jetpack extra functionality to Twenty Twenty One.
+ */
+function twentytwentyone_jetpack_setup() {
+
+ /**
+ * Add theme support for Infinite Scroll.
+ */
+ add_theme_support(
+ 'infinite-scroll',
+ array(
+ 'type' => 'click',
+ 'container' => 'main',
+ 'render' => 'twentytwentyone_infinite_scroll_render',
+ 'footer' => 'main',
+ )
+ );
+
+ /**
+ * Add theme support for geo-location.
+ */
+ add_theme_support( 'jetpack-geo-location' );
+
+ /**
+ * Add theme support for Content Options.
+ */
+ add_theme_support(
+ 'jetpack-content-options',
+ array(
+ 'blog-display' => array( 'content', 'excerpt' ),
+ 'post-details' => array(
+ 'stylesheet' => 'twenty-twenty-one-style',
+ 'date' => '.posted-on',
+ 'categories' => '.cat-links',
+ ),
+ 'featured-images' => array(
+ 'archive' => true,
+ 'post' => true,
+ 'page' => true,
+ ),
+ )
+ );
+}
+add_action( 'after_setup_theme', 'twentytwentyone_jetpack_setup' );
+
+/**
+ * Custom render function for Infinite Scroll.
+ */
+function twentytwentyone_infinite_scroll_render() {
+ while ( have_posts() ) {
+ the_post();
+ get_template_part( 'template-parts/content/content', get_theme_mod( 'display_excerpt_or_full_post', 'excerpt' ) );
+ }
+}
+
+/**
+ * Add our compat CSS file for custom styles.
+ * Set the version equal to filemtime for development builds, and the JETPACK__VERSION for production
+ * or skip it entirely for wpcom.
+ */
+function twentytwentyone_enqueue_jetpack_style() {
+ $version = Jetpack::is_development_version()
+ ? filemtime( JETPACK__PLUGIN_DIR . 'modules/theme-tools/compat/twentytwentyone.css' )
+ : JETPACK__VERSION;
+
+ wp_enqueue_style( 'twentytwentyone-jetpack', plugins_url( 'twentytwentyone.css', __FILE__ ), array(), $version );
+ wp_style_add_data( 'twentytwentyone-jetpack', 'rtl', 'replace' );
+}
+add_action( 'wp_enqueue_scripts', 'twentytwentyone_enqueue_jetpack_style' );
diff --git a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php b/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
index a3f74d0b..66273b12 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/blog-display.php
@@ -30,9 +30,25 @@ if ( ! in_array( $blog_display, array( 'content', 'excerpt', 'mixed' ) ) ) {
/**
* Apply Content filters.
+ *
+ * @since 9.7.0 Deprecated $content parameter.
+ *
+ * @param string $content Post content. Deprecated.
*/
-function jetpack_blog_display_custom_excerpt( $content ) {
+function jetpack_blog_display_custom_excerpt( $content = '' ) {
+ if ( ! empty( $content ) ) {
+ _doing_it_wrong(
+ 'jetpack_blog_display_custom_excerpt',
+ esc_html__( 'You do not need to pass a $content parameter anymore.', 'jetpack' ),
+ 'jetpack-9.7.0'
+ );
+ }
+
$post = get_post();
+ if ( empty( $post ) ) {
+ return '';
+ }
+
if ( empty( $post->post_excerpt ) ) {
$text = strip_shortcodes( $post->post_content );
$text = str_replace( ']]>', ']]&gt;', $text );
@@ -47,7 +63,7 @@ function jetpack_blog_display_custom_excerpt( $content ) {
* enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
* Do not translate into your own language.
*/
- if ( strpos( _x( 'words', 'Word count type. Do not translate!' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
+ if ( strpos( _x( 'words', 'Word count type. Do not translate!', 'jetpack' ), 'characters' ) === 0 && preg_match( '/^utf\-?8$/i', get_option( 'blog_charset' ) ) ) {
$text = trim( preg_replace( "/[\n\r\t ]+/", ' ', $text ), ' ' );
preg_match_all( '/./u', $text, $words );
$words = array_slice( $words[0], 0, $excerpt_length + 1 );
@@ -76,12 +92,16 @@ function jetpack_blog_display_custom_excerpt( $content ) {
function jetpack_the_content_to_the_excerpt( $content ) {
if ( ( is_home() || is_archive() ) && ! is_post_type_archive( array( 'jetpack-testimonial', 'jetpack-portfolio', 'product' ) ) ) {
if ( post_password_required() ) {
- $content = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) );
+ $excerpt = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) );
} else {
- $content = jetpack_blog_display_custom_excerpt( $content );
+ $excerpt = jetpack_blog_display_custom_excerpt();
}
}
- return $content;
+ if ( empty( $excerpt ) ) {
+ return $content;
+ } else {
+ return $excerpt;
+ }
}
/**
@@ -118,7 +138,7 @@ function jetpack_the_content_customizer( $content ) {
if ( post_password_required() ) {
$excerpt = sprintf( '<p>%s</p>', esc_html__( 'There is no excerpt because this is a protected post.', 'jetpack' ) );
} else {
- $excerpt = jetpack_blog_display_custom_excerpt( $content );
+ $excerpt = jetpack_blog_display_custom_excerpt();
}
}
if ( empty( $excerpt ) ) {
diff --git a/plugins/jetpack/modules/theme-tools/content-options/customizer.js b/plugins/jetpack/modules/theme-tools/content-options/customizer.js
index afe7b492..5e383bc3 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/customizer.js
+++ b/plugins/jetpack/modules/theme-tools/content-options/customizer.js
@@ -8,9 +8,9 @@
* Contains handlers to make Theme Customizer preview reload changes asynchronously.
*/
-( function( $ ) {
+( function ( $ ) {
// Blog Display
- wp.customize( 'jetpack_content_blog_display', function( value ) {
+ wp.customize( 'jetpack_content_blog_display', function ( value ) {
if ( 'content' === blogDisplay.display ) {
$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -47,7 +47,7 @@
position: 'relative',
} );
}
- value.bind( function( to ) {
+ value.bind( function ( to ) {
if ( 'content' === to ) {
$( '.jetpack-blog-display.jetpack-the-excerpt' ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -91,8 +91,8 @@
} );
// Post Details: Date.
- wp.customize( 'jetpack_content_post_details_date', function( value ) {
- value.bind( function( to ) {
+ wp.customize( 'jetpack_content_post_details_date', function ( value ) {
+ value.bind( function ( to ) {
if ( false === to ) {
$( postDetails.date ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -116,8 +116,8 @@
} );
// Post Details: Categories.
- wp.customize( 'jetpack_content_post_details_categories', function( value ) {
- value.bind( function( to ) {
+ wp.customize( 'jetpack_content_post_details_categories', function ( value ) {
+ value.bind( function ( to ) {
if ( false === to ) {
$( postDetails.categories ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -141,8 +141,8 @@
} );
// Post Details: Tags.
- wp.customize( 'jetpack_content_post_details_tags', function( value ) {
- value.bind( function( to ) {
+ wp.customize( 'jetpack_content_post_details_tags', function ( value ) {
+ value.bind( function ( to ) {
if ( false === to ) {
$( postDetails.tags ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -166,8 +166,8 @@
} );
// Post Details: Author.
- wp.customize( 'jetpack_content_post_details_author', function( value ) {
- value.bind( function( to ) {
+ wp.customize( 'jetpack_content_post_details_author', function ( value ) {
+ value.bind( function ( to ) {
if ( false === to ) {
$( postDetails.author ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
@@ -191,8 +191,8 @@
} );
// Post Details: Comment link.
- wp.customize( 'jetpack_content_post_details_comment', function( value ) {
- value.bind( function( to ) {
+ wp.customize( 'jetpack_content_post_details_comment', function ( value ) {
+ value.bind( function ( to ) {
if ( false === to ) {
$( postDetails.comment ).css( {
clip: 'rect(1px, 1px, 1px, 1px)',
diff --git a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php b/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
index d6855f6c..af2dd585 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/featured-images.php
@@ -5,8 +5,22 @@
function jetpack_featured_images_remove_post_thumbnail( $metadata, $object_id, $meta_key, $single ) {
$opts = jetpack_featured_images_get_settings();
- // Automatically return metadata if it's a PayPal product - we don't want to hide the Featured Image.
- if ( 'jp_pay_product' === get_post_type( $object_id ) ) {
+ /**
+ * Allow featured images to be displayed at all times for specific CPTs.
+ *
+ * @module theme-tools
+ *
+ * @since 9.1.0
+ *
+ * @param array $excluded_post_types Array of excluded post types.
+ */
+ $excluded_post_types = apply_filters(
+ 'jetpack_content_options_featured_image_exclude_cpt',
+ array( 'jp_pay_product' )
+ );
+
+ // Automatically return metadata for specific post types, when we don't want to hide the Featured Image.
+ if ( in_array( get_post_type( $object_id ), $excluded_post_types, true ) ) {
return $metadata;
}
diff --git a/plugins/jetpack/modules/theme-tools/content-options/post-details.php b/plugins/jetpack/modules/theme-tools/content-options/post-details.php
index 7851a5be..b5f5c64a 100644
--- a/plugins/jetpack/modules/theme-tools/content-options/post-details.php
+++ b/plugins/jetpack/modules/theme-tools/content-options/post-details.php
@@ -40,6 +40,11 @@ function jetpack_post_details_enqueue_scripts() {
$elements[] = $comment;
}
+ // If the Elements array is empty, return without setting custom CSS.
+ if ( empty( $elements ) ) {
+ return;
+ }
+
// Get the list of classes.
$elements = implode( ', ', $elements );
@@ -132,11 +137,11 @@ function jetpack_post_details_should_run() {
return $void;
}
- $date_option = get_option( 'jetpack_content_post_details_date', 1 );
- $categories_option = get_option( 'jetpack_content_post_details_categories', 1 );
- $tags_option = get_option( 'jetpack_content_post_details_tags', 1 );
- $author_option = get_option( 'jetpack_content_post_details_author', 1 );
- $comment_option = get_option( 'jetpack_content_post_details_comment', 1 );
+ $date_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_date', 1 );
+ $categories_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_categories', 1 );
+ $tags_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_tags', 1 );
+ $author_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_author', 1 );
+ $comment_option = Jetpack_Options::get_option_and_ensure_autoload( 'jetpack_content_post_details_comment', 1 );
$options = array( $date_option, $categories_option, $tags_option, $author_option, $comment_option );
$definied = array( $date, $categories, $tags, $author, $comment );
diff --git a/plugins/jetpack/modules/theme-tools/devicepx.php b/plugins/jetpack/modules/theme-tools/devicepx.php
index fb243e56..fc95eb15 100644
--- a/plugins/jetpack/modules/theme-tools/devicepx.php
+++ b/plugins/jetpack/modules/theme-tools/devicepx.php
@@ -8,6 +8,8 @@
* 'after_setup_theme' action:
*
* add_theme_support( 'jetpack-devicepx' );
+ *
+ * @package automattic/jetpack
*/
/**
diff --git a/plugins/jetpack/modules/theme-tools/featured-content.php b/plugins/jetpack/modules/theme-tools/featured-content.php
index c70408c8..5eca3369 100644
--- a/plugins/jetpack/modules/theme-tools/featured-content.php
+++ b/plugins/jetpack/modules/theme-tools/featured-content.php
@@ -334,7 +334,7 @@ if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'pl
return;
}
- // We need to respect post ids already in the blacklist.
+ // We need to respect post ids already in the blocklist.
$post__not_in = $query->get( 'post__not_in' );
if ( ! empty( $post__not_in ) ) {
@@ -390,6 +390,12 @@ if ( ! class_exists( 'Featured_Content' ) && isset( $GLOBALS['pagenow'] ) && 'pl
return $terms;
}
+ // WordPress defines the parameter as `array`, but it passes null if `get_terms( $args )` was called
+ // without a 'taxonomy' in $args.
+ if ( ! is_array( $taxonomies ) ) {
+ return $terms;
+ }
+
// We only want to hide the featured tag.
if ( ! in_array( 'post_tag', $taxonomies ) ) {
return $terms;
diff --git a/plugins/jetpack/modules/theme-tools/js/suggest.js b/plugins/jetpack/modules/theme-tools/js/suggest.js
index 4d6c8794..24ee1ff9 100644
--- a/plugins/jetpack/modules/theme-tools/js/suggest.js
+++ b/plugins/jetpack/modules/theme-tools/js/suggest.js
@@ -1,5 +1,5 @@
/* global ajaxurl:true */
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
$( '#customize-control-featured-content-tag-name input' ).suggest(
ajaxurl + '?action=ajax-tag-search&tax=post_tag',
{ delay: 500, minchars: 2 }
diff --git a/plugins/jetpack/modules/theme-tools/responsive-videos.php b/plugins/jetpack/modules/theme-tools/responsive-videos.php
index 9bd35dae..32cee5e9 100644
--- a/plugins/jetpack/modules/theme-tools/responsive-videos.php
+++ b/plugins/jetpack/modules/theme-tools/responsive-videos.php
@@ -101,7 +101,7 @@ function jetpack_responsive_videos_maybe_wrap_oembed( $html, $url = null ) {
/**
* oEmbed Video Providers.
*
- * A whitelist of oEmbed video provider Regex patterns to check against before wrapping the output.
+ * An allowed list of oEmbed video provider Regex patterns to check against before wrapping the output.
*
* @module theme-tools
*
@@ -153,7 +153,10 @@ function jetpack_responsive_videos_maybe_wrap_oembed( $html, $url = null ) {
function jetpack_responsive_videos_remove_wrap_oembed( $block_content, $block ) {
if (
isset( $block['blockName'] )
- && false !== strpos( $block['blockName'], 'core-embed' )
+ && (
+ false !== strpos( $block['blockName'], 'core-embed' ) // pre-WP 5.6 embeds (multiple embed blocks starting with 'core-embed').
+ || 'core/embed' === $block['blockName'] // WP 5.6 embed block format (single embed block w/ block variations).
+ )
) {
$block_content = preg_replace( '#<div class="jetpack-video-wrapper">(.*?)</div>#', '${1}', $block_content );
}
diff --git a/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js b/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
index 668cc7a0..ab8cbd77 100644
--- a/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
+++ b/plugins/jetpack/modules/theme-tools/responsive-videos/responsive-videos.js
@@ -1,20 +1,17 @@
-( function( $ ) {
+( function ( $ ) {
var resizeTimer;
function responsiveVideos() {
$( '.jetpack-video-wrapper' )
.find( 'embed, iframe, object' )
- .each( function() {
+ .each( function () {
var _this, videoWidth, videoHeight, videoRatio, videoWrapper, videoMargin, containerWidth;
_this = $( this );
videoMargin = 0;
if (
- _this
- .parents( '.jetpack-video-wrapper' )
- .prev( 'p' )
- .css( 'text-align' ) === 'center'
+ _this.parents( '.jetpack-video-wrapper' ).prev( 'p' ).css( 'text-align' ) === 'center'
) {
videoMargin = '0 auto';
}
@@ -50,10 +47,10 @@
} );
}
- $( document ).ready( function() {
+ $( document ).ready( function () {
$( window )
.on( 'load.jetpack', responsiveVideos )
- .on( 'resize.jetpack', function() {
+ .on( 'resize.jetpack', function () {
clearTimeout( resizeTimer );
resizeTimer = setTimeout( responsiveVideos, 500 );
} )
diff --git a/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php b/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
index 2f266738..ce713ad1 100644
--- a/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
+++ b/plugins/jetpack/modules/theme-tools/site-breadcrumbs.php
@@ -7,8 +7,16 @@
* Version: 1.0
* Author URI: https://wordpress.com
* License: GPL2 or later
+ * Text Domain: jetpack
+ *
+ * @package automattic/jetpack
*/
+/**
+ * Echos a set of breadcrumbs.
+ *
+ * Themes can call this function where the breadcrumbs should be outputted.
+ */
function jetpack_breadcrumbs() {
$taxonomy = is_category() ? 'category' : get_query_var( 'taxonomy' );
$is_taxonomy_hierarchical = is_taxonomy_hierarchical( $taxonomy );
@@ -21,16 +29,18 @@ function jetpack_breadcrumbs() {
}
$breadcrumb = '';
+ $position = 1;
if ( $is_post_type_hierarchical ) {
$post_id = get_queried_object_id();
$ancestors = array_reverse( get_post_ancestors( $post_id ) );
if ( $ancestors ) {
foreach ( $ancestors as $ancestor ) {
- $breadcrumb .= '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="' . esc_url( get_permalink( $ancestor ) ) . '" itemprop="item"><span itemprop="name">' . esc_html( get_the_title( $ancestor ) ) . '</span></a></span>';
+ $breadcrumb .= '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><a href="' . esc_url( get_permalink( $ancestor ) ) . '" itemprop="item"><span itemprop="name">' . esc_html( get_the_title( $ancestor ) ) . '</span></a></span>';
+ $position++;
}
}
- $breadcrumb .= '<span class="current-page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name">' . esc_html( get_the_title( $post_id ) ) . '</span></span>';
+ $breadcrumb .= '<span class="current-page" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><span itemprop="name">' . esc_html( get_the_title( $post_id ) ) . '</span></span>';
} elseif ( $is_taxonomy_hierarchical ) {
$current = get_term( get_queried_object_id(), $taxonomy );
@@ -42,12 +52,12 @@ function jetpack_breadcrumbs() {
$breadcrumb = jetpack_get_term_parents( $current->parent, $taxonomy );
}
- $breadcrumb .= '<span class="current-category" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name">' . esc_html( $current->name ) . '</span></span>';
+ $breadcrumb .= '<span class="current-category" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta property="position" content="' . esc_attr( $position ) . '"><span itemprop="name">' . esc_html( $current->name ) . '</span></span>';
}
- $home = '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="' . esc_url( home_url( '/' ) ) . '" class="home-link" itemprop="item" rel="home"><span itemprop="name">' . esc_html__( 'Home', 'jetpack' ) . '</span></a></span>';
+ $home = '<span itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><meta itemprop="position" content="' . esc_attr( $position ) . '"><meta itemprop="position" content="0"><a href="' . esc_url( home_url( '/' ) ) . '" class="home-link" itemprop="item" rel="home"><span itemprop="name">' . esc_html__( 'Home', 'jetpack' ) . '</span></a></span>';
- echo '<nav class="entry-breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">' . $home . $breadcrumb . '</nav>';
+ echo '<nav class="entry-breadcrumbs" itemscope itemtype="https://schema.org/BreadcrumbList">' . $home . $breadcrumb . '</nav>'; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -68,7 +78,7 @@ function jetpack_get_term_parents( $term, $taxonomy, $visited = array() ) {
$chain = '';
- if ( $parent->parent && ( $parent->parent != $parent->term_id ) && ! in_array( $parent->parent, $visited ) ) {
+ if ( $parent->parent && ( $parent->parent !== $parent->term_id ) && ! in_array( $parent->parent, $visited, true ) ) {
$visited[] = $parent->parent;
$chain .= jetpack_get_term_parents( $parent->parent, $taxonomy, $visited );
}
diff --git a/plugins/jetpack/modules/theme-tools/site-logo.php b/plugins/jetpack/modules/theme-tools/site-logo.php
index cef77e69..78f69ba1 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo.php
@@ -22,15 +22,10 @@
* Activate the Site Logo plugin.
*
* @uses current_theme_supports()
- * @since 3.2
+ * @since 3.2.0
+ * @since 9.9.0 Uses Core site_logo option format universally.
*/
function site_logo_init() {
- // For transferring existing site logo from Jetpack -> Core
- if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $jp_logo = get_option( 'site_logo' ) ) {
- set_theme_mod( 'custom_logo', $jp_logo['id'] );
- delete_option( 'site_logo' );
- }
-
// Only load our code if our theme declares support, and the standalone plugin is not activated.
if ( current_theme_supports( 'site-logo' ) && ! class_exists( 'Site_Logo', false ) ) {
// Load our class for namespacing.
@@ -44,3 +39,40 @@ function site_logo_init() {
}
}
add_action( 'init', 'site_logo_init' );
+
+/**
+ * When switching from a legacy theme that uses `site-logo` to a theme that uses `custom-logo`,
+ * update the theme's custom logo if it doesn't already have one.
+ *
+ * @return void
+ */
+function jetpack_update_custom_logo_from_site_logo() {
+ $site_logo = get_option( 'site_logo' );
+
+ if ( current_theme_supports( 'custom-logo' ) && ! get_theme_mod( 'custom_logo' ) && $site_logo ) {
+ set_theme_mod( 'custom_logo', $site_logo );
+ }
+}
+add_action( 'after_switch_theme', 'jetpack_update_custom_logo_from_site_logo', 10, 0 );
+
+/**
+ * Transforms the legacy site_logo array, when present, into an attachment ID.
+ *
+ * The attachment ID is the format used for the site_logo option by the Site Logo block,
+ * and the updated Jetpack site-logo feature.
+ *
+ * @since 9.9.0
+ *
+ * @param int|array $site_logo Option.
+ * @return int
+ */
+function jetpack_site_logo_block_compat( $site_logo ) {
+ if ( isset( $site_logo['id'] ) ) {
+ remove_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
+ update_option( 'site_logo', $site_logo['id'] );
+ return $site_logo['id'];
+ }
+
+ return $site_logo;
+}
+add_filter( 'option_site_logo', 'jetpack_site_logo_block_compat', 1 );
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
index 75fe80b1..6793bf0a 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/class-site-logo.php
@@ -2,7 +2,7 @@
/**
* Our Site Logo class for managing a theme-agnostic logo through the Customizer.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
class Site_Logo {
/**
@@ -11,7 +11,7 @@ class Site_Logo {
private static $instance;
/**
- * Stores our current logo settings.
+ * Stores the attachment ID of the site logo.
*/
public $logo;
@@ -36,7 +36,7 @@ class Site_Logo {
* @uses get_option()
*/
private function __construct() {
- $this->logo = get_option( 'site_logo', null );
+ $this->logo = (int) get_option( 'site_logo', null );
}
/**
@@ -76,9 +76,6 @@ class Site_Logo {
* @uses Site_Logo::sanitize_checkbox()
*/
public function customize_register( $wp_customize ) {
- // Include our custom control.
- require dirname( __FILE__ ) . '/class-site-logo-control.php';
-
// Add a setting to hide header text if the theme isn't supporting the feature itself
if ( ! current_theme_supports( 'custom-header' ) ) {
$wp_customize->add_setting(
@@ -109,29 +106,58 @@ class Site_Logo {
'site_logo',
array(
'capability' => 'manage_options',
- 'default' => array(
- 'id' => 0,
- 'sizes' => array(),
- 'url' => false,
- ),
+ 'default' => 0,
'sanitize_callback' => array( $this, 'sanitize_logo_setting' ),
'transport' => 'postMessage',
'type' => 'option',
)
);
+ // By default, not setting width and height will suggest a square crop.
+ $width = null;
+ $height = null;
+ $logo_size = jetpack_get_site_logo_dimensions();
+
+ // Only suggested a different crop if the theme declares both dimensions.
+ if ( false !== $logo_size && $logo_size['width'] && $logo_size['height'] ) {
+ $width = $logo_size['width'];
+ $height = $logo_size['height'];
+ }
+
// Add our image uploader.
$wp_customize->add_control(
- new Site_Logo_Image_Control(
+ new WP_Customize_Cropped_Image_Control(
$wp_customize,
'site_logo',
array(
- 'label' => __( 'Logo', 'jetpack' ),
- 'section' => 'title_tagline',
- 'settings' => 'site_logo',
+ 'label' => __( 'Logo', 'jetpack' ),
+ 'section' => 'title_tagline',
+ 'settings' => 'site_logo',
+ 'width' => $width,
+ 'height' => $height,
+ 'flex_width' => true,
+ 'flex_height' => true,
+ 'button_labels' => array(
+ 'select' => __( 'Add logo', 'jetpack' ),
+ 'change' => __( 'Change logo', 'jetpack' ),
+ 'remove' => __( 'Remove logo', 'jetpack' ),
+ 'placeholder' => __( 'No logo set', 'jetpack' ),
+ 'frame_title' => __( 'Set as logo', 'jetpack' ),
+ 'frame_button' => __( 'Choose logo', 'jetpack' ),
+ ),
)
)
);
+
+ $wp_customize->selective_refresh->add_partial(
+ 'site_logo',
+ array(
+ 'settings' => 'site_logo',
+ 'selector' => '.site-logo-link',
+ 'render_callback' => array( $this, 'customizer_preview' ),
+ 'container_inclusive' => true,
+ )
+ );
}
/**
@@ -144,13 +170,11 @@ class Site_Logo {
* @uses wp_localize_script()
*/
public function preview_enqueue() {
- wp_enqueue_script( 'site-logo-preview', plugins_url( '../js/site-logo.js', __FILE__ ), array( 'media-views' ), '', true );
-
// Don't bother passing in header text classes if the theme supports custom headers.
if ( ! current_theme_supports( 'custom-header' ) ) {
$classes = jetpack_sanitize_header_text_classes( $this->header_text_classes() );
wp_enqueue_script( 'site-logo-header-text', plugins_url( '../js/site-logo-header-text.js', __FILE__ ), array( 'media-views' ), '', true );
- wp_localize_script( 'site-logo-header-text', 'site_logo_header_classes', $classes );
+ wp_localize_script( 'site-logo-header-text', 'site_logo_header_classes', array( 'classes' => $classes ) );
}
}
@@ -267,7 +291,7 @@ class Site_Logo {
global $post;
// If our attachment ID and the site logo ID match, this image is the site logo.
- if ( $post->ID == $this->logo['id'] ) {
+ if ( $post && $post->ID === $this->logo ) {
$media_states[] = __( 'Site Logo', 'jetpack' );
}
}
@@ -282,7 +306,7 @@ class Site_Logo {
* @uses Site_Logo::remove_site_logo()
*/
public function reset_on_attachment_delete( $post_id ) {
- if ( $this->logo['id'] == $post_id ) {
+ if ( $this->logo === $post_id ) {
$this->remove_site_logo();
}
}
@@ -294,7 +318,7 @@ class Site_Logo {
* @return boolean True if there is an active logo, false otherwise
*/
public function has_site_logo() {
- return ( isset( $this->logo['id'] ) && 0 !== $this->logo['id'] ) ? true : false;
+ return (bool) $this->logo;
}
/**
@@ -303,14 +327,7 @@ class Site_Logo {
* @uses update_option()
*/
public function remove_site_logo() {
- update_option(
- 'site_logo',
- array(
- 'id' => (int) 0,
- 'sizes' => array(),
- 'url' => '',
- )
- );
+ update_option( 'site_logo', null );
}
/**
@@ -345,20 +362,26 @@ class Site_Logo {
* @return mixed 1 if checked, empty string if not checked.
*/
public function sanitize_logo_setting( $input ) {
- $input['id'] = absint( $input['id'] );
- $input['url'] = esc_url_raw( $input['url'] );
+ $input = absint( $input );
// If the new setting doesn't point to a valid attachment, just reset the whole thing.
- if ( false == wp_get_attachment_image_src( $input['id'] ) ) {
- $input = array(
- 'id' => (int) 0,
- 'sizes' => array(),
- 'url' => '',
- );
+ if ( false === wp_get_attachment_image_src( $input ) ) {
+ $input = 0;
}
return $input;
}
+
+ /**
+ * This function returns the updated HTML in the Customizer preview when the logo is added, updated, or removed.
+ *
+ * @return string
+ */
+ public function customizer_preview() {
+ ob_start();
+ jetpack_the_site_logo();
+ return ob_get_clean();
+ }
}
/**
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
index d1098536..436e12de 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/compat.php
@@ -4,7 +4,7 @@
* These should never be used in themes; instead, use the template tags in functions.php.
* See: https://github.com/Automattic/jetpack/pull/956
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! function_exists( 'the_site_logo' ) ) :
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php b/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
index 3b27b32f..22e6c942 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
+++ b/plugins/jetpack/modules/theme-tools/site-logo/inc/functions.php
@@ -2,7 +2,7 @@
/**
* Functions and template tags for using site logos.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -15,18 +15,19 @@
* @since 1.0
*/
function jetpack_get_site_logo( $show = 'url' ) {
- $logo = site_logo()->logo;
+ $logo_id = site_logo()->logo;
// Return false if no logo is set
- if ( ! isset( $logo['id'] ) || 0 == $logo['id'] ) {
+ if ( ! $logo_id ) {
return false;
}
// Return the ID if specified, otherwise return the URL by default
- if ( 'id' == $show ) {
- return $logo['id'];
+ if ( 'id' === $show ) {
+ return $logo_id;
} else {
- return esc_url_raw( set_url_scheme( $logo['url'] ) );
+ $logo_url = wp_get_attachment_url( $logo_id );
+ return esc_url_raw( set_url_scheme( $logo_url ) );
}
}
@@ -101,41 +102,46 @@ function jetpack_has_site_logo() {
* @since 1.0
*/
function jetpack_the_site_logo() {
- $logo = site_logo()->logo;
- $logo_id = get_theme_mod( 'custom_logo' ); // Check for WP 4.5 Site Logo
- $logo_id = $logo_id ? $logo_id : $logo['id']; // Use WP Core logo if present, otherwise use Jetpack's.
- $size = site_logo()->theme_size();
- $html = '';
+ $size = site_logo()->theme_size();
// If no logo is set, but we're in the Customizer, leave a placeholder (needed for the live preview).
- if ( ! jetpack_has_site_logo() ) {
- if ( jetpack_is_customize_preview() ) {
- $html = sprintf(
+ if (
+ ! jetpack_has_site_logo()
+ && jetpack_is_customize_preview()
+ ) {
+ /*
+ * Reason: the output is escaped in the sprintf.
+ * phpcs:disable WordPress.Security.EscapeOutput
+ */
+ /** This filter is documented in modules/theme-tools/site-logo/inc/functions.php */
+ echo apply_filters(
+ 'jetpack_the_site_logo',
+ sprintf(
'<a href="%1$s" class="site-logo-link" style="display:none;"><img class="site-logo" data-size="%2$s" /></a>',
esc_url( home_url( '/' ) ),
esc_attr( $size )
- );
- }
+ ),
+ array(),
+ $size
+ );
+ /* phpcs:enable WordPress.Security.EscapeOutput */
+ return;
}
- // We have a logo. Logo is go.
- else {
- $html = sprintf(
- '<a href="%1$s" class="site-logo-link" rel="home" itemprop="url">%2$s</a>',
- esc_url( home_url( '/' ) ),
- wp_get_attachment_image(
- $logo_id,
- $size,
- false,
- array(
- 'class' => "site-logo attachment-$size",
- 'data-size' => $size,
- 'itemprop' => 'logo',
- )
- )
- );
+ // Check for WP 4.5 Site Logo and Jetpack logo.
+ $logo_id = get_theme_mod( 'custom_logo' );
+ // Get the option directly so the updated logo can be injected into customizer previews.
+ $jetpack_logo_id = get_option( 'site_logo' );
+
+ // Use WP Core logo if present and is an id (of an attachment), otherwise use Jetpack's.
+ if ( ! is_numeric( $logo_id ) && $jetpack_logo_id ) {
+ $logo_id = $jetpack_logo_id;
}
+ /*
+ * Reason: the output is escaped in the sprintf.
+ * phpcs:disable WordPress.Security.EscapeOutput
+ */
/**
* Filter the Site Logo output.
*
@@ -144,10 +150,34 @@ function jetpack_the_site_logo() {
* @since 3.2.0
*
* @param string $html Site Logo HTML output.
- * @param array $logo Array of Site Logo details.
+ * @param array $jetpack_logo Array of Site Logo details.
* @param string $size Size specified in add_theme_support declaration, or 'thumbnail' default.
*/
- echo apply_filters( 'jetpack_the_site_logo', $html, $logo, $size );
+ echo apply_filters(
+ 'jetpack_the_site_logo',
+ sprintf(
+ '<a href="%1$s" class="site-logo-link" rel="home" itemprop="url">%2$s</a>',
+ esc_url( home_url( '/' ) ),
+ wp_get_attachment_image(
+ $logo_id,
+ $size,
+ false,
+ array(
+ 'class' => "site-logo attachment-$size",
+ 'data-size' => $size,
+ 'itemprop' => 'logo',
+ )
+ )
+ ),
+ // Return array format in filter for back compatibility.
+ array(
+ 'id' => $jetpack_logo_id,
+ 'url' => wp_get_attachment_url( $jetpack_logo_id ),
+ 'sizes' => array(),
+ ),
+ $size
+ );
+ /* phpcs:enable WordPress.Security.EscapeOutput */
}
/**
diff --git a/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js b/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
index 82673a7e..37e0d862 100644
--- a/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
+++ b/plugins/jetpack/modules/theme-tools/site-logo/js/site-logo-header-text.js
@@ -2,12 +2,12 @@
/**
* JS for handling the "Display Header Text" setting's realtime preview.
*/
-( function( $ ) {
+( function ( $ ) {
var api = wp.customize,
- $classes = site_logo_header_classes;
+ $classes = site_logo_header_classes.classes;
- api( 'site_logo_header_text', function( value ) {
- value.bind( function( to ) {
+ api( 'site_logo_header_text', function ( value ) {
+ value.bind( function ( to ) {
if ( true === to ) {
$( $classes ).css( {
position: 'static',
diff --git a/plugins/jetpack/modules/theme-tools/social-links.php b/plugins/jetpack/modules/theme-tools/social-links.php
index 44b2cbc8..98bac2d4 100644
--- a/plugins/jetpack/modules/theme-tools/social-links.php
+++ b/plugins/jetpack/modules/theme-tools/social-links.php
@@ -7,7 +7,7 @@
* 'after_setup_theme' action:
*
* add_theme_support( 'social-links', array(
- * 'facebook', 'twitter', 'linkedin', 'tumblr', 'google_plus',
+ * 'facebook', 'twitter', 'linkedin', 'tumblr',
* ) );
*/
diff --git a/plugins/jetpack/modules/theme-tools/social-menu.php b/plugins/jetpack/modules/theme-tools/social-menu.php
index 16c66b6a..abb5070c 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu.php
+++ b/plugins/jetpack/modules/theme-tools/social-menu.php
@@ -49,6 +49,7 @@ function jetpack_social_menu_init() {
}
}
add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 );
+add_action( 'restapi_theme_init', 'jetpack_social_menu_init' );
/**
* Return the type of menu the theme is using.
@@ -59,10 +60,13 @@ add_action( 'after_setup_theme', 'jetpack_social_menu_init', 99 );
function jetpack_social_menu_get_type() {
$options = get_theme_support( 'jetpack-social-menu' );
- if ( empty( $options ) ) {
+ if ( ! $options ) {
$menu_type = null;
} else {
- $menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ) ) ) ? $options[0] : 'genericons';
+ $menu_type = 'genericons';
+ if ( is_array( $options ) && isset( $options[0] ) ) {
+ $menu_type = ( in_array( $options[0], array( 'genericons', 'svg' ), true ) ) ? $options[0] : 'genericons';
+ }
}
return $menu_type;
diff --git a/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php b/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
index 9a8a1dd6..3a2e5f2c 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
+++ b/plugins/jetpack/modules/theme-tools/social-menu/icon-functions.php
@@ -2,7 +2,7 @@
/**
* SVG icons related functions and filters
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) :
@@ -11,7 +11,7 @@ if ( ! function_exists( 'jetpack_social_menu_include_svg_icons' ) ) :
*/
function jetpack_social_menu_include_svg_icons() {
// Define SVG sprite file.
- $svg_icons = dirname( __FILE__ ) . '/social-menu.svg';
+ $svg_icons = __DIR__ . '/social-menu.svg';
// If it exists, include it.
if ( file_exists( $svg_icons ) ) {
@@ -130,6 +130,8 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'itunes.com' => 'apple',
'bandcamp.com' => 'bandcamp',
'behance.net' => 'behance',
+ 'blogger.com' => 'blogger',
+ 'blogspot.com' => 'blogger',
'codepen.io' => 'codepen',
'deviantart.com' => 'deviantart',
'discord.gg' => 'discord',
@@ -138,10 +140,12 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'dribbble.com' => 'dribbble',
'dropbox.com' => 'dropbox',
'etsy.com' => 'etsy',
+ 'eventbrite.com' => 'eventbrite',
'facebook.com' => 'facebook',
'/feed/' => 'feed',
'flickr.com' => 'flickr',
'foursquare.com' => 'foursquare',
+ 'ghost.org' => 'ghost',
'goodreads.com' => 'goodreads',
'google.com' => 'google',
'github.com' => 'github',
@@ -150,8 +154,10 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'mailto:' => 'mail',
'meetup.com' => 'meetup',
'medium.com' => 'medium',
+ 'patreon.com' => 'patreon',
'pinterest.' => 'pinterest',
'getpocket.com' => 'pocket',
+ 'ravelry.com' => 'ravelry',
'reddit.com' => 'reddit',
'skype.com' => 'skype',
'skype:' => 'skype',
@@ -160,15 +166,21 @@ if ( ! function_exists( 'jetpack_social_menu_social_links_icons' ) ) :
'soundcloud.com' => 'soundcloud',
'spotify.com' => 'spotify',
'stackoverflow.com' => 'stackoverflow',
+ 'strava.com' => 'strava',
'stumbleupon.com' => 'stumbleupon',
+ 'telegram.me' => 'telegram',
+ 'tiktok.com' => 'tiktok',
'tumblr.com' => 'tumblr',
'twitch.tv' => 'twitch',
'twitter.com' => 'twitter',
'vimeo.com' => 'vimeo',
'vk.com' => 'vk',
+ 'whatsapp.com' => 'whatsapp',
+ 'woocommerce.com' => 'woocommerce',
'wordpress.org' => 'wordpress',
'wordpress.com' => 'wordpress',
'yelp.com' => 'yelp',
+ 'xanga.com' => 'xanga',
'youtube.com' => 'youtube',
);
diff --git a/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg b/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
index 333dc504..4c5833dc 100644
--- a/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
+++ b/plugins/jetpack/modules/theme-tools/social-menu/social-menu.svg
@@ -15,6 +15,9 @@
<symbol id="icon-behance" viewBox="0 0 24 24">
<path d="M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"/>
</symbol>
+<symbol id="icon-blogger" viewBox="0 0 24 24">
+<path d="M14.722,14.019c0,0.361-0.293,0.654-0.654,0.654H9.977c-0.361,0-0.654-0.293-0.654-0.654s0.293-0.654,0.654-0.654h4.091C14.429,13.365,14.722,13.658,14.722,14.019z M9.981,10.698h2.038c0.382,0,0.692-0.31,0.692-0.692c0-0.382-0.31-0.692-0.692-0.692H9.981c-0.382,0-0.692,0.31-0.692,0.692C9.289,10.388,9.599,10.698,9.981,10.698z M21,5v14c0,1.105-0.895,2-2,2H5c-1.105,0-2-0.895-2-2V5c0-1.105,0.895-2,2-2h14C20.105,3,21,3.895,21,5z M17.544,11.39c0-0.398-0.322-0.72-0.72-0.72h-0.607l-0.013,0.001c-0.38,0-0.692-0.295-0.718-0.668l-0.001-0.008c0-1.988-1.611-3.599-3.599-3.599h-1.816c-1.988,0-3.599,1.611-3.599,3.599v3.947c0,1.987,1.611,3.599,3.599,3.599h3.874c1.988,0,3.599-1.611,3.599-3.599L17.544,11.39z"/>
+</symbol>
<symbol id="icon-chain" viewBox="0 0 24 24">
<path d="M19.647,16.706a1.134,1.134,0,0,0-.343-.833l-2.549-2.549a1.134,1.134,0,0,0-.833-.343,1.168,1.168,0,0,0-.883.392l.233.226q.2.189.264.264a2.922,2.922,0,0,1,.184.233.986.986,0,0,1,.159.312,1.242,1.242,0,0,1,.043.337,1.172,1.172,0,0,1-1.176,1.176,1.237,1.237,0,0,1-.337-.043,1,1,0,0,1-.312-.159,2.76,2.76,0,0,1-.233-.184q-.073-.068-.264-.264l-.226-.233a1.19,1.19,0,0,0-.4.895,1.134,1.134,0,0,0,.343.833L15.837,19.3a1.13,1.13,0,0,0,.833.331,1.18,1.18,0,0,0,.833-.318l1.8-1.789a1.12,1.12,0,0,0,.343-.821Zm-8.615-8.64a1.134,1.134,0,0,0-.343-.833L8.163,4.7a1.134,1.134,0,0,0-.833-.343,1.184,1.184,0,0,0-.833.331L4.7,6.473a1.12,1.12,0,0,0-.343.821,1.134,1.134,0,0,0,.343.833l2.549,2.549a1.13,1.13,0,0,0,.833.331,1.184,1.184,0,0,0,.883-.38L8.728,10.4q-.2-.189-.264-.264A2.922,2.922,0,0,1,8.28,9.9a.986.986,0,0,1-.159-.312,1.242,1.242,0,0,1-.043-.337A1.172,1.172,0,0,1,9.254,8.079a1.237,1.237,0,0,1,.337.043,1,1,0,0,1,.312.159,2.761,2.761,0,0,1,.233.184q.073.068.264.264l.226.233a1.19,1.19,0,0,0,.4-.895ZM22,16.706a3.343,3.343,0,0,1-1.042,2.488l-1.8,1.789a3.536,3.536,0,0,1-4.988-.025l-2.525-2.537a3.384,3.384,0,0,1-1.017-2.488,3.448,3.448,0,0,1,1.078-2.561l-1.078-1.078a3.434,3.434,0,0,1-2.549,1.078,3.4,3.4,0,0,1-2.5-1.029L3.029,9.794A3.4,3.4,0,0,1,2,7.294,3.343,3.343,0,0,1,3.042,4.806l1.8-1.789A3.384,3.384,0,0,1,7.331,2a3.357,3.357,0,0,1,2.5,1.042l2.525,2.537a3.384,3.384,0,0,1,1.017,2.488,3.448,3.448,0,0,1-1.078,2.561l1.078,1.078a3.551,3.551,0,0,1,5.049-.049l2.549,2.549A3.4,3.4,0,0,1,22,16.706Z"/>
</symbol>
@@ -39,8 +42,11 @@
<symbol id="icon-etsy" viewBox="0 0 24 24">
<path d="M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"/>
</symbol>
+<symbol id="icon-eventbrite" viewBox="0 0 24 24">
+<path style="fill-rule:evenodd;clip-rule:evenodd;" d="M18.041,3.931L5.959,3C4.325,3,3,4.325,3,5.959v12.083C3,19.675,4.325,21,5.959,21l12.083-0.931C19.699,19.983,21,18.744,21,17.11V6.89C21,5.256,19.741,4.027,18.041,3.931zM16.933,8.17c-0.082,0.215-0.192,0.432-0.378,0.551c-0.188,0.122-0.489,0.132-0.799,0.132c-1.521,0-3.062-0.048-4.607-0.048c-0.152,0.708-0.304,1.416-0.451,2.128c0.932-0.004,1.873,0.005,2.81,0.005c0.726,0,1.462-0.069,1.586,0.525c0.04,0.189-0.001,0.426-0.052,0.615c-0.105,0.38-0.258,0.676-0.625,0.783c-0.185,0.054-0.408,0.058-0.646,0.058c-1.145,0-2.345,0.017-3.493,0.02c-0.169,0.772-0.328,1.553-0.489,2.333c1.57-0.005,3.067-0.041,4.633-0.058c0.627-0.007,1.085,0.194,1.009,0.85c-0.031,0.262-0.098,0.497-0.211,0.725c-0.102,0.208-0.248,0.376-0.488,0.452c-0.237,0.075-0.541,0.064-0.862,0.078c-0.304,0.014-0.614,0.008-0.924,0.016c-0.309,0.009-0.619,0.022-0.919,0.022c-1.253,0-2.429,0.08-3.683,0.073c-0.603-0.004-1.014-0.249-1.124-0.757c-0.059-0.273-0.018-0.58,0.036-0.841c0.541-2.592,1.083-5.176,1.629-7.763c0.056-0.265,0.114-0.511,0.225-0.714C9.279,7.051,9.534,6.834,9.9,6.735c0.368-0.099,0.883-0.047,1.344-0.047c0.305,0,0.612,0.008,0.914,0.016c0.925,0.026,1.817,0.03,2.747,0.053c0.304,0.007,0.615,0.016,0.915,0.016c0.621,0,1.17,0.073,1.245,0.614C17.104,7.675,17.014,7.954,16.933,8.17z"/>
+</symbol>
<symbol id="icon-facebook" viewBox="0 0 24 24">
-<path d="M20.007,3H3.993C3.445,3,3,3.445,3,3.993v16.013C3,20.555,3.445,21,3.993,21h8.621v-6.971h-2.346v-2.717h2.346V9.31 c0-2.325,1.42-3.591,3.494-3.591c0.993,0,1.847,0.074,2.096,0.107v2.43l-1.438,0.001c-1.128,0-1.346,0.536-1.346,1.323v1.734h2.69 l-0.35,2.717h-2.34V21h4.587C20.555,21,21,20.555,21,20.007V3.993C21,3.445,20.555,3,20.007,3z"/>
+<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.9c1.1,0,2.2,0.2,2.2,0.2v2.5h-1.3 c-1.2,0-1.6,0.8-1.6,1.6V12h2.8l-0.4,2.9h-2.3v7C18.3,21.1,22,17,22,12C22,6.5,17.5,2,12,2z"/>
</symbol>
<symbol id="icon-feed" viewBox="0 0 24 24">
<path d="M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"/>
@@ -51,6 +57,9 @@
<symbol id="icon-foursquare" viewBox="0 0 24 24">
<path d="M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"/>
</symbol>
+<symbol id="icon-ghost" viewBox="0 0 24 24">
+<path d="M10.203,20.997H3.005v-3.599h7.198V20.997z M20.995,17.398h-7.193v3.599h7.193V17.398z M20.998,10.2H3v3.599h17.998V10.2zM13.803,3.003H3.005v3.599h10.798V3.003z M21,3.003h-3.599v3.599H21V3.003z"/>
+</symbol>
<symbol id="icon-goodreads" viewBox="0 0 24 24">
<path d="M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"/>
</symbol>
@@ -76,12 +85,18 @@ c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091
<symbol id="icon-medium" viewBox="0 0 24 24">
<path d="M5.727 8.027a.623.623 0 0 0-.204-.527L4.02 5.687v-.273H8.69l3.614 7.926 3.175-7.926h4.457v.274l-1.285 1.234a.367.367 0 0 0-.144.36v9.066a.374.374 0 0 0 .144.363l1.258 1.234v.27h-6.324v-.27l1.3-1.265c.13-.13.13-.164.13-.36V8.988l-3.621 9.196h-.489L6.691 8.988v6.164c-.035.258.051.52.235.707l1.691 2.055v.27h-4.8v-.27l1.69-2.055a.814.814 0 0 0 .22-.707zm0 0"/>
</symbol>
+<symbol id="icon-patreon" viewBox="0 0 24 24">
+<path d="M13.975 5a5.05 5.05 0 00-5.041 5.046c0 2.774 2.261 5.03 5.04 5.03A5.034 5.034 0 0019 10.047C19 7.264 16.746 5 13.975 5zM5 18.44h2.461V5H5v13.44z"/>
+</symbol>
<symbol id="icon-pinterest" viewBox="0 0 24 24">
<path d="M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"/>
</symbol>
<symbol id="icon-pocket" viewBox="0 0 24 24">
<path d="M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"/>
</symbol>
+<symbol id="icon-ravelry" viewBox="0 0 23 20">
+<path d="M12.098 19.34a.25.25 0 01-.118-.043 13.986 13.986 0 01-.394-.258c-.164-.11-.477-.352-.934-.723-.46-.375-.882-.761-1.27-1.168-.39-.406-.796-.925-1.218-1.562a8.521 8.521 0 01-.976-1.926c-.125-.023-.758-.16-1.907-.414A8.785 8.785 0 007.84 17.29a8.152 8.152 0 004.258 2.05zm-6.98-6.762l1.831.313A13.424 13.424 0 016.5 11.02a16.216 16.216 0 01-.207-1.622l-.043-.593c-.61.61-1.047 1.445-1.316 2.5.035.484.097.91.183 1.273zm1.198-6.797a9.064 9.064 0 00-.84 1.653c.32-.344.59-.598.81-.758zm15.649 4.844a8.8 8.8 0 00-.676-3.426 8.85 8.85 0 00-1.824-2.812 8.614 8.614 0 00-2.727-1.883 8.115 8.115 0 00-3.312-.695 8.131 8.131 0 00-3.059.586A8.412 8.412 0 007.754 4.05c-.219.433-.383 1.027-.488 1.785a5.407 5.407 0 011.554-.93 7.481 7.481 0 011.727-.48 16.642 16.642 0 011.558-.153c.489-.02.883-.015 1.18.012l.438.035c.238.008.43.063.574.172a.66.66 0 01.27.367c.03.141.054.278.07.414a.8.8 0 01-.012.317 12.781 12.781 0 00-2.477-.004 7.093 7.093 0 00-1.992.484 9.6 9.6 0 00-1.554.801A12.46 12.46 0 007.176 7.97c.031.27.07.613.125 1.031.054.422.183 1.082.386 1.988.204.903.43 1.57.676 2.004.895.043 1.793-.012 2.696-.164.902-.152 1.683-.351 2.336-.598a20.681 20.681 0 001.77-.746c.526-.254.925-.472 1.19-.66l.407-.265c.156-.121.3-.196.43-.23a.367.367 0 01.331.058c.094.07.157.199.184.383.102.722-.039 1.171-.426 1.351-1.508.723-3.203 1.219-5.086 1.496-.976.149-2.129.207-3.449.176a7.673 7.673 0 001.195 1.973c.504.597 1 1.07 1.493 1.418.496.343.968.636 1.421.878.454.243.825.407 1.106.489l.426.133c1.039.171 1.992.113 2.863-.168 1.414-.739 2.555-1.813 3.418-3.227.867-1.414 1.297-2.969 1.297-4.664zm.805-.414c-.102 1.004-.247 1.793-.434 2.367-.508 1.547-1.168 2.836-1.977 3.867-.808 1.032-1.964 1.973-3.468 2.828-.348.247-.645.41-.895.493-.52.195-1.113.254-1.773.18-.262.019-.528.03-.797.03-2.055 0-3.883-.64-5.492-1.93-1.61-1.288-2.68-2.929-3.22-4.933-.007 0-.019 0-.042-.004-.024-.004-.04-.007-.055-.007-.043.375-.035.793.028 1.257.062.465.156.891.285 1.282.125.39.254.757.39 1.093.133.34.25.606.344.801l.152.29c.059.09.254.394.586.913a4.327 4.327 0 01-1.355-1.187 5.669 5.669 0 01-.856-1.563 14.087 14.087 0 01-.43-1.531 9.012 9.012 0 01-.19-1.2l-.02-.468c-.035-.016-.16-.059-.367-.137-.207-.078-.383-.148-.528-.203-.144-.054-.336-.133-.578-.226a9.221 9.221 0 01-.625-.282c-.176-.09-.36-.183-.543-.285-.187-.097-.34-.199-.465-.3a1.27 1.27 0 01-.27-.286c.138.075.321.172.548.285.23.118.64.286 1.23.508.594.223 1.121.364 1.586.426l.023-.36c.079-1.109.418-2.187 1.024-3.234A9.226 9.226 0 016.5 4.621c.203-.855.5-1.652.883-2.39.11-.208.226-.376.347-.5.125-.13.305-.247.536-.36 1.148-.55 2.25-.937 3.304-1.16A9.935 9.935 0 0114.86.09c1.136.14 2.25.5 3.34 1.082 1.593.855 2.804 2.105 3.624 3.75.82 1.644 1.137 3.406.946 5.289zm0 0"/>
+</symbol>
<symbol id="icon-reddit" viewBox="0 0 24 24">
<path d="M22,11.816c0-1.256-1.021-2.277-2.277-2.277c-0.593,0-1.122,0.24-1.526,0.614c-1.481-0.965-3.455-1.594-5.647-1.69 l1.171-3.702l3.18,0.748c0.008,1.028,0.846,1.862,1.876,1.862c1.035,0,1.877-0.842,1.877-1.878c0-1.035-0.842-1.877-1.877-1.877 c-0.769,0-1.431,0.466-1.72,1.13l-3.508-0.826c-0.203-0.047-0.399,0.067-0.46,0.261l-1.35,4.268 c-2.316,0.038-4.411,0.67-5.97,1.671C5.368,9.765,4.853,9.539,4.277,9.539C3.021,9.539,2,10.56,2,11.816 c0,0.814,0.433,1.523,1.078,1.925c-0.037,0.221-0.061,0.444-0.061,0.672c0,3.292,4.011,5.97,8.941,5.97s8.941-2.678,8.941-5.97 c0-0.214-0.02-0.424-0.053-0.632C21.533,13.39,22,12.661,22,11.816z M18.776,4.394c0.606,0,1.1,0.493,1.1,1.1s-0.493,1.1-1.1,1.1 s-1.1-0.494-1.1-1.1S18.169,4.394,18.776,4.394z M2.777,11.816c0-0.827,0.672-1.5,1.499-1.5c0.313,0,0.598,0.103,0.838,0.269 c-0.851,0.676-1.477,1.479-1.812,2.36C2.983,12.672,2.777,12.27,2.777,11.816z M11.959,19.606c-4.501,0-8.164-2.329-8.164-5.193 S7.457,9.22,11.959,9.22s8.164,2.329,8.164,5.193S16.46,19.606,11.959,19.606z M20.636,13.001c-0.326-0.89-0.948-1.701-1.797-2.384 c0.248-0.186,0.55-0.301,0.883-0.301c0.827,0,1.5,0.673,1.5,1.5C21.223,12.299,20.992,12.727,20.636,13.001z M8.996,14.704 c-0.76,0-1.397-0.616-1.397-1.376c0-0.76,0.637-1.397,1.397-1.397c0.76,0,1.376,0.637,1.376,1.397 C10.372,14.088,9.756,14.704,8.996,14.704z M16.401,13.328c0,0.76-0.616,1.376-1.376,1.376c-0.76,0-1.399-0.616-1.399-1.376 c0-0.76,0.639-1.397,1.399-1.397C15.785,11.931,16.401,12.568,16.401,13.328z M15.229,16.708c0.152,0.152,0.152,0.398,0,0.55 c-0.674,0.674-1.727,1.002-3.219,1.002c-0.004,0-0.007-0.002-0.011-0.002c-0.004,0-0.007,0.002-0.011,0.002 c-1.492,0-2.544-0.328-3.218-1.002c-0.152-0.152-0.152-0.398,0-0.55c0.152-0.152,0.399-0.151,0.55,0 c0.521,0.521,1.394,0.775,2.669,0.775c0.004,0,0.007,0.002,0.011,0.002c0.004,0,0.007-0.002,0.011-0.002 c1.275,0,2.148-0.253,2.669-0.775C14.831,16.556,15.078,16.556,15.229,16.708z"/>
</symbol>
@@ -106,9 +121,18 @@ c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091
<path d="m 17.817128,20.228605 v -5.337217 h 1.771431 V 22 H 3.6 v -7.108612 h 1.771401 v 5.337217 z" />
<path d="m 7.3267845,14.385359 8.6959295,1.817316 0.368168,-1.748385 -8.6959318,-1.817319 z m 1.1503197,-4.140944 8.0517968,3.749872 0.73617,-1.610385 -8.0518344,-3.7728517 z m 2.2315078,-3.9569154 6.832405,5.6822664 1.12738,-1.357316 -6.832576,-5.6822636 z m 4.417,-4.2099019 -1.426448,1.0581864 5.291191,7.1316119 1.426412,-1.0582745 z M 7.1427296,18.434189 h 8.8799844 v -1.7713 H 7.1427296 Z" />
</symbol>
+<symbol id="icon-strava" viewBox="0 0 24 24">
+<path d="M15.387 17.944l-2.089-4.116h-3.065L15.387 24l5.15-10.172h-3.066m-7.008-5.599l2.836 5.598h4.172L10.463 0l-7 13.828h4.169"/>
+</symbol>
<symbol id="icon-stumbleupon" viewBox="0 0 24 24">
<path d="M12,4.294c-2.469,0-4.471,2.002-4.471,4.471v6.353c0,0.585-0.474,1.059-1.059,1.059c-0.585,0-1.059-0.474-1.059-1.059 v-2.824H2v2.941c0,2.469,2.002,4.471,4.471,4.471c2.469,0,4.471-2.002,4.471-4.471V8.765c0-0.585,0.474-1.059,1.059-1.059 s1.059,0.474,1.059,1.059v1.294l1.412,0.647l2-0.647V8.765C16.471,6.296,14.469,4.294,12,4.294z M13.059,12.353v2.882 c0,2.469,2.002,4.471,4.471,4.471S22,17.704,22,15.235v-2.824h-3.412v2.824c0,0.585-0.474,1.059-1.059,1.059 c-0.585,0-1.059-0.474-1.059-1.059v-2.882l-2,0.647L13.059,12.353z"/>
</symbol>
+<symbol id="icon-telegram" viewBox="0 0 24 24">
+<path d="M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm3.08 14.757s-.25.625-.936.325l-2.541-1.949-1.63 1.486s-.127.096-.266.036c0 0-.12-.011-.27-.486-.15-.475-.911-2.972-.911-2.972L6 12.349s-.387-.137-.425-.438c-.037-.3.437-.462.437-.462l10.03-3.934s.824-.362.824.238l-1.786 9.004z"/>
+</symbol>
+<symbol id="icon-tiktok" viewBox="0 0 24 24">
+<path d="M12.22 2H15.64C15.64 2 15.4502 6.39351 20.3898 6.70186V10.0981C20.3898 10.0981 17.7537 10.2636 15.64 8.64957L15.6769 15.6615C15.6769 16.9151 15.3052 18.1406 14.6087 19.1829C13.9123 20.2253 12.9224 21.0377 11.7642 21.5175C10.606 21.9972 9.33162 22.1228 8.10209 21.8782C6.87257 21.6337 5.74316 21.0301 4.85669 20.1437C3.97022 19.2573 3.3665 18.1279 3.12186 16.8984C2.87723 15.6689 3.00267 14.3945 3.48233 13.2363C3.96199 12.0781 4.77432 11.0881 5.8166 10.3916C6.85888 9.69502 8.0843 9.32318 9.33791 9.32307H10.2271V12.7231V12.7954C9.64757 12.6147 9.02578 12.6217 8.45043 12.8152C7.87508 13.0088 7.37556 13.3792 7.02314 13.8734C6.67071 14.3677 6.48338 14.9606 6.48786 15.5677C6.49235 16.1747 6.68842 16.7648 7.04811 17.2538C7.40781 17.7428 7.91274 18.1057 8.49089 18.2908C9.06903 18.4758 9.69086 18.4736 10.2676 18.2843C10.8444 18.0951 11.3467 17.7285 11.7029 17.2369C12.059 16.7454 12.2508 16.1538 12.2509 15.5468L12.22 2Z"/>
+</symbol>
<symbol id="icon-tumblr" viewBox="0 0 24 24">
<path d="M16.749,17.396c-0.357,0.17-1.041,0.319-1.551,0.332c-1.539,0.041-1.837-1.081-1.85-1.896V9.847h3.861V6.937h-3.847V2.039 c0,0-2.77,0-2.817,0c-0.046,0-0.127,0.041-0.138,0.144c-0.165,1.499-0.867,4.13-3.783,5.181v2.484h1.945v6.282 c0,2.151,1.587,5.206,5.775,5.135c1.413-0.024,2.982-0.616,3.329-1.126L16.749,17.396z"/>
</symbol>
@@ -124,12 +148,21 @@ c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091
<symbol id="icon-vk" viewBox="0 0 24 24">
<path d="M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"/>
</symbol>
+<symbol id="icon-whatsapp" viewBox="0 0 24 24">
+<path d="M2.048,22l1.406-5.136c-0.867-1.503-1.324-3.208-1.323-4.955C2.133,6.446,6.579,2,12.042,2c2.651,0.001,5.14,1.033,7.011,2.906c1.871,1.873,2.901,4.363,2.9,7.011c-0.002,5.464-4.448,9.91-9.91,9.91c0,0,0,0,0,0h-0.004c-1.659-0.001-3.288-0.417-4.736-1.206L2.048,22z M7.545,18.828l0.301,0.179c1.265,0.751,2.714,1.148,4.193,1.148h0.003c4.54,0,8.235-3.695,8.237-8.237c0.001-2.201-0.855-4.271-2.41-5.828c-1.555-1.557-3.623-2.415-5.824-2.416c-4.544,0-8.239,3.695-8.241,8.237c-0.001,1.556,0.435,3.072,1.259,4.384l0.196,0.312l-0.832,3.04L7.545,18.828z M17.035,14.274c-0.062-0.103-0.227-0.165-0.475-0.289c-0.248-0.124-1.465-0.723-1.692-0.806c-0.227-0.083-0.392-0.124-0.557,0.124c-0.165,0.248-0.64,0.806-0.784,0.971c-0.144,0.165-0.289,0.186-0.536,0.062c-0.248-0.124-1.046-0.385-1.991-1.229c-0.736-0.657-1.233-1.468-1.378-1.715c-0.144-0.248-0.015-0.382,0.109-0.505c0.111-0.111,0.248-0.289,0.371-0.434c0.124-0.145,0.165-0.248,0.248-0.413c0.083-0.165,0.041-0.31-0.021-0.434c-0.062-0.124-0.557-1.343-0.763-1.839C9.364,7.284,9.159,7.35,9.007,7.342c-0.144-0.007-0.31-0.009-0.475-0.009c-0.165,0-0.433,0.062-0.66,0.31C7.646,7.891,7.006,8.49,7.006,9.709c0,1.219,0.887,2.396,1.011,2.562c0.124,0.165,1.746,2.666,4.23,3.739c0.591,0.255,1.052,0.408,1.412,0.522c0.593,0.189,1.133,0.162,1.56,0.098c0.476-0.071,1.465-0.599,1.671-1.177C17.096,14.873,17.096,14.378,17.035,14.274z"/>
+</symbol>
+<symbol id="icon-woocommerce" viewBox="0 0 24 24">
+<path d="M19,2H5C3.3,2,2,3.3,2,5v11c0,1.7,1.3,3,3,3h4l6,3l-1-3h5c1.7,0,3-1.3,3-3V5C22,3.3,20.7,2,19,2z M17.4,6.5c-0.4,0.8-0.8,2.1-1,3.9c-0.3,1.8-0.4,3.1-0.3,4.1c0,0.3,0,0.5-0.1,0.7s-0.3,0.4-0.6,0.4s-0.6-0.1-0.9-0.4c-1-1-1.8-2.6-2.4-4.6c-0.7,1.4-1.2,2.4-1.6,3.1c-0.6,1.2-1.2,1.8-1.6,1.9c-0.3,0-0.5-0.2-0.8-0.7C7.6,13.5,7,10.7,6.4,6.7c0-0.3,0-0.5,0.2-0.7C6.7,5.8,7,5.7,7.3,5.6c0.5,0,0.9,0.2,0.9,0.8c0.3,2.3,0.7,4.2,1.1,5.7l2.4-4.5C11.9,7.2,12.1,7,12.5,7c0.5,0,0.8,0.3,0.9,0.9c0.3,1.4,0.6,2.6,1,3.7c0.3-2.7,0.8-4.7,1.4-5.9c0.2-0.3,0.4-0.5,0.7-0.5c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.3,0.4,0.3,0.6S17.5,6.4,17.4,6.5z"/>
+</symbol>
<symbol id="icon-wordpress" viewBox="0 0 24 24">
<path d="M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"/>
</symbol>
<symbol id="icon-yelp" viewBox="0 0 24 24">
<path d="M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"/>
</symbol>
+<symbol id="icon-xanga" viewBox="0 0 24 24">
+<path d="M9,9h6v6H9V9z M3,9h6V3H3V9z M15,9h6V3h-6V9z M15,21h6v-6h-6V21z M3,21h6v-6H3V21z"/>
+</symbol>
<symbol id="icon-youtube" viewBox="0 0 24 24">
<path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"/>
</symbol>
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery.php
index f99e7558..768f8749 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery.php
@@ -72,18 +72,18 @@ class Jetpack_Tiled_Gallery {
}
public function get_attachments() {
- extract( $this->atts );
+ $atts = $this->atts;
- if ( ! empty( $include ) ) {
- $include = preg_replace( '/[^0-9,]+/', '', $include );
+ if ( ! empty( $atts['include'] ) ) {
+ $include = preg_replace( '/[^0-9,]+/', '', $atts['include'] );
$_attachments = get_posts(
array(
'include' => $include,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
- 'order' => $order,
- 'orderby' => $orderby,
+ 'order' => $atts['order'],
+ 'orderby' => $atts['orderby'],
'suppress_filters' => false,
)
);
@@ -92,34 +92,37 @@ class Jetpack_Tiled_Gallery {
foreach ( $_attachments as $key => $val ) {
$attachments[ $val->ID ] = $_attachments[ $key ];
}
- } elseif ( 0 == $id ) {
- // Should NEVER Happen but infinite_scroll_load_other_plugins_scripts means it does
- // Querying with post_parent == 0 can generate stupidly memcache sets on sites with 10000's of unattached attachments as get_children puts every post in the cache.
- // TODO Fix this properly
+ } elseif ( 0 === $atts['id'] ) {
+ /*
+ * Should NEVER Happen but infinite_scroll_load_other_plugins_scripts means it does
+ * Querying with post_parent == 0 can generate stupidly memcache sets
+ * on sites with 10000's of unattached attachments as get_children puts every post in the cache.
+ * TODO Fix this properly.
+ */
$attachments = array();
- } elseif ( ! empty( $exclude ) ) {
- $exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
+ } elseif ( ! empty( $atts['exclude'] ) ) {
+ $exclude = preg_replace( '/[^0-9,]+/', '', $atts['exclude'] );
$attachments = get_children(
array(
- 'post_parent' => $id,
+ 'post_parent' => $atts['id'],
'exclude' => $exclude,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
- 'order' => $order,
- 'orderby' => $orderby,
+ 'order' => $atts['order'],
+ 'orderby' => $atts['orderby'],
'suppress_filters' => false,
)
);
} else {
$attachments = get_children(
array(
- 'post_parent' => $id,
+ 'post_parent' => $atts['id'],
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
- 'order' => $order,
- 'orderby' => $orderby,
+ 'order' => $atts['order'],
+ 'orderby' => $atts['orderby'],
'suppress_filters' => false,
)
);
@@ -134,7 +137,7 @@ class Jetpack_Tiled_Gallery {
'_inc/build/tiled-gallery/tiled-gallery/tiled-gallery.min.js',
'modules/tiled-gallery/tiled-gallery/tiled-gallery.js'
),
- array( 'jquery' )
+ array()
);
wp_enqueue_style( 'tiled-gallery', plugins_url( 'tiled-gallery/tiled-gallery.css', __FILE__ ), array(), '2012-09-21' );
wp_style_add_data( 'tiled-gallery', 'rtl', 'replace' );
@@ -184,7 +187,7 @@ class Jetpack_Tiled_Gallery {
if ( $gallery_html && class_exists( 'Jetpack' ) && class_exists( 'Jetpack_Photon' ) ) {
// Tiled Galleries in Jetpack require that Photon be active.
// If it's not active, run it just on the gallery output.
- if ( ! in_array( 'photon', Jetpack::get_active_modules() ) && ! ( new Status() )->is_development_mode() ) {
+ if ( ! in_array( 'photon', Jetpack::get_active_modules(), true ) && ! ( new Status() )->is_offline_mode() ) {
$gallery_html = Jetpack_Photon::filter_the_content( $gallery_html );
}
}
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/circle-layout.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/circle-layout.php
index 7c8430dd..aa383f19 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/circle-layout.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/circle-layout.php
@@ -1,3 +1,8 @@
<?php
-$this->template( 'square-layout', $context );
+/**
+ * Square layout Tiled Gallery template.
+ *
+ * @package automattic/jetpack
+ */
+$this->template( 'square-layout', $context ); // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/carousel-image-args.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/carousel-image-args.php
index c28d9512..44d6f3e3 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/carousel-image-args.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/carousel-image-args.php
@@ -1,6 +1,12 @@
<?php
-// See https://github.com/Automattic/jetpack/issues/2765
-$fuzzy_image_meta = $item->fuzzy_image_meta();
+/**
+ * Template used to display arguments used to build the carousel modal.
+ *
+ * @package automattic/jetpack
+ */
+
+$item = $context['item']; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+$fuzzy_image_meta = $item->fuzzy_image_meta(); // See https://github.com/Automattic/jetpack/issues/2765 .
if ( isset( $fuzzy_image_meta['keywords'] ) ) {
unset( $fuzzy_image_meta['keywords'] );
}
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/item.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/item.php
index 8bb2ae7e..2f8a9e7c 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/item.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/partials/item.php
@@ -1,4 +1,5 @@
<?php
+$item = $context['item']; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
$add_link = 'none' !== $this->link;
// We do this for accessibility. Titles without alt's break screen readers.
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/rectangular-layout.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/rectangular-layout.php
index 802f3bff..b7f88b06 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/rectangular-layout.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/rectangular-layout.php
@@ -1,5 +1,12 @@
<?php
-foreach ( $rows as $row ) : ?>
+/**
+ * Rectangular layout Tiled Gallery template.
+ *
+ * @package automattic/jetpack
+ */
+
+foreach ( $context['rows'] as $row ) : // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ ?>
<div
class="gallery-row"
style="width: <?php echo esc_attr( $row->width ); ?>px; height: <?php echo esc_attr( $row->height ); ?>px;"
@@ -14,13 +21,13 @@ foreach ( $rows as $row ) : ?>
data-original-width="<?php echo esc_attr( $group->width ); ?>"
data-original-height="<?php echo esc_attr( $group->height ); ?>"
>
- <?php foreach ( $group->items( $needs_attachment_link, $grayscale ) as $item ) : ?>
- <?php
- $this->partial(
+ <?php
+ foreach ( $group->items( $context['needs_attachment_link'], $context['grayscale'] ) as $item ) : // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ $this->partial( // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
'item',
array(
'item' => $item,
- 'link' => $link,
+ 'link' => $context['link'], // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
)
);
?>
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/square-layout.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/square-layout.php
index d743c038..3b0c8e27 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/square-layout.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/templates/square-layout.php
@@ -1,11 +1,17 @@
<?php
-foreach ( $rows as $row ) : ?>
+/**
+ * Square layout Tiled Gallery template.
+ *
+ * @package automattic/jetpack
+ */
+
+foreach ( $context['rows'] as $row ) : // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ ?>
<div class="gallery-row"
style="width: <?php echo esc_attr( $row->width ); ?>px; height: <?php echo esc_attr( $row->height ); ?>px;"
data-original-width="<?php echo esc_attr( $row->width ); ?>"
data-original-height="<?php echo esc_attr( $row->height ); ?>"
>
- <?php $add_link = 'none' !== $link; ?>
<?php foreach ( $row->images as $item ) : ?>
<div class="gallery-group"
style="width: <?php echo esc_attr( $row->group_size ); ?>px; height: <?php echo esc_attr( $row->group_size ); ?>px;"
@@ -13,11 +19,11 @@ foreach ( $rows as $row ) : ?>
data-original-height="<?php echo esc_attr( $row->group_size ); ?>"
>
<?php
- $this->partial(
+ $this->partial( // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
'item',
array(
'item' => $item,
- 'link' => $link,
+ 'link' => $context['link'], // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
)
);
?>
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-item.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-item.php
index 423f9e1c..cdf5305e 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-item.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-item.php
@@ -53,12 +53,12 @@ abstract class Jetpack_Tiled_Gallery_Item {
public function meta_width() {
$meta = wp_get_attachment_metadata( $this->image->ID );
- return isset( $meta['width'] ) ? intval( $meta['width'] ) : '';
+ return isset( $meta['width'] ) ? (int) $meta['width'] : '';
}
public function meta_height() {
$meta = wp_get_attachment_metadata( $this->image->ID );
- return isset( $meta['height'] ) ? intval( $meta['height'] ) : '';
+ return isset( $meta['height'] ) ? (int) $meta['height'] : '';
}
public function medium_file() {
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-layout.php b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-layout.php
index acaa0088..11699c7c 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-layout.php
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-layout.php
@@ -1,6 +1,6 @@
<?php
abstract class Jetpack_Tiled_Gallery_Layout {
- // Template whitelist
+ // Template allow list.
private static $templates = array( 'carousel-container', 'circle-layout', 'rectangular-layout', 'square-layout' );
private static $partials = array( 'carousel-image-args', 'item' );
@@ -44,10 +44,6 @@ abstract class Jetpack_Tiled_Gallery_Layout {
return;
}
- if ( isset( $context ) ) {
- extract( $context );
- }
-
/**
* Filters the Tiled Gallery template path
*
@@ -66,10 +62,6 @@ abstract class Jetpack_Tiled_Gallery_Layout {
return;
}
- if ( isset( $context ) ) {
- extract( $context );
- }
-
/**
* Filters the Tiled Gallery partial path
*
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css
index 7d730835..f54f744c 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery-rtl.css
@@ -1 +1 @@
-.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:right;position:relative}.tiled-gallery .tiled-gallery-item{float:right;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:100% 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:100% 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#eee;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;right:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none;opacity:0}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover} \ No newline at end of file
+.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:right;position:relative}.tiled-gallery .tiled-gallery-item{float:right;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:100% 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:100% 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#f0f0f1;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;right:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important;-o-object-fit:cover;object-fit:cover}.tiled-gallery.type-circle .tiled-gallery-caption{display:none}.tiled-gallery.type-square .tiled-gallery-item img{-o-object-fit:cover;object-fit:cover} \ No newline at end of file
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.css b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.css
index 0cc2dc0a..9119ccc6 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.css
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.css
@@ -41,7 +41,7 @@
vertical-align: middle;
}
.tiled-gallery-caption { /* Captions */
- background: #eee;
+ background: #f0f0f1;
background: rgba( 255,255,255,0.8 );
color: #333;
font-size: 13px;
@@ -90,7 +90,6 @@
}
.tiled-gallery.type-circle .tiled-gallery-caption {
display: none;
- opacity: 0;
}
diff --git a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.js b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.js
index 6bf20ca5..a395afcb 100644
--- a/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.js
+++ b/plugins/jetpack/modules/tiled-gallery/tiled-gallery/tiled-gallery.js
@@ -1,18 +1,20 @@
-( function( $ ) {
+( function () {
function TiledGalleryCollection() {
this.galleries = [];
this.findAndSetupNewGalleries();
}
- TiledGalleryCollection.prototype.findAndSetupNewGalleries = function() {
+ TiledGalleryCollection.prototype.findAndSetupNewGalleries = function () {
var self = this;
- $( '.tiled-gallery.tiled-gallery-unresized' ).each( function() {
- self.galleries.push( new TiledGallery( $( this ) ) );
+ var unresizedGalleries = document.querySelectorAll( '.tiled-gallery.tiled-gallery-unresized' );
+
+ Array.prototype.forEach.call( unresizedGalleries, function ( el ) {
+ self.galleries.push( new TiledGallery( el ) );
} );
};
- TiledGalleryCollection.prototype.resizeAll = function() {
- $.each( this.galleries, function( i, gallery ) {
+ TiledGalleryCollection.prototype.resizeAll = function () {
+ Array.prototype.forEach.call( this.galleries, function ( gallery ) {
gallery.resize();
} );
};
@@ -26,7 +28,7 @@
this.resize();
// Displays the gallery and prevents it from being initialized again
- this.gallery.removeClass( 'tiled-gallery-unresized' );
+ this.gallery.classList.remove( 'tiled-gallery-unresized' );
}
/**
@@ -40,72 +42,75 @@
* Story
*/
- TiledGallery.prototype.addCaptionEvents = function() {
+ TiledGallery.prototype.addCaptionEvents = function () {
// Hide captions
- this.gallery.find( '.tiled-gallery-caption' ).hide();
+ var galleryCaptions = this.gallery.querySelectorAll( '.tiled-gallery-caption' );
+ Array.prototype.forEach.call( galleryCaptions, function ( el ) {
+ el.style.display = 'none';
+ } );
- // Add hover effects to bring the caption up and down for each item
- this.gallery.find( '.tiled-gallery-item' ).hover(
- function() {
- $( this )
- .find( '.tiled-gallery-caption' )
- .stop( true, true )
- .slideDown( 'fast' );
- },
- function() {
- $( this )
- .find( '.tiled-gallery-caption' )
- .stop( true, true )
- .slideUp( 'fast' );
+ var mouseHoverHandler = function ( e ) {
+ var itemEl = e.target.closest( '.tiled-gallery-item' );
+ var displayValue = 'mouseover' === e.type ? 'block' : 'none';
+
+ if ( itemEl ) {
+ var itemCaption = itemEl.querySelector( '.tiled-gallery-caption' );
+ if ( itemCaption ) {
+ itemCaption.style.display = displayValue;
+ }
}
- );
+ };
+
+ // Add hover effects to bring the caption up and down for each item
+ this.gallery.addEventListener( 'mouseover', mouseHoverHandler );
+ this.gallery.addEventListener( 'mouseout', mouseHoverHandler );
};
- TiledGallery.prototype.getExtraDimension = function( el, attribute, mode ) {
+ TiledGallery.prototype.getExtraDimension = function ( el, attribute, mode ) {
if ( mode === 'horizontal' ) {
var left = attribute === 'border' ? 'borderLeftWidth' : attribute + 'Left';
var right = attribute === 'border' ? 'borderRightWidth' : attribute + 'Right';
- return ( parseInt( el.css( left ), 10 ) || 0 ) + ( parseInt( el.css( right ), 10 ) || 0 );
+ return ( parseInt( el.style[ left ], 10 ) || 0 ) + ( parseInt( el.style[ right ], 10 ) || 0 );
} else if ( mode === 'vertical' ) {
var top = attribute === 'border' ? 'borderTopWidth' : attribute + 'Top';
var bottom = attribute === 'border' ? 'borderBottomWidth' : attribute + 'Bottom';
- return ( parseInt( el.css( top ), 10 ) || 0 ) + ( parseInt( el.css( bottom ), 10 ) || 0 );
+ return ( parseInt( el.style[ top ], 10 ) || 0 ) + ( parseInt( el.style[ bottom ], 10 ) || 0 );
} else {
return 0;
}
};
- TiledGallery.prototype.resize = function() {
+ TiledGallery.prototype.resize = function () {
// Resize everything in the gallery based on the ratio of the current content width
// to the original content width;
- var originalWidth = this.gallery.data( 'original-width' );
- var currentWidth = this.gallery.parent().width();
+ var originalWidth = parseInt( this.gallery.dataset.originalWidth, 10 );
+ var currentWidth = parseFloat(
+ getComputedStyle( this.gallery.parentNode, null ).width.replace( 'px', '' )
+ );
var resizeRatio = Math.min( 1, currentWidth / originalWidth );
var self = this;
- this.gallery.find( this.resizeableElementsSelector ).each( function() {
- var thisGalleryElement = $( this );
+ var resizableElements = this.gallery.querySelectorAll( this.resizeableElementsSelector );
+ Array.prototype.forEach.call( resizableElements, function ( el ) {
+ var marginWidth = self.getExtraDimension( el, 'margin', 'horizontal' );
+ var marginHeight = self.getExtraDimension( el, 'margin', 'vertical' );
- var marginWidth = self.getExtraDimension( thisGalleryElement, 'margin', 'horizontal' );
- var marginHeight = self.getExtraDimension( thisGalleryElement, 'margin', 'vertical' );
+ var paddingWidth = self.getExtraDimension( el, 'padding', 'horizontal' );
+ var paddingHeight = self.getExtraDimension( el, 'padding', 'vertical' );
- var paddingWidth = self.getExtraDimension( thisGalleryElement, 'padding', 'horizontal' );
- var paddingHeight = self.getExtraDimension( thisGalleryElement, 'padding', 'vertical' );
-
- var borderWidth = self.getExtraDimension( thisGalleryElement, 'border', 'horizontal' );
- var borderHeight = self.getExtraDimension( thisGalleryElement, 'border', 'vertical' );
+ var borderWidth = self.getExtraDimension( el, 'border', 'horizontal' );
+ var borderHeight = self.getExtraDimension( el, 'border', 'vertical' );
// Take all outer dimensions into account when resizing so that images
// scale with constant empty space between them
var outerWidth =
- thisGalleryElement.data( 'original-width' ) + paddingWidth + borderWidth + marginWidth;
+ parseInt( el.dataset.originalWidth, 10 ) + paddingWidth + borderWidth + marginWidth;
var outerHeight =
- thisGalleryElement.data( 'original-height' ) + paddingHeight + borderHeight + marginHeight;
+ parseInt( el.dataset.originalHeight, 10 ) + paddingHeight + borderHeight + marginHeight;
// Subtract margins so that images don't overflow on small browser windows
- thisGalleryElement
- .width( Math.floor( resizeRatio * outerWidth ) - marginWidth )
- .height( Math.floor( resizeRatio * outerHeight ) - marginHeight );
+ el.style.width = Math.floor( resizeRatio * outerWidth ) - marginWidth + 'px';
+ el.style.height = Math.floor( resizeRatio * outerHeight ) - marginHeight + 'px';
} );
};
@@ -130,21 +135,21 @@
}
}
- $( window ).resize( function() {
+ window.addEventListener( 'resize', function () {
clearTimeout( resizeTimeout );
if ( ! resizing ) {
requestAnimationFrame( handleFrame );
}
resizing = true;
- resizeTimeout = setTimeout( function() {
+ resizeTimeout = setTimeout( function () {
resizing = false;
}, 15 );
} );
}
function attachPlainResize( tiledGalleries ) {
- $( window ).resize( function() {
+ window.addEventListener( 'resize', function () {
tiledGalleries.resizeAll();
} );
}
@@ -152,21 +157,26 @@
/**
* Ready, set...
*/
-
- $( document ).ready( function() {
+ function ready( fn ) {
+ if ( document.readyState !== 'loading' ) {
+ fn();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', fn );
+ }
+ }
+ ready( function () {
var tiledGalleries = new TiledGalleryCollection();
- $( 'body' ).on( 'post-load', function( e, maybeResize ) {
- if ( 'string' === typeof maybeResize && 'resize' === maybeResize ) {
- tiledGalleries.resizeAll();
- } else {
- tiledGalleries.findAndSetupNewGalleries();
- }
- } );
- $( document ).on( 'page-rendered.wpcom-newdash', function() {
+ document.body.addEventListener( 'is.post-load', function () {
tiledGalleries.findAndSetupNewGalleries();
} );
+ if ( typeof jQuery === 'function' ) {
+ jQuery( document ).on( 'page-rendered.wpcom-newdash', function () {
+ tiledGalleries.findAndSetupNewGalleries();
+ } );
+ }
+
// Chrome is a unique snow flake and will start lagging on occasion
// It helps if we only resize on animation frames
//
@@ -179,11 +189,11 @@
}
if ( 'undefined' !== typeof wp && wp.customize && wp.customize.selectiveRefresh ) {
- wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
+ wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
if ( wp.isJetpackWidgetPlaced( placement, 'gallery' ) ) {
tiledGalleries.findAndSetupNewGalleries();
}
} );
}
} );
-} )( jQuery );
+} )();
diff --git a/plugins/jetpack/modules/vaultpress.php b/plugins/jetpack/modules/vaultpress.php
index 6cb93b22..aeeb0219 100644
--- a/plugins/jetpack/modules/vaultpress.php
+++ b/plugins/jetpack/modules/vaultpress.php
@@ -10,7 +10,7 @@
* Auto Activate: No
* Feature: Security, Health
* Additional Search Queries: backup, cloud backup, database backup, restore, wordpress backup, backup plugin, wordpress backup plugin, back up, backup wordpress, backwpup, vaultpress, backups, off-site backups, offsite backup, offsite, off-site, antivirus, malware scanner, security, virus, viruses, prevent viruses, scan, anti-virus, antimalware, protection, safe browsing, malware, wp security, wordpress security
- * Plans: personal, business, premium
+ * Plans: personal, business, premium, security, complete
*/
add_action( 'jetpack_modules_loaded', 'vaultpress_jetpack_stub' );
diff --git a/plugins/jetpack/modules/verification-tools.php b/plugins/jetpack/modules/verification-tools.php
index f99ce68a..273bd542 100644
--- a/plugins/jetpack/modules/verification-tools.php
+++ b/plugins/jetpack/modules/verification-tools.php
@@ -9,14 +9,14 @@
* Feature: Engagement
* Additional Search Queries: webmaster, seo, google, bing, pinterest, search, console
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
* Load Verification Tools code.
*/
function jetpack_load_verification_tools() {
- include dirname( __FILE__ ) . '/verification-tools/blog-verification-tools.php';
+ include __DIR__ . '/verification-tools/blog-verification-tools.php';
}
/**
diff --git a/plugins/jetpack/modules/verification-tools/blog-verification-tools.php b/plugins/jetpack/modules/verification-tools/blog-verification-tools.php
index 9b53000a..e3f0dbac 100644
--- a/plugins/jetpack/modules/verification-tools/blog-verification-tools.php
+++ b/plugins/jetpack/modules/verification-tools/blog-verification-tools.php
@@ -27,6 +27,12 @@ function jetpack_verification_services() {
'format' => '44d68e1216009f40',
'url' => 'https://webmaster.yandex.com/sites/',
),
+ 'facebook' => array(
+ 'name' => 'Facebook Domain Verification',
+ 'key' => 'facebook-domain-verification',
+ 'format' => 'rvv8b23jxlp1lq41I9rwsvpzncy1fd',
+ 'url' => 'https://business.facebook.com/settings/',
+ ),
);
}
@@ -69,16 +75,3 @@ function jetpack_verification_print_meta() {
}
}
add_action( 'wp_head', 'jetpack_verification_print_meta', 1 );
-
-function jetpack_verification_tool_box() {
- ?>
- <div class="jp-verification-tools card">
- <h3 class="title"><?php _e( 'Website Verification Services', 'jetpack' ); ?>&nbsp;<a href="https://jetpack.com/support/site-verification-tools/" rel="noopener noreferrer" target="_blank">(?)</a></h3>
- <p>
- <?php printf( __( 'You can verify your site using the <a href="%s">"Site verification" tool in Jetpack Settings</a>.', 'jetpack' ), esc_url( admin_url( 'admin.php?page=jetpack#/traffic' ) ) ); ?>
- </p>
- </div>
- <?php
-}
-
-add_action( 'tool_box', 'jetpack_verification_tool_box', 25 );
diff --git a/plugins/jetpack/modules/videopress.php b/plugins/jetpack/modules/videopress.php
index 8d272b02..eafc1b67 100644
--- a/plugins/jetpack/modules/videopress.php
+++ b/plugins/jetpack/modules/videopress.php
@@ -3,13 +3,11 @@
* Module Name: VideoPress
* Module Description: Save on hosting storage and bandwidth costs by streaming fast, ad-free video from our global network.
* First Introduced: 2.5
- * Free: false
* Requires Connection: Yes
* Sort Order: 27
* Module Tags: Photos and Videos
* Feature: Writing
* Additional Search Queries: video, videos, videopress, video gallery, video player, videoplayer, mobile video, vimeo, youtube, html5 video, stream
- * Plans: business, premium
*/
include_once dirname( __FILE__ ) . '/videopress/shortcode.php';
@@ -19,6 +17,8 @@ include_once dirname( __FILE__ ) . '/videopress/class.videopress-xmlrpc.php';
include_once dirname( __FILE__ ) . '/videopress/class.videopress-cli.php';
include_once dirname( __FILE__ ) . '/videopress/class.jetpack-videopress.php';
+require_once __DIR__ . '/videopress/class-videopress-attachment-metadata.php';
+
if ( is_admin() ) {
include_once dirname( __FILE__ ) . '/videopress/editor-media-view.php';
include_once dirname( __FILE__ ) . '/videopress/class.videopress-edit-attachment.php';
diff --git a/plugins/jetpack/modules/videopress/class-videopress-attachment-metadata.php b/plugins/jetpack/modules/videopress/class-videopress-attachment-metadata.php
new file mode 100644
index 00000000..c745350b
--- /dev/null
+++ b/plugins/jetpack/modules/videopress/class-videopress-attachment-metadata.php
@@ -0,0 +1,183 @@
+<?php
+/**
+ * Handle the VideoPress metadata properties.
+ *
+ * @package Jetpack
+ */
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * Class Videopress_Attachment_Metadata
+ */
+class Videopress_Attachment_Metadata {
+
+ /**
+ * Persist the VideoPress metadata information, including rating and display_embed.
+ *
+ * @param string|int $post_id The post id.
+ * @param string $guid VideoPress Guid.
+ * @param string $post_title The post title.
+ * @param string $caption Video caption.
+ * @param string $post_excerpt The post excerpt.
+ * @param string $rating The rating.
+ * @param int $display_embed The display_embed.
+ * @param int $allow_download Allow video downloads.
+ *
+ * @return bool|\WP_Error
+ */
+ public static function persist_metadata( $post_id, $guid, $post_title, $caption, $post_excerpt, $rating, $display_embed, $allow_download ) {
+ $post_id = absint( $post_id );
+
+ $args = array(
+ 'method' => 'POST',
+ 'headers' => array( 'content-type' => 'application/json' ),
+ );
+
+ // Keep null values to avoid accidental unset.
+ $display_embed = null === $display_embed ? null : (int) $display_embed;
+ $allow_download = null === $allow_download ? null : (int) $allow_download;
+
+ $values = self::build_wpcom_api_request_values( $post_title, $caption, $post_excerpt, $rating, $display_embed, $allow_download );
+ $endpoint = 'videos';
+ $values['guid'] = $guid;
+
+ $result = Client::wpcom_json_api_request_as_blog( $endpoint, '2', $args, wp_json_encode( $values ), 'wpcom' );
+
+ $validated_result = self::validate_result( $result );
+ if ( true !== $validated_result ) {
+ return $validated_result;
+ }
+
+ // If we are in WPCOM, then we don't need to make anything else since we've already updated the video information.
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ return true;
+ }
+
+ $meta = wp_get_attachment_metadata( $post_id );
+
+ if ( isset( $values['display_embed'] ) ) {
+ $meta['videopress']['display_embed'] = (bool) $values['display_embed']; // convert it to bool since that's how we store it on wp-admin side.
+ }
+
+ if ( isset( $values['allow_download'] ) ) {
+ $meta['videopress']['allow_download'] = (bool) $values['allow_download'];
+ }
+
+ if ( isset( $values['rating'] ) ) {
+ $meta['videopress']['rating'] = $values['rating'];
+ }
+
+ wp_update_attachment_metadata( $post_id, $meta );
+
+ return true;
+ }
+
+ /**
+ * Check if the given media item is a VideoPress file.
+ *
+ * @param stdClass $item The media item.
+ *
+ * @return bool
+ */
+ public static function is_videopress_media( $item ) {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ return 0 === strpos( $item->mime_type, 'video/' );
+ }
+
+ // Else, we are in Jetpack and we need to check if the video is video/videopress.
+ return 'video/videopress' === $item->mime_type;
+ }
+
+ /**
+ * Check if display_embed has valid values.
+ *
+ * @param mixed $display_embed The input display embed.
+ *
+ * @return bool
+ */
+ private static function is_display_embed_valid( $display_embed ) {
+ return in_array( $display_embed, array( 0, 1 ), true );
+ }
+
+ /**
+ * Check if allow_download has valid values
+ *
+ * @param mixed $allow_download The value to test.
+ * @return bool
+ */
+ private static function is_allow_download_valid( $allow_download ) {
+ return in_array( $allow_download, array( 0, 1 ), true );
+ }
+
+ /**
+ * Validate the response received from WPCOM.
+ *
+ * @param array|\WP_Error $result The result returned by the client.
+ */
+ private static function validate_result( $result ) {
+ $response_code = isset( $result['response']['code'] ) ? $result['response']['code'] : 500;
+
+ // When Client::wpcom_json_api_request_as_blog is called in WPCOM, bad response codes are not converted to WP_Error.
+ // Because of this, we need to manually check the response code to check if the direct API call is 200 (OK).
+ if ( 200 === $response_code && ! is_wp_error( $result ) ) {
+ return true;
+ }
+
+ $error_message = __(
+ 'There was an issue saving your updates to the VideoPress service. Please try again later.',
+ 'jetpack'
+ );
+
+ $error_code = $response_code;
+
+ if ( is_wp_error( $result ) ) {
+ $error_code = $result->get_error_code();
+ }
+
+ return new \WP_Error( $error_code, $error_message );
+ }
+
+ /**
+ * Build the request values that will be passed to the WPCOM API.
+ *
+ * @param string $post_title The video title.
+ * @param string $caption The video caption.
+ * @param string $post_excerpt The except.
+ * @param string $rating The video rating.
+ * @param string $display_embed The video display_embed.
+ * @param int $allow_download The video allow_download.
+ *
+ * @return array
+ */
+ private static function build_wpcom_api_request_values( $post_title, $caption, $post_excerpt, $rating, $display_embed, $allow_download ) {
+ $values = array();
+
+ // Add the video title & description in, so that we save it properly.
+ if ( isset( $post_title ) ) {
+ $values['title'] = trim( wp_strip_all_tags( $post_title ) );
+ }
+
+ if ( isset( $caption ) ) {
+ $values['caption'] = trim( wp_strip_all_tags( $caption ) );
+ }
+
+ if ( isset( $post_excerpt ) ) {
+ $values['description'] = trim( wp_strip_all_tags( $post_excerpt ) );
+ }
+
+ if ( isset( $rating ) ) {
+ $values['rating'] = $rating;
+ }
+
+ if ( self::is_display_embed_valid( $display_embed ) ) {
+ $values['display_embed'] = $display_embed;
+ }
+
+ if ( self::is_allow_download_valid( $allow_download ) ) {
+ $values['allow_download'] = $allow_download;
+ }
+
+ return $values;
+ }
+}
diff --git a/plugins/jetpack/modules/videopress/class.jetpack-videopress.php b/plugins/jetpack/modules/videopress/class.jetpack-videopress.php
index 5b73dde6..0d02cbe0 100644
--- a/plugins/jetpack/modules/videopress/class.jetpack-videopress.php
+++ b/plugins/jetpack/modules/videopress/class.jetpack-videopress.php
@@ -1,6 +1,7 @@
<?php
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Connection\Client;
/**
* VideoPress in Jetpack
@@ -42,7 +43,8 @@ class Jetpack_VideoPress {
public function on_init() {
add_action( 'wp_enqueue_media', array( $this, 'enqueue_admin_scripts' ) );
add_filter( 'plupload_default_settings', array( $this, 'videopress_pluploder_config' ) );
- add_filter( 'wp_get_attachment_url', array( $this, 'update_attachment_url_for_videopress' ), 10, 2 );
+ add_filter( 'wp_get_attachment_url', array( $this, 'maybe_get_attached_url_for_videopress' ), 10, 2 );
+ add_filter( 'get_attached_file', array( $this, 'maybe_get_attached_url_for_videopress' ), 10, 2 );
if ( Jetpack_Plan::supports( 'videopress' ) ) {
add_filter( 'upload_mimes', array( $this, 'add_video_upload_mimes' ), 999 );
@@ -51,12 +53,43 @@ class Jetpack_VideoPress {
add_action( 'admin_print_footer_scripts', array( $this, 'print_in_footer_open_media_add_new' ) );
add_action( 'admin_head', array( $this, 'enqueue_admin_styles' ) );
+ add_filter( 'pre_delete_attachment', array( $this, 'delete_video_wpcom' ), 10, 2 );
add_filter( 'wp_mime_type_icon', array( $this, 'wp_mime_type_icon' ), 10, 3 );
-
add_filter( 'wp_video_extensions', array( $this, 'add_videopress_extenstion' ) );
VideoPress_Scheduler::init();
VideoPress_XMLRPC::init();
+
+ if ( $this->is_videopress_enabled() ) {
+ add_action( 'admin_notices', array( $this, 'media_new_page_admin_notice' ) );
+ }
+ }
+
+ /**
+ * The media-new.php page isn't supported for uploading to VideoPress.
+ *
+ * There is either a technical reason for this (bulk uploader isn't overridable),
+ * or it is an intentional way to give site owners an option for uploading videos that bypass VideoPress.
+ */
+ public function media_new_page_admin_notice() {
+ global $pagenow;
+
+ if ( 'media-new.php' === $pagenow ) {
+ echo '<div class="notice notice-warning is-dismissible">' .
+ '<p>' .
+ wp_kses(
+ sprintf(
+ /* translators: %s is the url to the Media Library */
+ __( 'VideoPress uploads are not supported here. To upload to VideoPress, add your videos from the <a href="%s">Media Library</a> or the block editor using the Video block.', 'jetpack' ),
+ esc_url( admin_url( 'upload.php' ) )
+ ),
+ array(
+ 'a' => array( 'href' => array() ),
+ )
+ ) .
+ '</p>' .
+ '</div>';
+ }
}
/**
@@ -99,24 +132,68 @@ class Jetpack_VideoPress {
}
/**
- * Returns true if the provided user is the Jetpack connection owner.
+ * Register and enqueue VideoPress admin styles.
+ */
+ public function enqueue_admin_styles() {
+ wp_register_style( 'videopress-admin', plugins_url( 'videopress-admin.css', __FILE__ ), array(), $this->version );
+ wp_enqueue_style( 'videopress-admin' );
+ }
+
+ /**
+ * Attempts to delete a VideoPress video from wp.com.
+ * Will block the deletion from continuing if certain errors return from the wp.com API.
*
- * @deprecated since 7.7
+ * @param Boolean $delete if the deletion should occur or not (unused).
+ * @param WP_Post $post the post object.
*
- * @param Integer|Boolean $user_id the user identifier. False for current user.
- * @return bool Whether the current user is the connection owner.
+ * @return null|WP_Error|Boolean null if deletion should continue.
*/
- public function is_connection_owner( $user_id = false ) {
- _deprecated_function( __METHOD__, 'jetpack-7.7', 'Automattic\\Jetpack\\Connection\\Manager::is_connection_owner' );
- return Jetpack::connection()->is_connection_owner( $user_id );
+ public function delete_video_wpcom( $delete, $post ) {
+ if ( ! is_videopress_attachment( $post->ID ) ) {
+ return null;
+ }
+
+ $guid = get_post_meta( $post->ID, 'videopress_guid', true );
+ if ( empty( $guid ) ) {
+ $this->delete_video_poster_attachment( $post->ID );
+ return null;
+ }
+
+ // Phone home and have wp.com delete the VideoPress entry and files.
+ $wpcom_response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/videos/%s/delete', $guid ),
+ '1.1',
+ array( 'method' => 'POST' )
+ );
+
+ if ( is_wp_error( $wpcom_response ) ) {
+ return $wpcom_response;
+ }
+
+ // Upon success or a 404 (video already deleted on wp.com), return null to allow the deletion to continue.
+ if ( 200 === $wpcom_response['response']['code'] || 404 === $wpcom_response['response']['code'] ) {
+ $this->delete_video_poster_attachment( $post->ID );
+ return null;
+ }
+
+ // Otherwise we stop the deletion from proceeding.
+ return false;
}
/**
- * Register and enqueue VideoPress admin styles.
+ * Deletes a video poster attachment if it exists.
+ *
+ * @param int $attachment_id the WP attachment id.
*/
- public function enqueue_admin_styles() {
- wp_register_style( 'videopress-admin', plugins_url( 'videopress-admin.css', __FILE__ ), array(), $this->version );
- wp_enqueue_style( 'videopress-admin' );
+ private function delete_video_poster_attachment( $attachment_id ) {
+ $thumbnail_id = get_post_meta( $attachment_id, '_thumbnail_id', true );
+ if ( ! empty( $thumbnail_id ) ) {
+ // Let's ensure this is a VP poster image before we delete it.
+ if ( '1' === get_post_meta( $thumbnail_id, 'videopress_poster_image', true ) ) {
+ // This call triggers the `delete_video_wpcom` filter again but it bails early at the is_videopress_attachment() check.
+ wp_delete_attachment( $thumbnail_id );
+ }
+ }
}
/**
@@ -174,21 +251,21 @@ class Jetpack_VideoPress {
}
/**
- * An override for the attachment url, which returns back the WPCOM VideoPress processed url.
- *
- * This is an action proxy to the videopress_get_attachment_url() utility function.
+ * Returns the VideoPress URL for the give post id, otherwise returns the provided default.
*
- * @param string $url
- * @param int $post_id
+ * This is an attachment-based filter handler.
*
- * @return string
+ * @param string $default The default return value if post id is not a VideoPress video.
+ * @param int $post_id The post id for the current attachment.
*/
- public function update_attachment_url_for_videopress( $url, $post_id ) {
- if ( $videopress_url = videopress_get_attachment_url( $post_id ) ) {
+ public function maybe_get_attached_url_for_videopress( $default, $post_id ) {
+ $videopress_url = videopress_get_attachment_url( $post_id );
+
+ if ( null !== $videopress_url ) {
return $videopress_url;
}
- return $url;
+ return $default;
}
/**
@@ -236,6 +313,15 @@ class Jetpack_VideoPress {
return false;
}
+ return $this->is_videopress_enabled();
+ }
+
+ /**
+ * Detects if VideoPress is enabled.
+ *
+ * @return bool
+ */
+ protected function is_videopress_enabled() {
$options = VideoPress_Options::get_options();
return $options['shadow_blog_id'] > 0;
diff --git a/plugins/jetpack/modules/videopress/class.videopress-edit-attachment.php b/plugins/jetpack/modules/videopress/class.videopress-edit-attachment.php
index 5d55b2c6..ce4688b0 100644
--- a/plugins/jetpack/modules/videopress/class.videopress-edit-attachment.php
+++ b/plugins/jetpack/modules/videopress/class.videopress-edit-attachment.php
@@ -63,86 +63,61 @@ class VideoPress_Edit_Attachment {
* @param array $post
* @param array|null $attachment
*
+ * Disable phpcs rule for nonce verification since it's already done by Core.
+ * @phpcs:disable WordPress.Security.NonceVerification
+ *
* @return array
*/
public function save_fields( $post, $attachment = null ) {
- if ( $attachment === null && isset( $_POST['attachment'] ) ) {
+ if ( null === $attachment && isset( $_POST['attachment'] ) ) {
$attachment = $_POST['attachment'];
}
- if ( ! isset( $attachment['is_videopress_attachment'] ) || $attachment['is_videopress_attachment'] !== 'yes' ) {
+ if ( ! isset( $attachment['is_videopress_attachment'] ) || 'yes' !== $attachment['is_videopress_attachment'] ) {
return $post;
}
- $post_id = absint( $post['ID'] );
-
- $meta = wp_get_attachment_metadata( $post_id );
-
// If this has not been processed by videopress, we can skip the rest.
if ( ! is_videopress_attachment( $post['ID'] ) ) {
+ $post['errors']['videopress']['errors'][] = __( 'The media you are trying to update is not processed by VideoPress.', 'jetpack' );
return $post;
}
- $values = array();
-
- // Add the video title & description in, so that we save it properly.
- if ( isset( $_POST['post_title'] ) ) {
- $values['title'] = trim( strip_tags( $_POST['post_title'] ) );
- }
-
- if ( isset( $_POST['post_excerpt'] ) ) {
- $values['description'] = trim( strip_tags( $_POST['post_excerpt'] ) );
- }
-
- if ( isset( $attachment['rating'] ) ) {
- $rating = $attachment['rating'];
-
- if ( ! empty( $rating ) && in_array( $rating, array( 'G', 'PG-13', 'R-17', 'X-18' ) ) ) {
- $values['rating'] = $rating;
- }
- }
-
- // We set a default here, as if it isn't selected, then we'll turn it off.
- $values['display_embed'] = 0;
- if ( isset( $attachment['display_embed'] ) ) {
- $display_embed = $attachment['display_embed'];
-
- $values['display_embed'] = 'on' === $display_embed ? 1 : 0;
- }
-
- $args = array(
- 'method' => 'POST',
+ $post_title = isset( $_POST['post_title'] ) ? $_POST['post_title'] : null;
+ $post_excerpt = isset( $_POST['post_excerpt'] ) ? $_POST['post_excerpt'] : null;
+ $rating = isset( $attachment['rating'] ) ? $attachment['rating'] : null;
+ $display_embed = isset( $attachment['display_embed'] ) ? $attachment['display_embed'] : 0;
+ $allow_download = isset( $attachment['allow_download'] ) ? $attachment['allow_download'] : 0;
+
+ $result = Videopress_Attachment_Metadata::persist_metadata(
+ $post['ID'],
+ get_post_meta( $post['ID'], 'videopress_guid', true ),
+ $post_title,
+ null, // @todo: Check why we haven't sent the caption in the first place.
+ $post_excerpt,
+ $rating,
+ $this->normalize_checkbox_value( $display_embed ),
+ $this->normalize_checkbox_value( $allow_download )
);
- $guid = get_post_meta( $post_id, 'videopress_guid', true );
-
- $endpoint = "videos/{$guid}";
- $result = Client::wpcom_json_api_request_as_blog( $endpoint, Client::WPCOM_JSON_API_VERSION, $args, $values );
-
if ( is_wp_error( $result ) ) {
- $post['errors']['videopress']['errors'][] = __( 'There was an issue saving your updates to the VideoPress service. Please try again later.', 'jetpack' );
- return $post;
- }
-
- if ( isset( $values['display_embed'] ) ) {
- $meta['videopress']['display_embed'] = $values['display_embed'];
- }
-
- if ( isset( $values['rating'] ) ) {
- $meta['videopress']['rating'] = $values['rating'];
- }
-
- wp_update_attachment_metadata( $post_id, $meta );
-
- $response = json_decode( $result['body'], true );
-
- if ( 'true' !== $response ) {
+ $post['errors']['videopress']['errors'][] = $result->get_error_message();
return $post;
}
return $post;
}
+ /**
+ * Convert the string values of a checkbox option to the format that they will be stored in db.
+ *
+ * @param string $value The denormalized version.
+ *
+ * @return int
+ */
+ private function normalize_checkbox_value( $value ) {
+ return 'on' === $value ? 1 : 0;
+ }
/**
* Get the upload api path.
@@ -152,9 +127,8 @@ class VideoPress_Edit_Attachment {
*/
public function make_video_api_path( $guid ) {
return sprintf(
- '%s://%s/rest/v%s/videos/%s',
- 'https',
- 'public-api.wordpress.com', // JETPACK__WPCOM_JSON_API_HOST,
+ '%s/rest/v%s/videos/%s',
+ JETPACK__WPCOM_JSON_API_BASE,
Client::WPCOM_JSON_API_VERSION,
$guid
);
@@ -224,6 +198,12 @@ class VideoPress_Edit_Attachment {
'html' => $this->display_embed_choice( $info ),
);
+ $fields['allow_download'] = array(
+ 'label' => _x( 'Download', 'A header for the video allow download option area', 'jetpack' ),
+ 'input' => 'html',
+ 'html' => $this->display_download_choice( $info ),
+ );
+
$fields['video-rating'] = array(
'label' => _x( 'Rating', 'A header for the video rating area', 'jetpack' ),
'input' => 'html',
@@ -249,31 +229,10 @@ class VideoPress_Edit_Attachment {
$info = (object) $meta['videopress'];
- $status = videopress_get_transcoding_status( $post_id );
-
- $formats = array(
- 'std_mp4' => 'Standard MP4',
- 'std_ogg' => 'OGG Vorbis',
- 'dvd_mp4' => 'DVD',
- 'hd_mp4' => 'High Definition',
- );
-
$embed = "[videopress {$guid}]";
$shortcode = '<input type="text" id="plugin-embed" readonly="readonly" style="width:180px;" value="' . esc_attr( $embed ) . '" onclick="this.focus();this.select();" />';
- $trans_status = '';
- $all_trans_done = true;
- foreach ( $formats as $status_key => $name ) {
- if ( 'DONE' !== $status[ $status_key ] ) {
- $all_trans_done = false;
- }
-
- $trans_status .= '- <strong>' . $name . ":</strong> <span id=\"status_$status_key\">" . ( 'DONE' === $status[ $status_key ] ? 'Done' : 'Processing' ) . '</span><br>';
- }
-
- $nonce = wp_create_nonce( 'videopress-update-transcoding-status' );
-
$url = 'empty';
if ( ! empty( $guid ) ) {
$url = videopress_build_url( $guid );
@@ -285,75 +244,72 @@ class VideoPress_Edit_Attachment {
$poster = "<br><img src=\"{$info->poster}\" width=\"175px\">";
}
- $status_update = '';
- if ( ! $all_trans_done ) {
- $status_update = ' (<a href="javascript:;" id="videopress-update-transcoding-status">update</a>)';
- }
-
$html = <<< HTML
<div class="misc-pub-section misc-pub-shortcode">
<strong>Shortcode</strong><br>
{$shortcode}
-</div>
+</div>
<div class="misc-pub-section misc-pub-url">
<strong>Url</strong>
{$url}
-</div>
+</div>
<div class="misc-pub-section misc-pub-poster">
<strong>Poster</strong>
{$poster}
</div>
-<div class="misc-pub-section misc-pub-status">
- <strong>Transcoding Status$status_update:</strong>
- <div id="videopress-transcoding-status">{$trans_status}</div>
-</div>
-
-
-
-<script>
- jQuery( function($) {
- $( '#videopress-update-transcoding-status' ).on( "click", function() {
- jQuery.ajax( {
- type: 'post',
- url: 'admin-ajax.php',
- data: {
- action: 'videopress-update-transcoding-status',
- post_id: '{$post_id}',
- _ajax_nonce: '{$nonce}'
- },
- complete: function( response ) {
- if ( 200 === response.status ) {
- var statuses = response.responseJSON.data.status;
-
- for (var key in statuses) {
- $('#status_' + key).text( 'DONE' === statuses[key] ? 'Done' : 'Processing' );
- }
- }
- }
- });
- } );
- } );
-</script>
HTML;
echo $html;
}
/**
+ * Creates a checkbox and a label for a video option.
+ *
+ * @param string $id the checkbox id.
+ * @param string $name the checkbox name.
+ * @param string $label the label text.
+ * @param bool $is_checked if the checkbox should be checked.
+ *
+ * @return string the generated HTML
+ */
+ protected function create_checkbox_for_option( $id, $name, $label, $is_checked ) {
+ $html = "<label for='$id'><input type='checkbox' name='$name' id='$id'";
+ if ( $is_checked ) {
+ $html .= ' checked="checked"';
+ }
+ $html .= " />$label</label>";
+ return $html;
+ }
+
+ /**
* Build HTML to display a form checkbox for embedcode display preference
*
* @param object $info database row from the videos table
* @return string input element of type checkbox set to checked state based on stored embed preference
*/
protected function display_embed_choice( $info ) {
- $id = "attachments-{$info->post_id}-displayembed";
- $out = "<label for='$id'><input type='checkbox' name='attachments[{$info->post_id}][display_embed]' id='$id'";
- if ( $info->display_embed ) {
- $out .= ' checked="checked"';
- }
- $out .= ' />' . __( 'Display share menu and allow viewers to embed or download this video', 'jetpack' ) . '</label>';
- return $out;
+ return $this->create_checkbox_for_option(
+ "attachments-{$info->post_id}-displayembed",
+ "attachments[{$info->post_id}][display_embed]",
+ __( 'Display share menu and allow viewers to copy a link or embed this video', 'jetpack' ),
+ $info->display_embed
+ );
+ }
+
+ /**
+ * Build HTML to display a form checkbox for the "allow download" video option
+ *
+ * @param object $info database row from the videos table.
+ * @return string input element of type checkbox with checked state matching the download preference
+ */
+ protected function display_download_choice( $info ) {
+ return $this->create_checkbox_for_option(
+ "attachments-{$info->post_id}-allowdownload",
+ "attachments[{$info->post_id}][allow_download]",
+ __( 'Display download option and allow viewers to download this video', 'jetpack' ),
+ $info->allow_download
+ );
}
/**
@@ -369,13 +325,18 @@ HTML;
'G' => 'G',
'PG-13' => 'PG-13',
'R-17' => 'R',
- 'X-18' => 'X',
);
+ $displayed_rating = $info->rating;
+ // X-18 was previously supported but is now removed to better comply with our TOS.
+ if ( 'X-18' === $displayed_rating ) {
+ $displayed_rating = 'R-17';
+ }
+
foreach ( $ratings as $r => $label ) {
$id = "attachments-{$info->post_id}-rating-$r";
$out .= "<label for=\"$id\"><input type=\"radio\" name=\"attachments[{$info->post_id}][rating]\" id=\"$id\" value=\"$r\"";
- if ( $info->rating == $r ) {
+ if ( $displayed_rating === $r ) {
$out .= ' checked="checked"';
}
diff --git a/plugins/jetpack/modules/videopress/class.videopress-gutenberg.php b/plugins/jetpack/modules/videopress/class.videopress-gutenberg.php
index 55421ee9..19a29699 100644
--- a/plugins/jetpack/modules/videopress/class.videopress-gutenberg.php
+++ b/plugins/jetpack/modules/videopress/class.videopress-gutenberg.php
@@ -1,11 +1,12 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Block Editor functionality for VideoPress users.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Blocks;
/**
* Register a VideoPress extension to replace the default Core Video block.
@@ -37,6 +38,27 @@ class VideoPress_Gutenberg {
}
/**
+ * Get site's ID.
+ *
+ * @return int $blog_id Site ID.
+ */
+ private static function get_blog_id() {
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ return get_current_blog_id();
+ } elseif ( method_exists( 'Jetpack', 'is_active' ) && Jetpack::is_active() ) {
+ /**
+ * We're intentionally not using `get_current_blog_id` because it was returning unexpected values.
+ *
+ * @see https://github.com/Automattic/jetpack/pull/11193#issuecomment-457883886
+ * @see https://github.com/Automattic/jetpack/pull/11193/commits/215cf789f3d8bd03ff9eb1bbdb693acb8831d273
+ */
+ return Jetpack_Options::get_option( 'id' );
+ }
+
+ return null;
+ }
+
+ /**
* Used to check whether VideoPress is enabled for given site.
*
* @todo Create a global `jetpack_check_module_availability( $module )` helper so we can re-use it on other modules.
@@ -47,6 +69,17 @@ class VideoPress_Gutenberg {
* unavailable (key `unavailable_reason`)
*/
public function check_videopress_availability() {
+ if (
+ defined( 'IS_WPCOM' ) && IS_WPCOM &&
+ function_exists( 'require_lib' )
+ ) {
+ require_lib( 'wpforteams' );
+
+ if ( WPForTeams\Workspace\is_part_of_active_workspace( self::get_blog_id() ) ) {
+ return array( 'available' => true );
+ }
+ }
+
// It is available on Simple Sites having the appropriate a plan.
if (
defined( 'IS_WPCOM' ) && IS_WPCOM
@@ -65,7 +98,7 @@ class VideoPress_Gutenberg {
// It is available on Jetpack Sites having the module active.
if (
- method_exists( 'Jetpack', 'is_active' ) && Jetpack::is_active()
+ method_exists( 'Jetpack', 'is_connection_ready' ) && Jetpack::is_connection_ready()
&& method_exists( 'Jetpack', 'is_module_active' )
&& method_exists( 'Jetpack_Plan', 'supports' )
) {
@@ -108,7 +141,7 @@ class VideoPress_Gutenberg {
* It defines a server-side rendering that adds VideoPress support to the core video block.
*/
public function register_video_block_with_videopress() {
- jetpack_register_block(
+ Blocks::jetpack_register_block(
'core/video',
array(
'render_callback' => array( $this, 'render_video_block_with_videopress' ),
@@ -129,17 +162,7 @@ class VideoPress_Gutenberg {
return $content;
}
- if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $blog_id = get_current_blog_id();
- } elseif ( method_exists( 'Jetpack', 'is_active' ) && Jetpack::is_active() ) {
- /**
- * We're intentionally not using `get_current_blog_id` because it was returning unexpected values.
- *
- * @see https://github.com/Automattic/jetpack/pull/11193#issuecomment-457883886
- * @see https://github.com/Automattic/jetpack/pull/11193/commits/215cf789f3d8bd03ff9eb1bbdb693acb8831d273
- */
- $blog_id = Jetpack_Options::get_option( 'id' );
- }
+ $blog_id = self::get_blog_id();
if ( ! isset( $blog_id ) ) {
return $content;
@@ -175,8 +198,8 @@ class VideoPress_Gutenberg {
* uploaded against the WP.com API media endpoint and thus transcoded by VideoPress.
*/
public function override_video_upload() {
- // Bail if Jetpack or VideoPress is not active.
- if ( ! Jetpack::is_active() || ! Jetpack::is_module_active( 'videopress' ) ) {
+ // Bail if Jetpack is not connected or VideoPress module is not active.
+ if ( ! Jetpack::is_connection_ready() || ! Jetpack::is_module_active( 'videopress' ) ) {
return;
}
diff --git a/plugins/jetpack/modules/videopress/class.videopress-player.php b/plugins/jetpack/modules/videopress/class.videopress-player.php
index ab5105df..2640e19a 100644
--- a/plugins/jetpack/modules/videopress/class.videopress-player.php
+++ b/plugins/jetpack/modules/videopress/class.videopress-player.php
@@ -108,8 +108,8 @@ class VideoPress_Player {
if ( ! defined( 'WP_DEBUG' ) || WP_DEBUG !== true ) {
$expire = 3600;
- if ( isset( $video->expires ) && is_int( $video->expires ) ) {
- $expires_diff = time() - $video->expires;
+ if ( isset( $this->video->expires ) && is_int( $this->video->expires ) ) {
+ $expires_diff = time() - $this->video->expires;
if ( $expires_diff > 0 && $expires_diff < 86400 ) { // allowed range: 1 second to 1 day
$expire = $expires_diff;
}
@@ -622,6 +622,10 @@ class VideoPress_Player {
$this->options['hd'] = (bool) get_option( 'video_player_high_quality', false );
}
+ if ( ! array_key_exists( 'cover', $this->options ) ) {
+ $this->options['cover'] = true;
+ }
+
$videopress_options = array(
'width' => absint( $this->video->calculated_width ),
'height' => absint( $this->video->calculated_height ),
@@ -629,8 +633,8 @@ class VideoPress_Player {
foreach ( $this->options as $option => $value ) {
switch ( $option ) {
case 'at':
- if ( intval( $value ) ) {
- $videopress_options[ $option ] = intval( $value );
+ if ( (int) $value ) {
+ $videopress_options[ $option ] = (int) $value;
}
break;
case 'autoplay':
@@ -638,6 +642,7 @@ class VideoPress_Player {
case 'hd':
case 'loop':
case 'permalink':
+ case 'cover':
if ( in_array( $value, array( 1, 'true' ) ) ) {
$videopress_options[ $option ] = true;
} elseif ( in_array( $value, array( 0, 'false' ) ) ) {
diff --git a/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php b/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
index 73c67d7d..b5e508ef 100644
--- a/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
+++ b/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
@@ -11,6 +11,12 @@ class VideoPress_XMLRPC {
**/
private static $instance = null;
+ /**
+ * The current user object.
+ *
+ * @var WP_User
+ */
+ private $current_user;
/**
* Private VideoPress_XMLRPC constructor.
@@ -18,7 +24,7 @@ class VideoPress_XMLRPC {
* Use the VideoPress_XMLRPC::init() method to get an instance.
*/
private function __construct() {
- add_filter( 'jetpack_xmlrpc_methods', array( $this, 'xmlrpc_methods' ) );
+ add_filter( 'jetpack_xmlrpc_methods', array( $this, 'xmlrpc_methods' ), 10, 3 );
}
/**
@@ -37,11 +43,16 @@ class VideoPress_XMLRPC {
/**
* Adds additional methods the WordPress xmlrpc API for handling VideoPress specific features
*
- * @param array $methods
+ * @param array $methods The Jetpack API methods.
+ * @param array $core_methods The WordPress Core API methods (ignored).
+ * @param WP_User $user The user object the API request is signed by.
*
* @return array
*/
- public function xmlrpc_methods( $methods ) {
+ public function xmlrpc_methods( $methods, $core_methods, $user ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( $user && $user instanceof WP_User ) {
+ $this->current_user = $user;
+ }
$methods['jetpack.createMediaItem'] = array( $this, 'create_media_item' );
$methods['jetpack.updateVideoPressMediaItem'] = array( $this, 'update_videopress_media_item' );
@@ -62,6 +73,8 @@ class VideoPress_XMLRPC {
* @return array
*/
public function create_media_item( $media ) {
+ $this->authenticate_user();
+
foreach ( $media as & $media_item ) {
$title = sanitize_title( basename( $media_item['url'] ) );
$guid = isset( $media['guid'] ) ? $media['guid'] : null;
@@ -89,6 +102,7 @@ class VideoPress_XMLRPC {
* @return bool
*/
public function update_videopress_media_item( $request ) {
+ $this->authenticate_user();
$id = $request['post_id'];
$status = $request['status'];
@@ -99,7 +113,8 @@ class VideoPress_XMLRPC {
return false;
}
- $attachment->guid = $info['original'];
+ $attachment->guid = $info['original'];
+ $attachment->post_mime_type = 'video/videopress';
wp_update_post( $attachment );
@@ -115,8 +130,7 @@ class VideoPress_XMLRPC {
$meta['videopress']['url'] = 'https://videopress.com/v/' . $info['guid'];
// Update file statuses
- $valid_formats = array( 'hd', 'ogg', 'mp4', 'dvd' );
- if ( in_array( $format, $valid_formats ) ) {
+ if ( ! empty( $format ) ) {
$meta['file_statuses'][ $format ] = $status;
}
@@ -144,6 +158,7 @@ class VideoPress_XMLRPC {
* @return bool
*/
public function update_poster_image( $request ) {
+ $this->authenticate_user();
$post_id = $request['post_id'];
$poster = $request['poster'];
@@ -152,8 +167,7 @@ class VideoPress_XMLRPC {
return false;
}
- // We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
- $poster = apply_filters( 'jetpack_photon_url', $poster, array( 'ssl' => 1 ), 'https' );
+ $poster = apply_filters( 'jetpack_photon_url', $poster );
$meta = wp_get_attachment_metadata( $post_id );
$meta['videopress']['poster'] = $poster;
@@ -170,4 +184,19 @@ class VideoPress_XMLRPC {
return true;
}
+
+ /**
+ * Check if the XML-RPC request is signed by a user token, and authenticate the user in WordPress.
+ *
+ * @return bool
+ */
+ private function authenticate_user() {
+ if ( $this->current_user ) {
+ wp_set_current_user( $this->current_user->ID );
+
+ return true;
+ }
+
+ return false;
+ }
}
diff --git a/plugins/jetpack/modules/videopress/css/editor-rtl.css b/plugins/jetpack/modules/videopress/css/editor-rtl.css
index 12945cb6..08beb376 100644
--- a/plugins/jetpack/modules/videopress/css/editor-rtl.css
+++ b/plugins/jetpack/modules/videopress/css/editor-rtl.css
@@ -23,7 +23,7 @@
.mce-videopress-checkbox i.mce-i-checkbox {
background-color: #fff;
- color: #1e8cbe;
+ color: #4f94d4;
}
.mce-videopress-checkbox .mce-i-checkbox:before {
diff --git a/plugins/jetpack/modules/videopress/css/editor-rtl.min.css b/plugins/jetpack/modules/videopress/css/editor-rtl.min.css
index 460d6f03..4ca3dafd 100644
--- a/plugins/jetpack/modules/videopress/css/editor-rtl.min.css
+++ b/plugins/jetpack/modules/videopress/css/editor-rtl.min.css
@@ -1 +1 @@
-.mce-videopress-field-flashonly,.mce-videopress-field-freedom,.mce-videopress-field-guid{display:none}.mce-videopress-checkbox .mce-checkbox{right:120px!important;width:100%!important}.mce-videopress-checkbox .mce-label{right:150px!important}.mce-videopress-checkbox .mce-label-unit{position:absolute;right:210px;top:5px}.mce-videopress-checkbox i.mce-i-checkbox{background-color:#fff;color:#1e8cbe}.mce-videopress-checkbox .mce-i-checkbox:before{display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:-3px -3px 0 0;content:"\f147"}.mce-videopress-checkbox .mce-i-checkbox.mce-checked:before{content:"\f147"}div[class*=mce-videopress-field] input[type=number]{width:70px!important;right:120px!important}.mce-videopress-field-at .mce-label,.mce-videopress-field-w .mce-label{width:115px!important;text-align:left}.mce-videopress-field-unit{position:absolute;right:210px;top:5px} \ No newline at end of file
+.mce-videopress-field-flashonly,.mce-videopress-field-freedom,.mce-videopress-field-guid{display:none}.mce-videopress-checkbox .mce-checkbox{right:120px!important;width:100%!important}.mce-videopress-checkbox .mce-label{right:150px!important}.mce-videopress-checkbox .mce-label-unit{position:absolute;right:210px;top:5px}.mce-videopress-checkbox i.mce-i-checkbox{background-color:#fff;color:#4f94d4}.mce-videopress-checkbox .mce-i-checkbox:before{display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:-3px -3px 0 0;content:"\f147"}.mce-videopress-checkbox .mce-i-checkbox.mce-checked:before{content:"\f147"}div[class*=mce-videopress-field] input[type=number]{width:70px!important;right:120px!important}.mce-videopress-field-at .mce-label,.mce-videopress-field-w .mce-label{width:115px!important;text-align:left}.mce-videopress-field-unit{position:absolute;right:210px;top:5px} \ No newline at end of file
diff --git a/plugins/jetpack/modules/videopress/css/editor.css b/plugins/jetpack/modules/videopress/css/editor.css
index 69b79dfe..81ec5bf8 100644
--- a/plugins/jetpack/modules/videopress/css/editor.css
+++ b/plugins/jetpack/modules/videopress/css/editor.css
@@ -22,7 +22,7 @@
.mce-videopress-checkbox i.mce-i-checkbox {
background-color: #fff;
- color: #1e8cbe;
+ color: #4f94d4;
}
.mce-videopress-checkbox .mce-i-checkbox:before {
diff --git a/plugins/jetpack/modules/videopress/css/editor.min.css b/plugins/jetpack/modules/videopress/css/editor.min.css
index f3a010b7..a840ae60 100644
--- a/plugins/jetpack/modules/videopress/css/editor.min.css
+++ b/plugins/jetpack/modules/videopress/css/editor.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-.mce-videopress-field-flashonly,.mce-videopress-field-freedom,.mce-videopress-field-guid{display:none}.mce-videopress-checkbox .mce-checkbox{left:120px!important;width:100%!important}.mce-videopress-checkbox .mce-label{left:150px!important}.mce-videopress-checkbox .mce-label-unit{position:absolute;left:210px;top:5px}.mce-videopress-checkbox i.mce-i-checkbox{background-color:#fff;color:#1e8cbe}.mce-videopress-checkbox .mce-i-checkbox:before{display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:-3px 0 0 -3px;content:"\f147"}.mce-videopress-checkbox .mce-i-checkbox.mce-checked:before{content:"\f147"}div[class*=mce-videopress-field] input[type=number]{width:70px!important;left:120px!important}.mce-videopress-field-at .mce-label,.mce-videopress-field-w .mce-label{width:115px!important;text-align:right}.mce-videopress-field-unit{position:absolute;left:210px;top:5px} \ No newline at end of file
+.mce-videopress-field-flashonly,.mce-videopress-field-freedom,.mce-videopress-field-guid{display:none}.mce-videopress-checkbox .mce-checkbox{left:120px!important;width:100%!important}.mce-videopress-checkbox .mce-label{left:150px!important}.mce-videopress-checkbox .mce-label-unit{position:absolute;left:210px;top:5px}.mce-videopress-checkbox i.mce-i-checkbox{background-color:#fff;color:#4f94d4}.mce-videopress-checkbox .mce-i-checkbox:before{display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:-3px 0 0 -3px;content:"\f147"}.mce-videopress-checkbox .mce-i-checkbox.mce-checked:before{content:"\f147"}div[class*=mce-videopress-field] input[type=number]{width:70px!important;left:120px!important}.mce-videopress-field-at .mce-label,.mce-videopress-field-w .mce-label{width:115px!important;text-align:right}.mce-videopress-field-unit{position:absolute;left:210px;top:5px} \ No newline at end of file
diff --git a/plugins/jetpack/modules/videopress/editor-media-view.php b/plugins/jetpack/modules/videopress/editor-media-view.php
index f9ff3498..9fffaafa 100644
--- a/plugins/jetpack/modules/videopress/editor-media-view.php
+++ b/plugins/jetpack/modules/videopress/editor-media-view.php
@@ -73,7 +73,7 @@ function videopress_editor_view_js_templates() {
<script type="text/html" id="tmpl-videopress_iframe_vnext">
<div class="tmpl-videopress_iframe_next" style="max-height:{{ data.height }}px;">
<div class="videopress-editor-wrapper" style="padding-top:{{ data.ratio }}%;">
- <iframe style="display: block;" width="{{ data.width }}" height="{{ data.height }}" src="https://videopress.com/embed/{{ data.guid }}?{{ data.urlargs }}" frameborder='0' allowfullscreen></iframe>
+ <iframe style="display: block; max-width: 100%; max-height: 100%;" width="{{ data.width }}" height="{{ data.height }}" src="https://videopress.com/embed/{{ data.guid }}?{{ data.urlargs }}" frameborder='0' allowfullscreen></iframe>
</div>
</div>
</script>
@@ -170,7 +170,7 @@ function add_videopress_media_overrides() {
function videopress_override_media_templates() {
?>
<script type="text/html" id="tmpl-videopress_iframe_vnext">
- <iframe style="display: block; max-width: 100%;" width="{{ data.width }}" height="{{ data.height }}" src="https://videopress.com/embed/{{ data.guid }}?{{ data.urlargs }}" frameborder='0' allowfullscreen></iframe>
+ <iframe class="videopress-iframe" style="display: block; max-width: 100%; max-height: 100%;" width="{{ data.width }}" height="{{ data.height }}" src="https://videopress.com/embed/{{ data.guid }}?{{ data.urlargs }}" frameborder='0' allowfullscreen></iframe>
</script>
<script>
(function( media ){
@@ -189,8 +189,8 @@ function videopress_override_media_templates() {
if ( this.model.get('videopress_guid') ) {
this.$('.attachment-media-view .thumbnail-video').html( vp_template( {
guid : this.model.get('videopress_guid'),
- width : this.model.get('width'),
- height : this.model.get('height')
+ width : this.model.get('width') > 0 ? this.model.get('width') : '100%',
+ height : this.model.get('height') > 0 ? this.model.get('height') : '100%'
}));
}
}
@@ -210,6 +210,16 @@ function videopress_override_media_templates() {
};
} else { /* console.log( 'media.video undefined' ); */ }
+ // override the media modal in order to extend the escape method to unload the player on hide
+ var BaseMediaModal = wp.media.view.Modal;
+
+ wp.media.view.Modal = BaseMediaModal.extend( {
+ escape: function () {
+ BaseMediaModal.prototype.escape.apply( this );
+ var playerIframe = document.getElementsByClassName( "videopress-iframe" )[0];
+ playerIframe.parentElement.removeChild( playerIframe );
+ }
+ } );
})( wp.media );
</script>
<?php
diff --git a/plugins/jetpack/modules/videopress/js/editor-view.js b/plugins/jetpack/modules/videopress/js/editor-view.js
index 2b9c2873..8d942098 100644
--- a/plugins/jetpack/modules/videopress/js/editor-view.js
+++ b/plugins/jetpack/modules/videopress/js/editor-view.js
@@ -1,5 +1,5 @@
/* global tinyMCE, vpEditorView */
-( function( $, wp, vpEditorView ) {
+( function ( $, wp, vpEditorView ) {
wp.mce = wp.mce || {};
if ( 'undefined' === typeof wp.mce.views ) {
return;
@@ -19,7 +19,7 @@
},
coerce: wp.media.coerce,
template: wp.template( 'videopress_iframe_vnext' ),
- getContent: function() {
+ getContent: function () {
var urlargs = 'for=' + encodeURIComponent( vpEditorView.home_url_host ),
named = this.shortcode.attrs.named,
options,
@@ -70,7 +70,7 @@
return this.template( options );
},
- edit: function( data ) {
+ edit: function ( data ) {
var shortcode_data = wp.shortcode.next( this.shortcode_string, data ),
named = shortcode_data.shortcode.attrs.named,
editor = tinyMCE.activeEditor,
@@ -83,7 +83,7 @@
*
* @returns {string}
*/
- tinyMCE.ui.TextBox.prototype.renderHtml = function() {
+ tinyMCE.ui.TextBox.prototype.renderHtml = function () {
var self = this,
settings = self.settings,
element = document.createElement( settings.multiline ? 'textarea' : 'input' ),
@@ -129,10 +129,10 @@
return element.outerHTML;
};
- tinyMCE.ui.FormItem.prototype.renderHtml = function() {
+ tinyMCE.ui.FormItem.prototype.renderHtml = function () {
_.each(
vpEditorView.modal_labels,
- function( value, key ) {
+ function ( value, key ) {
if ( value === this.settings.items.text ) {
this.classes.add( 'videopress-field-' + key );
}
@@ -163,7 +163,7 @@
*/
_.each(
this.defaults,
- function( value, key ) {
+ function ( value, key ) {
named[ key ] = this.coerce( named, key );
},
this
@@ -238,7 +238,7 @@
checked: named.flashonly,
},
],
- onsubmit: function( e ) {
+ onsubmit: function ( e ) {
var args = {
tag: renderer.shortcode_string,
type: 'single',
@@ -254,7 +254,7 @@
_.each(
renderer.defaults,
- function( value, key ) {
+ function ( value, key ) {
args.attrs.named[ key ] = this.coerce( args.attrs.named, key );
if ( value === args.attrs.named[ key ] ) {
@@ -266,9 +266,9 @@
editor.insertContent( wp.shortcode.string( args ) );
},
- onopen: function( e ) {
+ onopen: function ( e ) {
var prefix = 'mce-videopress-field-';
- _.each( [ 'w', 'at' ], function( value ) {
+ _.each( [ 'w', 'at' ], function ( value ) {
e.target.$el
.find( '.' + prefix + value + ' .mce-container-body' )
.append(
@@ -284,7 +284,7 @@
} );
$( 'body' ).addClass( 'modal-open' );
},
- onclose: function() {
+ onclose: function () {
$( 'body' ).removeClass( 'modal-open' );
},
} );
diff --git a/plugins/jetpack/modules/videopress/js/gutenberg-video-upload.js b/plugins/jetpack/modules/videopress/js/gutenberg-video-upload.js
index c3ba1739..dfd558be 100644
--- a/plugins/jetpack/modules/videopress/js/gutenberg-video-upload.js
+++ b/plugins/jetpack/modules/videopress/js/gutenberg-video-upload.js
@@ -1,6 +1,82 @@
/* globals wp, lodash */
+window.videoPressUploadTrack = function ( guid, kind, srcLang, label, vttFile ) {
+ // eslint-disable-next-line no-undef
+ return new Promise( function ( resolve, reject ) {
+ wp.media
+ .ajax( 'videopress-get-upload-token', { async: true, data: { filename: vttFile.name } } )
+ .done( function ( response ) {
+ // Set auth header with upload token.
+ var headers = {},
+ options = {};
+ var body = new FormData();
+ headers[ 'Authorization' ] =
+ 'X_UPLOAD_TOKEN token="' +
+ response.upload_token +
+ '" blog_id="' +
+ response.upload_blog_id +
+ '"';
+ options.headers = headers;
+ options.method = 'POST';
+ options.url = 'https://public-api.wordpress.com/rest/v1.1/videos/' + guid + '/tracks';
-wp.apiFetch.use( function( options, next ) {
+ // Handle CORS.
+ options.credentials = 'omit';
+
+ body.append( 'kind', kind );
+ body.append( 'srclang', srcLang );
+ body.append( 'label', label );
+ body.append( 'vtt', vttFile );
+
+ options.body = body;
+
+ wp.apiFetch( options )
+ .then( function ( res ) {
+ resolve( res );
+ } )
+ .catch( function ( error ) {
+ reject( error );
+ } );
+ } );
+ } );
+};
+
+window.videoPressDeleteTrack = function ( guid, kind, srcLang ) {
+ // eslint-disable-next-line no-undef
+ return new Promise( function ( resolve, reject ) {
+ wp.media.ajax( 'videopress-get-upload-token', { async: true } ).done( function ( response ) {
+ // Set auth header with upload token.
+ var headers = {},
+ options = {};
+ var body = new FormData();
+ headers[ 'Authorization' ] =
+ 'X_UPLOAD_TOKEN token="' +
+ response.upload_token +
+ '" blog_id="' +
+ response.upload_blog_id +
+ '"';
+ options.headers = headers;
+ options.method = 'POST';
+ options.url = 'https://public-api.wordpress.com/rest/v1.1/videos/' + guid + '/tracks/delete';
+
+ // Handle CORS.
+ options.credentials = 'omit';
+
+ body.append( 'kind', kind );
+ body.append( 'srclang', srcLang );
+ options.body = body;
+
+ wp.apiFetch( options )
+ .then( function ( res ) {
+ resolve( res );
+ } )
+ .catch( function ( error ) {
+ reject( error );
+ } );
+ } );
+ } );
+};
+
+wp.apiFetch.use( function ( options, next ) {
var path = options.path;
var method = options.method;
var body = options.body;
@@ -20,7 +96,7 @@ wp.apiFetch.use( function( options, next ) {
// Get upload token.
wp.media
.ajax( 'videopress-get-upload-token', { async: false, data: { filename: file.name } } )
- .done( function( response ) {
+ .done( function ( response ) {
// Set auth header with upload token.
var headers = options.headers || {};
headers.Authorization =
@@ -46,9 +122,16 @@ wp.apiFetch.use( function( options, next ) {
var result = next( options );
- return new Promise( function( resolve, reject ) {
+ return new Promise( function ( resolve, reject ) {
result
- .then( function( data ) {
+ .then( function ( response ) {
+ if ( response instanceof Response && response.ok ) {
+ return response.json();
+ }
+
+ return response; // if not a response object, then its our parsed body so return that
+ } )
+ .then( function ( data ) {
var wpcomMediaObject = lodash.get( data, 'media[0]' );
var id = lodash.get( wpcomMediaObject, 'ID' );
var gutenbergMediaObject = wp.apiFetch( {
@@ -56,8 +139,11 @@ wp.apiFetch.use( function( options, next ) {
} );
resolve( gutenbergMediaObject );
} )
- .catch( function() {
- reject();
+ .catch( function ( error ) {
+ if ( 'errors' in error && 'object' === typeof error.errors && error.errors.length > 0 ) {
+ error = error.errors.shift();
+ }
+ reject( error );
} );
} );
} );
diff --git a/plugins/jetpack/modules/videopress/js/media-video-widget-extensions.js b/plugins/jetpack/modules/videopress/js/media-video-widget-extensions.js
index d7d9845c..0cb6e165 100644
--- a/plugins/jetpack/modules/videopress/js/media-video-widget-extensions.js
+++ b/plugins/jetpack/modules/videopress/js/media-video-widget-extensions.js
@@ -1,12 +1,12 @@
window.wp = window.wp || {};
-( function( wp ) {
+( function ( wp ) {
if ( wp.mediaWidgets ) {
// Over-ride core media_video#mapMediaToModelProps to set the url based upon videopress_guid if it exists.
- wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps = ( function(
+ wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps = ( function (
originalMapMediaToModelProps
) {
- return function( mediaFrameProps ) {
+ return function ( mediaFrameProps ) {
var newProps, originalProps, videoPressGuid;
originalProps = originalMapMediaToModelProps.call( this, mediaFrameProps );
newProps = _.extend( {}, originalProps );
@@ -36,10 +36,10 @@ window.wp = window.wp || {};
} )( wp.mediaWidgets.controlConstructors.media_video.prototype.mapMediaToModelProps );
// Over-ride core media_video#isHostedVideo() to add support for videopress oembed urls.
- wp.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo = ( function(
+ wp.mediaWidgets.controlConstructors.media_video.prototype.isHostedVideo = ( function (
originalIsHostedVideo
) {
- return function( url ) {
+ return function ( url ) {
var parsedUrl = document.createElement( 'a' );
parsedUrl.href = url;
if ( 'videopress.com' === parsedUrl.hostname ) {
diff --git a/plugins/jetpack/modules/videopress/js/videopress-plupload.js b/plugins/jetpack/modules/videopress/js/videopress-plupload.js
index 0bec3c50..99efce6f 100644
--- a/plugins/jetpack/modules/videopress/js/videopress-plupload.js
+++ b/plugins/jetpack/modules/videopress/js/videopress-plupload.js
@@ -2,7 +2,7 @@
window.wp = window.wp || {};
-( function( exports, $ ) {
+( function ( exports, $ ) {
var Uploader, vp;
if ( typeof _wpPluploadSettings === 'undefined' ) {
@@ -24,7 +24,7 @@ window.wp = window.wp || {};
* @param {object} options.params An object of parameters to pass to $_POST when uploading the file.
* Extends this.plupload.multipart_params under the hood.
*/
- Uploader = function( options ) {
+ Uploader = function ( options ) {
var self = this,
isIE =
navigator.userAgent.indexOf( 'Trident/' ) !== -1 ||
@@ -131,7 +131,7 @@ window.wp = window.wp || {};
* @param {object} data
* @param {plupload.File} file File that was uploaded.
*/
- error = function( message, data, file ) {
+ error = function ( message, data, file ) {
if ( file.attachment ) {
file.attachment.destroy();
}
@@ -150,7 +150,7 @@ window.wp = window.wp || {};
*
* @param {plupload.Uploader} uploader Uploader instance.
*/
- this.uploader.bind( 'init', function( uploader ) {
+ this.uploader.bind( 'init', function ( uploader ) {
var timer,
active,
dragdrop,
@@ -170,7 +170,7 @@ window.wp = window.wp || {};
}
// 'dragenter' doesn't fire correctly, simulate it with a limited 'dragover'.
- dropzone.bind( 'dragover.wp-uploader', function() {
+ dropzone.bind( 'dragover.wp-uploader', function () {
if ( timer ) {
clearTimeout( timer );
}
@@ -183,13 +183,13 @@ window.wp = window.wp || {};
active = true;
} );
- dropzone.bind( 'dragleave.wp-uploader, drop.wp-uploader', function() {
+ dropzone.bind( 'dragleave.wp-uploader, drop.wp-uploader', function () {
// Using an instant timer prevents the drag-over class from
// being quickly removed and re-added when elements inside the
// dropzone are repositioned.
//
// @see https://core.trac.wordpress.org/ticket/21705
- timer = setTimeout( function() {
+ timer = setTimeout( function () {
active = false;
dropzone.trigger( 'dropzone:leave' ).removeClass( 'drag-over' );
}, 0 );
@@ -199,7 +199,7 @@ window.wp = window.wp || {};
$( self ).trigger( 'uploader:ready' );
} );
- this.uploader.bind( 'postinit', function( up ) {
+ this.uploader.bind( 'postinit', function ( up ) {
up.refresh();
self.init();
} );
@@ -221,8 +221,8 @@ window.wp = window.wp || {};
* @param {plupload.Uploader} uploader Uploader instance.
* @param {Array} files Array of file objects that were added to queue by the user.
*/
- this.uploader.bind( 'FilesAdded', function( up, files ) {
- _.each( files, function( file ) {
+ this.uploader.bind( 'FilesAdded', function ( up, files ) {
+ _.each( files, function ( file ) {
var attributes, image;
// Ignore failed uploads.
@@ -244,7 +244,7 @@ window.wp = window.wp || {};
);
// Handle early mime type scanning for images.
- image = /(?:jpe?g|png|gif)$/i.exec( file.name );
+ image = /(?:jpe?g|png|gif|webp)$/i.exec( file.name );
// For images set the model's type and subtype attributes.
if ( image ) {
@@ -267,7 +267,7 @@ window.wp = window.wp || {};
up.start();
} );
- this.uploader.bind( 'UploadProgress', function( up, file ) {
+ this.uploader.bind( 'UploadProgress', function ( up, file ) {
file.attachment.set( _.pick( file, 'loaded', 'percent' ) );
self.progress( file.attachment );
} );
@@ -280,7 +280,7 @@ window.wp = window.wp || {};
* @param {Object} response Object with response properties.
* @return {mixed}
*/
- this.uploader.bind( 'FileUploaded', function( up, file, response ) {
+ this.uploader.bind( 'FileUploaded', function ( up, file, response ) {
var complete;
try {
@@ -295,14 +295,26 @@ window.wp = window.wp || {};
response = vp.handleStandardResponse( response, file );
}
- _.each( [ 'file', 'loaded', 'size', 'percent' ], function( key ) {
+ _.each( [ 'file', 'loaded', 'size', 'percent' ], function ( key ) {
file.attachment.unset( key );
} );
file.attachment.set( _.extend( response.data, { uploading: false } ) );
- wp.media.model.Attachment.get( response.data.id, file.attachment );
+ var att = wp.media.model.Attachment.get( response.data.id, file.attachment );
+
+ /* Once the new "empty" attachment is added to the collection above, check if it exists on the server, then set the new data.
+ * If it happens to not exist on the server yet (xmlrpc delayed or not working), then the empty media item will still be on the page,
+ * so no need to do any special error handling here on the sync.
+ *
+ * This is only necessary if `vp.handleRestApiResponse` was used above, as it is what returns the "empty" media item.
+ */
+ if ( typeof response.media !== 'undefined' ) {
+ att.sync( 'read' ).then( function ( data ) {
+ wp.media.model.Attachment.get( att.id ).set( data );
+ } );
+ }
- complete = Uploader.queue.all( function( attachment ) {
+ complete = Uploader.queue.all( function ( attachment ) {
return ! attachment.get( 'uploading' );
} );
@@ -320,12 +332,11 @@ window.wp = window.wp || {};
* @param {plupload.Uploader} uploader Uploader instance.
* @param {Object} error Contains code, message and sometimes file and other details.
*/
- this.uploader.bind( 'Error', function( up, pluploadError ) {
- var message = pluploadL10n.default_error,
- key;
+ this.uploader.bind( 'Error', function ( up, pluploadError ) {
+ var message = pluploadL10n.default_error;
// Check for plupload errors.
- for ( key in Uploader.errorMap ) {
+ for ( var key in Uploader.errorMap ) {
if ( pluploadError.code === plupload[ key ] ) {
message = Uploader.errorMap[ key ];
@@ -337,6 +348,26 @@ window.wp = window.wp || {};
}
}
+ if ( 'response' in pluploadError ) {
+ try {
+ var pluploadResponseObject = JSON.parse( pluploadError.response );
+ if ( typeof pluploadResponseObject === 'object' ) {
+ if (
+ 'errors' in pluploadResponseObject &&
+ typeof pluploadResponseObject.errors === 'object'
+ ) {
+ pluploadResponseObject = pluploadResponseObject.errors.shift();
+ }
+
+ if ( 'message' in pluploadResponseObject ) {
+ message = pluploadResponseObject.message;
+ }
+ }
+ } catch ( e ) {
+ // Do nothing ...
+ }
+ }
+
error( message, pluploadError, pluploadError.file );
vp && vp.resetToOriginalOptions( up );
up.refresh();
@@ -345,14 +376,14 @@ window.wp = window.wp || {};
/**
* Add in a way for the uploader to reset itself when uploads are complete.
*/
- this.uploader.bind( 'UploadComplete', function( up ) {
+ this.uploader.bind( 'UploadComplete', function ( up ) {
vp && vp.resetToOriginalOptions( up );
} );
/**
* Before we upload, check to see if this file is a videopress upload, if so, set new options and save the old ones.
*/
- this.uploader.bind( 'BeforeUpload', function( up, file ) {
+ this.uploader.bind( 'BeforeUpload', function ( up, file ) {
if ( typeof file.videopress !== 'undefined' ) {
vp.originalOptions.url = up.getOption( 'url' );
vp.originalOptions.multipart_params = up.getOption( 'multipart_params' );
@@ -389,7 +420,7 @@ window.wp = window.wp || {};
HTTP_ERROR: pluploadL10n.http_error,
SECURITY_ERROR: pluploadL10n.security_error,
- FILE_SIZE_ERROR: function( file ) {
+ FILE_SIZE_ERROR: function ( file ) {
return pluploadL10n.file_exceeds_size_limit.replace( '%s', file.name );
},
};
@@ -407,7 +438,7 @@ window.wp = window.wp || {};
* param( map )
* Sets values for a map of data.
*/
- param: function( key, value ) {
+ param: function ( key, value ) {
if ( arguments.length === 1 && typeof key === 'string' ) {
return this.uploader.settings.multipart_params[ key ];
}
@@ -423,13 +454,13 @@ window.wp = window.wp || {};
* Make a few internal event callbacks available on the wp.Uploader object
* to change the Uploader internals if absolutely necessary.
*/
- init: function() {},
- error: function() {},
- success: function() {},
- added: function() {},
- progress: function() {},
- complete: function() {},
- refresh: function() {
+ init: function () {},
+ error: function () {},
+ success: function () {},
+ added: function () {},
+ progress: function () {},
+ complete: function () {},
+ refresh: function () {
var node, attached, container, id;
if ( this.browser ) {
diff --git a/plugins/jetpack/modules/videopress/js/videopress-uploader.js b/plugins/jetpack/modules/videopress/js/videopress-uploader.js
index de5f9a67..f510f849 100644
--- a/plugins/jetpack/modules/videopress/js/videopress-uploader.js
+++ b/plugins/jetpack/modules/videopress/js/videopress-uploader.js
@@ -1,14 +1,14 @@
/* globals plupload, pluploadL10n, error */
window.wp = window.wp || {};
-( function( wp ) {
+( function ( wp ) {
var VideoPress = {
originalOptions: {},
/**
* This is the standard uploader response handler.
*/
- handleStandardResponse: function( response, file ) {
+ handleStandardResponse: function ( response, file ) {
if ( ! _.isObject( response ) || _.isUndefined( response.success ) ) {
return error( pluploadL10n.default_error, null, file );
} else if ( ! response.success ) {
@@ -21,7 +21,7 @@ window.wp = window.wp || {};
/**
* Handle response from the WPCOM Rest API.
*/
- handleRestApiResponse: function( response, file ) {
+ handleRestApiResponse: function ( response, file ) {
if ( response.media.length !== 1 ) {
return error( pluploadL10n.default_error, null, file );
}
@@ -80,7 +80,7 @@ window.wp = window.wp || {};
*
* @param up
*/
- resetToOriginalOptions: function( up ) {
+ resetToOriginalOptions: function ( up ) {
if ( typeof VideoPress.originalOptions.url !== 'undefined' ) {
up.setOption( 'url', VideoPress.originalOptions.url );
delete VideoPress.originalOptions.url;
@@ -112,18 +112,18 @@ window.wp = window.wp || {};
* Adds a filter that checks all files to see if they are videopress files and if they are
* it will download extra metadata for them.
*/
- plupload.addFileFilter( 'videopress_check_uploads', function( maxSize, file, cb ) {
+ plupload.addFileFilter( 'videopress_check_uploads', function ( maxSize, file, cb ) {
var mimeParts = file.type.split( '/' );
var self = this;
if ( mimeParts[ 0 ] === 'video' ) {
media
.ajax( 'videopress-get-upload-token', { async: false, data: { filename: file.name } } )
- .done( function( response ) {
+ .done( function ( response ) {
file.videopress = response;
cb( true );
} )
- .fail( function( response ) {
+ .fail( function ( response ) {
self.trigger( 'Error', {
code: plupload.VIDEOPRESS_TOKEN_FAILURE,
message: plupload.translate(
diff --git a/plugins/jetpack/modules/videopress/shortcode.php b/plugins/jetpack/modules/videopress/shortcode.php
index 51b7dd47..1d7dcc53 100644
--- a/plugins/jetpack/modules/videopress/shortcode.php
+++ b/plugins/jetpack/modules/videopress/shortcode.php
@@ -14,6 +14,7 @@ class VideoPress_Shortcode {
// By explicitly declaring the provider here, we can speed things up by not relying on oEmbed discovery.
wp_oembed_add_provider( '#^https?://videopress.com/v/.*#', 'https://public-api.wordpress.com/oembed/1.0/', true );
+ wp_oembed_add_provider( '|^https?://v\.wordpress\.com/([a-zA-Z\d]{8})(.+)?$|i', 'https://public-api.wordpress.com/oembed/1.0/', true ); // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
add_shortcode( 'videopress', array( $this, 'shortcode_callback' ) );
add_shortcode( 'wpvideo', array( $this, 'shortcode_callback' ) );
@@ -80,6 +81,7 @@ class VideoPress_Shortcode {
'permalink' => true, // Whether to display the permalink to the video
'flashonly' => false, // Whether to support the Flash player exclusively
'defaultlangcode' => false, // Default language code
+ 'cover' => true, // Whether to scale the video to its container.
);
$attr = shortcode_atts( $defaults, $attr, 'videopress' );
@@ -90,6 +92,7 @@ class VideoPress_Shortcode {
$attr['width'] = absint( $attr['w'] );
$attr['hd'] = (bool) $attr['hd'];
$attr['freedom'] = (bool) $attr['freedom'];
+ $attr['cover'] = (bool) $attr['cover'];
/**
* If the provided width is less than the minimum allowed
@@ -129,6 +132,7 @@ class VideoPress_Shortcode {
array(
'at' => (int) $attr['at'],
'hd' => $attr['hd'],
+ 'cover' => $attr['cover'],
'loop' => $attr['loop'],
'freedom' => $attr['freedom'],
'autoplay' => $attr['autoplay'],
@@ -192,6 +196,11 @@ class VideoPress_Shortcode {
$videopress_guid = $matches[1];
}
+ // Also test for old v.wordpress.com oembed URL.
+ if ( ! $videopress_guid && preg_match( '|^https?://v\.wordpress\.com/([a-zA-Z\d]{8})(.+)?$|i', $url, $matches ) ) { // phpcs:ignore WordPress.WP.CapitalPDangit.Misspelled
+ $videopress_guid = $matches[1];
+ }
+
break;
}
}
@@ -223,10 +232,13 @@ class VideoPress_Shortcode {
* @return String $ehnanced_oembed_provider
*/
public function add_oembed_for_parameter( $oembed_provider ) {
- if ( false === stripos( $oembed_provider, 'videopress.com' ) ) {
- return $oembed_provider;
+ $providers = array( 'videopress.com', 'v.wordpress.com' );
+ foreach ( $providers as $provider ) {
+ if ( false !== stripos( $oembed_provider, $provider ) ) {
+ return add_query_arg( 'for', wp_parse_url( home_url(), PHP_URL_HOST ), $oembed_provider );
+ }
}
- return add_query_arg( 'for', wp_parse_url( home_url(), PHP_URL_HOST ), $oembed_provider );
+ return $oembed_provider;
}
/**
diff --git a/plugins/jetpack/modules/videopress/utility-functions.php b/plugins/jetpack/modules/videopress/utility-functions.php
index e91f1b88..3dad98ab 100644
--- a/plugins/jetpack/modules/videopress/utility-functions.php
+++ b/plugins/jetpack/modules/videopress/utility-functions.php
@@ -67,59 +67,6 @@ function videopress_get_video_details( $guid ) {
return apply_filters( 'videopress_get_video_details', $data, $guid );
}
-
-/**
- * Get an attachment ID given a URL.
- *
- * Modified from https://wpscholar.com/blog/get-attachment-id-from-wp-image-url/
- *
- * @todo: Add some caching in here.
- *
- * @param string $url
- *
- * @return int|bool Attachment ID on success, false on failure
- */
-function videopress_get_attachment_id_by_url( $url ) {
- $wp_upload_dir = wp_upload_dir();
- // Strip out protocols, so it doesn't fail because searching for http: in https: dir.
- $dir = set_url_scheme( trailingslashit( $wp_upload_dir['baseurl'] ), 'relative' );
-
- // Is URL in uploads directory?
- if ( false !== strpos( $url, $dir ) ) {
-
- $file = basename( $url );
-
- $query_args = array(
- 'post_type' => 'attachment',
- 'post_status' => 'inherit',
- 'fields' => 'ids',
- 'meta_query' => array(
- array(
- 'key' => '_wp_attachment_metadata',
- 'compare' => 'LIKE',
- 'value' => $file,
- ),
- ),
- );
-
- $query = new WP_Query( $query_args );
-
- if ( $query->have_posts() ) {
- foreach ( $query->posts as $attachment_id ) {
- $meta = wp_get_attachment_metadata( $attachment_id );
- $original_file = basename( $meta['file'] );
- $cropped_files = wp_list_pluck( $meta['sizes'], 'file' );
-
- if ( $original_file === $file || in_array( $file, $cropped_files ) ) {
- return (int) $attachment_id;
- }
- }
- }
- }
-
- return false;
-}
-
/**
* Similar to `media_sideload_image` -- but returns an ID.
*
@@ -379,20 +326,11 @@ function videopress_is_finished_processing( $post_id ) {
}
$meta = wp_get_attachment_metadata( $post->ID );
-
- if ( ! isset( $meta['file_statuses'] ) || ! is_array( $meta['file_statuses'] ) ) {
+ if ( ! isset( $meta['videopress']['finished'] ) ) {
return false;
}
- $check_statuses = array( 'hd', 'dvd', 'mp4', 'ogg' );
-
- foreach ( $check_statuses as $status ) {
- if ( ! isset( $meta['file_statuses'][ $status ] ) || $meta['file_statuses'][ $status ] != 'DONE' ) {
- return false;
- }
- }
-
- return true;
+ return $meta['videopress']['finished'];
}
@@ -489,9 +427,8 @@ function is_videopress_attachment( $post_id ) {
*/
function videopress_make_video_get_path( $guid ) {
return sprintf(
- '%s://%s/rest/v%s/videos/%s',
- 'https',
- JETPACK__WPCOM_JSON_API_HOST,
+ '%s/rest/v%s/videos/%s',
+ JETPACK__WPCOM_JSON_API_BASE,
Client::WPCOM_JSON_API_VERSION,
$guid
);
@@ -506,8 +443,9 @@ function videopress_make_video_get_path( $guid ) {
*/
function videopress_make_media_upload_path( $blog_id ) {
return sprintf(
- 'https://public-api.wordpress.com/rest/v1.1/sites/%s/media/new',
- $blog_id
+ 'https://public-api.wordpress.com/rest/v1.1/sites/%s/media/new?locale=%s',
+ $blog_id,
+ get_locale()
);
}
@@ -527,6 +465,7 @@ function video_get_info_by_blogpostid( $blog_id, $post_id ) {
$video_info->blog_id = $blog_id;
$video_info->guid = null;
$video_info->finish_date_gmt = '0000-00-00 00:00:00';
+ $video_info->rating = null;
if ( is_wp_error( $post ) ) {
return $video_info;
@@ -538,6 +477,12 @@ function video_get_info_by_blogpostid( $blog_id, $post_id ) {
// Since this is a VideoPress post, lt's fill out the rest of the object.
$video_info->guid = get_post_meta( $post_id, 'videopress_guid', true );
+ $meta = wp_get_attachment_metadata( $post_id );
+
+ if ( $meta && isset( $meta['videopress'] ) ) {
+ $videopress_meta = $meta['videopress'];
+ $video_info->rating = $videopress_meta['rating'];
+ }
if ( videopress_is_finished_processing( $post_id ) ) {
$video_info->finish_date_gmt = date( 'Y-m-d H:i:s' );
@@ -583,25 +528,13 @@ function video_format_done( $info, $format ) {
$meta = wp_get_attachment_metadata( $post->ID );
- switch ( $format ) {
- case 'fmt_hd':
- return isset( $meta['videopress']['files']['hd']['mp4'] );
- break;
+ $video_format = str_replace( array( 'fmt_', 'fmt1_' ), '', $format );
- case 'fmt_dvd':
- return isset( $meta['videopress']['files']['dvd']['mp4'] );
- break;
-
- case 'fmt_std':
- return isset( $meta['videopress']['files']['std']['mp4'] );
- break;
-
- case 'fmt_ogg':
- return isset( $meta['videopress']['files']['std']['ogg'] );
- break;
+ if ( 'ogg' === $video_format ) {
+ return isset( $meta['videopress']['files']['std']['ogg'] );
+ } else {
+ return isset( $meta['videopress']['files'][ $video_format ]['mp4'] );
}
-
- return false;
}
/**
@@ -619,7 +552,7 @@ function video_format_done( $info, $format ) {
*/
function video_image_url_by_guid( $guid, $format ) {
- $post = video_get_post_by_guid( $guid );
+ $post = videopress_get_post_by_guid( $guid );
if ( is_wp_error( $post ) ) {
return null;
@@ -627,8 +560,7 @@ function video_image_url_by_guid( $guid, $format ) {
$meta = wp_get_attachment_metadata( $post->ID );
- // We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
- $poster = apply_filters( 'jetpack_photon_url', $meta['videopress']['poster'], array( 'ssl' => 1 ), 'https' );
+ $poster = apply_filters( 'jetpack_photon_url', $meta['videopress']['poster'] );
return $poster;
}
@@ -636,14 +568,51 @@ function video_image_url_by_guid( $guid, $format ) {
/**
* Using a GUID, find a post.
*
- * @param string $guid
- * @return WP_Post
+ * @param string $guid The post guid.
+ * @return WP_Post|false The post for that guid, or false if none is found.
*/
-function video_get_post_by_guid( $guid ) {
+function videopress_get_post_by_guid( $guid ) {
+ $cache_key = 'get_post_by_guid_' . $guid;
+ $cache_group = 'videopress';
+ $cached_post = wp_cache_get( $cache_key, $cache_group );
+
+ if ( is_object( $cached_post ) && 'WP_Post' === get_class( $cached_post ) ) {
+ return $cached_post;
+ }
+
+ $post_id = videopress_get_post_id_by_guid( $guid );
+
+ if ( is_int( $post_id ) ) {
+ $post = get_post( $post_id );
+ wp_cache_set( $cache_key, $post, $cache_group, HOUR_IN_SECONDS );
+
+ return $post;
+ }
+
+ return false;
+}
+
+/**
+ * Using a GUID, find the associated post ID.
+ *
+ * @since 8.4.0
+ * @param string $guid The guid to look for the post ID of.
+ * @return int|false The post ID for that guid, or false if none is found.
+ */
+function videopress_get_post_id_by_guid( $guid ) {
+ $cache_key = 'videopress_get_post_id_by_guid_' . $guid;
+ $cached_id = get_transient( $cache_key );
+
+ if ( is_int( $cached_id ) ) {
+ return $cached_id;
+ }
+
$args = array(
'post_type' => 'attachment',
'post_mime_type' => 'video/videopress',
'post_status' => 'inherit',
+ 'no_found_rows' => true,
+ 'fields' => 'ids',
'meta_query' => array(
array(
'key' => 'videopress_guid',
@@ -655,9 +624,14 @@ function video_get_post_by_guid( $guid ) {
$query = new WP_Query( $args );
- $post = $query->next_post();
+ if ( $query->have_posts() ) {
+ $post_id = $query->next_post();
+ set_transient( $cache_key, $post_id, HOUR_IN_SECONDS );
+
+ return $post_id;
+ }
- return $post;
+ return false;
}
/**
@@ -677,7 +651,9 @@ function videopress_get_attachment_url( $post_id ) {
$meta = wp_get_attachment_metadata( $post_id );
- if ( ! isset( $meta['videopress']['files']['hd']['mp4'] ) ) {
+ // As of Jetpack 10.3 transcoded video files are reserved for the VideoPress player.
+ // All other video file requests will receive the originally uploaded file, stored on the wpcom cdn.
+ if ( ! isset( $meta['videopress']['original'] ) ) {
// Use the original file as the url if it isn't transcoded yet.
if ( isset( $meta['original'] ) ) {
$return = $meta['original'];
@@ -686,7 +662,7 @@ function videopress_get_attachment_url( $post_id ) {
return null;
}
} else {
- $return = $meta['videopress']['file_url_base']['https'] . $meta['videopress']['files']['hd']['mp4'];
+ $return = $meta['videopress']['original'];
}
// If the URL is a string, return it. Otherwise, we shouldn't to avoid errors downstream, so null.
@@ -725,4 +701,14 @@ function jetpack_videopress_flash_embed_filter( $content ) {
return $content;
}
+/**
+ * Checks if the provided rating string is a valid VideoPress video rating value.
+ *
+ * @param mixed $rating The video rating to validate.
+ * @return bool
+ */
+function videopress_is_valid_video_rating( $rating ) {
+ return in_array( $rating, array( 'G', 'PG-13', 'R-17' ), true );
+}
+
add_filter( 'the_content', 'jetpack_videopress_flash_embed_filter', 7 ); // Needs to be priority 7 to allow Core to oEmbed.
diff --git a/plugins/jetpack/modules/videopress/videopress-admin-rtl.css b/plugins/jetpack/modules/videopress/videopress-admin-rtl.css
index afb09c61..fd171890 100644
--- a/plugins/jetpack/modules/videopress/videopress-admin-rtl.css
+++ b/plugins/jetpack/modules/videopress/videopress-admin-rtl.css
@@ -98,7 +98,8 @@
}
.compat-field-video-rating input[type="radio"],
-.compat-field-display_embed input[type="checkbox"]{
+.compat-field-display_embed input[type="checkbox"],
+.compat-field-allow_download input[type="checkbox"] {
margin-top: -1px !important;
margin-left: 5px !important;
margin-right: 5px !important;
diff --git a/plugins/jetpack/modules/videopress/videopress-admin-rtl.min.css b/plugins/jetpack/modules/videopress/videopress-admin-rtl.min.css
index a4675e9e..8f8246d8 100644
--- a/plugins/jetpack/modules/videopress/videopress-admin-rtl.min.css
+++ b/plugins/jetpack/modules/videopress/videopress-admin-rtl.min.css
@@ -1 +1 @@
-.videopress-modal-backdrop{background:#000;opacity:.7;position:absolute;top:0;width:100%;height:100%;overflow:hidden;z-index:100}.videopress-modal{padding:10px 20px;background:#fff;position:absolute;top:0;width:440px;overflow:hidden;right:50%;margin-right:-220px;z-index:101;box-shadow:-2px 2px 5px 2px rgba(0,0,0,.5);-webkit-border-bottom-left-radius:2px;-webkit-border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.videopress-modal .submit{text-align:left;padding:10px 0 5px}.videopress-preview{display:block;float:left;width:65%;margin-top:18px;background:#000;min-height:97px;text-decoration:none}.vp-preview span.videopress-preview-unavailable{width:65%;float:left;text-align:right;margin-left:0}.videopress-preview img{float:right;width:100%}.videopress-preview span{display:block;padding-top:40px;color:#fff!important;text-align:center}.vp-setting .help{margin:0 35% 4px 0}.media-sidebar .vp-setting input[type=checkbox]{float:right;margin-top:10px}.vp-setting label{float:right;margin:8px 5px 0 8px;max-width:135px}.vp-setting input[type=radio]{float:right;margin-top:9px;width:auto}.vp-preview span{margin-top:18px}.uploader-videopress{margin:16px}.uploader-videopress .videopress-errors div{margin:16px 0}.compat-field-display_embed input[type=checkbox],.compat-field-video-rating input[type=radio]{margin-top:-1px!important;margin-left:5px!important;margin-right:5px!important;vertical-align:middle} \ No newline at end of file
+.videopress-modal-backdrop{background:#000;opacity:.7;position:absolute;top:0;width:100%;height:100%;overflow:hidden;z-index:100}.videopress-modal{padding:10px 20px;background:#fff;position:absolute;top:0;width:440px;overflow:hidden;right:50%;margin-right:-220px;z-index:101;box-shadow:-2px 2px 5px 2px rgba(0,0,0,.5);-webkit-border-bottom-left-radius:2px;-webkit-border-bottom-right-radius:2px;border-bottom-left-radius:2px;border-bottom-right-radius:2px}.videopress-modal .submit{text-align:left;padding:10px 0 5px}.videopress-preview{display:block;float:left;width:65%;margin-top:18px;background:#000;min-height:97px;text-decoration:none}.vp-preview span.videopress-preview-unavailable{width:65%;float:left;text-align:right;margin-left:0}.videopress-preview img{float:right;width:100%}.videopress-preview span{display:block;padding-top:40px;color:#fff!important;text-align:center}.vp-setting .help{margin:0 35% 4px 0}.media-sidebar .vp-setting input[type=checkbox]{float:right;margin-top:10px}.vp-setting label{float:right;margin:8px 5px 0 8px;max-width:135px}.vp-setting input[type=radio]{float:right;margin-top:9px;width:auto}.vp-preview span{margin-top:18px}.uploader-videopress{margin:16px}.uploader-videopress .videopress-errors div{margin:16px 0}.compat-field-allow_download input[type=checkbox],.compat-field-display_embed input[type=checkbox],.compat-field-video-rating input[type=radio]{margin-top:-1px!important;margin-left:5px!important;margin-right:5px!important;vertical-align:middle} \ No newline at end of file
diff --git a/plugins/jetpack/modules/videopress/videopress-admin.css b/plugins/jetpack/modules/videopress/videopress-admin.css
index 4741b551..6457ebe2 100644
--- a/plugins/jetpack/modules/videopress/videopress-admin.css
+++ b/plugins/jetpack/modules/videopress/videopress-admin.css
@@ -97,7 +97,8 @@
}
.compat-field-video-rating input[type="radio"],
-.compat-field-display_embed input[type="checkbox"]{
+.compat-field-display_embed input[type="checkbox"],
+.compat-field-allow_download input[type="checkbox"] {
margin-top: -1px !important;
margin-right: 5px !important;
margin-left: 5px !important;
diff --git a/plugins/jetpack/modules/videopress/videopress-admin.min.css b/plugins/jetpack/modules/videopress/videopress-admin.min.css
index aace7ec9..4a6c119c 100644
--- a/plugins/jetpack/modules/videopress/videopress-admin.min.css
+++ b/plugins/jetpack/modules/videopress/videopress-admin.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-.videopress-modal-backdrop{background:#000;opacity:.7;position:absolute;top:0;width:100%;height:100%;overflow:hidden;z-index:100}.videopress-modal{padding:10px 20px;background:#fff;position:absolute;top:0;width:440px;overflow:hidden;left:50%;margin-left:-220px;z-index:101;box-shadow:2px 2px 5px 2px rgba(0,0,0,.5);-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.videopress-modal .submit{text-align:right;padding:10px 0 5px}.videopress-preview{display:block;float:right;width:65%;margin-top:18px;background:#000;min-height:97px;text-decoration:none}.vp-preview span.videopress-preview-unavailable{width:65%;float:right;text-align:left;margin-right:0}.videopress-preview img{float:left;width:100%}.videopress-preview span{display:block;padding-top:40px;color:#fff!important;text-align:center}.vp-setting .help{margin:0 0 4px 35%}.media-sidebar .vp-setting input[type=checkbox]{float:left;margin-top:10px}.vp-setting label{float:left;margin:8px 8px 0 5px;max-width:135px}.vp-setting input[type=radio]{float:left;margin-top:9px;width:auto}.vp-preview span{margin-top:18px}.uploader-videopress{margin:16px}.uploader-videopress .videopress-errors div{margin:16px 0}.compat-field-display_embed input[type=checkbox],.compat-field-video-rating input[type=radio]{margin-top:-1px!important;margin-right:5px!important;margin-left:5px!important;vertical-align:middle} \ No newline at end of file
+.videopress-modal-backdrop{background:#000;opacity:.7;position:absolute;top:0;width:100%;height:100%;overflow:hidden;z-index:100}.videopress-modal{padding:10px 20px;background:#fff;position:absolute;top:0;width:440px;overflow:hidden;left:50%;margin-left:-220px;z-index:101;box-shadow:2px 2px 5px 2px rgba(0,0,0,.5);-webkit-border-bottom-right-radius:2px;-webkit-border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.videopress-modal .submit{text-align:right;padding:10px 0 5px}.videopress-preview{display:block;float:right;width:65%;margin-top:18px;background:#000;min-height:97px;text-decoration:none}.vp-preview span.videopress-preview-unavailable{width:65%;float:right;text-align:left;margin-right:0}.videopress-preview img{float:left;width:100%}.videopress-preview span{display:block;padding-top:40px;color:#fff!important;text-align:center}.vp-setting .help{margin:0 0 4px 35%}.media-sidebar .vp-setting input[type=checkbox]{float:left;margin-top:10px}.vp-setting label{float:left;margin:8px 8px 0 5px;max-width:135px}.vp-setting input[type=radio]{float:left;margin-top:9px;width:auto}.vp-preview span{margin-top:18px}.uploader-videopress{margin:16px}.uploader-videopress .videopress-errors div{margin:16px 0}.compat-field-allow_download input[type=checkbox],.compat-field-display_embed input[type=checkbox],.compat-field-video-rating input[type=radio]{margin-top:-1px!important;margin-right:5px!important;margin-left:5px!important;vertical-align:middle} \ No newline at end of file
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions.php b/plugins/jetpack/modules/widget-visibility/widget-conditions.php
index 32e7cd00..9120157c 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions.php
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions.php
@@ -3,26 +3,171 @@
use Automattic\Jetpack\Assets;
/**
- * Hide or show widgets conditionally.
+ * Hide or show legacy widgets conditionally.
+ *
+ * This class has two responsiblities - administrating the conditions in which legacy widgets may be hidden or shown
+ * and hiding/showing the legacy widgets on the front-end of the site, depending upon the evaluation of those conditions.
+ *
+ * Administrating the conditions can be done in one of four different WordPress screens, plus direct use of the API and
+ * is supplemented with a legacy widget preview screen. The four different admin screens are
+ *
+ * Gutenberg widget experience - widget admin (widgets.php + API + legacy widget preview)
+ * Gutenberg widget experience - Customizer (customizer screen/API + API + legacy widget preview)
+ * Classic widget experience - widget admin (widgets.php + admin-ajax XHR requests)
+ * Classic widget experience - Customizer (customizer screen/API)
+ *
+ * An introduction to the API endpoints can be found here: https://make.wordpress.org/core/2021/06/29/rest-api-changes-in-wordpress-5-8/
*/
-
class Jetpack_Widget_Conditions {
static $passed_template_redirect = false;
public static function init() {
- if ( is_admin() ) {
- add_action( 'sidebar_admin_setup', array( __CLASS__, 'widget_admin_setup' ) );
- add_filter( 'widget_update_callback', array( __CLASS__, 'widget_update' ), 10, 3 );
+ global $pagenow;
+
+ // The Gutenberg based widget experience will show a preview of legacy widgets by including a URL beginning
+ // widgets.php?legacy-widget-preview inside an iframe. Previews don't need widget editing loaded and also don't
+ // want to run the filter - if the widget is filtered out it'll be empty, which would be confusing.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( isset( $_GET['legacy-widget-preview'] ) ) {
+ return;
+ }
+
+ // If action is posted and it's save-widget then it's relevant to widget conditions, otherwise it's something
+ // else and it's not worth registering hooks.
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ if ( isset( $_POST['action'] ) && ! isset( $_POST['customize_changeset_uuid'] ) && ! in_array( $_POST['action'], array( 'save-widget', 'update-widget' ), true ) ) {
+ return;
+ }
+
+ // API call to *list* the widget types doesn't use editing visibility or display widgets.
+ if ( false !== strpos( $_SERVER['REQUEST_URI'], '/widget-types?' ) ) {
+ return;
+ }
+
+ $add_data_assets_to_page = false;
+ $add_html_to_form = false;
+ $handle_widget_updates = false;
+ $add_block_controls = false;
+
+ // Check to see if using the customizer, but not using the preview. The preview should filter out widgets,
+ // the customizer controls in the sidebar should not (so they can be edited).
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $customizer_not_previewer = is_customize_preview() && ! isset( $_GET['customize_changeset_uuid'] );
+ $using_classic_experience = ( ! function_exists( 'wp_use_widgets_block_editor' ) || ! wp_use_widgets_block_editor() );
+ if ( $using_classic_experience &&
+ ( $customizer_not_previewer || 'widgets.php' === $pagenow ||
+ // phpcs:ignore WordPress.Security.NonceVerification.Missing
+ ( 'admin-ajax.php' === $pagenow && array_key_exists( 'action', $_POST ) && 'save-widget' === $_POST['action'] )
+ )
+ ) {
+ $add_data_assets_to_page = true;
+ $add_html_to_form = true;
+ $handle_widget_updates = true;
+ } else {
+ // On a screen that is hosting the API in the gutenberg editing experience.
+ if ( $customizer_not_previewer || 'widgets.php' === $pagenow ) {
+ $add_data_assets_to_page = true;
+ $add_block_controls = true;
+ }
+
+ // Encoding for a particular widget end point.
+ if ( 1 === preg_match( '|/widget-types/.*/encode|', $_SERVER['REQUEST_URI'] ) ) {
+ $add_html_to_form = true;
+ $handle_widget_updates = true;
+ }
+
+ // Batch API is usually saving but could be anything.
+ $current_url = ! empty( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
+ if ( false !== strpos( $current_url, '/wp-json/batch/v1' ) || 1 === preg_match( '/^\/wp\/v2\/sites\/\d+\/batch\/v1/', $current_url ) ) {
+ $handle_widget_updates = true;
+ $add_html_to_form = true;
+ }
+
+ // Saving widgets via non-batch API. This isn't used within WordPress but could be used by third parties in theory.
+ if ( isset( $_SERVER['REQUEST_METHOD'] ) && 'GET' !== $_SERVER['REQUEST_METHOD'] && false !== strpos( $_SERVER['REQUEST_URI'], '/wp/v2/widgets' ) ) {
+ $handle_widget_updates = true;
+ $add_html_to_form = true;
+ }
+ }
+
+ if ( $add_html_to_form ) {
add_action( 'in_widget_form', array( __CLASS__, 'widget_conditions_admin' ), 10, 3 );
- } elseif ( ! in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) ) ) {
+ }
+
+ if ( $handle_widget_updates ) {
+ add_filter( 'widget_update_callback', array( __CLASS__, 'widget_update' ), 10, 3 );
+ }
+
+ if ( $add_data_assets_to_page ) {
+ add_action( 'sidebar_admin_setup', array( __CLASS__, 'widget_admin_setup' ) );
+ }
+
+ if ( $add_block_controls ) {
+ add_action( 'enqueue_block_editor_assets', array( __CLASS__, 'setup_block_controls' ) );
+ }
+
+ if ( ! $add_html_to_form && ! $handle_widget_updates && ! $add_data_assets_to_page &&
+ ! in_array( $pagenow, array( 'wp-login.php', 'wp-register.php' ), true )
+ ) {
+ // Not hit any known widget admin endpoint, register widget display hooks instead.
add_filter( 'widget_display_callback', array( __CLASS__, 'filter_widget' ) );
add_filter( 'sidebars_widgets', array( __CLASS__, 'sidebars_widgets' ) );
add_action( 'template_redirect', array( __CLASS__, 'template_redirect' ) );
}
}
+ /**
+ * Enqueue the block-based widget visibility scripts.
+ */
+ public static function setup_block_controls() {
+ Assets::register_script(
+ 'widget-visibility-editor',
+ '_inc/build/widget-visibility/editor/index.js',
+ JETPACK__PLUGIN_FILE,
+ array(
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack',
+ )
+ );
+ Assets::enqueue_script( 'widget-visibility-editor' );
+ }
+
+ /**
+ * Add the 'conditions' attribute, where visibility rules are stored, to some blocks.
+ *
+ * We normally add the block attributes in the browser's javascript env only,
+ * but these blocks use a ServerSideRender dynamic preview, so the php env needs
+ * to know about the new attribute, too.
+ */
+ public static function add_block_attributes_filter() {
+ $blocks_to_add_visibility_conditions = array(
+ // These use <ServerSideRender>.
+ 'core/calendar',
+ 'core/latest-comments',
+ 'core/rss',
+ 'core/archives',
+ 'core/tag-cloud',
+ 'core/page-list',
+ 'core/latest-posts',
+ );
+
+ $filter_metadata_registration = function ( $settings, $metadata ) use ( $blocks_to_add_visibility_conditions ) {
+ if ( in_array( $metadata['name'], $blocks_to_add_visibility_conditions, true ) && ! empty( $settings['attributes'] ) ) {
+ $settings['attributes']['conditions'] = array(
+ 'type' => 'object',
+ );
+ }
+ return $settings;
+ };
+
+ add_filter( 'block_type_metadata_settings', $filter_metadata_registration, 10, 2 );
+ }
+
+ /**
+ * Prepare the interface for editing widgets - loading css, javascript & data
+ */
public static function widget_admin_setup() {
- wp_enqueue_style( 'widget-conditions', plugins_url( 'widget-conditions/widget-conditions.css', __FILE__ ) );
+ wp_enqueue_style( 'widget-conditions', plugins_url( 'widget-conditions/widget-conditions.css', __FILE__ ), array( 'widgets' ), JETPACK__VERSION );
wp_style_add_data( 'widget-conditions', 'rtl', 'replace' );
wp_enqueue_script(
'widget-conditions',
@@ -31,7 +176,7 @@ class Jetpack_Widget_Conditions {
'modules/widget-visibility/widget-conditions/widget-conditions.js'
),
array( 'jquery', 'jquery-ui-core' ),
- 20191128,
+ JETPACK__VERSION,
true
);
@@ -45,7 +190,16 @@ class Jetpack_Widget_Conditions {
$categories = get_categories(
array(
- 'number' => 1000,
+ /**
+ * Specific a maximum number of categories to query for the Widget visibility UI.
+ *
+ * @module widget-visibility
+ *
+ * @since 9.1.0
+ *
+ * @param int $number Maximum number of categories displayed in the Widget visibility UI.
+ */
+ 'number' => (int) apply_filters( 'jetpack_widget_visibility_max_number_categories', 1000 ),
'orderby' => 'count',
'order' => 'DESC',
)
@@ -68,6 +222,7 @@ class Jetpack_Widget_Conditions {
array(
'orderby' => 'name',
'who' => 'authors',
+ 'fields' => array( 'ID', 'display_name' ),
)
);
@@ -88,7 +243,16 @@ class Jetpack_Widget_Conditions {
$tags = get_tags(
array(
- 'number' => 1000,
+ /**
+ * Specific a maximum number of tags to query for the Widget visibility UI.
+ *
+ * @module widget-visibility
+ *
+ * @since 9.1.0
+ *
+ * @param int $number Maximum number of tags displayed in the Widget visibility UI.
+ */
+ 'number' => (int) apply_filters( 'jetpack_widget_visibility_max_number_tags', 1000 ),
'orderby' => 'count',
'order' => 'DESC',
)
@@ -126,10 +290,23 @@ class Jetpack_Widget_Conditions {
$widget_conditions_data['page'][] = array( __( 'Post type Archives:', 'jetpack' ), $widget_conditions_post_type_archives );
- $pages_dropdown = preg_replace( '/<\/?select[^>]*?>/i', '', wp_dropdown_pages( array( 'echo' => false ) ) );
-
+ $pages = self::get_pages();
+
+ $dropdown_tree_args = array(
+ 'depth' => 0,
+ 'child_of' => 0,
+ 'selected' => 0,
+ 'echo' => false,
+ 'name' => 'page_id',
+ 'id' => '',
+ 'class' => '',
+ 'show_option_none' => '',
+ 'show_option_no_change' => '',
+ 'option_none_value' => '',
+ 'value_field' => 'ID',
+ );
+ $pages_dropdown = walk_page_dropdown_tree( $pages, 0, $dropdown_tree_args );
preg_match_all( '/value=.([0-9]+).[^>]*>([^<]+)</', $pages_dropdown, $page_ids_and_titles, PREG_SET_ORDER );
-
$static_pages = array();
foreach ( $page_ids_and_titles as $page_id_and_title ) {
@@ -169,7 +346,7 @@ class Jetpack_Widget_Conditions {
);
$widget_conditions_terms = array();
- $widget_conditions_terms[] = array( $taxonomy->name, __( 'All pages', 'jetpack' ) );
+ $widget_conditions_terms[] = array( $taxonomy->name, $taxonomy->labels->all_items );
foreach ( $taxonomy_terms as $term ) {
$widget_conditions_terms[] = array( $taxonomy->name . '_tax_' . $term->term_id, $term->name );
@@ -181,7 +358,7 @@ class Jetpack_Widget_Conditions {
wp_localize_script( 'widget-conditions', 'widget_conditions_data', $widget_conditions_data );
// Save a list of the IDs of all pages that have children for dynamically showing the "Include children" checkbox.
- $all_pages = get_pages();
+ $all_pages = self::get_pages();
$all_parents = array();
foreach ( $all_pages as $page ) {
@@ -200,11 +377,67 @@ class Jetpack_Widget_Conditions {
}
/**
+ * Retrieves a full list of all pages, containing just the IDs, post_parent, post_title, and post_status fields.
+ *
+ * Since the WordPress' `get_pages` function does not allow us to fetch only the fields mentioned
+ * above, we need to introduce a custom method using a direct SQL query fetching those.
+ *
+ * By fetching only those four fields and not populating the object cache for all the pages, we can
+ * improve the performance of the query on sites having a lot of pages.
+ *
+ * @see https://core.trac.wordpress.org/ticket/51469
+ *
+ * @return array List of all pages on the site (stdClass objects containing ID, post_title, post_parent, and post_status only).
+ */
+ public static function get_pages() {
+ global $wpdb;
+
+ $last_changed = wp_cache_get_last_changed( 'posts' );
+ $cache_key = "get_pages:$last_changed";
+ $pages = wp_cache_get( $cache_key, 'widget_conditions' );
+ if ( false === $pages ) {
+ $pages = $wpdb->get_results( "SELECT {$wpdb->posts}.ID, {$wpdb->posts}.post_parent, {$wpdb->posts}.post_title, {$wpdb->posts}.post_status FROM {$wpdb->posts} WHERE {$wpdb->posts}.post_type = 'page' AND {$wpdb->posts}.post_status = 'publish' ORDER BY {$wpdb->posts}.post_title ASC" );
+ wp_cache_set( $cache_key, $pages, 'widget_conditions' );
+ }
+
+ // Copy-pasted from the get_pages function. For usage in the `widget_conditions_get_pages` filter.
+ $parsed_args = array(
+ 'child_of' => 0,
+ 'sort_order' => 'ASC',
+ 'sort_column' => 'post_title',
+ 'hierarchical' => 1,
+ 'exclude' => array(),
+ 'include' => array(),
+ 'meta_key' => '',
+ 'meta_value' => '',
+ 'authors' => '',
+ 'parent' => -1,
+ 'exclude_tree' => array(),
+ 'number' => '',
+ 'offset' => 0,
+ 'post_type' => 'page',
+ 'post_status' => 'publish',
+ );
+
+ /**
+ * Filters the retrieved list of pages.
+ *
+ * @since 9.1.0
+ *
+ * @module widget-visibility
+ *
+ * @param stdClass[] $pages Array of objects containing only the ID, post_parent, post_title, and post_status fields.
+ * @param array $parsed_args Array of get_pages() arguments.
+ */
+ return apply_filters( 'jetpack_widget_visibility_get_pages', $pages, $parsed_args );
+ }
+
+ /**
* Add the widget conditions to each widget in the admin.
*
- * @param $widget unused.
- * @param $return unused.
- * @param array $instance The widget settings.
+ * @param WP_Widget $widget Widget to add conditions settings to.
+ * @param null $return unused.
+ * @param array $instance The widget settings.
*/
public static function widget_conditions_admin( $widget, $return, $instance ) {
$conditions = array();
@@ -234,6 +467,9 @@ class Jetpack_Widget_Conditions {
class="
widget-conditional
<?php
+ // $_POST['widget-conditions-visible'] is used in the classic widget experience to decide whether to
+ // display the visibility panel open, e.g. when saving. In the gutenberg widget experience the POST
+ // value will always be empty, but this is fine - it doesn't rerender the HTML when saving anyway.
if (
empty( $_POST['widget-conditions-visible'] )
|| $_POST['widget-conditions-visible'] == '0'
@@ -264,10 +500,19 @@ class Jetpack_Widget_Conditions {
<?php
if ( ! isset( $_POST['widget-conditions-visible'] ) ) {
?>
- <a href="#" class="button display-options"><?php _e( 'Visibility', 'jetpack' ); ?></a><?php } ?>
+ <a href="#" class="button display-options"><?php esc_html_e( 'Visibility', 'jetpack' ); ?></a><?php } ?>
<div class="widget-conditional-inner">
<div class="condition-top">
- <?php printf( _x( '%s if:', 'placeholder: dropdown menu to select widget visibility; hide if or show if', 'jetpack' ), '<select name="conditions[action]"><option value="show" ' . selected( $conditions['action'], 'show', false ) . '>' . esc_html_x( 'Show', 'Used in the "%s if:" translation for the widget visibility dropdown', 'jetpack' ) . '</option><option value="hide" ' . selected( $conditions['action'], 'hide', false ) . '>' . esc_html_x( 'Hide', 'Used in the "%s if:" translation for the widget visibility dropdown', 'jetpack' ) . '</option></select>' ); ?>
+ <?php
+ printf(
+ // translators: %s is a HTML select widget for widget visibility, 'show' and 'hide' are it's options. It will read like 'show if' or 'hide if'.
+ esc_html_x( '%s if:', 'placeholder: dropdown menu to select widget visibility; hide if or show if', 'jetpack' ),
+ '<select name="' . esc_attr( $widget->get_field_name( 'conditions[action]' ) ) . '">
+ <option value="show" ' . selected( $conditions['action'], 'show', false ) . '>' . esc_html_x( 'Show', 'Used in the "%s if:" translation for the widget visibility dropdown', 'jetpack' ) . '</option>
+ <option value="hide" ' . selected( $conditions['action'], 'hide', false ) . '>' . esc_html_x( 'Hide', 'Used in the "%s if:" translation for the widget visibility dropdown', 'jetpack' ) . '</option>
+ </select>'
+ );
+ ?>
</div><!-- .condition-top -->
<div class="conditions">
@@ -285,7 +530,7 @@ class Jetpack_Widget_Conditions {
?>
<div class="condition" data-rule-major="<?php echo esc_attr( $rule['major'] ); ?>" data-rule-minor="<?php echo esc_attr( $rule['minor'] ); ?>" data-rule-has-children="<?php echo esc_attr( $rule['has_children'] ); ?>">
<div class="selection alignleft">
- <select class="conditions-rule-major" name="conditions[rules_major][]">
+ <select class="conditions-rule-major" name="<?php echo esc_attr( $widget->get_field_name( 'conditions[rules_major][]' ) ); ?>">
<option value="" <?php selected( '', $rule['major'] ); ?>><?php echo esc_html_x( '-- Select --', 'Used as the default option in a dropdown list', 'jetpack' ); ?></option>
<option value="category" <?php selected( 'category', $rule['major'] ); ?>><?php esc_html_e( 'Category', 'jetpack' ); ?></option>
<option value="author" <?php selected( 'author', $rule['major'] ); ?>><?php echo esc_html_x( 'Author', 'Noun, as in: "The author of this post is..."', 'jetpack' ); ?></option>
@@ -305,7 +550,7 @@ class Jetpack_Widget_Conditions {
<?php _ex( 'is', 'Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}', 'jetpack' ); ?>
- <select class="conditions-rule-minor" name="conditions[rules_minor][]"
+ <select class="conditions-rule-minor" name="<?php echo esc_attr( $widget->get_field_name( 'conditions[rules_minor][]' ) ); ?>"
<?php
if ( ! $rule['major'] ) {
?>
@@ -325,7 +570,7 @@ class Jetpack_Widget_Conditions {
?>
style="display: none;"<?php } ?>>
<label>
- <input type="checkbox" name="conditions[page_children][<?php echo $rule_index; ?>]" value="has" <?php checked( $rule['has_children'], true ); ?> />
+ <input type="checkbox" name="<?php echo esc_attr( $widget->get_field_name( "conditions[page_children][$rule_index]" ) ); ?>" value="has" <?php checked( $rule['has_children'], true ); ?> />
<?php echo esc_html_x( 'Include children', 'Checkbox on Widget Visibility if children of the selected page should be included in the visibility rule.', 'jetpack' ); ?>
</label>
</span>
@@ -354,7 +599,7 @@ class Jetpack_Widget_Conditions {
<label>
<input
type="checkbox"
- name="conditions[match_all]"
+ name="<?php echo esc_attr( $widget->get_field_name( 'conditions[match_all]' ) ); ?>"
value="1"
class="conditions-match-all"
<?php checked( $conditions['match_all'], '1' ); ?> />
@@ -370,35 +615,34 @@ class Jetpack_Widget_Conditions {
/**
* On an AJAX update of the widget settings, process the display conditions.
*
+ * @param array $instance The current instance's settings.
* @param array $new_instance New settings for this instance as input by the user.
* @param array $old_instance Old settings for this instance.
* @return array Modified settings.
*/
public static function widget_update( $instance, $new_instance, $old_instance ) {
- if ( empty( $_POST['conditions'] ) ) {
- return $instance;
- }
-
$conditions = array();
- $conditions['action'] = $_POST['conditions']['action'];
- $conditions['match_all'] = ( isset( $_POST['conditions']['match_all'] ) ? '1' : '0' );
- $conditions['rules'] = array();
+ $conditions['action'] = isset( $new_instance['conditions']['action'] ) ? $new_instance['conditions']['action'] : null;
+ $conditions['match_all'] = ! empty( $new_instance['conditions']['match_all'] ) ? '1' : '0';
+ $conditions['rules'] = isset( $new_instance['conditions']['rules'] ) ? $new_instance['conditions']['rules'] : array();
- foreach ( $_POST['conditions']['rules_major'] as $index => $major_rule ) {
- if ( ! $major_rule ) {
- continue;
- }
+ if ( isset( $new_instance['conditions']['rules_major'] ) ) {
+ foreach ( $new_instance['conditions']['rules_major'] as $index => $major_rule ) {
+ if ( ! $major_rule ) {
+ continue;
+ }
- $conditions['rules'][] = array(
- 'major' => $major_rule,
- 'minor' => isset( $_POST['conditions']['rules_minor'][ $index ] ) ? $_POST['conditions']['rules_minor'][ $index ] : '',
- 'has_children' => isset( $_POST['conditions']['page_children'][ $index ] ) ? true : false,
- );
+ $conditions['rules'][] = array(
+ 'major' => $major_rule,
+ 'minor' => isset( $new_instance['conditions']['rules_minor'][ $index ] ) ? $new_instance['conditions']['rules_minor'][ $index ] : '',
+ 'has_children' => isset( $new_instance['conditions']['page_children'][ $index ] ) ? true : false,
+ );
+ }
}
if ( ! empty( $conditions['rules'] ) ) {
$instance['conditions'] = $conditions;
- } else {
+ } elseif ( empty( $new_instance['conditions']['rules'] ) ) {
unset( $instance['conditions'] );
}
@@ -461,7 +705,7 @@ class Jetpack_Widget_Conditions {
// Find the conditions for this widget.
if ( preg_match( '/^(.+?)-(\d+)$/', $widget_id, $matches ) ) {
$id_base = $matches[1];
- $widget_number = intval( $matches[2] );
+ $widget_number = (int) $matches[2];
} else {
$id_base = $widget_id;
$widget_number = null;
@@ -512,19 +756,60 @@ class Jetpack_Widget_Conditions {
* @return array Settings to display or bool false to hide.
*/
public static function filter_widget( $instance ) {
- global $wp_query;
-
- if ( empty( $instance['conditions'] ) || empty( $instance['conditions']['rules'] ) ) {
+ // Don't filter widgets from the REST API when it's called via the widgets admin page - otherwise they could get
+ // filtered out and become impossible to edit.
+ if ( strpos( wp_get_raw_referer(), '/wp-admin/widgets.php' ) && false !== strpos( $_SERVER['REQUEST_URI'], '/wp-json/' ) ) {
+ return $instance;
+ }
+ // WordPress.com specific check - here, referer ends in /rest-proxy/ and doesn't tell us what's requesting.
+ $current_url = ! empty( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
+ $nonce = ! empty( $_REQUEST['_gutenberg_nonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['_gutenberg_nonce'] ) ) : '';
+ $context = ! empty( $_REQUEST['context'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['context'] ) ) : '';
+ if ( wp_verify_nonce( $nonce, 'gutenberg_request' ) &&
+ 1 === preg_match( '~^/wp/v2/sites/\d+/(sidebars|widgets)~', $current_url ) && 'edit' === $context ) {
return $instance;
}
+ if ( ! empty( $instance['conditions']['rules'] ) ) {
+ // Legacy widgets: visibility found.
+ if ( self::filter_widget_check_conditions( $instance['conditions'] ) ) {
+ return $instance;
+ }
+ return false;
+ } elseif ( ! empty( $instance['content'] ) && has_blocks( $instance['content'] ) ) {
+ // Block-Based widgets: We have gutenberg blocks that could have the 'conditions' attribute.
+ $blocks = parse_blocks( $instance['content'] );
+ if ( empty( $blocks[0]['attrs']['conditions']['rules'] ) ) {
+ // No Rules: Display widget.
+ return $instance;
+ }
+ if ( self::filter_widget_check_conditions( $blocks[0]['attrs']['conditions'] ) ) {
+ // Rules passed checks: Display widget.
+ return $instance;
+ }
+ // Rules failed checks: Hide widget.
+ return false;
+ }
+
+ // No visibility found.
+ return $instance;
+ }
+
+ /**
+ * Determine whether the widget should be displayed based on conditions set by the user.
+ *
+ * @param array $conditions Visibility Conditions: An array with keys 'rules', 'action', and 'match_all'.
+ * @return bool If the widget controlled by these conditions should show.
+ */
+ public static function filter_widget_check_conditions( $conditions ) {
+ global $wp_query;
// Store the results of all in-page condition lookups so that multiple widgets with
// the same visibility conditions don't result in duplicate DB queries.
static $condition_result_cache = array();
$condition_result = false;
- foreach ( $instance['conditions']['rules'] as $rule ) {
+ foreach ( $conditions['rules'] as $rule ) {
$condition_result = false;
$condition_key = self::generate_condition_key( $rule );
@@ -727,8 +1012,8 @@ class Jetpack_Widget_Conditions {
}
if (
- isset( $instance['conditions']['match_all'] )
- && $instance['conditions']['match_all'] == '1'
+ isset( $conditions['match_all'] )
+ && '1' === $conditions['match_all']
&& ! $condition_result
) {
@@ -736,8 +1021,8 @@ class Jetpack_Widget_Conditions {
break;
} elseif (
(
- empty( $instance['conditions']['match_all'] )
- || $instance['conditions']['match_all'] !== '1'
+ empty( $conditions['match_all'] )
+ || '1' !== $conditions['match_all']
)
&& $condition_result
) {
@@ -749,17 +1034,17 @@ class Jetpack_Widget_Conditions {
if (
(
- 'show' == $instance['conditions']['action']
+ 'show' === $conditions['action']
&& ! $condition_result
) || (
- 'hide' == $instance['conditions']['action']
+ 'hide' === $conditions['action']
&& $condition_result
)
) {
return false;
}
- return $instance;
+ return true;
}
public static function strcasecmp_name( $a, $b ) {
@@ -851,3 +1136,11 @@ class Jetpack_Widget_Conditions {
}
add_action( 'init', array( 'Jetpack_Widget_Conditions', 'init' ) );
+
+// Add the 'conditions' attribute to server side rendered blocks
+// 'init' happens too late to hook on block registration.
+global $pagenow;
+$current_url = ! empty( $_SERVER['REQUEST_URI'] ) ? esc_url_raw( wp_unslash( $_SERVER['REQUEST_URI'] ) ) : '';
+if ( is_customize_preview() || 'widgets.php' === $pagenow || ( false !== strpos( $current_url, '/wp-json/wp/v2/block-renderer' ) ) ) {
+ Jetpack_Widget_Conditions::add_block_attributes_filter();
+}
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.css b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.css
index 69d6031f..70846d82 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.css
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.css
@@ -15,13 +15,14 @@
display: none;
}
.widget-conditional .widget-conditional-inner {
- background: #F9F9F9;
- border: 1px solid #DFDFDF;
+ background: #f6f7f7;
+ border: 1px solid #dcdcde;
padding: 12px 10px 0;
}
.widget-conditional {
margin-bottom: 12px;
+ margin-top: 10px;
}
.widget-conditional .conditions{
margin-bottom: 12px;
@@ -67,12 +68,18 @@
text-indent: -9999px;
z-index: 1;
}
+
+.wp-block-legacy-widget__edit-form .widget-conditional .condition-control a {
+ top: 20px;
+}
+
.widget-conditional .condition-control a:before {
position: absolute;
text-indent: 0;
top: 0;
right: 0;
}
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .condition-control .delete-condition,
.widget-conditional .condition-control .delete-condition {
right: 0;
color: #f11;
@@ -81,6 +88,26 @@
left: 0;
}
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner a.dashicons {
+ font-family: dashicons;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner select {
+ display:initial;
+ width:auto;
+ background-color: #fff;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner select:disabled {
+ color: #a7aaad;
+ border-color: #dcdcde;
+ background-color: #f6f7f7;
+}
+
+.editor-styles-wrapper .wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .alignleft {
+ margin-right:20px
+}
+
.widget-conditional .condition:last-child .condition-conjunction,
.widget-conditional .condition:last-child .condition-intersection {
display: none;
@@ -114,3 +141,71 @@
top: 20px;
}
}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner {
+ /*
+ * fonts of labels are reset to 13px in gutenberg editor for legacy widgets, ensure a consistent look on non-labels
+ */
+ font-size: 13px;
+}
+
+/*
+ * Rules for gutenberg advanced panel
+ */
+
+ .widget-vis__wrapper .components-base-control,
+ .widget-vis__rule .components-base-control {
+ margin-bottom: 12px;
+ }
+
+.widget-vis__rule {
+ padding: 12px;
+ border: 1px solid #dcdcde;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 12px;
+}
+
+.widget-vis__rule-major,
+.widget-vis__rule-minor {
+ display: flex;
+ justify-content: stretch;
+ align-items: center;
+}
+
+.widget-vis__if,
+.widget-vis__is {
+ margin-left: 8px;
+ width: 10px;
+}
+
+.widget-vis__show-hide {
+ margin-bottom: 0;
+}
+
+.components-button.widget-vis__add-new-rule {
+ display: block;
+}
+
+.widget-vis__delete-rule {
+ margin-top: 6px;
+ text-align: left;
+}
+
+.widget-vis__match-all {
+ margin-top: 12px;
+}
+
+.widget-vis__select {
+ width: 100%;
+}
+
+.widget-vis__select .components-input-control__container {
+ position: relative;
+ top: 4px;
+}
+
+.widget-vis__select-multi-level select option:disabled {
+ font-size: 18px;
+ font-weight: 600;
+}
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css
index 410e7a46..4c394d18 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions-rtl.min.css
@@ -1 +1 @@
-.wp-customizer .expanded .widget-conditional .widget-conditional-inner{width:98%;box-sizing:border-box}.wp-customizer .expanded .widget-conditional .form{overflow:scroll;margin-bottom:20px}.widget-liquid-right .widget.expanded{overflow:visible}.widget-conditional-hide{display:none}.widget-conditional .widget-conditional-inner{background:#f9f9f9;border:1px solid #dfdfdf;padding:12px 10px 0}.widget-conditional{margin-bottom:12px}.widget-conditional .conditions{margin-bottom:12px}.widget-conditional .condition,.widget-conditional .condition-top{clear:both}.widget-conditional .condition{padding-top:12px;position:relative}.widget-conditional .condition select{width:120px;position:relative;z-index:2}.widget-conditional .condition-top select{width:auto}.widget-conditional .condition-control{padding-top:4px;clear:both;margin-top:-20px}.widget-conditional .selection{margin-left:50px;margin-right:20px}.widget-conditional .conditions-rule-has-children{display:block}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition-control a{text-decoration:none;position:absolute;top:17px;text-indent:-9999px;z-index:1}.widget-conditional .condition-control a:before{position:absolute;text-indent:0;top:0;right:0}.widget-conditional .condition-control .delete-condition{right:0;color:#f11}.widget-conditional .condition-control .add-condition{left:0}.widget-conditional .condition:last-child .condition-conjunction,.widget-conditional .condition:last-child .condition-intersection{display:none}.widget-conditional.conjunction .condition-intersection{display:none}.widget-conditional.intersection .condition-conjunction{display:none}.wp-core-ui .button.display-options{margin-left:5px}.wp-core-ui .button.display-options:hover{text-decoration:none}.wp-customizer .widget-conditional select{min-width:0;max-width:none;height:auto}.wp-customizer .widget-conditional .condition-control a{top:15px}@media screen and (max-width:782px){.widget-conditional .condition-control a{top:20px}} \ No newline at end of file
+.wp-customizer .expanded .widget-conditional .widget-conditional-inner{width:98%;box-sizing:border-box}.wp-customizer .expanded .widget-conditional .form{overflow:scroll;margin-bottom:20px}.widget-liquid-right .widget.expanded{overflow:visible}.widget-conditional-hide{display:none}.widget-conditional .widget-conditional-inner{background:#f6f7f7;border:1px solid #dcdcde;padding:12px 10px 0}.widget-conditional{margin-bottom:12px;margin-top:10px}.widget-conditional .conditions{margin-bottom:12px}.widget-conditional .condition,.widget-conditional .condition-top{clear:both}.widget-conditional .condition{padding-top:12px;position:relative}.widget-conditional .condition select{width:120px;position:relative;z-index:2}.widget-conditional .condition-top select{width:auto}.widget-conditional .condition-control{padding-top:4px;clear:both;margin-top:-20px}.widget-conditional .selection{margin-left:50px;margin-right:20px}.widget-conditional .conditions-rule-has-children{display:block}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition-control a{text-decoration:none;position:absolute;top:17px;text-indent:-9999px;z-index:1}.wp-block-legacy-widget__edit-form .widget-conditional .condition-control a{top:20px}.widget-conditional .condition-control a:before{position:absolute;text-indent:0;top:0;right:0}.widget-conditional .condition-control .delete-condition,.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .condition-control .delete-condition{right:0;color:#f11}.widget-conditional .condition-control .add-condition{left:0}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner a.dashicons{font-family:dashicons}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner select{display:initial;width:auto;background-color:#fff}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner select:disabled{color:#a7aaad;border-color:#dcdcde;background-color:#f6f7f7}.editor-styles-wrapper .wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .alignleft{margin-right:20px}.widget-conditional .condition:last-child .condition-conjunction,.widget-conditional .condition:last-child .condition-intersection{display:none}.widget-conditional.conjunction .condition-intersection{display:none}.widget-conditional.intersection .condition-conjunction{display:none}.wp-core-ui .button.display-options{margin-left:5px}.wp-core-ui .button.display-options:hover{text-decoration:none}.wp-customizer .widget-conditional select{min-width:0;max-width:none;height:auto}.wp-customizer .widget-conditional .condition-control a{top:15px}@media screen and (max-width:782px){.widget-conditional .condition-control a{top:20px}}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner{font-size:13px}.widget-vis__rule .components-base-control,.widget-vis__wrapper .components-base-control{margin-bottom:12px}.widget-vis__rule{padding:12px;border:1px solid #dcdcde;display:flex;flex-direction:column;margin-bottom:12px}.widget-vis__rule-major,.widget-vis__rule-minor{display:flex;justify-content:stretch;align-items:center}.widget-vis__if,.widget-vis__is{margin-left:8px;width:10px}.widget-vis__show-hide{margin-bottom:0}.components-button.widget-vis__add-new-rule{display:block}.widget-vis__delete-rule{margin-top:6px;text-align:left}.widget-vis__match-all{margin-top:12px}.widget-vis__select{width:100%}.widget-vis__select .components-input-control__container{position:relative;top:4px}.widget-vis__select-multi-level select option:disabled{font-size:18px;font-weight:600} \ No newline at end of file
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.css b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.css
index 72d27b8b..835aa00d 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.css
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.css
@@ -16,13 +16,14 @@
display: none;
}
.widget-conditional .widget-conditional-inner {
- background: #F9F9F9;
- border: 1px solid #DFDFDF;
+ background: #f6f7f7;
+ border: 1px solid #dcdcde;
padding: 12px 10px 0;
}
.widget-conditional {
margin-bottom: 12px;
+ margin-top: 10px;
}
.widget-conditional .conditions{
margin-bottom: 12px;
@@ -68,12 +69,18 @@
text-indent: -9999px;
z-index: 1;
}
+
+.wp-block-legacy-widget__edit-form .widget-conditional .condition-control a {
+ top: 20px;
+}
+
.widget-conditional .condition-control a:before {
position: absolute;
text-indent: 0;
top: 0;
left: 0;
}
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .condition-control .delete-condition,
.widget-conditional .condition-control .delete-condition {
left: 0;
color: #f11;
@@ -82,6 +89,26 @@
right: 0;
}
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner a.dashicons {
+ font-family: dashicons;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner select {
+ display:initial;
+ width:auto;
+ background-color: #fff;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner select:disabled {
+ color: #a7aaad;
+ border-color: #dcdcde;
+ background-color: #f6f7f7;
+}
+
+.editor-styles-wrapper .wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .alignleft {
+ margin-left:20px
+}
+
.widget-conditional .condition:last-child .condition-conjunction,
.widget-conditional .condition:last-child .condition-intersection {
display: none;
@@ -115,3 +142,71 @@
top: 20px;
}
}
+
+.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner {
+ /*
+ * fonts of labels are reset to 13px in gutenberg editor for legacy widgets, ensure a consistent look on non-labels
+ */
+ font-size: 13px;
+}
+
+/*
+ * Rules for gutenberg advanced panel
+ */
+
+ .widget-vis__wrapper .components-base-control,
+ .widget-vis__rule .components-base-control {
+ margin-bottom: 12px;
+ }
+
+.widget-vis__rule {
+ padding: 12px;
+ border: 1px solid #dcdcde;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 12px;
+}
+
+.widget-vis__rule-major,
+.widget-vis__rule-minor {
+ display: flex;
+ justify-content: stretch;
+ align-items: center;
+}
+
+.widget-vis__if,
+.widget-vis__is {
+ margin-right: 8px;
+ width: 10px;
+}
+
+.widget-vis__show-hide {
+ margin-bottom: 0;
+}
+
+.components-button.widget-vis__add-new-rule {
+ display: block;
+}
+
+.widget-vis__delete-rule {
+ margin-top: 6px;
+ text-align: right;
+}
+
+.widget-vis__match-all {
+ margin-top: 12px;
+}
+
+.widget-vis__select {
+ width: 100%;
+}
+
+.widget-vis__select .components-input-control__container {
+ position: relative;
+ top: 4px;
+}
+
+.widget-vis__select-multi-level select option:disabled {
+ font-size: 18px;
+ font-weight: 600;
+}
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
index 66200dbf..bf3e51f6 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
@@ -1,10 +1,17 @@
-/* global isRtl, widget_conditions_parent_pages, widget_conditions_data, jQuery */
+/* global isRtl, widget_conditions_parent_pages, widget_conditions_data */
-jQuery( function( $ ) {
- var widgets_shell = $( 'div#widgets-right' );
+jQuery( function ( $ ) {
+ // Gutenberg 'widgets.php' screen.
+ var widgets_shell = $( '#widgets-editor' );
- if ( ! widgets_shell && ! widgets_shell.length ) {
- widgets_shell = $( 'form#customize-controls' );
+ if ( 0 === widgets_shell.length ) {
+ // Legacy 'widgets.php' screen + customizer.
+ widgets_shell = $( 'div#widgets-right' );
+
+ // For backwards compatibility
+ if ( 0 === widgets_shell.length ) {
+ widgets_shell = $( 'form#customize-controls' );
+ }
}
function setWidgetMargin( $widget ) {
@@ -51,8 +58,15 @@ jQuery( function( $ ) {
}
function moveWidgetVisibilityButton( $widget ) {
- var $displayOptionsButton = $widget.find( 'a.display-options' ).first();
- $displayOptionsButton.insertBefore( $widget.find( 'input.widget-control-save' ) );
+ var $displayOptionsButton = $widget.find( 'a.display-options' ).first(),
+ $relativeWidget = $widget.find( 'input.widget-control-save' );
+
+ if ( 0 === $relativeWidget.length ) {
+ // The save button doesn't exist in gutenberg widget editor, the conditional HTML ought to be displayed
+ // last inside the widget options, so display the button before that.
+ $relativeWidget = $widget.find( 'div.widget-conditional' );
+ }
+ $displayOptionsButton.insertBefore( $relativeWidget );
// Widgets with no configurable options don't show the Save button's container.
$displayOptionsButton
@@ -64,17 +78,17 @@ jQuery( function( $ ) {
.prependTo( $displayOptionsButton.parent() );
}
- $( '.widget' ).each( function() {
+ $( '.widget' ).each( function () {
moveWidgetVisibilityButton( $( this ) );
} );
- $( document ).on( 'widget-added', function( e, $widget ) {
+ $( document ).on( 'widget-added', function ( e, $widget ) {
if ( $widget.find( 'div.widget-control-actions a.display-options' ).length === 0 ) {
moveWidgetVisibilityButton( $widget );
}
} );
- widgets_shell.on( 'click.widgetconditions', 'a.add-condition', function( e ) {
+ widgets_shell.on( 'click.widgetconditions', 'a.add-condition', function ( e ) {
var $condition = $( this ).closest( 'div.condition' ),
$conditionClone = $condition
.clone()
@@ -86,10 +100,7 @@ jQuery( function( $ ) {
e.preventDefault();
$conditionClone.find( 'select.conditions-rule-major' ).val( '' );
- $conditionClone
- .find( 'select.conditions-rule-minor' )
- .html( '' )
- .attr( 'disabled' );
+ $conditionClone.find( 'select.conditions-rule-minor' ).html( '' ).attr( 'disabled' );
$conditionClone
.find( 'span.conditions-rule-has-children' )
.hide()
@@ -99,7 +110,7 @@ jQuery( function( $ ) {
resetRuleIndexes( $conditionClone.closest( '.conditions' ) );
} );
- widgets_shell.on( 'click.widgetconditions', 'a.display-options', function( e ) {
+ widgets_shell.on( 'click.widgetconditions', 'a.display-options', function ( e ) {
var $displayOptionsButton = $( this ),
$widget = $displayOptionsButton.closest( 'div.widget' );
@@ -112,7 +123,7 @@ jQuery( function( $ ) {
if ( $( this ).hasClass( 'active' ) ) {
$widget.find( 'input[name=widget-conditions-visible]' ).val( '1' );
- $widget.find( '.condition' ).each( function() {
+ $widget.find( '.condition' ).each( function () {
buildMinorConditions( $( this ) );
} );
} else {
@@ -120,20 +131,14 @@ jQuery( function( $ ) {
}
} );
- widgets_shell.on( 'click.widgetconditions', 'a.delete-condition', function( e ) {
+ widgets_shell.on( 'click.widgetconditions', 'a.delete-condition', function ( e ) {
var $condition = $( this ).closest( 'div.condition' );
e.preventDefault();
if ( $condition.is( ':first-child' ) && $condition.is( ':last-child' ) ) {
- $( this )
- .closest( 'div.widget' )
- .find( 'a.display-options' )
- .click();
- $condition
- .find( 'select.conditions-rule-major' )
- .val( '' )
- .change();
+ $( this ).closest( 'div.widget' ).find( 'a.display-options' ).click();
+ $condition.find( 'select.conditions-rule-major' ).val( '' ).change();
} else {
$condition.find( 'select.conditions-rule-major' ).change();
$condition.detach();
@@ -142,7 +147,7 @@ jQuery( function( $ ) {
resetRuleIndexes( $condition.closest( '.conditions' ) );
} );
- widgets_shell.on( 'click.widgetconditions', 'div.widget-top', function() {
+ widgets_shell.on( 'click.widgetconditions', 'div.widget-top', function () {
var $widget = $( this ).closest( 'div.widget' ),
$displayOptionsButton = $widget.find( 'a.display-options' );
@@ -157,14 +162,14 @@ jQuery( function( $ ) {
}
} );
- widgets_shell.on( 'change.widgetconditions', 'input.conditions-match-all', function() {
+ widgets_shell.on( 'change.widgetconditions', 'input.conditions-match-all', function () {
$( this )
.parents( '.widget-conditional' )
.toggleClass( 'conjunction' )
.toggleClass( 'intersection' );
} );
- $( document ).on( 'change.widgetconditions', 'select.conditions-rule-major', function() {
+ $( document ).on( 'change.widgetconditions', 'select.conditions-rule-major', function () {
var $conditionsRuleMajor = $( this ),
$conditionsRuleMinor = $conditionsRuleMajor.siblings( 'select.conditions-rule-minor:first' ),
$conditionsRuleHasChildren = $conditionsRuleMajor.siblings(
@@ -181,14 +186,11 @@ jQuery( function( $ ) {
.siblings( 'select.conditions-rule-minor' )
.attr( 'disabled', 'disabled' )
.html( '' );
- $conditionsRuleHasChildren
- .hide()
- .find( 'input[type="checkbox"]' )
- .removeAttr( 'checked' );
+ $conditionsRuleHasChildren.hide().find( 'input[type="checkbox"]' ).removeAttr( 'checked' );
}
} );
- $( document ).on( 'change.widgetconditions', 'select.conditions-rule-minor', function() {
+ $( document ).on( 'change.widgetconditions', 'select.conditions-rule-minor', function () {
var $conditionsRuleMinor = $( this ),
$conditionsRuleMajor = $conditionsRuleMinor.siblings( 'select.conditions-rule-major' ),
$conditionsRuleHasChildren = $conditionsRuleMinor.siblings(
@@ -202,21 +204,15 @@ jQuery( function( $ ) {
if ( $conditionsRuleMinor.val() in widget_conditions_parent_pages ) {
$conditionsRuleHasChildren.show();
} else {
- $conditionsRuleHasChildren
- .hide()
- .find( 'input[type="checkbox"]' )
- .removeAttr( 'checked' );
+ $conditionsRuleHasChildren.hide().find( 'input[type="checkbox"]' ).removeAttr( 'checked' );
}
} else {
- $conditionsRuleHasChildren
- .hide()
- .find( 'input[type="checkbox"]' )
- .removeAttr( 'checked' );
+ $conditionsRuleHasChildren.hide().find( 'input[type="checkbox"]' ).removeAttr( 'checked' );
}
} );
- $( document ).on( 'widget-updated widget-synced', function( e, widget ) {
- widget.find( '.condition' ).each( function() {
+ $( document ).on( 'widget-updated widget-synced', function ( e, widget ) {
+ widget.find( '.condition' ).each( function () {
buildMinorConditions( $( this ) );
} );
} );
@@ -303,7 +299,7 @@ jQuery( function( $ ) {
widget
.find( 'span.conditions-rule-has-children' )
.find( 'input[type="checkbox"]' )
- .each( function() {
+ .each( function () {
$( this ).attr( 'name', 'conditions[page_children][' + index + ']' );
index++;
} );
diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.min.css b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.min.css
index 33ba43d1..f03127fb 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.min.css
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.min.css
@@ -1,2 +1,2 @@
/* Do not modify this file directly. It is concatenated from individual module CSS files. */
-.wp-customizer .expanded .widget-conditional .widget-conditional-inner{width:98%;box-sizing:border-box}.wp-customizer .expanded .widget-conditional .form{overflow:scroll;margin-bottom:20px}.widget-liquid-right .widget.expanded{overflow:visible}.widget-conditional-hide{display:none}.widget-conditional .widget-conditional-inner{background:#f9f9f9;border:1px solid #dfdfdf;padding:12px 10px 0}.widget-conditional{margin-bottom:12px}.widget-conditional .conditions{margin-bottom:12px}.widget-conditional .condition,.widget-conditional .condition-top{clear:both}.widget-conditional .condition{padding-top:12px;position:relative}.widget-conditional .condition select{width:120px;position:relative;z-index:2}.widget-conditional .condition-top select{width:auto}.widget-conditional .condition-control{padding-top:4px;clear:both;margin-top:-20px}.widget-conditional .selection{margin-right:50px;margin-left:20px}.widget-conditional .conditions-rule-has-children{display:block}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition-control a{text-decoration:none;position:absolute;top:17px;text-indent:-9999px;z-index:1}.widget-conditional .condition-control a:before{position:absolute;text-indent:0;top:0;left:0}.widget-conditional .condition-control .delete-condition{left:0;color:#f11}.widget-conditional .condition-control .add-condition{right:0}.widget-conditional .condition:last-child .condition-conjunction,.widget-conditional .condition:last-child .condition-intersection{display:none}.widget-conditional.conjunction .condition-intersection{display:none}.widget-conditional.intersection .condition-conjunction{display:none}.wp-core-ui .button.display-options{margin-right:5px}.wp-core-ui .button.display-options:hover{text-decoration:none}.wp-customizer .widget-conditional select{min-width:0;max-width:none;height:auto}.wp-customizer .widget-conditional .condition-control a{top:15px}@media screen and (max-width:782px){.widget-conditional .condition-control a{top:20px}} \ No newline at end of file
+.wp-customizer .expanded .widget-conditional .widget-conditional-inner{width:98%;box-sizing:border-box}.wp-customizer .expanded .widget-conditional .form{overflow:scroll;margin-bottom:20px}.widget-liquid-right .widget.expanded{overflow:visible}.widget-conditional-hide{display:none}.widget-conditional .widget-conditional-inner{background:#f6f7f7;border:1px solid #dcdcde;padding:12px 10px 0}.widget-conditional{margin-bottom:12px;margin-top:10px}.widget-conditional .conditions{margin-bottom:12px}.widget-conditional .condition,.widget-conditional .condition-top{clear:both}.widget-conditional .condition{padding-top:12px;position:relative}.widget-conditional .condition select{width:120px;position:relative;z-index:2}.widget-conditional .condition-top select{width:auto}.widget-conditional .condition-control{padding-top:4px;clear:both;margin-top:-20px}.widget-conditional .selection{margin-right:50px;margin-left:20px}.widget-conditional .conditions-rule-has-children{display:block}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition .actions{margin-top:-28px}.widget-conditional .condition-control a{text-decoration:none;position:absolute;top:17px;text-indent:-9999px;z-index:1}.wp-block-legacy-widget__edit-form .widget-conditional .condition-control a{top:20px}.widget-conditional .condition-control a:before{position:absolute;text-indent:0;top:0;left:0}.widget-conditional .condition-control .delete-condition,.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .condition-control .delete-condition{left:0;color:#f11}.widget-conditional .condition-control .add-condition{right:0}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner a.dashicons{font-family:dashicons}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner select{display:initial;width:auto;background-color:#fff}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .widget-conditional-inner select:disabled{color:#a7aaad;border-color:#dcdcde;background-color:#f6f7f7}.editor-styles-wrapper .wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional .alignleft{margin-left:20px}.widget-conditional .condition:last-child .condition-conjunction,.widget-conditional .condition:last-child .condition-intersection{display:none}.widget-conditional.conjunction .condition-intersection{display:none}.widget-conditional.intersection .condition-conjunction{display:none}.wp-core-ui .button.display-options{margin-right:5px}.wp-core-ui .button.display-options:hover{text-decoration:none}.wp-customizer .widget-conditional select{min-width:0;max-width:none;height:auto}.wp-customizer .widget-conditional .condition-control a{top:15px}@media screen and (max-width:782px){.widget-conditional .condition-control a{top:20px}}.wp-block-legacy-widget__edit-form .widget-inside.widget-inside .widget-conditional-inner{font-size:13px}.widget-vis__rule .components-base-control,.widget-vis__wrapper .components-base-control{margin-bottom:12px}.widget-vis__rule{padding:12px;border:1px solid #dcdcde;display:flex;flex-direction:column;margin-bottom:12px}.widget-vis__rule-major,.widget-vis__rule-minor{display:flex;justify-content:stretch;align-items:center}.widget-vis__if,.widget-vis__is{margin-right:8px;width:10px}.widget-vis__show-hide{margin-bottom:0}.components-button.widget-vis__add-new-rule{display:block}.widget-vis__delete-rule{margin-top:6px;text-align:right}.widget-vis__match-all{margin-top:12px}.widget-vis__select{width:100%}.widget-vis__select .components-input-control__container{position:relative;top:4px}.widget-vis__select-multi-level select option:disabled{font-size:18px;font-weight:600} \ No newline at end of file
diff --git a/plugins/jetpack/modules/widgets/authors.php b/plugins/jetpack/modules/widgets/authors.php
index 741856d8..402794fc 100644
--- a/plugins/jetpack/modules/widgets/authors.php
+++ b/plugins/jetpack/modules/widgets/authors.php
@@ -116,7 +116,7 @@ class Jetpack_Widget_Authors extends WP_Widget {
echo $args['before_widget'];
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $instance['title'] );
- echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '<ul>';
$default_post_type = 'post';
diff --git a/plugins/jetpack/modules/widgets/blog-stats.php b/plugins/jetpack/modules/widgets/blog-stats.php
index e89db686..7265d114 100644
--- a/plugins/jetpack/modules/widgets/blog-stats.php
+++ b/plugins/jetpack/modules/widgets/blog-stats.php
@@ -4,7 +4,7 @@
*
* @since 4.5.0
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
@@ -94,7 +94,7 @@ class Jetpack_Blog_Stats_Widget extends WP_Widget {
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
</p>
<p>
- <label for="<?php echo esc_attr( $this->get_field_id( 'hits' ) ); ?>"><?php echo number_format_i18n( '12345' ); ?></label>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'hits' ) ); ?>"><?php esc_html_e( 'Pageview Description:', 'jetpack' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'hits' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'hits' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['hits'] ); ?>" />
</p>
<p><?php esc_html_e( 'Hit counter is delayed by up to 60 seconds.', 'jetpack' ); ?></p>
@@ -137,13 +137,15 @@ class Jetpack_Blog_Stats_Widget extends WP_Widget {
echo $args['before_widget'];
if ( ! empty( $title ) ) {
- echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
// Get the Site Stats.
$views = $this->get_stats();
- if ( ! empty( $views ) ) {
+ if ( 0 === $views ) {
+ esc_html_e( 'There is nothing to display yet', 'jetpack' );
+ } elseif ( $views ) {
printf(
'<ul><li>%1$s %2$s</li></ul>',
number_format_i18n( $views ),
diff --git a/plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php b/plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php
new file mode 100644
index 00000000..c334f0fb
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/class-jetpack-instagram-widget.php
@@ -0,0 +1,641 @@
+<?php
+/**
+ * Instagram Widget. Display some Instagram photos via a widget.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Connection\Manager;
+
+/**
+ * This is the actual Instagram widget along with other code that only applies to the widget.
+ */
+class Jetpack_Instagram_Widget extends WP_Widget {
+
+ const ID_BASE = 'wpcom_instagram_widget'; // Don't change this as Atomic widgets will break.
+
+ /**
+ * Options for the widget.
+ *
+ * @access public
+ *
+ * @var array
+ */
+ public $valid_options;
+
+ /**
+ * Default settings for the widgets.
+ *
+ * @access public
+ *
+ * @var array
+ */
+ public $defaults;
+
+ /**
+ * Sets the widget properties in WordPress, hooks a few functions, and sets some widget options.
+ */
+ public function __construct() {
+ parent::__construct(
+ self::ID_BASE,
+ /** This filter is documented in modules/widgets/facebook-likebox.php */
+ apply_filters( 'jetpack_widget_name', esc_html__( 'Instagram', 'jetpack' ) ),
+ array(
+ 'description' => __( 'Display your latest Instagram photos.', 'jetpack' ),
+ 'show_instance_in_rest' => true,
+ )
+ );
+
+ if ( is_active_widget( false, false, self::ID_BASE ) || is_active_widget( false, false, 'monster' ) || is_customize_preview() ) {
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_css' ) );
+ }
+
+ add_action( 'wp_ajax_wpcom_instagram_widget_update_widget_token_id', array( $this, 'ajax_update_widget_token_id' ) );
+
+ $this->valid_options = array(
+ /**
+ * Allow changing the maximum number of columns available for the Instagram widget.
+ *
+ * @module widgets
+ *
+ * @since 8.8.0
+ *
+ * @param int $max_columns maximum number of columns.
+ */
+ 'max_columns' => apply_filters( 'wpcom_instagram_widget_max_columns', 3 ),
+ 'max_count' => 20,
+ );
+
+ $this->defaults = array(
+ 'token_id' => null,
+ 'title' => __( 'Instagram', 'jetpack' ),
+ 'columns' => 2,
+ 'count' => 6,
+ );
+
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
+ }
+
+ /**
+ * Remove the "Instagram" widget from the Legacy Widget block
+ *
+ * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
+ * @return array $widget_types New list of widgets that will be removed.
+ */
+ public function hide_widget_in_block_editor( $widget_types ) {
+ $widget_types[] = self::ID_BASE;
+ return $widget_types;
+ }
+
+ /**
+ * Enqueues the widget's frontend CSS but only if the widget is currently in use.
+ */
+ public function enqueue_css() {
+ wp_enqueue_style( self::ID_BASE, plugins_url( 'instagram/instagram.css', __FILE__ ), array(), JETPACK__VERSION );
+ }
+
+ /**
+ * Updates the widget's option in the database to have the passed Keyring token ID.
+ * This is so the user doesn't have to click the "Save" button when we want to set it.
+ *
+ * @param int $token_id A Keyring token ID.
+ * @param int $number The widget ID.
+ */
+ public function update_widget_token_id( $token_id, $number = null ) {
+ $widget_options = $this->get_settings();
+
+ if ( empty( $number ) ) {
+ $number = $this->number;
+ }
+
+ if ( ! isset( $widget_options[ $number ] ) || ! is_array( $widget_options[ $number ] ) ) {
+ $widget_options[ $number ] = $this->defaults;
+ }
+
+ $widget_options[ $number ]['token_id'] = (int) $token_id;
+
+ $this->save_settings( $widget_options );
+ }
+
+ /**
+ * Updates the widget's option in the database to have the passed Keyring token ID.
+ *
+ * Sends a json success or error response.
+ */
+ public function ajax_update_widget_token_id() {
+ if ( ! check_ajax_referer( 'instagram-widget-save-token', 'savetoken', false ) ) {
+ wp_send_json_error( array( 'message' => 'bad_nonce' ), 403 );
+ }
+
+ if ( ! current_user_can( 'customize' ) ) {
+ wp_send_json_error( array( 'message' => 'not_authorized' ), 403 );
+ }
+
+ $token_id = ! empty( $_POST['keyring_id'] ) ? (int) $_POST['keyring_id'] : null;
+ $widget_id = ! empty( $_POST['instagram_widget_id'] ) ? (int) $_POST['instagram_widget_id'] : null;
+
+ // For Simple sites check if the token is valid.
+ // (For Atomic sites, this check is done via the api: wpcom/v2/instagram/<token_id>).
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $token = Keyring::init()->get_token_store()->get_token(
+ array(
+ 'type' => 'access',
+ 'id' => $token_id,
+ )
+ );
+ if ( get_current_user_id() !== (int) $token->meta['user_id'] ) {
+ return wp_send_json_error( array( 'message' => 'not_authorized' ), 403 );
+ }
+ }
+
+ $this->update_widget_token_id( $token_id, $widget_id );
+ $this->update_widget_token_legacy_status( false );
+
+ return wp_send_json_success( null, 200 );
+ }
+
+ /**
+ * Updates the widget's option in the database to show if it is for legacy API or not.
+ *
+ * @param bool $is_legacy_token A flag to indicate if a token is for the legacy Instagram API.
+ */
+ public function update_widget_token_legacy_status( $is_legacy_token ) {
+ $widget_options = $this->get_settings();
+
+ if ( ! is_array( $widget_options[ $this->number ] ) ) {
+ $widget_options[ $this->number ] = $this->defaults;
+ }
+
+ $widget_options[ $this->number ]['is_legacy_token'] = $is_legacy_token;
+ $this->save_settings( $widget_options );
+
+ return $is_legacy_token;
+ }
+
+ /**
+ * Get's the status of the token from the API
+ *
+ * @param int $token_id A Keyring token ID.
+ * @return array The status of the token's connection.
+ */
+ private function get_token_status( $token_id ) {
+ if ( empty( $token_id ) ) {
+ return array( 'valid' => false );
+ }
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
+ $token = Keyring::init()->get_token_store()->get_token(
+ array(
+ 'type' => 'access',
+ 'id' => $token_id,
+ )
+ );
+
+ return array(
+ 'valid' => ! empty( $token ),
+ 'legacy' => $token && 'instagram' === $token->name,
+ );
+ }
+
+ $site = Jetpack_Options::get_option( 'id' );
+ $path = sprintf( '/sites/%s/instagram/%s/check-token', $site, $token_id );
+ $result = Client::wpcom_json_api_request_as_blog( $path, 2, array( 'headers' => array( 'content-type' => 'application/json' ) ), null, 'wpcom' );
+ $response_code = wp_remote_retrieve_response_code( $result );
+ if ( 200 !== $response_code ) {
+ return array(
+ // We assume the token is valid if the response_code is anything but the invalid
+ // token codes we send back. This is to make sure it's not reset, if the API is down
+ // or something.
+ 'valid' => ! ( 403 === $response_code || 401 === $response_code ),
+ 'legacy' => 'ERROR',
+ );
+ }
+ $status = json_decode( $result['body'], true );
+ return $status;
+ }
+
+ /**
+ * Validates the widget instance's token ID and then uses it to fetch images from Instagram.
+ * It then caches the result which it will use on subsequent pageviews.
+ * Keyring is not loaded nor is a remote request is not made in the event of a cache hit.
+ *
+ * @param array $instance A widget $instance, as passed to a widget's widget() method.
+ * @return WP_Error|array A WP_Error on error, an array of images on success.
+ */
+ public function get_data( $instance ) {
+ if ( empty( $instance['token_id'] ) ) {
+ return new WP_Error( 'empty_token', esc_html__( 'The token id was empty', 'jetpack' ), 403 );
+ }
+
+ $transient_key = implode( '|', array( 'jetpack_instagram_widget', $instance['token_id'], $instance['count'] ) );
+ $cached_images = get_transient( $transient_key );
+ if ( $cached_images ) {
+ return $cached_images;
+ }
+
+ $site = Jetpack_Options::get_option( 'id' );
+ $path = sprintf( '/sites/%s/instagram/%s?count=%s', $site, $instance['token_id'], $instance['count'] );
+ $result = Client::wpcom_json_api_request_as_blog( $path, 2, array( 'headers' => array( 'content-type' => 'application/json' ) ), null, 'wpcom' );
+
+ $response_code = wp_remote_retrieve_response_code( $result );
+ if ( 200 !== $response_code ) {
+ return new WP_Error( 'invalid_response', esc_html__( 'The response was invalid', 'jetpack' ), $response_code );
+ }
+
+ $data = json_decode( wp_remote_retrieve_body( $result ), true );
+ if ( ! isset( $data['images'] ) || ! is_array( $data['images'] ) ) {
+ return new WP_Error( 'missing_images', esc_html__( 'The images were missing', 'jetpack' ), $response_code );
+ }
+
+ set_transient( $transient_key, $data, HOUR_IN_SECONDS );
+ return $data;
+ }
+
+ /**
+ * Outputs the contents of the widget on the front end.
+ *
+ * If the widget is unconfigured, a configuration message is displayed to users with admin access
+ * and the entire widget is hidden from everyone else to avoid displaying an empty widget.
+ *
+ * @param array $args The sidebar arguments that control the wrapping HTML.
+ * @param array $instance The widget instance (configuration options).
+ */
+ public function widget( $args, $instance ) {
+ $instance = wp_parse_args( $instance, $this->defaults );
+ $data = $this->get_data( $instance );
+ if ( is_wp_error( $data ) ) {
+ return;
+ }
+
+ $images = $data['images'];
+
+ $status = $this->get_token_status( $instance['token_id'] );
+ // Don't display anything to non-blog admins if the widgets is unconfigured or API call fails.
+ if ( ( ! $status['valid'] || ! is_array( $images ) ) && ! current_user_can( 'edit_theme_options' ) ) {
+ return;
+ }
+
+ echo $args['before_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ // Always show a title on an unconfigured widget.
+ if ( ! $status['valid'] && empty( $instance['title'] ) ) {
+ $instance['title'] = $this->defaults['title'];
+ }
+
+ if ( ! empty( $instance['title'] ) ) {
+ echo $args['before_title']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $instance['title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $args['after_title']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ if ( $status['valid'] && current_user_can( 'edit_theme_options' ) && $status['legacy'] ) {
+ echo '<p><em>' . sprintf(
+ wp_kses(
+ /* translators: %s is a link to reconnect the Instagram widget */
+ __( 'In order to continue using this widget you must <a href="%s">reconnect to Instagram</a>.', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ ),
+ )
+ ),
+ esc_url( add_query_arg( 'instagram_widget_id', $this->number, admin_url( 'widgets.php' ) ) )
+ ) . '</em></p>';
+ }
+
+ if ( ! $status['valid'] ) {
+ echo '<p><em>' . sprintf(
+ wp_kses(
+ /* translators: %s is a link to configure the Instagram widget */
+ __( 'In order to use this Instagram widget, you must <a href="%s">configure it</a> first.', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ ),
+ )
+ ),
+ esc_url( add_query_arg( 'instagram_widget_id', $this->number, admin_url( 'widgets.php' ) ) )
+ ) . '</em></p>';
+ } else {
+ if ( ! is_array( $images ) ) {
+ echo '<p>' . esc_html__( 'There was an error retrieving images from Instagram. An attempt will be remade in a few minutes.', 'jetpack' ) . '</p>';
+ } elseif ( ! $images ) {
+ echo '<p>' . esc_html__( 'No Instagram images were found.', 'jetpack' ) . '</p>';
+ } else {
+
+ echo '<div class="' . esc_attr( 'wpcom-instagram-images wpcom-instagram-columns-' . (int) $instance['columns'] ) . '">' . "\n";
+ foreach ( $images as $image ) {
+ /**
+ * Filter how Instagram image links open in the Instagram widget.
+ *
+ * @module widgets
+ *
+ * @since 8.8.0
+ *
+ * @param string $target Target attribute.
+ */
+ $image_target = apply_filters( 'wpcom_instagram_widget_target', '_self' );
+ echo '<a href="' . esc_url( $image['link'] ) . '" target="' . esc_attr( $image_target ) . '"><div class="sq-bg-image" style="background-image: url(' . esc_url( set_url_scheme( $image['url'] ) ) . ')"><span class="screen-reader-text">' . esc_attr( $image['title'] ) . '</span></div></a>' . "\n";
+ }
+ echo "</div>\n";
+ }
+ }
+
+ echo $args['after_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ /** This action is already documented in modules/widgets/gravatar-profile.php */
+ do_action( 'jetpack_stats_extra', 'widget_view', 'instagram' );
+ }
+
+ /**
+ * Get the URL to connect the widget to Instagram
+ *
+ * @return string the conneciton URL.
+ */
+ private function get_connect_url() {
+ $connect_url = '';
+
+ if ( defined( 'IS_WPCOM' ) && IS_WPCOM && function_exists( 'wpcom_keyring_get_connect_URL' ) ) {
+ $connect_url = wpcom_keyring_get_connect_URL( 'instagram-basic-display', 'instagram-widget' );
+ } else {
+ $jetpack_blog_id = Jetpack_Options::get_option( 'id' );
+ $response = Client::wpcom_json_api_request_as_user(
+ sprintf( '/sites/%d/external-services', $jetpack_blog_id )
+ );
+
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $body = json_decode( $response['body'] );
+ $connect_url = new WP_Error( 'connect_url_not_found', 'Connect URL not found' );
+ if ( ! empty( $body->services->{'instagram-basic-display'}->connect_URL ) ) {
+ $connect_url = $body->services->{'instagram-basic-display'}->connect_URL;
+ }
+ }
+
+ return $connect_url;
+ }
+
+ /**
+ * Is this request trying to remove the widgets stored id?
+ *
+ * @param array $status The status of the token's connection.
+ * @return bool if this request trying to remove the widgets stored id.
+ */
+ public function removing_widgets_stored_id( $status ) {
+ return $status['valid'] && isset( $_GET['instagram_widget_id'] ) && (int) $_GET['instagram_widget_id'] === (int) $this->number && ! empty( $_GET['instagram_widget'] ) && 'remove_token' === $_GET['instagram_widget']; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ }
+
+ /**
+ * Outputs the widget configuration form for the widget administration page.
+ * Allows the user to add new Instagram Keyring tokens and more.
+ *
+ * @param array $instance The widget instance (configuration options).
+ */
+ public function form( $instance ) {
+ $instance = wp_parse_args( $instance, $this->defaults );
+
+ if ( ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) && ! ( new Manager() )->is_user_connected() ) {
+ echo '<p>';
+ printf(
+ // translators: %1$1 and %2$s are the opening and closing a tags creating a link to the Jetpack dashboard.
+ esc_html__( 'In order to use this widget you need to %1$scomplete your Jetpack connection%2$s by authorizing your user.', 'jetpack' ),
+ '<a href="' . esc_url( Jetpack::admin_url( array( 'page' => 'jetpack#/connect-user' ) ) ) . '">',
+ '</a>'
+ );
+ echo '</p>';
+ return;
+ }
+
+ // If coming back to the widgets page from an action, expand this widget.
+ if ( isset( $_GET['instagram_widget_id'] ) && (int) $_GET['instagram_widget_id'] === (int) $this->number ) {
+ echo '<script type="text/javascript">jQuery(document).ready(function($){ $(\'.widget[id$="wpcom_instagram_widget-' . esc_js( $this->number ) . '"] .widget-inside\').slideDown(\'fast\'); });</script>';
+ }
+
+ $status = $this->get_token_status( $instance['token_id'] );
+
+ // If removing the widget's stored token ID.
+ if ( $this->removing_widgets_stored_id( $status ) ) {
+ if ( empty( $_GET['nonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['nonce'] ), 'instagram-widget-remove-token-' . $this->number . '-' . $instance['token_id'] ) ) {
+ wp_die( esc_html__( 'Missing or invalid security nonce.', 'jetpack' ) );
+ }
+
+ $instance['token_id'] = $this->defaults['token_id'];
+
+ $this->update_widget_token_id( $instance['token_id'] );
+ $this->update_widget_token_legacy_status( false );
+ } elseif ( $status['valid'] && ( ! isset( $instance['is_legacy_token'] ) || 'ERROR' === $instance['is_legacy_token'] ) ) { // If a token ID is stored, check if we know if it is a legacy API token or not.
+ $instance['is_legacy_token'] = $this->update_widget_token_legacy_status( $status['legacy'] );
+ } elseif ( ! $status['valid'] ) { // If the token isn't valid reset it.
+ $instance['token_id'] = $this->defaults['token_id'];
+ $this->update_widget_token_id( $instance['token_id'] );
+ }
+
+ // No connection, or a legacy API token? Display a connection link.
+ $is_legacy_token = ( isset( $instance['is_legacy_token'] ) && true === $instance['is_legacy_token'] );
+
+ if ( $is_legacy_token ) {
+ echo '<p><strong>' . esc_html__( 'In order to continue using this widget you must reconnect to Instagram.', 'jetpack' ) . '</strong></p>';
+ }
+
+ if ( is_customize_preview() && ! $instance['token_id'] ) {
+ echo '<p>';
+ echo wp_kses(
+ __( '<strong>Important: You must first click Publish to activate this widget <em>before</em> connecting your account.</strong> After saving the widget, click the button below to connect your Instagram account.', 'jetpack' ),
+ array(
+ 'strong' => array(),
+ 'em' => array(),
+ )
+ );
+ echo '</p>';
+ }
+
+ if ( ! $instance['token_id'] || $is_legacy_token ) {
+ ?>
+ <script type="text/javascript">
+ function getScreenCenterSpecs( width, height ) {
+ const screenTop = typeof window.screenTop !== 'undefined' ? window.screenTop : window.screenY,
+ screenLeft = typeof window.screenLeft !== 'undefined' ? window.screenLeft : window.screenX;
+
+ return [
+ 'width=' + width,
+ 'height=' + height,
+ 'top=' + ( screenTop + window.innerHeight / 2 - height / 2 ),
+ 'left=' + ( screenLeft + window.innerWidth / 2 - width / 2 ),
+ ].join();
+ };
+ function openWindow( button ) {
+ // let's just double check that we aren't getting an unknown random domain injected in here somehow.
+ if (! /^https:\/\/public-api.wordpress.com\/connect\//.test(button.dataset.connecturl) ) {
+ return;
+ }
+ window.open(
+ button.dataset.connecturl, //TODO: Check if this needs validation it could be a XSS problem. Check the domain maybe?
+ '_blank',
+ 'toolbar=0,location=0,menubar=0,' + getScreenCenterSpecs( 700, 700 )
+ );
+ button.innerText = '<?php echo esc_js( __( 'Connecting…', 'jetpack' ) ); ?>';
+ button.disabled = true;
+ window.onmessage = function( { data } ) {
+ if ( !! data.keyring_id ) {
+ var payload = {
+ action: 'wpcom_instagram_widget_update_widget_token_id',
+ savetoken: '<?php echo esc_js( wp_create_nonce( 'instagram-widget-save-token' ) ); ?>',
+ keyring_id: data.keyring_id,
+ instagram_widget_id: button.dataset.widgetid,
+ };
+ jQuery.post( ajaxurl, payload, function( response ) {
+ var widget = jQuery(button).closest('div.widget');
+ if ( ! window.wpWidgets ) {
+ window.location = '<?php echo esc_js( add_query_arg( array( 'autofocus[panel]' => 'widgets' ), admin_url( 'customize.php' ) ) ); ?>';
+ } else {
+ wpWidgets.save( widget, 0, 1, 1 );
+ }
+ } );
+ }
+ };
+ }
+ </script>
+ <?php
+ $connect_url = $this->get_connect_url();
+ if ( is_wp_error( $connect_url ) ) {
+ echo '<p>' . esc_html__( 'Instagram is currently experiencing connectivity issues, please try again later to connect.', 'jetpack' ) . '</p>';
+ return;
+ }
+ ?>
+ <p style="text-align:center"><button class="button-primary" onclick="openWindow(this); return false;" data-widgetid="<?php echo esc_attr( $this->number ); ?>" data-connecturl="<?php echo esc_attr( $connect_url ); ?>"><?php echo esc_html( __( 'Connect Instagram Account', 'jetpack' ) ); ?></button></p>
+
+ <?php // Include hidden fields for the widget settings before a connection is made, otherwise the default settings are lost after connecting. ?>
+ <input type="hidden" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" />
+ <input type="hidden" id="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'count' ) ); ?>" value="<?php echo esc_attr( $instance['count'] ); ?>" />
+ <input type="hidden" id="<?php echo esc_attr( $this->get_field_id( 'columns' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'columns' ) ); ?>" value="<?php echo esc_attr( $instance['columns'] ); ?>" />
+
+ <?php
+ echo '<p><small>' . sprintf(
+ wp_kses(
+ /* translators: %s is a link to log in to Instagram */
+ __( 'Having trouble? Try <a href="%s" target="_blank" rel="noopener noreferrer">logging into the correct account</a> on Instagram.com first.', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'target' => array(),
+ 'rel' => array(),
+ ),
+ )
+ ),
+ 'https://instagram.com/accounts/login/'
+ ) . '</small></p>';
+ return;
+ }
+
+ // Connected account.
+ $page = ( is_customize_preview() ) ? 'customize.php' : 'widgets.php';
+
+ $query_args = array(
+ 'instagram_widget_id' => $this->number,
+ 'instagram_widget' => 'remove_token',
+ 'nonce' => wp_create_nonce( 'instagram-widget-remove-token-' . $this->number . '-' . $instance['token_id'] ),
+ );
+
+ if ( is_customize_preview() ) {
+ $query_args['autofocus[panel]'] = 'widgets';
+ }
+
+ $remove_token_id_url = add_query_arg( $query_args, admin_url( $page ) );
+
+ $data = $this->get_data( $instance );
+ // TODO: Revisit the error handling. I think we should be using WP_Error here and
+ // Jetpack::Client is the legacy check.
+ if ( is_wp_error( $data ) || 'ERROR' === $instance['is_legacy_token'] ) {
+ echo '<p>' . esc_html__( 'Instagram is currently experiencing connectivity issues, please try again later to connect.', 'jetpack' ) . '</p>';
+ return;
+ }
+ echo '<p>';
+ echo sprintf(
+ wp_kses(
+ /* translators: %1$s is the URL of the connected Instagram account, %2$s is the username of the connected Instagram account, %3$s is the URL to disconnect the account. */
+ __( '<strong>Connected Instagram Account</strong><br /> <a target="_blank" rel="noopener noreferrer" href="%1$s">%2$s</a> | <a href="%3$s">remove</a>', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'rel' => array(),
+ 'target' => array(),
+ ),
+ 'strong' => array(),
+ 'br' => array(),
+ )
+ ),
+ esc_url( 'https://instagram.com/' . $data['external_name'] ),
+ esc_html( $data['external_name'] ),
+ esc_url( $remove_token_id_url )
+ );
+ echo '</p>';
+
+ // Title.
+ echo '<p><label><strong>' . esc_html__( 'Widget Title', 'jetpack' ) . '</strong> <input type="text" id="' . esc_attr( $this->get_field_id( 'title' ) ) . '" name="' . esc_attr( $this->get_field_name( 'title' ) ) . '" value="' . esc_attr( $instance['title'] ) . '" class="widefat" /></label></p>';
+
+ // Number of images to show.
+ echo '<p><label>';
+ echo '<strong>' . esc_html__( 'Images', 'jetpack' ) . '</strong><br />';
+ echo esc_html__( 'Number to display:', 'jetpack' ) . ' ';
+ echo '<select name="' . esc_attr( $this->get_field_name( 'count' ) ) . '">';
+ for ( $i = 1; $i <= $this->valid_options['max_count']; $i++ ) {
+ echo '<option value="' . esc_attr( $i ) . '"' . selected( $i, $instance['count'], false ) . '>' . esc_attr( $i ) . '</option>';
+ }
+ echo '</select>';
+ echo '</label></p>';
+
+ // Columns.
+ echo '<p><label>';
+ echo '<strong>' . esc_html__( 'Layout', 'jetpack' ) . '</strong><br />';
+ echo esc_html__( 'Number of columns:', 'jetpack' ) . ' ';
+ echo '<select name="' . esc_attr( $this->get_field_name( 'columns' ) ) . '">';
+ for ( $i = 1; $i <= $this->valid_options['max_columns']; $i++ ) {
+ echo '<option value="' . esc_attr( $i ) . '"' . selected( $i, $instance['columns'], false ) . '>' . esc_attr( $i ) . '</option>';
+ }
+ echo '</select>';
+ echo '</label></p>';
+
+ echo '<p><small>' . esc_html__( 'New images may take up to 15 minutes to show up on your site.', 'jetpack' ) . '</small></p>';
+ }
+
+ /**
+ * Validates and sanitizes the user-supplied widget options.
+ *
+ * @param array $new_instance The user-supplied values.
+ * @param array $old_instance The existing widget options.
+ * @return array A validated and sanitized version of $new_instance.
+ */
+ public function update( $new_instance, $old_instance ) {
+ $instance = $this->defaults;
+
+ if ( ! empty( $old_instance['token_id'] ) ) {
+ $instance['token_id'] = $old_instance['token_id'];
+ }
+
+ if ( isset( $new_instance['title'] ) ) {
+ $instance['title'] = wp_strip_all_tags( $new_instance['title'] );
+ }
+
+ if ( isset( $new_instance['columns'] ) ) {
+ $instance['columns'] = max( 1, min( $this->valid_options['max_columns'], (int) $new_instance['columns'] ) );
+ }
+
+ if ( isset( $new_instance['count'] ) ) {
+ $instance['count'] = max( 1, min( $this->valid_options['max_count'], (int) $new_instance['count'] ) );
+ }
+
+ return $instance;
+ }
+}
+
+add_action(
+ 'widgets_init',
+ function () {
+ if ( Jetpack::is_connection_ready() ) {
+ register_widget( 'Jetpack_Instagram_Widget' );
+ }
+ }
+);
+
diff --git a/plugins/jetpack/modules/widgets/contact-info.php b/plugins/jetpack/modules/widgets/contact-info.php
index 761c7b02..de9afc9d 100644
--- a/plugins/jetpack/modules/widgets/contact-info.php
+++ b/plugins/jetpack/modules/widgets/contact-info.php
@@ -1,6 +1,7 @@
<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
@@ -30,6 +31,7 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
'classname' => 'widget_contact_info',
'description' => __( 'Display a map with your location, hours, and contact information.', 'jetpack' ),
'customize_selective_refresh' => true,
+ 'show_instance_in_rest' => true,
);
parent::__construct(
'widget_contact_info',
@@ -46,6 +48,18 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
}
add_action( 'wp_ajax_customize-contact-info-api-key', array( $this, 'ajax_check_api_key' ) );
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
+ }
+
+ /**
+ * Remove the "Contact info and Map" widget from the Legacy Widget block
+ *
+ * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
+ * @return array $widget_types New list of widgets that will be removed.
+ */
+ public function hide_widget_in_block_editor( $widget_types ) {
+ $widget_types[] = 'widget_contact_info';
+ return $widget_types;
}
/**
@@ -60,7 +74,6 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
);
}
-
/**
* Return an associative array of default values
*
@@ -95,7 +108,7 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( '' !== $instance['title'] ) {
- echo $args['before_title'] . esc_html( $instance['title'] ) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $args['before_title'] . $instance['title'] . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -179,7 +192,6 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
do_action( 'jetpack_stats_extra', 'widget_view', 'contact_info' );
}
-
/**
* Deals with the settings when they are saved by the admin. Here is
* where any validation should be dealt with.
@@ -202,7 +214,7 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
if ( ! isset( $new_instance['showmap'] ) ) {
$instance['showmap'] = 0;
} else {
- $instance['showmap'] = intval( $new_instance['showmap'] );
+ $instance['showmap'] = (int) $new_instance['showmap'];
}
$instance['goodmap'] = $this->update_goodmap( $old_instance, $instance );
@@ -210,7 +222,6 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
return $instance;
}
-
/**
* Displays the form for this widget on the Widgets page of the WP Admin area.
*
@@ -252,11 +263,15 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'address' ) ); ?>"><?php esc_html_e( 'Address:', 'jetpack' ); ?></label>
<textarea class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'address' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'address' ) ); ?>"><?php echo esc_textarea( $instance['address'] ); ?></textarea>
+ </p>
+ <p>
<input class="jp-contact-info-showmap" id="<?php echo esc_attr( $this->get_field_id( 'showmap' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'showmap' ) ); ?>" value="1" type="checkbox" <?php checked( $instance['showmap'], 1 ); ?> />
<label for="<?php echo esc_attr( $this->get_field_id( 'showmap' ) ); ?>"><?php esc_html_e( 'Show map', 'jetpack' ); ?></label>
</p>
+ <?php if ( ! has_filter( 'jetpack_google_maps_api_key' ) || false === apply_filters( 'jetpack_google_maps_api_key', false ) ) { ?>
+
<p class="jp-contact-info-admin-map" style="<?php echo $instance['showmap'] ? '' : 'display: none;'; ?>">
<label for="<?php echo esc_attr( $this->get_field_id( 'apikey' ) ); ?>">
<?php esc_html_e( 'Google Maps API Key', 'jetpack' ); ?>
@@ -274,20 +289,26 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
),
)
),
- 'https://jetpack.com/support/extra-sidebar-widgets/contact-info-widget/'
+ ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ? 'https://wordpress.com/support/widgets/contact-info/' : esc_url( Redirect::get_url( 'jetpack-support-extra-sidebar-widgets-contact-info-widget' ) )
);
?>
</small>
</label>
</p>
+ <?php } else { ?>
+
+ <input type="hidden" id="<?php echo esc_attr( $this->get_field_id( 'apikey' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'apikey' ) ); ?>" value="<?php echo esc_attr( $apikey ); ?>" />
+
+ <?php } // end if jetpack_google_maps_api_key check. ?>
+
<p class="jp-contact-info-admin-map jp-contact-info-embed-map" style="<?php echo $instance['showmap'] ? '' : 'display: none;'; ?>">
<?php
if ( ! is_customize_preview() && true === $instance['goodmap'] ) {
echo $this->build_map( $instance['address'], $apikey ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} elseif ( true !== $instance['goodmap'] && ! empty( $instance['goodmap'] ) ) {
printf(
- '<span class="notice notice-warning" style="display: block;">%s</span>',
+ '<span class="button-link-delete">%s</span>',
esc_html( $instance['goodmap'] )
);
}
@@ -312,7 +333,6 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
<?php
}
-
/**
* Generate a Google Maps link for the supplied address.
*
@@ -325,7 +345,6 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
return 'https://maps.google.com/maps?z=16&q=' . $this->urlencode_address( $address );
}
-
/**
* Builds map display HTML code from the supplied address.
*
@@ -344,9 +363,10 @@ if ( ! class_exists( 'Jetpack_Contact_Info_Widget' ) ) {
$height = 216;
$iframe_attributes = sprintf(
- ' height="%d" frameborder="0" src="%s" class="contact-map"',
+ ' height="%d" frameborder="0" src="%s" title="%s" class="contact-map"',
esc_attr( $height ),
- esc_url( $src )
+ esc_url( $src ),
+ __( 'Google Map Embed', 'jetpack' )
);
$iframe_html = sprintf( '<iframe width="600" %s></iframe>', $iframe_attributes );
diff --git a/plugins/jetpack/modules/widgets/contact-info/contact-info-admin.js b/plugins/jetpack/modules/widgets/contact-info/contact-info-admin.js
index 9d3d9d46..ee0c9b55 100644
--- a/plugins/jetpack/modules/widgets/contact-info/contact-info-admin.js
+++ b/plugins/jetpack/modules/widgets/contact-info/contact-info-admin.js
@@ -1,17 +1,14 @@
/* global ajaxurl, contact_info_api_key_ajax_obj */
-( function( $ ) {
- $( document ).on( 'change', '.jp-contact-info-showmap', function() {
+( function ( $ ) {
+ $( document ).on( 'change', '.jp-contact-info-showmap', function () {
var $checkbox = $( this ),
isChecked = $checkbox.is( ':checked' );
- $checkbox
- .closest( '.widget' )
- .find( '.jp-contact-info-admin-map' )
- .toggle( isChecked );
+ $checkbox.closest( '.widget' ).find( '.jp-contact-info-admin-map' ).toggle( isChecked );
} );
- $( document ).on( 'widget-synced', function( event, widgetContainer ) {
+ $( document ).on( 'widget-synced', function ( event, widgetContainer ) {
// This event fires for all widgets, so restrict this to Contact Info widgets and the API key input.
if (
! widgetContainer.is( '[id*="widget_contact_info"]' ) ||
@@ -31,7 +28,7 @@
action: 'customize-contact-info-api-key',
apikey: $apikey_input.val(),
},
- function( data ) {
+ function ( data ) {
var $map_element = $apikey_input
.closest( '.jp-contact-info-admin-map' )
.parent()
diff --git a/plugins/jetpack/modules/widgets/contact-info/contact-info-map.css b/plugins/jetpack/modules/widgets/contact-info/contact-info-map.css
index b64d2caa..0d2c3f4a 100644
--- a/plugins/jetpack/modules/widgets/contact-info/contact-info-map.css
+++ b/plugins/jetpack/modules/widgets/contact-info/contact-info-map.css
@@ -4,10 +4,10 @@
}
.contact-map-api-error {
- border-left-color: #ffb900;
+ border-left-color: #dba617;
border-left-style: solid;
border-left-width: 4px;
box-shadow: 0 1px 1px 0 rgba(0,0,0,.1);
margin: 5px 0 15px;
padding: 1px 12px;
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/widgets/customizer-utils.js b/plugins/jetpack/modules/widgets/customizer-utils.js
index 754b6339..abcf7899 100644
--- a/plugins/jetpack/modules/widgets/customizer-utils.js
+++ b/plugins/jetpack/modules/widgets/customizer-utils.js
@@ -8,7 +8,7 @@
* Checks whether this Customizer supports partial widget refresh.
* @returns {boolean}
*/
-wp.customizerHasPartialWidgetRefresh = function() {
+wp.customizerHasPartialWidgetRefresh = function () {
return (
'object' === typeof wp &&
'function' === typeof wp.customize &&
@@ -24,18 +24,18 @@ wp.customizerHasPartialWidgetRefresh = function() {
* @param {string} widgetName
* @returns {*|boolean}
*/
-wp.isJetpackWidgetPlaced = function( placement, widgetName ) {
+wp.isJetpackWidgetPlaced = function ( placement, widgetName ) {
return placement.partial.widgetId && 0 === placement.partial.widgetId.indexOf( widgetName );
};
/**
* Bind events for selective refresh in Customizer.
*/
-( function( $ ) {
- $( document ).ready( function() {
+( function ( $ ) {
+ $( document ).ready( function () {
if ( wp && wp.customize && wp.customizerHasPartialWidgetRefresh() ) {
// Refresh widget contents when a partial is rendered.
- wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function( placement ) {
+ wp.customize.selectiveRefresh.bind( 'partial-content-rendered', function ( placement ) {
if ( placement.container ) {
// Refresh Google+
if (
@@ -54,12 +54,12 @@ wp.isJetpackWidgetPlaced = function( placement, widgetName ) {
'object' === typeof FB.XFBML &&
'function' === typeof FB.XFBML.parse
) {
- FB.XFBML.parse( placement.container[ 0 ], function() {
+ FB.XFBML.parse( placement.container[ 0 ], function () {
var $fbContainer = $( placement.container[ 0 ] ).find( '.fb_iframe_widget' ),
fbWidth = $fbContainer.data( 'width' ),
fbHeight = $fbContainer.data( 'height' );
$fbContainer.find( 'span' ).css( { width: fbWidth, height: fbHeight } );
- setTimeout( function() {
+ setTimeout( function () {
$fbContainer
.find( 'iframe' )
.css( { width: fbWidth, height: fbHeight, position: 'relative' } );
@@ -100,7 +100,7 @@ wp.isJetpackWidgetPlaced = function( placement, widgetName ) {
} );
// Refresh widgets when they're moved.
- wp.customize.selectiveRefresh.bind( 'partial-content-moved', function( placement ) {
+ wp.customize.selectiveRefresh.bind( 'partial-content-moved', function ( placement ) {
if ( placement.container ) {
// Refresh Twitter timeline iframe, since it has to be re-built.
if (
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law.php b/plugins/jetpack/modules/widgets/eu-cookie-law.php
index 27ffa9a3..fffc9724 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law.php
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law.php
@@ -98,17 +98,20 @@ if ( ! class_exists( 'Jetpack_EU_Cookie_Law_Widget' ) ) {
* Enqueue scripts and styles.
*/
function enqueue_frontend_scripts() {
- wp_enqueue_style( 'eu-cookie-law-style', plugins_url( 'eu-cookie-law/style.css', __FILE__ ), array(), '20170403' );
- wp_enqueue_script(
- 'eu-cookie-law-script',
- Assets::get_file_url_for_environment(
- '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js',
- 'modules/widgets/eu-cookie-law/eu-cookie-law.js'
- ),
- array( 'jquery' ),
- '20180522',
- true
- );
+ wp_enqueue_style( 'eu-cookie-law-style', plugins_url( 'eu-cookie-law/style.css', __FILE__ ), array(), JETPACK__VERSION );
+
+ if ( ! class_exists( 'Jetpack_AMP_Support' ) || ! Jetpack_AMP_Support::is_amp_request() ) {
+ wp_enqueue_script(
+ 'eu-cookie-law-script',
+ Assets::get_file_url_for_environment(
+ '_inc/build/widgets/eu-cookie-law/eu-cookie-law.min.js',
+ 'modules/widgets/eu-cookie-law/eu-cookie-law.js'
+ ),
+ array(),
+ '20180522',
+ true
+ );
+ }
}
/**
@@ -156,6 +159,11 @@ if ( ! class_exists( 'Jetpack_EU_Cookie_Law_Widget' ) ) {
$instance = wp_parse_args( $instance, $this->defaults() );
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ require dirname( __FILE__ ) . '/eu-cookie-law/widget-amp.php';
+ return;
+ }
+
$classes = array();
$classes['hide'] = 'hide-on-' . esc_attr( $instance['hide'] );
if ( 'negative' === $instance['color-scheme'] ) {
@@ -171,9 +179,27 @@ if ( ! class_exists( 'Jetpack_EU_Cookie_Law_Widget' ) ) {
$classes['hide'] = 'hide-on-button';
}
+ /**
+ * Check if widget is loaded in widgets.php.
+ *
+ * @return string widget Static version of the widget for better preview.
+ */
+ global $pagenow;
+ if ( 'widgets.php' === $pagenow ) {
+ // To prevent the widget from being added as a pop-up
+ // we do not echo the before and after $args. Instead we wrap
+ // it in a dummy `div` and return before the `widget_view` is
+ // added to stats.
+ echo '<div id="eu-cookie-law" style="padding: 0;margin: 5px">';
+ require_once __DIR__ . '/eu-cookie-law/widget.php';
+ echo '</div>';
+ return;
+ }
+
echo $args['before_widget'];
- require( dirname( __FILE__ ) . '/eu-cookie-law/widget.php' );
+ require_once __DIR__ . '/eu-cookie-law/widget.php';
echo $args['after_widget'];
+
/** This action is already documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'eu_cookie_law' );
}
@@ -221,12 +247,12 @@ if ( ! class_exists( 'Jetpack_EU_Cookie_Law_Widget' ) ) {
if ( isset( $new_instance['hide-timeout'] ) ) {
// Time can be a value between 3 and 1000 seconds.
- $instance['hide-timeout'] = min( 1000, max( 3, intval( $new_instance['hide-timeout'] ) ) );
+ $instance['hide-timeout'] = min( 1000, max( 3, (int) $new_instance['hide-timeout'] ) );
}
if ( isset( $new_instance['consent-expiration'] ) ) {
// Time can be a value between 1 and 365 days.
- $instance['consent-expiration'] = min( 365, max( 1, intval( $new_instance['consent-expiration'] ) ) );
+ $instance['consent-expiration'] = min( 365, max( 1, (int) $new_instance['consent-expiration'] ) );
}
if ( isset( $new_instance['customtext'] ) ) {
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law-admin.js b/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law-admin.js
index 6d3dd42e..17e17ea4 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law-admin.js
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law-admin.js
@@ -1,10 +1,10 @@
/* eslint no-var: 0 */
-( function( $ ) {
+( function ( $ ) {
var $document = $( document );
- $document.on( 'ready', function() {
- var maybeShowNotice = function( e, policyUrl ) {
+ $document.on( 'ready', function () {
+ var maybeShowNotice = function ( e, policyUrl ) {
var $policyUrl = $( policyUrl || this ).closest( '.eu-cookie-law-widget-policy-url' );
if ( $policyUrl.find( 'input[type="radio"][value="default"]' ).is( ':checked' ) ) {
@@ -21,9 +21,9 @@
'.eu-cookie-law-widget-policy-url input[type="radio"]',
maybeShowNotice
);
- $document.on( 'widget-updated widget-added', function( e, widget ) {
+ $document.on( 'widget-updated widget-added', function ( e, widget ) {
var widgetId = $( widget ).attr( 'id' );
- if ( widgetId.indexOf( 'eu_cookie_law_widget' ) !== -1 ) {
+ if ( widgetId && widgetId.indexOf( 'eu_cookie_law_widget' ) !== -1 ) {
maybeShowNotice( null, $( '#' + widgetId + ' .eu-cookie-law-widget-policy-url' ) );
}
} );
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law.js b/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law.js
index 7989ee69..3fc02533 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law.js
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/eu-cookie-law.js
@@ -1,44 +1,57 @@
-( function( $ ) {
+( function () {
var cookieValue = document.cookie.replace(
/(?:(?:^|.*;\s*)eucookielaw\s*\=\s*([^;]*).*$)|^.*$/,
'$1'
),
- overlay = $( '#eu-cookie-law' ),
+ overlay = document.getElementById( 'eu-cookie-law' ),
+ widget = document.querySelector( '.widget_eu_cookie_law_widget' ),
+ inCustomizer = widget && widget.hasAttribute( 'data-customize-widget-id' ),
+ getScrollTop,
initialScrollPosition,
scrollFunction;
- if ( overlay.hasClass( 'top' ) ) {
- $( '.widget_eu_cookie_law_widget' ).addClass( 'top' );
+ if ( null === widget || null === overlay ) {
+ return;
}
- if ( overlay.hasClass( 'ads-active' ) ) {
+ /**
+ * Gets the amount that the window is scrolled.
+ *
+ * @return int The distance from the top of the document.
+ */
+ getScrollTop = function () {
+ return Math.abs( document.body.getBoundingClientRect().y );
+ };
+
+ if ( overlay.classList.contains( 'top' ) ) {
+ widget.classList.add( 'top' );
+ }
+
+ if ( overlay.classList.contains( 'ads-active' ) ) {
var adsCookieValue = document.cookie.replace(
/(?:(?:^|.*;\s*)personalized-ads-consent\s*\=\s*([^;]*).*$)|^.*$/,
'$1'
);
- if ( '' !== cookieValue && '' !== adsCookieValue ) {
- overlay.remove();
+ if ( '' !== cookieValue && '' !== adsCookieValue && ! inCustomizer ) {
+ overlay.parentNode.removeChild( overlay );
}
- } else if ( '' !== cookieValue ) {
- overlay.remove();
+ } else if ( '' !== cookieValue && ! inCustomizer ) {
+ overlay.parentNode.removeChild( overlay );
}
- $( '.widget_eu_cookie_law_widget' )
- .appendTo( 'body' )
- .fadeIn();
-
- overlay.find( 'form' ).on( 'submit', accept );
+ document.body.appendChild( widget );
+ overlay.querySelector( 'form' ).addEventListener( 'submit', accept );
- if ( overlay.hasClass( 'hide-on-scroll' ) ) {
- initialScrollPosition = $( window ).scrollTop();
- scrollFunction = function() {
- if ( Math.abs( $( window ).scrollTop() - initialScrollPosition ) > 50 ) {
+ if ( overlay.classList.contains( 'hide-on-scroll' ) ) {
+ initialScrollPosition = getScrollTop();
+ scrollFunction = function () {
+ if ( Math.abs( getScrollTop() - initialScrollPosition ) > 50 ) {
accept();
}
};
- $( window ).on( 'scroll', scrollFunction );
- } else if ( overlay.hasClass( 'hide-on-time' ) ) {
- setTimeout( accept, overlay.data( 'hide-timeout' ) * 1000 );
+ window.addEventListener( 'scroll', scrollFunction );
+ } else if ( overlay.classList.contains( 'hide-on-time' ) ) {
+ setTimeout( accept, overlay.getAttribute( 'data-hide-timeout' ) * 1000 );
}
var accepted = false;
@@ -52,18 +65,21 @@
event.preventDefault();
}
- if ( overlay.hasClass( 'hide-on-scroll' ) ) {
- $( window ).off( 'scroll', scrollFunction );
+ if ( overlay.classList.contains( 'hide-on-scroll' ) ) {
+ window.removeEventListener( 'scroll', scrollFunction );
}
var expireTime = new Date();
expireTime.setTime(
- expireTime.getTime() + overlay.data( 'consent-expiration' ) * 24 * 60 * 60 * 1000
+ expireTime.getTime() + overlay.getAttribute( 'data-consent-expiration' ) * 24 * 60 * 60 * 1000
);
document.cookie =
'eucookielaw=' + expireTime.getTime() + ';path=/;expires=' + expireTime.toGMTString();
- if ( overlay.hasClass( 'ads-active' ) && overlay.hasClass( 'hide-on-button' ) ) {
+ if (
+ overlay.classList.contains( 'ads-active' ) &&
+ overlay.classList.contains( 'hide-on-button' )
+ ) {
document.cookie =
'personalized-ads-consent=' +
expireTime.getTime() +
@@ -71,10 +87,11 @@
expireTime.toGMTString();
}
- overlay.fadeOut( 400, function() {
- overlay.remove();
+ overlay.classList.add( 'hide' );
+ setTimeout( function () {
+ overlay.parentNode.removeChild( overlay );
var widgetSection = document.querySelector( '.widget.widget_eu_cookie_law_widget' );
widgetSection.parentNode.removeChild( widgetSection );
- } );
+ }, 400 );
}
-} )( jQuery );
+} )();
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/form.php b/plugins/jetpack/modules/widgets/eu-cookie-law/form.php
index 7b00877b..d4f3bad2 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law/form.php
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/form.php
@@ -1,3 +1,8 @@
+<?php
+
+use Automattic\Jetpack\Redirect;
+
+?>
<p>
<strong>
<?php esc_html_e( 'Banner text', 'jetpack' ); ?>
@@ -81,7 +86,7 @@
<strong><?php esc_html_e( 'Caution:', 'jetpack' ); ?></strong>
<?php echo sprintf(
__( 'For GDPR compliance, please make sure your policy contains <a href="%s" target="_blank">privacy information relating to Jetpack Ads</a>.', 'jetpack' ),
- esc_url( 'https://jetpack.com/support/ads/#privacy' )
+ esc_url( Redirect::get_url( 'jetpack-support-ads', array( 'anchor' => 'privacy' ) ) )
); ?>
</span>
</span>
@@ -271,7 +276,7 @@
<p class="small">
<?php esc_html_e( 'It is your own responsibility to ensure that your site complies with the relevant laws.', 'jetpack' ); ?>
- <a href="https://jetpack.com/support/extra-sidebar-widgets/eu-cookie-law-widget/">
+ <a href="<?php echo esc_url( Redirect::get_url( 'jetpack-support-extra-sidebar-widgets-eu-cookie-law-widget' ) ); ?>">
<?php esc_html_e( 'Click here for more information', 'jetpack' ); ?>
</a>
</p>
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/style.css b/plugins/jetpack/modules/widgets/eu-cookie-law/style.css
index 07d5a9f6..f3fd9b04 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law/style.css
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/style.css
@@ -1,7 +1,7 @@
.widget_eu_cookie_law_widget {
+ animation: fadeIn 800ms;
border: none;
bottom: 1em;
- display: none;
left: 1em;
margin: 0;
padding: 0;
@@ -11,6 +11,11 @@
z-index: 50001;
}
+@keyframes fadeIn {
+ from { opacity: 0; visibility: hidden; }
+ to { opacity: 1; visibility: visible; }
+}
+
.widget_eu_cookie_law_widget.widget.top {
bottom: auto;
top: 1em;
@@ -20,6 +25,16 @@
top: 3em;
}
+amp-consent.widget_eu_cookie_law_widget.widget.top {
+ top: 1em;
+ margin: 0;
+}
+
+.admin-bar amp-consent.widget_eu_cookie_law_widget.widget.top {
+ top: 0;
+ margin-top: 3em;
+}
+
#eu-cookie-law {
background-color: #fff;
border: 1px solid #dedede;
@@ -50,6 +65,12 @@
color: #fff;
}
+#eu-cookie-law.hide {
+ opacity: 0;
+ visibility: hidden;
+ transition: opacity 400ms, visibility 400ms;
+}
+
/**
* Using a highly-specific rule to make sure that certain form styles
* will be reset
@@ -103,3 +124,11 @@
right: 8px;
}
}
+
+/**
+ * Tweak position of the Customizer edit button to make it more obvious this
+ * is an editable widget rather than a normal accept cookies banner.
+ */
+.widget_eu_cookie_law_widget .customize-partial-edit-shortcut > button {
+ left: 0;
+}
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/widget-amp.php b/plugins/jetpack/modules/widgets/eu-cookie-law/widget-amp.php
new file mode 100644
index 00000000..50a00d66
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/widget-amp.php
@@ -0,0 +1,38 @@
+<?php // phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+/**
+ * AMP Widget for Cookies and Consent.
+ *
+ * @package automattic/jetpack
+ */
+?>
+
+<amp-consent id="eu-cookie-consent" layout="nodisplay" class="widget widget_eu_cookie_law_widget<?php echo esc_attr( ! empty( $instance['position'] ) && 'top' === $instance['position'] ? ' top' : '' ); ?>">
+ <script type="application/json">
+ {
+ "consentInstanceId": "eu-cookie-consent",
+ "consentRequired": true,
+ "promptUI": "eu-cookie-consent-prompt"
+ }
+ </script>
+ <div class="popupOverlay" id="eu-cookie-consent-prompt">
+ <div class="consentPopup<?php echo esc_attr( ! empty( $instance['color-scheme'] ) && 'negative' === $instance['color-scheme'] ? ' negative' : '' ); ?>" id="eu-cookie-law">
+ <form>
+ <input type="button" on="tap:eu-cookie-consent.accept" class="accept" value="<?php echo esc_attr( $instance['button'] ); ?>" />
+ </form>
+ <?php
+ if ( 'default' === $instance['text'] || empty( $instance['customtext'] ) ) {
+ echo wp_kses_post( nl2br( $instance['default-text'] ) );
+ } else {
+ echo esc_html( $instance['customtext'] );
+ }
+
+ $is_default_policy = 'default' === $instance['policy-url'] || empty( $instance['custom-policy-url'] );
+ $policy_link_url = $is_default_policy ? $instance['default-policy-url'] : $instance['custom-policy-url'];
+ $policy_link_rel = $is_default_policy ? 'nofollow' : '';
+ ?>
+ <a href="<?php echo esc_url( $policy_link_url ); ?>" rel="<?php echo esc_attr( $policy_link_rel ); ?>">
+ <?php echo esc_html( $instance['policy-link-text'] ); ?>
+ </a>
+ </div>
+ </div>
+</amp-consent>
diff --git a/plugins/jetpack/modules/widgets/eu-cookie-law/widget.php b/plugins/jetpack/modules/widgets/eu-cookie-law/widget.php
index cd016a3e..ef540452 100644
--- a/plugins/jetpack/modules/widgets/eu-cookie-law/widget.php
+++ b/plugins/jetpack/modules/widgets/eu-cookie-law/widget.php
@@ -1,7 +1,15 @@
+<?php // phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+/**
+ * Widget for Cookies and Consent.
+ *
+ * @package automattic/jetpack
+ */
+?>
+
<div
class="<?php echo implode( ' ', $classes ); ?>"
- data-hide-timeout="<?php echo intval( $instance['hide-timeout'] ); ?>"
- data-consent-expiration="<?php echo intval( $instance['consent-expiration'] ); ?>"
+ data-hide-timeout="<?php echo (int) $instance['hide-timeout']; ?>"
+ data-consent-expiration="<?php echo (int) $instance['consent-expiration']; ?>"
id="eu-cookie-law"
>
<form method="post">
@@ -14,12 +22,12 @@
echo nl2br( esc_html( $instance['customtext'] ) );
} ?>
- <a href="<?php
- $policy_link_text = 'default' === $instance['policy-url'] || empty( $instance['custom-policy-url'] )
- ? $instance['default-policy-url']
- : $instance['custom-policy-url'];
- echo esc_url( $policy_link_text );
- ?>" >
+ <?php
+ $is_default_policy = 'default' === $instance['policy-url'] || empty( $instance['custom-policy-url'] );
+ $policy_link_url = $is_default_policy ? $instance['default-policy-url'] : $instance['custom-policy-url'];
+ $policy_link_rel = $is_default_policy ? 'nofollow' : '';
+ ?>
+ <a href="<?php echo esc_url( $policy_link_url ); ?>" rel="<?php echo esc_attr( $policy_link_rel ); ?>">
<?php echo esc_html( $instance['policy-link-text'] ); ?>
</a>
</div>
diff --git a/plugins/jetpack/modules/widgets/facebook-likebox.php b/plugins/jetpack/modules/widgets/facebook-likebox.php
index cb392b98..c7e38e64 100644
--- a/plugins/jetpack/modules/widgets/facebook-likebox.php
+++ b/plugins/jetpack/modules/widgets/facebook-likebox.php
@@ -57,16 +57,41 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
wp_style_add_data( 'jetpack_facebook_likebox', 'jetpack-inline', true );
}
- function widget( $args, $instance ) {
- extract( $args );
-
- $like_args = $this->normalize_facebook_args( $instance['like_args'] );
+ /**
+ * Display the widget.
+ *
+ * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
+ * @param array $instance The settings for the particular instance of the widget.
+ */
+ public function widget( $args, $instance ) {
+ $before_widget = isset( $args['before_widget'] ) ? $args['before_widget'] : '';
+ $before_title = isset( $args['before_title'] ) ? $args['before_title'] : '';
+ $after_title = isset( $args['after_title'] ) ? $args['after_title'] : '';
+ $after_widget = isset( $args['after_widget'] ) ? $args['after_widget'] : '';
+ $like_args = $this->get_default_args();
+
+ if ( isset( $instance['like_args'] ) ) {
+ $like_args = $this->normalize_facebook_args( $instance['like_args'] );
+ }
if ( empty( $like_args['href'] ) || ! $this->is_valid_facebook_url( $like_args['href'] ) ) {
if ( current_user_can( 'edit_theme_options' ) ) {
- echo $before_widget;
- echo '<p>' . sprintf( __( 'It looks like your Facebook URL is incorrectly configured. Please check it in your <a href="%s">widget settings</a>.', 'jetpack' ), admin_url( 'widgets.php' ) ) . '</p>';
- echo $after_widget;
+ echo $before_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ $error_link = wp_kses(
+ sprintf(
+ /* translators: %s: link to widgets administration screen. */
+ __( 'It looks like your Facebook URL is incorrectly configured. Please check it in your <a href="%1$s">widget settings</a>.', 'jetpack' ),
+ esc_url( admin_url( 'widgets.php' ) )
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ );
+ printf(
+ '<p>%s</p>',
+ $error_link // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ );
+
+ echo $after_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '<!-- Invalid Facebook Page URL -->';
return;
@@ -76,17 +101,28 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
$title = apply_filters( 'widget_title', $instance['title'] );
$page_url = set_url_scheme( $like_args['href'], 'https' );
- $like_args['show_faces'] = (bool) $like_args['show_faces'] ? 'true' : 'false';
- $like_args['stream'] = (bool) $like_args['stream'] ? 'timeline' : 'false';
- $like_args['cover'] = (bool) $like_args['cover'] ? 'false' : 'true';
+ $like_args['show_faces'] = (bool) $like_args['show_faces'] ? 'true' : 'false';
+ $like_args['stream'] = (bool) $like_args['stream'] ? 'timeline' : 'false';
+ $like_args['cover'] = (bool) $like_args['cover'] ? 'false' : 'true';
+ $like_args['small_header'] = (bool) $like_args['small_header'] ? 'true' : 'false';
- echo $before_widget;
+ /**
+ * Filter Facebook Likebox's widget call to action button
+ *
+ * @module widgets
+ *
+ * @since 8.4.0
+ *
+ * @param bool True value hides the call to action button
+ */
+ $hide_cta = apply_filters( 'jetpack_facebook_likebox_hide_cta', false );
- if ( ! empty( $title ) ) :
- echo $before_title;
+ echo $before_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- $likebox_widget_title = '<a href="' . esc_url( $page_url ) . '">' . esc_html( $title ) . '</a>';
+ if ( ! empty( $title ) ) :
+ echo $before_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ $likebox_widget_title = '<a href="' . esc_url( $page_url ) . '">' . $title . '</a>';
/**
* Filter Facebook Likebox's widget title.
*
@@ -98,44 +134,51 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
* @param string $title Widget title as set in the widget settings.
* @param string $page_url Facebook Page URL.
*/
- echo apply_filters( 'jetpack_facebook_likebox_title', $likebox_widget_title, $title, $page_url );
+ $likebox_widget_title = apply_filters( 'jetpack_facebook_likebox_title', $likebox_widget_title, $title, $page_url );
+
+ echo wp_kses(
+ $likebox_widget_title,
+ array( 'a' => array( 'href' => array() ) )
+ );
- echo $after_title;
+ echo $after_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
endif;
?>
<div id="fb-root"></div>
- <div class="fb-page" data-href="<?php echo esc_url( $page_url ); ?>" data-width="<?php echo intval( $like_args['width'] ); ?>" data-height="<?php echo intval( $like_args['height'] ); ?>" data-hide-cover="<?php echo esc_attr( $like_args['cover'] ); ?>" data-show-facepile="<?php echo esc_attr( $like_args['show_faces'] ); ?>" data-tabs="<?php echo esc_attr( $like_args['stream'] ); ?>">
+ <div class="fb-page" data-href="<?php echo esc_url( $page_url ); ?>" data-width="<?php echo (int) $like_args['width']; ?>" data-height="<?php echo (int) $like_args['height']; ?>" data-hide-cover="<?php echo esc_attr( $like_args['cover'] ); ?>" data-show-facepile="<?php echo esc_attr( $like_args['show_faces'] ); ?>" data-tabs="<?php echo esc_attr( $like_args['stream'] ); ?>" data-hide-cta="<?php echo esc_attr( $hide_cta ? 'true' : 'false' ); ?>" data-small-header="<?php echo esc_attr( $like_args['small_header'] ); ?>">
<div class="fb-xfbml-parse-ignore"><blockquote cite="<?php echo esc_url( $page_url ); ?>"><a href="<?php echo esc_url( $page_url ); ?>"><?php echo esc_html( $title ); ?></a></blockquote></div>
</div>
<?php
wp_enqueue_script( 'jetpack-facebook-embed' );
- echo $after_widget;
+
+ echo $after_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'facebook-likebox' );
}
function update( $new_instance, $old_instance ) {
- $instance = array(
- 'title' => '',
- 'like_args' => $this->get_default_args(),
- );
+ $instance = array();
$instance['title'] = trim( strip_tags( stripslashes( $new_instance['title'] ) ) );
- // Set up widget values
+ // Set up widget values.
$instance['like_args'] = array(
- 'href' => trim( strip_tags( stripslashes( $new_instance['href'] ) ) ),
- 'width' => (int) $new_instance['width'],
- 'height' => (int) $new_instance['height'],
- 'show_faces' => isset( $new_instance['show_faces'] ),
- 'stream' => isset( $new_instance['stream'] ),
- 'cover' => isset( $new_instance['cover'] ),
+ 'href' => trim( strip_tags( stripslashes( $new_instance['href'] ) ) ),
+ 'width' => (int) $new_instance['width'],
+ 'height' => (int) $new_instance['height'],
+ 'show_faces' => isset( $new_instance['show_faces'] ),
+ 'stream' => isset( $new_instance['stream'] ),
+ 'cover' => isset( $new_instance['cover'] ),
+ 'small_header' => isset( $new_instance['small_header'] ),
);
$instance['like_args'] = $this->normalize_facebook_args( $instance['like_args'] );
+ // Include the new instance's args in the array's top level to support updating from the Widgets page.
+ $instance = array_merge( $instance, array_intersect_key( $instance['like_args'], $new_instance ) );
+
return $instance;
}
@@ -151,23 +194,23 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">
- <?php _e( 'Title', 'jetpack' ); ?>
+ <?php esc_html_e( 'Title', 'jetpack' ); ?>
<input type="text" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" value="<?php echo esc_attr( $instance['title'] ); ?>" class="widefat" />
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'href' ) ); ?>">
- <?php _e( 'Facebook Page URL', 'jetpack' ); ?>
+ <?php esc_html_e( 'Facebook Page URL', 'jetpack' ); ?>
<input type="text" name="<?php echo esc_attr( $this->get_field_name( 'href' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'href' ) ); ?>" value="<?php echo esc_url( $like_args['href'] ); ?>" class="widefat" />
<br />
- <small><?php _e( 'The widget only works with Facebook Pages.', 'jetpack' ); ?></small>
+ <small><?php esc_html_e( 'The widget only works with Facebook Pages.', 'jetpack' ); ?></small>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'width' ) ); ?>">
- <?php _e( 'Width in pixels', 'jetpack' ); ?>
+ <?php esc_html_e( 'Width in pixels', 'jetpack' ); ?>
<input type="number" class="smalltext" min="<?php echo esc_attr( $this->min_width ); ?>" max="<?php echo esc_attr( $this->max_width ); ?>" maxlength="3" name="<?php echo esc_attr( $this->get_field_name( 'width' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'width' ) ); ?>" value="<?php echo esc_attr( $like_args['width'] ); ?>" style="text-align: center;" />
<small><?php echo sprintf( __( 'Minimum: %s', 'jetpack' ), $this->min_width ); ?> / <?php echo sprintf( __( 'Maximum: %s', 'jetpack' ), $this->max_width ); ?></small>
</label>
@@ -175,7 +218,7 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'height' ) ); ?>">
- <?php _e( 'Height in pixels', 'jetpack' ); ?>
+ <?php esc_html_e( 'Height in pixels', 'jetpack' ); ?>
<input type="number" class="smalltext" min="<?php echo esc_attr( $this->min_height ); ?>" max="<?php echo esc_attr( $this->max_height ); ?>" maxlength="3" name="<?php echo esc_attr( $this->get_field_name( 'height' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'height' ) ); ?>" value="<?php echo esc_attr( $like_args['height'] ); ?>" style="text-align: center;" />
<small><?php echo sprintf( __( 'Minimum: %s', 'jetpack' ), $this->min_height ); ?> / <?php echo sprintf( __( 'Maximum: %s', 'jetpack' ), $this->max_height ); ?></small>
</label>
@@ -184,25 +227,33 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'show_faces' ) ); ?>">
<input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'show_faces' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'show_faces' ) ); ?>" <?php checked( $like_args['show_faces'] ); ?> />
- <?php _e( 'Show Faces', 'jetpack' ); ?>
+ <?php esc_html_e( 'Show Faces', 'jetpack' ); ?>
<br />
- <small><?php _e( 'Show profile photos in the plugin.', 'jetpack' ); ?></small>
+ <small><?php esc_html_e( 'Show profile photos in the plugin.', 'jetpack' ); ?></small>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'stream' ) ); ?>">
<input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'stream' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'stream' ) ); ?>" <?php checked( $like_args['stream'] ); ?> />
- <?php _e( 'Show Timeline', 'jetpack' ); ?>
+ <?php esc_html_e( 'Show Timeline', 'jetpack' ); ?>
<br />
- <small><?php _e( 'Show Page Posts.', 'jetpack' ); ?></small>
+ <small><?php esc_html_e( 'Show Page Posts.', 'jetpack' ); ?></small>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'cover' ) ); ?>">
<input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'cover' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'cover' ) ); ?>" <?php checked( $like_args['cover'] ); ?> />
- <?php _e( 'Show Cover Photo', 'jetpack' ); ?>
+ <?php esc_html_e( 'Show Cover Photo', 'jetpack' ); ?>
+ <br />
+ </label>
+ </p>
+
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'small_header' ) ); ?>">
+ <input type="checkbox" name="<?php echo esc_attr( $this->get_field_name( 'small_header' ) ); ?>" id="<?php echo esc_attr( $this->get_field_id( 'small_header' ) ); ?>" <?php checked( $like_args['small_header'] ); ?> />
+ <?php esc_html_e( 'Use Small Header', 'jetpack' ); ?>
<br />
</label>
</p>
@@ -212,12 +263,13 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
function get_default_args() {
$defaults = array(
- 'href' => '',
- 'width' => $this->default_width,
- 'height' => $this->default_height,
- 'show_faces' => 'true',
- 'stream' => '',
- 'cover' => 'true',
+ 'href' => '',
+ 'width' => $this->default_width,
+ 'height' => $this->default_height,
+ 'show_faces' => 'true',
+ 'stream' => '',
+ 'cover' => 'true',
+ 'small_header' => '',
);
/**
@@ -243,11 +295,12 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
$args['href'] = '';
}
- $args['width'] = $this->normalize_int_value( (int) $args['width'], $this->default_width, $this->max_width, $this->min_width );
- $args['height'] = $this->normalize_int_value( (int) $args['height'], $this->default_height, $this->max_height, $this->min_height );
- $args['show_faces'] = (bool) $args['show_faces'];
- $args['stream'] = (bool) $args['stream'];
- $args['cover'] = (bool) $args['cover'];
+ $args['width'] = $this->normalize_int_value( (int) $args['width'], $this->default_width, $this->max_width, $this->min_width );
+ $args['height'] = $this->normalize_int_value( (int) $args['height'], $this->default_height, $this->max_height, $this->min_height );
+ $args['show_faces'] = (bool) $args['show_faces'];
+ $args['stream'] = (bool) $args['stream'];
+ $args['cover'] = (bool) $args['cover'];
+ $args['small_header'] = (bool) $args['small_header'];
// The height used to be dependent on other widget settings
// If the user changes those settings but doesn't customize the height,
@@ -290,20 +343,4 @@ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget {
return $value;
}
-
- /**
- * @deprecated
- */
- function guess_locale_from_lang( $lang ) {
- _deprecated_function( __METHOD__, '4.0.0', 'Jetpack::guess_locale_from_lang()' );
- Jetpack::$instance->guess_locale_from_lang( $lang );
- }
-
- /**
- * @deprecated
- */
- function get_locale() {
- _deprecated_function( __METHOD__, '4.0.0', 'Jetpack::get_locale()' );
- Jetpack::$instance->get_locale();
- }
}
diff --git a/plugins/jetpack/modules/widgets/flickr.php b/plugins/jetpack/modules/widgets/flickr.php
index 20b32dd2..9fb80962 100644
--- a/plugins/jetpack/modules/widgets/flickr.php
+++ b/plugins/jetpack/modules/widgets/flickr.php
@@ -156,7 +156,7 @@ if ( ! class_exists( 'Jetpack_Flickr_Widget' ) ) {
);
}
} else {
- echo $args['before_title'] . esc_html( $instance['title'] ) . $args['after_title'];
+ echo $args['before_title'] . $instance['title'] . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
require( dirname( __FILE__ ) . '/flickr/widget.php' );
}
echo $args['after_widget'];
@@ -190,7 +190,7 @@ if ( ! class_exists( 'Jetpack_Flickr_Widget' ) ) {
}
if ( isset( $new_instance['items'] ) ) {
- $instance['items'] = intval( $new_instance['items'] );
+ $instance['items'] = (int) $new_instance['items'];
}
if ( isset( $new_instance['target'] ) ) {
diff --git a/plugins/jetpack/modules/widgets/gallery.php b/plugins/jetpack/modules/widgets/gallery.php
index aa631e62..65c3a60c 100644
--- a/plugins/jetpack/modules/widgets/gallery.php
+++ b/plugins/jetpack/modules/widgets/gallery.php
@@ -52,6 +52,8 @@ class Jetpack_Gallery_Widget extends WP_Widget {
}
/**
+ * Display the widget.
+ *
* @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
* @param array $instance The settings for the particular instance of the widget.
*/
@@ -60,7 +62,10 @@ class Jetpack_Gallery_Widget extends WP_Widget {
$this->enqueue_frontend_scripts();
- extract( $args );
+ $before_widget = isset( $args['before_widget'] ) ? $args['before_widget'] : '';
+ $before_title = isset( $args['before_title'] ) ? $args['before_title'] : '';
+ $after_title = isset( $args['after_title'] ) ? $args['after_title'] : '';
+ $after_widget = isset( $args['after_widget'] ) ? $args['after_widget'] : '';
$instance['attachments'] = $this->get_attachments( $instance );
@@ -68,11 +73,14 @@ class Jetpack_Gallery_Widget extends WP_Widget {
$classes[] = 'widget-gallery-' . $instance['type'];
- // Due to a bug in the carousel plugin, carousels will be triggered for all tiled galleries that exist on a page
- // with other tiled galleries, regardless of whether or not the widget was set to Carousel mode. The onClick selector
- // is simply too broad, since it was not written with widgets in mind. This special class prevents that behavior, via
- // an override handler in gallery.js
- if ( 'carousel' != $instance['link'] && 'slideshow' != $instance['type'] ) {
+ /*
+ * Due to a bug in the carousel plugin,
+ * carousels will be triggered for all tiled galleries that exist on a page with other tiled galleries,
+ * regardless of whether or not the widget was set to Carousel mode.
+ * The onClick selector is simply too broad, since it was not written with widgets in mind.
+ * This special class prevents that behavior, via an override handler in gallery.js.
+ */
+ if ( 'carousel' !== $instance['link'] && 'slideshow' !== $instance['type'] ) {
$classes[] = 'no-carousel';
} else {
$classes[] = 'carousel';
@@ -80,8 +88,8 @@ class Jetpack_Gallery_Widget extends WP_Widget {
$classes = implode( ' ', $classes );
- if ( 'carousel' == $instance['link'] ) {
- require_once plugin_dir_path( realpath( dirname( __FILE__ ) . '/../carousel/jetpack-carousel.php' ) ) . 'jetpack-carousel.php';
+ if ( 'carousel' === $instance['link'] ) {
+ require_once plugin_dir_path( realpath( __DIR__ . '/../carousel/jetpack-carousel.php' ) ) . 'jetpack-carousel.php';
if ( class_exists( 'Jetpack_Carousel' ) ) {
// Create new carousel so we can use the enqueue_assets() method. Not ideal, but there is a decent amount
@@ -93,13 +101,13 @@ class Jetpack_Gallery_Widget extends WP_Widget {
}
}
- echo $before_widget . "\n";
+ echo $before_widget . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $instance['title'] );
if ( $title ) {
- echo $before_title . esc_html( $title ) . $after_title . "\n";
+ echo $before_title . $title . $after_title . "\n"; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '<div class="' . esc_attr( $classes ) . '">' . "\n";
@@ -124,18 +132,18 @@ class Jetpack_Gallery_Widget extends WP_Widget {
add_filter( 'tiled_gallery_content_width', array( $this, 'tiled_gallery_content_width' ) );
if ( method_exists( $this, $method ) ) {
- echo $this->$method( $args, $instance );
+ echo $this->$method( $args, $instance ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
- // Remove the stored $_instance_width, as it is no longer needed
+ // Remove the stored $_instance_width, as it is no longer needed.
$this->_instance_width = null;
- // Remove the filter, so any Jetpack_Tiled_Gallery in a post is not affected
+ // Remove the filter, so any Jetpack_Tiled_Gallery in a post is not affected.
remove_filter( 'tiled_gallery_content_width', array( $this, 'tiled_gallery_content_width' ) );
echo "\n" . '</div>'; // .widget-gallery-$type
- echo "\n" . $after_widget;
+ echo "\n" . $after_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'gallery' );
@@ -270,11 +278,11 @@ class Jetpack_Gallery_Widget extends WP_Widget {
);
}
- $max_width = intval( get_option( 'large_size_w' ) );
+ $max_width = (int) get_option( 'large_size_w' );
$max_height = 175;
- if ( intval( $content_width ) > 0 ) {
- $max_width = min( intval( $content_width ), $max_width );
+ if ( (int) $content_width > 0 ) {
+ $max_width = min( (int) $content_width, $max_width );
}
$color = Jetpack_Options::get_option( 'slideshow_background_color', 'black' );
@@ -328,7 +336,7 @@ class Jetpack_Gallery_Widget extends WP_Widget {
* Sanitize the $instance's values to the set of allowed values. If a value is not acceptable,
* it is set to its default.
*
- * Helps keep things nice and secure by whitelisting only allowed values
+ * Helps keep things nice and secure by listing only allowed values.
*
* @param array $instance The Widget instance to sanitize values for
* @return array $instance The Widget instance with values sanitized
diff --git a/plugins/jetpack/modules/widgets/gallery/js/admin.js b/plugins/jetpack/modules/widgets/gallery/js/admin.js
index 6a926d69..0a64bf9d 100644
--- a/plugins/jetpack/modules/widgets/gallery/js/admin.js
+++ b/plugins/jetpack/modules/widgets/gallery/js/admin.js
@@ -1,11 +1,11 @@
/* global _wpMediaViewsL10n, _wpGalleryWidgetAdminSettings */
-( function( $ ) {
+( function ( $ ) {
var $ids;
var $thumbs;
- $( function() {
- $( document.body ).on( 'click', '.gallery-widget-choose-images', function( event ) {
+ $( function () {
+ $( document.body ).on( 'click', '.gallery-widget-choose-images', function ( event ) {
event.preventDefault();
var widget_form = $( this ).closest( 'form, .form' );
@@ -63,7 +63,7 @@
* which is necessary to disable the sidebar gallery settings in the media browser)
*/
media.view.MediaFrame.GalleryWidget = media.view.MediaFrame.Post.extend( {
- createStates: function() {
+ createStates: function () {
var options = this.options;
// `CollectionEdit` and `CollectionAdd` were only introduced in r27214-core,
@@ -91,7 +91,7 @@
if ( ! ( 'WidgetGalleryEdit' in media.controller ) ) {
// Remove the gallery settings sidebar when editing widgets.
media.controller.WidgetGalleryEdit = media.controller.GalleryEdit.extend( {
- gallerySettings: function(/*browser*/) {
+ gallerySettings: function (/*browser*/) {
return;
},
} );
@@ -110,7 +110,7 @@
} );
function setupStyleOptions() {
- $( '.widget-inside .gallery-widget-style' ).each( function(/*i*/) {
+ $( '.widget-inside .gallery-widget-style' ).each( function (/*i*/) {
var style = $( this ).val();
var form = $( this ).parents( 'form' );
@@ -138,7 +138,7 @@
var imageSize = _wpGalleryWidgetAdminSettings.thumbSize;
- selection.each( function( model ) {
+ selection.each( function ( model ) {
var sizedUrl = model.get( 'url' ) + '?w=' + imageSize + '&h=' + imageSize + '&crop=true';
var thumb = jQuery( '<img>', {
@@ -187,7 +187,7 @@
// Fetch the query's attachments, and then break ties from the
// query to allow for sorting.
- selection.more().done( function() {
+ selection.more().done( function () {
// Break ties with the query.
selection.props.set( { query: false } );
selection.unmirror();
@@ -205,7 +205,7 @@
workflow.on(
'update',
- function( selection ) {
+ function ( selection ) {
var state = workflow.state();
selection = selection || state.get( 'selection' );
@@ -215,7 +215,7 @@
}
// Map the Models down into a simple array of ids that can be easily imploded to a csv string
- var ids = selection.map( function( model ) {
+ var ids = selection.map( function ( model ) {
return model.get( 'id' );
} );
diff --git a/plugins/jetpack/modules/widgets/gallery/js/gallery.js b/plugins/jetpack/modules/widgets/gallery/js/gallery.js
index 5b952bb4..3a01bb9b 100644
--- a/plugins/jetpack/modules/widgets/gallery/js/gallery.js
+++ b/plugins/jetpack/modules/widgets/gallery/js/gallery.js
@@ -1,7 +1,9 @@
-( function( $ ) {
+( function ( $ ) {
// Fixes a bug with carousels being triggered even when a widget's Link To option is not set to carousel.
// Happens when another gallery is loaded on the page, either in a post or separate widget
- $( 'body' ).on( 'click', '.widget-gallery .no-carousel .tiled-gallery-item a', function( event ) {
+ $( 'body' ).on( 'click', '.widget-gallery .no-carousel .tiled-gallery-item a', function (
+ event
+ ) {
// Have to trigger default, instead of carousel
event.stopPropagation();
diff --git a/plugins/jetpack/modules/widgets/goodreads.php b/plugins/jetpack/modules/widgets/goodreads.php
index d6ea6515..f9b3db76 100644
--- a/plugins/jetpack/modules/widgets/goodreads.php
+++ b/plugins/jetpack/modules/widgets/goodreads.php
@@ -80,7 +80,7 @@ class WPCOM_Widget_Goodreads extends WP_Widget {
}
echo $args['before_widget'];
- echo $args['before_title'] . $title . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
$goodreads_url = 'https://www.goodreads.com/review/custom_widget/' . urlencode( $instance['user_id'] ) . '.' . urlencode( $instance['title'] ) . ':%20' . urlencode( $instance['shelf'] ) . '?cover_position=&cover_size=small&num_books=5&order=d&shelf=' . urlencode( $instance['shelf'] ) . '&sort=date_added&widget_bg_transparent=&widget_id=' . esc_attr( $this->goodreads_widget_id );
diff --git a/plugins/jetpack/modules/widgets/goodreads/css/goodreads.css b/plugins/jetpack/modules/widgets/goodreads/css/goodreads.css
index d329cb7e..69a54797 100644
--- a/plugins/jetpack/modules/widgets/goodreads/css/goodreads.css
+++ b/plugins/jetpack/modules/widgets/goodreads/css/goodreads.css
@@ -22,7 +22,7 @@ div[class^="gr_custom_each_container"] {
margin-bottom: 10px;
overflow: auto;
padding-bottom: 4px;
- border-bottom: 1px solid #aaa;
+ border-bottom: 1px solid #a7aaad;
}
div[class^="gr_custom_book_container"] {
/* customize your book covers here */
diff --git a/plugins/jetpack/modules/widgets/google-translate.php b/plugins/jetpack/modules/widgets/google-translate.php
index 87742317..0e270677 100644
--- a/plugins/jetpack/modules/widgets/google-translate.php
+++ b/plugins/jetpack/modules/widgets/google-translate.php
@@ -129,7 +129,7 @@ class Jetpack_Google_Translate_Widget extends WP_Widget {
'_wp_google_translate_widget',
array(
'lang' => get_locale(),
- 'layout' => intval( $button_layout ),
+ 'layout' => (int) $button_layout,
)
);
wp_enqueue_script( 'google-translate-init' );
@@ -146,7 +146,7 @@ class Jetpack_Google_Translate_Widget extends WP_Widget {
echo $args['before_widget'];
if ( ! empty( $title ) ) {
- echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '<div id="google_translate_element"></div>';
echo $args['after_widget'];
diff --git a/plugins/jetpack/modules/widgets/google-translate/google-translate.js b/plugins/jetpack/modules/widgets/google-translate/google-translate.js
index 31a1fa0f..b070c02d 100644
--- a/plugins/jetpack/modules/widgets/google-translate/google-translate.js
+++ b/plugins/jetpack/modules/widgets/google-translate/google-translate.js
@@ -1,6 +1,4 @@
-/*global google:true*/
-/*global _wp_google_translate_widget:true*/
-/*exported googleTranslateElementInit*/
+/* global google, _wp_google_translate_widget, module */
function googleTranslateElementInit() {
var lang = 'en';
var langParam;
@@ -30,3 +28,6 @@ function googleTranslateElementInit() {
'google_translate_element'
);
}
+if ( module ) {
+ module.exports = googleTranslateElementInit;
+}
diff --git a/plugins/jetpack/modules/widgets/gravatar-profile.php b/plugins/jetpack/modules/widgets/gravatar-profile.php
index 2dd4e5fb..d2b13d12 100644
--- a/plugins/jetpack/modules/widgets/gravatar-profile.php
+++ b/plugins/jetpack/modules/widgets/gravatar-profile.php
@@ -65,7 +65,7 @@ class Jetpack_Gravatar_Profile_Widget extends WP_Widget {
if ( current_user_can( 'edit_theme_options' ) ) {
echo $args['before_widget'];
if ( ! empty( $title ) ) {
- echo $args['before_title'] . $title . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '<p>' . sprintf( __( 'You need to select what to show in this <a href="%s">Gravatar Profile widget</a>.', 'jetpack' ), admin_url( 'widgets.php' ) ) . '</p>';
echo $args['after_widget'];
@@ -349,7 +349,7 @@ class Jetpack_Gravatar_Profile_Widget extends WP_Widget {
$instance['title'] = isset( $new_instance['title'] ) ? wp_kses( $new_instance['title'], array() ) : '';
$instance['email'] = isset( $new_instance['email'] ) ? wp_kses( $new_instance['email'], array() ) : '';
- $instance['email_user'] = isset( $new_instance['email_user'] ) ? intval( $new_instance['email_user'] ) : -1;
+ $instance['email_user'] = isset( $new_instance['email_user'] ) ? (int) $new_instance['email_user'] : -1;
$instance['show_personal_links'] = isset( $new_instance['show_personal_links'] ) ? (bool) $new_instance['show_personal_links'] : false;
$instance['show_account_links'] = isset( $new_instance['show_account_links'] ) ? (bool) $new_instance['show_account_links'] : false;
diff --git a/plugins/jetpack/modules/widgets/image-widget.php b/plugins/jetpack/modules/widgets/image-widget.php
index d455b4c2..e498f577 100644
--- a/plugins/jetpack/modules/widgets/image-widget.php
+++ b/plugins/jetpack/modules/widgets/image-widget.php
@@ -67,9 +67,8 @@ class Jetpack_Image_Widget extends WP_Widget {
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $instance['title'] );
-
if ( $title ) {
- echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if ( '' != $instance['img_url'] ) {
diff --git a/plugins/jetpack/modules/widgets/instagram/instagram.css b/plugins/jetpack/modules/widgets/instagram/instagram.css
new file mode 100644
index 00000000..803376f7
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/instagram/instagram.css
@@ -0,0 +1,55 @@
+.wpcom-instagram-images {
+ display: grid;
+ grid-gap: 0.5rem;
+ grid-auto-columns: 1fr;
+}
+
+.wpcom-instagram-images:before,
+.wpcom-instagram-images:after {
+ content: none;
+}
+
+.wpcom-instagram-images a {
+ display: block;
+ margin: 4px 2px;
+}
+.wpcom-instagram-columns-2 a,
+.wpcom-instagram-columns-3 a {
+ display: inline-block;
+ vertical-align: top;
+}
+.wpcom-instagram-columns-2 a {
+ width: calc(50% - 8px);
+}
+.wpcom-instagram-columns-3 a {
+ width: calc(33.3333% - 8px);
+}
+
+.wpcom-instagram-images .sq-bg-image {
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ height: 0;
+ overflow: hidden;
+ padding-bottom: 100%;
+}
+
+.wpcom-instagram-columns-2 {
+ grid-template-columns: repeat(2, 1fr);
+}
+
+.wpcom-instagram-columns-3 {
+ grid-template-columns: repeat(3, 1fr);
+}
+
+@supports (display:grid) {
+ .wpcom-instagram-images a {
+ display: block;
+ margin: 0;
+ }
+
+ .wpcom-instagram-columns-2 a,
+ .wpcom-instagram-columns-3 a {
+ width: auto;
+ }
+}
diff --git a/plugins/jetpack/modules/widgets/internet-defense-league.php b/plugins/jetpack/modules/widgets/internet-defense-league.php
index 9a69d1ab..ba4170fa 100644
--- a/plugins/jetpack/modules/widgets/internet-defense-league.php
+++ b/plugins/jetpack/modules/widgets/internet-defense-league.php
@@ -60,11 +60,11 @@ class Jetpack_Internet_Defense_League_Widget extends WP_Widget {
if ( ! isset( $this->badges[ $instance['badge'] ] ) ) {
$instance['badge'] = $this->defaults['badge'];
}
- $badge_url = esc_url( 'https://internetdefenseleague.org/images/badges/final/' . $instance['badge'] . '.png' );
+ $badge_url = esc_url( 'https://www.internetdefenseleague.org/images/badges/final/' . $instance['badge'] . '.png' );
$photon_badge_url = jetpack_photon_url( $badge_url );
$alt_text = esc_html__( 'Member of The Internet Defense League', 'jetpack' );
echo $args['before_widget'];
- echo '<p><a href="https://internetdefenseleague.org/"><img src="' . $photon_badge_url . '" alt="' . $alt_text . '" style="max-width: 100%; height: auto;" /></a></p>';
+ echo '<p><a href="https://www.internetdefenseleague.org/"><img src="' . $photon_badge_url . '" alt="' . $alt_text . '" style="max-width: 100%; height: auto;" /></a></p>';
echo $args['after_widget'];
}
@@ -86,6 +86,12 @@ class Jetpack_Internet_Defense_League_Widget extends WP_Widget {
if ( ! isset( $this->variants[ $this->variant ] ) ) {
$this->variant = $this->defaults['variant'];
}
+
+ // On AMP endpoints, prevent a validation error from the inline script.
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
?>
<script type="text/javascript">
window._idl = {};
@@ -93,9 +99,8 @@ class Jetpack_Internet_Defense_League_Widget extends WP_Widget {
_idl.variant = "<?php echo esc_js( $this->variant ); ?>";
(function() {
var idl = document.createElement('script');
- idl.type = 'text/javascript';
idl.async = true;
- idl.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');
+ idl.src = 'https://members.internetdefenseleague.org/include/?url=' + (_idl.url || '') + '&campaign=' + (_idl.campaign || '') + '&variant=' + (_idl.variant || 'banner');
document.getElementsByTagName('body')[0].appendChild(idl);
})();
</script>
diff --git a/plugins/jetpack/modules/widgets/mailchimp.php b/plugins/jetpack/modules/widgets/mailchimp.php
index a2aff1ba..6f43b4db 100644
--- a/plugins/jetpack/modules/widgets/mailchimp.php
+++ b/plugins/jetpack/modules/widgets/mailchimp.php
@@ -1,4 +1,10 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * MailChimp popup widget.
+ * It acts as a wrapper for the mailchimp_subscriber_popup shortcode.
+ *
+ * @package automattic/jetpack
+ */
if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
@@ -6,7 +12,9 @@ if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
include_once JETPACK__PLUGIN_DIR . 'modules/shortcodes/mailchimp.php';
}
- //register MailChimp Subscriber Popup widget
+ /**
+ * Register MailChimp Subscriber Popup widget.
+ */
function jetpack_mailchimp_subscriber_popup_widget_init() {
register_widget( 'Jetpack_MailChimp_Subscriber_Popup_Widget' );
}
@@ -21,7 +29,7 @@ if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
/**
* Constructor
*/
- function __construct() {
+ public function __construct() {
parent::__construct(
'widget_mailchimp_subscriber_popup',
/** This filter is documented in modules/widgets/facebook-likebox.php */
@@ -37,12 +45,12 @@ if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
/**
* Outputs the HTML for this widget.
*
- * @param array $args An array of standard parameters for widgets in this theme
- * @param array $instance An array of settings for this widget instance
+ * @param array $args An array of standard parameters for widgets in this theme.
+ * @param array $instance An array of settings for this widget instance.
*
* @return void Echoes it's output
- **/
- function widget( $args, $instance ) {
+ */
+ public function widget( $args, $instance ) {
$instance = wp_parse_args( $instance, array( 'code' => '' ) );
// Regular expresion that will match maichimp shortcode.
@@ -60,23 +68,21 @@ if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
do_action( 'jetpack_stats_extra', 'widget_view', 'mailchimp_subscriber_popup' );
}
-
/**
* Deals with the settings when they are saved by the admin.
*
- * @param array $new_instance New configuration values
- * @param array $old_instance Old configuration values
+ * @param array $new_instance New configuration values.
+ * @param array $old_instance Old configuration values.
*
* @return array
*/
- function update( $new_instance, $old_instance ) {
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = array();
$instance['code'] = MailChimp_Subscriber_Popup::reversal( $new_instance['code'] );
return $instance;
}
-
/**
* Displays the form for this widget on the Widgets page of the WP Admin area.
*
@@ -84,20 +90,30 @@ if ( ! class_exists( 'Jetpack_MailChimp_Subscriber_Popup_Widget' ) ) {
*
* @return void
*/
- function form( $instance ) {
+ public function form( $instance ) {
$instance = wp_parse_args( $instance, array( 'code' => '' ) );
- ?>
- <p>
- <label for="<?php echo esc_attr( $this->get_field_id( 'code' ) ); ?>">
- <?php printf( __( 'Code: <a href="%s" target="_blank">( ? )</a>', 'jetpack' ), 'https://en.support.wordpress.com/mailchimp/' ); ?>
- </label>
- <textarea class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'code' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'code' ) ); ?>" rows="3"><?php echo esc_textarea( $instance['code'] ); ?></textarea>
- </p>
+ $label = sprintf(
+ wp_kses(
+ /* Translators: %s is a link to the MailChimp support docs. */
+ __( 'Code: <a href="%s" target="_blank">( ? )</a>', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'target' => array(),
+ ),
+ )
+ ),
+ 'https://en.support.wordpress.com/mailchimp/'
+ );
- <?php
+ printf(
+ '<p><label for="%1$s">%4$s</label><textarea class="widefat" id="%1$s" name="%2$s" rows="3">%3$s</textarea></p>',
+ esc_attr( $this->get_field_id( 'code' ) ),
+ esc_attr( $this->get_field_name( 'code' ) ),
+ esc_textarea( $instance['code'] ),
+ $label // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- escaped above.
+ );
}
-
}
-
}
diff --git a/plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php b/plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php
index 8cf2900f..ffee5b5b 100644
--- a/plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php
+++ b/plugins/jetpack/modules/widgets/migrate-to-core/gallery-widget.php
@@ -4,24 +4,25 @@
*
* @since 5.5
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+
/**
* Migrates all active instances of Jetpack's Gallery widget to Core's Media Gallery widget.
*/
function jetpack_migrate_gallery_widget() {
- // Only trigger the migration from wp-admin and outside unit tests
+ // Only trigger the migration from wp-admin and outside unit tests.
if ( ! is_admin() || defined( 'PHPUNIT_JETPACK_TESTSUITE' ) ) {
return;
}
- // Only migrate if the new widget is available and we haven't yet migrated
+ // Only migrate if the new widget is available and we haven't yet migrated.
if ( ! class_exists( 'WP_Widget_Media_Gallery' ) || Jetpack_Options::get_option( 'gallery_widget_migration' ) ) {
return;
}
- $old_widgets = get_option( 'widget_gallery', array() );
- $media_gallery = get_option( 'widget_media_gallery', array() );
+ $old_widgets = get_option( 'widget_gallery', array() );
+ $media_gallery = get_option( 'widget_media_gallery', array() );
$sidebars_widgets = wp_get_sidebars_widgets();
// Array to store legacy widget ids in to unregister on success.
@@ -30,10 +31,13 @@ function jetpack_migrate_gallery_widget() {
$old_widgets = array_filter( $old_widgets, 'jetpack_migrate_gallery_widget_is_importable' );
foreach ( $old_widgets as $id => $widget ) {
$new_id = $id;
- // Try to get an unique id for the new type of widget.
- // It may be the case that the user has already created a core Gallery Widget
- // before the migration begins. (Maybe Jetpack was deactivated during core's upgrade).
- for( $i = 0; $i < 10 && in_array( $new_id, array_keys( $media_gallery ) ); $i++, $new_id++ );
+
+ /*
+ * Try to get an unique id for the new type of widget.
+ * It may be the case that the user has already created a core Gallery Widget
+ * before the migration begins. (Maybe Jetpack was deactivated during core's upgrade).
+ */
+ for ( $i = 0; $i < 10 && array_key_exists( $new_id, array( $media_gallery ) ); $i++, $new_id++ ); // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
$widget_copy = jetpack_migrate_gallery_widget_upgrade_widget( $widget );
@@ -64,24 +68,35 @@ function jetpack_migrate_gallery_widget() {
wp_set_sidebars_widgets( $sidebars_widgets );
// Log if we migrated all, or some for this site.
- foreach ( $widgets_to_unregister as $w ) {
+ foreach ( $widgets_to_unregister as $w ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
jetpack_migrate_gallery_widget_bump_stats( 'gallery-widget-migrated' );
}
- // We need to refresh on widgets page for changes to take effect.
- // The jetpack_refresh_on_widget_page function is already defined in migrate-to-core/image-widget.php
+ /*
+ * We need to refresh on widgets page for changes to take effect.
+ * The jetpack_refresh_on_widget_page function is already defined
+ * in migrate-to-core/image-widget.php
+ */
add_action( 'current_screen', 'jetpack_refresh_on_widget_page' );
}
Jetpack_Options::update_option( 'gallery_widget_migration', true );
}
+/**
+ * Check if the widget can be imported.
+ *
+ * @param array $widget One of the Jetpack Gallery widgets to be transformed into a new Core Media Gallery Widget.
+ */
function jetpack_migrate_gallery_widget_is_importable( $widget ) {
// Can be caused by instantiating but not populating a widget in the Customizer.
if ( empty( $widget ) ) {
return false;
}
- // The array as stored in the option constains two keys and one
- // is a string `_multiwidget` which does not represent a widget, so we skip it
+
+ /*
+ * The array as stored in the option constains two keys and one
+ * is a string `_multiwidget` which does not represent a widget, so we skip it
+ */
if ( ! is_array( $widget ) ) {
return false;
}
@@ -92,28 +107,28 @@ function jetpack_migrate_gallery_widget_is_importable( $widget ) {
* Returns a transformed version of the Gallery Widget.
* Will return null if the widget is either empty, is not an array or has more keys than expected
*
- * @param $widget One of the Jetpack Gallery widgets to be transformed into a new Core Media Gallery Widget
+ * @param array $widget One of the Jetpack Gallery widgets to be transformed into a new Core Media Gallery Widget.
*
* @return array|null
*/
function jetpack_migrate_gallery_widget_upgrade_widget( $widget ) {
- $whitelisted_keys = array(
- 'ids' => '',
- 'link' => '',
- 'title' => '',
- 'type' => '',
- 'random' => '',
+ $allowed_keys = array(
+ 'ids' => '',
+ 'link' => '',
+ 'title' => '',
+ 'type' => '',
+ 'random' => '',
'conditions' => '',
);
$default_data = array(
- 'columns' => 3,
- 'ids' => array(),
- 'link_type' => '',
+ 'columns' => 3,
+ 'ids' => array(),
+ 'link_type' => '',
'orderby_random' => false,
- 'size' => 'thumbnail',
- 'title' => '',
- 'type' => '',
+ 'size' => 'thumbnail',
+ 'title' => '',
+ 'type' => '',
);
if ( ! jetpack_migrate_gallery_widget_is_importable( $widget ) ) {
@@ -121,30 +136,37 @@ function jetpack_migrate_gallery_widget_upgrade_widget( $widget ) {
}
// Ensure widget has no keys other than those expected.
// Not all widgets have conditions, so lets add it in.
- $widget_copy = array_merge( array( 'conditions' => null ), $widget );
- $non_whitelisted_keys = array_diff_key( $widget_copy, $whitelisted_keys );
- if ( count( $non_whitelisted_keys ) > 0 ) {
+ $widget_copy = array_merge( array( 'conditions' => null ), $widget );
+ $non_allowed_keys = array_diff_key( $widget_copy, $allowed_keys );
+ if ( count( $non_allowed_keys ) > 0 ) {
jetpack_migrate_gallery_widget_bump_stats( 'extra-key' );
- // Log the names of the keys not in our whitelist.
- foreach ( $non_whitelisted_keys as $key => $value ) {
- jetpack_migrate_gallery_widget_bump_stats( "extra-key-$key", "migration-extra-key" );
+ // Log the names of the keys not in our allowed list.
+ foreach ( $non_allowed_keys as $key => $value ) {
+ jetpack_migrate_gallery_widget_bump_stats( "extra-key-$key", 'migration-extra-key' );
}
}
- $widget_copy = array_merge( $default_data, $widget, array(
- // ids in Jetpack's Gallery are a string of comma-separated values.
- // Core's Media Gallery Widget stores ids in an array
- 'ids' => explode( ',', $widget['ids'] ),
- 'link_type' => $widget['link'],
- 'orderby_random' => isset( $widget['random'] ) && $widget['random'] === 'on',
- ) );
+ $widget_copy = array_merge(
+ $default_data,
+ $widget,
+ array(
+ // ids in Jetpack's Gallery are a string of comma-separated values.
+ // Core's Media Gallery Widget stores ids in an array.
+ 'ids' => explode( ',', $widget['ids'] ),
+ 'link_type' => $widget['link'],
+ 'orderby_random' => isset( $widget['random'] ) && 'on' === $widget['random'],
+ )
+ );
- // Unsetting old widget fields
- $widget_copy = array_diff_key( $widget_copy, array(
- 'link' => false,
- 'random' => false,
- ) );
+ // Unsetting old widget fields.
+ $widget_copy = array_diff_key(
+ $widget_copy,
+ array(
+ 'link' => false,
+ 'random' => false,
+ )
+ );
return $widget_copy;
}
@@ -152,21 +174,23 @@ function jetpack_migrate_gallery_widget_upgrade_widget( $widget ) {
/**
* Replaces the references to Jetpack Gallery Widget in the sidebars for references to the new version of the widget
*
- * @param $sidebars_widgets The sidebar widgets array to update
- * @param $id Old id of the widget (basically its index in the array )
- * @param $new_id New id that will be using on the sidebar as a new widget
+ * @param array $sidebars_widgets The sidebar widgets array to update.
+ * @param string $id Old id of the widget (basically its index in the array ).
+ * @param string $new_id New id that will be using on the sidebar as a new widget.
*
- * @return mixed Updated sidebar widgets array
+ * @return mixed Updated sidebar widgets array
*/
function jetpack_migrate_gallery_widget_update_sidebars( $sidebars_widgets, $id, $new_id ) {
foreach ( $sidebars_widgets as $sidebar => $widgets ) {
- if (
- is_array( $widgets )
- && false !== ( $key = array_search( "gallery-{$id}", $widgets, true ) )
- ) {
+ $key = is_array( $widgets ) ? array_search( "gallery-{$id}", $widgets, true ) : false;
+
+ if ( false !== $key ) {
$sidebars_widgets[ $sidebar ][ $key ] = "media_gallery-{$new_id}";
- // Check if the inactive widgets sidebar exists
- // Related: https://core.trac.wordpress.org/ticket/14893
+
+ /*
+ * Check if the inactive widgets sidebar exists
+ * Related: https://core.trac.wordpress.org/ticket/14893
+ */
if ( ! isset( $sidebars_widgets['wp_inactive_widgets'] ) || ! is_array( $sidebars_widgets['wp_inactive_widgets'] ) ) {
$sidebars_widgets['wp_inactive_widgets'] = array();
}
@@ -190,9 +214,8 @@ function jetpack_migrate_gallery_widget_bump_stats( $bin, $group = 'widget-migra
} else {
// $group is prepended with 'jetpack-'
$jetpack = Jetpack::init();
- $jetpack->stat( $group, $bin ) ;
+ $jetpack->stat( $group, $bin );
}
}
-
add_action( 'widgets_init', 'jetpack_migrate_gallery_widget' );
diff --git a/plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php b/plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php
index 70d2d12b..06f317ff 100644
--- a/plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php
+++ b/plugins/jetpack/modules/widgets/migrate-to-core/image-widget.php
@@ -4,45 +4,45 @@
*
* @since 4.9
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
/**
* Migrates all active instances of Jetpack's image widget to Core's media image widget.
*/
function jetpack_migrate_image_widget() {
- // Only trigger the migration from wp-admin
+ // Only trigger the migration from wp-admin.
if ( ! is_admin() ) {
return;
}
- // Only migrate if the new widget is available and we haven't yet migrated
+ // Only migrate if the new widget is available and we haven't yet migrated.
if ( ! class_exists( 'WP_Widget_Media_Image' ) || Jetpack_Options::get_option( 'image_widget_migration' ) ) {
return;
}
$default_data = array(
- 'attachment_id' => 0,
- 'url' => '',
- 'title' => '',
- 'size' => 'custom',
- 'width' => 0,
- 'height' => 0,
- 'align' => 'none',
- 'caption' => '',
- 'alt' => '',
- 'link_type' => '',
- 'link_url' => '',
- 'image_classes' => '',
- 'link_classes' => '',
- 'link_rel' => '',
- 'image_title' => '',
+ 'attachment_id' => 0,
+ 'url' => '',
+ 'title' => '',
+ 'size' => 'custom',
+ 'width' => 0,
+ 'height' => 0,
+ 'align' => 'none',
+ 'caption' => '',
+ 'alt' => '',
+ 'link_type' => '',
+ 'link_url' => '',
+ 'image_classes' => '',
+ 'link_classes' => '',
+ 'link_rel' => '',
+ 'image_title' => '',
'link_target_blank' => false,
- 'conditions' => null,
+ 'conditions' => null,
);
- $old_widgets = get_option( 'widget_image', array() );
- $media_image = get_option( 'widget_media_image', array() );
+ $old_widgets = get_option( 'widget_image', array() );
+ $media_image = get_option( 'widget_media_image', array() );
$sidebars_widgets = wp_get_sidebars_widgets();
// Persist old and current widgets in backup table.
@@ -71,46 +71,56 @@ function jetpack_migrate_image_widget() {
// Ensure widget has no keys other than those expected.
// Not all widgets have conditions, so lets add it in.
- $widget_copy = array_merge( array( 'conditions' => null ), $widget );
- $non_whitelisted_keys = array_diff_key( $widget_copy, array(
- 'title' => '',
- 'img_url' => '',
- 'alt_text' => '',
- 'img_title' => '',
- 'caption' => '',
- 'align' => '',
- 'img_width' => '',
- 'img_height' => '',
- 'link' => '',
- 'link_target_blank' => '',
- 'conditions' => '',
- ) );
-
- if ( count( $non_whitelisted_keys ) > 0 ) {
- // skipping the widget in question
+ $widget_copy = array_merge( array( 'conditions' => null ), $widget );
+ $non_allowed_keys = array_diff_key(
+ $widget_copy,
+ array(
+ 'title' => '',
+ 'img_url' => '',
+ 'alt_text' => '',
+ 'img_title' => '',
+ 'caption' => '',
+ 'align' => '',
+ 'img_width' => '',
+ 'img_height' => '',
+ 'link' => '',
+ 'link_target_blank' => '',
+ 'conditions' => '',
+ )
+ );
+
+ if ( count( $non_allowed_keys ) > 0 ) {
+ // skipping the widget in question.
continue;
}
- $media_image[ $id ] = array_merge( $default_data, $widget, array(
- 'alt' => $widget['alt_text'],
- 'height' => $widget['img_height'],
- 'image_classes' => ! empty( $widget['align'] ) ? 'align' . $widget['align'] : '',
- 'image_title' => $widget['img_title'],
- 'link_url' => $widget['link'],
- 'url' => $widget['img_url'],
- 'width' => $widget['img_width'],
- ) );
-
- // Unsetting old widget fields
- $media_image[ $id ] = array_diff_key( $media_image[ $id ], array(
- 'align' => false,
- 'alt_text' => false,
- 'img_height' => false,
- 'img_title' => false,
- 'img_url' => false,
- 'img_width' => false,
- 'link' => false,
- ) );
+ $media_image[ $id ] = array_merge(
+ $default_data,
+ $widget,
+ array(
+ 'alt' => $widget['alt_text'],
+ 'height' => $widget['img_height'],
+ 'image_classes' => ! empty( $widget['align'] ) ? 'align' . $widget['align'] : '',
+ 'image_title' => $widget['img_title'],
+ 'link_url' => $widget['link'],
+ 'url' => $widget['img_url'],
+ 'width' => $widget['img_width'],
+ )
+ );
+
+ // Unsetting old widget fields.
+ $media_image[ $id ] = array_diff_key(
+ $media_image[ $id ],
+ array(
+ 'align' => false,
+ 'alt_text' => false,
+ 'img_height' => false,
+ 'img_title' => false,
+ 'img_url' => false,
+ 'img_width' => false,
+ 'link' => false,
+ )
+ );
// Check if the image is in the media library.
$image_basename = basename( $widget['img_url'] );
@@ -119,32 +129,34 @@ function jetpack_migrate_image_widget() {
continue;
}
- $attachment_ids = get_posts( array(
- 'fields' => 'ids',
- 'meta_query' => array(
- array(
- 'value' => basename( $image_basename ),
- 'compare' => 'LIKE',
- 'key' => '_wp_attachment_metadata',
+ $attachment_ids = get_posts(
+ array(
+ 'fields' => 'ids',
+ 'meta_query' => array(
+ array(
+ 'value' => basename( $image_basename ),
+ 'compare' => 'LIKE',
+ 'key' => '_wp_attachment_metadata',
+ ),
),
- ),
- 'post_status' => 'inherit',
- 'post_type' => 'attachment',
- 'suppress_filters' => false,
- ) );
+ 'post_status' => 'inherit',
+ 'post_type' => 'attachment',
+ 'suppress_filters' => false,
+ )
+ );
foreach ( $attachment_ids as $attachment_id ) {
$image_meta = wp_get_attachment_metadata( $attachment_id );
// Is it a full size image?
$image_path_pieces = explode( '/', $image_meta['file'] );
- if ( $image_basename === array_pop( $image_path_pieces ) ) {
+ if ( array_pop( $image_path_pieces ) === $image_basename ) {
$media_image[ $id ]['attachment_id'] = $attachment_id;
// Set correct size if dimensions fit.
if (
- $media_image[ $id ]['width'] == $image_meta['width'] ||
- $media_image[ $id ]['height'] == $image_meta['height']
+ $media_image[ $id ]['width'] == $image_meta['width'] || // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ $media_image[ $id ]['height'] == $image_meta['height'] // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
) {
$media_image[ $id ]['size'] = 'full';
}
@@ -153,13 +165,13 @@ function jetpack_migrate_image_widget() {
// Is it a down-sized image?
foreach ( $image_meta['sizes'] as $size => $image ) {
- if ( false !== array_search( $image_basename, $image ) ) {
+ if ( false !== array_search( $image_basename, $image, true ) ) {
$media_image[ $id ]['attachment_id'] = $attachment_id;
// Set correct size if dimensions fit.
if (
- $media_image[ $id ]['width'] == $image['width'] ||
- $media_image[ $id ]['height'] == $image['height']
+ $media_image[ $id ]['width'] == $image['width'] || // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ $media_image[ $id ]['height'] == $image['height'] // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
) {
$media_image[ $id ]['size'] = $size;
}
@@ -173,10 +185,9 @@ function jetpack_migrate_image_widget() {
}
foreach ( $sidebars_widgets as $sidebar => $widgets ) {
- if (
- is_array( $widgets )
- && false !== ( $key = array_search( "image-{$id}", $widgets, true ) )
- ) {
+ $key = is_array( $widgets ) ? array_search( "image-{$id}", $widgets, true ) : false;
+
+ if ( false !== $key ) {
$sidebars_widgets[ $sidebar ][ $key ] = "media_image-{$id}";
}
}
@@ -207,11 +218,16 @@ function jetpack_migrate_image_widget() {
delete_option( 'widget_image' );
}
}
-
+
Jetpack_Options::update_option( 'image_widget_migration', true );
}
add_action( 'widgets_init', 'jetpack_migrate_image_widget' );
+/**
+ * Refresh the widgets page to save changes
+ *
+ * @param WP_Screen $current Current WP_Screen object.
+ */
function jetpack_refresh_on_widget_page( $current ) {
if ( 'widgets' === $current->base ) {
wp_safe_redirect( admin_url( 'widgets.php' ) );
diff --git a/plugins/jetpack/modules/widgets/milestone.php b/plugins/jetpack/modules/widgets/milestone.php
index 0dd2140e..26d46f55 100644
--- a/plugins/jetpack/modules/widgets/milestone.php
+++ b/plugins/jetpack/modules/widgets/milestone.php
@@ -1,5 +1,13 @@
<?php
/**
- * Register the milestone widget. This makes it easier to keep the /milestone/ dir content in sync with wpcom.
+ * Milestone widget loader.
+ *
+ * Everything happens within the folder, but Jetpack loads widgets via a widgets/*.php scheme.
+ *
+ * @package automattic/jetpack
*/
-include dirname( __FILE__ ) . '/milestone/milestone.php';
+
+/**
+ * Includes the milestone widget. This makes it easier to keep the /milestone/ dir content in sync with wpcom.
+ */
+require_once __DIR__ . '/milestone/milestone.php';
diff --git a/plugins/jetpack/modules/widgets/milestone/admin.js b/plugins/jetpack/modules/widgets/milestone/admin.js
index 1897f0b7..445d9066 100644
--- a/plugins/jetpack/modules/widgets/milestone/admin.js
+++ b/plugins/jetpack/modules/widgets/milestone/admin.js
@@ -1,4 +1,4 @@
-( function( $ ) {
+( function ( $ ) {
// We could either be in wp-admin/widgets.php or the customizer.
var $container = $( '#customize-controls' );
@@ -6,14 +6,10 @@
$container = $( '#wpbody' );
}
- $container.on( 'change', '.milestone-type', function() {
- var $messageWrapper = $( this )
- .parent()
- .find( '.milestone-message-wrapper' );
+ $container.on( 'change', '.milestone-type', function () {
+ var $messageWrapper = $( this ).parent().find( '.milestone-message-wrapper' );
- $( this )
- .find( 'input[type="radio"]:checked' )
- .val() === 'since'
+ $( this ).find( 'input[type="radio"]:checked' ).val() === 'since'
? $messageWrapper.hide()
: $messageWrapper.show();
} );
@@ -23,7 +19,7 @@
}
// Used when adding widget via customizer or saving settings.
- $( document ).on( 'widget-added widget-updated', function() {
+ $( document ).on( 'widget-added widget-updated', function () {
triggerChange();
} );
diff --git a/plugins/jetpack/modules/widgets/milestone/class-milestone-widget.php b/plugins/jetpack/modules/widgets/milestone/class-milestone-widget.php
new file mode 100644
index 00000000..a28e85f5
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/milestone/class-milestone-widget.php
@@ -0,0 +1,753 @@
+<?php
+/**
+ * Milestone Countdown Widget
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Assets;
+
+/**
+ * Class Milestone_Widget
+ */
+class Milestone_Widget extends WP_Widget {
+ /**
+ * Holding array for widget configuration and localization.
+ *
+ * @var array
+ */
+ private static $config_js = array();
+
+ /**
+ * Available time units sorted in descending order.
+ *
+ * @var Array
+ */
+ protected $available_units = array(
+ 'years',
+ 'months',
+ 'days',
+ 'hours',
+ 'minutes',
+ 'seconds',
+ );
+
+ /**
+ * Milestone_Widget constructor.
+ */
+ public function __construct() {
+ $widget = array(
+ 'classname' => 'milestone-widget',
+ 'description' => __( 'Display a countdown to a certain date.', 'jetpack' ),
+ );
+
+ parent::__construct(
+ 'Milestone_Widget',
+ /** This filter is documented in modules/widgets/facebook-likebox.php */
+ apply_filters( 'jetpack_widget_name', __( 'Milestone', 'jetpack' ) ),
+ $widget
+ );
+
+ add_action( 'wp_enqueue_scripts', array( __class__, 'enqueue_template' ) );
+ add_action( 'admin_enqueue_scripts', array( __class__, 'enqueue_admin' ) );
+ add_action( 'wp_footer', array( $this, 'localize_script' ) );
+
+ if ( is_active_widget( false, false, $this->id_base, true ) || is_active_widget( false, false, 'monster', true ) || is_customize_preview() ) {
+ add_action( 'wp_head', array( __class__, 'styles_template' ) );
+ }
+ }
+
+ /**
+ * Enqueue admin assets.
+ *
+ * @param string $hook_suffix Hook suffix provided by WordPress.
+ */
+ public static function enqueue_admin( $hook_suffix ) {
+ if ( 'widgets.php' === $hook_suffix ) {
+ wp_enqueue_style( 'milestone-admin', plugin_dir_url( __FILE__ ) . 'style-admin.css', array(), '20201113' );
+ wp_enqueue_script(
+ 'milestone-admin-js',
+ Assets::get_file_url_for_environment(
+ '_inc/build/widgets/milestone/admin.min.js',
+ 'modules/widgets/milestone/admin.js'
+ ),
+ array( 'jquery' ),
+ '20201113',
+ true
+ );
+ }
+ }
+
+ /**
+ * Enqueue the frontend JS.
+ */
+ public static function enqueue_template() {
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
+ wp_enqueue_script(
+ 'milestone',
+ Assets::get_file_url_for_environment(
+ '_inc/build/widgets/milestone/milestone.min.js',
+ 'modules/widgets/milestone/milestone.js'
+ ),
+ array(),
+ '20201113',
+ true
+ );
+ }
+
+ /**
+ * Output the frontend styling.
+ */
+ public static function styles_template() {
+ global $themecolors;
+ $colors = wp_parse_args(
+ $themecolors,
+ array(
+ 'bg' => 'ffffff',
+ 'border' => 'cccccc',
+ 'text' => '333333',
+ )
+ );
+ ?>
+<style>
+.milestone-widget {
+ --milestone-text-color: <?php echo self::sanitize_color_hex( $colors['text'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
+ --milestone-bg-color: <?php echo self::sanitize_color_hex( $colors['bg'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
+ --milestone-border-color:<?php echo self::sanitize_color_hex( $colors['border'] ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>;
+}
+</style>
+ <?php
+ }
+
+ /**
+ * Ensure that a string representing a color in hexadecimal
+ * notation is safe for use in css and database saves.
+ *
+ * @param string $hex Hexademical code to sanitize.
+ * @param string $prefix Prefix for the hex code.
+ *
+ * @return string Color in hexadecimal notation on success - the string "transparent" otherwise.
+ */
+ public static function sanitize_color_hex( $hex, $prefix = '#' ) {
+ $hex = trim( $hex );
+
+ /* Strip recognized prefixes. */
+ if ( 0 === strpos( $hex, '#' ) ) {
+ $hex = substr( $hex, 1 );
+ } elseif ( 0 === strpos( $hex, '%23' ) ) {
+ $hex = substr( $hex, 3 );
+ }
+
+ if ( 0 !== preg_match( '/^[0-9a-fA-F]{6}$/', $hex ) ) {
+ return $prefix . $hex;
+ }
+
+ return 'transparent';
+ }
+
+ /**
+ * Localize Front-end Script.
+ *
+ * Print the javascript configuration array only if the
+ * current template has an instance of the widget that
+ * is still counting down. In all other cases, this
+ * function will dequeue milestone.js.
+ *
+ * Hooks into the "wp_footer" action.
+ */
+ public function localize_script() {
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return;
+ }
+
+ if ( empty( self::$config_js['instances'] ) ) {
+ wp_dequeue_script( 'milestone' );
+ return;
+ }
+ self::$config_js['api_root'] = esc_url_raw( rest_url() );
+ wp_localize_script( 'milestone', 'MilestoneConfig', self::$config_js );
+ }
+
+ /**
+ * Return an associative array of default values
+ *
+ * These values are used in new widgets.
+ *
+ * @return array Array of default values for the Widget's options.
+ */
+ public function defaults() {
+ $now = current_datetime();
+ $now_timestamp = $now->getTimestamp();
+
+ return array(
+ 'title' => '',
+ 'event' => __( 'The Big Day', 'jetpack' ),
+ 'unit' => 'automatic',
+ 'type' => 'until',
+ 'message' => __( 'The big day is here.', 'jetpack' ),
+ 'day' => gmdate( 'd', $now_timestamp ),
+ 'month' => gmdate( 'm', $now_timestamp ),
+ 'year' => gmdate( 'Y', $now_timestamp ),
+ 'hour' => 0,
+ 'min' => 0,
+ );
+ }
+
+ /**
+ * Widget
+ *
+ * @param array $args Widget args.
+ * @param array $instance Widget instance.
+ */
+ public function widget( $args, $instance ) {
+ $instance = wp_parse_args( $instance, $this->defaults() );
+
+ $this->enqueue_scripts();
+
+ echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
+ $title = apply_filters( 'widget_title', $instance['title'] );
+ if ( ! empty( $title ) ) {
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ $widget_id = ! empty( $args['widget_id'] ) ? $args['widget_id'] : 'milestone_widget';
+ $data = $this->get_widget_data( $instance );
+ $config = array(
+ 'id' => $widget_id,
+ 'message' => $data['message'],
+ 'refresh' => $data['refresh'],
+ );
+
+ /*
+ * Sidebars may be configured to not expose the `widget_id`. Example: `twentytwenty` footer areas.
+ *
+ * We need our own unique identifier.
+ */
+ $config['content_id'] = $widget_id . '-content';
+
+ self::$config_js['instances'][] = $config;
+
+ echo sprintf( '<div id="%s" class="milestone-content">', esc_html( $config['content_id'] ) );
+
+ echo '<div class="milestone-header">';
+ echo '<strong class="event">' . esc_html( $instance['event'] ) . '</strong>';
+ echo '<span class="date">' . esc_html( date_i18n( get_option( 'date_format' ), $data['milestone'] ) ) . '</span>';
+ echo '</div>';
+
+ echo wp_kses_post( $data['message'] );
+
+ echo '</div><!--milestone-content-->';
+
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
+ /** This action is documented in modules/widgets/gravatar-profile.php */
+ do_action( 'jetpack_stats_extra', 'widget_view', 'milestone' );
+ }
+
+ /**
+ * Enqueue widget styles
+ */
+ public function enqueue_scripts() {
+ wp_enqueue_style(
+ 'milestone-widget',
+ plugins_url( 'milestone-widget.css', __FILE__ ),
+ array(),
+ JETPACK__VERSION
+ );
+ }
+
+ /**
+ * Getter for the widget data.
+ *
+ * @param array $instance Widget instance.
+ *
+ * @return array
+ */
+ public function get_widget_data( $instance ) {
+ $data = array();
+
+ $instance = $this->sanitize_instance( $instance );
+
+ $milestone = mktime( $instance['hour'], $instance['min'], 0, $instance['month'], $instance['day'], $instance['year'] );
+ $now = (int) current_time( 'timestamp' ); // phpcs:ignore WordPress.DateTime.CurrentTimeTimestamp.Requested
+ $type = $instance['type'];
+
+ if ( 'since' === $type ) {
+ $diff = (int) floor( $now - $milestone );
+ } else {
+ $diff = (int) floor( $milestone - $now );
+ }
+
+ $data['diff'] = $diff;
+ $data['unit'] = $this->get_unit( $diff, $instance['unit'] );
+
+ // Setting the refresh counter to equal the number of seconds it takes to flip a unit.
+ $refresh_intervals = array(
+ 0, // should be YEAR_IN_SECONDS, but doing setTimeout for a year doesn't seem to be logical.
+ 0, // same goes for MONTH_IN_SECONDS.
+ DAY_IN_SECONDS,
+ HOUR_IN_SECONDS,
+ MINUTE_IN_SECONDS,
+ 1,
+ );
+
+ $data['refresh'] = $refresh_intervals[ array_search( $data['unit'], $this->available_units, true ) ];
+ $data['milestone'] = $milestone;
+
+ if ( ( 1 > $diff ) && ( 'until' === $type ) ) {
+ $data['message'] = '<div class="milestone-message">' . $instance['message'] . '</div>';
+ $data['refresh'] = 0; // No need to refresh, the milestone has been reached.
+ } else {
+ $interval_text = $this->get_interval_in_units( $diff, $data['unit'] );
+ $interval = (int) $interval_text;
+
+ if ( 'since' === $type ) {
+
+ switch ( $data['unit'] ) {
+ case 'years':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of year(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">year ago.</span>',
+ '<span class="difference">%s</span> <span class="label">years ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'months':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of month(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">month ago.</span>',
+ '<span class="difference">%s</span> <span class="label">months ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'days':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of days(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">day ago.</span>',
+ '<span class="difference">%s</span> <span class="label">days ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'hours':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of hours(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">hour ago.</span>',
+ '<span class="difference">%s</span> <span class="label">hours ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'minutes':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of minutes(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">minute ago.</span>',
+ '<span class="difference">%s</span> <span class="label">minutes ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'seconds':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of second(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">second ago.</span>',
+ '<span class="difference">%s</span> <span class="label">seconds ago.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ }
+ } else {
+ switch ( $this->get_unit( $diff, $instance['unit'] ) ) {
+ case 'years':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of year(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">year to go.</span>',
+ '<span class="difference">%s</span> <span class="label">years to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'months':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of month(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">month to go.</span>',
+ '<span class="difference">%s</span> <span class="label">months to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'days':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of days(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">day to go.</span>',
+ '<span class="difference">%s</span> <span class="label">days to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'hours':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of hour(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">hour to go.</span>',
+ '<span class="difference">%s</span> <span class="label">hours to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'minutes':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of minute(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">minute to go.</span>',
+ '<span class="difference">%s</span> <span class="label">minutes to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ case 'seconds':
+ $data['message'] = sprintf(
+ /* translators: %s is the number of second(s). */
+ _n(
+ '<span class="difference">%s</span> <span class="label">second to go.</span>',
+ '<span class="difference">%s</span> <span class="label">seconds to go.</span>',
+ $interval,
+ 'jetpack'
+ ),
+ $interval_text
+ );
+ break;
+ }
+ }
+ $data['message'] = '<div class="milestone-countdown">' . $data['message'] . '</div>';
+ }
+
+ return $data;
+ }
+
+ /**
+ * Return the largest possible time unit that the difference will be displayed in.
+ *
+ * @param Integer $seconds the interval in seconds.
+ * @param String $maximum_unit the maximum unit that will be used. Optional.
+ * @return String $calculated_unit
+ */
+ protected function get_unit( $seconds, $maximum_unit = 'automatic' ) {
+ $unit = '';
+
+ if ( $seconds >= YEAR_IN_SECONDS * 2 ) {
+ // more than 2 years - show in years, one decimal point.
+ $unit = 'years';
+
+ } elseif ( $seconds >= YEAR_IN_SECONDS ) {
+ if ( 'years' === $maximum_unit ) {
+ $unit = 'years';
+ } else {
+ // automatic mode - showing months even if it's between one and two years.
+ $unit = 'months';
+ }
+ } elseif ( $seconds >= MONTH_IN_SECONDS * 3 ) {
+ // fewer than 2 years - show in months.
+ $unit = 'months';
+
+ } elseif ( $seconds >= MONTH_IN_SECONDS ) {
+ if ( 'months' === $maximum_unit ) {
+ $unit = 'months';
+ } else {
+ // automatic mode - showing days even if it's between one and three months.
+ $unit = 'days';
+ }
+ } elseif ( $seconds >= DAY_IN_SECONDS - 1 ) {
+ // fewer than a month - show in days.
+ $unit = 'days';
+
+ } elseif ( $seconds >= HOUR_IN_SECONDS - 1 ) {
+ // less than 1 day - show in hours.
+ $unit = 'hours';
+
+ } elseif ( $seconds >= MINUTE_IN_SECONDS - 1 ) {
+ // less than 1 hour - show in minutes.
+ $unit = 'minutes';
+
+ } else {
+ // less than 1 minute - show in seconds.
+ $unit = 'seconds';
+ }
+
+ $maximum_unit_index = array_search( $maximum_unit, $this->available_units, true );
+ $unit_index = array_search( $unit, $this->available_units, true );
+
+ if (
+ false === $maximum_unit_index // the maximum unit parameter is automatic.
+ || $unit_index > $maximum_unit_index // there is not enough seconds for even one maximum time unit.
+ ) {
+ return $unit;
+ }
+ return $maximum_unit;
+ }
+
+ /**
+ * Returns a time difference value in specified units.
+ *
+ * @param int $seconds Number of seconds.
+ * @param string $units Unit.
+ * @return int $time_in_units.
+ */
+ protected function get_interval_in_units( $seconds, $units ) {
+ switch ( $units ) {
+ case 'years':
+ $years = $seconds / YEAR_IN_SECONDS;
+ $decimals = abs( round( $years, 1 ) - round( $years ) ) > 0 ? 1 : 0;
+ return number_format_i18n( $years, $decimals );
+ case 'months':
+ return (int) ( $seconds / 60 / 60 / 24 / 30 );
+ case 'days':
+ return (int) ( $seconds / 60 / 60 / 24 + 1 );
+ case 'hours':
+ return (int) ( $seconds / 60 / 60 );
+ case 'minutes':
+ return (int) ( $seconds / 60 + 1 );
+ default:
+ return $seconds;
+ }
+ }
+
+ /**
+ * Update widget.
+ *
+ * @param array $new_instance New instance of the widget being saved.
+ * @param array $old_instance Previous instance being saved over.
+ *
+ * @return array
+ */
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ return $this->sanitize_instance( $new_instance );
+ }
+
+ /**
+ * Make sure that a number is within a certain range.
+ * If the number is too small it will become the possible lowest value.
+ * If the number is too large it will become the possible highest value.
+ *
+ * @param int $n The number to check.
+ * @param int $floor The lowest possible value.
+ * @param int $ceil The highest possible value.
+ */
+ public function sanitize_range( $n, $floor, $ceil ) {
+ $n = (int) $n;
+ if ( $n < $floor ) {
+ $n = $floor;
+ } elseif ( $n > $ceil ) {
+ $n = $ceil;
+ }
+ return $n;
+ }
+
+ /**
+ * Sanitize an instance of this widget.
+ *
+ * Date ranges match the documentation for mktime in the php manual.
+ *
+ * @see https://php.net/manual/en/function.mktime.php#refsect1-function.mktime-parameters
+ *
+ * @uses Milestone_Widget::sanitize_range().
+ *
+ * @param array $dirty Unsantized data for the widget.
+ *
+ * @return array Santized data.
+ */
+ public function sanitize_instance( $dirty ) {
+ $dirty = wp_parse_args(
+ $dirty,
+ $this->defaults()
+ );
+
+ $allowed_tags = array(
+ 'a' => array(
+ 'title' => array(),
+ 'href' => array(),
+ 'target' => array(),
+ ),
+ 'em' => array( 'title' => array() ),
+ 'strong' => array( 'title' => array() ),
+ );
+
+ $clean = array(
+ 'title' => trim( wp_strip_all_tags( stripslashes( $dirty['title'] ) ) ),
+ 'event' => trim( wp_strip_all_tags( stripslashes( $dirty['event'] ) ) ),
+ 'unit' => $dirty['unit'],
+ 'type' => $dirty['type'],
+ 'message' => wp_kses( $dirty['message'], $allowed_tags ),
+ 'year' => $this->sanitize_range( $dirty['year'], 1901, 2037 ),
+ 'month' => $this->sanitize_range( $dirty['month'], 1, 12 ),
+ 'hour' => $this->sanitize_range( $dirty['hour'], 0, 23 ),
+ 'min' => zeroise( $this->sanitize_range( $dirty['min'], 0, 59 ), 2 ),
+ );
+
+ $clean['day'] = $this->sanitize_range( $dirty['day'], 1, gmdate( 't', mktime( 0, 0, 0, $clean['month'], 1, $clean['year'] ) ) );
+
+ return $clean;
+ }
+
+ /**
+ * Form
+ *
+ * @param array $instance Widget instance.
+ */
+ public function form( $instance ) {
+ $instance = $this->sanitize_instance( $instance );
+
+ $units = array(
+ 'automatic' => _x( 'Automatic', 'Milestone widget: mode in which the date unit is determined automatically', 'jetpack' ),
+ 'years' => _x( 'Years', 'Milestone widget: mode in which the date unit is set to years', 'jetpack' ),
+ 'months' => _x( 'Months', 'Milestone widget: mode in which the date unit is set to months', 'jetpack' ),
+ 'days' => _x( 'Days', 'Milestone widget: mode in which the date unit is set to days', 'jetpack' ),
+ 'hours' => _x( 'Hours', 'Milestone widget: mode in which the date unit is set to hours', 'jetpack' ),
+ );
+ ?>
+ <div class="milestone-widget">
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
+ </p>
+
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'event' ) ); ?>"><?php esc_html_e( 'Description', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'event' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'event' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['event'] ); ?>" />
+ </p>
+
+ <fieldset class="jp-ms-data-time">
+ <legend><?php esc_html_e( 'Date', 'jetpack' ); ?></legend>
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'month' ) ); ?>" class="assistive-text"><?php esc_html_e( 'Month', 'jetpack' ); ?></label>
+ <select id="<?php echo esc_attr( $this->get_field_id( 'month' ) ); ?>" class="month" name="<?php echo esc_attr( $this->get_field_name( 'month' ) ); ?>">
+ <?php
+ global $wp_locale;
+ for ( $i = 1; $i < 13; $i++ ) {
+ $monthnum = zeroise( $i, 2 );
+ printf(
+ '<option value="%s" %s>%s-%s</option>',
+ esc_attr( $monthnum ),
+ selected( $i, $instance['month'], false ),
+ esc_attr( $monthnum ),
+ esc_attr( $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) )
+ );
+ }
+ ?>
+ </select>
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'day' ) ); ?>" class="assistive-text"><?php esc_html_e( 'Day', 'jetpack' ); ?></label>
+ <input id="<?php echo esc_attr( $this->get_field_id( 'day' ) ); ?>" class="day" name="<?php echo esc_attr( $this->get_field_name( 'day' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['day'] ); ?>">,
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'year' ) ); ?>" class="assistive-text"><?php esc_html_e( 'Year', 'jetpack' ); ?></label>
+ <input id="<?php echo esc_attr( $this->get_field_id( 'year' ) ); ?>" class="year" name="<?php echo esc_attr( $this->get_field_name( 'year' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['year'] ); ?>">
+ </fieldset>
+
+ <fieldset class="jp-ms-data-time">
+ <legend><?php esc_html_e( 'Time', 'jetpack' ); ?></legend>
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'hour' ) ); ?>" class="assistive-text"><?php esc_html_e( 'Hour', 'jetpack' ); ?></label>
+ <input id="<?php echo esc_attr( $this->get_field_id( 'hour' ) ); ?>" class="hour" name="<?php echo esc_attr( $this->get_field_name( 'hour' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['hour'] ); ?>">
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'min' ) ); ?>" class="assistive-text"><?php esc_html_e( 'Minutes', 'jetpack' ); ?></label>
+
+ <span class="time-separator">:</span>
+
+ <input id="<?php echo esc_attr( $this->get_field_id( 'min' ) ); ?>" class="minutes" name="<?php echo esc_attr( $this->get_field_name( 'min' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['min'] ); ?>">
+ </fieldset>
+
+ <fieldset class="jp-ms-data-unit">
+ <legend><?php esc_html_e( 'Time Unit', 'jetpack' ); ?></legend>
+
+ <label for="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>" class="assistive-text">
+ <?php esc_html_e( 'Time Unit', 'jetpack' ); ?>
+ </label>
+
+ <select id="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>" class="unit" name="<?php echo esc_attr( $this->get_field_name( 'unit' ) ); ?>">
+ <?php
+ foreach ( $units as $key => $unit ) {
+ printf(
+ '<option value="%s" %s>%s</option>',
+ esc_attr( $key ),
+ selected( $key, $instance['unit'], false ),
+ esc_html( $unit )
+ );
+ }
+ ?>
+ </select>
+ </fieldset>
+
+ <ul class="milestone-type">
+ <li>
+ <label>
+ <input
+ <?php checked( $instance['type'], 'until' ); ?>
+ name="<?php echo esc_attr( $this->get_field_name( 'type' ) ); ?>"
+ type="radio"
+ value="until"
+ />
+ <?php esc_html_e( 'Until your milestone', 'jetpack' ); ?>
+ </label>
+ </li>
+
+ <li>
+ <label>
+ <input
+ <?php checked( $instance['type'], 'since' ); ?>
+ name="<?php echo esc_attr( $this->get_field_name( 'type' ) ); ?>"
+ type="radio"
+ value="since"
+ />
+ <?php esc_html_e( 'Since your milestone', 'jetpack' ); ?>
+ </label>
+ </li>
+ </ul>
+
+ <p class="milestone-message-wrapper">
+ <label for="<?php echo esc_attr( $this->get_field_id( 'message' ) ); ?>"><?php esc_html_e( 'Milestone Reached Message', 'jetpack' ); ?></label>
+ <textarea id="<?php echo esc_attr( $this->get_field_id( 'message' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'message' ) ); ?>" class="widefat" rows="3"><?php echo esc_textarea( $instance['message'] ); ?></textarea>
+ </p>
+ </div>
+
+ <?php
+ }
+}
diff --git a/plugins/jetpack/modules/widgets/milestone/milestone-widget.css b/plugins/jetpack/modules/widgets/milestone/milestone-widget.css
new file mode 100644
index 00000000..6576947f
--- /dev/null
+++ b/plugins/jetpack/modules/widgets/milestone/milestone-widget.css
@@ -0,0 +1,41 @@
+.milestone-widget {
+ margin-bottom: 1em;
+}
+.milestone-content {
+ line-height: 2;
+ margin-top: 5px;
+ max-width: 100%;
+ padding: 0;
+ text-align: center;
+}
+.milestone-header {
+ background-color: var(--milestone-text-color, #111);
+ color: var(--milestone-bg-color, #fff);
+ line-height: 1.3;
+ margin: 0;
+ padding: .8em;
+}
+.milestone-header .event,
+.milestone-header .date {
+ display: block;
+}
+.milestone-header .event {
+ font-size: 120%;
+}
+.milestone-countdown .difference {
+ display: block;
+ font-size: 500%;
+ font-weight: bold;
+ line-height: 1.2;
+}
+.milestone-countdown,
+.milestone-message {
+ background-color: var(--milestone-bg-color, #fff);
+ border: 1px solid var(--milestone-border-color, #767676);
+ border-top: 0;
+ color: var(--milestone-text-color, #111);
+ padding-bottom: 1em;
+}
+.milestone-message {
+ padding-top: 1em;
+} \ No newline at end of file
diff --git a/plugins/jetpack/modules/widgets/milestone/milestone.js b/plugins/jetpack/modules/widgets/milestone/milestone.js
index 3780dec6..4cc1a93d 100644
--- a/plugins/jetpack/modules/widgets/milestone/milestone.js
+++ b/plugins/jetpack/modules/widgets/milestone/milestone.js
@@ -1,41 +1,51 @@
/* global MilestoneConfig */
-var Milestone = ( function( $ ) {
- var Milestone = function( args ) {
- var $widget = $( '#' + args.id ),
+var Milestone = ( function () {
+ var Milestone = function ( args ) {
+ var widget_content = document.getElementById( args.content_id ),
id = args.id,
refresh = args.refresh * 1000;
- this.timer = function() {
+ this.timer = function () {
var instance = this;
+ var xhr = new XMLHttpRequest();
- $.ajax( {
- url: MilestoneConfig.api_root + 'jetpack/v4/widgets/' + id,
- success: function( result ) {
- $widget.find( '.milestone-countdown' ).replaceWith( result.message );
- refresh = result.refresh * 1000;
+ xhr.onload = function () {
+ var response = JSON.parse( xhr.responseText ),
+ httpCheck = xhr.status >= 200 && xhr.status < 300,
+ responseCheck =
+ 'undefined' !== typeof response.message && 'undefined' !== typeof response.refresh;
+
+ if ( httpCheck && responseCheck ) {
+ var countdownElement = widget_content.querySelector( '.milestone-countdown' );
+
+ countdownElement.outerHTML = response.message;
+ refresh = response.refresh * 1000;
if ( ! refresh ) {
return;
}
- setTimeout( function() {
+ setTimeout( function () {
instance.timer();
}, refresh );
- },
- } );
+ }
+ };
+
+ xhr.open( 'GET', MilestoneConfig.api_root + 'jetpack/v4/widgets/' + id );
+ xhr.send();
};
if ( refresh > 0 ) {
this.timer();
}
};
- return function( args ) {
+ return function ( args ) {
return new Milestone( args );
};
-} )( jQuery );
+} )();
-( function() {
+( function () {
var i,
MilestoneInstances = {};
diff --git a/plugins/jetpack/modules/widgets/milestone/milestone.php b/plugins/jetpack/modules/widgets/milestone/milestone.php
index 2da5582b..4811d00f 100644
--- a/plugins/jetpack/modules/widgets/milestone/milestone.php
+++ b/plugins/jetpack/modules/widgets/milestone/milestone.php
@@ -1,685 +1,19 @@
<?php
-/*
-Plugin Name: Milestone
-Description: Countdown to a specific date.
-Version: 1.0
-Author: Automattic Inc.
-Author URI: https://automattic.com/
-License: GPLv2 or later
-*/
-
-use Automattic\Jetpack\Assets;
-
+/**
+ * Milestone Widget Loader.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * The widget class.
+ */
+require_once __DIR__ . '/class-milestone-widget.php';
+
+/**
+ * Registers the widget for use!
+ */
function jetpack_register_widget_milestone() {
register_widget( 'Milestone_Widget' );
}
add_action( 'widgets_init', 'jetpack_register_widget_milestone' );
-
-class Milestone_Widget extends WP_Widget {
- private static $dir = null;
- private static $url = null;
- private static $defaults = null;
- private static $config_js = null;
-
- /**
- * Available time units sorted in descending order.
- * @var Array
- */
- protected $available_units = array(
- 'years',
- 'months',
- 'days',
- 'hours',
- 'minutes',
- 'seconds'
- );
-
- function __construct() {
- $widget = array(
- 'classname' => 'milestone-widget',
- 'description' => __( 'Display a countdown to a certain date.', 'jetpack' ),
- );
-
- parent::__construct(
- 'Milestone_Widget',
- /** This filter is documented in modules/widgets/facebook-likebox.php */
- apply_filters( 'jetpack_widget_name', __( 'Milestone', 'jetpack' ) ),
- $widget
- );
-
- self::$dir = trailingslashit( dirname( __FILE__ ) );
- self::$url = plugin_dir_url( __FILE__ );
-
- add_action( 'wp_enqueue_scripts', array( __class__, 'enqueue_template' ) );
- add_action( 'admin_enqueue_scripts', array( __class__, 'enqueue_admin' ) );
- add_action( 'wp_footer', array( $this, 'localize_script' ) );
-
- if ( is_active_widget( false, false, $this->id_base, true ) || is_active_widget( false, false, 'monster', true ) || is_customize_preview() ) {
- add_action( 'wp_head', array( __class__, 'styles_template' ) );
- }
- }
-
- public static function enqueue_admin( $hook_suffix ) {
- if ( 'widgets.php' == $hook_suffix ) {
- wp_enqueue_style( 'milestone-admin', self::$url . 'style-admin.css', array(), '20161215' );
- wp_enqueue_script(
- 'milestone-admin-js',
- Assets::get_file_url_for_environment(
- '_inc/build/widgets/milestone/admin.min.js',
- 'modules/widgets/milestone/admin.js'
- ),
- array( 'jquery' ),
- '20170915',
- true
- );
- }
- }
-
- public static function enqueue_template() {
- if ( Jetpack_AMP_Support::is_amp_request() ) {
- return;
- }
-
- wp_enqueue_script(
- 'milestone',
- Assets::get_file_url_for_environment(
- '_inc/build/widgets/milestone/milestone.min.js',
- 'modules/widgets/milestone/milestone.js'
- ),
- array( 'jquery' ),
- '20160520',
- true
- );
- }
-
- public static function styles_template() {
- global $themecolors;
- $colors = wp_parse_args( $themecolors, array(
- 'bg' => 'ffffff',
- 'border' => 'cccccc',
- 'text' => '333333',
- ) );
-?>
-<style>
-.milestone-widget {
- margin-bottom: 1em;
-}
-.milestone-content {
- line-height: 2;
- margin-top: 5px;
- max-width: 100%;
- padding: 0;
- text-align: center;
-}
-.milestone-header {
- background-color: <?php echo self::sanitize_color_hex( $colors['text'] ); ?>;
- color: <?php echo self::sanitize_color_hex( $colors['bg'] ); ?>;
- line-height: 1.3;
- margin: 0;
- padding: .8em;
-}
-.milestone-header .event,
-.milestone-header .date {
- display: block;
-}
-.milestone-header .event {
- font-size: 120%;
-}
-.milestone-countdown .difference {
- display: block;
- font-size: 500%;
- font-weight: bold;
- line-height: 1.2;
-}
-.milestone-countdown,
-.milestone-message {
- background-color: <?php echo self::sanitize_color_hex( $colors['bg'] ); ?>;
- border: 1px solid <?php echo self::sanitize_color_hex( $colors['border'] ); ?>;
- border-top: 0;
- color: <?php echo self::sanitize_color_hex( $colors['text'] ); ?>;
- padding-bottom: 1em;
-}
-.milestone-message {
- padding-top: 1em
-}
-</style>
-<?php
- }
-
- /**
- * Ensure that a string representing a color in hexadecimal
- * notation is safe for use in css and database saves.
- *
- * @param string Color in hexadecimal notation. "#" may or may not be prepended to the string.
- * @return string Color in hexadecimal notation on success - the string "transparent" otherwise.
- */
- public static function sanitize_color_hex( $hex, $prefix = '#' ) {
- $hex = trim( $hex );
-
- /* Strip recognized prefixes. */
- if ( 0 === strpos( $hex, '#' ) ) {
- $hex = substr( $hex, 1 );
- } elseif ( 0 === strpos( $hex, '%23' ) ) {
- $hex = substr( $hex, 3 );
- }
-
- if ( 0 !== preg_match( '/^[0-9a-fA-F]{6}$/', $hex ) ) {
- return $prefix . $hex;
- }
-
- return 'transparent';
- }
-
- /**
- * Localize Front-end Script.
- *
- * Print the javascript configuration array only if the
- * current template has an instance of the widget that
- * is still counting down. In all other cases, this
- * function will dequeue milestone.js.
- *
- * Hooks into the "wp_footer" action.
- */
- function localize_script() {
- if ( Jetpack_AMP_Support::is_amp_request() ) {
- return;
- }
-
- if ( empty( self::$config_js['instances'] ) ) {
- wp_dequeue_script( 'milestone' );
- return;
- }
- self::$config_js['api_root'] = esc_url_raw( rest_url() );
- wp_localize_script( 'milestone', 'MilestoneConfig', self::$config_js );
- }
-
- /**
- * Widget
- */
- function widget( $args, $instance ) {
- echo $args['before_widget'];
-
- /** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
- $title = apply_filters( 'widget_title', $instance['title'] );
- if ( ! empty( $title ) ) {
- echo $args['before_title'] . $title . $args['after_title'];
- }
-
- $data = $this->get_widget_data( $instance );
-
- self::$config_js['instances'][] = array(
- 'id' => $args['widget_id'],
- 'message' => $data['message'],
- 'refresh' => $data['refresh']
- );
-
- echo '<div class="milestone-content">';
-
- echo '<div class="milestone-header">';
- echo '<strong class="event">' . esc_html( $instance['event'] ) . '</strong>';
- echo '<span class="date">' . esc_html( date_i18n( get_option( 'date_format' ), $data['milestone'] ) ) . '</span>';
- echo '</div>';
-
- echo $data['message'];
-
- echo '</div><!--milestone-content-->';
-
- echo $args['after_widget'];
-
- /** This action is documented in modules/widgets/gravatar-profile.php */
- do_action( 'jetpack_stats_extra', 'widget_view', 'milestone' );
- }
-
- function get_widget_data( $instance ) {
- $data = array();
-
- $instance = $this->sanitize_instance( $instance );
-
- $milestone = mktime( $instance['hour'], $instance['min'], 0, $instance['month'], $instance['day'], $instance['year'] );
- $now = (int) current_time( 'timestamp' );
- $type = $instance['type'];
-
- if ( 'since' === $type ) {
- $diff = (int) floor( $now - $milestone );
- } else {
- $diff = (int) floor( $milestone - $now );
- }
-
- $data['diff'] = $diff;
- $data['unit'] = $this->get_unit( $diff, $instance['unit'] );
-
- // Setting the refresh counter to equal the number of seconds it takes to flip a unit
- $refresh_intervals = array(
- 0, // should be YEAR_IN_SECONDS, but doing setTimeout for a year doesn't seem to be logical
- 0, // same goes for MONTH_IN_SECONDS,
- DAY_IN_SECONDS,
- HOUR_IN_SECONDS,
- MINUTE_IN_SECONDS,
- 1
- );
-
- $data['refresh'] = $refresh_intervals[ array_search( $data['unit'], $this->available_units ) ];
- $data['milestone'] = $milestone;
-
- if ( ( 1 > $diff ) && ( 'until' === $type ) ) {
- $data['message'] = '<div class="milestone-message">' . $instance['message'] . '</div>';
- $data['refresh'] = 0; // No need to refresh, the milestone has been reached
- } else {
- $interval_text = $this->get_interval_in_units( $diff, $data['unit'] );
- $interval = intval( $interval_text );
-
- if ( 'since' === $type ) {
-
- switch ( $data['unit'] ) {
- case 'years':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">year ago.</span>',
- '<span class="difference">%s</span> <span class="label">years ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'months':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">month ago.</span>',
- '<span class="difference">%s</span> <span class="label">months ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'days':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">day ago.</span>',
- '<span class="difference">%s</span> <span class="label">days ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'hours':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">hour ago.</span>',
- '<span class="difference">%s</span> <span class="label">hours ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'minutes':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">minute ago.</span>',
- '<span class="difference">%s</span> <span class="label">minutes ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'seconds':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">second ago.</span>',
- '<span class="difference">%s</span> <span class="label">seconds ago.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- }
- } else {
- switch ( $this->get_unit( $diff, $instance['unit'] ) ) {
- case 'years':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">year to go.</span>',
- '<span class="difference">%s</span> <span class="label">years to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'months':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">month to go.</span>',
- '<span class="difference">%s</span> <span class="label">months to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'days':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">day to go.</span>',
- '<span class="difference">%s</span> <span class="label">days to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'hours':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">hour to go.</span>',
- '<span class="difference">%s</span> <span class="label">hours to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'minutes':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">minute to go.</span>',
- '<span class="difference">%s</span> <span class="label">minutes to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- case 'seconds':
- $data['message'] = sprintf(
- _n(
- '<span class="difference">%s</span> <span class="label">second to go.</span>',
- '<span class="difference">%s</span> <span class="label">seconds to go.</span>',
- $interval,
- 'jetpack'
- ),
- $interval_text
- );
- break;
- }
- }
- $data['message'] = '<div class="milestone-countdown">' . $data['message'] . '</div>';
- }
-
- return $data;
- }
-
- /**
- * Return the largest possible time unit that the difference will be displayed in.
- *
- * @param Integer $seconds the interval in seconds
- * @param String $maximum_unit the maximum unit that will be used. Optional.
- * @return String $calculated_unit
- */
- protected function get_unit( $seconds, $maximum_unit = 'automatic' ) {
- $unit = '';
-
- if ( $seconds >= YEAR_IN_SECONDS * 2 ) {
- // more than 2 years - show in years, one decimal point
- $unit = 'years';
-
- } else if ( $seconds >= YEAR_IN_SECONDS ) {
- if ( 'years' === $maximum_unit ) {
- $unit = 'years';
- } else {
- // automatic mode - showing months even if it's between one and two years
- $unit = 'months';
- }
-
- } else if ( $seconds >= MONTH_IN_SECONDS * 3 ) {
- // fewer than 2 years - show in months
- $unit = 'months';
-
- } else if ( $seconds >= MONTH_IN_SECONDS ) {
- if ( 'months' === $maximum_unit ) {
- $unit = 'months';
- } else {
- // automatic mode - showing days even if it's between one and three months
- $unit = 'days';
- }
-
- } else if ( $seconds >= DAY_IN_SECONDS - 1 ) {
- // fewer than a month - show in days
- $unit = 'days';
-
- } else if ( $seconds >= HOUR_IN_SECONDS - 1 ) {
- // less than 1 day - show in hours
- $unit = 'hours';
-
- } else if ( $seconds >= MINUTE_IN_SECONDS - 1 ) {
- // less than 1 hour - show in minutes
- $unit = 'minutes';
-
- } else {
- // less than 1 minute - show in seconds
- $unit = 'seconds';
- }
-
- $maximum_unit_index = array_search( $maximum_unit, $this->available_units );
- $unit_index = array_search( $unit, $this->available_units );
-
- if (
- false === $maximum_unit_index // the maximum unit parameter is automatic
- || $unit_index > $maximum_unit_index // there is not enough seconds for even one maximum time unit
- ) {
- return $unit;
- }
- return $maximum_unit;
- }
-
- /**
- * Returns a time difference value in specified units.
- *
- * @param Integer $seconds
- * @param String $units
- * @return Integer|String $time_in_units
- */
- protected function get_interval_in_units( $seconds, $units ) {
- switch ( $units ) {
- case 'years':
- $years = $seconds / YEAR_IN_SECONDS;
- $decimals = abs( round( $years, 1 ) - round( $years ) ) > 0 ? 1 : 0;
- return number_format_i18n( $years, $decimals );
- case 'months':
- return (int) ( $seconds / 60 / 60 / 24 / 30 );
- case 'days':
- return (int) ( $seconds / 60 / 60 / 24 + 1 );
- case 'hours':
- return (int) ( $seconds / 60 / 60 );
- case 'minutes':
- return (int) ( $seconds / 60 + 1 );
- default:
- return $seconds;
- }
- }
-
- /**
- * Update
- */
- function update( $new_instance, $old_instance ) {
- return $this->sanitize_instance( $new_instance );
- }
-
- /*
- * Make sure that a number is within a certain range.
- * If the number is too small it will become the possible lowest value.
- * If the number is too large it will become the possible highest value.
- *
- * @param int $n The number to check.
- * @param int $floor The lowest possible value.
- * @param int $ceil The highest possible value.
- */
- function sanitize_range( $n, $floor, $ceil ) {
- $n = (int) $n;
- if ( $n < $floor ) {
- $n = $floor;
- } elseif ( $n > $ceil ) {
- $n = $ceil;
- }
- return $n;
- }
-
- /*
- * Sanitize an instance of this widget.
- *
- * Date ranges match the documentation for mktime in the php manual.
- * @see https://php.net/manual/en/function.mktime.php#refsect1-function.mktime-parameters
- *
- * @uses Milestone_Widget::sanitize_range().
- */
- function sanitize_instance( $dirty ) {
- $now = (int) current_time( 'timestamp' );
-
- $dirty = wp_parse_args( $dirty, array(
- 'title' => '',
- 'event' => __( 'The Big Day', 'jetpack' ),
- 'unit' => 'automatic',
- 'type' => 'until',
- 'message' => __( 'The big day is here.', 'jetpack' ),
- 'day' => date( 'd', $now ),
- 'month' => date( 'm', $now ),
- 'year' => date( 'Y', $now ),
- 'hour' => 0,
- 'min' => 0,
- ) );
-
- $allowed_tags = array(
- 'a' => array( 'title' => array(), 'href' => array(), 'target' => array() ),
- 'em' => array( 'title' => array() ),
- 'strong' => array( 'title' => array() ),
- );
-
- $clean = array(
- 'title' => trim( strip_tags( stripslashes( $dirty['title'] ) ) ),
- 'event' => trim( strip_tags( stripslashes( $dirty['event'] ) ) ),
- 'unit' => $dirty['unit'],
- 'type' => $dirty['type'],
- 'message' => wp_kses( $dirty['message'], $allowed_tags ),
- 'year' => $this->sanitize_range( $dirty['year'], 1901, 2037 ),
- 'month' => $this->sanitize_range( $dirty['month'], 1, 12 ),
- 'hour' => $this->sanitize_range( $dirty['hour'], 0, 23 ),
- 'min' => zeroise( $this->sanitize_range( $dirty['min'], 0, 59 ), 2 ),
- );
-
- $clean['day'] = $this->sanitize_range( $dirty['day'], 1, date( 't', mktime( 0, 0, 0, $clean['month'], 1, $clean['year'] ) ) );
-
- return $clean;
- }
-
- /**
- * Form
- */
- function form( $instance ) {
- $instance = $this->sanitize_instance( $instance );
-
- $units = array(
- 'automatic' => _x( 'Automatic', 'Milestone widget: mode in which the date unit is determined automatically', 'jetpack' ),
- 'years' => _x( 'Years', 'Milestone widget: mode in which the date unit is set to years', 'jetpack' ),
- 'months' => _x( 'Months', 'Milestone widget: mode in which the date unit is set to months', 'jetpack' ),
- 'days' => _x( 'Days', 'Milestone widget: mode in which the date unit is set to days', 'jetpack' ),
- 'hours' => _x( 'Hours', 'Milestone widget: mode in which the date unit is set to hours', 'jetpack' ),
- );
- ?>
-
- <div class="milestone-widget">
- <p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
- </p>
-
- <p>
- <label for="<?php echo $this->get_field_id( 'event' ); ?>"><?php _e( 'Description', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'event' ); ?>" name="<?php echo $this->get_field_name( 'event' ); ?>" type="text" value="<?php echo esc_attr( $instance['event'] ); ?>" />
- </p>
-
- <fieldset class="jp-ms-data-time">
- <legend><?php esc_html_e( 'Date', 'jetpack' ); ?></legend>
-
- <label for="<?php echo $this->get_field_id( 'month' ); ?>" class="assistive-text"><?php _e( 'Month', 'jetpack' ); ?></label>
- <select id="<?php echo $this->get_field_id( 'month' ); ?>" class="month" name="<?php echo $this->get_field_name( 'month' ); ?>"><?php
- global $wp_locale;
- for ( $i = 1; $i < 13; $i++ ) {
- $monthnum = zeroise( $i, 2 );
- echo '<option value="' . esc_attr( $monthnum ) . '"' . selected( $i, $instance['month'], false ) . '>' . $monthnum . '-' . $wp_locale->get_month_abbrev( $wp_locale->get_month( $i ) ) . '</option>';
- }
- ?></select>
-
- <label for="<?php echo $this->get_field_id( 'day' ); ?>" class="assistive-text"><?php _e( 'Day', 'jetpack' ); ?></label>
- <input id="<?php echo $this->get_field_id( 'day' ); ?>" class="day" name="<?php echo $this->get_field_name( 'day' ); ?>" type="text" value="<?php echo esc_attr( $instance['day'] ); ?>">,
-
- <label for="<?php echo $this->get_field_id( 'year' ); ?>" class="assistive-text"><?php _e( 'Year', 'jetpack' ); ?></label>
- <input id="<?php echo $this->get_field_id( 'year' ); ?>" class="year" name="<?php echo $this->get_field_name( 'year' ); ?>" type="text" value="<?php echo esc_attr( $instance['year'] ); ?>">
- </fieldset>
-
- <fieldset class="jp-ms-data-time">
- <legend><?php esc_html_e( 'Time', 'jetpack' ); ?></legend>
-
- <label for="<?php echo $this->get_field_id( 'hour' ); ?>" class="assistive-text"><?php _e( 'Hour', 'jetpack' ); ?></label>
- <input id="<?php echo $this->get_field_id( 'hour' ); ?>" class="hour" name="<?php echo $this->get_field_name( 'hour' ); ?>" type="text" value="<?php echo esc_attr( $instance['hour'] ); ?>">
-
- <label for="<?php echo $this->get_field_id( 'min' ); ?>" class="assistive-text"><?php _e( 'Minutes', 'jetpack' ); ?></label>
-
- <span class="time-separator">:</span>
-
- <input id="<?php echo $this->get_field_id( 'min' ); ?>" class="minutes" name="<?php echo $this->get_field_name( 'min' ); ?>" type="text" value="<?php echo esc_attr( $instance['min'] ); ?>">
- </fieldset>
-
- <fieldset class="jp-ms-data-unit">
- <legend><?php esc_html_e( 'Time Unit', 'jetpack' ); ?></legend>
-
- <label for="<?php echo $this->get_field_id( 'unit' ); ?>" class="assistive-text">
- <?php _e( 'Time Unit', 'jetpack' ); ?>
- </label>
- <select id="<?php echo $this->get_field_id( 'unit' ); ?>" class="unit" name="<?php echo $this->get_field_name( 'unit' ); ?>">
- <?php
- foreach ( $units as $key => $unit ) {
- echo '<option value="' . esc_attr( $key ) . '"' . selected( $key, $instance['unit'], false ) . '>' . $unit . '</option>';
- }
- ?></select>
- </fieldset>
-
- <ul class="milestone-type">
- <li>
- <label>
- <input
- <?php checked( $instance['type'], 'until' ); ?>
- name="<?php echo esc_attr( $this->get_field_name( 'type' ) ); ?>"
- type="radio"
- value="until"
- />
- <?php esc_html_e( 'Until your milestone', 'jetpack' ); ?>
- </label>
- </li>
-
- <li>
- <label>
- <input
- <?php checked( $instance['type'], 'since' ); ?>
- name="<?php echo esc_attr( $this->get_field_name( 'type' ) ); ?>"
- type="radio"
- value="since"
- />
- <?php esc_html_e( 'Since your milestone', 'jetpack' ); ?>
- </label>
- </li>
- </ul>
-
- <p class="milestone-message-wrapper">
- <label for="<?php echo $this->get_field_id( 'message' ); ?>"><?php _e( 'Milestone Reached Message', 'jetpack' ); ?></label>
- <textarea id="<?php echo $this->get_field_id( 'message' ); ?>" name="<?php echo $this->get_field_name( 'message' ); ?>" class="widefat" rows="3"><?php echo esc_textarea( $instance['message'] ); ?></textarea>
- </p>
- </div>
-
- <?php
- }
-}
diff --git a/plugins/jetpack/modules/widgets/milestone/style-admin.css b/plugins/jetpack/modules/widgets/milestone/style-admin.css
index 15a97102..7aceb3a3 100644
--- a/plugins/jetpack/modules/widgets/milestone/style-admin.css
+++ b/plugins/jetpack/modules/widgets/milestone/style-admin.css
@@ -48,3 +48,24 @@
width: 4em;
}
}
+
+/* Fix styles of the Milestone block when it is dispayed as a part of the Legacy Widget block */
+.wp-block-legacy-widget__edit-form .widget-inside .widget-content .jp-ms-data-time .month {
+ display: inline-block;
+ width: 6.5em;
+ min-height: 34px;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside .widget-content .jp-ms-data-time input[type="text"] {
+ display: inline-block;
+ width: 3.2em;
+}
+
+.wp-block-legacy-widget__edit-form .widget-inside .widget-content .jp-ms-data-time .year[type="text"] {
+ width: 4.5em;
+}
+
+.editor-styles-wrapper ul.milestone-type {
+ list-style-type: none;
+ padding-left: 0;
+} \ No newline at end of file
diff --git a/plugins/jetpack/modules/widgets/my-community.php b/plugins/jetpack/modules/widgets/my-community.php
index 03958c38..c16baf21 100644
--- a/plugins/jetpack/modules/widgets/my-community.php
+++ b/plugins/jetpack/modules/widgets/my-community.php
@@ -1,4 +1,7 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+
+use Automattic\Jetpack\Redirect;
+
/**
* Disable direct access/execution to/of the widget code.
*/
@@ -18,21 +21,21 @@ class Jetpack_My_Community_Widget extends WP_Widget {
*
* @var int $expiration
*/
- static $expiration = 600;
+ public static $expiration = 600;
/**
* Default widget title.
*
* @var string $default_title
*/
- var $default_title;
+ public $default_title;
/**
* Registers the widget with WordPress.
*/
- function __construct() {
+ public function __construct() {
parent::__construct(
- 'jetpack_my_community', // Base ID
+ 'jetpack_my_community', // Base ID.
/** This filter is documented in modules/widgets/facebook-likebox.php */
apply_filters( 'jetpack_widget_name', esc_html__( 'My Community', 'jetpack' ) ),
array(
@@ -51,7 +54,7 @@ class Jetpack_My_Community_Widget extends WP_Widget {
/**
* Enqueue stylesheet for grid layout.
*/
- function enqueue_style() {
+ public function enqueue_style() {
wp_register_style( 'jetpack-my-community-widget', plugins_url( 'my-community/style.css', __FILE__ ), array(), '20160129' );
wp_enqueue_style( 'jetpack-my-community-widget' );
}
@@ -65,14 +68,14 @@ class Jetpack_My_Community_Widget extends WP_Widget {
*
* @return string|void
*/
- function form( $instance ) {
+ public function form( $instance ) {
$title = isset( $instance['title'] ) ? $instance['title'] : false;
if ( false === $title ) {
$title = $this->default_title;
}
- $number = isset( $instance['number'] ) ? $instance['number'] : 10;
- if ( ! in_array( $number, array( 10, 50 ) ) ) {
+ $number = isset( $instance['number'] ) ? (int) $instance['number'] : 10;
+ if ( ! in_array( $number, array( 10, 50 ), true ) ) {
$number = 10;
}
@@ -82,35 +85,35 @@ class Jetpack_My_Community_Widget extends WP_Widget {
?>
<p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<p>
<label><?php esc_html_e( 'Show a maximum of', 'jetpack' ); ?></label>
</p>
<ul>
- <li><label><input id="<?php echo $this->get_field_id( 'number' ); ?>-few" name="<?php echo $this->get_field_name( 'number' ); ?>" type="radio" value="10" <?php checked( '10', $number ); ?> /> <?php esc_html_e( '10 community members', 'jetpack' ); ?></label></li>
- <li><label><input id="<?php echo $this->get_field_id( 'number' ); ?>-lots" name="<?php echo $this->get_field_name( 'number' ); ?>" type="radio" value="50" <?php checked( '50', $number ); ?> /> <?php esc_html_e( '50 community members', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>-few" name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>" type="radio" value="10" <?php checked( '10', $number ); ?> /> <?php esc_html_e( '10 community members', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'number' ) ); ?>-lots" name="<?php echo esc_attr( $this->get_field_name( 'number' ) ); ?>" type="radio" value="50" <?php checked( '50', $number ); ?> /> <?php esc_html_e( '50 community members', 'jetpack' ); ?></label></li>
</ul>
<p>
- <label for="<?php echo $this->get_field_id( 'include_likers' ); ?>">
- <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id( 'include_likers' ); ?>" name="<?php echo $this->get_field_name( 'include_likers' ); ?>" value="1" <?php checked( $include_likers, 1 ); ?> />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'include_likers' ) ); ?>">
+ <input type="checkbox" class="checkbox" id="<?php echo esc_attr( $this->get_field_id( 'include_likers' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'include_likers' ) ); ?>" value="1" <?php checked( $include_likers, 1 ); ?> />
<?php esc_html_e( 'Include activity from likers', 'jetpack' ); ?>
</label>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'include_followers' ); ?>">
- <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id( 'include_followers' ); ?>" name="<?php echo $this->get_field_name( 'include_followers' ); ?>" value="1" <?php checked( $include_followers, 1 ); ?> />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'include_followers' ) ); ?>">
+ <input type="checkbox" class="checkbox" id="<?php echo esc_attr( $this->get_field_id( 'include_followers' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'include_followers' ) ); ?>" value="1" <?php checked( $include_followers, 1 ); ?> />
<?php esc_html_e( 'Include activity from followers', 'jetpack' ); ?>
</label>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'include_commenters' ); ?>">
- <input type="checkbox" class="checkbox" id="<?php echo $this->get_field_id( 'include_commenters' ); ?>" name="<?php echo $this->get_field_name( 'include_commenters' ); ?>" value="1" <?php checked( $include_commenters, 1 ); ?> />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'include_commenters' ) ); ?>">
+ <input type="checkbox" class="checkbox" id="<?php echo esc_attr( $this->get_field_id( 'include_commenters' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'include_commenters' ) ); ?>" value="1" <?php checked( $include_commenters, 1 ); ?> />
<?php esc_html_e( 'Include activity from commenters', 'jetpack' ); ?>
</label>
</p>
@@ -128,15 +131,15 @@ class Jetpack_My_Community_Widget extends WP_Widget {
*
* @return array Updated safe values to be saved.
*/
- function update( $new_instance, $old_instance ) {
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = array();
$instance['title'] = wp_kses( $new_instance['title'], array() );
if ( $instance['title'] === $this->default_title ) {
- $instance['title'] = false; // Store as false in case of language change
+ $instance['title'] = false; // Store as false in case of language change.
}
$instance['number'] = (int) $new_instance['number'];
- if ( ! in_array( $instance['number'], array( 10, 50 ) ) ) {
+ if ( ! in_array( $instance['number'], array( 10, 50 ), true ) ) {
$instance['number'] = 10;
}
@@ -157,9 +160,10 @@ class Jetpack_My_Community_Widget extends WP_Widget {
* @param array $args Widget arguments.
* @param array $instance Saved values from database.
*/
- function widget( $args, $instance ) {
+ public function widget( $args, $instance ) {
$instance = wp_parse_args(
- $instance, array(
+ $instance,
+ array(
'title' => false,
'number' => true,
'include_likers' => true,
@@ -174,13 +178,12 @@ class Jetpack_My_Community_Widget extends WP_Widget {
$title = $this->default_title;
}
+ echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
/** This filter is documented in wp-includes/widgets/class-wp-widget-pages.php */
$title = apply_filters( 'widget_title', $title );
-
- echo $args['before_widget'];
-
if ( ! empty( $title ) ) {
- echo $args['before_title'] . $title . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
$transient_name = "$this->id-v2-{$instance['number']}" . (int) $instance['include_likers'] . (int) $instance['include_followers'] . (int) $instance['include_commenters'];
@@ -193,9 +196,9 @@ class Jetpack_My_Community_Widget extends WP_Widget {
set_transient( $transient_name, $my_community, self::$expiration );
}
- echo $my_community;
+ echo $my_community; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- echo $args['after_widget'];
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'my_community' );
@@ -206,11 +209,11 @@ class Jetpack_My_Community_Widget extends WP_Widget {
*
* @since 4.0
*
- * @param array $query
+ * @param array $query Saved widget values from database.
*
* @return string
*/
- function get_community( $query ) {
+ private function get_community( $query ) {
$members = $this->fetch_remote_community( $query );
if ( ! empty( $members ) ) {
@@ -220,10 +223,10 @@ class Jetpack_My_Community_Widget extends WP_Widget {
foreach ( $members as $member ) {
$my_community .= sprintf(
'<li><a href="%s" title="%s"><img alt="%s" src="%s" class="avatar avatar-48" height="48" width="48"></a></li>',
- esc_url( $member->profile_URL ),
+ esc_url( $member->profile_URL ), // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
esc_attr( $member->name ),
esc_attr( $member->name ),
- esc_url( $member->avatar_URL )
+ esc_url( $member->avatar_URL ) // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
);
}
@@ -233,10 +236,12 @@ class Jetpack_My_Community_Widget extends WP_Widget {
if ( current_user_can( 'edit_theme_options' ) ) {
$my_community = '<p>' . wp_kses(
sprintf(
+ /* Translators: 1. link to the widgets settings screen. 2. link to support document. */
__( 'There are no users to display in this <a href="%1$s">My Community widget</a>. <a href="%2$s">Want more traffic?</a>', 'jetpack' ),
admin_url( 'widgets.php' ),
- 'https://jetpack.com/support/getting-more-views-and-traffic/'
- ), array( 'a' => array( 'href' => true ) )
+ esc_url( Redirect::get_url( 'jetpack-support-getting-more-views-and-traffic' ) )
+ ),
+ array( 'a' => array( 'href' => true ) )
) . '</p>';
} else {
$my_community = '<p>' . esc_html__( "I'm just starting out; leave me a comment or a like :)", 'jetpack' ) . '</p>';
@@ -251,11 +256,11 @@ class Jetpack_My_Community_Widget extends WP_Widget {
*
* @since 4.0
*
- * @param $query
+ * @param array $query Saved widget values from database.
*
* @return array
*/
- function fetch_remote_community( $query ) {
+ private function fetch_remote_community( $query ) {
$jetpack_blog_id = Jetpack_Options::get_option( 'id' );
$url = add_query_arg(
array(
@@ -289,9 +294,8 @@ class Jetpack_My_Community_Widget extends WP_Widget {
* @since 4.0
*/
function jetpack_my_community_init() {
- if ( Jetpack::is_active() ) {
+ if ( Jetpack::is_connection_ready() ) {
register_widget( 'Jetpack_My_Community_Widget' );
}
}
-
add_action( 'widgets_init', 'jetpack_my_community_init' );
diff --git a/plugins/jetpack/modules/widgets/rsslinks-widget.php b/plugins/jetpack/modules/widgets/rsslinks-widget.php
index 01d1ee2d..303c0c6d 100644
--- a/plugins/jetpack/modules/widgets/rsslinks-widget.php
+++ b/plugins/jetpack/modules/widgets/rsslinks-widget.php
@@ -1,14 +1,26 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
- * Module Name: RSS Links Widget
- * Module Description: Easily add RSS links to your theme's sidebar.
- * Sort Order: 20
- * First Introduced: 1.2
+ * RSS Links Widget
+ *
+ * @package automattic/jetpack
*/
-class Jetpack_RSS_Links_Widget extends WP_Widget {
+/**
+ * Register the widget.
+ */
+function jetpack_rss_links_widget_init() {
+ register_widget( Jetpack_RSS_Links_Widget::class );
+}
+add_action( 'widgets_init', 'jetpack_rss_links_widget_init' );
- function __construct() {
+/**
+ * RSS Links Widget class.
+ */
+class Jetpack_RSS_Links_Widget extends WP_Widget {
+ /**
+ * Constructor
+ */
+ public function __construct() {
$widget_ops = array(
'classname' => 'widget_rss_links',
'description' => __( "Links to your blog's RSS feeds", 'jetpack' ),
@@ -22,37 +34,46 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
);
}
- function widget( $args, $instance ) {
+ /**
+ * Display the widget.
+ *
+ * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget.
+ * @param array $instance The settings for the particular instance of the widget.
+ */
+ public function widget( $args, $instance ) {
$instance = wp_parse_args( (array) $instance, $this->defaults() );
- extract( $args );
+ $before_widget = isset( $args['before_widget'] ) ? $args['before_widget'] : '';
+ $before_title = isset( $args['before_title'] ) ? $args['before_title'] : '';
+ $after_title = isset( $args['after_title'] ) ? $args['after_title'] : '';
+ $after_widget = isset( $args['after_widget'] ) ? $args['after_widget'] : '';
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $instance['title'] );
- echo $before_widget;
+ echo $before_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( $title ) {
- echo $before_title . stripslashes( $title ) . $after_title;
+ echo $before_title . $title . $after_title; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
- if ( 'text' == $instance['format'] ) {
+ if ( 'text' === $instance['format'] ) {
echo '<ul>';
}
- if ( 'posts' == $instance['display'] ) {
- $this->_rss_link( 'posts', $instance );
- } elseif ( 'comments' == $instance['display'] ) {
- $this->_rss_link( 'comments', $instance );
- } elseif ( 'posts-comments' == $instance['display'] ) {
- $this->_rss_link( 'posts', $instance );
- $this->_rss_link( 'comments', $instance );
+ if ( 'posts' === $instance['display'] ) {
+ $this->rss_link( 'posts', $instance );
+ } elseif ( 'comments' === $instance['display'] ) {
+ $this->rss_link( 'comments', $instance );
+ } elseif ( 'posts-comments' === $instance['display'] ) {
+ $this->rss_link( 'posts', $instance );
+ $this->rss_link( 'comments', $instance );
}
- if ( 'text' == $instance['format'] ) {
+ if ( 'text' === $instance['format'] ) {
echo '</ul>';
}
- echo "\n" . $after_widget;
+ echo "\n" . $after_widget; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'rss-links' );
@@ -64,7 +85,7 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
*
* @return array Array of default values for the Widget's options
*/
- function defaults() {
+ public function defaults() {
return array(
'title' => '',
'display' => 'posts-comments',
@@ -72,7 +93,17 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
);
}
- function update( $new_instance, $old_instance ) {
+ /**
+ * Sanitize widget form values as they are saved.
+ *
+ * @see WP_Widget::update()
+ *
+ * @param array $new_instance Values just sent to be saved.
+ * @param array $old_instance Previously saved values from database.
+ *
+ * @return array Updated safe values to be saved.
+ */
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = $old_instance;
$instance['title'] = wp_filter_nohtml_kses( $new_instance['title'] );
@@ -84,7 +115,16 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
return $instance;
}
- function form( $instance ) {
+ /**
+ * Back end widget form.
+ *
+ * @see WP_Widget::form()
+ *
+ * @param array $instance Previously saved values from database.
+ *
+ * @return string|void
+ */
+ public function form( $instance ) {
$instance = wp_parse_args( (array) $instance, $this->defaults() );
$title = stripslashes( $instance['title'] );
@@ -93,8 +133,8 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
$image_size = isset( $instance['imagesize'] ) ? $instance['imagesize'] : 0;
$image_color = isset( $instance['imagecolor'] ) ? $instance['imagecolor'] : 'red';
- echo '<p><label for="' . $this->get_field_id( 'title' ) . '">' . esc_html__( 'Title:', 'jetpack' ) . '
- <input class="widefat" id="' . $this->get_field_id( 'title' ) . '" name="' . $this->get_field_name( 'title' ) . '" type="text" value="' . esc_attr( $title ) . '" />
+ echo '<p><label for="' . esc_attr( $this->get_field_id( 'title' ) ) . '">' . esc_html__( 'Title:', 'jetpack' ) . '
+ <input class="widefat" id="' . esc_attr( $this->get_field_id( 'title' ) ) . '" name="' . esc_attr( $this->get_field_name( 'title' ) ) . '" type="text" value="' . esc_attr( $title ) . '" />
</label></p>';
$displays = array(
@@ -102,11 +142,11 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
'comments' => __( 'Comments', 'jetpack' ),
'posts-comments' => __( 'Posts & Comments', 'jetpack' ),
);
- echo '<p><label for="' . $this->get_field_id( 'display' ) . '">' . esc_html__( 'Feed(s) to Display:', 'jetpack' ) . '
- <select class="widefat" id="' . $this->get_field_id( 'display' ) . '" name="' . $this->get_field_name( 'display' ) . '">';
+ echo '<p><label for="' . esc_attr( $this->get_field_id( 'display' ) ) . '">' . esc_html__( 'Feed(s) to Display:', 'jetpack' ) . '
+ <select class="widefat" id="' . esc_attr( $this->get_field_id( 'display' ) ) . '" name="' . esc_attr( $this->get_field_name( 'display' ) ) . '">';
foreach ( $displays as $display_option => $label ) {
echo '<option value="' . esc_attr( $display_option ) . '"';
- if ( $display_option == $display ) {
+ if ( $display_option === $display ) {
echo ' selected="selected"';
}
echo '>' . esc_html( $label ) . '</option>' . "\n";
@@ -118,19 +158,19 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
'image' => __( 'Image Link', 'jetpack' ),
'text-image' => __( 'Text & Image Links', 'jetpack' ),
);
- echo '<p><label for="' . $this->get_field_id( 'format' ) . '">' . _x( 'Format:', 'Noun', 'jetpack' ) . '
- <select class="widefat" id="' . $this->get_field_id( 'format' ) . '" name="' . $this->get_field_name( 'format' ) . '" onchange="if ( this.value == \'text\' ) jQuery( \'#' . $this->get_field_id( 'image-settings' ) . '\' ).fadeOut(); else jQuery( \'#' . $this->get_field_id( 'image-settings' ) . '\' ).fadeIn();">';
+ echo '<p><label for="' . esc_attr( $this->get_field_id( 'format' ) ) . '">' . esc_html_x( 'Format:', 'Noun', 'jetpack' ) . '
+ <select class="widefat" id="' . esc_attr( $this->get_field_id( 'format' ) ) . '" name="' . esc_attr( $this->get_field_name( 'format' ) ) . '" onchange="if ( this.value == \'text\' ) jQuery( \'#' . esc_js( $this->get_field_id( 'image-settings' ) ) . '\' ).fadeOut(); else jQuery( \'#' . esc_js( $this->get_field_id( 'image-settings' ) ) . '\' ).fadeIn();">';
foreach ( $formats as $format_option => $label ) {
echo '<option value="' . esc_attr( $format_option ) . '"';
- if ( $format_option == $format ) {
+ if ( $format_option === $format ) {
echo ' selected="selected"';
}
echo '>' . esc_html( $label ) . '</option>' . "\n";
}
echo '</select></label></p>';
- echo '<div id="' . $this->get_field_id( 'image-settings' ) . '"';
- if ( 'text' == $format ) {
+ echo '<div id="' . esc_attr( $this->get_field_id( 'image-settings' ) ) . '"';
+ if ( 'text' === $format ) {
echo ' style="display: none;"';
}
echo '><h3>' . esc_html__( 'Image Settings:', 'jetpack' ) . '</h3>';
@@ -140,11 +180,11 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
'medium' => __( 'Medium', 'jetpack' ),
'large' => __( 'Large', 'jetpack' ),
);
- echo '<p><label for="' . $this->get_field_id( 'imagesize' ) . '">' . esc_html__( 'Image Size:', 'jetpack' ) . '
- <select class="widefat" id="' . $this->get_field_id( 'imagesize' ) . '" name="' . $this->get_field_name( 'imagesize' ) . '">';
+ echo '<p><label for="' . esc_attr( $this->get_field_id( 'imagesize' ) ) . '">' . esc_html__( 'Image Size:', 'jetpack' ) . '
+ <select class="widefat" id="' . esc_attr( $this->get_field_id( 'imagesize' ) ) . '" name="' . esc_attr( $this->get_field_name( 'imagesize' ) ) . '">';
foreach ( $sizes as $size => $label ) {
echo '<option value="' . esc_attr( $size ) . '"';
- if ( $size == $image_size ) {
+ if ( $size === $image_size ) {
echo ' selected="selected"';
}
echo '>' . esc_html( $label ) . '</option>' . "\n";
@@ -160,11 +200,11 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
'pink' => __( 'Pink', 'jetpack' ),
'silver' => __( 'Silver', 'jetpack' ),
);
- echo '<p><label for="' . $this->get_field_id( 'imagecolor' ) . '">' . esc_html__( 'Image Color:', 'jetpack' ) . '
- <select class="widefat" id="' . $this->get_field_id( 'imagecolor' ) . '" name="' . $this->get_field_name( 'imagecolor' ) . '">';
+ echo '<p><label for="' . esc_attr( $this->get_field_id( 'imagecolor' ) ) . '">' . esc_html__( 'Image Color:', 'jetpack' ) . '
+ <select class="widefat" id="' . esc_attr( $this->get_field_id( 'imagecolor' ) ) . '" name="' . esc_attr( $this->get_field_name( 'imagecolor' ) ) . '">';
foreach ( $colors as $color => $label ) {
echo '<option value="' . esc_attr( $color ) . '"';
- if ( $color == $image_color ) {
+ if ( $color === $image_color ) {
echo ' selected="selected"';
}
echo '>' . esc_html( $label ) . '</option>' . "\n";
@@ -172,20 +212,23 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
echo '</select></label></p></div>';
}
- function _rss_link( $type = 'posts', $args ) {
- if ( 'posts' == $type ) {
- $type_text = __( 'Posts', 'jetpack' );
- $rss_type = 'rss2_url';
- } elseif ( 'comments' == $type ) {
- $type_text = __( 'Comments', 'jetpack' );
- $rss_type = 'comments_rss2_url';
+ /**
+ * Output a link with a link to the feed.
+ *
+ * @param string $type Widget type (posts or comments).
+ * @param array $args Widget arguments.
+ */
+ private function rss_link( $type, $args ) {
+ if ( 'posts' === $type ) {
+ $subscribe_to = esc_html__( 'Subscribe to posts', 'jetpack' );
+ $link_text = esc_html__( 'RSS - Posts', 'jetpack' );
+ $rss_type = 'rss2_url';
+ } elseif ( 'comments' === $type ) {
+ $subscribe_to = esc_html__( 'Subscribe to comments', 'jetpack' );
+ $link_text = esc_html__( 'RSS - Comments', 'jetpack' );
+ $rss_type = 'comments_rss2_url';
}
- $subscribe_to = sprintf( __( 'Subscribe to %s', 'jetpack' ), $type_text );
-
- $link_item = '';
- $format = $args['format'];
-
/**
* Filters the target link attribute for the RSS link in the RSS widget.
*
@@ -201,42 +244,60 @@ class Jetpack_RSS_Links_Widget extends WP_Widget {
$link_target = '_self';
}
- if ( 'image' == $format || 'text-image' == $format ) {
- /**
- * Filters the image used as RSS icon in the RSS widget.
- *
- * @module widgets
- *
- * @since 3.6.0
- *
- * @param string $var URL of RSS Widget icon.
- */
- $link_image = apply_filters( 'jetpack_rss_widget_icon', plugins_url( 'images/rss/' . $args['imagecolor'] . '-' . $args['imagesize'] . '.png', dirname( dirname( __FILE__ ) ) ) );
- $link_item = '<a target="' . $link_target . '" href="' . get_bloginfo( $rss_type ) . '" title="' . esc_attr( $subscribe_to ) . '"><img src="' . esc_url( $link_image ) . '" alt="RSS Feed" /></a>';
- }
- if ( 'text-image' == $format ) {
- $link_item .= '&nbsp;<a target="' . $link_target . '" href="' . get_bloginfo( $rss_type ) . '" title="' . esc_attr( $subscribe_to ) . '">' . esc_html__( 'RSS - ' . $type_text, 'jetpack' ) . '</a>';
- }
- if ( 'text' == $format ) {
- $link_item = '<a target="' . $link_target . '" href="' . get_bloginfo( $rss_type ) . '" title="' . esc_attr( $subscribe_to ) . '">' . esc_html__( 'RSS - ' . $type_text, 'jetpack' ) . '</a>';
+ $format = $args['format'];
+ if ( 'image' === $format ) {
+ $link_contents = $this->get_image_tag( $args );
+ } elseif ( 'text-image' === $format ) {
+ $link_contents = sprintf(
+ '%1$s&nbsp;%2$s',
+ $this->get_image_tag( $args ),
+ $link_text
+ );
+ } elseif ( 'text' === $format ) {
+ $link_contents = $link_text;
}
- if ( 'text' == $format ) {
- echo '<li>';
- } else {
- echo '<p>';
- }
- echo $link_item;
- if ( 'text' == $format ) {
- echo '</li>';
- } else {
- echo '</p>';
- }
+ printf(
+ '%1$s<a target="%3$s" href="%4$s" title="%5$s">%6$s</a>%2$s',
+ 'text' === $format ? '<li>' : '<p>', // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ 'text' === $format ? '</li>' : '</p>', // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ esc_attr( $link_target ),
+ esc_url( get_bloginfo( $rss_type ) ),
+ esc_attr( $subscribe_to ),
+ $link_contents // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- we are escaping this above.
+ );
+ }
+
+ /**
+ * Return an image tag for the RSS icon.
+ *
+ * @param array $args Widget arguments.
+ */
+ private function get_image_tag( $args ) {
+ $image_path = sprintf(
+ 'images/rss/%1$s-%2$s.png',
+ $args['imagecolor'],
+ $args['imagesize']
+ );
+ /**
+ * Filters the image used as RSS icon in the RSS widget.
+ *
+ * @module widgets
+ *
+ * @since 3.6.0
+ *
+ * @param string $var URL of RSS Widget icon.
+ */
+ $image = apply_filters(
+ 'jetpack_rss_widget_icon',
+ plugins_url( $image_path, dirname( __DIR__ ) )
+ );
+
+ return sprintf(
+ '<img src="%1$s" alt="%2$s" />',
+ esc_url( $image ),
+ esc_attr__( 'RSS feed', 'jetpack' )
+ );
}
} // Class Jetpack_RSS_Links_Widget
-
-function jetpack_rss_links_widget_init() {
- register_widget( 'Jetpack_RSS_Links_Widget' );
-}
-add_action( 'widgets_init', 'jetpack_rss_links_widget_init' );
diff --git a/plugins/jetpack/modules/widgets/search.php b/plugins/jetpack/modules/widgets/search.php
index 5cff02f4..291649f2 100644
--- a/plugins/jetpack/modules/widgets/search.php
+++ b/plugins/jetpack/modules/widgets/search.php
@@ -1,4 +1,4 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
/**
* Jetpack Search: Jetpack_Search_Widget class
*
@@ -7,21 +7,26 @@
* @since 5.0.0
*/
-use Automattic\Jetpack\Constants;
+use Automattic\Jetpack\Redirect;
+use Automattic\Jetpack\Search\Helper;
+use Automattic\Jetpack\Search\Options;
use Automattic\Jetpack\Status;
+use Automattic\Jetpack\Tracking;
add_action( 'widgets_init', 'jetpack_search_widget_init' );
+/**
+ * Register the widget if Jetpack Search is available and enabled.
+ */
function jetpack_search_widget_init() {
if (
- ! Jetpack::is_active()
+ ! Jetpack::is_connection_ready()
|| ( method_exists( 'Jetpack_Plan', 'supports' ) && ! Jetpack_Plan::supports( 'search' ) )
+ || ! Jetpack::is_module_active( 'search' )
) {
return;
}
- require_once JETPACK__PLUGIN_DIR . 'modules/search/class.jetpack-search-helpers.php';
-
register_widget( 'Jetpack_Search_Widget' );
}
@@ -62,23 +67,25 @@ class Jetpack_Search_Widget extends WP_Widget {
* Jetpack_Search_Widget constructor.
*
* @since 5.0.0
+ *
+ * @param string $name Widget name.
*/
public function __construct( $name = null ) {
if ( empty( $name ) ) {
$name = esc_html__( 'Search', 'jetpack' );
}
parent::__construct(
- Jetpack_Search_Helpers::FILTER_WIDGET_BASE,
+ Helper::FILTER_WIDGET_BASE,
/** This filter is documented in modules/widgets/facebook-likebox.php */
apply_filters( 'jetpack_widget_name', $name ),
array(
'classname' => 'jetpack-filters widget_search',
- 'description' => __( 'Replaces the default search with an Elasticsearch-powered search interface and filters.', 'jetpack' ),
+ 'description' => __( 'Instant search and filtering to help visitors quickly find relevant answers and explore your site.', 'jetpack' ),
)
);
if (
- Jetpack_Search_Helpers::is_active_widget( $this->id ) &&
+ Helper::is_active_widget( $this->id ) &&
! $this->is_search_active()
) {
$this->activate_search();
@@ -90,8 +97,12 @@ class Jetpack_Search_Widget extends WP_Widget {
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
}
- add_action( 'jetpack_search_render_filters_widget_title', array( 'Jetpack_Search_Template_Tags', 'render_widget_title' ), 10, 3 );
- add_action( 'jetpack_search_render_filters', array( 'Jetpack_Search_Template_Tags', 'render_available_filters' ), 10, 2 );
+ add_action( 'jetpack_search_render_filters_widget_title', array( 'Automattic\Jetpack\Search\Template_Tags', 'render_widget_title' ), 10, 3 );
+ if ( Options::is_instant_enabled() ) {
+ add_action( 'jetpack_search_render_filters', array( 'Automattic\Jetpack\Search\Template_Tags', 'render_instant_filters' ), 10, 2 );
+ } else {
+ add_action( 'jetpack_search_render_filters', array( 'Automattic\Jetpack\Search\Template_Tags', 'render_available_filters' ), 10, 2 );
+ }
}
/**
@@ -112,51 +123,44 @@ class Jetpack_Search_Widget extends WP_Widget {
Jetpack::activate_module( 'search', false, false );
}
-
/**
* Enqueues the scripts and styles needed for the customizer.
*
* @since 5.7.0
*/
public function widget_admin_setup() {
- wp_enqueue_style( 'widget-jetpack-search-filters', plugins_url( 'search/css/search-widget-admin-ui.css', __FILE__ ) );
-
- // Required for Tracks
- wp_register_script(
- 'jp-tracks',
- '//stats.wp.com/w.js',
+ wp_enqueue_style(
+ 'widget-jetpack-search-filters',
+ plugins_url( 'search/css/search-widget-admin-ui.css', __FILE__ ),
array(),
- gmdate( 'YW' ),
- true
+ JETPACK__VERSION
);
- wp_register_script(
- 'jp-tracks-functions',
- plugins_url( '_inc/lib/tracks/tracks-callables.js', JETPACK__PLUGIN_FILE ),
- array(),
- JETPACK__VERSION,
- false
- );
+ // Register jp-tracks and jp-tracks-functions.
+ Tracking::register_tracks_functions_scripts();
wp_register_script(
'jetpack-search-widget-admin',
plugins_url( 'search/js/search-widget-admin.js', __FILE__ ),
- array( 'jquery', 'jquery-ui-sortable', 'jp-tracks', 'jp-tracks-functions' ),
- JETPACK__VERSION
+ array( 'jquery', 'jquery-ui-sortable', 'jp-tracks-functions' ),
+ JETPACK__VERSION,
+ false
);
wp_localize_script(
- 'jetpack-search-widget-admin', 'jetpack_search_filter_admin', array(
+ 'jetpack-search-widget-admin',
+ 'jetpack_search_filter_admin',
+ array(
'defaultFilterCount' => self::DEFAULT_FILTER_COUNT,
'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
'tracksEventData' => array(
'is_customizer' => (int) is_customize_preview(),
),
'i18n' => array(
- 'month' => Jetpack_Search_Helpers::get_date_filter_type_name( 'month', false ),
- 'year' => Jetpack_Search_Helpers::get_date_filter_type_name( 'year', false ),
- 'monthUpdated' => Jetpack_Search_Helpers::get_date_filter_type_name( 'month', true ),
- 'yearUpdated' => Jetpack_Search_Helpers::get_date_filter_type_name( 'year', true ),
+ 'month' => Helper::get_date_filter_type_name( 'month', false ),
+ 'year' => Helper::get_date_filter_type_name( 'year', false ),
+ 'monthUpdated' => Helper::get_date_filter_type_name( 'month', true ),
+ 'yearUpdated' => Helper::get_date_filter_type_name( 'year', true ),
),
)
);
@@ -170,19 +174,24 @@ class Jetpack_Search_Widget extends WP_Widget {
* @since 5.8.0
*/
public function enqueue_frontend_scripts() {
- if ( ! is_active_widget( false, false, $this->id_base, true ) || Constants::is_true( 'JETPACK_SEARCH_PROTOTYPE' ) ) {
+ if ( ! is_active_widget( false, false, $this->id_base, true ) || Options::is_instant_enabled() ) {
return;
}
wp_enqueue_script(
'jetpack-search-widget',
plugins_url( 'search/js/search-widget.js', __FILE__ ),
- array( 'jquery' ),
+ array(),
JETPACK__VERSION,
true
);
- wp_enqueue_style( 'jetpack-search-widget', plugins_url( 'search/css/search-widget-frontend.css', __FILE__ ) );
+ wp_enqueue_style(
+ 'jetpack-search-widget',
+ plugins_url( 'search/css/search-widget-frontend.css', __FILE__ ),
+ array(),
+ JETPACK__VERSION
+ );
}
/**
@@ -211,8 +220,8 @@ class Jetpack_Search_Widget extends WP_Widget {
*
* @return bool Whether the current filter item is for the current widget.
*/
- function is_for_current_widget( $item ) {
- return isset( $item['widget_id'] ) && $this->id == $item['widget_id'];
+ public function is_for_current_widget( $item ) {
+ return isset( $item['widget_id'] ) && $this->id == $item['widget_id']; // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
}
/**
@@ -228,12 +237,12 @@ class Jetpack_Search_Widget extends WP_Widget {
public function should_display_sitewide_filters() {
$filter_widgets = get_option( 'widget_jetpack-search-filters' );
- // This shouldn't be empty, but just for sanity
+ // This shouldn't be empty, but just for sanity.
if ( empty( $filter_widgets ) ) {
return false;
}
- // If any widget has any filters, return false
+ // If any widget has any filters, return false.
foreach ( $filter_widgets as $number => $widget ) {
$widget_id = sprintf( '%s-%d', $this->id_base, $number );
if ( ! empty( $widget['filters'] ) && is_active_widget( false, $widget_id, $this->id_base ) ) {
@@ -244,9 +253,15 @@ class Jetpack_Search_Widget extends WP_Widget {
return true;
}
+ /**
+ * Widget defaults.
+ *
+ * @param array $instance Previously saved values from database.
+ */
public function jetpack_search_populate_defaults( $instance ) {
$instance = wp_parse_args(
- (array) $instance, array(
+ (array) $instance,
+ array(
'title' => '',
'search_box_enabled' => true,
'user_sort_enabled' => true,
@@ -260,6 +275,23 @@ class Jetpack_Search_Widget extends WP_Widget {
}
/**
+ * Populates the instance array with appropriate default values.
+ *
+ * @since 8.6.0
+ * @param array $instance Previously saved values from database.
+ * @return array Instance array with default values approprate for instant search
+ */
+ public function populate_defaults_for_instant_search( $instance ) {
+ return wp_parse_args(
+ (array) $instance,
+ array(
+ 'title' => '',
+ 'filters' => array(),
+ )
+ );
+ }
+
+ /**
* Responsible for rendering the widget on the frontend.
*
* @since 5.0.0
@@ -270,29 +302,50 @@ class Jetpack_Search_Widget extends WP_Widget {
public function widget( $args, $instance ) {
$instance = $this->jetpack_search_populate_defaults( $instance );
- $display_filters = false;
-
- if ( ( new Status() )->is_development_mode() ) {
- echo $args['before_widget'];
+ if ( ( new Status() )->is_offline_mode() ) {
+ echo $args['before_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
?><div id="<?php echo esc_attr( $this->id ); ?>-wrapper">
<div class="jetpack-search-sort-wrapper">
<label>
- <?php esc_html_e( 'Jetpack Search not supported in Development Mode', 'jetpack' ); ?>
+ <?php esc_html_e( 'Jetpack Search not supported in Offline Mode', 'jetpack' ); ?>
</label>
</div>
- </div><?php
- echo $args['after_widget'];
+ </div>
+ <?php
+ echo $args['after_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
return;
}
+ if ( Options::is_instant_enabled() ) {
+ if ( array_key_exists( 'id', $args ) && 'jetpack-instant-search-sidebar' === $args['id'] ) {
+ $this->widget_empty_instant( $args, $instance );
+ } else {
+ $this->widget_instant( $args, $instance );
+ }
+ } else {
+ $this->widget_non_instant( $args, $instance );
+ }
+ }
+
+ /**
+ * Render the non-instant frontend widget.
+ *
+ * @since 8.3.0
+ *
+ * @param array $args Widgets args supplied by the theme.
+ * @param array $instance The current widget instance.
+ */
+ public function widget_non_instant( $args, $instance ) {
+ $display_filters = false;
+
if ( is_search() ) {
- if ( Jetpack_Search_Helpers::should_rerun_search_in_customizer_preview() ) {
+ if ( Helper::should_rerun_search_in_customizer_preview() ) {
Jetpack_Search::instance()->update_search_results_aggregations();
}
$filters = Jetpack_Search::instance()->get_filters();
- if ( ! Jetpack_Search_Helpers::are_filters_by_widget_disabled() && ! $this->should_display_sitewide_filters() ) {
+ if ( ! Helper::are_filters_by_widget_disabled() && ! $this->should_display_sitewide_filters() ) {
$filters = array_filter( $filters, array( $this, 'is_for_current_widget' ) );
}
@@ -305,18 +358,14 @@ class Jetpack_Search_Widget extends WP_Widget {
return;
}
- $title = isset( $instance['title'] ) ? $instance['title'] : '';
-
- if ( empty( $title ) ) {
- $title = '';
- }
+ $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
- echo $args['before_widget'];
- ?><div id="<?php echo esc_attr( $this->id ); ?>-wrapper" class="<?php
- echo Constants::is_true( 'JETPACK_SEARCH_PROTOTYPE' ) ? 'jetpack-instant-search-wrapper' : '' ?>">
+ echo $args['before_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ <div id="<?php echo esc_attr( $this->id ); ?>-wrapper" >
<?php
if ( ! empty( $title ) ) {
@@ -341,11 +390,11 @@ class Jetpack_Search_Widget extends WP_Widget {
// we need to dynamically inject the sort field into the search box when the search box is enabled, and display
// it separately when it's not.
if ( ! empty( $instance['search_box_enabled'] ) ) {
- Jetpack_Search_Template_Tags::render_widget_search_form( $instance['post_types'], $orderby, $order );
+ Automattic\Jetpack\Search\Template_Tags::render_widget_search_form( $instance['post_types'], $orderby, $order );
}
if ( ! empty( $instance['search_box_enabled'] ) && ! empty( $instance['user_sort_enabled'] ) ) :
- ?>
+ ?>
<div class="jetpack-search-sort-wrapper">
<label>
<?php esc_html_e( 'Sort by', 'jetpack' ); ?>
@@ -358,7 +407,7 @@ class Jetpack_Search_Widget extends WP_Widget {
</select>
</label>
</div>
- <?php
+ <?php
endif;
if ( $display_filters ) {
@@ -382,7 +431,118 @@ class Jetpack_Search_Widget extends WP_Widget {
$this->maybe_render_sort_javascript( $instance, $order, $orderby );
echo '</div>';
- echo $args['after_widget'];
+ echo $args['after_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ /**
+ * Render the instant frontend widget.
+ *
+ * @since 8.3.0
+ *
+ * @param array $args Widgets args supplied by the theme.
+ * @param array $instance The current widget instance.
+ */
+ public function widget_instant( $args, $instance ) {
+ if ( Helper::should_rerun_search_in_customizer_preview() ) {
+ Jetpack_Search::instance()->update_search_results_aggregations();
+ }
+
+ $filters = Jetpack_Search::instance()->get_filters();
+ if ( ! Helper::are_filters_by_widget_disabled() && ! $this->should_display_sitewide_filters() ) {
+ $filters = array_filter( $filters, array( $this, 'is_for_current_widget' ) );
+ }
+
+ $display_filters = ! empty( $filters );
+
+ $title = ! empty( $instance['title'] ) ? $instance['title'] : '';
+
+ /** This filter is documented in core/src/wp-includes/default-widgets.php */
+ $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
+
+ echo $args['before_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ <div id="<?php echo esc_attr( $this->id ); ?>-wrapper" class="jetpack-instant-search-wrapper">
+ <?php
+
+ if ( ! empty( $title ) ) {
+ /**
+ * Responsible for displaying the title of the Jetpack Search filters widget.
+ *
+ * @module search
+ *
+ * @since 5.7.0
+ *
+ * @param string $title The widget's title
+ * @param string $args['before_title'] The HTML tag to display before the title
+ * @param string $args['after_title'] The HTML tag to display after the title
+ */
+ do_action( 'jetpack_search_render_filters_widget_title', $title, $args['before_title'], $args['after_title'] );
+ }
+
+ Automattic\Jetpack\Search\Template_Tags::render_widget_search_form( array(), '', '' );
+
+ if ( $display_filters ) {
+ /**
+ * Responsible for rendering filters to narrow down search results.
+ *
+ * @module search
+ *
+ * @since 5.8.0
+ *
+ * @param array $filters The possible filters for the current query.
+ * @param array $post_types An array of post types to limit filtering to.
+ */
+ do_action(
+ 'jetpack_search_render_filters',
+ $filters,
+ null
+ );
+ }
+
+ echo '</div>';
+ echo $args['after_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ /**
+ * Render the instant widget for the overlay.
+ *
+ * @since 8.3.0
+ *
+ * @param array $args Widgets args supplied by the theme.
+ * @param array $instance The current widget instance.
+ */
+ public function widget_empty_instant( $args, $instance ) {
+ $title = isset( $instance['title'] ) ? $instance['title'] : '';
+
+ if ( empty( $title ) ) {
+ $title = '';
+ }
+
+ /** This filter is documented in core/src/wp-includes/default-widgets.php */
+ $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
+
+ echo $args['before_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
+ <div id="<?php echo esc_attr( $this->id ); ?>-wrapper" class="jetpack-instant-search-wrapper">
+ <?php
+
+ if ( ! empty( $title ) ) {
+ /**
+ * Responsible for displaying the title of the Jetpack Search filters widget.
+ *
+ * @module search
+ *
+ * @since 5.7.0
+ *
+ * @param string $title The widget's title
+ * @param string $args['before_title'] The HTML tag to display before the title
+ * @param string $args['after_title'] The HTML tag to display after the title
+ */
+ do_action( 'jetpack_search_render_filters_widget_title', $title, $args['before_title'], $args['after_title'] );
+ }
+
+ echo '</div>';
+ echo $args['after_widget']; //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -400,48 +560,55 @@ class Jetpack_Search_Widget extends WP_Widget {
* @param string $orderby The orderby to initialize the select with.
*/
private function maybe_render_sort_javascript( $instance, $order, $orderby ) {
- if ( Constants::is_true( 'JETPACK_SEARCH_PROTOTYPE' ) ) {
+ if ( Options::is_instant_enabled() ) {
return;
}
if ( ! empty( $instance['user_sort_enabled'] ) ) :
- ?>
+ ?>
<script type="text/javascript">
- jQuery( document ).ready( function( $ ) {
- var orderByDefault = '<?php echo 'date' === $orderby ? 'date' : 'relevance'; ?>',
- orderDefault = '<?php echo 'ASC' === $order ? 'ASC' : 'DESC'; ?>',
- widgetId = decodeURIComponent( '<?php echo rawurlencode( $this->id ); ?>' ),
- searchQuery = decodeURIComponent( '<?php echo rawurlencode( get_query_var( 's', '' ) ); ?>' ),
- isSearch = <?php echo (int) is_search(); ?>;
-
- var container = $( '#' + widgetId + '-wrapper' ),
- form = container.find('.jetpack-search-form form'),
- orderBy = form.find( 'input[name=orderby]'),
- order = form.find( 'input[name=order]'),
- searchInput = form.find( 'input[name="s"]' );
-
- orderBy.val( orderByDefault );
- order.val( orderDefault );
-
- // Some themes don't set the search query, which results in the query being lost
- // when doing a sort selection. So, if the query isn't set, let's set it now. This approach
- // is chosen over running a regex over HTML for every search query performed.
- if ( isSearch && ! searchInput.val() ) {
- searchInput.val( searchQuery );
- }
-
- searchInput.addClass( 'show-placeholder' );
-
- container.find( '.jetpack-search-sort' ).change( function( event ) {
- var values = event.target.value.split( '|' );
- orderBy.val( values[0] );
- order.val( values[1] );
-
- form.submit();
- });
+ var jetpackSearchModuleSorting = function() {
+ var orderByDefault = '<?php echo 'date' === $orderby ? 'date' : 'relevance'; ?>',
+ orderDefault = '<?php echo 'ASC' === $order ? 'ASC' : 'DESC'; ?>',
+ widgetId = decodeURIComponent( '<?php echo rawurlencode( $this->id ); ?>' ),
+ searchQuery = decodeURIComponent( '<?php echo rawurlencode( get_query_var( 's', '' ) ); ?>' ),
+ isSearch = <?php echo (int) is_search(); ?>;
+
+ var container = document.getElementById( widgetId + '-wrapper' ),
+ form = container.querySelector( '.jetpack-search-form form' ),
+ orderBy = form.querySelector( 'input[name=orderby]' ),
+ order = form.querySelector( 'input[name=order]' ),
+ searchInput = form.querySelector( 'input[name="s"]' ),
+ sortSelectInput = container.querySelector( '.jetpack-search-sort' );
+
+ orderBy.value = orderByDefault;
+ order.value = orderDefault;
+
+ // Some themes don't set the search query, which results in the query being lost
+ // when doing a sort selection. So, if the query isn't set, let's set it now. This approach
+ // is chosen over running a regex over HTML for every search query performed.
+ if ( isSearch && ! searchInput.value ) {
+ searchInput.value = searchQuery;
+ }
+
+ searchInput.classList.add( 'show-placeholder' );
+
+ sortSelectInput.addEventListener( 'change', function( event ) {
+ var values = event.target.value.split( '|' );
+ orderBy.value = values[0];
+ order.value = values[1];
+
+ form.submit();
} );
+ }
+
+ if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ jetpackSearchModuleSorting();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', jetpackSearchModuleSorting );
+ }
</script>
- <?php
+ <?php
endif;
}
@@ -455,6 +622,7 @@ class Jetpack_Search_Widget extends WP_Widget {
* @return array Order by and order.
*/
private function sorting_to_wp_query_param( $sort ) {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
$parts = explode( '|', $sort );
$orderby = isset( $_GET['orderby'] )
? $_GET['orderby']
@@ -464,6 +632,8 @@ class Jetpack_Search_Widget extends WP_Widget {
? strtoupper( $_GET['order'] )
: ( ( isset( $parts[1] ) && 'ASC' === strtoupper( $parts[1] ) ) ? 'ASC' : 'DESC' );
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
return array( $orderby, $order );
}
@@ -477,8 +647,9 @@ class Jetpack_Search_Widget extends WP_Widget {
*
* @return array Settings to save.
*/
- public function update( $new_instance, $old_instance ) {
- $instance = array();
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $new_instance = $this->maybe_reformat_widget( $new_instance );
+ $instance = array();
$instance['title'] = sanitize_text_field( $new_instance['title'] );
$instance['search_box_enabled'] = empty( $new_instance['search_box_enabled'] ) ? '0' : '1';
@@ -491,7 +662,7 @@ class Jetpack_Search_Widget extends WP_Widget {
$filters = array();
if ( isset( $new_instance['filter_type'] ) ) {
foreach ( (array) $new_instance['filter_type'] as $index => $type ) {
- $count = intval( $new_instance['num_filters'][ $index ] );
+ $count = (int) $new_instance['num_filters'][ $index ];
$count = min( 50, $count ); // Set max boundary at 50.
$count = max( 1, $count ); // Set min boundary at 1.
@@ -532,18 +703,48 @@ class Jetpack_Search_Widget extends WP_Widget {
}
/**
+ * Reformats the widget instance array to one that is recognized by the `update` function.
+ * This is only necessary when handling changes from the block-based widget editor.
+ *
+ * @param array $widget_instance - Jetpack Search widget instance.
+ *
+ * @return array - Potentially reformatted instance compatible with the save function.
+ */
+ protected function maybe_reformat_widget( $widget_instance ) {
+ if ( isset( $widget_instance['filter_type'] ) || ! isset( $widget_instance['filters'] ) || ! is_array( $widget_instance['filters'] ) ) {
+ return $widget_instance;
+ }
+
+ $instance = $widget_instance;
+ foreach ( $widget_instance['filters'] as $filter ) {
+ $instance['filter_type'][] = isset( $filter['type'] ) ? $filter['type'] : '';
+ $instance['taxonomy_type'][] = isset( $filter['taxonomy'] ) ? $filter['taxonomy'] : '';
+ $instance['filter_name'][] = isset( $filter['name'] ) ? $filter['name'] : '';
+ $instance['num_filters'][] = isset( $filter['count'] ) ? $filter['count'] : 5;
+ $instance['date_histogram_field'][] = isset( $filter['field'] ) ? $filter['field'] : '';
+ $instance['date_histogram_interval'][] = isset( $filter['interval'] ) ? $filter['interval'] : '';
+ }
+ unset( $instance['filters'] );
+ return $instance;
+ }
+
+ /**
* Outputs the settings update form.
*
* @since 5.0.0
*
- * @param array $instance Current settings.
+ * @param array $instance Previously saved values from database.
*/
public function form( $instance ) {
+ if ( Options::is_instant_enabled() ) {
+ return $this->form_for_instant_search( $instance );
+ }
+
$instance = $this->jetpack_search_populate_defaults( $instance );
- $title = strip_tags( $instance['title'] );
+ $title = wp_strip_all_tags( $instance['title'] );
- $hide_filters = Jetpack_Search_Helpers::are_filters_by_widget_disabled();
+ $hide_filters = Helper::are_filters_by_widget_disabled();
$classes = sprintf(
'jetpack-search-filters-widget %s %s %s',
@@ -577,6 +778,7 @@ class Jetpack_Search_Widget extends WP_Widget {
<?php esc_html_e( 'Show search box', 'jetpack' ); ?>
</label>
</p>
+
<p>
<label>
<input
@@ -598,7 +800,7 @@ class Jetpack_Search_Widget extends WP_Widget {
type="checkbox"
value="<?php echo esc_attr( $post_type->name ); ?>"
name="<?php echo esc_attr( $this->get_field_name( 'post_types' ) ); ?>[]"
- <?php checked( empty( $instance['post_types'] ) || in_array( $post_type->name, $instance['post_types'] ) ); ?>
+ <?php checked( empty( $instance['post_types'] ) || in_array( $post_type->name, $instance['post_types'], true ) ); ?>
/>&nbsp;
<?php echo esc_html( $post_type->label ); ?>
</label>
@@ -622,7 +824,9 @@ class Jetpack_Search_Widget extends WP_Widget {
<?php if ( ! $hide_filters ) : ?>
<script class="jetpack-search-filters-widget__filter-template" type="text/template">
- <?php echo $this->render_widget_edit_filter( array(), true ); ?>
+ <?php
+ echo $this->render_widget_edit_filter( array(), true ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ ?>
</script>
<div class="jetpack-search-filters-widget__filters">
<?php foreach ( (array) $instance['filters'] as $filter ) : ?>
@@ -641,7 +845,7 @@ class Jetpack_Search_Widget extends WP_Widget {
</noscript>
<?php if ( is_customize_preview() ) : ?>
<p class="jetpack-search-filters-help">
- <a href="https://jetpack.com/support/search/#filters-not-showing-up" target="_blank">
+ <a href="<?php echo esc_url( Redirect::get_url( 'jetpack-support-search', array( 'anchor' => 'filters-not-showing-up' ) ) ); ?>" target="_blank">
<?php esc_html_e( "Why aren't my filters appearing?", 'jetpack' ); ?>
</a>
</p>
@@ -652,6 +856,58 @@ class Jetpack_Search_Widget extends WP_Widget {
}
/**
+ * Outputs the widget update form to be used in the Customizer for Instant Search.
+ *
+ * @since 8.6.0
+ *
+ * @param array $instance Previously saved values from database.
+ */
+ private function form_for_instant_search( $instance ) {
+ $instance = $this->populate_defaults_for_instant_search( $instance );
+ $classes = sprintf( 'jetpack-search-filters-widget %s', $this->id );
+
+ ?>
+ <div class="<?php echo esc_attr( $classes ); ?>">
+ <!-- Title control -->
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">
+ <?php esc_html_e( 'Title (optional):', 'jetpack' ); ?>
+ </label>
+ <input
+ class="widefat"
+ id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>"
+ type="text"
+ value="<?php echo esc_attr( wp_strip_all_tags( $instance['title'] ) ); ?>"
+ />
+ </p>
+
+ <!-- Filters control -->
+ <?php if ( ! Helper::are_filters_by_widget_disabled() ) : ?>
+ <div class="jetpack-search-filters-widget__filters">
+ <?php foreach ( (array) $instance['filters'] as $filter ) : ?>
+ <?php $this->render_widget_edit_filter( $filter ); ?>
+ <?php endforeach; ?>
+ </div>
+ <p class="jetpack-search-filters-widget__add-filter-wrapper">
+ <a class="button jetpack-search-filters-widget__add-filter" href="#">
+ <?php esc_html_e( 'Add a filter', 'jetpack' ); ?>
+ </a>
+ </p>
+ <script class="jetpack-search-filters-widget__filter-template" type="text/template">
+ <?php $this->render_widget_edit_filter( array(), true ); ?>
+ </script>
+ <noscript>
+ <p class="jetpack-search-filters-help">
+ <?php echo esc_html_e( 'Adding filters requires JavaScript!', 'jetpack' ); ?>
+ </p>
+ </noscript>
+ <?php endif; ?>
+ </div>
+ <?php
+ }
+
+ /**
* We need to render HTML in two formats: an Underscore template (client-side)
* and native PHP (server-side). This helper function allows for easy rendering
* of attributes in both formats.
@@ -663,7 +919,7 @@ class Jetpack_Search_Widget extends WP_Widget {
* @param bool $is_template Whether this is for an Underscore template or not.
*/
private function render_widget_attr( $name, $value, $is_template ) {
- echo $is_template ? "<%= $name %>" : esc_attr( $value );
+ echo $is_template ? "<%= $name %>" : esc_attr( $value ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -680,7 +936,7 @@ class Jetpack_Search_Widget extends WP_Widget {
*/
private function render_widget_option_selected( $name, $value, $compare, $is_template ) {
$compare_js = rawurlencode( $compare );
- echo $is_template ? "<%= decodeURIComponent( '$compare_js' ) === $name ? 'selected=\"selected\"' : '' %>" : selected( $value, $compare );
+ echo $is_template ? "<%= decodeURIComponent( '$compare_js' ) === $name ? 'selected=\"selected\"' : '' %>" : selected( $value, $compare ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -695,7 +951,8 @@ class Jetpack_Search_Widget extends WP_Widget {
*/
public function render_widget_edit_filter( $filter, $is_template = false ) {
$args = wp_parse_args(
- $filter, array(
+ $filter,
+ array(
'name' => '',
'type' => 'taxonomy',
'taxonomy' => '',
@@ -706,7 +963,7 @@ class Jetpack_Search_Widget extends WP_Widget {
)
);
- $args['name_placeholder'] = Jetpack_Search_Helpers::generate_widget_filter_name( $args );
+ $args['name_placeholder'] = Helper::generate_widget_filter_name( $args );
?>
<div class="jetpack-search-filters-widget__filter is-<?php $this->render_widget_attr( 'type', $args['type'], $is_template ); ?>">
@@ -737,7 +994,7 @@ class Jetpack_Search_Widget extends WP_Widget {
<?php foreach ( get_taxonomies( array( 'public' => true ), 'objects' ) as $taxonomy ) : ?>
<option value="<?php echo esc_attr( $taxonomy->name ); ?>" <?php $this->render_widget_option_selected( 'taxonomy', $args['taxonomy'], $taxonomy->name, $is_template ); ?>>
<?php
- $label = in_array( $taxonomy->label, $seen_taxonomy_labels )
+ $label = in_array( $taxonomy->label, $seen_taxonomy_labels, true )
? sprintf(
/* translators: %1$s is the taxonomy name, %2s is the name of its type to help distinguish between several taxonomies with the same name, e.g. category and tag. */
_x( '%1$s (%2$s)', 'A label for a taxonomy selector option', 'jetpack' ),
@@ -776,7 +1033,7 @@ class Jetpack_Search_Widget extends WP_Widget {
<p class="jetpack-search-filters-widget__date-histogram-select">
<label>
- <?php esc_html_e( 'Choose an interval:' ); ?>
+ <?php esc_html_e( 'Choose an interval:', 'jetpack' ); ?>
<select name="<?php echo esc_attr( $this->get_field_name( 'date_histogram_interval' ) ); ?>[]" class="widefat date-interval-select">
<option value="month" <?php $this->render_widget_option_selected( 'interval', $args['interval'], 'month', $is_template ); ?>>
<?php esc_html_e( 'Month', 'jetpack' ); ?>
@@ -821,6 +1078,6 @@ class Jetpack_Search_Widget extends WP_Widget {
<a href="#" class="delete"><?php esc_html_e( 'Remove', 'jetpack' ); ?></a>
</p>
</div>
- <?php
+ <?php
}
}
diff --git a/plugins/jetpack/modules/widgets/search/css/search-widget-admin-ui.css b/plugins/jetpack/modules/widgets/search/css/search-widget-admin-ui.css
index a3313f05..b5f4544a 100644
--- a/plugins/jetpack/modules/widgets/search/css/search-widget-admin-ui.css
+++ b/plugins/jetpack/modules/widgets/search/css/search-widget-admin-ui.css
@@ -1,6 +1,6 @@
.jetpack-search-filters-widget__filter {
- background: #f9f9f9;
- border: 1px solid #dfdfdf;
+ background: #f6f7f7;
+ border: 1px solid #dcdcde;
padding: 0 12px;
margin-bottom: 12px;
cursor: move;
@@ -15,7 +15,7 @@
}
.jetpack-search-filters-widget__controls .delete {
- color: #a00;
+ color: #d63638;
}
.jetpack-search-filters-widget.hide-filters .jetpack-search-filters-widget__filter {
@@ -37,7 +37,7 @@
.jetpack-search-filters-widget__filter-placeholder {
border: 1px #555 dashed;
- background-color: #eee;
+ background-color: #f0f0f1;
height: 286px;
margin-bottom: 12px;
}
diff --git a/plugins/jetpack/modules/widgets/search/js/search-widget-admin.js b/plugins/jetpack/modules/widgets/search/js/search-widget-admin.js
index 5840a408..d4ae235f 100644
--- a/plugins/jetpack/modules/widgets/search/js/search-widget-admin.js
+++ b/plugins/jetpack/modules/widgets/search/js/search-widget-admin.js
@@ -300,10 +300,8 @@
// When widgets are updated, remove and re-add listeners
$( document ).on( 'widget-updated widget-added', function( e, widget ) {
- widget = $( widget );
-
- var id = widget.attr( 'id' ),
- isJetpackSearch = ( id && ( -1 !== id.indexOf( 'jetpack-search-filters' ) ) );
+ var idBase = $( widget ).find('.id_base').val(),
+ isJetpackSearch = ( idBase && ( 'jetpack-search-filters' === idBase ) );
if ( ! isJetpackSearch ) {
return;
diff --git a/plugins/jetpack/modules/widgets/search/js/search-widget.js b/plugins/jetpack/modules/widgets/search/js/search-widget.js
index 31e55731..0f47e8e8 100644
--- a/plugins/jetpack/modules/widgets/search/js/search-widget.js
+++ b/plugins/jetpack/modules/widgets/search/js/search-widget.js
@@ -1,19 +1,47 @@
-jQuery( document ).ready( function() {
- var filter_list = jQuery( '.jetpack-search-filters-widget__filter-list' );
+var jetpackSearchModule = function () {
+ var i,
+ j,
+ checkboxes,
+ filter_list = document.querySelectorAll( '.jetpack-search-filters-widget__filter-list' );
- filter_list.on( 'click', 'a', function() {
- var checkbox = jQuery( this ).siblings( 'input[type="checkbox"]' );
- checkbox.prop( 'checked', ! checkbox.prop( 'checked' ) );
- } );
+ for ( i = 0; i < filter_list.length; i++ ) {
+ filter_list[ i ].addEventListener( 'click', function ( event ) {
+ var target = event.target;
+ var precedingCheckbox;
+ var nextAnchor;
- filter_list
- .find( 'input[type="checkbox"]' )
- .prop( 'disabled', false )
- .css( 'cursor', 'inherit' )
- .on( 'click', function() {
- var anchor = jQuery( this ).siblings( 'a' );
- if ( anchor.length ) {
- window.location.href = anchor.prop( 'href' );
+ // If the target is an anchor, we want to toggle the checkbox.
+ if ( target.nodeName && 'a' === target.nodeName.toLowerCase() ) {
+ precedingCheckbox = target.previousElementSibling;
+ if (
+ precedingCheckbox &&
+ precedingCheckbox.type &&
+ 'checkbox' === precedingCheckbox.type
+ ) {
+ precedingCheckbox.checked = ! precedingCheckbox.checked;
+ }
+ }
+
+ // If the target is a checkbox, we want to navigate.
+ if ( target.type && 'checkbox' === target.type ) {
+ nextAnchor = target.nextElementSibling;
+ if ( nextAnchor && 'a' === nextAnchor.nodeName.toLowerCase() ) {
+ window.location.href = nextAnchor.getAttribute( 'href' );
+ }
}
} );
-} );
+
+ // Enable checkboxes now that we're setup.
+ checkboxes = filter_list[ i ].querySelectorAll( 'input[type="checkbox"]' );
+ for ( j = 0; j < checkboxes.length; j++ ) {
+ checkboxes[ j ].disabled = false;
+ checkboxes[ j ].style.cursor = 'inherit';
+ }
+ }
+};
+
+if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ jetpackSearchModule();
+} else {
+ document.addEventListener( 'DOMContentLoaded', jetpackSearchModule );
+}
diff --git a/plugins/jetpack/modules/widgets/simple-payments.php b/plugins/jetpack/modules/widgets/simple-payments.php
index 397c43fe..6c721f91 100644
--- a/plugins/jetpack/modules/widgets/simple-payments.php
+++ b/plugins/jetpack/modules/widgets/simple-payments.php
@@ -10,9 +10,9 @@ if ( ! defined( 'ABSPATH' ) ) {
if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
/**
- * Simple Payments Button
+ * Pay with PayPal (aka Simple Payments)
*
- * Display a Simple Payments Button as a Widget.
+ * Display a Pay with PayPal button as a Widget.
*/
class Jetpack_Simple_Payments_Widget extends WP_Widget {
/**
@@ -24,7 +24,7 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
* @link https://github.com/Automattic/jetpack/blob/31efa189ad223c0eb7ad085ac0650a23facf9ef5/modules/simple-payments/simple-payments.php#L386-L415
*
* Indian Rupee (INR) is listed here for backwards compatibility with previously added widgets.
- * It's not supported by Simple Payments because at the time of the creation of this file
+ * It's not supported by Pay with PayPal because at the time of the creation of this file
* because it's limited to in-country PayPal India accounts only.
* Discussion: https://github.com/Automattic/wp-calypso/pull/28236
*/
@@ -62,10 +62,10 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
parent::__construct(
'jetpack_simple_payments_widget',
/** This filter is documented in modules/widgets/facebook-likebox.php */
- apply_filters( 'jetpack_widget_name', __( 'Simple Payments', 'jetpack' ) ),
+ apply_filters( 'jetpack_widget_name', __( 'Pay with PayPal', 'jetpack' ) ),
array(
'classname' => 'jetpack-simple-payments',
- 'description' => __( 'Add a Simple Payments Button as a Widget.', 'jetpack' ),
+ 'description' => __( 'Add a Pay with PayPal button as a Widget.', 'jetpack' ),
'customize_selective_refresh' => true,
)
);
@@ -88,6 +88,21 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
if ( is_active_widget( false, false, $this->id_base ) || is_customize_preview() ) {
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) );
}
+
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_simple_payment_widget' ) );
+ }
+
+ /**
+ * Return an array of the widgets hidden from the Legacy Widget block.
+ *
+ * This is used to hide the Pay with PayPal from the Legacy Widget block.
+ *
+ * @param array $widget_types the widget types that are currently hidden.
+ * @return array Widget types hidden from the Legacy Widget block
+ */
+ public function hide_simple_payment_widget( $widget_types ) {
+ $widget_types[] = 'jetpack_simple_payments_widget';
+ return $widget_types;
}
/**
@@ -205,7 +220,7 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
wp_send_json_error( $errors );
}
- $product_post_id = isset( $params['product_post_id'] ) ? intval( $params['product_post_id'] ) : 0;
+ $product_post_id = isset( $params['product_post_id'] ) ? (int) $params['product_post_id'] : 0;
$product_post = array(
'ID' => $product_post_id,
@@ -217,7 +232,7 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
'meta_input' => array(
'spay_currency' => $params['currency'],
'spay_price' => $params['price'],
- 'spay_multiple' => isset( $params['multiple'] ) ? intval( $params['multiple'] ) : 0,
+ 'spay_multiple' => isset( $params['multiple'] ) ? (int) $params['multiple'] : 0,
'spay_email' => is_email( $params['email'] ),
),
);
@@ -313,7 +328,7 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
$errors->add( 'post_title', __( "People need to know what they're paying for! Please add a brief title.", 'jetpack' ) );
}
- if ( empty( $params['price'] ) || ! is_numeric( $params['price'] ) || floatval( $params['price'] ) <= 0 ) {
+ if ( empty( $params['price'] ) || ! is_numeric( $params['price'] ) || (float) $params['price'] <= 0 ) {
$errors->add( 'price', __( 'Everything comes with a price tag these days. Please add a your product price.', 'jetpack' ) );
}
@@ -442,7 +457,7 @@ if ( ! class_exists( 'Jetpack_Simple_Payments_Widget' ) ) {
// `bumps_stats_extra` only exists on .com
if ( function_exists( 'bump_stats_extras' ) ) {
- require_lib( 'tracks/client' );
+ jetpack_require_lib( 'tracks/client' );
tracks_record_event( $current_user, 'simple_payments_button_' . $event_action, $event_properties );
/** This action is documented in modules/widgets/social-media-icons.php */
do_action( 'jetpack_bump_stats_extra', 'jetpack-simple_payments', $stat_name );
diff --git a/plugins/jetpack/modules/widgets/simple-payments/admin-warning.php b/plugins/jetpack/modules/widgets/simple-payments/admin-warning.php
index f66e4413..8e4690db 100644
--- a/plugins/jetpack/modules/widgets/simple-payments/admin-warning.php
+++ b/plugins/jetpack/modules/widgets/simple-payments/admin-warning.php
@@ -2,11 +2,11 @@
<p>
<?php
$support_url = ( defined( 'IS_WPCOM' ) && IS_WPCOM )
- ? 'https://support.wordpress.com/simple-payments/'
- : 'https://jetpack.com/support/simple-payment-button/';
+ ? 'https://wordpress.com/support/pay-with-paypal/'
+ : 'https://jetpack.com/support/pay-with-paypal/';
printf(
wp_kses(
- __( 'Your plan doesn\'t include Simple Payments. <a href="%s" rel="noopener noreferrer" target="_blank">Learn more and upgrade</a>.', 'jetpack' ),
+ __( 'Your plan doesn\'t include Pay with PayPal. <a href="%s" rel="noopener noreferrer" target="_blank">Learn more and upgrade</a>.', 'jetpack' ),
array( 'a' => array( 'href' => array(), 'rel' => array(), 'target' => array() ) )
),
esc_url( $support_url )
diff --git a/plugins/jetpack/modules/widgets/simple-payments/customizer.css b/plugins/jetpack/modules/widgets/simple-payments/customizer.css
index 12278a60..f5d8c257 100644
--- a/plugins/jetpack/modules/widgets/simple-payments/customizer.css
+++ b/plugins/jetpack/modules/widgets/simple-payments/customizer.css
@@ -12,7 +12,7 @@
}
.widget-content .jetpack-simple-payments-form .invalid {
- border: 1px solid #dc3232;
+ border: 1px solid #d63638;
}
.widget-content .jetpack-simple-payments-form .cost label {
@@ -25,7 +25,7 @@
}
.widget-content .jetpack-simple-payments-image-fieldset .placeholder {
- border: 1px dashed #b4b9be;
+ border: 1px dashed #c3c4c7;
box-sizing: border-box;
cursor: pointer;
line-height: 20px;
@@ -46,7 +46,7 @@
.widget-content .jetpack-simple-payments-image img {
max-width: 100%;
box-sizing: border-box;
- border: 1px dashed #b4b9be;
+ border: 1px dashed #c3c4c7;
padding: 4px;
height: auto;
cursor: pointer;
@@ -76,5 +76,5 @@
.widget-content .button-link:disabled,
.widget-content .button-link:hover[disabled] {
- color: #a0a5aa;
+ color: #a7aaad;
}
diff --git a/plugins/jetpack/modules/widgets/simple-payments/customizer.js b/plugins/jetpack/modules/widgets/simple-payments/customizer.js
index c529db34..cef1db3c 100644
--- a/plugins/jetpack/modules/widgets/simple-payments/customizer.js
+++ b/plugins/jetpack/modules/widgets/simple-payments/customizer.js
@@ -1,17 +1,17 @@
/* global jQuery, jpSimplePaymentsStrings, confirm, _ */
/* eslint no-var: 0, quote-props: 0 */
-( function( api, wp, $ ) {
+( function ( api, wp, $ ) {
var $document = $( document );
- $document.ready( function() {
- $document.on( 'widget-added', function( event, widgetContainer ) {
+ $document.ready( function () {
+ $document.on( 'widget-added', function ( event, widgetContainer ) {
if ( widgetContainer.is( '[id*="jetpack_simple_payments_widget"]' ) ) {
initWidget( widgetContainer );
}
} );
- $document.on( 'widget-synced widget-updated', function( event, widgetContainer ) {
+ $document.on( 'widget-synced widget-updated', function ( event, widgetContainer ) {
//this fires for all widgets, this prevent errors for non SP widgets
if ( ! widgetContainer.is( '[id*="jetpack_simple_payments_widget"]' ) ) {
return;
@@ -65,7 +65,7 @@
//Input, Select and Checkbox change
widgetForm.find( 'select, input, textarea, checkbox' ).on(
'change input propertychange',
- _.debounce( function() {
+ _.debounce( function () {
disableFormActions( widgetForm );
}, 250 )
);
@@ -78,18 +78,18 @@
customize_changeset_uuid: api.settings.changeset.uuid,
} );
- request.done( function( data ) {
+ request.done( function ( data ) {
var selectedProduct = 0;
$( document )
.find( 'select.jetpack-simple-payments-products' )
- .each( function( index, select ) {
+ .each( function ( index, select ) {
var $select = $( select );
selectedProduct = $select.val();
$select.find( 'option' ).remove();
$select.append(
- $.map( data, function( product ) {
+ $.map( data, function ( product ) {
return $( '<option>', { value: product.ID, text: product.post_title } );
} )
);
@@ -128,14 +128,11 @@
}
function changeFormAction( widgetForm, action ) {
- widgetForm
- .find( '.jetpack-simple-payments-form-action' )
- .val( action )
- .change();
+ widgetForm.find( '.jetpack-simple-payments-form-action' ).val( action ).change();
}
function showAddNewForm( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
showForm( widgetForm );
@@ -144,7 +141,7 @@
}
function showEditForm( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
showForm( widgetForm );
@@ -153,7 +150,7 @@
}
function clearForm( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
hideForm( widgetForm );
@@ -200,7 +197,7 @@
}
function selectImage( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
var imageContainer = widgetForm.find( '.jetpack-simple-payments-image' );
@@ -212,29 +209,19 @@
button: { text: 'Choose Image' },
} );
- mediaFrame.on( 'select', function() {
- var selection = mediaFrame
- .state()
- .get( 'selection' )
- .first()
- .toJSON();
+ mediaFrame.on( 'select', function () {
+ var selection = mediaFrame.state().get( 'selection' ).first().toJSON();
//hide placeholder
widgetForm.find( '.jetpack-simple-payments-image-fieldset .placeholder' ).hide();
//load image from media library
- imageContainer
- .find( 'img' )
- .attr( 'src', selection.url )
- .show();
+ imageContainer.find( 'img' ).attr( 'src', selection.url ).show();
//show image and remove button
widgetForm.find( '.jetpack-simple-payments-image' ).show();
//set hidden field for the selective refresh
- widgetForm
- .find( '.jetpack-simple-payments-form-image-id' )
- .val( selection.id )
- .change();
+ widgetForm.find( '.jetpack-simple-payments-form-image-id' ).val( selection.id ).change();
} );
mediaFrame.open();
@@ -242,7 +229,7 @@
}
function removeImage( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
//show placeholder
@@ -252,10 +239,7 @@
widgetForm.find( '.jetpack-simple-payments-image' ).hide();
//set hidden field for the selective refresh
- widgetForm
- .find( '.jetpack-simple-payments-form-image-id' )
- .val( '' )
- .change();
+ widgetForm.find( '.jetpack-simple-payments-form-image-id' ).val( '' ).change();
};
}
@@ -329,7 +313,7 @@
}
function saveChanges( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
var productPostId = widgetForm.find( '.jetpack-simple-payments-form-product-id' ).val();
@@ -363,7 +347,7 @@
},
} );
- request.done( function( data ) {
+ request.done( function ( data ) {
var select = widgetForm.find( 'select.jetpack-simple-payments-products' );
var productOption = select.find( 'option[value="' + productPostId + '"]' );
@@ -386,14 +370,14 @@
hideForm( widgetForm );
} );
- request.fail( function( data ) {
+ request.fail( function ( data ) {
var validCodes = {
post_title: 'product-title',
price: 'product-price',
email: 'product-email',
};
- data.forEach( function( item ) {
+ data.forEach( function ( item ) {
if ( validCodes.hasOwnProperty( item.code ) ) {
widgetForm
.find( '.jetpack-simple-payments-form-' + validCodes[ item.code ] )
@@ -407,7 +391,7 @@
}
function deleteProduct( widgetForm ) {
- return function( event ) {
+ return function ( event ) {
event.preventDefault();
if ( ! confirm( jpSimplePaymentsStrings.deleteConfirmation ) ) {
@@ -435,7 +419,7 @@
},
} );
- request.done( function() {
+ request.done( function () {
var productList = widgetForm.find( 'select.jetpack-simple-payments-products' )[ 0 ];
productList.remove( productList.selectedIndex );
productList.dispatchEvent( new Event( 'change' ) );
diff --git a/plugins/jetpack/modules/widgets/simple-payments/form.php b/plugins/jetpack/modules/widgets/simple-payments/form.php
index 7732be5d..41c0971e 100644
--- a/plugins/jetpack/modules/widgets/simple-payments/form.php
+++ b/plugins/jetpack/modules/widgets/simple-payments/form.php
@@ -1,8 +1,8 @@
<?php
/**
- * Display the Simple Payments Form.
+ * Display the Pay with PayPal Form.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
?>
@@ -19,7 +19,7 @@
</p>
<p class="jetpack-simple-payments-products-fieldset" <?php if ( empty( $product_posts ) ) { echo 'style="display:none;"'; } ?>>
<label for="<?php echo esc_attr( $this->get_field_id( 'product_post_id' ) ); ?>">
- <?php esc_html_e( 'Select a Simple Payments Button:', 'jetpack' ); ?>
+ <?php esc_html_e( 'Select a Pay with PayPal button:', 'jetpack' ); ?>
</label>
<select
class="widefat jetpack-simple-payments-products"
diff --git a/plugins/jetpack/modules/widgets/simple-payments/widget.php b/plugins/jetpack/modules/widgets/simple-payments/widget.php
index 001635ba..46ca3382 100644
--- a/plugins/jetpack/modules/widgets/simple-payments/widget.php
+++ b/plugins/jetpack/modules/widgets/simple-payments/widget.php
@@ -1,8 +1,8 @@
<?php
/**
- * Display the Simple Payments Widget.
+ * Display the Pay with PayPal Widget.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
?>
diff --git a/plugins/jetpack/modules/widgets/social-icons.php b/plugins/jetpack/modules/widgets/social-icons.php
index bea4a147..5631087c 100644
--- a/plugins/jetpack/modules/widgets/social-icons.php
+++ b/plugins/jetpack/modules/widgets/social-icons.php
@@ -4,6 +4,9 @@
* Social Icons Widget.
*/
class Jetpack_Widget_Social_Icons extends WP_Widget {
+
+ const ID_BASE = 'jetpack_widget_social_icons';
+
/**
* Default widget options.
*
@@ -20,6 +23,7 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
$widget_ops = array(
'classname' => 'jetpack_widget_social_icons',
'description' => __( 'Add social-media icons to your site.', 'jetpack' ),
+ 'show_instance_in_rest' => true,
'customize_selective_refresh' => true,
);
@@ -52,6 +56,19 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_icon_scripts' ) );
add_action( 'wp_footer', array( $this, 'include_svg_icons' ), 9999 );
}
+
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
+ }
+
+ /**
+ * Remove the "Social Icons" widget from the Legacy Widget block
+ *
+ * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
+ * @return array $widget_types New list of widgets that will be removed.
+ */
+ public function hide_widget_in_block_editor( $widget_types ) {
+ $widget_types[] = self::ID_BASE;
+ return $widget_types;
}
/**
@@ -96,11 +113,11 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
*/
public function include_svg_icons() {
// Define SVG sprite file in Jetpack.
- $svg_icons = dirname( dirname( __FILE__ ) ) . '/theme-tools/social-menu/social-menu.svg';
+ $svg_icons = dirname( __DIR__ ) . '/theme-tools/social-menu/social-menu.svg';
// Define SVG sprite file in WPCOM.
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $svg_icons = dirname( dirname( __FILE__ ) ) . '/social-menu/social-menu.svg';
+ $svg_icons = dirname( __DIR__ ) . '/social-menu/social-menu.svg';
}
// If it exists, include it.
@@ -126,7 +143,7 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( ! empty( $title ) ) {
- echo $args['before_title'] . esc_html( $title ) . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if ( ! empty( $instance['icons'] ) ) :
@@ -135,12 +152,6 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
$social_icons = $this->get_supported_icons();
$default_icon = $this->get_svg_icon( array( 'icon' => 'chain' ) );
- // Set target attribute for the link.
- if ( true === $instance['new-tab'] ) {
- $target = '_blank';
- } else {
- $target = '_self';
- }
?>
<ul class="jetpack-social-widget-list size-<?php echo esc_attr( $instance['icon-size'] ); ?>">
@@ -149,33 +160,40 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
<?php if ( ! empty( $icon['url'] ) ) : ?>
<li class="jetpack-social-widget-item">
- <a href="<?php echo esc_url( $icon['url'], array( 'http', 'https', 'mailto', 'skype' ) ); ?>" target="<?php echo esc_attr( $target ); ?>">
- <?php
- $found_icon = false;
-
- foreach ( $social_icons as $social_icon ) {
- foreach ( $social_icon['url'] as $url_fragment ) {
- if ( false !== stripos( $icon['url'], $url_fragment ) ) {
- printf(
- '<span class="screen-reader-text">%1$s</span>%2$s',
- esc_attr( $social_icon['label'] ),
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- $this->get_svg_icon(
- array(
- 'icon' => esc_attr( $social_icon['icon'] ),
- )
+ <?php
+ printf(
+ '<a href="%1$s" %2$s>',
+ esc_url( $icon['url'], array( 'http', 'https', 'mailto', 'skype' ) ),
+ true === $instance['new-tab'] ?
+ 'target="_blank" rel="noopener noreferrer"' :
+ 'target="_self"'
+ );
+
+ $found_icon = false;
+
+ foreach ( $social_icons as $social_icon ) {
+ foreach ( $social_icon['url'] as $url_fragment ) {
+ if ( false !== stripos( $icon['url'], $url_fragment ) ) {
+ printf(
+ '<span class="screen-reader-text">%1$s</span>%2$s',
+ esc_attr( $social_icon['label'] ),
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ $this->get_svg_icon(
+ array(
+ 'icon' => esc_attr( $social_icon['icon'] ),
)
- );
- $found_icon = true;
- break;
- }
+ )
+ );
+ $found_icon = true;
+ break 2;
}
}
+ }
- if ( ! $found_icon ) {
- echo $default_icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- }
- ?>
+ if ( ! $found_icon ) {
+ echo $default_icon; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+ ?>
</a>
</li>
<?php endif; ?>
@@ -203,11 +221,12 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
*
* @return array Updated safe values to be saved.
*/
- public function update( $new_instance, $old_instance ) {
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = array();
$instance['title'] = sanitize_text_field( $new_instance['title'] );
$instance['icon-size'] = $this->defaults['icon-size'];
+ $instance['url-icons'] = array_key_exists( 'url-icons', $new_instance ) ? $new_instance['url-icons'] : array();
if ( in_array( $new_instance['icon-size'], array( 'small', 'medium', 'large' ), true ) ) {
$instance['icon-size'] = $new_instance['icon-size'];
@@ -216,13 +235,15 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
$instance['new-tab'] = isset( $new_instance['new-tab'] ) ? (bool) $new_instance['new-tab'] : false;
$instance['icons'] = array();
- foreach ( $new_instance['url-icons'] as $url ) {
- $url = filter_var( $url, FILTER_SANITIZE_URL );
+ if ( array_key_exists( 'url-icons', $new_instance ) ) {
+ foreach ( $new_instance['url-icons'] as $url ) {
+ $url = filter_var( $url, FILTER_SANITIZE_URL );
- if ( ! empty( $url ) ) {
- $instance['icons'][] = array(
- 'url' => $url,
- );
+ if ( ! empty( $url ) ) {
+ $instance['icons'][] = array(
+ 'url' => $url,
+ );
+ }
}
}
@@ -304,7 +325,7 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
?>
<p>
- <em><a href="<?php echo esc_url( $support ); ?>" target="_blank">
+ <em><a href="<?php echo esc_url( $support ); ?>" target="_blank" rel="noopener noreferrer">
<?php esc_html_e( 'View available icons', 'jetpack' ); ?>
</a></em>
</p>
@@ -457,6 +478,14 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Behance',
),
array(
+ 'url' => array(
+ 'blogger.com',
+ 'blogspot.com',
+ ),
+ 'icon' => 'blogger',
+ 'label' => 'Blogger',
+ ),
+ array(
'url' => array( 'codepen.io' ),
'icon' => 'codepen',
'label' => 'CodePen',
@@ -492,39 +521,16 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Etsy',
),
array(
+ 'url' => array( 'eventbrite.com' ),
+ 'icon' => 'eventbrite',
+ 'label' => 'Eventbrite',
+ ),
+ array(
'url' => array( 'facebook.com' ),
'icon' => 'facebook',
'label' => 'Facebook',
),
array(
- 'url' => array(
- '/feed/', // WordPress default feed url.
- '/feeds/', // Blogspot and others.
- '/blog/feed', // No trailing slash WordPress feed, could use /feed but may match unexpectedly.
- 'format=RSS', // Squarespace and others.
- '/rss', // Tumblr.
- '/.rss', // Reddit.
- '/rss.xml', // Moveable Type, Typepad.
- 'http://rss.', // Old custom format.
- 'https://rss.', // Old custom format.
- 'rss=1',
- '/feed=rss', // Catches feed=rss / feed=rss2.
- '?feed=rss', // WordPress non-permalink - Catches feed=rss / feed=rss2.
- '?feed=rdf', // WordPress non-permalink.
- '?feed=atom', // WordPress non-permalink.
- 'http://feeds.', // FeedBurner.
- 'https://feeds.', // FeedBurner.
- '/feed.xml', // Feedburner Alias, and others.
- '/index.xml', // Moveable Type, and others.
- '/atom.xml', // Typepad, Squarespace.
- '.atom', // Shopify blog.
- '/atom', // Some non-WordPress feeds.
- 'index.rdf', // Typepad.
- ),
- 'icon' => 'feed',
- 'label' => __( 'RSS Feed', 'jetpack' ),
- ),
- array(
'url' => array( 'flickr.com' ),
'icon' => 'flickr',
'label' => 'Flickr',
@@ -535,6 +541,11 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Foursquare',
),
array(
+ 'url' => array( 'ghost.org' ),
+ 'icon' => 'ghost',
+ 'label' => 'Ghost',
+ ),
+ array(
'url' => array( 'goodreads.com' ),
'icon' => 'goodreads',
'label' => 'Goodreads',
@@ -575,6 +586,11 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Medium',
),
array(
+ 'url' => array( 'patreon.com' ),
+ 'icon' => 'patreon',
+ 'label' => 'Patreon',
+ ),
+ array(
'url' => array( 'pinterest.' ),
'icon' => 'pinterest',
'label' => 'Pinterest',
@@ -585,6 +601,11 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Pocket',
),
array(
+ 'url' => array( 'ravelry.com' ),
+ 'icon' => 'ravelry',
+ 'label' => 'Ravelry',
+ ),
+ array(
'url' => array( 'reddit.com' ),
'icon' => 'reddit',
'label' => 'Reddit',
@@ -625,11 +646,26 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Stack Overflow',
),
array(
+ 'url' => array( 'strava.com' ),
+ 'icon' => 'strava',
+ 'label' => 'Strava',
+ ),
+ array(
'url' => array( 'stumbleupon.com' ),
'icon' => 'stumbleupon',
'label' => 'StumbleUpon',
),
array(
+ 'url' => array( 'telegram.me', 't.me' ),
+ 'icon' => 'telegram',
+ 'label' => 'Telegram',
+ ),
+ array(
+ 'url' => array( 'tiktok.com' ),
+ 'icon' => 'tiktok',
+ 'label' => 'TikTok',
+ ),
+ array(
'url' => array( 'tumblr.com' ),
'icon' => 'tumblr',
'label' => 'Tumblr',
@@ -655,6 +691,16 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'VK',
),
array(
+ 'url' => array( 'whatsapp.com' ),
+ 'icon' => 'whatsapp',
+ 'label' => 'WhatsApp',
+ ),
+ array(
+ 'url' => array( 'woocommerce.com' ),
+ 'icon' => 'woocommerce',
+ 'label' => 'WooCommerce',
+ ),
+ array(
'url' => array( 'wordpress.com', 'wordpress.org' ),
'icon' => 'wordpress',
'label' => 'WordPress',
@@ -665,10 +711,45 @@ class Jetpack_Widget_Social_Icons extends WP_Widget {
'label' => 'Yelp',
),
array(
+ 'url' => array( 'xanga.com' ),
+ 'icon' => 'xanga',
+ 'label' => 'Xanga',
+ ),
+ array(
'url' => array( 'youtube.com' ),
'icon' => 'youtube',
'label' => 'YouTube',
),
+
+ // keep feed at the end so that more specific icons can take precedence.
+ array(
+ 'url' => array(
+ '/feed/', // WordPress default feed url.
+ '/feeds/', // Blogspot and others.
+ '/blog/feed', // No trailing slash WordPress feed, could use /feed but may match unexpectedly.
+ 'format=RSS', // Squarespace and others.
+ '/rss', // Tumblr.
+ '/.rss', // Reddit.
+ '/rss.xml', // Moveable Type, Typepad.
+ 'http://rss.', // Old custom format.
+ 'https://rss.', // Old custom format.
+ 'rss=1',
+ '/feed=rss', // Catches feed=rss / feed=rss2.
+ '?feed=rss', // WordPress non-permalink - Catches feed=rss / feed=rss2.
+ '?feed=rdf', // WordPress non-permalink.
+ '?feed=atom', // WordPress non-permalink.
+ 'http://feeds.', // FeedBurner.
+ 'https://feeds.', // FeedBurner.
+ '/feed.xml', // Feedburner Alias, and others.
+ '/index.xml', // Moveable Type, and others.
+ '/atom.xml', // Typepad, Squarespace.
+ '.atom', // Shopify blog.
+ '/atom', // Some non-WordPress feeds.
+ 'index.rdf', // Typepad.
+ ),
+ 'icon' => 'feed',
+ 'label' => __( 'RSS Feed', 'jetpack' ),
+ ),
);
return $social_links_icons;
diff --git a/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.css b/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.css
index 575ac09f..9240793f 100644
--- a/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.css
+++ b/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.css
@@ -1,6 +1,6 @@
.jetpack-social-icons-widget-item {
background: #fff;
- border: 1px solid #e5e5e5;
+ border: 1px solid #dcdcde;
cursor: move;
margin: 0;
}
@@ -34,7 +34,7 @@ html[class*='wordpress_com'] .jetpack-social-icons-widget-item.ui-sortable-helpe
}
.jetpack-social-icons-widget-item.ui-state-placeholder {
- border-color: #a0a5aa;
+ border-color: #a7aaad;
border-style: dashed;
margin: 0 0 1px;
}
@@ -71,7 +71,7 @@ html[class*='wordpress_com'] .jetpack-social-icons-widget-item.ui-sortable-helpe
}
.jetpack-widget-social-icons-remove-item-button {
- color: #a00;
+ color: #d63638;
text-decoration: none;
}
diff --git a/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.js b/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.js
index d44716a9..a7598a96 100644
--- a/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.js
+++ b/plugins/jetpack/modules/widgets/social-icons/social-icons-admin.js
@@ -1,4 +1,4 @@
-( function( $ ) {
+( function ( $ ) {
var timeout = null;
// Make the list of items sortable.
@@ -10,12 +10,8 @@
placeholder: 'jetpack-social-icons-widget-item ui-state-placeholder',
containment: widget,
forcePlaceholderSize: true,
- update: function() {
- livePreviewUpdate(
- $( this )
- .parents( '.form' )
- .find( '.widget-control-save' )
- );
+ update: function () {
+ livePreviewUpdate( $( this ).parents( '.form' ).find( '.widget-control-save' ) );
},
} );
}
@@ -29,9 +25,11 @@
button.trigger( 'click' ).hide();
}
- $( document ).ready( function() {
+ $( document ).ready( function () {
// Add an item.
- $( document ).on( 'click', '.jetpack-social-icons-widget.add-button button', function( event ) {
+ $( document ).on( 'click', '.jetpack-social-icons-widget.add-button button', function (
+ event
+ ) {
event.preventDefault();
var template, widgetContent, widgetList, widgetLastItem, urlId, urlName;
@@ -54,27 +52,20 @@
} );
// Remove an item.
- $( document ).on( 'click', '.jetpack-widget-social-icons-remove-item-button', function(
+ $( document ).on( 'click', '.jetpack-widget-social-icons-remove-item-button', function (
event
) {
event.preventDefault();
-
- var button = $( this )
- .parents( '.form' )
- .find( '.widget-control-save' );
-
- $( this )
- .parents( '.jetpack-social-icons-widget-item' )
- .remove();
-
- livePreviewUpdate( button );
+ var widgetItem = $( this ).parents( '.jetpack-social-icons-widget-item' );
+ widgetItem.find( 'input' ).change();
+ widgetItem.remove();
} );
// Event handler for widget open button.
$( document ).on(
'click',
'div.widget[id*="jetpack_widget_social_icons"] .widget-title, div.widget[id*="jetpack_widget_social_icons"] .widget-action',
- function() {
+ function () {
if ( $( this ).parents( '#available-widgets' ).length ) {
return;
}
@@ -84,7 +75,7 @@
);
// Event handler for widget added.
- $( document ).on( 'widget-added', function( event, widget ) {
+ $( document ).on( 'widget-added', function ( event, widget ) {
if ( widget.is( '[id*="jetpack_widget_social_icons"]' ) ) {
event.preventDefault();
initWidget( widget );
@@ -92,7 +83,7 @@
} );
// Event handler for widget updated.
- $( document ).on( 'widget-updated', function( event, widget ) {
+ $( document ).on( 'widget-updated', function ( event, widget ) {
if ( widget.is( '[id*="jetpack_widget_social_icons"]' ) ) {
event.preventDefault();
initWidget( widget );
@@ -100,45 +91,29 @@
} );
// Live preview update on input focus out.
- $( document ).on( 'focusout', 'input[name*="jetpack_widget_social_icons"]', function() {
- livePreviewUpdate(
- $( this )
- .parents( '.form' )
- .find( '.widget-control-save' )
- );
+ $( document ).on( 'focusout', 'input[name*="jetpack_widget_social_icons"]', function () {
+ livePreviewUpdate( $( this ).parents( '.form' ).find( '.widget-control-save' ) );
} );
// Live preview update on input enter key.
- $( document ).on( 'keydown', 'input[name*="jetpack_widget_social_icons"]', function( event ) {
+ $( document ).on( 'keydown', 'input[name*="jetpack_widget_social_icons"]', function ( event ) {
if ( event.keyCode === 13 ) {
- livePreviewUpdate(
- $( this )
- .parents( '.form' )
- .find( '.widget-control-save' )
- );
+ livePreviewUpdate( $( this ).parents( '.form' ).find( '.widget-control-save' ) );
}
} );
// Live preview update on input key up 1s.
- $( document ).on( 'keyup', 'input[name*="jetpack_widget_social_icons"]', function() {
+ $( document ).on( 'keyup', 'input[name*="jetpack_widget_social_icons"]', function () {
clearTimeout( timeout );
- timeout = setTimeout( function() {
- livePreviewUpdate(
- $( this )
- .parents( '.form' )
- .find( '.widget-control-save' )
- );
+ timeout = setTimeout( function () {
+ livePreviewUpdate( $( this ).parents( '.form' ).find( '.widget-control-save' ) );
}, 1000 );
} );
// Live preview update on select change.
- $( document ).on( 'change', 'select[name*="jetpack_widget_social_icons"]', function() {
- livePreviewUpdate(
- $( this )
- .parents( '.form' )
- .find( '.widget-control-save' )
- );
+ $( document ).on( 'change', 'select[name*="jetpack_widget_social_icons"]', function () {
+ livePreviewUpdate( $( this ).parents( '.form' ).find( '.widget-control-save' ) );
} );
} );
} )( jQuery );
diff --git a/plugins/jetpack/modules/widgets/social-media-icons.php b/plugins/jetpack/modules/widgets/social-media-icons.php
index 214e6ed9..06f40974 100644
--- a/plugins/jetpack/modules/widgets/social-media-icons.php
+++ b/plugins/jetpack/modules/widgets/social-media-icons.php
@@ -1,23 +1,24 @@
-<?php
-/*
-Plugin Name: Social Media Icons Widget
-Description: A simple widget that displays social media icons
-Author: Automattic Inc.
-
-This widget is now deprecated.
-Any new features should go into modules/widgets/social-icons.php instead.
-@see https://github.com/Automattic/jetpack/pull/8498
-
-*/
-
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName.php
+/**
+ * Social Media Icons Widget
+ *
+ * This widget is now deprecated.
+ * Any new features should go into modules/widgets/social-icons.php instead.
+ *
+ * @see https://github.com/Automattic/jetpack/pull/8498
+ *
+ * @package automattic/jetpack
+ */
/**
* WPCOM_social_media_icons_widget class.
*
* @extends WP_Widget
+ *
+ * phpcs:disable PEAR.NamingConventions.ValidClassName.Invalid
*/
class WPCOM_social_media_icons_widget extends WP_Widget {
-
+ // phpcs:enable PEAR.NamingConventions.ValidClassName.Invalid
/**
* Defaults
*
@@ -34,7 +35,6 @@ class WPCOM_social_media_icons_widget extends WP_Widget {
*/
private $services;
-
/**
* __construct function.
*
@@ -129,32 +129,37 @@ class WPCOM_social_media_icons_widget extends WP_Widget {
if ( ! $this->check_genericons() ) {
wp_enqueue_style( 'genericons' );
}
- $index = 10;
- $html = array();
+ $index = 10;
+ $html = array();
+ /* Translators: 1. Username. 2. Service name. */
$alt_text = esc_attr__( 'View %1$s&#8217;s profile on %2$s', 'jetpack' );
foreach ( $this->services as $service => $data ) {
list( $service_name, $url ) = $data;
if ( ! isset( $instance[ $service . '_username' ] ) ) {
continue;
}
- $username = $link_username = $instance[ $service . '_username' ];
+ $link_username = $instance[ $service . '_username' ];
+ $username = $link_username;
if ( empty( $username ) ) {
continue;
}
$index += 10;
$predefined_url = false;
- /** Check if full URL entered in configuration, use it instead of tinkering **/
+ /** Check if full URL entered in configuration, use it instead of tinkering */
if (
in_array(
wp_parse_url( $username, PHP_URL_SCHEME ),
- array( 'http', 'https' )
+ array( 'http', 'https' ),
+ true
)
) {
$predefined_url = $username;
- // In case of a predefined link we only display the service name
- // for screen readers
+ /*
+ * In case of a predefined link we only display the service name
+ * for screen readers
+ */
$alt_text = '%2$s';
}
@@ -213,7 +218,7 @@ class WPCOM_social_media_icons_widget extends WP_Widget {
ksort( $html );
$html = '<ul><li>' . join( '</li><li>', $html ) . '</li></ul>';
if ( ! empty( $instance['title'] ) ) {
- $html = $args['before_title'] . esc_html( $instance['title'] ) . $args['after_title'] . $html;
+ $html = $args['before_title'] . $instance['title'] . $args['after_title'] . $html;
}
$html = $args['before_widget'] . $html . $args['after_widget'];
@@ -229,7 +234,7 @@ class WPCOM_social_media_icons_widget extends WP_Widget {
*
* @param string $html Social Media Icons widget html output.
*/
- echo apply_filters( 'jetpack_social_media_icons_widget_output', $html );
+ echo apply_filters( 'jetpack_social_media_icons_widget_output', $html ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
/**
@@ -254,13 +259,16 @@ class WPCOM_social_media_icons_widget extends WP_Widget {
</p>
<?php
foreach ( $this->services as $service => $data ) {
- list( $service_name, $url ) = $data;
+ list( $service_name, $url ) = $data; // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
?>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( $service . '_username' ) ); ?>">
<?php
- /* translators: %s is a social network name, e.g. Facebook. */
- printf( __( '%s username:', 'jetpack' ), $service_name );
+ printf(
+ /* translators: %s is a social network name, e.g. Facebook. */
+ esc_html__( '%s username:', 'jetpack' ),
+ esc_html( $service_name )
+ );
?>
</label>
<input
diff --git a/plugins/jetpack/modules/widgets/social-media-icons/style.css b/plugins/jetpack/modules/widgets/social-media-icons/style.css
index 665d1c7d..30141687 100644
--- a/plugins/jetpack/modules/widgets/social-media-icons/style.css
+++ b/plugins/jetpack/modules/widgets/social-media-icons/style.css
@@ -29,7 +29,7 @@
.widget_wpcom_social_media_icons_widget .screen-reader-text:hover,
.widget_wpcom_social_media_icons_widget .screen-reader-text:active,
.widget_wpcom_social_media_icons_widget .screen-reader-text:focus {
- background-color: #f1f1f1;
+ background-color: #f0f0f1;
border-radius: 3px;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
clip: auto !important;
@@ -46,4 +46,4 @@
top: 5px;
width: auto;
z-index: 100000; /* Above WP toolbar. */
-} \ No newline at end of file
+}
diff --git a/plugins/jetpack/modules/widgets/top-posts.php b/plugins/jetpack/modules/widgets/top-posts.php
index 9a804392..4f3fe912 100644
--- a/plugins/jetpack/modules/widgets/top-posts.php
+++ b/plugins/jetpack/modules/widgets/top-posts.php
@@ -1,19 +1,27 @@
-<?php
-
-/*
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Top Posts widget.
+ *
* Currently, this widget depends on the Stats Module. To not load this file
* when the Stats Module is not active would potentially bypass Jetpack's
* fatal error detection on module activation, so we always load this file.
* Instead, we don't register the widget if the Stats Module isn't active.
+ *
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Redirect;
+
/**
* Register the widget for use in Appearance -> Widgets
*/
add_action( 'widgets_init', 'jetpack_top_posts_widget_init' );
+/**
+ * Register the widget, if the Stats module is active.
+ */
function jetpack_top_posts_widget_init() {
- // Currently, this widget depends on the Stats Module
+ // Currently, this widget depends on the Stats Module.
if (
( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM )
&&
@@ -25,11 +33,28 @@ function jetpack_top_posts_widget_init() {
register_widget( 'Jetpack_Top_Posts_Widget' );
}
+/**
+ * Widget class.
+ */
class Jetpack_Top_Posts_Widget extends WP_Widget {
+ /**
+ * Widget unique identifier.
+ *
+ * @var string
+ */
public $alt_option_name = 'widget_stats_topposts';
- public $default_title = '';
- function __construct() {
+ /**
+ * Widget default title.
+ *
+ * @var string
+ */
+ public $default_title = '';
+
+ /**
+ * Constructor.
+ */
+ public function __construct() {
parent::__construct(
'top-posts',
/** This filter is documented in modules/widgets/facebook-likebox.php */
@@ -56,12 +81,22 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
add_action( 'jetpack_widget_top_posts_after_fields', array( $this, 'stats_explanation' ) );
}
- function enqueue_style() {
+ /**
+ * Enqueue stylesheet.
+ */
+ public function enqueue_style() {
wp_register_style( 'jetpack-top-posts-widget', plugins_url( 'top-posts/style.css', __FILE__ ), array(), '20141013' );
wp_enqueue_style( 'jetpack-top-posts-widget' );
}
- function form( $instance ) {
+ /**
+ * Displays the form for this widget on the Widgets page of the WP Admin area.
+ *
+ * @param array $instance Instance configuration.
+ *
+ * @return void
+ */
+ public function form( $instance ) {
$instance = wp_parse_args( (array) $instance, $this->defaults() );
if ( false === $instance['title'] ) {
@@ -80,7 +115,7 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
// 'likes' are not available in Jetpack
$ordering = isset( $instance['ordering'] ) && 'likes' === $instance['ordering'] ? 'likes' : 'views';
- if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) {
+ if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ), true ) ) {
$display = $instance['display'];
} else {
$display = 'text';
@@ -89,42 +124,48 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
?>
<p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'count' ); ?>"><?php esc_html_e( 'Maximum number of posts to show (no more than 10):', 'jetpack' ); ?></label>
- <input id="<?php echo $this->get_field_id( 'count' ); ?>" name="<?php echo $this->get_field_name( 'count' ); ?>" type="number" value="<?php echo (int) $count; ?>" min="1" max="10" />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>"><?php esc_html_e( 'Maximum number of posts to show (no more than 10):', 'jetpack' ); ?></label>
+ <input id="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'count' ) ); ?>" type="number" value="<?php echo (int) $count; ?>" min="1" max="10" />
</p>
<?php if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) : ?>
<p>
<label><?php esc_html_e( 'Order Top Posts &amp; Pages By:', 'jetpack' ); ?></label>
<ul>
- <li><label><input id="<?php echo $this->get_field_id( 'ordering' ); ?>-likes" name="<?php echo $this->get_field_name( 'ordering' ); ?>" type="radio" value="likes" <?php checked( 'likes', $ordering ); ?> /> <?php esc_html_e( 'Likes', 'jetpack' ); ?></label></li>
- <li><label><input id="<?php echo $this->get_field_id( 'ordering' ); ?>-views" name="<?php echo $this->get_field_name( 'ordering' ); ?>" type="radio" value="views" <?php checked( 'views', $ordering ); ?> /> <?php esc_html_e( 'Views', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'ordering' ) ); ?>-likes" name="<?php echo esc_attr( $this->get_field_name( 'ordering' ) ); ?>" type="radio" value="likes" <?php checked( 'likes', $ordering ); ?> /> <?php esc_html_e( 'Likes', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'ordering' ) ); ?>-views" name="<?php echo esc_attr( $this->get_field_name( 'ordering' ) ); ?>" type="radio" value="views" <?php checked( 'views', $ordering ); ?> /> <?php esc_html_e( 'Views', 'jetpack' ); ?></label></li>
</ul>
</p>
<?php endif; ?>
<p>
- <label for="<?php echo $this->get_field_id( 'types' ); ?>"><?php esc_html_e( 'Types of pages to display:', 'jetpack' ); ?></label>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'types' ) ); ?>"><?php esc_html_e( 'Types of pages to display:', 'jetpack' ); ?></label>
<ul>
<?php
foreach ( $allowed_post_types as $type ) {
- // Get the Post Type name to display next to the checkbox
+ // Get the Post Type name to display next to the checkbox.
$post_type_object = get_post_type_object( $type );
$label = $post_type_object->labels->name;
$checked = '';
- if ( in_array( $type, $types ) ) {
+ if ( in_array( $type, $types, true ) ) {
$checked = 'checked="checked" ';
}
?>
<li><label>
- <input value="<?php echo esc_attr( $type ); ?>" name="<?php echo $this->get_field_name( 'types' ); ?>[]" id="<?php echo $this->get_field_id( 'types' ); ?>-<?php echo $type; ?>" type="checkbox" <?php echo $checked; ?>>
+ <input
+ value="<?php echo esc_attr( $type ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'types' ) ); ?>[]"
+ id="<?php echo esc_attr( $this->get_field_id( 'types' ) . '-' . $type ); ?>"
+ type="checkbox"
+ <?php echo $checked; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ >
<?php echo esc_html( $label ); ?>
</label></li>
@@ -135,9 +176,9 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
<p>
<label><?php esc_html_e( 'Display as:', 'jetpack' ); ?></label>
<ul>
- <li><label><input id="<?php echo $this->get_field_id( 'display' ); ?>-text" name="<?php echo $this->get_field_name( 'display' ); ?>" type="radio" value="text" <?php checked( 'text', $display ); ?> /> <?php esc_html_e( 'Text List', 'jetpack' ); ?></label></li>
- <li><label><input id="<?php echo $this->get_field_id( 'display' ); ?>-list" name="<?php echo $this->get_field_name( 'display' ); ?>" type="radio" value="list" <?php checked( 'list', $display ); ?> /> <?php esc_html_e( 'Image List', 'jetpack' ); ?></label></li>
- <li><label><input id="<?php echo $this->get_field_id( 'display' ); ?>-grid" name="<?php echo $this->get_field_name( 'display' ); ?>" type="radio" value="grid" <?php checked( 'grid', $display ); ?> /> <?php esc_html_e( 'Image Grid', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'display' ) ); ?>-text" name="<?php echo esc_attr( $this->get_field_name( 'display' ) ); ?>" type="radio" value="text" <?php checked( 'text', $display ); ?> /> <?php esc_html_e( 'Text List', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'display' ) ); ?>-list" name="<?php echo esc_attr( $this->get_field_name( 'display' ) ); ?>" type="radio" value="list" <?php checked( 'list', $display ); ?> /> <?php esc_html_e( 'Image List', 'jetpack' ); ?></label></li>
+ <li><label><input id="<?php echo esc_attr( $this->get_field_id( 'display' ) ); ?>-grid" name="<?php echo esc_attr( $this->get_field_name( 'display' ) ); ?>" type="radio" value="grid" <?php checked( 'grid', $display ); ?> /> <?php esc_html_e( 'Image Grid', 'jetpack' ); ?></label></li>
</ul>
</p>
<?php
@@ -162,18 +203,25 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
/**
* Explains how the statics are calculated.
*/
- function stats_explanation() {
- ?>
-
- <p><?php esc_html_e( 'Top Posts &amp; Pages by views are calculated from 24-48 hours of stats. They take a while to change.', 'jetpack' ); ?></p>
- <?php
+ public function stats_explanation() {
+ echo '<p>';
+ esc_html_e( 'Top Posts &amp; Pages by views are calculated from 24-48 hours of stats. They take a while to change.', 'jetpack' );
+ echo '</p>';
}
- function update( $new_instance, $old_instance ) {
+ /**
+ * Deals with the settings when they are saved by the admin.
+ *
+ * @param array $new_instance New configuration values.
+ * @param array $old_instance Old configuration values.
+ *
+ * @return array
+ */
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = array();
$instance['title'] = wp_kses( $new_instance['title'], array() );
if ( $instance['title'] === $this->default_title ) {
- $instance['title'] = false; // Store as false in case of language change
+ $instance['title'] = false; // Store as false in case of language change.
}
$instance['count'] = (int) $new_instance['count'];
@@ -182,17 +230,19 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
}
// 'likes' are not available in Jetpack
- $instance['ordering'] = isset( $new_instance['ordering'] ) && 'likes' == $new_instance['ordering'] ? 'likes' : 'views';
+ $instance['ordering'] = isset( $new_instance['ordering'] ) && 'likes' === $new_instance['ordering']
+ ? 'likes'
+ : 'views';
$allowed_post_types = array_values( get_post_types( array( 'public' => true ) ) );
$instance['types'] = $new_instance['types'];
foreach ( $new_instance['types'] as $key => $type ) {
- if ( ! in_array( $type, $allowed_post_types ) ) {
+ if ( ! in_array( $type, $allowed_post_types, true ) ) {
unset( $new_instance['types'][ $key ] );
}
}
- if ( isset( $new_instance['display'] ) && in_array( $new_instance['display'], array( 'grid', 'list', 'text' ) ) ) {
+ if ( isset( $new_instance['display'] ) && in_array( $new_instance['display'], array( 'grid', 'list', 'text' ), true ) ) {
$instance['display'] = $new_instance['display'];
} else {
$instance['display'] = 'text';
@@ -213,7 +263,15 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
return $instance;
}
- function widget( $args, $instance ) {
+ /**
+ * Outputs the HTML for this widget.
+ *
+ * @param array $args An array of standard parameters for widgets in this theme.
+ * @param array $instance An array of settings for this widget instance.
+ *
+ * @return void Echoes it's output
+ */
+ public function widget( $args, $instance ) {
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'top_posts' );
@@ -244,15 +302,20 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
$types = isset( $instance['types'] ) ? (array) $instance['types'] : array( 'post', 'page' );
// 'likes' are not available in Jetpack
- $ordering = isset( $instance['ordering'] ) && 'likes' == $instance['ordering'] ? 'likes' : 'views';
-
- if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) {
+ $ordering = isset( $instance['ordering'] ) && 'likes' === $instance['ordering']
+ ? 'likes'
+ : 'views';
+
+ if (
+ isset( $instance['display'] )
+ && in_array( $instance['display'], array( 'grid', 'list', 'text' ), true )
+ ) {
$display = $instance['display'];
} else {
$display = 'text';
}
- if ( 'text' != $display ) {
+ if ( 'text' !== $display ) {
$get_image_options = array(
'fallback_to_avatars' => true,
/** This filter is documented in modules/stats.php */
@@ -261,7 +324,7 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
'width' => null,
'height' => null,
);
- if ( 'grid' == $display ) {
+ if ( 'grid' === $display ) {
$get_image_options['avatar_size'] = 200;
}
/**
@@ -283,44 +346,45 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
$get_image_options = apply_filters( 'jetpack_top_posts_widget_image_options', $get_image_options );
}
- if ( function_exists( 'wpl_get_blogs_most_liked_posts' ) && 'likes' == $ordering ) {
- $posts = $this->get_by_likes( $count );
+ if ( function_exists( 'wpl_get_blogs_most_liked_posts' ) && 'likes' === $ordering ) {
+ $posts = $this->get_by_likes( $count, $types );
} else {
- $posts = $this->get_by_views( $count, $args );
- }
-
- // Filter the returned posts. Remove all posts that do not match the chosen Post Types.
- if ( isset( $types ) ) {
- foreach ( $posts as $k => $post ) {
- if ( ! in_array( $post['post_type'], $types ) ) {
- unset( $posts[ $k ] );
- }
- }
+ $posts = $this->get_by_views( $count, $args, $types );
}
if ( ! $posts ) {
- $posts = $this->get_fallback_posts();
+ $posts = $this->get_fallback_posts( $count, $types );
}
- echo $args['before_widget'];
+ echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( ! empty( $title ) ) {
- echo $args['before_title'] . $title . $args['after_title'];
+ echo $args['before_title'] . $title . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if ( ! $posts ) {
- $link = 'https://jetpack.com/support/getting-more-views-and-traffic/';
+ $link = esc_url( Redirect::get_url( 'jetpack-support-getting-more-views-and-traffic' ) );
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
$link = 'https://en.support.wordpress.com/getting-more-site-traffic/';
}
if ( current_user_can( 'edit_theme_options' ) ) {
echo '<p>' . sprintf(
- __( 'There are no posts to display. <a href="%s" target="_blank">Want more traffic?</a>', 'jetpack' ),
+ wp_kses(
+ /* Translators: Placeholder: link to the Jetpack support article. */
+ __( 'There are no posts to display. <a href="%s" target="_blank">Want more traffic?</a>', 'jetpack' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'target' => array(),
+ ),
+ )
+ ),
esc_url( $link )
) . '</p>';
}
- echo $args['after_widget'];
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+
return;
}
@@ -337,8 +401,8 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
*/
$layout = apply_filters( 'jetpack_top_posts_widget_layout', '', $posts, $display );
if ( ! empty( $layout ) ) {
- echo $layout;
- echo $args['after_widget'];
+ echo $layout; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
return;
}
@@ -370,17 +434,17 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
)
);
$post['image'] = $image['src'];
- if ( 'blavatar' != $image['from'] && 'gravatar' != $image['from'] ) {
+ if ( 'blavatar' !== $image['from'] && 'gravatar' !== $image['from'] ) {
$post['image'] = jetpack_photon_url( $post['image'], array( 'resize' => "$width,$height" ) );
}
}
unset( $post );
- if ( 'grid' == $display ) {
+ if ( 'grid' === $display ) {
echo "<div class='widgets-grid-layout no-grav'>\n";
foreach ( $posts as $post ) :
- ?>
+ ?>
<div class="widget-grid-view-image">
<?php
/**
@@ -428,13 +492,13 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
do_action( 'jetpack_widget_top_posts_after_post', $post['post_id'] );
?>
</div>
- <?php
+ <?php
endforeach;
echo "</div>\n";
} else {
echo "<ul class='widgets-list-layout no-grav'>\n";
foreach ( $posts as $post ) :
- ?>
+ ?>
<li>
<?php
/** This action is documented in modules/widgets/top-posts.php */
@@ -464,7 +528,7 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
do_action( 'jetpack_widget_top_posts_after_post', $post['post_id'] );
?>
</li>
- <?php
+ <?php
endforeach;
echo "</ul>\n";
}
@@ -472,7 +536,7 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
default:
echo '<ul>';
foreach ( $posts as $post ) :
- ?>
+ ?>
<li>
<?php
/** This action is documented in modules/widgets/top-posts.php */
@@ -492,14 +556,17 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
do_action( 'jetpack_widget_top_posts_after_post', $post['post_id'] );
?>
</li>
- <?php
+ <?php
endforeach;
echo '</ul>';
}
- echo $args['after_widget'];
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
+ /**
+ * Widget default option values.
+ */
public static function defaults() {
return array(
'title' => esc_html__( 'Top Posts &amp; Pages', 'jetpack' ),
@@ -510,32 +577,60 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
);
}
- /*
+ /**
* Get most liked posts
*
* ONLY TO BE USED IN WPCOM
+ *
+ * @since 8.4.0 Added $types param
+ *
+ * @param int $count The maximum number of posts to be returned.
+ * @param array $types The post types that should be returned. Optional. Defaults to 'post' and 'page'.
+ *
+ * @return array array of posts.
*/
- function get_by_likes( $count ) {
+ public function get_by_likes( $count, $types = array( 'post', 'page' ) ) {
$post_likes = wpl_get_blogs_most_liked_posts();
if ( ! $post_likes ) {
return array();
}
- return $this->get_posts( array_keys( $post_likes ), $count );
+ return $this->get_posts( array_keys( $post_likes ), $count, $types );
}
- function get_by_views( $count, $args ) {
+ /**
+ * Get the top posts based on views
+ *
+ * @since 8.4.0 Added $types param
+ *
+ * @param int $count The maximum number of posts to be returned.
+ * @param array $args The widget arguments.
+ * @param array $types The post types that should be returned.
+ *
+ * @return array array of posts. Defaults to 'post' and 'page'.
+ */
+ public function get_by_views( $count, $args, $types = array( 'post', 'page' ) ) {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- global $wpdb;
-
$post_views = wp_cache_get( "get_top_posts_$count", 'stats' );
if ( false === $post_views ) {
- $post_views = array_shift( stats_get_daily_history( false, get_current_blog_id(), 'postviews', 'post_id', false, 2, '', $count * 2 + 10, true ) );
+ $post_views = array_shift(
+ stats_get_daily_history(
+ false,
+ get_current_blog_id(),
+ 'postviews',
+ 'post_id',
+ false,
+ 2,
+ '',
+ $count * 2 + 10,
+ true
+ )
+ );
unset( $post_views[0] );
wp_cache_add( "get_top_posts_$count", $post_views, 'stats', 1200 );
}
- return $this->get_posts( array_keys( $post_views ), $count );
+ return $this->get_posts( array_keys( $post_views ), $count, $types );
}
/**
@@ -554,11 +649,11 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
$days = (int) apply_filters( 'jetpack_top_posts_days', 2, $args );
/** Handling situations where the number of days makes no sense - allows for unlimited days where $days = -1 */
- if ( 0 == $days || false == $days ) {
+ if ( 0 === $days || false === $days ) {
$days = 2;
}
- $post_view_posts = stats_get_from_restapi( array(), 'top-posts?max=11&summarize=1&num=' . intval( $days ) );
+ $post_view_posts = stats_get_from_restapi( array(), 'top-posts?max=11&summarize=1&num=' . (int) $days );
if ( ! isset( $post_view_posts->summary ) || empty( $post_view_posts->summary->postviews ) ) {
return array();
@@ -570,22 +665,36 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
return array();
}
- return $this->get_posts( $post_view_ids, $count );
+ return $this->get_posts( $post_view_ids, $count, $types );
}
- function get_fallback_posts() {
+ /**
+ * Get some posts if no posts are found in the stats API
+ *
+ * @since 8.4.0 Added $count and $types
+ *
+ * @param int $count The maximum number of posts to be returned.
+ * @param array $types The post types that should be returned.
+ * @return array
+ */
+ public function get_fallback_posts( $count = 10, $types = array( 'post', 'page' ) ) {
if ( current_user_can( 'edit_theme_options' ) ) {
return array();
}
- $post_query = new WP_Query;
+ $post_query = new WP_Query();
+
+ if ( ! is_array( $types ) || empty( $types ) ) {
+ $types = array( 'post', 'page' );
+ }
$posts = $post_query->query(
array(
- 'posts_per_page' => 1,
+ 'posts_per_page' => $count,
'post_status' => 'publish',
- 'post_type' => array( 'post', 'page' ),
+ 'post_type' => $types,
'no_found_rows' => true,
+ 'fields' => 'ids',
)
);
@@ -593,14 +702,26 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
return array();
}
- $post = array_pop( $posts );
-
- return $this->get_posts( $post->ID, 1 );
+ return $this->get_posts( $posts, $count, $types );
}
- function get_posts( $post_ids, $count ) {
+ /**
+ * Get posts from an array of IDs
+ *
+ * @since 8.4.0 Added $types parameters
+ *
+ * @param array $post_ids The post IDs.
+ * @param int $count The maximum number of posts to return.
+ * @param array $types The post types that should be returned. Optional. Defaults to 'post', 'page'.
+ * @return array
+ */
+ public function get_posts( $post_ids, $count, $types = array( 'post', 'page' ) ) {
$counter = 0;
+ if ( ! is_array( $types ) || empty( $types ) ) {
+ $types = array( 'post', 'page' );
+ }
+
$posts = array();
foreach ( (array) $post_ids as $post_id ) {
$post = get_post( $post_id );
@@ -614,16 +735,21 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
* To be able to remove attachment pages from private and password protect posts,
* we need to replace their post status by the parent post' status.
*/
- if ( 'inherit' == $post->post_status && 'attachment' == $post->post_type ) {
+ if ( 'inherit' === $post->post_status && 'attachment' === $post->post_type ) {
$post->post_status = get_post_status( $post_id );
}
- // hide private and password protected posts
- if ( 'publish' != $post->post_status || ! empty( $post->post_password ) ) {
+ // hide private and password protected posts.
+ if ( 'publish' !== $post->post_status || ! empty( $post->post_password ) ) {
continue;
}
- // Both get HTML stripped etc on display
+ // Filter by chosen Post Types.
+ if ( ! in_array( $post->post_type, $types, true ) ) {
+ continue;
+ }
+
+ // Both get HTML stripped etc on display.
if ( empty( $post->post_title ) ) {
$title_source = $post->post_content;
$title = wp_html_excerpt( $title_source, 50 );
@@ -639,8 +765,8 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
$posts[] = compact( 'title', 'permalink', 'post_id', 'post_type' );
$counter++;
- if ( $counter == $count ) {
- break; // only need to load and show x number of likes
+ if ( $counter == $count ) { // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison
+ break; // only need to load and show x number of likes.
}
}
@@ -663,6 +789,8 @@ class Jetpack_Top_Posts_Widget extends WP_Widget {
* Create a shortcode to display the widget anywhere.
*
* @since 3.9.2
+ *
+ * @param array $instance Saved values from database.
*/
function jetpack_do_top_posts_widget( $instance ) {
// Post Types can't be entered as an array in the shortcode parameters.
@@ -676,7 +804,7 @@ function jetpack_do_top_posts_widget( $instance ) {
'jetpack_top_posts_widget'
);
- // Add a class to allow styling
+ // Add a class to allow styling.
$args = array(
'before_widget' => sprintf( '<div class="%s">', 'jetpack_top_posts_widget' ),
);
diff --git a/plugins/jetpack/modules/widgets/twitter-timeline-admin.js b/plugins/jetpack/modules/widgets/twitter-timeline-admin.js
index e6a65140..2ace483f 100644
--- a/plugins/jetpack/modules/widgets/twitter-timeline-admin.js
+++ b/plugins/jetpack/modules/widgets/twitter-timeline-admin.js
@@ -1,11 +1,11 @@
-jQuery( function( $ ) {
+jQuery( function ( $ ) {
function twitterWidgetTypeChanged( widgetTypeSelector ) {
var selectedType = $( widgetTypeSelector ).val();
$( widgetTypeSelector )
.closest( '.jetpack-twitter-timeline-widget-type-container' )
.next( '.jetpack-twitter-timeline-widget-id-container' )
.find( 'label' )
- .css( 'display', function() {
+ .css( 'display', function () {
var labelType = $( this ).data( 'widget-type' );
if ( selectedType === labelType ) {
return '';
@@ -15,6 +15,29 @@ jQuery( function( $ ) {
} );
}
+ function twitterWidgetTweetDisplayChanged( event ) {
+ var $tweetDisplaySelector = $( event.target );
+ var selectedTweetDisplay = $tweetDisplaySelector.val();
+ var $form = $tweetDisplaySelector.closest( 'form' );
+ var $heightContainer = $form.find( '.jetpack-twitter-timeline-widget-height-container' );
+ var $tweetLimitContainer = $form.find(
+ '.jetpack-twitter-timeline-widget-tweet-limit-container'
+ );
+ var $scrollbarInput = $form.find( 'input[id*=chrome-noscrollbar]' );
+ switch ( selectedTweetDisplay ) {
+ case 'fixed':
+ $heightContainer.hide();
+ $tweetLimitContainer.show();
+ $scrollbarInput.prop( 'disabled', true );
+ break;
+ case 'dynamic':
+ $tweetLimitContainer.hide();
+ $heightContainer.show();
+ $scrollbarInput.prop( 'disabled', false );
+ break;
+ }
+ }
+
// We could either be in wp-admin/widgets.php or the Customizer.
var $container = $( '#customize-controls' );
if ( ! $container.length ) {
@@ -23,13 +46,21 @@ jQuery( function( $ ) {
// Observe widget settings for 'change' events of the 'type' property for
// current and future Twitter timeline widgets.
- $container.on( 'change', '.jetpack-twitter-timeline-widget-type', function() {
+ $container.on( 'change', '.jetpack-twitter-timeline-widget-type', function () {
twitterWidgetTypeChanged( this );
} );
// Set the labels for currently existing widgets (including the "template"
// version that is copied when a new widget is added).
- $container.find( '.jetpack-twitter-timeline-widget-type' ).each( function() {
+ $container.find( '.jetpack-twitter-timeline-widget-type' ).each( function () {
twitterWidgetTypeChanged( this );
} );
+
+ // Observe widget settings for 'change' events of the 'tweet-display' property for
+ // current and future Twitter timeline widgets.
+ $container.on(
+ 'change',
+ '.jetpack-twitter-timeline-widget-tweet-display-radio',
+ twitterWidgetTweetDisplayChanged
+ );
} );
diff --git a/plugins/jetpack/modules/widgets/twitter-timeline.php b/plugins/jetpack/modules/widgets/twitter-timeline.php
index 6f9662a3..f13f9fd9 100644
--- a/plugins/jetpack/modules/widgets/twitter-timeline.php
+++ b/plugins/jetpack/modules/widgets/twitter-timeline.php
@@ -1,24 +1,30 @@
-<?php
-
-/*
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Twitter Timeline Widget.
+ *
* Based on Evolution Twitter Timeline
* (https://wordpress.org/extend/plugins/evolution-twitter-timeline/)
* For details on Twitter Timelines see:
* - https://twitter.com/settings/widgets
* - https://dev.twitter.com/docs/embedded-timelines
+ *
+ * @package automattic/jetpack
*/
use Automattic\Jetpack\Assets;
+use Automattic\Jetpack\Redirect;
/**
* Register the widget for use in Appearance -> Widgets
*/
-add_action( 'widgets_init', 'jetpack_twitter_timeline_widget_init' );
-
function jetpack_twitter_timeline_widget_init() {
register_widget( 'Jetpack_Twitter_Timeline_Widget' );
}
+add_action( 'widgets_init', 'jetpack_twitter_timeline_widget_init' );
+/**
+ * Widget class.
+ */
class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
/**
* Register widget with WordPress.
@@ -40,27 +46,33 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
}
add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
+ add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
}
/**
- * Enqueue scripts.
+ * Remove the "Twitter Timeline" widget from the Legacy Widget block
+ *
+ * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
+ * @return array $widget_types New list of widgets that will be removed.
*/
- public function enqueue_scripts() {
- wp_enqueue_script( 'jetpack-twitter-timeline' );
+ public function hide_widget_in_block_editor( $widget_types ) {
+ $widget_types[] = 'twitter_timeline';
+ return $widget_types;
}
/**
- * Enqueue Twitter's widget library.
- *
- * @deprecated
+ * Enqueue scripts.
*/
- public function library() {
- _deprecated_function( __METHOD__, '4.0.0' );
- wp_print_scripts( array( 'jetpack-twitter-timeline' ) );
+ public function enqueue_scripts() {
+ if ( ! class_exists( 'Jetpack_AMP_Support' ) || ! Jetpack_AMP_Support::is_amp_request() ) {
+ wp_enqueue_script( 'jetpack-twitter-timeline' );
+ }
}
/**
* Enqueue script to improve admin UI
+ *
+ * @param string $hook Page hook.
*/
public function admin_scripts( $hook ) {
// This is still 'widgets.php' when managing widgets via the Customizer.
@@ -70,7 +82,10 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
Assets::get_file_url_for_environment(
'_inc/build/widgets/twitter-timeline-admin.min.js',
'modules/widgets/twitter-timeline-admin.js'
- )
+ ),
+ array(),
+ JETPACK__VERSION,
+ true
);
}
}
@@ -84,60 +99,54 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
* @param array $instance Saved values from database.
*/
public function widget( $args, $instance ) {
+ $output = '';
+
// Twitter deprecated `data-widget-id` on 2018-05-25,
// with cease support deadline on 2018-07-27.
if ( isset( $instance['type'] ) && 'widget-id' === $instance['type'] ) {
if ( current_user_can( 'edit_theme_options' ) ) {
- echo $args['before_widget'];
- echo $args['before_title'] . esc_html__( 'Twitter Timeline', 'jetpack' ) . $args['after_title'];
- echo '<p>' . esc_html__( "The Twitter Timeline widget can't display tweets based on searches or hashtags. To display a simple list of tweets instead, change the Widget ID to a Twitter username. Otherwise, delete this widget.", 'jetpack' ) . '</p>';
- echo '<p>' . esc_html__( '(Only administrators will see this message.)', 'jetpack' ) . '</p>';
- echo $args['after_widget'];
+ $output .= $args['before_widget']
+ . $args['before_title'] . esc_html__( 'Twitter Timeline', 'jetpack' ) . $args['after_title']
+ . '<p>' . esc_html__( "The Twitter Timeline widget can't display tweets based on searches or hashtags. To display a simple list of tweets instead, change the Widget ID to a Twitter username. Otherwise, delete this widget.", 'jetpack' ) . '</p>'
+ . '<p>' . esc_html__( '(Only administrators will see this message.)', 'jetpack' ) . '</p>'
+ . $args['after_widget'];
}
+
+ echo $output; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
return;
}
$instance['lang'] = substr( strtoupper( get_locale() ), 0, 2 );
- echo $args['before_widget'];
+ $output .= $args['before_widget'];
$title = isset( $instance['title'] ) ? $instance['title'] : '';
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$title = apply_filters( 'widget_title', $title );
if ( ! empty( $title ) ) {
- echo $args['before_title'] . $title . $args['after_title'];
- }
-
- if ( isset( $instance['type'] ) && 'widget-id' === $instance['type'] && current_user_can( 'edit_theme_options' ) ) {
- echo '<p>' . esc_html__( 'As of July 27, 2018, the Twitter Timeline widget will no longer display tweets based on searches or hashtags. To display a simple list of tweets instead, change the Widget ID to a Twitter username.', 'jetpack' ) . '</p>';
- echo '<p>' . esc_html__( '(Only administrators will see this message.)', 'jetpack' ) . '</p>';
+ $output .= $args['before_title'] . $title . $args['after_title'];
}
- // Start tag output
- // This tag is transformed into the widget markup by Twitter's
- // widgets.js code
- echo '<a class="twitter-timeline"';
-
- $data_attribs = array(
+ $possible_data_attribs = array(
'width',
'height',
'theme',
- 'link-color',
'border-color',
'tweet-limit',
'lang',
);
- foreach ( $data_attribs as $att ) {
+ $data_attrs = '';
+ foreach ( $possible_data_attribs as $att ) {
if ( ! empty( $instance[ $att ] ) && ! is_array( $instance[ $att ] ) ) {
- echo ' data-' . esc_attr( $att ) . '="' . esc_attr( $instance[ $att ] ) . '"';
+ $data_attrs .= ' data-' . esc_attr( $att ) . '="' . esc_attr( $instance[ $att ] ) . '"';
}
}
/** This filter is documented in modules/shortcodes/tweet.php */
$partner = apply_filters( 'jetpack_twitter_partner_id', 'jetpack' );
if ( ! empty( $partner ) ) {
- echo ' data-partner="' . esc_attr( $partner ) . '"';
+ $data_attrs .= ' data-partner="' . esc_attr( $partner ) . '"';
}
/**
@@ -153,29 +162,13 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
*/
$dnt = apply_filters( 'jetpack_twitter_timeline_default_dnt', false );
if ( true === $dnt ) {
- echo ' data-dnt="true"';
+ $data_attrs .= ' data-dnt="true"';
}
if ( ! empty( $instance['chrome'] ) && is_array( $instance['chrome'] ) ) {
- echo ' data-chrome="' . esc_attr( join( ' ', $instance['chrome'] ) ) . '"';
+ $data_attrs .= ' data-chrome="' . esc_attr( join( ' ', $instance['chrome'] ) ) . '"';
}
- $type = ( isset( $instance['type'] ) ? $instance['type'] : '' );
- $widget_id = ( isset( $instance['widget-id'] ) ? $instance['widget-id'] : '' );
- switch ( $type ) {
- case 'profile':
- echo ' href="https://twitter.com/' . esc_attr( $widget_id ) . '"';
- break;
- case 'widget-id':
- default:
- echo ' data-widget-id="' . esc_attr( $widget_id ) . '"';
- break;
- }
- echo ' href="https://twitter.com/' . esc_attr( $widget_id ) . '"';
-
- // End tag output
- echo '>';
-
$timeline_placeholder = __( 'My Tweets', 'jetpack' );
/**
@@ -189,17 +182,47 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
*/
$timeline_placeholder = apply_filters( 'jetpack_twitter_timeline_placeholder', $timeline_placeholder );
- echo esc_html( $timeline_placeholder ) . '</a>';
+ $type = ( isset( $instance['type'] ) ? $instance['type'] : '' );
+ $widget_id = ( isset( $instance['widget-id'] ) ? $instance['widget-id'] : '' );
+
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ $width = ! empty( $instance['width'] ) ? $instance['width'] : 600;
+ $height = ! empty( $instance['height'] ) ? $instance['height'] : 480;
+ $output .= '<amp-twitter' . $data_attrs . ' layout="responsive" data-timeline-source-type="profile" data-timeline-screen-name="' . esc_attr( $widget_id ) . '" width="' . absint( $width ) . '" height="' . absint( $height ) . '">'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ $output .= esc_html( $timeline_placeholder ) . '</amp-twitter>';
+
+ echo $output . $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ return;
+ }
+
+ // Start tag output
+ // This tag is transformed into the widget markup by Twitter's
+ // widgets.js code.
+ $output .= '<a class="twitter-timeline"' . $data_attrs; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ switch ( $type ) {
+ case 'profile':
+ $output .= ' href="https://twitter.com/' . esc_attr( $widget_id ) . '"';
+ break;
+ case 'widget-id':
+ default:
+ $output .= ' data-widget-id="' . esc_attr( $widget_id ) . '"';
+ break;
+ }
+ $output .= ' href="https://twitter.com/' . esc_attr( $widget_id ) . '"';
+
+ // End tag output.
+ $output .= '>';
+
+ $output .= esc_html( $timeline_placeholder ) . '</a>';
- // End tag output
+ // End tag output.
- echo $args['after_widget'];
+ echo $output . $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'twitter_timeline' );
}
-
/**
* Sanitize widget form values as they are saved.
*
@@ -210,42 +233,49 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
*
* @return array Updated safe values to be saved.
*/
- public function update( $new_instance, $old_instance ) {
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
$instance = array();
$instance['title'] = sanitize_text_field( $new_instance['title'] );
$width = (int) $new_instance['width'];
if ( $width ) {
- // From publish.twitter.com: 220 <= width <= 1200
+ // From publish.twitter.com: 220 <= width <= 1200.
$instance['width'] = min( max( $width, 220 ), 1200 );
} else {
- $instance['width'] = '';
+ // Set default width value to minimum.
+ $instance['width'] = 220;
}
- $height = (int) $new_instance['height'];
- if ( $height ) {
- // From publish.twitter.com: height >= 200
- $instance['height'] = max( $height, 200 );
- } else {
- $instance['height'] = '';
- }
-
- $tweet_limit = (int) $new_instance['tweet-limit'];
- if ( $tweet_limit ) {
- $instance['tweet-limit'] = min( max( $tweet_limit, 1 ), 20 );
- /**
- * A timeline with a specified limit is expanded to the height of those Tweets.
- * The specified height value no longer applies, so reject the height value
- * when a valid limit is set: a widget attempting to save both limit 5 and
- * height 400 would be saved with just limit 5.
- */
- $instance['height'] = '';
- } else {
- $instance['tweet-limit'] = null;
+ $tweet_display = sanitize_text_field( $new_instance['tweet-display'] );
+ $instance['tweet-display'] = $tweet_display;
+ /**
+ * A timeline with a specified limit is expanded to the height of those Tweets.
+ * The specified height value no longer applies, so reject the height value
+ * when a valid limit is set: a widget attempting to save both limit 5 and
+ * height 400 would be saved with just limit 5.
+ * So if the tweet display option is set to 'dynamic' the limit will be unset and we'll
+ * take into account the height value.
+ * If the tweet display option is set to 'fixed' the height will be unset and we'll
+ * take into account the limit value.
+ */
+ $instance['height'] = '';
+ $instance['tweet-limit'] = null;
+
+ switch ( $tweet_display ) {
+ case 'dynamic':
+ $height = (int) $new_instance['height'];
+ // From publish.twitter.com: height >= 200.
+ $instance['height'] = max( $height, 200 );
+ break;
+ case 'fixed':
+ $tweet_limit = (int) $new_instance['tweet-limit'];
+ // From publish.twitter.com: 1 >= tweet-limit >= 20.
+ $instance['tweet-limit'] = min( max( $tweet_limit, 1 ), 20 );
+ break;
}
- // If they entered something that might be a full URL, try to parse it out
+ // If they entered something that might be a full URL, try to parse it out.
if ( is_string( $new_instance['widget-id'] ) ) {
if ( preg_match(
'#https?://twitter\.com/settings/widgets/(\d+)#s',
@@ -258,18 +288,15 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
$instance['widget-id'] = sanitize_text_field( $new_instance['widget-id'] );
- $hex_regex = '/#([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?\b/';
- foreach ( array( 'link-color', 'border-color' ) as $color ) {
- $new_color = sanitize_text_field( $new_instance[ $color ] );
- if ( preg_match( $hex_regex, $new_color ) ) {
- $instance[ $color ] = $new_color;
- }
+ $new_border_color = sanitize_hex_color( $new_instance['border-color'] );
+ if ( ! empty( $new_border_color ) ) {
+ $instance['border-color'] = $new_border_color;
}
$instance['type'] = 'profile';
$instance['theme'] = 'light';
- if ( in_array( $new_instance['theme'], array( 'light', 'dark' ) ) ) {
+ if ( in_array( $new_instance['theme'], array( 'light', 'dark' ), true ) ) {
$instance['theme'] = $new_instance['theme'];
}
@@ -281,11 +308,22 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
'transparent',
'noscrollbar',
);
- if ( isset( $new_instance['chrome'] ) ) {
- foreach ( $new_instance['chrome'] as $chrome ) {
- if ( in_array( $chrome, $chrome_settings ) ) {
- $instance['chrome'][] = $chrome;
- }
+
+ foreach ( $chrome_settings as $chrome ) {
+ switch ( $chrome ) {
+ case 'noheader':
+ case 'nofooter':
+ case 'noborders':
+ case 'noscrollbar':
+ if ( ! isset( $new_instance['chrome'] ) || ! in_array( $chrome, $new_instance['chrome'], true ) ) {
+ $instance['chrome'][] = $chrome;
+ }
+ break;
+ default:
+ if ( isset( $new_instance['chrome'] ) && in_array( $chrome, $new_instance['chrome'], true ) ) {
+ $instance['chrome'][] = $chrome;
+ }
+ break;
}
}
@@ -295,14 +333,16 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
/**
* Returns a link to the documentation for a feature of this widget on
* Jetpack or WordPress.com.
+ *
+ * @param string $hash anchor to potentially append to URL to target specific paragraph in page.
*/
public function get_docs_link( $hash = '' ) {
if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) {
- $base_url = 'https://support.wordpress.com/widgets/twitter-timeline-widget/';
+ $base_url = 'https://wordpress.com/support/widgets/twitter-timeline-widget/';
} else {
- $base_url = 'https://jetpack.com/support/extra-sidebar-widgets/twitter-timeline-widget/';
+ $base_url = esc_url( Redirect::get_url( 'jetpack-support-extra-sidebar-widgets-twitter-timeline-widget' ) );
}
- return '<a href="' . $base_url . $hash . '" target="_blank">( ? )</a>';
+ return '<a class="widget-access-link" href="' . $base_url . $hash . '" target="_blank"> Need help?</a>';
}
/**
@@ -314,16 +354,16 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
*/
public function form( $instance ) {
$defaults = array(
- 'title' => esc_html__( 'Follow me on Twitter', 'jetpack' ),
- 'width' => '',
- 'height' => '400',
- 'type' => 'profile',
- 'widget-id' => '',
- 'link-color' => '#f96e5b',
- 'border-color' => '#e8e8e8',
- 'theme' => 'light',
- 'chrome' => array(),
- 'tweet-limit' => null,
+ 'title' => esc_html__( 'Follow me on Twitter', 'jetpack' ),
+ 'width' => '220',
+ 'height' => '200',
+ 'type' => 'profile',
+ 'widget-id' => '',
+ 'border-color' => '#f0f0f1',
+ 'theme' => 'light',
+ 'chrome' => array(),
+ 'tweet-limit' => 1,
+ 'tweet-display' => 'dynamic',
);
$instance = wp_parse_args( (array) $instance, $defaults );
@@ -333,163 +373,211 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
}
$instance['type'] = 'profile';
+
+ /**
+ * Set the tweet-display option to 'fixed' if height is empty and tweet-limit set
+ * to ensure backwards compatibility with pre-existing widgets.
+ */
+ if ( empty( $instance['height'] ) && isset( $instance['tweet-limit'] ) ) {
+ $instance['tweet-display'] = 'fixed';
+ }
?>
- <p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>">
- <?php esc_html_e( 'Title:', 'jetpack' ); ?>
+ <p class="jetpack-twitter-timeline-widget-id-container">
+ <label for="<?php echo esc_attr( $this->get_field_id( 'widget-id' ) ); ?>">
+ <?php esc_html_e( 'Twitter username:', 'jetpack' ); ?>
+ <?php
+ echo wp_kses(
+ $this->get_docs_link( '#twitter-username' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'rel' => array(),
+ 'target' => array(),
+ 'class' => array(),
+ ),
+ )
+ );
+ ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'title' ); ?>"
- name="<?php echo $this->get_field_name( 'title' ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'widget-id' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'widget-id' ) ); ?>"
type="text"
- value="<?php echo esc_attr( $instance['title'] ); ?>"
+ value="<?php echo esc_attr( $instance['widget-id'] ); ?>"
/>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'width' ); ?>">
- <?php esc_html_e( 'Maximum Width (px; 220 to 1200):', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>">
+ <?php esc_html_e( 'Title:', 'jetpack' ); ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'width' ); ?>"
- name="<?php echo $this->get_field_name( 'width' ); ?>"
- type="number" min="220" max="1200"
- value="<?php echo esc_attr( $instance['width'] ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>"
+ type="text"
+ value="<?php echo esc_attr( $instance['title'] ); ?>"
/>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'height' ); ?>">
- <?php esc_html_e( 'Height (px; at least 200):', 'jetpack' ); ?>
+ <label>
+ <strong><?php esc_html_e( 'Number of tweets shown:', 'jetpack' ); ?></strong>
+ </label>
+ <ul>
+ <li>
+ <label>
+ <input
+ id="<?php echo esc_attr( $this->get_field_id( 'tweet-display' ) ); ?>-dynamic"
+ name="<?php echo esc_attr( $this->get_field_name( 'tweet-display' ) ); ?>"
+ type="radio"
+ class="jetpack-twitter-timeline-widget-tweet-display-radio"
+ value="dynamic"
+ <?php checked( 'dynamic', $instance['tweet-display'] ); ?>
+ />
+ <?php esc_html_e( 'Dynamic', 'jetpack' ); ?>
+ </label>
+ </li>
+ <li>
+ <label>
+ <input
+ id="<?php echo esc_attr( $this->get_field_id( 'tweet-display' ) ); ?>-fixed"
+ name="<?php echo esc_attr( $this->get_field_name( 'tweet-display' ) ); ?>"
+ type="radio"
+ class="jetpack-twitter-timeline-widget-tweet-display-radio"
+ value="fixed"
+ <?php checked( 'fixed', $instance['tweet-display'] ); ?>
+ />
+ <?php esc_html_e( 'Fixed', 'jetpack' ); ?>
+ </label>
+ </li>
+ </ul>
+ </p>
+
+ <p class="jetpack-twitter-timeline-widget-height-container" <?php echo ( 'fixed' === $instance['tweet-display'] ) ? ' style="display:none;"' : ''; ?>>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'height' ) ); ?>">
+ <?php esc_html_e( 'Height (in pixels; at least 200):', 'jetpack' ); ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'height' ); ?>"
- name="<?php echo $this->get_field_name( 'height' ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'height' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'height' ) ); ?>"
type="number" min="200"
value="<?php echo esc_attr( $instance['height'] ); ?>"
/>
</p>
- <p>
- <label for="<?php echo $this->get_field_id( 'tweet-limit' ); ?>">
- <?php esc_html_e( '# of Tweets Shown (1 to 20):', 'jetpack' ); ?>
+ <p class="jetpack-twitter-timeline-widget-tweet-limit-container" <?php echo ( 'dynamic' === $instance['tweet-display'] ) ? ' style="display:none;"' : ''; ?>>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'tweet-limit' ) ); ?>">
+ <?php esc_html_e( 'Number of tweets in the timeline (1 to 20):', 'jetpack' ); ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'tweet-limit' ); ?>"
- name="<?php echo $this->get_field_name( 'tweet-limit' ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'tweet-limit' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'tweet-limit' ) ); ?>"
type="number" min="1" max="20"
value="<?php echo esc_attr( $instance['tweet-limit'] ); ?>"
/>
</p>
- <p class="jetpack-twitter-timeline-widget-id-container">
- <label for="<?php echo $this->get_field_id( 'widget-id' ); ?>">
- <?php esc_html_e( 'Twitter Username:', 'jetpack' ); ?>
- <?php echo $this->get_docs_link( '#twitter-username' ); ?>
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'width' ) ); ?>">
+ <?php esc_html_e( 'Maximum width (in pixels; 220 to 1200):', 'jetpack' ); ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'widget-id' ); ?>"
- name="<?php echo $this->get_field_name( 'widget-id' ); ?>"
- type="text"
- value="<?php echo esc_attr( $instance['widget-id'] ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'width' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'width' ) ); ?>"
+ type="number" min="220" max="1200"
+ value="<?php echo esc_attr( $instance['width'] ); ?>"
/>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'chrome-noheader' ); ?>">
- <?php esc_html_e( 'Layout Options:', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-noheader' ) ); ?>">
+ <strong><?php esc_html_e( 'Layout options:', 'jetpack' ); ?></strong>
</label>
- <br />
+ </p>
+ <p>
<input
- type="checkbox"<?php checked( in_array( 'noheader', $instance['chrome'] ) ); ?>
- id="<?php echo $this->get_field_id( 'chrome-noheader' ); ?>"
- name="<?php echo $this->get_field_name( 'chrome' ); ?>[]"
+ type="checkbox"
+ <?php checked( false, in_array( 'noheader', $instance['chrome'], true ) ); ?>
+ id="<?php echo esc_attr( $this->get_field_id( 'chrome-noheader' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'chrome' ) ); ?>[]"
value="noheader"
/>
- <label for="<?php echo $this->get_field_id( 'chrome-noheader' ); ?>">
- <?php esc_html_e( 'No Header', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-noheader' ) ); ?>">
+ <?php esc_html_e( 'Show header', 'jetpack' ); ?>
</label>
<br />
<input
- type="checkbox"<?php checked( in_array( 'nofooter', $instance['chrome'] ) ); ?>
- id="<?php echo $this->get_field_id( 'chrome-nofooter' ); ?>"
- name="<?php echo $this->get_field_name( 'chrome' ); ?>[]"
+ type="checkbox"
+ <?php checked( false, in_array( 'nofooter', $instance['chrome'], true ) ); ?>
+ id="<?php echo esc_attr( $this->get_field_id( 'chrome-nofooter' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'chrome' ) ); ?>[]"
value="nofooter"
/>
- <label for="<?php echo $this->get_field_id( 'chrome-nofooter' ); ?>">
- <?php esc_html_e( 'No Footer', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-nofooter' ) ); ?>">
+ <?php esc_html_e( 'Show footer', 'jetpack' ); ?>
</label>
<br />
<input
- type="checkbox"<?php checked( in_array( 'noborders', $instance['chrome'] ) ); ?>
- id="<?php echo $this->get_field_id( 'chrome-noborders' ); ?>"
- name="<?php echo $this->get_field_name( 'chrome' ); ?>[]"
+ type="checkbox"
+ <?php checked( false, in_array( 'noborders', $instance['chrome'], true ) ); ?>
+ id="<?php echo esc_attr( $this->get_field_id( 'chrome-noborders' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'chrome' ) ); ?>[]"
value="noborders"
/>
- <label for="<?php echo $this->get_field_id( 'chrome-noborders' ); ?>">
- <?php esc_html_e( 'No Borders', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-noborders' ) ); ?>">
+ <?php esc_html_e( 'Show borders', 'jetpack' ); ?>
</label>
<br />
<input
- type="checkbox"<?php checked( in_array( 'noscrollbar', $instance['chrome'] ) ); ?>
- id="<?php echo $this->get_field_id( 'chrome-noscrollbar' ); ?>"
- name="<?php echo $this->get_field_name( 'chrome' ); ?>[]"
+ type="checkbox"
+ <?php checked( false, in_array( 'noscrollbar', $instance['chrome'], true ) ); ?>
+ id="<?php echo esc_attr( $this->get_field_id( 'chrome-noscrollbar' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'chrome' ) ); ?>[]"
value="noscrollbar"
+ <?php disabled( 'fixed', $instance['tweet-display'] ); ?>
/>
- <label for="<?php echo $this->get_field_id( 'chrome-noscrollbar' ); ?>">
- <?php esc_html_e( 'No Scrollbar', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-noscrollbar' ) ); ?>">
+ <?php esc_html_e( 'Show scrollbar', 'jetpack' ); ?>
</label>
<br />
<input
- type="checkbox"<?php checked( in_array( 'transparent', $instance['chrome'] ) ); ?>
- id="<?php echo $this->get_field_id( 'chrome-transparent' ); ?>"
- name="<?php echo $this->get_field_name( 'chrome' ); ?>[]"
+ type="checkbox"
+ <?php checked( in_array( 'transparent', $instance['chrome'], true ) ); ?>
+ id="<?php echo esc_attr( $this->get_field_id( 'chrome-transparent' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'chrome' ) ); ?>[]"
value="transparent"
/>
- <label for="<?php echo $this->get_field_id( 'chrome-transparent' ); ?>">
- <?php esc_html_e( 'Transparent Background', 'jetpack' ); ?>
- </label>
- </p>
-
- <p>
- <label for="<?php echo $this->get_field_id( 'link-color' ); ?>">
- <?php _e( 'Link Color (hex):', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'chrome-transparent' ) ); ?>">
+ <?php esc_html_e( 'Transparent background', 'jetpack' ); ?>
</label>
- <input
- class="widefat"
- id="<?php echo $this->get_field_id( 'link-color' ); ?>"
- name="<?php echo $this->get_field_name( 'link-color' ); ?>"
- type="text"
- value="<?php echo esc_attr( $instance['link-color'] ); ?>"
- />
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'border-color' ); ?>">
- <?php _e( 'Border Color (hex):', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'border-color' ) ); ?>">
+ <?php esc_html_e( 'Border color (in hex format):', 'jetpack' ); ?>
</label>
<input
class="widefat"
- id="<?php echo $this->get_field_id( 'border-color' ); ?>"
- name="<?php echo $this->get_field_name( 'border-color' ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'border-color' ) ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'border-color' ) ); ?>"
type="text"
value="<?php echo esc_attr( $instance['border-color'] ); ?>"
/>
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'theme' ); ?>">
- <?php _e( 'Timeline Theme:', 'jetpack' ); ?>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'theme' ) ); ?>">
+ <?php esc_html_e( 'Color scheme:', 'jetpack' ); ?>
</label>
<select
- name="<?php echo $this->get_field_name( 'theme' ); ?>"
- id="<?php echo $this->get_field_id( 'theme' ); ?>"
+ name="<?php echo esc_attr( $this->get_field_name( 'theme' ) ); ?>"
+ id="<?php echo esc_attr( $this->get_field_id( 'theme' ) ); ?>"
class="widefat"
>
<option value="light"<?php selected( $instance['theme'], 'light' ); ?>>
@@ -500,6 +588,6 @@ class Jetpack_Twitter_Timeline_Widget extends WP_Widget {
</option>
</select>
</p>
- <?php
+ <?php
}
}
diff --git a/plugins/jetpack/modules/widgets/upcoming-events.php b/plugins/jetpack/modules/widgets/upcoming-events.php
index 36a0257e..1f9cad2a 100644
--- a/plugins/jetpack/modules/widgets/upcoming-events.php
+++ b/plugins/jetpack/modules/widgets/upcoming-events.php
@@ -1,7 +1,28 @@
-<?php
+<?php // phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
+/**
+ * Upcoming Events widget
+ *
+ * It relies on the icalendar-reader library.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Register the widget.
+ */
+function upcoming_events_register_widgets() {
+ register_widget( Jetpack_Upcoming_Events_Widget::class );
+}
+add_action( 'widgets_init', 'upcoming_events_register_widgets' );
+/**
+ * Widget class.
+ */
class Jetpack_Upcoming_Events_Widget extends WP_Widget {
- function __construct() {
+ /**
+ * Constructor
+ */
+ public function __construct() {
parent::__construct(
'upcoming_events_widget',
/** This filter is documented in modules/widgets/facebook-likebox.php */
@@ -16,8 +37,11 @@ class Jetpack_Upcoming_Events_Widget extends WP_Widget {
}
}
- function css() {
-?>
+ /**
+ * Output CSS in the header everywhere where the widget is active.
+ */
+ public function css() {
+ ?>
<style type="text/css">
.upcoming-events li {
margin-bottom: 10px;
@@ -26,51 +50,72 @@ class Jetpack_Upcoming_Events_Widget extends WP_Widget {
display: block;
}
</style>
-<?php
+ <?php
}
- function form( $instance ) {
+ /**
+ * Displays the form for this widget on the Widgets page of the WP Admin area.
+ *
+ * @param array $instance Instance configuration.
+ *
+ * @return void
+ */
+ public function form( $instance ) {
$defaults = array(
'title' => __( 'Upcoming Events', 'jetpack' ),
'feed-url' => '',
'count' => 3,
);
$instance = array_merge( $defaults, (array) $instance );
-?>
+ ?>
<p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['title'] ); ?>" />
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'feed-url' ); ?>"><?php _e( 'iCalendar Feed URL:', 'jetpack' ); ?></label>
- <input class="widefat" id="<?php echo $this->get_field_id( 'feed-url' ); ?>" name="<?php echo $this->get_field_name( 'feed-url' ); ?>" type="text" value="<?php echo esc_attr( $instance['feed-url'] ); ?>" />
+ <label for="<?php echo esc_attr( $this->get_field_id( 'feed-url' ) ); ?>"><?php esc_html_e( 'iCalendar Feed URL:', 'jetpack' ); ?></label>
+ <input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'feed-url' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'feed-url' ) ); ?>" type="text" value="<?php echo esc_attr( $instance['feed-url'] ); ?>" />
</p>
<p>
- <label for="<?php echo $this->get_field_id( 'count' ); ?>"><?php _e( 'Items to show:', 'jetpack' ); ?></label>
- <select id="<?php echo $this->get_field_id( 'count' ); ?>" name="<?php echo $this->get_field_name( 'count' ); ?>">
- <?php
- $i = 1;
- while ( $i <= 10 ) {
- ?>
- <option <?php selected( $instance['count'], $i ); ?>><?php echo $i; ?></option>
- <?php $i++; } ?>
- <option value="0" <?php selected( $instance['count'], 0 ); ?>><?php _e( 'All', 'jetpack' ); ?></option>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>"><?php esc_html_e( 'Items to show:', 'jetpack' ); ?></label>
+ <select id="<?php echo esc_attr( $this->get_field_id( 'count' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'count' ) ); ?>">
+ <?php for ( $i = 1; $i <= 10; $i++ ) { ?>
+ <option <?php selected( $instance['count'], $i ); ?>><?php echo (int) $i; ?></option>
+ <?php } ?>
+ <option value="0" <?php selected( $instance['count'], 0 ); ?>><?php esc_html_e( 'All', 'jetpack' ); ?></option>
</select>
</p>
-<?php
+ <?php
}
- function update( $new_instance, $old_instance ) {
- $instance['title'] = strip_tags( $new_instance['title'] );
- $instance['feed-url'] = strip_tags( $new_instance['feed-url'] );
+ /**
+ * Deals with the settings when they are saved by the admin.
+ *
+ * @param array $new_instance New configuration values.
+ * @param array $old_instance Old configuration values.
+ *
+ * @return array
+ */
+ public function update( $new_instance, $old_instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $instance = array();
+ $instance['title'] = wp_strip_all_tags( $new_instance['title'] );
+ $instance['feed-url'] = wp_strip_all_tags( $new_instance['feed-url'] );
$instance['count'] = min( absint( $new_instance['count'] ), 10 ); // 10 or less
return $instance;
}
- function widget( $args, $instance ) {
+ /**
+ * Outputs the HTML for this widget.
+ *
+ * @param array $args An array of standard parameters for widgets in this theme.
+ * @param array $instance An array of settings for this widget instance.
+ *
+ * @return void Echoes it's output
+ */
+ public function widget( $args, $instance ) {
jetpack_require_lib( 'icalendar-reader' );
$ical = new iCalendarReader();
@@ -78,54 +123,64 @@ class Jetpack_Upcoming_Events_Widget extends WP_Widget {
$events = $this->apply_timezone_offset( $events );
$ical->timezone = null;
- echo $args['before_widget'];
+ echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
if ( ! empty( $instance['title'] ) ) {
- echo $args['before_title'];
+ echo $args['before_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo esc_html( $instance['title'] );
- echo $args['after_title'];
+ echo $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
if ( ! $events ) : // nothing to display?
-?>
- <p><?php echo __( 'No upcoming events', 'jetpack' ); ?></p>
-<?php
+ ?>
+ <p><?php esc_html_e( 'No upcoming events', 'jetpack' ); ?></p>
+ <?php
else :
-?>
+ ?>
<ul class="upcoming-events">
<?php foreach ( $events as $event ) : ?>
<li>
- <strong class="event-summary"><?php echo $ical->escape( stripslashes( $event['SUMMARY'] ) ); ?></strong>
- <span class="event-when"><?php echo $ical->formatted_date( $event ); ?></span>
+ <strong class="event-summary">
+ <?php
+ echo $ical->escape( stripslashes( $event['SUMMARY'] ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- this method is built to escape.
+ ?>
+ </strong>
+ <span class="event-when"><?php echo esc_html( $ical->formatted_date( $event ) ); ?></span>
<?php if ( ! empty( $event['LOCATION'] ) ) : ?>
- <span class="event-location"><?php echo $ical->escape( stripslashes( $event['LOCATION'] ) ); ?></span>
+ <span class="event-location">
+ <?php
+ echo $ical->escape( stripslashes( $event['LOCATION'] ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- this method is built to escape.
+ ?>
+ </span>
<?php endif; ?>
<?php if ( ! empty( $event['DESCRIPTION'] ) ) : ?>
- <span class="event-description"><?php echo wp_trim_words( $ical->escape( stripcslashes( $event['DESCRIPTION'] ) ) ); ?></span>
+ <span class="event-description">
+ <?php
+ echo wp_trim_words( $ical->escape( stripcslashes( $event['DESCRIPTION'] ) ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- this method is built to escape.
+ ?>
+ </span>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
-<?php
+ <?php
endif;
- echo $args['after_widget'];
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
/** This action is documented in modules/widgets/gravatar-profile.php */
do_action( 'jetpack_stats_extra', 'widget_view', 'grofile' );
}
- // Left this function here for backward compatibility
- // just incase a site using jetpack is also using this function
- function apply_timezone_offset( $events ) {
+ /**
+ * Left this function here for backward compatibility
+ * just incase a site using jetpack is also using this function
+ *
+ * @param array|false $events Array of events, false on failure.
+ */
+ private function apply_timezone_offset( $events ) {
jetpack_require_lib( 'icalendar-reader' );
$ical = new iCalendarReader();
return $ical->apply_timezone_offset( $events );
}
}
-
-function upcoming_events_register_widgets() {
- register_widget( 'Jetpack_Upcoming_Events_Widget' );
-}
-
-add_action( 'widgets_init', 'upcoming_events_register_widgets' );
diff --git a/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget-base.php b/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget-base.php
index 8a59545a..e89df68e 100644
--- a/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget-base.php
+++ b/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget-base.php
@@ -116,7 +116,7 @@ abstract class Jetpack_Display_Posts_Widget__Base extends WP_Widget {
if ( ! empty( $instance['title'] ) ) {
/** This filter is documented in core/src/wp-includes/default-widgets.php */
$instance['title'] = apply_filters( 'widget_title', $instance['title'] );
- $content .= $args['before_title'] . esc_html( $instance['title'] . ': ' . $site_info->name ) . $args['after_title'];
+ $content .= $args['before_title'] . $instance['title'] . ': ' . $site_info->name . $args['after_title']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
else {
$content .= $args['before_title'] . esc_html( $site_info->name ) . $args['after_title'];
@@ -347,7 +347,7 @@ abstract class Jetpack_Display_Posts_Widget__Base extends WP_Widget {
}
}
- $instance['number_of_posts'] = ( ! empty( $new_instance['number_of_posts'] ) ) ? intval( $new_instance['number_of_posts'] ) : '';
+ $instance['number_of_posts'] = ( ! empty( $new_instance['number_of_posts'] ) ) ? (int) $new_instance['number_of_posts'] : '';
$instance['open_in_new_window'] = ( ! empty( $new_instance['open_in_new_window'] ) ) ? true : '';
$instance['featured_image'] = ( ! empty( $new_instance['featured_image'] ) ) ? true : '';
$instance['show_excerpts'] = ( ! empty( $new_instance['show_excerpts'] ) ) ? true : '';
@@ -563,7 +563,7 @@ abstract class Jetpack_Display_Posts_Widget__Base extends WP_Widget {
*
* @param string $args Extra parameters to filter posts returned from the WordPress.com REST API.
*/
- apply_filters( 'jetpack_display_posts_widget_posts_params', '' )
+ apply_filters( 'jetpack_display_posts_widget_posts_params', '?fields=id,title,excerpt,URL,featured_image' )
)
);
diff --git a/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget.php b/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget.php
index 723bc5a5..d0a155a2 100644
--- a/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget.php
+++ b/plugins/jetpack/modules/widgets/wordpress-post-widget/class.jetpack-display-posts-widget.php
@@ -145,9 +145,9 @@ class Jetpack_Display_Posts_Widget extends Jetpack_Display_Posts_Widget__Base {
if ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) {
/**
- * If Jetpack is not active or in development mode, we don't want to update widget data.
+ * If Jetpack is not active or in offline mode, we don't want to update widget data.
*/
- if ( ! Jetpack::is_active() && ! ( new Status() )->is_development_mode() ) {
+ if ( ! Jetpack::is_connection_ready() && ! ( new Status() )->is_offline_mode() ) {
return false;
}
diff --git a/plugins/jetpack/modules/woocommerce-analytics.php b/plugins/jetpack/modules/woocommerce-analytics.php
new file mode 100644
index 00000000..1380ae25
--- /dev/null
+++ b/plugins/jetpack/modules/woocommerce-analytics.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Module Name: WooCommerce Analytics
+ * Module Description: Enhanced analytics for WooCommerce and Jetpack users.
+ * Sort Order: 13
+ * First Introduced: 8.4
+ * Requires Connection: Yes
+ * Auto Activate: Yes
+ * Module Tags: Other, Recommended
+ * Feature: Engagement
+ * Additional Search Queries: woocommerce, analytics, stats, statistics, tracking, analytics, views
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Load module functionality.
+ */
+function jetpack_load_woocommerce_analytics() {
+ require_once __DIR__ . '/woocommerce-analytics/class-jetpack-woocommerce-analytics.php';
+}
+jetpack_load_woocommerce_analytics();
diff --git a/plugins/jetpack/modules/woocommerce-analytics/class-jetpack-woocommerce-analytics.php b/plugins/jetpack/modules/woocommerce-analytics/class-jetpack-woocommerce-analytics.php
new file mode 100644
index 00000000..5782378f
--- /dev/null
+++ b/plugins/jetpack/modules/woocommerce-analytics/class-jetpack-woocommerce-analytics.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Jetpack_WooCommerce_Analytics is ported from the Jetpack_Google_Analytics code.
+ *
+ * @package automattic/jetpack
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+require_once plugin_basename( 'classes/class-jetpack-woocommerce-analytics-universal.php' );
+
+/**
+ * Class Jetpack_WooCommerce_Analytics
+ * Instantiate WooCommerce Analytics
+ */
+class Jetpack_WooCommerce_Analytics {
+
+ /**
+ * Instance of this class
+ *
+ * @var Jetpack_WooCommerce_Analytics - Static property to hold our singleton instance
+ */
+ private static $instance = false;
+
+ /**
+ * Instance of the Universal functions
+ *
+ * @var Static property to hold concrete analytics impl that does the work (universal or legacy)
+ */
+ private static $analytics = false;
+
+ /**
+ * WooCommerce Analytics is only available to Jetpack connected WooCommerce stores with both plugins set to active
+ * and WooCommerce version 3.0 or higher
+ *
+ * @return bool
+ */
+ public static function should_track_store() {
+ /**
+ * Make sure WooCommerce is installed and active
+ *
+ * This action is documented in https://docs.woocommerce.com/document/create-a-plugin
+ */
+ if ( ! in_array( 'woocommerce/woocommerce.php', apply_filters( 'active_plugins', Jetpack::get_active_plugins() ), true ) ) {
+ return false;
+ }
+ // Tracking only Site pages.
+ if ( is_admin() ) {
+ return false;
+ }
+ // Don't track site admins.
+ if ( is_user_logged_in() && in_array( 'administrator', wp_get_current_user()->roles, true ) ) {
+ return false;
+ }
+ // Make sure Jetpack is installed and connected.
+ if ( ! Jetpack::is_connection_ready() ) {
+ return false;
+ }
+ // Ensure the WooCommerce class exists and is a valid version.
+ $minimum_woocommerce_active = class_exists( 'WooCommerce' ) && version_compare( WC_VERSION, '3.0', '>=' );
+ if ( ! $minimum_woocommerce_active ) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * This is our constructor, which is private to force the use of get_instance()
+ *
+ * @return void
+ */
+ private function __construct() {
+ self::$analytics = new Jetpack_WooCommerce_Analytics_Universal();
+ }
+
+ /**
+ * Function to instantiate our class and make it a singleton
+ */
+ public static function get_instance() {
+ if ( ! self::should_track_store() ) {
+ return;
+ }
+ if ( ! self::$instance ) {
+ self::$instance = new self();
+ }
+
+ return self::$instance;
+ }
+}
+
+global $jetpack_woocommerce_analytics;
+$jetpack_woocommerce_analytics = Jetpack_WooCommerce_Analytics::get_instance();
diff --git a/plugins/jetpack/modules/woocommerce-analytics/classes/class-jetpack-woocommerce-analytics-universal.php b/plugins/jetpack/modules/woocommerce-analytics/classes/class-jetpack-woocommerce-analytics-universal.php
new file mode 100644
index 00000000..f1eb36b9
--- /dev/null
+++ b/plugins/jetpack/modules/woocommerce-analytics/classes/class-jetpack-woocommerce-analytics-universal.php
@@ -0,0 +1,628 @@
+<?php
+/**
+ * Jetpack_WooCommerce_Analytics_Universal
+ *
+ * @package automattic/jetpack
+ * @author Automattic
+ */
+
+use Automattic\Jetpack\Assets;
+
+/**
+ * Bail if accessed directly
+ */
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Class Jetpack_WooCommerce_Analytics_Universal
+ * Filters and Actions added to Store pages to perform analytics
+ */
+class Jetpack_WooCommerce_Analytics_Universal {
+ /**
+ * Jetpack_WooCommerce_Analytics_Universal constructor.
+ */
+ public function __construct() {
+ // loading _wca.
+ add_action( 'wp_head', array( $this, 'wp_head_top' ), 1 );
+
+ // add to carts from non-product pages or lists -- search, store etc.
+ add_action( 'wp_head', array( $this, 'loop_session_events' ), 2 );
+
+ // loading s.js.
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_tracking_script' ) );
+
+ // Capture cart events.
+ add_action( 'woocommerce_add_to_cart', array( $this, 'capture_add_to_cart' ), 10, 6 );
+
+ // single product page view.
+ add_action( 'woocommerce_after_single_product', array( $this, 'capture_product_view' ) );
+
+ add_action( 'woocommerce_after_cart', array( $this, 'remove_from_cart' ) );
+ add_action( 'woocommerce_after_mini_cart', array( $this, 'remove_from_cart' ) );
+ add_action( 'wcct_before_cart_widget', array( $this, 'remove_from_cart' ) );
+ add_filter( 'woocommerce_cart_item_remove_link', array( $this, 'remove_from_cart_attributes' ), 10, 2 );
+
+ // Checkout.
+ // Send events after checkout template (shortcode).
+ add_action( 'woocommerce_after_checkout_form', array( $this, 'checkout_process' ) );
+ // Send events after checkout block.
+ add_action( 'woocommerce_blocks_enqueue_checkout_block_scripts_after', array( $this, 'checkout_process' ) );
+
+ // order confirmed.
+ add_action( 'woocommerce_thankyou', array( $this, 'order_process' ), 10, 1 );
+ add_action( 'woocommerce_after_cart', array( $this, 'remove_from_cart_via_quantity' ), 10, 1 );
+
+ add_filter( 'woocommerce_checkout_posted_data', array( $this, 'save_checkout_post_data' ), 10, 1 );
+ }
+
+ /**
+ * Make _wca available to queue events
+ */
+ public function wp_head_top() {
+ if ( is_cart() || is_checkout() || is_checkout_pay_page() || is_order_received_page() || is_add_payment_method_page() ) {
+ echo '<script>window._wca_prevent_referrer = true;</script>' . "\r\n";
+ }
+ echo '<script>window._wca = window._wca || [];</script>' . "\r\n";
+ }
+
+ /**
+ * Place script to call s.js, Store Analytics.
+ */
+ public function enqueue_tracking_script() {
+ $filename = sprintf(
+ 'https://stats.wp.com/s-%d.js',
+ gmdate( 'YW' )
+ );
+
+ Assets::enqueue_async_script( 'woocommerce-analytics', esc_url( $filename ), esc_url( $filename ), array(), null, false );
+ }
+
+ /**
+ * Default event properties which should be included with all events.
+ *
+ * @return array Array of standard event props.
+ */
+ public function get_common_properties() {
+ $site_info = array(
+ 'blog_id' => Jetpack::get_option( 'id' ),
+ 'ui' => $this->get_user_id(),
+ 'url' => home_url(),
+ 'woo_version' => WC()->version,
+ );
+ $cart_checkout_info = self::get_cart_checkout_info();
+ return array_merge( $site_info, $cart_checkout_info );
+ }
+
+ /**
+ * Render tracks event properties as string of JavaScript object props.
+ *
+ * @param array $properties Array of key/value pairs.
+ * @return string String of the form "key1: value1, key2: value2, " (etc).
+ */
+ private function render_properties_as_js( $properties ) {
+ $js_args_string = '';
+ foreach ( $properties as $key => $value ) {
+ if ( is_array( $value ) ) {
+ $js_args_string = $js_args_string . "'$key': " . wp_json_encode( $value ) . ',';
+ } else {
+ $js_args_string = $js_args_string . "'$key': '" . esc_js( $value ) . "', ";
+ }
+ }
+ return $js_args_string;
+ }
+
+ /**
+ * Record an event with optional custom properties.
+ *
+ * @param string $event_name The name of the event to record.
+ * @param integer $product_id The id of the product relating to the event.
+ * @param array $properties Optional array of (key => value) event properties.
+ *
+ * @return string|void
+ */
+ public function record_event( $event_name, $product_id, $properties = array() ) {
+ $js = $this->process_event_properties( $event_name, $product_id, $properties );
+ wc_enqueue_js( "_wca.push({$js});" );
+ }
+
+ /**
+ * Compose event properties.
+ *
+ * @param string $event_name The name of the event to record.
+ * @param integer $product_id The id of the product relating to the event.
+ * @param array $properties Optional array of (key => value) event properties.
+ *
+ * @return string|void
+ */
+ public function process_event_properties( $event_name, $product_id, $properties = array() ) {
+ $product = wc_get_product( $product_id );
+ if ( ! $product instanceof WC_Product ) {
+ return;
+ }
+ $product_details = $this->get_product_details( $product );
+
+ $all_props = array_merge(
+ $properties,
+ $this->get_common_properties()
+ );
+
+ $js = "{
+ '_en': '" . esc_js( $event_name ) . "',
+ 'pi': '" . esc_js( $product_id ) . "',
+ 'pn': '" . esc_js( $product_details['name'] ) . "',
+ 'pc': '" . esc_js( $product_details['category'] ) . "',
+ 'pp': '" . esc_js( $product_details['price'] ) . "',
+ 'pt': '" . esc_js( $product_details['type'] ) . "'," .
+ $this->render_properties_as_js( $all_props ) . '
+ }';
+
+ return $js;
+ }
+
+ /**
+ * On product lists or other non-product pages, add an event listener to "Add to Cart" button click
+ */
+ public function loop_session_events() {
+ // Check for previous events queued in session data.
+ if ( is_object( WC()->session ) ) {
+ $data = WC()->session->get( 'wca_session_data' );
+ if ( ! empty( $data ) ) {
+ foreach ( $data as $data_instance ) {
+ $this->record_event(
+ $data_instance['event'],
+ $data_instance['product_id'],
+ array(
+ 'pq' => $data_instance['quantity'],
+ )
+ );
+ }
+ // Clear data, now that these events have been recorded.
+ WC()->session->set( 'wca_session_data', '' );
+ }
+ }
+ }
+
+ /**
+ * On the cart page, add an event listener for removal of product click
+ */
+ public function remove_from_cart() {
+ $common_props = $this->render_properties_as_js(
+ $this->get_common_properties()
+ );
+
+ // We listen at div.woocommerce because the cart 'form' contents get forcibly
+ // updated and subsequent removals from cart would then not have this click
+ // handler attached.
+ wc_enqueue_js(
+ "jQuery( 'div.woocommerce' ).on( 'click', 'a.remove', function() {
+ var productID = jQuery( this ).data( 'product_id' );
+ var quantity = jQuery( this ).parent().parent().find( '.qty' ).val()
+ var productDetails = {
+ 'id': productID,
+ 'quantity': quantity ? quantity : '1',
+ };
+ _wca.push( {
+ '_en': 'woocommerceanalytics_remove_from_cart',
+ 'pi': productDetails.id,
+ 'pq': productDetails.quantity, " .
+ $common_props . '
+ } );
+ } );'
+ );
+ }
+
+ /**
+ * Adds the product ID to the remove product link (for use by remove_from_cart above) if not present
+ *
+ * @param string $url Full HTML a tag of the link to remove an item from the cart.
+ * @param string $key Unique Key ID for a cart item.
+ *
+ * @return mixed.
+ */
+ public function remove_from_cart_attributes( $url, $key ) {
+ if ( false !== strpos( $url, 'data-product_id' ) ) {
+ return $url;
+ }
+
+ $item = WC()->cart->get_cart_item( $key );
+ $product = $item['data'];
+
+ $new_attributes = sprintf(
+ '" data-product_id="%s">',
+ esc_attr( $product->get_id() )
+ );
+
+ $url = str_replace( '">', $new_attributes, $url );
+ return $url;
+ }
+
+ /**
+ * Gather relevant product information
+ *
+ * @param array $product product.
+ * @return array
+ */
+ public function get_product_details( $product ) {
+ return array(
+ 'id' => $product->get_id(),
+ 'name' => $product->get_title(),
+ 'category' => $this->get_product_categories_concatenated( $product ),
+ 'price' => $product->get_price(),
+ 'type' => $product->get_type(),
+ );
+ }
+
+ /**
+ * Track a product page view
+ */
+ public function capture_product_view() {
+ global $product;
+ $this->record_event(
+ 'woocommerceanalytics_product_view',
+ $product->get_id()
+ );
+ }
+
+ /**
+ * On the Checkout page, trigger an event for each product in the cart
+ */
+ public function checkout_process() {
+ $cart = WC()->cart->get_cart();
+
+ $guest_checkout = ucfirst( get_option( 'woocommerce_enable_guest_checkout', 'No' ) );
+ $create_account = ucfirst( get_option( 'woocommerce_enable_signup_and_login_from_checkout', 'No' ) );
+
+ $enabled_payment_options = array_filter(
+ WC()->payment_gateways->get_available_payment_gateways(),
+ function ( $payment_gateway ) {
+ if ( ! $payment_gateway instanceof WC_Payment_Gateway ) {
+ return false;
+ }
+
+ return $payment_gateway->is_available();
+ }
+ );
+
+ $enabled_payment_options = array_keys( $enabled_payment_options );
+ $include_express_payment = false;
+
+ $wcpay_version = get_option( 'woocommerce_woocommerce_payments_version' );
+ $has_required_wcpay_version = version_compare( $wcpay_version, '2.9.0', '>=' );
+ // Check express payment availablity only if WC Pay is enabled and express checkout (payment request) is enabled.
+ if ( in_array( 'woocommerce_payments', $enabled_payment_options, true ) && $has_required_wcpay_version ) {
+ $wcpay_settings = get_option( 'woocommerce_woocommerce_payments_settings', array() );
+ if ( array_key_exists( 'payment_request', $wcpay_settings ) && 'yes' === $wcpay_settings['payment_request'] ) {
+ $include_express_payment = true;
+ }
+ }
+
+ foreach ( $cart as $cart_item_key => $cart_item ) {
+ /**
+ * This filter is already documented in woocommerce/templates/cart/cart.php
+ */
+ $product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
+
+ if ( ! $product ) {
+ continue;
+ }
+
+ if ( true === $include_express_payment ) {
+ $properties = $this->process_event_properties(
+ 'woocommerceanalytics_product_checkout',
+ $product->get_id(),
+ array(
+ 'pq' => $cart_item['quantity'],
+ 'payment_options' => $enabled_payment_options,
+ 'device' => wp_is_mobile() ? 'mobile' : 'desktop',
+ 'guest_checkout' => 'Yes' === $guest_checkout ? 'Yes' : 'No',
+ 'create_account' => 'Yes' === $create_account ? 'Yes' : 'No',
+ 'express_checkout' => 'null',
+ )
+ );
+ wc_enqueue_js(
+ "
+ // wcpay.payment-request.availability event gets fired twice.
+ // make sure we push only one event.
+ var cartItem_{$cart_item_key}_logged = false;
+ wp.hooks.addAction('wcpay.payment-request.availability', 'wcpay', function(args) {
+ if ( true === cartItem_{$cart_item_key}_logged ) {
+ return;
+ }
+ var properties = {$properties};
+ properties.express_checkout = args.paymentRequestType;
+ _wca.push(properties);
+ cartItem_{$cart_item_key}_logged = true;
+ });
+ "
+ );
+ } else {
+ $this->record_event(
+ 'woocommerceanalytics_product_checkout',
+ $product->get_id(),
+ array(
+ 'pq' => $cart_item['quantity'],
+ 'payment_options' => $enabled_payment_options,
+ 'device' => wp_is_mobile() ? 'mobile' : 'desktop',
+ 'guest_checkout' => 'Yes' === $guest_checkout ? 'Yes' : 'No',
+ 'create_account' => 'Yes' === $create_account ? 'Yes' : 'No',
+ 'express_checkout' => 'null',
+ )
+ );
+ }
+ }
+ }
+
+ /**
+ * After the checkout process, fire an event for each item in the order
+ *
+ * @param string $order_id Order Id.
+ */
+ public function order_process( $order_id ) {
+ $order = wc_get_order( $order_id );
+
+ $payment_option = $order->get_payment_method();
+
+ if ( is_object( WC()->session ) ) {
+ $create_account = true === WC()->session->get( 'wc_checkout_createaccount_used' ) ? 'Y' : 'N';
+ } else {
+ $create_account = 'N';
+ }
+
+ $guest_checkout = $order->get_user() ? 'N' : 'Y';
+
+ $express_checkout = 'null';
+ // When the payment option is woocommerce_payment
+ // See if Google Pay or Apple Pay was used.
+ if ( 'woocommerce_payments' === $payment_option ) {
+ $payment_option_title = $order->get_payment_method_title();
+ if ( 'Google Pay (WooCommerce Payments)' === $payment_option_title ) {
+ $express_checkout = array( 'google_pay' );
+ } elseif ( 'Apple Pay (WooCommerce Payments)' === $payment_option_title ) {
+ $express_checkout = array( 'apple_pay' );
+ }
+ }
+
+ // loop through products in the order and queue a purchase event.
+ foreach ( $order->get_items() as $order_item ) {
+ $product_id = is_callable( array( $order_item, 'get_product_id' ) ) ? $order_item->get_product_id() : -1;
+
+ $this->record_event(
+ 'woocommerceanalytics_product_purchase',
+ $product_id,
+ array(
+ 'oi' => $order->get_order_number(),
+ 'pq' => $order_item->get_quantity(),
+ 'device' => wp_is_mobile() ? 'mobile' : 'desktop',
+ 'payment_option' => $payment_option,
+ 'create_account' => $create_account,
+ 'guest_checkout' => $guest_checkout,
+ 'express_checkout' => $express_checkout,
+ )
+ );
+ }
+ }
+
+ /**
+ * Listen for clicks on the "Update Cart" button to know if an item has been removed by
+ * updating its quantity to zero
+ */
+ public function remove_from_cart_via_quantity() {
+ $common_props = $this->render_properties_as_js(
+ $this->get_common_properties()
+ );
+
+ wc_enqueue_js(
+ "
+ jQuery( 'button[name=update_cart]' ).on( 'click', function() {
+ var cartItems = jQuery( '.cart_item' );
+ cartItems.each( function( item ) {
+ var qty = jQuery( this ).find( 'input.qty' );
+ if ( qty && qty.val() === '0' ) {
+ var productID = jQuery( this ).find( '.product-remove a' ).data( 'product_id' );
+ _wca.push( {
+ '_en': 'woocommerceanalytics_remove_from_cart',
+ 'pi': productID, " .
+ $common_props . '
+ } );
+ }
+ } );
+ } );'
+ );
+ }
+
+ /**
+ * Get the current user id
+ *
+ * @return int
+ */
+ public function get_user_id() {
+ if ( is_user_logged_in() ) {
+ $blogid = Jetpack::get_option( 'id' );
+ $userid = get_current_user_id();
+ return $blogid . ':' . $userid;
+ }
+ return 'null';
+ }
+
+ /**
+ * Track adding items to the cart.
+ *
+ * @param string $cart_item_key Cart item key.
+ * @param int $product_id Product added to cart.
+ * @param int $quantity Quantity added to cart.
+ * @param int $variation_id Product variation.
+ * @param array $variation Variation attributes..
+ * @param array $cart_item_data Other cart data.
+ */
+ public function capture_add_to_cart( $cart_item_key, $product_id, $quantity, $variation_id, $variation, $cart_item_data ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ $referer_postid = isset( $_SERVER['HTTP_REFERER'] ) ? url_to_postid( $_SERVER['HTTP_REFERER'] ) : 0;
+ // if the referring post is not a product OR the product being added is not the same as post.
+ // (eg. related product list on single product page) then include a product view event.
+ $product_by_referer_postid = wc_get_product( $referer_postid );
+ if ( ! $product_by_referer_postid instanceof WC_Product || (int) $product_id !== $referer_postid ) {
+ $this->capture_event_in_session_data( $product_id, $quantity, 'woocommerceanalytics_product_view' );
+ }
+ // add cart event to the session data.
+ $this->capture_event_in_session_data( $product_id, $quantity, 'woocommerceanalytics_add_to_cart' );
+ }
+
+ /**
+ * Track in-session data.
+ *
+ * @param int $product_id Product ID.
+ * @param int $quantity Quantity.
+ * @param string $event Fired event.
+ */
+ public function capture_event_in_session_data( $product_id, $quantity, $event ) {
+
+ $product = wc_get_product( $product_id );
+ if ( ! $product instanceof WC_Product ) {
+ return;
+ }
+
+ $quantity = ( 0 === $quantity ) ? 1 : $quantity;
+
+ // check for existing data.
+ if ( is_object( WC()->session ) ) {
+ $data = WC()->session->get( 'wca_session_data' );
+ if ( empty( $data ) || ! is_array( $data ) ) {
+ $data = array();
+ }
+ } else {
+ $data = array();
+ }
+
+ // extract new event data.
+ $new_data = array(
+ 'event' => $event,
+ 'product_id' => (string) $product_id,
+ 'quantity' => (string) $quantity,
+ );
+
+ // append new data.
+ $data[] = $new_data;
+
+ WC()->session->set( 'wca_session_data', $data );
+ }
+
+ /**
+ * Gets product categories or varation attributes as a formatted concatenated string
+ *
+ * @param object $product WC_Product.
+ * @return string
+ */
+ public function get_product_categories_concatenated( $product ) {
+
+ if ( ! $product instanceof WC_Product ) {
+ return '';
+ }
+
+ $variation_data = $product->is_type( 'variation' ) ? wc_get_product_variation_attributes( $product->get_id() ) : '';
+ if ( is_array( $variation_data ) && ! empty( $variation_data ) ) {
+ $line = wc_get_formatted_variation( $variation_data, true );
+ } else {
+ $out = array();
+ $categories = get_the_terms( $product->get_id(), 'product_cat' );
+ if ( $categories ) {
+ foreach ( $categories as $category ) {
+ $out[] = $category->name;
+ }
+ }
+ $line = join( '/', $out );
+ }
+ return $line;
+ }
+
+ /**
+ * Search a specific post for text content.
+ *
+ * Note: similar code is in a WooCommerce core PR:
+ * https://github.com/woocommerce/woocommerce/pull/25932
+ *
+ * @param integer $post_id The id of the post to search.
+ * @param string $text The text to search for.
+ * @return integer 1 if post contains $text (otherwise 0).
+ */
+ public static function post_contains_text( $post_id, $text ) {
+ global $wpdb;
+
+ // Search for the text anywhere in the post.
+ $wildcarded = "%{$text}%";
+
+ $result = $wpdb->get_var(
+ $wpdb->prepare(
+ "
+ SELECT COUNT( * ) FROM {$wpdb->prefix}posts
+ WHERE ID=%d
+ AND {$wpdb->prefix}posts.post_content LIKE %s
+ ",
+ array( $post_id, $wildcarded )
+ )
+ );
+
+ return ( '0' !== $result ) ? 1 : 0;
+ }
+
+ /**
+ * Get info about the cart & checkout pages, in particular
+ * whether the store is using shortcodes or Gutenberg blocks.
+ * This info is cached in a transient.
+ *
+ * Note: similar code is in a WooCommerce core PR:
+ * https://github.com/woocommerce/woocommerce/pull/25932
+ *
+ * @return array
+ */
+ public static function get_cart_checkout_info() {
+ $transient_name = 'jetpack_woocommerce_analytics_cart_checkout_info_cache';
+
+ $info = get_transient( $transient_name );
+ if ( false === $info ) {
+ $cart_page_id = wc_get_page_id( 'cart' );
+ $checkout_page_id = wc_get_page_id( 'checkout' );
+
+ $info = array(
+ 'cart_page_contains_cart_block' => self::post_contains_text(
+ $cart_page_id,
+ '<!-- wp:woocommerce/cart'
+ ),
+ 'cart_page_contains_cart_shortcode' => self::post_contains_text(
+ $cart_page_id,
+ '[woocommerce_cart]'
+ ),
+ 'checkout_page_contains_checkout_block' => self::post_contains_text(
+ $checkout_page_id,
+ '<!-- wp:woocommerce/checkout'
+ ),
+ 'checkout_page_contains_checkout_shortcode' => self::post_contains_text(
+ $checkout_page_id,
+ '[woocommerce_checkout]'
+ ),
+ );
+
+ set_transient( $transient_name, $info, DAY_IN_SECONDS );
+ }
+
+ return $info;
+ }
+
+ /**
+ * Save createaccount post data to be used in $this->order_process.
+ *
+ * @param array $data post data from the checkout page.
+ *
+ * @return array
+ */
+ public function save_checkout_post_data( array $data ) {
+ $session = WC()->session;
+ if ( is_object( $session ) ) {
+ if ( isset( $data['createaccount'] ) && ! empty( $data['createaccount'] ) ) {
+ $session->set( 'wc_checkout_createaccount_used', true );
+ $session->save_data();
+ }
+ }
+ return $data;
+ }
+}
diff --git a/plugins/jetpack/modules/wordads.php b/plugins/jetpack/modules/wordads.php
index 3b3a9884..cb028481 100644
--- a/plugins/jetpack/modules/wordads.php
+++ b/plugins/jetpack/modules/wordads.php
@@ -8,12 +8,17 @@
* Auto Activate: No
* Module Tags: Traffic, Appearance
* Additional Search Queries: advertising, ad codes, ads
- * Plans: premium, business
+ * Plans: premium, business, security, complete
+ *
+ * @package automattic/jetpack
*/
+/**
+ * Load WordAds.
+ */
function jetpack_load_wordads() {
Jetpack::enable_module_configurable( __FILE__ );
- require_once( dirname( __FILE__ ) . "/wordads/wordads.php" );
+ require_once __DIR__ . '/wordads/class-wordads.php';
}
jetpack_load_wordads();
diff --git a/plugins/jetpack/modules/wordads/class-wordads.php b/plugins/jetpack/modules/wordads/class-wordads.php
new file mode 100644
index 00000000..0cb0df9d
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/class-wordads.php
@@ -0,0 +1,869 @@
+<?php
+/**
+ * Main WordAds file.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Status\Host;
+
+define( 'WORDADS_ROOT', __DIR__ );
+define( 'WORDADS_BASENAME', plugin_basename( __FILE__ ) );
+define( 'WORDADS_FILE_PATH', WORDADS_ROOT . '/' . basename( __FILE__ ) );
+define( 'WORDADS_URL', plugins_url( '/', __FILE__ ) );
+define( 'WORDADS_API_TEST_ID', '26942' );
+define( 'WORDADS_API_TEST_ID2', '114160' );
+
+require_once WORDADS_ROOT . '/php/class-wordads-sidebar-widget.php';
+require_once WORDADS_ROOT . '/php/class-wordads-api.php';
+require_once WORDADS_ROOT . '/php/class-wordads-cron.php';
+require_once WORDADS_ROOT . '/php/class-wordads-california-privacy.php';
+require_once WORDADS_ROOT . '/php/class-wordads-ccpa-do-not-sell-link-widget.php';
+
+/**
+ * Primary WordAds class.
+ */
+class WordAds {
+
+ /**
+ * Ads parameters.
+ *
+ * @var null
+ */
+ public $params = null;
+
+ /**
+ * Ads.
+ *
+ * @var array
+ */
+ public $ads = array();
+
+ /**
+ * Array of supported ad types.
+ *
+ * @var array
+ */
+ public static $ad_tag_ids = array(
+ 'mrec' => array(
+ 'tag' => '300x250_mediumrectangle',
+ 'height' => '250',
+ 'width' => '300',
+ ),
+ 'leaderboard' => array(
+ 'tag' => '728x90_leaderboard',
+ 'height' => '90',
+ 'width' => '728',
+ ),
+ 'mobile_leaderboard' => array(
+ 'tag' => '320x50_mobileleaderboard',
+ 'height' => '50',
+ 'width' => '320',
+ ),
+ 'wideskyscraper' => array(
+ 'tag' => '160x600_wideskyscraper',
+ 'height' => '600',
+ 'width' => '160',
+ ),
+ );
+
+ /**
+ * Mapping array of location slugs to placement ids
+ *
+ * @var array
+ */
+ public static $ad_location_ids = array(
+ 'top' => 110,
+ 'belowpost' => 120,
+ 'belowpost2' => 130,
+ 'sidebar' => 140,
+ 'widget' => 150,
+ 'gutenberg' => 200,
+ 'inline' => 310,
+ 'inline-plugin' => 320,
+ );
+
+ /**
+ * Mapping array of form factor slugs to form factor ids
+ *
+ * @var array
+ */
+ public static $form_factor_ids = array(
+ 'square' => '001', // 250x250
+ 'leaderboard' => '002', // 728x90
+ 'skyscraper' => '003', // 120x600
+ );
+
+ /**
+ * Counter to enable unique, sequential section IDs for all amp-ad units
+ *
+ * @var int
+ */
+ public static $amp_section_id = 1;
+
+ /**
+ * Solo unit CSS string.
+ *
+ * @var string
+ */
+ public static $solo_unit_css = 'float:left;margin-right:5px;margin-top:0px;';
+
+ /**
+ * Checks for AMP support and returns true iff active & AMP request
+ *
+ * @return boolean True if supported AMP request
+ *
+ * @since 7.5.0
+ */
+ public static function is_amp() {
+ return class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request();
+ }
+
+ /**
+ * Increment the AMP section ID and return the value
+ *
+ * @return int
+ */
+ public static function get_amp_section_id() {
+ return self::$amp_section_id++;
+ }
+
+ /**
+ * Convenience function for grabbing options from params->options
+ *
+ * @param string $option the option to grab.
+ * @param mixed $default (optional).
+ * @return option or $default if not set
+ *
+ * @since 4.5.0
+ */
+ public function option( $option, $default = false ) {
+ if ( ! isset( $this->params->options[ $option ] ) ) {
+ return $default;
+ }
+
+ return $this->params->options[ $option ];
+ }
+
+ /**
+ * Returns the ad tag property array for supported ad types.
+ *
+ * @return array array with ad tags
+ *
+ * @since 7.1.0
+ */
+ public function get_ad_tags() {
+ return self::$ad_tag_ids;
+ }
+
+ /**
+ * Returns the solo css for unit
+ *
+ * @return string the special css for solo units
+ *
+ * @since 7.1.0
+ */
+ public function get_solo_unit_css() {
+ return self::$solo_unit_css;
+ }
+
+ /**
+ * Instantiate the plugin
+ *
+ * @since 4.5.0
+ */
+ public function __construct() {
+ add_action( 'wp', array( $this, 'init' ) );
+ add_action( 'rest_api_init', array( $this, 'init' ) );
+ add_action( 'widgets_init', array( $this, 'widget_callback' ) );
+
+ if ( is_admin() ) {
+ WordAds_California_Privacy::init_ajax_actions();
+ }
+ }
+
+ /**
+ * Code to run on WordPress 'init' hook
+ *
+ * @since 4.5.0
+ */
+ public function init() {
+ require_once WORDADS_ROOT . '/php/class-wordads-params.php';
+ $this->params = new WordAds_Params();
+
+ if ( $this->should_bail() || self::is_infinite_scroll() ) {
+ return;
+ }
+
+ if ( is_admin() ) {
+ require_once WORDADS_ROOT . '/php/class-wordads-admin.php';
+ return;
+ }
+
+ $this->insert_adcode();
+
+ // Include California Privacy Act related features if enabled.
+ if ( $this->params->options['wordads_ccpa_enabled'] ) {
+ WordAds_California_Privacy::init();
+ }
+
+ if ( '/ads.txt' === $_SERVER['REQUEST_URI'] ) {
+
+ $ads_txt_transient = get_transient( 'jetpack_ads_txt' );
+
+ if ( false === ( $ads_txt_transient ) ) {
+ $ads_txt_transient = ! is_wp_error( WordAds_API::get_wordads_ads_txt() ) ? WordAds_API::get_wordads_ads_txt() : '';
+ set_transient( 'jetpack_ads_txt', $ads_txt_transient, DAY_IN_SECONDS );
+ }
+
+ /**
+ * Provide plugins a way of modifying the contents of the automatically-generated ads.txt file.
+ *
+ * @module wordads
+ *
+ * @since 6.1.0
+ *
+ * @param string WordAds_API::get_wordads_ads_txt() The contents of the ads.txt file.
+ */
+ $ads_txt_content = apply_filters( 'wordads_ads_txt', $ads_txt_transient );
+
+ http_response_code( 200 );
+ header( 'Content-Type: text/plain; charset=utf-8' );
+ echo esc_html( $ads_txt_content );
+ die();
+ }
+ }
+
+ /**
+ * Check for Jetpack's The_Neverending_Home_Page and use got_infinity
+ *
+ * @return boolean true if load came from infinite scroll
+ *
+ * @since 4.5.0
+ */
+ public static function is_infinite_scroll() {
+ return class_exists( 'The_Neverending_Home_Page' ) && The_Neverending_Home_Page::got_infinity();
+ }
+
+ /**
+ * Add the actions/filters to insert the ads. Checks for mobile or desktop.
+ *
+ * @since 4.5.0
+ */
+ private function insert_adcode() {
+ add_filter( 'wp_resource_hints', array( $this, 'resource_hints' ), 10, 2 );
+ add_action( 'wp_head', array( $this, 'insert_head_meta' ), 20 );
+ add_action( 'wp_head', array( $this, 'insert_head_iponweb' ), 30 );
+ add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ) );
+ add_filter( 'wordads_ads_txt', array( $this, 'insert_custom_adstxt' ) );
+
+ /**
+ * Filters enabling ads in `the_content` filter
+ *
+ * @see https://jetpack.com/support/ads/
+ *
+ * @module wordads
+ *
+ * @since 5.8.0
+ *
+ * @param bool True to disable ads in `the_content`
+ */
+ if ( ! apply_filters( 'wordads_content_disable', false ) ) {
+ add_filter( 'the_content', array( $this, 'insert_ad' ) );
+ }
+
+ /**
+ * Filters enabling ads in `the_excerpt` filter
+ *
+ * @see https://jetpack.com/support/ads/
+ *
+ * @module wordads
+ *
+ * @since 5.8.0
+ *
+ * @param bool True to disable ads in `the_excerpt`
+ */
+ if ( ! apply_filters( 'wordads_excerpt_disable', false ) ) {
+ add_filter( 'the_excerpt', array( $this, 'insert_ad' ) );
+ }
+
+ if ( $this->option( 'enable_header_ad', true ) ) {
+ if ( self::is_amp() ) {
+ add_filter( 'the_content', array( $this, 'insert_header_ad_amp' ) );
+ } else {
+ add_action( 'wordads_header_ad', array( $this, 'insert_header_ad' ), 100 );
+ add_action( 'wp_footer', array( $this, 'insert_header_ad' ), 100 );
+ }
+ }
+ }
+
+ /**
+ * Register desktop scripts and styles
+ *
+ * @since 4.5.0
+ */
+ public function enqueue_scripts() {
+ wp_enqueue_style(
+ 'wordads',
+ WORDADS_URL . 'css/style.css',
+ array(),
+ '2015-12-18'
+ );
+ }
+
+ /**
+ * Add the IPW resource hints
+ *
+ * @since 7.9
+ *
+ * @param array $hints Domains for hinting.
+ * @param string $relation_type Resource type.
+ *
+ * @return array Domains for hinting.
+ */
+ public function resource_hints( $hints, $relation_type ) {
+ if ( 'dns-prefetch' === $relation_type ) {
+ $hints[] = '//s.pubmine.com';
+ $hints[] = '//x.bidswitch.net';
+ $hints[] = '//static.criteo.net';
+ $hints[] = '//ib.adnxs.com';
+ $hints[] = '//aax.amazon-adsystem.com';
+ $hints[] = '//bidder.criteo.com';
+ $hints[] = '//cas.criteo.com';
+ $hints[] = '//gum.criteo.com';
+ $hints[] = '//ads.pubmatic.com';
+ $hints[] = '//gads.pubmatic.com';
+ $hints[] = '//tpc.googlesyndication.com';
+ $hints[] = '//ad.doubleclick.net';
+ $hints[] = '//googleads.g.doubleclick.net';
+ $hints[] = '//www.googletagservices.com';
+ $hints[] = '//cdn.switchadhub.com';
+ $hints[] = '//delivery.g.switchadhub.com';
+ $hints[] = '//delivery.swid.switchadhub.com';
+ }
+
+ return $hints;
+ }
+
+ /**
+ * IPONWEB metadata used by the various scripts
+ *
+ * @return [type] [description]
+ */
+ public function insert_head_meta() {
+ if ( self::is_amp() ) {
+ return;
+ }
+ $hosting_type = ( new Host() )->is_woa_site() ? 1 : 2; // 1 = WPCOM, 2 = Jetpack.
+ $pagetype = (int) $this->params->get_page_type_ipw();
+ $data_tags = ( $this->params->cloudflare ) ? ' data-cfasync="false"' : '';
+ $site_id = $this->params->blog_id;
+ $consent = (int) isset( $_COOKIE['personalized-ads-consent'] );
+ ?>
+ <script<?php echo esc_attr( $data_tags ); ?> type="text/javascript">
+ var __ATA_PP = { pt: <?php echo esc_js( $pagetype ); ?>, ht: <?php echo esc_js( $hosting_type ); ?>, tn: '<?php echo esc_js( get_stylesheet() ); ?>', amp: false, siteid: <?php echo esc_js( $site_id ); ?>, consent: <?php echo esc_js( $consent ); ?>, ad: { label: { text: '<?php echo esc_js( __( 'Advertisements', 'jetpack' ) ); ?>' }, reportAd: { text: '<?php echo esc_js( __( 'Report this ad', 'jetpack' ) ); ?>' } } };
+ var __ATA = __ATA || {};
+ __ATA.cmd = __ATA.cmd || [];
+ __ATA.criteo = __ATA.criteo || {};
+ __ATA.criteo.cmd = __ATA.criteo.cmd || [];
+ </script>
+ <?php
+ }
+
+ /**
+ * IPONWEB scripts in <head>
+ *
+ * @since 4.5.0
+ */
+ public function insert_head_iponweb() {
+ if ( self::is_amp() ) {
+ return;
+ }
+
+ $data_tags = ( $this->params->cloudflare ) ? ' data-cfasync="false"' : '';
+ ?>
+ <script<?php echo esc_attr( $data_tags ); ?> type="text/javascript">
+ (function(){var g=Date.now||function(){return+new Date};function h(a,b){a:{for(var c=a.length,d="string"==typeof a?a.split(""):a,e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a)){b=e;break a}b=-1}return 0>b?null:"string"==typeof a?a.charAt(b):a[b]};function k(a,b,c){c=null!=c?"="+encodeURIComponent(String(c)):"";if(b+=c){c=a.indexOf("#");0>c&&(c=a.length);var d=a.indexOf("?");if(0>d||d>c){d=c;var e=""}else e=a.substring(d+1,c);a=[a.substr(0,d),e,a.substr(c)];c=a[1];a[1]=b?c?c+"&"+b:b:c;a=a[0]+(a[1]?"?"+a[1]:"")+a[2]}return a};var l=0;function m(a,b){var c=document.createElement("script");c.src=a;c.onload=function(){b&&b(void 0)};c.onerror=function(){b&&b("error")};a=document.getElementsByTagName("head");var d;a&&0!==a.length?d=a[0]:d=document.documentElement;d.appendChild(c)}function n(a){var b=void 0===b?document.cookie:b;return(b=h(b.split("; "),function(c){return-1!=c.indexOf(a+"=")}))?b.split("=")[1]:""}function p(a){return"string"==typeof a&&0<a.length}
+ function r(a,b,c){b=void 0===b?"":b;c=void 0===c?".":c;var d=[];Object.keys(a).forEach(function(e){var f=a[e],q=typeof f;"object"==q&&null!=f||"function"==q?d.push(r(f,b+e+c)):null!==f&&void 0!==f&&(e=encodeURIComponent(b+e),d.push(e+"="+encodeURIComponent(f)))});return d.filter(p).join("&")}function t(a,b){a||((window.__ATA||{}).config=b.c,m(b.url))}var u=Math.floor(1E13*Math.random()),v=window.__ATA||{};window.__ATA=v;window.__ATA.cmd=v.cmd||[];v.rid=u;v.createdAt=g();var w=window.__ATA||{},x="s.pubmine.com";
+ w&&w.serverDomain&&(x=w.serverDomain);var y="//"+x+"/conf",z=window.top===window,A=window.__ATA_PP&&window.__ATA_PP.gdpr_applies,B="boolean"===typeof A?Number(A):null,C=window.__ATA_PP||null,D=z?document.referrer?document.referrer:null:null,E=z?window.location.href:document.referrer?document.referrer:null,F,G=n("__ATA_tuuid");F=G?G:null;var H=window.innerWidth+"x"+window.innerHeight,I=n("usprivacy"),J=r({gdpr:B,pp:C,rid:u,src:D,ref:E,tuuid:F,vp:H,us_privacy:I?I:null},"",".");
+ (function(a){var b=void 0===b?"cb":b;l++;var c="callback__"+g().toString(36)+"_"+l.toString(36);a=k(a,b,c);window[c]=function(d){t(void 0,d)};m(a,function(d){d&&t(d)})})(y+"?"+J);}).call(this);
+ </script>
+ <?php
+ }
+
+ /**
+ * Insert the ad onto the page
+ *
+ * @since 4.5.0
+ *
+ * @param string $content HTML content.
+ */
+ public function insert_ad( $content ) {
+ // Don't insert ads in feeds, or for anything but the main display. (This is required for compatibility with the Publicize module).
+ if ( is_feed() || ! is_main_query() || ! in_the_loop() ) {
+ return $content;
+ }
+ /**
+ * Allow third-party tools to disable the display of in post ads.
+ *
+ * @module wordads
+ *
+ * @since 4.5.0
+ *
+ * @param bool true Should the in post unit be disabled. Default to false.
+ */
+ $disable = apply_filters( 'wordads_inpost_disable', false );
+ if ( ! $this->params->should_show() || $disable ) {
+ return $content;
+ }
+
+ $ad_type = $this->option( 'wordads_house' ) ? 'house' : 'iponweb';
+ return $content . $this->get_ad( 'belowpost', $ad_type );
+ }
+
+ /**
+ * Insert an inline ad into a post content
+ * Used for rendering the `wordads` shortcode.
+ *
+ * @since 6.1.0
+ *
+ * @param string $content HTML content.
+ */
+ public function insert_inline_ad( $content ) {
+ // Ad JS won't work in XML feeds.
+ if ( is_feed() ) {
+ return $content;
+ }
+ /**
+ * Allow third-party tools to disable the display of in post ads.
+ *
+ * @module wordads
+ *
+ * @since 4.5.0
+ *
+ * @param bool true Should the in post unit be disabled. Default to false.
+ */
+ $disable = apply_filters( 'wordads_inpost_disable', false );
+ if ( $disable ) {
+ return $content;
+ }
+
+ $ad_type = $this->option( 'wordads_house' ) ? 'house' : 'iponweb';
+ $content .= $this->get_ad( 'inline', $ad_type );
+ return $content;
+ }
+
+ /**
+ * Inserts ad into header
+ *
+ * @since 4.5.0
+ */
+ public function insert_header_ad() {
+ /**
+ * Allow third-party tools to disable the display of header ads.
+ *
+ * @module wordads
+ *
+ * @since 4.5.0
+ *
+ * @param bool true Should the header unit be disabled. Default to false.
+ */
+ if ( apply_filters( 'wordads_header_disable', false ) ) {
+ return;
+ }
+
+ // Prevent multiple manual ads.
+ if ( 2 <= did_action( 'wordads_header_ad' ) ) {
+ return;
+ }
+
+ // Prevent placing an automatic ad if a manual ad has already been placed.
+ if ( doing_action( 'wp_footer' ) && did_action( 'wordads_header_ad' ) ) {
+ return;
+ }
+
+ // Prevent placing a manual ad if an automatic ad has already been placed.
+ if ( doing_action( 'wordads_header_ad' ) && did_action( 'wp_footer' ) ) {
+ return;
+ }
+
+ // Default ad placement to just after the <body> tag.
+ $selector = 'body > :first-child';
+
+ // Special theme cases.
+ switch ( get_stylesheet() ) {
+ case 'twentyseventeen':
+ $selector = '#content';
+ break;
+ case 'twentyfifteen':
+ $selector = '#main';
+ break;
+ case 'twentyfourteen':
+ $selector = 'article';
+ break;
+ }
+
+ // Don't relocate if the ad is being placed manually.
+ if ( doing_action( 'wordads_header_ad' ) ) {
+ $selector = '';
+ }
+
+ $section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '2';
+ $form_factor = $this->params->mobile_device ? 'square' : 'leaderboard';
+ echo $this->get_dynamic_ad_snippet( $section_id, $form_factor, 'top', $selector ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+
+ /**
+ * Header unit for AMP
+ *
+ * @param string $content Content of the page.
+ *
+ * @since 7.5.0
+ */
+ public function insert_header_ad_amp( $content ) {
+
+ $ad_type = $this->option( 'wordads_house' ) ? 'house' : 'iponweb';
+ if ( 'house' === $ad_type ) {
+ return $content;
+ }
+ return $this->get_ad( 'top_amp', $ad_type ) . $content;
+
+ }
+
+ /**
+ * Filter the latest ads.txt to include custom user entries. Strips any tags or whitespace.
+ *
+ * @param string $adstxt The ads.txt being filtered.
+ * @return string Filtered ads.txt with custom entries, if applicable.
+ *
+ * @since 6.5.0
+ */
+ public function insert_custom_adstxt( $adstxt ) {
+ if ( ! $this->option( 'wordads_custom_adstxt_enabled' ) ) {
+ return $adstxt;
+ }
+
+ $custom_adstxt = trim( wp_strip_all_tags( $this->option( 'wordads_custom_adstxt' ) ) );
+ if ( $custom_adstxt ) {
+ $adstxt .= "\n\n#Jetpack - User Custom Entries\n";
+ $adstxt .= $custom_adstxt . "\n";
+ }
+
+ return $adstxt;
+ }
+
+ /**
+ * Get the ad for the spot and type.
+ *
+ * @param string $spot top, side, inline, or belowpost.
+ * @param string $type iponweb or adsense.
+ */
+ public function get_ad( $spot, $type = 'iponweb' ) {
+ $snippet = '';
+ if ( 'iponweb' === $type ) {
+ $section_id = WORDADS_API_TEST_ID;
+ $snippet = '';
+
+ if ( 'top' === $spot ) {
+ // mrec for mobile, leaderboard for desktop.
+ $section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '2';
+ $form_factor = $this->params->mobile_device ? 'square' : 'leaderboard';
+ $snippet = $this->get_dynamic_ad_snippet( $section_id, $form_factor, $spot );
+ } elseif ( 'belowpost' === $spot ) {
+ $section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '1';
+ $snippet = $this->get_dynamic_ad_snippet( $section_id, 'square', $spot );
+ } elseif ( 'inline' === $spot ) {
+ $section_id = 0 === $this->params->blog_id ? WORDADS_API_TEST_ID : $this->params->blog_id . '5';
+ $snippet = $this->get_dynamic_ad_snippet( $section_id, 'square', $spot );
+ } elseif ( 'top_amp' === $spot ) {
+ // Ad unit which can safely be inserted below title, above content in a variety of themes.
+ $width = 300;
+ $height = 250;
+ $snippet = $this->get_ad_div( $spot, $this->get_amp_snippet( $height, $width ) );
+ }
+ } elseif ( 'house' === $type ) {
+ $leaderboard = 'top' === $spot && ! $this->params->mobile_device;
+ $snippet = $this->get_house_ad( $leaderboard ? 'leaderboard' : 'mrec' );
+ if ( 'belowpost' === $spot && $this->option( 'wordads_second_belowpost', true ) ) {
+ $snippet .= $this->get_house_ad( $leaderboard ? 'leaderboard' : 'mrec' );
+ }
+ }
+
+ return $snippet;
+ }
+
+ /**
+ * Returns the AMP snippet to be inserted
+ *
+ * @param int $height Height.
+ * @param int $width Width.
+ * @return string
+ *
+ * @since 8.7
+ */
+ public function get_amp_snippet( $height, $width ) {
+ $height = esc_attr( $height + 15 ); // this will ensure enough padding for "Report this ad".
+ $width = esc_attr( $width );
+ $amp_section_id = esc_attr( self::get_amp_section_id() );
+ $site_id = esc_attr( $this->params->blog_id );
+ return <<<HTML
+ <amp-ad width="$width" height="$height"
+ type="pubmine"
+ data-siteid="$site_id"
+ data-section="$amp_section_id">
+ </amp-ad>
+HTML;
+ }
+
+ /**
+ * Compatibility function -- main functionality replaced with get_dynamic_ad_snippet
+ *
+ * @param int $section_id Ad section.
+ * @param int $height Ad height.
+ * @param int $width Ad width.
+ * @param string $location Location.
+ * @param string $css CSS.
+ *
+ * @return string
+ *
+ * @since 5.7
+ */
+ public function get_ad_snippet( $section_id, $height, $width, $location = '', $css = '' ) {
+ if ( class_exists( 'Jetpack_AMP_Support' ) && Jetpack_AMP_Support::is_amp_request() ) {
+ return $this->get_amp_snippet( $height, $width );
+ }
+
+ $this->ads[] = array(
+ 'location' => $location,
+ 'width' => $width,
+ 'height' => $height,
+ );
+
+ if ( 'gutenberg' === $location ) {
+ $ad_number = count( $this->ads ) . '-' . uniqid();
+ $data_tags = $this->params->cloudflare ? ' data-cfasync="false"' : '';
+ $css = esc_attr( $css );
+
+ $loc_id = 100;
+ if ( ! empty( self::$ad_location_ids[ $location ] ) ) {
+ $loc_id = self::$ad_location_ids[ $location ];
+ }
+
+ $loc_id = esc_js( $loc_id );
+ return <<<HTML
+ <div style="padding-bottom:15px;width:{$width}px;height:{$height}px;$css">
+ <div id="atatags-{$ad_number}">
+ <script$data_tags type="text/javascript">
+ __ATA.cmd.push(function() {
+ __ATA.initSlot('atatags-{$ad_number}', {
+ collapseEmpty: 'before',
+ sectionId: '{$section_id}',
+ location: {$loc_id},
+ width: {$width},
+ height: {$height}
+ });
+ });
+ </script>
+ </div>
+ </div>
+HTML;
+ }
+
+ $form_factor = 'square';
+ if ( 250 > $width ) {
+ $form_factor = 'skyscraper';
+ } elseif ( 300 < $width ) {
+ $form_factor = 'leaderboard';
+ }
+
+ return $this->get_dynamic_ad_snippet( $section_id, $form_factor, $location );
+ }
+
+ /**
+ * Returns the dynamic snippet to be inserted into the ad unit
+ *
+ * @param int $section_id section_id.
+ * @param string $form_factor form_factor.
+ * @param string $location location.
+ * @param string $relocate location to be moved after the fact for themes without required hook.
+ * @return string
+ *
+ * @since 8.7
+ */
+ public function get_dynamic_ad_snippet( $section_id, $form_factor = 'square', $location = '', $relocate = '' ) {
+ $div_id = 'atatags-' . $section_id . '-' . uniqid();
+ $div_id = esc_attr( $div_id );
+
+ // Default form factor.
+ $form_factor_id = self::$form_factor_ids['square'];
+ if ( isset( self::$form_factor_ids[ $form_factor ] ) ) {
+ $form_factor_id = self::$form_factor_ids[ $form_factor ];
+ }
+
+ $loc_id = 100;
+ if ( isset( self::$ad_location_ids[ $location ] ) ) {
+ $loc_id = self::$ad_location_ids[ $location ];
+ }
+
+ $form_factor_id = esc_js( $form_factor_id );
+ $advertisements_text = esc_js( __( 'Advertisements', 'jetpack' ) );
+ $report_ad_text = esc_js( __( 'Report this ad', 'jetpack' ) );
+ $privacy_settings_text = esc_js( __( 'Privacy settings', 'jetpack' ) );
+
+ $relocate_script = '';
+ if ( ! empty( $relocate ) ) {
+ $selector = wp_json_encode( $relocate );
+ $relocate_script = <<<JS
+ <script type="text/javascript">
+ var adNode = document.getElementById( '{$div_id}' );
+ var selector = {$selector};
+ var relocateNode = document.querySelector( selector );
+ relocateNode.parentNode.insertBefore( adNode, relocateNode );
+ </script>
+JS;
+ }
+
+ return <<<HTML
+ <div id="{$div_id}"></div>
+ {$relocate_script}
+ <script>
+ __ATA.cmd.push(function() {
+ __ATA.initDynamicSlot({
+ id: '{$div_id}',
+ location: {$loc_id},
+ formFactor: '{$form_factor_id}',
+ label: {
+ text: '{$advertisements_text}',
+ },
+ creative: {
+ reportAd: {
+ text: '{$report_ad_text}',
+ },
+ privacySettings: {
+ text: '{$privacy_settings_text}',
+ }
+ }
+ });
+ });
+ </script>
+HTML;
+ }
+
+ /**
+ * Returns the complete ad div with snippet to be inserted into the page
+ *
+ * @param string $spot top, side, inline, or belowpost.
+ * @param string $snippet The snippet to insert into the div.
+ * @param array $css_classes CSS classes.
+ * @return string The supporting ad unit div.
+ *
+ * @since 7.1
+ */
+ public function get_ad_div( $spot, $snippet, array $css_classes = array() ) {
+ if ( strpos( strtolower( $spot ), 'amp' ) === false && ! 'inline' === $spot ) {
+ return $snippet; // we don't want dynamic ads to be inserted for AMP & Gutenberg.
+ }
+
+ if ( empty( $css_classes ) ) {
+ $css_classes = array();
+ }
+
+ $css_classes[] = 'wpcnt';
+ if ( 'top' === $spot ) {
+ $css_classes[] = 'wpcnt-header';
+ }
+
+ $spot = esc_attr( $spot );
+ $classes = esc_attr( implode( ' ', $css_classes ) );
+ $about = esc_html__( 'Advertisements', 'jetpack' );
+ return <<<HTML
+ <div class="$classes">
+ <div class="wpa">
+ <span class="wpa-about">$about</span>
+ <div class="u $spot">
+ $snippet
+ </div>
+ </div>
+ </div>
+HTML;
+ }
+
+ /**
+ * Check the reasons to bail before we attempt to insert ads.
+ *
+ * @return true if we should bail (don't insert ads)
+ *
+ * @since 4.5.0
+ */
+ public function should_bail() {
+ return ! $this->option( 'wordads_approved' ) || (bool) $this->option( 'wordads_unsafe' );
+ }
+
+ /**
+ * Returns markup for HTML5 house ad base on unit
+ *
+ * @param string $unit mrec, widesky, or leaderboard.
+ * @return string markup for HTML5 house ad
+ *
+ * @since 4.7.0
+ */
+ public function get_house_ad( $unit = 'mrec' ) {
+
+ switch ( $unit ) {
+ case 'widesky':
+ $width = 160;
+ $height = 600;
+ break;
+ case 'leaderboard':
+ $width = 728;
+ $height = 90;
+ break;
+ case 'mrec':
+ default:
+ $width = 300;
+ $height = 250;
+ break;
+ }
+
+ return <<<HTML
+ <iframe
+ src="https://s0.wp.com/wp-content/blog-plugins/wordads/house/html5/$unit/index.html"
+ width="$width"
+ height="$height"
+ frameborder="0"
+ scrolling="no"
+ marginheight="0"
+ marginwidth="0">
+ </iframe>
+HTML;
+ }
+
+ /**
+ * Activation hook actions
+ *
+ * @since 4.5.0
+ */
+ public static function activate() {
+ WordAds_API::update_wordads_status_from_api();
+ }
+
+ /**
+ * Registers the widgets.
+ */
+ public function widget_callback() {
+ register_widget( 'WordAds_Sidebar_Widget' );
+
+ $ccpa_enabled = get_option( 'wordads_ccpa_enabled' );
+
+ if ( $ccpa_enabled ) {
+ register_widget( 'WordAds_Ccpa_Do_Not_Sell_Link_Widget' );
+ }
+ }
+}
+
+add_action( 'jetpack_activate_module_wordads', array( 'WordAds', 'activate' ) );
+add_action( 'jetpack_activate_module_wordads', array( 'WordAds_Cron', 'activate' ) );
+add_action( 'jetpack_deactivate_module_wordads', array( 'WordAds_Cron', 'deactivate' ) );
+
+global $wordads;
+$wordads = new WordAds();
diff --git a/plugins/jetpack/modules/wordads/js/wordads-ccpa.js b/plugins/jetpack/modules/wordads/js/wordads-ccpa.js
new file mode 100644
index 00000000..225ff2ad
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/js/wordads-ccpa.js
@@ -0,0 +1,339 @@
+/**
+ * Outputs Javascript to handle California IP detection, consent modal, and setting of default cookies.
+ */
+( function () {
+ /* global ccpaSettings */
+
+ // Minimal Mozilla Cookie library.
+ // https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie/Simple_document.cookie_framework
+ var cookieLib = {
+ getItem: function ( e ) {
+ return (
+ ( e &&
+ decodeURIComponent(
+ document.cookie.replace(
+ new RegExp(
+ '(?:(?:^|.*;)\\s*' +
+ encodeURIComponent( e ).replace( /[\-\.\+\*]/g, '\\$&' ) +
+ '\\s*\\=\\s*([^;]*).*$)|^.*$'
+ ),
+ '$1'
+ )
+ ) ) ||
+ null
+ );
+ },
+ setItem: function ( e, o, n, t, r, i ) {
+ if ( ! e || /^(?:expires|max\-age|path|domain|secure)$/i.test( e ) ) {
+ return ! 1;
+ }
+ var c = '';
+ if ( n ) {
+ switch ( n.constructor ) {
+ case Number:
+ c = n === 1 / 0 ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + n;
+ break;
+ case String:
+ c = '; expires=' + n;
+ break;
+ case Date:
+ c = '; expires=' + n.toUTCString();
+ }
+ }
+ return (
+ ( 'rootDomain' !== r && '.rootDomain' !== r ) ||
+ ( r =
+ ( '.rootDomain' === r ? '.' : '' ) +
+ document.location.hostname.split( '.' ).slice( -2 ).join( '.' ) ),
+ ( document.cookie =
+ encodeURIComponent( e ) +
+ '=' +
+ encodeURIComponent( o ) +
+ c +
+ ( r ? '; domain=' + r : '' ) +
+ ( t ? '; path=' + t : '' ) +
+ ( i ? '; secure' : '' ) ),
+ ! 0
+ );
+ },
+ };
+
+ // Implement IAB USP API.
+ window.__uspapi = function ( command, version, callback ) {
+ // Validate callback.
+ if ( typeof callback !== 'function' ) {
+ return;
+ }
+
+ // Validate the given command.
+ if ( command !== 'getUSPData' || version !== 1 ) {
+ callback( null, false );
+ return;
+ }
+
+ // Check for GPC. If set, override any stored cookie.
+ if ( navigator.globalPrivacyControl ) {
+ callback( { version: 1, uspString: '1YYN' }, true );
+ return;
+ }
+
+ // Check for cookie.
+ var consent = cookieLib.getItem( 'usprivacy' );
+
+ // Invalid cookie.
+ if ( null === consent ) {
+ callback( null, false );
+ return;
+ }
+
+ // Everything checks out. Fire the provided callback with the consent data.
+ callback( { version: 1, uspString: consent }, true );
+ };
+
+ var setDefaultOptInCookie = function () {
+ var value = ccpaSettings.defaultOptInCookieString;
+ var domain =
+ '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
+ cookieLib.setItem( 'usprivacy', value, 365 * 24 * 60 * 60, '/', domain );
+ };
+
+ var setDefaultOptOutCookie = function () {
+ var value = ccpaSettings.defaultOptOutCookieString;
+ var domain =
+ '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
+ cookieLib.setItem( 'usprivacy', value, 24 * 60 * 60, '/', domain );
+ };
+
+ var setDefaultNotApplicableCookie = function () {
+ var value = '1---';
+ var domain =
+ '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
+ cookieLib.setItem( 'usprivacy', value, 24 * 60 * 60, '/', domain );
+ };
+
+ var setCcpaAppliesCookie = function ( value ) {
+ var domain =
+ '.wordpress.com' === location.hostname.slice( -14 ) ? '.rootDomain' : location.hostname;
+ cookieLib.setItem( 'ccpa_applies', value, 24 * 60 * 60, '/', domain );
+ };
+
+ var injectLoadingMessage = function () {
+ var wrapper = document.createElement( 'div' );
+ document.body.insertBefore( wrapper, document.body.firstElementChild );
+ wrapper.outerHTML =
+ '<div id="ccpa-loading" class="cleanslate ccpa__loading-wrapper">' +
+ '<div class="ccpa__loading-overlay">' +
+ '<span class="ccpa__loading-message">' +
+ ccpaSettings.strings.pleaseWait +
+ '...</span>' +
+ '</div>' +
+ '</div>';
+ };
+
+ var destroyModal = function () {
+ var node = document.querySelector( '#ccpa-modal' );
+
+ if ( node ) {
+ node.parentElement.removeChild( node );
+ }
+ };
+
+ var injectModal = function () {
+ destroyModal();
+
+ injectLoadingMessage();
+
+ var request = new XMLHttpRequest();
+ request.open(
+ 'GET',
+ ccpaSettings.ajaxUrl + '?action=privacy_optout_markup&security=' + ccpaSettings.ajaxNonce,
+ true
+ );
+ request.onreadystatechange = function () {
+ if ( 4 === this.readyState ) {
+ if ( 200 === this.status ) {
+ document.getElementById( 'ccpa-loading' ).remove();
+ var wrapper = document.createElement( 'div' );
+ document.body.insertBefore( wrapper, document.body.firstElementChild );
+ wrapper.outerHTML = this.response;
+ document.getElementById( 'ccpa-opt-out' ).focus();
+
+ var optOut = document.querySelector( '#ccpa-modal .opt-out' );
+ optOut.addEventListener( 'click', function ( e ) {
+ var post = new XMLHttpRequest();
+ post.open( 'POST', ccpaSettings.ajaxUrl, true );
+ post.setRequestHeader(
+ 'Content-Type',
+ 'application/x-www-form-urlencoded; charset=UTF-8'
+ );
+ post.onreadystatechange = function () {
+ if ( 4 === this.readyState ) {
+ if ( 200 === this.status ) {
+ var result = JSON.parse( this.response );
+
+ if ( result && result.success ) {
+ // Note: Cooke is set in HTTP response from POST, so only need to update the toggle switch state.
+ if ( result.data ) {
+ e.target.parentNode.classList.add( 'is-checked' );
+ e.target.parentNode.parentNode.classList.add( 'is-checked' );
+ } else {
+ e.target.parentNode.classList.remove( 'is-checked' );
+ e.target.parentNode.parentNode.classList.remove( 'is-checked' );
+ }
+ }
+ }
+ }
+ };
+ post.send(
+ 'action=privacy_optout&optout=' +
+ e.target.checked +
+ '&security=' +
+ ccpaSettings.ajaxNonce
+ );
+ } );
+
+ // Set initial toggle status based on cookie data.
+ var usprivacyCookie = cookieLib.getItem( 'usprivacy' );
+ var optout = usprivacyCookie && 'Y' === usprivacyCookie[ 2 ];
+ var toggle = document.querySelector( '#ccpa-modal .opt-out' );
+
+ toggle.checked = optout;
+
+ if ( optout ) {
+ toggle.parentNode.classList.add( 'is-checked' );
+ toggle.parentNode.parentNode.classList.add( 'is-checked' );
+ }
+
+ var buttons = document.querySelectorAll( '#ccpa-modal .components-button' );
+ Array.prototype.forEach.call( buttons, function ( el ) {
+ el.addEventListener( 'click', function () {
+ destroyModal();
+ } );
+ } );
+ }
+ }
+ };
+
+ request.send();
+ };
+
+ var dispatchInitializedEvent = function ( ccpaApplies ) {
+ // Dispatches a custom event with data indicating if the CCPA applies or not once it has been determined.
+ // Sites can listen for this event and do additional processing, e.g. showing or hiding additional elements.
+ var event = document.createEvent( 'CustomEvent' );
+ event.initCustomEvent( 'wordads-ccpa-initialized', true, false, { ccpaApplies: ccpaApplies } );
+ document.dispatchEvent( event );
+ };
+
+ var initialize = function ( ccpaApplies, usprivacyCookie ) {
+ // Get any Do Not Sell links on the page.
+ var dnsLinks = document.querySelectorAll( '.ccpa-do-not-sell' );
+
+ // No usprivacy cookie, so we need to set it.
+ if ( null === usprivacyCookie ) {
+ if ( ccpaApplies ) {
+ if ( 0 === dnsLinks.length ) {
+ // Could not find a Do Not Sell link as required, so default to opt-OUT just to be safe.
+ setDefaultOptOutCookie();
+ } else {
+ // Found a Do Not Sell link, so set default opt-in.
+ setDefaultOptInCookie();
+ }
+ } else {
+ // CCPA does not apply.
+ setDefaultNotApplicableCookie();
+ }
+ }
+
+ // If CCPA does not apply, and we are not overriding it for admins, then we can stop here.
+ if ( ! ccpaApplies && 'false' === ccpaSettings.forceApplies ) {
+ dispatchInitializedEvent( false );
+ return;
+ }
+
+ // Displays Do Not Sell links and adds handlers to display the modal when clicked.
+ Array.prototype.forEach.call( dnsLinks, function ( dnsLink ) {
+ dnsLink.addEventListener( 'click', function ( e ) {
+ e.preventDefault();
+
+ if ( ! ccpaSettings.stylesLoaded ) {
+ // Load wordads-ccpa.min.css.
+ var ccpaCss = document.createElement( 'link' );
+ ccpaCss.rel = 'stylesheet';
+ ccpaCss.type = 'text/css';
+ ccpaCss.href = ccpaSettings.ccpaCssUrl;
+ document.getElementsByTagName( 'HEAD' )[ 0 ].appendChild( ccpaCss );
+
+ ccpaSettings.stylesLoaded = true;
+ }
+
+ injectModal();
+ } );
+
+ // Make the link visible.
+ dnsLink.style.display = '';
+ } );
+
+ // CCPA applies (or we're forcing it to display for admins). Let any listeners know.
+ dispatchInitializedEvent( true );
+ };
+
+ // Setup CCPA on DOM loaded.
+ document.addEventListener( 'DOMContentLoaded', function () {
+ // Look for usprivacy cookies first.
+ var usprivacyCookie = cookieLib.getItem( 'usprivacy' );
+
+ // Found a usprivacy cookie.
+ if ( null !== usprivacyCookie ) {
+ // CCPA does not apply.
+ if ( '1---' === usprivacyCookie ) {
+ initialize( false, usprivacyCookie );
+ } else {
+ // CCPA applies.
+ initialize( true, usprivacyCookie );
+ }
+
+ // No more processing needed.
+ return;
+ }
+
+ // We don't have a usprivacy cookie, so check to see if we have a CCPA applies cookie.
+ var ccpaCookie = cookieLib.getItem( 'ccpa_applies' );
+
+ // No CCPA applies cookie found, so we'll need to geolocate if this visitor is from California.
+ // This needs to happen client side because we do not have region geo data in our $SERVER headers,
+ // only country data -- therefore we can't vary cache on the region.
+ if ( null === ccpaCookie ) {
+ var request = new XMLHttpRequest();
+ request.open( 'GET', 'https://public-api.wordpress.com/geo/', true );
+
+ request.onreadystatechange = function () {
+ if ( 4 === this.readyState ) {
+ if ( 200 === this.status ) {
+ // Got a geo response. Parse out the region data.
+ var data = JSON.parse( this.response );
+ var ccpaApplies = data.region && 'california' === data.region.toLowerCase();
+
+ // Set CCPA applies cookie. This keeps us from having to make a geo request too frequently.
+ setCcpaAppliesCookie( ccpaApplies );
+
+ // Perform the rest of the initialization.
+ initialize( ccpaApplies, null );
+ } else {
+ // Geolocation request failed, so default to CCPA applies just to be safe.
+ setCcpaAppliesCookie( true );
+
+ // Perform the rest of the initialization.
+ initialize( true, null );
+ }
+ }
+ };
+
+ // Send the geo request.
+ request.send();
+ } else {
+ // We found a CCPA applies cookie. Continue with initialization.
+ initialize( 'true' === ccpaCookie, null );
+ }
+ } );
+} )();
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-admin.php b/plugins/jetpack/modules/wordads/php/class-wordads-admin.php
new file mode 100644
index 00000000..fc1e3751
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-admin.php
@@ -0,0 +1,60 @@
+<?php
+/**
+ * WordAds Admin.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * The standard set of admin pages for the user if Jetpack is installed
+ */
+class WordAds_Admin {
+
+ /**
+ * WordAds_Admin Constructor.
+ *
+ * @since 4.5.0
+ */
+ public function __construct() {
+ if ( current_user_can( 'manage_options' ) && isset( $_GET['ads_debug'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ WordAds_API::update_wordads_status_from_api();
+ add_action( 'admin_notices', array( $this, 'debug_output' ) );
+ }
+ }
+
+ /**
+ * Output the API connection debug
+ *
+ * @since 4.5.0
+ */
+ public function debug_output() {
+ global $wordads, $wordads_status_response;
+ $response = $wordads_status_response;
+ if ( empty( $response ) ) {
+ $response = 'No response from API :(';
+ } else {
+ $response = print_r( $response, 1 ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_print_r
+ }
+
+ $status = $wordads->option( 'wordads_approved' ) ?
+ array(
+ 'color' => 'green',
+ 'approved' => 'Yes',
+ ) :
+ array(
+ 'color' => 'red',
+ 'approved' => 'No',
+ );
+
+ $type = $wordads->option( 'wordads_approved' ) ? 'updated' : 'error';
+ ?>
+ <div class="notice <?php echo esc_attr( $type ); ?> is-dismissible">
+ <p>Status: <span style="color:<?php echo esc_attr( $status['color'] ); ?>;"><?php echo esc_html( $status ); ?></p>
+ <pre><?php echo esc_html( $response ); ?></pre>
+ </div>
+ <?php
+ }
+}
+
+global $wordads_admin;
+$wordads_admin = new WordAds_Admin();
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-api.php b/plugins/jetpack/modules/wordads/php/class-wordads-api.php
new file mode 100644
index 00000000..a5e565e8
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-api.php
@@ -0,0 +1,159 @@
+<?php
+/**
+ * The WordAds API.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Connection\Client;
+use Automattic\Jetpack\Status;
+
+/**
+ * Methods for accessing data through the WPCOM REST API
+ *
+ * @since 4.5.0
+ */
+class WordAds_API {
+
+ /**
+ * WordAds status.
+ *
+ * @var null|array
+ */
+ private static $wordads_status = null;
+
+ /**
+ * Returns site's WordAds status
+ *
+ * @return array boolean values for 'approved' and 'active'
+ *
+ * @since 4.5.0
+ */
+ public static function get_wordads_status() {
+ global $wordads_status_response;
+ if ( ( new Status() )->is_offline_mode() ) {
+ self::$wordads_status = array(
+ 'approved' => true,
+ 'active' => true,
+ 'house' => true,
+ 'unsafe' => false,
+ );
+
+ return self::$wordads_status;
+ }
+
+ $endpoint = sprintf( '/sites/%d/wordads/status', Jetpack::get_option( 'id' ) );
+ $response = Client::wpcom_json_api_request_as_blog( $endpoint );
+ $wordads_status_response = $response;
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return new WP_Error( 'api_error', __( 'Error connecting to API.', 'jetpack' ), $response );
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+ self::$wordads_status = array(
+ 'approved' => $body->approved,
+ 'active' => $body->active,
+ 'house' => $body->house,
+ 'unsafe' => $body->unsafe,
+ );
+
+ return self::$wordads_status;
+ }
+
+ /**
+ * Returns the ads.txt content needed to run WordAds.
+ *
+ * @return array string contents of the ads.txt file.
+ *
+ * @since 6.1.0
+ */
+ public static function get_wordads_ads_txt() {
+ global $wordads_status_response;
+
+ $endpoint = sprintf( '/sites/%d/wordads/ads-txt', Jetpack::get_option( 'id' ) );
+ $response = Client::wpcom_json_api_request_as_blog( $endpoint );
+ $wordads_status_response = $response;
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return new WP_Error( 'api_error', __( 'Error connecting to API.', 'jetpack' ), $response );
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+ $ads_txt = str_replace( '\\n', PHP_EOL, $body->adstxt );
+ return $ads_txt;
+ }
+
+ /**
+ * Returns status of WordAds approval.
+ *
+ * @return boolean true if site is WordAds approved
+ *
+ * @since 4.5.0
+ */
+ public static function is_wordads_approved() {
+ if ( is_null( self::$wordads_status ) ) {
+ self::get_wordads_status();
+ }
+
+ return (bool) self::$wordads_status['approved'];
+ }
+
+ /**
+ * Returns status of WordAds active.
+ *
+ * @return boolean true if ads are active on site
+ *
+ * @since 4.5.0
+ */
+ public static function is_wordads_active() {
+ if ( is_null( self::$wordads_status ) ) {
+ self::get_wordads_status();
+ }
+
+ return (bool) self::$wordads_status['active'];
+ }
+
+ /**
+ * Returns status of WordAds house ads.
+ *
+ * @return boolean true if WP.com house ads should be shown
+ *
+ * @since 4.5.0
+ */
+ public static function is_wordads_house() {
+ if ( is_null( self::$wordads_status ) ) {
+ self::get_wordads_status();
+ }
+
+ return (bool) self::$wordads_status['house'];
+ }
+
+ /**
+ * Returns whether or not this site is safe to run ads on.
+ *
+ * @return boolean true if ads shown not be shown on this site.
+ *
+ * @since 6.5.0
+ */
+ public static function is_wordads_unsafe() {
+ if ( is_null( self::$wordads_status ) ) {
+ self::get_wordads_status();
+ }
+
+ return (bool) self::$wordads_status['unsafe'];
+ }
+
+ /**
+ * Grab WordAds status from WP.com API and store as option
+ *
+ * @since 4.5.0
+ */
+ public static function update_wordads_status_from_api() {
+ $status = self::get_wordads_status();
+ if ( ! is_wp_error( $status ) ) {
+ update_option( 'wordads_approved', self::is_wordads_approved(), true );
+ update_option( 'wordads_active', self::is_wordads_active(), true );
+ update_option( 'wordads_house', self::is_wordads_house(), true );
+ update_option( 'wordads_unsafe', self::is_wordads_unsafe(), true );
+ }
+ }
+}
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-california-privacy.php b/plugins/jetpack/modules/wordads/php/class-wordads-california-privacy.php
new file mode 100644
index 00000000..b2e9135c
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-california-privacy.php
@@ -0,0 +1,282 @@
+<?php
+/**
+ * CCPA Class
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Assets;
+
+/**
+ * Class WordAds_California_Privacy
+ *
+ * Implementation of [California Consumer Privacy Act] (https://leginfo.legislature.ca.gov/faces/codes_displayText.xhtml?lawCode=CIV&division=3.&title=1.81.5.&part=4.&chapter=&article=) as applicable to WordAds.
+ * Includes:
+ * - Do Not Sell My Personal Information shortcode and widget.
+ * - Modal notice to toggle opt-in/opt-out.
+ * - Cookie handling. Implements IAB usprivacy cookie specifications.
+ * - Client side geo-detection of California visitors by IP address. Avoids issues with page caching.
+ */
+class WordAds_California_Privacy {
+
+ /**
+ * Initializes required scripts and shortcode.
+ */
+ public static function init() {
+ // Initialize shortcode.
+ add_shortcode( 'ccpa-do-not-sell-link', array( __CLASS__, 'do_not_sell_link_shortcode' ) );
+ }
+
+ /**
+ * Enqueue required CCPA JavaScript on the frontend.
+ */
+ public static function enqueue_scripts() {
+ wp_enqueue_script(
+ 'wordads_ccpa',
+ Assets::get_file_url_for_environment(
+ '_inc/build/wordads/js/wordads-ccpa.min.js',
+ 'modules/wordads/js/wordads-ccpa.js'
+ ),
+ array(),
+ JETPACK__VERSION,
+ true
+ );
+
+ wp_localize_script(
+ 'wordads_ccpa',
+ 'ccpaSettings',
+ array(
+ 'defaultOptInCookieString' => esc_html( self::get_optin_cookie_string() ),
+ 'defaultOptOutCookieString' => esc_html( self::get_optout_cookie_string() ),
+ 'ccpaCssUrl' => esc_url( Assets::get_file_url_for_environment( '/css/wordads-ccpa.min.css', '/css/wordads-ccpa.css' ) . '?ver=' . JETPACK__VERSION ),
+ 'ajaxUrl' => esc_url( admin_url( 'admin-ajax.php' ) ),
+ 'ajaxNonce' => wp_create_nonce( 'ccpa_optout' ),
+ 'forceApplies' => wp_json_encode( is_user_logged_in() && current_user_can( 'manage_options' ) ),
+ 'strings' => array(
+ 'pleaseWait' => esc_html__( 'Please Wait', 'jetpack' ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Initializes handlers for admin AJAX.
+ */
+ public static function init_ajax_actions() {
+ add_action( 'wp_ajax_privacy_optout', array( __CLASS__, 'handle_optout_request' ) );
+ add_action( 'wp_ajax_nopriv_privacy_optout', array( __CLASS__, 'handle_optout_request' ) );
+
+ add_action( 'wp_ajax_privacy_optout_markup', array( __CLASS__, 'handle_optout_markup' ) );
+ add_action( 'wp_ajax_nopriv_privacy_optout_markup', array( __CLASS__, 'handle_optout_markup' ) );
+ }
+
+ /**
+ * Outputs [ccpa-do-not-sell-link] shortcode markup.
+ *
+ * @return string The generated shortcode markup.
+ */
+ public static function do_not_sell_link_shortcode() {
+
+ // If in the customizer always display the link.
+ if ( is_customize_preview() ) {
+ return '<a href="#" class="ccpa-do-not-sell">' . self::get_optout_link_text() . '</a>';
+ }
+
+ // Load required scripts if the shortcode/widget is loaded on the page.
+ self::enqueue_scripts();
+
+ return '<a href="#" class="ccpa-do-not-sell" style="display: none;">' . self::get_optout_link_text() . '</a>';
+ }
+
+ /**
+ * Gets the text used to link to the opt-out page. By law must read 'Do Not Sell My Personal Information'.
+ *
+ * @return mixed|string|void The text of the opt-out link.
+ */
+ private static function get_optout_link_text() {
+ return __( 'Do Not Sell My Personal Information', 'jetpack' );
+ }
+
+ /**
+ * Builds the value of the opt-out cookie.
+ * Format matches spec of [IAB U.S. Privacy String](https://github.com/InteractiveAdvertisingBureau/USPrivacy/blob/master/CCPA/US%20Privacy%20String.md).
+ *
+ * @param bool $optout True if setting an opt-out cookie.
+ *
+ * @return string The value to be stored in the opt-out cookie.
+ */
+ private static function build_iab_privacy_string( $optout ) {
+ $values = array(
+ '1', // Specification version.
+ 'Y', // Explicit notice to opt-out provided.
+ $optout ? 'Y' : 'N', // Opt-out of data sale.
+ 'N', // Signatory to IAB Limited Service Provider Agreement.
+ );
+
+ return join( $values );
+ }
+
+ /**
+ * Gets the name to be used for the opt-out cookie.
+ * Name matches spec of [IAB U.S. Privacy String](https://github.com/InteractiveAdvertisingBureau/USPrivacy/blob/master/CCPA/US%20Privacy%20String.md).
+ *
+ * @return string The name of the opt-out cookie.
+ */
+ private static function get_cookie_name() {
+ return 'usprivacy';
+ }
+
+ /**
+ * Gets the domain to be used for the opt-out cookie.
+ * Use the site's custom domain, or if the site has a wordpress.com subdomain, use .wordpress.com to share the cookie.
+ *
+ * @return string The domain to set for the opt-out cookie.
+ */
+ public static function get_cookie_domain() {
+ $host = 'localhost';
+
+ if ( isset( $_SERVER['HTTP_HOST'] ) ) {
+ $host = $_SERVER['HTTP_HOST'];
+ }
+
+ return '.wordpress.com' === substr( $host, -strlen( '.wordpress.com' ) ) ? '.wordpress.com' : '.' . $host;
+ }
+
+ /**
+ * Gets the value to be used when an opt-out cookie is set.
+ *
+ * @return string The value to store in the opt-out cookie.
+ */
+ private static function get_optout_cookie_string() {
+ return self::build_iab_privacy_string( true );
+ }
+
+ /**
+ * Gets the value to be used when an opt-in cookie is set.
+ *
+ * @return string The value to store in the opt-in cookie.
+ */
+ private static function get_optin_cookie_string() {
+ return self::build_iab_privacy_string( false );
+ }
+
+ /**
+ * Sets a cookie in the HTTP response to opt-out visitors from data sales.
+ *
+ * @return bool True if the cookie could be set.
+ */
+ private static function set_optout_cookie() {
+ return setcookie( self::get_cookie_name(), self::get_optout_cookie_string(), time() + ( 5 * YEAR_IN_SECONDS ), '/', self::get_cookie_domain() );
+ }
+
+ /**
+ * Sets a cookie in the HTTP response to opt-in visitors from data sales.
+ *
+ * @return bool True if the cookie could be set.
+ */
+ private static function set_optin_cookie() {
+ return setcookie( self::get_cookie_name(), self::get_optin_cookie_string(), time() + YEAR_IN_SECONDS, '/', self::get_cookie_domain() );
+ }
+
+ /**
+ * Handler for opt-in/opt-out AJAX request.
+ */
+ public static function handle_optout_request() {
+ check_ajax_referer( 'ccpa_optout', 'security' );
+
+ $optout = 'true' === $_POST['optout'];
+ $optout ? self::set_optout_cookie() : self::set_optin_cookie();
+
+ wp_send_json_success( $optout );
+ }
+
+ /**
+ * Handler for modal popup notice markup.
+ */
+ public static function handle_optout_markup() {
+ check_ajax_referer( 'ccpa_optout', 'security' );
+
+ header( 'Content-Type: text/html; charset=utf-8' );
+ $policy_url = get_option( 'wordads_ccpa_privacy_policy_url' );
+
+ $default_disclosure = sprintf(
+ '<p>%s</p>
+ <p>%s</p>
+ <p><strong>%s</strong></p>
+ <p>%s</p>
+ <p>%s</p>
+ <p>%s</p>',
+ esc_html__( 'If you are a California resident, you have the right to opt out of the "sale" of your "personal information" under the California Consumer Privacy Act ("CCPA")', 'jetpack' ),
+ esc_html__( 'This site operates an ads program in partnership with third-party vendors who help place ads. Advertising cookies enable these ads partners to serve ads, to personalize those ads based on information like visits to this site and other sites on the internet, and to understand how users engage with those ads. Cookies collect certain information as part of the ads program, and we provide the following categories of information to third-party advertising partners: online identifiers and internet or other network or device activity (such as unique identifiers, cookie information, and IP address), and geolocation data (approximate location information from your IP address). This type of sharing with ads partners may be considered a "sale" of personal information under the CCPA.', 'jetpack' ),
+ esc_html__( 'We never share information that identifies you personally, like your name or email address, as part of the advertising program.', 'jetpack' ),
+ esc_html__( 'If you\'d prefer not to see ads that are personalized based on information from your visits to this site, you can opt-out by toggling the "Do Not Sell My Personal Information" switch below to the On position.', 'jetpack' ),
+ esc_html__( 'This opt-out is managed through cookies, so if you delete cookies, your browser is set to delete cookies automatically after a certain length of time, or if you visit this site with a different browser, you\'ll need to make this selection again.', 'jetpack' ),
+ esc_html__( 'After you opt-out you may still see ads, including personalized ones, on this site and other sites - they just won\'t be personalized based on information from your visits to this site.', 'jetpack' )
+ );
+
+ /**
+ * Filter on the default CCPA disclosure text.
+ *
+ * @see https://jetpack.com/support/ads/
+ *
+ * @module wordads
+ *
+ * @since 8.7.0
+ *
+ * @param string Default CCPA disclosure for WordAds.
+ */
+ $disclosure = apply_filters( 'wordads_ccpa_disclosure', $default_disclosure );
+ ?>
+ <div id="ccpa-modal" class="cleanslate">
+ <div class="components-modal__screen-overlay">
+ <div tabindex="0"></div>
+ <div role="dialog" aria-labelledby="dialog_label" aria-modal="true" class="components-modal__frame">
+ <div class="components-modal__content ccpa-settings">
+ <div class="components-modal__header">
+ <div class="components-modal__header-heading-container">
+ <h1 id="dialog_label" class="components-modal__header-heading"><?php esc_html_e( 'Do Not Sell My Personal Information', 'jetpack' ); ?></h1>
+ </div>
+ <button type="button" aria-label="<?php esc_html_e( 'Close dialog', 'jetpack' ); ?>" class="components-button components-icon-button">
+ <svg aria-hidden="true" role="img" focusable="false" class="dashicon dashicons-no-alt" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
+ <path d="M14.95 6.46L11.41 10l3.54 3.54-1.41 1.41L10 11.42l-3.53 3.53-1.42-1.42L8.58 10 5.05 6.47l1.42-1.42L10 8.58l3.54-3.53z"></path>
+ </svg>
+ </button>
+ </div>
+ <div class="ccpa-settings__intro-txt"><?php echo wp_kses( $disclosure, wp_kses_allowed_html( 'post' ) ); ?></div>
+ <div class="components-modal__footer">
+ <div role="form" class="ccpa-setting">
+ <label>
+ <span class="ccpa-setting__header"><?php esc_html_e( 'Do Not Sell My Personal Information', 'jetpack' ); ?></span>
+ <span class="ccpa-setting__toggle components-form-toggle">
+ <input id="ccpa-opt-out" class="components-form-toggle__input opt-out" type="checkbox" value="false" autofocus />
+ <span class="components-form-toggle__track"></span>
+ <span class="components-form-toggle__thumb"></span>
+ <svg class="components-form-toggle__on" width="2" height="6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2 6" role="img" aria-hidden="true" focusable="false"><path d="M0 0h2v6H0z"></path></svg>
+ <svg class="components-form-toggle__off" width="6" height="6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 6" role="img" aria-hidden="true" focusable="false"><path d="M3 1.5c.8 0 1.5.7 1.5 1.5S3.8 4.5 3 4.5 1.5 3.8 1.5 3 2.2 1.5 3 1.5M3 0C1.3 0 0 1.3 0 3s1.3 3 3 3 3-1.3 3-3-1.3-3-3-3z"></path></svg>
+ </span>
+ <span class="ccpa-setting__toggle-text ccpa-setting__toggle-text-off"><?php esc_html_e( 'Off', 'jetpack' ); ?></span>
+ <span class="ccpa-setting__toggle-text ccpa-setting__toggle-text-on"><?php esc_html_e( 'On', 'jetpack' ); ?></span>
+ </label>
+ </div>
+ <div class="components-modal__footer-bottom">
+ <button class="components-button is-button is-primary"><?php esc_html_e( 'Close', 'jetpack' ); ?></button>
+ <?php
+ if ( $policy_url ) {
+ printf(
+ '<a href="%s" class="ccpa-privacy">%s</a>',
+ esc_url( $policy_url ),
+ esc_html__( 'View Privacy Policy', 'jetpack' )
+ );
+ }
+ ?>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php
+
+ wp_die();
+ }
+}
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-ccpa-do-not-sell-link-widget.php b/plugins/jetpack/modules/wordads/php/class-wordads-ccpa-do-not-sell-link-widget.php
new file mode 100644
index 00000000..9801f74e
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-ccpa-do-not-sell-link-widget.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * CCPA Do Not Sell Widget
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Class WordAds_Ccpa_Do_Not_Sell_Link_Widget
+ */
+class WordAds_Ccpa_Do_Not_Sell_Link_Widget extends WP_Widget {
+
+ /**
+ * WordAds_Ccpa_Do_Not_Sell_Link_Widget constructor.
+ */
+ public function __construct() {
+ parent::__construct(
+ 'wordads_ccpa_do_not_sell_link_widget',
+ /** This filter is documented in modules/widgets/facebook-likebox.php */
+ apply_filters( 'jetpack_widget_name', __( 'Do Not Sell Link (CCPA)', 'jetpack' ) ),
+ array(
+ 'description' => __( 'Inserts "Do Not Sell My Personal Information" link required by the California Consumer Privacy Act (CCPA)', 'jetpack' ),
+ 'customize_selective_refresh' => true,
+ )
+ );
+ }
+
+ /**
+ * Widget outputter.
+ *
+ * @param array $args Widget args.
+ * @param array $instance Widget instance.
+ */
+ public function widget( $args, $instance ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ echo $args['before_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo do_shortcode( '[ccpa-do-not-sell-link]' );
+ echo $args['after_widget']; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ }
+}
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-cron.php b/plugins/jetpack/modules/wordads/php/class-wordads-cron.php
new file mode 100644
index 00000000..73781585
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-cron.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * WordAds cron tasks.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * WordAds cron tasks
+ *
+ * @since 4.5.0
+ */
+class WordAds_Cron {
+
+ /**
+ * Add the actions the cron tasks will use
+ *
+ * @since 4.5.0
+ */
+ public function __construct() {
+ add_action( 'wordads_cron_status', array( $this, 'update_wordads_status' ) );
+ }
+
+ /**
+ * Registered scheduled events on activation
+ *
+ * @since 4.5.0
+ */
+ public static function activate() {
+ wp_schedule_event( time(), 'daily', 'wordads_cron_status' );
+ }
+
+ /**
+ * Clear scheduled hooks on deactivation
+ *
+ * @since 4.5.0
+ */
+ public static function deactivate() {
+ wp_clear_scheduled_hook( 'wordads_cron_status' );
+ }
+
+ /**
+ * Grab WordAds status from WP.com API
+ *
+ * @since 4.5.0
+ */
+ public static function update_wordads_status() {
+ WordAds_API::update_wordads_status_from_api();
+ }
+}
+
+global $wordads_cron;
+$wordads_cron = new WordAds_Cron();
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-params.php b/plugins/jetpack/modules/wordads/php/class-wordads-params.php
new file mode 100644
index 00000000..5aa798d5
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-params.php
@@ -0,0 +1,257 @@
+<?php
+/**
+ * WordAds Param Class file.
+ *
+ * @package automattic/jetpack
+ */
+
+use Automattic\Jetpack\Status;
+
+/**
+ * Class WordAds_Params
+ *
+ * Sets parameters for WordAds.
+ */
+class WordAds_Params {
+
+ /**
+ * Setup parameters for serving the ads
+ *
+ * @since 4.5.0
+ */
+ public function __construct() {
+ // WordAds setting => default.
+ $settings = array(
+ 'wordads_approved' => false,
+ 'wordads_active' => false,
+ 'wordads_house' => true,
+ 'wordads_unsafe' => false,
+ 'enable_header_ad' => true,
+ 'wordads_second_belowpost' => true,
+ 'wordads_display_front_page' => true,
+ 'wordads_display_post' => true,
+ 'wordads_display_page' => true,
+ 'wordads_display_archive' => true,
+ 'wordads_custom_adstxt' => '',
+ 'wordads_custom_adstxt_enabled' => false,
+ 'wordads_ccpa_enabled' => false,
+ 'wordads_ccpa_privacy_policy_url' => get_option( 'wp_page_for_privacy_policy' ) ? get_permalink( (int) get_option( 'wp_page_for_privacy_policy' ) ) : '',
+ );
+
+ // grab settings, or set as default if it doesn't exist.
+ $this->options = array();
+ foreach ( $settings as $setting => $default ) {
+ $option = get_option( $setting, null );
+
+ if ( is_null( $option ) ) {
+
+ // Handle retroactively setting wordads_custom_adstxt_enabled to true if custom ads.txt content is already entered.
+ if ( 'wordads_custom_adstxt_enabled' === $setting ) {
+ $default = get_option( 'wordads_custom_adstxt' ) !== '';
+ }
+
+ update_option( $setting, $default, true );
+ $option = $default;
+ }
+
+ $this->options[ $setting ] = is_bool( $default ) ? (bool) $option : $option;
+ }
+
+ $host = 'localhost';
+ if ( isset( $_SERVER['HTTP_HOST'] ) ) {
+ $host = $_SERVER['HTTP_HOST'];
+ }
+
+ $this->url = ( is_ssl() ? 'https' : 'http' ) . '://' . $host . $_SERVER['REQUEST_URI'];
+ if ( ! ( false === strpos( $this->url, '?' ) ) && ! isset( $_GET['p'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $this->url = substr( $this->url, 0, strpos( $this->url, '?' ) );
+ }
+
+ $this->cloudflare = self::is_cloudflare();
+ $this->blog_id = Jetpack::get_option( 'id', 0 );
+ $this->mobile_device = jetpack_is_mobile( 'any', true );
+ $this->targeting_tags = array(
+ 'WordAds' => 1,
+ 'BlogId' => ( new Status() )->is_offline_mode() ? 0 : Jetpack_Options::get_option( 'id' ),
+ 'Domain' => esc_js( wp_parse_url( home_url(), PHP_URL_HOST ) ),
+ 'PageURL' => esc_js( $this->url ),
+ 'LangId' => false !== strpos( get_bloginfo( 'language' ), 'en' ) ? 1 : 0, // TODO something else?
+ 'AdSafe' => 1, // TODO.
+ );
+ }
+
+ /**
+ * Is this a mobile device?
+ *
+ * @return boolean true if the user is browsing on a mobile device (iPad not included)
+ *
+ * @since 4.5.0
+ */
+ public function is_mobile() {
+ return ! empty( $this->mobile_device );
+ }
+
+ /**
+ * Is this site served by CloudFlare?
+ *
+ * @return boolean true if site is being served via CloudFlare
+ *
+ * @since 4.5.0
+ */
+ public static function is_cloudflare() {
+ if (
+ defined( 'WORDADS_CLOUDFLARE' )
+ || isset( $_SERVER['HTTP_CF_CONNECTING_IP'] )
+ || isset( $_SERVER['HTTP_CF_IPCOUNTRY'] )
+ || isset( $_SERVER['HTTP_CF_VISITOR'] )
+ ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Is this an iOS device?
+ *
+ * @return boolean true if user is browsing in iOS device
+ *
+ * @since 4.5.0
+ */
+ public function is_ios() {
+ return in_array( $this->get_device(), array( 'ipad', 'iphone', 'ipod' ), true );
+ }
+
+ /**
+ * Returns the user's device (see user-agent.php) or 'desktop'
+ *
+ * @return string user device
+ *
+ * @since 4.5.0
+ */
+ public function get_device() {
+ global $agent_info;
+
+ if ( ! empty( $this->mobile_device ) ) {
+ return $this->mobile_device;
+ }
+
+ if ( $agent_info->is_ipad() ) {
+ return 'ipad';
+ }
+
+ return 'desktop';
+ }
+
+ /**
+ * Get page type.
+ *
+ * @return string The type of page that is being loaded
+ *
+ * @since 4.5.0
+ */
+ public function get_page_type() {
+ if ( ! empty( $this->page_type ) ) {
+ return $this->page_type;
+ }
+
+ if ( self::is_static_home() ) {
+ $this->page_type = 'static_home';
+ } elseif ( is_home() ) {
+ $this->page_type = 'home';
+ } elseif ( is_page() ) {
+ $this->page_type = 'page';
+ } elseif ( is_single() ) {
+ $this->page_type = 'post';
+ } elseif ( is_search() ) {
+ $this->page_type = 'search';
+ } elseif ( is_category() ) {
+ $this->page_type = 'category';
+ } elseif ( is_archive() ) {
+ $this->page_type = 'archive';
+ } else {
+ $this->page_type = 'wtf';
+ }
+
+ return $this->page_type;
+ }
+
+ /**
+ * Get IPW code.
+ *
+ * @return int The page type code for ipw config
+ *
+ * @since 5.6.0
+ */
+ public function get_page_type_ipw() {
+ if ( ! empty( $this->page_type_ipw ) ) {
+ return $this->page_type_ipw;
+ }
+
+ $page_type_ipw = 6;
+ if ( self::is_static_home() || is_home() || is_front_page() ) {
+ $page_type_ipw = 0;
+ } elseif ( is_page() ) {
+ $page_type_ipw = 2;
+ } elseif ( is_singular() ) {
+ $page_type_ipw = 1;
+ } elseif ( is_search() ) {
+ $page_type_ipw = 4;
+ } elseif ( is_category() || is_tag() || is_archive() || is_author() ) {
+ $page_type_ipw = 3;
+ } elseif ( is_404() ) {
+ $page_type_ipw = 5;
+ }
+
+ $this->page_type_ipw = $page_type_ipw;
+ return $page_type_ipw;
+ }
+
+ /**
+ * Returns true if page is static home
+ *
+ * @return boolean true if page is static home
+ *
+ * @since 4.5.0
+ */
+ public static function is_static_home() {
+ return is_front_page() &&
+ 'page' === get_option( 'show_on_front' ) &&
+ get_option( 'page_on_front' );
+ }
+
+ /**
+ * Logic for if we should show an ad
+ *
+ * @since 4.5.0
+ */
+ public function should_show() {
+ global $wp_query;
+ if ( ( is_front_page() || is_home() ) && ! $this->options['wordads_display_front_page'] ) {
+ return false;
+ }
+
+ if ( is_single() && ! $this->options['wordads_display_post'] ) {
+ return false;
+ }
+
+ if ( is_page() && ! $this->options['wordads_display_page'] ) {
+ return false;
+ }
+
+ if ( ( is_archive() || is_search() ) && ! $this->options['wordads_display_archive'] ) {
+ return false;
+ }
+
+ if ( is_single() || ( is_page() && ! is_home() ) ) {
+ return true;
+ }
+
+ // TODO this would be a good place for allowing the user to specify.
+ if ( ( is_home() || is_archive() || is_search() ) && 0 === $wp_query->current_post ) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/modules/wordads/php/class-wordads-sidebar-widget.php b/plugins/jetpack/modules/wordads/php/class-wordads-sidebar-widget.php
new file mode 100644
index 00000000..5d59737a
--- /dev/null
+++ b/plugins/jetpack/modules/wordads/php/class-wordads-sidebar-widget.php
@@ -0,0 +1,153 @@
+<?php
+/**
+ * Widget for adding ads to a sidebar.
+ *
+ * @package automattic/jetpack
+ */
+
+/**
+ * Widget for inserting an ad into your sidebar
+ *
+ * @since 4.5.0
+ */
+class WordAds_Sidebar_Widget extends WP_Widget {
+
+ /**
+ * Allowed tags.
+ *
+ * @var string[]
+ */
+ private static $allowed_tags = array( 'mrec', 'wideskyscraper', 'leaderboard' );
+
+ /**
+ * Number of widgets.
+ *
+ * @var int
+ */
+ private static $num_widgets = 0;
+
+ /**
+ * WordAds_Sidebar_Widget constructor.
+ */
+ public function __construct() {
+ parent::__construct(
+ 'wordads_sidebar_widget',
+ /** This filter is documented in modules/widgets/facebook-likebox.php */
+ apply_filters( 'jetpack_widget_name', 'Ads' ),
+ array(
+ 'description' => __( 'Insert an ad unit wherever you can place a widget.', 'jetpack' ),
+ 'customize_selective_refresh' => true,
+ )
+ );
+ }
+
+ /**
+ * The Widget outputter.
+ *
+ * @param array $args Widget args.
+ * @param array $instance The Widget instance.
+ *
+ * @return bool|void
+ */
+ public function widget( $args, $instance ) {
+ global $wordads;
+ if ( $wordads->should_bail() ) {
+ return false;
+ }
+
+ if ( ! isset( $instance['unit'] ) ) {
+ $instance['unit'] = 'mrec';
+ }
+
+ self::$num_widgets++;
+ $about = __( 'Advertisements', 'jetpack' );
+ $width = WordAds::$ad_tag_ids[ $instance['unit'] ]['width'];
+ $height = WordAds::$ad_tag_ids[ $instance['unit'] ]['height'];
+ $unit_id = 1 === self::$num_widgets ? 3 : self::$num_widgets + 3; // 2nd belowpost is '4'
+ $section_id = 0 === $wordads->params->blog_id ?
+ WORDADS_API_TEST_ID :
+ $wordads->params->blog_id . $unit_id;
+
+ $snippet = '';
+ if ( $wordads->option( 'wordads_house', true ) ) {
+ $unit = 'mrec';
+ if ( 'leaderboard' === $instance['unit'] && ! $this->params->mobile_device ) {
+ $unit = 'leaderboard';
+ } elseif ( 'wideskyscraper' === $instance['unit'] ) {
+ $unit = 'widesky';
+ }
+
+ $snippet = $wordads->get_house_ad( $unit );
+ } else {
+ // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
+ echo $wordads->get_ad_snippet( $section_id, $height, $width, 'widget' );
+ return;
+ }
+
+ ?>
+ <div class="wpcnt">
+ <div class="wpa">
+ <span class="wpa-about"><?php echo esc_html( $about ); ?></span>
+ <div class="u <?php echo esc_attr( $instance['unit'] ); ?>">
+ <?php echo $snippet; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
+ </div>
+ </div>
+ </div>
+ <?php
+ }
+
+ /**
+ * The widget settings form.
+ *
+ * @param array $instance Widget instance.
+ *
+ * @return string|void
+ */
+ public function form( $instance ) {
+ // ad unit type.
+ if ( isset( $instance['unit'] ) ) {
+ $unit = $instance['unit'];
+ } else {
+ $unit = 'mrec';
+ }
+ ?>
+ <p>
+ <label for="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>"><?php esc_html_e( 'Tag Dimensions:', 'jetpack' ); ?></label>
+ <select class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'unit' ) ); ?>">
+ <?php
+ foreach ( WordAds::$ad_tag_ids as $ad_unit => $properties ) {
+ if ( ! in_array( $ad_unit, self::$allowed_tags, true ) ) {
+ continue;
+ }
+
+ $splits = explode( '_', $properties['tag'] );
+ $unit_pretty = "{$splits[0]} {$splits[1]}";
+ $selected = selected( $ad_unit, $unit, false );
+ echo "<option value='", esc_attr( $ad_unit ) ,"' ", esc_attr( $selected ), '>', esc_html( $unit_pretty ) , '</option>';
+ }
+ ?>
+ </select>
+ </p>
+ <?php
+ }
+
+ /**
+ * The Widget updater.
+ *
+ * @param array $new_instance The revised instance.
+ * @param array $old_instance Original instance.
+ *
+ * @return array
+ */
+ public function update( $new_instance, $old_instance ) {
+ $instance = $old_instance;
+
+ if ( in_array( $new_instance['unit'], self::$allowed_tags, true ) ) {
+ $instance['unit'] = $new_instance['unit'];
+ } else {
+ $instance['unit'] = 'mrec';
+ }
+
+ return $instance;
+ }
+}
diff --git a/plugins/jetpack/modules/wordads/php/networks/amazon.php b/plugins/jetpack/modules/wordads/php/networks/amazon.php
index 19f53fbe..62bf0d91 100644
--- a/plugins/jetpack/modules/wordads/php/networks/amazon.php
+++ b/plugins/jetpack/modules/wordads/php/networks/amazon.php
@@ -1,3 +1,8 @@
<?php
+/**
+ * Amazon Network.
+ *
+ * @package automattic/jetpack
+ */
-// stub
+// stub.
diff --git a/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php b/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php
index 0ddaf7c4..6fc48967 100644
--- a/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php
+++ b/plugins/jetpack/modules/wpcom-block-editor/class-jetpack-wpcom-block-editor.php
@@ -4,9 +4,12 @@
* Allow new block editor posts to be composed on WordPress.com.
* This is auto-loaded as of Jetpack v7.4 for sites connected to WordPress.com only.
*
- * @package Jetpack
+ * @package automattic/jetpack
*/
+use Automattic\Jetpack\Connection\Tokens;
+use Automattic\Jetpack\Status\Host;
+
/**
* WordPress.com Block editor for Jetpack
*/
@@ -19,6 +22,13 @@ class Jetpack_WPCOM_Block_Editor {
private $nonce_user_id;
/**
+ * An array to store auth cookies until we can determine if they should be sent
+ *
+ * @var array
+ */
+ private $set_cookie_args;
+
+ /**
* Singleton
*/
public static function init() {
@@ -35,15 +45,32 @@ class Jetpack_WPCOM_Block_Editor {
* Jetpack_WPCOM_Block_Editor constructor.
*/
private function __construct() {
+ $this->set_cookie_args = array();
+ add_action( 'init', array( $this, 'init_actions' ) );
+ }
+
+ /**
+ * Add in all hooks.
+ */
+ public function init_actions() {
+ // Bail early if Jetpack's block editor extensions are disabled on the site.
+ /* This filter is documented in class.jetpack-gutenberg.php */
+ if ( ! apply_filters( 'jetpack_gutenberg', true ) ) {
+ return;
+ }
+
if ( $this->is_iframed_block_editor() ) {
add_action( 'admin_init', array( $this, 'disable_send_frame_options_header' ), 9 );
add_filter( 'admin_body_class', array( $this, 'add_iframed_body_class' ) );
}
+ require_once __DIR__ . '/functions.editor-type.php';
+ add_action( 'edit_form_top', 'Jetpack\EditorType\remember_classic_editor' );
add_action( 'login_init', array( $this, 'allow_block_editor_login' ), 1 );
add_action( 'enqueue_block_editor_assets', array( $this, 'enqueue_block_editor_assets' ), 9 );
add_action( 'enqueue_block_assets', array( $this, 'enqueue_block_assets' ) );
add_filter( 'mce_external_plugins', array( $this, 'add_tinymce_plugins' ) );
+ add_filter( 'block_editor_settings_all', 'Jetpack\EditorType\remember_block_editor', 10, 2 );
$this->enable_cross_site_auth_cookies();
}
@@ -61,7 +88,7 @@ class Jetpack_WPCOM_Block_Editor {
}
/**
- * Prevents frame options header from firing if this is a whitelisted iframe request.
+ * Prevents frame options header from firing if this is a allowed iframe request.
*/
public function disable_send_frame_options_header() {
// phpcs:ignore WordPress.Security.NonceVerification
@@ -71,7 +98,7 @@ class Jetpack_WPCOM_Block_Editor {
}
/**
- * Adds custom admin body class if this is a whitelisted iframe request.
+ * Adds custom admin body class if this is a allowed iframe request.
*
* @param string $classes Admin body classes.
* @return string
@@ -86,6 +113,25 @@ class Jetpack_WPCOM_Block_Editor {
}
/**
+ * Checks to see if cookie can be set in current context. If 3rd party cookie blocking
+ * is enabled the editor can't load in iFrame, so emiting X-Frame-Options: DENY will
+ * force the editor to break out of the iFrame.
+ */
+ private function check_iframe_cookie_setting() {
+ if ( ! isset( $_SERVER['QUERY_STRING'] ) || ! strpos( $_SERVER['QUERY_STRING'], 'calypsoify%3D1%26block-editor' ) || isset( $_COOKIE['wordpress_test_cookie'] ) ) {
+ return;
+ }
+
+ if ( empty( $_GET['calypsoify_cookie_check'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ header( 'Location: ' . esc_url_raw( $_SERVER['REQUEST_URI'] . '&calypsoify_cookie_check=true' ) );
+ exit;
+ }
+
+ header( 'X-Frame-Options: DENY' );
+ exit;
+ }
+
+ /**
* Allows to iframe the login page if a user is logged out
* while trying to access the block editor from wordpress.com.
*/
@@ -95,6 +141,8 @@ class Jetpack_WPCOM_Block_Editor {
return;
}
+ $this->check_iframe_cookie_setting();
+
// phpcs:ignore WordPress.Security.NonceVerification
$query = wp_parse_url( urldecode( $_REQUEST['redirect_to'] ), PHP_URL_QUERY );
$args = wp_parse_args( $query );
@@ -105,7 +153,7 @@ class Jetpack_WPCOM_Block_Editor {
// If SSO is active, we'll let WordPress.com handle authentication...
if ( Jetpack::is_module_active( 'sso' ) ) {
// ...but only if it's not an Atomic site. They already do that.
- if ( ! jetpack_is_atomic_site() ) {
+ if ( ! ( new Host() )->is_woa_site() ) {
add_filter( 'jetpack_sso_bypass_login_forward_wpcom', '__return_true' );
}
} else {
@@ -159,7 +207,7 @@ class Jetpack_WPCOM_Block_Editor {
}
/**
- * Checks whether this is a whitelisted iframe request.
+ * Checks whether this is an allowed iframe request.
*
* @param string $nonce Nonce to verify.
* @return bool
@@ -200,7 +248,7 @@ class Jetpack_WPCOM_Block_Editor {
return false;
}
- $token = Jetpack_Data::get_access_token( $this->nonce_user_id );
+ $token = ( new Tokens() )->get_access_token( $this->nonce_user_id );
if ( ! $token ) {
return false;
}
@@ -244,7 +292,7 @@ class Jetpack_WPCOM_Block_Editor {
*/
public function filter_salt( $salt, $scheme ) {
if ( 'jetpack_frame_nonce' === $scheme ) {
- $token = Jetpack_Data::get_access_token( $this->nonce_user_id );
+ $token = ( new Tokens() )->get_access_token( $this->nonce_user_id );
if ( $token ) {
$salt = $token->secret;
@@ -258,6 +306,13 @@ class Jetpack_WPCOM_Block_Editor {
* Enqueues the WordPress.com block editor integration assets for the editor.
*/
public function enqueue_block_editor_assets() {
+ global $pagenow;
+
+ // Bail if we're not in the post editor, but on the widget settings screen.
+ if ( is_customize_preview() || 'widgets.php' === $pagenow ) {
+ return;
+ }
+
$debug = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG;
$version = gmdate( 'Ymd' );
@@ -269,6 +324,7 @@ class Jetpack_WPCOM_Block_Editor {
array(
'jquery',
'lodash',
+ 'wp-annotations',
'wp-compose',
'wp-data',
'wp-editor',
@@ -283,11 +339,6 @@ class Jetpack_WPCOM_Block_Editor {
'wpcom-block-editor-default-editor-script',
'wpcomGutenberg',
array(
- 'switchToClassic' => array(
- 'isVisible' => $this->is_iframed_block_editor(),
- 'label' => __( 'Switch to Classic Editor', 'jetpack' ),
- 'url' => Jetpack_Calypsoify::getInstance()->get_switch_to_classic_editor_url(),
- ),
'richTextToolbar' => array(
'justify' => __( 'Justify', 'jetpack' ),
'underline' => __( 'Underline', 'jetpack' ),
@@ -295,7 +346,7 @@ class Jetpack_WPCOM_Block_Editor {
)
);
- if ( jetpack_is_atomic_site() ) {
+ if ( ( new Host() )->is_woa_site() ) {
wp_enqueue_script(
'wpcom-block-editor-wpcom-editor-script',
$debug
@@ -411,8 +462,29 @@ class Jetpack_WPCOM_Block_Editor {
add_action( 'set_auth_cookie', array( $this, 'set_samesite_auth_cookies' ), 10, 5 );
add_action( 'set_logged_in_cookie', array( $this, 'set_samesite_logged_in_cookies' ), 10, 4 );
- add_action( 'clear_auth_cookie', array( $this, 'clear_auth_cookies' ) );
- add_filter( 'send_auth_cookies', array( $this, 'disable_core_auth_cookies' ) );
+ add_filter( 'send_auth_cookies', array( $this, 'maybe_send_cookies' ), 9999 );
+ }
+
+ /**
+ * Checks if we've stored any cookies to send and then sends them
+ * if the send_auth_cookies value is true.
+ *
+ * @param bool $send_cookies The filtered value that determines whether to send auth cookies.
+ */
+ public function maybe_send_cookies( $send_cookies ) {
+
+ if ( ! empty( $this->set_cookie_args ) && $send_cookies ) {
+ array_map(
+ function ( $cookie ) {
+ call_user_func_array( 'jetpack_shim_setcookie', $cookie );
+ },
+ $this->set_cookie_args
+ );
+ $this->set_cookie_args = array();
+ return false;
+ }
+
+ return $send_cookies;
}
/**
@@ -456,7 +528,7 @@ class Jetpack_WPCOM_Block_Editor {
}
$samesite = $this->get_samesite_attr_for_auth_cookies( $secure );
- jetpack_shim_setcookie(
+ $this->set_cookie_args[] = array(
$auth_cookie_name,
$auth_cookie,
array(
@@ -466,10 +538,10 @@ class Jetpack_WPCOM_Block_Editor {
'secure' => $secure,
'httponly' => true,
'samesite' => $samesite,
- )
+ ),
);
- jetpack_shim_setcookie(
+ $this->set_cookie_args[] = array(
$auth_cookie_name,
$auth_cookie,
array(
@@ -479,7 +551,7 @@ class Jetpack_WPCOM_Block_Editor {
'secure' => $secure,
'httponly' => true,
'samesite' => $samesite,
- )
+ ),
);
}
@@ -507,7 +579,7 @@ class Jetpack_WPCOM_Block_Editor {
$samesite = $this->get_samesite_attr_for_auth_cookies( $secure_logged_in_cookie );
- jetpack_shim_setcookie(
+ $this->set_cookie_args[] = array(
LOGGED_IN_COOKIE,
$logged_in_cookie,
array(
@@ -517,11 +589,11 @@ class Jetpack_WPCOM_Block_Editor {
'secure' => $secure_logged_in_cookie,
'httponly' => true,
'samesite' => $samesite,
- )
+ ),
);
if ( COOKIEPATH !== SITECOOKIEPATH ) {
- jetpack_shim_setcookie(
+ $this->set_cookie_args[] = array(
LOGGED_IN_COOKIE,
$logged_in_cookie,
array(
@@ -531,56 +603,10 @@ class Jetpack_WPCOM_Block_Editor {
'secure' => $secure_logged_in_cookie,
'httponly' => true,
'samesite' => $samesite,
- )
+ ),
);
}
}
-
- /**
- * Prevents the default core auth cookies from being generated so they don't collide with our cross-site cookies.
- *
- * @return bool Whether the default core auth cookies should be generated.
- */
- public function disable_core_auth_cookies() {
- return false;
- }
-
- /**
- * Removes all of the cookies associated with authentication.
- *
- * This is copied from core's `wp_clear_auth_cookie` since disabling the core auth cookies prevents also the auth
- * cookies from being cleared.
- *
- * @see wp_clear_auth_cookie
- */
- public function clear_auth_cookies() {
- // Auth cookies.
- setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH, COOKIE_DOMAIN );
- setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH, COOKIE_DOMAIN );
- setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN );
- setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN );
- setcookie( LOGGED_IN_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- setcookie( LOGGED_IN_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
-
- // Settings cookies.
- setcookie( 'wp-settings-' . get_current_user_id(), ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH );
- setcookie( 'wp-settings-time-' . get_current_user_id(), ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH );
-
- // Old cookies.
- setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- setcookie( AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
- setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
-
- // Even older cookies.
- setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
- setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
-
- // Post password cookie.
- setcookie( 'wp-postpass_' . COOKIEHASH, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
- }
}
Jetpack_WPCOM_Block_Editor::init();
diff --git a/plugins/jetpack/modules/wpcom-block-editor/functions.editor-type.php b/plugins/jetpack/modules/wpcom-block-editor/functions.editor-type.php
new file mode 100644
index 00000000..a0ba6fe4
--- /dev/null
+++ b/plugins/jetpack/modules/wpcom-block-editor/functions.editor-type.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * This file contains some 'remember' functions inspired by the core Classic Editor Plugin
+ * Used to align the 'last editor' metadata so that it is set on all Jetpack and WPCOM sites
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Jetpack\EditorType;
+
+/**
+ * Remember when the classic editor was used to edit a post.
+ *
+ * @param object $post The post being editted.
+ */
+function remember_classic_editor( $post ) {
+ $post_type = get_post_type( $post );
+
+ if ( $post_type && post_type_supports( $post_type, 'editor' ) ) {
+ remember_editor( $post->ID, 'classic-editor' );
+ }
+}
+
+/**
+ * Remember when the block editor was used to edit a post.
+ *
+ * @param array $editor_settings This is hooked into a filter and this is the settings that are passed in.
+ * @param WP_Block_Editor_Context $post The block editor context.
+ *
+ * @return array The unmodified $editor_settings parameter.
+ */
+function remember_block_editor( $editor_settings, $post ) {
+ if ( ! empty( $post->post ) ) {
+ $post = $post->post;
+ }
+
+ if ( empty( $post ) ) {
+ return $editor_settings;
+ }
+
+ $post_type = get_post_type( $post );
+ if ( $post_type && can_edit_post_type( $post_type ) ) {
+ remember_editor( $post->ID, 'block-editor' );
+ }
+
+ return $editor_settings;
+}
+
+/**
+ * Sets the metadata for the specified post and editor.
+ *
+ * @param int $post_id The ID of the post to set the metadata for.
+ * @param string $editor String name of the editor, 'classic-editor' or 'block-editor'.
+ */
+function remember_editor( $post_id, $editor ) {
+ if ( get_post_meta( $post_id, '_last_editor_used_jetpack', true ) !== $editor ) {
+ update_post_meta( $post_id, '_last_editor_used_jetpack', $editor );
+ }
+}
+
+/**
+ * Checks whether the block editor can be used with the given post type.
+ *
+ * @param string $post_type The post type to check.
+ * @return bool Whether the block editor can be used to edit the supplied post type.
+ */
+function can_edit_post_type( $post_type ) {
+ $can_edit = false;
+
+ if ( function_exists( 'gutenberg_can_edit_post_type' ) ) {
+ $can_edit = gutenberg_can_edit_post_type( $post_type );
+ } elseif ( function_exists( 'use_block_editor_for_post_type' ) ) {
+ $can_edit = use_block_editor_for_post_type( $post_type );
+ }
+
+ return $can_edit;
+}
diff --git a/plugins/jetpack/modules/wpcom-tos/wpcom-tos.php b/plugins/jetpack/modules/wpcom-tos/wpcom-tos.php
new file mode 100644
index 00000000..e7277be4
--- /dev/null
+++ b/plugins/jetpack/modules/wpcom-tos/wpcom-tos.php
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Handles acceptance of WordPress.com Terms of Service for sites connected to WP.com.
+ *
+ * This is auto-loaded as of Jetpack v8.3 for WP.com connected-sites only.
+ *
+ * @package automattic/jetpack
+ */
+
+namespace Automattic\Jetpack\TOS;
+
+use Automattic\Jetpack\Connection\Client;
+
+/**
+ * Makes a request to the WP.com legal endpoint to mark the Terms of Service as accepted.
+ */
+function accept_tos() {
+ check_ajax_referer( 'wp_ajax_action', '_nonce' );
+
+ $response = Client::wpcom_json_api_request_as_user(
+ '/legal',
+ '2',
+ array(
+ 'method' => 'POST',
+ ),
+ array(
+ 'action' => 'accept_tos',
+ )
+ );
+
+ if ( is_wp_error( $response ) ) {
+ wp_send_json_error( array( 'message' => __( 'Could not accept the Terms of Service. Please try again later.', 'jetpack' ) ) );
+ wp_die();
+ }
+
+ wp_send_json_success( $response );
+
+ wp_die();
+}
+
+add_action( 'wp_ajax_jetpack_accept_tos', __NAMESPACE__ . '\accept_tos' );
diff --git a/plugins/jetpack/modules/wpgroho.js b/plugins/jetpack/modules/wpgroho.js
index 631fdb5b..9261fe0c 100644
--- a/plugins/jetpack/modules/wpgroho.js
+++ b/plugins/jetpack/modules/wpgroho.js
@@ -1,43 +1,76 @@
/* global WPGroHo:true, Gravatar */
-WPGroHo = jQuery.extend(
- {
- my_hash: '',
- data: {},
- renderers: {},
- syncProfileData: function( hash, id ) {
- if ( ! WPGroHo.data[ hash ] ) {
- WPGroHo.data[ hash ] = {};
- jQuery( 'div.grofile-hash-map-' + hash + ' span' ).each( function() {
- WPGroHo.data[ hash ][ this.className ] = jQuery( this ).text();
- } );
+( function () {
+ var extend = function ( out ) {
+ out = out || {};
+
+ for ( var i = 1; i < arguments.length; i++ ) {
+ if ( ! arguments[ i ] ) continue;
+
+ for ( var key in arguments[ i ] ) {
+ if ( arguments[ i ].hasOwnProperty( key ) ) out[ key ] = arguments[ i ][ key ];
}
+ }
- WPGroHo.appendProfileData( WPGroHo.data[ hash ], hash, id );
- },
- appendProfileData: function( data, hash, id ) {
- for ( var key in data ) {
- if ( jQuery.isFunction( WPGroHo.renderers[ key ] ) ) {
- return WPGroHo.renderers[ key ]( data[ key ], hash, id, key );
+ return out;
+ };
+
+ WPGroHo = extend(
+ {
+ my_hash: '',
+ data: {},
+ renderers: {},
+ syncProfileData: function ( hash, id ) {
+ var hashElements;
+
+ if ( ! WPGroHo.data[ hash ] ) {
+ WPGroHo.data[ hash ] = {};
+ hashElements = document.querySelectorAll( 'div.grofile-hash-map-' + hash + ' span' );
+ for ( var i = 0; i < hashElements.length; i++ ) {
+ WPGroHo.data[ hash ][ hashElements[ i ].className ] = hashElements[ i ].innerText;
+ }
}
- jQuery( '#' + id )
- .find( 'h4' )
- .after( jQuery( '<p class="grav-extra ' + key + '" />' ).html( data[ key ] ) );
- }
+ WPGroHo.appendProfileData( WPGroHo.data[ hash ], hash, id );
+ },
+ appendProfileData: function ( data, hash, id ) {
+ for ( var key in data ) {
+ if ( 'function' === typeof WPGroHo.renderers[ key ] ) {
+ return WPGroHo.renderers[ key ]( data[ key ], hash, id, key );
+ }
+
+ var card = document.getElementById( id );
+ if ( card ) {
+ var heading = card.querySelector( 'h4' );
+ if ( heading ) {
+ var extra = document.createElement( 'p' );
+ extra.className = 'grav-extra ' + key;
+ extra.innerHTML = data[ key ];
+
+ heading.insertAdjacentElement( 'afterend', extra );
+ }
+ }
+ }
+ },
},
- },
- WPGroHo
-);
+ WPGroHo || {}
+ );
-jQuery( document ).ready( function() {
- if ( 'undefined' === typeof Gravatar ) {
- return;
- }
+ var jetpackHovercardsInit = function () {
+ if ( 'undefined' === typeof Gravatar ) {
+ return;
+ }
+
+ Gravatar.profile_cb = function ( h, d ) {
+ WPGroHo.syncProfileData( h, d );
+ };
- Gravatar.profile_cb = function( h, d ) {
- WPGroHo.syncProfileData( h, d );
+ Gravatar.my_hash = WPGroHo.my_hash;
+ Gravatar.init( 'body', '#wpadminbar' );
};
- Gravatar.my_hash = WPGroHo.my_hash;
- Gravatar.init( 'body', '#wpadminbar' );
-} );
+ if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
+ jetpackHovercardsInit();
+ } else {
+ document.addEventListener( 'DOMContentLoaded', jetpackHovercardsInit );
+ }
+} )();
diff --git a/plugins/jetpack/readme.txt b/plugins/jetpack/readme.txt
index 3b8cf882..4f6745e5 100644
--- a/plugins/jetpack/readme.txt
+++ b/plugins/jetpack/readme.txt
@@ -1,151 +1,291 @@
-=== Jetpack by WordPress.com ===
-Contributors: automattic, adamkheckler, aduth, akirk, allendav, alternatekev, andy, annezazu, apeatling, azaozz, batmoo, barry, beaulebens, blobaugh, brbrr, cainm, cena, cfinke, chaselivingston, chellycat, clickysteve, csonnek, danielbachhuber, davoraltman, daniloercoli, delawski, designsimply, dllh, drawmyface, dsmart, dzver, ebinnion, egregor, eliorivero, enej, eoigal, erania-pinnera, ethitter, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, jblz, jasmussen, jeffgolenski, jeherve, jenhooks, jenia, jessefriedman, jgs, jkudish, jmdodd, joanrho, johnjamesjacoby, jshreve, kbrownkd, keoshi, koke, kraftbj, lancewillett, lschuyler, macmanx, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, MichaelArestad, migueluy, mikeyarce, mkaz, nancythanki, nickmomrik, obenland, oskosk, pento, professor44, rachelsquirrel, rdcoll, ryancowles, richardmuscat, richardmtl, roccotripaldi, samhotchkiss, scarstocea, scottsweb, sdquirk, simison, stephdau, tmoorewp, tyxla, Viper007Bond, westi, yoavf, zinigor
-Tags: Jetpack, WordPress.com, backup, security, related posts, CDN, speed, anti-spam, social sharing, SEO, video, stats
-Stable tag: 8.2.1
-Requires at least: 5.2
-Requires PHP: 5.6
-Tested up to: 5.3
-
-The ideal plugin for stats, related posts, search engine optimization, social sharing, protection, backups, security, and more.
-
-== Description ==
-
-Security, performance, and site management: the best way to WordPress is with Jetpack.
-
-= 24/7 Site Security =
-Jetpack is your site's security detail, guarding you against brute-force attacks and unauthorized logins. Basic protection is always free, while premium plans add expanded backup and automated fixes. Jetpack's full suite of site security tools include:
-
-* Brute-force attack protection, spam filtering, and downtime monitoring.
-* Backups of your entire site, either once daily or in real time.
-* Secure login, with optional two-factor authentication.
-* Malware scanning, code scanning, and automated threat resolution.
-* A record of every change on your site to simplify troubleshooting.
-* Fast, priority support from WordPress experts.
-
-= Peak Performance =
-Activate site accelerator tools and watch your page load times decrease -- we'll optimize your images and serve them from our own powerful global network, and speed up your mobile site to reduce bandwidth usage (and save money!). Connect Jetpack to take advantage of:
-
-* Images and static files, like CSS and JavaScript, served from our servers, not yours.
-* Elasticsearch-powered related content and site search, for relevant results with no drain on your servers.
-* Lazy image loading for a faster mobile experience.
-* Unlimited and high-speed video via our content delivery network.
-
-= Effortless Site Management =
-Create and customize your WordPress site, optimize it for visitors and revenue, and enjoy watching your stats tick up. Built it, share it, and watch it grow with:
-
-* Advanced site stats and analytics for understanding your audience.
-* Hundreds of professional themes, for a pro site no matter what your niche.
-* Intuitive and powerful customization tools to match your website to your brand.
-* Simple PayPal payment buttons for selling products and services.
-* SEO tools for Google, Bing, Twitter, Facebook, and WordPress.com to maximize your reach.
-* An advertising program that includes the best of AdSense, Facebook Ads, AOL, Amazon, Google AdX, and Yahoo.
-* Integration with the official WordPress mobile apps, to manage your site from anywhere.
-
-= Expert Support =
-We have a global team of Happiness Engineers ready to help you. Ask your questions in the support forum, or [contact us directly](https://jetpack.com/contact-support).
-
-= Paid Services =
-Compare our [simple and affordable plans](https://jetpack.com/pricing?from=wporg) or take a [product tour](https://jetpack.com/features?from=wporg) to learn more.
-
-= Get Started =
-Installation is free, quick, and easy. [Install Jetpack from our site](https://jetpack.com/install?from=wporg) in minutes.
-
-== Installation ==
-
-= Automated Installation =
-Installation is free, quick, and easy. [Install Jetpack from our site](https://jetpack.com/install?from=wporg) in minutes.
-
-= Manual Alternatives =
-Alternatively, install Jetpack via the plugin directory, or upload the files manually to your server and follow the on-screen instructions. If you need additional help [read our detailed instructions](https://jetpack.com/support/installing-jetpack/).
-
-== Frequently Asked Questions ==
-
-= Is Jetpack free? =
-Yes! Jetpack's core features are and always will be free.
-
-These include: [site stats](https://jetpack.com/features/traffic/site-stats), a [high-speed CDN](https://jetpack.com/features/writing/content-delivery-network/) for images, [related posts](https://jetpack.com/features/traffic/related-posts), [downtime monitoring](https://jetpack.com/features/security/downtime-monitoring), brute force [attack protection](https://jetpack.com/features/security/brute-force-attack-protection), [automated sharing](https://jetpack.com/features/traffic/automatic-publishing/) to social networks, [sidebar customization](https://jetpack.com/features/writing/sidebar-customization/), and many more.
-
-= Should I purchase a paid plan? =
-Jetpack's paid services include real-time backups, security scanning, premium themes, spam filtering, video hosting, site monetization, SEO tools, search, priority support, and more.
-
-To learn more about the essential security and WordPress services we provide, visit our [plan comparison page](https://jetpack.com/pricing?from=wporg).
-
-= Why do I need a WordPress.com account? =
-
-Since Jetpack and its services are provided and hosted by WordPress.com, a WordPress.com account is required for Jetpack to function.
-
-= I already have a WordPress account, but Jetpack isn't working. What's going on? =
-
-A WordPress.com account is different from the account you use to log into your self-hosted WordPress. If you can log into [WordPress.com](https://wordpress.com), then you already have a WordPress.com account. If you can't, you can easily create one [during installation](https://jetpack.com/install?from=wporg).
-
-= How do I view my stats? =
-
-Once you've installed Jetpack your stats will be available on [WordPress.com/Stats](https://wordpress.com/stats), on the official [WordPress mobile apps](https://apps.wordpress.com/mobile/), and on your Jetpack dashboard.
-
-= How do I contribute to Jetpack? =
-
-There are opportunities for developers at all levels to contribute. [Learn more about contributing to Jetpack](https://jetpack.com/contribute) or consider [joining our beta program](https://jetpack.com/beta).
-
-
-== Screenshots ==
-
-1. Keep hackers out with brute force attack protection, malware scanning, spam filtering, and downtime monitoring. Secure your site data with on-demand backups and restores.
-2. Load pages faster, and serve your images and static files from our massive global content delivery network.
-3. Customize your website with professionally-designed WordPress themes, blocks, and widgets.
-4. Promote your newest posts, pages, and products across your social media channels.
-
-== Changelog ==
-
-= 8.2.1 =
-
-* Release date: February 17, 2020
-
-**Bug fixes**
-
-* Block Editor: avoid errors when uploading additional media to the Slideshow, Tiled Gallery, and Video blocks.
-* Synchronization: address issues that would cause delayed synchronization of your posts to WordPress.com.
-
-= 8.2 =
-
-* Release date: February 11, 2020
-* Release post: https://wp.me/p1moTy-mVu
-
-**Major Enhancements**
-
-* Calendly Block: a useful tool for all coaches, consultants, therapists… Add the block to a post or page and anyone can then book appointments, meetings, and classes right from your website.
-* EventBrite Block: allow your visitors to register to events right from your site with this new block.
-* OpenTable Block: restaurant owners, you can now add a reservation form to your site to make it easy for anyone to book a table online, via your site.
-
-**Enhancements**
-
-* Contact Form: add IP and Feedback date to data that can be exported via the CSV tool.
-* Dashboard: display a notice when a site uses conflicting plans.
-* Map Block: improve the calculation and persistence of maps' center points.
-* Map Block: improve the generation of an access token on WordPress.com sites.
-* Map Block: update Mapbox GL library to opt into map load based billing.
-* Shortcodes: add new Vimeo shortcode format.
-* Subscriptions: display a clear error message when you try to subscribe to a site where you've already subscribed but did not validate your subscription.
-* Subscriptions: display a clear message when an email having many pending confirmations tries to subscribe to a site.
-* Synchronization: improve performance of data synchronization with WordPress.com.
-
-**Improved compatibility**
-
-* Connnection Flow: ongoing work to improve the reliability of the connection between your site and WordPress.com.
-* Connection Flow: improve detection of hosting environments for better communication with WordPress.com.
-* General: avoid any login issues when using other plugins that may interact with cookies on your site.
-* Gutenberg: avoid any layout issues that may appear in the block editor when using the latest version of the Gutenberg plugin.
-* Related Posts: ensure that any filters customizing the display of Related Posts also apply to posts displayed with the AMP plugin.
-* Sharing: do not output Jetpack's Open Graph Meta Tags if the Complete Open Graph plugin is present on your site.
-
-**Bug fixes**
-
-* Blocks / Dashboard: ensure that blocks as well as Jetpack's dashboard can be used even in older browsers such as Internet Explorer 11.
-* Contact Info Block: ensure that Google's Structured Data tool can recognize phone numbers added to the block.
-* Copy Post: ensure correct sharing and like settings are copied when posts are duplicated.
-* Subscriptions: maintain email subscription settings when deactivating and reactivating the feature.
-* WordPress.com REST API: avoid PHP notices when a media file is edited via the API.
-* WordPress.com REST API: ensure that image URLs are currently set when uploading an image multiple times.
-
---------
-
-[See the previous changelogs here](https://raw.githubusercontent.com/Automattic/jetpack/master/changelog.txt).
+=== Jetpack - WP Security, Backup, Speed, & Growth ===
+Contributors: automattic, adamkheckler, adrianmoldovanwp, aduth, akirk, allendav, alternatekev, andy, annamcphee, annezazu, apeatling, arcangelini, azaozz, batmoo, barry, beaulebens, biskobe, blobaugh, bjorsch, brbrr, cainm, cena, cfinke, chaselivingston, chellycat, clickysteve, csonnek, danielbachhuber, davoraltman, daniloercoli, delawski, designsimply, dllh, drawmyface, dsmart, dzver, ebinnion, egregor, eliorivero, enej, eoigal, erania-pinnera, ethitter, fgiannar, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, jblz, jasmussen, jeffgolenski, jeherve, jenhooks, jenia, jessefriedman, jgs, jkudish, jmdodd, joanrho, johnjamesjacoby, jshreve, kbrownkd, keoshi, koke, kraftbj, lancewillett, leogermani, lschuyler, macmanx, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, mdbitz, MichaelArestad, migueluy, mikeyarce, mkaz, nancythanki, nickmomrik, obenland, oskosk, pento, professor44, rachelsquirrel, rdcoll, ryancowles, richardmuscat, richardmtl, robertbpugh, roccotripaldi, samhotchkiss, samiff, scarstocea, scottsweb, sdixon194, sdquirk, sermitr, simison, stephdau, tmoorewp, tyxla, Viper007Bond, westi, yoavf, zinigor
+Tags: Security, backup, Woo, malware, scan, spam, CDN, search, social
+Stable tag: 10.5
+Requires at least: 5.8
+Requires PHP: 5.6
+Tested up to: 5.9
+
+Improve your WP security with powerful one-click tools like backup and malware scan. Get essential free tools including stats, CDN and social sharing.
+
+== Description ==
+
+= The most popular WordPress plugin for just about everything. =
+
+WordPress security, performance, marketing, and design tools — Jetpack is made by WordPress experts to make WP sites safer and faster, and help you grow your traffic.
+
+= 24/7 AUTO SITE SECURITY =
+We guard your site so you can run your site or business. Jetpack Security provides easy-to-use, comprehensive WordPress site security including auto real-time backups and easy restores, malware scans, and spam protection. Essential features like brute force protection and downtime / uptime monitoring are free.
+
+* Back up your site automatically in real time and restore to any point with one click. Unlimited storage for your backup. Great for eCommerce stores especially Woo.
+* Manage migration to a new host, migrate theme files and plugins to a new database, easily duplicate websites, create full database backups, clone websites, repair broken websites by restoring older backups or easily set up a test site by creating a duplicate of your existing WP website.
+* See every site change and who made it with the activity log, great for coordination, debug, maintenance, or troubleshooting.
+* Automatically perform malware scans and security scans for other code threats. One click fix to restore your site for malware.
+* Block spam comments and form responses with anti spam features powered by Akismet.
+* Brute force attack protection to protect your WordPress login page from attacks.
+* Monitor your site uptime / downtime and get an instant alert of any change by email.
+* Secure WordPress.com powered login used by millions of sites with optional 2FA (two factor authentication) for extra protection.
+* Auto update individual plugins for easy site maintenance and management.
+
+= PEAK SPEED AND PERFORMANCE =
+Get blazing fast site speed with Jetpack, the premier WP plugin built to leverage the power of AMP, a tool that helps optimize your site on mobile devices. Jetpack’s free CDN (content delivery network) auto optimizes your images. Watch your page load times decrease — we’ll optimize your images and serve them from our own powerful global network, and speed up your site on mobile devices to reduce bandwidth usage and save money!
+
+* Jetpack has partnered with Google AMP to create the best, highest performance all-in-one toolkit for WordPress. By using Jetpack and AMP together, you get all the features you need to build a beautiful, fast, modern website with no coding required.
+* Image CDN for images and static files, like CSS and JavaScript, served from our servers, not yours, which saves you money and bandwidth.
+* Lazy load images for a super fast experience, even on mobile. Jetpack’s lazy loading automatically delays the loading of media on your posts and pages until your visitors scroll down to where they appear on the page.
+* Unlimited, high speed, ad free video hosting keeps the focus on your content, not on ads or recommendations that lead people off site.
+* Custom site search is incredibly powerful and customizable. Helps your visitors instantly find the right content so they read and buy more. Works great with WooCommerce / eCommerce sites to help filter products so customers get what they want on your site faster.
+* Recommended to use with WP Super Cache for ultimate WordPress site speed.
+
+= POWERFUL TOOLS FOR GROWTH =
+Create and customize your WordPress site, optimize it for visitors and revenue, and enjoy watching your stats tick up. Build it, share it, and watch it grow.
+
+* Advanced site stats and analytics to help you understand your audience.
+* Auto publish blog posts and products to social media by simply using our tools to connect to Facebook, Twitter, and Linkedin.
+* Easily share Instagram posts on your pages and blog posts.
+* Collect a payment or donation, sell a product, service, or membership with simple integrations with PayPal and Stripe.
+* Grow traffic with SEO tools for Google, Bing, Twitter, Facebook, and WordPress.com. XML sitemap created automatically.
+* Advertise on your site to generate revenue. The ad network automatically does the work for you to find high-quality ads that are placed on your site.
+* Manage Jetpack features from anywhere with the official WordPress mobile app, available for Apple iOS (iPhone or iPad) and Google Android.
+* Looking for Customer Relationship Management? Check out the [Jetpack CRM plugin](https://jetpackcrm.com) which works alongside Jetpack to give you a simple and practical way to build relationships with your customers and leads.
+
+= EASY DESIGN TOOLS =
+Quickly customize your site to make it stand out — no coding needed.
+
+* Themes — Simple themes to get started or pick a professional theme to make your site stand out.
+* Related posts — Keep visitors on your site by automatically showing them related content they will be interested in.
+* Gallery and Slideshow tools — Image galleries, carousel slider, and slideshows for WP sites and stores.
+* Subscriptions — Make it easy for visitors to sign up to receive notifications of your latest posts and comments.
+* Contact form — Easily build unlimited contact forms for free without any coding. Receive email notifications for each response. Integrate with mail solutions like Creative Mail to reach your customers and leads quickly. Connect to Jetpack Anti spam (powered by Akismet) to filter submissions.
+* oEmbed Support — easily embed images, posts, and links from Facebook and Instagram.
+
+= INTEGRATIONS =
+Jetpack is updated monthly to ensure seamless integration with top WordPress plugins and other tech products.
+
+* Built for WooCommerce: Jetpack and WooCommerce are both made by Automattic. Backup, Scan, Anti-spam, integrate perfectly for Woo / eComm stores
+* Jetpack is fully compatible with v2.0 of the official AMP plugin for WordPress.
+* Better understand your customers and marketing with Google Analytics (GA) integration
+* Social media platforms: Instagram, Facebook, Twitter, LinkedIn
+* Simple Blocks to customize your site: Pinterest, Whatsapp, Podcast player, GIFs, maps, tiled gallery, slideshow
+* Payment processors: easily collect payments or donations and sell products through Stripe and PayPal
+* Site speed and performance plugins: Works great with WP Super Cache by Automattic and Cloudflare.
+* Contact form: Anti-spam (Powered by Akismet) blocks spam comments for Jetpack forms, Contact Form 7, Ninja Forms, Gravity Forms, Formidable Forms, and more.
+* Other tech integrations: Instagram, Creative Mail, Mailchimp, Calendly, Whatsapp, Pinterest, Revue, and more.
+
+= EXPERT SUPPORT =
+We have a global team of Happiness Engineers ready to provide incredible support. Ask your questions in the support forum or [contact us directly](https://jetpack.com/contact-support).
+
+= GET STARTED =
+
+Installation is free, quick, and easy. [Set up Jetpack](https://jetpack.com/install?from=wporg) in minutes. Take advantage of more robust features like WordPress site security and design and growth tools by [upgrading to a paid plan](http://jetpack.com/pricing).
+
+== Installation ==
+
+= Automated Installation =
+
+Installation is free, quick, and easy. [Set up Jetpack](https://jetpack.com/install?from=wporg) in minutes.
+
+= Manual Alternatives =
+
+Alternatively, install Jetpack via the plugin directory, or upload the files manually to your server and follow the on-screen instructions. If you need additional help read [our detailed instructions](https://jetpack.com/support/installing-jetpack/).
+
+== Frequently Asked Questions ==
+
+= Is Jetpack free? =
+
+Yes! Jetpack's core features are and always will be free.
+
+These include: site stats, a high-speed CDN for images, related posts, downtime monitoring, brute force attack protection, automated sharing to social networks, sidebar customization, SEO (search engine optimization) tools, and much more.
+
+= Should I purchase a paid plan? =
+
+It depends on your site and what kind of protection, performance, and design you need. If you make money from your site, the answer is often “yes.” For context, Jetpack's paid services include real-time backups, security scanning, spam filtering, video hosting, site monetization, search, priority support, and more.
+
+To learn more about the essential security and WordPress services we provide and see how we can improve your site, visit [our plans page](https://jetpack.com/pricing?from=wporg).
+
+= Why do I need a WordPress.com account? =
+
+Since Jetpack and its services are provided and hosted by WordPress.com, a WordPress.com account is required for Jetpack to function.
+
+= I already have a WordPress account, but Jetpack isn't working. What's going on? =
+
+A WordPress.com account is different from the account you use to log into your self-hosted WordPress. If you can log into WordPress.com, then you already have a WordPress.com account. If you can’t, you can easily create one[during installation](https://jetpack.com/install?from=wporg).
+
+= How do I view my stats? =
+
+Once you’ve installed Jetpack, your stats will be available on your Jetpack dashboard and through the [official WordPress mobile app](https://apps.wordpress.com/mobile/).
+
+= How do I contribute to Jetpack? =
+
+There are opportunities for developers at all levels to contribute. [Learn more about contributing to Jetpack](https://jetpack.com/contribute) or consider [joining our beta program](https://jetpack.com/beta).
+
+= What else does Jetpack include? =
+
+Jetpack is the ultimate toolkit for WP for both the classic editor and the block editor, giving you everything you need for a professional site. It includes the following features:
+
+* Activity log — Monitor all site changes for debug, troubleshooting, or maintenance
+* Ads — Earn income by displaying high quality ads on your site.
+* Beautiful Math — Use the LaTeX markup language for writing complex mathematical equations, formulas, and more.
+* Carousel slider — Display a gorgeous full-screen photo browsing experience with comments and EXIF metadata.
+* CDN — Helps your pages load faster by allowing Jetpack to optimize your images and serve your images and static files (like CSS and JavaScript) from our global network of servers.
+* Comments — Replace your default comment form with an improved system with integrated social media login options.
+* Comment Likes — Allows readers to like other comments to show their agreement, approval, or appreciation.
+* Contact Form — Offer your readers the ability to get in touch, without giving out your personal email address.
+* Custom CSS — Customize the appearance of your theme without creating a child theme or worrying about updates overwriting your customizations.
+* Custom Content Types — Adds custom post types (CPTs) to your site.
+* Downtime Monitor — Alerts you via electronic mail if your site goes down to ensure you keep uptime.
+* Enhanced Distribution — Increase your reach by allowing your content to be included in the WordPress.com “firehose” of public blog content.
+* Extra Sidebar Widgets — Extra widgets you can add to your blog, including RSS Links, Twitter Timelines, and Facebook Like Boxes.
+* Gravatar Hovercards — Make your Gravatar profile visible to those viewing your blog.
+* Google Analytics (GA) — Track your WordPress site statistics thanks to Google Analytics.
+* Infinite Scroll — Pulls the next posts automatically into view when the reader approaches the bottom of the page.
+* JSON API — Authorizes applications and services to securely connect to your blog, and allows them to use your content or offer you new functionality.
+* Lazy Load Images — Makes pages load faster by only lazy loading images that are on the screen, and loads other images as the user scrolls
+* Likes — Allows readers to show their appreciation for your posts with a single click.
+* Markdown — Allows you to compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text without having to take their hands off the keyboard.
+* Malware detection - automatic malware scans that help protect your WP website with an automated resolution.
+* Notifications — Receive notifications for new comments and Likes in your admin bar and on your mobile device.
+* oEmbed Support — easily embed images, posts, and links from Facebook and Instagram.
+* Plugin Management — Allows easy site maintenance by choosing which plugins update automatically.
+* Post by Email — Publish posts using any mail client.
+* Protect — Protect your site from traditional and distributed brute force login attacks.
+* Publicize — Share new posts on social media networks automatically, or schedule future shares with custom messages.
+* Related Posts — Show contextual posts your visitors might be interested in reading after they’re done with their current post.
+* Secure Auth — Secure WordPress.com powered login used by millions of sites with optional 2FA (two factor authentication) for extra protection.
+* Security Scanner — Anti-virus and other threat detection for your WordPress site with automated resolution.
+* Search — A powerful replacement for WordPress’ built-in search, powered by Elasticsearch in the WordPress.com cloud
+* SEO Tools — Optimize your site for search engines by taking advantage of our SEO tools.
+* Sharing — Adds sharing buttons to your blog posts so readers can easily share your content.
+* Shortcode Embeds — Embed videos from YouTube, tweets from Twitter, and other media across the web.
+* Site Backup — Automatically back up your entire site. Duplicate, clone, migrate, transfer to a new host, and easily restore. Previously known as VaultPress.
+* Site Stats — View site visits by date, as well as most popular Pages and Posts.
+* Site Verification — Verify your site for use with Google, Bing, and Pinterest and their tools.
+* Sitemap — Generate a list of pages to be indexed by search engines like Google or Bing.
+* Spam Filtering — Automatically filter out spam comments, product reviews, or contact form submissions.
+* Subscriptions — Allow visitors to receive notifications of your latest posts or comments.
+* Tiled Galleries — Display your image galleries in three different styles: a rectangular mosaic, a square mosaic, and a circular grid.
+* Video Hosting — Upload videos for fast, reliable hosting on WordPress.com.
+* WP.me Shortlinks — Generate short and simple links to your content using the wp.me domain.
+* Widget Visibility — Configure widgets to appear only on specific pages.
+* WordPress.com Toolbar — The WordPress.com Toolbar feature replaces the default admin bar and offers quick links to the Reader, all your sites, your WordPress.com profile, and notifications.
+
+= What Blocks does Jetpack include? =
+
+Blocks are the individual sections that make up a page. There are many block types for you to use. Each block can be edited or moved independently of other blocks. The following is a list of all blocks currently available in Jetpack.
+
+* Ad Block - The Ad block allows you to insert a Jetpack Ad unit anywhere within the content of any post or page.
+* Business Hours Block - The Business Hours block allows you to display your business’s opening hours on your site.
+* Calendly Block - Jetpack's Calendly block allows your visitors to schedule one-on-one appointments, group events, and team meetings directly from your website.
+* Contact Info Block - The Contact Info block lets you add your contact information (email address, physical address, phone number) to any post or page.
+* Donations Block - The Donations block lets you add a payment button to any post or page for a donation, tips, and other contributions, using Stripe as the payment gateway.
+* Eventbrite Block - With the Eventbrite block you can embed events on posts or pages.
+* Form Block - The Form block lets you add a form to your post or page.
+* GIF Block - The GIF block allows you to easily search for and embed an animated GIF image from Giphy directly into a post or page on your WordPress site.
+* Google Calendar Block - The Google Calendar block allows you to easily embed a Google Calendar into your post or page
+* Image Compare Block - The Image Compare Block allows you to display and compare the differences between two images side by side (or above and below) thanks to a slider.
+* Latest Instagram Posts Block - The Latest Instagram Posts Block lets you display your most recent images from Instagram on your site. The block update automatically updates when you post new images to Instagram.
+* Mailchimp Block - The Mailchimp block allows visitors to join your Mailchimp list.
+* Map Block - The Map Block allows you to add a map to any post or page on your site.
+* Markdown Block - With the Markdown block you can create formatted content using only regular characters and some punctuation marks.
+* OpenTable Block - With the OpenTable block, you can add a reservation form on posts or pages.
+* Pay with PayPal Block - Pay with PayPal lets you add a payment button to any post or page, and immediately start taking PayPal payments for physical products, digital goods, or a donation.
+* Payments Block - The Payments Block lets you add a payment button using Stripe as the payment gateway. It works for one-time and recurring payments.
+* Pinterest Block - The Pinterest block is the easiest way to embed Pinterest content to your site: it allows you to embed boards, profiles, and pins.
+* Podcast Player Block - Jetpack's Podcast Player block allows you to easily show your visitors a listing of recent episodes from a podcast and play them on your website.
+* Related Posts Block - The Related Posts feature scans all of your posts' contents, analyzes it, and uses that to display contextual posts your visitors might be interested in reading after they're finished with the current post.
+* Repeat Visitor Block - The Repeat Visitor block enables the author to control the visibility of its nested block(s) depending on how many times a visitor has previously visited the page.
+* Revue Block - The Revue block creates a simple signup form for readers to opt-in to receive your newsletter.
+* Slideshow Block - The Slideshow block lets you insert an image slideshow into a post or page.
+* Star Rating Block - The Ratings block allows any site author to add reviews to the site.
+* Subscription Form Block - The Subscription Form Block allows you to insert a subscription form within the content area of any post or page, enabling your readers to get notifications when you publish new posts.
+* Tiled Gallery Block - With Tiled Galleries you can display your image galleries in four styles: tiled mosaic, circular grid, square tiles, and tiled columns.
+* Video Block - The Video block enhances the existing WordPress Video block and allows you to upload videos from your computer to be hosted on WordPress.com, rather than on your host’s servers.
+* WhatsApp Button Block - The WhatsAPP Button block will allow your customers to send them a message to enquire about their product or services, or ask for support. Clicking on the button will open WhatsApp and pre-fill the phone number and initial message.
+
+Jetpack has also created extensions for some WordPress core blocks:
+
+* Unrolling Tweet Threads – This extension to the Twitter block allows you to import an entire Tweet thread into the editor as native blocks.
+* Social Previews – This extension of the Block Editor allows you to preview what your post / page will look like on search engines and social media.
+
+= Do I need an SSL certificate? =
+
+You don’t need an SSL Certificate to run Jetpack on your WordPress website. However, it’s recommended to integrate them both into your overall WordPress security strategy. An SSL certificate (Secure Sockets Layer certificate) creates a secure connection between your website and your site visitors’ browsers. It encrypts any data shared on your site — like addresses, emails, phone numbers, and credit card information — and protects that data from hackers.
+
+If you don’t have an SSL certificate, your site will show a “not secure” warning on users’ browsers, which can reduce your legitimacy in their eyes. SSL certificates also have a positive impact on search engine rankings.
+
+The process of setting up an SSL certificate will depend on your hosting provider. Some hosts include free certificates, while others charge annually.
+
+= How does Jetpack work with WP Super Cache? =
+
+WP Super Cache works by caching your WordPress pages as static HTML pages so that page requests, for an already cached page, do not need to be processed by the WordPress PHP scripts. Typically, most visitors of your site will view cached versions of the WordPress pages, so your server will have more processing power to serve an increased number of users.
+
+Jetpack has an image CDN that works by caching and serving your WordPress images globally from its own servers. These plugins are both maintained by Automattic and work together to give you ultimate site speed.
+
+= What version of PHP do I need? =
+
+Sites must be built on PHP 5.6 or greater, but Jetpack always supports the latest version of PHP.
+
+= Can Jetpack help my site comply with GDPR? =
+
+Our Cookie and Consent Banner can help you comply with GDPR. The European Union’s ePrivacy Directive (often referred to as the ‘cookie law’) and General Data Protection Regulation (GDPR) place requirements on website owners and operators to provide information about, and gain consent for their use of cookies.
+
+= Can Jetpack be used to transfer websites to a new host? =
+
+Jetpack Backup can do a full website migration to a new host, migrate theme files and plugins to a new database, create full database backups, clone websites, repair broken websites by restoring older backups and allow you to easily set up a test site by creating a duplicate of your existing website.
+
+
+== Screenshots ==
+
+1. Jetpack Security provides easy-to-use, comprehensive WordPress site security including backups, malware scanning, and spam protection.
+2. Save every change with real-time backups and get back online quickly with one-click restores.
+3. Automated malware scanning and one-click fixes keep your site one step ahead of security threats.
+4. Promote your newest posts, pages, and products across your social media channels.
+
+== Changelog ==
+### 10.5 - 2022-01-11
+#### Enhancements
+- Print Styles: additional interactive elements are now hidden when printing posts (e.g. Likes, Recommended Posts, Share this).
+- Secure Sign On: add filters for the error text when a local user cannot be found for a given WP.com account and for when SSO is disallowed when on a staging site.
+- Subscription Block: add 'Success Message Text' to the block settings.
+- VideoPress: add "allow download" option on videos to allow viewers to download the video.
+- VideoPress Block: add adaptive progress bar color settings
+- WordAds: add hook for header ad placement, and allow 'leaderboard' size when displaying an ad widget.
+
+#### Improved compatibility
+- General: ensure Jetpack options are properly deleted when the plugin is deactivated.
+- General: update WordPress version requirements to WordPress 5.8.
+- Media Extractor: add support for alt_text in extract.
+- Notifications: remove legacy code supporting IE versions older than 9.
+- Pay with PayPal: update the name of the script enqueued when using the Pay with PayPal button as to avoid conflicts with other plugins that may use a similar script tag.
+- Pay with PayPal Widget: hide widget from Legacy Widget block.
+- Stats: remove legacy option to display a Smiley face used for the tracking pixel since the pixel is hidden by default.
+- Twitter Timeline widget: hide widget from the block inserter and Legacy widget block drop-down menu.
+- VideoPress: classic block embeds with old flash URLs can now be properly converted to VideoPress blocks.
+- VideoPress: hide the dedicated VideoPress embed block in favor of Video block.
+
+#### Bug fixes
+- Contact Form: avoid PHP notices in submitted forms in some cases.
+- Cookies & Consents Banner: fix preview in Customizer and block widget editor.
+- Dashboard: fix logic that blocked one from enabling searchable features from the Jetpack settings.
+- Dashboard: hide licensing interface from users who did not link their account to WordPress.com yet, or who are not the main Jetpack connection owner.
+- General: prevent an E_NOTICE when running in non-web context.
+- Instant Search: ensure the hidden overlay doesn't add whitespace to printed pages.
+- Internationalization: ensure that all text, including text added via JavaScript, can be translated.
+- Jetpack: activate the default modules when the site has already been connected before plugin activation.
+- Jetpack: do not display recommendations during an identity crisis.
+- Milestone widget: fix issue that prevented styles from loading until the widget is saved.
+- Search: fix styling conflict for Blank Canvas theme.
+- Security: PDF embeds now only display a link, to avoid issues with malicious PDFss that may run arbitrary code.
+- Settings menu: add Jetpack item for sites with Scan product.
+- Sharing Buttons: rely on official sharing buttons only for Facebook share counts.
+- Stats: do not trigger views when post is embedded into another site.
+- VideoPress: avoid errors when copying and pasting empty video blocks.
+- VideoPress: reload embed preview on creation until the video size is known.
+- VideoPress Block: maintain the state of different settings panels when reloading the video preview.
+- Vimeo Embeds: support more URL formats, such as videos in playlists.
+- WhatsApp block: fix country code for Cyprus.
+- Widget Visibility: fix "Match All" setting being overwritten on save in the block widget editor.
+
+--------
+
+[See the previous changelogs here](https://github.com/Automattic/jetpack/blob/master/projects/plugins/jetpack/CHANGELOG.md#changelog)
diff --git a/plugins/jetpack/require-lib.php b/plugins/jetpack/require-lib.php
index ec1e0fda..cf992f49 100644
--- a/plugins/jetpack/require-lib.php
+++ b/plugins/jetpack/require-lib.php
@@ -1,10 +1,6 @@
<?php
function jetpack_require_lib( $slug ) {
- if ( !preg_match( '|^[a-z0-9/_.-]+$|i', $slug ) ) {
- trigger_error( "Cannot load a library with invalid slug $slug.", E_USER_ERROR );
- return;
- }
- $basename = basename( $slug );
+ static $loaded = array();
if ( defined( 'ABSPATH' ) && ! defined( 'WP_CONTENT_DIR' ) ) {
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down
@@ -20,17 +16,29 @@ function jetpack_require_lib( $slug ) {
* @param string $lib_dir Path to the library directory.
*/
$lib_dir = apply_filters( 'jetpack_require_lib_dir', $lib_dir );
- $choices = array(
- JETPACK__PLUGIN_DIR . "vendor/automattic/jetpack-compat/lib/$slug.php",
- "$lib_dir/$slug.php",
- "$lib_dir/$slug/0-load.php",
- "$lib_dir/$slug/$basename.php",
- );
- foreach( $choices as $file_name ) {
- if ( is_readable( $file_name ) ) {
- require_once $file_name;
- return;
- }
+
+ $loaded_key = "{$lib_dir}{$slug}";
+ if ( ! empty( $loaded[ $loaded_key ] ) ) {
+ return;
+ }
+
+ $loaded[ $loaded_key ] = true;
+
+ $file_name = "$lib_dir/$slug.php";
+ if ( is_readable( $file_name ) ) {
+ require_once $file_name;
+
+ return;
}
- trigger_error( "Cannot find a library with slug $slug.", E_USER_ERROR );
+
+ $file_name = "$lib_dir/$slug/0-load.php";
+ if ( is_readable( $file_name ) ) {
+ require_once $file_name;
+
+ return;
+ }
+
+ $basename = basename( $slug );
+ $file_name = "$lib_dir/$slug/$basename.php";
+ require_once $file_name;
}
diff --git a/plugins/jetpack/sal/class.json-api-links.php b/plugins/jetpack/sal/class.json-api-links.php
index 21450a52..21772883 100644
--- a/plugins/jetpack/sal/class.json-api-links.php
+++ b/plugins/jetpack/sal/class.json-api-links.php
@@ -22,7 +22,9 @@ class WPCOM_JSON_API_Links {
$this->api = WPCOM_JSON_API::init();
}
private function __clone() { }
- private function __wakeup() { }
+ public function __wakeup() {
+ die( "Please don't __wakeup WPCOM_JSON_API_Links" );
+ }
/**
* Generate a URL to an endpoint
@@ -195,8 +197,10 @@ class WPCOM_JSON_API_Links {
}
// Make sure the endpoint exists at the same version
- if ( version_compare( $this->api->version, $endpoint['min_version'], '>=') &&
- version_compare( $this->api->version, $endpoint['max_version'], '<=') ) {
+ if ( null !== $this->api->version &&
+ version_compare( $this->api->version, $endpoint['min_version'], '>=' ) &&
+ version_compare( $this->api->version, $endpoint['max_version'], '<=' )
+ ) {
array_push(
$matches_by_version[ $this->api->version ],
(object) array( 'version' => $this->api->version, 'regex' => $endpoint_path_regex )
diff --git a/plugins/jetpack/sal/class.json-api-post-base.php b/plugins/jetpack/sal/class.json-api-post-base.php
index 50e77c19..b7841bc9 100644
--- a/plugins/jetpack/sal/class.json-api-post-base.php
+++ b/plugins/jetpack/sal/class.json-api-post-base.php
@@ -9,7 +9,8 @@
require_once dirname( __FILE__ ) . '/class.json-api-metadata.php';
require_once dirname( __FILE__ ) . '/class.json-api-date.php';
-require_once ( ABSPATH . "wp-includes/post.php" );
+require_once ABSPATH . 'wp-admin/includes/post.php';
+require_once ABSPATH . 'wp-includes/post.php';
abstract class SAL_Post {
public $post;
@@ -132,7 +133,6 @@ abstract class SAL_Post {
current_user_can( 'edit_post_meta', $this->post->ID , $meta_key )
);
- // Only business plan subscribers can view custom meta description
if ( Jetpack_SEO_Posts::DESCRIPTION_META_KEY == $meta_key && ! Jetpack_SEO_Utils::is_enabled_jetpack_seo() ) {
$show = false;
}
@@ -141,16 +141,12 @@ abstract class SAL_Post {
$metadata[] = array(
'id' => $meta['meta_id'],
'key' => $meta['meta_key'],
- 'value' => maybe_unserialize( $meta['meta_value'] ),
+ 'value' => $this->safe_maybe_unserialize( $meta['meta_value'] ),
);
}
}
- if ( ! empty( $metadata ) ) {
- return $metadata;
- } else {
- return false;
- }
+ return $metadata;
}
public function get_meta() {
@@ -584,7 +580,7 @@ abstract class SAL_Post {
'thumbnails' => array()
);
- if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
+ if ( in_array( $ext, array( 'jpg', 'jpeg', 'png', 'gif', 'webp' ), true ) ) {
$metadata = wp_get_attachment_metadata( $media_item->ID );
if ( isset( $metadata['height'], $metadata['width'] ) ) {
$response['height'] = $metadata['height'];
@@ -617,8 +613,11 @@ abstract class SAL_Post {
if ( in_array( $ext, array( 'mp3', 'm4a', 'wav', 'ogg' ) ) ) {
$metadata = wp_get_attachment_metadata( $media_item->ID );
- $response['length'] = $metadata['length'];
- $response['exif'] = $metadata;
+ if ( isset( $metadata['length'] ) ) {
+ $response['length'] = $metadata['length'];
+ }
+
+ $response['exif'] = $metadata;
}
if ( in_array( $ext, array( 'ogv', 'mp4', 'mov', 'wmv', 'avi', 'mpg', '3gp', '3g2', 'm4v' ) ) ) {
@@ -679,4 +678,20 @@ abstract class SAL_Post {
return (object) $response;
}
+
+ /**
+ * Temporary wrapper around maybe_unserialize() to catch exceptions thrown by unserialize().
+ *
+ * Can be removed after https://core.trac.wordpress.org/ticket/45895 lands in Core.
+ *
+ * @param string $original Serialized string.
+ * @return string Unserialized string or original string if an exception was raised.
+ **/
+ protected function safe_maybe_unserialize( $original ) {
+ try {
+ return maybe_unserialize( $original );
+ } catch ( Exception $e ) {
+ return $original;
+ }
+ }
}
diff --git a/plugins/jetpack/sal/class.json-api-site-base.php b/plugins/jetpack/sal/class.json-api-site-base.php
index 9458f4c7..c30236ab 100644
--- a/plugins/jetpack/sal/class.json-api-site-base.php
+++ b/plugins/jetpack/sal/class.json-api-site-base.php
@@ -1,5 +1,7 @@
<?php
+use Automattic\Jetpack\Status\Host;
+
require_once dirname( __FILE__ ) . '/class.json-api-date.php';
require_once dirname( __FILE__ ) . '/class.json-api-post-base.php';
@@ -71,14 +73,28 @@ abstract class SAL_Site {
abstract public function is_private();
+ abstract public function is_coming_soon();
+
abstract public function is_following();
abstract public function get_subscribers_count();
abstract public function get_locale();
+ /**
+ * The flag indicates that the site has Jetpack installed
+ *
+ * @return bool
+ */
abstract public function is_jetpack();
+ /**
+ * The flag indicates that the site is connected to WP.com via Jetpack Connection
+ *
+ * @return bool
+ */
+ abstract public function is_jetpack_connection();
+
abstract public function get_jetpack_modules();
abstract public function is_module_active( $module );
@@ -87,6 +103,13 @@ abstract class SAL_Site {
abstract public function is_multisite();
+ /**
+ * Points to the user ID of the site owner
+ *
+ * @return int for WP.com, null for Jetpack
+ */
+ abstract public function get_site_owner();
+
abstract public function is_single_user_site();
abstract public function get_plan();
@@ -133,8 +156,33 @@ abstract class SAL_Site {
);
}
+ abstract protected function is_wpforteams_site();
+
+ /**
+ * Get hub blog id for P2 sites.
+ *
+ * @return null
+ */
+ public function get_p2_hub_blog_id() {
+ return null;
+ }
+
+ /**
+ * Getter for the p2 organization ID.
+ *
+ * @return int
+ */
+ public function get_p2_organization_id() {
+ return 0; // WPForTeams\Constants\NO_ORG_ID not loaded.
+ }
+
+ /**
+ * Detect whether a site is a WordPress.com on Atomic site.
+ *
+ * @return bool
+ */
public function is_wpcom_atomic() {
- return false;
+ return ( new Host() )->is_woa_site();
}
public function is_wpcom_store() {
@@ -145,11 +193,15 @@ abstract class SAL_Site {
return false;
}
- public function get_post_by_id( $post_id, $context ) {
- // Remove the skyword tracking shortcode for posts returned via the API.
- remove_shortcode( 'skyword-tracking' );
- add_shortcode( 'skyword-tracking', '__return_empty_string' );
+ public function is_cloud_eligible() {
+ return false;
+ }
+
+ public function get_products() {
+ return array();
+ }
+ public function get_post_by_id( $post_id, $context ) {
$post = get_post( $post_id, OBJECT, $context );
if ( ! $post ) {
@@ -400,6 +452,8 @@ abstract class SAL_Site {
}
function get_capabilities() {
+ $is_wpcom_blog_owner = wpcom_get_blog_owner() === (int) get_current_user_id();
+
return array(
'edit_pages' => current_user_can( 'edit_pages' ),
'edit_posts' => current_user_can( 'edit_posts' ),
@@ -413,12 +467,13 @@ abstract class SAL_Site {
'manage_categories' => current_user_can( 'manage_categories' ),
'manage_options' => current_user_can( 'manage_options' ),
'moderate_comments' => current_user_can( 'moderate_comments' ),
- 'activate_wordads' => wpcom_get_blog_owner() === (int) get_current_user_id(),
+ 'activate_wordads' => $is_wpcom_blog_owner,
'promote_users' => current_user_can( 'promote_users' ),
'publish_posts' => current_user_can( 'publish_posts' ),
'upload_files' => current_user_can( 'upload_files' ),
'delete_users' => current_user_can( 'delete_users' ),
'remove_users' => current_user_can( 'remove_users' ),
+ 'own_site' => $is_wpcom_blog_owner,
/**
* Filter whether the Hosting section in Calypso should be available for site.
*
@@ -429,7 +484,8 @@ abstract class SAL_Site {
* @param bool $view_hosting Can site access Hosting section. Default to false.
*/
'view_hosting' => apply_filters( 'jetpack_json_api_site_can_view_hosting', false ),
- 'view_stats' => stats_is_blog_user( $this->blog_id )
+ 'view_stats' => stats_is_blog_user( $this->blog_id ),
+ 'activate_plugins' => current_user_can( 'activate_plugins' ),
);
}
@@ -451,7 +507,6 @@ abstract class SAL_Site {
}
function get_logo() {
-
// Set an empty response array.
$logo_setting = array(
'id' => (int) 0,
@@ -460,16 +515,12 @@ abstract class SAL_Site {
);
// Get current site logo values.
- $logo = get_option( 'site_logo' );
+ $logo_id = get_option( 'site_logo' );
// Update the response array if there's a site logo currenty active.
- if ( $logo && 0 != $logo['id'] ) {
- $logo_setting['id'] = $logo['id'];
- $logo_setting['url'] = $logo['url'];
-
- foreach ( $logo['sizes'] as $size => $properties ) {
- $logo_setting['sizes'][ $size ] = $properties;
- }
+ if ( $logo_id ) {
+ $logo_setting['id'] = $logo_id;
+ $logo_setting['url'] = wp_get_attachment_url( $logo_id );
}
return $logo_setting;
@@ -651,11 +702,46 @@ abstract class SAL_Site {
return false;
}
- function get_migration_status() {
- return false;
+ function get_migration_meta() {
+ return null;
}
function get_site_segment() {
return false;
}
+
+ function get_site_creation_flow() {
+ return get_option( 'site_creation_flow' );
+ }
+
+ public function get_selected_features() {
+ return get_option( 'selected_features' );
+ }
+
+ /**
+ * Get the option storing the Anchor podcast ID that identifies a site as a podcasting site.
+ *
+ * @return string
+ */
+ public function get_anchor_podcast() {
+ return get_option( 'anchor_podcast' );
+ }
+
+ /**
+ * Check if the site is currently being built by the DIFM Lite team.
+ */
+ public function is_difm_lite_in_progress() {
+ if ( function_exists( 'has_blog_sticker' ) ) {
+ return has_blog_sticker( 'difm-lite-in-progress' );
+ }
+ return false;
+ }
+
+ /**
+ * Get the option of site intent which value is coming from the Hero Flow
+ */
+ public function get_site_intent() {
+ return get_option( 'site_intent', '' );
+ }
}
+
diff --git a/plugins/jetpack/sal/class.json-api-site-jetpack-base.php b/plugins/jetpack/sal/class.json-api-site-jetpack-base.php
index d87a2bce..b8593c2f 100644
--- a/plugins/jetpack/sal/class.json-api-site-jetpack-base.php
+++ b/plugins/jetpack/sal/class.json-api-site-jetpack-base.php
@@ -26,6 +26,11 @@ abstract class Abstract_Jetpack_Site extends SAL_Site {
abstract protected function file_system_write_access();
+ /**
+ * Fetch a list of active plugins that are using Jetpack Connection.
+ */
+ abstract protected function get_connection_active_plugins();
+
function before_render() {
}
@@ -86,6 +91,8 @@ abstract class Abstract_Jetpack_Site extends SAL_Site {
) ) );
$options['file_mod_disabled'] = empty( $file_mod_disabled_reasons ) ? false : $file_mod_disabled_reasons;
+
+ $options['jetpack_connection_active_plugins'] = $this->get_connection_active_plugins();
}
function get_jetpack_modules() {
diff --git a/plugins/jetpack/sal/class.json-api-site-jetpack.php b/plugins/jetpack/sal/class.json-api-site-jetpack.php
index dd9990c3..3f72d58f 100644
--- a/plugins/jetpack/sal/class.json-api-site-jetpack.php
+++ b/plugins/jetpack/sal/class.json-api-site-jetpack.php
@@ -1,5 +1,6 @@
<?php
+use Automattic\Jetpack\Status\Host;
use Automattic\Jetpack\Sync\Functions;
require_once dirname( __FILE__ ) . '/class.json-api-site-jetpack-base.php';
@@ -68,6 +69,17 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return get_theme_support( $feature_name );
}
+ /**
+ * Fetch a list of active plugins that are using Jetpack Connection.
+ *
+ * @return array An array of active plugins (by slug) that are using Jetpack Connection.
+ */
+ protected function get_connection_active_plugins() {
+ $plugins = $this->get_mock_option( 'connection_active_plugins' );
+
+ return is_array( $plugins ) ? array_keys( $plugins ) : array();
+ }
+
public function get_updates() {
return (array) Jetpack::get_updates();
}
@@ -107,6 +119,15 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return false;
}
+ /**
+ * Points to the user ID of the site owner
+ *
+ * @return null for Jetpack sites
+ */
+ public function get_site_owner() {
+ return null;
+ }
+
function has_wordads() {
return Jetpack::is_module_active( 'wordads' );
}
@@ -138,8 +159,49 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return $allowed_file_types;
}
+ /**
+ * Return site's privacy status.
+ *
+ * @return boolean Is site private?
+ */
function is_private() {
- return false;
+ return (int) $this->get_atomic_cloud_site_option( 'blog_public' ) === -1;
+ }
+
+ /**
+ * Return site's coming soon status.
+ *
+ * @return boolean Is site "Coming soon"?
+ */
+ function is_coming_soon() {
+ return $this->is_private() && (int) $this->get_atomic_cloud_site_option( 'wpcom_coming_soon' ) === 1;
+ }
+
+ /**
+ * Return site's launch status.
+ *
+ * @return string|boolean Launch status ('launched', 'unlaunched', or false).
+ */
+ function get_launch_status() {
+ return $this->get_atomic_cloud_site_option( 'launch-status' );
+ }
+
+ function get_atomic_cloud_site_option( $option ) {
+ if ( ! ( new Host() )->is_woa_site() ) {
+ return false;
+ }
+
+ $jetpack = Jetpack::init();
+ if ( ! method_exists( $jetpack, 'get_cloud_site_options' ) ) {
+ return false;
+ }
+
+ $result = $jetpack->get_cloud_site_options( [ $option ] );
+ if ( ! array_key_exists( $option, $result ) ) {
+ return false;
+ }
+
+ return $result[ $option ];
}
function get_plan() {
@@ -158,7 +220,21 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return get_bloginfo( 'language' );
}
- function is_jetpack() {
+ /**
+ * The flag indicates that the site has Jetpack installed
+ *
+ * @return bool
+ */
+ public function is_jetpack() {
+ return true;
+ }
+
+ /**
+ * The flag indicates that the site is connected to WP.com via Jetpack Connection
+ *
+ * @return bool
+ */
+ public function is_jetpack_connection() {
return true;
}
@@ -188,6 +264,10 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return true;
}
+ function is_wpforteams_site() {
+ return false;
+ }
+
function current_user_can( $role ) {
return current_user_can( $role );
}
@@ -227,6 +307,16 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
}
/**
+ * Check if site should be considered as eligible for use of the core Site Editor.
+ * The Site Editor requires a block based theme to be active.
+ *
+ * @return bool true if site is eligible for the Site Editor
+ */
+ public function is_core_site_editor_enabled() {
+ return function_exists( 'gutenberg_is_fse_theme' ) && gutenberg_is_fse_theme();
+ }
+
+ /**
* Return the last engine used for an import on the site.
*
* This option is not used in Jetpack.
@@ -243,4 +333,13 @@ class Jetpack_Site extends Abstract_Jetpack_Site {
return new Jetpack_Post( $this, $post, $context );
}
+ /**
+ * Get the option storing the Anchor podcast ID that identifies a site as a podcasting site.
+ *
+ * @return string
+ */
+ public function get_anchor_podcast() {
+ return $this->get_atomic_cloud_site_option( 'anchor_podcast' );
+ }
+
}
diff --git a/plugins/jetpack/src/class-tracking.php b/plugins/jetpack/src/class-tracking.php
index 5f4bf88a..12b00e41 100644
--- a/plugins/jetpack/src/class-tracking.php
+++ b/plugins/jetpack/src/class-tracking.php
@@ -1,9 +1,18 @@
<?php
+/**
+ * Tracks class.
+ *
+ * @package automattic/jetpack
+ */
+
namespace Automattic\Jetpack\Plugin;
-use Automattic\Jetpack\Tracking as Tracks;
use Automattic\Jetpack\Connection\Manager as Connection_Manager;
+use Automattic\Jetpack\Tracking as Tracks;
+/**
+ * Tracks class.
+ */
class Tracking {
/**
* Tracking object.
@@ -20,6 +29,9 @@ class Tracking {
*/
private $initalized = false;
+ /**
+ * Initialization function.
+ */
public function init() {
if ( $this->initalized ) {
return;
@@ -43,9 +55,6 @@ class Tracking {
add_action( 'jetpack_verify_secrets_success', array( $this, 'jetpack_verify_secrets_success' ), 10, 2 );
add_action( 'jetpack_verify_secrets_fail', array( $this, 'jetpack_verify_secrets_fail' ), 10, 3 );
- // Universal ajax callback for all tracking events triggered via js.
- add_action( 'wp_ajax_jetpack_tracks', array( $this, 'wp_ajax_jetpack_tracks' ) );
-
add_action( 'jetpack_verify_api_authorization_request_error_double_encode', array( $this, 'jetpack_verify_api_authorization_request_error_double_encode' ) );
add_action( 'jetpack_connection_register_fail', array( $this, 'jetpack_connection_register_fail' ), 10, 2 );
add_action( 'jetpack_connection_register_success', array( $this, 'jetpack_connection_register_success' ) );
@@ -104,7 +113,7 @@ class Tracking {
*
* @access public
*
- * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
+ * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
* @param \WP_User $user The user object.
*/
public function jetpack_verify_secrets_begin( $action, $user ) {
@@ -116,7 +125,7 @@ class Tracking {
*
* @access public
*
- * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
+ * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
* @param \WP_User $user The user object.
*/
public function jetpack_verify_secrets_success( $action, $user ) {
@@ -128,8 +137,8 @@ class Tracking {
*
* @access public
*
- * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
- * @param \WP_User $user The user object.
+ * @param string $action Type of secret (one of 'register', 'authorize', 'publicize').
+ * @param \WP_User $user The user object.
* @param \WP_Error $error Error object.
*/
public function jetpack_verify_secrets_fail( $action, $user, $error ) {
@@ -169,11 +178,14 @@ class Tracking {
* @param string|int $error The error code.
* @param \WP_Error $registered The error object.
*/
- function jetpack_connection_register_fail( $error, $registered ) {
- $this->tracking->record_user_event( 'jpc_register_fail', array(
- 'error_code' => $error,
- 'error_message' => $registered->get_error_message()
- ) );
+ public function jetpack_connection_register_fail( $error, $registered ) {
+ $this->tracking->record_user_event(
+ 'jpc_register_fail',
+ array(
+ 'error_code' => $error,
+ 'error_message' => $registered->get_error_message(),
+ )
+ );
}
/**
@@ -183,10 +195,13 @@ class Tracking {
*
* @param string $from The 'from' GET parameter.
*/
- function jetpack_connection_register_success( $from ) {
- $this->tracking->record_user_event( 'jpc_register_success', array(
- 'from' => $from
- ) );
+ public function jetpack_connection_register_success( $from ) {
+ $this->tracking->record_user_event(
+ 'jpc_register_success',
+ array(
+ 'from' => $from,
+ )
+ );
}
/**
@@ -195,7 +210,7 @@ class Tracking {
*
* @param String $action the action name, i.e., 'remote_authorize'.
* @param String $stage the execution stage, can be 'begin', 'success', 'error', etc.
- * @param Array|WP_Error|IXR_Error $parameters (optional) extra parameters to be passed to the tracked action.
+ * @param array|WP_Error|IXR_Error $parameters (optional) extra parameters to be passed to the tracked action.
* @param WP_User $user (optional) the acting user.
*/
public function jetpack_xmlrpc_server_event( $action, $stage, $parameters = array(), $user = null ) {
@@ -220,36 +235,7 @@ class Tracking {
*
* @access public
*/
- function jetpack_verify_api_authorization_request_error_double_encode() {
+ public function jetpack_verify_api_authorization_request_error_double_encode() {
$this->tracking->record_user_event( 'error_double_encode' );
}
-
- /**
- * Universal method for for all tracking events triggered via the JavaScript client.
- *
- * @access public
- */
- function wp_ajax_jetpack_tracks() {
- // Check for nonce
- if ( ! isset( $_REQUEST['tracksNonce'] ) || ! wp_verify_nonce( $_REQUEST['tracksNonce'], 'jp-tracks-ajax-nonce' ) ) {
- wp_die( 'Permissions check failed.' );
- }
-
- if ( ! isset( $_REQUEST['tracksEventName'] ) || ! isset( $_REQUEST['tracksEventType'] ) ) {
- wp_die( 'No valid event name or type.' );
- }
-
- $tracks_data = array();
- if ( 'click' === $_REQUEST['tracksEventType'] && isset( $_REQUEST['tracksEventProp'] ) ) {
- if ( is_array( $_REQUEST['tracksEventProp'] ) ) {
- $tracks_data = $_REQUEST['tracksEventProp'];
- } else {
- $tracks_data = array( 'clicked' => $_REQUEST['tracksEventProp'] );
- }
- }
-
- $this->tracking->record_user_event( $_REQUEST['tracksEventName'], $tracks_data );
- wp_send_json_success();
- wp_die();
- }
}
diff --git a/plugins/jetpack/uninstall.php b/plugins/jetpack/uninstall.php
index 897e798a..75c9170e 100644
--- a/plugins/jetpack/uninstall.php
+++ b/plugins/jetpack/uninstall.php
@@ -1,42 +1,52 @@
<?php
+/**
+ * Functionality that is executed when Jetpack is uninstalled via built-in WordPress commands.
+ *
+ * @package automattic/jetpack
+ */
-use Automattic\Jetpack\Sync\Sender;
use Automattic\Jetpack\Backup\Helper_Script_Manager;
+use Automattic\Jetpack\Sync\Sender;
-if (
- !defined( 'WP_UNINSTALL_PLUGIN' )
- ||
- !WP_UNINSTALL_PLUGIN
- ||
- dirname( WP_UNINSTALL_PLUGIN ) != dirname( plugin_basename( __FILE__ ) )
-) {
- status_header( 404 );
- exit;
-}
-
-if ( ! defined( 'JETPACK__PLUGIN_DIR' ) ) {
- define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
+/**
+ * Uninstall script for Jetpack.
+ */
+function jetpack_uninstall() {
+ if (
+ ! defined( 'WP_UNINSTALL_PLUGIN' ) ||
+ ! WP_UNINSTALL_PLUGIN ||
+ dirname( WP_UNINSTALL_PLUGIN ) !== dirname( plugin_basename( __FILE__ ) )
+ ) {
+ status_header( 404 );
+ exit;
+ }
+
+ if ( ! defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
+ }
+
+ require JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
+
+ Jetpack_Options::delete_all_known_options();
+
+ // Delete all legacy options.
+ delete_option( 'jetpack_was_activated' );
+ delete_option( 'jetpack_auto_installed' );
+ delete_option( 'jetpack_register' );
+ delete_transient( 'jetpack_register' );
+
+ // Delete sync options
+ //
+ // Do not initialize any listeners.
+ // Since all the files will be deleted.
+ // No need to try to sync anything.
+ add_filter( 'jetpack_sync_modules', '__return_empty_array', 100 );
+
+ // Jetpack Sync.
+ Sender::get_instance()->uninstall();
+
+ // Jetpack Backup: Cleanup any leftover Helper Scripts.
+ Helper_Script_Manager::delete_all_helper_scripts();
}
-require JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
-
-Jetpack_Options::delete_all_known_options();
-
-// Delete all legacy options
-delete_option( 'jetpack_was_activated' );
-delete_option( 'jetpack_auto_installed' );
-delete_option( 'jetpack_register' );
-delete_transient( 'jetpack_register' );
-
-// Delete sync options
-//
-// Do not initialize any listeners.
-// Since all the files will be deleted.
-// No need to try to sync anything.
-add_filter( 'jetpack_sync_modules', '__return_empty_array', 100 );
-
-// Jetpack Sync
-Sender::get_instance()->uninstall();
-
-// Jetpack Backup: Cleanup any leftover Helper Scripts
-Helper_Script_Manager::delete_all_helper_scripts();
+jetpack_uninstall();
diff --git a/plugins/jetpack/vendor/autoload.php b/plugins/jetpack/vendor/autoload.php
index 09a57b54..689d3a5f 100644
--- a/plugins/jetpack/vendor/autoload.php
+++ b/plugins/jetpack/vendor/autoload.php
@@ -4,4 +4,4 @@
require_once __DIR__ . '/composer/autoload_real.php';
-return ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0::getLoader();
+return ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::getLoader();
diff --git a/plugins/jetpack/vendor/autoload_packages.php b/plugins/jetpack/vendor/autoload_packages.php
index 70bd4cfe..43d65ad7 100644
--- a/plugins/jetpack/vendor/autoload_packages.php
+++ b/plugins/jetpack/vendor/autoload_packages.php
@@ -1,125 +1,13 @@
<?php
/**
- * This file `autoload_packages.php`was generated by automattic/jetpack-autoloader.
- *
- * From your plugin include this file with:
- * require_once . plugin_dir_path( __FILE__ ) . '/vendor/autoload_packages.php';
+ * This file was automatically generated by automattic/jetpack-autoloader.
*
* @package automattic/jetpack-autoloader
*/
-// phpcs:disable PHPCompatibility.LanguageConstructs.NewLanguageConstructs.t_ns_separatorFound
-// phpcs:disable PHPCompatibility.Keywords.NewKeywords.t_namespaceFound
-// phpcs:disable PHPCompatibility.Keywords.NewKeywords.t_ns_cFound
-
-namespace Automattic\Jetpack\Autoloader;
-
-if ( ! function_exists( __NAMESPACE__ . '\enqueue_package_class' ) ) {
- global $jetpack_packages_classes;
-
- if ( ! is_array( $jetpack_packages_classes ) ) {
- $jetpack_packages_classes = array();
- }
- /**
- * Adds the version of a package to the $jetpack_packages global array so that
- * the autoloader is able to find it.
- *
- * @param string $class_name Name of the class that you want to autoload.
- * @param string $version Version of the class.
- * @param string $path Absolute path to the class so that we can load it.
- */
- function enqueue_package_class( $class_name, $version, $path ) {
- global $jetpack_packages_classes;
-
- if ( ! isset( $jetpack_packages_classes[ $class_name ] ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
- }
- // If we have a @dev version set always use that one!
- if ( 'dev-' === substr( $jetpack_packages_classes[ $class_name ]['version'], 0, 4 ) ) {
- return;
- }
-
- // Always favour the @dev version. Since that version is the same as bleeding edge.
- // We need to make sure that we don't do this in production!
- if ( 'dev-' === substr( $version, 0, 4 ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
-
- return;
- }
- // Set the latest version!
- if ( version_compare( $jetpack_packages_classes[ $class_name ]['version'], $version, '<' ) ) {
- $jetpack_packages_classes[ $class_name ] = array(
- 'version' => $version,
- 'path' => $path,
- );
- }
- }
-}
-
-if ( ! function_exists( __NAMESPACE__ . '\autoloader' ) ) {
- /**
- * Used for autoloading jetpack packages.
- *
- * @param string $class_name Class Name to load.
- */
- function autoloader( $class_name ) {
- global $jetpack_packages_classes;
-
- if ( isset( $jetpack_packages_classes[ $class_name ] ) ) {
- if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
- if ( function_exists( 'did_action' ) && ! did_action( 'plugins_loaded' ) ) {
- _doing_it_wrong(
- esc_html( $class_name ),
- sprintf(
- /* translators: %s Name of a PHP Class */
- esc_html__( 'Not all plugins have loaded yet but we requested the class %s', 'jetpack' ),
- // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
- $class_name
- ),
- esc_html( $jetpack_packages_classes[ $class_name ]['version'] )
- );
- }
- }
-
- if ( file_exists( $jetpack_packages_classes[ $class_name ]['path'] ) ) {
- require_once $jetpack_packages_classes[ $class_name ]['path'];
-
- return true;
- }
- }
-
- return false;
- }
-
- // Add the jetpack autoloader.
- spl_autoload_register( __NAMESPACE__ . '\autoloader' );
-}
-/**
- * Prepare all the classes for autoloading.
- */
-function enqueue_packages_3ddf029ed8348ddcc3b8bc31397b655d() {
- $class_map = require_once dirname( __FILE__ ) . '/composer/autoload_classmap_package.php';
- foreach ( $class_map as $class_name => $class_info ) {
- enqueue_package_class( $class_name, $class_info['version'], $class_info['path'] );
- }
-
- $autoload_file = __DIR__ . '/composer/autoload_files.php';
- $includeFiles = file_exists( $autoload_file )
- ? require $autoload_file
- : array();
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
- foreach ( $includeFiles as $fileIdentifier => $file ) {
- if ( empty( $GLOBALS['__composer_autoload_files'][ $fileIdentifier ] ) ) {
- require $file;
+ // phpcs:ignore
- $GLOBALS['__composer_autoload_files'][ $fileIdentifier ] = true;
- }
- }
-}
-enqueue_packages_3ddf029ed8348ddcc3b8bc31397b655d();
+require_once __DIR__ . '/jetpack-autoloader/class-autoloader.php';
+Autoloader::init();
diff --git a/plugins/jetpack/vendor/composer/ClassLoader.php b/plugins/jetpack/vendor/composer/ClassLoader.php
index fce8549f..0cd6055d 100644
--- a/plugins/jetpack/vendor/composer/ClassLoader.php
+++ b/plugins/jetpack/vendor/composer/ClassLoader.php
@@ -37,57 +37,130 @@ namespace Composer\Autoload;
*
* @author Fabien Potencier <fabien@symfony.com>
* @author Jordi Boggiano <j.boggiano@seld.be>
- * @see http://www.php-fig.org/psr/psr-0/
- * @see http://www.php-fig.org/psr/psr-4/
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
*/
class ClassLoader
{
+ /** @var ?string */
+ private $vendorDir;
+
// PSR-4
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<string, int>>
+ */
private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<int, string>>
+ */
private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
private $fallbackDirsPsr4 = array();
// PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array<string, array<string, string[]>>
+ */
private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array<string, string>
+ */
private $fallbackDirsPsr0 = array();
+ /** @var bool */
private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array<string, string>
+ */
private $classMap = array();
+
+ /** @var bool */
private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array<string, bool>
+ */
private $missingClasses = array();
+
+ /** @var ?string */
private $apcuPrefix;
+ /**
+ * @var self[]
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param ?string $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ /**
+ * @return string[]
+ */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
- return call_user_func_array('array_merge', $this->prefixesPsr0);
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
}
return array();
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, array<int, string>>
+ */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
+ /**
+ * @return array[]
+ * @psalm-return array<string, string>
+ */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-var array<string, string>
+ */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array<string, string> $classMap
+ *
+ * @return void
*/
public function addClassMap(array $classMap)
{
@@ -102,9 +175,11 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
*/
public function add($prefix, $paths, $prepend = false)
{
@@ -147,11 +222,13 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
@@ -195,8 +272,10 @@ class ClassLoader
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 base directories
+ *
+ * @return void
*/
public function set($prefix, $paths)
{
@@ -211,10 +290,12 @@ class ClassLoader
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -234,6 +315,8 @@ class ClassLoader
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
+ *
+ * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -256,6 +339,8 @@ class ClassLoader
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
+ *
+ * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -276,6 +361,8 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
+ *
+ * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@@ -296,25 +383,44 @@ class ClassLoader
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
}
/**
* Unregisters this instance as an autoloader.
+ *
+ * @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
- * @return bool|null True if loaded, null otherwise
+ * @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
@@ -323,6 +429,8 @@ class ClassLoader
return true;
}
+
+ return null;
}
/**
@@ -367,6 +475,21 @@ class ClassLoader
return $file;
}
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -438,6 +561,10 @@ class ClassLoader
* Scope isolated include.
*
* Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ * @private
*/
function includeFile($file)
{
diff --git a/plugins/jetpack/vendor/composer/InstalledVersions.php b/plugins/jetpack/vendor/composer/InstalledVersions.php
new file mode 100644
index 00000000..7c5502ca
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/InstalledVersions.php
@@ -0,0 +1,337 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ * Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer;
+
+use Composer\Autoload\ClassLoader;
+use Composer\Semver\VersionParser;
+
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ */
+class InstalledVersions
+{
+ private static $installed;
+ private static $canGetVendors;
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list<string>
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints($constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = require __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+ $installed[] = self::$installed;
+
+ return $installed;
+ }
+}
diff --git a/plugins/jetpack/vendor/composer/autoload_classmap.php b/plugins/jetpack/vendor/composer/autoload_classmap.php
index 7e8f8308..f7fb81c7 100644
--- a/plugins/jetpack/vendor/composer/autoload_classmap.php
+++ b/plugins/jetpack/vendor/composer/autoload_classmap.php
@@ -6,80 +6,151 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'Automattic\\Jetpack\\Abtest' => $vendorDir . '/automattic/jetpack-abtest/src/class-abtest.php',
- 'Automattic\\Jetpack\\Assets' => $vendorDir . '/automattic/jetpack-assets/src/class-assets.php',
- 'Automattic\\Jetpack\\Assets\\Logo' => $vendorDir . '/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => $baseDir . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php',
+ 'Automattic\\Jetpack\\Abtest' => $baseDir . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php',
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => $baseDir . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php',
+ 'Automattic\\Jetpack\\Assets' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php',
+ 'Automattic\\Jetpack\\Assets\\Logo' => $baseDir . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\Assets\\Semver' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php',
'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php',
'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php',
- 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => $vendorDir . '/automattic/jetpack-backup/src/class-helper-script-manager.php',
- 'Automattic\\Jetpack\\Config' => $vendorDir . '/automattic/jetpack-config/src/class-config.php',
- 'Automattic\\Jetpack\\Connection\\Client' => $vendorDir . '/automattic/jetpack-connection/src/class-client.php',
- 'Automattic\\Jetpack\\Connection\\Manager' => $vendorDir . '/automattic/jetpack-connection/src/class-manager.php',
- 'Automattic\\Jetpack\\Connection\\Manager_Interface' => $vendorDir . '/automattic/jetpack-connection/src/interface-manager.php',
- 'Automattic\\Jetpack\\Connection\\REST_Connector' => $vendorDir . '/automattic/jetpack-connection/src/class-rest-connector.php',
- 'Automattic\\Jetpack\\Connection\\Utils' => $vendorDir . '/automattic/jetpack-connection/src/class-utils.php',
- 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => $vendorDir . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
- 'Automattic\\Jetpack\\Constants' => $vendorDir . '/automattic/jetpack-constants/src/class-constants.php',
- 'Automattic\\Jetpack\\Error' => $vendorDir . '/automattic/jetpack-error/src/class-error.php',
- 'Automattic\\Jetpack\\JITM' => $vendorDir . '/automattic/jetpack-jitm/src/class-jitm.php',
- 'Automattic\\Jetpack\\Partner' => $vendorDir . '/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php',
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php',
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Blocks' => $baseDir . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php',
+ 'Automattic\\Jetpack\\Composer\\Manager' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-manager.php',
+ 'Automattic\\Jetpack\\Composer\\Plugin' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Config' => $baseDir . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php',
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Manager' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php',
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php',
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php',
+ 'Automattic\\Jetpack\\Connection\\Secrets' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php',
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php',
+ 'Automattic\\Jetpack\\Connection\\Tokens' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php',
+ 'Automattic\\Jetpack\\Connection\\Urls' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php',
+ 'Automattic\\Jetpack\\Connection\\Utils' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php',
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
+ 'Automattic\\Jetpack\\Constants' => $baseDir . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php',
+ 'Automattic\\Jetpack\\Device_Detection' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php',
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php',
+ 'Automattic\\Jetpack\\Error' => $baseDir . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php',
+ 'Automattic\\Jetpack\\Heartbeat' => $baseDir . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php',
+ 'Automattic\\Jetpack\\Identity_Crisis' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php',
+ 'Automattic\\Jetpack\\JITMS\\JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php',
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => $baseDir . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php',
+ 'Automattic\\Jetpack\\Licensing' => $baseDir . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php',
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => $baseDir . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php',
+ 'Automattic\\Jetpack\\Partner' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Partner_Coupon' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php',
+ 'Automattic\\Jetpack\\Password_Checker' => $baseDir . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php',
'Automattic\\Jetpack\\Plugin\\Tracking' => $baseDir . '/src/class-tracking.php',
- 'Automattic\\Jetpack\\Roles' => $vendorDir . '/automattic/jetpack-roles/src/class-roles.php',
- 'Automattic\\Jetpack\\Status' => $vendorDir . '/automattic/jetpack-status/src/class-status.php',
- 'Automattic\\Jetpack\\Sync\\Actions' => $vendorDir . '/automattic/jetpack-sync/src/class-actions.php',
- 'Automattic\\Jetpack\\Sync\\Codec_Interface' => $vendorDir . '/automattic/jetpack-sync/src/interface-codec.php',
- 'Automattic\\Jetpack\\Sync\\Defaults' => $vendorDir . '/automattic/jetpack-sync/src/class-defaults.php',
- 'Automattic\\Jetpack\\Sync\\Functions' => $vendorDir . '/automattic/jetpack-sync/src/class-functions.php',
- 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => $vendorDir . '/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
- 'Automattic\\Jetpack\\Sync\\Listener' => $vendorDir . '/automattic/jetpack-sync/src/class-listener.php',
- 'Automattic\\Jetpack\\Sync\\Lock' => $vendorDir . '/automattic/jetpack-sync/src/class-lock.php',
- 'Automattic\\Jetpack\\Sync\\Main' => $vendorDir . '/automattic/jetpack-sync/src/class-main.php',
- 'Automattic\\Jetpack\\Sync\\Modules' => $vendorDir . '/automattic/jetpack-sync/src/class-modules.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-attachments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-callables.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-comments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-constants.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-full-sync.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Import' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-import.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-menus.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-meta.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Module' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-module.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-network-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Options' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-plugins.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-posts.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-protect.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-stats.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-term-relationships.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-terms.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-themes.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-updates.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Users' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => $vendorDir . '/automattic/jetpack-sync/src/modules/class-woocommerce.php',
- 'Automattic\\Jetpack\\Sync\\Queue' => $vendorDir . '/automattic/jetpack-sync/src/class-queue.php',
- 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => $vendorDir . '/automattic/jetpack-sync/src/class-queue-buffer.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore' => $vendorDir . '/automattic/jetpack-sync/src/class-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => $vendorDir . '/automattic/jetpack-sync/src/interface-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Sender' => $vendorDir . '/automattic/jetpack-sync/src/class-sender.php',
- 'Automattic\\Jetpack\\Sync\\Server' => $vendorDir . '/automattic/jetpack-sync/src/class-server.php',
- 'Automattic\\Jetpack\\Sync\\Settings' => $vendorDir . '/automattic/jetpack-sync/src/class-settings.php',
- 'Automattic\\Jetpack\\Sync\\Simple_Codec' => $vendorDir . '/automattic/jetpack-sync/src/class-simple-codec.php',
- 'Automattic\\Jetpack\\Sync\\Users' => $vendorDir . '/automattic/jetpack-sync/src/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Utils' => $vendorDir . '/automattic/jetpack-sync/src/class-utils.php',
- 'Automattic\\Jetpack\\Terms_Of_Service' => $vendorDir . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
- 'Automattic\\Jetpack\\Tracking' => $vendorDir . '/automattic/jetpack-tracking/src/class-tracking.php',
- 'JetpackTracking' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
- 'Jetpack_Client' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-client.php',
- 'Jetpack_IXR_Client' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
- 'Jetpack_IXR_ClientMulticall' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
- 'Jetpack_Options' => $vendorDir . '/automattic/jetpack-options/legacy/class-jetpack-options.php',
- 'Jetpack_Signature' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
- 'Jetpack_Sync_Actions' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
- 'Jetpack_Sync_Modules' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
- 'Jetpack_Sync_Settings' => $vendorDir . '/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
- 'Jetpack_Tracks_Client' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
- 'Jetpack_Tracks_Event' => $vendorDir . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
- 'Jetpack_XMLRPC_Server' => $vendorDir . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Automattic\\Jetpack\\Redirect' => $baseDir . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php',
+ 'Automattic\\Jetpack\\Roles' => $baseDir . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php',
+ 'Automattic\\Jetpack\\Search\\Helper' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php',
+ 'Automattic\\Jetpack\\Search\\Module_Control' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php',
+ 'Automattic\\Jetpack\\Search\\Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php',
+ 'Automattic\\Jetpack\\Search\\Plan' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php',
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Search\\Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php',
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php',
+ 'Automattic\\Jetpack\\Status' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php',
+ 'Automattic\\Jetpack\\Status\\Host' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php',
+ 'Automattic\\Jetpack\\Sync\\Actions' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php',
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Defaults' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php',
+ 'Automattic\\Jetpack\\Sync\\Functions' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php',
+ 'Automattic\\Jetpack\\Sync\\Health' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php',
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Listener' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php',
+ 'Automattic\\Jetpack\\Sync\\Lock' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php',
+ 'Automattic\\Jetpack\\Sync\\Main' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php',
+ 'Automattic\\Jetpack\\Sync\\Modules' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php',
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Sync\\Queue' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php',
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Sender' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Server' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php',
+ 'Automattic\\Jetpack\\Sync\\Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php',
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Users' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Utils' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php',
+ 'Automattic\\Jetpack\\Terms_Of_Service' => $baseDir . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
+ 'Automattic\\Jetpack\\Tracking' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php',
+ 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php',
+ 'JetpackTracking' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
+ 'Jetpack_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php',
+ 'Jetpack_IXR_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
+ 'Jetpack_IXR_ClientMulticall' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
+ 'Jetpack_Options' => $baseDir . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php',
+ 'Jetpack_Signature' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
+ 'Jetpack_Sync_Actions' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
+ 'Jetpack_Sync_Modules' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
+ 'Jetpack_Sync_Settings' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
+ 'Jetpack_Tracks_Client' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
+ 'Jetpack_Tracks_Event' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
+ 'Jetpack_XMLRPC_Server' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Twitter\\Text\\Autolink' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php',
+ 'Twitter\\Text\\Configuration' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php',
+ 'Twitter\\Text\\EmojiRegex' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php',
+ 'Twitter\\Text\\Extractor' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php',
+ 'Twitter\\Text\\HitHighlighter' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php',
+ 'Twitter\\Text\\ParseResults' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php',
+ 'Twitter\\Text\\Parser' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php',
+ 'Twitter\\Text\\Regex' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php',
+ 'Twitter\\Text\\StringUtils' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php',
+ 'Twitter\\Text\\TldLists' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php',
+ 'Twitter\\Text\\Validator' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php',
);
diff --git a/plugins/jetpack/vendor/composer/autoload_files.php b/plugins/jetpack/vendor/composer/autoload_files.php
index 0d7f6fca..61d2a978 100644
--- a/plugins/jetpack/vendor/composer/autoload_files.php
+++ b/plugins/jetpack/vendor/composer/autoload_files.php
@@ -6,7 +6,7 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
- 'bce4ecd6aabb2a2948e06d0e2c4ea9a6' => $vendorDir . '/automattic/jetpack-connection/legacy/load-ixr.php',
- 'd4eb94df91a729802d18373ee8cdc79f' => $vendorDir . '/automattic/jetpack-backup/actions.php',
- '009de6aaa0d497eacea41fab13fc05f1' => $vendorDir . '/automattic/jetpack-compat/functions.php',
+ '3773ef3f09c37da5478d578e32b03a4b' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/actions.php',
+ 'd4eb94df91a729802d18373ee8cdc79f' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/actions.php',
+ '009de6aaa0d497eacea41fab13fc05f1' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/functions.php',
);
diff --git a/plugins/jetpack/vendor/composer/autoload_namespaces.php b/plugins/jetpack/vendor/composer/autoload_namespaces.php
index b7fc0125..53e84e22 100644
--- a/plugins/jetpack/vendor/composer/autoload_namespaces.php
+++ b/plugins/jetpack/vendor/composer/autoload_namespaces.php
@@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);
return array(
+ 'Twitter\\Text\\' => array($vendorDir . '/nojimage/twitter-text-php/lib'),
);
diff --git a/plugins/jetpack/vendor/composer/autoload_real.php b/plugins/jetpack/vendor/composer/autoload_real.php
index 0f957592..e7a173b9 100644
--- a/plugins/jetpack/vendor/composer/autoload_real.php
+++ b/plugins/jetpack/vendor/composer/autoload_real.php
@@ -2,7 +2,7 @@
// autoload_real.php @generated by Composer
-class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
+class ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5
{
private static $loader;
@@ -13,21 +13,26 @@ class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
}
}
+ /**
+ * @return \Composer\Autoload\ClassLoader
+ */
public static function getLoader()
{
if (null !== self::$loader) {
return self::$loader;
}
- spl_autoload_register(array('ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
- spl_autoload_unregister(array('ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0', 'loadClassLoader'));
+ require __DIR__ . '/platform_check.php';
+
+ spl_autoload_register(array('ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5', 'loadClassLoader'), true, true);
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
+ spl_autoload_unregister(array('ComposerAutoloaderInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5', 'loadClassLoader'));
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
if ($useStaticLoader) {
- require_once __DIR__ . '/autoload_static.php';
+ require __DIR__ . '/autoload_static.php';
- call_user_func(\Composer\Autoload\ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::getInitializer($loader));
+ call_user_func(\Composer\Autoload\ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::getInitializer($loader));
} else {
$classMap = require __DIR__ . '/autoload_classmap.php';
if ($classMap) {
@@ -39,19 +44,19 @@ class ComposerAutoloaderInitb971f5b5f09f65d7b815d2961dc675a0
$loader->register(true);
if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$files;
+ $includeFiles = Composer\Autoload\ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$files;
} else {
$includeFiles = require __DIR__ . '/autoload_files.php';
}
foreach ($includeFiles as $fileIdentifier => $file) {
- composerRequireb971f5b5f09f65d7b815d2961dc675a0($fileIdentifier, $file);
+ composerRequiref11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5($fileIdentifier, $file);
}
return $loader;
}
}
-function composerRequireb971f5b5f09f65d7b815d2961dc675a0($fileIdentifier, $file)
+function composerRequiref11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
require $file;
diff --git a/plugins/jetpack/vendor/composer/autoload_static.php b/plugins/jetpack/vendor/composer/autoload_static.php
index ce37ceaf..b5f147a9 100644
--- a/plugins/jetpack/vendor/composer/autoload_static.php
+++ b/plugins/jetpack/vendor/composer/autoload_static.php
@@ -4,12 +4,12 @@
namespace Composer\Autoload;
-class ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0
+class ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5
{
public static $files = array (
- 'bce4ecd6aabb2a2948e06d0e2c4ea9a6' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/load-ixr.php',
- 'd4eb94df91a729802d18373ee8cdc79f' => __DIR__ . '/..' . '/automattic/jetpack-backup/actions.php',
- '009de6aaa0d497eacea41fab13fc05f1' => __DIR__ . '/..' . '/automattic/jetpack-compat/functions.php',
+ '3773ef3f09c37da5478d578e32b03a4b' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/actions.php',
+ 'd4eb94df91a729802d18373ee8cdc79f' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/actions.php',
+ '009de6aaa0d497eacea41fab13fc05f1' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/functions.php',
);
public static $prefixLengthsPsr4 = array (
@@ -26,91 +26,173 @@ class ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0
),
);
+ public static $prefixesPsr0 = array (
+ 'T' =>
+ array (
+ 'Twitter\\Text\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib',
+ ),
+ ),
+ );
+
public static $classMap = array (
- 'Automattic\\Jetpack\\Abtest' => __DIR__ . '/..' . '/automattic/jetpack-abtest/src/class-abtest.php',
- 'Automattic\\Jetpack\\Assets' => __DIR__ . '/..' . '/automattic/jetpack-assets/src/class-assets.php',
- 'Automattic\\Jetpack\\Assets\\Logo' => __DIR__ . '/..' . '/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php',
+ 'Automattic\\Jetpack\\Abtest' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php',
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php',
+ 'Automattic\\Jetpack\\Assets' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php',
+ 'Automattic\\Jetpack\\Assets\\Logo' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php',
+ 'Automattic\\Jetpack\\Assets\\Semver' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php',
'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php',
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php',
'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php',
- 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => __DIR__ . '/..' . '/automattic/jetpack-backup/src/class-helper-script-manager.php',
- 'Automattic\\Jetpack\\Config' => __DIR__ . '/..' . '/automattic/jetpack-config/src/class-config.php',
- 'Automattic\\Jetpack\\Connection\\Client' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-client.php',
- 'Automattic\\Jetpack\\Connection\\Manager' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-manager.php',
- 'Automattic\\Jetpack\\Connection\\Manager_Interface' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/interface-manager.php',
- 'Automattic\\Jetpack\\Connection\\REST_Connector' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-rest-connector.php',
- 'Automattic\\Jetpack\\Connection\\Utils' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-utils.php',
- 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => __DIR__ . '/..' . '/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
- 'Automattic\\Jetpack\\Constants' => __DIR__ . '/..' . '/automattic/jetpack-constants/src/class-constants.php',
- 'Automattic\\Jetpack\\Error' => __DIR__ . '/..' . '/automattic/jetpack-error/src/class-error.php',
- 'Automattic\\Jetpack\\JITM' => __DIR__ . '/..' . '/automattic/jetpack-jitm/src/class-jitm.php',
- 'Automattic\\Jetpack\\Partner' => __DIR__ . '/..' . '/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => __DIR__ . '/..' . '/automattic/jetpack-autoloader/src/ManifestGenerator.php',
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php',
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Blocks' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php',
+ 'Automattic\\Jetpack\\Composer\\Manager' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-manager.php',
+ 'Automattic\\Jetpack\\Composer\\Plugin' => __DIR__ . '/..' . '/automattic/jetpack-composer-plugin/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Config' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php',
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php',
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php',
+ 'Automattic\\Jetpack\\Connection\\Manager' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php',
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php',
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php',
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php',
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php',
+ 'Automattic\\Jetpack\\Connection\\Secrets' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php',
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php',
+ 'Automattic\\Jetpack\\Connection\\Tokens' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php',
+ 'Automattic\\Jetpack\\Connection\\Urls' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php',
+ 'Automattic\\Jetpack\\Connection\\Utils' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php',
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php',
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php',
+ 'Automattic\\Jetpack\\Constants' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php',
+ 'Automattic\\Jetpack\\Device_Detection' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php',
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php',
+ 'Automattic\\Jetpack\\Error' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php',
+ 'Automattic\\Jetpack\\Heartbeat' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php',
+ 'Automattic\\Jetpack\\Identity_Crisis' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php',
+ 'Automattic\\Jetpack\\JITMS\\JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php',
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php',
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php',
+ 'Automattic\\Jetpack\\Licensing' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php',
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php',
+ 'Automattic\\Jetpack\\Partner' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php',
+ 'Automattic\\Jetpack\\Partner_Coupon' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php',
+ 'Automattic\\Jetpack\\Password_Checker' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php',
'Automattic\\Jetpack\\Plugin\\Tracking' => __DIR__ . '/../..' . '/src/class-tracking.php',
- 'Automattic\\Jetpack\\Roles' => __DIR__ . '/..' . '/automattic/jetpack-roles/src/class-roles.php',
- 'Automattic\\Jetpack\\Status' => __DIR__ . '/..' . '/automattic/jetpack-status/src/class-status.php',
- 'Automattic\\Jetpack\\Sync\\Actions' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-actions.php',
- 'Automattic\\Jetpack\\Sync\\Codec_Interface' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/interface-codec.php',
- 'Automattic\\Jetpack\\Sync\\Defaults' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-defaults.php',
- 'Automattic\\Jetpack\\Sync\\Functions' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-functions.php',
- 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
- 'Automattic\\Jetpack\\Sync\\Listener' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-listener.php',
- 'Automattic\\Jetpack\\Sync\\Lock' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-lock.php',
- 'Automattic\\Jetpack\\Sync\\Main' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-main.php',
- 'Automattic\\Jetpack\\Sync\\Modules' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-modules.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-attachments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-callables.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-comments.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-constants.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-full-sync.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Import' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-import.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-menus.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-meta.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Module' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-module.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-network-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Options' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-options.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-plugins.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-posts.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-protect.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-stats.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-term-relationships.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-terms.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-themes.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-updates.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\Users' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
- 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/modules/class-woocommerce.php',
- 'Automattic\\Jetpack\\Sync\\Queue' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-queue.php',
- 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-queue-buffer.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/interface-replicastore.php',
- 'Automattic\\Jetpack\\Sync\\Sender' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-sender.php',
- 'Automattic\\Jetpack\\Sync\\Server' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-server.php',
- 'Automattic\\Jetpack\\Sync\\Settings' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-settings.php',
- 'Automattic\\Jetpack\\Sync\\Simple_Codec' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-simple-codec.php',
- 'Automattic\\Jetpack\\Sync\\Users' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-users.php',
- 'Automattic\\Jetpack\\Sync\\Utils' => __DIR__ . '/..' . '/automattic/jetpack-sync/src/class-utils.php',
- 'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/..' . '/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
- 'Automattic\\Jetpack\\Tracking' => __DIR__ . '/..' . '/automattic/jetpack-tracking/src/class-tracking.php',
- 'JetpackTracking' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
- 'Jetpack_Client' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-client.php',
- 'Jetpack_IXR_Client' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
- 'Jetpack_IXR_ClientMulticall' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
- 'Jetpack_Options' => __DIR__ . '/..' . '/automattic/jetpack-options/legacy/class-jetpack-options.php',
- 'Jetpack_Signature' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
- 'Jetpack_Sync_Actions' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
- 'Jetpack_Sync_Modules' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
- 'Jetpack_Sync_Settings' => __DIR__ . '/..' . '/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
- 'Jetpack_Tracks_Client' => __DIR__ . '/..' . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
- 'Jetpack_Tracks_Event' => __DIR__ . '/..' . '/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
- 'Jetpack_XMLRPC_Server' => __DIR__ . '/..' . '/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Automattic\\Jetpack\\Redirect' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php',
+ 'Automattic\\Jetpack\\Roles' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php',
+ 'Automattic\\Jetpack\\Search\\Helper' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php',
+ 'Automattic\\Jetpack\\Search\\Module_Control' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php',
+ 'Automattic\\Jetpack\\Search\\Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php',
+ 'Automattic\\Jetpack\\Search\\Plan' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php',
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php',
+ 'Automattic\\Jetpack\\Search\\Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php',
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php',
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php',
+ 'Automattic\\Jetpack\\Status' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php',
+ 'Automattic\\Jetpack\\Status\\Host' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php',
+ 'Automattic\\Jetpack\\Sync\\Actions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php',
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Defaults' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php',
+ 'Automattic\\Jetpack\\Sync\\Functions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php',
+ 'Automattic\\Jetpack\\Sync\\Health' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php',
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Listener' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php',
+ 'Automattic\\Jetpack\\Sync\\Lock' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php',
+ 'Automattic\\Jetpack\\Sync\\Main' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php',
+ 'Automattic\\Jetpack\\Sync\\Modules' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php',
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php',
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php',
+ 'Automattic\\Jetpack\\Sync\\Queue' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php',
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php',
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php',
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php',
+ 'Automattic\\Jetpack\\Sync\\Sender' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php',
+ 'Automattic\\Jetpack\\Sync\\Server' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php',
+ 'Automattic\\Jetpack\\Sync\\Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php',
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php',
+ 'Automattic\\Jetpack\\Sync\\Users' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php',
+ 'Automattic\\Jetpack\\Sync\\Utils' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php',
+ 'Automattic\\Jetpack\\Terms_Of_Service' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php',
+ 'Automattic\\Jetpack\\Tracking' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php',
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ 'JetpackTracking' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php',
+ 'Jetpack_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php',
+ 'Jetpack_IXR_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php',
+ 'Jetpack_IXR_ClientMulticall' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php',
+ 'Jetpack_Options' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php',
+ 'Jetpack_Signature' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php',
+ 'Jetpack_Sync_Actions' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php',
+ 'Jetpack_Sync_Modules' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php',
+ 'Jetpack_Sync_Settings' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php',
+ 'Jetpack_Tracks_Client' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php',
+ 'Jetpack_Tracks_Event' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php',
+ 'Jetpack_XMLRPC_Server' => __DIR__ . '/../..' . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php',
+ 'Twitter\\Text\\Autolink' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php',
+ 'Twitter\\Text\\Configuration' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php',
+ 'Twitter\\Text\\EmojiRegex' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php',
+ 'Twitter\\Text\\Extractor' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php',
+ 'Twitter\\Text\\HitHighlighter' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php',
+ 'Twitter\\Text\\ParseResults' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php',
+ 'Twitter\\Text\\Parser' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php',
+ 'Twitter\\Text\\Regex' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php',
+ 'Twitter\\Text\\StringUtils' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php',
+ 'Twitter\\Text\\TldLists' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php',
+ 'Twitter\\Text\\Validator' => __DIR__ . '/..' . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->prefixLengthsPsr4 = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$prefixLengthsPsr4;
- $loader->prefixDirsPsr4 = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$prefixDirsPsr4;
- $loader->classMap = ComposerStaticInitb971f5b5f09f65d7b815d2961dc675a0::$classMap;
+ $loader->prefixLengthsPsr4 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixDirsPsr4;
+ $loader->prefixesPsr0 = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$prefixesPsr0;
+ $loader->classMap = ComposerStaticInitf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5::$classMap;
}, null, ClassLoader::class);
}
diff --git a/plugins/jetpack/vendor/composer/installed.json b/plugins/jetpack/vendor/composer/installed.json
index eabb2133..414fda0a 100644
--- a/plugins/jetpack/vendor/composer/installed.json
+++ b/plugins/jetpack/vendor/composer/installed.json
@@ -1,642 +1,1759 @@
-[
- {
- "name": "automattic/jetpack-abtest",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-abtest.git",
- "reference": "faed5181e0dbe596b7e083e40affceed686928ba"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-abtest/zipball/faed5181e0dbe596b7e083e40affceed686928ba",
- "reference": "faed5181e0dbe596b7e083e40affceed686928ba",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-error": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Provides an interface to the WP.com A/B tests."
- },
- {
- "name": "automattic/jetpack-assets",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-assets.git",
- "reference": "157b2d4adfddc7cc395929b6a0de8ab43bc52155"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/157b2d4adfddc7cc395929b6a0de8ab43bc52155",
- "reference": "157b2d4adfddc7cc395929b6a0de8ab43bc52155",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev"
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Asset management utilities for Jetpack ecosystem packages"
- },
- {
- "name": "automattic/jetpack-autoloader",
- "version": "v1.4.0",
- "version_normalized": "1.4.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-autoloader.git",
- "reference": "3cb0ad8496d04a648435ebee7c2a652c80eaf550"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/3cb0ad8496d04a648435ebee7c2a652c80eaf550",
- "reference": "3cb0ad8496d04a648435ebee7c2a652c80eaf550",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-22T17:49:03+00:00",
- "type": "composer-plugin",
- "extra": {
- "class": "Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin"
- },
- "installation-source": "dist",
- "autoload": {
- "psr-4": {
- "Automattic\\Jetpack\\Autoloader\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Creates a custom autoloader for a plugin or theme."
- },
- {
- "name": "automattic/jetpack-backup",
- "version": "v1.0.2",
- "version_normalized": "1.0.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-backup.git",
- "reference": "ea2aaa9be3697d8b885a74a11411c7818fba5a75"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-backup/zipball/ea2aaa9be3697d8b885a74a11411c7818fba5a75",
- "reference": "ea2aaa9be3697d8b885a74a11411c7818fba5a75",
- "shasum": ""
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "actions.php"
- ],
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Tools to assist with backing up Jetpack sites."
- },
- {
- "name": "automattic/jetpack-compat",
- "version": "v1.0.5",
- "version_normalized": "1.0.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-compat.git",
- "reference": "2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-compat/zipball/2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf",
- "reference": "2a4a2fd64bbcaab0a6af6dfe3a5ea8342eca9cbf",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "functions.php"
- ],
- "classmap": [
- "legacy"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Compatibility layer with previous versions of Jetpack"
- },
- {
- "name": "automattic/jetpack-config",
- "version": "v1.1.0",
- "version_normalized": "1.1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-config.git",
- "reference": "df7cfce4231fb50e8cd433a6ccf52e99a269c16c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-config/zipball/df7cfce4231fb50e8cd433a6ccf52e99a269c16c",
- "reference": "df7cfce4231fb50e8cd433a6ccf52e99a269c16c",
- "shasum": ""
- },
- "time": "2020-01-21T22:42:22+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Jetpack configuration package that initializes other packages and configures Jetpack's functionality. Can be used as a base for all variants of Jetpack package usage."
- },
- {
- "name": "automattic/jetpack-connection",
- "version": "v1.8.0",
- "version_normalized": "1.8.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-connection.git",
- "reference": "e9e898ca3acb174a418637cac69355d6aad89762"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/e9e898ca3acb174a418637cac69355d6aad89762",
- "reference": "e9e898ca3acb174a418637cac69355d6aad89762",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-roles": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:20:58+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "files": [
- "legacy/load-ixr.php"
- ],
- "classmap": [
- "legacy",
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything needed to connect to the Jetpack infrastructure"
- },
- {
- "name": "automattic/jetpack-constants",
- "version": "v1.1.3",
- "version_normalized": "1.1.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-constants.git",
- "reference": "5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a",
- "reference": "5fdd94dec1151e7defd684a97e0b64fe6ff1bd3a",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A wrapper for defining constants in a more testable way."
- },
- {
- "name": "automattic/jetpack-error",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-error.git",
- "reference": "2128dd5a666154506727010350518529cc87b23d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-error/zipball/2128dd5a666154506727010350518529cc87b23d",
- "reference": "2128dd5a666154506727010350518529cc87b23d",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Jetpack Error - a wrapper around WP_Error."
- },
- {
- "name": "automattic/jetpack-jitm",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-jitm.git",
- "reference": "3d8419a38d5ea45c174f98a30e0420011e4bc01c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-jitm/zipball/3d8419a38d5ea45c174f98a30e0420011e4bc01c",
- "reference": "3d8419a38d5ea45c174f98a30e0420011e4bc01c",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-assets": "@dev",
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-logo": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-tracking": "@dev"
- },
- "require-dev": {
- "mockery/mockery": "^1.2",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-21T22:42:22+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Just in time messages for Jetpack"
- },
- {
- "name": "automattic/jetpack-logo",
- "version": "v1.1.4",
- "version_normalized": "1.1.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-logo.git",
- "reference": "7da178a529f772cddfd0bbf1775eb30a852739c2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-logo/zipball/7da178a529f772cddfd0bbf1775eb30a852739c2",
- "reference": "7da178a529f772cddfd0bbf1775eb30a852739c2",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A logo for Jetpack"
- },
- {
- "name": "automattic/jetpack-options",
- "version": "v1.1.2",
- "version_normalized": "1.1.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-options.git",
- "reference": "cc81a75b7b3fecd1155a517a057ca74975ca8b5d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/cc81a75b7b3fecd1155a517a057ca74975ca8b5d",
- "reference": "cc81a75b7b3fecd1155a517a057ca74975ca8b5d",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-constants": "@dev"
- },
- "require-dev": {
- "10up/wp_mock": "0.4.2",
- "phpunit/phpunit": "7.*.*"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "legacy"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "A wrapper for wp-options to manage specific Jetpack options."
- },
- {
- "name": "automattic/jetpack-partner",
- "version": "v1.0.1",
- "version_normalized": "1.0.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-partner.git",
- "reference": "866dfe161654acd18115b94aa117186f53a6ee6d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-partner/zipball/866dfe161654acd18115b94aa117186f53a6ee6d",
- "reference": "866dfe161654acd18115b94aa117186f53a6ee6d",
- "shasum": ""
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "mockery/mockery": "^1.2",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Support functions for Jetpack hosting partners."
- },
- {
- "name": "automattic/jetpack-roles",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-roles.git",
- "reference": "0cdcff4fdc489c79f20a361c084ec48e326ce483"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/0cdcff4fdc489c79f20a361c084ec48e326ce483",
- "reference": "0cdcff4fdc489c79f20a361c084ec48e326ce483",
- "shasum": ""
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Utilities, related with user roles and capabilities."
- },
- {
- "name": "automattic/jetpack-status",
- "version": "v1.1.1",
- "version_normalized": "1.1.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-status.git",
- "reference": "c688b03859381e66164c821971e851408a5e232a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/c688b03859381e66164c821971e851408a5e232a",
- "reference": "c688b03859381e66164c821971e851408a5e232a",
- "shasum": ""
- },
- "require-dev": {
- "brain/monkey": "2.4.0",
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2020-01-27T11:04:11+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Used to retrieve information about the current status of Jetpack and the site overall."
- },
- {
- "name": "automattic/jetpack-sync",
- "version": "dev-fork/jetpack-sync-v1.7.4+vip",
- "version_normalized": "dev-fork/jetpack-sync-v1.7.4+vip",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-sync.git",
- "reference": "070a46e38d34a0ceba15b9d4b0de115fbe76b20f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-sync/zipball/070a46e38d34a0ceba15b9d4b0de115fbe76b20f",
- "reference": "070a46e38d34a0ceba15b9d4b0de115fbe76b20f",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-constants": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-roles": "@dev",
- "automattic/jetpack-status": "@dev"
- },
- "time": "2020-02-14T17:53:00+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything needed to allow syncing to the WP.com infrastructure."
- },
- {
- "name": "automattic/jetpack-terms-of-service",
- "version": "v1.0.4",
- "version_normalized": "1.0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
- "reference": "fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952",
- "reference": "fcee8e9de7f37d36bd68ac1ebabdb15cf6e10952",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-connection": "@dev",
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-status": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-15T16:03:27+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Everything need to manage the terms of service state"
- },
- {
- "name": "automattic/jetpack-tracking",
- "version": "v1.2.2",
- "version_normalized": "1.2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Automattic/jetpack-tracking.git",
- "reference": "d337a8f4234c684e80a43ff9ad3051a46a1f35d6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/d337a8f4234c684e80a43ff9ad3051a46a1f35d6",
- "reference": "d337a8f4234c684e80a43ff9ad3051a46a1f35d6",
- "shasum": ""
- },
- "require": {
- "automattic/jetpack-options": "@dev",
- "automattic/jetpack-terms-of-service": "@dev"
- },
- "require-dev": {
- "php-mock/php-mock": "^2.1",
- "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5"
- },
- "time": "2019-11-08T21:16:05+00:00",
- "type": "library",
- "installation-source": "dist",
- "autoload": {
- "classmap": [
- "legacy",
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0-or-later"
- ],
- "description": "Tracking for Jetpack"
- }
-]
+{
+ "packages": [
+ {
+ "name": "automattic/jetpack-a8c-mc-stats",
+ "version": "v1.4.11",
+ "version_normalized": "1.4.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-a8c-mc-stats.git",
+ "reference": "6e7d7c8b9c996f04978b834e4c3484bd2d916998"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-a8c-mc-stats/zipball/6e7d7c8b9c996f04978b834e4c3484bd2d916998",
+ "reference": "6e7d7c8b9c996f04978b834e4c3484bd2d916998",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:24+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-a8c-mc-stats",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-a8c-mc-stats/tree/v1.4.11"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-a8c-mc-stats"
+ },
+ {
+ "name": "automattic/jetpack-abtest",
+ "version": "v1.9.18",
+ "version_normalized": "1.9.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-abtest.git",
+ "reference": "8ad2e2685a1370f080c403095bad009b2f87370e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-abtest/zipball/8ad2e2685a1370f080c403095bad009b2f87370e",
+ "reference": "8ad2e2685a1370f080c403095bad009b2f87370e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-error": "^1.3"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:59+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-abtest",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-abtest/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Provides an interface to the WP.com A/B tests.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-abtest/tree/v1.9.18"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-abtest"
+ },
+ {
+ "name": "automattic/jetpack-admin-ui",
+ "version": "v0.2.1",
+ "version_normalized": "0.2.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-admin-ui.git",
+ "reference": "ce6964700c9698f9ea8c0a00120f1fbbd755de57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-admin-ui/zipball/ce6964700c9698f9ea8c0a00120f1fbbd755de57",
+ "reference": "ce6964700c9698f9ea8c0a00120f1fbbd755de57",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:25+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-admin-ui",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-admin-ui/compare/${old}...${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.2.x-dev"
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-admin-menu.php"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Generic Jetpack wp-admin UI elements",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-admin-ui/tree/v0.2.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-admin-ui"
+ },
+ {
+ "name": "automattic/jetpack-assets",
+ "version": "v1.16.1",
+ "version_normalized": "1.16.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-assets.git",
+ "reference": "5a6959969bed4559e080269cafbd69d476249822"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-assets/zipball/5a6959969bed4559e080269cafbd69d476249822",
+ "reference": "5a6959969bed4559e080269cafbd69d476249822",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "wikimedia/testing-access-wrapper": "^1.0 | ^2.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-05T21:46:22+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-assets",
+ "textdomain": "jetpack-assets",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-assets/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.16.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Asset management utilities for Jetpack ecosystem packages",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-assets/tree/v1.16.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-assets"
+ },
+ {
+ "name": "automattic/jetpack-autoloader",
+ "version": "v2.10.11",
+ "version_normalized": "2.10.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-autoloader.git",
+ "reference": "924226c0a9e2f9b0be022fc6bab2a90f5e610ef3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-autoloader/zipball/924226c0a9e2f9b0be022fc6bab2a90f5e610ef3",
+ "reference": "924226c0a9e2f9b0be022fc6bab2a90f5e610ef3",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:27+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "autotagger": true,
+ "class": "Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin",
+ "mirror-repo": "Automattic/jetpack-autoloader",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-autoloader/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.10.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/AutoloadGenerator.php"
+ ],
+ "psr-4": {
+ "Automattic\\Jetpack\\Autoloader\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Creates a custom autoloader for a plugin or theme.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-autoloader/tree/v2.10.11"
+ },
+ "install-path": "../automattic/jetpack-autoloader"
+ },
+ {
+ "name": "automattic/jetpack-backup",
+ "version": "v1.2.0",
+ "version_normalized": "1.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-backup.git",
+ "reference": "55054e3fe2c0450d4738b3dcce547d26ee82faa1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-backup/zipball/55054e3fe2c0450d4738b3dcce547d26ee82faa1",
+ "reference": "55054e3fe2c0450d4738b3dcce547d26ee82faa1",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-sync": "^1.28"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:11+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-backup",
+ "textdomain": "jetpack-backup-pkg",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-backup/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tools to assist with backing up Jetpack sites.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-backup/tree/v1.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-backup"
+ },
+ {
+ "name": "automattic/jetpack-blocks",
+ "version": "v1.4.9",
+ "version_normalized": "1.4.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-blocks.git",
+ "reference": "ac699666f0bd01c4f74f9fa339a553e466a8b987"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-blocks/zipball/ac699666f0bd01c4f74f9fa339a553e466a8b987",
+ "reference": "ac699666f0bd01c4f74f9fa339a553e466a8b987",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:28+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-blocks",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-blocks/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Register and manage blocks within a plugin. Used to manage block registration, enqueues, and more.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-blocks/tree/v1.4.9"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-blocks"
+ },
+ {
+ "name": "automattic/jetpack-compat",
+ "version": "v1.6.8",
+ "version_normalized": "1.6.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-compat.git",
+ "reference": "38da6f2769a2438d192cde43343f3b9fdb517df1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-compat/zipball/38da6f2769a2438d192cde43343f3b9fdb517df1",
+ "reference": "38da6f2769a2438d192cde43343f3b9fdb517df1",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2021-12-14T17:53:46+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-compat",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-compat/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "classmap": [
+ "legacy"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Compatibility layer with previous versions of Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-compat/tree/v1.6.8"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-compat"
+ },
+ {
+ "name": "automattic/jetpack-composer-plugin",
+ "version": "v1.0.1",
+ "version_normalized": "1.0.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-composer-plugin.git",
+ "reference": "27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-composer-plugin/zipball/27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86",
+ "reference": "27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.1.0"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "composer/composer": "2.2.3",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:31+00:00",
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Automattic\\Jetpack\\Composer\\Plugin",
+ "mirror-repo": "Automattic/jetpack-composer-plugin",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-composer-plugin/compare/v${old}...v${new}"
+ },
+ "autotagger": true,
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A custom installer plugin for Composer to move Jetpack packages out of `vendor/` so WordPress's translation infrastructure will find their strings.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-composer-plugin/tree/v1.0.1"
+ },
+ "install-path": "../automattic/jetpack-composer-plugin"
+ },
+ {
+ "name": "automattic/jetpack-config",
+ "version": "v1.6.0",
+ "version_normalized": "1.6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-config.git",
+ "reference": "1d46f87df9167a03960d708ce767d0efdfc855cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-config/zipball/1d46f87df9167a03960d708ce767d0efdfc855cf",
+ "reference": "1d46f87df9167a03960d708ce767d0efdfc855cf",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:11:32+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-config",
+ "textdomain": "jetpack-config",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-config/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack configuration package that initializes other packages and configures Jetpack's functionality. Can be used as a base for all variants of Jetpack package usage.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-config/tree/v1.6.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-config"
+ },
+ {
+ "name": "automattic/jetpack-connection",
+ "version": "v1.34.0",
+ "version_normalized": "1.34.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-connection.git",
+ "reference": "14545cff5de0384e8ced64bb161e814e657efebf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection/zipball/14545cff5de0384e8ced64bb161e814e657efebf",
+ "reference": "14545cff5de0384e8ced64bb161e814e657efebf",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-heartbeat": "^1.4",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-redirect": "^1.7",
+ "automattic/jetpack-roles": "^1.4",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-terms-of-service": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:56+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-connection",
+ "textdomain": "jetpack-connection",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-connection/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.34.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy",
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to connect to the Jetpack infrastructure",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-connection/tree/v1.34.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-connection"
+ },
+ {
+ "name": "automattic/jetpack-connection-ui",
+ "version": "v2.3.0",
+ "version_normalized": "2.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-connection-ui.git",
+ "reference": "375ea7b050b2dc98a06fc317dae8441dc1eacba8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-connection-ui/zipball/375ea7b050b2dc98a06fc317dae8441dc1eacba8",
+ "reference": "375ea7b050b2dc98a06fc317dae8441dc1eacba8",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-device-detection": "^1.4",
+ "automattic/jetpack-identity-crisis": "^0.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:12:08+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-connection-ui",
+ "textdomain": "jetpack-connection-ui",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-connection-ui/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack Connection UI",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-connection-ui/tree/v2.3.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-connection-ui"
+ },
+ {
+ "name": "automattic/jetpack-constants",
+ "version": "v1.6.14",
+ "version_normalized": "1.6.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-constants.git",
+ "reference": "93af2a61eceaabd16c432451cc33f7c9074efa81"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-constants/zipball/93af2a61eceaabd16c432451cc33f7c9074efa81",
+ "reference": "93af2a61eceaabd16c432451cc33f7c9074efa81",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:33+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-constants",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-constants/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A wrapper for defining constants in a more testable way.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-constants/tree/v1.6.14"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-constants"
+ },
+ {
+ "name": "automattic/jetpack-device-detection",
+ "version": "v1.4.11",
+ "version_normalized": "1.4.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-device-detection.git",
+ "reference": "ab5ce7e487de9c9a13456d4aecdb7789f92f818d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-device-detection/zipball/ab5ce7e487de9c9a13456d4aecdb7789f92f818d",
+ "reference": "ab5ce7e487de9c9a13456d4aecdb7789f92f818d",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:34+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-device-detection",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-device-detection/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A way to detect device types based on User-Agent header.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-device-detection/tree/v1.4.11"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-device-detection"
+ },
+ {
+ "name": "automattic/jetpack-error",
+ "version": "v1.3.12",
+ "version_normalized": "1.3.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-error.git",
+ "reference": "005bf60c2d533b3d169d6688360aaf034e7fc456"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-error/zipball/005bf60c2d533b3d169d6688360aaf034e7fc456",
+ "reference": "005bf60c2d533b3d169d6688360aaf034e7fc456",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:35+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-error",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-error/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Jetpack Error - a wrapper around WP_Error.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-error/tree/v1.3.12"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-error"
+ },
+ {
+ "name": "automattic/jetpack-heartbeat",
+ "version": "v1.4.0",
+ "version_normalized": "1.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-heartbeat.git",
+ "reference": "c35053475b1cb7363aee847e0d025f0a043dc3d5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-heartbeat/zipball/c35053475b1cb7363aee847e0d025f0a043dc3d5",
+ "reference": "c35053475b1cb7363aee847e0d025f0a043dc3d5",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-options": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0"
+ },
+ "time": "2022-01-04T21:11:47+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-heartbeat",
+ "textdomain": "jetpack-heartbeat",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-heartbeat/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "This adds a cronjob that sends a batch of internal automattic stats to wp.com once a day",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-heartbeat/tree/v1.4.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-heartbeat"
+ },
+ {
+ "name": "automattic/jetpack-identity-crisis",
+ "version": "v0.6.1",
+ "version_normalized": "0.6.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-identity-crisis.git",
+ "reference": "62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-identity-crisis/zipball/62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9",
+ "reference": "62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-logo": "^1.5",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-11T16:37:39+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-identity-crisis",
+ "textdomain": "jetpack-idc",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-identity-crisis.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-identity-crisis/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Identity Crisis.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-identity-crisis/tree/v0.6.1"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-identity-crisis"
+ },
+ {
+ "name": "automattic/jetpack-jitm",
+ "version": "v2.2.0",
+ "version_normalized": "2.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-jitm.git",
+ "reference": "7ac6dc5ffb274310ddc6d38fc1611af19245dc96"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-jitm/zipball/7ac6dc5ffb274310ddc6d38fc1611af19245dc96",
+ "reference": "7ac6dc5ffb274310ddc6d38fc1611af19245dc96",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-a8c-mc-stats": "^1.4",
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-device-detection": "^1.4",
+ "automattic/jetpack-logo": "^1.5",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-partner": "^1.6",
+ "automattic/jetpack-redirect": "^1.7",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-tracking": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:02+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-jitm",
+ "textdomain": "jetpack-jitm",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-jitm.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-jitm/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Just in time messages for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-jitm/tree/v2.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-jitm"
+ },
+ {
+ "name": "automattic/jetpack-lazy-images",
+ "version": "v2.1.0",
+ "version_normalized": "2.1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-lazy-images.git",
+ "reference": "5aa6cfed2311fd3eb85d5c61dcf59854c5418380"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-lazy-images/zipball/5aa6cfed2311fd3eb85d5c61dcf59854c5418380",
+ "reference": "5aa6cfed2311fd3eb85d5c61dcf59854c5418380",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "dev-master",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:48+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-lazy-images",
+ "textdomain": "jetpack-lazy-images",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-lazy-images/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Speed up your site and create a smoother viewing experience by loading images as visitors scroll down the screen, instead of all at once.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-lazy-images/tree/v2.1.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-lazy-images"
+ },
+ {
+ "name": "automattic/jetpack-licensing",
+ "version": "v1.6.0",
+ "version_normalized": "1.6.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-licensing.git",
+ "reference": "cf6c5c97313fcfd2b5497cc3de945e49262f633e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-licensing/zipball/cf6c5c97313fcfd2b5497cc3de945e49262f633e",
+ "reference": "cf6c5c97313fcfd2b5497cc3de945e49262f633e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-options": "^1.14"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:03+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-licensing",
+ "textdomain": "jetpack-licensing",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-licensing/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to manage Jetpack licenses client-side.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-licensing/tree/v1.6.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-licensing"
+ },
+ {
+ "name": "automattic/jetpack-logo",
+ "version": "v1.5.13",
+ "version_normalized": "1.5.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-logo.git",
+ "reference": "0f0a80b3ac89d8d64756a8049903fcedf6f2e887"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-logo/zipball/0f0a80b3ac89d8d64756a8049903fcedf6f2e887",
+ "reference": "0f0a80b3ac89d8d64756a8049903fcedf6f2e887",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:37+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-logo",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-logo/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.5.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A logo for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-logo/tree/v1.5.13"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-logo"
+ },
+ {
+ "name": "automattic/jetpack-my-jetpack",
+ "version": "v0.3.0",
+ "version_normalized": "0.3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-my-jetpack.git",
+ "reference": "74179288cb1c3193320618fbc00e35244278ae9f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-my-jetpack/zipball/74179288cb1c3193320618fbc00e35244278ae9f",
+ "reference": "74179288cb1c3193320618fbc00e35244278ae9f",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-admin-ui": "^0.2",
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-connection": "^1.34"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:04+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-my-jetpack",
+ "textdomain": "jetpack-my-jetpack",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-my-jetpack/compare/${old}...${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.3.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "WP Admin page with information and configuration shared among all Jetpack stand-alone plugins",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-my-jetpack/tree/v0.3.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-my-jetpack"
+ },
+ {
+ "name": "automattic/jetpack-options",
+ "version": "v1.14.2",
+ "version_normalized": "1.14.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-options.git",
+ "reference": "9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-options/zipball/9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2",
+ "reference": "9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:42+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-options",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-options/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.14.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "A wrapper for wp-options to manage specific Jetpack options.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-options/tree/v1.14.2"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-options"
+ },
+ {
+ "name": "automattic/jetpack-partner",
+ "version": "v1.6.2",
+ "version_normalized": "1.6.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-partner.git",
+ "reference": "68ff674f5f1301e1016521b58a39d18fe6442407"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-partner/zipball/68ff674f5f1301e1016521b58a39d18fe6442407",
+ "reference": "68ff674f5f1301e1016521b58a39d18fe6442407",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/wordbless": "@dev",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:49+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-partner",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-partner/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Support functions for Jetpack hosting partners.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-partner/tree/v1.6.2"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-partner"
+ },
+ {
+ "name": "automattic/jetpack-password-checker",
+ "version": "v0.2.0",
+ "version_normalized": "0.2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-password-checker.git",
+ "reference": "e07ea017e9d13fbb4104e40308dde8413ef6310f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-password-checker/zipball/e07ea017e9d13fbb4104e40308dde8413ef6310f",
+ "reference": "e07ea017e9d13fbb4104e40308dde8413ef6310f",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:38+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-password-checker",
+ "textdomain": "jetpack-password-checker",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-password-checker/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.2.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Password Checker.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-password-checker/tree/v0.2.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-password-checker"
+ },
+ {
+ "name": "automattic/jetpack-redirect",
+ "version": "v1.7.9",
+ "version_normalized": "1.7.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-redirect.git",
+ "reference": "7b7640108a704b6978814e0cfb2e5102d19c7d42"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-redirect/zipball/7b7640108a704b6978814e0cfb2e5102d19c7d42",
+ "reference": "7b7640108a704b6978814e0cfb2e5102d19c7d42",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:51+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-redirect",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-redirect/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.7.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities to build URLs to the jetpack.com/redirect/ service",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-redirect/tree/v1.7.9"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-redirect"
+ },
+ {
+ "name": "automattic/jetpack-roles",
+ "version": "v1.4.13",
+ "version_normalized": "1.4.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-roles.git",
+ "reference": "5d0a94f52de1e44a4537bc736af940f6b178c107"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-roles/zipball/5d0a94f52de1e44a4537bc736af940f6b178c107",
+ "reference": "5d0a94f52de1e44a4537bc736af940f6b178c107",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:39+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-roles",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-roles/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Utilities, related with user roles and capabilities.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-roles/tree/v1.4.13"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-roles"
+ },
+ {
+ "name": "automattic/jetpack-search",
+ "version": "v0.4.0",
+ "version_normalized": "0.4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-search.git",
+ "reference": "dee991d060e09821b2b4c9927c987a4877c3648e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-search/zipball/dee991d060e09821b2b4c9927c987a4877c3648e",
+ "reference": "dee991d060e09821b2b4c9927c987a4877c3648e",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "0.3.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:05+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-search",
+ "textdomain": "jetpack-search-pkg",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-search/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "0.4.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tools to assist with enabling cloud search for Jetpack sites.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-search/tree/v0.4.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-search"
+ },
+ {
+ "name": "automattic/jetpack-status",
+ "version": "v1.9.5",
+ "version_normalized": "1.9.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-status.git",
+ "reference": "6300e03a808ef63dda558f0eb78e39a0e529a274"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-status/zipball/6300e03a808ef63dda558f0eb78e39a0e529a274",
+ "reference": "6300e03a808ef63dda558f0eb78e39a0e529a274",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-constants": "^1.6"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:43+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-status",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-status/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Used to retrieve information about the current status of Jetpack and the site overall.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-status/tree/v1.9.5"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-status"
+ },
+ {
+ "name": "automattic/jetpack-sync",
+ "version": "v1.28.0",
+ "version_normalized": "1.28.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-sync.git",
+ "reference": "3c7ce980bde96feaf695f998d5eb9458c9c16732"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-sync/zipball/3c7ce980bde96feaf695f998d5eb9458c9c16732",
+ "reference": "3c7ce980bde96feaf695f998d5eb9458c9c16732",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-connection": "^1.34",
+ "automattic/jetpack-constants": "^1.6",
+ "automattic/jetpack-heartbeat": "^1.4",
+ "automattic/jetpack-identity-crisis": "^0.6",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-password-checker": "^0.2",
+ "automattic/jetpack-roles": "^1.4",
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:12:09+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-sync",
+ "textdomain": "jetpack-sync",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-package-version.php"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-sync/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.28.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything needed to allow syncing to the WP.com infrastructure.",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-sync/tree/v1.28.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-sync"
+ },
+ {
+ "name": "automattic/jetpack-terms-of-service",
+ "version": "v1.9.18",
+ "version_normalized": "1.9.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-terms-of-service.git",
+ "reference": "46f3ac423d38219d719f0d0a33e7753b6e28d7ef"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-terms-of-service/zipball/46f3ac423d38219d719f0d0a33e7753b6e28d7ef",
+ "reference": "46f3ac423d38219d719f0d0a33e7753b6e28d7ef",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:52+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-terms-of-service",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-terms-of-service/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.9.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Everything need to manage the terms of service state",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-terms-of-service/tree/v1.9.18"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-terms-of-service"
+ },
+ {
+ "name": "automattic/jetpack-tracking",
+ "version": "v1.14.0",
+ "version_normalized": "1.14.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Automattic/jetpack-tracking.git",
+ "reference": "b2f869437c42fca557f3450fed0f61ae6162d0bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Automattic/jetpack-tracking/zipball/b2f869437c42fca557f3450fed0f61ae6162d0bf",
+ "reference": "b2f869437c42fca557f3450fed0f61ae6162d0bf",
+ "shasum": ""
+ },
+ "require": {
+ "automattic/jetpack-assets": "^1.16",
+ "automattic/jetpack-options": "^1.14",
+ "automattic/jetpack-status": "^1.9",
+ "automattic/jetpack-terms-of-service": "^1.9"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^3.0",
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "1.0.3"
+ },
+ "time": "2022-01-04T21:11:55+00:00",
+ "type": "jetpack-library",
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-tracking",
+ "textdomain": "jetpack-tracking",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-tracking/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-master": "1.14.x-dev"
+ }
+ },
+ "installation-source": "dist",
+ "autoload": {
+ "classmap": [
+ "legacy",
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "description": "Tracking for Jetpack",
+ "support": {
+ "source": "https://github.com/Automattic/jetpack-tracking/tree/v1.14.0"
+ },
+ "install-path": "../../jetpack_vendor/automattic/jetpack-tracking"
+ },
+ {
+ "name": "nojimage/twitter-text-php",
+ "version": "v3.1.2",
+ "version_normalized": "3.1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nojimage/twitter-text-php.git",
+ "reference": "979bcf6a92d543b61588c7c0c0a87d0eb473d8f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nojimage/twitter-text-php/zipball/979bcf6a92d543b61588c7c0c0a87d0eb473d8f6",
+ "reference": "979bcf6a92d543b61588c7c0c0a87d0eb473d8f6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-intl": "*",
+ "ext-mbstring": "*",
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "phpunit/phpunit": "4.8.*|5.7.*|6.5.*",
+ "symfony/yaml": "^2.6.0|^3.4.0|^4.4.0|^5.0.0",
+ "twitter/twitter-text": "^3.0.0"
+ },
+ "time": "2021-03-18T11:38:53+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-0": {
+ "Twitter\\Text\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Matt Sanford",
+ "email": "matt@mzsanford.com",
+ "homepage": "http://mzsanford.com"
+ },
+ {
+ "name": "Mike Cochrane",
+ "email": "mikec@mikenz.geek.nz",
+ "homepage": "http://mikenz.geek.nz"
+ },
+ {
+ "name": "Nick Pope",
+ "email": "git@nickpope.me.uk",
+ "homepage": "http://www.nickpope.me.uk"
+ },
+ {
+ "name": "Takashi Nojima",
+ "homepage": "http://php-tips.com"
+ }
+ ],
+ "description": "A library of PHP classes that provide auto-linking and extraction of usernames, lists, hashtags and URLs from tweets.",
+ "homepage": "https://github.com/nojimage/twitter-text-php",
+ "keywords": [
+ "autolink",
+ "extract",
+ "text",
+ "twitter"
+ ],
+ "support": {
+ "issues": "https://github.com/nojimage/twitter-text-php/issues",
+ "source": "https://github.com/nojimage/twitter-text-php/tree/v3.1.2"
+ },
+ "install-path": "../nojimage/twitter-text-php"
+ }
+ ],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/plugins/jetpack/vendor/composer/installed.php b/plugins/jetpack/vendor/composer/installed.php
new file mode 100644
index 00000000..a7b11827
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/installed.php
@@ -0,0 +1,320 @@
+<?php return array(
+ 'root' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'name' => 'automattic/jetpack',
+ 'dev' => false,
+ ),
+ 'versions' => array(
+ 'automattic/jetpack' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'reference' => NULL,
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-a8c-mc-stats' => array(
+ 'pretty_version' => 'v1.4.11',
+ 'version' => '1.4.11.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-a8c-mc-stats',
+ 'aliases' => array(),
+ 'reference' => '6e7d7c8b9c996f04978b834e4c3484bd2d916998',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-abtest' => array(
+ 'pretty_version' => 'v1.9.18',
+ 'version' => '1.9.18.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-abtest',
+ 'aliases' => array(),
+ 'reference' => '8ad2e2685a1370f080c403095bad009b2f87370e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-admin-ui' => array(
+ 'pretty_version' => 'v0.2.1',
+ 'version' => '0.2.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-admin-ui',
+ 'aliases' => array(),
+ 'reference' => 'ce6964700c9698f9ea8c0a00120f1fbbd755de57',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-assets' => array(
+ 'pretty_version' => 'v1.16.1',
+ 'version' => '1.16.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-assets',
+ 'aliases' => array(),
+ 'reference' => '5a6959969bed4559e080269cafbd69d476249822',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-autoloader' => array(
+ 'pretty_version' => 'v2.10.11',
+ 'version' => '2.10.11.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../automattic/jetpack-autoloader',
+ 'aliases' => array(),
+ 'reference' => '924226c0a9e2f9b0be022fc6bab2a90f5e610ef3',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-backup' => array(
+ 'pretty_version' => 'v1.2.0',
+ 'version' => '1.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-backup',
+ 'aliases' => array(),
+ 'reference' => '55054e3fe2c0450d4738b3dcce547d26ee82faa1',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-blocks' => array(
+ 'pretty_version' => 'v1.4.9',
+ 'version' => '1.4.9.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-blocks',
+ 'aliases' => array(),
+ 'reference' => 'ac699666f0bd01c4f74f9fa339a553e466a8b987',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-compat' => array(
+ 'pretty_version' => 'v1.6.8',
+ 'version' => '1.6.8.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-compat',
+ 'aliases' => array(),
+ 'reference' => '38da6f2769a2438d192cde43343f3b9fdb517df1',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-composer-plugin' => array(
+ 'pretty_version' => 'v1.0.1',
+ 'version' => '1.0.1.0',
+ 'type' => 'composer-plugin',
+ 'install_path' => __DIR__ . '/../automattic/jetpack-composer-plugin',
+ 'aliases' => array(),
+ 'reference' => '27c6980561d0c8c56ad3d9b9d0fb576b1ef9bd86',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-config' => array(
+ 'pretty_version' => 'v1.6.0',
+ 'version' => '1.6.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-config',
+ 'aliases' => array(),
+ 'reference' => '1d46f87df9167a03960d708ce767d0efdfc855cf',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-connection' => array(
+ 'pretty_version' => 'v1.34.0',
+ 'version' => '1.34.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-connection',
+ 'aliases' => array(),
+ 'reference' => '14545cff5de0384e8ced64bb161e814e657efebf',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-connection-ui' => array(
+ 'pretty_version' => 'v2.3.0',
+ 'version' => '2.3.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-connection-ui',
+ 'aliases' => array(),
+ 'reference' => '375ea7b050b2dc98a06fc317dae8441dc1eacba8',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-constants' => array(
+ 'pretty_version' => 'v1.6.14',
+ 'version' => '1.6.14.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-constants',
+ 'aliases' => array(),
+ 'reference' => '93af2a61eceaabd16c432451cc33f7c9074efa81',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-device-detection' => array(
+ 'pretty_version' => 'v1.4.11',
+ 'version' => '1.4.11.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-device-detection',
+ 'aliases' => array(),
+ 'reference' => 'ab5ce7e487de9c9a13456d4aecdb7789f92f818d',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-error' => array(
+ 'pretty_version' => 'v1.3.12',
+ 'version' => '1.3.12.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-error',
+ 'aliases' => array(),
+ 'reference' => '005bf60c2d533b3d169d6688360aaf034e7fc456',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-heartbeat' => array(
+ 'pretty_version' => 'v1.4.0',
+ 'version' => '1.4.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-heartbeat',
+ 'aliases' => array(),
+ 'reference' => 'c35053475b1cb7363aee847e0d025f0a043dc3d5',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-identity-crisis' => array(
+ 'pretty_version' => 'v0.6.1',
+ 'version' => '0.6.1.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-identity-crisis',
+ 'aliases' => array(),
+ 'reference' => '62f19cd6b289f719ed0ae4fb366b0bf44c5f5be9',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-jitm' => array(
+ 'pretty_version' => 'v2.2.0',
+ 'version' => '2.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-jitm',
+ 'aliases' => array(),
+ 'reference' => '7ac6dc5ffb274310ddc6d38fc1611af19245dc96',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-lazy-images' => array(
+ 'pretty_version' => 'v2.1.0',
+ 'version' => '2.1.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-lazy-images',
+ 'aliases' => array(),
+ 'reference' => '5aa6cfed2311fd3eb85d5c61dcf59854c5418380',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-licensing' => array(
+ 'pretty_version' => 'v1.6.0',
+ 'version' => '1.6.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-licensing',
+ 'aliases' => array(),
+ 'reference' => 'cf6c5c97313fcfd2b5497cc3de945e49262f633e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-logo' => array(
+ 'pretty_version' => 'v1.5.13',
+ 'version' => '1.5.13.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-logo',
+ 'aliases' => array(),
+ 'reference' => '0f0a80b3ac89d8d64756a8049903fcedf6f2e887',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-my-jetpack' => array(
+ 'pretty_version' => 'v0.3.0',
+ 'version' => '0.3.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-my-jetpack',
+ 'aliases' => array(),
+ 'reference' => '74179288cb1c3193320618fbc00e35244278ae9f',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-options' => array(
+ 'pretty_version' => 'v1.14.2',
+ 'version' => '1.14.2.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-options',
+ 'aliases' => array(),
+ 'reference' => '9cd0f27ae970097bf6a8bc5b3c80cf079e4bf3f2',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-partner' => array(
+ 'pretty_version' => 'v1.6.2',
+ 'version' => '1.6.2.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-partner',
+ 'aliases' => array(),
+ 'reference' => '68ff674f5f1301e1016521b58a39d18fe6442407',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-password-checker' => array(
+ 'pretty_version' => 'v0.2.0',
+ 'version' => '0.2.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-password-checker',
+ 'aliases' => array(),
+ 'reference' => 'e07ea017e9d13fbb4104e40308dde8413ef6310f',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-redirect' => array(
+ 'pretty_version' => 'v1.7.9',
+ 'version' => '1.7.9.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-redirect',
+ 'aliases' => array(),
+ 'reference' => '7b7640108a704b6978814e0cfb2e5102d19c7d42',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-roles' => array(
+ 'pretty_version' => 'v1.4.13',
+ 'version' => '1.4.13.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-roles',
+ 'aliases' => array(),
+ 'reference' => '5d0a94f52de1e44a4537bc736af940f6b178c107',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-search' => array(
+ 'pretty_version' => 'v0.4.0',
+ 'version' => '0.4.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-search',
+ 'aliases' => array(),
+ 'reference' => 'dee991d060e09821b2b4c9927c987a4877c3648e',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-status' => array(
+ 'pretty_version' => 'v1.9.5',
+ 'version' => '1.9.5.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-status',
+ 'aliases' => array(),
+ 'reference' => '6300e03a808ef63dda558f0eb78e39a0e529a274',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-sync' => array(
+ 'pretty_version' => 'v1.28.0',
+ 'version' => '1.28.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-sync',
+ 'aliases' => array(),
+ 'reference' => '3c7ce980bde96feaf695f998d5eb9458c9c16732',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-terms-of-service' => array(
+ 'pretty_version' => 'v1.9.18',
+ 'version' => '1.9.18.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-terms-of-service',
+ 'aliases' => array(),
+ 'reference' => '46f3ac423d38219d719f0d0a33e7753b6e28d7ef',
+ 'dev_requirement' => false,
+ ),
+ 'automattic/jetpack-tracking' => array(
+ 'pretty_version' => 'v1.14.0',
+ 'version' => '1.14.0.0',
+ 'type' => 'jetpack-library',
+ 'install_path' => __DIR__ . '/../../jetpack_vendor/automattic/jetpack-tracking',
+ 'aliases' => array(),
+ 'reference' => 'b2f869437c42fca557f3450fed0f61ae6162d0bf',
+ 'dev_requirement' => false,
+ ),
+ 'nojimage/twitter-text-php' => array(
+ 'pretty_version' => 'v3.1.2',
+ 'version' => '3.1.2.0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../nojimage/twitter-text-php',
+ 'aliases' => array(),
+ 'reference' => '979bcf6a92d543b61588c7c0c0a87d0eb473d8f6',
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php b/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php
new file mode 100644
index 00000000..3c098c3d
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/jetpack_autoload_classmap.php
@@ -0,0 +1,593 @@
+<?php
+
+// This file `jetpack_autoload_classmap.php` was auto generated by automattic/jetpack-autoloader.
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+ 'Automattic\\Jetpack\\Autoloader\\CustomAutoloaderPlugin' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/CustomAutoloaderPlugin.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\ManifestGenerator' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/ManifestGenerator.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadGenerator' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadGenerator.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadFileWriter' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadFileWriter.php'
+ ),
+ 'Automattic\\Jetpack\\Autoloader\\AutoloadProcessor' => array(
+ 'version' => '2.10.11.0',
+ 'path' => $vendorDir . '/automattic/jetpack-autoloader/src/AutoloadProcessor.php'
+ ),
+ 'Twitter\\Text\\Configuration' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php'
+ ),
+ 'Twitter\\Text\\Autolink' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php'
+ ),
+ 'Twitter\\Text\\TldLists' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php'
+ ),
+ 'Twitter\\Text\\Validator' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php'
+ ),
+ 'Twitter\\Text\\StringUtils' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php'
+ ),
+ 'Twitter\\Text\\ParseResults' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php'
+ ),
+ 'Twitter\\Text\\EmojiRegex' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php'
+ ),
+ 'Twitter\\Text\\Extractor' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php'
+ ),
+ 'Twitter\\Text\\HitHighlighter' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php'
+ ),
+ 'Twitter\\Text\\Regex' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php'
+ ),
+ 'Twitter\\Text\\Parser' => array(
+ 'version' => '3.1.2.0',
+ 'path' => $vendorDir . '/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php'
+ ),
+ 'Automattic\\Jetpack\\Plugin\\Tracking' => array(
+ 'version' => 'dev-master',
+ 'path' => $baseDir . '/src/class-tracking.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Settings' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-settings.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\REST_Controller' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-rest-controller.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Template_Tags' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-template-tags.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Builder' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-builder.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\WPES\\Query_Parser' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/wpes/class-query-parser.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Plan' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-plan.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Options' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-options.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Helper' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-helper.php'
+ ),
+ 'Automattic\\Jetpack\\Search\\Module_Control' => array(
+ 'version' => '0.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-search/src/class-module-control.php'
+ ),
+ 'Automattic\\Jetpack\\My_Jetpack\\Initializer' => array(
+ 'version' => '0.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php'
+ ),
+ 'Automattic\\Jetpack\\Licensing' => array(
+ 'version' => '1.6.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php'
+ ),
+ 'Automattic\\Jetpack\\Jetpack_Lazy_Images' => array(
+ 'version' => '2.1.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-lazy-images/src/lazy-images.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Pre_Connection_JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Post_Connection_JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\Rest_Api_Endpoints' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\JITMS\\JITM' => array(
+ 'version' => '2.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php'
+ ),
+ 'Automattic\\Jetpack\\ConnectionUI\\Initial_State' => array(
+ 'version' => '2.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-initial-state.php'
+ ),
+ 'Automattic\\Jetpack\\ConnectionUI\\Admin' => array(
+ 'version' => '2.3.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection-ui/src/class-admin.php'
+ ),
+ 'Automattic\\Jetpack\\Config' => array(
+ 'version' => '1.6.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-config/src/class-config.php'
+ ),
+ 'Jetpack_Sync_Settings' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-settings.php'
+ ),
+ 'JetpackTracking' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpacktracking.php'
+ ),
+ 'Jetpack_Sync_Actions' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-actions.php'
+ ),
+ 'Jetpack_Client' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-client.php'
+ ),
+ 'Jetpack_Sync_Modules' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/legacy/class-jetpack-sync-modules.php'
+ ),
+ 'Automattic\\Jetpack\\Blocks' => array(
+ 'version' => '1.4.9.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-blocks/src/class-blocks.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\REST_Controller' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-rest-controller.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\Package_Version' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Backup\\Helper_Script_Manager' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/src/class-helper-script-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Abtest' => array(
+ 'version' => '1.9.18.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-abtest/src/class-abtest.php'
+ ),
+ 'Automattic\\Jetpack\\Composer\\Plugin' => array(
+ 'version' => '1.0.1.0',
+ 'path' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-plugin.php'
+ ),
+ 'Automattic\\Jetpack\\Composer\\Manager' => array(
+ 'version' => '1.0.1.0',
+ 'path' => $vendorDir . '/automattic/jetpack-composer-plugin/src/class-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Admin_UI\\Admin_Menu' => array(
+ 'version' => '0.2.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php'
+ ),
+ 'Automattic\\Jetpack\\Partner_Coupon' => array(
+ 'version' => '1.6.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner-coupon.php'
+ ),
+ 'Automattic\\Jetpack\\Partner' => array(
+ 'version' => '1.6.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-partner/src/class-partner.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Server' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-server.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Defaults' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-defaults.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Settings' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-settings.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Health' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-health.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Queue' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\REST_Endpoints' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Lock' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-lock.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Actions' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-actions.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Main' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-main.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Package_Version' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Simple_Codec' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Sender' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-sender.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-modules.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\JSON_Deflate_Array_Codec' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-json-deflate-array-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Utils' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-utils.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore_Interface' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-replicastore.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Usermeta' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-usermeta.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum_Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore\\Table_Checksum' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/replicastore/class-table-checksum.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Codec_Interface' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/interface-codec.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\REST_Sender' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-rest-sender.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Callables' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-callables.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\WP_Super_Cache' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-wp-super-cache.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Stats' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-stats.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Meta' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-meta.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Plugins' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-plugins.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Attachments' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-attachments.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Protect' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-protect.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Constants' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-constants.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Posts' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-posts.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Term_Relationships' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-term-relationships.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Options' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-options.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Themes' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-themes.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync_Immediately' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync-immediately.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\WooCommerce' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-woocommerce.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Terms' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-terms.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Network_Options' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-network-options.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Module' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-module.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Users' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-users.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Menus' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-menus.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Import' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-import.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Comments' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-comments.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Updates' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-updates.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Modules\\Full_Sync' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/modules/class-full-sync.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Functions' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-functions.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Replicastore' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-replicastore.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Queue_Buffer' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-queue-buffer.php'
+ ),
+ 'Automattic\\Jetpack\\Sync\\Listener' => array(
+ 'version' => '1.28.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-sync/src/class-listener.php'
+ ),
+ 'Automattic\\Jetpack\\Error' => array(
+ 'version' => '1.3.12.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-error/src/class-error.php'
+ ),
+ 'Automattic\\Jetpack\\Device_Detection\\User_Agent_Info' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php'
+ ),
+ 'Automattic\\Jetpack\\Device_Detection' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php'
+ ),
+ 'Automattic\\Jetpack\\Password_Checker' => array(
+ 'version' => '0.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php'
+ ),
+ 'Automattic\\Jetpack\\IdentityCrisis\\UI' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-ui.php'
+ ),
+ 'Automattic\\Jetpack\\IdentityCrisis\\REST_Endpoints' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-rest-endpoints.php'
+ ),
+ 'Automattic\\Jetpack\\Identity_Crisis' => array(
+ 'version' => '0.6.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-identity-crisis/src/class-identity-crisis.php'
+ ),
+ 'Automattic\\Jetpack\\Assets\\Logo' => array(
+ 'version' => '1.5.13.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php'
+ ),
+ 'Jetpack_IXR_ClientMulticall' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-clientmulticall.php'
+ ),
+ 'Jetpack_Signature' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-signature.php'
+ ),
+ 'Jetpack_XMLRPC_Server' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-xmlrpc-server.php'
+ ),
+ 'Jetpack_IXR_Client' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/legacy/class-jetpack-ixr-client.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Plugin_Storage' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Nonce_Handler' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\REST_Connector' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Connector' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\XMLRPC_Async_Call' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Initial_State' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Package_Version_Tracker' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Package_Version' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Urls' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Plugin' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Client' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-client.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Secrets' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Rest_Authentication' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Error_Handler' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Utils' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-utils.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Tokens' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Manager_Interface' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Manager' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Webhooks' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php'
+ ),
+ 'Automattic\\Jetpack\\Connection\\Server_Sandbox' => array(
+ 'version' => '1.34.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php'
+ ),
+ 'Automattic\\Jetpack\\Redirect' => array(
+ 'version' => '1.7.9.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-redirect/src/class-redirect.php'
+ ),
+ 'Automattic\\Jetpack\\Heartbeat' => array(
+ 'version' => '1.4.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-heartbeat/src/class-heartbeat.php'
+ ),
+ 'Automattic\\Jetpack\\Roles' => array(
+ 'version' => '1.4.13.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-roles/src/class-roles.php'
+ ),
+ 'Jetpack_Tracks_Client' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-client.php'
+ ),
+ 'Jetpack_Tracks_Event' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/legacy/class-jetpack-tracks-event.php'
+ ),
+ 'Automattic\\Jetpack\\Tracking' => array(
+ 'version' => '1.14.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-tracking/src/class-tracking.php'
+ ),
+ 'Automattic\\Jetpack\\Assets' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php'
+ ),
+ 'Automattic\\Jetpack\\Assets\\Semver' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/src/class-semver.php'
+ ),
+ 'Automattic\\Jetpack\\A8c_Mc_Stats' => array(
+ 'version' => '1.4.11.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php'
+ ),
+ 'Automattic\\Jetpack\\Terms_Of_Service' => array(
+ 'version' => '1.9.18.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-terms-of-service/src/class-terms-of-service.php'
+ ),
+ 'Automattic\\Jetpack\\Status' => array(
+ 'version' => '1.9.5.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-status.php'
+ ),
+ 'Automattic\\Jetpack\\Status\\Host' => array(
+ 'version' => '1.9.5.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-status/src/class-host.php'
+ ),
+ 'Jetpack_Options' => array(
+ 'version' => '1.14.2.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-options/legacy/class-jetpack-options.php'
+ ),
+ 'Automattic\\Jetpack\\Constants' => array(
+ 'version' => '1.6.14.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php'
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php b/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php
new file mode 100644
index 00000000..861e16a0
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/jetpack_autoload_filemap.php
@@ -0,0 +1,21 @@
+<?php
+
+// This file `jetpack_autoload_filemap.php` was auto generated by automattic/jetpack-autoloader.
+
+$vendorDir = dirname(__DIR__);
+$baseDir = dirname($vendorDir);
+
+return array(
+ '3773ef3f09c37da5478d578e32b03a4b' => array(
+ 'version' => '1.16.1.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-assets/actions.php'
+ ),
+ 'd4eb94df91a729802d18373ee8cdc79f' => array(
+ 'version' => '1.2.0.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-backup/actions.php'
+ ),
+ '009de6aaa0d497eacea41fab13fc05f1' => array(
+ 'version' => '1.6.8.0',
+ 'path' => $baseDir . '/jetpack_vendor/automattic/jetpack-compat/functions.php'
+ ),
+);
diff --git a/plugins/jetpack/vendor/composer/platform_check.php b/plugins/jetpack/vendor/composer/platform_check.php
new file mode 100644
index 00000000..7f0d16c7
--- /dev/null
+++ b/plugins/jetpack/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+<?php
+
+// platform_check.php @generated by Composer
+
+$issues = array();
+
+if (!(PHP_VERSION_ID >= 50303)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 5.3.3". You are running ' . PHP_VERSION . '.';
+}
+
+if ($issues) {
+ if (!headers_sent()) {
+ header('HTTP/1.1 500 Internal Server Error');
+ }
+ if (!ini_get('display_errors')) {
+ if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
+ fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
+ } elseif (!headers_sent()) {
+ echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
+ }
+ }
+ trigger_error(
+ 'Composer detected issues in your platform: ' . implode(' ', $issues),
+ E_USER_ERROR
+ );
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php
new file mode 100644
index 00000000..652e98e9
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-handler.php
@@ -0,0 +1,147 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+use Automattic\Jetpack\Autoloader\AutoloadGenerator;
+
+/**
+ * This class selects the package version for the autoloader.
+ */
+class Autoloader_Handler {
+
+ /**
+ * The PHP_Autoloader instance.
+ *
+ * @var PHP_Autoloader
+ */
+ private $php_autoloader;
+
+ /**
+ * The Hook_Manager instance.
+ *
+ * @var Hook_Manager
+ */
+ private $hook_manager;
+
+ /**
+ * The Manifest_Reader instance.
+ *
+ * @var Manifest_Reader
+ */
+ private $manifest_reader;
+
+ /**
+ * The Version_Selector instance.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param PHP_Autoloader $php_autoloader The PHP_Autoloader instance.
+ * @param Hook_Manager $hook_manager The Hook_Manager instance.
+ * @param Manifest_Reader $manifest_reader The Manifest_Reader instance.
+ * @param Version_Selector $version_selector The Version_Selector instance.
+ */
+ public function __construct( $php_autoloader, $hook_manager, $manifest_reader, $version_selector ) {
+ $this->php_autoloader = $php_autoloader;
+ $this->hook_manager = $hook_manager;
+ $this->manifest_reader = $manifest_reader;
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Checks to see whether or not an autoloader is currently in the process of initializing.
+ *
+ * @return bool
+ */
+ public function is_initializing() {
+ // If no version has been set it means that no autoloader has started initializing yet.
+ global $jetpack_autoloader_latest_version;
+ if ( ! isset( $jetpack_autoloader_latest_version ) ) {
+ return false;
+ }
+
+ // When the version is set but the classmap is not it ALWAYS means that this is the
+ // latest autoloader and is being included by an older one.
+ global $jetpack_packages_classmap;
+ if ( empty( $jetpack_packages_classmap ) ) {
+ return true;
+ }
+
+ // Version 2.4.0 added a new global and altered the reset semantics. We need to check
+ // the other global as well since it may also point at initialization.
+ // Note: We don't need to check for the class first because every autoloader that
+ // will set the latest version global requires this class in the classmap.
+ $replacing_version = $jetpack_packages_classmap[ AutoloadGenerator::class ]['version'];
+ if ( $this->version_selector->is_dev_version( $replacing_version ) || version_compare( $replacing_version, '2.4.0.0', '>=' ) ) {
+ global $jetpack_autoloader_loader;
+ if ( ! isset( $jetpack_autoloader_loader ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Activates an autoloader using the given plugins and activates it.
+ *
+ * @param string[] $plugins The plugins to initialize the autoloader for.
+ */
+ public function activate_autoloader( $plugins ) {
+ global $jetpack_packages_psr4;
+ $jetpack_packages_psr4 = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_psr4.php', $jetpack_packages_psr4 );
+
+ global $jetpack_packages_classmap;
+ $jetpack_packages_classmap = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_classmap.php', $jetpack_packages_classmap );
+
+ global $jetpack_packages_filemap;
+ $jetpack_packages_filemap = array();
+ $this->manifest_reader->read_manifests( $plugins, 'vendor/composer/jetpack_autoload_filemap.php', $jetpack_packages_filemap );
+
+ $loader = new Version_Loader(
+ $this->version_selector,
+ $jetpack_packages_classmap,
+ $jetpack_packages_psr4,
+ $jetpack_packages_filemap
+ );
+
+ $this->php_autoloader->register_autoloader( $loader );
+
+ // Now that the autoloader is active we can load the filemap.
+ $loader->load_filemap();
+ }
+
+ /**
+ * Resets the active autoloader and all related global state.
+ */
+ public function reset_autoloader() {
+ $this->php_autoloader->unregister_autoloader();
+ $this->hook_manager->reset();
+
+ // Clear all of the autoloader globals so that older autoloaders don't do anything strange.
+ global $jetpack_autoloader_latest_version;
+ $jetpack_autoloader_latest_version = null;
+
+ global $jetpack_packages_classmap;
+ $jetpack_packages_classmap = array(); // Must be array to avoid exceptions in old autoloaders!
+
+ global $jetpack_packages_psr4;
+ $jetpack_packages_psr4 = array(); // Must be array to avoid exceptions in old autoloaders!
+
+ global $jetpack_packages_filemap;
+ $jetpack_packages_filemap = array(); // Must be array to avoid exceptions in old autoloaders!
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php
new file mode 100644
index 00000000..81320d9c
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader-locator.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+use Automattic\Jetpack\Autoloader\AutoloadGenerator;
+
+/**
+ * This class locates autoloaders.
+ */
+class Autoloader_Locator {
+
+ /**
+ * The object for comparing autoloader versions.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The version selector object.
+ */
+ public function __construct( $version_selector ) {
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Finds the path to the plugin with the latest autoloader.
+ *
+ * @param array $plugin_paths An array of plugin paths.
+ * @param string $latest_version The latest version reference.
+ *
+ * @return string|null
+ */
+ public function find_latest_autoloader( $plugin_paths, &$latest_version ) {
+ $latest_plugin = null;
+
+ foreach ( $plugin_paths as $plugin_path ) {
+ $version = $this->get_autoloader_version( $plugin_path );
+ if ( ! $this->version_selector->is_version_update_required( $latest_version, $version ) ) {
+ continue;
+ }
+
+ $latest_version = $version;
+ $latest_plugin = $plugin_path;
+ }
+
+ return $latest_plugin;
+ }
+
+ /**
+ * Gets the path to the autoloader.
+ *
+ * @param string $plugin_path The path to the plugin.
+ *
+ * @return string
+ */
+ public function get_autoloader_path( $plugin_path ) {
+ return trailingslashit( $plugin_path ) . 'vendor/autoload_packages.php';
+ }
+
+ /**
+ * Gets the version for the autoloader.
+ *
+ * @param string $plugin_path The path to the plugin.
+ *
+ * @return string|null
+ */
+ public function get_autoloader_version( $plugin_path ) {
+ $classmap = trailingslashit( $plugin_path ) . 'vendor/composer/jetpack_autoload_classmap.php';
+ if ( ! file_exists( $classmap ) ) {
+ return null;
+ }
+
+ $classmap = require $classmap;
+ if ( isset( $classmap[ AutoloadGenerator::class ] ) ) {
+ return $classmap[ AutoloadGenerator::class ]['version'];
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php
new file mode 100644
index 00000000..399fc08f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-autoloader.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles management of the actual PHP autoloader.
+ */
+class Autoloader {
+
+ /**
+ * Checks to see whether or not the autoloader should be initialized and then initializes it if so.
+ *
+ * @param Container|null $container The container we want to use for autoloader initialization. If none is given
+ * then a container will be created automatically.
+ */
+ public static function init( $container = null ) {
+ // The container holds and manages the lifecycle of our dependencies
+ // to make them easier to work with and increase flexibility.
+ if ( ! isset( $container ) ) {
+ require_once __DIR__ . '/class-container.php';
+ $container = new Container();
+ }
+
+ // phpcs:disable Generic.Commenting.DocComment.MissingShort
+
+ /** @var Autoloader_Handler $autoloader_handler */
+ $autoloader_handler = $container->get( Autoloader_Handler::class );
+
+ // If the autoloader is already initializing it means that it has included us as the latest.
+ $was_included_by_autoloader = $autoloader_handler->is_initializing();
+
+ /** @var Plugin_Locator $plugin_locator */
+ $plugin_locator = $container->get( Plugin_Locator::class );
+
+ /** @var Plugins_Handler $plugins_handler */
+ $plugins_handler = $container->get( Plugins_Handler::class );
+
+ // The current plugin is the one that we are attempting to initialize here.
+ $current_plugin = $plugin_locator->find_current_plugin();
+
+ // The active plugins are those that we were able to discover on the site. This list will not
+ // include mu-plugins, those activated by code, or those who are hidden by filtering. We also
+ // want to take care to not consider the current plugin unknown if it was included by an
+ // autoloader. This avoids the case where a plugin will be marked "active" while deactivated
+ // due to it having the latest autoloader.
+ $active_plugins = $plugins_handler->get_active_plugins( true, ! $was_included_by_autoloader );
+
+ // The cached plugins are all of those that were active or discovered by the autoloader during a previous request.
+ // Note that it's possible this list will include plugins that have since been deactivated, but after a request
+ // the cache should be updated and the deactivated plugins will be removed.
+ $cached_plugins = $plugins_handler->get_cached_plugins();
+
+ // We combine the active list and cached list to preemptively load classes for plugins that are
+ // presently unknown but will be loaded during the request. While this may result in us considering packages in
+ // deactivated plugins there shouldn't be any problems as a result and the eventual consistency is sufficient.
+ $all_plugins = array_merge( $active_plugins, $cached_plugins );
+
+ // In particular we also include the current plugin to address the case where it is the latest autoloader
+ // but also unknown (and not cached). We don't want it in the active list because we don't know that it
+ // is active but we need it in the all plugins list so that it is considered by the autoloader.
+ $all_plugins[] = $current_plugin;
+
+ // We require uniqueness in the array to avoid processing the same plugin more than once.
+ $all_plugins = array_values( array_unique( $all_plugins ) );
+
+ /** @var Latest_Autoloader_Guard $guard */
+ $guard = $container->get( Latest_Autoloader_Guard::class );
+ if ( $guard->should_stop_init( $current_plugin, $all_plugins, $was_included_by_autoloader ) ) {
+ return;
+ }
+
+ // Initialize the autoloader using the handler now that we're ready.
+ $autoloader_handler->activate_autoloader( $all_plugins );
+
+ /** @var Hook_Manager $hook_manager */
+ $hook_manager = $container->get( Hook_Manager::class );
+
+ // Register a shutdown handler to clean up the autoloader.
+ $hook_manager->add_action( 'shutdown', new Shutdown_Handler( $plugins_handler, $cached_plugins, $was_included_by_autoloader ) );
+
+ // phpcs:enable Generic.Commenting.DocComment.MissingShort
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-container.php b/plugins/jetpack/vendor/jetpack-autoloader/class-container.php
new file mode 100644
index 00000000..4a16e48f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-container.php
@@ -0,0 +1,150 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class manages the files and dependencies of the autoloader.
+ */
+class Container {
+
+ /**
+ * Since each autoloader's class files exist within their own namespace we need a map to
+ * convert between the local class and a shared key. Note that no version checking is
+ * performed on these dependencies and the first autoloader to register will be the
+ * one that is utilized.
+ */
+ const SHARED_DEPENDENCY_KEYS = array(
+ Hook_Manager::class => 'Hook_Manager',
+ );
+
+ /**
+ * A map of all the dependencies we've registered with the container and created.
+ *
+ * @var array
+ */
+ protected $dependencies;
+
+ /**
+ * The constructor.
+ */
+ public function __construct() {
+ $this->dependencies = array();
+
+ $this->register_shared_dependencies();
+ $this->register_dependencies();
+ $this->initialize_globals();
+ }
+
+ /**
+ * Gets a dependency out of the container.
+ *
+ * @param string $class The class to fetch.
+ *
+ * @return mixed
+ * @throws \InvalidArgumentException When a class that isn't registered with the container is fetched.
+ */
+ public function get( $class ) {
+ if ( ! isset( $this->dependencies[ $class ] ) ) {
+ throw new \InvalidArgumentException( "Class '$class' is not registered with the container." );
+ }
+
+ return $this->dependencies[ $class ];
+ }
+
+ /**
+ * Registers all of the dependencies that are shared between all instances of the autoloader.
+ */
+ private function register_shared_dependencies() {
+ global $jetpack_autoloader_container_shared;
+ if ( ! isset( $jetpack_autoloader_container_shared ) ) {
+ $jetpack_autoloader_container_shared = array();
+ }
+
+ $key = self::SHARED_DEPENDENCY_KEYS[ Hook_Manager::class ];
+ if ( ! isset( $jetpack_autoloader_container_shared[ $key ] ) ) {
+ require_once __DIR__ . '/class-hook-manager.php';
+ $jetpack_autoloader_container_shared[ $key ] = new Hook_Manager();
+ }
+ $this->dependencies[ Hook_Manager::class ] = &$jetpack_autoloader_container_shared[ $key ];
+ }
+
+ /**
+ * Registers all of the dependencies with the container.
+ */
+ private function register_dependencies() {
+ require_once __DIR__ . '/class-path-processor.php';
+ $this->dependencies[ Path_Processor::class ] = new Path_Processor();
+
+ require_once __DIR__ . '/class-plugin-locator.php';
+ $this->dependencies[ Plugin_Locator::class ] = new Plugin_Locator(
+ $this->get( Path_Processor::class )
+ );
+
+ require_once __DIR__ . '/class-version-selector.php';
+ $this->dependencies[ Version_Selector::class ] = new Version_Selector();
+
+ require_once __DIR__ . '/class-autoloader-locator.php';
+ $this->dependencies[ Autoloader_Locator::class ] = new Autoloader_Locator(
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-php-autoloader.php';
+ $this->dependencies[ PHP_Autoloader::class ] = new PHP_Autoloader();
+
+ require_once __DIR__ . '/class-manifest-reader.php';
+ $this->dependencies[ Manifest_Reader::class ] = new Manifest_Reader(
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-plugins-handler.php';
+ $this->dependencies[ Plugins_Handler::class ] = new Plugins_Handler(
+ $this->get( Plugin_Locator::class ),
+ $this->get( Path_Processor::class )
+ );
+
+ require_once __DIR__ . '/class-autoloader-handler.php';
+ $this->dependencies[ Autoloader_Handler::class ] = new Autoloader_Handler(
+ $this->get( PHP_Autoloader::class ),
+ $this->get( Hook_Manager::class ),
+ $this->get( Manifest_Reader::class ),
+ $this->get( Version_Selector::class )
+ );
+
+ require_once __DIR__ . '/class-latest-autoloader-guard.php';
+ $this->dependencies[ Latest_Autoloader_Guard::class ] = new Latest_Autoloader_Guard(
+ $this->get( Plugins_Handler::class ),
+ $this->get( Autoloader_Handler::class ),
+ $this->get( Autoloader_Locator::class )
+ );
+
+ // Register any classes that we will use elsewhere.
+ require_once __DIR__ . '/class-version-loader.php';
+ require_once __DIR__ . '/class-shutdown-handler.php';
+ }
+
+ /**
+ * Initializes any of the globals needed by the autoloader.
+ */
+ private function initialize_globals() {
+ /*
+ * This global was retired in version 2.9. The value is set to 'false' to maintain
+ * compatibility with older versions of the autoloader.
+ */
+ global $jetpack_autoloader_including_latest;
+ $jetpack_autoloader_including_latest = false;
+
+ // Not all plugins can be found using the locator. In cases where a plugin loads the autoloader
+ // but was not discoverable, we will record them in this array to track them as "active".
+ global $jetpack_autoloader_activating_plugins_paths;
+ if ( ! isset( $jetpack_autoloader_activating_plugins_paths ) ) {
+ $jetpack_autoloader_activating_plugins_paths = array();
+ }
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php b/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php
new file mode 100644
index 00000000..0c12bce2
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-hook-manager.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * Allows the latest autoloader to register hooks that can be removed when the autoloader is reset.
+ */
+class Hook_Manager {
+
+ /**
+ * An array containing all of the hooks that we've registered.
+ *
+ * @var array
+ */
+ private $registered_hooks;
+
+ /**
+ * The constructor.
+ */
+ public function __construct() {
+ $this->registered_hooks = array();
+ }
+
+ /**
+ * Adds an action to WordPress and registers it internally.
+ *
+ * @param string $tag The name of the action which is hooked.
+ * @param callable $callable The function to call.
+ * @param int $priority Used to specify the priority of the action.
+ * @param int $accepted_args Used to specify the number of arguments the callable accepts.
+ */
+ public function add_action( $tag, $callable, $priority = 10, $accepted_args = 1 ) {
+ $this->registered_hooks[ $tag ][] = array(
+ 'priority' => $priority,
+ 'callable' => $callable,
+ );
+
+ add_action( $tag, $callable, $priority, $accepted_args );
+ }
+
+ /**
+ * Adds a filter to WordPress and registers it internally.
+ *
+ * @param string $tag The name of the filter which is hooked.
+ * @param callable $callable The function to call.
+ * @param int $priority Used to specify the priority of the filter.
+ * @param int $accepted_args Used to specify the number of arguments the callable accepts.
+ */
+ public function add_filter( $tag, $callable, $priority = 10, $accepted_args = 1 ) {
+ $this->registered_hooks[ $tag ][] = array(
+ 'priority' => $priority,
+ 'callable' => $callable,
+ );
+
+ add_filter( $tag, $callable, $priority, $accepted_args );
+ }
+
+ /**
+ * Removes all of the registered hooks.
+ */
+ public function reset() {
+ foreach ( $this->registered_hooks as $tag => $hooks ) {
+ foreach ( $hooks as $hook ) {
+ remove_filter( $tag, $hook['callable'], $hook['priority'] );
+ }
+ }
+ $this->registered_hooks = array();
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php b/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
new file mode 100644
index 00000000..606d671b
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-latest-autoloader-guard.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class ensures that we're only executing the latest autoloader.
+ */
+class Latest_Autoloader_Guard {
+
+ /**
+ * The Plugins_Handler instance.
+ *
+ * @var Plugins_Handler
+ */
+ private $plugins_handler;
+
+ /**
+ * The Autoloader_Handler instance.
+ *
+ * @var Autoloader_Handler
+ */
+ private $autoloader_handler;
+
+ /**
+ * The Autoloader_locator instance.
+ *
+ * @var Autoloader_Locator
+ */
+ private $autoloader_locator;
+
+ /**
+ * The constructor.
+ *
+ * @param Plugins_Handler $plugins_handler The Plugins_Handler instance.
+ * @param Autoloader_Handler $autoloader_handler The Autoloader_Handler instance.
+ * @param Autoloader_Locator $autoloader_locator The Autoloader_Locator instance.
+ */
+ public function __construct( $plugins_handler, $autoloader_handler, $autoloader_locator ) {
+ $this->plugins_handler = $plugins_handler;
+ $this->autoloader_handler = $autoloader_handler;
+ $this->autoloader_locator = $autoloader_locator;
+ }
+
+ /**
+ * Indicates whether or not the autoloader should be initialized. Note that this function
+ * has the side-effect of actually loading the latest autoloader in the event that this
+ * is not it.
+ *
+ * @param string $current_plugin The current plugin we're checking.
+ * @param string[] $plugins The active plugins to check for autoloaders in.
+ * @param bool $was_included_by_autoloader Indicates whether or not this autoloader was included by another.
+ *
+ * @return bool True if we should stop initialization, otherwise false.
+ */
+ public function should_stop_init( $current_plugin, $plugins, $was_included_by_autoloader ) {
+ global $jetpack_autoloader_latest_version;
+
+ // We need to reset the autoloader when the plugins change because
+ // that means the autoloader was generated with a different list.
+ if ( $this->plugins_handler->have_plugins_changed( $plugins ) ) {
+ $this->autoloader_handler->reset_autoloader();
+ }
+
+ // When the latest autoloader has already been found we don't need to search for it again.
+ // We should take care however because this will also trigger if the autoloader has been
+ // included by an older one.
+ if ( isset( $jetpack_autoloader_latest_version ) && ! $was_included_by_autoloader ) {
+ return true;
+ }
+
+ $latest_plugin = $this->autoloader_locator->find_latest_autoloader( $plugins, $jetpack_autoloader_latest_version );
+ if ( isset( $latest_plugin ) && $latest_plugin !== $current_plugin ) {
+ require $this->autoloader_locator->get_autoloader_path( $latest_plugin );
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php
new file mode 100644
index 00000000..361d5428
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-manifest-reader.php
@@ -0,0 +1,99 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class reads autoloader manifest files.
+ */
+class Manifest_Reader {
+
+ /**
+ * The Version_Selector object.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The Version_Selector object.
+ */
+ public function __construct( $version_selector ) {
+ $this->version_selector = $version_selector;
+ }
+
+ /**
+ * Reads all of the manifests in the given plugin paths.
+ *
+ * @param array $plugin_paths The paths to the plugins we're loading the manifest in.
+ * @param string $manifest_path The path that we're loading the manifest from in each plugin.
+ * @param array $path_map The path map to add the contents of the manifests to.
+ *
+ * @return array $path_map The path map we've built using the manifests in each plugin.
+ */
+ public function read_manifests( $plugin_paths, $manifest_path, &$path_map ) {
+ $file_paths = array_map(
+ function ( $path ) use ( $manifest_path ) {
+ return trailingslashit( $path ) . $manifest_path;
+ },
+ $plugin_paths
+ );
+
+ foreach ( $file_paths as $path ) {
+ $this->register_manifest( $path, $path_map );
+ }
+
+ return $path_map;
+ }
+
+ /**
+ * Registers a plugin's manifest file with the path map.
+ *
+ * @param string $manifest_path The absolute path to the manifest that we're loading.
+ * @param array $path_map The path map to add the contents of the manifest to.
+ */
+ protected function register_manifest( $manifest_path, &$path_map ) {
+ if ( ! is_readable( $manifest_path ) ) {
+ return;
+ }
+
+ $manifest = require $manifest_path;
+ if ( ! is_array( $manifest ) ) {
+ return;
+ }
+
+ foreach ( $manifest as $key => $data ) {
+ $this->register_record( $key, $data, $path_map );
+ }
+ }
+
+ /**
+ * Registers an entry from the manifest in the path map.
+ *
+ * @param string $key The identifier for the entry we're registering.
+ * @param array $data The data for the entry we're registering.
+ * @param array $path_map The path map to add the contents of the manifest to.
+ */
+ protected function register_record( $key, $data, &$path_map ) {
+ if ( isset( $path_map[ $key ]['version'] ) ) {
+ $selected_version = $path_map[ $key ]['version'];
+ } else {
+ $selected_version = null;
+ }
+
+ if ( $this->version_selector->is_version_update_required( $selected_version, $data['version'] ) ) {
+ $path_map[ $key ] = array(
+ 'version' => $data['version'],
+ 'path' => $data['path'],
+ );
+ }
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php b/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php
new file mode 100644
index 00000000..d7d9331f
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-path-processor.php
@@ -0,0 +1,194 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles dealing with paths for the autoloader.
+ */
+class Path_Processor {
+ /**
+ * Given a path this will replace any of the path constants with a token to represent it.
+ *
+ * @param string $path The path we want to process.
+ *
+ * @return string The tokenized path.
+ */
+ public function tokenize_path_constants( $path ) {
+ $path = wp_normalize_path( $path );
+
+ $constants = $this->get_normalized_constants();
+ foreach ( $constants as $constant => $constant_path ) {
+ $len = strlen( $constant_path );
+ if ( substr( $path, 0, $len ) !== $constant_path ) {
+ continue;
+ }
+
+ return substr_replace( $path, '{{' . $constant . '}}', 0, $len );
+ }
+
+ return $path;
+ }
+
+ /**
+ * Given a path this will replace any of the path constant tokens with the expanded path.
+ *
+ * @param string $tokenized_path The path we want to process.
+ *
+ * @return string The expanded path.
+ */
+ public function untokenize_path_constants( $tokenized_path ) {
+ $tokenized_path = wp_normalize_path( $tokenized_path );
+
+ $constants = $this->get_normalized_constants();
+ foreach ( $constants as $constant => $constant_path ) {
+ $constant = '{{' . $constant . '}}';
+
+ $len = strlen( $constant );
+ if ( substr( $tokenized_path, 0, $len ) !== $constant ) {
+ continue;
+ }
+
+ return $this->get_real_path( substr_replace( $tokenized_path, $constant_path, 0, $len ) );
+ }
+
+ return $tokenized_path;
+ }
+
+ /**
+ * Given a file and an array of places it might be, this will find the absolute path and return it.
+ *
+ * @param string $file The plugin or theme file to resolve.
+ * @param array $directories_to_check The directories we should check for the file if it isn't an absolute path.
+ *
+ * @return string|false Returns the absolute path to the directory, otherwise false.
+ */
+ public function find_directory_with_autoloader( $file, $directories_to_check ) {
+ $file = wp_normalize_path( $file );
+
+ if ( ! $this->is_absolute_path( $file ) ) {
+ $file = $this->find_absolute_plugin_path( $file, $directories_to_check );
+ if ( ! isset( $file ) ) {
+ return false;
+ }
+ }
+
+ // We need the real path for consistency with __DIR__ paths.
+ $file = $this->get_real_path( $file );
+
+ // phpcs:disable WordPress.PHP.NoSilencedErrors.Discouraged
+ $directory = @is_file( $file ) ? dirname( $file ) : $file;
+ if ( ! @is_file( $directory . '/vendor/composer/jetpack_autoload_classmap.php' ) ) {
+ return false;
+ }
+ // phpcs:enable WordPress.PHP.NoSilencedErrors.Discouraged
+
+ return $directory;
+ }
+
+ /**
+ * Fetches an array of normalized paths keyed by the constant they came from.
+ *
+ * @return string[] The normalized paths keyed by the constant.
+ */
+ private function get_normalized_constants() {
+ $raw_constants = array(
+ // Order the constants from most-specific to least-specific.
+ 'WP_PLUGIN_DIR',
+ 'WPMU_PLUGIN_DIR',
+ 'WP_CONTENT_DIR',
+ 'ABSPATH',
+ );
+
+ $constants = array();
+ foreach ( $raw_constants as $raw ) {
+ if ( ! defined( $raw ) ) {
+ continue;
+ }
+
+ $path = wp_normalize_path( constant( $raw ) );
+ if ( isset( $path ) ) {
+ $constants[ $raw ] = $path;
+ }
+ }
+
+ return $constants;
+ }
+
+ /**
+ * Indicates whether or not a path is absolute.
+ *
+ * @param string $path The path to check.
+ *
+ * @return bool True if the path is absolute, otherwise false.
+ */
+ private function is_absolute_path( $path ) {
+ if ( 0 === strlen( $path ) || '.' === $path[0] ) {
+ return false;
+ }
+
+ // Absolute paths on Windows may begin with a drive letter.
+ if ( preg_match( '/^[a-zA-Z]:[\/\\\\]/', $path ) ) {
+ return true;
+ }
+
+ // A path starting with / or \ is absolute; anything else is relative.
+ return ( '/' === $path[0] || '\\' === $path[0] );
+ }
+
+ /**
+ * Given a file and a list of directories to check, this method will try to figure out
+ * the absolute path to the file in question.
+ *
+ * @param string $normalized_path The normalized path to the plugin or theme file to resolve.
+ * @param array $directories_to_check The directories we should check for the file if it isn't an absolute path.
+ *
+ * @return string|null The absolute path to the plugin file, otherwise null.
+ */
+ private function find_absolute_plugin_path( $normalized_path, $directories_to_check ) {
+ // We're only able to find the absolute path for plugin/theme PHP files.
+ if ( ! is_string( $normalized_path ) || '.php' !== substr( $normalized_path, -4 ) ) {
+ return null;
+ }
+
+ foreach ( $directories_to_check as $directory ) {
+ $normalized_check = wp_normalize_path( trailingslashit( $directory ) ) . $normalized_path;
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ if ( @is_file( $normalized_check ) ) {
+ return $normalized_check;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Given a path this will figure out the real path that we should be using.
+ *
+ * @param string $path The path to resolve.
+ *
+ * @return string The resolved path.
+ */
+ private function get_real_path( $path ) {
+ // We want to resolve symbolic links for consistency with __DIR__ paths.
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ $real_path = @realpath( $path );
+ if ( false === $real_path ) {
+ // Let the autoloader deal with paths that don't exist.
+ $real_path = $path;
+ }
+
+ // Using realpath will make it platform-specific so we must normalize it after.
+ if ( $path !== $real_path ) {
+ $real_path = wp_normalize_path( $real_path );
+ }
+
+ return $real_path;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php
new file mode 100644
index 00000000..7fcd3ffe
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-php-autoloader.php
@@ -0,0 +1,93 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles management of the actual PHP autoloader.
+ */
+class PHP_Autoloader {
+
+ /**
+ * Registers the autoloader with PHP so that it can begin autoloading classes.
+ *
+ * @param Version_Loader $version_loader The class loader to use in the autoloader.
+ */
+ public function register_autoloader( $version_loader ) {
+ // Make sure no other autoloaders are registered.
+ $this->unregister_autoloader();
+
+ // Set the global so that it can be used to load classes.
+ global $jetpack_autoloader_loader;
+ $jetpack_autoloader_loader = $version_loader;
+
+ // Ensure that the autoloader is first to avoid contention with others.
+ spl_autoload_register( array( self::class, 'load_class' ), true, true );
+ }
+
+ /**
+ * Unregisters the active autoloader so that it will no longer autoload classes.
+ */
+ public function unregister_autoloader() {
+ // Remove any v2 autoloader that we've already registered.
+ $autoload_chain = spl_autoload_functions();
+ if ( ! $autoload_chain ) {
+ return;
+ }
+ foreach ( $autoload_chain as $autoloader ) {
+ // We can identify a v2 autoloader using the namespace.
+ $namespace_check = null;
+
+ // Functions are recorded as strings.
+ if ( is_string( $autoloader ) ) {
+ $namespace_check = $autoloader;
+ } elseif ( is_array( $autoloader ) && is_string( $autoloader[0] ) ) {
+ // Static method calls have the class as the first array element.
+ $namespace_check = $autoloader[0];
+ } else {
+ // Since the autoloader has only ever been a function or a static method we don't currently need to check anything else.
+ continue;
+ }
+
+ // Check for the namespace without the generated suffix.
+ if ( 'Automattic\\Jetpack\\Autoloader\\jp' === substr( $namespace_check, 0, 32 ) ) {
+ spl_autoload_unregister( $autoloader );
+ }
+ }
+
+ // Clear the global now that the autoloader has been unregistered.
+ global $jetpack_autoloader_loader;
+ $jetpack_autoloader_loader = null;
+ }
+
+ /**
+ * Loads a class file if one could be found.
+ *
+ * Note: This function is static so that the autoloader can be easily unregistered. If
+ * it was a class method we would have to unwrap the object to check the namespace.
+ *
+ * @param string $class_name The name of the class to autoload.
+ *
+ * @return bool Indicates whether or not a class file was loaded.
+ */
+ public static function load_class( $class_name ) {
+ global $jetpack_autoloader_loader;
+ if ( ! isset( $jetpack_autoloader_loader ) ) {
+ return;
+ }
+
+ $file = $jetpack_autoloader_loader->find_class_file( $class_name );
+ if ( ! isset( $file ) ) {
+ return false;
+ }
+
+ require $file;
+ return true;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php b/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php
new file mode 100644
index 00000000..eee5fdfd
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-plugin-locator.php
@@ -0,0 +1,153 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class scans the WordPress installation to find active plugins.
+ */
+class Plugin_Locator {
+
+ /**
+ * The path processor for finding plugin paths.
+ *
+ * @var Path_Processor
+ */
+ private $path_processor;
+
+ /**
+ * The constructor.
+ *
+ * @param Path_Processor $path_processor The Path_Processor instance.
+ */
+ public function __construct( $path_processor ) {
+ $this->path_processor = $path_processor;
+ }
+
+ /**
+ * Finds the path to the current plugin.
+ *
+ * @return string $path The path to the current plugin.
+ *
+ * @throws \RuntimeException If the current plugin does not have an autoloader.
+ */
+ public function find_current_plugin() {
+ // Escape from `vendor/__DIR__` to root plugin directory.
+ $plugin_directory = dirname( dirname( __DIR__ ) );
+
+ // Use the path processor to ensure that this is an autoloader we're referencing.
+ $path = $this->path_processor->find_directory_with_autoloader( $plugin_directory, array() );
+ if ( false === $path ) {
+ throw new \RuntimeException( 'Failed to locate plugin ' . $plugin_directory );
+ }
+
+ return $path;
+ }
+
+ /**
+ * Checks a given option for plugin paths.
+ *
+ * @param string $option_name The option that we want to check for plugin information.
+ * @param bool $site_option Indicates whether or not we want to check the site option.
+ *
+ * @return array $plugin_paths The list of absolute paths we've found.
+ */
+ public function find_using_option( $option_name, $site_option = false ) {
+ $raw = $site_option ? get_site_option( $option_name ) : get_option( $option_name );
+ if ( false === $raw ) {
+ return array();
+ }
+
+ return $this->convert_plugins_to_paths( $raw );
+ }
+
+ /**
+ * Checks for plugins in the `action` request parameter.
+ *
+ * @param string[] $allowed_actions The actions that we're allowed to return plugins for.
+ *
+ * @return array $plugin_paths The list of absolute paths we've found.
+ */
+ public function find_using_request_action( $allowed_actions ) {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+
+ /**
+ * Note: we're not actually checking the nonce here because it's too early
+ * in the execution. The pluggable functions are not yet loaded to give
+ * plugins a chance to plug their versions. Therefore we're doing the bare
+ * minimum: checking whether the nonce exists and it's in the right place.
+ * The request will fail later if the nonce doesn't pass the check.
+ */
+ if ( empty( $_REQUEST['_wpnonce'] ) ) {
+ return array();
+ }
+
+ $action = isset( $_REQUEST['action'] ) ? wp_unslash( $_REQUEST['action'] ) : false;
+ if ( ! in_array( $action, $allowed_actions, true ) ) {
+ return array();
+ }
+
+ $plugin_slugs = array();
+ switch ( $action ) {
+ case 'activate':
+ case 'deactivate':
+ if ( empty( $_REQUEST['plugin'] ) ) {
+ break;
+ }
+
+ $plugin_slugs[] = wp_unslash( $_REQUEST['plugin'] );
+ break;
+
+ case 'activate-selected':
+ case 'deactivate-selected':
+ if ( empty( $_REQUEST['checked'] ) ) {
+ break;
+ }
+
+ $plugin_slugs = wp_unslash( $_REQUEST['checked'] );
+ break;
+ }
+
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+ return $this->convert_plugins_to_paths( $plugin_slugs );
+ }
+
+ /**
+ * Given an array of plugin slugs or paths, this will convert them to absolute paths and filter
+ * out the plugins that are not directory plugins. Note that array keys will also be included
+ * if they are plugin paths!
+ *
+ * @param string[] $plugins Plugin paths or slugs to filter.
+ *
+ * @return string[]
+ */
+ private function convert_plugins_to_paths( $plugins ) {
+ if ( ! is_array( $plugins ) || empty( $plugins ) ) {
+ return array();
+ }
+
+ // We're going to look for plugins in the standard directories.
+ $path_constants = array( WP_PLUGIN_DIR, WPMU_PLUGIN_DIR );
+
+ $plugin_paths = array();
+ foreach ( $plugins as $key => $value ) {
+ $path = $this->path_processor->find_directory_with_autoloader( $key, $path_constants );
+ if ( $path ) {
+ $plugin_paths[] = $path;
+ }
+
+ $path = $this->path_processor->find_directory_with_autoloader( $value, $path_constants );
+ if ( $path ) {
+ $plugin_paths[] = $path;
+ }
+ }
+
+ return $plugin_paths;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php
new file mode 100644
index 00000000..500a4ab0
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-plugins-handler.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles locating and caching all of the active plugins.
+ */
+class Plugins_Handler {
+ /**
+ * The transient key for plugin paths.
+ */
+ const TRANSIENT_KEY = 'jetpack_autoloader_plugin_paths';
+
+ /**
+ * The locator for finding plugins in different locations.
+ *
+ * @var Plugin_Locator
+ */
+ private $plugin_locator;
+
+ /**
+ * The processor for transforming cached paths.
+ *
+ * @var Path_Processor
+ */
+ private $path_processor;
+
+ /**
+ * The constructor.
+ *
+ * @param Plugin_Locator $plugin_locator The locator for finding active plugins.
+ * @param Path_Processor $path_processor The processor for transforming cached paths.
+ */
+ public function __construct( $plugin_locator, $path_processor ) {
+ $this->plugin_locator = $plugin_locator;
+ $this->path_processor = $path_processor;
+ }
+
+ /**
+ * Gets all of the active plugins we can find.
+ *
+ * @param bool $include_deactivating When true, plugins deactivating this request will be considered active.
+ * @param bool $record_unknown When true, the current plugin will be marked as active and recorded when unknown.
+ *
+ * @return string[]
+ */
+ public function get_active_plugins( $include_deactivating, $record_unknown ) {
+ global $jetpack_autoloader_activating_plugins_paths;
+
+ // We're going to build a unique list of plugins from a few different sources
+ // to find all of our "active" plugins. While we need to return an integer
+ // array, we're going to use an associative array internally to reduce
+ // the amount of time that we're going to spend checking uniqueness
+ // and merging different arrays together to form the output.
+ $active_plugins = array();
+
+ // Make sure that plugins which have activated this request are considered as "active" even though
+ // they probably won't be present in any option.
+ if ( is_array( $jetpack_autoloader_activating_plugins_paths ) ) {
+ foreach ( $jetpack_autoloader_activating_plugins_paths as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+ }
+
+ // This option contains all of the plugins that have been activated.
+ $plugins = $this->plugin_locator->find_using_option( 'active_plugins' );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+
+ // This option contains all of the multisite plugins that have been activated.
+ if ( is_multisite() ) {
+ $plugins = $this->plugin_locator->find_using_option( 'active_sitewide_plugins', true );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+ }
+
+ // These actions contain plugins that are being activated/deactivated during this request.
+ $plugins = $this->plugin_locator->find_using_request_action( array( 'activate', 'activate-selected', 'deactivate', 'deactivate-selected' ) );
+ foreach ( $plugins as $path ) {
+ $active_plugins[ $path ] = $path;
+ }
+
+ // When the current plugin isn't considered "active" there's a problem.
+ // Since we're here, the plugin is active and currently being loaded.
+ // We can support this case (mu-plugins and non-standard activation)
+ // by adding the current plugin to the active list and marking it
+ // as an unknown (activating) plugin. This also has the benefit
+ // of causing a reset because the active plugins list has
+ // been changed since it was saved in the global.
+ $current_plugin = $this->plugin_locator->find_current_plugin();
+ if ( $record_unknown && ! in_array( $current_plugin, $active_plugins, true ) ) {
+ $active_plugins[ $current_plugin ] = $current_plugin;
+ $jetpack_autoloader_activating_plugins_paths[] = $current_plugin;
+ }
+
+ // When deactivating plugins aren't desired we should entirely remove them from the active list.
+ if ( ! $include_deactivating ) {
+ // These actions contain plugins that are being deactivated during this request.
+ $plugins = $this->plugin_locator->find_using_request_action( array( 'deactivate', 'deactivate-selected' ) );
+ foreach ( $plugins as $path ) {
+ unset( $active_plugins[ $path ] );
+ }
+ }
+
+ // Transform the array so that we don't have to worry about the keys interacting with other array types later.
+ return array_values( $active_plugins );
+ }
+
+ /**
+ * Gets all of the cached plugins if there are any.
+ *
+ * @return string[]
+ */
+ public function get_cached_plugins() {
+ $cached = get_transient( self::TRANSIENT_KEY );
+ if ( ! is_array( $cached ) || empty( $cached ) ) {
+ return array();
+ }
+
+ // We need to expand the tokens to an absolute path for this webserver.
+ return array_map( array( $this->path_processor, 'untokenize_path_constants' ), $cached );
+ }
+
+ /**
+ * Saves the plugin list to the cache.
+ *
+ * @param array $plugins The plugin list to save to the cache.
+ */
+ public function cache_plugins( $plugins ) {
+ // We store the paths in a tokenized form so that that webservers with different absolute paths don't break.
+ $plugins = array_map( array( $this->path_processor, 'tokenize_path_constants' ), $plugins );
+
+ set_transient( self::TRANSIENT_KEY, $plugins );
+ }
+
+ /**
+ * Checks to see whether or not the plugin list given has changed when compared to the
+ * shared `$jetpack_autoloader_cached_plugin_paths` global. This allows us to deal
+ * with cases where the active list may change due to filtering..
+ *
+ * @param string[] $plugins The plugins list to check against the global cache.
+ *
+ * @return bool True if the plugins have changed, otherwise false.
+ */
+ public function have_plugins_changed( $plugins ) {
+ global $jetpack_autoloader_cached_plugin_paths;
+
+ if ( $jetpack_autoloader_cached_plugin_paths !== $plugins ) {
+ $jetpack_autoloader_cached_plugin_paths = $plugins;
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php b/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php
new file mode 100644
index 00000000..c2f330af
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-shutdown-handler.php
@@ -0,0 +1,92 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class handles the shutdown of the autoloader.
+ */
+class Shutdown_Handler {
+
+ /**
+ * The Plugins_Handler instance.
+ *
+ * @var Plugins_Handler
+ */
+ private $plugins_handler;
+
+ /**
+ * The plugins cached by this autoloader.
+ *
+ * @var string[]
+ */
+ private $cached_plugins;
+
+ /**
+ * Indicates whether or not this autoloader was included by another.
+ *
+ * @var bool
+ */
+ private $was_included_by_autoloader;
+
+ /**
+ * Constructor.
+ *
+ * @param Plugins_Handler $plugins_handler The Plugins_Handler instance to use.
+ * @param string[] $cached_plugins The plugins cached by the autoloaer.
+ * @param bool $was_included_by_autoloader Indicates whether or not the autoloader was included by another.
+ */
+ public function __construct( $plugins_handler, $cached_plugins, $was_included_by_autoloader ) {
+ $this->plugins_handler = $plugins_handler;
+ $this->cached_plugins = $cached_plugins;
+ $this->was_included_by_autoloader = $was_included_by_autoloader;
+ }
+
+ /**
+ * Handles the shutdown of the autoloader.
+ */
+ public function __invoke() {
+ // Don't save a broken cache if an error happens during some plugin's initialization.
+ if ( ! did_action( 'plugins_loaded' ) ) {
+ // Ensure that the cache is emptied to prevent consecutive failures if the cache is to blame.
+ if ( ! empty( $this->cached_plugins ) ) {
+ $this->plugins_handler->cache_plugins( array() );
+ }
+
+ return;
+ }
+
+ // Load the active plugins fresh since the list we pulled earlier might not contain
+ // plugins that were activated but did not reset the autoloader. This happens
+ // when a plugin is in the cache but not "active" when the autoloader loads.
+ // We also want to make sure that plugins which are deactivating are not
+ // considered "active" so that they will be removed from the cache now.
+ try {
+ $active_plugins = $this->plugins_handler->get_active_plugins( false, ! $this->was_included_by_autoloader );
+ } catch ( \Exception $ex ) {
+ // When the package is deleted before shutdown it will throw an exception.
+ // In the event this happens we should erase the cache.
+ if ( ! empty( $this->cached_plugins ) ) {
+ $this->plugins_handler->cache_plugins( array() );
+ }
+ return;
+ }
+
+ // The paths should be sorted for easy comparisons with those loaded from the cache.
+ // Note we don't need to sort the cached entries because they're already sorted.
+ sort( $active_plugins );
+
+ // We don't want to waste time saving a cache that hasn't changed.
+ if ( $this->cached_plugins === $active_plugins ) {
+ return;
+ }
+
+ $this->plugins_handler->cache_plugins( $active_plugins );
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php b/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php
new file mode 100644
index 00000000..21c659ef
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-version-loader.php
@@ -0,0 +1,164 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * This class loads other classes based on given parameters.
+ */
+class Version_Loader {
+
+ /**
+ * The Version_Selector object.
+ *
+ * @var Version_Selector
+ */
+ private $version_selector;
+
+ /**
+ * A map of available classes and their version and file path.
+ *
+ * @var array
+ */
+ private $classmap;
+
+ /**
+ * A map of PSR-4 namespaces and their version and directory path.
+ *
+ * @var array
+ */
+ private $psr4_map;
+
+ /**
+ * A map of all the files that we should load.
+ *
+ * @var array
+ */
+ private $filemap;
+
+ /**
+ * The constructor.
+ *
+ * @param Version_Selector $version_selector The Version_Selector object.
+ * @param array $classmap The verioned classmap to load using.
+ * @param array $psr4_map The versioned PSR-4 map to load using.
+ * @param array $filemap The versioned filemap to load.
+ */
+ public function __construct( $version_selector, $classmap, $psr4_map, $filemap ) {
+ $this->version_selector = $version_selector;
+ $this->classmap = $classmap;
+ $this->psr4_map = $psr4_map;
+ $this->filemap = $filemap;
+ }
+
+ /**
+ * Finds the file path for the given class.
+ *
+ * @param string $class_name The class to find.
+ *
+ * @return string|null $file_path The path to the file if found, null if no class was found.
+ */
+ public function find_class_file( $class_name ) {
+ $data = $this->select_newest_file(
+ isset( $this->classmap[ $class_name ] ) ? $this->classmap[ $class_name ] : null,
+ $this->find_psr4_file( $class_name )
+ );
+ if ( ! isset( $data ) ) {
+ return null;
+ }
+
+ return $data['path'];
+ }
+
+ /**
+ * Load all of the files in the filemap.
+ */
+ public function load_filemap() {
+ if ( empty( $this->filemap ) ) {
+ return;
+ }
+
+ foreach ( $this->filemap as $file_identifier => $file_data ) {
+ if ( empty( $GLOBALS['__composer_autoload_files'][ $file_identifier ] ) ) {
+ require_once $file_data['path'];
+
+ $GLOBALS['__composer_autoload_files'][ $file_identifier ] = true;
+ }
+ }
+ }
+
+ /**
+ * Compares different class sources and returns the newest.
+ *
+ * @param array|null $classmap_data The classmap class data.
+ * @param array|null $psr4_data The PSR-4 class data.
+ *
+ * @return array|null $data
+ */
+ private function select_newest_file( $classmap_data, $psr4_data ) {
+ if ( ! isset( $classmap_data ) ) {
+ return $psr4_data;
+ } elseif ( ! isset( $psr4_data ) ) {
+ return $classmap_data;
+ }
+
+ if ( $this->version_selector->is_version_update_required( $classmap_data['version'], $psr4_data['version'] ) ) {
+ return $psr4_data;
+ }
+
+ return $classmap_data;
+ }
+
+ /**
+ * Finds the file for a given class in a PSR-4 namespace.
+ *
+ * @param string $class_name The class to find.
+ *
+ * @return array|null $data The version and path path to the file if found, null otherwise.
+ */
+ private function find_psr4_file( $class_name ) {
+ if ( ! isset( $this->psr4_map ) ) {
+ return null;
+ }
+
+ // Don't bother with classes that have no namespace.
+ $class_index = strrpos( $class_name, '\\' );
+ if ( ! $class_index ) {
+ return null;
+ }
+ $class_for_path = str_replace( '\\', '/', $class_name );
+
+ // Search for the namespace by iteratively cutting off the last segment until
+ // we find a match. This allows us to check the most-specific namespaces
+ // first as well as minimize the amount of time spent looking.
+ for (
+ $class_namespace = substr( $class_name, 0, $class_index );
+ ! empty( $class_namespace );
+ $class_namespace = substr( $class_namespace, 0, strrpos( $class_namespace, '\\' ) )
+ ) {
+ $namespace = $class_namespace . '\\';
+ if ( ! isset( $this->psr4_map[ $namespace ] ) ) {
+ continue;
+ }
+ $data = $this->psr4_map[ $namespace ];
+
+ foreach ( $data['path'] as $path ) {
+ $path .= '/' . substr( $class_for_path, strlen( $namespace ) ) . '.php';
+ if ( file_exists( $path ) ) {
+ return array(
+ 'version' => $data['version'],
+ 'path' => $path,
+ );
+ }
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php b/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php
new file mode 100644
index 00000000..bcd7e534
--- /dev/null
+++ b/plugins/jetpack/vendor/jetpack-autoloader/class-version-selector.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * This file was automatically generated by automattic/jetpack-autoloader.
+ *
+ * @package automattic/jetpack-autoloader
+ */
+
+namespace Automattic\Jetpack\Autoloader\jpf11009ded9fc4592b6a05b61ce272b3c_jetpackⓥ10_5;
+
+ // phpcs:ignore
+
+/**
+ * Used to select package versions.
+ */
+class Version_Selector {
+
+ /**
+ * Checks whether the selected package version should be updated. Composer development
+ * package versions ('9999999-dev' or versions that start with 'dev-') are favored
+ * when the JETPACK_AUTOLOAD_DEV constant is set to true.
+ *
+ * @param String $selected_version The currently selected package version.
+ * @param String $compare_version The package version that is being evaluated to
+ * determine if the version needs to be updated.
+ *
+ * @return bool Returns true if the selected package version should be updated,
+ * else false.
+ */
+ public function is_version_update_required( $selected_version, $compare_version ) {
+ $use_dev_versions = defined( 'JETPACK_AUTOLOAD_DEV' ) && JETPACK_AUTOLOAD_DEV;
+
+ if ( is_null( $selected_version ) ) {
+ return true;
+ }
+
+ if ( $use_dev_versions && $this->is_dev_version( $selected_version ) ) {
+ return false;
+ }
+
+ if ( $this->is_dev_version( $compare_version ) ) {
+ if ( $use_dev_versions ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ if ( version_compare( $selected_version, $compare_version, '<' ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package version is a development version.
+ *
+ * @param String $version The package version.
+ *
+ * @return bool True if the version is a dev version, else false.
+ */
+ public function is_dev_version( $version ) {
+ if ( 'dev-' === substr( $version, 0, 4 ) || '9999999-dev' === $version ) {
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md b/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md
new file mode 100755
index 00000000..5bf81742
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/Changes.md
@@ -0,0 +1,31 @@
+# Changes
+
+## 3.1.2
+
+- Hit highlighting: avoid errors with PHP 8.
+
+## 3.0.0
+
+- Pass twitter-text conformance 3.0.0
+- Change default configuration to v3 (emojiParsingEnabled=true)
+- Add t.co with query string support
+- Add Directional Characters support
+
+## 2.0.2
+
+- Pass twitter-text conformance 2.0.5
+- Change default configuration to v2 in `Validator`.
+
+## 2.0.1
+
+- Fixes wrong method call in Extractor::extract() #19
+
+## 2.0.0
+
+- Pass twitter-text conformance 2.0.0
+- Add to required php extension, `mbstring` and `intl`.
+- Add `Parser`, `ParseResults`, `Configuration` class for twitter-text 2.0 "weighted" tweets.
+- Twtter\Text classes no longer extended Regex class.
+- Deprecated `Validator::isValidTweetText()`, `Validator::getTweetLength()`.
+- `Extractor` constractor no longer accepts `$tweet`
+- `Validator` constractor no longer accepts `$tweet` and `$config`. `Validator` constractor only accepts `Configuration` incetance.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE b/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE
new file mode 100644
index 00000000..f9dd53d7
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2010 Mike Cochrane
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not
+use this file except in compliance with the License. You may obtain a copy of
+the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+License for the specific language governing permissions and limitations under
+the License.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md b/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md
new file mode 100755
index 00000000..fde5c7de
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/README.md
@@ -0,0 +1,148 @@
+# Twitter Text (PHP Edition) #
+
+A library of PHP classes that provide auto-linking and extraction of usernames,
+lists, hashtags and URLs from tweets. Originally created from twitter-text-rb
+and twitter-text-java projects by Matt Sanford and ported to PHP by Mike
+Cochrane, this library has been improved and made more complete by Nick Pope.
+
+<p align="center">
+ <a href="https://github.com/nojimage/twitter-text-php/actions/workflows/ci.yml" target="_blank">
+ <img alt="Build Status" src="https://github.com/nojimage/twitter-text-php/actions/workflows/ci.yml/badge.svg">
+ </a>
+ <a href="https://codecov.io/gh/nojimage/twitter-text-php" target="_blank">
+ <img alt="Codecov" src="https://img.shields.io/codecov/c/github/nojimage/twitter-text-php.svg?style=flat-square">
+ </a>
+ <a href="https://packagist.org/packages/nojimage/twitter-text-php" target="_blank">
+ <img alt="Latest Stable Version" src="https://img.shields.io/packagist/v/nojimage/twitter-text-php.svg?style=flat-square">
+ </a>
+</p>
+
+## Requirements ##
+
+- PHP 5.3 or higher
+- ext-mbstring
+- ext-intl
+
+If the necessary extensions are not installed on the server, please install it additionally or use [symfony/polyfill](https://github.com/symfony/polyfill).
+
+## Install ##
+
+You can install this library into your application using [Composer](https://getcomposer.org/).
+
+```
+composer require nojimage/twitter-text-php
+```
+
+### Note for Older Server ###
+
+This library use intl/libICU.
+Some older server and PHP 7.2+ combinations may have deprecated warnings due to older ICU versions. [refs #32](https://github.com/nojimage/twitter-text-php/issues/32)
+
+If you are using RHEL/CentOS 6, installing PHP using [the remi repository](https://rpms.remirepo.net/) is the best choice.
+If you use remi, you can use the new ICU.
+
+## Features ##
+
+### Autolink ##
+
+ - Add links to all matching Twitter usernames (no account verification).
+ - Add links to all user lists (of the form @username/list-name).
+ - Add links to all valid hashtags.
+ - Add links to all URLs.
+ - Support for international character sets.
+
+### Extractor ###
+
+ - Extract mentioned Twitter usernames (from anywhere in the tweet).
+ - Extract replied to Twitter usernames (from start of the tweet).
+ - Extract all user lists (of the form @username/list-name).
+ - Extract all valid hashtags.
+ - Extract all URLs.
+ - Support for international character sets.
+
+### Hit Highlighter ###
+
+ - Highlight text specifed by a range by surrounding with a tag.
+ - Support for highlighting when tweet has already been autolinked.
+ - Support for international character sets.
+
+### Validation ###
+
+ - Validate different twitter text elements.
+ - Support for international character sets.
+
+### Parser ###
+
+- Parses a given tweet text with the weighted character count configuration.
+
+## Length validation ##
+
+twitter-text 3.0 updates the config file with `emojiParsingEnabled` config option.
+When true, twitter-text-php will parse and discount emoji supported by the [Unicode Emoji 11.0](http://www.unicode.org/emoji/charts-11.0) (NOTE: Original [twitter-text](https://github.com/twitter/twitter-text) supported [twemoji library](https://github.com/twitter/twemoji)).
+The length of these emoji will be the default weight (200 or two characters) even if they contain multiple code points combined by zero-width joiners.
+This means that emoji with skin tone and gender modifiers no longer count as more characters than those without such modifiers.
+
+twitter-text 2.0 introduced configuration files that define how Tweets are parsed for length. This allows for backwards compatibility and flexibility going forward.
+Old-style traditional 140-character parsing is defined by the v1.json configuration file, whereas v2.json is updated for "weighted" Tweets where ranges of Unicode code points can have independent weights aside from the default weight.
+The sum of all code points, each weighted appropriately, should not exceed the max weighted length.
+
+Some old methods from twitter-text-php 1.0 have been marked deprecated, such as the `Twitter\Text\Validator::isValidTweetText()`, `Twitter\Text\Validator::getTweetLength()` method. The new API is based on the following method, `Twitter\Text\Parser::parseTweet()`
+
+```(php)
+use Twitter\Text\Parser;
+$parser = new Parser();
+$result = $parser->parseTweet($text);
+```
+
+This method takes a string as input and returns a results object that contains information about the string. `Twitter\Text\ParseResults` object includes:
+
+- `weightedLength`: the overall length of the tweet with code points
+weighted per the ranges defined in the configuration file.
+
+- `permillage`: indicates the proportion (per thousand) of the weighted
+length in comparison to the max weighted length. A value > 1000
+indicates input text that is longer than the allowable maximum.
+
+- `valid`: indicates if input text length corresponds to a valid
+result.
+
+- `displayRangeStart, displayRangeEnd`: An array of two unicode code point
+indices identifying the inclusive start and exclusive end of the
+displayable content of the Tweet. For more information, see
+the description of `display_text_range` here:
+[Tweet updates](https://developer.twitter.com/en/docs/tweets/tweet-updates)
+
+- `validRangeStart, validRangeRnd`: An array of two unicode code point
+indices identifying the inclusive start and exclusive end of the valid
+content of the Tweet. For more information on the extended Tweet
+payload see [Tweet updates](https://developer.twitter.com/en/docs/tweets/tweet-updates)
+
+## Examples ##
+
+For examples, please see `tests/example.php` which you can view in a browser or
+run from the command line.
+
+## Conformance ##
+
+You'll need the test data which is in YAML format from the following
+repository:
+
+ https://github.com/twitter/twitter-text
+
+`twitter/twitter-text` already included in `composer.json`, so you should just need to run:
+
+ curl -s https://getcomposer.org/installer | php
+ php composer.phar install
+
+There are a couple of options for testing conformance:
+
+- Run `phpunit` in from the root folder of the project.
+
+## Thanks & Contributions ##
+
+The bulk of this library is from the heroic efforts of:
+
+ - Matt Sanford (https://github.com/mzsanford): For the orignal Ruby and Java implementions.
+ - Mike Cochrane (https://github.com/mikenz): For the initial PHP code.
+ - Nick Pope (https://github.com/ngnpope): For the bulk of the maintenance work to date.
+ - Takashi Nojima (https://github.com/nojimage): For ongoing maintenance work.
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php
new file mode 100644
index 00000000..67ce3c88
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-emoji-regex.php
@@ -0,0 +1,47 @@
+<?php
+
+require dirname(__DIR__) . '/vendor/autoload.php';
+
+$classFile = dirname(__DIR__) . '/lib/Twitter/Text/EmojiRegex.php';
+$emojiDataUrl = 'https://www.unicode.org/Public/emoji/12.1/emoji-test.txt';
+
+// --
+$emojiData = file($emojiDataUrl);
+$emojiCodes = array_map(function ($line) {
+ $value = preg_replace('/^([0-9A-F]{4,}(?: [0-9A-F]{4,})*)\s*;.*$/u', '$1', trim($line));
+
+ return explode(' ', $value);
+}, array_filter($emojiData, function ($line) {
+ return preg_match('/^[0-9A-F]{2}[0-9A-F]{2,}.*; /', $line);
+}));
+
+// sort code length, reverse®
+usort($emojiCodes, function ($a, $b) {
+ $aLength = count($a);
+ $bLength = count($b);
+ if ($aLength === $bLength) {
+ return 0;
+ }
+
+ return ($bLength < $aLength) ? -1 : 1;
+});
+
+$codeRegexList = array_reduce($emojiCodes, function ($carry, $codes) {
+ $carry[] = implode('', array_map(function ($c) {
+ return sprintf('\x{%s}', strtolower($c));
+ }, $codes));
+
+ return $carry;
+}, array());
+
+$regex = implode('|', $codeRegexList);
+
+echo "\n";
+
+// -- modify class file
+$classContent = file_get_contents($classFile);
+$replacedClassContent = preg_replace('/(\s+const VALID_EMOJI_PATTERN = \')(?:.*)(\';)/', '$1/' . $regex . '/u$2', $classContent);
+
+echo $replacedClassContent;
+
+file_put_contents($classFile, $replacedClassContent);
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php
new file mode 100644
index 00000000..858e0117
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/build/build-tld-lists.php
@@ -0,0 +1,100 @@
+<?php
+
+$rootDir = dirname(__DIR__);
+require $rootDir . '/vendor/autoload.php';
+
+use Symfony\Component\Yaml\Yaml;
+
+$classFile = $rootDir . '/lib/Twitter/Text/TldLists.php';
+$yamlParseMethod = 'parseFile';
+if (!method_exists('\Symfony\Component\Yaml\Yaml', $yamlParseMethod)) {
+ $yamlParseMethod = 'parse';
+}
+$tlds = Yaml::$yamlParseMethod($rootDir . '/vendor/twitter/twitter-text/conformance/tld_lib.yml');
+
+ob_start();
+echo "<?php\n";
+?>
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright <?= date('Y') ?>, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * TLD Lists
+ */
+final class TldLists
+{
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $gTLDs = array(
+<?php foreach ($tlds['generic'] as $tld) : ?>
+ '<?= $tld ?>',
+<?php endforeach; ?>
+ );
+
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $ccTLDs = array(
+<?php foreach ($tlds['country'] as $tld) : ?>
+ '<?= $tld ?>',
+<?php endforeach; ?>
+ );
+
+ /**
+ * get valid gTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidGTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $gTLD = implode('|', static::$gTLDs);
+ $regex = '(?:(?:' . $gTLD . ')(?=[^0-9a-z@]|$))';
+
+ return $regex;
+ }
+
+ /**
+ * get valid ccTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidCcTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $ccTLD = implode('|', static::$ccTLDs);
+ $regex = '(?:(?:' . $ccTLD . ')(?=[^0-9a-z@]|$))';
+
+ return $regex;
+ }
+}
+<?php
+$content = ob_get_clean();
+
+echo $content;
+
+file_put_contents($classFile, $content);
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json b/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json
new file mode 100644
index 00000000..57131d30
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/composer.json
@@ -0,0 +1,76 @@
+{
+ "name": "nojimage/twitter-text-php",
+ "description": "A library of PHP classes that provide auto-linking and extraction of usernames, lists, hashtags and URLs from tweets.",
+ "keywords": ["twitter", "text", "autolink", "extract"],
+ "homepage": "https://github.com/nojimage/twitter-text-php",
+ "type": "library",
+ "license": "Apache-2.0",
+ "authors": [
+ {
+ "name": "Matt Sanford",
+ "email": "matt@mzsanford.com",
+ "homepage": "http://mzsanford.com"
+ },
+ {
+ "name": "Mike Cochrane",
+ "email": "mikec@mikenz.geek.nz",
+ "homepage": "http://mikenz.geek.nz"
+ },
+ {
+ "name": "Nick Pope",
+ "email": "git@nickpope.me.uk",
+ "homepage": "http://www.nickpope.me.uk"
+ },
+ {
+ "name": "Takashi Nojima",
+ "homepage": "http://php-tips.com"
+ }
+ ],
+ "repositories": [
+ {
+ "type": "package",
+ "package": {
+ "name": "twitter/twitter-text",
+ "version": "3.1.0",
+ "source": {
+ "url": "https://github.com/twitter/twitter-text.git",
+ "type": "git",
+ "reference": "v3.1.0"
+ }
+ }
+ }
+ ],
+ "require": {
+ "php": ">=5.3.3",
+ "ext-mbstring": "*",
+ "ext-intl": "*"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "symfony/yaml": "^2.6.0|^3.4.0|^4.4.0|^5.0.0",
+ "phpunit/phpunit": "4.8.*|5.7.*|6.5.*",
+ "twitter/twitter-text": "^3.0.0"
+ },
+ "autoload": {
+ "psr-0": {
+ "Twitter\\Text\\": "lib/"
+ }
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Twitter\\Text\\TestCase\\": "tests/TestCase/"
+ }
+ },
+ "scripts": {
+ "check": [
+ "@cs",
+ "@test",
+ "@tld-test"
+ ],
+ "test": "phpunit --exclude-group deprecated,tld",
+ "deprecated-test": "phpunit --group deprecated",
+ "tld-test": "phpunit --group tld",
+ "cs": "phpcs -psn --standard=PSR12 --extensions=php ./lib ./tests",
+ "cs-fixer": "phpcbf --standard=PSR12 ./lib ./tests"
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php
new file mode 100644
index 00000000..f77d99a3
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Autolink.php
@@ -0,0 +1,934 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Autolink Class
+ *
+ * Parses tweets and generates HTML anchor tags around URLs, usernames,
+ * username/list pairs and hashtags.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Autolink
+{
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @var string
+ */
+ protected $class_url = '';
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @var string
+ */
+ protected $class_user = 'tweet-url username';
+
+ /**
+ * CSS class for auto-linked list URLs.
+ *
+ * @var string
+ */
+ protected $class_list = 'tweet-url list-slug';
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @var string
+ */
+ protected $class_hash = 'tweet-url hashtag';
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @var string
+ */
+ protected $class_cash = 'tweet-url cashtag';
+
+ /**
+ * URL base for username links (the username without the @ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_user = 'https://twitter.com/';
+
+ /**
+ * URL base for list links (the username/list without the @ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_list = 'https://twitter.com/';
+
+ /**
+ * URL base for hashtag links (the hashtag without the # will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_hash = 'https://twitter.com/search?q=%23';
+
+ /**
+ * URL base for cashtag links (the hashtag without the $ will be appended).
+ *
+ * @var string
+ */
+ protected $url_base_cash = 'https://twitter.com/search?q=%24';
+
+ /**
+ * the 'rel' attribute values.
+ *
+ * @var array
+ */
+ protected $rel = array('external', 'nofollow');
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @var string
+ */
+ protected $target = '_blank';
+
+ /**
+ * attribute for invisible span tag
+ *
+ * @var string
+ */
+ protected $invisibleTagAttrs = "style='position:absolute;left:-9999px;'";
+
+ /**
+ * If the at mark '@' should be included in the link (false by default)
+ *
+ * @var bool
+ * @since 3.0.1
+ */
+ protected $usernameIncludeSymbol = false;
+
+ /**
+ * HTML tag to be applied around #/@/# symbols in hashtags/usernames/lists/cashtag
+ *
+ * @var string
+ * @since 3.0.1
+ */
+ protected $symbolTag = '';
+
+ /**
+ * HTML tag to be applied around text part of hashtags/usernames/lists/cashtag
+ *
+ * @var string
+ * @since 3.0.1
+ */
+ protected $textWithSymbolTag = '';
+
+ /**
+ *
+ * @var Extractor
+ */
+ protected $extractor = null;
+
+ /**
+ * The tweet to be used in parsing.
+ *
+ * @var string
+ * @deprecated will be removed
+ */
+ protected $tweet = '';
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param string $tweet [deprecated] The tweet to be converted.
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ *
+ * @see __construct()
+ *
+ * @return Autolink
+ */
+ public static function create($tweet = null, $full_encode = false)
+ {
+ return new static($tweet, $full_encode);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and converted to contain links.
+ *
+ * As the intent is to produce links and output the modified tweet to the
+ * user, we take this opportunity to ensure that we escape user input.
+ *
+ * @see htmlspecialchars()
+ *
+ * @param string $tweet [deprecated] The tweet to be converted.
+ * @param bool $escape [deprecated] Whether to escape the tweet (default: true).
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ */
+ public function __construct($tweet = null, $escape = true, $full_encode = false)
+ {
+ if ($escape && !empty($tweet)) {
+ if ($full_encode) {
+ $this->tweet = htmlentities($tweet, ENT_QUOTES, 'UTF-8', false);
+ } else {
+ $this->tweet = htmlspecialchars($tweet, ENT_QUOTES, 'UTF-8', false);
+ }
+ } else {
+ $this->tweet = $tweet;
+ }
+
+ $this->extractor = Extractor::create();
+ }
+
+ /**
+ * Set CSS class to all link types.
+ *
+ * @param string $v CSS class for links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setToAllLinkClasses($v)
+ {
+ $this->setURLClass($v);
+ $this->setUsernameClass($v);
+ $this->setListClass($v);
+ $this->setHashtagClass($v);
+ $this->setCashtagClass($v);
+
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @return string CSS class for URL links.
+ */
+ public function getURLClass()
+ {
+ return $this->class_url;
+ }
+
+ /**
+ * CSS class for auto-linked URLs.
+ *
+ * @param string $v CSS class for URL links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setURLClass($v)
+ {
+ $this->class_url = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @return string CSS class for username links.
+ */
+ public function getUsernameClass()
+ {
+ return $this->class_user;
+ }
+
+ /**
+ * CSS class for auto-linked username URLs.
+ *
+ * @param string $v CSS class for username links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setUsernameClass($v)
+ {
+ $this->class_user = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked username/list URLs.
+ *
+ * @return string CSS class for username/list links.
+ */
+ public function getListClass()
+ {
+ return $this->class_list;
+ }
+
+ /**
+ * CSS class for auto-linked username/list URLs.
+ *
+ * @param string $v CSS class for username/list links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setListClass($v)
+ {
+ $this->class_list = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @return string CSS class for hashtag links.
+ */
+ public function getHashtagClass()
+ {
+ return $this->class_hash;
+ }
+
+ /**
+ * CSS class for auto-linked hashtag URLs.
+ *
+ * @param string $v CSS class for hashtag links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setHashtagClass($v)
+ {
+ $this->class_hash = trim($v);
+ return $this;
+ }
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @return string CSS class for cashtag links.
+ */
+ public function getCashtagClass()
+ {
+ return $this->class_cash;
+ }
+
+ /**
+ * CSS class for auto-linked cashtag URLs.
+ *
+ * @param string $v CSS class for cashtag links.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setCashtagClass($v)
+ {
+ $this->class_cash = trim($v);
+ return $this;
+ }
+
+ /**
+ * Whether to include the value 'nofollow' in the 'rel' attribute.
+ *
+ * @return bool Whether to add 'nofollow' to the 'rel' attribute.
+ */
+ public function getNoFollow()
+ {
+ return in_array('nofollow', $this->rel, true);
+ }
+
+ /**
+ * Whether to include the value 'nofollow' in the 'rel' attribute.
+ *
+ * @param bool $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setNoFollow($v)
+ {
+ if ($v && !$this->getNoFollow()) {
+ $this->setRel('nofollow', true);
+ }
+ if (!$v && $this->getNoFollow()) {
+ $this->rel = array_filter($this->rel, function ($r) {
+ return $r !== 'nofollow';
+ });
+ }
+
+ return $this;
+ }
+
+ /**
+ * Whether to include the value 'external' in the 'rel' attribute.
+ *
+ * Often this is used to be matched on in JavaScript for dynamically adding
+ * the 'target' attribute which is deprecated in HTML 4.01. In HTML 5 it has
+ * been undeprecated and thus the 'target' attribute can be used. If this is
+ * set to false then the 'target' attribute will be output.
+ *
+ * @return bool Whether to add 'external' to the 'rel' attribute.
+ */
+ public function getExternal()
+ {
+ return in_array('external', $this->rel, true);
+ }
+
+ /**
+ * Whether to include the value 'external' in the 'rel' attribute.
+ *
+ * Often this is used to be matched on in JavaScript for dynamically adding
+ * the 'target' attribute which is deprecated in HTML 4.01. In HTML 5 it has
+ * been undeprecated and thus the 'target' attribute can be used. If this is
+ * set to false then the 'target' attribute will be output.
+ *
+ * @param bool $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setExternal($v)
+ {
+ if ($v && !$this->getExternal()) {
+ $this->setRel('external', true);
+ }
+ if (!$v && $this->getExternal()) {
+ $this->rel = array_filter($this->rel, function ($r) {
+ return $r !== 'external';
+ });
+ }
+
+ return $this;
+ }
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @return string The value to add to the 'target' attribute.
+ */
+ public function getTarget()
+ {
+ return $this->target;
+ }
+
+ /**
+ * The scope to open the link in.
+ *
+ * Support for the 'target' attribute was deprecated in HTML 4.01 but has
+ * since been reinstated in HTML 5. To output the 'target' attribute you
+ * must disable the adding of the string 'external' to the 'rel' attribute.
+ *
+ * @param string $v The value to add to the 'target' attribute.
+ *
+ * @return Autolink Fluid method chaining.
+ */
+ public function setTarget($v)
+ {
+ $this->target = trim($v);
+ return $this;
+ }
+
+ /**
+ * @return bool
+ * @since 3.0.1
+ */
+ public function isUsernameIncludeSymbol()
+ {
+ return $this->usernameIncludeSymbol;
+ }
+
+ /**
+ * Set if the at mark '@' should be included in the link (false by default)
+ *
+ * @param bool $usernameIncludeSymbol if username includes symbol
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setUsernameIncludeSymbol($usernameIncludeSymbol)
+ {
+ $this->usernameIncludeSymbol = $usernameIncludeSymbol;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 3.0.1
+ */
+ public function getSymbolTag()
+ {
+ return $this->symbolTag;
+ }
+
+ /**
+ * Set HTML tag to be applied around #/@/# symbols in hashtags/usernames/lists/cashtag
+ *
+ * @param string $symbolTag HTML tag without bracket. e.g., 'b' or 's'
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setSymbolTag($symbolTag)
+ {
+ $this->symbolTag = $symbolTag;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ * @since 3.0.1
+ */
+ public function getTextWithSymbolTag()
+ {
+ return $this->textWithSymbolTag;
+ }
+
+ /**
+ * Set HTML tag to be applied around text part of hashtags/usernames/lists/cashtag
+ *
+ * @param string $textWithSymbolTag HTML tag without bracket. e.g., 'b' or 's'
+ * @return Autolink
+ * @since 3.0.1
+ */
+ public function setTextWithSymbolTag($textWithSymbolTag)
+ {
+ $this->textWithSymbolTag = $textWithSymbolTag;
+
+ return $this;
+ }
+
+ /**
+ * Autolink with entities
+ *
+ * @param string $tweet
+ * @param array $entities
+ * @return string
+ * @since 1.1.0
+ */
+ public function autoLinkEntities($tweet = null, $entities = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+
+ $text = '';
+ $beginIndex = 0;
+ foreach ($entities as $entity) {
+ $text .= StringUtils::substr($tweet, $beginIndex, $entity['indices'][0] - $beginIndex);
+
+ if (isset($entity['url'])) {
+ $text .= $this->linkToUrl($entity);
+ } elseif (isset($entity['hashtag'])) {
+ $text .= $this->linkToHashtag($entity, $tweet);
+ } elseif (isset($entity['screen_name'])) {
+ $text .= $this->linkToMentionAndList($entity, $tweet);
+ } elseif (isset($entity['cashtag'])) {
+ $text .= $this->linkToCashtag($entity, $tweet);
+ }
+ $beginIndex = $entity['indices'][1];
+ }
+ $text .= StringUtils::substr($tweet, $beginIndex, StringUtils::strlen($tweet));
+ return $text;
+ }
+
+ /**
+ * Auto-link hashtags, URLs, usernames and lists, with JSON entities.
+ *
+ * @param string The tweet to be converted
+ * @param mixed The entities info
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkWithJson($tweet = null, $json = null)
+ {
+ // concatenate entities
+ $entities = array();
+ if (is_object($json)) {
+ $json = $this->object2array($json);
+ }
+ if (is_array($json)) {
+ $entities = call_user_func_array('array_merge', $json);
+ }
+
+ // map JSON entity to twitter-text entity
+ foreach ($entities as $idx => $entity) {
+ if (!empty($entity['text'])) {
+ $entities[$idx]['hashtag'] = $entity['text'];
+ }
+ }
+
+ $entities = $this->extractor->removeOverlappingEntities($entities);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * convert Object to Array
+ *
+ * @param mixed $obj
+ * @return array
+ */
+ protected function object2array($obj)
+ {
+ $array = (array) $obj;
+ foreach ($array as $key => $var) {
+ if (is_object($var) || is_array($var)) {
+ $array[$key] = $this->object2array($var);
+ }
+ }
+ return $array;
+ }
+
+ /**
+ * Auto-link hashtags, URLs, usernames and lists.
+ *
+ * @param string The tweet to be converted
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLink($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractURLWithoutProtocol(false)->extractEntitiesWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link the @username and @username/list references in the provided text. Links to @username references will
+ * have the usernameClass CSS classes added. Links to @username/list references will have the listClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkUsernamesAndLists($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractMentionsOrListsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link #hashtag references in the provided Tweet text. The #hashtag links will have the hashtagClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkHashtags($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractHashtagsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link URLs in the Tweet text provided.
+ * <p/>
+ * This only auto-links URLs with protocol.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkURLs($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractURLWithoutProtocol(false)->extractURLsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ /**
+ * Auto-link $cashtag references in the provided Tweet text. The $cashtag links will have the cashtagClass CSS class
+ * added.
+ *
+ * @return string that auto-link HTML added
+ * @since 1.1.0
+ */
+ public function autoLinkCashtags($tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $entities = $this->extractor->extractCashtagsWithIndices($tweet);
+ return $this->autoLinkEntities($tweet, $entities);
+ }
+
+ public function linkToUrl($entity)
+ {
+ if (!empty($this->class_url)) {
+ $attributes['class'] = $this->class_url;
+ }
+ $attributes['href'] = $entity['url'];
+ $linkText = $this->escapeHTML($entity['url']);
+
+ if (!empty($entity['display_url']) && !empty($entity['expanded_url'])) {
+ // Goal: If a user copies and pastes a tweet containing t.co'ed link, the resulting paste
+ // should contain the full original URL (expanded_url), not the display URL.
+ //
+ // Method: Whenever possible, we actually emit HTML that contains expanded_url, and use
+ // font-size:0 to hide those parts that should not be displayed (because they are not part of display_url).
+ // Elements with font-size:0 get copied even though they are not visible.
+ // Note that display:none doesn't work here. Elements with display:none don't get copied.
+ //
+ // Additionally, we want to *display* ellipses, but we don't want them copied. To make this happen we
+ // wrap the ellipses in a tco-ellipsis class and provide an onCopy handler that sets display:none on
+ // everything with the tco-ellipsis class.
+ //
+ // As an example: The user tweets "hi http://longdomainname.com/foo"
+ // This gets shortened to "hi http://t.co/xyzabc", with display_url = "…nname.com/foo"
+ // This will get rendered as:
+ // <span class='tco-ellipsis'> <!-- This stuff should get displayed but not copied -->
+ // …
+ // <!-- There's a chance the onCopy event handler might not fire. In case that happens,
+ // we include an &nbsp; here so that the … doesn't bump up against the URL and ruin it.
+ // The &nbsp; is inside the tco-ellipsis span so that when the onCopy handler *does*
+ // fire, it doesn't get copied. Otherwise the copied text would have two spaces in a row,
+ // e.g. "hi http://longdomainname.com/foo".
+ // <span style='font-size:0'>&nbsp;</span>
+ // </span>
+ // <span style='font-size:0'> <!-- This stuff should get copied but not displayed -->
+ // http://longdomai
+ // </span>
+ // <span class='js-display-url'> <!-- This stuff should get displayed *and* copied -->
+ // nname.com/foo
+ // </span>
+ // <span class='tco-ellipsis'> <!-- This stuff should get displayed but not copied -->
+ // <span style='font-size:0'>&nbsp;</span>
+ // …
+ // </span>
+ //
+ // Exception: pic.twitter.com images, for which
+ // expandedUrl = "https://twitter.com/#!/username/status/1234/photo/1
+ // For those URLs, display_url is not a substring of expanded_url, so we don't do anything
+ //special to render the elided parts.
+ // For a pic.twitter.com URL, the only elided part will be the "https://", so this is fine.
+ $displayURL = $entity['display_url'];
+ $expandedURL = $entity['expanded_url'];
+ $displayURLSansEllipses = preg_replace('/…/u', '', $displayURL);
+ $diplayURLIndexInExpandedURL = mb_strpos($expandedURL, $displayURLSansEllipses);
+
+ if ($diplayURLIndexInExpandedURL !== false) {
+ $beforeDisplayURL = mb_substr($expandedURL, 0, $diplayURLIndexInExpandedURL);
+ $afterDisplayURL = mb_substr(
+ $expandedURL,
+ $diplayURLIndexInExpandedURL + mb_strlen($displayURLSansEllipses)
+ );
+ $precedingEllipsis = (preg_match('/\A…/u', $displayURL)) ? '…' : '';
+ $followingEllipsis = (preg_match('/…\z/u', $displayURL)) ? '…' : '';
+
+ $invisibleSpan = "<span {$this->invisibleTagAttrs}>";
+
+ $linkText = "<span class='tco-ellipsis'>{$precedingEllipsis}{$invisibleSpan}&nbsp;</span></span>";
+ $linkText .= "{$invisibleSpan}{$this->escapeHTML($beforeDisplayURL)}</span>";
+ $linkText .= "<span class='js-display-url'>{$this->escapeHTML($displayURLSansEllipses)}</span>";
+ $linkText .= "{$invisibleSpan}{$this->escapeHTML($afterDisplayURL)}</span>";
+ $linkText .= "<span class='tco-ellipsis'>{$invisibleSpan}&nbsp;</span>{$followingEllipsis}</span>";
+ } else {
+ $linkText = $entity['display_url'];
+ }
+ $attributes['title'] = $entity['expanded_url'];
+ } elseif (!empty($entity['display_url'])) {
+ $linkText = $entity['display_url'];
+ }
+
+ return $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToHashtag($entity, $tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+
+ $attributes = array();
+ $class = array();
+ $hash = StringUtils::substr($tweet, $entity['indices'][0], 1);
+ $linkText = $entity['hashtag'];
+
+ $attributes['href'] = $this->url_base_hash . $entity['hashtag'];
+ $attributes['title'] = '#' . $entity['hashtag'];
+ if (!empty($this->class_hash)) {
+ $class[] = $this->class_hash;
+ }
+ if (preg_match(Regex::getRtlCharsMatcher(), $linkText)) {
+ $class[] = 'rtl';
+ }
+ if (!empty($class)) {
+ $attributes['class'] = implode(' ', $class);
+ }
+
+ return $this->linkToTextWithSymbol($entity, $hash, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToMentionAndList($entity, $tweet)
+ {
+ $attributes = array();
+ $symbol = StringUtils::substr($tweet, $entity['indices'][0], 1);
+
+ if (!empty($entity['list_slug'])) {
+ # Replace the list and username
+ $linkText = $entity['screen_name'] . $entity['list_slug'];
+ $class = $this->class_list;
+ $url = $this->url_base_list . $linkText;
+ } else {
+ # Replace the username
+ $linkText = $entity['screen_name'];
+ $class = $this->class_user;
+ $url = $this->url_base_user . $linkText;
+ }
+ if (!empty($class)) {
+ $attributes['class'] = $class;
+ }
+ $attributes['href'] = $url;
+
+ return $this->linkToTextWithSymbol($entity, $symbol, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $tweet
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToCashtag($entity, $tweet = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ $attributes = array();
+ $dollar = StringUtils::substr($tweet, $entity['indices'][0], 1);
+ $linkText = $entity['cashtag'];
+ $attributes['href'] = $this->url_base_cash . $entity['cashtag'];
+ $attributes['title'] = '$' . $linkText;
+ if (!empty($this->class_cash)) {
+ $attributes['class'] = $this->class_cash;
+ }
+
+ return $this->linkToTextWithSymbol($entity, $dollar, $linkText, $attributes);
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $text
+ * @param array $attributes
+ * @return string
+ * @since 1.1.0
+ */
+ public function linkToText(array $entity, $text, $attributes = array())
+ {
+ $rel = $this->getRel();
+ if ($rel !== '') {
+ $attributes['rel'] = $rel;
+ }
+ if ($this->target) {
+ $attributes['target'] = $this->target;
+ }
+ $link = '<a';
+ foreach ($attributes as $key => $val) {
+ $link .= ' ' . $key . '="' . $this->escapeHTML($val) . '"';
+ }
+ $link .= '>' . $text . '</a>';
+ return $link;
+ }
+
+ /**
+ *
+ * @param array $entity
+ * @param string $symbol
+ * @param string $linkText
+ * @param array $attributes
+ * @return string
+ * @since 3.0.1
+ */
+ protected function linkToTextWithSymbol(array $entity, $symbol, $linkText, array $attributes)
+ {
+ $includeSymbol = $this->usernameIncludeSymbol || !preg_match('/[@@]/u', $symbol);
+
+ if (!empty($this->symbolTag)) {
+ $symbol = sprintf('<%1$s>%2$s</%1$s>', $this->symbolTag, $symbol);
+ }
+ if (!empty($this->textWithSymbolTag)) {
+ $linkText = sprintf('<%1$s>%2$s</%1$s>', $this->textWithSymbolTag, $linkText);
+ }
+
+ if (!$includeSymbol) {
+ return $symbol . $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ $linkText = $symbol . $linkText;
+
+ return $this->linkToText($entity, $linkText, $attributes);
+ }
+
+ /**
+ * get rel attribute
+ *
+ * @return string
+ */
+ public function getRel()
+ {
+ $rel = $this->rel;
+ $rel = array_unique($rel);
+
+ return implode(' ', $rel);
+ }
+
+ /**
+ * Set rel attribute.
+ *
+ * This method override setExternal/setNoFollow setting.
+ *
+ * @param string[]|string $rel the rel attribute
+ * @param bool $merge if true, merge rel attributes instead replace.
+ * @return $this
+ */
+ public function setRel($rel, $merge = false)
+ {
+ if (is_string($rel)) {
+ $rel = explode(' ', $rel);
+ }
+
+ $this->rel = $merge ? array_unique(array_merge($this->rel, $rel)) : $rel;
+
+ return $this;
+ }
+
+ /**
+ * html escape
+ *
+ * @param string $text
+ * @return string
+ */
+ protected function escapeHTML($text)
+ {
+ return htmlspecialchars($text, ENT_QUOTES, 'UTF-8', false);
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
new file mode 100644
index 00000000..d1073026
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Configuration.php
@@ -0,0 +1,215 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text Configuration
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ *
+ * @property int $version
+ * @property int $maxWeightedTweetLength
+ * @property int $scale
+ * @property int $defaultWeight
+ * @property bool $emojiParsingEnabled
+ * @property int $transformedURLLength
+ * @property array $ranges
+ */
+class Configuration
+{
+ /**
+ * configuration from v3.json
+ *
+ * @var array
+ */
+ private static $v3Config = array(
+ 'version' => 3,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'emojiParsingEnabled' => true,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v2.json
+ *
+ * @var array
+ */
+ private static $v2Config = array(
+ 'version' => 2,
+ 'maxWeightedTweetLength' => 280,
+ 'scale' => 100,
+ 'defaultWeight' => 200,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(
+ array(
+ 'start' => 0,
+ 'end' => 4351,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8192,
+ 'end' => 8205,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8208,
+ 'end' => 8223,
+ 'weight' => 100,
+ ),
+ array(
+ 'start' => 8242,
+ 'end' => 8247,
+ 'weight' => 100,
+ ),
+ ),
+ );
+
+ /**
+ * configuration from v1.json
+ *
+ * @var array
+ */
+ private static $v1Config = array(
+ 'version' => 1,
+ 'maxWeightedTweetLength' => 140,
+ 'scale' => 1,
+ 'defaultWeight' => 1,
+ 'transformedURLLength' => 23,
+ 'ranges' => array(),
+ );
+
+ /**
+ * @var array
+ */
+ private $config;
+
+ /**
+ * construct
+ *
+ * @param array $config
+ */
+ public function __construct(array $config = null)
+ {
+ if ($config === null) {
+ $config = static::$v3Config;
+ }
+
+ $this->config = $config;
+ }
+
+ /**
+ * property accessor
+ *
+ * @param string $name
+ * @return mixed
+ */
+ public function __get($name)
+ {
+ return isset($this->config[$name]) ? $this->config[$name] : null;
+ }
+
+ /**
+ * convert to array
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ return $this->config;
+ }
+
+ /**
+ * Create configuration from json string
+ *
+ * @param string $json as configuration
+ * @return Configuration
+ */
+ public static function fromJson($json)
+ {
+ return new Configuration(json_decode($json, true));
+ }
+
+ /**
+ * Get twitter-text 1.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v1()
+ {
+ return new self(static::$v1Config);
+ }
+
+ /**
+ * Get twitter-text 2.x configuration
+ *
+ * @return Configuration
+ */
+ public static function v2()
+ {
+ return new self(static::$v2Config);
+ }
+
+ /**
+ * maxWeightedTweetLength * scale
+ *
+ * @return int
+ */
+ public function getScaledMaxWeightedTweetLength()
+ {
+ return $this->maxWeightedTweetLength * $this->scale;
+ }
+
+ /**
+ * transformedURLLength * scale
+ *
+ * @return int
+ */
+ public function getScaledTransformedURLLength()
+ {
+ return $this->transformedURLLength * $this->scale;
+ }
+
+ /**
+ * Get whether emoji parsing is enabled.
+ *
+ * @return bool `true` if emoji parsing is enabled, otherwise `false`.
+ */
+ public function getEmojiParsingEnabled()
+ {
+ return (bool)$this->emojiParsingEnabled;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php
new file mode 100644
index 00000000..95ae4c46
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/EmojiRegex.php
@@ -0,0 +1,29 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2020, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * EmojiRegex
+ *
+ * @link http://unicode.org/Public/emoji/12.1/
+ * @link https://unicode.org/emoji/charts-12.1/full-emoji-list.html
+ */
+class EmojiRegex
+{
+ /**
+ * Valid emoji codes
+ *
+ * build from http://unicode.org/Public/emoji/12.1/
+ *
+ * @var string
+ * @link http://unicode.org/Public/emoji/12.1/
+ */
+ const VALID_EMOJI_PATTERN = '/\x{1f468}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f469}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0077}\x{e006c}\x{e0073}\x{e007f}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fd}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f469}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f469}\x{1f3fc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fe}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fd}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3ff}|\x{1f468}\x{1f3fb}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}\x{1f3fc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0065}\x{e006e}\x{e0067}\x{e007f}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f469}|\x{1f468}\x{200d}\x{2764}\x{200d}\x{1f48b}\x{200d}\x{1f468}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fe}|\x{1f468}\x{1f3fd}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f3f4}\x{e0067}\x{e0062}\x{e0073}\x{e0063}\x{e0074}\x{e007f}|\x{1f468}\x{1f3fe}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3ff}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3ff}\x{200d}\x{1f91d}\x{200d}\x{1f468}\x{1f3fb}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f469}|\x{1f469}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f468}|\x{1f468}\x{200d}\x{2764}\x{fe0f}\x{200d}\x{1f468}|\x{1f471}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f477}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f937}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f487}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f937}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f473}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2695}\x{fe0f}|\x{1f473}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2695}\x{fe0f}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2695}\x{fe0f}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2695}\x{fe0f}|\x{1f473}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f473}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f481}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f481}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f481}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f646}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f647}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f64b}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f64b}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f926}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f926}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2708}\x{fe0f}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f646}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f646}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f646}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2708}\x{fe0f}|\x{1f645}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2708}\x{fe0f}|\x{1f46e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f46e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2708}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2695}\x{fe0f}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2696}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f938}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f938}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d1}\x{200d}\x{1f91d}\x{200d}\x{1f9d1}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f469}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f469}|\x{1f468}\x{200d}\x{2764}\x{200d}\x{1f468}|\x{1f469}\x{200d}\x{2764}\x{200d}\x{1f468}|\x{1f9db}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f466}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f441}\x{fe0f}\x{200d}\x{1f5e8}\x{fe0f}|\x{1f9db}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{200d}\x{1f468}\x{200d}\x{1f467}|\x{1f469}\x{200d}\x{1f469}\x{200d}\x{1f467}|\x{1f9db}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9db}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f469}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f9db}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{200d}\x{1f466}\x{200d}\x{1f466}|\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f467}\x{200d}\x{1f466}|\x{1f9db}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f939}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2696}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fd}\x{200d}\x{2696}\x{fe0f}|\x{1f93e}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{2696}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9db}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9db}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{2708}\x{fe0f}|\x{1f3cb}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{fe0f}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{fe0f}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3fb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fe}\x{200d}\x{2640}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2708}|\x{1f468}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fb}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{2708}\x{fe0f}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fb}\x{200d}\x{1f527}|\x{1f468}\x{1f3ff}\x{200d}\x{1f527}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fc}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f468}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f373}|\x{1f469}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f373}|\x{1f469}\x{1f3fc}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f373}|\x{1f469}\x{1f3fd}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f373}|\x{1f469}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{2708}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f469}\x{1f3fe}\x{200d}\x{2708}|\x{1f468}\x{1f3ff}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fe}\x{200d}\x{1f373}|\x{1f468}\x{1f3fd}\x{200d}\x{1f373}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{2708}|\x{1f468}\x{1f3fe}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f468}\x{1f3ff}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f527}|\x{1f468}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fc}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f468}\x{1f3fd}\x{200d}\x{2708}|\x{1f468}\x{1f3fe}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f527}|\x{1f469}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f468}\x{1f3ff}\x{200d}\x{2708}|\x{1f469}\x{200d}\x{2708}\x{fe0f}|\x{1f469}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f527}|\x{1f469}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fb}\x{200d}\x{1f527}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9af}|\x{1f469}\x{1f3fc}\x{200d}\x{1f527}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9af}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2640}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3a8}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3a8}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fe}\x{200d}\x{1f4bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f4bb}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f469}\x{1f3ff}\x{200d}\x{1f527}|\x{1f469}\x{1f3fd}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2708}|\x{1f469}\x{1f3fe}\x{200d}\x{1f527}|\x{1f469}\x{1f3fc}\x{200d}\x{1f4bb}|\x{1f469}\x{1f3fb}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2708}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f52c}|\x{1f469}\x{1f3fd}\x{200d}\x{1f527}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f52c}|\x{1f469}\x{1f3ff}\x{200d}\x{1f4bb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3ed}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3a4}|\x{1f468}\x{1f3ff}\x{200d}\x{1f4bc}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3ed}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fb}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3ed}|\x{1f469}\x{1f3fd}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3a8}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3a4}|\x{1f469}\x{1f3fc}\x{200d}\x{1f4bc}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3ed}|\x{1f9d1}\x{200d}\x{2708}\x{fe0f}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9af}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3ed}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9af}|\x{1f477}\x{1f3ff}\x{200d}\x{2640}|\x{1f469}\x{1f3ff}\x{200d}\x{2708}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2640}|\x{1f9de}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fd}\x{200d}\x{2642}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2642}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2642}|\x{1f9b8}\x{200d}\x{2640}\x{fe0f}|\x{1f9de}\x{200d}\x{2642}\x{fe0f}|\x{1f9b8}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b8}\x{1f3fc}\x{200d}\x{2640}|\x{1f9b8}\x{1f3fe}\x{200d}\x{2640}|\x{1f9df}\x{200d}\x{2640}\x{fe0f}|\x{1f9b8}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2640}|\x{1f9b9}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2640}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2642}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2642}|\x{1f9b9}\x{200d}\x{2640}\x{fe0f}|\x{1f9df}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fc}\x{200d}\x{2640}|\x{1f487}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2642}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2640}|\x{1f487}\x{1f3fe}\x{200d}\x{2640}|\x{1f487}\x{1f3fd}\x{200d}\x{2640}|\x{1f487}\x{1f3fc}\x{200d}\x{2640}|\x{1f487}\x{1f3fb}\x{200d}\x{2640}|\x{1f487}\x{200d}\x{2640}\x{fe0f}|\x{1f487}\x{1f3ff}\x{200d}\x{2642}|\x{1f487}\x{1f3fe}\x{200d}\x{2642}|\x{1f487}\x{1f3fc}\x{200d}\x{2642}|\x{1f486}\x{1f3fb}\x{200d}\x{2642}|\x{1f487}\x{1f3fb}\x{200d}\x{2642}|\x{1f487}\x{200d}\x{2642}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2640}|\x{1f486}\x{1f3fe}\x{200d}\x{2640}|\x{1f486}\x{1f3fd}\x{200d}\x{2640}|\x{1f486}\x{1f3fc}\x{200d}\x{2640}|\x{1f486}\x{1f3fb}\x{200d}\x{2640}|\x{1f486}\x{200d}\x{2640}\x{fe0f}|\x{1f486}\x{1f3ff}\x{200d}\x{2642}|\x{1f486}\x{1f3fe}\x{200d}\x{2642}|\x{1f486}\x{1f3fd}\x{200d}\x{2642}|\x{1f486}\x{1f3fc}\x{200d}\x{2642}|\x{1f9b9}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b9}\x{1f3fd}\x{200d}\x{2640}|\x{1f473}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{1f3ff}\x{200d}\x{2642}|\x{1f9da}\x{1f3fd}\x{200d}\x{2640}|\x{1f9da}\x{1f3fe}\x{200d}\x{2640}|\x{1f9da}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2640}|\x{1f9db}\x{1f3fb}\x{200d}\x{2642}|\x{1f9db}\x{1f3fc}\x{200d}\x{2642}|\x{1f9db}\x{1f3fd}\x{200d}\x{2642}|\x{1f9db}\x{1f3fe}\x{200d}\x{2642}|\x{1f9db}\x{200d}\x{2640}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2640}|\x{1f9db}\x{1f3fb}\x{200d}\x{2640}|\x{1f9db}\x{1f3fc}\x{200d}\x{2640}|\x{1f9db}\x{1f3fd}\x{200d}\x{2640}|\x{1f9db}\x{1f3fe}\x{200d}\x{2640}|\x{1f9db}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2640}|\x{1f9dc}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3ff}\x{200d}\x{2642}|\x{1f9dc}\x{200d}\x{2642}\x{fe0f}|\x{1f9dc}\x{1f3fe}\x{200d}\x{2642}|\x{1f9dc}\x{1f3fb}\x{200d}\x{2642}|\x{1f9dc}\x{1f3fc}\x{200d}\x{2642}|\x{1f9da}\x{1f3fc}\x{200d}\x{2640}|\x{1f9dd}\x{200d}\x{2642}\x{fe0f}|\x{1f9b9}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2640}|\x{1f9b9}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2640}|\x{1f9dd}\x{200d}\x{2640}\x{fe0f}|\x{1f9dd}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2642}\x{fe0f}|\x{1f9dd}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fb}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fc}\x{200d}\x{2640}|\x{1f9da}\x{200d}\x{2640}\x{fe0f}|\x{1f9d9}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d9}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d9}\x{1f3ff}\x{200d}\x{2640}|\x{1f9dd}\x{1f3fd}\x{200d}\x{2642}|\x{1f9dd}\x{1f3fc}\x{200d}\x{2642}|\x{1f9dd}\x{1f3fb}\x{200d}\x{2642}|\x{1f9da}\x{200d}\x{2642}\x{fe0f}|\x{1f9da}\x{1f3fb}\x{200d}\x{2642}|\x{1f9da}\x{1f3fc}\x{200d}\x{2642}|\x{1f9da}\x{1f3fd}\x{200d}\x{2642}|\x{1f9da}\x{1f3fe}\x{200d}\x{2642}|\x{1f9da}\x{1f3ff}\x{200d}\x{2642}|\x{1f473}\x{1f3fe}\x{200d}\x{2640}|\x{1f473}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f680}|\x{1f46e}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{1f692}|\x{1f469}\x{1f3ff}\x{200d}\x{1f692}|\x{1f9ce}\x{1f3fe}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fd}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fc}\x{200d}\x{2642}|\x{1f46e}\x{200d}\x{2642}\x{fe0f}|\x{1f46e}\x{1f3fb}\x{200d}\x{2642}|\x{1f46e}\x{1f3fc}\x{200d}\x{2642}|\x{1f46e}\x{1f3fd}\x{200d}\x{2642}|\x{1f46e}\x{1f3fe}\x{200d}\x{2642}|\x{1f46e}\x{1f3ff}\x{200d}\x{2642}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fc}\x{200d}\x{1f692}|\x{1f46e}\x{1f3fb}\x{200d}\x{2640}|\x{1f46e}\x{1f3fc}\x{200d}\x{2640}|\x{1f46e}\x{1f3fd}\x{200d}\x{2640}|\x{1f46e}\x{1f3fe}\x{200d}\x{2640}|\x{1f46e}\x{1f3ff}\x{200d}\x{2640}|\x{1f9ce}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2640}|\x{1f575}\x{200d}\x{2642}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2640}|\x{1f575}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fd}\x{200d}\x{1f692}|\x{1f469}\x{1f3fb}\x{200d}\x{1f692}|\x{1f575}\x{1f3fd}\x{200d}\x{2642}|\x{1f469}\x{1f3fd}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f680}|\x{1f9ce}\x{1f3fb}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f680}|\x{1f468}\x{1f3fc}\x{200d}\x{1f680}|\x{1f468}\x{1f3fd}\x{200d}\x{1f680}|\x{1f468}\x{1f3fe}\x{200d}\x{1f680}|\x{1f468}\x{1f3ff}\x{200d}\x{1f680}|\x{1f469}\x{1f3fb}\x{200d}\x{1f680}|\x{1f469}\x{1f3fc}\x{200d}\x{1f680}|\x{1f469}\x{1f3fe}\x{200d}\x{1f680}|\x{1f9ce}\x{1f3ff}\x{200d}\x{2642}|\x{1f469}\x{1f3ff}\x{200d}\x{1f680}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f692}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f692}|\x{1f9ce}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f692}|\x{1f468}\x{1f3fc}\x{200d}\x{1f692}|\x{1f468}\x{1f3fd}\x{200d}\x{1f692}|\x{1f468}\x{1f3fe}\x{200d}\x{1f692}|\x{1f468}\x{1f3ff}\x{200d}\x{1f692}|\x{1f575}\x{1f3fc}\x{200d}\x{2642}|\x{1f575}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2640}|\x{1f477}\x{1f3fd}\x{200d}\x{2642}|\x{1f477}\x{1f3fe}\x{200d}\x{2642}|\x{1f477}\x{1f3ff}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fb}\x{200d}\x{2640}|\x{1f477}\x{1f3fc}\x{200d}\x{2640}|\x{1f477}\x{1f3fd}\x{200d}\x{2640}|\x{1f477}\x{1f3fe}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f373}|\x{1f9cd}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b6}\x{1f3fc}\x{200d}\x{2640}|\x{1f477}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b6}\x{200d}\x{2640}\x{fe0f}|\x{1f6b6}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b6}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2642}\x{fe0f}|\x{1f6b6}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3fb}\x{200d}\x{2642}|\x{1f473}\x{1f3fc}\x{200d}\x{2642}|\x{1f473}\x{1f3fd}\x{200d}\x{2642}|\x{1f473}\x{1f3fe}\x{200d}\x{2642}|\x{1f473}\x{1f3ff}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2640}\x{fe0f}|\x{1f477}\x{1f3fc}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2642}|\x{1f575}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{1f3fb}\x{200d}\x{2642}|\x{1f575}\x{200d}\x{2640}\x{fe0f}|\x{1f575}\x{fe0f}\x{200d}\x{2640}|\x{1f575}\x{1f3fb}\x{200d}\x{2640}|\x{1f575}\x{1f3fc}\x{200d}\x{2640}|\x{1f575}\x{1f3fd}\x{200d}\x{2640}|\x{1f575}\x{1f3fe}\x{200d}\x{2640}|\x{1f575}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fb}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{200d}\x{2642}\x{fe0f}|\x{1f9cd}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{1f3fc}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2642}\x{fe0f}|\x{1f482}\x{1f3fd}\x{200d}\x{2642}|\x{1f482}\x{1f3fe}\x{200d}\x{2642}|\x{1f482}\x{1f3ff}\x{200d}\x{2642}|\x{1f482}\x{200d}\x{2640}\x{fe0f}|\x{1f482}\x{1f3fb}\x{200d}\x{2640}|\x{1f482}\x{1f3fc}\x{200d}\x{2640}|\x{1f482}\x{1f3fd}\x{200d}\x{2640}|\x{1f482}\x{1f3fe}\x{200d}\x{2640}|\x{1f482}\x{1f3ff}\x{200d}\x{2640}|\x{1f9cd}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cd}\x{1f3fc}\x{200d}\x{2642}|\x{1f468}\x{1f3fc}\x{200d}\x{1f373}|\x{1f647}\x{200d}\x{2640}\x{fe0f}|\x{1f9dc}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cc}\x{fe0f}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2640}|\x{1f3cc}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2642}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2640}|\x{1f6a3}\x{200d}\x{2640}\x{fe0f}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fc}\x{200d}\x{2642}|\x{1f6a3}\x{1f3fb}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2642}\x{fe0f}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2640}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f3c4}\x{1f3ff}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fd}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fc}\x{200d}\x{2642}|\x{1f3c4}\x{1f3fb}\x{200d}\x{2642}|\x{1f3c4}\x{200d}\x{2642}\x{fe0f}|\x{1f3cc}\x{1f3ff}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9b0}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9b0}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f6a3}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2642}|\x{1f471}\x{1f3fb}\x{200d}\x{2642}|\x{1f471}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f373}|\x{1f471}\x{1f3fe}\x{200d}\x{2642}|\x{1f471}\x{1f3ff}\x{200d}\x{2642}|\x{1f3cc}\x{fe0f}\x{200d}\x{2642}|\x{1f3cc}\x{200d}\x{2642}\x{fe0f}|\x{1f9d7}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2640}\x{fe0f}|\x{1f9d7}\x{1f3fe}\x{200d}\x{2642}|\x{1f471}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d7}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d7}\x{1f3fb}\x{200d}\x{2642}|\x{1f64d}\x{200d}\x{2642}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2642}|\x{1f64d}\x{1f3fc}\x{200d}\x{2642}|\x{1f64d}\x{1f3fd}\x{200d}\x{2642}|\x{1f64d}\x{1f3fe}\x{200d}\x{2642}|\x{1f64d}\x{1f3ff}\x{200d}\x{2642}|\x{1f64d}\x{200d}\x{2640}\x{fe0f}|\x{1f64d}\x{1f3fb}\x{200d}\x{2640}|\x{1f64d}\x{1f3fc}\x{200d}\x{2640}|\x{1f64d}\x{1f3fd}\x{200d}\x{2640}|\x{1f64d}\x{1f3fe}\x{200d}\x{2640}|\x{1f471}\x{200d}\x{2642}\x{fe0f}|\x{1f471}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cc}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b1}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b1}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b3}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f3cc}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b3}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b3}|\x{1f471}\x{1f3fd}\x{200d}\x{2640}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f3cc}\x{1f3fb}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9b2}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9b2}|\x{1f471}\x{200d}\x{2640}\x{fe0f}|\x{1f471}\x{1f3fb}\x{200d}\x{2640}|\x{1f471}\x{1f3fc}\x{200d}\x{2640}|\x{1f6a3}\x{1f3fd}\x{200d}\x{2640}|\x{1f6a3}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2642}|\x{1f93e}\x{200d}\x{2640}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2642}|\x{1f93e}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fd}\x{200d}\x{2642}|\x{1f93e}\x{1f3fc}\x{200d}\x{2642}|\x{1f93e}\x{1f3fb}\x{200d}\x{2642}|\x{1f93e}\x{200d}\x{2642}\x{fe0f}|\x{1f93d}\x{1f3ff}\x{200d}\x{2640}|\x{1f93d}\x{1f3fe}\x{200d}\x{2640}|\x{1f93d}\x{1f3fd}\x{200d}\x{2640}|\x{1f93d}\x{1f3fc}\x{200d}\x{2640}|\x{1f93d}\x{1f3fb}\x{200d}\x{2640}|\x{1f93d}\x{200d}\x{2640}\x{fe0f}|\x{1f93d}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fc}\x{200d}\x{2640}|\x{1f93d}\x{1f3fd}\x{200d}\x{2642}|\x{1f93d}\x{1f3fc}\x{200d}\x{2642}|\x{1f93d}\x{1f3fb}\x{200d}\x{2642}|\x{1f93d}\x{200d}\x{2642}\x{fe0f}|\x{1f93c}\x{200d}\x{2640}\x{fe0f}|\x{1f93c}\x{200d}\x{2642}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2640}|\x{1f938}\x{1f3fe}\x{200d}\x{2640}|\x{1f938}\x{1f3fd}\x{200d}\x{2640}|\x{1f938}\x{1f3fc}\x{200d}\x{2640}|\x{1f938}\x{1f3fb}\x{200d}\x{2640}|\x{1f938}\x{200d}\x{2640}\x{fe0f}|\x{1f938}\x{1f3ff}\x{200d}\x{2642}|\x{1f938}\x{1f3fe}\x{200d}\x{2642}|\x{1f93e}\x{1f3fb}\x{200d}\x{2640}|\x{1f93e}\x{1f3fd}\x{200d}\x{2640}|\x{1f938}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2642}|\x{1f3f4}\x{200d}\x{2620}\x{fe0f}|\x{1f3f3}\x{fe0f}\x{200d}\x{1f308}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2640}|\x{1f441}\x{200d}\x{1f5e8}\x{fe0f}|\x{1f441}\x{fe0f}\x{200d}\x{1f5e8}|\x{1f9d8}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2640}\x{fe0f}|\x{1f9d8}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fe}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d8}\x{1f3fb}\x{200d}\x{2642}|\x{1f93e}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2642}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2640}|\x{1f939}\x{1f3fe}\x{200d}\x{2640}|\x{1f939}\x{1f3fd}\x{200d}\x{2640}|\x{1f939}\x{1f3fc}\x{200d}\x{2640}|\x{1f939}\x{1f3fb}\x{200d}\x{2640}|\x{1f939}\x{200d}\x{2640}\x{fe0f}|\x{1f939}\x{1f3ff}\x{200d}\x{2642}|\x{1f939}\x{1f3fe}\x{200d}\x{2642}|\x{1f939}\x{1f3fd}\x{200d}\x{2642}|\x{1f939}\x{1f3fc}\x{200d}\x{2642}|\x{1f939}\x{1f3fb}\x{200d}\x{2642}|\x{1f939}\x{200d}\x{2642}\x{fe0f}|\x{1f93e}\x{1f3ff}\x{200d}\x{2640}|\x{1f938}\x{1f3fd}\x{200d}\x{2642}|\x{1f938}\x{1f3fb}\x{200d}\x{2642}|\x{1f3ca}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2642}|\x{1f3cb}\x{fe0f}\x{200d}\x{2642}|\x{1f3cb}\x{200d}\x{2642}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2640}|\x{26f9}\x{1f3fe}\x{200d}\x{2640}|\x{26f9}\x{1f3fd}\x{200d}\x{2640}|\x{26f9}\x{1f3fc}\x{200d}\x{2640}|\x{26f9}\x{1f3fb}\x{200d}\x{2640}|\x{26f9}\x{fe0f}\x{200d}\x{2640}|\x{26f9}\x{200d}\x{2640}\x{fe0f}|\x{26f9}\x{1f3ff}\x{200d}\x{2642}|\x{26f9}\x{1f3fe}\x{200d}\x{2642}|\x{26f9}\x{1f3fc}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2642}|\x{26f9}\x{1f3fb}\x{200d}\x{2642}|\x{26f9}\x{fe0f}\x{200d}\x{2642}|\x{26f9}\x{200d}\x{2642}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2640}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2640}\x{fe0f}|\x{1f3ca}\x{1f3ff}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fe}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fd}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fc}\x{200d}\x{2642}|\x{1f3ca}\x{1f3fb}\x{200d}\x{2642}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2642}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2642}|\x{1f938}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2640}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2640}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b5}\x{200d}\x{2640}\x{fe0f}|\x{1f6b5}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fe}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fd}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b5}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b5}\x{200d}\x{2642}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2640}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2640}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2640}|\x{1f3cb}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2640}|\x{1f6b4}\x{200d}\x{2640}\x{fe0f}|\x{1f6b4}\x{1f3ff}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fe}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fd}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fc}\x{200d}\x{2642}|\x{1f6b4}\x{1f3fb}\x{200d}\x{2642}|\x{1f6b4}\x{200d}\x{2642}\x{fe0f}|\x{1f3cb}\x{1f3ff}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fe}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fd}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fc}\x{200d}\x{2640}|\x{1f3cb}\x{1f3fb}\x{200d}\x{2640}|\x{1f3cb}\x{fe0f}\x{200d}\x{2640}|\x{1f64d}\x{1f3ff}\x{200d}\x{2640}|\x{1f471}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2640}|\x{1f468}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fd}\x{200d}\x{2642}|\x{1f937}\x{1f3fe}\x{200d}\x{2642}|\x{1f937}\x{1f3ff}\x{200d}\x{2642}|\x{1f937}\x{200d}\x{2640}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fb}\x{200d}\x{2640}|\x{1f937}\x{1f3fc}\x{200d}\x{2640}|\x{1f937}\x{1f3fd}\x{200d}\x{2640}|\x{1f468}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f937}\x{1f3fe}\x{200d}\x{2640}|\x{1f937}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{2695}\x{fe0f}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f937}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2695}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2695}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2695}|\x{1f468}\x{200d}\x{2695}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fb}\x{200d}\x{2695}|\x{1f468}\x{1f3fc}\x{200d}\x{2695}|\x{1f468}\x{1f3fd}\x{200d}\x{2695}|\x{1f468}\x{1f3fe}\x{200d}\x{2695}|\x{1f468}\x{1f3ff}\x{200d}\x{2695}|\x{1f469}\x{200d}\x{2695}\x{fe0f}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f937}\x{1f3fb}\x{200d}\x{2642}|\x{1f469}\x{1f3fb}\x{200d}\x{2695}|\x{1f926}\x{1f3fc}\x{200d}\x{2640}|\x{1f468}\x{1f3ff}\x{200d}\x{2696}|\x{1f926}\x{200d}\x{2642}\x{fe0f}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f926}\x{1f3fb}\x{200d}\x{2642}|\x{1f926}\x{1f3fc}\x{200d}\x{2642}|\x{1f926}\x{1f3fd}\x{200d}\x{2642}|\x{1f926}\x{1f3fe}\x{200d}\x{2642}|\x{1f926}\x{1f3ff}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2640}\x{fe0f}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f373}|\x{1f926}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f373}|\x{1f926}\x{1f3fd}\x{200d}\x{2640}|\x{1f469}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f926}\x{1f3fe}\x{200d}\x{2640}|\x{1f926}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f937}\x{200d}\x{2642}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2640}|\x{1f469}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fc}\x{200d}\x{2695}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fd}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f468}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3ff}\x{200d}\x{2696}|\x{1f468}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fe}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f9d1}\x{200d}\x{2696}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f468}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fd}\x{200d}\x{2696}|\x{1f9d1}\x{1f3fe}\x{200d}\x{2696}|\x{1f469}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3ff}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{2696}\x{fe0f}|\x{1f469}\x{1f3fb}\x{200d}\x{2696}|\x{1f468}\x{1f3fb}\x{200d}\x{2696}|\x{1f468}\x{1f3fc}\x{200d}\x{2696}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f469}\x{200d}\x{2696}\x{fe0f}|\x{1f468}\x{1f3fd}\x{200d}\x{2696}|\x{1f468}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f3eb}|\x{1f469}\x{1f3fd}\x{200d}\x{2695}|\x{1f468}\x{1f3fe}\x{200d}\x{1f393}|\x{1f469}\x{1f3fe}\x{200d}\x{2695}|\x{1f468}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f469}\x{1f3ff}\x{200d}\x{2695}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3ff}\x{200d}\x{1f33e}|\x{1f468}\x{1f3fb}\x{200d}\x{1f393}|\x{1f468}\x{1f3fc}\x{200d}\x{1f393}|\x{1f468}\x{1f3fd}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f33e}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f3eb}|\x{1f468}\x{1f3ff}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f33e}|\x{1f468}\x{1f3ff}\x{200d}\x{1f9bc}|\x{1f469}\x{1f3fb}\x{200d}\x{1f393}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f33e}|\x{1f469}\x{1f3fc}\x{200d}\x{1f393}|\x{1f469}\x{1f3fd}\x{200d}\x{1f393}|\x{1f469}\x{1f3fe}\x{200d}\x{1f393}|\x{1f469}\x{1f3ff}\x{200d}\x{1f393}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9bc}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fc}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f3eb}|\x{1f9d1}\x{1f3fb}\x{200d}\x{1f33e}|\x{1f468}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f468}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f468}\x{1f3fe}\x{200d}\x{2696}|\x{1f481}\x{1f3fd}\x{200d}\x{2642}|\x{1f646}\x{1f3fe}\x{200d}\x{2640}|\x{1f646}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2640}|\x{1f46f}\x{200d}\x{2640}\x{fe0f}|\x{1f64e}\x{1f3fc}\x{200d}\x{2640}|\x{1f46f}\x{200d}\x{2642}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2640}|\x{1f481}\x{200d}\x{2642}\x{fe0f}|\x{1f481}\x{1f3fb}\x{200d}\x{2642}|\x{1f481}\x{1f3fc}\x{200d}\x{2642}|\x{1f481}\x{1f3fe}\x{200d}\x{2642}|\x{1f646}\x{1f3fc}\x{200d}\x{2640}|\x{1f481}\x{1f3ff}\x{200d}\x{2642}|\x{1f481}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2640}|\x{1f64e}\x{1f3fb}\x{200d}\x{2640}|\x{1f481}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d1}\x{1f3fe}\x{200d}\x{1f373}|\x{1f481}\x{1f3fc}\x{200d}\x{2640}|\x{1f481}\x{1f3fd}\x{200d}\x{2640}|\x{1f481}\x{1f3fe}\x{200d}\x{2640}|\x{1f481}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2640}|\x{1f646}\x{1f3fd}\x{200d}\x{2640}|\x{1f646}\x{1f3fb}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2640}\x{fe0f}|\x{1f645}\x{1f3fd}\x{200d}\x{2640}|\x{1f9d6}\x{1f3ff}\x{200d}\x{2642}|\x{1f645}\x{200d}\x{2642}\x{fe0f}|\x{1f645}\x{1f3fb}\x{200d}\x{2642}|\x{1f645}\x{1f3fc}\x{200d}\x{2642}|\x{1f645}\x{1f3fd}\x{200d}\x{2642}|\x{1f645}\x{1f3fe}\x{200d}\x{2642}|\x{1f645}\x{1f3ff}\x{200d}\x{2642}|\x{1f645}\x{200d}\x{2640}\x{fe0f}|\x{1f9d6}\x{1f3fe}\x{200d}\x{2642}|\x{1f645}\x{1f3fb}\x{200d}\x{2640}|\x{1f645}\x{1f3fc}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2640}|\x{1f645}\x{1f3fe}\x{200d}\x{2640}|\x{1f64e}\x{1f3fe}\x{200d}\x{2640}|\x{1f645}\x{1f3ff}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fb}\x{200d}\x{2642}|\x{1f646}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3ff}\x{200d}\x{2640}|\x{1f646}\x{1f3fb}\x{200d}\x{2642}|\x{1f646}\x{1f3fc}\x{200d}\x{2642}|\x{1f646}\x{1f3fd}\x{200d}\x{2642}|\x{1f646}\x{1f3fe}\x{200d}\x{2642}|\x{1f646}\x{1f3ff}\x{200d}\x{2642}|\x{1f646}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2640}|\x{1f64b}\x{200d}\x{2642}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2642}|\x{1f647}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{1f3fb}\x{200d}\x{2642}|\x{1f64e}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c3}\x{200d}\x{2642}\x{fe0f}|\x{1f469}\x{1f3ff}\x{200d}\x{1f9bd}|\x{1f647}\x{200d}\x{2642}\x{fe0f}|\x{1f64e}\x{1f3fd}\x{200d}\x{2642}|\x{1f469}\x{1f3fe}\x{200d}\x{1f9bd}|\x{1f647}\x{1f3fb}\x{200d}\x{2642}|\x{1f647}\x{1f3fc}\x{200d}\x{2642}|\x{1f647}\x{1f3fd}\x{200d}\x{2642}|\x{1f647}\x{1f3ff}\x{200d}\x{2642}|\x{1f9d6}\x{1f3fc}\x{200d}\x{2640}|\x{1f469}\x{1f3fd}\x{200d}\x{1f9bd}|\x{1f647}\x{1f3fb}\x{200d}\x{2640}|\x{1f647}\x{1f3fc}\x{200d}\x{2640}|\x{1f64e}\x{1f3fc}\x{200d}\x{2642}|\x{1f64e}\x{1f3fb}\x{200d}\x{2642}|\x{1f64e}\x{200d}\x{2642}\x{fe0f}|\x{1f647}\x{1f3fd}\x{200d}\x{2640}|\x{1f647}\x{1f3fe}\x{200d}\x{2640}|\x{1f9d6}\x{1f3fd}\x{200d}\x{2640}|\x{1f647}\x{1f3ff}\x{200d}\x{2640}|\x{1f469}\x{1f3fc}\x{200d}\x{1f9bd}|\x{1f469}\x{1f3fb}\x{200d}\x{1f9bd}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2640}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2640}|\x{1f64e}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fc}\x{200d}\x{2642}|\x{1f64b}\x{1f3fd}\x{200d}\x{2642}|\x{1f64b}\x{1f3fe}\x{200d}\x{2642}|\x{1f64b}\x{1f3ff}\x{200d}\x{2642}|\x{1f64b}\x{200d}\x{2640}\x{fe0f}|\x{1f64b}\x{1f3fb}\x{200d}\x{2640}|\x{1f64b}\x{1f3fc}\x{200d}\x{2640}|\x{1f64b}\x{1f3fd}\x{200d}\x{2640}|\x{1f64b}\x{1f3fe}\x{200d}\x{2640}|\x{1f64b}\x{1f3ff}\x{200d}\x{2640}|\x{1f3c3}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3ff}\x{200d}\x{2642}|\x{1f3c3}\x{1f3fe}\x{200d}\x{2642}|\x{1f3c3}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2642}\x{fe0f}|\x{1f9cf}\x{1f3fb}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fc}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fd}\x{200d}\x{2642}|\x{1f9cf}\x{1f3fe}\x{200d}\x{2642}|\x{1f9cf}\x{1f3ff}\x{200d}\x{2642}|\x{1f64e}\x{1f3ff}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2640}\x{fe0f}|\x{1f3c3}\x{1f3fc}\x{200d}\x{2642}|\x{1f9d1}\x{1f3fd}\x{200d}\x{1f373}|\x{1f3f4}\x{200d}\x{2620}|\x{1f939}\x{200d}\x{2642}|\x{1f3f3}\x{200d}\x{1f308}|\x{1f469}\x{200d}\x{1f466}|\x{0039}\x{fe0f}\x{20e3}|\x{1f9d8}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f467}|\x{1f468}\x{200d}\x{1f466}|\x{1f415}\x{200d}\x{1f9ba}|\x{0023}\x{fe0f}\x{20e3}|\x{002a}\x{fe0f}\x{20e3}|\x{0030}\x{fe0f}\x{20e3}|\x{0031}\x{fe0f}\x{20e3}|\x{0032}\x{fe0f}\x{20e3}|\x{0038}\x{fe0f}\x{20e3}|\x{0033}\x{fe0f}\x{20e3}|\x{1f9dc}\x{200d}\x{2640}|\x{1f9d8}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f467}|\x{0035}\x{fe0f}\x{20e3}|\x{0036}\x{fe0f}\x{20e3}|\x{0037}\x{fe0f}\x{20e3}|\x{1f939}\x{200d}\x{2640}|\x{0034}\x{fe0f}\x{20e3}|\x{1f9df}\x{200d}\x{2640}|\x{1f93e}\x{200d}\x{2640}|\x{1f3c3}\x{200d}\x{2640}|\x{1f486}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2640}|\x{1f487}\x{200d}\x{2642}|\x{1f6a3}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9bd}|\x{1f487}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2640}|\x{1f3c4}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2642}|\x{1f3c3}\x{200d}\x{2642}|\x{1f6b6}\x{200d}\x{2640}|\x{1f3ca}\x{200d}\x{2640}|\x{1f9ce}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2642}|\x{1f46f}\x{200d}\x{2642}|\x{1f46f}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2642}|\x{1f3cc}\x{200d}\x{2642}|\x{1f9ce}\x{200d}\x{2642}|\x{1f9d7}\x{200d}\x{2640}|\x{1f9d6}\x{200d}\x{2640}|\x{1f9cd}\x{200d}\x{2640}|\x{1f9d7}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f9bd}|\x{1f486}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9af}|\x{1f6b5}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f9bc}|\x{1f93e}\x{200d}\x{2642}|\x{1f9dd}\x{200d}\x{2642}|\x{1f93d}\x{200d}\x{2640}|\x{1f93d}\x{200d}\x{2642}|\x{1f93c}\x{200d}\x{2640}|\x{1f93c}\x{200d}\x{2642}|\x{1f938}\x{200d}\x{2640}|\x{1f938}\x{200d}\x{2642}|\x{1f9dd}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{1f9af}|\x{1f469}\x{200d}\x{1f9bc}|\x{1f9d1}\x{200d}\x{1f9bd}|\x{1f6b5}\x{200d}\x{2642}|\x{1f6b4}\x{200d}\x{2640}|\x{1f6b4}\x{200d}\x{2642}|\x{1f3cb}\x{200d}\x{2640}|\x{1f3cb}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f9af}|\x{26f9}\x{200d}\x{2640}|\x{1f9de}\x{200d}\x{2642}|\x{1f9de}\x{200d}\x{2640}|\x{26f9}\x{200d}\x{2642}|\x{1f9df}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f9bc}|\x{1f3cc}\x{200d}\x{2640}|\x{1f9dc}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f9b0}|\x{1f468}\x{200d}\x{1f9b1}|\x{1f468}\x{200d}\x{1f9b3}|\x{1f468}\x{200d}\x{1f9b2}|\x{1f9d1}\x{200d}\x{1f33e}|\x{1f468}\x{200d}\x{1f33e}|\x{1f469}\x{200d}\x{1f33e}|\x{1f9d1}\x{200d}\x{1f373}|\x{1f468}\x{200d}\x{1f373}|\x{1f469}\x{200d}\x{1f373}|\x{1f9d1}\x{200d}\x{1f527}|\x{1f9d1}\x{200d}\x{1f9b0}|\x{1f469}\x{200d}\x{2696}|\x{1f469}\x{200d}\x{1f9b1}|\x{1f9d1}\x{200d}\x{1f9b1}|\x{1f469}\x{200d}\x{1f9b3}|\x{1f9d1}\x{200d}\x{1f9b3}|\x{1f469}\x{200d}\x{1f9b2}|\x{1f9d1}\x{200d}\x{1f9b2}|\x{1f471}\x{200d}\x{2640}|\x{1f471}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f527}|\x{1f9d1}\x{200d}\x{1f3ed}|\x{1f468}\x{200d}\x{1f9b0}|\x{1f481}\x{200d}\x{2642}|\x{1f477}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{2695}|\x{1f647}\x{200d}\x{2640}|\x{1f647}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2642}|\x{1f926}\x{200d}\x{2640}|\x{1f937}\x{200d}\x{2642}|\x{1f473}\x{200d}\x{2640}|\x{1f473}\x{200d}\x{2642}|\x{1f9cf}\x{200d}\x{2640}|\x{1f9cf}\x{200d}\x{2642}|\x{1f937}\x{200d}\x{2640}|\x{1f468}\x{200d}\x{2695}|\x{1f481}\x{200d}\x{2640}|\x{1f469}\x{200d}\x{2695}|\x{1f9d1}\x{200d}\x{1f393}|\x{1f468}\x{200d}\x{1f393}|\x{1f64b}\x{200d}\x{2640}|\x{1f64b}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f393}|\x{1f9d1}\x{200d}\x{1f3eb}|\x{1f468}\x{200d}\x{1f3eb}|\x{1f469}\x{200d}\x{1f3eb}|\x{1f9d1}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{2696}|\x{1f468}\x{200d}\x{1f3ed}|\x{1f469}\x{200d}\x{1f527}|\x{1f477}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f680}|\x{1f64e}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f3ed}|\x{1f9da}\x{200d}\x{2642}|\x{1f9da}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f3a8}|\x{1f468}\x{200d}\x{1f3a8}|\x{1f469}\x{200d}\x{1f3a8}|\x{1f9d1}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{2708}|\x{1f469}\x{200d}\x{2708}|\x{1f468}\x{200d}\x{1f680}|\x{1f575}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f680}|\x{1f441}\x{200d}\x{1f5e8}|\x{1f9d1}\x{200d}\x{1f692}|\x{1f64d}\x{200d}\x{2640}|\x{1f9db}\x{200d}\x{2642}|\x{1f9db}\x{200d}\x{2640}|\x{1f64d}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f692}|\x{1f46e}\x{200d}\x{2640}|\x{1f46e}\x{200d}\x{2642}|\x{1f469}\x{200d}\x{1f692}|\x{1f64e}\x{200d}\x{2640}|\x{1f469}\x{200d}\x{1f3a4}|\x{1f575}\x{200d}\x{2640}|\x{1f482}\x{200d}\x{2642}|\x{1f9d1}\x{200d}\x{1f4bc}|\x{1f468}\x{200d}\x{1f4bc}|\x{1f469}\x{200d}\x{1f4bc}|\x{1f9b8}\x{200d}\x{2642}|\x{1f9b8}\x{200d}\x{2640}|\x{1f646}\x{200d}\x{2640}|\x{1f646}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f3a4}|\x{1f468}\x{200d}\x{1f52c}|\x{1f482}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f52c}|\x{1f469}\x{200d}\x{1f52c}|\x{1f9d1}\x{200d}\x{1f3a4}|\x{1f9b9}\x{200d}\x{2640}|\x{1f9d1}\x{200d}\x{1f4bb}|\x{1f645}\x{200d}\x{2640}|\x{1f645}\x{200d}\x{2642}|\x{1f468}\x{200d}\x{1f4bb}|\x{1f469}\x{200d}\x{1f4bb}|\x{1f9d9}\x{200d}\x{2640}|\x{1f9b9}\x{200d}\x{2642}|\x{1f9d9}\x{200d}\x{2642}|\x{1f6cc}\x{1f3ff}|\x{1f6cc}\x{1f3fd}|\x{1f6c0}\x{1f3ff}|\x{1f6cc}\x{1f3fc}|\x{1f6cc}\x{1f3fb}|\x{1f1f0}\x{1f1ee}|\x{1f6c0}\x{1f3fe}|\x{1f6c0}\x{1f3fd}|\x{1f6cc}\x{1f3fe}|\x{2763}\x{fe0f}|\x{1f1f0}\x{1f1ed}|\x{1f1ec}\x{1f1e7}|\x{1f46b}\x{1f3fb}|\x{1f1eb}\x{1f1f2}|\x{1f46d}\x{1f3ff}|\x{1f1eb}\x{1f1f4}|\x{1f1eb}\x{1f1f7}|\x{1f1ec}\x{1f1e6}|\x{1f1ec}\x{1f1e9}|\x{1f1eb}\x{1f1ef}|\x{1f46d}\x{1f3fe}|\x{1f1ec}\x{1f1ea}|\x{1f1ec}\x{1f1eb}|\x{1f1ec}\x{1f1ec}|\x{1f1ec}\x{1f1ed}|\x{1f1ec}\x{1f1ee}|\x{1f1eb}\x{1f1f0}|\x{2620}\x{fe0f}|\x{1f1ec}\x{1f1f1}|\x{1f1ea}\x{1f1ea}|\x{1f1e9}\x{1f1f2}|\x{1f46b}\x{1f3fe}|\x{1f1e9}\x{1f1f4}|\x{1f1e9}\x{1f1ff}|\x{1f1ea}\x{1f1e6}|\x{1f1ea}\x{1f1e8}|\x{1f46b}\x{1f3fd}|\x{1f1eb}\x{1f1ee}|\x{1f1ea}\x{1f1ec}|\x{1f1ea}\x{1f1ed}|\x{1f1ea}\x{1f1f7}|\x{1f1ea}\x{1f1f8}|\x{1f1ea}\x{1f1f9}|\x{1f46b}\x{1f3fc}|\x{1f1ea}\x{1f1fa}|\x{1f46d}\x{1f3fd}|\x{1f1ec}\x{1f1f2}|\x{1f1f0}\x{1f1ec}|\x{1f1ee}\x{1f1f6}|\x{1f6c0}\x{1f3fb}|\x{1f1ee}\x{1f1f1}|\x{1f1ee}\x{1f1f2}|\x{2764}\x{fe0f}|\x{1f1ee}\x{1f1f3}|\x{1f1ee}\x{1f1f4}|\x{1f1ee}\x{1f1f7}|\x{1f1ee}\x{1f1e9}|\x{1f1ee}\x{1f1f8}|\x{1f1ee}\x{1f1f9}|\x{1f1ef}\x{1f1ea}|\x{1f1ef}\x{1f1f2}|\x{1f1ef}\x{1f1f4}|\x{1f1ef}\x{1f1f5}|\x{1f1f0}\x{1f1ea}|\x{1f1ee}\x{1f1ea}|\x{1f1ee}\x{1f1e8}|\x{1f1ec}\x{1f1f3}|\x{1f1ec}\x{1f1fa}|\x{1f1ec}\x{1f1f5}|\x{1f1ec}\x{1f1f6}|\x{1f46d}\x{1f3fc}|\x{1f1ec}\x{1f1f7}|\x{1f1ec}\x{1f1f8}|\x{1f1ec}\x{1f1f9}|\x{1f1ec}\x{1f1fc}|\x{1f1ed}\x{1f1fa}|\x{1f46d}\x{1f3fb}|\x{1f1ec}\x{1f1fe}|\x{1f1ed}\x{1f1f0}|\x{1f1ed}\x{1f1f2}|\x{1f1ed}\x{1f1f3}|\x{1f1ed}\x{1f1f7}|\x{1f1ed}\x{1f1f9}|\x{1f6c0}\x{1f3fc}|\x{1f5ef}\x{fe0f}|\x{1f1f0}\x{1f1f2}|\x{1f93d}\x{1f3fd}|\x{1f448}\x{1f3fe}|\x{1f448}\x{1f3ff}|\x{1f1f2}\x{1f1f1}|\x{1f449}\x{1f3fb}|\x{1f449}\x{1f3fc}|\x{1f93d}\x{1f3ff}|\x{1f93d}\x{1f3fe}|\x{1f93d}\x{1f3fc}|\x{1f448}\x{1f3fc}|\x{1f93d}\x{1f3fb}|\x{1f1f2}\x{1f1f2}|\x{1f449}\x{1f3fd}|\x{1f449}\x{1f3fe}|\x{1f449}\x{1f3ff}|\x{1f1f2}\x{1f1f3}|\x{1f1f2}\x{1f1f4}|\x{1f446}\x{1f3fb}|\x{1f448}\x{1f3fd}|\x{1f448}\x{1f3fb}|\x{1f446}\x{1f3fd}|\x{1f918}\x{1f3fc}|\x{1f93e}\x{1f3fb}|\x{1f1f2}\x{1f1eb}|\x{1f91f}\x{1f3fd}|\x{1f91f}\x{1f3fe}|\x{1f91f}\x{1f3ff}|\x{1f1f2}\x{1f1ec}|\x{1f918}\x{1f3fb}|\x{1f918}\x{1f3fd}|\x{1f1f2}\x{1f1f0}|\x{1f918}\x{1f3fe}|\x{1f918}\x{1f3ff}|\x{1f1f2}\x{1f1ed}|\x{1f919}\x{1f3fb}|\x{1f919}\x{1f3fc}|\x{1f919}\x{1f3fd}|\x{1f919}\x{1f3fe}|\x{1f919}\x{1f3ff}|\x{1f446}\x{1f3fc}|\x{1f446}\x{1f3fe}|\x{1f93e}\x{1f3fd}|\x{1f44d}\x{1f3fd}|\x{1f938}\x{1f3fd}|\x{1f938}\x{1f3fc}|\x{1f938}\x{1f3fb}|\x{1f1f2}\x{1f1f8}|\x{1f1f2}\x{1f1f9}|\x{1f44d}\x{1f3fb}|\x{1f44d}\x{1f3fc}|\x{1f44d}\x{1f3fe}|\x{1f938}\x{1f3ff}|\x{1f44d}\x{1f3ff}|\x{1f1f2}\x{1f1fa}|\x{1f44e}\x{1f3fb}|\x{1f44e}\x{1f3fc}|\x{1f44e}\x{1f3fd}|\x{1f44e}\x{1f3fe}|\x{1f44e}\x{1f3ff}|\x{1f1f2}\x{1f1fb}|\x{1f938}\x{1f3fe}|\x{261d}\x{1f3ff}|\x{1f446}\x{1f3ff}|\x{1f447}\x{1f3fb}|\x{1f1f2}\x{1f1f5}|\x{1f595}\x{1f3fb}|\x{1f595}\x{1f3fc}|\x{1f595}\x{1f3fd}|\x{1f595}\x{1f3fe}|\x{1f595}\x{1f3ff}|\x{1f1f2}\x{1f1f6}|\x{1f447}\x{1f3fc}|\x{261d}\x{1f3fe}|\x{1f447}\x{1f3fd}|\x{1f447}\x{1f3fe}|\x{1f447}\x{1f3ff}|\x{261d}\x{fe0f}|\x{1f1f2}\x{1f1f7}|\x{261d}\x{1f3fb}|\x{261d}\x{1f3fc}|\x{261d}\x{1f3fd}|\x{1f93e}\x{1f3fc}|\x{1f93e}\x{1f3fe}|\x{1f1f0}\x{1f1f3}|\x{1f590}\x{fe0f}|\x{1f9d8}\x{1f3ff}|\x{1f9d8}\x{1f3fe}|\x{1f9d8}\x{1f3fd}|\x{1f9d8}\x{1f3fc}|\x{1f9d8}\x{1f3fb}|\x{1f1f1}\x{1f1f7}|\x{1f91a}\x{1f3ff}|\x{1f1f1}\x{1f1f8}|\x{1f91a}\x{1f3fd}|\x{1f590}\x{1f3fb}|\x{1f590}\x{1f3fc}|\x{1f590}\x{1f3fd}|\x{1f590}\x{1f3fe}|\x{1f590}\x{1f3ff}|\x{1f1f1}\x{1f1f9}|\x{270b}\x{1f3fb}|\x{270b}\x{1f3fc}|\x{1f91a}\x{1f3fe}|\x{1f91a}\x{1f3fc}|\x{270b}\x{1f3fe}|\x{1f1f1}\x{1f1e6}|\x{1f1f0}\x{1f1f5}|\x{1f1f0}\x{1f1f7}|\x{1f1f0}\x{1f1fc}|\x{1f1f0}\x{1f1fe}|\x{1f5e8}\x{fe0f}|\x{1f1f0}\x{1f1ff}|\x{1f1e9}\x{1f1ef}|\x{1f1f1}\x{1f1e7}|\x{1f91a}\x{1f3fb}|\x{1f1f1}\x{1f1e8}|\x{1f1f1}\x{1f1ee}|\x{1f44b}\x{1f3fb}|\x{1f44b}\x{1f3fc}|\x{1f44b}\x{1f3fd}|\x{1f44b}\x{1f3fe}|\x{1f44b}\x{1f3ff}|\x{1f1f1}\x{1f1f0}|\x{270b}\x{1f3fd}|\x{270b}\x{1f3ff}|\x{1f93e}\x{1f3ff}|\x{270c}\x{1f3ff}|\x{1f90f}\x{1f3ff}|\x{270c}\x{fe0f}|\x{1f1f2}\x{1f1e8}|\x{270c}\x{1f3fb}|\x{270c}\x{1f3fc}|\x{270c}\x{1f3fd}|\x{270c}\x{1f3fe}|\x{1f1f2}\x{1f1e9}|\x{1f90f}\x{1f3fd}|\x{1f91e}\x{1f3fb}|\x{1f91e}\x{1f3fc}|\x{1f91e}\x{1f3fd}|\x{1f91e}\x{1f3fe}|\x{1f91e}\x{1f3ff}|\x{1f1f2}\x{1f1ea}|\x{1f91f}\x{1f3fb}|\x{1f91f}\x{1f3fc}|\x{1f90f}\x{1f3fe}|\x{1f90f}\x{1f3fc}|\x{1f1f1}\x{1f1fa}|\x{1f44c}\x{1f3fd}|\x{1f596}\x{1f3fb}|\x{1f596}\x{1f3fc}|\x{1f596}\x{1f3fd}|\x{1f596}\x{1f3fe}|\x{1f596}\x{1f3ff}|\x{1f1f1}\x{1f1fb}|\x{1f44c}\x{1f3fb}|\x{1f44c}\x{1f3fc}|\x{1f939}\x{1f3ff}|\x{1f90f}\x{1f3fb}|\x{1f939}\x{1f3fe}|\x{1f939}\x{1f3fd}|\x{1f939}\x{1f3fc}|\x{1f939}\x{1f3fb}|\x{1f1f1}\x{1f1fe}|\x{1f44c}\x{1f3fe}|\x{1f44c}\x{1f3ff}|\x{1f1f2}\x{1f1e6}|\x{1f1e9}\x{1f1f0}|\x{1f1e7}\x{1f1f6}|\x{1f1e9}\x{1f1ec}|\x{1f5dc}\x{fe0f}|\x{26a0}\x{fe0f}|\x{26e9}\x{fe0f}|\x{26b1}\x{fe0f}|\x{26b0}\x{fe0f}|\x{1f3d9}\x{fe0f}|\x{2668}\x{fe0f}|\x{1f6cb}\x{fe0f}|\x{1f6cf}\x{fe0f}|\x{2697}\x{fe0f}|\x{26d3}\x{fe0f}|\x{1f3ce}\x{fe0f}|\x{2696}\x{fe0f}|\x{1f3cd}\x{fe0f}|\x{2699}\x{fe0f}|\x{1f3d8}\x{fe0f}|\x{1f6e1}\x{fe0f}|\x{1f6e3}\x{fe0f}|\x{1f6e4}\x{fe0f}|\x{1f6e2}\x{fe0f}|\x{2694}\x{fe0f}|\x{1f5e1}\x{fe0f}|\x{1f6e0}\x{fe0f}|\x{2692}\x{fe0f}|\x{26cf}\x{fe0f}|\x{1f6f3}\x{fe0f}|\x{26f4}\x{fe0f}|\x{1f5dd}\x{fe0f}|\x{1f6e5}\x{fe0f}|\x{2708}\x{fe0f}|\x{1f3da}\x{fe0f}|\x{2622}\x{fe0f}|\x{1f5d1}\x{fe0f}|\x{2199}\x{fe0f}|\x{2721}\x{fe0f}|\x{1f549}\x{fe0f}|\x{269b}\x{fe0f}|\x{1f9dc}\x{1f3ff}|\x{2935}\x{fe0f}|\x{2934}\x{fe0f}|\x{21aa}\x{fe0f}|\x{1f37d}\x{fe0f}|\x{21a9}\x{fe0f}|\x{2194}\x{fe0f}|\x{2195}\x{fe0f}|\x{2196}\x{fe0f}|\x{2b05}\x{fe0f}|\x{1f5fa}\x{fe0f}|\x{1f3d4}\x{fe0f}|\x{1f3d7}\x{fe0f}|\x{2b07}\x{fe0f}|\x{26f0}\x{fe0f}|\x{2198}\x{fe0f}|\x{1f3d5}\x{fe0f}|\x{27a1}\x{fe0f}|\x{1f3d6}\x{fe0f}|\x{1f3dc}\x{fe0f}|\x{2197}\x{fe0f}|\x{1f3dd}\x{fe0f}|\x{1f3de}\x{fe0f}|\x{2b06}\x{fe0f}|\x{1f3df}\x{fe0f}|\x{1f3db}\x{fe0f}|\x{2623}\x{fe0f}|\x{1f6e9}\x{fe0f}|\x{1f5c4}\x{fe0f}|\x{262f}\x{fe0f}|\x{1f5a5}\x{fe0f}|\x{26f1}\x{fe0f}|\x{2744}\x{fe0f}|\x{2603}\x{fe0f}|\x{2604}\x{fe0f}|\x{1f56f}\x{fe0f}|\x{1f4fd}\x{fe0f}|\x{1f39e}\x{fe0f}|\x{1f397}\x{fe0f}|\x{1f39f}\x{fe0f}|\x{1f396}\x{fe0f}|\x{1f5b2}\x{fe0f}|\x{1f5b1}\x{fe0f}|\x{2328}\x{fe0f}|\x{1f5a8}\x{fe0f}|\x{260e}\x{fe0f}|\x{1f5de}\x{fe0f}|\x{26f8}\x{fe0f}|\x{1f39b}\x{fe0f}|\x{1f39a}\x{fe0f}|\x{1f399}\x{fe0f}|\x{1f579}\x{fe0f}|\x{2660}\x{fe0f}|\x{2665}\x{fe0f}|\x{2666}\x{fe0f}|\x{2663}\x{fe0f}|\x{265f}\x{fe0f}|\x{1f5bc}\x{fe0f}|\x{26d1}\x{fe0f}|\x{1f576}\x{fe0f}|\x{1f6cd}\x{fe0f}|\x{2602}\x{fe0f}|\x{1f32c}\x{fe0f}|\x{1f5c3}\x{fe0f}|\x{2712}\x{fe0f}|\x{1f6f0}\x{fe0f}|\x{2702}\x{fe0f}|\x{1f6ce}\x{fe0f}|\x{1f587}\x{fe0f}|\x{23f1}\x{fe0f}|\x{23f2}\x{fe0f}|\x{1f570}\x{fe0f}|\x{1f5d3}\x{fe0f}|\x{1f5d2}\x{fe0f}|\x{1f5c2}\x{fe0f}|\x{1f58d}\x{fe0f}|\x{1f58c}\x{fe0f}|\x{1f58a}\x{fe0f}|\x{1f58b}\x{fe0f}|\x{270f}\x{fe0f}|\x{1f32b}\x{fe0f}|\x{1f5f3}\x{fe0f}|\x{1f321}\x{fe0f}|\x{2600}\x{fe0f}|\x{2709}\x{fe0f}|\x{2601}\x{fe0f}|\x{26c8}\x{fe0f}|\x{1f324}\x{fe0f}|\x{1f325}\x{fe0f}|\x{1f326}\x{fe0f}|\x{1f327}\x{fe0f}|\x{1f328}\x{fe0f}|\x{1f3f7}\x{fe0f}|\x{1f329}\x{fe0f}|\x{1f32a}\x{fe0f}|\x{2638}\x{fe0f}|\x{271d}\x{fe0f}|\x{1f1e9}\x{1f1ea}|\x{1f1e7}\x{1f1e6}|\x{270a}\x{1f3fc}|\x{1f1e7}\x{1f1f4}|\x{1f1e7}\x{1f1f3}|\x{1f1e7}\x{1f1f2}|\x{1f1e7}\x{1f1f1}|\x{1f1e7}\x{1f1ef}|\x{1f1e7}\x{1f1ee}|\x{1f1e7}\x{1f1ed}|\x{1f1e7}\x{1f1ec}|\x{1f1e7}\x{1f1eb}|\x{1f1e7}\x{1f1ea}|\x{1f1e7}\x{1f1e9}|\x{1f1e7}\x{1f1e7}|\x{1f1e6}\x{1f1ff}|\x{1f1e7}\x{1f1f8}|\x{1f1e6}\x{1f1fd}|\x{1f1e6}\x{1f1fc}|\x{1f1e6}\x{1f1fa}|\x{1f1e6}\x{1f1f9}|\x{1f1e6}\x{1f1f8}|\x{1f1e6}\x{1f1f7}|\x{1f1e6}\x{1f1f6}|\x{1f1e6}\x{1f1f4}|\x{1f1e6}\x{1f1f2}|\x{1f1e6}\x{1f1f1}|\x{1f1e6}\x{1f1ee}|\x{1f1e6}\x{1f1ec}|\x{1f1e6}\x{1f1eb}|\x{1f1e6}\x{1f1ea}|\x{1f1e7}\x{1f1f7}|\x{1f1e7}\x{1f1f9}|\x{1f1e6}\x{1f1e8}|\x{1f46c}\x{1f3fd}|\x{1f46b}\x{1f3ff}|\x{1f1e8}\x{1f1ff}|\x{1f46c}\x{1f3fb}|\x{1f1e8}\x{1f1fe}|\x{1f1e8}\x{1f1fd}|\x{1f1e8}\x{1f1fc}|\x{1f1e8}\x{1f1fb}|\x{1f1e8}\x{1f1fa}|\x{1f46c}\x{1f3fc}|\x{1f1e8}\x{1f1f7}|\x{1f1e8}\x{1f1f5}|\x{1f1e8}\x{1f1f4}|\x{1f1e8}\x{1f1f3}|\x{1f1e8}\x{1f1f2}|\x{1f1e8}\x{1f1f1}|\x{1f1e7}\x{1f1fb}|\x{2639}\x{fe0f}|\x{1f1e8}\x{1f1f0}|\x{1f1e8}\x{1f1ee}|\x{1f1e8}\x{1f1ed}|\x{1f46c}\x{1f3fe}|\x{1f1e8}\x{1f1ec}|\x{1f1e8}\x{1f1eb}|\x{1f1e8}\x{1f1e9}|\x{1f1e8}\x{1f1e8}|\x{1f1e8}\x{1f1e6}|\x{1f46c}\x{1f3ff}|\x{1f1e7}\x{1f1ff}|\x{1f1e7}\x{1f1fe}|\x{1f1e7}\x{1f1fc}|\x{1f1e6}\x{1f1e9}|\x{1f5e3}\x{fe0f}|\x{2626}\x{fe0f}|\x{267b}\x{fe0f}|\x{00a9}\x{fe0f}|\x{3030}\x{fe0f}|\x{2049}\x{fe0f}|\x{2618}\x{fe0f}|\x{203c}\x{fe0f}|\x{2747}\x{fe0f}|\x{2734}\x{fe0f}|\x{2733}\x{fe0f}|\x{303d}\x{fe0f}|\x{2716}\x{fe0f}|\x{2714}\x{fe0f}|\x{2611}\x{fe0f}|\x{1f336}\x{fe0f}|\x{269c}\x{fe0f}|\x{267e}\x{fe0f}|\x{2122}\x{fe0f}|\x{2695}\x{fe0f}|\x{2642}\x{fe0f}|\x{2640}\x{fe0f}|\x{23cf}\x{fe0f}|\x{23fa}\x{fe0f}|\x{23f9}\x{fe0f}|\x{23f8}\x{fe0f}|\x{23ee}\x{fe0f}|\x{25c0}\x{fe0f}|\x{23ef}\x{fe0f}|\x{23ed}\x{fe0f}|\x{25b6}\x{fe0f}|\x{262e}\x{fe0f}|\x{262a}\x{fe0f}|\x{00ae}\x{fe0f}|\x{1f3f5}\x{fe0f}|\x{1f3f3}\x{fe0f}|\x{1f171}\x{fe0f}|\x{25ab}\x{fe0f}|\x{25aa}\x{fe0f}|\x{25fb}\x{fe0f}|\x{25fc}\x{fe0f}|\x{3299}\x{fe0f}|\x{3297}\x{fe0f}|\x{1f43f}\x{fe0f}|\x{1f237}\x{fe0f}|\x{1f202}\x{fe0f}|\x{1f17f}\x{fe0f}|\x{1f17e}\x{fe0f}|\x{24c2}\x{fe0f}|\x{1f54a}\x{fe0f}|\x{2139}\x{fe0f}|\x{1f170}\x{fe0f}|\x{0023}\x{20e3}|\x{0039}\x{20e3}|\x{0038}\x{20e3}|\x{0037}\x{20e3}|\x{0036}\x{20e3}|\x{0035}\x{20e3}|\x{0034}\x{20e3}|\x{0033}\x{20e3}|\x{0032}\x{20e3}|\x{0031}\x{20e3}|\x{1f577}\x{fe0f}|\x{1f578}\x{fe0f}|\x{0030}\x{20e3}|\x{002a}\x{20e3}|\x{263a}\x{fe0f}|\x{270a}\x{1f3fb}|\x{1f573}\x{fe0f}|\x{270a}\x{1f3fd}|\x{1f647}\x{1f3fc}|\x{1f1f9}\x{1f1f1}|\x{1f9da}\x{1f3fe}|\x{1f3c3}\x{1f3fb}|\x{1f9da}\x{1f3ff}|\x{1f9dd}\x{1f3ff}|\x{1f3c3}\x{1f3fc}|\x{1f9dd}\x{1f3fe}|\x{1f3c3}\x{1f3fd}|\x{1f3c3}\x{1f3fe}|\x{1f3c3}\x{1f3ff}|\x{1f647}\x{1f3fe}|\x{1f9dd}\x{1f3fd}|\x{1f647}\x{1f3fd}|\x{1f9dd}\x{1f3fc}|\x{1f9da}\x{1f3fc}|\x{1f647}\x{1f3fb}|\x{1f9dd}\x{1f3fb}|\x{1f1f9}\x{1f1f0}|\x{1f9cf}\x{1f3ff}|\x{1f1ff}\x{1f1fc}|\x{1f9db}\x{1f3fb}|\x{1f9db}\x{1f3fc}|\x{1f9db}\x{1f3fd}|\x{1f9db}\x{1f3fe}|\x{1f9db}\x{1f3ff}|\x{1f9cf}\x{1f3fe}|\x{1f9cf}\x{1f3fd}|\x{1f9cf}\x{1f3fc}|\x{1f9da}\x{1f3fd}|\x{1f647}\x{1f3ff}|\x{1f9cf}\x{1f3fb}|\x{1f1f9}\x{1f1f4}|\x{1f9ce}\x{1f3fc}|\x{1f9ce}\x{1f3fd}|\x{1f9ce}\x{1f3fe}|\x{1f9ce}\x{1f3ff}|\x{1f575}\x{1f3fb}|\x{1f1f9}\x{1f1f7}|\x{1f9d9}\x{1f3fd}|\x{1f575}\x{fe0f}|\x{1f46e}\x{1f3ff}|\x{1f46e}\x{1f3fe}|\x{1f46e}\x{1f3fd}|\x{1f46e}\x{1f3fc}|\x{1f46e}\x{1f3fb}|\x{1f937}\x{1f3ff}|\x{1f1f9}\x{1f1f2}|\x{1f937}\x{1f3fe}|\x{1f937}\x{1f3fd}|\x{1f9d9}\x{1f3fe}|\x{1f937}\x{1f3fc}|\x{1f937}\x{1f3fb}|\x{1f1f9}\x{1f1f3}|\x{1f9d9}\x{1f3ff}|\x{1f926}\x{1f3ff}|\x{1f926}\x{1f3fe}|\x{1f1ff}\x{1f1f2}|\x{1f926}\x{1f3fd}|\x{1f926}\x{1f3fc}|\x{1f9da}\x{1f3fb}|\x{1f926}\x{1f3fb}|\x{1f9dc}\x{1f3fb}|\x{1f9dc}\x{1f3fc}|\x{1f9d9}\x{1f3fc}|\x{1f645}\x{1f3ff}|\x{1f1f9}\x{1f1e6}|\x{1f9d6}\x{1f3fb}|\x{1f9d6}\x{1f3fc}|\x{1f9d6}\x{1f3fd}|\x{1f9d6}\x{1f3fe}|\x{1f9d6}\x{1f3ff}|\x{1f1f8}\x{1f1ff}|\x{1f646}\x{1f3ff}|\x{1f646}\x{1f3fe}|\x{1f646}\x{1f3fd}|\x{1f646}\x{1f3fc}|\x{1f646}\x{1f3fb}|\x{1f1f8}\x{1f1fe}|\x{1f645}\x{1f3fe}|\x{1f481}\x{1f3fc}|\x{1f645}\x{1f3fd}|\x{1f645}\x{1f3fc}|\x{1f645}\x{1f3fb}|\x{1f1f8}\x{1f1fd}|\x{1f64e}\x{1f3ff}|\x{1f64e}\x{1f3fe}|\x{1f64e}\x{1f3fd}|\x{1f64e}\x{1f3fc}|\x{1f64e}\x{1f3fb}|\x{1f1f8}\x{1f1fb}|\x{1f9d7}\x{1f3fb}|\x{1f9d7}\x{1f3fc}|\x{1f9d7}\x{1f3fd}|\x{1f9d7}\x{1f3fe}|\x{1f481}\x{1f3fb}|\x{1f481}\x{1f3fd}|\x{1f9dc}\x{1f3fd}|\x{1f483}\x{1f3fe}|\x{1f1f9}\x{1f1ef}|\x{1f64b}\x{1f3ff}|\x{1f9dc}\x{1f3fe}|\x{1f64b}\x{1f3fe}|\x{1f64b}\x{1f3fd}|\x{1f64b}\x{1f3fc}|\x{1f64b}\x{1f3fb}|\x{1f1f9}\x{1f1ed}|\x{1f481}\x{1f3ff}|\x{1f1f9}\x{1f1ec}|\x{1f483}\x{1f3fb}|\x{1f483}\x{1f3fc}|\x{1f483}\x{1f3fd}|\x{1f483}\x{1f3ff}|\x{1f481}\x{1f3fe}|\x{1f1f9}\x{1f1eb}|\x{1f57a}\x{1f3fb}|\x{1f57a}\x{1f3fc}|\x{1f57a}\x{1f3fd}|\x{1f57a}\x{1f3fe}|\x{1f57a}\x{1f3ff}|\x{1f574}\x{fe0f}|\x{1f1f9}\x{1f1e9}|\x{1f574}\x{1f3fb}|\x{1f574}\x{1f3fc}|\x{1f574}\x{1f3fd}|\x{1f574}\x{1f3fe}|\x{1f574}\x{1f3ff}|\x{1f1f9}\x{1f1e8}|\x{1f9ce}\x{1f3fb}|\x{270a}\x{1f3fe}|\x{1f1f8}\x{1f1f9}|\x{1f6b6}\x{1f3fc}|\x{1f47c}\x{1f3fe}|\x{1f47c}\x{1f3ff}|\x{1f1fb}\x{1f1f3}|\x{1f9d5}\x{1f3ff}|\x{1f385}\x{1f3fb}|\x{1f9d5}\x{1f3fe}|\x{1f9d5}\x{1f3fd}|\x{1f9d5}\x{1f3fc}|\x{1f9d5}\x{1f3fb}|\x{1f1fa}\x{1f1fe}|\x{1f385}\x{1f3fc}|\x{1f1fa}\x{1f1f8}|\x{1f6b6}\x{1f3fb}|\x{1f6b6}\x{1f3fd}|\x{1f47c}\x{1f3fd}|\x{1f6b6}\x{1f3fe}|\x{1f6b6}\x{1f3ff}|\x{1f385}\x{1f3fd}|\x{1f472}\x{1f3ff}|\x{1f472}\x{1f3fe}|\x{1f472}\x{1f3fd}|\x{1f472}\x{1f3fc}|\x{1f472}\x{1f3fb}|\x{1f1fa}\x{1f1f3}|\x{1f473}\x{1f3ff}|\x{1f473}\x{1f3fe}|\x{1f385}\x{1f3fe}|\x{1f473}\x{1f3fd}|\x{1f1fa}\x{1f1ff}|\x{1f47c}\x{1f3fc}|\x{1f473}\x{1f3fb}|\x{1f487}\x{1f3fd}|\x{1f470}\x{1f3fe}|\x{1f470}\x{1f3ff}|\x{1f470}\x{1f3fc}|\x{1f1fb}\x{1f1e8}|\x{1f930}\x{1f3fb}|\x{1f930}\x{1f3fc}|\x{1f930}\x{1f3fd}|\x{1f930}\x{1f3fe}|\x{1f930}\x{1f3ff}|\x{1f470}\x{1f3fb}|\x{1f1fb}\x{1f1e6}|\x{1f487}\x{1f3ff}|\x{1f487}\x{1f3fe}|\x{1f487}\x{1f3fc}|\x{1f47c}\x{1f3fb}|\x{1f487}\x{1f3fb}|\x{1f1fb}\x{1f1ea}|\x{1f935}\x{1f3ff}|\x{1f1fb}\x{1f1ec}|\x{1f931}\x{1f3fb}|\x{1f931}\x{1f3fc}|\x{1f935}\x{1f3fe}|\x{1f935}\x{1f3fd}|\x{1f931}\x{1f3fd}|\x{1f935}\x{1f3fc}|\x{1f931}\x{1f3fe}|\x{1f935}\x{1f3fb}|\x{1f931}\x{1f3ff}|\x{1f1fb}\x{1f1ee}|\x{1f473}\x{1f3fc}|\x{1f385}\x{1f3ff}|\x{1f9d9}\x{1f3fb}|\x{1f9b9}\x{1f3fb}|\x{1f477}\x{1f3fd}|\x{1f9b8}\x{1f3fb}|\x{1f9b8}\x{1f3fc}|\x{1f9b8}\x{1f3fd}|\x{1f477}\x{1f3fc}|\x{1f477}\x{1f3fb}|\x{1f1fd}\x{1f1f0}|\x{1f1f9}\x{1f1fc}|\x{1f482}\x{1f3ff}|\x{1f9b8}\x{1f3fe}|\x{1f9b8}\x{1f3ff}|\x{1f1fe}\x{1f1ea}|\x{1f1fe}\x{1f1f9}|\x{1f482}\x{1f3fe}|\x{1f477}\x{1f3fe}|\x{1f482}\x{1f3fd}|\x{1f9b9}\x{1f3fc}|\x{1f482}\x{1f3fc}|\x{1f9b9}\x{1f3fd}|\x{1f482}\x{1f3fb}|\x{1f1f9}\x{1f1fb}|\x{1f575}\x{1f3ff}|\x{1f575}\x{1f3fe}|\x{1f9b9}\x{1f3fe}|\x{1f9b9}\x{1f3ff}|\x{1f575}\x{1f3fd}|\x{1f575}\x{1f3fc}|\x{1f1ff}\x{1f1e6}|\x{1f1f9}\x{1f1f9}|\x{1f1fc}\x{1f1f8}|\x{1f477}\x{1f3ff}|\x{1f1fa}\x{1f1f2}|\x{1f936}\x{1f3fe}|\x{1f478}\x{1f3ff}|\x{1f478}\x{1f3fe}|\x{1f478}\x{1f3fd}|\x{1f478}\x{1f3fc}|\x{1f1fb}\x{1f1fa}|\x{1f478}\x{1f3fb}|\x{1f1fa}\x{1f1ec}|\x{1f934}\x{1f3ff}|\x{1f936}\x{1f3fb}|\x{1f936}\x{1f3fc}|\x{1f936}\x{1f3fd}|\x{1f934}\x{1f3fe}|\x{1f934}\x{1f3fd}|\x{1f934}\x{1f3fc}|\x{1f1f9}\x{1f1ff}|\x{1f1fa}\x{1f1e6}|\x{1f936}\x{1f3ff}|\x{1f9cd}\x{1f3fb}|\x{1f9cd}\x{1f3fc}|\x{1f486}\x{1f3ff}|\x{1f9cd}\x{1f3fd}|\x{1f9cd}\x{1f3fe}|\x{1f486}\x{1f3fe}|\x{1f9cd}\x{1f3ff}|\x{1f486}\x{1f3fd}|\x{1f486}\x{1f3fc}|\x{1f486}\x{1f3fb}|\x{1f934}\x{1f3fb}|\x{1f1fc}\x{1f1eb}|\x{1f9d7}\x{1f3ff}|\x{1f470}\x{1f3fd}|\x{1f64d}\x{1f3ff}|\x{1f1f5}\x{1f1f8}|\x{1f6b4}\x{1f3fd}|\x{1f1f5}\x{1f1f9}|\x{1f3ca}\x{1f3fb}|\x{1f6b4}\x{1f3fc}|\x{1f3ca}\x{1f3fc}|\x{1f6b4}\x{1f3fb}|\x{1f3ca}\x{1f3fd}|\x{1f1f3}\x{1f1ea}|\x{1f3ca}\x{1f3fe}|\x{1f1f3}\x{1f1eb}|\x{1f450}\x{1f3fb}|\x{1f450}\x{1f3fc}|\x{1f3ca}\x{1f3ff}|\x{1f450}\x{1f3fd}|\x{1f1f5}\x{1f1f7}|\x{1f1f5}\x{1f1fc}|\x{1f443}\x{1f3fd}|\x{1f932}\x{1f3fe}|\x{1f443}\x{1f3fb}|\x{1f64d}\x{1f3fe}|\x{1f443}\x{1f3fc}|\x{1f932}\x{1f3fd}|\x{1f932}\x{1f3fc}|\x{1f932}\x{1f3fb}|\x{1f1f5}\x{1f1f3}|\x{1f443}\x{1f3fe}|\x{1f1f3}\x{1f1ec}|\x{1f443}\x{1f3ff}|\x{1f450}\x{1f3ff}|\x{1f1f5}\x{1f1f2}|\x{1f450}\x{1f3fe}|\x{1f441}\x{fe0f}|\x{1f1f5}\x{1f1fe}|\x{1f9bb}\x{1f3ff}|\x{1f1f7}\x{1f1fa}|\x{1f466}\x{1f3fd}|\x{1f64c}\x{1f3fe}|\x{1f466}\x{1f3fe}|\x{1f64c}\x{1f3fd}|\x{1f466}\x{1f3ff}|\x{1f3cb}\x{fe0f}|\x{1f467}\x{1f3fb}|\x{1f466}\x{1f3fb}|\x{1f64c}\x{1f3fc}|\x{1f6a3}\x{1f3ff}|\x{1f64c}\x{1f3fb}|\x{1f6a3}\x{1f3fe}|\x{1f6a3}\x{1f3fd}|\x{1f6a3}\x{1f3fc}|\x{1f466}\x{1f3fc}|\x{1f1f7}\x{1f1f8}|\x{1f6b4}\x{1f3fe}|\x{1f476}\x{1f3fe}|\x{1f1f6}\x{1f1e6}|\x{1f1f7}\x{1f1ea}|\x{1f476}\x{1f3fb}|\x{1f476}\x{1f3fc}|\x{1f476}\x{1f3fd}|\x{1f6b4}\x{1f3ff}|\x{1f476}\x{1f3ff}|\x{1f9d2}\x{1f3ff}|\x{1f1f7}\x{1f1f4}|\x{1f64c}\x{1f3ff}|\x{1f9d2}\x{1f3fb}|\x{1f9d2}\x{1f3fc}|\x{1f9d2}\x{1f3fd}|\x{1f9d2}\x{1f3fe}|\x{1f1f5}\x{1f1f1}|\x{1f9bb}\x{1f3fe}|\x{1f6a3}\x{1f3fb}|\x{270d}\x{1f3fd}|\x{1f485}\x{1f3fb}|\x{1f4aa}\x{1f3fd}|\x{1f1f3}\x{1f1f5}|\x{270d}\x{1f3ff}|\x{270d}\x{1f3fe}|\x{1f4aa}\x{1f3fe}|\x{1f4aa}\x{1f3ff}|\x{1f3cb}\x{1f3ff}|\x{1f1f4}\x{1f1f2}|\x{1f1f5}\x{1f1e6}|\x{270d}\x{1f3fc}|\x{1f1f5}\x{1f1ea}|\x{1f9b5}\x{1f3fb}|\x{1f9b5}\x{1f3fc}|\x{1f4aa}\x{1f3fc}|\x{1f4aa}\x{1f3fb}|\x{270d}\x{1f3fb}|\x{1f933}\x{1f3fc}|\x{1f485}\x{1f3fd}|\x{1f485}\x{1f3fe}|\x{1f485}\x{1f3ff}|\x{1f1f3}\x{1f1fa}|\x{1f1f3}\x{1f1f7}|\x{1f933}\x{1f3fb}|\x{1f933}\x{1f3fd}|\x{1f3cb}\x{1f3fe}|\x{1f3cb}\x{1f3fb}|\x{1f933}\x{1f3fe}|\x{1f933}\x{1f3ff}|\x{1f1f3}\x{1f1ff}|\x{1f3cb}\x{1f3fc}|\x{1f3cb}\x{1f3fd}|\x{1f9b5}\x{1f3fd}|\x{1f9b5}\x{1f3fe}|\x{1f9bb}\x{1f3fd}|\x{1f64f}\x{1f3fb}|\x{1f1f5}\x{1f1ed}|\x{1f442}\x{1f3fb}|\x{1f442}\x{1f3fc}|\x{1f64f}\x{1f3fc}|\x{1f442}\x{1f3fd}|\x{1f442}\x{1f3fe}|\x{1f442}\x{1f3ff}|\x{1f9b6}\x{1f3fe}|\x{1f1f5}\x{1f1f0}|\x{1f1f3}\x{1f1f1}|\x{1f1f3}\x{1f1ee}|\x{1f9bb}\x{1f3fb}|\x{1f9bb}\x{1f3fc}|\x{1f932}\x{1f3ff}|\x{1f9b6}\x{1f3ff}|\x{1f64f}\x{1f3fd}|\x{1f1f3}\x{1f1f4}|\x{26f9}\x{1f3ff}|\x{1f9b5}\x{1f3ff}|\x{1f1f5}\x{1f1eb}|\x{270d}\x{fe0f}|\x{1f9b6}\x{1f3fb}|\x{1f9b6}\x{1f3fc}|\x{1f9b6}\x{1f3fd}|\x{26f9}\x{1f3fe}|\x{26f9}\x{fe0f}|\x{26f9}\x{1f3fd}|\x{26f9}\x{1f3fc}|\x{1f64f}\x{1f3ff}|\x{26f9}\x{1f3fb}|\x{1f64f}\x{1f3fe}|\x{1f1f5}\x{1f1ec}|\x{1f1f3}\x{1f1e8}|\x{1f485}\x{1f3fc}|\x{1f44a}\x{1f3fc}|\x{1f44a}\x{1f3fd}|\x{1f3c7}\x{1f3ff}|\x{1f3c4}\x{1f3fe}|\x{1f3c7}\x{1f3fe}|\x{1f3c4}\x{1f3ff}|\x{1f9d4}\x{1f3fb}|\x{270a}\x{1f3ff}|\x{1f1f2}\x{1f1fc}|\x{1f44a}\x{1f3fb}|\x{1f3c7}\x{1f3fd}|\x{1f1f8}\x{1f1e9}|\x{1f44f}\x{1f3ff}|\x{1f3c7}\x{1f3fc}|\x{1f3c7}\x{1f3fb}|\x{1f3c4}\x{1f3fc}|\x{1f44a}\x{1f3fe}|\x{1f1f8}\x{1f1f2}|\x{1f1f8}\x{1f1f3}|\x{1f9d3}\x{1f3fd}|\x{1f44a}\x{1f3ff}|\x{1f468}\x{1f3ff}|\x{1f6b5}\x{1f3ff}|\x{1f9d3}\x{1f3fe}|\x{1f468}\x{1f3fe}|\x{1f6b5}\x{1f3fe}|\x{1f468}\x{1f3fd}|\x{1f468}\x{1f3fc}|\x{1f468}\x{1f3fb}|\x{1f3c4}\x{1f3fd}|\x{1f3c4}\x{1f3fb}|\x{1f1f8}\x{1f1f1}|\x{1f9d3}\x{1f3fc}|\x{1f3c2}\x{1f3fb}|\x{1f3c2}\x{1f3fc}|\x{1f3c2}\x{1f3fd}|\x{1f3c2}\x{1f3fe}|\x{1f3c2}\x{1f3ff}|\x{1f3cc}\x{fe0f}|\x{1f1f8}\x{1f1ef}|\x{1f3cc}\x{1f3fb}|\x{1f3cc}\x{1f3fc}|\x{1f3cc}\x{1f3fd}|\x{1f3cc}\x{1f3fe}|\x{1f3cc}\x{1f3ff}|\x{26f7}\x{fe0f}|\x{1f1f8}\x{1f1ea}|\x{1f9d3}\x{1f3fb}|\x{1f1f8}\x{1f1ee}|\x{1f469}\x{1f3ff}|\x{1f469}\x{1f3fe}|\x{1f469}\x{1f3fd}|\x{1f469}\x{1f3fc}|\x{1f1f8}\x{1f1ed}|\x{1f469}\x{1f3fb}|\x{1f1f8}\x{1f1ec}|\x{1f9d4}\x{1f3ff}|\x{1f9d4}\x{1f3fe}|\x{1f9d4}\x{1f3fd}|\x{1f9d4}\x{1f3fc}|\x{1f6b5}\x{1f3fd}|\x{1f9d3}\x{1f3ff}|\x{1f6b5}\x{1f3fc}|\x{1f475}\x{1f3fd}|\x{1f91c}\x{1f3fd}|\x{1f91c}\x{1f3fe}|\x{1f91c}\x{1f3ff}|\x{1f474}\x{1f3fe}|\x{1f474}\x{1f3ff}|\x{1f1f3}\x{1f1e6}|\x{1f1f8}\x{1f1f7}|\x{1f9d1}\x{1f3fb}|\x{1f475}\x{1f3fb}|\x{1f1f8}\x{1f1e6}|\x{1f44f}\x{1f3fb}|\x{1f475}\x{1f3fc}|\x{1f475}\x{1f3fe}|\x{1f1f8}\x{1f1f4}|\x{1f467}\x{1f3ff}|\x{1f44f}\x{1f3fc}|\x{1f467}\x{1f3fe}|\x{1f475}\x{1f3ff}|\x{1f1f8}\x{1f1f8}|\x{1f64d}\x{1f3fb}|\x{1f64d}\x{1f3fc}|\x{1f467}\x{1f3fd}|\x{1f44f}\x{1f3fd}|\x{1f467}\x{1f3fc}|\x{1f44f}\x{1f3fe}|\x{1f1f7}\x{1f1fc}|\x{1f64d}\x{1f3fd}|\x{1f91c}\x{1f3fc}|\x{1f9d1}\x{1f3fc}|\x{1f9d1}\x{1f3fd}|\x{1f91b}\x{1f3fc}|\x{1f1f8}\x{1f1e8}|\x{1f6b5}\x{1f3fb}|\x{1f471}\x{1f3ff}|\x{1f1f2}\x{1f1fd}|\x{1f474}\x{1f3fb}|\x{1f1f2}\x{1f1fe}|\x{1f471}\x{1f3fe}|\x{1f471}\x{1f3fd}|\x{1f91b}\x{1f3fb}|\x{1f471}\x{1f3fc}|\x{1f91c}\x{1f3fb}|\x{1f471}\x{1f3fb}|\x{1f1f8}\x{1f1f0}|\x{1f474}\x{1f3fd}|\x{1f9d1}\x{1f3fe}|\x{1f91b}\x{1f3fd}|\x{1f9d1}\x{1f3ff}|\x{1f91b}\x{1f3fe}|\x{1f474}\x{1f3fc}|\x{1f1f8}\x{1f1e7}|\x{1f1f2}\x{1f1ff}|\x{1f91b}\x{1f3ff}|\x{1f4c5}|\x{1f58b}|\x{1f5c2}|\x{1f58a}|\x{1f4dd}|\x{1f4c1}|\x{1f4c2}|\x{1f4bc}|\x{1f58d}|\x{1f58c}|\x{2702}|\x{1f4c6}|\x{1f4ce}|\x{1f5dd}|\x{1f4cb}|\x{1f511}|\x{1f510}|\x{1f4cc}|\x{1f4cd}|\x{1f50f}|\x{1fa93}|\x{1f587}|\x{1f4cf}|\x{1f513}|\x{1f512}|\x{1f5d1}|\x{1f5c4}|\x{1f5c3}|\x{1f528}|\x{26cf}|\x{1f5d2}|\x{1f527}|\x{1f5d3}|\x{2696}|\x{1f4c7}|\x{1f5dc}|\x{2699}|\x{1f4c8}|\x{1f529}|\x{1f6e1}|\x{1f4ca}|\x{1f3f9}|\x{1f52b}|\x{2694}|\x{1f4c9}|\x{1f5e1}|\x{1f6e0}|\x{2692}|\x{1f4d0}|\x{1f4d7}|\x{2712}|\x{1f3bb}|\x{1f3b5}|\x{1f3b6}|\x{1f601}|\x{1f399}|\x{1f39a}|\x{1f39b}|\x{1f3a4}|\x{1f3a7}|\x{1f4fb}|\x{1f3b7}|\x{1f3b8}|\x{1f3b9}|\x{1f3ba}|\x{1fa95}|\x{1f515}|\x{1f941}|\x{1f4f1}|\x{1f4f2}|\x{260e}|\x{1f4de}|\x{1f4df}|\x{1f4e0}|\x{1f50b}|\x{1f50c}|\x{1f4bb}|\x{1f5a5}|\x{1f5a8}|\x{2328}|\x{1f3bc}|\x{1f514}|\x{1f5b1}|\x{1f3a9}|\x{1f45d}|\x{1f6cd}|\x{1f392}|\x{1f45e}|\x{1f45f}|\x{1f97e}|\x{1f97f}|\x{1f460}|\x{1f461}|\x{1fa70}|\x{1f462}|\x{1f451}|\x{1f452}|\x{1f393}|\x{1f4ef}|\x{1f9e2}|\x{26d1}|\x{1f9af}|\x{1f484}|\x{1f48d}|\x{1f48e}|\x{1f507}|\x{1f604}|\x{1f508}|\x{1f509}|\x{1f50a}|\x{1f4e2}|\x{1f4e3}|\x{1f45c}|\x{1f5b2}|\x{270f}|\x{1f4b1}|\x{1f5de}|\x{1f4d1}|\x{1f516}|\x{1f3f7}|\x{1f4b0}|\x{1f4b4}|\x{1f4b5}|\x{1f4b6}|\x{1f4b7}|\x{1f4b8}|\x{1f4b3}|\x{1f9fe}|\x{1f4b9}|\x{1f4b2}|\x{1f4c4}|\x{2709}|\x{1f4e7}|\x{1f4e8}|\x{1f4e9}|\x{1f4e4}|\x{1f4e5}|\x{1f4e6}|\x{1f4eb}|\x{1f4ea}|\x{1f4ec}|\x{1f4ed}|\x{1f4ee}|\x{1f5f3}|\x{1f4f0}|\x{1f4dc}|\x{1f4bd}|\x{1f50d}|\x{1f4be}|\x{1f4bf}|\x{1f4c0}|\x{1f9ee}|\x{1f3a5}|\x{1f39e}|\x{1f4fd}|\x{1f3ac}|\x{1f4fa}|\x{1f4f7}|\x{1f4f8}|\x{1f4f9}|\x{1f4fc}|\x{1f50e}|\x{1f4c3}|\x{1f56f}|\x{1f4a1}|\x{1f526}|\x{1f3ee}|\x{1fa94}|\x{1f4d4}|\x{1f4d5}|\x{1f4d6}|\x{1f4d8}|\x{1f4d9}|\x{1f4da}|\x{1f4d3}|\x{1f4d2}|\x{1f4ff}|\x{2795}|\x{1f517}|\x{1f521}|\x{263a}|\x{1f617}|\x{1f618}|\x{1f929}|\x{1f60d}|\x{1f970}|\x{1f607}|\x{1f60a}|\x{1f609}|\x{1f643}|\x{1f642}|\x{1f51f}|\x{1f520}|\x{1f522}|\x{00ae}|\x{1f523}|\x{1f524}|\x{1f170}|\x{1f18e}|\x{1f171}|\x{1f191}|\x{1f192}|\x{1f193}|\x{2139}|\x{1f194}|\x{24c2}|\x{1f195}|\x{1f196}|\x{1f17e}|\x{2122}|\x{00a9}|\x{1f17f}|\x{274c}|\x{2642}|\x{2695}|\x{267e}|\x{267b}|\x{269c}|\x{1f531}|\x{1f4db}|\x{1f530}|\x{2b55}|\x{2705}|\x{2611}|\x{2714}|\x{2716}|\x{274e}|\x{3030}|\x{2796}|\x{2797}|\x{27b0}|\x{27bf}|\x{303d}|\x{2733}|\x{2734}|\x{2747}|\x{203c}|\x{2049}|\x{2753}|\x{2754}|\x{2755}|\x{2757}|\x{1f197}|\x{1f198}|\x{1f4f4}|\x{1f53a}|\x{1f7eb}|\x{2b1b}|\x{2b1c}|\x{25fc}|\x{25fb}|\x{25fe}|\x{25fd}|\x{25aa}|\x{25ab}|\x{1f536}|\x{1f537}|\x{1f538}|\x{1f539}|\x{1f53b}|\x{1f7e6}|\x{1f4a0}|\x{1f518}|\x{1f533}|\x{1f532}|\x{1f3c1}|\x{1f6a9}|\x{1f38c}|\x{1f3f4}|\x{1f3f3}|\x{1f602}|\x{1f923}|\x{1f605}|\x{1f606}|\x{1f45a}|\x{1f7ea}|\x{1f7e9}|\x{1f199}|\x{1f233}|\x{1f19a}|\x{1f201}|\x{1f202}|\x{1f237}|\x{1f236}|\x{1f22f}|\x{1f250}|\x{1f239}|\x{1f21a}|\x{1f232}|\x{1f251}|\x{1f238}|\x{1f234}|\x{3297}|\x{1f7e8}|\x{3299}|\x{1f23a}|\x{1f235}|\x{1f534}|\x{1f7e0}|\x{1f7e1}|\x{1f7e2}|\x{1f535}|\x{1f7e3}|\x{1f7e4}|\x{26ab}|\x{26aa}|\x{1f7e5}|\x{1f7e7}|\x{2640}|\x{1f4f3}|\x{26d3}|\x{1f6c4}|\x{26b1}|\x{1f5ff}|\x{1f3e7}|\x{1f6ae}|\x{1f6b0}|\x{267f}|\x{1f6b9}|\x{1f6ba}|\x{1f6bb}|\x{1f6bc}|\x{1f6be}|\x{1f6c2}|\x{1f6c3}|\x{1f6c5}|\x{1f6ac}|\x{26a0}|\x{1f6b8}|\x{26d4}|\x{1f6ab}|\x{1f6b3}|\x{1f6ad}|\x{1f6af}|\x{1f6b1}|\x{1f6b7}|\x{1f4f5}|\x{1f51e}|\x{2622}|\x{2623}|\x{2b06}|\x{26b0}|\x{1f6d2}|\x{27a1}|\x{1fa7a}|\x{1f9f0}|\x{1f9f2}|\x{2697}|\x{1f9ea}|\x{1f9eb}|\x{1f9ec}|\x{1f52c}|\x{1f52d}|\x{1f4e1}|\x{1f489}|\x{1fa78}|\x{1f48a}|\x{1fa79}|\x{1f6aa}|\x{1f9ef}|\x{1f6cf}|\x{1f6cb}|\x{1fa91}|\x{1f6bd}|\x{1f6bf}|\x{1f6c1}|\x{1fa92}|\x{1f9f4}|\x{1f9f7}|\x{1f9f9}|\x{1f9fa}|\x{1f9fb}|\x{1f9fc}|\x{1f9fd}|\x{2197}|\x{2198}|\x{1f4f6}|\x{23ed}|\x{264d}|\x{264e}|\x{264f}|\x{2650}|\x{2651}|\x{2652}|\x{2653}|\x{26ce}|\x{1f500}|\x{1f501}|\x{1f502}|\x{25b6}|\x{23e9}|\x{23ef}|\x{264b}|\x{25c0}|\x{23ea}|\x{23ee}|\x{1f53c}|\x{23eb}|\x{1f53d}|\x{23ec}|\x{23f8}|\x{23f9}|\x{23fa}|\x{23cf}|\x{1f3a6}|\x{1f505}|\x{1f506}|\x{264c}|\x{264a}|\x{2b07}|\x{1f51b}|\x{2199}|\x{2b05}|\x{2196}|\x{2195}|\x{2194}|\x{21a9}|\x{21aa}|\x{2934}|\x{2935}|\x{1f503}|\x{1f504}|\x{1f519}|\x{1f51a}|\x{1f51c}|\x{2649}|\x{1f51d}|\x{1f6d0}|\x{269b}|\x{1f549}|\x{2721}|\x{2638}|\x{262f}|\x{271d}|\x{2626}|\x{262a}|\x{262e}|\x{1f54e}|\x{1f52f}|\x{2648}|\x{1f45b}|\x{1f942}|\x{1f459}|\x{1f9b0}|\x{1f9ae}|\x{1f415}|\x{1f436}|\x{1f9a7}|\x{1f98d}|\x{1f412}|\x{1f435}|\x{1f9b2}|\x{1f9b3}|\x{1f9b1}|\x{1f3ff}|\x{1f429}|\x{1f3fe}|\x{1f3fd}|\x{1f3fc}|\x{1f3fb}|\x{1f463}|\x{1f465}|\x{1f464}|\x{1f5e3}|\x{1f619}|\x{1f60b}|\x{1f61a}|\x{1f43a}|\x{1f61c}|\x{1f98c}|\x{1f411}|\x{1f40f}|\x{1f43d}|\x{1f417}|\x{1f416}|\x{1f437}|\x{1f404}|\x{1f403}|\x{1f402}|\x{1f42e}|\x{1f993}|\x{1f98a}|\x{1f984}|\x{1f40e}|\x{1f434}|\x{1f406}|\x{1f405}|\x{1f42f}|\x{1f981}|\x{1f408}|\x{1f431}|\x{1f99d}|\x{1f61b}|\x{1f92a}|\x{1f42a}|\x{1f60e}|\x{1f491}|\x{1f927}|\x{1f975}|\x{1f976}|\x{1f974}|\x{1f635}|\x{1f92f}|\x{1f48f}|\x{1f920}|\x{1f973}|\x{1f913}|\x{1f922}|\x{1f9d0}|\x{1f615}|\x{1f61f}|\x{1f641}|\x{2639}|\x{1f62e}|\x{1f62f}|\x{1f632}|\x{1f633}|\x{1f97a}|\x{1f92e}|\x{1f915}|\x{1f61d}|\x{1f60f}|\x{1f911}|\x{1f917}|\x{1f92d}|\x{1f92b}|\x{1f914}|\x{1f910}|\x{1f928}|\x{1f610}|\x{1f611}|\x{1f636}|\x{1f612}|\x{1f912}|\x{1f644}|\x{1f62c}|\x{1f925}|\x{1f60c}|\x{1f614}|\x{1f62a}|\x{1f924}|\x{1f46a}|\x{1f634}|\x{1f637}|\x{1f410}|\x{1f42b}|\x{1f627}|\x{1f577}|\x{1f940}|\x{1f339}|\x{1f3f5}|\x{1f4ae}|\x{1f338}|\x{1f490}|\x{1f9a0}|\x{1f99f}|\x{1f982}|\x{1f578}|\x{1f997}|\x{1f33b}|\x{1f41e}|\x{1f41d}|\x{1f41c}|\x{1f41b}|\x{1f98b}|\x{1f40c}|\x{1f41a}|\x{1f419}|\x{1f988}|\x{1f421}|\x{1f33a}|\x{1f33c}|\x{1f41f}|\x{1f343}|\x{1f34f}|\x{1f34e}|\x{1f96d}|\x{1f34d}|\x{1f34c}|\x{1f34b}|\x{1f34a}|\x{1f349}|\x{1f348}|\x{1f347}|\x{1f342}|\x{1f337}|\x{1f341}|\x{1f340}|\x{2618}|\x{1f33f}|\x{1f33e}|\x{1f335}|\x{1f334}|\x{1f333}|\x{1f332}|\x{1f331}|\x{1f420}|\x{1f42c}|\x{1f999}|\x{1f994}|\x{1f43e}|\x{1f9a1}|\x{1f998}|\x{1f9a8}|\x{1f9a6}|\x{1f9a5}|\x{1f43c}|\x{1f428}|\x{1f43b}|\x{1f987}|\x{1f43f}|\x{1f414}|\x{1f407}|\x{1f430}|\x{1f439}|\x{1f400}|\x{1f401}|\x{1f42d}|\x{1f99b}|\x{1f98f}|\x{1f418}|\x{1f992}|\x{1f983}|\x{1f413}|\x{1f40b}|\x{1f99c}|\x{1f433}|\x{1f996}|\x{1f995}|\x{1f409}|\x{1f432}|\x{1f40d}|\x{1f98e}|\x{1f422}|\x{1f40a}|\x{1f438}|\x{1f99a}|\x{1f423}|\x{1f9a9}|\x{1f989}|\x{1f9a2}|\x{1f986}|\x{1f985}|\x{1f54a}|\x{1f427}|\x{1f426}|\x{1f425}|\x{1f424}|\x{1f626}|\x{1f628}|\x{1f351}|\x{1f467}|\x{1f9b7}|\x{1f9b4}|\x{1f440}|\x{1f3ca}|\x{1f441}|\x{1f445}|\x{1f444}|\x{1f476}|\x{1f9d2}|\x{1f466}|\x{1f6a3}|\x{1f443}|\x{1f9d1}|\x{1f471}|\x{1f468}|\x{1f9d4}|\x{1f3c4}|\x{1f469}|\x{1f603}|\x{1f9d3}|\x{1f3cc}|\x{1f3c2}|\x{1f9e0}|\x{1f9bb}|\x{1f3c7}|\x{1f91d}|\x{270a}|\x{1f44a}|\x{1f6b5}|\x{1f91b}|\x{1f91c}|\x{1f44f}|\x{1f64c}|\x{1f6b4}|\x{1f450}|\x{1f932}|\x{1f64f}|\x{1f442}|\x{270d}|\x{1f485}|\x{1f3cb}|\x{1f933}|\x{1f4aa}|\x{1f9be}|\x{1f9bf}|\x{1f9b5}|\x{1f9b6}|\x{26f9}|\x{26f7}|\x{1f93a}|\x{1f44d}|\x{1f385}|\x{1f473}|\x{1f472}|\x{1f6b6}|\x{1f9d5}|\x{1f935}|\x{1f470}|\x{1f930}|\x{1f487}|\x{1f931}|\x{1f47c}|\x{1f936}|\x{1f9cd}|\x{1f486}|\x{1f9b8}|\x{1f9df}|\x{1f9de}|\x{1f9b9}|\x{1f9d9}|\x{1f9da}|\x{1f9dd}|\x{1f9db}|\x{1f9dc}|\x{1f478}|\x{1f934}|\x{1f474}|\x{1f57a}|\x{1f475}|\x{1f64d}|\x{1f64e}|\x{1f9d7}|\x{1f645}|\x{1f646}|\x{1f481}|\x{1f9d6}|\x{1f46f}|\x{1f574}|\x{1f483}|\x{1f477}|\x{1f64b}|\x{1f9cf}|\x{1f647}|\x{1f3c3}|\x{1f926}|\x{1f937}|\x{1f46e}|\x{1f575}|\x{1f9ce}|\x{1f482}|\x{1f44e}|\x{1f938}|\x{1f630}|\x{1f63f}|\x{1f47d}|\x{1f47e}|\x{1f916}|\x{1f63a}|\x{1f638}|\x{1f639}|\x{1f63b}|\x{1f63c}|\x{1f63d}|\x{1f640}|\x{1f63e}|\x{1f47a}|\x{1f648}|\x{1f649}|\x{1f64a}|\x{1f48b}|\x{1f46d}|\x{1f48c}|\x{1f498}|\x{1f49d}|\x{1f496}|\x{1f497}|\x{1f47b}|\x{1f479}|\x{1f49e}|\x{1f62b}|\x{1f625}|\x{1f46c}|\x{1f622}|\x{1f62d}|\x{1f631}|\x{1f616}|\x{1f623}|\x{1f61e}|\x{1f613}|\x{1f629}|\x{1f971}|\x{1f921}|\x{1f624}|\x{1f621}|\x{1f620}|\x{1f92c}|\x{1f608}|\x{1f47f}|\x{1f480}|\x{2620}|\x{1f4a9}|\x{1f46b}|\x{1f493}|\x{1f495}|\x{261d}|\x{1f91e}|\x{1f44b}|\x{1f91a}|\x{1f9d8}|\x{1f590}|\x{270b}|\x{1f596}|\x{1f44c}|\x{1f939}|\x{1f90f}|\x{270c}|\x{1f91f}|\x{1f4ad}|\x{1f93e}|\x{1f918}|\x{1f919}|\x{1f448}|\x{1f449}|\x{1f93d}|\x{1f446}|\x{1f93c}|\x{1f595}|\x{1f447}|\x{1f4a4}|\x{1f5ef}|\x{1f49f}|\x{1f90d}|\x{2763}|\x{1f494}|\x{2764}|\x{1f9e1}|\x{1f49b}|\x{1f49a}|\x{1f499}|\x{1f49c}|\x{1f90e}|\x{1f5a4}|\x{1f4af}|\x{1f5e8}|\x{1f4a2}|\x{1f4a5}|\x{1f4ab}|\x{1f6cc}|\x{1f6c0}|\x{1f4a6}|\x{1f4a8}|\x{1f573}|\x{1f4a3}|\x{1f4ac}|\x{1f350}|\x{1f352}|\x{1fa73}|\x{1f313}|\x{1f321}|\x{1f31c}|\x{1f31b}|\x{1f31a}|\x{1f319}|\x{1f318}|\x{1f317}|\x{1f316}|\x{1f315}|\x{1f314}|\x{1f312}|\x{1f31d}|\x{1f311}|\x{1f600}|\x{1f55a}|\x{1f565}|\x{1f559}|\x{1f564}|\x{1f558}|\x{1f563}|\x{1f557}|\x{1f562}|\x{2600}|\x{1f31e}|\x{1f561}|\x{1f328}|\x{26f1}|\x{2614}|\x{2602}|\x{1f302}|\x{1f308}|\x{1f300}|\x{1f32c}|\x{1f32b}|\x{1f32a}|\x{1f329}|\x{1f327}|\x{1fa90}|\x{1f326}|\x{1f325}|\x{1f324}|\x{26c8}|\x{26c5}|\x{2601}|\x{1f30c}|\x{1f320}|\x{1f31f}|\x{2b50}|\x{1f556}|\x{1f555}|\x{2744}|\x{1f6f3}|\x{1f681}|\x{1f4ba}|\x{1fa82}|\x{1f6ec}|\x{1f6eb}|\x{1f6e9}|\x{2708}|\x{1f6a2}|\x{1f6e5}|\x{26f4}|\x{1f6a4}|\x{1f6a0}|\x{1f6f6}|\x{26f5}|\x{2693}|\x{1f6a7}|\x{1f6d1}|\x{1f6a6}|\x{1f6a5}|\x{1f6a8}|\x{26fd}|\x{1f6e2}|\x{1f69f}|\x{1f6a1}|\x{1f560}|\x{1f55b}|\x{1f554}|\x{1f55f}|\x{1f553}|\x{1f55e}|\x{1f552}|\x{1f55d}|\x{1f551}|\x{1f55c}|\x{1f550}|\x{1f567}|\x{1f570}|\x{1f6f0}|\x{23f2}|\x{23f1}|\x{23f0}|\x{231a}|\x{23f3}|\x{231b}|\x{1f9f3}|\x{1f6ce}|\x{1f6f8}|\x{1f680}|\x{26a1}|\x{2603}|\x{1f6e3}|\x{1f9ff}|\x{2663}|\x{2666}|\x{2665}|\x{2660}|\x{1f9f8}|\x{1f9e9}|\x{1f3b2}|\x{1f3b0}|\x{1f579}|\x{1f3ae}|\x{1f52e}|\x{1f0cf}|\x{1f3b1}|\x{1fa81}|\x{1fa80}|\x{1f3af}|\x{1f94c}|\x{1f6f7}|\x{1f3bf}|\x{1f3bd}|\x{1f93f}|\x{1f3a3}|\x{265f}|\x{1f004}|\x{26f3}|\x{1f455}|\x{1fa72}|\x{1fa71}|\x{1f97b}|\x{1f458}|\x{1f457}|\x{1f9e6}|\x{1f9e5}|\x{1f9e4}|\x{1f9e3}|\x{1f456}|\x{1f454}|\x{1f3b4}|\x{1f9ba}|\x{1f97c}|\x{1f97d}|\x{1f576}|\x{1f453}|\x{1f9f6}|\x{1f9f5}|\x{1f3a8}|\x{1f5bc}|\x{1f3ad}|\x{26f8}|\x{1f945}|\x{26c4}|\x{1f389}|\x{1f381}|\x{1f380}|\x{1f9e7}|\x{1f391}|\x{1f390}|\x{1f38f}|\x{1f38e}|\x{1f38d}|\x{1f38b}|\x{1f38a}|\x{1f388}|\x{1f39f}|\x{2728}|\x{1f9e8}|\x{1f387}|\x{1f386}|\x{1f384}|\x{1f383}|\x{1f30a}|\x{1f4a7}|\x{1f525}|\x{2604}|\x{1f397}|\x{1f3ab}|\x{1f94b}|\x{1f3c9}|\x{1f94a}|\x{1f3f8}|\x{1f3d3}|\x{1f94d}|\x{1f3d2}|\x{1f3d1}|\x{1f3cf}|\x{1f3b3}|\x{1f94f}|\x{1f3be}|\x{1f3c8}|\x{1f396}|\x{1f3d0}|\x{1f3c0}|\x{1f94e}|\x{26be}|\x{26bd}|\x{1f949}|\x{1f948}|\x{1f947}|\x{1f3c5}|\x{1f3c6}|\x{1f6e4}|\x{1f68f}|\x{1f353}|\x{1f960}|\x{1f369}|\x{1f368}|\x{1f367}|\x{1f366}|\x{1f9aa}|\x{1f991}|\x{1f990}|\x{1f99e}|\x{1f980}|\x{1f961}|\x{1f95f}|\x{1f382}|\x{1f361}|\x{1f96e}|\x{1f365}|\x{1f364}|\x{1f363}|\x{1f362}|\x{1f360}|\x{1f35d}|\x{1f35c}|\x{1f35b}|\x{1f36a}|\x{1f370}|\x{1f359}|\x{1f37e}|\x{1f9ca}|\x{1f9c9}|\x{1f9c3}|\x{1f964}|\x{1f943}|\x{1f37b}|\x{1f37a}|\x{1f379}|\x{1f378}|\x{1f377}|\x{1f376}|\x{1f9c1}|\x{1f375}|\x{2615}|\x{1f95b}|\x{1f37c}|\x{1f36f}|\x{1f36e}|\x{1f36d}|\x{1f36c}|\x{1f36b}|\x{1f967}|\x{1f35a}|\x{1f358}|\x{1f37d}|\x{1f966}|\x{1f96f}|\x{1f968}|\x{1f956}|\x{1f950}|\x{1f35e}|\x{1f330}|\x{1f95c}|\x{1f344}|\x{1f9c5}|\x{1f9c4}|\x{1f96c}|\x{1f9c7}|\x{1f952}|\x{1f336}|\x{1f33d}|\x{1f955}|\x{1f954}|\x{1f346}|\x{1f951}|\x{1f965}|\x{1f345}|\x{1f95d}|\x{1f95e}|\x{1f9c0}|\x{1f371}|\x{1f9c6}|\x{1f96b}|\x{1f9c2}|\x{1f9c8}|\x{1f37f}|\x{1f957}|\x{1f963}|\x{1f372}|\x{1f958}|\x{1f373}|\x{1f95a}|\x{1f959}|\x{1f356}|\x{1f32f}|\x{1f32e}|\x{1f96a}|\x{1f32d}|\x{1f355}|\x{1f35f}|\x{1f354}|\x{1f953}|\x{1f969}|\x{1f357}|\x{1f962}|\x{1f374}|\x{1f6f9}|\x{1f3aa}|\x{1f69d}|\x{1f68a}|\x{1f689}|\x{1f688}|\x{1f687}|\x{1f686}|\x{1f685}|\x{1f684}|\x{1f683}|\x{1f682}|\x{1f488}|\x{1f68b}|\x{1f3a2}|\x{1f3a1}|\x{1f3a0}|\x{2668}|\x{1f309}|\x{1f307}|\x{1f306}|\x{1f305}|\x{1f304}|\x{1f3d9}|\x{1f69e}|\x{1f68c}|\x{1f301}|\x{1f69a}|\x{1f6f4}|\x{1f6b2}|\x{1f6fa}|\x{1f9bc}|\x{1f9bd}|\x{1f6f5}|\x{1f3cd}|\x{1f3ce}|\x{1f69c}|\x{1f69b}|\x{1f699}|\x{1f68d}|\x{1f698}|\x{1f697}|\x{1f696}|\x{1f695}|\x{1f694}|\x{1f693}|\x{1f692}|\x{1f691}|\x{1f690}|\x{1f68e}|\x{1f303}|\x{26fa}|\x{1f944}|\x{1f30b}|\x{1f9f1}|\x{1f3d7}|\x{1f3db}|\x{1f3df}|\x{1f3de}|\x{1f3dd}|\x{1f3dc}|\x{1f3d6}|\x{1f3d5}|\x{1f5fb}|\x{26f0}|\x{1f3da}|\x{1f3d4}|\x{1f9ed}|\x{1f5fe}|\x{1f5fa}|\x{1f310}|\x{1f30f}|\x{1f30e}|\x{1f30d}|\x{1f3fa}|\x{1f52a}|\x{1f3d8}|\x{1f3e0}|\x{26f2}|\x{1f3ef}|\x{1f54b}|\x{26e9}|\x{1f54d}|\x{1f6d5}|\x{1f54c}|\x{26ea}|\x{1f5fd}|\x{1f5fc}|\x{1f492}|\x{1f3f0}|\x{1f3ed}|\x{1f3e1}|\x{1f3ec}|\x{1f3eb}|\x{1f3ea}|\x{1f3e9}|\x{1f3e8}|\x{1f3e6}|\x{1f3e5}|\x{1f3e4}|\x{1f3e3}|\x{1f3e2}|\x{1f566}/u';
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php
new file mode 100644
index 00000000..71cce110
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Extractor.php
@@ -0,0 +1,572 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Extractor Class
+ *
+ * Parses tweets and extracts URLs, usernames, username/list pairs and
+ * hashtags.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Extractor
+{
+
+ /**
+ * The maximum url length that the Twitter backend supports.
+ */
+ const MAX_URL_LENGTH = 4096;
+
+ /**
+ * The backend adds http:// for normal links and https to *.twitter.com URLs (it also rewrites http to https for
+ * URLs matching *.twitter.com). We're better off adding https:// all the time.
+ * By making the assumption that URL_GROUP_PROTOCOL_LENGTH is https, the trade off is we'll disallow a http URL
+ * that is 4096 characters.
+ */
+ const URL_GROUP_PROTOCOL_LENGTH = 4104; // https:// + MAX_URL_LENGTH
+
+ /**
+ * The maximum t.co path length that the Twitter backend supports.
+ */
+ const MAX_TCO_SLUG_LENGTH = 40;
+
+ /**
+ * The maximum hostname length that the ASCII domain.
+ */
+ const MAX_ASCII_HOSTNAME_LENGTH = 63;
+
+ /**
+ * @var boolean
+ */
+ protected $extractURLWithoutProtocol = true;
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @see __construct()
+ *
+ * @return Extractor
+ */
+ public static function create()
+ {
+ return new self();
+ }
+
+ /**
+ * Reads in a tweet to be parsed and extracts elements from it.
+ *
+ * Extracts various parts of a tweet including URLs, usernames, hashtags...
+ */
+ public function __construct()
+ {
+ }
+
+ /**
+ * Extracts all parts of a tweet and returns an associative array containing
+ * the extracted elements.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The elements in the tweet.
+ */
+ public function extract($tweet)
+ {
+ return array(
+ 'hashtags' => $this->extractHashtags($tweet),
+ 'cashtags' => $this->extractCashtags($tweet),
+ 'urls' => $this->extractURLs($tweet),
+ 'mentions' => $this->extractMentionedScreennames($tweet),
+ 'replyto' => $this->extractReplyScreenname($tweet),
+ 'hashtags_with_indices' => $this->extractHashtagsWithIndices($tweet),
+ 'urls_with_indices' => $this->extractURLsWithIndices($tweet),
+ 'mentions_with_indices' => $this->extractMentionedScreennamesWithIndices($tweet),
+ );
+ }
+
+ /**
+ * Extract URLs, @mentions, lists and #hashtag from a given text/tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array list of extracted entities
+ */
+ public function extractEntitiesWithIndices($tweet)
+ {
+ $entities = array();
+ $entities = array_merge($entities, $this->extractURLsWithIndices($tweet));
+ $entities = array_merge($entities, $this->extractHashtagsWithIndices($tweet, false));
+ $entities = array_merge($entities, $this->extractMentionsOrListsWithIndices($tweet));
+ $entities = array_merge($entities, $this->extractCashtagsWithIndices($tweet));
+ $entities = $this->removeOverlappingEntities($entities);
+ return $entities;
+ }
+
+ /**
+ * Extracts all the hashtags from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The hashtag elements in the tweet.
+ */
+ public function extractHashtags($tweet)
+ {
+ $hashtagsOnly = array();
+ $hashtagsWithIndices = $this->extractHashtagsWithIndices($tweet);
+
+ foreach ($hashtagsWithIndices as $hashtagWithIndex) {
+ $hashtagsOnly[] = $hashtagWithIndex['hashtag'];
+ }
+ return $hashtagsOnly;
+ }
+
+ /**
+ * Extracts all the cashtags from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The cashtag elements in the tweet.
+ */
+ public function extractCashtags($tweet)
+ {
+ $cashtagsOnly = array();
+ $cashtagsWithIndices = $this->extractCashtagsWithIndices($tweet);
+
+ foreach ($cashtagsWithIndices as $cashtagWithIndex) {
+ $cashtagsOnly[] = $cashtagWithIndex['cashtag'];
+ }
+ return $cashtagsOnly;
+ }
+
+ /**
+ * Extracts all the URLs from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The URL elements in the tweet.
+ */
+ public function extractURLs($tweet)
+ {
+ $urlsOnly = array();
+ $urlsWithIndices = $this->extractURLsWithIndices($tweet);
+
+ foreach ($urlsWithIndices as $urlWithIndex) {
+ $urlsOnly[] = $urlWithIndex['url'];
+ }
+ return $urlsOnly;
+ }
+
+ /**
+ * Extract all the usernames from the tweet.
+ *
+ * A mention is an occurrence of a username anywhere in a tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The usernames elements in the tweet.
+ */
+ public function extractMentionedScreennames($tweet)
+ {
+ $usernamesOnly = array();
+ $mentionsWithIndices = $this->extractMentionsOrListsWithIndices($tweet);
+
+ foreach ($mentionsWithIndices as $mentionWithIndex) {
+ if (empty($mentionWithIndex['screen_name'])) {
+ continue;
+ }
+ $usernamesOnly[] = $mentionWithIndex['screen_name'];
+ }
+ return $usernamesOnly;
+ }
+
+ /**
+ * Extract all the usernames replied to from the tweet.
+ *
+ * A reply is an occurrence of a username at the beginning of a tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The usernames replied to in a tweet.
+ */
+ public function extractReplyScreenname($tweet)
+ {
+ $matched = preg_match(Regex::getValidReplyMatcher(), $tweet, $matches);
+ # Check username ending in
+ if ($matched && preg_match(Regex::getEndMentionMatcher(), $matches[2])) {
+ $matched = false;
+ }
+ return $matched ? $matches[1] : null;
+ }
+
+ /**
+ * Extracts all the emoji and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The emoji chars in the tweet.
+ */
+ public function extractEmojiWithIndices($tweet)
+ {
+ preg_match_all(EmojiRegex::VALID_EMOJI_PATTERN, $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $entities = array();
+
+ foreach ($matches as $match) {
+ list($emoji) = $match;
+ list($emojiChar, $offset) = $emoji;
+ $startPosition = StringUtils::strlen(substr($tweet, 0, $offset));
+ $endPosition = $startPosition + StringUtils::strlen($emojiChar) - 1;
+
+ $entities[] = array(
+ 'emoji' => $emoji[0],
+ 'indices' => array($startPosition, $endPosition)
+ );
+ }
+
+ return $entities;
+ }
+
+ /**
+ * Extracts all the hashtags and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @param boolean $checkUrlOverlap if true, check if extracted hashtags overlap URLs and remove overlapping ones
+ * @return array The hashtag elements in the tweet.
+ */
+ public function extractHashtagsWithIndices($tweet, $checkUrlOverlap = true)
+ {
+ if (!preg_match('/[##]/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidHashtagMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $tags = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $hash, $hashtag, $outer) = array_pad($match, 3, array('', 0));
+ $start_position = $hash[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $hash[1])) : $hash[1];
+ $end_position = $start_position + StringUtils::strlen($hash[0] . $hashtag[0]);
+
+ if (preg_match(Regex::getEndHashtagMatcher(), $outer[0])) {
+ continue;
+ }
+
+ $tags[] = array(
+ 'hashtag' => $hashtag[0],
+ 'indices' => array($start_position, $end_position)
+ );
+ }
+
+ if (!$checkUrlOverlap) {
+ return $tags;
+ }
+
+ # check url overlap
+ $urls = $this->extractURLsWithIndices($tweet);
+ $entities = $this->removeOverlappingEntities(array_merge($tags, $urls));
+
+ $validTags = array();
+ foreach ($entities as $entity) {
+ if (empty($entity['hashtag'])) {
+ continue;
+ }
+ $validTags[] = $entity;
+ }
+
+ return $validTags;
+ }
+
+ /**
+ * Extracts all the cashtags and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The cashtag elements in the tweet.
+ */
+ public function extractCashtagsWithIndices($tweet)
+ {
+ if (!preg_match('/\$/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidCashtagMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $tags = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $dollar, $cash_text, $outer) = array_pad($match, 3, array('', 0));
+ $start_position = $dollar[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $dollar[1])) : $dollar[1];
+ $end_position = $start_position + StringUtils::strlen($dollar[0] . $cash_text[0]);
+
+ if (preg_match(Regex::getEndHashtagMatcher(), $outer[0])) {
+ continue;
+ }
+
+ $tags[] = array(
+ 'cashtag' => $cash_text[0],
+ 'indices' => array($start_position, $end_position)
+ );
+ }
+
+ return $tags;
+ }
+
+ /**
+ * Extracts all the URLs and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The URLs elements in the tweet.
+ */
+ public function extractURLsWithIndices($tweet)
+ {
+ $needle = $this->extractURLWithoutProtocol() ? '.' : ':';
+ if (strpos($tweet, $needle) === false) {
+ return array();
+ }
+
+ $urls = array();
+ preg_match_all(Regex::getValidUrlMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+
+ foreach ($matches as $match) {
+ list($all, $before, $url, $protocol, $domain, $port, $path, $query) = array_pad($match, 8, array(''));
+ $start_position = $url[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $url[1])) : $url[1];
+ $end_position = $start_position + StringUtils::strlen($url[0]);
+
+ $all = $all[0];
+ $before = $before[0];
+ $url = $url[0];
+ $protocol = $protocol[0];
+ $domain = $domain[0];
+ $port = $port[0];
+ $path = $path[0];
+ $query = $query[0];
+
+ // If protocol is missing and domain contains non-ASCII characters,
+ // extract ASCII-only domains.
+ if (empty($protocol)) {
+ if (
+ !$this->extractURLWithoutProtocol
+ || preg_match(Regex::getInvalidUrlWithoutProtocolPrecedingCharsMatcher(), $before)
+ ) {
+ continue;
+ }
+
+ $last_url = null;
+ $ascii_end_position = 0;
+
+ if (preg_match(Regex::getValidAsciiDomainMatcher(), $domain, $asciiDomain)) {
+ // check hostname length
+ if (
+ isset($asciiDomain[1])
+ && strlen(rtrim($asciiDomain[1], '.')) > static::MAX_ASCII_HOSTNAME_LENGTH
+ ) {
+ continue;
+ }
+
+ $asciiDomain[0] = preg_replace('/' . preg_quote($domain, '/') . '/u', $asciiDomain[0], $url);
+ $ascii_start_position = StringUtils::strpos($domain, $asciiDomain[0], $ascii_end_position);
+ $ascii_end_position = $ascii_start_position + StringUtils::strlen($asciiDomain[0]);
+ $last_url = array(
+ 'url' => $asciiDomain[0],
+ 'indices' => array(
+ $start_position + $ascii_start_position,
+ $start_position + $ascii_end_position
+ ),
+ );
+ if (
+ !empty($path)
+ || preg_match(Regex::getValidSpecialShortDomainMatcher(), $asciiDomain[0])
+ || !preg_match(Regex::getInvalidCharactersMatcher(), $asciiDomain[0])
+ ) {
+ $urls[] = $last_url;
+ }
+ }
+
+ // no ASCII-only domain found. Skip the entire URL
+ if (empty($last_url)) {
+ continue;
+ }
+
+ // $last_url only contains domain. Need to add path and query if they exist.
+ if (!empty($path)) {
+ // last_url was not added. Add it to urls here.
+ $last_url['url'] = preg_replace('/' . preg_quote($domain, '/') . '/u', $last_url['url'], $url);
+ $last_url['indices'][1] = $end_position;
+ }
+ } else {
+ // In the case of t.co URLs, don't allow additional path characters
+ if (preg_match(Regex::getValidTcoUrlMatcher(), $url, $tcoUrlMatches)) {
+ list($url, $tcoUrlSlug) = $tcoUrlMatches;
+ $end_position = $start_position + StringUtils::strlen($url);
+
+ // In the case of t.co URLs, don't allow additional path characters and
+ // ensure that the slug is under 40 chars.
+ if (strlen($tcoUrlSlug) > static::MAX_TCO_SLUG_LENGTH) {
+ continue;
+ }
+ }
+ if ($this->isValidHostAndLength(StringUtils::strlen($url), $protocol, $domain)) {
+ $urls[] = array(
+ 'url' => $url,
+ 'indices' => array($start_position, $end_position),
+ );
+ }
+ }
+ }
+
+ return $urls;
+ }
+
+ /**
+ * Verifies that the host name adheres to RFC 3490 and 1035
+ * Also, verifies that the entire url (including protocol) doesn't exceed MAX_URL_LENGTH
+ *
+ * @param int $originalUrlLength The length of the entire URL, including protocol if any
+ * @param string $protocol The protocol used
+ * @param string $host The hostname to check validity of
+ * @return bool true if the host is valid
+ */
+ public function isValidHostAndLength($originalUrlLength, $protocol, $host)
+ {
+ if (empty($host)) {
+ return false;
+ }
+
+ $originalHostLength = StringUtils::strlen($host);
+
+ // Use IDN for all host names, if the host is all ASCII, it returns unchanged.
+ // It comes with an added benefit of checking the host length to be between 1 to 63 characters.
+ $encodedHost = StringUtils::idnToAscii($host);
+ if ($encodedHost === false || empty($encodedHost)) {
+ return false;
+ }
+
+ $punycodeEncodedHostLength = StringUtils::strlen($encodedHost);
+ if ($punycodeEncodedHostLength === 0) {
+ return false;
+ }
+
+ // The punycodeEncoded host length might be different now, offset that length from the URL.
+ $encodedUrlLength = $originalUrlLength + $punycodeEncodedHostLength - $originalHostLength;
+ // Add the protocol to our length check, if there isn't one, to ensure it doesn't go over the limit.
+ $urlLengthWithProtocol = $encodedUrlLength + (empty($protocol) ? self::URL_GROUP_PROTOCOL_LENGTH : 0);
+
+ return $urlLengthWithProtocol <= self::MAX_URL_LENGTH;
+ }
+
+ /**
+ * Extracts all the usernames and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The username elements in the tweet.
+ */
+ public function extractMentionedScreennamesWithIndices($tweet)
+ {
+ $usernamesOnly = array();
+ $mentions = $this->extractMentionsOrListsWithIndices($tweet);
+ foreach ($mentions as $mention) {
+ if (isset($mention['list_slug'])) {
+ unset($mention['list_slug']);
+ }
+ $usernamesOnly[] = $mention;
+ }
+ return $usernamesOnly;
+ }
+
+ /**
+ * Extracts all the usernames and the indices they occur at from the tweet.
+ *
+ * @param string $tweet The tweet to extract.
+ * @return array The username elements in the tweet.
+ */
+ public function extractMentionsOrListsWithIndices($tweet)
+ {
+ if (!preg_match('/[@@]/u', $tweet)) {
+ return array();
+ }
+
+ preg_match_all(Regex::getValidMentionsOrListsMatcher(), $tweet, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE);
+ $results = array();
+
+ foreach ($matches as $match) {
+ list($all, $before, $at, $username, $list_slug, $outer) = array_pad($match, 6, array('', 0));
+ $start_position = $at[1] > 0 ? StringUtils::strlen(substr($tweet, 0, $at[1])) : $at[1];
+ $end_position = $start_position + StringUtils::strlen($at[0]) + StringUtils::strlen($username[0]);
+ $entity = array(
+ 'screen_name' => $username[0],
+ 'list_slug' => $list_slug[0],
+ 'indices' => array($start_position, $end_position),
+ );
+
+ if (preg_match(Regex::getEndMentionMatcher(), $outer[0])) {
+ continue;
+ }
+
+ if (!empty($list_slug[0])) {
+ $entity['indices'][1] = $end_position + StringUtils::strlen($list_slug[0]);
+ }
+
+ $results[] = $entity;
+ }
+
+ return $results;
+ }
+
+ /**
+ * setter/getter for extractURLWithoutProtocol
+ *
+ * @param boolean $flag
+ * @return bool|Extractor
+ */
+ public function extractURLWithoutProtocol($flag = null)
+ {
+ if ($flag === null) {
+ return $this->extractURLWithoutProtocol;
+ }
+ $this->extractURLWithoutProtocol = (bool) $flag;
+ return $this;
+ }
+
+ /**
+ * Remove overlapping entities.
+ * This returns a new array with no overlapping entities.
+ *
+ * @param array $entities
+ * @return array
+ */
+ public function removeOverlappingEntities($entities)
+ {
+ $result = array();
+ usort($entities, array($this, 'sortEntities'));
+
+ $prev = null;
+ foreach ($entities as $entity) {
+ if ($prev !== null && $entity['indices'][0] < $prev['indices'][1]) {
+ continue;
+ }
+ $prev = $entity;
+ $result[] = $entity;
+ }
+ return $result;
+ }
+
+ /**
+ * sort by entity start index
+ *
+ * @param array $a
+ * @param array $b
+ * @return int
+ */
+ protected function sortEntities($a, $b)
+ {
+ if ($a['indices'][0] === $b['indices'][0]) {
+ return 0;
+ }
+ return ($a['indices'][0] < $b['indices'][0]) ? -1 : 1;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php
new file mode 100644
index 00000000..97bad521
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/HitHighlighter.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter HitHighlighter Class
+ *
+ * Performs "hit highlighting" on tweets that have been auto-linked already.
+ * Useful with the results returned from the search API.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class HitHighlighter
+{
+
+ /**
+ * The tag to surround hits with.
+ *
+ * @var string
+ */
+ protected $tag = 'em';
+
+ /**
+ * The tweet to be used in parsing.
+ *
+ * @var string
+ * @deprecated will be removed
+ */
+ protected $tweet = '';
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param string $tweet [deprecated] The tweet to be hit highlighted.
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ *
+ * @see __construct()
+ *
+ * @return HitHighlighter
+ */
+ public static function create($tweet = null, $full_encode = false)
+ {
+ return new self($tweet, $full_encode);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and hit highlighted.
+ *
+ * We take this opportunity to ensure that we escape user input.
+ *
+ * @see htmlspecialchars()
+ *
+ * @param string $tweet [deprecated] The tweet to be hit highlighted.
+ * @param bool $escape [deprecated] Whether to escape the tweet (default: true).
+ * @param bool $full_encode [deprecated] Whether to encode all special characters.
+ */
+ public function __construct($tweet = null, $escape = true, $full_encode = false)
+ {
+ if (!empty($tweet) && $escape) {
+ if ($full_encode) {
+ $this->tweet = htmlentities($tweet, ENT_QUOTES, 'UTF-8', false);
+ } else {
+ $this->tweet = htmlspecialchars($tweet, ENT_QUOTES, 'UTF-8', false);
+ }
+ } else {
+ $this->tweet = $tweet;
+ }
+ }
+
+ /**
+ * Set the highlighting tag to surround hits with. The default tag is 'em'.
+ *
+ * @return string The tag name.
+ */
+ public function getTag()
+ {
+ return $this->tag;
+ }
+
+ /**
+ * Set the highlighting tag to surround hits with. The default tag is 'em'.
+ *
+ * @param string $v The tag name.
+ *
+ * @return HitHighlighter Fluid method chaining.
+ */
+ public function setTag($v)
+ {
+ $this->tag = $v;
+ return $this;
+ }
+
+ /**
+ * Hit highlights the tweet.
+ *
+ * @param string $tweet The tweet to be hit highlighted.
+ * @param array $hits An array containing the start and end index pairs
+ * for the highlighting.
+ *
+ * @return string The hit highlighted tweet.
+ */
+ public function highlight($tweet = null, array $hits = null)
+ {
+ if ($tweet === null) {
+ $tweet = $this->tweet;
+ }
+ if (empty($hits)) {
+ return $tweet;
+ }
+ $highlightTweet = '';
+ $tags = array('<' . $this->tag . '>', '</' . $this->tag . '>');
+ # Check whether we can simply replace or whether we need to chunk...
+ if (strpos($tweet, '<') === false) {
+ $ti = 0; // tag increment (for added tags)
+ $highlightTweet = $tweet;
+ foreach ($hits as $hit) {
+ $highlightTweet = StringUtils::substrReplace($highlightTweet, $tags[0], $hit[0] + $ti, 0);
+ $ti += StringUtils::strlen($tags[0]);
+ $highlightTweet = StringUtils::substrReplace($highlightTweet, $tags[1], $hit[1] + $ti, 0);
+ $ti += StringUtils::strlen($tags[1]);
+ }
+ } else {
+ $chunks = preg_split('/[<>]/iu', $tweet);
+ $chunk = $chunks[0];
+ $chunk_index = 0;
+ $chunk_cursor = 0;
+ $offset = 0;
+ $start_in_chunk = false;
+ # Flatten the multidimensional hits array:
+ $hits_flat = call_user_func_array('array_merge', array_values($hits));
+ $hits_flat_count = count($hits_flat);
+ # Loop over the hit indices:
+ for ($index = 0; $index < $hits_flat_count; $index++) {
+ $hit = $hits_flat[$index];
+ $tag = $tags[$index % 2];
+ $placed = false;
+ while ($chunk !== null && $hit >= ($i = $offset + StringUtils::strlen($chunk))) {
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor);
+ if ($start_in_chunk && $hit === $i) {
+ $highlightTweet .= $tag;
+ $placed = true;
+ }
+ if (isset($chunks[$chunk_index + 1])) {
+ $highlightTweet .= '<' . $chunks[$chunk_index + 1] . '>';
+ }
+ $offset += StringUtils::strlen($chunk);
+ $chunk_cursor = 0;
+ $chunk_index += 2;
+ $chunk = (isset($chunks[$chunk_index]) ? $chunks[$chunk_index] : null);
+ $start_in_chunk = false;
+ }
+ if (!$placed && $chunk !== null) {
+ $hit_spot = $hit - $offset;
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor, $hit_spot - $chunk_cursor) . $tag;
+ $chunk_cursor = $hit_spot;
+ $start_in_chunk = ($index % 2 === 0);
+ $placed = true;
+ }
+ # Ultimate fallback - hits that run off the end get a closing tag:
+ if (!$placed) {
+ $highlightTweet .= $tag;
+ }
+ }
+ if ($chunk !== null) {
+ if ($chunk_cursor < StringUtils::strlen($chunk)) {
+ $highlightTweet .= StringUtils::substr($chunk, $chunk_cursor);
+ }
+ $chunks_count = count($chunks);
+ for ($index = $chunk_index + 1; $index < $chunks_count; $index++) {
+ $highlightTweet .= ($index % 2 === 0 ? $chunks[$index] : '<' . $chunks[$index] . '>');
+ }
+ }
+ }
+ return $highlightTweet;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php
new file mode 100644
index 00000000..c24f985c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/ParseResults.php
@@ -0,0 +1,203 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text ParseResults
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ *
+ * @property int $weightedLength The overall length of the tweet with code points weighted per the ranges defined
+ * in the configuration file.
+ * @property int $permillage Indicates the proportion (per thousand) of the weighted length in comparison to
+ * the max weighted length. A value > 1000 indicates input text that is longer than
+ * the allowable maximum.
+ * @property bool $valid Indicates if input text length corresponds to a valid result.
+ * @property int $displayRangeStart
+ * @property int $displayRangeEnd
+ * @property int $validRangeStart
+ * @property int $validRangeEnd
+ */
+class ParseResults
+{
+
+ /**
+ * A pair of unicode code point indices identifying the inclusive start and exclusive end of
+ * the displayable content of the Tweet.
+ *
+ * @var array
+ * @link https://developer.twitter.com/en/docs/tweets/tweet-updates
+ */
+ protected $displayTextRange = array(0, 0);
+
+ /**
+ * A pair of unicode code point indices identifying the inclusive start and exclusive end of
+ * the valid content of the Tweet.
+ *
+ * @var array
+ * @link https://developer.twitter.com/en/docs/tweets/tweet-updates
+ */
+ protected $validTextRange = array(0, 0);
+
+ /**
+ * @var array
+ */
+ protected $result = array(
+ 'weightedLength' => 0,
+ 'valid' => false,
+ 'permillage' => 0,
+ );
+
+ /**
+ * Tweet parsed results
+ *
+ * @param int $weightedLength
+ * @param int $permillage
+ * @param bool $isValid
+ * @param array $displayTextRange
+ * @param array $validTextRange
+ */
+ public function __construct(
+ $weightedLength = 0,
+ $permillage = 0,
+ $isValid = false,
+ array $displayTextRange = array(0, 0),
+ array $validTextRange = array(0, 0)
+ ) {
+ $this->weightedLength = $weightedLength;
+ $this->permillage = $permillage;
+ $this->valid = $isValid;
+ $this->displayRangeEnd = $displayTextRange[1];
+ $this->displayRangeStart = $displayTextRange[0];
+ $this->validRangeEnd = $validTextRange[1];
+ $this->validRangeStart = $validTextRange[0];
+ }
+
+ /**
+ * property accessor
+ *
+ * @param string $name
+ * @return mixed
+ */
+ public function __get($name)
+ {
+ if ($name === 'displayRangeStart') {
+ return $this->displayTextRange[0];
+ }
+
+ if ($name === 'displayRangeEnd') {
+ return $this->displayTextRange[1];
+ }
+
+ if ($name === 'validRangeStart') {
+ return $this->validTextRange[0];
+ }
+
+ if ($name === 'validRangeEnd') {
+ return $this->validTextRange[1];
+ }
+
+ return isset($this->result[$name]) ? $this->result[$name] : null;
+ }
+
+ /**
+ * property setter
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return void
+ */
+ public function __set($name, $value)
+ {
+ if (
+ $name === 'displayRangeStart'
+ && $this->lte($value, $this->displayTextRange[1], $name, 'displayRangeEnd')
+ ) {
+ $this->displayTextRange[0] = (int)$value;
+ } elseif (
+ $name === 'displayRangeEnd'
+ && $this->gte($value, $this->displayTextRange[0], $name, 'displayRangeStart')
+ ) {
+ $this->displayTextRange[1] = (int)$value;
+ } elseif (
+ $name === 'validRangeStart'
+ && $this->lte($value, $this->validTextRange[1], $name, 'validRangeEnd')
+ ) {
+ $this->validTextRange[0] = (int)$value;
+ } elseif (
+ $name === 'validRangeEnd'
+ && $this->gte($value, $this->validTextRange[0], $name, 'validRangeStart')
+ ) {
+ $this->validTextRange[1] = (int)$value;
+ } elseif ($name === 'valid') {
+ $this->result[$name] = (bool)$value;
+ } elseif (isset($this->result[$name])) {
+ $this->result[$name] = (int)$value;
+ }
+ }
+
+ /**
+ * check value less than equals
+ *
+ * @param int $lessValue
+ * @param int $greaterValue
+ * @param string $lessValueLabel
+ * @param string $greaterValueLabel
+ * @return bool
+ * @throws \RangeException
+ */
+ private function lte($lessValue, $greaterValue, $lessValueLabel, $greaterValueLabel)
+ {
+ if ($lessValue > $greaterValue) {
+ throw new \RangeException("$lessValueLabel should be less than equals $greaterValueLabel: "
+ . "[$lessValue, $greaterValue]");
+ }
+
+ return true;
+ }
+
+ /**
+ * check value less than equals
+ *
+ * @param int $greaterValue
+ * @param int $lessValue
+ * @param string $greaterValueLabel
+ * @param string $lessValueLabel
+ * @return bool
+ * @throws \RangeException
+ */
+ private function gte($greaterValue, $lessValue, $greaterValueLabel, $lessValueLabel)
+ {
+ if ($lessValue > $greaterValue) {
+ throw new \RangeException("$greaterValueLabel should be greater than equals $lessValueLabel: "
+ . "[$lessValue, $greaterValue]");
+ }
+
+ return true;
+ }
+
+ /**
+ * convert to array
+ *
+ * @return array
+ */
+ public function toArray()
+ {
+ return array_merge($this->result, array(
+ 'displayRangeStart' => $this->displayRangeStart,
+ 'displayRangeEnd' => $this->displayRangeEnd,
+ 'validRangeStart' => $this->validRangeStart,
+ 'validRangeEnd' => $this->validRangeEnd,
+ ));
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php
new file mode 100644
index 00000000..34ead6c6
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Parser.php
@@ -0,0 +1,190 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Text Parser
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2018, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Parser
+{
+ /**
+ * @var Configuration
+ */
+ private $config;
+
+ /**
+ * Create a Parser
+ *
+ * @param Configuration $config
+ * @return Parser
+ */
+ public static function create(Configuration $config = null)
+ {
+ return new self($config);
+ }
+
+ /**
+ * construct
+ *
+ * @param Configuration $config
+ */
+ public function __construct(Configuration $config = null)
+ {
+ if ($config === null) {
+ $config = new Configuration();
+ }
+
+ $this->config = $config;
+ }
+
+ /**
+ * Parses a given tweet text with the weighted character count configuration
+ *
+ * @param string $tweet which is to be parsed
+ * @return ParseResults
+ */
+ public function parseTweet($tweet)
+ {
+ if ($tweet === null || '' === $tweet) {
+ return new ParseResults();
+ }
+
+ $normalizedTweet = StringUtils::normalizeFromNFC($tweet);
+ $normalizedTweetLength = StringUtils::strlen($normalizedTweet);
+
+ $emojiParsingEnabled = $this->config->getEmojiParsingEnabled();
+ $maxWeightedTweetLength = $this->config->getScaledMaxWeightedTweetLength();
+ $transformedUrlWeight = $this->config->getScaledTransformedURLLength();
+
+ $extractor = new Extractor();
+ $urlEntitiesMap = $this->transformEntitiesToHash($extractor->extractURLsWithIndices($normalizedTweet));
+ $emojiEntitiesMap = $emojiParsingEnabled
+ ? $this->transformEntitiesToHash($extractor->extractEmojiWithIndices($normalizedTweet))
+ : array();
+
+ $hasInvalidCharacters = false;
+ $weightedCount = 0;
+ $offset = 0;
+ $displayOffset = 0;
+ $validOffset = 0;
+
+ while ($offset < $normalizedTweetLength) {
+ if (isset($urlEntitiesMap[$offset])) {
+ list($urlStart, $urlEnd) = $urlEntitiesMap[$offset]['indices'];
+ $urlLength = $urlEnd - $urlStart;
+
+ $weightedCount += $transformedUrlWeight;
+ $offset += $urlLength;
+ $displayOffset += $urlLength;
+ if ($weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $urlLength;
+ }
+ } elseif ($emojiParsingEnabled && isset($emojiEntitiesMap[$offset])) {
+ $emoji = $emojiEntitiesMap[$offset]['emoji'];
+ $emojiLength = StringUtils::strlen($emoji);
+ $charCount = StringUtils::charCount($emoji);
+
+ $weightedCount += $this->config->defaultWeight;
+ $offset += $emojiLength;
+ $displayOffset += $charCount;
+ if ($weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $charCount;
+ }
+ } else {
+ $char = StringUtils::substr($normalizedTweet, $offset, 1);
+
+ $hasInvalidCharacters = $hasInvalidCharacters || $this->hasInvalidCharacters($char);
+ $charCount = StringUtils::strlen($char);
+ $charWidth = StringUtils::isSurrogatePair($char) ? 2 : 1;
+
+ $weightedCount += $this->getCharacterWeight($char, $this->config);
+ $offset += $charCount;
+ $displayOffset += $charWidth;
+
+ if (!$hasInvalidCharacters && $weightedCount <= $maxWeightedTweetLength) {
+ $validOffset += $charWidth;
+ }
+ }
+ }
+
+ $scaledWeightedLength = $weightedCount / $this->config->scale;
+ $permillage = $scaledWeightedLength * 1000 / $this->config->maxWeightedTweetLength;
+ $isValid = !$hasInvalidCharacters && $weightedCount <= $maxWeightedTweetLength;
+
+ $normalizedTweetOffset = StringUtils::strlen($tweet) - $normalizedTweetLength;
+ $displayTextRange = array(0, $displayOffset + $normalizedTweetOffset - 1);
+ $validTextRange = array(0, $validOffset + $normalizedTweetOffset - 1);
+
+ return new ParseResults($scaledWeightedLength, $permillage, $isValid, $displayTextRange, $validTextRange);
+ }
+
+ /**
+ * Convert to Hash by indices start
+ *
+ * @param array $entities
+ * @return array
+ */
+ private function transformEntitiesToHash(array $entities)
+ {
+ return array_reduce($entities, function ($map, $entity) {
+ $map[$entity['indices'][0]] = $entity;
+
+ return $map;
+ }, array());
+ }
+
+ /**
+ * Get the character weight from ranges
+ *
+ * @param string $char the Character
+ * @param Configuration $config the parse configuration
+ * @return int
+ */
+ private function getCharacterWeight($char, Configuration $config)
+ {
+ $codePoint = StringUtils::ord($char);
+
+ foreach ($config->ranges as $range) {
+ if ($this->inRange($codePoint, $range)) {
+ return $range['weight'];
+ }
+ }
+
+ return $config->defaultWeight;
+ }
+
+ /**
+ * check codepoint in range
+ *
+ * @param int $codePoint
+ * @param array $range
+ * @return boolean
+ */
+ private function inRange($codePoint, array $range)
+ {
+ return ($codePoint >= $range['start'] && $codePoint <= $range['end']);
+ }
+
+ /**
+ * check has invalid characters
+ *
+ * @param string $char
+ * @return bool
+ */
+ private function hasInvalidCharacters($char)
+ {
+ return preg_match(Regex::getInvalidCharactersMatcher(), $char);
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php
new file mode 100644
index 00000000..8ac66832
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Regex.php
@@ -0,0 +1,838 @@
+<?php
+
+/**
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Regex Abstract Class
+ *
+ * Used by subclasses that need to parse tweets.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Mike Cochrane <mikec@mikenz.geek.nz>
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Mike Cochrane, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter
+ */
+class Regex
+{
+ /**
+ * Expression to match whitespace characters.
+ *
+ * 0x0009-0x000D Cc # <control-0009>..<control-000D>
+ * 0x0020 Zs # SPACE
+ * 0x0085 Cc # <control-0085>
+ * 0x00A0 Zs # NO-BREAK SPACE
+ * 0x1680 Zs # OGHAM SPACE MARK
+ * 0x180E Zs # MONGOLIAN VOWEL SEPARATOR
+ * 0x2000-0x200A Zs # EN QUAD..HAIR SPACE
+ * 0x2028 Zl # LINE SEPARATOR
+ * 0x2029 Zp # PARAGRAPH SEPARATOR
+ * 0x202F Zs # NARROW NO-BREAK SPACE
+ * 0x205F Zs # MEDIUM MATHEMATICAL SPACE
+ * 0x3000 Zs # IDEOGRAPHIC SPACE
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $spaces = '\x{0009}-\x{000D}\x{0020}\x{0085}\x{00a0}\x{1680}\x{180E}\x{2000}-\x{200a}\x{2028}\x{2029}\x{202f}\x{205f}\x{3000}'; // @codingStandardsIgnoreEnd
+
+ /**
+ * Expression to match latin accented characters.
+ *
+ * 0x00C0-0x00D6
+ * 0x00D8-0x00F6
+ * 0x00F8-0x00FF
+ * 0x0100-0x024f
+ * 0x0253-0x0254
+ * 0x0256-0x0257
+ * 0x0259
+ * 0x025b
+ * 0x0263
+ * 0x0268
+ * 0x026f
+ * 0x0272
+ * 0x0289
+ * 0x028b
+ * 0x02bb
+ * 0x0300-0x036f
+ * 0x1e00-0x1eff
+ *
+ * Excludes 0x00D7 - multiplication sign (confusable with 'x').
+ * Excludes 0x00F7 - division sign.
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $latinAccents = '\x{00c0}-\x{00d6}\x{00d8}-\x{00f6}\x{00f8}-\x{00ff}\x{0100}-\x{024f}\x{0253}-\x{0254}\x{0256}-\x{0257}\x{0259}\x{025b}\x{0263}\x{0268}\x{026f}\x{0272}\x{0289}\x{028b}\x{02bb}\x{0300}-\x{036f}\x{1e00}-\x{1eff}'; // @codingStandardsIgnoreEnd
+
+ /**
+ * Invalid Characters
+ *
+ * 0xFFFE,0xFEFF # BOM
+ * 0xFFFF # Special
+ * 0x202A-0x202E # Directional change
+ */
+ private static $invalidCharacters = '\x{202a}-\x{202e}\x{feff}\x{fffe}\x{ffff}';
+
+ /**
+ * Directional Characters
+ *
+ * 0x061C ARABIC LETTER MARK (ALM)
+ * 0x200E LEFT-TO-RIGHT MARK (LRM)
+ * 0x200F RIGHT-TO-LEFT MARK (RLM)
+ * 0x202A LEFT-TO-RIGHT EMBEDDING (LRE)
+ * 0x202B RIGHT-TO-LEFT EMBEDDING (RLE)
+ * 0x202C POP DIRECTIONAL FORMATTING (PDF)
+ * 0x202D LEFT-TO-RIGHT OVERRIDE (LRO)
+ * 0x202E RIGHT-TO-LEFT OVERRIDE (RLO)
+ * 0x2066 LEFT-TO-RIGHT ISOLATE (LRI)
+ * 0x2067 RIGHT-TO-LEFT ISOLATE (RLI)
+ * 0x2068 FIRST STRONG ISOLATE (FSI)
+ * 0x2069 POP DIRECTIONAL ISOLATE (PDI)
+ */
+ private static $directionalCharacters = '\x{061c}\x{200e}\x{200f}\x{202a}\x{202e}\x{2066}\x{2069}';
+
+ /**
+ * Expression to match RTL characters.
+ *
+ * 0x0600-0x06FF Arabic
+ * 0x0750-0x077F Arabic Supplement
+ * 0x08A0-0x08FF Arabic Extended-A
+ * 0x0590-0x05FF Hebrew
+ * 0xFB50-0xFDFF Arabic Presentation Forms-A
+ * 0xFE70-0xFEFF Arabic Presentation Forms-B
+ *
+ * @var string
+ */
+ // @codingStandardsIgnoreStart
+ private static $rtlChars = '\x{0600}-\x{06ff}\x{0750}-\x{077f}\x{08a0}-\x{08ff}\x{0590}-\x{05ff}\x{fb50}-\x{fdff}\x{fe70}-\x{feff}'; // @codingStandardsIgnoreEnd
+
+ # Expression to match at and hash sign characters:
+ private static $atSigns = '@@';
+
+ private static $hashSigns = '##';
+
+ # cash tags
+ private static $cashSigns = '\$';
+
+ private static $cashtag = '[a-z]{1,6}(?:[._][a-z]{1,2})?';
+
+ # These URL validation pattern strings are based on the ABNF from RFC 3986
+ private static $validateUrlUnreserved = '[a-z\p{Cyrillic}0-9\-._~]';
+
+ private static $validateUrlPctEncoded = '(?:%[0-9a-f]{2})';
+
+ private static $validateUrlSubDelims = '[!$&\'()*+,;=]';
+
+ private static $validUrlQueryChars = '[a-z0-9!?\*\'\(\);:&=\+\$\/%#\[\]\-_\.,~|@]';
+
+ private static $validUrlQueryEndingChars = '[a-z0-9_&=#\/\-]';
+
+ // @codingStandardsIgnoreStart
+ private static $validateUrlIpv4 = '(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?:\.(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])){3})'; // @codingStandardsIgnoreEnd
+
+ private static $validateUrlIpv6 = '(?:\[[a-f0-9:\.]+\])';
+
+ private static $validateUrlPort = '[0-9]{1,5}';
+
+ # URL related hash regex collection
+ private static $validSpecialCcTLD = '(?:(?:co|tv)(?=[^0-9a-z@]|$))';
+
+ private static $validPunycode = '(?:xn--[0-9a-z]+)';
+
+ /**
+ * Get invalid characters matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidCharactersMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[' . static::$invalidCharacters . ']/u';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get RTL characters matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getRtlCharsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[' . static::$rtlChars . ']/iu';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get valid ascii domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidAsciiDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/' . static::getValidSubdomain() . '*(' . static::getValidDomainName()
+ . ')(?:' . TldLists::getValidGTLD() . '|' . TldLists::getValidCcTLD()
+ . '|' . static::$validPunycode . ')/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid tco url matcher
+ *
+ * Used by the extractor for stricter t.co URL extraction
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidTcoUrlMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/^https?:\/\/t\.co\/([a-z0-9]+)'
+ . '(?:\?' . static::$validUrlQueryChars . '*' . static::$validUrlQueryEndingChars . ')?/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get invalid short domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidShortDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A' . static::getValidDomainName() . TldLists::getValidCcTLD() . '\Z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid special short domain matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidSpecialShortDomainMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A' . static::getValidDomainName() . static::$validSpecialCcTLD . '\Z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get invalid url without protocol preceding chars matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getInvalidUrlWithoutProtocolPrecedingCharsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/[\-_.\/]\z/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidUrlMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $validUrlPrecedingChars = '(?:[^a-z0-9_@@\$##' . static::$invalidCharacters . ']|[' . static::$directionalCharacters . ']|^)';
+ $validPortNumber = '[0-9]+';
+
+ $regexp = '/(?:' # $1 Complete match (preg_match() already matches everything.)
+ . '(' . $validUrlPrecedingChars . ')' # $2 Preceding characters
+ . '(' # $3 Complete URL
+ . '(https?:\/\/)?' # $4 Protocol (optional)
+ . '(' . static::getValidDomain() . ')' # $5 Domain(s)
+ . '(?::(' . $validPortNumber . '))?' # $6 Port number (optional)
+ . '(\/' . static::getValidUrlPath() . '*)?' # $7 URL Path
+ . '(\?' . static::$validUrlQueryChars . '*' . static::$validUrlQueryEndingChars . ')?' # $8 Query String
+ . ')'
+ . ')/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid domain chars
+ *
+ * @return string
+ */
+ private static function getValidDomainChars()
+ {
+ return '0-9a-z' . static::$latinAccents;
+ }
+
+ /**
+ * Get valid subdomain
+ *
+ * @return string
+ */
+ private static function getValidSubdomain()
+ {
+ $domainValidChars = static::getValidDomainChars();
+
+ return '(?>(?:[' . $domainValidChars . '][' . $domainValidChars . '\-_]*)?[' . $domainValidChars . ']\.)';
+ }
+
+ /**
+ * Get valid domain name
+ *
+ * @return string
+ */
+ private static function getValidDomainName()
+ {
+ $domainValidChars = static::getValidDomainChars();
+
+ return '(?:(?:[' . $domainValidChars . '][' . $domainValidChars . '\-]*)?[' . $domainValidChars . ']\.)';
+ }
+
+ /**
+ * Get valid unicode domain chars
+ *
+ * @return string
+ */
+ private static function getValidUnicodeDomainChars()
+ {
+ return '[^\p{P}\p{Z}\p{C}' . static::$invalidCharacters . static::$spaces . ']';
+ }
+
+ /**
+ * Get valid unicode domain name
+ *
+ * @return string
+ */
+ private static function getValidUnicodeDomainName()
+ {
+ $domainValidChars = static::getValidUnicodeDomainChars();
+
+ return '(?:(?:' . $domainValidChars . '(?:' . $domainValidChars . '|[\-])*)?' . $domainValidChars . '\.)';
+ }
+
+ /**
+ * Get valid domain
+ *
+ * @return string
+ */
+ private static function getValidDomain()
+ {
+ $validSubdomain = static::getValidSubdomain();
+ $validDomainName = static::getValidDomainName();
+ $validUnicodeDomainName = static::getValidUnicodeDomainName();
+ $validGTLD = TldLists::getValidGTLD();
+ $validCcTLD = TldLists::getValidCcTLD();
+
+ return ''
+ // optional sub-domain + domain + TLD
+ // e.g. twitter.com, foo.co.jp, bar.co.uk
+ . '(?:' . $validSubdomain . '*' . $validDomainName
+ . '(?:' . $validGTLD . '|' . $validCcTLD . '|' . static::$validPunycode . '))'
+ // domain + gTLD | protocol + unicode domain + gTLD
+ . '|(?:'
+ . '(?:' . $validSubdomain . '+' . $validDomainName
+ . '|' . $validDomainName
+ . '|(?:(?<=http:\/\/|https:\/\/)' . $validUnicodeDomainName . ')'
+ . ')'
+ . $validGTLD
+ . ')'
+ // protocol + (domain | unicode domain) + ccTLD
+ . '|(?:(?<=http:\/\/|https:\/\/)'
+ . '(?:' . $validDomainName . '|' . $validUnicodeDomainName . ')'
+ . $validCcTLD . ')'
+ // domain + ccTLD + '/'
+ // e.g. t.co/
+ . '|(?:' . $validDomainName . $validCcTLD . '(?=\/))';
+ }
+
+ /**
+ * Get valid url path
+ *
+ * @return string
+ */
+ private static function getValidUrlPath()
+ {
+ $validGeneralUrlPathChars = '[a-z0-9' . preg_quote("!*';:=+,.$/%#[]–\x{2013}_~", '/')
+ . '|&@' . static::$latinAccents . '\p{Cyrillic}]';
+
+ # Allow URL paths to contain up to two nested levels of balanced parentheses:
+ # 1. Used in Wikipedia URLs, e.g. /Primer_(film)
+ # 2. Used in IIS sessions, e.g. /S(dfd346)/
+ # 3. Used in Rdio URLs like /track/We_Up_(Album_Version_(Edited))/
+ $validUrlBalancedParens = '(?:\('
+ . '(?:' . $validGeneralUrlPathChars . '+'
+ . '|'
+ // allow one nested level of balanced parentheses
+ . '(?:'
+ . $validGeneralUrlPathChars . '*'
+ . '\(' . $validGeneralUrlPathChars . '+' . '\)'
+ . $validGeneralUrlPathChars . '*'
+ . ')'
+ . ')'
+ . '\))';
+ # Valid end-of-path characters (so /foo. does not gobble the period).
+ # 1. Allow =&# for empty URL parameters and other URL-join artifacts.
+ $validUrlPathEndingChars = '[a-z0-9=_#\/\+\-' . static::$latinAccents . '\p{Cyrillic}]'
+ . '|(?:' . $validUrlBalancedParens . ')';
+
+ return '(?:(?:'
+ . $validGeneralUrlPathChars . '*(?:'
+ . $validUrlBalancedParens . ' '
+ . $validGeneralUrlPathChars . '*)*'
+ . $validUrlPathEndingChars . ')|(?:@'
+ . $validGeneralUrlPathChars . '+\/))';
+ }
+
+ // =================================================================================================================
+
+ # NOTE: PHP doesn't have Ruby's $' (dollar apostrophe) so we have to capture
+ # $after in the following regular expression. Note that we only use a
+ # look-ahead capture here and don't append $after when we return.
+
+ /**
+ * Get valid mentions or lists matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidMentionsOrListsMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $mentionPrecedingChars = '([^a-z0-9_!#\$%&*@@\/]|^|(?:^|[^a-z0-9_+~.-])RT:?)';
+ $regexp = '/' . $mentionPrecedingChars
+ . '([' . static::$atSigns . '])([a-z0-9_]{1,20})(\/[a-z][a-z0-9_\-]{0,24})?(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidReplyMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/^(?:[' . static::$spaces . static::$directionalCharacters . '])*[' . static::$atSigns . ']([a-z0-9_]{1,20})(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndMentionMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$atSigns . ']|[' . static::$latinAccents . ']|:\/\/)/iu';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get hashtag matcher
+ *
+ * @return string matcher
+ */
+ private static function getHashtagPattern()
+ {
+ $hashtag_letters = '\p{L}\p{M}';
+ $hashtag_numerals = '\p{Nd}';
+ # Hashtag special chars
+ #
+ # _ underscore
+ # 0x200c ZERO WIDTH NON-JOINER (ZWNJ)
+ # 0x200d ZERO WIDTH JOINER (ZWJ)
+ # 0xa67e CYRILLIC KAVYKA
+ # 0x05be HEBREW PUNCTUATION MAQAF
+ # 0x05f3 HEBREW PUNCTUATION GERESH
+ # 0x05f4 HEBREW PUNCTUATION GERSHAYIM
+ # 0xff5e FULLWIDTH TILDE
+ # 0x301c WAVE DASH
+ # 0x309b KATAKANA-HIRAGANA VOICED SOUND MARK
+ # 0x309c KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ # 0x30a0 KATAKANA-HIRAGANA DOUBLE HYPHEN
+ # 0x30fb KATAKANA MIDDLE DOT
+ # 0x3003 DITTO MARK
+ # 0x0f0b TIBETAN MARK INTERSYLLABIC TSHEG
+ # 0x0f0c TIBETAN MARK DELIMITER TSHEG BSTAR
+ # 0x00b7 MIDDLE DOT
+ $hashtag_special_chars = '_\x{200c}\x{200d}\x{a67e}\x{05be}\x{05f3}\x{05f4}'
+ . '\x{ff5e}\x{301c}\x{309b}\x{309c}\x{30a0}\x{30fb}\x{3003}\x{0f0b}\x{0f0c}\x{00b7}';
+ $hashtag_letters_numerals_set = '[' . $hashtag_letters . $hashtag_numerals . $hashtag_special_chars . ']';
+ $hashtag_letters_set = '[' . $hashtag_letters . ']';
+ $hashtag_boundary = '(?:\A|\x{fe0e}|\x{fe0f}|[^&'
+ . $hashtag_letters . $hashtag_numerals . $hashtag_special_chars . '])';
+
+ return '(' . $hashtag_boundary . ')(#|\x{ff03})(?!\x{fe0f}|\x{20e3})('
+ . $hashtag_letters_numerals_set . '*' . $hashtag_letters_set . $hashtag_letters_numerals_set . '*)';
+ }
+
+ /**
+ * Get valid hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidHashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/' . static::getHashtagPattern() . '(?=(.*|$))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of hashtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndHashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$hashSigns . ']|:\/\/)/u';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get valid cachtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidCashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(^|[' . static::$spaces . static::$directionalCharacters . '])([' . static::$cashSigns . '])'
+ . '(' . static::$cashtag . ')(?=($|\s|[[:punct:]]))/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get end of cachtag matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getEndCashtagMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/\A(?:[' . static::$cashSigns . ']|:\/\/)/u';
+ }
+
+ return $regexp;
+ }
+
+ // =================================================================================================================
+
+ /**
+ * Get url matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlUnencodedMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ # Modified version of RFC 3986 Appendix B
+ $regexp = '/\A' # Full URL
+ . '(?:'
+ . '([^:\/?#]+):\/\/' # $1 Scheme
+ . ')?'
+ . '([^\/?#]*)' # $2 Authority
+ . '([^?#]*)' # $3 Path
+ . '(?:'
+ . '\?([^#]*)' # $4 Query
+ . ')?'
+ . '(?:'
+ . '\#(.*)' # $5 Fragment
+ . ')?\z/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url ip
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlIp()
+ {
+ return '(?:' . static::$validateUrlIpv4 . '|' . static::$validateUrlIpv6 . ')'; #/iox
+ }
+
+ /**
+ * Get valid url domain
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlDomain()
+ {
+ $subdomain = '(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)'; #/i
+ $domain = '(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)'; #/i
+ $tld = '(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)'; #/i
+
+ return '(?:(?:' . $subdomain . '\.)*(?:' . $domain . '\.)' . $tld . ')'; #/iox
+ }
+
+ /**
+ * Get valid url host
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlHost()
+ {
+ return '(?:' . static::getValidateUrlIp() . '|' . static::getValidateUrlDomain() . ')'; #/iox
+ }
+
+ /**
+ * Get valid url unicode domain
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUnicodeDomain()
+ {
+ $subdomain = '(?:(?:[a-z0-9]|[^\x00-\x7f])(?:(?:[a-z0-9_\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+ $domain = '(?:(?:[a-z0-9]|[^\x00-\x7f])(?:(?:[a-z0-9\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+ $tld = '(?:(?:[a-z]|[^\x00-\x7f])(?:(?:[a-z0-9\-]|[^\x00-\x7f])*(?:[a-z0-9]|[^\x00-\x7f]))?)'; #/ix
+
+ return '(?:(?:' . $subdomain . '\.)*(?:' . $domain . '\.)' . $tld . ')'; #/iox
+ }
+
+ /**
+ * Get valid url unicode host
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUnicodeHost()
+ {
+ return '(?:' . static::getValidateUrlIp() . '|' . static::getValidateUrlUnicodeDomain() . ')'; #/iox
+ }
+
+ /**
+ * Get valid url userinfo
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlUserinfo()
+ {
+ return '(?:' . static::$validateUrlUnreserved
+ . '|' . static::$validateUrlPctEncoded
+ . '|' . static::$validateUrlSubDelims
+ . '|:)*'; #/iox
+ }
+
+ /**
+ * Get url unicode authority matcher
+ *
+ * Unencoded internationalized domains - this doesn't check for invalid UTF-8 sequences
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlUnicodeAuthorityMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/'
+ . '(?:(' . static::getValidateUrlUserinfo() . ')@)?' # $1 userinfo
+ . '(' . static::getValidateUrlUnicodeHost() . ')' # $2 host
+ . '(?::(' . static::$validateUrlPort . '))?' # $3 port
+ . '/iux';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url authority matcher
+ *
+ * This is more strict than the rfc specifies
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlAuthorityMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/'
+ . '(?:(' . static::getValidateUrlUserinfo() . ')@)?' # $1 userinfo
+ . '(' . static::getValidateUrlHost() . ')' # $2 host
+ . '(?::(' . static::$validateUrlPort . '))?' # $3 port
+ . '/ix';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url scheme matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlSchemeMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(?:[a-z][a-z0-9+\-.]*)/i';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get valid url charactors
+ *
+ * @return string matcher
+ */
+ private static function getValidateUrlPchar()
+ {
+ return '(?:' . static::$validateUrlUnreserved
+ . '|' . static::$validateUrlPctEncoded
+ . '|' . static::$validateUrlSubDelims
+ . '|[:\|@])'; #/iox
+ }
+
+ /**
+ * Get url path matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlPathMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(\/' . static::getValidateUrlPchar() . '*)*/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url query matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlQueryMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(' . static::getValidateUrlPchar() . '|\/|\?)*/iu';
+ }
+
+ return $regexp;
+ }
+
+ /**
+ * Get url flagment matcher
+ *
+ * @staticvar string $regexp
+ * @return string
+ */
+ public static function getValidateUrlFragmentMatcher()
+ {
+ static $regexp = null;
+
+ if ($regexp === null) {
+ $regexp = '/(' . static::getValidateUrlPchar() . '|\/|\?)*/iu';
+ }
+
+ return $regexp;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php
new file mode 100644
index 00000000..b7af156c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/StringUtils.php
@@ -0,0 +1,191 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2014, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * String utility
+ *
+ * @author Takashi Nojima
+ * @copyright Copyright 2014, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter
+ */
+class StringUtils
+{
+
+ /**
+ * alias of mb_substr
+ *
+ * @param string $str
+ * @param integer $start (character)
+ * @param integer $length (character)
+ * @param string $encoding
+ * @return string
+ */
+ public static function substr($str, $start, $length = null, $encoding = 'UTF-8')
+ {
+ if ($length === null) {
+ // for PHP <= 5.4.7
+ $length = mb_strlen($str, $encoding);
+ }
+ return mb_substr($str, $start, $length, $encoding);
+ }
+
+ /**
+ * alias of mb_strlen
+ *
+ * @param string $str
+ * @param string $encoding
+ * @return integer
+ */
+ public static function strlen($str, $encoding = 'UTF-8')
+ {
+ return mb_strlen($str, $encoding);
+ }
+
+ /**
+ * alias of mb_strpos
+ *
+ * @param string $haystack
+ * @param string $needle
+ * @param integer $offset
+ * @param string $encoding
+ * @return integer
+ */
+ public static function strpos($haystack, $needle, $offset = 0, $encoding = 'UTF-8')
+ {
+ return mb_strpos($haystack, $needle, $offset, $encoding);
+ }
+
+ /**
+ * A multibyte-aware substring replacement function.
+ *
+ * @param string $string The string to modify.
+ * @param string $replacement The replacement string.
+ * @param int $start The start of the replacement.
+ * @param int $length The number of characters to replace.
+ * @param string $encoding The encoding of the string.
+ *
+ * @return string The modified string.
+ *
+ * @see http://www.php.net/manual/en/function.substr-replace.php#90146
+ */
+ public static function substrReplace($string, $replacement, $start, $length = null, $encoding = 'UTF-8')
+ {
+ $string_length = static::strlen($string, $encoding);
+ if ($start < 0) {
+ $start = max(0, $string_length + $start);
+ } elseif ($start > $string_length) {
+ $start = $string_length;
+ }
+ if ($length < 0) {
+ $length = max(0, $string_length - $start + $length);
+ } elseif (($length === null) || ($length > $string_length)) {
+ $length = $string_length;
+ }
+ if (($start + $length) > $string_length) {
+ $length = $string_length - $start;
+ }
+
+ $suffixOffset = $start + $length;
+ $suffixLength = $string_length - $start - $length;
+
+ return static::substr($string, 0, $start, $encoding)
+ . $replacement
+ . static::substr($string, $suffixOffset, $suffixLength, $encoding);
+ }
+
+ /**
+ * idn_to_ascii wrapper
+ *
+ * @param string $domain as utf8
+ * @return string
+ */
+ public static function idnToAscii($domain)
+ {
+ // INTL_IDNA_VARIANT_UTS46 defined PHP 5.4.0 or later
+ if (defined('INTL_IDNA_VARIANT_UTS46')) {
+ return idn_to_ascii($domain, IDNA_ALLOW_UNASSIGNED, INTL_IDNA_VARIANT_UTS46);
+ }
+
+ return idn_to_ascii($domain, IDNA_ALLOW_UNASSIGNED);
+ }
+
+ /**
+ * normalize text from NFC
+ *
+ * @param string $text
+ * @return string
+ */
+ public static function normalizeFromNFC($text)
+ {
+ return normalizer_normalize($text);
+ }
+
+ /**
+ * get code point
+ *
+ * @param string $char
+ * @param string $encoding
+ * @return int
+ */
+ public static function ord($char, $encoding = 'UTF-8')
+ {
+ if (mb_strlen($char, $encoding) > 1) {
+ $char = mb_substr($char, 0, 1, $encoding);
+ }
+
+ return current(unpack('N', mb_convert_encoding($char, 'UCS-4BE', $encoding)));
+ }
+
+ /**
+ * get code point at
+ *
+ * @param string $str
+ * @param int $offset
+ * @param string $encoding
+ * @return int
+ */
+ public static function codePointAt($str, $offset, $encoding = 'UTF-8')
+ {
+ return static::ord(mb_substr($str, $offset, 1, $encoding), $encoding);
+ }
+
+ /**
+ * is surrogate pair char
+ *
+ * @param string $char
+ * @return bool
+ */
+ public static function isSurrogatePair($char)
+ {
+ return preg_match('/[\\x{10000}-\\x{10FFFF}]/u', $char);
+ }
+
+ /**
+ * get the character code count
+ *
+ * @param $string
+ * @param string $encoding
+ * @return int
+ */
+ public static function charCount($string, $encoding = 'UTF-8')
+ {
+ $count = 0;
+ $strlen = static::strlen($string);
+
+ for ($offset = 0; $offset < $strlen; $offset++) {
+ $char = static::substr($string, $offset, 1, $encoding);
+ $count += static::isSurrogatePair($char) ? 2 : 1;
+ }
+
+ return $count;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php
new file mode 100644
index 00000000..276bc17f
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/TldLists.php
@@ -0,0 +1,1646 @@
+<?php
+
+/**
+ * @author Takashi Nojima
+ * @copyright Copyright 2020, Takashi Nojima
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * TLD Lists
+ */
+final class TldLists
+{
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $gTLDs = array(
+ '삼성',
+ '닷컴',
+ '닷넷',
+ '香格里拉',
+ '餐厅',
+ '食品',
+ '飞利浦',
+ '電訊盈科',
+ '集团',
+ '通販',
+ '购物',
+ '谷歌',
+ '诺基亚',
+ '联通',
+ '网络',
+ '网站',
+ '网店',
+ '网址',
+ '组织机构',
+ '移动',
+ '珠宝',
+ '点看',
+ '游戏',
+ '淡马锡',
+ '机构',
+ '書籍',
+ '时尚',
+ '新闻',
+ '政府',
+ '政务',
+ '招聘',
+ '手表',
+ '手机',
+ '我爱你',
+ '慈善',
+ '微博',
+ '广东',
+ '工行',
+ '家電',
+ '娱乐',
+ '天主教',
+ '大拿',
+ '大众汽车',
+ '在线',
+ '嘉里大酒店',
+ '嘉里',
+ '商标',
+ '商店',
+ '商城',
+ '公益',
+ '公司',
+ '八卦',
+ '健康',
+ '信息',
+ '佛山',
+ '企业',
+ '中文网',
+ '中信',
+ '世界',
+ 'ポイント',
+ 'ファッション',
+ 'セール',
+ 'ストア',
+ 'コム',
+ 'グーグル',
+ 'クラウド',
+ 'みんな',
+ 'คอม',
+ 'संगठन',
+ 'नेट',
+ 'कॉम',
+ 'همراه',
+ 'موقع',
+ 'موبايلي',
+ 'كوم',
+ 'كاثوليك',
+ 'عرب',
+ 'شبكة',
+ 'بيتك',
+ 'بازار',
+ 'العليان',
+ 'ارامكو',
+ 'اتصالات',
+ 'ابوظبي',
+ 'קום',
+ 'сайт',
+ 'рус',
+ 'орг',
+ 'онлайн',
+ 'москва',
+ 'ком',
+ 'католик',
+ 'дети',
+ 'zuerich',
+ 'zone',
+ 'zippo',
+ 'zip',
+ 'zero',
+ 'zara',
+ 'zappos',
+ 'yun',
+ 'youtube',
+ 'you',
+ 'yokohama',
+ 'yoga',
+ 'yodobashi',
+ 'yandex',
+ 'yamaxun',
+ 'yahoo',
+ 'yachts',
+ 'xyz',
+ 'xxx',
+ 'xperia',
+ 'xin',
+ 'xihuan',
+ 'xfinity',
+ 'xerox',
+ 'xbox',
+ 'wtf',
+ 'wtc',
+ 'wow',
+ 'world',
+ 'works',
+ 'work',
+ 'woodside',
+ 'wolterskluwer',
+ 'wme',
+ 'winners',
+ 'wine',
+ 'windows',
+ 'win',
+ 'williamhill',
+ 'wiki',
+ 'wien',
+ 'whoswho',
+ 'weir',
+ 'weibo',
+ 'wedding',
+ 'wed',
+ 'website',
+ 'weber',
+ 'webcam',
+ 'weatherchannel',
+ 'weather',
+ 'watches',
+ 'watch',
+ 'warman',
+ 'wanggou',
+ 'wang',
+ 'walter',
+ 'walmart',
+ 'wales',
+ 'vuelos',
+ 'voyage',
+ 'voto',
+ 'voting',
+ 'vote',
+ 'volvo',
+ 'volkswagen',
+ 'vodka',
+ 'vlaanderen',
+ 'vivo',
+ 'viva',
+ 'vistaprint',
+ 'vista',
+ 'vision',
+ 'visa',
+ 'virgin',
+ 'vip',
+ 'vin',
+ 'villas',
+ 'viking',
+ 'vig',
+ 'video',
+ 'viajes',
+ 'vet',
+ 'versicherung',
+ 'vermögensberatung',
+ 'vermögensberater',
+ 'verisign',
+ 'ventures',
+ 'vegas',
+ 'vanguard',
+ 'vana',
+ 'vacations',
+ 'ups',
+ 'uol',
+ 'uno',
+ 'university',
+ 'unicom',
+ 'uconnect',
+ 'ubs',
+ 'ubank',
+ 'tvs',
+ 'tushu',
+ 'tunes',
+ 'tui',
+ 'tube',
+ 'trv',
+ 'trust',
+ 'travelersinsurance',
+ 'travelers',
+ 'travelchannel',
+ 'travel',
+ 'training',
+ 'trading',
+ 'trade',
+ 'toys',
+ 'toyota',
+ 'town',
+ 'tours',
+ 'total',
+ 'toshiba',
+ 'toray',
+ 'top',
+ 'tools',
+ 'tokyo',
+ 'today',
+ 'tmall',
+ 'tkmaxx',
+ 'tjx',
+ 'tjmaxx',
+ 'tirol',
+ 'tires',
+ 'tips',
+ 'tiffany',
+ 'tienda',
+ 'tickets',
+ 'tiaa',
+ 'theatre',
+ 'theater',
+ 'thd',
+ 'teva',
+ 'tennis',
+ 'temasek',
+ 'telefonica',
+ 'telecity',
+ 'tel',
+ 'technology',
+ 'tech',
+ 'team',
+ 'tdk',
+ 'tci',
+ 'taxi',
+ 'tax',
+ 'tattoo',
+ 'tatar',
+ 'tatamotors',
+ 'target',
+ 'taobao',
+ 'talk',
+ 'taipei',
+ 'tab',
+ 'systems',
+ 'symantec',
+ 'sydney',
+ 'swiss',
+ 'swiftcover',
+ 'swatch',
+ 'suzuki',
+ 'surgery',
+ 'surf',
+ 'support',
+ 'supply',
+ 'supplies',
+ 'sucks',
+ 'style',
+ 'study',
+ 'studio',
+ 'stream',
+ 'store',
+ 'storage',
+ 'stockholm',
+ 'stcgroup',
+ 'stc',
+ 'statoil',
+ 'statefarm',
+ 'statebank',
+ 'starhub',
+ 'star',
+ 'staples',
+ 'stada',
+ 'srt',
+ 'srl',
+ 'spreadbetting',
+ 'spot',
+ 'sport',
+ 'spiegel',
+ 'space',
+ 'soy',
+ 'sony',
+ 'song',
+ 'solutions',
+ 'solar',
+ 'sohu',
+ 'software',
+ 'softbank',
+ 'social',
+ 'soccer',
+ 'sncf',
+ 'smile',
+ 'smart',
+ 'sling',
+ 'skype',
+ 'sky',
+ 'skin',
+ 'ski',
+ 'site',
+ 'singles',
+ 'sina',
+ 'silk',
+ 'shriram',
+ 'showtime',
+ 'show',
+ 'shouji',
+ 'shopping',
+ 'shop',
+ 'shoes',
+ 'shiksha',
+ 'shia',
+ 'shell',
+ 'shaw',
+ 'sharp',
+ 'shangrila',
+ 'sfr',
+ 'sexy',
+ 'sex',
+ 'sew',
+ 'seven',
+ 'ses',
+ 'services',
+ 'sener',
+ 'select',
+ 'seek',
+ 'security',
+ 'secure',
+ 'seat',
+ 'search',
+ 'scot',
+ 'scor',
+ 'scjohnson',
+ 'science',
+ 'schwarz',
+ 'schule',
+ 'school',
+ 'scholarships',
+ 'schmidt',
+ 'schaeffler',
+ 'scb',
+ 'sca',
+ 'sbs',
+ 'sbi',
+ 'saxo',
+ 'save',
+ 'sas',
+ 'sarl',
+ 'sapo',
+ 'sap',
+ 'sanofi',
+ 'sandvikcoromant',
+ 'sandvik',
+ 'samsung',
+ 'samsclub',
+ 'salon',
+ 'sale',
+ 'sakura',
+ 'safety',
+ 'safe',
+ 'saarland',
+ 'ryukyu',
+ 'rwe',
+ 'run',
+ 'ruhr',
+ 'rugby',
+ 'rsvp',
+ 'room',
+ 'rogers',
+ 'rodeo',
+ 'rocks',
+ 'rocher',
+ 'rmit',
+ 'rip',
+ 'rio',
+ 'ril',
+ 'rightathome',
+ 'ricoh',
+ 'richardli',
+ 'rich',
+ 'rexroth',
+ 'reviews',
+ 'review',
+ 'restaurant',
+ 'rest',
+ 'republican',
+ 'report',
+ 'repair',
+ 'rentals',
+ 'rent',
+ 'ren',
+ 'reliance',
+ 'reit',
+ 'reisen',
+ 'reise',
+ 'rehab',
+ 'redumbrella',
+ 'redstone',
+ 'red',
+ 'recipes',
+ 'realty',
+ 'realtor',
+ 'realestate',
+ 'read',
+ 'raid',
+ 'radio',
+ 'racing',
+ 'qvc',
+ 'quest',
+ 'quebec',
+ 'qpon',
+ 'pwc',
+ 'pub',
+ 'prudential',
+ 'pru',
+ 'protection',
+ 'property',
+ 'properties',
+ 'promo',
+ 'progressive',
+ 'prof',
+ 'productions',
+ 'prod',
+ 'pro',
+ 'prime',
+ 'press',
+ 'praxi',
+ 'pramerica',
+ 'post',
+ 'porn',
+ 'politie',
+ 'poker',
+ 'pohl',
+ 'pnc',
+ 'plus',
+ 'plumbing',
+ 'playstation',
+ 'play',
+ 'place',
+ 'pizza',
+ 'pioneer',
+ 'pink',
+ 'ping',
+ 'pin',
+ 'pid',
+ 'pictures',
+ 'pictet',
+ 'pics',
+ 'piaget',
+ 'physio',
+ 'photos',
+ 'photography',
+ 'photo',
+ 'phone',
+ 'philips',
+ 'phd',
+ 'pharmacy',
+ 'pfizer',
+ 'pet',
+ 'pccw',
+ 'pay',
+ 'passagens',
+ 'party',
+ 'parts',
+ 'partners',
+ 'pars',
+ 'paris',
+ 'panerai',
+ 'panasonic',
+ 'pamperedchef',
+ 'page',
+ 'ovh',
+ 'ott',
+ 'otsuka',
+ 'osaka',
+ 'origins',
+ 'orientexpress',
+ 'organic',
+ 'org',
+ 'orange',
+ 'oracle',
+ 'open',
+ 'ooo',
+ 'onyourside',
+ 'online',
+ 'onl',
+ 'ong',
+ 'one',
+ 'omega',
+ 'ollo',
+ 'oldnavy',
+ 'olayangroup',
+ 'olayan',
+ 'okinawa',
+ 'office',
+ 'off',
+ 'observer',
+ 'obi',
+ 'nyc',
+ 'ntt',
+ 'nrw',
+ 'nra',
+ 'nowtv',
+ 'nowruz',
+ 'now',
+ 'norton',
+ 'northwesternmutual',
+ 'nokia',
+ 'nissay',
+ 'nissan',
+ 'ninja',
+ 'nikon',
+ 'nike',
+ 'nico',
+ 'nhk',
+ 'ngo',
+ 'nfl',
+ 'nexus',
+ 'nextdirect',
+ 'next',
+ 'news',
+ 'newholland',
+ 'new',
+ 'neustar',
+ 'network',
+ 'netflix',
+ 'netbank',
+ 'net',
+ 'nec',
+ 'nba',
+ 'navy',
+ 'natura',
+ 'nationwide',
+ 'name',
+ 'nagoya',
+ 'nadex',
+ 'nab',
+ 'mutuelle',
+ 'mutual',
+ 'museum',
+ 'mtr',
+ 'mtpc',
+ 'mtn',
+ 'msd',
+ 'movistar',
+ 'movie',
+ 'mov',
+ 'motorcycles',
+ 'moto',
+ 'moscow',
+ 'mortgage',
+ 'mormon',
+ 'mopar',
+ 'montblanc',
+ 'monster',
+ 'money',
+ 'monash',
+ 'mom',
+ 'moi',
+ 'moe',
+ 'moda',
+ 'mobily',
+ 'mobile',
+ 'mobi',
+ 'mma',
+ 'mls',
+ 'mlb',
+ 'mitsubishi',
+ 'mit',
+ 'mint',
+ 'mini',
+ 'mil',
+ 'microsoft',
+ 'miami',
+ 'metlife',
+ 'merckmsd',
+ 'meo',
+ 'menu',
+ 'men',
+ 'memorial',
+ 'meme',
+ 'melbourne',
+ 'meet',
+ 'media',
+ 'med',
+ 'mckinsey',
+ 'mcdonalds',
+ 'mcd',
+ 'mba',
+ 'mattel',
+ 'maserati',
+ 'marshalls',
+ 'marriott',
+ 'markets',
+ 'marketing',
+ 'market',
+ 'map',
+ 'mango',
+ 'management',
+ 'man',
+ 'makeup',
+ 'maison',
+ 'maif',
+ 'madrid',
+ 'macys',
+ 'luxury',
+ 'luxe',
+ 'lupin',
+ 'lundbeck',
+ 'ltda',
+ 'ltd',
+ 'lplfinancial',
+ 'lpl',
+ 'love',
+ 'lotto',
+ 'lotte',
+ 'london',
+ 'lol',
+ 'loft',
+ 'locus',
+ 'locker',
+ 'loans',
+ 'loan',
+ 'llp',
+ 'llc',
+ 'lixil',
+ 'living',
+ 'live',
+ 'lipsy',
+ 'link',
+ 'linde',
+ 'lincoln',
+ 'limo',
+ 'limited',
+ 'lilly',
+ 'like',
+ 'lighting',
+ 'lifestyle',
+ 'lifeinsurance',
+ 'life',
+ 'lidl',
+ 'liaison',
+ 'lgbt',
+ 'lexus',
+ 'lego',
+ 'legal',
+ 'lefrak',
+ 'leclerc',
+ 'lease',
+ 'lds',
+ 'lawyer',
+ 'law',
+ 'latrobe',
+ 'latino',
+ 'lat',
+ 'lasalle',
+ 'lanxess',
+ 'landrover',
+ 'land',
+ 'lancome',
+ 'lancia',
+ 'lancaster',
+ 'lamer',
+ 'lamborghini',
+ 'ladbrokes',
+ 'lacaixa',
+ 'kyoto',
+ 'kuokgroup',
+ 'kred',
+ 'krd',
+ 'kpn',
+ 'kpmg',
+ 'kosher',
+ 'komatsu',
+ 'koeln',
+ 'kiwi',
+ 'kitchen',
+ 'kindle',
+ 'kinder',
+ 'kim',
+ 'kia',
+ 'kfh',
+ 'kerryproperties',
+ 'kerrylogistics',
+ 'kerryhotels',
+ 'kddi',
+ 'kaufen',
+ 'juniper',
+ 'juegos',
+ 'jprs',
+ 'jpmorgan',
+ 'joy',
+ 'jot',
+ 'joburg',
+ 'jobs',
+ 'jnj',
+ 'jmp',
+ 'jll',
+ 'jlc',
+ 'jio',
+ 'jewelry',
+ 'jetzt',
+ 'jeep',
+ 'jcp',
+ 'jcb',
+ 'java',
+ 'jaguar',
+ 'iwc',
+ 'iveco',
+ 'itv',
+ 'itau',
+ 'istanbul',
+ 'ist',
+ 'ismaili',
+ 'iselect',
+ 'irish',
+ 'ipiranga',
+ 'investments',
+ 'intuit',
+ 'international',
+ 'intel',
+ 'int',
+ 'insure',
+ 'insurance',
+ 'institute',
+ 'ink',
+ 'ing',
+ 'info',
+ 'infiniti',
+ 'industries',
+ 'inc',
+ 'immobilien',
+ 'immo',
+ 'imdb',
+ 'imamat',
+ 'ikano',
+ 'iinet',
+ 'ifm',
+ 'ieee',
+ 'icu',
+ 'ice',
+ 'icbc',
+ 'ibm',
+ 'hyundai',
+ 'hyatt',
+ 'hughes',
+ 'htc',
+ 'hsbc',
+ 'how',
+ 'house',
+ 'hotmail',
+ 'hotels',
+ 'hoteles',
+ 'hot',
+ 'hosting',
+ 'host',
+ 'hospital',
+ 'horse',
+ 'honeywell',
+ 'honda',
+ 'homesense',
+ 'homes',
+ 'homegoods',
+ 'homedepot',
+ 'holiday',
+ 'holdings',
+ 'hockey',
+ 'hkt',
+ 'hiv',
+ 'hitachi',
+ 'hisamitsu',
+ 'hiphop',
+ 'hgtv',
+ 'hermes',
+ 'here',
+ 'helsinki',
+ 'help',
+ 'healthcare',
+ 'health',
+ 'hdfcbank',
+ 'hdfc',
+ 'hbo',
+ 'haus',
+ 'hangout',
+ 'hamburg',
+ 'hair',
+ 'guru',
+ 'guitars',
+ 'guide',
+ 'guge',
+ 'gucci',
+ 'guardian',
+ 'group',
+ 'grocery',
+ 'gripe',
+ 'green',
+ 'gratis',
+ 'graphics',
+ 'grainger',
+ 'gov',
+ 'got',
+ 'gop',
+ 'google',
+ 'goog',
+ 'goodyear',
+ 'goodhands',
+ 'goo',
+ 'golf',
+ 'goldpoint',
+ 'gold',
+ 'godaddy',
+ 'gmx',
+ 'gmo',
+ 'gmbh',
+ 'gmail',
+ 'globo',
+ 'global',
+ 'gle',
+ 'glass',
+ 'glade',
+ 'giving',
+ 'gives',
+ 'gifts',
+ 'gift',
+ 'ggee',
+ 'george',
+ 'genting',
+ 'gent',
+ 'gea',
+ 'gdn',
+ 'gbiz',
+ 'gay',
+ 'garden',
+ 'gap',
+ 'games',
+ 'game',
+ 'gallup',
+ 'gallo',
+ 'gallery',
+ 'gal',
+ 'fyi',
+ 'futbol',
+ 'furniture',
+ 'fund',
+ 'fun',
+ 'fujixerox',
+ 'fujitsu',
+ 'ftr',
+ 'frontier',
+ 'frontdoor',
+ 'frogans',
+ 'frl',
+ 'fresenius',
+ 'free',
+ 'fox',
+ 'foundation',
+ 'forum',
+ 'forsale',
+ 'forex',
+ 'ford',
+ 'football',
+ 'foodnetwork',
+ 'food',
+ 'foo',
+ 'fly',
+ 'flsmidth',
+ 'flowers',
+ 'florist',
+ 'flir',
+ 'flights',
+ 'flickr',
+ 'fitness',
+ 'fit',
+ 'fishing',
+ 'fish',
+ 'firmdale',
+ 'firestone',
+ 'fire',
+ 'financial',
+ 'finance',
+ 'final',
+ 'film',
+ 'fido',
+ 'fidelity',
+ 'fiat',
+ 'ferrero',
+ 'ferrari',
+ 'feedback',
+ 'fedex',
+ 'fast',
+ 'fashion',
+ 'farmers',
+ 'farm',
+ 'fans',
+ 'fan',
+ 'family',
+ 'faith',
+ 'fairwinds',
+ 'fail',
+ 'fage',
+ 'extraspace',
+ 'express',
+ 'exposed',
+ 'expert',
+ 'exchange',
+ 'everbank',
+ 'events',
+ 'eus',
+ 'eurovision',
+ 'etisalat',
+ 'esurance',
+ 'estate',
+ 'esq',
+ 'erni',
+ 'ericsson',
+ 'equipment',
+ 'epson',
+ 'epost',
+ 'enterprises',
+ 'engineering',
+ 'engineer',
+ 'energy',
+ 'emerck',
+ 'email',
+ 'education',
+ 'edu',
+ 'edeka',
+ 'eco',
+ 'eat',
+ 'earth',
+ 'dvr',
+ 'dvag',
+ 'durban',
+ 'dupont',
+ 'duns',
+ 'dunlop',
+ 'duck',
+ 'dubai',
+ 'dtv',
+ 'drive',
+ 'download',
+ 'dot',
+ 'doosan',
+ 'domains',
+ 'doha',
+ 'dog',
+ 'dodge',
+ 'doctor',
+ 'docs',
+ 'dnp',
+ 'diy',
+ 'dish',
+ 'discover',
+ 'discount',
+ 'directory',
+ 'direct',
+ 'digital',
+ 'diet',
+ 'diamonds',
+ 'dhl',
+ 'dev',
+ 'design',
+ 'desi',
+ 'dentist',
+ 'dental',
+ 'democrat',
+ 'delta',
+ 'deloitte',
+ 'dell',
+ 'delivery',
+ 'degree',
+ 'deals',
+ 'dealer',
+ 'deal',
+ 'dds',
+ 'dclk',
+ 'day',
+ 'datsun',
+ 'dating',
+ 'date',
+ 'data',
+ 'dance',
+ 'dad',
+ 'dabur',
+ 'cyou',
+ 'cymru',
+ 'cuisinella',
+ 'csc',
+ 'cruises',
+ 'cruise',
+ 'crs',
+ 'crown',
+ 'cricket',
+ 'creditunion',
+ 'creditcard',
+ 'credit',
+ 'cpa',
+ 'courses',
+ 'coupons',
+ 'coupon',
+ 'country',
+ 'corsica',
+ 'coop',
+ 'cool',
+ 'cookingchannel',
+ 'cooking',
+ 'contractors',
+ 'contact',
+ 'consulting',
+ 'construction',
+ 'condos',
+ 'comsec',
+ 'computer',
+ 'compare',
+ 'company',
+ 'community',
+ 'commbank',
+ 'comcast',
+ 'com',
+ 'cologne',
+ 'college',
+ 'coffee',
+ 'codes',
+ 'coach',
+ 'clubmed',
+ 'club',
+ 'cloud',
+ 'clothing',
+ 'clinique',
+ 'clinic',
+ 'click',
+ 'cleaning',
+ 'claims',
+ 'cityeats',
+ 'city',
+ 'citic',
+ 'citi',
+ 'citadel',
+ 'cisco',
+ 'circle',
+ 'cipriani',
+ 'church',
+ 'chrysler',
+ 'chrome',
+ 'christmas',
+ 'chloe',
+ 'chintai',
+ 'cheap',
+ 'chat',
+ 'chase',
+ 'charity',
+ 'channel',
+ 'chanel',
+ 'cfd',
+ 'cfa',
+ 'cern',
+ 'ceo',
+ 'center',
+ 'ceb',
+ 'cbs',
+ 'cbre',
+ 'cbn',
+ 'cba',
+ 'catholic',
+ 'catering',
+ 'cat',
+ 'casino',
+ 'cash',
+ 'caseih',
+ 'case',
+ 'casa',
+ 'cartier',
+ 'cars',
+ 'careers',
+ 'career',
+ 'care',
+ 'cards',
+ 'caravan',
+ 'car',
+ 'capitalone',
+ 'capital',
+ 'capetown',
+ 'canon',
+ 'cancerresearch',
+ 'camp',
+ 'camera',
+ 'cam',
+ 'calvinklein',
+ 'call',
+ 'cal',
+ 'cafe',
+ 'cab',
+ 'bzh',
+ 'buzz',
+ 'buy',
+ 'business',
+ 'builders',
+ 'build',
+ 'bugatti',
+ 'budapest',
+ 'brussels',
+ 'brother',
+ 'broker',
+ 'broadway',
+ 'bridgestone',
+ 'bradesco',
+ 'box',
+ 'boutique',
+ 'bot',
+ 'boston',
+ 'bostik',
+ 'bosch',
+ 'boots',
+ 'booking',
+ 'book',
+ 'boo',
+ 'bond',
+ 'bom',
+ 'bofa',
+ 'boehringer',
+ 'boats',
+ 'bnpparibas',
+ 'bnl',
+ 'bmw',
+ 'bms',
+ 'blue',
+ 'bloomberg',
+ 'blog',
+ 'blockbuster',
+ 'blanco',
+ 'blackfriday',
+ 'black',
+ 'biz',
+ 'bio',
+ 'bingo',
+ 'bing',
+ 'bike',
+ 'bid',
+ 'bible',
+ 'bharti',
+ 'bet',
+ 'bestbuy',
+ 'best',
+ 'berlin',
+ 'bentley',
+ 'beer',
+ 'beauty',
+ 'beats',
+ 'bcn',
+ 'bcg',
+ 'bbva',
+ 'bbt',
+ 'bbc',
+ 'bayern',
+ 'bauhaus',
+ 'basketball',
+ 'baseball',
+ 'bargains',
+ 'barefoot',
+ 'barclays',
+ 'barclaycard',
+ 'barcelona',
+ 'bar',
+ 'bank',
+ 'band',
+ 'bananarepublic',
+ 'banamex',
+ 'baidu',
+ 'baby',
+ 'azure',
+ 'axa',
+ 'aws',
+ 'avianca',
+ 'autos',
+ 'auto',
+ 'author',
+ 'auspost',
+ 'audio',
+ 'audible',
+ 'audi',
+ 'auction',
+ 'attorney',
+ 'athleta',
+ 'associates',
+ 'asia',
+ 'asda',
+ 'arte',
+ 'art',
+ 'arpa',
+ 'army',
+ 'archi',
+ 'aramco',
+ 'arab',
+ 'aquarelle',
+ 'apple',
+ 'app',
+ 'apartments',
+ 'aol',
+ 'anz',
+ 'anquan',
+ 'android',
+ 'analytics',
+ 'amsterdam',
+ 'amica',
+ 'amfam',
+ 'amex',
+ 'americanfamily',
+ 'americanexpress',
+ 'alstom',
+ 'alsace',
+ 'ally',
+ 'allstate',
+ 'allfinanz',
+ 'alipay',
+ 'alibaba',
+ 'alfaromeo',
+ 'akdn',
+ 'airtel',
+ 'airforce',
+ 'airbus',
+ 'aigo',
+ 'aig',
+ 'agency',
+ 'agakhan',
+ 'africa',
+ 'afl',
+ 'afamilycompany',
+ 'aetna',
+ 'aero',
+ 'aeg',
+ 'adult',
+ 'ads',
+ 'adac',
+ 'actor',
+ 'active',
+ 'aco',
+ 'accountants',
+ 'accountant',
+ 'accenture',
+ 'academy',
+ 'abudhabi',
+ 'abogado',
+ 'able',
+ 'abc',
+ 'abbvie',
+ 'abbott',
+ 'abb',
+ 'abarth',
+ 'aarp',
+ 'aaa',
+ 'onion',
+ );
+
+ /**
+ * gTLDs
+ *
+ * @var array
+ */
+ private static $ccTLDs = array(
+ '한국',
+ '香港',
+ '澳門',
+ '新加坡',
+ '台灣',
+ '台湾',
+ '中國',
+ '中国',
+ 'გე',
+ 'ລາວ',
+ 'ไทย',
+ 'ලංකා',
+ 'ഭാരതം',
+ 'ಭಾರತ',
+ 'భారత్',
+ 'சிங்கப்பூர்',
+ 'இலங்கை',
+ 'இந்தியா',
+ 'ଭାରତ',
+ 'ભારત',
+ 'ਭਾਰਤ',
+ 'ভাৰত',
+ 'ভারত',
+ 'বাংলা',
+ 'भारोत',
+ 'भारतम्',
+ 'भारत',
+ 'ڀارت',
+ 'پاکستان',
+ 'موريتانيا',
+ 'مليسيا',
+ 'مصر',
+ 'قطر',
+ 'فلسطين',
+ 'عمان',
+ 'عراق',
+ 'سورية',
+ 'سودان',
+ 'تونس',
+ 'بھارت',
+ 'بارت',
+ 'ایران',
+ 'امارات',
+ 'المغرب',
+ 'السعودية',
+ 'الجزائر',
+ 'البحرين',
+ 'الاردن',
+ 'հայ',
+ 'қаз',
+ 'укр',
+ 'срб',
+ 'рф',
+ 'мон',
+ 'мкд',
+ 'ею',
+ 'бел',
+ 'бг',
+ 'ευ',
+ 'ελ',
+ 'zw',
+ 'zm',
+ 'za',
+ 'yt',
+ 'ye',
+ 'ws',
+ 'wf',
+ 'vu',
+ 'vn',
+ 'vi',
+ 'vg',
+ 've',
+ 'vc',
+ 'va',
+ 'uz',
+ 'uy',
+ 'us',
+ 'um',
+ 'uk',
+ 'ug',
+ 'ua',
+ 'tz',
+ 'tw',
+ 'tv',
+ 'tt',
+ 'tr',
+ 'tp',
+ 'to',
+ 'tn',
+ 'tm',
+ 'tl',
+ 'tk',
+ 'tj',
+ 'th',
+ 'tg',
+ 'tf',
+ 'td',
+ 'tc',
+ 'sz',
+ 'sy',
+ 'sx',
+ 'sv',
+ 'su',
+ 'st',
+ 'ss',
+ 'sr',
+ 'so',
+ 'sn',
+ 'sm',
+ 'sl',
+ 'sk',
+ 'sj',
+ 'si',
+ 'sh',
+ 'sg',
+ 'se',
+ 'sd',
+ 'sc',
+ 'sb',
+ 'sa',
+ 'rw',
+ 'ru',
+ 'rs',
+ 'ro',
+ 're',
+ 'qa',
+ 'py',
+ 'pw',
+ 'pt',
+ 'ps',
+ 'pr',
+ 'pn',
+ 'pm',
+ 'pl',
+ 'pk',
+ 'ph',
+ 'pg',
+ 'pf',
+ 'pe',
+ 'pa',
+ 'om',
+ 'nz',
+ 'nu',
+ 'nr',
+ 'np',
+ 'no',
+ 'nl',
+ 'ni',
+ 'ng',
+ 'nf',
+ 'ne',
+ 'nc',
+ 'na',
+ 'mz',
+ 'my',
+ 'mx',
+ 'mw',
+ 'mv',
+ 'mu',
+ 'mt',
+ 'ms',
+ 'mr',
+ 'mq',
+ 'mp',
+ 'mo',
+ 'mn',
+ 'mm',
+ 'ml',
+ 'mk',
+ 'mh',
+ 'mg',
+ 'mf',
+ 'me',
+ 'md',
+ 'mc',
+ 'ma',
+ 'ly',
+ 'lv',
+ 'lu',
+ 'lt',
+ 'ls',
+ 'lr',
+ 'lk',
+ 'li',
+ 'lc',
+ 'lb',
+ 'la',
+ 'kz',
+ 'ky',
+ 'kw',
+ 'kr',
+ 'kp',
+ 'kn',
+ 'km',
+ 'ki',
+ 'kh',
+ 'kg',
+ 'ke',
+ 'jp',
+ 'jo',
+ 'jm',
+ 'je',
+ 'it',
+ 'is',
+ 'ir',
+ 'iq',
+ 'io',
+ 'in',
+ 'im',
+ 'il',
+ 'ie',
+ 'id',
+ 'hu',
+ 'ht',
+ 'hr',
+ 'hn',
+ 'hm',
+ 'hk',
+ 'gy',
+ 'gw',
+ 'gu',
+ 'gt',
+ 'gs',
+ 'gr',
+ 'gq',
+ 'gp',
+ 'gn',
+ 'gm',
+ 'gl',
+ 'gi',
+ 'gh',
+ 'gg',
+ 'gf',
+ 'ge',
+ 'gd',
+ 'gb',
+ 'ga',
+ 'fr',
+ 'fo',
+ 'fm',
+ 'fk',
+ 'fj',
+ 'fi',
+ 'eu',
+ 'et',
+ 'es',
+ 'er',
+ 'eh',
+ 'eg',
+ 'ee',
+ 'ec',
+ 'dz',
+ 'do',
+ 'dm',
+ 'dk',
+ 'dj',
+ 'de',
+ 'cz',
+ 'cy',
+ 'cx',
+ 'cw',
+ 'cv',
+ 'cu',
+ 'cr',
+ 'co',
+ 'cn',
+ 'cm',
+ 'cl',
+ 'ck',
+ 'ci',
+ 'ch',
+ 'cg',
+ 'cf',
+ 'cd',
+ 'cc',
+ 'ca',
+ 'bz',
+ 'by',
+ 'bw',
+ 'bv',
+ 'bt',
+ 'bs',
+ 'br',
+ 'bq',
+ 'bo',
+ 'bn',
+ 'bm',
+ 'bl',
+ 'bj',
+ 'bi',
+ 'bh',
+ 'bg',
+ 'bf',
+ 'be',
+ 'bd',
+ 'bb',
+ 'ba',
+ 'az',
+ 'ax',
+ 'aw',
+ 'au',
+ 'at',
+ 'as',
+ 'ar',
+ 'aq',
+ 'ao',
+ 'an',
+ 'am',
+ 'al',
+ 'ai',
+ 'ag',
+ 'af',
+ 'ae',
+ 'ad',
+ 'ac',
+ );
+
+ /**
+ * get valid gTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidGTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $gTLD = implode('|', static::$gTLDs);
+ $regex = '(?:(?:' . $gTLD . ')(?=[^0-9a-z@+-]|$))';
+
+ return $regex;
+ }
+
+ /**
+ * get valid ccTLD regexp
+ *
+ * @staticvar string $regex
+ * @return string
+ */
+ final public static function getValidCcTLD()
+ {
+ static $regex;
+
+ if (!empty($regex)) {
+ return $regex;
+ }
+
+ $ccTLD = implode('|', static::$ccTLDs);
+ $regex = '(?:(?:' . $ccTLD . ')(?=[^0-9a-z@+-]|$))';
+
+ return $regex;
+ }
+}
diff --git a/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php
new file mode 100644
index 00000000..50dea27c
--- /dev/null
+++ b/plugins/jetpack/vendor/nojimage/twitter-text-php/lib/Twitter/Text/Validator.php
@@ -0,0 +1,258 @@
+<?php
+
+/**
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+
+namespace Twitter\Text;
+
+/**
+ * Twitter Validator Class
+ *
+ * Performs "validation" on tweets.
+ *
+ * Originally written by {@link http://github.com/mikenz Mike Cochrane}, this
+ * is based on code by {@link http://github.com/mzsanford Matt Sanford} and
+ * heavily modified by {@link http://github.com/ngnpope Nick Pope}.
+ *
+ * @author Nick Pope <nick@nickpope.me.uk>
+ * @copyright Copyright © 2010, Nick Pope
+ * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License v2.0
+ * @package Twitter.Text
+ */
+class Validator
+{
+ /**
+ *
+ * @var Extractor
+ */
+ protected $extractor;
+
+ /**
+ *
+ * @var Configuration
+ */
+ protected $config;
+
+ /**
+ * Provides fluent method chaining.
+ *
+ * @param Configuration $config A Twitter Text Configuration
+ *
+ * @see __construct()
+ *
+ * @return Validator
+ */
+ public static function create(Configuration $config = null)
+ {
+ return new self($config);
+ }
+
+ /**
+ * Reads in a tweet to be parsed and validates it.
+ *
+ * @param Configuration $config A Twitter Text Configuration
+ */
+ public function __construct(Configuration $config = null)
+ {
+ $this->setConfiguration($config);
+ $this->extractor = Extractor::create();
+ }
+
+ /**
+ * Setup configuration
+ *
+ * @see Configuration
+ *
+ * @param Configuration $config
+ * @return Validator
+ * @throws \InvalidArgumentException
+ */
+ public function setConfiguration(Configuration $config = null)
+ {
+ if ($config === null) {
+ // default use v2 config
+ $this->config = new Configuration();
+ } elseif (is_a($config, '\Twitter\Text\Configuration')) {
+ $this->config = $config;
+ } else {
+ throw new \InvalidArgumentException('Invalid Configuration');
+ }
+
+ return $this;
+ }
+
+ /**
+ * Get current configuration
+ *
+ * @return Configuration
+ */
+ public function getConfiguration()
+ {
+ return $this->config;
+ }
+
+ /**
+ * Check whether a tweet is valid.
+ *
+ * @param string $tweet The tweet to validate.
+ * @param Configuration $config using configuration
+ * @return boolean Whether the tweet is valid.
+ * @deprecated instead use \Twitter\Text\Parser::parseText()
+ */
+ public function isValidTweetText($tweet, Configuration $config = null)
+ {
+
+ return $this->parseTweet($tweet, $config)->valid;
+ }
+
+ /**
+ * Check whether a username is valid.
+ *
+ * @param string $username The username to validate.
+ * @return boolean Whether the username is valid.
+ */
+ public function isValidUsername($username)
+ {
+ $length = StringUtils::strlen($username);
+ if (empty($username) || !$length) {
+ return false;
+ }
+ $extracted = $this->extractor->extractMentionedScreennames($username);
+ return count($extracted) === 1 && $extracted[0] === substr($username, 1);
+ }
+
+ /**
+ * Check whether a list is valid.
+ *
+ * @param string $list The list name to validate.
+ * @return boolean Whether the list is valid.
+ */
+ public function isValidList($list)
+ {
+ $length = StringUtils::strlen($list);
+ if (empty($list) || !$length) {
+ return false;
+ }
+
+ if (preg_match(Regex::getValidMentionsOrListsMatcher(), $list, $matches)) {
+ $matches = array_pad($matches, 5, '');
+
+ return $matches[1] === '' && !empty($matches[4]) && $matches[4] && $matches[5] === '';
+ }
+
+ return false;
+ }
+
+ /**
+ * Check whether a hashtag is valid.
+ *
+ * @param string $hashtag The hashtag to validate.
+ * @return boolean Whether the hashtag is valid.
+ */
+ public function isValidHashtag($hashtag)
+ {
+ $length = StringUtils::strlen($hashtag);
+ if (empty($hashtag) || !$length) {
+ return false;
+ }
+ $extracted = $this->extractor->extractHashtags($hashtag);
+ return count($extracted) === 1 && $extracted[0] === substr($hashtag, 1);
+ }
+
+ /**
+ * Check whether a URL is valid.
+ *
+ * @param string $url The url to validate.
+ * @param boolean $unicode_domains Consider the domain to be unicode.
+ * @param boolean $require_protocol Require a protocol for valid domain?
+ *
+ * @return boolean Whether the URL is valid.
+ */
+ public function isValidURL($url, $unicode_domains = true, $require_protocol = true)
+ {
+ $length = StringUtils::strlen($url);
+ if (empty($url) || !$length) {
+ return false;
+ }
+
+ preg_match(Regex::getValidateUrlUnencodedMatcher(), $url, $matches);
+ $match = array_shift($matches);
+ if (!$matches || $match !== $url) {
+ return false;
+ }
+
+ list($scheme, $authority, $path, $query, $fragment) = array_pad($matches, 5, '');
+
+ # Check scheme, path, query, fragment:
+ if (
+ ($require_protocol && !(
+ self::isValidMatch($scheme, Regex::getValidateUrlSchemeMatcher())
+ && preg_match('/^https?$/i', $scheme)
+ ))
+ || !self::isValidMatch($path, Regex::getValidateUrlPathMatcher())
+ || !self::isValidMatch($query, Regex::getValidateUrlQueryMatcher(), true)
+ || !self::isValidMatch($fragment, Regex::getValidateUrlFragmentMatcher(), true)
+ ) {
+ return false;
+ }
+
+ # Check authority:
+ $authorityPattern = $unicode_domains ?
+ Regex::getValidateUrlUnicodeAuthorityMatcher() :
+ Regex::getValidateUrlAuthorityMatcher();
+
+ return self::isValidMatch($authority, $authorityPattern);
+ }
+
+ /**
+ * Determines the length of a tweet. Takes shortening of URLs into account.
+ *
+ * @param string $tweet The tweet to validate.
+ * @param Configuration $config using configuration
+ * @return int the length of a tweet.
+ * @deprecated instead use \Twitter\Text\Parser::parseTweet()
+ */
+ public function getTweetLength($tweet, Configuration $config = null)
+ {
+ return $this->parseTweet($tweet, $config)->weightedLength;
+ }
+
+ /**
+ * A helper function to check for a valid match. Used in URL validation.
+ *
+ * @param string $string The subject string to test.
+ * @param string $pattern The pattern to match against.
+ * @param boolean $optional Whether a match is compulsory or not.
+ *
+ * @return boolean Whether an exact match was found.
+ */
+ protected static function isValidMatch($string, $pattern, $optional = false)
+ {
+ $found = preg_match($pattern, $string, $matches);
+ if (!$optional) {
+ return (($string || $string === '') && $found && $matches[0] === $string);
+ }
+
+ return !(($string || $string === '') && (!$found || $matches[0] !== $string));
+ }
+
+ /**
+ * Parse tweet
+ *
+ * @param string $tweet The tweet to parse.
+ * @param Configuration|null $config using configuration
+ * @return ParseResults
+ */
+ private function parseTweet($tweet, Configuration $config = null)
+ {
+ if ($config === null) {
+ $config = $this->config;
+ }
+
+ return Parser::create($config)->parseTweet($tweet);
+ }
+}
diff --git a/plugins/jetpack/views/admin/deactivation-dialog.php b/plugins/jetpack/views/admin/deactivation-dialog.php
new file mode 100644
index 00000000..087c2ed1
--- /dev/null
+++ b/plugins/jetpack/views/admin/deactivation-dialog.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * The deactivation modal content.
+ *
+ * @package automattic/jetpack
+ *
+ * phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ * because $data is magically loaded by Jetpack::load_view()
+ */
+
+?>
+<div id="jetpack_deactivation_dialog">
+
+ <div class="jetpack_deactivation_dialog_content">
+ <p>
+ <?php
+ echo esc_html(
+ sprintf(
+ /* translators: %d is the number of additional plugins using the jetpack connection. */
+ _n(
+ 'The Jetpack Connection is also used by %d other plugin, and it will lose connection.',
+ 'The Jetpack Connection is also used by %d other plugins, and they will lose connection.',
+ count( $data ),
+ 'jetpack'
+ ),
+ count( $data )
+ )
+ );
+ ?>
+ </p>
+
+ <ul>
+ <?php foreach ( $data as $plugin_slug => $plugin_args ) : ?>
+
+ <li>
+ <span class="dashicons dashicons-warning"></span>
+ <span>
+ <?php echo esc_html( isset( $plugin_args['name'] ) ? $plugin_args['name'] : $plugin_slug ); ?>
+ <span>
+ </li>
+
+ <?php endforeach; ?>
+ </ul>
+
+
+ </div>
+
+
+ <div class="jetpack_deactivation_dialog_content__buttons-row-container">
+ <div class="jetpack_deactivation_dialog_content__buttons-row">
+ <p><?php esc_html_e( 'Are you sure you want to deactivate?', 'jetpack' ); ?></p>
+ <div class="jetpack_deactivation_dialog_content__buttons">
+ <button type="button" id="jetpack_deactivation_dialog_content__button-cancel"><?php esc_html_e( 'Cancel', 'jetpack' ); ?></button>
+ <button type="button" id="jetpack_deactivation_dialog_content__button-deactivate"><?php esc_html_e( 'Disconnect and Deactivate', 'jetpack' ); ?></button>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/plugins/jetpack/views/admin/jetpack-plugin-portal-containers.php b/plugins/jetpack/views/admin/jetpack-plugin-portal-containers.php
new file mode 100644
index 00000000..f303a9ef
--- /dev/null
+++ b/plugins/jetpack/views/admin/jetpack-plugin-portal-containers.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Containers for Jetpack to portal React components in the WP Admin.
+ *
+ * @package automattic/jetpack
+ */
+
+?>
+<div id="jetpack-plugin-portal-app">
+ <!--
+ React Managed
+ The app that needs to make use of portals can render here.
+ -->
+</div>
+<div id="jetpack-plugin-portal-sidecar">
+ <!--
+ React Managed
+ Used by portal components that may not have an anchor elsewhere on the page and need to dynamically render
+ This is especially useful for modals
+ -->
+</div>
diff --git a/plugins/jetpack/views/admin/network-settings.php b/plugins/jetpack/views/admin/network-settings.php
index 00d23ba4..7187ba71 100644
--- a/plugins/jetpack/views/admin/network-settings.php
+++ b/plugins/jetpack/views/admin/network-settings.php
@@ -1,86 +1,67 @@
-<?php extract( $data ); ?>
+<?php
+/**
+ * Jetpack Network Settings view template.
+ *
+ * @package automattic/jetpack
+ */
-<?php if ( isset( $_GET['updated'] ) && 'true' == $_GET['updated'] ) : ?>
+if ( isset( $_GET['updated'] ) && 'true' === $_GET['updated'] ) : // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ ?>
<div class="updated"><p><?php esc_html_e( 'Jetpack Network Settings Updated!', 'jetpack' ); ?></p></div>
<?php endif; ?>
-<?php if ( isset( $_GET['error'] ) && 'jetpack_protect_whitelist' == $_GET['error'] ) : ?>
+<?php
+if ( isset( $_GET['error'] ) && 'jetpack_protect_whitelist' === $_GET['error'] ) : // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ ?>
<div class="error"><p><?php esc_html_e( 'One of your IP addresses was not valid.', 'jetpack' ); ?></p></div>
<?php endif; ?>
<div class="wrap">
- <h2><?php _e( 'Network Settings', 'jetpack' ); ?></h2>
+ <h2><?php esc_html_e( 'Network Settings', 'jetpack' ); ?></h2>
<form action="edit.php?action=jetpack-network-settings" method="POST">
- <h3><?php _ex( 'Global', 'Affects all sites in a Multisite network.', 'jetpack' ); ?></h3>
- <p><?php _e( 'These settings affect all sites on the network.', 'jetpack' ); ?></p>
+ <h3><?php echo esc_html_x( 'Global', 'Affects all sites in a Multisite network.', 'jetpack' ); ?></h3>
+ <p><?php esc_html_e( 'These settings affect all sites on the network.', 'jetpack' ); ?></p>
<?php wp_nonce_field( 'jetpack-network-settings' ); ?>
<table class="form-table">
-<?php /*
<tr valign="top">
- <th scope="row"><label for="auto-connect">Auto-Connect New Sites</label></th>
+ <th scope="row"><label for="sub-site-override"><?php esc_html_e( 'Sub-site override', 'jetpack' ); ?></label></th>
<td>
- <input type="checkbox" name="auto-connect" id="auto-connect" value="1" <?php checked($options['auto-connect']); ?> />
- <label for="auto-connect">Automagically connect all new sites in the network.</label>
- </td>
- </tr>
-/**/ ?>
- <tr valign="top">
- <th scope="row"><label for="sub-site-override"><?php _e( 'Sub-site override', 'jetpack' ); ?></label></th>
- <td>
- <input type="checkbox" name="sub-site-connection-override" id="sub-site-override" value="1" <?php checked($options['sub-site-connection-override']); ?> />
- <label for="sub-site-override"><?php _e( 'Allow individual site administrators to manage their own connections (connect and disconnect) to <a href="//wordpress.com">WordPress.com</a>', 'jetpack' ); ?></label>
+ <input type="checkbox" name="sub-site-connection-override" id="sub-site-override" value="1" <?php checked( $data['options']['sub-site-connection-override'] ); // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable ?> />
+ <label for="sub-site-override"><?php esc_html_e( 'Allow individual site administrators to manage their own connections (connect and disconnect) to WordPress.com', 'jetpack' ); ?></label>
</td>
</tr>
<tr valign="top">
- <th scope="row"><label for="sub-site-override"><?php _e( 'Protect whitelist', 'jetpack' ); ?></label></th>
- <td>
- <p><strong><?php printf( __( 'Your current IP: %s', 'jetpack' ), jetpack_protect_get_ip() ); ?></strong></p>
- <textarea name="global-whitelist" style="width: 100%;" rows="8"><?php echo implode( PHP_EOL, $jetpack_protect_whitelist['global'] ); ?></textarea> <br />
- <label for="global-whitelist"><?php _e('IPv4 and IPv6 are acceptable. Enter multiple IPs on separate lines. <br />To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100', 'jetpack' ); ?></label>
- </td>
- </tr>
-<?php /* Remove the toggles for 2.9, re-evaluate how they're done and added for a 3.0 release. They don't feel quite right yet.
- <tr>
- <th scope="row"><label for="manage_auto_activated_modules">Manage modules</label></th>
+ <th scope="row"><label for="sub-site-override"><?php esc_html_e( 'Protect whitelist', 'jetpack' ); ?></label></th>
<td>
- <input type="checkbox" name="manage_auto_activated_modules" id="manage_auto_activated_modules" onclick="jQuery('#jpms_settings_modules').toggle();" value="1" <?php checked( $options['manage_auto_activated_modules'] ); ?>/>
- <label for="manage_auto_activated_modules">Control which modules are auto-activated</label>
+ <p><strong>
+ <?php
+ $protect_ip = jetpack_protect_get_ip();
+ if ( ! empty( $protect_ip ) ) {
+ printf(
+ /* Translators: placeholder is an IP address. */
+ esc_html__( 'Your current IP: %1$s', 'jetpack' ),
+ esc_html( $protect_ip )
+ );
+ }
+ ?>
+ </strong></p>
+ <?php
+ echo '<textarea name="global-whitelist" style="width: 100%;" rows="8">'; // echo to avoid tabs displayed in textarea. See https://github.com/Automattic/jetpack/pull/21151/files#r713922521.
+
+ foreach ( $data['jetpack_protect_whitelist']['global'] as $ip ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
+ echo esc_html( $ip ) . "\n";
+ }
+ ?>
+ </textarea> <br />
+ <label for="global-whitelist">
+ <?php esc_html_e( 'IPv4 and IPv6 are acceptable. Enter multiple IPs on separate lines.', 'jetpack' ); ?>
+ <br />
+ <?php esc_html_e( 'To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100', 'jetpack' ); ?>
+ </label>
</td>
</tr>
-/**/ ?>
- </table>
-
-<?php /* Remove the toggles for 2.9, re-evaluate how they're done and added for a 3.0 release. They don't feel quite right yet.
- <?php
- $display_modules = ( 1 == $this->get_option( 'manage_auto_activated_modules' ) )? 'block': 'none';
- ?>
- <div id="jpms_settings_modules" style="display: <?php echo $display_modules; ?>">
- <h3><?php _e( 'Modules', 'jetpack' ); ?></h3>
- <p><?php _e( 'Modules to be automatically activated when new sites are created.', 'jetpack' ); ?></p>
- <table>
- <thead>
- <!--
- <tr>
- <td><input type="checkbox"></td>
- <td>Only show checked modules on subsites?</td>
- </tr>
- -->
- </thead>
- <tbody>
-
- <?php foreach( $modules AS $module ) { ?>
- <tr>
- <td><input type="checkbox" name="modules[]" value="<?php echo $module['module']; ?>" id="<?php echo $module['module']; ?>" <?php checked( in_array( $module['module'], $options['modules'] ) ); ?>/></td>
- <td><label for="<?php echo $module['module']; ?>"><?php echo $module['name']; ?></label></td>
- </tr>
-
- <?php } ?>
- </tbody>
</table>
- </div>
-/**/ ?>
-
<?php submit_button(); ?>
</form>
diff --git a/plugins/public-post-preview/.npmrc b/plugins/public-post-preview/.npmrc
new file mode 100644
index 00000000..aafab166
--- /dev/null
+++ b/plugins/public-post-preview/.npmrc
@@ -0,0 +1,2 @@
+save-exact = true
+engine-strict = true
diff --git a/plugins/public-post-preview/.nvmrc b/plugins/public-post-preview/.nvmrc
new file mode 100644
index 00000000..b009dfb9
--- /dev/null
+++ b/plugins/public-post-preview/.nvmrc
@@ -0,0 +1 @@
+lts/*
diff --git a/plugins/public-post-preview/CHANGELOG.md b/plugins/public-post-preview/CHANGELOG.md
index 4f2bf1d4..7b1007a0 100755
--- a/plugins/public-post-preview/CHANGELOG.md
+++ b/plugins/public-post-preview/CHANGELOG.md
@@ -1,5 +1,16 @@
# Changelog
+## 2.9.3 (2021-03-12)
+* Compatibility with WordPress 5.7.
+* Create a fresh preview URL when enabling public preview.
+* Add check for possibly undefined PHP "superglobals". Props [@waviaei](https://github.com/waviaei).
+
+## 2.9.2 (2020-10-03):
+* Fix saving of preview status without a previous Ajax request.
+
+## 2.9.1 (2020-07-25):
+* Improve HTTP status codes for expired/invalid preview links.
+
## 2.9.0 (2019-07-20):
* Requires WordPress 5.0
* Requires PHP 5.6
diff --git a/plugins/public-post-preview/js/dist/gutenberg-integration.asset.php b/plugins/public-post-preview/js/dist/gutenberg-integration.asset.php
new file mode 100644
index 00000000..732d380f
--- /dev/null
+++ b/plugins/public-post-preview/js/dist/gutenberg-integration.asset.php
@@ -0,0 +1 @@
+<?php return array('dependencies' => array('lodash', 'wp-components', 'wp-compose', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-i18n', 'wp-plugins', 'wp-polyfill'), 'version' => 'd531c624345a43a19eb64679ce599064'); \ No newline at end of file
diff --git a/plugins/public-post-preview/js/dist/gutenberg-integration.js b/plugins/public-post-preview/js/dist/gutenberg-integration.js
new file mode 100644
index 00000000..a2331c4a
--- /dev/null
+++ b/plugins/public-post-preview/js/dist/gutenberg-integration.js
@@ -0,0 +1 @@
+!function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=16)}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){e.exports=window.wp.compose},function(e,t){function r(t){return e.exports=r=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},r(t)}e.exports=r},function(e,t){e.exports=window.wp.data},function(e,t){e.exports=window.wp.editPost},function(e,t){e.exports=window.wp.plugins},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t){function r(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}e.exports=function(e,t,n){return t&&r(e.prototype,t),n&&r(e,n),e}},function(e,t,r){var n=r(14);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&n(e,t)}},function(e,t,r){var n=r(15),a=r(3);e.exports=function(e,t){return!t||"object"!==n(t)&&"function"!=typeof t?a(e):t}},function(e,t){e.exports=window.lodash},function(e,t){function r(t,n){return e.exports=r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(t,n)}e.exports=r},function(e,t){function r(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=r=function(e){return typeof e}:e.exports=r=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(t)}e.exports=r},function(e,t,r){"use strict";r.r(t);var n=r(8),a=r(9),i=r.n(a),o=r(10),c=r.n(o),s=r(3),u=r.n(s),l=r(11),f=r.n(l),p=r(12),d=r.n(p),h=r(5),v=r.n(h),b=r(0),y=r(13),w=function(){function e(e){var t=this;this._insertTag=function(e){var r;r=0===t.tags.length?t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,r),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var r=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{r.insertRule(e,r.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),m="-ms-",g="-moz-",x="-webkit-",k="comm",O="rule",j="decl",C=Math.abs,_=String.fromCharCode;function S(e){return e.trim()}function P(e,t,r){return e.replace(t,r)}function $(e,t){return e.indexOf(t)}function A(e,t){return 0|e.charCodeAt(t)}function E(e,t,r){return e.slice(t,r)}function R(e){return e.length}function I(e){return e.length}function z(e,t){return t.push(e),e}var N=1,U=1,M=0,D=0,F=0,T="";function G(e,t,r,n,a,i,o){return{value:e,root:t,parent:r,type:n,props:a,children:i,line:N,column:U,length:o,return:""}}function H(e,t,r){return G(e,t.root,t.parent,r,t.props,t.children,0)}function V(){return F=D<M?A(T,D++):0,U++,10===F&&(U=1,N++),F}function q(){return A(T,D)}function L(){return D}function W(e,t){return E(T,e,t)}function B(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Z(e){return N=U=1,M=R(T=e),D=0,[]}function J(e){return T="",e}function K(e){return S(W(D-1,function e(t){for(;V();)switch(F){case t:return D;case 34:case 39:return e(34===t||39===t?t:F);case 40:41===t&&e(t);break;case 92:V()}return D}(91===e?e+2:40===e?e+1:e)))}function Q(e){for(;(F=q())&&F<33;)V();return B(e)>2||B(F)>3?"":" "}function X(e,t){for(;V()&&e+F!==57&&(e+F!==84||47!==q()););return"/*"+W(t,D-1)+"*"+_(47===e?e:V())}function Y(e){for(;!B(q());)V();return W(e,D)}function ee(e,t,r,n,a,i,o,c,s,u,l){for(var f=a-1,p=0===a?i:[""],d=I(p),h=0,v=0,b=0;h<n;++h)for(var y=0,w=E(e,f+1,f=C(v=o[h])),m=e;y<d;++y)(m=S(v>0?p[y]+" "+w:P(w,/&\f/g,p[y])))&&(s[b++]=m);return G(e,t,r,0===a?O:c,s,u,l)}function te(e,t,r){return G(e,t,r,k,_(F),E(e,2,-2),0)}function re(e,t,r,n){return G(e,t,r,j,E(e,0,n),E(e,n+1,-1),n)}function ne(e,t){for(var r="",n=I(e),a=0;a<n;a++)r+=t(e[a],a,e,t)||"";return r}function ae(e,t,r,n){switch(e.type){case"@import":case j:return e.return=e.return||e.value;case k:return"";case O:e.value=e.props.join(",")}return R(r=ne(e.children,n))?e.return=e.value+"{"+r+"}":""}function ie(e){return function(t){t.root||(t=t.return)&&e(t)}}var oe=function(e){var t={};return function(r){return void 0===t[r]&&(t[r]=e(r)),t[r]}},ce=new WeakMap,se=function(e){if("rule"===e.type&&e.parent&&e.length){for(var t=e.value,r=e.parent,n=e.column===r.column&&e.line===r.line;"rule"!==r.type;)if(!(r=r.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||ce.get(r))&&!n){ce.set(e,!0);for(var a=[],i=function(e,t){return J(function(e,t){var r=-1,n=44;do{switch(B(n)){case 0:38===n&&12===q()&&(t[r]=1),e[r]+=Y(D-1);break;case 2:e[r]+=K(n);break;case 4:if(44===n){e[++r]=58===q()?"&\f":"",t[r]=e[r].length;break}default:e[r]+=_(n)}}while(n=V());return e}(Z(e),t))}(t,a),o=r.props,c=0,s=0;c<i.length;c++)for(var u=0;u<o.length;u++,s++)e.props[s]=a[c]?i[c].replace(/&\f/g,o[u]):o[u]+" "+i[c]}}},ue=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},le=[function(e,t,r,n){if(!e.return)switch(e.type){case j:e.return=function e(t,r){switch(function(e,t){return(((t<<2^A(e,0))<<2^A(e,1))<<2^A(e,2))<<2^A(e,3)}(t,r)){case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return x+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return x+t+g+t+m+t+t;case 6828:case 4268:return x+t+m+t+t;case 6165:return x+t+m+"flex-"+t+t;case 5187:return x+t+P(t,/(\w+).+(:[^]+)/,x+"box-$1$2"+m+"flex-$1$2")+t;case 5443:return x+t+m+"flex-item-"+P(t,/flex-|-self/,"")+t;case 4675:return x+t+m+"flex-line-pack"+P(t,/align-content|flex-|-self/,"")+t;case 5548:return x+t+m+P(t,"shrink","negative")+t;case 5292:return x+t+m+P(t,"basis","preferred-size")+t;case 6060:return x+"box-"+P(t,"-grow","")+x+t+m+P(t,"grow","positive")+t;case 4554:return x+P(t,/([^-])(transform)/g,"$1"+x+"$2")+t;case 6187:return P(P(P(t,/(zoom-|grab)/,x+"$1"),/(image-set)/,x+"$1"),t,"")+t;case 5495:case 3959:return P(t,/(image-set\([^]*)/,x+"$1$`$1");case 4968:return P(P(t,/(.+:)(flex-)?(.*)/,x+"box-pack:$3"+m+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+x+t+t;case 4095:case 3583:case 4068:case 2532:return P(t,/(.+)-inline(.+)/,x+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(R(t)-1-r>6)switch(A(t,r+1)){case 102:r=A(t,r+3);case 109:return P(t,/(.+:)(.+)-([^]+)/,"$1"+x+"$2-$3$1"+g+(108==r?"$3":"$2-$3"))+t;case 115:return~$(t,"stretch")?e(P(t,"stretch","fill-available"),r)+t:t}break;case 4949:if(115!==A(t,r+1))break;case 6444:switch(A(t,R(t)-3-(~$(t,"!important")&&10))){case 107:case 111:return P(t,t,x+t)+t;case 101:return P(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+x+(45===A(t,14)?"inline-":"")+"box$3$1"+x+"$2$3$1"+m+"$2box$3")+t}break;case 5936:switch(A(t,r+11)){case 114:return x+t+m+P(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return x+t+m+P(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return x+t+m+P(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return x+t+m+t+t}return t}(e.value,e.length);break;case"@keyframes":return ne([H(P(e.value,"@","@"+x),e,"")],n);case O:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return ne([H(P(t,/:(read-\w+)/,":-moz-$1"),e,"")],n);case"::placeholder":return ne([H(P(t,/:(plac\w+)/,":"+x+"input-$1"),e,""),H(P(t,/:(plac\w+)/,":-moz-$1"),e,""),H(P(t,/:(plac\w+)/,m+"input-$1"),e,"")],n)}return""}))}}],fe=function(e){var t=e.key;if("css"===t){var r=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(r,(function(e){document.head.appendChild(e),e.setAttribute("data-s","")}))}var n,a,i=e.stylisPlugins||le,o={},c=[];n=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll("style[data-emotion]"),(function(e){var r=e.getAttribute("data-emotion").split(" ");if(r[0]===t){for(var n=1;n<r.length;n++)o[r[n]]=!0;c.push(e)}}));var s,u=[se,ue],l=[ae,ie((function(e){s.insert(e)}))],f=function(e){var t=I(e);return function(r,n,a,i){for(var o="",c=0;c<t;c++)o+=e[c](r,n,a,i)||"";return o}}(u.concat(i,l));a=function(e,t,r,n){s=r,ne(function(e){return J(function e(t,r,n,a,i,o,c,s,u){for(var l=0,f=0,p=c,d=0,h=0,v=0,b=1,y=1,w=1,m=0,g="",x=i,k=o,O=a,j=g;y;)switch(v=m,m=V()){case 34:case 39:case 91:case 40:j+=K(m);break;case 9:case 10:case 13:case 32:j+=Q(v);break;case 47:switch(q()){case 42:case 47:z(te(X(V(),L()),r,n),u);break;default:j+="/"}break;case 123*b:s[l++]=R(j)*w;case 125*b:case 59:case 0:switch(m){case 0:case 125:y=0;case 59+f:h>0&&z(h>32?re(j+";",a,n,p-1):re(P(j," ","")+";",a,n,p-2),u);break;case 59:j+=";";default:if(z(O=ee(j,r,n,l,f,i,s,g,x=[],k=[],p),o),123===m)if(0===f)e(j,r,O,O,x,o,p,s,k);else switch(d){case 100:case 109:case 115:e(t,O,O,a&&z(ee(t,O,O,0,0,i,s,g,i,x=[],p),k),i,k,p,s,a?x:k);break;default:e(j,O,O,O,[""],k,p,s,k)}}l=f=h=0,b=w=1,g=j="",p=c;break;case 58:p=1+R(j),h=v;default:switch(j+=_(m),m*b){case 38:w=f>0?1:(j+="\f",-1);break;case 44:s[l++]=(R(j)-1)*w,w=1;break;case 64:45===q()&&(j+=K(V())),d=q(),f=R(g=j+=Y(L())),m++;break;case 45:45===v&&2==R(j)&&(b=0)}}return o}("",null,null,null,[""],e=Z(e),0,[0],e))}(e?e+"{"+t.styles+"}":t.styles),f),n&&(p.inserted[t.name]=!0)};var p={key:t,sheet:new w({key:t,container:n,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend}),nonce:e.nonce,inserted:o,registered:{},insert:a};return p.sheet.hydrate(c),p},pe=function(e){for(var t,r=0,n=0,a=e.length;a>=4;++n,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(n)|(255&e.charCodeAt(++n))<<8|(255&e.charCodeAt(++n))<<16|(255&e.charCodeAt(++n))<<24))+(59797*(t>>>16)<<16),r=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(a){case 3:r^=(255&e.charCodeAt(n+2))<<16;case 2:r^=(255&e.charCodeAt(n+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(n)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)},de={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},he=/[A-Z]|^ms/g,ve=/_EMO_([^_]+?)_([^]*?)_EMO_/g,be=function(e){return 45===e.charCodeAt(1)},ye=function(e){return null!=e&&"boolean"!=typeof e},we=oe((function(e){return be(e)?e:e.replace(he,"-$&").toLowerCase()})),me=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ve,(function(e,t,r){return xe={name:t,styles:r,next:xe},t}))}return 1===de[e]||be(e)||"number"!=typeof t||0===t?t:t+"px"};function ge(e,t,r){if(null==r)return"";if(void 0!==r.__emotion_styles)return r;switch(typeof r){case"boolean":return"";case"object":if(1===r.anim)return xe={name:r.name,styles:r.styles,next:xe},r.name;if(void 0!==r.styles){var n=r.next;if(void 0!==n)for(;void 0!==n;)xe={name:n.name,styles:n.styles,next:xe},n=n.next;return r.styles+";"}return function(e,t,r){var n="";if(Array.isArray(r))for(var a=0;a<r.length;a++)n+=ge(e,t,r[a])+";";else for(var i in r){var o=r[i];if("object"!=typeof o)null!=t&&void 0!==t[o]?n+=i+"{"+t[o]+"}":ye(o)&&(n+=we(i)+":"+me(i,o)+";");else if(!Array.isArray(o)||"string"!=typeof o[0]||null!=t&&void 0!==t[o[0]]){var c=ge(e,t,o);switch(i){case"animation":case"animationName":n+=we(i)+":"+c+";";break;default:n+=i+"{"+c+"}"}}else for(var s=0;s<o.length;s++)ye(o[s])&&(n+=we(i)+":"+me(i,o[s])+";")}return n}(e,t,r);case"function":if(void 0!==e){var a=xe,i=r(e);return xe=a,ge(e,t,i)}}if(null==t)return r;var o=t[r];return void 0!==o?o:r}var xe,ke=/label:\s*([^\s;\n{]+)\s*;/g,Oe=function(e,t,r){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var n=!0,a="";xe=void 0;var i=e[0];null==i||void 0===i.raw?(n=!1,a+=ge(r,t,i)):a+=i[0];for(var o=1;o<e.length;o++)a+=ge(r,t,e[o]),n&&(a+=i[o]);ke.lastIndex=0;for(var c,s="";null!==(c=ke.exec(a));)s+="-"+c[1];return{name:pe(a)+s,styles:a,next:xe}};function je(e,t,r){var n="";return r.split(" ").forEach((function(r){void 0!==e[r]?t.push(e[r]+";"):n+=r+" "})),n}var Ce=function(e,t,r){var n=e.key+"-"+t.name;if(!1===r&&void 0===e.registered[n]&&(e.registered[n]=t.styles),void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+n:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}};function _e(e,t){if(void 0===e.inserted[t.name])return e.insert("",t,e.sheet,!0)}function Se(e,t,r){var n=[],a=je(e,n,r);return n.length<2?r:a+t(n)}var Pe=function e(t){for(var r="",n=0;n<t.length;n++){var a=t[n];if(null!=a){var i=void 0;switch(typeof a){case"boolean":break;case"object":if(Array.isArray(a))i=e(a);else for(var o in i="",a)a[o]&&o&&(i&&(i+=" "),i+=o);break;default:i=a}i&&(r&&(r+=" "),r+=i)}}return r},$e=function(e){var t=fe({key:"css"});t.sheet.speedy=function(e){this.isSpeedy=e},t.compat=!0;var r=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var a=Oe(r,t.registered,void 0);return Ce(t,a,!1),t.key+"-"+a.name};return{css:r,cx:function(){for(var e=arguments.length,n=new Array(e),a=0;a<e;a++)n[a]=arguments[a];return Se(t.registered,r,Pe(n))},injectGlobal:function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var a=Oe(r,t.registered);_e(t,a)},keyframes:function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];var a=Oe(r,t.registered),i="animation-"+a.name;return _e(t,{name:a.name,styles:"@keyframes "+i+"{"+a.styles+"}"}),i},hydrate:function(e){e.forEach((function(e){t.inserted[e]=!0}))},flush:function(){t.registered={},t.inserted={},t.sheet.flush()},sheet:t.sheet,cache:t,getRegisteredStyles:je.bind(null,t.registered),merge:Se.bind(null,t.registered,r)}}(),Ae=($e.flush,$e.hydrate,$e.cx,$e.merge,$e.getRegisteredStyles,$e.injectGlobal,$e.keyframes,$e.css),Ee=($e.sheet,$e.cache,r(1)),Re=r(2),Ie=r(6),ze=r(7),Ne=r(4);var Ue=window,Me=Ue.ajaxurl,De=Ue.DSPublicPostPreviewData,Fe=Ae({name:"pzaqto",styles:"flex-direction:column;align-items:stretch;margin-top:10px"}),Te=Ae({name:"1gqzxr1",styles:"width:100%;margin-right:12px"}),Ge=Ae({name:"iijanu",styles:"font-style:italic;color:#666;margin:0.2em 0 0!important"}),He=Ae({name:"gqlj34",styles:"display:flex;justify-content:flex-start;align-items:center;margin:0"}),Ve=Object(b.createElement)(Re.SVG,{width:"20",height:"20",viewBox:"0 0 14 16",xmlns:"http://www.w3.org/2000/svg"},Object(b.createElement)(Re.Path,{fillRule:"evenodd",d:"M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"})),qe=function(e){f()(a,e);var t,r,n=(t=a,r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,n=v()(t);if(r){var a=v()(this).constructor;e=Reflect.construct(n,arguments,a)}else e=n.apply(this,arguments);return d()(this,e)});function a(e){var t;return i()(this,a),(t=n.call(this,e)).state={previewEnabled:De.previewEnabled,previewUrl:De.previewUrl,hasCopied:!1},t.previewUrlInput=Object(b.createRef)(),t.onChange=t.onChange.bind(u()(t)),t.onPreviewUrlInputFocus=t.onPreviewUrlInputFocus.bind(u()(t)),t}return c()(a,[{key:"onChange",value:function(e){var t=this,r=new window.FormData;r.append("checked",e),r.append("post_ID",this.props.postId),this.sendRequest(r).then((function(e){if(e.status>=200&&e.status<300)return e;throw e})).then((function(e){return e.json()})).then((function(e){var r;if(!e.success)throw e;var n=!t.state.previewEnabled;t.setState({previewEnabled:n,previewUrl:(null==e||null===(r=e.data)||void 0===r?void 0:r.preview_url)||""}),t.props.createNotice("info",n?Object(Ee.__)("Public preview enabled.","public-post-preview"):Object(Ee.__)("Public preview disabled.","public-post-preview"),{id:"public-post-preview",isDismissible:!0,type:"snackbar"})})).catch((function(){t.props.createNotice("error",Object(Ee.__)("Error while changing the public preview status.","public-post-preview"),{id:"public-post-preview",isDismissible:!0,type:"snackbar"})}))}},{key:"onPreviewUrlInputFocus",value:function(){this.previewUrlInput.current.focus(),this.previewUrlInput.current.select()}},{key:"sendRequest",value:function(e){return e.append("action","public-post-preview"),e.append("_ajax_nonce",De.nonce),window.fetch(Me,{method:"POST",body:e})}},{key:"render",value:function(){var e=this,t=this.state,r=t.previewEnabled,n=t.previewUrl,a=t.hasCopied,i=a?Object(Ee.__)("Preview URL copied","public-post-preview"):Object(Ee.__)("Copy the preview URL","public-post-preview");return Object(b.createElement)(b.Fragment,null,Object(b.createElement)(ze.PluginPostStatusInfo,null,Object(b.createElement)(Re.CheckboxControl,{label:Object(Ee.__)("Enable public preview","public-post-preview"),checked:r,onChange:this.onChange})),r&&Object(b.createElement)(ze.PluginPostStatusInfo,{className:Fe},Object(b.createElement)("p",{className:He},Object(b.createElement)("label",{htmlFor:"public-post-preview-url",className:"screen-reader-text"},Object(Ee.__)("Preview URL","public-post-preview")),Object(b.createElement)("input",{ref:this.previewUrlInput,type:"text",id:"public-post-preview-url",className:Te,value:n,readOnly:!0,onFocus:this.onPreviewUrlInputFocus}),Object(b.createElement)(Re.ClipboardButton,{text:n,label:i,onCopy:function(){return e.setState({hasCopied:!0})},onFinishCopy:function(){return e.setState({hasCopied:!1})},"aria-disabled":a,icon:Ve})),Object(b.createElement)("p",{className:Ge},Object(Ee.__)("Copy and share this preview URL.","public-post-preview"))))}}]),a}(b.Component),Le=Object(Ne.compose)([Object(Ie.withSelect)((function(e){var t=e("core").getPostType,r=e("core/editor"),n=r.getCurrentPostId,a=r.getEditedPostAttribute,i=t(a("type"));return{postId:n(),status:a("status"),isViewable:Object(y.get)(i,["viewable"],!1)}})),Object(Ne.ifCondition)((function(e){return e.isViewable})),Object(Ne.ifCondition)((function(e){var t=e.status;return-1===["auto-draft","publish","private"].indexOf(t)})),Object(Ie.withDispatch)((function(e){return{createNotice:e("core/notices").createNotice}}))])(qe);Object(n.registerPlugin)("public-post-preview",{render:Le})}]); \ No newline at end of file
diff --git a/plugins/public-post-preview/js/public-post-preview.js b/plugins/public-post-preview/js/public-post-preview.js
index d35e962d..cfbed653 100644
--- a/plugins/public-post-preview/js/public-post-preview.js
+++ b/plugins/public-post-preview/js/public-post-preview.js
@@ -1,26 +1,27 @@
-( function( $ ) {
- DSPublicPostPreview = {
-
+/* eslint-disable no-var, object-shorthand */
+( function ( $, ajaxurl, l10n ) {
+ var DSPublicPostPreview = {
/**
* Initializes the plugin.
*
* @since 2.0.0
*/
- initialize : function() {
+ initialize: function () {
var t = this;
t.checkbox = $( '#public-post-preview' );
- t.link = $( '#public-post-preview-link' );
- t.nonce = $( '#public_post_preview_wpnonce' );
- t.status = $( '#public-post-preview-ajax' );
+ t.link = $( '#public-post-preview-link' );
+ t.linkInput = t.link.find( 'input' );
+ t.nonce = $( '#public_post_preview_wpnonce' );
+ t.status = $( '#public-post-preview-ajax' );
t.status.css( 'opacity', 0 );
- t.checkbox.bind( 'change', function() {
+ t.checkbox.bind( 'change', function () {
t.change();
} );
- t.link.find( 'input' ).on( 'focus', function() {
+ t.linkInput.on( 'focus', function () {
$( this ).select();
} );
},
@@ -30,31 +31,38 @@
*
* @since 2.0.0
*/
- change : function() {
+ change: function () {
var t = this,
checked = t.checkbox.prop( 'checked' ) ? 'true' : 'false';
- // Toggle visibility of the link
- t.link.toggle();
-
// Disable the checkbox, to prevent double AJAX requests
t.checkbox.prop( 'disabled', 'disabled' );
t.request(
{
- _ajax_nonce : t.nonce.val(),
- checked : checked,
- post_ID : $( '#post_ID' ).val()
+ _ajax_nonce: t.nonce.val(),
+ checked: checked,
+ post_ID: $( '#post_ID' ).val(),
},
- function( data ) {
- if ( data.success ) {
+ function ( response ) {
+ if ( response.success ) {
if ( 'true' === checked ) {
- t.status.text( DSPublicPostPreviewL10n.enabled );
+ t.status.text( l10n.enabled );
t._pulsate( t.status, 'green' );
} else {
- t.status.text( DSPublicPostPreviewL10n.disabled );
+ t.status.text( l10n.disabled );
t._pulsate( t.status, 'red' );
}
+
+ // Add preview link
+ if ( response.data && response.data.preview_url ) {
+ t.linkInput.val( response.data.preview_url );
+ } else {
+ t.linkInput.val( '' );
+ }
+
+ // Toggle visibility of the link
+ t.link.toggle();
}
// Enable the checkbox again
@@ -71,17 +79,14 @@
* @param {Object} data The data to send.
* @param {Object} callback Callback function for a successful request.
*/
- request : function( data, callback ) {
+ request: function ( data, callback ) {
$.ajax( {
type: 'POST',
url: ajaxurl,
- data: $.extend(
- data,
- {
- action: 'public-post-preview'
- }
- ),
- success : callback
+ data: $.extend( data, {
+ action: 'public-post-preview',
+ } ),
+ success: callback,
} );
},
@@ -91,18 +96,17 @@
* @since 2.0.0
*
* @param {Object} e The element.
- * @param {String} color The text color of the element.
+ * @param {string} color The text color of the element.
*/
- _pulsate : function( e, color ) {
+ _pulsate: function ( e, color ) {
e.css( 'color', color )
.animate( { opacity: 1 }, 600, 'linear' )
- .animate( { opacity: 0 }, 600, 'linear', function() {
+ .animate( { opacity: 0 }, 600, 'linear', function () {
e.empty();
} );
- }
+ },
};
// Document is ready.
$( DSPublicPostPreview.initialize() );
-
-} )( jQuery );
+} )( window.jQuery, window.ajaxurl, window.DSPublicPostPreviewL10n );
diff --git a/plugins/public-post-preview/js/public-post-preview.min.js b/plugins/public-post-preview/js/public-post-preview.min.js
index fe6bbcc2..b1622468 100644
--- a/plugins/public-post-preview/js/public-post-preview.min.js
+++ b/plugins/public-post-preview/js/public-post-preview.min.js
@@ -1 +1 @@
-!function(e){DSPublicPostPreview={initialize:function(){var t=this;t.checkbox=e("#public-post-preview"),t.link=e("#public-post-preview-link"),t.nonce=e("#public_post_preview_wpnonce"),t.status=e("#public-post-preview-ajax"),t.status.css("opacity",0),t.checkbox.bind("change",function(){t.change()}),t.link.find("input").on("focus",function(){e(this).select()})},change:function(){var t=this,i=t.checkbox.prop("checked")?"true":"false";t.link.toggle(),t.checkbox.prop("disabled","disabled"),t.request({_ajax_nonce:t.nonce.val(),checked:i,post_ID:e("#post_ID").val()},function(e){e.success&&("true"===i?(t.status.text(DSPublicPostPreviewL10n.enabled),t._pulsate(t.status,"green")):(t.status.text(DSPublicPostPreviewL10n.disabled),t._pulsate(t.status,"red"))),t.checkbox.prop("disabled","")})},request:function(t,i){e.ajax({type:"POST",url:ajaxurl,data:e.extend(t,{action:"public-post-preview"}),success:i})},_pulsate:function(e,t){e.css("color",t).animate({opacity:1},600,"linear").animate({opacity:0},600,"linear",function(){e.empty()})}},e(DSPublicPostPreview.initialize())}(jQuery); \ No newline at end of file
+!function(e,t,i){var n={initialize:function(){var t=this;t.checkbox=e("#public-post-preview"),t.link=e("#public-post-preview-link"),t.linkInput=t.link.find("input"),t.nonce=e("#public_post_preview_wpnonce"),t.status=e("#public-post-preview-ajax"),t.status.css("opacity",0),t.checkbox.bind("change",(function(){t.change()})),t.linkInput.on("focus",(function(){e(this).select()}))},change:function(){var t=this,n=t.checkbox.prop("checked")?"true":"false";t.checkbox.prop("disabled","disabled"),t.request({_ajax_nonce:t.nonce.val(),checked:n,post_ID:e("#post_ID").val()},(function(e){e.success&&("true"===n?(t.status.text(i.enabled),t._pulsate(t.status,"green")):(t.status.text(i.disabled),t._pulsate(t.status,"red")),e.data&&e.data.preview_url?t.linkInput.val(e.data.preview_url):t.linkInput.val(""),t.link.toggle()),t.checkbox.prop("disabled","")}))},request:function(i,n){e.ajax({type:"POST",url:t,data:e.extend(i,{action:"public-post-preview"}),success:n})},_pulsate:function(e,t){e.css("color",t).animate({opacity:1},600,"linear").animate({opacity:0},600,"linear",(function(){e.empty()}))}};e(n.initialize())}(window.jQuery,window.ajaxurl,window.DSPublicPostPreviewL10n); \ No newline at end of file
diff --git a/plugins/public-post-preview/js/src/components/preview-toggle/index.js b/plugins/public-post-preview/js/src/components/preview-toggle/index.js
index 41e20868..6e93ff7a 100644
--- a/plugins/public-post-preview/js/src/components/preview-toggle/index.js
+++ b/plugins/public-post-preview/js/src/components/preview-toggle/index.js
@@ -2,8 +2,11 @@
* External dependencies
*/
import { get } from 'lodash';
-import { css } from 'emotion'
+import { css } from '@emotion/css';
+/**
+ * WordPress dependencies
+ */
import { __ } from '@wordpress/i18n';
import {
CheckboxControl,
@@ -11,55 +14,60 @@ import {
Path,
SVG,
} from '@wordpress/components';
-import {
- Component,
- createRef,
-} from '@wordpress/element';
+import { Component, createRef } from '@wordpress/element';
import { withSelect, withDispatch } from '@wordpress/data';
import { PluginPostStatusInfo } from '@wordpress/edit-post';
import { ifCondition, compose } from '@wordpress/compose';
-const {
- ajaxurl,
- DSPublicPostPreviewData,
-} = window;
+const { ajaxurl, DSPublicPostPreviewData } = window;
const pluginPostStatusInfoPreviewUrl = css`
flex-direction: column;
align-items: stretch;
margin-top: 10px;
-`
+`;
const pluginPostStatusInfoPreviewUrlInput = css`
width: 100%;
margin-right: 12px;
-`
+`;
const pluginPostStatusInfoPreviewDescription = css`
font-style: italic;
color: #666;
- margin: .2em 0 0 !important;
-`
+ margin: 0.2em 0 0 !important;
+`;
const pluginPostStatusInfoPreviewUrlInputWrapper = css`
display: flex;
justify-content: flex-start;
align-items: center;
margin: 0;
-`
-
-const ClipboardIcon = <SVG width="20" height="20" viewBox="0 0 14 16" xmlns="http://www.w3.org/2000/svg"><Path fillRule="evenodd" d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"/></SVG>
+`;
+
+const ClipboardIcon = (
+ <SVG
+ width="20"
+ height="20"
+ viewBox="0 0 14 16"
+ xmlns="http://www.w3.org/2000/svg"
+ >
+ <Path
+ fillRule="evenodd"
+ d="M2 13h4v1H2v-1zm5-6H2v1h5V7zm2 3V8l-3 3 3 3v-2h5v-2H9zM4.5 9H2v1h2.5V9zM2 12h2.5v-1H2v1zm9 1h1v2c-.02.28-.11.52-.3.7-.19.18-.42.28-.7.3H1c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h3c0-1.11.89-2 2-2 1.11 0 2 .89 2 2h3c.55 0 1 .45 1 1v5h-1V6H1v9h10v-2zM2 5h8c0-.55-.45-1-1-1H8c-.55 0-1-.45-1-1s-.45-1-1-1-1 .45-1 1-.45 1-1 1H3c-.55 0-1 .45-1 1z"
+ />
+ </SVG>
+);
class PreviewToggle extends Component {
-
constructor( props ) {
- super( props )
+ super( props );
this.state = {
previewEnabled: DSPublicPostPreviewData.previewEnabled,
previewUrl: DSPublicPostPreviewData.previewUrl,
hasCopied: false,
- }
+ };
this.previewUrlInput = createRef();
@@ -72,7 +80,7 @@ class PreviewToggle extends Component {
data.append( 'checked', checked );
data.append( 'post_ID', this.props.postId );
- this.sendRequest( data)
+ this.sendRequest( data )
.then( ( response ) => {
if ( response.status >= 200 && response.status < 300 ) {
return response;
@@ -87,26 +95,37 @@ class PreviewToggle extends Component {
}
const previewEnabled = ! this.state.previewEnabled;
- this.setState( { previewEnabled: previewEnabled } );
+ this.setState( {
+ previewEnabled,
+ previewUrl: response?.data?.preview_url || '',
+ } );
this.props.createNotice(
'info',
- previewEnabled ? __( 'Public preview enabled.', 'public-post-preview' ) : __( 'Public preview disabled.', 'public-post-preview' ),
+ previewEnabled
+ ? __( 'Public preview enabled.', 'public-post-preview' )
+ : __(
+ 'Public preview disabled.',
+ 'public-post-preview'
+ ),
{
id: 'public-post-preview',
isDismissible: true,
- type: 'snackbar'
+ type: 'snackbar',
}
);
} )
.catch( () => {
this.props.createNotice(
'error',
- __( 'Error while changing the public preview status.', 'public-post-preview' ),
+ __(
+ 'Error while changing the public preview status.',
+ 'public-post-preview'
+ ),
{
id: 'public-post-preview',
isDismissible: true,
- type: 'snackbar'
+ type: 'snackbar',
}
);
} );
@@ -127,32 +146,46 @@ class PreviewToggle extends Component {
}
render() {
- const {
- previewEnabled,
- previewUrl,
- hasCopied
- } = this.state;
+ const { previewEnabled, previewUrl, hasCopied } = this.state;
- const ariaCopyLabel = hasCopied ? __( 'Preview URL copied', 'public-post-preview' ) : __( 'Copy the preview URL', 'public-post-preview' );
+ const ariaCopyLabel = hasCopied
+ ? __( 'Preview URL copied', 'public-post-preview' )
+ : __( 'Copy the preview URL', 'public-post-preview' );
return (
<>
<PluginPostStatusInfo>
<CheckboxControl
- label={ __( 'Enable public preview', 'public-post-preview' ) }
+ label={ __(
+ 'Enable public preview',
+ 'public-post-preview'
+ ) }
checked={ previewEnabled }
onChange={ this.onChange }
/>
</PluginPostStatusInfo>
- { previewEnabled &&
- <PluginPostStatusInfo className={ pluginPostStatusInfoPreviewUrl }>
- <p className={ pluginPostStatusInfoPreviewUrlInputWrapper }>
- <label htmlFor="public-post-preview-url" className="screen-reader-text">{ __( 'Preview URL', 'public-post-preview' ) }</label>
+ { previewEnabled && (
+ <PluginPostStatusInfo
+ className={ pluginPostStatusInfoPreviewUrl }
+ >
+ <p
+ className={
+ pluginPostStatusInfoPreviewUrlInputWrapper
+ }
+ >
+ <label
+ htmlFor="public-post-preview-url"
+ className="screen-reader-text"
+ >
+ { __( 'Preview URL', 'public-post-preview' ) }
+ </label>
<input
ref={ this.previewUrlInput }
type="text"
id="public-post-preview-url"
- className={ pluginPostStatusInfoPreviewUrlInput }
+ className={
+ pluginPostStatusInfoPreviewUrlInput
+ }
value={ previewUrl }
readOnly
onFocus={ this.onPreviewUrlInputFocus }
@@ -160,17 +193,24 @@ class PreviewToggle extends Component {
<ClipboardButton
text={ previewUrl }
label={ ariaCopyLabel }
- onCopy={ () => this.setState( { hasCopied: true } ) }
- onFinishCopy={ () => this.setState( { hasCopied: false } ) }
+ onCopy={ () =>
+ this.setState( { hasCopied: true } )
+ }
+ onFinishCopy={ () =>
+ this.setState( { hasCopied: false } )
+ }
aria-disabled={ hasCopied }
icon={ ClipboardIcon }
/>
</p>
<p className={ pluginPostStatusInfoPreviewDescription }>
- { __( 'Copy and share this preview URL.', 'public-post-preview' ) }
+ { __(
+ 'Copy and share this preview URL.',
+ 'public-post-preview'
+ ) }
</p>
</PluginPostStatusInfo>
- }
+ ) }
</>
);
}
@@ -178,13 +218,10 @@ class PreviewToggle extends Component {
export default compose( [
withSelect( ( select ) => {
- const {
- getPostType,
- } = select( 'core' );
- const {
- getCurrentPostId,
- getEditedPostAttribute,
- } = select( 'core/editor' );
+ const { getPostType } = select( 'core' );
+ const { getCurrentPostId, getEditedPostAttribute } = select(
+ 'core/editor'
+ );
const postType = getPostType( getEditedPostAttribute( 'type' ) );
return {
@@ -195,15 +232,11 @@ export default compose( [
} ),
ifCondition( ( { isViewable } ) => isViewable ),
ifCondition( ( { status } ) => {
- return [
- 'auto-draft',
- 'publish',
- 'private',
- ].indexOf( status ) === -1;
+ return [ 'auto-draft', 'publish', 'private' ].indexOf( status ) === -1;
} ),
withDispatch( ( dispatch ) => {
return {
- createNotice: dispatch( 'core/notices' ).createNotice
+ createNotice: dispatch( 'core/notices' ).createNotice,
};
} ),
] )( PreviewToggle );
diff --git a/plugins/public-post-preview/js/src/index.js b/plugins/public-post-preview/js/src/index.js
index d56dfc6a..e5580cb0 100644
--- a/plugins/public-post-preview/js/src/index.js
+++ b/plugins/public-post-preview/js/src/index.js
@@ -1,5 +1,12 @@
+/**
+ * WordPress dependencies
+ */
import { registerPlugin } from '@wordpress/plugins';
-import { default as PreviewToggle } from './components/preview-toggle';
+
+/**
+ * Internal dependencies
+ */
+import PreviewToggle from './components/preview-toggle';
registerPlugin( 'public-post-preview', {
render: PreviewToggle,
diff --git a/plugins/public-post-preview/public-post-preview.php b/plugins/public-post-preview/public-post-preview.php
index be0275ac..35b7cad2 100644
--- a/plugins/public-post-preview/public-post-preview.php
+++ b/plugins/public-post-preview/public-post-preview.php
@@ -1,17 +1,20 @@
<?php
/**
* Plugin Name: Public Post Preview
- * Version: 2.9.0
+ * Version: 2.9.3
* Description: Allow anonymous users to preview a post before it is published.
* Author: Dominik Schilling
* Author URI: https://dominikschilling.de/
* Plugin URI: https://dominikschilling.de/wp-plugins/public-post-preview/en/
* Text Domain: public-post-preview
+ * Requires at least: 5.0
+ * Tested up to: 5.7
+ * Requires PHP: 5.6
* License: GPLv2 or later
*
* Previously (2009-2011) maintained by Jonathan Dingman and Matt Martz.
*
- * Copyright (C) 2012-2019 Dominik Schilling
+ * Copyright (C) 2012-2021 Dominik Schilling
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -48,12 +51,11 @@ class DS_Public_Post_Preview {
* @since 1.0.0
*/
public static function init() {
- add_action( 'init', array( __CLASS__, 'load_textdomain' ) );
add_action( 'transition_post_status', array( __CLASS__, 'unregister_public_preview_on_status_change' ), 20, 3 );
add_action( 'post_updated', array( __CLASS__, 'unregister_public_preview_on_edit' ), 20, 2 );
if ( ! is_admin() ) {
- add_filter( 'pre_get_posts', array( __CLASS__, 'show_public_preview' ) );
+ add_action( 'pre_get_posts', array( __CLASS__, 'show_public_preview' ) );
add_filter( 'query_vars', array( __CLASS__, 'add_query_var' ) );
// Add the query var to WordPress SEO by Yoast whitelist.
add_filter( 'wpseo_whitelist_permalink_vars', array( __CLASS__, 'add_query_var' ) );
@@ -67,15 +69,6 @@ class DS_Public_Post_Preview {
}
/**
- * Registers the textdomain.
- *
- * @since 2.0.0
- */
- public static function load_textdomain() {
- return load_plugin_textdomain( 'public-post-preview' );
- }
-
- /**
* Registers the JavaScript file for post(-new).php.
*
* @since 2.0.0
@@ -88,25 +81,31 @@ class DS_Public_Post_Preview {
}
if ( get_current_screen()->is_block_editor() ) {
- $script_dependencies_path = plugin_dir_path( __FILE__ ) . 'js/gutenberg-integration.deps.json';
- $script_dependencies = file_exists( $script_dependencies_path ) ? json_decode( file_get_contents( $script_dependencies_path ) ) : array();
+ $script_assets_path = plugin_dir_path( __FILE__ ) . 'js/dist/gutenberg-integration.asset.php';
+ $script_assets = file_exists( $script_assets_path ) ?
+ require $script_assets_path :
+ array(
+ 'dependencies' => array(),
+ 'version' => '',
+ );
wp_enqueue_script(
'public-post-preview-gutenberg',
- plugins_url( 'js/gutenberg-integration.js', __FILE__ ),
- $script_dependencies,
- '20190720',
+ plugins_url( 'js/dist/gutenberg-integration.js', __FILE__ ),
+ $script_assets['dependencies'],
+ $script_assets['version'],
true
);
wp_set_script_translations( 'public-post-preview-gutenberg', 'public-post-preview' );
- $post = get_post();
+ $post = get_post();
+ $preview_enabled = self::is_public_preview_enabled( $post );
wp_localize_script(
'public-post-preview-gutenberg',
'DSPublicPostPreviewData',
array(
- 'previewEnabled' => self::is_public_preview_enabled( $post ),
- 'previewUrl' => self::get_preview_link( $post ),
+ 'previewEnabled' => $preview_enabled,
+ 'previewUrl' => $preview_enabled ? self::get_preview_link( $post ) : '',
'nonce' => wp_create_nonce( 'public-post-preview_' . $post->ID ),
)
);
@@ -219,7 +218,7 @@ class DS_Public_Post_Preview {
<div id="public-post-preview-link" style="margin-top:6px"<?php echo $enabled ? '' : ' class="hidden"'; ?>>
<label>
- <input type="text" name="public_post_preview_link" class="regular-text" value="<?php echo esc_attr( self::get_preview_link( $post ) ); ?>" style="width:99%" readonly />
+ <input type="text" name="public_post_preview_link" class="regular-text" value="<?php echo esc_attr( $enabled ? self::get_preview_link( $post ) : '' ); ?>" style="width:99%" readonly />
<span class="description"><?php _e( 'Copy and share this preview URL.', 'public-post-preview' ); ?></span>
</label>
</div>
@@ -279,13 +278,13 @@ class DS_Public_Post_Preview {
/**
* (Un)Registers a post for a public preview.
*
- * Don't runs on an autosave and ignores post revisions.
+ * Runs when a post is saved, ignores revisions and autosaves.
*
* @since 2.0.0
*
* @param int $post_id The post id.
* @param object $post The post object.
- * @return bool Returns false on a failure, true on a success.
+ * @return bool Returns true on a success, false on a failure.
*/
public static function register_public_preview( $post_id, $post ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
@@ -296,7 +295,11 @@ class DS_Public_Post_Preview {
return false;
}
- if ( empty( $_POST['public_post_preview_wpnonce'] ) || ! wp_verify_nonce( $_POST['public_post_preview_wpnonce'], 'public_post_preview' ) ) {
+ if ( empty( $_POST['public_post_preview_wpnonce'] ) || ! wp_verify_nonce( $_POST['public_post_preview_wpnonce'], 'public-post-preview_' . $post_id ) ) {
+ return false;
+ }
+
+ if ( ! current_user_can( 'edit_post', $post_id ) ) {
return false;
}
@@ -330,7 +333,7 @@ class DS_Public_Post_Preview {
* @param string $new_status New post status.
* @param string $old_status Old post status.
* @param WP_Post $post Post object.
- * @return bool Returns false on a failure, true on a success.
+ * @return bool Returns true on a success, false on a failure.
*/
public static function unregister_public_preview_on_status_change( $new_status, $old_status, $post ) {
$disallowed_status = self::get_published_statuses();
@@ -350,7 +353,7 @@ class DS_Public_Post_Preview {
*
* @param int $post_id Post ID.
* @param WP_Post $post Post object.
- * @return bool Returns false on a failure, true on a success.
+ * @return bool Returns true on a success, false on a failure.
*/
public static function unregister_public_preview_on_edit( $post_id, $post ) {
$disallowed_status = self::get_published_statuses();
@@ -369,7 +372,7 @@ class DS_Public_Post_Preview {
* @since 2.5.0
*
* @param int $post_id Post ID.
- * @return bool Returns false on a failure, true on a success.
+ * @return bool Returns true on a success, false on a failure.
*/
private static function unregister_public_preview( $post_id ) {
$post_id = (int) $post_id;
@@ -390,7 +393,12 @@ class DS_Public_Post_Preview {
* @since 2.0.0
*/
public static function ajax_register_public_preview() {
+ if ( ! isset( $_POST['post_ID'], $_POST['checked'] ) ) {
+ wp_send_json_error( 'incomplete_data' );
+ }
+
$preview_post_id = (int) $_POST['post_ID'];
+ $checked = (string) $_POST['checked'];
check_ajax_referer( 'public-post-preview_' . $preview_post_id );
@@ -406,9 +414,9 @@ class DS_Public_Post_Preview {
$preview_post_ids = self::get_preview_post_ids();
- if ( 'false' === $_POST['checked'] && in_array( $preview_post_id, $preview_post_ids, true ) ) {
+ if ( 'false' === $checked && in_array( $preview_post_id, $preview_post_ids, true ) ) {
$preview_post_ids = array_diff( $preview_post_ids, (array) $preview_post_id );
- } elseif ( 'true' === $_POST['checked'] && ! in_array( $preview_post_id, $preview_post_ids, true ) ) {
+ } elseif ( 'true' === $checked && ! in_array( $preview_post_id, $preview_post_ids, true ) ) {
$preview_post_ids = array_merge( $preview_post_ids, (array) $preview_post_id );
} else {
wp_send_json_error( 'unknown_status' );
@@ -420,7 +428,12 @@ class DS_Public_Post_Preview {
wp_send_json_error( 'not_saved' );
}
- wp_send_json_success();
+ $data = null;
+ if ( 'true' === $checked ) {
+ $data = array( 'preview_url' => self::get_preview_link( $post ) );
+ }
+
+ wp_send_json_success( $data );
}
/**
@@ -446,7 +459,6 @@ class DS_Public_Post_Preview {
* @since 2.0.0
*
* @param object $query The WP_Query object.
- * @return object The WP_Query object, unchanged.
*/
public static function show_public_preview( $query ) {
if (
@@ -457,13 +469,16 @@ class DS_Public_Post_Preview {
) {
if ( ! headers_sent() ) {
nocache_headers();
+ header( 'X-Robots-Tag: noindex' );
+ }
+ if ( function_exists( 'wp_robots_no_robots' ) ) { // WordPress 5.7+
+ add_filter( 'wp_robots', 'wp_robots_no_robots' );
+ } else {
+ add_action( 'wp_head', 'wp_no_robots' );
}
- add_action( 'wp_head', 'wp_no_robots' );
add_filter( 'posts_results', array( __CLASS__, 'set_post_to_publish' ), 10, 2 );
}
-
- return $query;
}
/**
@@ -481,11 +496,11 @@ class DS_Public_Post_Preview {
}
if ( ! self::verify_nonce( get_query_var( '_ppp' ), 'public_post_preview_' . $post_id ) ) {
- wp_die( __( 'This link has expired!', 'public-post-preview' ) );
+ wp_die( __( 'This link has expired!', 'public-post-preview' ), 403 );
}
if ( ! in_array( $post_id, self::get_preview_post_ids(), true ) ) {
- wp_die( __( 'No public preview available!', 'public-post-preview' ) );
+ wp_die( __( 'No public preview available!', 'public-post-preview' ), 404 );
}
return true;
@@ -575,7 +590,7 @@ class DS_Public_Post_Preview {
* @return int The time-dependent variable.
*/
private static function nonce_tick() {
- $nonce_life = apply_filters( 'ppp_nonce_life', 60 * 60 * 48 ); // 48 hours
+ $nonce_life = apply_filters( 'ppp_nonce_life', 2 * DAY_IN_SECONDS ); // 2 days.
return ceil( time() / ( $nonce_life / 2 ) );
}
@@ -644,7 +659,7 @@ class DS_Public_Post_Preview {
* @since 2.0.0
*
* @param array $post_ids List of post IDs that have a preview.
- * @return array The post IDs. (Empty array if no IDs are registered.)
+ * @return bool Returns true on a success, false on a failure.
*/
private static function set_preview_post_ids( $post_ids = array() ) {
$post_ids = array_map( 'absint', $post_ids );
diff --git a/plugins/public-post-preview/readme.txt b/plugins/public-post-preview/readme.txt
index abeb1cba..a6622c11 100644
--- a/plugins/public-post-preview/readme.txt
+++ b/plugins/public-post-preview/readme.txt
@@ -2,9 +2,9 @@
Contributors: ocean90
Tags: public, preview, posts, anonymous, drafts
Requires at least: 5.0
-Tested up to: 5.2
+Tested up to: 5.8
Requires PHP: 5.6
-Stable tag: 2.9.0
+Stable tag: 2.9.3
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -73,20 +73,15 @@ Or use the [Public Post Preview Configurator](https://wordpress.org/plugins/publ
== Change Log ==
-= 2.9.0 (2019-07-20): =
-* Requires WordPress 5.0
-* Requires PHP 5.6
-* Adds notice (as Snackbar if supported) when changing preview status in block editor.
-* Fixes incorrect status message in classic editor.
-* Fixes grammar in expired link notice. Props [@garrett-eclipse](https://github.com/garrett-eclipse).
-* Improves internal checks to be more strict. Props [@PatelUtkarsh](https://github.com/PatelUtkarsh).
-* Removes deprecated i18n compatibility layer from Gutenberg plugin.
-
-= 2.8.0 (2018-11-27): =
-* Add support for WordPress 5.0 and the new block editor.
-
-= 2.7.0 (2018-09-14): =
-* Initial support for Gutenberg.
-* Block robots for public post previews. Props [@westonruter](https://github.com/westonruter).
+= 2.9.3 (2021-03-12): =
+* Compatibility with WordPress 5.7.
+* Create a fresh preview URL when enabling public preview.
+* Add check for possibly undefined PHP "superglobals". Props [@waviaei](https://github.com/waviaei).
+
+= 2.9.2 (2020-10-03): =
+* Fix saving of preview status without a previous Ajax request.
+
+= 2.9.1 (2020-07-25): =
+* Improve HTTP status codes for expired/invalid preview links.
For more see [CHANGELOG.md](https://github.com/ocean90/public-post-preview/blob/master/CHANGELOG.md).
diff --git a/plugins/table-of-contents-plus/LICENSE.md b/plugins/table-of-contents-plus/LICENSE.md
new file mode 100644
index 00000000..8cdb8451
--- /dev/null
+++ b/plugins/table-of-contents-plus/LICENSE.md
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
+ 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/plugins/table-of-contents-plus/README.md b/plugins/table-of-contents-plus/README.md
new file mode 100644
index 00000000..b7446aa5
--- /dev/null
+++ b/plugins/table-of-contents-plus/README.md
@@ -0,0 +1,20 @@
+# Table of Contents Plus
+
+A powerful yet user friendly WordPress plugin that automatically creates a context specific index or table of contents (TOC) for long pages (and custom post types). More than just a table of contents plugin, this plugin can also output a sitemap listing pages and/or categories across your entire site.
+
+Built from the ground up and with Wikipedia in mind, the table of contents by default appears before the first heading on a page. This allows the author to insert lead-in content that may summarise or introduce the rest of the page. It also uses a unique numbering scheme that doesn't get lost through CSS differences across themes.
+
+This plugin is a great companion for content rich sites such as content management system oriented configurations. That said, bloggers also have the same benefits when writing long structured articles. [Discover how Google](http://dublue.com/2012/05/12/another-benefit-to-structure-your-web-pages/) uses this index to provide 'Jump To' links to your content.
+
+Includes an administration options panel where you can customise settings like display position, define the minimum number of headings before an index is displayed, other appearance, and more. For power users, expand the advanced options to further tweak its behaviour - eg: exclude undesired heading levels like h5 and h6 from being included; disable the output of the included CSS file; adjust the top offset and more. Using shortcodes, you can override default behaviour such as special exclusions on a specific page or even to hide the table of contents altogether.
+
+Prefer to include the index in the sidebar? Go to Appearance > Widgets and drag the TOC+ to your desired sidebar and position.
+
+Custom post types are supported, however, auto insertion works only when the_content() has been used by the custom post type. Each post type will appear in the options panel, so enable the ones you want.
+
+Collaborate, participate, fork this plugin on [Github](https://github.com/zedzedzed/table-of-contents-plus/).
+
+## Links
+
+* [WordPress plugin page](https://wordpress.org/plugins/table-of-contents-plus/)
+* [Plugin homepage](http://dublue.com/plugins/toc/)
diff --git a/plugins/table-of-contents-plus/class-toc-plus.php b/plugins/table-of-contents-plus/class-toc-plus.php
new file mode 100644
index 00000000..bce4c615
--- /dev/null
+++ b/plugins/table-of-contents-plus/class-toc-plus.php
@@ -0,0 +1,1793 @@
+<?php
+
+define( 'TOC_VERSION', '2106' );
+define( 'TOC_POSITION_BEFORE_FIRST_HEADING', 1 );
+define( 'TOC_POSITION_TOP', 2 );
+define( 'TOC_POSITION_BOTTOM', 3 );
+define( 'TOC_POSITION_AFTER_FIRST_HEADING', 4 );
+define( 'TOC_MIN_START', 2 );
+define( 'TOC_MAX_START', 10 );
+define( 'TOC_SMOOTH_SCROLL_OFFSET', 30 );
+define( 'TOC_WRAPPING_NONE', 0 );
+define( 'TOC_WRAPPING_LEFT', 1 );
+define( 'TOC_WRAPPING_RIGHT', 2 );
+define( 'TOC_THEME_GREY', 1 );
+define( 'TOC_THEME_LIGHT_BLUE', 2 );
+define( 'TOC_THEME_WHITE', 3 );
+define( 'TOC_THEME_BLACK', 4 );
+define( 'TOC_THEME_TRANSPARENT', 99 );
+define( 'TOC_THEME_CUSTOM', 100 );
+define( 'TOC_DEFAULT_BACKGROUND_COLOUR', '#f9f9f9' );
+define( 'TOC_DEFAULT_BORDER_COLOUR', '#aaaaaa' );
+define( 'TOC_DEFAULT_TITLE_COLOUR', '#' );
+define( 'TOC_DEFAULT_LINKS_COLOUR', '#' );
+define( 'TOC_DEFAULT_LINKS_HOVER_COLOUR', '#' );
+define( 'TOC_DEFAULT_LINKS_VISITED_COLOUR', '#' );
+
+
+if ( ! class_exists( 'TOC_Plus' ) ) :
+ class TOC_Plus {
+
+ private $path; // eg /wp-content/plugins/toc
+ private $options;
+ private $show_toc; // allows to override the display (eg through [no_toc] shortcode)
+ private $exclude_post_types;
+ private $collision_collector; // keeps a track of used anchors for collision detecting
+
+ function __construct() {
+ $this->path = plugins_url( '', __FILE__ );
+ $this->show_toc = true;
+ $this->exclude_post_types = [ 'attachment', 'revision', 'nav_menu_item', 'safecss' ];
+ $this->collision_collector = [];
+
+ // get options
+ $defaults = [ // default options
+ 'fragment_prefix' => 'i',
+ 'position' => TOC_POSITION_BEFORE_FIRST_HEADING,
+ 'start' => 4,
+ 'show_heading_text' => true,
+ 'heading_text' => 'Contents',
+ 'auto_insert_post_types' => [ 'page' ],
+ 'show_heirarchy' => true,
+ 'ordered_list' => true,
+ 'smooth_scroll' => false,
+ 'smooth_scroll_offset' => TOC_SMOOTH_SCROLL_OFFSET,
+ 'visibility' => true,
+ 'visibility_show' => 'show',
+ 'visibility_hide' => 'hide',
+ 'visibility_hide_by_default' => false,
+ 'width' => 'Auto',
+ 'width_custom' => '275',
+ 'width_custom_units' => 'px',
+ 'wrapping' => TOC_WRAPPING_NONE,
+ 'font_size' => '95',
+ 'font_size_units' => '%',
+ 'theme' => TOC_THEME_GREY,
+ 'custom_background_colour' => TOC_DEFAULT_BACKGROUND_COLOUR,
+ 'custom_border_colour' => TOC_DEFAULT_BORDER_COLOUR,
+ 'custom_title_colour' => TOC_DEFAULT_TITLE_COLOUR,
+ 'custom_links_colour' => TOC_DEFAULT_LINKS_COLOUR,
+ 'custom_links_hover_colour' => TOC_DEFAULT_LINKS_HOVER_COLOUR,
+ 'custom_links_visited_colour' => TOC_DEFAULT_LINKS_VISITED_COLOUR,
+ 'lowercase' => false,
+ 'hyphenate' => false,
+ 'bullet_spacing' => false,
+ 'include_homepage' => false,
+ 'exclude_css' => false,
+ 'exclude' => '',
+ 'heading_levels' => [ '1', '2', '3', '4', '5', '6' ],
+ 'restrict_path' => '',
+ 'css_container_class' => '',
+ 'sitemap_show_page_listing' => true,
+ 'sitemap_show_category_listing' => true,
+ 'sitemap_heading_type' => 3,
+ 'sitemap_pages' => 'Pages',
+ 'sitemap_categories' => 'Categories',
+ 'show_toc_in_widget_only' => false,
+ 'show_toc_in_widget_only_post_types' => [ 'page' ],
+ ];
+
+ $options = get_option( 'toc-options', $defaults );
+ $this->options = wp_parse_args( $options, $defaults );
+
+ add_action( 'plugins_loaded', [ $this, 'plugins_loaded' ] );
+ add_action( 'wp_enqueue_scripts', [ $this, 'wp_enqueue_scripts' ] );
+ add_action( 'wp_head', [ $this, 'wp_head' ] );
+ add_action( 'admin_init', [ $this, 'admin_init' ] );
+ add_action( 'admin_menu', [ $this, 'admin_menu' ] );
+ add_action( 'widgets_init', [ $this, 'widgets_init' ] );
+ add_action( 'sidebar_admin_setup', [ $this, 'sidebar_admin_setup' ] );
+ add_action( 'init', [ $this, 'init' ] );
+
+ add_filter( 'the_content', [ $this, 'the_content' ], 100 ); // run after shortcodes are interpretted (level 10)
+ add_filter( 'plugin_action_links', [ $this, 'plugin_action_links' ], 10, 2 );
+ add_filter( 'widget_text', 'do_shortcode' );
+
+ add_shortcode( 'toc', [ $this, 'shortcode_toc' ] );
+ add_shortcode( 'no_toc', [ $this, 'shortcode_no_toc' ] );
+ add_shortcode( 'sitemap', [ $this, 'shortcode_sitemap' ] );
+ add_shortcode( 'sitemap_pages', [ $this, 'shortcode_sitemap_pages' ] );
+ add_shortcode( 'sitemap_categories', [ $this, 'shortcode_sitemap_categories' ] );
+ add_shortcode( 'sitemap_posts', [ $this, 'shortcode_sitemap_posts' ] );
+ }
+
+
+ function __destruct() {}
+
+
+ public function get_options() {
+ return $this->options;
+ }
+
+
+ public function set_option( $array ) {
+ $this->options = array_merge( $this->options, $array );
+ }
+
+
+ /**
+ * Allows the developer to disable TOC execution
+ */
+ public function disable() {
+ $this->show_toc = false;
+ }
+
+
+ /**
+ * Allows the developer to enable TOC execution
+ */
+ public function enable() {
+ $this->show_toc = true;
+ }
+
+
+ public function set_show_toc_in_widget_only( $value = false ) {
+ if ( $value ) {
+ $this->options['show_toc_in_widget_only'] = true;
+ } else {
+ $this->options['show_toc_in_widget_only'] = false;
+ }
+
+ update_option( 'toc-options', $this->options );
+ }
+
+
+ public function set_show_toc_in_widget_only_post_types( $value = false ) {
+ if ( $value ) {
+ $this->options['show_toc_in_widget_only_post_types'] = $value;
+ } else {
+ $this->options['show_toc_in_widget_only_post_types'] = [];
+ }
+
+ update_option( 'toc-options', $this->options );
+ }
+
+
+ public function get_exclude_post_types() {
+ return $this->exclude_post_types;
+ }
+
+
+ function plugin_action_links( $links, $file ) {
+ if ( 'table-of-contents-plus/' . basename( __FILE__ ) == $file ) {
+ $settings_link = '<a href="options-general.php?page=toc">' . __( 'Settings', 'table-of-contents-plus' ) . '</a>';
+ $links = array_merge( [ $settings_link ], $links );
+ }
+ return $links;
+ }
+
+
+ function shortcode_toc( $atts ) {
+ extract(
+ shortcode_atts(
+ [
+ 'label' => $this->options['heading_text'],
+ 'label_show' => $this->options['visibility_show'],
+ 'label_hide' => $this->options['visibility_hide'],
+ 'no_label' => false,
+ 'class' => false,
+ 'wrapping' => $this->options['wrapping'],
+ 'heading_levels' => $this->options['heading_levels'],
+ 'exclude' => $this->options['exclude'],
+ 'collapse' => false,
+ ],
+ $atts
+ )
+ );
+
+ $re_enqueue_scripts = false;
+
+ if ( $no_label ) {
+ $this->options['show_heading_text'] = false;
+ }
+ if ( $label ) {
+ $this->options['heading_text'] = html_entity_decode( $label );
+ }
+ if ( $label_show ) {
+ $this->options['visibility_show'] = html_entity_decode( $label_show );
+ $re_enqueue_scripts = true;
+ }
+ if ( $label_hide ) {
+ $this->options['visibility_hide'] = html_entity_decode( $label_hide );
+ $re_enqueue_scripts = true;
+ }
+ if ( $class ) {
+ $this->options['css_container_class'] = $class;
+ }
+ if ( $wrapping ) {
+ switch ( strtolower( trim( $wrapping ) ) ) {
+ case 'left':
+ $this->options['wrapping'] = TOC_WRAPPING_LEFT;
+ break;
+
+ case 'right':
+ $this->options['wrapping'] = TOC_WRAPPING_RIGHT;
+ break;
+
+ default:
+ // do nothing
+ }
+ }
+
+ if ( $exclude ) {
+ $this->options['exclude'] = $exclude;
+ }
+ if ( $collapse ) {
+ $this->options['visibility_hide_by_default'] = true;
+ $re_enqueue_scripts = true;
+ }
+
+ if ( $re_enqueue_scripts ) {
+ do_action( 'wp_enqueue_scripts' );
+ }
+
+ // if $heading_levels is an array, then it came from the global options
+ // and wasn't provided by per instance
+ if ( $heading_levels && ! is_array( $heading_levels ) ) {
+ // make sure they are numbers between 1 and 6 and put into
+ // the $clean_heading_levels array if not already
+ $clean_heading_levels = [];
+ foreach ( explode( ',', $heading_levels ) as $heading_level ) {
+ if ( is_numeric( $heading_level ) ) {
+ if ( 1 <= $heading_level && $heading_level <= 6 ) {
+ if ( ! in_array( $heading_level, $clean_heading_levels ) ) {
+ $clean_heading_levels[] = $heading_level;
+ }
+ }
+ }
+ }
+
+ if ( count( $clean_heading_levels ) > 0 ) {
+ $this->options['heading_levels'] = $clean_heading_levels;
+ }
+ }
+
+ if ( ! is_search() && ! is_archive() && ! is_feed() ) {
+ return '<!--TOC-->';
+ } else {
+ return;
+ }
+ }
+
+
+ function shortcode_no_toc( $atts ) {
+ $this->show_toc = false;
+
+ return;
+ }
+
+
+ function shortcode_sitemap( $atts ) {
+ $html = '';
+
+ // only do the following if enabled
+ if ( $this->options['sitemap_show_page_listing'] || $this->options['sitemap_show_category_listing'] ) {
+ $html = '<div class="toc_sitemap">';
+ if ( $this->options['sitemap_show_page_listing'] ) {
+ $html .=
+ '<h' . $this->options['sitemap_heading_type'] . ' class="toc_sitemap_pages">' . htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ) . '</h' . $this->options['sitemap_heading_type'] . '>' .
+ '<ul class="toc_sitemap_pages_list">' .
+ wp_list_pages( [ 'title_li' => '', 'echo' => false ] ) .
+ '</ul>';
+ }
+ if ( $this->options['sitemap_show_category_listing'] ) {
+ $html .=
+ '<h' . $this->options['sitemap_heading_type'] . ' class="toc_sitemap_categories">' . htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ) . '</h' . $this->options['sitemap_heading_type'] . '>' .
+ '<ul class="toc_sitemap_categories_list">' .
+ wp_list_categories( [ 'title_li' => '', 'echo' => false ] ) .
+ '</ul>';
+ }
+ $html .= '</div>';
+ }
+
+ return $html;
+ }
+
+
+ function shortcode_sitemap_pages( $atts ) {
+ extract(
+ shortcode_atts(
+ [
+ 'heading' => $this->options['sitemap_heading_type'],
+ 'label' => htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ),
+ 'no_label' => false,
+ 'exclude' => '',
+ 'exclude_tree' => '',
+ ],
+ $atts
+ )
+ );
+
+ if ( $heading < 1 || $heading > 6 ) { // h1 to h6 are valid
+ $heading = $this->options['sitemap_heading_type'];
+ }
+
+ $html = '<div class="toc_sitemap">';
+ if ( ! $no_label ) {
+ $html .= '<h' . $heading . ' class="toc_sitemap_pages">' . $label . '</h' . $heading . '>';
+ }
+ $html .=
+ '<ul class="toc_sitemap_pages_list">' .
+ wp_list_pages( [ 'title_li' => '', 'echo' => false, 'exclude' => $exclude, 'exclude_tree' => $exclude_tree ] ) .
+ '</ul>' .
+ '</div>';
+
+ return $html;
+ }
+
+
+ function shortcode_sitemap_categories( $atts ) {
+ extract(
+ shortcode_atts(
+ [
+ 'heading' => $this->options['sitemap_heading_type'],
+ 'label' => htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ),
+ 'no_label' => false,
+ 'exclude' => '',
+ 'exclude_tree' => '',
+ ],
+ $atts
+ )
+ );
+
+ if ( $heading < 1 || $heading > 6 ) { // h1 to h6 are valid
+ $heading = $this->options['sitemap_heading_type'];
+ }
+
+ $html = '<div class="toc_sitemap">';
+ if ( ! $no_label ) {
+ $html .= '<h' . $heading . ' class="toc_sitemap_categories">' . $label . '</h' . $heading . '>';
+ }
+ $html .=
+ '<ul class="toc_sitemap_categories_list">' .
+ wp_list_categories( [ 'title_li' => '', 'echo' => false, 'exclude' => $exclude, 'exclude_tree' => $exclude_tree ] ) .
+ '</ul>' .
+ '</div>';
+
+ return $html;
+ }
+
+
+ function shortcode_sitemap_posts( $atts ) {
+ extract(
+ shortcode_atts(
+ [
+ 'order' => 'ASC',
+ 'orderby' => 'title',
+ 'separate' => true,
+ ],
+ $atts
+ )
+ );
+
+ $articles = new WP_Query(
+ [
+ 'post_type' => 'post',
+ 'post_status' => 'publish',
+ 'order' => $order,
+ 'orderby' => $orderby,
+ 'posts_per_page' => -1,
+ ]
+ );
+
+ $html = '';
+ $letter = '';
+
+ $separate = strtolower( $separate );
+ if ( 'false' == $separate || 'no' == $separate ) {
+ $separate = false;
+ }
+
+ while ( $articles->have_posts() ) {
+ $articles->the_post();
+ $title = strip_tags( get_the_title() );
+
+ if ( $separate ) {
+ if ( strtolower( $title[0] ) != $letter ) {
+ if ( $letter ) {
+ $html .= '</ul></div>';
+ }
+
+ $html .= '<div class="toc_sitemap_posts_section"><p class="toc_sitemap_posts_letter">' . strtolower( $title[0] ) . '</p><ul class="toc_sitemap_posts_list">';
+ $letter = strtolower( $title[0] );
+ }
+ }
+
+ $html .= '<li><a href="' . get_permalink( $articles->post->ID ) . '">' . $title . '</a></li>';
+ }
+
+ if ( $html ) {
+ if ( $separate ) {
+ $html .= '</div>';
+ } else {
+ $html = '<div class="toc_sitemap_posts_section"><ul class="toc_sitemap_posts_list">' . $html . '</ul></div>';
+ }
+ }
+
+ wp_reset_postdata();
+
+ return $html;
+ }
+
+
+ /**
+ * Register and load CSS and javascript files for frontend.
+ */
+ function wp_enqueue_scripts() {
+ $js_vars = [];
+
+ // register our CSS and scripts
+ wp_register_style( 'toc-screen', $this->path . '/screen.min.css', [], TOC_VERSION );
+ wp_register_script( 'toc-front', $this->path . '/front.min.js', [ 'jquery' ], TOC_VERSION, true );
+
+ // enqueue them!
+ if ( ! $this->options['exclude_css'] ) {
+ wp_enqueue_style( 'toc-screen' );
+ }
+
+ if ( $this->options['smooth_scroll'] ) {
+ $js_vars['smooth_scroll'] = true;
+ }
+ wp_enqueue_script( 'toc-front' );
+ if ( $this->options['show_heading_text'] && $this->options['visibility'] ) {
+ $width = ( 'User defined' != $this->options['width'] ) ? $this->options['width'] : $this->options['width_custom'] . $this->options['width_custom_units'];
+ $js_vars['visibility_show'] = esc_js( $this->options['visibility_show'] );
+ $js_vars['visibility_hide'] = esc_js( $this->options['visibility_hide'] );
+ if ( $this->options['visibility_hide_by_default'] ) {
+ $js_vars['visibility_hide_by_default'] = true;
+ }
+ $js_vars['width'] = esc_js( $width );
+ }
+ if ( TOC_SMOOTH_SCROLL_OFFSET != $this->options['smooth_scroll_offset'] ) {
+ $js_vars['smooth_scroll_offset'] = esc_js( $this->options['smooth_scroll_offset'] );
+ }
+
+ if ( count( $js_vars ) > 0 ) {
+ wp_localize_script(
+ 'toc-front',
+ 'tocplus',
+ $js_vars
+ );
+ }
+ }
+
+
+ function plugins_loaded() {
+ load_plugin_textdomain( 'table-of-contents-plus', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
+ }
+
+
+ function admin_init() {
+ wp_register_script( 'toc_admin_script', $this->path . '/admin.js' );
+ wp_register_style( 'toc_admin_style', $this->path . '/admin.css' );
+ }
+
+
+ function admin_menu() {
+ $page = add_submenu_page(
+ 'options-general.php',
+ __( 'TOC', 'table-of-contents-plus' ) . '+',
+ __( 'TOC', 'table-of-contents-plus' ) . '+',
+ 'manage_options',
+ 'toc',
+ [ $this, 'admin_options' ]
+ );
+
+ add_action( 'admin_print_styles-' . $page, [ $this, 'admin_options_head' ] );
+ }
+
+
+ function widgets_init() {
+ register_widget( 'toc_widget' );
+ }
+
+
+ /**
+ * Remove widget options on widget deletion
+ */
+ function sidebar_admin_setup() {
+ // this action is loaded at the start of the widget screen
+ // so only do the following only when a form action has been initiated
+ if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
+ if ( 'toc-widget' == @$_POST['id_base'] ) {
+ if ( isset( $_POST['delete_widget'] ) ) {
+ if ( 1 === (int) $_POST['delete_widget'] ) {
+ $this->set_show_toc_in_widget_only( false );
+ $this->set_show_toc_in_widget_only_post_types( [ 'page' ] );
+ }
+ }
+ }
+ }
+ }
+
+
+ function init() {
+ // Add compatibility with Rank Math SEO
+ if ( class_exists( 'RankMath' ) ) {
+ add_filter( 'rank_math/researches/toc_plugins', function( $toc_plugins ) {
+ $toc_plugins['table-of-contents-plus/toc.php'] = 'Table of Contents Plus';
+ return $toc_plugins;
+ } );
+ }
+ }
+
+
+ /**
+ * Load needed scripts and styles only on the toc administration interface.
+ */
+ function admin_options_head() {
+ wp_enqueue_style( 'farbtastic' );
+ wp_enqueue_script( 'farbtastic' );
+ wp_enqueue_script( 'jquery' );
+ wp_enqueue_script( 'toc_admin_script' );
+ wp_enqueue_style( 'toc_admin_style' );
+ }
+
+
+ /**
+ * Tries to convert $string into a valid hex colour.
+ * Returns $default if $string is not a hex value, otherwise returns verified hex.
+ */
+ private function hex_value( $string = '', $default = '#' ) {
+ $return = $default;
+
+ if ( $string ) {
+ // strip out non hex chars
+ $return = preg_replace( '/[^a-fA-F0-9]*/', '', $string );
+
+ switch ( strlen( $return ) ) {
+ case 3: // do next
+ case 6:
+ $return = '#' . $return;
+ break;
+
+ default:
+ if ( strlen( $return ) > 6 ) {
+ $return = '#' . substr( $return, 0, 6 ); // if > 6 chars, then take the first 6
+ } elseif ( strlen( $return ) > 3 && strlen( $return ) < 6 ) {
+ $return = '#' . substr( $return, 0, 3 ); // if between 3 and 6, then take first 3
+ } else {
+ $return = $default; // not valid, return $default
+ }
+ }
+ }
+
+ return $return;
+ }
+
+
+ private function save_admin_options() {
+ global $post_id;
+
+ // security check
+ if ( ! wp_verify_nonce( @$_POST['toc-admin-options'], plugin_basename( __FILE__ ) ) ) {
+ return false;
+ }
+
+ // require an administrator level to save
+ if ( ! current_user_can( 'manage_options', $post_id ) ) {
+ return false;
+ }
+
+ // use stripslashes on free text fields that can have ' " \
+ // WordPress automatically slashes these characters as part of
+ // wp-includes/load.php::wp_magic_quotes()
+
+ $custom_background_colour = $this->hex_value( trim( $_POST['custom_background_colour'] ), TOC_DEFAULT_BACKGROUND_COLOUR );
+ $custom_border_colour = $this->hex_value( trim( $_POST['custom_border_colour'] ), TOC_DEFAULT_BORDER_COLOUR );
+ $custom_title_colour = $this->hex_value( trim( $_POST['custom_title_colour'] ), TOC_DEFAULT_TITLE_COLOUR );
+ $custom_links_colour = $this->hex_value( trim( $_POST['custom_links_colour'] ), TOC_DEFAULT_LINKS_COLOUR );
+ $custom_links_hover_colour = $this->hex_value( trim( $_POST['custom_links_hover_colour'] ), TOC_DEFAULT_LINKS_HOVER_COLOUR );
+ $custom_links_visited_colour = $this->hex_value( trim( $_POST['custom_links_visited_colour'] ), TOC_DEFAULT_LINKS_VISITED_COLOUR );
+
+ if ( $restrict_path = trim( $_POST['restrict_path'] ) ) {
+ if ( strpos( $restrict_path, '/' ) !== 0 ) {
+ // restrict path did not start with a / so unset it
+ $restrict_path = '';
+ }
+ }
+
+ $this->options = array_merge(
+ $this->options,
+ [
+ 'fragment_prefix' => trim( $_POST['fragment_prefix'] ),
+ 'position' => intval( $_POST['position'] ),
+ 'start' => intval( $_POST['start'] ),
+ 'show_heading_text' => ( isset( $_POST['show_heading_text'] ) && $_POST['show_heading_text'] ) ? true : false,
+ 'heading_text' => stripslashes( trim( $_POST['heading_text'] ) ),
+ 'auto_insert_post_types' => @ (array) $_POST['auto_insert_post_types'],
+ 'show_heirarchy' => ( isset( $_POST['show_heirarchy'] ) && $_POST['show_heirarchy'] ) ? true : false,
+ 'ordered_list' => ( isset( $_POST['ordered_list'] ) && $_POST['ordered_list'] ) ? true : false,
+ 'smooth_scroll' => ( isset( $_POST['smooth_scroll'] ) && $_POST['smooth_scroll'] ) ? true : false,
+ 'smooth_scroll_offset' => intval( $_POST['smooth_scroll_offset'] ),
+ 'visibility' => ( isset( $_POST['visibility'] ) && $_POST['visibility'] ) ? true : false,
+ 'visibility_show' => stripslashes( trim( $_POST['visibility_show'] ) ),
+ 'visibility_hide' => stripslashes( trim( $_POST['visibility_hide'] ) ),
+ 'visibility_hide_by_default' => ( isset( $_POST['visibility_hide_by_default'] ) && $_POST['visibility_hide_by_default'] ) ? true : false,
+ 'width' => trim( $_POST['width'] ),
+ 'width_custom' => floatval( $_POST['width_custom'] ),
+ 'width_custom_units' => trim( $_POST['width_custom_units'] ),
+ 'wrapping' => intval( $_POST['wrapping'] ),
+ 'font_size' => floatval( $_POST['font_size'] ),
+ 'font_size_units' => trim( $_POST['font_size_units'] ),
+ 'theme' => intval( $_POST['theme'] ),
+ 'custom_background_colour' => $custom_background_colour,
+ 'custom_border_colour' => $custom_border_colour,
+ 'custom_title_colour' => $custom_title_colour,
+ 'custom_links_colour' => $custom_links_colour,
+ 'custom_links_hover_colour' => $custom_links_hover_colour,
+ 'custom_links_visited_colour' => $custom_links_visited_colour,
+ 'lowercase' => ( isset( $_POST['lowercase'] ) && $_POST['lowercase'] ) ? true : false,
+ 'hyphenate' => ( isset( $_POST['hyphenate'] ) && $_POST['hyphenate'] ) ? true : false,
+ 'bullet_spacing' => ( isset( $_POST['bullet_spacing'] ) && $_POST['bullet_spacing'] ) ? true : false,
+ 'include_homepage' => ( isset( $_POST['include_homepage'] ) && $_POST['include_homepage'] ) ? true : false,
+ 'exclude_css' => ( isset( $_POST['exclude_css'] ) && $_POST['exclude_css'] ) ? true : false,
+ 'heading_levels' => @ (array) $_POST['heading_levels'],
+ 'exclude' => stripslashes( trim( $_POST['exclude'] ) ),
+ 'restrict_path' => $restrict_path,
+ 'sitemap_show_page_listing' => ( isset( $_POST['sitemap_show_page_listing'] ) && $_POST['sitemap_show_page_listing'] ) ? true : false,
+ 'sitemap_show_category_listing' => ( isset( $_POST['sitemap_show_category_listing'] ) && $_POST['sitemap_show_category_listing'] ) ? true : false,
+ 'sitemap_heading_type' => intval( $_POST['sitemap_heading_type'] ),
+ 'sitemap_pages' => stripslashes( trim( $_POST['sitemap_pages'] ) ),
+ 'sitemap_categories' => stripslashes( trim( $_POST['sitemap_categories'] ) ),
+ ]
+ );
+
+ // update_option will return false if no changes were made
+ update_option( 'toc-options', $this->options );
+
+ return true;
+ }
+
+
+ function admin_options() {
+ $msg = '';
+
+ if ( isset( $_GET['update'] ) ) {
+ if ( $this->save_admin_options() ) {
+ $msg = '<div id="message" class="updated fade"><p>' . __( 'Options saved.', 'table-of-contents-plus' ) . '</p></div>';
+ } else {
+ $msg = '<div id="message" class="error fade"><p>' . __( 'Save failed.', 'table-of-contents-plus' ) . '</p></div>';
+ }
+ }
+
+?>
+<div id='toc' class='wrap'>
+<div id="icon-options-general" class="icon32"><br /></div>
+<h2>Table of Contents Plus</h2>
+<?php echo $msg; ?>
+<form method="post" action="<?php echo htmlentities( '?page=' . $_GET['page'] . '&update' ); ?>">
+<?php wp_nonce_field( plugin_basename( __FILE__ ), 'toc-admin-options' ); ?>
+
+<ul id="tabbed-nav">
+ <li><a href="#tab1"><?php _e( 'Main Options', 'table-of-contents-plus' ); ?></a></li>
+ <li><a href="#tab2"><?php _e( 'Sitemap', 'table-of-contents-plus' ); ?></a></li>
+ <li class="url"><a href="http://dublue.com/plugins/toc/#Help"><?php _e( 'Help', 'table-of-contents-plus' ); ?></a></li>
+</ul>
+<div class="tab_container">
+ <div id="tab1" class="tab_content">
+
+<table class="form-table">
+<tbody>
+<tr>
+ <th><label for="position"><?php _e( 'Position', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <select name="position" id="position">
+ <option value="<?php echo TOC_POSITION_BEFORE_FIRST_HEADING; ?>"<?php if ( TOC_POSITION_BEFORE_FIRST_HEADING == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e( 'Before first heading (default)', 'table-of-contents-plus' ); ?></option>
+ <option value="<?php echo TOC_POSITION_AFTER_FIRST_HEADING; ?>"<?php if ( TOC_POSITION_AFTER_FIRST_HEADING == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e( 'After first heading', 'table-of-contents-plus' ); ?></option>
+ <option value="<?php echo TOC_POSITION_TOP; ?>"<?php if ( TOC_POSITION_TOP == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e( 'Top', 'table-of-contents-plus' ); ?></option>
+ <option value="<?php echo TOC_POSITION_BOTTOM; ?>"<?php if ( TOC_POSITION_BOTTOM == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e( 'Bottom', 'table-of-contents-plus' ); ?></option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <th><label for="start"><?php _e( 'Show when', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <select name="start" id="start">
+<?php
+ for ($i = TOC_MIN_START; $i <= TOC_MAX_START; $i++) {
+ echo '<option value="' . $i . '"';
+ if ( $i == $this->options['start'] ) echo ' selected="selected"';
+ echo '>' . $i . '</option>' . "\n";
+ }
+?>
+ </select> <?php
+ /* translators: text follows drop down list of numbers */
+ _e( 'or more headings are present', 'table-of-contents-plus' ); ?>
+ </td>
+</tr>
+<tr>
+ <th><?php _e( 'Auto insert for the following content types', 'table-of-contents-plus' ); ?></th>
+ <td><?php
+ foreach ( get_post_types() as $post_type ) {
+ // make sure the post type isn't on the exclusion list
+ if ( ! in_array( $post_type, $this->exclude_post_types ) ) {
+ echo '<input type="checkbox" value="' . $post_type . '" id="auto_insert_post_types_' . $post_type .'" name="auto_insert_post_types[]"';
+ if ( in_array( $post_type, $this->options['auto_insert_post_types'] ) ) echo ' checked="checked"';
+ echo ' /><label for="auto_insert_post_types_' . $post_type . '"> ' . $post_type . '</label><br />';
+ }
+ }
+?>
+</tr>
+<tr>
+ <th><label for="show_heading_text"><?php
+ /* translators: this is the title of the table of contents */
+ _e( 'Heading text', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="checkbox" value="1" id="show_heading_text" name="show_heading_text"<?php if ( $this->options['show_heading_text'] ) echo ' checked="checked"'; ?> /><label for="show_heading_text"> <?php _e( 'Show title on top of the table of contents', 'table-of-contents-plus' ); ?></label><br />
+ <div class="more_toc_options<?php if ( ! $this->options['show_heading_text'] ) echo ' disabled'; ?>">
+ <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['heading_text'], ENT_COMPAT, 'UTF-8' ); ?>" id="heading_text" name="heading_text" />
+ <span class="description"><label for="heading_text"><?php _e( 'Eg: Contents, Table of Contents, Page Contents', 'table-of-contents-plus' ); ?></label></span><br /><br />
+
+ <input type="checkbox" value="1" id="visibility" name="visibility"<?php if ( $this->options['visibility'] ) echo ' checked="checked"'; ?> /><label for="visibility"> <?php _e( 'Allow the user to toggle the visibility of the table of contents', 'table-of-contents-plus' ); ?></label><br />
+ <div class="more_toc_options<?php if ( ! $this->options['visibility'] ) echo ' disabled'; ?>">
+ <table class="more_toc_options_table">
+ <tbody>
+ <tr>
+ <th><label for="visibility_show"><?php _e( 'Show text', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="" value="<?php echo htmlentities( $this->options['visibility_show'], ENT_COMPAT, 'UTF-8' ); ?>" id="visibility_show" name="visibility_show" />
+ <span class="description"><label for="visibility_show"><?php
+ /* translators: example text to display when you want to expand the table of contents */
+ _e( 'Eg: show', 'table-of-contents-plus' ); ?></label></span></td>
+ </tr>
+ <tr>
+ <th><label for="visibility_hide"><?php _e( 'Hide text', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="" value="<?php echo htmlentities( $this->options['visibility_hide'], ENT_COMPAT, 'UTF-8' ); ?>" id="visibility_hide" name="visibility_hide" />
+ <span class="description"><label for="visibility_hide"><?php
+ /* translators: example text to display when you want to collapse the table of contents */
+ _e( 'Eg: hide', 'table-of-contents-plus' ); ?></label></span></td>
+ </tr>
+ </tbody>
+ </table>
+ <input type="checkbox" value="1" id="visibility_hide_by_default" name="visibility_hide_by_default"<?php if ( $this->options['visibility_hide_by_default'] ) echo ' checked="checked"'; ?> /><label for="visibility_hide_by_default"> <?php _e( 'Hide the table of contents initially', 'table-of-contents-plus' ); ?></label>
+ </div>
+ </div>
+ </td>
+</tr>
+<tr>
+ <th><label for="show_heirarchy"><?php _e( 'Show hierarchy', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="show_heirarchy" name="show_heirarchy"<?php if ( $this->options['show_heirarchy'] ) echo ' checked="checked"'; ?> /></td>
+</tr>
+<tr>
+ <th><label for="ordered_list"><?php _e( 'Number list items', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="ordered_list" name="ordered_list"<?php if ( $this->options['ordered_list'] ) echo ' checked="checked"'; ?> /></td>
+</tr>
+<tr>
+ <th><label for="smooth_scroll"><?php _e( 'Enable smooth scroll effect', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="smooth_scroll" name="smooth_scroll"<?php if ( $this->options['smooth_scroll'] ) echo ' checked="checked"'; ?> /><label for="smooth_scroll"> <?php _e( 'Scroll rather than jump to the anchor link', 'table-of-contents-plus' ); ?></label></td>
+</tr>
+</tbody>
+</table>
+
+<h3><?php _e( 'Appearance', 'table-of-contents-plus' ); ?></h3>
+<table class="form-table">
+<tbody>
+<tr>
+ <th><label for="width"><?php _e( 'Width', 'table-of-contents-plus' ); ?></label></td>
+ <td>
+ <select name="width" id="width">
+ <optgroup label="<?php _e( 'Fixed width', 'table-of-contents-plus' ); ?>">
+ <option value="200px"<?php if ( '200px' == $this->options['width'] ) echo ' selected="selected"'; ?>>200px</option>
+ <option value="225px"<?php if ( '225px' == $this->options['width'] ) echo ' selected="selected"'; ?>>225px</option>
+ <option value="250px"<?php if ( '250px' == $this->options['width'] ) echo ' selected="selected"'; ?>>250px</option>
+ <option value="275px"<?php if ( '275px' == $this->options['width'] ) echo ' selected="selected"'; ?>>275px</option>
+ <option value="300px"<?php if ( '300px' == $this->options['width'] ) echo ' selected="selected"'; ?>>300px</option>
+ <option value="325px"<?php if ( '325px' == $this->options['width'] ) echo ' selected="selected"'; ?>>325px</option>
+ <option value="350px"<?php if ( '350px' == $this->options['width'] ) echo ' selected="selected"'; ?>>350px</option>
+ <option value="375px"<?php if ( '375px' == $this->options['width'] ) echo ' selected="selected"'; ?>>375px</option>
+ <option value="400px"<?php if ( '400px' == $this->options['width'] ) echo ' selected="selected"'; ?>>400px</option>
+ </optgroup>
+ <optgroup label="<?php _e( 'Relative', 'table-of-contents-plus' ) ; ?>">
+ <option value="Auto"<?php if ( 'Auto' == $this->options['width'] ) echo ' selected="selected"'; ?>><?php _e( 'Auto (default)', 'table-of-contents-plus' ); ?></option>
+ <option value="25%"<?php if ( '25%' == $this->options['width'] ) echo ' selected="selected"'; ?>>25%</option>
+ <option value="33%"<?php if ( '33%' == $this->options['width'] ) echo ' selected="selected"'; ?>>33%</option>
+ <option value="50%"<?php if ( '50%' == $this->options['width'] ) echo ' selected="selected"'; ?>>50%</option>
+ <option value="66%"<?php if ( '66%' == $this->options['width'] ) echo ' selected="selected"'; ?>>66%</option>
+ <option value="75%"<?php if ( '75%' == $this->options['width'] ) echo ' selected="selected"'; ?>>75%</option>
+ <option value="100%"<?php if ( '100%' == $this->options['width'] ) echo ' selected="selected"'; ?>>100%</option>
+ </optgroup>
+ <optgroup label="<?php
+ /* translators: other width */
+ _e( 'Other', 'table-of-contents-plus' ); ?>">
+ <option value="User defined"<?php if ( 'User defined' == $this->options['width'] ) echo ' selected="selected"'; ?>><?php _e( 'User defined', 'table-of-contents-plus' ); ?></option>
+ </optgroup>
+ </select>
+ <div class="more_toc_options<?php if ( 'User defined' != $this->options['width'] ) echo ' disabled'; ?>">
+ <label for="width_custom"><?php
+ /* translators: ignore %s as it's some HTML label tags */
+ printf( __( 'Please enter a number and %s select its units, eg: 100px, 10em', 'table-of-contents-plus' ), '</label><label for="width_custom_units">' ); ?></label><br />
+ <input type="text" class="regular-text" value="<?php echo floatval( $this->options['width_custom'] ); ?>" id="width_custom" name="width_custom" />
+ <select name="width_custom_units" id="width_custom_units">
+ <option value="px"<?php if ( 'px' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>px</option>
+ <option value="%"<?php if ( '%' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>%</option>
+ <option value="em"<?php if ( 'em' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>em</option>
+ </select>
+ </div>
+ </td>
+</tr>
+<tr>
+ <th><label for="wrapping"><?php _e( 'Wrapping', 'table-of-contents-plus' ); ?></label></td>
+ <td>
+ <select name="wrapping" id="wrapping">
+ <option value="<?php echo TOC_WRAPPING_NONE; ?>"<?php if ( TOC_WRAPPING_NONE == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e( 'None (default)', 'table-of-contents-plus' ); ?></option>
+ <option value="<?php echo TOC_WRAPPING_LEFT; ?>"<?php if ( TOC_WRAPPING_LEFT == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e( 'Left', 'table-of-contents-plus' ); ?></option>
+ <option value="<?php echo TOC_WRAPPING_RIGHT; ?>"<?php if ( TOC_WRAPPING_RIGHT == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e( 'Right', 'table-of-contents-plus' ); ?></option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <th><label for="font_size"><?php _e( 'Font size', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="text" class="regular-text" value="<?php echo floatval( $this->options['font_size'] ); ?>" id="font_size" name="font_size" />
+ <select name="font_size_units" id="font_size_units">
+ <option value="px"<?php if ( 'pt' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>pt</option>
+ <option value="%"<?php if ( '%' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>%</option>
+ <option value="em"<?php if ( 'em' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>em</option>
+ </select>
+ </td>
+</tr>
+<tr>
+ <th><?php
+ /* translators: appearance / colour / look and feel options */
+ _e( 'Presentation', 'table-of-contents-plus' ); ?></th>
+ <td>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_GREY; ?>" value="<?php echo TOC_THEME_GREY; ?>"<?php if ( $this->options['theme'] == TOC_THEME_GREY ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_GREY; ?>"> <?php _e( 'Grey (default)', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/grey.png" alt="" />
+ </label>
+ </div>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_LIGHT_BLUE; ?>" value="<?php echo TOC_THEME_LIGHT_BLUE; ?>"<?php if ( $this->options['theme'] == TOC_THEME_LIGHT_BLUE ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_LIGHT_BLUE; ?>"> <?php _e( 'Light blue', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/blue.png" alt="" />
+ </label>
+ </div>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_WHITE; ?>" value="<?php echo TOC_THEME_WHITE; ?>"<?php if ( $this->options['theme'] == TOC_THEME_WHITE ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_WHITE; ?>"> <?php _e( 'White', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/white.png" alt="" />
+ </label>
+ </div>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_BLACK; ?>" value="<?php echo TOC_THEME_BLACK; ?>"<?php if ( $this->options['theme'] == TOC_THEME_BLACK ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_BLACK; ?>"> <?php _e( 'Black', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/black.png" alt="" />
+ </label>
+ </div>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_TRANSPARENT; ?>" value="<?php echo TOC_THEME_TRANSPARENT; ?>"<?php if ( $this->options['theme'] == TOC_THEME_TRANSPARENT ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_TRANSPARENT; ?>"> <?php _e( 'Transparent', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/transparent.png" alt="" />
+ </label>
+ </div>
+ <div class="toc_theme_option">
+ <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_CUSTOM; ?>" value="<?php echo TOC_THEME_CUSTOM; ?>"<?php if ( $this->options['theme'] == TOC_THEME_CUSTOM ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_CUSTOM; ?>"> <?php _e( 'Custom', 'table-of-contents-plus' ); ?><br />
+ <img src="<?php echo $this->path; ?>/images/custom.png" alt="" />
+ </label>
+ </div>
+ <div class="clear"></div>
+
+ <div class="more_toc_options<?php if ( TOC_THEME_CUSTOM !== $this->options['theme'] ) echo ' disabled'; ?>">
+ <table id="theme_custom" class="more_toc_options_table">
+ <tbody>
+ <tr>
+ <th><label for="custom_background_colour"><?php _e( 'Background', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_background_colour'] ); ?>" id="custom_background_colour" name="custom_background_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ <tr>
+ <th><label for="custom_border_colour"><?php _e( 'Border', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_border_colour'] ); ?>" id="custom_border_colour" name="custom_border_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ <tr>
+ <th><label for="custom_title_colour"><?php _e( 'Title', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_title_colour'] ); ?>" id="custom_title_colour" name="custom_title_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ <tr>
+ <th><label for="custom_links_colour"><?php _e( 'Links', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_colour'] ); ?>" id="custom_links_colour" name="custom_links_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ <tr>
+ <th><label for="custom_links_hover_colour"><?php _e( 'Links (hover)', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_hover_colour'] ); ?>" id="custom_links_hover_colour" name="custom_links_hover_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ <tr>
+ <th><label for="custom_links_visited_colour"><?php _e( 'Links (visited)', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_visited_colour'] ); ?>" id="custom_links_visited_colour" name="custom_links_visited_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
+ </tr>
+ </tbody>
+ </table>
+ <div id="farbtastic_colour_wheel"></div>
+ <div class="clear"></div>
+ <p><?php printf( __( "Leaving the value as %s will inherit your theme's styles", 'table-of-contents-plus' ), '<code>#</code>' ); ?></p>
+ </div>
+ </td>
+</tr>
+</tbody>
+</table>
+
+<h3><?php _e( 'Advanced', 'table-of-contents-plus' ); ?> <span class="show_hide">(<a href="#toc_advanced_usage"><?php _e( 'show', 'table-of-contents-plus' ); ?></a>)</span></h3>
+<div id="toc_advanced_usage">
+ <h4><?php _e( 'Power options', 'table-of-contents-plus' ); ?></h4>
+ <table class="form-table">
+ <tbody>
+ <tr>
+ <th><label for="lowercase"><?php _e( 'Lowercase', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="lowercase" name="lowercase"<?php if ( $this->options['lowercase'] ) echo ' checked="checked"'; ?> /><label for="lowercase"> <?php _e( 'Ensure anchors are in lowercase', 'table-of-contents-plus' ); ?></label></td>
+ </tr>
+ <tr>
+ <th><label for="hyphenate"><?php _e( 'Hyphenate', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="hyphenate" name="hyphenate"<?php if ( $this->options['hyphenate'] ) echo ' checked="checked"'; ?> /><label for="hyphenate"> <?php _e( 'Use - rather than _ in anchors', 'table-of-contents-plus' ); ?></label></td>
+ </tr>
+ <tr>
+ <th><label for="include_homepage"><?php _e( 'Include homepage', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="include_homepage" name="include_homepage"<?php if ( $this->options['include_homepage'] ) echo ' checked="checked"'; ?> /><label for="include_homepage"> <?php _e( 'Show the table of contents for qualifying items on the homepage', 'table-of-contents-plus' ); ?></label></td>
+ </tr>
+ <tr>
+ <th><label for="exclude_css"><?php _e( 'Exclude CSS file', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="exclude_css" name="exclude_css"<?php if ( $this->options['exclude_css'] ) echo ' checked="checked"'; ?> /><label for="exclude_css"> <?php _e( "Prevent the loading of this plugin's CSS styles. When selected, the appearance options from above will also be ignored.", 'table-of-contents-plus' ); ?></label></td>
+ </tr>
+ <tr>
+ <th><label for="bullet_spacing"><?php _e( 'Preserve theme bullets', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="bullet_spacing" name="bullet_spacing"<?php if ( $this->options['bullet_spacing'] ) echo ' checked="checked"'; ?> /><label for="bullet_spacing"> <?php _e( 'If your theme includes background images for unordered list elements, enable this to support them', 'table-of-contents-plus' ); ?></label></td>
+ </tr>
+ <tr>
+ <th><?php _e( 'Heading levels', 'table-of-contents-plus' ); ?></th>
+ <td>
+ <p><?php _e( 'Include the following heading levels. Deselecting a heading will exclude it.', 'table-of-contents-plus' ); ?></p>
+<?php
+ // show heading 1 to 6 options
+ for ( $i = 1; $i <= 6; $i++ ) {
+ echo '<input type="checkbox" value="' . $i . '" id="heading_levels' . $i .'" name="heading_levels[]"';
+ if ( in_array( $i, $this->options['heading_levels'] ) ) {
+ echo ' checked="checked"';
+ }
+ echo ' /><label for="heading_levels' . $i .'"> ' . __( 'heading ' ) . $i . ' - h' . $i . '</label><br />';
+ }
+?>
+ </td>
+ </tr>
+ <tr>
+ <th><label for="exclude"><?php _e( 'Exclude headings', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['exclude'], ENT_COMPAT, 'UTF-8' ); ?>" id="exclude" name="exclude" style="width: 100%;" /><br />
+ <label for="exclude"><?php _e( 'Specify headings to be excluded from appearing in the table of contents. Separate multiple headings with a pipe <code>|</code>. Use an asterisk <code>*</code> as a wildcard to match other text. Note that this is not case sensitive. Some examples:', 'table-of-contents-plus' ); ?></label><br/>
+ <ul>
+ <li><?php _e( '<code>Fruit*</code> ignore headings starting with "Fruit"', 'table-of-contents-plus' ); ?></li>
+ <li><?php _e( '<code>*Fruit Diet*</code> ignore headings with "Fruit Diet" somewhere in the heading', 'table-of-contents-plus' ); ?></li>
+ <li><?php _e( '<code>Apple Tree|Oranges|Yellow Bananas</code> ignore headings that are exactly "Apple Tree", "Oranges" or "Yellow Bananas"', 'table-of-contents-plus' ); ?></li>
+ </ul>
+ </td>
+ </tr>
+ <tr id="smooth_scroll_offset_tr" class="<?php if ( ! $this->options['smooth_scroll'] ) echo 'disabled'; ?>">
+ <th><label for="smooth_scroll_offset"><?php _e( 'Smooth scroll top offset', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="text" class="regular-text" value="<?php echo intval( $this->options['smooth_scroll_offset'] ); ?>" id="smooth_scroll_offset" name="smooth_scroll_offset" /> px<br />
+ <label for="smooth_scroll_offset"><?php _e( 'If you have a consistent menu across the top of your site, you can adjust the top offset to stop the headings from appearing underneath the top menu. A setting of 30 accommodates the WordPress admin bar. This setting appears after you have enabled smooth scrolling from above.', 'table-of-contents-plus' ); ?></label>
+ </td>
+ </tr>
+ <tr>
+ <th><label for="restrict_path"><?php _e( 'Restrict path', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['restrict_path'], ENT_COMPAT, 'UTF-8' ); ?>" id="restrict_path" name="restrict_path" /><br />
+ <label for="restrict_path"><?php _e( 'Restrict generation of the table of contents to pages that match the required path. This path is from the root of your site and always begins with a forward slash.', 'table-of-contents-plus' ); ?><br />
+ <span class="description"><?php
+ /* translators: example URL path restriction */
+ _e( 'Eg: /wiki/, /corporate/annual-reports/', 'table-of-contents-plus' ); ?></span></label>
+ </td>
+ </tr>
+ <tr>
+ <th><label for="fragment_prefix"><?php _e( 'Default anchor prefix', 'table-of-contents-plus' ); ?></label></th>
+ <td>
+ <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['fragment_prefix'], ENT_COMPAT, 'UTF-8' ); ?>" id="fragment_prefix" name="fragment_prefix" /><br />
+ <label for="fragment_prefix"><?php _e( 'Anchor targets are restricted to alphanumeric characters as per HTML specification (see readme for more detail). The default anchor prefix will be used when no characters qualify. When left blank, a number will be used instead.', 'table-of-contents-plus' ); ?><br />
+ <?php _e( 'This option normally applies to content written in character sets other than ASCII.', 'table-of-contents-plus' ); ?><br />
+ <span class="description"><?php
+ /* translators: example anchor prefixes when no ascii characters match */
+ _e( 'Eg: i, toc_index, index, _', 'table-of-contents-plus' ); ?></span></label>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+
+ <h4><?php
+ /* translators: advanced usage */
+ _e( 'Usage', 'table-of-contents-plus' ); ?></h4>
+ <p><?php printf( __( 'If you would like to fully customise the position of the table of contents, you can use the %s shortcode by placing it at the desired position of your post, page or custom post type. This method allows you to generate the table of contents despite having auto insertion disabled for its content type. Please visit the help tab for further information about this shortcode.', 'table-of-contents-plus' ), '<code>[toc]</code>' ); ?></p>
+</div>
+
+
+ </div>
+ <div id="tab2" class="tab_content">
+
+
+<p><?php printf( __( 'At its simplest, placing %s into a page will automatically create a sitemap of all pages and categories. This also works in a text widget.', 'table-of-contents-plus' ), '<code>[sitemap]</code>' ); ?></p>
+<table class="form-table">
+<tbody>
+<tr>
+ <th><label for="sitemap_show_page_listing"><?php _e( 'Show page listing', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="sitemap_show_page_listing" name="sitemap_show_page_listing"<?php if ( $this->options['sitemap_show_page_listing'] ) echo ' checked="checked"'; ?> /></td>
+</tr>
+<tr>
+ <th><label for="sitemap_show_category_listing"><?php _e( 'Show category listing', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="checkbox" value="1" id="sitemap_show_category_listing" name="sitemap_show_category_listing"<?php if ( $this->options['sitemap_show_category_listing'] ) echo ' checked="checked"'; ?> /></td>
+</tr>
+<tr>
+ <th><label for="sitemap_heading_type"><?php _e( 'Heading type', 'table-of-contents-plus' ); ?></label></th>
+ <td><label for="sitemap_heading_type"><?php
+ /* translators: the full line is supposed to read - Use [1-6 drop down list] to print out the titles */
+ _e( 'Use', 'table-of-contents-plus' ); ?> h</label><select name="sitemap_heading_type" id="sitemap_heading_type">
+<?php
+ // h1 to h6
+ for ( $i = 1; $i <= 6; $i++ ) {
+ echo '<option value="' . $i . '"';
+ if ( $i == $this->options['sitemap_heading_type'] ) {
+ echo ' selected="selected"';
+ }
+ echo '>' . $i . '</option>' . "\n";
+ }
+?>
+ </select> <?php
+ /* translators: the full line is supposed to read - Use [h1-h6 drop down list] to print out the titles */
+ _e( 'to print out the titles', 'table-of-contents-plus' ); ?>
+ </td>
+</tr>
+<tr>
+ <th><label for="sitemap_pages"><?php _e( 'Pages label', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ); ?>" id="sitemap_pages" name="sitemap_pages" />
+ <span class="description"><?php _e( 'Eg: Pages, Page List', 'table-of-contents-plus' ); ?></span>
+ </td>
+</tr>
+<tr>
+ <th><label for="sitemap_categories"><?php _e( 'Categories label', 'table-of-contents-plus' ); ?></label></th>
+ <td><input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ); ?>" id="sitemap_categories" name="sitemap_categories" />
+ <span class="description"><?php _e( 'Eg: Categories, Category List', 'table-of-contents-plus' ); ?></span>
+ </td>
+</tr>
+</tbody>
+</table>
+
+<h3><?php _e( 'Advanced usage', 'table-of-contents-plus' ); ?> <span class="show_hide">(<a href="#sitemap_advanced_usage"><?php _e( 'show', 'table-of-contents-plus' ); ?></a>)</span></h3>
+<div id="sitemap_advanced_usage">
+ <p><code>[sitemap_pages]</code> <?php printf( __( 'lets you print out a listing of only pages. Similarly %s can be used to print out a category listing. They both can accept a number of attributes so visit the help tab for more information.', 'table-of-contents-plus' ), '<code>[sitemap_categories]</code>' ); ?></p>
+ <p><?php _e( 'Examples', 'table-of-contents-plus' ); ?></p>
+ <ol>
+ <li><code>[sitemap_categories no_label="true"]</code> <?php _e( 'hides the heading from a category listing', 'table-of-contents-plus' ); ?></li>
+ <li><code>[sitemap_pages heading="6" label="This is an awesome listing" exclude="1,15"]</code> <?php printf( __( 'Uses h6 to display %s on a page listing excluding pages with IDs 1 and 15', 'table-of-contents-plus' ), '<em>This is an awesome listing</em>' ); ?></li>
+ </ol>
+</div>
+
+
+ </div>
+</div>
+
+
+<p class="submit"><input type="submit" name="submit" class="button-primary" value="<?php _e( 'Update Options', 'table-of-contents-plus' ); ?>" /></p>
+</form>
+</div>
+<?php
+ }
+
+
+ function wp_head() {
+ $css = '';
+
+ if ( ! $this->options['exclude_css'] ) {
+ if ( TOC_THEME_CUSTOM === $this->options['theme'] || 'Auto' !== $this->options['width'] ) {
+ $css .= 'div#toc_container {';
+ if ( TOC_THEME_CUSTOM === $this->options['theme'] ) {
+ $css .= 'background: ' . $this->options['custom_background_colour'] . ';border: 1px solid ' . $this->options['custom_border_colour'] . ';';
+ }
+ if ( 'Auto' !== $this->options['width'] ) {
+ $css .= 'width: ';
+ if ( 'User defined' !== $this->options['width'] ) {
+ $css .= $this->options['width'];
+ } else {
+ $css .= $this->options['width_custom'] . $this->options['width_custom_units'];
+ }
+ $css .= ';';
+ }
+ $css .= '}';
+ }
+
+ if ( '95%' !== $this->options['font_size'] . $this->options['font_size_units'] ) {
+ $css .= 'div#toc_container ul li {font-size: ' . $this->options['font_size'] . $this->options['font_size_units'] . ';}';
+ }
+
+ if ( TOC_THEME_CUSTOM === $this->options['theme'] ) {
+ if ( TOC_DEFAULT_TITLE_COLOUR !== $this->options['custom_title_colour'] ) {
+ $css .= 'div#toc_container p.toc_title {color: ' . $this->options['custom_title_colour'] . ';}';
+ }
+ if ( TOC_DEFAULT_LINKS_COLOUR !== $this->options['custom_links_colour'] ) {
+ $css .= 'div#toc_container p.toc_title a,div#toc_container ul.toc_list a {color: ' . $this->options['custom_links_colour'] . ';}';
+ }
+ if ( TOC_DEFAULT_LINKS_HOVER_COLOUR !== $this->options['custom_links_hover_colour'] ) {
+ $css .= 'div#toc_container p.toc_title a:hover,div#toc_container ul.toc_list a:hover {color: ' . $this->options['custom_links_hover_colour'] . ';}';
+ }
+ if ( TOC_DEFAULT_LINKS_HOVER_COLOUR !== $this->options['custom_links_hover_colour'] ) {
+ $css .= 'div#toc_container p.toc_title a:hover,div#toc_container ul.toc_list a:hover {color: ' . $this->options['custom_links_hover_colour'] . ';}';
+ }
+ if ( TOC_DEFAULT_LINKS_VISITED_COLOUR !== $this->options['custom_links_visited_colour'] ) {
+ $css .= 'div#toc_container p.toc_title a:visited,div#toc_container ul.toc_list a:visited {color: ' . $this->options['custom_links_visited_colour'] . ';}';
+ }
+ }
+ }
+
+ if ( $css ) {
+ echo '<style type="text/css">' . $css . '</style>';
+ }
+ }
+
+
+ /**
+ * Returns a clean url to be used as the destination anchor target
+ */
+ private function url_anchor_target( $title ) {
+ $return = false;
+
+ if ( $title ) {
+ $return = trim( strip_tags( $title ) );
+
+ // convert accented characters to ASCII
+ $return = remove_accents( $return );
+
+ // replace newlines with spaces (eg when headings are split over multiple lines)
+ $return = str_replace( [ "\r", "\n", "\n\r", "\r\n" ], ' ', $return );
+
+ // remove &amp;
+ $return = str_replace( '&amp;', '', $return );
+
+ // remove non alphanumeric chars
+ $return = preg_replace( '/[^a-zA-Z0-9 \-_]*/', '', $return );
+
+ // convert spaces to _
+ $return = str_replace(
+ [ ' ', ' ' ],
+ '_',
+ $return
+ );
+
+ // remove trailing - and _
+ $return = rtrim( $return, '-_' );
+
+ // lowercase everything?
+ if ( $this->options['lowercase'] ) {
+ $return = strtolower( $return );
+ }
+
+ // if blank, then prepend with the fragment prefix
+ // blank anchors normally appear on sites that don't use the latin charset
+ if ( ! $return ) {
+ $return = ( $this->options['fragment_prefix'] ) ? $this->options['fragment_prefix'] : '_';
+ }
+
+ // hyphenate?
+ if ( $this->options['hyphenate'] ) {
+ $return = str_replace( '_', '-', $return );
+ $return = str_replace( '--', '-', $return );
+ }
+ }
+
+ if ( array_key_exists( $return, $this->collision_collector ) ) {
+ $this->collision_collector[ $return ]++;
+ $return .= '-' . $this->collision_collector[ $return ];
+ } else {
+ $this->collision_collector[ $return ] = 1;
+ }
+
+ return apply_filters( 'toc_url_anchor_target', $return );
+ }
+
+
+ private function build_hierarchy( &$matches ) {
+ $current_depth = 100; // headings can't be larger than h6 but 100 as a default to be sure
+ $html = '';
+ $numbered_items = [];
+ $numbered_items_min = null;
+
+ // reset the internal collision collection
+ $this->collision_collector = [];
+
+ // find the minimum heading to establish our baseline
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+ if ( $current_depth > $matches[ $i ][2] ) {
+ $current_depth = (int) $matches[ $i ][2];
+ }
+ }
+
+ $numbered_items[ $current_depth ] = 0;
+ $numbered_items_min = $current_depth;
+
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+
+ if ( $current_depth === (int) $matches[ $i ][2] ) {
+ $html .= '<li>';
+ }
+
+ // start lists
+ if ( $current_depth !== (int) $matches[ $i ][2] ) {
+ for ( $current_depth; $current_depth < (int) $matches[ $i ][2]; $current_depth++ ) {
+ $numbered_items[ $current_depth + 1 ] = 0;
+ $html .= '<ul><li>';
+ }
+ }
+
+ // list item
+ if ( in_array( $matches[ $i ][2], $this->options['heading_levels'] ) ) {
+ $html .= '<a href="#' . $this->url_anchor_target( $matches[ $i ][0] ) . '">';
+ if ( $this->options['ordered_list'] ) {
+ // attach leading numbers when lower in hierarchy
+ $html .= '<span class="toc_number toc_depth_' . ( $current_depth - $numbered_items_min + 1 ) . '">';
+ for ( $j = $numbered_items_min; $j < $current_depth; $j++ ) {
+ $number = ( $numbered_items[ $j ] ) ? $numbered_items[ $j ] : 0;
+ $html .= $number . '.';
+ }
+
+ $html .= ( $numbered_items[ $current_depth ] + 1 ) . '</span> ';
+ $numbered_items[ $current_depth ]++;
+ }
+ $html .= strip_tags( $matches[ $i ][0] ) . '</a>';
+ }
+
+ // end lists
+ if ( count( $matches ) - 1 !== $i ) {
+ if ( $current_depth > (int) $matches[ $i + 1 ][2] ) {
+ for ( $current_depth; $current_depth > (int) $matches[ $i + 1 ][2]; $current_depth-- ) {
+ $html .= '</li></ul>';
+ $numbered_items[ $current_depth ] = 0;
+ }
+ }
+
+ if ( (int) @$matches[ $i + 1 ][2] === $current_depth ) {
+ $html .= '</li>';
+ }
+ } else {
+ // this is the last item, make sure we close off all tags
+ for ( $current_depth; $current_depth >= $numbered_items_min; $current_depth-- ) {
+ $html .= '</li>';
+ if ( $current_depth !== $numbered_items_min ) {
+ $html .= '</ul>';
+ }
+ }
+ }
+ }
+
+ return $html;
+ }
+
+
+ /**
+ * Returns a string with all items from the $find array replaced with their matching
+ * items in the $replace array. This does a one to one replacement (rather than
+ * globally).
+ *
+ * This function is multibyte safe.
+ *
+ * $find and $replace are arrays, $string is the haystack. All variables are
+ * passed by reference.
+ */
+ private function mb_find_replace( &$find = false, &$replace = false, &$string = '' ) {
+ if ( is_array( $find ) && is_array( $replace ) && $string ) {
+ // check if multibyte strings are supported
+ if ( function_exists( 'mb_strpos' ) ) {
+ for ( $i = 0; $i < count( $find ); $i++ ) {
+ $string =
+ mb_substr( $string, 0, mb_strpos( $string, $find[ $i ] ) ) . // everything before $find
+ $replace[ $i ] . // its replacement
+ mb_substr( $string, mb_strpos( $string, $find[ $i ] ) + mb_strlen( $find[ $i ] ) ); // everything after $find
+ }
+ } else {
+ for ( $i = 0; $i < count( $find ); $i++ ) {
+ $string = substr_replace(
+ $string,
+ $replace[ $i ],
+ strpos( $string, $find[ $i ] ),
+ strlen( $find[ $i ] )
+ );
+ }
+ }
+ }
+
+ return $string;
+ }
+
+
+ /**
+ * This function extracts headings from the html formatted $content. It will pull out
+ * only the required headings as specified in the options. For all qualifying headings,
+ * this function populates the $find and $replace arrays (both passed by reference)
+ * with what to search and replace with.
+ *
+ * Returns a html formatted string of list items for each qualifying heading. This
+ * is everything between and NOT including <ul> and </ul>
+ */
+ public function extract_headings( &$find, &$replace, $content = '' ) {
+ $matches = [];
+ $anchor = '';
+ $items = false;
+
+ // reset the internal collision collection as the_content may have been triggered elsewhere
+ // eg by themes or other plugins that need to read in content such as metadata fields in
+ // the head html tag, or to provide descriptions to twitter/facebook
+ $this->collision_collector = [];
+
+ if ( is_array( $find ) && is_array( $replace ) && $content ) {
+ // get all headings
+ // the html spec allows for a maximum of 6 heading depths
+ if ( preg_match_all( '/(<h([1-6]{1})[^>]*>).*<\/h\2>/msuU', $content, $matches, PREG_SET_ORDER ) ) {
+
+ // remove undesired headings (if any) as defined by heading_levels
+ if ( count( $this->options['heading_levels'] ) != 6 ) {
+ $new_matches = [];
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+ if ( in_array( $matches[ $i ][2], $this->options['heading_levels'] ) ) {
+ $new_matches[] = $matches[ $i ];
+ }
+ }
+ $matches = $new_matches;
+ }
+
+ // remove specific headings if provided via the 'exclude' property
+ if ( $this->options['exclude'] ) {
+ $excluded_headings = explode( '|', $this->options['exclude'] );
+ if ( count( $excluded_headings ) > 0 ) {
+ for ( $j = 0; $j < count( $excluded_headings ); $j++ ) {
+ // escape some regular expression characters
+ // others: http://www.php.net/manual/en/regexp.reference.meta.php
+ $excluded_headings[ $j ] = str_replace(
+ [ '*' ],
+ [ '.*' ],
+ trim( $excluded_headings[ $j ] )
+ );
+ }
+
+ $new_matches = [];
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+ $found = false;
+ for ( $j = 0; $j < count( $excluded_headings ); $j++ ) {
+ if ( @preg_match( '/^' . $excluded_headings[ $j ] . '$/imU', strip_tags( $matches[ $i ][0] ) ) ) {
+ $found = true;
+ break;
+ }
+ }
+ if ( ! $found ) {
+ $new_matches[] = $matches[ $i ];
+ }
+ }
+ if ( count( $matches ) !== count( $new_matches ) ) {
+ $matches = $new_matches;
+ }
+ }
+ }
+
+ // remove empty headings
+ $new_matches = [];
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+ if ( trim( strip_tags( $matches[ $i ][0] ) ) != false ) {
+ $new_matches[] = $matches[ $i ];
+ }
+ }
+ if ( count( $matches ) !== count( $new_matches ) ) {
+ $matches = $new_matches;
+ }
+
+ // check minimum number of headings
+ if ( count( $matches ) >= $this->options['start'] ) {
+
+ for ( $i = 0; $i < count( $matches ); $i++ ) {
+ // get anchor and add to find and replace arrays
+ $anchor = $this->url_anchor_target( $matches[ $i ][0] );
+ $find[] = $matches[ $i ][0];
+ $replace[] = str_replace(
+ [
+ $matches[ $i ][1], // start of heading
+ '</h' . $matches[ $i ][2] . '>', // end of heading
+ ],
+ [
+ $matches[ $i ][1] . '<span id="' . $anchor . '">',
+ '</span></h' . $matches[ $i ][2] . '>',
+ ],
+ $matches[ $i ][0]
+ );
+
+ // assemble flat list
+ if ( ! $this->options['show_heirarchy'] ) {
+ $items .= '<li><a href="#' . $anchor . '">';
+ if ( $this->options['ordered_list'] ) {
+ $items .= count( $replace ) . ' ';
+ }
+ $items .= strip_tags( $matches[ $i ][0] ) . '</a></li>';
+ }
+ }
+
+ // build a hierarchical toc?
+ // we could have tested for $items but that var can be quite large in some cases
+ if ( $this->options['show_heirarchy'] ) {
+ $items = $this->build_hierarchy( $matches );
+ }
+ }
+ }
+ }
+
+ return $items;
+ }
+
+
+ /**
+ * Returns true if the table of contents is eligible to be printed, false otherwise.
+ */
+ public function is_eligible( $shortcode_used = false ) {
+ global $post;
+
+ // do not trigger the TOC when displaying an XML/RSS feed
+ if ( is_feed() ) {
+ return false;
+ }
+
+ // if the shortcode was used, this bypasses many of the global options
+ if ( false !== $shortcode_used ) {
+ // shortcode is used, make sure it adheres to the exclude from
+ // homepage option if we're on the homepage
+ if ( ! $this->options['include_homepage'] && is_front_page() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ if (
+ ( in_array( get_post_type( $post ), $this->options['auto_insert_post_types'] ) && $this->show_toc && ! is_search() && ! is_archive() && ! is_front_page() ) ||
+ ( $this->options['include_homepage'] && is_front_page() )
+ ) {
+ if ( $this->options['restrict_path'] ) {
+ if ( strpos( $_SERVER['REQUEST_URI'], $this->options['restrict_path'] ) === 0 ) {
+ return true;
+ } else {
+ return false;
+ }
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+ }
+
+
+ function the_content( $content ) {
+ global $post;
+ $items = '';
+ $css_classes = '';
+ $anchor = '';
+ $find = [];
+ $replace = [];
+ $custom_toc_position = strpos( $content, '<!--TOC-->' );
+
+ if ( $this->is_eligible( $custom_toc_position ) ) {
+
+ $items = $this->extract_headings( $find, $replace, $content );
+
+ if ( $items ) {
+ // do we display the toc within the content or has the user opted
+ // to only show it in the widget? if so, then we still need to
+ // make the find/replace call to insert the anchors
+ if ( $this->options['show_toc_in_widget_only'] && ( in_array( get_post_type(), $this->options['show_toc_in_widget_only_post_types'] ) ) ) {
+ $content = $this->mb_find_replace( $find, $replace, $content );
+ } else {
+
+ // wrapping css classes
+ switch ( $this->options['wrapping'] ) {
+ case TOC_WRAPPING_LEFT:
+ $css_classes .= ' toc_wrap_left';
+ break;
+
+ case TOC_WRAPPING_RIGHT:
+ $css_classes .= ' toc_wrap_right';
+ break;
+
+ case TOC_WRAPPING_NONE:
+ default:
+ // do nothing
+ }
+
+ // colour themes
+ switch ( $this->options['theme'] ) {
+ case TOC_THEME_LIGHT_BLUE:
+ $css_classes .= ' toc_light_blue';
+ break;
+
+ case TOC_THEME_WHITE:
+ $css_classes .= ' toc_white';
+ break;
+
+ case TOC_THEME_BLACK:
+ $css_classes .= ' toc_black';
+ break;
+
+ case TOC_THEME_TRANSPARENT:
+ $css_classes .= ' toc_transparent';
+ break;
+
+ case TOC_THEME_GREY:
+ default:
+ // do nothing
+ }
+
+ // bullets?
+ if ( $this->options['bullet_spacing'] ) {
+ $css_classes .= ' have_bullets';
+ } else {
+ $css_classes .= ' no_bullets';
+ }
+
+ if ( $this->options['css_container_class'] ) {
+ $css_classes .= ' ' . $this->options['css_container_class'];
+ }
+
+ $css_classes = trim( $css_classes );
+
+ // an empty class="" is invalid markup!
+ if ( ! $css_classes ) {
+ $css_classes = ' ';
+ }
+
+ // add container, toc title and list items
+ $html = '<div id="toc_container" class="' . $css_classes . '">';
+ if ( $this->options['show_heading_text'] ) {
+ $toc_title = htmlentities( $this->options['heading_text'], ENT_COMPAT, 'UTF-8' );
+ if ( false !== strpos( $toc_title, '%PAGE_TITLE%' ) ) {
+ $toc_title = str_replace( '%PAGE_TITLE%', get_the_title(), $toc_title );
+ }
+ if ( false !== strpos( $toc_title, '%PAGE_NAME%' ) ) {
+ $toc_title = str_replace( '%PAGE_NAME%', get_the_title(), $toc_title );
+ }
+ $html .= '<p class="toc_title">' . $toc_title . '</p>';
+ }
+ $html .= '<ul class="toc_list">' . $items . '</ul></div>' . "\n";
+
+ if ( false !== $custom_toc_position ) {
+ $find[] = '<!--TOC-->';
+ $replace[] = $html;
+ $content = $this->mb_find_replace( $find, $replace, $content );
+ } else {
+ if ( count( $find ) > 0 ) {
+ switch ( $this->options['position'] ) {
+ case TOC_POSITION_TOP:
+ $content = $html . $this->mb_find_replace( $find, $replace, $content );
+ break;
+
+ case TOC_POSITION_BOTTOM:
+ $content = $this->mb_find_replace( $find, $replace, $content ) . $html;
+ break;
+
+ case TOC_POSITION_AFTER_FIRST_HEADING:
+ $replace[0] = $replace[0] . $html;
+ $content = $this->mb_find_replace( $find, $replace, $content );
+ break;
+
+ case TOC_POSITION_BEFORE_FIRST_HEADING:
+ default:
+ $replace[0] = $html . $replace[0];
+ $content = $this->mb_find_replace( $find, $replace, $content );
+ }
+ }
+ }
+ }
+ }
+ } else {
+ // remove <!--TOC--> (inserted from shortcode) from content
+ $content = str_replace( '<!--TOC-->', '', $content );
+ }
+
+ return $content;
+ }
+
+ } // end class
+endif;
+
+
+
+if ( ! class_exists( 'toc_widget' ) ) :
+ class toc_widget extends WP_Widget {
+
+ function __construct() {
+ $widget_options = [
+ 'classname' => 'toc_widget',
+ 'description' => __( 'Display the table of contents in the sidebar with this widget', 'table-of-contents-plus' ),
+ ];
+ $control_options = [
+ 'width' => 250,
+ 'height' => 350,
+ 'id_base' => 'toc-widget',
+ ];
+ parent::__construct( 'toc-widget', 'TOC+', $widget_options, $control_options );
+ }
+
+
+ /**
+ * Widget output to the public
+ */
+ function widget( $args, $instance ) {
+ global $toc_plus, $wp_query;
+ $items = '';
+ $custom_toc_position = '';
+ $find = [];
+ $replace = [];
+
+ $toc_options = $toc_plus->get_options();
+ $post = get_post( $wp_query->post->ID );
+ $custom_toc_position = strpos( $post->post_content, '[toc]' ); // at this point, shortcodes haven't run yet so we can't search for <!--TOC-->
+
+ if ( $toc_plus->is_eligible( $custom_toc_position ) ) {
+
+ extract( $args );
+
+ $items = $toc_plus->extract_headings( $find, $replace, wptexturize( $post->post_content ) );
+ $title = ( array_key_exists( 'title', $instance ) ) ? apply_filters( 'widget_title', $instance['title'] ) : '';
+ if ( false !== strpos( $title, '%PAGE_TITLE%' ) ) {
+ $title = str_replace( '%PAGE_TITLE%', get_the_title(), $title );
+ }
+ if ( false !== strpos( $title, '%PAGE_NAME%' ) ) {
+ $title = str_replace( '%PAGE_NAME%', get_the_title(), $title );
+ }
+ $hide_inline = $toc_options['show_toc_in_widget_only'];
+
+ $css_classes = '';
+ // bullets?
+ if ( $toc_options['bullet_spacing'] ) {
+ $css_classes .= ' have_bullets';
+ } else {
+ $css_classes .= ' no_bullets';
+ }
+
+ if ( $items ) {
+ // before widget (defined by themes)
+ echo $before_widget;
+
+ // display the widget title if one was input (before and after titles defined by themes)
+ if ( $title ) {
+ echo $before_title . $title . $after_title;
+ }
+
+ // display the list
+ echo '<ul class="toc_widget_list' . $css_classes . '">' . $items . '</ul>';
+
+ // after widget (defined by themes)
+ echo $after_widget;
+ }
+ }
+ }
+
+
+ /**
+ * Update the widget settings
+ */
+ function update( $new_instance, $old_instance ) {
+ global $toc_plus;
+
+ $instance = $old_instance;
+
+ // strip tags for title to remove HTML (important for text inputs)
+ $instance['title'] = strip_tags( trim( $new_instance['title'] ) );
+
+ // no need to strip tags for the following
+ //$instance['hide_inline'] = $new_instance['hide_inline'];
+ $toc_plus->set_show_toc_in_widget_only( $new_instance['hide_inline'] );
+ $toc_plus->set_show_toc_in_widget_only_post_types( (array) $new_instance['show_toc_in_widget_only_post_types'] );
+
+ return $instance;
+ }
+
+
+ /**
+ * Displays the widget settings on the widget panel.
+ */
+ function form( $instance ) {
+ global $toc_plus;
+ $toc_options = $toc_plus->get_options();
+
+ $defaults = [ 'title' => $toc_options['heading_text'] ];
+ $instance = wp_parse_args( (array) $instance, $defaults );
+
+?>
+ <p>
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title', 'table-of-contents-plus' ); ?>:</label>
+ <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />
+ </p>
+
+ <p>
+ <input class="checkbox" type="checkbox" <?php checked( $toc_options['show_toc_in_widget_only'], 1 ); ?> id="<?php echo $this->get_field_id( 'hide_inline' ); ?>" name="<?php echo $this->get_field_name( 'hide_inline' ); ?>" value="1" />
+ <label for="<?php echo $this->get_field_id( 'hide_inline' ); ?>"> <?php _e( 'Show the table of contents only in the sidebar', 'table-of-contents-plus' ); ?></label>
+ </p>
+
+ <div class="show_toc_in_widget_only_post_types" style="margin: 0 0 25px 25px; display: <?php echo ( $toc_options['show_toc_in_widget_only'] == 1 ) ? 'block' : 'none'; ?>;">
+ <p><?php _e( 'For the following content types:', 'table-of-contents-plus' ); ?></p>
+
+ <?php
+ foreach ( get_post_types() as $post_type ) {
+ // make sure the post type isn't on the exclusion list
+ if ( ! in_array( $post_type, $toc_plus->get_exclude_post_types() ) ) {
+ echo '<input type="checkbox" value="' . $post_type . '" id="' . $this->get_field_id( 'show_toc_in_widget_only_post_types_' . $post_type ) . '" name="' . $this->get_field_name( 'show_toc_in_widget_only_post_types' ) . '[]"';
+ if ( in_array( $post_type, $toc_options['show_toc_in_widget_only_post_types'] ) ) {
+ echo ' checked="checked"';
+ }
+ echo ' /><label for="' . $this->get_field_id( 'show_toc_in_widget_only_post_types_' . $post_type ) . '"> ' . $post_type . '</label><br />';
+ }
+ }
+
+ ?></div>
+
+<script type="text/javascript">
+jQuery(document).ready(function($) {
+ $('#<?php echo $this->get_field_id( 'hide_inline' ); ?>').click(function() {
+ $(this).parent().siblings('div.show_toc_in_widget_only_post_types').toggle('fast');
+ });
+});
+</script>
+<?php
+ }
+
+ } // end class
+endif;
+
+
+/**
+ * Returns a HTML formatted string of the table of contents without the surrounding UL or OL
+ * tags to enable the theme editor to supply their own ID and/or classes to the outer list.
+ *
+ * There are three optional parameters you can feed this function with:
+ *
+ * - $content is the entire content with headings. If blank, will default to the current $post
+ *
+ * - $link is the URL to prefix the anchor with. If provided a string, will use it as the prefix.
+ * If set to true then will try to obtain the permalink from the $post object.
+ *
+ * - $apply_eligibility bool, defaults to false. When set to true, will apply the check to
+ * see if bit of content has the prerequisites needed for a TOC, eg minimum number of headings
+ * enabled post type, etc.
+ */
+function toc_get_index( $content = '', $prefix_url = '', $apply_eligibility = false ) {
+ global $wp_query, $toc_plus;
+
+ $return = '';
+ $find = [];
+ $replace = [];
+ $proceed = true;
+
+ if ( ! $content ) {
+ $post = get_post( $wp_query->post->ID );
+ $content = wptexturize( $post->post_content );
+ }
+
+ if ( $apply_eligibility ) {
+ if ( ! $toc_plus->is_eligible() ) {
+ $proceed = false;
+ }
+ } else {
+ $toc_plus->set_option( [ 'start' => 0 ] );
+ }
+
+ if ( $proceed ) {
+ $return = $toc_plus->extract_headings( $find, $replace, $content );
+ if ( $prefix_url ) {
+ $return = str_replace( 'href="#', 'href="' . $prefix_url . '#', $return );
+ }
+ }
+
+ return $return;
+}
diff --git a/plugins/table-of-contents-plus/phpcs.xml b/plugins/table-of-contents-plus/phpcs.xml
new file mode 100644
index 00000000..890eb5fe
--- /dev/null
+++ b/plugins/table-of-contents-plus/phpcs.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ruleset name="WordPress Coding Standards">
+ <description>WordPress Coding Standards</description>
+
+ <!-- Scan all files in directory -->
+ <file>.</file>
+
+ <!-- Scan only PHP files -->
+ <arg name="extensions" value="php"/>
+
+ <!-- Show progress, show the error codes for each message (source). -->
+ <arg value="ps" />
+
+ <!-- Check up to 8 files simultaneously. -->
+ <arg name="parallel" value="8" />
+
+ <!-- Include the WordPress-Core standard. -->
+ <rule ref="WordPress-Core">
+ <exclude name="Generic.Arrays.DisallowShortArraySyntax.Found"/>
+ <exclude name="WordPress.PHP.DisallowShortTernary.Found"/>
+ </rule>
+
+ <rule ref="Internal.NoCodeFound">
+ <severity>0</severity>
+ </rule>
+</ruleset> \ No newline at end of file
diff --git a/plugins/table-of-contents-plus/readme.txt b/plugins/table-of-contents-plus/readme.txt
index 9ad43e5c..692e9789 100644
--- a/plugins/table-of-contents-plus/readme.txt
+++ b/plugins/table-of-contents-plus/readme.txt
@@ -2,8 +2,8 @@
Contributors: conjur3r
Tags: table of contents, indexes, toc, sitemap, cms, options, list, page listing, category listing
Requires at least: 3.2
-Tested up to: 5.3
-Stable tag: 2002
+Tested up to: 5.7
+Stable tag: 2106
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -99,6 +99,13 @@ I will never ask for any form of reward or compensation. Helping others achieve
== Changelog ==
+= 2106 =
+* Released: 23 June 2021
+* Add compatibility with Rank Math SEO
+* Bump tested WordPress version to 5.7
+* Add PHP coding style
+* Adhere to majority of coding tips
+
= 2002 =
* Released: 9 February 2020
* Fixed encoding when using %PAGE_TITLE% or %PAGE_NAME%
diff --git a/plugins/table-of-contents-plus/toc.php b/plugins/table-of-contents-plus/toc.php
index 201cb562..35ecf657 100644
--- a/plugins/table-of-contents-plus/toc.php
+++ b/plugins/table-of-contents-plus/toc.php
@@ -1,1763 +1,38 @@
-<?php
-/*
-Plugin Name: Table of Contents Plus
-Plugin URI: http://dublue.com/plugins/toc/
-Description: A powerful yet user friendly plugin that automatically creates a table of contents. Can also output a sitemap listing all pages and categories.
-Author: Michael Tran
-Author URI: http://dublue.com/
-Text Domain: table-of-contents-plus
-Domain Path: /languages
-Version: 2002
-License: GPL2
-*/
-
-/* Copyright 2002 Michael Tran (michael@dublue.com)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License, version 2, as
- published by the Free Software Foundation.
-
- 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
-*/
-
-/*
-GPL licenced Oxygen icon used for the colour wheel - http://www.iconfinder.com/search/?q=iconset%3Aoxygen
-*/
-
-/**
-FOR CONSIDERATION:
-- back to top links
-- sitemap
- - easier exclude pages/categories
- - support other taxonomies
-- advanced options
- - highlight target css
-*/
-
-define( 'TOC_VERSION', '2002' );
-define( 'TOC_POSITION_BEFORE_FIRST_HEADING', 1 );
-define( 'TOC_POSITION_TOP', 2 );
-define( 'TOC_POSITION_BOTTOM', 3 );
-define( 'TOC_POSITION_AFTER_FIRST_HEADING', 4 );
-define( 'TOC_MIN_START', 2 );
-define( 'TOC_MAX_START', 10 );
-define( 'TOC_SMOOTH_SCROLL_OFFSET', 30 );
-define( 'TOC_WRAPPING_NONE', 0 );
-define( 'TOC_WRAPPING_LEFT', 1 );
-define( 'TOC_WRAPPING_RIGHT', 2 );
-define( 'TOC_THEME_GREY', 1 );
-define( 'TOC_THEME_LIGHT_BLUE', 2 );
-define( 'TOC_THEME_WHITE', 3 );
-define( 'TOC_THEME_BLACK', 4 );
-define( 'TOC_THEME_TRANSPARENT', 99 );
-define( 'TOC_THEME_CUSTOM', 100 );
-define( 'TOC_DEFAULT_BACKGROUND_COLOUR', '#f9f9f9' );
-define( 'TOC_DEFAULT_BORDER_COLOUR', '#aaaaaa' );
-define( 'TOC_DEFAULT_TITLE_COLOUR', '#' );
-define( 'TOC_DEFAULT_LINKS_COLOUR', '#' );
-define( 'TOC_DEFAULT_LINKS_HOVER_COLOUR', '#' );
-define( 'TOC_DEFAULT_LINKS_VISITED_COLOUR', '#' );
-
-
-if ( !class_exists( 'toc' ) ) :
- class toc {
-
- private $path; // eg /wp-content/plugins/toc
- private $options;
- private $show_toc; // allows to override the display (eg through [no_toc] shortcode)
- private $exclude_post_types;
- private $collision_collector; // keeps a track of used anchors for collision detecting
-
- function __construct()
- {
- $this->path = plugins_url( '', __FILE__ );
- $this->show_toc = true;
- $this->exclude_post_types = array( 'attachment', 'revision', 'nav_menu_item', 'safecss' );
- $this->collision_collector = array();
-
- // get options
- $defaults = array( // default options
- 'fragment_prefix' => 'i',
- 'position' => TOC_POSITION_BEFORE_FIRST_HEADING,
- 'start' => 4,
- 'show_heading_text' => true,
- 'heading_text' => 'Contents',
- 'auto_insert_post_types' => array('page'),
- 'show_heirarchy' => true,
- 'ordered_list' => true,
- 'smooth_scroll' => false,
- 'smooth_scroll_offset' => TOC_SMOOTH_SCROLL_OFFSET,
- 'visibility' => true,
- 'visibility_show' => 'show',
- 'visibility_hide' => 'hide',
- 'visibility_hide_by_default' => false,
- 'width' => 'Auto',
- 'width_custom' => '275',
- 'width_custom_units' => 'px',
- 'wrapping' => TOC_WRAPPING_NONE,
- 'font_size' => '95',
- 'font_size_units' => '%',
- 'theme' => TOC_THEME_GREY,
- 'custom_background_colour' => TOC_DEFAULT_BACKGROUND_COLOUR,
- 'custom_border_colour' => TOC_DEFAULT_BORDER_COLOUR,
- 'custom_title_colour' => TOC_DEFAULT_TITLE_COLOUR,
- 'custom_links_colour' => TOC_DEFAULT_LINKS_COLOUR,
- 'custom_links_hover_colour' => TOC_DEFAULT_LINKS_HOVER_COLOUR,
- 'custom_links_visited_colour' => TOC_DEFAULT_LINKS_VISITED_COLOUR,
- 'lowercase' => false,
- 'hyphenate' => false,
- 'bullet_spacing' => false,
- 'include_homepage' => false,
- 'exclude_css' => false,
- 'exclude' => '',
- 'heading_levels' => array('1', '2', '3', '4', '5', '6'),
- 'restrict_path' => '',
- 'css_container_class' => '',
- 'sitemap_show_page_listing' => true,
- 'sitemap_show_category_listing' => true,
- 'sitemap_heading_type' => 3,
- 'sitemap_pages' => 'Pages',
- 'sitemap_categories' => 'Categories',
- 'show_toc_in_widget_only' => false,
- 'show_toc_in_widget_only_post_types' => array('page')
- );
- $options = get_option( 'toc-options', $defaults );
- $this->options = wp_parse_args( $options, $defaults );
-
- add_action( 'plugins_loaded', array(&$this, 'plugins_loaded') );
- add_action( 'wp_enqueue_scripts', array(&$this, 'wp_enqueue_scripts') );
- add_action( 'wp_head', array(&$this, 'wp_head') );
- add_action( 'admin_init', array(&$this, 'admin_init') );
- add_action( 'admin_menu', array(&$this, 'admin_menu') );
- add_action( 'widgets_init', array(&$this, 'widgets_init') );
- add_action( 'sidebar_admin_setup', array(&$this, 'sidebar_admin_setup') );
-
- add_filter( 'the_content', array(&$this, 'the_content'), 100 ); // run after shortcodes are interpretted (level 10)
- add_filter( 'plugin_action_links', array(&$this, 'plugin_action_links'), 10, 2 );
- add_filter( 'widget_text', 'do_shortcode' );
-
- add_shortcode( 'toc', array(&$this, 'shortcode_toc') );
- add_shortcode( 'no_toc', array(&$this, 'shortcode_no_toc') );
- add_shortcode( 'sitemap', array(&$this, 'shortcode_sitemap') );
- add_shortcode( 'sitemap_pages', array(&$this, 'shortcode_sitemap_pages') );
- add_shortcode( 'sitemap_categories', array(&$this, 'shortcode_sitemap_categories') );
- add_shortcode( 'sitemap_posts', array(&$this, 'shortcode_sitemap_posts') );
- }
-
-
- function __destruct()
- {
- }
-
-
- public function get_options()
- {
- return $this->options;
- }
-
-
- public function set_option($array)
- {
- $this->options = array_merge($this->options, $array);
- }
-
-
- /**
- * Allows the developer to disable TOC execution
- */
- public function disable()
- {
- $this->show_toc = false;
- }
-
-
- /**
- * Allows the developer to enable TOC execution
- */
- public function enable()
- {
- $this->show_toc = true;
- }
-
-
- public function set_show_toc_in_widget_only( $value = false )
- {
- if ( $value )
- $this->options['show_toc_in_widget_only'] = true;
- else
- $this->options['show_toc_in_widget_only'] = false;
-
- update_option( 'toc-options', $this->options );
- }
-
-
- public function set_show_toc_in_widget_only_post_types( $value = false )
- {
- if ( $value )
- $this->options['show_toc_in_widget_only_post_types'] = $value;
- else
- $this->options['show_toc_in_widget_only_post_types'] = array();
-
- update_option( 'toc-options', $this->options );
- }
-
-
- public function get_exclude_post_types()
- {
- return $this->exclude_post_types;
- }
-
-
- function plugin_action_links( $links, $file )
- {
- if ( $file == 'table-of-contents-plus/' . basename(__FILE__) ) {
- $settings_link = '<a href="options-general.php?page=toc">' . __('Settings', 'table-of-contents-plus') . '</a>';
- $links = array_merge( array( $settings_link ), $links );
- }
- return $links;
- }
-
-
- function shortcode_toc( $atts )
- {
- extract( shortcode_atts( array(
- 'label' => $this->options['heading_text'],
- 'label_show' => $this->options['visibility_show'],
- 'label_hide' => $this->options['visibility_hide'],
- 'no_label' => false,
- 'class' => false,
- 'wrapping' => $this->options['wrapping'],
- 'heading_levels' => $this->options['heading_levels'],
- 'exclude' => $this->options['exclude'],
- 'collapse' => false
- ), $atts )
- );
-
- $re_enqueue_scripts = false;
-
- if ( $no_label ) $this->options['show_heading_text'] = false;
- if ( $label ) $this->options['heading_text'] = html_entity_decode( $label );
- if ( $label_show ) {
- $this->options['visibility_show'] = html_entity_decode( $label_show );
- $re_enqueue_scripts = true;
- }
- if ( $label_hide ) {
- $this->options['visibility_hide'] = html_entity_decode( $label_hide );
- $re_enqueue_scripts = true;
- }
- if ( $class ) $this->options['css_container_class'] = $class;
- if ( $wrapping ) {
- switch ( strtolower(trim($wrapping)) ) {
- case 'left':
- $this->options['wrapping'] = TOC_WRAPPING_LEFT;
- break;
-
- case 'right':
- $this->options['wrapping'] = TOC_WRAPPING_RIGHT;
- break;
-
- default:
- // do nothing
- }
- }
-
- if ( $exclude ) $this->options['exclude'] = $exclude;
- if ( $collapse ) {
- $this->options['visibility_hide_by_default'] = true;
- $re_enqueue_scripts = true;
- }
-
- if ( $re_enqueue_scripts ) do_action( 'wp_enqueue_scripts' );
-
- // if $heading_levels is an array, then it came from the global options
- // and wasn't provided by per instance
- if ( $heading_levels && !is_array($heading_levels) ) {
- // make sure they are numbers between 1 and 6 and put into
- // the $clean_heading_levels array if not already
- $clean_heading_levels = array();
- foreach (explode(',', $heading_levels) as $heading_level) {
- if ( is_numeric($heading_level) ) {
- if ( 1 <= $heading_level && $heading_level <= 6 ) {
- if ( !in_array($heading_level, $clean_heading_levels) ) {
- $clean_heading_levels[] = $heading_level;
- }
- }
- }
- }
-
- if ( count($clean_heading_levels) > 0 )
- $this->options['heading_levels'] = $clean_heading_levels;
- }
-
- if ( !is_search() && !is_archive() && !is_feed() )
- return '<!--TOC-->';
- else
- return;
- }
-
-
- function shortcode_no_toc( $atts )
- {
- $this->show_toc = false;
-
- return;
- }
-
-
- function shortcode_sitemap( $atts )
- {
- $html = '';
-
- // only do the following if enabled
- if ( $this->options['sitemap_show_page_listing'] || $this->options['sitemap_show_category_listing'] ) {
- $html = '<div class="toc_sitemap">';
- if ( $this->options['sitemap_show_page_listing'] )
- $html .=
- '<h' . $this->options['sitemap_heading_type'] . ' class="toc_sitemap_pages">' . htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ) . '</h' . $this->options['sitemap_heading_type'] . '>' .
- '<ul class="toc_sitemap_pages_list">' .
- wp_list_pages( array('title_li' => '', 'echo' => false ) ) .
- '</ul>'
- ;
- if ( $this->options['sitemap_show_category_listing'] )
- $html .=
- '<h' . $this->options['sitemap_heading_type'] . ' class="toc_sitemap_categories">' . htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ) . '</h' . $this->options['sitemap_heading_type'] . '>' .
- '<ul class="toc_sitemap_categories_list">' .
- wp_list_categories( array( 'title_li' => '', 'echo' => false ) ) .
- '</ul>'
- ;
- $html .= '</div>';
- }
-
- return $html;
- }
-
-
- function shortcode_sitemap_pages( $atts )
- {
- extract( shortcode_atts( array(
- 'heading' => $this->options['sitemap_heading_type'],
- 'label' => htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ),
- 'no_label' => false,
- 'exclude' => '',
- 'exclude_tree' => ''
- ), $atts )
- );
-
- if ( $heading < 1 || $heading > 6 ) // h1 to h6 are valid
- $heading = $this->options['sitemap_heading_type'];
-
- $html = '<div class="toc_sitemap">';
- if ( !$no_label ) $html .= '<h' . $heading . ' class="toc_sitemap_pages">' . $label . '</h' . $heading . '>';
- $html .=
- '<ul class="toc_sitemap_pages_list">' .
- wp_list_pages( array('title_li' => '', 'echo' => false, 'exclude' => $exclude, 'exclude_tree' => $exclude_tree ) ) .
- '</ul>' .
- '</div>'
- ;
-
- return $html;
- }
-
-
- function shortcode_sitemap_categories( $atts )
- {
- extract( shortcode_atts( array(
- 'heading' => $this->options['sitemap_heading_type'],
- 'label' => htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ),
- 'no_label' => false,
- 'exclude' => '',
- 'exclude_tree' => ''
- ), $atts )
- );
-
- if ( $heading < 1 || $heading > 6 ) // h1 to h6 are valid
- $heading = $this->options['sitemap_heading_type'];
-
- $html = '<div class="toc_sitemap">';
- if ( !$no_label ) $html .= '<h' . $heading . ' class="toc_sitemap_categories">' . $label . '</h' . $heading . '>';
- $html .=
- '<ul class="toc_sitemap_categories_list">' .
- wp_list_categories( array('title_li' => '', 'echo' => false, 'exclude' => $exclude, 'exclude_tree' => $exclude_tree ) ) .
- '</ul>' .
- '</div>'
- ;
-
- return $html;
- }
-
-
- function shortcode_sitemap_posts( $atts )
- {
- extract( shortcode_atts( array(
- 'order' => 'ASC',
- 'orderby' => 'title',
- 'separate' => true
- ), $atts )
- );
-
- $articles = new WP_Query(array(
- 'post_type' => 'post',
- 'post_status' => 'publish',
- 'order' => $order,
- 'orderby' => $orderby,
- 'posts_per_page' => -1
- ));
-
- $html = $letter = '';
-
- $separate = strtolower($separate);
- if ( $separate == 'false' || $separate == 'no') $separate = false;
-
- while ( $articles->have_posts() ) {
- $articles->the_post();
- $title = strip_tags(get_the_title());
-
- if ( $separate ) {
- if ( $letter != strtolower($title[0]) ) {
- if ( $letter ) $html .= '</ul></div>';
-
- $html .= '<div class="toc_sitemap_posts_section"><p class="toc_sitemap_posts_letter">' . strtolower($title[0]) . '</p><ul class="toc_sitemap_posts_list">';
- $letter = strtolower($title[0]);
- }
- }
-
- $html .= '<li><a href="' . get_permalink($articles->post->ID) . '">' . $title . '</a></li>';
- }
-
- if ( $html ) {
- if ( $separate )
- $html .= '</div>';
- else
- $html = '<div class="toc_sitemap_posts_section"><ul class="toc_sitemap_posts_list">' . $html . '</ul></div>';
- }
-
- wp_reset_postdata();
-
- return $html;
- }
-
-
- /**
- * Register and load CSS and javascript files for frontend.
- */
- function wp_enqueue_scripts()
- {
- $js_vars = array();
-
- // register our CSS and scripts
- wp_register_style( 'toc-screen', $this->path . '/screen.min.css', array(), TOC_VERSION );
- wp_register_script( 'toc-front', $this->path . '/front.min.js', array('jquery'), TOC_VERSION, true );
-
- // enqueue them!
- if ( !$this->options['exclude_css'] ) wp_enqueue_style("toc-screen");
-
- if ( $this->options['smooth_scroll'] ) $js_vars['smooth_scroll'] = true;
- wp_enqueue_script( 'toc-front' );
- if ( $this->options['show_heading_text'] && $this->options['visibility'] ) {
- $width = ( $this->options['width'] != 'User defined' ) ? $this->options['width'] : $this->options['width_custom'] . $this->options['width_custom_units'];
- $js_vars['visibility_show'] = esc_js($this->options['visibility_show']);
- $js_vars['visibility_hide'] = esc_js($this->options['visibility_hide']);
- if ( $this->options['visibility_hide_by_default'] ) $js_vars['visibility_hide_by_default'] = true;
- $js_vars['width'] = esc_js($width);
- }
- if ( $this->options['smooth_scroll_offset'] != TOC_SMOOTH_SCROLL_OFFSET )
- $js_vars['smooth_scroll_offset'] = esc_js($this->options['smooth_scroll_offset']);
-
- if ( count($js_vars) > 0 ) {
- wp_localize_script(
- 'toc-front',
- 'tocplus',
- $js_vars
- );
- }
- }
-
-
- function plugins_loaded()
- {
- load_plugin_textdomain( 'table-of-contents-plus', false, dirname(plugin_basename(__FILE__)) . '/languages/' );
- }
-
-
- function admin_init()
- {
- wp_register_script( 'toc_admin_script', $this->path . '/admin.js' );
- wp_register_style( 'toc_admin_style', $this->path . '/admin.css' );
- }
-
-
- function admin_menu()
- {
- $page = add_submenu_page(
- 'options-general.php',
- __('TOC', 'table-of-contents-plus') . '+',
- __('TOC', 'table-of-contents-plus') . '+',
- 'manage_options',
- 'toc',
- array(&$this, 'admin_options')
- );
-
- add_action( 'admin_print_styles-' . $page, array(&$this, 'admin_options_head') );
- }
-
-
- function widgets_init()
- {
- register_widget('toc_widget');
- }
-
-
- /**
- * Remove widget options on widget deletion
- */
- function sidebar_admin_setup()
- {
- // this action is loaded at the start of the widget screen
- // so only do the following only when a form action has been initiated
- if ( 'post' == strtolower( $_SERVER['REQUEST_METHOD'] ) ) {
- if ( @$_POST['id_base'] == 'toc-widget' ) {
- if ( isset( $_POST['delete_widget'] ) ) {
- if ( 1 === (int) $_POST['delete_widget'] ) {
- $this->set_show_toc_in_widget_only( false );
- $this->set_show_toc_in_widget_only_post_types( array('page') );
- }
- }
- }
- }
- }
-
-
- /**
- * Load needed scripts and styles only on the toc administration interface.
- */
- function admin_options_head()
- {
- wp_enqueue_style( 'farbtastic' );
- wp_enqueue_script( 'farbtastic' );
- wp_enqueue_script( 'jquery' );
- wp_enqueue_script( 'toc_admin_script' );
- wp_enqueue_style( 'toc_admin_style' );
- }
-
-
- /**
- * Tries to convert $string into a valid hex colour.
- * Returns $default if $string is not a hex value, otherwise returns verified hex.
- */
- private function hex_value( $string = '', $default = '#' )
- {
- $return = $default;
-
- if ( $string ) {
- // strip out non hex chars
- $return = preg_replace( '/[^a-fA-F0-9]*/', '', $string );
-
- switch ( strlen($return) ) {
- case 3: // do next
- case 6:
- $return = '#' . $return;
- break;
-
- default:
- if ( strlen($return) > 6 )
- $return = '#' . substr($return, 0, 6); // if > 6 chars, then take the first 6
- elseif ( strlen($return) > 3 && strlen($return) < 6 )
- $return = '#' . substr($return, 0, 3); // if between 3 and 6, then take first 3
- else
- $return = $default; // not valid, return $default
- }
- }
-
- return $return;
- }
-
-
- private function save_admin_options()
- {
- global $post_id;
-
- // security check
- if ( !wp_verify_nonce( @$_POST['toc-admin-options'], plugin_basename(__FILE__) ) )
- return false;
-
- // require an administrator level to save
- if ( !current_user_can( 'manage_options', $post_id ) )
- return false;
-
- // use stripslashes on free text fields that can have ' " \
- // WordPress automatically slashes these characters as part of
- // wp-includes/load.php::wp_magic_quotes()
-
- $custom_background_colour = $this->hex_value( trim($_POST['custom_background_colour']), TOC_DEFAULT_BACKGROUND_COLOUR );
- $custom_border_colour = $this->hex_value( trim($_POST['custom_border_colour']), TOC_DEFAULT_BORDER_COLOUR );
- $custom_title_colour = $this->hex_value( trim($_POST['custom_title_colour']), TOC_DEFAULT_TITLE_COLOUR );
- $custom_links_colour = $this->hex_value( trim($_POST['custom_links_colour']), TOC_DEFAULT_LINKS_COLOUR );
- $custom_links_hover_colour = $this->hex_value( trim($_POST['custom_links_hover_colour']), TOC_DEFAULT_LINKS_HOVER_COLOUR );
- $custom_links_visited_colour = $this->hex_value( trim($_POST['custom_links_visited_colour']), TOC_DEFAULT_LINKS_VISITED_COLOUR );
-
- if ( $restrict_path = trim($_POST['restrict_path']) ) {
- if ( strpos($restrict_path, '/') !== 0 ) {
- // restrict path did not start with a / so unset it
- $restrict_path = '';
- }
- }
-
- $this->options = array_merge(
- $this->options,
- array(
- 'fragment_prefix' => trim($_POST['fragment_prefix']),
- 'position' => intval($_POST['position']),
- 'start' => intval($_POST['start']),
- 'show_heading_text' => (isset($_POST['show_heading_text']) && $_POST['show_heading_text']) ? true : false,
- 'heading_text' => stripslashes( trim($_POST['heading_text']) ),
- 'auto_insert_post_types' => @(array)$_POST['auto_insert_post_types'],
- 'show_heirarchy' => (isset($_POST['show_heirarchy']) && $_POST['show_heirarchy']) ? true : false,
- 'ordered_list' => (isset($_POST['ordered_list']) && $_POST['ordered_list']) ? true : false,
- 'smooth_scroll' => (isset($_POST['smooth_scroll']) && $_POST['smooth_scroll']) ? true : false,
- 'smooth_scroll_offset' => intval($_POST['smooth_scroll_offset']),
- 'visibility' => (isset($_POST['visibility']) && $_POST['visibility']) ? true : false,
- 'visibility_show' => stripslashes( trim($_POST['visibility_show']) ),
- 'visibility_hide' => stripslashes( trim($_POST['visibility_hide']) ),
- 'visibility_hide_by_default' => (isset($_POST['visibility_hide_by_default']) && $_POST['visibility_hide_by_default']) ? true : false,
- 'width' => trim($_POST['width']),
- 'width_custom' => floatval($_POST['width_custom']),
- 'width_custom_units' => trim($_POST['width_custom_units']),
- 'wrapping' => intval($_POST['wrapping']),
- 'font_size' => floatval($_POST['font_size']),
- 'font_size_units' => trim($_POST['font_size_units']),
- 'theme' => intval($_POST['theme']),
- 'custom_background_colour' => $custom_background_colour,
- 'custom_border_colour' => $custom_border_colour,
- 'custom_title_colour' => $custom_title_colour,
- 'custom_links_colour' => $custom_links_colour,
- 'custom_links_hover_colour' => $custom_links_hover_colour,
- 'custom_links_visited_colour' => $custom_links_visited_colour,
- 'lowercase' => (isset($_POST['lowercase']) && $_POST['lowercase']) ? true : false,
- 'hyphenate' => (isset($_POST['hyphenate']) && $_POST['hyphenate']) ? true : false,
- 'bullet_spacing' => (isset($_POST['bullet_spacing']) && $_POST['bullet_spacing']) ? true : false,
- 'include_homepage' => (isset($_POST['include_homepage']) && $_POST['include_homepage']) ? true : false,
- 'exclude_css' => (isset($_POST['exclude_css']) && $_POST['exclude_css']) ? true : false,
- 'heading_levels' => @(array)$_POST['heading_levels'],
- 'exclude' => stripslashes( trim($_POST['exclude']) ),
- 'restrict_path' => $restrict_path,
- 'sitemap_show_page_listing' => (isset($_POST['sitemap_show_page_listing']) && $_POST['sitemap_show_page_listing']) ? true : false,
- 'sitemap_show_category_listing' => (isset($_POST['sitemap_show_category_listing']) && $_POST['sitemap_show_category_listing']) ? true : false,
- 'sitemap_heading_type' => intval($_POST['sitemap_heading_type']),
- 'sitemap_pages' => stripslashes( trim($_POST['sitemap_pages']) ),
- 'sitemap_categories' => stripslashes( trim($_POST['sitemap_categories']) )
- )
- );
-
- // update_option will return false if no changes were made
- update_option( 'toc-options', $this->options );
-
- return true;
- }
-
-
- function admin_options()
- {
- $msg = '';
-
- if ( isset( $_GET['update'] ) ) {
- if ( $this->save_admin_options() )
- $msg = '<div id="message" class="updated fade"><p>' . __('Options saved.', 'table-of-contents-plus') . '</p></div>';
- else
- $msg = '<div id="message" class="error fade"><p>' . __('Save failed.', 'table-of-contents-plus') . '</p></div>';
- }
-
-?>
-<div id='toc' class='wrap'>
-<div id="icon-options-general" class="icon32"><br /></div>
-<h2>Table of Contents Plus</h2>
-<?php echo $msg; ?>
-<form method="post" action="<?php echo htmlentities('?page=' . $_GET['page'] . '&update'); ?>">
-<?php wp_nonce_field( plugin_basename(__FILE__), 'toc-admin-options' ); ?>
-
-<ul id="tabbed-nav">
- <li><a href="#tab1"><?php _e('Main Options', 'table-of-contents-plus'); ?></a></li>
- <li><a href="#tab2"><?php _e('Sitemap', 'table-of-contents-plus'); ?></a></li>
- <li class="url"><a href="http://dublue.com/plugins/toc/#Help"><?php _e('Help', 'table-of-contents-plus'); ?></a></li>
-</ul>
-<div class="tab_container">
- <div id="tab1" class="tab_content">
-
-<table class="form-table">
-<tbody>
-<tr>
- <th><label for="position"><?php _e('Position', 'table-of-contents-plus'); ?></label></th>
- <td>
- <select name="position" id="position">
- <option value="<?php echo TOC_POSITION_BEFORE_FIRST_HEADING; ?>"<?php if ( TOC_POSITION_BEFORE_FIRST_HEADING == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e('Before first heading (default)', 'table-of-contents-plus'); ?></option>
- <option value="<?php echo TOC_POSITION_AFTER_FIRST_HEADING; ?>"<?php if ( TOC_POSITION_AFTER_FIRST_HEADING == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e('After first heading', 'table-of-contents-plus'); ?></option>
- <option value="<?php echo TOC_POSITION_TOP; ?>"<?php if ( TOC_POSITION_TOP == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e('Top', 'table-of-contents-plus'); ?></option>
- <option value="<?php echo TOC_POSITION_BOTTOM; ?>"<?php if ( TOC_POSITION_BOTTOM == $this->options['position'] ) echo ' selected="selected"'; ?>><?php _e('Bottom', 'table-of-contents-plus'); ?></option>
- </select>
- </td>
-</tr>
-<tr>
- <th><label for="start"><?php _e('Show when', 'table-of-contents-plus'); ?></label></th>
- <td>
- <select name="start" id="start">
-<?php
- for ($i = TOC_MIN_START; $i <= TOC_MAX_START; $i++) {
- echo '<option value="' . $i . '"';
- if ( $i == $this->options['start'] ) echo ' selected="selected"';
- echo '>' . $i . '</option>' . "\n";
- }
-?>
- </select> <?php
- /* translators: text follows drop down list of numbers */
- _e('or more headings are present', 'table-of-contents-plus'); ?>
- </td>
-</tr>
-<tr>
- <th><?php _e('Auto insert for the following content types', 'table-of-contents-plus'); ?></th>
- <td><?php
- foreach (get_post_types() as $post_type) {
- // make sure the post type isn't on the exclusion list
- if ( !in_array($post_type, $this->exclude_post_types) ) {
- echo '<input type="checkbox" value="' . $post_type . '" id="auto_insert_post_types_' . $post_type .'" name="auto_insert_post_types[]"';
- if ( in_array($post_type, $this->options['auto_insert_post_types']) ) echo ' checked="checked"';
- echo ' /><label for="auto_insert_post_types_' . $post_type .'"> ' . $post_type . '</label><br />';
- }
- }
-?>
-</tr>
-<tr>
- <th><label for="show_heading_text"><?php
- /* translators: this is the title of the table of contents */
- _e('Heading text', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="checkbox" value="1" id="show_heading_text" name="show_heading_text"<?php if ( $this->options['show_heading_text'] ) echo ' checked="checked"'; ?> /><label for="show_heading_text"> <?php _e('Show title on top of the table of contents', 'table-of-contents-plus'); ?></label><br />
- <div class="more_toc_options<?php if ( !$this->options['show_heading_text'] ) echo ' disabled'; ?>">
- <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['heading_text'], ENT_COMPAT, 'UTF-8' ); ?>" id="heading_text" name="heading_text" />
- <span class="description"><label for="heading_text"><?php _e('Eg: Contents, Table of Contents, Page Contents', 'table-of-contents-plus'); ?></label></span><br /><br />
-
- <input type="checkbox" value="1" id="visibility" name="visibility"<?php if ( $this->options['visibility'] ) echo ' checked="checked"'; ?> /><label for="visibility"> <?php _e( 'Allow the user to toggle the visibility of the table of contents', 'table-of-contents-plus'); ?></label><br />
- <div class="more_toc_options<?php if ( !$this->options['visibility'] ) echo ' disabled'; ?>">
- <table class="more_toc_options_table">
- <tbody>
- <tr>
- <th><label for="visibility_show"><?php _e('Show text', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="" value="<?php echo htmlentities( $this->options['visibility_show'], ENT_COMPAT, 'UTF-8' ); ?>" id="visibility_show" name="visibility_show" />
- <span class="description"><label for="visibility_show"><?php
- /* translators: example text to display when you want to expand the table of contents */
- _e('Eg: show', 'table-of-contents-plus'); ?></label></span></td>
- </tr>
- <tr>
- <th><label for="visibility_hide"><?php _e('Hide text', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="" value="<?php echo htmlentities( $this->options['visibility_hide'], ENT_COMPAT, 'UTF-8' ); ?>" id="visibility_hide" name="visibility_hide" />
- <span class="description"><label for="visibility_hide"><?php
- /* translators: example text to display when you want to collapse the table of contents */
- _e('Eg: hide', 'table-of-contents-plus'); ?></label></span></td>
- </tr>
- </tbody>
- </table>
- <input type="checkbox" value="1" id="visibility_hide_by_default" name="visibility_hide_by_default"<?php if ( $this->options['visibility_hide_by_default'] ) echo ' checked="checked"'; ?> /><label for="visibility_hide_by_default"> <?php _e( 'Hide the table of contents initially', 'table-of-contents-plus'); ?></label>
- </div>
- </div>
- </td>
-</tr>
-<tr>
- <th><label for="show_heirarchy"><?php _e('Show hierarchy', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="show_heirarchy" name="show_heirarchy"<?php if ( $this->options['show_heirarchy'] ) echo ' checked="checked"'; ?> /></td>
-</tr>
-<tr>
- <th><label for="ordered_list"><?php _e('Number list items', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="ordered_list" name="ordered_list"<?php if ( $this->options['ordered_list'] ) echo ' checked="checked"'; ?> /></td>
-</tr>
-<tr>
- <th><label for="smooth_scroll"><?php _e('Enable smooth scroll effect', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="smooth_scroll" name="smooth_scroll"<?php if ( $this->options['smooth_scroll'] ) echo ' checked="checked"'; ?> /><label for="smooth_scroll"> <?php _e( 'Scroll rather than jump to the anchor link', 'table-of-contents-plus'); ?></label></td>
-</tr>
-</tbody>
-</table>
-
-<h3><?php _e('Appearance', 'table-of-contents-plus'); ?></h3>
-<table class="form-table">
-<tbody>
-<tr>
- <th><label for="width"><?php _e('Width', 'table-of-contents-plus'); ?></label></td>
- <td>
- <select name="width" id="width">
- <optgroup label="<?php _e('Fixed width', 'table-of-contents-plus'); ?>">
- <option value="200px"<?php if ( '200px' == $this->options['width'] ) echo ' selected="selected"'; ?>>200px</option>
- <option value="225px"<?php if ( '225px' == $this->options['width'] ) echo ' selected="selected"'; ?>>225px</option>
- <option value="250px"<?php if ( '250px' == $this->options['width'] ) echo ' selected="selected"'; ?>>250px</option>
- <option value="275px"<?php if ( '275px' == $this->options['width'] ) echo ' selected="selected"'; ?>>275px</option>
- <option value="300px"<?php if ( '300px' == $this->options['width'] ) echo ' selected="selected"'; ?>>300px</option>
- <option value="325px"<?php if ( '325px' == $this->options['width'] ) echo ' selected="selected"'; ?>>325px</option>
- <option value="350px"<?php if ( '350px' == $this->options['width'] ) echo ' selected="selected"'; ?>>350px</option>
- <option value="375px"<?php if ( '375px' == $this->options['width'] ) echo ' selected="selected"'; ?>>375px</option>
- <option value="400px"<?php if ( '400px' == $this->options['width'] ) echo ' selected="selected"'; ?>>400px</option>
- </optgroup>
- <optgroup label="<?php _e('Relative', 'table-of-contents-plus'); ?>">
- <option value="Auto"<?php if ( 'Auto' == $this->options['width'] ) echo ' selected="selected"'; ?>><?php _e('Auto (default)', 'table-of-contents-plus'); ?></option>
- <option value="25%"<?php if ( '25%' == $this->options['width'] ) echo ' selected="selected"'; ?>>25%</option>
- <option value="33%"<?php if ( '33%' == $this->options['width'] ) echo ' selected="selected"'; ?>>33%</option>
- <option value="50%"<?php if ( '50%' == $this->options['width'] ) echo ' selected="selected"'; ?>>50%</option>
- <option value="66%"<?php if ( '66%' == $this->options['width'] ) echo ' selected="selected"'; ?>>66%</option>
- <option value="75%"<?php if ( '75%' == $this->options['width'] ) echo ' selected="selected"'; ?>>75%</option>
- <option value="100%"<?php if ( '100%' == $this->options['width'] ) echo ' selected="selected"'; ?>>100%</option>
- </optgroup>
- <optgroup label="<?php
- /* translators: other width */
- _e('Other', 'table-of-contents-plus'); ?>">
- <option value="User defined"<?php if ( 'User defined' == $this->options['width'] ) echo ' selected="selected"'; ?>><?php _e('User defined', 'table-of-contents-plus'); ?></option>
- </optgroup>
- </select>
- <div class="more_toc_options<?php if ( 'User defined' != $this->options['width'] ) echo ' disabled'; ?>">
- <label for="width_custom"><?php
- /* translators: ignore %s as it's some HTML label tags */
- printf( __('Please enter a number and %s select its units, eg: 100px, 10em', 'table-of-contents-plus'), '</label><label for="width_custom_units">' ); ?></label><br />
- <input type="text" class="regular-text" value="<?php echo floatval($this->options['width_custom']); ?>" id="width_custom" name="width_custom" />
- <select name="width_custom_units" id="width_custom_units">
- <option value="px"<?php if ( 'px' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>px</option>
- <option value="%"<?php if ( '%' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>%</option>
- <option value="em"<?php if ( 'em' == $this->options['width_custom_units'] ) echo ' selected="selected"'; ?>>em</option>
- </select>
- </div>
- </td>
-</tr>
-<tr>
- <th><label for="wrapping"><?php _e('Wrapping', 'table-of-contents-plus'); ?></label></td>
- <td>
- <select name="wrapping" id="wrapping">
- <option value="<?php echo TOC_WRAPPING_NONE; ?>"<?php if ( TOC_WRAPPING_NONE == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e('None (default)', 'table-of-contents-plus'); ?></option>
- <option value="<?php echo TOC_WRAPPING_LEFT; ?>"<?php if ( TOC_WRAPPING_LEFT == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e('Left', 'table-of-contents-plus'); ?></option>
- <option value="<?php echo TOC_WRAPPING_RIGHT; ?>"<?php if ( TOC_WRAPPING_RIGHT == $this->options['wrapping'] ) echo ' selected="selected"'; ?>><?php _e('Right', 'table-of-contents-plus'); ?></option>
- </select>
- </td>
-</tr>
-<tr>
- <th><label for="font_size"><?php _e('Font size', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="text" class="regular-text" value="<?php echo floatval($this->options['font_size']); ?>" id="font_size" name="font_size" />
- <select name="font_size_units" id="font_size_units">
- <option value="px"<?php if ( 'pt' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>pt</option>
- <option value="%"<?php if ( '%' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>%</option>
- <option value="em"<?php if ( 'em' == $this->options['font_size_units'] ) echo ' selected="selected"'; ?>>em</option>
- </select>
- </td>
-</tr>
-<tr>
- <th><?php
- /* translators: appearance / colour / look and feel options */
- _e('Presentation', 'table-of-contents-plus'); ?></th>
- <td>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_GREY; ?>" value="<?php echo TOC_THEME_GREY; ?>"<?php if ( $this->options['theme'] == TOC_THEME_GREY ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_GREY; ?>"> <?php _e('Grey (default)', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/grey.png" alt="" />
- </label>
- </div>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_LIGHT_BLUE; ?>" value="<?php echo TOC_THEME_LIGHT_BLUE; ?>"<?php if ( $this->options['theme'] == TOC_THEME_LIGHT_BLUE ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_LIGHT_BLUE; ?>"> <?php _e('Light blue', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/blue.png" alt="" />
- </label>
- </div>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_WHITE; ?>" value="<?php echo TOC_THEME_WHITE; ?>"<?php if ( $this->options['theme'] == TOC_THEME_WHITE ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_WHITE; ?>"> <?php _e('White', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/white.png" alt="" />
- </label>
- </div>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_BLACK; ?>" value="<?php echo TOC_THEME_BLACK; ?>"<?php if ( $this->options['theme'] == TOC_THEME_BLACK ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_BLACK; ?>"> <?php _e('Black', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/black.png" alt="" />
- </label>
- </div>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_TRANSPARENT; ?>" value="<?php echo TOC_THEME_TRANSPARENT; ?>"<?php if ( $this->options['theme'] == TOC_THEME_TRANSPARENT ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_TRANSPARENT; ?>"> <?php _e('Transparent', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/transparent.png" alt="" />
- </label>
- </div>
- <div class="toc_theme_option">
- <input type="radio" name="theme" id="theme_<?php echo TOC_THEME_CUSTOM; ?>" value="<?php echo TOC_THEME_CUSTOM; ?>"<?php if ( $this->options['theme'] == TOC_THEME_CUSTOM ) echo ' checked="checked"'; ?> /><label for="theme_<?php echo TOC_THEME_CUSTOM; ?>"> <?php _e('Custom', 'table-of-contents-plus'); ?><br />
- <img src="<?php echo $this->path; ?>/images/custom.png" alt="" />
- </label>
- </div>
- <div class="clear"></div>
-
- <div class="more_toc_options<?php if ( TOC_THEME_CUSTOM != $this->options['theme'] ) echo ' disabled'; ?>">
- <table id="theme_custom" class="more_toc_options_table">
- <tbody>
- <tr>
- <th><label for="custom_background_colour"><?php _e('Background', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_background_colour'] ); ?>" id="custom_background_colour" name="custom_background_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- <tr>
- <th><label for="custom_border_colour"><?php _e('Border', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_border_colour'] ); ?>" id="custom_border_colour" name="custom_border_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- <tr>
- <th><label for="custom_title_colour"><?php _e('Title', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_title_colour'] ); ?>" id="custom_title_colour" name="custom_title_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- <tr>
- <th><label for="custom_links_colour"><?php _e('Links', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_colour'] ); ?>" id="custom_links_colour" name="custom_links_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- <tr>
- <th><label for="custom_links_hover_colour"><?php _e('Links (hover)', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_hover_colour'] ); ?>" id="custom_links_hover_colour" name="custom_links_hover_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- <tr>
- <th><label for="custom_links_visited_colour"><?php _e('Links (visited)', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="custom_colour_option" value="<?php echo htmlentities( $this->options['custom_links_visited_colour'] ); ?>" id="custom_links_visited_colour" name="custom_links_visited_colour" /> <img src="<?php echo $this->path; ?>/images/colour-wheel.png" alt="" /></td>
- </tr>
- </tbody>
- </table>
- <div id="farbtastic_colour_wheel"></div>
- <div class="clear"></div>
- <p><?php printf(__("Leaving the value as %s will inherit your theme's styles", 'table-of-contents-plus'), '<code>#</code>'); ?></p>
- </div>
- </td>
-</tr>
-</tbody>
-</table>
-
-<h3><?php _e('Advanced', 'table-of-contents-plus'); ?> <span class="show_hide">(<a href="#toc_advanced_usage"><?php _e('show', 'table-of-contents-plus'); ?></a>)</span></h3>
-<div id="toc_advanced_usage">
- <h4><?php _e('Power options', 'table-of-contents-plus'); ?></h4>
- <table class="form-table">
- <tbody>
- <tr>
- <th><label for="lowercase"><?php _e('Lowercase', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="lowercase" name="lowercase"<?php if ( $this->options['lowercase'] ) echo ' checked="checked"'; ?> /><label for="lowercase"> <?php _e('Ensure anchors are in lowercase', 'table-of-contents-plus'); ?></label></td>
- </tr>
- <tr>
- <th><label for="hyphenate"><?php _e('Hyphenate', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="hyphenate" name="hyphenate"<?php if ( $this->options['hyphenate'] ) echo ' checked="checked"'; ?> /><label for="hyphenate"> <?php _e('Use - rather than _ in anchors', 'table-of-contents-plus'); ?></label></td>
- </tr>
- <tr>
- <th><label for="include_homepage"><?php _e('Include homepage', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="include_homepage" name="include_homepage"<?php if ( $this->options['include_homepage'] ) echo ' checked="checked"'; ?> /><label for="include_homepage"> <?php _e('Show the table of contents for qualifying items on the homepage', 'table-of-contents-plus'); ?></label></td>
- </tr>
- <tr>
- <th><label for="exclude_css"><?php _e('Exclude CSS file', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="exclude_css" name="exclude_css"<?php if ( $this->options['exclude_css'] ) echo ' checked="checked"'; ?> /><label for="exclude_css"> <?php _e("Prevent the loading of this plugin's CSS styles. When selected, the appearance options from above will also be ignored.", 'table-of-contents-plus'); ?></label></td>
- </tr>
- <tr>
- <th><label for="bullet_spacing"><?php _e('Preserve theme bullets', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="bullet_spacing" name="bullet_spacing"<?php if ( $this->options['bullet_spacing'] ) echo ' checked="checked"'; ?> /><label for="bullet_spacing"> <?php _e('If your theme includes background images for unordered list elements, enable this to support them', 'table-of-contents-plus'); ?></label></td>
- </tr>
- <tr>
- <th><?php _e('Heading levels', 'table-of-contents-plus'); ?></th>
- <td>
- <p><?php _e('Include the following heading levels. Deselecting a heading will exclude it.', 'table-of-contents-plus'); ?></p>
-<?php
- // show heading 1 to 6 options
- for ($i = 1; $i <= 6; $i++) {
- echo '<input type="checkbox" value="' . $i . '" id="heading_levels' . $i .'" name="heading_levels[]"';
- if ( in_array($i, $this->options['heading_levels']) ) echo ' checked="checked"';
- echo ' /><label for="heading_levels' . $i .'"> ' . __('heading ') . $i . ' - h' . $i . '</label><br />';
- }
-?>
- </td>
- </tr>
- <tr>
- <th><label for="exclude"><?php _e('Exclude headings', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['exclude'], ENT_COMPAT, 'UTF-8' ); ?>" id="exclude" name="exclude" style="width: 100%;" /><br />
- <label for="exclude"><?php _e('Specify headings to be excluded from appearing in the table of contents. Separate multiple headings with a pipe <code>|</code>. Use an asterisk <code>*</code> as a wildcard to match other text. Note that this is not case sensitive. Some examples:', 'table-of-contents-plus'); ?></label><br/>
- <ul>
- <li><?php _e('<code>Fruit*</code> ignore headings starting with "Fruit"', 'table-of-contents-plus'); ?></li>
- <li><?php _e('<code>*Fruit Diet*</code> ignore headings with "Fruit Diet" somewhere in the heading', 'table-of-contents-plus'); ?></li>
- <li><?php _e('<code>Apple Tree|Oranges|Yellow Bananas</code> ignore headings that are exactly "Apple Tree", "Oranges" or "Yellow Bananas"', 'table-of-contents-plus'); ?></li>
- </ul>
- </td>
- </tr>
- <tr id="smooth_scroll_offset_tr" class="<?php if ( !$this->options['smooth_scroll'] ) echo 'disabled'; ?>">
- <th><label for="smooth_scroll_offset"><?php _e('Smooth scroll top offset', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="text" class="regular-text" value="<?php echo intval($this->options['smooth_scroll_offset']); ?>" id="smooth_scroll_offset" name="smooth_scroll_offset" /> px<br />
- <label for="smooth_scroll_offset"><?php _e('If you have a consistent menu across the top of your site, you can adjust the top offset to stop the headings from appearing underneath the top menu. A setting of 30 accommodates the WordPress admin bar. This setting appears after you have enabled smooth scrolling from above.', 'table-of-contents-plus'); ?></label>
- </td>
- </tr>
- <tr>
- <th><label for="restrict_path"><?php _e('Restrict path', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['restrict_path'], ENT_COMPAT, 'UTF-8' ); ?>" id="restrict_path" name="restrict_path" /><br />
- <label for="restrict_path"><?php _e('Restrict generation of the table of contents to pages that match the required path. This path is from the root of your site and always begins with a forward slash.', 'table-of-contents-plus'); ?><br />
- <span class="description"><?php
- /* translators: example URL path restriction */
- _e('Eg: /wiki/, /corporate/annual-reports/', 'table-of-contents-plus'); ?></span></label>
- </td>
- </tr>
- <tr>
- <th><label for="fragment_prefix"><?php _e('Default anchor prefix', 'table-of-contents-plus'); ?></label></th>
- <td>
- <input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['fragment_prefix'], ENT_COMPAT, 'UTF-8' ); ?>" id="fragment_prefix" name="fragment_prefix" /><br />
- <label for="fragment_prefix"><?php _e('Anchor targets are restricted to alphanumeric characters as per HTML specification (see readme for more detail). The default anchor prefix will be used when no characters qualify. When left blank, a number will be used instead.', 'table-of-contents-plus'); ?><br />
- <?php _e('This option normally applies to content written in character sets other than ASCII.', 'table-of-contents-plus'); ?><br />
- <span class="description"><?php
- /* translators: example anchor prefixes when no ascii characters match */
- _e('Eg: i, toc_index, index, _', 'table-of-contents-plus'); ?></span></label>
- </td>
- </tr>
- </tbody>
- </table>
-
- <h4><?php
- /* translators: advanced usage */
- _e('Usage', 'table-of-contents-plus'); ?></h4>
- <p><?php printf(__('If you would like to fully customise the position of the table of contents, you can use the %s shortcode by placing it at the desired position of your post, page or custom post type. This method allows you to generate the table of contents despite having auto insertion disabled for its content type. Please visit the help tab for further information about this shortcode.', 'table-of-contents-plus'), '<code>[toc]</code>'); ?></p>
-</div>
-
-
- </div>
- <div id="tab2" class="tab_content">
-
-
-<p><?php printf(__('At its simplest, placing %s into a page will automatically create a sitemap of all pages and categories. This also works in a text widget.', 'table-of-contents-plus'), '<code>[sitemap]</code>'); ?></p>
-<table class="form-table">
-<tbody>
-<tr>
- <th><label for="sitemap_show_page_listing"><?php _e('Show page listing', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="sitemap_show_page_listing" name="sitemap_show_page_listing"<?php if ( $this->options['sitemap_show_page_listing'] ) echo ' checked="checked"'; ?> /></td>
-</tr>
-<tr>
- <th><label for="sitemap_show_category_listing"><?php _e('Show category listing', 'table-of-contents-plus'); ?></label></th>
- <td><input type="checkbox" value="1" id="sitemap_show_category_listing" name="sitemap_show_category_listing"<?php if ( $this->options['sitemap_show_category_listing'] ) echo ' checked="checked"'; ?> /></td>
-</tr>
-<tr>
- <th><label for="sitemap_heading_type"><?php _e('Heading type', 'table-of-contents-plus'); ?></label></th>
- <td><label for="sitemap_heading_type"><?php
- /* translators: the full line is supposed to read - Use [1-6 drop down list] to print out the titles */
- _e('Use', 'table-of-contents-plus'); ?> h</label><select name="sitemap_heading_type" id="sitemap_heading_type">
-<?php
- // h1 to h6
- for ($i = 1; $i <= 6; $i++) {
- echo '<option value="' . $i . '"';
- if ( $i == $this->options['sitemap_heading_type'] ) echo ' selected="selected"';
- echo '>' . $i . '</option>' . "\n";
- }
-?>
- </select> <?php
- /* translators: the full line is supposed to read - Use [h1-h6 drop down list] to print out the titles */
- _e('to print out the titles', 'table-of-contents-plus'); ?>
- </td>
-</tr>
-<tr>
- <th><label for="sitemap_pages"><?php _e('Pages label', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['sitemap_pages'], ENT_COMPAT, 'UTF-8' ); ?>" id="sitemap_pages" name="sitemap_pages" />
- <span class="description"><?php _e('Eg: Pages, Page List', 'table-of-contents-plus'); ?></span>
- </td>
-</tr>
-<tr>
- <th><label for="sitemap_categories"><?php _e('Categories label', 'table-of-contents-plus'); ?></label></th>
- <td><input type="text" class="regular-text" value="<?php echo htmlentities( $this->options['sitemap_categories'], ENT_COMPAT, 'UTF-8' ); ?>" id="sitemap_categories" name="sitemap_categories" />
- <span class="description"><?php _e('Eg: Categories, Category List', 'table-of-contents-plus'); ?></span>
- </td>
-</tr>
-</tbody>
-</table>
-
-<h3><?php _e('Advanced usage', 'table-of-contents-plus'); ?> <span class="show_hide">(<a href="#sitemap_advanced_usage"><?php _e('show', 'table-of-contents-plus'); ?></a>)</span></h3>
-<div id="sitemap_advanced_usage">
- <p><code>[sitemap_pages]</code> <?php printf(__('lets you print out a listing of only pages. Similarly %s can be used to print out a category listing. They both can accept a number of attributes so visit the help tab for more information.', 'table-of-contents-plus'), '<code>[sitemap_categories]</code>'); ?></p>
- <p><?php _e('Examples', 'table-of-contents-plus'); ?></p>
- <ol>
- <li><code>[sitemap_categories no_label="true"]</code> <?php _e('hides the heading from a category listing', 'table-of-contents-plus'); ?></li>
- <li><code>[sitemap_pages heading="6" label="This is an awesome listing" exclude="1,15"]</code> <?php printf(__('Uses h6 to display %s on a page listing excluding pages with IDs 1 and 15', 'table-of-contents-plus'), '<em>This is an awesome listing</em>'); ?></li>
- </ol>
-</div>
-
-
- </div>
-</div>
-
-
-<p class="submit"><input type="submit" name="submit" class="button-primary" value="<?php _e('Update Options', 'table-of-contents-plus'); ?>" /></p>
-</form>
-</div>
-<?php
- }
-
-
- function wp_head()
- {
- $css = '';
-
- if ( !$this->options['exclude_css'] ) {
- if ( $this->options['theme'] == TOC_THEME_CUSTOM || $this->options['width'] != 'Auto' ) {
- $css .= 'div#toc_container {';
- if ( $this->options['theme'] == TOC_THEME_CUSTOM )
- $css .= 'background: ' . $this->options['custom_background_colour'] . ';border: 1px solid ' . $this->options['custom_border_colour'] . ';';
- if ( $this->options['width'] != 'Auto' ) {
- $css .= 'width: ';
- if ( $this->options['width'] != 'User defined' )
- $css .= $this->options['width'];
- else
- $css .= $this->options['width_custom'] . $this->options['width_custom_units'];
- $css .= ';';
- }
- $css .= '}';
- }
-
- if ( '95%' != $this->options['font_size'] . $this->options['font_size_units'] )
- $css .= 'div#toc_container ul li {font-size: ' . $this->options['font_size'] . $this->options['font_size_units'] . ';}';
-
- if ( $this->options['theme'] == TOC_THEME_CUSTOM ) {
- if ( $this->options['custom_title_colour'] != TOC_DEFAULT_TITLE_COLOUR )
- $css .= 'div#toc_container p.toc_title {color: ' . $this->options['custom_title_colour'] . ';}';
- if ( $this->options['custom_links_colour'] != TOC_DEFAULT_LINKS_COLOUR )
- $css .= 'div#toc_container p.toc_title a,div#toc_container ul.toc_list a {color: ' . $this->options['custom_links_colour'] . ';}';
- if ( $this->options['custom_links_hover_colour'] != TOC_DEFAULT_LINKS_HOVER_COLOUR )
- $css .= 'div#toc_container p.toc_title a:hover,div#toc_container ul.toc_list a:hover {color: ' . $this->options['custom_links_hover_colour'] . ';}';
- if ( $this->options['custom_links_hover_colour'] != TOC_DEFAULT_LINKS_HOVER_COLOUR )
- $css .= 'div#toc_container p.toc_title a:hover,div#toc_container ul.toc_list a:hover {color: ' . $this->options['custom_links_hover_colour'] . ';}';
- if ( $this->options['custom_links_visited_colour'] != TOC_DEFAULT_LINKS_VISITED_COLOUR )
- $css .= 'div#toc_container p.toc_title a:visited,div#toc_container ul.toc_list a:visited {color: ' . $this->options['custom_links_visited_colour'] . ';}';
- }
- }
-
- if ( $css )
- echo '<style type="text/css">' . $css . '</style>';
- }
-
-
- /**
- * Returns a clean url to be used as the destination anchor target
- */
- private function url_anchor_target( $title )
- {
- $return = false;
-
- if ( $title ) {
- $return = trim( strip_tags($title) );
-
- // convert accented characters to ASCII
- $return = remove_accents( $return );
-
- // replace newlines with spaces (eg when headings are split over multiple lines)
- $return = str_replace( array("\r", "\n", "\n\r", "\r\n"), ' ', $return );
-
- // remove &amp;
- $return = str_replace( '&amp;', '', $return );
-
- // remove non alphanumeric chars
- $return = preg_replace( '/[^a-zA-Z0-9 \-_]*/', '', $return );
-
- // convert spaces to _
- $return = str_replace(
- array(' ', ' '),
- '_',
- $return
- );
-
- // remove trailing - and _
- $return = rtrim( $return, '-_' );
-
- // lowercase everything?
- if ( $this->options['lowercase'] ) $return = strtolower($return);
-
- // if blank, then prepend with the fragment prefix
- // blank anchors normally appear on sites that don't use the latin charset
- if ( !$return ) {
- $return = ( $this->options['fragment_prefix'] ) ? $this->options['fragment_prefix'] : '_';
- }
-
- // hyphenate?
- if ( $this->options['hyphenate'] ) {
- $return = str_replace('_', '-', $return);
- $return = str_replace('--', '-', $return);
- }
- }
-
- if ( array_key_exists($return, $this->collision_collector) ) {
- $this->collision_collector[$return]++;
- $return .= '-' . $this->collision_collector[$return];
- }
- else
- $this->collision_collector[$return] = 1;
-
- return apply_filters( 'toc_url_anchor_target', $return );
- }
-
-
- private function build_hierarchy( &$matches )
- {
- $current_depth = 100; // headings can't be larger than h6 but 100 as a default to be sure
- $html = '';
- $numbered_items = array();
- $numbered_items_min = null;
-
- // reset the internal collision collection
- $this->collision_collector = array();
-
- // find the minimum heading to establish our baseline
- for ($i = 0; $i < count($matches); $i++) {
- if ( $current_depth > $matches[$i][2] )
- $current_depth = (int)$matches[$i][2];
- }
-
- $numbered_items[$current_depth] = 0;
- $numbered_items_min = $current_depth;
-
- for ($i = 0; $i < count($matches); $i++) {
-
- if ( $current_depth == (int)$matches[$i][2] )
- $html .= '<li>';
-
- // start lists
- if ( $current_depth != (int)$matches[$i][2] ) {
- for ($current_depth; $current_depth < (int)$matches[$i][2]; $current_depth++) {
- $numbered_items[$current_depth + 1] = 0;
- $html .= '<ul><li>';
- }
- }
-
- // list item
- if ( in_array($matches[$i][2], $this->options['heading_levels']) ) {
- $html .= '<a href="#' . $this->url_anchor_target( $matches[$i][0] ) . '">';
- if ( $this->options['ordered_list'] ) {
- // attach leading numbers when lower in hierarchy
- $html .= '<span class="toc_number toc_depth_' . ($current_depth - $numbered_items_min + 1) . '">';
- for ($j = $numbered_items_min; $j < $current_depth; $j++) {
- $number = ($numbered_items[$j]) ? $numbered_items[$j] : 0;
- $html .= $number . '.';
- }
-
- $html .= ($numbered_items[$current_depth] + 1) . '</span> ';
- $numbered_items[$current_depth]++;
- }
- $html .= strip_tags($matches[$i][0]) . '</a>';
- }
-
-
- // end lists
- if ( $i != count($matches) - 1 ) {
- if ( $current_depth > (int)$matches[$i + 1][2] ) {
- for ($current_depth; $current_depth > (int)$matches[$i + 1][2]; $current_depth--) {
- $html .= '</li></ul>';
- $numbered_items[$current_depth] = 0;
- }
- }
-
- if ( $current_depth == (int)@$matches[$i + 1][2] )
- $html .= '</li>';
- }
- else {
- // this is the last item, make sure we close off all tags
- for ($current_depth; $current_depth >= $numbered_items_min; $current_depth--) {
- $html .= '</li>';
- if ( $current_depth != $numbered_items_min ) $html .= '</ul>';
- }
- }
- }
-
- return $html;
- }
-
-
- /**
- * Returns a string with all items from the $find array replaced with their matching
- * items in the $replace array. This does a one to one replacement (rather than
- * globally).
- *
- * This function is multibyte safe.
- *
- * $find and $replace are arrays, $string is the haystack. All variables are
- * passed by reference.
- */
- private function mb_find_replace( &$find = false, &$replace = false, &$string = '' )
- {
- if ( is_array($find) && is_array($replace) && $string ) {
- // check if multibyte strings are supported
- if ( function_exists( 'mb_strpos' ) ) {
- for ($i = 0; $i < count($find); $i++) {
- $string =
- mb_substr( $string, 0, mb_strpos($string, $find[$i]) ) . // everything befor $find
- $replace[$i] . // its replacement
- mb_substr( $string, mb_strpos($string, $find[$i]) + mb_strlen($find[$i]) ) // everything after $find
- ;
- }
- }
- else {
- for ($i = 0; $i < count($find); $i++) {
- $string = substr_replace(
- $string,
- $replace[$i],
- strpos($string, $find[$i]),
- strlen($find[$i])
- );
- }
- }
- }
-
- return $string;
- }
-
-
- /**
- * This function extracts headings from the html formatted $content. It will pull out
- * only the required headings as specified in the options. For all qualifying headings,
- * this function populates the $find and $replace arrays (both passed by reference)
- * with what to search and replace with.
- *
- * Returns a html formatted string of list items for each qualifying heading. This
- * is everything between and NOT including <ul> and </ul>
- */
- public function extract_headings( &$find, &$replace, $content = '' )
- {
- $matches = array();
- $anchor = '';
- $items = false;
-
- // reset the internal collision collection as the_content may have been triggered elsewhere
- // eg by themes or other plugins that need to read in content such as metadata fields in
- // the head html tag, or to provide descriptions to twitter/facebook
- $this->collision_collector = array();
-
- if ( is_array($find) && is_array($replace) && $content ) {
- // get all headings
- // the html spec allows for a maximum of 6 heading depths
- if ( preg_match_all('/(<h([1-6]{1})[^>]*>).*<\/h\2>/msuU', $content, $matches, PREG_SET_ORDER) ) {
-
- // remove undesired headings (if any) as defined by heading_levels
- if ( count($this->options['heading_levels']) != 6 ) {
- $new_matches = array();
- for ($i = 0; $i < count($matches); $i++) {
- if ( in_array($matches[$i][2], $this->options['heading_levels']) )
- $new_matches[] = $matches[$i];
- }
- $matches = $new_matches;
- }
-
- // remove specific headings if provided via the 'exclude' property
- if ( $this->options['exclude'] ) {
- $excluded_headings = explode('|', $this->options['exclude']);
- if ( count($excluded_headings) > 0 ) {
- for ($j = 0; $j < count($excluded_headings); $j++) {
- // escape some regular expression characters
- // others: http://www.php.net/manual/en/regexp.reference.meta.php
- $excluded_headings[$j] = str_replace(
- array('*'),
- array('.*'),
- trim($excluded_headings[$j])
- );
- }
-
- $new_matches = array();
- for ($i = 0; $i < count($matches); $i++) {
- $found = false;
- for ($j = 0; $j < count($excluded_headings); $j++) {
- if ( @preg_match('/^' . $excluded_headings[$j] . '$/imU', strip_tags($matches[$i][0])) ) {
- $found = true;
- break;
- }
- }
- if (!$found) $new_matches[] = $matches[$i];
- }
- if ( count($matches) != count($new_matches) )
- $matches = $new_matches;
- }
- }
-
- // remove empty headings
- $new_matches = array();
- for ($i = 0; $i < count($matches); $i++) {
- if ( trim( strip_tags($matches[$i][0]) ) != false )
- $new_matches[] = $matches[$i];
- }
- if ( count($matches) != count($new_matches) )
- $matches = $new_matches;
-
- // check minimum number of headings
- if ( count($matches) >= $this->options['start'] ) {
-
- for ($i = 0; $i < count($matches); $i++) {
- // get anchor and add to find and replace arrays
- $anchor = $this->url_anchor_target( $matches[$i][0] );
- $find[] = $matches[$i][0];
- $replace[] = str_replace(
- array(
- $matches[$i][1], // start of heading
- '</h' . $matches[$i][2] . '>' // end of heading
- ),
- array(
- $matches[$i][1] . '<span id="' . $anchor . '">',
- '</span></h' . $matches[$i][2] . '>'
- ),
- $matches[$i][0]
- );
-
- // assemble flat list
- if ( !$this->options['show_heirarchy'] ) {
- $items .= '<li><a href="#' . $anchor . '">';
- if ( $this->options['ordered_list'] ) $items .= count($replace) . ' ';
- $items .= strip_tags($matches[$i][0]) . '</a></li>';
- }
- }
-
- // build a hierarchical toc?
- // we could have tested for $items but that var can be quite large in some cases
- if ( $this->options['show_heirarchy'] ) $items = $this->build_hierarchy( $matches );
-
- }
- }
- }
-
- return $items;
- }
-
-
- /**
- * Returns true if the table of contents is eligible to be printed, false otherwise.
- */
- public function is_eligible( $shortcode_used = false )
- {
- global $post;
-
- // do not trigger the TOC when displaying an XML/RSS feed
- if ( is_feed() ) return false;
-
- // if the shortcode was used, this bypasses many of the global options
- if ( $shortcode_used !== false ) {
- // shortcode is used, make sure it adheres to the exclude from
- // homepage option if we're on the homepage
- if ( !$this->options['include_homepage'] && is_front_page() )
- return false;
- else
- return true;
- }
- else {
- if (
- ( in_array(get_post_type($post), $this->options['auto_insert_post_types']) && $this->show_toc && !is_search() && !is_archive() && !is_front_page() ) ||
- ( $this->options['include_homepage'] && is_front_page() )
- ) {
- if ( $this->options['restrict_path'] ) {
- if ( strpos($_SERVER['REQUEST_URI'], $this->options['restrict_path']) === 0 )
- return true;
- else
- return false;
- }
- else
- return true;
- }
- else
- return false;
- }
- }
-
-
- function the_content( $content )
- {
- global $post;
- $items = $css_classes = $anchor = '';
- $custom_toc_position = strpos($content, '<!--TOC-->');
- $find = $replace = array();
-
- if ( $this->is_eligible($custom_toc_position) ) {
-
- $items = $this->extract_headings($find, $replace, $content);
-
- if ( $items ) {
- // do we display the toc within the content or has the user opted
- // to only show it in the widget? if so, then we still need to
- // make the find/replace call to insert the anchors
- if ( $this->options['show_toc_in_widget_only'] && (in_array(get_post_type(), $this->options['show_toc_in_widget_only_post_types'])) ) {
- $content = $this->mb_find_replace($find, $replace, $content);
- }
- else {
-
- // wrapping css classes
- switch( $this->options['wrapping'] ) {
- case TOC_WRAPPING_LEFT:
- $css_classes .= ' toc_wrap_left';
- break;
-
- case TOC_WRAPPING_RIGHT:
- $css_classes .= ' toc_wrap_right';
- break;
-
- case TOC_WRAPPING_NONE:
- default:
- // do nothing
- }
-
- // colour themes
- switch ( $this->options['theme'] ) {
- case TOC_THEME_LIGHT_BLUE:
- $css_classes .= ' toc_light_blue';
- break;
-
- case TOC_THEME_WHITE:
- $css_classes .= ' toc_white';
- break;
-
- case TOC_THEME_BLACK:
- $css_classes .= ' toc_black';
- break;
-
- case TOC_THEME_TRANSPARENT:
- $css_classes .= ' toc_transparent';
- break;
-
- case TOC_THEME_GREY:
- default:
- // do nothing
- }
-
- // bullets?
- if ( $this->options['bullet_spacing'] )
- $css_classes .= ' have_bullets';
- else
- $css_classes .= ' no_bullets';
-
- if ( $this->options['css_container_class'] ) $css_classes .= ' ' . $this->options['css_container_class'];
-
- $css_classes = trim($css_classes);
-
- // an empty class="" is invalid markup!
- if ( !$css_classes ) $css_classes = ' ';
-
- // add container, toc title and list items
- $html = '<div id="toc_container" class="' . $css_classes . '">';
- if ( $this->options['show_heading_text'] ) {
- $toc_title = htmlentities( $this->options['heading_text'], ENT_COMPAT, 'UTF-8' );
- if ( strpos($toc_title, '%PAGE_TITLE%') !== false ) $toc_title = str_replace( '%PAGE_TITLE%', get_the_title(), $toc_title );
- if ( strpos($toc_title, '%PAGE_NAME%') !== false ) $toc_title = str_replace( '%PAGE_NAME%', get_the_title(), $toc_title );
- $html .= '<p class="toc_title">' . $toc_title . '</p>';
- }
- $html .= '<ul class="toc_list">' . $items . '</ul></div>' . "\n";
-
- if ( $custom_toc_position !== false ) {
- $find[] = '<!--TOC-->';
- $replace[] = $html;
- $content = $this->mb_find_replace($find, $replace, $content);
- }
- else {
- if ( count($find) > 0 ) {
- switch ( $this->options['position'] ) {
- case TOC_POSITION_TOP:
- $content = $html . $this->mb_find_replace($find, $replace, $content);
- break;
-
- case TOC_POSITION_BOTTOM:
- $content = $this->mb_find_replace($find, $replace, $content) . $html;
- break;
-
- case TOC_POSITION_AFTER_FIRST_HEADING:
- $replace[0] = $replace[0] . $html;
- $content = $this->mb_find_replace($find, $replace, $content);
- break;
-
- case TOC_POSITION_BEFORE_FIRST_HEADING:
- default:
- $replace[0] = $html . $replace[0];
- $content = $this->mb_find_replace($find, $replace, $content);
- }
- }
- }
- }
- }
- }
- else {
- // remove <!--TOC--> (inserted from shortcode) from content
- $content = str_replace('<!--TOC-->', '', $content);
- }
-
- return $content;
- }
-
- } // end class
-endif;
-
-
-
-if ( !class_exists( 'toc_widget' ) ) :
- class toc_widget extends WP_Widget {
-
- function __construct()
- {
- $widget_options = array(
- 'classname' => 'toc_widget',
- 'description' => __('Display the table of contents in the sidebar with this widget', 'table-of-contents-plus')
- );
- $control_options = array(
- 'width' => 250,
- 'height' => 350,
- 'id_base' => 'toc-widget'
- );
- parent::__construct( 'toc-widget', 'TOC+', $widget_options, $control_options );
- }
-
-
- /**
- * Widget output to the public
- */
- function widget( $args, $instance )
- {
- global $tic, $wp_query;
- $items = $custom_toc_position = '';
- $find = $replace = array();
-
- $toc_options = $tic->get_options();
- $post = get_post( $wp_query->post->ID );
- $custom_toc_position = strpos( $post->post_content, '[toc]' ); // at this point, shortcodes haven't run yet so we can't search for <!--TOC-->
-
- if ( $tic->is_eligible($custom_toc_position) ) {
-
- extract( $args );
-
- $items = $tic->extract_headings( $find, $replace, wptexturize($post->post_content) );
- $title = ( array_key_exists('title', $instance) ) ? apply_filters('widget_title', $instance['title']) : '';
- if ( strpos($title, '%PAGE_TITLE%') !== false ) $title = str_replace( '%PAGE_TITLE%', get_the_title(), $title );
- if ( strpos($title, '%PAGE_NAME%') !== false ) $title = str_replace( '%PAGE_NAME%', get_the_title(), $title );
- $hide_inline = $toc_options['show_toc_in_widget_only'];
-
- $css_classes = '';
- // bullets?
- if ( $toc_options['bullet_spacing'] )
- $css_classes .= ' have_bullets';
- else
- $css_classes .= ' no_bullets';
-
- if ( $items ) {
- // before widget (defined by themes)
- echo $before_widget;
-
- // display the widget title if one was input (before and after titles defined by themes)
- if ( $title ) echo $before_title . $title . $after_title;
-
- // display the list
- echo '<ul class="toc_widget_list' . $css_classes . '">' . $items . '</ul>';
-
- // after widget (defined by themes)
- echo $after_widget;
- }
- }
- }
-
-
- /**
- * Update the widget settings
- */
- function update( $new_instance, $old_instance )
- {
- global $tic;
-
- $instance = $old_instance;
-
- // strip tags for title to remove HTML (important for text inputs)
- $instance['title'] = strip_tags( trim( $new_instance['title'] ) );
-
- // no need to strip tags for the following
- //$instance['hide_inline'] = $new_instance['hide_inline'];
- $tic->set_show_toc_in_widget_only( $new_instance['hide_inline'] );
- $tic->set_show_toc_in_widget_only_post_types( (array)$new_instance['show_toc_in_widget_only_post_types'] );
-
- return $instance;
- }
-
-
- /**
- * Displays the widget settings on the widget panel.
- */
- function form( $instance )
- {
- global $tic;
- $toc_options = $tic->get_options();
-
- $defaults = array(
- 'title' => $toc_options['heading_text']
- );
- $instance = wp_parse_args( (array)$instance, $defaults );
-
-?>
- <p>
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e('Title', 'table-of-contents-plus'); ?>:</label>
- <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" style="width:100%;" />
- </p>
-
- <p>
- <input class="checkbox" type="checkbox" <?php checked( $toc_options['show_toc_in_widget_only'], 1 ); ?> id="<?php echo $this->get_field_id( 'hide_inline' ); ?>" name="<?php echo $this->get_field_name( 'hide_inline' ); ?>" value="1" />
- <label for="<?php echo $this->get_field_id( 'hide_inline' ); ?>"> <?php _e('Show the table of contents only in the sidebar', 'table-of-contents-plus'); ?></label>
- </p>
-
- <div class="show_toc_in_widget_only_post_types" style="margin: 0 0 25px 25px; display: <?php echo ( $toc_options['show_toc_in_widget_only'] == 1 ) ? 'block' : 'none'; ?>;">
- <p><?php _e('For the following content types:', 'table-of-contents-plus'); ?></p>
-
- <?php
- foreach (get_post_types() as $post_type) {
- // make sure the post type isn't on the exclusion list
- if ( !in_array($post_type, $tic->get_exclude_post_types()) ) {
- echo '<input type="checkbox" value="' . $post_type . '" id="' . $this->get_field_id( 'show_toc_in_widget_only_post_types_' . $post_type ) . '" name="' . $this->get_field_name( "show_toc_in_widget_only_post_types" ) . '[]"';
- if ( in_array($post_type, $toc_options['show_toc_in_widget_only_post_types']) ) echo ' checked="checked"';
- echo ' /><label for="' . $this->get_field_id( 'show_toc_in_widget_only_post_types_' . $post_type ) . '"> ' . $post_type . '</label><br />';
- }
- }
-
- ?></div>
-
-<script type="text/javascript">
-jQuery(document).ready(function($) {
- $('#<?php echo $this->get_field_id( 'hide_inline' ); ?>').click(function() {
- $(this).parent().siblings('div.show_toc_in_widget_only_post_types').toggle('fast');
- });
-});
-</script>
-<?php
- }
-
- } // end class
-endif;
-
-
-/**
- * Returns a HTML formatted string of the table of contents without the surrounding UL or OL
- * tags to enable the theme editor to supply their own ID and/or classes to the outer list.
- *
- * There are three optional parameters you can feed this function with:
- *
- * - $content is the entire content with headings. If blank, will default to the current $post
- *
- * - $link is the URL to prefix the anchor with. If provided a string, will use it as the prefix.
- * If set to true then will try to obtain the permalink from the $post object.
- *
- * - $apply_eligibility bool, defaults to false. When set to true, will apply the check to
- * see if bit of content has the prerequisites needed for a TOC, eg minimum number of headings
- * enabled post type, etc.
- */
-function toc_get_index( $content = '', $prefix_url = '', $apply_eligibility = false )
-{
- global $wp_query, $tic;
-
- $return = '';
- $find = $replace = array();
- $proceed = true;
-
- if ( !$content ) {
- $post = get_post( $wp_query->post->ID );
- $content = wptexturize($post->post_content);
- }
-
- if ( $apply_eligibility ) {
- if ( !$tic->is_eligible() ) {
- $proceed = false;
- }
- }
- else {
- $tic->set_option(array('start' => 0));
- }
-
- if ( $proceed ) {
- $return = $tic->extract_headings( $find, $replace, $content );
- if ( $prefix_url ) $return = str_replace('href="#', 'href="' . $prefix_url . '#', $return);
- }
-
- return $return;
-}
-
-
-// do the magic
-$tic = new toc();
+<?php
+/**
+ * Plugin Name: Table of Contents Plus
+ * Plugin URI : http://dublue.com/plugins/toc/
+ * Description: A powerful yet user friendly plugin that automatically creates a table of contents. Can also output a sitemap listing all pages and categories.
+ * Author: Michael Tran
+ * Author URI: http://dublue.com/
+ * Text Domain: table-of-contents-plus
+ * Domain Path: /languages
+ * Version: 2106
+ * License: GPL2
+ */
+
+/**
+Table of Contents Plus 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
+any later version.
+
+Table of Contents Plus 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 Table of Contents Plus. If not, see
+https://github.com/zedzedzed/table-of-contents-plus/blob/main/LICENSE.md
+*/
+
+/**
+ * GPL licenced Oxygen icon used for the colour wheel
+ * http://www.iconfinder.com/search/?q=iconset%3Aoxygen
+ */
+
+require_once __DIR__ . '/class-toc-plus.php';
+
+// do the magic
+$toc_plus = new TOC_Plus();
diff --git a/plugins/wordpress-importer/class-wp-import.php b/plugins/wordpress-importer/class-wp-import.php
new file mode 100644
index 00000000..ac3a3920
--- /dev/null
+++ b/plugins/wordpress-importer/class-wp-import.php
@@ -0,0 +1,1407 @@
+<?php
+/**
+ * WordPress Importer class for managing the import process of a WXR file
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WordPress importer class.
+ */
+class WP_Import extends WP_Importer {
+ var $max_wxr_version = 1.2; // max. supported WXR version
+
+ var $id; // WXR attachment ID
+
+ // information to import from WXR file
+ var $version;
+ var $authors = array();
+ var $posts = array();
+ var $terms = array();
+ var $categories = array();
+ var $tags = array();
+ var $base_url = '';
+
+ // mappings from old information to new
+ var $processed_authors = array();
+ var $author_mapping = array();
+ var $processed_terms = array();
+ var $processed_posts = array();
+ var $post_orphans = array();
+ var $processed_menu_items = array();
+ var $menu_item_orphans = array();
+ var $missing_menu_items = array();
+
+ var $fetch_attachments = false;
+ var $url_remap = array();
+ var $featured_images = array();
+
+ /**
+ * Registered callback function for the WordPress Importer
+ *
+ * Manages the three separate stages of the WXR import process
+ */
+ function dispatch() {
+ $this->header();
+
+ $step = empty( $_GET['step'] ) ? 0 : (int) $_GET['step'];
+ switch ( $step ) {
+ case 0:
+ $this->greet();
+ break;
+ case 1:
+ check_admin_referer( 'import-upload' );
+ if ( $this->handle_upload() )
+ $this->import_options();
+ break;
+ case 2:
+ check_admin_referer( 'import-wordpress' );
+ $this->fetch_attachments = ( ! empty( $_POST['fetch_attachments'] ) && $this->allow_fetch_attachments() );
+ $this->id = (int) $_POST['import_id'];
+ $file = get_attached_file( $this->id );
+ set_time_limit(0);
+ $this->import( $file );
+ break;
+ }
+
+ $this->footer();
+ }
+
+ /**
+ * The main controller for the actual import stage.
+ *
+ * @param string $file Path to the WXR file for importing
+ */
+ function import( $file ) {
+ add_filter( 'import_post_meta_key', array( $this, 'is_valid_meta_key' ) );
+ add_filter( 'http_request_timeout', array( &$this, 'bump_request_timeout' ) );
+
+ $this->import_start( $file );
+
+ $this->get_author_mapping();
+
+ wp_suspend_cache_invalidation( true );
+ $this->process_categories();
+ $this->process_tags();
+ $this->process_terms();
+ $this->process_posts();
+ wp_suspend_cache_invalidation( false );
+
+ // update incorrect/missing information in the DB
+ $this->backfill_parents();
+ $this->backfill_attachment_urls();
+ $this->remap_featured_images();
+
+ $this->import_end();
+ }
+
+ /**
+ * Parses the WXR file and prepares us for the task of processing parsed data
+ *
+ * @param string $file Path to the WXR file for importing
+ */
+ function import_start( $file ) {
+ if ( ! is_file($file) ) {
+ echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+ echo __( 'The file does not exist, please try again.', 'wordpress-importer' ) . '</p>';
+ $this->footer();
+ die();
+ }
+
+ $import_data = $this->parse( $file );
+
+ if ( is_wp_error( $import_data ) ) {
+ echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+ echo esc_html( $import_data->get_error_message() ) . '</p>';
+ $this->footer();
+ die();
+ }
+
+ $this->version = $import_data['version'];
+ $this->get_authors_from_import( $import_data );
+ $this->posts = $import_data['posts'];
+ $this->terms = $import_data['terms'];
+ $this->categories = $import_data['categories'];
+ $this->tags = $import_data['tags'];
+ $this->base_url = esc_url( $import_data['base_url'] );
+
+ wp_defer_term_counting( true );
+ wp_defer_comment_counting( true );
+
+ do_action( 'import_start' );
+ }
+
+ /**
+ * Performs post-import cleanup of files and the cache
+ */
+ function import_end() {
+ wp_import_cleanup( $this->id );
+
+ wp_cache_flush();
+ foreach ( get_taxonomies() as $tax ) {
+ delete_option( "{$tax}_children" );
+ _get_term_hierarchy( $tax );
+ }
+
+ wp_defer_term_counting( false );
+ wp_defer_comment_counting( false );
+
+ echo '<p>' . __( 'All done.', 'wordpress-importer' ) . ' <a href="' . admin_url() . '">' . __( 'Have fun!', 'wordpress-importer' ) . '</a>' . '</p>';
+ echo '<p>' . __( 'Remember to update the passwords and roles of imported users.', 'wordpress-importer' ) . '</p>';
+
+ do_action( 'import_end' );
+ }
+
+ /**
+ * Handles the WXR upload and initial parsing of the file to prepare for
+ * displaying author import options
+ *
+ * @return bool False if error uploading or invalid file, true otherwise
+ */
+ function handle_upload() {
+ $file = wp_import_handle_upload();
+
+ if ( isset( $file['error'] ) ) {
+ echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+ echo esc_html( $file['error'] ) . '</p>';
+ return false;
+ } else if ( ! file_exists( $file['file'] ) ) {
+ echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+ printf( __( 'The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem.', 'wordpress-importer' ), esc_html( $file['file'] ) );
+ echo '</p>';
+ return false;
+ }
+
+ $this->id = (int) $file['id'];
+ $import_data = $this->parse( $file['file'] );
+ if ( is_wp_error( $import_data ) ) {
+ echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+ echo esc_html( $import_data->get_error_message() ) . '</p>';
+ return false;
+ }
+
+ $this->version = $import_data['version'];
+ if ( $this->version > $this->max_wxr_version ) {
+ echo '<div class="error"><p><strong>';
+ printf( __( 'This WXR file (version %s) may not be supported by this version of the importer. Please consider updating.', 'wordpress-importer' ), esc_html($import_data['version']) );
+ echo '</strong></p></div>';
+ }
+
+ $this->get_authors_from_import( $import_data );
+
+ return true;
+ }
+
+ /**
+ * Retrieve authors from parsed WXR data
+ *
+ * Uses the provided author information from WXR 1.1 files
+ * or extracts info from each post for WXR 1.0 files
+ *
+ * @param array $import_data Data returned by a WXR parser
+ */
+ function get_authors_from_import( $import_data ) {
+ if ( ! empty( $import_data['authors'] ) ) {
+ $this->authors = $import_data['authors'];
+ // no author information, grab it from the posts
+ } else {
+ foreach ( $import_data['posts'] as $post ) {
+ $login = sanitize_user( $post['post_author'], true );
+ if ( empty( $login ) ) {
+ printf( __( 'Failed to import author %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html( $post['post_author'] ) );
+ echo '<br />';
+ continue;
+ }
+
+ if ( ! isset($this->authors[$login]) )
+ $this->authors[$login] = array(
+ 'author_login' => $login,
+ 'author_display_name' => $post['post_author']
+ );
+ }
+ }
+ }
+
+ /**
+ * Display pre-import options, author importing/mapping and option to
+ * fetch attachments
+ */
+ function import_options() {
+ $j = 0;
+?>
+<form action="<?php echo admin_url( 'admin.php?import=wordpress&amp;step=2' ); ?>" method="post">
+ <?php wp_nonce_field( 'import-wordpress' ); ?>
+ <input type="hidden" name="import_id" value="<?php echo $this->id; ?>" />
+
+<?php if ( ! empty( $this->authors ) ) : ?>
+ <h3><?php _e( 'Assign Authors', 'wordpress-importer' ); ?></h3>
+ <p><?php _e( 'To make it simpler for you to edit and save the imported content, you may want to reassign the author of the imported item to an existing user of this site, such as your primary administrator account.', 'wordpress-importer' ); ?></p>
+<?php if ( $this->allow_create_users() ) : ?>
+ <p><?php printf( __( 'If a new user is created by WordPress, a new password will be randomly generated and the new user&#8217;s role will be set as %s. Manually changing the new user&#8217;s details will be necessary.', 'wordpress-importer' ), esc_html( get_option('default_role') ) ); ?></p>
+<?php endif; ?>
+ <ol id="authors">
+<?php foreach ( $this->authors as $author ) : ?>
+ <li><?php $this->author_select( $j++, $author ); ?></li>
+<?php endforeach; ?>
+ </ol>
+<?php endif; ?>
+
+<?php if ( $this->allow_fetch_attachments() ) : ?>
+ <h3><?php _e( 'Import Attachments', 'wordpress-importer' ); ?></h3>
+ <p>
+ <input type="checkbox" value="1" name="fetch_attachments" id="import-attachments" />
+ <label for="import-attachments"><?php _e( 'Download and import file attachments', 'wordpress-importer' ); ?></label>
+ </p>
+<?php endif; ?>
+
+ <p class="submit"><input type="submit" class="button" value="<?php esc_attr_e( 'Submit', 'wordpress-importer' ); ?>" /></p>
+</form>
+<?php
+ }
+
+ /**
+ * Display import options for an individual author. That is, either create
+ * a new user based on import info or map to an existing user
+ *
+ * @param int $n Index for each author in the form
+ * @param array $author Author information, e.g. login, display name, email
+ */
+ function author_select( $n, $author ) {
+ _e( 'Import author:', 'wordpress-importer' );
+ echo ' <strong>' . esc_html( $author['author_display_name'] );
+ if ( $this->version != '1.0' ) echo ' (' . esc_html( $author['author_login'] ) . ')';
+ echo '</strong><br />';
+
+ if ( $this->version != '1.0' )
+ echo '<div style="margin-left:18px">';
+
+ $create_users = $this->allow_create_users();
+ if ( $create_users ) {
+ echo '<label for="user_new_'. $n . '">';
+ if ( $this->version != '1.0' ) {
+ _e( 'or create new user with login name:', 'wordpress-importer' );
+ $value = '';
+ } else {
+ _e( 'as a new user:', 'wordpress-importer' );
+ $value = esc_attr( sanitize_user( $author['author_login'], true ) );
+ }
+ echo '</label>';
+
+ echo ' <input type="text" id="user_new_' . $n . '" name="user_new['.$n.']" value="'. $value .'" /><br />';
+ }
+
+ echo '<label for="imported_authors_'. $n . '">';
+ if ( ! $create_users && $this->version == '1.0' ) {
+ _e( 'assign posts to an existing user:', 'wordpress-importer' );
+ } else {
+ _e( 'or assign posts to an existing user:', 'wordpress-importer' );
+ }
+ echo '</label>';
+
+ echo ' ' . wp_dropdown_users( array(
+ 'name' => "user_map[$n]",
+ 'id' => 'imported_authors_' . $n,
+ 'multi' => true,
+ 'show_option_all' => __( '- Select -', 'wordpress-importer' ),
+ 'show' => 'display_name_with_login',
+ 'echo' => 0,
+ ) );
+
+ echo '<input type="hidden" name="imported_authors['.$n.']" value="' . esc_attr( $author['author_login'] ) . '" />';
+
+ if ( $this->version != '1.0' )
+ echo '</div>';
+ }
+
+ /**
+ * Map old author logins to local user IDs based on decisions made
+ * in import options form. Can map to an existing user, create a new user
+ * or falls back to the current user in case of error with either of the previous
+ */
+ function get_author_mapping() {
+ if ( ! isset( $_POST['imported_authors'] ) )
+ return;
+
+ $create_users = $this->allow_create_users();
+
+ foreach ( (array) $_POST['imported_authors'] as $i => $old_login ) {
+ // Multisite adds strtolower to sanitize_user. Need to sanitize here to stop breakage in process_posts.
+ $santized_old_login = sanitize_user( $old_login, true );
+ $old_id = isset( $this->authors[$old_login]['author_id'] ) ? intval($this->authors[$old_login]['author_id']) : false;
+
+ if ( ! empty( $_POST['user_map'][$i] ) ) {
+ $user = get_userdata( intval($_POST['user_map'][$i]) );
+ if ( isset( $user->ID ) ) {
+ if ( $old_id )
+ $this->processed_authors[$old_id] = $user->ID;
+ $this->author_mapping[$santized_old_login] = $user->ID;
+ }
+ } else if ( $create_users ) {
+ if ( ! empty($_POST['user_new'][$i]) ) {
+ $user_id = wp_create_user( $_POST['user_new'][$i], wp_generate_password() );
+ } else if ( $this->version != '1.0' ) {
+ $user_data = array(
+ 'user_login' => $old_login,
+ 'user_pass' => wp_generate_password(),
+ 'user_email' => isset( $this->authors[$old_login]['author_email'] ) ? $this->authors[$old_login]['author_email'] : '',
+ 'display_name' => $this->authors[$old_login]['author_display_name'],
+ 'first_name' => isset( $this->authors[$old_login]['author_first_name'] ) ? $this->authors[$old_login]['author_first_name'] : '',
+ 'last_name' => isset( $this->authors[$old_login]['author_last_name'] ) ? $this->authors[$old_login]['author_last_name'] : '',
+ );
+ $user_id = wp_insert_user( $user_data );
+ }
+
+ if ( ! is_wp_error( $user_id ) ) {
+ if ( $old_id )
+ $this->processed_authors[$old_id] = $user_id;
+ $this->author_mapping[$santized_old_login] = $user_id;
+ } else {
+ printf( __( 'Failed to create new user for %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html($this->authors[$old_login]['author_display_name']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ' ' . $user_id->get_error_message();
+ echo '<br />';
+ }
+ }
+
+ // failsafe: if the user_id was invalid, default to the current user
+ if ( ! isset( $this->author_mapping[$santized_old_login] ) ) {
+ if ( $old_id )
+ $this->processed_authors[$old_id] = (int) get_current_user_id();
+ $this->author_mapping[$santized_old_login] = (int) get_current_user_id();
+ }
+ }
+ }
+
+ /**
+ * Create new categories based on import information
+ *
+ * Doesn't create a new category if its slug already exists
+ */
+ function process_categories() {
+ $this->categories = apply_filters( 'wp_import_categories', $this->categories );
+
+ if ( empty( $this->categories ) )
+ return;
+
+ foreach ( $this->categories as $cat ) {
+ // if the category already exists leave it alone
+ $term_id = term_exists( $cat['category_nicename'], 'category' );
+ if ( $term_id ) {
+ if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+ if ( isset($cat['term_id']) )
+ $this->processed_terms[intval($cat['term_id'])] = (int) $term_id;
+ continue;
+ }
+
+ $parent = empty( $cat['category_parent'] ) ? 0 : category_exists( $cat['category_parent'] );
+ $description = isset( $cat['category_description'] ) ? $cat['category_description'] : '';
+
+ $data = array(
+ 'category_nicename' => $cat['category_nicename'],
+ 'category_parent' => $parent,
+ 'cat_name' => wp_slash( $cat['cat_name'] ),
+ 'category_description' => wp_slash( $description ),
+ );
+
+ $id = wp_insert_category( $data );
+ if ( ! is_wp_error( $id ) && $id > 0 ) {
+ if ( isset($cat['term_id']) )
+ $this->processed_terms[intval($cat['term_id'])] = $id;
+ } else {
+ printf( __( 'Failed to import category %s', 'wordpress-importer' ), esc_html($cat['category_nicename']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ': ' . $id->get_error_message();
+ echo '<br />';
+ continue;
+ }
+
+ $this->process_termmeta( $cat, $id );
+ }
+
+ unset( $this->categories );
+ }
+
+ /**
+ * Create new post tags based on import information
+ *
+ * Doesn't create a tag if its slug already exists
+ */
+ function process_tags() {
+ $this->tags = apply_filters( 'wp_import_tags', $this->tags );
+
+ if ( empty( $this->tags ) )
+ return;
+
+ foreach ( $this->tags as $tag ) {
+ // if the tag already exists leave it alone
+ $term_id = term_exists( $tag['tag_slug'], 'post_tag' );
+ if ( $term_id ) {
+ if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+ if ( isset($tag['term_id']) )
+ $this->processed_terms[intval($tag['term_id'])] = (int) $term_id;
+ continue;
+ }
+
+ $description = isset( $tag['tag_description'] ) ? $tag['tag_description'] : '';
+ $args = array(
+ 'slug' => $tag['tag_slug'],
+ 'description' => wp_slash( $description ),
+ );
+
+ $id = wp_insert_term( wp_slash( $tag['tag_name'] ), 'post_tag', $args );
+ if ( ! is_wp_error( $id ) ) {
+ if ( isset($tag['term_id']) )
+ $this->processed_terms[intval($tag['term_id'])] = $id['term_id'];
+ } else {
+ printf( __( 'Failed to import post tag %s', 'wordpress-importer' ), esc_html($tag['tag_name']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ': ' . $id->get_error_message();
+ echo '<br />';
+ continue;
+ }
+
+ $this->process_termmeta( $tag, $id['term_id'] );
+ }
+
+ unset( $this->tags );
+ }
+
+ /**
+ * Create new terms based on import information
+ *
+ * Doesn't create a term its slug already exists
+ */
+ function process_terms() {
+ $this->terms = apply_filters( 'wp_import_terms', $this->terms );
+
+ if ( empty( $this->terms ) )
+ return;
+
+ foreach ( $this->terms as $term ) {
+ // if the term already exists in the correct taxonomy leave it alone
+ $term_id = term_exists( $term['slug'], $term['term_taxonomy'] );
+ if ( $term_id ) {
+ if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+ if ( isset($term['term_id']) )
+ $this->processed_terms[intval($term['term_id'])] = (int) $term_id;
+ continue;
+ }
+
+ if ( empty( $term['term_parent'] ) ) {
+ $parent = 0;
+ } else {
+ $parent = term_exists( $term['term_parent'], $term['term_taxonomy'] );
+ if ( is_array( $parent ) ) {
+ $parent = $parent['term_id'];
+ }
+ }
+
+ $description = isset( $term['term_description'] ) ? $term['term_description'] : '';
+ $args = array(
+ 'slug' => $term['slug'],
+ 'description' => wp_slash( $description ),
+ 'parent' => (int) $parent
+ );
+
+ $id = wp_insert_term( wp_slash( $term['term_name'] ), $term['term_taxonomy'], $args );
+ if ( ! is_wp_error( $id ) ) {
+ if ( isset($term['term_id']) )
+ $this->processed_terms[intval($term['term_id'])] = $id['term_id'];
+ } else {
+ printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($term['term_taxonomy']), esc_html($term['term_name']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ': ' . $id->get_error_message();
+ echo '<br />';
+ continue;
+ }
+
+ $this->process_termmeta( $term, $id['term_id'] );
+ }
+
+ unset( $this->terms );
+ }
+
+ /**
+ * Add metadata to imported term.
+ *
+ * @since 0.6.2
+ *
+ * @param array $term Term data from WXR import.
+ * @param int $term_id ID of the newly created term.
+ */
+ protected function process_termmeta( $term, $term_id ) {
+ if ( ! function_exists( 'add_term_meta' ) ) {
+ return;
+ }
+
+ if ( ! isset( $term['termmeta'] ) ) {
+ $term['termmeta'] = array();
+ }
+
+ /**
+ * Filters the metadata attached to an imported term.
+ *
+ * @since 0.6.2
+ *
+ * @param array $termmeta Array of term meta.
+ * @param int $term_id ID of the newly created term.
+ * @param array $term Term data from the WXR import.
+ */
+ $term['termmeta'] = apply_filters( 'wp_import_term_meta', $term['termmeta'], $term_id, $term );
+
+ if ( empty( $term['termmeta'] ) ) {
+ return;
+ }
+
+ foreach ( $term['termmeta'] as $meta ) {
+ /**
+ * Filters the meta key for an imported piece of term meta.
+ *
+ * @since 0.6.2
+ *
+ * @param string $meta_key Meta key.
+ * @param int $term_id ID of the newly created term.
+ * @param array $term Term data from the WXR import.
+ */
+ $key = apply_filters( 'import_term_meta_key', $meta['key'], $term_id, $term );
+ if ( ! $key ) {
+ continue;
+ }
+
+ // Export gets meta straight from the DB so could have a serialized string
+ $value = maybe_unserialize( $meta['value'] );
+
+ add_term_meta( $term_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
+
+ /**
+ * Fires after term meta is imported.
+ *
+ * @since 0.6.2
+ *
+ * @param int $term_id ID of the newly created term.
+ * @param string $key Meta key.
+ * @param mixed $value Meta value.
+ */
+ do_action( 'import_term_meta', $term_id, $key, $value );
+ }
+ }
+
+ /**
+ * Create new posts based on import information
+ *
+ * Posts marked as having a parent which doesn't exist will become top level items.
+ * Doesn't create a new post if: the post type doesn't exist, the given post ID
+ * is already noted as imported or a post with the same title and date already exists.
+ * Note that new/updated terms, comments and meta are imported for the last of the above.
+ */
+ function process_posts() {
+ $this->posts = apply_filters( 'wp_import_posts', $this->posts );
+
+ foreach ( $this->posts as $post ) {
+ $post = apply_filters( 'wp_import_post_data_raw', $post );
+
+ if ( ! post_type_exists( $post['post_type'] ) ) {
+ printf( __( 'Failed to import &#8220;%s&#8221;: Invalid post type %s', 'wordpress-importer' ),
+ esc_html($post['post_title']), esc_html($post['post_type']) );
+ echo '<br />';
+ do_action( 'wp_import_post_exists', $post );
+ continue;
+ }
+
+ if ( isset( $this->processed_posts[$post['post_id']] ) && ! empty( $post['post_id'] ) )
+ continue;
+
+ if ( $post['status'] == 'auto-draft' )
+ continue;
+
+ if ( 'nav_menu_item' == $post['post_type'] ) {
+ $this->process_menu_item( $post );
+ continue;
+ }
+
+ $post_type_object = get_post_type_object( $post['post_type'] );
+
+ $post_exists = post_exists( $post['post_title'], '', $post['post_date'] );
+
+ /**
+ * Filter ID of the existing post corresponding to post currently importing.
+ *
+ * Return 0 to force the post to be imported. Filter the ID to be something else
+ * to override which existing post is mapped to the imported post.
+ *
+ * @see post_exists()
+ * @since 0.6.2
+ *
+ * @param int $post_exists Post ID, or 0 if post did not exist.
+ * @param array $post The post array to be inserted.
+ */
+ $post_exists = apply_filters( 'wp_import_existing_post', $post_exists, $post );
+
+ if ( $post_exists && get_post_type( $post_exists ) == $post['post_type'] ) {
+ printf( __('%s &#8220;%s&#8221; already exists.', 'wordpress-importer'), $post_type_object->labels->singular_name, esc_html($post['post_title']) );
+ echo '<br />';
+ $comment_post_ID = $post_id = $post_exists;
+ $this->processed_posts[ intval( $post['post_id'] ) ] = intval( $post_exists );
+ } else {
+ $post_parent = (int) $post['post_parent'];
+ if ( $post_parent ) {
+ // if we already know the parent, map it to the new local ID
+ if ( isset( $this->processed_posts[$post_parent] ) ) {
+ $post_parent = $this->processed_posts[$post_parent];
+ // otherwise record the parent for later
+ } else {
+ $this->post_orphans[intval($post['post_id'])] = $post_parent;
+ $post_parent = 0;
+ }
+ }
+
+ // map the post author
+ $author = sanitize_user( $post['post_author'], true );
+ if ( isset( $this->author_mapping[$author] ) )
+ $author = $this->author_mapping[$author];
+ else
+ $author = (int) get_current_user_id();
+
+ $postdata = array(
+ 'import_id' => $post['post_id'], 'post_author' => $author, 'post_date' => $post['post_date'],
+ 'post_date_gmt' => $post['post_date_gmt'], 'post_content' => $post['post_content'],
+ 'post_excerpt' => $post['post_excerpt'], 'post_title' => $post['post_title'],
+ 'post_status' => $post['status'], 'post_name' => $post['post_name'],
+ 'comment_status' => $post['comment_status'], 'ping_status' => $post['ping_status'],
+ 'guid' => $post['guid'], 'post_parent' => $post_parent, 'menu_order' => $post['menu_order'],
+ 'post_type' => $post['post_type'], 'post_password' => $post['post_password']
+ );
+
+ $original_post_ID = $post['post_id'];
+ $postdata = apply_filters( 'wp_import_post_data_processed', $postdata, $post );
+
+ $postdata = wp_slash( $postdata );
+
+ if ( 'attachment' == $postdata['post_type'] ) {
+ $remote_url = ! empty($post['attachment_url']) ? $post['attachment_url'] : $post['guid'];
+
+ // try to use _wp_attached file for upload folder placement to ensure the same location as the export site
+ // e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
+ $postdata['upload_date'] = $post['post_date'];
+ if ( isset( $post['postmeta'] ) ) {
+ foreach( $post['postmeta'] as $meta ) {
+ if ( $meta['key'] == '_wp_attached_file' ) {
+ if ( preg_match( '%^[0-9]{4}/[0-9]{2}%', $meta['value'], $matches ) )
+ $postdata['upload_date'] = $matches[0];
+ break;
+ }
+ }
+ }
+
+ $comment_post_ID = $post_id = $this->process_attachment( $postdata, $remote_url );
+ } else {
+ $comment_post_ID = $post_id = wp_insert_post( $postdata, true );
+ do_action( 'wp_import_insert_post', $post_id, $original_post_ID, $postdata, $post );
+ }
+
+ if ( is_wp_error( $post_id ) ) {
+ printf( __( 'Failed to import %s &#8220;%s&#8221;', 'wordpress-importer' ),
+ $post_type_object->labels->singular_name, esc_html($post['post_title']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ': ' . $post_id->get_error_message();
+ echo '<br />';
+ continue;
+ }
+
+ if ( $post['is_sticky'] == 1 )
+ stick_post( $post_id );
+ }
+
+ // map pre-import ID to local ID
+ $this->processed_posts[intval($post['post_id'])] = (int) $post_id;
+
+ if ( ! isset( $post['terms'] ) )
+ $post['terms'] = array();
+
+ $post['terms'] = apply_filters( 'wp_import_post_terms', $post['terms'], $post_id, $post );
+
+ // add categories, tags and other terms
+ if ( ! empty( $post['terms'] ) ) {
+ $terms_to_set = array();
+ foreach ( $post['terms'] as $term ) {
+ // back compat with WXR 1.0 map 'tag' to 'post_tag'
+ $taxonomy = ( 'tag' == $term['domain'] ) ? 'post_tag' : $term['domain'];
+ $term_exists = term_exists( $term['slug'], $taxonomy );
+ $term_id = is_array( $term_exists ) ? $term_exists['term_id'] : $term_exists;
+ if ( ! $term_id ) {
+ $t = wp_insert_term( $term['name'], $taxonomy, array( 'slug' => $term['slug'] ) );
+ if ( ! is_wp_error( $t ) ) {
+ $term_id = $t['term_id'];
+ do_action( 'wp_import_insert_term', $t, $term, $post_id, $post );
+ } else {
+ printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($taxonomy), esc_html($term['name']) );
+ if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+ echo ': ' . $t->get_error_message();
+ echo '<br />';
+ do_action( 'wp_import_insert_term_failed', $t, $term, $post_id, $post );
+ continue;
+ }
+ }
+ $terms_to_set[$taxonomy][] = intval( $term_id );
+ }
+
+ foreach ( $terms_to_set as $tax => $ids ) {
+ $tt_ids = wp_set_post_terms( $post_id, $ids, $tax );
+ do_action( 'wp_import_set_post_terms', $tt_ids, $ids, $tax, $post_id, $post );
+ }
+ unset( $post['terms'], $terms_to_set );
+ }
+
+ if ( ! isset( $post['comments'] ) )
+ $post['comments'] = array();
+
+ $post['comments'] = apply_filters( 'wp_import_post_comments', $post['comments'], $post_id, $post );
+
+ // add/update comments
+ if ( ! empty( $post['comments'] ) ) {
+ $num_comments = 0;
+ $inserted_comments = array();
+ foreach ( $post['comments'] as $comment ) {
+ $comment_id = $comment['comment_id'];
+ $newcomments[$comment_id]['comment_post_ID'] = $comment_post_ID;
+ $newcomments[$comment_id]['comment_author'] = $comment['comment_author'];
+ $newcomments[$comment_id]['comment_author_email'] = $comment['comment_author_email'];
+ $newcomments[$comment_id]['comment_author_IP'] = $comment['comment_author_IP'];
+ $newcomments[$comment_id]['comment_author_url'] = $comment['comment_author_url'];
+ $newcomments[$comment_id]['comment_date'] = $comment['comment_date'];
+ $newcomments[$comment_id]['comment_date_gmt'] = $comment['comment_date_gmt'];
+ $newcomments[$comment_id]['comment_content'] = $comment['comment_content'];
+ $newcomments[$comment_id]['comment_approved'] = $comment['comment_approved'];
+ $newcomments[$comment_id]['comment_type'] = $comment['comment_type'];
+ $newcomments[$comment_id]['comment_parent'] = $comment['comment_parent'];
+ $newcomments[$comment_id]['commentmeta'] = isset( $comment['commentmeta'] ) ? $comment['commentmeta'] : array();
+ if ( isset( $this->processed_authors[$comment['comment_user_id']] ) )
+ $newcomments[$comment_id]['user_id'] = $this->processed_authors[$comment['comment_user_id']];
+ }
+ ksort( $newcomments );
+
+ foreach ( $newcomments as $key => $comment ) {
+ // if this is a new post we can skip the comment_exists() check
+ if ( ! $post_exists || ! comment_exists( $comment['comment_author'], $comment['comment_date'] ) ) {
+ if ( isset( $inserted_comments[$comment['comment_parent']] ) ) {
+ $comment['comment_parent'] = $inserted_comments[ $comment['comment_parent'] ];
+ }
+
+ $comment_data = wp_slash( $comment );
+ unset( $comment_data['commentmeta'] ); // Handled separately, wp_insert_comment() also expects `comment_meta`.
+ $comment_data = wp_filter_comment( $comment_data );
+
+ $inserted_comments[ $key ] = wp_insert_comment( $comment_data );
+
+ do_action( 'wp_import_insert_comment', $inserted_comments[ $key ], $comment, $comment_post_ID, $post );
+
+ foreach( $comment['commentmeta'] as $meta ) {
+ $value = maybe_unserialize( $meta['value'] );
+
+ add_comment_meta( $inserted_comments[ $key ], wp_slash( $meta['key'] ), wp_slash_strings_only( $value ) );
+ }
+
+ $num_comments++;
+ }
+ }
+ unset( $newcomments, $inserted_comments, $post['comments'] );
+ }
+
+ if ( ! isset( $post['postmeta'] ) )
+ $post['postmeta'] = array();
+
+ $post['postmeta'] = apply_filters( 'wp_import_post_meta', $post['postmeta'], $post_id, $post );
+
+ // add/update post meta
+ if ( ! empty( $post['postmeta'] ) ) {
+ foreach ( $post['postmeta'] as $meta ) {
+ $key = apply_filters( 'import_post_meta_key', $meta['key'], $post_id, $post );
+ $value = false;
+
+ if ( '_edit_last' == $key ) {
+ if ( isset( $this->processed_authors[intval($meta['value'])] ) )
+ $value = $this->processed_authors[intval($meta['value'])];
+ else
+ $key = false;
+ }
+
+ if ( $key ) {
+ // export gets meta straight from the DB so could have a serialized string
+ if ( ! $value ) {
+ $value = maybe_unserialize( $meta['value'] );
+ }
+
+ add_post_meta( $post_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
+
+ do_action( 'import_post_meta', $post_id, $key, $value );
+
+ // if the post has a featured image, take note of this in case of remap
+ if ( '_thumbnail_id' == $key )
+ $this->featured_images[$post_id] = (int) $value;
+ }
+ }
+ }
+ }
+
+ unset( $this->posts );
+ }
+
+ /**
+ * Attempt to create a new menu item from import data
+ *
+ * Fails for draft, orphaned menu items and those without an associated nav_menu
+ * or an invalid nav_menu term. If the post type or term object which the menu item
+ * represents doesn't exist then the menu item will not be imported (waits until the
+ * end of the import to retry again before discarding).
+ *
+ * @param array $item Menu item details from WXR file
+ */
+ function process_menu_item( $item ) {
+ // skip draft, orphaned menu items
+ if ( 'draft' == $item['status'] )
+ return;
+
+ $menu_slug = false;
+ if ( isset($item['terms']) ) {
+ // loop through terms, assume first nav_menu term is correct menu
+ foreach ( $item['terms'] as $term ) {
+ if ( 'nav_menu' == $term['domain'] ) {
+ $menu_slug = $term['slug'];
+ break;
+ }
+ }
+ }
+
+ // no nav_menu term associated with this menu item
+ if ( ! $menu_slug ) {
+ _e( 'Menu item skipped due to missing menu slug', 'wordpress-importer' );
+ echo '<br />';
+ return;
+ }
+
+ $menu_id = term_exists( $menu_slug, 'nav_menu' );
+ if ( ! $menu_id ) {
+ printf( __( 'Menu item skipped due to invalid menu slug: %s', 'wordpress-importer' ), esc_html( $menu_slug ) );
+ echo '<br />';
+ return;
+ } else {
+ $menu_id = is_array( $menu_id ) ? $menu_id['term_id'] : $menu_id;
+ }
+
+ foreach ( $item['postmeta'] as $meta )
+ ${$meta['key']} = $meta['value'];
+
+ if ( 'taxonomy' == $_menu_item_type && isset( $this->processed_terms[intval($_menu_item_object_id)] ) ) {
+ $_menu_item_object_id = $this->processed_terms[intval($_menu_item_object_id)];
+ } else if ( 'post_type' == $_menu_item_type && isset( $this->processed_posts[intval($_menu_item_object_id)] ) ) {
+ $_menu_item_object_id = $this->processed_posts[intval($_menu_item_object_id)];
+ } else if ( 'custom' != $_menu_item_type ) {
+ // associated object is missing or not imported yet, we'll retry later
+ $this->missing_menu_items[] = $item;
+ return;
+ }
+
+ if ( isset( $this->processed_menu_items[intval($_menu_item_menu_item_parent)] ) ) {
+ $_menu_item_menu_item_parent = $this->processed_menu_items[intval($_menu_item_menu_item_parent)];
+ } else if ( $_menu_item_menu_item_parent ) {
+ $this->menu_item_orphans[intval($item['post_id'])] = (int) $_menu_item_menu_item_parent;
+ $_menu_item_menu_item_parent = 0;
+ }
+
+ // wp_update_nav_menu_item expects CSS classes as a space separated string
+ $_menu_item_classes = maybe_unserialize( $_menu_item_classes );
+ if ( is_array( $_menu_item_classes ) )
+ $_menu_item_classes = implode( ' ', $_menu_item_classes );
+
+ $args = array(
+ 'menu-item-object-id' => $_menu_item_object_id,
+ 'menu-item-object' => $_menu_item_object,
+ 'menu-item-parent-id' => $_menu_item_menu_item_parent,
+ 'menu-item-position' => intval( $item['menu_order'] ),
+ 'menu-item-type' => $_menu_item_type,
+ 'menu-item-title' => $item['post_title'],
+ 'menu-item-url' => $_menu_item_url,
+ 'menu-item-description' => $item['post_content'],
+ 'menu-item-attr-title' => $item['post_excerpt'],
+ 'menu-item-target' => $_menu_item_target,
+ 'menu-item-classes' => $_menu_item_classes,
+ 'menu-item-xfn' => $_menu_item_xfn,
+ 'menu-item-status' => $item['status']
+ );
+
+ $id = wp_update_nav_menu_item( $menu_id, 0, $args );
+ if ( $id && ! is_wp_error( $id ) )
+ $this->processed_menu_items[intval($item['post_id'])] = (int) $id;
+ }
+
+ /**
+ * If fetching attachments is enabled then attempt to create a new attachment
+ *
+ * @param array $post Attachment post details from WXR
+ * @param string $url URL to fetch attachment from
+ * @return int|WP_Error Post ID on success, WP_Error otherwise
+ */
+ function process_attachment( $post, $url ) {
+ if ( ! $this->fetch_attachments )
+ return new WP_Error( 'attachment_processing_error',
+ __( 'Fetching attachments is not enabled', 'wordpress-importer' ) );
+
+ // if the URL is absolute, but does not contain address, then upload it assuming base_site_url
+ if ( preg_match( '|^/[\w\W]+$|', $url ) )
+ $url = rtrim( $this->base_url, '/' ) . $url;
+
+ $upload = $this->fetch_remote_file( $url, $post );
+ if ( is_wp_error( $upload ) )
+ return $upload;
+
+ if ( $info = wp_check_filetype( $upload['file'] ) )
+ $post['post_mime_type'] = $info['type'];
+ else
+ return new WP_Error( 'attachment_processing_error', __('Invalid file type', 'wordpress-importer') );
+
+ $post['guid'] = $upload['url'];
+
+ // as per wp-admin/includes/upload.php
+ $post_id = wp_insert_attachment( $post, $upload['file'] );
+ wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) );
+
+ // remap resized image URLs, works by stripping the extension and remapping the URL stub.
+ if ( preg_match( '!^image/!', $info['type'] ) ) {
+ $parts = pathinfo( $url );
+ $name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2
+
+ $parts_new = pathinfo( $upload['url'] );
+ $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" );
+
+ $this->url_remap[$parts['dirname'] . '/' . $name] = $parts_new['dirname'] . '/' . $name_new;
+ }
+
+ return $post_id;
+ }
+
+ /**
+ * Attempt to download a remote file attachment
+ *
+ * @param string $url URL of item to fetch
+ * @param array $post Attachment details
+ * @return array|WP_Error Local file location details on success, WP_Error otherwise
+ */
+ function fetch_remote_file( $url, $post ) {
+ // Extract the file name from the URL.
+ $file_name = basename( parse_url( $url, PHP_URL_PATH ) );
+
+ if ( ! $file_name ) {
+ $file_name = md5( $url );
+ }
+
+ $tmp_file_name = wp_tempnam( $file_name );
+ if ( ! $tmp_file_name ) {
+ return new WP_Error( 'import_no_file', __( 'Could not create temporary file.', 'wordpress-importer' ) );
+ }
+
+ // Fetch the remote URL and write it to the placeholder file.
+ $remote_response = wp_safe_remote_get( $url, array(
+ 'timeout' => 300,
+ 'stream' => true,
+ 'filename' => $tmp_file_name,
+ 'headers' => array(
+ 'Accept-Encoding' => 'identity',
+ ),
+ ) );
+
+ if ( is_wp_error( $remote_response ) ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error(
+ 'import_file_error',
+ sprintf(
+ /* translators: 1: The WordPress error message. 2: The WordPress error code. */
+ __( 'Request failed due to an error: %1$s (%2$s)', 'wordpress-importer' ),
+ esc_html( $remote_response->get_error_message() ),
+ esc_html( $remote_response->get_error_code() )
+ )
+ );
+ }
+
+ $remote_response_code = (int) wp_remote_retrieve_response_code( $remote_response );
+
+ // Make sure the fetch was successful.
+ if ( 200 !== $remote_response_code ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error(
+ 'import_file_error',
+ sprintf(
+ /* translators: 1: The HTTP error message. 2: The HTTP error code. */
+ __( 'Remote server returned the following unexpected result: %1$s (%2$s)', 'wordpress-importer' ),
+ get_status_header_desc( $remote_response_code ),
+ esc_html( $remote_response_code )
+ )
+ );
+ }
+
+ $headers = wp_remote_retrieve_headers( $remote_response );
+
+ // Request failed.
+ if ( ! $headers ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error( 'import_file_error', __('Remote server did not respond', 'wordpress-importer') );
+ }
+
+ $filesize = (int) filesize( $tmp_file_name );
+
+ if ( 0 === $filesize ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error( 'import_file_error', __('Zero size file downloaded', 'wordpress-importer') );
+ }
+
+ if ( ! isset( $headers['content-encoding'] ) && isset( $headers['content-length'] ) && $filesize !== (int) $headers['content-length'] ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error( 'import_file_error', __('Downloaded file has incorrect size', 'wordpress-importer' ) );
+ }
+
+ $max_size = (int) $this->max_attachment_size();
+ if ( ! empty( $max_size ) && $filesize > $max_size ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error( 'import_file_error', sprintf(__('Remote file is too large, limit is %s', 'wordpress-importer' ), size_format($max_size) ) );
+ }
+
+ // Override file name with Content-Disposition header value.
+ if ( ! empty( $headers['content-disposition'] ) ) {
+ $file_name_from_disposition = self::get_filename_from_disposition( (array) $headers['content-disposition'] );
+ if ( $file_name_from_disposition ) {
+ $file_name = $file_name_from_disposition;
+ }
+ }
+
+ // Set file extension if missing.
+ $file_ext = pathinfo( $file_name, PATHINFO_EXTENSION );
+ if ( ! $file_ext && ! empty( $headers['content-type'] ) ) {
+ $extension = self::get_file_extension_by_mime_type( $headers['content-type'] );
+ if ( $extension ) {
+ $file_name = "{$file_name}.{$extension}";
+ }
+ }
+
+ // Handle the upload like _wp_handle_upload() does.
+ $wp_filetype = wp_check_filetype_and_ext( $tmp_file_name, $file_name );
+ $ext = empty( $wp_filetype['ext'] ) ? '' : $wp_filetype['ext'];
+ $type = empty( $wp_filetype['type'] ) ? '' : $wp_filetype['type'];
+ $proper_filename = empty( $wp_filetype['proper_filename'] ) ? '' : $wp_filetype['proper_filename'];
+
+ // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect.
+ if ( $proper_filename ) {
+ $file_name = $proper_filename;
+ }
+
+ if ( ( ! $type || ! $ext ) && ! current_user_can( 'unfiltered_upload' ) ) {
+ return new WP_Error( 'import_file_error', __( 'Sorry, this file type is not permitted for security reasons.', 'wordpress-importer' ) );
+ }
+
+ $uploads = wp_upload_dir( $post['upload_date'] );
+ if ( ! ( $uploads && false === $uploads['error'] ) ) {
+ return new WP_Error( 'upload_dir_error', $uploads['error'] );
+ }
+
+ // Move the file to the uploads dir.
+ $file_name = wp_unique_filename( $uploads['path'], $file_name );
+ $new_file = $uploads['path'] . "/$file_name";
+ $move_new_file = copy( $tmp_file_name, $new_file );
+
+ if ( ! $move_new_file ) {
+ @unlink( $tmp_file_name );
+ return new WP_Error( 'import_file_error', __( 'The uploaded file could not be moved', 'wordpress-importer' ) );
+ }
+
+ // Set correct file permissions.
+ $stat = stat( dirname( $new_file ) );
+ $perms = $stat['mode'] & 0000666;
+ chmod( $new_file, $perms );
+
+ $upload = array(
+ 'file' => $new_file,
+ 'url' => $uploads['url'] . "/$file_name",
+ 'type' => $wp_filetype['type'],
+ 'error' => false,
+ );
+
+ // keep track of the old and new urls so we can substitute them later
+ $this->url_remap[$url] = $upload['url'];
+ $this->url_remap[$post['guid']] = $upload['url']; // r13735, really needed?
+ // keep track of the destination if the remote url is redirected somewhere else
+ if ( isset($headers['x-final-location']) && $headers['x-final-location'] != $url )
+ $this->url_remap[$headers['x-final-location']] = $upload['url'];
+
+ return $upload;
+ }
+
+ /**
+ * Attempt to associate posts and menu items with previously missing parents
+ *
+ * An imported post's parent may not have been imported when it was first created
+ * so try again. Similarly for child menu items and menu items which were missing
+ * the object (e.g. post) they represent in the menu
+ */
+ function backfill_parents() {
+ global $wpdb;
+
+ // find parents for post orphans
+ foreach ( $this->post_orphans as $child_id => $parent_id ) {
+ $local_child_id = $local_parent_id = false;
+ if ( isset( $this->processed_posts[$child_id] ) )
+ $local_child_id = $this->processed_posts[$child_id];
+ if ( isset( $this->processed_posts[$parent_id] ) )
+ $local_parent_id = $this->processed_posts[$parent_id];
+
+ if ( $local_child_id && $local_parent_id ) {
+ $wpdb->update( $wpdb->posts, array( 'post_parent' => $local_parent_id ), array( 'ID' => $local_child_id ), '%d', '%d' );
+ clean_post_cache( $local_child_id );
+ }
+ }
+
+ // all other posts/terms are imported, retry menu items with missing associated object
+ $missing_menu_items = $this->missing_menu_items;
+ foreach ( $missing_menu_items as $item )
+ $this->process_menu_item( $item );
+
+ // find parents for menu item orphans
+ foreach ( $this->menu_item_orphans as $child_id => $parent_id ) {
+ $local_child_id = $local_parent_id = 0;
+ if ( isset( $this->processed_menu_items[$child_id] ) )
+ $local_child_id = $this->processed_menu_items[$child_id];
+ if ( isset( $this->processed_menu_items[$parent_id] ) )
+ $local_parent_id = $this->processed_menu_items[$parent_id];
+
+ if ( $local_child_id && $local_parent_id )
+ update_post_meta( $local_child_id, '_menu_item_menu_item_parent', (int) $local_parent_id );
+ }
+ }
+
+ /**
+ * Use stored mapping information to update old attachment URLs
+ */
+ function backfill_attachment_urls() {
+ global $wpdb;
+ // make sure we do the longest urls first, in case one is a substring of another
+ uksort( $this->url_remap, array(&$this, 'cmpr_strlen') );
+
+ foreach ( $this->url_remap as $from_url => $to_url ) {
+ // remap urls in post_content
+ $wpdb->query( $wpdb->prepare("UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s)", $from_url, $to_url) );
+ // remap enclosure urls
+ $result = $wpdb->query( $wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key='enclosure'", $from_url, $to_url) );
+ }
+ }
+
+ /**
+ * Update _thumbnail_id meta to new, imported attachment IDs
+ */
+ function remap_featured_images() {
+ // cycle through posts that have a featured image
+ foreach ( $this->featured_images as $post_id => $value ) {
+ if ( isset( $this->processed_posts[$value] ) ) {
+ $new_id = $this->processed_posts[$value];
+ // only update if there's a difference
+ if ( $new_id != $value )
+ update_post_meta( $post_id, '_thumbnail_id', $new_id );
+ }
+ }
+ }
+
+ /**
+ * Parse a WXR file
+ *
+ * @param string $file Path to WXR file for parsing
+ * @return array Information gathered from the WXR file
+ */
+ function parse( $file ) {
+ $parser = new WXR_Parser();
+ return $parser->parse( $file );
+ }
+
+ // Display import page title
+ function header() {
+ echo '<div class="wrap">';
+ echo '<h2>' . __( 'Import WordPress', 'wordpress-importer' ) . '</h2>';
+
+ $updates = get_plugin_updates();
+ $basename = plugin_basename(__FILE__);
+ if ( isset( $updates[$basename] ) ) {
+ $update = $updates[$basename];
+ echo '<div class="error"><p><strong>';
+ printf( __( 'A new version of this importer is available. Please update to version %s to ensure compatibility with newer export files.', 'wordpress-importer' ), $update->update->new_version );
+ echo '</strong></p></div>';
+ }
+ }
+
+ // Close div.wrap
+ function footer() {
+ echo '</div>';
+ }
+
+ /**
+ * Display introductory text and file upload form
+ */
+ function greet() {
+ echo '<div class="narrow">';
+ echo '<p>'.__( 'Howdy! Upload your WordPress eXtended RSS (WXR) file and we&#8217;ll import the posts, pages, comments, custom fields, categories, and tags into this site.', 'wordpress-importer' ).'</p>';
+ echo '<p>'.__( 'Choose a WXR (.xml) file to upload, then click Upload file and import.', 'wordpress-importer' ).'</p>';
+ wp_import_upload_form( 'admin.php?import=wordpress&amp;step=1' );
+ echo '</div>';
+ }
+
+ /**
+ * Decide if the given meta key maps to information we will want to import
+ *
+ * @param string $key The meta key to check
+ * @return string|bool The key if we do want to import, false if not
+ */
+ function is_valid_meta_key( $key ) {
+ // skip attachment metadata since we'll regenerate it from scratch
+ // skip _edit_lock as not relevant for import
+ if ( in_array( $key, array( '_wp_attached_file', '_wp_attachment_metadata', '_edit_lock' ) ) )
+ return false;
+ return $key;
+ }
+
+ /**
+ * Decide whether or not the importer is allowed to create users.
+ * Default is true, can be filtered via import_allow_create_users
+ *
+ * @return bool True if creating users is allowed
+ */
+ function allow_create_users() {
+ return apply_filters( 'import_allow_create_users', true );
+ }
+
+ /**
+ * Decide whether or not the importer should attempt to download attachment files.
+ * Default is true, can be filtered via import_allow_fetch_attachments. The choice
+ * made at the import options screen must also be true, false here hides that checkbox.
+ *
+ * @return bool True if downloading attachments is allowed
+ */
+ function allow_fetch_attachments() {
+ return apply_filters( 'import_allow_fetch_attachments', true );
+ }
+
+ /**
+ * Decide what the maximum file size for downloaded attachments is.
+ * Default is 0 (unlimited), can be filtered via import_attachment_size_limit
+ *
+ * @return int Maximum attachment file size to import
+ */
+ function max_attachment_size() {
+ return apply_filters( 'import_attachment_size_limit', 0 );
+ }
+
+ /**
+ * Added to http_request_timeout filter to force timeout at 60 seconds during import
+ * @return int 60
+ */
+ function bump_request_timeout( $val ) {
+ return 60;
+ }
+
+ // return the difference in length between two strings
+ function cmpr_strlen( $a, $b ) {
+ return strlen($b) - strlen($a);
+ }
+
+ /**
+ * Parses filename from a Content-Disposition header value.
+ *
+ * As per RFC6266:
+ *
+ * content-disposition = "Content-Disposition" ":"
+ * disposition-type *( ";" disposition-parm )
+ *
+ * disposition-type = "inline" | "attachment" | disp-ext-type
+ * ; case-insensitive
+ * disp-ext-type = token
+ *
+ * disposition-parm = filename-parm | disp-ext-parm
+ *
+ * filename-parm = "filename" "=" value
+ * | "filename*" "=" ext-value
+ *
+ * disp-ext-parm = token "=" value
+ * | ext-token "=" ext-value
+ * ext-token = <the characters in token, followed by "*">
+ *
+ * @since 0.7.0
+ *
+ * @see WP_REST_Attachments_Controller::get_filename_from_disposition()
+ *
+ * @link http://tools.ietf.org/html/rfc2388
+ * @link http://tools.ietf.org/html/rfc6266
+ *
+ * @param string[] $disposition_header List of Content-Disposition header values.
+ * @return string|null Filename if available, or null if not found.
+ */
+ protected static function get_filename_from_disposition( $disposition_header ) {
+ // Get the filename.
+ $filename = null;
+
+ foreach ( $disposition_header as $value ) {
+ $value = trim( $value );
+
+ if ( strpos( $value, ';' ) === false ) {
+ continue;
+ }
+
+ list( $type, $attr_parts ) = explode( ';', $value, 2 );
+
+ $attr_parts = explode( ';', $attr_parts );
+ $attributes = array();
+
+ foreach ( $attr_parts as $part ) {
+ if ( strpos( $part, '=' ) === false ) {
+ continue;
+ }
+
+ list( $key, $value ) = explode( '=', $part, 2 );
+
+ $attributes[ trim( $key ) ] = trim( $value );
+ }
+
+ if ( empty( $attributes['filename'] ) ) {
+ continue;
+ }
+
+ $filename = trim( $attributes['filename'] );
+
+ // Unquote quoted filename, but after trimming.
+ if ( substr( $filename, 0, 1 ) === '"' && substr( $filename, -1, 1 ) === '"' ) {
+ $filename = substr( $filename, 1, -1 );
+ }
+ }
+
+ return $filename;
+ }
+
+ /**
+ * Retrieves file extension by mime type.
+ *
+ * @since 0.7.0
+ *
+ * @param string $mime_type Mime type to search extension for.
+ * @return string|null File extension if available, or null if not found.
+ */
+ protected static function get_file_extension_by_mime_type( $mime_type ) {
+ static $map = null;
+
+ if ( is_array( $map ) ) {
+ return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
+ }
+
+ $mime_types = wp_get_mime_types();
+ $map = array_flip( $mime_types );
+
+ // Some types have multiple extensions, use only the first one.
+ foreach ( $map as $type => $extensions ) {
+ $map[ $type ] = strtok( $extensions, '|' );
+ }
+
+ return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
+ }
+}
diff --git a/plugins/wordpress-importer/compat.php b/plugins/wordpress-importer/compat.php
new file mode 100644
index 00000000..22ebc4ed
--- /dev/null
+++ b/plugins/wordpress-importer/compat.php
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Implementation for WordPress functions missing in older WordPress versions.
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+if ( ! function_exists( 'wp_slash_strings_only' ) ) {
+ /**
+ * Adds slashes to only string values in an array of values.
+ *
+ * Compat for WordPress < 5.3.0.
+ *
+ * @since 0.7.0
+ *
+ * @param mixed $value Scalar or array of scalars.
+ * @return mixed Slashes $value
+ */
+ function wp_slash_strings_only( $value ) {
+ return map_deep( $value, 'addslashes_strings_only' );
+ }
+}
+
+if ( ! function_exists( 'addslashes_strings_only' ) ) {
+ /**
+ * Adds slashes only if the provided value is a string.
+ *
+ * Compat for WordPress < 5.3.0.
+ *
+ * @since 0.7.0
+ *
+ * @param mixed $value
+ * @return mixed
+ */
+ function addslashes_strings_only( $value ) {
+ return is_string( $value ) ? addslashes( $value ) : $value;
+ }
+}
+
+if ( ! function_exists( 'map_deep' ) ) {
+ /**
+ * Maps a function to all non-iterable elements of an array or an object.
+ *
+ * Compat for WordPress < 4.4.0.
+ *
+ * @since 0.7.0
+ *
+ * @param mixed $value The array, object, or scalar.
+ * @param callable $callback The function to map onto $value.
+ * @return mixed The value with the callback applied to all non-arrays and non-objects inside it.
+ */
+ function map_deep( $value, $callback ) {
+ if ( is_array( $value ) ) {
+ foreach ( $value as $index => $item ) {
+ $value[ $index ] = map_deep( $item, $callback );
+ }
+ } elseif ( is_object( $value ) ) {
+ $object_vars = get_object_vars( $value );
+ foreach ( $object_vars as $property_name => $property_value ) {
+ $value->$property_name = map_deep( $property_value, $callback );
+ }
+ } else {
+ $value = call_user_func( $callback, $value );
+ }
+
+ return $value;
+ }
+}
diff --git a/plugins/wordpress-importer/parsers.php b/plugins/wordpress-importer/parsers.php
index b9d0e7a0..0aef25f2 100644
--- a/plugins/wordpress-importer/parsers.php
+++ b/plugins/wordpress-importer/parsers.php
@@ -6,693 +6,16 @@
* @subpackage Importer
*/
-/**
- * WordPress Importer class for managing parsing of WXR files.
- */
-class WXR_Parser {
- function parse( $file ) {
- // Attempt to use proper XML parsers first
- if ( extension_loaded( 'simplexml' ) ) {
- $parser = new WXR_Parser_SimpleXML;
- $result = $parser->parse( $file );
-
- // If SimpleXML succeeds or this is an invalid WXR file then return the results
- if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() )
- return $result;
- } else if ( extension_loaded( 'xml' ) ) {
- $parser = new WXR_Parser_XML;
- $result = $parser->parse( $file );
-
- // If XMLParser succeeds or this is an invalid WXR file then return the results
- if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() )
- return $result;
- }
-
- // We have a malformed XML file, so display the error and fallthrough to regex
- if ( isset($result) && defined('IMPORT_DEBUG') && IMPORT_DEBUG ) {
- echo '<pre>';
- if ( 'SimpleXML_parse_error' == $result->get_error_code() ) {
- foreach ( $result->get_error_data() as $error )
- echo $error->line . ':' . $error->column . ' ' . esc_html( $error->message ) . "\n";
- } else if ( 'XML_parse_error' == $result->get_error_code() ) {
- $error = $result->get_error_data();
- echo $error[0] . ':' . $error[1] . ' ' . esc_html( $error[2] );
- }
- echo '</pre>';
- echo '<p><strong>' . __( 'There was an error when reading this WXR file', 'wordpress-importer' ) . '</strong><br />';
- echo __( 'Details are shown above. The importer will now try again with a different parser...', 'wordpress-importer' ) . '</p>';
- }
-
- // use regular expressions if nothing else available or this is bad XML
- $parser = new WXR_Parser_Regex;
- return $parser->parse( $file );
- }
-}
-
-/**
- * WXR Parser that makes use of the SimpleXML PHP extension.
- */
-class WXR_Parser_SimpleXML {
- function parse( $file ) {
- $authors = $posts = $categories = $tags = $terms = array();
-
- $internal_errors = libxml_use_internal_errors(true);
-
- $dom = new DOMDocument;
- $old_value = null;
- if ( function_exists( 'libxml_disable_entity_loader' ) ) {
- $old_value = libxml_disable_entity_loader( true );
- }
- $success = $dom->loadXML( file_get_contents( $file ) );
- if ( ! is_null( $old_value ) ) {
- libxml_disable_entity_loader( $old_value );
- }
-
- if ( ! $success || isset( $dom->doctype ) ) {
- return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
- }
-
- $xml = simplexml_import_dom( $dom );
- unset( $dom );
-
- // halt if loading produces an error
- if ( ! $xml )
- return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
-
- $wxr_version = $xml->xpath('/rss/channel/wp:wxr_version');
- if ( ! $wxr_version )
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
-
- $wxr_version = (string) trim( $wxr_version[0] );
- // confirm that we are dealing with the correct file format
- if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) )
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
-
- $base_url = $xml->xpath('/rss/channel/wp:base_site_url');
- $base_url = (string) trim( $base_url[0] );
-
- $namespaces = $xml->getDocNamespaces();
- if ( ! isset( $namespaces['wp'] ) )
- $namespaces['wp'] = 'http://wordpress.org/export/1.1/';
- if ( ! isset( $namespaces['excerpt'] ) )
- $namespaces['excerpt'] = 'http://wordpress.org/export/1.1/excerpt/';
-
- // grab authors
- foreach ( $xml->xpath('/rss/channel/wp:author') as $author_arr ) {
- $a = $author_arr->children( $namespaces['wp'] );
- $login = (string) $a->author_login;
- $authors[$login] = array(
- 'author_id' => (int) $a->author_id,
- 'author_login' => $login,
- 'author_email' => (string) $a->author_email,
- 'author_display_name' => (string) $a->author_display_name,
- 'author_first_name' => (string) $a->author_first_name,
- 'author_last_name' => (string) $a->author_last_name
- );
- }
-
- // grab cats, tags and terms
- foreach ( $xml->xpath('/rss/channel/wp:category') as $term_arr ) {
- $t = $term_arr->children( $namespaces['wp'] );
- $category = array(
- 'term_id' => (int) $t->term_id,
- 'category_nicename' => (string) $t->category_nicename,
- 'category_parent' => (string) $t->category_parent,
- 'cat_name' => (string) $t->cat_name,
- 'category_description' => (string) $t->category_description
- );
-
- foreach ( $t->termmeta as $meta ) {
- $category['termmeta'][] = array(
- 'key' => (string) $meta->meta_key,
- 'value' => (string) $meta->meta_value
- );
- }
-
- $categories[] = $category;
- }
-
- foreach ( $xml->xpath('/rss/channel/wp:tag') as $term_arr ) {
- $t = $term_arr->children( $namespaces['wp'] );
- $tag = array(
- 'term_id' => (int) $t->term_id,
- 'tag_slug' => (string) $t->tag_slug,
- 'tag_name' => (string) $t->tag_name,
- 'tag_description' => (string) $t->tag_description
- );
-
- foreach ( $t->termmeta as $meta ) {
- $tag['termmeta'][] = array(
- 'key' => (string) $meta->meta_key,
- 'value' => (string) $meta->meta_value
- );
- }
-
- $tags[] = $tag;
- }
-
- foreach ( $xml->xpath('/rss/channel/wp:term') as $term_arr ) {
- $t = $term_arr->children( $namespaces['wp'] );
- $term = array(
- 'term_id' => (int) $t->term_id,
- 'term_taxonomy' => (string) $t->term_taxonomy,
- 'slug' => (string) $t->term_slug,
- 'term_parent' => (string) $t->term_parent,
- 'term_name' => (string) $t->term_name,
- 'term_description' => (string) $t->term_description
- );
-
- foreach ( $t->termmeta as $meta ) {
- $term['termmeta'][] = array(
- 'key' => (string) $meta->meta_key,
- 'value' => (string) $meta->meta_value
- );
- }
-
- $terms[] = $term;
- }
-
- // grab posts
- foreach ( $xml->channel->item as $item ) {
- $post = array(
- 'post_title' => (string) $item->title,
- 'guid' => (string) $item->guid,
- );
-
- $dc = $item->children( 'http://purl.org/dc/elements/1.1/' );
- $post['post_author'] = (string) $dc->creator;
-
- $content = $item->children( 'http://purl.org/rss/1.0/modules/content/' );
- $excerpt = $item->children( $namespaces['excerpt'] );
- $post['post_content'] = (string) $content->encoded;
- $post['post_excerpt'] = (string) $excerpt->encoded;
-
- $wp = $item->children( $namespaces['wp'] );
- $post['post_id'] = (int) $wp->post_id;
- $post['post_date'] = (string) $wp->post_date;
- $post['post_date_gmt'] = (string) $wp->post_date_gmt;
- $post['comment_status'] = (string) $wp->comment_status;
- $post['ping_status'] = (string) $wp->ping_status;
- $post['post_name'] = (string) $wp->post_name;
- $post['status'] = (string) $wp->status;
- $post['post_parent'] = (int) $wp->post_parent;
- $post['menu_order'] = (int) $wp->menu_order;
- $post['post_type'] = (string) $wp->post_type;
- $post['post_password'] = (string) $wp->post_password;
- $post['is_sticky'] = (int) $wp->is_sticky;
-
- if ( isset($wp->attachment_url) )
- $post['attachment_url'] = (string) $wp->attachment_url;
-
- foreach ( $item->category as $c ) {
- $att = $c->attributes();
- if ( isset( $att['nicename'] ) )
- $post['terms'][] = array(
- 'name' => (string) $c,
- 'slug' => (string) $att['nicename'],
- 'domain' => (string) $att['domain']
- );
- }
-
- foreach ( $wp->postmeta as $meta ) {
- $post['postmeta'][] = array(
- 'key' => (string) $meta->meta_key,
- 'value' => (string) $meta->meta_value
- );
- }
-
- foreach ( $wp->comment as $comment ) {
- $meta = array();
- if ( isset( $comment->commentmeta ) ) {
- foreach ( $comment->commentmeta as $m ) {
- $meta[] = array(
- 'key' => (string) $m->meta_key,
- 'value' => (string) $m->meta_value
- );
- }
- }
-
- $post['comments'][] = array(
- 'comment_id' => (int) $comment->comment_id,
- 'comment_author' => (string) $comment->comment_author,
- 'comment_author_email' => (string) $comment->comment_author_email,
- 'comment_author_IP' => (string) $comment->comment_author_IP,
- 'comment_author_url' => (string) $comment->comment_author_url,
- 'comment_date' => (string) $comment->comment_date,
- 'comment_date_gmt' => (string) $comment->comment_date_gmt,
- 'comment_content' => (string) $comment->comment_content,
- 'comment_approved' => (string) $comment->comment_approved,
- 'comment_type' => (string) $comment->comment_type,
- 'comment_parent' => (string) $comment->comment_parent,
- 'comment_user_id' => (int) $comment->comment_user_id,
- 'commentmeta' => $meta,
- );
- }
-
- $posts[] = $post;
- }
-
- return array(
- 'authors' => $authors,
- 'posts' => $posts,
- 'categories' => $categories,
- 'tags' => $tags,
- 'terms' => $terms,
- 'base_url' => $base_url,
- 'version' => $wxr_version
- );
- }
-}
-
-/**
- * WXR Parser that makes use of the XML Parser PHP extension.
- */
-class WXR_Parser_XML {
- var $wp_tags = array(
- 'wp:post_id', 'wp:post_date', 'wp:post_date_gmt', 'wp:comment_status', 'wp:ping_status', 'wp:attachment_url',
- 'wp:status', 'wp:post_name', 'wp:post_parent', 'wp:menu_order', 'wp:post_type', 'wp:post_password',
- 'wp:is_sticky', 'wp:term_id', 'wp:category_nicename', 'wp:category_parent', 'wp:cat_name', 'wp:category_description',
- 'wp:tag_slug', 'wp:tag_name', 'wp:tag_description', 'wp:term_taxonomy', 'wp:term_parent',
- 'wp:term_name', 'wp:term_description', 'wp:author_id', 'wp:author_login', 'wp:author_email', 'wp:author_display_name',
- 'wp:author_first_name', 'wp:author_last_name',
- );
- var $wp_sub_tags = array(
- 'wp:comment_id', 'wp:comment_author', 'wp:comment_author_email', 'wp:comment_author_url',
- 'wp:comment_author_IP', 'wp:comment_date', 'wp:comment_date_gmt', 'wp:comment_content',
- 'wp:comment_approved', 'wp:comment_type', 'wp:comment_parent', 'wp:comment_user_id',
- );
-
- function parse( $file ) {
- $this->wxr_version = $this->in_post = $this->cdata = $this->data = $this->sub_data = $this->in_tag = $this->in_sub_tag = false;
- $this->authors = $this->posts = $this->term = $this->category = $this->tag = array();
-
- $xml = xml_parser_create( 'UTF-8' );
- xml_parser_set_option( $xml, XML_OPTION_SKIP_WHITE, 1 );
- xml_parser_set_option( $xml, XML_OPTION_CASE_FOLDING, 0 );
- xml_set_object( $xml, $this );
- xml_set_character_data_handler( $xml, 'cdata' );
- xml_set_element_handler( $xml, 'tag_open', 'tag_close' );
-
- if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
- $current_line = xml_get_current_line_number( $xml );
- $current_column = xml_get_current_column_number( $xml );
- $error_code = xml_get_error_code( $xml );
- $error_string = xml_error_string( $error_code );
- return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', array( $current_line, $current_column, $error_string ) );
- }
- xml_parser_free( $xml );
-
- if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) )
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
-
- return array(
- 'authors' => $this->authors,
- 'posts' => $this->posts,
- 'categories' => $this->category,
- 'tags' => $this->tag,
- 'terms' => $this->term,
- 'base_url' => $this->base_url,
- 'version' => $this->wxr_version
- );
- }
-
- function tag_open( $parse, $tag, $attr ) {
- if ( in_array( $tag, $this->wp_tags ) ) {
- $this->in_tag = substr( $tag, 3 );
- return;
- }
-
- if ( in_array( $tag, $this->wp_sub_tags ) ) {
- $this->in_sub_tag = substr( $tag, 3 );
- return;
- }
-
- switch ( $tag ) {
- case 'category':
- if ( isset($attr['domain'], $attr['nicename']) ) {
- $this->sub_data['domain'] = $attr['domain'];
- $this->sub_data['slug'] = $attr['nicename'];
- }
- break;
- case 'item': $this->in_post = true;
- case 'title': if ( $this->in_post ) $this->in_tag = 'post_title'; break;
- case 'guid': $this->in_tag = 'guid'; break;
- case 'dc:creator': $this->in_tag = 'post_author'; break;
- case 'content:encoded': $this->in_tag = 'post_content'; break;
- case 'excerpt:encoded': $this->in_tag = 'post_excerpt'; break;
-
- case 'wp:term_slug': $this->in_tag = 'slug'; break;
- case 'wp:meta_key': $this->in_sub_tag = 'key'; break;
- case 'wp:meta_value': $this->in_sub_tag = 'value'; break;
- }
- }
-
- function cdata( $parser, $cdata ) {
- if ( ! trim( $cdata ) )
- return;
-
- if ( false !== $this->in_tag || false !== $this->in_sub_tag ) {
- $this->cdata .= $cdata;
- } else {
- $this->cdata .= trim( $cdata );
- }
- }
-
- function tag_close( $parser, $tag ) {
- switch ( $tag ) {
- case 'wp:comment':
- unset( $this->sub_data['key'], $this->sub_data['value'] ); // remove meta sub_data
- if ( ! empty( $this->sub_data ) )
- $this->data['comments'][] = $this->sub_data;
- $this->sub_data = false;
- break;
- case 'wp:commentmeta':
- $this->sub_data['commentmeta'][] = array(
- 'key' => $this->sub_data['key'],
- 'value' => $this->sub_data['value']
- );
- break;
- case 'category':
- if ( ! empty( $this->sub_data ) ) {
- $this->sub_data['name'] = $this->cdata;
- $this->data['terms'][] = $this->sub_data;
- }
- $this->sub_data = false;
- break;
- case 'wp:postmeta':
- if ( ! empty( $this->sub_data ) )
- $this->data['postmeta'][] = $this->sub_data;
- $this->sub_data = false;
- break;
- case 'item':
- $this->posts[] = $this->data;
- $this->data = false;
- break;
- case 'wp:category':
- case 'wp:tag':
- case 'wp:term':
- $n = substr( $tag, 3 );
- array_push( $this->$n, $this->data );
- $this->data = false;
- break;
- case 'wp:author':
- if ( ! empty($this->data['author_login']) )
- $this->authors[$this->data['author_login']] = $this->data;
- $this->data = false;
- break;
- case 'wp:base_site_url':
- $this->base_url = $this->cdata;
- break;
- case 'wp:wxr_version':
- $this->wxr_version = $this->cdata;
- break;
-
- default:
- if ( $this->in_sub_tag ) {
- $this->sub_data[$this->in_sub_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
- $this->in_sub_tag = false;
- } else if ( $this->in_tag ) {
- $this->data[$this->in_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
- $this->in_tag = false;
- }
- }
-
- $this->cdata = false;
- }
-}
-
-/**
- * WXR Parser that uses regular expressions. Fallback for installs without an XML parser.
- */
-class WXR_Parser_Regex {
- var $authors = array();
- var $posts = array();
- var $categories = array();
- var $tags = array();
- var $terms = array();
- var $base_url = '';
-
- function __construct() {
- $this->has_gzip = is_callable( 'gzopen' );
- }
-
- function parse( $file ) {
- $wxr_version = $in_multiline = false;
-
- $multiline_content = '';
-
- $multiline_tags = array(
- 'item' => array( 'posts', array( $this, 'process_post' ) ),
- 'wp:category' => array( 'categories', array( $this, 'process_category' ) ),
- 'wp:tag' => array( 'tags', array( $this, 'process_tag' ) ),
- 'wp:term' => array( 'terms', array( $this, 'process_term' ) ),
- );
-
- $fp = $this->fopen( $file, 'r' );
- if ( $fp ) {
- while ( ! $this->feof( $fp ) ) {
- $importline = rtrim( $this->fgets( $fp ) );
-
- if ( ! $wxr_version && preg_match( '|<wp:wxr_version>(\d+\.\d+)</wp:wxr_version>|', $importline, $version ) )
- $wxr_version = $version[1];
-
- if ( false !== strpos( $importline, '<wp:base_site_url>' ) ) {
- preg_match( '|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url );
- $this->base_url = $url[1];
- continue;
- }
-
- if ( false !== strpos( $importline, '<wp:author>' ) ) {
- preg_match( '|<wp:author>(.*?)</wp:author>|is', $importline, $author );
- $a = $this->process_author( $author[1] );
- $this->authors[$a['author_login']] = $a;
- continue;
- }
-
- foreach ( $multiline_tags as $tag => $handler ) {
- // Handle multi-line tags on a singular line
- if ( preg_match( '|<' . $tag . '>(.*?)</' . $tag . '>|is', $importline, $matches ) ) {
- $this->{$handler[0]}[] = call_user_func( $handler[1], $matches[1] );
-
- } elseif ( false !== ( $pos = strpos( $importline, "<$tag>" ) ) ) {
- // Take note of any content after the opening tag
- $multiline_content = trim( substr( $importline, $pos + strlen( $tag ) + 2 ) );
-
- // We don't want to have this line added to `$is_multiline` below.
- $importline = '';
- $in_multiline = $tag;
-
- } elseif ( false !== ( $pos = strpos( $importline, "</$tag>" ) ) ) {
- $in_multiline = false;
- $multiline_content .= trim( substr( $importline, 0, $pos ) );
-
- $this->{$handler[0]}[] = call_user_func( $handler[1], $multiline_content );
- }
- }
-
- if ( $in_multiline && $importline ) {
- $multiline_content .= $importline . "\n";
- }
- }
-
- $this->fclose($fp);
- }
-
- if ( ! $wxr_version )
- return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
-
- return array(
- 'authors' => $this->authors,
- 'posts' => $this->posts,
- 'categories' => $this->categories,
- 'tags' => $this->tags,
- 'terms' => $this->terms,
- 'base_url' => $this->base_url,
- 'version' => $wxr_version
- );
- }
-
- function get_tag( $string, $tag ) {
- preg_match( "|<$tag.*?>(.*?)</$tag>|is", $string, $return );
- if ( isset( $return[1] ) ) {
- if ( substr( $return[1], 0, 9 ) == '<![CDATA[' ) {
- if ( strpos( $return[1], ']]]]><![CDATA[>' ) !== false ) {
- preg_match_all( '|<!\[CDATA\[(.*?)\]\]>|s', $return[1], $matches );
- $return = '';
- foreach( $matches[1] as $match )
- $return .= $match;
- } else {
- $return = preg_replace( '|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1] );
- }
- } else {
- $return = $return[1];
- }
- } else {
- $return = '';
- }
- return $return;
- }
-
- function process_category( $c ) {
- return array(
- 'term_id' => $this->get_tag( $c, 'wp:term_id' ),
- 'cat_name' => $this->get_tag( $c, 'wp:cat_name' ),
- 'category_nicename' => $this->get_tag( $c, 'wp:category_nicename' ),
- 'category_parent' => $this->get_tag( $c, 'wp:category_parent' ),
- 'category_description' => $this->get_tag( $c, 'wp:category_description' ),
- );
- }
-
- function process_tag( $t ) {
- return array(
- 'term_id' => $this->get_tag( $t, 'wp:term_id' ),
- 'tag_name' => $this->get_tag( $t, 'wp:tag_name' ),
- 'tag_slug' => $this->get_tag( $t, 'wp:tag_slug' ),
- 'tag_description' => $this->get_tag( $t, 'wp:tag_description' ),
- );
- }
-
- function process_term( $t ) {
- return array(
- 'term_id' => $this->get_tag( $t, 'wp:term_id' ),
- 'term_taxonomy' => $this->get_tag( $t, 'wp:term_taxonomy' ),
- 'slug' => $this->get_tag( $t, 'wp:term_slug' ),
- 'term_parent' => $this->get_tag( $t, 'wp:term_parent' ),
- 'term_name' => $this->get_tag( $t, 'wp:term_name' ),
- 'term_description' => $this->get_tag( $t, 'wp:term_description' ),
- );
- }
-
- function process_author( $a ) {
- return array(
- 'author_id' => $this->get_tag( $a, 'wp:author_id' ),
- 'author_login' => $this->get_tag( $a, 'wp:author_login' ),
- 'author_email' => $this->get_tag( $a, 'wp:author_email' ),
- 'author_display_name' => $this->get_tag( $a, 'wp:author_display_name' ),
- 'author_first_name' => $this->get_tag( $a, 'wp:author_first_name' ),
- 'author_last_name' => $this->get_tag( $a, 'wp:author_last_name' ),
- );
- }
-
- function process_post( $post ) {
- $post_id = $this->get_tag( $post, 'wp:post_id' );
- $post_title = $this->get_tag( $post, 'title' );
- $post_date = $this->get_tag( $post, 'wp:post_date' );
- $post_date_gmt = $this->get_tag( $post, 'wp:post_date_gmt' );
- $comment_status = $this->get_tag( $post, 'wp:comment_status' );
- $ping_status = $this->get_tag( $post, 'wp:ping_status' );
- $status = $this->get_tag( $post, 'wp:status' );
- $post_name = $this->get_tag( $post, 'wp:post_name' );
- $post_parent = $this->get_tag( $post, 'wp:post_parent' );
- $menu_order = $this->get_tag( $post, 'wp:menu_order' );
- $post_type = $this->get_tag( $post, 'wp:post_type' );
- $post_password = $this->get_tag( $post, 'wp:post_password' );
- $is_sticky = $this->get_tag( $post, 'wp:is_sticky' );
- $guid = $this->get_tag( $post, 'guid' );
- $post_author = $this->get_tag( $post, 'dc:creator' );
-
- $post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
- $post_excerpt = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_excerpt );
- $post_excerpt = str_replace( '<br>', '<br />', $post_excerpt );
- $post_excerpt = str_replace( '<hr>', '<hr />', $post_excerpt );
-
- $post_content = $this->get_tag( $post, 'content:encoded' );
- $post_content = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_content );
- $post_content = str_replace( '<br>', '<br />', $post_content );
- $post_content = str_replace( '<hr>', '<hr />', $post_content );
-
- $postdata = compact( 'post_id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt',
- 'post_title', 'status', 'post_name', 'comment_status', 'ping_status', 'guid', 'post_parent',
- 'menu_order', 'post_type', 'post_password', 'is_sticky'
- );
-
- $attachment_url = $this->get_tag( $post, 'wp:attachment_url' );
- if ( $attachment_url )
- $postdata['attachment_url'] = $attachment_url;
-
- preg_match_all( '|<category domain="([^"]+?)" nicename="([^"]+?)">(.+?)</category>|is', $post, $terms, PREG_SET_ORDER );
- foreach ( $terms as $t ) {
- $post_terms[] = array(
- 'slug' => $t[2],
- 'domain' => $t[1],
- 'name' => str_replace( array( '<![CDATA[', ']]>' ), '', $t[3] ),
- );
- }
- if ( ! empty( $post_terms ) ) $postdata['terms'] = $post_terms;
-
- preg_match_all( '|<wp:comment>(.+?)</wp:comment>|is', $post, $comments );
- $comments = $comments[1];
- if ( $comments ) {
- foreach ( $comments as $comment ) {
- preg_match_all( '|<wp:commentmeta>(.+?)</wp:commentmeta>|is', $comment, $commentmeta );
- $commentmeta = $commentmeta[1];
- $c_meta = array();
- foreach ( $commentmeta as $m ) {
- $c_meta[] = array(
- 'key' => $this->get_tag( $m, 'wp:meta_key' ),
- 'value' => $this->get_tag( $m, 'wp:meta_value' ),
- );
- }
-
- $post_comments[] = array(
- 'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
- 'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
- 'comment_author_email' => $this->get_tag( $comment, 'wp:comment_author_email' ),
- 'comment_author_IP' => $this->get_tag( $comment, 'wp:comment_author_IP' ),
- 'comment_author_url' => $this->get_tag( $comment, 'wp:comment_author_url' ),
- 'comment_date' => $this->get_tag( $comment, 'wp:comment_date' ),
- 'comment_date_gmt' => $this->get_tag( $comment, 'wp:comment_date_gmt' ),
- 'comment_content' => $this->get_tag( $comment, 'wp:comment_content' ),
- 'comment_approved' => $this->get_tag( $comment, 'wp:comment_approved' ),
- 'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
- 'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
- 'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
- 'commentmeta' => $c_meta,
- );
- }
- }
- if ( ! empty( $post_comments ) ) $postdata['comments'] = $post_comments;
-
- preg_match_all( '|<wp:postmeta>(.+?)</wp:postmeta>|is', $post, $postmeta );
- $postmeta = $postmeta[1];
- if ( $postmeta ) {
- foreach ( $postmeta as $p ) {
- $post_postmeta[] = array(
- 'key' => $this->get_tag( $p, 'wp:meta_key' ),
- 'value' => $this->get_tag( $p, 'wp:meta_value' ),
- );
- }
- }
- if ( ! empty( $post_postmeta ) ) $postdata['postmeta'] = $post_postmeta;
-
- return $postdata;
- }
-
- function _normalize_tag( $matches ) {
- return '<' . strtolower( $matches[1] );
- }
+_deprecated_file( basename( __FILE__ ), '0.7.0' );
- function fopen( $filename, $mode = 'r' ) {
- if ( $this->has_gzip )
- return gzopen( $filename, $mode );
- return fopen( $filename, $mode );
- }
+/** WXR_Parser class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser.php';
- function feof( $fp ) {
- if ( $this->has_gzip )
- return gzeof( $fp );
- return feof( $fp );
- }
+/** WXR_Parser_SimpleXML class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-simplexml.php';
- function fgets( $fp, $len = 8192 ) {
- if ( $this->has_gzip )
- return gzgets( $fp, $len );
- return fgets( $fp, $len );
- }
+/** WXR_Parser_XML class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-xml.php';
- function fclose( $fp ) {
- if ( $this->has_gzip )
- return gzclose( $fp );
- return fclose( $fp );
- }
-}
+/** WXR_Parser_Regex class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-regex.php';
diff --git a/plugins/wordpress-importer/parsers/class-wxr-parser-regex.php b/plugins/wordpress-importer/parsers/class-wxr-parser-regex.php
new file mode 100644
index 00000000..a68d2874
--- /dev/null
+++ b/plugins/wordpress-importer/parsers/class-wxr-parser-regex.php
@@ -0,0 +1,318 @@
+<?php
+/**
+ * WordPress eXtended RSS file parser implementations
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WXR Parser that uses regular expressions. Fallback for installs without an XML parser.
+ */
+class WXR_Parser_Regex {
+ var $authors = array();
+ var $posts = array();
+ var $categories = array();
+ var $tags = array();
+ var $terms = array();
+ var $base_url = '';
+ var $base_blog_url = '';
+
+ function __construct() {
+ $this->has_gzip = is_callable( 'gzopen' );
+ }
+
+ function parse( $file ) {
+ $wxr_version = $in_multiline = false;
+
+ $multiline_content = '';
+
+ $multiline_tags = array(
+ 'item' => array( 'posts', array( $this, 'process_post' ) ),
+ 'wp:category' => array( 'categories', array( $this, 'process_category' ) ),
+ 'wp:tag' => array( 'tags', array( $this, 'process_tag' ) ),
+ 'wp:term' => array( 'terms', array( $this, 'process_term' ) ),
+ );
+
+ $fp = $this->fopen( $file, 'r' );
+ if ( $fp ) {
+ while ( ! $this->feof( $fp ) ) {
+ $importline = rtrim( $this->fgets( $fp ) );
+
+ if ( ! $wxr_version && preg_match( '|<wp:wxr_version>(\d+\.\d+)</wp:wxr_version>|', $importline, $version ) )
+ $wxr_version = $version[1];
+
+ if ( false !== strpos( $importline, '<wp:base_site_url>' ) ) {
+ preg_match( '|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url );
+ $this->base_url = $url[1];
+ continue;
+ }
+
+ if ( false !== strpos( $importline, '<wp:base_blog_url>' ) ) {
+ preg_match( '|<wp:base_blog_url>(.*?)</wp:base_blog_url>|is', $importline, $blog_url );
+ $this->base_blog_url = $blog_url[1];
+ continue;
+ } else {
+ $this->base_blog_url = $this->base_url;
+ }
+
+ if ( false !== strpos( $importline, '<wp:author>' ) ) {
+ preg_match( '|<wp:author>(.*?)</wp:author>|is', $importline, $author );
+ $a = $this->process_author( $author[1] );
+ $this->authors[$a['author_login']] = $a;
+ continue;
+ }
+
+ foreach ( $multiline_tags as $tag => $handler ) {
+ // Handle multi-line tags on a singular line
+ if ( preg_match( '|<' . $tag . '>(.*?)</' . $tag . '>|is', $importline, $matches ) ) {
+ $this->{$handler[0]}[] = call_user_func( $handler[1], $matches[1] );
+
+ } elseif ( false !== ( $pos = strpos( $importline, "<$tag>" ) ) ) {
+ // Take note of any content after the opening tag
+ $multiline_content = trim( substr( $importline, $pos + strlen( $tag ) + 2 ) );
+
+ // We don't want to have this line added to `$is_multiline` below.
+ $importline = '';
+ $in_multiline = $tag;
+
+ } elseif ( false !== ( $pos = strpos( $importline, "</$tag>" ) ) ) {
+ $in_multiline = false;
+ $multiline_content .= trim( substr( $importline, 0, $pos ) );
+
+ $this->{$handler[0]}[] = call_user_func( $handler[1], $multiline_content );
+ }
+ }
+
+ if ( $in_multiline && $importline ) {
+ $multiline_content .= $importline . "\n";
+ }
+ }
+
+ $this->fclose($fp);
+ }
+
+ if ( ! $wxr_version )
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+ return array(
+ 'authors' => $this->authors,
+ 'posts' => $this->posts,
+ 'categories' => $this->categories,
+ 'tags' => $this->tags,
+ 'terms' => $this->terms,
+ 'base_url' => $this->base_url,
+ 'base_blog_url' => $this->base_blog_url,
+ 'version' => $wxr_version
+ );
+ }
+
+ function get_tag( $string, $tag ) {
+ preg_match( "|<$tag.*?>(.*?)</$tag>|is", $string, $return );
+ if ( isset( $return[1] ) ) {
+ if ( substr( $return[1], 0, 9 ) == '<![CDATA[' ) {
+ if ( strpos( $return[1], ']]]]><![CDATA[>' ) !== false ) {
+ preg_match_all( '|<!\[CDATA\[(.*?)\]\]>|s', $return[1], $matches );
+ $return = '';
+ foreach( $matches[1] as $match )
+ $return .= $match;
+ } else {
+ $return = preg_replace( '|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1] );
+ }
+ } else {
+ $return = $return[1];
+ }
+ } else {
+ $return = '';
+ }
+ return $return;
+ }
+
+ function process_category( $c ) {
+ $term = array(
+ 'term_id' => $this->get_tag( $c, 'wp:term_id' ),
+ 'cat_name' => $this->get_tag( $c, 'wp:cat_name' ),
+ 'category_nicename' => $this->get_tag( $c, 'wp:category_nicename' ),
+ 'category_parent' => $this->get_tag( $c, 'wp:category_parent' ),
+ 'category_description' => $this->get_tag( $c, 'wp:category_description' ),
+ );
+
+ $term_meta = $this->process_meta( $c, 'wp:termmeta' );
+ if ( ! empty( $term_meta ) ) {
+ $term['termmeta'] = $term_meta;
+ }
+
+ return $term;
+ }
+
+ function process_tag( $t ) {
+ $term = array(
+ 'term_id' => $this->get_tag( $t, 'wp:term_id' ),
+ 'tag_name' => $this->get_tag( $t, 'wp:tag_name' ),
+ 'tag_slug' => $this->get_tag( $t, 'wp:tag_slug' ),
+ 'tag_description' => $this->get_tag( $t, 'wp:tag_description' ),
+ );
+
+ $term_meta = $this->process_meta( $t, 'wp:termmeta' );
+ if ( ! empty( $term_meta ) ) {
+ $term['termmeta'] = $term_meta;
+ }
+
+ return $term;
+ }
+
+ function process_term( $t ) {
+ $term = array(
+ 'term_id' => $this->get_tag( $t, 'wp:term_id' ),
+ 'term_taxonomy' => $this->get_tag( $t, 'wp:term_taxonomy' ),
+ 'slug' => $this->get_tag( $t, 'wp:term_slug' ),
+ 'term_parent' => $this->get_tag( $t, 'wp:term_parent' ),
+ 'term_name' => $this->get_tag( $t, 'wp:term_name' ),
+ 'term_description' => $this->get_tag( $t, 'wp:term_description' ),
+ );
+
+ $term_meta = $this->process_meta( $t, 'wp:termmeta' );
+ if ( ! empty( $term_meta ) ) {
+ $term['termmeta'] = $term_meta;
+ }
+
+ return $term;
+ }
+
+ function process_meta( $string, $tag ) {
+ $parsed_meta = array();
+
+ preg_match_all( "|<$tag>(.+?)</$tag>|is", $string, $meta );
+
+ if ( ! isset( $meta[1] ) ) {
+ return $parsed_meta;
+ }
+
+ foreach ( $meta[1] as $m ) {
+ $parsed_meta[] = array(
+ 'key' => $this->get_tag( $m, 'wp:meta_key' ),
+ 'value' => $this->get_tag( $m, 'wp:meta_value' ),
+ );
+ }
+
+ return $parsed_meta;
+ }
+
+ function process_author( $a ) {
+ return array(
+ 'author_id' => $this->get_tag( $a, 'wp:author_id' ),
+ 'author_login' => $this->get_tag( $a, 'wp:author_login' ),
+ 'author_email' => $this->get_tag( $a, 'wp:author_email' ),
+ 'author_display_name' => $this->get_tag( $a, 'wp:author_display_name' ),
+ 'author_first_name' => $this->get_tag( $a, 'wp:author_first_name' ),
+ 'author_last_name' => $this->get_tag( $a, 'wp:author_last_name' ),
+ );
+ }
+
+ function process_post( $post ) {
+ $post_id = $this->get_tag( $post, 'wp:post_id' );
+ $post_title = $this->get_tag( $post, 'title' );
+ $post_date = $this->get_tag( $post, 'wp:post_date' );
+ $post_date_gmt = $this->get_tag( $post, 'wp:post_date_gmt' );
+ $comment_status = $this->get_tag( $post, 'wp:comment_status' );
+ $ping_status = $this->get_tag( $post, 'wp:ping_status' );
+ $status = $this->get_tag( $post, 'wp:status' );
+ $post_name = $this->get_tag( $post, 'wp:post_name' );
+ $post_parent = $this->get_tag( $post, 'wp:post_parent' );
+ $menu_order = $this->get_tag( $post, 'wp:menu_order' );
+ $post_type = $this->get_tag( $post, 'wp:post_type' );
+ $post_password = $this->get_tag( $post, 'wp:post_password' );
+ $is_sticky = $this->get_tag( $post, 'wp:is_sticky' );
+ $guid = $this->get_tag( $post, 'guid' );
+ $post_author = $this->get_tag( $post, 'dc:creator' );
+
+ $post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
+ $post_excerpt = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_excerpt );
+ $post_excerpt = str_replace( '<br>', '<br />', $post_excerpt );
+ $post_excerpt = str_replace( '<hr>', '<hr />', $post_excerpt );
+
+ $post_content = $this->get_tag( $post, 'content:encoded' );
+ $post_content = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_content );
+ $post_content = str_replace( '<br>', '<br />', $post_content );
+ $post_content = str_replace( '<hr>', '<hr />', $post_content );
+
+ $postdata = compact( 'post_id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt',
+ 'post_title', 'status', 'post_name', 'comment_status', 'ping_status', 'guid', 'post_parent',
+ 'menu_order', 'post_type', 'post_password', 'is_sticky'
+ );
+
+ $attachment_url = $this->get_tag( $post, 'wp:attachment_url' );
+ if ( $attachment_url )
+ $postdata['attachment_url'] = $attachment_url;
+
+ preg_match_all( '|<category domain="([^"]+?)" nicename="([^"]+?)">(.+?)</category>|is', $post, $terms, PREG_SET_ORDER );
+ foreach ( $terms as $t ) {
+ $post_terms[] = array(
+ 'slug' => $t[2],
+ 'domain' => $t[1],
+ 'name' => str_replace( array( '<![CDATA[', ']]>' ), '', $t[3] ),
+ );
+ }
+ if ( ! empty( $post_terms ) ) $postdata['terms'] = $post_terms;
+
+ preg_match_all( '|<wp:comment>(.+?)</wp:comment>|is', $post, $comments );
+ $comments = $comments[1];
+ if ( $comments ) {
+ foreach ( $comments as $comment ) {
+ $post_comments[] = array(
+ 'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
+ 'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
+ 'comment_author_email' => $this->get_tag( $comment, 'wp:comment_author_email' ),
+ 'comment_author_IP' => $this->get_tag( $comment, 'wp:comment_author_IP' ),
+ 'comment_author_url' => $this->get_tag( $comment, 'wp:comment_author_url' ),
+ 'comment_date' => $this->get_tag( $comment, 'wp:comment_date' ),
+ 'comment_date_gmt' => $this->get_tag( $comment, 'wp:comment_date_gmt' ),
+ 'comment_content' => $this->get_tag( $comment, 'wp:comment_content' ),
+ 'comment_approved' => $this->get_tag( $comment, 'wp:comment_approved' ),
+ 'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
+ 'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
+ 'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
+ 'commentmeta' => $this->process_meta( $comment, 'wp:commentmeta' ),
+ );
+ }
+ }
+ if ( ! empty( $post_comments ) ) {
+ $postdata['comments'] = $post_comments;
+ }
+
+ $post_meta = $this->process_meta( $post, 'wp:postmeta' );
+ if ( ! empty( $post_meta ) ) {
+ $postdata['postmeta'] = $post_meta;
+ }
+
+ return $postdata;
+ }
+
+ function _normalize_tag( $matches ) {
+ return '<' . strtolower( $matches[1] );
+ }
+
+ function fopen( $filename, $mode = 'r' ) {
+ if ( $this->has_gzip )
+ return gzopen( $filename, $mode );
+ return fopen( $filename, $mode );
+ }
+
+ function feof( $fp ) {
+ if ( $this->has_gzip )
+ return gzeof( $fp );
+ return feof( $fp );
+ }
+
+ function fgets( $fp, $len = 8192 ) {
+ if ( $this->has_gzip )
+ return gzgets( $fp, $len );
+ return fgets( $fp, $len );
+ }
+
+ function fclose( $fp ) {
+ if ( $this->has_gzip )
+ return gzclose( $fp );
+ return fclose( $fp );
+ }
+}
diff --git a/plugins/wordpress-importer/parsers/class-wxr-parser-simplexml.php b/plugins/wordpress-importer/parsers/class-wxr-parser-simplexml.php
new file mode 100644
index 00000000..0a57ef5c
--- /dev/null
+++ b/plugins/wordpress-importer/parsers/class-wxr-parser-simplexml.php
@@ -0,0 +1,231 @@
+<?php
+/**
+ * WordPress eXtended RSS file parser implementations
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WXR Parser that makes use of the SimpleXML PHP extension.
+ */
+class WXR_Parser_SimpleXML {
+ function parse( $file ) {
+ $authors = $posts = $categories = $tags = $terms = array();
+
+ $internal_errors = libxml_use_internal_errors(true);
+
+ $dom = new DOMDocument;
+ $old_value = null;
+ if ( function_exists( 'libxml_disable_entity_loader' ) ) {
+ $old_value = libxml_disable_entity_loader( true );
+ }
+ $success = $dom->loadXML( file_get_contents( $file ) );
+ if ( ! is_null( $old_value ) ) {
+ libxml_disable_entity_loader( $old_value );
+ }
+
+ if ( ! $success || isset( $dom->doctype ) ) {
+ return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
+ }
+
+ $xml = simplexml_import_dom( $dom );
+ unset( $dom );
+
+ // halt if loading produces an error
+ if ( ! $xml )
+ return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
+
+ $wxr_version = $xml->xpath('/rss/channel/wp:wxr_version');
+ if ( ! $wxr_version )
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+ $wxr_version = (string) trim( $wxr_version[0] );
+ // confirm that we are dealing with the correct file format
+ if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) )
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+ $base_url = $xml->xpath('/rss/channel/wp:base_site_url');
+ $base_url = (string) trim( isset( $base_url[0] ) ? $base_url[0] : '' );
+
+
+ $base_blog_url = $xml->xpath('/rss/channel/wp:base_blog_url');
+ if ( $base_blog_url ) {
+ $base_blog_url = (string) trim( $base_blog_url[0] );
+ } else {
+ $base_blog_url = $base_url;
+ }
+
+ $namespaces = $xml->getDocNamespaces();
+ if ( ! isset( $namespaces['wp'] ) )
+ $namespaces['wp'] = 'http://wordpress.org/export/1.1/';
+ if ( ! isset( $namespaces['excerpt'] ) )
+ $namespaces['excerpt'] = 'http://wordpress.org/export/1.1/excerpt/';
+
+ // grab authors
+ foreach ( $xml->xpath('/rss/channel/wp:author') as $author_arr ) {
+ $a = $author_arr->children( $namespaces['wp'] );
+ $login = (string) $a->author_login;
+ $authors[$login] = array(
+ 'author_id' => (int) $a->author_id,
+ 'author_login' => $login,
+ 'author_email' => (string) $a->author_email,
+ 'author_display_name' => (string) $a->author_display_name,
+ 'author_first_name' => (string) $a->author_first_name,
+ 'author_last_name' => (string) $a->author_last_name
+ );
+ }
+
+ // grab cats, tags and terms
+ foreach ( $xml->xpath('/rss/channel/wp:category') as $term_arr ) {
+ $t = $term_arr->children( $namespaces['wp'] );
+ $category = array(
+ 'term_id' => (int) $t->term_id,
+ 'category_nicename' => (string) $t->category_nicename,
+ 'category_parent' => (string) $t->category_parent,
+ 'cat_name' => (string) $t->cat_name,
+ 'category_description' => (string) $t->category_description
+ );
+
+ foreach ( $t->termmeta as $meta ) {
+ $category['termmeta'][] = array(
+ 'key' => (string) $meta->meta_key,
+ 'value' => (string) $meta->meta_value
+ );
+ }
+
+ $categories[] = $category;
+ }
+
+ foreach ( $xml->xpath('/rss/channel/wp:tag') as $term_arr ) {
+ $t = $term_arr->children( $namespaces['wp'] );
+ $tag = array(
+ 'term_id' => (int) $t->term_id,
+ 'tag_slug' => (string) $t->tag_slug,
+ 'tag_name' => (string) $t->tag_name,
+ 'tag_description' => (string) $t->tag_description
+ );
+
+ foreach ( $t->termmeta as $meta ) {
+ $tag['termmeta'][] = array(
+ 'key' => (string) $meta->meta_key,
+ 'value' => (string) $meta->meta_value
+ );
+ }
+
+ $tags[] = $tag;
+ }
+
+ foreach ( $xml->xpath('/rss/channel/wp:term') as $term_arr ) {
+ $t = $term_arr->children( $namespaces['wp'] );
+ $term = array(
+ 'term_id' => (int) $t->term_id,
+ 'term_taxonomy' => (string) $t->term_taxonomy,
+ 'slug' => (string) $t->term_slug,
+ 'term_parent' => (string) $t->term_parent,
+ 'term_name' => (string) $t->term_name,
+ 'term_description' => (string) $t->term_description
+ );
+
+ foreach ( $t->termmeta as $meta ) {
+ $term['termmeta'][] = array(
+ 'key' => (string) $meta->meta_key,
+ 'value' => (string) $meta->meta_value
+ );
+ }
+
+ $terms[] = $term;
+ }
+
+ // grab posts
+ foreach ( $xml->channel->item as $item ) {
+ $post = array(
+ 'post_title' => (string) $item->title,
+ 'guid' => (string) $item->guid,
+ );
+
+ $dc = $item->children( 'http://purl.org/dc/elements/1.1/' );
+ $post['post_author'] = (string) $dc->creator;
+
+ $content = $item->children( 'http://purl.org/rss/1.0/modules/content/' );
+ $excerpt = $item->children( $namespaces['excerpt'] );
+ $post['post_content'] = (string) $content->encoded;
+ $post['post_excerpt'] = (string) $excerpt->encoded;
+
+ $wp = $item->children( $namespaces['wp'] );
+ $post['post_id'] = (int) $wp->post_id;
+ $post['post_date'] = (string) $wp->post_date;
+ $post['post_date_gmt'] = (string) $wp->post_date_gmt;
+ $post['comment_status'] = (string) $wp->comment_status;
+ $post['ping_status'] = (string) $wp->ping_status;
+ $post['post_name'] = (string) $wp->post_name;
+ $post['status'] = (string) $wp->status;
+ $post['post_parent'] = (int) $wp->post_parent;
+ $post['menu_order'] = (int) $wp->menu_order;
+ $post['post_type'] = (string) $wp->post_type;
+ $post['post_password'] = (string) $wp->post_password;
+ $post['is_sticky'] = (int) $wp->is_sticky;
+
+ if ( isset($wp->attachment_url) )
+ $post['attachment_url'] = (string) $wp->attachment_url;
+
+ foreach ( $item->category as $c ) {
+ $att = $c->attributes();
+ if ( isset( $att['nicename'] ) )
+ $post['terms'][] = array(
+ 'name' => (string) $c,
+ 'slug' => (string) $att['nicename'],
+ 'domain' => (string) $att['domain']
+ );
+ }
+
+ foreach ( $wp->postmeta as $meta ) {
+ $post['postmeta'][] = array(
+ 'key' => (string) $meta->meta_key,
+ 'value' => (string) $meta->meta_value
+ );
+ }
+
+ foreach ( $wp->comment as $comment ) {
+ $meta = array();
+ if ( isset( $comment->commentmeta ) ) {
+ foreach ( $comment->commentmeta as $m ) {
+ $meta[] = array(
+ 'key' => (string) $m->meta_key,
+ 'value' => (string) $m->meta_value
+ );
+ }
+ }
+
+ $post['comments'][] = array(
+ 'comment_id' => (int) $comment->comment_id,
+ 'comment_author' => (string) $comment->comment_author,
+ 'comment_author_email' => (string) $comment->comment_author_email,
+ 'comment_author_IP' => (string) $comment->comment_author_IP,
+ 'comment_author_url' => (string) $comment->comment_author_url,
+ 'comment_date' => (string) $comment->comment_date,
+ 'comment_date_gmt' => (string) $comment->comment_date_gmt,
+ 'comment_content' => (string) $comment->comment_content,
+ 'comment_approved' => (string) $comment->comment_approved,
+ 'comment_type' => (string) $comment->comment_type,
+ 'comment_parent' => (string) $comment->comment_parent,
+ 'comment_user_id' => (int) $comment->comment_user_id,
+ 'commentmeta' => $meta,
+ );
+ }
+
+ $posts[] = $post;
+ }
+
+ return array(
+ 'authors' => $authors,
+ 'posts' => $posts,
+ 'categories' => $categories,
+ 'tags' => $tags,
+ 'terms' => $terms,
+ 'base_url' => $base_url,
+ 'base_blog_url' => $base_blog_url,
+ 'version' => $wxr_version
+ );
+ }
+}
diff --git a/plugins/wordpress-importer/parsers/class-wxr-parser-xml.php b/plugins/wordpress-importer/parsers/class-wxr-parser-xml.php
new file mode 100644
index 00000000..981a5a7f
--- /dev/null
+++ b/plugins/wordpress-importer/parsers/class-wxr-parser-xml.php
@@ -0,0 +1,177 @@
+<?php
+/**
+ * WordPress eXtended RSS file parser implementations
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WXR Parser that makes use of the XML Parser PHP extension.
+ */
+class WXR_Parser_XML {
+ var $wp_tags = array(
+ 'wp:post_id', 'wp:post_date', 'wp:post_date_gmt', 'wp:comment_status', 'wp:ping_status', 'wp:attachment_url',
+ 'wp:status', 'wp:post_name', 'wp:post_parent', 'wp:menu_order', 'wp:post_type', 'wp:post_password',
+ 'wp:is_sticky', 'wp:term_id', 'wp:category_nicename', 'wp:category_parent', 'wp:cat_name', 'wp:category_description',
+ 'wp:tag_slug', 'wp:tag_name', 'wp:tag_description', 'wp:term_taxonomy', 'wp:term_parent',
+ 'wp:term_name', 'wp:term_description', 'wp:author_id', 'wp:author_login', 'wp:author_email', 'wp:author_display_name',
+ 'wp:author_first_name', 'wp:author_last_name',
+ );
+ var $wp_sub_tags = array(
+ 'wp:comment_id', 'wp:comment_author', 'wp:comment_author_email', 'wp:comment_author_url',
+ 'wp:comment_author_IP', 'wp:comment_date', 'wp:comment_date_gmt', 'wp:comment_content',
+ 'wp:comment_approved', 'wp:comment_type', 'wp:comment_parent', 'wp:comment_user_id',
+ );
+
+ function parse( $file ) {
+ $this->wxr_version = $this->in_post = $this->cdata = $this->data = $this->sub_data = $this->in_tag = $this->in_sub_tag = false;
+ $this->authors = $this->posts = $this->term = $this->category = $this->tag = array();
+
+ $xml = xml_parser_create( 'UTF-8' );
+ xml_parser_set_option( $xml, XML_OPTION_SKIP_WHITE, 1 );
+ xml_parser_set_option( $xml, XML_OPTION_CASE_FOLDING, 0 );
+ xml_set_object( $xml, $this );
+ xml_set_character_data_handler( $xml, 'cdata' );
+ xml_set_element_handler( $xml, 'tag_open', 'tag_close' );
+
+ if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
+ $current_line = xml_get_current_line_number( $xml );
+ $current_column = xml_get_current_column_number( $xml );
+ $error_code = xml_get_error_code( $xml );
+ $error_string = xml_error_string( $error_code );
+ return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', array( $current_line, $current_column, $error_string ) );
+ }
+ xml_parser_free( $xml );
+
+ if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) )
+ return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+ return array(
+ 'authors' => $this->authors,
+ 'posts' => $this->posts,
+ 'categories' => $this->category,
+ 'tags' => $this->tag,
+ 'terms' => $this->term,
+ 'base_url' => $this->base_url,
+ 'base_blog_url' => $this->base_blog_url,
+ 'version' => $this->wxr_version
+ );
+ }
+
+ function tag_open( $parse, $tag, $attr ) {
+ if ( in_array( $tag, $this->wp_tags ) ) {
+ $this->in_tag = substr( $tag, 3 );
+ return;
+ }
+
+ if ( in_array( $tag, $this->wp_sub_tags ) ) {
+ $this->in_sub_tag = substr( $tag, 3 );
+ return;
+ }
+
+ switch ( $tag ) {
+ case 'category':
+ if ( isset($attr['domain'], $attr['nicename']) ) {
+ $this->sub_data['domain'] = $attr['domain'];
+ $this->sub_data['slug'] = $attr['nicename'];
+ }
+ break;
+ case 'item': $this->in_post = true;
+ case 'title': if ( $this->in_post ) $this->in_tag = 'post_title'; break;
+ case 'guid': $this->in_tag = 'guid'; break;
+ case 'dc:creator': $this->in_tag = 'post_author'; break;
+ case 'content:encoded': $this->in_tag = 'post_content'; break;
+ case 'excerpt:encoded': $this->in_tag = 'post_excerpt'; break;
+
+ case 'wp:term_slug': $this->in_tag = 'slug'; break;
+ case 'wp:meta_key': $this->in_sub_tag = 'key'; break;
+ case 'wp:meta_value': $this->in_sub_tag = 'value'; break;
+ }
+ }
+
+ function cdata( $parser, $cdata ) {
+ if ( ! trim( $cdata ) )
+ return;
+
+ if ( false !== $this->in_tag || false !== $this->in_sub_tag ) {
+ $this->cdata .= $cdata;
+ } else {
+ $this->cdata .= trim( $cdata );
+ }
+ }
+
+ function tag_close( $parser, $tag ) {
+ switch ( $tag ) {
+ case 'wp:comment':
+ unset( $this->sub_data['key'], $this->sub_data['value'] ); // remove meta sub_data
+ if ( ! empty( $this->sub_data ) )
+ $this->data['comments'][] = $this->sub_data;
+ $this->sub_data = false;
+ break;
+ case 'wp:commentmeta':
+ $this->sub_data['commentmeta'][] = array(
+ 'key' => $this->sub_data['key'],
+ 'value' => $this->sub_data['value']
+ );
+ break;
+ case 'category':
+ if ( ! empty( $this->sub_data ) ) {
+ $this->sub_data['name'] = $this->cdata;
+ $this->data['terms'][] = $this->sub_data;
+ }
+ $this->sub_data = false;
+ break;
+ case 'wp:postmeta':
+ if ( ! empty( $this->sub_data ) )
+ $this->data['postmeta'][] = $this->sub_data;
+ $this->sub_data = false;
+ break;
+ case 'item':
+ $this->posts[] = $this->data;
+ $this->data = false;
+ break;
+ case 'wp:category':
+ case 'wp:tag':
+ case 'wp:term':
+ $n = substr( $tag, 3 );
+ array_push( $this->$n, $this->data );
+ $this->data = false;
+ break;
+ case 'wp:termmeta':
+ if ( ! empty( $this->sub_data ) ) {
+ $this->data['termmeta'][] = $this->sub_data;
+ }
+ $this->sub_data = false;
+ break;
+ case 'wp:author':
+ if ( ! empty($this->data['author_login']) )
+ $this->authors[$this->data['author_login']] = $this->data;
+ $this->data = false;
+ break;
+ case 'wp:base_site_url':
+ $this->base_url = $this->cdata;
+ if ( ! isset( $this->base_blog_url ) ) {
+ $this->base_blog_url = $this->cdata;
+ }
+ break;
+ case 'wp:base_blog_url':
+ $this->base_blog_url = $this->cdata;
+ break;
+ case 'wp:wxr_version':
+ $this->wxr_version = $this->cdata;
+ break;
+
+ default:
+ if ( $this->in_sub_tag ) {
+ $this->sub_data[$this->in_sub_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
+ $this->in_sub_tag = false;
+ } else if ( $this->in_tag ) {
+ $this->data[$this->in_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
+ $this->in_tag = false;
+ }
+ }
+
+ $this->cdata = false;
+ }
+}
diff --git a/plugins/wordpress-importer/parsers/class-wxr-parser.php b/plugins/wordpress-importer/parsers/class-wxr-parser.php
new file mode 100644
index 00000000..dc7cce8f
--- /dev/null
+++ b/plugins/wordpress-importer/parsers/class-wxr-parser.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * WordPress eXtended RSS file parser implementations
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WordPress Importer class for managing parsing of WXR files.
+ */
+class WXR_Parser {
+ function parse( $file ) {
+ // Attempt to use proper XML parsers first
+ if ( extension_loaded( 'simplexml' ) ) {
+ $parser = new WXR_Parser_SimpleXML;
+ $result = $parser->parse( $file );
+
+ // If SimpleXML succeeds or this is an invalid WXR file then return the results
+ if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() )
+ return $result;
+ } else if ( extension_loaded( 'xml' ) ) {
+ $parser = new WXR_Parser_XML;
+ $result = $parser->parse( $file );
+
+ // If XMLParser succeeds or this is an invalid WXR file then return the results
+ if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() )
+ return $result;
+ }
+
+ // We have a malformed XML file, so display the error and fallthrough to regex
+ if ( isset($result) && defined('IMPORT_DEBUG') && IMPORT_DEBUG ) {
+ echo '<pre>';
+ if ( 'SimpleXML_parse_error' == $result->get_error_code() ) {
+ foreach ( $result->get_error_data() as $error )
+ echo $error->line . ':' . $error->column . ' ' . esc_html( $error->message ) . "\n";
+ } else if ( 'XML_parse_error' == $result->get_error_code() ) {
+ $error = $result->get_error_data();
+ echo $error[0] . ':' . $error[1] . ' ' . esc_html( $error[2] );
+ }
+ echo '</pre>';
+ echo '<p><strong>' . __( 'There was an error when reading this WXR file', 'wordpress-importer' ) . '</strong><br />';
+ echo __( 'Details are shown above. The importer will now try again with a different parser...', 'wordpress-importer' ) . '</p>';
+ }
+
+ // use regular expressions if nothing else available or this is bad XML
+ $parser = new WXR_Parser_Regex;
+ return $parser->parse( $file );
+ }
+}
diff --git a/plugins/wordpress-importer/readme.txt b/plugins/wordpress-importer/readme.txt
index 68ea7f34..4edf74db 100644
--- a/plugins/wordpress-importer/readme.txt
+++ b/plugins/wordpress-importer/readme.txt
@@ -1,122 +1,118 @@
-=== WordPress Importer ===
-Contributors: wordpressdotorg
-Donate link: https://wordpressfoundation.org/donate/
-Tags: importer, wordpress
-Requires at least: 3.6
-Tested up to: 4.9
-Stable tag: 0.6.4
-License: GPLv2 or later
-License URI: https://www.gnu.org/licenses/gpl-2.0.html
-
-Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file.
-
-== Description ==
-
-The WordPress Importer will import the following content from a WordPress export file:
-
-* Posts, pages and other custom post types
-* Comments
-* Custom fields and post meta
-* Categories, tags and terms from custom taxonomies
-* Authors
-
-For further information and instructions please see the [Codex page on Importing Content](https://codex.wordpress.org/Importing_Content#WordPress)
-
-== Installation ==
-
-The quickest method for installing the importer is:
-
-1. Visit Tools -> Import in the WordPress dashboard
-1. Click on the WordPress link in the list of importers
-1. Click "Install Now"
-1. Finally click "Activate Plugin & Run Importer"
-
-If you would prefer to do things manually then follow these instructions:
-
-1. Upload the `wordpress-importer` folder to the `/wp-content/plugins/` directory
-1. Activate the plugin through the 'Plugins' menu in WordPress
-1. Go to the Tools -> Import screen, click on WordPress
-
-== Changelog ==
-
-= 0.6.4 =
-* Improve PHP7 compatibility.
-* Fix bug that caused slashes to be stripped from imported comments.
-* Fix for various deprecation notices including `wp_get_http()` and `screen_icon()`.
-* Fix for importing export files with multiline term meta data.
-
-= 0.6.3 =
-* Add support for import term metadata.
-* Fix bug that caused slashes to be stripped from imported content.
-* Fix bug that caused characters to be stripped inside of CDATA in some cases.
-* Fix PHP notices.
-
-= 0.6.2 =
-* Add `wp_import_existing_post` filter, see [Trac ticket #33721](https://core.trac.wordpress.org/ticket/33721).
-
-= 0.6 =
-* Support for WXR 1.2 and multiple CDATA sections
-* Post aren't duplicates if their post_type's are different
-
-= 0.5.2 =
-* Double check that the uploaded export file exists before processing it. This prevents incorrect error messages when
-an export file is uploaded to a server with bad permissions and WordPress 3.3 or 3.3.1 is being used.
-
-= 0.5 =
-* Import comment meta (requires export from WordPress 3.2)
-* Minor bugfixes and enhancements
-
-= 0.4 =
-* Map comment user_id where possible
-* Import attachments from `wp:attachment_url`
-* Upload attachments to correct directory
-* Remap resized image URLs correctly
-
-= 0.3 =
-* Use an XML Parser if possible
-* Proper import support for nav menus
-* ... and much more, see [Trac ticket #15197](https://core.trac.wordpress.org/ticket/15197)
-
-= 0.1 =
-* Initial release
-
-== Upgrade Notice ==
-
-= 0.6 =
-Support for exports from WordPress 3.4.
-
-= 0.5.2 =
-Fix incorrect error message when the export file could not be uploaded.
-
-= 0.5 =
-Import comment meta and other minor bugfixes and enhancements.
-
-= 0.4 =
-Bug fixes for attachment importing and other small enhancements.
-
-= 0.3 =
-Upgrade for a more robust and reliable experience when importing WordPress export files, and for compatibility with WordPress 3.1.
-
-== Frequently Asked Questions ==
-
-= Help! I'm getting out of memory errors or a blank screen. =
-If your exported file is very large, the import script may run into your host's configured memory limit for PHP.
-
-A message like "Fatal error: Allowed memory size of 8388608 bytes exhausted" indicates that the script can't successfully import your XML file under the current PHP memory limit. If you have access to the php.ini file, you can manually increase the limit; if you do not (your WordPress installation is hosted on a shared server, for instance), you might have to break your exported XML file into several smaller pieces and run the import script one at a time.
-
-For those with shared hosting, the best alternative may be to consult hosting support to determine the safest approach for running the import. A host may be willing to temporarily lift the memory limit and/or run the process directly from their end.
-
--- [WordPress Codex: Importing Content](https://codex.wordpress.org/Importing_Content#Before_Importing)
-
-== Filters ==
-
-The importer has a couple of filters to allow you to completely enable/block certain features:
-
-* `import_allow_create_users`: return false if you only want to allow mapping to existing users
-* `import_allow_fetch_attachments`: return false if you do not wish to allow importing and downloading of attachments
-* `import_attachment_size_limit`: return an integer value for the maximum file size in bytes to save (default is 0, which is unlimited)
-
-There are also a few actions available to hook into:
-
-* `import_start`: occurs after the export file has been uploaded and author import settings have been chosen
-* `import_end`: called after the last output from the importer
+=== WordPress Importer ===
+Contributors: wordpressdotorg
+Donate link: https://wordpressfoundation.org/donate/
+Tags: importer, wordpress
+Requires at least: 3.7
+Tested up to: 5.4
+Stable tag: 0.7
+License: GPLv2 or later
+License URI: https://www.gnu.org/licenses/gpl-2.0.html
+
+Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file.
+
+== Description ==
+
+The WordPress Importer will import the following content from a WordPress export file:
+
+* Posts, pages and other custom post types
+* Comments and comment meta
+* Custom fields and post meta
+* Categories, tags and terms from custom taxonomies and term meta
+* Authors
+
+For further information and instructions please see the [documention on Importing Content](https://wordpress.org/support/article/importing-content/#wordpress).
+
+== Installation ==
+
+The quickest method for installing the importer is:
+
+1. Visit Tools -> Import in the WordPress dashboard
+1. Click on the WordPress link in the list of importers
+1. Click "Install Now"
+1. Finally click "Activate Plugin & Run Importer"
+
+If you would prefer to do things manually then follow these instructions:
+
+1. Upload the `wordpress-importer` folder to the `/wp-content/plugins/` directory
+1. Activate the plugin through the 'Plugins' menu in WordPress
+1. Go to the Tools -> Import screen, click on WordPress
+
+== Changelog ==
+
+= 0.7 =
+* Update minimum WordPress requirement to 3.7 and ensure compatibility with PHP 7.4.
+* Fix bug that caused not importing term meta.
+* Fix bug that caused slashes to be stripped from imported meta data.
+* Fix bug that prevented import of serialized meta data.
+* Fix file size check after download of remote files with HTTP compression enabled.
+* Improve accessibility of form fields by adding missing labels.
+* Improve imports for remote file URLs without name and/or extension.
+* Add support for `wp:base_blog_url` field to allow importing multiple files with WP-CLI.
+* Add support for term meta parsing when using the regular expressions or XML parser.
+* Developers: All PHP classes have been moved into their own files.
+* Developers: Allow to change `IMPORT_DEBUG` via `wp-config.php` and change default value to the value of `WP_DEBUG`.
+
+= 0.6.4 =
+* Improve PHP7 compatibility.
+* Fix bug that caused slashes to be stripped from imported comments.
+* Fix for various deprecation notices including `wp_get_http()` and `screen_icon()`.
+* Fix for importing export files with multiline term meta data.
+
+= 0.6.3 =
+* Add support for import term metadata.
+* Fix bug that caused slashes to be stripped from imported content.
+* Fix bug that caused characters to be stripped inside of CDATA in some cases.
+* Fix PHP notices.
+
+= 0.6.2 =
+* Add `wp_import_existing_post` filter, see [Trac ticket #33721](https://core.trac.wordpress.org/ticket/33721).
+
+= 0.6 =
+* Support for WXR 1.2 and multiple CDATA sections
+* Post aren't duplicates if their post_type's are different
+
+= 0.5.2 =
+* Double check that the uploaded export file exists before processing it. This prevents incorrect error messages when
+an export file is uploaded to a server with bad permissions and WordPress 3.3 or 3.3.1 is being used.
+
+= 0.5 =
+* Import comment meta (requires export from WordPress 3.2)
+* Minor bugfixes and enhancements
+
+= 0.4 =
+* Map comment user_id where possible
+* Import attachments from `wp:attachment_url`
+* Upload attachments to correct directory
+* Remap resized image URLs correctly
+
+= 0.3 =
+* Use an XML Parser if possible
+* Proper import support for nav menus
+* ... and much more, see [Trac ticket #15197](https://core.trac.wordpress.org/ticket/15197)
+
+= 0.1 =
+* Initial release
+
+== Frequently Asked Questions ==
+
+= Help! I'm getting out of memory errors or a blank screen. =
+If your exported file is very large, the import script may run into your host's configured memory limit for PHP.
+
+A message like "Fatal error: Allowed memory size of 8388608 bytes exhausted" indicates that the script can't successfully import your XML file under the current PHP memory limit. If you have access to the php.ini file, you can manually increase the limit; if you do not (your WordPress installation is hosted on a shared server, for instance), you might have to break your exported XML file into several smaller pieces and run the import script one at a time.
+
+For those with shared hosting, the best alternative may be to consult hosting support to determine the safest approach for running the import. A host may be willing to temporarily lift the memory limit and/or run the process directly from their end.
+
+-- [Support Article: Importing Content](https://wordpress.org/support/article/importing-content/#before-importing)
+
+== Filters ==
+
+The importer has a couple of filters to allow you to completely enable/block certain features:
+
+* `import_allow_create_users`: return false if you only want to allow mapping to existing users
+* `import_allow_fetch_attachments`: return false if you do not wish to allow importing and downloading of attachments
+* `import_attachment_size_limit`: return an integer value for the maximum file size in bytes to save (default is 0, which is unlimited)
+
+There are also a few actions available to hook into:
+
+* `import_start`: occurs after the export file has been uploaded and author import settings have been chosen
+* `import_end`: called after the last output from the importer
diff --git a/plugins/wordpress-importer/wordpress-importer.php b/plugins/wordpress-importer/wordpress-importer.php
index 97376f0a..bdea4c46 100644
--- a/plugins/wordpress-importer/wordpress-importer.php
+++ b/plugins/wordpress-importer/wordpress-importer.php
@@ -5,18 +5,22 @@ Plugin URI: https://wordpress.org/plugins/wordpress-importer/
Description: Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file.
Author: wordpressdotorg
Author URI: https://wordpress.org/
-Version: 0.6.4
+Version: 0.7
Text Domain: wordpress-importer
-License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+License: GPLv2 or later
+License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
-if ( ! defined( 'WP_LOAD_IMPORTERS' ) )
+if ( ! defined( 'WP_LOAD_IMPORTERS' ) ) {
return;
+}
/** Display verbose errors */
-define( 'IMPORT_DEBUG', false );
+if ( ! defined( 'IMPORT_DEBUG' ) ) {
+ define( 'IMPORT_DEBUG', WP_DEBUG );
+}
-// Load Importer API
+/** WordPress Import Administration API */
require_once ABSPATH . 'wp-admin/includes/import.php';
if ( ! class_exists( 'WP_Importer' ) ) {
@@ -25,1195 +29,23 @@ if ( ! class_exists( 'WP_Importer' ) ) {
require $class_wp_importer;
}
-// include WXR file parsers
-require dirname( __FILE__ ) . '/parsers.php';
-
-/**
- * WordPress Importer class for managing the import process of a WXR file
- *
- * @package WordPress
- * @subpackage Importer
- */
-if ( class_exists( 'WP_Importer' ) ) {
-class WP_Import extends WP_Importer {
- var $max_wxr_version = 1.2; // max. supported WXR version
-
- var $id; // WXR attachment ID
-
- // information to import from WXR file
- var $version;
- var $authors = array();
- var $posts = array();
- var $terms = array();
- var $categories = array();
- var $tags = array();
- var $base_url = '';
-
- // mappings from old information to new
- var $processed_authors = array();
- var $author_mapping = array();
- var $processed_terms = array();
- var $processed_posts = array();
- var $post_orphans = array();
- var $processed_menu_items = array();
- var $menu_item_orphans = array();
- var $missing_menu_items = array();
-
- var $fetch_attachments = false;
- var $url_remap = array();
- var $featured_images = array();
-
- /**
- * Registered callback function for the WordPress Importer
- *
- * Manages the three separate stages of the WXR import process
- */
- function dispatch() {
- $this->header();
-
- $step = empty( $_GET['step'] ) ? 0 : (int) $_GET['step'];
- switch ( $step ) {
- case 0:
- $this->greet();
- break;
- case 1:
- check_admin_referer( 'import-upload' );
- if ( $this->handle_upload() )
- $this->import_options();
- break;
- case 2:
- check_admin_referer( 'import-wordpress' );
- $this->fetch_attachments = ( ! empty( $_POST['fetch_attachments'] ) && $this->allow_fetch_attachments() );
- $this->id = (int) $_POST['import_id'];
- $file = get_attached_file( $this->id );
- set_time_limit(0);
- $this->import( $file );
- break;
- }
-
- $this->footer();
- }
-
- /**
- * The main controller for the actual import stage.
- *
- * @param string $file Path to the WXR file for importing
- */
- function import( $file ) {
- add_filter( 'import_post_meta_key', array( $this, 'is_valid_meta_key' ) );
- add_filter( 'http_request_timeout', array( &$this, 'bump_request_timeout' ) );
-
- $this->import_start( $file );
-
- $this->get_author_mapping();
-
- wp_suspend_cache_invalidation( true );
- $this->process_categories();
- $this->process_tags();
- $this->process_terms();
- $this->process_posts();
- wp_suspend_cache_invalidation( false );
-
- // update incorrect/missing information in the DB
- $this->backfill_parents();
- $this->backfill_attachment_urls();
- $this->remap_featured_images();
-
- $this->import_end();
- }
-
- /**
- * Parses the WXR file and prepares us for the task of processing parsed data
- *
- * @param string $file Path to the WXR file for importing
- */
- function import_start( $file ) {
- if ( ! is_file($file) ) {
- echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
- echo __( 'The file does not exist, please try again.', 'wordpress-importer' ) . '</p>';
- $this->footer();
- die();
- }
-
- $import_data = $this->parse( $file );
-
- if ( is_wp_error( $import_data ) ) {
- echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
- echo esc_html( $import_data->get_error_message() ) . '</p>';
- $this->footer();
- die();
- }
-
- $this->version = $import_data['version'];
- $this->get_authors_from_import( $import_data );
- $this->posts = $import_data['posts'];
- $this->terms = $import_data['terms'];
- $this->categories = $import_data['categories'];
- $this->tags = $import_data['tags'];
- $this->base_url = esc_url( $import_data['base_url'] );
-
- wp_defer_term_counting( true );
- wp_defer_comment_counting( true );
-
- do_action( 'import_start' );
- }
-
- /**
- * Performs post-import cleanup of files and the cache
- */
- function import_end() {
- wp_import_cleanup( $this->id );
-
- wp_cache_flush();
- foreach ( get_taxonomies() as $tax ) {
- delete_option( "{$tax}_children" );
- _get_term_hierarchy( $tax );
- }
-
- wp_defer_term_counting( false );
- wp_defer_comment_counting( false );
-
- echo '<p>' . __( 'All done.', 'wordpress-importer' ) . ' <a href="' . admin_url() . '">' . __( 'Have fun!', 'wordpress-importer' ) . '</a>' . '</p>';
- echo '<p>' . __( 'Remember to update the passwords and roles of imported users.', 'wordpress-importer' ) . '</p>';
-
- do_action( 'import_end' );
- }
-
- /**
- * Handles the WXR upload and initial parsing of the file to prepare for
- * displaying author import options
- *
- * @return bool False if error uploading or invalid file, true otherwise
- */
- function handle_upload() {
- $file = wp_import_handle_upload();
-
- if ( isset( $file['error'] ) ) {
- echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
- echo esc_html( $file['error'] ) . '</p>';
- return false;
- } else if ( ! file_exists( $file['file'] ) ) {
- echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
- printf( __( 'The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem.', 'wordpress-importer' ), esc_html( $file['file'] ) );
- echo '</p>';
- return false;
- }
-
- $this->id = (int) $file['id'];
- $import_data = $this->parse( $file['file'] );
- if ( is_wp_error( $import_data ) ) {
- echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
- echo esc_html( $import_data->get_error_message() ) . '</p>';
- return false;
- }
-
- $this->version = $import_data['version'];
- if ( $this->version > $this->max_wxr_version ) {
- echo '<div class="error"><p><strong>';
- printf( __( 'This WXR file (version %s) may not be supported by this version of the importer. Please consider updating.', 'wordpress-importer' ), esc_html($import_data['version']) );
- echo '</strong></p></div>';
- }
-
- $this->get_authors_from_import( $import_data );
-
- return true;
- }
-
- /**
- * Retrieve authors from parsed WXR data
- *
- * Uses the provided author information from WXR 1.1 files
- * or extracts info from each post for WXR 1.0 files
- *
- * @param array $import_data Data returned by a WXR parser
- */
- function get_authors_from_import( $import_data ) {
- if ( ! empty( $import_data['authors'] ) ) {
- $this->authors = $import_data['authors'];
- // no author information, grab it from the posts
- } else {
- foreach ( $import_data['posts'] as $post ) {
- $login = sanitize_user( $post['post_author'], true );
- if ( empty( $login ) ) {
- printf( __( 'Failed to import author %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html( $post['post_author'] ) );
- echo '<br />';
- continue;
- }
-
- if ( ! isset($this->authors[$login]) )
- $this->authors[$login] = array(
- 'author_login' => $login,
- 'author_display_name' => $post['post_author']
- );
- }
- }
- }
-
- /**
- * Display pre-import options, author importing/mapping and option to
- * fetch attachments
- */
- function import_options() {
- $j = 0;
-?>
-<form action="<?php echo admin_url( 'admin.php?import=wordpress&amp;step=2' ); ?>" method="post">
- <?php wp_nonce_field( 'import-wordpress' ); ?>
- <input type="hidden" name="import_id" value="<?php echo $this->id; ?>" />
-
-<?php if ( ! empty( $this->authors ) ) : ?>
- <h3><?php _e( 'Assign Authors', 'wordpress-importer' ); ?></h3>
- <p><?php _e( 'To make it easier for you to edit and save the imported content, you may want to reassign the author of the imported item to an existing user of this site. For example, you may want to import all the entries as <code>admin</code>s entries.', 'wordpress-importer' ); ?></p>
-<?php if ( $this->allow_create_users() ) : ?>
- <p><?php printf( __( 'If a new user is created by WordPress, a new password will be randomly generated and the new user&#8217;s role will be set as %s. Manually changing the new user&#8217;s details will be necessary.', 'wordpress-importer' ), esc_html( get_option('default_role') ) ); ?></p>
-<?php endif; ?>
- <ol id="authors">
-<?php foreach ( $this->authors as $author ) : ?>
- <li><?php $this->author_select( $j++, $author ); ?></li>
-<?php endforeach; ?>
- </ol>
-<?php endif; ?>
-
-<?php if ( $this->allow_fetch_attachments() ) : ?>
- <h3><?php _e( 'Import Attachments', 'wordpress-importer' ); ?></h3>
- <p>
- <input type="checkbox" value="1" name="fetch_attachments" id="import-attachments" />
- <label for="import-attachments"><?php _e( 'Download and import file attachments', 'wordpress-importer' ); ?></label>
- </p>
-<?php endif; ?>
-
- <p class="submit"><input type="submit" class="button" value="<?php esc_attr_e( 'Submit', 'wordpress-importer' ); ?>" /></p>
-</form>
-<?php
- }
-
- /**
- * Display import options for an individual author. That is, either create
- * a new user based on import info or map to an existing user
- *
- * @param int $n Index for each author in the form
- * @param array $author Author information, e.g. login, display name, email
- */
- function author_select( $n, $author ) {
- _e( 'Import author:', 'wordpress-importer' );
- echo ' <strong>' . esc_html( $author['author_display_name'] );
- if ( $this->version != '1.0' ) echo ' (' . esc_html( $author['author_login'] ) . ')';
- echo '</strong><br />';
-
- if ( $this->version != '1.0' )
- echo '<div style="margin-left:18px">';
-
- $create_users = $this->allow_create_users();
- if ( $create_users ) {
- if ( $this->version != '1.0' ) {
- _e( 'or create new user with login name:', 'wordpress-importer' );
- $value = '';
- } else {
- _e( 'as a new user:', 'wordpress-importer' );
- $value = esc_attr( sanitize_user( $author['author_login'], true ) );
- }
-
- echo ' <input type="text" name="user_new['.$n.']" value="'. $value .'" /><br />';
- }
-
- if ( ! $create_users && $this->version == '1.0' )
- _e( 'assign posts to an existing user:', 'wordpress-importer' );
- else
- _e( 'or assign posts to an existing user:', 'wordpress-importer' );
- wp_dropdown_users( array( 'name' => "user_map[$n]", 'multi' => true, 'show_option_all' => __( '- Select -', 'wordpress-importer' ) ) );
- echo '<input type="hidden" name="imported_authors['.$n.']" value="' . esc_attr( $author['author_login'] ) . '" />';
-
- if ( $this->version != '1.0' )
- echo '</div>';
- }
-
- /**
- * Map old author logins to local user IDs based on decisions made
- * in import options form. Can map to an existing user, create a new user
- * or falls back to the current user in case of error with either of the previous
- */
- function get_author_mapping() {
- if ( ! isset( $_POST['imported_authors'] ) )
- return;
-
- $create_users = $this->allow_create_users();
-
- foreach ( (array) $_POST['imported_authors'] as $i => $old_login ) {
- // Multisite adds strtolower to sanitize_user. Need to sanitize here to stop breakage in process_posts.
- $santized_old_login = sanitize_user( $old_login, true );
- $old_id = isset( $this->authors[$old_login]['author_id'] ) ? intval($this->authors[$old_login]['author_id']) : false;
-
- if ( ! empty( $_POST['user_map'][$i] ) ) {
- $user = get_userdata( intval($_POST['user_map'][$i]) );
- if ( isset( $user->ID ) ) {
- if ( $old_id )
- $this->processed_authors[$old_id] = $user->ID;
- $this->author_mapping[$santized_old_login] = $user->ID;
- }
- } else if ( $create_users ) {
- if ( ! empty($_POST['user_new'][$i]) ) {
- $user_id = wp_create_user( $_POST['user_new'][$i], wp_generate_password() );
- } else if ( $this->version != '1.0' ) {
- $user_data = array(
- 'user_login' => $old_login,
- 'user_pass' => wp_generate_password(),
- 'user_email' => isset( $this->authors[$old_login]['author_email'] ) ? $this->authors[$old_login]['author_email'] : '',
- 'display_name' => $this->authors[$old_login]['author_display_name'],
- 'first_name' => isset( $this->authors[$old_login]['author_first_name'] ) ? $this->authors[$old_login]['author_first_name'] : '',
- 'last_name' => isset( $this->authors[$old_login]['author_last_name'] ) ? $this->authors[$old_login]['author_last_name'] : '',
- );
- $user_id = wp_insert_user( $user_data );
- }
-
- if ( ! is_wp_error( $user_id ) ) {
- if ( $old_id )
- $this->processed_authors[$old_id] = $user_id;
- $this->author_mapping[$santized_old_login] = $user_id;
- } else {
- printf( __( 'Failed to create new user for %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html($this->authors[$old_login]['author_display_name']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ' ' . $user_id->get_error_message();
- echo '<br />';
- }
- }
-
- // failsafe: if the user_id was invalid, default to the current user
- if ( ! isset( $this->author_mapping[$santized_old_login] ) ) {
- if ( $old_id )
- $this->processed_authors[$old_id] = (int) get_current_user_id();
- $this->author_mapping[$santized_old_login] = (int) get_current_user_id();
- }
- }
- }
-
- /**
- * Create new categories based on import information
- *
- * Doesn't create a new category if its slug already exists
- */
- function process_categories() {
- $this->categories = apply_filters( 'wp_import_categories', $this->categories );
-
- if ( empty( $this->categories ) )
- return;
-
- foreach ( $this->categories as $cat ) {
- // if the category already exists leave it alone
- $term_id = term_exists( $cat['category_nicename'], 'category' );
- if ( $term_id ) {
- if ( is_array($term_id) ) $term_id = $term_id['term_id'];
- if ( isset($cat['term_id']) )
- $this->processed_terms[intval($cat['term_id'])] = (int) $term_id;
- continue;
- }
-
- $category_parent = empty( $cat['category_parent'] ) ? 0 : category_exists( $cat['category_parent'] );
- $category_description = isset( $cat['category_description'] ) ? $cat['category_description'] : '';
- $catarr = array(
- 'category_nicename' => $cat['category_nicename'],
- 'category_parent' => $category_parent,
- 'cat_name' => $cat['cat_name'],
- 'category_description' => $category_description
- );
- $catarr = wp_slash( $catarr );
-
- $id = wp_insert_category( $catarr );
- if ( ! is_wp_error( $id ) ) {
- if ( isset($cat['term_id']) )
- $this->processed_terms[intval($cat['term_id'])] = $id;
- } else {
- printf( __( 'Failed to import category %s', 'wordpress-importer' ), esc_html($cat['category_nicename']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ': ' . $id->get_error_message();
- echo '<br />';
- continue;
- }
-
- $this->process_termmeta( $cat, $id['term_id'] );
- }
-
- unset( $this->categories );
- }
-
- /**
- * Create new post tags based on import information
- *
- * Doesn't create a tag if its slug already exists
- */
- function process_tags() {
- $this->tags = apply_filters( 'wp_import_tags', $this->tags );
-
- if ( empty( $this->tags ) )
- return;
-
- foreach ( $this->tags as $tag ) {
- // if the tag already exists leave it alone
- $term_id = term_exists( $tag['tag_slug'], 'post_tag' );
- if ( $term_id ) {
- if ( is_array($term_id) ) $term_id = $term_id['term_id'];
- if ( isset($tag['term_id']) )
- $this->processed_terms[intval($tag['term_id'])] = (int) $term_id;
- continue;
- }
-
- $tag = wp_slash( $tag );
- $tag_desc = isset( $tag['tag_description'] ) ? $tag['tag_description'] : '';
- $tagarr = array( 'slug' => $tag['tag_slug'], 'description' => $tag_desc );
-
- $id = wp_insert_term( $tag['tag_name'], 'post_tag', $tagarr );
- if ( ! is_wp_error( $id ) ) {
- if ( isset($tag['term_id']) )
- $this->processed_terms[intval($tag['term_id'])] = $id['term_id'];
- } else {
- printf( __( 'Failed to import post tag %s', 'wordpress-importer' ), esc_html($tag['tag_name']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ': ' . $id->get_error_message();
- echo '<br />';
- continue;
- }
-
- $this->process_termmeta( $tag, $id['term_id'] );
- }
-
- unset( $this->tags );
- }
-
- /**
- * Create new terms based on import information
- *
- * Doesn't create a term its slug already exists
- */
- function process_terms() {
- $this->terms = apply_filters( 'wp_import_terms', $this->terms );
-
- if ( empty( $this->terms ) )
- return;
-
- foreach ( $this->terms as $term ) {
- // if the term already exists in the correct taxonomy leave it alone
- $term_id = term_exists( $term['slug'], $term['term_taxonomy'] );
- if ( $term_id ) {
- if ( is_array($term_id) ) $term_id = $term_id['term_id'];
- if ( isset($term['term_id']) )
- $this->processed_terms[intval($term['term_id'])] = (int) $term_id;
- continue;
- }
-
- if ( empty( $term['term_parent'] ) ) {
- $parent = 0;
- } else {
- $parent = term_exists( $term['term_parent'], $term['term_taxonomy'] );
- if ( is_array( $parent ) ) $parent = $parent['term_id'];
- }
- $term = wp_slash( $term );
- $description = isset( $term['term_description'] ) ? $term['term_description'] : '';
- $termarr = array( 'slug' => $term['slug'], 'description' => $description, 'parent' => intval($parent) );
-
- $id = wp_insert_term( $term['term_name'], $term['term_taxonomy'], $termarr );
- if ( ! is_wp_error( $id ) ) {
- if ( isset($term['term_id']) )
- $this->processed_terms[intval($term['term_id'])] = $id['term_id'];
- } else {
- printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($term['term_taxonomy']), esc_html($term['term_name']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ': ' . $id->get_error_message();
- echo '<br />';
- continue;
- }
-
- $this->process_termmeta( $term, $id['term_id'] );
- }
-
- unset( $this->terms );
- }
-
- /**
- * Add metadata to imported term.
- *
- * @since 0.6.2
- *
- * @param array $term Term data from WXR import.
- * @param int $term_id ID of the newly created term.
- */
- protected function process_termmeta( $term, $term_id ) {
- if ( ! isset( $term['termmeta'] ) ) {
- $term['termmeta'] = array();
- }
-
- /**
- * Filters the metadata attached to an imported term.
- *
- * @since 0.6.2
- *
- * @param array $termmeta Array of term meta.
- * @param int $term_id ID of the newly created term.
- * @param array $term Term data from the WXR import.
- */
- $term['termmeta'] = apply_filters( 'wp_import_term_meta', $term['termmeta'], $term_id, $term );
-
- if ( empty( $term['termmeta'] ) ) {
- return;
- }
-
- foreach ( $term['termmeta'] as $meta ) {
- /**
- * Filters the meta key for an imported piece of term meta.
- *
- * @since 0.6.2
- *
- * @param string $meta_key Meta key.
- * @param int $term_id ID of the newly created term.
- * @param array $term Term data from the WXR import.
- */
- $key = apply_filters( 'import_term_meta_key', $meta['key'], $term_id, $term );
- if ( ! $key ) {
- continue;
- }
-
- // Export gets meta straight from the DB so could have a serialized string
- $value = maybe_unserialize( $meta['value'] );
-
- add_term_meta( $term_id, $key, $value );
-
- /**
- * Fires after term meta is imported.
- *
- * @since 0.6.2
- *
- * @param int $term_id ID of the newly created term.
- * @param string $key Meta key.
- * @param mixed $value Meta value.
- */
- do_action( 'import_term_meta', $term_id, $key, $value );
- }
- }
-
- /**
- * Create new posts based on import information
- *
- * Posts marked as having a parent which doesn't exist will become top level items.
- * Doesn't create a new post if: the post type doesn't exist, the given post ID
- * is already noted as imported or a post with the same title and date already exists.
- * Note that new/updated terms, comments and meta are imported for the last of the above.
- */
- function process_posts() {
- $this->posts = apply_filters( 'wp_import_posts', $this->posts );
-
- foreach ( $this->posts as $post ) {
- $post = apply_filters( 'wp_import_post_data_raw', $post );
-
- if ( ! post_type_exists( $post['post_type'] ) ) {
- printf( __( 'Failed to import &#8220;%s&#8221;: Invalid post type %s', 'wordpress-importer' ),
- esc_html($post['post_title']), esc_html($post['post_type']) );
- echo '<br />';
- do_action( 'wp_import_post_exists', $post );
- continue;
- }
+/** Functions missing in older WordPress versions. */
+require_once dirname( __FILE__ ) . '/compat.php';
- if ( isset( $this->processed_posts[$post['post_id']] ) && ! empty( $post['post_id'] ) )
- continue;
+/** WXR_Parser class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser.php';
- if ( $post['status'] == 'auto-draft' )
- continue;
+/** WXR_Parser_SimpleXML class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-simplexml.php';
- if ( 'nav_menu_item' == $post['post_type'] ) {
- $this->process_menu_item( $post );
- continue;
- }
+/** WXR_Parser_XML class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-xml.php';
- $post_type_object = get_post_type_object( $post['post_type'] );
-
- $post_exists = post_exists( $post['post_title'], '', $post['post_date'] );
-
- /**
- * Filter ID of the existing post corresponding to post currently importing.
- *
- * Return 0 to force the post to be imported. Filter the ID to be something else
- * to override which existing post is mapped to the imported post.
- *
- * @see post_exists()
- * @since 0.6.2
- *
- * @param int $post_exists Post ID, or 0 if post did not exist.
- * @param array $post The post array to be inserted.
- */
- $post_exists = apply_filters( 'wp_import_existing_post', $post_exists, $post );
-
- if ( $post_exists && get_post_type( $post_exists ) == $post['post_type'] ) {
- printf( __('%s &#8220;%s&#8221; already exists.', 'wordpress-importer'), $post_type_object->labels->singular_name, esc_html($post['post_title']) );
- echo '<br />';
- $comment_post_ID = $post_id = $post_exists;
- $this->processed_posts[ intval( $post['post_id'] ) ] = intval( $post_exists );
- } else {
- $post_parent = (int) $post['post_parent'];
- if ( $post_parent ) {
- // if we already know the parent, map it to the new local ID
- if ( isset( $this->processed_posts[$post_parent] ) ) {
- $post_parent = $this->processed_posts[$post_parent];
- // otherwise record the parent for later
- } else {
- $this->post_orphans[intval($post['post_id'])] = $post_parent;
- $post_parent = 0;
- }
- }
-
- // map the post author
- $author = sanitize_user( $post['post_author'], true );
- if ( isset( $this->author_mapping[$author] ) )
- $author = $this->author_mapping[$author];
- else
- $author = (int) get_current_user_id();
-
- $postdata = array(
- 'import_id' => $post['post_id'], 'post_author' => $author, 'post_date' => $post['post_date'],
- 'post_date_gmt' => $post['post_date_gmt'], 'post_content' => $post['post_content'],
- 'post_excerpt' => $post['post_excerpt'], 'post_title' => $post['post_title'],
- 'post_status' => $post['status'], 'post_name' => $post['post_name'],
- 'comment_status' => $post['comment_status'], 'ping_status' => $post['ping_status'],
- 'guid' => $post['guid'], 'post_parent' => $post_parent, 'menu_order' => $post['menu_order'],
- 'post_type' => $post['post_type'], 'post_password' => $post['post_password']
- );
-
- $original_post_ID = $post['post_id'];
- $postdata = apply_filters( 'wp_import_post_data_processed', $postdata, $post );
-
- $postdata = wp_slash( $postdata );
-
- if ( 'attachment' == $postdata['post_type'] ) {
- $remote_url = ! empty($post['attachment_url']) ? $post['attachment_url'] : $post['guid'];
-
- // try to use _wp_attached file for upload folder placement to ensure the same location as the export site
- // e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
- $postdata['upload_date'] = $post['post_date'];
- if ( isset( $post['postmeta'] ) ) {
- foreach( $post['postmeta'] as $meta ) {
- if ( $meta['key'] == '_wp_attached_file' ) {
- if ( preg_match( '%^[0-9]{4}/[0-9]{2}%', $meta['value'], $matches ) )
- $postdata['upload_date'] = $matches[0];
- break;
- }
- }
- }
-
- $comment_post_ID = $post_id = $this->process_attachment( $postdata, $remote_url );
- } else {
- $comment_post_ID = $post_id = wp_insert_post( $postdata, true );
- do_action( 'wp_import_insert_post', $post_id, $original_post_ID, $postdata, $post );
- }
-
- if ( is_wp_error( $post_id ) ) {
- printf( __( 'Failed to import %s &#8220;%s&#8221;', 'wordpress-importer' ),
- $post_type_object->labels->singular_name, esc_html($post['post_title']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ': ' . $post_id->get_error_message();
- echo '<br />';
- continue;
- }
-
- if ( $post['is_sticky'] == 1 )
- stick_post( $post_id );
- }
-
- // map pre-import ID to local ID
- $this->processed_posts[intval($post['post_id'])] = (int) $post_id;
-
- if ( ! isset( $post['terms'] ) )
- $post['terms'] = array();
-
- $post['terms'] = apply_filters( 'wp_import_post_terms', $post['terms'], $post_id, $post );
-
- // add categories, tags and other terms
- if ( ! empty( $post['terms'] ) ) {
- $terms_to_set = array();
- foreach ( $post['terms'] as $term ) {
- // back compat with WXR 1.0 map 'tag' to 'post_tag'
- $taxonomy = ( 'tag' == $term['domain'] ) ? 'post_tag' : $term['domain'];
- $term_exists = term_exists( $term['slug'], $taxonomy );
- $term_id = is_array( $term_exists ) ? $term_exists['term_id'] : $term_exists;
- if ( ! $term_id ) {
- $t = wp_insert_term( $term['name'], $taxonomy, array( 'slug' => $term['slug'] ) );
- if ( ! is_wp_error( $t ) ) {
- $term_id = $t['term_id'];
- do_action( 'wp_import_insert_term', $t, $term, $post_id, $post );
- } else {
- printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($taxonomy), esc_html($term['name']) );
- if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
- echo ': ' . $t->get_error_message();
- echo '<br />';
- do_action( 'wp_import_insert_term_failed', $t, $term, $post_id, $post );
- continue;
- }
- }
- $terms_to_set[$taxonomy][] = intval( $term_id );
- }
-
- foreach ( $terms_to_set as $tax => $ids ) {
- $tt_ids = wp_set_post_terms( $post_id, $ids, $tax );
- do_action( 'wp_import_set_post_terms', $tt_ids, $ids, $tax, $post_id, $post );
- }
- unset( $post['terms'], $terms_to_set );
- }
-
- if ( ! isset( $post['comments'] ) )
- $post['comments'] = array();
-
- $post['comments'] = apply_filters( 'wp_import_post_comments', $post['comments'], $post_id, $post );
-
- // add/update comments
- if ( ! empty( $post['comments'] ) ) {
- $num_comments = 0;
- $inserted_comments = array();
- foreach ( $post['comments'] as $comment ) {
- $comment_id = $comment['comment_id'];
- $newcomments[$comment_id]['comment_post_ID'] = $comment_post_ID;
- $newcomments[$comment_id]['comment_author'] = $comment['comment_author'];
- $newcomments[$comment_id]['comment_author_email'] = $comment['comment_author_email'];
- $newcomments[$comment_id]['comment_author_IP'] = $comment['comment_author_IP'];
- $newcomments[$comment_id]['comment_author_url'] = $comment['comment_author_url'];
- $newcomments[$comment_id]['comment_date'] = $comment['comment_date'];
- $newcomments[$comment_id]['comment_date_gmt'] = $comment['comment_date_gmt'];
- $newcomments[$comment_id]['comment_content'] = $comment['comment_content'];
- $newcomments[$comment_id]['comment_approved'] = $comment['comment_approved'];
- $newcomments[$comment_id]['comment_type'] = $comment['comment_type'];
- $newcomments[$comment_id]['comment_parent'] = $comment['comment_parent'];
- $newcomments[$comment_id]['commentmeta'] = isset( $comment['commentmeta'] ) ? $comment['commentmeta'] : array();
- if ( isset( $this->processed_authors[$comment['comment_user_id']] ) )
- $newcomments[$comment_id]['user_id'] = $this->processed_authors[$comment['comment_user_id']];
- }
- ksort( $newcomments );
-
- foreach ( $newcomments as $key => $comment ) {
- // if this is a new post we can skip the comment_exists() check
- if ( ! $post_exists || ! comment_exists( $comment['comment_author'], $comment['comment_date'] ) ) {
- if ( isset( $inserted_comments[$comment['comment_parent']] ) )
- $comment['comment_parent'] = $inserted_comments[$comment['comment_parent']];
- $comment = wp_slash( $comment );
- $comment = wp_filter_comment( $comment );
- $inserted_comments[$key] = wp_insert_comment( $comment );
- do_action( 'wp_import_insert_comment', $inserted_comments[$key], $comment, $comment_post_ID, $post );
-
- foreach( $comment['commentmeta'] as $meta ) {
- $value = maybe_unserialize( $meta['value'] );
- add_comment_meta( $inserted_comments[$key], $meta['key'], $value );
- }
-
- $num_comments++;
- }
- }
- unset( $newcomments, $inserted_comments, $post['comments'] );
- }
-
- if ( ! isset( $post['postmeta'] ) )
- $post['postmeta'] = array();
-
- $post['postmeta'] = apply_filters( 'wp_import_post_meta', $post['postmeta'], $post_id, $post );
-
- // add/update post meta
- if ( ! empty( $post['postmeta'] ) ) {
- foreach ( $post['postmeta'] as $meta ) {
- $key = apply_filters( 'import_post_meta_key', $meta['key'], $post_id, $post );
- $value = false;
-
- if ( '_edit_last' == $key ) {
- if ( isset( $this->processed_authors[intval($meta['value'])] ) )
- $value = $this->processed_authors[intval($meta['value'])];
- else
- $key = false;
- }
-
- if ( $key ) {
- // export gets meta straight from the DB so could have a serialized string
- if ( ! $value )
- $value = maybe_unserialize( $meta['value'] );
-
- add_post_meta( $post_id, $key, $value );
- do_action( 'import_post_meta', $post_id, $key, $value );
-
- // if the post has a featured image, take note of this in case of remap
- if ( '_thumbnail_id' == $key )
- $this->featured_images[$post_id] = (int) $value;
- }
- }
- }
- }
-
- unset( $this->posts );
- }
-
- /**
- * Attempt to create a new menu item from import data
- *
- * Fails for draft, orphaned menu items and those without an associated nav_menu
- * or an invalid nav_menu term. If the post type or term object which the menu item
- * represents doesn't exist then the menu item will not be imported (waits until the
- * end of the import to retry again before discarding).
- *
- * @param array $item Menu item details from WXR file
- */
- function process_menu_item( $item ) {
- // skip draft, orphaned menu items
- if ( 'draft' == $item['status'] )
- return;
-
- $menu_slug = false;
- if ( isset($item['terms']) ) {
- // loop through terms, assume first nav_menu term is correct menu
- foreach ( $item['terms'] as $term ) {
- if ( 'nav_menu' == $term['domain'] ) {
- $menu_slug = $term['slug'];
- break;
- }
- }
- }
-
- // no nav_menu term associated with this menu item
- if ( ! $menu_slug ) {
- _e( 'Menu item skipped due to missing menu slug', 'wordpress-importer' );
- echo '<br />';
- return;
- }
-
- $menu_id = term_exists( $menu_slug, 'nav_menu' );
- if ( ! $menu_id ) {
- printf( __( 'Menu item skipped due to invalid menu slug: %s', 'wordpress-importer' ), esc_html( $menu_slug ) );
- echo '<br />';
- return;
- } else {
- $menu_id = is_array( $menu_id ) ? $menu_id['term_id'] : $menu_id;
- }
-
- foreach ( $item['postmeta'] as $meta )
- ${$meta['key']} = $meta['value'];
-
- if ( 'taxonomy' == $_menu_item_type && isset( $this->processed_terms[intval($_menu_item_object_id)] ) ) {
- $_menu_item_object_id = $this->processed_terms[intval($_menu_item_object_id)];
- } else if ( 'post_type' == $_menu_item_type && isset( $this->processed_posts[intval($_menu_item_object_id)] ) ) {
- $_menu_item_object_id = $this->processed_posts[intval($_menu_item_object_id)];
- } else if ( 'custom' != $_menu_item_type ) {
- // associated object is missing or not imported yet, we'll retry later
- $this->missing_menu_items[] = $item;
- return;
- }
-
- if ( isset( $this->processed_menu_items[intval($_menu_item_menu_item_parent)] ) ) {
- $_menu_item_menu_item_parent = $this->processed_menu_items[intval($_menu_item_menu_item_parent)];
- } else if ( $_menu_item_menu_item_parent ) {
- $this->menu_item_orphans[intval($item['post_id'])] = (int) $_menu_item_menu_item_parent;
- $_menu_item_menu_item_parent = 0;
- }
-
- // wp_update_nav_menu_item expects CSS classes as a space separated string
- $_menu_item_classes = maybe_unserialize( $_menu_item_classes );
- if ( is_array( $_menu_item_classes ) )
- $_menu_item_classes = implode( ' ', $_menu_item_classes );
-
- $args = array(
- 'menu-item-object-id' => $_menu_item_object_id,
- 'menu-item-object' => $_menu_item_object,
- 'menu-item-parent-id' => $_menu_item_menu_item_parent,
- 'menu-item-position' => intval( $item['menu_order'] ),
- 'menu-item-type' => $_menu_item_type,
- 'menu-item-title' => $item['post_title'],
- 'menu-item-url' => $_menu_item_url,
- 'menu-item-description' => $item['post_content'],
- 'menu-item-attr-title' => $item['post_excerpt'],
- 'menu-item-target' => $_menu_item_target,
- 'menu-item-classes' => $_menu_item_classes,
- 'menu-item-xfn' => $_menu_item_xfn,
- 'menu-item-status' => $item['status']
- );
-
- $id = wp_update_nav_menu_item( $menu_id, 0, $args );
- if ( $id && ! is_wp_error( $id ) )
- $this->processed_menu_items[intval($item['post_id'])] = (int) $id;
- }
-
- /**
- * If fetching attachments is enabled then attempt to create a new attachment
- *
- * @param array $post Attachment post details from WXR
- * @param string $url URL to fetch attachment from
- * @return int|WP_Error Post ID on success, WP_Error otherwise
- */
- function process_attachment( $post, $url ) {
- if ( ! $this->fetch_attachments )
- return new WP_Error( 'attachment_processing_error',
- __( 'Fetching attachments is not enabled', 'wordpress-importer' ) );
-
- // if the URL is absolute, but does not contain address, then upload it assuming base_site_url
- if ( preg_match( '|^/[\w\W]+$|', $url ) )
- $url = rtrim( $this->base_url, '/' ) . $url;
-
- $upload = $this->fetch_remote_file( $url, $post );
- if ( is_wp_error( $upload ) )
- return $upload;
-
- if ( $info = wp_check_filetype( $upload['file'] ) )
- $post['post_mime_type'] = $info['type'];
- else
- return new WP_Error( 'attachment_processing_error', __('Invalid file type', 'wordpress-importer') );
-
- $post['guid'] = $upload['url'];
-
- // as per wp-admin/includes/upload.php
- $post_id = wp_insert_attachment( $post, $upload['file'] );
- wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) );
-
- // remap resized image URLs, works by stripping the extension and remapping the URL stub.
- if ( preg_match( '!^image/!', $info['type'] ) ) {
- $parts = pathinfo( $url );
- $name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2
-
- $parts_new = pathinfo( $upload['url'] );
- $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" );
-
- $this->url_remap[$parts['dirname'] . '/' . $name] = $parts_new['dirname'] . '/' . $name_new;
- }
-
- return $post_id;
- }
-
- /**
- * Attempt to download a remote file attachment
- *
- * @param string $url URL of item to fetch
- * @param array $post Attachment details
- * @return array|WP_Error Local file location details on success, WP_Error otherwise
- */
- function fetch_remote_file( $url, $post ) {
- // extract the file name and extension from the url
- $file_name = basename( $url );
-
- // get placeholder file in the upload dir with a unique, sanitized filename
- $upload = wp_upload_bits( $file_name, 0, '', $post['upload_date'] );
- if ( $upload['error'] )
- return new WP_Error( 'upload_dir_error', $upload['error'] );
-
- // fetch the remote url and write it to the placeholder file
- $remote_response = wp_safe_remote_get( $url, array(
- 'timeout' => 300,
- 'stream' => true,
- 'filename' => $upload['file'],
- ) );
-
- $headers = wp_remote_retrieve_headers( $remote_response );
-
- // request failed
- if ( ! $headers ) {
- @unlink( $upload['file'] );
- return new WP_Error( 'import_file_error', __('Remote server did not respond', 'wordpress-importer') );
- }
-
- $remote_response_code = wp_remote_retrieve_response_code( $remote_response );
-
- // make sure the fetch was successful
- if ( $remote_response_code != '200' ) {
- @unlink( $upload['file'] );
- return new WP_Error( 'import_file_error', sprintf( __('Remote server returned error response %1$d %2$s', 'wordpress-importer'), esc_html($remote_response_code), get_status_header_desc($remote_response_code) ) );
- }
-
- $filesize = filesize( $upload['file'] );
-
- if ( isset( $headers['content-length'] ) && $filesize != $headers['content-length'] ) {
- @unlink( $upload['file'] );
- return new WP_Error( 'import_file_error', __('Remote file is incorrect size', 'wordpress-importer') );
- }
-
- if ( 0 == $filesize ) {
- @unlink( $upload['file'] );
- return new WP_Error( 'import_file_error', __('Zero size file downloaded', 'wordpress-importer') );
- }
-
- $max_size = (int) $this->max_attachment_size();
- if ( ! empty( $max_size ) && $filesize > $max_size ) {
- @unlink( $upload['file'] );
- return new WP_Error( 'import_file_error', sprintf(__('Remote file is too large, limit is %s', 'wordpress-importer'), size_format($max_size) ) );
- }
-
- // keep track of the old and new urls so we can substitute them later
- $this->url_remap[$url] = $upload['url'];
- $this->url_remap[$post['guid']] = $upload['url']; // r13735, really needed?
- // keep track of the destination if the remote url is redirected somewhere else
- if ( isset($headers['x-final-location']) && $headers['x-final-location'] != $url )
- $this->url_remap[$headers['x-final-location']] = $upload['url'];
-
- return $upload;
- }
-
- /**
- * Attempt to associate posts and menu items with previously missing parents
- *
- * An imported post's parent may not have been imported when it was first created
- * so try again. Similarly for child menu items and menu items which were missing
- * the object (e.g. post) they represent in the menu
- */
- function backfill_parents() {
- global $wpdb;
-
- // find parents for post orphans
- foreach ( $this->post_orphans as $child_id => $parent_id ) {
- $local_child_id = $local_parent_id = false;
- if ( isset( $this->processed_posts[$child_id] ) )
- $local_child_id = $this->processed_posts[$child_id];
- if ( isset( $this->processed_posts[$parent_id] ) )
- $local_parent_id = $this->processed_posts[$parent_id];
-
- if ( $local_child_id && $local_parent_id ) {
- $wpdb->update( $wpdb->posts, array( 'post_parent' => $local_parent_id ), array( 'ID' => $local_child_id ), '%d', '%d' );
- clean_post_cache( $local_child_id );
- }
- }
-
- // all other posts/terms are imported, retry menu items with missing associated object
- $missing_menu_items = $this->missing_menu_items;
- foreach ( $missing_menu_items as $item )
- $this->process_menu_item( $item );
-
- // find parents for menu item orphans
- foreach ( $this->menu_item_orphans as $child_id => $parent_id ) {
- $local_child_id = $local_parent_id = 0;
- if ( isset( $this->processed_menu_items[$child_id] ) )
- $local_child_id = $this->processed_menu_items[$child_id];
- if ( isset( $this->processed_menu_items[$parent_id] ) )
- $local_parent_id = $this->processed_menu_items[$parent_id];
-
- if ( $local_child_id && $local_parent_id )
- update_post_meta( $local_child_id, '_menu_item_menu_item_parent', (int) $local_parent_id );
- }
- }
-
- /**
- * Use stored mapping information to update old attachment URLs
- */
- function backfill_attachment_urls() {
- global $wpdb;
- // make sure we do the longest urls first, in case one is a substring of another
- uksort( $this->url_remap, array(&$this, 'cmpr_strlen') );
-
- foreach ( $this->url_remap as $from_url => $to_url ) {
- // remap urls in post_content
- $wpdb->query( $wpdb->prepare("UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s)", $from_url, $to_url) );
- // remap enclosure urls
- $result = $wpdb->query( $wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key='enclosure'", $from_url, $to_url) );
- }
- }
-
- /**
- * Update _thumbnail_id meta to new, imported attachment IDs
- */
- function remap_featured_images() {
- // cycle through posts that have a featured image
- foreach ( $this->featured_images as $post_id => $value ) {
- if ( isset( $this->processed_posts[$value] ) ) {
- $new_id = $this->processed_posts[$value];
- // only update if there's a difference
- if ( $new_id != $value )
- update_post_meta( $post_id, '_thumbnail_id', $new_id );
- }
- }
- }
-
- /**
- * Parse a WXR file
- *
- * @param string $file Path to WXR file for parsing
- * @return array Information gathered from the WXR file
- */
- function parse( $file ) {
- $parser = new WXR_Parser();
- return $parser->parse( $file );
- }
-
- // Display import page title
- function header() {
- echo '<div class="wrap">';
- echo '<h2>' . __( 'Import WordPress', 'wordpress-importer' ) . '</h2>';
-
- $updates = get_plugin_updates();
- $basename = plugin_basename(__FILE__);
- if ( isset( $updates[$basename] ) ) {
- $update = $updates[$basename];
- echo '<div class="error"><p><strong>';
- printf( __( 'A new version of this importer is available. Please update to version %s to ensure compatibility with newer export files.', 'wordpress-importer' ), $update->update->new_version );
- echo '</strong></p></div>';
- }
- }
-
- // Close div.wrap
- function footer() {
- echo '</div>';
- }
-
- /**
- * Display introductory text and file upload form
- */
- function greet() {
- echo '<div class="narrow">';
- echo '<p>'.__( 'Howdy! Upload your WordPress eXtended RSS (WXR) file and we&#8217;ll import the posts, pages, comments, custom fields, categories, and tags into this site.', 'wordpress-importer' ).'</p>';
- echo '<p>'.__( 'Choose a WXR (.xml) file to upload, then click Upload file and import.', 'wordpress-importer' ).'</p>';
- wp_import_upload_form( 'admin.php?import=wordpress&amp;step=1' );
- echo '</div>';
- }
-
- /**
- * Decide if the given meta key maps to information we will want to import
- *
- * @param string $key The meta key to check
- * @return string|bool The key if we do want to import, false if not
- */
- function is_valid_meta_key( $key ) {
- // skip attachment metadata since we'll regenerate it from scratch
- // skip _edit_lock as not relevant for import
- if ( in_array( $key, array( '_wp_attached_file', '_wp_attachment_metadata', '_edit_lock' ) ) )
- return false;
- return $key;
- }
-
- /**
- * Decide whether or not the importer is allowed to create users.
- * Default is true, can be filtered via import_allow_create_users
- *
- * @return bool True if creating users is allowed
- */
- function allow_create_users() {
- return apply_filters( 'import_allow_create_users', true );
- }
-
- /**
- * Decide whether or not the importer should attempt to download attachment files.
- * Default is true, can be filtered via import_allow_fetch_attachments. The choice
- * made at the import options screen must also be true, false here hides that checkbox.
- *
- * @return bool True if downloading attachments is allowed
- */
- function allow_fetch_attachments() {
- return apply_filters( 'import_allow_fetch_attachments', true );
- }
-
- /**
- * Decide what the maximum file size for downloaded attachments is.
- * Default is 0 (unlimited), can be filtered via import_attachment_size_limit
- *
- * @return int Maximum attachment file size to import
- */
- function max_attachment_size() {
- return apply_filters( 'import_attachment_size_limit', 0 );
- }
-
- /**
- * Added to http_request_timeout filter to force timeout at 60 seconds during import
- * @return int 60
- */
- function bump_request_timeout( $val ) {
- return 60;
- }
-
- // return the difference in length between two strings
- function cmpr_strlen( $a, $b ) {
- return strlen($b) - strlen($a);
- }
-}
+/** WXR_Parser_Regex class */
+require_once dirname( __FILE__ ) . '/parsers/class-wxr-parser-regex.php';
-} // class_exists( 'WP_Importer' )
+/** WP_Import class */
+require_once dirname( __FILE__ ) . '/class-wp-import.php';
function wordpress_importer_init() {
load_plugin_textdomain( 'wordpress-importer' );